<?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>228649</bug_id>
          
          <creation_ts>2021-07-30 10:23:07 -0700</creation_ts>
          <short_desc>Attribute nw connections to the page bundle identifier</short_desc>
          <delta_ts>2021-08-02 16:35:13 -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>WebRTC</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="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>achristensen</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1780852</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-07-30 10:23:07 -0700</bug_when>
    <thetext>Attribute nw connections to the page bundle identifier</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1780872</commentid>
    <comment_count>1</comment_count>
      <attachid>434645</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-07-30 10:31:32 -0700</bug_when>
    <thetext>Created attachment 434645
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1781202</commentid>
    <comment_count>2</comment_count>
      <attachid>434743</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-08-02 00:47:51 -0700</bug_when>
    <thetext>Created attachment 434743
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1781274</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-08-02 09:43:09 -0700</bug_when>
    <thetext>&lt;rdar://problem/81415612&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1781276</commentid>
    <comment_count>4</comment_count>
      <attachid>434743</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2021-08-02 09:44:19 -0700</bug_when>
    <thetext>Comment on attachment 434743
Patch

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

&gt; Source/WebKit/NetworkProcess/NetworkSession.cpp:411
&gt; +    return m_attributedBundleIdentifierFromPageIdentifiers.get(identifier);

It is worth ASSERTing that the identifier is in the map?

&gt; Source/WebKit/NetworkProcess/webrtc/NetworkRTCProvider.cpp:159
&gt; +        if (auto socket = NetworkRTCUDPSocketCocoa::createUDPSocket(identifier, *this, address.value, minPort, maxPort, m_ipcConnection.copyRef(), String(attributedBundleIdentifierFromPageIdentifier(pageIdentifier)), isFirstParty, isRelayDisabled,   WTFMove(domain))) {

Nit: extra space before `WTFMove`

Is this called often enough that it would be worth keeping a pageIdentifier -&gt; attributedBundleIdentifier map in the provider instead of doing the synchronous cross-thread hop every time?

&gt; Source/WebKit/NetworkProcess/webrtc/NetworkRTCProvider.cpp:202
&gt; +        if (auto socket = NetworkRTCTCPSocketCocoa::createClientTCPSocket(identifier, *this, remoteAddress.value, options, attributedBundleIdentifierFromPageIdentifier(pageIdentifier), isRelayDisabled, m_ipcConnection.copyRef())) {

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1781309</commentid>
    <comment_count>5</comment_count>
      <attachid>434743</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-08-02 10:50:34 -0700</bug_when>
    <thetext>Comment on attachment 434743
Patch

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

&gt; Source/WebKit/ChangeLog:9
&gt; +        Use page identifier to get the bundle identifier.

attributed bundle identifier, not the bundle identifier.  The former is set via SPI in contexts such as SFSafariViewController when the view is made on behalf of another application, the latter is set for the executable.

&gt;&gt; Source/WebKit/NetworkProcess/NetworkSession.cpp:411
&gt;&gt; +    return m_attributedBundleIdentifierFromPageIdentifiers.get(identifier);
&gt; 
&gt; It is worth ASSERTing that the identifier is in the map?

no,  it is likely not in the map.

&gt; Source/WebKit/NetworkProcess/NetworkSession.h:180
&gt; +    String attributedBundleIdentifierFromPageIdentifier(WebPageProxyIdentifier) const;

This could return a const String&amp;

&gt; Source/WebKit/NetworkProcess/webrtc/NetworkRTCProvider.cpp:149
&gt; +        return value;

I feel like there should be an isolatedCopy somewhere in here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1781314</commentid>
    <comment_count>6</comment_count>
      <attachid>434771</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-08-02 11:04:57 -0700</bug_when>
    <thetext>Created attachment 434771
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1781319</commentid>
    <comment_count>7</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-08-02 11:11:25 -0700</bug_when>
    <thetext>&gt; &gt; Source/WebKit/NetworkProcess/webrtc/NetworkRTCProvider.cpp:159
&gt; &gt; +        if (auto socket = NetworkRTCUDPSocketCocoa::createUDPSocket(identifier, *this, address.value, minPort, maxPort, m_ipcConnection.copyRef(), String(attributedBundleIdentifierFromPageIdentifier(pageIdentifier)), isFirstParty, isRelayDisabled,   WTFMove(domain))) {
&gt; 
&gt; Nit: extra space before `WTFMove`

OK

&gt; Is this called often enough that it would be worth keeping a pageIdentifier
&gt; -&gt; attributedBundleIdentifier map in the provider instead of doing the
&gt; synchronous cross-thread hop every time?

Yep, this is in the patch.

&gt; &gt; Source/WebKit/ChangeLog:9
&gt; &gt; +        Use page identifier to get the bundle identifier.
&gt; 
&gt; attributed bundle identifier, not the bundle identifier.  The former is set
&gt; via SPI in contexts such as SFSafariViewController when the view is made on
&gt; behalf of another application, the latter is set for the executable.

OK


&gt; &gt; Source/WebKit/NetworkProcess/NetworkSession.h:180
&gt; &gt; +    String attributedBundleIdentifierFromPageIdentifier(WebPageProxyIdentifier) const;
&gt; 
&gt; This could return a const String&amp;

OK

&gt; &gt; Source/WebKit/NetworkProcess/webrtc/NetworkRTCProvider.cpp:149
&gt; &gt; +        return value;
&gt; 
&gt; I feel like there should be an isolatedCopy somewhere in here.

There is one when adding the NetworkSession string to the NetworkRTCProvider map (line 147). I do not think we need an isolated copy every time we return the string:
- The map is only accessed in the background thread.
- The sockets keep a ref of the strings but the sockets are deleted in the background thread.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1781320</commentid>
    <comment_count>8</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-08-02 11:11:55 -0700</bug_when>
    <thetext>&gt; - The map is only accessed in the background thread.

I&apos;ll clear the map in the background thread when closing even though this is not strictly needed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1781326</commentid>
    <comment_count>9</comment_count>
      <attachid>434776</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-08-02 11:21:05 -0700</bug_when>
    <thetext>Created attachment 434776
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1781329</commentid>
    <comment_count>10</comment_count>
      <attachid>434778</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-08-02 11:33:05 -0700</bug_when>
    <thetext>Created attachment 434778
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1781385</commentid>
    <comment_count>11</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-08-02 14:09:59 -0700</bug_when>
    <thetext>Committed r280556 (240180@main): &lt;https://commits.webkit.org/240180@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 434778.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>434645</attachid>
            <date>2021-07-30 10:31:32 -0700</date>
            <delta_ts>2021-08-02 00:47:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-228649-20210730193130.patch</filename>
            <type>text/plain</type>
            <size>40369</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgwMzc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGYxN2JmM2U0ZWIzZTYzZDdl
MjdkNDAzY2E5YzMxYjM0YTg2MzZiYjEuLjQ2OTRmMTYxOWU5YmRiMGI3NTgyMjBlOTZkZWVmZTBl
MjQwZDA2MjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTQgQEAKKzIwMjEtMDctMzAgIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEF0dHJpYnV0ZSBudyBjb25uZWN0
aW9ucyB0byB0aGUgcGFnZSBidW5kbGUgaWRlbnRpZmllcgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI4NjQ5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU2VuZCBwYWdlIGlkZW50aWZpZXIgZnJvbSBXZWJQ
cm9jZXNzIHRvIE5ldHdvcmtQcm9jZXNzIHdoZW4gY3JlYXRpbmcgYSBXZWJSVEMgc29ja2V0Lgor
ICAgICAgICBVc2UgcGFnZSBpZGVudGlmaWVyIHRvIGdldCB0aGUgYnVuZGxlIGlkZW50aWZpZXIu
CisgICAgICAgIEZvciB0aGF0IHB1cnBvc2UsIHdlIG5lZWQgdG8gaG9wIHRvIG1haW4gdGhyZWFk
IHRvIGdldCBpdCwgdGhlbiBnbyBiYWNrIHRvIHJ0YyB0aHJlYWQgdG8gY3JlYXRlIGl0LgorICAg
ICAgICBXZSB0aGVuIG1ha2UgdXNlIG9mIG53X3BhcmFtZXRlcnNfc2V0X3NvdXJjZV9hcHBsaWNh
dGlvbl9ieV9idW5kbGVfaWQgdG8gc2V0IHRoZSBidW5kbGUgaWRlbnRpZmllciBvbiBUQ1AgYW5k
IFVEUCBjb25uZWN0aW9ucy4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNz
aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Nlc3Npb246OmF0dHJpYnV0ZWRCdW5k
bGVJZGVudGlmaWVyRnJvbVBhZ2VJZGVudGlmaWVyIGNvbnN0KToKKyAgICAgICAgKiBOZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NvY29h
L05ldHdvcmtTZXNzaW9uQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9u
Q29jb2E6OmFkZFdlYlBhZ2VOZXR3b3JrUGFyYW1ldGVycyk6CisgICAgICAgIChXZWJLaXQ6Ok5l
dHdvcmtTZXNzaW9uQ29jb2E6OnJlbW92ZVdlYlBhZ2VOZXR3b3JrUGFyYW1ldGVycyk6CisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlci5jcHA6CisgICAg
ICAgIChXZWJLaXQ6Ok5ldHdvcmtSVENQcm92aWRlcjo6Y3JlYXRlVURQU29ja2V0KToKKyAgICAg
ICAgKFdlYktpdDo6TmV0d29ya1JUQ1Byb3ZpZGVyOjpjcmVhdGVTZXJ2ZXJUQ1BTb2NrZXQpOgor
ICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUlRDUHJvdmlkZXI6OmNyZWF0ZUNsaWVudFRDUFNvY2tl
dCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlci5o
OgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIubWVz
c2FnZXMuaW46CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENUQ1BT
b2NrZXRDb2NvYS5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRD
VENQU29ja2V0Q29jb2EubW06CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSVENUQ1BTb2NrZXRD
b2NvYTo6Y3JlYXRlQ2xpZW50VENQU29ja2V0KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1JU
Q1RDUFNvY2tldENvY29hOjpOZXR3b3JrUlRDVENQU29ja2V0Q29jb2EpOgorICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDVURQU29ja2V0Q29jb2EuaDoKKyAgICAgICAg
KiBOZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1VEUFNvY2tldENvY29hLm1tOgorICAg
ICAgICAoV2ViS2l0OjpOZXR3b3JrUlRDVURQU29ja2V0Q29jb2FDb25uZWN0aW9uczo6Y3JlYXRl
KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1JUQ1VEUFNvY2tldENvY29hOjpjcmVhdGVVRFBT
b2NrZXQpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUlRDVURQU29ja2V0Q29jb2E6Ok5ldHdv
cmtSVENVRFBTb2NrZXRDb2NvYSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSVENVRFBTb2Nr
ZXRDb2NvYUNvbm5lY3Rpb25zOjpOZXR3b3JrUlRDVURQU29ja2V0Q29jb2FDb25uZWN0aW9ucyk6
CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSVENVRFBTb2NrZXRDb2NvYUNvbm5lY3Rpb25zOjpj
b25maWd1cmVQYXJhbWV0ZXJzKToKKyAgICAgICAgKiBQbGF0Zm9ybS9zcGkvQ29jb2EvTldQYXJh
bWV0ZXJzU1BJLmg6CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5j
cHA6CisgICAgICAgIChXZWJLaXQ6OlJUQ1NvY2tldEZhY3Rvcnk6OlJUQ1NvY2tldEZhY3Rvcnkp
OgorICAgICAgICAoV2ViS2l0OjpSVENTb2NrZXRGYWN0b3J5OjpDcmVhdGVVZHBTb2NrZXQpOgor
ICAgICAgICAoV2ViS2l0OjpSVENTb2NrZXRGYWN0b3J5OjpDcmVhdGVTZXJ2ZXJUY3BTb2NrZXQp
OgorICAgICAgICAoV2ViS2l0OjpSVENTb2NrZXRGYWN0b3J5OjpDcmVhdGVDbGllbnRUY3BTb2Nr
ZXQpOgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENQcm92aWRlcjo6Y3JlYXRlU29ja2V0RmFj
dG9yeSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENQcm92
aWRlci5oOgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENQcm92aWRlcjo6TGliV2ViUlRDUHJv
dmlkZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDU29j
a2V0RmFjdG9yeS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkxpYldlYlJUQ1NvY2tldEZhY3Rvcnk6
OmNyZWF0ZVNlcnZlclRjcFNvY2tldCk6CisgICAgICAgIChXZWJLaXQ6OkxpYldlYlJUQ1NvY2tl
dEZhY3Rvcnk6OmNyZWF0ZVVkcFNvY2tldCk6CisgICAgICAgIChXZWJLaXQ6OkxpYldlYlJUQ1Nv
Y2tldEZhY3Rvcnk6OmNyZWF0ZUNsaWVudFRjcFNvY2tldCk6CisgICAgICAgICogV2ViUHJvY2Vz
cy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXRGYWN0b3J5Lmg6CisKIDIwMjEtMDctMzAg
IFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIEF0dHJpYnV0ZSBu
dyBjb25uZWN0aW9ucyB0byB0aGUgc291cmNlIGFwcGxpY2F0aW9uCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uY3BwCmluZGV4IDVkOWI5YmYyMjY0MzEy
NzBmZjA2MTY2MDhkZmIxNTVlOGMxNmUzYmMuLmFjMGM5YTY2NjBhOTBlZjEwOWY2MDgzOTBhMGUy
YzMwM2RjM2RjOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Nlc3Npb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Nlc3Npb24uY3BwCkBAIC00MDYsNCArNDA2LDkgQEAgTmV0d29ya0xvYWRTY2hlZHVsZXImIE5l
dHdvcmtTZXNzaW9uOjpuZXR3b3JrTG9hZFNjaGVkdWxlcigpCiAgICAgcmV0dXJuICptX25ldHdv
cmtMb2FkU2NoZWR1bGVyOwogfQogCitTdHJpbmcgTmV0d29ya1Nlc3Npb246OmF0dHJpYnV0ZWRC
dW5kbGVJZGVudGlmaWVyRnJvbVBhZ2VJZGVudGlmaWVyKFdlYlBhZ2VQcm94eUlkZW50aWZpZXIg
aWRlbnRpZmllcikgY29uc3QKK3sKKyAgICByZXR1cm4gbV9hdHRyaWJ1dGVkQnVuZGxlSWRlbnRp
ZmllckZyb21QYWdlSWRlbnRpZmllcnMuZ2V0KGlkZW50aWZpZXIpOworfQorCiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Nlc3Npb24uaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Np
b24uaAppbmRleCAwZGNmYjI3Y2MyZmE4NWQyNGZiM2I1MjBhNzUxNTkxZWUzMDEyMGU3Li43ZGE5
NWU5NzBiZTk1M2NmYmVlZGRiYjc5ZDE0OTY0M2UzYTJlODhiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmgKKysrIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5oCkBAIC0xNzcsNiArMTc3LDggQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgdm9pZCByZW1vdmVXZWJQYWdlTmV0d29ya1BhcmFtZXRlcnMoV2Vi
UGFnZVByb3h5SWRlbnRpZmllcikgeyB9CiAgICAgdmlydHVhbCBzaXplX3QgY291bnROb25EZWZh
dWx0U2Vzc2lvblNldHMoKSBjb25zdCB7IHJldHVybiAwOyB9CiAKKyAgICBTdHJpbmcgYXR0cmli
dXRlZEJ1bmRsZUlkZW50aWZpZXJGcm9tUGFnZUlkZW50aWZpZXIoV2ViUGFnZVByb3h5SWRlbnRp
ZmllcikgY29uc3Q7CisKIHByb3RlY3RlZDoKICAgICBOZXR3b3JrU2Vzc2lvbihOZXR3b3JrUHJv
Y2VzcyYsIGNvbnN0IE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzJik7CiAKQEAgLTIy
OCw2ICsyMzAsNyBAQCBwcm90ZWN0ZWQ6CiAjZW5kaWYKIAogICAgIEhhc2hTZXQ8c3RkOjp1bmlx
dWVfcHRyPFByaXZhdGVDbGlja01lYXN1cmVtZW50TmV0d29ya0xvYWRlcj4+IG1fcHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnROZXR3b3JrTG9hZGVyczsKKyAgICBIYXNoTWFwPFdlYlBhZ2VQcm94eUlk
ZW50aWZpZXIsIFN0cmluZz4gbV9hdHRyaWJ1dGVkQnVuZGxlSWRlbnRpZmllckZyb21QYWdlSWRl
bnRpZmllcnM7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbSBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbQpp
bmRleCBjODM3ZWU1YWVlZTg2ZjY0OGEzYzc2NjM4N2UyNTg4ZTQ5ZWFmODIyLi5hNDM4MWQwZjE5
YjAyNWFlNmMwZGFlMWZlMmI5ZGQ3NmQxMjA2YTIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW0KKysrIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tCkBAIC0x
NzYwLDExICsxNzYwLDE0IEBAIHZvaWQgTmV0d29ya1Nlc3Npb25Db2NvYTo6YWRkV2ViUGFnZU5l
dHdvcmtQYXJhbWV0ZXJzKFdlYlBhZ2VQcm94eUlkZW50aWZpZXIgcGFnCiAjZW5kaWYKICAgICBp
bml0aWFsaXplTlNVUkxTZXNzaW9uc0luU2V0KGFkZFJlc3VsdDIuaXRlcmF0b3ItPnZhbHVlLmdl
dCgpLCBjb25maWd1cmF0aW9uLmdldCgpKTsKICAgICBhZGRSZXN1bHQxLml0ZXJhdG9yLT52YWx1
ZSA9IG1ha2VXZWFrUHRyKGFkZFJlc3VsdDIuaXRlcmF0b3ItPnZhbHVlLmdldCgpKTsKKworICAg
IG1fYXR0cmlidXRlZEJ1bmRsZUlkZW50aWZpZXJGcm9tUGFnZUlkZW50aWZpZXJzLmFkZChwYWdl
SUQsIHBhcmFtZXRlcnMuYXR0cmlidXRlZEJ1bmRsZUlkZW50aWZpZXIoKSk7CiB9CiAKIHZvaWQg
TmV0d29ya1Nlc3Npb25Db2NvYTo6cmVtb3ZlV2ViUGFnZU5ldHdvcmtQYXJhbWV0ZXJzKFdlYlBh
Z2VQcm94eUlkZW50aWZpZXIgcGFnZUlEKQogewogICAgIG1fcGVyUGFnZVNlc3Npb25TZXRzLnJl
bW92ZShwYWdlSUQpOworICAgIG1fYXR0cmlidXRlZEJ1bmRsZUlkZW50aWZpZXJGcm9tUGFnZUlk
ZW50aWZpZXJzLnJlbW92ZShwYWdlSUQpOwogfQogCiBzaXplX3QgTmV0d29ya1Nlc3Npb25Db2Nv
YTo6Y291bnROb25EZWZhdWx0U2Vzc2lvblNldHMoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVyLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlci5jcHAK
aW5kZXggOThiMzA2ZWM1MDM2ZjZhOWNmZWVkMmRlYjA3YTE5YTM0NTE2Y2NhNy4uZmRlNjg0NjJl
OGZhYmI1MDQ5MWM2ODYxYTYwZWY1MDU5NjNlYzZkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIuY3BwCkBA
IC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3MuaCIKICNpbmNsdWRlICJO
ZXR3b3JrUlRDUHJvdmlkZXJNZXNzYWdlcy5oIgogI2luY2x1ZGUgIk5ldHdvcmtSVENSZXNvbHZl
ci5oIgorI2luY2x1ZGUgIk5ldHdvcmtTZXNzaW9uLmgiCiAjaW5jbHVkZSAiUlRDUGFja2V0T3B0
aW9ucy5oIgogI2luY2x1ZGUgIldlYlJUQ1Jlc29sdmVyTWVzc2FnZXMuaCIKICNpbmNsdWRlIDxX
ZWJDb3JlL0xpYldlYlJUQ01hY3Jvcy5oPgpAQCAtMTM1LDE0ICsxMzYsMjcgQEAgdm9pZCBOZXR3
b3JrUlRDUHJvdmlkZXI6OmNyZWF0ZVNvY2tldChMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyIGlk
ZW50aWZpZXIsIHN0ZDoKICAgICBhZGRTb2NrZXQoaWRlbnRpZmllciwgbWFrZVVuaXF1ZTxMaWJX
ZWJSVENTb2NrZXRDbGllbnQ+KGlkZW50aWZpZXIsICp0aGlzLCBXVEZNb3ZlKHNvY2tldCksIHR5
cGUsIFdURk1vdmUoY29ubmVjdGlvbikpKTsKIH0KIAotdm9pZCBOZXR3b3JrUlRDUHJvdmlkZXI6
OmNyZWF0ZVVEUFNvY2tldChMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNv
bnN0IFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MmIGFkZHJlc3MsIHVpbnQxNl90IG1pblBvcnQs
IHVpbnQxNl90IG1heFBvcnQsIGJvb2wgaXNGaXJzdFBhcnR5LCBib29sIGlzUmVsYXlEaXNhYmxl
ZCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mJiBkb21haW4pCit2b2lkIE5ldHdvcmtSVENQ
cm92aWRlcjo6Y3JlYXRlVURQU29ja2V0KExpYldlYlJUQ1NvY2tldElkZW50aWZpZXIgaWRlbnRp
ZmllciwgY29uc3QgUlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyYgYWRkcmVzcywgdWludDE2X3Qg
bWluUG9ydCwgdWludDE2X3QgbWF4UG9ydCwgV2ViUGFnZVByb3h5SWRlbnRpZmllciBwYWdlSWRl
bnRpZmllciwgYm9vbCBpc0ZpcnN0UGFydHksIGJvb2wgaXNSZWxheURpc2FibGVkLCBXZWJDb3Jl
OjpSZWdpc3RyYWJsZURvbWFpbiYmIGRvbWFpbikKIHsKICNpZiBQTEFURk9STShDT0NPQSkKICAg
ICBpZiAobV9wbGF0Zm9ybVVEUFNvY2tldHNFbmFibGVkKSB7Ci0gICAgICAgIGlmIChhdXRvIHNv
Y2tldCA9IE5ldHdvcmtSVENVRFBTb2NrZXRDb2NvYTo6Y3JlYXRlVURQU29ja2V0KGlkZW50aWZp
ZXIsICp0aGlzLCBhZGRyZXNzLnZhbHVlLCBtaW5Qb3J0LCBtYXhQb3J0LCBtX2lwY0Nvbm5lY3Rp
b24uY29weVJlZigpLCBpc0ZpcnN0UGFydHksIGlzUmVsYXlEaXNhYmxlZCwgV1RGTW92ZShkb21h
aW4pKSkgewotICAgICAgICAgICAgYWRkU29ja2V0KGlkZW50aWZpZXIsIFdURk1vdmUoc29ja2V0
KSk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KKyAgICAgICAgY2FsbE9uTWFpblJ1
bkxvb3AoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgaWRlbnRpZmllciwg
YWRkcmVzcyA9IFJUQ05ldHdvcms6Omlzb2xhdGVkQ29weShhZGRyZXNzLnZhbHVlKSwgbWluUG9y
dCwgbWF4UG9ydCwgcGFnZUlkZW50aWZpZXIsIGlzRmlyc3RQYXJ0eSwgaXNSZWxheURpc2FibGVk
LCBkb21haW4gPSBkb21haW4uaXNvbGF0ZWRDb3B5KCldKCkgbXV0YWJsZSB7CisgICAgICAgICAg
ICBpZiAoIW1fY29ubmVjdGlvbikKKyAgICAgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAg
ICAgIGF1dG8qIHNlc3Npb24gPSBtX2Nvbm5lY3Rpb24tPm5ldHdvcmtTZXNzaW9uKCk7CisgICAg
ICAgICAgICBpZiAoIXNlc3Npb24pIHsKKyAgICAgICAgICAgICAgICBtX2Nvbm5lY3Rpb24tPmNv
bm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpMaWJXZWJSVENOZXR3b3JrOjpTaWduYWxDbG9zZShp
ZGVudGlmaWVyLCAxKSwgMCk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAg
fQorCisgICAgICAgICAgICBjYWxsT25SVENOZXR3b3JrVGhyZWFkKFt0aGlzLCBpZGVudGlmaWVy
LCBhZGRyZXNzID0gV1RGTW92ZShhZGRyZXNzKSwgbWluUG9ydCwgbWF4UG9ydCwgYXR0cmlidXRl
ZEJ1bmRsZUlkZW50aWZpZXIgPSBzZXNzaW9uLT5hdHRyaWJ1dGVkQnVuZGxlSWRlbnRpZmllckZy
b21QYWdlSWRlbnRpZmllcihwYWdlSWRlbnRpZmllcikuaXNvbGF0ZWRDb3B5KCksIGlzRmlyc3RQ
YXJ0eSwgaXNSZWxheURpc2FibGVkLCBkb21haW4gPSBXVEZNb3ZlKGRvbWFpbildKCkgbXV0YWJs
ZSB7CisgICAgICAgICAgICAgICAgaWYgKGF1dG8gc29ja2V0ID0gTmV0d29ya1JUQ1VEUFNvY2tl
dENvY29hOjpjcmVhdGVVRFBTb2NrZXQoaWRlbnRpZmllciwgKnRoaXMsIGFkZHJlc3MsIG1pblBv
cnQsIG1heFBvcnQsIG1faXBjQ29ubmVjdGlvbi5jb3B5UmVmKCksIFdURk1vdmUoYXR0cmlidXRl
ZEJ1bmRsZUlkZW50aWZpZXIpLCBpc0ZpcnN0UGFydHksIGlzUmVsYXlEaXNhYmxlZCwgICBXVEZN
b3ZlKGRvbWFpbikpKSB7CisgICAgICAgICAgICAgICAgICAgIGFkZFNvY2tldChpZGVudGlmaWVy
LCBXVEZNb3ZlKHNvY2tldCkpOworICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOwogICAgIH0KICNlbmRpZgog
CkBAIC0xNzcsOSArMTkxLDkgQEAgcnRjOjpQcm94eUluZm8gTmV0d29ya1JUQ1Byb3ZpZGVyOjpw
cm94eUluZm9Gcm9tU2Vzc2lvbihjb25zdCBSVENOZXR3b3JrOjpTb2NrZXQKIH0KICNlbmRpZgog
Ci12b2lkIE5ldHdvcmtSVENQcm92aWRlcjo6Y3JlYXRlQ2xpZW50VENQU29ja2V0KExpYldlYlJU
Q1NvY2tldElkZW50aWZpZXIgaWRlbnRpZmllciwgY29uc3QgUlRDTmV0d29yazo6U29ja2V0QWRk
cmVzcyYgbG9jYWxBZGRyZXNzLCBjb25zdCBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzJiByZW1v
dGVBZGRyZXNzLCBTdHJpbmcmJiB1c2VyQWdlbnQsIGludCBvcHRpb25zKQordm9pZCBOZXR3b3Jr
UlRDUHJvdmlkZXI6OmNyZWF0ZUNsaWVudFRDUFNvY2tldChMaWJXZWJSVENTb2NrZXRJZGVudGlm
aWVyIGlkZW50aWZpZXIsIGNvbnN0IFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MmIGxvY2FsQWRk
cmVzcywgY29uc3QgUlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyYgcmVtb3RlQWRkcmVzcywgU3Ry
aW5nJiYgdXNlckFnZW50LCBpbnQgb3B0aW9ucywgV2ViUGFnZVByb3h5SWRlbnRpZmllciBwYWdl
SWRlbnRpZmllcikKIHsKLSAgICBjYWxsT25NYWluUnVuTG9vcChbdGhpcywgcHJvdGVjdGVkVGhp
cyA9IG1ha2VSZWYoKnRoaXMpLCBpZGVudGlmaWVyLCBsb2NhbEFkZHJlc3MsIHJlbW90ZUFkZHJl
c3MsIHVzZXJBZ2VudCA9IFdURk1vdmUodXNlckFnZW50KS5pc29sYXRlZENvcHkoKSwgb3B0aW9u
c10oKSBtdXRhYmxlIHsKKyAgICBjYWxsT25NYWluUnVuTG9vcChbdGhpcywgcHJvdGVjdGVkVGhp
cyA9IG1ha2VSZWYoKnRoaXMpLCBpZGVudGlmaWVyLCBsb2NhbEFkZHJlc3MsIHJlbW90ZUFkZHJl
c3MsIHVzZXJBZ2VudCA9IFdURk1vdmUodXNlckFnZW50KS5pc29sYXRlZENvcHkoKSwgb3B0aW9u
cywgcGFnZUlkZW50aWZpZXJdKCkgbXV0YWJsZSB7CiAgICAgICAgIGlmICghbV9jb25uZWN0aW9u
KQogICAgICAgICAgICAgcmV0dXJuOwogCkBAIC0xODgsMTAgKzIwMiwxMSBAQCB2b2lkIE5ldHdv
cmtSVENQcm92aWRlcjo6Y3JlYXRlQ2xpZW50VENQU29ja2V0KExpYldlYlJUQ1NvY2tldElkZW50
aWZpZXIgaWRlbnRpZgogICAgICAgICAgICAgbV9jb25uZWN0aW9uLT5jb25uZWN0aW9uKCkuc2Vu
ZChNZXNzYWdlczo6TGliV2ViUlRDTmV0d29yazo6U2lnbmFsQ2xvc2UoaWRlbnRpZmllciwgMSks
IDApOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9Ci0gICAgICAgIGNhbGxPblJUQ05l
dHdvcmtUaHJlYWQoW3RoaXMsIGlkZW50aWZpZXIsIGxvY2FsQWRkcmVzcyA9IFJUQ05ldHdvcms6
Omlzb2xhdGVkQ29weShsb2NhbEFkZHJlc3MudmFsdWUpLCByZW1vdGVBZGRyZXNzID0gUlRDTmV0
d29yazo6aXNvbGF0ZWRDb3B5KHJlbW90ZUFkZHJlc3MudmFsdWUpLCBwcm94eUluZm8gPSBwcm94
eUluZm9Gcm9tU2Vzc2lvbihyZW1vdGVBZGRyZXNzLCAqc2Vzc2lvbiksIHVzZXJBZ2VudCA9IFdU
Rk1vdmUodXNlckFnZW50KS5pc29sYXRlZENvcHkoKSwgb3B0aW9uc10oKSBtdXRhYmxlIHsKKwor
ICAgICAgICBjYWxsT25SVENOZXR3b3JrVGhyZWFkKFt0aGlzLCBpZGVudGlmaWVyLCBsb2NhbEFk
ZHJlc3MgPSBSVENOZXR3b3JrOjppc29sYXRlZENvcHkobG9jYWxBZGRyZXNzLnZhbHVlKSwgcmVt
b3RlQWRkcmVzcyA9IFJUQ05ldHdvcms6Omlzb2xhdGVkQ29weShyZW1vdGVBZGRyZXNzLnZhbHVl
KSwgcHJveHlJbmZvID0gcHJveHlJbmZvRnJvbVNlc3Npb24ocmVtb3RlQWRkcmVzcywgKnNlc3Np
b24pLCB1c2VyQWdlbnQgPSBXVEZNb3ZlKHVzZXJBZ2VudCkuaXNvbGF0ZWRDb3B5KCksIG9wdGlv
bnMsIGF0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVyID0gc2Vzc2lvbi0+YXR0cmlidXRlZEJ1bmRs
ZUlkZW50aWZpZXJGcm9tUGFnZUlkZW50aWZpZXIocGFnZUlkZW50aWZpZXIpLmlzb2xhdGVkQ29w
eSgpXSgpIG11dGFibGUgewogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgICAgICAgICAgaWYgKG1f
cGxhdGZvcm1UQ1BTb2NrZXRzRW5hYmxlZCkgewotICAgICAgICAgICAgICAgIGlmIChhdXRvIHNv
Y2tldCA9IE5ldHdvcmtSVENUQ1BTb2NrZXRDb2NvYTo6Y3JlYXRlQ2xpZW50VENQU29ja2V0KGlk
ZW50aWZpZXIsICp0aGlzLCByZW1vdGVBZGRyZXNzLCBvcHRpb25zLCBtX2lwY0Nvbm5lY3Rpb24u
Y29weVJlZigpKSkgeworICAgICAgICAgICAgICAgIGlmIChhdXRvIHNvY2tldCA9IE5ldHdvcmtS
VENUQ1BTb2NrZXRDb2NvYTo6Y3JlYXRlQ2xpZW50VENQU29ja2V0KGlkZW50aWZpZXIsICp0aGlz
LCByZW1vdGVBZGRyZXNzLCBvcHRpb25zLCBhdHRyaWJ1dGVkQnVuZGxlSWRlbnRpZmllciwgbV9p
cGNDb25uZWN0aW9uLmNvcHlSZWYoKSkpIHsKICAgICAgICAgICAgICAgICAgICAgYWRkU29ja2V0
KGlkZW50aWZpZXIsIFdURk1vdmUoc29ja2V0KSk7CiAgICAgICAgICAgICAgICAgICAgIHJldHVy
bjsKICAgICAgICAgICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlci5oCmluZGV4IGJmZmZlYmM0YWU5Y2Yz
ZmQ4YTUxZWQ1NzgxNDBjZGU5ODM3YWFhMzAuLmE4NDMwOTRjZDExYmIwYzAzMjliMzVjOWVhYzM5
ZDhjNDAxODJlMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2Vi
cnRjL05ldHdvcmtSVENQcm92aWRlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlci5oCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVk
ZSAiTGliV2ViUlRDUmVzb2x2ZXJJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiTmV0d29ya1JUQ01v
bml0b3IuaCIKICNpbmNsdWRlICJSVENOZXR3b3JrLmgiCisjaW5jbHVkZSAiV2ViUGFnZVByb3h5
SWRlbnRpZmllci5oIgogI2luY2x1ZGUgPFdlYkNvcmUvTGliV2ViUlRDTWFjcm9zLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9MaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8d2Vi
cnRjL3AycC9iYXNlL2Jhc2ljX3BhY2tldF9zb2NrZXRfZmFjdG9yeS5oPgpAQCAtMTEzLDggKzEx
NCw4IEBAIHByaXZhdGU6CiAgICAgZXhwbGljaXQgTmV0d29ya1JUQ1Byb3ZpZGVyKE5ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzJik7CiAgICAgdm9pZCBzdGFydExpc3RlbmluZ0ZvcklQQygp
OwogCi0gICAgdm9pZCBjcmVhdGVVRFBTb2NrZXQoV2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRl
bnRpZmllciwgY29uc3QgUlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyYsIHVpbnQxNl90LCB1aW50
MTZfdCwgYm9vbCBpc0ZpcnN0UGFydHksIGJvb2wgaXNSZWxheURpc2FibGVkLCBXZWJDb3JlOjpS
ZWdpc3RyYWJsZURvbWFpbiYmKTsKLSAgICB2b2lkIGNyZWF0ZUNsaWVudFRDUFNvY2tldChXZWJD
b3JlOjpMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyLCBjb25zdCBSVENOZXR3b3JrOjpTb2NrZXRB
ZGRyZXNzJiwgY29uc3QgUlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyYsIFN0cmluZyYmIHVzZXJB
Z2VudCwgaW50KTsKKyAgICB2b2lkIGNyZWF0ZVVEUFNvY2tldChXZWJDb3JlOjpMaWJXZWJSVENT
b2NrZXRJZGVudGlmaWVyLCBjb25zdCBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzJiwgdWludDE2
X3QsIHVpbnQxNl90LCBXZWJQYWdlUHJveHlJZGVudGlmaWVyLCBib29sIGlzRmlyc3RQYXJ0eSwg
Ym9vbCBpc1JlbGF5RGlzYWJsZWQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiYpOworICAg
IHZvaWQgY3JlYXRlQ2xpZW50VENQU29ja2V0KFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50
aWZpZXIsIGNvbnN0IFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MmLCBjb25zdCBSVENOZXR3b3Jr
OjpTb2NrZXRBZGRyZXNzJiwgU3RyaW5nJiYgdXNlckFnZW50LCBpbnQsIFdlYlBhZ2VQcm94eUlk
ZW50aWZpZXIpOwogICAgIHZvaWQgY3JlYXRlU2VydmVyVENQU29ja2V0KFdlYkNvcmU6OkxpYldl
YlJUQ1NvY2tldElkZW50aWZpZXIsIGNvbnN0IFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MmLCB1
aW50MTZfdCBtaW5Qb3J0LCB1aW50MTZfdCBtYXhQb3J0LCBpbnQpOwogICAgIHZvaWQgd3JhcE5l
d1RDUENvbm5lY3Rpb24oV2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmllciBpZGVudGlm
aWVyLCBXZWJDb3JlOjpMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyIG5ld0Nvbm5lY3Rpb25Tb2Nr
ZXRJZGVudGlmaWVyKTsKICAgICB2b2lkIHNlbmRUb1NvY2tldChXZWJDb3JlOjpMaWJXZWJSVENT
b2NrZXRJZGVudGlmaWVyLCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmLCBSVENOZXR3b3JrOjpT
b2NrZXRBZGRyZXNzJiYsIFJUQ1BhY2tldE9wdGlvbnMmJik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIubWVzc2FnZXMu
aW4gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlk
ZXIubWVzc2FnZXMuaW4KaW5kZXggMTk1NDA5NmFiMTU2MWE3YTdmZGY1YzUwZTNhMzAzMjQ4NjQ2
ZTM2Ni4uZTQxNzc1NTczNGM4MzA1MTU1ZGFmMGZjNWE0NWRmNTg0ZTg3Y2JlNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVy
Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05l
dHdvcmtSVENQcm92aWRlci5tZXNzYWdlcy5pbgpAQCAtMjMsOSArMjMsOSBAQAogI2lmIFVTRShM
SUJXRUJSVEMpCiAKIG1lc3NhZ2VzIC0+IE5ldHdvcmtSVENQcm92aWRlciB7Ci0gICAgQ3JlYXRl
VURQU29ja2V0KFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50aWZpZXIgaWRlbnRpZmllciwg
V2ViS2l0OjpSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzIGxvY2FsQWRkcmVzcywgdWludDE2X3Qg
bWluUG9ydCwgdWludDE2X3QgbWF4UG9ydCwgYm9vbCBpc0ZpcnN0UGFydHksIGJvb2wgaXNSZWxh
eURpc2FibGVkLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiBkb21haW4pCisgICAgQ3JlYXRl
VURQU29ja2V0KFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50aWZpZXIgaWRlbnRpZmllciwg
V2ViS2l0OjpSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzIGxvY2FsQWRkcmVzcywgdWludDE2X3Qg
bWluUG9ydCwgdWludDE2X3QgbWF4UG9ydCwgV2ViS2l0OjpXZWJQYWdlUHJveHlJZGVudGlmaWVy
IHBhZ2VJZGVudGlmaWVyLCBib29sIGlzRmlyc3RQYXJ0eSwgYm9vbCBpc1JlbGF5RGlzYWJsZWQs
IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIGRvbWFpbikKICAgICBDcmVhdGVTZXJ2ZXJUQ1BT
b2NrZXQoV2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJL
aXQ6OlJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MgbG9jYWxBZGRyZXNzLCB1aW50MTZfdCBtaW5Q
b3J0LCB1aW50MTZfdCBtYXhQb3J0LCBpbnQgb3B0aW9ucykKLSAgICBDcmVhdGVDbGllbnRUQ1BT
b2NrZXQoV2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJL
aXQ6OlJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MgbG9jYWxBZGRyZXNzLCBXZWJLaXQ6OlJUQ05l
dHdvcms6OlNvY2tldEFkZHJlc3MgcmVtb3RlQWRkcmVzcywgU3RyaW5nIHVzZXJBZ2VudCwgaW50
IG9wdGlvbnMpCisgICAgQ3JlYXRlQ2xpZW50VENQU29ja2V0KFdlYkNvcmU6OkxpYldlYlJUQ1Nv
Y2tldElkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViS2l0OjpSVENOZXR3b3JrOjpTb2NrZXRBZGRy
ZXNzIGxvY2FsQWRkcmVzcywgV2ViS2l0OjpSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzIHJlbW90
ZUFkZHJlc3MsIFN0cmluZyB1c2VyQWdlbnQsIGludCBvcHRpb25zLCBXZWJLaXQ6OldlYlBhZ2VQ
cm94eUlkZW50aWZpZXIgcGFnZUlkZW50aWZpZXIpCiAgICAgV3JhcE5ld1RDUENvbm5lY3Rpb24o
V2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpM
aWJXZWJSVENTb2NrZXRJZGVudGlmaWVyIG5ld0Nvbm5lY3Rpb25Tb2NrZXRJZGVudGlmaWVyKQog
CiAgICAgdm9pZCBTZXRQbGF0Zm9ybVRDUFNvY2tldHNFbmFibGVkKGJvb2wgZW5hYmxlZCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENU
Q1BTb2NrZXRDb2NvYS5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0
d29ya1JUQ1RDUFNvY2tldENvY29hLmgKaW5kZXggM2U1ZmE5NGMzMTQ3ZDU1N2Y1MWRlMDE3ZTQ2
OGNjMTQ3OGQ4YWQ4OS4uN2YzNmE1YmY3YWE5ZDEyOGFlY2Y3ZWMwZTNlZDdiNzljZmUxM2YwOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JU
Q1RDUFNvY2tldENvY29hLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJy
dGMvTmV0d29ya1JUQ1RDUFNvY2tldENvY29hLmgKQEAgLTM5LDkgKzM5LDkgQEAgbmFtZXNwYWNl
IFdlYktpdCB7CiBjbGFzcyBOZXR3b3JrUlRDVENQU29ja2V0Q29jb2EgZmluYWwgOiBwdWJsaWMg
TmV0d29ya1JUQ1Byb3ZpZGVyOjpTb2NrZXQgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVE
OwogcHVibGljOgotICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8TmV0d29ya1JUQ1Byb3ZpZGVy
OjpTb2NrZXQ+IGNyZWF0ZUNsaWVudFRDUFNvY2tldChXZWJDb3JlOjpMaWJXZWJSVENTb2NrZXRJ
ZGVudGlmaWVyLCBOZXR3b3JrUlRDUHJvdmlkZXImLCBjb25zdCBydGM6OlNvY2tldEFkZHJlc3Mm
LCBpbnQgb3B0aW9ucywgUmVmPElQQzo6Q29ubmVjdGlvbj4mJik7CisgICAgc3RhdGljIHN0ZDo6
dW5pcXVlX3B0cjxOZXR3b3JrUlRDUHJvdmlkZXI6OlNvY2tldD4gY3JlYXRlQ2xpZW50VENQU29j
a2V0KFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50aWZpZXIsIE5ldHdvcmtSVENQcm92aWRl
ciYsIGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYsIGludCBvcHRpb25zLCBjb25zdCBTdHJpbmcm
IGF0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVyLCBSZWY8SVBDOjpDb25uZWN0aW9uPiYmKTsKIAot
ICAgIE5ldHdvcmtSVENUQ1BTb2NrZXRDb2NvYShXZWJDb3JlOjpMaWJXZWJSVENTb2NrZXRJZGVu
dGlmaWVyLCBOZXR3b3JrUlRDUHJvdmlkZXImLCBjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmLCBp
bnQgb3B0aW9ucywgUmVmPElQQzo6Q29ubmVjdGlvbj4mJik7CisgICAgTmV0d29ya1JUQ1RDUFNv
Y2tldENvY29hKFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50aWZpZXIsIE5ldHdvcmtSVENQ
cm92aWRlciYsIGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYsIGludCBvcHRpb25zLCBjb25zdCBT
dHJpbmcmIGF0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVyLCBSZWY8SVBDOjpDb25uZWN0aW9uPiYm
KTsKIAogcHJpdmF0ZToKICAgICAvLyBOZXR3b3JrUlRDUHJvdmlkZXI6OlNvY2tldC4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENUQ1BT
b2NrZXRDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdv
cmtSVENUQ1BTb2NrZXRDb2NvYS5tbQppbmRleCBmYWZmZDJjOWZiOWQyOWU1MDJkYTk5YTk5MzJk
NDQwYjViY2ZiOTdhLi42MGQ2NGQzZjY1MjE5NDJjNGVkMTRmMzE3YmI1MmJlZWU4MDM5YjcyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRD
VENQU29ja2V0Q29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJy
dGMvTmV0d29ya1JUQ1RDUFNvY2tldENvY29hLm1tCkBAIC01MCwxMiArNTAsMTIgQEAgc3RhdGlj
IGRpc3BhdGNoX3F1ZXVlX3QgdGNwU29ja2V0UXVldWUoKQogICAgIHJldHVybiBxdWV1ZTsKIH0K
IAotc3RkOjp1bmlxdWVfcHRyPE5ldHdvcmtSVENQcm92aWRlcjo6U29ja2V0PiBOZXR3b3JrUlRD
VENQU29ja2V0Q29jb2E6OmNyZWF0ZUNsaWVudFRDUFNvY2tldChMaWJXZWJSVENTb2NrZXRJZGVu
dGlmaWVyIGlkZW50aWZpZXIsIE5ldHdvcmtSVENQcm92aWRlciYgcnRjUHJvdmlkZXIsIGNvbnN0
IHJ0Yzo6U29ja2V0QWRkcmVzcyYgcmVtb3RlQWRkcmVzcywgaW50IHRjcE9wdGlvbnMsIFJlZjxJ
UEM6OkNvbm5lY3Rpb24+JiYgY29ubmVjdGlvbikKK3N0ZDo6dW5pcXVlX3B0cjxOZXR3b3JrUlRD
UHJvdmlkZXI6OlNvY2tldD4gTmV0d29ya1JUQ1RDUFNvY2tldENvY29hOjpjcmVhdGVDbGllbnRU
Q1BTb2NrZXQoTGliV2ViUlRDU29ja2V0SWRlbnRpZmllciBpZGVudGlmaWVyLCBOZXR3b3JrUlRD
UHJvdmlkZXImIHJ0Y1Byb3ZpZGVyLCBjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmIHJlbW90ZUFk
ZHJlc3MsIGludCB0Y3BPcHRpb25zLCBjb25zdCBTdHJpbmcmIGF0dHJpYnV0ZWRCdW5kbGVJZGVu
dGlmaWVyLCBSZWY8SVBDOjpDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24pCiB7CiAgICAgLy8gRklY
TUU6IFdlIHNob3VsZCBtaWdyYXRlIHNzbHRjcCBjYW5kaWRhdGVzLCBtYXliZSBzdXBwb3J0IE9Q
VF9UTFNfSU5TRUNVUkUgYXMgd2VsbC4KICAgICBpZiAoKHRjcE9wdGlvbnMgJiBydGM6OlBhY2tl
dFNvY2tldEZhY3Rvcnk6Ok9QVF9UTFNfRkFLRSkgfHwgKHRjcE9wdGlvbnMgJiBydGM6OlBhY2tl
dFNvY2tldEZhY3Rvcnk6Ok9QVF9UTFNfSU5TRUNVUkUpKQogICAgICAgICByZXR1cm4gbnVsbHB0
cjsKLSAgICByZXR1cm4gbWFrZVVuaXF1ZTxOZXR3b3JrUlRDVENQU29ja2V0Q29jb2E+KGlkZW50
aWZpZXIsIHJ0Y1Byb3ZpZGVyLCByZW1vdGVBZGRyZXNzLCB0Y3BPcHRpb25zLCBXVEZNb3ZlKGNv
bm5lY3Rpb24pKTsKKyAgICByZXR1cm4gbWFrZVVuaXF1ZTxOZXR3b3JrUlRDVENQU29ja2V0Q29j
b2E+KGlkZW50aWZpZXIsIHJ0Y1Byb3ZpZGVyLCByZW1vdGVBZGRyZXNzLCB0Y3BPcHRpb25zLCBh
dHRyaWJ1dGVkQnVuZGxlSWRlbnRpZmllciwgV1RGTW92ZShjb25uZWN0aW9uKSk7CiB9CiAKIHN0
YXRpYyBpbmxpbmUgdm9pZCBwcm9jZXNzSW5jb21pbmdEYXRhKFJldGFpblB0cjxud19jb25uZWN0
aW9uX3Q+JiYgbndDb25uZWN0aW9uLCBGdW5jdGlvbjxWZWN0b3I8dWludDhfdD4oVmVjdG9yPHVp
bnQ4X3Q+JiYpPiYmIHByb2Nlc3NEYXRhLCBWZWN0b3I8dWludDhfdD4mJiBidWZmZXIgPSB7IH0p
CkBAIC04MCw3ICs4MCw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBwcm9jZXNzSW5jb21pbmdEYXRh
KFJldGFpblB0cjxud19jb25uZWN0aW9uX3Q+JiYgbndDb25uZWN0aW9uCiAgICAgfSkuZ2V0KCkp
OwogfQogCi1OZXR3b3JrUlRDVENQU29ja2V0Q29jb2E6Ok5ldHdvcmtSVENUQ1BTb2NrZXRDb2Nv
YShMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyIGlkZW50aWZpZXIsIE5ldHdvcmtSVENQcm92aWRl
ciYgcnRjUHJvdmlkZXIsIGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYgcmVtb3RlQWRkcmVzcywg
aW50IG9wdGlvbnMsIFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYgY29ubmVjdGlvbikKK05ldHdvcmtS
VENUQ1BTb2NrZXRDb2NvYTo6TmV0d29ya1JUQ1RDUFNvY2tldENvY29hKExpYldlYlJUQ1NvY2tl
dElkZW50aWZpZXIgaWRlbnRpZmllciwgTmV0d29ya1JUQ1Byb3ZpZGVyJiBydGNQcm92aWRlciwg
Y29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiByZW1vdGVBZGRyZXNzLCBpbnQgb3B0aW9ucywgY29u
c3QgU3RyaW5nJiBhdHRyaWJ1dGVkQnVuZGxlSWRlbnRpZmllciwgUmVmPElQQzo6Q29ubmVjdGlv
bj4mJiBjb25uZWN0aW9uKQogICAgIDogbV9pZGVudGlmaWVyKGlkZW50aWZpZXIpCiAgICAgLCBt
X3J0Y1Byb3ZpZGVyKHJ0Y1Byb3ZpZGVyKQogICAgICwgbV9jb25uZWN0aW9uKFdURk1vdmUoY29u
bmVjdGlvbikpCkBAIC05OCw2ICs5OCw4IEBAIE5ldHdvcmtSVENUQ1BTb2NrZXRDb2NvYTo6TmV0
d29ya1JUQ1RDUFNvY2tldENvY29hKExpYldlYlJUQ1NvY2tldElkZW50aWZpZXIgaWRlCiAKICAg
ICBpZiAoYXV0byB0b2tlbiA9IHJ0Y1Byb3ZpZGVyLnNvdXJjZUFwcGxpY2F0aW9uQXVkaXRUb2tl
bigpKQogICAgICAgICBud19wYXJhbWV0ZXJzX3NldF9zb3VyY2VfYXBwbGljYXRpb24odGNwVExT
LmdldCgpLCAqdG9rZW4pOworICAgIGlmICghYXR0cmlidXRlZEJ1bmRsZUlkZW50aWZpZXIuaXNF
bXB0eSgpKQorICAgICAgICBud19wYXJhbWV0ZXJzX3NldF9zb3VyY2VfYXBwbGljYXRpb25fYnlf
YnVuZGxlX2lkKHRjcFRMUy5nZXQoKSwgYXR0cmlidXRlZEJ1bmRsZUlkZW50aWZpZXIudXRmOCgp
LmRhdGEoKSk7CiAKICAgICBtX253Q29ubmVjdGlvbiA9IGFkb3B0TlMobndfY29ubmVjdGlvbl9j
cmVhdGUoaG9zdC5nZXQoKSwgdGNwVExTLmdldCgpKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENVRFBTb2NrZXRDb2NvYS5oIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1VEUFNvY2tldENv
Y29hLmgKaW5kZXggY2I5YzE5NWRlMWIyNmE2NjQ0YjE3MTRkMGZhNmVlMzNjNWEyNDIyOS4uNWQ2
NWNkMWQwOWUyNjM5NjY0NDNkZGNmNDQ1YTY4NDgwNDc2MWI4MSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1VEUFNvY2tldENvY29hLmgK
KysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1VEUFNv
Y2tldENvY29hLmgKQEAgLTYwLDkgKzYwLDkgQEAgY2xhc3MgTmV0d29ya1JUQ1VEUFNvY2tldENv
Y29hQ29ubmVjdGlvbnM7CiBjbGFzcyBOZXR3b3JrUlRDVURQU29ja2V0Q29jb2EgZmluYWwgOiBw
dWJsaWMgTmV0d29ya1JUQ1Byb3ZpZGVyOjpTb2NrZXQgewogICAgIFdURl9NQUtFX0ZBU1RfQUxM
T0NBVEVEOwogcHVibGljOgotICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8TmV0d29ya1JUQ1By
b3ZpZGVyOjpTb2NrZXQ+IGNyZWF0ZVVEUFNvY2tldChXZWJDb3JlOjpMaWJXZWJSVENTb2NrZXRJ
ZGVudGlmaWVyLCBOZXR3b3JrUlRDUHJvdmlkZXImLCBjb25zdCBydGM6OlNvY2tldEFkZHJlc3Mm
LCB1aW50MTZfdCBtaW5Qb3J0LCB1aW50MTZfdCBtYXhQb3J0LCBSZWY8SVBDOjpDb25uZWN0aW9u
PiYmLCBib29sIGlzRmlyc3RQYXJ0eSwgYm9vbCBpc1JlbGF5RGlzYWJsZWQsIGNvbnN0IFdlYkNv
cmU6OlJlZ2lzdHJhYmxlRG9tYWluJik7CisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxOZXR3
b3JrUlRDUHJvdmlkZXI6OlNvY2tldD4gY3JlYXRlVURQU29ja2V0KFdlYkNvcmU6OkxpYldlYlJU
Q1NvY2tldElkZW50aWZpZXIsIE5ldHdvcmtSVENQcm92aWRlciYsIGNvbnN0IHJ0Yzo6U29ja2V0
QWRkcmVzcyYsIHVpbnQxNl90IG1pblBvcnQsIHVpbnQxNl90IG1heFBvcnQsIFJlZjxJUEM6OkNv
bm5lY3Rpb24+JiYsIFN0cmluZyYmIGF0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVyLCBib29sIGlz
Rmlyc3RQYXJ0eSwgYm9vbCBpc1JlbGF5RGlzYWJsZWQsIGNvbnN0IFdlYkNvcmU6OlJlZ2lzdHJh
YmxlRG9tYWluJik7CiAKLSAgICBOZXR3b3JrUlRDVURQU29ja2V0Q29jb2EoV2ViQ29yZTo6TGli
V2ViUlRDU29ja2V0SWRlbnRpZmllciwgTmV0d29ya1JUQ1Byb3ZpZGVyJiwgY29uc3QgcnRjOjpT
b2NrZXRBZGRyZXNzJiwgUmVmPElQQzo6Q29ubmVjdGlvbj4mJiwgYm9vbCBpc0ZpcnN0UGFydHks
IGJvb2wgaXNSZWxheURpc2FibGVkLCBjb25zdCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYp
OworICAgIE5ldHdvcmtSVENVRFBTb2NrZXRDb2NvYShXZWJDb3JlOjpMaWJXZWJSVENTb2NrZXRJ
ZGVudGlmaWVyLCBOZXR3b3JrUlRDUHJvdmlkZXImLCBjb25zdCBydGM6OlNvY2tldEFkZHJlc3Mm
LCBSZWY8SVBDOjpDb25uZWN0aW9uPiYmLCBTdHJpbmcmJiBhdHRyaWJ1dGVkQnVuZGxlSWRlbnRp
ZmllciwgYm9vbCBpc0ZpcnN0UGFydHksIGJvb2wgaXNSZWxheURpc2FibGVkLCBjb25zdCBXZWJD
b3JlOjpSZWdpc3RyYWJsZURvbWFpbiYpOwogICAgIH5OZXR3b3JrUlRDVURQU29ja2V0Q29jb2Eo
KTsKIAogICAgIHZvaWQgc2V0TGlzdGVuaW5nUG9ydChpbnQpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1VEUFNvY2tldENvY29hLm1t
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1VEUFNvY2tl
dENvY29hLm1tCmluZGV4IGFkOGU1ZTQ1NGIzN2I3YThiM2I5YTZjMjAxZjA4ZGVmZWY4NmJiNTcu
LmNhY2YzOGZmNmQ1NTM3ODkxYjNmNTc0NjAxMzRhY2E2YTc5ZmY4ODcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENVRFBTb2NrZXRDb2Nv
YS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRD
VURQU29ja2V0Q29jb2EubW0KQEAgLTUzLDcgKzUzLDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7CiAKIGNsYXNzIE5ldHdvcmtSVENVRFBTb2NrZXRDb2NvYUNvbm5lY3Rpb25zIDogcHVibGlj
IFRocmVhZFNhZmVSZWZDb3VudGVkPE5ldHdvcmtSVENVRFBTb2NrZXRDb2NvYUNvbm5lY3Rpb25z
PiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxOZXR3b3JrUlRDVURQU29ja2V0Q29jb2FDb25u
ZWN0aW9ucz4gY3JlYXRlKFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50aWZpZXIgaWRlbnRp
ZmllciwgTmV0d29ya1JUQ1Byb3ZpZGVyJiBwcm92aWRlciwgY29uc3QgcnRjOjpTb2NrZXRBZGRy
ZXNzJiBhZGRyZXNzLCBSZWY8SVBDOjpDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24sIGJvb2wgaXNG
aXJzdFBhcnR5LCBib29sIGlzUmVsYXlEaXNhYmxlZCwgY29uc3QgV2ViQ29yZTo6UmVnaXN0cmFi
bGVEb21haW4mIGRvbWFpbikgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBOZXR3b3JrUlRDVURQU29j
a2V0Q29jb2FDb25uZWN0aW9ucyhpZGVudGlmaWVyLCBwcm92aWRlciwgYWRkcmVzcywgV1RGTW92
ZShjb25uZWN0aW9uKSwgaXNGaXJzdFBhcnR5LCBpc1JlbGF5RGlzYWJsZWQsIGRvbWFpbikpOyB9
CisgICAgc3RhdGljIFJlZjxOZXR3b3JrUlRDVURQU29ja2V0Q29jb2FDb25uZWN0aW9ucz4gY3Jl
YXRlKFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50aWZpZXIgaWRlbnRpZmllciwgTmV0d29y
a1JUQ1Byb3ZpZGVyJiBwcm92aWRlciwgY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiBhZGRyZXNz
LCBSZWY8SVBDOjpDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24sIFN0cmluZyYmIGF0dHJpYnV0ZWRC
dW5kbGVJZGVudGlmaWVyLCBib29sIGlzRmlyc3RQYXJ0eSwgYm9vbCBpc1JlbGF5RGlzYWJsZWQs
IGNvbnN0IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiBkb21haW4pIHsgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgTmV0d29ya1JUQ1VEUFNvY2tldENvY29hQ29ubmVjdGlvbnMoaWRlbnRpZmllciwg
cHJvdmlkZXIsIGFkZHJlc3MsIFdURk1vdmUoY29ubmVjdGlvbiksIFdURk1vdmUoYXR0cmlidXRl
ZEJ1bmRsZUlkZW50aWZpZXIpLCBpc0ZpcnN0UGFydHksIGlzUmVsYXlEaXNhYmxlZCwgZG9tYWlu
KSk7IH0KIAogICAgIHZvaWQgY2xvc2UoKTsKICAgICB2b2lkIHNldE9wdGlvbihpbnQgb3B0aW9u
LCBpbnQgdmFsdWUpOwpAQCAtNjEsNyArNjEsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRMaXN0
ZW5pbmdQb3J0KGludCk7CiAKIHByaXZhdGU6Ci0gICAgTmV0d29ya1JUQ1VEUFNvY2tldENvY29h
Q29ubmVjdGlvbnMoV2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmllciwgTmV0d29ya1JU
Q1Byb3ZpZGVyJiwgY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiwgUmVmPElQQzo6Q29ubmVjdGlv
bj4mJiwgYm9vbCBpc0ZpcnN0UGFydHksIGJvb2wgaXNSZWxheURpc2FibGVkLCBjb25zdCBXZWJD
b3JlOjpSZWdpc3RyYWJsZURvbWFpbiYpOworICAgIE5ldHdvcmtSVENVRFBTb2NrZXRDb2NvYUNv
bm5lY3Rpb25zKFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50aWZpZXIsIE5ldHdvcmtSVENQ
cm92aWRlciYsIGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYsIFJlZjxJUEM6OkNvbm5lY3Rpb24+
JiYsIFN0cmluZyYmIGF0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVyLCBib29sIGlzRmlyc3RQYXJ0
eSwgYm9vbCBpc1JlbGF5RGlzYWJsZWQsIGNvbnN0IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWlu
Jik7CiAKICAgICBSZXRhaW5QdHI8bndfY29ubmVjdGlvbl90PiBjcmVhdGVOV0Nvbm5lY3Rpb24o
Y29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJik7CiAgICAgdm9pZCBzZXR1cE5XQ29ubmVjdGlvbihu
d19jb25uZWN0aW9uX3QsIGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYpOwpAQCAtNzYsNiArNzYs
NyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9zaG91bGRCeXBhc3NSZWxheSB7IGZhbHNlIH07CiAK
ICAgICBzdGQ6Om9wdGlvbmFsPGF1ZGl0X3Rva2VuX3Q+IG1fc291cmNlQXBwbGljYXRpb25BdWRp
dFRva2VuOworICAgIFN0cmluZyBtX2F0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVyOwogCiAgICAg
cnRjOjpTb2NrZXRBZGRyZXNzIG1fYWRkcmVzczsKICAgICBSZXRhaW5QdHI8bndfbGlzdGVuZXJf
dD4gbV9ud0xpc3RlbmVyOwpAQCAtOTQsMTUgKzk1LDE1IEBAIHN0YXRpYyBkaXNwYXRjaF9xdWV1
ZV90IHVkcFNvY2tldFF1ZXVlKCkKICAgICByZXR1cm4gcXVldWU7CiB9CiAKLXN0ZDo6dW5pcXVl
X3B0cjxOZXR3b3JrUlRDUHJvdmlkZXI6OlNvY2tldD4gTmV0d29ya1JUQ1VEUFNvY2tldENvY29h
OjpjcmVhdGVVRFBTb2NrZXQoV2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmllciBpZGVu
dGlmaWVyLCBOZXR3b3JrUlRDUHJvdmlkZXImIHJ0Y1Byb3ZpZGVyLCBjb25zdCBydGM6OlNvY2tl
dEFkZHJlc3MmIGFkZHJlc3MsIHVpbnQxNl90IG1pblBvcnQsIHVpbnQxNl90IG1heFBvcnQsIFJl
ZjxJUEM6OkNvbm5lY3Rpb24+JiYgY29ubmVjdGlvbiwgYm9vbCBpc0ZpcnN0UGFydHksIGJvb2wg
aXNSZWxheURpc2FibGVkLCBjb25zdCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYgZG9tYWlu
KQorc3RkOjp1bmlxdWVfcHRyPE5ldHdvcmtSVENQcm92aWRlcjo6U29ja2V0PiBOZXR3b3JrUlRD
VURQU29ja2V0Q29jb2E6OmNyZWF0ZVVEUFNvY2tldChXZWJDb3JlOjpMaWJXZWJSVENTb2NrZXRJ
ZGVudGlmaWVyIGlkZW50aWZpZXIsIE5ldHdvcmtSVENQcm92aWRlciYgcnRjUHJvdmlkZXIsIGNv
bnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYgYWRkcmVzcywgdWludDE2X3QgbWluUG9ydCwgdWludDE2
X3QgbWF4UG9ydCwgUmVmPElQQzo6Q29ubmVjdGlvbj4mJiBjb25uZWN0aW9uLCBTdHJpbmcmJiBh
dHRyaWJ1dGVkQnVuZGxlSWRlbnRpZmllciwgYm9vbCBpc0ZpcnN0UGFydHksIGJvb2wgaXNSZWxh
eURpc2FibGVkLCBjb25zdCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYgZG9tYWluKQogewot
ICAgIHJldHVybiBtYWtlVW5pcXVlPE5ldHdvcmtSVENVRFBTb2NrZXRDb2NvYT4oaWRlbnRpZmll
ciwgcnRjUHJvdmlkZXIsIGFkZHJlc3MsIFdURk1vdmUoY29ubmVjdGlvbiksIGlzRmlyc3RQYXJ0
eSwgaXNSZWxheURpc2FibGVkLCBkb21haW4pOworICAgIHJldHVybiBtYWtlVW5pcXVlPE5ldHdv
cmtSVENVRFBTb2NrZXRDb2NvYT4oaWRlbnRpZmllciwgcnRjUHJvdmlkZXIsIGFkZHJlc3MsIFdU
Rk1vdmUoY29ubmVjdGlvbiksIFdURk1vdmUoYXR0cmlidXRlZEJ1bmRsZUlkZW50aWZpZXIpLCBp
c0ZpcnN0UGFydHksIGlzUmVsYXlEaXNhYmxlZCwgZG9tYWluKTsKIH0KIAotTmV0d29ya1JUQ1VE
UFNvY2tldENvY29hOjpOZXR3b3JrUlRDVURQU29ja2V0Q29jb2EoV2ViQ29yZTo6TGliV2ViUlRD
U29ja2V0SWRlbnRpZmllciBpZGVudGlmaWVyLCBOZXR3b3JrUlRDUHJvdmlkZXImIHJ0Y1Byb3Zp
ZGVyLCBjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmIGFkZHJlc3MsIFJlZjxJUEM6OkNvbm5lY3Rp
b24+JiYgY29ubmVjdGlvbiwgYm9vbCBpc0ZpcnN0UGFydHksIGJvb2wgaXNSZWxheURpc2FibGVk
LCBjb25zdCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYgZG9tYWluKQorTmV0d29ya1JUQ1VE
UFNvY2tldENvY29hOjpOZXR3b3JrUlRDVURQU29ja2V0Q29jb2EoV2ViQ29yZTo6TGliV2ViUlRD
U29ja2V0SWRlbnRpZmllciBpZGVudGlmaWVyLCBOZXR3b3JrUlRDUHJvdmlkZXImIHJ0Y1Byb3Zp
ZGVyLCBjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmIGFkZHJlc3MsIFJlZjxJUEM6OkNvbm5lY3Rp
b24+JiYgY29ubmVjdGlvbiwgU3RyaW5nJiYgYXR0cmlidXRlZEJ1bmRsZUlkZW50aWZpZXIsIGJv
b2wgaXNGaXJzdFBhcnR5LCBib29sIGlzUmVsYXlEaXNhYmxlZCwgY29uc3QgV2ViQ29yZTo6UmVn
aXN0cmFibGVEb21haW4mIGRvbWFpbikKICAgICA6IG1fcnRjUHJvdmlkZXIocnRjUHJvdmlkZXIp
CiAgICAgLCBtX2lkZW50aWZpZXIoaWRlbnRpZmllcikKLSAgICAsIG1fbndDb25uZWN0aW9ucyhO
ZXR3b3JrUlRDVURQU29ja2V0Q29jb2FDb25uZWN0aW9uczo6Y3JlYXRlKGlkZW50aWZpZXIsIHJ0
Y1Byb3ZpZGVyLCBhZGRyZXNzLCBXVEZNb3ZlKGNvbm5lY3Rpb24pLCBpc0ZpcnN0UGFydHksIGlz
UmVsYXlEaXNhYmxlZCwgZG9tYWluKSkKKyAgICAsIG1fbndDb25uZWN0aW9ucyhOZXR3b3JrUlRD
VURQU29ja2V0Q29jb2FDb25uZWN0aW9uczo6Y3JlYXRlKGlkZW50aWZpZXIsIHJ0Y1Byb3ZpZGVy
LCBhZGRyZXNzLCBXVEZNb3ZlKGNvbm5lY3Rpb24pLCBXVEZNb3ZlKGF0dHJpYnV0ZWRCdW5kbGVJ
ZGVudGlmaWVyKSwgaXNGaXJzdFBhcnR5LCBpc1JlbGF5RGlzYWJsZWQsIGRvbWFpbikpCiB7CiB9
CiAKQEAgLTE1NCw3ICsxNTUsNyBAQCBzdGF0aWMgYm9vbCBpc0tub3duVHJhY2tlcihjb25zdCBX
ZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYgZG9tYWluKQogfQogI2VuZGlmCiAKLU5ldHdvcmtS
VENVRFBTb2NrZXRDb2NvYUNvbm5lY3Rpb25zOjpOZXR3b3JrUlRDVURQU29ja2V0Q29jb2FDb25u
ZWN0aW9ucyhXZWJDb3JlOjpMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyIGlkZW50aWZpZXIsIE5l
dHdvcmtSVENQcm92aWRlciYgcnRjUHJvdmlkZXIsIGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYg
YWRkcmVzcywgUmVmPElQQzo6Q29ubmVjdGlvbj4mJiBjb25uZWN0aW9uLCBib29sIGlzRmlyc3RQ
YXJ0eSwgYm9vbCBpc1JlbGF5RGlzYWJsZWQsIGNvbnN0IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9t
YWluJiBkb21haW4pCitOZXR3b3JrUlRDVURQU29ja2V0Q29jb2FDb25uZWN0aW9uczo6TmV0d29y
a1JUQ1VEUFNvY2tldENvY29hQ29ubmVjdGlvbnMoV2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRl
bnRpZmllciBpZGVudGlmaWVyLCBOZXR3b3JrUlRDUHJvdmlkZXImIHJ0Y1Byb3ZpZGVyLCBjb25z
dCBydGM6OlNvY2tldEFkZHJlc3MmIGFkZHJlc3MsIFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYgY29u
bmVjdGlvbiwgU3RyaW5nJiYgYXR0cmlidXRlZEJ1bmRsZUlkZW50aWZpZXIsIGJvb2wgaXNGaXJz
dFBhcnR5LCBib29sIGlzUmVsYXlEaXNhYmxlZCwgY29uc3QgV2ViQ29yZTo6UmVnaXN0cmFibGVE
b21haW4mIGRvbWFpbikKICAgICA6IG1faWRlbnRpZmllcihpZGVudGlmaWVyKQogICAgICwgbV9j
b25uZWN0aW9uKFdURk1vdmUoY29ubmVjdGlvbikpCiAjaWYgSEFWRShOV1BBUkFNRVRFUlNfVFJB
Q0tFUl9BUEkpCkBAIC0xNjMsNiArMTY0LDcgQEAgTmV0d29ya1JUQ1VEUFNvY2tldENvY29hQ29u
bmVjdGlvbnM6Ok5ldHdvcmtSVENVRFBTb2NrZXRDb2NvYUNvbm5lY3Rpb25zKFdlYkNvcmUKICNl
bmRpZgogICAgICwgbV9zaG91bGRCeXBhc3NSZWxheShpc1JlbGF5RGlzYWJsZWQpCiAgICAgLCBt
X3NvdXJjZUFwcGxpY2F0aW9uQXVkaXRUb2tlbihydGNQcm92aWRlci5zb3VyY2VBcHBsaWNhdGlv
bkF1ZGl0VG9rZW4oKSkKKyAgICAsIG1fYXR0cmlidXRlZEJ1bmRsZUlkZW50aWZpZXIoV1RGTW92
ZShhdHRyaWJ1dGVkQnVuZGxlSWRlbnRpZmllcikpCiB7CiAgICAgYXV0byBwYXJhbWV0ZXJzID0g
YWRvcHROUyhud19wYXJhbWV0ZXJzX2NyZWF0ZV9zZWN1cmVfdWRwKE5XX1BBUkFNRVRFUlNfRElT
QUJMRV9QUk9UT0NPTCwgTldfUEFSQU1FVEVSU19ERUZBVUxUX0NPTkZJR1VSQVRJT04pKTsKICAg
ICB7CkBAIC0yMzcsNiArMjM5LDggQEAgdm9pZCBOZXR3b3JrUlRDVURQU29ja2V0Q29jb2FDb25u
ZWN0aW9uczo6Y29uZmlndXJlUGFyYW1ldGVycyhud19wYXJhbWV0ZXJzX3QgcGEKIAogICAgIGlm
IChtX3NvdXJjZUFwcGxpY2F0aW9uQXVkaXRUb2tlbikKICAgICAgICAgbndfcGFyYW1ldGVyc19z
ZXRfc291cmNlX2FwcGxpY2F0aW9uKHBhcmFtZXRlcnMsICptX3NvdXJjZUFwcGxpY2F0aW9uQXVk
aXRUb2tlbik7CisgICAgaWYgKCFtX2F0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVyLmlzRW1wdHko
KSkKKyAgICAgICAgbndfcGFyYW1ldGVyc19zZXRfc291cmNlX2FwcGxpY2F0aW9uX2J5X2J1bmRs
ZV9pZChwYXJhbWV0ZXJzLCBtX2F0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVyLnV0ZjgoKS5kYXRh
KCkpOwogCiAgICAgbndfcGFyYW1ldGVyc19zZXRfcmV1c2VfbG9jYWxfYWRkcmVzcyhwYXJhbWV0
ZXJzLCB0cnVlKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL0Nv
Y29hL05XUGFyYW1ldGVyc1NQSS5oIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvQ29jb2Ev
TldQYXJhbWV0ZXJzU1BJLmgKaW5kZXggNTg0OTk2ZWRiYzBmYjc3ZDNiNzQyZTFiOTExNzlhZjNm
MjU2MDJlNi4uNWExY2NkOGNkZmY0MTYzZjU3MzA2NGY2MjJkYTkzZGZjYTRkOTVmZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvQ29jb2EvTldQYXJhbWV0ZXJzU1BJLmgK
KysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvQ29jb2EvTldQYXJhbWV0ZXJzU1BJLmgK
QEAgLTM1LDYgKzM1LDcgQEAgV1RGX0VYVEVSTl9DX0JFR0lOCiAKIHZvaWQgbndfcGFyYW1ldGVy
c19zZXRfYWNjb3VudF9pZChud19wYXJhbWV0ZXJzX3QsIGNvbnN0IGNoYXIgKiBhY2NvdW50X2lk
KTsKIHZvaWQgbndfcGFyYW1ldGVyc19zZXRfc291cmNlX2FwcGxpY2F0aW9uKG53X3BhcmFtZXRl
cnNfdCwgYXVkaXRfdG9rZW5fdCk7Cit2b2lkIG53X3BhcmFtZXRlcnNfc2V0X3NvdXJjZV9hcHBs
aWNhdGlvbl9ieV9idW5kbGVfaWQobndfcGFyYW1ldGVyc190LCBjb25zdCBjaGFyKik7CiAKICNp
ZiBIQVZFKE5XUEFSQU1FVEVSU19UUkFDS0VSX0FQSSkKIHZvaWQgbndfcGFyYW1ldGVyc19zZXRf
aXNfdGhpcmRfcGFydHlfd2ViX2NvbnRlbnQobndfcGFyYW1ldGVyc190LCBib29sIGlzX3RoaXJk
X3BhcnR5X3dlYl9jb250ZW50KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuY3BwCmluZGV4IDUyMjJi
YjlkMDEyYjE2NTNiMDdmYjA5ZDRmMWY3ODdiNmE3ZGU4YjguLjEwYmNlZTFiOWVkNjEzMDkwYzFk
ZDc0YmE1ZjJjNGNkNzYyNjg1ZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmNwcApAQCAtODgs
NyArODgsNyBAQCB2b2lkIExpYldlYlJUQ1Byb3ZpZGVyOjpyZWdpc3Rlck1ETlNOYW1lKERvY3Vt
ZW50SWRlbnRpZmllciBkb2N1bWVudElkZW50aWZpZXIsCiBjbGFzcyBSVENTb2NrZXRGYWN0b3J5
IGZpbmFsIDogcHVibGljIExpYldlYlJUQ1Byb3ZpZGVyOjpTdXNwZW5kYWJsZVNvY2tldEZhY3Rv
cnkgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIFJUQ1NvY2tl
dEZhY3RvcnkoU3RyaW5nJiYgdXNlckFnZW50LCBib29sIGlzRmlyc3RQYXJ0eSwgUmVnaXN0cmFi
bGVEb21haW4mJik7CisgICAgUlRDU29ja2V0RmFjdG9yeShXZWJQYWdlUHJveHlJZGVudGlmaWVy
LCBTdHJpbmcmJiB1c2VyQWdlbnQsIGJvb2wgaXNGaXJzdFBhcnR5LCBSZWdpc3RyYWJsZURvbWFp
biYmKTsKIAogcHJpdmF0ZToKICAgICAvLyBTdXNwZW5kYWJsZVNvY2tldEZhY3RvcnkKQEAgLTEw
MSwxNCArMTAxLDE2IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaXNhYmxlUmVsYXkoKSBmaW5hbCB7
IG1faXNSZWxheURpc2FibGVkID0gdHJ1ZTsgfQogCiBwcml2YXRlOgorICAgIFdlYlBhZ2VQcm94
eUlkZW50aWZpZXIgbV9wYWdlSWRlbnRpZmllcjsKICAgICBTdHJpbmcgbV91c2VyQWdlbnQ7CiAg
ICAgYm9vbCBtX2lzRmlyc3RQYXJ0eSB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2lzUmVsYXlEaXNh
YmxlZCB7IGZhbHNlIH07CiAgICAgUmVnaXN0cmFibGVEb21haW4gbV9kb21haW47CiB9OwogCi1S
VENTb2NrZXRGYWN0b3J5OjpSVENTb2NrZXRGYWN0b3J5KFN0cmluZyYmIHVzZXJBZ2VudCwgYm9v
bCBpc0ZpcnN0UGFydHksIFJlZ2lzdHJhYmxlRG9tYWluJiYgZG9tYWluKQotICAgIDogbV91c2Vy
QWdlbnQoV1RGTW92ZSh1c2VyQWdlbnQpKQorUlRDU29ja2V0RmFjdG9yeTo6UlRDU29ja2V0RmFj
dG9yeShXZWJQYWdlUHJveHlJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyLCBTdHJpbmcmJiB1c2Vy
QWdlbnQsIGJvb2wgaXNGaXJzdFBhcnR5LCBSZWdpc3RyYWJsZURvbWFpbiYmIGRvbWFpbikKKyAg
ICA6IG1fcGFnZUlkZW50aWZpZXIocGFnZUlkZW50aWZpZXIpCisgICAgLCBtX3VzZXJBZ2VudChX
VEZNb3ZlKHVzZXJBZ2VudCkpCiAgICAgLCBtX2lzRmlyc3RQYXJ0eShpc0ZpcnN0UGFydHkpCiAg
ICAgLCBtX2RvbWFpbihXVEZNb3ZlKGRvbWFpbikpCiB7CkBAIC0xMTYsNyArMTE4LDcgQEAgUlRD
U29ja2V0RmFjdG9yeTo6UlRDU29ja2V0RmFjdG9yeShTdHJpbmcmJiB1c2VyQWdlbnQsIGJvb2wg
aXNGaXJzdFBhcnR5LCBSZWdpc3QKIAogcnRjOjpBc3luY1BhY2tldFNvY2tldCogUlRDU29ja2V0
RmFjdG9yeTo6Q3JlYXRlVWRwU29ja2V0KGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYgYWRkcmVz
cywgdWludDE2X3QgbWluUG9ydCwgdWludDE2X3QgbWF4UG9ydCkKIHsKLSAgICByZXR1cm4gV2Vi
UHJvY2Vzczo6c2luZ2xldG9uKCkubGliV2ViUlRDTmV0d29yaygpLnNvY2tldEZhY3RvcnkoKS5j
cmVhdGVVZHBTb2NrZXQodGhpcywgYWRkcmVzcywgbWluUG9ydCwgbWF4UG9ydCwgbV9pc0ZpcnN0
UGFydHksIG1faXNSZWxheURpc2FibGVkLCBtX2RvbWFpbik7CisgICAgcmV0dXJuIFdlYlByb2Nl
c3M6OnNpbmdsZXRvbigpLmxpYldlYlJUQ05ldHdvcmsoKS5zb2NrZXRGYWN0b3J5KCkuY3JlYXRl
VWRwU29ja2V0KHRoaXMsIGFkZHJlc3MsIG1pblBvcnQsIG1heFBvcnQsIG1fcGFnZUlkZW50aWZp
ZXIsIG1faXNGaXJzdFBhcnR5LCBtX2lzUmVsYXlEaXNhYmxlZCwgbV9kb21haW4pOwogfQogCiBy
dGM6OkFzeW5jUGFja2V0U29ja2V0KiBSVENTb2NrZXRGYWN0b3J5OjpDcmVhdGVTZXJ2ZXJUY3BT
b2NrZXQoY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiBhZGRyZXNzLCB1aW50MTZfdCBtaW5Qb3J0
LCB1aW50MTZfdCBtYXhQb3J0LCBpbnQgb3B0aW9ucykKQEAgLTEyNiw3ICsxMjgsNyBAQCBydGM6
OkFzeW5jUGFja2V0U29ja2V0KiBSVENTb2NrZXRGYWN0b3J5OjpDcmVhdGVTZXJ2ZXJUY3BTb2Nr
ZXQoY29uc3QgcnRjOjpTb2NrZQogCiBydGM6OkFzeW5jUGFja2V0U29ja2V0KiBSVENTb2NrZXRG
YWN0b3J5OjpDcmVhdGVDbGllbnRUY3BTb2NrZXQoY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiBs
b2NhbEFkZHJlc3MsIGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYgcmVtb3RlQWRkcmVzcywgY29u
c3QgcnRjOjpQcm94eUluZm8mLCBjb25zdCBzdGQ6OnN0cmluZyYsIGNvbnN0IHJ0Yzo6UGFja2V0
U29ja2V0VGNwT3B0aW9ucyYgb3B0aW9ucykKIHsKLSAgICByZXR1cm4gV2ViUHJvY2Vzczo6c2lu
Z2xldG9uKCkubGliV2ViUlRDTmV0d29yaygpLnNvY2tldEZhY3RvcnkoKS5jcmVhdGVDbGllbnRU
Y3BTb2NrZXQodGhpcywgbG9jYWxBZGRyZXNzLCByZW1vdGVBZGRyZXNzLCBTdHJpbmcgeyBtX3Vz
ZXJBZ2VudCB9LCBvcHRpb25zKTsKKyAgICByZXR1cm4gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCku
bGliV2ViUlRDTmV0d29yaygpLnNvY2tldEZhY3RvcnkoKS5jcmVhdGVDbGllbnRUY3BTb2NrZXQo
dGhpcywgbG9jYWxBZGRyZXNzLCByZW1vdGVBZGRyZXNzLCBTdHJpbmcgeyBtX3VzZXJBZ2VudCB9
LCBvcHRpb25zLCBtX3BhZ2VJZGVudGlmaWVyKTsKIH0KIAogcnRjOjpBc3luY1Jlc29sdmVySW50
ZXJmYWNlKiBSVENTb2NrZXRGYWN0b3J5OjpDcmVhdGVBc3luY1Jlc29sdmVyKCkKQEAgLTE1OSw3
ICsxNjEsNyBAQCB2b2lkIExpYldlYlJUQ1Byb3ZpZGVyOjpzdGFydGVkTmV0d29ya1RocmVhZCgp
CiAKIHN0ZDo6dW5pcXVlX3B0cjxMaWJXZWJSVENQcm92aWRlcjo6U3VzcGVuZGFibGVTb2NrZXRG
YWN0b3J5PiBMaWJXZWJSVENQcm92aWRlcjo6Y3JlYXRlU29ja2V0RmFjdG9yeShTdHJpbmcmJiB1
c2VyQWdlbnQsIGJvb2wgaXNGaXJzdFBhcnR5LCBSZWdpc3RyYWJsZURvbWFpbiYmIGRvbWFpbikK
IHsKLSAgICByZXR1cm4gbWFrZVVuaXF1ZTxSVENTb2NrZXRGYWN0b3J5PihXVEZNb3ZlKHVzZXJB
Z2VudCksIGlzRmlyc3RQYXJ0eSwgV1RGTW92ZShkb21haW4pKTsKKyAgICByZXR1cm4gbWFrZVVu
aXF1ZTxSVENTb2NrZXRGYWN0b3J5PihtX3dlYlBhZ2Uud2ViUGFnZVByb3h5SWRlbnRpZmllcigp
LCBXVEZNb3ZlKHVzZXJBZ2VudCksIGlzRmlyc3RQYXJ0eSwgV1RGTW92ZShkb21haW4pKTsKIH0K
IAogUmVmUHRyPFJUQ0RhdGFDaGFubmVsUmVtb3RlSGFuZGxlckNvbm5lY3Rpb24+IExpYldlYlJU
Q1Byb3ZpZGVyOjpjcmVhdGVSVENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXJDb25uZWN0aW9uKCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJX
ZWJSVENQcm92aWRlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRj
L0xpYldlYlJUQ1Byb3ZpZGVyLmgKaW5kZXggNjA1OGU1NGMxNTM4OTQ4ZDhhNmI0NDM1MjdkNTNj
MGQ4NzhhYmZmOS4uNzJhZDNhNDI5ZmVmYmZhMWQ0Y2FlZjVjMmJmN2M5NTczMDFlMTIwMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJU
Q1Byb3ZpZGVyLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRj
L0xpYldlYlJUQ1Byb3ZpZGVyLmgKQEAgLTYzLDE2ICs2MywxNCBAQCBwcml2YXRlOgogICAgIFJl
ZlB0cjxXZWJDb3JlOjpSVENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXJDb25uZWN0aW9uPiBjcmVh
dGVSVENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXJDb25uZWN0aW9uKCkgZmluYWw7CiAgICAgdm9p
ZCBzZXRMb2dnaW5nTGV2ZWwoV1RGTG9nTGV2ZWwpIGZpbmFsOwogCi0jaWYgRU5BQkxFKEdQVV9Q
Uk9DRVNTKSAmJiBQTEFURk9STShDT0NPQSkgJiYgIVBMQVRGT1JNKE1BQ0NBVEFMWVNUKQogICAg
IFdlYlBhZ2UmIG1fd2ViUGFnZTsKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIFBMQVRGT1JN
KENPQ09BKSAmJiAhUExBVEZPUk0oTUFDQ0FUQUxZU1QpCiAgICAgYm9vbCBtX2RpZEluaXRpYWxp
emVDYWxsYmFjayB7IGZhbHNlIH07CiAjZW5kaWYKIH07CiAKIGlubGluZSBMaWJXZWJSVENQcm92
aWRlcjo6TGliV2ViUlRDUHJvdmlkZXIoV2ViUGFnZSYgd2ViUGFnZSkKLSNpZiBFTkFCTEUoR1BV
X1BST0NFU1MpICYmIFBMQVRGT1JNKENPQ09BKSAmJiAhUExBVEZPUk0oTUFDQ0FUQUxZU1QpCiAg
ICAgOiBtX3dlYlBhZ2Uod2ViUGFnZSkKLSNlbmRpZgogewogICAgIG1fdXNlTmV0d29ya1RocmVh
ZFdpdGhTb2NrZXRTZXJ2ZXIgPSBmYWxzZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXRGYWN0b3J5LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXRGYWN0
b3J5LmNwcAppbmRleCBhMzkzOWJjMTQ1ZTBiOTgzZGIxOGI3OWFkN2E2MmZlNjk2NjZjYjM5Li44
MzMyMTU3NGY1MTFhMTI2MDNmY2M5NDkxOGMzOGQ2ZmRiZjQyN2YxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDU29ja2V0RmFjdG9y
eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldl
YlJUQ1NvY2tldEZhY3RvcnkuY3BwCkBAIC04NSwyNiArODUsMjYgQEAgcnRjOjpBc3luY1BhY2tl
dFNvY2tldCogTGliV2ViUlRDU29ja2V0RmFjdG9yeTo6Y3JlYXRlU2VydmVyVGNwU29ja2V0KGNv
bnN0IHZvaWQKICAgICByZXR1cm4gc29ja2V0LnJlbGVhc2UoKTsKIH0KIAotcnRjOjpBc3luY1Bh
Y2tldFNvY2tldCogTGliV2ViUlRDU29ja2V0RmFjdG9yeTo6Y3JlYXRlVWRwU29ja2V0KGNvbnN0
IHZvaWQqIHNvY2tldEdyb3VwLCBjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmIGFkZHJlc3MsIHVp
bnQxNl90IG1pblBvcnQsIHVpbnQxNl90IG1heFBvcnQsIGJvb2wgaXNGaXJzdFBhcnR5LCBib29s
IGlzUmVsYXlEaXNhYmxlZCwgY29uc3QgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mIGRvbWFp
bikKK3J0Yzo6QXN5bmNQYWNrZXRTb2NrZXQqIExpYldlYlJUQ1NvY2tldEZhY3Rvcnk6OmNyZWF0
ZVVkcFNvY2tldChjb25zdCB2b2lkKiBzb2NrZXRHcm91cCwgY29uc3QgcnRjOjpTb2NrZXRBZGRy
ZXNzJiBhZGRyZXNzLCB1aW50MTZfdCBtaW5Qb3J0LCB1aW50MTZfdCBtYXhQb3J0LCBXZWJQYWdl
UHJveHlJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyLCBib29sIGlzRmlyc3RQYXJ0eSwgYm9vbCBp
c1JlbGF5RGlzYWJsZWQsIGNvbnN0IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiBkb21haW4p
CiB7CiAgICAgQVNTRVJUKCFXVEY6OmlzTWFpblJ1bkxvb3AoKSk7CiAgICAgYXV0byBzb2NrZXQg
PSBtYWtlVW5pcXVlPExpYldlYlJUQ1NvY2tldD4oKnRoaXMsIHNvY2tldEdyb3VwLCBMaWJXZWJS
VENTb2NrZXQ6OlR5cGU6OlVEUCwgYWRkcmVzcywgcnRjOjpTb2NrZXRBZGRyZXNzKCkpOwogCiAg
ICAgaWYgKG1fY29ubmVjdGlvbikKLSAgICAgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2Vz
OjpOZXR3b3JrUlRDUHJvdmlkZXI6OkNyZWF0ZVVEUFNvY2tldChzb2NrZXQtPmlkZW50aWZpZXIo
KSwgUlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyhhZGRyZXNzKSwgbWluUG9ydCwgbWF4UG9ydCwg
aXNGaXJzdFBhcnR5LCBpc1JlbGF5RGlzYWJsZWQsIGRvbWFpbiksIDApOworICAgICAgICBtX2Nv
bm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtSVENQcm92aWRlcjo6Q3JlYXRlVURQU29j
a2V0KHNvY2tldC0+aWRlbnRpZmllcigpLCBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzKGFkZHJl
c3MpLCBtaW5Qb3J0LCBtYXhQb3J0LCAgcGFnZUlkZW50aWZpZXIsIGlzRmlyc3RQYXJ0eSwgaXNS
ZWxheURpc2FibGVkLCBkb21haW4pLCAwKTsKICAgICBlbHNlIHsKICAgICAgICAgY2FsbE9uTWFp
blJ1bkxvb3AoW10gewogICAgICAgICAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJl
TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCk7CiAgICAgICAgIH0pOwotICAgICAgICBtX3BlbmRp
bmdNZXNzYWdlVGFza3MuYXBwZW5kKFtpZGVudGlmaWVyID0gc29ja2V0LT5pZGVudGlmaWVyKCks
IGFkZHJlc3MgPSBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzKGFkZHJlc3MpLCBtaW5Qb3J0LCBt
YXhQb3J0LCBpc0ZpcnN0UGFydHksIGlzUmVsYXlEaXNhYmxlZCwgZG9tYWluXShhdXRvJiBjb25u
ZWN0aW9uKSB7Ci0gICAgICAgICAgICBjb25uZWN0aW9uLnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtS
VENQcm92aWRlcjo6Q3JlYXRlVURQU29ja2V0KGlkZW50aWZpZXIsIGFkZHJlc3MsIG1pblBvcnQs
IG1heFBvcnQsIGlzRmlyc3RQYXJ0eSwgaXNSZWxheURpc2FibGVkLCBkb21haW4pLCAwKTsKKyAg
ICAgICAgbV9wZW5kaW5nTWVzc2FnZVRhc2tzLmFwcGVuZChbaWRlbnRpZmllciA9IHNvY2tldC0+
aWRlbnRpZmllcigpLCBhZGRyZXNzID0gUlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyhhZGRyZXNz
KSwgbWluUG9ydCwgbWF4UG9ydCwgcGFnZUlkZW50aWZpZXIsIGlzRmlyc3RQYXJ0eSwgaXNSZWxh
eURpc2FibGVkLCBkb21haW5dKGF1dG8mIGNvbm5lY3Rpb24pIHsKKyAgICAgICAgICAgIGNvbm5l
Y3Rpb24uc2VuZChNZXNzYWdlczo6TmV0d29ya1JUQ1Byb3ZpZGVyOjpDcmVhdGVVRFBTb2NrZXQo
aWRlbnRpZmllciwgYWRkcmVzcywgbWluUG9ydCwgbWF4UG9ydCwgcGFnZUlkZW50aWZpZXIsIGlz
Rmlyc3RQYXJ0eSwgaXNSZWxheURpc2FibGVkLCBkb21haW4pLCAwKTsKICAgICAgICAgfSk7CiAg
ICAgfQogCiAgICAgcmV0dXJuIHNvY2tldC5yZWxlYXNlKCk7CiB9CiAKLXJ0Yzo6QXN5bmNQYWNr
ZXRTb2NrZXQqIExpYldlYlJUQ1NvY2tldEZhY3Rvcnk6OmNyZWF0ZUNsaWVudFRjcFNvY2tldChj
b25zdCB2b2lkKiBzb2NrZXRHcm91cCwgY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiBsb2NhbEFk
ZHJlc3MsIGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYgcmVtb3RlQWRkcmVzcywgU3RyaW5nJiYg
dXNlckFnZW50LCBjb25zdCBydGM6OlBhY2tldFNvY2tldFRjcE9wdGlvbnMmIG9wdGlvbnMpCity
dGM6OkFzeW5jUGFja2V0U29ja2V0KiBMaWJXZWJSVENTb2NrZXRGYWN0b3J5OjpjcmVhdGVDbGll
bnRUY3BTb2NrZXQoY29uc3Qgdm9pZCogc29ja2V0R3JvdXAsIGNvbnN0IHJ0Yzo6U29ja2V0QWRk
cmVzcyYgbG9jYWxBZGRyZXNzLCBjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmIHJlbW90ZUFkZHJl
c3MsIFN0cmluZyYmIHVzZXJBZ2VudCwgY29uc3QgcnRjOjpQYWNrZXRTb2NrZXRUY3BPcHRpb25z
JiBvcHRpb25zLCBXZWJQYWdlUHJveHlJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyKQogewogICAg
IEFTU0VSVCghV1RGOjppc01haW5SdW5Mb29wKCkpOwogCkBAIC0xMTMsMTMgKzExMywxMyBAQCBy
dGM6OkFzeW5jUGFja2V0U29ja2V0KiBMaWJXZWJSVENTb2NrZXRGYWN0b3J5OjpjcmVhdGVDbGll
bnRUY3BTb2NrZXQoY29uc3Qgdm9pZAogCiAgICAgLy8gRklYTUU6IFdlIG9ubHkgdHJhbnNmZXIg
b3B0aW9ucy5vcHRzIGJ1dCBzaG91bGQgYWxzbyBoYW5kbGUgb3RoZXIgbWVtYmVycy4KICAgICBp
ZiAobV9jb25uZWN0aW9uKQotICAgICAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6Ok5l
dHdvcmtSVENQcm92aWRlcjo6Q3JlYXRlQ2xpZW50VENQU29ja2V0KHNvY2tldC0+aWRlbnRpZmll
cigpLCBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzKHByZXBhcmVTb2NrZXRBZGRyZXNzKGxvY2Fs
QWRkcmVzcywgbV9kaXNhYmxlTm9uTG9jYWxob3N0Q29ubmVjdGlvbnMpKSwgUlRDTmV0d29yazo6
U29ja2V0QWRkcmVzcyhwcmVwYXJlU29ja2V0QWRkcmVzcyhyZW1vdGVBZGRyZXNzLCBtX2Rpc2Fi
bGVOb25Mb2NhbGhvc3RDb25uZWN0aW9ucykpLCB1c2VyQWdlbnQsIG9wdGlvbnMub3B0cyksIDAp
OworICAgICAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtSVENQcm92aWRl
cjo6Q3JlYXRlQ2xpZW50VENQU29ja2V0KHNvY2tldC0+aWRlbnRpZmllcigpLCBSVENOZXR3b3Jr
OjpTb2NrZXRBZGRyZXNzKHByZXBhcmVTb2NrZXRBZGRyZXNzKGxvY2FsQWRkcmVzcywgbV9kaXNh
YmxlTm9uTG9jYWxob3N0Q29ubmVjdGlvbnMpKSwgUlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyhw
cmVwYXJlU29ja2V0QWRkcmVzcyhyZW1vdGVBZGRyZXNzLCBtX2Rpc2FibGVOb25Mb2NhbGhvc3RD
b25uZWN0aW9ucykpLCB1c2VyQWdlbnQsIG9wdGlvbnMub3B0cywgIHBhZ2VJZGVudGlmaWVyKSwg
MCk7CiAgICAgZWxzZSB7CiAgICAgICAgIGNhbGxPbk1haW5SdW5Mb29wKFtdIHsKICAgICAgICAg
ICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlv
bigpOwogICAgICAgICB9KTsKLSAgICAgICAgbV9wZW5kaW5nTWVzc2FnZVRhc2tzLmFwcGVuZChb
aWRlbnRpZmllciA9IHNvY2tldC0+aWRlbnRpZmllcigpLCBsb2NhbEFkZHJlc3MgPSBSVENOZXR3
b3JrOjpTb2NrZXRBZGRyZXNzKHByZXBhcmVTb2NrZXRBZGRyZXNzKGxvY2FsQWRkcmVzcywgbV9k
aXNhYmxlTm9uTG9jYWxob3N0Q29ubmVjdGlvbnMpKSwgcmVtb3RlQWRkcmVzcyA9IFJUQ05ldHdv
cms6OlNvY2tldEFkZHJlc3MocHJlcGFyZVNvY2tldEFkZHJlc3MocmVtb3RlQWRkcmVzcywgbV9k
aXNhYmxlTm9uTG9jYWxob3N0Q29ubmVjdGlvbnMpKSwgdXNlckFnZW50LCBvcHRzID0gb3B0aW9u
cy5vcHRzXShhdXRvJiBjb25uZWN0aW9uKSB7Ci0gICAgICAgICAgICBjb25uZWN0aW9uLnNlbmQo
TWVzc2FnZXM6Ok5ldHdvcmtSVENQcm92aWRlcjo6Q3JlYXRlQ2xpZW50VENQU29ja2V0KGlkZW50
aWZpZXIsIGxvY2FsQWRkcmVzcywgcmVtb3RlQWRkcmVzcywgdXNlckFnZW50LCBvcHRzKSwgMCk7
CisgICAgICAgIG1fcGVuZGluZ01lc3NhZ2VUYXNrcy5hcHBlbmQoW2lkZW50aWZpZXIgPSBzb2Nr
ZXQtPmlkZW50aWZpZXIoKSwgbG9jYWxBZGRyZXNzID0gUlRDTmV0d29yazo6U29ja2V0QWRkcmVz
cyhwcmVwYXJlU29ja2V0QWRkcmVzcyhsb2NhbEFkZHJlc3MsIG1fZGlzYWJsZU5vbkxvY2FsaG9z
dENvbm5lY3Rpb25zKSksIHJlbW90ZUFkZHJlc3MgPSBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNz
KHByZXBhcmVTb2NrZXRBZGRyZXNzKHJlbW90ZUFkZHJlc3MsIG1fZGlzYWJsZU5vbkxvY2FsaG9z
dENvbm5lY3Rpb25zKSksIHVzZXJBZ2VudCwgb3B0cyA9IG9wdGlvbnMub3B0cywgcGFnZUlkZW50
aWZpZXJdKGF1dG8mIGNvbm5lY3Rpb24pIHsKKyAgICAgICAgICAgIGNvbm5lY3Rpb24uc2VuZChN
ZXNzYWdlczo6TmV0d29ya1JUQ1Byb3ZpZGVyOjpDcmVhdGVDbGllbnRUQ1BTb2NrZXQoaWRlbnRp
ZmllciwgbG9jYWxBZGRyZXNzLCByZW1vdGVBZGRyZXNzLCB1c2VyQWdlbnQsIG9wdHMsICBwYWdl
SWRlbnRpZmllciksIDApOwogICAgICAgICB9KTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXRGYWN0b3J5
LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDU29j
a2V0RmFjdG9yeS5oCmluZGV4IDcxZDEyNDgyN2FiMmE2ZWEyOWIxODk5YmRjMDc0NDJiNGI5MWJk
ODguLjFhNTg1ZWYzOWIzYWJhYzg5YzdmNmYwYTg3Njc2ODEwNWU5YWUzZjMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXRG
YWN0b3J5LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xp
YldlYlJUQ1NvY2tldEZhY3RvcnkuaApAQCAtMjksNiArMjksNyBAQAogCiAjaW5jbHVkZSAiTGli
V2ViUlRDUmVzb2x2ZXIuaCIKICNpbmNsdWRlICJMaWJXZWJSVENTb2NrZXQuaCIKKyNpbmNsdWRl
ICJXZWJQYWdlUHJveHlJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9MaWJXZWJSVENN
YWNyb3MuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0xpYldlYlJUQ1NvY2tldElkZW50aWZpZXIuaD4K
ICNpbmNsdWRlIDx3ZWJydGMvcnRjX2Jhc2UvbmV0X2hlbHBlcnMuaD4KQEAgLTUxLDkgKzUyLDkg
QEAgcHVibGljOgogICAgIExpYldlYlJUQ1NvY2tldCogc29ja2V0KFdlYkNvcmU6OkxpYldlYlJU
Q1NvY2tldElkZW50aWZpZXIgaWRlbnRpZmllcikgeyByZXR1cm4gbV9zb2NrZXRzLmdldChpZGVu
dGlmaWVyKTsgfQogCiAgICAgdm9pZCBmb3JTb2NrZXRJbkdyb3VwKGNvbnN0IHZvaWQqIHNvY2tl
dEdyb3VwLCBjb25zdCBGdW5jdGlvbjx2b2lkKExpYldlYlJUQ1NvY2tldCYpPiYpOwotICAgIHJ0
Yzo6QXN5bmNQYWNrZXRTb2NrZXQqIGNyZWF0ZVVkcFNvY2tldChjb25zdCB2b2lkKiBzb2NrZXRH
cm91cCwgY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiwgdWludDE2X3QgbWluUG9ydCwgdWludDE2
X3QgbWF4UG9ydCwgYm9vbCBpc0ZpcnN0UGFydHksIGJvb2wgaXNSZWxheURpc2FibGVkLCBjb25z
dCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYpOworICAgIHJ0Yzo6QXN5bmNQYWNrZXRTb2Nr
ZXQqIGNyZWF0ZVVkcFNvY2tldChjb25zdCB2b2lkKiBzb2NrZXRHcm91cCwgY29uc3QgcnRjOjpT
b2NrZXRBZGRyZXNzJiwgdWludDE2X3QgbWluUG9ydCwgdWludDE2X3QgbWF4UG9ydCwgV2ViUGFn
ZVByb3h5SWRlbnRpZmllciwgYm9vbCBpc0ZpcnN0UGFydHksIGJvb2wgaXNSZWxheURpc2FibGVk
LCBjb25zdCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYpOwogICAgIHJ0Yzo6QXN5bmNQYWNr
ZXRTb2NrZXQqIGNyZWF0ZVNlcnZlclRjcFNvY2tldChjb25zdCB2b2lkKiBzb2NrZXRHcm91cCwg
Y29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiwgdWludDE2X3QgbWluUG9ydCwgdWludDE2X3QgbWF4
UG9ydCwgaW50IG9wdGlvbnMpOwotICAgIHJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQqIGNyZWF0ZUNs
aWVudFRjcFNvY2tldChjb25zdCB2b2lkKiBzb2NrZXRHcm91cCwgY29uc3QgcnRjOjpTb2NrZXRB
ZGRyZXNzJiBsb2NhbEFkZHJlc3MsIGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYgcmVtb3RlQWRk
cmVzcywgU3RyaW5nJiYgdXNlckFnZW50LCBjb25zdCBydGM6OlBhY2tldFNvY2tldFRjcE9wdGlv
bnMmKTsKKyAgICBydGM6OkFzeW5jUGFja2V0U29ja2V0KiBjcmVhdGVDbGllbnRUY3BTb2NrZXQo
Y29uc3Qgdm9pZCogc29ja2V0R3JvdXAsIGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYgbG9jYWxB
ZGRyZXNzLCBjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmIHJlbW90ZUFkZHJlc3MsIFN0cmluZyYm
IHVzZXJBZ2VudCwgY29uc3QgcnRjOjpQYWNrZXRTb2NrZXRUY3BPcHRpb25zJiwgV2ViUGFnZVBy
b3h5SWRlbnRpZmllcik7CiAgICAgcnRjOjpBc3luY1BhY2tldFNvY2tldCogY3JlYXRlTmV3Q29u
bmVjdGlvblNvY2tldChMaWJXZWJSVENTb2NrZXQmLCBXZWJDb3JlOjpMaWJXZWJSVENTb2NrZXRJ
ZGVudGlmaWVyIG5ld0Nvbm5lY3Rpb25Tb2NrZXRJZGVudGlmaWVyLCBjb25zdCBydGM6OlNvY2tl
dEFkZHJlc3MmKTsKIAogICAgIExpYldlYlJUQ1Jlc29sdmVyKiByZXNvbHZlcihMaWJXZWJSVENS
ZXNvbHZlcklkZW50aWZpZXIgaWRlbnRpZmllcikgeyByZXR1cm4gbV9yZXNvbHZlcnMuZ2V0KGlk
ZW50aWZpZXIpOyB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>434743</attachid>
            <date>2021-08-02 00:47:51 -0700</date>
            <delta_ts>2021-08-02 11:04:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-228649-20210802094743.patch</filename>
            <type>text/plain</type>
            <size>41013</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgwNDgxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGFiYmVhZTQ0YTk1NzJhYzFh
NjkzOThiMTJkZWIxNjRhMzE5N2FhZjcuLmQxN2QyZjFiYjc0OWRiNGIxOTY1ZjYzMzU5YTE1OGM2
ZjE4NDg4YWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTAgQEAKKzIwMjEtMDgtMDIgIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEF0dHJpYnV0ZSBudyBjb25uZWN0
aW9ucyB0byB0aGUgcGFnZSBidW5kbGUgaWRlbnRpZmllcgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI4NjQ5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU2VuZCBwYWdlIGlkZW50aWZpZXIgZnJvbSBXZWJQ
cm9jZXNzIHRvIE5ldHdvcmtQcm9jZXNzIHdoZW4gY3JlYXRpbmcgYSBXZWJSVEMgc29ja2V0Lgor
ICAgICAgICBVc2UgcGFnZSBpZGVudGlmaWVyIHRvIGdldCB0aGUgYnVuZGxlIGlkZW50aWZpZXIu
CisgICAgICAgIEZvciB0aGF0IHB1cnBvc2UsIHdlIG5lZWQgdG8gaG9wIHRvIG1haW4gdGhyZWFk
IHRvIGdldCBpdCwgdGhlbiBnbyBiYWNrIHRvIHJ0YyB0aHJlYWQgdG8gY3JlYXRlIGl0LgorICAg
ICAgICBXZSBkbyBzbyBieSB1c2luZyBjYWxsT25NYWluUnVuTG9vcEFuZFdhaXQgd2hlbiBOZXR3
b3JrUlRDUHJvdmlkZXIgZG9lcyBub3QgaGF2ZSB0aGUgaW5mb3JtYXRpb24gZm9yIHRoZSBwcm92
aWRlZCBwYWdlIGlkZW50aWZpZXIuCisgICAgICAgIFdlIHRoZW4gbWFrZSB1c2Ugb2YgbndfcGFy
YW1ldGVyc19zZXRfc291cmNlX2FwcGxpY2F0aW9uX2J5X2J1bmRsZV9pZCB0byBzZXQgdGhlIGJ1
bmRsZSBpZGVudGlmaWVyIG9uIFRDUCBhbmQgVURQIGNvbm5lY3Rpb25zLgorCisgICAgICAgICog
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3
b3JrU2Vzc2lvbjo6YXR0cmlidXRlZEJ1bmRsZUlkZW50aWZpZXJGcm9tUGFnZUlkZW50aWZpZXIg
Y29uc3QpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmg6CisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbToKKyAgICAg
ICAgKFdlYktpdDo6TmV0d29ya1Nlc3Npb25Db2NvYTo6YWRkV2ViUGFnZU5ldHdvcmtQYXJhbWV0
ZXJzKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Nlc3Npb25Db2NvYTo6cmVtb3ZlV2ViUGFn
ZU5ldHdvcmtQYXJhbWV0ZXJzKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0
d29ya1JUQ1Byb3ZpZGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1JUQ1Byb3ZpZGVy
OjphdHRyaWJ1dGVkQnVuZGxlSWRlbnRpZmllckZyb21QYWdlSWRlbnRpZmllcik6CisgICAgICAg
IChXZWJLaXQ6Ok5ldHdvcmtSVENQcm92aWRlcjo6Y3JlYXRlVURQU29ja2V0KToKKyAgICAgICAg
KFdlYktpdDo6TmV0d29ya1JUQ1Byb3ZpZGVyOjpjcmVhdGVDbGllbnRUQ1BTb2NrZXQpOgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIuaDoKKyAgICAg
ICAgKiBOZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVyLm1lc3NhZ2VzLmlu
OgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDVENQU29ja2V0Q29j
b2EuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1RDUFNvY2tl
dENvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUlRDVENQU29ja2V0Q29jb2E6OmNy
ZWF0ZUNsaWVudFRDUFNvY2tldCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSVENUQ1BTb2Nr
ZXRDb2NvYTo6TmV0d29ya1JUQ1RDUFNvY2tldENvY29hKToKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy93ZWJydGMvTmV0d29ya1JUQ1VEUFNvY2tldENvY29hLmg6CisgICAgICAgICogTmV0d29y
a1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENVRFBTb2NrZXRDb2NvYS5tbToKKyAgICAgICAgKFdl
YktpdDo6TmV0d29ya1JUQ1VEUFNvY2tldENvY29hQ29ubmVjdGlvbnM6OmNyZWF0ZSk6CisgICAg
ICAgIChXZWJLaXQ6Ok5ldHdvcmtSVENVRFBTb2NrZXRDb2NvYTo6Y3JlYXRlVURQU29ja2V0KToK
KyAgICAgICAgKFdlYktpdDo6TmV0d29ya1JUQ1VEUFNvY2tldENvY29hOjpOZXR3b3JrUlRDVURQ
U29ja2V0Q29jb2EpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUlRDVURQU29ja2V0Q29jb2FD
b25uZWN0aW9uczo6TmV0d29ya1JUQ1VEUFNvY2tldENvY29hQ29ubmVjdGlvbnMpOgorICAgICAg
ICAoV2ViS2l0OjpOZXR3b3JrUlRDVURQU29ja2V0Q29jb2FDb25uZWN0aW9uczo6Y29uZmlndXJl
UGFyYW1ldGVycyk6CisgICAgICAgICogUGxhdGZvcm0vc3BpL0NvY29hL05XUGFyYW1ldGVyc1NQ
SS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDUHJvdmlk
ZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpSVENTb2NrZXRGYWN0b3J5OjpSVENTb2NrZXRGYWN0
b3J5KToKKyAgICAgICAgKFdlYktpdDo6UlRDU29ja2V0RmFjdG9yeTo6Q3JlYXRlVWRwU29ja2V0
KToKKyAgICAgICAgKFdlYktpdDo6UlRDU29ja2V0RmFjdG9yeTo6Q3JlYXRlQ2xpZW50VGNwU29j
a2V0KToKKyAgICAgICAgKFdlYktpdDo6TGliV2ViUlRDUHJvdmlkZXI6OmNyZWF0ZVNvY2tldEZh
Y3RvcnkpOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDU29j
a2V0RmFjdG9yeS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkxpYldlYlJUQ1NvY2tldEZhY3Rvcnk6
OmNyZWF0ZVVkcFNvY2tldCk6CisgICAgICAgIChXZWJLaXQ6OkxpYldlYlJUQ1NvY2tldEZhY3Rv
cnk6OmNyZWF0ZUNsaWVudFRjcFNvY2tldCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3Jr
L3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXRGYWN0b3J5Lmg6CisKIDIwMjEtMDgtMDEgIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIEludHJvZHVjZSBhbiBleHBlcmlt
ZW50YWwgZmVhdHVyZSB0byB0b2dnbGUgV2ViUlRDIHNvY2tldCBwcm94eWluZwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNwcAppbmRleCA1ZDliOWJm
MjI2NDMxMjcwZmYwNjE2NjA4ZGZiMTU1ZThjMTZlM2JjLi5hYzBjOWE2NjYwYTkwZWYxMDlmNjA4
MzkwYTBlMmMzMDNkYzNkYzlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtTZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtTZXNzaW9uLmNwcApAQCAtNDA2LDQgKzQwNiw5IEBAIE5ldHdvcmtMb2FkU2NoZWR1
bGVyJiBOZXR3b3JrU2Vzc2lvbjo6bmV0d29ya0xvYWRTY2hlZHVsZXIoKQogICAgIHJldHVybiAq
bV9uZXR3b3JrTG9hZFNjaGVkdWxlcjsKIH0KIAorU3RyaW5nIE5ldHdvcmtTZXNzaW9uOjphdHRy
aWJ1dGVkQnVuZGxlSWRlbnRpZmllckZyb21QYWdlSWRlbnRpZmllcihXZWJQYWdlUHJveHlJZGVu
dGlmaWVyIGlkZW50aWZpZXIpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fYXR0cmlidXRlZEJ1bmRs
ZUlkZW50aWZpZXJGcm9tUGFnZUlkZW50aWZpZXJzLmdldChpZGVudGlmaWVyKTsKK30KKwogfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtTZXNzaW9uLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtTZXNzaW9uLmgKaW5kZXggMGRjZmIyN2NjMmZhODVkMjRmYjNiNTIwYTc1MTU5MWVlMzAxMjBl
Ny4uN2RhOTVlOTcwYmU5NTNjZmJlZWRkYmI3OWQxNDk2NDNlM2EyZTg4YiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uaApAQCAtMTc3LDYgKzE3Nyw4
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlV2ViUGFnZU5ldHdvcmtQYXJhbWV0
ZXJzKFdlYlBhZ2VQcm94eUlkZW50aWZpZXIpIHsgfQogICAgIHZpcnR1YWwgc2l6ZV90IGNvdW50
Tm9uRGVmYXVsdFNlc3Npb25TZXRzKCkgY29uc3QgeyByZXR1cm4gMDsgfQogCisgICAgU3RyaW5n
IGF0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVyRnJvbVBhZ2VJZGVudGlmaWVyKFdlYlBhZ2VQcm94
eUlkZW50aWZpZXIpIGNvbnN0OworCiBwcm90ZWN0ZWQ6CiAgICAgTmV0d29ya1Nlc3Npb24oTmV0
d29ya1Byb2Nlc3MmLCBjb25zdCBOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycyYpOwog
CkBAIC0yMjgsNiArMjMwLDcgQEAgcHJvdGVjdGVkOgogI2VuZGlmCiAKICAgICBIYXNoU2V0PHN0
ZDo6dW5pcXVlX3B0cjxQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE5ldHdvcmtMb2FkZXI+PiBtX3By
aXZhdGVDbGlja01lYXN1cmVtZW50TmV0d29ya0xvYWRlcnM7CisgICAgSGFzaE1hcDxXZWJQYWdl
UHJveHlJZGVudGlmaWVyLCBTdHJpbmc+IG1fYXR0cmlidXRlZEJ1bmRsZUlkZW50aWZpZXJGcm9t
UGFnZUlkZW50aWZpZXJzOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2Eu
bW0gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29j
b2EubW0KaW5kZXggYzgzN2VlNWFlZWU4NmY2NDhhM2M3NjYzODdlMjU4OGU0OWVhZjgyMi4uYTQz
ODFkMGYxOWIwMjVhZTZjMGRhZTFmZTJiOWRkNzZkMTIwNmEyMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5t
bQpAQCAtMTc2MCwxMSArMTc2MCwxNCBAQCB2b2lkIE5ldHdvcmtTZXNzaW9uQ29jb2E6OmFkZFdl
YlBhZ2VOZXR3b3JrUGFyYW1ldGVycyhXZWJQYWdlUHJveHlJZGVudGlmaWVyIHBhZwogI2VuZGlm
CiAgICAgaW5pdGlhbGl6ZU5TVVJMU2Vzc2lvbnNJblNldChhZGRSZXN1bHQyLml0ZXJhdG9yLT52
YWx1ZS5nZXQoKSwgY29uZmlndXJhdGlvbi5nZXQoKSk7CiAgICAgYWRkUmVzdWx0MS5pdGVyYXRv
ci0+dmFsdWUgPSBtYWtlV2Vha1B0cihhZGRSZXN1bHQyLml0ZXJhdG9yLT52YWx1ZS5nZXQoKSk7
CisKKyAgICBtX2F0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVyRnJvbVBhZ2VJZGVudGlmaWVycy5h
ZGQocGFnZUlELCBwYXJhbWV0ZXJzLmF0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVyKCkpOwogfQog
CiB2b2lkIE5ldHdvcmtTZXNzaW9uQ29jb2E6OnJlbW92ZVdlYlBhZ2VOZXR3b3JrUGFyYW1ldGVy
cyhXZWJQYWdlUHJveHlJZGVudGlmaWVyIHBhZ2VJRCkKIHsKICAgICBtX3BlclBhZ2VTZXNzaW9u
U2V0cy5yZW1vdmUocGFnZUlEKTsKKyAgICBtX2F0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVyRnJv
bVBhZ2VJZGVudGlmaWVycy5yZW1vdmUocGFnZUlEKTsKIH0KIAogc2l6ZV90IE5ldHdvcmtTZXNz
aW9uQ29jb2E6OmNvdW50Tm9uRGVmYXVsdFNlc3Npb25TZXRzKCkgY29uc3QKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlci5j
cHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlk
ZXIuY3BwCmluZGV4IGNhYjU4MjFmYWVkNmE3MWY4YWUwZWZjNDM1ZWY3ZjYyZDZlZWEwYjEuLjEz
NmNhZWZiMTE5OWY4OTMzYWQyNjhlNDg3NTFlZWYzYTA2OTYyNmIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlci5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVy
LmNwcApAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzLmgiCiAjaW5j
bHVkZSAiTmV0d29ya1JUQ1Byb3ZpZGVyTWVzc2FnZXMuaCIKICNpbmNsdWRlICJOZXR3b3JrUlRD
UmVzb2x2ZXIuaCIKKyNpbmNsdWRlICJOZXR3b3JrU2Vzc2lvbi5oIgogI2luY2x1ZGUgIlJUQ1Bh
Y2tldE9wdGlvbnMuaCIKICNpbmNsdWRlICJXZWJSVENSZXNvbHZlck1lc3NhZ2VzLmgiCiAjaW5j
bHVkZSA8V2ViQ29yZS9MaWJXZWJSVENNYWNyb3MuaD4KQEAgLTEzNSwxOCArMTM2LDMzIEBAIHZv
aWQgTmV0d29ya1JUQ1Byb3ZpZGVyOjpjcmVhdGVTb2NrZXQoTGliV2ViUlRDU29ja2V0SWRlbnRp
ZmllciBpZGVudGlmaWVyLCBzdGQ6CiAgICAgYWRkU29ja2V0KGlkZW50aWZpZXIsIG1ha2VVbmlx
dWU8TGliV2ViUlRDU29ja2V0Q2xpZW50PihpZGVudGlmaWVyLCAqdGhpcywgV1RGTW92ZShzb2Nr
ZXQpLCB0eXBlLCBXVEZNb3ZlKGNvbm5lY3Rpb24pKSk7CiB9CiAKLXZvaWQgTmV0d29ya1JUQ1By
b3ZpZGVyOjpjcmVhdGVVRFBTb2NrZXQoTGliV2ViUlRDU29ja2V0SWRlbnRpZmllciBpZGVudGlm
aWVyLCBjb25zdCBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzJiBhZGRyZXNzLCB1aW50MTZfdCBt
aW5Qb3J0LCB1aW50MTZfdCBtYXhQb3J0LCBib29sIGlzRmlyc3RQYXJ0eSwgYm9vbCBpc1JlbGF5
RGlzYWJsZWQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiYgZG9tYWluKQorI2lmIFBMQVRG
T1JNKENPQ09BKQorY29uc3QgU3RyaW5nJiBOZXR3b3JrUlRDUHJvdmlkZXI6OmF0dHJpYnV0ZWRC
dW5kbGVJZGVudGlmaWVyRnJvbVBhZ2VJZGVudGlmaWVyKFdlYlBhZ2VQcm94eUlkZW50aWZpZXIg
cGFnZUlkZW50aWZpZXIpCit7CisgICAgcmV0dXJuIG1fYXR0cmlidXRlZEJ1bmRsZUlkZW50aWZp
ZXJzLmVuc3VyZShwYWdlSWRlbnRpZmllciwgWyZdKCkgLT4gU3RyaW5nIHsKKyAgICAgICAgU3Ry
aW5nIHZhbHVlOworICAgICAgICBjYWxsT25NYWluUnVuTG9vcEFuZFdhaXQoWyZdIHsKKyAgICAg
ICAgICAgIGF1dG8qIHNlc3Npb24gPSBtX2Nvbm5lY3Rpb24tPm5ldHdvcmtTZXNzaW9uKCk7Cisg
ICAgICAgICAgICBpZiAoc2Vzc2lvbikKKyAgICAgICAgICAgICAgICB2YWx1ZSA9IHNlc3Npb24t
PmF0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVyRnJvbVBhZ2VJZGVudGlmaWVyKHBhZ2VJZGVudGlm
aWVyKS5pc29sYXRlZENvcHkoKTsKKyAgICAgICAgfSk7CisgICAgICAgIHJldHVybiB2YWx1ZTsK
KyAgICB9KS5pdGVyYXRvci0+dmFsdWU7Cit9CisjZW5kaWYKKwordm9pZCBOZXR3b3JrUlRDUHJv
dmlkZXI6OmNyZWF0ZVVEUFNvY2tldChMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyIGlkZW50aWZp
ZXIsIGNvbnN0IFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MmIGFkZHJlc3MsIHVpbnQxNl90IG1p
blBvcnQsIHVpbnQxNl90IG1heFBvcnQsIFdlYlBhZ2VQcm94eUlkZW50aWZpZXIgcGFnZUlkZW50
aWZpZXIsIGJvb2wgaXNGaXJzdFBhcnR5LCBib29sIGlzUmVsYXlEaXNhYmxlZCwgV2ViQ29yZTo6
UmVnaXN0cmFibGVEb21haW4mJiBkb21haW4pCiB7CisgICAgQVNTRVJUKG1fcnRjTmV0d29ya1Ro
cmVhZC5Jc0N1cnJlbnQoKSk7CiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgaWYgKG1fcGxhdGZv
cm1VRFBTb2NrZXRzRW5hYmxlZCkgewotICAgICAgICBpZiAoYXV0byBzb2NrZXQgPSBOZXR3b3Jr
UlRDVURQU29ja2V0Q29jb2E6OmNyZWF0ZVVEUFNvY2tldChpZGVudGlmaWVyLCAqdGhpcywgYWRk
cmVzcy52YWx1ZSwgbWluUG9ydCwgbWF4UG9ydCwgbV9pcGNDb25uZWN0aW9uLmNvcHlSZWYoKSwg
aXNGaXJzdFBhcnR5LCBpc1JlbGF5RGlzYWJsZWQsIFdURk1vdmUoZG9tYWluKSkpIHsKKyAgICAg
ICAgaWYgKGF1dG8gc29ja2V0ID0gTmV0d29ya1JUQ1VEUFNvY2tldENvY29hOjpjcmVhdGVVRFBT
b2NrZXQoaWRlbnRpZmllciwgKnRoaXMsIGFkZHJlc3MudmFsdWUsIG1pblBvcnQsIG1heFBvcnQs
IG1faXBjQ29ubmVjdGlvbi5jb3B5UmVmKCksIFN0cmluZyhhdHRyaWJ1dGVkQnVuZGxlSWRlbnRp
ZmllckZyb21QYWdlSWRlbnRpZmllcihwYWdlSWRlbnRpZmllcikpLCBpc0ZpcnN0UGFydHksIGlz
UmVsYXlEaXNhYmxlZCwgICBXVEZNb3ZlKGRvbWFpbikpKSB7CiAgICAgICAgICAgICBhZGRTb2Nr
ZXQoaWRlbnRpZmllciwgV1RGTW92ZShzb2NrZXQpKTsKICAgICAgICAgICAgIHJldHVybjsKICAg
ICAgICAgfQogICAgIH0KICNlbmRpZgogCi0gICAgQVNTRVJUKG1fcnRjTmV0d29ya1RocmVhZC5J
c0N1cnJlbnQoKSk7CiAgICAgc3RkOjp1bmlxdWVfcHRyPHJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQ+
IHNvY2tldChtX3BhY2tldFNvY2tldEZhY3RvcnktPkNyZWF0ZVVkcFNvY2tldChhZGRyZXNzLnZh
bHVlLCBtaW5Qb3J0LCBtYXhQb3J0KSk7CiAgICAgY3JlYXRlU29ja2V0KGlkZW50aWZpZXIsIFdU
Rk1vdmUoc29ja2V0KSwgU29ja2V0OjpUeXBlOjpVRFAsIG1faXBjQ29ubmVjdGlvbi5jb3B5UmVm
KCkpOwogfQpAQCAtMTc3LDkgKzE5MywyMCBAQCBydGM6OlByb3h5SW5mbyBOZXR3b3JrUlRDUHJv
dmlkZXI6OnByb3h5SW5mb0Zyb21TZXNzaW9uKGNvbnN0IFJUQ05ldHdvcms6OlNvY2tldAogfQog
I2VuZGlmCiAKLXZvaWQgTmV0d29ya1JUQ1Byb3ZpZGVyOjpjcmVhdGVDbGllbnRUQ1BTb2NrZXQo
TGliV2ViUlRDU29ja2V0SWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBSVENOZXR3b3JrOjpT
b2NrZXRBZGRyZXNzJiBsb2NhbEFkZHJlc3MsIGNvbnN0IFJUQ05ldHdvcms6OlNvY2tldEFkZHJl
c3MmIHJlbW90ZUFkZHJlc3MsIFN0cmluZyYmIHVzZXJBZ2VudCwgaW50IG9wdGlvbnMsIGJvb2wg
aXNSZWxheURpc2FibGVkKQordm9pZCBOZXR3b3JrUlRDUHJvdmlkZXI6OmNyZWF0ZUNsaWVudFRD
UFNvY2tldChMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IFJUQ05l
dHdvcms6OlNvY2tldEFkZHJlc3MmIGxvY2FsQWRkcmVzcywgY29uc3QgUlRDTmV0d29yazo6U29j
a2V0QWRkcmVzcyYgcmVtb3RlQWRkcmVzcywgU3RyaW5nJiYgdXNlckFnZW50LCBpbnQgb3B0aW9u
cywgV2ViUGFnZVByb3h5SWRlbnRpZmllciBwYWdlSWRlbnRpZmllciwgYm9vbCBpc1JlbGF5RGlz
YWJsZWQpCiB7Ci0gICAgY2FsbE9uTWFpblJ1bkxvb3AoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBt
YWtlUmVmKCp0aGlzKSwgaWRlbnRpZmllciwgbG9jYWxBZGRyZXNzLCByZW1vdGVBZGRyZXNzLCB1
c2VyQWdlbnQgPSBXVEZNb3ZlKHVzZXJBZ2VudCkuaXNvbGF0ZWRDb3B5KCksIG9wdGlvbnMsIGlz
UmVsYXlEaXNhYmxlZF0oKSBtdXRhYmxlIHsKKyAgICBBU1NFUlQobV9ydGNOZXR3b3JrVGhyZWFk
LklzQ3VycmVudCgpKTsKKworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIGlmIChtX3BsYXRmb3Jt
VENQU29ja2V0c0VuYWJsZWQpIHsKKyAgICAgICAgaWYgKGF1dG8gc29ja2V0ID0gTmV0d29ya1JU
Q1RDUFNvY2tldENvY29hOjpjcmVhdGVDbGllbnRUQ1BTb2NrZXQoaWRlbnRpZmllciwgKnRoaXMs
IHJlbW90ZUFkZHJlc3MudmFsdWUsIG9wdGlvbnMsIGF0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVy
RnJvbVBhZ2VJZGVudGlmaWVyKHBhZ2VJZGVudGlmaWVyKSwgaXNSZWxheURpc2FibGVkLCBtX2lw
Y0Nvbm5lY3Rpb24uY29weVJlZigpKSkgeworICAgICAgICAgICAgYWRkU29ja2V0KGlkZW50aWZp
ZXIsIFdURk1vdmUoc29ja2V0KSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAg
ICB9CisjZW5kaWYKKworICAgIGNhbGxPbk1haW5SdW5Mb29wKFt0aGlzLCBwcm90ZWN0ZWRUaGlz
ID0gbWFrZVJlZigqdGhpcyksIGlkZW50aWZpZXIsIGxvY2FsQWRkcmVzcywgcmVtb3RlQWRkcmVz
cywgdXNlckFnZW50ID0gV1RGTW92ZSh1c2VyQWdlbnQpLmlzb2xhdGVkQ29weSgpLCBvcHRpb25z
XSgpIG11dGFibGUgewogICAgICAgICBpZiAoIW1fY29ubmVjdGlvbikKICAgICAgICAgICAgIHJl
dHVybjsKIApAQCAtMTg4LDE1ICsyMTUsOCBAQCB2b2lkIE5ldHdvcmtSVENQcm92aWRlcjo6Y3Jl
YXRlQ2xpZW50VENQU29ja2V0KExpYldlYlJUQ1NvY2tldElkZW50aWZpZXIgaWRlbnRpZgogICAg
ICAgICAgICAgbV9jb25uZWN0aW9uLT5jb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6TGliV2Vi
UlRDTmV0d29yazo6U2lnbmFsQ2xvc2UoaWRlbnRpZmllciwgMSksIDApOwogICAgICAgICAgICAg
cmV0dXJuOwogICAgICAgICB9Ci0gICAgICAgIGNhbGxPblJUQ05ldHdvcmtUaHJlYWQoW3RoaXMs
IGlkZW50aWZpZXIsIGxvY2FsQWRkcmVzcyA9IFJUQ05ldHdvcms6Omlzb2xhdGVkQ29weShsb2Nh
bEFkZHJlc3MudmFsdWUpLCByZW1vdGVBZGRyZXNzID0gUlRDTmV0d29yazo6aXNvbGF0ZWRDb3B5
KHJlbW90ZUFkZHJlc3MudmFsdWUpLCBwcm94eUluZm8gPSBwcm94eUluZm9Gcm9tU2Vzc2lvbihy
ZW1vdGVBZGRyZXNzLCAqc2Vzc2lvbiksIHVzZXJBZ2VudCA9IFdURk1vdmUodXNlckFnZW50KS5p
c29sYXRlZENvcHkoKSwgb3B0aW9ucywgaXNSZWxheURpc2FibGVkXSgpIG11dGFibGUgewotI2lm
IFBMQVRGT1JNKENPQ09BKQotICAgICAgICAgICAgaWYgKG1fcGxhdGZvcm1UQ1BTb2NrZXRzRW5h
YmxlZCkgewotICAgICAgICAgICAgICAgIGlmIChhdXRvIHNvY2tldCA9IE5ldHdvcmtSVENUQ1BT
b2NrZXRDb2NvYTo6Y3JlYXRlQ2xpZW50VENQU29ja2V0KGlkZW50aWZpZXIsICp0aGlzLCByZW1v
dGVBZGRyZXNzLCBvcHRpb25zLCBpc1JlbGF5RGlzYWJsZWQsIG1faXBjQ29ubmVjdGlvbi5jb3B5
UmVmKCkpKSB7Ci0gICAgICAgICAgICAgICAgICAgIGFkZFNvY2tldChpZGVudGlmaWVyLCBXVEZN
b3ZlKHNvY2tldCkpOwotICAgICAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICAg
ICAgfQotICAgICAgICAgICAgfQotI2VuZGlmCisgICAgICAgIGNhbGxPblJUQ05ldHdvcmtUaHJl
YWQoW3RoaXMsIGlkZW50aWZpZXIsIGxvY2FsQWRkcmVzcyA9IFJUQ05ldHdvcms6Omlzb2xhdGVk
Q29weShsb2NhbEFkZHJlc3MudmFsdWUpLCByZW1vdGVBZGRyZXNzID0gUlRDTmV0d29yazo6aXNv
bGF0ZWRDb3B5KHJlbW90ZUFkZHJlc3MudmFsdWUpLCBwcm94eUluZm8gPSBwcm94eUluZm9Gcm9t
U2Vzc2lvbihyZW1vdGVBZGRyZXNzLCAqc2Vzc2lvbiksIHVzZXJBZ2VudCA9IFdURk1vdmUodXNl
ckFnZW50KS5pc29sYXRlZENvcHkoKSwgb3B0aW9uc10oKSBtdXRhYmxlIHsKKwogICAgICAgICAg
ICAgcnRjOjpQYWNrZXRTb2NrZXRUY3BPcHRpb25zIHRjcE9wdGlvbnM7CiAgICAgICAgICAgICB0
Y3BPcHRpb25zLm9wdHMgPSBvcHRpb25zOwogICAgICAgICAgICAgc3RkOjp1bmlxdWVfcHRyPHJ0
Yzo6QXN5bmNQYWNrZXRTb2NrZXQ+IHNvY2tldChtX3BhY2tldFNvY2tldEZhY3RvcnktPkNyZWF0
ZUNsaWVudFRjcFNvY2tldChsb2NhbEFkZHJlc3MsIHJlbW90ZUFkZHJlc3MsIHByb3h5SW5mbywg
dXNlckFnZW50LnV0ZjgoKS5kYXRhKCksIHRjcE9wdGlvbnMpKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlci5oIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVyLmgKaW5k
ZXggYzljY2VkNjJmYzYyNTlmNTNhZjI0NzVlMGEzNGMwMDMxOWEzODk1YS4uMDRiNWM1YWJhZDYz
NzFkNjU2YWUzZGU0ZDRlNWY0MWZhYjczZjc1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVyLmgKKysrIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVyLmgKQEAgLTMyLDYg
KzMyLDcgQEAKICNpbmNsdWRlICJMaWJXZWJSVENSZXNvbHZlcklkZW50aWZpZXIuaCIKICNpbmNs
dWRlICJOZXR3b3JrUlRDTW9uaXRvci5oIgogI2luY2x1ZGUgIlJUQ05ldHdvcmsuaCIKKyNpbmNs
dWRlICJXZWJQYWdlUHJveHlJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9MaWJXZWJS
VENNYWNyb3MuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0xpYldlYlJUQ1NvY2tldElkZW50aWZpZXIu
aD4KICNpbmNsdWRlIDx3ZWJydGMvcDJwL2Jhc2UvYmFzaWNfcGFja2V0X3NvY2tldF9mYWN0b3J5
Lmg+CkBAIC0xMTMsOCArMTE0LDggQEAgcHJpdmF0ZToKICAgICBleHBsaWNpdCBOZXR3b3JrUlRD
UHJvdmlkZXIoTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmKTsKICAgICB2b2lkIHN0YXJ0
TGlzdGVuaW5nRm9ySVBDKCk7CiAKLSAgICB2b2lkIGNyZWF0ZVVEUFNvY2tldChXZWJDb3JlOjpM
aWJXZWJSVENTb2NrZXRJZGVudGlmaWVyLCBjb25zdCBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNz
JiwgdWludDE2X3QsIHVpbnQxNl90LCBib29sIGlzRmlyc3RQYXJ0eSwgYm9vbCBpc1JlbGF5RGlz
YWJsZWQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiYpOwotICAgIHZvaWQgY3JlYXRlQ2xp
ZW50VENQU29ja2V0KFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50aWZpZXIsIGNvbnN0IFJU
Q05ldHdvcms6OlNvY2tldEFkZHJlc3MmLCBjb25zdCBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNz
JiwgU3RyaW5nJiYgdXNlckFnZW50LCBpbnQsIGJvb2wgaXNSZWxheURpc2FibGVkKTsKKyAgICB2
b2lkIGNyZWF0ZVVEUFNvY2tldChXZWJDb3JlOjpMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyLCBj
b25zdCBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzJiwgdWludDE2X3QsIHVpbnQxNl90LCBXZWJQ
YWdlUHJveHlJZGVudGlmaWVyLCBib29sIGlzRmlyc3RQYXJ0eSwgYm9vbCBpc1JlbGF5RGlzYWJs
ZWQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiYpOworICAgIHZvaWQgY3JlYXRlQ2xpZW50
VENQU29ja2V0KFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50aWZpZXIsIGNvbnN0IFJUQ05l
dHdvcms6OlNvY2tldEFkZHJlc3MmLCBjb25zdCBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzJiwg
U3RyaW5nJiYgdXNlckFnZW50LCBpbnQsIFdlYlBhZ2VQcm94eUlkZW50aWZpZXIsIGJvb2wgaXNS
ZWxheURpc2FibGVkKTsKICAgICB2b2lkIGNyZWF0ZVNlcnZlclRDUFNvY2tldChXZWJDb3JlOjpM
aWJXZWJSVENTb2NrZXRJZGVudGlmaWVyLCBjb25zdCBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNz
JiwgdWludDE2X3QgbWluUG9ydCwgdWludDE2X3QgbWF4UG9ydCwgaW50KTsKICAgICB2b2lkIHdy
YXBOZXdUQ1BDb25uZWN0aW9uKFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50aWZpZXIgaWRl
bnRpZmllciwgV2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmllciBuZXdDb25uZWN0aW9u
U29ja2V0SWRlbnRpZmllcik7CiAgICAgdm9pZCBzZW5kVG9Tb2NrZXQoV2ViQ29yZTo6TGliV2Vi
UlRDU29ja2V0SWRlbnRpZmllciwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiwgUlRDTmV0d29y
azo6U29ja2V0QWRkcmVzcyYmLCBSVENQYWNrZXRPcHRpb25zJiYpOwpAQCAtMTM2LDYgKzEzNywx
MCBAQCBwcml2YXRlOgogCiAgICAgc3RhdGljIHJ0Yzo6UHJveHlJbmZvIHByb3h5SW5mb0Zyb21T
ZXNzaW9uKGNvbnN0IFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MmLCBOZXR3b3JrU2Vzc2lvbiYp
OwogCisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgY29uc3QgU3RyaW5nJiBhdHRyaWJ1dGVkQnVu
ZGxlSWRlbnRpZmllckZyb21QYWdlSWRlbnRpZmllcihXZWJQYWdlUHJveHlJZGVudGlmaWVyKTsK
KyNlbmRpZgorCiAgICAgSGFzaE1hcDxMaWJXZWJSVENSZXNvbHZlcklkZW50aWZpZXIsIHN0ZDo6
dW5pcXVlX3B0cjxOZXR3b3JrUlRDUmVzb2x2ZXI+PiBtX3Jlc29sdmVyczsKICAgICBIYXNoTWFw
PFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50aWZpZXIsIHN0ZDo6dW5pcXVlX3B0cjxTb2Nr
ZXQ+PiBtX3NvY2tldHM7CiAgICAgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MqIG1fY29u
bmVjdGlvbjsKQEAgLTE1Myw2ICsxNTgsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9wbGF0Zm9y
bVVEUFNvY2tldHNFbmFibGVkIHsgZmFsc2UgfTsKIAogI2lmIFBMQVRGT1JNKENPQ09BKQorICAg
IEhhc2hNYXA8V2ViUGFnZVByb3h5SWRlbnRpZmllciwgU3RyaW5nPiBtX2F0dHJpYnV0ZWRCdW5k
bGVJZGVudGlmaWVyczsKICAgICBzdGQ6Om9wdGlvbmFsPGF1ZGl0X3Rva2VuX3Q+IG1fc291cmNl
QXBwbGljYXRpb25BdWRpdFRva2VuOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlci5tZXNzYWdlcy5pbiBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlci5t
ZXNzYWdlcy5pbgppbmRleCA3ZjdkNzllYzUxNmE4Y2VjYWMyYmJkODk4ODFlZDFiZGEzMmJjZDQz
Li5jMmQ4YjI5YmRmYTdiZjEzMWI5MmJjYThmZmE4MjZiNGVkNDlmMzNlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIubWVz
c2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29y
a1JUQ1Byb3ZpZGVyLm1lc3NhZ2VzLmluCkBAIC0yMyw5ICsyMyw5IEBACiAjaWYgVVNFKExJQldF
QlJUQykKIAogbWVzc2FnZXMgLT4gTmV0d29ya1JUQ1Byb3ZpZGVyIHsKLSAgICBDcmVhdGVVRFBT
b2NrZXQoV2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJL
aXQ6OlJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MgbG9jYWxBZGRyZXNzLCB1aW50MTZfdCBtaW5Q
b3J0LCB1aW50MTZfdCBtYXhQb3J0LCBib29sIGlzRmlyc3RQYXJ0eSwgYm9vbCBpc1JlbGF5RGlz
YWJsZWQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIGRvbWFpbikKKyAgICBDcmVhdGVVRFBT
b2NrZXQoV2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJL
aXQ6OlJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MgbG9jYWxBZGRyZXNzLCB1aW50MTZfdCBtaW5Q
b3J0LCB1aW50MTZfdCBtYXhQb3J0LCBXZWJLaXQ6OldlYlBhZ2VQcm94eUlkZW50aWZpZXIgcGFn
ZUlkZW50aWZpZXIsIGJvb2wgaXNGaXJzdFBhcnR5LCBib29sIGlzUmVsYXlEaXNhYmxlZCwgV2Vi
Q29yZTo6UmVnaXN0cmFibGVEb21haW4gZG9tYWluKQogICAgIENyZWF0ZVNlcnZlclRDUFNvY2tl
dChXZWJDb3JlOjpMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYktpdDo6
UlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyBsb2NhbEFkZHJlc3MsIHVpbnQxNl90IG1pblBvcnQs
IHVpbnQxNl90IG1heFBvcnQsIGludCBvcHRpb25zKQotICAgIENyZWF0ZUNsaWVudFRDUFNvY2tl
dChXZWJDb3JlOjpMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYktpdDo6
UlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyBsb2NhbEFkZHJlc3MsIFdlYktpdDo6UlRDTmV0d29y
azo6U29ja2V0QWRkcmVzcyByZW1vdGVBZGRyZXNzLCBTdHJpbmcgdXNlckFnZW50LCBpbnQgb3B0
aW9ucywgYm9vbCBpc1JlbGF5RGlzYWJsZWQpCisgICAgQ3JlYXRlQ2xpZW50VENQU29ja2V0KFdl
YkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViS2l0OjpSVENO
ZXR3b3JrOjpTb2NrZXRBZGRyZXNzIGxvY2FsQWRkcmVzcywgV2ViS2l0OjpSVENOZXR3b3JrOjpT
b2NrZXRBZGRyZXNzIHJlbW90ZUFkZHJlc3MsIFN0cmluZyB1c2VyQWdlbnQsIGludCBvcHRpb25z
LCBXZWJLaXQ6OldlYlBhZ2VQcm94eUlkZW50aWZpZXIgcGFnZUlkZW50aWZpZXIsIGJvb2wgaXNS
ZWxheURpc2FibGVkKQogICAgIFdyYXBOZXdUQ1BDb25uZWN0aW9uKFdlYkNvcmU6OkxpYldlYlJU
Q1NvY2tldElkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRl
bnRpZmllciBuZXdDb25uZWN0aW9uU29ja2V0SWRlbnRpZmllcikKIAogICAgIHZvaWQgU2V0UGxh
dGZvcm1UQ1BTb2NrZXRzRW5hYmxlZChib29sIGVuYWJsZWQpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDVENQU29ja2V0Q29jb2EuaCBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENUQ1BTb2NrZXRD
b2NvYS5oCmluZGV4IGY0MTI1ZDNjYjA4ZmVjZjkyNjM2MzM4N2I5Y2EwMDM0M2Q4MmRhMmUuLjJl
MjkxZTEwNWIxOWRiMzVjY2ZiMDBmMzdjZWRmOTVjZDJkOTk4ODYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENUQ1BTb2NrZXRDb2NvYS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENUQ1BT
b2NrZXRDb2NvYS5oCkBAIC0zOSw5ICszOSw5IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogY2xhc3Mg
TmV0d29ya1JUQ1RDUFNvY2tldENvY29hIGZpbmFsIDogcHVibGljIE5ldHdvcmtSVENQcm92aWRl
cjo6U29ja2V0IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBz
dGF0aWMgc3RkOjp1bmlxdWVfcHRyPE5ldHdvcmtSVENQcm92aWRlcjo6U29ja2V0PiBjcmVhdGVD
bGllbnRUQ1BTb2NrZXQoV2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmllciwgTmV0d29y
a1JUQ1Byb3ZpZGVyJiwgY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiwgaW50IG9wdGlvbnMsIGJv
b2wgaXNSZWxheURpc2FibGVkLCBSZWY8SVBDOjpDb25uZWN0aW9uPiYmKTsKKyAgICBzdGF0aWMg
c3RkOjp1bmlxdWVfcHRyPE5ldHdvcmtSVENQcm92aWRlcjo6U29ja2V0PiBjcmVhdGVDbGllbnRU
Q1BTb2NrZXQoV2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmllciwgTmV0d29ya1JUQ1By
b3ZpZGVyJiwgY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiwgaW50IG9wdGlvbnMsIGNvbnN0IFN0
cmluZyYgYXR0cmlidXRlZEJ1bmRsZUlkZW50aWZpZXIsIGJvb2wgaXNSZWxheURpc2FibGVkLCBS
ZWY8SVBDOjpDb25uZWN0aW9uPiYmKTsKIAotICAgIE5ldHdvcmtSVENUQ1BTb2NrZXRDb2NvYShX
ZWJDb3JlOjpMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyLCBOZXR3b3JrUlRDUHJvdmlkZXImLCBj
b25zdCBydGM6OlNvY2tldEFkZHJlc3MmLCBpbnQgb3B0aW9ucywgYm9vbCBpc1JlbGF5RGlzYWJs
ZWQsIFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYpOworICAgIE5ldHdvcmtSVENUQ1BTb2NrZXRDb2Nv
YShXZWJDb3JlOjpMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyLCBOZXR3b3JrUlRDUHJvdmlkZXIm
LCBjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmLCBpbnQgb3B0aW9ucywgY29uc3QgU3RyaW5nJiBh
dHRyaWJ1dGVkQnVuZGxlSWRlbnRpZmllciwgYm9vbCBpc1JlbGF5RGlzYWJsZWQsIFJlZjxJUEM6
OkNvbm5lY3Rpb24+JiYpOwogCiBwcml2YXRlOgogICAgIC8vIE5ldHdvcmtSVENQcm92aWRlcjo6
U29ja2V0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMv
TmV0d29ya1JUQ1RDUFNvY2tldENvY29hLm1tIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy93ZWJydGMvTmV0d29ya1JUQ1RDUFNvY2tldENvY29hLm1tCmluZGV4IDNmYmQwZTBiMmFmMGEy
ZmFhZDVlMDI0NjJiYTdjMjgyOTU3MDY2NjQuLmFlNmI3NzI3MGQxYWE3YmZlNzM3OTUzMzM0OTgy
ZDdjYTEzNmYwMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2Vi
cnRjL05ldHdvcmtSVENUQ1BTb2NrZXRDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDVENQU29ja2V0Q29jb2EubW0KQEAgLTUwLDEyICs1
MCwxMiBAQCBzdGF0aWMgZGlzcGF0Y2hfcXVldWVfdCB0Y3BTb2NrZXRRdWV1ZSgpCiAgICAgcmV0
dXJuIHF1ZXVlOwogfQogCi1zdGQ6OnVuaXF1ZV9wdHI8TmV0d29ya1JUQ1Byb3ZpZGVyOjpTb2Nr
ZXQ+IE5ldHdvcmtSVENUQ1BTb2NrZXRDb2NvYTo6Y3JlYXRlQ2xpZW50VENQU29ja2V0KExpYldl
YlJUQ1NvY2tldElkZW50aWZpZXIgaWRlbnRpZmllciwgTmV0d29ya1JUQ1Byb3ZpZGVyJiBydGNQ
cm92aWRlciwgY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiByZW1vdGVBZGRyZXNzLCBpbnQgdGNw
T3B0aW9ucywgYm9vbCBpc1JlbGF5RGlzYWJsZWQsIFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYgY29u
bmVjdGlvbikKK3N0ZDo6dW5pcXVlX3B0cjxOZXR3b3JrUlRDUHJvdmlkZXI6OlNvY2tldD4gTmV0
d29ya1JUQ1RDUFNvY2tldENvY29hOjpjcmVhdGVDbGllbnRUQ1BTb2NrZXQoTGliV2ViUlRDU29j
a2V0SWRlbnRpZmllciBpZGVudGlmaWVyLCBOZXR3b3JrUlRDUHJvdmlkZXImIHJ0Y1Byb3ZpZGVy
LCBjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmIHJlbW90ZUFkZHJlc3MsIGludCB0Y3BPcHRpb25z
LCBjb25zdCBTdHJpbmcmIGF0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVyLCBib29sIGlzUmVsYXlE
aXNhYmxlZCwgUmVmPElQQzo6Q29ubmVjdGlvbj4mJiBjb25uZWN0aW9uKQogewogICAgIC8vIEZJ
WE1FOiBXZSBzaG91bGQgbWlncmF0ZSBzc2x0Y3AgY2FuZGlkYXRlcywgbWF5YmUgc3VwcG9ydCBP
UFRfVExTX0lOU0VDVVJFIGFzIHdlbGwuCiAgICAgaWYgKCh0Y3BPcHRpb25zICYgcnRjOjpQYWNr
ZXRTb2NrZXRGYWN0b3J5OjpPUFRfVExTX0ZBS0UpIHx8ICh0Y3BPcHRpb25zICYgcnRjOjpQYWNr
ZXRTb2NrZXRGYWN0b3J5OjpPUFRfVExTX0lOU0VDVVJFKSkKICAgICAgICAgcmV0dXJuIG51bGxw
dHI7Ci0gICAgcmV0dXJuIG1ha2VVbmlxdWU8TmV0d29ya1JUQ1RDUFNvY2tldENvY29hPihpZGVu
dGlmaWVyLCBydGNQcm92aWRlciwgcmVtb3RlQWRkcmVzcywgdGNwT3B0aW9ucywgaXNSZWxheURp
c2FibGVkLCBXVEZNb3ZlKGNvbm5lY3Rpb24pKTsKKyAgICByZXR1cm4gbWFrZVVuaXF1ZTxOZXR3
b3JrUlRDVENQU29ja2V0Q29jb2E+KGlkZW50aWZpZXIsIHJ0Y1Byb3ZpZGVyLCByZW1vdGVBZGRy
ZXNzLCB0Y3BPcHRpb25zLCBhdHRyaWJ1dGVkQnVuZGxlSWRlbnRpZmllciwgaXNSZWxheURpc2Fi
bGVkLCBXVEZNb3ZlKGNvbm5lY3Rpb24pKTsKIH0KIAogc3RhdGljIGlubGluZSB2b2lkIHByb2Nl
c3NJbmNvbWluZ0RhdGEoUmV0YWluUHRyPG53X2Nvbm5lY3Rpb25fdD4mJiBud0Nvbm5lY3Rpb24s
IEZ1bmN0aW9uPFZlY3Rvcjx1aW50OF90PihWZWN0b3I8dWludDhfdD4mJik+JiYgcHJvY2Vzc0Rh
dGEsIFZlY3Rvcjx1aW50OF90PiYmIGJ1ZmZlciA9IHsgfSkKQEAgLTgwLDcgKzgwLDcgQEAgc3Rh
dGljIGlubGluZSB2b2lkIHByb2Nlc3NJbmNvbWluZ0RhdGEoUmV0YWluUHRyPG53X2Nvbm5lY3Rp
b25fdD4mJiBud0Nvbm5lY3Rpb24KICAgICB9KS5nZXQoKSk7CiB9CiAKLU5ldHdvcmtSVENUQ1BT
b2NrZXRDb2NvYTo6TmV0d29ya1JUQ1RDUFNvY2tldENvY29hKExpYldlYlJUQ1NvY2tldElkZW50
aWZpZXIgaWRlbnRpZmllciwgTmV0d29ya1JUQ1Byb3ZpZGVyJiBydGNQcm92aWRlciwgY29uc3Qg
cnRjOjpTb2NrZXRBZGRyZXNzJiByZW1vdGVBZGRyZXNzLCBpbnQgb3B0aW9ucywgYm9vbCBpc1Jl
bGF5RGlzYWJsZWQsIFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYgY29ubmVjdGlvbikKK05ldHdvcmtS
VENUQ1BTb2NrZXRDb2NvYTo6TmV0d29ya1JUQ1RDUFNvY2tldENvY29hKExpYldlYlJUQ1NvY2tl
dElkZW50aWZpZXIgaWRlbnRpZmllciwgTmV0d29ya1JUQ1Byb3ZpZGVyJiBydGNQcm92aWRlciwg
Y29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiByZW1vdGVBZGRyZXNzLCBpbnQgb3B0aW9ucywgY29u
c3QgU3RyaW5nJiBhdHRyaWJ1dGVkQnVuZGxlSWRlbnRpZmllciwgYm9vbCBpc1JlbGF5RGlzYWJs
ZWQsIFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYgY29ubmVjdGlvbikKICAgICA6IG1faWRlbnRpZmll
cihpZGVudGlmaWVyKQogICAgICwgbV9ydGNQcm92aWRlcihydGNQcm92aWRlcikKICAgICAsIG1f
Y29ubmVjdGlvbihXVEZNb3ZlKGNvbm5lY3Rpb24pKQpAQCAtOTgsNiArOTgsOCBAQCBOZXR3b3Jr
UlRDVENQU29ja2V0Q29jb2E6Ok5ldHdvcmtSVENUQ1BTb2NrZXRDb2NvYShMaWJXZWJSVENTb2Nr
ZXRJZGVudGlmaWVyIGlkZQogCiAgICAgaWYgKGF1dG8gdG9rZW4gPSBydGNQcm92aWRlci5zb3Vy
Y2VBcHBsaWNhdGlvbkF1ZGl0VG9rZW4oKSkKICAgICAgICAgbndfcGFyYW1ldGVyc19zZXRfc291
cmNlX2FwcGxpY2F0aW9uKHRjcFRMUy5nZXQoKSwgKnRva2VuKTsKKyAgICBpZiAoIWF0dHJpYnV0
ZWRCdW5kbGVJZGVudGlmaWVyLmlzRW1wdHkoKSkKKyAgICAgICAgbndfcGFyYW1ldGVyc19zZXRf
c291cmNlX2FwcGxpY2F0aW9uX2J5X2J1bmRsZV9pZCh0Y3BUTFMuZ2V0KCksIGF0dHJpYnV0ZWRC
dW5kbGVJZGVudGlmaWVyLnV0ZjgoKS5kYXRhKCkpOwogICAgIGlmIChpc1JlbGF5RGlzYWJsZWQp
CiAgICAgICAgIG53X3BhcmFtZXRlcnNfc2V0X2FjY291bnRfaWQodGNwVExTLmdldCgpLCAiY29t
LmFwcGxlLnNhZmFyaS5wZWVydG9wZWVyIik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENVRFBTb2NrZXRDb2NvYS5oIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1VEUFNvY2tldENvY29hLmgK
aW5kZXggY2I5YzE5NWRlMWIyNmE2NjQ0YjE3MTRkMGZhNmVlMzNjNWEyNDIyOS4uNWQ2NWNkMWQw
OWUyNjM5NjY0NDNkZGNmNDQ1YTY4NDgwNDc2MWI4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1VEUFNvY2tldENvY29hLmgKKysrIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1VEUFNvY2tldENv
Y29hLmgKQEAgLTYwLDkgKzYwLDkgQEAgY2xhc3MgTmV0d29ya1JUQ1VEUFNvY2tldENvY29hQ29u
bmVjdGlvbnM7CiBjbGFzcyBOZXR3b3JrUlRDVURQU29ja2V0Q29jb2EgZmluYWwgOiBwdWJsaWMg
TmV0d29ya1JUQ1Byb3ZpZGVyOjpTb2NrZXQgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVE
OwogcHVibGljOgotICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8TmV0d29ya1JUQ1Byb3ZpZGVy
OjpTb2NrZXQ+IGNyZWF0ZVVEUFNvY2tldChXZWJDb3JlOjpMaWJXZWJSVENTb2NrZXRJZGVudGlm
aWVyLCBOZXR3b3JrUlRDUHJvdmlkZXImLCBjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmLCB1aW50
MTZfdCBtaW5Qb3J0LCB1aW50MTZfdCBtYXhQb3J0LCBSZWY8SVBDOjpDb25uZWN0aW9uPiYmLCBi
b29sIGlzRmlyc3RQYXJ0eSwgYm9vbCBpc1JlbGF5RGlzYWJsZWQsIGNvbnN0IFdlYkNvcmU6OlJl
Z2lzdHJhYmxlRG9tYWluJik7CisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxOZXR3b3JrUlRD
UHJvdmlkZXI6OlNvY2tldD4gY3JlYXRlVURQU29ja2V0KFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tl
dElkZW50aWZpZXIsIE5ldHdvcmtSVENQcm92aWRlciYsIGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVz
cyYsIHVpbnQxNl90IG1pblBvcnQsIHVpbnQxNl90IG1heFBvcnQsIFJlZjxJUEM6OkNvbm5lY3Rp
b24+JiYsIFN0cmluZyYmIGF0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVyLCBib29sIGlzRmlyc3RQ
YXJ0eSwgYm9vbCBpc1JlbGF5RGlzYWJsZWQsIGNvbnN0IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9t
YWluJik7CiAKLSAgICBOZXR3b3JrUlRDVURQU29ja2V0Q29jb2EoV2ViQ29yZTo6TGliV2ViUlRD
U29ja2V0SWRlbnRpZmllciwgTmV0d29ya1JUQ1Byb3ZpZGVyJiwgY29uc3QgcnRjOjpTb2NrZXRB
ZGRyZXNzJiwgUmVmPElQQzo6Q29ubmVjdGlvbj4mJiwgYm9vbCBpc0ZpcnN0UGFydHksIGJvb2wg
aXNSZWxheURpc2FibGVkLCBjb25zdCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYpOworICAg
IE5ldHdvcmtSVENVRFBTb2NrZXRDb2NvYShXZWJDb3JlOjpMaWJXZWJSVENTb2NrZXRJZGVudGlm
aWVyLCBOZXR3b3JrUlRDUHJvdmlkZXImLCBjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmLCBSZWY8
SVBDOjpDb25uZWN0aW9uPiYmLCBTdHJpbmcmJiBhdHRyaWJ1dGVkQnVuZGxlSWRlbnRpZmllciwg
Ym9vbCBpc0ZpcnN0UGFydHksIGJvb2wgaXNSZWxheURpc2FibGVkLCBjb25zdCBXZWJDb3JlOjpS
ZWdpc3RyYWJsZURvbWFpbiYpOwogICAgIH5OZXR3b3JrUlRDVURQU29ja2V0Q29jb2EoKTsKIAog
ICAgIHZvaWQgc2V0TGlzdGVuaW5nUG9ydChpbnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1VEUFNvY2tldENvY29hLm1tIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1VEUFNvY2tldENvY29h
Lm1tCmluZGV4IGQ0NTY2NDU4Y2I1MjMzMDc4NWUxNGRkZDIxZjQ3NzE4NmIxMDgxYTUuLjBiNTZi
ZjRlNzA1NmI0ZTBjZGM2MzIzZWVmNDNmYTVjYmQ3MGIxZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENVRFBTb2NrZXRDb2NvYS5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDVURQU29j
a2V0Q29jb2EubW0KQEAgLTU2LDcgKzU2LDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAK
IGNsYXNzIE5ldHdvcmtSVENVRFBTb2NrZXRDb2NvYUNvbm5lY3Rpb25zIDogcHVibGljIFRocmVh
ZFNhZmVSZWZDb3VudGVkPE5ldHdvcmtSVENVRFBTb2NrZXRDb2NvYUNvbm5lY3Rpb25zPiB7CiBw
dWJsaWM6Ci0gICAgc3RhdGljIFJlZjxOZXR3b3JrUlRDVURQU29ja2V0Q29jb2FDb25uZWN0aW9u
cz4gY3JlYXRlKFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50aWZpZXIgaWRlbnRpZmllciwg
TmV0d29ya1JUQ1Byb3ZpZGVyJiBwcm92aWRlciwgY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiBh
ZGRyZXNzLCBSZWY8SVBDOjpDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24sIGJvb2wgaXNGaXJzdFBh
cnR5LCBib29sIGlzUmVsYXlEaXNhYmxlZCwgY29uc3QgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21h
aW4mIGRvbWFpbikgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBOZXR3b3JrUlRDVURQU29ja2V0Q29j
b2FDb25uZWN0aW9ucyhpZGVudGlmaWVyLCBwcm92aWRlciwgYWRkcmVzcywgV1RGTW92ZShjb25u
ZWN0aW9uKSwgaXNGaXJzdFBhcnR5LCBpc1JlbGF5RGlzYWJsZWQsIGRvbWFpbikpOyB9CisgICAg
c3RhdGljIFJlZjxOZXR3b3JrUlRDVURQU29ja2V0Q29jb2FDb25uZWN0aW9ucz4gY3JlYXRlKFdl
YkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50aWZpZXIgaWRlbnRpZmllciwgTmV0d29ya1JUQ1By
b3ZpZGVyJiBwcm92aWRlciwgY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiBhZGRyZXNzLCBSZWY8
SVBDOjpDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24sIFN0cmluZyYmIGF0dHJpYnV0ZWRCdW5kbGVJ
ZGVudGlmaWVyLCBib29sIGlzRmlyc3RQYXJ0eSwgYm9vbCBpc1JlbGF5RGlzYWJsZWQsIGNvbnN0
IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiBkb21haW4pIHsgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgTmV0d29ya1JUQ1VEUFNvY2tldENvY29hQ29ubmVjdGlvbnMoaWRlbnRpZmllciwgcHJvdmlk
ZXIsIGFkZHJlc3MsIFdURk1vdmUoY29ubmVjdGlvbiksIFdURk1vdmUoYXR0cmlidXRlZEJ1bmRs
ZUlkZW50aWZpZXIpLCBpc0ZpcnN0UGFydHksIGlzUmVsYXlEaXNhYmxlZCwgZG9tYWluKSk7IH0K
IAogICAgIHZvaWQgY2xvc2UoKTsKICAgICB2b2lkIHNldE9wdGlvbihpbnQgb3B0aW9uLCBpbnQg
dmFsdWUpOwpAQCAtNjQsNyArNjQsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRMaXN0ZW5pbmdQ
b3J0KGludCk7CiAKIHByaXZhdGU6Ci0gICAgTmV0d29ya1JUQ1VEUFNvY2tldENvY29hQ29ubmVj
dGlvbnMoV2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmllciwgTmV0d29ya1JUQ1Byb3Zp
ZGVyJiwgY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiwgUmVmPElQQzo6Q29ubmVjdGlvbj4mJiwg
Ym9vbCBpc0ZpcnN0UGFydHksIGJvb2wgaXNSZWxheURpc2FibGVkLCBjb25zdCBXZWJDb3JlOjpS
ZWdpc3RyYWJsZURvbWFpbiYpOworICAgIE5ldHdvcmtSVENVRFBTb2NrZXRDb2NvYUNvbm5lY3Rp
b25zKFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50aWZpZXIsIE5ldHdvcmtSVENQcm92aWRl
ciYsIGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYsIFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYsIFN0
cmluZyYmIGF0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVyLCBib29sIGlzRmlyc3RQYXJ0eSwgYm9v
bCBpc1JlbGF5RGlzYWJsZWQsIGNvbnN0IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJik7CiAK
ICAgICBSZXRhaW5QdHI8bndfY29ubmVjdGlvbl90PiBjcmVhdGVOV0Nvbm5lY3Rpb24oY29uc3Qg
cnRjOjpTb2NrZXRBZGRyZXNzJik7CiAgICAgdm9pZCBzZXR1cE5XQ29ubmVjdGlvbihud19jb25u
ZWN0aW9uX3QsIGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYpOwpAQCAtNzksNiArNzksNyBAQCBw
cml2YXRlOgogICAgIGJvb2wgbV9zaG91bGRCeXBhc3NSZWxheSB7IGZhbHNlIH07CiAKICAgICBz
dGQ6Om9wdGlvbmFsPGF1ZGl0X3Rva2VuX3Q+IG1fc291cmNlQXBwbGljYXRpb25BdWRpdFRva2Vu
OworICAgIFN0cmluZyBtX2F0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVyOwogCiAgICAgcnRjOjpT
b2NrZXRBZGRyZXNzIG1fYWRkcmVzczsKICAgICBSZXRhaW5QdHI8bndfbGlzdGVuZXJfdD4gbV9u
d0xpc3RlbmVyOwpAQCAtOTcsMTUgKzk4LDE1IEBAIHN0YXRpYyBkaXNwYXRjaF9xdWV1ZV90IHVk
cFNvY2tldFF1ZXVlKCkKICAgICByZXR1cm4gcXVldWU7CiB9CiAKLXN0ZDo6dW5pcXVlX3B0cjxO
ZXR3b3JrUlRDUHJvdmlkZXI6OlNvY2tldD4gTmV0d29ya1JUQ1VEUFNvY2tldENvY29hOjpjcmVh
dGVVRFBTb2NrZXQoV2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmllciBpZGVudGlmaWVy
LCBOZXR3b3JrUlRDUHJvdmlkZXImIHJ0Y1Byb3ZpZGVyLCBjb25zdCBydGM6OlNvY2tldEFkZHJl
c3MmIGFkZHJlc3MsIHVpbnQxNl90IG1pblBvcnQsIHVpbnQxNl90IG1heFBvcnQsIFJlZjxJUEM6
OkNvbm5lY3Rpb24+JiYgY29ubmVjdGlvbiwgYm9vbCBpc0ZpcnN0UGFydHksIGJvb2wgaXNSZWxh
eURpc2FibGVkLCBjb25zdCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYgZG9tYWluKQorc3Rk
Ojp1bmlxdWVfcHRyPE5ldHdvcmtSVENQcm92aWRlcjo6U29ja2V0PiBOZXR3b3JrUlRDVURQU29j
a2V0Q29jb2E6OmNyZWF0ZVVEUFNvY2tldChXZWJDb3JlOjpMaWJXZWJSVENTb2NrZXRJZGVudGlm
aWVyIGlkZW50aWZpZXIsIE5ldHdvcmtSVENQcm92aWRlciYgcnRjUHJvdmlkZXIsIGNvbnN0IHJ0
Yzo6U29ja2V0QWRkcmVzcyYgYWRkcmVzcywgdWludDE2X3QgbWluUG9ydCwgdWludDE2X3QgbWF4
UG9ydCwgUmVmPElQQzo6Q29ubmVjdGlvbj4mJiBjb25uZWN0aW9uLCBTdHJpbmcmJiBhdHRyaWJ1
dGVkQnVuZGxlSWRlbnRpZmllciwgYm9vbCBpc0ZpcnN0UGFydHksIGJvb2wgaXNSZWxheURpc2Fi
bGVkLCBjb25zdCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYgZG9tYWluKQogewotICAgIHJl
dHVybiBtYWtlVW5pcXVlPE5ldHdvcmtSVENVRFBTb2NrZXRDb2NvYT4oaWRlbnRpZmllciwgcnRj
UHJvdmlkZXIsIGFkZHJlc3MsIFdURk1vdmUoY29ubmVjdGlvbiksIGlzRmlyc3RQYXJ0eSwgaXNS
ZWxheURpc2FibGVkLCBkb21haW4pOworICAgIHJldHVybiBtYWtlVW5pcXVlPE5ldHdvcmtSVENV
RFBTb2NrZXRDb2NvYT4oaWRlbnRpZmllciwgcnRjUHJvdmlkZXIsIGFkZHJlc3MsIFdURk1vdmUo
Y29ubmVjdGlvbiksIFdURk1vdmUoYXR0cmlidXRlZEJ1bmRsZUlkZW50aWZpZXIpLCBpc0ZpcnN0
UGFydHksIGlzUmVsYXlEaXNhYmxlZCwgZG9tYWluKTsKIH0KIAotTmV0d29ya1JUQ1VEUFNvY2tl
dENvY29hOjpOZXR3b3JrUlRDVURQU29ja2V0Q29jb2EoV2ViQ29yZTo6TGliV2ViUlRDU29ja2V0
SWRlbnRpZmllciBpZGVudGlmaWVyLCBOZXR3b3JrUlRDUHJvdmlkZXImIHJ0Y1Byb3ZpZGVyLCBj
b25zdCBydGM6OlNvY2tldEFkZHJlc3MmIGFkZHJlc3MsIFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYg
Y29ubmVjdGlvbiwgYm9vbCBpc0ZpcnN0UGFydHksIGJvb2wgaXNSZWxheURpc2FibGVkLCBjb25z
dCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYgZG9tYWluKQorTmV0d29ya1JUQ1VEUFNvY2tl
dENvY29hOjpOZXR3b3JrUlRDVURQU29ja2V0Q29jb2EoV2ViQ29yZTo6TGliV2ViUlRDU29ja2V0
SWRlbnRpZmllciBpZGVudGlmaWVyLCBOZXR3b3JrUlRDUHJvdmlkZXImIHJ0Y1Byb3ZpZGVyLCBj
b25zdCBydGM6OlNvY2tldEFkZHJlc3MmIGFkZHJlc3MsIFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYg
Y29ubmVjdGlvbiwgU3RyaW5nJiYgYXR0cmlidXRlZEJ1bmRsZUlkZW50aWZpZXIsIGJvb2wgaXNG
aXJzdFBhcnR5LCBib29sIGlzUmVsYXlEaXNhYmxlZCwgY29uc3QgV2ViQ29yZTo6UmVnaXN0cmFi
bGVEb21haW4mIGRvbWFpbikKICAgICA6IG1fcnRjUHJvdmlkZXIocnRjUHJvdmlkZXIpCiAgICAg
LCBtX2lkZW50aWZpZXIoaWRlbnRpZmllcikKLSAgICAsIG1fbndDb25uZWN0aW9ucyhOZXR3b3Jr
UlRDVURQU29ja2V0Q29jb2FDb25uZWN0aW9uczo6Y3JlYXRlKGlkZW50aWZpZXIsIHJ0Y1Byb3Zp
ZGVyLCBhZGRyZXNzLCBXVEZNb3ZlKGNvbm5lY3Rpb24pLCBpc0ZpcnN0UGFydHksIGlzUmVsYXlE
aXNhYmxlZCwgZG9tYWluKSkKKyAgICAsIG1fbndDb25uZWN0aW9ucyhOZXR3b3JrUlRDVURQU29j
a2V0Q29jb2FDb25uZWN0aW9uczo6Y3JlYXRlKGlkZW50aWZpZXIsIHJ0Y1Byb3ZpZGVyLCBhZGRy
ZXNzLCBXVEZNb3ZlKGNvbm5lY3Rpb24pLCBXVEZNb3ZlKGF0dHJpYnV0ZWRCdW5kbGVJZGVudGlm
aWVyKSwgaXNGaXJzdFBhcnR5LCBpc1JlbGF5RGlzYWJsZWQsIGRvbWFpbikpCiB7CiB9CiAKQEAg
LTE1Nyw3ICsxNTgsNyBAQCBzdGF0aWMgYm9vbCBpc0tub3duVHJhY2tlcihjb25zdCBXZWJDb3Jl
OjpSZWdpc3RyYWJsZURvbWFpbiYgZG9tYWluKQogfQogI2VuZGlmCiAKLU5ldHdvcmtSVENVRFBT
b2NrZXRDb2NvYUNvbm5lY3Rpb25zOjpOZXR3b3JrUlRDVURQU29ja2V0Q29jb2FDb25uZWN0aW9u
cyhXZWJDb3JlOjpMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyIGlkZW50aWZpZXIsIE5ldHdvcmtS
VENQcm92aWRlciYgcnRjUHJvdmlkZXIsIGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYgYWRkcmVz
cywgUmVmPElQQzo6Q29ubmVjdGlvbj4mJiBjb25uZWN0aW9uLCBib29sIGlzRmlyc3RQYXJ0eSwg
Ym9vbCBpc1JlbGF5RGlzYWJsZWQsIGNvbnN0IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiBk
b21haW4pCitOZXR3b3JrUlRDVURQU29ja2V0Q29jb2FDb25uZWN0aW9uczo6TmV0d29ya1JUQ1VE
UFNvY2tldENvY29hQ29ubmVjdGlvbnMoV2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmll
ciBpZGVudGlmaWVyLCBOZXR3b3JrUlRDUHJvdmlkZXImIHJ0Y1Byb3ZpZGVyLCBjb25zdCBydGM6
OlNvY2tldEFkZHJlc3MmIGFkZHJlc3MsIFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYgY29ubmVjdGlv
biwgU3RyaW5nJiYgYXR0cmlidXRlZEJ1bmRsZUlkZW50aWZpZXIsIGJvb2wgaXNGaXJzdFBhcnR5
LCBib29sIGlzUmVsYXlEaXNhYmxlZCwgY29uc3QgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4m
IGRvbWFpbikKICAgICA6IG1faWRlbnRpZmllcihpZGVudGlmaWVyKQogICAgICwgbV9jb25uZWN0
aW9uKFdURk1vdmUoY29ubmVjdGlvbikpCiAjaWYgSEFWRShOV1BBUkFNRVRFUlNfVFJBQ0tFUl9B
UEkpCkBAIC0xNjYsNiArMTY3LDcgQEAgTmV0d29ya1JUQ1VEUFNvY2tldENvY29hQ29ubmVjdGlv
bnM6Ok5ldHdvcmtSVENVRFBTb2NrZXRDb2NvYUNvbm5lY3Rpb25zKFdlYkNvcmUKICNlbmRpZgog
ICAgICwgbV9zaG91bGRCeXBhc3NSZWxheShpc1JlbGF5RGlzYWJsZWQpCiAgICAgLCBtX3NvdXJj
ZUFwcGxpY2F0aW9uQXVkaXRUb2tlbihydGNQcm92aWRlci5zb3VyY2VBcHBsaWNhdGlvbkF1ZGl0
VG9rZW4oKSkKKyAgICAsIG1fYXR0cmlidXRlZEJ1bmRsZUlkZW50aWZpZXIoV1RGTW92ZShhdHRy
aWJ1dGVkQnVuZGxlSWRlbnRpZmllcikpCiB7CiAgICAgYXV0byBwYXJhbWV0ZXJzID0gYWRvcHRO
Uyhud19wYXJhbWV0ZXJzX2NyZWF0ZV9zZWN1cmVfdWRwKE5XX1BBUkFNRVRFUlNfRElTQUJMRV9Q
Uk9UT0NPTCwgTldfUEFSQU1FVEVSU19ERUZBVUxUX0NPTkZJR1VSQVRJT04pKTsKICAgICB7CkBA
IC0yNDIsNiArMjQ0LDggQEAgdm9pZCBOZXR3b3JrUlRDVURQU29ja2V0Q29jb2FDb25uZWN0aW9u
czo6Y29uZmlndXJlUGFyYW1ldGVycyhud19wYXJhbWV0ZXJzX3QgcGEKIAogICAgIGlmIChtX3Nv
dXJjZUFwcGxpY2F0aW9uQXVkaXRUb2tlbikKICAgICAgICAgbndfcGFyYW1ldGVyc19zZXRfc291
cmNlX2FwcGxpY2F0aW9uKHBhcmFtZXRlcnMsICptX3NvdXJjZUFwcGxpY2F0aW9uQXVkaXRUb2tl
bik7CisgICAgaWYgKCFtX2F0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVyLmlzRW1wdHkoKSkKKyAg
ICAgICAgbndfcGFyYW1ldGVyc19zZXRfc291cmNlX2FwcGxpY2F0aW9uX2J5X2J1bmRsZV9pZChw
YXJhbWV0ZXJzLCBtX2F0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVyLnV0ZjgoKS5kYXRhKCkpOwog
CiAgICAgbndfcGFyYW1ldGVyc19zZXRfcmV1c2VfbG9jYWxfYWRkcmVzcyhwYXJhbWV0ZXJzLCB0
cnVlKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL0NvY29hL05X
UGFyYW1ldGVyc1NQSS5oIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvQ29jb2EvTldQYXJh
bWV0ZXJzU1BJLmgKaW5kZXggYzFmNzA5NzAyMTBhNzgzZjVlNjljZTJkNWZlNmRiZGYwZDQ4YmFl
YS4uZWU2MDJjZTg3Zjg5OTE2ZDZhODA4MTZiYzI5ZmMxZjVjY2ZjOWRkNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvQ29jb2EvTldQYXJhbWV0ZXJzU1BJLmgKKysrIGIv
U291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvQ29jb2EvTldQYXJhbWV0ZXJzU1BJLmgKQEAgLTM1
LDYgKzM1LDcgQEAgV1RGX0VYVEVSTl9DX0JFR0lOCiAKIHZvaWQgbndfcGFyYW1ldGVyc19zZXRf
YWNjb3VudF9pZChud19wYXJhbWV0ZXJzX3QsIGNvbnN0IGNoYXIgKiBhY2NvdW50X2lkKTsKIHZv
aWQgbndfcGFyYW1ldGVyc19zZXRfc291cmNlX2FwcGxpY2F0aW9uKG53X3BhcmFtZXRlcnNfdCwg
YXVkaXRfdG9rZW5fdCk7Cit2b2lkIG53X3BhcmFtZXRlcnNfc2V0X3NvdXJjZV9hcHBsaWNhdGlv
bl9ieV9idW5kbGVfaWQobndfcGFyYW1ldGVyc190LCBjb25zdCBjaGFyKik7CiBud19lbmRwb2lu
dF90IG53X2VuZHBvaW50X2NyZWF0ZV9ob3N0X3dpdGhfbnVtZXJpY19wb3J0KGNvbnN0IGNoYXIq
IGhvc3RuYW1lLCB1aW50MTZfdCBwb3J0X2hvc3Rfb3JkZXIpOwogCiAjaWYgSEFWRShOV1BBUkFN
RVRFUlNfVFJBQ0tFUl9BUEkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
TmV0d29yay93ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmNwcAppbmRleCBmZmIzYWEw
YjcwZTZjYWUzOWY0OTI1Y2IyYzJlMmUwMDYyOTU3YzRiLi45NjhjOWYzMDRiNjU0ODA5Zjk5MjYy
NTZjMTAwNTUwN2M5NzEyZjU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
TmV0d29yay93ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5jcHAKQEAgLTg4LDcg
Kzg4LDcgQEAgdm9pZCBMaWJXZWJSVENQcm92aWRlcjo6cmVnaXN0ZXJNRE5TTmFtZShEb2N1bWVu
dElkZW50aWZpZXIgZG9jdW1lbnRJZGVudGlmaWVyLAogY2xhc3MgUlRDU29ja2V0RmFjdG9yeSBm
aW5hbCA6IHB1YmxpYyBMaWJXZWJSVENQcm92aWRlcjo6U3VzcGVuZGFibGVTb2NrZXRGYWN0b3J5
IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBSVENTb2NrZXRG
YWN0b3J5KFN0cmluZyYmIHVzZXJBZ2VudCwgYm9vbCBpc0ZpcnN0UGFydHksIFJlZ2lzdHJhYmxl
RG9tYWluJiYpOworICAgIFJUQ1NvY2tldEZhY3RvcnkoV2ViUGFnZVByb3h5SWRlbnRpZmllciwg
U3RyaW5nJiYgdXNlckFnZW50LCBib29sIGlzRmlyc3RQYXJ0eSwgUmVnaXN0cmFibGVEb21haW4m
Jik7CiAKICAgICB2b2lkIGRpc2FibGVSZWxheSgpIGZpbmFsIHsgbV9pc1JlbGF5RGlzYWJsZWQg
PSB0cnVlOyB9CiAKQEAgLTEwMiwxNCArMTAyLDE2IEBAIHByaXZhdGU6CiAgICAgdm9pZCByZXN1
bWUoKSBmaW5hbDsKIAogcHJpdmF0ZToKKyAgICBXZWJQYWdlUHJveHlJZGVudGlmaWVyIG1fcGFn
ZUlkZW50aWZpZXI7CiAgICAgU3RyaW5nIG1fdXNlckFnZW50OwogICAgIGJvb2wgbV9pc0ZpcnN0
UGFydHkgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9pc1JlbGF5RGlzYWJsZWQgeyBmYWxzZSB9Owog
ICAgIFJlZ2lzdHJhYmxlRG9tYWluIG1fZG9tYWluOwogfTsKIAotUlRDU29ja2V0RmFjdG9yeTo6
UlRDU29ja2V0RmFjdG9yeShTdHJpbmcmJiB1c2VyQWdlbnQsIGJvb2wgaXNGaXJzdFBhcnR5LCBS
ZWdpc3RyYWJsZURvbWFpbiYmIGRvbWFpbikKLSAgICA6IG1fdXNlckFnZW50KFdURk1vdmUodXNl
ckFnZW50KSkKK1JUQ1NvY2tldEZhY3Rvcnk6OlJUQ1NvY2tldEZhY3RvcnkoV2ViUGFnZVByb3h5
SWRlbnRpZmllciBwYWdlSWRlbnRpZmllciwgU3RyaW5nJiYgdXNlckFnZW50LCBib29sIGlzRmly
c3RQYXJ0eSwgUmVnaXN0cmFibGVEb21haW4mJiBkb21haW4pCisgICAgOiBtX3BhZ2VJZGVudGlm
aWVyKHBhZ2VJZGVudGlmaWVyKQorICAgICwgbV91c2VyQWdlbnQoV1RGTW92ZSh1c2VyQWdlbnQp
KQogICAgICwgbV9pc0ZpcnN0UGFydHkoaXNGaXJzdFBhcnR5KQogICAgICwgbV9kb21haW4oV1RG
TW92ZShkb21haW4pKQogewpAQCAtMTE3LDcgKzExOSw3IEBAIFJUQ1NvY2tldEZhY3Rvcnk6OlJU
Q1NvY2tldEZhY3RvcnkoU3RyaW5nJiYgdXNlckFnZW50LCBib29sIGlzRmlyc3RQYXJ0eSwgUmVn
aXN0CiAKIHJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQqIFJUQ1NvY2tldEZhY3Rvcnk6OkNyZWF0ZVVk
cFNvY2tldChjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmIGFkZHJlc3MsIHVpbnQxNl90IG1pblBv
cnQsIHVpbnQxNl90IG1heFBvcnQpCiB7Ci0gICAgcmV0dXJuIFdlYlByb2Nlc3M6OnNpbmdsZXRv
bigpLmxpYldlYlJUQ05ldHdvcmsoKS5zb2NrZXRGYWN0b3J5KCkuY3JlYXRlVWRwU29ja2V0KHRo
aXMsIGFkZHJlc3MsIG1pblBvcnQsIG1heFBvcnQsIG1faXNGaXJzdFBhcnR5LCBtX2lzUmVsYXlE
aXNhYmxlZCwgbV9kb21haW4pOworICAgIHJldHVybiBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5s
aWJXZWJSVENOZXR3b3JrKCkuc29ja2V0RmFjdG9yeSgpLmNyZWF0ZVVkcFNvY2tldCh0aGlzLCBh
ZGRyZXNzLCBtaW5Qb3J0LCBtYXhQb3J0LCBtX3BhZ2VJZGVudGlmaWVyLCBtX2lzRmlyc3RQYXJ0
eSwgbV9pc1JlbGF5RGlzYWJsZWQsIG1fZG9tYWluKTsKIH0KIAogcnRjOjpBc3luY1BhY2tldFNv
Y2tldCogUlRDU29ja2V0RmFjdG9yeTo6Q3JlYXRlU2VydmVyVGNwU29ja2V0KGNvbnN0IHJ0Yzo6
U29ja2V0QWRkcmVzcyYgYWRkcmVzcywgdWludDE2X3QgbWluUG9ydCwgdWludDE2X3QgbWF4UG9y
dCwgaW50IG9wdGlvbnMpCkBAIC0xMjcsNyArMTI5LDcgQEAgcnRjOjpBc3luY1BhY2tldFNvY2tl
dCogUlRDU29ja2V0RmFjdG9yeTo6Q3JlYXRlU2VydmVyVGNwU29ja2V0KGNvbnN0IHJ0Yzo6U29j
a2UKIAogcnRjOjpBc3luY1BhY2tldFNvY2tldCogUlRDU29ja2V0RmFjdG9yeTo6Q3JlYXRlQ2xp
ZW50VGNwU29ja2V0KGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYgbG9jYWxBZGRyZXNzLCBjb25z
dCBydGM6OlNvY2tldEFkZHJlc3MmIHJlbW90ZUFkZHJlc3MsIGNvbnN0IHJ0Yzo6UHJveHlJbmZv
JiwgY29uc3Qgc3RkOjpzdHJpbmcmLCBjb25zdCBydGM6OlBhY2tldFNvY2tldFRjcE9wdGlvbnMm
IG9wdGlvbnMpCiB7Ci0gICAgcmV0dXJuIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmxpYldlYlJU
Q05ldHdvcmsoKS5zb2NrZXRGYWN0b3J5KCkuY3JlYXRlQ2xpZW50VGNwU29ja2V0KHRoaXMsIGxv
Y2FsQWRkcmVzcywgcmVtb3RlQWRkcmVzcywgU3RyaW5nIHsgbV91c2VyQWdlbnQgfSwgb3B0aW9u
cywgbV9pc1JlbGF5RGlzYWJsZWQpOworICAgIHJldHVybiBXZWJQcm9jZXNzOjpzaW5nbGV0b24o
KS5saWJXZWJSVENOZXR3b3JrKCkuc29ja2V0RmFjdG9yeSgpLmNyZWF0ZUNsaWVudFRjcFNvY2tl
dCh0aGlzLCBsb2NhbEFkZHJlc3MsIHJlbW90ZUFkZHJlc3MsIFN0cmluZyB7IG1fdXNlckFnZW50
IH0sIG9wdGlvbnMsIG1fcGFnZUlkZW50aWZpZXIsIG1faXNSZWxheURpc2FibGVkKTsKIH0KIAog
cnRjOjpBc3luY1Jlc29sdmVySW50ZXJmYWNlKiBSVENTb2NrZXRGYWN0b3J5OjpDcmVhdGVBc3lu
Y1Jlc29sdmVyKCkKQEAgLTE2MCw3ICsxNjIsNyBAQCB2b2lkIExpYldlYlJUQ1Byb3ZpZGVyOjpz
dGFydGVkTmV0d29ya1RocmVhZCgpCiAKIHN0ZDo6dW5pcXVlX3B0cjxMaWJXZWJSVENQcm92aWRl
cjo6U3VzcGVuZGFibGVTb2NrZXRGYWN0b3J5PiBMaWJXZWJSVENQcm92aWRlcjo6Y3JlYXRlU29j
a2V0RmFjdG9yeShTdHJpbmcmJiB1c2VyQWdlbnQsIGJvb2wgaXNGaXJzdFBhcnR5LCBSZWdpc3Ry
YWJsZURvbWFpbiYmIGRvbWFpbikKIHsKLSAgICBhdXRvIGZhY3RvcnkgPSBtYWtlVW5pcXVlPFJU
Q1NvY2tldEZhY3Rvcnk+KFdURk1vdmUodXNlckFnZW50KSwgaXNGaXJzdFBhcnR5LCBXVEZNb3Zl
KGRvbWFpbikpOworICAgIGF1dG8gZmFjdG9yeSA9IG1ha2VVbmlxdWU8UlRDU29ja2V0RmFjdG9y
eT4obV93ZWJQYWdlLndlYlBhZ2VQcm94eUlkZW50aWZpZXIoKSwgV1RGTW92ZSh1c2VyQWdlbnQp
LCBpc0ZpcnN0UGFydHksIFdURk1vdmUoZG9tYWluKSk7CiAKICAgICBhdXRvKiBwYWdlID0gbV93
ZWJQYWdlLmNvcmVQYWdlKCk7CiAgICAgaWYgKCFwYWdlIHx8ICFwYWdlLT5zZXR0aW5ncygpLndl
YlJUQ1NvY2tldHNQcm94eWluZ0VuYWJsZWQoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXRGYWN0b3J5LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXRGYWN0
b3J5LmNwcAppbmRleCAyMDI3YzI4ODA3NTJiYTU1N2ZjMmNlMzM5YWZkNzMyM2UzMzI0YTBmLi44
MWUxNWU4ODY0YjYwYjkxZTNhMjNlZTJmNmI4M2Y3OWQzMzZkMzlmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDU29ja2V0RmFjdG9y
eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldl
YlJUQ1NvY2tldEZhY3RvcnkuY3BwCkBAIC04NSwyNiArODUsMjYgQEAgcnRjOjpBc3luY1BhY2tl
dFNvY2tldCogTGliV2ViUlRDU29ja2V0RmFjdG9yeTo6Y3JlYXRlU2VydmVyVGNwU29ja2V0KGNv
bnN0IHZvaWQKICAgICByZXR1cm4gc29ja2V0LnJlbGVhc2UoKTsKIH0KIAotcnRjOjpBc3luY1Bh
Y2tldFNvY2tldCogTGliV2ViUlRDU29ja2V0RmFjdG9yeTo6Y3JlYXRlVWRwU29ja2V0KGNvbnN0
IHZvaWQqIHNvY2tldEdyb3VwLCBjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmIGFkZHJlc3MsIHVp
bnQxNl90IG1pblBvcnQsIHVpbnQxNl90IG1heFBvcnQsIGJvb2wgaXNGaXJzdFBhcnR5LCBib29s
IGlzUmVsYXlEaXNhYmxlZCwgY29uc3QgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mIGRvbWFp
bikKK3J0Yzo6QXN5bmNQYWNrZXRTb2NrZXQqIExpYldlYlJUQ1NvY2tldEZhY3Rvcnk6OmNyZWF0
ZVVkcFNvY2tldChjb25zdCB2b2lkKiBzb2NrZXRHcm91cCwgY29uc3QgcnRjOjpTb2NrZXRBZGRy
ZXNzJiBhZGRyZXNzLCB1aW50MTZfdCBtaW5Qb3J0LCB1aW50MTZfdCBtYXhQb3J0LCBXZWJQYWdl
UHJveHlJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyLCBib29sIGlzRmlyc3RQYXJ0eSwgYm9vbCBp
c1JlbGF5RGlzYWJsZWQsIGNvbnN0IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiBkb21haW4p
CiB7CiAgICAgQVNTRVJUKCFXVEY6OmlzTWFpblJ1bkxvb3AoKSk7CiAgICAgYXV0byBzb2NrZXQg
PSBtYWtlVW5pcXVlPExpYldlYlJUQ1NvY2tldD4oKnRoaXMsIHNvY2tldEdyb3VwLCBMaWJXZWJS
VENTb2NrZXQ6OlR5cGU6OlVEUCwgYWRkcmVzcywgcnRjOjpTb2NrZXRBZGRyZXNzKCkpOwogCiAg
ICAgaWYgKG1fY29ubmVjdGlvbikKLSAgICAgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2Vz
OjpOZXR3b3JrUlRDUHJvdmlkZXI6OkNyZWF0ZVVEUFNvY2tldChzb2NrZXQtPmlkZW50aWZpZXIo
KSwgUlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyhhZGRyZXNzKSwgbWluUG9ydCwgbWF4UG9ydCwg
aXNGaXJzdFBhcnR5LCBpc1JlbGF5RGlzYWJsZWQsIGRvbWFpbiksIDApOworICAgICAgICBtX2Nv
bm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtSVENQcm92aWRlcjo6Q3JlYXRlVURQU29j
a2V0KHNvY2tldC0+aWRlbnRpZmllcigpLCBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzKGFkZHJl
c3MpLCBtaW5Qb3J0LCBtYXhQb3J0LCBwYWdlSWRlbnRpZmllciwgaXNGaXJzdFBhcnR5LCBpc1Jl
bGF5RGlzYWJsZWQsIGRvbWFpbiksIDApOwogICAgIGVsc2UgewogICAgICAgICBjYWxsT25NYWlu
UnVuTG9vcChbXSB7CiAgICAgICAgICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVO
ZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKTsKICAgICAgICAgfSk7Ci0gICAgICAgIG1fcGVuZGlu
Z01lc3NhZ2VUYXNrcy5hcHBlbmQoW2lkZW50aWZpZXIgPSBzb2NrZXQtPmlkZW50aWZpZXIoKSwg
YWRkcmVzcyA9IFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MoYWRkcmVzcyksIG1pblBvcnQsIG1h
eFBvcnQsIGlzRmlyc3RQYXJ0eSwgaXNSZWxheURpc2FibGVkLCBkb21haW5dKGF1dG8mIGNvbm5l
Y3Rpb24pIHsKLSAgICAgICAgICAgIGNvbm5lY3Rpb24uc2VuZChNZXNzYWdlczo6TmV0d29ya1JU
Q1Byb3ZpZGVyOjpDcmVhdGVVRFBTb2NrZXQoaWRlbnRpZmllciwgYWRkcmVzcywgbWluUG9ydCwg
bWF4UG9ydCwgaXNGaXJzdFBhcnR5LCBpc1JlbGF5RGlzYWJsZWQsIGRvbWFpbiksIDApOworICAg
ICAgICBtX3BlbmRpbmdNZXNzYWdlVGFza3MuYXBwZW5kKFtpZGVudGlmaWVyID0gc29ja2V0LT5p
ZGVudGlmaWVyKCksIGFkZHJlc3MgPSBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzKGFkZHJlc3Mp
LCBtaW5Qb3J0LCBtYXhQb3J0LCBwYWdlSWRlbnRpZmllciwgaXNGaXJzdFBhcnR5LCBpc1JlbGF5
RGlzYWJsZWQsIGRvbWFpbl0oYXV0byYgY29ubmVjdGlvbikgeworICAgICAgICAgICAgY29ubmVj
dGlvbi5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUlRDUHJvdmlkZXI6OkNyZWF0ZVVEUFNvY2tldChp
ZGVudGlmaWVyLCBhZGRyZXNzLCBtaW5Qb3J0LCBtYXhQb3J0LCBwYWdlSWRlbnRpZmllciwgaXNG
aXJzdFBhcnR5LCBpc1JlbGF5RGlzYWJsZWQsIGRvbWFpbiksIDApOwogICAgICAgICB9KTsKICAg
ICB9CiAKICAgICByZXR1cm4gc29ja2V0LnJlbGVhc2UoKTsKIH0KIAotcnRjOjpBc3luY1BhY2tl
dFNvY2tldCogTGliV2ViUlRDU29ja2V0RmFjdG9yeTo6Y3JlYXRlQ2xpZW50VGNwU29ja2V0KGNv
bnN0IHZvaWQqIHNvY2tldEdyb3VwLCBjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmIGxvY2FsQWRk
cmVzcywgY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiByZW1vdGVBZGRyZXNzLCBTdHJpbmcmJiB1
c2VyQWdlbnQsIGNvbnN0IHJ0Yzo6UGFja2V0U29ja2V0VGNwT3B0aW9ucyYgb3B0aW9ucywgYm9v
bCBpc1JlbGF5RGlzYWJsZWQpCitydGM6OkFzeW5jUGFja2V0U29ja2V0KiBMaWJXZWJSVENTb2Nr
ZXRGYWN0b3J5OjpjcmVhdGVDbGllbnRUY3BTb2NrZXQoY29uc3Qgdm9pZCogc29ja2V0R3JvdXAs
IGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYgbG9jYWxBZGRyZXNzLCBjb25zdCBydGM6OlNvY2tl
dEFkZHJlc3MmIHJlbW90ZUFkZHJlc3MsIFN0cmluZyYmIHVzZXJBZ2VudCwgY29uc3QgcnRjOjpQ
YWNrZXRTb2NrZXRUY3BPcHRpb25zJiBvcHRpb25zLCBXZWJQYWdlUHJveHlJZGVudGlmaWVyIHBh
Z2VJZGVudGlmaWVyLCBib29sIGlzUmVsYXlEaXNhYmxlZCkKIHsKICAgICBBU1NFUlQoIVdURjo6
aXNNYWluUnVuTG9vcCgpKTsKIApAQCAtMTEzLDEzICsxMTMsMTMgQEAgcnRjOjpBc3luY1BhY2tl
dFNvY2tldCogTGliV2ViUlRDU29ja2V0RmFjdG9yeTo6Y3JlYXRlQ2xpZW50VGNwU29ja2V0KGNv
bnN0IHZvaWQKIAogICAgIC8vIEZJWE1FOiBXZSBvbmx5IHRyYW5zZmVyIG9wdGlvbnMub3B0cyBi
dXQgc2hvdWxkIGFsc28gaGFuZGxlIG90aGVyIG1lbWJlcnMuCiAgICAgaWYgKG1fY29ubmVjdGlv
bikKLSAgICAgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUlRDUHJvdmlk
ZXI6OkNyZWF0ZUNsaWVudFRDUFNvY2tldChzb2NrZXQtPmlkZW50aWZpZXIoKSwgUlRDTmV0d29y
azo6U29ja2V0QWRkcmVzcyhwcmVwYXJlU29ja2V0QWRkcmVzcyhsb2NhbEFkZHJlc3MsIG1fZGlz
YWJsZU5vbkxvY2FsaG9zdENvbm5lY3Rpb25zKSksIFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3Mo
cHJlcGFyZVNvY2tldEFkZHJlc3MocmVtb3RlQWRkcmVzcywgbV9kaXNhYmxlTm9uTG9jYWxob3N0
Q29ubmVjdGlvbnMpKSwgdXNlckFnZW50LCBvcHRpb25zLm9wdHMsICBpc1JlbGF5RGlzYWJsZWQp
LCAwKTsKKyAgICAgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUlRDUHJv
dmlkZXI6OkNyZWF0ZUNsaWVudFRDUFNvY2tldChzb2NrZXQtPmlkZW50aWZpZXIoKSwgUlRDTmV0
d29yazo6U29ja2V0QWRkcmVzcyhwcmVwYXJlU29ja2V0QWRkcmVzcyhsb2NhbEFkZHJlc3MsIG1f
ZGlzYWJsZU5vbkxvY2FsaG9zdENvbm5lY3Rpb25zKSksIFJUQ05ldHdvcms6OlNvY2tldEFkZHJl
c3MocHJlcGFyZVNvY2tldEFkZHJlc3MocmVtb3RlQWRkcmVzcywgbV9kaXNhYmxlTm9uTG9jYWxo
b3N0Q29ubmVjdGlvbnMpKSwgdXNlckFnZW50LCBvcHRpb25zLm9wdHMsIHBhZ2VJZGVudGlmaWVy
LCBpc1JlbGF5RGlzYWJsZWQpLCAwKTsKICAgICBlbHNlIHsKICAgICAgICAgY2FsbE9uTWFpblJ1
bkxvb3AoW10gewogICAgICAgICAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlTmV0
d29ya1Byb2Nlc3NDb25uZWN0aW9uKCk7CiAgICAgICAgIH0pOwotICAgICAgICBtX3BlbmRpbmdN
ZXNzYWdlVGFza3MuYXBwZW5kKFtpZGVudGlmaWVyID0gc29ja2V0LT5pZGVudGlmaWVyKCksIGxv
Y2FsQWRkcmVzcyA9IFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MocHJlcGFyZVNvY2tldEFkZHJl
c3MobG9jYWxBZGRyZXNzLCBtX2Rpc2FibGVOb25Mb2NhbGhvc3RDb25uZWN0aW9ucykpLCByZW1v
dGVBZGRyZXNzID0gUlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyhwcmVwYXJlU29ja2V0QWRkcmVz
cyhyZW1vdGVBZGRyZXNzLCBtX2Rpc2FibGVOb25Mb2NhbGhvc3RDb25uZWN0aW9ucykpLCB1c2Vy
QWdlbnQsIG9wdHMgPSBvcHRpb25zLm9wdHMsIGlzUmVsYXlEaXNhYmxlZF0oYXV0byYgY29ubmVj
dGlvbikgewotICAgICAgICAgICAgY29ubmVjdGlvbi5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUlRD
UHJvdmlkZXI6OkNyZWF0ZUNsaWVudFRDUFNvY2tldChpZGVudGlmaWVyLCBsb2NhbEFkZHJlc3Ms
IHJlbW90ZUFkZHJlc3MsIHVzZXJBZ2VudCwgb3B0cywgaXNSZWxheURpc2FibGVkKSwgMCk7Cisg
ICAgICAgIG1fcGVuZGluZ01lc3NhZ2VUYXNrcy5hcHBlbmQoW2lkZW50aWZpZXIgPSBzb2NrZXQt
PmlkZW50aWZpZXIoKSwgbG9jYWxBZGRyZXNzID0gUlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyhw
cmVwYXJlU29ja2V0QWRkcmVzcyhsb2NhbEFkZHJlc3MsIG1fZGlzYWJsZU5vbkxvY2FsaG9zdENv
bm5lY3Rpb25zKSksIHJlbW90ZUFkZHJlc3MgPSBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzKHBy
ZXBhcmVTb2NrZXRBZGRyZXNzKHJlbW90ZUFkZHJlc3MsIG1fZGlzYWJsZU5vbkxvY2FsaG9zdENv
bm5lY3Rpb25zKSksIHVzZXJBZ2VudCwgb3B0cyA9IG9wdGlvbnMub3B0cywgcGFnZUlkZW50aWZp
ZXIsIGlzUmVsYXlEaXNhYmxlZF0oYXV0byYgY29ubmVjdGlvbikgeworICAgICAgICAgICAgY29u
bmVjdGlvbi5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUlRDUHJvdmlkZXI6OkNyZWF0ZUNsaWVudFRD
UFNvY2tldChpZGVudGlmaWVyLCBsb2NhbEFkZHJlc3MsIHJlbW90ZUFkZHJlc3MsIHVzZXJBZ2Vu
dCwgb3B0cywgcGFnZUlkZW50aWZpZXIsIGlzUmVsYXlEaXNhYmxlZCksIDApOwogICAgICAgICB9
KTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3Jr
L3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXRGYWN0b3J5LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDU29ja2V0RmFjdG9yeS5oCmluZGV4IDdkMDgxMTc0
ZmJmYTEwNzlhYTkyNWExMDgxNzAyZjQwYjU1Y2MyNmIuLmJkMTk5Y2E3MTFkYjEyNmIxN2M0YmFh
ZGQwODQ1ODZkOTFhZWE1YjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9O
ZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXRGYWN0b3J5LmgKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1NvY2tldEZhY3RvcnkuaApAQCAt
MjksNiArMjksNyBAQAogCiAjaW5jbHVkZSAiTGliV2ViUlRDUmVzb2x2ZXIuaCIKICNpbmNsdWRl
ICJMaWJXZWJSVENTb2NrZXQuaCIKKyNpbmNsdWRlICJXZWJQYWdlUHJveHlJZGVudGlmaWVyLmgi
CiAjaW5jbHVkZSA8V2ViQ29yZS9MaWJXZWJSVENNYWNyb3MuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L0xpYldlYlJUQ1NvY2tldElkZW50aWZpZXIuaD4KICNpbmNsdWRlIDx3ZWJydGMvcnRjX2Jhc2Uv
bmV0X2hlbHBlcnMuaD4KQEAgLTUxLDkgKzUyLDkgQEAgcHVibGljOgogICAgIExpYldlYlJUQ1Nv
Y2tldCogc29ja2V0KFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50aWZpZXIgaWRlbnRpZmll
cikgeyByZXR1cm4gbV9zb2NrZXRzLmdldChpZGVudGlmaWVyKTsgfQogCiAgICAgdm9pZCBmb3JT
b2NrZXRJbkdyb3VwKGNvbnN0IHZvaWQqIHNvY2tldEdyb3VwLCBjb25zdCBGdW5jdGlvbjx2b2lk
KExpYldlYlJUQ1NvY2tldCYpPiYpOwotICAgIHJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQqIGNyZWF0
ZVVkcFNvY2tldChjb25zdCB2b2lkKiBzb2NrZXRHcm91cCwgY29uc3QgcnRjOjpTb2NrZXRBZGRy
ZXNzJiwgdWludDE2X3QgbWluUG9ydCwgdWludDE2X3QgbWF4UG9ydCwgYm9vbCBpc0ZpcnN0UGFy
dHksIGJvb2wgaXNSZWxheURpc2FibGVkLCBjb25zdCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFp
biYpOworICAgIHJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQqIGNyZWF0ZVVkcFNvY2tldChjb25zdCB2
b2lkKiBzb2NrZXRHcm91cCwgY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiwgdWludDE2X3QgbWlu
UG9ydCwgdWludDE2X3QgbWF4UG9ydCwgV2ViUGFnZVByb3h5SWRlbnRpZmllciwgYm9vbCBpc0Zp
cnN0UGFydHksIGJvb2wgaXNSZWxheURpc2FibGVkLCBjb25zdCBXZWJDb3JlOjpSZWdpc3RyYWJs
ZURvbWFpbiYpOwogICAgIHJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQqIGNyZWF0ZVNlcnZlclRjcFNv
Y2tldChjb25zdCB2b2lkKiBzb2NrZXRHcm91cCwgY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiwg
dWludDE2X3QgbWluUG9ydCwgdWludDE2X3QgbWF4UG9ydCwgaW50IG9wdGlvbnMpOwotICAgIHJ0
Yzo6QXN5bmNQYWNrZXRTb2NrZXQqIGNyZWF0ZUNsaWVudFRjcFNvY2tldChjb25zdCB2b2lkKiBz
b2NrZXRHcm91cCwgY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiBsb2NhbEFkZHJlc3MsIGNvbnN0
IHJ0Yzo6U29ja2V0QWRkcmVzcyYgcmVtb3RlQWRkcmVzcywgU3RyaW5nJiYgdXNlckFnZW50LCBj
b25zdCBydGM6OlBhY2tldFNvY2tldFRjcE9wdGlvbnMmLCBib29sIGlzUmVsYXlEaXNhYmxlZCk7
CisgICAgcnRjOjpBc3luY1BhY2tldFNvY2tldCogY3JlYXRlQ2xpZW50VGNwU29ja2V0KGNvbnN0
IHZvaWQqIHNvY2tldEdyb3VwLCBjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmIGxvY2FsQWRkcmVz
cywgY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiByZW1vdGVBZGRyZXNzLCBTdHJpbmcmJiB1c2Vy
QWdlbnQsIGNvbnN0IHJ0Yzo6UGFja2V0U29ja2V0VGNwT3B0aW9ucyYsIFdlYlBhZ2VQcm94eUlk
ZW50aWZpZXIsIGJvb2wgaXNSZWxheURpc2FibGVkKTsKICAgICBydGM6OkFzeW5jUGFja2V0U29j
a2V0KiBjcmVhdGVOZXdDb25uZWN0aW9uU29ja2V0KExpYldlYlJUQ1NvY2tldCYsIFdlYkNvcmU6
OkxpYldlYlJUQ1NvY2tldElkZW50aWZpZXIgbmV3Q29ubmVjdGlvblNvY2tldElkZW50aWZpZXIs
IGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYpOwogCiAgICAgTGliV2ViUlRDUmVzb2x2ZXIqIHJl
c29sdmVyKExpYldlYlJUQ1Jlc29sdmVySWRlbnRpZmllciBpZGVudGlmaWVyKSB7IHJldHVybiBt
X3Jlc29sdmVycy5nZXQoaWRlbnRpZmllcik7IH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>434771</attachid>
            <date>2021-08-02 11:04:57 -0700</date>
            <delta_ts>2021-08-02 11:20:58 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-228649-20210802200455.patch</filename>
            <type>text/plain</type>
            <size>41011</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgwNDgxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGFiYmVhZTQ0YTk1NzJhYzFh
NjkzOThiMTJkZWIxNjRhMzE5N2FhZjcuLjE0OGNlOGM2Y2E5NjA1NGVlYmM0ZWRiMGQxZDZlZmQx
YjQ2OGY3MzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTAgQEAKKzIwMjEtMDgtMDIgIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEF0dHJpYnV0ZSBudyBjb25uZWN0
aW9ucyB0byB0aGUgcGFnZSBidW5kbGUgaWRlbnRpZmllcgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI4NjQ5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
RXJpYyBDYXJsc29uLgorCisgICAgICAgIFNlbmQgcGFnZSBpZGVudGlmaWVyIGZyb20gV2ViUHJv
Y2VzcyB0byBOZXR3b3JrUHJvY2VzcyB3aGVuIGNyZWF0aW5nIGEgV2ViUlRDIHNvY2tldC4KKyAg
ICAgICAgVXNlIHBhZ2UgaWRlbnRpZmllciB0byBnZXQgdGhlIGJ1bmRsZSBpZGVudGlmaWVyLgor
ICAgICAgICBGb3IgdGhhdCBwdXJwb3NlLCB3ZSBuZWVkIHRvIGhvcCB0byBtYWluIHRocmVhZCB0
byBnZXQgaXQsIHRoZW4gZ28gYmFjayB0byBydGMgdGhyZWFkIHRvIGNyZWF0ZSBpdC4KKyAgICAg
ICAgV2UgZG8gc28gYnkgdXNpbmcgY2FsbE9uTWFpblJ1bkxvb3BBbmRXYWl0IHdoZW4gTmV0d29y
a1JUQ1Byb3ZpZGVyIGRvZXMgbm90IGhhdmUgdGhlIGluZm9ybWF0aW9uIGZvciB0aGUgcHJvdmlk
ZWQgcGFnZSBpZGVudGlmaWVyLgorICAgICAgICBXZSB0aGVuIG1ha2UgdXNlIG9mIG53X3BhcmFt
ZXRlcnNfc2V0X3NvdXJjZV9hcHBsaWNhdGlvbl9ieV9idW5kbGVfaWQgdG8gc2V0IHRoZSBidW5k
bGUgaWRlbnRpZmllciBvbiBUQ1AgYW5kIFVEUCBjb25uZWN0aW9ucy4KKworICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29y
a1Nlc3Npb246OmF0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVyRnJvbVBhZ2VJZGVudGlmaWVyIGNv
bnN0KToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5oOgorICAgICAg
ICAqIE5ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW06CisgICAgICAg
IChXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9uQ29jb2E6OmFkZFdlYlBhZ2VOZXR3b3JrUGFyYW1ldGVy
cyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9uQ29jb2E6OnJlbW92ZVdlYlBhZ2VO
ZXR3b3JrUGFyYW1ldGVycyk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdv
cmtSVENQcm92aWRlci5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSVENQcm92aWRlcjo6
YXR0cmlidXRlZEJ1bmRsZUlkZW50aWZpZXJGcm9tUGFnZUlkZW50aWZpZXIpOgorICAgICAgICAo
V2ViS2l0OjpOZXR3b3JrUlRDUHJvdmlkZXI6OmNyZWF0ZVVEUFNvY2tldCk6CisgICAgICAgIChX
ZWJLaXQ6Ok5ldHdvcmtSVENQcm92aWRlcjo6Y3JlYXRlQ2xpZW50VENQU29ja2V0KToKKyAgICAg
ICAgKiBOZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVyLmg6CisgICAgICAg
ICogTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlci5tZXNzYWdlcy5pbjoK
KyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1RDUFNvY2tldENvY29h
Lmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENUQ1BTb2NrZXRD
b2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1JUQ1RDUFNvY2tldENvY29hOjpjcmVh
dGVDbGllbnRUQ1BTb2NrZXQpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUlRDVENQU29ja2V0
Q29jb2E6Ok5ldHdvcmtSVENUQ1BTb2NrZXRDb2NvYSk6CisgICAgICAgICogTmV0d29ya1Byb2Nl
c3Mvd2VicnRjL05ldHdvcmtSVENVRFBTb2NrZXRDb2NvYS5oOgorICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDVURQU29ja2V0Q29jb2EubW06CisgICAgICAgIChXZWJL
aXQ6Ok5ldHdvcmtSVENVRFBTb2NrZXRDb2NvYUNvbm5lY3Rpb25zOjpjcmVhdGUpOgorICAgICAg
ICAoV2ViS2l0OjpOZXR3b3JrUlRDVURQU29ja2V0Q29jb2E6OmNyZWF0ZVVEUFNvY2tldCk6Cisg
ICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSVENVRFBTb2NrZXRDb2NvYTo6TmV0d29ya1JUQ1VEUFNv
Y2tldENvY29hKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1JUQ1VEUFNvY2tldENvY29hQ29u
bmVjdGlvbnM6Ok5ldHdvcmtSVENVRFBTb2NrZXRDb2NvYUNvbm5lY3Rpb25zKToKKyAgICAgICAg
KFdlYktpdDo6TmV0d29ya1JUQ1VEUFNvY2tldENvY29hQ29ubmVjdGlvbnM6OmNvbmZpZ3VyZVBh
cmFtZXRlcnMpOgorICAgICAgICAqIFBsYXRmb3JtL3NwaS9Db2NvYS9OV1BhcmFtZXRlcnNTUEku
aDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVy
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UlRDU29ja2V0RmFjdG9yeTo6UlRDU29ja2V0RmFjdG9y
eSk6CisgICAgICAgIChXZWJLaXQ6OlJUQ1NvY2tldEZhY3Rvcnk6OkNyZWF0ZVVkcFNvY2tldCk6
CisgICAgICAgIChXZWJLaXQ6OlJUQ1NvY2tldEZhY3Rvcnk6OkNyZWF0ZUNsaWVudFRjcFNvY2tl
dCk6CisgICAgICAgIChXZWJLaXQ6OkxpYldlYlJUQ1Byb3ZpZGVyOjpjcmVhdGVTb2NrZXRGYWN0
b3J5KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1NvY2tl
dEZhY3RvcnkuY3BwOgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENTb2NrZXRGYWN0b3J5Ojpj
cmVhdGVVZHBTb2NrZXQpOgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENTb2NrZXRGYWN0b3J5
OjpjcmVhdGVDbGllbnRUY3BTb2NrZXQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay93
ZWJydGMvTGliV2ViUlRDU29ja2V0RmFjdG9yeS5oOgorCiAyMDIxLTA4LTAxICBZb3Vlbm4gRmFi
bGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBJbnRyb2R1Y2UgYW4gZXhwZXJpbWVu
dGFsIGZlYXR1cmUgdG8gdG9nZ2xlIFdlYlJUQyBzb2NrZXQgcHJveHlpbmcKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uY3BwIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5jcHAKaW5kZXggNWQ5YjliZjIy
NjQzMTI3MGZmMDYxNjYwOGRmYjE1NWU4YzE2ZTNiYy4uYWMwYzlhNjY2MGE5MGVmMTA5ZjYwODM5
MGEwZTJjMzAzZGMzZGM5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrU2Vzc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrU2Vzc2lvbi5jcHAKQEAgLTQwNiw0ICs0MDYsOSBAQCBOZXR3b3JrTG9hZFNjaGVkdWxl
ciYgTmV0d29ya1Nlc3Npb246Om5ldHdvcmtMb2FkU2NoZWR1bGVyKCkKICAgICByZXR1cm4gKm1f
bmV0d29ya0xvYWRTY2hlZHVsZXI7CiB9CiAKK1N0cmluZyBOZXR3b3JrU2Vzc2lvbjo6YXR0cmli
dXRlZEJ1bmRsZUlkZW50aWZpZXJGcm9tUGFnZUlkZW50aWZpZXIoV2ViUGFnZVByb3h5SWRlbnRp
ZmllciBpZGVudGlmaWVyKSBjb25zdAoreworICAgIHJldHVybiBtX2F0dHJpYnV0ZWRCdW5kbGVJ
ZGVudGlmaWVyRnJvbVBhZ2VJZGVudGlmaWVycy5nZXQoaWRlbnRpZmllcik7Cit9CisKIH0gLy8g
bmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrU2Vzc2lvbi5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
U2Vzc2lvbi5oCmluZGV4IDBkY2ZiMjdjYzJmYTg1ZDI0ZmIzYjUyMGE3NTE1OTFlZTMwMTIwZTcu
LjdkYTk1ZTk3MGJlOTUzY2ZiZWVkZGJiNzlkMTQ5NjQzZTNhMmU4OGIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmgKQEAgLTE3Nyw2ICsxNzcsOCBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZVdlYlBhZ2VOZXR3b3JrUGFyYW1ldGVy
cyhXZWJQYWdlUHJveHlJZGVudGlmaWVyKSB7IH0KICAgICB2aXJ0dWFsIHNpemVfdCBjb3VudE5v
bkRlZmF1bHRTZXNzaW9uU2V0cygpIGNvbnN0IHsgcmV0dXJuIDA7IH0KIAorICAgIFN0cmluZyBh
dHRyaWJ1dGVkQnVuZGxlSWRlbnRpZmllckZyb21QYWdlSWRlbnRpZmllcihXZWJQYWdlUHJveHlJ
ZGVudGlmaWVyKSBjb25zdDsKKwogcHJvdGVjdGVkOgogICAgIE5ldHdvcmtTZXNzaW9uKE5ldHdv
cmtQcm9jZXNzJiwgY29uc3QgTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMmKTsKIApA
QCAtMjI4LDYgKzIzMCw3IEBAIHByb3RlY3RlZDoKICNlbmRpZgogCiAgICAgSGFzaFNldDxzdGQ6
OnVuaXF1ZV9wdHI8UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnROZXR3b3JrTG9hZGVyPj4gbV9wcml2
YXRlQ2xpY2tNZWFzdXJlbWVudE5ldHdvcmtMb2FkZXJzOworICAgIEhhc2hNYXA8V2ViUGFnZVBy
b3h5SWRlbnRpZmllciwgU3RyaW5nPiBtX2F0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVyRnJvbVBh
Z2VJZGVudGlmaWVyczsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1t
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29h
Lm1tCmluZGV4IGM4MzdlZTVhZWVlODZmNjQ4YTNjNzY2Mzg3ZTI1ODhlNDllYWY4MjIuLmE0Mzgx
ZDBmMTliMDI1YWU2YzBkYWUxZmUyYjlkZDc2ZDEyMDZhMjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW0K
QEAgLTE3NjAsMTEgKzE3NjAsMTQgQEAgdm9pZCBOZXR3b3JrU2Vzc2lvbkNvY29hOjphZGRXZWJQ
YWdlTmV0d29ya1BhcmFtZXRlcnMoV2ViUGFnZVByb3h5SWRlbnRpZmllciBwYWcKICNlbmRpZgog
ICAgIGluaXRpYWxpemVOU1VSTFNlc3Npb25zSW5TZXQoYWRkUmVzdWx0Mi5pdGVyYXRvci0+dmFs
dWUuZ2V0KCksIGNvbmZpZ3VyYXRpb24uZ2V0KCkpOwogICAgIGFkZFJlc3VsdDEuaXRlcmF0b3It
PnZhbHVlID0gbWFrZVdlYWtQdHIoYWRkUmVzdWx0Mi5pdGVyYXRvci0+dmFsdWUuZ2V0KCkpOwor
CisgICAgbV9hdHRyaWJ1dGVkQnVuZGxlSWRlbnRpZmllckZyb21QYWdlSWRlbnRpZmllcnMuYWRk
KHBhZ2VJRCwgcGFyYW1ldGVycy5hdHRyaWJ1dGVkQnVuZGxlSWRlbnRpZmllcigpKTsKIH0KIAog
dm9pZCBOZXR3b3JrU2Vzc2lvbkNvY29hOjpyZW1vdmVXZWJQYWdlTmV0d29ya1BhcmFtZXRlcnMo
V2ViUGFnZVByb3h5SWRlbnRpZmllciBwYWdlSUQpCiB7CiAgICAgbV9wZXJQYWdlU2Vzc2lvblNl
dHMucmVtb3ZlKHBhZ2VJRCk7CisgICAgbV9hdHRyaWJ1dGVkQnVuZGxlSWRlbnRpZmllckZyb21Q
YWdlSWRlbnRpZmllcnMucmVtb3ZlKHBhZ2VJRCk7CiB9CiAKIHNpemVfdCBOZXR3b3JrU2Vzc2lv
bkNvY29hOjpjb3VudE5vbkRlZmF1bHRTZXNzaW9uU2V0cygpIGNvbnN0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIuY3Bw
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVy
LmNwcAppbmRleCBjYWI1ODIxZmFlZDZhNzFmOGFlMGVmYzQzNWVmN2Y2MmQ2ZWVhMGIxLi5lNmM0
MTNlMDgzOWM1ZmI5MDZlNWVmNjIyOWY0NTk0NjFiMDI3NWI2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlci5j
cHAKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzcy5oIgogI2luY2x1
ZGUgIk5ldHdvcmtSVENQcm92aWRlck1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiTmV0d29ya1JUQ1Jl
c29sdmVyLmgiCisjaW5jbHVkZSAiTmV0d29ya1Nlc3Npb24uaCIKICNpbmNsdWRlICJSVENQYWNr
ZXRPcHRpb25zLmgiCiAjaW5jbHVkZSAiV2ViUlRDUmVzb2x2ZXJNZXNzYWdlcy5oIgogI2luY2x1
ZGUgPFdlYkNvcmUvTGliV2ViUlRDTWFjcm9zLmg+CkBAIC0xMzUsMTggKzEzNiwzNCBAQCB2b2lk
IE5ldHdvcmtSVENQcm92aWRlcjo6Y3JlYXRlU29ja2V0KExpYldlYlJUQ1NvY2tldElkZW50aWZp
ZXIgaWRlbnRpZmllciwgc3RkOgogICAgIGFkZFNvY2tldChpZGVudGlmaWVyLCBtYWtlVW5pcXVl
PExpYldlYlJUQ1NvY2tldENsaWVudD4oaWRlbnRpZmllciwgKnRoaXMsIFdURk1vdmUoc29ja2V0
KSwgdHlwZSwgV1RGTW92ZShjb25uZWN0aW9uKSkpOwogfQogCi12b2lkIE5ldHdvcmtSVENQcm92
aWRlcjo6Y3JlYXRlVURQU29ja2V0KExpYldlYlJUQ1NvY2tldElkZW50aWZpZXIgaWRlbnRpZmll
ciwgY29uc3QgUlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyYgYWRkcmVzcywgdWludDE2X3QgbWlu
UG9ydCwgdWludDE2X3QgbWF4UG9ydCwgYm9vbCBpc0ZpcnN0UGFydHksIGJvb2wgaXNSZWxheURp
c2FibGVkLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYmIGRvbWFpbikKKyNpZiBQTEFURk9S
TShDT0NPQSkKK2NvbnN0IFN0cmluZyYgTmV0d29ya1JUQ1Byb3ZpZGVyOjphdHRyaWJ1dGVkQnVu
ZGxlSWRlbnRpZmllckZyb21QYWdlSWRlbnRpZmllcihXZWJQYWdlUHJveHlJZGVudGlmaWVyIHBh
Z2VJZGVudGlmaWVyKQoreworICAgIHJldHVybiBtX2F0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVy
cy5lbnN1cmUocGFnZUlkZW50aWZpZXIsIFsmXSgpIC0+IFN0cmluZyB7CisgICAgICAgIFN0cmlu
ZyB2YWx1ZTsKKyAgICAgICAgY2FsbE9uTWFpblJ1bkxvb3BBbmRXYWl0KFsmXSB7CisgICAgICAg
ICAgICBhdXRvKiBzZXNzaW9uID0gbV9jb25uZWN0aW9uLT5uZXR3b3JrU2Vzc2lvbigpOworICAg
ICAgICAgICAgaWYgKHNlc3Npb24pCisgICAgICAgICAgICAgICAgdmFsdWUgPSBzZXNzaW9uLT5h
dHRyaWJ1dGVkQnVuZGxlSWRlbnRpZmllckZyb21QYWdlSWRlbnRpZmllcihwYWdlSWRlbnRpZmll
cikuaXNvbGF0ZWRDb3B5KCk7CisgICAgICAgIH0pOworICAgICAgICByZXR1cm4gdmFsdWU7Cisg
ICAgfSkuaXRlcmF0b3ItPnZhbHVlOworfQorI2VuZGlmCisKK3ZvaWQgTmV0d29ya1JUQ1Byb3Zp
ZGVyOjpjcmVhdGVVRFBTb2NrZXQoTGliV2ViUlRDU29ja2V0SWRlbnRpZmllciBpZGVudGlmaWVy
LCBjb25zdCBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzJiBhZGRyZXNzLCB1aW50MTZfdCBtaW5Q
b3J0LCB1aW50MTZfdCBtYXhQb3J0LCBXZWJQYWdlUHJveHlJZGVudGlmaWVyIHBhZ2VJZGVudGlm
aWVyLCBib29sIGlzRmlyc3RQYXJ0eSwgYm9vbCBpc1JlbGF5RGlzYWJsZWQsIFdlYkNvcmU6OlJl
Z2lzdHJhYmxlRG9tYWluJiYgZG9tYWluKQogeworICAgIEFTU0VSVChtX3J0Y05ldHdvcmtUaHJl
YWQuSXNDdXJyZW50KCkpOworCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgaWYgKG1fcGxhdGZv
cm1VRFBTb2NrZXRzRW5hYmxlZCkgewotICAgICAgICBpZiAoYXV0byBzb2NrZXQgPSBOZXR3b3Jr
UlRDVURQU29ja2V0Q29jb2E6OmNyZWF0ZVVEUFNvY2tldChpZGVudGlmaWVyLCAqdGhpcywgYWRk
cmVzcy52YWx1ZSwgbWluUG9ydCwgbWF4UG9ydCwgbV9pcGNDb25uZWN0aW9uLmNvcHlSZWYoKSwg
aXNGaXJzdFBhcnR5LCBpc1JlbGF5RGlzYWJsZWQsIFdURk1vdmUoZG9tYWluKSkpIHsKKyAgICAg
ICAgaWYgKGF1dG8gc29ja2V0ID0gTmV0d29ya1JUQ1VEUFNvY2tldENvY29hOjpjcmVhdGVVRFBT
b2NrZXQoaWRlbnRpZmllciwgKnRoaXMsIGFkZHJlc3MudmFsdWUsIG1pblBvcnQsIG1heFBvcnQs
IG1faXBjQ29ubmVjdGlvbi5jb3B5UmVmKCksIFN0cmluZyhhdHRyaWJ1dGVkQnVuZGxlSWRlbnRp
ZmllckZyb21QYWdlSWRlbnRpZmllcihwYWdlSWRlbnRpZmllcikpLCBpc0ZpcnN0UGFydHksIGlz
UmVsYXlEaXNhYmxlZCwgV1RGTW92ZShkb21haW4pKSkgewogICAgICAgICAgICAgYWRkU29ja2V0
KGlkZW50aWZpZXIsIFdURk1vdmUoc29ja2V0KSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAg
ICAgIH0KICAgICB9CiAjZW5kaWYKIAotICAgIEFTU0VSVChtX3J0Y05ldHdvcmtUaHJlYWQuSXND
dXJyZW50KCkpOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxydGM6OkFzeW5jUGFja2V0U29ja2V0PiBz
b2NrZXQobV9wYWNrZXRTb2NrZXRGYWN0b3J5LT5DcmVhdGVVZHBTb2NrZXQoYWRkcmVzcy52YWx1
ZSwgbWluUG9ydCwgbWF4UG9ydCkpOwogICAgIGNyZWF0ZVNvY2tldChpZGVudGlmaWVyLCBXVEZN
b3ZlKHNvY2tldCksIFNvY2tldDo6VHlwZTo6VURQLCBtX2lwY0Nvbm5lY3Rpb24uY29weVJlZigp
KTsKIH0KQEAgLTE3Nyw5ICsxOTQsMjAgQEAgcnRjOjpQcm94eUluZm8gTmV0d29ya1JUQ1Byb3Zp
ZGVyOjpwcm94eUluZm9Gcm9tU2Vzc2lvbihjb25zdCBSVENOZXR3b3JrOjpTb2NrZXQKIH0KICNl
bmRpZgogCi12b2lkIE5ldHdvcmtSVENQcm92aWRlcjo6Y3JlYXRlQ2xpZW50VENQU29ja2V0KExp
YldlYlJUQ1NvY2tldElkZW50aWZpZXIgaWRlbnRpZmllciwgY29uc3QgUlRDTmV0d29yazo6U29j
a2V0QWRkcmVzcyYgbG9jYWxBZGRyZXNzLCBjb25zdCBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNz
JiByZW1vdGVBZGRyZXNzLCBTdHJpbmcmJiB1c2VyQWdlbnQsIGludCBvcHRpb25zLCBib29sIGlz
UmVsYXlEaXNhYmxlZCkKK3ZvaWQgTmV0d29ya1JUQ1Byb3ZpZGVyOjpjcmVhdGVDbGllbnRUQ1BT
b2NrZXQoTGliV2ViUlRDU29ja2V0SWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBSVENOZXR3
b3JrOjpTb2NrZXRBZGRyZXNzJiBsb2NhbEFkZHJlc3MsIGNvbnN0IFJUQ05ldHdvcms6OlNvY2tl
dEFkZHJlc3MmIHJlbW90ZUFkZHJlc3MsIFN0cmluZyYmIHVzZXJBZ2VudCwgaW50IG9wdGlvbnMs
IFdlYlBhZ2VQcm94eUlkZW50aWZpZXIgcGFnZUlkZW50aWZpZXIsIGJvb2wgaXNSZWxheURpc2Fi
bGVkKQogewotICAgIGNhbGxPbk1haW5SdW5Mb29wKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFr
ZVJlZigqdGhpcyksIGlkZW50aWZpZXIsIGxvY2FsQWRkcmVzcywgcmVtb3RlQWRkcmVzcywgdXNl
ckFnZW50ID0gV1RGTW92ZSh1c2VyQWdlbnQpLmlzb2xhdGVkQ29weSgpLCBvcHRpb25zLCBpc1Jl
bGF5RGlzYWJsZWRdKCkgbXV0YWJsZSB7CisgICAgQVNTRVJUKG1fcnRjTmV0d29ya1RocmVhZC5J
c0N1cnJlbnQoKSk7CisKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBpZiAobV9wbGF0Zm9ybVRD
UFNvY2tldHNFbmFibGVkKSB7CisgICAgICAgIGlmIChhdXRvIHNvY2tldCA9IE5ldHdvcmtSVENU
Q1BTb2NrZXRDb2NvYTo6Y3JlYXRlQ2xpZW50VENQU29ja2V0KGlkZW50aWZpZXIsICp0aGlzLCBy
ZW1vdGVBZGRyZXNzLnZhbHVlLCBvcHRpb25zLCBhdHRyaWJ1dGVkQnVuZGxlSWRlbnRpZmllckZy
b21QYWdlSWRlbnRpZmllcihwYWdlSWRlbnRpZmllciksIGlzUmVsYXlEaXNhYmxlZCwgbV9pcGND
b25uZWN0aW9uLmNvcHlSZWYoKSkpIHsKKyAgICAgICAgICAgIGFkZFNvY2tldChpZGVudGlmaWVy
LCBXVEZNb3ZlKHNvY2tldCkpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAg
fQorI2VuZGlmCisKKyAgICBjYWxsT25NYWluUnVuTG9vcChbdGhpcywgcHJvdGVjdGVkVGhpcyA9
IG1ha2VSZWYoKnRoaXMpLCBpZGVudGlmaWVyLCBsb2NhbEFkZHJlc3MsIHJlbW90ZUFkZHJlc3Ms
IHVzZXJBZ2VudCA9IFdURk1vdmUodXNlckFnZW50KS5pc29sYXRlZENvcHkoKSwgb3B0aW9uc10o
KSBtdXRhYmxlIHsKICAgICAgICAgaWYgKCFtX2Nvbm5lY3Rpb24pCiAgICAgICAgICAgICByZXR1
cm47CiAKQEAgLTE4OCwxNSArMjE2LDggQEAgdm9pZCBOZXR3b3JrUlRDUHJvdmlkZXI6OmNyZWF0
ZUNsaWVudFRDUFNvY2tldChMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyIGlkZW50aWYKICAgICAg
ICAgICAgIG1fY29ubmVjdGlvbi0+Y29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6OkxpYldlYlJU
Q05ldHdvcms6OlNpZ25hbENsb3NlKGlkZW50aWZpZXIsIDEpLCAwKTsKICAgICAgICAgICAgIHJl
dHVybjsKICAgICAgICAgfQotICAgICAgICBjYWxsT25SVENOZXR3b3JrVGhyZWFkKFt0aGlzLCBp
ZGVudGlmaWVyLCBsb2NhbEFkZHJlc3MgPSBSVENOZXR3b3JrOjppc29sYXRlZENvcHkobG9jYWxB
ZGRyZXNzLnZhbHVlKSwgcmVtb3RlQWRkcmVzcyA9IFJUQ05ldHdvcms6Omlzb2xhdGVkQ29weShy
ZW1vdGVBZGRyZXNzLnZhbHVlKSwgcHJveHlJbmZvID0gcHJveHlJbmZvRnJvbVNlc3Npb24ocmVt
b3RlQWRkcmVzcywgKnNlc3Npb24pLCB1c2VyQWdlbnQgPSBXVEZNb3ZlKHVzZXJBZ2VudCkuaXNv
bGF0ZWRDb3B5KCksIG9wdGlvbnMsIGlzUmVsYXlEaXNhYmxlZF0oKSBtdXRhYmxlIHsKLSNpZiBQ
TEFURk9STShDT0NPQSkKLSAgICAgICAgICAgIGlmIChtX3BsYXRmb3JtVENQU29ja2V0c0VuYWJs
ZWQpIHsKLSAgICAgICAgICAgICAgICBpZiAoYXV0byBzb2NrZXQgPSBOZXR3b3JrUlRDVENQU29j
a2V0Q29jb2E6OmNyZWF0ZUNsaWVudFRDUFNvY2tldChpZGVudGlmaWVyLCAqdGhpcywgcmVtb3Rl
QWRkcmVzcywgb3B0aW9ucywgaXNSZWxheURpc2FibGVkLCBtX2lwY0Nvbm5lY3Rpb24uY29weVJl
ZigpKSkgewotICAgICAgICAgICAgICAgICAgICBhZGRTb2NrZXQoaWRlbnRpZmllciwgV1RGTW92
ZShzb2NrZXQpKTsKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgICAg
IH0KLSAgICAgICAgICAgIH0KLSNlbmRpZgorICAgICAgICBjYWxsT25SVENOZXR3b3JrVGhyZWFk
KFt0aGlzLCBpZGVudGlmaWVyLCBsb2NhbEFkZHJlc3MgPSBSVENOZXR3b3JrOjppc29sYXRlZENv
cHkobG9jYWxBZGRyZXNzLnZhbHVlKSwgcmVtb3RlQWRkcmVzcyA9IFJUQ05ldHdvcms6Omlzb2xh
dGVkQ29weShyZW1vdGVBZGRyZXNzLnZhbHVlKSwgcHJveHlJbmZvID0gcHJveHlJbmZvRnJvbVNl
c3Npb24ocmVtb3RlQWRkcmVzcywgKnNlc3Npb24pLCB1c2VyQWdlbnQgPSBXVEZNb3ZlKHVzZXJB
Z2VudCkuaXNvbGF0ZWRDb3B5KCksIG9wdGlvbnNdKCkgbXV0YWJsZSB7CisKICAgICAgICAgICAg
IHJ0Yzo6UGFja2V0U29ja2V0VGNwT3B0aW9ucyB0Y3BPcHRpb25zOwogICAgICAgICAgICAgdGNw
T3B0aW9ucy5vcHRzID0gb3B0aW9uczsKICAgICAgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxydGM6
OkFzeW5jUGFja2V0U29ja2V0PiBzb2NrZXQobV9wYWNrZXRTb2NrZXRGYWN0b3J5LT5DcmVhdGVD
bGllbnRUY3BTb2NrZXQobG9jYWxBZGRyZXNzLCByZW1vdGVBZGRyZXNzLCBwcm94eUluZm8sIHVz
ZXJBZ2VudC51dGY4KCkuZGF0YSgpLCB0Y3BPcHRpb25zKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIuaCBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlci5oCmluZGV4
IGM5Y2NlZDYyZmM2MjU5ZjUzYWYyNDc1ZTBhMzRjMDAzMTlhMzg5NWEuLjA0YjVjNWFiYWQ2Mzcx
ZDY1NmFlM2RlNGQ0ZTVmNDFmYWI3M2Y3NWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlci5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlci5oCkBAIC0zMiw2ICsz
Miw3IEBACiAjaW5jbHVkZSAiTGliV2ViUlRDUmVzb2x2ZXJJZGVudGlmaWVyLmgiCiAjaW5jbHVk
ZSAiTmV0d29ya1JUQ01vbml0b3IuaCIKICNpbmNsdWRlICJSVENOZXR3b3JrLmgiCisjaW5jbHVk
ZSAiV2ViUGFnZVByb3h5SWRlbnRpZmllci5oIgogI2luY2x1ZGUgPFdlYkNvcmUvTGliV2ViUlRD
TWFjcm9zLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9MaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyLmg+
CiAjaW5jbHVkZSA8d2VicnRjL3AycC9iYXNlL2Jhc2ljX3BhY2tldF9zb2NrZXRfZmFjdG9yeS5o
PgpAQCAtMTEzLDggKzExNCw4IEBAIHByaXZhdGU6CiAgICAgZXhwbGljaXQgTmV0d29ya1JUQ1By
b3ZpZGVyKE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzJik7CiAgICAgdm9pZCBzdGFydExp
c3RlbmluZ0ZvcklQQygpOwogCi0gICAgdm9pZCBjcmVhdGVVRFBTb2NrZXQoV2ViQ29yZTo6TGli
V2ViUlRDU29ja2V0SWRlbnRpZmllciwgY29uc3QgUlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyYs
IHVpbnQxNl90LCB1aW50MTZfdCwgYm9vbCBpc0ZpcnN0UGFydHksIGJvb2wgaXNSZWxheURpc2Fi
bGVkLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYmKTsKLSAgICB2b2lkIGNyZWF0ZUNsaWVu
dFRDUFNvY2tldChXZWJDb3JlOjpMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyLCBjb25zdCBSVENO
ZXR3b3JrOjpTb2NrZXRBZGRyZXNzJiwgY29uc3QgUlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyYs
IFN0cmluZyYmIHVzZXJBZ2VudCwgaW50LCBib29sIGlzUmVsYXlEaXNhYmxlZCk7CisgICAgdm9p
ZCBjcmVhdGVVRFBTb2NrZXQoV2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmllciwgY29u
c3QgUlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyYsIHVpbnQxNl90LCB1aW50MTZfdCwgV2ViUGFn
ZVByb3h5SWRlbnRpZmllciwgYm9vbCBpc0ZpcnN0UGFydHksIGJvb2wgaXNSZWxheURpc2FibGVk
LCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYmKTsKKyAgICB2b2lkIGNyZWF0ZUNsaWVudFRD
UFNvY2tldChXZWJDb3JlOjpMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyLCBjb25zdCBSVENOZXR3
b3JrOjpTb2NrZXRBZGRyZXNzJiwgY29uc3QgUlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyYsIFN0
cmluZyYmIHVzZXJBZ2VudCwgaW50LCBXZWJQYWdlUHJveHlJZGVudGlmaWVyLCBib29sIGlzUmVs
YXlEaXNhYmxlZCk7CiAgICAgdm9pZCBjcmVhdGVTZXJ2ZXJUQ1BTb2NrZXQoV2ViQ29yZTo6TGli
V2ViUlRDU29ja2V0SWRlbnRpZmllciwgY29uc3QgUlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyYs
IHVpbnQxNl90IG1pblBvcnQsIHVpbnQxNl90IG1heFBvcnQsIGludCk7CiAgICAgdm9pZCB3cmFw
TmV3VENQQ29ubmVjdGlvbihXZWJDb3JlOjpMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyIGlkZW50
aWZpZXIsIFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50aWZpZXIgbmV3Q29ubmVjdGlvblNv
Y2tldElkZW50aWZpZXIpOwogICAgIHZvaWQgc2VuZFRvU29ja2V0KFdlYkNvcmU6OkxpYldlYlJU
Q1NvY2tldElkZW50aWZpZXIsIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYsIFJUQ05ldHdvcms6
OlNvY2tldEFkZHJlc3MmJiwgUlRDUGFja2V0T3B0aW9ucyYmKTsKQEAgLTEzNiw2ICsxMzcsMTAg
QEAgcHJpdmF0ZToKIAogICAgIHN0YXRpYyBydGM6OlByb3h5SW5mbyBwcm94eUluZm9Gcm9tU2Vz
c2lvbihjb25zdCBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzJiwgTmV0d29ya1Nlc3Npb24mKTsK
IAorI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIGNvbnN0IFN0cmluZyYgYXR0cmlidXRlZEJ1bmRs
ZUlkZW50aWZpZXJGcm9tUGFnZUlkZW50aWZpZXIoV2ViUGFnZVByb3h5SWRlbnRpZmllcik7Cisj
ZW5kaWYKKwogICAgIEhhc2hNYXA8TGliV2ViUlRDUmVzb2x2ZXJJZGVudGlmaWVyLCBzdGQ6OnVu
aXF1ZV9wdHI8TmV0d29ya1JUQ1Jlc29sdmVyPj4gbV9yZXNvbHZlcnM7CiAgICAgSGFzaE1hcDxX
ZWJDb3JlOjpMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyLCBzdGQ6OnVuaXF1ZV9wdHI8U29ja2V0
Pj4gbV9zb2NrZXRzOwogICAgIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzKiBtX2Nvbm5l
Y3Rpb247CkBAIC0xNTMsNiArMTU4LDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1fcGxhdGZvcm1V
RFBTb2NrZXRzRW5hYmxlZCB7IGZhbHNlIH07CiAKICNpZiBQTEFURk9STShDT0NPQSkKKyAgICBI
YXNoTWFwPFdlYlBhZ2VQcm94eUlkZW50aWZpZXIsIFN0cmluZz4gbV9hdHRyaWJ1dGVkQnVuZGxl
SWRlbnRpZmllcnM7CiAgICAgc3RkOjpvcHRpb25hbDxhdWRpdF90b2tlbl90PiBtX3NvdXJjZUFw
cGxpY2F0aW9uQXVkaXRUb2tlbjsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIubWVzc2FnZXMuaW4gYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIubWVz
c2FnZXMuaW4KaW5kZXggN2Y3ZDc5ZWM1MTZhOGNlY2FjMmJiZDg5ODgxZWQxYmRhMzJiY2Q0My4u
YzJkOGIyOWJkZmE3YmYxMzFiOTJiY2E4ZmZhODI2YjRlZDQ5ZjMzZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVyLm1lc3Nh
Z2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtS
VENQcm92aWRlci5tZXNzYWdlcy5pbgpAQCAtMjMsOSArMjMsOSBAQAogI2lmIFVTRShMSUJXRUJS
VEMpCiAKIG1lc3NhZ2VzIC0+IE5ldHdvcmtSVENQcm92aWRlciB7Ci0gICAgQ3JlYXRlVURQU29j
a2V0KFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViS2l0
OjpSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzIGxvY2FsQWRkcmVzcywgdWludDE2X3QgbWluUG9y
dCwgdWludDE2X3QgbWF4UG9ydCwgYm9vbCBpc0ZpcnN0UGFydHksIGJvb2wgaXNSZWxheURpc2Fi
bGVkLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiBkb21haW4pCisgICAgQ3JlYXRlVURQU29j
a2V0KFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViS2l0
OjpSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzIGxvY2FsQWRkcmVzcywgdWludDE2X3QgbWluUG9y
dCwgdWludDE2X3QgbWF4UG9ydCwgV2ViS2l0OjpXZWJQYWdlUHJveHlJZGVudGlmaWVyIHBhZ2VJ
ZGVudGlmaWVyLCBib29sIGlzRmlyc3RQYXJ0eSwgYm9vbCBpc1JlbGF5RGlzYWJsZWQsIFdlYkNv
cmU6OlJlZ2lzdHJhYmxlRG9tYWluIGRvbWFpbikKICAgICBDcmVhdGVTZXJ2ZXJUQ1BTb2NrZXQo
V2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJLaXQ6OlJU
Q05ldHdvcms6OlNvY2tldEFkZHJlc3MgbG9jYWxBZGRyZXNzLCB1aW50MTZfdCBtaW5Qb3J0LCB1
aW50MTZfdCBtYXhQb3J0LCBpbnQgb3B0aW9ucykKLSAgICBDcmVhdGVDbGllbnRUQ1BTb2NrZXQo
V2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJLaXQ6OlJU
Q05ldHdvcms6OlNvY2tldEFkZHJlc3MgbG9jYWxBZGRyZXNzLCBXZWJLaXQ6OlJUQ05ldHdvcms6
OlNvY2tldEFkZHJlc3MgcmVtb3RlQWRkcmVzcywgU3RyaW5nIHVzZXJBZ2VudCwgaW50IG9wdGlv
bnMsIGJvb2wgaXNSZWxheURpc2FibGVkKQorICAgIENyZWF0ZUNsaWVudFRDUFNvY2tldChXZWJD
b3JlOjpMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYktpdDo6UlRDTmV0
d29yazo6U29ja2V0QWRkcmVzcyBsb2NhbEFkZHJlc3MsIFdlYktpdDo6UlRDTmV0d29yazo6U29j
a2V0QWRkcmVzcyByZW1vdGVBZGRyZXNzLCBTdHJpbmcgdXNlckFnZW50LCBpbnQgb3B0aW9ucywg
V2ViS2l0OjpXZWJQYWdlUHJveHlJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyLCBib29sIGlzUmVs
YXlEaXNhYmxlZCkKICAgICBXcmFwTmV3VENQQ29ubmVjdGlvbihXZWJDb3JlOjpMaWJXZWJSVENT
b2NrZXRJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50
aWZpZXIgbmV3Q29ubmVjdGlvblNvY2tldElkZW50aWZpZXIpCiAKICAgICB2b2lkIFNldFBsYXRm
b3JtVENQU29ja2V0c0VuYWJsZWQoYm9vbCBlbmFibGVkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1RDUFNvY2tldENvY29hLmggYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDVENQU29ja2V0Q29j
b2EuaAppbmRleCBmNDEyNWQzY2IwOGZlY2Y5MjYzNjMzODdiOWNhMDAzNDNkODJkYTJlLi4yZTI5
MWUxMDViMTlkYjM1Y2NmYjAwZjM3Y2VkZjk1Y2QyZDk5ODg2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDVENQU29ja2V0Q29jb2EuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDVENQU29j
a2V0Q29jb2EuaApAQCAtMzksOSArMzksOSBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIGNsYXNzIE5l
dHdvcmtSVENUQ1BTb2NrZXRDb2NvYSBmaW5hbCA6IHB1YmxpYyBOZXR3b3JrUlRDUHJvdmlkZXI6
OlNvY2tldCB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgc3Rh
dGljIHN0ZDo6dW5pcXVlX3B0cjxOZXR3b3JrUlRDUHJvdmlkZXI6OlNvY2tldD4gY3JlYXRlQ2xp
ZW50VENQU29ja2V0KFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50aWZpZXIsIE5ldHdvcmtS
VENQcm92aWRlciYsIGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYsIGludCBvcHRpb25zLCBib29s
IGlzUmVsYXlEaXNhYmxlZCwgUmVmPElQQzo6Q29ubmVjdGlvbj4mJik7CisgICAgc3RhdGljIHN0
ZDo6dW5pcXVlX3B0cjxOZXR3b3JrUlRDUHJvdmlkZXI6OlNvY2tldD4gY3JlYXRlQ2xpZW50VENQ
U29ja2V0KFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50aWZpZXIsIE5ldHdvcmtSVENQcm92
aWRlciYsIGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYsIGludCBvcHRpb25zLCBjb25zdCBTdHJp
bmcmIGF0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVyLCBib29sIGlzUmVsYXlEaXNhYmxlZCwgUmVm
PElQQzo6Q29ubmVjdGlvbj4mJik7CiAKLSAgICBOZXR3b3JrUlRDVENQU29ja2V0Q29jb2EoV2Vi
Q29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmllciwgTmV0d29ya1JUQ1Byb3ZpZGVyJiwgY29u
c3QgcnRjOjpTb2NrZXRBZGRyZXNzJiwgaW50IG9wdGlvbnMsIGJvb2wgaXNSZWxheURpc2FibGVk
LCBSZWY8SVBDOjpDb25uZWN0aW9uPiYmKTsKKyAgICBOZXR3b3JrUlRDVENQU29ja2V0Q29jb2Eo
V2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmllciwgTmV0d29ya1JUQ1Byb3ZpZGVyJiwg
Y29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiwgaW50IG9wdGlvbnMsIGNvbnN0IFN0cmluZyYgYXR0
cmlidXRlZEJ1bmRsZUlkZW50aWZpZXIsIGJvb2wgaXNSZWxheURpc2FibGVkLCBSZWY8SVBDOjpD
b25uZWN0aW9uPiYmKTsKIAogcHJpdmF0ZToKICAgICAvLyBOZXR3b3JrUlRDUHJvdmlkZXI6OlNv
Y2tldC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05l
dHdvcmtSVENUQ1BTb2NrZXRDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
d2VicnRjL05ldHdvcmtSVENUQ1BTb2NrZXRDb2NvYS5tbQppbmRleCAzZmJkMGUwYjJhZjBhMmZh
YWQ1ZTAyNDYyYmE3YzI4Mjk1NzA2NjY0Li5hZTZiNzcyNzBkMWFhN2JmZTczNzk1MzMzNDk4MmQ3
Y2ExMzZmMDMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0
Yy9OZXR3b3JrUlRDVENQU29ja2V0Q29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1RDUFNvY2tldENvY29hLm1tCkBAIC01MCwxMiArNTAs
MTIgQEAgc3RhdGljIGRpc3BhdGNoX3F1ZXVlX3QgdGNwU29ja2V0UXVldWUoKQogICAgIHJldHVy
biBxdWV1ZTsKIH0KIAotc3RkOjp1bmlxdWVfcHRyPE5ldHdvcmtSVENQcm92aWRlcjo6U29ja2V0
PiBOZXR3b3JrUlRDVENQU29ja2V0Q29jb2E6OmNyZWF0ZUNsaWVudFRDUFNvY2tldChMaWJXZWJS
VENTb2NrZXRJZGVudGlmaWVyIGlkZW50aWZpZXIsIE5ldHdvcmtSVENQcm92aWRlciYgcnRjUHJv
dmlkZXIsIGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYgcmVtb3RlQWRkcmVzcywgaW50IHRjcE9w
dGlvbnMsIGJvb2wgaXNSZWxheURpc2FibGVkLCBSZWY8SVBDOjpDb25uZWN0aW9uPiYmIGNvbm5l
Y3Rpb24pCitzdGQ6OnVuaXF1ZV9wdHI8TmV0d29ya1JUQ1Byb3ZpZGVyOjpTb2NrZXQ+IE5ldHdv
cmtSVENUQ1BTb2NrZXRDb2NvYTo6Y3JlYXRlQ2xpZW50VENQU29ja2V0KExpYldlYlJUQ1NvY2tl
dElkZW50aWZpZXIgaWRlbnRpZmllciwgTmV0d29ya1JUQ1Byb3ZpZGVyJiBydGNQcm92aWRlciwg
Y29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiByZW1vdGVBZGRyZXNzLCBpbnQgdGNwT3B0aW9ucywg
Y29uc3QgU3RyaW5nJiBhdHRyaWJ1dGVkQnVuZGxlSWRlbnRpZmllciwgYm9vbCBpc1JlbGF5RGlz
YWJsZWQsIFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYgY29ubmVjdGlvbikKIHsKICAgICAvLyBGSVhN
RTogV2Ugc2hvdWxkIG1pZ3JhdGUgc3NsdGNwIGNhbmRpZGF0ZXMsIG1heWJlIHN1cHBvcnQgT1BU
X1RMU19JTlNFQ1VSRSBhcyB3ZWxsLgogICAgIGlmICgodGNwT3B0aW9ucyAmIHJ0Yzo6UGFja2V0
U29ja2V0RmFjdG9yeTo6T1BUX1RMU19GQUtFKSB8fCAodGNwT3B0aW9ucyAmIHJ0Yzo6UGFja2V0
U29ja2V0RmFjdG9yeTo6T1BUX1RMU19JTlNFQ1VSRSkpCiAgICAgICAgIHJldHVybiBudWxscHRy
OwotICAgIHJldHVybiBtYWtlVW5pcXVlPE5ldHdvcmtSVENUQ1BTb2NrZXRDb2NvYT4oaWRlbnRp
ZmllciwgcnRjUHJvdmlkZXIsIHJlbW90ZUFkZHJlc3MsIHRjcE9wdGlvbnMsIGlzUmVsYXlEaXNh
YmxlZCwgV1RGTW92ZShjb25uZWN0aW9uKSk7CisgICAgcmV0dXJuIG1ha2VVbmlxdWU8TmV0d29y
a1JUQ1RDUFNvY2tldENvY29hPihpZGVudGlmaWVyLCBydGNQcm92aWRlciwgcmVtb3RlQWRkcmVz
cywgdGNwT3B0aW9ucywgYXR0cmlidXRlZEJ1bmRsZUlkZW50aWZpZXIsIGlzUmVsYXlEaXNhYmxl
ZCwgV1RGTW92ZShjb25uZWN0aW9uKSk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBwcm9jZXNz
SW5jb21pbmdEYXRhKFJldGFpblB0cjxud19jb25uZWN0aW9uX3Q+JiYgbndDb25uZWN0aW9uLCBG
dW5jdGlvbjxWZWN0b3I8dWludDhfdD4oVmVjdG9yPHVpbnQ4X3Q+JiYpPiYmIHByb2Nlc3NEYXRh
LCBWZWN0b3I8dWludDhfdD4mJiBidWZmZXIgPSB7IH0pCkBAIC04MCw3ICs4MCw3IEBAIHN0YXRp
YyBpbmxpbmUgdm9pZCBwcm9jZXNzSW5jb21pbmdEYXRhKFJldGFpblB0cjxud19jb25uZWN0aW9u
X3Q+JiYgbndDb25uZWN0aW9uCiAgICAgfSkuZ2V0KCkpOwogfQogCi1OZXR3b3JrUlRDVENQU29j
a2V0Q29jb2E6Ok5ldHdvcmtSVENUQ1BTb2NrZXRDb2NvYShMaWJXZWJSVENTb2NrZXRJZGVudGlm
aWVyIGlkZW50aWZpZXIsIE5ldHdvcmtSVENQcm92aWRlciYgcnRjUHJvdmlkZXIsIGNvbnN0IHJ0
Yzo6U29ja2V0QWRkcmVzcyYgcmVtb3RlQWRkcmVzcywgaW50IG9wdGlvbnMsIGJvb2wgaXNSZWxh
eURpc2FibGVkLCBSZWY8SVBDOjpDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24pCitOZXR3b3JrUlRD
VENQU29ja2V0Q29jb2E6Ok5ldHdvcmtSVENUQ1BTb2NrZXRDb2NvYShMaWJXZWJSVENTb2NrZXRJ
ZGVudGlmaWVyIGlkZW50aWZpZXIsIE5ldHdvcmtSVENQcm92aWRlciYgcnRjUHJvdmlkZXIsIGNv
bnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYgcmVtb3RlQWRkcmVzcywgaW50IG9wdGlvbnMsIGNvbnN0
IFN0cmluZyYgYXR0cmlidXRlZEJ1bmRsZUlkZW50aWZpZXIsIGJvb2wgaXNSZWxheURpc2FibGVk
LCBSZWY8SVBDOjpDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24pCiAgICAgOiBtX2lkZW50aWZpZXIo
aWRlbnRpZmllcikKICAgICAsIG1fcnRjUHJvdmlkZXIocnRjUHJvdmlkZXIpCiAgICAgLCBtX2Nv
bm5lY3Rpb24oV1RGTW92ZShjb25uZWN0aW9uKSkKQEAgLTk4LDYgKzk4LDggQEAgTmV0d29ya1JU
Q1RDUFNvY2tldENvY29hOjpOZXR3b3JrUlRDVENQU29ja2V0Q29jb2EoTGliV2ViUlRDU29ja2V0
SWRlbnRpZmllciBpZGUKIAogICAgIGlmIChhdXRvIHRva2VuID0gcnRjUHJvdmlkZXIuc291cmNl
QXBwbGljYXRpb25BdWRpdFRva2VuKCkpCiAgICAgICAgIG53X3BhcmFtZXRlcnNfc2V0X3NvdXJj
ZV9hcHBsaWNhdGlvbih0Y3BUTFMuZ2V0KCksICp0b2tlbik7CisgICAgaWYgKCFhdHRyaWJ1dGVk
QnVuZGxlSWRlbnRpZmllci5pc0VtcHR5KCkpCisgICAgICAgIG53X3BhcmFtZXRlcnNfc2V0X3Nv
dXJjZV9hcHBsaWNhdGlvbl9ieV9idW5kbGVfaWQodGNwVExTLmdldCgpLCBhdHRyaWJ1dGVkQnVu
ZGxlSWRlbnRpZmllci51dGY4KCkuZGF0YSgpKTsKICAgICBpZiAoaXNSZWxheURpc2FibGVkKQog
ICAgICAgICBud19wYXJhbWV0ZXJzX3NldF9hY2NvdW50X2lkKHRjcFRMUy5nZXQoKSwgImNvbS5h
cHBsZS5zYWZhcmkucGVlcnRvcGVlciIpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDVURQU29ja2V0Q29jb2EuaCBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENVRFBTb2NrZXRDb2NvYS5oCmlu
ZGV4IGNiOWMxOTVkZTFiMjZhNjY0NGIxNzE0ZDBmYTZlZTMzYzVhMjQyMjkuLjVkNjVjZDFkMDll
MjYzOTY2NDQzZGRjZjQ0NWE2ODQ4MDQ3NjFiODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENVRFBTb2NrZXRDb2NvYS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENVRFBTb2NrZXRDb2Nv
YS5oCkBAIC02MCw5ICs2MCw5IEBAIGNsYXNzIE5ldHdvcmtSVENVRFBTb2NrZXRDb2NvYUNvbm5l
Y3Rpb25zOwogY2xhc3MgTmV0d29ya1JUQ1VEUFNvY2tldENvY29hIGZpbmFsIDogcHVibGljIE5l
dHdvcmtSVENQcm92aWRlcjo6U29ja2V0IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsK
IHB1YmxpYzoKLSAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPE5ldHdvcmtSVENQcm92aWRlcjo6
U29ja2V0PiBjcmVhdGVVRFBTb2NrZXQoV2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmll
ciwgTmV0d29ya1JUQ1Byb3ZpZGVyJiwgY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiwgdWludDE2
X3QgbWluUG9ydCwgdWludDE2X3QgbWF4UG9ydCwgUmVmPElQQzo6Q29ubmVjdGlvbj4mJiwgYm9v
bCBpc0ZpcnN0UGFydHksIGJvb2wgaXNSZWxheURpc2FibGVkLCBjb25zdCBXZWJDb3JlOjpSZWdp
c3RyYWJsZURvbWFpbiYpOworICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8TmV0d29ya1JUQ1By
b3ZpZGVyOjpTb2NrZXQ+IGNyZWF0ZVVEUFNvY2tldChXZWJDb3JlOjpMaWJXZWJSVENTb2NrZXRJ
ZGVudGlmaWVyLCBOZXR3b3JrUlRDUHJvdmlkZXImLCBjb25zdCBydGM6OlNvY2tldEFkZHJlc3Mm
LCB1aW50MTZfdCBtaW5Qb3J0LCB1aW50MTZfdCBtYXhQb3J0LCBSZWY8SVBDOjpDb25uZWN0aW9u
PiYmLCBTdHJpbmcmJiBhdHRyaWJ1dGVkQnVuZGxlSWRlbnRpZmllciwgYm9vbCBpc0ZpcnN0UGFy
dHksIGJvb2wgaXNSZWxheURpc2FibGVkLCBjb25zdCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFp
biYpOwogCi0gICAgTmV0d29ya1JUQ1VEUFNvY2tldENvY29hKFdlYkNvcmU6OkxpYldlYlJUQ1Nv
Y2tldElkZW50aWZpZXIsIE5ldHdvcmtSVENQcm92aWRlciYsIGNvbnN0IHJ0Yzo6U29ja2V0QWRk
cmVzcyYsIFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYsIGJvb2wgaXNGaXJzdFBhcnR5LCBib29sIGlz
UmVsYXlEaXNhYmxlZCwgY29uc3QgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mKTsKKyAgICBO
ZXR3b3JrUlRDVURQU29ja2V0Q29jb2EoV2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmll
ciwgTmV0d29ya1JUQ1Byb3ZpZGVyJiwgY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiwgUmVmPElQ
Qzo6Q29ubmVjdGlvbj4mJiwgU3RyaW5nJiYgYXR0cmlidXRlZEJ1bmRsZUlkZW50aWZpZXIsIGJv
b2wgaXNGaXJzdFBhcnR5LCBib29sIGlzUmVsYXlEaXNhYmxlZCwgY29uc3QgV2ViQ29yZTo6UmVn
aXN0cmFibGVEb21haW4mKTsKICAgICB+TmV0d29ya1JUQ1VEUFNvY2tldENvY29hKCk7CiAKICAg
ICB2b2lkIHNldExpc3RlbmluZ1BvcnQoaW50KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENVRFBTb2NrZXRDb2NvYS5tbSBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENVRFBTb2NrZXRDb2NvYS5t
bQppbmRleCBkNDU2NjQ1OGNiNTIzMzA3ODVlMTRkZGQyMWY0NzcxODZiMTA4MWE1Li4wYjU2YmY0
ZTcwNTZiNGUwY2RjNjMyM2VlZjQzZmE1Y2JkNzBiMWVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDVURQU29ja2V0Q29jb2EubW0KKysr
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1VEUFNvY2tl
dENvY29hLm1tCkBAIC01Niw3ICs1Niw3IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBj
bGFzcyBOZXR3b3JrUlRDVURQU29ja2V0Q29jb2FDb25uZWN0aW9ucyA6IHB1YmxpYyBUaHJlYWRT
YWZlUmVmQ291bnRlZDxOZXR3b3JrUlRDVURQU29ja2V0Q29jb2FDb25uZWN0aW9ucz4gewogcHVi
bGljOgotICAgIHN0YXRpYyBSZWY8TmV0d29ya1JUQ1VEUFNvY2tldENvY29hQ29ubmVjdGlvbnM+
IGNyZWF0ZShXZWJDb3JlOjpMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyIGlkZW50aWZpZXIsIE5l
dHdvcmtSVENQcm92aWRlciYgcHJvdmlkZXIsIGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYgYWRk
cmVzcywgUmVmPElQQzo6Q29ubmVjdGlvbj4mJiBjb25uZWN0aW9uLCBib29sIGlzRmlyc3RQYXJ0
eSwgYm9vbCBpc1JlbGF5RGlzYWJsZWQsIGNvbnN0IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWlu
JiBkb21haW4pIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTmV0d29ya1JUQ1VEUFNvY2tldENvY29h
Q29ubmVjdGlvbnMoaWRlbnRpZmllciwgcHJvdmlkZXIsIGFkZHJlc3MsIFdURk1vdmUoY29ubmVj
dGlvbiksIGlzRmlyc3RQYXJ0eSwgaXNSZWxheURpc2FibGVkLCBkb21haW4pKTsgfQorICAgIHN0
YXRpYyBSZWY8TmV0d29ya1JUQ1VEUFNvY2tldENvY29hQ29ubmVjdGlvbnM+IGNyZWF0ZShXZWJD
b3JlOjpMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyIGlkZW50aWZpZXIsIE5ldHdvcmtSVENQcm92
aWRlciYgcHJvdmlkZXIsIGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYgYWRkcmVzcywgUmVmPElQ
Qzo6Q29ubmVjdGlvbj4mJiBjb25uZWN0aW9uLCBTdHJpbmcmJiBhdHRyaWJ1dGVkQnVuZGxlSWRl
bnRpZmllciwgYm9vbCBpc0ZpcnN0UGFydHksIGJvb2wgaXNSZWxheURpc2FibGVkLCBjb25zdCBX
ZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYgZG9tYWluKSB7IHJldHVybiBhZG9wdFJlZigqbmV3
IE5ldHdvcmtSVENVRFBTb2NrZXRDb2NvYUNvbm5lY3Rpb25zKGlkZW50aWZpZXIsIHByb3ZpZGVy
LCBhZGRyZXNzLCBXVEZNb3ZlKGNvbm5lY3Rpb24pLCBXVEZNb3ZlKGF0dHJpYnV0ZWRCdW5kbGVJ
ZGVudGlmaWVyKSwgaXNGaXJzdFBhcnR5LCBpc1JlbGF5RGlzYWJsZWQsIGRvbWFpbikpOyB9CiAK
ICAgICB2b2lkIGNsb3NlKCk7CiAgICAgdm9pZCBzZXRPcHRpb24oaW50IG9wdGlvbiwgaW50IHZh
bHVlKTsKQEAgLTY0LDcgKzY0LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0TGlzdGVuaW5nUG9y
dChpbnQpOwogCiBwcml2YXRlOgotICAgIE5ldHdvcmtSVENVRFBTb2NrZXRDb2NvYUNvbm5lY3Rp
b25zKFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50aWZpZXIsIE5ldHdvcmtSVENQcm92aWRl
ciYsIGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYsIFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYsIGJv
b2wgaXNGaXJzdFBhcnR5LCBib29sIGlzUmVsYXlEaXNhYmxlZCwgY29uc3QgV2ViQ29yZTo6UmVn
aXN0cmFibGVEb21haW4mKTsKKyAgICBOZXR3b3JrUlRDVURQU29ja2V0Q29jb2FDb25uZWN0aW9u
cyhXZWJDb3JlOjpMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyLCBOZXR3b3JrUlRDUHJvdmlkZXIm
LCBjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmLCBSZWY8SVBDOjpDb25uZWN0aW9uPiYmLCBTdHJp
bmcmJiBhdHRyaWJ1dGVkQnVuZGxlSWRlbnRpZmllciwgYm9vbCBpc0ZpcnN0UGFydHksIGJvb2wg
aXNSZWxheURpc2FibGVkLCBjb25zdCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYpOwogCiAg
ICAgUmV0YWluUHRyPG53X2Nvbm5lY3Rpb25fdD4gY3JlYXRlTldDb25uZWN0aW9uKGNvbnN0IHJ0
Yzo6U29ja2V0QWRkcmVzcyYpOwogICAgIHZvaWQgc2V0dXBOV0Nvbm5lY3Rpb24obndfY29ubmVj
dGlvbl90LCBjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmKTsKQEAgLTc5LDYgKzc5LDcgQEAgcHJp
dmF0ZToKICAgICBib29sIG1fc2hvdWxkQnlwYXNzUmVsYXkgeyBmYWxzZSB9OwogCiAgICAgc3Rk
OjpvcHRpb25hbDxhdWRpdF90b2tlbl90PiBtX3NvdXJjZUFwcGxpY2F0aW9uQXVkaXRUb2tlbjsK
KyAgICBTdHJpbmcgbV9hdHRyaWJ1dGVkQnVuZGxlSWRlbnRpZmllcjsKIAogICAgIHJ0Yzo6U29j
a2V0QWRkcmVzcyBtX2FkZHJlc3M7CiAgICAgUmV0YWluUHRyPG53X2xpc3RlbmVyX3Q+IG1fbndM
aXN0ZW5lcjsKQEAgLTk3LDE1ICs5OCwxNSBAQCBzdGF0aWMgZGlzcGF0Y2hfcXVldWVfdCB1ZHBT
b2NrZXRRdWV1ZSgpCiAgICAgcmV0dXJuIHF1ZXVlOwogfQogCi1zdGQ6OnVuaXF1ZV9wdHI8TmV0
d29ya1JUQ1Byb3ZpZGVyOjpTb2NrZXQ+IE5ldHdvcmtSVENVRFBTb2NrZXRDb2NvYTo6Y3JlYXRl
VURQU29ja2V0KFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50aWZpZXIgaWRlbnRpZmllciwg
TmV0d29ya1JUQ1Byb3ZpZGVyJiBydGNQcm92aWRlciwgY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNz
JiBhZGRyZXNzLCB1aW50MTZfdCBtaW5Qb3J0LCB1aW50MTZfdCBtYXhQb3J0LCBSZWY8SVBDOjpD
b25uZWN0aW9uPiYmIGNvbm5lY3Rpb24sIGJvb2wgaXNGaXJzdFBhcnR5LCBib29sIGlzUmVsYXlE
aXNhYmxlZCwgY29uc3QgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mIGRvbWFpbikKK3N0ZDo6
dW5pcXVlX3B0cjxOZXR3b3JrUlRDUHJvdmlkZXI6OlNvY2tldD4gTmV0d29ya1JUQ1VEUFNvY2tl
dENvY29hOjpjcmVhdGVVRFBTb2NrZXQoV2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmll
ciBpZGVudGlmaWVyLCBOZXR3b3JrUlRDUHJvdmlkZXImIHJ0Y1Byb3ZpZGVyLCBjb25zdCBydGM6
OlNvY2tldEFkZHJlc3MmIGFkZHJlc3MsIHVpbnQxNl90IG1pblBvcnQsIHVpbnQxNl90IG1heFBv
cnQsIFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYgY29ubmVjdGlvbiwgU3RyaW5nJiYgYXR0cmlidXRl
ZEJ1bmRsZUlkZW50aWZpZXIsIGJvb2wgaXNGaXJzdFBhcnR5LCBib29sIGlzUmVsYXlEaXNhYmxl
ZCwgY29uc3QgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mIGRvbWFpbikKIHsKLSAgICByZXR1
cm4gbWFrZVVuaXF1ZTxOZXR3b3JrUlRDVURQU29ja2V0Q29jb2E+KGlkZW50aWZpZXIsIHJ0Y1By
b3ZpZGVyLCBhZGRyZXNzLCBXVEZNb3ZlKGNvbm5lY3Rpb24pLCBpc0ZpcnN0UGFydHksIGlzUmVs
YXlEaXNhYmxlZCwgZG9tYWluKTsKKyAgICByZXR1cm4gbWFrZVVuaXF1ZTxOZXR3b3JrUlRDVURQ
U29ja2V0Q29jb2E+KGlkZW50aWZpZXIsIHJ0Y1Byb3ZpZGVyLCBhZGRyZXNzLCBXVEZNb3ZlKGNv
bm5lY3Rpb24pLCBXVEZNb3ZlKGF0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVyKSwgaXNGaXJzdFBh
cnR5LCBpc1JlbGF5RGlzYWJsZWQsIGRvbWFpbik7CiB9CiAKLU5ldHdvcmtSVENVRFBTb2NrZXRD
b2NvYTo6TmV0d29ya1JUQ1VEUFNvY2tldENvY29hKFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElk
ZW50aWZpZXIgaWRlbnRpZmllciwgTmV0d29ya1JUQ1Byb3ZpZGVyJiBydGNQcm92aWRlciwgY29u
c3QgcnRjOjpTb2NrZXRBZGRyZXNzJiBhZGRyZXNzLCBSZWY8SVBDOjpDb25uZWN0aW9uPiYmIGNv
bm5lY3Rpb24sIGJvb2wgaXNGaXJzdFBhcnR5LCBib29sIGlzUmVsYXlEaXNhYmxlZCwgY29uc3Qg
V2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mIGRvbWFpbikKK05ldHdvcmtSVENVRFBTb2NrZXRD
b2NvYTo6TmV0d29ya1JUQ1VEUFNvY2tldENvY29hKFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElk
ZW50aWZpZXIgaWRlbnRpZmllciwgTmV0d29ya1JUQ1Byb3ZpZGVyJiBydGNQcm92aWRlciwgY29u
c3QgcnRjOjpTb2NrZXRBZGRyZXNzJiBhZGRyZXNzLCBSZWY8SVBDOjpDb25uZWN0aW9uPiYmIGNv
bm5lY3Rpb24sIFN0cmluZyYmIGF0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVyLCBib29sIGlzRmly
c3RQYXJ0eSwgYm9vbCBpc1JlbGF5RGlzYWJsZWQsIGNvbnN0IFdlYkNvcmU6OlJlZ2lzdHJhYmxl
RG9tYWluJiBkb21haW4pCiAgICAgOiBtX3J0Y1Byb3ZpZGVyKHJ0Y1Byb3ZpZGVyKQogICAgICwg
bV9pZGVudGlmaWVyKGlkZW50aWZpZXIpCi0gICAgLCBtX253Q29ubmVjdGlvbnMoTmV0d29ya1JU
Q1VEUFNvY2tldENvY29hQ29ubmVjdGlvbnM6OmNyZWF0ZShpZGVudGlmaWVyLCBydGNQcm92aWRl
ciwgYWRkcmVzcywgV1RGTW92ZShjb25uZWN0aW9uKSwgaXNGaXJzdFBhcnR5LCBpc1JlbGF5RGlz
YWJsZWQsIGRvbWFpbikpCisgICAgLCBtX253Q29ubmVjdGlvbnMoTmV0d29ya1JUQ1VEUFNvY2tl
dENvY29hQ29ubmVjdGlvbnM6OmNyZWF0ZShpZGVudGlmaWVyLCBydGNQcm92aWRlciwgYWRkcmVz
cywgV1RGTW92ZShjb25uZWN0aW9uKSwgV1RGTW92ZShhdHRyaWJ1dGVkQnVuZGxlSWRlbnRpZmll
ciksIGlzRmlyc3RQYXJ0eSwgaXNSZWxheURpc2FibGVkLCBkb21haW4pKQogewogfQogCkBAIC0x
NTcsNyArMTU4LDcgQEAgc3RhdGljIGJvb2wgaXNLbm93blRyYWNrZXIoY29uc3QgV2ViQ29yZTo6
UmVnaXN0cmFibGVEb21haW4mIGRvbWFpbikKIH0KICNlbmRpZgogCi1OZXR3b3JrUlRDVURQU29j
a2V0Q29jb2FDb25uZWN0aW9uczo6TmV0d29ya1JUQ1VEUFNvY2tldENvY29hQ29ubmVjdGlvbnMo
V2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmllciBpZGVudGlmaWVyLCBOZXR3b3JrUlRD
UHJvdmlkZXImIHJ0Y1Byb3ZpZGVyLCBjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmIGFkZHJlc3Ms
IFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYgY29ubmVjdGlvbiwgYm9vbCBpc0ZpcnN0UGFydHksIGJv
b2wgaXNSZWxheURpc2FibGVkLCBjb25zdCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYgZG9t
YWluKQorTmV0d29ya1JUQ1VEUFNvY2tldENvY29hQ29ubmVjdGlvbnM6Ok5ldHdvcmtSVENVRFBT
b2NrZXRDb2NvYUNvbm5lY3Rpb25zKFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50aWZpZXIg
aWRlbnRpZmllciwgTmV0d29ya1JUQ1Byb3ZpZGVyJiBydGNQcm92aWRlciwgY29uc3QgcnRjOjpT
b2NrZXRBZGRyZXNzJiBhZGRyZXNzLCBSZWY8SVBDOjpDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24s
IFN0cmluZyYmIGF0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVyLCBib29sIGlzRmlyc3RQYXJ0eSwg
Ym9vbCBpc1JlbGF5RGlzYWJsZWQsIGNvbnN0IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiBk
b21haW4pCiAgICAgOiBtX2lkZW50aWZpZXIoaWRlbnRpZmllcikKICAgICAsIG1fY29ubmVjdGlv
bihXVEZNb3ZlKGNvbm5lY3Rpb24pKQogI2lmIEhBVkUoTldQQVJBTUVURVJTX1RSQUNLRVJfQVBJ
KQpAQCAtMTY2LDYgKzE2Nyw3IEBAIE5ldHdvcmtSVENVRFBTb2NrZXRDb2NvYUNvbm5lY3Rpb25z
OjpOZXR3b3JrUlRDVURQU29ja2V0Q29jb2FDb25uZWN0aW9ucyhXZWJDb3JlCiAjZW5kaWYKICAg
ICAsIG1fc2hvdWxkQnlwYXNzUmVsYXkoaXNSZWxheURpc2FibGVkKQogICAgICwgbV9zb3VyY2VB
cHBsaWNhdGlvbkF1ZGl0VG9rZW4ocnRjUHJvdmlkZXIuc291cmNlQXBwbGljYXRpb25BdWRpdFRv
a2VuKCkpCisgICAgLCBtX2F0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVyKFdURk1vdmUoYXR0cmli
dXRlZEJ1bmRsZUlkZW50aWZpZXIpKQogewogICAgIGF1dG8gcGFyYW1ldGVycyA9IGFkb3B0TlMo
bndfcGFyYW1ldGVyc19jcmVhdGVfc2VjdXJlX3VkcChOV19QQVJBTUVURVJTX0RJU0FCTEVfUFJP
VE9DT0wsIE5XX1BBUkFNRVRFUlNfREVGQVVMVF9DT05GSUdVUkFUSU9OKSk7CiAgICAgewpAQCAt
MjQyLDYgKzI0NCw4IEBAIHZvaWQgTmV0d29ya1JUQ1VEUFNvY2tldENvY29hQ29ubmVjdGlvbnM6
OmNvbmZpZ3VyZVBhcmFtZXRlcnMobndfcGFyYW1ldGVyc190IHBhCiAKICAgICBpZiAobV9zb3Vy
Y2VBcHBsaWNhdGlvbkF1ZGl0VG9rZW4pCiAgICAgICAgIG53X3BhcmFtZXRlcnNfc2V0X3NvdXJj
ZV9hcHBsaWNhdGlvbihwYXJhbWV0ZXJzLCAqbV9zb3VyY2VBcHBsaWNhdGlvbkF1ZGl0VG9rZW4p
OworICAgIGlmICghbV9hdHRyaWJ1dGVkQnVuZGxlSWRlbnRpZmllci5pc0VtcHR5KCkpCisgICAg
ICAgIG53X3BhcmFtZXRlcnNfc2V0X3NvdXJjZV9hcHBsaWNhdGlvbl9ieV9idW5kbGVfaWQocGFy
YW1ldGVycywgbV9hdHRyaWJ1dGVkQnVuZGxlSWRlbnRpZmllci51dGY4KCkuZGF0YSgpKTsKIAog
ICAgIG53X3BhcmFtZXRlcnNfc2V0X3JldXNlX2xvY2FsX2FkZHJlc3MocGFyYW1ldGVycywgdHJ1
ZSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9Db2NvYS9OV1Bh
cmFtZXRlcnNTUEkuaCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL0NvY29hL05XUGFyYW1l
dGVyc1NQSS5oCmluZGV4IGMxZjcwOTcwMjEwYTc4M2Y1ZTY5Y2UyZDVmZTZkYmRmMGQ0OGJhZWEu
LmVlNjAyY2U4N2Y4OTkxNmQ2YTgwODE2YmMyOWZjMWY1Y2NmYzlkZDYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL0NvY29hL05XUGFyYW1ldGVyc1NQSS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL0NvY29hL05XUGFyYW1ldGVyc1NQSS5oCkBAIC0zNSw2
ICszNSw3IEBAIFdURl9FWFRFUk5fQ19CRUdJTgogCiB2b2lkIG53X3BhcmFtZXRlcnNfc2V0X2Fj
Y291bnRfaWQobndfcGFyYW1ldGVyc190LCBjb25zdCBjaGFyICogYWNjb3VudF9pZCk7CiB2b2lk
IG53X3BhcmFtZXRlcnNfc2V0X3NvdXJjZV9hcHBsaWNhdGlvbihud19wYXJhbWV0ZXJzX3QsIGF1
ZGl0X3Rva2VuX3QpOwordm9pZCBud19wYXJhbWV0ZXJzX3NldF9zb3VyY2VfYXBwbGljYXRpb25f
YnlfYnVuZGxlX2lkKG53X3BhcmFtZXRlcnNfdCwgY29uc3QgY2hhciopOwogbndfZW5kcG9pbnRf
dCBud19lbmRwb2ludF9jcmVhdGVfaG9zdF93aXRoX251bWVyaWNfcG9ydChjb25zdCBjaGFyKiBo
b3N0bmFtZSwgdWludDE2X3QgcG9ydF9ob3N0X29yZGVyKTsKIAogI2lmIEhBVkUoTldQQVJBTUVU
RVJTX1RSQUNLRVJfQVBJKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05l
dHdvcmsvd2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5jcHAKaW5kZXggZmZiM2FhMGI3
MGU2Y2FlMzlmNDkyNWNiMmMyZTJlMDA2Mjk1N2M0Yi4uOTY4YzlmMzA0YjY1NDgwOWY5OTI2MjU2
YzEwMDU1MDdjOTcxMmY1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05l
dHdvcmsvd2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuY3BwCkBAIC04OCw3ICs4
OCw3IEBAIHZvaWQgTGliV2ViUlRDUHJvdmlkZXI6OnJlZ2lzdGVyTUROU05hbWUoRG9jdW1lbnRJ
ZGVudGlmaWVyIGRvY3VtZW50SWRlbnRpZmllciwKIGNsYXNzIFJUQ1NvY2tldEZhY3RvcnkgZmlu
YWwgOiBwdWJsaWMgTGliV2ViUlRDUHJvdmlkZXI6OlN1c3BlbmRhYmxlU29ja2V0RmFjdG9yeSB7
CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgUlRDU29ja2V0RmFj
dG9yeShTdHJpbmcmJiB1c2VyQWdlbnQsIGJvb2wgaXNGaXJzdFBhcnR5LCBSZWdpc3RyYWJsZURv
bWFpbiYmKTsKKyAgICBSVENTb2NrZXRGYWN0b3J5KFdlYlBhZ2VQcm94eUlkZW50aWZpZXIsIFN0
cmluZyYmIHVzZXJBZ2VudCwgYm9vbCBpc0ZpcnN0UGFydHksIFJlZ2lzdHJhYmxlRG9tYWluJiYp
OwogCiAgICAgdm9pZCBkaXNhYmxlUmVsYXkoKSBmaW5hbCB7IG1faXNSZWxheURpc2FibGVkID0g
dHJ1ZTsgfQogCkBAIC0xMDIsMTQgKzEwMiwxNiBAQCBwcml2YXRlOgogICAgIHZvaWQgcmVzdW1l
KCkgZmluYWw7CiAKIHByaXZhdGU6CisgICAgV2ViUGFnZVByb3h5SWRlbnRpZmllciBtX3BhZ2VJ
ZGVudGlmaWVyOwogICAgIFN0cmluZyBtX3VzZXJBZ2VudDsKICAgICBib29sIG1faXNGaXJzdFBh
cnR5IHsgZmFsc2UgfTsKICAgICBib29sIG1faXNSZWxheURpc2FibGVkIHsgZmFsc2UgfTsKICAg
ICBSZWdpc3RyYWJsZURvbWFpbiBtX2RvbWFpbjsKIH07CiAKLVJUQ1NvY2tldEZhY3Rvcnk6OlJU
Q1NvY2tldEZhY3RvcnkoU3RyaW5nJiYgdXNlckFnZW50LCBib29sIGlzRmlyc3RQYXJ0eSwgUmVn
aXN0cmFibGVEb21haW4mJiBkb21haW4pCi0gICAgOiBtX3VzZXJBZ2VudChXVEZNb3ZlKHVzZXJB
Z2VudCkpCitSVENTb2NrZXRGYWN0b3J5OjpSVENTb2NrZXRGYWN0b3J5KFdlYlBhZ2VQcm94eUlk
ZW50aWZpZXIgcGFnZUlkZW50aWZpZXIsIFN0cmluZyYmIHVzZXJBZ2VudCwgYm9vbCBpc0ZpcnN0
UGFydHksIFJlZ2lzdHJhYmxlRG9tYWluJiYgZG9tYWluKQorICAgIDogbV9wYWdlSWRlbnRpZmll
cihwYWdlSWRlbnRpZmllcikKKyAgICAsIG1fdXNlckFnZW50KFdURk1vdmUodXNlckFnZW50KSkK
ICAgICAsIG1faXNGaXJzdFBhcnR5KGlzRmlyc3RQYXJ0eSkKICAgICAsIG1fZG9tYWluKFdURk1v
dmUoZG9tYWluKSkKIHsKQEAgLTExNyw3ICsxMTksNyBAQCBSVENTb2NrZXRGYWN0b3J5OjpSVENT
b2NrZXRGYWN0b3J5KFN0cmluZyYmIHVzZXJBZ2VudCwgYm9vbCBpc0ZpcnN0UGFydHksIFJlZ2lz
dAogCiBydGM6OkFzeW5jUGFja2V0U29ja2V0KiBSVENTb2NrZXRGYWN0b3J5OjpDcmVhdGVVZHBT
b2NrZXQoY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiBhZGRyZXNzLCB1aW50MTZfdCBtaW5Qb3J0
LCB1aW50MTZfdCBtYXhQb3J0KQogewotICAgIHJldHVybiBXZWJQcm9jZXNzOjpzaW5nbGV0b24o
KS5saWJXZWJSVENOZXR3b3JrKCkuc29ja2V0RmFjdG9yeSgpLmNyZWF0ZVVkcFNvY2tldCh0aGlz
LCBhZGRyZXNzLCBtaW5Qb3J0LCBtYXhQb3J0LCBtX2lzRmlyc3RQYXJ0eSwgbV9pc1JlbGF5RGlz
YWJsZWQsIG1fZG9tYWluKTsKKyAgICByZXR1cm4gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkubGli
V2ViUlRDTmV0d29yaygpLnNvY2tldEZhY3RvcnkoKS5jcmVhdGVVZHBTb2NrZXQodGhpcywgYWRk
cmVzcywgbWluUG9ydCwgbWF4UG9ydCwgbV9wYWdlSWRlbnRpZmllciwgbV9pc0ZpcnN0UGFydHks
IG1faXNSZWxheURpc2FibGVkLCBtX2RvbWFpbik7CiB9CiAKIHJ0Yzo6QXN5bmNQYWNrZXRTb2Nr
ZXQqIFJUQ1NvY2tldEZhY3Rvcnk6OkNyZWF0ZVNlcnZlclRjcFNvY2tldChjb25zdCBydGM6OlNv
Y2tldEFkZHJlc3MmIGFkZHJlc3MsIHVpbnQxNl90IG1pblBvcnQsIHVpbnQxNl90IG1heFBvcnQs
IGludCBvcHRpb25zKQpAQCAtMTI3LDcgKzEyOSw3IEBAIHJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQq
IFJUQ1NvY2tldEZhY3Rvcnk6OkNyZWF0ZVNlcnZlclRjcFNvY2tldChjb25zdCBydGM6OlNvY2tl
CiAKIHJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQqIFJUQ1NvY2tldEZhY3Rvcnk6OkNyZWF0ZUNsaWVu
dFRjcFNvY2tldChjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmIGxvY2FsQWRkcmVzcywgY29uc3Qg
cnRjOjpTb2NrZXRBZGRyZXNzJiByZW1vdGVBZGRyZXNzLCBjb25zdCBydGM6OlByb3h5SW5mbyYs
IGNvbnN0IHN0ZDo6c3RyaW5nJiwgY29uc3QgcnRjOjpQYWNrZXRTb2NrZXRUY3BPcHRpb25zJiBv
cHRpb25zKQogewotICAgIHJldHVybiBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5saWJXZWJSVENO
ZXR3b3JrKCkuc29ja2V0RmFjdG9yeSgpLmNyZWF0ZUNsaWVudFRjcFNvY2tldCh0aGlzLCBsb2Nh
bEFkZHJlc3MsIHJlbW90ZUFkZHJlc3MsIFN0cmluZyB7IG1fdXNlckFnZW50IH0sIG9wdGlvbnMs
IG1faXNSZWxheURpc2FibGVkKTsKKyAgICByZXR1cm4gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCku
bGliV2ViUlRDTmV0d29yaygpLnNvY2tldEZhY3RvcnkoKS5jcmVhdGVDbGllbnRUY3BTb2NrZXQo
dGhpcywgbG9jYWxBZGRyZXNzLCByZW1vdGVBZGRyZXNzLCBTdHJpbmcgeyBtX3VzZXJBZ2VudCB9
LCBvcHRpb25zLCBtX3BhZ2VJZGVudGlmaWVyLCBtX2lzUmVsYXlEaXNhYmxlZCk7CiB9CiAKIHJ0
Yzo6QXN5bmNSZXNvbHZlckludGVyZmFjZSogUlRDU29ja2V0RmFjdG9yeTo6Q3JlYXRlQXN5bmNS
ZXNvbHZlcigpCkBAIC0xNjAsNyArMTYyLDcgQEAgdm9pZCBMaWJXZWJSVENQcm92aWRlcjo6c3Rh
cnRlZE5ldHdvcmtUaHJlYWQoKQogCiBzdGQ6OnVuaXF1ZV9wdHI8TGliV2ViUlRDUHJvdmlkZXI6
OlN1c3BlbmRhYmxlU29ja2V0RmFjdG9yeT4gTGliV2ViUlRDUHJvdmlkZXI6OmNyZWF0ZVNvY2tl
dEZhY3RvcnkoU3RyaW5nJiYgdXNlckFnZW50LCBib29sIGlzRmlyc3RQYXJ0eSwgUmVnaXN0cmFi
bGVEb21haW4mJiBkb21haW4pCiB7Ci0gICAgYXV0byBmYWN0b3J5ID0gbWFrZVVuaXF1ZTxSVENT
b2NrZXRGYWN0b3J5PihXVEZNb3ZlKHVzZXJBZ2VudCksIGlzRmlyc3RQYXJ0eSwgV1RGTW92ZShk
b21haW4pKTsKKyAgICBhdXRvIGZhY3RvcnkgPSBtYWtlVW5pcXVlPFJUQ1NvY2tldEZhY3Rvcnk+
KG1fd2ViUGFnZS53ZWJQYWdlUHJveHlJZGVudGlmaWVyKCksIFdURk1vdmUodXNlckFnZW50KSwg
aXNGaXJzdFBhcnR5LCBXVEZNb3ZlKGRvbWFpbikpOwogCiAgICAgYXV0byogcGFnZSA9IG1fd2Vi
UGFnZS5jb3JlUGFnZSgpOwogICAgIGlmICghcGFnZSB8fCAhcGFnZS0+c2V0dGluZ3MoKS53ZWJS
VENTb2NrZXRzUHJveHlpbmdFbmFibGVkKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDU29ja2V0RmFjdG9yeS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDU29ja2V0RmFjdG9y
eS5jcHAKaW5kZXggMjAyN2MyODgwNzUyYmE1NTdmYzJjZTMzOWFmZDczMjNlMzMyNGEwZi4uODFl
MTVlODg2NGI2MGI5MWUzYTIzZWUyZjZiODNmNzlkMzM2ZDM5ZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1NvY2tldEZhY3Rvcnku
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJS
VENTb2NrZXRGYWN0b3J5LmNwcApAQCAtODUsMjYgKzg1LDI2IEBAIHJ0Yzo6QXN5bmNQYWNrZXRT
b2NrZXQqIExpYldlYlJUQ1NvY2tldEZhY3Rvcnk6OmNyZWF0ZVNlcnZlclRjcFNvY2tldChjb25z
dCB2b2lkCiAgICAgcmV0dXJuIHNvY2tldC5yZWxlYXNlKCk7CiB9CiAKLXJ0Yzo6QXN5bmNQYWNr
ZXRTb2NrZXQqIExpYldlYlJUQ1NvY2tldEZhY3Rvcnk6OmNyZWF0ZVVkcFNvY2tldChjb25zdCB2
b2lkKiBzb2NrZXRHcm91cCwgY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiBhZGRyZXNzLCB1aW50
MTZfdCBtaW5Qb3J0LCB1aW50MTZfdCBtYXhQb3J0LCBib29sIGlzRmlyc3RQYXJ0eSwgYm9vbCBp
c1JlbGF5RGlzYWJsZWQsIGNvbnN0IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiBkb21haW4p
CitydGM6OkFzeW5jUGFja2V0U29ja2V0KiBMaWJXZWJSVENTb2NrZXRGYWN0b3J5OjpjcmVhdGVV
ZHBTb2NrZXQoY29uc3Qgdm9pZCogc29ja2V0R3JvdXAsIGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVz
cyYgYWRkcmVzcywgdWludDE2X3QgbWluUG9ydCwgdWludDE2X3QgbWF4UG9ydCwgV2ViUGFnZVBy
b3h5SWRlbnRpZmllciBwYWdlSWRlbnRpZmllciwgYm9vbCBpc0ZpcnN0UGFydHksIGJvb2wgaXNS
ZWxheURpc2FibGVkLCBjb25zdCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYgZG9tYWluKQog
ewogICAgIEFTU0VSVCghV1RGOjppc01haW5SdW5Mb29wKCkpOwogICAgIGF1dG8gc29ja2V0ID0g
bWFrZVVuaXF1ZTxMaWJXZWJSVENTb2NrZXQ+KCp0aGlzLCBzb2NrZXRHcm91cCwgTGliV2ViUlRD
U29ja2V0OjpUeXBlOjpVRFAsIGFkZHJlc3MsIHJ0Yzo6U29ja2V0QWRkcmVzcygpKTsKIAogICAg
IGlmIChtX2Nvbm5lY3Rpb24pCi0gICAgICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6
TmV0d29ya1JUQ1Byb3ZpZGVyOjpDcmVhdGVVRFBTb2NrZXQoc29ja2V0LT5pZGVudGlmaWVyKCks
IFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MoYWRkcmVzcyksIG1pblBvcnQsIG1heFBvcnQsIGlz
Rmlyc3RQYXJ0eSwgaXNSZWxheURpc2FibGVkLCBkb21haW4pLCAwKTsKKyAgICAgICAgbV9jb25u
ZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUlRDUHJvdmlkZXI6OkNyZWF0ZVVEUFNvY2tl
dChzb2NrZXQtPmlkZW50aWZpZXIoKSwgUlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyhhZGRyZXNz
KSwgbWluUG9ydCwgbWF4UG9ydCwgcGFnZUlkZW50aWZpZXIsIGlzRmlyc3RQYXJ0eSwgaXNSZWxh
eURpc2FibGVkLCBkb21haW4pLCAwKTsKICAgICBlbHNlIHsKICAgICAgICAgY2FsbE9uTWFpblJ1
bkxvb3AoW10gewogICAgICAgICAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlTmV0
d29ya1Byb2Nlc3NDb25uZWN0aW9uKCk7CiAgICAgICAgIH0pOwotICAgICAgICBtX3BlbmRpbmdN
ZXNzYWdlVGFza3MuYXBwZW5kKFtpZGVudGlmaWVyID0gc29ja2V0LT5pZGVudGlmaWVyKCksIGFk
ZHJlc3MgPSBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzKGFkZHJlc3MpLCBtaW5Qb3J0LCBtYXhQ
b3J0LCBpc0ZpcnN0UGFydHksIGlzUmVsYXlEaXNhYmxlZCwgZG9tYWluXShhdXRvJiBjb25uZWN0
aW9uKSB7Ci0gICAgICAgICAgICBjb25uZWN0aW9uLnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtSVENQ
cm92aWRlcjo6Q3JlYXRlVURQU29ja2V0KGlkZW50aWZpZXIsIGFkZHJlc3MsIG1pblBvcnQsIG1h
eFBvcnQsIGlzRmlyc3RQYXJ0eSwgaXNSZWxheURpc2FibGVkLCBkb21haW4pLCAwKTsKKyAgICAg
ICAgbV9wZW5kaW5nTWVzc2FnZVRhc2tzLmFwcGVuZChbaWRlbnRpZmllciA9IHNvY2tldC0+aWRl
bnRpZmllcigpLCBhZGRyZXNzID0gUlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyhhZGRyZXNzKSwg
bWluUG9ydCwgbWF4UG9ydCwgcGFnZUlkZW50aWZpZXIsIGlzRmlyc3RQYXJ0eSwgaXNSZWxheURp
c2FibGVkLCBkb21haW5dKGF1dG8mIGNvbm5lY3Rpb24pIHsKKyAgICAgICAgICAgIGNvbm5lY3Rp
b24uc2VuZChNZXNzYWdlczo6TmV0d29ya1JUQ1Byb3ZpZGVyOjpDcmVhdGVVRFBTb2NrZXQoaWRl
bnRpZmllciwgYWRkcmVzcywgbWluUG9ydCwgbWF4UG9ydCwgcGFnZUlkZW50aWZpZXIsIGlzRmly
c3RQYXJ0eSwgaXNSZWxheURpc2FibGVkLCBkb21haW4pLCAwKTsKICAgICAgICAgfSk7CiAgICAg
fQogCiAgICAgcmV0dXJuIHNvY2tldC5yZWxlYXNlKCk7CiB9CiAKLXJ0Yzo6QXN5bmNQYWNrZXRT
b2NrZXQqIExpYldlYlJUQ1NvY2tldEZhY3Rvcnk6OmNyZWF0ZUNsaWVudFRjcFNvY2tldChjb25z
dCB2b2lkKiBzb2NrZXRHcm91cCwgY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiBsb2NhbEFkZHJl
c3MsIGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYgcmVtb3RlQWRkcmVzcywgU3RyaW5nJiYgdXNl
ckFnZW50LCBjb25zdCBydGM6OlBhY2tldFNvY2tldFRjcE9wdGlvbnMmIG9wdGlvbnMsIGJvb2wg
aXNSZWxheURpc2FibGVkKQorcnRjOjpBc3luY1BhY2tldFNvY2tldCogTGliV2ViUlRDU29ja2V0
RmFjdG9yeTo6Y3JlYXRlQ2xpZW50VGNwU29ja2V0KGNvbnN0IHZvaWQqIHNvY2tldEdyb3VwLCBj
b25zdCBydGM6OlNvY2tldEFkZHJlc3MmIGxvY2FsQWRkcmVzcywgY29uc3QgcnRjOjpTb2NrZXRB
ZGRyZXNzJiByZW1vdGVBZGRyZXNzLCBTdHJpbmcmJiB1c2VyQWdlbnQsIGNvbnN0IHJ0Yzo6UGFj
a2V0U29ja2V0VGNwT3B0aW9ucyYgb3B0aW9ucywgV2ViUGFnZVByb3h5SWRlbnRpZmllciBwYWdl
SWRlbnRpZmllciwgYm9vbCBpc1JlbGF5RGlzYWJsZWQpCiB7CiAgICAgQVNTRVJUKCFXVEY6Omlz
TWFpblJ1bkxvb3AoKSk7CiAKQEAgLTExMywxMyArMTEzLDEzIEBAIHJ0Yzo6QXN5bmNQYWNrZXRT
b2NrZXQqIExpYldlYlJUQ1NvY2tldEZhY3Rvcnk6OmNyZWF0ZUNsaWVudFRjcFNvY2tldChjb25z
dCB2b2lkCiAKICAgICAvLyBGSVhNRTogV2Ugb25seSB0cmFuc2ZlciBvcHRpb25zLm9wdHMgYnV0
IHNob3VsZCBhbHNvIGhhbmRsZSBvdGhlciBtZW1iZXJzLgogICAgIGlmIChtX2Nvbm5lY3Rpb24p
Ci0gICAgICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6TmV0d29ya1JUQ1Byb3ZpZGVy
OjpDcmVhdGVDbGllbnRUQ1BTb2NrZXQoc29ja2V0LT5pZGVudGlmaWVyKCksIFJUQ05ldHdvcms6
OlNvY2tldEFkZHJlc3MocHJlcGFyZVNvY2tldEFkZHJlc3MobG9jYWxBZGRyZXNzLCBtX2Rpc2Fi
bGVOb25Mb2NhbGhvc3RDb25uZWN0aW9ucykpLCBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzKHBy
ZXBhcmVTb2NrZXRBZGRyZXNzKHJlbW90ZUFkZHJlc3MsIG1fZGlzYWJsZU5vbkxvY2FsaG9zdENv
bm5lY3Rpb25zKSksIHVzZXJBZ2VudCwgb3B0aW9ucy5vcHRzLCAgaXNSZWxheURpc2FibGVkKSwg
MCk7CisgICAgICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6TmV0d29ya1JUQ1Byb3Zp
ZGVyOjpDcmVhdGVDbGllbnRUQ1BTb2NrZXQoc29ja2V0LT5pZGVudGlmaWVyKCksIFJUQ05ldHdv
cms6OlNvY2tldEFkZHJlc3MocHJlcGFyZVNvY2tldEFkZHJlc3MobG9jYWxBZGRyZXNzLCBtX2Rp
c2FibGVOb25Mb2NhbGhvc3RDb25uZWN0aW9ucykpLCBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNz
KHByZXBhcmVTb2NrZXRBZGRyZXNzKHJlbW90ZUFkZHJlc3MsIG1fZGlzYWJsZU5vbkxvY2FsaG9z
dENvbm5lY3Rpb25zKSksIHVzZXJBZ2VudCwgb3B0aW9ucy5vcHRzLCBwYWdlSWRlbnRpZmllciwg
aXNSZWxheURpc2FibGVkKSwgMCk7CiAgICAgZWxzZSB7CiAgICAgICAgIGNhbGxPbk1haW5SdW5M
b29wKFtdIHsKICAgICAgICAgICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdv
cmtQcm9jZXNzQ29ubmVjdGlvbigpOwogICAgICAgICB9KTsKLSAgICAgICAgbV9wZW5kaW5nTWVz
c2FnZVRhc2tzLmFwcGVuZChbaWRlbnRpZmllciA9IHNvY2tldC0+aWRlbnRpZmllcigpLCBsb2Nh
bEFkZHJlc3MgPSBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzKHByZXBhcmVTb2NrZXRBZGRyZXNz
KGxvY2FsQWRkcmVzcywgbV9kaXNhYmxlTm9uTG9jYWxob3N0Q29ubmVjdGlvbnMpKSwgcmVtb3Rl
QWRkcmVzcyA9IFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MocHJlcGFyZVNvY2tldEFkZHJlc3Mo
cmVtb3RlQWRkcmVzcywgbV9kaXNhYmxlTm9uTG9jYWxob3N0Q29ubmVjdGlvbnMpKSwgdXNlckFn
ZW50LCBvcHRzID0gb3B0aW9ucy5vcHRzLCBpc1JlbGF5RGlzYWJsZWRdKGF1dG8mIGNvbm5lY3Rp
b24pIHsKLSAgICAgICAgICAgIGNvbm5lY3Rpb24uc2VuZChNZXNzYWdlczo6TmV0d29ya1JUQ1By
b3ZpZGVyOjpDcmVhdGVDbGllbnRUQ1BTb2NrZXQoaWRlbnRpZmllciwgbG9jYWxBZGRyZXNzLCBy
ZW1vdGVBZGRyZXNzLCB1c2VyQWdlbnQsIG9wdHMsIGlzUmVsYXlEaXNhYmxlZCksIDApOworICAg
ICAgICBtX3BlbmRpbmdNZXNzYWdlVGFza3MuYXBwZW5kKFtpZGVudGlmaWVyID0gc29ja2V0LT5p
ZGVudGlmaWVyKCksIGxvY2FsQWRkcmVzcyA9IFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MocHJl
cGFyZVNvY2tldEFkZHJlc3MobG9jYWxBZGRyZXNzLCBtX2Rpc2FibGVOb25Mb2NhbGhvc3RDb25u
ZWN0aW9ucykpLCByZW1vdGVBZGRyZXNzID0gUlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyhwcmVw
YXJlU29ja2V0QWRkcmVzcyhyZW1vdGVBZGRyZXNzLCBtX2Rpc2FibGVOb25Mb2NhbGhvc3RDb25u
ZWN0aW9ucykpLCB1c2VyQWdlbnQsIG9wdHMgPSBvcHRpb25zLm9wdHMsIHBhZ2VJZGVudGlmaWVy
LCBpc1JlbGF5RGlzYWJsZWRdKGF1dG8mIGNvbm5lY3Rpb24pIHsKKyAgICAgICAgICAgIGNvbm5l
Y3Rpb24uc2VuZChNZXNzYWdlczo6TmV0d29ya1JUQ1Byb3ZpZGVyOjpDcmVhdGVDbGllbnRUQ1BT
b2NrZXQoaWRlbnRpZmllciwgbG9jYWxBZGRyZXNzLCByZW1vdGVBZGRyZXNzLCB1c2VyQWdlbnQs
IG9wdHMsIHBhZ2VJZGVudGlmaWVyLCBpc1JlbGF5RGlzYWJsZWQpLCAwKTsKICAgICAgICAgfSk7
CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93
ZWJydGMvTGliV2ViUlRDU29ja2V0RmFjdG9yeS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1NvY2tldEZhY3RvcnkuaAppbmRleCA3ZDA4MTE3NGZi
ZmExMDc5YWE5MjVhMTA4MTcwMmY0MGI1NWNjMjZiLi5iZDE5OWNhNzExZGIxMjZiMTdjNGJhYWRk
MDg0NTg2ZDkxYWVhNWIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0
d29yay93ZWJydGMvTGliV2ViUlRDU29ja2V0RmFjdG9yeS5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXRGYWN0b3J5LmgKQEAgLTI5
LDYgKzI5LDcgQEAKIAogI2luY2x1ZGUgIkxpYldlYlJUQ1Jlc29sdmVyLmgiCiAjaW5jbHVkZSAi
TGliV2ViUlRDU29ja2V0LmgiCisjaW5jbHVkZSAiV2ViUGFnZVByb3h5SWRlbnRpZmllci5oIgog
I2luY2x1ZGUgPFdlYkNvcmUvTGliV2ViUlRDTWFjcm9zLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9M
aWJXZWJSVENTb2NrZXRJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8d2VicnRjL3J0Y19iYXNlL25l
dF9oZWxwZXJzLmg+CkBAIC01MSw5ICs1Miw5IEBAIHB1YmxpYzoKICAgICBMaWJXZWJSVENTb2Nr
ZXQqIHNvY2tldChXZWJDb3JlOjpMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyIGlkZW50aWZpZXIp
IHsgcmV0dXJuIG1fc29ja2V0cy5nZXQoaWRlbnRpZmllcik7IH0KIAogICAgIHZvaWQgZm9yU29j
a2V0SW5Hcm91cChjb25zdCB2b2lkKiBzb2NrZXRHcm91cCwgY29uc3QgRnVuY3Rpb248dm9pZChM
aWJXZWJSVENTb2NrZXQmKT4mKTsKLSAgICBydGM6OkFzeW5jUGFja2V0U29ja2V0KiBjcmVhdGVV
ZHBTb2NrZXQoY29uc3Qgdm9pZCogc29ja2V0R3JvdXAsIGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVz
cyYsIHVpbnQxNl90IG1pblBvcnQsIHVpbnQxNl90IG1heFBvcnQsIGJvb2wgaXNGaXJzdFBhcnR5
LCBib29sIGlzUmVsYXlEaXNhYmxlZCwgY29uc3QgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4m
KTsKKyAgICBydGM6OkFzeW5jUGFja2V0U29ja2V0KiBjcmVhdGVVZHBTb2NrZXQoY29uc3Qgdm9p
ZCogc29ja2V0R3JvdXAsIGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYsIHVpbnQxNl90IG1pblBv
cnQsIHVpbnQxNl90IG1heFBvcnQsIFdlYlBhZ2VQcm94eUlkZW50aWZpZXIsIGJvb2wgaXNGaXJz
dFBhcnR5LCBib29sIGlzUmVsYXlEaXNhYmxlZCwgY29uc3QgV2ViQ29yZTo6UmVnaXN0cmFibGVE
b21haW4mKTsKICAgICBydGM6OkFzeW5jUGFja2V0U29ja2V0KiBjcmVhdGVTZXJ2ZXJUY3BTb2Nr
ZXQoY29uc3Qgdm9pZCogc29ja2V0R3JvdXAsIGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYsIHVp
bnQxNl90IG1pblBvcnQsIHVpbnQxNl90IG1heFBvcnQsIGludCBvcHRpb25zKTsKLSAgICBydGM6
OkFzeW5jUGFja2V0U29ja2V0KiBjcmVhdGVDbGllbnRUY3BTb2NrZXQoY29uc3Qgdm9pZCogc29j
a2V0R3JvdXAsIGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYgbG9jYWxBZGRyZXNzLCBjb25zdCBy
dGM6OlNvY2tldEFkZHJlc3MmIHJlbW90ZUFkZHJlc3MsIFN0cmluZyYmIHVzZXJBZ2VudCwgY29u
c3QgcnRjOjpQYWNrZXRTb2NrZXRUY3BPcHRpb25zJiwgYm9vbCBpc1JlbGF5RGlzYWJsZWQpOwor
ICAgIHJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQqIGNyZWF0ZUNsaWVudFRjcFNvY2tldChjb25zdCB2
b2lkKiBzb2NrZXRHcm91cCwgY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiBsb2NhbEFkZHJlc3Ms
IGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYgcmVtb3RlQWRkcmVzcywgU3RyaW5nJiYgdXNlckFn
ZW50LCBjb25zdCBydGM6OlBhY2tldFNvY2tldFRjcE9wdGlvbnMmLCBXZWJQYWdlUHJveHlJZGVu
dGlmaWVyLCBib29sIGlzUmVsYXlEaXNhYmxlZCk7CiAgICAgcnRjOjpBc3luY1BhY2tldFNvY2tl
dCogY3JlYXRlTmV3Q29ubmVjdGlvblNvY2tldChMaWJXZWJSVENTb2NrZXQmLCBXZWJDb3JlOjpM
aWJXZWJSVENTb2NrZXRJZGVudGlmaWVyIG5ld0Nvbm5lY3Rpb25Tb2NrZXRJZGVudGlmaWVyLCBj
b25zdCBydGM6OlNvY2tldEFkZHJlc3MmKTsKIAogICAgIExpYldlYlJUQ1Jlc29sdmVyKiByZXNv
bHZlcihMaWJXZWJSVENSZXNvbHZlcklkZW50aWZpZXIgaWRlbnRpZmllcikgeyByZXR1cm4gbV9y
ZXNvbHZlcnMuZ2V0KGlkZW50aWZpZXIpOyB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>434776</attachid>
            <date>2021-08-02 11:21:05 -0700</date>
            <delta_ts>2021-08-02 11:41:08 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-228649-20210802202103.patch</filename>
            <type>text/plain</type>
            <size>41249</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgwNDgxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGFiYmVhZTQ0YTk1NzJhYzFh
NjkzOThiMTJkZWIxNjRhMzE5N2FhZjcuLjI5ZmNjNDU2YWM1MjhmMTIxY2VkNTBiMGJjMGY3OWQ2
N2Q2ZDVjODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTAgQEAKKzIwMjEtMDgtMDIgIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEF0dHJpYnV0ZSBudyBjb25uZWN0
aW9ucyB0byB0aGUgcGFnZSBidW5kbGUgaWRlbnRpZmllcgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI4NjQ5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
RXJpYyBDYXJsc29uLgorCisgICAgICAgIFNlbmQgcGFnZSBpZGVudGlmaWVyIGZyb20gV2ViUHJv
Y2VzcyB0byBOZXR3b3JrUHJvY2VzcyB3aGVuIGNyZWF0aW5nIGEgV2ViUlRDIHNvY2tldC4KKyAg
ICAgICAgVXNlIHBhZ2UgaWRlbnRpZmllciB0byBnZXQgdGhlIGF0dHJpYnV0ZWQgYnVuZGxlIGlk
ZW50aWZpZXIuCisgICAgICAgIEZvciB0aGF0IHB1cnBvc2UsIHdlIG5lZWQgdG8gaG9wIHRvIG1h
aW4gdGhyZWFkIHRvIGdldCBpdCwgdGhlbiBnbyBiYWNrIHRvIHJ0YyB0aHJlYWQgdG8gY3JlYXRl
IGl0LgorICAgICAgICBXZSBkbyBzbyBieSB1c2luZyBjYWxsT25NYWluUnVuTG9vcEFuZFdhaXQg
d2hlbiBOZXR3b3JrUlRDUHJvdmlkZXIgZG9lcyBub3QgaGF2ZSB0aGUgaW5mb3JtYXRpb24gZm9y
IHRoZSBwcm92aWRlZCBwYWdlIGlkZW50aWZpZXIuCisgICAgICAgIFdlIHRoZW4gbWFrZSB1c2Ug
b2YgbndfcGFyYW1ldGVyc19zZXRfc291cmNlX2FwcGxpY2F0aW9uX2J5X2J1bmRsZV9pZCB0byBz
ZXQgdGhlIGJ1bmRsZSBpZGVudGlmaWVyIG9uIFRDUCBhbmQgVURQIGNvbm5lY3Rpb25zLgorCisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uY3BwOgorICAgICAgICAoV2Vi
S2l0OjpOZXR3b3JrU2Vzc2lvbjo6YXR0cmlidXRlZEJ1bmRsZUlkZW50aWZpZXJGcm9tUGFnZUlk
ZW50aWZpZXIgY29uc3QpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9u
Lmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5t
bToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Nlc3Npb25Db2NvYTo6YWRkV2ViUGFnZU5ldHdv
cmtQYXJhbWV0ZXJzKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Nlc3Npb25Db2NvYTo6cmVt
b3ZlV2ViUGFnZU5ldHdvcmtQYXJhbWV0ZXJzKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy93
ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1JU
Q1Byb3ZpZGVyOjphdHRyaWJ1dGVkQnVuZGxlSWRlbnRpZmllckZyb21QYWdlSWRlbnRpZmllcik6
CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSVENQcm92aWRlcjo6Y3JlYXRlVURQU29ja2V0KToK
KyAgICAgICAgKFdlYktpdDo6TmV0d29ya1JUQ1Byb3ZpZGVyOjpjcmVhdGVDbGllbnRUQ1BTb2Nr
ZXQpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIu
aDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVyLm1l
c3NhZ2VzLmluOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDVENQ
U29ja2V0Q29jb2EuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JU
Q1RDUFNvY2tldENvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUlRDVENQU29ja2V0
Q29jb2E6OmNyZWF0ZUNsaWVudFRDUFNvY2tldCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtS
VENUQ1BTb2NrZXRDb2NvYTo6TmV0d29ya1JUQ1RDUFNvY2tldENvY29hKToKKyAgICAgICAgKiBO
ZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1VEUFNvY2tldENvY29hLmg6CisgICAgICAg
ICogTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENVRFBTb2NrZXRDb2NvYS5tbToKKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya1JUQ1VEUFNvY2tldENvY29hQ29ubmVjdGlvbnM6OmNyZWF0
ZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSVENVRFBTb2NrZXRDb2NvYTo6Y3JlYXRlVURQ
U29ja2V0KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1JUQ1VEUFNvY2tldENvY29hOjpOZXR3
b3JrUlRDVURQU29ja2V0Q29jb2EpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUlRDVURQU29j
a2V0Q29jb2FDb25uZWN0aW9uczo6TmV0d29ya1JUQ1VEUFNvY2tldENvY29hQ29ubmVjdGlvbnMp
OgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUlRDVURQU29ja2V0Q29jb2FDb25uZWN0aW9uczo6
Y29uZmlndXJlUGFyYW1ldGVycyk6CisgICAgICAgICogUGxhdGZvcm0vc3BpL0NvY29hL05XUGFy
YW1ldGVyc1NQSS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2Vi
UlRDUHJvdmlkZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpSVENTb2NrZXRGYWN0b3J5OjpSVENT
b2NrZXRGYWN0b3J5KToKKyAgICAgICAgKFdlYktpdDo6UlRDU29ja2V0RmFjdG9yeTo6Q3JlYXRl
VWRwU29ja2V0KToKKyAgICAgICAgKFdlYktpdDo6UlRDU29ja2V0RmFjdG9yeTo6Q3JlYXRlQ2xp
ZW50VGNwU29ja2V0KToKKyAgICAgICAgKFdlYktpdDo6TGliV2ViUlRDUHJvdmlkZXI6OmNyZWF0
ZVNvY2tldEZhY3RvcnkpOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGli
V2ViUlRDU29ja2V0RmFjdG9yeS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkxpYldlYlJUQ1NvY2tl
dEZhY3Rvcnk6OmNyZWF0ZVVkcFNvY2tldCk6CisgICAgICAgIChXZWJLaXQ6OkxpYldlYlJUQ1Nv
Y2tldEZhY3Rvcnk6OmNyZWF0ZUNsaWVudFRjcFNvY2tldCk6CisgICAgICAgICogV2ViUHJvY2Vz
cy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXRGYWN0b3J5Lmg6CisKIDIwMjEtMDgtMDEg
IFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIEludHJvZHVjZSBh
biBleHBlcmltZW50YWwgZmVhdHVyZSB0byB0b2dnbGUgV2ViUlRDIHNvY2tldCBwcm94eWluZwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5j
cHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNwcAppbmRl
eCA1ZDliOWJmMjI2NDMxMjcwZmYwNjE2NjA4ZGZiMTU1ZThjMTZlM2JjLi5hYzhmNmZiZDA1Mzk4
OTM4ODU2ODFmMTI4MzZiYjExMjRmZWEzYmM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNwcApAQCAtNDA2LDQgKzQwNiw5IEBAIE5ldHdvcmtM
b2FkU2NoZWR1bGVyJiBOZXR3b3JrU2Vzc2lvbjo6bmV0d29ya0xvYWRTY2hlZHVsZXIoKQogICAg
IHJldHVybiAqbV9uZXR3b3JrTG9hZFNjaGVkdWxlcjsKIH0KIAorY29uc3QgU3RyaW5nJiBOZXR3
b3JrU2Vzc2lvbjo6YXR0cmlidXRlZEJ1bmRsZUlkZW50aWZpZXJGcm9tUGFnZUlkZW50aWZpZXIo
V2ViUGFnZVByb3h5SWRlbnRpZmllciBpZGVudGlmaWVyKSBjb25zdAoreworICAgIHJldHVybiBt
X2F0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVyRnJvbVBhZ2VJZGVudGlmaWVycy5nZXQoaWRlbnRp
Zmllcik7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5oIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5oCmluZGV4IDBkY2ZiMjdjYzJmYTg1ZDI0ZmIzYjUy
MGE3NTE1OTFlZTMwMTIwZTcuLjRmNGJhZGVmZmM0ZjQzY2I2YjRmZDNlZDNjNGZmMDY3NTUzNWQz
NTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Np
b24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmgK
QEAgLTE3Nyw2ICsxNzcsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZVdlYlBh
Z2VOZXR3b3JrUGFyYW1ldGVycyhXZWJQYWdlUHJveHlJZGVudGlmaWVyKSB7IH0KICAgICB2aXJ0
dWFsIHNpemVfdCBjb3VudE5vbkRlZmF1bHRTZXNzaW9uU2V0cygpIGNvbnN0IHsgcmV0dXJuIDA7
IH0KIAorICAgIGNvbnN0IFN0cmluZyYgYXR0cmlidXRlZEJ1bmRsZUlkZW50aWZpZXJGcm9tUGFn
ZUlkZW50aWZpZXIoV2ViUGFnZVByb3h5SWRlbnRpZmllcikgY29uc3Q7CisKIHByb3RlY3RlZDoK
ICAgICBOZXR3b3JrU2Vzc2lvbihOZXR3b3JrUHJvY2VzcyYsIGNvbnN0IE5ldHdvcmtTZXNzaW9u
Q3JlYXRpb25QYXJhbWV0ZXJzJik7CiAKQEAgLTIyOCw2ICsyMzAsNyBAQCBwcm90ZWN0ZWQ6CiAj
ZW5kaWYKIAogICAgIEhhc2hTZXQ8c3RkOjp1bmlxdWVfcHRyPFByaXZhdGVDbGlja01lYXN1cmVt
ZW50TmV0d29ya0xvYWRlcj4+IG1fcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnROZXR3b3JrTG9hZGVy
czsKKyAgICBIYXNoTWFwPFdlYlBhZ2VQcm94eUlkZW50aWZpZXIsIFN0cmluZz4gbV9hdHRyaWJ1
dGVkQnVuZGxlSWRlbnRpZmllckZyb21QYWdlSWRlbnRpZmllcnM7CiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29j
b2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
Y29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbQppbmRleCBjODM3ZWU1YWVlZTg2ZjY0OGEzYzc2
NjM4N2UyNTg4ZTQ5ZWFmODIyLi5hNDM4MWQwZjE5YjAyNWFlNmMwZGFlMWZlMmI5ZGQ3NmQxMjA2
YTIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdv
cmtTZXNzaW9uQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2Nv
YS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tCkBAIC0xNzYwLDExICsxNzYwLDE0IEBAIHZvaWQgTmV0
d29ya1Nlc3Npb25Db2NvYTo6YWRkV2ViUGFnZU5ldHdvcmtQYXJhbWV0ZXJzKFdlYlBhZ2VQcm94
eUlkZW50aWZpZXIgcGFnCiAjZW5kaWYKICAgICBpbml0aWFsaXplTlNVUkxTZXNzaW9uc0luU2V0
KGFkZFJlc3VsdDIuaXRlcmF0b3ItPnZhbHVlLmdldCgpLCBjb25maWd1cmF0aW9uLmdldCgpKTsK
ICAgICBhZGRSZXN1bHQxLml0ZXJhdG9yLT52YWx1ZSA9IG1ha2VXZWFrUHRyKGFkZFJlc3VsdDIu
aXRlcmF0b3ItPnZhbHVlLmdldCgpKTsKKworICAgIG1fYXR0cmlidXRlZEJ1bmRsZUlkZW50aWZp
ZXJGcm9tUGFnZUlkZW50aWZpZXJzLmFkZChwYWdlSUQsIHBhcmFtZXRlcnMuYXR0cmlidXRlZEJ1
bmRsZUlkZW50aWZpZXIoKSk7CiB9CiAKIHZvaWQgTmV0d29ya1Nlc3Npb25Db2NvYTo6cmVtb3Zl
V2ViUGFnZU5ldHdvcmtQYXJhbWV0ZXJzKFdlYlBhZ2VQcm94eUlkZW50aWZpZXIgcGFnZUlEKQog
ewogICAgIG1fcGVyUGFnZVNlc3Npb25TZXRzLnJlbW92ZShwYWdlSUQpOworICAgIG1fYXR0cmli
dXRlZEJ1bmRsZUlkZW50aWZpZXJGcm9tUGFnZUlkZW50aWZpZXJzLnJlbW92ZShwYWdlSUQpOwog
fQogCiBzaXplX3QgTmV0d29ya1Nlc3Npb25Db2NvYTo6Y291bnROb25EZWZhdWx0U2Vzc2lvblNl
dHMoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJy
dGMvTmV0d29ya1JUQ1Byb3ZpZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
d2VicnRjL05ldHdvcmtSVENQcm92aWRlci5jcHAKaW5kZXggY2FiNTgyMWZhZWQ2YTcxZjhhZTBl
ZmM0MzVlZjdmNjJkNmVlYTBiMS4uN2E4Mzc3Mjk3ZjQ1N2E4Yjg2N2FlZDJlYzZhM2JhMjA5YmYz
ZDU5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0
d29ya1JUQ1Byb3ZpZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dl
YnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIuY3BwCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSAi
TmV0d29ya1Byb2Nlc3MuaCIKICNpbmNsdWRlICJOZXR3b3JrUlRDUHJvdmlkZXJNZXNzYWdlcy5o
IgogI2luY2x1ZGUgIk5ldHdvcmtSVENSZXNvbHZlci5oIgorI2luY2x1ZGUgIk5ldHdvcmtTZXNz
aW9uLmgiCiAjaW5jbHVkZSAiUlRDUGFja2V0T3B0aW9ucy5oIgogI2luY2x1ZGUgIldlYlJUQ1Jl
c29sdmVyTWVzc2FnZXMuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0xpYldlYlJUQ01hY3Jvcy5oPgpA
QCAtMTIxLDYgKzEyMiw5IEBAIHZvaWQgTmV0d29ya1JUQ1Byb3ZpZGVyOjpjbG9zZSgpCiAKICAg
ICBjYWxsT25SVENOZXR3b3JrVGhyZWFkKFt0aGlzXSgpIHsKICAgICAgICAgbV9zb2NrZXRzLmNs
ZWFyKCk7CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgICAgIG1fYXR0cmlidXRlZEJ1bmRsZUlk
ZW50aWZpZXJzLmNsZWFyKCk7CisjZW5kaWYKICAgICB9KTsKIH0KIApAQCAtMTM1LDE4ICsxMzks
MzQgQEAgdm9pZCBOZXR3b3JrUlRDUHJvdmlkZXI6OmNyZWF0ZVNvY2tldChMaWJXZWJSVENTb2Nr
ZXRJZGVudGlmaWVyIGlkZW50aWZpZXIsIHN0ZDoKICAgICBhZGRTb2NrZXQoaWRlbnRpZmllciwg
bWFrZVVuaXF1ZTxMaWJXZWJSVENTb2NrZXRDbGllbnQ+KGlkZW50aWZpZXIsICp0aGlzLCBXVEZN
b3ZlKHNvY2tldCksIHR5cGUsIFdURk1vdmUoY29ubmVjdGlvbikpKTsKIH0KIAotdm9pZCBOZXR3
b3JrUlRDUHJvdmlkZXI6OmNyZWF0ZVVEUFNvY2tldChMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVy
IGlkZW50aWZpZXIsIGNvbnN0IFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MmIGFkZHJlc3MsIHVp
bnQxNl90IG1pblBvcnQsIHVpbnQxNl90IG1heFBvcnQsIGJvb2wgaXNGaXJzdFBhcnR5LCBib29s
IGlzUmVsYXlEaXNhYmxlZCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mJiBkb21haW4pCisj
aWYgUExBVEZPUk0oQ09DT0EpCitjb25zdCBTdHJpbmcmIE5ldHdvcmtSVENQcm92aWRlcjo6YXR0
cmlidXRlZEJ1bmRsZUlkZW50aWZpZXJGcm9tUGFnZUlkZW50aWZpZXIoV2ViUGFnZVByb3h5SWRl
bnRpZmllciBwYWdlSWRlbnRpZmllcikKK3sKKyAgICByZXR1cm4gbV9hdHRyaWJ1dGVkQnVuZGxl
SWRlbnRpZmllcnMuZW5zdXJlKHBhZ2VJZGVudGlmaWVyLCBbJl0oKSAtPiBTdHJpbmcgeworICAg
ICAgICBTdHJpbmcgdmFsdWU7CisgICAgICAgIGNhbGxPbk1haW5SdW5Mb29wQW5kV2FpdChbJl0g
eworICAgICAgICAgICAgYXV0byogc2Vzc2lvbiA9IG1fY29ubmVjdGlvbi0+bmV0d29ya1Nlc3Np
b24oKTsKKyAgICAgICAgICAgIGlmIChzZXNzaW9uKQorICAgICAgICAgICAgICAgIHZhbHVlID0g
c2Vzc2lvbi0+YXR0cmlidXRlZEJ1bmRsZUlkZW50aWZpZXJGcm9tUGFnZUlkZW50aWZpZXIocGFn
ZUlkZW50aWZpZXIpLmlzb2xhdGVkQ29weSgpOworICAgICAgICB9KTsKKyAgICAgICAgcmV0dXJu
IHZhbHVlOworICAgIH0pLml0ZXJhdG9yLT52YWx1ZTsKK30KKyNlbmRpZgorCit2b2lkIE5ldHdv
cmtSVENQcm92aWRlcjo6Y3JlYXRlVURQU29ja2V0KExpYldlYlJUQ1NvY2tldElkZW50aWZpZXIg
aWRlbnRpZmllciwgY29uc3QgUlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyYgYWRkcmVzcywgdWlu
dDE2X3QgbWluUG9ydCwgdWludDE2X3QgbWF4UG9ydCwgV2ViUGFnZVByb3h5SWRlbnRpZmllciBw
YWdlSWRlbnRpZmllciwgYm9vbCBpc0ZpcnN0UGFydHksIGJvb2wgaXNSZWxheURpc2FibGVkLCBX
ZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYmIGRvbWFpbikKIHsKKyAgICBBU1NFUlQobV9ydGNO
ZXR3b3JrVGhyZWFkLklzQ3VycmVudCgpKTsKKwogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIGlm
IChtX3BsYXRmb3JtVURQU29ja2V0c0VuYWJsZWQpIHsKLSAgICAgICAgaWYgKGF1dG8gc29ja2V0
ID0gTmV0d29ya1JUQ1VEUFNvY2tldENvY29hOjpjcmVhdGVVRFBTb2NrZXQoaWRlbnRpZmllciwg
KnRoaXMsIGFkZHJlc3MudmFsdWUsIG1pblBvcnQsIG1heFBvcnQsIG1faXBjQ29ubmVjdGlvbi5j
b3B5UmVmKCksIGlzRmlyc3RQYXJ0eSwgaXNSZWxheURpc2FibGVkLCBXVEZNb3ZlKGRvbWFpbikp
KSB7CisgICAgICAgIGlmIChhdXRvIHNvY2tldCA9IE5ldHdvcmtSVENVRFBTb2NrZXRDb2NvYTo6
Y3JlYXRlVURQU29ja2V0KGlkZW50aWZpZXIsICp0aGlzLCBhZGRyZXNzLnZhbHVlLCBtaW5Qb3J0
LCBtYXhQb3J0LCBtX2lwY0Nvbm5lY3Rpb24uY29weVJlZigpLCBTdHJpbmcoYXR0cmlidXRlZEJ1
bmRsZUlkZW50aWZpZXJGcm9tUGFnZUlkZW50aWZpZXIocGFnZUlkZW50aWZpZXIpKSwgaXNGaXJz
dFBhcnR5LCBpc1JlbGF5RGlzYWJsZWQsIFdURk1vdmUoZG9tYWluKSkpIHsKICAgICAgICAgICAg
IGFkZFNvY2tldChpZGVudGlmaWVyLCBXVEZNb3ZlKHNvY2tldCkpOwogICAgICAgICAgICAgcmV0
dXJuOwogICAgICAgICB9CiAgICAgfQogI2VuZGlmCiAKLSAgICBBU1NFUlQobV9ydGNOZXR3b3Jr
VGhyZWFkLklzQ3VycmVudCgpKTsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8cnRjOjpBc3luY1BhY2tl
dFNvY2tldD4gc29ja2V0KG1fcGFja2V0U29ja2V0RmFjdG9yeS0+Q3JlYXRlVWRwU29ja2V0KGFk
ZHJlc3MudmFsdWUsIG1pblBvcnQsIG1heFBvcnQpKTsKICAgICBjcmVhdGVTb2NrZXQoaWRlbnRp
ZmllciwgV1RGTW92ZShzb2NrZXQpLCBTb2NrZXQ6OlR5cGU6OlVEUCwgbV9pcGNDb25uZWN0aW9u
LmNvcHlSZWYoKSk7CiB9CkBAIC0xNzcsOSArMTk3LDIwIEBAIHJ0Yzo6UHJveHlJbmZvIE5ldHdv
cmtSVENQcm92aWRlcjo6cHJveHlJbmZvRnJvbVNlc3Npb24oY29uc3QgUlRDTmV0d29yazo6U29j
a2V0CiB9CiAjZW5kaWYKIAotdm9pZCBOZXR3b3JrUlRDUHJvdmlkZXI6OmNyZWF0ZUNsaWVudFRD
UFNvY2tldChMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IFJUQ05l
dHdvcms6OlNvY2tldEFkZHJlc3MmIGxvY2FsQWRkcmVzcywgY29uc3QgUlRDTmV0d29yazo6U29j
a2V0QWRkcmVzcyYgcmVtb3RlQWRkcmVzcywgU3RyaW5nJiYgdXNlckFnZW50LCBpbnQgb3B0aW9u
cywgYm9vbCBpc1JlbGF5RGlzYWJsZWQpCit2b2lkIE5ldHdvcmtSVENQcm92aWRlcjo6Y3JlYXRl
Q2xpZW50VENQU29ja2V0KExpYldlYlJUQ1NvY2tldElkZW50aWZpZXIgaWRlbnRpZmllciwgY29u
c3QgUlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyYgbG9jYWxBZGRyZXNzLCBjb25zdCBSVENOZXR3
b3JrOjpTb2NrZXRBZGRyZXNzJiByZW1vdGVBZGRyZXNzLCBTdHJpbmcmJiB1c2VyQWdlbnQsIGlu
dCBvcHRpb25zLCBXZWJQYWdlUHJveHlJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyLCBib29sIGlz
UmVsYXlEaXNhYmxlZCkKIHsKLSAgICBjYWxsT25NYWluUnVuTG9vcChbdGhpcywgcHJvdGVjdGVk
VGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBpZGVudGlmaWVyLCBsb2NhbEFkZHJlc3MsIHJlbW90ZUFk
ZHJlc3MsIHVzZXJBZ2VudCA9IFdURk1vdmUodXNlckFnZW50KS5pc29sYXRlZENvcHkoKSwgb3B0
aW9ucywgaXNSZWxheURpc2FibGVkXSgpIG11dGFibGUgeworICAgIEFTU0VSVChtX3J0Y05ldHdv
cmtUaHJlYWQuSXNDdXJyZW50KCkpOworCisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgaWYgKG1f
cGxhdGZvcm1UQ1BTb2NrZXRzRW5hYmxlZCkgeworICAgICAgICBpZiAoYXV0byBzb2NrZXQgPSBO
ZXR3b3JrUlRDVENQU29ja2V0Q29jb2E6OmNyZWF0ZUNsaWVudFRDUFNvY2tldChpZGVudGlmaWVy
LCAqdGhpcywgcmVtb3RlQWRkcmVzcy52YWx1ZSwgb3B0aW9ucywgYXR0cmlidXRlZEJ1bmRsZUlk
ZW50aWZpZXJGcm9tUGFnZUlkZW50aWZpZXIocGFnZUlkZW50aWZpZXIpLCBpc1JlbGF5RGlzYWJs
ZWQsIG1faXBjQ29ubmVjdGlvbi5jb3B5UmVmKCkpKSB7CisgICAgICAgICAgICBhZGRTb2NrZXQo
aWRlbnRpZmllciwgV1RGTW92ZShzb2NrZXQpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgfQorICAgIH0KKyNlbmRpZgorCisgICAgY2FsbE9uTWFpblJ1bkxvb3AoW3RoaXMsIHByb3Rl
Y3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgaWRlbnRpZmllciwgbG9jYWxBZGRyZXNzLCByZW1v
dGVBZGRyZXNzLCB1c2VyQWdlbnQgPSBXVEZNb3ZlKHVzZXJBZ2VudCkuaXNvbGF0ZWRDb3B5KCks
IG9wdGlvbnNdKCkgbXV0YWJsZSB7CiAgICAgICAgIGlmICghbV9jb25uZWN0aW9uKQogICAgICAg
ICAgICAgcmV0dXJuOwogCkBAIC0xODgsMTUgKzIxOSw4IEBAIHZvaWQgTmV0d29ya1JUQ1Byb3Zp
ZGVyOjpjcmVhdGVDbGllbnRUQ1BTb2NrZXQoTGliV2ViUlRDU29ja2V0SWRlbnRpZmllciBpZGVu
dGlmCiAgICAgICAgICAgICBtX2Nvbm5lY3Rpb24tPmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2Vz
OjpMaWJXZWJSVENOZXR3b3JrOjpTaWduYWxDbG9zZShpZGVudGlmaWVyLCAxKSwgMCk7CiAgICAg
ICAgICAgICByZXR1cm47CiAgICAgICAgIH0KLSAgICAgICAgY2FsbE9uUlRDTmV0d29ya1RocmVh
ZChbdGhpcywgaWRlbnRpZmllciwgbG9jYWxBZGRyZXNzID0gUlRDTmV0d29yazo6aXNvbGF0ZWRD
b3B5KGxvY2FsQWRkcmVzcy52YWx1ZSksIHJlbW90ZUFkZHJlc3MgPSBSVENOZXR3b3JrOjppc29s
YXRlZENvcHkocmVtb3RlQWRkcmVzcy52YWx1ZSksIHByb3h5SW5mbyA9IHByb3h5SW5mb0Zyb21T
ZXNzaW9uKHJlbW90ZUFkZHJlc3MsICpzZXNzaW9uKSwgdXNlckFnZW50ID0gV1RGTW92ZSh1c2Vy
QWdlbnQpLmlzb2xhdGVkQ29weSgpLCBvcHRpb25zLCBpc1JlbGF5RGlzYWJsZWRdKCkgbXV0YWJs
ZSB7Ci0jaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgICAgICAgICBpZiAobV9wbGF0Zm9ybVRDUFNv
Y2tldHNFbmFibGVkKSB7Ci0gICAgICAgICAgICAgICAgaWYgKGF1dG8gc29ja2V0ID0gTmV0d29y
a1JUQ1RDUFNvY2tldENvY29hOjpjcmVhdGVDbGllbnRUQ1BTb2NrZXQoaWRlbnRpZmllciwgKnRo
aXMsIHJlbW90ZUFkZHJlc3MsIG9wdGlvbnMsIGlzUmVsYXlEaXNhYmxlZCwgbV9pcGNDb25uZWN0
aW9uLmNvcHlSZWYoKSkpIHsKLSAgICAgICAgICAgICAgICAgICAgYWRkU29ja2V0KGlkZW50aWZp
ZXIsIFdURk1vdmUoc29ja2V0KSk7Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAg
ICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0jZW5kaWYKKyAgICAgICAgY2FsbE9uUlRDTmV0
d29ya1RocmVhZChbdGhpcywgaWRlbnRpZmllciwgbG9jYWxBZGRyZXNzID0gUlRDTmV0d29yazo6
aXNvbGF0ZWRDb3B5KGxvY2FsQWRkcmVzcy52YWx1ZSksIHJlbW90ZUFkZHJlc3MgPSBSVENOZXR3
b3JrOjppc29sYXRlZENvcHkocmVtb3RlQWRkcmVzcy52YWx1ZSksIHByb3h5SW5mbyA9IHByb3h5
SW5mb0Zyb21TZXNzaW9uKHJlbW90ZUFkZHJlc3MsICpzZXNzaW9uKSwgdXNlckFnZW50ID0gV1RG
TW92ZSh1c2VyQWdlbnQpLmlzb2xhdGVkQ29weSgpLCBvcHRpb25zXSgpIG11dGFibGUgeworCiAg
ICAgICAgICAgICBydGM6OlBhY2tldFNvY2tldFRjcE9wdGlvbnMgdGNwT3B0aW9uczsKICAgICAg
ICAgICAgIHRjcE9wdGlvbnMub3B0cyA9IG9wdGlvbnM7CiAgICAgICAgICAgICBzdGQ6OnVuaXF1
ZV9wdHI8cnRjOjpBc3luY1BhY2tldFNvY2tldD4gc29ja2V0KG1fcGFja2V0U29ja2V0RmFjdG9y
eS0+Q3JlYXRlQ2xpZW50VGNwU29ja2V0KGxvY2FsQWRkcmVzcywgcmVtb3RlQWRkcmVzcywgcHJv
eHlJbmZvLCB1c2VyQWdlbnQudXRmOCgpLmRhdGEoKSwgdGNwT3B0aW9ucykpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVy
LmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlk
ZXIuaAppbmRleCBjOWNjZWQ2MmZjNjI1OWY1M2FmMjQ3NWUwYTM0YzAwMzE5YTM4OTVhLi4wNGI1
YzVhYmFkNjM3MWQ2NTZhZTNkZTRkNGU1ZjQxZmFiNzNmNzViIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIuaAorKysgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIuaApA
QCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkxpYldlYlJUQ1Jlc29sdmVySWRlbnRpZmllci5o
IgogI2luY2x1ZGUgIk5ldHdvcmtSVENNb25pdG9yLmgiCiAjaW5jbHVkZSAiUlRDTmV0d29yay5o
IgorI2luY2x1ZGUgIldlYlBhZ2VQcm94eUlkZW50aWZpZXIuaCIKICNpbmNsdWRlIDxXZWJDb3Jl
L0xpYldlYlJUQ01hY3Jvcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTGliV2ViUlRDU29ja2V0SWRl
bnRpZmllci5oPgogI2luY2x1ZGUgPHdlYnJ0Yy9wMnAvYmFzZS9iYXNpY19wYWNrZXRfc29ja2V0
X2ZhY3RvcnkuaD4KQEAgLTExMyw4ICsxMTQsOCBAQCBwcml2YXRlOgogICAgIGV4cGxpY2l0IE5l
dHdvcmtSVENQcm92aWRlcihOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYpOwogICAgIHZv
aWQgc3RhcnRMaXN0ZW5pbmdGb3JJUEMoKTsKIAotICAgIHZvaWQgY3JlYXRlVURQU29ja2V0KFdl
YkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50aWZpZXIsIGNvbnN0IFJUQ05ldHdvcms6OlNvY2tl
dEFkZHJlc3MmLCB1aW50MTZfdCwgdWludDE2X3QsIGJvb2wgaXNGaXJzdFBhcnR5LCBib29sIGlz
UmVsYXlEaXNhYmxlZCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mJik7Ci0gICAgdm9pZCBj
cmVhdGVDbGllbnRUQ1BTb2NrZXQoV2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmllciwg
Y29uc3QgUlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyYsIGNvbnN0IFJUQ05ldHdvcms6OlNvY2tl
dEFkZHJlc3MmLCBTdHJpbmcmJiB1c2VyQWdlbnQsIGludCwgYm9vbCBpc1JlbGF5RGlzYWJsZWQp
OworICAgIHZvaWQgY3JlYXRlVURQU29ja2V0KFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50
aWZpZXIsIGNvbnN0IFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MmLCB1aW50MTZfdCwgdWludDE2
X3QsIFdlYlBhZ2VQcm94eUlkZW50aWZpZXIsIGJvb2wgaXNGaXJzdFBhcnR5LCBib29sIGlzUmVs
YXlEaXNhYmxlZCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mJik7CisgICAgdm9pZCBjcmVh
dGVDbGllbnRUQ1BTb2NrZXQoV2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmllciwgY29u
c3QgUlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyYsIGNvbnN0IFJUQ05ldHdvcms6OlNvY2tldEFk
ZHJlc3MmLCBTdHJpbmcmJiB1c2VyQWdlbnQsIGludCwgV2ViUGFnZVByb3h5SWRlbnRpZmllciwg
Ym9vbCBpc1JlbGF5RGlzYWJsZWQpOwogICAgIHZvaWQgY3JlYXRlU2VydmVyVENQU29ja2V0KFdl
YkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50aWZpZXIsIGNvbnN0IFJUQ05ldHdvcms6OlNvY2tl
dEFkZHJlc3MmLCB1aW50MTZfdCBtaW5Qb3J0LCB1aW50MTZfdCBtYXhQb3J0LCBpbnQpOwogICAg
IHZvaWQgd3JhcE5ld1RDUENvbm5lY3Rpb24oV2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRp
ZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyIG5ld0Nv
bm5lY3Rpb25Tb2NrZXRJZGVudGlmaWVyKTsKICAgICB2b2lkIHNlbmRUb1NvY2tldChXZWJDb3Jl
OjpMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyLCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmLCBS
VENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzJiYsIFJUQ1BhY2tldE9wdGlvbnMmJik7CkBAIC0xMzYs
NiArMTM3LDEwIEBAIHByaXZhdGU6CiAKICAgICBzdGF0aWMgcnRjOjpQcm94eUluZm8gcHJveHlJ
bmZvRnJvbVNlc3Npb24oY29uc3QgUlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyYsIE5ldHdvcmtT
ZXNzaW9uJik7CiAKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBjb25zdCBTdHJpbmcmIGF0dHJp
YnV0ZWRCdW5kbGVJZGVudGlmaWVyRnJvbVBhZ2VJZGVudGlmaWVyKFdlYlBhZ2VQcm94eUlkZW50
aWZpZXIpOworI2VuZGlmCisKICAgICBIYXNoTWFwPExpYldlYlJUQ1Jlc29sdmVySWRlbnRpZmll
ciwgc3RkOjp1bmlxdWVfcHRyPE5ldHdvcmtSVENSZXNvbHZlcj4+IG1fcmVzb2x2ZXJzOwogICAg
IEhhc2hNYXA8V2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmllciwgc3RkOjp1bmlxdWVf
cHRyPFNvY2tldD4+IG1fc29ja2V0czsKICAgICBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cyogbV9jb25uZWN0aW9uOwpAQCAtMTUzLDYgKzE1OCw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBt
X3BsYXRmb3JtVURQU29ja2V0c0VuYWJsZWQgeyBmYWxzZSB9OwogCiAjaWYgUExBVEZPUk0oQ09D
T0EpCisgICAgSGFzaE1hcDxXZWJQYWdlUHJveHlJZGVudGlmaWVyLCBTdHJpbmc+IG1fYXR0cmli
dXRlZEJ1bmRsZUlkZW50aWZpZXJzOwogICAgIHN0ZDo6b3B0aW9uYWw8YXVkaXRfdG9rZW5fdD4g
bV9zb3VyY2VBcHBsaWNhdGlvbkF1ZGl0VG9rZW47CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVyLm1lc3Nh
Z2VzLmluIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1By
b3ZpZGVyLm1lc3NhZ2VzLmluCmluZGV4IDdmN2Q3OWVjNTE2YThjZWNhYzJiYmQ4OTg4MWVkMWJk
YTMyYmNkNDMuLmMyZDhiMjliZGZhN2JmMTMxYjkyYmNhOGZmYTgyNmI0ZWQ0OWYzM2UgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92
aWRlci5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0
Yy9OZXR3b3JrUlRDUHJvdmlkZXIubWVzc2FnZXMuaW4KQEAgLTIzLDkgKzIzLDkgQEAKICNpZiBV
U0UoTElCV0VCUlRDKQogCiBtZXNzYWdlcyAtPiBOZXR3b3JrUlRDUHJvdmlkZXIgewotICAgIENy
ZWF0ZVVEUFNvY2tldChXZWJDb3JlOjpMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyIGlkZW50aWZp
ZXIsIFdlYktpdDo6UlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyBsb2NhbEFkZHJlc3MsIHVpbnQx
Nl90IG1pblBvcnQsIHVpbnQxNl90IG1heFBvcnQsIGJvb2wgaXNGaXJzdFBhcnR5LCBib29sIGlz
UmVsYXlEaXNhYmxlZCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gZG9tYWluKQorICAgIENy
ZWF0ZVVEUFNvY2tldChXZWJDb3JlOjpMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyIGlkZW50aWZp
ZXIsIFdlYktpdDo6UlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyBsb2NhbEFkZHJlc3MsIHVpbnQx
Nl90IG1pblBvcnQsIHVpbnQxNl90IG1heFBvcnQsIFdlYktpdDo6V2ViUGFnZVByb3h5SWRlbnRp
ZmllciBwYWdlSWRlbnRpZmllciwgYm9vbCBpc0ZpcnN0UGFydHksIGJvb2wgaXNSZWxheURpc2Fi
bGVkLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiBkb21haW4pCiAgICAgQ3JlYXRlU2VydmVy
VENQU29ja2V0KFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50aWZpZXIgaWRlbnRpZmllciwg
V2ViS2l0OjpSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzIGxvY2FsQWRkcmVzcywgdWludDE2X3Qg
bWluUG9ydCwgdWludDE2X3QgbWF4UG9ydCwgaW50IG9wdGlvbnMpCi0gICAgQ3JlYXRlQ2xpZW50
VENQU29ja2V0KFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50aWZpZXIgaWRlbnRpZmllciwg
V2ViS2l0OjpSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzIGxvY2FsQWRkcmVzcywgV2ViS2l0OjpS
VENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzIHJlbW90ZUFkZHJlc3MsIFN0cmluZyB1c2VyQWdlbnQs
IGludCBvcHRpb25zLCBib29sIGlzUmVsYXlEaXNhYmxlZCkKKyAgICBDcmVhdGVDbGllbnRUQ1BT
b2NrZXQoV2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJL
aXQ6OlJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MgbG9jYWxBZGRyZXNzLCBXZWJLaXQ6OlJUQ05l
dHdvcms6OlNvY2tldEFkZHJlc3MgcmVtb3RlQWRkcmVzcywgU3RyaW5nIHVzZXJBZ2VudCwgaW50
IG9wdGlvbnMsIFdlYktpdDo6V2ViUGFnZVByb3h5SWRlbnRpZmllciBwYWdlSWRlbnRpZmllciwg
Ym9vbCBpc1JlbGF5RGlzYWJsZWQpCiAgICAgV3JhcE5ld1RDUENvbm5lY3Rpb24oV2ViQ29yZTo6
TGliV2ViUlRDU29ja2V0SWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpMaWJXZWJSVENT
b2NrZXRJZGVudGlmaWVyIG5ld0Nvbm5lY3Rpb25Tb2NrZXRJZGVudGlmaWVyKQogCiAgICAgdm9p
ZCBTZXRQbGF0Zm9ybVRDUFNvY2tldHNFbmFibGVkKGJvb2wgZW5hYmxlZCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENUQ1BTb2NrZXRD
b2NvYS5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1RD
UFNvY2tldENvY29hLmgKaW5kZXggZjQxMjVkM2NiMDhmZWNmOTI2MzYzMzg3YjljYTAwMzQzZDgy
ZGEyZS4uMmUyOTFlMTA1YjE5ZGIzNWNjZmIwMGYzN2NlZGY5NWNkMmQ5OTg4NiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1RDUFNvY2tl
dENvY29hLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29y
a1JUQ1RDUFNvY2tldENvY29hLmgKQEAgLTM5LDkgKzM5LDkgQEAgbmFtZXNwYWNlIFdlYktpdCB7
CiBjbGFzcyBOZXR3b3JrUlRDVENQU29ja2V0Q29jb2EgZmluYWwgOiBwdWJsaWMgTmV0d29ya1JU
Q1Byb3ZpZGVyOjpTb2NrZXQgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGlj
OgotICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8TmV0d29ya1JUQ1Byb3ZpZGVyOjpTb2NrZXQ+
IGNyZWF0ZUNsaWVudFRDUFNvY2tldChXZWJDb3JlOjpMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVy
LCBOZXR3b3JrUlRDUHJvdmlkZXImLCBjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmLCBpbnQgb3B0
aW9ucywgYm9vbCBpc1JlbGF5RGlzYWJsZWQsIFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYpOworICAg
IHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8TmV0d29ya1JUQ1Byb3ZpZGVyOjpTb2NrZXQ+IGNyZWF0
ZUNsaWVudFRDUFNvY2tldChXZWJDb3JlOjpMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyLCBOZXR3
b3JrUlRDUHJvdmlkZXImLCBjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmLCBpbnQgb3B0aW9ucywg
Y29uc3QgU3RyaW5nJiBhdHRyaWJ1dGVkQnVuZGxlSWRlbnRpZmllciwgYm9vbCBpc1JlbGF5RGlz
YWJsZWQsIFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYpOwogCi0gICAgTmV0d29ya1JUQ1RDUFNvY2tl
dENvY29hKFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50aWZpZXIsIE5ldHdvcmtSVENQcm92
aWRlciYsIGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYsIGludCBvcHRpb25zLCBib29sIGlzUmVs
YXlEaXNhYmxlZCwgUmVmPElQQzo6Q29ubmVjdGlvbj4mJik7CisgICAgTmV0d29ya1JUQ1RDUFNv
Y2tldENvY29hKFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50aWZpZXIsIE5ldHdvcmtSVENQ
cm92aWRlciYsIGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYsIGludCBvcHRpb25zLCBjb25zdCBT
dHJpbmcmIGF0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVyLCBib29sIGlzUmVsYXlEaXNhYmxlZCwg
UmVmPElQQzo6Q29ubmVjdGlvbj4mJik7CiAKIHByaXZhdGU6CiAgICAgLy8gTmV0d29ya1JUQ1By
b3ZpZGVyOjpTb2NrZXQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L3dlYnJ0Yy9OZXR3b3JrUlRDVENQU29ja2V0Q29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDVENQU29ja2V0Q29jb2EubW0KaW5kZXggM2ZiZDBl
MGIyYWYwYTJmYWFkNWUwMjQ2MmJhN2MyODI5NTcwNjY2NC4uYWU2Yjc3MjcwZDFhYTdiZmU3Mzc5
NTMzMzQ5ODJkN2NhMTM2ZjAzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy93ZWJydGMvTmV0d29ya1JUQ1RDUFNvY2tldENvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENUQ1BTb2NrZXRDb2NvYS5tbQpAQCAt
NTAsMTIgKzUwLDEyIEBAIHN0YXRpYyBkaXNwYXRjaF9xdWV1ZV90IHRjcFNvY2tldFF1ZXVlKCkK
ICAgICByZXR1cm4gcXVldWU7CiB9CiAKLXN0ZDo6dW5pcXVlX3B0cjxOZXR3b3JrUlRDUHJvdmlk
ZXI6OlNvY2tldD4gTmV0d29ya1JUQ1RDUFNvY2tldENvY29hOjpjcmVhdGVDbGllbnRUQ1BTb2Nr
ZXQoTGliV2ViUlRDU29ja2V0SWRlbnRpZmllciBpZGVudGlmaWVyLCBOZXR3b3JrUlRDUHJvdmlk
ZXImIHJ0Y1Byb3ZpZGVyLCBjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmIHJlbW90ZUFkZHJlc3Ms
IGludCB0Y3BPcHRpb25zLCBib29sIGlzUmVsYXlEaXNhYmxlZCwgUmVmPElQQzo6Q29ubmVjdGlv
bj4mJiBjb25uZWN0aW9uKQorc3RkOjp1bmlxdWVfcHRyPE5ldHdvcmtSVENQcm92aWRlcjo6U29j
a2V0PiBOZXR3b3JrUlRDVENQU29ja2V0Q29jb2E6OmNyZWF0ZUNsaWVudFRDUFNvY2tldChMaWJX
ZWJSVENTb2NrZXRJZGVudGlmaWVyIGlkZW50aWZpZXIsIE5ldHdvcmtSVENQcm92aWRlciYgcnRj
UHJvdmlkZXIsIGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYgcmVtb3RlQWRkcmVzcywgaW50IHRj
cE9wdGlvbnMsIGNvbnN0IFN0cmluZyYgYXR0cmlidXRlZEJ1bmRsZUlkZW50aWZpZXIsIGJvb2wg
aXNSZWxheURpc2FibGVkLCBSZWY8SVBDOjpDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24pCiB7CiAg
ICAgLy8gRklYTUU6IFdlIHNob3VsZCBtaWdyYXRlIHNzbHRjcCBjYW5kaWRhdGVzLCBtYXliZSBz
dXBwb3J0IE9QVF9UTFNfSU5TRUNVUkUgYXMgd2VsbC4KICAgICBpZiAoKHRjcE9wdGlvbnMgJiBy
dGM6OlBhY2tldFNvY2tldEZhY3Rvcnk6Ok9QVF9UTFNfRkFLRSkgfHwgKHRjcE9wdGlvbnMgJiBy
dGM6OlBhY2tldFNvY2tldEZhY3Rvcnk6Ok9QVF9UTFNfSU5TRUNVUkUpKQogICAgICAgICByZXR1
cm4gbnVsbHB0cjsKLSAgICByZXR1cm4gbWFrZVVuaXF1ZTxOZXR3b3JrUlRDVENQU29ja2V0Q29j
b2E+KGlkZW50aWZpZXIsIHJ0Y1Byb3ZpZGVyLCByZW1vdGVBZGRyZXNzLCB0Y3BPcHRpb25zLCBp
c1JlbGF5RGlzYWJsZWQsIFdURk1vdmUoY29ubmVjdGlvbikpOworICAgIHJldHVybiBtYWtlVW5p
cXVlPE5ldHdvcmtSVENUQ1BTb2NrZXRDb2NvYT4oaWRlbnRpZmllciwgcnRjUHJvdmlkZXIsIHJl
bW90ZUFkZHJlc3MsIHRjcE9wdGlvbnMsIGF0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVyLCBpc1Jl
bGF5RGlzYWJsZWQsIFdURk1vdmUoY29ubmVjdGlvbikpOwogfQogCiBzdGF0aWMgaW5saW5lIHZv
aWQgcHJvY2Vzc0luY29taW5nRGF0YShSZXRhaW5QdHI8bndfY29ubmVjdGlvbl90PiYmIG53Q29u
bmVjdGlvbiwgRnVuY3Rpb248VmVjdG9yPHVpbnQ4X3Q+KFZlY3Rvcjx1aW50OF90PiYmKT4mJiBw
cm9jZXNzRGF0YSwgVmVjdG9yPHVpbnQ4X3Q+JiYgYnVmZmVyID0geyB9KQpAQCAtODAsNyArODAs
NyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgcHJvY2Vzc0luY29taW5nRGF0YShSZXRhaW5QdHI8bndf
Y29ubmVjdGlvbl90PiYmIG53Q29ubmVjdGlvbgogICAgIH0pLmdldCgpKTsKIH0KIAotTmV0d29y
a1JUQ1RDUFNvY2tldENvY29hOjpOZXR3b3JrUlRDVENQU29ja2V0Q29jb2EoTGliV2ViUlRDU29j
a2V0SWRlbnRpZmllciBpZGVudGlmaWVyLCBOZXR3b3JrUlRDUHJvdmlkZXImIHJ0Y1Byb3ZpZGVy
LCBjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmIHJlbW90ZUFkZHJlc3MsIGludCBvcHRpb25zLCBi
b29sIGlzUmVsYXlEaXNhYmxlZCwgUmVmPElQQzo6Q29ubmVjdGlvbj4mJiBjb25uZWN0aW9uKQor
TmV0d29ya1JUQ1RDUFNvY2tldENvY29hOjpOZXR3b3JrUlRDVENQU29ja2V0Q29jb2EoTGliV2Vi
UlRDU29ja2V0SWRlbnRpZmllciBpZGVudGlmaWVyLCBOZXR3b3JrUlRDUHJvdmlkZXImIHJ0Y1By
b3ZpZGVyLCBjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmIHJlbW90ZUFkZHJlc3MsIGludCBvcHRp
b25zLCBjb25zdCBTdHJpbmcmIGF0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVyLCBib29sIGlzUmVs
YXlEaXNhYmxlZCwgUmVmPElQQzo6Q29ubmVjdGlvbj4mJiBjb25uZWN0aW9uKQogICAgIDogbV9p
ZGVudGlmaWVyKGlkZW50aWZpZXIpCiAgICAgLCBtX3J0Y1Byb3ZpZGVyKHJ0Y1Byb3ZpZGVyKQog
ICAgICwgbV9jb25uZWN0aW9uKFdURk1vdmUoY29ubmVjdGlvbikpCkBAIC05OCw2ICs5OCw4IEBA
IE5ldHdvcmtSVENUQ1BTb2NrZXRDb2NvYTo6TmV0d29ya1JUQ1RDUFNvY2tldENvY29hKExpYldl
YlJUQ1NvY2tldElkZW50aWZpZXIgaWRlCiAKICAgICBpZiAoYXV0byB0b2tlbiA9IHJ0Y1Byb3Zp
ZGVyLnNvdXJjZUFwcGxpY2F0aW9uQXVkaXRUb2tlbigpKQogICAgICAgICBud19wYXJhbWV0ZXJz
X3NldF9zb3VyY2VfYXBwbGljYXRpb24odGNwVExTLmdldCgpLCAqdG9rZW4pOworICAgIGlmICgh
YXR0cmlidXRlZEJ1bmRsZUlkZW50aWZpZXIuaXNFbXB0eSgpKQorICAgICAgICBud19wYXJhbWV0
ZXJzX3NldF9zb3VyY2VfYXBwbGljYXRpb25fYnlfYnVuZGxlX2lkKHRjcFRMUy5nZXQoKSwgYXR0
cmlidXRlZEJ1bmRsZUlkZW50aWZpZXIudXRmOCgpLmRhdGEoKSk7CiAgICAgaWYgKGlzUmVsYXlE
aXNhYmxlZCkKICAgICAgICAgbndfcGFyYW1ldGVyc19zZXRfYWNjb3VudF9pZCh0Y3BUTFMuZ2V0
KCksICJjb20uYXBwbGUuc2FmYXJpLnBlZXJ0b3BlZXIiKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1VEUFNvY2tldENvY29hLmgg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDVURQU29ja2V0
Q29jb2EuaAppbmRleCBjYjljMTk1ZGUxYjI2YTY2NDRiMTcxNGQwZmE2ZWUzM2M1YTI0MjI5Li41
ZDY1Y2QxZDA5ZTI2Mzk2NjQ0M2RkY2Y0NDVhNjg0ODA0NzYxYjgxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDVURQU29ja2V0Q29jb2Eu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDVURQ
U29ja2V0Q29jb2EuaApAQCAtNjAsOSArNjAsOSBAQCBjbGFzcyBOZXR3b3JrUlRDVURQU29ja2V0
Q29jb2FDb25uZWN0aW9uczsKIGNsYXNzIE5ldHdvcmtSVENVRFBTb2NrZXRDb2NvYSBmaW5hbCA6
IHB1YmxpYyBOZXR3b3JrUlRDUHJvdmlkZXI6OlNvY2tldCB7CiAgICAgV1RGX01BS0VfRkFTVF9B
TExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxOZXR3b3JrUlRD
UHJvdmlkZXI6OlNvY2tldD4gY3JlYXRlVURQU29ja2V0KFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tl
dElkZW50aWZpZXIsIE5ldHdvcmtSVENQcm92aWRlciYsIGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVz
cyYsIHVpbnQxNl90IG1pblBvcnQsIHVpbnQxNl90IG1heFBvcnQsIFJlZjxJUEM6OkNvbm5lY3Rp
b24+JiYsIGJvb2wgaXNGaXJzdFBhcnR5LCBib29sIGlzUmVsYXlEaXNhYmxlZCwgY29uc3QgV2Vi
Q29yZTo6UmVnaXN0cmFibGVEb21haW4mKTsKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPE5l
dHdvcmtSVENQcm92aWRlcjo6U29ja2V0PiBjcmVhdGVVRFBTb2NrZXQoV2ViQ29yZTo6TGliV2Vi
UlRDU29ja2V0SWRlbnRpZmllciwgTmV0d29ya1JUQ1Byb3ZpZGVyJiwgY29uc3QgcnRjOjpTb2Nr
ZXRBZGRyZXNzJiwgdWludDE2X3QgbWluUG9ydCwgdWludDE2X3QgbWF4UG9ydCwgUmVmPElQQzo6
Q29ubmVjdGlvbj4mJiwgU3RyaW5nJiYgYXR0cmlidXRlZEJ1bmRsZUlkZW50aWZpZXIsIGJvb2wg
aXNGaXJzdFBhcnR5LCBib29sIGlzUmVsYXlEaXNhYmxlZCwgY29uc3QgV2ViQ29yZTo6UmVnaXN0
cmFibGVEb21haW4mKTsKIAotICAgIE5ldHdvcmtSVENVRFBTb2NrZXRDb2NvYShXZWJDb3JlOjpM
aWJXZWJSVENTb2NrZXRJZGVudGlmaWVyLCBOZXR3b3JrUlRDUHJvdmlkZXImLCBjb25zdCBydGM6
OlNvY2tldEFkZHJlc3MmLCBSZWY8SVBDOjpDb25uZWN0aW9uPiYmLCBib29sIGlzRmlyc3RQYXJ0
eSwgYm9vbCBpc1JlbGF5RGlzYWJsZWQsIGNvbnN0IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWlu
Jik7CisgICAgTmV0d29ya1JUQ1VEUFNvY2tldENvY29hKFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tl
dElkZW50aWZpZXIsIE5ldHdvcmtSVENQcm92aWRlciYsIGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVz
cyYsIFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYsIFN0cmluZyYmIGF0dHJpYnV0ZWRCdW5kbGVJZGVu
dGlmaWVyLCBib29sIGlzRmlyc3RQYXJ0eSwgYm9vbCBpc1JlbGF5RGlzYWJsZWQsIGNvbnN0IFdl
YkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJik7CiAgICAgfk5ldHdvcmtSVENVRFBTb2NrZXRDb2Nv
YSgpOwogCiAgICAgdm9pZCBzZXRMaXN0ZW5pbmdQb3J0KGludCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDVURQU29ja2V0Q29jb2Eu
bW0gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDVURQU29j
a2V0Q29jb2EubW0KaW5kZXggZDQ1NjY0NThjYjUyMzMwNzg1ZTE0ZGRkMjFmNDc3MTg2YjEwODFh
NS4uMGI1NmJmNGU3MDU2YjRlMGNkYzYzMjNlZWY0M2ZhNWNiZDcwYjFlYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1VEUFNvY2tldENv
Y29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtS
VENVRFBTb2NrZXRDb2NvYS5tbQpAQCAtNTYsNyArNTYsNyBAQCB1c2luZyBuYW1lc3BhY2UgV2Vi
Q29yZTsKIAogY2xhc3MgTmV0d29ya1JUQ1VEUFNvY2tldENvY29hQ29ubmVjdGlvbnMgOiBwdWJs
aWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8TmV0d29ya1JUQ1VEUFNvY2tldENvY29hQ29ubmVjdGlv
bnM+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPE5ldHdvcmtSVENVRFBTb2NrZXRDb2NvYUNv
bm5lY3Rpb25zPiBjcmVhdGUoV2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmllciBpZGVu
dGlmaWVyLCBOZXR3b3JrUlRDUHJvdmlkZXImIHByb3ZpZGVyLCBjb25zdCBydGM6OlNvY2tldEFk
ZHJlc3MmIGFkZHJlc3MsIFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYgY29ubmVjdGlvbiwgYm9vbCBp
c0ZpcnN0UGFydHksIGJvb2wgaXNSZWxheURpc2FibGVkLCBjb25zdCBXZWJDb3JlOjpSZWdpc3Ry
YWJsZURvbWFpbiYgZG9tYWluKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IE5ldHdvcmtSVENVRFBT
b2NrZXRDb2NvYUNvbm5lY3Rpb25zKGlkZW50aWZpZXIsIHByb3ZpZGVyLCBhZGRyZXNzLCBXVEZN
b3ZlKGNvbm5lY3Rpb24pLCBpc0ZpcnN0UGFydHksIGlzUmVsYXlEaXNhYmxlZCwgZG9tYWluKSk7
IH0KKyAgICBzdGF0aWMgUmVmPE5ldHdvcmtSVENVRFBTb2NrZXRDb2NvYUNvbm5lY3Rpb25zPiBj
cmVhdGUoV2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmllciBpZGVudGlmaWVyLCBOZXR3
b3JrUlRDUHJvdmlkZXImIHByb3ZpZGVyLCBjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmIGFkZHJl
c3MsIFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYgY29ubmVjdGlvbiwgU3RyaW5nJiYgYXR0cmlidXRl
ZEJ1bmRsZUlkZW50aWZpZXIsIGJvb2wgaXNGaXJzdFBhcnR5LCBib29sIGlzUmVsYXlEaXNhYmxl
ZCwgY29uc3QgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mIGRvbWFpbikgeyByZXR1cm4gYWRv
cHRSZWYoKm5ldyBOZXR3b3JrUlRDVURQU29ja2V0Q29jb2FDb25uZWN0aW9ucyhpZGVudGlmaWVy
LCBwcm92aWRlciwgYWRkcmVzcywgV1RGTW92ZShjb25uZWN0aW9uKSwgV1RGTW92ZShhdHRyaWJ1
dGVkQnVuZGxlSWRlbnRpZmllciksIGlzRmlyc3RQYXJ0eSwgaXNSZWxheURpc2FibGVkLCBkb21h
aW4pKTsgfQogCiAgICAgdm9pZCBjbG9zZSgpOwogICAgIHZvaWQgc2V0T3B0aW9uKGludCBvcHRp
b24sIGludCB2YWx1ZSk7CkBAIC02NCw3ICs2NCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldExp
c3RlbmluZ1BvcnQoaW50KTsKIAogcHJpdmF0ZToKLSAgICBOZXR3b3JrUlRDVURQU29ja2V0Q29j
b2FDb25uZWN0aW9ucyhXZWJDb3JlOjpMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyLCBOZXR3b3Jr
UlRDUHJvdmlkZXImLCBjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmLCBSZWY8SVBDOjpDb25uZWN0
aW9uPiYmLCBib29sIGlzRmlyc3RQYXJ0eSwgYm9vbCBpc1JlbGF5RGlzYWJsZWQsIGNvbnN0IFdl
YkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJik7CisgICAgTmV0d29ya1JUQ1VEUFNvY2tldENvY29h
Q29ubmVjdGlvbnMoV2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmllciwgTmV0d29ya1JU
Q1Byb3ZpZGVyJiwgY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiwgUmVmPElQQzo6Q29ubmVjdGlv
bj4mJiwgU3RyaW5nJiYgYXR0cmlidXRlZEJ1bmRsZUlkZW50aWZpZXIsIGJvb2wgaXNGaXJzdFBh
cnR5LCBib29sIGlzUmVsYXlEaXNhYmxlZCwgY29uc3QgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21h
aW4mKTsKIAogICAgIFJldGFpblB0cjxud19jb25uZWN0aW9uX3Q+IGNyZWF0ZU5XQ29ubmVjdGlv
bihjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmKTsKICAgICB2b2lkIHNldHVwTldDb25uZWN0aW9u
KG53X2Nvbm5lY3Rpb25fdCwgY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJik7CkBAIC03OSw2ICs3
OSw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX3Nob3VsZEJ5cGFzc1JlbGF5IHsgZmFsc2UgfTsK
IAogICAgIHN0ZDo6b3B0aW9uYWw8YXVkaXRfdG9rZW5fdD4gbV9zb3VyY2VBcHBsaWNhdGlvbkF1
ZGl0VG9rZW47CisgICAgU3RyaW5nIG1fYXR0cmlidXRlZEJ1bmRsZUlkZW50aWZpZXI7CiAKICAg
ICBydGM6OlNvY2tldEFkZHJlc3MgbV9hZGRyZXNzOwogICAgIFJldGFpblB0cjxud19saXN0ZW5l
cl90PiBtX253TGlzdGVuZXI7CkBAIC05NywxNSArOTgsMTUgQEAgc3RhdGljIGRpc3BhdGNoX3F1
ZXVlX3QgdWRwU29ja2V0UXVldWUoKQogICAgIHJldHVybiBxdWV1ZTsKIH0KIAotc3RkOjp1bmlx
dWVfcHRyPE5ldHdvcmtSVENQcm92aWRlcjo6U29ja2V0PiBOZXR3b3JrUlRDVURQU29ja2V0Q29j
b2E6OmNyZWF0ZVVEUFNvY2tldChXZWJDb3JlOjpMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyIGlk
ZW50aWZpZXIsIE5ldHdvcmtSVENQcm92aWRlciYgcnRjUHJvdmlkZXIsIGNvbnN0IHJ0Yzo6U29j
a2V0QWRkcmVzcyYgYWRkcmVzcywgdWludDE2X3QgbWluUG9ydCwgdWludDE2X3QgbWF4UG9ydCwg
UmVmPElQQzo6Q29ubmVjdGlvbj4mJiBjb25uZWN0aW9uLCBib29sIGlzRmlyc3RQYXJ0eSwgYm9v
bCBpc1JlbGF5RGlzYWJsZWQsIGNvbnN0IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiBkb21h
aW4pCitzdGQ6OnVuaXF1ZV9wdHI8TmV0d29ya1JUQ1Byb3ZpZGVyOjpTb2NrZXQ+IE5ldHdvcmtS
VENVRFBTb2NrZXRDb2NvYTo6Y3JlYXRlVURQU29ja2V0KFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tl
dElkZW50aWZpZXIgaWRlbnRpZmllciwgTmV0d29ya1JUQ1Byb3ZpZGVyJiBydGNQcm92aWRlciwg
Y29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiBhZGRyZXNzLCB1aW50MTZfdCBtaW5Qb3J0LCB1aW50
MTZfdCBtYXhQb3J0LCBSZWY8SVBDOjpDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24sIFN0cmluZyYm
IGF0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVyLCBib29sIGlzRmlyc3RQYXJ0eSwgYm9vbCBpc1Jl
bGF5RGlzYWJsZWQsIGNvbnN0IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiBkb21haW4pCiB7
Ci0gICAgcmV0dXJuIG1ha2VVbmlxdWU8TmV0d29ya1JUQ1VEUFNvY2tldENvY29hPihpZGVudGlm
aWVyLCBydGNQcm92aWRlciwgYWRkcmVzcywgV1RGTW92ZShjb25uZWN0aW9uKSwgaXNGaXJzdFBh
cnR5LCBpc1JlbGF5RGlzYWJsZWQsIGRvbWFpbik7CisgICAgcmV0dXJuIG1ha2VVbmlxdWU8TmV0
d29ya1JUQ1VEUFNvY2tldENvY29hPihpZGVudGlmaWVyLCBydGNQcm92aWRlciwgYWRkcmVzcywg
V1RGTW92ZShjb25uZWN0aW9uKSwgV1RGTW92ZShhdHRyaWJ1dGVkQnVuZGxlSWRlbnRpZmllciks
IGlzRmlyc3RQYXJ0eSwgaXNSZWxheURpc2FibGVkLCBkb21haW4pOwogfQogCi1OZXR3b3JrUlRD
VURQU29ja2V0Q29jb2E6Ok5ldHdvcmtSVENVRFBTb2NrZXRDb2NvYShXZWJDb3JlOjpMaWJXZWJS
VENTb2NrZXRJZGVudGlmaWVyIGlkZW50aWZpZXIsIE5ldHdvcmtSVENQcm92aWRlciYgcnRjUHJv
dmlkZXIsIGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYgYWRkcmVzcywgUmVmPElQQzo6Q29ubmVj
dGlvbj4mJiBjb25uZWN0aW9uLCBib29sIGlzRmlyc3RQYXJ0eSwgYm9vbCBpc1JlbGF5RGlzYWJs
ZWQsIGNvbnN0IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiBkb21haW4pCitOZXR3b3JrUlRD
VURQU29ja2V0Q29jb2E6Ok5ldHdvcmtSVENVRFBTb2NrZXRDb2NvYShXZWJDb3JlOjpMaWJXZWJS
VENTb2NrZXRJZGVudGlmaWVyIGlkZW50aWZpZXIsIE5ldHdvcmtSVENQcm92aWRlciYgcnRjUHJv
dmlkZXIsIGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYgYWRkcmVzcywgUmVmPElQQzo6Q29ubmVj
dGlvbj4mJiBjb25uZWN0aW9uLCBTdHJpbmcmJiBhdHRyaWJ1dGVkQnVuZGxlSWRlbnRpZmllciwg
Ym9vbCBpc0ZpcnN0UGFydHksIGJvb2wgaXNSZWxheURpc2FibGVkLCBjb25zdCBXZWJDb3JlOjpS
ZWdpc3RyYWJsZURvbWFpbiYgZG9tYWluKQogICAgIDogbV9ydGNQcm92aWRlcihydGNQcm92aWRl
cikKICAgICAsIG1faWRlbnRpZmllcihpZGVudGlmaWVyKQotICAgICwgbV9ud0Nvbm5lY3Rpb25z
KE5ldHdvcmtSVENVRFBTb2NrZXRDb2NvYUNvbm5lY3Rpb25zOjpjcmVhdGUoaWRlbnRpZmllciwg
cnRjUHJvdmlkZXIsIGFkZHJlc3MsIFdURk1vdmUoY29ubmVjdGlvbiksIGlzRmlyc3RQYXJ0eSwg
aXNSZWxheURpc2FibGVkLCBkb21haW4pKQorICAgICwgbV9ud0Nvbm5lY3Rpb25zKE5ldHdvcmtS
VENVRFBTb2NrZXRDb2NvYUNvbm5lY3Rpb25zOjpjcmVhdGUoaWRlbnRpZmllciwgcnRjUHJvdmlk
ZXIsIGFkZHJlc3MsIFdURk1vdmUoY29ubmVjdGlvbiksIFdURk1vdmUoYXR0cmlidXRlZEJ1bmRs
ZUlkZW50aWZpZXIpLCBpc0ZpcnN0UGFydHksIGlzUmVsYXlEaXNhYmxlZCwgZG9tYWluKSkKIHsK
IH0KIApAQCAtMTU3LDcgKzE1OCw3IEBAIHN0YXRpYyBib29sIGlzS25vd25UcmFja2VyKGNvbnN0
IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiBkb21haW4pCiB9CiAjZW5kaWYKIAotTmV0d29y
a1JUQ1VEUFNvY2tldENvY29hQ29ubmVjdGlvbnM6Ok5ldHdvcmtSVENVRFBTb2NrZXRDb2NvYUNv
bm5lY3Rpb25zKFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50aWZpZXIgaWRlbnRpZmllciwg
TmV0d29ya1JUQ1Byb3ZpZGVyJiBydGNQcm92aWRlciwgY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNz
JiBhZGRyZXNzLCBSZWY8SVBDOjpDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24sIGJvb2wgaXNGaXJz
dFBhcnR5LCBib29sIGlzUmVsYXlEaXNhYmxlZCwgY29uc3QgV2ViQ29yZTo6UmVnaXN0cmFibGVE
b21haW4mIGRvbWFpbikKK05ldHdvcmtSVENVRFBTb2NrZXRDb2NvYUNvbm5lY3Rpb25zOjpOZXR3
b3JrUlRDVURQU29ja2V0Q29jb2FDb25uZWN0aW9ucyhXZWJDb3JlOjpMaWJXZWJSVENTb2NrZXRJ
ZGVudGlmaWVyIGlkZW50aWZpZXIsIE5ldHdvcmtSVENQcm92aWRlciYgcnRjUHJvdmlkZXIsIGNv
bnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYgYWRkcmVzcywgUmVmPElQQzo6Q29ubmVjdGlvbj4mJiBj
b25uZWN0aW9uLCBTdHJpbmcmJiBhdHRyaWJ1dGVkQnVuZGxlSWRlbnRpZmllciwgYm9vbCBpc0Zp
cnN0UGFydHksIGJvb2wgaXNSZWxheURpc2FibGVkLCBjb25zdCBXZWJDb3JlOjpSZWdpc3RyYWJs
ZURvbWFpbiYgZG9tYWluKQogICAgIDogbV9pZGVudGlmaWVyKGlkZW50aWZpZXIpCiAgICAgLCBt
X2Nvbm5lY3Rpb24oV1RGTW92ZShjb25uZWN0aW9uKSkKICNpZiBIQVZFKE5XUEFSQU1FVEVSU19U
UkFDS0VSX0FQSSkKQEAgLTE2Niw2ICsxNjcsNyBAQCBOZXR3b3JrUlRDVURQU29ja2V0Q29jb2FD
b25uZWN0aW9uczo6TmV0d29ya1JUQ1VEUFNvY2tldENvY29hQ29ubmVjdGlvbnMoV2ViQ29yZQog
I2VuZGlmCiAgICAgLCBtX3Nob3VsZEJ5cGFzc1JlbGF5KGlzUmVsYXlEaXNhYmxlZCkKICAgICAs
IG1fc291cmNlQXBwbGljYXRpb25BdWRpdFRva2VuKHJ0Y1Byb3ZpZGVyLnNvdXJjZUFwcGxpY2F0
aW9uQXVkaXRUb2tlbigpKQorICAgICwgbV9hdHRyaWJ1dGVkQnVuZGxlSWRlbnRpZmllcihXVEZN
b3ZlKGF0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVyKSkKIHsKICAgICBhdXRvIHBhcmFtZXRlcnMg
PSBhZG9wdE5TKG53X3BhcmFtZXRlcnNfY3JlYXRlX3NlY3VyZV91ZHAoTldfUEFSQU1FVEVSU19E
SVNBQkxFX1BST1RPQ09MLCBOV19QQVJBTUVURVJTX0RFRkFVTFRfQ09ORklHVVJBVElPTikpOwog
ICAgIHsKQEAgLTI0Miw2ICsyNDQsOCBAQCB2b2lkIE5ldHdvcmtSVENVRFBTb2NrZXRDb2NvYUNv
bm5lY3Rpb25zOjpjb25maWd1cmVQYXJhbWV0ZXJzKG53X3BhcmFtZXRlcnNfdCBwYQogCiAgICAg
aWYgKG1fc291cmNlQXBwbGljYXRpb25BdWRpdFRva2VuKQogICAgICAgICBud19wYXJhbWV0ZXJz
X3NldF9zb3VyY2VfYXBwbGljYXRpb24ocGFyYW1ldGVycywgKm1fc291cmNlQXBwbGljYXRpb25B
dWRpdFRva2VuKTsKKyAgICBpZiAoIW1fYXR0cmlidXRlZEJ1bmRsZUlkZW50aWZpZXIuaXNFbXB0
eSgpKQorICAgICAgICBud19wYXJhbWV0ZXJzX3NldF9zb3VyY2VfYXBwbGljYXRpb25fYnlfYnVu
ZGxlX2lkKHBhcmFtZXRlcnMsIG1fYXR0cmlidXRlZEJ1bmRsZUlkZW50aWZpZXIudXRmOCgpLmRh
dGEoKSk7CiAKICAgICBud19wYXJhbWV0ZXJzX3NldF9yZXVzZV9sb2NhbF9hZGRyZXNzKHBhcmFt
ZXRlcnMsIHRydWUpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkv
Q29jb2EvTldQYXJhbWV0ZXJzU1BJLmggYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9Db2Nv
YS9OV1BhcmFtZXRlcnNTUEkuaAppbmRleCBjMWY3MDk3MDIxMGE3ODNmNWU2OWNlMmQ1ZmU2ZGJk
ZjBkNDhiYWVhLi5lZTYwMmNlODdmODk5MTZkNmE4MDgxNmJjMjlmYzFmNWNjZmM5ZGQ2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9Db2NvYS9OV1BhcmFtZXRlcnNTUEku
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9Db2NvYS9OV1BhcmFtZXRlcnNTUEku
aApAQCAtMzUsNiArMzUsNyBAQCBXVEZfRVhURVJOX0NfQkVHSU4KIAogdm9pZCBud19wYXJhbWV0
ZXJzX3NldF9hY2NvdW50X2lkKG53X3BhcmFtZXRlcnNfdCwgY29uc3QgY2hhciAqIGFjY291bnRf
aWQpOwogdm9pZCBud19wYXJhbWV0ZXJzX3NldF9zb3VyY2VfYXBwbGljYXRpb24obndfcGFyYW1l
dGVyc190LCBhdWRpdF90b2tlbl90KTsKK3ZvaWQgbndfcGFyYW1ldGVyc19zZXRfc291cmNlX2Fw
cGxpY2F0aW9uX2J5X2J1bmRsZV9pZChud19wYXJhbWV0ZXJzX3QsIGNvbnN0IGNoYXIqKTsKIG53
X2VuZHBvaW50X3QgbndfZW5kcG9pbnRfY3JlYXRlX2hvc3Rfd2l0aF9udW1lcmljX3BvcnQoY29u
c3QgY2hhciogaG9zdG5hbWUsIHVpbnQxNl90IHBvcnRfaG9zdF9vcmRlcik7CiAKICNpZiBIQVZF
KE5XUEFSQU1FVEVSU19UUkFDS0VSX0FQSSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuY3BwCmluZGV4
IGZmYjNhYTBiNzBlNmNhZTM5ZjQ5MjVjYjJjMmUyZTAwNjI5NTdjNGIuLjk2OGM5ZjMwNGI2NTQ4
MDlmOTkyNjI1NmMxMDA1NTA3Yzk3MTJmNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmNwcApA
QCAtODgsNyArODgsNyBAQCB2b2lkIExpYldlYlJUQ1Byb3ZpZGVyOjpyZWdpc3Rlck1ETlNOYW1l
KERvY3VtZW50SWRlbnRpZmllciBkb2N1bWVudElkZW50aWZpZXIsCiBjbGFzcyBSVENTb2NrZXRG
YWN0b3J5IGZpbmFsIDogcHVibGljIExpYldlYlJUQ1Byb3ZpZGVyOjpTdXNwZW5kYWJsZVNvY2tl
dEZhY3RvcnkgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIFJU
Q1NvY2tldEZhY3RvcnkoU3RyaW5nJiYgdXNlckFnZW50LCBib29sIGlzRmlyc3RQYXJ0eSwgUmVn
aXN0cmFibGVEb21haW4mJik7CisgICAgUlRDU29ja2V0RmFjdG9yeShXZWJQYWdlUHJveHlJZGVu
dGlmaWVyLCBTdHJpbmcmJiB1c2VyQWdlbnQsIGJvb2wgaXNGaXJzdFBhcnR5LCBSZWdpc3RyYWJs
ZURvbWFpbiYmKTsKIAogICAgIHZvaWQgZGlzYWJsZVJlbGF5KCkgZmluYWwgeyBtX2lzUmVsYXlE
aXNhYmxlZCA9IHRydWU7IH0KIApAQCAtMTAyLDE0ICsxMDIsMTYgQEAgcHJpdmF0ZToKICAgICB2
b2lkIHJlc3VtZSgpIGZpbmFsOwogCiBwcml2YXRlOgorICAgIFdlYlBhZ2VQcm94eUlkZW50aWZp
ZXIgbV9wYWdlSWRlbnRpZmllcjsKICAgICBTdHJpbmcgbV91c2VyQWdlbnQ7CiAgICAgYm9vbCBt
X2lzRmlyc3RQYXJ0eSB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2lzUmVsYXlEaXNhYmxlZCB7IGZh
bHNlIH07CiAgICAgUmVnaXN0cmFibGVEb21haW4gbV9kb21haW47CiB9OwogCi1SVENTb2NrZXRG
YWN0b3J5OjpSVENTb2NrZXRGYWN0b3J5KFN0cmluZyYmIHVzZXJBZ2VudCwgYm9vbCBpc0ZpcnN0
UGFydHksIFJlZ2lzdHJhYmxlRG9tYWluJiYgZG9tYWluKQotICAgIDogbV91c2VyQWdlbnQoV1RG
TW92ZSh1c2VyQWdlbnQpKQorUlRDU29ja2V0RmFjdG9yeTo6UlRDU29ja2V0RmFjdG9yeShXZWJQ
YWdlUHJveHlJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyLCBTdHJpbmcmJiB1c2VyQWdlbnQsIGJv
b2wgaXNGaXJzdFBhcnR5LCBSZWdpc3RyYWJsZURvbWFpbiYmIGRvbWFpbikKKyAgICA6IG1fcGFn
ZUlkZW50aWZpZXIocGFnZUlkZW50aWZpZXIpCisgICAgLCBtX3VzZXJBZ2VudChXVEZNb3ZlKHVz
ZXJBZ2VudCkpCiAgICAgLCBtX2lzRmlyc3RQYXJ0eShpc0ZpcnN0UGFydHkpCiAgICAgLCBtX2Rv
bWFpbihXVEZNb3ZlKGRvbWFpbikpCiB7CkBAIC0xMTcsNyArMTE5LDcgQEAgUlRDU29ja2V0RmFj
dG9yeTo6UlRDU29ja2V0RmFjdG9yeShTdHJpbmcmJiB1c2VyQWdlbnQsIGJvb2wgaXNGaXJzdFBh
cnR5LCBSZWdpc3QKIAogcnRjOjpBc3luY1BhY2tldFNvY2tldCogUlRDU29ja2V0RmFjdG9yeTo6
Q3JlYXRlVWRwU29ja2V0KGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYgYWRkcmVzcywgdWludDE2
X3QgbWluUG9ydCwgdWludDE2X3QgbWF4UG9ydCkKIHsKLSAgICByZXR1cm4gV2ViUHJvY2Vzczo6
c2luZ2xldG9uKCkubGliV2ViUlRDTmV0d29yaygpLnNvY2tldEZhY3RvcnkoKS5jcmVhdGVVZHBT
b2NrZXQodGhpcywgYWRkcmVzcywgbWluUG9ydCwgbWF4UG9ydCwgbV9pc0ZpcnN0UGFydHksIG1f
aXNSZWxheURpc2FibGVkLCBtX2RvbWFpbik7CisgICAgcmV0dXJuIFdlYlByb2Nlc3M6OnNpbmds
ZXRvbigpLmxpYldlYlJUQ05ldHdvcmsoKS5zb2NrZXRGYWN0b3J5KCkuY3JlYXRlVWRwU29ja2V0
KHRoaXMsIGFkZHJlc3MsIG1pblBvcnQsIG1heFBvcnQsIG1fcGFnZUlkZW50aWZpZXIsIG1faXNG
aXJzdFBhcnR5LCBtX2lzUmVsYXlEaXNhYmxlZCwgbV9kb21haW4pOwogfQogCiBydGM6OkFzeW5j
UGFja2V0U29ja2V0KiBSVENTb2NrZXRGYWN0b3J5OjpDcmVhdGVTZXJ2ZXJUY3BTb2NrZXQoY29u
c3QgcnRjOjpTb2NrZXRBZGRyZXNzJiBhZGRyZXNzLCB1aW50MTZfdCBtaW5Qb3J0LCB1aW50MTZf
dCBtYXhQb3J0LCBpbnQgb3B0aW9ucykKQEAgLTEyNyw3ICsxMjksNyBAQCBydGM6OkFzeW5jUGFj
a2V0U29ja2V0KiBSVENTb2NrZXRGYWN0b3J5OjpDcmVhdGVTZXJ2ZXJUY3BTb2NrZXQoY29uc3Qg
cnRjOjpTb2NrZQogCiBydGM6OkFzeW5jUGFja2V0U29ja2V0KiBSVENTb2NrZXRGYWN0b3J5OjpD
cmVhdGVDbGllbnRUY3BTb2NrZXQoY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiBsb2NhbEFkZHJl
c3MsIGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYgcmVtb3RlQWRkcmVzcywgY29uc3QgcnRjOjpQ
cm94eUluZm8mLCBjb25zdCBzdGQ6OnN0cmluZyYsIGNvbnN0IHJ0Yzo6UGFja2V0U29ja2V0VGNw
T3B0aW9ucyYgb3B0aW9ucykKIHsKLSAgICByZXR1cm4gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCku
bGliV2ViUlRDTmV0d29yaygpLnNvY2tldEZhY3RvcnkoKS5jcmVhdGVDbGllbnRUY3BTb2NrZXQo
dGhpcywgbG9jYWxBZGRyZXNzLCByZW1vdGVBZGRyZXNzLCBTdHJpbmcgeyBtX3VzZXJBZ2VudCB9
LCBvcHRpb25zLCBtX2lzUmVsYXlEaXNhYmxlZCk7CisgICAgcmV0dXJuIFdlYlByb2Nlc3M6OnNp
bmdsZXRvbigpLmxpYldlYlJUQ05ldHdvcmsoKS5zb2NrZXRGYWN0b3J5KCkuY3JlYXRlQ2xpZW50
VGNwU29ja2V0KHRoaXMsIGxvY2FsQWRkcmVzcywgcmVtb3RlQWRkcmVzcywgU3RyaW5nIHsgbV91
c2VyQWdlbnQgfSwgb3B0aW9ucywgbV9wYWdlSWRlbnRpZmllciwgbV9pc1JlbGF5RGlzYWJsZWQp
OwogfQogCiBydGM6OkFzeW5jUmVzb2x2ZXJJbnRlcmZhY2UqIFJUQ1NvY2tldEZhY3Rvcnk6OkNy
ZWF0ZUFzeW5jUmVzb2x2ZXIoKQpAQCAtMTYwLDcgKzE2Miw3IEBAIHZvaWQgTGliV2ViUlRDUHJv
dmlkZXI6OnN0YXJ0ZWROZXR3b3JrVGhyZWFkKCkKIAogc3RkOjp1bmlxdWVfcHRyPExpYldlYlJU
Q1Byb3ZpZGVyOjpTdXNwZW5kYWJsZVNvY2tldEZhY3Rvcnk+IExpYldlYlJUQ1Byb3ZpZGVyOjpj
cmVhdGVTb2NrZXRGYWN0b3J5KFN0cmluZyYmIHVzZXJBZ2VudCwgYm9vbCBpc0ZpcnN0UGFydHks
IFJlZ2lzdHJhYmxlRG9tYWluJiYgZG9tYWluKQogewotICAgIGF1dG8gZmFjdG9yeSA9IG1ha2VV
bmlxdWU8UlRDU29ja2V0RmFjdG9yeT4oV1RGTW92ZSh1c2VyQWdlbnQpLCBpc0ZpcnN0UGFydHks
IFdURk1vdmUoZG9tYWluKSk7CisgICAgYXV0byBmYWN0b3J5ID0gbWFrZVVuaXF1ZTxSVENTb2Nr
ZXRGYWN0b3J5PihtX3dlYlBhZ2Uud2ViUGFnZVByb3h5SWRlbnRpZmllcigpLCBXVEZNb3ZlKHVz
ZXJBZ2VudCksIGlzRmlyc3RQYXJ0eSwgV1RGTW92ZShkb21haW4pKTsKIAogICAgIGF1dG8qIHBh
Z2UgPSBtX3dlYlBhZ2UuY29yZVBhZ2UoKTsKICAgICBpZiAoIXBhZ2UgfHwgIXBhZ2UtPnNldHRp
bmdzKCkud2ViUlRDU29ja2V0c1Byb3h5aW5nRW5hYmxlZCgpKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1NvY2tldEZhY3Rvcnku
Y3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1Nv
Y2tldEZhY3RvcnkuY3BwCmluZGV4IDIwMjdjMjg4MDc1MmJhNTU3ZmMyY2UzMzlhZmQ3MzIzZTMz
MjRhMGYuLjgxZTE1ZTg4NjRiNjBiOTFlM2EyM2VlMmY2YjgzZjc5ZDMzNmQzOWYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2Nr
ZXRGYWN0b3J5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJy
dGMvTGliV2ViUlRDU29ja2V0RmFjdG9yeS5jcHAKQEAgLTg1LDI2ICs4NSwyNiBAQCBydGM6OkFz
eW5jUGFja2V0U29ja2V0KiBMaWJXZWJSVENTb2NrZXRGYWN0b3J5OjpjcmVhdGVTZXJ2ZXJUY3BT
b2NrZXQoY29uc3Qgdm9pZAogICAgIHJldHVybiBzb2NrZXQucmVsZWFzZSgpOwogfQogCi1ydGM6
OkFzeW5jUGFja2V0U29ja2V0KiBMaWJXZWJSVENTb2NrZXRGYWN0b3J5OjpjcmVhdGVVZHBTb2Nr
ZXQoY29uc3Qgdm9pZCogc29ja2V0R3JvdXAsIGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYgYWRk
cmVzcywgdWludDE2X3QgbWluUG9ydCwgdWludDE2X3QgbWF4UG9ydCwgYm9vbCBpc0ZpcnN0UGFy
dHksIGJvb2wgaXNSZWxheURpc2FibGVkLCBjb25zdCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFp
biYgZG9tYWluKQorcnRjOjpBc3luY1BhY2tldFNvY2tldCogTGliV2ViUlRDU29ja2V0RmFjdG9y
eTo6Y3JlYXRlVWRwU29ja2V0KGNvbnN0IHZvaWQqIHNvY2tldEdyb3VwLCBjb25zdCBydGM6OlNv
Y2tldEFkZHJlc3MmIGFkZHJlc3MsIHVpbnQxNl90IG1pblBvcnQsIHVpbnQxNl90IG1heFBvcnQs
IFdlYlBhZ2VQcm94eUlkZW50aWZpZXIgcGFnZUlkZW50aWZpZXIsIGJvb2wgaXNGaXJzdFBhcnR5
LCBib29sIGlzUmVsYXlEaXNhYmxlZCwgY29uc3QgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4m
IGRvbWFpbikKIHsKICAgICBBU1NFUlQoIVdURjo6aXNNYWluUnVuTG9vcCgpKTsKICAgICBhdXRv
IHNvY2tldCA9IG1ha2VVbmlxdWU8TGliV2ViUlRDU29ja2V0PigqdGhpcywgc29ja2V0R3JvdXAs
IExpYldlYlJUQ1NvY2tldDo6VHlwZTo6VURQLCBhZGRyZXNzLCBydGM6OlNvY2tldEFkZHJlc3Mo
KSk7CiAKICAgICBpZiAobV9jb25uZWN0aW9uKQotICAgICAgICBtX2Nvbm5lY3Rpb24tPnNlbmQo
TWVzc2FnZXM6Ok5ldHdvcmtSVENQcm92aWRlcjo6Q3JlYXRlVURQU29ja2V0KHNvY2tldC0+aWRl
bnRpZmllcigpLCBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzKGFkZHJlc3MpLCBtaW5Qb3J0LCBt
YXhQb3J0LCBpc0ZpcnN0UGFydHksIGlzUmVsYXlEaXNhYmxlZCwgZG9tYWluKSwgMCk7CisgICAg
ICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6TmV0d29ya1JUQ1Byb3ZpZGVyOjpDcmVh
dGVVRFBTb2NrZXQoc29ja2V0LT5pZGVudGlmaWVyKCksIFJUQ05ldHdvcms6OlNvY2tldEFkZHJl
c3MoYWRkcmVzcyksIG1pblBvcnQsIG1heFBvcnQsIHBhZ2VJZGVudGlmaWVyLCBpc0ZpcnN0UGFy
dHksIGlzUmVsYXlEaXNhYmxlZCwgZG9tYWluKSwgMCk7CiAgICAgZWxzZSB7CiAgICAgICAgIGNh
bGxPbk1haW5SdW5Mb29wKFtdIHsKICAgICAgICAgICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigp
LmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpOwogICAgICAgICB9KTsKLSAgICAgICAg
bV9wZW5kaW5nTWVzc2FnZVRhc2tzLmFwcGVuZChbaWRlbnRpZmllciA9IHNvY2tldC0+aWRlbnRp
ZmllcigpLCBhZGRyZXNzID0gUlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyhhZGRyZXNzKSwgbWlu
UG9ydCwgbWF4UG9ydCwgaXNGaXJzdFBhcnR5LCBpc1JlbGF5RGlzYWJsZWQsIGRvbWFpbl0oYXV0
byYgY29ubmVjdGlvbikgewotICAgICAgICAgICAgY29ubmVjdGlvbi5zZW5kKE1lc3NhZ2VzOjpO
ZXR3b3JrUlRDUHJvdmlkZXI6OkNyZWF0ZVVEUFNvY2tldChpZGVudGlmaWVyLCBhZGRyZXNzLCBt
aW5Qb3J0LCBtYXhQb3J0LCBpc0ZpcnN0UGFydHksIGlzUmVsYXlEaXNhYmxlZCwgZG9tYWluKSwg
MCk7CisgICAgICAgIG1fcGVuZGluZ01lc3NhZ2VUYXNrcy5hcHBlbmQoW2lkZW50aWZpZXIgPSBz
b2NrZXQtPmlkZW50aWZpZXIoKSwgYWRkcmVzcyA9IFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3Mo
YWRkcmVzcyksIG1pblBvcnQsIG1heFBvcnQsIHBhZ2VJZGVudGlmaWVyLCBpc0ZpcnN0UGFydHks
IGlzUmVsYXlEaXNhYmxlZCwgZG9tYWluXShhdXRvJiBjb25uZWN0aW9uKSB7CisgICAgICAgICAg
ICBjb25uZWN0aW9uLnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtSVENQcm92aWRlcjo6Q3JlYXRlVURQ
U29ja2V0KGlkZW50aWZpZXIsIGFkZHJlc3MsIG1pblBvcnQsIG1heFBvcnQsIHBhZ2VJZGVudGlm
aWVyLCBpc0ZpcnN0UGFydHksIGlzUmVsYXlEaXNhYmxlZCwgZG9tYWluKSwgMCk7CiAgICAgICAg
IH0pOwogICAgIH0KIAogICAgIHJldHVybiBzb2NrZXQucmVsZWFzZSgpOwogfQogCi1ydGM6OkFz
eW5jUGFja2V0U29ja2V0KiBMaWJXZWJSVENTb2NrZXRGYWN0b3J5OjpjcmVhdGVDbGllbnRUY3BT
b2NrZXQoY29uc3Qgdm9pZCogc29ja2V0R3JvdXAsIGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYg
bG9jYWxBZGRyZXNzLCBjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmIHJlbW90ZUFkZHJlc3MsIFN0
cmluZyYmIHVzZXJBZ2VudCwgY29uc3QgcnRjOjpQYWNrZXRTb2NrZXRUY3BPcHRpb25zJiBvcHRp
b25zLCBib29sIGlzUmVsYXlEaXNhYmxlZCkKK3J0Yzo6QXN5bmNQYWNrZXRTb2NrZXQqIExpYldl
YlJUQ1NvY2tldEZhY3Rvcnk6OmNyZWF0ZUNsaWVudFRjcFNvY2tldChjb25zdCB2b2lkKiBzb2Nr
ZXRHcm91cCwgY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiBsb2NhbEFkZHJlc3MsIGNvbnN0IHJ0
Yzo6U29ja2V0QWRkcmVzcyYgcmVtb3RlQWRkcmVzcywgU3RyaW5nJiYgdXNlckFnZW50LCBjb25z
dCBydGM6OlBhY2tldFNvY2tldFRjcE9wdGlvbnMmIG9wdGlvbnMsIFdlYlBhZ2VQcm94eUlkZW50
aWZpZXIgcGFnZUlkZW50aWZpZXIsIGJvb2wgaXNSZWxheURpc2FibGVkKQogewogICAgIEFTU0VS
VCghV1RGOjppc01haW5SdW5Mb29wKCkpOwogCkBAIC0xMTMsMTMgKzExMywxMyBAQCBydGM6OkFz
eW5jUGFja2V0U29ja2V0KiBMaWJXZWJSVENTb2NrZXRGYWN0b3J5OjpjcmVhdGVDbGllbnRUY3BT
b2NrZXQoY29uc3Qgdm9pZAogCiAgICAgLy8gRklYTUU6IFdlIG9ubHkgdHJhbnNmZXIgb3B0aW9u
cy5vcHRzIGJ1dCBzaG91bGQgYWxzbyBoYW5kbGUgb3RoZXIgbWVtYmVycy4KICAgICBpZiAobV9j
b25uZWN0aW9uKQotICAgICAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtS
VENQcm92aWRlcjo6Q3JlYXRlQ2xpZW50VENQU29ja2V0KHNvY2tldC0+aWRlbnRpZmllcigpLCBS
VENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzKHByZXBhcmVTb2NrZXRBZGRyZXNzKGxvY2FsQWRkcmVz
cywgbV9kaXNhYmxlTm9uTG9jYWxob3N0Q29ubmVjdGlvbnMpKSwgUlRDTmV0d29yazo6U29ja2V0
QWRkcmVzcyhwcmVwYXJlU29ja2V0QWRkcmVzcyhyZW1vdGVBZGRyZXNzLCBtX2Rpc2FibGVOb25M
b2NhbGhvc3RDb25uZWN0aW9ucykpLCB1c2VyQWdlbnQsIG9wdGlvbnMub3B0cywgIGlzUmVsYXlE
aXNhYmxlZCksIDApOworICAgICAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6Ok5ldHdv
cmtSVENQcm92aWRlcjo6Q3JlYXRlQ2xpZW50VENQU29ja2V0KHNvY2tldC0+aWRlbnRpZmllcigp
LCBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzKHByZXBhcmVTb2NrZXRBZGRyZXNzKGxvY2FsQWRk
cmVzcywgbV9kaXNhYmxlTm9uTG9jYWxob3N0Q29ubmVjdGlvbnMpKSwgUlRDTmV0d29yazo6U29j
a2V0QWRkcmVzcyhwcmVwYXJlU29ja2V0QWRkcmVzcyhyZW1vdGVBZGRyZXNzLCBtX2Rpc2FibGVO
b25Mb2NhbGhvc3RDb25uZWN0aW9ucykpLCB1c2VyQWdlbnQsIG9wdGlvbnMub3B0cywgcGFnZUlk
ZW50aWZpZXIsIGlzUmVsYXlEaXNhYmxlZCksIDApOwogICAgIGVsc2UgewogICAgICAgICBjYWxs
T25NYWluUnVuTG9vcChbXSB7CiAgICAgICAgICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5l
bnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKTsKICAgICAgICAgfSk7Ci0gICAgICAgIG1f
cGVuZGluZ01lc3NhZ2VUYXNrcy5hcHBlbmQoW2lkZW50aWZpZXIgPSBzb2NrZXQtPmlkZW50aWZp
ZXIoKSwgbG9jYWxBZGRyZXNzID0gUlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyhwcmVwYXJlU29j
a2V0QWRkcmVzcyhsb2NhbEFkZHJlc3MsIG1fZGlzYWJsZU5vbkxvY2FsaG9zdENvbm5lY3Rpb25z
KSksIHJlbW90ZUFkZHJlc3MgPSBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzKHByZXBhcmVTb2Nr
ZXRBZGRyZXNzKHJlbW90ZUFkZHJlc3MsIG1fZGlzYWJsZU5vbkxvY2FsaG9zdENvbm5lY3Rpb25z
KSksIHVzZXJBZ2VudCwgb3B0cyA9IG9wdGlvbnMub3B0cywgaXNSZWxheURpc2FibGVkXShhdXRv
JiBjb25uZWN0aW9uKSB7Ci0gICAgICAgICAgICBjb25uZWN0aW9uLnNlbmQoTWVzc2FnZXM6Ok5l
dHdvcmtSVENQcm92aWRlcjo6Q3JlYXRlQ2xpZW50VENQU29ja2V0KGlkZW50aWZpZXIsIGxvY2Fs
QWRkcmVzcywgcmVtb3RlQWRkcmVzcywgdXNlckFnZW50LCBvcHRzLCBpc1JlbGF5RGlzYWJsZWQp
LCAwKTsKKyAgICAgICAgbV9wZW5kaW5nTWVzc2FnZVRhc2tzLmFwcGVuZChbaWRlbnRpZmllciA9
IHNvY2tldC0+aWRlbnRpZmllcigpLCBsb2NhbEFkZHJlc3MgPSBSVENOZXR3b3JrOjpTb2NrZXRB
ZGRyZXNzKHByZXBhcmVTb2NrZXRBZGRyZXNzKGxvY2FsQWRkcmVzcywgbV9kaXNhYmxlTm9uTG9j
YWxob3N0Q29ubmVjdGlvbnMpKSwgcmVtb3RlQWRkcmVzcyA9IFJUQ05ldHdvcms6OlNvY2tldEFk
ZHJlc3MocHJlcGFyZVNvY2tldEFkZHJlc3MocmVtb3RlQWRkcmVzcywgbV9kaXNhYmxlTm9uTG9j
YWxob3N0Q29ubmVjdGlvbnMpKSwgdXNlckFnZW50LCBvcHRzID0gb3B0aW9ucy5vcHRzLCBwYWdl
SWRlbnRpZmllciwgaXNSZWxheURpc2FibGVkXShhdXRvJiBjb25uZWN0aW9uKSB7CisgICAgICAg
ICAgICBjb25uZWN0aW9uLnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtSVENQcm92aWRlcjo6Q3JlYXRl
Q2xpZW50VENQU29ja2V0KGlkZW50aWZpZXIsIGxvY2FsQWRkcmVzcywgcmVtb3RlQWRkcmVzcywg
dXNlckFnZW50LCBvcHRzLCBwYWdlSWRlbnRpZmllciwgaXNSZWxheURpc2FibGVkKSwgMCk7CiAg
ICAgICAgIH0pOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1NvY2tldEZhY3RvcnkuaCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXRGYWN0b3J5LmgKaW5kZXgg
N2QwODExNzRmYmZhMTA3OWFhOTI1YTEwODE3MDJmNDBiNTVjYzI2Yi4uYmQxOTljYTcxMWRiMTI2
YjE3YzRiYWFkZDA4NDU4NmQ5MWFlYTViMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1NvY2tldEZhY3RvcnkuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDU29ja2V0RmFjdG9y
eS5oCkBAIC0yOSw2ICsyOSw3IEBACiAKICNpbmNsdWRlICJMaWJXZWJSVENSZXNvbHZlci5oIgog
I2luY2x1ZGUgIkxpYldlYlJUQ1NvY2tldC5oIgorI2luY2x1ZGUgIldlYlBhZ2VQcm94eUlkZW50
aWZpZXIuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0xpYldlYlJUQ01hY3Jvcy5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvTGliV2ViUlRDU29ja2V0SWRlbnRpZmllci5oPgogI2luY2x1ZGUgPHdlYnJ0Yy9y
dGNfYmFzZS9uZXRfaGVscGVycy5oPgpAQCAtNTEsOSArNTIsOSBAQCBwdWJsaWM6CiAgICAgTGli
V2ViUlRDU29ja2V0KiBzb2NrZXQoV2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmllciBp
ZGVudGlmaWVyKSB7IHJldHVybiBtX3NvY2tldHMuZ2V0KGlkZW50aWZpZXIpOyB9CiAKICAgICB2
b2lkIGZvclNvY2tldEluR3JvdXAoY29uc3Qgdm9pZCogc29ja2V0R3JvdXAsIGNvbnN0IEZ1bmN0
aW9uPHZvaWQoTGliV2ViUlRDU29ja2V0Jik+Jik7Ci0gICAgcnRjOjpBc3luY1BhY2tldFNvY2tl
dCogY3JlYXRlVWRwU29ja2V0KGNvbnN0IHZvaWQqIHNvY2tldEdyb3VwLCBjb25zdCBydGM6OlNv
Y2tldEFkZHJlc3MmLCB1aW50MTZfdCBtaW5Qb3J0LCB1aW50MTZfdCBtYXhQb3J0LCBib29sIGlz
Rmlyc3RQYXJ0eSwgYm9vbCBpc1JlbGF5RGlzYWJsZWQsIGNvbnN0IFdlYkNvcmU6OlJlZ2lzdHJh
YmxlRG9tYWluJik7CisgICAgcnRjOjpBc3luY1BhY2tldFNvY2tldCogY3JlYXRlVWRwU29ja2V0
KGNvbnN0IHZvaWQqIHNvY2tldEdyb3VwLCBjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmLCB1aW50
MTZfdCBtaW5Qb3J0LCB1aW50MTZfdCBtYXhQb3J0LCBXZWJQYWdlUHJveHlJZGVudGlmaWVyLCBi
b29sIGlzRmlyc3RQYXJ0eSwgYm9vbCBpc1JlbGF5RGlzYWJsZWQsIGNvbnN0IFdlYkNvcmU6OlJl
Z2lzdHJhYmxlRG9tYWluJik7CiAgICAgcnRjOjpBc3luY1BhY2tldFNvY2tldCogY3JlYXRlU2Vy
dmVyVGNwU29ja2V0KGNvbnN0IHZvaWQqIHNvY2tldEdyb3VwLCBjb25zdCBydGM6OlNvY2tldEFk
ZHJlc3MmLCB1aW50MTZfdCBtaW5Qb3J0LCB1aW50MTZfdCBtYXhQb3J0LCBpbnQgb3B0aW9ucyk7
Ci0gICAgcnRjOjpBc3luY1BhY2tldFNvY2tldCogY3JlYXRlQ2xpZW50VGNwU29ja2V0KGNvbnN0
IHZvaWQqIHNvY2tldEdyb3VwLCBjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmIGxvY2FsQWRkcmVz
cywgY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiByZW1vdGVBZGRyZXNzLCBTdHJpbmcmJiB1c2Vy
QWdlbnQsIGNvbnN0IHJ0Yzo6UGFja2V0U29ja2V0VGNwT3B0aW9ucyYsIGJvb2wgaXNSZWxheURp
c2FibGVkKTsKKyAgICBydGM6OkFzeW5jUGFja2V0U29ja2V0KiBjcmVhdGVDbGllbnRUY3BTb2Nr
ZXQoY29uc3Qgdm9pZCogc29ja2V0R3JvdXAsIGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYgbG9j
YWxBZGRyZXNzLCBjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmIHJlbW90ZUFkZHJlc3MsIFN0cmlu
ZyYmIHVzZXJBZ2VudCwgY29uc3QgcnRjOjpQYWNrZXRTb2NrZXRUY3BPcHRpb25zJiwgV2ViUGFn
ZVByb3h5SWRlbnRpZmllciwgYm9vbCBpc1JlbGF5RGlzYWJsZWQpOwogICAgIHJ0Yzo6QXN5bmNQ
YWNrZXRTb2NrZXQqIGNyZWF0ZU5ld0Nvbm5lY3Rpb25Tb2NrZXQoTGliV2ViUlRDU29ja2V0Jiwg
V2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmllciBuZXdDb25uZWN0aW9uU29ja2V0SWRl
bnRpZmllciwgY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJik7CiAKICAgICBMaWJXZWJSVENSZXNv
bHZlciogcmVzb2x2ZXIoTGliV2ViUlRDUmVzb2x2ZXJJZGVudGlmaWVyIGlkZW50aWZpZXIpIHsg
cmV0dXJuIG1fcmVzb2x2ZXJzLmdldChpZGVudGlmaWVyKTsgfQo=
</data>
<flag name="commit-queue"
          id="457349"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>434778</attachid>
            <date>2021-08-02 11:33:05 -0700</date>
            <delta_ts>2021-08-02 16:35:13 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-228649-20210802203303.patch</filename>
            <type>text/plain</type>
            <size>41235</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgwNDgxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGFiYmVhZTQ0YTk1NzJhYzFh
NjkzOThiMTJkZWIxNjRhMzE5N2FhZjcuLjI5ZmNjNDU2YWM1MjhmMTIxY2VkNTBiMGJjMGY3OWQ2
N2Q2ZDVjODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTAgQEAKKzIwMjEtMDgtMDIgIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEF0dHJpYnV0ZSBudyBjb25uZWN0
aW9ucyB0byB0aGUgcGFnZSBidW5kbGUgaWRlbnRpZmllcgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI4NjQ5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
RXJpYyBDYXJsc29uLgorCisgICAgICAgIFNlbmQgcGFnZSBpZGVudGlmaWVyIGZyb20gV2ViUHJv
Y2VzcyB0byBOZXR3b3JrUHJvY2VzcyB3aGVuIGNyZWF0aW5nIGEgV2ViUlRDIHNvY2tldC4KKyAg
ICAgICAgVXNlIHBhZ2UgaWRlbnRpZmllciB0byBnZXQgdGhlIGF0dHJpYnV0ZWQgYnVuZGxlIGlk
ZW50aWZpZXIuCisgICAgICAgIEZvciB0aGF0IHB1cnBvc2UsIHdlIG5lZWQgdG8gaG9wIHRvIG1h
aW4gdGhyZWFkIHRvIGdldCBpdCwgdGhlbiBnbyBiYWNrIHRvIHJ0YyB0aHJlYWQgdG8gY3JlYXRl
IGl0LgorICAgICAgICBXZSBkbyBzbyBieSB1c2luZyBjYWxsT25NYWluUnVuTG9vcEFuZFdhaXQg
d2hlbiBOZXR3b3JrUlRDUHJvdmlkZXIgZG9lcyBub3QgaGF2ZSB0aGUgaW5mb3JtYXRpb24gZm9y
IHRoZSBwcm92aWRlZCBwYWdlIGlkZW50aWZpZXIuCisgICAgICAgIFdlIHRoZW4gbWFrZSB1c2Ug
b2YgbndfcGFyYW1ldGVyc19zZXRfc291cmNlX2FwcGxpY2F0aW9uX2J5X2J1bmRsZV9pZCB0byBz
ZXQgdGhlIGJ1bmRsZSBpZGVudGlmaWVyIG9uIFRDUCBhbmQgVURQIGNvbm5lY3Rpb25zLgorCisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uY3BwOgorICAgICAgICAoV2Vi
S2l0OjpOZXR3b3JrU2Vzc2lvbjo6YXR0cmlidXRlZEJ1bmRsZUlkZW50aWZpZXJGcm9tUGFnZUlk
ZW50aWZpZXIgY29uc3QpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9u
Lmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5t
bToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Nlc3Npb25Db2NvYTo6YWRkV2ViUGFnZU5ldHdv
cmtQYXJhbWV0ZXJzKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Nlc3Npb25Db2NvYTo6cmVt
b3ZlV2ViUGFnZU5ldHdvcmtQYXJhbWV0ZXJzKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy93
ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1JU
Q1Byb3ZpZGVyOjphdHRyaWJ1dGVkQnVuZGxlSWRlbnRpZmllckZyb21QYWdlSWRlbnRpZmllcik6
CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSVENQcm92aWRlcjo6Y3JlYXRlVURQU29ja2V0KToK
KyAgICAgICAgKFdlYktpdDo6TmV0d29ya1JUQ1Byb3ZpZGVyOjpjcmVhdGVDbGllbnRUQ1BTb2Nr
ZXQpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIu
aDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVyLm1l
c3NhZ2VzLmluOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDVENQ
U29ja2V0Q29jb2EuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JU
Q1RDUFNvY2tldENvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUlRDVENQU29ja2V0
Q29jb2E6OmNyZWF0ZUNsaWVudFRDUFNvY2tldCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtS
VENUQ1BTb2NrZXRDb2NvYTo6TmV0d29ya1JUQ1RDUFNvY2tldENvY29hKToKKyAgICAgICAgKiBO
ZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1VEUFNvY2tldENvY29hLmg6CisgICAgICAg
ICogTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENVRFBTb2NrZXRDb2NvYS5tbToKKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya1JUQ1VEUFNvY2tldENvY29hQ29ubmVjdGlvbnM6OmNyZWF0
ZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSVENVRFBTb2NrZXRDb2NvYTo6Y3JlYXRlVURQ
U29ja2V0KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1JUQ1VEUFNvY2tldENvY29hOjpOZXR3
b3JrUlRDVURQU29ja2V0Q29jb2EpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUlRDVURQU29j
a2V0Q29jb2FDb25uZWN0aW9uczo6TmV0d29ya1JUQ1VEUFNvY2tldENvY29hQ29ubmVjdGlvbnMp
OgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUlRDVURQU29ja2V0Q29jb2FDb25uZWN0aW9uczo6
Y29uZmlndXJlUGFyYW1ldGVycyk6CisgICAgICAgICogUGxhdGZvcm0vc3BpL0NvY29hL05XUGFy
YW1ldGVyc1NQSS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2Vi
UlRDUHJvdmlkZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpSVENTb2NrZXRGYWN0b3J5OjpSVENT
b2NrZXRGYWN0b3J5KToKKyAgICAgICAgKFdlYktpdDo6UlRDU29ja2V0RmFjdG9yeTo6Q3JlYXRl
VWRwU29ja2V0KToKKyAgICAgICAgKFdlYktpdDo6UlRDU29ja2V0RmFjdG9yeTo6Q3JlYXRlQ2xp
ZW50VGNwU29ja2V0KToKKyAgICAgICAgKFdlYktpdDo6TGliV2ViUlRDUHJvdmlkZXI6OmNyZWF0
ZVNvY2tldEZhY3RvcnkpOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGli
V2ViUlRDU29ja2V0RmFjdG9yeS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkxpYldlYlJUQ1NvY2tl
dEZhY3Rvcnk6OmNyZWF0ZVVkcFNvY2tldCk6CisgICAgICAgIChXZWJLaXQ6OkxpYldlYlJUQ1Nv
Y2tldEZhY3Rvcnk6OmNyZWF0ZUNsaWVudFRjcFNvY2tldCk6CisgICAgICAgICogV2ViUHJvY2Vz
cy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXRGYWN0b3J5Lmg6CisKIDIwMjEtMDgtMDEg
IFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIEludHJvZHVjZSBh
biBleHBlcmltZW50YWwgZmVhdHVyZSB0byB0b2dnbGUgV2ViUlRDIHNvY2tldCBwcm94eWluZwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5j
cHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNwcAppbmRl
eCA1ZDliOWJmMjI2NDMxMjcwZmYwNjE2NjA4ZGZiMTU1ZThjMTZlM2JjLi5hYzBjOWE2NjYwYTkw
ZWYxMDlmNjA4MzkwYTBlMmMzMDNkYzNkYzlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNwcApAQCAtNDA2LDQgKzQwNiw5IEBAIE5ldHdvcmtM
b2FkU2NoZWR1bGVyJiBOZXR3b3JrU2Vzc2lvbjo6bmV0d29ya0xvYWRTY2hlZHVsZXIoKQogICAg
IHJldHVybiAqbV9uZXR3b3JrTG9hZFNjaGVkdWxlcjsKIH0KIAorU3RyaW5nIE5ldHdvcmtTZXNz
aW9uOjphdHRyaWJ1dGVkQnVuZGxlSWRlbnRpZmllckZyb21QYWdlSWRlbnRpZmllcihXZWJQYWdl
UHJveHlJZGVudGlmaWVyIGlkZW50aWZpZXIpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fYXR0cmli
dXRlZEJ1bmRsZUlkZW50aWZpZXJGcm9tUGFnZUlkZW50aWZpZXJzLmdldChpZGVudGlmaWVyKTsK
K30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtTZXNzaW9uLmgKaW5kZXggMGRjZmIyN2NjMmZhODVkMjRmYjNiNTIwYTc1MTU5
MWVlMzAxMjBlNy4uN2RhOTVlOTcwYmU5NTNjZmJlZWRkYmI3OWQxNDk2NDNlM2EyZTg4YiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uaApAQCAtMTc3
LDYgKzE3Nyw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlV2ViUGFnZU5ldHdv
cmtQYXJhbWV0ZXJzKFdlYlBhZ2VQcm94eUlkZW50aWZpZXIpIHsgfQogICAgIHZpcnR1YWwgc2l6
ZV90IGNvdW50Tm9uRGVmYXVsdFNlc3Npb25TZXRzKCkgY29uc3QgeyByZXR1cm4gMDsgfQogCisg
ICAgU3RyaW5nIGF0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVyRnJvbVBhZ2VJZGVudGlmaWVyKFdl
YlBhZ2VQcm94eUlkZW50aWZpZXIpIGNvbnN0OworCiBwcm90ZWN0ZWQ6CiAgICAgTmV0d29ya1Nl
c3Npb24oTmV0d29ya1Byb2Nlc3MmLCBjb25zdCBOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1l
dGVycyYpOwogCkBAIC0yMjgsNiArMjMwLDcgQEAgcHJvdGVjdGVkOgogI2VuZGlmCiAKICAgICBI
YXNoU2V0PHN0ZDo6dW5pcXVlX3B0cjxQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE5ldHdvcmtMb2Fk
ZXI+PiBtX3ByaXZhdGVDbGlja01lYXN1cmVtZW50TmV0d29ya0xvYWRlcnM7CisgICAgSGFzaE1h
cDxXZWJQYWdlUHJveHlJZGVudGlmaWVyLCBTdHJpbmc+IG1fYXR0cmlidXRlZEJ1bmRsZUlkZW50
aWZpZXJGcm9tUGFnZUlkZW50aWZpZXJzOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNz
aW9uQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtT
ZXNzaW9uQ29jb2EubW0KaW5kZXggYzgzN2VlNWFlZWU4NmY2NDhhM2M3NjYzODdlMjU4OGU0OWVh
ZjgyMi4uYTQzODFkMGYxOWIwMjVhZTZjMGRhZTFmZTJiOWRkNzZkMTIwNmEyMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29h
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Np
b25Db2NvYS5tbQpAQCAtMTc2MCwxMSArMTc2MCwxNCBAQCB2b2lkIE5ldHdvcmtTZXNzaW9uQ29j
b2E6OmFkZFdlYlBhZ2VOZXR3b3JrUGFyYW1ldGVycyhXZWJQYWdlUHJveHlJZGVudGlmaWVyIHBh
ZwogI2VuZGlmCiAgICAgaW5pdGlhbGl6ZU5TVVJMU2Vzc2lvbnNJblNldChhZGRSZXN1bHQyLml0
ZXJhdG9yLT52YWx1ZS5nZXQoKSwgY29uZmlndXJhdGlvbi5nZXQoKSk7CiAgICAgYWRkUmVzdWx0
MS5pdGVyYXRvci0+dmFsdWUgPSBtYWtlV2Vha1B0cihhZGRSZXN1bHQyLml0ZXJhdG9yLT52YWx1
ZS5nZXQoKSk7CisKKyAgICBtX2F0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVyRnJvbVBhZ2VJZGVu
dGlmaWVycy5hZGQocGFnZUlELCBwYXJhbWV0ZXJzLmF0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVy
KCkpOwogfQogCiB2b2lkIE5ldHdvcmtTZXNzaW9uQ29jb2E6OnJlbW92ZVdlYlBhZ2VOZXR3b3Jr
UGFyYW1ldGVycyhXZWJQYWdlUHJveHlJZGVudGlmaWVyIHBhZ2VJRCkKIHsKICAgICBtX3BlclBh
Z2VTZXNzaW9uU2V0cy5yZW1vdmUocGFnZUlEKTsKKyAgICBtX2F0dHJpYnV0ZWRCdW5kbGVJZGVu
dGlmaWVyRnJvbVBhZ2VJZGVudGlmaWVycy5yZW1vdmUocGFnZUlEKTsKIH0KIAogc2l6ZV90IE5l
dHdvcmtTZXNzaW9uQ29jb2E6OmNvdW50Tm9uRGVmYXVsdFNlc3Npb25TZXRzKCkgY29uc3QKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQ
cm92aWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3Jr
UlRDUHJvdmlkZXIuY3BwCmluZGV4IGNhYjU4MjFmYWVkNmE3MWY4YWUwZWZjNDM1ZWY3ZjYyZDZl
ZWEwYjEuLjdhODM3NzI5N2Y0NTdhOGI4NjdhZWQyZWM2YTNiYTIwOWJmM2Q1OTEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRl
ci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JU
Q1Byb3ZpZGVyLmNwcApAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNz
LmgiCiAjaW5jbHVkZSAiTmV0d29ya1JUQ1Byb3ZpZGVyTWVzc2FnZXMuaCIKICNpbmNsdWRlICJO
ZXR3b3JrUlRDUmVzb2x2ZXIuaCIKKyNpbmNsdWRlICJOZXR3b3JrU2Vzc2lvbi5oIgogI2luY2x1
ZGUgIlJUQ1BhY2tldE9wdGlvbnMuaCIKICNpbmNsdWRlICJXZWJSVENSZXNvbHZlck1lc3NhZ2Vz
LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9MaWJXZWJSVENNYWNyb3MuaD4KQEAgLTEyMSw2ICsxMjIs
OSBAQCB2b2lkIE5ldHdvcmtSVENQcm92aWRlcjo6Y2xvc2UoKQogCiAgICAgY2FsbE9uUlRDTmV0
d29ya1RocmVhZChbdGhpc10oKSB7CiAgICAgICAgIG1fc29ja2V0cy5jbGVhcigpOworI2lmIFBM
QVRGT1JNKENPQ09BKQorICAgICAgICBtX2F0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVycy5jbGVh
cigpOworI2VuZGlmCiAgICAgfSk7CiB9CiAKQEAgLTEzNSwxOCArMTM5LDM0IEBAIHZvaWQgTmV0
d29ya1JUQ1Byb3ZpZGVyOjpjcmVhdGVTb2NrZXQoTGliV2ViUlRDU29ja2V0SWRlbnRpZmllciBp
ZGVudGlmaWVyLCBzdGQ6CiAgICAgYWRkU29ja2V0KGlkZW50aWZpZXIsIG1ha2VVbmlxdWU8TGli
V2ViUlRDU29ja2V0Q2xpZW50PihpZGVudGlmaWVyLCAqdGhpcywgV1RGTW92ZShzb2NrZXQpLCB0
eXBlLCBXVEZNb3ZlKGNvbm5lY3Rpb24pKSk7CiB9CiAKLXZvaWQgTmV0d29ya1JUQ1Byb3ZpZGVy
OjpjcmVhdGVVRFBTb2NrZXQoTGliV2ViUlRDU29ja2V0SWRlbnRpZmllciBpZGVudGlmaWVyLCBj
b25zdCBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzJiBhZGRyZXNzLCB1aW50MTZfdCBtaW5Qb3J0
LCB1aW50MTZfdCBtYXhQb3J0LCBib29sIGlzRmlyc3RQYXJ0eSwgYm9vbCBpc1JlbGF5RGlzYWJs
ZWQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiYgZG9tYWluKQorI2lmIFBMQVRGT1JNKENP
Q09BKQorY29uc3QgU3RyaW5nJiBOZXR3b3JrUlRDUHJvdmlkZXI6OmF0dHJpYnV0ZWRCdW5kbGVJ
ZGVudGlmaWVyRnJvbVBhZ2VJZGVudGlmaWVyKFdlYlBhZ2VQcm94eUlkZW50aWZpZXIgcGFnZUlk
ZW50aWZpZXIpCit7CisgICAgcmV0dXJuIG1fYXR0cmlidXRlZEJ1bmRsZUlkZW50aWZpZXJzLmVu
c3VyZShwYWdlSWRlbnRpZmllciwgWyZdKCkgLT4gU3RyaW5nIHsKKyAgICAgICAgU3RyaW5nIHZh
bHVlOworICAgICAgICBjYWxsT25NYWluUnVuTG9vcEFuZFdhaXQoWyZdIHsKKyAgICAgICAgICAg
IGF1dG8qIHNlc3Npb24gPSBtX2Nvbm5lY3Rpb24tPm5ldHdvcmtTZXNzaW9uKCk7CisgICAgICAg
ICAgICBpZiAoc2Vzc2lvbikKKyAgICAgICAgICAgICAgICB2YWx1ZSA9IHNlc3Npb24tPmF0dHJp
YnV0ZWRCdW5kbGVJZGVudGlmaWVyRnJvbVBhZ2VJZGVudGlmaWVyKHBhZ2VJZGVudGlmaWVyKS5p
c29sYXRlZENvcHkoKTsKKyAgICAgICAgfSk7CisgICAgICAgIHJldHVybiB2YWx1ZTsKKyAgICB9
KS5pdGVyYXRvci0+dmFsdWU7Cit9CisjZW5kaWYKKwordm9pZCBOZXR3b3JrUlRDUHJvdmlkZXI6
OmNyZWF0ZVVEUFNvY2tldChMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNv
bnN0IFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MmIGFkZHJlc3MsIHVpbnQxNl90IG1pblBvcnQs
IHVpbnQxNl90IG1heFBvcnQsIFdlYlBhZ2VQcm94eUlkZW50aWZpZXIgcGFnZUlkZW50aWZpZXIs
IGJvb2wgaXNGaXJzdFBhcnR5LCBib29sIGlzUmVsYXlEaXNhYmxlZCwgV2ViQ29yZTo6UmVnaXN0
cmFibGVEb21haW4mJiBkb21haW4pCiB7CisgICAgQVNTRVJUKG1fcnRjTmV0d29ya1RocmVhZC5J
c0N1cnJlbnQoKSk7CisKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBpZiAobV9wbGF0Zm9ybVVE
UFNvY2tldHNFbmFibGVkKSB7Ci0gICAgICAgIGlmIChhdXRvIHNvY2tldCA9IE5ldHdvcmtSVENV
RFBTb2NrZXRDb2NvYTo6Y3JlYXRlVURQU29ja2V0KGlkZW50aWZpZXIsICp0aGlzLCBhZGRyZXNz
LnZhbHVlLCBtaW5Qb3J0LCBtYXhQb3J0LCBtX2lwY0Nvbm5lY3Rpb24uY29weVJlZigpLCBpc0Zp
cnN0UGFydHksIGlzUmVsYXlEaXNhYmxlZCwgV1RGTW92ZShkb21haW4pKSkgeworICAgICAgICBp
ZiAoYXV0byBzb2NrZXQgPSBOZXR3b3JrUlRDVURQU29ja2V0Q29jb2E6OmNyZWF0ZVVEUFNvY2tl
dChpZGVudGlmaWVyLCAqdGhpcywgYWRkcmVzcy52YWx1ZSwgbWluUG9ydCwgbWF4UG9ydCwgbV9p
cGNDb25uZWN0aW9uLmNvcHlSZWYoKSwgU3RyaW5nKGF0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVy
RnJvbVBhZ2VJZGVudGlmaWVyKHBhZ2VJZGVudGlmaWVyKSksIGlzRmlyc3RQYXJ0eSwgaXNSZWxh
eURpc2FibGVkLCBXVEZNb3ZlKGRvbWFpbikpKSB7CiAgICAgICAgICAgICBhZGRTb2NrZXQoaWRl
bnRpZmllciwgV1RGTW92ZShzb2NrZXQpKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAg
fQogICAgIH0KICNlbmRpZgogCi0gICAgQVNTRVJUKG1fcnRjTmV0d29ya1RocmVhZC5Jc0N1cnJl
bnQoKSk7CiAgICAgc3RkOjp1bmlxdWVfcHRyPHJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQ+IHNvY2tl
dChtX3BhY2tldFNvY2tldEZhY3RvcnktPkNyZWF0ZVVkcFNvY2tldChhZGRyZXNzLnZhbHVlLCBt
aW5Qb3J0LCBtYXhQb3J0KSk7CiAgICAgY3JlYXRlU29ja2V0KGlkZW50aWZpZXIsIFdURk1vdmUo
c29ja2V0KSwgU29ja2V0OjpUeXBlOjpVRFAsIG1faXBjQ29ubmVjdGlvbi5jb3B5UmVmKCkpOwog
fQpAQCAtMTc3LDkgKzE5NywyMCBAQCBydGM6OlByb3h5SW5mbyBOZXR3b3JrUlRDUHJvdmlkZXI6
OnByb3h5SW5mb0Zyb21TZXNzaW9uKGNvbnN0IFJUQ05ldHdvcms6OlNvY2tldAogfQogI2VuZGlm
CiAKLXZvaWQgTmV0d29ya1JUQ1Byb3ZpZGVyOjpjcmVhdGVDbGllbnRUQ1BTb2NrZXQoTGliV2Vi
UlRDU29ja2V0SWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBSVENOZXR3b3JrOjpTb2NrZXRB
ZGRyZXNzJiBsb2NhbEFkZHJlc3MsIGNvbnN0IFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MmIHJl
bW90ZUFkZHJlc3MsIFN0cmluZyYmIHVzZXJBZ2VudCwgaW50IG9wdGlvbnMsIGJvb2wgaXNSZWxh
eURpc2FibGVkKQordm9pZCBOZXR3b3JrUlRDUHJvdmlkZXI6OmNyZWF0ZUNsaWVudFRDUFNvY2tl
dChMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IFJUQ05ldHdvcms6
OlNvY2tldEFkZHJlc3MmIGxvY2FsQWRkcmVzcywgY29uc3QgUlRDTmV0d29yazo6U29ja2V0QWRk
cmVzcyYgcmVtb3RlQWRkcmVzcywgU3RyaW5nJiYgdXNlckFnZW50LCBpbnQgb3B0aW9ucywgV2Vi
UGFnZVByb3h5SWRlbnRpZmllciBwYWdlSWRlbnRpZmllciwgYm9vbCBpc1JlbGF5RGlzYWJsZWQp
CiB7Ci0gICAgY2FsbE9uTWFpblJ1bkxvb3AoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVm
KCp0aGlzKSwgaWRlbnRpZmllciwgbG9jYWxBZGRyZXNzLCByZW1vdGVBZGRyZXNzLCB1c2VyQWdl
bnQgPSBXVEZNb3ZlKHVzZXJBZ2VudCkuaXNvbGF0ZWRDb3B5KCksIG9wdGlvbnMsIGlzUmVsYXlE
aXNhYmxlZF0oKSBtdXRhYmxlIHsKKyAgICBBU1NFUlQobV9ydGNOZXR3b3JrVGhyZWFkLklzQ3Vy
cmVudCgpKTsKKworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIGlmIChtX3BsYXRmb3JtVENQU29j
a2V0c0VuYWJsZWQpIHsKKyAgICAgICAgaWYgKGF1dG8gc29ja2V0ID0gTmV0d29ya1JUQ1RDUFNv
Y2tldENvY29hOjpjcmVhdGVDbGllbnRUQ1BTb2NrZXQoaWRlbnRpZmllciwgKnRoaXMsIHJlbW90
ZUFkZHJlc3MudmFsdWUsIG9wdGlvbnMsIGF0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVyRnJvbVBh
Z2VJZGVudGlmaWVyKHBhZ2VJZGVudGlmaWVyKSwgaXNSZWxheURpc2FibGVkLCBtX2lwY0Nvbm5l
Y3Rpb24uY29weVJlZigpKSkgeworICAgICAgICAgICAgYWRkU29ja2V0KGlkZW50aWZpZXIsIFdU
Rk1vdmUoc29ja2V0KSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICB9Cisj
ZW5kaWYKKworICAgIGNhbGxPbk1haW5SdW5Mb29wKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFr
ZVJlZigqdGhpcyksIGlkZW50aWZpZXIsIGxvY2FsQWRkcmVzcywgcmVtb3RlQWRkcmVzcywgdXNl
ckFnZW50ID0gV1RGTW92ZSh1c2VyQWdlbnQpLmlzb2xhdGVkQ29weSgpLCBvcHRpb25zXSgpIG11
dGFibGUgewogICAgICAgICBpZiAoIW1fY29ubmVjdGlvbikKICAgICAgICAgICAgIHJldHVybjsK
IApAQCAtMTg4LDE1ICsyMTksOCBAQCB2b2lkIE5ldHdvcmtSVENQcm92aWRlcjo6Y3JlYXRlQ2xp
ZW50VENQU29ja2V0KExpYldlYlJUQ1NvY2tldElkZW50aWZpZXIgaWRlbnRpZgogICAgICAgICAg
ICAgbV9jb25uZWN0aW9uLT5jb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6TGliV2ViUlRDTmV0
d29yazo6U2lnbmFsQ2xvc2UoaWRlbnRpZmllciwgMSksIDApOwogICAgICAgICAgICAgcmV0dXJu
OwogICAgICAgICB9Ci0gICAgICAgIGNhbGxPblJUQ05ldHdvcmtUaHJlYWQoW3RoaXMsIGlkZW50
aWZpZXIsIGxvY2FsQWRkcmVzcyA9IFJUQ05ldHdvcms6Omlzb2xhdGVkQ29weShsb2NhbEFkZHJl
c3MudmFsdWUpLCByZW1vdGVBZGRyZXNzID0gUlRDTmV0d29yazo6aXNvbGF0ZWRDb3B5KHJlbW90
ZUFkZHJlc3MudmFsdWUpLCBwcm94eUluZm8gPSBwcm94eUluZm9Gcm9tU2Vzc2lvbihyZW1vdGVB
ZGRyZXNzLCAqc2Vzc2lvbiksIHVzZXJBZ2VudCA9IFdURk1vdmUodXNlckFnZW50KS5pc29sYXRl
ZENvcHkoKSwgb3B0aW9ucywgaXNSZWxheURpc2FibGVkXSgpIG11dGFibGUgewotI2lmIFBMQVRG
T1JNKENPQ09BKQotICAgICAgICAgICAgaWYgKG1fcGxhdGZvcm1UQ1BTb2NrZXRzRW5hYmxlZCkg
ewotICAgICAgICAgICAgICAgIGlmIChhdXRvIHNvY2tldCA9IE5ldHdvcmtSVENUQ1BTb2NrZXRD
b2NvYTo6Y3JlYXRlQ2xpZW50VENQU29ja2V0KGlkZW50aWZpZXIsICp0aGlzLCByZW1vdGVBZGRy
ZXNzLCBvcHRpb25zLCBpc1JlbGF5RGlzYWJsZWQsIG1faXBjQ29ubmVjdGlvbi5jb3B5UmVmKCkp
KSB7Ci0gICAgICAgICAgICAgICAgICAgIGFkZFNvY2tldChpZGVudGlmaWVyLCBXVEZNb3ZlKHNv
Y2tldCkpOwotICAgICAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICAgICAgfQot
ICAgICAgICAgICAgfQotI2VuZGlmCisgICAgICAgIGNhbGxPblJUQ05ldHdvcmtUaHJlYWQoW3Ro
aXMsIGlkZW50aWZpZXIsIGxvY2FsQWRkcmVzcyA9IFJUQ05ldHdvcms6Omlzb2xhdGVkQ29weShs
b2NhbEFkZHJlc3MudmFsdWUpLCByZW1vdGVBZGRyZXNzID0gUlRDTmV0d29yazo6aXNvbGF0ZWRD
b3B5KHJlbW90ZUFkZHJlc3MudmFsdWUpLCBwcm94eUluZm8gPSBwcm94eUluZm9Gcm9tU2Vzc2lv
bihyZW1vdGVBZGRyZXNzLCAqc2Vzc2lvbiksIHVzZXJBZ2VudCA9IFdURk1vdmUodXNlckFnZW50
KS5pc29sYXRlZENvcHkoKSwgb3B0aW9uc10oKSBtdXRhYmxlIHsKKwogICAgICAgICAgICAgcnRj
OjpQYWNrZXRTb2NrZXRUY3BPcHRpb25zIHRjcE9wdGlvbnM7CiAgICAgICAgICAgICB0Y3BPcHRp
b25zLm9wdHMgPSBvcHRpb25zOwogICAgICAgICAgICAgc3RkOjp1bmlxdWVfcHRyPHJ0Yzo6QXN5
bmNQYWNrZXRTb2NrZXQ+IHNvY2tldChtX3BhY2tldFNvY2tldEZhY3RvcnktPkNyZWF0ZUNsaWVu
dFRjcFNvY2tldChsb2NhbEFkZHJlc3MsIHJlbW90ZUFkZHJlc3MsIHByb3h5SW5mbywgdXNlckFn
ZW50LnV0ZjgoKS5kYXRhKCksIHRjcE9wdGlvbnMpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlci5oIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVyLmgKaW5kZXggYzlj
Y2VkNjJmYzYyNTlmNTNhZjI0NzVlMGEzNGMwMDMxOWEzODk1YS4uMDRiNWM1YWJhZDYzNzFkNjU2
YWUzZGU0ZDRlNWY0MWZhYjczZjc1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVyLmgKKysrIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVyLmgKQEAgLTMyLDYgKzMyLDcg
QEAKICNpbmNsdWRlICJMaWJXZWJSVENSZXNvbHZlcklkZW50aWZpZXIuaCIKICNpbmNsdWRlICJO
ZXR3b3JrUlRDTW9uaXRvci5oIgogI2luY2x1ZGUgIlJUQ05ldHdvcmsuaCIKKyNpbmNsdWRlICJX
ZWJQYWdlUHJveHlJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9MaWJXZWJSVENNYWNy
b3MuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0xpYldlYlJUQ1NvY2tldElkZW50aWZpZXIuaD4KICNp
bmNsdWRlIDx3ZWJydGMvcDJwL2Jhc2UvYmFzaWNfcGFja2V0X3NvY2tldF9mYWN0b3J5Lmg+CkBA
IC0xMTMsOCArMTE0LDggQEAgcHJpdmF0ZToKICAgICBleHBsaWNpdCBOZXR3b3JrUlRDUHJvdmlk
ZXIoTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmKTsKICAgICB2b2lkIHN0YXJ0TGlzdGVu
aW5nRm9ySVBDKCk7CiAKLSAgICB2b2lkIGNyZWF0ZVVEUFNvY2tldChXZWJDb3JlOjpMaWJXZWJS
VENTb2NrZXRJZGVudGlmaWVyLCBjb25zdCBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzJiwgdWlu
dDE2X3QsIHVpbnQxNl90LCBib29sIGlzRmlyc3RQYXJ0eSwgYm9vbCBpc1JlbGF5RGlzYWJsZWQs
IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiYpOwotICAgIHZvaWQgY3JlYXRlQ2xpZW50VENQ
U29ja2V0KFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50aWZpZXIsIGNvbnN0IFJUQ05ldHdv
cms6OlNvY2tldEFkZHJlc3MmLCBjb25zdCBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzJiwgU3Ry
aW5nJiYgdXNlckFnZW50LCBpbnQsIGJvb2wgaXNSZWxheURpc2FibGVkKTsKKyAgICB2b2lkIGNy
ZWF0ZVVEUFNvY2tldChXZWJDb3JlOjpMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyLCBjb25zdCBS
VENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzJiwgdWludDE2X3QsIHVpbnQxNl90LCBXZWJQYWdlUHJv
eHlJZGVudGlmaWVyLCBib29sIGlzRmlyc3RQYXJ0eSwgYm9vbCBpc1JlbGF5RGlzYWJsZWQsIFdl
YkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiYpOworICAgIHZvaWQgY3JlYXRlQ2xpZW50VENQU29j
a2V0KFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50aWZpZXIsIGNvbnN0IFJUQ05ldHdvcms6
OlNvY2tldEFkZHJlc3MmLCBjb25zdCBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzJiwgU3RyaW5n
JiYgdXNlckFnZW50LCBpbnQsIFdlYlBhZ2VQcm94eUlkZW50aWZpZXIsIGJvb2wgaXNSZWxheURp
c2FibGVkKTsKICAgICB2b2lkIGNyZWF0ZVNlcnZlclRDUFNvY2tldChXZWJDb3JlOjpMaWJXZWJS
VENTb2NrZXRJZGVudGlmaWVyLCBjb25zdCBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzJiwgdWlu
dDE2X3QgbWluUG9ydCwgdWludDE2X3QgbWF4UG9ydCwgaW50KTsKICAgICB2b2lkIHdyYXBOZXdU
Q1BDb25uZWN0aW9uKFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50aWZpZXIgaWRlbnRpZmll
ciwgV2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmllciBuZXdDb25uZWN0aW9uU29ja2V0
SWRlbnRpZmllcik7CiAgICAgdm9pZCBzZW5kVG9Tb2NrZXQoV2ViQ29yZTo6TGliV2ViUlRDU29j
a2V0SWRlbnRpZmllciwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiwgUlRDTmV0d29yazo6U29j
a2V0QWRkcmVzcyYmLCBSVENQYWNrZXRPcHRpb25zJiYpOwpAQCAtMTM2LDYgKzEzNywxMCBAQCBw
cml2YXRlOgogCiAgICAgc3RhdGljIHJ0Yzo6UHJveHlJbmZvIHByb3h5SW5mb0Zyb21TZXNzaW9u
KGNvbnN0IFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MmLCBOZXR3b3JrU2Vzc2lvbiYpOwogCisj
aWYgUExBVEZPUk0oQ09DT0EpCisgICAgY29uc3QgU3RyaW5nJiBhdHRyaWJ1dGVkQnVuZGxlSWRl
bnRpZmllckZyb21QYWdlSWRlbnRpZmllcihXZWJQYWdlUHJveHlJZGVudGlmaWVyKTsKKyNlbmRp
ZgorCiAgICAgSGFzaE1hcDxMaWJXZWJSVENSZXNvbHZlcklkZW50aWZpZXIsIHN0ZDo6dW5pcXVl
X3B0cjxOZXR3b3JrUlRDUmVzb2x2ZXI+PiBtX3Jlc29sdmVyczsKICAgICBIYXNoTWFwPFdlYkNv
cmU6OkxpYldlYlJUQ1NvY2tldElkZW50aWZpZXIsIHN0ZDo6dW5pcXVlX3B0cjxTb2NrZXQ+PiBt
X3NvY2tldHM7CiAgICAgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MqIG1fY29ubmVjdGlv
bjsKQEAgLTE1Myw2ICsxNTgsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9wbGF0Zm9ybVVEUFNv
Y2tldHNFbmFibGVkIHsgZmFsc2UgfTsKIAogI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIEhhc2hN
YXA8V2ViUGFnZVByb3h5SWRlbnRpZmllciwgU3RyaW5nPiBtX2F0dHJpYnV0ZWRCdW5kbGVJZGVu
dGlmaWVyczsKICAgICBzdGQ6Om9wdGlvbmFsPGF1ZGl0X3Rva2VuX3Q+IG1fc291cmNlQXBwbGlj
YXRpb25BdWRpdFRva2VuOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlci5tZXNzYWdlcy5pbiBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlci5tZXNzYWdl
cy5pbgppbmRleCA3ZjdkNzllYzUxNmE4Y2VjYWMyYmJkODk4ODFlZDFiZGEzMmJjZDQzLi5jMmQ4
YjI5YmRmYTdiZjEzMWI5MmJjYThmZmE4MjZiNGVkNDlmMzNlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIubWVzc2FnZXMu
aW4KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1By
b3ZpZGVyLm1lc3NhZ2VzLmluCkBAIC0yMyw5ICsyMyw5IEBACiAjaWYgVVNFKExJQldFQlJUQykK
IAogbWVzc2FnZXMgLT4gTmV0d29ya1JUQ1Byb3ZpZGVyIHsKLSAgICBDcmVhdGVVRFBTb2NrZXQo
V2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJLaXQ6OlJU
Q05ldHdvcms6OlNvY2tldEFkZHJlc3MgbG9jYWxBZGRyZXNzLCB1aW50MTZfdCBtaW5Qb3J0LCB1
aW50MTZfdCBtYXhQb3J0LCBib29sIGlzRmlyc3RQYXJ0eSwgYm9vbCBpc1JlbGF5RGlzYWJsZWQs
IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIGRvbWFpbikKKyAgICBDcmVhdGVVRFBTb2NrZXQo
V2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJLaXQ6OlJU
Q05ldHdvcms6OlNvY2tldEFkZHJlc3MgbG9jYWxBZGRyZXNzLCB1aW50MTZfdCBtaW5Qb3J0LCB1
aW50MTZfdCBtYXhQb3J0LCBXZWJLaXQ6OldlYlBhZ2VQcm94eUlkZW50aWZpZXIgcGFnZUlkZW50
aWZpZXIsIGJvb2wgaXNGaXJzdFBhcnR5LCBib29sIGlzUmVsYXlEaXNhYmxlZCwgV2ViQ29yZTo6
UmVnaXN0cmFibGVEb21haW4gZG9tYWluKQogICAgIENyZWF0ZVNlcnZlclRDUFNvY2tldChXZWJD
b3JlOjpMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYktpdDo6UlRDTmV0
d29yazo6U29ja2V0QWRkcmVzcyBsb2NhbEFkZHJlc3MsIHVpbnQxNl90IG1pblBvcnQsIHVpbnQx
Nl90IG1heFBvcnQsIGludCBvcHRpb25zKQotICAgIENyZWF0ZUNsaWVudFRDUFNvY2tldChXZWJD
b3JlOjpMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYktpdDo6UlRDTmV0
d29yazo6U29ja2V0QWRkcmVzcyBsb2NhbEFkZHJlc3MsIFdlYktpdDo6UlRDTmV0d29yazo6U29j
a2V0QWRkcmVzcyByZW1vdGVBZGRyZXNzLCBTdHJpbmcgdXNlckFnZW50LCBpbnQgb3B0aW9ucywg
Ym9vbCBpc1JlbGF5RGlzYWJsZWQpCisgICAgQ3JlYXRlQ2xpZW50VENQU29ja2V0KFdlYkNvcmU6
OkxpYldlYlJUQ1NvY2tldElkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViS2l0OjpSVENOZXR3b3Jr
OjpTb2NrZXRBZGRyZXNzIGxvY2FsQWRkcmVzcywgV2ViS2l0OjpSVENOZXR3b3JrOjpTb2NrZXRB
ZGRyZXNzIHJlbW90ZUFkZHJlc3MsIFN0cmluZyB1c2VyQWdlbnQsIGludCBvcHRpb25zLCBXZWJL
aXQ6OldlYlBhZ2VQcm94eUlkZW50aWZpZXIgcGFnZUlkZW50aWZpZXIsIGJvb2wgaXNSZWxheURp
c2FibGVkKQogICAgIFdyYXBOZXdUQ1BDb25uZWN0aW9uKFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tl
dElkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmll
ciBuZXdDb25uZWN0aW9uU29ja2V0SWRlbnRpZmllcikKIAogICAgIHZvaWQgU2V0UGxhdGZvcm1U
Q1BTb2NrZXRzRW5hYmxlZChib29sIGVuYWJsZWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDVENQU29ja2V0Q29jb2EuaCBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENUQ1BTb2NrZXRDb2NvYS5o
CmluZGV4IGY0MTI1ZDNjYjA4ZmVjZjkyNjM2MzM4N2I5Y2EwMDM0M2Q4MmRhMmUuLjJlMjkxZTEw
NWIxOWRiMzVjY2ZiMDBmMzdjZWRmOTVjZDJkOTk4ODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENUQ1BTb2NrZXRDb2NvYS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENUQ1BTb2NrZXRD
b2NvYS5oCkBAIC0zOSw5ICszOSw5IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogY2xhc3MgTmV0d29y
a1JUQ1RDUFNvY2tldENvY29hIGZpbmFsIDogcHVibGljIE5ldHdvcmtSVENQcm92aWRlcjo6U29j
a2V0IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBzdGF0aWMg
c3RkOjp1bmlxdWVfcHRyPE5ldHdvcmtSVENQcm92aWRlcjo6U29ja2V0PiBjcmVhdGVDbGllbnRU
Q1BTb2NrZXQoV2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmllciwgTmV0d29ya1JUQ1By
b3ZpZGVyJiwgY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiwgaW50IG9wdGlvbnMsIGJvb2wgaXNS
ZWxheURpc2FibGVkLCBSZWY8SVBDOjpDb25uZWN0aW9uPiYmKTsKKyAgICBzdGF0aWMgc3RkOjp1
bmlxdWVfcHRyPE5ldHdvcmtSVENQcm92aWRlcjo6U29ja2V0PiBjcmVhdGVDbGllbnRUQ1BTb2Nr
ZXQoV2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmllciwgTmV0d29ya1JUQ1Byb3ZpZGVy
JiwgY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiwgaW50IG9wdGlvbnMsIGNvbnN0IFN0cmluZyYg
YXR0cmlidXRlZEJ1bmRsZUlkZW50aWZpZXIsIGJvb2wgaXNSZWxheURpc2FibGVkLCBSZWY8SVBD
OjpDb25uZWN0aW9uPiYmKTsKIAotICAgIE5ldHdvcmtSVENUQ1BTb2NrZXRDb2NvYShXZWJDb3Jl
OjpMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyLCBOZXR3b3JrUlRDUHJvdmlkZXImLCBjb25zdCBy
dGM6OlNvY2tldEFkZHJlc3MmLCBpbnQgb3B0aW9ucywgYm9vbCBpc1JlbGF5RGlzYWJsZWQsIFJl
ZjxJUEM6OkNvbm5lY3Rpb24+JiYpOworICAgIE5ldHdvcmtSVENUQ1BTb2NrZXRDb2NvYShXZWJD
b3JlOjpMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyLCBOZXR3b3JrUlRDUHJvdmlkZXImLCBjb25z
dCBydGM6OlNvY2tldEFkZHJlc3MmLCBpbnQgb3B0aW9ucywgY29uc3QgU3RyaW5nJiBhdHRyaWJ1
dGVkQnVuZGxlSWRlbnRpZmllciwgYm9vbCBpc1JlbGF5RGlzYWJsZWQsIFJlZjxJUEM6OkNvbm5l
Y3Rpb24+JiYpOwogCiBwcml2YXRlOgogICAgIC8vIE5ldHdvcmtSVENQcm92aWRlcjo6U29ja2V0
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29y
a1JUQ1RDUFNvY2tldENvY29hLm1tIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJy
dGMvTmV0d29ya1JUQ1RDUFNvY2tldENvY29hLm1tCmluZGV4IDNmYmQwZTBiMmFmMGEyZmFhZDVl
MDI0NjJiYTdjMjgyOTU3MDY2NjQuLmFlNmI3NzI3MGQxYWE3YmZlNzM3OTUzMzM0OTgyZDdjYTEz
NmYwMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05l
dHdvcmtSVENUQ1BTb2NrZXRDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDVENQU29ja2V0Q29jb2EubW0KQEAgLTUwLDEyICs1MCwxMiBA
QCBzdGF0aWMgZGlzcGF0Y2hfcXVldWVfdCB0Y3BTb2NrZXRRdWV1ZSgpCiAgICAgcmV0dXJuIHF1
ZXVlOwogfQogCi1zdGQ6OnVuaXF1ZV9wdHI8TmV0d29ya1JUQ1Byb3ZpZGVyOjpTb2NrZXQ+IE5l
dHdvcmtSVENUQ1BTb2NrZXRDb2NvYTo6Y3JlYXRlQ2xpZW50VENQU29ja2V0KExpYldlYlJUQ1Nv
Y2tldElkZW50aWZpZXIgaWRlbnRpZmllciwgTmV0d29ya1JUQ1Byb3ZpZGVyJiBydGNQcm92aWRl
ciwgY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiByZW1vdGVBZGRyZXNzLCBpbnQgdGNwT3B0aW9u
cywgYm9vbCBpc1JlbGF5RGlzYWJsZWQsIFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYgY29ubmVjdGlv
bikKK3N0ZDo6dW5pcXVlX3B0cjxOZXR3b3JrUlRDUHJvdmlkZXI6OlNvY2tldD4gTmV0d29ya1JU
Q1RDUFNvY2tldENvY29hOjpjcmVhdGVDbGllbnRUQ1BTb2NrZXQoTGliV2ViUlRDU29ja2V0SWRl
bnRpZmllciBpZGVudGlmaWVyLCBOZXR3b3JrUlRDUHJvdmlkZXImIHJ0Y1Byb3ZpZGVyLCBjb25z
dCBydGM6OlNvY2tldEFkZHJlc3MmIHJlbW90ZUFkZHJlc3MsIGludCB0Y3BPcHRpb25zLCBjb25z
dCBTdHJpbmcmIGF0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVyLCBib29sIGlzUmVsYXlEaXNhYmxl
ZCwgUmVmPElQQzo6Q29ubmVjdGlvbj4mJiBjb25uZWN0aW9uKQogewogICAgIC8vIEZJWE1FOiBX
ZSBzaG91bGQgbWlncmF0ZSBzc2x0Y3AgY2FuZGlkYXRlcywgbWF5YmUgc3VwcG9ydCBPUFRfVExT
X0lOU0VDVVJFIGFzIHdlbGwuCiAgICAgaWYgKCh0Y3BPcHRpb25zICYgcnRjOjpQYWNrZXRTb2Nr
ZXRGYWN0b3J5OjpPUFRfVExTX0ZBS0UpIHx8ICh0Y3BPcHRpb25zICYgcnRjOjpQYWNrZXRTb2Nr
ZXRGYWN0b3J5OjpPUFRfVExTX0lOU0VDVVJFKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0g
ICAgcmV0dXJuIG1ha2VVbmlxdWU8TmV0d29ya1JUQ1RDUFNvY2tldENvY29hPihpZGVudGlmaWVy
LCBydGNQcm92aWRlciwgcmVtb3RlQWRkcmVzcywgdGNwT3B0aW9ucywgaXNSZWxheURpc2FibGVk
LCBXVEZNb3ZlKGNvbm5lY3Rpb24pKTsKKyAgICByZXR1cm4gbWFrZVVuaXF1ZTxOZXR3b3JrUlRD
VENQU29ja2V0Q29jb2E+KGlkZW50aWZpZXIsIHJ0Y1Byb3ZpZGVyLCByZW1vdGVBZGRyZXNzLCB0
Y3BPcHRpb25zLCBhdHRyaWJ1dGVkQnVuZGxlSWRlbnRpZmllciwgaXNSZWxheURpc2FibGVkLCBX
VEZNb3ZlKGNvbm5lY3Rpb24pKTsKIH0KIAogc3RhdGljIGlubGluZSB2b2lkIHByb2Nlc3NJbmNv
bWluZ0RhdGEoUmV0YWluUHRyPG53X2Nvbm5lY3Rpb25fdD4mJiBud0Nvbm5lY3Rpb24sIEZ1bmN0
aW9uPFZlY3Rvcjx1aW50OF90PihWZWN0b3I8dWludDhfdD4mJik+JiYgcHJvY2Vzc0RhdGEsIFZl
Y3Rvcjx1aW50OF90PiYmIGJ1ZmZlciA9IHsgfSkKQEAgLTgwLDcgKzgwLDcgQEAgc3RhdGljIGlu
bGluZSB2b2lkIHByb2Nlc3NJbmNvbWluZ0RhdGEoUmV0YWluUHRyPG53X2Nvbm5lY3Rpb25fdD4m
JiBud0Nvbm5lY3Rpb24KICAgICB9KS5nZXQoKSk7CiB9CiAKLU5ldHdvcmtSVENUQ1BTb2NrZXRD
b2NvYTo6TmV0d29ya1JUQ1RDUFNvY2tldENvY29hKExpYldlYlJUQ1NvY2tldElkZW50aWZpZXIg
aWRlbnRpZmllciwgTmV0d29ya1JUQ1Byb3ZpZGVyJiBydGNQcm92aWRlciwgY29uc3QgcnRjOjpT
b2NrZXRBZGRyZXNzJiByZW1vdGVBZGRyZXNzLCBpbnQgb3B0aW9ucywgYm9vbCBpc1JlbGF5RGlz
YWJsZWQsIFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYgY29ubmVjdGlvbikKK05ldHdvcmtSVENUQ1BT
b2NrZXRDb2NvYTo6TmV0d29ya1JUQ1RDUFNvY2tldENvY29hKExpYldlYlJUQ1NvY2tldElkZW50
aWZpZXIgaWRlbnRpZmllciwgTmV0d29ya1JUQ1Byb3ZpZGVyJiBydGNQcm92aWRlciwgY29uc3Qg
cnRjOjpTb2NrZXRBZGRyZXNzJiByZW1vdGVBZGRyZXNzLCBpbnQgb3B0aW9ucywgY29uc3QgU3Ry
aW5nJiBhdHRyaWJ1dGVkQnVuZGxlSWRlbnRpZmllciwgYm9vbCBpc1JlbGF5RGlzYWJsZWQsIFJl
ZjxJUEM6OkNvbm5lY3Rpb24+JiYgY29ubmVjdGlvbikKICAgICA6IG1faWRlbnRpZmllcihpZGVu
dGlmaWVyKQogICAgICwgbV9ydGNQcm92aWRlcihydGNQcm92aWRlcikKICAgICAsIG1fY29ubmVj
dGlvbihXVEZNb3ZlKGNvbm5lY3Rpb24pKQpAQCAtOTgsNiArOTgsOCBAQCBOZXR3b3JrUlRDVENQ
U29ja2V0Q29jb2E6Ok5ldHdvcmtSVENUQ1BTb2NrZXRDb2NvYShMaWJXZWJSVENTb2NrZXRJZGVu
dGlmaWVyIGlkZQogCiAgICAgaWYgKGF1dG8gdG9rZW4gPSBydGNQcm92aWRlci5zb3VyY2VBcHBs
aWNhdGlvbkF1ZGl0VG9rZW4oKSkKICAgICAgICAgbndfcGFyYW1ldGVyc19zZXRfc291cmNlX2Fw
cGxpY2F0aW9uKHRjcFRMUy5nZXQoKSwgKnRva2VuKTsKKyAgICBpZiAoIWF0dHJpYnV0ZWRCdW5k
bGVJZGVudGlmaWVyLmlzRW1wdHkoKSkKKyAgICAgICAgbndfcGFyYW1ldGVyc19zZXRfc291cmNl
X2FwcGxpY2F0aW9uX2J5X2J1bmRsZV9pZCh0Y3BUTFMuZ2V0KCksIGF0dHJpYnV0ZWRCdW5kbGVJ
ZGVudGlmaWVyLnV0ZjgoKS5kYXRhKCkpOwogICAgIGlmIChpc1JlbGF5RGlzYWJsZWQpCiAgICAg
ICAgIG53X3BhcmFtZXRlcnNfc2V0X2FjY291bnRfaWQodGNwVExTLmdldCgpLCAiY29tLmFwcGxl
LnNhZmFyaS5wZWVydG9wZWVyIik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENVRFBTb2NrZXRDb2NvYS5oIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1VEUFNvY2tldENvY29hLmgKaW5kZXgg
Y2I5YzE5NWRlMWIyNmE2NjQ0YjE3MTRkMGZhNmVlMzNjNWEyNDIyOS4uNWQ2NWNkMWQwOWUyNjM5
NjY0NDNkZGNmNDQ1YTY4NDgwNDc2MWI4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1VEUFNvY2tldENvY29hLmgKKysrIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1VEUFNvY2tldENvY29hLmgK
QEAgLTYwLDkgKzYwLDkgQEAgY2xhc3MgTmV0d29ya1JUQ1VEUFNvY2tldENvY29hQ29ubmVjdGlv
bnM7CiBjbGFzcyBOZXR3b3JrUlRDVURQU29ja2V0Q29jb2EgZmluYWwgOiBwdWJsaWMgTmV0d29y
a1JUQ1Byb3ZpZGVyOjpTb2NrZXQgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVi
bGljOgotICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8TmV0d29ya1JUQ1Byb3ZpZGVyOjpTb2Nr
ZXQ+IGNyZWF0ZVVEUFNvY2tldChXZWJDb3JlOjpMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyLCBO
ZXR3b3JrUlRDUHJvdmlkZXImLCBjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmLCB1aW50MTZfdCBt
aW5Qb3J0LCB1aW50MTZfdCBtYXhQb3J0LCBSZWY8SVBDOjpDb25uZWN0aW9uPiYmLCBib29sIGlz
Rmlyc3RQYXJ0eSwgYm9vbCBpc1JlbGF5RGlzYWJsZWQsIGNvbnN0IFdlYkNvcmU6OlJlZ2lzdHJh
YmxlRG9tYWluJik7CisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxOZXR3b3JrUlRDUHJvdmlk
ZXI6OlNvY2tldD4gY3JlYXRlVURQU29ja2V0KFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50
aWZpZXIsIE5ldHdvcmtSVENQcm92aWRlciYsIGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYsIHVp
bnQxNl90IG1pblBvcnQsIHVpbnQxNl90IG1heFBvcnQsIFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYs
IFN0cmluZyYmIGF0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVyLCBib29sIGlzRmlyc3RQYXJ0eSwg
Ym9vbCBpc1JlbGF5RGlzYWJsZWQsIGNvbnN0IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJik7
CiAKLSAgICBOZXR3b3JrUlRDVURQU29ja2V0Q29jb2EoV2ViQ29yZTo6TGliV2ViUlRDU29ja2V0
SWRlbnRpZmllciwgTmV0d29ya1JUQ1Byb3ZpZGVyJiwgY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNz
JiwgUmVmPElQQzo6Q29ubmVjdGlvbj4mJiwgYm9vbCBpc0ZpcnN0UGFydHksIGJvb2wgaXNSZWxh
eURpc2FibGVkLCBjb25zdCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYpOworICAgIE5ldHdv
cmtSVENVRFBTb2NrZXRDb2NvYShXZWJDb3JlOjpMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyLCBO
ZXR3b3JrUlRDUHJvdmlkZXImLCBjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmLCBSZWY8SVBDOjpD
b25uZWN0aW9uPiYmLCBTdHJpbmcmJiBhdHRyaWJ1dGVkQnVuZGxlSWRlbnRpZmllciwgYm9vbCBp
c0ZpcnN0UGFydHksIGJvb2wgaXNSZWxheURpc2FibGVkLCBjb25zdCBXZWJDb3JlOjpSZWdpc3Ry
YWJsZURvbWFpbiYpOwogICAgIH5OZXR3b3JrUlRDVURQU29ja2V0Q29jb2EoKTsKIAogICAgIHZv
aWQgc2V0TGlzdGVuaW5nUG9ydChpbnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1VEUFNvY2tldENvY29hLm1tIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1VEUFNvY2tldENvY29hLm1tCmlu
ZGV4IGQ0NTY2NDU4Y2I1MjMzMDc4NWUxNGRkZDIxZjQ3NzE4NmIxMDgxYTUuLjBiNTZiZjRlNzA1
NmI0ZTBjZGM2MzIzZWVmNDNmYTVjYmQ3MGIxZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENVRFBTb2NrZXRDb2NvYS5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDVURQU29ja2V0Q29j
b2EubW0KQEAgLTU2LDcgKzU2LDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIGNsYXNz
IE5ldHdvcmtSVENVRFBTb2NrZXRDb2NvYUNvbm5lY3Rpb25zIDogcHVibGljIFRocmVhZFNhZmVS
ZWZDb3VudGVkPE5ldHdvcmtSVENVRFBTb2NrZXRDb2NvYUNvbm5lY3Rpb25zPiB7CiBwdWJsaWM6
Ci0gICAgc3RhdGljIFJlZjxOZXR3b3JrUlRDVURQU29ja2V0Q29jb2FDb25uZWN0aW9ucz4gY3Jl
YXRlKFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50aWZpZXIgaWRlbnRpZmllciwgTmV0d29y
a1JUQ1Byb3ZpZGVyJiBwcm92aWRlciwgY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiBhZGRyZXNz
LCBSZWY8SVBDOjpDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24sIGJvb2wgaXNGaXJzdFBhcnR5LCBi
b29sIGlzUmVsYXlEaXNhYmxlZCwgY29uc3QgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mIGRv
bWFpbikgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBOZXR3b3JrUlRDVURQU29ja2V0Q29jb2FDb25u
ZWN0aW9ucyhpZGVudGlmaWVyLCBwcm92aWRlciwgYWRkcmVzcywgV1RGTW92ZShjb25uZWN0aW9u
KSwgaXNGaXJzdFBhcnR5LCBpc1JlbGF5RGlzYWJsZWQsIGRvbWFpbikpOyB9CisgICAgc3RhdGlj
IFJlZjxOZXR3b3JrUlRDVURQU29ja2V0Q29jb2FDb25uZWN0aW9ucz4gY3JlYXRlKFdlYkNvcmU6
OkxpYldlYlJUQ1NvY2tldElkZW50aWZpZXIgaWRlbnRpZmllciwgTmV0d29ya1JUQ1Byb3ZpZGVy
JiBwcm92aWRlciwgY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiBhZGRyZXNzLCBSZWY8SVBDOjpD
b25uZWN0aW9uPiYmIGNvbm5lY3Rpb24sIFN0cmluZyYmIGF0dHJpYnV0ZWRCdW5kbGVJZGVudGlm
aWVyLCBib29sIGlzRmlyc3RQYXJ0eSwgYm9vbCBpc1JlbGF5RGlzYWJsZWQsIGNvbnN0IFdlYkNv
cmU6OlJlZ2lzdHJhYmxlRG9tYWluJiBkb21haW4pIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTmV0
d29ya1JUQ1VEUFNvY2tldENvY29hQ29ubmVjdGlvbnMoaWRlbnRpZmllciwgcHJvdmlkZXIsIGFk
ZHJlc3MsIFdURk1vdmUoY29ubmVjdGlvbiksIFdURk1vdmUoYXR0cmlidXRlZEJ1bmRsZUlkZW50
aWZpZXIpLCBpc0ZpcnN0UGFydHksIGlzUmVsYXlEaXNhYmxlZCwgZG9tYWluKSk7IH0KIAogICAg
IHZvaWQgY2xvc2UoKTsKICAgICB2b2lkIHNldE9wdGlvbihpbnQgb3B0aW9uLCBpbnQgdmFsdWUp
OwpAQCAtNjQsNyArNjQsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRMaXN0ZW5pbmdQb3J0KGlu
dCk7CiAKIHByaXZhdGU6Ci0gICAgTmV0d29ya1JUQ1VEUFNvY2tldENvY29hQ29ubmVjdGlvbnMo
V2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmllciwgTmV0d29ya1JUQ1Byb3ZpZGVyJiwg
Y29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiwgUmVmPElQQzo6Q29ubmVjdGlvbj4mJiwgYm9vbCBp
c0ZpcnN0UGFydHksIGJvb2wgaXNSZWxheURpc2FibGVkLCBjb25zdCBXZWJDb3JlOjpSZWdpc3Ry
YWJsZURvbWFpbiYpOworICAgIE5ldHdvcmtSVENVRFBTb2NrZXRDb2NvYUNvbm5lY3Rpb25zKFdl
YkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50aWZpZXIsIE5ldHdvcmtSVENQcm92aWRlciYsIGNv
bnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYsIFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYsIFN0cmluZyYm
IGF0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVyLCBib29sIGlzRmlyc3RQYXJ0eSwgYm9vbCBpc1Jl
bGF5RGlzYWJsZWQsIGNvbnN0IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJik7CiAKICAgICBS
ZXRhaW5QdHI8bndfY29ubmVjdGlvbl90PiBjcmVhdGVOV0Nvbm5lY3Rpb24oY29uc3QgcnRjOjpT
b2NrZXRBZGRyZXNzJik7CiAgICAgdm9pZCBzZXR1cE5XQ29ubmVjdGlvbihud19jb25uZWN0aW9u
X3QsIGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYpOwpAQCAtNzksNiArNzksNyBAQCBwcml2YXRl
OgogICAgIGJvb2wgbV9zaG91bGRCeXBhc3NSZWxheSB7IGZhbHNlIH07CiAKICAgICBzdGQ6Om9w
dGlvbmFsPGF1ZGl0X3Rva2VuX3Q+IG1fc291cmNlQXBwbGljYXRpb25BdWRpdFRva2VuOworICAg
IFN0cmluZyBtX2F0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVyOwogCiAgICAgcnRjOjpTb2NrZXRB
ZGRyZXNzIG1fYWRkcmVzczsKICAgICBSZXRhaW5QdHI8bndfbGlzdGVuZXJfdD4gbV9ud0xpc3Rl
bmVyOwpAQCAtOTcsMTUgKzk4LDE1IEBAIHN0YXRpYyBkaXNwYXRjaF9xdWV1ZV90IHVkcFNvY2tl
dFF1ZXVlKCkKICAgICByZXR1cm4gcXVldWU7CiB9CiAKLXN0ZDo6dW5pcXVlX3B0cjxOZXR3b3Jr
UlRDUHJvdmlkZXI6OlNvY2tldD4gTmV0d29ya1JUQ1VEUFNvY2tldENvY29hOjpjcmVhdGVVRFBT
b2NrZXQoV2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmllciBpZGVudGlmaWVyLCBOZXR3
b3JrUlRDUHJvdmlkZXImIHJ0Y1Byb3ZpZGVyLCBjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmIGFk
ZHJlc3MsIHVpbnQxNl90IG1pblBvcnQsIHVpbnQxNl90IG1heFBvcnQsIFJlZjxJUEM6OkNvbm5l
Y3Rpb24+JiYgY29ubmVjdGlvbiwgYm9vbCBpc0ZpcnN0UGFydHksIGJvb2wgaXNSZWxheURpc2Fi
bGVkLCBjb25zdCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYgZG9tYWluKQorc3RkOjp1bmlx
dWVfcHRyPE5ldHdvcmtSVENQcm92aWRlcjo6U29ja2V0PiBOZXR3b3JrUlRDVURQU29ja2V0Q29j
b2E6OmNyZWF0ZVVEUFNvY2tldChXZWJDb3JlOjpMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyIGlk
ZW50aWZpZXIsIE5ldHdvcmtSVENQcm92aWRlciYgcnRjUHJvdmlkZXIsIGNvbnN0IHJ0Yzo6U29j
a2V0QWRkcmVzcyYgYWRkcmVzcywgdWludDE2X3QgbWluUG9ydCwgdWludDE2X3QgbWF4UG9ydCwg
UmVmPElQQzo6Q29ubmVjdGlvbj4mJiBjb25uZWN0aW9uLCBTdHJpbmcmJiBhdHRyaWJ1dGVkQnVu
ZGxlSWRlbnRpZmllciwgYm9vbCBpc0ZpcnN0UGFydHksIGJvb2wgaXNSZWxheURpc2FibGVkLCBj
b25zdCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYgZG9tYWluKQogewotICAgIHJldHVybiBt
YWtlVW5pcXVlPE5ldHdvcmtSVENVRFBTb2NrZXRDb2NvYT4oaWRlbnRpZmllciwgcnRjUHJvdmlk
ZXIsIGFkZHJlc3MsIFdURk1vdmUoY29ubmVjdGlvbiksIGlzRmlyc3RQYXJ0eSwgaXNSZWxheURp
c2FibGVkLCBkb21haW4pOworICAgIHJldHVybiBtYWtlVW5pcXVlPE5ldHdvcmtSVENVRFBTb2Nr
ZXRDb2NvYT4oaWRlbnRpZmllciwgcnRjUHJvdmlkZXIsIGFkZHJlc3MsIFdURk1vdmUoY29ubmVj
dGlvbiksIFdURk1vdmUoYXR0cmlidXRlZEJ1bmRsZUlkZW50aWZpZXIpLCBpc0ZpcnN0UGFydHks
IGlzUmVsYXlEaXNhYmxlZCwgZG9tYWluKTsKIH0KIAotTmV0d29ya1JUQ1VEUFNvY2tldENvY29h
OjpOZXR3b3JrUlRDVURQU29ja2V0Q29jb2EoV2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRp
ZmllciBpZGVudGlmaWVyLCBOZXR3b3JrUlRDUHJvdmlkZXImIHJ0Y1Byb3ZpZGVyLCBjb25zdCBy
dGM6OlNvY2tldEFkZHJlc3MmIGFkZHJlc3MsIFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYgY29ubmVj
dGlvbiwgYm9vbCBpc0ZpcnN0UGFydHksIGJvb2wgaXNSZWxheURpc2FibGVkLCBjb25zdCBXZWJD
b3JlOjpSZWdpc3RyYWJsZURvbWFpbiYgZG9tYWluKQorTmV0d29ya1JUQ1VEUFNvY2tldENvY29h
OjpOZXR3b3JrUlRDVURQU29ja2V0Q29jb2EoV2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRp
ZmllciBpZGVudGlmaWVyLCBOZXR3b3JrUlRDUHJvdmlkZXImIHJ0Y1Byb3ZpZGVyLCBjb25zdCBy
dGM6OlNvY2tldEFkZHJlc3MmIGFkZHJlc3MsIFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYgY29ubmVj
dGlvbiwgU3RyaW5nJiYgYXR0cmlidXRlZEJ1bmRsZUlkZW50aWZpZXIsIGJvb2wgaXNGaXJzdFBh
cnR5LCBib29sIGlzUmVsYXlEaXNhYmxlZCwgY29uc3QgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21h
aW4mIGRvbWFpbikKICAgICA6IG1fcnRjUHJvdmlkZXIocnRjUHJvdmlkZXIpCiAgICAgLCBtX2lk
ZW50aWZpZXIoaWRlbnRpZmllcikKLSAgICAsIG1fbndDb25uZWN0aW9ucyhOZXR3b3JrUlRDVURQ
U29ja2V0Q29jb2FDb25uZWN0aW9uczo6Y3JlYXRlKGlkZW50aWZpZXIsIHJ0Y1Byb3ZpZGVyLCBh
ZGRyZXNzLCBXVEZNb3ZlKGNvbm5lY3Rpb24pLCBpc0ZpcnN0UGFydHksIGlzUmVsYXlEaXNhYmxl
ZCwgZG9tYWluKSkKKyAgICAsIG1fbndDb25uZWN0aW9ucyhOZXR3b3JrUlRDVURQU29ja2V0Q29j
b2FDb25uZWN0aW9uczo6Y3JlYXRlKGlkZW50aWZpZXIsIHJ0Y1Byb3ZpZGVyLCBhZGRyZXNzLCBX
VEZNb3ZlKGNvbm5lY3Rpb24pLCBXVEZNb3ZlKGF0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVyKSwg
aXNGaXJzdFBhcnR5LCBpc1JlbGF5RGlzYWJsZWQsIGRvbWFpbikpCiB7CiB9CiAKQEAgLTE1Nyw3
ICsxNTgsNyBAQCBzdGF0aWMgYm9vbCBpc0tub3duVHJhY2tlcihjb25zdCBXZWJDb3JlOjpSZWdp
c3RyYWJsZURvbWFpbiYgZG9tYWluKQogfQogI2VuZGlmCiAKLU5ldHdvcmtSVENVRFBTb2NrZXRD
b2NvYUNvbm5lY3Rpb25zOjpOZXR3b3JrUlRDVURQU29ja2V0Q29jb2FDb25uZWN0aW9ucyhXZWJD
b3JlOjpMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyIGlkZW50aWZpZXIsIE5ldHdvcmtSVENQcm92
aWRlciYgcnRjUHJvdmlkZXIsIGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYgYWRkcmVzcywgUmVm
PElQQzo6Q29ubmVjdGlvbj4mJiBjb25uZWN0aW9uLCBib29sIGlzRmlyc3RQYXJ0eSwgYm9vbCBp
c1JlbGF5RGlzYWJsZWQsIGNvbnN0IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiBkb21haW4p
CitOZXR3b3JrUlRDVURQU29ja2V0Q29jb2FDb25uZWN0aW9uczo6TmV0d29ya1JUQ1VEUFNvY2tl
dENvY29hQ29ubmVjdGlvbnMoV2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmllciBpZGVu
dGlmaWVyLCBOZXR3b3JrUlRDUHJvdmlkZXImIHJ0Y1Byb3ZpZGVyLCBjb25zdCBydGM6OlNvY2tl
dEFkZHJlc3MmIGFkZHJlc3MsIFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYgY29ubmVjdGlvbiwgU3Ry
aW5nJiYgYXR0cmlidXRlZEJ1bmRsZUlkZW50aWZpZXIsIGJvb2wgaXNGaXJzdFBhcnR5LCBib29s
IGlzUmVsYXlEaXNhYmxlZCwgY29uc3QgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mIGRvbWFp
bikKICAgICA6IG1faWRlbnRpZmllcihpZGVudGlmaWVyKQogICAgICwgbV9jb25uZWN0aW9uKFdU
Rk1vdmUoY29ubmVjdGlvbikpCiAjaWYgSEFWRShOV1BBUkFNRVRFUlNfVFJBQ0tFUl9BUEkpCkBA
IC0xNjYsNiArMTY3LDcgQEAgTmV0d29ya1JUQ1VEUFNvY2tldENvY29hQ29ubmVjdGlvbnM6Ok5l
dHdvcmtSVENVRFBTb2NrZXRDb2NvYUNvbm5lY3Rpb25zKFdlYkNvcmUKICNlbmRpZgogICAgICwg
bV9zaG91bGRCeXBhc3NSZWxheShpc1JlbGF5RGlzYWJsZWQpCiAgICAgLCBtX3NvdXJjZUFwcGxp
Y2F0aW9uQXVkaXRUb2tlbihydGNQcm92aWRlci5zb3VyY2VBcHBsaWNhdGlvbkF1ZGl0VG9rZW4o
KSkKKyAgICAsIG1fYXR0cmlidXRlZEJ1bmRsZUlkZW50aWZpZXIoV1RGTW92ZShhdHRyaWJ1dGVk
QnVuZGxlSWRlbnRpZmllcikpCiB7CiAgICAgYXV0byBwYXJhbWV0ZXJzID0gYWRvcHROUyhud19w
YXJhbWV0ZXJzX2NyZWF0ZV9zZWN1cmVfdWRwKE5XX1BBUkFNRVRFUlNfRElTQUJMRV9QUk9UT0NP
TCwgTldfUEFSQU1FVEVSU19ERUZBVUxUX0NPTkZJR1VSQVRJT04pKTsKICAgICB7CkBAIC0yNDIs
NiArMjQ0LDggQEAgdm9pZCBOZXR3b3JrUlRDVURQU29ja2V0Q29jb2FDb25uZWN0aW9uczo6Y29u
ZmlndXJlUGFyYW1ldGVycyhud19wYXJhbWV0ZXJzX3QgcGEKIAogICAgIGlmIChtX3NvdXJjZUFw
cGxpY2F0aW9uQXVkaXRUb2tlbikKICAgICAgICAgbndfcGFyYW1ldGVyc19zZXRfc291cmNlX2Fw
cGxpY2F0aW9uKHBhcmFtZXRlcnMsICptX3NvdXJjZUFwcGxpY2F0aW9uQXVkaXRUb2tlbik7Cisg
ICAgaWYgKCFtX2F0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVyLmlzRW1wdHkoKSkKKyAgICAgICAg
bndfcGFyYW1ldGVyc19zZXRfc291cmNlX2FwcGxpY2F0aW9uX2J5X2J1bmRsZV9pZChwYXJhbWV0
ZXJzLCBtX2F0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVyLnV0ZjgoKS5kYXRhKCkpOwogCiAgICAg
bndfcGFyYW1ldGVyc19zZXRfcmV1c2VfbG9jYWxfYWRkcmVzcyhwYXJhbWV0ZXJzLCB0cnVlKTsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL0NvY29hL05XUGFyYW1l
dGVyc1NQSS5oIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvQ29jb2EvTldQYXJhbWV0ZXJz
U1BJLmgKaW5kZXggYzFmNzA5NzAyMTBhNzgzZjVlNjljZTJkNWZlNmRiZGYwZDQ4YmFlYS4uZWU2
MDJjZTg3Zjg5OTE2ZDZhODA4MTZiYzI5ZmMxZjVjY2ZjOWRkNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9QbGF0Zm9ybS9zcGkvQ29jb2EvTldQYXJhbWV0ZXJzU1BJLmgKKysrIGIvU291cmNl
L1dlYktpdC9QbGF0Zm9ybS9zcGkvQ29jb2EvTldQYXJhbWV0ZXJzU1BJLmgKQEAgLTM1LDYgKzM1
LDcgQEAgV1RGX0VYVEVSTl9DX0JFR0lOCiAKIHZvaWQgbndfcGFyYW1ldGVyc19zZXRfYWNjb3Vu
dF9pZChud19wYXJhbWV0ZXJzX3QsIGNvbnN0IGNoYXIgKiBhY2NvdW50X2lkKTsKIHZvaWQgbndf
cGFyYW1ldGVyc19zZXRfc291cmNlX2FwcGxpY2F0aW9uKG53X3BhcmFtZXRlcnNfdCwgYXVkaXRf
dG9rZW5fdCk7Cit2b2lkIG53X3BhcmFtZXRlcnNfc2V0X3NvdXJjZV9hcHBsaWNhdGlvbl9ieV9i
dW5kbGVfaWQobndfcGFyYW1ldGVyc190LCBjb25zdCBjaGFyKik7CiBud19lbmRwb2ludF90IG53
X2VuZHBvaW50X2NyZWF0ZV9ob3N0X3dpdGhfbnVtZXJpY19wb3J0KGNvbnN0IGNoYXIqIGhvc3Ru
YW1lLCB1aW50MTZfdCBwb3J0X2hvc3Rfb3JkZXIpOwogCiAjaWYgSEFWRShOV1BBUkFNRVRFUlNf
VFJBQ0tFUl9BUEkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29y
ay93ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmNwcAppbmRleCBmZmIzYWEwYjcwZTZj
YWUzOWY0OTI1Y2IyYzJlMmUwMDYyOTU3YzRiLi45NjhjOWYzMDRiNjU0ODA5Zjk5MjYyNTZjMTAw
NTUwN2M5NzEyZjU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29y
ay93ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5jcHAKQEAgLTg4LDcgKzg4LDcg
QEAgdm9pZCBMaWJXZWJSVENQcm92aWRlcjo6cmVnaXN0ZXJNRE5TTmFtZShEb2N1bWVudElkZW50
aWZpZXIgZG9jdW1lbnRJZGVudGlmaWVyLAogY2xhc3MgUlRDU29ja2V0RmFjdG9yeSBmaW5hbCA6
IHB1YmxpYyBMaWJXZWJSVENQcm92aWRlcjo6U3VzcGVuZGFibGVTb2NrZXRGYWN0b3J5IHsKICAg
ICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBSVENTb2NrZXRGYWN0b3J5
KFN0cmluZyYmIHVzZXJBZ2VudCwgYm9vbCBpc0ZpcnN0UGFydHksIFJlZ2lzdHJhYmxlRG9tYWlu
JiYpOworICAgIFJUQ1NvY2tldEZhY3RvcnkoV2ViUGFnZVByb3h5SWRlbnRpZmllciwgU3RyaW5n
JiYgdXNlckFnZW50LCBib29sIGlzRmlyc3RQYXJ0eSwgUmVnaXN0cmFibGVEb21haW4mJik7CiAK
ICAgICB2b2lkIGRpc2FibGVSZWxheSgpIGZpbmFsIHsgbV9pc1JlbGF5RGlzYWJsZWQgPSB0cnVl
OyB9CiAKQEAgLTEwMiwxNCArMTAyLDE2IEBAIHByaXZhdGU6CiAgICAgdm9pZCByZXN1bWUoKSBm
aW5hbDsKIAogcHJpdmF0ZToKKyAgICBXZWJQYWdlUHJveHlJZGVudGlmaWVyIG1fcGFnZUlkZW50
aWZpZXI7CiAgICAgU3RyaW5nIG1fdXNlckFnZW50OwogICAgIGJvb2wgbV9pc0ZpcnN0UGFydHkg
eyBmYWxzZSB9OwogICAgIGJvb2wgbV9pc1JlbGF5RGlzYWJsZWQgeyBmYWxzZSB9OwogICAgIFJl
Z2lzdHJhYmxlRG9tYWluIG1fZG9tYWluOwogfTsKIAotUlRDU29ja2V0RmFjdG9yeTo6UlRDU29j
a2V0RmFjdG9yeShTdHJpbmcmJiB1c2VyQWdlbnQsIGJvb2wgaXNGaXJzdFBhcnR5LCBSZWdpc3Ry
YWJsZURvbWFpbiYmIGRvbWFpbikKLSAgICA6IG1fdXNlckFnZW50KFdURk1vdmUodXNlckFnZW50
KSkKK1JUQ1NvY2tldEZhY3Rvcnk6OlJUQ1NvY2tldEZhY3RvcnkoV2ViUGFnZVByb3h5SWRlbnRp
ZmllciBwYWdlSWRlbnRpZmllciwgU3RyaW5nJiYgdXNlckFnZW50LCBib29sIGlzRmlyc3RQYXJ0
eSwgUmVnaXN0cmFibGVEb21haW4mJiBkb21haW4pCisgICAgOiBtX3BhZ2VJZGVudGlmaWVyKHBh
Z2VJZGVudGlmaWVyKQorICAgICwgbV91c2VyQWdlbnQoV1RGTW92ZSh1c2VyQWdlbnQpKQogICAg
ICwgbV9pc0ZpcnN0UGFydHkoaXNGaXJzdFBhcnR5KQogICAgICwgbV9kb21haW4oV1RGTW92ZShk
b21haW4pKQogewpAQCAtMTE3LDcgKzExOSw3IEBAIFJUQ1NvY2tldEZhY3Rvcnk6OlJUQ1NvY2tl
dEZhY3RvcnkoU3RyaW5nJiYgdXNlckFnZW50LCBib29sIGlzRmlyc3RQYXJ0eSwgUmVnaXN0CiAK
IHJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQqIFJUQ1NvY2tldEZhY3Rvcnk6OkNyZWF0ZVVkcFNvY2tl
dChjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmIGFkZHJlc3MsIHVpbnQxNl90IG1pblBvcnQsIHVp
bnQxNl90IG1heFBvcnQpCiB7Ci0gICAgcmV0dXJuIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmxp
YldlYlJUQ05ldHdvcmsoKS5zb2NrZXRGYWN0b3J5KCkuY3JlYXRlVWRwU29ja2V0KHRoaXMsIGFk
ZHJlc3MsIG1pblBvcnQsIG1heFBvcnQsIG1faXNGaXJzdFBhcnR5LCBtX2lzUmVsYXlEaXNhYmxl
ZCwgbV9kb21haW4pOworICAgIHJldHVybiBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5saWJXZWJS
VENOZXR3b3JrKCkuc29ja2V0RmFjdG9yeSgpLmNyZWF0ZVVkcFNvY2tldCh0aGlzLCBhZGRyZXNz
LCBtaW5Qb3J0LCBtYXhQb3J0LCBtX3BhZ2VJZGVudGlmaWVyLCBtX2lzRmlyc3RQYXJ0eSwgbV9p
c1JlbGF5RGlzYWJsZWQsIG1fZG9tYWluKTsKIH0KIAogcnRjOjpBc3luY1BhY2tldFNvY2tldCog
UlRDU29ja2V0RmFjdG9yeTo6Q3JlYXRlU2VydmVyVGNwU29ja2V0KGNvbnN0IHJ0Yzo6U29ja2V0
QWRkcmVzcyYgYWRkcmVzcywgdWludDE2X3QgbWluUG9ydCwgdWludDE2X3QgbWF4UG9ydCwgaW50
IG9wdGlvbnMpCkBAIC0xMjcsNyArMTI5LDcgQEAgcnRjOjpBc3luY1BhY2tldFNvY2tldCogUlRD
U29ja2V0RmFjdG9yeTo6Q3JlYXRlU2VydmVyVGNwU29ja2V0KGNvbnN0IHJ0Yzo6U29ja2UKIAog
cnRjOjpBc3luY1BhY2tldFNvY2tldCogUlRDU29ja2V0RmFjdG9yeTo6Q3JlYXRlQ2xpZW50VGNw
U29ja2V0KGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYgbG9jYWxBZGRyZXNzLCBjb25zdCBydGM6
OlNvY2tldEFkZHJlc3MmIHJlbW90ZUFkZHJlc3MsIGNvbnN0IHJ0Yzo6UHJveHlJbmZvJiwgY29u
c3Qgc3RkOjpzdHJpbmcmLCBjb25zdCBydGM6OlBhY2tldFNvY2tldFRjcE9wdGlvbnMmIG9wdGlv
bnMpCiB7Ci0gICAgcmV0dXJuIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmxpYldlYlJUQ05ldHdv
cmsoKS5zb2NrZXRGYWN0b3J5KCkuY3JlYXRlQ2xpZW50VGNwU29ja2V0KHRoaXMsIGxvY2FsQWRk
cmVzcywgcmVtb3RlQWRkcmVzcywgU3RyaW5nIHsgbV91c2VyQWdlbnQgfSwgb3B0aW9ucywgbV9p
c1JlbGF5RGlzYWJsZWQpOworICAgIHJldHVybiBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5saWJX
ZWJSVENOZXR3b3JrKCkuc29ja2V0RmFjdG9yeSgpLmNyZWF0ZUNsaWVudFRjcFNvY2tldCh0aGlz
LCBsb2NhbEFkZHJlc3MsIHJlbW90ZUFkZHJlc3MsIFN0cmluZyB7IG1fdXNlckFnZW50IH0sIG9w
dGlvbnMsIG1fcGFnZUlkZW50aWZpZXIsIG1faXNSZWxheURpc2FibGVkKTsKIH0KIAogcnRjOjpB
c3luY1Jlc29sdmVySW50ZXJmYWNlKiBSVENTb2NrZXRGYWN0b3J5OjpDcmVhdGVBc3luY1Jlc29s
dmVyKCkKQEAgLTE2MCw3ICsxNjIsNyBAQCB2b2lkIExpYldlYlJUQ1Byb3ZpZGVyOjpzdGFydGVk
TmV0d29ya1RocmVhZCgpCiAKIHN0ZDo6dW5pcXVlX3B0cjxMaWJXZWJSVENQcm92aWRlcjo6U3Vz
cGVuZGFibGVTb2NrZXRGYWN0b3J5PiBMaWJXZWJSVENQcm92aWRlcjo6Y3JlYXRlU29ja2V0RmFj
dG9yeShTdHJpbmcmJiB1c2VyQWdlbnQsIGJvb2wgaXNGaXJzdFBhcnR5LCBSZWdpc3RyYWJsZURv
bWFpbiYmIGRvbWFpbikKIHsKLSAgICBhdXRvIGZhY3RvcnkgPSBtYWtlVW5pcXVlPFJUQ1NvY2tl
dEZhY3Rvcnk+KFdURk1vdmUodXNlckFnZW50KSwgaXNGaXJzdFBhcnR5LCBXVEZNb3ZlKGRvbWFp
bikpOworICAgIGF1dG8gZmFjdG9yeSA9IG1ha2VVbmlxdWU8UlRDU29ja2V0RmFjdG9yeT4obV93
ZWJQYWdlLndlYlBhZ2VQcm94eUlkZW50aWZpZXIoKSwgV1RGTW92ZSh1c2VyQWdlbnQpLCBpc0Zp
cnN0UGFydHksIFdURk1vdmUoZG9tYWluKSk7CiAKICAgICBhdXRvKiBwYWdlID0gbV93ZWJQYWdl
LmNvcmVQYWdlKCk7CiAgICAgaWYgKCFwYWdlIHx8ICFwYWdlLT5zZXR0aW5ncygpLndlYlJUQ1Nv
Y2tldHNQcm94eWluZ0VuYWJsZWQoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXRGYWN0b3J5LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXRGYWN0b3J5LmNw
cAppbmRleCAyMDI3YzI4ODA3NTJiYTU1N2ZjMmNlMzM5YWZkNzMyM2UzMzI0YTBmLi44MWUxNWU4
ODY0YjYwYjkxZTNhMjNlZTJmNmI4M2Y3OWQzMzZkMzlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDU29ja2V0RmFjdG9yeS5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1Nv
Y2tldEZhY3RvcnkuY3BwCkBAIC04NSwyNiArODUsMjYgQEAgcnRjOjpBc3luY1BhY2tldFNvY2tl
dCogTGliV2ViUlRDU29ja2V0RmFjdG9yeTo6Y3JlYXRlU2VydmVyVGNwU29ja2V0KGNvbnN0IHZv
aWQKICAgICByZXR1cm4gc29ja2V0LnJlbGVhc2UoKTsKIH0KIAotcnRjOjpBc3luY1BhY2tldFNv
Y2tldCogTGliV2ViUlRDU29ja2V0RmFjdG9yeTo6Y3JlYXRlVWRwU29ja2V0KGNvbnN0IHZvaWQq
IHNvY2tldEdyb3VwLCBjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmIGFkZHJlc3MsIHVpbnQxNl90
IG1pblBvcnQsIHVpbnQxNl90IG1heFBvcnQsIGJvb2wgaXNGaXJzdFBhcnR5LCBib29sIGlzUmVs
YXlEaXNhYmxlZCwgY29uc3QgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mIGRvbWFpbikKK3J0
Yzo6QXN5bmNQYWNrZXRTb2NrZXQqIExpYldlYlJUQ1NvY2tldEZhY3Rvcnk6OmNyZWF0ZVVkcFNv
Y2tldChjb25zdCB2b2lkKiBzb2NrZXRHcm91cCwgY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiBh
ZGRyZXNzLCB1aW50MTZfdCBtaW5Qb3J0LCB1aW50MTZfdCBtYXhQb3J0LCBXZWJQYWdlUHJveHlJ
ZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyLCBib29sIGlzRmlyc3RQYXJ0eSwgYm9vbCBpc1JlbGF5
RGlzYWJsZWQsIGNvbnN0IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiBkb21haW4pCiB7CiAg
ICAgQVNTRVJUKCFXVEY6OmlzTWFpblJ1bkxvb3AoKSk7CiAgICAgYXV0byBzb2NrZXQgPSBtYWtl
VW5pcXVlPExpYldlYlJUQ1NvY2tldD4oKnRoaXMsIHNvY2tldEdyb3VwLCBMaWJXZWJSVENTb2Nr
ZXQ6OlR5cGU6OlVEUCwgYWRkcmVzcywgcnRjOjpTb2NrZXRBZGRyZXNzKCkpOwogCiAgICAgaWYg
KG1fY29ubmVjdGlvbikKLSAgICAgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpOZXR3
b3JrUlRDUHJvdmlkZXI6OkNyZWF0ZVVEUFNvY2tldChzb2NrZXQtPmlkZW50aWZpZXIoKSwgUlRD
TmV0d29yazo6U29ja2V0QWRkcmVzcyhhZGRyZXNzKSwgbWluUG9ydCwgbWF4UG9ydCwgaXNGaXJz
dFBhcnR5LCBpc1JlbGF5RGlzYWJsZWQsIGRvbWFpbiksIDApOworICAgICAgICBtX2Nvbm5lY3Rp
b24tPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtSVENQcm92aWRlcjo6Q3JlYXRlVURQU29ja2V0KHNv
Y2tldC0+aWRlbnRpZmllcigpLCBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzKGFkZHJlc3MpLCBt
aW5Qb3J0LCBtYXhQb3J0LCBwYWdlSWRlbnRpZmllciwgaXNGaXJzdFBhcnR5LCBpc1JlbGF5RGlz
YWJsZWQsIGRvbWFpbiksIDApOwogICAgIGVsc2UgewogICAgICAgICBjYWxsT25NYWluUnVuTG9v
cChbXSB7CiAgICAgICAgICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVOZXR3b3Jr
UHJvY2Vzc0Nvbm5lY3Rpb24oKTsKICAgICAgICAgfSk7Ci0gICAgICAgIG1fcGVuZGluZ01lc3Nh
Z2VUYXNrcy5hcHBlbmQoW2lkZW50aWZpZXIgPSBzb2NrZXQtPmlkZW50aWZpZXIoKSwgYWRkcmVz
cyA9IFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MoYWRkcmVzcyksIG1pblBvcnQsIG1heFBvcnQs
IGlzRmlyc3RQYXJ0eSwgaXNSZWxheURpc2FibGVkLCBkb21haW5dKGF1dG8mIGNvbm5lY3Rpb24p
IHsKLSAgICAgICAgICAgIGNvbm5lY3Rpb24uc2VuZChNZXNzYWdlczo6TmV0d29ya1JUQ1Byb3Zp
ZGVyOjpDcmVhdGVVRFBTb2NrZXQoaWRlbnRpZmllciwgYWRkcmVzcywgbWluUG9ydCwgbWF4UG9y
dCwgaXNGaXJzdFBhcnR5LCBpc1JlbGF5RGlzYWJsZWQsIGRvbWFpbiksIDApOworICAgICAgICBt
X3BlbmRpbmdNZXNzYWdlVGFza3MuYXBwZW5kKFtpZGVudGlmaWVyID0gc29ja2V0LT5pZGVudGlm
aWVyKCksIGFkZHJlc3MgPSBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzKGFkZHJlc3MpLCBtaW5Q
b3J0LCBtYXhQb3J0LCBwYWdlSWRlbnRpZmllciwgaXNGaXJzdFBhcnR5LCBpc1JlbGF5RGlzYWJs
ZWQsIGRvbWFpbl0oYXV0byYgY29ubmVjdGlvbikgeworICAgICAgICAgICAgY29ubmVjdGlvbi5z
ZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUlRDUHJvdmlkZXI6OkNyZWF0ZVVEUFNvY2tldChpZGVudGlm
aWVyLCBhZGRyZXNzLCBtaW5Qb3J0LCBtYXhQb3J0LCBwYWdlSWRlbnRpZmllciwgaXNGaXJzdFBh
cnR5LCBpc1JlbGF5RGlzYWJsZWQsIGRvbWFpbiksIDApOwogICAgICAgICB9KTsKICAgICB9CiAK
ICAgICByZXR1cm4gc29ja2V0LnJlbGVhc2UoKTsKIH0KIAotcnRjOjpBc3luY1BhY2tldFNvY2tl
dCogTGliV2ViUlRDU29ja2V0RmFjdG9yeTo6Y3JlYXRlQ2xpZW50VGNwU29ja2V0KGNvbnN0IHZv
aWQqIHNvY2tldEdyb3VwLCBjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmIGxvY2FsQWRkcmVzcywg
Y29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiByZW1vdGVBZGRyZXNzLCBTdHJpbmcmJiB1c2VyQWdl
bnQsIGNvbnN0IHJ0Yzo6UGFja2V0U29ja2V0VGNwT3B0aW9ucyYgb3B0aW9ucywgYm9vbCBpc1Jl
bGF5RGlzYWJsZWQpCitydGM6OkFzeW5jUGFja2V0U29ja2V0KiBMaWJXZWJSVENTb2NrZXRGYWN0
b3J5OjpjcmVhdGVDbGllbnRUY3BTb2NrZXQoY29uc3Qgdm9pZCogc29ja2V0R3JvdXAsIGNvbnN0
IHJ0Yzo6U29ja2V0QWRkcmVzcyYgbG9jYWxBZGRyZXNzLCBjb25zdCBydGM6OlNvY2tldEFkZHJl
c3MmIHJlbW90ZUFkZHJlc3MsIFN0cmluZyYmIHVzZXJBZ2VudCwgY29uc3QgcnRjOjpQYWNrZXRT
b2NrZXRUY3BPcHRpb25zJiBvcHRpb25zLCBXZWJQYWdlUHJveHlJZGVudGlmaWVyIHBhZ2VJZGVu
dGlmaWVyLCBib29sIGlzUmVsYXlEaXNhYmxlZCkKIHsKICAgICBBU1NFUlQoIVdURjo6aXNNYWlu
UnVuTG9vcCgpKTsKIApAQCAtMTEzLDEzICsxMTMsMTMgQEAgcnRjOjpBc3luY1BhY2tldFNvY2tl
dCogTGliV2ViUlRDU29ja2V0RmFjdG9yeTo6Y3JlYXRlQ2xpZW50VGNwU29ja2V0KGNvbnN0IHZv
aWQKIAogICAgIC8vIEZJWE1FOiBXZSBvbmx5IHRyYW5zZmVyIG9wdGlvbnMub3B0cyBidXQgc2hv
dWxkIGFsc28gaGFuZGxlIG90aGVyIG1lbWJlcnMuCiAgICAgaWYgKG1fY29ubmVjdGlvbikKLSAg
ICAgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUlRDUHJvdmlkZXI6OkNy
ZWF0ZUNsaWVudFRDUFNvY2tldChzb2NrZXQtPmlkZW50aWZpZXIoKSwgUlRDTmV0d29yazo6U29j
a2V0QWRkcmVzcyhwcmVwYXJlU29ja2V0QWRkcmVzcyhsb2NhbEFkZHJlc3MsIG1fZGlzYWJsZU5v
bkxvY2FsaG9zdENvbm5lY3Rpb25zKSksIFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MocHJlcGFy
ZVNvY2tldEFkZHJlc3MocmVtb3RlQWRkcmVzcywgbV9kaXNhYmxlTm9uTG9jYWxob3N0Q29ubmVj
dGlvbnMpKSwgdXNlckFnZW50LCBvcHRpb25zLm9wdHMsICBpc1JlbGF5RGlzYWJsZWQpLCAwKTsK
KyAgICAgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUlRDUHJvdmlkZXI6
OkNyZWF0ZUNsaWVudFRDUFNvY2tldChzb2NrZXQtPmlkZW50aWZpZXIoKSwgUlRDTmV0d29yazo6
U29ja2V0QWRkcmVzcyhwcmVwYXJlU29ja2V0QWRkcmVzcyhsb2NhbEFkZHJlc3MsIG1fZGlzYWJs
ZU5vbkxvY2FsaG9zdENvbm5lY3Rpb25zKSksIFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MocHJl
cGFyZVNvY2tldEFkZHJlc3MocmVtb3RlQWRkcmVzcywgbV9kaXNhYmxlTm9uTG9jYWxob3N0Q29u
bmVjdGlvbnMpKSwgdXNlckFnZW50LCBvcHRpb25zLm9wdHMsIHBhZ2VJZGVudGlmaWVyLCBpc1Jl
bGF5RGlzYWJsZWQpLCAwKTsKICAgICBlbHNlIHsKICAgICAgICAgY2FsbE9uTWFpblJ1bkxvb3Ao
W10gewogICAgICAgICAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlTmV0d29ya1By
b2Nlc3NDb25uZWN0aW9uKCk7CiAgICAgICAgIH0pOwotICAgICAgICBtX3BlbmRpbmdNZXNzYWdl
VGFza3MuYXBwZW5kKFtpZGVudGlmaWVyID0gc29ja2V0LT5pZGVudGlmaWVyKCksIGxvY2FsQWRk
cmVzcyA9IFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MocHJlcGFyZVNvY2tldEFkZHJlc3MobG9j
YWxBZGRyZXNzLCBtX2Rpc2FibGVOb25Mb2NhbGhvc3RDb25uZWN0aW9ucykpLCByZW1vdGVBZGRy
ZXNzID0gUlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyhwcmVwYXJlU29ja2V0QWRkcmVzcyhyZW1v
dGVBZGRyZXNzLCBtX2Rpc2FibGVOb25Mb2NhbGhvc3RDb25uZWN0aW9ucykpLCB1c2VyQWdlbnQs
IG9wdHMgPSBvcHRpb25zLm9wdHMsIGlzUmVsYXlEaXNhYmxlZF0oYXV0byYgY29ubmVjdGlvbikg
ewotICAgICAgICAgICAgY29ubmVjdGlvbi5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUlRDUHJvdmlk
ZXI6OkNyZWF0ZUNsaWVudFRDUFNvY2tldChpZGVudGlmaWVyLCBsb2NhbEFkZHJlc3MsIHJlbW90
ZUFkZHJlc3MsIHVzZXJBZ2VudCwgb3B0cywgaXNSZWxheURpc2FibGVkKSwgMCk7CisgICAgICAg
IG1fcGVuZGluZ01lc3NhZ2VUYXNrcy5hcHBlbmQoW2lkZW50aWZpZXIgPSBzb2NrZXQtPmlkZW50
aWZpZXIoKSwgbG9jYWxBZGRyZXNzID0gUlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyhwcmVwYXJl
U29ja2V0QWRkcmVzcyhsb2NhbEFkZHJlc3MsIG1fZGlzYWJsZU5vbkxvY2FsaG9zdENvbm5lY3Rp
b25zKSksIHJlbW90ZUFkZHJlc3MgPSBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzKHByZXBhcmVT
b2NrZXRBZGRyZXNzKHJlbW90ZUFkZHJlc3MsIG1fZGlzYWJsZU5vbkxvY2FsaG9zdENvbm5lY3Rp
b25zKSksIHVzZXJBZ2VudCwgb3B0cyA9IG9wdGlvbnMub3B0cywgcGFnZUlkZW50aWZpZXIsIGlz
UmVsYXlEaXNhYmxlZF0oYXV0byYgY29ubmVjdGlvbikgeworICAgICAgICAgICAgY29ubmVjdGlv
bi5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUlRDUHJvdmlkZXI6OkNyZWF0ZUNsaWVudFRDUFNvY2tl
dChpZGVudGlmaWVyLCBsb2NhbEFkZHJlc3MsIHJlbW90ZUFkZHJlc3MsIHVzZXJBZ2VudCwgb3B0
cywgcGFnZUlkZW50aWZpZXIsIGlzUmVsYXlEaXNhYmxlZCksIDApOwogICAgICAgICB9KTsKICAg
ICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0
Yy9MaWJXZWJSVENTb2NrZXRGYWN0b3J5LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0
d29yay93ZWJydGMvTGliV2ViUlRDU29ja2V0RmFjdG9yeS5oCmluZGV4IDdkMDgxMTc0ZmJmYTEw
NzlhYTkyNWExMDgxNzAyZjQwYjU1Y2MyNmIuLmJkMTk5Y2E3MTFkYjEyNmIxN2M0YmFhZGQwODQ1
ODZkOTFhZWE1YjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3Jr
L3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXRGYWN0b3J5LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1NvY2tldEZhY3RvcnkuaApAQCAtMjksNiAr
MjksNyBAQAogCiAjaW5jbHVkZSAiTGliV2ViUlRDUmVzb2x2ZXIuaCIKICNpbmNsdWRlICJMaWJX
ZWJSVENTb2NrZXQuaCIKKyNpbmNsdWRlICJXZWJQYWdlUHJveHlJZGVudGlmaWVyLmgiCiAjaW5j
bHVkZSA8V2ViQ29yZS9MaWJXZWJSVENNYWNyb3MuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0xpYldl
YlJUQ1NvY2tldElkZW50aWZpZXIuaD4KICNpbmNsdWRlIDx3ZWJydGMvcnRjX2Jhc2UvbmV0X2hl
bHBlcnMuaD4KQEAgLTUxLDkgKzUyLDkgQEAgcHVibGljOgogICAgIExpYldlYlJUQ1NvY2tldCog
c29ja2V0KFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50aWZpZXIgaWRlbnRpZmllcikgeyBy
ZXR1cm4gbV9zb2NrZXRzLmdldChpZGVudGlmaWVyKTsgfQogCiAgICAgdm9pZCBmb3JTb2NrZXRJ
bkdyb3VwKGNvbnN0IHZvaWQqIHNvY2tldEdyb3VwLCBjb25zdCBGdW5jdGlvbjx2b2lkKExpYldl
YlJUQ1NvY2tldCYpPiYpOwotICAgIHJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQqIGNyZWF0ZVVkcFNv
Y2tldChjb25zdCB2b2lkKiBzb2NrZXRHcm91cCwgY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiwg
dWludDE2X3QgbWluUG9ydCwgdWludDE2X3QgbWF4UG9ydCwgYm9vbCBpc0ZpcnN0UGFydHksIGJv
b2wgaXNSZWxheURpc2FibGVkLCBjb25zdCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYpOwor
ICAgIHJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQqIGNyZWF0ZVVkcFNvY2tldChjb25zdCB2b2lkKiBz
b2NrZXRHcm91cCwgY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiwgdWludDE2X3QgbWluUG9ydCwg
dWludDE2X3QgbWF4UG9ydCwgV2ViUGFnZVByb3h5SWRlbnRpZmllciwgYm9vbCBpc0ZpcnN0UGFy
dHksIGJvb2wgaXNSZWxheURpc2FibGVkLCBjb25zdCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFp
biYpOwogICAgIHJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQqIGNyZWF0ZVNlcnZlclRjcFNvY2tldChj
b25zdCB2b2lkKiBzb2NrZXRHcm91cCwgY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiwgdWludDE2
X3QgbWluUG9ydCwgdWludDE2X3QgbWF4UG9ydCwgaW50IG9wdGlvbnMpOwotICAgIHJ0Yzo6QXN5
bmNQYWNrZXRTb2NrZXQqIGNyZWF0ZUNsaWVudFRjcFNvY2tldChjb25zdCB2b2lkKiBzb2NrZXRH
cm91cCwgY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiBsb2NhbEFkZHJlc3MsIGNvbnN0IHJ0Yzo6
U29ja2V0QWRkcmVzcyYgcmVtb3RlQWRkcmVzcywgU3RyaW5nJiYgdXNlckFnZW50LCBjb25zdCBy
dGM6OlBhY2tldFNvY2tldFRjcE9wdGlvbnMmLCBib29sIGlzUmVsYXlEaXNhYmxlZCk7CisgICAg
cnRjOjpBc3luY1BhY2tldFNvY2tldCogY3JlYXRlQ2xpZW50VGNwU29ja2V0KGNvbnN0IHZvaWQq
IHNvY2tldEdyb3VwLCBjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmIGxvY2FsQWRkcmVzcywgY29u
c3QgcnRjOjpTb2NrZXRBZGRyZXNzJiByZW1vdGVBZGRyZXNzLCBTdHJpbmcmJiB1c2VyQWdlbnQs
IGNvbnN0IHJ0Yzo6UGFja2V0U29ja2V0VGNwT3B0aW9ucyYsIFdlYlBhZ2VQcm94eUlkZW50aWZp
ZXIsIGJvb2wgaXNSZWxheURpc2FibGVkKTsKICAgICBydGM6OkFzeW5jUGFja2V0U29ja2V0KiBj
cmVhdGVOZXdDb25uZWN0aW9uU29ja2V0KExpYldlYlJUQ1NvY2tldCYsIFdlYkNvcmU6OkxpYldl
YlJUQ1NvY2tldElkZW50aWZpZXIgbmV3Q29ubmVjdGlvblNvY2tldElkZW50aWZpZXIsIGNvbnN0
IHJ0Yzo6U29ja2V0QWRkcmVzcyYpOwogCiAgICAgTGliV2ViUlRDUmVzb2x2ZXIqIHJlc29sdmVy
KExpYldlYlJUQ1Jlc29sdmVySWRlbnRpZmllciBpZGVudGlmaWVyKSB7IHJldHVybiBtX3Jlc29s
dmVycy5nZXQoaWRlbnRpZmllcik7IH0K
</data>
<flag name="commit-queue"
          id="457390"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
      

    </bug>

</bugzilla>