<?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>214010</bug_id>
          
          <creation_ts>2020-07-06 15:46:21 -0700</creation_ts>
          <short_desc>Get rid of concept of &quot;initial connected gamepads&quot;</short_desc>
          <delta_ts>2020-07-06 18:35:16 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</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="Brady Eidson">beidson</reporter>
          <assigned_to name="Brady Eidson">beidson</assigned_to>
          <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1669203</commentid>
    <comment_count>0</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2020-07-06 15:46:21 -0700</bug_when>
    <thetext>Get rid of concept of &quot;initial connected gamepads&quot;

It was meant to manage the concept of when gamepads become visible to the page or not. But it&apos;s only used in the HID provider, not GameController provider, and it&apos;s not quite right anyways.

Everybody can get away with gamepad events instead having a &quot;make gamepads visible&quot; bit along with them.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1669218</commentid>
    <comment_count>1</comment_count>
      <attachid>403630</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2020-07-06 16:19:33 -0700</bug_when>
    <thetext>Created attachment 403630
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1669222</commentid>
    <comment_count>2</comment_count>
      <attachid>403630</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2020-07-06 16:24:13 -0700</bug_when>
    <thetext>Comment on attachment 403630
Patch

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

&gt; Source/WebCore/platform/gamepad/mac/HIDGamepadProvider.cpp:241
&gt; +        m_inputNotificationTimer.startOneShot(0_s);

Is this a potentially-forever-looping 0-delay timer‽ Very suspicious.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1669223</commentid>
    <comment_count>3</comment_count>
      <attachid>403632</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2020-07-06 16:24:47 -0700</bug_when>
    <thetext>Created attachment 403632
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1669225</commentid>
    <comment_count>4</comment_count>
      <attachid>403633</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2020-07-06 16:27:52 -0700</bug_when>
    <thetext>Created attachment 403633
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1669228</commentid>
    <comment_count>5</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2020-07-06 16:28:32 -0700</bug_when>
    <thetext>(In reply to Tim Horton from comment #2)
&gt; Comment on attachment 403630 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=403630&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/gamepad/mac/HIDGamepadProvider.cpp:241
&gt; &gt; +        m_inputNotificationTimer.startOneShot(0_s);
&gt; 
&gt; Is this a potentially-forever-looping 0-delay timer‽ Very suspicious.

There&apos;s &quot;Reasons&quot; why not a problem in practice, but making it explicit is also perfectly great :) (done in new patch)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1669278</commentid>
    <comment_count>6</comment_count>
      <attachid>403633</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2020-07-06 17:46:39 -0700</bug_when>
    <thetext>Comment on attachment 403633
Patch

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

&gt; Source/WebCore/platform/gamepad/mac/HIDGamepadProvider.cpp:241
&gt; +        if (!m_inputNotificationTimer.isActive())

I’m confused how this changes things. Aren’t we still in the callback for the timer that we’re starting here? (Thus if connected stays false we’ll reschedule it forever?)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1669284</commentid>
    <comment_count>7</comment_count>
      <attachid>403649</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2020-07-06 17:58:51 -0700</bug_when>
    <thetext>Created attachment 403649
For landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1669285</commentid>
    <comment_count>8</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2020-07-06 17:59:32 -0700</bug_when>
    <thetext>(In reply to Tim Horton from comment #6)
&gt; Comment on attachment 403633 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=403633&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/gamepad/mac/HIDGamepadProvider.cpp:241
&gt; &gt; +        if (!m_inputNotificationTimer.isActive())
&gt; 
&gt; I’m confused how this changes things. Aren’t we still in the callback for
&gt; the timer that we’re starting here? (Thus if connected stays false we’ll
&gt; reschedule it forever?)

The key is the timer fires, and sets the flag to true (and it never resets to false ever)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1669289</commentid>
    <comment_count>9</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-07-06 18:34:53 -0700</bug_when>
    <thetext>Committed r264004: &lt;https://trac.webkit.org/changeset/264004&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 403649.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1669290</commentid>
    <comment_count>10</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-07-06 18:35:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/65157303&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>403630</attachid>
            <date>2020-07-06 16:19:33 -0700</date>
            <delta_ts>2020-07-06 16:24:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>32959</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAxZjZkYTE5NjNlOC4uMDIyYjEzNzE5YWMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1MCBAQAorMjAyMC0wNy0wNiAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+
CisKKyAgICAgICAgR2V0IHJpZCBvZiBjb25jZXB0IG9mICJpbml0aWFsIGNvbm5lY3RlZCBnYW1l
cGFkcyIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIx
NDAxMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5v
IG5ldyB0ZXN0cyAoUmVmYWN0b3IsIG5vIGJlaGF2aW9yIGNoYW5nZSkKKworICAgICAgICBXaGVu
IGEgcGFnZSBzdGFydHMgdXNpbmcgZ2FtZXBhZHMgYW5kIHNvbWUgd2VyZSBhbHJlYWR5IGNvbm5l
Y3RlZCwgdGhpcyBjb25jZXB0CisgICAgICAgIHdhcyBtZWFudCB0byBtYW5hZ2Ugd2hlbiB0aGUg
YWxyZWFkeS1jb25uZWN0ZWQgZ2FtZXBhZHMgY291bGQgYmUgcmV2ZWFsZWQgdG8gdGhlIHBhZ2Uu
CisgICAgICAgIAorICAgICAgICBJdCBvYnZpb3VzbHkgd2Fzbid0IG5lZWRlZCwgYXMgb25seSB0
aGUgSElEIHByb3ZpZGVyIHVzZWQgdGhlbSAoR2FtZUNvbnRyb2xsZXIgcHJvdmlkZXIgZGlkbid0
KQorICAgICAgICAKKyAgICAgICAgSW5zdGVhZCwgd2Ugc2hvdWxkIGp1c3QgYWx3YXlzIGluY2x1
ZGUgYSAiZG9lcyB0aGlzIGV2ZW50IG1ha2UgZ2FtZXBhZHMgdmlzaWJsZT8iIGJpdC4KKyAgICAg
ICAgCisgICAgICAgIFRoaXMgY2xlYW5zIHVwIGEgbG90IG9mIHdlaXJkIGNvZGUgZ2V0cyBib3Ro
IHByb3ZpZGVycyB3b3JraW5nIGNsb3NlciB0byBlYWNoIG90aGVyLgorICAgICAgICAKKyAgICAg
ICAgKiBNb2R1bGVzL2dhbWVwYWQvR2FtZXBhZE1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6R2FtZXBhZE1hbmFnZXI6OnBsYXRmb3JtR2FtZXBhZENvbm5lY3RlZCk6CisgICAgICAgIChX
ZWJDb3JlOjpHYW1lcGFkTWFuYWdlcjo6cGxhdGZvcm1HYW1lcGFkSW5wdXRBY3Rpdml0eSk6Cisg
ICAgICAgICogTW9kdWxlcy9nYW1lcGFkL0dhbWVwYWRNYW5hZ2VyLmg6CisgICAgICAgIAorICAg
ICAgICAqIHBsYXRmb3JtL2dhbWVwYWQvR2FtZXBhZFByb3ZpZGVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkdhbWVwYWRQcm92aWRlcjo6ZGlzcGF0Y2hQbGF0Zm9ybUdhbWVwYWRJbnB1dEFjdGl2
aXR5KToKKyAgICAgICAgCisgICAgICAgICogcGxhdGZvcm0vZ2FtZXBhZC9HYW1lcGFkUHJvdmlk
ZXJDbGllbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkdhbWVwYWRQcm92aWRlckNsaWVudDo6c2V0
SW5pdGlhbENvbm5lY3RlZEdhbWVwYWRzKTogRGVsZXRlZC4KKyAgICAgICAgCisgICAgICAgICog
cGxhdGZvcm0vZ2FtZXBhZC9jb2NvYS9HYW1lQ29udHJvbGxlckdhbWVwYWRQcm92aWRlci5tbToK
KyAgICAgICAgKFdlYkNvcmU6OkdhbWVDb250cm9sbGVyR2FtZXBhZFByb3ZpZGVyOjpjb250cm9s
bGVyRGlkQ29ubmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpHYW1lQ29udHJvbGxlckdhbWVwYWRQ
cm92aWRlcjo6bWFrZUludmlzaWJpbGVHYW1lcGFkc1Zpc2libGUpOgorICAgICAgICAKKyAgICAg
ICAgKiBwbGF0Zm9ybS9nYW1lcGFkL21hYy9ISURHYW1lcGFkUHJvdmlkZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SElER2FtZXBhZFByb3ZpZGVyOjpISURHYW1lcGFkUHJvdmlkZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6SElER2FtZXBhZFByb3ZpZGVyOjppbml0aWFsR2FtZXBhZHNDb25uZWN0
ZWRUaW1lckZpcmVkKToKKyAgICAgICAgKFdlYkNvcmU6OkhJREdhbWVwYWRQcm92aWRlcjo6b3Bl
bkFuZFNjaGVkdWxlTWFuYWdlcik6CisgICAgICAgIChXZWJDb3JlOjpISURHYW1lcGFkUHJvdmlk
ZXI6OmNsb3NlQW5kVW5zY2hlZHVsZU1hbmFnZXIpOgorICAgICAgICAoV2ViQ29yZTo6SElER2Ft
ZXBhZFByb3ZpZGVyOjpkZXZpY2VBZGRlZCk6CisgICAgICAgIChXZWJDb3JlOjpISURHYW1lcGFk
UHJvdmlkZXI6OmRldmljZVJlbW92ZWQpOgorICAgICAgICAoV2ViQ29yZTo6SElER2FtZXBhZFBy
b3ZpZGVyOjppbnB1dE5vdGlmaWNhdGlvblRpbWVyRmlyZWQpOgorICAgICAgICAoV2ViQ29yZTo6
SElER2FtZXBhZFByb3ZpZGVyOjpjb25uZWN0aW9uRGVsYXlUaW1lckZpcmVkKTogRGVsZXRlZC4K
KyAgICAgICAgKiBwbGF0Zm9ybS9nYW1lcGFkL21hYy9ISURHYW1lcGFkUHJvdmlkZXIuaDoKKyAg
ICAgICAgCisgICAgICAgICogdGVzdGluZy9Nb2NrR2FtZXBhZFByb3ZpZGVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6Ok1vY2tHYW1lcGFkUHJvdmlkZXI6OmNvbm5lY3RNb2NrR2FtZXBhZCk6CisK
IDIwMjAtMDctMDIgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgogCiAgICAgICAg
IEdhbWVDb250cm9sbGVyLmZyYW1ld29yayBzb2Z0IGxpbmtpbmcgcmVmYWN0b3JpbmcKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2FtZXBhZC9HYW1lcGFkTWFuYWdlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dhbWVwYWQvR2FtZXBhZE1hbmFnZXIuY3BwCmluZGV4
IDlmNzI0OTY5NThlLi40YzcxYWU4NjRiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9nYW1lcGFkL0dhbWVwYWRNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2dhbWVwYWQvR2FtZXBhZE1hbmFnZXIuY3BwCkBAIC01Nyw4ICs1NywxMSBAQCBHYW1lcGFk
TWFuYWdlcjo6R2FtZXBhZE1hbmFnZXIoKQogewogfQogCi12b2lkIEdhbWVwYWRNYW5hZ2VyOjpw
bGF0Zm9ybUdhbWVwYWRDb25uZWN0ZWQoUGxhdGZvcm1HYW1lcGFkJiBwbGF0Zm9ybUdhbWVwYWQp
Cit2b2lkIEdhbWVwYWRNYW5hZ2VyOjpwbGF0Zm9ybUdhbWVwYWRDb25uZWN0ZWQoUGxhdGZvcm1H
YW1lcGFkJiBwbGF0Zm9ybUdhbWVwYWQsIEV2ZW50TWFrZXNHYW1lcGFkc1Zpc2libGUgZXZlbnRW
aXNpYmlsaXR5KQogeworICAgIGlmIChldmVudFZpc2liaWxpdHkgPT0gRXZlbnRNYWtlc0dhbWVw
YWRzVmlzaWJsZTo6Tm8pCisgICAgICAgIHJldHVybjsKKwogICAgIC8vIE5vdGlmeSBibGluZCBO
YXZpZ2F0b3JzIGFuZCBXaW5kb3dzIGFib3V0IGFsbCBnYW1lcGFkcyBleGNlcHQgZm9yIHRoaXMg
b25lLgogICAgIGZvciAoYXV0byogZ2FtZXBhZCA6IEdhbWVwYWRQcm92aWRlcjo6c2luZ2xldG9u
KCkucGxhdGZvcm1HYW1lcGFkcygpKSB7CiAgICAgICAgIGlmICghZ2FtZXBhZCB8fCBnYW1lcGFk
ID09ICZwbGF0Zm9ybUdhbWVwYWQpCkBAIC0xMTMsOSArMTE2LDkgQEAgdm9pZCBHYW1lcGFkTWFu
YWdlcjo6cGxhdGZvcm1HYW1lcGFkRGlzY29ubmVjdGVkKFBsYXRmb3JtR2FtZXBhZCYgcGxhdGZv
cm1HYW1lcGEKICAgICB9CiB9CiAKLXZvaWQgR2FtZXBhZE1hbmFnZXI6OnBsYXRmb3JtR2FtZXBh
ZElucHV0QWN0aXZpdHkoYm9vbCBzaG91bGRNYWtlR2FtZXBhZFZpc2libGUpCit2b2lkIEdhbWVw
YWRNYW5hZ2VyOjpwbGF0Zm9ybUdhbWVwYWRJbnB1dEFjdGl2aXR5KEV2ZW50TWFrZXNHYW1lcGFk
c1Zpc2libGUgZXZlbnRWaXNpYmlsaXR5KQogewotICAgIGlmICghc2hvdWxkTWFrZUdhbWVwYWRW
aXNpYmxlKQorICAgIGlmIChldmVudFZpc2liaWxpdHkgPT0gRXZlbnRNYWtlc0dhbWVwYWRzVmlz
aWJsZTo6Tm8pCiAgICAgICAgIHJldHVybjsKIAogICAgIGlmIChtX2dhbWVwYWRCbGluZE5hdmln
YXRvcnMuaXNFbXB0eSgpICYmIG1fZ2FtZXBhZEJsaW5kRE9NV2luZG93cy5pc0VtcHR5KCkpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dhbWVwYWQvR2FtZXBhZE1hbmFnZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2FtZXBhZC9HYW1lcGFkTWFuYWdlci5oCmluZGV4
IDQ1ZTgxMmFkYzU0Li44MzQzN2RhMWJiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9nYW1lcGFkL0dhbWVwYWRNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9nYW1lcGFkL0dhbWVwYWRNYW5hZ2VyLmgKQEAgLTQ0LDkgKzQ0LDkgQEAgY2xhc3MgR2FtZXBh
ZE1hbmFnZXIgOiBwdWJsaWMgR2FtZXBhZFByb3ZpZGVyQ2xpZW50IHsKIHB1YmxpYzoKICAgICBz
dGF0aWMgR2FtZXBhZE1hbmFnZXImIHNpbmdsZXRvbigpOwogCi0gICAgdm9pZCBwbGF0Zm9ybUdh
bWVwYWRDb25uZWN0ZWQoUGxhdGZvcm1HYW1lcGFkJikgZmluYWw7CisgICAgdm9pZCBwbGF0Zm9y
bUdhbWVwYWRDb25uZWN0ZWQoUGxhdGZvcm1HYW1lcGFkJiwgRXZlbnRNYWtlc0dhbWVwYWRzVmlz
aWJsZSkgZmluYWw7CiAgICAgdm9pZCBwbGF0Zm9ybUdhbWVwYWREaXNjb25uZWN0ZWQoUGxhdGZv
cm1HYW1lcGFkJikgZmluYWw7Ci0gICAgdm9pZCBwbGF0Zm9ybUdhbWVwYWRJbnB1dEFjdGl2aXR5
KGJvb2wgc2hvdWxkTWFrZUdhbWVwYWRWaXNpYmxlKSBmaW5hbDsKKyAgICB2b2lkIHBsYXRmb3Jt
R2FtZXBhZElucHV0QWN0aXZpdHkoRXZlbnRNYWtlc0dhbWVwYWRzVmlzaWJsZSkgZmluYWw7CiAK
ICAgICB2b2lkIHJlZ2lzdGVyTmF2aWdhdG9yKE5hdmlnYXRvckdhbWVwYWQqKTsKICAgICB2b2lk
IHVucmVnaXN0ZXJOYXZpZ2F0b3IoTmF2aWdhdG9yR2FtZXBhZCopOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2FtZXBhZC9HYW1lcGFkUHJvdmlkZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ2FtZXBhZC9HYW1lcGFkUHJvdmlkZXIuY3BwCmluZGV4IDc5YzQ3
YWY0NmYxLi5iMDE1MmEzYzhiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z2FtZXBhZC9HYW1lcGFkUHJvdmlkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dhbWVwYWQvR2FtZXBhZFByb3ZpZGVyLmNwcApAQCAtNTMsNyArNTMsNyBAQCB2b2lkIEdhbWVw
YWRQcm92aWRlcjo6c2V0U2hhcmVkUHJvdmlkZXIoR2FtZXBhZFByb3ZpZGVyJiBuZXdQcm92aWRl
cikKIHZvaWQgR2FtZXBhZFByb3ZpZGVyOjpkaXNwYXRjaFBsYXRmb3JtR2FtZXBhZElucHV0QWN0
aXZpdHkoKQogewogICAgIGZvciAoYXV0byYgY2xpZW50IDogbV9jbGllbnRzKQotICAgICAgICBj
bGllbnQtPnBsYXRmb3JtR2FtZXBhZElucHV0QWN0aXZpdHkobV9zaG91bGRNYWtlR2FtZXBhZHNW
aXNpYmxlKTsKKyAgICAgICAgY2xpZW50LT5wbGF0Zm9ybUdhbWVwYWRJbnB1dEFjdGl2aXR5KG1f
c2hvdWxkTWFrZUdhbWVwYWRzVmlzaWJsZSA/IEV2ZW50TWFrZXNHYW1lcGFkc1Zpc2libGU6Olll
cyA6IEV2ZW50TWFrZXNHYW1lcGFkc1Zpc2libGU6Ok5vICk7CiAKICAgICBtX3Nob3VsZE1ha2VH
YW1lcGFkc1Zpc2libGUgPSBmYWxzZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dhbWVwYWQvR2FtZXBhZFByb3ZpZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9nYW1lcGFkL0dhbWVwYWRQcm92aWRlckNsaWVudC5oCmluZGV4IDA2ZWM0OWFlZjNl
Li5jYTZhNzAzZTQxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2FtZXBh
ZC9HYW1lcGFkUHJvdmlkZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
YW1lcGFkL0dhbWVwYWRQcm92aWRlckNsaWVudC5oCkBAIC0zMywxNCArMzMsMTggQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBjbGFzcyBQbGF0Zm9ybUdhbWVwYWQ7CiAKK2VudW0gY2xhc3MgRXZl
bnRNYWtlc0dhbWVwYWRzVmlzaWJsZSA6IGJvb2wgeworICAgIE5vLAorICAgIFllcywKK307CisK
IGNsYXNzIEdhbWVwYWRQcm92aWRlckNsaWVudCB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+R2Ft
ZXBhZFByb3ZpZGVyQ2xpZW50KCkgPSBkZWZhdWx0OwogCi0gICAgdmlydHVhbCB2b2lkIHNldElu
aXRpYWxDb25uZWN0ZWRHYW1lcGFkcyhjb25zdCBWZWN0b3I8UGxhdGZvcm1HYW1lcGFkKj4mKSB7
IH0KLSAgICB2aXJ0dWFsIHZvaWQgcGxhdGZvcm1HYW1lcGFkQ29ubmVjdGVkKFBsYXRmb3JtR2Ft
ZXBhZCYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgcGxhdGZvcm1HYW1lcGFkQ29ubmVjdGVkKFBs
YXRmb3JtR2FtZXBhZCYsIEV2ZW50TWFrZXNHYW1lcGFkc1Zpc2libGUpID0gMDsKICAgICB2aXJ0
dWFsIHZvaWQgcGxhdGZvcm1HYW1lcGFkRGlzY29ubmVjdGVkKFBsYXRmb3JtR2FtZXBhZCYpID0g
MDsKLSAgICB2aXJ0dWFsIHZvaWQgcGxhdGZvcm1HYW1lcGFkSW5wdXRBY3Rpdml0eShib29sIHNo
b3VsZE1ha2VHYW1lcGFkVmlzaWJsZSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBwbGF0Zm9ybUdh
bWVwYWRJbnB1dEFjdGl2aXR5KEV2ZW50TWFrZXNHYW1lcGFkc1Zpc2libGUpID0gMDsKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dhbWVwYWQvY29jb2EvR2FtZUNvbnRyb2xsZXJHYW1lcGFkUHJvdmlkZXIubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9nYW1lcGFkL2NvY29hL0dhbWVDb250cm9sbGVyR2FtZXBhZFBy
b3ZpZGVyLm1tCmluZGV4IGQxN2QyNDkyOGZhLi40MzE4YjBiYTczZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2FtZXBhZC9jb2NvYS9HYW1lQ29udHJvbGxlckdhbWVwYWRQ
cm92aWRlci5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nYW1lcGFkL2NvY29hL0dh
bWVDb250cm9sbGVyR2FtZXBhZFByb3ZpZGVyLm1tCkBAIC03Myw3ICs3Myw3IEBAIHZvaWQgR2Ft
ZUNvbnRyb2xsZXJHYW1lcGFkUHJvdmlkZXI6OmNvbnRyb2xsZXJEaWRDb25uZWN0KEdDQ29udHJv
bGxlciAqY29udHJvbGxlCiAgICAgbWFrZUludmlzaWJpbGVHYW1lcGFkc1Zpc2libGUoKTsKIAog
ICAgIGZvciAoYXV0byYgY2xpZW50IDogbV9jbGllbnRzKQotICAgICAgICBjbGllbnQtPnBsYXRm
b3JtR2FtZXBhZENvbm5lY3RlZCgqbV9nYW1lcGFkVmVjdG9yW2luZGV4XSk7CisgICAgICAgIGNs
aWVudC0+cGxhdGZvcm1HYW1lcGFkQ29ubmVjdGVkKCptX2dhbWVwYWRWZWN0b3JbaW5kZXhdLCBF
dmVudE1ha2VzR2FtZXBhZHNWaXNpYmxlOjpZZXMpOwogfQogCiB2b2lkIEdhbWVDb250cm9sbGVy
R2FtZXBhZFByb3ZpZGVyOjpjb250cm9sbGVyRGlkRGlzY29ubmVjdChHQ0NvbnRyb2xsZXIgKmNv
bnRyb2xsZXIpCkBAIC0xNTEsNyArMTUxLDcgQEAgdm9pZCBHYW1lQ29udHJvbGxlckdhbWVwYWRQ
cm92aWRlcjo6bWFrZUludmlzaWJpbGVHYW1lcGFkc1Zpc2libGUoKQogewogICAgIGZvciAoYXV0
byogZ2FtZXBhZCA6IG1faW52aXNpYmxlR2FtZXBhZHMpIHsKICAgICAgICAgZm9yIChhdXRvJiBj
bGllbnQgOiBtX2NsaWVudHMpCi0gICAgICAgICAgICBjbGllbnQtPnBsYXRmb3JtR2FtZXBhZENv
bm5lY3RlZCgqZ2FtZXBhZCk7CisgICAgICAgICAgICBjbGllbnQtPnBsYXRmb3JtR2FtZXBhZENv
bm5lY3RlZCgqZ2FtZXBhZCwgRXZlbnRNYWtlc0dhbWVwYWRzVmlzaWJsZTo6WWVzKTsKICAgICB9
CiAKICAgICBtX2ludmlzaWJsZUdhbWVwYWRzLmNsZWFyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9nYW1lcGFkL21hYy9ISURHYW1lcGFkUHJvdmlkZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2FtZXBhZC9tYWMvSElER2FtZXBhZFByb3ZpZGVyLmNwcApp
bmRleCA2ZDE0YjZiMjE2MS4uNmFiNmNkMDhjNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dhbWVwYWQvbWFjL0hJREdhbWVwYWRQcm92aWRlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ2FtZXBhZC9tYWMvSElER2FtZXBhZFByb3ZpZGVyLmNwcApAQCAt
ODEsOCArODEsNyBAQCBISURHYW1lcGFkUHJvdmlkZXImIEhJREdhbWVwYWRQcm92aWRlcjo6c2lu
Z2xldG9uKCkKIH0KIAogSElER2FtZXBhZFByb3ZpZGVyOjpISURHYW1lcGFkUHJvdmlkZXIoKQot
ICAgIDogbV9zaG91bGREaXNwYXRjaENhbGxiYWNrcyhmYWxzZSkKLSAgICAsIG1fY29ubmVjdGlv
bkRlbGF5VGltZXIoKnRoaXMsICZISURHYW1lcGFkUHJvdmlkZXI6OmNvbm5lY3Rpb25EZWxheVRp
bWVyRmlyZWQpCisgICAgOiBtX2luaXRpYWxHYW1lcGFkc0Nvbm5lY3RlZFRpbWVyKCp0aGlzLCAm
SElER2FtZXBhZFByb3ZpZGVyOjppbml0aWFsR2FtZXBhZHNDb25uZWN0ZWRUaW1lckZpcmVkKQog
ICAgICwgbV9pbnB1dE5vdGlmaWNhdGlvblRpbWVyKCp0aGlzLCAmSElER2FtZXBhZFByb3ZpZGVy
OjppbnB1dE5vdGlmaWNhdGlvblRpbWVyRmlyZWQpCiB7CiAgICAgbV9tYW5hZ2VyID0gYWRvcHRD
RihJT0hJRE1hbmFnZXJDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwga0lPSElET3B0aW9uc1R5
cGVOb25lKSk7CkBAIC0xMjIsMTIgKzEyMSw5IEBAIHVuc2lnbmVkIEhJREdhbWVwYWRQcm92aWRl
cjo6aW5kZXhGb3JOZXdseUNvbm5lY3RlZERldmljZSgpCiAgICAgcmV0dXJuIGluZGV4OwogfQog
Ci12b2lkIEhJREdhbWVwYWRQcm92aWRlcjo6Y29ubmVjdGlvbkRlbGF5VGltZXJGaXJlZCgpCit2
b2lkIEhJREdhbWVwYWRQcm92aWRlcjo6aW5pdGlhbEdhbWVwYWRzQ29ubmVjdGVkVGltZXJGaXJl
ZCgpCiB7Ci0gICAgbV9zaG91bGREaXNwYXRjaENhbGxiYWNrcyA9IHRydWU7Ci0KLSAgICBmb3Ig
KGF1dG8qIGNsaWVudCA6IG1fY2xpZW50cykKLSAgICAgICAgY2xpZW50LT5zZXRJbml0aWFsQ29u
bmVjdGVkR2FtZXBhZHMobV9nYW1lcGFkVmVjdG9yKTsKKyAgICBtX2luaXRpYWxHYW1lcGFkc0Nv
bm5lY3RlZCA9IHRydWU7CiB9CiAKIHZvaWQgSElER2FtZXBhZFByb3ZpZGVyOjpvcGVuQW5kU2No
ZWR1bGVNYW5hZ2VyKCkKQEAgLTEzNywxNCArMTMzLDE0IEBAIHZvaWQgSElER2FtZXBhZFByb3Zp
ZGVyOjpvcGVuQW5kU2NoZWR1bGVNYW5hZ2VyKCkKICAgICBBU1NFUlQobV9nYW1lcGFkVmVjdG9y
LmlzRW1wdHkoKSk7CiAgICAgQVNTRVJUKG1fZ2FtZXBhZE1hcC5pc0VtcHR5KCkpOwogCi0gICAg
bV9zaG91bGREaXNwYXRjaENhbGxiYWNrcyA9IGZhbHNlOworICAgIG1faW5pdGlhbEdhbWVwYWRz
Q29ubmVjdGVkID0gZmFsc2U7CiAKICAgICBJT0hJRE1hbmFnZXJTY2hlZHVsZVdpdGhSdW5Mb29w
KG1fbWFuYWdlci5nZXQoKSwgQ0ZSdW5Mb29wR2V0Q3VycmVudCgpLCBrQ0ZSdW5Mb29wRGVmYXVs
dE1vZGUpOwogICAgIElPSElETWFuYWdlck9wZW4obV9tYW5hZ2VyLmdldCgpLCBrSU9ISURPcHRp
b25zVHlwZU5vbmUpOwogCiAgICAgLy8gQW55IGNvbm5lY3Rpb25zIHdlIGFyZSBub3RpZmllZCBv
ZiB3aXRoaW4gdGhlIGNvbm5lY3Rpb25EZWxheUludGVydmFsIG9mIGxpc3RlbmluZyBsaWtlbHkg
cmVwcmVzZW50CiAgICAgLy8gZGV2aWNlcyB0aGF0IHdlcmUgYWxyZWFkeSBjb25uZWN0ZWQsIHNv
IHdlIHN1cHByZXNzIG5vdGlmeWluZyBjbGllbnRzIG9mIHRoZXNlLgotICAgIG1fY29ubmVjdGlv
bkRlbGF5VGltZXIuc3RhcnRPbmVTaG90KGNvbm5lY3Rpb25EZWxheUludGVydmFsKTsKKyAgICBt
X2luaXRpYWxHYW1lcGFkc0Nvbm5lY3RlZFRpbWVyLnN0YXJ0T25lU2hvdChjb25uZWN0aW9uRGVs
YXlJbnRlcnZhbCk7CiB9CiAKIHZvaWQgSElER2FtZXBhZFByb3ZpZGVyOjpjbG9zZUFuZFVuc2No
ZWR1bGVNYW5hZ2VyKCkKQEAgLTE1Nyw3ICsxNTMsNyBAQCB2b2lkIEhJREdhbWVwYWRQcm92aWRl
cjo6Y2xvc2VBbmRVbnNjaGVkdWxlTWFuYWdlcigpCiAgICAgbV9nYW1lcGFkVmVjdG9yLmNsZWFy
KCk7CiAgICAgbV9nYW1lcGFkTWFwLmNsZWFyKCk7CiAKLSAgICBtX2Nvbm5lY3Rpb25EZWxheVRp
bWVyLnN0b3AoKTsKKyAgICBtX2luaXRpYWxHYW1lcGFkc0Nvbm5lY3RlZFRpbWVyLnN0b3AoKTsK
IH0KIAogdm9pZCBISURHYW1lcGFkUHJvdmlkZXI6OnN0YXJ0TW9uaXRvcmluZ0dhbWVwYWRzKEdh
bWVwYWRQcm92aWRlckNsaWVudCYgY2xpZW50KQpAQCAtMTk1LDIxICsxOTEsMTggQEAgdm9pZCBI
SURHYW1lcGFkUHJvdmlkZXI6OmRldmljZUFkZGVkKElPSElERGV2aWNlUmVmIGRldmljZSkKICAg
ICBtX2dhbWVwYWRWZWN0b3JbaW5kZXhdID0gZ2FtZXBhZC5nZXQoKTsKICAgICBtX2dhbWVwYWRN
YXAuc2V0KGRldmljZSwgV1RGTW92ZShnYW1lcGFkKSk7CiAKLSAgICBpZiAoIW1fc2hvdWxkRGlz
cGF0Y2hDYWxsYmFja3MpIHsKKyAgICBpZiAoIW1faW5pdGlhbEdhbWVwYWRzQ29ubmVjdGVkKSB7
CiAgICAgICAgIC8vIFRoaXMgYWRkZWQgZGV2aWNlIGlzIHRoZSByZXN1bHQgb2YgdXMgc3RhcnRp
bmcgdG8gbW9uaXRvciBnYW1lcGFkcy4KICAgICAgICAgLy8gV2UnbGwgZ2V0IG5vdGlmaWVkIG9m
IGFsbCBjb25uZWN0ZWQgZGV2aWNlcyBkdXJpbmcgdGhpcyBjdXJyZW50IHNwaW4gb2YgdGhlIHJ1
bmxvb3AKLSAgICAgICAgLy8gYW5kIHdlIGRvbid0IHdhbnQgdG8gdGVsbCB0aGUgY2xpZW50IGFi
b3V0IGFueSBvZiB0aGVtLgotICAgICAgICAvLyBUaGUgbV9jb25uZWN0aW9uRGVsYXlUaW1lciBm
aXJlcyBpbiBhIHN1YnNlcXVlbnQgc3BpbiBvZiB0aGUgcnVubG9vcCBhZnRlciB3aGljaAotICAg
ICAgICAvLyBhbnkgY29ubmVjdGlvbiBldmVudHMgYXJlIGFjdHVhbCBuZXcgZGV2aWNlcy4KLSAg
ICAgICAgbV9jb25uZWN0aW9uRGVsYXlUaW1lci5zdGFydE9uZVNob3QoMF9zKTsKLQotICAgICAg
ICBMT0coR2FtZXBhZCwgIkRldmljZSAlcCB3YXMgYWRkZWQgd2hpbGUgc3VwcHJlc3NpbmcgY2Fs
bGJhY2tzLCBzbyB0aGlzIHNob3VsZCBiZSBhbiAnYWxyZWFkeSBjb25uZWN0ZWQnIGV2ZW50Iiwg
ZGV2aWNlKTsKLQotICAgICAgICByZXR1cm47CisgICAgICAgIC8vIGFuZCB0aGUgY2xpZW50IHNo
b3VsZCBiZSB0b2xkIHRoZXkgd2VyZSBhbHJlYWR5IGNvbm5lY3RlZC4KKyAgICAgICAgLy8gVGhl
IG1faW5pdGlhbEdhbWVwYWRzQ29ubmVjdGVkVGltZXIgZmlyZXMgaW4gYSBzdWJzZXF1ZW50IHNw
aW4gb2YgdGhlIHJ1bmxvb3AgYWZ0ZXIgd2hpY2gKKyAgICAgICAgLy8gYW55IGNvbm5lY3Rpb24g
ZXZlbnRzIGFyZSBhY3R1YWwgbmV3IGRldmljZXMgYW5kIGNhbiB0cmlnZ2VyIGdhbWVwYWQgdmlz
aWJpbGl0eS4KKyAgICAgICAgaWYgKCFtX2luaXRpYWxHYW1lcGFkc0Nvbm5lY3RlZFRpbWVyLmlz
QWN0aXZlKCkpCisgICAgICAgICAgICBtX2luaXRpYWxHYW1lcGFkc0Nvbm5lY3RlZFRpbWVyLnN0
YXJ0T25lU2hvdCgwX3MpOwogICAgIH0KIAogICAgIGZvciAoYXV0byYgY2xpZW50IDogbV9jbGll
bnRzKQotICAgICAgICBjbGllbnQtPnBsYXRmb3JtR2FtZXBhZENvbm5lY3RlZCgqbV9nYW1lcGFk
VmVjdG9yW2luZGV4XSk7CisgICAgICAgIGNsaWVudC0+cGxhdGZvcm1HYW1lcGFkQ29ubmVjdGVk
KCptX2dhbWVwYWRWZWN0b3JbaW5kZXhdLCBtX2luaXRpYWxHYW1lcGFkc0Nvbm5lY3RlZCA/IEV2
ZW50TWFrZXNHYW1lcGFkc1Zpc2libGU6OlllcyA6IEV2ZW50TWFrZXNHYW1lcGFkc1Zpc2libGU6
Ok5vKTsKIH0KIAogdm9pZCBISURHYW1lcGFkUHJvdmlkZXI6OmRldmljZVJlbW92ZWQoSU9ISURE
ZXZpY2VSZWYgZGV2aWNlKQpAQCAtMjE5LDEwICsyMTIsNiBAQCB2b2lkIEhJREdhbWVwYWRQcm92
aWRlcjo6ZGV2aWNlUmVtb3ZlZChJT0hJRERldmljZVJlZiBkZXZpY2UpCiAgICAgc3RkOjp1bmlx
dWVfcHRyPEhJREdhbWVwYWQ+IHJlbW92ZWRHYW1lcGFkID0gcmVtb3ZlR2FtZXBhZEZvckRldmlj
ZShkZXZpY2UpOwogICAgIEFTU0VSVChyZW1vdmVkR2FtZXBhZCk7CiAKLSAgICAvLyBBbnkgdGlt
ZSB3ZSBnZXQgYSBkZXZpY2UgcmVtb3ZlZCBjYWxsYmFjayB3ZSBrbm93IGl0J3MgYSByZWFsIGV2
ZW50IGFuZCBub3QgYW4gJ2FscmVhZHkgY29ubmVjdGVkJyBldmVudC4KLSAgICAvLyBXZSBzaG91
bGQgYWx3YXlzIHN0b3Agc3VwcHJlc3NpbmcgY2FsbGJhY2tzIHdoZW4gd2UgcmVjZWl2ZSBzdWNo
IGFuIGV2ZW50LgotICAgIG1fc2hvdWxkRGlzcGF0Y2hDYWxsYmFja3MgPSB0cnVlOwotCiAgICAg
Zm9yIChhdXRvJiBjbGllbnQgOiBtX2NsaWVudHMpCiAgICAgICAgIGNsaWVudC0+cGxhdGZvcm1H
YW1lcGFkRGlzY29ubmVjdGVkKCpyZW1vdmVkR2FtZXBhZCk7CiB9CkBAIC0yNDgsOCArMjM3LDEw
IEBAIHZvaWQgSElER2FtZXBhZFByb3ZpZGVyOjp2YWx1ZXNDaGFuZ2VkKElPSElEVmFsdWVSZWYg
dmFsdWUpCiAKIHZvaWQgSElER2FtZXBhZFByb3ZpZGVyOjppbnB1dE5vdGlmaWNhdGlvblRpbWVy
RmlyZWQoKQogewotICAgIGlmICghbV9zaG91bGREaXNwYXRjaENhbGxiYWNrcykKKyAgICBpZiAo
IW1faW5pdGlhbEdhbWVwYWRzQ29ubmVjdGVkKSB7CisgICAgICAgIG1faW5wdXROb3RpZmljYXRp
b25UaW1lci5zdGFydE9uZVNob3QoMF9zKTsKICAgICAgICAgcmV0dXJuOworICAgIH0KIAogICAg
IGRpc3BhdGNoUGxhdGZvcm1HYW1lcGFkSW5wdXRBY3Rpdml0eSgpOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2FtZXBhZC9tYWMvSElER2FtZXBhZFByb3ZpZGVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nYW1lcGFkL21hYy9ISURHYW1lcGFkUHJvdmlkZXIu
aAppbmRleCBmZDVmZGU5MWI2NC4uMWJiNTRlZTU2MWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dhbWVwYWQvbWFjL0hJREdhbWVwYWRQcm92aWRlci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dhbWVwYWQvbWFjL0hJREdhbWVwYWRQcm92aWRlci5oCkBAIC02
NCw3ICs2NCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBvcGVuQW5kU2NoZWR1bGVNYW5hZ2VyKCk7
CiAgICAgdm9pZCBjbG9zZUFuZFVuc2NoZWR1bGVNYW5hZ2VyKCk7CiAKLSAgICB2b2lkIGNvbm5l
Y3Rpb25EZWxheVRpbWVyRmlyZWQoKTsKKyAgICB2b2lkIGluaXRpYWxHYW1lcGFkc0Nvbm5lY3Rl
ZFRpbWVyRmlyZWQoKTsKICAgICB2b2lkIGlucHV0Tm90aWZpY2F0aW9uVGltZXJGaXJlZCgpOwog
CiAgICAgdW5zaWduZWQgaW5kZXhGb3JOZXdseUNvbm5lY3RlZERldmljZSgpOwpAQCAtNzQsOSAr
NzQsOSBAQCBwcml2YXRlOgogCiAgICAgUmV0YWluUHRyPElPSElETWFuYWdlclJlZj4gbV9tYW5h
Z2VyOwogCi0gICAgYm9vbCBtX3Nob3VsZERpc3BhdGNoQ2FsbGJhY2tzOworICAgIGJvb2wgbV9p
bml0aWFsR2FtZXBhZHNDb25uZWN0ZWQgeyBmYWxzZSB9OwogCi0gICAgVGltZXIgbV9jb25uZWN0
aW9uRGVsYXlUaW1lcjsKKyAgICBUaW1lciBtX2luaXRpYWxHYW1lcGFkc0Nvbm5lY3RlZFRpbWVy
OwogICAgIFRpbWVyIG1faW5wdXROb3RpZmljYXRpb25UaW1lcjsKIH07CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja0dhbWVwYWRQcm92aWRlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL01vY2tHYW1lcGFkUHJvdmlkZXIuY3BwCmluZGV4IDYxNTBmNTJhM2Zh
Li42YjExNmU3NjI1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrR2Ft
ZXBhZFByb3ZpZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tHYW1lcGFk
UHJvdmlkZXIuY3BwCkBAIC04Nyw3ICs4Nyw3IEBAIGJvb2wgTW9ja0dhbWVwYWRQcm92aWRlcjo6
Y29ubmVjdE1vY2tHYW1lcGFkKHVuc2lnbmVkIGluZGV4KQogICAgIG1fY29ubmVjdGVkR2FtZXBh
ZFZlY3RvcltpbmRleF0gPSBtX21vY2tHYW1lcGFkVmVjdG9yW2luZGV4XS5nZXQoKTsKIAogICAg
IGZvciAoYXV0byYgY2xpZW50IDogbV9jbGllbnRzKQotICAgICAgICBjbGllbnQtPnBsYXRmb3Jt
R2FtZXBhZENvbm5lY3RlZCgqbV9jb25uZWN0ZWRHYW1lcGFkVmVjdG9yW2luZGV4XSk7CisgICAg
ICAgIGNsaWVudC0+cGxhdGZvcm1HYW1lcGFkQ29ubmVjdGVkKCptX2Nvbm5lY3RlZEdhbWVwYWRW
ZWN0b3JbaW5kZXhdLCBFdmVudE1ha2VzR2FtZXBhZHNWaXNpYmxlOjpZZXMpOwogCiAgICAgcmV0
dXJuIHRydWU7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDU0YTJlMGIzZTNmLi45ZDBjNjk1N2IzNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKQEAgLTEsMyArMSw0MyBAQAorMjAyMC0wNy0wNiAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBh
cHBsZS5jb20+CisKKyAgICAgICAgR2V0IHJpZCBvZiBjb25jZXB0IG9mICJpbml0aWFsIGNvbm5l
Y3RlZCBnYW1lcGFkcyIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIxNDAxMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHk6CisKKyAgICAgICAgKiBVSVByb2Nl
c3MvR2FtZXBhZC9VSUdhbWVwYWRQcm92aWRlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlVJR2Ft
ZXBhZFByb3ZpZGVyOjpnYW1lcGFkU3luY1RpbWVyRmlyZWQpOgorICAgICAgICAoV2ViS2l0OjpV
SUdhbWVwYWRQcm92aWRlcjo6cGxhdGZvcm1HYW1lcGFkQ29ubmVjdGVkKToKKyAgICAgICAgKFdl
YktpdDo6VUlHYW1lcGFkUHJvdmlkZXI6OnBsYXRmb3JtR2FtZXBhZElucHV0QWN0aXZpdHkpOgor
ICAgICAgICAoV2ViS2l0OjpVSUdhbWVwYWRQcm92aWRlcjo6c2V0SW5pdGlhbENvbm5lY3RlZEdh
bWVwYWRzKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvR2FtZXBhZC9VSUdhbWVwYWRQ
cm92aWRlci5oOgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6Z2FtZXBhZEFjdGl2aXR5KToKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vz
c1Bvb2wuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6Z2FtZXBhZENvbm5l
Y3RlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpzZXRJbml0aWFsQ29ubmVj
dGVkR2FtZXBhZHMpOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9v
bC5oOgorCisgICAgICAgICogV2ViUHJvY2Vzcy9HYW1lcGFkL1dlYkdhbWVwYWRQcm92aWRlci5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYkdhbWVwYWRQcm92aWRlcjo6Z2FtZXBhZENvbm5lY3Rl
ZCk6CisgICAgICAgIChXZWJLaXQ6OldlYkdhbWVwYWRQcm92aWRlcjo6Z2FtZXBhZEFjdGl2aXR5
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dhbWVwYWQvV2ViR2FtZXBhZFByb3ZpZGVyLmg6CisK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2U6OmdhbWVwYWRBY3Rpdml0eSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNz
YWdlcy5pbjoKKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYlByb2Nlc3M6OmdhbWVwYWRDb25uZWN0ZWQpOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViUHJvY2Vzcy5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNz
YWdlcy5pbjoKKwogMjAyMC0wNy0wMiAgS2F0ZSBDaGVuZXkgIDxrYXRoZXJpbmVfY2hlbmV5QGFw
cGxlLmNvbT4KIAogICAgICAgICBDdXN0b20gVVJMIHNjaGVtZXMgc2hvdWxkIGJlIHRyZWF0ZWQg
YXMgYXBwLWJvdW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21l
c3NhZ2VzLnB5IGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQppbmRl
eCA2MjU4YTdmNTY0Yi4uNjliMzU5ZjQ4NzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2Ny
aXB0cy93ZWJraXQvbWVzc2FnZXMucHkKKysrIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtp
dC9tZXNzYWdlcy5weQpAQCAtNTk5LDYgKzU5OSw3IEBAIGRlZiBoZWFkZXJzX2Zvcl90eXBlKHR5
cGUpOgogICAgICAgICAnV2ViQ29yZTo6U2hhcmVEYXRhV2l0aFBhcnNlZFVSTCc6IFsnPFdlYkNv
cmUvU2hhcmVEYXRhLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpGb250Q2hhbmdlcyc6IFsnPFdl
YkNvcmUvRm9udEF0dHJpYnV0ZUNoYW5nZXMuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OkZyYW1l
TG9hZFR5cGUnOiBbJzxXZWJDb3JlL0ZyYW1lTG9hZGVyVHlwZXMuaD4nXSwKKyAgICAgICAgJ1dl
YkNvcmU6OkV2ZW50TWFrZXNHYW1lcGFkc1Zpc2libGUnOiBbJzxXZWJDb3JlL0dhbWVwYWRQcm92
aWRlckNsaWVudC5oPiddLAogICAgICAgICAnV2ViQ29yZTo6R2VuZXJpY0N1ZURhdGEnOiBbJzxX
ZWJDb3JlL0luYmFuZEdlbmVyaWNDdWUuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OkdyYW1tYXJE
ZXRhaWwnOiBbJzxXZWJDb3JlL1RleHRDaGVja2VyQ2xpZW50Lmg+J10sCiAgICAgICAgICdXZWJD
b3JlOjpIYXNJbnNlY3VyZUNvbnRlbnQnOiBbJzxXZWJDb3JlL0ZyYW1lTG9hZGVyVHlwZXMuaD4n
XSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0dhbWVwYWQvVUlHYW1lcGFk
UHJvdmlkZXIuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvR2FtZXBhZC9VSUdhbWVwYWRQ
cm92aWRlci5jcHAKaW5kZXggOTk5OTM3M2YwMjMuLjU5YTY4ZWU0YmI4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9HYW1lcGFkL1VJR2FtZXBhZFByb3ZpZGVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9HYW1lcGFkL1VJR2FtZXBhZFByb3ZpZGVyLmNwcApA
QCAtNjUsNyArNjUsNyBAQCB2b2lkIFVJR2FtZXBhZFByb3ZpZGVyOjpnYW1lcGFkU3luY1RpbWVy
RmlyZWQoKQogICAgIGlmICghd2ViUGFnZVByb3h5IHx8ICFtX3Byb2Nlc3NQb29sc1VzaW5nR2Ft
ZXBhZHMuY29udGFpbnMoJndlYlBhZ2VQcm94eS0+cHJvY2VzcygpLnByb2Nlc3NQb29sKCkpKQog
ICAgICAgICByZXR1cm47CiAKLSAgICB3ZWJQYWdlUHJveHktPmdhbWVwYWRBY3Rpdml0eShzbmFw
c2hvdEdhbWVwYWRzKCksIG1fc2hvdWxkTWFrZUdhbWVwYWRzVmlzaWJsZU9uU3luYyk7CisgICAg
d2ViUGFnZVByb3h5LT5nYW1lcGFkQWN0aXZpdHkoc25hcHNob3RHYW1lcGFkcygpLCBtX3Nob3Vs
ZE1ha2VHYW1lcGFkc1Zpc2libGVPblN5bmMgPyBFdmVudE1ha2VzR2FtZXBhZHNWaXNpYmxlOjpZ
ZXMgOiBFdmVudE1ha2VzR2FtZXBhZHNWaXNpYmxlOjpObyk7CiAgICAgbV9zaG91bGRNYWtlR2Ft
ZXBhZHNWaXNpYmxlT25TeW5jID0gZmFsc2U7CiB9CiAKQEAgLTgyLDI2ICs4MiwxMCBAQCB2b2lk
IFVJR2FtZXBhZFByb3ZpZGVyOjpzY2hlZHVsZUdhbWVwYWRTdGF0ZVN5bmMoKQogICAgIG1fZ2Ft
ZXBhZFN5bmNUaW1lci5zdGFydE9uZVNob3QobWF4aW11bUdhbWVwYWRVcGRhdGVJbnRlcnZhbCk7
CiB9CiAKLXZvaWQgVUlHYW1lcGFkUHJvdmlkZXI6OnNldEluaXRpYWxDb25uZWN0ZWRHYW1lcGFk
cyhjb25zdCBWZWN0b3I8UGxhdGZvcm1HYW1lcGFkKj4mIGluaXRpYWxHYW1lcGFkcykKK3ZvaWQg
VUlHYW1lcGFkUHJvdmlkZXI6OnBsYXRmb3JtR2FtZXBhZENvbm5lY3RlZChQbGF0Zm9ybUdhbWVw
YWQmIGdhbWVwYWQsIEV2ZW50TWFrZXNHYW1lcGFkc1Zpc2libGUgZXZlbnRWaXNpYmlsaXR5KQog
ewotICAgIEFTU0VSVCghbV9oYXNJbml0aWFsR2FtZXBhZHMpOworICAgIExPRyhHYW1lcGFkLCAi
VUlHYW1lcGFkUHJvdmlkZXI6OnBsYXRmb3JtR2FtZXBhZENvbm5lY3RlZCAtIEluZGV4ICVpIGF0
dGFjaGVkICh2aXNpYmlsaXR5OiAlaSlcbiIsIGdhbWVwYWQuaW5kZXgoKSwgKGludClldmVudFZp
c2liaWxpdHkpOwogCi0gICAgbV9nYW1lcGFkcy5yZXNpemUoaW5pdGlhbEdhbWVwYWRzLnNpemUo
KSk7Ci0KLSAgICBmb3IgKGF1dG8qIGdhbWVwYWQgOiBpbml0aWFsR2FtZXBhZHMpIHsKLSAgICAg
ICAgaWYgKCFnYW1lcGFkKQotICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIG1fZ2FtZXBh
ZHNbZ2FtZXBhZC0+aW5kZXgoKV0gPSBtYWtlVW5pcXVlPFVJR2FtZXBhZD4oKmdhbWVwYWQpOwot
ICAgIH0KLQotICAgIGZvciAoYXV0byYgcG9vbCA6IG1fcHJvY2Vzc1Bvb2xzVXNpbmdHYW1lcGFk
cykKLSAgICAgICAgcG9vbC0+c2V0SW5pdGlhbENvbm5lY3RlZEdhbWVwYWRzKG1fZ2FtZXBhZHMp
OwotCi0gICAgbV9oYXNJbml0aWFsR2FtZXBhZHMgPSB0cnVlOwotfQotCi12b2lkIFVJR2FtZXBh
ZFByb3ZpZGVyOjpwbGF0Zm9ybUdhbWVwYWRDb25uZWN0ZWQoUGxhdGZvcm1HYW1lcGFkJiBnYW1l
cGFkKQotewogICAgIGlmIChtX2dhbWVwYWRzLnNpemUoKSA8PSBnYW1lcGFkLmluZGV4KCkpCiAg
ICAgICAgIG1fZ2FtZXBhZHMuZ3JvdyhnYW1lcGFkLmluZGV4KCkgKyAxKTsKIApAQCAtMTExLDcg
Kzk1LDcgQEAgdm9pZCBVSUdhbWVwYWRQcm92aWRlcjo6cGxhdGZvcm1HYW1lcGFkQ29ubmVjdGVk
KFBsYXRmb3JtR2FtZXBhZCYgZ2FtZXBhZCkKICAgICBzY2hlZHVsZUdhbWVwYWRTdGF0ZVN5bmMo
KTsKIAogICAgIGZvciAoYXV0byYgcG9vbCA6IG1fcHJvY2Vzc1Bvb2xzVXNpbmdHYW1lcGFkcykK
LSAgICAgICAgcG9vbC0+Z2FtZXBhZENvbm5lY3RlZCgqbV9nYW1lcGFkc1tnYW1lcGFkLmluZGV4
KCldKTsKKyAgICAgICAgcG9vbC0+Z2FtZXBhZENvbm5lY3RlZCgqbV9nYW1lcGFkc1tnYW1lcGFk
LmluZGV4KCldLCBldmVudFZpc2liaWxpdHkpOwogfQogCiB2b2lkIFVJR2FtZXBhZFByb3ZpZGVy
OjpwbGF0Zm9ybUdhbWVwYWREaXNjb25uZWN0ZWQoUGxhdGZvcm1HYW1lcGFkJiBnYW1lcGFkKQpA
QCAtMTI3LDcgKzExMSw3IEBAIHZvaWQgVUlHYW1lcGFkUHJvdmlkZXI6OnBsYXRmb3JtR2FtZXBh
ZERpc2Nvbm5lY3RlZChQbGF0Zm9ybUdhbWVwYWQmIGdhbWVwYWQpCiAgICAgICAgIHBvb2wtPmdh
bWVwYWREaXNjb25uZWN0ZWQoKmRpc2Nvbm5lY3RlZEdhbWVwYWQpOwogfQogCi12b2lkIFVJR2Ft
ZXBhZFByb3ZpZGVyOjpwbGF0Zm9ybUdhbWVwYWRJbnB1dEFjdGl2aXR5KGJvb2wgc2hvdWxkTWFr
ZUdhbWVwYWRzVmlzaWJsZSkKK3ZvaWQgVUlHYW1lcGFkUHJvdmlkZXI6OnBsYXRmb3JtR2FtZXBh
ZElucHV0QWN0aXZpdHkoRXZlbnRNYWtlc0dhbWVwYWRzVmlzaWJsZSBldmVudFZpc2liaWxpdHkp
CiB7CiAgICAgYXV0byBwbGF0Zm9ybUdhbWVwYWRzID0gR2FtZXBhZFByb3ZpZGVyOjpzaW5nbGV0
b24oKS5wbGF0Zm9ybUdhbWVwYWRzKCk7CiAgICAgQVNTRVJUKHBsYXRmb3JtR2FtZXBhZHMuc2l6
ZSgpID09IG1fZ2FtZXBhZHMuc2l6ZSgpKTsKQEAgLTE0Miw3ICsxMjYsNyBAQCB2b2lkIFVJR2Ft
ZXBhZFByb3ZpZGVyOjpwbGF0Zm9ybUdhbWVwYWRJbnB1dEFjdGl2aXR5KGJvb2wgc2hvdWxkTWFr
ZUdhbWVwYWRzVmlzaQogICAgICAgICBtX2dhbWVwYWRzW2ldLT51cGRhdGVGcm9tUGxhdGZvcm1H
YW1lcGFkKCpwbGF0Zm9ybUdhbWVwYWRzW2ldKTsKICAgICB9CiAKLSAgICBpZiAoc2hvdWxkTWFr
ZUdhbWVwYWRzVmlzaWJsZSkKKyAgICBpZiAoZXZlbnRWaXNpYmlsaXR5ID09IEV2ZW50TWFrZXNH
YW1lcGFkc1Zpc2libGU6OlllcykKICAgICAgICAgbV9zaG91bGRNYWtlR2FtZXBhZHNWaXNpYmxl
T25TeW5jID0gdHJ1ZTsKIAogICAgIHNjaGVkdWxlR2FtZXBhZFN0YXRlU3luYygpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvR2FtZXBhZC9VSUdhbWVwYWRQcm92aWRlci5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvR2FtZXBhZC9VSUdhbWVwYWRQcm92aWRlci5oCmlu
ZGV4IDg2ZTg5N2U5YzVkLi4zZWE3MDFjNzM4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvR2FtZXBhZC9VSUdhbWVwYWRQcm92aWRlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0dhbWVwYWQvVUlHYW1lcGFkUHJvdmlkZXIuaApAQCAtNzAsMTAgKzcwLDkgQEAg
cHJpdmF0ZToKICAgICB2b2lkIHBsYXRmb3JtU3RvcE1vbml0b3JpbmdJbnB1dCgpOwogICAgIHZv
aWQgcGxhdGZvcm1TdGFydE1vbml0b3JpbmdJbnB1dCgpOwogCi0gICAgdm9pZCBzZXRJbml0aWFs
Q29ubmVjdGVkR2FtZXBhZHMoY29uc3QgVmVjdG9yPFdlYkNvcmU6OlBsYXRmb3JtR2FtZXBhZCo+
JikgZmluYWw7Ci0gICAgdm9pZCBwbGF0Zm9ybUdhbWVwYWRDb25uZWN0ZWQoV2ViQ29yZTo6UGxh
dGZvcm1HYW1lcGFkJikgZmluYWw7CisgICAgdm9pZCBwbGF0Zm9ybUdhbWVwYWRDb25uZWN0ZWQo
V2ViQ29yZTo6UGxhdGZvcm1HYW1lcGFkJiwgV2ViQ29yZTo6RXZlbnRNYWtlc0dhbWVwYWRzVmlz
aWJsZSkgZmluYWw7CiAgICAgdm9pZCBwbGF0Zm9ybUdhbWVwYWREaXNjb25uZWN0ZWQoV2ViQ29y
ZTo6UGxhdGZvcm1HYW1lcGFkJikgZmluYWw7Ci0gICAgdm9pZCBwbGF0Zm9ybUdhbWVwYWRJbnB1
dEFjdGl2aXR5KGJvb2wgc2hvdWxkTWFrZUdhbWVwYWRzVmlzaWJsZSkgZmluYWw7CisgICAgdm9p
ZCBwbGF0Zm9ybUdhbWVwYWRJbnB1dEFjdGl2aXR5KFdlYkNvcmU6OkV2ZW50TWFrZXNHYW1lcGFk
c1Zpc2libGUpIGZpbmFsOwogCiAgICAgdm9pZCBzY2hlZHVsZUdhbWVwYWRTdGF0ZVN5bmMoKTsK
ICAgICB2b2lkIGdhbWVwYWRTeW5jVGltZXJGaXJlZCgpOwpAQCAtODUsNyArODQsNiBAQCBwcml2
YXRlOgogICAgIFJ1bkxvb3A6OlRpbWVyPFVJR2FtZXBhZFByb3ZpZGVyPiBtX2dhbWVwYWRTeW5j
VGltZXI7CiAKICAgICBib29sIG1faXNNb25pdG9yaW5nR2FtZXBhZHMgeyBmYWxzZSB9OwotICAg
IGJvb2wgbV9oYXNJbml0aWFsR2FtZXBhZHMgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9zaG91bGRN
YWtlR2FtZXBhZHNWaXNpYmxlT25TeW5jIHsgZmFsc2UgfTsKIH07CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDc2NjNiNDQ3OTQ3Li4zYThmNDA1YTM1ZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC03OTE5LDkgKzc5
MTksOSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6YmFja0ZvcndhcmRDbGVhcigpCiAKICNpZiBFTkFC
TEUoR0FNRVBBRCkKIAotdm9pZCBXZWJQYWdlUHJveHk6OmdhbWVwYWRBY3Rpdml0eShjb25zdCBW
ZWN0b3I8R2FtZXBhZERhdGE+JiBnYW1lcGFkRGF0YXMsIGJvb2wgc2hvdWxkTWFrZUdhbWVwYWRz
VmlzaWJsZSkKK3ZvaWQgV2ViUGFnZVByb3h5OjpnYW1lcGFkQWN0aXZpdHkoY29uc3QgVmVjdG9y
PEdhbWVwYWREYXRhPiYgZ2FtZXBhZERhdGFzLCBFdmVudE1ha2VzR2FtZXBhZHNWaXNpYmxlIGV2
ZW50VmlzaWJpbGl0eSkKIHsKLSAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpHYW1lcGFkQWN0
aXZpdHkoZ2FtZXBhZERhdGFzLCBzaG91bGRNYWtlR2FtZXBhZHNWaXNpYmxlKSk7CisgICAgc2Vu
ZChNZXNzYWdlczo6V2ViUGFnZTo6R2FtZXBhZEFjdGl2aXR5KGdhbWVwYWREYXRhcywgZXZlbnRW
aXNpYmlsaXR5KSk7CiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuaAppbmRleCBmOGNlNTA4ZWExNy4uYmM3MjM5OWJjMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0yMjksNiArMjI5LDcgQEAgY2xhc3MgVmFsaWRhdGlvbkJ1
YmJsZTsKIAogZW51bSBjbGFzcyBBdXRvcGxheUV2ZW50IDogdWludDhfdDsKIGVudW0gY2xhc3Mg
RE9NUGFzdGVBY2Nlc3NSZXNwb25zZSA6IHVpbnQ4X3Q7CitlbnVtIGNsYXNzIEV2ZW50TWFrZXNH
YW1lcGFkc1Zpc2libGUgOiBib29sOwogZW51bSBjbGFzcyBMb2NrQmFja0ZvcndhcmRMaXN0IDog
Ym9vbDsKIGVudW0gY2xhc3MgSGFzSW5zZWN1cmVDb250ZW50IDogYm9vbDsKIGVudW0gY2xhc3Mg
TW91c2VFdmVudFBvbGljeSA6IHVpbnQ4X3Q7CkBAIC0xNTY5LDcgKzE1NzAsNyBAQCBwdWJsaWM6
CiAgICAgYm9vbCBpc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKSBjb25zdDsKIAogI2lmIEVOQUJM
RShHQU1FUEFEKQotICAgIHZvaWQgZ2FtZXBhZEFjdGl2aXR5KGNvbnN0IFZlY3RvcjxHYW1lcGFk
RGF0YT4mLCBib29sIHNob3VsZE1ha2VHYW1lcGFkc1Zpc2libGUpOworICAgIHZvaWQgZ2FtZXBh
ZEFjdGl2aXR5KGNvbnN0IFZlY3RvcjxHYW1lcGFkRGF0YT4mLCBXZWJDb3JlOjpFdmVudE1ha2Vz
R2FtZXBhZHNWaXNpYmxlKTsKICNlbmRpZgogCiAgICAgdm9pZCBpc0xvYWRpbmdDaGFuZ2VkKCkg
eyBhY3Rpdml0eVN0YXRlRGlkQ2hhbmdlKFdlYkNvcmU6OkFjdGl2aXR5U3RhdGU6OklzTG9hZGlu
Zyk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29s
LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcAppbmRleCAy
MGNmOTI2YWM4MC4uYmUzNTQyZWMxYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQb29sLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
cm9jZXNzUG9vbC5jcHAKQEAgLTE5NTcsMTAgKzE5NTcsMTAgQEAgdm9pZCBXZWJQcm9jZXNzUG9v
bDo6cHJvY2Vzc1N0b3BwZWRVc2luZ0dhbWVwYWRzKFdlYlByb2Nlc3NQcm94eSYgcHJvY2VzcykK
ICAgICAgICAgVUlHYW1lcGFkUHJvdmlkZXI6OnNpbmdsZXRvbigpLnByb2Nlc3NQb29sU3RvcHBl
ZFVzaW5nR2FtZXBhZHMoKnRoaXMpOwogfQogCi12b2lkIFdlYlByb2Nlc3NQb29sOjpnYW1lcGFk
Q29ubmVjdGVkKGNvbnN0IFVJR2FtZXBhZCYgZ2FtZXBhZCkKK3ZvaWQgV2ViUHJvY2Vzc1Bvb2w6
OmdhbWVwYWRDb25uZWN0ZWQoY29uc3QgVUlHYW1lcGFkJiBnYW1lcGFkLCBFdmVudE1ha2VzR2Ft
ZXBhZHNWaXNpYmxlIGV2ZW50VmlzaWJpbGl0eSkKIHsKICAgICBmb3IgKGF1dG8mIHByb2Nlc3Mg
OiBtX3Byb2Nlc3Nlc1VzaW5nR2FtZXBhZHMpCi0gICAgICAgIHByb2Nlc3MtPnNlbmQoTWVzc2Fn
ZXM6OldlYlByb2Nlc3M6OkdhbWVwYWRDb25uZWN0ZWQoZ2FtZXBhZC5mdWxsR2FtZXBhZERhdGEo
KSksIDApOworICAgICAgICBwcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpHYW1l
cGFkQ29ubmVjdGVkKGdhbWVwYWQuZnVsbEdhbWVwYWREYXRhKCksIGV2ZW50VmlzaWJpbGl0eSks
IDApOwogfQogCiB2b2lkIFdlYlByb2Nlc3NQb29sOjpnYW1lcGFkRGlzY29ubmVjdGVkKGNvbnN0
IFVJR2FtZXBhZCYgZ2FtZXBhZCkKQEAgLTE5NjksMjAgKzE5NjksNiBAQCB2b2lkIFdlYlByb2Nl
c3NQb29sOjpnYW1lcGFkRGlzY29ubmVjdGVkKGNvbnN0IFVJR2FtZXBhZCYgZ2FtZXBhZCkKICAg
ICAgICAgcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUHJvY2Vzczo6R2FtZXBhZERpc2Nvbm5l
Y3RlZChnYW1lcGFkLmluZGV4KCkpLCAwKTsKIH0KIAotdm9pZCBXZWJQcm9jZXNzUG9vbDo6c2V0
SW5pdGlhbENvbm5lY3RlZEdhbWVwYWRzKGNvbnN0IFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8VUlH
YW1lcGFkPj4mIGdhbWVwYWRzKQotewotICAgIFZlY3RvcjxHYW1lcGFkRGF0YT4gZ2FtZXBhZERh
dGFzOwotICAgIGdhbWVwYWREYXRhcy5ncm93KGdhbWVwYWRzLnNpemUoKSk7Ci0gICAgZm9yIChz
aXplX3QgaSA9IDA7IGkgPCBnYW1lcGFkcy5zaXplKCk7ICsraSkgewotICAgICAgICBpZiAoIWdh
bWVwYWRzW2ldKQotICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIGdhbWVwYWREYXRhc1tp
XSA9IGdhbWVwYWRzW2ldLT5mdWxsR2FtZXBhZERhdGEoKTsKLSAgICB9Ci0KLSAgICBmb3IgKGF1
dG8mIHByb2Nlc3MgOiBtX3Byb2Nlc3Nlc1VzaW5nR2FtZXBhZHMpCi0gICAgICAgIHByb2Nlc3Mt
PnNlbmQoTWVzc2FnZXM6OldlYlByb2Nlc3M6OlNldEluaXRpYWxHYW1lcGFkcyhnYW1lcGFkRGF0
YXMpLCAwKTsKLX0KLQogI2VuZGlmIC8vIEVOQUJMRShHQU1FUEFEKQogCiB2b2lkIFdlYlByb2Nl
c3NQb29sOjpzZXRKYXZhU2NyaXB0Q29uZmlndXJhdGlvbkZpbGVFbmFibGVkKGJvb2wgZmxhZykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmggYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCmluZGV4IGJmMmQ4YzdlNTJk
Li43YTEwZWFiN2E4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJv
Y2Vzc1Bvb2wuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5o
CkBAIC05Miw2ICs5Miw3IEBAIGNsYXNzIFBhZ2VDb25maWd1cmF0aW9uOwogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiBjbGFzcyBSZWdpc3RyYWJsZURvbWFpbjsKK2VudW0gY2xhc3MgRXZlbnRNYWtl
c0dhbWVwYWRzVmlzaWJsZSA6IGJvb2w7CiBzdHJ1Y3QgTW9ja01lZGlhRGV2aWNlOwogfQogCkBA
IC00NjMsMTAgKzQ2NCw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHN5bnRoZXNpemVBcHBJc0JhY2tn
cm91bmQoYm9vbCBiYWNrZ3JvdW5kKTsKICAgICAKICNpZiBFTkFCTEUoR0FNRVBBRCkKLSAgICB2
b2lkIGdhbWVwYWRDb25uZWN0ZWQoY29uc3QgVUlHYW1lcGFkJik7CisgICAgdm9pZCBnYW1lcGFk
Q29ubmVjdGVkKGNvbnN0IFVJR2FtZXBhZCYsIFdlYkNvcmU6OkV2ZW50TWFrZXNHYW1lcGFkc1Zp
c2libGUpOwogICAgIHZvaWQgZ2FtZXBhZERpc2Nvbm5lY3RlZChjb25zdCBVSUdhbWVwYWQmKTsK
LQotICAgIHZvaWQgc2V0SW5pdGlhbENvbm5lY3RlZEdhbWVwYWRzKGNvbnN0IFZlY3RvcjxzdGQ6
OnVuaXF1ZV9wdHI8VUlHYW1lcGFkPj4mKTsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oQ09DT0Ep
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR2FtZXBhZC9XZWJHYW1lcGFk
UHJvdmlkZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dhbWVwYWQvV2ViR2FtZXBh
ZFByb3ZpZGVyLmNwcAppbmRleCBhYWIzNDU3Y2VkNi4uY2ZjMGJkYzIzYWUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HYW1lcGFkL1dlYkdhbWVwYWRQcm92aWRlci5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dhbWVwYWQvV2ViR2FtZXBhZFByb3ZpZGVy
LmNwcApAQCAtNjcsOCArNjcsMTAgQEAgdm9pZCBXZWJHYW1lcGFkUHJvdmlkZXI6OnNldEluaXRp
YWxHYW1lcGFkcyhjb25zdCBWZWN0b3I8R2FtZXBhZERhdGE+JiBnYW1lcGFkRGEKICAgICB9CiB9
CiAKLXZvaWQgV2ViR2FtZXBhZFByb3ZpZGVyOjpnYW1lcGFkQ29ubmVjdGVkKGNvbnN0IEdhbWVw
YWREYXRhJiBnYW1lcGFkRGF0YSkKK3ZvaWQgV2ViR2FtZXBhZFByb3ZpZGVyOjpnYW1lcGFkQ29u
bmVjdGVkKGNvbnN0IEdhbWVwYWREYXRhJiBnYW1lcGFkRGF0YSwgRXZlbnRNYWtlc0dhbWVwYWRz
VmlzaWJsZSBldmVudFZpc2liaWxpdHkpCiB7CisgICAgTE9HKEdhbWVwYWQsICJXZWJHYW1lcGFk
UHJvdmlkZXI6OmdhbWVwYWRDb25uZWN0ZWQgLSBJbmRleCAlaSBhdHRhY2hlZCAodmlzaWJpbGl0
eTogJWkpXG4iLCBnYW1lcGFkRGF0YS5pbmRleCgpLCAoaW50KWV2ZW50VmlzaWJpbGl0eSk7CisK
ICAgICBpZiAobV9nYW1lcGFkcy5zaXplKCkgPD0gZ2FtZXBhZERhdGEuaW5kZXgoKSkgewogICAg
ICAgICBtX2dhbWVwYWRzLnJlc2l6ZShnYW1lcGFkRGF0YS5pbmRleCgpICsgMSk7CiAgICAgICAg
IG1fcmF3R2FtZXBhZHMucmVzaXplKGdhbWVwYWREYXRhLmluZGV4KCkgKyAxKTsKQEAgLTgwLDcg
KzgyLDcgQEAgdm9pZCBXZWJHYW1lcGFkUHJvdmlkZXI6OmdhbWVwYWRDb25uZWN0ZWQoY29uc3Qg
R2FtZXBhZERhdGEmIGdhbWVwYWREYXRhKQogICAgIG1fcmF3R2FtZXBhZHNbZ2FtZXBhZERhdGEu
aW5kZXgoKV0gPSBtX2dhbWVwYWRzW2dhbWVwYWREYXRhLmluZGV4KCldLmdldCgpOwogCiAgICAg
Zm9yIChhdXRvKiBjbGllbnQgOiBtX2NsaWVudHMpCi0gICAgICAgIGNsaWVudC0+cGxhdGZvcm1H
YW1lcGFkQ29ubmVjdGVkKCptX2dhbWVwYWRzW2dhbWVwYWREYXRhLmluZGV4KCldKTsKKyAgICAg
ICAgY2xpZW50LT5wbGF0Zm9ybUdhbWVwYWRDb25uZWN0ZWQoKm1fZ2FtZXBhZHNbZ2FtZXBhZERh
dGEuaW5kZXgoKV0sIGV2ZW50VmlzaWJpbGl0eSk7CiB9CiAKIHZvaWQgV2ViR2FtZXBhZFByb3Zp
ZGVyOjpnYW1lcGFkRGlzY29ubmVjdGVkKHVuc2lnbmVkIGluZGV4KQpAQCAtOTQsNyArOTYsNyBA
QCB2b2lkIFdlYkdhbWVwYWRQcm92aWRlcjo6Z2FtZXBhZERpc2Nvbm5lY3RlZCh1bnNpZ25lZCBp
bmRleCkKICAgICAgICAgY2xpZW50LT5wbGF0Zm9ybUdhbWVwYWREaXNjb25uZWN0ZWQoKmRpc2Nv
bm5lY3RlZEdhbWVwYWQpOwogfQogCi12b2lkIFdlYkdhbWVwYWRQcm92aWRlcjo6Z2FtZXBhZEFj
dGl2aXR5KGNvbnN0IFZlY3RvcjxHYW1lcGFkRGF0YT4mIGdhbWVwYWREYXRhcywgYm9vbCBzaG91
bGRNYWtlR2FtZXBhZHNWaXNpYmxlKQordm9pZCBXZWJHYW1lcGFkUHJvdmlkZXI6OmdhbWVwYWRB
Y3Rpdml0eShjb25zdCBWZWN0b3I8R2FtZXBhZERhdGE+JiBnYW1lcGFkRGF0YXMsIEV2ZW50TWFr
ZXNHYW1lcGFkc1Zpc2libGUgZXZlbnRWaXNpYmlsaXR5KQogewogICAgIEFTU0VSVChtX2dhbWVw
YWRzLnNpemUoKSA9PSBnYW1lcGFkRGF0YXMuc2l6ZSgpKTsKIApAQCAtMTA0LDcgKzEwNiw3IEBA
IHZvaWQgV2ViR2FtZXBhZFByb3ZpZGVyOjpnYW1lcGFkQWN0aXZpdHkoY29uc3QgVmVjdG9yPEdh
bWVwYWREYXRhPiYgZ2FtZXBhZERhdGFzCiAgICAgfQogCiAgICAgZm9yIChhdXRvKiBjbGllbnQg
OiBtX2NsaWVudHMpCi0gICAgICAgIGNsaWVudC0+cGxhdGZvcm1HYW1lcGFkSW5wdXRBY3Rpdml0
eShzaG91bGRNYWtlR2FtZXBhZHNWaXNpYmxlKTsKKyAgICAgICAgY2xpZW50LT5wbGF0Zm9ybUdh
bWVwYWRJbnB1dEFjdGl2aXR5KGV2ZW50VmlzaWJpbGl0eSk7CiB9CiAKIHZvaWQgV2ViR2FtZXBh
ZFByb3ZpZGVyOjpzdGFydE1vbml0b3JpbmdHYW1lcGFkcyhHYW1lcGFkUHJvdmlkZXJDbGllbnQm
IGNsaWVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HYW1lcGFkL1dl
YkdhbWVwYWRQcm92aWRlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dhbWVwYWQvV2Vi
R2FtZXBhZFByb3ZpZGVyLmgKaW5kZXggZWRhYjdjM2YxODEuLjhhMTdmOTA4NGI2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR2FtZXBhZC9XZWJHYW1lcGFkUHJvdmlkZXIu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR2FtZXBhZC9XZWJHYW1lcGFkUHJvdmlk
ZXIuaApAQCAtMzIsNiArMzIsMTAgQEAKICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1
ZGUgPHd0Zi9WZWN0b3IuaD4KIAorbmFtZXNwYWNlIFdlYkNvcmUgeworZW51bSBjbGFzcyBFdmVu
dE1ha2VzR2FtZXBhZHNWaXNpYmxlIDogYm9vbDsKK30KKwogbmFtZXNwYWNlIFdlYktpdCB7CiAK
IGNsYXNzIFNoYXJlZE1lbW9yeTsKQEAgLTQzLDkgKzQ3LDkgQEAgY2xhc3MgV2ViR2FtZXBhZFBy
b3ZpZGVyIDogcHVibGljIFdlYkNvcmU6OkdhbWVwYWRQcm92aWRlciB7CiBwdWJsaWM6CiAgICAg
c3RhdGljIFdlYkdhbWVwYWRQcm92aWRlciYgc2luZ2xldG9uKCk7CiAKLSAgICB2b2lkIGdhbWVw
YWRDb25uZWN0ZWQoY29uc3QgR2FtZXBhZERhdGEmKTsKKyAgICB2b2lkIGdhbWVwYWRDb25uZWN0
ZWQoY29uc3QgR2FtZXBhZERhdGEmLCBXZWJDb3JlOjpFdmVudE1ha2VzR2FtZXBhZHNWaXNpYmxl
KTsKICAgICB2b2lkIGdhbWVwYWREaXNjb25uZWN0ZWQodW5zaWduZWQgaW5kZXgpOwotICAgIHZv
aWQgZ2FtZXBhZEFjdGl2aXR5KGNvbnN0IFZlY3RvcjxHYW1lcGFkRGF0YT4mLCBib29sIHNob3Vs
ZE1ha2VHYW1lcGFkc1Zpc2libGUpOworICAgIHZvaWQgZ2FtZXBhZEFjdGl2aXR5KGNvbnN0IFZl
Y3RvcjxHYW1lcGFkRGF0YT4mLCBXZWJDb3JlOjpFdmVudE1ha2VzR2FtZXBhZHNWaXNpYmxlKTsK
IAogICAgIHZvaWQgc2V0SW5pdGlhbEdhbWVwYWRzKGNvbnN0IFZlY3RvcjxHYW1lcGFkRGF0YT4m
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRl
eCAxZGYyNzgyNDk0OC4uMTRmOGI1MTQyYTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC02NjIxLDkgKzY2MjEsOSBAQCB2b2lkIFdlYlBhZ2U6
OnNldFVzZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb24odWludDMyX3QgZGlyZWN0aW9uKQogCiAj
aWYgRU5BQkxFKEdBTUVQQUQpCiAKLXZvaWQgV2ViUGFnZTo6Z2FtZXBhZEFjdGl2aXR5KGNvbnN0
IFZlY3RvcjxHYW1lcGFkRGF0YT4mIGdhbWVwYWREYXRhcywgYm9vbCBzaG91bGRNYWtlR2FtZXBh
ZHNWaXNpYmxlKQordm9pZCBXZWJQYWdlOjpnYW1lcGFkQWN0aXZpdHkoY29uc3QgVmVjdG9yPEdh
bWVwYWREYXRhPiYgZ2FtZXBhZERhdGFzLCBFdmVudE1ha2VzR2FtZXBhZHNWaXNpYmxlIGV2ZW50
VmlzaWJpbHR5KQogewotICAgIFdlYkdhbWVwYWRQcm92aWRlcjo6c2luZ2xldG9uKCkuZ2FtZXBh
ZEFjdGl2aXR5KGdhbWVwYWREYXRhcywgc2hvdWxkTWFrZUdhbWVwYWRzVmlzaWJsZSk7CisgICAg
V2ViR2FtZXBhZFByb3ZpZGVyOjpzaW5nbGV0b24oKS5nYW1lcGFkQWN0aXZpdHkoZ2FtZXBhZERh
dGFzLCBldmVudFZpc2liaWx0eSk7CiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IDBkYjJjN2JjNDNjLi45ZTRmY2M0OTVmNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtMTk2LDYgKzE5
Niw3IEBAIGNsYXNzIFZpc2libGVQb3NpdGlvbjsKIGVudW0gU3ludGhldGljQ2xpY2tUeXBlIDog
aW50OF90OwogZW51bSBjbGFzcyBET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlIDogdWludDhfdDsKIGVu
dW0gY2xhc3MgRHJhZ0hhbmRsaW5nTWV0aG9kIDogdWludDhfdDsKK2VudW0gY2xhc3MgRXZlbnRN
YWtlc0dhbWVwYWRzVmlzaWJsZSA6IGJvb2w7CiBlbnVtIGNsYXNzIFNlbGVjdGlvbkRpcmVjdGlv
biA6IHVpbnQ4X3Q7CiBlbnVtIGNsYXNzIFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCA6IGJv
b2w7CiBlbnVtIGNsYXNzIFRleHRJbmRpY2F0b3JQcmVzZW50YXRpb25UcmFuc2l0aW9uIDogdWlu
dDhfdDsKQEAgLTExNzUsNyArMTE3Niw3IEBAIHB1YmxpYzoKICNlbmRpZgogCiAjaWYgRU5BQkxF
KEdBTUVQQUQpCi0gICAgdm9pZCBnYW1lcGFkQWN0aXZpdHkoY29uc3QgVmVjdG9yPEdhbWVwYWRE
YXRhPiYsIGJvb2wgc2hvdWxkTWFrZUdhbWVwYWRzVmlzaWJsZSk7CisgICAgdm9pZCBnYW1lcGFk
QWN0aXZpdHkoY29uc3QgVmVjdG9yPEdhbWVwYWREYXRhPiYsIFdlYkNvcmU6OkV2ZW50TWFrZXNH
YW1lcGFkc1Zpc2libGUpOwogI2VuZGlmCiAgICAgCiAjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVz
c2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3Nh
Z2VzLmluCmluZGV4IGM1ZTM0MzFmNjE3Li5hMWRjODg0MTdkOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCkBAIC01NDUs
NyArNTQ1LDcgQEAgR2VuZXJhdGVTeW50aGV0aWNFZGl0aW5nQ29tbWFuZChlbnVtOnVpbnQ4X3Qg
V2ViS2l0OjpTeW50aGV0aWNFZGl0aW5nQ29tbWFuZFR5cGUKICAgICBTZXRVc2VJY29uTG9hZGlu
Z0NsaWVudChib29sIHVzZUljb25Mb2FkaW5nQ2xpZW50KQogCiAjaWYgRU5BQkxFKEdBTUVQQUQp
Ci0gICAgR2FtZXBhZEFjdGl2aXR5KFZlY3RvcjxXZWJLaXQ6OkdhbWVwYWREYXRhPiBnYW1lcGFk
RGF0YXMsIGJvb2wgc2hvdWxkTWFrZUdhbWVwYWRzVmlzaWJsZSkKKyAgICBHYW1lcGFkQWN0aXZp
dHkoVmVjdG9yPFdlYktpdDo6R2FtZXBhZERhdGE+IGdhbWVwYWREYXRhcywgZW51bTpib29sIFdl
YkNvcmU6OkV2ZW50TWFrZXNHYW1lcGFkc1Zpc2libGUgZXZlbnRWaXNpYmlsaXR5KQogI2VuZGlm
CiAKICAgICBGcmFtZUJlY2FtZVJlbW90ZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJ
RCwgc3RydWN0IFdlYkNvcmU6Okdsb2JhbEZyYW1lSWRlbnRpZmllciByZW1vdGVGcmFtZUlkZW50
aWZpZXIsIHN0cnVjdCBXZWJDb3JlOjpHbG9iYWxXaW5kb3dJZGVudGlmaWVyIHJlbW90ZVdpbmRv
d0lkZW50aWZpZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJv
Y2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKaW5kZXgg
MzUyNzVhNzRkMmYuLmIyZWI0NTBmNjkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBy
b2Nlc3MuY3BwCkBAIC0xMDQ5LDkgKzEwNDksOSBAQCB2b2lkIFdlYlByb2Nlc3M6OnNldEluaXRp
YWxHYW1lcGFkcyhjb25zdCBWZWN0b3I8V2ViS2l0OjpHYW1lcGFkRGF0YT4mIGdhbWVwYWREYQog
ICAgIFdlYkdhbWVwYWRQcm92aWRlcjo6c2luZ2xldG9uKCkuc2V0SW5pdGlhbEdhbWVwYWRzKGdh
bWVwYWREYXRhcyk7CiB9CiAKLXZvaWQgV2ViUHJvY2Vzczo6Z2FtZXBhZENvbm5lY3RlZChjb25z
dCBHYW1lcGFkRGF0YSYgZ2FtZXBhZERhdGEpCit2b2lkIFdlYlByb2Nlc3M6OmdhbWVwYWRDb25u
ZWN0ZWQoY29uc3QgR2FtZXBhZERhdGEmIGdhbWVwYWREYXRhLCBXZWJDb3JlOjpFdmVudE1ha2Vz
R2FtZXBhZHNWaXNpYmxlIGV2ZW50VmlzaWJpbGl0eSkKIHsKLSAgICBXZWJHYW1lcGFkUHJvdmlk
ZXI6OnNpbmdsZXRvbigpLmdhbWVwYWRDb25uZWN0ZWQoZ2FtZXBhZERhdGEpOworICAgIFdlYkdh
bWVwYWRQcm92aWRlcjo6c2luZ2xldG9uKCkuZ2FtZXBhZENvbm5lY3RlZChnYW1lcGFkRGF0YSwg
ZXZlbnRWaXNpYmlsaXR5KTsKIH0KIAogdm9pZCBXZWJQcm9jZXNzOjpnYW1lcGFkRGlzY29ubmVj
dGVkKHVuc2lnbmVkIGluZGV4KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKaW5k
ZXggYTk1M2M4YWQ5NjEuLjE0NGI1OTk4MThjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
cm9jZXNzLmgKQEAgLTg0LDYgKzg0LDkgQEAgY2xhc3MgUGFnZUdyb3VwOwogY2xhc3MgUmVnaXN0
cmFibGVEb21haW47CiBjbGFzcyBSZXNvdXJjZVJlcXVlc3Q7CiBjbGFzcyBVc2VyR2VzdHVyZVRv
a2VuOworCitlbnVtIGNsYXNzIEV2ZW50TWFrZXNHYW1lcGFkc1Zpc2libGUgOiBib29sOworCiBz
dHJ1Y3QgQmFja0ZvcndhcmRJdGVtSWRlbnRpZmllcjsKIHN0cnVjdCBNZXNzYWdlUG9ydElkZW50
aWZpZXI7CiBzdHJ1Y3QgTWVzc2FnZVdpdGhNZXNzYWdlUG9ydHM7CkBAIC0zOTksNyArNDAyLDcg
QEAgcHJpdmF0ZToKIAogI2lmIEVOQUJMRShHQU1FUEFEKQogICAgIHZvaWQgc2V0SW5pdGlhbEdh
bWVwYWRzKGNvbnN0IFZlY3RvcjxHYW1lcGFkRGF0YT4mKTsKLSAgICB2b2lkIGdhbWVwYWRDb25u
ZWN0ZWQoY29uc3QgR2FtZXBhZERhdGEmKTsKKyAgICB2b2lkIGdhbWVwYWRDb25uZWN0ZWQoY29u
c3QgR2FtZXBhZERhdGEmLCBXZWJDb3JlOjpFdmVudE1ha2VzR2FtZXBhZHNWaXNpYmxlKTsKICAg
ICB2b2lkIGdhbWVwYWREaXNjb25uZWN0ZWQodW5zaWduZWQgaW5kZXgpOwogI2VuZGlmCiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmlu
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KaW5kZXgg
ZjViY2MwNmU4ZWUuLjY5MGU0ZmE1ZDZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgpAQCAtMTAwLDcgKzEwMCw3IEBAIG1lc3NhZ2VzIC0+
IFdlYlByb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgTm90UmVmQ291bnRlZCB7CiAKICNpZiBFTkFCTEUo
R0FNRVBBRCkKICAgICBTZXRJbml0aWFsR2FtZXBhZHMoVmVjdG9yPFdlYktpdDo6R2FtZXBhZERh
dGE+IGdhbWVwYWREYXRhcykKLSAgICBHYW1lcGFkQ29ubmVjdGVkKFdlYktpdDo6R2FtZXBhZERh
dGEgZ2FtZXBhZERhdGEpCisgICAgR2FtZXBhZENvbm5lY3RlZChXZWJLaXQ6OkdhbWVwYWREYXRh
IGdhbWVwYWREYXRhLCBlbnVtOmJvb2wgV2ViQ29yZTo6RXZlbnRNYWtlc0dhbWVwYWRzVmlzaWJs
ZSBldmVudFZpc2liaWxpdHkpCiAgICAgR2FtZXBhZERpc2Nvbm5lY3RlZCh1bnNpZ25lZCBpbmRl
eCkKICNlbmRpZgogCg==
</data>
<flag name="review"
          id="419000"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>403632</attachid>
            <date>2020-07-06 16:24:47 -0700</date>
            <delta_ts>2020-07-06 16:27:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>32958</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAxZjZkYTE5NjNlOC4uMDIyYjEzNzE5YWMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1MCBAQAorMjAyMC0wNy0wNiAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+
CisKKyAgICAgICAgR2V0IHJpZCBvZiBjb25jZXB0IG9mICJpbml0aWFsIGNvbm5lY3RlZCBnYW1l
cGFkcyIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIx
NDAxMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5v
IG5ldyB0ZXN0cyAoUmVmYWN0b3IsIG5vIGJlaGF2aW9yIGNoYW5nZSkKKworICAgICAgICBXaGVu
IGEgcGFnZSBzdGFydHMgdXNpbmcgZ2FtZXBhZHMgYW5kIHNvbWUgd2VyZSBhbHJlYWR5IGNvbm5l
Y3RlZCwgdGhpcyBjb25jZXB0CisgICAgICAgIHdhcyBtZWFudCB0byBtYW5hZ2Ugd2hlbiB0aGUg
YWxyZWFkeS1jb25uZWN0ZWQgZ2FtZXBhZHMgY291bGQgYmUgcmV2ZWFsZWQgdG8gdGhlIHBhZ2Uu
CisgICAgICAgIAorICAgICAgICBJdCBvYnZpb3VzbHkgd2Fzbid0IG5lZWRlZCwgYXMgb25seSB0
aGUgSElEIHByb3ZpZGVyIHVzZWQgdGhlbSAoR2FtZUNvbnRyb2xsZXIgcHJvdmlkZXIgZGlkbid0
KQorICAgICAgICAKKyAgICAgICAgSW5zdGVhZCwgd2Ugc2hvdWxkIGp1c3QgYWx3YXlzIGluY2x1
ZGUgYSAiZG9lcyB0aGlzIGV2ZW50IG1ha2UgZ2FtZXBhZHMgdmlzaWJsZT8iIGJpdC4KKyAgICAg
ICAgCisgICAgICAgIFRoaXMgY2xlYW5zIHVwIGEgbG90IG9mIHdlaXJkIGNvZGUgZ2V0cyBib3Ro
IHByb3ZpZGVycyB3b3JraW5nIGNsb3NlciB0byBlYWNoIG90aGVyLgorICAgICAgICAKKyAgICAg
ICAgKiBNb2R1bGVzL2dhbWVwYWQvR2FtZXBhZE1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6R2FtZXBhZE1hbmFnZXI6OnBsYXRmb3JtR2FtZXBhZENvbm5lY3RlZCk6CisgICAgICAgIChX
ZWJDb3JlOjpHYW1lcGFkTWFuYWdlcjo6cGxhdGZvcm1HYW1lcGFkSW5wdXRBY3Rpdml0eSk6Cisg
ICAgICAgICogTW9kdWxlcy9nYW1lcGFkL0dhbWVwYWRNYW5hZ2VyLmg6CisgICAgICAgIAorICAg
ICAgICAqIHBsYXRmb3JtL2dhbWVwYWQvR2FtZXBhZFByb3ZpZGVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkdhbWVwYWRQcm92aWRlcjo6ZGlzcGF0Y2hQbGF0Zm9ybUdhbWVwYWRJbnB1dEFjdGl2
aXR5KToKKyAgICAgICAgCisgICAgICAgICogcGxhdGZvcm0vZ2FtZXBhZC9HYW1lcGFkUHJvdmlk
ZXJDbGllbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkdhbWVwYWRQcm92aWRlckNsaWVudDo6c2V0
SW5pdGlhbENvbm5lY3RlZEdhbWVwYWRzKTogRGVsZXRlZC4KKyAgICAgICAgCisgICAgICAgICog
cGxhdGZvcm0vZ2FtZXBhZC9jb2NvYS9HYW1lQ29udHJvbGxlckdhbWVwYWRQcm92aWRlci5tbToK
KyAgICAgICAgKFdlYkNvcmU6OkdhbWVDb250cm9sbGVyR2FtZXBhZFByb3ZpZGVyOjpjb250cm9s
bGVyRGlkQ29ubmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpHYW1lQ29udHJvbGxlckdhbWVwYWRQ
cm92aWRlcjo6bWFrZUludmlzaWJpbGVHYW1lcGFkc1Zpc2libGUpOgorICAgICAgICAKKyAgICAg
ICAgKiBwbGF0Zm9ybS9nYW1lcGFkL21hYy9ISURHYW1lcGFkUHJvdmlkZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SElER2FtZXBhZFByb3ZpZGVyOjpISURHYW1lcGFkUHJvdmlkZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6SElER2FtZXBhZFByb3ZpZGVyOjppbml0aWFsR2FtZXBhZHNDb25uZWN0
ZWRUaW1lckZpcmVkKToKKyAgICAgICAgKFdlYkNvcmU6OkhJREdhbWVwYWRQcm92aWRlcjo6b3Bl
bkFuZFNjaGVkdWxlTWFuYWdlcik6CisgICAgICAgIChXZWJDb3JlOjpISURHYW1lcGFkUHJvdmlk
ZXI6OmNsb3NlQW5kVW5zY2hlZHVsZU1hbmFnZXIpOgorICAgICAgICAoV2ViQ29yZTo6SElER2Ft
ZXBhZFByb3ZpZGVyOjpkZXZpY2VBZGRlZCk6CisgICAgICAgIChXZWJDb3JlOjpISURHYW1lcGFk
UHJvdmlkZXI6OmRldmljZVJlbW92ZWQpOgorICAgICAgICAoV2ViQ29yZTo6SElER2FtZXBhZFBy
b3ZpZGVyOjppbnB1dE5vdGlmaWNhdGlvblRpbWVyRmlyZWQpOgorICAgICAgICAoV2ViQ29yZTo6
SElER2FtZXBhZFByb3ZpZGVyOjpjb25uZWN0aW9uRGVsYXlUaW1lckZpcmVkKTogRGVsZXRlZC4K
KyAgICAgICAgKiBwbGF0Zm9ybS9nYW1lcGFkL21hYy9ISURHYW1lcGFkUHJvdmlkZXIuaDoKKyAg
ICAgICAgCisgICAgICAgICogdGVzdGluZy9Nb2NrR2FtZXBhZFByb3ZpZGVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6Ok1vY2tHYW1lcGFkUHJvdmlkZXI6OmNvbm5lY3RNb2NrR2FtZXBhZCk6CisK
IDIwMjAtMDctMDIgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgogCiAgICAgICAg
IEdhbWVDb250cm9sbGVyLmZyYW1ld29yayBzb2Z0IGxpbmtpbmcgcmVmYWN0b3JpbmcKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2FtZXBhZC9HYW1lcGFkTWFuYWdlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dhbWVwYWQvR2FtZXBhZE1hbmFnZXIuY3BwCmluZGV4
IDlmNzI0OTY5NThlLi40YzcxYWU4NjRiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9nYW1lcGFkL0dhbWVwYWRNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2dhbWVwYWQvR2FtZXBhZE1hbmFnZXIuY3BwCkBAIC01Nyw4ICs1NywxMSBAQCBHYW1lcGFk
TWFuYWdlcjo6R2FtZXBhZE1hbmFnZXIoKQogewogfQogCi12b2lkIEdhbWVwYWRNYW5hZ2VyOjpw
bGF0Zm9ybUdhbWVwYWRDb25uZWN0ZWQoUGxhdGZvcm1HYW1lcGFkJiBwbGF0Zm9ybUdhbWVwYWQp
Cit2b2lkIEdhbWVwYWRNYW5hZ2VyOjpwbGF0Zm9ybUdhbWVwYWRDb25uZWN0ZWQoUGxhdGZvcm1H
YW1lcGFkJiBwbGF0Zm9ybUdhbWVwYWQsIEV2ZW50TWFrZXNHYW1lcGFkc1Zpc2libGUgZXZlbnRW
aXNpYmlsaXR5KQogeworICAgIGlmIChldmVudFZpc2liaWxpdHkgPT0gRXZlbnRNYWtlc0dhbWVw
YWRzVmlzaWJsZTo6Tm8pCisgICAgICAgIHJldHVybjsKKwogICAgIC8vIE5vdGlmeSBibGluZCBO
YXZpZ2F0b3JzIGFuZCBXaW5kb3dzIGFib3V0IGFsbCBnYW1lcGFkcyBleGNlcHQgZm9yIHRoaXMg
b25lLgogICAgIGZvciAoYXV0byogZ2FtZXBhZCA6IEdhbWVwYWRQcm92aWRlcjo6c2luZ2xldG9u
KCkucGxhdGZvcm1HYW1lcGFkcygpKSB7CiAgICAgICAgIGlmICghZ2FtZXBhZCB8fCBnYW1lcGFk
ID09ICZwbGF0Zm9ybUdhbWVwYWQpCkBAIC0xMTMsOSArMTE2LDkgQEAgdm9pZCBHYW1lcGFkTWFu
YWdlcjo6cGxhdGZvcm1HYW1lcGFkRGlzY29ubmVjdGVkKFBsYXRmb3JtR2FtZXBhZCYgcGxhdGZv
cm1HYW1lcGEKICAgICB9CiB9CiAKLXZvaWQgR2FtZXBhZE1hbmFnZXI6OnBsYXRmb3JtR2FtZXBh
ZElucHV0QWN0aXZpdHkoYm9vbCBzaG91bGRNYWtlR2FtZXBhZFZpc2libGUpCit2b2lkIEdhbWVw
YWRNYW5hZ2VyOjpwbGF0Zm9ybUdhbWVwYWRJbnB1dEFjdGl2aXR5KEV2ZW50TWFrZXNHYW1lcGFk
c1Zpc2libGUgZXZlbnRWaXNpYmlsaXR5KQogewotICAgIGlmICghc2hvdWxkTWFrZUdhbWVwYWRW
aXNpYmxlKQorICAgIGlmIChldmVudFZpc2liaWxpdHkgPT0gRXZlbnRNYWtlc0dhbWVwYWRzVmlz
aWJsZTo6Tm8pCiAgICAgICAgIHJldHVybjsKIAogICAgIGlmIChtX2dhbWVwYWRCbGluZE5hdmln
YXRvcnMuaXNFbXB0eSgpICYmIG1fZ2FtZXBhZEJsaW5kRE9NV2luZG93cy5pc0VtcHR5KCkpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dhbWVwYWQvR2FtZXBhZE1hbmFnZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2FtZXBhZC9HYW1lcGFkTWFuYWdlci5oCmluZGV4
IDQ1ZTgxMmFkYzU0Li44MzQzN2RhMWJiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9nYW1lcGFkL0dhbWVwYWRNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9nYW1lcGFkL0dhbWVwYWRNYW5hZ2VyLmgKQEAgLTQ0LDkgKzQ0LDkgQEAgY2xhc3MgR2FtZXBh
ZE1hbmFnZXIgOiBwdWJsaWMgR2FtZXBhZFByb3ZpZGVyQ2xpZW50IHsKIHB1YmxpYzoKICAgICBz
dGF0aWMgR2FtZXBhZE1hbmFnZXImIHNpbmdsZXRvbigpOwogCi0gICAgdm9pZCBwbGF0Zm9ybUdh
bWVwYWRDb25uZWN0ZWQoUGxhdGZvcm1HYW1lcGFkJikgZmluYWw7CisgICAgdm9pZCBwbGF0Zm9y
bUdhbWVwYWRDb25uZWN0ZWQoUGxhdGZvcm1HYW1lcGFkJiwgRXZlbnRNYWtlc0dhbWVwYWRzVmlz
aWJsZSkgZmluYWw7CiAgICAgdm9pZCBwbGF0Zm9ybUdhbWVwYWREaXNjb25uZWN0ZWQoUGxhdGZv
cm1HYW1lcGFkJikgZmluYWw7Ci0gICAgdm9pZCBwbGF0Zm9ybUdhbWVwYWRJbnB1dEFjdGl2aXR5
KGJvb2wgc2hvdWxkTWFrZUdhbWVwYWRWaXNpYmxlKSBmaW5hbDsKKyAgICB2b2lkIHBsYXRmb3Jt
R2FtZXBhZElucHV0QWN0aXZpdHkoRXZlbnRNYWtlc0dhbWVwYWRzVmlzaWJsZSkgZmluYWw7CiAK
ICAgICB2b2lkIHJlZ2lzdGVyTmF2aWdhdG9yKE5hdmlnYXRvckdhbWVwYWQqKTsKICAgICB2b2lk
IHVucmVnaXN0ZXJOYXZpZ2F0b3IoTmF2aWdhdG9yR2FtZXBhZCopOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2FtZXBhZC9HYW1lcGFkUHJvdmlkZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ2FtZXBhZC9HYW1lcGFkUHJvdmlkZXIuY3BwCmluZGV4IDc5YzQ3
YWY0NmYxLi5hNTc0YWM5NTMyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z2FtZXBhZC9HYW1lcGFkUHJvdmlkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dhbWVwYWQvR2FtZXBhZFByb3ZpZGVyLmNwcApAQCAtNTMsNyArNTMsNyBAQCB2b2lkIEdhbWVw
YWRQcm92aWRlcjo6c2V0U2hhcmVkUHJvdmlkZXIoR2FtZXBhZFByb3ZpZGVyJiBuZXdQcm92aWRl
cikKIHZvaWQgR2FtZXBhZFByb3ZpZGVyOjpkaXNwYXRjaFBsYXRmb3JtR2FtZXBhZElucHV0QWN0
aXZpdHkoKQogewogICAgIGZvciAoYXV0byYgY2xpZW50IDogbV9jbGllbnRzKQotICAgICAgICBj
bGllbnQtPnBsYXRmb3JtR2FtZXBhZElucHV0QWN0aXZpdHkobV9zaG91bGRNYWtlR2FtZXBhZHNW
aXNpYmxlKTsKKyAgICAgICAgY2xpZW50LT5wbGF0Zm9ybUdhbWVwYWRJbnB1dEFjdGl2aXR5KG1f
c2hvdWxkTWFrZUdhbWVwYWRzVmlzaWJsZSA/IEV2ZW50TWFrZXNHYW1lcGFkc1Zpc2libGU6Olll
cyA6IEV2ZW50TWFrZXNHYW1lcGFkc1Zpc2libGU6Ok5vKTsKIAogICAgIG1fc2hvdWxkTWFrZUdh
bWVwYWRzVmlzaWJsZSA9IGZhbHNlOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ2FtZXBhZC9HYW1lcGFkUHJvdmlkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dhbWVwYWQvR2FtZXBhZFByb3ZpZGVyQ2xpZW50LmgKaW5kZXggMDZlYzQ5YWVmM2Uu
LmNhNmE3MDNlNDFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nYW1lcGFk
L0dhbWVwYWRQcm92aWRlckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dh
bWVwYWQvR2FtZXBhZFByb3ZpZGVyQ2xpZW50LmgKQEAgLTMzLDE0ICszMywxOCBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIGNsYXNzIFBsYXRmb3JtR2FtZXBhZDsKIAorZW51bSBjbGFzcyBFdmVu
dE1ha2VzR2FtZXBhZHNWaXNpYmxlIDogYm9vbCB7CisgICAgTm8sCisgICAgWWVzLAorfTsKKwog
Y2xhc3MgR2FtZXBhZFByb3ZpZGVyQ2xpZW50IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5HYW1l
cGFkUHJvdmlkZXJDbGllbnQoKSA9IGRlZmF1bHQ7CiAKLSAgICB2aXJ0dWFsIHZvaWQgc2V0SW5p
dGlhbENvbm5lY3RlZEdhbWVwYWRzKGNvbnN0IFZlY3RvcjxQbGF0Zm9ybUdhbWVwYWQqPiYpIHsg
fQotICAgIHZpcnR1YWwgdm9pZCBwbGF0Zm9ybUdhbWVwYWRDb25uZWN0ZWQoUGxhdGZvcm1HYW1l
cGFkJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBwbGF0Zm9ybUdhbWVwYWRDb25uZWN0ZWQoUGxh
dGZvcm1HYW1lcGFkJiwgRXZlbnRNYWtlc0dhbWVwYWRzVmlzaWJsZSkgPSAwOwogICAgIHZpcnR1
YWwgdm9pZCBwbGF0Zm9ybUdhbWVwYWREaXNjb25uZWN0ZWQoUGxhdGZvcm1HYW1lcGFkJikgPSAw
OwotICAgIHZpcnR1YWwgdm9pZCBwbGF0Zm9ybUdhbWVwYWRJbnB1dEFjdGl2aXR5KGJvb2wgc2hv
dWxkTWFrZUdhbWVwYWRWaXNpYmxlKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHBsYXRmb3JtR2Ft
ZXBhZElucHV0QWN0aXZpdHkoRXZlbnRNYWtlc0dhbWVwYWRzVmlzaWJsZSkgPSAwOwogfTsKIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ2FtZXBhZC9jb2NvYS9HYW1lQ29udHJvbGxlckdhbWVwYWRQcm92aWRlci5tbSBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dhbWVwYWQvY29jb2EvR2FtZUNvbnRyb2xsZXJHYW1lcGFkUHJv
dmlkZXIubW0KaW5kZXggZDE3ZDI0OTI4ZmEuLjQzMThiMGJhNzNkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9nYW1lcGFkL2NvY29hL0dhbWVDb250cm9sbGVyR2FtZXBhZFBy
b3ZpZGVyLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dhbWVwYWQvY29jb2EvR2Ft
ZUNvbnRyb2xsZXJHYW1lcGFkUHJvdmlkZXIubW0KQEAgLTczLDcgKzczLDcgQEAgdm9pZCBHYW1l
Q29udHJvbGxlckdhbWVwYWRQcm92aWRlcjo6Y29udHJvbGxlckRpZENvbm5lY3QoR0NDb250cm9s
bGVyICpjb250cm9sbGUKICAgICBtYWtlSW52aXNpYmlsZUdhbWVwYWRzVmlzaWJsZSgpOwogCiAg
ICAgZm9yIChhdXRvJiBjbGllbnQgOiBtX2NsaWVudHMpCi0gICAgICAgIGNsaWVudC0+cGxhdGZv
cm1HYW1lcGFkQ29ubmVjdGVkKCptX2dhbWVwYWRWZWN0b3JbaW5kZXhdKTsKKyAgICAgICAgY2xp
ZW50LT5wbGF0Zm9ybUdhbWVwYWRDb25uZWN0ZWQoKm1fZ2FtZXBhZFZlY3RvcltpbmRleF0sIEV2
ZW50TWFrZXNHYW1lcGFkc1Zpc2libGU6Olllcyk7CiB9CiAKIHZvaWQgR2FtZUNvbnRyb2xsZXJH
YW1lcGFkUHJvdmlkZXI6OmNvbnRyb2xsZXJEaWREaXNjb25uZWN0KEdDQ29udHJvbGxlciAqY29u
dHJvbGxlcikKQEAgLTE1MSw3ICsxNTEsNyBAQCB2b2lkIEdhbWVDb250cm9sbGVyR2FtZXBhZFBy
b3ZpZGVyOjptYWtlSW52aXNpYmlsZUdhbWVwYWRzVmlzaWJsZSgpCiB7CiAgICAgZm9yIChhdXRv
KiBnYW1lcGFkIDogbV9pbnZpc2libGVHYW1lcGFkcykgewogICAgICAgICBmb3IgKGF1dG8mIGNs
aWVudCA6IG1fY2xpZW50cykKLSAgICAgICAgICAgIGNsaWVudC0+cGxhdGZvcm1HYW1lcGFkQ29u
bmVjdGVkKCpnYW1lcGFkKTsKKyAgICAgICAgICAgIGNsaWVudC0+cGxhdGZvcm1HYW1lcGFkQ29u
bmVjdGVkKCpnYW1lcGFkLCBFdmVudE1ha2VzR2FtZXBhZHNWaXNpYmxlOjpZZXMpOwogICAgIH0K
IAogICAgIG1faW52aXNpYmxlR2FtZXBhZHMuY2xlYXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dhbWVwYWQvbWFjL0hJREdhbWVwYWRQcm92aWRlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9nYW1lcGFkL21hYy9ISURHYW1lcGFkUHJvdmlkZXIuY3BwCmlu
ZGV4IDZkMTRiNmIyMTYxLi42YWI2Y2QwOGM3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ2FtZXBhZC9tYWMvSElER2FtZXBhZFByb3ZpZGVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9nYW1lcGFkL21hYy9ISURHYW1lcGFkUHJvdmlkZXIuY3BwCkBAIC04
MSw4ICs4MSw3IEBAIEhJREdhbWVwYWRQcm92aWRlciYgSElER2FtZXBhZFByb3ZpZGVyOjpzaW5n
bGV0b24oKQogfQogCiBISURHYW1lcGFkUHJvdmlkZXI6OkhJREdhbWVwYWRQcm92aWRlcigpCi0g
ICAgOiBtX3Nob3VsZERpc3BhdGNoQ2FsbGJhY2tzKGZhbHNlKQotICAgICwgbV9jb25uZWN0aW9u
RGVsYXlUaW1lcigqdGhpcywgJkhJREdhbWVwYWRQcm92aWRlcjo6Y29ubmVjdGlvbkRlbGF5VGlt
ZXJGaXJlZCkKKyAgICA6IG1faW5pdGlhbEdhbWVwYWRzQ29ubmVjdGVkVGltZXIoKnRoaXMsICZI
SURHYW1lcGFkUHJvdmlkZXI6OmluaXRpYWxHYW1lcGFkc0Nvbm5lY3RlZFRpbWVyRmlyZWQpCiAg
ICAgLCBtX2lucHV0Tm90aWZpY2F0aW9uVGltZXIoKnRoaXMsICZISURHYW1lcGFkUHJvdmlkZXI6
OmlucHV0Tm90aWZpY2F0aW9uVGltZXJGaXJlZCkKIHsKICAgICBtX21hbmFnZXIgPSBhZG9wdENG
KElPSElETWFuYWdlckNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBrSU9ISURPcHRpb25zVHlw
ZU5vbmUpKTsKQEAgLTEyMiwxMiArMTIxLDkgQEAgdW5zaWduZWQgSElER2FtZXBhZFByb3ZpZGVy
OjppbmRleEZvck5ld2x5Q29ubmVjdGVkRGV2aWNlKCkKICAgICByZXR1cm4gaW5kZXg7CiB9CiAK
LXZvaWQgSElER2FtZXBhZFByb3ZpZGVyOjpjb25uZWN0aW9uRGVsYXlUaW1lckZpcmVkKCkKK3Zv
aWQgSElER2FtZXBhZFByb3ZpZGVyOjppbml0aWFsR2FtZXBhZHNDb25uZWN0ZWRUaW1lckZpcmVk
KCkKIHsKLSAgICBtX3Nob3VsZERpc3BhdGNoQ2FsbGJhY2tzID0gdHJ1ZTsKLQotICAgIGZvciAo
YXV0byogY2xpZW50IDogbV9jbGllbnRzKQotICAgICAgICBjbGllbnQtPnNldEluaXRpYWxDb25u
ZWN0ZWRHYW1lcGFkcyhtX2dhbWVwYWRWZWN0b3IpOworICAgIG1faW5pdGlhbEdhbWVwYWRzQ29u
bmVjdGVkID0gdHJ1ZTsKIH0KIAogdm9pZCBISURHYW1lcGFkUHJvdmlkZXI6Om9wZW5BbmRTY2hl
ZHVsZU1hbmFnZXIoKQpAQCAtMTM3LDE0ICsxMzMsMTQgQEAgdm9pZCBISURHYW1lcGFkUHJvdmlk
ZXI6Om9wZW5BbmRTY2hlZHVsZU1hbmFnZXIoKQogICAgIEFTU0VSVChtX2dhbWVwYWRWZWN0b3Iu
aXNFbXB0eSgpKTsKICAgICBBU1NFUlQobV9nYW1lcGFkTWFwLmlzRW1wdHkoKSk7CiAKLSAgICBt
X3Nob3VsZERpc3BhdGNoQ2FsbGJhY2tzID0gZmFsc2U7CisgICAgbV9pbml0aWFsR2FtZXBhZHND
b25uZWN0ZWQgPSBmYWxzZTsKIAogICAgIElPSElETWFuYWdlclNjaGVkdWxlV2l0aFJ1bkxvb3Ao
bV9tYW5hZ2VyLmdldCgpLCBDRlJ1bkxvb3BHZXRDdXJyZW50KCksIGtDRlJ1bkxvb3BEZWZhdWx0
TW9kZSk7CiAgICAgSU9ISURNYW5hZ2VyT3BlbihtX21hbmFnZXIuZ2V0KCksIGtJT0hJRE9wdGlv
bnNUeXBlTm9uZSk7CiAKICAgICAvLyBBbnkgY29ubmVjdGlvbnMgd2UgYXJlIG5vdGlmaWVkIG9m
IHdpdGhpbiB0aGUgY29ubmVjdGlvbkRlbGF5SW50ZXJ2YWwgb2YgbGlzdGVuaW5nIGxpa2VseSBy
ZXByZXNlbnQKICAgICAvLyBkZXZpY2VzIHRoYXQgd2VyZSBhbHJlYWR5IGNvbm5lY3RlZCwgc28g
d2Ugc3VwcHJlc3Mgbm90aWZ5aW5nIGNsaWVudHMgb2YgdGhlc2UuCi0gICAgbV9jb25uZWN0aW9u
RGVsYXlUaW1lci5zdGFydE9uZVNob3QoY29ubmVjdGlvbkRlbGF5SW50ZXJ2YWwpOworICAgIG1f
aW5pdGlhbEdhbWVwYWRzQ29ubmVjdGVkVGltZXIuc3RhcnRPbmVTaG90KGNvbm5lY3Rpb25EZWxh
eUludGVydmFsKTsKIH0KIAogdm9pZCBISURHYW1lcGFkUHJvdmlkZXI6OmNsb3NlQW5kVW5zY2hl
ZHVsZU1hbmFnZXIoKQpAQCAtMTU3LDcgKzE1Myw3IEBAIHZvaWQgSElER2FtZXBhZFByb3ZpZGVy
OjpjbG9zZUFuZFVuc2NoZWR1bGVNYW5hZ2VyKCkKICAgICBtX2dhbWVwYWRWZWN0b3IuY2xlYXIo
KTsKICAgICBtX2dhbWVwYWRNYXAuY2xlYXIoKTsKIAotICAgIG1fY29ubmVjdGlvbkRlbGF5VGlt
ZXIuc3RvcCgpOworICAgIG1faW5pdGlhbEdhbWVwYWRzQ29ubmVjdGVkVGltZXIuc3RvcCgpOwog
fQogCiB2b2lkIEhJREdhbWVwYWRQcm92aWRlcjo6c3RhcnRNb25pdG9yaW5nR2FtZXBhZHMoR2Ft
ZXBhZFByb3ZpZGVyQ2xpZW50JiBjbGllbnQpCkBAIC0xOTUsMjEgKzE5MSwxOCBAQCB2b2lkIEhJ
REdhbWVwYWRQcm92aWRlcjo6ZGV2aWNlQWRkZWQoSU9ISUREZXZpY2VSZWYgZGV2aWNlKQogICAg
IG1fZ2FtZXBhZFZlY3RvcltpbmRleF0gPSBnYW1lcGFkLmdldCgpOwogICAgIG1fZ2FtZXBhZE1h
cC5zZXQoZGV2aWNlLCBXVEZNb3ZlKGdhbWVwYWQpKTsKIAotICAgIGlmICghbV9zaG91bGREaXNw
YXRjaENhbGxiYWNrcykgeworICAgIGlmICghbV9pbml0aWFsR2FtZXBhZHNDb25uZWN0ZWQpIHsK
ICAgICAgICAgLy8gVGhpcyBhZGRlZCBkZXZpY2UgaXMgdGhlIHJlc3VsdCBvZiB1cyBzdGFydGlu
ZyB0byBtb25pdG9yIGdhbWVwYWRzLgogICAgICAgICAvLyBXZSdsbCBnZXQgbm90aWZpZWQgb2Yg
YWxsIGNvbm5lY3RlZCBkZXZpY2VzIGR1cmluZyB0aGlzIGN1cnJlbnQgc3BpbiBvZiB0aGUgcnVu
bG9vcAotICAgICAgICAvLyBhbmQgd2UgZG9uJ3Qgd2FudCB0byB0ZWxsIHRoZSBjbGllbnQgYWJv
dXQgYW55IG9mIHRoZW0uCi0gICAgICAgIC8vIFRoZSBtX2Nvbm5lY3Rpb25EZWxheVRpbWVyIGZp
cmVzIGluIGEgc3Vic2VxdWVudCBzcGluIG9mIHRoZSBydW5sb29wIGFmdGVyIHdoaWNoCi0gICAg
ICAgIC8vIGFueSBjb25uZWN0aW9uIGV2ZW50cyBhcmUgYWN0dWFsIG5ldyBkZXZpY2VzLgotICAg
ICAgICBtX2Nvbm5lY3Rpb25EZWxheVRpbWVyLnN0YXJ0T25lU2hvdCgwX3MpOwotCi0gICAgICAg
IExPRyhHYW1lcGFkLCAiRGV2aWNlICVwIHdhcyBhZGRlZCB3aGlsZSBzdXBwcmVzc2luZyBjYWxs
YmFja3MsIHNvIHRoaXMgc2hvdWxkIGJlIGFuICdhbHJlYWR5IGNvbm5lY3RlZCcgZXZlbnQiLCBk
ZXZpY2UpOwotCi0gICAgICAgIHJldHVybjsKKyAgICAgICAgLy8gYW5kIHRoZSBjbGllbnQgc2hv
dWxkIGJlIHRvbGQgdGhleSB3ZXJlIGFscmVhZHkgY29ubmVjdGVkLgorICAgICAgICAvLyBUaGUg
bV9pbml0aWFsR2FtZXBhZHNDb25uZWN0ZWRUaW1lciBmaXJlcyBpbiBhIHN1YnNlcXVlbnQgc3Bp
biBvZiB0aGUgcnVubG9vcCBhZnRlciB3aGljaAorICAgICAgICAvLyBhbnkgY29ubmVjdGlvbiBl
dmVudHMgYXJlIGFjdHVhbCBuZXcgZGV2aWNlcyBhbmQgY2FuIHRyaWdnZXIgZ2FtZXBhZCB2aXNp
YmlsaXR5LgorICAgICAgICBpZiAoIW1faW5pdGlhbEdhbWVwYWRzQ29ubmVjdGVkVGltZXIuaXNB
Y3RpdmUoKSkKKyAgICAgICAgICAgIG1faW5pdGlhbEdhbWVwYWRzQ29ubmVjdGVkVGltZXIuc3Rh
cnRPbmVTaG90KDBfcyk7CiAgICAgfQogCiAgICAgZm9yIChhdXRvJiBjbGllbnQgOiBtX2NsaWVu
dHMpCi0gICAgICAgIGNsaWVudC0+cGxhdGZvcm1HYW1lcGFkQ29ubmVjdGVkKCptX2dhbWVwYWRW
ZWN0b3JbaW5kZXhdKTsKKyAgICAgICAgY2xpZW50LT5wbGF0Zm9ybUdhbWVwYWRDb25uZWN0ZWQo
Km1fZ2FtZXBhZFZlY3RvcltpbmRleF0sIG1faW5pdGlhbEdhbWVwYWRzQ29ubmVjdGVkID8gRXZl
bnRNYWtlc0dhbWVwYWRzVmlzaWJsZTo6WWVzIDogRXZlbnRNYWtlc0dhbWVwYWRzVmlzaWJsZTo6
Tm8pOwogfQogCiB2b2lkIEhJREdhbWVwYWRQcm92aWRlcjo6ZGV2aWNlUmVtb3ZlZChJT0hJRERl
dmljZVJlZiBkZXZpY2UpCkBAIC0yMTksMTAgKzIxMiw2IEBAIHZvaWQgSElER2FtZXBhZFByb3Zp
ZGVyOjpkZXZpY2VSZW1vdmVkKElPSElERGV2aWNlUmVmIGRldmljZSkKICAgICBzdGQ6OnVuaXF1
ZV9wdHI8SElER2FtZXBhZD4gcmVtb3ZlZEdhbWVwYWQgPSByZW1vdmVHYW1lcGFkRm9yRGV2aWNl
KGRldmljZSk7CiAgICAgQVNTRVJUKHJlbW92ZWRHYW1lcGFkKTsKIAotICAgIC8vIEFueSB0aW1l
IHdlIGdldCBhIGRldmljZSByZW1vdmVkIGNhbGxiYWNrIHdlIGtub3cgaXQncyBhIHJlYWwgZXZl
bnQgYW5kIG5vdCBhbiAnYWxyZWFkeSBjb25uZWN0ZWQnIGV2ZW50LgotICAgIC8vIFdlIHNob3Vs
ZCBhbHdheXMgc3RvcCBzdXBwcmVzc2luZyBjYWxsYmFja3Mgd2hlbiB3ZSByZWNlaXZlIHN1Y2gg
YW4gZXZlbnQuCi0gICAgbV9zaG91bGREaXNwYXRjaENhbGxiYWNrcyA9IHRydWU7Ci0KICAgICBm
b3IgKGF1dG8mIGNsaWVudCA6IG1fY2xpZW50cykKICAgICAgICAgY2xpZW50LT5wbGF0Zm9ybUdh
bWVwYWREaXNjb25uZWN0ZWQoKnJlbW92ZWRHYW1lcGFkKTsKIH0KQEAgLTI0OCw4ICsyMzcsMTAg
QEAgdm9pZCBISURHYW1lcGFkUHJvdmlkZXI6OnZhbHVlc0NoYW5nZWQoSU9ISURWYWx1ZVJlZiB2
YWx1ZSkKIAogdm9pZCBISURHYW1lcGFkUHJvdmlkZXI6OmlucHV0Tm90aWZpY2F0aW9uVGltZXJG
aXJlZCgpCiB7Ci0gICAgaWYgKCFtX3Nob3VsZERpc3BhdGNoQ2FsbGJhY2tzKQorICAgIGlmICgh
bV9pbml0aWFsR2FtZXBhZHNDb25uZWN0ZWQpIHsKKyAgICAgICAgbV9pbnB1dE5vdGlmaWNhdGlv
blRpbWVyLnN0YXJ0T25lU2hvdCgwX3MpOwogICAgICAgICByZXR1cm47CisgICAgfQogCiAgICAg
ZGlzcGF0Y2hQbGF0Zm9ybUdhbWVwYWRJbnB1dEFjdGl2aXR5KCk7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nYW1lcGFkL21hYy9ISURHYW1lcGFkUHJvdmlkZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dhbWVwYWQvbWFjL0hJREdhbWVwYWRQcm92aWRlci5o
CmluZGV4IGZkNWZkZTkxYjY0Li4xYmI1NGVlNTYxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ2FtZXBhZC9tYWMvSElER2FtZXBhZFByb3ZpZGVyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ2FtZXBhZC9tYWMvSElER2FtZXBhZFByb3ZpZGVyLmgKQEAgLTY0
LDcgKzY0LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIG9wZW5BbmRTY2hlZHVsZU1hbmFnZXIoKTsK
ICAgICB2b2lkIGNsb3NlQW5kVW5zY2hlZHVsZU1hbmFnZXIoKTsKIAotICAgIHZvaWQgY29ubmVj
dGlvbkRlbGF5VGltZXJGaXJlZCgpOworICAgIHZvaWQgaW5pdGlhbEdhbWVwYWRzQ29ubmVjdGVk
VGltZXJGaXJlZCgpOwogICAgIHZvaWQgaW5wdXROb3RpZmljYXRpb25UaW1lckZpcmVkKCk7CiAK
ICAgICB1bnNpZ25lZCBpbmRleEZvck5ld2x5Q29ubmVjdGVkRGV2aWNlKCk7CkBAIC03NCw5ICs3
NCw5IEBAIHByaXZhdGU6CiAKICAgICBSZXRhaW5QdHI8SU9ISURNYW5hZ2VyUmVmPiBtX21hbmFn
ZXI7CiAKLSAgICBib29sIG1fc2hvdWxkRGlzcGF0Y2hDYWxsYmFja3M7CisgICAgYm9vbCBtX2lu
aXRpYWxHYW1lcGFkc0Nvbm5lY3RlZCB7IGZhbHNlIH07CiAKLSAgICBUaW1lciBtX2Nvbm5lY3Rp
b25EZWxheVRpbWVyOworICAgIFRpbWVyIG1faW5pdGlhbEdhbWVwYWRzQ29ubmVjdGVkVGltZXI7
CiAgICAgVGltZXIgbV9pbnB1dE5vdGlmaWNhdGlvblRpbWVyOwogfTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrR2FtZXBhZFByb3ZpZGVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvTW9ja0dhbWVwYWRQcm92aWRlci5jcHAKaW5kZXggNjE1MGY1MmEzZmEu
LjZiMTE2ZTc2MjU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tHYW1l
cGFkUHJvdmlkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja0dhbWVwYWRQ
cm92aWRlci5jcHAKQEAgLTg3LDcgKzg3LDcgQEAgYm9vbCBNb2NrR2FtZXBhZFByb3ZpZGVyOjpj
b25uZWN0TW9ja0dhbWVwYWQodW5zaWduZWQgaW5kZXgpCiAgICAgbV9jb25uZWN0ZWRHYW1lcGFk
VmVjdG9yW2luZGV4XSA9IG1fbW9ja0dhbWVwYWRWZWN0b3JbaW5kZXhdLmdldCgpOwogCiAgICAg
Zm9yIChhdXRvJiBjbGllbnQgOiBtX2NsaWVudHMpCi0gICAgICAgIGNsaWVudC0+cGxhdGZvcm1H
YW1lcGFkQ29ubmVjdGVkKCptX2Nvbm5lY3RlZEdhbWVwYWRWZWN0b3JbaW5kZXhdKTsKKyAgICAg
ICAgY2xpZW50LT5wbGF0Zm9ybUdhbWVwYWRDb25uZWN0ZWQoKm1fY29ubmVjdGVkR2FtZXBhZFZl
Y3RvcltpbmRleF0sIEV2ZW50TWFrZXNHYW1lcGFkc1Zpc2libGU6Olllcyk7CiAKICAgICByZXR1
cm4gdHJ1ZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNTRhMmUwYjNlM2YuLjlkMGM2OTU3YjM0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDQzIEBACisyMDIwLTA3LTA2ICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFw
cGxlLmNvbT4KKworICAgICAgICBHZXQgcmlkIG9mIGNvbmNlcHQgb2YgImluaXRpYWwgY29ubmVj
dGVkIGdhbWVwYWRzIgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjE0MDEwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBTY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weToKKworICAgICAgICAqIFVJUHJvY2Vz
cy9HYW1lcGFkL1VJR2FtZXBhZFByb3ZpZGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6VUlHYW1l
cGFkUHJvdmlkZXI6OmdhbWVwYWRTeW5jVGltZXJGaXJlZCk6CisgICAgICAgIChXZWJLaXQ6OlVJ
R2FtZXBhZFByb3ZpZGVyOjpwbGF0Zm9ybUdhbWVwYWRDb25uZWN0ZWQpOgorICAgICAgICAoV2Vi
S2l0OjpVSUdhbWVwYWRQcm92aWRlcjo6cGxhdGZvcm1HYW1lcGFkSW5wdXRBY3Rpdml0eSk6Cisg
ICAgICAgIChXZWJLaXQ6OlVJR2FtZXBhZFByb3ZpZGVyOjpzZXRJbml0aWFsQ29ubmVjdGVkR2Ft
ZXBhZHMpOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9HYW1lcGFkL1VJR2FtZXBhZFBy
b3ZpZGVyLmg6CisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpnYW1lcGFkQWN0aXZpdHkpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNz
UG9vbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpnYW1lcGFkQ29ubmVj
dGVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnNldEluaXRpYWxDb25uZWN0
ZWRHYW1lcGFkcyk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29s
Lmg6CisKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dhbWVwYWQvV2ViR2FtZXBhZFByb3ZpZGVyLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViR2FtZXBhZFByb3ZpZGVyOjpnYW1lcGFkQ29ubmVjdGVk
KToKKyAgICAgICAgKFdlYktpdDo6V2ViR2FtZXBhZFByb3ZpZGVyOjpnYW1lcGFkQWN0aXZpdHkp
OgorICAgICAgICAqIFdlYlByb2Nlc3MvR2FtZXBhZC9XZWJHYW1lcGFkUHJvdmlkZXIuaDoKKwor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZTo6Z2FtZXBhZEFjdGl2aXR5KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3Nh
Z2VzLmluOgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViUHJvY2Vzczo6Z2FtZXBhZENvbm5lY3RlZCk6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJQcm9jZXNzLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3Nh
Z2VzLmluOgorCiAyMDIwLTA3LTAyICBLYXRlIENoZW5leSAgPGthdGhlcmluZV9jaGVuZXlAYXBw
bGUuY29tPgogCiAgICAgICAgIEN1c3RvbSBVUkwgc2NoZW1lcyBzaG91bGQgYmUgdHJlYXRlZCBh
cyBhcHAtYm91bmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVz
c2FnZXMucHkgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CmluZGV4
IDYyNThhN2Y1NjRiLi42OWIzNTlmNDg3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TY3Jp
cHRzL3dlYmtpdC9tZXNzYWdlcy5weQorKysgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0
L21lc3NhZ2VzLnB5CkBAIC01OTksNiArNTk5LDcgQEAgZGVmIGhlYWRlcnNfZm9yX3R5cGUodHlw
ZSk6CiAgICAgICAgICdXZWJDb3JlOjpTaGFyZURhdGFXaXRoUGFyc2VkVVJMJzogWyc8V2ViQ29y
ZS9TaGFyZURhdGEuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OkZvbnRDaGFuZ2VzJzogWyc8V2Vi
Q29yZS9Gb250QXR0cmlidXRlQ2hhbmdlcy5oPiddLAogICAgICAgICAnV2ViQ29yZTo6RnJhbWVM
b2FkVHlwZSc6IFsnPFdlYkNvcmUvRnJhbWVMb2FkZXJUeXBlcy5oPiddLAorICAgICAgICAnV2Vi
Q29yZTo6RXZlbnRNYWtlc0dhbWVwYWRzVmlzaWJsZSc6IFsnPFdlYkNvcmUvR2FtZXBhZFByb3Zp
ZGVyQ2xpZW50Lmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpHZW5lcmljQ3VlRGF0YSc6IFsnPFdl
YkNvcmUvSW5iYW5kR2VuZXJpY0N1ZS5oPiddLAogICAgICAgICAnV2ViQ29yZTo6R3JhbW1hckRl
dGFpbCc6IFsnPFdlYkNvcmUvVGV4dENoZWNrZXJDbGllbnQuaD4nXSwKICAgICAgICAgJ1dlYkNv
cmU6Okhhc0luc2VjdXJlQ29udGVudCc6IFsnPFdlYkNvcmUvRnJhbWVMb2FkZXJUeXBlcy5oPidd
LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvR2FtZXBhZC9VSUdhbWVwYWRQ
cm92aWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9HYW1lcGFkL1VJR2FtZXBhZFBy
b3ZpZGVyLmNwcAppbmRleCA5OTk5MzczZjAyMy4uNTlhNjhlZTRiYjggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0dhbWVwYWQvVUlHYW1lcGFkUHJvdmlkZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0dhbWVwYWQvVUlHYW1lcGFkUHJvdmlkZXIuY3BwCkBA
IC02NSw3ICs2NSw3IEBAIHZvaWQgVUlHYW1lcGFkUHJvdmlkZXI6OmdhbWVwYWRTeW5jVGltZXJG
aXJlZCgpCiAgICAgaWYgKCF3ZWJQYWdlUHJveHkgfHwgIW1fcHJvY2Vzc1Bvb2xzVXNpbmdHYW1l
cGFkcy5jb250YWlucygmd2ViUGFnZVByb3h5LT5wcm9jZXNzKCkucHJvY2Vzc1Bvb2woKSkpCiAg
ICAgICAgIHJldHVybjsKIAotICAgIHdlYlBhZ2VQcm94eS0+Z2FtZXBhZEFjdGl2aXR5KHNuYXBz
aG90R2FtZXBhZHMoKSwgbV9zaG91bGRNYWtlR2FtZXBhZHNWaXNpYmxlT25TeW5jKTsKKyAgICB3
ZWJQYWdlUHJveHktPmdhbWVwYWRBY3Rpdml0eShzbmFwc2hvdEdhbWVwYWRzKCksIG1fc2hvdWxk
TWFrZUdhbWVwYWRzVmlzaWJsZU9uU3luYyA/IEV2ZW50TWFrZXNHYW1lcGFkc1Zpc2libGU6Olll
cyA6IEV2ZW50TWFrZXNHYW1lcGFkc1Zpc2libGU6Ok5vKTsKICAgICBtX3Nob3VsZE1ha2VHYW1l
cGFkc1Zpc2libGVPblN5bmMgPSBmYWxzZTsKIH0KIApAQCAtODIsMjYgKzgyLDEwIEBAIHZvaWQg
VUlHYW1lcGFkUHJvdmlkZXI6OnNjaGVkdWxlR2FtZXBhZFN0YXRlU3luYygpCiAgICAgbV9nYW1l
cGFkU3luY1RpbWVyLnN0YXJ0T25lU2hvdChtYXhpbXVtR2FtZXBhZFVwZGF0ZUludGVydmFsKTsK
IH0KIAotdm9pZCBVSUdhbWVwYWRQcm92aWRlcjo6c2V0SW5pdGlhbENvbm5lY3RlZEdhbWVwYWRz
KGNvbnN0IFZlY3RvcjxQbGF0Zm9ybUdhbWVwYWQqPiYgaW5pdGlhbEdhbWVwYWRzKQordm9pZCBV
SUdhbWVwYWRQcm92aWRlcjo6cGxhdGZvcm1HYW1lcGFkQ29ubmVjdGVkKFBsYXRmb3JtR2FtZXBh
ZCYgZ2FtZXBhZCwgRXZlbnRNYWtlc0dhbWVwYWRzVmlzaWJsZSBldmVudFZpc2liaWxpdHkpCiB7
Ci0gICAgQVNTRVJUKCFtX2hhc0luaXRpYWxHYW1lcGFkcyk7CisgICAgTE9HKEdhbWVwYWQsICJV
SUdhbWVwYWRQcm92aWRlcjo6cGxhdGZvcm1HYW1lcGFkQ29ubmVjdGVkIC0gSW5kZXggJWkgYXR0
YWNoZWQgKHZpc2liaWxpdHk6ICVpKVxuIiwgZ2FtZXBhZC5pbmRleCgpLCAoaW50KWV2ZW50Vmlz
aWJpbGl0eSk7CiAKLSAgICBtX2dhbWVwYWRzLnJlc2l6ZShpbml0aWFsR2FtZXBhZHMuc2l6ZSgp
KTsKLQotICAgIGZvciAoYXV0byogZ2FtZXBhZCA6IGluaXRpYWxHYW1lcGFkcykgewotICAgICAg
ICBpZiAoIWdhbWVwYWQpCi0gICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgbV9nYW1lcGFk
c1tnYW1lcGFkLT5pbmRleCgpXSA9IG1ha2VVbmlxdWU8VUlHYW1lcGFkPigqZ2FtZXBhZCk7Ci0g
ICAgfQotCi0gICAgZm9yIChhdXRvJiBwb29sIDogbV9wcm9jZXNzUG9vbHNVc2luZ0dhbWVwYWRz
KQotICAgICAgICBwb29sLT5zZXRJbml0aWFsQ29ubmVjdGVkR2FtZXBhZHMobV9nYW1lcGFkcyk7
Ci0KLSAgICBtX2hhc0luaXRpYWxHYW1lcGFkcyA9IHRydWU7Ci19Ci0KLXZvaWQgVUlHYW1lcGFk
UHJvdmlkZXI6OnBsYXRmb3JtR2FtZXBhZENvbm5lY3RlZChQbGF0Zm9ybUdhbWVwYWQmIGdhbWVw
YWQpCi17CiAgICAgaWYgKG1fZ2FtZXBhZHMuc2l6ZSgpIDw9IGdhbWVwYWQuaW5kZXgoKSkKICAg
ICAgICAgbV9nYW1lcGFkcy5ncm93KGdhbWVwYWQuaW5kZXgoKSArIDEpOwogCkBAIC0xMTEsNyAr
OTUsNyBAQCB2b2lkIFVJR2FtZXBhZFByb3ZpZGVyOjpwbGF0Zm9ybUdhbWVwYWRDb25uZWN0ZWQo
UGxhdGZvcm1HYW1lcGFkJiBnYW1lcGFkKQogICAgIHNjaGVkdWxlR2FtZXBhZFN0YXRlU3luYygp
OwogCiAgICAgZm9yIChhdXRvJiBwb29sIDogbV9wcm9jZXNzUG9vbHNVc2luZ0dhbWVwYWRzKQot
ICAgICAgICBwb29sLT5nYW1lcGFkQ29ubmVjdGVkKCptX2dhbWVwYWRzW2dhbWVwYWQuaW5kZXgo
KV0pOworICAgICAgICBwb29sLT5nYW1lcGFkQ29ubmVjdGVkKCptX2dhbWVwYWRzW2dhbWVwYWQu
aW5kZXgoKV0sIGV2ZW50VmlzaWJpbGl0eSk7CiB9CiAKIHZvaWQgVUlHYW1lcGFkUHJvdmlkZXI6
OnBsYXRmb3JtR2FtZXBhZERpc2Nvbm5lY3RlZChQbGF0Zm9ybUdhbWVwYWQmIGdhbWVwYWQpCkBA
IC0xMjcsNyArMTExLDcgQEAgdm9pZCBVSUdhbWVwYWRQcm92aWRlcjo6cGxhdGZvcm1HYW1lcGFk
RGlzY29ubmVjdGVkKFBsYXRmb3JtR2FtZXBhZCYgZ2FtZXBhZCkKICAgICAgICAgcG9vbC0+Z2Ft
ZXBhZERpc2Nvbm5lY3RlZCgqZGlzY29ubmVjdGVkR2FtZXBhZCk7CiB9CiAKLXZvaWQgVUlHYW1l
cGFkUHJvdmlkZXI6OnBsYXRmb3JtR2FtZXBhZElucHV0QWN0aXZpdHkoYm9vbCBzaG91bGRNYWtl
R2FtZXBhZHNWaXNpYmxlKQordm9pZCBVSUdhbWVwYWRQcm92aWRlcjo6cGxhdGZvcm1HYW1lcGFk
SW5wdXRBY3Rpdml0eShFdmVudE1ha2VzR2FtZXBhZHNWaXNpYmxlIGV2ZW50VmlzaWJpbGl0eSkK
IHsKICAgICBhdXRvIHBsYXRmb3JtR2FtZXBhZHMgPSBHYW1lcGFkUHJvdmlkZXI6OnNpbmdsZXRv
bigpLnBsYXRmb3JtR2FtZXBhZHMoKTsKICAgICBBU1NFUlQocGxhdGZvcm1HYW1lcGFkcy5zaXpl
KCkgPT0gbV9nYW1lcGFkcy5zaXplKCkpOwpAQCAtMTQyLDcgKzEyNiw3IEBAIHZvaWQgVUlHYW1l
cGFkUHJvdmlkZXI6OnBsYXRmb3JtR2FtZXBhZElucHV0QWN0aXZpdHkoYm9vbCBzaG91bGRNYWtl
R2FtZXBhZHNWaXNpCiAgICAgICAgIG1fZ2FtZXBhZHNbaV0tPnVwZGF0ZUZyb21QbGF0Zm9ybUdh
bWVwYWQoKnBsYXRmb3JtR2FtZXBhZHNbaV0pOwogICAgIH0KIAotICAgIGlmIChzaG91bGRNYWtl
R2FtZXBhZHNWaXNpYmxlKQorICAgIGlmIChldmVudFZpc2liaWxpdHkgPT0gRXZlbnRNYWtlc0dh
bWVwYWRzVmlzaWJsZTo6WWVzKQogICAgICAgICBtX3Nob3VsZE1ha2VHYW1lcGFkc1Zpc2libGVP
blN5bmMgPSB0cnVlOwogCiAgICAgc2NoZWR1bGVHYW1lcGFkU3RhdGVTeW5jKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9HYW1lcGFkL1VJR2FtZXBhZFByb3ZpZGVyLmgg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9HYW1lcGFkL1VJR2FtZXBhZFByb3ZpZGVyLmgKaW5k
ZXggODZlODk3ZTljNWQuLjNlYTcwMWM3MzgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9HYW1lcGFkL1VJR2FtZXBhZFByb3ZpZGVyLmgKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvR2FtZXBhZC9VSUdhbWVwYWRQcm92aWRlci5oCkBAIC03MCwxMCArNzAsOSBAQCBw
cml2YXRlOgogICAgIHZvaWQgcGxhdGZvcm1TdG9wTW9uaXRvcmluZ0lucHV0KCk7CiAgICAgdm9p
ZCBwbGF0Zm9ybVN0YXJ0TW9uaXRvcmluZ0lucHV0KCk7CiAKLSAgICB2b2lkIHNldEluaXRpYWxD
b25uZWN0ZWRHYW1lcGFkcyhjb25zdCBWZWN0b3I8V2ViQ29yZTo6UGxhdGZvcm1HYW1lcGFkKj4m
KSBmaW5hbDsKLSAgICB2b2lkIHBsYXRmb3JtR2FtZXBhZENvbm5lY3RlZChXZWJDb3JlOjpQbGF0
Zm9ybUdhbWVwYWQmKSBmaW5hbDsKKyAgICB2b2lkIHBsYXRmb3JtR2FtZXBhZENvbm5lY3RlZChX
ZWJDb3JlOjpQbGF0Zm9ybUdhbWVwYWQmLCBXZWJDb3JlOjpFdmVudE1ha2VzR2FtZXBhZHNWaXNp
YmxlKSBmaW5hbDsKICAgICB2b2lkIHBsYXRmb3JtR2FtZXBhZERpc2Nvbm5lY3RlZChXZWJDb3Jl
OjpQbGF0Zm9ybUdhbWVwYWQmKSBmaW5hbDsKLSAgICB2b2lkIHBsYXRmb3JtR2FtZXBhZElucHV0
QWN0aXZpdHkoYm9vbCBzaG91bGRNYWtlR2FtZXBhZHNWaXNpYmxlKSBmaW5hbDsKKyAgICB2b2lk
IHBsYXRmb3JtR2FtZXBhZElucHV0QWN0aXZpdHkoV2ViQ29yZTo6RXZlbnRNYWtlc0dhbWVwYWRz
VmlzaWJsZSkgZmluYWw7CiAKICAgICB2b2lkIHNjaGVkdWxlR2FtZXBhZFN0YXRlU3luYygpOwog
ICAgIHZvaWQgZ2FtZXBhZFN5bmNUaW1lckZpcmVkKCk7CkBAIC04NSw3ICs4NCw2IEBAIHByaXZh
dGU6CiAgICAgUnVuTG9vcDo6VGltZXI8VUlHYW1lcGFkUHJvdmlkZXI+IG1fZ2FtZXBhZFN5bmNU
aW1lcjsKIAogICAgIGJvb2wgbV9pc01vbml0b3JpbmdHYW1lcGFkcyB7IGZhbHNlIH07Ci0gICAg
Ym9vbCBtX2hhc0luaXRpYWxHYW1lcGFkcyB7IGZhbHNlIH07CiAgICAgYm9vbCBtX3Nob3VsZE1h
a2VHYW1lcGFkc1Zpc2libGVPblN5bmMgeyBmYWxzZSB9OwogfTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggNzY2M2I0NDc5NDcuLjNhOGY0MDVhMzVmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTc5MTksOSArNzkx
OSw5IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpiYWNrRm9yd2FyZENsZWFyKCkKIAogI2lmIEVOQUJM
RShHQU1FUEFEKQogCi12b2lkIFdlYlBhZ2VQcm94eTo6Z2FtZXBhZEFjdGl2aXR5KGNvbnN0IFZl
Y3RvcjxHYW1lcGFkRGF0YT4mIGdhbWVwYWREYXRhcywgYm9vbCBzaG91bGRNYWtlR2FtZXBhZHNW
aXNpYmxlKQordm9pZCBXZWJQYWdlUHJveHk6OmdhbWVwYWRBY3Rpdml0eShjb25zdCBWZWN0b3I8
R2FtZXBhZERhdGE+JiBnYW1lcGFkRGF0YXMsIEV2ZW50TWFrZXNHYW1lcGFkc1Zpc2libGUgZXZl
bnRWaXNpYmlsaXR5KQogewotICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkdhbWVwYWRBY3Rp
dml0eShnYW1lcGFkRGF0YXMsIHNob3VsZE1ha2VHYW1lcGFkc1Zpc2libGUpKTsKKyAgICBzZW5k
KE1lc3NhZ2VzOjpXZWJQYWdlOjpHYW1lcGFkQWN0aXZpdHkoZ2FtZXBhZERhdGFzLCBldmVudFZp
c2liaWxpdHkpKTsKIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5oCmluZGV4IGY4Y2U1MDhlYTE3Li5iYzcyMzk5YmMwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmgKQEAgLTIyOSw2ICsyMjksNyBAQCBjbGFzcyBWYWxpZGF0aW9uQnVi
YmxlOwogCiBlbnVtIGNsYXNzIEF1dG9wbGF5RXZlbnQgOiB1aW50OF90OwogZW51bSBjbGFzcyBE
T01QYXN0ZUFjY2Vzc1Jlc3BvbnNlIDogdWludDhfdDsKK2VudW0gY2xhc3MgRXZlbnRNYWtlc0dh
bWVwYWRzVmlzaWJsZSA6IGJvb2w7CiBlbnVtIGNsYXNzIExvY2tCYWNrRm9yd2FyZExpc3QgOiBi
b29sOwogZW51bSBjbGFzcyBIYXNJbnNlY3VyZUNvbnRlbnQgOiBib29sOwogZW51bSBjbGFzcyBN
b3VzZUV2ZW50UG9saWN5IDogdWludDhfdDsKQEAgLTE1NjksNyArMTU3MCw3IEBAIHB1YmxpYzoK
ICAgICBib29sIGlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpIGNvbnN0OwogCiAjaWYgRU5BQkxF
KEdBTUVQQUQpCi0gICAgdm9pZCBnYW1lcGFkQWN0aXZpdHkoY29uc3QgVmVjdG9yPEdhbWVwYWRE
YXRhPiYsIGJvb2wgc2hvdWxkTWFrZUdhbWVwYWRzVmlzaWJsZSk7CisgICAgdm9pZCBnYW1lcGFk
QWN0aXZpdHkoY29uc3QgVmVjdG9yPEdhbWVwYWREYXRhPiYsIFdlYkNvcmU6OkV2ZW50TWFrZXNH
YW1lcGFkc1Zpc2libGUpOwogI2VuZGlmCiAKICAgICB2b2lkIGlzTG9hZGluZ0NoYW5nZWQoKSB7
IGFjdGl2aXR5U3RhdGVEaWRDaGFuZ2UoV2ViQ29yZTo6QWN0aXZpdHlTdGF0ZTo6SXNMb2FkaW5n
KTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wu
Y3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCmluZGV4IDIw
Y2Y5MjZhYzgwLi5iZTM1NDJlYzFiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQb29sLmNwcApAQCAtMTk1NywxMCArMTk1NywxMCBAQCB2b2lkIFdlYlByb2Nlc3NQb29s
Ojpwcm9jZXNzU3RvcHBlZFVzaW5nR2FtZXBhZHMoV2ViUHJvY2Vzc1Byb3h5JiBwcm9jZXNzKQog
ICAgICAgICBVSUdhbWVwYWRQcm92aWRlcjo6c2luZ2xldG9uKCkucHJvY2Vzc1Bvb2xTdG9wcGVk
VXNpbmdHYW1lcGFkcygqdGhpcyk7CiB9CiAKLXZvaWQgV2ViUHJvY2Vzc1Bvb2w6OmdhbWVwYWRD
b25uZWN0ZWQoY29uc3QgVUlHYW1lcGFkJiBnYW1lcGFkKQordm9pZCBXZWJQcm9jZXNzUG9vbDo6
Z2FtZXBhZENvbm5lY3RlZChjb25zdCBVSUdhbWVwYWQmIGdhbWVwYWQsIEV2ZW50TWFrZXNHYW1l
cGFkc1Zpc2libGUgZXZlbnRWaXNpYmlsaXR5KQogewogICAgIGZvciAoYXV0byYgcHJvY2VzcyA6
IG1fcHJvY2Vzc2VzVXNpbmdHYW1lcGFkcykKLSAgICAgICAgcHJvY2Vzcy0+c2VuZChNZXNzYWdl
czo6V2ViUHJvY2Vzczo6R2FtZXBhZENvbm5lY3RlZChnYW1lcGFkLmZ1bGxHYW1lcGFkRGF0YSgp
KSwgMCk7CisgICAgICAgIHByb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlByb2Nlc3M6OkdhbWVw
YWRDb25uZWN0ZWQoZ2FtZXBhZC5mdWxsR2FtZXBhZERhdGEoKSwgZXZlbnRWaXNpYmlsaXR5KSwg
MCk7CiB9CiAKIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OmdhbWVwYWREaXNjb25uZWN0ZWQoY29uc3Qg
VUlHYW1lcGFkJiBnYW1lcGFkKQpAQCAtMTk2OSwyMCArMTk2OSw2IEBAIHZvaWQgV2ViUHJvY2Vz
c1Bvb2w6OmdhbWVwYWREaXNjb25uZWN0ZWQoY29uc3QgVUlHYW1lcGFkJiBnYW1lcGFkKQogICAg
ICAgICBwcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpHYW1lcGFkRGlzY29ubmVj
dGVkKGdhbWVwYWQuaW5kZXgoKSksIDApOwogfQogCi12b2lkIFdlYlByb2Nlc3NQb29sOjpzZXRJ
bml0aWFsQ29ubmVjdGVkR2FtZXBhZHMoY29uc3QgVmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxVSUdh
bWVwYWQ+PiYgZ2FtZXBhZHMpCi17Ci0gICAgVmVjdG9yPEdhbWVwYWREYXRhPiBnYW1lcGFkRGF0
YXM7Ci0gICAgZ2FtZXBhZERhdGFzLmdyb3coZ2FtZXBhZHMuc2l6ZSgpKTsKLSAgICBmb3IgKHNp
emVfdCBpID0gMDsgaSA8IGdhbWVwYWRzLnNpemUoKTsgKytpKSB7Ci0gICAgICAgIGlmICghZ2Ft
ZXBhZHNbaV0pCi0gICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgZ2FtZXBhZERhdGFzW2ld
ID0gZ2FtZXBhZHNbaV0tPmZ1bGxHYW1lcGFkRGF0YSgpOwotICAgIH0KLQotICAgIGZvciAoYXV0
byYgcHJvY2VzcyA6IG1fcHJvY2Vzc2VzVXNpbmdHYW1lcGFkcykKLSAgICAgICAgcHJvY2Vzcy0+
c2VuZChNZXNzYWdlczo6V2ViUHJvY2Vzczo6U2V0SW5pdGlhbEdhbWVwYWRzKGdhbWVwYWREYXRh
cyksIDApOwotfQotCiAjZW5kaWYgLy8gRU5BQkxFKEdBTUVQQUQpCiAKIHZvaWQgV2ViUHJvY2Vz
c1Bvb2w6OnNldEphdmFTY3JpcHRDb25maWd1cmF0aW9uRmlsZUVuYWJsZWQoYm9vbCBmbGFnKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKaW5kZXggYmYyZDhjN2U1MmQu
LjdhMTBlYWI3YTg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9j
ZXNzUG9vbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgK
QEAgLTkyLDYgKzkyLDcgQEAgY2xhc3MgUGFnZUNvbmZpZ3VyYXRpb247CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIGNsYXNzIFJlZ2lzdHJhYmxlRG9tYWluOworZW51bSBjbGFzcyBFdmVudE1ha2Vz
R2FtZXBhZHNWaXNpYmxlIDogYm9vbDsKIHN0cnVjdCBNb2NrTWVkaWFEZXZpY2U7CiB9CiAKQEAg
LTQ2MywxMCArNDY0LDggQEAgcHVibGljOgogICAgIHZvaWQgc3ludGhlc2l6ZUFwcElzQmFja2dy
b3VuZChib29sIGJhY2tncm91bmQpOwogICAgIAogI2lmIEVOQUJMRShHQU1FUEFEKQotICAgIHZv
aWQgZ2FtZXBhZENvbm5lY3RlZChjb25zdCBVSUdhbWVwYWQmKTsKKyAgICB2b2lkIGdhbWVwYWRD
b25uZWN0ZWQoY29uc3QgVUlHYW1lcGFkJiwgV2ViQ29yZTo6RXZlbnRNYWtlc0dhbWVwYWRzVmlz
aWJsZSk7CiAgICAgdm9pZCBnYW1lcGFkRGlzY29ubmVjdGVkKGNvbnN0IFVJR2FtZXBhZCYpOwot
Ci0gICAgdm9pZCBzZXRJbml0aWFsQ29ubmVjdGVkR2FtZXBhZHMoY29uc3QgVmVjdG9yPHN0ZDo6
dW5pcXVlX3B0cjxVSUdhbWVwYWQ+PiYpOwogI2VuZGlmCiAKICNpZiBQTEFURk9STShDT0NPQSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HYW1lcGFkL1dlYkdhbWVwYWRQ
cm92aWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR2FtZXBhZC9XZWJHYW1lcGFk
UHJvdmlkZXIuY3BwCmluZGV4IGFhYjM0NTdjZWQ2Li5jZmMwYmRjMjNhZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dhbWVwYWQvV2ViR2FtZXBhZFByb3ZpZGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR2FtZXBhZC9XZWJHYW1lcGFkUHJvdmlkZXIu
Y3BwCkBAIC02Nyw4ICs2NywxMCBAQCB2b2lkIFdlYkdhbWVwYWRQcm92aWRlcjo6c2V0SW5pdGlh
bEdhbWVwYWRzKGNvbnN0IFZlY3RvcjxHYW1lcGFkRGF0YT4mIGdhbWVwYWREYQogICAgIH0KIH0K
IAotdm9pZCBXZWJHYW1lcGFkUHJvdmlkZXI6OmdhbWVwYWRDb25uZWN0ZWQoY29uc3QgR2FtZXBh
ZERhdGEmIGdhbWVwYWREYXRhKQordm9pZCBXZWJHYW1lcGFkUHJvdmlkZXI6OmdhbWVwYWRDb25u
ZWN0ZWQoY29uc3QgR2FtZXBhZERhdGEmIGdhbWVwYWREYXRhLCBFdmVudE1ha2VzR2FtZXBhZHNW
aXNpYmxlIGV2ZW50VmlzaWJpbGl0eSkKIHsKKyAgICBMT0coR2FtZXBhZCwgIldlYkdhbWVwYWRQ
cm92aWRlcjo6Z2FtZXBhZENvbm5lY3RlZCAtIEluZGV4ICVpIGF0dGFjaGVkICh2aXNpYmlsaXR5
OiAlaSlcbiIsIGdhbWVwYWREYXRhLmluZGV4KCksIChpbnQpZXZlbnRWaXNpYmlsaXR5KTsKKwog
ICAgIGlmIChtX2dhbWVwYWRzLnNpemUoKSA8PSBnYW1lcGFkRGF0YS5pbmRleCgpKSB7CiAgICAg
ICAgIG1fZ2FtZXBhZHMucmVzaXplKGdhbWVwYWREYXRhLmluZGV4KCkgKyAxKTsKICAgICAgICAg
bV9yYXdHYW1lcGFkcy5yZXNpemUoZ2FtZXBhZERhdGEuaW5kZXgoKSArIDEpOwpAQCAtODAsNyAr
ODIsNyBAQCB2b2lkIFdlYkdhbWVwYWRQcm92aWRlcjo6Z2FtZXBhZENvbm5lY3RlZChjb25zdCBH
YW1lcGFkRGF0YSYgZ2FtZXBhZERhdGEpCiAgICAgbV9yYXdHYW1lcGFkc1tnYW1lcGFkRGF0YS5p
bmRleCgpXSA9IG1fZ2FtZXBhZHNbZ2FtZXBhZERhdGEuaW5kZXgoKV0uZ2V0KCk7CiAKICAgICBm
b3IgKGF1dG8qIGNsaWVudCA6IG1fY2xpZW50cykKLSAgICAgICAgY2xpZW50LT5wbGF0Zm9ybUdh
bWVwYWRDb25uZWN0ZWQoKm1fZ2FtZXBhZHNbZ2FtZXBhZERhdGEuaW5kZXgoKV0pOworICAgICAg
ICBjbGllbnQtPnBsYXRmb3JtR2FtZXBhZENvbm5lY3RlZCgqbV9nYW1lcGFkc1tnYW1lcGFkRGF0
YS5pbmRleCgpXSwgZXZlbnRWaXNpYmlsaXR5KTsKIH0KIAogdm9pZCBXZWJHYW1lcGFkUHJvdmlk
ZXI6OmdhbWVwYWREaXNjb25uZWN0ZWQodW5zaWduZWQgaW5kZXgpCkBAIC05NCw3ICs5Niw3IEBA
IHZvaWQgV2ViR2FtZXBhZFByb3ZpZGVyOjpnYW1lcGFkRGlzY29ubmVjdGVkKHVuc2lnbmVkIGlu
ZGV4KQogICAgICAgICBjbGllbnQtPnBsYXRmb3JtR2FtZXBhZERpc2Nvbm5lY3RlZCgqZGlzY29u
bmVjdGVkR2FtZXBhZCk7CiB9CiAKLXZvaWQgV2ViR2FtZXBhZFByb3ZpZGVyOjpnYW1lcGFkQWN0
aXZpdHkoY29uc3QgVmVjdG9yPEdhbWVwYWREYXRhPiYgZ2FtZXBhZERhdGFzLCBib29sIHNob3Vs
ZE1ha2VHYW1lcGFkc1Zpc2libGUpCit2b2lkIFdlYkdhbWVwYWRQcm92aWRlcjo6Z2FtZXBhZEFj
dGl2aXR5KGNvbnN0IFZlY3RvcjxHYW1lcGFkRGF0YT4mIGdhbWVwYWREYXRhcywgRXZlbnRNYWtl
c0dhbWVwYWRzVmlzaWJsZSBldmVudFZpc2liaWxpdHkpCiB7CiAgICAgQVNTRVJUKG1fZ2FtZXBh
ZHMuc2l6ZSgpID09IGdhbWVwYWREYXRhcy5zaXplKCkpOwogCkBAIC0xMDQsNyArMTA2LDcgQEAg
dm9pZCBXZWJHYW1lcGFkUHJvdmlkZXI6OmdhbWVwYWRBY3Rpdml0eShjb25zdCBWZWN0b3I8R2Ft
ZXBhZERhdGE+JiBnYW1lcGFkRGF0YXMKICAgICB9CiAKICAgICBmb3IgKGF1dG8qIGNsaWVudCA6
IG1fY2xpZW50cykKLSAgICAgICAgY2xpZW50LT5wbGF0Zm9ybUdhbWVwYWRJbnB1dEFjdGl2aXR5
KHNob3VsZE1ha2VHYW1lcGFkc1Zpc2libGUpOworICAgICAgICBjbGllbnQtPnBsYXRmb3JtR2Ft
ZXBhZElucHV0QWN0aXZpdHkoZXZlbnRWaXNpYmlsaXR5KTsKIH0KIAogdm9pZCBXZWJHYW1lcGFk
UHJvdmlkZXI6OnN0YXJ0TW9uaXRvcmluZ0dhbWVwYWRzKEdhbWVwYWRQcm92aWRlckNsaWVudCYg
Y2xpZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dhbWVwYWQvV2Vi
R2FtZXBhZFByb3ZpZGVyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR2FtZXBhZC9XZWJH
YW1lcGFkUHJvdmlkZXIuaAppbmRleCBlZGFiN2MzZjE4MS4uOGExN2Y5MDg0YjYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HYW1lcGFkL1dlYkdhbWVwYWRQcm92aWRlci5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HYW1lcGFkL1dlYkdhbWVwYWRQcm92aWRl
ci5oCkBAIC0zMiw2ICszMiwxMCBAQAogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVk
ZSA8d3RmL1ZlY3Rvci5oPgogCituYW1lc3BhY2UgV2ViQ29yZSB7CitlbnVtIGNsYXNzIEV2ZW50
TWFrZXNHYW1lcGFkc1Zpc2libGUgOiBib29sOworfQorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAog
Y2xhc3MgU2hhcmVkTWVtb3J5OwpAQCAtNDMsOSArNDcsOSBAQCBjbGFzcyBXZWJHYW1lcGFkUHJv
dmlkZXIgOiBwdWJsaWMgV2ViQ29yZTo6R2FtZXBhZFByb3ZpZGVyIHsKIHB1YmxpYzoKICAgICBz
dGF0aWMgV2ViR2FtZXBhZFByb3ZpZGVyJiBzaW5nbGV0b24oKTsKIAotICAgIHZvaWQgZ2FtZXBh
ZENvbm5lY3RlZChjb25zdCBHYW1lcGFkRGF0YSYpOworICAgIHZvaWQgZ2FtZXBhZENvbm5lY3Rl
ZChjb25zdCBHYW1lcGFkRGF0YSYsIFdlYkNvcmU6OkV2ZW50TWFrZXNHYW1lcGFkc1Zpc2libGUp
OwogICAgIHZvaWQgZ2FtZXBhZERpc2Nvbm5lY3RlZCh1bnNpZ25lZCBpbmRleCk7Ci0gICAgdm9p
ZCBnYW1lcGFkQWN0aXZpdHkoY29uc3QgVmVjdG9yPEdhbWVwYWREYXRhPiYsIGJvb2wgc2hvdWxk
TWFrZUdhbWVwYWRzVmlzaWJsZSk7CisgICAgdm9pZCBnYW1lcGFkQWN0aXZpdHkoY29uc3QgVmVj
dG9yPEdhbWVwYWREYXRhPiYsIFdlYkNvcmU6OkV2ZW50TWFrZXNHYW1lcGFkc1Zpc2libGUpOwog
CiAgICAgdm9pZCBzZXRJbml0aWFsR2FtZXBhZHMoY29uc3QgVmVjdG9yPEdhbWVwYWREYXRhPiYp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4
IDFkZjI3ODI0OTQ4Li4xNGY4YjUxNDJhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTY2MjEsOSArNjYyMSw5IEBAIHZvaWQgV2ViUGFnZTo6
c2V0VXNlckludGVyZmFjZUxheW91dERpcmVjdGlvbih1aW50MzJfdCBkaXJlY3Rpb24pCiAKICNp
ZiBFTkFCTEUoR0FNRVBBRCkKIAotdm9pZCBXZWJQYWdlOjpnYW1lcGFkQWN0aXZpdHkoY29uc3Qg
VmVjdG9yPEdhbWVwYWREYXRhPiYgZ2FtZXBhZERhdGFzLCBib29sIHNob3VsZE1ha2VHYW1lcGFk
c1Zpc2libGUpCit2b2lkIFdlYlBhZ2U6OmdhbWVwYWRBY3Rpdml0eShjb25zdCBWZWN0b3I8R2Ft
ZXBhZERhdGE+JiBnYW1lcGFkRGF0YXMsIEV2ZW50TWFrZXNHYW1lcGFkc1Zpc2libGUgZXZlbnRW
aXNpYmlsdHkpCiB7Ci0gICAgV2ViR2FtZXBhZFByb3ZpZGVyOjpzaW5nbGV0b24oKS5nYW1lcGFk
QWN0aXZpdHkoZ2FtZXBhZERhdGFzLCBzaG91bGRNYWtlR2FtZXBhZHNWaXNpYmxlKTsKKyAgICBX
ZWJHYW1lcGFkUHJvdmlkZXI6OnNpbmdsZXRvbigpLmdhbWVwYWRBY3Rpdml0eShnYW1lcGFkRGF0
YXMsIGV2ZW50VmlzaWJpbHR5KTsKIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggMGRiMmM3YmM0M2MuLjllNGZjYzQ5NWY2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC0xOTYsNiArMTk2
LDcgQEAgY2xhc3MgVmlzaWJsZVBvc2l0aW9uOwogZW51bSBTeW50aGV0aWNDbGlja1R5cGUgOiBp
bnQ4X3Q7CiBlbnVtIGNsYXNzIERPTVBhc3RlQWNjZXNzUmVzcG9uc2UgOiB1aW50OF90OwogZW51
bSBjbGFzcyBEcmFnSGFuZGxpbmdNZXRob2QgOiB1aW50OF90OworZW51bSBjbGFzcyBFdmVudE1h
a2VzR2FtZXBhZHNWaXNpYmxlIDogYm9vbDsKIGVudW0gY2xhc3MgU2VsZWN0aW9uRGlyZWN0aW9u
IDogdWludDhfdDsKIGVudW0gY2xhc3MgU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkIDogYm9v
bDsKIGVudW0gY2xhc3MgVGV4dEluZGljYXRvclByZXNlbnRhdGlvblRyYW5zaXRpb24gOiB1aW50
OF90OwpAQCAtMTE3NSw3ICsxMTc2LDcgQEAgcHVibGljOgogI2VuZGlmCiAKICNpZiBFTkFCTEUo
R0FNRVBBRCkKLSAgICB2b2lkIGdhbWVwYWRBY3Rpdml0eShjb25zdCBWZWN0b3I8R2FtZXBhZERh
dGE+JiwgYm9vbCBzaG91bGRNYWtlR2FtZXBhZHNWaXNpYmxlKTsKKyAgICB2b2lkIGdhbWVwYWRB
Y3Rpdml0eShjb25zdCBWZWN0b3I8R2FtZXBhZERhdGE+JiwgV2ViQ29yZTo6RXZlbnRNYWtlc0dh
bWVwYWRzVmlzaWJsZSk7CiAjZW5kaWYKICAgICAKICNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNz
YWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2Fn
ZXMuaW4KaW5kZXggYzVlMzQzMWY2MTcuLmExZGM4ODQxN2Q5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KQEAgLTU0NSw3
ICs1NDUsNyBAQCBHZW5lcmF0ZVN5bnRoZXRpY0VkaXRpbmdDb21tYW5kKGVudW06dWludDhfdCBX
ZWJLaXQ6OlN5bnRoZXRpY0VkaXRpbmdDb21tYW5kVHlwZQogICAgIFNldFVzZUljb25Mb2FkaW5n
Q2xpZW50KGJvb2wgdXNlSWNvbkxvYWRpbmdDbGllbnQpCiAKICNpZiBFTkFCTEUoR0FNRVBBRCkK
LSAgICBHYW1lcGFkQWN0aXZpdHkoVmVjdG9yPFdlYktpdDo6R2FtZXBhZERhdGE+IGdhbWVwYWRE
YXRhcywgYm9vbCBzaG91bGRNYWtlR2FtZXBhZHNWaXNpYmxlKQorICAgIEdhbWVwYWRBY3Rpdml0
eShWZWN0b3I8V2ViS2l0OjpHYW1lcGFkRGF0YT4gZ2FtZXBhZERhdGFzLCBlbnVtOmJvb2wgV2Vi
Q29yZTo6RXZlbnRNYWtlc0dhbWVwYWRzVmlzaWJsZSBldmVudFZpc2liaWxpdHkpCiAjZW5kaWYK
IAogICAgIEZyYW1lQmVjYW1lUmVtb3RlKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlE
LCBzdHJ1Y3QgV2ViQ29yZTo6R2xvYmFsRnJhbWVJZGVudGlmaWVyIHJlbW90ZUZyYW1lSWRlbnRp
Zmllciwgc3RydWN0IFdlYkNvcmU6Okdsb2JhbFdpbmRvd0lkZW50aWZpZXIgcmVtb3RlV2luZG93
SWRlbnRpZmllcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9j
ZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAppbmRleCAz
NTI3NWE3NGQyZi4uYjJlYjQ1MGY2OTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJv
Y2Vzcy5jcHAKQEAgLTEwNDksOSArMTA0OSw5IEBAIHZvaWQgV2ViUHJvY2Vzczo6c2V0SW5pdGlh
bEdhbWVwYWRzKGNvbnN0IFZlY3RvcjxXZWJLaXQ6OkdhbWVwYWREYXRhPiYgZ2FtZXBhZERhCiAg
ICAgV2ViR2FtZXBhZFByb3ZpZGVyOjpzaW5nbGV0b24oKS5zZXRJbml0aWFsR2FtZXBhZHMoZ2Ft
ZXBhZERhdGFzKTsKIH0KIAotdm9pZCBXZWJQcm9jZXNzOjpnYW1lcGFkQ29ubmVjdGVkKGNvbnN0
IEdhbWVwYWREYXRhJiBnYW1lcGFkRGF0YSkKK3ZvaWQgV2ViUHJvY2Vzczo6Z2FtZXBhZENvbm5l
Y3RlZChjb25zdCBHYW1lcGFkRGF0YSYgZ2FtZXBhZERhdGEsIFdlYkNvcmU6OkV2ZW50TWFrZXNH
YW1lcGFkc1Zpc2libGUgZXZlbnRWaXNpYmlsaXR5KQogewotICAgIFdlYkdhbWVwYWRQcm92aWRl
cjo6c2luZ2xldG9uKCkuZ2FtZXBhZENvbm5lY3RlZChnYW1lcGFkRGF0YSk7CisgICAgV2ViR2Ft
ZXBhZFByb3ZpZGVyOjpzaW5nbGV0b24oKS5nYW1lcGFkQ29ubmVjdGVkKGdhbWVwYWREYXRhLCBl
dmVudFZpc2liaWxpdHkpOwogfQogCiB2b2lkIFdlYlByb2Nlc3M6OmdhbWVwYWREaXNjb25uZWN0
ZWQodW5zaWduZWQgaW5kZXgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAppbmRl
eCBhOTUzYzhhZDk2MS4uMTQ0YjU5OTgxOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBy
b2Nlc3MuaApAQCAtODQsNiArODQsOSBAQCBjbGFzcyBQYWdlR3JvdXA7CiBjbGFzcyBSZWdpc3Ry
YWJsZURvbWFpbjsKIGNsYXNzIFJlc291cmNlUmVxdWVzdDsKIGNsYXNzIFVzZXJHZXN0dXJlVG9r
ZW47CisKK2VudW0gY2xhc3MgRXZlbnRNYWtlc0dhbWVwYWRzVmlzaWJsZSA6IGJvb2w7CisKIHN0
cnVjdCBCYWNrRm9yd2FyZEl0ZW1JZGVudGlmaWVyOwogc3RydWN0IE1lc3NhZ2VQb3J0SWRlbnRp
ZmllcjsKIHN0cnVjdCBNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0czsKQEAgLTM5OSw3ICs0MDIsNyBA
QCBwcml2YXRlOgogCiAjaWYgRU5BQkxFKEdBTUVQQUQpCiAgICAgdm9pZCBzZXRJbml0aWFsR2Ft
ZXBhZHMoY29uc3QgVmVjdG9yPEdhbWVwYWREYXRhPiYpOwotICAgIHZvaWQgZ2FtZXBhZENvbm5l
Y3RlZChjb25zdCBHYW1lcGFkRGF0YSYpOworICAgIHZvaWQgZ2FtZXBhZENvbm5lY3RlZChjb25z
dCBHYW1lcGFkRGF0YSYsIFdlYkNvcmU6OkV2ZW50TWFrZXNHYW1lcGFkc1Zpc2libGUpOwogICAg
IHZvaWQgZ2FtZXBhZERpc2Nvbm5lY3RlZCh1bnNpZ25lZCBpbmRleCk7CiAjZW5kaWYKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW4g
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgppbmRleCBm
NWJjYzA2ZThlZS4uNjkwZTRmYTVkNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCkBAIC0xMDAsNyArMTAwLDcgQEAgbWVzc2FnZXMgLT4g
V2ViUHJvY2VzcyBMZWdhY3lSZWNlaXZlciBOb3RSZWZDb3VudGVkIHsKIAogI2lmIEVOQUJMRShH
QU1FUEFEKQogICAgIFNldEluaXRpYWxHYW1lcGFkcyhWZWN0b3I8V2ViS2l0OjpHYW1lcGFkRGF0
YT4gZ2FtZXBhZERhdGFzKQotICAgIEdhbWVwYWRDb25uZWN0ZWQoV2ViS2l0OjpHYW1lcGFkRGF0
YSBnYW1lcGFkRGF0YSkKKyAgICBHYW1lcGFkQ29ubmVjdGVkKFdlYktpdDo6R2FtZXBhZERhdGEg
Z2FtZXBhZERhdGEsIGVudW06Ym9vbCBXZWJDb3JlOjpFdmVudE1ha2VzR2FtZXBhZHNWaXNpYmxl
IGV2ZW50VmlzaWJpbGl0eSkKICAgICBHYW1lcGFkRGlzY29ubmVjdGVkKHVuc2lnbmVkIGluZGV4
KQogI2VuZGlmCiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>403633</attachid>
            <date>2020-07-06 16:27:52 -0700</date>
            <delta_ts>2020-07-06 17:46:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>33013</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAxZjZkYTE5NjNlOC4uMDIyYjEzNzE5YWMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1MCBAQAorMjAyMC0wNy0wNiAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+
CisKKyAgICAgICAgR2V0IHJpZCBvZiBjb25jZXB0IG9mICJpbml0aWFsIGNvbm5lY3RlZCBnYW1l
cGFkcyIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIx
NDAxMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5v
IG5ldyB0ZXN0cyAoUmVmYWN0b3IsIG5vIGJlaGF2aW9yIGNoYW5nZSkKKworICAgICAgICBXaGVu
IGEgcGFnZSBzdGFydHMgdXNpbmcgZ2FtZXBhZHMgYW5kIHNvbWUgd2VyZSBhbHJlYWR5IGNvbm5l
Y3RlZCwgdGhpcyBjb25jZXB0CisgICAgICAgIHdhcyBtZWFudCB0byBtYW5hZ2Ugd2hlbiB0aGUg
YWxyZWFkeS1jb25uZWN0ZWQgZ2FtZXBhZHMgY291bGQgYmUgcmV2ZWFsZWQgdG8gdGhlIHBhZ2Uu
CisgICAgICAgIAorICAgICAgICBJdCBvYnZpb3VzbHkgd2Fzbid0IG5lZWRlZCwgYXMgb25seSB0
aGUgSElEIHByb3ZpZGVyIHVzZWQgdGhlbSAoR2FtZUNvbnRyb2xsZXIgcHJvdmlkZXIgZGlkbid0
KQorICAgICAgICAKKyAgICAgICAgSW5zdGVhZCwgd2Ugc2hvdWxkIGp1c3QgYWx3YXlzIGluY2x1
ZGUgYSAiZG9lcyB0aGlzIGV2ZW50IG1ha2UgZ2FtZXBhZHMgdmlzaWJsZT8iIGJpdC4KKyAgICAg
ICAgCisgICAgICAgIFRoaXMgY2xlYW5zIHVwIGEgbG90IG9mIHdlaXJkIGNvZGUgZ2V0cyBib3Ro
IHByb3ZpZGVycyB3b3JraW5nIGNsb3NlciB0byBlYWNoIG90aGVyLgorICAgICAgICAKKyAgICAg
ICAgKiBNb2R1bGVzL2dhbWVwYWQvR2FtZXBhZE1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6R2FtZXBhZE1hbmFnZXI6OnBsYXRmb3JtR2FtZXBhZENvbm5lY3RlZCk6CisgICAgICAgIChX
ZWJDb3JlOjpHYW1lcGFkTWFuYWdlcjo6cGxhdGZvcm1HYW1lcGFkSW5wdXRBY3Rpdml0eSk6Cisg
ICAgICAgICogTW9kdWxlcy9nYW1lcGFkL0dhbWVwYWRNYW5hZ2VyLmg6CisgICAgICAgIAorICAg
ICAgICAqIHBsYXRmb3JtL2dhbWVwYWQvR2FtZXBhZFByb3ZpZGVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkdhbWVwYWRQcm92aWRlcjo6ZGlzcGF0Y2hQbGF0Zm9ybUdhbWVwYWRJbnB1dEFjdGl2
aXR5KToKKyAgICAgICAgCisgICAgICAgICogcGxhdGZvcm0vZ2FtZXBhZC9HYW1lcGFkUHJvdmlk
ZXJDbGllbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkdhbWVwYWRQcm92aWRlckNsaWVudDo6c2V0
SW5pdGlhbENvbm5lY3RlZEdhbWVwYWRzKTogRGVsZXRlZC4KKyAgICAgICAgCisgICAgICAgICog
cGxhdGZvcm0vZ2FtZXBhZC9jb2NvYS9HYW1lQ29udHJvbGxlckdhbWVwYWRQcm92aWRlci5tbToK
KyAgICAgICAgKFdlYkNvcmU6OkdhbWVDb250cm9sbGVyR2FtZXBhZFByb3ZpZGVyOjpjb250cm9s
bGVyRGlkQ29ubmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpHYW1lQ29udHJvbGxlckdhbWVwYWRQ
cm92aWRlcjo6bWFrZUludmlzaWJpbGVHYW1lcGFkc1Zpc2libGUpOgorICAgICAgICAKKyAgICAg
ICAgKiBwbGF0Zm9ybS9nYW1lcGFkL21hYy9ISURHYW1lcGFkUHJvdmlkZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SElER2FtZXBhZFByb3ZpZGVyOjpISURHYW1lcGFkUHJvdmlkZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6SElER2FtZXBhZFByb3ZpZGVyOjppbml0aWFsR2FtZXBhZHNDb25uZWN0
ZWRUaW1lckZpcmVkKToKKyAgICAgICAgKFdlYkNvcmU6OkhJREdhbWVwYWRQcm92aWRlcjo6b3Bl
bkFuZFNjaGVkdWxlTWFuYWdlcik6CisgICAgICAgIChXZWJDb3JlOjpISURHYW1lcGFkUHJvdmlk
ZXI6OmNsb3NlQW5kVW5zY2hlZHVsZU1hbmFnZXIpOgorICAgICAgICAoV2ViQ29yZTo6SElER2Ft
ZXBhZFByb3ZpZGVyOjpkZXZpY2VBZGRlZCk6CisgICAgICAgIChXZWJDb3JlOjpISURHYW1lcGFk
UHJvdmlkZXI6OmRldmljZVJlbW92ZWQpOgorICAgICAgICAoV2ViQ29yZTo6SElER2FtZXBhZFBy
b3ZpZGVyOjppbnB1dE5vdGlmaWNhdGlvblRpbWVyRmlyZWQpOgorICAgICAgICAoV2ViQ29yZTo6
SElER2FtZXBhZFByb3ZpZGVyOjpjb25uZWN0aW9uRGVsYXlUaW1lckZpcmVkKTogRGVsZXRlZC4K
KyAgICAgICAgKiBwbGF0Zm9ybS9nYW1lcGFkL21hYy9ISURHYW1lcGFkUHJvdmlkZXIuaDoKKyAg
ICAgICAgCisgICAgICAgICogdGVzdGluZy9Nb2NrR2FtZXBhZFByb3ZpZGVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6Ok1vY2tHYW1lcGFkUHJvdmlkZXI6OmNvbm5lY3RNb2NrR2FtZXBhZCk6CisK
IDIwMjAtMDctMDIgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgogCiAgICAgICAg
IEdhbWVDb250cm9sbGVyLmZyYW1ld29yayBzb2Z0IGxpbmtpbmcgcmVmYWN0b3JpbmcKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2FtZXBhZC9HYW1lcGFkTWFuYWdlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dhbWVwYWQvR2FtZXBhZE1hbmFnZXIuY3BwCmluZGV4
IDlmNzI0OTY5NThlLi40YzcxYWU4NjRiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9nYW1lcGFkL0dhbWVwYWRNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2dhbWVwYWQvR2FtZXBhZE1hbmFnZXIuY3BwCkBAIC01Nyw4ICs1NywxMSBAQCBHYW1lcGFk
TWFuYWdlcjo6R2FtZXBhZE1hbmFnZXIoKQogewogfQogCi12b2lkIEdhbWVwYWRNYW5hZ2VyOjpw
bGF0Zm9ybUdhbWVwYWRDb25uZWN0ZWQoUGxhdGZvcm1HYW1lcGFkJiBwbGF0Zm9ybUdhbWVwYWQp
Cit2b2lkIEdhbWVwYWRNYW5hZ2VyOjpwbGF0Zm9ybUdhbWVwYWRDb25uZWN0ZWQoUGxhdGZvcm1H
YW1lcGFkJiBwbGF0Zm9ybUdhbWVwYWQsIEV2ZW50TWFrZXNHYW1lcGFkc1Zpc2libGUgZXZlbnRW
aXNpYmlsaXR5KQogeworICAgIGlmIChldmVudFZpc2liaWxpdHkgPT0gRXZlbnRNYWtlc0dhbWVw
YWRzVmlzaWJsZTo6Tm8pCisgICAgICAgIHJldHVybjsKKwogICAgIC8vIE5vdGlmeSBibGluZCBO
YXZpZ2F0b3JzIGFuZCBXaW5kb3dzIGFib3V0IGFsbCBnYW1lcGFkcyBleGNlcHQgZm9yIHRoaXMg
b25lLgogICAgIGZvciAoYXV0byogZ2FtZXBhZCA6IEdhbWVwYWRQcm92aWRlcjo6c2luZ2xldG9u
KCkucGxhdGZvcm1HYW1lcGFkcygpKSB7CiAgICAgICAgIGlmICghZ2FtZXBhZCB8fCBnYW1lcGFk
ID09ICZwbGF0Zm9ybUdhbWVwYWQpCkBAIC0xMTMsOSArMTE2LDkgQEAgdm9pZCBHYW1lcGFkTWFu
YWdlcjo6cGxhdGZvcm1HYW1lcGFkRGlzY29ubmVjdGVkKFBsYXRmb3JtR2FtZXBhZCYgcGxhdGZv
cm1HYW1lcGEKICAgICB9CiB9CiAKLXZvaWQgR2FtZXBhZE1hbmFnZXI6OnBsYXRmb3JtR2FtZXBh
ZElucHV0QWN0aXZpdHkoYm9vbCBzaG91bGRNYWtlR2FtZXBhZFZpc2libGUpCit2b2lkIEdhbWVw
YWRNYW5hZ2VyOjpwbGF0Zm9ybUdhbWVwYWRJbnB1dEFjdGl2aXR5KEV2ZW50TWFrZXNHYW1lcGFk
c1Zpc2libGUgZXZlbnRWaXNpYmlsaXR5KQogewotICAgIGlmICghc2hvdWxkTWFrZUdhbWVwYWRW
aXNpYmxlKQorICAgIGlmIChldmVudFZpc2liaWxpdHkgPT0gRXZlbnRNYWtlc0dhbWVwYWRzVmlz
aWJsZTo6Tm8pCiAgICAgICAgIHJldHVybjsKIAogICAgIGlmIChtX2dhbWVwYWRCbGluZE5hdmln
YXRvcnMuaXNFbXB0eSgpICYmIG1fZ2FtZXBhZEJsaW5kRE9NV2luZG93cy5pc0VtcHR5KCkpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dhbWVwYWQvR2FtZXBhZE1hbmFnZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2FtZXBhZC9HYW1lcGFkTWFuYWdlci5oCmluZGV4
IDQ1ZTgxMmFkYzU0Li44MzQzN2RhMWJiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9nYW1lcGFkL0dhbWVwYWRNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9nYW1lcGFkL0dhbWVwYWRNYW5hZ2VyLmgKQEAgLTQ0LDkgKzQ0LDkgQEAgY2xhc3MgR2FtZXBh
ZE1hbmFnZXIgOiBwdWJsaWMgR2FtZXBhZFByb3ZpZGVyQ2xpZW50IHsKIHB1YmxpYzoKICAgICBz
dGF0aWMgR2FtZXBhZE1hbmFnZXImIHNpbmdsZXRvbigpOwogCi0gICAgdm9pZCBwbGF0Zm9ybUdh
bWVwYWRDb25uZWN0ZWQoUGxhdGZvcm1HYW1lcGFkJikgZmluYWw7CisgICAgdm9pZCBwbGF0Zm9y
bUdhbWVwYWRDb25uZWN0ZWQoUGxhdGZvcm1HYW1lcGFkJiwgRXZlbnRNYWtlc0dhbWVwYWRzVmlz
aWJsZSkgZmluYWw7CiAgICAgdm9pZCBwbGF0Zm9ybUdhbWVwYWREaXNjb25uZWN0ZWQoUGxhdGZv
cm1HYW1lcGFkJikgZmluYWw7Ci0gICAgdm9pZCBwbGF0Zm9ybUdhbWVwYWRJbnB1dEFjdGl2aXR5
KGJvb2wgc2hvdWxkTWFrZUdhbWVwYWRWaXNpYmxlKSBmaW5hbDsKKyAgICB2b2lkIHBsYXRmb3Jt
R2FtZXBhZElucHV0QWN0aXZpdHkoRXZlbnRNYWtlc0dhbWVwYWRzVmlzaWJsZSkgZmluYWw7CiAK
ICAgICB2b2lkIHJlZ2lzdGVyTmF2aWdhdG9yKE5hdmlnYXRvckdhbWVwYWQqKTsKICAgICB2b2lk
IHVucmVnaXN0ZXJOYXZpZ2F0b3IoTmF2aWdhdG9yR2FtZXBhZCopOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2FtZXBhZC9HYW1lcGFkUHJvdmlkZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ2FtZXBhZC9HYW1lcGFkUHJvdmlkZXIuY3BwCmluZGV4IDc5YzQ3
YWY0NmYxLi5hNTc0YWM5NTMyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z2FtZXBhZC9HYW1lcGFkUHJvdmlkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dhbWVwYWQvR2FtZXBhZFByb3ZpZGVyLmNwcApAQCAtNTMsNyArNTMsNyBAQCB2b2lkIEdhbWVw
YWRQcm92aWRlcjo6c2V0U2hhcmVkUHJvdmlkZXIoR2FtZXBhZFByb3ZpZGVyJiBuZXdQcm92aWRl
cikKIHZvaWQgR2FtZXBhZFByb3ZpZGVyOjpkaXNwYXRjaFBsYXRmb3JtR2FtZXBhZElucHV0QWN0
aXZpdHkoKQogewogICAgIGZvciAoYXV0byYgY2xpZW50IDogbV9jbGllbnRzKQotICAgICAgICBj
bGllbnQtPnBsYXRmb3JtR2FtZXBhZElucHV0QWN0aXZpdHkobV9zaG91bGRNYWtlR2FtZXBhZHNW
aXNpYmxlKTsKKyAgICAgICAgY2xpZW50LT5wbGF0Zm9ybUdhbWVwYWRJbnB1dEFjdGl2aXR5KG1f
c2hvdWxkTWFrZUdhbWVwYWRzVmlzaWJsZSA/IEV2ZW50TWFrZXNHYW1lcGFkc1Zpc2libGU6Olll
cyA6IEV2ZW50TWFrZXNHYW1lcGFkc1Zpc2libGU6Ok5vKTsKIAogICAgIG1fc2hvdWxkTWFrZUdh
bWVwYWRzVmlzaWJsZSA9IGZhbHNlOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ2FtZXBhZC9HYW1lcGFkUHJvdmlkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dhbWVwYWQvR2FtZXBhZFByb3ZpZGVyQ2xpZW50LmgKaW5kZXggMDZlYzQ5YWVmM2Uu
LmNhNmE3MDNlNDFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nYW1lcGFk
L0dhbWVwYWRQcm92aWRlckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dh
bWVwYWQvR2FtZXBhZFByb3ZpZGVyQ2xpZW50LmgKQEAgLTMzLDE0ICszMywxOCBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIGNsYXNzIFBsYXRmb3JtR2FtZXBhZDsKIAorZW51bSBjbGFzcyBFdmVu
dE1ha2VzR2FtZXBhZHNWaXNpYmxlIDogYm9vbCB7CisgICAgTm8sCisgICAgWWVzLAorfTsKKwog
Y2xhc3MgR2FtZXBhZFByb3ZpZGVyQ2xpZW50IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5HYW1l
cGFkUHJvdmlkZXJDbGllbnQoKSA9IGRlZmF1bHQ7CiAKLSAgICB2aXJ0dWFsIHZvaWQgc2V0SW5p
dGlhbENvbm5lY3RlZEdhbWVwYWRzKGNvbnN0IFZlY3RvcjxQbGF0Zm9ybUdhbWVwYWQqPiYpIHsg
fQotICAgIHZpcnR1YWwgdm9pZCBwbGF0Zm9ybUdhbWVwYWRDb25uZWN0ZWQoUGxhdGZvcm1HYW1l
cGFkJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBwbGF0Zm9ybUdhbWVwYWRDb25uZWN0ZWQoUGxh
dGZvcm1HYW1lcGFkJiwgRXZlbnRNYWtlc0dhbWVwYWRzVmlzaWJsZSkgPSAwOwogICAgIHZpcnR1
YWwgdm9pZCBwbGF0Zm9ybUdhbWVwYWREaXNjb25uZWN0ZWQoUGxhdGZvcm1HYW1lcGFkJikgPSAw
OwotICAgIHZpcnR1YWwgdm9pZCBwbGF0Zm9ybUdhbWVwYWRJbnB1dEFjdGl2aXR5KGJvb2wgc2hv
dWxkTWFrZUdhbWVwYWRWaXNpYmxlKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHBsYXRmb3JtR2Ft
ZXBhZElucHV0QWN0aXZpdHkoRXZlbnRNYWtlc0dhbWVwYWRzVmlzaWJsZSkgPSAwOwogfTsKIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ2FtZXBhZC9jb2NvYS9HYW1lQ29udHJvbGxlckdhbWVwYWRQcm92aWRlci5tbSBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dhbWVwYWQvY29jb2EvR2FtZUNvbnRyb2xsZXJHYW1lcGFkUHJv
dmlkZXIubW0KaW5kZXggZDE3ZDI0OTI4ZmEuLjQzMThiMGJhNzNkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9nYW1lcGFkL2NvY29hL0dhbWVDb250cm9sbGVyR2FtZXBhZFBy
b3ZpZGVyLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dhbWVwYWQvY29jb2EvR2Ft
ZUNvbnRyb2xsZXJHYW1lcGFkUHJvdmlkZXIubW0KQEAgLTczLDcgKzczLDcgQEAgdm9pZCBHYW1l
Q29udHJvbGxlckdhbWVwYWRQcm92aWRlcjo6Y29udHJvbGxlckRpZENvbm5lY3QoR0NDb250cm9s
bGVyICpjb250cm9sbGUKICAgICBtYWtlSW52aXNpYmlsZUdhbWVwYWRzVmlzaWJsZSgpOwogCiAg
ICAgZm9yIChhdXRvJiBjbGllbnQgOiBtX2NsaWVudHMpCi0gICAgICAgIGNsaWVudC0+cGxhdGZv
cm1HYW1lcGFkQ29ubmVjdGVkKCptX2dhbWVwYWRWZWN0b3JbaW5kZXhdKTsKKyAgICAgICAgY2xp
ZW50LT5wbGF0Zm9ybUdhbWVwYWRDb25uZWN0ZWQoKm1fZ2FtZXBhZFZlY3RvcltpbmRleF0sIEV2
ZW50TWFrZXNHYW1lcGFkc1Zpc2libGU6Olllcyk7CiB9CiAKIHZvaWQgR2FtZUNvbnRyb2xsZXJH
YW1lcGFkUHJvdmlkZXI6OmNvbnRyb2xsZXJEaWREaXNjb25uZWN0KEdDQ29udHJvbGxlciAqY29u
dHJvbGxlcikKQEAgLTE1MSw3ICsxNTEsNyBAQCB2b2lkIEdhbWVDb250cm9sbGVyR2FtZXBhZFBy
b3ZpZGVyOjptYWtlSW52aXNpYmlsZUdhbWVwYWRzVmlzaWJsZSgpCiB7CiAgICAgZm9yIChhdXRv
KiBnYW1lcGFkIDogbV9pbnZpc2libGVHYW1lcGFkcykgewogICAgICAgICBmb3IgKGF1dG8mIGNs
aWVudCA6IG1fY2xpZW50cykKLSAgICAgICAgICAgIGNsaWVudC0+cGxhdGZvcm1HYW1lcGFkQ29u
bmVjdGVkKCpnYW1lcGFkKTsKKyAgICAgICAgICAgIGNsaWVudC0+cGxhdGZvcm1HYW1lcGFkQ29u
bmVjdGVkKCpnYW1lcGFkLCBFdmVudE1ha2VzR2FtZXBhZHNWaXNpYmxlOjpZZXMpOwogICAgIH0K
IAogICAgIG1faW52aXNpYmxlR2FtZXBhZHMuY2xlYXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dhbWVwYWQvbWFjL0hJREdhbWVwYWRQcm92aWRlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9nYW1lcGFkL21hYy9ISURHYW1lcGFkUHJvdmlkZXIuY3BwCmlu
ZGV4IDZkMTRiNmIyMTYxLi4wYjYzMjI1YzA3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ2FtZXBhZC9tYWMvSElER2FtZXBhZFByb3ZpZGVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9nYW1lcGFkL21hYy9ISURHYW1lcGFkUHJvdmlkZXIuY3BwCkBAIC04
MSw4ICs4MSw3IEBAIEhJREdhbWVwYWRQcm92aWRlciYgSElER2FtZXBhZFByb3ZpZGVyOjpzaW5n
bGV0b24oKQogfQogCiBISURHYW1lcGFkUHJvdmlkZXI6OkhJREdhbWVwYWRQcm92aWRlcigpCi0g
ICAgOiBtX3Nob3VsZERpc3BhdGNoQ2FsbGJhY2tzKGZhbHNlKQotICAgICwgbV9jb25uZWN0aW9u
RGVsYXlUaW1lcigqdGhpcywgJkhJREdhbWVwYWRQcm92aWRlcjo6Y29ubmVjdGlvbkRlbGF5VGlt
ZXJGaXJlZCkKKyAgICA6IG1faW5pdGlhbEdhbWVwYWRzQ29ubmVjdGVkVGltZXIoKnRoaXMsICZI
SURHYW1lcGFkUHJvdmlkZXI6OmluaXRpYWxHYW1lcGFkc0Nvbm5lY3RlZFRpbWVyRmlyZWQpCiAg
ICAgLCBtX2lucHV0Tm90aWZpY2F0aW9uVGltZXIoKnRoaXMsICZISURHYW1lcGFkUHJvdmlkZXI6
OmlucHV0Tm90aWZpY2F0aW9uVGltZXJGaXJlZCkKIHsKICAgICBtX21hbmFnZXIgPSBhZG9wdENG
KElPSElETWFuYWdlckNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBrSU9ISURPcHRpb25zVHlw
ZU5vbmUpKTsKQEAgLTEyMiwxMiArMTIxLDkgQEAgdW5zaWduZWQgSElER2FtZXBhZFByb3ZpZGVy
OjppbmRleEZvck5ld2x5Q29ubmVjdGVkRGV2aWNlKCkKICAgICByZXR1cm4gaW5kZXg7CiB9CiAK
LXZvaWQgSElER2FtZXBhZFByb3ZpZGVyOjpjb25uZWN0aW9uRGVsYXlUaW1lckZpcmVkKCkKK3Zv
aWQgSElER2FtZXBhZFByb3ZpZGVyOjppbml0aWFsR2FtZXBhZHNDb25uZWN0ZWRUaW1lckZpcmVk
KCkKIHsKLSAgICBtX3Nob3VsZERpc3BhdGNoQ2FsbGJhY2tzID0gdHJ1ZTsKLQotICAgIGZvciAo
YXV0byogY2xpZW50IDogbV9jbGllbnRzKQotICAgICAgICBjbGllbnQtPnNldEluaXRpYWxDb25u
ZWN0ZWRHYW1lcGFkcyhtX2dhbWVwYWRWZWN0b3IpOworICAgIG1faW5pdGlhbEdhbWVwYWRzQ29u
bmVjdGVkID0gdHJ1ZTsKIH0KIAogdm9pZCBISURHYW1lcGFkUHJvdmlkZXI6Om9wZW5BbmRTY2hl
ZHVsZU1hbmFnZXIoKQpAQCAtMTM3LDE0ICsxMzMsMTQgQEAgdm9pZCBISURHYW1lcGFkUHJvdmlk
ZXI6Om9wZW5BbmRTY2hlZHVsZU1hbmFnZXIoKQogICAgIEFTU0VSVChtX2dhbWVwYWRWZWN0b3Iu
aXNFbXB0eSgpKTsKICAgICBBU1NFUlQobV9nYW1lcGFkTWFwLmlzRW1wdHkoKSk7CiAKLSAgICBt
X3Nob3VsZERpc3BhdGNoQ2FsbGJhY2tzID0gZmFsc2U7CisgICAgbV9pbml0aWFsR2FtZXBhZHND
b25uZWN0ZWQgPSBmYWxzZTsKIAogICAgIElPSElETWFuYWdlclNjaGVkdWxlV2l0aFJ1bkxvb3Ao
bV9tYW5hZ2VyLmdldCgpLCBDRlJ1bkxvb3BHZXRDdXJyZW50KCksIGtDRlJ1bkxvb3BEZWZhdWx0
TW9kZSk7CiAgICAgSU9ISURNYW5hZ2VyT3BlbihtX21hbmFnZXIuZ2V0KCksIGtJT0hJRE9wdGlv
bnNUeXBlTm9uZSk7CiAKICAgICAvLyBBbnkgY29ubmVjdGlvbnMgd2UgYXJlIG5vdGlmaWVkIG9m
IHdpdGhpbiB0aGUgY29ubmVjdGlvbkRlbGF5SW50ZXJ2YWwgb2YgbGlzdGVuaW5nIGxpa2VseSBy
ZXByZXNlbnQKICAgICAvLyBkZXZpY2VzIHRoYXQgd2VyZSBhbHJlYWR5IGNvbm5lY3RlZCwgc28g
d2Ugc3VwcHJlc3Mgbm90aWZ5aW5nIGNsaWVudHMgb2YgdGhlc2UuCi0gICAgbV9jb25uZWN0aW9u
RGVsYXlUaW1lci5zdGFydE9uZVNob3QoY29ubmVjdGlvbkRlbGF5SW50ZXJ2YWwpOworICAgIG1f
aW5pdGlhbEdhbWVwYWRzQ29ubmVjdGVkVGltZXIuc3RhcnRPbmVTaG90KGNvbm5lY3Rpb25EZWxh
eUludGVydmFsKTsKIH0KIAogdm9pZCBISURHYW1lcGFkUHJvdmlkZXI6OmNsb3NlQW5kVW5zY2hl
ZHVsZU1hbmFnZXIoKQpAQCAtMTU3LDcgKzE1Myw3IEBAIHZvaWQgSElER2FtZXBhZFByb3ZpZGVy
OjpjbG9zZUFuZFVuc2NoZWR1bGVNYW5hZ2VyKCkKICAgICBtX2dhbWVwYWRWZWN0b3IuY2xlYXIo
KTsKICAgICBtX2dhbWVwYWRNYXAuY2xlYXIoKTsKIAotICAgIG1fY29ubmVjdGlvbkRlbGF5VGlt
ZXIuc3RvcCgpOworICAgIG1faW5pdGlhbEdhbWVwYWRzQ29ubmVjdGVkVGltZXIuc3RvcCgpOwog
fQogCiB2b2lkIEhJREdhbWVwYWRQcm92aWRlcjo6c3RhcnRNb25pdG9yaW5nR2FtZXBhZHMoR2Ft
ZXBhZFByb3ZpZGVyQ2xpZW50JiBjbGllbnQpCkBAIC0xOTUsMjEgKzE5MSwxOCBAQCB2b2lkIEhJ
REdhbWVwYWRQcm92aWRlcjo6ZGV2aWNlQWRkZWQoSU9ISUREZXZpY2VSZWYgZGV2aWNlKQogICAg
IG1fZ2FtZXBhZFZlY3RvcltpbmRleF0gPSBnYW1lcGFkLmdldCgpOwogICAgIG1fZ2FtZXBhZE1h
cC5zZXQoZGV2aWNlLCBXVEZNb3ZlKGdhbWVwYWQpKTsKIAotICAgIGlmICghbV9zaG91bGREaXNw
YXRjaENhbGxiYWNrcykgeworICAgIGlmICghbV9pbml0aWFsR2FtZXBhZHNDb25uZWN0ZWQpIHsK
ICAgICAgICAgLy8gVGhpcyBhZGRlZCBkZXZpY2UgaXMgdGhlIHJlc3VsdCBvZiB1cyBzdGFydGlu
ZyB0byBtb25pdG9yIGdhbWVwYWRzLgogICAgICAgICAvLyBXZSdsbCBnZXQgbm90aWZpZWQgb2Yg
YWxsIGNvbm5lY3RlZCBkZXZpY2VzIGR1cmluZyB0aGlzIGN1cnJlbnQgc3BpbiBvZiB0aGUgcnVu
bG9vcAotICAgICAgICAvLyBhbmQgd2UgZG9uJ3Qgd2FudCB0byB0ZWxsIHRoZSBjbGllbnQgYWJv
dXQgYW55IG9mIHRoZW0uCi0gICAgICAgIC8vIFRoZSBtX2Nvbm5lY3Rpb25EZWxheVRpbWVyIGZp
cmVzIGluIGEgc3Vic2VxdWVudCBzcGluIG9mIHRoZSBydW5sb29wIGFmdGVyIHdoaWNoCi0gICAg
ICAgIC8vIGFueSBjb25uZWN0aW9uIGV2ZW50cyBhcmUgYWN0dWFsIG5ldyBkZXZpY2VzLgotICAg
ICAgICBtX2Nvbm5lY3Rpb25EZWxheVRpbWVyLnN0YXJ0T25lU2hvdCgwX3MpOwotCi0gICAgICAg
IExPRyhHYW1lcGFkLCAiRGV2aWNlICVwIHdhcyBhZGRlZCB3aGlsZSBzdXBwcmVzc2luZyBjYWxs
YmFja3MsIHNvIHRoaXMgc2hvdWxkIGJlIGFuICdhbHJlYWR5IGNvbm5lY3RlZCcgZXZlbnQiLCBk
ZXZpY2UpOwotCi0gICAgICAgIHJldHVybjsKKyAgICAgICAgLy8gYW5kIHRoZSBjbGllbnQgc2hv
dWxkIGJlIHRvbGQgdGhleSB3ZXJlIGFscmVhZHkgY29ubmVjdGVkLgorICAgICAgICAvLyBUaGUg
bV9pbml0aWFsR2FtZXBhZHNDb25uZWN0ZWRUaW1lciBmaXJlcyBpbiBhIHN1YnNlcXVlbnQgc3Bp
biBvZiB0aGUgcnVubG9vcCBhZnRlciB3aGljaAorICAgICAgICAvLyBhbnkgY29ubmVjdGlvbiBl
dmVudHMgYXJlIGFjdHVhbCBuZXcgZGV2aWNlcyBhbmQgY2FuIHRyaWdnZXIgZ2FtZXBhZCB2aXNp
YmlsaXR5LgorICAgICAgICBpZiAoIW1faW5pdGlhbEdhbWVwYWRzQ29ubmVjdGVkVGltZXIuaXNB
Y3RpdmUoKSkKKyAgICAgICAgICAgIG1faW5pdGlhbEdhbWVwYWRzQ29ubmVjdGVkVGltZXIuc3Rh
cnRPbmVTaG90KDBfcyk7CiAgICAgfQogCiAgICAgZm9yIChhdXRvJiBjbGllbnQgOiBtX2NsaWVu
dHMpCi0gICAgICAgIGNsaWVudC0+cGxhdGZvcm1HYW1lcGFkQ29ubmVjdGVkKCptX2dhbWVwYWRW
ZWN0b3JbaW5kZXhdKTsKKyAgICAgICAgY2xpZW50LT5wbGF0Zm9ybUdhbWVwYWRDb25uZWN0ZWQo
Km1fZ2FtZXBhZFZlY3RvcltpbmRleF0sIG1faW5pdGlhbEdhbWVwYWRzQ29ubmVjdGVkID8gRXZl
bnRNYWtlc0dhbWVwYWRzVmlzaWJsZTo6WWVzIDogRXZlbnRNYWtlc0dhbWVwYWRzVmlzaWJsZTo6
Tm8pOwogfQogCiB2b2lkIEhJREdhbWVwYWRQcm92aWRlcjo6ZGV2aWNlUmVtb3ZlZChJT0hJRERl
dmljZVJlZiBkZXZpY2UpCkBAIC0yMTksMTAgKzIxMiw2IEBAIHZvaWQgSElER2FtZXBhZFByb3Zp
ZGVyOjpkZXZpY2VSZW1vdmVkKElPSElERGV2aWNlUmVmIGRldmljZSkKICAgICBzdGQ6OnVuaXF1
ZV9wdHI8SElER2FtZXBhZD4gcmVtb3ZlZEdhbWVwYWQgPSByZW1vdmVHYW1lcGFkRm9yRGV2aWNl
KGRldmljZSk7CiAgICAgQVNTRVJUKHJlbW92ZWRHYW1lcGFkKTsKIAotICAgIC8vIEFueSB0aW1l
IHdlIGdldCBhIGRldmljZSByZW1vdmVkIGNhbGxiYWNrIHdlIGtub3cgaXQncyBhIHJlYWwgZXZl
bnQgYW5kIG5vdCBhbiAnYWxyZWFkeSBjb25uZWN0ZWQnIGV2ZW50LgotICAgIC8vIFdlIHNob3Vs
ZCBhbHdheXMgc3RvcCBzdXBwcmVzc2luZyBjYWxsYmFja3Mgd2hlbiB3ZSByZWNlaXZlIHN1Y2gg
YW4gZXZlbnQuCi0gICAgbV9zaG91bGREaXNwYXRjaENhbGxiYWNrcyA9IHRydWU7Ci0KICAgICBm
b3IgKGF1dG8mIGNsaWVudCA6IG1fY2xpZW50cykKICAgICAgICAgY2xpZW50LT5wbGF0Zm9ybUdh
bWVwYWREaXNjb25uZWN0ZWQoKnJlbW92ZWRHYW1lcGFkKTsKIH0KQEAgLTI0OCw4ICsyMzcsMTEg
QEAgdm9pZCBISURHYW1lcGFkUHJvdmlkZXI6OnZhbHVlc0NoYW5nZWQoSU9ISURWYWx1ZVJlZiB2
YWx1ZSkKIAogdm9pZCBISURHYW1lcGFkUHJvdmlkZXI6OmlucHV0Tm90aWZpY2F0aW9uVGltZXJG
aXJlZCgpCiB7Ci0gICAgaWYgKCFtX3Nob3VsZERpc3BhdGNoQ2FsbGJhY2tzKQorICAgIGlmICgh
bV9pbml0aWFsR2FtZXBhZHNDb25uZWN0ZWQpIHsKKyAgICAgICAgaWYgKCFtX2lucHV0Tm90aWZp
Y2F0aW9uVGltZXIuaXNBY3RpdmUoKSkKKyAgICAgICAgICAgIG1faW5wdXROb3RpZmljYXRpb25U
aW1lci5zdGFydE9uZVNob3QoMF9zKTsKICAgICAgICAgcmV0dXJuOworICAgIH0KIAogICAgIGRp
c3BhdGNoUGxhdGZvcm1HYW1lcGFkSW5wdXRBY3Rpdml0eSgpOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2FtZXBhZC9tYWMvSElER2FtZXBhZFByb3ZpZGVyLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nYW1lcGFkL21hYy9ISURHYW1lcGFkUHJvdmlkZXIuaApp
bmRleCBmZDVmZGU5MWI2NC4uMWJiNTRlZTU2MWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dhbWVwYWQvbWFjL0hJREdhbWVwYWRQcm92aWRlci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dhbWVwYWQvbWFjL0hJREdhbWVwYWRQcm92aWRlci5oCkBAIC02NCw3
ICs2NCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBvcGVuQW5kU2NoZWR1bGVNYW5hZ2VyKCk7CiAg
ICAgdm9pZCBjbG9zZUFuZFVuc2NoZWR1bGVNYW5hZ2VyKCk7CiAKLSAgICB2b2lkIGNvbm5lY3Rp
b25EZWxheVRpbWVyRmlyZWQoKTsKKyAgICB2b2lkIGluaXRpYWxHYW1lcGFkc0Nvbm5lY3RlZFRp
bWVyRmlyZWQoKTsKICAgICB2b2lkIGlucHV0Tm90aWZpY2F0aW9uVGltZXJGaXJlZCgpOwogCiAg
ICAgdW5zaWduZWQgaW5kZXhGb3JOZXdseUNvbm5lY3RlZERldmljZSgpOwpAQCAtNzQsOSArNzQs
OSBAQCBwcml2YXRlOgogCiAgICAgUmV0YWluUHRyPElPSElETWFuYWdlclJlZj4gbV9tYW5hZ2Vy
OwogCi0gICAgYm9vbCBtX3Nob3VsZERpc3BhdGNoQ2FsbGJhY2tzOworICAgIGJvb2wgbV9pbml0
aWFsR2FtZXBhZHNDb25uZWN0ZWQgeyBmYWxzZSB9OwogCi0gICAgVGltZXIgbV9jb25uZWN0aW9u
RGVsYXlUaW1lcjsKKyAgICBUaW1lciBtX2luaXRpYWxHYW1lcGFkc0Nvbm5lY3RlZFRpbWVyOwog
ICAgIFRpbWVyIG1faW5wdXROb3RpZmljYXRpb25UaW1lcjsKIH07CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja0dhbWVwYWRQcm92aWRlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL01vY2tHYW1lcGFkUHJvdmlkZXIuY3BwCmluZGV4IDYxNTBmNTJhM2ZhLi42
YjExNmU3NjI1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrR2FtZXBh
ZFByb3ZpZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tHYW1lcGFkUHJv
dmlkZXIuY3BwCkBAIC04Nyw3ICs4Nyw3IEBAIGJvb2wgTW9ja0dhbWVwYWRQcm92aWRlcjo6Y29u
bmVjdE1vY2tHYW1lcGFkKHVuc2lnbmVkIGluZGV4KQogICAgIG1fY29ubmVjdGVkR2FtZXBhZFZl
Y3RvcltpbmRleF0gPSBtX21vY2tHYW1lcGFkVmVjdG9yW2luZGV4XS5nZXQoKTsKIAogICAgIGZv
ciAoYXV0byYgY2xpZW50IDogbV9jbGllbnRzKQotICAgICAgICBjbGllbnQtPnBsYXRmb3JtR2Ft
ZXBhZENvbm5lY3RlZCgqbV9jb25uZWN0ZWRHYW1lcGFkVmVjdG9yW2luZGV4XSk7CisgICAgICAg
IGNsaWVudC0+cGxhdGZvcm1HYW1lcGFkQ29ubmVjdGVkKCptX2Nvbm5lY3RlZEdhbWVwYWRWZWN0
b3JbaW5kZXhdLCBFdmVudE1ha2VzR2FtZXBhZHNWaXNpYmxlOjpZZXMpOwogCiAgICAgcmV0dXJu
IHRydWU7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDU0YTJlMGIzZTNmLi45ZDBjNjk1N2IzNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
QEAgLTEsMyArMSw0MyBAQAorMjAyMC0wNy0wNiAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBs
ZS5jb20+CisKKyAgICAgICAgR2V0IHJpZCBvZiBjb25jZXB0IG9mICJpbml0aWFsIGNvbm5lY3Rl
ZCBnYW1lcGFkcyIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIxNDAxMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHk6CisKKyAgICAgICAgKiBVSVByb2Nlc3Mv
R2FtZXBhZC9VSUdhbWVwYWRQcm92aWRlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlVJR2FtZXBh
ZFByb3ZpZGVyOjpnYW1lcGFkU3luY1RpbWVyRmlyZWQpOgorICAgICAgICAoV2ViS2l0OjpVSUdh
bWVwYWRQcm92aWRlcjo6cGxhdGZvcm1HYW1lcGFkQ29ubmVjdGVkKToKKyAgICAgICAgKFdlYktp
dDo6VUlHYW1lcGFkUHJvdmlkZXI6OnBsYXRmb3JtR2FtZXBhZElucHV0QWN0aXZpdHkpOgorICAg
ICAgICAoV2ViS2l0OjpVSUdhbWVwYWRQcm92aWRlcjo6c2V0SW5pdGlhbENvbm5lY3RlZEdhbWVw
YWRzKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvR2FtZXBhZC9VSUdhbWVwYWRQcm92
aWRlci5oOgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6Z2FtZXBhZEFjdGl2aXR5KToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Bv
b2wuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6Z2FtZXBhZENvbm5lY3Rl
ZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpzZXRJbml0aWFsQ29ubmVjdGVk
R2FtZXBhZHMpOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5o
OgorCisgICAgICAgICogV2ViUHJvY2Vzcy9HYW1lcGFkL1dlYkdhbWVwYWRQcm92aWRlci5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYkdhbWVwYWRQcm92aWRlcjo6Z2FtZXBhZENvbm5lY3RlZCk6
CisgICAgICAgIChXZWJLaXQ6OldlYkdhbWVwYWRQcm92aWRlcjo6Z2FtZXBhZEFjdGl2aXR5KToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL0dhbWVwYWQvV2ViR2FtZXBhZFByb3ZpZGVyLmg6CisKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6
OldlYlBhZ2U6OmdhbWVwYWRBY3Rpdml0eSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdl
cy5pbjoKKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYlByb2Nlc3M6OmdhbWVwYWRDb25uZWN0ZWQpOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViUHJvY2Vzcy5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdl
cy5pbjoKKwogMjAyMC0wNy0wMiAgS2F0ZSBDaGVuZXkgIDxrYXRoZXJpbmVfY2hlbmV5QGFwcGxl
LmNvbT4KIAogICAgICAgICBDdXN0b20gVVJMIHNjaGVtZXMgc2hvdWxkIGJlIHRyZWF0ZWQgYXMg
YXBwLWJvdW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3Nh
Z2VzLnB5IGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQppbmRleCA2
MjU4YTdmNTY0Yi4uNjliMzU5ZjQ4NzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0
cy93ZWJraXQvbWVzc2FnZXMucHkKKysrIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9t
ZXNzYWdlcy5weQpAQCAtNTk5LDYgKzU5OSw3IEBAIGRlZiBoZWFkZXJzX2Zvcl90eXBlKHR5cGUp
OgogICAgICAgICAnV2ViQ29yZTo6U2hhcmVEYXRhV2l0aFBhcnNlZFVSTCc6IFsnPFdlYkNvcmUv
U2hhcmVEYXRhLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpGb250Q2hhbmdlcyc6IFsnPFdlYkNv
cmUvRm9udEF0dHJpYnV0ZUNoYW5nZXMuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OkZyYW1lTG9h
ZFR5cGUnOiBbJzxXZWJDb3JlL0ZyYW1lTG9hZGVyVHlwZXMuaD4nXSwKKyAgICAgICAgJ1dlYkNv
cmU6OkV2ZW50TWFrZXNHYW1lcGFkc1Zpc2libGUnOiBbJzxXZWJDb3JlL0dhbWVwYWRQcm92aWRl
ckNsaWVudC5oPiddLAogICAgICAgICAnV2ViQ29yZTo6R2VuZXJpY0N1ZURhdGEnOiBbJzxXZWJD
b3JlL0luYmFuZEdlbmVyaWNDdWUuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OkdyYW1tYXJEZXRh
aWwnOiBbJzxXZWJDb3JlL1RleHRDaGVja2VyQ2xpZW50Lmg+J10sCiAgICAgICAgICdXZWJDb3Jl
OjpIYXNJbnNlY3VyZUNvbnRlbnQnOiBbJzxXZWJDb3JlL0ZyYW1lTG9hZGVyVHlwZXMuaD4nXSwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0dhbWVwYWQvVUlHYW1lcGFkUHJv
dmlkZXIuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvR2FtZXBhZC9VSUdhbWVwYWRQcm92
aWRlci5jcHAKaW5kZXggOTk5OTM3M2YwMjMuLjU5YTY4ZWU0YmI4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9HYW1lcGFkL1VJR2FtZXBhZFByb3ZpZGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9HYW1lcGFkL1VJR2FtZXBhZFByb3ZpZGVyLmNwcApAQCAt
NjUsNyArNjUsNyBAQCB2b2lkIFVJR2FtZXBhZFByb3ZpZGVyOjpnYW1lcGFkU3luY1RpbWVyRmly
ZWQoKQogICAgIGlmICghd2ViUGFnZVByb3h5IHx8ICFtX3Byb2Nlc3NQb29sc1VzaW5nR2FtZXBh
ZHMuY29udGFpbnMoJndlYlBhZ2VQcm94eS0+cHJvY2VzcygpLnByb2Nlc3NQb29sKCkpKQogICAg
ICAgICByZXR1cm47CiAKLSAgICB3ZWJQYWdlUHJveHktPmdhbWVwYWRBY3Rpdml0eShzbmFwc2hv
dEdhbWVwYWRzKCksIG1fc2hvdWxkTWFrZUdhbWVwYWRzVmlzaWJsZU9uU3luYyk7CisgICAgd2Vi
UGFnZVByb3h5LT5nYW1lcGFkQWN0aXZpdHkoc25hcHNob3RHYW1lcGFkcygpLCBtX3Nob3VsZE1h
a2VHYW1lcGFkc1Zpc2libGVPblN5bmMgPyBFdmVudE1ha2VzR2FtZXBhZHNWaXNpYmxlOjpZZXMg
OiBFdmVudE1ha2VzR2FtZXBhZHNWaXNpYmxlOjpObyk7CiAgICAgbV9zaG91bGRNYWtlR2FtZXBh
ZHNWaXNpYmxlT25TeW5jID0gZmFsc2U7CiB9CiAKQEAgLTgyLDI2ICs4MiwxMCBAQCB2b2lkIFVJ
R2FtZXBhZFByb3ZpZGVyOjpzY2hlZHVsZUdhbWVwYWRTdGF0ZVN5bmMoKQogICAgIG1fZ2FtZXBh
ZFN5bmNUaW1lci5zdGFydE9uZVNob3QobWF4aW11bUdhbWVwYWRVcGRhdGVJbnRlcnZhbCk7CiB9
CiAKLXZvaWQgVUlHYW1lcGFkUHJvdmlkZXI6OnNldEluaXRpYWxDb25uZWN0ZWRHYW1lcGFkcyhj
b25zdCBWZWN0b3I8UGxhdGZvcm1HYW1lcGFkKj4mIGluaXRpYWxHYW1lcGFkcykKK3ZvaWQgVUlH
YW1lcGFkUHJvdmlkZXI6OnBsYXRmb3JtR2FtZXBhZENvbm5lY3RlZChQbGF0Zm9ybUdhbWVwYWQm
IGdhbWVwYWQsIEV2ZW50TWFrZXNHYW1lcGFkc1Zpc2libGUgZXZlbnRWaXNpYmlsaXR5KQogewot
ICAgIEFTU0VSVCghbV9oYXNJbml0aWFsR2FtZXBhZHMpOworICAgIExPRyhHYW1lcGFkLCAiVUlH
YW1lcGFkUHJvdmlkZXI6OnBsYXRmb3JtR2FtZXBhZENvbm5lY3RlZCAtIEluZGV4ICVpIGF0dGFj
aGVkICh2aXNpYmlsaXR5OiAlaSlcbiIsIGdhbWVwYWQuaW5kZXgoKSwgKGludClldmVudFZpc2li
aWxpdHkpOwogCi0gICAgbV9nYW1lcGFkcy5yZXNpemUoaW5pdGlhbEdhbWVwYWRzLnNpemUoKSk7
Ci0KLSAgICBmb3IgKGF1dG8qIGdhbWVwYWQgOiBpbml0aWFsR2FtZXBhZHMpIHsKLSAgICAgICAg
aWYgKCFnYW1lcGFkKQotICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIG1fZ2FtZXBhZHNb
Z2FtZXBhZC0+aW5kZXgoKV0gPSBtYWtlVW5pcXVlPFVJR2FtZXBhZD4oKmdhbWVwYWQpOwotICAg
IH0KLQotICAgIGZvciAoYXV0byYgcG9vbCA6IG1fcHJvY2Vzc1Bvb2xzVXNpbmdHYW1lcGFkcykK
LSAgICAgICAgcG9vbC0+c2V0SW5pdGlhbENvbm5lY3RlZEdhbWVwYWRzKG1fZ2FtZXBhZHMpOwot
Ci0gICAgbV9oYXNJbml0aWFsR2FtZXBhZHMgPSB0cnVlOwotfQotCi12b2lkIFVJR2FtZXBhZFBy
b3ZpZGVyOjpwbGF0Zm9ybUdhbWVwYWRDb25uZWN0ZWQoUGxhdGZvcm1HYW1lcGFkJiBnYW1lcGFk
KQotewogICAgIGlmIChtX2dhbWVwYWRzLnNpemUoKSA8PSBnYW1lcGFkLmluZGV4KCkpCiAgICAg
ICAgIG1fZ2FtZXBhZHMuZ3JvdyhnYW1lcGFkLmluZGV4KCkgKyAxKTsKIApAQCAtMTExLDcgKzk1
LDcgQEAgdm9pZCBVSUdhbWVwYWRQcm92aWRlcjo6cGxhdGZvcm1HYW1lcGFkQ29ubmVjdGVkKFBs
YXRmb3JtR2FtZXBhZCYgZ2FtZXBhZCkKICAgICBzY2hlZHVsZUdhbWVwYWRTdGF0ZVN5bmMoKTsK
IAogICAgIGZvciAoYXV0byYgcG9vbCA6IG1fcHJvY2Vzc1Bvb2xzVXNpbmdHYW1lcGFkcykKLSAg
ICAgICAgcG9vbC0+Z2FtZXBhZENvbm5lY3RlZCgqbV9nYW1lcGFkc1tnYW1lcGFkLmluZGV4KCld
KTsKKyAgICAgICAgcG9vbC0+Z2FtZXBhZENvbm5lY3RlZCgqbV9nYW1lcGFkc1tnYW1lcGFkLmlu
ZGV4KCldLCBldmVudFZpc2liaWxpdHkpOwogfQogCiB2b2lkIFVJR2FtZXBhZFByb3ZpZGVyOjpw
bGF0Zm9ybUdhbWVwYWREaXNjb25uZWN0ZWQoUGxhdGZvcm1HYW1lcGFkJiBnYW1lcGFkKQpAQCAt
MTI3LDcgKzExMSw3IEBAIHZvaWQgVUlHYW1lcGFkUHJvdmlkZXI6OnBsYXRmb3JtR2FtZXBhZERp
c2Nvbm5lY3RlZChQbGF0Zm9ybUdhbWVwYWQmIGdhbWVwYWQpCiAgICAgICAgIHBvb2wtPmdhbWVw
YWREaXNjb25uZWN0ZWQoKmRpc2Nvbm5lY3RlZEdhbWVwYWQpOwogfQogCi12b2lkIFVJR2FtZXBh
ZFByb3ZpZGVyOjpwbGF0Zm9ybUdhbWVwYWRJbnB1dEFjdGl2aXR5KGJvb2wgc2hvdWxkTWFrZUdh
bWVwYWRzVmlzaWJsZSkKK3ZvaWQgVUlHYW1lcGFkUHJvdmlkZXI6OnBsYXRmb3JtR2FtZXBhZElu
cHV0QWN0aXZpdHkoRXZlbnRNYWtlc0dhbWVwYWRzVmlzaWJsZSBldmVudFZpc2liaWxpdHkpCiB7
CiAgICAgYXV0byBwbGF0Zm9ybUdhbWVwYWRzID0gR2FtZXBhZFByb3ZpZGVyOjpzaW5nbGV0b24o
KS5wbGF0Zm9ybUdhbWVwYWRzKCk7CiAgICAgQVNTRVJUKHBsYXRmb3JtR2FtZXBhZHMuc2l6ZSgp
ID09IG1fZ2FtZXBhZHMuc2l6ZSgpKTsKQEAgLTE0Miw3ICsxMjYsNyBAQCB2b2lkIFVJR2FtZXBh
ZFByb3ZpZGVyOjpwbGF0Zm9ybUdhbWVwYWRJbnB1dEFjdGl2aXR5KGJvb2wgc2hvdWxkTWFrZUdh
bWVwYWRzVmlzaQogICAgICAgICBtX2dhbWVwYWRzW2ldLT51cGRhdGVGcm9tUGxhdGZvcm1HYW1l
cGFkKCpwbGF0Zm9ybUdhbWVwYWRzW2ldKTsKICAgICB9CiAKLSAgICBpZiAoc2hvdWxkTWFrZUdh
bWVwYWRzVmlzaWJsZSkKKyAgICBpZiAoZXZlbnRWaXNpYmlsaXR5ID09IEV2ZW50TWFrZXNHYW1l
cGFkc1Zpc2libGU6OlllcykKICAgICAgICAgbV9zaG91bGRNYWtlR2FtZXBhZHNWaXNpYmxlT25T
eW5jID0gdHJ1ZTsKIAogICAgIHNjaGVkdWxlR2FtZXBhZFN0YXRlU3luYygpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvR2FtZXBhZC9VSUdhbWVwYWRQcm92aWRlci5oIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvR2FtZXBhZC9VSUdhbWVwYWRQcm92aWRlci5oCmluZGV4
IDg2ZTg5N2U5YzVkLi4zZWE3MDFjNzM4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvR2FtZXBhZC9VSUdhbWVwYWRQcm92aWRlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0dhbWVwYWQvVUlHYW1lcGFkUHJvdmlkZXIuaApAQCAtNzAsMTAgKzcwLDkgQEAgcHJp
dmF0ZToKICAgICB2b2lkIHBsYXRmb3JtU3RvcE1vbml0b3JpbmdJbnB1dCgpOwogICAgIHZvaWQg
cGxhdGZvcm1TdGFydE1vbml0b3JpbmdJbnB1dCgpOwogCi0gICAgdm9pZCBzZXRJbml0aWFsQ29u
bmVjdGVkR2FtZXBhZHMoY29uc3QgVmVjdG9yPFdlYkNvcmU6OlBsYXRmb3JtR2FtZXBhZCo+Jikg
ZmluYWw7Ci0gICAgdm9pZCBwbGF0Zm9ybUdhbWVwYWRDb25uZWN0ZWQoV2ViQ29yZTo6UGxhdGZv
cm1HYW1lcGFkJikgZmluYWw7CisgICAgdm9pZCBwbGF0Zm9ybUdhbWVwYWRDb25uZWN0ZWQoV2Vi
Q29yZTo6UGxhdGZvcm1HYW1lcGFkJiwgV2ViQ29yZTo6RXZlbnRNYWtlc0dhbWVwYWRzVmlzaWJs
ZSkgZmluYWw7CiAgICAgdm9pZCBwbGF0Zm9ybUdhbWVwYWREaXNjb25uZWN0ZWQoV2ViQ29yZTo6
UGxhdGZvcm1HYW1lcGFkJikgZmluYWw7Ci0gICAgdm9pZCBwbGF0Zm9ybUdhbWVwYWRJbnB1dEFj
dGl2aXR5KGJvb2wgc2hvdWxkTWFrZUdhbWVwYWRzVmlzaWJsZSkgZmluYWw7CisgICAgdm9pZCBw
bGF0Zm9ybUdhbWVwYWRJbnB1dEFjdGl2aXR5KFdlYkNvcmU6OkV2ZW50TWFrZXNHYW1lcGFkc1Zp
c2libGUpIGZpbmFsOwogCiAgICAgdm9pZCBzY2hlZHVsZUdhbWVwYWRTdGF0ZVN5bmMoKTsKICAg
ICB2b2lkIGdhbWVwYWRTeW5jVGltZXJGaXJlZCgpOwpAQCAtODUsNyArODQsNiBAQCBwcml2YXRl
OgogICAgIFJ1bkxvb3A6OlRpbWVyPFVJR2FtZXBhZFByb3ZpZGVyPiBtX2dhbWVwYWRTeW5jVGlt
ZXI7CiAKICAgICBib29sIG1faXNNb25pdG9yaW5nR2FtZXBhZHMgeyBmYWxzZSB9OwotICAgIGJv
b2wgbV9oYXNJbml0aWFsR2FtZXBhZHMgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9zaG91bGRNYWtl
R2FtZXBhZHNWaXNpYmxlT25TeW5jIHsgZmFsc2UgfTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDc2NjNiNDQ3OTQ3Li4zYThmNDA1YTM1ZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC03OTE5LDkgKzc5MTks
OSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6YmFja0ZvcndhcmRDbGVhcigpCiAKICNpZiBFTkFCTEUo
R0FNRVBBRCkKIAotdm9pZCBXZWJQYWdlUHJveHk6OmdhbWVwYWRBY3Rpdml0eShjb25zdCBWZWN0
b3I8R2FtZXBhZERhdGE+JiBnYW1lcGFkRGF0YXMsIGJvb2wgc2hvdWxkTWFrZUdhbWVwYWRzVmlz
aWJsZSkKK3ZvaWQgV2ViUGFnZVByb3h5OjpnYW1lcGFkQWN0aXZpdHkoY29uc3QgVmVjdG9yPEdh
bWVwYWREYXRhPiYgZ2FtZXBhZERhdGFzLCBFdmVudE1ha2VzR2FtZXBhZHNWaXNpYmxlIGV2ZW50
VmlzaWJpbGl0eSkKIHsKLSAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpHYW1lcGFkQWN0aXZp
dHkoZ2FtZXBhZERhdGFzLCBzaG91bGRNYWtlR2FtZXBhZHNWaXNpYmxlKSk7CisgICAgc2VuZChN
ZXNzYWdlczo6V2ViUGFnZTo6R2FtZXBhZEFjdGl2aXR5KGdhbWVwYWREYXRhcywgZXZlbnRWaXNp
YmlsaXR5KSk7CiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
aAppbmRleCBmOGNlNTA4ZWExNy4uYmM3MjM5OWJjMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5oCkBAIC0yMjksNiArMjI5LDcgQEAgY2xhc3MgVmFsaWRhdGlvbkJ1YmJs
ZTsKIAogZW51bSBjbGFzcyBBdXRvcGxheUV2ZW50IDogdWludDhfdDsKIGVudW0gY2xhc3MgRE9N
UGFzdGVBY2Nlc3NSZXNwb25zZSA6IHVpbnQ4X3Q7CitlbnVtIGNsYXNzIEV2ZW50TWFrZXNHYW1l
cGFkc1Zpc2libGUgOiBib29sOwogZW51bSBjbGFzcyBMb2NrQmFja0ZvcndhcmRMaXN0IDogYm9v
bDsKIGVudW0gY2xhc3MgSGFzSW5zZWN1cmVDb250ZW50IDogYm9vbDsKIGVudW0gY2xhc3MgTW91
c2VFdmVudFBvbGljeSA6IHVpbnQ4X3Q7CkBAIC0xNTY5LDcgKzE1NzAsNyBAQCBwdWJsaWM6CiAg
ICAgYm9vbCBpc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKSBjb25zdDsKIAogI2lmIEVOQUJMRShH
QU1FUEFEKQotICAgIHZvaWQgZ2FtZXBhZEFjdGl2aXR5KGNvbnN0IFZlY3RvcjxHYW1lcGFkRGF0
YT4mLCBib29sIHNob3VsZE1ha2VHYW1lcGFkc1Zpc2libGUpOworICAgIHZvaWQgZ2FtZXBhZEFj
dGl2aXR5KGNvbnN0IFZlY3RvcjxHYW1lcGFkRGF0YT4mLCBXZWJDb3JlOjpFdmVudE1ha2VzR2Ft
ZXBhZHNWaXNpYmxlKTsKICNlbmRpZgogCiAgICAgdm9pZCBpc0xvYWRpbmdDaGFuZ2VkKCkgeyBh
Y3Rpdml0eVN0YXRlRGlkQ2hhbmdlKFdlYkNvcmU6OkFjdGl2aXR5U3RhdGU6OklzTG9hZGluZyk7
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNw
cCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcAppbmRleCAyMGNm
OTI2YWM4MC4uYmUzNTQyZWMxYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlByb2Nlc3NQb29sLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9j
ZXNzUG9vbC5jcHAKQEAgLTE5NTcsMTAgKzE5NTcsMTAgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6
cHJvY2Vzc1N0b3BwZWRVc2luZ0dhbWVwYWRzKFdlYlByb2Nlc3NQcm94eSYgcHJvY2VzcykKICAg
ICAgICAgVUlHYW1lcGFkUHJvdmlkZXI6OnNpbmdsZXRvbigpLnByb2Nlc3NQb29sU3RvcHBlZFVz
aW5nR2FtZXBhZHMoKnRoaXMpOwogfQogCi12b2lkIFdlYlByb2Nlc3NQb29sOjpnYW1lcGFkQ29u
bmVjdGVkKGNvbnN0IFVJR2FtZXBhZCYgZ2FtZXBhZCkKK3ZvaWQgV2ViUHJvY2Vzc1Bvb2w6Omdh
bWVwYWRDb25uZWN0ZWQoY29uc3QgVUlHYW1lcGFkJiBnYW1lcGFkLCBFdmVudE1ha2VzR2FtZXBh
ZHNWaXNpYmxlIGV2ZW50VmlzaWJpbGl0eSkKIHsKICAgICBmb3IgKGF1dG8mIHByb2Nlc3MgOiBt
X3Byb2Nlc3Nlc1VzaW5nR2FtZXBhZHMpCi0gICAgICAgIHByb2Nlc3MtPnNlbmQoTWVzc2FnZXM6
OldlYlByb2Nlc3M6OkdhbWVwYWRDb25uZWN0ZWQoZ2FtZXBhZC5mdWxsR2FtZXBhZERhdGEoKSks
IDApOworICAgICAgICBwcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpHYW1lcGFk
Q29ubmVjdGVkKGdhbWVwYWQuZnVsbEdhbWVwYWREYXRhKCksIGV2ZW50VmlzaWJpbGl0eSksIDAp
OwogfQogCiB2b2lkIFdlYlByb2Nlc3NQb29sOjpnYW1lcGFkRGlzY29ubmVjdGVkKGNvbnN0IFVJ
R2FtZXBhZCYgZ2FtZXBhZCkKQEAgLTE5NjksMjAgKzE5NjksNiBAQCB2b2lkIFdlYlByb2Nlc3NQ
b29sOjpnYW1lcGFkRGlzY29ubmVjdGVkKGNvbnN0IFVJR2FtZXBhZCYgZ2FtZXBhZCkKICAgICAg
ICAgcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUHJvY2Vzczo6R2FtZXBhZERpc2Nvbm5lY3Rl
ZChnYW1lcGFkLmluZGV4KCkpLCAwKTsKIH0KIAotdm9pZCBXZWJQcm9jZXNzUG9vbDo6c2V0SW5p
dGlhbENvbm5lY3RlZEdhbWVwYWRzKGNvbnN0IFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8VUlHYW1l
cGFkPj4mIGdhbWVwYWRzKQotewotICAgIFZlY3RvcjxHYW1lcGFkRGF0YT4gZ2FtZXBhZERhdGFz
OwotICAgIGdhbWVwYWREYXRhcy5ncm93KGdhbWVwYWRzLnNpemUoKSk7Ci0gICAgZm9yIChzaXpl
X3QgaSA9IDA7IGkgPCBnYW1lcGFkcy5zaXplKCk7ICsraSkgewotICAgICAgICBpZiAoIWdhbWVw
YWRzW2ldKQotICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIGdhbWVwYWREYXRhc1tpXSA9
IGdhbWVwYWRzW2ldLT5mdWxsR2FtZXBhZERhdGEoKTsKLSAgICB9Ci0KLSAgICBmb3IgKGF1dG8m
IHByb2Nlc3MgOiBtX3Byb2Nlc3Nlc1VzaW5nR2FtZXBhZHMpCi0gICAgICAgIHByb2Nlc3MtPnNl
bmQoTWVzc2FnZXM6OldlYlByb2Nlc3M6OlNldEluaXRpYWxHYW1lcGFkcyhnYW1lcGFkRGF0YXMp
LCAwKTsKLX0KLQogI2VuZGlmIC8vIEVOQUJMRShHQU1FUEFEKQogCiB2b2lkIFdlYlByb2Nlc3NQ
b29sOjpzZXRKYXZhU2NyaXB0Q29uZmlndXJhdGlvbkZpbGVFbmFibGVkKGJvb2wgZmxhZykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmggYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCmluZGV4IGJmMmQ4YzdlNTJkLi43
YTEwZWFiN2E4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vz
c1Bvb2wuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCkBA
IC05Miw2ICs5Miw3IEBAIGNsYXNzIFBhZ2VDb25maWd1cmF0aW9uOwogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiBjbGFzcyBSZWdpc3RyYWJsZURvbWFpbjsKK2VudW0gY2xhc3MgRXZlbnRNYWtlc0dh
bWVwYWRzVmlzaWJsZSA6IGJvb2w7CiBzdHJ1Y3QgTW9ja01lZGlhRGV2aWNlOwogfQogCkBAIC00
NjMsMTAgKzQ2NCw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHN5bnRoZXNpemVBcHBJc0JhY2tncm91
bmQoYm9vbCBiYWNrZ3JvdW5kKTsKICAgICAKICNpZiBFTkFCTEUoR0FNRVBBRCkKLSAgICB2b2lk
IGdhbWVwYWRDb25uZWN0ZWQoY29uc3QgVUlHYW1lcGFkJik7CisgICAgdm9pZCBnYW1lcGFkQ29u
bmVjdGVkKGNvbnN0IFVJR2FtZXBhZCYsIFdlYkNvcmU6OkV2ZW50TWFrZXNHYW1lcGFkc1Zpc2li
bGUpOwogICAgIHZvaWQgZ2FtZXBhZERpc2Nvbm5lY3RlZChjb25zdCBVSUdhbWVwYWQmKTsKLQot
ICAgIHZvaWQgc2V0SW5pdGlhbENvbm5lY3RlZEdhbWVwYWRzKGNvbnN0IFZlY3RvcjxzdGQ6OnVu
aXF1ZV9wdHI8VUlHYW1lcGFkPj4mKTsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oQ09DT0EpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR2FtZXBhZC9XZWJHYW1lcGFkUHJv
dmlkZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dhbWVwYWQvV2ViR2FtZXBhZFBy
b3ZpZGVyLmNwcAppbmRleCBhYWIzNDU3Y2VkNi4uY2ZjMGJkYzIzYWUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HYW1lcGFkL1dlYkdhbWVwYWRQcm92aWRlci5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dhbWVwYWQvV2ViR2FtZXBhZFByb3ZpZGVyLmNw
cApAQCAtNjcsOCArNjcsMTAgQEAgdm9pZCBXZWJHYW1lcGFkUHJvdmlkZXI6OnNldEluaXRpYWxH
YW1lcGFkcyhjb25zdCBWZWN0b3I8R2FtZXBhZERhdGE+JiBnYW1lcGFkRGEKICAgICB9CiB9CiAK
LXZvaWQgV2ViR2FtZXBhZFByb3ZpZGVyOjpnYW1lcGFkQ29ubmVjdGVkKGNvbnN0IEdhbWVwYWRE
YXRhJiBnYW1lcGFkRGF0YSkKK3ZvaWQgV2ViR2FtZXBhZFByb3ZpZGVyOjpnYW1lcGFkQ29ubmVj
dGVkKGNvbnN0IEdhbWVwYWREYXRhJiBnYW1lcGFkRGF0YSwgRXZlbnRNYWtlc0dhbWVwYWRzVmlz
aWJsZSBldmVudFZpc2liaWxpdHkpCiB7CisgICAgTE9HKEdhbWVwYWQsICJXZWJHYW1lcGFkUHJv
dmlkZXI6OmdhbWVwYWRDb25uZWN0ZWQgLSBJbmRleCAlaSBhdHRhY2hlZCAodmlzaWJpbGl0eTog
JWkpXG4iLCBnYW1lcGFkRGF0YS5pbmRleCgpLCAoaW50KWV2ZW50VmlzaWJpbGl0eSk7CisKICAg
ICBpZiAobV9nYW1lcGFkcy5zaXplKCkgPD0gZ2FtZXBhZERhdGEuaW5kZXgoKSkgewogICAgICAg
ICBtX2dhbWVwYWRzLnJlc2l6ZShnYW1lcGFkRGF0YS5pbmRleCgpICsgMSk7CiAgICAgICAgIG1f
cmF3R2FtZXBhZHMucmVzaXplKGdhbWVwYWREYXRhLmluZGV4KCkgKyAxKTsKQEAgLTgwLDcgKzgy
LDcgQEAgdm9pZCBXZWJHYW1lcGFkUHJvdmlkZXI6OmdhbWVwYWRDb25uZWN0ZWQoY29uc3QgR2Ft
ZXBhZERhdGEmIGdhbWVwYWREYXRhKQogICAgIG1fcmF3R2FtZXBhZHNbZ2FtZXBhZERhdGEuaW5k
ZXgoKV0gPSBtX2dhbWVwYWRzW2dhbWVwYWREYXRhLmluZGV4KCldLmdldCgpOwogCiAgICAgZm9y
IChhdXRvKiBjbGllbnQgOiBtX2NsaWVudHMpCi0gICAgICAgIGNsaWVudC0+cGxhdGZvcm1HYW1l
cGFkQ29ubmVjdGVkKCptX2dhbWVwYWRzW2dhbWVwYWREYXRhLmluZGV4KCldKTsKKyAgICAgICAg
Y2xpZW50LT5wbGF0Zm9ybUdhbWVwYWRDb25uZWN0ZWQoKm1fZ2FtZXBhZHNbZ2FtZXBhZERhdGEu
aW5kZXgoKV0sIGV2ZW50VmlzaWJpbGl0eSk7CiB9CiAKIHZvaWQgV2ViR2FtZXBhZFByb3ZpZGVy
OjpnYW1lcGFkRGlzY29ubmVjdGVkKHVuc2lnbmVkIGluZGV4KQpAQCAtOTQsNyArOTYsNyBAQCB2
b2lkIFdlYkdhbWVwYWRQcm92aWRlcjo6Z2FtZXBhZERpc2Nvbm5lY3RlZCh1bnNpZ25lZCBpbmRl
eCkKICAgICAgICAgY2xpZW50LT5wbGF0Zm9ybUdhbWVwYWREaXNjb25uZWN0ZWQoKmRpc2Nvbm5l
Y3RlZEdhbWVwYWQpOwogfQogCi12b2lkIFdlYkdhbWVwYWRQcm92aWRlcjo6Z2FtZXBhZEFjdGl2
aXR5KGNvbnN0IFZlY3RvcjxHYW1lcGFkRGF0YT4mIGdhbWVwYWREYXRhcywgYm9vbCBzaG91bGRN
YWtlR2FtZXBhZHNWaXNpYmxlKQordm9pZCBXZWJHYW1lcGFkUHJvdmlkZXI6OmdhbWVwYWRBY3Rp
dml0eShjb25zdCBWZWN0b3I8R2FtZXBhZERhdGE+JiBnYW1lcGFkRGF0YXMsIEV2ZW50TWFrZXNH
YW1lcGFkc1Zpc2libGUgZXZlbnRWaXNpYmlsaXR5KQogewogICAgIEFTU0VSVChtX2dhbWVwYWRz
LnNpemUoKSA9PSBnYW1lcGFkRGF0YXMuc2l6ZSgpKTsKIApAQCAtMTA0LDcgKzEwNiw3IEBAIHZv
aWQgV2ViR2FtZXBhZFByb3ZpZGVyOjpnYW1lcGFkQWN0aXZpdHkoY29uc3QgVmVjdG9yPEdhbWVw
YWREYXRhPiYgZ2FtZXBhZERhdGFzCiAgICAgfQogCiAgICAgZm9yIChhdXRvKiBjbGllbnQgOiBt
X2NsaWVudHMpCi0gICAgICAgIGNsaWVudC0+cGxhdGZvcm1HYW1lcGFkSW5wdXRBY3Rpdml0eShz
aG91bGRNYWtlR2FtZXBhZHNWaXNpYmxlKTsKKyAgICAgICAgY2xpZW50LT5wbGF0Zm9ybUdhbWVw
YWRJbnB1dEFjdGl2aXR5KGV2ZW50VmlzaWJpbGl0eSk7CiB9CiAKIHZvaWQgV2ViR2FtZXBhZFBy
b3ZpZGVyOjpzdGFydE1vbml0b3JpbmdHYW1lcGFkcyhHYW1lcGFkUHJvdmlkZXJDbGllbnQmIGNs
aWVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HYW1lcGFkL1dlYkdh
bWVwYWRQcm92aWRlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dhbWVwYWQvV2ViR2Ft
ZXBhZFByb3ZpZGVyLmgKaW5kZXggZWRhYjdjM2YxODEuLjhhMTdmOTA4NGI2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR2FtZXBhZC9XZWJHYW1lcGFkUHJvdmlkZXIuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR2FtZXBhZC9XZWJHYW1lcGFkUHJvdmlkZXIu
aApAQCAtMzIsNiArMzIsMTAgQEAKICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUg
PHd0Zi9WZWN0b3IuaD4KIAorbmFtZXNwYWNlIFdlYkNvcmUgeworZW51bSBjbGFzcyBFdmVudE1h
a2VzR2FtZXBhZHNWaXNpYmxlIDogYm9vbDsKK30KKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNs
YXNzIFNoYXJlZE1lbW9yeTsKQEAgLTQzLDkgKzQ3LDkgQEAgY2xhc3MgV2ViR2FtZXBhZFByb3Zp
ZGVyIDogcHVibGljIFdlYkNvcmU6OkdhbWVwYWRQcm92aWRlciB7CiBwdWJsaWM6CiAgICAgc3Rh
dGljIFdlYkdhbWVwYWRQcm92aWRlciYgc2luZ2xldG9uKCk7CiAKLSAgICB2b2lkIGdhbWVwYWRD
b25uZWN0ZWQoY29uc3QgR2FtZXBhZERhdGEmKTsKKyAgICB2b2lkIGdhbWVwYWRDb25uZWN0ZWQo
Y29uc3QgR2FtZXBhZERhdGEmLCBXZWJDb3JlOjpFdmVudE1ha2VzR2FtZXBhZHNWaXNpYmxlKTsK
ICAgICB2b2lkIGdhbWVwYWREaXNjb25uZWN0ZWQodW5zaWduZWQgaW5kZXgpOwotICAgIHZvaWQg
Z2FtZXBhZEFjdGl2aXR5KGNvbnN0IFZlY3RvcjxHYW1lcGFkRGF0YT4mLCBib29sIHNob3VsZE1h
a2VHYW1lcGFkc1Zpc2libGUpOworICAgIHZvaWQgZ2FtZXBhZEFjdGl2aXR5KGNvbnN0IFZlY3Rv
cjxHYW1lcGFkRGF0YT4mLCBXZWJDb3JlOjpFdmVudE1ha2VzR2FtZXBhZHNWaXNpYmxlKTsKIAog
ICAgIHZvaWQgc2V0SW5pdGlhbEdhbWVwYWRzKGNvbnN0IFZlY3RvcjxHYW1lcGFkRGF0YT4mKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCAx
ZGYyNzgyNDk0OC4uMTRmOGI1MTQyYTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC02NjIxLDkgKzY2MjEsOSBAQCB2b2lkIFdlYlBhZ2U6OnNl
dFVzZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb24odWludDMyX3QgZGlyZWN0aW9uKQogCiAjaWYg
RU5BQkxFKEdBTUVQQUQpCiAKLXZvaWQgV2ViUGFnZTo6Z2FtZXBhZEFjdGl2aXR5KGNvbnN0IFZl
Y3RvcjxHYW1lcGFkRGF0YT4mIGdhbWVwYWREYXRhcywgYm9vbCBzaG91bGRNYWtlR2FtZXBhZHNW
aXNpYmxlKQordm9pZCBXZWJQYWdlOjpnYW1lcGFkQWN0aXZpdHkoY29uc3QgVmVjdG9yPEdhbWVw
YWREYXRhPiYgZ2FtZXBhZERhdGFzLCBFdmVudE1ha2VzR2FtZXBhZHNWaXNpYmxlIGV2ZW50Vmlz
aWJpbHR5KQogewotICAgIFdlYkdhbWVwYWRQcm92aWRlcjo6c2luZ2xldG9uKCkuZ2FtZXBhZEFj
dGl2aXR5KGdhbWVwYWREYXRhcywgc2hvdWxkTWFrZUdhbWVwYWRzVmlzaWJsZSk7CisgICAgV2Vi
R2FtZXBhZFByb3ZpZGVyOjpzaW5nbGV0b24oKS5nYW1lcGFkQWN0aXZpdHkoZ2FtZXBhZERhdGFz
LCBldmVudFZpc2liaWx0eSk7CiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IDBkYjJjN2JjNDNjLi45ZTRmY2M0OTVmNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtMTk2LDYgKzE5Niw3
IEBAIGNsYXNzIFZpc2libGVQb3NpdGlvbjsKIGVudW0gU3ludGhldGljQ2xpY2tUeXBlIDogaW50
OF90OwogZW51bSBjbGFzcyBET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlIDogdWludDhfdDsKIGVudW0g
Y2xhc3MgRHJhZ0hhbmRsaW5nTWV0aG9kIDogdWludDhfdDsKK2VudW0gY2xhc3MgRXZlbnRNYWtl
c0dhbWVwYWRzVmlzaWJsZSA6IGJvb2w7CiBlbnVtIGNsYXNzIFNlbGVjdGlvbkRpcmVjdGlvbiA6
IHVpbnQ4X3Q7CiBlbnVtIGNsYXNzIFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCA6IGJvb2w7
CiBlbnVtIGNsYXNzIFRleHRJbmRpY2F0b3JQcmVzZW50YXRpb25UcmFuc2l0aW9uIDogdWludDhf
dDsKQEAgLTExNzUsNyArMTE3Niw3IEBAIHB1YmxpYzoKICNlbmRpZgogCiAjaWYgRU5BQkxFKEdB
TUVQQUQpCi0gICAgdm9pZCBnYW1lcGFkQWN0aXZpdHkoY29uc3QgVmVjdG9yPEdhbWVwYWREYXRh
PiYsIGJvb2wgc2hvdWxkTWFrZUdhbWVwYWRzVmlzaWJsZSk7CisgICAgdm9pZCBnYW1lcGFkQWN0
aXZpdHkoY29uc3QgVmVjdG9yPEdhbWVwYWREYXRhPiYsIFdlYkNvcmU6OkV2ZW50TWFrZXNHYW1l
cGFkc1Zpc2libGUpOwogI2VuZGlmCiAgICAgCiAjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2Fn
ZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2Vz
LmluCmluZGV4IGM1ZTM0MzFmNjE3Li5hMWRjODg0MTdkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCkBAIC01NDUsNyAr
NTQ1LDcgQEAgR2VuZXJhdGVTeW50aGV0aWNFZGl0aW5nQ29tbWFuZChlbnVtOnVpbnQ4X3QgV2Vi
S2l0OjpTeW50aGV0aWNFZGl0aW5nQ29tbWFuZFR5cGUKICAgICBTZXRVc2VJY29uTG9hZGluZ0Ns
aWVudChib29sIHVzZUljb25Mb2FkaW5nQ2xpZW50KQogCiAjaWYgRU5BQkxFKEdBTUVQQUQpCi0g
ICAgR2FtZXBhZEFjdGl2aXR5KFZlY3RvcjxXZWJLaXQ6OkdhbWVwYWREYXRhPiBnYW1lcGFkRGF0
YXMsIGJvb2wgc2hvdWxkTWFrZUdhbWVwYWRzVmlzaWJsZSkKKyAgICBHYW1lcGFkQWN0aXZpdHko
VmVjdG9yPFdlYktpdDo6R2FtZXBhZERhdGE+IGdhbWVwYWREYXRhcywgZW51bTpib29sIFdlYkNv
cmU6OkV2ZW50TWFrZXNHYW1lcGFkc1Zpc2libGUgZXZlbnRWaXNpYmlsaXR5KQogI2VuZGlmCiAK
ICAgICBGcmFtZUJlY2FtZVJlbW90ZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwg
c3RydWN0IFdlYkNvcmU6Okdsb2JhbEZyYW1lSWRlbnRpZmllciByZW1vdGVGcmFtZUlkZW50aWZp
ZXIsIHN0cnVjdCBXZWJDb3JlOjpHbG9iYWxXaW5kb3dJZGVudGlmaWVyIHJlbW90ZVdpbmRvd0lk
ZW50aWZpZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vz
cy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKaW5kZXggMzUy
NzVhNzRkMmYuLmIyZWI0NTBmNjkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nl
c3MuY3BwCkBAIC0xMDQ5LDkgKzEwNDksOSBAQCB2b2lkIFdlYlByb2Nlc3M6OnNldEluaXRpYWxH
YW1lcGFkcyhjb25zdCBWZWN0b3I8V2ViS2l0OjpHYW1lcGFkRGF0YT4mIGdhbWVwYWREYQogICAg
IFdlYkdhbWVwYWRQcm92aWRlcjo6c2luZ2xldG9uKCkuc2V0SW5pdGlhbEdhbWVwYWRzKGdhbWVw
YWREYXRhcyk7CiB9CiAKLXZvaWQgV2ViUHJvY2Vzczo6Z2FtZXBhZENvbm5lY3RlZChjb25zdCBH
YW1lcGFkRGF0YSYgZ2FtZXBhZERhdGEpCit2b2lkIFdlYlByb2Nlc3M6OmdhbWVwYWRDb25uZWN0
ZWQoY29uc3QgR2FtZXBhZERhdGEmIGdhbWVwYWREYXRhLCBXZWJDb3JlOjpFdmVudE1ha2VzR2Ft
ZXBhZHNWaXNpYmxlIGV2ZW50VmlzaWJpbGl0eSkKIHsKLSAgICBXZWJHYW1lcGFkUHJvdmlkZXI6
OnNpbmdsZXRvbigpLmdhbWVwYWRDb25uZWN0ZWQoZ2FtZXBhZERhdGEpOworICAgIFdlYkdhbWVw
YWRQcm92aWRlcjo6c2luZ2xldG9uKCkuZ2FtZXBhZENvbm5lY3RlZChnYW1lcGFkRGF0YSwgZXZl
bnRWaXNpYmlsaXR5KTsKIH0KIAogdm9pZCBXZWJQcm9jZXNzOjpnYW1lcGFkRGlzY29ubmVjdGVk
KHVuc2lnbmVkIGluZGV4KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKaW5kZXgg
YTk1M2M4YWQ5NjEuLjE0NGI1OTk4MThjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9j
ZXNzLmgKQEAgLTg0LDYgKzg0LDkgQEAgY2xhc3MgUGFnZUdyb3VwOwogY2xhc3MgUmVnaXN0cmFi
bGVEb21haW47CiBjbGFzcyBSZXNvdXJjZVJlcXVlc3Q7CiBjbGFzcyBVc2VyR2VzdHVyZVRva2Vu
OworCitlbnVtIGNsYXNzIEV2ZW50TWFrZXNHYW1lcGFkc1Zpc2libGUgOiBib29sOworCiBzdHJ1
Y3QgQmFja0ZvcndhcmRJdGVtSWRlbnRpZmllcjsKIHN0cnVjdCBNZXNzYWdlUG9ydElkZW50aWZp
ZXI7CiBzdHJ1Y3QgTWVzc2FnZVdpdGhNZXNzYWdlUG9ydHM7CkBAIC0zOTksNyArNDAyLDcgQEAg
cHJpdmF0ZToKIAogI2lmIEVOQUJMRShHQU1FUEFEKQogICAgIHZvaWQgc2V0SW5pdGlhbEdhbWVw
YWRzKGNvbnN0IFZlY3RvcjxHYW1lcGFkRGF0YT4mKTsKLSAgICB2b2lkIGdhbWVwYWRDb25uZWN0
ZWQoY29uc3QgR2FtZXBhZERhdGEmKTsKKyAgICB2b2lkIGdhbWVwYWRDb25uZWN0ZWQoY29uc3Qg
R2FtZXBhZERhdGEmLCBXZWJDb3JlOjpFdmVudE1ha2VzR2FtZXBhZHNWaXNpYmxlKTsKICAgICB2
b2lkIGdhbWVwYWREaXNjb25uZWN0ZWQodW5zaWduZWQgaW5kZXgpOwogI2VuZGlmCiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KaW5kZXggZjVi
Y2MwNmU4ZWUuLjY5MGU0ZmE1ZDZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgpAQCAtMTAwLDcgKzEwMCw3IEBAIG1lc3NhZ2VzIC0+IFdl
YlByb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgTm90UmVmQ291bnRlZCB7CiAKICNpZiBFTkFCTEUoR0FN
RVBBRCkKICAgICBTZXRJbml0aWFsR2FtZXBhZHMoVmVjdG9yPFdlYktpdDo6R2FtZXBhZERhdGE+
IGdhbWVwYWREYXRhcykKLSAgICBHYW1lcGFkQ29ubmVjdGVkKFdlYktpdDo6R2FtZXBhZERhdGEg
Z2FtZXBhZERhdGEpCisgICAgR2FtZXBhZENvbm5lY3RlZChXZWJLaXQ6OkdhbWVwYWREYXRhIGdh
bWVwYWREYXRhLCBlbnVtOmJvb2wgV2ViQ29yZTo6RXZlbnRNYWtlc0dhbWVwYWRzVmlzaWJsZSBl
dmVudFZpc2liaWxpdHkpCiAgICAgR2FtZXBhZERpc2Nvbm5lY3RlZCh1bnNpZ25lZCBpbmRleCkK
ICNlbmRpZgogCg==
</data>
<flag name="review"
          id="419004"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>403649</attachid>
            <date>2020-07-06 17:58:51 -0700</date>
            <delta_ts>2020-07-06 18:34:54 -0700</delta_ts>
            <desc>For landing</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>33005</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAxZjZkYTE5NjNlOC4uMDIyYjEzNzE5YWMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1MCBAQAorMjAyMC0wNy0wNiAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+
CisKKyAgICAgICAgR2V0IHJpZCBvZiBjb25jZXB0IG9mICJpbml0aWFsIGNvbm5lY3RlZCBnYW1l
cGFkcyIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIx
NDAxMAorCisgICAgICAgIFJldmlld2VkIGJ5IFRpbSBIb3J0b24uCisKKyAgICAgICAgTm8gbmV3
IHRlc3RzIChSZWZhY3Rvciwgbm8gYmVoYXZpb3IgY2hhbmdlKQorCisgICAgICAgIFdoZW4gYSBw
YWdlIHN0YXJ0cyB1c2luZyBnYW1lcGFkcyBhbmQgc29tZSB3ZXJlIGFscmVhZHkgY29ubmVjdGVk
LCB0aGlzIGNvbmNlcHQKKyAgICAgICAgd2FzIG1lYW50IHRvIG1hbmFnZSB3aGVuIHRoZSBhbHJl
YWR5LWNvbm5lY3RlZCBnYW1lcGFkcyBjb3VsZCBiZSByZXZlYWxlZCB0byB0aGUgcGFnZS4KKyAg
ICAgICAgCisgICAgICAgIEl0IG9idmlvdXNseSB3YXNuJ3QgbmVlZGVkLCBhcyBvbmx5IHRoZSBI
SUQgcHJvdmlkZXIgdXNlZCB0aGVtIChHYW1lQ29udHJvbGxlciBwcm92aWRlciBkaWRuJ3QpCisg
ICAgICAgIAorICAgICAgICBJbnN0ZWFkLCB3ZSBzaG91bGQganVzdCBhbHdheXMgaW5jbHVkZSBh
ICJkb2VzIHRoaXMgZXZlbnQgbWFrZSBnYW1lcGFkcyB2aXNpYmxlPyIgYml0LgorICAgICAgICAK
KyAgICAgICAgVGhpcyBjbGVhbnMgdXAgYSBsb3Qgb2Ygd2VpcmQgY29kZSBnZXRzIGJvdGggcHJv
dmlkZXJzIHdvcmtpbmcgY2xvc2VyIHRvIGVhY2ggb3RoZXIuCisgICAgICAgIAorICAgICAgICAq
IE1vZHVsZXMvZ2FtZXBhZC9HYW1lcGFkTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpH
YW1lcGFkTWFuYWdlcjo6cGxhdGZvcm1HYW1lcGFkQ29ubmVjdGVkKToKKyAgICAgICAgKFdlYkNv
cmU6OkdhbWVwYWRNYW5hZ2VyOjpwbGF0Zm9ybUdhbWVwYWRJbnB1dEFjdGl2aXR5KToKKyAgICAg
ICAgKiBNb2R1bGVzL2dhbWVwYWQvR2FtZXBhZE1hbmFnZXIuaDoKKyAgICAgICAgCisgICAgICAg
ICogcGxhdGZvcm0vZ2FtZXBhZC9HYW1lcGFkUHJvdmlkZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6R2FtZXBhZFByb3ZpZGVyOjpkaXNwYXRjaFBsYXRmb3JtR2FtZXBhZElucHV0QWN0aXZpdHkp
OgorICAgICAgICAKKyAgICAgICAgKiBwbGF0Zm9ybS9nYW1lcGFkL0dhbWVwYWRQcm92aWRlckNs
aWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6R2FtZXBhZFByb3ZpZGVyQ2xpZW50OjpzZXRJbml0
aWFsQ29ubmVjdGVkR2FtZXBhZHMpOiBEZWxldGVkLgorICAgICAgICAKKyAgICAgICAgKiBwbGF0
Zm9ybS9nYW1lcGFkL2NvY29hL0dhbWVDb250cm9sbGVyR2FtZXBhZFByb3ZpZGVyLm1tOgorICAg
ICAgICAoV2ViQ29yZTo6R2FtZUNvbnRyb2xsZXJHYW1lcGFkUHJvdmlkZXI6OmNvbnRyb2xsZXJE
aWRDb25uZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkdhbWVDb250cm9sbGVyR2FtZXBhZFByb3Zp
ZGVyOjptYWtlSW52aXNpYmlsZUdhbWVwYWRzVmlzaWJsZSk6CisgICAgICAgIAorICAgICAgICAq
IHBsYXRmb3JtL2dhbWVwYWQvbWFjL0hJREdhbWVwYWRQcm92aWRlci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpISURHYW1lcGFkUHJvdmlkZXI6OkhJREdhbWVwYWRQcm92aWRlcik6CisgICAgICAg
IChXZWJDb3JlOjpISURHYW1lcGFkUHJvdmlkZXI6OmluaXRpYWxHYW1lcGFkc0Nvbm5lY3RlZFRp
bWVyRmlyZWQpOgorICAgICAgICAoV2ViQ29yZTo6SElER2FtZXBhZFByb3ZpZGVyOjpvcGVuQW5k
U2NoZWR1bGVNYW5hZ2VyKToKKyAgICAgICAgKFdlYkNvcmU6OkhJREdhbWVwYWRQcm92aWRlcjo6
Y2xvc2VBbmRVbnNjaGVkdWxlTWFuYWdlcik6CisgICAgICAgIChXZWJDb3JlOjpISURHYW1lcGFk
UHJvdmlkZXI6OmRldmljZUFkZGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkhJREdhbWVwYWRQcm92
aWRlcjo6ZGV2aWNlUmVtb3ZlZCk6CisgICAgICAgIChXZWJDb3JlOjpISURHYW1lcGFkUHJvdmlk
ZXI6OmlucHV0Tm90aWZpY2F0aW9uVGltZXJGaXJlZCk6CisgICAgICAgIChXZWJDb3JlOjpISURH
YW1lcGFkUHJvdmlkZXI6OmNvbm5lY3Rpb25EZWxheVRpbWVyRmlyZWQpOiBEZWxldGVkLgorICAg
ICAgICAqIHBsYXRmb3JtL2dhbWVwYWQvbWFjL0hJREdhbWVwYWRQcm92aWRlci5oOgorICAgICAg
ICAKKyAgICAgICAgKiB0ZXN0aW5nL01vY2tHYW1lcGFkUHJvdmlkZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6TW9ja0dhbWVwYWRQcm92aWRlcjo6Y29ubmVjdE1vY2tHYW1lcGFkKToKKwogMjAy
MC0wNy0wMiAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgR2Ft
ZUNvbnRyb2xsZXIuZnJhbWV3b3JrIHNvZnQgbGlua2luZyByZWZhY3RvcmluZwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nYW1lcGFkL0dhbWVwYWRNYW5hZ2VyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZ2FtZXBhZC9HYW1lcGFkTWFuYWdlci5jcHAKaW5kZXggOWY3
MjQ5Njk1OGUuLjRjNzFhZTg2NGIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2dhbWVwYWQvR2FtZXBhZE1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
Z2FtZXBhZC9HYW1lcGFkTWFuYWdlci5jcHAKQEAgLTU3LDggKzU3LDExIEBAIEdhbWVwYWRNYW5h
Z2VyOjpHYW1lcGFkTWFuYWdlcigpCiB7CiB9CiAKLXZvaWQgR2FtZXBhZE1hbmFnZXI6OnBsYXRm
b3JtR2FtZXBhZENvbm5lY3RlZChQbGF0Zm9ybUdhbWVwYWQmIHBsYXRmb3JtR2FtZXBhZCkKK3Zv
aWQgR2FtZXBhZE1hbmFnZXI6OnBsYXRmb3JtR2FtZXBhZENvbm5lY3RlZChQbGF0Zm9ybUdhbWVw
YWQmIHBsYXRmb3JtR2FtZXBhZCwgRXZlbnRNYWtlc0dhbWVwYWRzVmlzaWJsZSBldmVudFZpc2li
aWxpdHkpCiB7CisgICAgaWYgKGV2ZW50VmlzaWJpbGl0eSA9PSBFdmVudE1ha2VzR2FtZXBhZHNW
aXNpYmxlOjpObykKKyAgICAgICAgcmV0dXJuOworCiAgICAgLy8gTm90aWZ5IGJsaW5kIE5hdmln
YXRvcnMgYW5kIFdpbmRvd3MgYWJvdXQgYWxsIGdhbWVwYWRzIGV4Y2VwdCBmb3IgdGhpcyBvbmUu
CiAgICAgZm9yIChhdXRvKiBnYW1lcGFkIDogR2FtZXBhZFByb3ZpZGVyOjpzaW5nbGV0b24oKS5w
bGF0Zm9ybUdhbWVwYWRzKCkpIHsKICAgICAgICAgaWYgKCFnYW1lcGFkIHx8IGdhbWVwYWQgPT0g
JnBsYXRmb3JtR2FtZXBhZCkKQEAgLTExMyw5ICsxMTYsOSBAQCB2b2lkIEdhbWVwYWRNYW5hZ2Vy
OjpwbGF0Zm9ybUdhbWVwYWREaXNjb25uZWN0ZWQoUGxhdGZvcm1HYW1lcGFkJiBwbGF0Zm9ybUdh
bWVwYQogICAgIH0KIH0KIAotdm9pZCBHYW1lcGFkTWFuYWdlcjo6cGxhdGZvcm1HYW1lcGFkSW5w
dXRBY3Rpdml0eShib29sIHNob3VsZE1ha2VHYW1lcGFkVmlzaWJsZSkKK3ZvaWQgR2FtZXBhZE1h
bmFnZXI6OnBsYXRmb3JtR2FtZXBhZElucHV0QWN0aXZpdHkoRXZlbnRNYWtlc0dhbWVwYWRzVmlz
aWJsZSBldmVudFZpc2liaWxpdHkpCiB7Ci0gICAgaWYgKCFzaG91bGRNYWtlR2FtZXBhZFZpc2li
bGUpCisgICAgaWYgKGV2ZW50VmlzaWJpbGl0eSA9PSBFdmVudE1ha2VzR2FtZXBhZHNWaXNpYmxl
OjpObykKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKG1fZ2FtZXBhZEJsaW5kTmF2aWdhdG9y
cy5pc0VtcHR5KCkgJiYgbV9nYW1lcGFkQmxpbmRET01XaW5kb3dzLmlzRW1wdHkoKSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2FtZXBhZC9HYW1lcGFkTWFuYWdlci5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9nYW1lcGFkL0dhbWVwYWRNYW5hZ2VyLmgKaW5kZXggNDVl
ODEyYWRjNTQuLjgzNDM3ZGExYmJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2dhbWVwYWQvR2FtZXBhZE1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dh
bWVwYWQvR2FtZXBhZE1hbmFnZXIuaApAQCAtNDQsOSArNDQsOSBAQCBjbGFzcyBHYW1lcGFkTWFu
YWdlciA6IHB1YmxpYyBHYW1lcGFkUHJvdmlkZXJDbGllbnQgewogcHVibGljOgogICAgIHN0YXRp
YyBHYW1lcGFkTWFuYWdlciYgc2luZ2xldG9uKCk7CiAKLSAgICB2b2lkIHBsYXRmb3JtR2FtZXBh
ZENvbm5lY3RlZChQbGF0Zm9ybUdhbWVwYWQmKSBmaW5hbDsKKyAgICB2b2lkIHBsYXRmb3JtR2Ft
ZXBhZENvbm5lY3RlZChQbGF0Zm9ybUdhbWVwYWQmLCBFdmVudE1ha2VzR2FtZXBhZHNWaXNpYmxl
KSBmaW5hbDsKICAgICB2b2lkIHBsYXRmb3JtR2FtZXBhZERpc2Nvbm5lY3RlZChQbGF0Zm9ybUdh
bWVwYWQmKSBmaW5hbDsKLSAgICB2b2lkIHBsYXRmb3JtR2FtZXBhZElucHV0QWN0aXZpdHkoYm9v
bCBzaG91bGRNYWtlR2FtZXBhZFZpc2libGUpIGZpbmFsOworICAgIHZvaWQgcGxhdGZvcm1HYW1l
cGFkSW5wdXRBY3Rpdml0eShFdmVudE1ha2VzR2FtZXBhZHNWaXNpYmxlKSBmaW5hbDsKIAogICAg
IHZvaWQgcmVnaXN0ZXJOYXZpZ2F0b3IoTmF2aWdhdG9yR2FtZXBhZCopOwogICAgIHZvaWQgdW5y
ZWdpc3Rlck5hdmlnYXRvcihOYXZpZ2F0b3JHYW1lcGFkKik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9nYW1lcGFkL0dhbWVwYWRQcm92aWRlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9nYW1lcGFkL0dhbWVwYWRQcm92aWRlci5jcHAKaW5kZXggNzljNDdhZjQ2
ZjEuLmE1NzRhYzk1MzJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nYW1l
cGFkL0dhbWVwYWRQcm92aWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2Ft
ZXBhZC9HYW1lcGFkUHJvdmlkZXIuY3BwCkBAIC01Myw3ICs1Myw3IEBAIHZvaWQgR2FtZXBhZFBy
b3ZpZGVyOjpzZXRTaGFyZWRQcm92aWRlcihHYW1lcGFkUHJvdmlkZXImIG5ld1Byb3ZpZGVyKQog
dm9pZCBHYW1lcGFkUHJvdmlkZXI6OmRpc3BhdGNoUGxhdGZvcm1HYW1lcGFkSW5wdXRBY3Rpdml0
eSgpCiB7CiAgICAgZm9yIChhdXRvJiBjbGllbnQgOiBtX2NsaWVudHMpCi0gICAgICAgIGNsaWVu
dC0+cGxhdGZvcm1HYW1lcGFkSW5wdXRBY3Rpdml0eShtX3Nob3VsZE1ha2VHYW1lcGFkc1Zpc2li
bGUpOworICAgICAgICBjbGllbnQtPnBsYXRmb3JtR2FtZXBhZElucHV0QWN0aXZpdHkobV9zaG91
bGRNYWtlR2FtZXBhZHNWaXNpYmxlID8gRXZlbnRNYWtlc0dhbWVwYWRzVmlzaWJsZTo6WWVzIDog
RXZlbnRNYWtlc0dhbWVwYWRzVmlzaWJsZTo6Tm8pOwogCiAgICAgbV9zaG91bGRNYWtlR2FtZXBh
ZHNWaXNpYmxlID0gZmFsc2U7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9nYW1lcGFkL0dhbWVwYWRQcm92aWRlckNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ2FtZXBhZC9HYW1lcGFkUHJvdmlkZXJDbGllbnQuaAppbmRleCAwNmVjNDlhZWYzZS4uY2E2
YTcwM2U0MWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dhbWVwYWQvR2Ft
ZXBhZFByb3ZpZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2FtZXBh
ZC9HYW1lcGFkUHJvdmlkZXJDbGllbnQuaApAQCAtMzMsMTQgKzMzLDE4IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogY2xhc3MgUGxhdGZvcm1HYW1lcGFkOwogCitlbnVtIGNsYXNzIEV2ZW50TWFr
ZXNHYW1lcGFkc1Zpc2libGUgOiBib29sIHsKKyAgICBObywKKyAgICBZZXMsCit9OworCiBjbGFz
cyBHYW1lcGFkUHJvdmlkZXJDbGllbnQgewogcHVibGljOgogICAgIHZpcnR1YWwgfkdhbWVwYWRQ
cm92aWRlckNsaWVudCgpID0gZGVmYXVsdDsKIAotICAgIHZpcnR1YWwgdm9pZCBzZXRJbml0aWFs
Q29ubmVjdGVkR2FtZXBhZHMoY29uc3QgVmVjdG9yPFBsYXRmb3JtR2FtZXBhZCo+JikgeyB9Ci0g
ICAgdmlydHVhbCB2b2lkIHBsYXRmb3JtR2FtZXBhZENvbm5lY3RlZChQbGF0Zm9ybUdhbWVwYWQm
KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHBsYXRmb3JtR2FtZXBhZENvbm5lY3RlZChQbGF0Zm9y
bUdhbWVwYWQmLCBFdmVudE1ha2VzR2FtZXBhZHNWaXNpYmxlKSA9IDA7CiAgICAgdmlydHVhbCB2
b2lkIHBsYXRmb3JtR2FtZXBhZERpc2Nvbm5lY3RlZChQbGF0Zm9ybUdhbWVwYWQmKSA9IDA7Ci0g
ICAgdmlydHVhbCB2b2lkIHBsYXRmb3JtR2FtZXBhZElucHV0QWN0aXZpdHkoYm9vbCBzaG91bGRN
YWtlR2FtZXBhZFZpc2libGUpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgcGxhdGZvcm1HYW1lcGFk
SW5wdXRBY3Rpdml0eShFdmVudE1ha2VzR2FtZXBhZHNWaXNpYmxlKSA9IDA7CiB9OwogCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
YW1lcGFkL2NvY29hL0dhbWVDb250cm9sbGVyR2FtZXBhZFByb3ZpZGVyLm1tIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ2FtZXBhZC9jb2NvYS9HYW1lQ29udHJvbGxlckdhbWVwYWRQcm92aWRl
ci5tbQppbmRleCBkMTdkMjQ5MjhmYS4uNDMxOGIwYmE3M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dhbWVwYWQvY29jb2EvR2FtZUNvbnRyb2xsZXJHYW1lcGFkUHJvdmlk
ZXIubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2FtZXBhZC9jb2NvYS9HYW1lQ29u
dHJvbGxlckdhbWVwYWRQcm92aWRlci5tbQpAQCAtNzMsNyArNzMsNyBAQCB2b2lkIEdhbWVDb250
cm9sbGVyR2FtZXBhZFByb3ZpZGVyOjpjb250cm9sbGVyRGlkQ29ubmVjdChHQ0NvbnRyb2xsZXIg
KmNvbnRyb2xsZQogICAgIG1ha2VJbnZpc2liaWxlR2FtZXBhZHNWaXNpYmxlKCk7CiAKICAgICBm
b3IgKGF1dG8mIGNsaWVudCA6IG1fY2xpZW50cykKLSAgICAgICAgY2xpZW50LT5wbGF0Zm9ybUdh
bWVwYWRDb25uZWN0ZWQoKm1fZ2FtZXBhZFZlY3RvcltpbmRleF0pOworICAgICAgICBjbGllbnQt
PnBsYXRmb3JtR2FtZXBhZENvbm5lY3RlZCgqbV9nYW1lcGFkVmVjdG9yW2luZGV4XSwgRXZlbnRN
YWtlc0dhbWVwYWRzVmlzaWJsZTo6WWVzKTsKIH0KIAogdm9pZCBHYW1lQ29udHJvbGxlckdhbWVw
YWRQcm92aWRlcjo6Y29udHJvbGxlckRpZERpc2Nvbm5lY3QoR0NDb250cm9sbGVyICpjb250cm9s
bGVyKQpAQCAtMTUxLDcgKzE1MSw3IEBAIHZvaWQgR2FtZUNvbnRyb2xsZXJHYW1lcGFkUHJvdmlk
ZXI6Om1ha2VJbnZpc2liaWxlR2FtZXBhZHNWaXNpYmxlKCkKIHsKICAgICBmb3IgKGF1dG8qIGdh
bWVwYWQgOiBtX2ludmlzaWJsZUdhbWVwYWRzKSB7CiAgICAgICAgIGZvciAoYXV0byYgY2xpZW50
IDogbV9jbGllbnRzKQotICAgICAgICAgICAgY2xpZW50LT5wbGF0Zm9ybUdhbWVwYWRDb25uZWN0
ZWQoKmdhbWVwYWQpOworICAgICAgICAgICAgY2xpZW50LT5wbGF0Zm9ybUdhbWVwYWRDb25uZWN0
ZWQoKmdhbWVwYWQsIEV2ZW50TWFrZXNHYW1lcGFkc1Zpc2libGU6Olllcyk7CiAgICAgfQogCiAg
ICAgbV9pbnZpc2libGVHYW1lcGFkcy5jbGVhcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ2FtZXBhZC9tYWMvSElER2FtZXBhZFByb3ZpZGVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dhbWVwYWQvbWFjL0hJREdhbWVwYWRQcm92aWRlci5jcHAKaW5kZXgg
NmQxNGI2YjIxNjEuLjBiNjMyMjVjMDdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9nYW1lcGFkL21hYy9ISURHYW1lcGFkUHJvdmlkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dhbWVwYWQvbWFjL0hJREdhbWVwYWRQcm92aWRlci5jcHAKQEAgLTgxLDgg
KzgxLDcgQEAgSElER2FtZXBhZFByb3ZpZGVyJiBISURHYW1lcGFkUHJvdmlkZXI6OnNpbmdsZXRv
bigpCiB9CiAKIEhJREdhbWVwYWRQcm92aWRlcjo6SElER2FtZXBhZFByb3ZpZGVyKCkKLSAgICA6
IG1fc2hvdWxkRGlzcGF0Y2hDYWxsYmFja3MoZmFsc2UpCi0gICAgLCBtX2Nvbm5lY3Rpb25EZWxh
eVRpbWVyKCp0aGlzLCAmSElER2FtZXBhZFByb3ZpZGVyOjpjb25uZWN0aW9uRGVsYXlUaW1lckZp
cmVkKQorICAgIDogbV9pbml0aWFsR2FtZXBhZHNDb25uZWN0ZWRUaW1lcigqdGhpcywgJkhJREdh
bWVwYWRQcm92aWRlcjo6aW5pdGlhbEdhbWVwYWRzQ29ubmVjdGVkVGltZXJGaXJlZCkKICAgICAs
IG1faW5wdXROb3RpZmljYXRpb25UaW1lcigqdGhpcywgJkhJREdhbWVwYWRQcm92aWRlcjo6aW5w
dXROb3RpZmljYXRpb25UaW1lckZpcmVkKQogewogICAgIG1fbWFuYWdlciA9IGFkb3B0Q0YoSU9I
SURNYW5hZ2VyQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIGtJT0hJRE9wdGlvbnNUeXBlTm9u
ZSkpOwpAQCAtMTIyLDEyICsxMjEsOSBAQCB1bnNpZ25lZCBISURHYW1lcGFkUHJvdmlkZXI6Omlu
ZGV4Rm9yTmV3bHlDb25uZWN0ZWREZXZpY2UoKQogICAgIHJldHVybiBpbmRleDsKIH0KIAotdm9p
ZCBISURHYW1lcGFkUHJvdmlkZXI6OmNvbm5lY3Rpb25EZWxheVRpbWVyRmlyZWQoKQordm9pZCBI
SURHYW1lcGFkUHJvdmlkZXI6OmluaXRpYWxHYW1lcGFkc0Nvbm5lY3RlZFRpbWVyRmlyZWQoKQog
ewotICAgIG1fc2hvdWxkRGlzcGF0Y2hDYWxsYmFja3MgPSB0cnVlOwotCi0gICAgZm9yIChhdXRv
KiBjbGllbnQgOiBtX2NsaWVudHMpCi0gICAgICAgIGNsaWVudC0+c2V0SW5pdGlhbENvbm5lY3Rl
ZEdhbWVwYWRzKG1fZ2FtZXBhZFZlY3Rvcik7CisgICAgbV9pbml0aWFsR2FtZXBhZHNDb25uZWN0
ZWQgPSB0cnVlOwogfQogCiB2b2lkIEhJREdhbWVwYWRQcm92aWRlcjo6b3BlbkFuZFNjaGVkdWxl
TWFuYWdlcigpCkBAIC0xMzcsMTQgKzEzMywxNCBAQCB2b2lkIEhJREdhbWVwYWRQcm92aWRlcjo6
b3BlbkFuZFNjaGVkdWxlTWFuYWdlcigpCiAgICAgQVNTRVJUKG1fZ2FtZXBhZFZlY3Rvci5pc0Vt
cHR5KCkpOwogICAgIEFTU0VSVChtX2dhbWVwYWRNYXAuaXNFbXB0eSgpKTsKIAotICAgIG1fc2hv
dWxkRGlzcGF0Y2hDYWxsYmFja3MgPSBmYWxzZTsKKyAgICBtX2luaXRpYWxHYW1lcGFkc0Nvbm5l
Y3RlZCA9IGZhbHNlOwogCiAgICAgSU9ISURNYW5hZ2VyU2NoZWR1bGVXaXRoUnVuTG9vcChtX21h
bmFnZXIuZ2V0KCksIENGUnVuTG9vcEdldEN1cnJlbnQoKSwga0NGUnVuTG9vcERlZmF1bHRNb2Rl
KTsKICAgICBJT0hJRE1hbmFnZXJPcGVuKG1fbWFuYWdlci5nZXQoKSwga0lPSElET3B0aW9uc1R5
cGVOb25lKTsKIAogICAgIC8vIEFueSBjb25uZWN0aW9ucyB3ZSBhcmUgbm90aWZpZWQgb2Ygd2l0
aGluIHRoZSBjb25uZWN0aW9uRGVsYXlJbnRlcnZhbCBvZiBsaXN0ZW5pbmcgbGlrZWx5IHJlcHJl
c2VudAogICAgIC8vIGRldmljZXMgdGhhdCB3ZXJlIGFscmVhZHkgY29ubmVjdGVkLCBzbyB3ZSBz
dXBwcmVzcyBub3RpZnlpbmcgY2xpZW50cyBvZiB0aGVzZS4KLSAgICBtX2Nvbm5lY3Rpb25EZWxh
eVRpbWVyLnN0YXJ0T25lU2hvdChjb25uZWN0aW9uRGVsYXlJbnRlcnZhbCk7CisgICAgbV9pbml0
aWFsR2FtZXBhZHNDb25uZWN0ZWRUaW1lci5zdGFydE9uZVNob3QoY29ubmVjdGlvbkRlbGF5SW50
ZXJ2YWwpOwogfQogCiB2b2lkIEhJREdhbWVwYWRQcm92aWRlcjo6Y2xvc2VBbmRVbnNjaGVkdWxl
TWFuYWdlcigpCkBAIC0xNTcsNyArMTUzLDcgQEAgdm9pZCBISURHYW1lcGFkUHJvdmlkZXI6OmNs
b3NlQW5kVW5zY2hlZHVsZU1hbmFnZXIoKQogICAgIG1fZ2FtZXBhZFZlY3Rvci5jbGVhcigpOwog
ICAgIG1fZ2FtZXBhZE1hcC5jbGVhcigpOwogCi0gICAgbV9jb25uZWN0aW9uRGVsYXlUaW1lci5z
dG9wKCk7CisgICAgbV9pbml0aWFsR2FtZXBhZHNDb25uZWN0ZWRUaW1lci5zdG9wKCk7CiB9CiAK
IHZvaWQgSElER2FtZXBhZFByb3ZpZGVyOjpzdGFydE1vbml0b3JpbmdHYW1lcGFkcyhHYW1lcGFk
UHJvdmlkZXJDbGllbnQmIGNsaWVudCkKQEAgLTE5NSwyMSArMTkxLDE4IEBAIHZvaWQgSElER2Ft
ZXBhZFByb3ZpZGVyOjpkZXZpY2VBZGRlZChJT0hJRERldmljZVJlZiBkZXZpY2UpCiAgICAgbV9n
YW1lcGFkVmVjdG9yW2luZGV4XSA9IGdhbWVwYWQuZ2V0KCk7CiAgICAgbV9nYW1lcGFkTWFwLnNl
dChkZXZpY2UsIFdURk1vdmUoZ2FtZXBhZCkpOwogCi0gICAgaWYgKCFtX3Nob3VsZERpc3BhdGNo
Q2FsbGJhY2tzKSB7CisgICAgaWYgKCFtX2luaXRpYWxHYW1lcGFkc0Nvbm5lY3RlZCkgewogICAg
ICAgICAvLyBUaGlzIGFkZGVkIGRldmljZSBpcyB0aGUgcmVzdWx0IG9mIHVzIHN0YXJ0aW5nIHRv
IG1vbml0b3IgZ2FtZXBhZHMuCiAgICAgICAgIC8vIFdlJ2xsIGdldCBub3RpZmllZCBvZiBhbGwg
Y29ubmVjdGVkIGRldmljZXMgZHVyaW5nIHRoaXMgY3VycmVudCBzcGluIG9mIHRoZSBydW5sb29w
Ci0gICAgICAgIC8vIGFuZCB3ZSBkb24ndCB3YW50IHRvIHRlbGwgdGhlIGNsaWVudCBhYm91dCBh
bnkgb2YgdGhlbS4KLSAgICAgICAgLy8gVGhlIG1fY29ubmVjdGlvbkRlbGF5VGltZXIgZmlyZXMg
aW4gYSBzdWJzZXF1ZW50IHNwaW4gb2YgdGhlIHJ1bmxvb3AgYWZ0ZXIgd2hpY2gKLSAgICAgICAg
Ly8gYW55IGNvbm5lY3Rpb24gZXZlbnRzIGFyZSBhY3R1YWwgbmV3IGRldmljZXMuCi0gICAgICAg
IG1fY29ubmVjdGlvbkRlbGF5VGltZXIuc3RhcnRPbmVTaG90KDBfcyk7Ci0KLSAgICAgICAgTE9H
KEdhbWVwYWQsICJEZXZpY2UgJXAgd2FzIGFkZGVkIHdoaWxlIHN1cHByZXNzaW5nIGNhbGxiYWNr
cywgc28gdGhpcyBzaG91bGQgYmUgYW4gJ2FscmVhZHkgY29ubmVjdGVkJyBldmVudCIsIGRldmlj
ZSk7Ci0KLSAgICAgICAgcmV0dXJuOworICAgICAgICAvLyBhbmQgdGhlIGNsaWVudCBzaG91bGQg
YmUgdG9sZCB0aGV5IHdlcmUgYWxyZWFkeSBjb25uZWN0ZWQuCisgICAgICAgIC8vIFRoZSBtX2lu
aXRpYWxHYW1lcGFkc0Nvbm5lY3RlZFRpbWVyIGZpcmVzIGluIGEgc3Vic2VxdWVudCBzcGluIG9m
IHRoZSBydW5sb29wIGFmdGVyIHdoaWNoCisgICAgICAgIC8vIGFueSBjb25uZWN0aW9uIGV2ZW50
cyBhcmUgYWN0dWFsIG5ldyBkZXZpY2VzIGFuZCBjYW4gdHJpZ2dlciBnYW1lcGFkIHZpc2liaWxp
dHkuCisgICAgICAgIGlmICghbV9pbml0aWFsR2FtZXBhZHNDb25uZWN0ZWRUaW1lci5pc0FjdGl2
ZSgpKQorICAgICAgICAgICAgbV9pbml0aWFsR2FtZXBhZHNDb25uZWN0ZWRUaW1lci5zdGFydE9u
ZVNob3QoMF9zKTsKICAgICB9CiAKICAgICBmb3IgKGF1dG8mIGNsaWVudCA6IG1fY2xpZW50cykK
LSAgICAgICAgY2xpZW50LT5wbGF0Zm9ybUdhbWVwYWRDb25uZWN0ZWQoKm1fZ2FtZXBhZFZlY3Rv
cltpbmRleF0pOworICAgICAgICBjbGllbnQtPnBsYXRmb3JtR2FtZXBhZENvbm5lY3RlZCgqbV9n
YW1lcGFkVmVjdG9yW2luZGV4XSwgbV9pbml0aWFsR2FtZXBhZHNDb25uZWN0ZWQgPyBFdmVudE1h
a2VzR2FtZXBhZHNWaXNpYmxlOjpZZXMgOiBFdmVudE1ha2VzR2FtZXBhZHNWaXNpYmxlOjpObyk7
CiB9CiAKIHZvaWQgSElER2FtZXBhZFByb3ZpZGVyOjpkZXZpY2VSZW1vdmVkKElPSElERGV2aWNl
UmVmIGRldmljZSkKQEAgLTIxOSwxMCArMjEyLDYgQEAgdm9pZCBISURHYW1lcGFkUHJvdmlkZXI6
OmRldmljZVJlbW92ZWQoSU9ISUREZXZpY2VSZWYgZGV2aWNlKQogICAgIHN0ZDo6dW5pcXVlX3B0
cjxISURHYW1lcGFkPiByZW1vdmVkR2FtZXBhZCA9IHJlbW92ZUdhbWVwYWRGb3JEZXZpY2UoZGV2
aWNlKTsKICAgICBBU1NFUlQocmVtb3ZlZEdhbWVwYWQpOwogCi0gICAgLy8gQW55IHRpbWUgd2Ug
Z2V0IGEgZGV2aWNlIHJlbW92ZWQgY2FsbGJhY2sgd2Uga25vdyBpdCdzIGEgcmVhbCBldmVudCBh
bmQgbm90IGFuICdhbHJlYWR5IGNvbm5lY3RlZCcgZXZlbnQuCi0gICAgLy8gV2Ugc2hvdWxkIGFs
d2F5cyBzdG9wIHN1cHByZXNzaW5nIGNhbGxiYWNrcyB3aGVuIHdlIHJlY2VpdmUgc3VjaCBhbiBl
dmVudC4KLSAgICBtX3Nob3VsZERpc3BhdGNoQ2FsbGJhY2tzID0gdHJ1ZTsKLQogICAgIGZvciAo
YXV0byYgY2xpZW50IDogbV9jbGllbnRzKQogICAgICAgICBjbGllbnQtPnBsYXRmb3JtR2FtZXBh
ZERpc2Nvbm5lY3RlZCgqcmVtb3ZlZEdhbWVwYWQpOwogfQpAQCAtMjQ4LDggKzIzNywxMSBAQCB2
b2lkIEhJREdhbWVwYWRQcm92aWRlcjo6dmFsdWVzQ2hhbmdlZChJT0hJRFZhbHVlUmVmIHZhbHVl
KQogCiB2b2lkIEhJREdhbWVwYWRQcm92aWRlcjo6aW5wdXROb3RpZmljYXRpb25UaW1lckZpcmVk
KCkKIHsKLSAgICBpZiAoIW1fc2hvdWxkRGlzcGF0Y2hDYWxsYmFja3MpCisgICAgaWYgKCFtX2lu
aXRpYWxHYW1lcGFkc0Nvbm5lY3RlZCkgeworICAgICAgICBpZiAoIW1faW5wdXROb3RpZmljYXRp
b25UaW1lci5pc0FjdGl2ZSgpKQorICAgICAgICAgICAgbV9pbnB1dE5vdGlmaWNhdGlvblRpbWVy
LnN0YXJ0T25lU2hvdCgwX3MpOwogICAgICAgICByZXR1cm47CisgICAgfQogCiAgICAgZGlzcGF0
Y2hQbGF0Zm9ybUdhbWVwYWRJbnB1dEFjdGl2aXR5KCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9nYW1lcGFkL21hYy9ISURHYW1lcGFkUHJvdmlkZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dhbWVwYWQvbWFjL0hJREdhbWVwYWRQcm92aWRlci5oCmluZGV4
IGZkNWZkZTkxYjY0Li4xYmI1NGVlNTYxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ2FtZXBhZC9tYWMvSElER2FtZXBhZFByb3ZpZGVyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ2FtZXBhZC9tYWMvSElER2FtZXBhZFByb3ZpZGVyLmgKQEAgLTY0LDcgKzY0
LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIG9wZW5BbmRTY2hlZHVsZU1hbmFnZXIoKTsKICAgICB2
b2lkIGNsb3NlQW5kVW5zY2hlZHVsZU1hbmFnZXIoKTsKIAotICAgIHZvaWQgY29ubmVjdGlvbkRl
bGF5VGltZXJGaXJlZCgpOworICAgIHZvaWQgaW5pdGlhbEdhbWVwYWRzQ29ubmVjdGVkVGltZXJG
aXJlZCgpOwogICAgIHZvaWQgaW5wdXROb3RpZmljYXRpb25UaW1lckZpcmVkKCk7CiAKICAgICB1
bnNpZ25lZCBpbmRleEZvck5ld2x5Q29ubmVjdGVkRGV2aWNlKCk7CkBAIC03NCw5ICs3NCw5IEBA
IHByaXZhdGU6CiAKICAgICBSZXRhaW5QdHI8SU9ISURNYW5hZ2VyUmVmPiBtX21hbmFnZXI7CiAK
LSAgICBib29sIG1fc2hvdWxkRGlzcGF0Y2hDYWxsYmFja3M7CisgICAgYm9vbCBtX2luaXRpYWxH
YW1lcGFkc0Nvbm5lY3RlZCB7IGZhbHNlIH07CiAKLSAgICBUaW1lciBtX2Nvbm5lY3Rpb25EZWxh
eVRpbWVyOworICAgIFRpbWVyIG1faW5pdGlhbEdhbWVwYWRzQ29ubmVjdGVkVGltZXI7CiAgICAg
VGltZXIgbV9pbnB1dE5vdGlmaWNhdGlvblRpbWVyOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9Nb2NrR2FtZXBhZFByb3ZpZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvTW9ja0dhbWVwYWRQcm92aWRlci5jcHAKaW5kZXggNjE1MGY1MmEzZmEuLjZiMTE2
ZTc2MjU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tHYW1lcGFkUHJv
dmlkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja0dhbWVwYWRQcm92aWRl
ci5jcHAKQEAgLTg3LDcgKzg3LDcgQEAgYm9vbCBNb2NrR2FtZXBhZFByb3ZpZGVyOjpjb25uZWN0
TW9ja0dhbWVwYWQodW5zaWduZWQgaW5kZXgpCiAgICAgbV9jb25uZWN0ZWRHYW1lcGFkVmVjdG9y
W2luZGV4XSA9IG1fbW9ja0dhbWVwYWRWZWN0b3JbaW5kZXhdLmdldCgpOwogCiAgICAgZm9yIChh
dXRvJiBjbGllbnQgOiBtX2NsaWVudHMpCi0gICAgICAgIGNsaWVudC0+cGxhdGZvcm1HYW1lcGFk
Q29ubmVjdGVkKCptX2Nvbm5lY3RlZEdhbWVwYWRWZWN0b3JbaW5kZXhdKTsKKyAgICAgICAgY2xp
ZW50LT5wbGF0Zm9ybUdhbWVwYWRDb25uZWN0ZWQoKm1fY29ubmVjdGVkR2FtZXBhZFZlY3Rvcltp
bmRleF0sIEV2ZW50TWFrZXNHYW1lcGFkc1Zpc2libGU6Olllcyk7CiAKICAgICByZXR1cm4gdHJ1
ZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKaW5kZXggNTRhMmUwYjNlM2YuLjlkMGM2OTU3YjM0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAt
MSwzICsxLDQzIEBACisyMDIwLTA3LTA2ICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNv
bT4KKworICAgICAgICBHZXQgcmlkIG9mIGNvbmNlcHQgb2YgImluaXRpYWwgY29ubmVjdGVkIGdh
bWVwYWRzIgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjE0MDEwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgVGltIEhvcnRvbi4KKworICAgICAgICAqIFNj
cmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5OgorCisgICAgICAgICogVUlQcm9jZXNzL0dhbWVwYWQv
VUlHYW1lcGFkUHJvdmlkZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpVSUdhbWVwYWRQcm92aWRl
cjo6Z2FtZXBhZFN5bmNUaW1lckZpcmVkKToKKyAgICAgICAgKFdlYktpdDo6VUlHYW1lcGFkUHJv
dmlkZXI6OnBsYXRmb3JtR2FtZXBhZENvbm5lY3RlZCk6CisgICAgICAgIChXZWJLaXQ6OlVJR2Ft
ZXBhZFByb3ZpZGVyOjpwbGF0Zm9ybUdhbWVwYWRJbnB1dEFjdGl2aXR5KToKKyAgICAgICAgKFdl
YktpdDo6VUlHYW1lcGFkUHJvdmlkZXI6OnNldEluaXRpYWxDb25uZWN0ZWRHYW1lcGFkcyk6IERl
bGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL0dhbWVwYWQvVUlHYW1lcGFkUHJvdmlkZXIuaDoK
KworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJQYWdlUHJveHk6OmdhbWVwYWRBY3Rpdml0eSk6CisgICAgICAgICogVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5oOgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OmdhbWVwYWRDb25uZWN0ZWQpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6c2V0SW5pdGlhbENvbm5lY3RlZEdhbWVwYWRz
KTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaDoKKworICAg
ICAgICAqIFdlYlByb2Nlc3MvR2FtZXBhZC9XZWJHYW1lcGFkUHJvdmlkZXIuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJHYW1lcGFkUHJvdmlkZXI6OmdhbWVwYWRDb25uZWN0ZWQpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJHYW1lcGFkUHJvdmlkZXI6OmdhbWVwYWRBY3Rpdml0eSk6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9HYW1lcGFkL1dlYkdhbWVwYWRQcm92aWRlci5oOgorCisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
OjpnYW1lcGFkQWN0aXZpdHkpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW46CisK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQcm9jZXNzOjpnYW1lcGFkQ29ubmVjdGVkKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBy
b2Nlc3MuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW46CisK
IDIwMjAtMDctMDIgIEthdGUgQ2hlbmV5ICA8a2F0aGVyaW5lX2NoZW5leUBhcHBsZS5jb20+CiAK
ICAgICAgICAgQ3VzdG9tIFVSTCBzY2hlbWVzIHNob3VsZCBiZSB0cmVhdGVkIGFzIGFwcC1ib3Vu
ZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weSBi
L1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKaW5kZXggNjI1OGE3ZjU2
NGIuLjY5YjM1OWY0ODc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0
L21lc3NhZ2VzLnB5CisrKyBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMu
cHkKQEAgLTU5OSw2ICs1OTksNyBAQCBkZWYgaGVhZGVyc19mb3JfdHlwZSh0eXBlKToKICAgICAg
ICAgJ1dlYkNvcmU6OlNoYXJlRGF0YVdpdGhQYXJzZWRVUkwnOiBbJzxXZWJDb3JlL1NoYXJlRGF0
YS5oPiddLAogICAgICAgICAnV2ViQ29yZTo6Rm9udENoYW5nZXMnOiBbJzxXZWJDb3JlL0ZvbnRB
dHRyaWJ1dGVDaGFuZ2VzLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpGcmFtZUxvYWRUeXBlJzog
Wyc8V2ViQ29yZS9GcmFtZUxvYWRlclR5cGVzLmg+J10sCisgICAgICAgICdXZWJDb3JlOjpFdmVu
dE1ha2VzR2FtZXBhZHNWaXNpYmxlJzogWyc8V2ViQ29yZS9HYW1lcGFkUHJvdmlkZXJDbGllbnQu
aD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OkdlbmVyaWNDdWVEYXRhJzogWyc8V2ViQ29yZS9JbmJh
bmRHZW5lcmljQ3VlLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpHcmFtbWFyRGV0YWlsJzogWyc8
V2ViQ29yZS9UZXh0Q2hlY2tlckNsaWVudC5oPiddLAogICAgICAgICAnV2ViQ29yZTo6SGFzSW5z
ZWN1cmVDb250ZW50JzogWyc8V2ViQ29yZS9GcmFtZUxvYWRlclR5cGVzLmg+J10sCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9HYW1lcGFkL1VJR2FtZXBhZFByb3ZpZGVyLmNw
cCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0dhbWVwYWQvVUlHYW1lcGFkUHJvdmlkZXIuY3Bw
CmluZGV4IDk5OTkzNzNmMDIzLi41OWE2OGVlNGJiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvR2FtZXBhZC9VSUdhbWVwYWRQcm92aWRlci5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvR2FtZXBhZC9VSUdhbWVwYWRQcm92aWRlci5jcHAKQEAgLTY1LDcgKzY1
LDcgQEAgdm9pZCBVSUdhbWVwYWRQcm92aWRlcjo6Z2FtZXBhZFN5bmNUaW1lckZpcmVkKCkKICAg
ICBpZiAoIXdlYlBhZ2VQcm94eSB8fCAhbV9wcm9jZXNzUG9vbHNVc2luZ0dhbWVwYWRzLmNvbnRh
aW5zKCZ3ZWJQYWdlUHJveHktPnByb2Nlc3MoKS5wcm9jZXNzUG9vbCgpKSkKICAgICAgICAgcmV0
dXJuOwogCi0gICAgd2ViUGFnZVByb3h5LT5nYW1lcGFkQWN0aXZpdHkoc25hcHNob3RHYW1lcGFk
cygpLCBtX3Nob3VsZE1ha2VHYW1lcGFkc1Zpc2libGVPblN5bmMpOworICAgIHdlYlBhZ2VQcm94
eS0+Z2FtZXBhZEFjdGl2aXR5KHNuYXBzaG90R2FtZXBhZHMoKSwgbV9zaG91bGRNYWtlR2FtZXBh
ZHNWaXNpYmxlT25TeW5jID8gRXZlbnRNYWtlc0dhbWVwYWRzVmlzaWJsZTo6WWVzIDogRXZlbnRN
YWtlc0dhbWVwYWRzVmlzaWJsZTo6Tm8pOwogICAgIG1fc2hvdWxkTWFrZUdhbWVwYWRzVmlzaWJs
ZU9uU3luYyA9IGZhbHNlOwogfQogCkBAIC04MiwyNiArODIsMTAgQEAgdm9pZCBVSUdhbWVwYWRQ
cm92aWRlcjo6c2NoZWR1bGVHYW1lcGFkU3RhdGVTeW5jKCkKICAgICBtX2dhbWVwYWRTeW5jVGlt
ZXIuc3RhcnRPbmVTaG90KG1heGltdW1HYW1lcGFkVXBkYXRlSW50ZXJ2YWwpOwogfQogCi12b2lk
IFVJR2FtZXBhZFByb3ZpZGVyOjpzZXRJbml0aWFsQ29ubmVjdGVkR2FtZXBhZHMoY29uc3QgVmVj
dG9yPFBsYXRmb3JtR2FtZXBhZCo+JiBpbml0aWFsR2FtZXBhZHMpCit2b2lkIFVJR2FtZXBhZFBy
b3ZpZGVyOjpwbGF0Zm9ybUdhbWVwYWRDb25uZWN0ZWQoUGxhdGZvcm1HYW1lcGFkJiBnYW1lcGFk
LCBFdmVudE1ha2VzR2FtZXBhZHNWaXNpYmxlIGV2ZW50VmlzaWJpbGl0eSkKIHsKLSAgICBBU1NF
UlQoIW1faGFzSW5pdGlhbEdhbWVwYWRzKTsKKyAgICBMT0coR2FtZXBhZCwgIlVJR2FtZXBhZFBy
b3ZpZGVyOjpwbGF0Zm9ybUdhbWVwYWRDb25uZWN0ZWQgLSBJbmRleCAlaSBhdHRhY2hlZCAodmlz
aWJpbGl0eTogJWkpXG4iLCBnYW1lcGFkLmluZGV4KCksIChpbnQpZXZlbnRWaXNpYmlsaXR5KTsK
IAotICAgIG1fZ2FtZXBhZHMucmVzaXplKGluaXRpYWxHYW1lcGFkcy5zaXplKCkpOwotCi0gICAg
Zm9yIChhdXRvKiBnYW1lcGFkIDogaW5pdGlhbEdhbWVwYWRzKSB7Ci0gICAgICAgIGlmICghZ2Ft
ZXBhZCkKLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICBtX2dhbWVwYWRzW2dhbWVwYWQt
PmluZGV4KCldID0gbWFrZVVuaXF1ZTxVSUdhbWVwYWQ+KCpnYW1lcGFkKTsKLSAgICB9Ci0KLSAg
ICBmb3IgKGF1dG8mIHBvb2wgOiBtX3Byb2Nlc3NQb29sc1VzaW5nR2FtZXBhZHMpCi0gICAgICAg
IHBvb2wtPnNldEluaXRpYWxDb25uZWN0ZWRHYW1lcGFkcyhtX2dhbWVwYWRzKTsKLQotICAgIG1f
aGFzSW5pdGlhbEdhbWVwYWRzID0gdHJ1ZTsKLX0KLQotdm9pZCBVSUdhbWVwYWRQcm92aWRlcjo6
cGxhdGZvcm1HYW1lcGFkQ29ubmVjdGVkKFBsYXRmb3JtR2FtZXBhZCYgZ2FtZXBhZCkKLXsKICAg
ICBpZiAobV9nYW1lcGFkcy5zaXplKCkgPD0gZ2FtZXBhZC5pbmRleCgpKQogICAgICAgICBtX2dh
bWVwYWRzLmdyb3coZ2FtZXBhZC5pbmRleCgpICsgMSk7CiAKQEAgLTExMSw3ICs5NSw3IEBAIHZv
aWQgVUlHYW1lcGFkUHJvdmlkZXI6OnBsYXRmb3JtR2FtZXBhZENvbm5lY3RlZChQbGF0Zm9ybUdh
bWVwYWQmIGdhbWVwYWQpCiAgICAgc2NoZWR1bGVHYW1lcGFkU3RhdGVTeW5jKCk7CiAKICAgICBm
b3IgKGF1dG8mIHBvb2wgOiBtX3Byb2Nlc3NQb29sc1VzaW5nR2FtZXBhZHMpCi0gICAgICAgIHBv
b2wtPmdhbWVwYWRDb25uZWN0ZWQoKm1fZ2FtZXBhZHNbZ2FtZXBhZC5pbmRleCgpXSk7CisgICAg
ICAgIHBvb2wtPmdhbWVwYWRDb25uZWN0ZWQoKm1fZ2FtZXBhZHNbZ2FtZXBhZC5pbmRleCgpXSwg
ZXZlbnRWaXNpYmlsaXR5KTsKIH0KIAogdm9pZCBVSUdhbWVwYWRQcm92aWRlcjo6cGxhdGZvcm1H
YW1lcGFkRGlzY29ubmVjdGVkKFBsYXRmb3JtR2FtZXBhZCYgZ2FtZXBhZCkKQEAgLTEyNyw3ICsx
MTEsNyBAQCB2b2lkIFVJR2FtZXBhZFByb3ZpZGVyOjpwbGF0Zm9ybUdhbWVwYWREaXNjb25uZWN0
ZWQoUGxhdGZvcm1HYW1lcGFkJiBnYW1lcGFkKQogICAgICAgICBwb29sLT5nYW1lcGFkRGlzY29u
bmVjdGVkKCpkaXNjb25uZWN0ZWRHYW1lcGFkKTsKIH0KIAotdm9pZCBVSUdhbWVwYWRQcm92aWRl
cjo6cGxhdGZvcm1HYW1lcGFkSW5wdXRBY3Rpdml0eShib29sIHNob3VsZE1ha2VHYW1lcGFkc1Zp
c2libGUpCit2b2lkIFVJR2FtZXBhZFByb3ZpZGVyOjpwbGF0Zm9ybUdhbWVwYWRJbnB1dEFjdGl2
aXR5KEV2ZW50TWFrZXNHYW1lcGFkc1Zpc2libGUgZXZlbnRWaXNpYmlsaXR5KQogewogICAgIGF1
dG8gcGxhdGZvcm1HYW1lcGFkcyA9IEdhbWVwYWRQcm92aWRlcjo6c2luZ2xldG9uKCkucGxhdGZv
cm1HYW1lcGFkcygpOwogICAgIEFTU0VSVChwbGF0Zm9ybUdhbWVwYWRzLnNpemUoKSA9PSBtX2dh
bWVwYWRzLnNpemUoKSk7CkBAIC0xNDIsNyArMTI2LDcgQEAgdm9pZCBVSUdhbWVwYWRQcm92aWRl
cjo6cGxhdGZvcm1HYW1lcGFkSW5wdXRBY3Rpdml0eShib29sIHNob3VsZE1ha2VHYW1lcGFkc1Zp
c2kKICAgICAgICAgbV9nYW1lcGFkc1tpXS0+dXBkYXRlRnJvbVBsYXRmb3JtR2FtZXBhZCgqcGxh
dGZvcm1HYW1lcGFkc1tpXSk7CiAgICAgfQogCi0gICAgaWYgKHNob3VsZE1ha2VHYW1lcGFkc1Zp
c2libGUpCisgICAgaWYgKGV2ZW50VmlzaWJpbGl0eSA9PSBFdmVudE1ha2VzR2FtZXBhZHNWaXNp
YmxlOjpZZXMpCiAgICAgICAgIG1fc2hvdWxkTWFrZUdhbWVwYWRzVmlzaWJsZU9uU3luYyA9IHRy
dWU7CiAKICAgICBzY2hlZHVsZUdhbWVwYWRTdGF0ZVN5bmMoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0dhbWVwYWQvVUlHYW1lcGFkUHJvdmlkZXIuaCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0dhbWVwYWQvVUlHYW1lcGFkUHJvdmlkZXIuaAppbmRleCA4NmU4OTdl
OWM1ZC4uM2VhNzAxYzczODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0dh
bWVwYWQvVUlHYW1lcGFkUHJvdmlkZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9H
YW1lcGFkL1VJR2FtZXBhZFByb3ZpZGVyLmgKQEAgLTcwLDEwICs3MCw5IEBAIHByaXZhdGU6CiAg
ICAgdm9pZCBwbGF0Zm9ybVN0b3BNb25pdG9yaW5nSW5wdXQoKTsKICAgICB2b2lkIHBsYXRmb3Jt
U3RhcnRNb25pdG9yaW5nSW5wdXQoKTsKIAotICAgIHZvaWQgc2V0SW5pdGlhbENvbm5lY3RlZEdh
bWVwYWRzKGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpQbGF0Zm9ybUdhbWVwYWQqPiYpIGZpbmFsOwot
ICAgIHZvaWQgcGxhdGZvcm1HYW1lcGFkQ29ubmVjdGVkKFdlYkNvcmU6OlBsYXRmb3JtR2FtZXBh
ZCYpIGZpbmFsOworICAgIHZvaWQgcGxhdGZvcm1HYW1lcGFkQ29ubmVjdGVkKFdlYkNvcmU6OlBs
YXRmb3JtR2FtZXBhZCYsIFdlYkNvcmU6OkV2ZW50TWFrZXNHYW1lcGFkc1Zpc2libGUpIGZpbmFs
OwogICAgIHZvaWQgcGxhdGZvcm1HYW1lcGFkRGlzY29ubmVjdGVkKFdlYkNvcmU6OlBsYXRmb3Jt
R2FtZXBhZCYpIGZpbmFsOwotICAgIHZvaWQgcGxhdGZvcm1HYW1lcGFkSW5wdXRBY3Rpdml0eShi
b29sIHNob3VsZE1ha2VHYW1lcGFkc1Zpc2libGUpIGZpbmFsOworICAgIHZvaWQgcGxhdGZvcm1H
YW1lcGFkSW5wdXRBY3Rpdml0eShXZWJDb3JlOjpFdmVudE1ha2VzR2FtZXBhZHNWaXNpYmxlKSBm
aW5hbDsKIAogICAgIHZvaWQgc2NoZWR1bGVHYW1lcGFkU3RhdGVTeW5jKCk7CiAgICAgdm9pZCBn
YW1lcGFkU3luY1RpbWVyRmlyZWQoKTsKQEAgLTg1LDcgKzg0LDYgQEAgcHJpdmF0ZToKICAgICBS
dW5Mb29wOjpUaW1lcjxVSUdhbWVwYWRQcm92aWRlcj4gbV9nYW1lcGFkU3luY1RpbWVyOwogCiAg
ICAgYm9vbCBtX2lzTW9uaXRvcmluZ0dhbWVwYWRzIHsgZmFsc2UgfTsKLSAgICBib29sIG1faGFz
SW5pdGlhbEdhbWVwYWRzIHsgZmFsc2UgfTsKICAgICBib29sIG1fc2hvdWxkTWFrZUdhbWVwYWRz
VmlzaWJsZU9uU3luYyB7IGZhbHNlIH07CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmNwcAppbmRleCA3NjYzYjQ0Nzk0Ny4uM2E4ZjQwNWEzNWYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtNzkxOSw5ICs3OTE5LDkgQEAgdm9p
ZCBXZWJQYWdlUHJveHk6OmJhY2tGb3J3YXJkQ2xlYXIoKQogCiAjaWYgRU5BQkxFKEdBTUVQQUQp
CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpnYW1lcGFkQWN0aXZpdHkoY29uc3QgVmVjdG9yPEdhbWVw
YWREYXRhPiYgZ2FtZXBhZERhdGFzLCBib29sIHNob3VsZE1ha2VHYW1lcGFkc1Zpc2libGUpCit2
b2lkIFdlYlBhZ2VQcm94eTo6Z2FtZXBhZEFjdGl2aXR5KGNvbnN0IFZlY3RvcjxHYW1lcGFkRGF0
YT4mIGdhbWVwYWREYXRhcywgRXZlbnRNYWtlc0dhbWVwYWRzVmlzaWJsZSBldmVudFZpc2liaWxp
dHkpCiB7Ci0gICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6R2FtZXBhZEFjdGl2aXR5KGdhbWVw
YWREYXRhcywgc2hvdWxkTWFrZUdhbWVwYWRzVmlzaWJsZSkpOworICAgIHNlbmQoTWVzc2FnZXM6
OldlYlBhZ2U6OkdhbWVwYWRBY3Rpdml0eShnYW1lcGFkRGF0YXMsIGV2ZW50VmlzaWJpbGl0eSkp
OwogfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXgg
ZjhjZTUwOGVhMTcuLmJjNzIzOTliYzA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuaApAQCAtMjI5LDYgKzIyOSw3IEBAIGNsYXNzIFZhbGlkYXRpb25CdWJibGU7CiAKIGVu
dW0gY2xhc3MgQXV0b3BsYXlFdmVudCA6IHVpbnQ4X3Q7CiBlbnVtIGNsYXNzIERPTVBhc3RlQWNj
ZXNzUmVzcG9uc2UgOiB1aW50OF90OworZW51bSBjbGFzcyBFdmVudE1ha2VzR2FtZXBhZHNWaXNp
YmxlIDogYm9vbDsKIGVudW0gY2xhc3MgTG9ja0JhY2tGb3J3YXJkTGlzdCA6IGJvb2w7CiBlbnVt
IGNsYXNzIEhhc0luc2VjdXJlQ29udGVudCA6IGJvb2w7CiBlbnVtIGNsYXNzIE1vdXNlRXZlbnRQ
b2xpY3kgOiB1aW50OF90OwpAQCAtMTU2OSw3ICsxNTcwLDcgQEAgcHVibGljOgogICAgIGJvb2wg
aXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCkgY29uc3Q7CiAKICNpZiBFTkFCTEUoR0FNRVBBRCkK
LSAgICB2b2lkIGdhbWVwYWRBY3Rpdml0eShjb25zdCBWZWN0b3I8R2FtZXBhZERhdGE+JiwgYm9v
bCBzaG91bGRNYWtlR2FtZXBhZHNWaXNpYmxlKTsKKyAgICB2b2lkIGdhbWVwYWRBY3Rpdml0eShj
b25zdCBWZWN0b3I8R2FtZXBhZERhdGE+JiwgV2ViQ29yZTo6RXZlbnRNYWtlc0dhbWVwYWRzVmlz
aWJsZSk7CiAjZW5kaWYKIAogICAgIHZvaWQgaXNMb2FkaW5nQ2hhbmdlZCgpIHsgYWN0aXZpdHlT
dGF0ZURpZENoYW5nZShXZWJDb3JlOjpBY3Rpdml0eVN0YXRlOjpJc0xvYWRpbmcpOyB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKaW5kZXggMjBjZjkyNmFjODAu
LmJlMzU0MmVjMWJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9j
ZXNzUG9vbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wu
Y3BwCkBAIC0xOTU3LDEwICsxOTU3LDEwIEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnByb2Nlc3NT
dG9wcGVkVXNpbmdHYW1lcGFkcyhXZWJQcm9jZXNzUHJveHkmIHByb2Nlc3MpCiAgICAgICAgIFVJ
R2FtZXBhZFByb3ZpZGVyOjpzaW5nbGV0b24oKS5wcm9jZXNzUG9vbFN0b3BwZWRVc2luZ0dhbWVw
YWRzKCp0aGlzKTsKIH0KIAotdm9pZCBXZWJQcm9jZXNzUG9vbDo6Z2FtZXBhZENvbm5lY3RlZChj
b25zdCBVSUdhbWVwYWQmIGdhbWVwYWQpCit2b2lkIFdlYlByb2Nlc3NQb29sOjpnYW1lcGFkQ29u
bmVjdGVkKGNvbnN0IFVJR2FtZXBhZCYgZ2FtZXBhZCwgRXZlbnRNYWtlc0dhbWVwYWRzVmlzaWJs
ZSBldmVudFZpc2liaWxpdHkpCiB7CiAgICAgZm9yIChhdXRvJiBwcm9jZXNzIDogbV9wcm9jZXNz
ZXNVc2luZ0dhbWVwYWRzKQotICAgICAgICBwcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQcm9j
ZXNzOjpHYW1lcGFkQ29ubmVjdGVkKGdhbWVwYWQuZnVsbEdhbWVwYWREYXRhKCkpLCAwKTsKKyAg
ICAgICAgcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUHJvY2Vzczo6R2FtZXBhZENvbm5lY3Rl
ZChnYW1lcGFkLmZ1bGxHYW1lcGFkRGF0YSgpLCBldmVudFZpc2liaWxpdHkpLCAwKTsKIH0KIAog
dm9pZCBXZWJQcm9jZXNzUG9vbDo6Z2FtZXBhZERpc2Nvbm5lY3RlZChjb25zdCBVSUdhbWVwYWQm
IGdhbWVwYWQpCkBAIC0xOTY5LDIwICsxOTY5LDYgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6Z2Ft
ZXBhZERpc2Nvbm5lY3RlZChjb25zdCBVSUdhbWVwYWQmIGdhbWVwYWQpCiAgICAgICAgIHByb2Nl
c3MtPnNlbmQoTWVzc2FnZXM6OldlYlByb2Nlc3M6OkdhbWVwYWREaXNjb25uZWN0ZWQoZ2FtZXBh
ZC5pbmRleCgpKSwgMCk7CiB9CiAKLXZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnNldEluaXRpYWxDb25u
ZWN0ZWRHYW1lcGFkcyhjb25zdCBWZWN0b3I8c3RkOjp1bmlxdWVfcHRyPFVJR2FtZXBhZD4+JiBn
YW1lcGFkcykKLXsKLSAgICBWZWN0b3I8R2FtZXBhZERhdGE+IGdhbWVwYWREYXRhczsKLSAgICBn
YW1lcGFkRGF0YXMuZ3JvdyhnYW1lcGFkcy5zaXplKCkpOwotICAgIGZvciAoc2l6ZV90IGkgPSAw
OyBpIDwgZ2FtZXBhZHMuc2l6ZSgpOyArK2kpIHsKLSAgICAgICAgaWYgKCFnYW1lcGFkc1tpXSkK
LSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICBnYW1lcGFkRGF0YXNbaV0gPSBnYW1lcGFk
c1tpXS0+ZnVsbEdhbWVwYWREYXRhKCk7Ci0gICAgfQotCi0gICAgZm9yIChhdXRvJiBwcm9jZXNz
IDogbV9wcm9jZXNzZXNVc2luZ0dhbWVwYWRzKQotICAgICAgICBwcm9jZXNzLT5zZW5kKE1lc3Nh
Z2VzOjpXZWJQcm9jZXNzOjpTZXRJbml0aWFsR2FtZXBhZHMoZ2FtZXBhZERhdGFzKSwgMCk7Ci19
Ci0KICNlbmRpZiAvLyBFTkFCTEUoR0FNRVBBRCkKIAogdm9pZCBXZWJQcm9jZXNzUG9vbDo6c2V0
SmF2YVNjcmlwdENvbmZpZ3VyYXRpb25GaWxlRW5hYmxlZChib29sIGZsYWcpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAppbmRleCBiZjJkOGM3ZTUyZC4uN2ExMGVhYjdh
ODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaApAQCAtOTIsNiAr
OTIsNyBAQCBjbGFzcyBQYWdlQ29uZmlndXJhdGlvbjsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
Y2xhc3MgUmVnaXN0cmFibGVEb21haW47CitlbnVtIGNsYXNzIEV2ZW50TWFrZXNHYW1lcGFkc1Zp
c2libGUgOiBib29sOwogc3RydWN0IE1vY2tNZWRpYURldmljZTsKIH0KIApAQCAtNDYzLDEwICs0
NjQsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzeW50aGVzaXplQXBwSXNCYWNrZ3JvdW5kKGJvb2wg
YmFja2dyb3VuZCk7CiAgICAgCiAjaWYgRU5BQkxFKEdBTUVQQUQpCi0gICAgdm9pZCBnYW1lcGFk
Q29ubmVjdGVkKGNvbnN0IFVJR2FtZXBhZCYpOworICAgIHZvaWQgZ2FtZXBhZENvbm5lY3RlZChj
b25zdCBVSUdhbWVwYWQmLCBXZWJDb3JlOjpFdmVudE1ha2VzR2FtZXBhZHNWaXNpYmxlKTsKICAg
ICB2b2lkIGdhbWVwYWREaXNjb25uZWN0ZWQoY29uc3QgVUlHYW1lcGFkJik7Ci0KLSAgICB2b2lk
IHNldEluaXRpYWxDb25uZWN0ZWRHYW1lcGFkcyhjb25zdCBWZWN0b3I8c3RkOjp1bmlxdWVfcHRy
PFVJR2FtZXBhZD4+Jik7CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKENPQ09BKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dhbWVwYWQvV2ViR2FtZXBhZFByb3ZpZGVyLmNw
cCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HYW1lcGFkL1dlYkdhbWVwYWRQcm92aWRlci5j
cHAKaW5kZXggYWFiMzQ1N2NlZDYuLmNmYzBiZGMyM2FlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR2FtZXBhZC9XZWJHYW1lcGFkUHJvdmlkZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HYW1lcGFkL1dlYkdhbWVwYWRQcm92aWRlci5jcHAKQEAgLTY3
LDggKzY3LDEwIEBAIHZvaWQgV2ViR2FtZXBhZFByb3ZpZGVyOjpzZXRJbml0aWFsR2FtZXBhZHMo
Y29uc3QgVmVjdG9yPEdhbWVwYWREYXRhPiYgZ2FtZXBhZERhCiAgICAgfQogfQogCi12b2lkIFdl
YkdhbWVwYWRQcm92aWRlcjo6Z2FtZXBhZENvbm5lY3RlZChjb25zdCBHYW1lcGFkRGF0YSYgZ2Ft
ZXBhZERhdGEpCit2b2lkIFdlYkdhbWVwYWRQcm92aWRlcjo6Z2FtZXBhZENvbm5lY3RlZChjb25z
dCBHYW1lcGFkRGF0YSYgZ2FtZXBhZERhdGEsIEV2ZW50TWFrZXNHYW1lcGFkc1Zpc2libGUgZXZl
bnRWaXNpYmlsaXR5KQogeworICAgIExPRyhHYW1lcGFkLCAiV2ViR2FtZXBhZFByb3ZpZGVyOjpn
YW1lcGFkQ29ubmVjdGVkIC0gSW5kZXggJWkgYXR0YWNoZWQgKHZpc2liaWxpdHk6ICVpKVxuIiwg
Z2FtZXBhZERhdGEuaW5kZXgoKSwgKGludClldmVudFZpc2liaWxpdHkpOworCiAgICAgaWYgKG1f
Z2FtZXBhZHMuc2l6ZSgpIDw9IGdhbWVwYWREYXRhLmluZGV4KCkpIHsKICAgICAgICAgbV9nYW1l
cGFkcy5yZXNpemUoZ2FtZXBhZERhdGEuaW5kZXgoKSArIDEpOwogICAgICAgICBtX3Jhd0dhbWVw
YWRzLnJlc2l6ZShnYW1lcGFkRGF0YS5pbmRleCgpICsgMSk7CkBAIC04MCw3ICs4Miw3IEBAIHZv
aWQgV2ViR2FtZXBhZFByb3ZpZGVyOjpnYW1lcGFkQ29ubmVjdGVkKGNvbnN0IEdhbWVwYWREYXRh
JiBnYW1lcGFkRGF0YSkKICAgICBtX3Jhd0dhbWVwYWRzW2dhbWVwYWREYXRhLmluZGV4KCldID0g
bV9nYW1lcGFkc1tnYW1lcGFkRGF0YS5pbmRleCgpXS5nZXQoKTsKIAogICAgIGZvciAoYXV0byog
Y2xpZW50IDogbV9jbGllbnRzKQotICAgICAgICBjbGllbnQtPnBsYXRmb3JtR2FtZXBhZENvbm5l
Y3RlZCgqbV9nYW1lcGFkc1tnYW1lcGFkRGF0YS5pbmRleCgpXSk7CisgICAgICAgIGNsaWVudC0+
cGxhdGZvcm1HYW1lcGFkQ29ubmVjdGVkKCptX2dhbWVwYWRzW2dhbWVwYWREYXRhLmluZGV4KCld
LCBldmVudFZpc2liaWxpdHkpOwogfQogCiB2b2lkIFdlYkdhbWVwYWRQcm92aWRlcjo6Z2FtZXBh
ZERpc2Nvbm5lY3RlZCh1bnNpZ25lZCBpbmRleCkKQEAgLTk0LDcgKzk2LDcgQEAgdm9pZCBXZWJH
YW1lcGFkUHJvdmlkZXI6OmdhbWVwYWREaXNjb25uZWN0ZWQodW5zaWduZWQgaW5kZXgpCiAgICAg
ICAgIGNsaWVudC0+cGxhdGZvcm1HYW1lcGFkRGlzY29ubmVjdGVkKCpkaXNjb25uZWN0ZWRHYW1l
cGFkKTsKIH0KIAotdm9pZCBXZWJHYW1lcGFkUHJvdmlkZXI6OmdhbWVwYWRBY3Rpdml0eShjb25z
dCBWZWN0b3I8R2FtZXBhZERhdGE+JiBnYW1lcGFkRGF0YXMsIGJvb2wgc2hvdWxkTWFrZUdhbWVw
YWRzVmlzaWJsZSkKK3ZvaWQgV2ViR2FtZXBhZFByb3ZpZGVyOjpnYW1lcGFkQWN0aXZpdHkoY29u
c3QgVmVjdG9yPEdhbWVwYWREYXRhPiYgZ2FtZXBhZERhdGFzLCBFdmVudE1ha2VzR2FtZXBhZHNW
aXNpYmxlIGV2ZW50VmlzaWJpbGl0eSkKIHsKICAgICBBU1NFUlQobV9nYW1lcGFkcy5zaXplKCkg
PT0gZ2FtZXBhZERhdGFzLnNpemUoKSk7CiAKQEAgLTEwNCw3ICsxMDYsNyBAQCB2b2lkIFdlYkdh
bWVwYWRQcm92aWRlcjo6Z2FtZXBhZEFjdGl2aXR5KGNvbnN0IFZlY3RvcjxHYW1lcGFkRGF0YT4m
IGdhbWVwYWREYXRhcwogICAgIH0KIAogICAgIGZvciAoYXV0byogY2xpZW50IDogbV9jbGllbnRz
KQotICAgICAgICBjbGllbnQtPnBsYXRmb3JtR2FtZXBhZElucHV0QWN0aXZpdHkoc2hvdWxkTWFr
ZUdhbWVwYWRzVmlzaWJsZSk7CisgICAgICAgIGNsaWVudC0+cGxhdGZvcm1HYW1lcGFkSW5wdXRB
Y3Rpdml0eShldmVudFZpc2liaWxpdHkpOwogfQogCiB2b2lkIFdlYkdhbWVwYWRQcm92aWRlcjo6
c3RhcnRNb25pdG9yaW5nR2FtZXBhZHMoR2FtZXBhZFByb3ZpZGVyQ2xpZW50JiBjbGllbnQpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR2FtZXBhZC9XZWJHYW1lcGFkUHJv
dmlkZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HYW1lcGFkL1dlYkdhbWVwYWRQcm92
aWRlci5oCmluZGV4IGVkYWI3YzNmMTgxLi44YTE3ZjkwODRiNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dhbWVwYWQvV2ViR2FtZXBhZFByb3ZpZGVyLmgKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dhbWVwYWQvV2ViR2FtZXBhZFByb3ZpZGVyLmgKQEAgLTMy
LDYgKzMyLDEwIEBACiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvVmVj
dG9yLmg+CiAKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2VudW0gY2xhc3MgRXZlbnRNYWtlc0dhbWVw
YWRzVmlzaWJsZSA6IGJvb2w7Cit9CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBTaGFy
ZWRNZW1vcnk7CkBAIC00Myw5ICs0Nyw5IEBAIGNsYXNzIFdlYkdhbWVwYWRQcm92aWRlciA6IHB1
YmxpYyBXZWJDb3JlOjpHYW1lcGFkUHJvdmlkZXIgewogcHVibGljOgogICAgIHN0YXRpYyBXZWJH
YW1lcGFkUHJvdmlkZXImIHNpbmdsZXRvbigpOwogCi0gICAgdm9pZCBnYW1lcGFkQ29ubmVjdGVk
KGNvbnN0IEdhbWVwYWREYXRhJik7CisgICAgdm9pZCBnYW1lcGFkQ29ubmVjdGVkKGNvbnN0IEdh
bWVwYWREYXRhJiwgV2ViQ29yZTo6RXZlbnRNYWtlc0dhbWVwYWRzVmlzaWJsZSk7CiAgICAgdm9p
ZCBnYW1lcGFkRGlzY29ubmVjdGVkKHVuc2lnbmVkIGluZGV4KTsKLSAgICB2b2lkIGdhbWVwYWRB
Y3Rpdml0eShjb25zdCBWZWN0b3I8R2FtZXBhZERhdGE+JiwgYm9vbCBzaG91bGRNYWtlR2FtZXBh
ZHNWaXNpYmxlKTsKKyAgICB2b2lkIGdhbWVwYWRBY3Rpdml0eShjb25zdCBWZWN0b3I8R2FtZXBh
ZERhdGE+JiwgV2ViQ29yZTo6RXZlbnRNYWtlc0dhbWVwYWRzVmlzaWJsZSk7CiAKICAgICB2b2lk
IHNldEluaXRpYWxHYW1lcGFkcyhjb25zdCBWZWN0b3I8R2FtZXBhZERhdGE+Jik7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggMWRmMjc4MjQ5
NDguLjE0ZjhiNTE0MmEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmNwcApAQCAtNjYyMSw5ICs2NjIxLDkgQEAgdm9pZCBXZWJQYWdlOjpzZXRVc2VySW50
ZXJmYWNlTGF5b3V0RGlyZWN0aW9uKHVpbnQzMl90IGRpcmVjdGlvbikKIAogI2lmIEVOQUJMRShH
QU1FUEFEKQogCi12b2lkIFdlYlBhZ2U6OmdhbWVwYWRBY3Rpdml0eShjb25zdCBWZWN0b3I8R2Ft
ZXBhZERhdGE+JiBnYW1lcGFkRGF0YXMsIGJvb2wgc2hvdWxkTWFrZUdhbWVwYWRzVmlzaWJsZSkK
K3ZvaWQgV2ViUGFnZTo6Z2FtZXBhZEFjdGl2aXR5KGNvbnN0IFZlY3RvcjxHYW1lcGFkRGF0YT4m
IGdhbWVwYWREYXRhcywgRXZlbnRNYWtlc0dhbWVwYWRzVmlzaWJsZSBldmVudFZpc2liaWx0eSkK
IHsKLSAgICBXZWJHYW1lcGFkUHJvdmlkZXI6OnNpbmdsZXRvbigpLmdhbWVwYWRBY3Rpdml0eShn
YW1lcGFkRGF0YXMsIHNob3VsZE1ha2VHYW1lcGFkc1Zpc2libGUpOworICAgIFdlYkdhbWVwYWRQ
cm92aWRlcjo6c2luZ2xldG9uKCkuZ2FtZXBhZEFjdGl2aXR5KGdhbWVwYWREYXRhcywgZXZlbnRW
aXNpYmlsdHkpOwogfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuaAppbmRleCAwZGIyYzdiYzQzYy4uOWU0ZmNjNDk1ZjYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTE5Niw2ICsxOTYsNyBAQCBjbGFz
cyBWaXNpYmxlUG9zaXRpb247CiBlbnVtIFN5bnRoZXRpY0NsaWNrVHlwZSA6IGludDhfdDsKIGVu
dW0gY2xhc3MgRE9NUGFzdGVBY2Nlc3NSZXNwb25zZSA6IHVpbnQ4X3Q7CiBlbnVtIGNsYXNzIERy
YWdIYW5kbGluZ01ldGhvZCA6IHVpbnQ4X3Q7CitlbnVtIGNsYXNzIEV2ZW50TWFrZXNHYW1lcGFk
c1Zpc2libGUgOiBib29sOwogZW51bSBjbGFzcyBTZWxlY3Rpb25EaXJlY3Rpb24gOiB1aW50OF90
OwogZW51bSBjbGFzcyBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgOiBib29sOwogZW51bSBj
bGFzcyBUZXh0SW5kaWNhdG9yUHJlc2VudGF0aW9uVHJhbnNpdGlvbiA6IHVpbnQ4X3Q7CkBAIC0x
MTc1LDcgKzExNzYsNyBAQCBwdWJsaWM6CiAjZW5kaWYKIAogI2lmIEVOQUJMRShHQU1FUEFEKQot
ICAgIHZvaWQgZ2FtZXBhZEFjdGl2aXR5KGNvbnN0IFZlY3RvcjxHYW1lcGFkRGF0YT4mLCBib29s
IHNob3VsZE1ha2VHYW1lcGFkc1Zpc2libGUpOworICAgIHZvaWQgZ2FtZXBhZEFjdGl2aXR5KGNv
bnN0IFZlY3RvcjxHYW1lcGFkRGF0YT4mLCBXZWJDb3JlOjpFdmVudE1ha2VzR2FtZXBhZHNWaXNp
YmxlKTsKICNlbmRpZgogICAgIAogI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgppbmRl
eCBjNWUzNDMxZjYxNy4uYTFkYzg4NDE3ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgpAQCAtNTQ1LDcgKzU0NSw3IEBA
IEdlbmVyYXRlU3ludGhldGljRWRpdGluZ0NvbW1hbmQoZW51bTp1aW50OF90IFdlYktpdDo6U3lu
dGhldGljRWRpdGluZ0NvbW1hbmRUeXBlCiAgICAgU2V0VXNlSWNvbkxvYWRpbmdDbGllbnQoYm9v
bCB1c2VJY29uTG9hZGluZ0NsaWVudCkKIAogI2lmIEVOQUJMRShHQU1FUEFEKQotICAgIEdhbWVw
YWRBY3Rpdml0eShWZWN0b3I8V2ViS2l0OjpHYW1lcGFkRGF0YT4gZ2FtZXBhZERhdGFzLCBib29s
IHNob3VsZE1ha2VHYW1lcGFkc1Zpc2libGUpCisgICAgR2FtZXBhZEFjdGl2aXR5KFZlY3RvcjxX
ZWJLaXQ6OkdhbWVwYWREYXRhPiBnYW1lcGFkRGF0YXMsIGVudW06Ym9vbCBXZWJDb3JlOjpFdmVu
dE1ha2VzR2FtZXBhZHNWaXNpYmxlIGV2ZW50VmlzaWJpbGl0eSkKICNlbmRpZgogCiAgICAgRnJh
bWVCZWNhbWVSZW1vdGUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBX
ZWJDb3JlOjpHbG9iYWxGcmFtZUlkZW50aWZpZXIgcmVtb3RlRnJhbWVJZGVudGlmaWVyLCBzdHJ1
Y3QgV2ViQ29yZTo6R2xvYmFsV2luZG93SWRlbnRpZmllciByZW1vdGVXaW5kb3dJZGVudGlmaWVy
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCmluZGV4IDM1Mjc1YTc0ZDJm
Li5iMmViNDUwZjY5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBy
b2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcApA
QCAtMTA0OSw5ICsxMDQ5LDkgQEAgdm9pZCBXZWJQcm9jZXNzOjpzZXRJbml0aWFsR2FtZXBhZHMo
Y29uc3QgVmVjdG9yPFdlYktpdDo6R2FtZXBhZERhdGE+JiBnYW1lcGFkRGEKICAgICBXZWJHYW1l
cGFkUHJvdmlkZXI6OnNpbmdsZXRvbigpLnNldEluaXRpYWxHYW1lcGFkcyhnYW1lcGFkRGF0YXMp
OwogfQogCi12b2lkIFdlYlByb2Nlc3M6OmdhbWVwYWRDb25uZWN0ZWQoY29uc3QgR2FtZXBhZERh
dGEmIGdhbWVwYWREYXRhKQordm9pZCBXZWJQcm9jZXNzOjpnYW1lcGFkQ29ubmVjdGVkKGNvbnN0
IEdhbWVwYWREYXRhJiBnYW1lcGFkRGF0YSwgV2ViQ29yZTo6RXZlbnRNYWtlc0dhbWVwYWRzVmlz
aWJsZSBldmVudFZpc2liaWxpdHkpCiB7Ci0gICAgV2ViR2FtZXBhZFByb3ZpZGVyOjpzaW5nbGV0
b24oKS5nYW1lcGFkQ29ubmVjdGVkKGdhbWVwYWREYXRhKTsKKyAgICBXZWJHYW1lcGFkUHJvdmlk
ZXI6OnNpbmdsZXRvbigpLmdhbWVwYWRDb25uZWN0ZWQoZ2FtZXBhZERhdGEsIGV2ZW50VmlzaWJp
bGl0eSk7CiB9CiAKIHZvaWQgV2ViUHJvY2Vzczo6Z2FtZXBhZERpc2Nvbm5lY3RlZCh1bnNpZ25l
ZCBpbmRleCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNz
LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCmluZGV4IGE5NTNjOGFk
OTYxLi4xNDRiNTk5ODE4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCkBA
IC04NCw2ICs4NCw5IEBAIGNsYXNzIFBhZ2VHcm91cDsKIGNsYXNzIFJlZ2lzdHJhYmxlRG9tYWlu
OwogY2xhc3MgUmVzb3VyY2VSZXF1ZXN0OwogY2xhc3MgVXNlckdlc3R1cmVUb2tlbjsKKworZW51
bSBjbGFzcyBFdmVudE1ha2VzR2FtZXBhZHNWaXNpYmxlIDogYm9vbDsKKwogc3RydWN0IEJhY2tG
b3J3YXJkSXRlbUlkZW50aWZpZXI7CiBzdHJ1Y3QgTWVzc2FnZVBvcnRJZGVudGlmaWVyOwogc3Ry
dWN0IE1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzOwpAQCAtMzk5LDcgKzQwMiw3IEBAIHByaXZhdGU6
CiAKICNpZiBFTkFCTEUoR0FNRVBBRCkKICAgICB2b2lkIHNldEluaXRpYWxHYW1lcGFkcyhjb25z
dCBWZWN0b3I8R2FtZXBhZERhdGE+Jik7Ci0gICAgdm9pZCBnYW1lcGFkQ29ubmVjdGVkKGNvbnN0
IEdhbWVwYWREYXRhJik7CisgICAgdm9pZCBnYW1lcGFkQ29ubmVjdGVkKGNvbnN0IEdhbWVwYWRE
YXRhJiwgV2ViQ29yZTo6RXZlbnRNYWtlc0dhbWVwYWRzVmlzaWJsZSk7CiAgICAgdm9pZCBnYW1l
cGFkRGlzY29ubmVjdGVkKHVuc2lnbmVkIGluZGV4KTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCmluZGV4IGY1YmNjMDZlOGVl
Li42OTBlNGZhNWQ2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBy
b2Nlc3MubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nl
c3MubWVzc2FnZXMuaW4KQEAgLTEwMCw3ICsxMDAsNyBAQCBtZXNzYWdlcyAtPiBXZWJQcm9jZXNz
IExlZ2FjeVJlY2VpdmVyIE5vdFJlZkNvdW50ZWQgewogCiAjaWYgRU5BQkxFKEdBTUVQQUQpCiAg
ICAgU2V0SW5pdGlhbEdhbWVwYWRzKFZlY3RvcjxXZWJLaXQ6OkdhbWVwYWREYXRhPiBnYW1lcGFk
RGF0YXMpCi0gICAgR2FtZXBhZENvbm5lY3RlZChXZWJLaXQ6OkdhbWVwYWREYXRhIGdhbWVwYWRE
YXRhKQorICAgIEdhbWVwYWRDb25uZWN0ZWQoV2ViS2l0OjpHYW1lcGFkRGF0YSBnYW1lcGFkRGF0
YSwgZW51bTpib29sIFdlYkNvcmU6OkV2ZW50TWFrZXNHYW1lcGFkc1Zpc2libGUgZXZlbnRWaXNp
YmlsaXR5KQogICAgIEdhbWVwYWREaXNjb25uZWN0ZWQodW5zaWduZWQgaW5kZXgpCiAjZW5kaWYK
IAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>