<?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>154823</bug_id>
          
          <creation_ts>2016-02-29 10:35:49 -0800</creation_ts>
          <short_desc>Mac: Adopt the new version of AVOutputDeviceMenuController&apos;s showMenuForRect method</short_desc>
          <delta_ts>2016-03-01 17:15:37 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Media</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ada Chan">adachan</reporter>
          <assigned_to name="Ada Chan">adachan</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1169193</commentid>
    <comment_count>0</comment_count>
    <who name="Ada Chan">adachan</who>
    <bug_when>2016-02-29 10:35:49 -0800</bug_when>
    <thetext>Mac: Adopt the new version of AVOutputDeviceMenuController&apos;s showMenuForRect method</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1169194</commentid>
    <comment_count>1</comment_count>
    <who name="Ada Chan">adachan</who>
    <bug_when>2016-02-29 10:37:06 -0800</bug_when>
    <thetext>&lt;rdar://problem/24806247&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1169200</commentid>
    <comment_count>2</comment_count>
      <attachid>272503</attachid>
    <who name="Ada Chan">adachan</who>
    <bug_when>2016-02-29 10:43:08 -0800</bug_when>
    <thetext>Created attachment 272503
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1169245</commentid>
    <comment_count>3</comment_count>
      <attachid>272503</attachid>
    <who name="Ada Chan">adachan</who>
    <bug_when>2016-02-29 13:30:36 -0800</bug_when>
    <thetext>Comment on attachment 272503
Patch

Need to update AVKitSPI.h.  Will send an updated patch soon.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1169249</commentid>
    <comment_count>4</comment_count>
      <attachid>272513</attachid>
    <who name="Ada Chan">adachan</who>
    <bug_when>2016-02-29 13:37:18 -0800</bug_when>
    <thetext>Created attachment 272513
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1169306</commentid>
    <comment_count>5</comment_count>
      <attachid>272513</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-02-29 16:17:20 -0800</bug_when>
    <thetext>Comment on attachment 272513
Patch

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

&gt; Source/WebCore/Modules/mediasession/WebMediaSessionManager.cpp:277
&gt; +    for (size_t i = 0; i &lt; m_clientState.size(); ++i) {
&gt; +        auto&amp; state = m_clientState[i];
&gt; +

Should use a modern for loop:

    for (auto&amp; state : m_clientState) {

&gt; Source/WebCore/dom/Document.cpp:6890
&gt; +    auto it = m_idToClientMap.find(clientId);
&gt; +    if (it == m_idToClientMap.end())
&gt; +        return;
&gt; +
&gt; +    it-&gt;value-&gt;customPlaybackActionSelected();

When a map’s values are pointers, you can do this in a way that’s less complex with get:

    if (auto* client = m_idToClientMap.get(clientId))
        client-&gt;customPlaybackActionSelected();

I have no idea why the functions above don’t do it this simpler way.

&gt; Source/WebCore/html/HTMLMediaElement.cpp:5217
&gt; +    return String();

There’s now a more terse way of writing the null string:

    return { };

&gt; Source/WebCore/html/MediaElementSession.cpp:53
&gt; +#if PLATFORM(MAC)
&gt; +#include &quot;HTMLMediaElementEnums.h&quot;
&gt; +#endif

This seems peculiar. The code below is in #if ENABLE(WIRELESS_PLAYBACK_TARGET) &amp;&amp; !PLATFORM(IOS) so it doesn&apos;t seem right to put the #include in #if PLATFORM(MAC). Maybe make the include unconditional? Or match the conditional around the code below exactly?

&gt; Source/WebCore/platform/mac/WebVideoFullscreenInterfaceMac.h:73
&gt; +    WEBCORE_EXPORT void setExternalPlayback(bool enabled, ExternalPlaybackTargetType, WTF::String localizedDeviceName) override;

A little bit strange to have the argument be WTF::String rather than const WTF::String&amp;, but that’s in the base class too, not just here.

&gt; Source/WebKit/mac/WebView/WebView.mm:8743
&gt; +    [self _devicePicker]-&gt;showPlaybackTargetPicker(clientId, rectInScreenCoordinates, hasVideo, String());

Can use { } here instead of String().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1169509</commentid>
    <comment_count>6</comment_count>
    <who name="Ada Chan">adachan</who>
    <bug_when>2016-03-01 11:35:50 -0800</bug_when>
    <thetext>Thanks for the feedback!

(In reply to comment #5)
&gt; Comment on attachment 272513 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=272513&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/Modules/mediasession/WebMediaSessionManager.cpp:277
&gt; &gt; +    for (size_t i = 0; i &lt; m_clientState.size(); ++i) {
&gt; &gt; +        auto&amp; state = m_clientState[i];
&gt; &gt; +
&gt; 
&gt; Should use a modern for loop:
&gt; 
&gt;     for (auto&amp; state : m_clientState) {

Fixed.

&gt; 
&gt; &gt; Source/WebCore/dom/Document.cpp:6890
&gt; &gt; +    auto it = m_idToClientMap.find(clientId);
&gt; &gt; +    if (it == m_idToClientMap.end())
&gt; &gt; +        return;
&gt; &gt; +
&gt; &gt; +    it-&gt;value-&gt;customPlaybackActionSelected();
&gt; 
&gt; When a map’s values are pointers, you can do this in a way that’s less
&gt; complex with get:
&gt; 
&gt;     if (auto* client = m_idToClientMap.get(clientId))
&gt;         client-&gt;customPlaybackActionSelected();
&gt; 
&gt; I have no idea why the functions above don’t do it this simpler way.

Fixed.

&gt; 
&gt; &gt; Source/WebCore/html/HTMLMediaElement.cpp:5217
&gt; &gt; +    return String();
&gt; 
&gt; There’s now a more terse way of writing the null string:
&gt; 
&gt;     return { };

Fixed.

&gt; 
&gt; &gt; Source/WebCore/html/MediaElementSession.cpp:53
&gt; &gt; +#if PLATFORM(MAC)
&gt; &gt; +#include &quot;HTMLMediaElementEnums.h&quot;
&gt; &gt; +#endif
&gt; 
&gt; This seems peculiar. The code below is in #if
&gt; ENABLE(WIRELESS_PLAYBACK_TARGET) &amp;&amp; !PLATFORM(IOS) so it doesn&apos;t seem right
&gt; to put the #include in #if PLATFORM(MAC). Maybe make the include
&gt; unconditional? Or match the conditional around the code below exactly?

I made the include unconditional.

&gt; 
&gt; &gt; Source/WebCore/platform/mac/WebVideoFullscreenInterfaceMac.h:73
&gt; &gt; +    WEBCORE_EXPORT void setExternalPlayback(bool enabled, ExternalPlaybackTargetType, WTF::String localizedDeviceName) override;
&gt; 
&gt; A little bit strange to have the argument be WTF::String rather than const
&gt; WTF::String&amp;, but that’s in the base class too, not just here.
&gt; 
&gt; &gt; Source/WebKit/mac/WebView/WebView.mm:8743
&gt; &gt; +    [self _devicePicker]-&gt;showPlaybackTargetPicker(clientId, rectInScreenCoordinates, hasVideo, String());
&gt; 
&gt; Can use { } here instead of String().

Fixed.

I had to add a forward declaration for the SPI in MediaPlaybackTargetPickerMac.mm to get things to compile for systems without that SPI.  Will post an updated patch soon.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1169512</commentid>
    <comment_count>7</comment_count>
      <attachid>272581</attachid>
    <who name="Ada Chan">adachan</who>
    <bug_when>2016-03-01 11:37:11 -0800</bug_when>
    <thetext>Created attachment 272581
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1169589</commentid>
    <comment_count>8</comment_count>
    <who name="Ada Chan">adachan</who>
    <bug_when>2016-03-01 15:25:07 -0800</bug_when>
    <thetext>Removing the forward declaration since it&apos;s no longer a requirement to support building without the SPI in the headers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1169591</commentid>
    <comment_count>9</comment_count>
      <attachid>272597</attachid>
    <who name="Ada Chan">adachan</who>
    <bug_when>2016-03-01 15:27:14 -0800</bug_when>
    <thetext>Created attachment 272597
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1169662</commentid>
    <comment_count>10</comment_count>
    <who name="Ada Chan">adachan</who>
    <bug_when>2016-03-01 17:15:37 -0800</bug_when>
    <thetext>Committed:
http://trac.webkit.org/changeset/197429</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>272503</attachid>
            <date>2016-02-29 10:43:08 -0800</date>
            <delta_ts>2016-02-29 13:30:36 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-154823-20160229104252.patch</filename>
            <type>text/plain</type>
            <size>47603</size>
            <attacher name="Ada Chan">adachan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk3MDM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGI1ZDY4NjY2OGIyYjNj
OGM1MGU4ZTg5MDA2YWVkNTE0ZTc5NDcyMC4uMDg4YmUzY2I1YzQ2ZGZhYzc1MzJiMjY5ZDRkODkz
MjgxZjVmMTdjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDE2LTAyLTI3ICBBZGEg
Q2hhbiAgPGFkYWNoYW5AYXBwbGUuY29tPgorCisgICAgICAgIEFkb3B0IHRoZSBuZXcgdmVyc2lv
biBvZiBBVk91dHB1dERldmljZU1lbnVDb250cm9sbGVyJ3Mgc2hvd01lbnVGb3JSZWN0IG1ldGhv
ZC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NDgy
MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTW9k
dWxlcy9tZWRpYXNlc3Npb24vV2ViTWVkaWFTZXNzaW9uTWFuYWdlci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpXZWJNZWRpYVNlc3Npb25NYW5hZ2VyOjpzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIp
OgorICAgICAgICAoV2ViQ29yZTo6V2ViTWVkaWFTZXNzaW9uTWFuYWdlcjo6Y3VzdG9tUGxheWJh
Y2tBY3Rpb25TZWxlY3RlZCk6CisgICAgICAgIENhbGwgY3VzdG9tUGxheWJhY2tBY3Rpb25TZWxl
Y3RlZCgpIG9uIHRoZSBjbGllbnQgdGhhdCByZXF1ZXN0ZWQgdGhlIHBpY2tlci4KKyAgICAgICAg
KiBNb2R1bGVzL21lZGlhc2Vzc2lvbi9XZWJNZWRpYVNlc3Npb25NYW5hZ2VyLmg6CisgICAgICAg
ICogTW9kdWxlcy9tZWRpYXNlc3Npb24vV2ViTWVkaWFTZXNzaW9uTWFuYWdlckNsaWVudC5oOgor
ICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6
c2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojpj
dXN0b21QbGF5YmFja0FjdGlvblNlbGVjdGVkKToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoK
KyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SFRNTE1lZGlhRWxlbWVudDo6Y3VzdG9tUGxheWJhY2tBY3Rpb25TZWxlY3RlZCk6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpwbGF5YmFja1RhcmdldFBpY2tlckN1c3RvbUFj
dGlvbk5hbWUpOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5oOgorICAgICAgICAq
IGh0bWwvTWVkaWFFbGVtZW50U2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUVs
ZW1lbnRTZXNzaW9uOjpzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFFbGVtZW50U2Vzc2lvbjo6Y3VzdG9tUGxheWJhY2tBY3Rpb25TZWxlY3RlZCk6Cisg
ICAgICAgICogaHRtbC9NZWRpYUVsZW1lbnRTZXNzaW9uLmg6CisgICAgICAgICogcGFnZS9DaHJv
bWVDbGllbnQuaDoKKyAgICAgICAgKiBwYWdlL1BhZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UGFnZTo6c2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6
OmN1c3RvbVBsYXliYWNrQWN0aW9uU2VsZWN0ZWQpOgorICAgICAgICAqIHBhZ2UvUGFnZS5oOgor
ICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uLmg6CisgICAgICAg
IChXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNsaWVudDo6Y3VzdG9tUGxheWJhY2tBY3Rp
b25TZWxlY3RlZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5YmFja1Rh
cmdldENsaWVudC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWJhY2tU
YXJnZXRQaWNrZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5YmFja1RhcmdldFBp
Y2tlcjo6cGVuZGluZ0FjdGlvblRpbWVyRmlyZWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQ
bGF5YmFja1RhcmdldFBpY2tlcjo6c2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyLmg6CisgICAgICAg
IChXZWJDb3JlOjpNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyOjpDbGllbnQ6OmN1c3RvbVBsYXli
YWNrQWN0aW9uU2VsZWN0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5YmFja1Rhcmdl
dFBpY2tlcjo6Y3VzdG9tUGxheWJhY2tBY3Rpb25TZWxlY3RlZCk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1h
Yy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlh
UGxheWJhY2tUYXJnZXRQaWNrZXJNYWMubW06CisgICAgICAgIFVwZGF0ZSB0aGUgZm9yd2FyZCBk
ZWNsYXJhdGlvbiBvZiBBVk91dHB1dERldmljZU1lbnVDb250cm9sbGVyJ3Mgc2hvd01lbnVGb3JS
ZWN0IG1ldGhvZC4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJN
YWM6OnNob3dQbGF5YmFja1RhcmdldFBpY2tlcik6CisgICAgICAgIENhbGwgdGhlIG5ldyB2ZXJz
aW9uIG9mIHNob3dNZW51Rm9yUmVjdCBpZiBhdmFpbGFibGUuCisgICAgICAgICogcGxhdGZvcm0v
bWFjL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYy5oOgorICAgICAgICAqIHBsYXRmb3Jt
L21hYy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWMubW06CisgICAgICAgIChXZWJDb3Jl
OjpXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWM6OnNldEV4dGVybmFsUGxheWJhY2spOgor
ICAgICAgICAqIHBsYXRmb3JtL21vY2svTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1vY2suY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1vY2s6OnNob3dQ
bGF5YmFja1RhcmdldFBpY2tlcik6CisgICAgICAgICogcGxhdGZvcm0vbW9jay9NZWRpYVBsYXli
YWNrVGFyZ2V0UGlja2VyTW9jay5oOgorCiAyMDE2LTAyLTI0ICBEYW5pZWwgQmF0ZXMgIDxkYWJh
dGVzQGFwcGxlLmNvbT4KIAogICAgICAgICBDU1A6IEVuYWJsZSBwbHVnaW4tdHlwZXMgZGlyZWN0
aXZlIGJ5IGRlZmF1bHQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCA4MGJlYTA1YjRiMzFlMmFjMmJlNzUy
NjEyZWMzNjY3ODNhZWFlNGQxLi4xYjg2YjA1YTU4MTZhMzg4NTFiZjM5NjkyNTk0ZDk2YmRjMzkz
ZDQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTYtMDItMjcgIEFkYSBD
aGFuICA8YWRhY2hhbkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRvcHQgdGhlIG5ldyB2ZXJzaW9u
IG9mIEFWT3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXIncyBzaG93TWVudUZvclJlY3QgbWV0aG9k
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU0ODIz
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQubW06CisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OnNob3dQbGF5YmFj
a1RhcmdldFBpY2tlcik6CisgICAgICAgICogV2ViVmlldy9XZWJNZWRpYVBsYXliYWNrVGFyZ2V0
UGlja2VyLmg6CisgICAgICAgICogV2ViVmlldy9XZWJNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2Vy
Lm1tOgorICAgICAgICAoV2ViTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlcjo6c2hvd1BsYXliYWNr
VGFyZ2V0UGlja2VyKToKKyAgICAgICAgKFdlYk1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXI6OmN1
c3RvbVBsYXliYWNrQWN0aW9uU2VsZWN0ZWQpOgorICAgICAgICAqIFdlYlZpZXcvV2ViVmlldy5t
bToKKyAgICAgICAgKC1bV2ViVmlldyBfc2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyOmxvY2F0aW9u
Omhhc1ZpZGVvOl0pOgorCiAyMDE2LTAyLTIzICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5j
b20+CiAKICAgICAgICAgW1hjb2RlXSBMaW5rZXIgZXJyb3JzIGRpc3BsYXkgbWFuZ2xlZCBuYW1l
cywgYnV0IG5vIGxvbmdlciBzaG91bGQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBmYzczMzM3MWJkMWIyM2UzZTc2
M2I0NzdhZDVlNzE2OGZhOTJiZDNjLi4xODViZjI5OGU0ZGYzOTNjYjU1ODVlZDQ4NWI4YWExMmRl
ZmMyNWQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTYtMDItMjcgIEFkYSBDaGFu
ICA8YWRhY2hhbkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRvcHQgdGhlIG5ldyB2ZXJzaW9uIG9m
IEFWT3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXIncyBzaG93TWVudUZvclJlY3QgbWV0aG9kLgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU0ODIzCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBVSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzaG93
UGxheWJhY2tUYXJnZXRQaWNrZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmN1
c3RvbVBsYXliYWNrQWN0aW9uU2VsZWN0ZWQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpzaG93UGxheWJhY2tUYXJnZXRQaWNr
ZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlBhZ2UvbWFjL1dlYlBhZ2VNYWMubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6
OmN1c3RvbVBsYXliYWNrQWN0aW9uU2VsZWN0ZWQpOgorCiAyMDE2LTAyLTI0ICBSeW9zdWtlIE5p
d2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIE1vdmUgRm9jdXNOYXZpZ2F0aW9uU2Nv
cGUgaW50byBGb2N1c0NvbnRyb2xsZXIuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc2Vzc2lvbi9XZWJNZWRpYVNlc3Npb25NYW5hZ2VyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL1dlYk1lZGlhU2Vzc2lvbk1hbmFnZXIuY3BwCmlu
ZGV4IDdhMzM2OWYxMGU1MzBlNGRjODdlNzE3ZDU2NzVmNzA5MTEzYjgwZTkuLjRjMmUwZDAyNTY4
YTk3ZGFlODY3NjNhMzg5YTQwNWZmMDM0ZGVhNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzZXNzaW9uL1dlYk1lZGlhU2Vzc2lvbk1hbmFnZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL1dlYk1lZGlhU2Vzc2lvbk1hbmFnZXIu
Y3BwCkBAIC0xODAsNyArMTgwLDcgQEAgdm9pZCBXZWJNZWRpYVNlc3Npb25NYW5hZ2VyOjpyZW1v
dmVBbGxQbGF5YmFja1RhcmdldFBpY2tlckNsaWVudHMoV2ViTWVkaWFTZXNzaW8KICAgICBzY2hl
ZHVsZURlbGF5ZWRUYXNrKFRhcmdldE1vbml0b3JpbmdDb25maWd1cmF0aW9uVGFzayB8IFRhcmdl
dENsaWVudHNDb25maWd1cmF0aW9uVGFzayk7CiB9CiAKLXZvaWQgV2ViTWVkaWFTZXNzaW9uTWFu
YWdlcjo6c2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKFdlYk1lZGlhU2Vzc2lvbk1hbmFnZXJDbGll
bnQmIGNsaWVudCwgdWludDY0X3QgY29udGV4dElkLCBjb25zdCBJbnRSZWN0JiByZWN0LCBib29s
KQordm9pZCBXZWJNZWRpYVNlc3Npb25NYW5hZ2VyOjpzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIo
V2ViTWVkaWFTZXNzaW9uTWFuYWdlckNsaWVudCYgY2xpZW50LCB1aW50NjRfdCBjb250ZXh0SWQs
IGNvbnN0IEludFJlY3QmIHJlY3QsIGJvb2wsIGNvbnN0IFN0cmluZyYgY3VzdG9tTWVudUl0ZW1U
aXRsZSkKIHsKICAgICBzaXplX3QgaW5kZXggPSBmaW5kKCZjbGllbnQsIGNvbnRleHRJZCk7CiAg
ICAgQVNTRVJUKGluZGV4ICE9IG5vdEZvdW5kKTsKQEAgLTE5NSw3ICsxOTUsOCBAQCB2b2lkIFdl
Yk1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNob3dQbGF5YmFja1RhcmdldFBpY2tlcihXZWJNZWRpYVNl
c3Npb25NYW5hZ2VyQ2xpZQogCiAgICAgYm9vbCBoYXNBY3RpdmVSb3V0ZSA9IGZsYWdzQXJlU2V0
KG1fY2xpZW50U3RhdGVbaW5kZXhdLT5mbGFncywgTWVkaWFQcm9kdWNlcjo6SXNQbGF5aW5nVG9F
eHRlcm5hbERldmljZSk7CiAgICAgTE9HKE1lZGlhLCAiV2ViTWVkaWFTZXNzaW9uTWFuYWdlcjo6
c2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKCVwICsgJWxsdSkgLSBoYXNBY3RpdmVSb3V0ZSA9ICVp
IiwgJmNsaWVudCwgY29udGV4dElkLCAoaW50KWhhc0FjdGl2ZVJvdXRlKTsKLSAgICB0YXJnZXRQ
aWNrZXIoKS5zaG93UGxheWJhY2tUYXJnZXRQaWNrZXIoRmxvYXRSZWN0KHJlY3QpLCBoYXNBY3Rp
dmVSb3V0ZSk7CisKKyAgICB0YXJnZXRQaWNrZXIoKS5zaG93UGxheWJhY2tUYXJnZXRQaWNrZXIo
RmxvYXRSZWN0KHJlY3QpLCBoYXNBY3RpdmVSb3V0ZSwgY3VzdG9tTWVudUl0ZW1UaXRsZSk7CiB9
CiAKIHZvaWQgV2ViTWVkaWFTZXNzaW9uTWFuYWdlcjo6Y2xpZW50U3RhdGVEaWRDaGFuZ2UoV2Vi
TWVkaWFTZXNzaW9uTWFuYWdlckNsaWVudCYgY2xpZW50LCB1aW50NjRfdCBjb250ZXh0SWQsIE1l
ZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBuZXdGbGFncykKQEAgLTI2OSw2ICsyNzAsMTkg
QEAgdm9pZCBXZWJNZWRpYVNlc3Npb25NYW5hZ2VyOjpleHRlcm5hbE91dHB1dERldmljZUF2YWls
YWJsZURpZENoYW5nZShib29sIGF2YWlsYWIKICAgICAgICAgc3RhdGUtPmNsaWVudC5leHRlcm5h
bE91dHB1dERldmljZUF2YWlsYWJsZURpZENoYW5nZShzdGF0ZS0+Y29udGV4dElkLCBhdmFpbGFi
bGUpOwogfQogCit2b2lkIFdlYk1lZGlhU2Vzc2lvbk1hbmFnZXI6OmN1c3RvbVBsYXliYWNrQWN0
aW9uU2VsZWN0ZWQoKQoreworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9jbGllbnRTdGF0
ZS5zaXplKCk7ICsraSkgeworICAgICAgICBhdXRvJiBzdGF0ZSA9IG1fY2xpZW50U3RhdGVbaV07
CisKKyAgICAgICAgaWYgKCFzdGF0ZS0+cmVxdWVzdGVkUGlja2VyKQorICAgICAgICAgICAgY29u
dGludWU7CisKKyAgICAgICAgc3RhdGUtPmNsaWVudC5jdXN0b21QbGF5YmFja0FjdGlvblNlbGVj
dGVkKHN0YXRlLT5jb250ZXh0SWQpOworICAgICAgICBzdGF0ZS0+cmVxdWVzdGVkUGlja2VyID0g
ZmFsc2U7CisgICAgfQorfQorCiB2b2lkIFdlYk1lZGlhU2Vzc2lvbk1hbmFnZXI6OmNvbmZpZ3Vy
ZU5ld0NsaWVudHMoKQogewogICAgIGZvciAoYXV0byYgc3RhdGUgOiBtX2NsaWVudFN0YXRlKSB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9XZWJNZWRp
YVNlc3Npb25NYW5hZ2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9X
ZWJNZWRpYVNlc3Npb25NYW5hZ2VyLmgKaW5kZXggMDU3NzU1NmJjMzQ0ZGY5Zjc2YWYxNGIwOGUw
NDFhMDk5M2FkZmMyNS4uYmUwNTdiOWFjNWY3M2QyYTVmMjk1MTgwZWQ2MjMyY2RlMmU4ZjY0MSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vV2ViTWVkaWFT
ZXNzaW9uTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9u
L1dlYk1lZGlhU2Vzc2lvbk1hbmFnZXIuaApAQCAtNTUsNyArNTUsOSBAQCBwdWJsaWM6CiAgICAg
V0VCQ09SRV9FWFBPUlQgdWludDY0X3QgYWRkUGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnQoV2Vi
TWVkaWFTZXNzaW9uTWFuYWdlckNsaWVudCYsIHVpbnQ2NF90KTsKICAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIHJlbW92ZVBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50KFdlYk1lZGlhU2Vzc2lvbk1h
bmFnZXJDbGllbnQmLCB1aW50NjRfdCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCByZW1vdmVB
bGxQbGF5YmFja1RhcmdldFBpY2tlckNsaWVudHMoV2ViTWVkaWFTZXNzaW9uTWFuYWdlckNsaWVu
dCYpOwotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKFdl
Yk1lZGlhU2Vzc2lvbk1hbmFnZXJDbGllbnQmLCB1aW50NjRfdCwgY29uc3QgSW50UmVjdCYsIGJv
b2wpOworCisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIo
V2ViTWVkaWFTZXNzaW9uTWFuYWdlckNsaWVudCYsIHVpbnQ2NF90LCBjb25zdCBJbnRSZWN0Jiwg
Ym9vbCwgY29uc3QgU3RyaW5nJik7CisKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGNsaWVudFN0
YXRlRGlkQ2hhbmdlKFdlYk1lZGlhU2Vzc2lvbk1hbmFnZXJDbGllbnQmLCB1aW50NjRfdCwgV2Vi
Q29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzKTsKIAogcHJvdGVjdGVkOgpAQCAt
NzMsNiArNzUsNyBAQCBwcml2YXRlOgogICAgIC8vIE1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXI6
OkNsaWVudAogICAgIHZpcnR1YWwgdm9pZCBzZXRQbGF5YmFja1RhcmdldChSZWY8V2ViQ29yZTo6
TWVkaWFQbGF5YmFja1RhcmdldD4mJikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGV4dGVy
bmFsT3V0cHV0RGV2aWNlQXZhaWxhYmxlRGlkQ2hhbmdlKGJvb2wpIG92ZXJyaWRlOworICAgIHZp
cnR1YWwgdm9pZCBjdXN0b21QbGF5YmFja0FjdGlvblNlbGVjdGVkKCkgb3ZlcnJpZGU7CiAKICAg
ICBzaXplX3QgZmluZChXZWJNZWRpYVNlc3Npb25NYW5hZ2VyQ2xpZW50KiwgdWludDY0X3QpOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9XZWJNZWRp
YVNlc3Npb25NYW5hZ2VyQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vz
c2lvbi9XZWJNZWRpYVNlc3Npb25NYW5hZ2VyQ2xpZW50LmgKaW5kZXggNTk3NDU0NmQxYjE5NTBi
NmY0ZjBlNzQ1MzAxMGU1YzZhYTc0MTUwMC4uMGFlN2ZmNjI5YWEyNzgxNmVhN2QxMjJmNzhkNGRh
NmQ4MTcwZWFjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Np
b24vV2ViTWVkaWFTZXNzaW9uTWFuYWdlckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzZXNzaW9uL1dlYk1lZGlhU2Vzc2lvbk1hbmFnZXJDbGllbnQuaApAQCAtNDMs
NiArNDMsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldFBsYXliYWNrVGFyZ2V0KHVp
bnQ2NF90LCBSZWY8TWVkaWFQbGF5YmFja1RhcmdldD4mJikgPSAwOwogICAgIHZpcnR1YWwgdm9p
ZCBleHRlcm5hbE91dHB1dERldmljZUF2YWlsYWJsZURpZENoYW5nZSh1aW50NjRfdCwgYm9vbCkg
PSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRTaG91bGRQbGF5VG9QbGF5YmFja1RhcmdldCh1aW50
NjRfdCwgYm9vbCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBjdXN0b21QbGF5YmFja0FjdGlvblNl
bGVjdGVkKHVpbnQ2NF90KSA9IDA7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmNwcAppbmRleCAzODdiYjNkZTRlYWQwZWMxODI2ODYyYzNkNDEyNzI3MWNh
OWQxMDFhLi44MGNkN2U0NmNiNzc3ZDA5YTgzODBiZWMzZDMyOTBhYjI1Y2ZiYjM5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5jcHAKQEAgLTY4NDEsNyArNjg0MSw3IEBAIHZvaWQgRG9jdW1lbnQ6OnJl
bW92ZVBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50KE1lZGlhUGxheWJhY2tUYXJnZXRDbGllbnQm
IGNsaWVuCiAgICAgcGFnZS0+cmVtb3ZlUGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnQoY2xpZW50
SWQpOwogfQogCi12b2lkIERvY3VtZW50OjpzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIoTWVkaWFQ
bGF5YmFja1RhcmdldENsaWVudCYgY2xpZW50LCBib29sIGlzVmlkZW8pCit2b2lkIERvY3VtZW50
OjpzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIoTWVkaWFQbGF5YmFja1RhcmdldENsaWVudCYgY2xp
ZW50LCBib29sIGlzVmlkZW8sIGNvbnN0IFN0cmluZyYgY3VzdG9tTWVudUl0ZW1UaXRsZSkKIHsK
ICAgICBQYWdlKiBwYWdlID0gdGhpcy0+cGFnZSgpOwogICAgIGlmICghcGFnZSkKQEAgLTY4NTEs
NyArNjg1MSw3IEBAIHZvaWQgRG9jdW1lbnQ6OnNob3dQbGF5YmFja1RhcmdldFBpY2tlcihNZWRp
YVBsYXliYWNrVGFyZ2V0Q2xpZW50JiBjbGllbnQsIGJvb2wKICAgICBpZiAoaXQgPT0gbV9jbGll
bnRUb0lETWFwLmVuZCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBwYWdlLT5zaG93UGxheWJh
Y2tUYXJnZXRQaWNrZXIoaXQtPnZhbHVlLCB2aWV3KCktPmxhc3RLbm93bk1vdXNlUG9zaXRpb24o
KSwgaXNWaWRlbyk7CisgICAgcGFnZS0+c2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKGl0LT52YWx1
ZSwgdmlldygpLT5sYXN0S25vd25Nb3VzZVBvc2l0aW9uKCksIGlzVmlkZW8sIGN1c3RvbU1lbnVJ
dGVtVGl0bGUpOwogfQogCiB2b2lkIERvY3VtZW50OjpwbGF5YmFja1RhcmdldFBpY2tlckNsaWVu
dFN0YXRlRGlkQ2hhbmdlKE1lZGlhUGxheWJhY2tUYXJnZXRDbGllbnQmIGNsaWVudCwgTWVkaWFQ
cm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIHN0YXRlKQpAQCAtNjg5Myw2ICs2ODkzLDE1IEBAIHZv
aWQgRG9jdW1lbnQ6OnNldFNob3VsZFBsYXlUb1BsYXliYWNrVGFyZ2V0KHVpbnQ2NF90IGNsaWVu
dElkLCBib29sIHNob3VsZFBsYXkpCiAKICAgICBpdC0+dmFsdWUtPnNldFNob3VsZFBsYXlUb1Bs
YXliYWNrVGFyZ2V0KHNob3VsZFBsYXkpOwogfQorCit2b2lkIERvY3VtZW50OjpjdXN0b21QbGF5
YmFja0FjdGlvblNlbGVjdGVkKHVpbnQ2NF90IGNsaWVudElkKQoreworICAgIGF1dG8gaXQgPSBt
X2lkVG9DbGllbnRNYXAuZmluZChjbGllbnRJZCk7CisgICAgaWYgKGl0ID09IG1faWRUb0NsaWVu
dE1hcC5lbmQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaXQtPnZhbHVlLT5jdXN0b21QbGF5
YmFja0FjdGlvblNlbGVjdGVkKCk7Cit9CiAjZW5kaWYgLy8gRU5BQkxFKFdJUkVMRVNTX1BMQVlC
QUNLX1RBUkdFVCkKIAogI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQu
aAppbmRleCA5ZTlkZmE3ZmY0Yjg5YjkyMmVkYjRjYjQ5NTNiM2U3Yjk1NDYzZmJhLi42MDMzOTUz
YzZjNGJhNTE4Yjc4ZGY0OTEzYmRkYjU5ZGMzNjI1N2M5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApA
QCAtMTI5MCwxMiArMTI5MCwxNSBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKFdJUkVMRVNTX1BMQVlC
QUNLX1RBUkdFVCkKICAgICB2b2lkIGFkZFBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50KE1lZGlh
UGxheWJhY2tUYXJnZXRDbGllbnQmKTsKICAgICB2b2lkIHJlbW92ZVBsYXliYWNrVGFyZ2V0UGlj
a2VyQ2xpZW50KE1lZGlhUGxheWJhY2tUYXJnZXRDbGllbnQmKTsKLSAgICB2b2lkIHNob3dQbGF5
YmFja1RhcmdldFBpY2tlcihNZWRpYVBsYXliYWNrVGFyZ2V0Q2xpZW50JiwgYm9vbCk7CisKKyAg
ICB2b2lkIHNob3dQbGF5YmFja1RhcmdldFBpY2tlcihNZWRpYVBsYXliYWNrVGFyZ2V0Q2xpZW50
JiwgYm9vbCwgY29uc3QgU3RyaW5nJik7CisKICAgICB2b2lkIHBsYXliYWNrVGFyZ2V0UGlja2Vy
Q2xpZW50U3RhdGVEaWRDaGFuZ2UoTWVkaWFQbGF5YmFja1RhcmdldENsaWVudCYsIE1lZGlhUHJv
ZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyk7CiAKICAgICB2b2lkIHNldFBsYXliYWNrVGFyZ2V0KHVp
bnQ2NF90LCBSZWY8TWVkaWFQbGF5YmFja1RhcmdldD4mJik7CiAgICAgdm9pZCBwbGF5YmFja1Rh
cmdldEF2YWlsYWJpbGl0eURpZENoYW5nZSh1aW50NjRfdCwgYm9vbCk7CiAgICAgdm9pZCBzZXRT
aG91bGRQbGF5VG9QbGF5YmFja1RhcmdldCh1aW50NjRfdCwgYm9vbCk7CisgICAgdm9pZCBjdXN0
b21QbGF5YmFja0FjdGlvblNlbGVjdGVkKHVpbnQ2NF90KTsKICNlbmRpZgogCiAgICAgU2hvdWxk
T3BlbkV4dGVybmFsVVJMc1BvbGljeSBzaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5VG9Qcm9w
YWdhdGUoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlh
RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCmlu
ZGV4IDRjNzU1YjhkYTYxMTlmMzdjM2RiNTAxNGEyMzJjM2M3MGI0NzIxMWUuLmQyN2FjY2U3OTIz
MjJkMDcwNzA2Y2FhOThkMWExZDAyYzI2Y2M1ZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
TWVkaWFFbGVtZW50LmNwcApAQCAtMTUwLDYgKzE1MCwxMCBAQAogI2luY2x1ZGUgPGJpbmRpbmdz
L1NjcmlwdE9iamVjdC5oPgogI2VuZGlmCiAKKyNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQor
I2luY2x1ZGUgPFdlYktpdEFkZGl0aW9ucy9IVE1MTWVkaWFFbGVtZW50QWRkaXRpb25zLmNwcD4K
KyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0YXRpYyBjb25zdCBkb3VibGUgU2Vl
a1JlcGVhdERlbGF5ID0gMC4xOwpAQCAtNTIyMCw2ICs1MjI0LDE5IEBAIHZvaWQgSFRNTE1lZGlh
RWxlbWVudDo6c2V0U2hvdWxkUGxheVRvUGxheWJhY2tUYXJnZXQoYm9vbCBzaG91bGRQbGF5KQog
ICAgIGlmIChtX3BsYXllcikKICAgICAgICAgbV9wbGF5ZXItPnNldFNob3VsZFBsYXlUb1BsYXli
YWNrVGFyZ2V0KHNob3VsZFBsYXkpOwogfQorCisjaWYgIVVTRShBUFBMRV9JTlRFUk5BTF9TREsp
Cit2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmN1c3RvbVBsYXliYWNrQWN0aW9uU2VsZWN0ZWQoKQor
eworICAgIExPRyhNZWRpYSwgIkhUTUxNZWRpYUVsZW1lbnQ6OmN1c3RvbVBsYXliYWNrQWN0aW9u
U2VsZWN0ZWQoJXApIiwgdGhpcyk7Cit9CisKK1N0cmluZyBIVE1MTWVkaWFFbGVtZW50OjpwbGF5
YmFja1RhcmdldFBpY2tlckN1c3RvbUFjdGlvbk5hbWUoKSBjb25zdAoreworICAgIHJldHVybiBT
dHJpbmcoKTsKK30KKyNlbmRpZgorCiAjZWxzZSAvLyBFTkFCTEUoV0lSRUxFU1NfUExBWUJBQ0tf
VEFSR0VUKQogCiBib29sIEhUTUxNZWRpYUVsZW1lbnQ6OndlYmtpdEN1cnJlbnRQbGF5YmFja1Rh
cmdldElzV2lyZWxlc3MoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MTWVkaWFFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQu
aAppbmRleCBkNjFkZjc1OTRlYmM3NzNhNGQyNzc2Yzc1NmM0YTVjZThiMjZiNmRkLi40MGM5ZmQ5
NTU2OGU1MGM5NjdhZDk5NDYxNGNkOTBhMzhmZDExMDFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxNZWRpYUVsZW1lbnQuaApAQCAtMzQ0LDYgKzM0NCw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IGJvb2wgaXNQbGF5aW5nVG9XaXJlbGVzc1BsYXliYWNrVGFyZ2V0KCkgY29uc3Qgb3ZlcnJpZGU7
CiAgICAgdmlydHVhbCB2b2lkIHNldFdpcmVsZXNzUGxheWJhY2tUYXJnZXQoUmVmPE1lZGlhUGxh
eWJhY2tUYXJnZXQ+JiYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBzZXRTaG91bGRQbGF5
VG9QbGF5YmFja1RhcmdldChib29sKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgY3VzdG9t
UGxheWJhY2tBY3Rpb25TZWxlY3RlZCgpIG92ZXJyaWRlOworICAgIFN0cmluZyBwbGF5YmFja1Rh
cmdldFBpY2tlckN1c3RvbUFjdGlvbk5hbWUoKSBjb25zdDsKICNlbmRpZgogICAgIGJvb2wgd2Vi
a2l0Q3VycmVudFBsYXliYWNrVGFyZ2V0SXNXaXJlbGVzcygpIGNvbnN0OwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRWxlbWVudFNlc3Npb24uY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9NZWRpYUVsZW1lbnRTZXNzaW9uLmNwcAppbmRleCAxYTRkZTY0MGE0NDcwOTk3
ODRhYWUyNWFjYTc0NzYxZGQyODU3NWNiLi5kMWQ1MTg2Zjc3MGI5NzIyNjJkODMyMGUwZmMwZTQ2
OTQwMmM0N2M2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRWxlbWVudFNl
c3Npb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFFbGVtZW50U2Vzc2lvbi5j
cHAKQEAgLTQ4LDYgKzQ4LDEwIEBACiAjaW5jbHVkZSAiUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tz
SU9TLmgiCiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKE1BQykKKyNpbmNsdWRlICJIVE1MTWVkaWFF
bGVtZW50RW51bXMuaCIKKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICNpZiAhTE9H
X0RJU0FCTEVECkBAIC0yMDcsNyArMjExLDggQEAgdm9pZCBNZWRpYUVsZW1lbnRTZXNzaW9uOjpz
aG93UGxheWJhY2tUYXJnZXRQaWNrZXIoY29uc3QgSFRNTE1lZGlhRWxlbWVudCYgZWxlbWUKICAg
ICB9CiAjZW5kaWYKIAotICAgIGVsZW1lbnQuZG9jdW1lbnQoKS5zaG93UGxheWJhY2tUYXJnZXRQ
aWNrZXIoKnRoaXMsIGlzPEhUTUxWaWRlb0VsZW1lbnQ+KGVsZW1lbnQpKTsKKyAgICBTdHJpbmcg
Y3VzdG9tTWVudUl0ZW1UaXRsZSA9IGVsZW1lbnQucGxheWJhY2tUYXJnZXRQaWNrZXJDdXN0b21B
Y3Rpb25OYW1lKCk7CisgICAgZWxlbWVudC5kb2N1bWVudCgpLnNob3dQbGF5YmFja1RhcmdldFBp
Y2tlcigqdGhpcywgaXM8SFRNTFZpZGVvRWxlbWVudD4oZWxlbWVudCksIGN1c3RvbU1lbnVJdGVt
VGl0bGUpOwogfQogCiBib29sIE1lZGlhRWxlbWVudFNlc3Npb246Omhhc1dpcmVsZXNzUGxheWJh
Y2tUYXJnZXRzKGNvbnN0IEhUTUxNZWRpYUVsZW1lbnQmKSBjb25zdApAQCAtMzMxLDYgKzMzNiwx
MSBAQCB2b2lkIE1lZGlhRWxlbWVudFNlc3Npb246OnNldFNob3VsZFBsYXlUb1BsYXliYWNrVGFy
Z2V0KGJvb2wgc2hvdWxkUGxheSkKICAgICBjbGllbnQoKS5zZXRTaG91bGRQbGF5VG9QbGF5YmFj
a1RhcmdldChzaG91bGRQbGF5KTsKIH0KIAordm9pZCBNZWRpYUVsZW1lbnRTZXNzaW9uOjpjdXN0
b21QbGF5YmFja0FjdGlvblNlbGVjdGVkKCkKK3sKKyAgICBjbGllbnQoKS5jdXN0b21QbGF5YmFj
a0FjdGlvblNlbGVjdGVkKCk7Cit9CisKIHZvaWQgTWVkaWFFbGVtZW50U2Vzc2lvbjo6bWVkaWFT
dGF0ZURpZENoYW5nZShjb25zdCBIVE1MTWVkaWFFbGVtZW50JiBlbGVtZW50LCBNZWRpYVByb2R1
Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mgc3RhdGUpCiB7CiAgICAgZWxlbWVudC5kb2N1bWVudCgpLnBs
YXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50U3RhdGVEaWRDaGFuZ2UoKnRoaXMsIHN0YXRlKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFFbGVtZW50U2Vzc2lvbi5oIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUVsZW1lbnRTZXNzaW9uLmgKaW5kZXggMzUxY2IwZWJkZTUw
MDIyYTVlY2JiYWNlNGM2YWQ1ZGJhMzQzOWE2NS4uNTZlNGYyZWM4ODhjNWY4ZWRlY2NkMjE0YWFh
N2Y3ODc5NDA5OTE4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUVsZW1l
bnRTZXNzaW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUVsZW1lbnRTZXNzaW9u
LmgKQEAgLTExMyw2ICsxMTMsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBzZXRQbGF5
YmFja1RhcmdldChSZWY8TWVkaWFQbGF5YmFja1RhcmdldD4mJikgb3ZlcnJpZGU7CiAgICAgdmly
dHVhbCB2b2lkIGV4dGVybmFsT3V0cHV0RGV2aWNlQXZhaWxhYmxlRGlkQ2hhbmdlKGJvb2wpIG92
ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBzZXRTaG91bGRQbGF5VG9QbGF5YmFja1RhcmdldChi
b29sKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgY3VzdG9tUGxheWJhY2tBY3Rpb25TZWxl
Y3RlZCgpIG92ZXJyaWRlOwogI2VuZGlmCiAjaWYgUExBVEZPUk0oSU9TKQogICAgIGJvb2wgcmVx
dWlyZXNQbGF5YmFja1RhcmdldFJvdXRlTW9uaXRvcmluZygpIGNvbnN0IG92ZXJyaWRlOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKaW5kZXggNzIwY2YwOTEyMTNiMmVkNmIxNjAwY2E2NTlm
NDQxOWNjMzBmNWEzNS4uNzQ0MWUwZGIyNWU0OGQ4NzIyNTI3ZDZlNmY5YzhiNjM0ZmEzMDQ0NyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCkBAIC00NTIsNyArNDUyLDkgQEAgcHVibGlj
OgogI2lmIEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpCiAgICAgdmlydHVhbCB2b2lk
IGFkZFBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50KHVpbnQ2NF90IC8qY29udGV4dElkKi8pIHsg
fQogICAgIHZpcnR1YWwgdm9pZCByZW1vdmVQbGF5YmFja1RhcmdldFBpY2tlckNsaWVudCh1aW50
NjRfdCAvKmNvbnRleHRJZCovKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgc2hvd1BsYXliYWNrVGFy
Z2V0UGlja2VyKHVpbnQ2NF90IC8qY29udGV4dElkKi8sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50
JiwgYm9vbCAvKiBpc1ZpZGVvICovKSB7IH0KKworICAgIHZpcnR1YWwgdm9pZCBzaG93UGxheWJh
Y2tUYXJnZXRQaWNrZXIodWludDY0X3QgLypjb250ZXh0SWQqLywgY29uc3QgV2ViQ29yZTo6SW50
UG9pbnQmLCBib29sIC8qIGlzVmlkZW8gKi8sIGNvbnN0IFN0cmluZyYgLypjdXN0b21NZW51SXRl
bVRpdGxlKi8pIHsgfQorCiAgICAgdmlydHVhbCB2b2lkIHBsYXliYWNrVGFyZ2V0UGlja2VyQ2xp
ZW50U3RhdGVEaWRDaGFuZ2UodWludDY0X3QgLypjb250ZXh0SWQqLywgTWVkaWFQcm9kdWNlcjo6
TWVkaWFTdGF0ZUZsYWdzKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgc2V0TW9ja01lZGlhUGxheWJh
Y2tUYXJnZXRQaWNrZXJFbmFibGVkKGJvb2wpICB7IH0KICAgICB2aXJ0dWFsIHZvaWQgc2V0TW9j
a01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJTdGF0ZShjb25zdCBTdHJpbmcmLCBXZWJDb3JlOjpN
ZWRpYVBsYXliYWNrVGFyZ2V0Q29udGV4dDo6U3RhdGUpIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9QYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKaW5k
ZXggNWQxMzliN2E3NTQ5OGYyMGJmNDA4Njg0YWU1Njk0YTVhODg5MDA3NS4uNmM0MWYyNDA2MWU2
NGUzOTAyMzRmNzFlZWI1MjhlMjcxZDcyZTUyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9QYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCkBAIC0xODA2
LDE1ICsxODA2LDE2IEBAIHZvaWQgUGFnZTo6cmVtb3ZlUGxheWJhY2tUYXJnZXRQaWNrZXJDbGll
bnQodWludDY0X3QgY29udGV4dElkKQogICAgIGNocm9tZSgpLmNsaWVudCgpLnJlbW92ZVBsYXli
YWNrVGFyZ2V0UGlja2VyQ2xpZW50KGNvbnRleHRJZCk7CiB9CiAKLXZvaWQgUGFnZTo6c2hvd1Bs
YXliYWNrVGFyZ2V0UGlja2VyKHVpbnQ2NF90IGNvbnRleHRJZCwgY29uc3QgV2ViQ29yZTo6SW50
UG9pbnQmIGxvY2F0aW9uLCBib29sIGlzVmlkZW8pCit2b2lkIFBhZ2U6OnNob3dQbGF5YmFja1Rh
cmdldFBpY2tlcih1aW50NjRfdCBjb250ZXh0SWQsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBs
b2NhdGlvbiwgYm9vbCBpc1ZpZGVvLCBjb25zdCBTdHJpbmcmIGN1c3RvbU1lbnVJdGVtVGl0bGUp
CiB7CiAjaWYgUExBVEZPUk0oSU9TKQogICAgIC8vIEZJWE1FOiByZWZhY3RvciBpT1MgaW1wbGVt
ZW50YXRpb24uCiAgICAgVU5VU0VEX1BBUkFNKGNvbnRleHRJZCk7CiAgICAgVU5VU0VEX1BBUkFN
KGxvY2F0aW9uKTsKKyAgICBVTlVTRURfUEFSQU0oY3VzdG9tTWVudUl0ZW1UaXRsZSk7CiAgICAg
Y2hyb21lKCkuY2xpZW50KCkuc2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKGlzVmlkZW8pOwogI2Vs
c2UKLSAgICBjaHJvbWUoKS5jbGllbnQoKS5zaG93UGxheWJhY2tUYXJnZXRQaWNrZXIoY29udGV4
dElkLCBsb2NhdGlvbiwgaXNWaWRlbyk7CisgICAgY2hyb21lKCkuY2xpZW50KCkuc2hvd1BsYXli
YWNrVGFyZ2V0UGlja2VyKGNvbnRleHRJZCwgbG9jYXRpb24sIGlzVmlkZW8sIGN1c3RvbU1lbnVJ
dGVtVGl0bGUpOwogI2VuZGlmCiB9CiAKQEAgLTE4NTAsNiArMTg1MSwxMiBAQCB2b2lkIFBhZ2U6
OnNldFNob3VsZFBsYXlUb1BsYXliYWNrVGFyZ2V0KHVpbnQ2NF90IGNsaWVudElkLCBib29sIHNo
b3VsZFBsYXkpCiAgICAgZm9yIChGcmFtZSogZnJhbWUgPSAmbWFpbkZyYW1lKCk7IGZyYW1lOyBm
cmFtZSA9IGZyYW1lLT50cmVlKCkudHJhdmVyc2VOZXh0KCkpCiAgICAgICAgIGZyYW1lLT5kb2N1
bWVudCgpLT5zZXRTaG91bGRQbGF5VG9QbGF5YmFja1RhcmdldChjbGllbnRJZCwgc2hvdWxkUGxh
eSk7CiB9CisKK3ZvaWQgUGFnZTo6Y3VzdG9tUGxheWJhY2tBY3Rpb25TZWxlY3RlZCh1aW50NjRf
dCBjb250ZXh0SWQpCit7CisgICAgZm9yIChGcmFtZSogZnJhbWUgPSAmbWFpbkZyYW1lKCk7IGZy
YW1lOyBmcmFtZSA9IGZyYW1lLT50cmVlKCkudHJhdmVyc2VOZXh0KCkpCisgICAgICAgIGZyYW1l
LT5kb2N1bWVudCgpLT5jdXN0b21QbGF5YmFja0FjdGlvblNlbGVjdGVkKGNvbnRleHRJZCk7Cit9
CiAjZW5kaWYKIAogV2hlZWxFdmVudFRlc3RUcmlnZ2VyJiBQYWdlOjplbnN1cmVUZXN0VHJpZ2dl
cigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZS5oCmluZGV4IGY4ZGVlNTQ4NTEwZDc4ZGUxMjc0MDk0ZTUxZjJlYjUzOTkx
MTAyNjIuLjQzNTNkZDhkYzkyY2JmMmMwMzBkMTIzNjUyN2I4NGEyZDcyODYyMDUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGFnZS5oCkBAIC00NzIsNyArNDcyLDkgQEAgcHVibGljOgogI2lmIEVOQUJMRShXSVJFTEVTU19Q
TEFZQkFDS19UQVJHRVQpCiAgICAgdm9pZCBhZGRQbGF5YmFja1RhcmdldFBpY2tlckNsaWVudCh1
aW50NjRfdCk7CiAgICAgdm9pZCByZW1vdmVQbGF5YmFja1RhcmdldFBpY2tlckNsaWVudCh1aW50
NjRfdCk7Ci0gICAgdm9pZCBzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIodWludDY0X3QsIGNvbnN0
IEludFBvaW50JiwgYm9vbCk7CisKKyAgICB2b2lkIHNob3dQbGF5YmFja1RhcmdldFBpY2tlcih1
aW50NjRfdCwgY29uc3QgSW50UG9pbnQmLCBib29sLCBjb25zdCBTdHJpbmcmKTsKKwogICAgIHZv
aWQgcGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0ZURpZENoYW5nZSh1aW50NjRfdCwgTWVk
aWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNl
dE1vY2tNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyRW5hYmxlZChib29sKTsKICAgICBXRUJDT1JF
X0VYUE9SVCB2b2lkIHNldE1vY2tNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyU3RhdGUoY29uc3Qg
U3RyaW5nJiwgTWVkaWFQbGF5YmFja1RhcmdldENvbnRleHQ6OlN0YXRlKTsKQEAgLTQ4MCw2ICs0
ODIsNyBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRQbGF5YmFja1Rhcmdl
dCh1aW50NjRfdCwgUmVmPE1lZGlhUGxheWJhY2tUYXJnZXQ+JiYpOwogICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgcGxheWJhY2tUYXJnZXRBdmFpbGFiaWxpdHlEaWRDaGFuZ2UodWludDY0X3QsIGJv
b2wpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0U2hvdWxkUGxheVRvUGxheWJhY2tUYXJn
ZXQodWludDY0X3QsIGJvb2wpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgY3VzdG9tUGxheWJh
Y2tBY3Rpb25TZWxlY3RlZCh1aW50NjRfdCk7CiAjZW5kaWYKIAogICAgIFJlZlB0cjxXaGVlbEV2
ZW50VGVzdFRyaWdnZXI+IHRlc3RUcmlnZ2VyKCkgY29uc3QgeyByZXR1cm4gbV90ZXN0VHJpZ2dl
cjsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1N
ZWRpYVNlc3Npb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVk
aWFTZXNzaW9uLmgKaW5kZXggMWJiYTZjYzdiYmJjN2EzYjM3ODkxZjU2ZmIyYWQxZjY5MWQwYmNk
YS4uYzYzYzliN2Y3NTE4OTE4YmE4NTRjYTY4MzNmMDkyYjM1MGI2YWNlYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb24uaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbi5oCkBA
IC0xMzUsNiArMTM1LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRQbGF5YmFja1Rh
cmdldChSZWY8TWVkaWFQbGF5YmFja1RhcmdldD4mJikgb3ZlcnJpZGUgeyB9CiAgICAgdmlydHVh
bCB2b2lkIGV4dGVybmFsT3V0cHV0RGV2aWNlQXZhaWxhYmxlRGlkQ2hhbmdlKGJvb2wpIG92ZXJy
aWRlIHsgfQogICAgIHZpcnR1YWwgdm9pZCBzZXRTaG91bGRQbGF5VG9QbGF5YmFja1RhcmdldChi
b29sKSBvdmVycmlkZSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgY3VzdG9tUGxheWJhY2tBY3Rpb25T
ZWxlY3RlZCgpIG92ZXJyaWRlIHsgfQogI2VuZGlmCiAKICNpZiBQTEFURk9STShJT1MpCkBAIC0x
OTcsNiArMTk4LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBjYW5QbGF5VG9XaXJlbGVz
c1BsYXliYWNrVGFyZ2V0KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJv
b2wgaXNQbGF5aW5nVG9XaXJlbGVzc1BsYXliYWNrVGFyZ2V0KCkgY29uc3QgeyByZXR1cm4gZmFs
c2U7IH0KICAgICB2aXJ0dWFsIHZvaWQgc2V0U2hvdWxkUGxheVRvUGxheWJhY2tUYXJnZXQoYm9v
bCkgeyB9CisgICAgdmlydHVhbCB2b2lkIGN1c3RvbVBsYXliYWNrQWN0aW9uU2VsZWN0ZWQoKSB7
IH0KIAogICAgIHZpcnR1YWwgY29uc3QgRG9jdW1lbnQqIGhvc3RpbmdEb2N1bWVudCgpIGNvbnN0
ID0gMDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVk
aWFQbGF5YmFja1RhcmdldENsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvTWVkaWFQbGF5YmFja1RhcmdldENsaWVudC5oCmluZGV4IGEzMDQyMWVhNmUwYjU5MjQwYWNi
MTRhYzlmODJjYmY3MWFhNjM2MGIuLjA2NzU1OGUzNGNiYmNlZTAzOWZhNGJiYTZkMTMwYTc3YWMx
ZWU4MDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlh
UGxheWJhY2tUYXJnZXRDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9NZWRpYVBsYXliYWNrVGFyZ2V0Q2xpZW50LmgKQEAgLTQyLDYgKzQyLDcgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgdm9pZCBzZXRQbGF5YmFja1RhcmdldChSZWY8TWVkaWFQbGF5YmFja1Rh
cmdldD4mJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBleHRlcm5hbE91dHB1dERldmljZUF2YWls
YWJsZURpZENoYW5nZShib29sKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldFNob3VsZFBsYXlU
b1BsYXliYWNrVGFyZ2V0KGJvb2wpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgY3VzdG9tUGxheWJh
Y2tBY3Rpb25TZWxlY3RlZCgpID0gMDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWJhY2tU
YXJnZXRQaWNrZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQ
bGF5YmFja1RhcmdldFBpY2tlci5jcHAKaW5kZXggNDkzMTY4NmIzMTUxMjc3MTYyNTA0ODg4Yjcx
NWUyODFhMjc1OTIwNi4uMzhhZWY1ZjQzYjc0NjMwMmQzMjVjNGZiOWE3NWMxZWU1YmFiMDc3OCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5YmFj
a1RhcmdldFBpY2tlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
TWVkaWFQbGF5YmFja1RhcmdldFBpY2tlci5jcHAKQEAgLTU5LDYgKzU5LDkgQEAgdm9pZCBNZWRp
YVBsYXliYWNrVGFyZ2V0UGlja2VyOjpwZW5kaW5nQWN0aW9uVGltZXJGaXJlZCgpCiAKICAgICBp
ZiAocGVuZGluZ0FjdGlvbnMgJiBPdXRwdXREZXZpY2VBdmFpbGFiaWxpdHlDaGFuZ2VkKQogICAg
ICAgICBtX2NsaWVudC0+ZXh0ZXJuYWxPdXRwdXREZXZpY2VBdmFpbGFibGVEaWRDaGFuZ2UoZXh0
ZXJuYWxPdXRwdXREZXZpY2VBdmFpbGFibGUoKSk7CisKKyAgICBpZiAocGVuZGluZ0FjdGlvbnMg
JiBDdXN0b21QbGF5YmFja0FjdGlvblNlbGVjdGVkKQorICAgICAgICBtX2NsaWVudC0+Y3VzdG9t
UGxheWJhY2tBY3Rpb25TZWxlY3RlZCgpOwogfQogCiB2b2lkIE1lZGlhUGxheWJhY2tUYXJnZXRQ
aWNrZXI6OmFkZFBlbmRpbmdBY3Rpb24oUGVuZGluZ0FjdGlvbkZsYWdzIGFjdGlvbikKQEAgLTcw
LDcgKzczLDcgQEAgdm9pZCBNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyOjphZGRQZW5kaW5nQWN0
aW9uKFBlbmRpbmdBY3Rpb25GbGFncyBhY3Rpb24pCiAgICAgbV9wZW5kaW5nQWN0aW9uVGltZXIu
c3RhcnRPbmVTaG90KHBlbmRpbmdBY3Rpb25JbnRlcnZhbCk7CiB9CiAKLXZvaWQgTWVkaWFQbGF5
YmFja1RhcmdldFBpY2tlcjo6c2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKGNvbnN0IEZsb2F0UmVj
dCYsIGJvb2wpCit2b2lkIE1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXI6OnNob3dQbGF5YmFja1Rh
cmdldFBpY2tlcihjb25zdCBGbG9hdFJlY3QmLCBib29sLCBjb25zdCBTdHJpbmcmKQogewogICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlci5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlci5oCmluZGV4IGFm
ZTBiZDNlZTRmMGUzN2VmYjZhZTdlZTk1MDBjMDRjN2JmNjIyNDUuLjU1MzQ3MmQ2YWFmMTQzOTM5
OGYxOGQ4N2NiMmI1OTNkNjU1MDg1MzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyLmgKQEAgLTQ1
LDE5ICs0NSwyMSBAQCBwdWJsaWM6CiAgICAgcHVibGljOgogICAgICAgICB2aXJ0dWFsIHZvaWQg
c2V0UGxheWJhY2tUYXJnZXQoUmVmPE1lZGlhUGxheWJhY2tUYXJnZXQ+JiYpID0gMDsKICAgICAg
ICAgdmlydHVhbCB2b2lkIGV4dGVybmFsT3V0cHV0RGV2aWNlQXZhaWxhYmxlRGlkQ2hhbmdlKGJv
b2wpID0gMDsKKyAgICAgICAgdmlydHVhbCB2b2lkIGN1c3RvbVBsYXliYWNrQWN0aW9uU2VsZWN0
ZWQoKSB7IH0KIAogICAgICAgICB2b2lkIGludmFsaWRhdGUoKTsKICAgICB9OwogCiAgICAgdmly
dHVhbCB+TWVkaWFQbGF5YmFja1RhcmdldFBpY2tlcigpOwogCi0gICAgdmlydHVhbCB2b2lkIHNo
b3dQbGF5YmFja1RhcmdldFBpY2tlcihjb25zdCBGbG9hdFJlY3QmLCBib29sIGNoZWNrQWN0aXZl
Um91dGUpOworICAgIHZpcnR1YWwgdm9pZCBzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIoY29uc3Qg
RmxvYXRSZWN0JiwgYm9vbCBjaGVja0FjdGl2ZVJvdXRlLCBjb25zdCBTdHJpbmcmKTsKICAgICB2
aXJ0dWFsIHZvaWQgc3RhcnRpbmdNb25pdG9yaW5nUGxheWJhY2tUYXJnZXRzKCk7CiAgICAgdmly
dHVhbCB2b2lkIHN0b3BNb25pdG9yaW5nUGxheWJhY2tUYXJnZXRzKCk7CiAgICAgdmlydHVhbCB2
b2lkIGludmFsaWRhdGVQbGF5YmFja1RhcmdldHMoKTsKIAogICAgIHZvaWQgYXZhaWxhYmxlRGV2
aWNlc0RpZENoYW5nZSgpIHsgYWRkUGVuZGluZ0FjdGlvbihPdXRwdXREZXZpY2VBdmFpbGFiaWxp
dHlDaGFuZ2VkKTsgfQogICAgIHZvaWQgY3VycmVudERldmljZURpZENoYW5nZSgpIHsgYWRkUGVu
ZGluZ0FjdGlvbihDdXJyZW50RGV2aWNlRGlkQ2hhbmdlKTsgfQorICAgIHZvaWQgY3VzdG9tUGxh
eWJhY2tBY3Rpb25TZWxlY3RlZCgpIHsgYWRkUGVuZGluZ0FjdGlvbihDdXN0b21QbGF5YmFja0Fj
dGlvblNlbGVjdGVkKTsgfQogCiBwcm90ZWN0ZWQ6CiAgICAgZXhwbGljaXQgTWVkaWFQbGF5YmFj
a1RhcmdldFBpY2tlcihDbGllbnQmKTsKQEAgLTY1LDYgKzY3LDcgQEAgcHJvdGVjdGVkOgogICAg
IGVudW0gQWN0aW9uVHlwZSB7CiAgICAgICAgIE91dHB1dERldmljZUF2YWlsYWJpbGl0eUNoYW5n
ZWQgPSAxIDw8IDAsCiAgICAgICAgIEN1cnJlbnREZXZpY2VEaWRDaGFuZ2UgPSAxIDw8IDEsCisg
ICAgICAgIEN1c3RvbVBsYXliYWNrQWN0aW9uU2VsZWN0ZWQgPSAxIDw8IDIsCiAgICAgfTsKICAg
ICB0eXBlZGVmIHVuc2lnbmVkIFBlbmRpbmdBY3Rpb25GbGFnczsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5
YmFja1RhcmdldFBpY2tlck1hYy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1hYy5oCmluZGV4IDlh
MTM4Njk2Nzc5NTFjMGNlMDEyOThiNzUxMmNmYTU3ZTVhZTExZWQuLjYzZjVkMzBmZDZjYmI3MzVk
OGIyNjVhYzc1MmY0ZjBmZmQ3OGU1ODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJN
YWMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9NZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTWFjLmgKQEAgLTQzLDcgKzQzLDggQEAgcHVi
bGljOgogCiAgICAgdmlydHVhbCB+TWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1hYygpOwogCi0g
ICAgdm9pZCBzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIoY29uc3QgRmxvYXRSZWN0JiwgYm9vbCBj
aGVja0FjdGl2ZVJvdXRlKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2hvd1BsYXliYWNr
VGFyZ2V0UGlja2VyKGNvbnN0IEZsb2F0UmVjdCYsIGJvb2wgY2hlY2tBY3RpdmVSb3V0ZSwgY29u
c3QgU3RyaW5nJikgb3ZlcnJpZGU7CisKICAgICB2b2lkIHN0YXJ0aW5nTW9uaXRvcmluZ1BsYXli
YWNrVGFyZ2V0cygpIG92ZXJyaWRlOwogICAgIHZvaWQgc3RvcE1vbml0b3JpbmdQbGF5YmFja1Rh
cmdldHMoKSBvdmVycmlkZTsKICAgICB2b2lkIGludmFsaWRhdGVQbGF5YmFja1RhcmdldHMoKSBv
dmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJNYWMubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXliYWNr
VGFyZ2V0UGlja2VyTWFjLm1tCmluZGV4IDEwYWFhNTBkMzhmODdiNjRlNDM1NjNjM2U4Mzg0OTZi
ZWRlNTczMTQuLjg4M2QxZTE0Y2ZhZjJhMGI4ZTBkMmQ2YWFhNjU1YjUyZDBiMmM1MTIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5YmFja1RhcmdldFBpY2tl
ck1hYy5tbQpAQCAtNTEsOSArNTEsMTUgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiBzdGF0
aWMgTlNTdHJpbmcgKmV4dGVybmFsT3V0cHV0RGV2aWNlQXZhaWxhYmxlS2V5TmFtZSA9IEAiZXh0
ZXJuYWxPdXRwdXREZXZpY2VBdmFpbGFibGUiOwogc3RhdGljIE5TU3RyaW5nICpleHRlcm5hbE91
dHB1dERldmljZVBpY2tlZEtleU5hbWUgPSBAImV4dGVybmFsT3V0cHV0RGV2aWNlUGlja2VkIjsK
IAordHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgQVZPdXRwdXREZXZpY2VNZW51Q29udHJvbGxl
clNlbGVjdGlvbikgeworICAgIEFWT3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXJTZWxlY3Rpb25P
dXRwdXREZXZpY2UsCisgICAgQVZPdXRwdXREZXZpY2VNZW51Q29udHJvbGxlclNlbGVjdGlvbkN1
c3RvbU1lbnVJdGVtLAorICAgIEFWT3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXJTZWxlY3Rpb25O
b25lCit9OworCiAvLyBGSVhNRTogcmVtb3ZlIHRoaXMgb25jZSB0aGUgaGVhZGVycyBhcmUgYXZh
aWxhYmxlLgogQGludGVyZmFjZSBBVk91dHB1dERldmljZU1lbnVDb250cm9sbGVyIChGb3J3YXJk
RGVjbGFyYXRpb24pCi0tIChCT09MKXNob3dNZW51Rm9yUmVjdDooTlNSZWN0KXNjcmVlblJlY3Qg
YXBwZWFyYW5jZU5hbWU6KE5TU3RyaW5nICopYXBwZWFyYW5jZU5hbWUgYWxsb3dSZXNlbGVjdGlv
bk9mU2VsZWN0ZWRPdXRwdXREZXZpY2U6KEJPT0wpYWxsb3dSZXNlbGVjdGlvbk9mU2VsZWN0ZWRP
dXRwdXREZXZpY2U7CistIChBVk91dHB1dERldmljZU1lbnVDb250cm9sbGVyU2VsZWN0aW9uKXNo
b3dNZW51Rm9yUmVjdDooTlNSZWN0KXNjcmVlblJlY3QgYXBwZWFyYW5jZU5hbWU6KE5TU3RyaW5n
ICopYXBwZWFyYW5jZU5hbWUgYWxsb3dSZXNlbGVjdGlvbk9mU2VsZWN0ZWRPdXRwdXREZXZpY2U6
KEJPT0wpYWxsb3dSZXNlbGVjdGlvbk9mU2VsZWN0ZWRPdXRwdXREZXZpY2UgY3VzdG9tTWVudUl0
ZW1UaXRsZTooTlNTdHJpbmcgKiljdXN0b21NZW51SXRlbVRpdGxlIGN1c3RvbU1lbnVJdGVtRW5h
YmxlZDooQk9PTCljdXN0b21NZW51SXRlbUVuYWJsZWQ7CiBAZW5kCiAKIEBpbnRlcmZhY2UgV2Vi
QVZPdXRwdXREZXZpY2VNZW51Q29udHJvbGxlckhlbHBlciA6IE5TT2JqZWN0IHsKQEAgLTExNCw3
ICsxMjAsNyBAQCBBVk91dHB1dERldmljZU1lbnVDb250cm9sbGVyVHlwZSAqTWVkaWFQbGF5YmFj
a1RhcmdldFBpY2tlck1hYzo6ZGV2aWNlUGlja2VyKCkKICAgICByZXR1cm4gbV9vdXRwdXREZXZp
Y2VNZW51Q29udHJvbGxlci5nZXQoKTsKIH0KIAotdm9pZCBNZWRpYVBsYXliYWNrVGFyZ2V0UGlj
a2VyTWFjOjpzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIoY29uc3QgRmxvYXRSZWN0JiBsb2NhdGlv
biwgYm9vbCBjaGVja0FjdGl2ZVJvdXRlKQordm9pZCBNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2Vy
TWFjOjpzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIoY29uc3QgRmxvYXRSZWN0JiBsb2NhdGlvbiwg
Ym9vbCBjaGVja0FjdGl2ZVJvdXRlLCBjb25zdCBTdHJpbmcmIGN1c3RvbU1lbnVJdGVtVGl0bGUp
CiB7CiAgICAgaWYgKCFjbGllbnQoKSB8fCBtX3Nob3dpbmdNZW51KQogICAgICAgICByZXR1cm47
CkBAIC0xMjIsMTQgKzEyOCwyOSBAQCB2b2lkIE1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJNYWM6
OnNob3dQbGF5YmFja1RhcmdldFBpY2tlcihjb25zdCBGbG9hdFJlY3QmIGxvYwogICAgIExPRyhN
ZWRpYSwgIk1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJNYWM6OnNob3dQbGF5YmFja1RhcmdldFBp
Y2tlciAtIGNoZWNrQWN0aXZlUm91dGUgPSAlaSIsIChpbnQpY2hlY2tBY3RpdmVSb3V0ZSk7CiAK
ICAgICBBVk91dHB1dERldmljZU1lbnVDb250cm9sbGVyVHlwZSAqcGlja2VyID0gZGV2aWNlUGlj
a2VyKCk7Ci0gICAgaWYgKCFbcGlja2VyIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3Ioc2hv
d01lbnVGb3JSZWN0OmFwcGVhcmFuY2VOYW1lOmFsbG93UmVzZWxlY3Rpb25PZlNlbGVjdGVkT3V0
cHV0RGV2aWNlOildKQorICAgIGlmICghW3BpY2tlciByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVj
dG9yKHNob3dNZW51Rm9yUmVjdDphcHBlYXJhbmNlTmFtZTphbGxvd1Jlc2VsZWN0aW9uT2ZTZWxl
Y3RlZE91dHB1dERldmljZTpjdXN0b21NZW51SXRlbVRpdGxlOmN1c3RvbU1lbnVJdGVtRW5hYmxl
ZDopXSAmJiAhW3BpY2tlciByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKHNob3dNZW51Rm9y
UmVjdDphcHBlYXJhbmNlTmFtZTphbGxvd1Jlc2VsZWN0aW9uT2ZTZWxlY3RlZE91dHB1dERldmlj
ZTopXSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgbV9zaG93aW5nTWVudSA9IHRydWU7Ci0gICAg
aWYgKFtwaWNrZXIgc2hvd01lbnVGb3JSZWN0OmxvY2F0aW9uIGFwcGVhcmFuY2VOYW1lOk5TQXBw
ZWFyYW5jZU5hbWVWaWJyYW50TGlnaHQgYWxsb3dSZXNlbGVjdGlvbk9mU2VsZWN0ZWRPdXRwdXRE
ZXZpY2U6IWNoZWNrQWN0aXZlUm91dGVdKSB7CisKKyAgICBpZiAoW3BpY2tlciByZXNwb25kc1Rv
U2VsZWN0b3I6QHNlbGVjdG9yKHNob3dNZW51Rm9yUmVjdDphcHBlYXJhbmNlTmFtZTphbGxvd1Jl
c2VsZWN0aW9uT2ZTZWxlY3RlZE91dHB1dERldmljZTpjdXN0b21NZW51SXRlbVRpdGxlOmN1c3Rv
bU1lbnVJdGVtRW5hYmxlZDopXSkgeworICAgICAgICBOU1N0cmluZyAqY3VzdG9tTWVudUl0ZW1U
aXRsZU5TU3RyaW5nID0gY3VzdG9tTWVudUl0ZW1UaXRsZS5pc0VtcHR5KCkgPyBuaWwgOiAoTlNT
dHJpbmcgKiljdXN0b21NZW51SXRlbVRpdGxlOworICAgICAgICBzd2l0Y2ggKFtwaWNrZXIgc2hv
d01lbnVGb3JSZWN0OmxvY2F0aW9uIGFwcGVhcmFuY2VOYW1lOk5TQXBwZWFyYW5jZU5hbWVWaWJy
YW50TGlnaHQgYWxsb3dSZXNlbGVjdGlvbk9mU2VsZWN0ZWRPdXRwdXREZXZpY2U6IWNoZWNrQWN0
aXZlUm91dGUgY3VzdG9tTWVudUl0ZW1UaXRsZTpjdXN0b21NZW51SXRlbVRpdGxlTlNTdHJpbmcg
Y3VzdG9tTWVudUl0ZW1FbmFibGVkOllFU10pIHsKKyAgICAgICAgY2FzZSBBVk91dHB1dERldmlj
ZU1lbnVDb250cm9sbGVyU2VsZWN0aW9uQ3VzdG9tTWVudUl0ZW06CisgICAgICAgICAgICBjdXN0
b21QbGF5YmFja0FjdGlvblNlbGVjdGVkKCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
Y2FzZSBBVk91dHB1dERldmljZU1lbnVDb250cm9sbGVyU2VsZWN0aW9uT3V0cHV0RGV2aWNlOgor
ICAgICAgICAgICAgaWYgKCFjaGVja0FjdGl2ZVJvdXRlKQorICAgICAgICAgICAgICAgIGN1cnJl
bnREZXZpY2VEaWRDaGFuZ2UoKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFW
T3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXJTZWxlY3Rpb25Ob25lOgorICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIH0KKyAgICB9IGVsc2UgaWYgKFtwaWNrZXIgc2hvd01lbnVGb3JSZWN0Omxv
Y2F0aW9uIGFwcGVhcmFuY2VOYW1lOk5TQXBwZWFyYW5jZU5hbWVWaWJyYW50TGlnaHQgYWxsb3dS
ZXNlbGVjdGlvbk9mU2VsZWN0ZWRPdXRwdXREZXZpY2U6IWNoZWNrQWN0aXZlUm91dGVdKSB7CiAg
ICAgICAgIGlmICghY2hlY2tBY3RpdmVSb3V0ZSkKICAgICAgICAgICAgIGN1cnJlbnREZXZpY2VE
aWRDaGFuZ2UoKTsKICAgICB9CisKICAgICBtX3Nob3dpbmdNZW51ID0gZmFsc2U7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJWaWRlb0Z1bGxzY3JlZW5J
bnRlcmZhY2VNYWMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJWaWRlb0Z1bGxz
Y3JlZW5JbnRlcmZhY2VNYWMuaAppbmRleCA2ODVhNjdiNzA0Y2Q4NDlkMjBkZDJmOTVlMjE4M2Q3
NzNjM2U3ZTRjLi5jNGMyNGQwMDk3ZWEzZGM4M2Y0NGYzNDYwYTI0ZDJhYzdlZmM5NDM3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViVmlkZW9GdWxsc2NyZWVuSW50
ZXJmYWNlTWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYlZpZGVvRnVs
bHNjcmVlbkludGVyZmFjZU1hYy5oCkBAIC03MCw3ICs3MCw3IEBAIHB1YmxpYzoKICAgICBXRUJD
T1JFX0VYUE9SVCB2b2lkIHNldENhblBsYXlGYXN0UmV2ZXJzZShib29sKSBvdmVycmlkZSB7IH0K
ICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldEF1ZGlvTWVkaWFTZWxlY3Rpb25PcHRpb25zKGNv
bnN0IFZlY3RvcjxXVEY6OlN0cmluZz4mIC8qb3B0aW9ucyovLCB1aW50NjRfdCAvKnNlbGVjdGVk
SW5kZXgqLykgb3ZlcnJpZGUgeyB9CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRMZWdpYmxl
TWVkaWFTZWxlY3Rpb25PcHRpb25zKGNvbnN0IFZlY3RvcjxXVEY6OlN0cmluZz4mIC8qb3B0aW9u
cyovLCB1aW50NjRfdCAvKnNlbGVjdGVkSW5kZXgqLykgb3ZlcnJpZGUgeyB9Ci0gICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCBzZXRFeHRlcm5hbFBsYXliYWNrKGJvb2wgLyplbmFibGVkKi8sIEV4dGVy
bmFsUGxheWJhY2tUYXJnZXRUeXBlLCBXVEY6OlN0cmluZyAvKmxvY2FsaXplZERldmljZU5hbWUq
Lykgb3ZlcnJpZGUgeyB9CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRFeHRlcm5hbFBsYXli
YWNrKGJvb2wgZW5hYmxlZCwgRXh0ZXJuYWxQbGF5YmFja1RhcmdldFR5cGUsIFdURjo6U3RyaW5n
IGxvY2FsaXplZERldmljZU5hbWUpIG92ZXJyaWRlOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQg
c2V0V2lyZWxlc3NWaWRlb1BsYXliYWNrRGlzYWJsZWQoYm9vbCkgb3ZlcnJpZGUgeyB9CiAKICAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldHVwRnVsbHNjcmVlbihOU1ZpZXcmIGxheWVySG9zdGVk
VmlldywgY29uc3QgSW50UmVjdCYgaW5pdGlhbFJlY3QsIE5TV2luZG93ICpwYXJlbnRXaW5kb3cs
IEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSwgYm9vbCBhbGxvd3NQ
aWN0dXJlSW5QaWN0dXJlUGxheWJhY2spOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWFjL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYy5tbSBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21hYy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWMubW0KaW5kZXgg
MWZhZWMyNTlmNzc0YTY1ZjUyOGQ0ZWIxOTEwYzMyMTNhYjc0MDZmYS4uNTJhNjcyZmZkOGFjYTJl
MzQzNDJiN2ZlNGE0M2JlMmMzNzBhMTEwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWFjL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYy5tbQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFjLm1tCkBA
IC05OSw2ICs5OSwxMCBAQCB2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYzo6cHJl
cGFyZWRUb1JldHVyblRvSW5saW5lKGJvb2wsIGNvbnN0IEludFJlYwogewogfQogCit2b2lkIFdl
YlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYzo6c2V0RXh0ZXJuYWxQbGF5YmFjayhib29sLCBF
eHRlcm5hbFBsYXliYWNrVGFyZ2V0VHlwZSwgV1RGOjpTdHJpbmcpCit7Cit9CisKIGJvb2wgc3Vw
cG9ydHNQaWN0dXJlSW5QaWN0dXJlKCkKIHsKICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJN
b2NrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTWVkaWFQbGF5YmFja1Rhcmdl
dFBpY2tlck1vY2suY3BwCmluZGV4IDc3NDI1OWQ3ODlmOTBmNmI4NGM0MDkwMTNkMTllOTQxMjQ3
NjkzNDAuLjc2YjZhMDIxNWY3NTAwZDQ2Y2Y2YTQ0NzY1MmMzMDhkOWMxODk2NzkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTWVkaWFQbGF5YmFja1RhcmdldFBpY2tl
ck1vY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTWVkaWFQbGF5YmFj
a1RhcmdldFBpY2tlck1vY2suY3BwCkBAIC03MCw3ICs3MCw3IEBAIHZvaWQgTWVkaWFQbGF5YmFj
a1RhcmdldFBpY2tlck1vY2s6OnRpbWVyRmlyZWQoKQogICAgIGN1cnJlbnREZXZpY2VEaWRDaGFu
Z2UoKTsKIH0KIAotdm9pZCBNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTW9jazo6c2hvd1BsYXli
YWNrVGFyZ2V0UGlja2VyKGNvbnN0IEZsb2F0UmVjdCYsIGJvb2wgY2hlY2tBY3RpdmVSb3V0ZSkK
K3ZvaWQgTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1vY2s6OnNob3dQbGF5YmFja1RhcmdldFBp
Y2tlcihjb25zdCBGbG9hdFJlY3QmLCBib29sIGNoZWNrQWN0aXZlUm91dGUsIGNvbnN0IFN0cmlu
ZyYpCiB7CiAgICAgaWYgKCFjbGllbnQoKSB8fCBtX3Nob3dpbmdNZW51KQogICAgICAgICByZXR1
cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01lZGlhUGxheWJh
Y2tUYXJnZXRQaWNrZXJNb2NrLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01lZGlh
UGxheWJhY2tUYXJnZXRQaWNrZXJNb2NrLmgKaW5kZXggMzVjYzk1NGIwNjU0ZTA3YWQ2Nzg4ZmZi
MmRjNTA5M2I3OWYwZmRlMS4uZWFlNjNiNzE1MGY5OGZlNTE3ODQxNGJmNWVjZjc1ZTAwOWUzMWJj
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9NZWRpYVBsYXliYWNr
VGFyZ2V0UGlja2VyTW9jay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTWVk
aWFQbGF5YmFja1RhcmdldFBpY2tlck1vY2suaApAQCAtNDEsNyArNDEsNyBAQCBwdWJsaWM6CiAK
ICAgICB2aXJ0dWFsIH5NZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTW9jaygpOwogCi0gICAgdm9p
ZCBzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIoY29uc3QgRmxvYXRSZWN0JiwgYm9vbCBjaGVja0Fj
dGl2ZVJvdXRlKSBvdmVycmlkZTsKKyAgICB2b2lkIHNob3dQbGF5YmFja1RhcmdldFBpY2tlcihj
b25zdCBGbG9hdFJlY3QmLCBib29sIGNoZWNrQWN0aXZlUm91dGUsIGNvbnN0IFN0cmluZyYpIG92
ZXJyaWRlOwogICAgIHZvaWQgc3RhcnRpbmdNb25pdG9yaW5nUGxheWJhY2tUYXJnZXRzKCkgb3Zl
cnJpZGU7CiAgICAgdm9pZCBzdG9wTW9uaXRvcmluZ1BsYXliYWNrVGFyZ2V0cygpIG92ZXJyaWRl
OwogICAgIHZvaWQgaW52YWxpZGF0ZVBsYXliYWNrVGFyZ2V0cygpIG92ZXJyaWRlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmgg
Yi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAppbmRl
eCAyMGMwNmU5ZGNjMTA0ZjRjM2UwZjEwZWQ3YTNlOGJmZTczMTg5YzQ0Li44M2IxYzMyZmE2YWYw
NDUxNDMwYmViNzJhOGQ0NzI3MWU2YmRlMTM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaApAQCAtMjEzLDcgKzIxMyw3IEBAIHB1
YmxpYzoKICNpZiBFTkFCTEUoV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUKSAmJiAhUExBVEZPUk0o
SU9TKQogICAgIHZvaWQgYWRkUGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnQodWludDY0X3QgLypj
b250ZXh0SWQqLykgb3ZlcnJpZGU7CiAgICAgdm9pZCByZW1vdmVQbGF5YmFja1RhcmdldFBpY2tl
ckNsaWVudCh1aW50NjRfdCAvKmNvbnRleHRJZCovKSBvdmVycmlkZTsKLSAgICB2b2lkIHNob3dQ
bGF5YmFja1RhcmdldFBpY2tlcih1aW50NjRfdCAvKmNvbnRleHRJZCovLCBjb25zdCBXZWJDb3Jl
OjpJbnRQb2ludCYsIGJvb2wgLyogaGFzVmlkZW8gKi8pIG92ZXJyaWRlOworICAgIHZvaWQgc2hv
d1BsYXliYWNrVGFyZ2V0UGlja2VyKHVpbnQ2NF90IC8qY29udGV4dElkKi8sIGNvbnN0IFdlYkNv
cmU6OkludFBvaW50JiwgYm9vbCAvKiBoYXNWaWRlbyAqLywgY29uc3QgU3RyaW5nJikgb3ZlcnJp
ZGU7CiAgICAgdm9pZCBwbGF5YmFja1RhcmdldFBpY2tlckNsaWVudFN0YXRlRGlkQ2hhbmdlKHVp
bnQ2NF90IC8qY29udGV4dElkKi8sIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVG
bGFncykgb3ZlcnJpZGU7CiAgICAgdm9pZCBzZXRNb2NrTWVkaWFQbGF5YmFja1RhcmdldFBpY2tl
ckVuYWJsZWQoYm9vbCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBzZXRNb2NrTWVkaWFQbGF5YmFja1Rh
cmdldFBpY2tlclN0YXRlKGNvbnN0IFN0cmluZyYsIFdlYkNvcmU6Ok1lZGlhUGxheWJhY2tUYXJn
ZXRDb250ZXh0OjpTdGF0ZSkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9X
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0KaW5kZXggMGM4NTk0MGU0Mjg2ZjFlY2I1
NGRhNjIxMzI4MzIyYjE2YWU2OWI1NS4uYTIyYjk0ZWViNzg2MjkwYTBjMjBlNGVlNzcxN2VjNzcx
MmQ5MGIxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
Q2hyb21lQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dl
YkNocm9tZUNsaWVudC5tbQpAQCAtMTAzMiw3ICsxMDMyLDcgQEAgdm9pZCBXZWJDaHJvbWVDbGll
bnQ6OnJlbW92ZVBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50KHVpbnQ2NF90IGNvbnRleHRJZCkK
ICAgICBbbV93ZWJWaWV3IF9yZW1vdmVQbGF5YmFja1RhcmdldFBpY2tlckNsaWVudDpjb250ZXh0
SWRdOwogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6c2hvd1BsYXliYWNrVGFyZ2V0UGlja2Vy
KHVpbnQ2NF90IGNvbnRleHRJZCwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGxvY2F0aW9uLCBi
b29sIGhhc1ZpZGVvKQordm9pZCBXZWJDaHJvbWVDbGllbnQ6OnNob3dQbGF5YmFja1RhcmdldFBp
Y2tlcih1aW50NjRfdCBjb250ZXh0SWQsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBsb2NhdGlv
biwgYm9vbCBoYXNWaWRlbywgY29uc3QgU3RyaW5nJikKIHsKICAgICBbbV93ZWJWaWV3IF9zaG93
UGxheWJhY2tUYXJnZXRQaWNrZXI6Y29udGV4dElkIGxvY2F0aW9uOmxvY2F0aW9uIGhhc1ZpZGVv
Omhhc1ZpZGVvXTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2Vi
TWVkaWFQbGF5YmFja1RhcmdldFBpY2tlci5oIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9X
ZWJNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyLmgKaW5kZXggZGQxZWQyYzQzNTRiMmFjN2YyNzQ3
OWIwZjBiMTY0NzY1NTQxYmJmMy4uOGU1NDJmODE2NDY0OWQxZjJiNzZlNTQyMmZlZmZmZTUxMjkz
ODllYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJNZWRpYVBsYXli
YWNrVGFyZ2V0UGlja2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJNZWRp
YVBsYXliYWNrVGFyZ2V0UGlja2VyLmgKQEAgLTQ1LDcgKzQ1LDcgQEAgcHVibGljOgogCiAgICAg
dm9pZCBhZGRQbGF5YmFja1RhcmdldFBpY2tlckNsaWVudCh1aW50NjRfdCk7CiAgICAgdm9pZCBy
ZW1vdmVQbGF5YmFja1RhcmdldFBpY2tlckNsaWVudCh1aW50NjRfdCk7Ci0gICAgdm9pZCBzaG93
UGxheWJhY2tUYXJnZXRQaWNrZXIodWludDY0X3QsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYs
IGJvb2wgaGFzVmlkZW8pOworICAgIHZvaWQgc2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKHVpbnQ2
NF90LCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmLCBib29sIGhhc1ZpZGVvLCBjb25zdCBTdHJp
bmcmKTsKICAgICB2b2lkIHBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50U3RhdGVEaWRDaGFuZ2Uo
dWludDY0X3QsIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyk7CiAgICAg
dm9pZCBzZXRNb2NrTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlckVuYWJsZWQoYm9vbCk7CiAgICAg
dm9pZCBzZXRNb2NrTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlclN0YXRlKGNvbnN0IFN0cmluZyYs
IFdlYkNvcmU6Ok1lZGlhUGxheWJhY2tUYXJnZXRDb250ZXh0OjpTdGF0ZSk7CkBAIC01NCw2ICs1
NCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0UGxheWJhY2tUYXJnZXQodWludDY0
X3QsIFJlZjxXZWJDb3JlOjpNZWRpYVBsYXliYWNrVGFyZ2V0PiYmKSBvdmVycmlkZTsKICAgICB2
aXJ0dWFsIHZvaWQgZXh0ZXJuYWxPdXRwdXREZXZpY2VBdmFpbGFibGVEaWRDaGFuZ2UodWludDY0
X3QsIGJvb2wpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBzZXRTaG91bGRQbGF5VG9QbGF5
YmFja1RhcmdldCh1aW50NjRfdCwgYm9vbCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGN1
c3RvbVBsYXliYWNrQWN0aW9uU2VsZWN0ZWQodWludDY0X3QpIG92ZXJyaWRlOwogCiAgICAgdm9p
ZCBpbnZhbGlkYXRlKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcv
V2ViTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlci5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZp
ZXcvV2ViTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlci5tbQppbmRleCA2ZDhjYmY1NzVmZmE3MGJh
NmZlOGYyZjcwMDY4NTM4ZjlmOWUyYjBmLi5lY2JmNzBmMmJiYjQ1NDg3N2JjMDhlMmUwYzgzNGUy
ZGM5Y2E0MjRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYk1lZGlh
UGxheWJhY2tUYXJnZXRQaWNrZXIubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9X
ZWJNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyLm1tCkBAIC01MSw5ICs1MSw5IEBAIHZvaWQgV2Vi
TWVkaWFQbGF5YmFja1RhcmdldFBpY2tlcjo6cmVtb3ZlUGxheWJhY2tUYXJnZXRQaWNrZXJDbGll
bnQodWludDY0X3QgY29uCiAgICAgV2ViQ29yZTo6V2ViTWVkaWFTZXNzaW9uTWFuYWdlcjo6c2hh
cmVkKCkucmVtb3ZlUGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnQoKnRoaXMsIGNvbnRleHRJZCk7
CiB9CiAKLXZvaWQgV2ViTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlcjo6c2hvd1BsYXliYWNrVGFy
Z2V0UGlja2VyKHVpbnQ2NF90IGNvbnRleHRJZCwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBy
ZWN0LCBib29sIGhhc1ZpZGVvKQordm9pZCBXZWJNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyOjpz
aG93UGxheWJhY2tUYXJnZXRQaWNrZXIodWludDY0X3QgY29udGV4dElkLCBjb25zdCBXZWJDb3Jl
OjpGbG9hdFJlY3QmIHJlY3QsIGJvb2wgaGFzVmlkZW8sIGNvbnN0IFN0cmluZyYgY3VzdG9tTWVu
dUl0ZW1UaXRsZSkKIHsKLSAgICBXZWJDb3JlOjpXZWJNZWRpYVNlc3Npb25NYW5hZ2VyOjpzaGFy
ZWQoKS5zaG93UGxheWJhY2tUYXJnZXRQaWNrZXIoKnRoaXMsIGNvbnRleHRJZCwgV2ViQ29yZTo6
SW50UmVjdChyZWN0KSwgaGFzVmlkZW8pOworICAgIFdlYkNvcmU6OldlYk1lZGlhU2Vzc2lvbk1h
bmFnZXI6OnNoYXJlZCgpLnNob3dQbGF5YmFja1RhcmdldFBpY2tlcigqdGhpcywgY29udGV4dElk
LCBXZWJDb3JlOjpJbnRSZWN0KHJlY3QpLCBoYXNWaWRlbywgY3VzdG9tTWVudUl0ZW1UaXRsZSk7
CiB9CiAKIHZvaWQgV2ViTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlcjo6cGxheWJhY2tUYXJnZXRQ
aWNrZXJDbGllbnRTdGF0ZURpZENoYW5nZSh1aW50NjRfdCBjb250ZXh0SWQsIFdlYkNvcmU6Ok1l
ZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBzdGF0ZSkKQEAgLTk1LDYgKzk1LDE0IEBAIHZv
aWQgV2ViTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlcjo6c2V0U2hvdWxkUGxheVRvUGxheWJhY2tU
YXJnZXQodWludDY0X3QgY29udGV4CiAgICAgbV9wYWdlLT5zZXRTaG91bGRQbGF5VG9QbGF5YmFj
a1RhcmdldChjb250ZXh0SWQsIHNob3VsZFBsYXkpOwogfQogCit2b2lkIFdlYk1lZGlhUGxheWJh
Y2tUYXJnZXRQaWNrZXI6OmN1c3RvbVBsYXliYWNrQWN0aW9uU2VsZWN0ZWQodWludDY0X3QgY29u
dGV4dElkKQoreworICAgIGlmICghbV9wYWdlKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3Bh
Z2UtPmN1c3RvbVBsYXliYWNrQWN0aW9uU2VsZWN0ZWQoY29udGV4dElkKTsKK30KKwogdm9pZCBX
ZWJNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyOjppbnZhbGlkYXRlKCkKIHsKICAgICBtX3BhZ2Ug
PSBudWxscHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3
Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCmluZGV4IDZiZTkyNTU1
N2EzNjBhOTdiNmMwNWEzNDVhZTYyZjgyM2E2MzRhZWQuLjlhZWM0ODZiODliMmVjZGE4YzYwMjdi
MDQ3MDY5YjdlMWFhZmM2NDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcv
V2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KQEAg
LTg3NDAsNyArODc0MCw3IEBAIGJvb2wgTGF5ZXJGbHVzaENvbnRyb2xsZXI6OmZsdXNoTGF5ZXJz
KCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgTlNSZWN0IHJlY3RJblNjcmVlbkNvb3JkaW5hdGVz
ID0gW3NlbGYud2luZG93IGNvbnZlcnRSZWN0VG9TY3JlZW46TlNNYWtlUmVjdChsb2NhdGlvbi54
KCksIGxvY2F0aW9uLnkoKSwgMCwgMCldOwotICAgIFtzZWxmIF9kZXZpY2VQaWNrZXJdLT5zaG93
UGxheWJhY2tUYXJnZXRQaWNrZXIoY2xpZW50SWQsIHJlY3RJblNjcmVlbkNvb3JkaW5hdGVzLCBo
YXNWaWRlbyk7CisgICAgW3NlbGYgX2RldmljZVBpY2tlcl0tPnNob3dQbGF5YmFja1RhcmdldFBp
Y2tlcihjbGllbnRJZCwgcmVjdEluU2NyZWVuQ29vcmRpbmF0ZXMsIGhhc1ZpZGVvLCBTdHJpbmco
KSk7CiB9CiAKIC0gKHZvaWQpX3BsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50U3RhdGVEaWRDaGFu
Z2U6KHVpbnQ2NF90KWNsaWVudElkIHN0YXRlOihXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRp
YVN0YXRlRmxhZ3Mpc3RhdGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5j
cHAKaW5kZXggOTc0NjdkNzdiMjYyZDY1MjNhNWZiZDY4MWZlYWRmZTM5Njk5ZWQ2MS4uODYwNzNj
NzlkNzgyZWYzNTliNzY3NzgwOWJlYzg4MzRjZWFjOGQ3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTYwOTcsOSArNjA5Nyw5IEBAIHZvaWQgV2ViUGFn
ZVByb3h5OjpyZW1vdmVQbGF5YmFja1RhcmdldFBpY2tlckNsaWVudCh1aW50NjRfdCBjb250ZXh0
SWQpCiAgICAgbV9wYWdlQ2xpZW50Lm1lZGlhU2Vzc2lvbk1hbmFnZXIoKS5yZW1vdmVQbGF5YmFj
a1RhcmdldFBpY2tlckNsaWVudCgqdGhpcywgY29udGV4dElkKTsKIH0KIAotdm9pZCBXZWJQYWdl
UHJveHk6OnNob3dQbGF5YmFja1RhcmdldFBpY2tlcih1aW50NjRfdCBjb250ZXh0SWQsIGNvbnN0
IFdlYkNvcmU6OkZsb2F0UmVjdCYgcmVjdCwgYm9vbCBoYXNWaWRlbykKK3ZvaWQgV2ViUGFnZVBy
b3h5OjpzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIodWludDY0X3QgY29udGV4dElkLCBjb25zdCBX
ZWJDb3JlOjpGbG9hdFJlY3QmIHJlY3QsIGJvb2wgaGFzVmlkZW8sIGNvbnN0IFN0cmluZyYgY3Vz
dG9tTWVudUl0ZW1UaXRsZSkKIHsKLSAgICBtX3BhZ2VDbGllbnQubWVkaWFTZXNzaW9uTWFuYWdl
cigpLnNob3dQbGF5YmFja1RhcmdldFBpY2tlcigqdGhpcywgY29udGV4dElkLCBtX3BhZ2VDbGll
bnQucm9vdFZpZXdUb1NjcmVlbihJbnRSZWN0KHJlY3QpKSwgaGFzVmlkZW8pOworICAgIG1fcGFn
ZUNsaWVudC5tZWRpYVNlc3Npb25NYW5hZ2VyKCkuc2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKCp0
aGlzLCBjb250ZXh0SWQsIG1fcGFnZUNsaWVudC5yb290Vmlld1RvU2NyZWVuKEludFJlY3QocmVj
dCkpLCBoYXNWaWRlbywgY3VzdG9tTWVudUl0ZW1UaXRsZSk7CiB9CiAKIHZvaWQgV2ViUGFnZVBy
b3h5OjpwbGF5YmFja1RhcmdldFBpY2tlckNsaWVudFN0YXRlRGlkQ2hhbmdlKHVpbnQ2NF90IGNv
bnRleHRJZCwgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIHN0YXRlKQpA
QCAtNjE0MCw2ICs2MTQwLDE0IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpzZXRTaG91bGRQbGF5VG9Q
bGF5YmFja1RhcmdldCh1aW50NjRfdCBjb250ZXh0SWQsIGJvb2wgc2hvdWxkCiAKICAgICBtX3By
b2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlNldFNob3VsZFBsYXlUb1BsYXliYWNrVGFy
Z2V0KGNvbnRleHRJZCwgc2hvdWxkUGxheSksIG1fcGFnZUlEKTsKIH0KKwordm9pZCBXZWJQYWdl
UHJveHk6OmN1c3RvbVBsYXliYWNrQWN0aW9uU2VsZWN0ZWQodWludDY0X3QgY29udGV4dElkKQor
eworICAgIGlmICghaXNWYWxpZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3Byb2Nlc3Mt
PnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkN1c3RvbVBsYXliYWNrQWN0aW9uU2VsZWN0ZWQoY29u
dGV4dElkKSwgbV9wYWdlSUQpOworfQogI2VuZGlmCiAKIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRD
aGFuZ2VCYWNrZ3JvdW5kQ29sb3IoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5oCmluZGV4IGYyMzE5NGVkMjkyNDAxMzExYmY3ZjQ1MWNhNjlkYWQxMTQyODM2ZDcuLmI2YmI1
ZGIyZWQ2ZmE2MTRhZGVmNzRiMjUwZWU5NTAyNzEzZjM3YzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTEwNjksNyArMTA2OSw3IEBAIHB1YmxpYzoKICNpZiBF
TkFCTEUoV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUKSAmJiAhUExBVEZPUk0oSU9TKQogICAgIHZv
aWQgYWRkUGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnQodWludDY0X3QpOwogICAgIHZvaWQgcmVt
b3ZlUGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnQodWludDY0X3QpOwotICAgIHZvaWQgc2hvd1Bs
YXliYWNrVGFyZ2V0UGlja2VyKHVpbnQ2NF90LCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmLCBi
b29sIGhhc1ZpZGVvKTsKKyAgICB2b2lkIHNob3dQbGF5YmFja1RhcmdldFBpY2tlcih1aW50NjRf
dCwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiwgYm9vbCBoYXNWaWRlbywgY29uc3QgU3RyaW5n
Jik7CiAgICAgdm9pZCBwbGF5YmFja1RhcmdldFBpY2tlckNsaWVudFN0YXRlRGlkQ2hhbmdlKHVp
bnQ2NF90LCBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MpOwogICAgIHZv
aWQgc2V0TW9ja01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJFbmFibGVkKGJvb2wpOwogICAgIHZv
aWQgc2V0TW9ja01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJTdGF0ZShjb25zdCBTdHJpbmcmLCBX
ZWJDb3JlOjpNZWRpYVBsYXliYWNrVGFyZ2V0Q29udGV4dDo6U3RhdGUpOwpAQCAtMTA3OCw2ICsx
MDc4LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRQbGF5YmFja1RhcmdldCh1aW50
NjRfdCwgUmVmPFdlYkNvcmU6Ok1lZGlhUGxheWJhY2tUYXJnZXQ+JiYpIG92ZXJyaWRlOwogICAg
IHZpcnR1YWwgdm9pZCBleHRlcm5hbE91dHB1dERldmljZUF2YWlsYWJsZURpZENoYW5nZSh1aW50
NjRfdCwgYm9vbCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHNldFNob3VsZFBsYXlUb1Bs
YXliYWNrVGFyZ2V0KHVpbnQ2NF90LCBib29sKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQg
Y3VzdG9tUGxheWJhY2tBY3Rpb25TZWxlY3RlZCh1aW50NjRfdCkgb3ZlcnJpZGU7CiAjZW5kaWYK
IAogICAgIHZvaWQgZGlkQ2hhbmdlQmFja2dyb3VuZENvbG9yKCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgppbmRleCA5MmViNTZhOWZj
NGFlMmJjMmY3OWYwYjY3NDA0YTk3MWQ4MWE4YWFjLi42MmQ4Nzg5NzhiMzRjNTE2ODkwYWIzYTMz
ZWNmMWE5MDYyYjM1NzM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkubWVzc2FnZXMuaW4KQEAgLTQzNSw3ICs0MzUsNyBAQCBtZXNzYWdlcyAtPiBXZWJQ
YWdlUHJveHkgewogI2lmIEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpICYmICFQTEFU
Rk9STShJT1MpCiAgICAgQWRkUGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnQodWludDY0X3QgY29u
dGV4dElkKQogICAgIFJlbW92ZVBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50KHVpbnQ2NF90IGNv
bnRleHRJZCkKLSAgICBTaG93UGxheWJhY2tUYXJnZXRQaWNrZXIodWludDY0X3QgY2xpZW50SWQs
IFdlYkNvcmU6OkZsb2F0UmVjdCBwaWNrZXJMb2NhdGlvbiwgYm9vbCBoYXNWaWRlbykKKyAgICBT
aG93UGxheWJhY2tUYXJnZXRQaWNrZXIodWludDY0X3QgY2xpZW50SWQsIFdlYkNvcmU6OkZsb2F0
UmVjdCBwaWNrZXJMb2NhdGlvbiwgYm9vbCBoYXNWaWRlbywgU3RyaW5nIGN1c3RvbU1lbnVJdGVt
VGl0bGUpCiAgICAgUGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0ZURpZENoYW5nZSh1aW50
NjRfdCBjb250ZXh0SWQsIHVuc2lnbmVkIG1lZGlhU3RhdGUpCiAgICAgU2V0TW9ja01lZGlhUGxh
eWJhY2tUYXJnZXRQaWNrZXJFbmFibGVkKGJvb2wgZW5hYmxlZCkKICAgICBTZXRNb2NrTWVkaWFQ
bGF5YmFja1RhcmdldFBpY2tlclN0YXRlKFN0cmluZyBuYW1lLCB1bnNpZ25lZCBwaWNrZXJTdGF0
ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAppbmRleCBiZjU3Y2JmMjU2NDQ5YWQxZmFkYjkzN2Ni
ZmVhOWQ5MzU3MzU2M2UzLi5kMWI5ODU5ZWE5ZjQ0MDA3NmEzMzkzNDJjMjg5NTJlNjM4NDAzYWZj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkNocm9tZUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCkBAIC0xMDkyLDExICsxMDkyLDExIEBAIHZvaWQg
V2ViQ2hyb21lQ2xpZW50OjpyZW1vdmVQbGF5YmFja1RhcmdldFBpY2tlckNsaWVudCh1aW50NjRf
dCBjb250ZXh0SWQpCiB9CiAKIAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnNob3dQbGF5YmFja1Rh
cmdldFBpY2tlcih1aW50NjRfdCBjb250ZXh0SWQsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBw
b3NpdGlvbiwgYm9vbCBpc1ZpZGVvKQordm9pZCBXZWJDaHJvbWVDbGllbnQ6OnNob3dQbGF5YmFj
a1RhcmdldFBpY2tlcih1aW50NjRfdCBjb250ZXh0SWQsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50
JiBwb3NpdGlvbiwgYm9vbCBpc1ZpZGVvLCBjb25zdCBTdHJpbmcmIGN1c3RvbU1lbnVJdGVtVGl0
bGUpCiB7CiAgICAgRnJhbWVWaWV3KiBmcmFtZVZpZXcgPSBtX3BhZ2UtPm1haW5GcmFtZSgpLT52
aWV3KCk7CiAgICAgRmxvYXRSZWN0IHJlY3QoZnJhbWVWaWV3LT5jb250ZW50c1RvUm9vdFZpZXco
ZnJhbWVWaWV3LT53aW5kb3dUb0NvbnRlbnRzKHBvc2l0aW9uKSksIEZsb2F0U2l6ZSgpKTsKLSAg
ICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6U2hvd1BsYXliYWNrVGFyZ2V0
UGlja2VyKGNvbnRleHRJZCwgcmVjdCwgaXNWaWRlbykpOworICAgIG1fcGFnZS0+c2VuZChNZXNz
YWdlczo6V2ViUGFnZVByb3h5OjpTaG93UGxheWJhY2tUYXJnZXRQaWNrZXIoY29udGV4dElkLCBy
ZWN0LCBpc1ZpZGVvLCBjdXN0b21NZW51SXRlbVRpdGxlKSk7CiB9CiAKIHZvaWQgV2ViQ2hyb21l
Q2xpZW50OjpwbGF5YmFja1RhcmdldFBpY2tlckNsaWVudFN0YXRlRGlkQ2hhbmdlKHVpbnQ2NF90
IGNvbnRleHRJZCwgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIHN0YXRl
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggNzY0MTMwM2NmMjY4OWE0OWNmZjVjNmJlYmZlNDk4
YWNmODQ1OWU5Zi4uMmFkMjdlZmQzOGI4ZjFmYWI4ZTBjODU5MjA4NDNmNzU2MTE5Zjk4ZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJv
bWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkNocm9tZUNsaWVudC5oCkBAIC0zMTcsNyArMzE3LDcgQEAgcHJpdmF0ZToKICNpZiBFTkFC
TEUoV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUKSAmJiAhUExBVEZPUk0oSU9TKQogICAgIHZvaWQg
YWRkUGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnQodWludDY0X3QgLypjb250ZXh0SWQqLykgb3Zl
cnJpZGU7CiAgICAgdm9pZCByZW1vdmVQbGF5YmFja1RhcmdldFBpY2tlckNsaWVudCh1aW50NjRf
dCAvKmNvbnRleHRJZCovKSBvdmVycmlkZTsKLSAgICB2b2lkIHNob3dQbGF5YmFja1RhcmdldFBp
Y2tlcih1aW50NjRfdCBjb250ZXh0SWQsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiwgYm9vbCkg
b3ZlcnJpZGU7CisgICAgdm9pZCBzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIodWludDY0X3QgLypj
b250ZXh0SWQqLywgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmLCBib29sLCBjb25zdCBTdHJpbmcm
KSBvdmVycmlkZTsKICAgICB2b2lkIHBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50U3RhdGVEaWRD
aGFuZ2UodWludDY0X3QsIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncykg
b3ZlcnJpZGU7CiAgICAgdm9pZCBzZXRNb2NrTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlckVuYWJs
ZWQoYm9vbCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBzZXRNb2NrTWVkaWFQbGF5YmFja1RhcmdldFBp
Y2tlclN0YXRlKGNvbnN0IFN0cmluZyYsIFdlYkNvcmU6Ok1lZGlhUGxheWJhY2tUYXJnZXRDb250
ZXh0OjpTdGF0ZSkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuaAppbmRleCA4YWViNmZkNDkyMjFhMTQ0Y2QzMTYyMzMwMzkwMjRjNTc5NGI1Zjg1
Li42MzNjOTQyOTJhNzc2OTMyNjI5MDBhNjYzNzRmZDNmM2E5MWNjMjk4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTExNjEsNiArMTE2MSw3IEBA
IHByaXZhdGU6CiAgICAgdm9pZCBwbGF5YmFja1RhcmdldFNlbGVjdGVkKHVpbnQ2NF90LCBjb25z
dCBXZWJDb3JlOjpNZWRpYVBsYXliYWNrVGFyZ2V0Q29udGV4dCYgb3V0cHV0RGV2aWNlKSBjb25z
dDsKICAgICB2b2lkIHBsYXliYWNrVGFyZ2V0QXZhaWxhYmlsaXR5RGlkQ2hhbmdlKHVpbnQ2NF90
LCBib29sKTsKICAgICB2b2lkIHNldFNob3VsZFBsYXlUb1BsYXliYWNrVGFyZ2V0KHVpbnQ2NF90
LCBib29sKTsKKyAgICB2b2lkIGN1c3RvbVBsYXliYWNrQWN0aW9uU2VsZWN0ZWQodWludDY0X3Qp
OwogI2VuZGlmCiAKICAgICB2b2lkIGNsZWFyV2hlZWxFdmVudFRlc3RUcmlnZ2VyKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdl
cy5pbiBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2Vz
LmluCmluZGV4IGRlODZjOWEwN2M4OTQwNGE3ZWUwNWFmNjRlODA4NTk1NGM4NjI5YTYuLjUyYzNh
NDA0YzQ0Y2JjMTgwZTI1MzAwNDgwY2NiZmMxMThlNzJlNTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCkBAIC00MTQs
NiArNDE0LDcgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZSBMZWdhY3lSZWNlaXZlciB7CiAgICAgUGxh
eWJhY2tUYXJnZXRTZWxlY3RlZCh1aW50NjRfdCBjb250ZXh0SWQsIFdlYkNvcmU6Ok1lZGlhUGxh
eWJhY2tUYXJnZXRDb250ZXh0IHRhcmdldCkKICAgICBQbGF5YmFja1RhcmdldEF2YWlsYWJpbGl0
eURpZENoYW5nZSh1aW50NjRfdCBjb250ZXh0SWQsIGJvb2wgYXZhaWxhYmxlKQogICAgIFNldFNo
b3VsZFBsYXlUb1BsYXliYWNrVGFyZ2V0KHVpbnQ2NF90IGNvbnRleHRJZCwgYm9vbCBzaG91bGRQ
bGF5KQorICAgIEN1c3RvbVBsYXliYWNrQWN0aW9uU2VsZWN0ZWQodWludDY0X3QgY29udGV4dElk
KQogI2VuZGlmCiAKICAgICBDbGVhcldoZWVsRXZlbnRUZXN0VHJpZ2dlcigpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dlYlBhZ2VNYWMubW0gYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dlYlBhZ2VNYWMubW0KaW5kZXgg
NTgyNWMyNjRjMjU5YWU4MDgxZjA1YmY3MDU4Y2NhZmRmY2YwODc5OS4uYmYxNzUxYjkzN2JhMTAz
YTA0ZTM3OTc5ZTU5NzVjNGRhNDc4OTQ5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5tbQpAQCAtMTE1OSw2ICsxMTU5LDExIEBA
IHZvaWQgV2ViUGFnZTo6c2V0U2hvdWxkUGxheVRvUGxheWJhY2tUYXJnZXQodWludDY0X3QgY29u
dGV4dElkLCBib29sIHNob3VsZFBsYXkpCiB7CiAgICAgbV9wYWdlLT5zZXRTaG91bGRQbGF5VG9Q
bGF5YmFja1RhcmdldChjb250ZXh0SWQsIHNob3VsZFBsYXkpOwogfQorCit2b2lkIFdlYlBhZ2U6
OmN1c3RvbVBsYXliYWNrQWN0aW9uU2VsZWN0ZWQodWludDY0X3QgY29udGV4dElkKQoreworICAg
IG1fcGFnZS0+Y3VzdG9tUGxheWJhY2tBY3Rpb25TZWxlY3RlZChjb250ZXh0SWQpOworfQogI2Vu
ZGlmCiAKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>272513</attachid>
            <date>2016-02-29 13:37:18 -0800</date>
            <delta_ts>2016-03-01 11:37:09 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-154823-20160229133702.patch</filename>
            <type>text/plain</type>
            <size>48376</size>
            <attacher name="Ada Chan">adachan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk3MzYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzEyZDY3ZWY1MDcwMzVj
ZmJkMGI1MTNjNmNjZmI3NDgzYWMzMzNlOS4uYWVkODU1M2VmNzcxNGEwNzRjZTk5NmMzZjkzMWY5
N2FiOTVkMTViZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU2IEBACisyMDE2LTAyLTI5ICBBZGEg
Q2hhbiAgPGFkYWNoYW5AYXBwbGUuY29tPgorCisgICAgICAgIEFkb3B0IHRoZSBuZXcgdmVyc2lv
biBvZiBBVk91dHB1dERldmljZU1lbnVDb250cm9sbGVyJ3Mgc2hvd01lbnVGb3JSZWN0IG1ldGhv
ZC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NDgy
MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTW9k
dWxlcy9tZWRpYXNlc3Npb24vV2ViTWVkaWFTZXNzaW9uTWFuYWdlci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpXZWJNZWRpYVNlc3Npb25NYW5hZ2VyOjpzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIp
OgorICAgICAgICAoV2ViQ29yZTo6V2ViTWVkaWFTZXNzaW9uTWFuYWdlcjo6Y3VzdG9tUGxheWJh
Y2tBY3Rpb25TZWxlY3RlZCk6CisgICAgICAgIENhbGwgY3VzdG9tUGxheWJhY2tBY3Rpb25TZWxl
Y3RlZCgpIG9uIHRoZSBjbGllbnQgdGhhdCByZXF1ZXN0ZWQgdGhlIHBpY2tlci4KKyAgICAgICAg
KiBNb2R1bGVzL21lZGlhc2Vzc2lvbi9XZWJNZWRpYVNlc3Npb25NYW5hZ2VyLmg6CisgICAgICAg
ICogTW9kdWxlcy9tZWRpYXNlc3Npb24vV2ViTWVkaWFTZXNzaW9uTWFuYWdlckNsaWVudC5oOgor
ICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6
c2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojpj
dXN0b21QbGF5YmFja0FjdGlvblNlbGVjdGVkKToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoK
KyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SFRNTE1lZGlhRWxlbWVudDo6Y3VzdG9tUGxheWJhY2tBY3Rpb25TZWxlY3RlZCk6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpwbGF5YmFja1RhcmdldFBpY2tlckN1c3RvbUFj
dGlvbk5hbWUpOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5oOgorICAgICAgICAq
IGh0bWwvTWVkaWFFbGVtZW50U2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUVs
ZW1lbnRTZXNzaW9uOjpzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFFbGVtZW50U2Vzc2lvbjo6Y3VzdG9tUGxheWJhY2tBY3Rpb25TZWxlY3RlZCk6Cisg
ICAgICAgICogaHRtbC9NZWRpYUVsZW1lbnRTZXNzaW9uLmg6CisgICAgICAgICogcGFnZS9DaHJv
bWVDbGllbnQuaDoKKyAgICAgICAgKiBwYWdlL1BhZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UGFnZTo6c2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6
OmN1c3RvbVBsYXliYWNrQWN0aW9uU2VsZWN0ZWQpOgorICAgICAgICAqIHBhZ2UvUGFnZS5oOgor
ICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uLmg6CisgICAgICAg
IChXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNsaWVudDo6Y3VzdG9tUGxheWJhY2tBY3Rp
b25TZWxlY3RlZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5YmFja1Rh
cmdldENsaWVudC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWJhY2tU
YXJnZXRQaWNrZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5YmFja1RhcmdldFBp
Y2tlcjo6cGVuZGluZ0FjdGlvblRpbWVyRmlyZWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQ
bGF5YmFja1RhcmdldFBpY2tlcjo6c2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyLmg6CisgICAgICAg
IChXZWJDb3JlOjpNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyOjpDbGllbnQ6OmN1c3RvbVBsYXli
YWNrQWN0aW9uU2VsZWN0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5YmFja1Rhcmdl
dFBpY2tlcjo6Y3VzdG9tUGxheWJhY2tBY3Rpb25TZWxlY3RlZCk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1h
Yy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlh
UGxheWJhY2tUYXJnZXRQaWNrZXJNYWMubW06CisgICAgICAgIFVwZGF0ZSB0aGUgZm9yd2FyZCBk
ZWNsYXJhdGlvbiBvZiBBVk91dHB1dERldmljZU1lbnVDb250cm9sbGVyJ3Mgc2hvd01lbnVGb3JS
ZWN0IG1ldGhvZC4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJN
YWM6OnNob3dQbGF5YmFja1RhcmdldFBpY2tlcik6CisgICAgICAgIENhbGwgdGhlIG5ldyB2ZXJz
aW9uIG9mIHNob3dNZW51Rm9yUmVjdCBpZiBhdmFpbGFibGUuCisgICAgICAgICogcGxhdGZvcm0v
bWFjL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYy5oOgorICAgICAgICAqIHBsYXRmb3Jt
L21hYy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWMubW06CisgICAgICAgIChXZWJDb3Jl
OjpXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWM6OnNldEV4dGVybmFsUGxheWJhY2spOgor
ICAgICAgICAqIHBsYXRmb3JtL21vY2svTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1vY2suY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1vY2s6OnNob3dQ
bGF5YmFja1RhcmdldFBpY2tlcik6CisgICAgICAgICogcGxhdGZvcm0vbW9jay9NZWRpYVBsYXli
YWNrVGFyZ2V0UGlja2VyTW9jay5oOgorICAgICAgICAqIHBsYXRmb3JtL3NwaS9jb2NvYS9BVktp
dFNQSS5oOgorICAgICAgICBVcGRhdGVkIHdpdGggdGhlIG5ldyB2ZXJzaW9uIG9mIHNob3dNZW51
Rm9yUmVjdC4KKwogMjAxNi0wMi0yOSAgR2F2aW4gQmFycmFjbG91Z2ggIDxiYXJyYWNsb3VnaEBh
cHBsZS5jb20+CiAKICAgICAgICAgUmVmQ291bnRlcjxUPjo6RXZlbnQgLT4gUmVmQ291bnRlckV2
ZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggMDQ5MGRjNWQ1ZTY1MDRlMDcwN2E1NmMxOGQyNTEyMzcz
NjBiYmZmYi4uNWQzYTFhZDk5YTczY2UxZmM0NmQyZDE4ZTc3MGVlYTY5Y2ZjODg0NCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFj
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDE2LTAyLTI5ICBBZGEgQ2hhbiAgPGFkYWNo
YW5AYXBwbGUuY29tPgorCisgICAgICAgIEFkb3B0IHRoZSBuZXcgdmVyc2lvbiBvZiBBVk91dHB1
dERldmljZU1lbnVDb250cm9sbGVyJ3Mgc2hvd01lbnVGb3JSZWN0IG1ldGhvZC4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NDgyMworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xp
ZW50Lm1tOgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50OjpzaG93UGxheWJhY2tUYXJnZXRQaWNr
ZXIpOgorICAgICAgICAqIFdlYlZpZXcvV2ViTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlci5oOgor
ICAgICAgICAqIFdlYlZpZXcvV2ViTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlci5tbToKKyAgICAg
ICAgKFdlYk1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXI6OnNob3dQbGF5YmFja1RhcmdldFBpY2tl
cik6CisgICAgICAgIChXZWJNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyOjpjdXN0b21QbGF5YmFj
a0FjdGlvblNlbGVjdGVkKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXcubW06CisgICAgICAg
ICgtW1dlYlZpZXcgX3Nob3dQbGF5YmFja1RhcmdldFBpY2tlcjpsb2NhdGlvbjpoYXNWaWRlbzpd
KToKKwogMjAxNi0wMi0yNiAgRGFuIEJlcm5zdGVpbiAgPG1pdHpAYXBwbGUuY29tPgogCiAgICAg
ICAgIEJ1aWxkIGZpeCBmb3Igd2hlbiBXS19PVkVSUklERV9GUkFNRVdPUktTX0RJUiBjb250YWlu
cyBzcGFjZXMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNzI4YjcwOGQ4OTQ4ZTY4ODk4ZGQxZDAyMDM4YmFiYzU4
MTNhNzdlMS4uY2Q1OWE5N2I0ZTc2YzliMTA0ZmE1NWZkOWIzZWYwYmQ1YjlmODQ1NyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDE2LTAyLTI5ICBBZGEgQ2hhbiAgPGFkYWNoYW5AYXBw
bGUuY29tPgorCisgICAgICAgIEFkb3B0IHRoZSBuZXcgdmVyc2lvbiBvZiBBVk91dHB1dERldmlj
ZU1lbnVDb250cm9sbGVyJ3Mgc2hvd01lbnVGb3JSZWN0IG1ldGhvZC4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NDgyMworCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6c2hvd1BsYXliYWNrVGFyZ2V0
UGlja2VyKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpjdXN0b21QbGF5YmFja0Fj
dGlvblNlbGVjdGVkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAg
ICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYkNocm9tZUNsaWVudDo6c2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKToKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21h
Yy9XZWJQYWdlTWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpjdXN0b21QbGF5YmFj
a0FjdGlvblNlbGVjdGVkKToKKwogMjAxNi0wMi0yOSAgR2F2aW4gQmFycmFjbG91Z2ggIDxiYXJy
YWNsb3VnaEBhcHBsZS5jb20+CiAKICAgICAgICAgUmVmQ291bnRlcjxUPjo6RXZlbnQgLT4gUmVm
Q291bnRlckV2ZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vz
c2lvbi9XZWJNZWRpYVNlc3Npb25NYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzZXNzaW9uL1dlYk1lZGlhU2Vzc2lvbk1hbmFnZXIuY3BwCmluZGV4IDdhMzM2OWYxMGU1
MzBlNGRjODdlNzE3ZDU2NzVmNzA5MTEzYjgwZTkuLjRjMmUwZDAyNTY4YTk3ZGFlODY3NjNhMzg5
YTQwNWZmMDM0ZGVhNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
ZXNzaW9uL1dlYk1lZGlhU2Vzc2lvbk1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzZXNzaW9uL1dlYk1lZGlhU2Vzc2lvbk1hbmFnZXIuY3BwCkBAIC0xODAsNyAr
MTgwLDcgQEAgdm9pZCBXZWJNZWRpYVNlc3Npb25NYW5hZ2VyOjpyZW1vdmVBbGxQbGF5YmFja1Rh
cmdldFBpY2tlckNsaWVudHMoV2ViTWVkaWFTZXNzaW8KICAgICBzY2hlZHVsZURlbGF5ZWRUYXNr
KFRhcmdldE1vbml0b3JpbmdDb25maWd1cmF0aW9uVGFzayB8IFRhcmdldENsaWVudHNDb25maWd1
cmF0aW9uVGFzayk7CiB9CiAKLXZvaWQgV2ViTWVkaWFTZXNzaW9uTWFuYWdlcjo6c2hvd1BsYXli
YWNrVGFyZ2V0UGlja2VyKFdlYk1lZGlhU2Vzc2lvbk1hbmFnZXJDbGllbnQmIGNsaWVudCwgdWlu
dDY0X3QgY29udGV4dElkLCBjb25zdCBJbnRSZWN0JiByZWN0LCBib29sKQordm9pZCBXZWJNZWRp
YVNlc3Npb25NYW5hZ2VyOjpzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIoV2ViTWVkaWFTZXNzaW9u
TWFuYWdlckNsaWVudCYgY2xpZW50LCB1aW50NjRfdCBjb250ZXh0SWQsIGNvbnN0IEludFJlY3Qm
IHJlY3QsIGJvb2wsIGNvbnN0IFN0cmluZyYgY3VzdG9tTWVudUl0ZW1UaXRsZSkKIHsKICAgICBz
aXplX3QgaW5kZXggPSBmaW5kKCZjbGllbnQsIGNvbnRleHRJZCk7CiAgICAgQVNTRVJUKGluZGV4
ICE9IG5vdEZvdW5kKTsKQEAgLTE5NSw3ICsxOTUsOCBAQCB2b2lkIFdlYk1lZGlhU2Vzc2lvbk1h
bmFnZXI6OnNob3dQbGF5YmFja1RhcmdldFBpY2tlcihXZWJNZWRpYVNlc3Npb25NYW5hZ2VyQ2xp
ZQogCiAgICAgYm9vbCBoYXNBY3RpdmVSb3V0ZSA9IGZsYWdzQXJlU2V0KG1fY2xpZW50U3RhdGVb
aW5kZXhdLT5mbGFncywgTWVkaWFQcm9kdWNlcjo6SXNQbGF5aW5nVG9FeHRlcm5hbERldmljZSk7
CiAgICAgTE9HKE1lZGlhLCAiV2ViTWVkaWFTZXNzaW9uTWFuYWdlcjo6c2hvd1BsYXliYWNrVGFy
Z2V0UGlja2VyKCVwICsgJWxsdSkgLSBoYXNBY3RpdmVSb3V0ZSA9ICVpIiwgJmNsaWVudCwgY29u
dGV4dElkLCAoaW50KWhhc0FjdGl2ZVJvdXRlKTsKLSAgICB0YXJnZXRQaWNrZXIoKS5zaG93UGxh
eWJhY2tUYXJnZXRQaWNrZXIoRmxvYXRSZWN0KHJlY3QpLCBoYXNBY3RpdmVSb3V0ZSk7CisKKyAg
ICB0YXJnZXRQaWNrZXIoKS5zaG93UGxheWJhY2tUYXJnZXRQaWNrZXIoRmxvYXRSZWN0KHJlY3Qp
LCBoYXNBY3RpdmVSb3V0ZSwgY3VzdG9tTWVudUl0ZW1UaXRsZSk7CiB9CiAKIHZvaWQgV2ViTWVk
aWFTZXNzaW9uTWFuYWdlcjo6Y2xpZW50U3RhdGVEaWRDaGFuZ2UoV2ViTWVkaWFTZXNzaW9uTWFu
YWdlckNsaWVudCYgY2xpZW50LCB1aW50NjRfdCBjb250ZXh0SWQsIE1lZGlhUHJvZHVjZXI6Ok1l
ZGlhU3RhdGVGbGFncyBuZXdGbGFncykKQEAgLTI2OSw2ICsyNzAsMTkgQEAgdm9pZCBXZWJNZWRp
YVNlc3Npb25NYW5hZ2VyOjpleHRlcm5hbE91dHB1dERldmljZUF2YWlsYWJsZURpZENoYW5nZShi
b29sIGF2YWlsYWIKICAgICAgICAgc3RhdGUtPmNsaWVudC5leHRlcm5hbE91dHB1dERldmljZUF2
YWlsYWJsZURpZENoYW5nZShzdGF0ZS0+Y29udGV4dElkLCBhdmFpbGFibGUpOwogfQogCit2b2lk
IFdlYk1lZGlhU2Vzc2lvbk1hbmFnZXI6OmN1c3RvbVBsYXliYWNrQWN0aW9uU2VsZWN0ZWQoKQor
eworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9jbGllbnRTdGF0ZS5zaXplKCk7ICsraSkg
eworICAgICAgICBhdXRvJiBzdGF0ZSA9IG1fY2xpZW50U3RhdGVbaV07CisKKyAgICAgICAgaWYg
KCFzdGF0ZS0+cmVxdWVzdGVkUGlja2VyKQorICAgICAgICAgICAgY29udGludWU7CisKKyAgICAg
ICAgc3RhdGUtPmNsaWVudC5jdXN0b21QbGF5YmFja0FjdGlvblNlbGVjdGVkKHN0YXRlLT5jb250
ZXh0SWQpOworICAgICAgICBzdGF0ZS0+cmVxdWVzdGVkUGlja2VyID0gZmFsc2U7CisgICAgfQor
fQorCiB2b2lkIFdlYk1lZGlhU2Vzc2lvbk1hbmFnZXI6OmNvbmZpZ3VyZU5ld0NsaWVudHMoKQog
ewogICAgIGZvciAoYXV0byYgc3RhdGUgOiBtX2NsaWVudFN0YXRlKSB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9XZWJNZWRpYVNlc3Npb25NYW5hZ2Vy
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9XZWJNZWRpYVNlc3Npb25N
YW5hZ2VyLmgKaW5kZXggMDU3NzU1NmJjMzQ0ZGY5Zjc2YWYxNGIwOGUwNDFhMDk5M2FkZmMyNS4u
YmUwNTdiOWFjNWY3M2QyYTVmMjk1MTgwZWQ2MjMyY2RlMmU4ZjY0MSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vV2ViTWVkaWFTZXNzaW9uTWFuYWdlci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL1dlYk1lZGlhU2Vzc2lv
bk1hbmFnZXIuaApAQCAtNTUsNyArNTUsOSBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQg
dWludDY0X3QgYWRkUGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnQoV2ViTWVkaWFTZXNzaW9uTWFu
YWdlckNsaWVudCYsIHVpbnQ2NF90KTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlbW92ZVBs
YXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50KFdlYk1lZGlhU2Vzc2lvbk1hbmFnZXJDbGllbnQmLCB1
aW50NjRfdCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCByZW1vdmVBbGxQbGF5YmFja1Rhcmdl
dFBpY2tlckNsaWVudHMoV2ViTWVkaWFTZXNzaW9uTWFuYWdlckNsaWVudCYpOwotICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgc2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKFdlYk1lZGlhU2Vzc2lvbk1h
bmFnZXJDbGllbnQmLCB1aW50NjRfdCwgY29uc3QgSW50UmVjdCYsIGJvb2wpOworCisgICAgV0VC
Q09SRV9FWFBPUlQgdm9pZCBzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIoV2ViTWVkaWFTZXNzaW9u
TWFuYWdlckNsaWVudCYsIHVpbnQ2NF90LCBjb25zdCBJbnRSZWN0JiwgYm9vbCwgY29uc3QgU3Ry
aW5nJik7CisKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGNsaWVudFN0YXRlRGlkQ2hhbmdlKFdl
Yk1lZGlhU2Vzc2lvbk1hbmFnZXJDbGllbnQmLCB1aW50NjRfdCwgV2ViQ29yZTo6TWVkaWFQcm9k
dWNlcjo6TWVkaWFTdGF0ZUZsYWdzKTsKIAogcHJvdGVjdGVkOgpAQCAtNzMsNiArNzUsNyBAQCBw
cml2YXRlOgogICAgIC8vIE1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXI6OkNsaWVudAogICAgIHZp
cnR1YWwgdm9pZCBzZXRQbGF5YmFja1RhcmdldChSZWY8V2ViQ29yZTo6TWVkaWFQbGF5YmFja1Rh
cmdldD4mJikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGV4dGVybmFsT3V0cHV0RGV2aWNl
QXZhaWxhYmxlRGlkQ2hhbmdlKGJvb2wpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBjdXN0
b21QbGF5YmFja0FjdGlvblNlbGVjdGVkKCkgb3ZlcnJpZGU7CiAKICAgICBzaXplX3QgZmluZChX
ZWJNZWRpYVNlc3Npb25NYW5hZ2VyQ2xpZW50KiwgdWludDY0X3QpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9XZWJNZWRpYVNlc3Npb25NYW5hZ2Vy
Q2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9XZWJNZWRpYVNl
c3Npb25NYW5hZ2VyQ2xpZW50LmgKaW5kZXggNTk3NDU0NmQxYjE5NTBiNmY0ZjBlNzQ1MzAxMGU1
YzZhYTc0MTUwMC4uMGFlN2ZmNjI5YWEyNzgxNmVhN2QxMjJmNzhkNGRhNmQ4MTcwZWFjNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vV2ViTWVkaWFTZXNz
aW9uTWFuYWdlckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNz
aW9uL1dlYk1lZGlhU2Vzc2lvbk1hbmFnZXJDbGllbnQuaApAQCAtNDMsNiArNDMsNyBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCB2b2lkIHNldFBsYXliYWNrVGFyZ2V0KHVpbnQ2NF90LCBSZWY8TWVk
aWFQbGF5YmFja1RhcmdldD4mJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBleHRlcm5hbE91dHB1
dERldmljZUF2YWlsYWJsZURpZENoYW5nZSh1aW50NjRfdCwgYm9vbCkgPSAwOwogICAgIHZpcnR1
YWwgdm9pZCBzZXRTaG91bGRQbGF5VG9QbGF5YmFja1RhcmdldCh1aW50NjRfdCwgYm9vbCkgPSAw
OworICAgIHZpcnR1YWwgdm9pZCBjdXN0b21QbGF5YmFja0FjdGlvblNlbGVjdGVkKHVpbnQ2NF90
KSA9IDA7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNw
cAppbmRleCA2NDYzNmQwN2ZkMjg2YzcxYmE5Mzg1ZDA3NjgyNzIzZmJhYTdhZjU2Li43NzI1YjVl
MjRlNDNhOWI0NjczMGZmODFjMjE1YTVmNTUyYzdmYzAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5j
cHAKQEAgLTY4MjgsNyArNjgyOCw3IEBAIHZvaWQgRG9jdW1lbnQ6OnJlbW92ZVBsYXliYWNrVGFy
Z2V0UGlja2VyQ2xpZW50KE1lZGlhUGxheWJhY2tUYXJnZXRDbGllbnQmIGNsaWVuCiAgICAgcGFn
ZS0+cmVtb3ZlUGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnQoY2xpZW50SWQpOwogfQogCi12b2lk
IERvY3VtZW50OjpzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIoTWVkaWFQbGF5YmFja1RhcmdldENs
aWVudCYgY2xpZW50LCBib29sIGlzVmlkZW8pCit2b2lkIERvY3VtZW50OjpzaG93UGxheWJhY2tU
YXJnZXRQaWNrZXIoTWVkaWFQbGF5YmFja1RhcmdldENsaWVudCYgY2xpZW50LCBib29sIGlzVmlk
ZW8sIGNvbnN0IFN0cmluZyYgY3VzdG9tTWVudUl0ZW1UaXRsZSkKIHsKICAgICBQYWdlKiBwYWdl
ID0gdGhpcy0+cGFnZSgpOwogICAgIGlmICghcGFnZSkKQEAgLTY4MzgsNyArNjgzOCw3IEBAIHZv
aWQgRG9jdW1lbnQ6OnNob3dQbGF5YmFja1RhcmdldFBpY2tlcihNZWRpYVBsYXliYWNrVGFyZ2V0
Q2xpZW50JiBjbGllbnQsIGJvb2wKICAgICBpZiAoaXQgPT0gbV9jbGllbnRUb0lETWFwLmVuZCgp
KQogICAgICAgICByZXR1cm47CiAKLSAgICBwYWdlLT5zaG93UGxheWJhY2tUYXJnZXRQaWNrZXIo
aXQtPnZhbHVlLCB2aWV3KCktPmxhc3RLbm93bk1vdXNlUG9zaXRpb24oKSwgaXNWaWRlbyk7Cisg
ICAgcGFnZS0+c2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKGl0LT52YWx1ZSwgdmlldygpLT5sYXN0
S25vd25Nb3VzZVBvc2l0aW9uKCksIGlzVmlkZW8sIGN1c3RvbU1lbnVJdGVtVGl0bGUpOwogfQog
CiB2b2lkIERvY3VtZW50OjpwbGF5YmFja1RhcmdldFBpY2tlckNsaWVudFN0YXRlRGlkQ2hhbmdl
KE1lZGlhUGxheWJhY2tUYXJnZXRDbGllbnQmIGNsaWVudCwgTWVkaWFQcm9kdWNlcjo6TWVkaWFT
dGF0ZUZsYWdzIHN0YXRlKQpAQCAtNjg4MCw2ICs2ODgwLDE1IEBAIHZvaWQgRG9jdW1lbnQ6OnNl
dFNob3VsZFBsYXlUb1BsYXliYWNrVGFyZ2V0KHVpbnQ2NF90IGNsaWVudElkLCBib29sIHNob3Vs
ZFBsYXkpCiAKICAgICBpdC0+dmFsdWUtPnNldFNob3VsZFBsYXlUb1BsYXliYWNrVGFyZ2V0KHNo
b3VsZFBsYXkpOwogfQorCit2b2lkIERvY3VtZW50OjpjdXN0b21QbGF5YmFja0FjdGlvblNlbGVj
dGVkKHVpbnQ2NF90IGNsaWVudElkKQoreworICAgIGF1dG8gaXQgPSBtX2lkVG9DbGllbnRNYXAu
ZmluZChjbGllbnRJZCk7CisgICAgaWYgKGl0ID09IG1faWRUb0NsaWVudE1hcC5lbmQoKSkKKyAg
ICAgICAgcmV0dXJuOworCisgICAgaXQtPnZhbHVlLT5jdXN0b21QbGF5YmFja0FjdGlvblNlbGVj
dGVkKCk7Cit9CiAjZW5kaWYgLy8gRU5BQkxFKFdJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkKIAog
I2lmIEVOQUJMRShNRURJQV9TRVNTSU9OKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCBmNWRhNzE2
N2Q0OTE1MzQ5NWE2ZDE2OGZmMTdkOTQ1OTdjMjRkZWZiLi43OGM3NjY5NjY5NmM1ZjVlYmEwZmE3
MTU3MjBjNzAwZjI3OTFmNGNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtMTI4OCwxMiArMTI4
OCwxNSBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKFdJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkKICAg
ICB2b2lkIGFkZFBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50KE1lZGlhUGxheWJhY2tUYXJnZXRD
bGllbnQmKTsKICAgICB2b2lkIHJlbW92ZVBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50KE1lZGlh
UGxheWJhY2tUYXJnZXRDbGllbnQmKTsKLSAgICB2b2lkIHNob3dQbGF5YmFja1RhcmdldFBpY2tl
cihNZWRpYVBsYXliYWNrVGFyZ2V0Q2xpZW50JiwgYm9vbCk7CisKKyAgICB2b2lkIHNob3dQbGF5
YmFja1RhcmdldFBpY2tlcihNZWRpYVBsYXliYWNrVGFyZ2V0Q2xpZW50JiwgYm9vbCwgY29uc3Qg
U3RyaW5nJik7CisKICAgICB2b2lkIHBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50U3RhdGVEaWRD
aGFuZ2UoTWVkaWFQbGF5YmFja1RhcmdldENsaWVudCYsIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3Rh
dGVGbGFncyk7CiAKICAgICB2b2lkIHNldFBsYXliYWNrVGFyZ2V0KHVpbnQ2NF90LCBSZWY8TWVk
aWFQbGF5YmFja1RhcmdldD4mJik7CiAgICAgdm9pZCBwbGF5YmFja1RhcmdldEF2YWlsYWJpbGl0
eURpZENoYW5nZSh1aW50NjRfdCwgYm9vbCk7CiAgICAgdm9pZCBzZXRTaG91bGRQbGF5VG9QbGF5
YmFja1RhcmdldCh1aW50NjRfdCwgYm9vbCk7CisgICAgdm9pZCBjdXN0b21QbGF5YmFja0FjdGlv
blNlbGVjdGVkKHVpbnQ2NF90KTsKICNlbmRpZgogCiAgICAgU2hvdWxkT3BlbkV4dGVybmFsVVJM
c1BvbGljeSBzaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5VG9Qcm9wYWdhdGUoKSBjb25zdDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCmluZGV4IDY0MWFlNjMzYmIx
OTBlZDRkMjBlOTBkYzBmY2M5MjgyNTQ5NDllMmYuLjYyOGNjZTBkMWMyMWNlYjQxMWEwN2M0ODJi
ZDcwYjZiMmM2Mjc3YjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlh
RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNw
cApAQCAtMTUwLDYgKzE1MCwxMCBAQAogI2luY2x1ZGUgPGJpbmRpbmdzL1NjcmlwdE9iamVjdC5o
PgogI2VuZGlmCiAKKyNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQorI2luY2x1ZGUgPFdlYktp
dEFkZGl0aW9ucy9IVE1MTWVkaWFFbGVtZW50QWRkaXRpb25zLmNwcD4KKyNlbmRpZgorCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKIHN0YXRpYyBjb25zdCBkb3VibGUgU2Vla1JlcGVhdERlbGF5ID0g
MC4xOwpAQCAtNTIwMSw2ICs1MjA1LDE5IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6c2V0U2hv
dWxkUGxheVRvUGxheWJhY2tUYXJnZXQoYm9vbCBzaG91bGRQbGF5KQogICAgIGlmIChtX3BsYXll
cikKICAgICAgICAgbV9wbGF5ZXItPnNldFNob3VsZFBsYXlUb1BsYXliYWNrVGFyZ2V0KHNob3Vs
ZFBsYXkpOwogfQorCisjaWYgIVVTRShBUFBMRV9JTlRFUk5BTF9TREspCit2b2lkIEhUTUxNZWRp
YUVsZW1lbnQ6OmN1c3RvbVBsYXliYWNrQWN0aW9uU2VsZWN0ZWQoKQoreworICAgIExPRyhNZWRp
YSwgIkhUTUxNZWRpYUVsZW1lbnQ6OmN1c3RvbVBsYXliYWNrQWN0aW9uU2VsZWN0ZWQoJXApIiwg
dGhpcyk7Cit9CisKK1N0cmluZyBIVE1MTWVkaWFFbGVtZW50OjpwbGF5YmFja1RhcmdldFBpY2tl
ckN1c3RvbUFjdGlvbk5hbWUoKSBjb25zdAoreworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKyNl
bmRpZgorCiAjZWxzZSAvLyBFTkFCTEUoV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUKQogCiBib29s
IEhUTUxNZWRpYUVsZW1lbnQ6OndlYmtpdEN1cnJlbnRQbGF5YmFja1RhcmdldElzV2lyZWxlc3Mo
KSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAppbmRleCA0OGJmZTBk
NDIzZTIxNTQyNDVjMzA5NTI5YjRiMGQ5ZmIxZjA5NTU5Li5mZTJhZTI3MDA2MjJmMjBjYjU0ZTJj
NjI0OTJmNmE0ODYyYjBlODA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxN
ZWRpYUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQu
aApAQCAtMzQ0LDYgKzM0NCw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaXNQbGF5aW5n
VG9XaXJlbGVzc1BsYXliYWNrVGFyZ2V0KCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2
b2lkIHNldFdpcmVsZXNzUGxheWJhY2tUYXJnZXQoUmVmPE1lZGlhUGxheWJhY2tUYXJnZXQ+JiYp
IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBzZXRTaG91bGRQbGF5VG9QbGF5YmFja1Rhcmdl
dChib29sKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgY3VzdG9tUGxheWJhY2tBY3Rpb25T
ZWxlY3RlZCgpIG92ZXJyaWRlOworICAgIFN0cmluZyBwbGF5YmFja1RhcmdldFBpY2tlckN1c3Rv
bUFjdGlvbk5hbWUoKSBjb25zdDsKICNlbmRpZgogICAgIGJvb2wgd2Via2l0Q3VycmVudFBsYXli
YWNrVGFyZ2V0SXNXaXJlbGVzcygpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL01lZGlhRWxlbWVudFNlc3Npb24uY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRp
YUVsZW1lbnRTZXNzaW9uLmNwcAppbmRleCAxYTRkZTY0MGE0NDcwOTk3ODRhYWUyNWFjYTc0NzYx
ZGQyODU3NWNiLi5kMWQ1MTg2Zjc3MGI5NzIyNjJkODMyMGUwZmMwZTQ2OTQwMmM0N2M2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRWxlbWVudFNlc3Npb24uY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFFbGVtZW50U2Vzc2lvbi5jcHAKQEAgLTQ4LDYgKzQ4
LDEwIEBACiAjaW5jbHVkZSAiUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzSU9TLmgiCiAjZW5kaWYK
IAorI2lmIFBMQVRGT1JNKE1BQykKKyNpbmNsdWRlICJIVE1MTWVkaWFFbGVtZW50RW51bXMuaCIK
KyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICNpZiAhTE9HX0RJU0FCTEVECkBAIC0y
MDcsNyArMjExLDggQEAgdm9pZCBNZWRpYUVsZW1lbnRTZXNzaW9uOjpzaG93UGxheWJhY2tUYXJn
ZXRQaWNrZXIoY29uc3QgSFRNTE1lZGlhRWxlbWVudCYgZWxlbWUKICAgICB9CiAjZW5kaWYKIAot
ICAgIGVsZW1lbnQuZG9jdW1lbnQoKS5zaG93UGxheWJhY2tUYXJnZXRQaWNrZXIoKnRoaXMsIGlz
PEhUTUxWaWRlb0VsZW1lbnQ+KGVsZW1lbnQpKTsKKyAgICBTdHJpbmcgY3VzdG9tTWVudUl0ZW1U
aXRsZSA9IGVsZW1lbnQucGxheWJhY2tUYXJnZXRQaWNrZXJDdXN0b21BY3Rpb25OYW1lKCk7Cisg
ICAgZWxlbWVudC5kb2N1bWVudCgpLnNob3dQbGF5YmFja1RhcmdldFBpY2tlcigqdGhpcywgaXM8
SFRNTFZpZGVvRWxlbWVudD4oZWxlbWVudCksIGN1c3RvbU1lbnVJdGVtVGl0bGUpOwogfQogCiBi
b29sIE1lZGlhRWxlbWVudFNlc3Npb246Omhhc1dpcmVsZXNzUGxheWJhY2tUYXJnZXRzKGNvbnN0
IEhUTUxNZWRpYUVsZW1lbnQmKSBjb25zdApAQCAtMzMxLDYgKzMzNiwxMSBAQCB2b2lkIE1lZGlh
RWxlbWVudFNlc3Npb246OnNldFNob3VsZFBsYXlUb1BsYXliYWNrVGFyZ2V0KGJvb2wgc2hvdWxk
UGxheSkKICAgICBjbGllbnQoKS5zZXRTaG91bGRQbGF5VG9QbGF5YmFja1RhcmdldChzaG91bGRQ
bGF5KTsKIH0KIAordm9pZCBNZWRpYUVsZW1lbnRTZXNzaW9uOjpjdXN0b21QbGF5YmFja0FjdGlv
blNlbGVjdGVkKCkKK3sKKyAgICBjbGllbnQoKS5jdXN0b21QbGF5YmFja0FjdGlvblNlbGVjdGVk
KCk7Cit9CisKIHZvaWQgTWVkaWFFbGVtZW50U2Vzc2lvbjo6bWVkaWFTdGF0ZURpZENoYW5nZShj
b25zdCBIVE1MTWVkaWFFbGVtZW50JiBlbGVtZW50LCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRl
RmxhZ3Mgc3RhdGUpCiB7CiAgICAgZWxlbWVudC5kb2N1bWVudCgpLnBsYXliYWNrVGFyZ2V0UGlj
a2VyQ2xpZW50U3RhdGVEaWRDaGFuZ2UoKnRoaXMsIHN0YXRlKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvTWVkaWFFbGVtZW50U2Vzc2lvbi5oIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9NZWRpYUVsZW1lbnRTZXNzaW9uLmgKaW5kZXggMzUxY2IwZWJkZTUwMDIyYTVlY2JiYWNlNGM2
YWQ1ZGJhMzQzOWE2NS4uNTZlNGYyZWM4ODhjNWY4ZWRlY2NkMjE0YWFhN2Y3ODc5NDA5OTE4MSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUVsZW1lbnRTZXNzaW9uLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUVsZW1lbnRTZXNzaW9uLmgKQEAgLTExMyw2ICsx
MTMsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBzZXRQbGF5YmFja1RhcmdldChSZWY8
TWVkaWFQbGF5YmFja1RhcmdldD4mJikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGV4dGVy
bmFsT3V0cHV0RGV2aWNlQXZhaWxhYmxlRGlkQ2hhbmdlKGJvb2wpIG92ZXJyaWRlOwogICAgIHZp
cnR1YWwgdm9pZCBzZXRTaG91bGRQbGF5VG9QbGF5YmFja1RhcmdldChib29sKSBvdmVycmlkZTsK
KyAgICB2aXJ0dWFsIHZvaWQgY3VzdG9tUGxheWJhY2tBY3Rpb25TZWxlY3RlZCgpIG92ZXJyaWRl
OwogI2VuZGlmCiAjaWYgUExBVEZPUk0oSU9TKQogICAgIGJvb2wgcmVxdWlyZXNQbGF5YmFja1Rh
cmdldFJvdXRlTW9uaXRvcmluZygpIGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21l
Q2xpZW50LmgKaW5kZXggNzIwY2YwOTEyMTNiMmVkNmIxNjAwY2E2NTlmNDQxOWNjMzBmNWEzNS4u
NzQ0MWUwZGIyNWU0OGQ4NzIyNTI3ZDZlNmY5YzhiNjM0ZmEzMDQ0NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0Nocm9tZUNsaWVudC5oCkBAIC00NTIsNyArNDUyLDkgQEAgcHVibGljOgogI2lmIEVOQUJMRShX
SVJFTEVTU19QTEFZQkFDS19UQVJHRVQpCiAgICAgdmlydHVhbCB2b2lkIGFkZFBsYXliYWNrVGFy
Z2V0UGlja2VyQ2xpZW50KHVpbnQ2NF90IC8qY29udGV4dElkKi8pIHsgfQogICAgIHZpcnR1YWwg
dm9pZCByZW1vdmVQbGF5YmFja1RhcmdldFBpY2tlckNsaWVudCh1aW50NjRfdCAvKmNvbnRleHRJ
ZCovKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgc2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKHVpbnQ2
NF90IC8qY29udGV4dElkKi8sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiwgYm9vbCAvKiBpc1Zp
ZGVvICovKSB7IH0KKworICAgIHZpcnR1YWwgdm9pZCBzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIo
dWludDY0X3QgLypjb250ZXh0SWQqLywgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmLCBib29sIC8q
IGlzVmlkZW8gKi8sIGNvbnN0IFN0cmluZyYgLypjdXN0b21NZW51SXRlbVRpdGxlKi8pIHsgfQor
CiAgICAgdmlydHVhbCB2b2lkIHBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50U3RhdGVEaWRDaGFu
Z2UodWludDY0X3QgLypjb250ZXh0SWQqLywgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdz
KSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgc2V0TW9ja01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJF
bmFibGVkKGJvb2wpICB7IH0KICAgICB2aXJ0dWFsIHZvaWQgc2V0TW9ja01lZGlhUGxheWJhY2tU
YXJnZXRQaWNrZXJTdGF0ZShjb25zdCBTdHJpbmcmLCBXZWJDb3JlOjpNZWRpYVBsYXliYWNrVGFy
Z2V0Q29udGV4dDo6U3RhdGUpIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Q
YWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXggOGJkNDczZGNiYzQy
OTM5ODIxZjJjYzU3NWUxNDcxMzk1ZGZiYTUzNC4uNzM1MGM5M2ExNTkxYTBmMTkwZWZjMzU3NTIw
OGU5MTMwYjkwMDBkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCkBAIC0xODE3LDE1ICsxODE3LDE2IEBA
IHZvaWQgUGFnZTo6cmVtb3ZlUGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnQodWludDY0X3QgY29u
dGV4dElkKQogICAgIGNocm9tZSgpLmNsaWVudCgpLnJlbW92ZVBsYXliYWNrVGFyZ2V0UGlja2Vy
Q2xpZW50KGNvbnRleHRJZCk7CiB9CiAKLXZvaWQgUGFnZTo6c2hvd1BsYXliYWNrVGFyZ2V0UGlj
a2VyKHVpbnQ2NF90IGNvbnRleHRJZCwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGxvY2F0aW9u
LCBib29sIGlzVmlkZW8pCit2b2lkIFBhZ2U6OnNob3dQbGF5YmFja1RhcmdldFBpY2tlcih1aW50
NjRfdCBjb250ZXh0SWQsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBsb2NhdGlvbiwgYm9vbCBp
c1ZpZGVvLCBjb25zdCBTdHJpbmcmIGN1c3RvbU1lbnVJdGVtVGl0bGUpCiB7CiAjaWYgUExBVEZP
Uk0oSU9TKQogICAgIC8vIEZJWE1FOiByZWZhY3RvciBpT1MgaW1wbGVtZW50YXRpb24uCiAgICAg
VU5VU0VEX1BBUkFNKGNvbnRleHRJZCk7CiAgICAgVU5VU0VEX1BBUkFNKGxvY2F0aW9uKTsKKyAg
ICBVTlVTRURfUEFSQU0oY3VzdG9tTWVudUl0ZW1UaXRsZSk7CiAgICAgY2hyb21lKCkuY2xpZW50
KCkuc2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKGlzVmlkZW8pOwogI2Vsc2UKLSAgICBjaHJvbWUo
KS5jbGllbnQoKS5zaG93UGxheWJhY2tUYXJnZXRQaWNrZXIoY29udGV4dElkLCBsb2NhdGlvbiwg
aXNWaWRlbyk7CisgICAgY2hyb21lKCkuY2xpZW50KCkuc2hvd1BsYXliYWNrVGFyZ2V0UGlja2Vy
KGNvbnRleHRJZCwgbG9jYXRpb24sIGlzVmlkZW8sIGN1c3RvbU1lbnVJdGVtVGl0bGUpOwogI2Vu
ZGlmCiB9CiAKQEAgLTE4NjEsNiArMTg2MiwxMiBAQCB2b2lkIFBhZ2U6OnNldFNob3VsZFBsYXlU
b1BsYXliYWNrVGFyZ2V0KHVpbnQ2NF90IGNsaWVudElkLCBib29sIHNob3VsZFBsYXkpCiAgICAg
Zm9yIChGcmFtZSogZnJhbWUgPSAmbWFpbkZyYW1lKCk7IGZyYW1lOyBmcmFtZSA9IGZyYW1lLT50
cmVlKCkudHJhdmVyc2VOZXh0KCkpCiAgICAgICAgIGZyYW1lLT5kb2N1bWVudCgpLT5zZXRTaG91
bGRQbGF5VG9QbGF5YmFja1RhcmdldChjbGllbnRJZCwgc2hvdWxkUGxheSk7CiB9CisKK3ZvaWQg
UGFnZTo6Y3VzdG9tUGxheWJhY2tBY3Rpb25TZWxlY3RlZCh1aW50NjRfdCBjb250ZXh0SWQpCit7
CisgICAgZm9yIChGcmFtZSogZnJhbWUgPSAmbWFpbkZyYW1lKCk7IGZyYW1lOyBmcmFtZSA9IGZy
YW1lLT50cmVlKCkudHJhdmVyc2VOZXh0KCkpCisgICAgICAgIGZyYW1lLT5kb2N1bWVudCgpLT5j
dXN0b21QbGF5YmFja0FjdGlvblNlbGVjdGVkKGNvbnRleHRJZCk7Cit9CiAjZW5kaWYKIAogV2hl
ZWxFdmVudFRlc3RUcmlnZ2VyJiBQYWdlOjplbnN1cmVUZXN0VHJpZ2dlcigpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5o
CmluZGV4IGYwMWQ0ZDhmMjcxYjIyMWM4ZDRhZWRlZWE5MjM4M2MyM2VkOWFmNzguLjBiMDZkMjFk
ZWRiNjkzODlkZmU5YWM3ZjM4NGZlMGY5NThhMDZkOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCkBAIC00NzIs
NyArNDcyLDkgQEAgcHVibGljOgogI2lmIEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19UQVJHRVQp
CiAgICAgdm9pZCBhZGRQbGF5YmFja1RhcmdldFBpY2tlckNsaWVudCh1aW50NjRfdCk7CiAgICAg
dm9pZCByZW1vdmVQbGF5YmFja1RhcmdldFBpY2tlckNsaWVudCh1aW50NjRfdCk7Ci0gICAgdm9p
ZCBzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIodWludDY0X3QsIGNvbnN0IEludFBvaW50JiwgYm9v
bCk7CisKKyAgICB2b2lkIHNob3dQbGF5YmFja1RhcmdldFBpY2tlcih1aW50NjRfdCwgY29uc3Qg
SW50UG9pbnQmLCBib29sLCBjb25zdCBTdHJpbmcmKTsKKwogICAgIHZvaWQgcGxheWJhY2tUYXJn
ZXRQaWNrZXJDbGllbnRTdGF0ZURpZENoYW5nZSh1aW50NjRfdCwgTWVkaWFQcm9kdWNlcjo6TWVk
aWFTdGF0ZUZsYWdzKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldE1vY2tNZWRpYVBsYXli
YWNrVGFyZ2V0UGlja2VyRW5hYmxlZChib29sKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNl
dE1vY2tNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyU3RhdGUoY29uc3QgU3RyaW5nJiwgTWVkaWFQ
bGF5YmFja1RhcmdldENvbnRleHQ6OlN0YXRlKTsKQEAgLTQ4MCw2ICs0ODIsNyBAQCBwdWJsaWM6
CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRQbGF5YmFja1RhcmdldCh1aW50NjRfdCwgUmVm
PE1lZGlhUGxheWJhY2tUYXJnZXQ+JiYpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcGxheWJh
Y2tUYXJnZXRBdmFpbGFiaWxpdHlEaWRDaGFuZ2UodWludDY0X3QsIGJvb2wpOwogICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgc2V0U2hvdWxkUGxheVRvUGxheWJhY2tUYXJnZXQodWludDY0X3QsIGJv
b2wpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgY3VzdG9tUGxheWJhY2tBY3Rpb25TZWxlY3Rl
ZCh1aW50NjRfdCk7CiAjZW5kaWYKIAogICAgIFJlZlB0cjxXaGVlbEV2ZW50VGVzdFRyaWdnZXI+
IHRlc3RUcmlnZ2VyKCkgY29uc3QgeyByZXR1cm4gbV90ZXN0VHJpZ2dlcjsgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb24uaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uLmgKaW5k
ZXggMWJiYTZjYzdiYmJjN2EzYjM3ODkxZjU2ZmIyYWQxZjY5MWQwYmNkYS4uYzYzYzliN2Y3NTE4
OTE4YmE4NTRjYTY4MzNmMDkyYjM1MGI2YWNlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb24uaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbi5oCkBAIC0xMzUsNiArMTM1LDcg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRQbGF5YmFja1RhcmdldChSZWY8TWVkaWFQ
bGF5YmFja1RhcmdldD4mJikgb3ZlcnJpZGUgeyB9CiAgICAgdmlydHVhbCB2b2lkIGV4dGVybmFs
T3V0cHV0RGV2aWNlQXZhaWxhYmxlRGlkQ2hhbmdlKGJvb2wpIG92ZXJyaWRlIHsgfQogICAgIHZp
cnR1YWwgdm9pZCBzZXRTaG91bGRQbGF5VG9QbGF5YmFja1RhcmdldChib29sKSBvdmVycmlkZSB7
IH0KKyAgICB2aXJ0dWFsIHZvaWQgY3VzdG9tUGxheWJhY2tBY3Rpb25TZWxlY3RlZCgpIG92ZXJy
aWRlIHsgfQogI2VuZGlmCiAKICNpZiBQTEFURk9STShJT1MpCkBAIC0xOTcsNiArMTk4LDcgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBjYW5QbGF5VG9XaXJlbGVzc1BsYXliYWNrVGFyZ2V0
KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNQbGF5aW5nVG9X
aXJlbGVzc1BsYXliYWNrVGFyZ2V0KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0
dWFsIHZvaWQgc2V0U2hvdWxkUGxheVRvUGxheWJhY2tUYXJnZXQoYm9vbCkgeyB9CisgICAgdmly
dHVhbCB2b2lkIGN1c3RvbVBsYXliYWNrQWN0aW9uU2VsZWN0ZWQoKSB7IH0KIAogICAgIHZpcnR1
YWwgY29uc3QgRG9jdW1lbnQqIGhvc3RpbmdEb2N1bWVudCgpIGNvbnN0ID0gMDsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5YmFja1Rhcmdl
dENsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5YmFj
a1RhcmdldENsaWVudC5oCmluZGV4IGEzMDQyMWVhNmUwYjU5MjQwYWNiMTRhYzlmODJjYmY3MWFh
NjM2MGIuLjA2NzU1OGUzNGNiYmNlZTAzOWZhNGJiYTZkMTMwYTc3YWMxZWU4MDMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWJhY2tUYXJnZXRD
bGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXli
YWNrVGFyZ2V0Q2xpZW50LmgKQEAgLTQyLDYgKzQyLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwg
dm9pZCBzZXRQbGF5YmFja1RhcmdldChSZWY8TWVkaWFQbGF5YmFja1RhcmdldD4mJikgPSAwOwog
ICAgIHZpcnR1YWwgdm9pZCBleHRlcm5hbE91dHB1dERldmljZUF2YWlsYWJsZURpZENoYW5nZShi
b29sKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldFNob3VsZFBsYXlUb1BsYXliYWNrVGFyZ2V0
KGJvb2wpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgY3VzdG9tUGxheWJhY2tBY3Rpb25TZWxlY3Rl
ZCgpID0gMDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5YmFja1RhcmdldFBp
Y2tlci5jcHAKaW5kZXggNDkzMTY4NmIzMTUxMjc3MTYyNTA0ODg4YjcxNWUyODFhMjc1OTIwNi4u
MzhhZWY1ZjQzYjc0NjMwMmQzMjVjNGZiOWE3NWMxZWU1YmFiMDc3OCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5YmFja1Rh
cmdldFBpY2tlci5jcHAKQEAgLTU5LDYgKzU5LDkgQEAgdm9pZCBNZWRpYVBsYXliYWNrVGFyZ2V0
UGlja2VyOjpwZW5kaW5nQWN0aW9uVGltZXJGaXJlZCgpCiAKICAgICBpZiAocGVuZGluZ0FjdGlv
bnMgJiBPdXRwdXREZXZpY2VBdmFpbGFiaWxpdHlDaGFuZ2VkKQogICAgICAgICBtX2NsaWVudC0+
ZXh0ZXJuYWxPdXRwdXREZXZpY2VBdmFpbGFibGVEaWRDaGFuZ2UoZXh0ZXJuYWxPdXRwdXREZXZp
Y2VBdmFpbGFibGUoKSk7CisKKyAgICBpZiAocGVuZGluZ0FjdGlvbnMgJiBDdXN0b21QbGF5YmFj
a0FjdGlvblNlbGVjdGVkKQorICAgICAgICBtX2NsaWVudC0+Y3VzdG9tUGxheWJhY2tBY3Rpb25T
ZWxlY3RlZCgpOwogfQogCiB2b2lkIE1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXI6OmFkZFBlbmRp
bmdBY3Rpb24oUGVuZGluZ0FjdGlvbkZsYWdzIGFjdGlvbikKQEAgLTcwLDcgKzczLDcgQEAgdm9p
ZCBNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyOjphZGRQZW5kaW5nQWN0aW9uKFBlbmRpbmdBY3Rp
b25GbGFncyBhY3Rpb24pCiAgICAgbV9wZW5kaW5nQWN0aW9uVGltZXIuc3RhcnRPbmVTaG90KHBl
bmRpbmdBY3Rpb25JbnRlcnZhbCk7CiB9CiAKLXZvaWQgTWVkaWFQbGF5YmFja1RhcmdldFBpY2tl
cjo6c2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKGNvbnN0IEZsb2F0UmVjdCYsIGJvb2wpCit2b2lk
IE1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXI6OnNob3dQbGF5YmFja1RhcmdldFBpY2tlcihjb25z
dCBGbG9hdFJlY3QmLCBib29sLCBjb25zdCBTdHJpbmcmKQogewogICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
TWVkaWFQbGF5YmFja1RhcmdldFBpY2tlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlci5oCmluZGV4IGFmZTBiZDNlZTRmMGUzN2Vm
YjZhZTdlZTk1MDBjMDRjN2JmNjIyNDUuLjU1MzQ3MmQ2YWFmMTQzOTM5OGYxOGQ4N2NiMmI1OTNk
NjU1MDg1MzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01l
ZGlhUGxheWJhY2tUYXJnZXRQaWNrZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9NZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyLmgKQEAgLTQ1LDE5ICs0NSwyMSBAQCBw
dWJsaWM6CiAgICAgcHVibGljOgogICAgICAgICB2aXJ0dWFsIHZvaWQgc2V0UGxheWJhY2tUYXJn
ZXQoUmVmPE1lZGlhUGxheWJhY2tUYXJnZXQ+JiYpID0gMDsKICAgICAgICAgdmlydHVhbCB2b2lk
IGV4dGVybmFsT3V0cHV0RGV2aWNlQXZhaWxhYmxlRGlkQ2hhbmdlKGJvb2wpID0gMDsKKyAgICAg
ICAgdmlydHVhbCB2b2lkIGN1c3RvbVBsYXliYWNrQWN0aW9uU2VsZWN0ZWQoKSB7IH0KIAogICAg
ICAgICB2b2lkIGludmFsaWRhdGUoKTsKICAgICB9OwogCiAgICAgdmlydHVhbCB+TWVkaWFQbGF5
YmFja1RhcmdldFBpY2tlcigpOwogCi0gICAgdmlydHVhbCB2b2lkIHNob3dQbGF5YmFja1Rhcmdl
dFBpY2tlcihjb25zdCBGbG9hdFJlY3QmLCBib29sIGNoZWNrQWN0aXZlUm91dGUpOworICAgIHZp
cnR1YWwgdm9pZCBzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIoY29uc3QgRmxvYXRSZWN0JiwgYm9v
bCBjaGVja0FjdGl2ZVJvdXRlLCBjb25zdCBTdHJpbmcmKTsKICAgICB2aXJ0dWFsIHZvaWQgc3Rh
cnRpbmdNb25pdG9yaW5nUGxheWJhY2tUYXJnZXRzKCk7CiAgICAgdmlydHVhbCB2b2lkIHN0b3BN
b25pdG9yaW5nUGxheWJhY2tUYXJnZXRzKCk7CiAgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVQ
bGF5YmFja1RhcmdldHMoKTsKIAogICAgIHZvaWQgYXZhaWxhYmxlRGV2aWNlc0RpZENoYW5nZSgp
IHsgYWRkUGVuZGluZ0FjdGlvbihPdXRwdXREZXZpY2VBdmFpbGFiaWxpdHlDaGFuZ2VkKTsgfQog
ICAgIHZvaWQgY3VycmVudERldmljZURpZENoYW5nZSgpIHsgYWRkUGVuZGluZ0FjdGlvbihDdXJy
ZW50RGV2aWNlRGlkQ2hhbmdlKTsgfQorICAgIHZvaWQgY3VzdG9tUGxheWJhY2tBY3Rpb25TZWxl
Y3RlZCgpIHsgYWRkUGVuZGluZ0FjdGlvbihDdXN0b21QbGF5YmFja0FjdGlvblNlbGVjdGVkKTsg
fQogCiBwcm90ZWN0ZWQ6CiAgICAgZXhwbGljaXQgTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlcihD
bGllbnQmKTsKQEAgLTY1LDYgKzY3LDcgQEAgcHJvdGVjdGVkOgogICAgIGVudW0gQWN0aW9uVHlw
ZSB7CiAgICAgICAgIE91dHB1dERldmljZUF2YWlsYWJpbGl0eUNoYW5nZWQgPSAxIDw8IDAsCiAg
ICAgICAgIEN1cnJlbnREZXZpY2VEaWRDaGFuZ2UgPSAxIDw8IDEsCisgICAgICAgIEN1c3RvbVBs
YXliYWNrQWN0aW9uU2VsZWN0ZWQgPSAxIDw8IDIsCiAgICAgfTsKICAgICB0eXBlZGVmIHVuc2ln
bmVkIFBlbmRpbmdBY3Rpb25GbGFnczsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5YmFja1RhcmdldFBpY2tl
ck1hYy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1hYy5oCmluZGV4IDlhMTM4Njk2Nzc5NTFjMGNl
MDEyOThiNzUxMmNmYTU3ZTVhZTExZWQuLjYzZjVkMzBmZDZjYmI3MzVkOGIyNjVhYzc1MmY0ZjBm
ZmQ3OGU1ODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJNYWMuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXli
YWNrVGFyZ2V0UGlja2VyTWFjLmgKQEAgLTQzLDcgKzQzLDggQEAgcHVibGljOgogCiAgICAgdmly
dHVhbCB+TWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1hYygpOwogCi0gICAgdm9pZCBzaG93UGxh
eWJhY2tUYXJnZXRQaWNrZXIoY29uc3QgRmxvYXRSZWN0JiwgYm9vbCBjaGVja0FjdGl2ZVJvdXRl
KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKGNv
bnN0IEZsb2F0UmVjdCYsIGJvb2wgY2hlY2tBY3RpdmVSb3V0ZSwgY29uc3QgU3RyaW5nJikgb3Zl
cnJpZGU7CisKICAgICB2b2lkIHN0YXJ0aW5nTW9uaXRvcmluZ1BsYXliYWNrVGFyZ2V0cygpIG92
ZXJyaWRlOwogICAgIHZvaWQgc3RvcE1vbml0b3JpbmdQbGF5YmFja1RhcmdldHMoKSBvdmVycmlk
ZTsKICAgICB2b2lkIGludmFsaWRhdGVQbGF5YmFja1RhcmdldHMoKSBvdmVycmlkZTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTWFj
Lm1tCmluZGV4IDEwYWFhNTBkMzhmODdiNjRlNDM1NjNjM2U4Mzg0OTZiZWRlNTczMTQuLmFiN2Zm
NGJjNDMzMWMzMjFlMDBmYjhkZWJiMWVjMjFhMmNiMzNjZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWJhY2tU
YXJnZXRQaWNrZXJNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1hYy5tbQpAQCAtNTEs
MTEgKzUxLDYgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiBzdGF0aWMgTlNTdHJpbmcgKmV4
dGVybmFsT3V0cHV0RGV2aWNlQXZhaWxhYmxlS2V5TmFtZSA9IEAiZXh0ZXJuYWxPdXRwdXREZXZp
Y2VBdmFpbGFibGUiOwogc3RhdGljIE5TU3RyaW5nICpleHRlcm5hbE91dHB1dERldmljZVBpY2tl
ZEtleU5hbWUgPSBAImV4dGVybmFsT3V0cHV0RGV2aWNlUGlja2VkIjsKIAotLy8gRklYTUU6IHJl
bW92ZSB0aGlzIG9uY2UgdGhlIGhlYWRlcnMgYXJlIGF2YWlsYWJsZS4KLUBpbnRlcmZhY2UgQVZP
dXRwdXREZXZpY2VNZW51Q29udHJvbGxlciAoRm9yd2FyZERlY2xhcmF0aW9uKQotLSAoQk9PTClz
aG93TWVudUZvclJlY3Q6KE5TUmVjdClzY3JlZW5SZWN0IGFwcGVhcmFuY2VOYW1lOihOU1N0cmlu
ZyAqKWFwcGVhcmFuY2VOYW1lIGFsbG93UmVzZWxlY3Rpb25PZlNlbGVjdGVkT3V0cHV0RGV2aWNl
OihCT09MKWFsbG93UmVzZWxlY3Rpb25PZlNlbGVjdGVkT3V0cHV0RGV2aWNlOwotQGVuZAotCiBA
aW50ZXJmYWNlIFdlYkFWT3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXJIZWxwZXIgOiBOU09iamVj
dCB7CiAgICAgTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1hYyogbV9jYWxsYmFjazsKIH0KQEAg
LTExNCw3ICsxMDksNyBAQCBBVk91dHB1dERldmljZU1lbnVDb250cm9sbGVyVHlwZSAqTWVkaWFQ
bGF5YmFja1RhcmdldFBpY2tlck1hYzo6ZGV2aWNlUGlja2VyKCkKICAgICByZXR1cm4gbV9vdXRw
dXREZXZpY2VNZW51Q29udHJvbGxlci5nZXQoKTsKIH0KIAotdm9pZCBNZWRpYVBsYXliYWNrVGFy
Z2V0UGlja2VyTWFjOjpzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIoY29uc3QgRmxvYXRSZWN0JiBs
b2NhdGlvbiwgYm9vbCBjaGVja0FjdGl2ZVJvdXRlKQordm9pZCBNZWRpYVBsYXliYWNrVGFyZ2V0
UGlja2VyTWFjOjpzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIoY29uc3QgRmxvYXRSZWN0JiBsb2Nh
dGlvbiwgYm9vbCBjaGVja0FjdGl2ZVJvdXRlLCBjb25zdCBTdHJpbmcmIGN1c3RvbU1lbnVJdGVt
VGl0bGUpCiB7CiAgICAgaWYgKCFjbGllbnQoKSB8fCBtX3Nob3dpbmdNZW51KQogICAgICAgICBy
ZXR1cm47CkBAIC0xMjIsMTQgKzExNywyOSBAQCB2b2lkIE1lZGlhUGxheWJhY2tUYXJnZXRQaWNr
ZXJNYWM6OnNob3dQbGF5YmFja1RhcmdldFBpY2tlcihjb25zdCBGbG9hdFJlY3QmIGxvYwogICAg
IExPRyhNZWRpYSwgIk1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJNYWM6OnNob3dQbGF5YmFja1Rh
cmdldFBpY2tlciAtIGNoZWNrQWN0aXZlUm91dGUgPSAlaSIsIChpbnQpY2hlY2tBY3RpdmVSb3V0
ZSk7CiAKICAgICBBVk91dHB1dERldmljZU1lbnVDb250cm9sbGVyVHlwZSAqcGlja2VyID0gZGV2
aWNlUGlja2VyKCk7Ci0gICAgaWYgKCFbcGlja2VyIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0
b3Ioc2hvd01lbnVGb3JSZWN0OmFwcGVhcmFuY2VOYW1lOmFsbG93UmVzZWxlY3Rpb25PZlNlbGVj
dGVkT3V0cHV0RGV2aWNlOildKQorICAgIGlmICghW3BpY2tlciByZXNwb25kc1RvU2VsZWN0b3I6
QHNlbGVjdG9yKHNob3dNZW51Rm9yUmVjdDphcHBlYXJhbmNlTmFtZTphbGxvd1Jlc2VsZWN0aW9u
T2ZTZWxlY3RlZE91dHB1dERldmljZTpjdXN0b21NZW51SXRlbVRpdGxlOmN1c3RvbU1lbnVJdGVt
RW5hYmxlZDopXSAmJiAhW3BpY2tlciByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKHNob3dN
ZW51Rm9yUmVjdDphcHBlYXJhbmNlTmFtZTphbGxvd1Jlc2VsZWN0aW9uT2ZTZWxlY3RlZE91dHB1
dERldmljZTopXSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgbV9zaG93aW5nTWVudSA9IHRydWU7
Ci0gICAgaWYgKFtwaWNrZXIgc2hvd01lbnVGb3JSZWN0OmxvY2F0aW9uIGFwcGVhcmFuY2VOYW1l
Ok5TQXBwZWFyYW5jZU5hbWVWaWJyYW50TGlnaHQgYWxsb3dSZXNlbGVjdGlvbk9mU2VsZWN0ZWRP
dXRwdXREZXZpY2U6IWNoZWNrQWN0aXZlUm91dGVdKSB7CisKKyAgICBpZiAoW3BpY2tlciByZXNw
b25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKHNob3dNZW51Rm9yUmVjdDphcHBlYXJhbmNlTmFtZTph
bGxvd1Jlc2VsZWN0aW9uT2ZTZWxlY3RlZE91dHB1dERldmljZTpjdXN0b21NZW51SXRlbVRpdGxl
OmN1c3RvbU1lbnVJdGVtRW5hYmxlZDopXSkgeworICAgICAgICBOU1N0cmluZyAqY3VzdG9tTWVu
dUl0ZW1UaXRsZU5TU3RyaW5nID0gY3VzdG9tTWVudUl0ZW1UaXRsZS5pc0VtcHR5KCkgPyBuaWwg
OiAoTlNTdHJpbmcgKiljdXN0b21NZW51SXRlbVRpdGxlOworICAgICAgICBzd2l0Y2ggKFtwaWNr
ZXIgc2hvd01lbnVGb3JSZWN0OmxvY2F0aW9uIGFwcGVhcmFuY2VOYW1lOk5TQXBwZWFyYW5jZU5h
bWVWaWJyYW50TGlnaHQgYWxsb3dSZXNlbGVjdGlvbk9mU2VsZWN0ZWRPdXRwdXREZXZpY2U6IWNo
ZWNrQWN0aXZlUm91dGUgY3VzdG9tTWVudUl0ZW1UaXRsZTpjdXN0b21NZW51SXRlbVRpdGxlTlNT
dHJpbmcgY3VzdG9tTWVudUl0ZW1FbmFibGVkOllFU10pIHsKKyAgICAgICAgY2FzZSBBVk91dHB1
dERldmljZU1lbnVDb250cm9sbGVyU2VsZWN0aW9uQ3VzdG9tTWVudUl0ZW06CisgICAgICAgICAg
ICBjdXN0b21QbGF5YmFja0FjdGlvblNlbGVjdGVkKCk7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgY2FzZSBBVk91dHB1dERldmljZU1lbnVDb250cm9sbGVyU2VsZWN0aW9uT3V0cHV0RGV2
aWNlOgorICAgICAgICAgICAgaWYgKCFjaGVja0FjdGl2ZVJvdXRlKQorICAgICAgICAgICAgICAg
IGN1cnJlbnREZXZpY2VEaWRDaGFuZ2UoKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBj
YXNlIEFWT3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXJTZWxlY3Rpb25Ob25lOgorICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9IGVsc2UgaWYgKFtwaWNrZXIgc2hvd01lbnVGb3JS
ZWN0OmxvY2F0aW9uIGFwcGVhcmFuY2VOYW1lOk5TQXBwZWFyYW5jZU5hbWVWaWJyYW50TGlnaHQg
YWxsb3dSZXNlbGVjdGlvbk9mU2VsZWN0ZWRPdXRwdXREZXZpY2U6IWNoZWNrQWN0aXZlUm91dGVd
KSB7CiAgICAgICAgIGlmICghY2hlY2tBY3RpdmVSb3V0ZSkKICAgICAgICAgICAgIGN1cnJlbnRE
ZXZpY2VEaWRDaGFuZ2UoKTsKICAgICB9CisKICAgICBtX3Nob3dpbmdNZW51ID0gZmFsc2U7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJWaWRlb0Z1bGxz
Y3JlZW5JbnRlcmZhY2VNYWMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJWaWRl
b0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWMuaAppbmRleCA2ODVhNjdiNzA0Y2Q4NDlkMjBkZDJmOTVl
MjE4M2Q3NzNjM2U3ZTRjLi5jNGMyNGQwMDk3ZWEzZGM4M2Y0NGYzNDYwYTI0ZDJhYzdlZmM5NDM3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViVmlkZW9GdWxsc2Ny
ZWVuSW50ZXJmYWNlTWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYlZp
ZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYy5oCkBAIC03MCw3ICs3MCw3IEBAIHB1YmxpYzoKICAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldENhblBsYXlGYXN0UmV2ZXJzZShib29sKSBvdmVycmlk
ZSB7IH0KICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldEF1ZGlvTWVkaWFTZWxlY3Rpb25PcHRp
b25zKGNvbnN0IFZlY3RvcjxXVEY6OlN0cmluZz4mIC8qb3B0aW9ucyovLCB1aW50NjRfdCAvKnNl
bGVjdGVkSW5kZXgqLykgb3ZlcnJpZGUgeyB9CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRM
ZWdpYmxlTWVkaWFTZWxlY3Rpb25PcHRpb25zKGNvbnN0IFZlY3RvcjxXVEY6OlN0cmluZz4mIC8q
b3B0aW9ucyovLCB1aW50NjRfdCAvKnNlbGVjdGVkSW5kZXgqLykgb3ZlcnJpZGUgeyB9Ci0gICAg
V0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRFeHRlcm5hbFBsYXliYWNrKGJvb2wgLyplbmFibGVkKi8s
IEV4dGVybmFsUGxheWJhY2tUYXJnZXRUeXBlLCBXVEY6OlN0cmluZyAvKmxvY2FsaXplZERldmlj
ZU5hbWUqLykgb3ZlcnJpZGUgeyB9CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRFeHRlcm5h
bFBsYXliYWNrKGJvb2wgZW5hYmxlZCwgRXh0ZXJuYWxQbGF5YmFja1RhcmdldFR5cGUsIFdURjo6
U3RyaW5nIGxvY2FsaXplZERldmljZU5hbWUpIG92ZXJyaWRlOwogICAgIFdFQkNPUkVfRVhQT1JU
IHZvaWQgc2V0V2lyZWxlc3NWaWRlb1BsYXliYWNrRGlzYWJsZWQoYm9vbCkgb3ZlcnJpZGUgeyB9
CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldHVwRnVsbHNjcmVlbihOU1ZpZXcmIGxheWVy
SG9zdGVkVmlldywgY29uc3QgSW50UmVjdCYgaW5pdGlhbFJlY3QsIE5TV2luZG93ICpwYXJlbnRX
aW5kb3csIEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSwgYm9vbCBh
bGxvd3NQaWN0dXJlSW5QaWN0dXJlUGxheWJhY2spOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWFjL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYy5tbSBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWMubW0K
aW5kZXggMWZhZWMyNTlmNzc0YTY1ZjUyOGQ0ZWIxOTEwYzMyMTNhYjc0MDZmYS4uNTJhNjcyZmZk
OGFjYTJlMzQzNDJiN2ZlNGE0M2JlMmMzNzBhMTEwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWFjL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYy5tbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFj
Lm1tCkBAIC05OSw2ICs5OSwxMCBAQCB2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1h
Yzo6cHJlcGFyZWRUb1JldHVyblRvSW5saW5lKGJvb2wsIGNvbnN0IEludFJlYwogewogfQogCit2
b2lkIFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYzo6c2V0RXh0ZXJuYWxQbGF5YmFjayhi
b29sLCBFeHRlcm5hbFBsYXliYWNrVGFyZ2V0VHlwZSwgV1RGOjpTdHJpbmcpCit7Cit9CisKIGJv
b2wgc3VwcG9ydHNQaWN0dXJlSW5QaWN0dXJlKCkKIHsKICAgICByZXR1cm4gZmFsc2U7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01lZGlhUGxheWJhY2tUYXJnZXRQ
aWNrZXJNb2NrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTWVkaWFQbGF5YmFj
a1RhcmdldFBpY2tlck1vY2suY3BwCmluZGV4IDc3NDI1OWQ3ODlmOTBmNmI4NGM0MDkwMTNkMTll
OTQxMjQ3NjkzNDAuLjc2YjZhMDIxNWY3NTAwZDQ2Y2Y2YTQ0NzY1MmMzMDhkOWMxODk2NzkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTWVkaWFQbGF5YmFja1Rhcmdl
dFBpY2tlck1vY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTWVkaWFQ
bGF5YmFja1RhcmdldFBpY2tlck1vY2suY3BwCkBAIC03MCw3ICs3MCw3IEBAIHZvaWQgTWVkaWFQ
bGF5YmFja1RhcmdldFBpY2tlck1vY2s6OnRpbWVyRmlyZWQoKQogICAgIGN1cnJlbnREZXZpY2VE
aWRDaGFuZ2UoKTsKIH0KIAotdm9pZCBNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTW9jazo6c2hv
d1BsYXliYWNrVGFyZ2V0UGlja2VyKGNvbnN0IEZsb2F0UmVjdCYsIGJvb2wgY2hlY2tBY3RpdmVS
b3V0ZSkKK3ZvaWQgTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1vY2s6OnNob3dQbGF5YmFja1Rh
cmdldFBpY2tlcihjb25zdCBGbG9hdFJlY3QmLCBib29sIGNoZWNrQWN0aXZlUm91dGUsIGNvbnN0
IFN0cmluZyYpCiB7CiAgICAgaWYgKCFjbGllbnQoKSB8fCBtX3Nob3dpbmdNZW51KQogICAgICAg
ICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01lZGlh
UGxheWJhY2tUYXJnZXRQaWNrZXJNb2NrLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2Nr
L01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJNb2NrLmgKaW5kZXggMzVjYzk1NGIwNjU0ZTA3YWQ2
Nzg4ZmZiMmRjNTA5M2I3OWYwZmRlMS4uZWFlNjNiNzE1MGY5OGZlNTE3ODQxNGJmNWVjZjc1ZTAw
OWUzMWJjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9NZWRpYVBs
YXliYWNrVGFyZ2V0UGlja2VyTW9jay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21v
Y2svTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1vY2suaApAQCAtNDEsNyArNDEsNyBAQCBwdWJs
aWM6CiAKICAgICB2aXJ0dWFsIH5NZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTW9jaygpOwogCi0g
ICAgdm9pZCBzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIoY29uc3QgRmxvYXRSZWN0JiwgYm9vbCBj
aGVja0FjdGl2ZVJvdXRlKSBvdmVycmlkZTsKKyAgICB2b2lkIHNob3dQbGF5YmFja1RhcmdldFBp
Y2tlcihjb25zdCBGbG9hdFJlY3QmLCBib29sIGNoZWNrQWN0aXZlUm91dGUsIGNvbnN0IFN0cmlu
ZyYpIG92ZXJyaWRlOwogICAgIHZvaWQgc3RhcnRpbmdNb25pdG9yaW5nUGxheWJhY2tUYXJnZXRz
KCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBzdG9wTW9uaXRvcmluZ1BsYXliYWNrVGFyZ2V0cygpIG92
ZXJyaWRlOwogICAgIHZvaWQgaW52YWxpZGF0ZVBsYXliYWNrVGFyZ2V0cygpIG92ZXJyaWRlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3BpL2NvY29hL0FWS2l0U1BJLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcGkvY29jb2EvQVZLaXRTUEkuaAppbmRleCBiYmMy
Y2UyNjAzZTg2NzQ1ZjRiMWNkNmRiNmM2NzU5YjJhNWJkMmU3Li40MmRiZTY2ZWJiMDJhNGNmMjc5
YjA4NDQwMjQxMDU3Yzk5ODUwMTAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9zcGkvY29jb2EvQVZLaXRTUEkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcGkv
Y29jb2EvQVZLaXRTUEkuaApAQCAtMTM0LDYgKzEzNCwxMyBAQCBOU19DTEFTU19BVkFJTEFCTEVf
TUFDKDEwXzExKQogLSAodm9pZClzaG93TWVudUZvclJlY3Q6KE5TUmVjdClzY3JlZW5SZWN0IGFw
cGVhcmFuY2VOYW1lOihOU1N0cmluZyAqKWFwcGVhcmFuY2VOYW1lOwogLSAoQk9PTClzaG93TWVu
dUZvclJlY3Q6KE5TUmVjdClzY3JlZW5SZWN0IGFwcGVhcmFuY2VOYW1lOihOU1N0cmluZyAqKWFw
cGVhcmFuY2VOYW1lIGFsbG93UmVzZWxlY3Rpb25PZlNlbGVjdGVkT3V0cHV0RGV2aWNlOihCT09M
KWFsbG93UmVzZWxlY3Rpb25PZlNlbGVjdGVkT3V0cHV0RGV2aWNlOwogCit0eXBlZGVmIE5TX0VO
VU0oTlNJbnRlZ2VyLCBBVk91dHB1dERldmljZU1lbnVDb250cm9sbGVyU2VsZWN0aW9uKSB7Cisg
ICAgQVZPdXRwdXREZXZpY2VNZW51Q29udHJvbGxlclNlbGVjdGlvbk91dHB1dERldmljZSwKKyAg
ICBBVk91dHB1dERldmljZU1lbnVDb250cm9sbGVyU2VsZWN0aW9uQ3VzdG9tTWVudUl0ZW0sCisg
ICAgQVZPdXRwdXREZXZpY2VNZW51Q29udHJvbGxlclNlbGVjdGlvbk5vbmUKK307CisKKy0gKEFW
T3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXJTZWxlY3Rpb24pc2hvd01lbnVGb3JSZWN0OihOU1Jl
Y3Qpc2NyZWVuUmVjdCBhcHBlYXJhbmNlTmFtZTooTlNTdHJpbmcgKilhcHBlYXJhbmNlTmFtZSBh
bGxvd1Jlc2VsZWN0aW9uT2ZTZWxlY3RlZE91dHB1dERldmljZTooQk9PTClhbGxvd1Jlc2VsZWN0
aW9uT2ZTZWxlY3RlZE91dHB1dERldmljZSBjdXN0b21NZW51SXRlbVRpdGxlOihOU1N0cmluZyAq
KWN1c3RvbU1lbnVJdGVtVGl0bGUgY3VzdG9tTWVudUl0ZW1FbmFibGVkOihCT09MKWN1c3RvbU1l
bnVJdGVtRW5hYmxlZDsKIEBlbmQKIAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9X
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNv
cmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IDIwYzA2ZTlkY2MxMDRmNGMzZTBmMTBl
ZDdhM2U4YmZlNzMxODljNDQuLjgzYjFjMzJmYTZhZjA0NTE0MzBiZWI3MmE4ZDQ3MjcxZTZiZGUx
MzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9t
ZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9t
ZUNsaWVudC5oCkBAIC0yMTMsNyArMjEzLDcgQEAgcHVibGljOgogI2lmIEVOQUJMRShXSVJFTEVT
U19QTEFZQkFDS19UQVJHRVQpICYmICFQTEFURk9STShJT1MpCiAgICAgdm9pZCBhZGRQbGF5YmFj
a1RhcmdldFBpY2tlckNsaWVudCh1aW50NjRfdCAvKmNvbnRleHRJZCovKSBvdmVycmlkZTsKICAg
ICB2b2lkIHJlbW92ZVBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50KHVpbnQ2NF90IC8qY29udGV4
dElkKi8pIG92ZXJyaWRlOwotICAgIHZvaWQgc2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKHVpbnQ2
NF90IC8qY29udGV4dElkKi8sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiwgYm9vbCAvKiBoYXNW
aWRlbyAqLykgb3ZlcnJpZGU7CisgICAgdm9pZCBzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIodWlu
dDY0X3QgLypjb250ZXh0SWQqLywgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmLCBib29sIC8qIGhh
c1ZpZGVvICovLCBjb25zdCBTdHJpbmcmKSBvdmVycmlkZTsKICAgICB2b2lkIHBsYXliYWNrVGFy
Z2V0UGlja2VyQ2xpZW50U3RhdGVEaWRDaGFuZ2UodWludDY0X3QgLypjb250ZXh0SWQqLywgV2Vi
Q29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzKSBvdmVycmlkZTsKICAgICB2b2lk
IHNldE1vY2tNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyRW5hYmxlZChib29sKSBvdmVycmlkZTsK
ICAgICB2b2lkIHNldE1vY2tNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyU3RhdGUoY29uc3QgU3Ry
aW5nJiwgV2ViQ29yZTo6TWVkaWFQbGF5YmFja1RhcmdldENvbnRleHQ6OlN0YXRlKSBvdmVycmlk
ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9t
ZUNsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNs
aWVudC5tbQppbmRleCAwYzg1OTQwZTQyODZmMWVjYjU0ZGE2MjEzMjgzMjJiMTZhZTY5YjU1Li5h
MjJiOTRlZWI3ODYyOTBhMGMyMGU0ZWU3NzE3ZWM3NzEyZDkwYjEyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0KKysrIGIvU291
cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tCkBAIC0xMDMy
LDcgKzEwMzIsNyBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6cmVtb3ZlUGxheWJhY2tUYXJnZXRQ
aWNrZXJDbGllbnQodWludDY0X3QgY29udGV4dElkKQogICAgIFttX3dlYlZpZXcgX3JlbW92ZVBs
YXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50OmNvbnRleHRJZF07CiB9CiAKLXZvaWQgV2ViQ2hyb21l
Q2xpZW50OjpzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIodWludDY0X3QgY29udGV4dElkLCBjb25z
dCBXZWJDb3JlOjpJbnRQb2ludCYgbG9jYXRpb24sIGJvb2wgaGFzVmlkZW8pCit2b2lkIFdlYkNo
cm9tZUNsaWVudDo6c2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKHVpbnQ2NF90IGNvbnRleHRJZCwg
Y29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGxvY2F0aW9uLCBib29sIGhhc1ZpZGVvLCBjb25zdCBT
dHJpbmcmKQogewogICAgIFttX3dlYlZpZXcgX3Nob3dQbGF5YmFja1RhcmdldFBpY2tlcjpjb250
ZXh0SWQgbG9jYXRpb246bG9jYXRpb24gaGFzVmlkZW86aGFzVmlkZW9dOwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2Vy
LmggYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYk1lZGlhUGxheWJhY2tUYXJnZXRQaWNr
ZXIuaAppbmRleCBkZDFlZDJjNDM1NGIyYWM3ZjI3NDc5YjBmMGIxNjQ3NjU1NDFiYmYzLi44ZTU0
MmY4MTY0NjQ5ZDFmMmI3NmU1NDIyZmVmZmZlNTEyOTM4OWVhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L21hYy9XZWJWaWV3L1dlYk1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXIuaAorKysgYi9T
b3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYk1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXIuaApA
QCAtNDUsNyArNDUsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGFkZFBsYXliYWNrVGFyZ2V0UGlj
a2VyQ2xpZW50KHVpbnQ2NF90KTsKICAgICB2b2lkIHJlbW92ZVBsYXliYWNrVGFyZ2V0UGlja2Vy
Q2xpZW50KHVpbnQ2NF90KTsKLSAgICB2b2lkIHNob3dQbGF5YmFja1RhcmdldFBpY2tlcih1aW50
NjRfdCwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiwgYm9vbCBoYXNWaWRlbyk7CisgICAgdm9p
ZCBzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIodWludDY0X3QsIGNvbnN0IFdlYkNvcmU6OkZsb2F0
UmVjdCYsIGJvb2wgaGFzVmlkZW8sIGNvbnN0IFN0cmluZyYpOwogICAgIHZvaWQgcGxheWJhY2tU
YXJnZXRQaWNrZXJDbGllbnRTdGF0ZURpZENoYW5nZSh1aW50NjRfdCwgV2ViQ29yZTo6TWVkaWFQ
cm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzKTsKICAgICB2b2lkIHNldE1vY2tNZWRpYVBsYXliYWNr
VGFyZ2V0UGlja2VyRW5hYmxlZChib29sKTsKICAgICB2b2lkIHNldE1vY2tNZWRpYVBsYXliYWNr
VGFyZ2V0UGlja2VyU3RhdGUoY29uc3QgU3RyaW5nJiwgV2ViQ29yZTo6TWVkaWFQbGF5YmFja1Rh
cmdldENvbnRleHQ6OlN0YXRlKTsKQEAgLTU0LDYgKzU0LDcgQEAgcHVibGljOgogICAgIHZpcnR1
YWwgdm9pZCBzZXRQbGF5YmFja1RhcmdldCh1aW50NjRfdCwgUmVmPFdlYkNvcmU6Ok1lZGlhUGxh
eWJhY2tUYXJnZXQ+JiYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBleHRlcm5hbE91dHB1
dERldmljZUF2YWlsYWJsZURpZENoYW5nZSh1aW50NjRfdCwgYm9vbCkgb3ZlcnJpZGU7CiAgICAg
dmlydHVhbCB2b2lkIHNldFNob3VsZFBsYXlUb1BsYXliYWNrVGFyZ2V0KHVpbnQ2NF90LCBib29s
KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgY3VzdG9tUGxheWJhY2tBY3Rpb25TZWxlY3Rl
ZCh1aW50NjRfdCkgb3ZlcnJpZGU7CiAKICAgICB2b2lkIGludmFsaWRhdGUoKTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJNZWRpYVBsYXliYWNrVGFyZ2V0UGlj
a2VyLm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJNZWRpYVBsYXliYWNrVGFyZ2V0
UGlja2VyLm1tCmluZGV4IDZkOGNiZjU3NWZmYTcwYmE2ZmU4ZjJmNzAwNjg1MzhmOWY5ZTJiMGYu
LmVjYmY3MGYyYmJiNDU0ODc3YmMwOGUyZTBjODM0ZTJkYzljYTQyNGQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlci5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYk1lZGlhUGxheWJhY2tUYXJnZXRQaWNr
ZXIubW0KQEAgLTUxLDkgKzUxLDkgQEAgdm9pZCBXZWJNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2Vy
OjpyZW1vdmVQbGF5YmFja1RhcmdldFBpY2tlckNsaWVudCh1aW50NjRfdCBjb24KICAgICBXZWJD
b3JlOjpXZWJNZWRpYVNlc3Npb25NYW5hZ2VyOjpzaGFyZWQoKS5yZW1vdmVQbGF5YmFja1Rhcmdl
dFBpY2tlckNsaWVudCgqdGhpcywgY29udGV4dElkKTsKIH0KIAotdm9pZCBXZWJNZWRpYVBsYXli
YWNrVGFyZ2V0UGlja2VyOjpzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIodWludDY0X3QgY29udGV4
dElkLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHJlY3QsIGJvb2wgaGFzVmlkZW8pCit2b2lk
IFdlYk1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXI6OnNob3dQbGF5YmFja1RhcmdldFBpY2tlcih1
aW50NjRfdCBjb250ZXh0SWQsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgcmVjdCwgYm9vbCBo
YXNWaWRlbywgY29uc3QgU3RyaW5nJiBjdXN0b21NZW51SXRlbVRpdGxlKQogewotICAgIFdlYkNv
cmU6OldlYk1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNoYXJlZCgpLnNob3dQbGF5YmFja1RhcmdldFBp
Y2tlcigqdGhpcywgY29udGV4dElkLCBXZWJDb3JlOjpJbnRSZWN0KHJlY3QpLCBoYXNWaWRlbyk7
CisgICAgV2ViQ29yZTo6V2ViTWVkaWFTZXNzaW9uTWFuYWdlcjo6c2hhcmVkKCkuc2hvd1BsYXli
YWNrVGFyZ2V0UGlja2VyKCp0aGlzLCBjb250ZXh0SWQsIFdlYkNvcmU6OkludFJlY3QocmVjdCks
IGhhc1ZpZGVvLCBjdXN0b21NZW51SXRlbVRpdGxlKTsKIH0KIAogdm9pZCBXZWJNZWRpYVBsYXli
YWNrVGFyZ2V0UGlja2VyOjpwbGF5YmFja1RhcmdldFBpY2tlckNsaWVudFN0YXRlRGlkQ2hhbmdl
KHVpbnQ2NF90IGNvbnRleHRJZCwgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZs
YWdzIHN0YXRlKQpAQCAtOTUsNiArOTUsMTQgQEAgdm9pZCBXZWJNZWRpYVBsYXliYWNrVGFyZ2V0
UGlja2VyOjpzZXRTaG91bGRQbGF5VG9QbGF5YmFja1RhcmdldCh1aW50NjRfdCBjb250ZXgKICAg
ICBtX3BhZ2UtPnNldFNob3VsZFBsYXlUb1BsYXliYWNrVGFyZ2V0KGNvbnRleHRJZCwgc2hvdWxk
UGxheSk7CiB9CiAKK3ZvaWQgV2ViTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlcjo6Y3VzdG9tUGxh
eWJhY2tBY3Rpb25TZWxlY3RlZCh1aW50NjRfdCBjb250ZXh0SWQpCit7CisgICAgaWYgKCFtX3Bh
Z2UpCisgICAgICAgIHJldHVybjsKKworICAgIG1fcGFnZS0+Y3VzdG9tUGxheWJhY2tBY3Rpb25T
ZWxlY3RlZChjb250ZXh0SWQpOworfQorCiB2b2lkIFdlYk1lZGlhUGxheWJhY2tUYXJnZXRQaWNr
ZXI6OmludmFsaWRhdGUoKQogewogICAgIG1fcGFnZSA9IG51bGxwdHI7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9X
ZWJWaWV3L1dlYlZpZXcubW0KaW5kZXggNmJlOTI1NTU3YTM2MGE5N2I2YzA1YTM0NWFlNjJmODIz
YTYzNGFlZC4uOWFlYzQ4NmI4OWIyZWNkYThjNjAyN2IwNDcwNjliN2UxYWFmYzY0MSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQpAQCAtODc0MCw3ICs4NzQwLDcgQEAgYm9vbCBM
YXllckZsdXNoQ29udHJvbGxlcjo6Zmx1c2hMYXllcnMoKQogICAgICAgICByZXR1cm47CiAKICAg
ICBOU1JlY3QgcmVjdEluU2NyZWVuQ29vcmRpbmF0ZXMgPSBbc2VsZi53aW5kb3cgY29udmVydFJl
Y3RUb1NjcmVlbjpOU01ha2VSZWN0KGxvY2F0aW9uLngoKSwgbG9jYXRpb24ueSgpLCAwLCAwKV07
Ci0gICAgW3NlbGYgX2RldmljZVBpY2tlcl0tPnNob3dQbGF5YmFja1RhcmdldFBpY2tlcihjbGll
bnRJZCwgcmVjdEluU2NyZWVuQ29vcmRpbmF0ZXMsIGhhc1ZpZGVvKTsKKyAgICBbc2VsZiBfZGV2
aWNlUGlja2VyXS0+c2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKGNsaWVudElkLCByZWN0SW5TY3Jl
ZW5Db29yZGluYXRlcywgaGFzVmlkZW8sIFN0cmluZygpKTsKIH0KIAogLSAodm9pZClfcGxheWJh
Y2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0ZURpZENoYW5nZToodWludDY0X3QpY2xpZW50SWQgc3Rh
dGU6KFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncylzdGF0ZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCA3ZmZiNDZiMDQyM2MzNDIz
N2EwZDRiODU4OTYwMmI1NDNhYTQ3N2M2Li4zMmZlMzQwZGFlNTIyMWRjYjdlYmI4YWVmMjkwNzc0
YWUyZWM5ZTQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApA
QCAtNjEwNiw5ICs2MTA2LDkgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnJlbW92ZVBsYXliYWNrVGFy
Z2V0UGlja2VyQ2xpZW50KHVpbnQ2NF90IGNvbnRleHRJZCkKICAgICBtX3BhZ2VDbGllbnQubWVk
aWFTZXNzaW9uTWFuYWdlcigpLnJlbW92ZVBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50KCp0aGlz
LCBjb250ZXh0SWQpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6c2hvd1BsYXliYWNrVGFyZ2V0
UGlja2VyKHVpbnQ2NF90IGNvbnRleHRJZCwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiByZWN0
LCBib29sIGhhc1ZpZGVvKQordm9pZCBXZWJQYWdlUHJveHk6OnNob3dQbGF5YmFja1RhcmdldFBp
Y2tlcih1aW50NjRfdCBjb250ZXh0SWQsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgcmVjdCwg
Ym9vbCBoYXNWaWRlbywgY29uc3QgU3RyaW5nJiBjdXN0b21NZW51SXRlbVRpdGxlKQogewotICAg
IG1fcGFnZUNsaWVudC5tZWRpYVNlc3Npb25NYW5hZ2VyKCkuc2hvd1BsYXliYWNrVGFyZ2V0UGlj
a2VyKCp0aGlzLCBjb250ZXh0SWQsIG1fcGFnZUNsaWVudC5yb290Vmlld1RvU2NyZWVuKEludFJl
Y3QocmVjdCkpLCBoYXNWaWRlbyk7CisgICAgbV9wYWdlQ2xpZW50Lm1lZGlhU2Vzc2lvbk1hbmFn
ZXIoKS5zaG93UGxheWJhY2tUYXJnZXRQaWNrZXIoKnRoaXMsIGNvbnRleHRJZCwgbV9wYWdlQ2xp
ZW50LnJvb3RWaWV3VG9TY3JlZW4oSW50UmVjdChyZWN0KSksIGhhc1ZpZGVvLCBjdXN0b21NZW51
SXRlbVRpdGxlKTsKIH0KIAogdm9pZCBXZWJQYWdlUHJveHk6OnBsYXliYWNrVGFyZ2V0UGlja2Vy
Q2xpZW50U3RhdGVEaWRDaGFuZ2UodWludDY0X3QgY29udGV4dElkLCBXZWJDb3JlOjpNZWRpYVBy
b2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mgc3RhdGUpCkBAIC02MTQ5LDYgKzYxNDksMTQgQEAgdm9p
ZCBXZWJQYWdlUHJveHk6OnNldFNob3VsZFBsYXlUb1BsYXliYWNrVGFyZ2V0KHVpbnQ2NF90IGNv
bnRleHRJZCwgYm9vbCBzaG91bGQKIAogICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2Vi
UGFnZTo6U2V0U2hvdWxkUGxheVRvUGxheWJhY2tUYXJnZXQoY29udGV4dElkLCBzaG91bGRQbGF5
KSwgbV9wYWdlSUQpOwogfQorCit2b2lkIFdlYlBhZ2VQcm94eTo6Y3VzdG9tUGxheWJhY2tBY3Rp
b25TZWxlY3RlZCh1aW50NjRfdCBjb250ZXh0SWQpCit7CisgICAgaWYgKCFpc1ZhbGlkKCkpCisg
ICAgICAgIHJldHVybjsKKworICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6
Q3VzdG9tUGxheWJhY2tBY3Rpb25TZWxlY3RlZChjb250ZXh0SWQpLCBtX3BhZ2VJRCk7Cit9CiAj
ZW5kaWYKIAogdm9pZCBXZWJQYWdlUHJveHk6OmRpZENoYW5nZUJhY2tncm91bmRDb2xvcigpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggYmU3YzY0NGM1MjMyNjVk
YTNmMDU2YTUxODcwZjliOTczNTA3MDlmNC4uNWZiMjU5ZjE3ZjhhYTk1NDNlNzAyZTUzOGQ5MTA2
OThlODNkNTZkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAt
MTA2Miw3ICsxMDYyLDcgQEAgcHVibGljOgogI2lmIEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19U
QVJHRVQpICYmICFQTEFURk9STShJT1MpCiAgICAgdm9pZCBhZGRQbGF5YmFja1RhcmdldFBpY2tl
ckNsaWVudCh1aW50NjRfdCk7CiAgICAgdm9pZCByZW1vdmVQbGF5YmFja1RhcmdldFBpY2tlckNs
aWVudCh1aW50NjRfdCk7Ci0gICAgdm9pZCBzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIodWludDY0
X3QsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYsIGJvb2wgaGFzVmlkZW8pOworICAgIHZvaWQg
c2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKHVpbnQ2NF90LCBjb25zdCBXZWJDb3JlOjpGbG9hdFJl
Y3QmLCBib29sIGhhc1ZpZGVvLCBjb25zdCBTdHJpbmcmKTsKICAgICB2b2lkIHBsYXliYWNrVGFy
Z2V0UGlja2VyQ2xpZW50U3RhdGVEaWRDaGFuZ2UodWludDY0X3QsIFdlYkNvcmU6Ok1lZGlhUHJv
ZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyk7CiAgICAgdm9pZCBzZXRNb2NrTWVkaWFQbGF5YmFja1Rh
cmdldFBpY2tlckVuYWJsZWQoYm9vbCk7CiAgICAgdm9pZCBzZXRNb2NrTWVkaWFQbGF5YmFja1Rh
cmdldFBpY2tlclN0YXRlKGNvbnN0IFN0cmluZyYsIFdlYkNvcmU6Ok1lZGlhUGxheWJhY2tUYXJn
ZXRDb250ZXh0OjpTdGF0ZSk7CkBAIC0xMDcxLDYgKzEwNzEsNyBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCB2b2lkIHNldFBsYXliYWNrVGFyZ2V0KHVpbnQ2NF90LCBSZWY8V2ViQ29yZTo6TWVkaWFQ
bGF5YmFja1RhcmdldD4mJikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGV4dGVybmFsT3V0
cHV0RGV2aWNlQXZhaWxhYmxlRGlkQ2hhbmdlKHVpbnQ2NF90LCBib29sKSBvdmVycmlkZTsKICAg
ICB2aXJ0dWFsIHZvaWQgc2V0U2hvdWxkUGxheVRvUGxheWJhY2tUYXJnZXQodWludDY0X3QsIGJv
b2wpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBjdXN0b21QbGF5YmFja0FjdGlvblNlbGVj
dGVkKHVpbnQ2NF90KSBvdmVycmlkZTsKICNlbmRpZgogCiAgICAgdm9pZCBkaWRDaGFuZ2VCYWNr
Z3JvdW5kQ29sb3IoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5Lm1lc3NhZ2VzLmluCmluZGV4IDE0ZTUwZjlmM2IxMzM3ZjM5Zjc5MTlmNzZmYzIzY2RhYzZm
ZDlkNjUuLjFmYzQ2ODQwZmY1NDNiYTIwMjM0OTJhNmEzZWY1Y2IwYjRhYjc5NTAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgpAQCAt
NDM1LDcgKzQzNSw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAjaWYgRU5BQkxFKFdJ
UkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkgJiYgIVBMQVRGT1JNKElPUykKICAgICBBZGRQbGF5YmFj
a1RhcmdldFBpY2tlckNsaWVudCh1aW50NjRfdCBjb250ZXh0SWQpCiAgICAgUmVtb3ZlUGxheWJh
Y2tUYXJnZXRQaWNrZXJDbGllbnQodWludDY0X3QgY29udGV4dElkKQotICAgIFNob3dQbGF5YmFj
a1RhcmdldFBpY2tlcih1aW50NjRfdCBjbGllbnRJZCwgV2ViQ29yZTo6RmxvYXRSZWN0IHBpY2tl
ckxvY2F0aW9uLCBib29sIGhhc1ZpZGVvKQorICAgIFNob3dQbGF5YmFja1RhcmdldFBpY2tlcih1
aW50NjRfdCBjbGllbnRJZCwgV2ViQ29yZTo6RmxvYXRSZWN0IHBpY2tlckxvY2F0aW9uLCBib29s
IGhhc1ZpZGVvLCBTdHJpbmcgY3VzdG9tTWVudUl0ZW1UaXRsZSkKICAgICBQbGF5YmFja1Rhcmdl
dFBpY2tlckNsaWVudFN0YXRlRGlkQ2hhbmdlKHVpbnQ2NF90IGNvbnRleHRJZCwgdW5zaWduZWQg
bWVkaWFTdGF0ZSkKICAgICBTZXRNb2NrTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlckVuYWJsZWQo
Ym9vbCBlbmFibGVkKQogICAgIFNldE1vY2tNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyU3RhdGUo
U3RyaW5nIG5hbWUsIHVuc2lnbmVkIHBpY2tlclN0YXRlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3Bw
CmluZGV4IGJmNTdjYmYyNTY0NDlhZDFmYWRiOTM3Y2JmZWE5ZDkzNTczNTYzZTMuLmQxYjk4NTll
YTlmNDQwMDc2YTMzOTM0MmMyODk1MmU2Mzg0MDNhZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5j
cHAKQEAgLTEwOTIsMTEgKzEwOTIsMTEgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnJlbW92ZVBs
YXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50KHVpbnQ2NF90IGNvbnRleHRJZCkKIH0KIAogCi12b2lk
IFdlYkNocm9tZUNsaWVudDo6c2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKHVpbnQ2NF90IGNvbnRl
eHRJZCwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHBvc2l0aW9uLCBib29sIGlzVmlkZW8pCit2
b2lkIFdlYkNocm9tZUNsaWVudDo6c2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKHVpbnQ2NF90IGNv
bnRleHRJZCwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHBvc2l0aW9uLCBib29sIGlzVmlkZW8s
IGNvbnN0IFN0cmluZyYgY3VzdG9tTWVudUl0ZW1UaXRsZSkKIHsKICAgICBGcmFtZVZpZXcqIGZy
YW1lVmlldyA9IG1fcGFnZS0+bWFpbkZyYW1lKCktPnZpZXcoKTsKICAgICBGbG9hdFJlY3QgcmVj
dChmcmFtZVZpZXctPmNvbnRlbnRzVG9Sb290VmlldyhmcmFtZVZpZXctPndpbmRvd1RvQ29udGVu
dHMocG9zaXRpb24pKSwgRmxvYXRTaXplKCkpOwotICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6
V2ViUGFnZVByb3h5OjpTaG93UGxheWJhY2tUYXJnZXRQaWNrZXIoY29udGV4dElkLCByZWN0LCBp
c1ZpZGVvKSk7CisgICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlNob3dQ
bGF5YmFja1RhcmdldFBpY2tlcihjb250ZXh0SWQsIHJlY3QsIGlzVmlkZW8sIGN1c3RvbU1lbnVJ
dGVtVGl0bGUpKTsKIH0KIAogdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnBsYXliYWNrVGFyZ2V0UGlj
a2VyQ2xpZW50U3RhdGVEaWRDaGFuZ2UodWludDY0X3QgY29udGV4dElkLCBXZWJDb3JlOjpNZWRp
YVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mgc3RhdGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAppbmRl
eCA3NjQxMzAzY2YyNjg5YTQ5Y2ZmNWM2YmViZmU0OThhY2Y4NDU5ZTlmLi4yYWQyN2VmZDM4Yjhm
MWZhYjhlMGM4NTkyMDg0M2Y3NTYxMTlmOThkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAgLTMx
Nyw3ICszMTcsNyBAQCBwcml2YXRlOgogI2lmIEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19UQVJH
RVQpICYmICFQTEFURk9STShJT1MpCiAgICAgdm9pZCBhZGRQbGF5YmFja1RhcmdldFBpY2tlckNs
aWVudCh1aW50NjRfdCAvKmNvbnRleHRJZCovKSBvdmVycmlkZTsKICAgICB2b2lkIHJlbW92ZVBs
YXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50KHVpbnQ2NF90IC8qY29udGV4dElkKi8pIG92ZXJyaWRl
OwotICAgIHZvaWQgc2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKHVpbnQ2NF90IGNvbnRleHRJZCwg
Y29uc3QgV2ViQ29yZTo6SW50UG9pbnQmLCBib29sKSBvdmVycmlkZTsKKyAgICB2b2lkIHNob3dQ
bGF5YmFja1RhcmdldFBpY2tlcih1aW50NjRfdCAvKmNvbnRleHRJZCovLCBjb25zdCBXZWJDb3Jl
OjpJbnRQb2ludCYsIGJvb2wsIGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlOwogICAgIHZvaWQgcGxh
eWJhY2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0ZURpZENoYW5nZSh1aW50NjRfdCwgV2ViQ29yZTo6
TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzKSBvdmVycmlkZTsKICAgICB2b2lkIHNldE1v
Y2tNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyRW5hYmxlZChib29sKSBvdmVycmlkZTsKICAgICB2
b2lkIHNldE1vY2tNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyU3RhdGUoY29uc3QgU3RyaW5nJiwg
V2ViQ29yZTo6TWVkaWFQbGF5YmFja1RhcmdldENvbnRleHQ6OlN0YXRlKSBvdmVycmlkZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IDVmZWJhMDgz
NmFjNzg3NmQ3OWYyZTdhNmU4YmYxYjBiYzM2ZDI0MWMuLjk2NTU1NGRkYjg5OGNjM2MyZjY1MjZj
YTg3ODExOTU3MmZiZDE3YzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuaApAQCAtMTE2OCw2ICsxMTY4LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHBsYXli
YWNrVGFyZ2V0U2VsZWN0ZWQodWludDY0X3QsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhUGxheWJhY2tU
YXJnZXRDb250ZXh0JiBvdXRwdXREZXZpY2UpIGNvbnN0OwogICAgIHZvaWQgcGxheWJhY2tUYXJn
ZXRBdmFpbGFiaWxpdHlEaWRDaGFuZ2UodWludDY0X3QsIGJvb2wpOwogICAgIHZvaWQgc2V0U2hv
dWxkUGxheVRvUGxheWJhY2tUYXJnZXQodWludDY0X3QsIGJvb2wpOworICAgIHZvaWQgY3VzdG9t
UGxheWJhY2tBY3Rpb25TZWxlY3RlZCh1aW50NjRfdCk7CiAjZW5kaWYKIAogICAgIHZvaWQgY2xl
YXJXaGVlbEV2ZW50VGVzdFRyaWdnZXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KaW5kZXggOTBlODEwMjgzMTJmMmE2
NjM0NmI1MmJhMTY5MzBiNjA4OTcwNzllNy4uNTY0M2UxOGMxYjdhZWI0NTMzZmQ2ZWU2NWZhMTgy
YzdkNTUwOGRjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KQEAgLTQxNCw2ICs0MTQsNyBAQCBtZXNzYWdlcyAtPiBX
ZWJQYWdlIExlZ2FjeVJlY2VpdmVyIHsKICAgICBQbGF5YmFja1RhcmdldFNlbGVjdGVkKHVpbnQ2
NF90IGNvbnRleHRJZCwgV2ViQ29yZTo6TWVkaWFQbGF5YmFja1RhcmdldENvbnRleHQgdGFyZ2V0
KQogICAgIFBsYXliYWNrVGFyZ2V0QXZhaWxhYmlsaXR5RGlkQ2hhbmdlKHVpbnQ2NF90IGNvbnRl
eHRJZCwgYm9vbCBhdmFpbGFibGUpCiAgICAgU2V0U2hvdWxkUGxheVRvUGxheWJhY2tUYXJnZXQo
dWludDY0X3QgY29udGV4dElkLCBib29sIHNob3VsZFBsYXkpCisgICAgQ3VzdG9tUGxheWJhY2tB
Y3Rpb25TZWxlY3RlZCh1aW50NjRfdCBjb250ZXh0SWQpCiAjZW5kaWYKIAogICAgIENsZWFyV2hl
ZWxFdmVudFRlc3RUcmlnZ2VyKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5tbQppbmRleCA1ODI1YzI2NGMyNTlhZTgwODFmMDViZjcw
NThjY2FmZGZjZjA4Nzk5Li5iZjE3NTFiOTM3YmExMDNhMDRlMzc5NzllNTk3NWM0ZGE0Nzg5NDlm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dlYlBh
Z2VNYWMubW0KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQ
YWdlTWFjLm1tCkBAIC0xMTU5LDYgKzExNTksMTEgQEAgdm9pZCBXZWJQYWdlOjpzZXRTaG91bGRQ
bGF5VG9QbGF5YmFja1RhcmdldCh1aW50NjRfdCBjb250ZXh0SWQsIGJvb2wgc2hvdWxkUGxheSkK
IHsKICAgICBtX3BhZ2UtPnNldFNob3VsZFBsYXlUb1BsYXliYWNrVGFyZ2V0KGNvbnRleHRJZCwg
c2hvdWxkUGxheSk7CiB9CisKK3ZvaWQgV2ViUGFnZTo6Y3VzdG9tUGxheWJhY2tBY3Rpb25TZWxl
Y3RlZCh1aW50NjRfdCBjb250ZXh0SWQpCit7CisgICAgbV9wYWdlLT5jdXN0b21QbGF5YmFja0Fj
dGlvblNlbGVjdGVkKGNvbnRleHRJZCk7Cit9CiAjZW5kaWYKIAogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>272581</attachid>
            <date>2016-03-01 11:37:11 -0800</date>
            <delta_ts>2016-03-01 15:27:12 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-154823-20160301113657.patch</filename>
            <type>text/plain</type>
            <size>48887</size>
            <attacher name="Ada Chan">adachan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk3NDAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjJhNzc2YmRiMjA5ODY1
OGY1ZmViNDBlMmE2ZmJmMWJhNTgyZTEwZC4uMmNlZTYwNjIwNTdhYWM2NzQzMmQ2YzQ2MTIzNjBh
ODBkNDNkMjU4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU2IEBACisyMDE2LTAyLTI5ICBBZGEg
Q2hhbiAgPGFkYWNoYW5AYXBwbGUuY29tPgorCisgICAgICAgIEFkb3B0IHRoZSBuZXcgdmVyc2lv
biBvZiBBVk91dHB1dERldmljZU1lbnVDb250cm9sbGVyJ3Mgc2hvd01lbnVGb3JSZWN0IG1ldGhv
ZC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NDgy
MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTW9k
dWxlcy9tZWRpYXNlc3Npb24vV2ViTWVkaWFTZXNzaW9uTWFuYWdlci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpXZWJNZWRpYVNlc3Npb25NYW5hZ2VyOjpzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIp
OgorICAgICAgICAoV2ViQ29yZTo6V2ViTWVkaWFTZXNzaW9uTWFuYWdlcjo6Y3VzdG9tUGxheWJh
Y2tBY3Rpb25TZWxlY3RlZCk6CisgICAgICAgIENhbGwgY3VzdG9tUGxheWJhY2tBY3Rpb25TZWxl
Y3RlZCgpIG9uIHRoZSBjbGllbnQgdGhhdCByZXF1ZXN0ZWQgdGhlIHBpY2tlci4KKyAgICAgICAg
KiBNb2R1bGVzL21lZGlhc2Vzc2lvbi9XZWJNZWRpYVNlc3Npb25NYW5hZ2VyLmg6CisgICAgICAg
ICogTW9kdWxlcy9tZWRpYXNlc3Npb24vV2ViTWVkaWFTZXNzaW9uTWFuYWdlckNsaWVudC5oOgor
ICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6
c2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojpj
dXN0b21QbGF5YmFja0FjdGlvblNlbGVjdGVkKToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoK
KyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SFRNTE1lZGlhRWxlbWVudDo6Y3VzdG9tUGxheWJhY2tBY3Rpb25TZWxlY3RlZCk6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpwbGF5YmFja1RhcmdldFBpY2tlckN1c3RvbUFj
dGlvbk5hbWUpOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5oOgorICAgICAgICAq
IGh0bWwvTWVkaWFFbGVtZW50U2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUVs
ZW1lbnRTZXNzaW9uOjpzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFFbGVtZW50U2Vzc2lvbjo6Y3VzdG9tUGxheWJhY2tBY3Rpb25TZWxlY3RlZCk6Cisg
ICAgICAgICogaHRtbC9NZWRpYUVsZW1lbnRTZXNzaW9uLmg6CisgICAgICAgICogcGFnZS9DaHJv
bWVDbGllbnQuaDoKKyAgICAgICAgKiBwYWdlL1BhZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UGFnZTo6c2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6
OmN1c3RvbVBsYXliYWNrQWN0aW9uU2VsZWN0ZWQpOgorICAgICAgICAqIHBhZ2UvUGFnZS5oOgor
ICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uLmg6CisgICAgICAg
IChXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNsaWVudDo6Y3VzdG9tUGxheWJhY2tBY3Rp
b25TZWxlY3RlZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5YmFja1Rh
cmdldENsaWVudC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWJhY2tU
YXJnZXRQaWNrZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5YmFja1RhcmdldFBp
Y2tlcjo6cGVuZGluZ0FjdGlvblRpbWVyRmlyZWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQ
bGF5YmFja1RhcmdldFBpY2tlcjo6c2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyLmg6CisgICAgICAg
IChXZWJDb3JlOjpNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyOjpDbGllbnQ6OmN1c3RvbVBsYXli
YWNrQWN0aW9uU2VsZWN0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5YmFja1Rhcmdl
dFBpY2tlcjo6Y3VzdG9tUGxheWJhY2tBY3Rpb25TZWxlY3RlZCk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1h
Yy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlh
UGxheWJhY2tUYXJnZXRQaWNrZXJNYWMubW06CisgICAgICAgIFVwZGF0ZSB0aGUgZm9yd2FyZCBk
ZWNsYXJhdGlvbiBvZiBBVk91dHB1dERldmljZU1lbnVDb250cm9sbGVyJ3Mgc2hvd01lbnVGb3JS
ZWN0IG1ldGhvZC4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJN
YWM6OnNob3dQbGF5YmFja1RhcmdldFBpY2tlcik6CisgICAgICAgIENhbGwgdGhlIG5ldyB2ZXJz
aW9uIG9mIHNob3dNZW51Rm9yUmVjdCBpZiBhdmFpbGFibGUuCisgICAgICAgICogcGxhdGZvcm0v
bWFjL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYy5oOgorICAgICAgICAqIHBsYXRmb3Jt
L21hYy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWMubW06CisgICAgICAgIChXZWJDb3Jl
OjpXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWM6OnNldEV4dGVybmFsUGxheWJhY2spOgor
ICAgICAgICAqIHBsYXRmb3JtL21vY2svTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1vY2suY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1vY2s6OnNob3dQ
bGF5YmFja1RhcmdldFBpY2tlcik6CisgICAgICAgICogcGxhdGZvcm0vbW9jay9NZWRpYVBsYXli
YWNrVGFyZ2V0UGlja2VyTW9jay5oOgorICAgICAgICAqIHBsYXRmb3JtL3NwaS9jb2NvYS9BVktp
dFNQSS5oOgorICAgICAgICBVcGRhdGVkIHdpdGggdGhlIG5ldyB2ZXJzaW9uIG9mIHNob3dNZW51
Rm9yUmVjdC4KKwogMjAxNi0wMy0wMSAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+
CiAKICAgICAgICAgVGV4dCBjb250cm9sIHNoYWRvdyBlbGVtZW50IHN0eWxlIHNob3VsZG4ndCBk
ZXBlbmQgb24gcmVuZGVyZXJzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggZjBhOGVjMjJjYjc2YjlhMzkw
ZWU2MjMyNzFjODlmMTc2ZTE2ZWVkNy4uMjg3MDI2Y2MzZWQyYmRkYzZkMDhjYTA1ODI0NjBlMjIx
NDYwMzM2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDE2LTAyLTI5ICBB
ZGEgQ2hhbiAgPGFkYWNoYW5AYXBwbGUuY29tPgorCisgICAgICAgIEFkb3B0IHRoZSBuZXcgdmVy
c2lvbiBvZiBBVk91dHB1dERldmljZU1lbnVDb250cm9sbGVyJ3Mgc2hvd01lbnVGb3JSZWN0IG1l
dGhvZC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1
NDgyMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgICogV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50Lm1tOgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50OjpzaG93UGxh
eWJhY2tUYXJnZXRQaWNrZXIpOgorICAgICAgICAqIFdlYlZpZXcvV2ViTWVkaWFQbGF5YmFja1Rh
cmdldFBpY2tlci5oOgorICAgICAgICAqIFdlYlZpZXcvV2ViTWVkaWFQbGF5YmFja1RhcmdldFBp
Y2tlci5tbToKKyAgICAgICAgKFdlYk1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXI6OnNob3dQbGF5
YmFja1RhcmdldFBpY2tlcik6CisgICAgICAgIChXZWJNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2Vy
OjpjdXN0b21QbGF5YmFja0FjdGlvblNlbGVjdGVkKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZp
ZXcubW06CisgICAgICAgICgtW1dlYlZpZXcgX3Nob3dQbGF5YmFja1RhcmdldFBpY2tlcjpsb2Nh
dGlvbjpoYXNWaWRlbzpdKToKKwogMjAxNi0wMi0yOSAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJh
c2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgdGhlIGV4cGVyaW1lbnRhbCBmZWF0dXJl
IG9mIGFudGlhbGlhc2VkIGZvbnQgZGlsYXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCAzNDY2MDRmZjRlMjU4
MDZkOTJjZmFiMzNiY2UyZDFiYjllODQzZGIyLi5mYmYyMTM0MjdhYjNkMDM2OGFjMGUyYzFlN2Fi
ZTIwYWIzZWI3ZDQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTYtMDItMjkgIEFk
YSBDaGFuICA8YWRhY2hhbkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRvcHQgdGhlIG5ldyB2ZXJz
aW9uIG9mIEFWT3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXIncyBzaG93TWVudUZvclJlY3QgbWV0
aG9kLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU0
ODIzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5
OjpzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJv
eHk6OmN1c3RvbVBsYXliYWNrQWN0aW9uU2VsZWN0ZWQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2Vz
LmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpzaG93UGxheWJhY2tUYXJn
ZXRQaWNrZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dlYlBhZ2VNYWMubW06CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2U6OmN1c3RvbVBsYXliYWNrQWN0aW9uU2VsZWN0ZWQpOgorCiAyMDE2LTAzLTAxICBDYXJs
b3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBOZXR3b3Jr
Q2FjaGU6IFdlYiBwcm9jZXNzIGxlYWtzIHJlc291cmNlIGJ1ZmZlciB3aGVuIHVzaW5nIHNoYXJl
YWJsZSByZWFzb3VyY2VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c2Vzc2lvbi9XZWJNZWRpYVNlc3Npb25NYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzZXNzaW9uL1dlYk1lZGlhU2Vzc2lvbk1hbmFnZXIuY3BwCmluZGV4IDdhMzM2OWYx
MGU1MzBlNGRjODdlNzE3ZDU2NzVmNzA5MTEzYjgwZTkuLjVhNThhMjk0YWUxN2U1ZDAyNzkwYjll
NjRkMjhiZDMwOWJkMDA4Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzZXNzaW9uL1dlYk1lZGlhU2Vzc2lvbk1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzZXNzaW9uL1dlYk1lZGlhU2Vzc2lvbk1hbmFnZXIuY3BwCkBAIC0xODAs
NyArMTgwLDcgQEAgdm9pZCBXZWJNZWRpYVNlc3Npb25NYW5hZ2VyOjpyZW1vdmVBbGxQbGF5YmFj
a1RhcmdldFBpY2tlckNsaWVudHMoV2ViTWVkaWFTZXNzaW8KICAgICBzY2hlZHVsZURlbGF5ZWRU
YXNrKFRhcmdldE1vbml0b3JpbmdDb25maWd1cmF0aW9uVGFzayB8IFRhcmdldENsaWVudHNDb25m
aWd1cmF0aW9uVGFzayk7CiB9CiAKLXZvaWQgV2ViTWVkaWFTZXNzaW9uTWFuYWdlcjo6c2hvd1Bs
YXliYWNrVGFyZ2V0UGlja2VyKFdlYk1lZGlhU2Vzc2lvbk1hbmFnZXJDbGllbnQmIGNsaWVudCwg
dWludDY0X3QgY29udGV4dElkLCBjb25zdCBJbnRSZWN0JiByZWN0LCBib29sKQordm9pZCBXZWJN
ZWRpYVNlc3Npb25NYW5hZ2VyOjpzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIoV2ViTWVkaWFTZXNz
aW9uTWFuYWdlckNsaWVudCYgY2xpZW50LCB1aW50NjRfdCBjb250ZXh0SWQsIGNvbnN0IEludFJl
Y3QmIHJlY3QsIGJvb2wsIGNvbnN0IFN0cmluZyYgY3VzdG9tTWVudUl0ZW1UaXRsZSkKIHsKICAg
ICBzaXplX3QgaW5kZXggPSBmaW5kKCZjbGllbnQsIGNvbnRleHRJZCk7CiAgICAgQVNTRVJUKGlu
ZGV4ICE9IG5vdEZvdW5kKTsKQEAgLTE5NSw3ICsxOTUsOCBAQCB2b2lkIFdlYk1lZGlhU2Vzc2lv
bk1hbmFnZXI6OnNob3dQbGF5YmFja1RhcmdldFBpY2tlcihXZWJNZWRpYVNlc3Npb25NYW5hZ2Vy
Q2xpZQogCiAgICAgYm9vbCBoYXNBY3RpdmVSb3V0ZSA9IGZsYWdzQXJlU2V0KG1fY2xpZW50U3Rh
dGVbaW5kZXhdLT5mbGFncywgTWVkaWFQcm9kdWNlcjo6SXNQbGF5aW5nVG9FeHRlcm5hbERldmlj
ZSk7CiAgICAgTE9HKE1lZGlhLCAiV2ViTWVkaWFTZXNzaW9uTWFuYWdlcjo6c2hvd1BsYXliYWNr
VGFyZ2V0UGlja2VyKCVwICsgJWxsdSkgLSBoYXNBY3RpdmVSb3V0ZSA9ICVpIiwgJmNsaWVudCwg
Y29udGV4dElkLCAoaW50KWhhc0FjdGl2ZVJvdXRlKTsKLSAgICB0YXJnZXRQaWNrZXIoKS5zaG93
UGxheWJhY2tUYXJnZXRQaWNrZXIoRmxvYXRSZWN0KHJlY3QpLCBoYXNBY3RpdmVSb3V0ZSk7CisK
KyAgICB0YXJnZXRQaWNrZXIoKS5zaG93UGxheWJhY2tUYXJnZXRQaWNrZXIoRmxvYXRSZWN0KHJl
Y3QpLCBoYXNBY3RpdmVSb3V0ZSwgY3VzdG9tTWVudUl0ZW1UaXRsZSk7CiB9CiAKIHZvaWQgV2Vi
TWVkaWFTZXNzaW9uTWFuYWdlcjo6Y2xpZW50U3RhdGVEaWRDaGFuZ2UoV2ViTWVkaWFTZXNzaW9u
TWFuYWdlckNsaWVudCYgY2xpZW50LCB1aW50NjRfdCBjb250ZXh0SWQsIE1lZGlhUHJvZHVjZXI6
Ok1lZGlhU3RhdGVGbGFncyBuZXdGbGFncykKQEAgLTI2OSw2ICsyNzAsMTcgQEAgdm9pZCBXZWJN
ZWRpYVNlc3Npb25NYW5hZ2VyOjpleHRlcm5hbE91dHB1dERldmljZUF2YWlsYWJsZURpZENoYW5n
ZShib29sIGF2YWlsYWIKICAgICAgICAgc3RhdGUtPmNsaWVudC5leHRlcm5hbE91dHB1dERldmlj
ZUF2YWlsYWJsZURpZENoYW5nZShzdGF0ZS0+Y29udGV4dElkLCBhdmFpbGFibGUpOwogfQogCit2
b2lkIFdlYk1lZGlhU2Vzc2lvbk1hbmFnZXI6OmN1c3RvbVBsYXliYWNrQWN0aW9uU2VsZWN0ZWQo
KQoreworICAgIGZvciAoYXV0byYgc3RhdGUgOiBtX2NsaWVudFN0YXRlKSB7CisgICAgICAgIGlm
ICghc3RhdGUtPnJlcXVlc3RlZFBpY2tlcikKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAg
ICAgIHN0YXRlLT5jbGllbnQuY3VzdG9tUGxheWJhY2tBY3Rpb25TZWxlY3RlZChzdGF0ZS0+Y29u
dGV4dElkKTsKKyAgICAgICAgc3RhdGUtPnJlcXVlc3RlZFBpY2tlciA9IGZhbHNlOworICAgIH0K
K30KKwogdm9pZCBXZWJNZWRpYVNlc3Npb25NYW5hZ2VyOjpjb25maWd1cmVOZXdDbGllbnRzKCkK
IHsKICAgICBmb3IgKGF1dG8mIHN0YXRlIDogbV9jbGllbnRTdGF0ZSkgewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vV2ViTWVkaWFTZXNzaW9uTWFuYWdl
ci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vV2ViTWVkaWFTZXNzaW9u
TWFuYWdlci5oCmluZGV4IDA1Nzc1NTZiYzM0NGRmOWY3NmFmMTRiMDhlMDQxYTA5OTNhZGZjMjUu
LmJlMDU3YjlhYzVmNzNkMmE1ZjI5NTE4MGVkNjIzMmNkZTJlOGY2NDEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL1dlYk1lZGlhU2Vzc2lvbk1hbmFnZXIu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9XZWJNZWRpYVNlc3Np
b25NYW5hZ2VyLmgKQEAgLTU1LDcgKzU1LDkgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JU
IHVpbnQ2NF90IGFkZFBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50KFdlYk1lZGlhU2Vzc2lvbk1h
bmFnZXJDbGllbnQmLCB1aW50NjRfdCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCByZW1vdmVQ
bGF5YmFja1RhcmdldFBpY2tlckNsaWVudChXZWJNZWRpYVNlc3Npb25NYW5hZ2VyQ2xpZW50Jiwg
dWludDY0X3QpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVtb3ZlQWxsUGxheWJhY2tUYXJn
ZXRQaWNrZXJDbGllbnRzKFdlYk1lZGlhU2Vzc2lvbk1hbmFnZXJDbGllbnQmKTsKLSAgICBXRUJD
T1JFX0VYUE9SVCB2b2lkIHNob3dQbGF5YmFja1RhcmdldFBpY2tlcihXZWJNZWRpYVNlc3Npb25N
YW5hZ2VyQ2xpZW50JiwgdWludDY0X3QsIGNvbnN0IEludFJlY3QmLCBib29sKTsKKworICAgIFdF
QkNPUkVfRVhQT1JUIHZvaWQgc2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKFdlYk1lZGlhU2Vzc2lv
bk1hbmFnZXJDbGllbnQmLCB1aW50NjRfdCwgY29uc3QgSW50UmVjdCYsIGJvb2wsIGNvbnN0IFN0
cmluZyYpOworCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBjbGllbnRTdGF0ZURpZENoYW5nZShX
ZWJNZWRpYVNlc3Npb25NYW5hZ2VyQ2xpZW50JiwgdWludDY0X3QsIFdlYkNvcmU6Ok1lZGlhUHJv
ZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyk7CiAKIHByb3RlY3RlZDoKQEAgLTczLDYgKzc1LDcgQEAg
cHJpdmF0ZToKICAgICAvLyBNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyOjpDbGllbnQKICAgICB2
aXJ0dWFsIHZvaWQgc2V0UGxheWJhY2tUYXJnZXQoUmVmPFdlYkNvcmU6Ok1lZGlhUGxheWJhY2tU
YXJnZXQ+JiYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBleHRlcm5hbE91dHB1dERldmlj
ZUF2YWlsYWJsZURpZENoYW5nZShib29sKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgY3Vz
dG9tUGxheWJhY2tBY3Rpb25TZWxlY3RlZCgpIG92ZXJyaWRlOwogCiAgICAgc2l6ZV90IGZpbmQo
V2ViTWVkaWFTZXNzaW9uTWFuYWdlckNsaWVudCosIHVpbnQ2NF90KTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vV2ViTWVkaWFTZXNzaW9uTWFuYWdl
ckNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vV2ViTWVkaWFT
ZXNzaW9uTWFuYWdlckNsaWVudC5oCmluZGV4IDU5NzQ1NDZkMWIxOTUwYjZmNGYwZTc0NTMwMTBl
NWM2YWE3NDE1MDAuLjBhZTdmZjYyOWFhMjc4MTZlYTdkMTIyZjc4ZDRkYTZkODE3MGVhYzcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL1dlYk1lZGlhU2Vz
c2lvbk1hbmFnZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vz
c2lvbi9XZWJNZWRpYVNlc3Npb25NYW5hZ2VyQ2xpZW50LmgKQEAgLTQzLDYgKzQzLDcgQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRQbGF5YmFja1RhcmdldCh1aW50NjRfdCwgUmVmPE1l
ZGlhUGxheWJhY2tUYXJnZXQ+JiYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZXh0ZXJuYWxPdXRw
dXREZXZpY2VBdmFpbGFibGVEaWRDaGFuZ2UodWludDY0X3QsIGJvb2wpID0gMDsKICAgICB2aXJ0
dWFsIHZvaWQgc2V0U2hvdWxkUGxheVRvUGxheWJhY2tUYXJnZXQodWludDY0X3QsIGJvb2wpID0g
MDsKKyAgICB2aXJ0dWFsIHZvaWQgY3VzdG9tUGxheWJhY2tBY3Rpb25TZWxlY3RlZCh1aW50NjRf
dCkgPSAwOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5j
cHAKaW5kZXggNjQ2MzZkMDdmZDI4NmM3MWJhOTM4NWQwNzY4MjcyM2ZiYWE3YWY1Ni4uZTJhZTU2
NjgzNjJkMTgzYmRjZDM3YTNkZTk4N2VlZmFkMGM0NjA1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQu
Y3BwCkBAIC02ODI4LDcgKzY4MjgsNyBAQCB2b2lkIERvY3VtZW50OjpyZW1vdmVQbGF5YmFja1Rh
cmdldFBpY2tlckNsaWVudChNZWRpYVBsYXliYWNrVGFyZ2V0Q2xpZW50JiBjbGllbgogICAgIHBh
Z2UtPnJlbW92ZVBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50KGNsaWVudElkKTsKIH0KIAotdm9p
ZCBEb2N1bWVudDo6c2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKE1lZGlhUGxheWJhY2tUYXJnZXRD
bGllbnQmIGNsaWVudCwgYm9vbCBpc1ZpZGVvKQordm9pZCBEb2N1bWVudDo6c2hvd1BsYXliYWNr
VGFyZ2V0UGlja2VyKE1lZGlhUGxheWJhY2tUYXJnZXRDbGllbnQmIGNsaWVudCwgYm9vbCBpc1Zp
ZGVvLCBjb25zdCBTdHJpbmcmIGN1c3RvbU1lbnVJdGVtVGl0bGUpCiB7CiAgICAgUGFnZSogcGFn
ZSA9IHRoaXMtPnBhZ2UoKTsKICAgICBpZiAoIXBhZ2UpCkBAIC02ODM4LDcgKzY4MzgsNyBAQCB2
b2lkIERvY3VtZW50OjpzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIoTWVkaWFQbGF5YmFja1Rhcmdl
dENsaWVudCYgY2xpZW50LCBib29sCiAgICAgaWYgKGl0ID09IG1fY2xpZW50VG9JRE1hcC5lbmQo
KSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgcGFnZS0+c2hvd1BsYXliYWNrVGFyZ2V0UGlja2Vy
KGl0LT52YWx1ZSwgdmlldygpLT5sYXN0S25vd25Nb3VzZVBvc2l0aW9uKCksIGlzVmlkZW8pOwor
ICAgIHBhZ2UtPnNob3dQbGF5YmFja1RhcmdldFBpY2tlcihpdC0+dmFsdWUsIHZpZXcoKS0+bGFz
dEtub3duTW91c2VQb3NpdGlvbigpLCBpc1ZpZGVvLCBjdXN0b21NZW51SXRlbVRpdGxlKTsKIH0K
IAogdm9pZCBEb2N1bWVudDo6cGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0ZURpZENoYW5n
ZShNZWRpYVBsYXliYWNrVGFyZ2V0Q2xpZW50JiBjbGllbnQsIE1lZGlhUHJvZHVjZXI6Ok1lZGlh
U3RhdGVGbGFncyBzdGF0ZSkKQEAgLTY4ODAsNiArNjg4MCwxMiBAQCB2b2lkIERvY3VtZW50Ojpz
ZXRTaG91bGRQbGF5VG9QbGF5YmFja1RhcmdldCh1aW50NjRfdCBjbGllbnRJZCwgYm9vbCBzaG91
bGRQbGF5KQogCiAgICAgaXQtPnZhbHVlLT5zZXRTaG91bGRQbGF5VG9QbGF5YmFja1RhcmdldChz
aG91bGRQbGF5KTsKIH0KKwordm9pZCBEb2N1bWVudDo6Y3VzdG9tUGxheWJhY2tBY3Rpb25TZWxl
Y3RlZCh1aW50NjRfdCBjbGllbnRJZCkKK3sKKyAgICBpZiAoYXV0byogY2xpZW50ID0gbV9pZFRv
Q2xpZW50TWFwLmdldChjbGllbnRJZCkpCisgICAgICAgIGNsaWVudC0+Y3VzdG9tUGxheWJhY2tB
Y3Rpb25TZWxlY3RlZCgpOworfQogI2VuZGlmIC8vIEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19U
QVJHRVQpCiAKICNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTikKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5k
ZXggZjVkYTcxNjdkNDkxNTM0OTVhNmQxNjhmZjE3ZDk0NTk3YzI0ZGVmYi4uNzhjNzY2OTY2OTZj
NWY1ZWJhMGZhNzE1NzIwYzcwMGYyNzkxZjRjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKQEAgLTEy
ODgsMTIgKzEyODgsMTUgQEAgcHVibGljOgogI2lmIEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19U
QVJHRVQpCiAgICAgdm9pZCBhZGRQbGF5YmFja1RhcmdldFBpY2tlckNsaWVudChNZWRpYVBsYXli
YWNrVGFyZ2V0Q2xpZW50Jik7CiAgICAgdm9pZCByZW1vdmVQbGF5YmFja1RhcmdldFBpY2tlckNs
aWVudChNZWRpYVBsYXliYWNrVGFyZ2V0Q2xpZW50Jik7Ci0gICAgdm9pZCBzaG93UGxheWJhY2tU
YXJnZXRQaWNrZXIoTWVkaWFQbGF5YmFja1RhcmdldENsaWVudCYsIGJvb2wpOworCisgICAgdm9p
ZCBzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIoTWVkaWFQbGF5YmFja1RhcmdldENsaWVudCYsIGJv
b2wsIGNvbnN0IFN0cmluZyYpOworCiAgICAgdm9pZCBwbGF5YmFja1RhcmdldFBpY2tlckNsaWVu
dFN0YXRlRGlkQ2hhbmdlKE1lZGlhUGxheWJhY2tUYXJnZXRDbGllbnQmLCBNZWRpYVByb2R1Y2Vy
OjpNZWRpYVN0YXRlRmxhZ3MpOwogCiAgICAgdm9pZCBzZXRQbGF5YmFja1RhcmdldCh1aW50NjRf
dCwgUmVmPE1lZGlhUGxheWJhY2tUYXJnZXQ+JiYpOwogICAgIHZvaWQgcGxheWJhY2tUYXJnZXRB
dmFpbGFiaWxpdHlEaWRDaGFuZ2UodWludDY0X3QsIGJvb2wpOwogICAgIHZvaWQgc2V0U2hvdWxk
UGxheVRvUGxheWJhY2tUYXJnZXQodWludDY0X3QsIGJvb2wpOworICAgIHZvaWQgY3VzdG9tUGxh
eWJhY2tBY3Rpb25TZWxlY3RlZCh1aW50NjRfdCk7CiAjZW5kaWYKIAogICAgIFNob3VsZE9wZW5F
eHRlcm5hbFVSTHNQb2xpY3kgc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeVRvUHJvcGFnYXRl
KCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCA2
NDFhZTYzM2JiMTkwZWQ0ZDIwZTkwZGMwZmNjOTI4MjU0OTQ5ZTJmLi5mNzMyNGNmMmM5MjhkNmZh
MzBhODllNGM0MzRjNGMzNTcwNjhmY2MxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxNZWRpYUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlh
RWxlbWVudC5jcHAKQEAgLTE1MCw2ICsxNTAsMTAgQEAKICNpbmNsdWRlIDxiaW5kaW5ncy9TY3Jp
cHRPYmplY3QuaD4KICNlbmRpZgogCisjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKKyNpbmNs
dWRlIDxXZWJLaXRBZGRpdGlvbnMvSFRNTE1lZGlhRWxlbWVudEFkZGl0aW9ucy5jcHA+CisjZW5k
aWYKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdGF0aWMgY29uc3QgZG91YmxlIFNlZWtSZXBl
YXREZWxheSA9IDAuMTsKQEAgLTUyMDEsNiArNTIwNSwxOSBAQCB2b2lkIEhUTUxNZWRpYUVsZW1l
bnQ6OnNldFNob3VsZFBsYXlUb1BsYXliYWNrVGFyZ2V0KGJvb2wgc2hvdWxkUGxheSkKICAgICBp
ZiAobV9wbGF5ZXIpCiAgICAgICAgIG1fcGxheWVyLT5zZXRTaG91bGRQbGF5VG9QbGF5YmFja1Rh
cmdldChzaG91bGRQbGF5KTsKIH0KKworI2lmICFVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQordm9p
ZCBIVE1MTWVkaWFFbGVtZW50OjpjdXN0b21QbGF5YmFja0FjdGlvblNlbGVjdGVkKCkKK3sKKyAg
ICBMT0coTWVkaWEsICJIVE1MTWVkaWFFbGVtZW50OjpjdXN0b21QbGF5YmFja0FjdGlvblNlbGVj
dGVkKCVwKSIsIHRoaXMpOworfQorCitTdHJpbmcgSFRNTE1lZGlhRWxlbWVudDo6cGxheWJhY2tU
YXJnZXRQaWNrZXJDdXN0b21BY3Rpb25OYW1lKCkgY29uc3QKK3sKKyAgICByZXR1cm4geyB9Owor
fQorI2VuZGlmCisKICNlbHNlIC8vIEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpCiAK
IGJvb2wgSFRNTE1lZGlhRWxlbWVudDo6d2Via2l0Q3VycmVudFBsYXliYWNrVGFyZ2V0SXNXaXJl
bGVzcygpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVs
ZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCmluZGV4IDQ4
YmZlMGQ0MjNlMjE1NDI0NWMzMDk1MjliNGIwZDlmYjFmMDk1NTkuLmZlMmFlMjcwMDYyMmYyMGNi
NTRlMmM2MjQ5MmY2YTQ4NjJiMGU4MDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTE1lZGlhRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxl
bWVudC5oCkBAIC0zNDQsNiArMzQ0LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBpc1Bs
YXlpbmdUb1dpcmVsZXNzUGxheWJhY2tUYXJnZXQoKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0
dWFsIHZvaWQgc2V0V2lyZWxlc3NQbGF5YmFja1RhcmdldChSZWY8TWVkaWFQbGF5YmFja1Rhcmdl
dD4mJikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHNldFNob3VsZFBsYXlUb1BsYXliYWNr
VGFyZ2V0KGJvb2wpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBjdXN0b21QbGF5YmFja0Fj
dGlvblNlbGVjdGVkKCkgb3ZlcnJpZGU7CisgICAgU3RyaW5nIHBsYXliYWNrVGFyZ2V0UGlja2Vy
Q3VzdG9tQWN0aW9uTmFtZSgpIGNvbnN0OwogI2VuZGlmCiAgICAgYm9vbCB3ZWJraXRDdXJyZW50
UGxheWJhY2tUYXJnZXRJc1dpcmVsZXNzKCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvTWVkaWFFbGVtZW50U2Vzc2lvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L01lZGlhRWxlbWVudFNlc3Npb24uY3BwCmluZGV4IDFhNGRlNjQwYTQ0NzA5OTc4NGFhZTI1YWNh
NzQ3NjFkZDI4NTc1Y2IuLmE0NzA0ZDI5ZjZiNzQyODYxZmEyZmQ0ZjA0MTU0MmVhYzM5NmYwM2Ug
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFFbGVtZW50U2Vzc2lvbi5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUVsZW1lbnRTZXNzaW9uLmNwcApAQCAtMzUs
NiArMzUsNyBAQAogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCiAj
aW5jbHVkZSAiSFRNTE1lZGlhRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxNZWRpYUVsZW1lbnRF
bnVtcy5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIkhUTUxWaWRlb0VsZW1l
bnQuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCkBAIC0yMDcsNyArMjA4LDggQEAgdm9pZCBNZWRp
YUVsZW1lbnRTZXNzaW9uOjpzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIoY29uc3QgSFRNTE1lZGlh
RWxlbWVudCYgZWxlbWUKICAgICB9CiAjZW5kaWYKIAotICAgIGVsZW1lbnQuZG9jdW1lbnQoKS5z
aG93UGxheWJhY2tUYXJnZXRQaWNrZXIoKnRoaXMsIGlzPEhUTUxWaWRlb0VsZW1lbnQ+KGVsZW1l
bnQpKTsKKyAgICBTdHJpbmcgY3VzdG9tTWVudUl0ZW1UaXRsZSA9IGVsZW1lbnQucGxheWJhY2tU
YXJnZXRQaWNrZXJDdXN0b21BY3Rpb25OYW1lKCk7CisgICAgZWxlbWVudC5kb2N1bWVudCgpLnNo
b3dQbGF5YmFja1RhcmdldFBpY2tlcigqdGhpcywgaXM8SFRNTFZpZGVvRWxlbWVudD4oZWxlbWVu
dCksIGN1c3RvbU1lbnVJdGVtVGl0bGUpOwogfQogCiBib29sIE1lZGlhRWxlbWVudFNlc3Npb246
Omhhc1dpcmVsZXNzUGxheWJhY2tUYXJnZXRzKGNvbnN0IEhUTUxNZWRpYUVsZW1lbnQmKSBjb25z
dApAQCAtMzMxLDYgKzMzMywxMSBAQCB2b2lkIE1lZGlhRWxlbWVudFNlc3Npb246OnNldFNob3Vs
ZFBsYXlUb1BsYXliYWNrVGFyZ2V0KGJvb2wgc2hvdWxkUGxheSkKICAgICBjbGllbnQoKS5zZXRT
aG91bGRQbGF5VG9QbGF5YmFja1RhcmdldChzaG91bGRQbGF5KTsKIH0KIAordm9pZCBNZWRpYUVs
ZW1lbnRTZXNzaW9uOjpjdXN0b21QbGF5YmFja0FjdGlvblNlbGVjdGVkKCkKK3sKKyAgICBjbGll
bnQoKS5jdXN0b21QbGF5YmFja0FjdGlvblNlbGVjdGVkKCk7Cit9CisKIHZvaWQgTWVkaWFFbGVt
ZW50U2Vzc2lvbjo6bWVkaWFTdGF0ZURpZENoYW5nZShjb25zdCBIVE1MTWVkaWFFbGVtZW50JiBl
bGVtZW50LCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mgc3RhdGUpCiB7CiAgICAgZWxl
bWVudC5kb2N1bWVudCgpLnBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50U3RhdGVEaWRDaGFuZ2Uo
KnRoaXMsIHN0YXRlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFFbGVt
ZW50U2Vzc2lvbi5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUVsZW1lbnRTZXNzaW9uLmgK
aW5kZXggMzUxY2IwZWJkZTUwMDIyYTVlY2JiYWNlNGM2YWQ1ZGJhMzQzOWE2NS4uNTZlNGYyZWM4
ODhjNWY4ZWRlY2NkMjE0YWFhN2Y3ODc5NDA5OTE4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9NZWRpYUVsZW1lbnRTZXNzaW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9N
ZWRpYUVsZW1lbnRTZXNzaW9uLmgKQEAgLTExMyw2ICsxMTMsNyBAQCBwcml2YXRlOgogICAgIHZp
cnR1YWwgdm9pZCBzZXRQbGF5YmFja1RhcmdldChSZWY8TWVkaWFQbGF5YmFja1RhcmdldD4mJikg
b3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGV4dGVybmFsT3V0cHV0RGV2aWNlQXZhaWxhYmxl
RGlkQ2hhbmdlKGJvb2wpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBzZXRTaG91bGRQbGF5
VG9QbGF5YmFja1RhcmdldChib29sKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgY3VzdG9t
UGxheWJhY2tBY3Rpb25TZWxlY3RlZCgpIG92ZXJyaWRlOwogI2VuZGlmCiAjaWYgUExBVEZPUk0o
SU9TKQogICAgIGJvb2wgcmVxdWlyZXNQbGF5YmFja1RhcmdldFJvdXRlTW9uaXRvcmluZygpIGNv
bnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGll
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKaW5kZXggNzIwY2YwOTEy
MTNiMmVkNmIxNjAwY2E2NTlmNDQxOWNjMzBmNWEzNS4uNzQ0MWUwZGIyNWU0OGQ4NzIyNTI3ZDZl
NmY5YzhiNjM0ZmEzMDQ0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVD
bGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCkBAIC00NTIs
NyArNDUyLDkgQEAgcHVibGljOgogI2lmIEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19UQVJHRVQp
CiAgICAgdmlydHVhbCB2b2lkIGFkZFBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50KHVpbnQ2NF90
IC8qY29udGV4dElkKi8pIHsgfQogICAgIHZpcnR1YWwgdm9pZCByZW1vdmVQbGF5YmFja1Rhcmdl
dFBpY2tlckNsaWVudCh1aW50NjRfdCAvKmNvbnRleHRJZCovKSB7IH0KLSAgICB2aXJ0dWFsIHZv
aWQgc2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKHVpbnQ2NF90IC8qY29udGV4dElkKi8sIGNvbnN0
IFdlYkNvcmU6OkludFBvaW50JiwgYm9vbCAvKiBpc1ZpZGVvICovKSB7IH0KKworICAgIHZpcnR1
YWwgdm9pZCBzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIodWludDY0X3QgLypjb250ZXh0SWQqLywg
Y29uc3QgV2ViQ29yZTo6SW50UG9pbnQmLCBib29sIC8qIGlzVmlkZW8gKi8sIGNvbnN0IFN0cmlu
ZyYgLypjdXN0b21NZW51SXRlbVRpdGxlKi8pIHsgfQorCiAgICAgdmlydHVhbCB2b2lkIHBsYXli
YWNrVGFyZ2V0UGlja2VyQ2xpZW50U3RhdGVEaWRDaGFuZ2UodWludDY0X3QgLypjb250ZXh0SWQq
LywgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQg
c2V0TW9ja01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJFbmFibGVkKGJvb2wpICB7IH0KICAgICB2
aXJ0dWFsIHZvaWQgc2V0TW9ja01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJTdGF0ZShjb25zdCBT
dHJpbmcmLCBXZWJDb3JlOjpNZWRpYVBsYXliYWNrVGFyZ2V0Q29udGV4dDo6U3RhdGUpIHsgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGFnZS5jcHAKaW5kZXggOGJkNDczZGNiYzQyOTM5ODIxZjJjYzU3NWUxNDcxMzk1ZGZi
YTUzNC4uNzM1MGM5M2ExNTkxYTBmMTkwZWZjMzU3NTIwOGU5MTMwYjkwMDBkNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1BhZ2UuY3BwCkBAIC0xODE3LDE1ICsxODE3LDE2IEBAIHZvaWQgUGFnZTo6cmVtb3ZlUGxheWJh
Y2tUYXJnZXRQaWNrZXJDbGllbnQodWludDY0X3QgY29udGV4dElkKQogICAgIGNocm9tZSgpLmNs
aWVudCgpLnJlbW92ZVBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50KGNvbnRleHRJZCk7CiB9CiAK
LXZvaWQgUGFnZTo6c2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKHVpbnQ2NF90IGNvbnRleHRJZCwg
Y29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGxvY2F0aW9uLCBib29sIGlzVmlkZW8pCit2b2lkIFBh
Z2U6OnNob3dQbGF5YmFja1RhcmdldFBpY2tlcih1aW50NjRfdCBjb250ZXh0SWQsIGNvbnN0IFdl
YkNvcmU6OkludFBvaW50JiBsb2NhdGlvbiwgYm9vbCBpc1ZpZGVvLCBjb25zdCBTdHJpbmcmIGN1
c3RvbU1lbnVJdGVtVGl0bGUpCiB7CiAjaWYgUExBVEZPUk0oSU9TKQogICAgIC8vIEZJWE1FOiBy
ZWZhY3RvciBpT1MgaW1wbGVtZW50YXRpb24uCiAgICAgVU5VU0VEX1BBUkFNKGNvbnRleHRJZCk7
CiAgICAgVU5VU0VEX1BBUkFNKGxvY2F0aW9uKTsKKyAgICBVTlVTRURfUEFSQU0oY3VzdG9tTWVu
dUl0ZW1UaXRsZSk7CiAgICAgY2hyb21lKCkuY2xpZW50KCkuc2hvd1BsYXliYWNrVGFyZ2V0UGlj
a2VyKGlzVmlkZW8pOwogI2Vsc2UKLSAgICBjaHJvbWUoKS5jbGllbnQoKS5zaG93UGxheWJhY2tU
YXJnZXRQaWNrZXIoY29udGV4dElkLCBsb2NhdGlvbiwgaXNWaWRlbyk7CisgICAgY2hyb21lKCku
Y2xpZW50KCkuc2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKGNvbnRleHRJZCwgbG9jYXRpb24sIGlz
VmlkZW8sIGN1c3RvbU1lbnVJdGVtVGl0bGUpOwogI2VuZGlmCiB9CiAKQEAgLTE4NjEsNiArMTg2
MiwxMiBAQCB2b2lkIFBhZ2U6OnNldFNob3VsZFBsYXlUb1BsYXliYWNrVGFyZ2V0KHVpbnQ2NF90
IGNsaWVudElkLCBib29sIHNob3VsZFBsYXkpCiAgICAgZm9yIChGcmFtZSogZnJhbWUgPSAmbWFp
bkZyYW1lKCk7IGZyYW1lOyBmcmFtZSA9IGZyYW1lLT50cmVlKCkudHJhdmVyc2VOZXh0KCkpCiAg
ICAgICAgIGZyYW1lLT5kb2N1bWVudCgpLT5zZXRTaG91bGRQbGF5VG9QbGF5YmFja1RhcmdldChj
bGllbnRJZCwgc2hvdWxkUGxheSk7CiB9CisKK3ZvaWQgUGFnZTo6Y3VzdG9tUGxheWJhY2tBY3Rp
b25TZWxlY3RlZCh1aW50NjRfdCBjb250ZXh0SWQpCit7CisgICAgZm9yIChGcmFtZSogZnJhbWUg
PSAmbWFpbkZyYW1lKCk7IGZyYW1lOyBmcmFtZSA9IGZyYW1lLT50cmVlKCkudHJhdmVyc2VOZXh0
KCkpCisgICAgICAgIGZyYW1lLT5kb2N1bWVudCgpLT5jdXN0b21QbGF5YmFja0FjdGlvblNlbGVj
dGVkKGNvbnRleHRJZCk7Cit9CiAjZW5kaWYKIAogV2hlZWxFdmVudFRlc3RUcmlnZ2VyJiBQYWdl
OjplbnN1cmVUZXN0VHJpZ2dlcigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Bh
Z2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCmluZGV4IGYwMWQ0ZDhmMjcxYjIyMWM4
ZDRhZWRlZWE5MjM4M2MyM2VkOWFmNzguLjBiMDZkMjFkZWRiNjkzODlkZmU5YWM3ZjM4NGZlMGY5
NThhMDZkOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCkBAIC00NzIsNyArNDcyLDkgQEAgcHVibGljOgogI2lm
IEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpCiAgICAgdm9pZCBhZGRQbGF5YmFja1Rh
cmdldFBpY2tlckNsaWVudCh1aW50NjRfdCk7CiAgICAgdm9pZCByZW1vdmVQbGF5YmFja1Rhcmdl
dFBpY2tlckNsaWVudCh1aW50NjRfdCk7Ci0gICAgdm9pZCBzaG93UGxheWJhY2tUYXJnZXRQaWNr
ZXIodWludDY0X3QsIGNvbnN0IEludFBvaW50JiwgYm9vbCk7CisKKyAgICB2b2lkIHNob3dQbGF5
YmFja1RhcmdldFBpY2tlcih1aW50NjRfdCwgY29uc3QgSW50UG9pbnQmLCBib29sLCBjb25zdCBT
dHJpbmcmKTsKKwogICAgIHZvaWQgcGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0ZURpZENo
YW5nZSh1aW50NjRfdCwgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzKTsKICAgICBXRUJD
T1JFX0VYUE9SVCB2b2lkIHNldE1vY2tNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyRW5hYmxlZChi
b29sKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldE1vY2tNZWRpYVBsYXliYWNrVGFyZ2V0
UGlja2VyU3RhdGUoY29uc3QgU3RyaW5nJiwgTWVkaWFQbGF5YmFja1RhcmdldENvbnRleHQ6OlN0
YXRlKTsKQEAgLTQ4MCw2ICs0ODIsNyBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBzZXRQbGF5YmFja1RhcmdldCh1aW50NjRfdCwgUmVmPE1lZGlhUGxheWJhY2tUYXJnZXQ+JiYp
OwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcGxheWJhY2tUYXJnZXRBdmFpbGFiaWxpdHlEaWRD
aGFuZ2UodWludDY0X3QsIGJvb2wpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0U2hvdWxk
UGxheVRvUGxheWJhY2tUYXJnZXQodWludDY0X3QsIGJvb2wpOworICAgIFdFQkNPUkVfRVhQT1JU
IHZvaWQgY3VzdG9tUGxheWJhY2tBY3Rpb25TZWxlY3RlZCh1aW50NjRfdCk7CiAjZW5kaWYKIAog
ICAgIFJlZlB0cjxXaGVlbEV2ZW50VGVzdFRyaWdnZXI+IHRlc3RUcmlnZ2VyKCkgY29uc3QgeyBy
ZXR1cm4gbV90ZXN0VHJpZ2dlcjsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uLmgKaW5kZXggMWJiYTZjYzdiYmJjN2EzYjM3ODkx
ZjU2ZmIyYWQxZjY5MWQwYmNkYS4uYzYzYzliN2Y3NTE4OTE4YmE4NTRjYTY4MzNmMDkyYjM1MGI2
YWNlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1N
ZWRpYVNlc3Npb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9QbGF0Zm9y
bU1lZGlhU2Vzc2lvbi5oCkBAIC0xMzUsNiArMTM1LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwg
dm9pZCBzZXRQbGF5YmFja1RhcmdldChSZWY8TWVkaWFQbGF5YmFja1RhcmdldD4mJikgb3ZlcnJp
ZGUgeyB9CiAgICAgdmlydHVhbCB2b2lkIGV4dGVybmFsT3V0cHV0RGV2aWNlQXZhaWxhYmxlRGlk
Q2hhbmdlKGJvb2wpIG92ZXJyaWRlIHsgfQogICAgIHZpcnR1YWwgdm9pZCBzZXRTaG91bGRQbGF5
VG9QbGF5YmFja1RhcmdldChib29sKSBvdmVycmlkZSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgY3Vz
dG9tUGxheWJhY2tBY3Rpb25TZWxlY3RlZCgpIG92ZXJyaWRlIHsgfQogI2VuZGlmCiAKICNpZiBQ
TEFURk9STShJT1MpCkBAIC0xOTcsNiArMTk4LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9v
bCBjYW5QbGF5VG9XaXJlbGVzc1BsYXliYWNrVGFyZ2V0KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7
IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNQbGF5aW5nVG9XaXJlbGVzc1BsYXliYWNrVGFyZ2V0KCkg
Y29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIHZvaWQgc2V0U2hvdWxkUGxheVRv
UGxheWJhY2tUYXJnZXQoYm9vbCkgeyB9CisgICAgdmlydHVhbCB2b2lkIGN1c3RvbVBsYXliYWNr
QWN0aW9uU2VsZWN0ZWQoKSB7IH0KIAogICAgIHZpcnR1YWwgY29uc3QgRG9jdW1lbnQqIGhvc3Rp
bmdEb2N1bWVudCgpIGNvbnN0ID0gMDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5YmFja1RhcmdldENsaWVudC5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5YmFja1RhcmdldENsaWVudC5oCmluZGV4IGEz
MDQyMWVhNmUwYjU5MjQwYWNiMTRhYzlmODJjYmY3MWFhNjM2MGIuLjA2NzU1OGUzNGNiYmNlZTAz
OWZhNGJiYTZkMTMwYTc3YWMxZWU4MDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL01lZGlhUGxheWJhY2tUYXJnZXRDbGllbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXliYWNrVGFyZ2V0Q2xpZW50LmgKQEAgLTQy
LDYgKzQyLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRQbGF5YmFja1RhcmdldChS
ZWY8TWVkaWFQbGF5YmFja1RhcmdldD4mJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBleHRlcm5h
bE91dHB1dERldmljZUF2YWlsYWJsZURpZENoYW5nZShib29sKSA9IDA7CiAgICAgdmlydHVhbCB2
b2lkIHNldFNob3VsZFBsYXlUb1BsYXliYWNrVGFyZ2V0KGJvb2wpID0gMDsKKyAgICB2aXJ0dWFs
IHZvaWQgY3VzdG9tUGxheWJhY2tBY3Rpb25TZWxlY3RlZCgpID0gMDsKIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlci5jcHAKaW5kZXggNDkzMTY4NmIz
MTUxMjc3MTYyNTA0ODg4YjcxNWUyODFhMjc1OTIwNi4uMzhhZWY1ZjQzYjc0NjMwMmQzMjVjNGZi
OWE3NWMxZWU1YmFiMDc3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlci5jcHAKQEAgLTU5LDYg
KzU5LDkgQEAgdm9pZCBNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyOjpwZW5kaW5nQWN0aW9uVGlt
ZXJGaXJlZCgpCiAKICAgICBpZiAocGVuZGluZ0FjdGlvbnMgJiBPdXRwdXREZXZpY2VBdmFpbGFi
aWxpdHlDaGFuZ2VkKQogICAgICAgICBtX2NsaWVudC0+ZXh0ZXJuYWxPdXRwdXREZXZpY2VBdmFp
bGFibGVEaWRDaGFuZ2UoZXh0ZXJuYWxPdXRwdXREZXZpY2VBdmFpbGFibGUoKSk7CisKKyAgICBp
ZiAocGVuZGluZ0FjdGlvbnMgJiBDdXN0b21QbGF5YmFja0FjdGlvblNlbGVjdGVkKQorICAgICAg
ICBtX2NsaWVudC0+Y3VzdG9tUGxheWJhY2tBY3Rpb25TZWxlY3RlZCgpOwogfQogCiB2b2lkIE1l
ZGlhUGxheWJhY2tUYXJnZXRQaWNrZXI6OmFkZFBlbmRpbmdBY3Rpb24oUGVuZGluZ0FjdGlvbkZs
YWdzIGFjdGlvbikKQEAgLTcwLDcgKzczLDcgQEAgdm9pZCBNZWRpYVBsYXliYWNrVGFyZ2V0UGlj
a2VyOjphZGRQZW5kaW5nQWN0aW9uKFBlbmRpbmdBY3Rpb25GbGFncyBhY3Rpb24pCiAgICAgbV9w
ZW5kaW5nQWN0aW9uVGltZXIuc3RhcnRPbmVTaG90KHBlbmRpbmdBY3Rpb25JbnRlcnZhbCk7CiB9
CiAKLXZvaWQgTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlcjo6c2hvd1BsYXliYWNrVGFyZ2V0UGlj
a2VyKGNvbnN0IEZsb2F0UmVjdCYsIGJvb2wpCit2b2lkIE1lZGlhUGxheWJhY2tUYXJnZXRQaWNr
ZXI6OnNob3dQbGF5YmFja1RhcmdldFBpY2tlcihjb25zdCBGbG9hdFJlY3QmLCBib29sLCBjb25z
dCBTdHJpbmcmKQogewogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5YmFja1RhcmdldFBpY2tl
ci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5YmFja1Rhcmdl
dFBpY2tlci5oCmluZGV4IGFmZTBiZDNlZTRmMGUzN2VmYjZhZTdlZTk1MDBjMDRjN2JmNjIyNDUu
LjU1MzQ3MmQ2YWFmMTQzOTM5OGYxOGQ4N2NiMmI1OTNkNjU1MDg1MzUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXIu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXliYWNrVGFy
Z2V0UGlja2VyLmgKQEAgLTQ1LDE5ICs0NSwyMSBAQCBwdWJsaWM6CiAgICAgcHVibGljOgogICAg
ICAgICB2aXJ0dWFsIHZvaWQgc2V0UGxheWJhY2tUYXJnZXQoUmVmPE1lZGlhUGxheWJhY2tUYXJn
ZXQ+JiYpID0gMDsKICAgICAgICAgdmlydHVhbCB2b2lkIGV4dGVybmFsT3V0cHV0RGV2aWNlQXZh
aWxhYmxlRGlkQ2hhbmdlKGJvb2wpID0gMDsKKyAgICAgICAgdmlydHVhbCB2b2lkIGN1c3RvbVBs
YXliYWNrQWN0aW9uU2VsZWN0ZWQoKSB7IH0KIAogICAgICAgICB2b2lkIGludmFsaWRhdGUoKTsK
ICAgICB9OwogCiAgICAgdmlydHVhbCB+TWVkaWFQbGF5YmFja1RhcmdldFBpY2tlcigpOwogCi0g
ICAgdmlydHVhbCB2b2lkIHNob3dQbGF5YmFja1RhcmdldFBpY2tlcihjb25zdCBGbG9hdFJlY3Qm
LCBib29sIGNoZWNrQWN0aXZlUm91dGUpOworICAgIHZpcnR1YWwgdm9pZCBzaG93UGxheWJhY2tU
YXJnZXRQaWNrZXIoY29uc3QgRmxvYXRSZWN0JiwgYm9vbCBjaGVja0FjdGl2ZVJvdXRlLCBjb25z
dCBTdHJpbmcmKTsKICAgICB2aXJ0dWFsIHZvaWQgc3RhcnRpbmdNb25pdG9yaW5nUGxheWJhY2tU
YXJnZXRzKCk7CiAgICAgdmlydHVhbCB2b2lkIHN0b3BNb25pdG9yaW5nUGxheWJhY2tUYXJnZXRz
KCk7CiAgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVQbGF5YmFja1RhcmdldHMoKTsKIAogICAg
IHZvaWQgYXZhaWxhYmxlRGV2aWNlc0RpZENoYW5nZSgpIHsgYWRkUGVuZGluZ0FjdGlvbihPdXRw
dXREZXZpY2VBdmFpbGFiaWxpdHlDaGFuZ2VkKTsgfQogICAgIHZvaWQgY3VycmVudERldmljZURp
ZENoYW5nZSgpIHsgYWRkUGVuZGluZ0FjdGlvbihDdXJyZW50RGV2aWNlRGlkQ2hhbmdlKTsgfQor
ICAgIHZvaWQgY3VzdG9tUGxheWJhY2tBY3Rpb25TZWxlY3RlZCgpIHsgYWRkUGVuZGluZ0FjdGlv
bihDdXN0b21QbGF5YmFja0FjdGlvblNlbGVjdGVkKTsgfQogCiBwcm90ZWN0ZWQ6CiAgICAgZXhw
bGljaXQgTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlcihDbGllbnQmKTsKQEAgLTY1LDYgKzY3LDcg
QEAgcHJvdGVjdGVkOgogICAgIGVudW0gQWN0aW9uVHlwZSB7CiAgICAgICAgIE91dHB1dERldmlj
ZUF2YWlsYWJpbGl0eUNoYW5nZWQgPSAxIDw8IDAsCiAgICAgICAgIEN1cnJlbnREZXZpY2VEaWRD
aGFuZ2UgPSAxIDw8IDEsCisgICAgICAgIEN1c3RvbVBsYXliYWNrQWN0aW9uU2VsZWN0ZWQgPSAx
IDw8IDIsCiAgICAgfTsKICAgICB0eXBlZGVmIHVuc2lnbmVkIFBlbmRpbmdBY3Rpb25GbGFnczsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1hYy5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5YmFja1RhcmdldFBp
Y2tlck1hYy5oCmluZGV4IDlhMTM4Njk2Nzc5NTFjMGNlMDEyOThiNzUxMmNmYTU3ZTVhZTExZWQu
LjYzZjVkMzBmZDZjYmI3MzVkOGIyNjVhYzc1MmY0ZjBmZmQ3OGU1ODEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxh
eWJhY2tUYXJnZXRQaWNrZXJNYWMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTWFjLmgKQEAg
LTQzLDcgKzQzLDggQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB+TWVkaWFQbGF5YmFja1Rhcmdl
dFBpY2tlck1hYygpOwogCi0gICAgdm9pZCBzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIoY29uc3Qg
RmxvYXRSZWN0JiwgYm9vbCBjaGVja0FjdGl2ZVJvdXRlKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFs
IHZvaWQgc2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKGNvbnN0IEZsb2F0UmVjdCYsIGJvb2wgY2hl
Y2tBY3RpdmVSb3V0ZSwgY29uc3QgU3RyaW5nJikgb3ZlcnJpZGU7CisKICAgICB2b2lkIHN0YXJ0
aW5nTW9uaXRvcmluZ1BsYXliYWNrVGFyZ2V0cygpIG92ZXJyaWRlOwogICAgIHZvaWQgc3RvcE1v
bml0b3JpbmdQbGF5YmFja1RhcmdldHMoKSBvdmVycmlkZTsKICAgICB2b2lkIGludmFsaWRhdGVQ
bGF5YmFja1RhcmdldHMoKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWJhY2tUYXJnZXRQaWNr
ZXJNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9NZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTWFjLm1tCmluZGV4IDEwYWFhNTBkMzhmODdi
NjRlNDM1NjNjM2U4Mzg0OTZiZWRlNTczMTQuLjM4NDJmNGE2YzUyNzdkZTdmNzZmMjdlMWJiZTk4
MWE1MTA4OTA4ZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJNYWMubW0KKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQ
bGF5YmFja1RhcmdldFBpY2tlck1hYy5tbQpAQCAtNTIsOCArNTIsMTUgQEAgc3RhdGljIE5TU3Ry
aW5nICpleHRlcm5hbE91dHB1dERldmljZUF2YWlsYWJsZUtleU5hbWUgPSBAImV4dGVybmFsT3V0
cHV0RGV2aWNlQXYKIHN0YXRpYyBOU1N0cmluZyAqZXh0ZXJuYWxPdXRwdXREZXZpY2VQaWNrZWRL
ZXlOYW1lID0gQCJleHRlcm5hbE91dHB1dERldmljZVBpY2tlZCI7CiAKIC8vIEZJWE1FOiByZW1v
dmUgdGhpcyBvbmNlIHRoZSBoZWFkZXJzIGFyZSBhdmFpbGFibGUuCisvLyBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU0ODY4CiBAaW50ZXJmYWNlIEFWT3V0cHV0RGV2
aWNlTWVudUNvbnRyb2xsZXIgKEZvcndhcmREZWNsYXJhdGlvbikKLS0gKEJPT0wpc2hvd01lbnVG
b3JSZWN0OihOU1JlY3Qpc2NyZWVuUmVjdCBhcHBlYXJhbmNlTmFtZTooTlNTdHJpbmcgKilhcHBl
YXJhbmNlTmFtZSBhbGxvd1Jlc2VsZWN0aW9uT2ZTZWxlY3RlZE91dHB1dERldmljZTooQk9PTClh
bGxvd1Jlc2VsZWN0aW9uT2ZTZWxlY3RlZE91dHB1dERldmljZTsKK3R5cGVkZWYgTlNfRU5VTShO
U0ludGVnZXIsIFRlbXBBVk91dHB1dERldmljZU1lbnVDb250cm9sbGVyU2VsZWN0aW9uKSB7Cisg
ICAgVGVtcEFWT3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXJTZWxlY3Rpb25PdXRwdXREZXZpY2Us
CisgICAgVGVtcEFWT3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXJTZWxlY3Rpb25DdXN0b21NZW51
SXRlbSwKKyAgICBUZW1wQVZPdXRwdXREZXZpY2VNZW51Q29udHJvbGxlclNlbGVjdGlvbk5vbmUK
K307CisKKy0gKFRlbXBBVk91dHB1dERldmljZU1lbnVDb250cm9sbGVyU2VsZWN0aW9uKXNob3dN
ZW51Rm9yUmVjdDooTlNSZWN0KXNjcmVlblJlY3QgYXBwZWFyYW5jZU5hbWU6KE5TU3RyaW5nICop
YXBwZWFyYW5jZU5hbWUgYWxsb3dSZXNlbGVjdGlvbk9mU2VsZWN0ZWRPdXRwdXREZXZpY2U6KEJP
T0wpYWxsb3dSZXNlbGVjdGlvbk9mU2VsZWN0ZWRPdXRwdXREZXZpY2UgY3VzdG9tTWVudUl0ZW1U
aXRsZTooTlNTdHJpbmcgKiljdXN0b21NZW51SXRlbVRpdGxlIGN1c3RvbU1lbnVJdGVtRW5hYmxl
ZDooQk9PTCljdXN0b21NZW51SXRlbUVuYWJsZWQ7CiBAZW5kCiAKIEBpbnRlcmZhY2UgV2ViQVZP
dXRwdXREZXZpY2VNZW51Q29udHJvbGxlckhlbHBlciA6IE5TT2JqZWN0IHsKQEAgLTExNCw3ICsx
MjEsNyBAQCBBVk91dHB1dERldmljZU1lbnVDb250cm9sbGVyVHlwZSAqTWVkaWFQbGF5YmFja1Rh
cmdldFBpY2tlck1hYzo6ZGV2aWNlUGlja2VyKCkKICAgICByZXR1cm4gbV9vdXRwdXREZXZpY2VN
ZW51Q29udHJvbGxlci5nZXQoKTsKIH0KIAotdm9pZCBNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2Vy
TWFjOjpzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIoY29uc3QgRmxvYXRSZWN0JiBsb2NhdGlvbiwg
Ym9vbCBjaGVja0FjdGl2ZVJvdXRlKQordm9pZCBNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTWFj
OjpzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIoY29uc3QgRmxvYXRSZWN0JiBsb2NhdGlvbiwgYm9v
bCBjaGVja0FjdGl2ZVJvdXRlLCBjb25zdCBTdHJpbmcmIGN1c3RvbU1lbnVJdGVtVGl0bGUpCiB7
CiAgICAgaWYgKCFjbGllbnQoKSB8fCBtX3Nob3dpbmdNZW51KQogICAgICAgICByZXR1cm47CkBA
IC0xMjIsMTQgKzEyOSwyOSBAQCB2b2lkIE1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJNYWM6OnNo
b3dQbGF5YmFja1RhcmdldFBpY2tlcihjb25zdCBGbG9hdFJlY3QmIGxvYwogICAgIExPRyhNZWRp
YSwgIk1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJNYWM6OnNob3dQbGF5YmFja1RhcmdldFBpY2tl
ciAtIGNoZWNrQWN0aXZlUm91dGUgPSAlaSIsIChpbnQpY2hlY2tBY3RpdmVSb3V0ZSk7CiAKICAg
ICBBVk91dHB1dERldmljZU1lbnVDb250cm9sbGVyVHlwZSAqcGlja2VyID0gZGV2aWNlUGlja2Vy
KCk7Ci0gICAgaWYgKCFbcGlja2VyIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3Ioc2hvd01l
bnVGb3JSZWN0OmFwcGVhcmFuY2VOYW1lOmFsbG93UmVzZWxlY3Rpb25PZlNlbGVjdGVkT3V0cHV0
RGV2aWNlOildKQorICAgIGlmICghW3BpY2tlciByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9y
KHNob3dNZW51Rm9yUmVjdDphcHBlYXJhbmNlTmFtZTphbGxvd1Jlc2VsZWN0aW9uT2ZTZWxlY3Rl
ZE91dHB1dERldmljZTpjdXN0b21NZW51SXRlbVRpdGxlOmN1c3RvbU1lbnVJdGVtRW5hYmxlZDop
XSAmJiAhW3BpY2tlciByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKHNob3dNZW51Rm9yUmVj
dDphcHBlYXJhbmNlTmFtZTphbGxvd1Jlc2VsZWN0aW9uT2ZTZWxlY3RlZE91dHB1dERldmljZTop
XSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgbV9zaG93aW5nTWVudSA9IHRydWU7Ci0gICAgaWYg
KFtwaWNrZXIgc2hvd01lbnVGb3JSZWN0OmxvY2F0aW9uIGFwcGVhcmFuY2VOYW1lOk5TQXBwZWFy
YW5jZU5hbWVWaWJyYW50TGlnaHQgYWxsb3dSZXNlbGVjdGlvbk9mU2VsZWN0ZWRPdXRwdXREZXZp
Y2U6IWNoZWNrQWN0aXZlUm91dGVdKSB7CisKKyAgICBpZiAoW3BpY2tlciByZXNwb25kc1RvU2Vs
ZWN0b3I6QHNlbGVjdG9yKHNob3dNZW51Rm9yUmVjdDphcHBlYXJhbmNlTmFtZTphbGxvd1Jlc2Vs
ZWN0aW9uT2ZTZWxlY3RlZE91dHB1dERldmljZTpjdXN0b21NZW51SXRlbVRpdGxlOmN1c3RvbU1l
bnVJdGVtRW5hYmxlZDopXSkgeworICAgICAgICBOU1N0cmluZyAqY3VzdG9tTWVudUl0ZW1UaXRs
ZU5TU3RyaW5nID0gY3VzdG9tTWVudUl0ZW1UaXRsZS5pc0VtcHR5KCkgPyBuaWwgOiAoTlNTdHJp
bmcgKiljdXN0b21NZW51SXRlbVRpdGxlOworICAgICAgICBzd2l0Y2ggKFtwaWNrZXIgc2hvd01l
bnVGb3JSZWN0OmxvY2F0aW9uIGFwcGVhcmFuY2VOYW1lOk5TQXBwZWFyYW5jZU5hbWVWaWJyYW50
TGlnaHQgYWxsb3dSZXNlbGVjdGlvbk9mU2VsZWN0ZWRPdXRwdXREZXZpY2U6IWNoZWNrQWN0aXZl
Um91dGUgY3VzdG9tTWVudUl0ZW1UaXRsZTpjdXN0b21NZW51SXRlbVRpdGxlTlNTdHJpbmcgY3Vz
dG9tTWVudUl0ZW1FbmFibGVkOllFU10pIHsKKyAgICAgICAgY2FzZSBUZW1wQVZPdXRwdXREZXZp
Y2VNZW51Q29udHJvbGxlclNlbGVjdGlvbkN1c3RvbU1lbnVJdGVtOgorICAgICAgICAgICAgY3Vz
dG9tUGxheWJhY2tBY3Rpb25TZWxlY3RlZCgpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IGNhc2UgVGVtcEFWT3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXJTZWxlY3Rpb25PdXRwdXREZXZp
Y2U6CisgICAgICAgICAgICBpZiAoIWNoZWNrQWN0aXZlUm91dGUpCisgICAgICAgICAgICAgICAg
Y3VycmVudERldmljZURpZENoYW5nZSgpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNh
c2UgVGVtcEFWT3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXJTZWxlY3Rpb25Ob25lOgorICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9IGVsc2UgaWYgKFtwaWNrZXIgc2hvd01lbnVG
b3JSZWN0OmxvY2F0aW9uIGFwcGVhcmFuY2VOYW1lOk5TQXBwZWFyYW5jZU5hbWVWaWJyYW50TGln
aHQgYWxsb3dSZXNlbGVjdGlvbk9mU2VsZWN0ZWRPdXRwdXREZXZpY2U6IWNoZWNrQWN0aXZlUm91
dGVdKSB7CiAgICAgICAgIGlmICghY2hlY2tBY3RpdmVSb3V0ZSkKICAgICAgICAgICAgIGN1cnJl
bnREZXZpY2VEaWRDaGFuZ2UoKTsKICAgICB9CisKICAgICBtX3Nob3dpbmdNZW51ID0gZmFsc2U7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJWaWRlb0Z1
bGxzY3JlZW5JbnRlcmZhY2VNYWMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJW
aWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWMuaAppbmRleCA2ODVhNjdiNzA0Y2Q4NDlkMjBkZDJm
OTVlMjE4M2Q3NzNjM2U3ZTRjLi5jNGMyNGQwMDk3ZWEzZGM4M2Y0NGYzNDYwYTI0ZDJhYzdlZmM5
NDM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViVmlkZW9GdWxs
c2NyZWVuSW50ZXJmYWNlTWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dl
YlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYy5oCkBAIC03MCw3ICs3MCw3IEBAIHB1YmxpYzoK
ICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldENhblBsYXlGYXN0UmV2ZXJzZShib29sKSBvdmVy
cmlkZSB7IH0KICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldEF1ZGlvTWVkaWFTZWxlY3Rpb25P
cHRpb25zKGNvbnN0IFZlY3RvcjxXVEY6OlN0cmluZz4mIC8qb3B0aW9ucyovLCB1aW50NjRfdCAv
KnNlbGVjdGVkSW5kZXgqLykgb3ZlcnJpZGUgeyB9CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBz
ZXRMZWdpYmxlTWVkaWFTZWxlY3Rpb25PcHRpb25zKGNvbnN0IFZlY3RvcjxXVEY6OlN0cmluZz4m
IC8qb3B0aW9ucyovLCB1aW50NjRfdCAvKnNlbGVjdGVkSW5kZXgqLykgb3ZlcnJpZGUgeyB9Ci0g
ICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRFeHRlcm5hbFBsYXliYWNrKGJvb2wgLyplbmFibGVk
Ki8sIEV4dGVybmFsUGxheWJhY2tUYXJnZXRUeXBlLCBXVEY6OlN0cmluZyAvKmxvY2FsaXplZERl
dmljZU5hbWUqLykgb3ZlcnJpZGUgeyB9CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRFeHRl
cm5hbFBsYXliYWNrKGJvb2wgZW5hYmxlZCwgRXh0ZXJuYWxQbGF5YmFja1RhcmdldFR5cGUsIFdU
Rjo6U3RyaW5nIGxvY2FsaXplZERldmljZU5hbWUpIG92ZXJyaWRlOwogICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgc2V0V2lyZWxlc3NWaWRlb1BsYXliYWNrRGlzYWJsZWQoYm9vbCkgb3ZlcnJpZGUg
eyB9CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldHVwRnVsbHNjcmVlbihOU1ZpZXcmIGxh
eWVySG9zdGVkVmlldywgY29uc3QgSW50UmVjdCYgaW5pdGlhbFJlY3QsIE5TV2luZG93ICpwYXJl
bnRXaW5kb3csIEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSwgYm9v
bCBhbGxvd3NQaWN0dXJlSW5QaWN0dXJlUGxheWJhY2spOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWFjL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYy5tbSBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWMu
bW0KaW5kZXggMWZhZWMyNTlmNzc0YTY1ZjUyOGQ0ZWIxOTEwYzMyMTNhYjc0MDZmYS4uNTJhNjcy
ZmZkOGFjYTJlMzQzNDJiN2ZlNGE0M2JlMmMzNzBhMTEwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWFjL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYy5tbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNl
TWFjLm1tCkBAIC05OSw2ICs5OSwxMCBAQCB2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFj
ZU1hYzo6cHJlcGFyZWRUb1JldHVyblRvSW5saW5lKGJvb2wsIGNvbnN0IEludFJlYwogewogfQog
Cit2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYzo6c2V0RXh0ZXJuYWxQbGF5YmFj
ayhib29sLCBFeHRlcm5hbFBsYXliYWNrVGFyZ2V0VHlwZSwgV1RGOjpTdHJpbmcpCit7Cit9CisK
IGJvb2wgc3VwcG9ydHNQaWN0dXJlSW5QaWN0dXJlKCkKIHsKICAgICByZXR1cm4gZmFsc2U7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01lZGlhUGxheWJhY2tUYXJn
ZXRQaWNrZXJNb2NrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTWVkaWFQbGF5
YmFja1RhcmdldFBpY2tlck1vY2suY3BwCmluZGV4IDc3NDI1OWQ3ODlmOTBmNmI4NGM0MDkwMTNk
MTllOTQxMjQ3NjkzNDAuLjc2YjZhMDIxNWY3NTAwZDQ2Y2Y2YTQ0NzY1MmMzMDhkOWMxODk2Nzkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTWVkaWFQbGF5YmFja1Rh
cmdldFBpY2tlck1vY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTWVk
aWFQbGF5YmFja1RhcmdldFBpY2tlck1vY2suY3BwCkBAIC03MCw3ICs3MCw3IEBAIHZvaWQgTWVk
aWFQbGF5YmFja1RhcmdldFBpY2tlck1vY2s6OnRpbWVyRmlyZWQoKQogICAgIGN1cnJlbnREZXZp
Y2VEaWRDaGFuZ2UoKTsKIH0KIAotdm9pZCBNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTW9jazo6
c2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKGNvbnN0IEZsb2F0UmVjdCYsIGJvb2wgY2hlY2tBY3Rp
dmVSb3V0ZSkKK3ZvaWQgTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1vY2s6OnNob3dQbGF5YmFj
a1RhcmdldFBpY2tlcihjb25zdCBGbG9hdFJlY3QmLCBib29sIGNoZWNrQWN0aXZlUm91dGUsIGNv
bnN0IFN0cmluZyYpCiB7CiAgICAgaWYgKCFjbGllbnQoKSB8fCBtX3Nob3dpbmdNZW51KQogICAg
ICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01l
ZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJNb2NrLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
b2NrL01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJNb2NrLmgKaW5kZXggMzVjYzk1NGIwNjU0ZTA3
YWQ2Nzg4ZmZiMmRjNTA5M2I3OWYwZmRlMS4uZWFlNjNiNzE1MGY5OGZlNTE3ODQxNGJmNWVjZjc1
ZTAwOWUzMWJjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9NZWRp
YVBsYXliYWNrVGFyZ2V0UGlja2VyTW9jay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21vY2svTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1vY2suaApAQCAtNDEsNyArNDEsNyBAQCBw
dWJsaWM6CiAKICAgICB2aXJ0dWFsIH5NZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTW9jaygpOwog
Ci0gICAgdm9pZCBzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIoY29uc3QgRmxvYXRSZWN0JiwgYm9v
bCBjaGVja0FjdGl2ZVJvdXRlKSBvdmVycmlkZTsKKyAgICB2b2lkIHNob3dQbGF5YmFja1Rhcmdl
dFBpY2tlcihjb25zdCBGbG9hdFJlY3QmLCBib29sIGNoZWNrQWN0aXZlUm91dGUsIGNvbnN0IFN0
cmluZyYpIG92ZXJyaWRlOwogICAgIHZvaWQgc3RhcnRpbmdNb25pdG9yaW5nUGxheWJhY2tUYXJn
ZXRzKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBzdG9wTW9uaXRvcmluZ1BsYXliYWNrVGFyZ2V0cygp
IG92ZXJyaWRlOwogICAgIHZvaWQgaW52YWxpZGF0ZVBsYXliYWNrVGFyZ2V0cygpIG92ZXJyaWRl
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3BpL2NvY29hL0FWS2l0U1BJ
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcGkvY29jb2EvQVZLaXRTUEkuaAppbmRleCBi
YmMyY2UyNjAzZTg2NzQ1ZjRiMWNkNmRiNmM2NzU5YjJhNWJkMmU3Li40MmRiZTY2ZWJiMDJhNGNm
Mjc5YjA4NDQwMjQxMDU3Yzk5ODUwMTAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9zcGkvY29jb2EvQVZLaXRTUEkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9z
cGkvY29jb2EvQVZLaXRTUEkuaApAQCAtMTM0LDYgKzEzNCwxMyBAQCBOU19DTEFTU19BVkFJTEFC
TEVfTUFDKDEwXzExKQogLSAodm9pZClzaG93TWVudUZvclJlY3Q6KE5TUmVjdClzY3JlZW5SZWN0
IGFwcGVhcmFuY2VOYW1lOihOU1N0cmluZyAqKWFwcGVhcmFuY2VOYW1lOwogLSAoQk9PTClzaG93
TWVudUZvclJlY3Q6KE5TUmVjdClzY3JlZW5SZWN0IGFwcGVhcmFuY2VOYW1lOihOU1N0cmluZyAq
KWFwcGVhcmFuY2VOYW1lIGFsbG93UmVzZWxlY3Rpb25PZlNlbGVjdGVkT3V0cHV0RGV2aWNlOihC
T09MKWFsbG93UmVzZWxlY3Rpb25PZlNlbGVjdGVkT3V0cHV0RGV2aWNlOwogCit0eXBlZGVmIE5T
X0VOVU0oTlNJbnRlZ2VyLCBBVk91dHB1dERldmljZU1lbnVDb250cm9sbGVyU2VsZWN0aW9uKSB7
CisgICAgQVZPdXRwdXREZXZpY2VNZW51Q29udHJvbGxlclNlbGVjdGlvbk91dHB1dERldmljZSwK
KyAgICBBVk91dHB1dERldmljZU1lbnVDb250cm9sbGVyU2VsZWN0aW9uQ3VzdG9tTWVudUl0ZW0s
CisgICAgQVZPdXRwdXREZXZpY2VNZW51Q29udHJvbGxlclNlbGVjdGlvbk5vbmUKK307CisKKy0g
KEFWT3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXJTZWxlY3Rpb24pc2hvd01lbnVGb3JSZWN0OihO
U1JlY3Qpc2NyZWVuUmVjdCBhcHBlYXJhbmNlTmFtZTooTlNTdHJpbmcgKilhcHBlYXJhbmNlTmFt
ZSBhbGxvd1Jlc2VsZWN0aW9uT2ZTZWxlY3RlZE91dHB1dERldmljZTooQk9PTClhbGxvd1Jlc2Vs
ZWN0aW9uT2ZTZWxlY3RlZE91dHB1dERldmljZSBjdXN0b21NZW51SXRlbVRpdGxlOihOU1N0cmlu
ZyAqKWN1c3RvbU1lbnVJdGVtVGl0bGUgY3VzdG9tTWVudUl0ZW1FbmFibGVkOihCT09MKWN1c3Rv
bU1lbnVJdGVtRW5hYmxlZDsKIEBlbmQKIAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvbWFjL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IDIwYzA2ZTlkY2MxMDRmNGMzZTBm
MTBlZDdhM2U4YmZlNzMxODljNDQuLjgzYjFjMzJmYTZhZjA0NTE0MzBiZWI3MmE4ZDQ3MjcxZTZi
ZGUxMzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5oCkBAIC0yMTMsNyArMjEzLDcgQEAgcHVibGljOgogI2lmIEVOQUJMRShXSVJF
TEVTU19QTEFZQkFDS19UQVJHRVQpICYmICFQTEFURk9STShJT1MpCiAgICAgdm9pZCBhZGRQbGF5
YmFja1RhcmdldFBpY2tlckNsaWVudCh1aW50NjRfdCAvKmNvbnRleHRJZCovKSBvdmVycmlkZTsK
ICAgICB2b2lkIHJlbW92ZVBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50KHVpbnQ2NF90IC8qY29u
dGV4dElkKi8pIG92ZXJyaWRlOwotICAgIHZvaWQgc2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKHVp
bnQ2NF90IC8qY29udGV4dElkKi8sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiwgYm9vbCAvKiBo
YXNWaWRlbyAqLykgb3ZlcnJpZGU7CisgICAgdm9pZCBzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIo
dWludDY0X3QgLypjb250ZXh0SWQqLywgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmLCBib29sIC8q
IGhhc1ZpZGVvICovLCBjb25zdCBTdHJpbmcmKSBvdmVycmlkZTsKICAgICB2b2lkIHBsYXliYWNr
VGFyZ2V0UGlja2VyQ2xpZW50U3RhdGVEaWRDaGFuZ2UodWludDY0X3QgLypjb250ZXh0SWQqLywg
V2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzKSBvdmVycmlkZTsKICAgICB2
b2lkIHNldE1vY2tNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyRW5hYmxlZChib29sKSBvdmVycmlk
ZTsKICAgICB2b2lkIHNldE1vY2tNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyU3RhdGUoY29uc3Qg
U3RyaW5nJiwgV2ViQ29yZTo6TWVkaWFQbGF5YmFja1RhcmdldENvbnRleHQ6OlN0YXRlKSBvdmVy
cmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9t
ZUNsaWVudC5tbQppbmRleCAwYzg1OTQwZTQyODZmMWVjYjU0ZGE2MjEzMjgzMjJiMTZhZTY5YjU1
Li5hMjJiOTRlZWI3ODYyOTBhMGMyMGU0ZWU3NzE3ZWM3NzEyZDkwYjEyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0KKysrIGIv
U291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tCkBAIC0x
MDMyLDcgKzEwMzIsNyBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6cmVtb3ZlUGxheWJhY2tUYXJn
ZXRQaWNrZXJDbGllbnQodWludDY0X3QgY29udGV4dElkKQogICAgIFttX3dlYlZpZXcgX3JlbW92
ZVBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50OmNvbnRleHRJZF07CiB9CiAKLXZvaWQgV2ViQ2hy
b21lQ2xpZW50OjpzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIodWludDY0X3QgY29udGV4dElkLCBj
b25zdCBXZWJDb3JlOjpJbnRQb2ludCYgbG9jYXRpb24sIGJvb2wgaGFzVmlkZW8pCit2b2lkIFdl
YkNocm9tZUNsaWVudDo6c2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKHVpbnQ2NF90IGNvbnRleHRJ
ZCwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGxvY2F0aW9uLCBib29sIGhhc1ZpZGVvLCBjb25z
dCBTdHJpbmcmKQogewogICAgIFttX3dlYlZpZXcgX3Nob3dQbGF5YmFja1RhcmdldFBpY2tlcjpj
b250ZXh0SWQgbG9jYXRpb246bG9jYXRpb24gaGFzVmlkZW86aGFzVmlkZW9dOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJNZWRpYVBsYXliYWNrVGFyZ2V0UGlj
a2VyLmggYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYk1lZGlhUGxheWJhY2tUYXJnZXRQ
aWNrZXIuaAppbmRleCBkZDFlZDJjNDM1NGIyYWM3ZjI3NDc5YjBmMGIxNjQ3NjU1NDFiYmYzLi44
ZTU0MmY4MTY0NjQ5ZDFmMmI3NmU1NDIyZmVmZmZlNTEyOTM4OWVhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYk1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXIuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYk1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXIu
aApAQCAtNDUsNyArNDUsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGFkZFBsYXliYWNrVGFyZ2V0
UGlja2VyQ2xpZW50KHVpbnQ2NF90KTsKICAgICB2b2lkIHJlbW92ZVBsYXliYWNrVGFyZ2V0UGlj
a2VyQ2xpZW50KHVpbnQ2NF90KTsKLSAgICB2b2lkIHNob3dQbGF5YmFja1RhcmdldFBpY2tlcih1
aW50NjRfdCwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiwgYm9vbCBoYXNWaWRlbyk7CisgICAg
dm9pZCBzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIodWludDY0X3QsIGNvbnN0IFdlYkNvcmU6OkZs
b2F0UmVjdCYsIGJvb2wgaGFzVmlkZW8sIGNvbnN0IFN0cmluZyYpOwogICAgIHZvaWQgcGxheWJh
Y2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0ZURpZENoYW5nZSh1aW50NjRfdCwgV2ViQ29yZTo6TWVk
aWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzKTsKICAgICB2b2lkIHNldE1vY2tNZWRpYVBsYXli
YWNrVGFyZ2V0UGlja2VyRW5hYmxlZChib29sKTsKICAgICB2b2lkIHNldE1vY2tNZWRpYVBsYXli
YWNrVGFyZ2V0UGlja2VyU3RhdGUoY29uc3QgU3RyaW5nJiwgV2ViQ29yZTo6TWVkaWFQbGF5YmFj
a1RhcmdldENvbnRleHQ6OlN0YXRlKTsKQEAgLTU0LDYgKzU0LDcgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgdm9pZCBzZXRQbGF5YmFja1RhcmdldCh1aW50NjRfdCwgUmVmPFdlYkNvcmU6Ok1lZGlh
UGxheWJhY2tUYXJnZXQ+JiYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBleHRlcm5hbE91
dHB1dERldmljZUF2YWlsYWJsZURpZENoYW5nZSh1aW50NjRfdCwgYm9vbCkgb3ZlcnJpZGU7CiAg
ICAgdmlydHVhbCB2b2lkIHNldFNob3VsZFBsYXlUb1BsYXliYWNrVGFyZ2V0KHVpbnQ2NF90LCBi
b29sKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgY3VzdG9tUGxheWJhY2tBY3Rpb25TZWxl
Y3RlZCh1aW50NjRfdCkgb3ZlcnJpZGU7CiAKICAgICB2b2lkIGludmFsaWRhdGUoKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJNZWRpYVBsYXliYWNrVGFyZ2V0
UGlja2VyLm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJNZWRpYVBsYXliYWNrVGFy
Z2V0UGlja2VyLm1tCmluZGV4IDZkOGNiZjU3NWZmYTcwYmE2ZmU4ZjJmNzAwNjg1MzhmOWY5ZTJi
MGYuLmVjYmY3MGYyYmJiNDU0ODc3YmMwOGUyZTBjODM0ZTJkYzljYTQyNGQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlci5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYk1lZGlhUGxheWJhY2tUYXJnZXRQ
aWNrZXIubW0KQEAgLTUxLDkgKzUxLDkgQEAgdm9pZCBXZWJNZWRpYVBsYXliYWNrVGFyZ2V0UGlj
a2VyOjpyZW1vdmVQbGF5YmFja1RhcmdldFBpY2tlckNsaWVudCh1aW50NjRfdCBjb24KICAgICBX
ZWJDb3JlOjpXZWJNZWRpYVNlc3Npb25NYW5hZ2VyOjpzaGFyZWQoKS5yZW1vdmVQbGF5YmFja1Rh
cmdldFBpY2tlckNsaWVudCgqdGhpcywgY29udGV4dElkKTsKIH0KIAotdm9pZCBXZWJNZWRpYVBs
YXliYWNrVGFyZ2V0UGlja2VyOjpzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIodWludDY0X3QgY29u
dGV4dElkLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHJlY3QsIGJvb2wgaGFzVmlkZW8pCit2
b2lkIFdlYk1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXI6OnNob3dQbGF5YmFja1RhcmdldFBpY2tl
cih1aW50NjRfdCBjb250ZXh0SWQsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgcmVjdCwgYm9v
bCBoYXNWaWRlbywgY29uc3QgU3RyaW5nJiBjdXN0b21NZW51SXRlbVRpdGxlKQogewotICAgIFdl
YkNvcmU6OldlYk1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNoYXJlZCgpLnNob3dQbGF5YmFja1Rhcmdl
dFBpY2tlcigqdGhpcywgY29udGV4dElkLCBXZWJDb3JlOjpJbnRSZWN0KHJlY3QpLCBoYXNWaWRl
byk7CisgICAgV2ViQ29yZTo6V2ViTWVkaWFTZXNzaW9uTWFuYWdlcjo6c2hhcmVkKCkuc2hvd1Bs
YXliYWNrVGFyZ2V0UGlja2VyKCp0aGlzLCBjb250ZXh0SWQsIFdlYkNvcmU6OkludFJlY3QocmVj
dCksIGhhc1ZpZGVvLCBjdXN0b21NZW51SXRlbVRpdGxlKTsKIH0KIAogdm9pZCBXZWJNZWRpYVBs
YXliYWNrVGFyZ2V0UGlja2VyOjpwbGF5YmFja1RhcmdldFBpY2tlckNsaWVudFN0YXRlRGlkQ2hh
bmdlKHVpbnQ2NF90IGNvbnRleHRJZCwgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0
ZUZsYWdzIHN0YXRlKQpAQCAtOTUsNiArOTUsMTQgQEAgdm9pZCBXZWJNZWRpYVBsYXliYWNrVGFy
Z2V0UGlja2VyOjpzZXRTaG91bGRQbGF5VG9QbGF5YmFja1RhcmdldCh1aW50NjRfdCBjb250ZXgK
ICAgICBtX3BhZ2UtPnNldFNob3VsZFBsYXlUb1BsYXliYWNrVGFyZ2V0KGNvbnRleHRJZCwgc2hv
dWxkUGxheSk7CiB9CiAKK3ZvaWQgV2ViTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlcjo6Y3VzdG9t
UGxheWJhY2tBY3Rpb25TZWxlY3RlZCh1aW50NjRfdCBjb250ZXh0SWQpCit7CisgICAgaWYgKCFt
X3BhZ2UpCisgICAgICAgIHJldHVybjsKKworICAgIG1fcGFnZS0+Y3VzdG9tUGxheWJhY2tBY3Rp
b25TZWxlY3RlZChjb250ZXh0SWQpOworfQorCiB2b2lkIFdlYk1lZGlhUGxheWJhY2tUYXJnZXRQ
aWNrZXI6OmludmFsaWRhdGUoKQogewogICAgIG1fcGFnZSA9IG51bGxwdHI7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJWaWV3L1dlYlZpZXcubW0KaW5kZXggMWYxMWJlZmVjODg4MDJhYjE4MjI2ZTYwM2ZhYzFh
M2M3MTc1MjZhMC4uNzc4OWY3ZGRkNzgxNmQzZmQ2MzExYjc0OTVjN2ZlYjk2M2YxY2U0MCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQpAQCAtODczOSw3ICs4NzM5LDcgQEAgYm9v
bCBMYXllckZsdXNoQ29udHJvbGxlcjo6Zmx1c2hMYXllcnMoKQogICAgICAgICByZXR1cm47CiAK
ICAgICBOU1JlY3QgcmVjdEluU2NyZWVuQ29vcmRpbmF0ZXMgPSBbc2VsZi53aW5kb3cgY29udmVy
dFJlY3RUb1NjcmVlbjpOU01ha2VSZWN0KGxvY2F0aW9uLngoKSwgbG9jYXRpb24ueSgpLCAwLCAw
KV07Ci0gICAgW3NlbGYgX2RldmljZVBpY2tlcl0tPnNob3dQbGF5YmFja1RhcmdldFBpY2tlcihj
bGllbnRJZCwgcmVjdEluU2NyZWVuQ29vcmRpbmF0ZXMsIGhhc1ZpZGVvKTsKKyAgICBbc2VsZiBf
ZGV2aWNlUGlja2VyXS0+c2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKGNsaWVudElkLCByZWN0SW5T
Y3JlZW5Db29yZGluYXRlcywgaGFzVmlkZW8sIHsgfSk7CiB9CiAKIC0gKHZvaWQpX3BsYXliYWNr
VGFyZ2V0UGlja2VyQ2xpZW50U3RhdGVEaWRDaGFuZ2U6KHVpbnQ2NF90KWNsaWVudElkIHN0YXRl
OihXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mpc3RhdGUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggN2ZmYjQ2YjA0MjNjMzQyMzdh
MGQ0Yjg1ODk2MDJiNTQzYWE0NzdjNi4uMzJmZTM0MGRhZTUyMjFkY2I3ZWJiOGFlZjI5MDc3NGFl
MmVjOWU0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAg
LTYxMDYsOSArNjEwNiw5IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpyZW1vdmVQbGF5YmFja1Rhcmdl
dFBpY2tlckNsaWVudCh1aW50NjRfdCBjb250ZXh0SWQpCiAgICAgbV9wYWdlQ2xpZW50Lm1lZGlh
U2Vzc2lvbk1hbmFnZXIoKS5yZW1vdmVQbGF5YmFja1RhcmdldFBpY2tlckNsaWVudCgqdGhpcywg
Y29udGV4dElkKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OnNob3dQbGF5YmFja1RhcmdldFBp
Y2tlcih1aW50NjRfdCBjb250ZXh0SWQsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgcmVjdCwg
Ym9vbCBoYXNWaWRlbykKK3ZvaWQgV2ViUGFnZVByb3h5OjpzaG93UGxheWJhY2tUYXJnZXRQaWNr
ZXIodWludDY0X3QgY29udGV4dElkLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHJlY3QsIGJv
b2wgaGFzVmlkZW8sIGNvbnN0IFN0cmluZyYgY3VzdG9tTWVudUl0ZW1UaXRsZSkKIHsKLSAgICBt
X3BhZ2VDbGllbnQubWVkaWFTZXNzaW9uTWFuYWdlcigpLnNob3dQbGF5YmFja1RhcmdldFBpY2tl
cigqdGhpcywgY29udGV4dElkLCBtX3BhZ2VDbGllbnQucm9vdFZpZXdUb1NjcmVlbihJbnRSZWN0
KHJlY3QpKSwgaGFzVmlkZW8pOworICAgIG1fcGFnZUNsaWVudC5tZWRpYVNlc3Npb25NYW5hZ2Vy
KCkuc2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKCp0aGlzLCBjb250ZXh0SWQsIG1fcGFnZUNsaWVu
dC5yb290Vmlld1RvU2NyZWVuKEludFJlY3QocmVjdCkpLCBoYXNWaWRlbywgY3VzdG9tTWVudUl0
ZW1UaXRsZSk7CiB9CiAKIHZvaWQgV2ViUGFnZVByb3h5OjpwbGF5YmFja1RhcmdldFBpY2tlckNs
aWVudFN0YXRlRGlkQ2hhbmdlKHVpbnQ2NF90IGNvbnRleHRJZCwgV2ViQ29yZTo6TWVkaWFQcm9k
dWNlcjo6TWVkaWFTdGF0ZUZsYWdzIHN0YXRlKQpAQCAtNjE0OSw2ICs2MTQ5LDE0IEBAIHZvaWQg
V2ViUGFnZVByb3h5OjpzZXRTaG91bGRQbGF5VG9QbGF5YmFja1RhcmdldCh1aW50NjRfdCBjb250
ZXh0SWQsIGJvb2wgc2hvdWxkCiAKICAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBh
Z2U6OlNldFNob3VsZFBsYXlUb1BsYXliYWNrVGFyZ2V0KGNvbnRleHRJZCwgc2hvdWxkUGxheSks
IG1fcGFnZUlEKTsKIH0KKwordm9pZCBXZWJQYWdlUHJveHk6OmN1c3RvbVBsYXliYWNrQWN0aW9u
U2VsZWN0ZWQodWludDY0X3QgY29udGV4dElkKQoreworICAgIGlmICghaXNWYWxpZCgpKQorICAg
ICAgICByZXR1cm47CisKKyAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkN1
c3RvbVBsYXliYWNrQWN0aW9uU2VsZWN0ZWQoY29udGV4dElkKSwgbV9wYWdlSUQpOworfQogI2Vu
ZGlmCiAKIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRDaGFuZ2VCYWNrZ3JvdW5kQ29sb3IoKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IGJlN2M2NDRjNTIzMjY1ZGEz
ZjA1NmE1MTg3MGY5Yjk3MzUwNzA5ZjQuLjVmYjI1OWYxN2Y4YWE5NTQzZTcwMmU1MzhkOTEwNjk4
ZTgzZDU2ZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTEw
NjIsNyArMTA2Miw3IEBAIHB1YmxpYzoKICNpZiBFTkFCTEUoV0lSRUxFU1NfUExBWUJBQ0tfVEFS
R0VUKSAmJiAhUExBVEZPUk0oSU9TKQogICAgIHZvaWQgYWRkUGxheWJhY2tUYXJnZXRQaWNrZXJD
bGllbnQodWludDY0X3QpOwogICAgIHZvaWQgcmVtb3ZlUGxheWJhY2tUYXJnZXRQaWNrZXJDbGll
bnQodWludDY0X3QpOwotICAgIHZvaWQgc2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKHVpbnQ2NF90
LCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmLCBib29sIGhhc1ZpZGVvKTsKKyAgICB2b2lkIHNo
b3dQbGF5YmFja1RhcmdldFBpY2tlcih1aW50NjRfdCwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0
JiwgYm9vbCBoYXNWaWRlbywgY29uc3QgU3RyaW5nJik7CiAgICAgdm9pZCBwbGF5YmFja1Rhcmdl
dFBpY2tlckNsaWVudFN0YXRlRGlkQ2hhbmdlKHVpbnQ2NF90LCBXZWJDb3JlOjpNZWRpYVByb2R1
Y2VyOjpNZWRpYVN0YXRlRmxhZ3MpOwogICAgIHZvaWQgc2V0TW9ja01lZGlhUGxheWJhY2tUYXJn
ZXRQaWNrZXJFbmFibGVkKGJvb2wpOwogICAgIHZvaWQgc2V0TW9ja01lZGlhUGxheWJhY2tUYXJn
ZXRQaWNrZXJTdGF0ZShjb25zdCBTdHJpbmcmLCBXZWJDb3JlOjpNZWRpYVBsYXliYWNrVGFyZ2V0
Q29udGV4dDo6U3RhdGUpOwpAQCAtMTA3MSw2ICsxMDcxLDcgQEAgcHVibGljOgogICAgIHZpcnR1
YWwgdm9pZCBzZXRQbGF5YmFja1RhcmdldCh1aW50NjRfdCwgUmVmPFdlYkNvcmU6Ok1lZGlhUGxh
eWJhY2tUYXJnZXQ+JiYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBleHRlcm5hbE91dHB1
dERldmljZUF2YWlsYWJsZURpZENoYW5nZSh1aW50NjRfdCwgYm9vbCkgb3ZlcnJpZGU7CiAgICAg
dmlydHVhbCB2b2lkIHNldFNob3VsZFBsYXlUb1BsYXliYWNrVGFyZ2V0KHVpbnQ2NF90LCBib29s
KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgY3VzdG9tUGxheWJhY2tBY3Rpb25TZWxlY3Rl
ZCh1aW50NjRfdCkgb3ZlcnJpZGU7CiAjZW5kaWYKIAogICAgIHZvaWQgZGlkQ2hhbmdlQmFja2dy
b3VuZENvbG9yKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5tZXNzYWdlcy5pbgppbmRleCAxNGU1MGY5ZjNiMTMzN2YzOWY3OTE5Zjc2ZmMyM2NkYWM2ZmQ5
ZDY1Li4xZmM0Njg0MGZmNTQzYmEyMDIzNDkyYTZhM2VmNWNiMGI0YWI3OTUwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KQEAgLTQz
NSw3ICs0MzUsNyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogI2lmIEVOQUJMRShXSVJF
TEVTU19QTEFZQkFDS19UQVJHRVQpICYmICFQTEFURk9STShJT1MpCiAgICAgQWRkUGxheWJhY2tU
YXJnZXRQaWNrZXJDbGllbnQodWludDY0X3QgY29udGV4dElkKQogICAgIFJlbW92ZVBsYXliYWNr
VGFyZ2V0UGlja2VyQ2xpZW50KHVpbnQ2NF90IGNvbnRleHRJZCkKLSAgICBTaG93UGxheWJhY2tU
YXJnZXRQaWNrZXIodWludDY0X3QgY2xpZW50SWQsIFdlYkNvcmU6OkZsb2F0UmVjdCBwaWNrZXJM
b2NhdGlvbiwgYm9vbCBoYXNWaWRlbykKKyAgICBTaG93UGxheWJhY2tUYXJnZXRQaWNrZXIodWlu
dDY0X3QgY2xpZW50SWQsIFdlYkNvcmU6OkZsb2F0UmVjdCBwaWNrZXJMb2NhdGlvbiwgYm9vbCBo
YXNWaWRlbywgU3RyaW5nIGN1c3RvbU1lbnVJdGVtVGl0bGUpCiAgICAgUGxheWJhY2tUYXJnZXRQ
aWNrZXJDbGllbnRTdGF0ZURpZENoYW5nZSh1aW50NjRfdCBjb250ZXh0SWQsIHVuc2lnbmVkIG1l
ZGlhU3RhdGUpCiAgICAgU2V0TW9ja01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJFbmFibGVkKGJv
b2wgZW5hYmxlZCkKICAgICBTZXRNb2NrTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlclN0YXRlKFN0
cmluZyBuYW1lLCB1bnNpZ25lZCBwaWNrZXJTdGF0ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcApp
bmRleCBiZjU3Y2JmMjU2NDQ5YWQxZmFkYjkzN2NiZmVhOWQ5MzU3MzU2M2UzLi5kMWI5ODU5ZWE5
ZjQ0MDA3NmEzMzkzNDJjMjg5NTJlNjM4NDAzYWZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3Bw
CkBAIC0xMDkyLDExICsxMDkyLDExIEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpyZW1vdmVQbGF5
YmFja1RhcmdldFBpY2tlckNsaWVudCh1aW50NjRfdCBjb250ZXh0SWQpCiB9CiAKIAotdm9pZCBX
ZWJDaHJvbWVDbGllbnQ6OnNob3dQbGF5YmFja1RhcmdldFBpY2tlcih1aW50NjRfdCBjb250ZXh0
SWQsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBwb3NpdGlvbiwgYm9vbCBpc1ZpZGVvKQordm9p
ZCBXZWJDaHJvbWVDbGllbnQ6OnNob3dQbGF5YmFja1RhcmdldFBpY2tlcih1aW50NjRfdCBjb250
ZXh0SWQsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBwb3NpdGlvbiwgYm9vbCBpc1ZpZGVvLCBj
b25zdCBTdHJpbmcmIGN1c3RvbU1lbnVJdGVtVGl0bGUpCiB7CiAgICAgRnJhbWVWaWV3KiBmcmFt
ZVZpZXcgPSBtX3BhZ2UtPm1haW5GcmFtZSgpLT52aWV3KCk7CiAgICAgRmxvYXRSZWN0IHJlY3Qo
ZnJhbWVWaWV3LT5jb250ZW50c1RvUm9vdFZpZXcoZnJhbWVWaWV3LT53aW5kb3dUb0NvbnRlbnRz
KHBvc2l0aW9uKSksIEZsb2F0U2l6ZSgpKTsKLSAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6Oldl
YlBhZ2VQcm94eTo6U2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKGNvbnRleHRJZCwgcmVjdCwgaXNW
aWRlbykpOworICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpTaG93UGxh
eWJhY2tUYXJnZXRQaWNrZXIoY29udGV4dElkLCByZWN0LCBpc1ZpZGVvLCBjdXN0b21NZW51SXRl
bVRpdGxlKSk7CiB9CiAKIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpwbGF5YmFja1RhcmdldFBpY2tl
ckNsaWVudFN0YXRlRGlkQ2hhbmdlKHVpbnQ2NF90IGNvbnRleHRJZCwgV2ViQ29yZTo6TWVkaWFQ
cm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIHN0YXRlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5kZXgg
NzY0MTMwM2NmMjY4OWE0OWNmZjVjNmJlYmZlNDk4YWNmODQ1OWU5Zi4uMmFkMjdlZmQzOGI4ZjFm
YWI4ZTBjODU5MjA4NDNmNzU2MTE5Zjk4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC0zMTcs
NyArMzE3LDcgQEAgcHJpdmF0ZToKICNpZiBFTkFCTEUoV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VU
KSAmJiAhUExBVEZPUk0oSU9TKQogICAgIHZvaWQgYWRkUGxheWJhY2tUYXJnZXRQaWNrZXJDbGll
bnQodWludDY0X3QgLypjb250ZXh0SWQqLykgb3ZlcnJpZGU7CiAgICAgdm9pZCByZW1vdmVQbGF5
YmFja1RhcmdldFBpY2tlckNsaWVudCh1aW50NjRfdCAvKmNvbnRleHRJZCovKSBvdmVycmlkZTsK
LSAgICB2b2lkIHNob3dQbGF5YmFja1RhcmdldFBpY2tlcih1aW50NjRfdCBjb250ZXh0SWQsIGNv
bnN0IFdlYkNvcmU6OkludFBvaW50JiwgYm9vbCkgb3ZlcnJpZGU7CisgICAgdm9pZCBzaG93UGxh
eWJhY2tUYXJnZXRQaWNrZXIodWludDY0X3QgLypjb250ZXh0SWQqLywgY29uc3QgV2ViQ29yZTo6
SW50UG9pbnQmLCBib29sLCBjb25zdCBTdHJpbmcmKSBvdmVycmlkZTsKICAgICB2b2lkIHBsYXli
YWNrVGFyZ2V0UGlja2VyQ2xpZW50U3RhdGVEaWRDaGFuZ2UodWludDY0X3QsIFdlYkNvcmU6Ok1l
ZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncykgb3ZlcnJpZGU7CiAgICAgdm9pZCBzZXRNb2Nr
TWVkaWFQbGF5YmFja1RhcmdldFBpY2tlckVuYWJsZWQoYm9vbCkgb3ZlcnJpZGU7CiAgICAgdm9p
ZCBzZXRNb2NrTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlclN0YXRlKGNvbnN0IFN0cmluZyYsIFdl
YkNvcmU6Ok1lZGlhUGxheWJhY2tUYXJnZXRDb250ZXh0OjpTdGF0ZSkgb3ZlcnJpZGU7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCA1ZmViYTA4MzZh
Yzc4NzZkNzlmMmU3YTZlOGJmMWIwYmMzNmQyNDFjLi45NjU1NTRkZGI4OThjYzNjMmY2NTI2Y2E4
NzgxMTk1NzJmYmQxN2MzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmgKQEAgLTExNjgsNiArMTE2OCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBwbGF5YmFj
a1RhcmdldFNlbGVjdGVkKHVpbnQ2NF90LCBjb25zdCBXZWJDb3JlOjpNZWRpYVBsYXliYWNrVGFy
Z2V0Q29udGV4dCYgb3V0cHV0RGV2aWNlKSBjb25zdDsKICAgICB2b2lkIHBsYXliYWNrVGFyZ2V0
QXZhaWxhYmlsaXR5RGlkQ2hhbmdlKHVpbnQ2NF90LCBib29sKTsKICAgICB2b2lkIHNldFNob3Vs
ZFBsYXlUb1BsYXliYWNrVGFyZ2V0KHVpbnQ2NF90LCBib29sKTsKKyAgICB2b2lkIGN1c3RvbVBs
YXliYWNrQWN0aW9uU2VsZWN0ZWQodWludDY0X3QpOwogI2VuZGlmCiAKICAgICB2b2lkIGNsZWFy
V2hlZWxFdmVudFRlc3RUcmlnZ2VyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCmluZGV4IDkwZTgxMDI4MzEyZjJhNjYz
NDZiNTJiYTE2OTMwYjYwODk3MDc5ZTcuLjU2NDNlMThjMWI3YWViNDUzM2ZkNmVlNjVmYTE4MmM3
ZDU1MDhkY2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLm1lc3NhZ2VzLmluCkBAIC00MTQsNiArNDE0LDcgQEAgbWVzc2FnZXMgLT4gV2Vi
UGFnZSBMZWdhY3lSZWNlaXZlciB7CiAgICAgUGxheWJhY2tUYXJnZXRTZWxlY3RlZCh1aW50NjRf
dCBjb250ZXh0SWQsIFdlYkNvcmU6Ok1lZGlhUGxheWJhY2tUYXJnZXRDb250ZXh0IHRhcmdldCkK
ICAgICBQbGF5YmFja1RhcmdldEF2YWlsYWJpbGl0eURpZENoYW5nZSh1aW50NjRfdCBjb250ZXh0
SWQsIGJvb2wgYXZhaWxhYmxlKQogICAgIFNldFNob3VsZFBsYXlUb1BsYXliYWNrVGFyZ2V0KHVp
bnQ2NF90IGNvbnRleHRJZCwgYm9vbCBzaG91bGRQbGF5KQorICAgIEN1c3RvbVBsYXliYWNrQWN0
aW9uU2VsZWN0ZWQodWludDY0X3QgY29udGV4dElkKQogI2VuZGlmCiAKICAgICBDbGVhcldoZWVs
RXZlbnRUZXN0VHJpZ2dlcigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvbWFjL1dlYlBhZ2VNYWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvbWFjL1dlYlBhZ2VNYWMubW0KaW5kZXggNTgyNWMyNjRjMjU5YWU4MDgxZjA1YmY3MDU4
Y2NhZmRmY2YwODc5OS4uYmYxNzUxYjkzN2JhMTAzYTA0ZTM3OTc5ZTU5NzVjNGRhNDc4OTQ5ZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdl
TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFn
ZU1hYy5tbQpAQCAtMTE1OSw2ICsxMTU5LDExIEBAIHZvaWQgV2ViUGFnZTo6c2V0U2hvdWxkUGxh
eVRvUGxheWJhY2tUYXJnZXQodWludDY0X3QgY29udGV4dElkLCBib29sIHNob3VsZFBsYXkpCiB7
CiAgICAgbV9wYWdlLT5zZXRTaG91bGRQbGF5VG9QbGF5YmFja1RhcmdldChjb250ZXh0SWQsIHNo
b3VsZFBsYXkpOwogfQorCit2b2lkIFdlYlBhZ2U6OmN1c3RvbVBsYXliYWNrQWN0aW9uU2VsZWN0
ZWQodWludDY0X3QgY29udGV4dElkKQoreworICAgIG1fcGFnZS0+Y3VzdG9tUGxheWJhY2tBY3Rp
b25TZWxlY3RlZChjb250ZXh0SWQpOworfQogI2VuZGlmCiAKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>272597</attachid>
            <date>2016-03-01 15:27:14 -0800</date>
            <delta_ts>2016-03-01 16:46:41 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-154823-20160301152659.patch</filename>
            <type>text/plain</type>
            <size>48347</size>
            <attacher name="Ada Chan">adachan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk3NDAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjJhNzc2YmRiMjA5ODY1
OGY1ZmViNDBlMmE2ZmJmMWJhNTgyZTEwZC4uMmNlZTYwNjIwNTdhYWM2NzQzMmQ2YzQ2MTIzNjBh
ODBkNDNkMjU4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU2IEBACisyMDE2LTAyLTI5ICBBZGEg
Q2hhbiAgPGFkYWNoYW5AYXBwbGUuY29tPgorCisgICAgICAgIEFkb3B0IHRoZSBuZXcgdmVyc2lv
biBvZiBBVk91dHB1dERldmljZU1lbnVDb250cm9sbGVyJ3Mgc2hvd01lbnVGb3JSZWN0IG1ldGhv
ZC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NDgy
MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTW9k
dWxlcy9tZWRpYXNlc3Npb24vV2ViTWVkaWFTZXNzaW9uTWFuYWdlci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpXZWJNZWRpYVNlc3Npb25NYW5hZ2VyOjpzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIp
OgorICAgICAgICAoV2ViQ29yZTo6V2ViTWVkaWFTZXNzaW9uTWFuYWdlcjo6Y3VzdG9tUGxheWJh
Y2tBY3Rpb25TZWxlY3RlZCk6CisgICAgICAgIENhbGwgY3VzdG9tUGxheWJhY2tBY3Rpb25TZWxl
Y3RlZCgpIG9uIHRoZSBjbGllbnQgdGhhdCByZXF1ZXN0ZWQgdGhlIHBpY2tlci4KKyAgICAgICAg
KiBNb2R1bGVzL21lZGlhc2Vzc2lvbi9XZWJNZWRpYVNlc3Npb25NYW5hZ2VyLmg6CisgICAgICAg
ICogTW9kdWxlcy9tZWRpYXNlc3Npb24vV2ViTWVkaWFTZXNzaW9uTWFuYWdlckNsaWVudC5oOgor
ICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6
c2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojpj
dXN0b21QbGF5YmFja0FjdGlvblNlbGVjdGVkKToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoK
KyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SFRNTE1lZGlhRWxlbWVudDo6Y3VzdG9tUGxheWJhY2tBY3Rpb25TZWxlY3RlZCk6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpwbGF5YmFja1RhcmdldFBpY2tlckN1c3RvbUFj
dGlvbk5hbWUpOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5oOgorICAgICAgICAq
IGh0bWwvTWVkaWFFbGVtZW50U2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUVs
ZW1lbnRTZXNzaW9uOjpzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFFbGVtZW50U2Vzc2lvbjo6Y3VzdG9tUGxheWJhY2tBY3Rpb25TZWxlY3RlZCk6Cisg
ICAgICAgICogaHRtbC9NZWRpYUVsZW1lbnRTZXNzaW9uLmg6CisgICAgICAgICogcGFnZS9DaHJv
bWVDbGllbnQuaDoKKyAgICAgICAgKiBwYWdlL1BhZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UGFnZTo6c2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6
OmN1c3RvbVBsYXliYWNrQWN0aW9uU2VsZWN0ZWQpOgorICAgICAgICAqIHBhZ2UvUGFnZS5oOgor
ICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uLmg6CisgICAgICAg
IChXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNsaWVudDo6Y3VzdG9tUGxheWJhY2tBY3Rp
b25TZWxlY3RlZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5YmFja1Rh
cmdldENsaWVudC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWJhY2tU
YXJnZXRQaWNrZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5YmFja1RhcmdldFBp
Y2tlcjo6cGVuZGluZ0FjdGlvblRpbWVyRmlyZWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQ
bGF5YmFja1RhcmdldFBpY2tlcjo6c2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyLmg6CisgICAgICAg
IChXZWJDb3JlOjpNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyOjpDbGllbnQ6OmN1c3RvbVBsYXli
YWNrQWN0aW9uU2VsZWN0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5YmFja1Rhcmdl
dFBpY2tlcjo6Y3VzdG9tUGxheWJhY2tBY3Rpb25TZWxlY3RlZCk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1h
Yy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlh
UGxheWJhY2tUYXJnZXRQaWNrZXJNYWMubW06CisgICAgICAgIFVwZGF0ZSB0aGUgZm9yd2FyZCBk
ZWNsYXJhdGlvbiBvZiBBVk91dHB1dERldmljZU1lbnVDb250cm9sbGVyJ3Mgc2hvd01lbnVGb3JS
ZWN0IG1ldGhvZC4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJN
YWM6OnNob3dQbGF5YmFja1RhcmdldFBpY2tlcik6CisgICAgICAgIENhbGwgdGhlIG5ldyB2ZXJz
aW9uIG9mIHNob3dNZW51Rm9yUmVjdCBpZiBhdmFpbGFibGUuCisgICAgICAgICogcGxhdGZvcm0v
bWFjL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYy5oOgorICAgICAgICAqIHBsYXRmb3Jt
L21hYy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWMubW06CisgICAgICAgIChXZWJDb3Jl
OjpXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWM6OnNldEV4dGVybmFsUGxheWJhY2spOgor
ICAgICAgICAqIHBsYXRmb3JtL21vY2svTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1vY2suY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1vY2s6OnNob3dQ
bGF5YmFja1RhcmdldFBpY2tlcik6CisgICAgICAgICogcGxhdGZvcm0vbW9jay9NZWRpYVBsYXli
YWNrVGFyZ2V0UGlja2VyTW9jay5oOgorICAgICAgICAqIHBsYXRmb3JtL3NwaS9jb2NvYS9BVktp
dFNQSS5oOgorICAgICAgICBVcGRhdGVkIHdpdGggdGhlIG5ldyB2ZXJzaW9uIG9mIHNob3dNZW51
Rm9yUmVjdC4KKwogMjAxNi0wMy0wMSAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+
CiAKICAgICAgICAgVGV4dCBjb250cm9sIHNoYWRvdyBlbGVtZW50IHN0eWxlIHNob3VsZG4ndCBk
ZXBlbmQgb24gcmVuZGVyZXJzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggZjBhOGVjMjJjYjc2YjlhMzkw
ZWU2MjMyNzFjODlmMTc2ZTE2ZWVkNy4uMjg3MDI2Y2MzZWQyYmRkYzZkMDhjYTA1ODI0NjBlMjIx
NDYwMzM2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDE2LTAyLTI5ICBB
ZGEgQ2hhbiAgPGFkYWNoYW5AYXBwbGUuY29tPgorCisgICAgICAgIEFkb3B0IHRoZSBuZXcgdmVy
c2lvbiBvZiBBVk91dHB1dERldmljZU1lbnVDb250cm9sbGVyJ3Mgc2hvd01lbnVGb3JSZWN0IG1l
dGhvZC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1
NDgyMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgICogV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50Lm1tOgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50OjpzaG93UGxh
eWJhY2tUYXJnZXRQaWNrZXIpOgorICAgICAgICAqIFdlYlZpZXcvV2ViTWVkaWFQbGF5YmFja1Rh
cmdldFBpY2tlci5oOgorICAgICAgICAqIFdlYlZpZXcvV2ViTWVkaWFQbGF5YmFja1RhcmdldFBp
Y2tlci5tbToKKyAgICAgICAgKFdlYk1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXI6OnNob3dQbGF5
YmFja1RhcmdldFBpY2tlcik6CisgICAgICAgIChXZWJNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2Vy
OjpjdXN0b21QbGF5YmFja0FjdGlvblNlbGVjdGVkKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZp
ZXcubW06CisgICAgICAgICgtW1dlYlZpZXcgX3Nob3dQbGF5YmFja1RhcmdldFBpY2tlcjpsb2Nh
dGlvbjpoYXNWaWRlbzpdKToKKwogMjAxNi0wMi0yOSAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJh
c2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgdGhlIGV4cGVyaW1lbnRhbCBmZWF0dXJl
IG9mIGFudGlhbGlhc2VkIGZvbnQgZGlsYXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCAzNDY2MDRmZjRlMjU4
MDZkOTJjZmFiMzNiY2UyZDFiYjllODQzZGIyLi5mYmYyMTM0MjdhYjNkMDM2OGFjMGUyYzFlN2Fi
ZTIwYWIzZWI3ZDQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTYtMDItMjkgIEFk
YSBDaGFuICA8YWRhY2hhbkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRvcHQgdGhlIG5ldyB2ZXJz
aW9uIG9mIEFWT3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXIncyBzaG93TWVudUZvclJlY3QgbWV0
aG9kLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU0
ODIzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5
OjpzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJv
eHk6OmN1c3RvbVBsYXliYWNrQWN0aW9uU2VsZWN0ZWQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2Vz
LmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpzaG93UGxheWJhY2tUYXJn
ZXRQaWNrZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dlYlBhZ2VNYWMubW06CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2U6OmN1c3RvbVBsYXliYWNrQWN0aW9uU2VsZWN0ZWQpOgorCiAyMDE2LTAzLTAxICBDYXJs
b3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBOZXR3b3Jr
Q2FjaGU6IFdlYiBwcm9jZXNzIGxlYWtzIHJlc291cmNlIGJ1ZmZlciB3aGVuIHVzaW5nIHNoYXJl
YWJsZSByZWFzb3VyY2VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c2Vzc2lvbi9XZWJNZWRpYVNlc3Npb25NYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzZXNzaW9uL1dlYk1lZGlhU2Vzc2lvbk1hbmFnZXIuY3BwCmluZGV4IDdhMzM2OWYx
MGU1MzBlNGRjODdlNzE3ZDU2NzVmNzA5MTEzYjgwZTkuLjVhNThhMjk0YWUxN2U1ZDAyNzkwYjll
NjRkMjhiZDMwOWJkMDA4Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzZXNzaW9uL1dlYk1lZGlhU2Vzc2lvbk1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzZXNzaW9uL1dlYk1lZGlhU2Vzc2lvbk1hbmFnZXIuY3BwCkBAIC0xODAs
NyArMTgwLDcgQEAgdm9pZCBXZWJNZWRpYVNlc3Npb25NYW5hZ2VyOjpyZW1vdmVBbGxQbGF5YmFj
a1RhcmdldFBpY2tlckNsaWVudHMoV2ViTWVkaWFTZXNzaW8KICAgICBzY2hlZHVsZURlbGF5ZWRU
YXNrKFRhcmdldE1vbml0b3JpbmdDb25maWd1cmF0aW9uVGFzayB8IFRhcmdldENsaWVudHNDb25m
aWd1cmF0aW9uVGFzayk7CiB9CiAKLXZvaWQgV2ViTWVkaWFTZXNzaW9uTWFuYWdlcjo6c2hvd1Bs
YXliYWNrVGFyZ2V0UGlja2VyKFdlYk1lZGlhU2Vzc2lvbk1hbmFnZXJDbGllbnQmIGNsaWVudCwg
dWludDY0X3QgY29udGV4dElkLCBjb25zdCBJbnRSZWN0JiByZWN0LCBib29sKQordm9pZCBXZWJN
ZWRpYVNlc3Npb25NYW5hZ2VyOjpzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIoV2ViTWVkaWFTZXNz
aW9uTWFuYWdlckNsaWVudCYgY2xpZW50LCB1aW50NjRfdCBjb250ZXh0SWQsIGNvbnN0IEludFJl
Y3QmIHJlY3QsIGJvb2wsIGNvbnN0IFN0cmluZyYgY3VzdG9tTWVudUl0ZW1UaXRsZSkKIHsKICAg
ICBzaXplX3QgaW5kZXggPSBmaW5kKCZjbGllbnQsIGNvbnRleHRJZCk7CiAgICAgQVNTRVJUKGlu
ZGV4ICE9IG5vdEZvdW5kKTsKQEAgLTE5NSw3ICsxOTUsOCBAQCB2b2lkIFdlYk1lZGlhU2Vzc2lv
bk1hbmFnZXI6OnNob3dQbGF5YmFja1RhcmdldFBpY2tlcihXZWJNZWRpYVNlc3Npb25NYW5hZ2Vy
Q2xpZQogCiAgICAgYm9vbCBoYXNBY3RpdmVSb3V0ZSA9IGZsYWdzQXJlU2V0KG1fY2xpZW50U3Rh
dGVbaW5kZXhdLT5mbGFncywgTWVkaWFQcm9kdWNlcjo6SXNQbGF5aW5nVG9FeHRlcm5hbERldmlj
ZSk7CiAgICAgTE9HKE1lZGlhLCAiV2ViTWVkaWFTZXNzaW9uTWFuYWdlcjo6c2hvd1BsYXliYWNr
VGFyZ2V0UGlja2VyKCVwICsgJWxsdSkgLSBoYXNBY3RpdmVSb3V0ZSA9ICVpIiwgJmNsaWVudCwg
Y29udGV4dElkLCAoaW50KWhhc0FjdGl2ZVJvdXRlKTsKLSAgICB0YXJnZXRQaWNrZXIoKS5zaG93
UGxheWJhY2tUYXJnZXRQaWNrZXIoRmxvYXRSZWN0KHJlY3QpLCBoYXNBY3RpdmVSb3V0ZSk7CisK
KyAgICB0YXJnZXRQaWNrZXIoKS5zaG93UGxheWJhY2tUYXJnZXRQaWNrZXIoRmxvYXRSZWN0KHJl
Y3QpLCBoYXNBY3RpdmVSb3V0ZSwgY3VzdG9tTWVudUl0ZW1UaXRsZSk7CiB9CiAKIHZvaWQgV2Vi
TWVkaWFTZXNzaW9uTWFuYWdlcjo6Y2xpZW50U3RhdGVEaWRDaGFuZ2UoV2ViTWVkaWFTZXNzaW9u
TWFuYWdlckNsaWVudCYgY2xpZW50LCB1aW50NjRfdCBjb250ZXh0SWQsIE1lZGlhUHJvZHVjZXI6
Ok1lZGlhU3RhdGVGbGFncyBuZXdGbGFncykKQEAgLTI2OSw2ICsyNzAsMTcgQEAgdm9pZCBXZWJN
ZWRpYVNlc3Npb25NYW5hZ2VyOjpleHRlcm5hbE91dHB1dERldmljZUF2YWlsYWJsZURpZENoYW5n
ZShib29sIGF2YWlsYWIKICAgICAgICAgc3RhdGUtPmNsaWVudC5leHRlcm5hbE91dHB1dERldmlj
ZUF2YWlsYWJsZURpZENoYW5nZShzdGF0ZS0+Y29udGV4dElkLCBhdmFpbGFibGUpOwogfQogCit2
b2lkIFdlYk1lZGlhU2Vzc2lvbk1hbmFnZXI6OmN1c3RvbVBsYXliYWNrQWN0aW9uU2VsZWN0ZWQo
KQoreworICAgIGZvciAoYXV0byYgc3RhdGUgOiBtX2NsaWVudFN0YXRlKSB7CisgICAgICAgIGlm
ICghc3RhdGUtPnJlcXVlc3RlZFBpY2tlcikKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAg
ICAgIHN0YXRlLT5jbGllbnQuY3VzdG9tUGxheWJhY2tBY3Rpb25TZWxlY3RlZChzdGF0ZS0+Y29u
dGV4dElkKTsKKyAgICAgICAgc3RhdGUtPnJlcXVlc3RlZFBpY2tlciA9IGZhbHNlOworICAgIH0K
K30KKwogdm9pZCBXZWJNZWRpYVNlc3Npb25NYW5hZ2VyOjpjb25maWd1cmVOZXdDbGllbnRzKCkK
IHsKICAgICBmb3IgKGF1dG8mIHN0YXRlIDogbV9jbGllbnRTdGF0ZSkgewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vV2ViTWVkaWFTZXNzaW9uTWFuYWdl
ci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vV2ViTWVkaWFTZXNzaW9u
TWFuYWdlci5oCmluZGV4IDA1Nzc1NTZiYzM0NGRmOWY3NmFmMTRiMDhlMDQxYTA5OTNhZGZjMjUu
LmJlMDU3YjlhYzVmNzNkMmE1ZjI5NTE4MGVkNjIzMmNkZTJlOGY2NDEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL1dlYk1lZGlhU2Vzc2lvbk1hbmFnZXIu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9XZWJNZWRpYVNlc3Np
b25NYW5hZ2VyLmgKQEAgLTU1LDcgKzU1LDkgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JU
IHVpbnQ2NF90IGFkZFBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50KFdlYk1lZGlhU2Vzc2lvbk1h
bmFnZXJDbGllbnQmLCB1aW50NjRfdCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCByZW1vdmVQ
bGF5YmFja1RhcmdldFBpY2tlckNsaWVudChXZWJNZWRpYVNlc3Npb25NYW5hZ2VyQ2xpZW50Jiwg
dWludDY0X3QpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVtb3ZlQWxsUGxheWJhY2tUYXJn
ZXRQaWNrZXJDbGllbnRzKFdlYk1lZGlhU2Vzc2lvbk1hbmFnZXJDbGllbnQmKTsKLSAgICBXRUJD
T1JFX0VYUE9SVCB2b2lkIHNob3dQbGF5YmFja1RhcmdldFBpY2tlcihXZWJNZWRpYVNlc3Npb25N
YW5hZ2VyQ2xpZW50JiwgdWludDY0X3QsIGNvbnN0IEludFJlY3QmLCBib29sKTsKKworICAgIFdF
QkNPUkVfRVhQT1JUIHZvaWQgc2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKFdlYk1lZGlhU2Vzc2lv
bk1hbmFnZXJDbGllbnQmLCB1aW50NjRfdCwgY29uc3QgSW50UmVjdCYsIGJvb2wsIGNvbnN0IFN0
cmluZyYpOworCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBjbGllbnRTdGF0ZURpZENoYW5nZShX
ZWJNZWRpYVNlc3Npb25NYW5hZ2VyQ2xpZW50JiwgdWludDY0X3QsIFdlYkNvcmU6Ok1lZGlhUHJv
ZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyk7CiAKIHByb3RlY3RlZDoKQEAgLTczLDYgKzc1LDcgQEAg
cHJpdmF0ZToKICAgICAvLyBNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyOjpDbGllbnQKICAgICB2
aXJ0dWFsIHZvaWQgc2V0UGxheWJhY2tUYXJnZXQoUmVmPFdlYkNvcmU6Ok1lZGlhUGxheWJhY2tU
YXJnZXQ+JiYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBleHRlcm5hbE91dHB1dERldmlj
ZUF2YWlsYWJsZURpZENoYW5nZShib29sKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgY3Vz
dG9tUGxheWJhY2tBY3Rpb25TZWxlY3RlZCgpIG92ZXJyaWRlOwogCiAgICAgc2l6ZV90IGZpbmQo
V2ViTWVkaWFTZXNzaW9uTWFuYWdlckNsaWVudCosIHVpbnQ2NF90KTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vV2ViTWVkaWFTZXNzaW9uTWFuYWdl
ckNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vV2ViTWVkaWFT
ZXNzaW9uTWFuYWdlckNsaWVudC5oCmluZGV4IDU5NzQ1NDZkMWIxOTUwYjZmNGYwZTc0NTMwMTBl
NWM2YWE3NDE1MDAuLjBhZTdmZjYyOWFhMjc4MTZlYTdkMTIyZjc4ZDRkYTZkODE3MGVhYzcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL1dlYk1lZGlhU2Vz
c2lvbk1hbmFnZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vz
c2lvbi9XZWJNZWRpYVNlc3Npb25NYW5hZ2VyQ2xpZW50LmgKQEAgLTQzLDYgKzQzLDcgQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRQbGF5YmFja1RhcmdldCh1aW50NjRfdCwgUmVmPE1l
ZGlhUGxheWJhY2tUYXJnZXQ+JiYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZXh0ZXJuYWxPdXRw
dXREZXZpY2VBdmFpbGFibGVEaWRDaGFuZ2UodWludDY0X3QsIGJvb2wpID0gMDsKICAgICB2aXJ0
dWFsIHZvaWQgc2V0U2hvdWxkUGxheVRvUGxheWJhY2tUYXJnZXQodWludDY0X3QsIGJvb2wpID0g
MDsKKyAgICB2aXJ0dWFsIHZvaWQgY3VzdG9tUGxheWJhY2tBY3Rpb25TZWxlY3RlZCh1aW50NjRf
dCkgPSAwOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5j
cHAKaW5kZXggNjQ2MzZkMDdmZDI4NmM3MWJhOTM4NWQwNzY4MjcyM2ZiYWE3YWY1Ni4uZTJhZTU2
NjgzNjJkMTgzYmRjZDM3YTNkZTk4N2VlZmFkMGM0NjA1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQu
Y3BwCkBAIC02ODI4LDcgKzY4MjgsNyBAQCB2b2lkIERvY3VtZW50OjpyZW1vdmVQbGF5YmFja1Rh
cmdldFBpY2tlckNsaWVudChNZWRpYVBsYXliYWNrVGFyZ2V0Q2xpZW50JiBjbGllbgogICAgIHBh
Z2UtPnJlbW92ZVBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50KGNsaWVudElkKTsKIH0KIAotdm9p
ZCBEb2N1bWVudDo6c2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKE1lZGlhUGxheWJhY2tUYXJnZXRD
bGllbnQmIGNsaWVudCwgYm9vbCBpc1ZpZGVvKQordm9pZCBEb2N1bWVudDo6c2hvd1BsYXliYWNr
VGFyZ2V0UGlja2VyKE1lZGlhUGxheWJhY2tUYXJnZXRDbGllbnQmIGNsaWVudCwgYm9vbCBpc1Zp
ZGVvLCBjb25zdCBTdHJpbmcmIGN1c3RvbU1lbnVJdGVtVGl0bGUpCiB7CiAgICAgUGFnZSogcGFn
ZSA9IHRoaXMtPnBhZ2UoKTsKICAgICBpZiAoIXBhZ2UpCkBAIC02ODM4LDcgKzY4MzgsNyBAQCB2
b2lkIERvY3VtZW50OjpzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIoTWVkaWFQbGF5YmFja1Rhcmdl
dENsaWVudCYgY2xpZW50LCBib29sCiAgICAgaWYgKGl0ID09IG1fY2xpZW50VG9JRE1hcC5lbmQo
KSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgcGFnZS0+c2hvd1BsYXliYWNrVGFyZ2V0UGlja2Vy
KGl0LT52YWx1ZSwgdmlldygpLT5sYXN0S25vd25Nb3VzZVBvc2l0aW9uKCksIGlzVmlkZW8pOwor
ICAgIHBhZ2UtPnNob3dQbGF5YmFja1RhcmdldFBpY2tlcihpdC0+dmFsdWUsIHZpZXcoKS0+bGFz
dEtub3duTW91c2VQb3NpdGlvbigpLCBpc1ZpZGVvLCBjdXN0b21NZW51SXRlbVRpdGxlKTsKIH0K
IAogdm9pZCBEb2N1bWVudDo6cGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0ZURpZENoYW5n
ZShNZWRpYVBsYXliYWNrVGFyZ2V0Q2xpZW50JiBjbGllbnQsIE1lZGlhUHJvZHVjZXI6Ok1lZGlh
U3RhdGVGbGFncyBzdGF0ZSkKQEAgLTY4ODAsNiArNjg4MCwxMiBAQCB2b2lkIERvY3VtZW50Ojpz
ZXRTaG91bGRQbGF5VG9QbGF5YmFja1RhcmdldCh1aW50NjRfdCBjbGllbnRJZCwgYm9vbCBzaG91
bGRQbGF5KQogCiAgICAgaXQtPnZhbHVlLT5zZXRTaG91bGRQbGF5VG9QbGF5YmFja1RhcmdldChz
aG91bGRQbGF5KTsKIH0KKwordm9pZCBEb2N1bWVudDo6Y3VzdG9tUGxheWJhY2tBY3Rpb25TZWxl
Y3RlZCh1aW50NjRfdCBjbGllbnRJZCkKK3sKKyAgICBpZiAoYXV0byogY2xpZW50ID0gbV9pZFRv
Q2xpZW50TWFwLmdldChjbGllbnRJZCkpCisgICAgICAgIGNsaWVudC0+Y3VzdG9tUGxheWJhY2tB
Y3Rpb25TZWxlY3RlZCgpOworfQogI2VuZGlmIC8vIEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19U
QVJHRVQpCiAKICNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTikKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5k
ZXggZjVkYTcxNjdkNDkxNTM0OTVhNmQxNjhmZjE3ZDk0NTk3YzI0ZGVmYi4uNzhjNzY2OTY2OTZj
NWY1ZWJhMGZhNzE1NzIwYzcwMGYyNzkxZjRjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKQEAgLTEy
ODgsMTIgKzEyODgsMTUgQEAgcHVibGljOgogI2lmIEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19U
QVJHRVQpCiAgICAgdm9pZCBhZGRQbGF5YmFja1RhcmdldFBpY2tlckNsaWVudChNZWRpYVBsYXli
YWNrVGFyZ2V0Q2xpZW50Jik7CiAgICAgdm9pZCByZW1vdmVQbGF5YmFja1RhcmdldFBpY2tlckNs
aWVudChNZWRpYVBsYXliYWNrVGFyZ2V0Q2xpZW50Jik7Ci0gICAgdm9pZCBzaG93UGxheWJhY2tU
YXJnZXRQaWNrZXIoTWVkaWFQbGF5YmFja1RhcmdldENsaWVudCYsIGJvb2wpOworCisgICAgdm9p
ZCBzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIoTWVkaWFQbGF5YmFja1RhcmdldENsaWVudCYsIGJv
b2wsIGNvbnN0IFN0cmluZyYpOworCiAgICAgdm9pZCBwbGF5YmFja1RhcmdldFBpY2tlckNsaWVu
dFN0YXRlRGlkQ2hhbmdlKE1lZGlhUGxheWJhY2tUYXJnZXRDbGllbnQmLCBNZWRpYVByb2R1Y2Vy
OjpNZWRpYVN0YXRlRmxhZ3MpOwogCiAgICAgdm9pZCBzZXRQbGF5YmFja1RhcmdldCh1aW50NjRf
dCwgUmVmPE1lZGlhUGxheWJhY2tUYXJnZXQ+JiYpOwogICAgIHZvaWQgcGxheWJhY2tUYXJnZXRB
dmFpbGFiaWxpdHlEaWRDaGFuZ2UodWludDY0X3QsIGJvb2wpOwogICAgIHZvaWQgc2V0U2hvdWxk
UGxheVRvUGxheWJhY2tUYXJnZXQodWludDY0X3QsIGJvb2wpOworICAgIHZvaWQgY3VzdG9tUGxh
eWJhY2tBY3Rpb25TZWxlY3RlZCh1aW50NjRfdCk7CiAjZW5kaWYKIAogICAgIFNob3VsZE9wZW5F
eHRlcm5hbFVSTHNQb2xpY3kgc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeVRvUHJvcGFnYXRl
KCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCA2
NDFhZTYzM2JiMTkwZWQ0ZDIwZTkwZGMwZmNjOTI4MjU0OTQ5ZTJmLi5mNzMyNGNmMmM5MjhkNmZh
MzBhODllNGM0MzRjNGMzNTcwNjhmY2MxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxNZWRpYUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlh
RWxlbWVudC5jcHAKQEAgLTE1MCw2ICsxNTAsMTAgQEAKICNpbmNsdWRlIDxiaW5kaW5ncy9TY3Jp
cHRPYmplY3QuaD4KICNlbmRpZgogCisjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKKyNpbmNs
dWRlIDxXZWJLaXRBZGRpdGlvbnMvSFRNTE1lZGlhRWxlbWVudEFkZGl0aW9ucy5jcHA+CisjZW5k
aWYKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdGF0aWMgY29uc3QgZG91YmxlIFNlZWtSZXBl
YXREZWxheSA9IDAuMTsKQEAgLTUyMDEsNiArNTIwNSwxOSBAQCB2b2lkIEhUTUxNZWRpYUVsZW1l
bnQ6OnNldFNob3VsZFBsYXlUb1BsYXliYWNrVGFyZ2V0KGJvb2wgc2hvdWxkUGxheSkKICAgICBp
ZiAobV9wbGF5ZXIpCiAgICAgICAgIG1fcGxheWVyLT5zZXRTaG91bGRQbGF5VG9QbGF5YmFja1Rh
cmdldChzaG91bGRQbGF5KTsKIH0KKworI2lmICFVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQordm9p
ZCBIVE1MTWVkaWFFbGVtZW50OjpjdXN0b21QbGF5YmFja0FjdGlvblNlbGVjdGVkKCkKK3sKKyAg
ICBMT0coTWVkaWEsICJIVE1MTWVkaWFFbGVtZW50OjpjdXN0b21QbGF5YmFja0FjdGlvblNlbGVj
dGVkKCVwKSIsIHRoaXMpOworfQorCitTdHJpbmcgSFRNTE1lZGlhRWxlbWVudDo6cGxheWJhY2tU
YXJnZXRQaWNrZXJDdXN0b21BY3Rpb25OYW1lKCkgY29uc3QKK3sKKyAgICByZXR1cm4geyB9Owor
fQorI2VuZGlmCisKICNlbHNlIC8vIEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpCiAK
IGJvb2wgSFRNTE1lZGlhRWxlbWVudDo6d2Via2l0Q3VycmVudFBsYXliYWNrVGFyZ2V0SXNXaXJl
bGVzcygpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVs
ZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCmluZGV4IDQ4
YmZlMGQ0MjNlMjE1NDI0NWMzMDk1MjliNGIwZDlmYjFmMDk1NTkuLmZlMmFlMjcwMDYyMmYyMGNi
NTRlMmM2MjQ5MmY2YTQ4NjJiMGU4MDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTE1lZGlhRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxl
bWVudC5oCkBAIC0zNDQsNiArMzQ0LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBpc1Bs
YXlpbmdUb1dpcmVsZXNzUGxheWJhY2tUYXJnZXQoKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0
dWFsIHZvaWQgc2V0V2lyZWxlc3NQbGF5YmFja1RhcmdldChSZWY8TWVkaWFQbGF5YmFja1Rhcmdl
dD4mJikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHNldFNob3VsZFBsYXlUb1BsYXliYWNr
VGFyZ2V0KGJvb2wpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBjdXN0b21QbGF5YmFja0Fj
dGlvblNlbGVjdGVkKCkgb3ZlcnJpZGU7CisgICAgU3RyaW5nIHBsYXliYWNrVGFyZ2V0UGlja2Vy
Q3VzdG9tQWN0aW9uTmFtZSgpIGNvbnN0OwogI2VuZGlmCiAgICAgYm9vbCB3ZWJraXRDdXJyZW50
UGxheWJhY2tUYXJnZXRJc1dpcmVsZXNzKCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvTWVkaWFFbGVtZW50U2Vzc2lvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L01lZGlhRWxlbWVudFNlc3Npb24uY3BwCmluZGV4IDFhNGRlNjQwYTQ0NzA5OTc4NGFhZTI1YWNh
NzQ3NjFkZDI4NTc1Y2IuLmE0NzA0ZDI5ZjZiNzQyODYxZmEyZmQ0ZjA0MTU0MmVhYzM5NmYwM2Ug
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFFbGVtZW50U2Vzc2lvbi5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUVsZW1lbnRTZXNzaW9uLmNwcApAQCAtMzUs
NiArMzUsNyBAQAogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCiAj
aW5jbHVkZSAiSFRNTE1lZGlhRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxNZWRpYUVsZW1lbnRF
bnVtcy5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIkhUTUxWaWRlb0VsZW1l
bnQuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCkBAIC0yMDcsNyArMjA4LDggQEAgdm9pZCBNZWRp
YUVsZW1lbnRTZXNzaW9uOjpzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIoY29uc3QgSFRNTE1lZGlh
RWxlbWVudCYgZWxlbWUKICAgICB9CiAjZW5kaWYKIAotICAgIGVsZW1lbnQuZG9jdW1lbnQoKS5z
aG93UGxheWJhY2tUYXJnZXRQaWNrZXIoKnRoaXMsIGlzPEhUTUxWaWRlb0VsZW1lbnQ+KGVsZW1l
bnQpKTsKKyAgICBTdHJpbmcgY3VzdG9tTWVudUl0ZW1UaXRsZSA9IGVsZW1lbnQucGxheWJhY2tU
YXJnZXRQaWNrZXJDdXN0b21BY3Rpb25OYW1lKCk7CisgICAgZWxlbWVudC5kb2N1bWVudCgpLnNo
b3dQbGF5YmFja1RhcmdldFBpY2tlcigqdGhpcywgaXM8SFRNTFZpZGVvRWxlbWVudD4oZWxlbWVu
dCksIGN1c3RvbU1lbnVJdGVtVGl0bGUpOwogfQogCiBib29sIE1lZGlhRWxlbWVudFNlc3Npb246
Omhhc1dpcmVsZXNzUGxheWJhY2tUYXJnZXRzKGNvbnN0IEhUTUxNZWRpYUVsZW1lbnQmKSBjb25z
dApAQCAtMzMxLDYgKzMzMywxMSBAQCB2b2lkIE1lZGlhRWxlbWVudFNlc3Npb246OnNldFNob3Vs
ZFBsYXlUb1BsYXliYWNrVGFyZ2V0KGJvb2wgc2hvdWxkUGxheSkKICAgICBjbGllbnQoKS5zZXRT
aG91bGRQbGF5VG9QbGF5YmFja1RhcmdldChzaG91bGRQbGF5KTsKIH0KIAordm9pZCBNZWRpYUVs
ZW1lbnRTZXNzaW9uOjpjdXN0b21QbGF5YmFja0FjdGlvblNlbGVjdGVkKCkKK3sKKyAgICBjbGll
bnQoKS5jdXN0b21QbGF5YmFja0FjdGlvblNlbGVjdGVkKCk7Cit9CisKIHZvaWQgTWVkaWFFbGVt
ZW50U2Vzc2lvbjo6bWVkaWFTdGF0ZURpZENoYW5nZShjb25zdCBIVE1MTWVkaWFFbGVtZW50JiBl
bGVtZW50LCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mgc3RhdGUpCiB7CiAgICAgZWxl
bWVudC5kb2N1bWVudCgpLnBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50U3RhdGVEaWRDaGFuZ2Uo
KnRoaXMsIHN0YXRlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFFbGVt
ZW50U2Vzc2lvbi5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUVsZW1lbnRTZXNzaW9uLmgK
aW5kZXggMzUxY2IwZWJkZTUwMDIyYTVlY2JiYWNlNGM2YWQ1ZGJhMzQzOWE2NS4uNTZlNGYyZWM4
ODhjNWY4ZWRlY2NkMjE0YWFhN2Y3ODc5NDA5OTE4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9NZWRpYUVsZW1lbnRTZXNzaW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9N
ZWRpYUVsZW1lbnRTZXNzaW9uLmgKQEAgLTExMyw2ICsxMTMsNyBAQCBwcml2YXRlOgogICAgIHZp
cnR1YWwgdm9pZCBzZXRQbGF5YmFja1RhcmdldChSZWY8TWVkaWFQbGF5YmFja1RhcmdldD4mJikg
b3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGV4dGVybmFsT3V0cHV0RGV2aWNlQXZhaWxhYmxl
RGlkQ2hhbmdlKGJvb2wpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBzZXRTaG91bGRQbGF5
VG9QbGF5YmFja1RhcmdldChib29sKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgY3VzdG9t
UGxheWJhY2tBY3Rpb25TZWxlY3RlZCgpIG92ZXJyaWRlOwogI2VuZGlmCiAjaWYgUExBVEZPUk0o
SU9TKQogICAgIGJvb2wgcmVxdWlyZXNQbGF5YmFja1RhcmdldFJvdXRlTW9uaXRvcmluZygpIGNv
bnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGll
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKaW5kZXggNzIwY2YwOTEy
MTNiMmVkNmIxNjAwY2E2NTlmNDQxOWNjMzBmNWEzNS4uNzQ0MWUwZGIyNWU0OGQ4NzIyNTI3ZDZl
NmY5YzhiNjM0ZmEzMDQ0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVD
bGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCkBAIC00NTIs
NyArNDUyLDkgQEAgcHVibGljOgogI2lmIEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19UQVJHRVQp
CiAgICAgdmlydHVhbCB2b2lkIGFkZFBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50KHVpbnQ2NF90
IC8qY29udGV4dElkKi8pIHsgfQogICAgIHZpcnR1YWwgdm9pZCByZW1vdmVQbGF5YmFja1Rhcmdl
dFBpY2tlckNsaWVudCh1aW50NjRfdCAvKmNvbnRleHRJZCovKSB7IH0KLSAgICB2aXJ0dWFsIHZv
aWQgc2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKHVpbnQ2NF90IC8qY29udGV4dElkKi8sIGNvbnN0
IFdlYkNvcmU6OkludFBvaW50JiwgYm9vbCAvKiBpc1ZpZGVvICovKSB7IH0KKworICAgIHZpcnR1
YWwgdm9pZCBzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIodWludDY0X3QgLypjb250ZXh0SWQqLywg
Y29uc3QgV2ViQ29yZTo6SW50UG9pbnQmLCBib29sIC8qIGlzVmlkZW8gKi8sIGNvbnN0IFN0cmlu
ZyYgLypjdXN0b21NZW51SXRlbVRpdGxlKi8pIHsgfQorCiAgICAgdmlydHVhbCB2b2lkIHBsYXli
YWNrVGFyZ2V0UGlja2VyQ2xpZW50U3RhdGVEaWRDaGFuZ2UodWludDY0X3QgLypjb250ZXh0SWQq
LywgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQg
c2V0TW9ja01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJFbmFibGVkKGJvb2wpICB7IH0KICAgICB2
aXJ0dWFsIHZvaWQgc2V0TW9ja01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJTdGF0ZShjb25zdCBT
dHJpbmcmLCBXZWJDb3JlOjpNZWRpYVBsYXliYWNrVGFyZ2V0Q29udGV4dDo6U3RhdGUpIHsgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGFnZS5jcHAKaW5kZXggOGJkNDczZGNiYzQyOTM5ODIxZjJjYzU3NWUxNDcxMzk1ZGZi
YTUzNC4uNzM1MGM5M2ExNTkxYTBmMTkwZWZjMzU3NTIwOGU5MTMwYjkwMDBkNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1BhZ2UuY3BwCkBAIC0xODE3LDE1ICsxODE3LDE2IEBAIHZvaWQgUGFnZTo6cmVtb3ZlUGxheWJh
Y2tUYXJnZXRQaWNrZXJDbGllbnQodWludDY0X3QgY29udGV4dElkKQogICAgIGNocm9tZSgpLmNs
aWVudCgpLnJlbW92ZVBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50KGNvbnRleHRJZCk7CiB9CiAK
LXZvaWQgUGFnZTo6c2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKHVpbnQ2NF90IGNvbnRleHRJZCwg
Y29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGxvY2F0aW9uLCBib29sIGlzVmlkZW8pCit2b2lkIFBh
Z2U6OnNob3dQbGF5YmFja1RhcmdldFBpY2tlcih1aW50NjRfdCBjb250ZXh0SWQsIGNvbnN0IFdl
YkNvcmU6OkludFBvaW50JiBsb2NhdGlvbiwgYm9vbCBpc1ZpZGVvLCBjb25zdCBTdHJpbmcmIGN1
c3RvbU1lbnVJdGVtVGl0bGUpCiB7CiAjaWYgUExBVEZPUk0oSU9TKQogICAgIC8vIEZJWE1FOiBy
ZWZhY3RvciBpT1MgaW1wbGVtZW50YXRpb24uCiAgICAgVU5VU0VEX1BBUkFNKGNvbnRleHRJZCk7
CiAgICAgVU5VU0VEX1BBUkFNKGxvY2F0aW9uKTsKKyAgICBVTlVTRURfUEFSQU0oY3VzdG9tTWVu
dUl0ZW1UaXRsZSk7CiAgICAgY2hyb21lKCkuY2xpZW50KCkuc2hvd1BsYXliYWNrVGFyZ2V0UGlj
a2VyKGlzVmlkZW8pOwogI2Vsc2UKLSAgICBjaHJvbWUoKS5jbGllbnQoKS5zaG93UGxheWJhY2tU
YXJnZXRQaWNrZXIoY29udGV4dElkLCBsb2NhdGlvbiwgaXNWaWRlbyk7CisgICAgY2hyb21lKCku
Y2xpZW50KCkuc2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKGNvbnRleHRJZCwgbG9jYXRpb24sIGlz
VmlkZW8sIGN1c3RvbU1lbnVJdGVtVGl0bGUpOwogI2VuZGlmCiB9CiAKQEAgLTE4NjEsNiArMTg2
MiwxMiBAQCB2b2lkIFBhZ2U6OnNldFNob3VsZFBsYXlUb1BsYXliYWNrVGFyZ2V0KHVpbnQ2NF90
IGNsaWVudElkLCBib29sIHNob3VsZFBsYXkpCiAgICAgZm9yIChGcmFtZSogZnJhbWUgPSAmbWFp
bkZyYW1lKCk7IGZyYW1lOyBmcmFtZSA9IGZyYW1lLT50cmVlKCkudHJhdmVyc2VOZXh0KCkpCiAg
ICAgICAgIGZyYW1lLT5kb2N1bWVudCgpLT5zZXRTaG91bGRQbGF5VG9QbGF5YmFja1RhcmdldChj
bGllbnRJZCwgc2hvdWxkUGxheSk7CiB9CisKK3ZvaWQgUGFnZTo6Y3VzdG9tUGxheWJhY2tBY3Rp
b25TZWxlY3RlZCh1aW50NjRfdCBjb250ZXh0SWQpCit7CisgICAgZm9yIChGcmFtZSogZnJhbWUg
PSAmbWFpbkZyYW1lKCk7IGZyYW1lOyBmcmFtZSA9IGZyYW1lLT50cmVlKCkudHJhdmVyc2VOZXh0
KCkpCisgICAgICAgIGZyYW1lLT5kb2N1bWVudCgpLT5jdXN0b21QbGF5YmFja0FjdGlvblNlbGVj
dGVkKGNvbnRleHRJZCk7Cit9CiAjZW5kaWYKIAogV2hlZWxFdmVudFRlc3RUcmlnZ2VyJiBQYWdl
OjplbnN1cmVUZXN0VHJpZ2dlcigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Bh
Z2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCmluZGV4IGYwMWQ0ZDhmMjcxYjIyMWM4
ZDRhZWRlZWE5MjM4M2MyM2VkOWFmNzguLjBiMDZkMjFkZWRiNjkzODlkZmU5YWM3ZjM4NGZlMGY5
NThhMDZkOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCkBAIC00NzIsNyArNDcyLDkgQEAgcHVibGljOgogI2lm
IEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpCiAgICAgdm9pZCBhZGRQbGF5YmFja1Rh
cmdldFBpY2tlckNsaWVudCh1aW50NjRfdCk7CiAgICAgdm9pZCByZW1vdmVQbGF5YmFja1Rhcmdl
dFBpY2tlckNsaWVudCh1aW50NjRfdCk7Ci0gICAgdm9pZCBzaG93UGxheWJhY2tUYXJnZXRQaWNr
ZXIodWludDY0X3QsIGNvbnN0IEludFBvaW50JiwgYm9vbCk7CisKKyAgICB2b2lkIHNob3dQbGF5
YmFja1RhcmdldFBpY2tlcih1aW50NjRfdCwgY29uc3QgSW50UG9pbnQmLCBib29sLCBjb25zdCBT
dHJpbmcmKTsKKwogICAgIHZvaWQgcGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0ZURpZENo
YW5nZSh1aW50NjRfdCwgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzKTsKICAgICBXRUJD
T1JFX0VYUE9SVCB2b2lkIHNldE1vY2tNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyRW5hYmxlZChi
b29sKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldE1vY2tNZWRpYVBsYXliYWNrVGFyZ2V0
UGlja2VyU3RhdGUoY29uc3QgU3RyaW5nJiwgTWVkaWFQbGF5YmFja1RhcmdldENvbnRleHQ6OlN0
YXRlKTsKQEAgLTQ4MCw2ICs0ODIsNyBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBzZXRQbGF5YmFja1RhcmdldCh1aW50NjRfdCwgUmVmPE1lZGlhUGxheWJhY2tUYXJnZXQ+JiYp
OwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcGxheWJhY2tUYXJnZXRBdmFpbGFiaWxpdHlEaWRD
aGFuZ2UodWludDY0X3QsIGJvb2wpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0U2hvdWxk
UGxheVRvUGxheWJhY2tUYXJnZXQodWludDY0X3QsIGJvb2wpOworICAgIFdFQkNPUkVfRVhQT1JU
IHZvaWQgY3VzdG9tUGxheWJhY2tBY3Rpb25TZWxlY3RlZCh1aW50NjRfdCk7CiAjZW5kaWYKIAog
ICAgIFJlZlB0cjxXaGVlbEV2ZW50VGVzdFRyaWdnZXI+IHRlc3RUcmlnZ2VyKCkgY29uc3QgeyBy
ZXR1cm4gbV90ZXN0VHJpZ2dlcjsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uLmgKaW5kZXggMWJiYTZjYzdiYmJjN2EzYjM3ODkx
ZjU2ZmIyYWQxZjY5MWQwYmNkYS4uYzYzYzliN2Y3NTE4OTE4YmE4NTRjYTY4MzNmMDkyYjM1MGI2
YWNlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1N
ZWRpYVNlc3Npb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9QbGF0Zm9y
bU1lZGlhU2Vzc2lvbi5oCkBAIC0xMzUsNiArMTM1LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwg
dm9pZCBzZXRQbGF5YmFja1RhcmdldChSZWY8TWVkaWFQbGF5YmFja1RhcmdldD4mJikgb3ZlcnJp
ZGUgeyB9CiAgICAgdmlydHVhbCB2b2lkIGV4dGVybmFsT3V0cHV0RGV2aWNlQXZhaWxhYmxlRGlk
Q2hhbmdlKGJvb2wpIG92ZXJyaWRlIHsgfQogICAgIHZpcnR1YWwgdm9pZCBzZXRTaG91bGRQbGF5
VG9QbGF5YmFja1RhcmdldChib29sKSBvdmVycmlkZSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgY3Vz
dG9tUGxheWJhY2tBY3Rpb25TZWxlY3RlZCgpIG92ZXJyaWRlIHsgfQogI2VuZGlmCiAKICNpZiBQ
TEFURk9STShJT1MpCkBAIC0xOTcsNiArMTk4LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9v
bCBjYW5QbGF5VG9XaXJlbGVzc1BsYXliYWNrVGFyZ2V0KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7
IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNQbGF5aW5nVG9XaXJlbGVzc1BsYXliYWNrVGFyZ2V0KCkg
Y29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIHZvaWQgc2V0U2hvdWxkUGxheVRv
UGxheWJhY2tUYXJnZXQoYm9vbCkgeyB9CisgICAgdmlydHVhbCB2b2lkIGN1c3RvbVBsYXliYWNr
QWN0aW9uU2VsZWN0ZWQoKSB7IH0KIAogICAgIHZpcnR1YWwgY29uc3QgRG9jdW1lbnQqIGhvc3Rp
bmdEb2N1bWVudCgpIGNvbnN0ID0gMDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5YmFja1RhcmdldENsaWVudC5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5YmFja1RhcmdldENsaWVudC5oCmluZGV4IGEz
MDQyMWVhNmUwYjU5MjQwYWNiMTRhYzlmODJjYmY3MWFhNjM2MGIuLjA2NzU1OGUzNGNiYmNlZTAz
OWZhNGJiYTZkMTMwYTc3YWMxZWU4MDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL01lZGlhUGxheWJhY2tUYXJnZXRDbGllbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXliYWNrVGFyZ2V0Q2xpZW50LmgKQEAgLTQy
LDYgKzQyLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRQbGF5YmFja1RhcmdldChS
ZWY8TWVkaWFQbGF5YmFja1RhcmdldD4mJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBleHRlcm5h
bE91dHB1dERldmljZUF2YWlsYWJsZURpZENoYW5nZShib29sKSA9IDA7CiAgICAgdmlydHVhbCB2
b2lkIHNldFNob3VsZFBsYXlUb1BsYXliYWNrVGFyZ2V0KGJvb2wpID0gMDsKKyAgICB2aXJ0dWFs
IHZvaWQgY3VzdG9tUGxheWJhY2tBY3Rpb25TZWxlY3RlZCgpID0gMDsKIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlci5jcHAKaW5kZXggNDkzMTY4NmIz
MTUxMjc3MTYyNTA0ODg4YjcxNWUyODFhMjc1OTIwNi4uMzhhZWY1ZjQzYjc0NjMwMmQzMjVjNGZi
OWE3NWMxZWU1YmFiMDc3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlci5jcHAKQEAgLTU5LDYg
KzU5LDkgQEAgdm9pZCBNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyOjpwZW5kaW5nQWN0aW9uVGlt
ZXJGaXJlZCgpCiAKICAgICBpZiAocGVuZGluZ0FjdGlvbnMgJiBPdXRwdXREZXZpY2VBdmFpbGFi
aWxpdHlDaGFuZ2VkKQogICAgICAgICBtX2NsaWVudC0+ZXh0ZXJuYWxPdXRwdXREZXZpY2VBdmFp
bGFibGVEaWRDaGFuZ2UoZXh0ZXJuYWxPdXRwdXREZXZpY2VBdmFpbGFibGUoKSk7CisKKyAgICBp
ZiAocGVuZGluZ0FjdGlvbnMgJiBDdXN0b21QbGF5YmFja0FjdGlvblNlbGVjdGVkKQorICAgICAg
ICBtX2NsaWVudC0+Y3VzdG9tUGxheWJhY2tBY3Rpb25TZWxlY3RlZCgpOwogfQogCiB2b2lkIE1l
ZGlhUGxheWJhY2tUYXJnZXRQaWNrZXI6OmFkZFBlbmRpbmdBY3Rpb24oUGVuZGluZ0FjdGlvbkZs
YWdzIGFjdGlvbikKQEAgLTcwLDcgKzczLDcgQEAgdm9pZCBNZWRpYVBsYXliYWNrVGFyZ2V0UGlj
a2VyOjphZGRQZW5kaW5nQWN0aW9uKFBlbmRpbmdBY3Rpb25GbGFncyBhY3Rpb24pCiAgICAgbV9w
ZW5kaW5nQWN0aW9uVGltZXIuc3RhcnRPbmVTaG90KHBlbmRpbmdBY3Rpb25JbnRlcnZhbCk7CiB9
CiAKLXZvaWQgTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlcjo6c2hvd1BsYXliYWNrVGFyZ2V0UGlj
a2VyKGNvbnN0IEZsb2F0UmVjdCYsIGJvb2wpCit2b2lkIE1lZGlhUGxheWJhY2tUYXJnZXRQaWNr
ZXI6OnNob3dQbGF5YmFja1RhcmdldFBpY2tlcihjb25zdCBGbG9hdFJlY3QmLCBib29sLCBjb25z
dCBTdHJpbmcmKQogewogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5YmFja1RhcmdldFBpY2tl
ci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5YmFja1Rhcmdl
dFBpY2tlci5oCmluZGV4IGFmZTBiZDNlZTRmMGUzN2VmYjZhZTdlZTk1MDBjMDRjN2JmNjIyNDUu
LjU1MzQ3MmQ2YWFmMTQzOTM5OGYxOGQ4N2NiMmI1OTNkNjU1MDg1MzUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXIu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXliYWNrVGFy
Z2V0UGlja2VyLmgKQEAgLTQ1LDE5ICs0NSwyMSBAQCBwdWJsaWM6CiAgICAgcHVibGljOgogICAg
ICAgICB2aXJ0dWFsIHZvaWQgc2V0UGxheWJhY2tUYXJnZXQoUmVmPE1lZGlhUGxheWJhY2tUYXJn
ZXQ+JiYpID0gMDsKICAgICAgICAgdmlydHVhbCB2b2lkIGV4dGVybmFsT3V0cHV0RGV2aWNlQXZh
aWxhYmxlRGlkQ2hhbmdlKGJvb2wpID0gMDsKKyAgICAgICAgdmlydHVhbCB2b2lkIGN1c3RvbVBs
YXliYWNrQWN0aW9uU2VsZWN0ZWQoKSB7IH0KIAogICAgICAgICB2b2lkIGludmFsaWRhdGUoKTsK
ICAgICB9OwogCiAgICAgdmlydHVhbCB+TWVkaWFQbGF5YmFja1RhcmdldFBpY2tlcigpOwogCi0g
ICAgdmlydHVhbCB2b2lkIHNob3dQbGF5YmFja1RhcmdldFBpY2tlcihjb25zdCBGbG9hdFJlY3Qm
LCBib29sIGNoZWNrQWN0aXZlUm91dGUpOworICAgIHZpcnR1YWwgdm9pZCBzaG93UGxheWJhY2tU
YXJnZXRQaWNrZXIoY29uc3QgRmxvYXRSZWN0JiwgYm9vbCBjaGVja0FjdGl2ZVJvdXRlLCBjb25z
dCBTdHJpbmcmKTsKICAgICB2aXJ0dWFsIHZvaWQgc3RhcnRpbmdNb25pdG9yaW5nUGxheWJhY2tU
YXJnZXRzKCk7CiAgICAgdmlydHVhbCB2b2lkIHN0b3BNb25pdG9yaW5nUGxheWJhY2tUYXJnZXRz
KCk7CiAgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVQbGF5YmFja1RhcmdldHMoKTsKIAogICAg
IHZvaWQgYXZhaWxhYmxlRGV2aWNlc0RpZENoYW5nZSgpIHsgYWRkUGVuZGluZ0FjdGlvbihPdXRw
dXREZXZpY2VBdmFpbGFiaWxpdHlDaGFuZ2VkKTsgfQogICAgIHZvaWQgY3VycmVudERldmljZURp
ZENoYW5nZSgpIHsgYWRkUGVuZGluZ0FjdGlvbihDdXJyZW50RGV2aWNlRGlkQ2hhbmdlKTsgfQor
ICAgIHZvaWQgY3VzdG9tUGxheWJhY2tBY3Rpb25TZWxlY3RlZCgpIHsgYWRkUGVuZGluZ0FjdGlv
bihDdXN0b21QbGF5YmFja0FjdGlvblNlbGVjdGVkKTsgfQogCiBwcm90ZWN0ZWQ6CiAgICAgZXhw
bGljaXQgTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlcihDbGllbnQmKTsKQEAgLTY1LDYgKzY3LDcg
QEAgcHJvdGVjdGVkOgogICAgIGVudW0gQWN0aW9uVHlwZSB7CiAgICAgICAgIE91dHB1dERldmlj
ZUF2YWlsYWJpbGl0eUNoYW5nZWQgPSAxIDw8IDAsCiAgICAgICAgIEN1cnJlbnREZXZpY2VEaWRD
aGFuZ2UgPSAxIDw8IDEsCisgICAgICAgIEN1c3RvbVBsYXliYWNrQWN0aW9uU2VsZWN0ZWQgPSAx
IDw8IDIsCiAgICAgfTsKICAgICB0eXBlZGVmIHVuc2lnbmVkIFBlbmRpbmdBY3Rpb25GbGFnczsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1hYy5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5YmFja1RhcmdldFBp
Y2tlck1hYy5oCmluZGV4IDlhMTM4Njk2Nzc5NTFjMGNlMDEyOThiNzUxMmNmYTU3ZTVhZTExZWQu
LjYzZjVkMzBmZDZjYmI3MzVkOGIyNjVhYzc1MmY0ZjBmZmQ3OGU1ODEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxh
eWJhY2tUYXJnZXRQaWNrZXJNYWMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTWFjLmgKQEAg
LTQzLDcgKzQzLDggQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB+TWVkaWFQbGF5YmFja1Rhcmdl
dFBpY2tlck1hYygpOwogCi0gICAgdm9pZCBzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIoY29uc3Qg
RmxvYXRSZWN0JiwgYm9vbCBjaGVja0FjdGl2ZVJvdXRlKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFs
IHZvaWQgc2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKGNvbnN0IEZsb2F0UmVjdCYsIGJvb2wgY2hl
Y2tBY3RpdmVSb3V0ZSwgY29uc3QgU3RyaW5nJikgb3ZlcnJpZGU7CisKICAgICB2b2lkIHN0YXJ0
aW5nTW9uaXRvcmluZ1BsYXliYWNrVGFyZ2V0cygpIG92ZXJyaWRlOwogICAgIHZvaWQgc3RvcE1v
bml0b3JpbmdQbGF5YmFja1RhcmdldHMoKSBvdmVycmlkZTsKICAgICB2b2lkIGludmFsaWRhdGVQ
bGF5YmFja1RhcmdldHMoKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWJhY2tUYXJnZXRQaWNr
ZXJNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9NZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTWFjLm1tCmluZGV4IDEwYWFhNTBkMzhmODdi
NjRlNDM1NjNjM2U4Mzg0OTZiZWRlNTczMTQuLmFiN2ZmNGJjNDMzMWMzMjFlMDBmYjhkZWJiMWVj
MjFhMmNiMzNjZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJNYWMubW0KKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQ
bGF5YmFja1RhcmdldFBpY2tlck1hYy5tbQpAQCAtNTEsMTEgKzUxLDYgQEAgdXNpbmcgbmFtZXNw
YWNlIFdlYkNvcmU7CiBzdGF0aWMgTlNTdHJpbmcgKmV4dGVybmFsT3V0cHV0RGV2aWNlQXZhaWxh
YmxlS2V5TmFtZSA9IEAiZXh0ZXJuYWxPdXRwdXREZXZpY2VBdmFpbGFibGUiOwogc3RhdGljIE5T
U3RyaW5nICpleHRlcm5hbE91dHB1dERldmljZVBpY2tlZEtleU5hbWUgPSBAImV4dGVybmFsT3V0
cHV0RGV2aWNlUGlja2VkIjsKIAotLy8gRklYTUU6IHJlbW92ZSB0aGlzIG9uY2UgdGhlIGhlYWRl
cnMgYXJlIGF2YWlsYWJsZS4KLUBpbnRlcmZhY2UgQVZPdXRwdXREZXZpY2VNZW51Q29udHJvbGxl
ciAoRm9yd2FyZERlY2xhcmF0aW9uKQotLSAoQk9PTClzaG93TWVudUZvclJlY3Q6KE5TUmVjdClz
Y3JlZW5SZWN0IGFwcGVhcmFuY2VOYW1lOihOU1N0cmluZyAqKWFwcGVhcmFuY2VOYW1lIGFsbG93
UmVzZWxlY3Rpb25PZlNlbGVjdGVkT3V0cHV0RGV2aWNlOihCT09MKWFsbG93UmVzZWxlY3Rpb25P
ZlNlbGVjdGVkT3V0cHV0RGV2aWNlOwotQGVuZAotCiBAaW50ZXJmYWNlIFdlYkFWT3V0cHV0RGV2
aWNlTWVudUNvbnRyb2xsZXJIZWxwZXIgOiBOU09iamVjdCB7CiAgICAgTWVkaWFQbGF5YmFja1Rh
cmdldFBpY2tlck1hYyogbV9jYWxsYmFjazsKIH0KQEAgLTExNCw3ICsxMDksNyBAQCBBVk91dHB1
dERldmljZU1lbnVDb250cm9sbGVyVHlwZSAqTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1hYzo6
ZGV2aWNlUGlja2VyKCkKICAgICByZXR1cm4gbV9vdXRwdXREZXZpY2VNZW51Q29udHJvbGxlci5n
ZXQoKTsKIH0KIAotdm9pZCBNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTWFjOjpzaG93UGxheWJh
Y2tUYXJnZXRQaWNrZXIoY29uc3QgRmxvYXRSZWN0JiBsb2NhdGlvbiwgYm9vbCBjaGVja0FjdGl2
ZVJvdXRlKQordm9pZCBNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTWFjOjpzaG93UGxheWJhY2tU
YXJnZXRQaWNrZXIoY29uc3QgRmxvYXRSZWN0JiBsb2NhdGlvbiwgYm9vbCBjaGVja0FjdGl2ZVJv
dXRlLCBjb25zdCBTdHJpbmcmIGN1c3RvbU1lbnVJdGVtVGl0bGUpCiB7CiAgICAgaWYgKCFjbGll
bnQoKSB8fCBtX3Nob3dpbmdNZW51KQogICAgICAgICByZXR1cm47CkBAIC0xMjIsMTQgKzExNywy
OSBAQCB2b2lkIE1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJNYWM6OnNob3dQbGF5YmFja1Rhcmdl
dFBpY2tlcihjb25zdCBGbG9hdFJlY3QmIGxvYwogICAgIExPRyhNZWRpYSwgIk1lZGlhUGxheWJh
Y2tUYXJnZXRQaWNrZXJNYWM6OnNob3dQbGF5YmFja1RhcmdldFBpY2tlciAtIGNoZWNrQWN0aXZl
Um91dGUgPSAlaSIsIChpbnQpY2hlY2tBY3RpdmVSb3V0ZSk7CiAKICAgICBBVk91dHB1dERldmlj
ZU1lbnVDb250cm9sbGVyVHlwZSAqcGlja2VyID0gZGV2aWNlUGlja2VyKCk7Ci0gICAgaWYgKCFb
cGlja2VyIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3Ioc2hvd01lbnVGb3JSZWN0OmFwcGVh
cmFuY2VOYW1lOmFsbG93UmVzZWxlY3Rpb25PZlNlbGVjdGVkT3V0cHV0RGV2aWNlOildKQorICAg
IGlmICghW3BpY2tlciByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKHNob3dNZW51Rm9yUmVj
dDphcHBlYXJhbmNlTmFtZTphbGxvd1Jlc2VsZWN0aW9uT2ZTZWxlY3RlZE91dHB1dERldmljZTpj
dXN0b21NZW51SXRlbVRpdGxlOmN1c3RvbU1lbnVJdGVtRW5hYmxlZDopXSAmJiAhW3BpY2tlciBy
ZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKHNob3dNZW51Rm9yUmVjdDphcHBlYXJhbmNlTmFt
ZTphbGxvd1Jlc2VsZWN0aW9uT2ZTZWxlY3RlZE91dHB1dERldmljZTopXSkKICAgICAgICAgcmV0
dXJuOwogCiAgICAgbV9zaG93aW5nTWVudSA9IHRydWU7Ci0gICAgaWYgKFtwaWNrZXIgc2hvd01l
bnVGb3JSZWN0OmxvY2F0aW9uIGFwcGVhcmFuY2VOYW1lOk5TQXBwZWFyYW5jZU5hbWVWaWJyYW50
TGlnaHQgYWxsb3dSZXNlbGVjdGlvbk9mU2VsZWN0ZWRPdXRwdXREZXZpY2U6IWNoZWNrQWN0aXZl
Um91dGVdKSB7CisKKyAgICBpZiAoW3BpY2tlciByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9y
KHNob3dNZW51Rm9yUmVjdDphcHBlYXJhbmNlTmFtZTphbGxvd1Jlc2VsZWN0aW9uT2ZTZWxlY3Rl
ZE91dHB1dERldmljZTpjdXN0b21NZW51SXRlbVRpdGxlOmN1c3RvbU1lbnVJdGVtRW5hYmxlZDop
XSkgeworICAgICAgICBOU1N0cmluZyAqY3VzdG9tTWVudUl0ZW1UaXRsZU5TU3RyaW5nID0gY3Vz
dG9tTWVudUl0ZW1UaXRsZS5pc0VtcHR5KCkgPyBuaWwgOiAoTlNTdHJpbmcgKiljdXN0b21NZW51
SXRlbVRpdGxlOworICAgICAgICBzd2l0Y2ggKFtwaWNrZXIgc2hvd01lbnVGb3JSZWN0OmxvY2F0
aW9uIGFwcGVhcmFuY2VOYW1lOk5TQXBwZWFyYW5jZU5hbWVWaWJyYW50TGlnaHQgYWxsb3dSZXNl
bGVjdGlvbk9mU2VsZWN0ZWRPdXRwdXREZXZpY2U6IWNoZWNrQWN0aXZlUm91dGUgY3VzdG9tTWVu
dUl0ZW1UaXRsZTpjdXN0b21NZW51SXRlbVRpdGxlTlNTdHJpbmcgY3VzdG9tTWVudUl0ZW1FbmFi
bGVkOllFU10pIHsKKyAgICAgICAgY2FzZSBBVk91dHB1dERldmljZU1lbnVDb250cm9sbGVyU2Vs
ZWN0aW9uQ3VzdG9tTWVudUl0ZW06CisgICAgICAgICAgICBjdXN0b21QbGF5YmFja0FjdGlvblNl
bGVjdGVkKCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBVk91dHB1dERldmlj
ZU1lbnVDb250cm9sbGVyU2VsZWN0aW9uT3V0cHV0RGV2aWNlOgorICAgICAgICAgICAgaWYgKCFj
aGVja0FjdGl2ZVJvdXRlKQorICAgICAgICAgICAgICAgIGN1cnJlbnREZXZpY2VEaWRDaGFuZ2Uo
KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFWT3V0cHV0RGV2aWNlTWVudUNv
bnRyb2xsZXJTZWxlY3Rpb25Ob25lOgorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAg
ICB9IGVsc2UgaWYgKFtwaWNrZXIgc2hvd01lbnVGb3JSZWN0OmxvY2F0aW9uIGFwcGVhcmFuY2VO
YW1lOk5TQXBwZWFyYW5jZU5hbWVWaWJyYW50TGlnaHQgYWxsb3dSZXNlbGVjdGlvbk9mU2VsZWN0
ZWRPdXRwdXREZXZpY2U6IWNoZWNrQWN0aXZlUm91dGVdKSB7CiAgICAgICAgIGlmICghY2hlY2tB
Y3RpdmVSb3V0ZSkKICAgICAgICAgICAgIGN1cnJlbnREZXZpY2VEaWRDaGFuZ2UoKTsKICAgICB9
CisKICAgICBtX3Nob3dpbmdNZW51ID0gZmFsc2U7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWMuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWMu
aAppbmRleCA2ODVhNjdiNzA0Y2Q4NDlkMjBkZDJmOTVlMjE4M2Q3NzNjM2U3ZTRjLi5jNGMyNGQw
MDk3ZWEzZGM4M2Y0NGYzNDYwYTI0ZDJhYzdlZmM5NDM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tYWMvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFjLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1h
Yy5oCkBAIC03MCw3ICs3MCw3IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNl
dENhblBsYXlGYXN0UmV2ZXJzZShib29sKSBvdmVycmlkZSB7IH0KICAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIHNldEF1ZGlvTWVkaWFTZWxlY3Rpb25PcHRpb25zKGNvbnN0IFZlY3RvcjxXVEY6OlN0
cmluZz4mIC8qb3B0aW9ucyovLCB1aW50NjRfdCAvKnNlbGVjdGVkSW5kZXgqLykgb3ZlcnJpZGUg
eyB9CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRMZWdpYmxlTWVkaWFTZWxlY3Rpb25PcHRp
b25zKGNvbnN0IFZlY3RvcjxXVEY6OlN0cmluZz4mIC8qb3B0aW9ucyovLCB1aW50NjRfdCAvKnNl
bGVjdGVkSW5kZXgqLykgb3ZlcnJpZGUgeyB9Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRF
eHRlcm5hbFBsYXliYWNrKGJvb2wgLyplbmFibGVkKi8sIEV4dGVybmFsUGxheWJhY2tUYXJnZXRU
eXBlLCBXVEY6OlN0cmluZyAvKmxvY2FsaXplZERldmljZU5hbWUqLykgb3ZlcnJpZGUgeyB9Cisg
ICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRFeHRlcm5hbFBsYXliYWNrKGJvb2wgZW5hYmxlZCwg
RXh0ZXJuYWxQbGF5YmFja1RhcmdldFR5cGUsIFdURjo6U3RyaW5nIGxvY2FsaXplZERldmljZU5h
bWUpIG92ZXJyaWRlOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0V2lyZWxlc3NWaWRlb1Bs
YXliYWNrRGlzYWJsZWQoYm9vbCkgb3ZlcnJpZGUgeyB9CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2
b2lkIHNldHVwRnVsbHNjcmVlbihOU1ZpZXcmIGxheWVySG9zdGVkVmlldywgY29uc3QgSW50UmVj
dCYgaW5pdGlhbFJlY3QsIE5TV2luZG93ICpwYXJlbnRXaW5kb3csIEhUTUxNZWRpYUVsZW1lbnRF
bnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSwgYm9vbCBhbGxvd3NQaWN0dXJlSW5QaWN0dXJlUGxh
eWJhY2spOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYlZpZGVv
RnVsbHNjcmVlbkludGVyZmFjZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9X
ZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWMubW0KaW5kZXggMWZhZWMyNTlmNzc0YTY1ZjUy
OGQ0ZWIxOTEwYzMyMTNhYjc0MDZmYS4uNTJhNjcyZmZkOGFjYTJlMzQzNDJiN2ZlNGE0M2JlMmMz
NzBhMTEwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYlZpZGVv
RnVsbHNjcmVlbkludGVyZmFjZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
YWMvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFjLm1tCkBAIC05OSw2ICs5OSwxMCBAQCB2
b2lkIFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYzo6cHJlcGFyZWRUb1JldHVyblRvSW5s
aW5lKGJvb2wsIGNvbnN0IEludFJlYwogewogfQogCit2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbklu
dGVyZmFjZU1hYzo6c2V0RXh0ZXJuYWxQbGF5YmFjayhib29sLCBFeHRlcm5hbFBsYXliYWNrVGFy
Z2V0VHlwZSwgV1RGOjpTdHJpbmcpCit7Cit9CisKIGJvb2wgc3VwcG9ydHNQaWN0dXJlSW5QaWN0
dXJlKCkKIHsKICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tb2NrL01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJNb2NrLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21vY2svTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1vY2suY3BwCmlu
ZGV4IDc3NDI1OWQ3ODlmOTBmNmI4NGM0MDkwMTNkMTllOTQxMjQ3NjkzNDAuLjc2YjZhMDIxNWY3
NTAwZDQ2Y2Y2YTQ0NzY1MmMzMDhkOWMxODk2NzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21vY2svTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1vY2suY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1vY2su
Y3BwCkBAIC03MCw3ICs3MCw3IEBAIHZvaWQgTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1vY2s6
OnRpbWVyRmlyZWQoKQogICAgIGN1cnJlbnREZXZpY2VEaWRDaGFuZ2UoKTsKIH0KIAotdm9pZCBN
ZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTW9jazo6c2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKGNv
bnN0IEZsb2F0UmVjdCYsIGJvb2wgY2hlY2tBY3RpdmVSb3V0ZSkKK3ZvaWQgTWVkaWFQbGF5YmFj
a1RhcmdldFBpY2tlck1vY2s6OnNob3dQbGF5YmFja1RhcmdldFBpY2tlcihjb25zdCBGbG9hdFJl
Y3QmLCBib29sIGNoZWNrQWN0aXZlUm91dGUsIGNvbnN0IFN0cmluZyYpCiB7CiAgICAgaWYgKCFj
bGllbnQoKSB8fCBtX3Nob3dpbmdNZW51KQogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJNb2Nr
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01lZGlhUGxheWJhY2tUYXJnZXRQaWNr
ZXJNb2NrLmgKaW5kZXggMzVjYzk1NGIwNjU0ZTA3YWQ2Nzg4ZmZiMmRjNTA5M2I3OWYwZmRlMS4u
ZWFlNjNiNzE1MGY5OGZlNTE3ODQxNGJmNWVjZjc1ZTAwOWUzMWJjZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9NZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTW9jay5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTWVkaWFQbGF5YmFja1RhcmdldFBp
Y2tlck1vY2suaApAQCAtNDEsNyArNDEsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIH5NZWRp
YVBsYXliYWNrVGFyZ2V0UGlja2VyTW9jaygpOwogCi0gICAgdm9pZCBzaG93UGxheWJhY2tUYXJn
ZXRQaWNrZXIoY29uc3QgRmxvYXRSZWN0JiwgYm9vbCBjaGVja0FjdGl2ZVJvdXRlKSBvdmVycmlk
ZTsKKyAgICB2b2lkIHNob3dQbGF5YmFja1RhcmdldFBpY2tlcihjb25zdCBGbG9hdFJlY3QmLCBi
b29sIGNoZWNrQWN0aXZlUm91dGUsIGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlOwogICAgIHZvaWQg
c3RhcnRpbmdNb25pdG9yaW5nUGxheWJhY2tUYXJnZXRzKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBz
dG9wTW9uaXRvcmluZ1BsYXliYWNrVGFyZ2V0cygpIG92ZXJyaWRlOwogICAgIHZvaWQgaW52YWxp
ZGF0ZVBsYXliYWNrVGFyZ2V0cygpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vc3BpL2NvY29hL0FWS2l0U1BJLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9zcGkvY29jb2EvQVZLaXRTUEkuaAppbmRleCBiYmMyY2UyNjAzZTg2NzQ1ZjRiMWNkNmRiNmM2
NzU5YjJhNWJkMmU3Li40MmRiZTY2ZWJiMDJhNGNmMjc5YjA4NDQwMjQxMDU3Yzk5ODUwMTAyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcGkvY29jb2EvQVZLaXRTUEkuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcGkvY29jb2EvQVZLaXRTUEkuaApAQCAtMTM0
LDYgKzEzNCwxMyBAQCBOU19DTEFTU19BVkFJTEFCTEVfTUFDKDEwXzExKQogLSAodm9pZClzaG93
TWVudUZvclJlY3Q6KE5TUmVjdClzY3JlZW5SZWN0IGFwcGVhcmFuY2VOYW1lOihOU1N0cmluZyAq
KWFwcGVhcmFuY2VOYW1lOwogLSAoQk9PTClzaG93TWVudUZvclJlY3Q6KE5TUmVjdClzY3JlZW5S
ZWN0IGFwcGVhcmFuY2VOYW1lOihOU1N0cmluZyAqKWFwcGVhcmFuY2VOYW1lIGFsbG93UmVzZWxl
Y3Rpb25PZlNlbGVjdGVkT3V0cHV0RGV2aWNlOihCT09MKWFsbG93UmVzZWxlY3Rpb25PZlNlbGVj
dGVkT3V0cHV0RGV2aWNlOwogCit0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBBVk91dHB1dERl
dmljZU1lbnVDb250cm9sbGVyU2VsZWN0aW9uKSB7CisgICAgQVZPdXRwdXREZXZpY2VNZW51Q29u
dHJvbGxlclNlbGVjdGlvbk91dHB1dERldmljZSwKKyAgICBBVk91dHB1dERldmljZU1lbnVDb250
cm9sbGVyU2VsZWN0aW9uQ3VzdG9tTWVudUl0ZW0sCisgICAgQVZPdXRwdXREZXZpY2VNZW51Q29u
dHJvbGxlclNlbGVjdGlvbk5vbmUKK307CisKKy0gKEFWT3V0cHV0RGV2aWNlTWVudUNvbnRyb2xs
ZXJTZWxlY3Rpb24pc2hvd01lbnVGb3JSZWN0OihOU1JlY3Qpc2NyZWVuUmVjdCBhcHBlYXJhbmNl
TmFtZTooTlNTdHJpbmcgKilhcHBlYXJhbmNlTmFtZSBhbGxvd1Jlc2VsZWN0aW9uT2ZTZWxlY3Rl
ZE91dHB1dERldmljZTooQk9PTClhbGxvd1Jlc2VsZWN0aW9uT2ZTZWxlY3RlZE91dHB1dERldmlj
ZSBjdXN0b21NZW51SXRlbVRpdGxlOihOU1N0cmluZyAqKWN1c3RvbU1lbnVJdGVtVGl0bGUgY3Vz
dG9tTWVudUl0ZW1FbmFibGVkOihCT09MKWN1c3RvbU1lbnVJdGVtRW5hYmxlZDsKIEBlbmQKIAog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5oCmluZGV4IDIwYzA2ZTlkY2MxMDRmNGMzZTBmMTBlZDdhM2U4YmZlNzMxODljNDQuLjgzYjFj
MzJmYTZhZjA0NTE0MzBiZWI3MmE4ZDQ3MjcxZTZiZGUxMzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC0yMTMsNyArMjEz
LDcgQEAgcHVibGljOgogI2lmIEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpICYmICFQ
TEFURk9STShJT1MpCiAgICAgdm9pZCBhZGRQbGF5YmFja1RhcmdldFBpY2tlckNsaWVudCh1aW50
NjRfdCAvKmNvbnRleHRJZCovKSBvdmVycmlkZTsKICAgICB2b2lkIHJlbW92ZVBsYXliYWNrVGFy
Z2V0UGlja2VyQ2xpZW50KHVpbnQ2NF90IC8qY29udGV4dElkKi8pIG92ZXJyaWRlOwotICAgIHZv
aWQgc2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKHVpbnQ2NF90IC8qY29udGV4dElkKi8sIGNvbnN0
IFdlYkNvcmU6OkludFBvaW50JiwgYm9vbCAvKiBoYXNWaWRlbyAqLykgb3ZlcnJpZGU7CisgICAg
dm9pZCBzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIodWludDY0X3QgLypjb250ZXh0SWQqLywgY29u
c3QgV2ViQ29yZTo6SW50UG9pbnQmLCBib29sIC8qIGhhc1ZpZGVvICovLCBjb25zdCBTdHJpbmcm
KSBvdmVycmlkZTsKICAgICB2b2lkIHBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50U3RhdGVEaWRD
aGFuZ2UodWludDY0X3QgLypjb250ZXh0SWQqLywgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVk
aWFTdGF0ZUZsYWdzKSBvdmVycmlkZTsKICAgICB2b2lkIHNldE1vY2tNZWRpYVBsYXliYWNrVGFy
Z2V0UGlja2VyRW5hYmxlZChib29sKSBvdmVycmlkZTsKICAgICB2b2lkIHNldE1vY2tNZWRpYVBs
YXliYWNrVGFyZ2V0UGlja2VyU3RhdGUoY29uc3QgU3RyaW5nJiwgV2ViQ29yZTo6TWVkaWFQbGF5
YmFja1RhcmdldENvbnRleHQ6OlN0YXRlKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbSBiL1NvdXJjZS9XZWJL
aXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbQppbmRleCAwYzg1OTQwZTQy
ODZmMWVjYjU0ZGE2MjEzMjgzMjJiMTZhZTY5YjU1Li5hMjJiOTRlZWI3ODYyOTBhMGMyMGU0ZWU3
NzE3ZWM3NzEyZDkwYjEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnQubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tCkBAIC0xMDMyLDcgKzEwMzIsNyBAQCB2b2lkIFdlYkNo
cm9tZUNsaWVudDo6cmVtb3ZlUGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnQodWludDY0X3QgY29u
dGV4dElkKQogICAgIFttX3dlYlZpZXcgX3JlbW92ZVBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50
OmNvbnRleHRJZF07CiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50OjpzaG93UGxheWJhY2tUYXJn
ZXRQaWNrZXIodWludDY0X3QgY29udGV4dElkLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgbG9j
YXRpb24sIGJvb2wgaGFzVmlkZW8pCit2b2lkIFdlYkNocm9tZUNsaWVudDo6c2hvd1BsYXliYWNr
VGFyZ2V0UGlja2VyKHVpbnQ2NF90IGNvbnRleHRJZCwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQm
IGxvY2F0aW9uLCBib29sIGhhc1ZpZGVvLCBjb25zdCBTdHJpbmcmKQogewogICAgIFttX3dlYlZp
ZXcgX3Nob3dQbGF5YmFja1RhcmdldFBpY2tlcjpjb250ZXh0SWQgbG9jYXRpb246bG9jYXRpb24g
aGFzVmlkZW86aGFzVmlkZW9dOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2Vi
Vmlldy9XZWJNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyLmggYi9Tb3VyY2UvV2ViS2l0L21hYy9X
ZWJWaWV3L1dlYk1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXIuaAppbmRleCBkZDFlZDJjNDM1NGIy
YWM3ZjI3NDc5YjBmMGIxNjQ3NjU1NDFiYmYzLi44ZTU0MmY4MTY0NjQ5ZDFmMmI3NmU1NDIyZmVm
ZmZlNTEyOTM4OWVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYk1l
ZGlhUGxheWJhY2tUYXJnZXRQaWNrZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3
L1dlYk1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXIuaApAQCAtNDUsNyArNDUsNyBAQCBwdWJsaWM6
CiAKICAgICB2b2lkIGFkZFBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50KHVpbnQ2NF90KTsKICAg
ICB2b2lkIHJlbW92ZVBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50KHVpbnQ2NF90KTsKLSAgICB2
b2lkIHNob3dQbGF5YmFja1RhcmdldFBpY2tlcih1aW50NjRfdCwgY29uc3QgV2ViQ29yZTo6Rmxv
YXRSZWN0JiwgYm9vbCBoYXNWaWRlbyk7CisgICAgdm9pZCBzaG93UGxheWJhY2tUYXJnZXRQaWNr
ZXIodWludDY0X3QsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYsIGJvb2wgaGFzVmlkZW8sIGNv
bnN0IFN0cmluZyYpOwogICAgIHZvaWQgcGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0ZURp
ZENoYW5nZSh1aW50NjRfdCwgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdz
KTsKICAgICB2b2lkIHNldE1vY2tNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyRW5hYmxlZChib29s
KTsKICAgICB2b2lkIHNldE1vY2tNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyU3RhdGUoY29uc3Qg
U3RyaW5nJiwgV2ViQ29yZTo6TWVkaWFQbGF5YmFja1RhcmdldENvbnRleHQ6OlN0YXRlKTsKQEAg
LTU0LDYgKzU0LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRQbGF5YmFja1Rhcmdl
dCh1aW50NjRfdCwgUmVmPFdlYkNvcmU6Ok1lZGlhUGxheWJhY2tUYXJnZXQ+JiYpIG92ZXJyaWRl
OwogICAgIHZpcnR1YWwgdm9pZCBleHRlcm5hbE91dHB1dERldmljZUF2YWlsYWJsZURpZENoYW5n
ZSh1aW50NjRfdCwgYm9vbCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHNldFNob3VsZFBs
YXlUb1BsYXliYWNrVGFyZ2V0KHVpbnQ2NF90LCBib29sKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFs
IHZvaWQgY3VzdG9tUGxheWJhY2tBY3Rpb25TZWxlY3RlZCh1aW50NjRfdCkgb3ZlcnJpZGU7CiAK
ICAgICB2b2lkIGludmFsaWRhdGUoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMv
V2ViVmlldy9XZWJNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyLm1tIGIvU291cmNlL1dlYktpdC9t
YWMvV2ViVmlldy9XZWJNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyLm1tCmluZGV4IDZkOGNiZjU3
NWZmYTcwYmE2ZmU4ZjJmNzAwNjg1MzhmOWY5ZTJiMGYuLmVjYmY3MGYyYmJiNDU0ODc3YmMwOGUy
ZTBjODM0ZTJkYzljYTQyNGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcv
V2ViTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9X
ZWJWaWV3L1dlYk1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXIubW0KQEAgLTUxLDkgKzUxLDkgQEAg
dm9pZCBXZWJNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyOjpyZW1vdmVQbGF5YmFja1RhcmdldFBp
Y2tlckNsaWVudCh1aW50NjRfdCBjb24KICAgICBXZWJDb3JlOjpXZWJNZWRpYVNlc3Npb25NYW5h
Z2VyOjpzaGFyZWQoKS5yZW1vdmVQbGF5YmFja1RhcmdldFBpY2tlckNsaWVudCgqdGhpcywgY29u
dGV4dElkKTsKIH0KIAotdm9pZCBXZWJNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyOjpzaG93UGxh
eWJhY2tUYXJnZXRQaWNrZXIodWludDY0X3QgY29udGV4dElkLCBjb25zdCBXZWJDb3JlOjpGbG9h
dFJlY3QmIHJlY3QsIGJvb2wgaGFzVmlkZW8pCit2b2lkIFdlYk1lZGlhUGxheWJhY2tUYXJnZXRQ
aWNrZXI6OnNob3dQbGF5YmFja1RhcmdldFBpY2tlcih1aW50NjRfdCBjb250ZXh0SWQsIGNvbnN0
IFdlYkNvcmU6OkZsb2F0UmVjdCYgcmVjdCwgYm9vbCBoYXNWaWRlbywgY29uc3QgU3RyaW5nJiBj
dXN0b21NZW51SXRlbVRpdGxlKQogewotICAgIFdlYkNvcmU6OldlYk1lZGlhU2Vzc2lvbk1hbmFn
ZXI6OnNoYXJlZCgpLnNob3dQbGF5YmFja1RhcmdldFBpY2tlcigqdGhpcywgY29udGV4dElkLCBX
ZWJDb3JlOjpJbnRSZWN0KHJlY3QpLCBoYXNWaWRlbyk7CisgICAgV2ViQ29yZTo6V2ViTWVkaWFT
ZXNzaW9uTWFuYWdlcjo6c2hhcmVkKCkuc2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKCp0aGlzLCBj
b250ZXh0SWQsIFdlYkNvcmU6OkludFJlY3QocmVjdCksIGhhc1ZpZGVvLCBjdXN0b21NZW51SXRl
bVRpdGxlKTsKIH0KIAogdm9pZCBXZWJNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyOjpwbGF5YmFj
a1RhcmdldFBpY2tlckNsaWVudFN0YXRlRGlkQ2hhbmdlKHVpbnQ2NF90IGNvbnRleHRJZCwgV2Vi
Q29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIHN0YXRlKQpAQCAtOTUsNiArOTUs
MTQgQEAgdm9pZCBXZWJNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyOjpzZXRTaG91bGRQbGF5VG9Q
bGF5YmFja1RhcmdldCh1aW50NjRfdCBjb250ZXgKICAgICBtX3BhZ2UtPnNldFNob3VsZFBsYXlU
b1BsYXliYWNrVGFyZ2V0KGNvbnRleHRJZCwgc2hvdWxkUGxheSk7CiB9CiAKK3ZvaWQgV2ViTWVk
aWFQbGF5YmFja1RhcmdldFBpY2tlcjo6Y3VzdG9tUGxheWJhY2tBY3Rpb25TZWxlY3RlZCh1aW50
NjRfdCBjb250ZXh0SWQpCit7CisgICAgaWYgKCFtX3BhZ2UpCisgICAgICAgIHJldHVybjsKKwor
ICAgIG1fcGFnZS0+Y3VzdG9tUGxheWJhY2tBY3Rpb25TZWxlY3RlZChjb250ZXh0SWQpOworfQor
CiB2b2lkIFdlYk1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXI6OmludmFsaWRhdGUoKQogewogICAg
IG1fcGFnZSA9IG51bGxwdHI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3
L1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KaW5kZXgg
MWYxMWJlZmVjODg4MDJhYjE4MjI2ZTYwM2ZhYzFhM2M3MTc1MjZhMC4uNzc4OWY3ZGRkNzgxNmQz
ZmQ2MzExYjc0OTVjN2ZlYjk2M2YxY2U0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMv
V2ViVmlldy9XZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmll
dy5tbQpAQCAtODczOSw3ICs4NzM5LDcgQEAgYm9vbCBMYXllckZsdXNoQ29udHJvbGxlcjo6Zmx1
c2hMYXllcnMoKQogICAgICAgICByZXR1cm47CiAKICAgICBOU1JlY3QgcmVjdEluU2NyZWVuQ29v
cmRpbmF0ZXMgPSBbc2VsZi53aW5kb3cgY29udmVydFJlY3RUb1NjcmVlbjpOU01ha2VSZWN0KGxv
Y2F0aW9uLngoKSwgbG9jYXRpb24ueSgpLCAwLCAwKV07Ci0gICAgW3NlbGYgX2RldmljZVBpY2tl
cl0tPnNob3dQbGF5YmFja1RhcmdldFBpY2tlcihjbGllbnRJZCwgcmVjdEluU2NyZWVuQ29vcmRp
bmF0ZXMsIGhhc1ZpZGVvKTsKKyAgICBbc2VsZiBfZGV2aWNlUGlja2VyXS0+c2hvd1BsYXliYWNr
VGFyZ2V0UGlja2VyKGNsaWVudElkLCByZWN0SW5TY3JlZW5Db29yZGluYXRlcywgaGFzVmlkZW8s
IHsgfSk7CiB9CiAKIC0gKHZvaWQpX3BsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50U3RhdGVEaWRD
aGFuZ2U6KHVpbnQ2NF90KWNsaWVudElkIHN0YXRlOihXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpN
ZWRpYVN0YXRlRmxhZ3Mpc3RhdGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHAKaW5kZXggN2ZmYjQ2YjA0MjNjMzQyMzdhMGQ0Yjg1ODk2MDJiNTQzYWE0NzdjNi4uMzJm
ZTM0MGRhZTUyMjFkY2I3ZWJiOGFlZjI5MDc3NGFlMmVjOWU0NCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTYxMDYsOSArNjEwNiw5IEBAIHZvaWQgV2Vi
UGFnZVByb3h5OjpyZW1vdmVQbGF5YmFja1RhcmdldFBpY2tlckNsaWVudCh1aW50NjRfdCBjb250
ZXh0SWQpCiAgICAgbV9wYWdlQ2xpZW50Lm1lZGlhU2Vzc2lvbk1hbmFnZXIoKS5yZW1vdmVQbGF5
YmFja1RhcmdldFBpY2tlckNsaWVudCgqdGhpcywgY29udGV4dElkKTsKIH0KIAotdm9pZCBXZWJQ
YWdlUHJveHk6OnNob3dQbGF5YmFja1RhcmdldFBpY2tlcih1aW50NjRfdCBjb250ZXh0SWQsIGNv
bnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgcmVjdCwgYm9vbCBoYXNWaWRlbykKK3ZvaWQgV2ViUGFn
ZVByb3h5OjpzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIodWludDY0X3QgY29udGV4dElkLCBjb25z
dCBXZWJDb3JlOjpGbG9hdFJlY3QmIHJlY3QsIGJvb2wgaGFzVmlkZW8sIGNvbnN0IFN0cmluZyYg
Y3VzdG9tTWVudUl0ZW1UaXRsZSkKIHsKLSAgICBtX3BhZ2VDbGllbnQubWVkaWFTZXNzaW9uTWFu
YWdlcigpLnNob3dQbGF5YmFja1RhcmdldFBpY2tlcigqdGhpcywgY29udGV4dElkLCBtX3BhZ2VD
bGllbnQucm9vdFZpZXdUb1NjcmVlbihJbnRSZWN0KHJlY3QpKSwgaGFzVmlkZW8pOworICAgIG1f
cGFnZUNsaWVudC5tZWRpYVNlc3Npb25NYW5hZ2VyKCkuc2hvd1BsYXliYWNrVGFyZ2V0UGlja2Vy
KCp0aGlzLCBjb250ZXh0SWQsIG1fcGFnZUNsaWVudC5yb290Vmlld1RvU2NyZWVuKEludFJlY3Qo
cmVjdCkpLCBoYXNWaWRlbywgY3VzdG9tTWVudUl0ZW1UaXRsZSk7CiB9CiAKIHZvaWQgV2ViUGFn
ZVByb3h5OjpwbGF5YmFja1RhcmdldFBpY2tlckNsaWVudFN0YXRlRGlkQ2hhbmdlKHVpbnQ2NF90
IGNvbnRleHRJZCwgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIHN0YXRl
KQpAQCAtNjE0OSw2ICs2MTQ5LDE0IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpzZXRTaG91bGRQbGF5
VG9QbGF5YmFja1RhcmdldCh1aW50NjRfdCBjb250ZXh0SWQsIGJvb2wgc2hvdWxkCiAKICAgICBt
X3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlNldFNob3VsZFBsYXlUb1BsYXliYWNr
VGFyZ2V0KGNvbnRleHRJZCwgc2hvdWxkUGxheSksIG1fcGFnZUlEKTsKIH0KKwordm9pZCBXZWJQ
YWdlUHJveHk6OmN1c3RvbVBsYXliYWNrQWN0aW9uU2VsZWN0ZWQodWludDY0X3QgY29udGV4dElk
KQoreworICAgIGlmICghaXNWYWxpZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3Byb2Nl
c3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkN1c3RvbVBsYXliYWNrQWN0aW9uU2VsZWN0ZWQo
Y29udGV4dElkKSwgbV9wYWdlSUQpOworfQogI2VuZGlmCiAKIHZvaWQgV2ViUGFnZVByb3h5Ojpk
aWRDaGFuZ2VCYWNrZ3JvdW5kQ29sb3IoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5oCmluZGV4IGJlN2M2NDRjNTIzMjY1ZGEzZjA1NmE1MTg3MGY5Yjk3MzUwNzA5ZjQuLjVm
YjI1OWYxN2Y4YWE5NTQzZTcwMmU1MzhkOTEwNjk4ZTgzZDU2ZDYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTEwNjIsNyArMTA2Miw3IEBAIHB1YmxpYzoKICNp
ZiBFTkFCTEUoV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUKSAmJiAhUExBVEZPUk0oSU9TKQogICAg
IHZvaWQgYWRkUGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnQodWludDY0X3QpOwogICAgIHZvaWQg
cmVtb3ZlUGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnQodWludDY0X3QpOwotICAgIHZvaWQgc2hv
d1BsYXliYWNrVGFyZ2V0UGlja2VyKHVpbnQ2NF90LCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3Qm
LCBib29sIGhhc1ZpZGVvKTsKKyAgICB2b2lkIHNob3dQbGF5YmFja1RhcmdldFBpY2tlcih1aW50
NjRfdCwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiwgYm9vbCBoYXNWaWRlbywgY29uc3QgU3Ry
aW5nJik7CiAgICAgdm9pZCBwbGF5YmFja1RhcmdldFBpY2tlckNsaWVudFN0YXRlRGlkQ2hhbmdl
KHVpbnQ2NF90LCBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MpOwogICAg
IHZvaWQgc2V0TW9ja01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJFbmFibGVkKGJvb2wpOwogICAg
IHZvaWQgc2V0TW9ja01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJTdGF0ZShjb25zdCBTdHJpbmcm
LCBXZWJDb3JlOjpNZWRpYVBsYXliYWNrVGFyZ2V0Q29udGV4dDo6U3RhdGUpOwpAQCAtMTA3MSw2
ICsxMDcxLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRQbGF5YmFja1RhcmdldCh1
aW50NjRfdCwgUmVmPFdlYkNvcmU6Ok1lZGlhUGxheWJhY2tUYXJnZXQ+JiYpIG92ZXJyaWRlOwog
ICAgIHZpcnR1YWwgdm9pZCBleHRlcm5hbE91dHB1dERldmljZUF2YWlsYWJsZURpZENoYW5nZSh1
aW50NjRfdCwgYm9vbCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHNldFNob3VsZFBsYXlU
b1BsYXliYWNrVGFyZ2V0KHVpbnQ2NF90LCBib29sKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZv
aWQgY3VzdG9tUGxheWJhY2tBY3Rpb25TZWxlY3RlZCh1aW50NjRfdCkgb3ZlcnJpZGU7CiAjZW5k
aWYKIAogICAgIHZvaWQgZGlkQ2hhbmdlQmFja2dyb3VuZENvbG9yKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgppbmRleCAxNGU1MGY5
ZjNiMTMzN2YzOWY3OTE5Zjc2ZmMyM2NkYWM2ZmQ5ZDY1Li4xZmM0Njg0MGZmNTQzYmEyMDIzNDky
YTZhM2VmNWNiMGI0YWI3OTUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KQEAgLTQzNSw3ICs0MzUsNyBAQCBtZXNzYWdlcyAtPiBX
ZWJQYWdlUHJveHkgewogI2lmIEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpICYmICFQ
TEFURk9STShJT1MpCiAgICAgQWRkUGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnQodWludDY0X3Qg
Y29udGV4dElkKQogICAgIFJlbW92ZVBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50KHVpbnQ2NF90
IGNvbnRleHRJZCkKLSAgICBTaG93UGxheWJhY2tUYXJnZXRQaWNrZXIodWludDY0X3QgY2xpZW50
SWQsIFdlYkNvcmU6OkZsb2F0UmVjdCBwaWNrZXJMb2NhdGlvbiwgYm9vbCBoYXNWaWRlbykKKyAg
ICBTaG93UGxheWJhY2tUYXJnZXRQaWNrZXIodWludDY0X3QgY2xpZW50SWQsIFdlYkNvcmU6OkZs
b2F0UmVjdCBwaWNrZXJMb2NhdGlvbiwgYm9vbCBoYXNWaWRlbywgU3RyaW5nIGN1c3RvbU1lbnVJ
dGVtVGl0bGUpCiAgICAgUGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0ZURpZENoYW5nZSh1
aW50NjRfdCBjb250ZXh0SWQsIHVuc2lnbmVkIG1lZGlhU3RhdGUpCiAgICAgU2V0TW9ja01lZGlh
UGxheWJhY2tUYXJnZXRQaWNrZXJFbmFibGVkKGJvb2wgZW5hYmxlZCkKICAgICBTZXRNb2NrTWVk
aWFQbGF5YmFja1RhcmdldFBpY2tlclN0YXRlKFN0cmluZyBuYW1lLCB1bnNpZ25lZCBwaWNrZXJT
dGF0ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAppbmRleCBiZjU3Y2JmMjU2NDQ5YWQxZmFkYjkz
N2NiZmVhOWQ5MzU3MzU2M2UzLi5kMWI5ODU5ZWE5ZjQ0MDA3NmEzMzkzNDJjMjg5NTJlNjM4NDAz
YWZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkNocm9tZUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCkBAIC0xMDkyLDExICsxMDkyLDExIEBAIHZv
aWQgV2ViQ2hyb21lQ2xpZW50OjpyZW1vdmVQbGF5YmFja1RhcmdldFBpY2tlckNsaWVudCh1aW50
NjRfdCBjb250ZXh0SWQpCiB9CiAKIAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnNob3dQbGF5YmFj
a1RhcmdldFBpY2tlcih1aW50NjRfdCBjb250ZXh0SWQsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50
JiBwb3NpdGlvbiwgYm9vbCBpc1ZpZGVvKQordm9pZCBXZWJDaHJvbWVDbGllbnQ6OnNob3dQbGF5
YmFja1RhcmdldFBpY2tlcih1aW50NjRfdCBjb250ZXh0SWQsIGNvbnN0IFdlYkNvcmU6OkludFBv
aW50JiBwb3NpdGlvbiwgYm9vbCBpc1ZpZGVvLCBjb25zdCBTdHJpbmcmIGN1c3RvbU1lbnVJdGVt
VGl0bGUpCiB7CiAgICAgRnJhbWVWaWV3KiBmcmFtZVZpZXcgPSBtX3BhZ2UtPm1haW5GcmFtZSgp
LT52aWV3KCk7CiAgICAgRmxvYXRSZWN0IHJlY3QoZnJhbWVWaWV3LT5jb250ZW50c1RvUm9vdFZp
ZXcoZnJhbWVWaWV3LT53aW5kb3dUb0NvbnRlbnRzKHBvc2l0aW9uKSksIEZsb2F0U2l6ZSgpKTsK
LSAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6U2hvd1BsYXliYWNrVGFy
Z2V0UGlja2VyKGNvbnRleHRJZCwgcmVjdCwgaXNWaWRlbykpOworICAgIG1fcGFnZS0+c2VuZChN
ZXNzYWdlczo6V2ViUGFnZVByb3h5OjpTaG93UGxheWJhY2tUYXJnZXRQaWNrZXIoY29udGV4dElk
LCByZWN0LCBpc1ZpZGVvLCBjdXN0b21NZW51SXRlbVRpdGxlKSk7CiB9CiAKIHZvaWQgV2ViQ2hy
b21lQ2xpZW50OjpwbGF5YmFja1RhcmdldFBpY2tlckNsaWVudFN0YXRlRGlkQ2hhbmdlKHVpbnQ2
NF90IGNvbnRleHRJZCwgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIHN0
YXRlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggNzY0MTMwM2NmMjY4OWE0OWNmZjVjNmJlYmZl
NDk4YWNmODQ1OWU5Zi4uMmFkMjdlZmQzOGI4ZjFmYWI4ZTBjODU5MjA4NDNmNzU2MTE5Zjk4ZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC0zMTcsNyArMzE3LDcgQEAgcHJpdmF0ZToKICNpZiBF
TkFCTEUoV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUKSAmJiAhUExBVEZPUk0oSU9TKQogICAgIHZv
aWQgYWRkUGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnQodWludDY0X3QgLypjb250ZXh0SWQqLykg
b3ZlcnJpZGU7CiAgICAgdm9pZCByZW1vdmVQbGF5YmFja1RhcmdldFBpY2tlckNsaWVudCh1aW50
NjRfdCAvKmNvbnRleHRJZCovKSBvdmVycmlkZTsKLSAgICB2b2lkIHNob3dQbGF5YmFja1Rhcmdl
dFBpY2tlcih1aW50NjRfdCBjb250ZXh0SWQsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiwgYm9v
bCkgb3ZlcnJpZGU7CisgICAgdm9pZCBzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIodWludDY0X3Qg
Lypjb250ZXh0SWQqLywgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmLCBib29sLCBjb25zdCBTdHJp
bmcmKSBvdmVycmlkZTsKICAgICB2b2lkIHBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50U3RhdGVE
aWRDaGFuZ2UodWludDY0X3QsIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFn
cykgb3ZlcnJpZGU7CiAgICAgdm9pZCBzZXRNb2NrTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlckVu
YWJsZWQoYm9vbCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBzZXRNb2NrTWVkaWFQbGF5YmFja1Rhcmdl
dFBpY2tlclN0YXRlKGNvbnN0IFN0cmluZyYsIFdlYkNvcmU6Ok1lZGlhUGxheWJhY2tUYXJnZXRD
b250ZXh0OjpTdGF0ZSkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuaAppbmRleCA1ZmViYTA4MzZhYzc4NzZkNzlmMmU3YTZlOGJmMWIwYmMzNmQy
NDFjLi45NjU1NTRkZGI4OThjYzNjMmY2NTI2Y2E4NzgxMTk1NzJmYmQxN2MzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTExNjgsNiArMTE2OCw3
IEBAIHByaXZhdGU6CiAgICAgdm9pZCBwbGF5YmFja1RhcmdldFNlbGVjdGVkKHVpbnQ2NF90LCBj
b25zdCBXZWJDb3JlOjpNZWRpYVBsYXliYWNrVGFyZ2V0Q29udGV4dCYgb3V0cHV0RGV2aWNlKSBj
b25zdDsKICAgICB2b2lkIHBsYXliYWNrVGFyZ2V0QXZhaWxhYmlsaXR5RGlkQ2hhbmdlKHVpbnQ2
NF90LCBib29sKTsKICAgICB2b2lkIHNldFNob3VsZFBsYXlUb1BsYXliYWNrVGFyZ2V0KHVpbnQ2
NF90LCBib29sKTsKKyAgICB2b2lkIGN1c3RvbVBsYXliYWNrQWN0aW9uU2VsZWN0ZWQodWludDY0
X3QpOwogI2VuZGlmCiAKICAgICB2b2lkIGNsZWFyV2hlZWxFdmVudFRlc3RUcmlnZ2VyKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNz
YWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3Nh
Z2VzLmluCmluZGV4IDkwZTgxMDI4MzEyZjJhNjYzNDZiNTJiYTE2OTMwYjYwODk3MDc5ZTcuLjU2
NDNlMThjMWI3YWViNDUzM2ZkNmVlNjVmYTE4MmM3ZDU1MDhkY2QgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCkBAIC00
MTQsNiArNDE0LDcgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZSBMZWdhY3lSZWNlaXZlciB7CiAgICAg
UGxheWJhY2tUYXJnZXRTZWxlY3RlZCh1aW50NjRfdCBjb250ZXh0SWQsIFdlYkNvcmU6Ok1lZGlh
UGxheWJhY2tUYXJnZXRDb250ZXh0IHRhcmdldCkKICAgICBQbGF5YmFja1RhcmdldEF2YWlsYWJp
bGl0eURpZENoYW5nZSh1aW50NjRfdCBjb250ZXh0SWQsIGJvb2wgYXZhaWxhYmxlKQogICAgIFNl
dFNob3VsZFBsYXlUb1BsYXliYWNrVGFyZ2V0KHVpbnQ2NF90IGNvbnRleHRJZCwgYm9vbCBzaG91
bGRQbGF5KQorICAgIEN1c3RvbVBsYXliYWNrQWN0aW9uU2VsZWN0ZWQodWludDY0X3QgY29udGV4
dElkKQogI2VuZGlmCiAKICAgICBDbGVhcldoZWVsRXZlbnRUZXN0VHJpZ2dlcigpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dlYlBhZ2VNYWMubW0g
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dlYlBhZ2VNYWMubW0KaW5k
ZXggNTgyNWMyNjRjMjU5YWU4MDgxZjA1YmY3MDU4Y2NhZmRmY2YwODc5OS4uYmYxNzUxYjkzN2Jh
MTAzYTA0ZTM3OTc5ZTU5NzVjNGRhNDc4OTQ5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5tbQpAQCAtMTE1OSw2ICsxMTU5LDEx
IEBAIHZvaWQgV2ViUGFnZTo6c2V0U2hvdWxkUGxheVRvUGxheWJhY2tUYXJnZXQodWludDY0X3Qg
Y29udGV4dElkLCBib29sIHNob3VsZFBsYXkpCiB7CiAgICAgbV9wYWdlLT5zZXRTaG91bGRQbGF5
VG9QbGF5YmFja1RhcmdldChjb250ZXh0SWQsIHNob3VsZFBsYXkpOwogfQorCit2b2lkIFdlYlBh
Z2U6OmN1c3RvbVBsYXliYWNrQWN0aW9uU2VsZWN0ZWQodWludDY0X3QgY29udGV4dElkKQorewor
ICAgIG1fcGFnZS0+Y3VzdG9tUGxheWJhY2tBY3Rpb25TZWxlY3RlZChjb250ZXh0SWQpOworfQog
I2VuZGlmCiAKIAo=
</data>
<flag name="review"
          id="297367"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
      

    </bug>

</bugzilla>