<?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>223443</bug_id>
          
          <creation_ts>2021-03-18 06:53:38 -0700</creation_ts>
          <short_desc>Implement RTCDataChannel transfer out of process</short_desc>
          <delta_ts>2021-03-22 11:40:39 -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 Local 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>alecflett</cc>
    
    <cc>annulen</cc>
    
    <cc>beidson</cc>
    
    <cc>cdumez</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hta</cc>
    
    <cc>jer.noble</cc>
    
    <cc>jsbell</cc>
    
    <cc>kangil.han</cc>
    
    <cc>philipj</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>tommyw</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1741190</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-03-18 06:53:38 -0700</bug_when>
    <thetext>Implement RTCDataChannel transfer out of process</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1741193</commentid>
    <comment_count>1</comment_count>
      <attachid>423595</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-03-18 07:05:37 -0700</bug_when>
    <thetext>Created attachment 423595
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1741199</commentid>
    <comment_count>2</comment_count>
      <attachid>423600</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-03-18 07:41:05 -0700</bug_when>
    <thetext>Created attachment 423600
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1741284</commentid>
    <comment_count>3</comment_count>
      <attachid>423621</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-03-18 11:26:11 -0700</bug_when>
    <thetext>Created attachment 423621
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1741774</commentid>
    <comment_count>4</comment_count>
      <attachid>423621</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2021-03-19 10:29:49 -0700</bug_when>
    <thetext>Comment on attachment 423621
Patch

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

&gt; Source/WebKit/WebProcess/Network/webrtc/RTCDataChannelRemoteManager.cpp:73
&gt; +    ASSERT(Process::identifier() == localIdentifier.processIdentifier);
&gt; +    if (Process::identifier() != localIdentifier.processIdentifier)
&gt; +        return false;
&gt; +
&gt; +    ASSERT(Process::identifier() == localIdentifier.processIdentifier);
&gt; +    if (Process::identifier() != localIdentifier.processIdentifier)
&gt; +        return false;

This is included twice

&gt; Source/WebKit/WebProcess/Network/webrtc/RTCDataChannelRemoteManager.messages.in:34
&gt; +Â  Â  ChangeReadyState(struct WebCore::RTCDataChannelIdentifier handler, enum:uint8_t WebCore::RTCDataChannelState state);
&gt; +Â  Â  ReceiveData(struct WebCore::RTCDataChannelIdentifier handler, bool isRaw, IPC::DataReference data);
&gt; +Â  Â  DetectError(struct WebCore::RTCDataChannelIdentifier handler);
&gt; +Â  Â  BufferedAmountIsDecreasing(struct WebCore::RTCDataChannelIdentifier handler, size_t amount);

Are these tabs?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1742158</commentid>
    <comment_count>5</comment_count>
      <attachid>423864</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-03-22 01:57:54 -0700</bug_when>
    <thetext>Created attachment 423864
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1742314</commentid>
    <comment_count>6</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-03-22 11:29:41 -0700</bug_when>
    <thetext>Committed r274758: &lt;https://commits.webkit.org/r274758&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 423864.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1742315</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-03-22 11:30:24 -0700</bug_when>
    <thetext>&lt;rdar://problem/75700538&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1742324</commentid>
    <comment_count>8</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-03-22 11:40:39 -0700</bug_when>
    <thetext>(In reply to Eric Carlson from comment #4)
&gt; Comment on attachment 423621 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=423621&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/WebProcess/Network/webrtc/RTCDataChannelRemoteManager.cpp:73
&gt; &gt; +    ASSERT(Process::identifier() == localIdentifier.processIdentifier);
&gt; &gt; +    if (Process::identifier() != localIdentifier.processIdentifier)
&gt; &gt; +        return false;
&gt; &gt; +
&gt; &gt; +    ASSERT(Process::identifier() == localIdentifier.processIdentifier);
&gt; &gt; +    if (Process::identifier() != localIdentifier.processIdentifier)
&gt; &gt; +        return false;
&gt; 
&gt; This is included twice

Fixed

&gt; &gt; Source/WebKit/WebProcess/Network/webrtc/RTCDataChannelRemoteManager.messages.in:34
&gt; &gt; +Â  Â  ChangeReadyState(struct WebCore::RTCDataChannelIdentifier handler, enum:uint8_t WebCore::RTCDataChannelState state);
&gt; &gt; +Â  Â  ReceiveData(struct WebCore::RTCDataChannelIdentifier handler, bool isRaw, IPC::DataReference data);
&gt; &gt; +Â  Â  DetectError(struct WebCore::RTCDataChannelIdentifier handler);
&gt; &gt; +Â  Â  BufferedAmountIsDecreasing(struct WebCore::RTCDataChannelIdentifier handler, size_t amount);
&gt; 
&gt; Are these tabs?

Not sure, but I removed them, thanks!</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>423595</attachid>
            <date>2021-03-18 07:05:37 -0700</date>
            <delta_ts>2021-03-18 08:00:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-223443-20210318150533.patch</filename>
            <type>text/plain</type>
            <size>147183</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0NDcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzk0MDkxM2ExNjU1N2Ex
N2MxNTU4ZTc3NWU2N2VkMTIyOWU1MzIxYi4uMzFiNDE3OTI3ZTcxYmNmZDkzNmUzOGJkNWI2ZmQw
MTI4MjQyZjRlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg5IEBACisyMDIxLTAzLTE4ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgUlRDRGF0
YUNoYW5uZWwgdHJhbnNmZXIgb3V0IG9mIHByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMzQ0MworCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBzZXJpYWxpemF0aW9uL2Rl
c2VyaWFsaXphdGlvbiBvZiBSVENEYXRhQ2hhbm5lbCBpbmZvcm1hdGlvbiBzbyB0aGF0IGl0IGNh
biBiZSBNZXNzYWdlUG9ydCB0cmFuc2ZlcmVkIG9yIHRyYW5zZmVyZWQgdG8gb3V0LW9mLXByb2Nl
c3MgY29udGV4dHMgbGlrZSBXaW5kb3cgb3IgU2VydmljZSBXb3JrZXIuCisgICAgICAgIEFkZCBp
bmZyYXN0cnVjdHVyZSBmb3IgcmVtb3RlIHNvdXJjZXMgKHRoYXQgYWxsb3dzIHRvIHNlbmQgZGF0
YSBvciBjbG9zZSBkYXRhIGNoYW5uZWxzKSBhbmQgcmVtb3RlIGhhbmRsZXJzIHdoaWNoIHJlY2Vp
dmUgbWVzc2FnZXMgZnJvbSBvdXQtb2YtcHJvY2VzcyBkYXRhIGNoYW5uZWxzLgorCisgICAgICAg
IENvdmVyZWQgYnkgQVBJIHRlc3RzLgorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9E
ZXRhY2hlZFJUQ0RhdGFDaGFubmVsLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6RGV0YWNo
ZWRSVENEYXRhQ2hhbm5lbDo6RGV0YWNoZWRSVENEYXRhQ2hhbm5lbCk6CisgICAgICAgIChXZWJD
b3JlOjpEZXRhY2hlZFJUQ0RhdGFDaGFubmVsOjptZW1vcnlDb3N0IGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OkRldGFjaGVkUlRDRGF0YUNoYW5uZWw6OmVuY29kZSBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpEZXRhY2hlZFJUQ0RhdGFDaGFubmVsOjpkZWNvZGUpOgorICAgICAgICAqIE1v
ZHVsZXMvbWVkaWFzdHJlYW0vUlRDRGF0YUNoYW5uZWwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UlRDRGF0YUNoYW5uZWw6OlJUQ0RhdGFDaGFubmVsKToKKyAgICAgICAgKFdlYkNvcmU6OnJ0Y0Rh
dGFDaGFubmVsTG9jYWxNYXApOgorICAgICAgICAoV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWw6Omhh
bmRsZXJGcm9tSWRlbnRpZmllcik6CisgICAgICAgIChXZWJDb3JlOjpSVENEYXRhQ2hhbm5lbDo6
Y3JlYXRlKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsLmg6
CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRs
ZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsUmVtb3RlSGFu
ZGxlcjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsUmVtb3RlSGFu
ZGxlcjo6UlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJU
Q0RhdGFDaGFubmVsUmVtb3RlSGFuZGxlcjo6flJUQ0RhdGFDaGFubmVsUmVtb3RlSGFuZGxlcik6
CisgICAgICAgIChXZWJDb3JlOjpSVENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXI6OmRpZENoYW5n
ZVJlYWR5U3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5k
bGVyOjpkaWRSZWNlaXZlU3RyaW5nRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpSVENEYXRhQ2hh
bm5lbFJlbW90ZUhhbmRsZXI6OmRpZFJlY2VpdmVSYXdEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6
OlJUQ0RhdGFDaGFubmVsUmVtb3RlSGFuZGxlcjo6ZGlkRGV0ZWN0RXJyb3IpOgorICAgICAgICAo
V2ViQ29yZTo6UlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVyOjpidWZmZXJlZEFtb3VudElzRGVj
cmVhc2luZyk6CisgICAgICAgIChXZWJDb3JlOjpSVENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXI6
OnJlYWR5VG9TZW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsUmVtb3RlSGFu
ZGxlcjo6c2V0Q2xpZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsUmVtb3Rl
SGFuZGxlcjo6c2VuZFN0cmluZ0RhdGEpOgorICAgICAgICAoV2ViQ29yZTo6UlRDRGF0YUNoYW5u
ZWxSZW1vdGVIYW5kbGVyOjpzZW5kUmF3RGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpSVENEYXRh
Q2hhbm5lbFJlbW90ZUhhbmRsZXI6OmNsb3NlKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3Ry
ZWFtL1JUQ0RhdGFDaGFubmVsUmVtb3RlSGFuZGxlci5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1
bGVzL21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsUmVtb3RlU291cmNlLmNwcDogQ29waWVkIGZy
b20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDRGF0YUNoYW5uZWxIYW5k
bGVyLmguCisgICAgICAgIChXZWJDb3JlOjpSVENEYXRhQ2hhbm5lbFJlbW90ZVNvdXJjZTo6UlRD
RGF0YUNoYW5uZWxSZW1vdGVTb3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6UlRDRGF0YUNoYW5u
ZWxSZW1vdGVTb3VyY2U6On5SVENEYXRhQ2hhbm5lbFJlbW90ZVNvdXJjZSk6CisgICAgICAgICog
TW9kdWxlcy9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbFJlbW90ZVNvdXJjZS5oOiBBZGRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsUmVtb3RlU291cmNlOjpjcmVhdGUpOgor
ICAgICAgICAoV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWxSZW1vdGVTb3VyY2U6OnNlbmRTdHJpbmdE
YXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsUmVtb3RlU291cmNlOjpzZW5k
UmF3RGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpSVENEYXRhQ2hhbm5lbFJlbW90ZVNvdXJjZTo6
Y2xvc2UpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJU
Q0RhdGFDaGFubmVsSGFuZGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMaWJXZWJSVENEYXRh
Q2hhbm5lbEhhbmRsZXI6OnBvc3RUYXNrKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1
ZGlvV29ya2xldE1lc3NhZ2luZ1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvV29y
a2xldE1lc3NhZ2luZ1Byb3h5OjpjcmVhdGVSVENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXJDb25u
ZWN0aW9uKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldE1lc3NhZ2lu
Z1Byb3h5Lmg6CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1NlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWU6
OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSk6CisgICAgICAgICogYmluZGluZ3MvanMvU2VyaWFsaXpl
ZFNjcmlwdFZhbHVlLmg6CisgICAgICAgIChXZWJDb3JlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWU6
OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWU6
OmRlY29kZSk6CisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkRvY3VtZW50OjpjcmVhdGVSVENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXJDb25uZWN0aW9uKToK
KyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAgKiBkb20vU2NyaXB0RXhlY3V0aW9u
Q29udGV4dC5oOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6Y3Jl
YXRlUlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVyQ29ubmVjdGlvbik6CisgICAgICAgICogcGxh
dGZvcm0vU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIuaDogQ29waWVkIGZyb20gU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDRGF0YUNoYW5uZWxTdGF0ZS5oLgor
ICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsSGFuZGxlci5oOgor
ICAgICAgICAoV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWxJbml0OjplbmNvZGUgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWxJbml0OjpkZWNvZGUpOgorICAgICAgICAqIHBs
YXRmb3JtL21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsSWRlbnRpZmllci5oOiBDb3BpZWQgZnJv
bSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbEhhbmRs
ZXIuaC4KKyAgICAgICAgKFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsSWRlbnRpZmllcjo6ZW5jb2Rl
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsSWRlbnRpZmllcjo6ZGVj
b2RlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbFJlbW90
ZUhhbmRsZXJDb25uZWN0aW9uLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsSGFuZGxlci5oLgorICAgICAgICAqIHBsYXRmb3Jt
L21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsUmVtb3RlU291cmNlQ29ubmVjdGlvbi5oOiBDb3Bp
ZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5l
bEhhbmRsZXIuaC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5l
bFN0YXRlLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDUHJpb3JpdHlUeXBl
Lmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1By
b3ZpZGVyLmg6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpXb3JrZXJHbG9iYWxTY29wZTo6Y3JlYXRlUlRDRGF0YUNoYW5uZWxSZW1v
dGVIYW5kbGVyQ29ubmVjdGlvbik6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29w
ZS5oOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyTG9hZGVyUHJveHkuaDoKKyAgICAgICAgKiB3
b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtl
ck1lc3NhZ2luZ1Byb3h5OjpjcmVhdGVSVENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXJDb25uZWN0
aW9uKToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5Lmg6CisgICAgICAg
ICogd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZFByb3h5LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eTo6Y3JlYXRlUlRDRGF0
YUNoYW5uZWxSZW1vdGVIYW5kbGVyQ29ubmVjdGlvbik6CisgICAgICAgICogd29ya2Vycy9zZXJ2
aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZFByb3h5Lmg6CisKIDIwMjEtMDMtMTcgIFlv
dWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIFJUQ1J0cFNjcmlwdFRy
YW5zZm9ybWVyOjp3cml0YWJsZSBzaG91bGQgY2hlY2sgZm9yIG1fYmFja2VuZApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRl
eCAxMmY1ODg4YzBiNzcxNDhkNzU4NmNmYTY3YzhhMmZjZTYyMTFiNDJiLi4xYWJhMWE5YTc2ZDJl
N2RlOWNhNDNjZDQ4ZDE1NTdlYTllZTc3YWI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDg1IEBACisy
MDIxLTAzLTE4ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBJ
bXBsZW1lbnQgUlRDRGF0YUNoYW5uZWwgdHJhbnNmZXIgb3V0IG9mIHByb2Nlc3MKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMzQ0MworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBj
b25uZWN0aW5nIHJlbW90ZSBzb3VyY2VzIHRvIHJlbW90ZSBkYXRhIGNoYW5uZWxzLgorICAgICAg
ICBUaGlzIGlzIGRvbmUgYnkgY29ubmVjdGlvbiBkZXRhY2hlZCBkYXRhIGNoYW5uZWxzIHRvIHJl
bW90ZSBzb3VyY2UgdGhhdCB3aWxsIHNlbmQgbWVzc2FnZXMgdG8gbmV0d29yayBwcm9jZXNzLgor
ICAgICAgICBOZXR3b3JrIHByb2Nlc3MgdGhlbiBzZW5kcyB0byB0aGUgcHJvY2VzcyBpbiB3aGlj
aCB3YXMgcmVhdHRhY2hlZCB0aGUgZGF0YSBjaGFubmVsLgorICAgICAgICBQYWlyaW5nIG9mIGRh
dGEgY2hhbm5lbHMgaXMgZG9uZSBpbiBtYWluIHRocmVhZCB0aHJvdWdoIGNvbm5lY3RUb1NvdXJj
ZSBtZXNzYWdlLgorICAgICAgICBUaGUgZGF0YSB0aGVuIGZsb3dzIGluIGJhY2tncm91bmQgdGhy
ZWFkcywgbmV0d29yayBwcm9jZXNzIGJlaW5nIHRoZSBwcm94eSBiZXR3ZWVuIHdlYiBwcm9jZXNz
ZXMuCisgICAgICAgIFJUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlclByb3h5IGlzIHRoZSBmb3J3
YXJkaW5nIGVudGl0eSBpbiBOZXR3b3JrUHJvY2Vzcy4KKyAgICAgICAgUlRDRGF0YUNoYW5uZWxS
ZW1vdGVNYW5hZ2VyIGlzIHRoZSBlbnRpdHkgaW4gV2ViUHJvY2VzcyBkb2luZyB0aGUgbWVzc2Fn
aW5nIGZyb20gYW5kIHRvIGRhdGEgY2hhbm5lbHMuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4
dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAq
IERlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3Vy
Y2VzLm1ha2U6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzczo6fk5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNvbm5lY3RUb1JUQ0RhdGFDaGFubmVsUmVt
b3RlU291cmNlKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3M6OnJlZ2lzdGVyVG9SVENEYXRhQ2hhbm5lbFByb3h5KToKKyAgICAgICAgKFdlYktpdDo6TmV0
d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnVucmVnaXN0ZXJUb1JUQ0RhdGFDaGFubmVsUHJv
eHkpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nl
c3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6cnRjRGF0YUNoYW5uZWxQ
cm94eSk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaDoKKyAgICAg
ICAgKiBOZXR3b3JrUHJvY2Vzcy93ZWJydGMvUlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyUHJv
eHkuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5h
Z2VyUHJveHk6OlJUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlclByb3h5KToKKyAgICAgICAgKFdl
YktpdDo6UlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyUHJveHk6OnJlZ2lzdGVyQ29ubmVjdGlv
blRvV2ViUHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OlJUQ0RhdGFDaGFubmVsUmVtb3RlTWFu
YWdlclByb3h5Ojp1bnJlZ2lzdGVyQ29ubmVjdGlvblRvV2ViUHJvY2Vzcyk6CisgICAgICAgIChX
ZWJLaXQ6OlJUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlclByb3h5OjpzZW5kRGF0YSk6CisgICAg
ICAgIChXZWJLaXQ6OlJUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlclByb3h5OjpjbG9zZSk6Cisg
ICAgICAgIChXZWJLaXQ6OlJUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlclByb3h5OjpjaGFuZ2VS
ZWFkeVN0YXRlKToKKyAgICAgICAgKFdlYktpdDo6UlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2Vy
UHJveHk6OnJlY2VpdmVEYXRhKToKKyAgICAgICAgKFdlYktpdDo6UlRDRGF0YUNoYW5uZWxSZW1v
dGVNYW5hZ2VyUHJveHk6OmRldGVjdEVycm9yKToKKyAgICAgICAgKFdlYktpdDo6UlRDRGF0YUNo
YW5uZWxSZW1vdGVNYW5hZ2VyUHJveHk6OmJ1ZmZlcmVkQW1vdW50SXNEZWNyZWFzaW5nKToKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy93ZWJydGMvUlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2Vy
UHJveHkuaDogQWRkZWQuCisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mvd2VicnRjL1JUQ0RhdGFD
aGFubmVsUmVtb3RlTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluOiBBZGRlZC4KKyAgICAgICAgKiBT
b3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpjb25uZWN0VG9S
VENEYXRhQ2hhbm5lbFJlbW90ZVNvdXJjZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3Jr
L05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29y
ay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJv
Y2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5jcHA6CisgICAgICAgIChXZWJL
aXQ6OkxpYldlYlJUQ1Byb3ZpZGVyOjpjcmVhdGVSVENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXJD
b25uZWN0aW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJU
Q1Byb3ZpZGVyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9SVENEYXRh
Q2hhbm5lbFJlbW90ZU1hbmFnZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UlRDRGF0
YUNoYW5uZWxSZW1vdGVNYW5hZ2VyOjpzaGFyZWRNYW5hZ2VyKToKKyAgICAgICAgKFdlYktpdDo6
UlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyOjpSVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXIp
OgorICAgICAgICAoV2ViS2l0OjpSVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXI6OnNldENvbm5l
Y3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpSVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXI6OmNv
bm5lY3RUb1JlbW90ZVNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlJUQ0RhdGFDaGFubmVsUmVt
b3RlTWFuYWdlcjo6cmVtb3RlSGFuZGxlckNvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpS
VENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXI6OnJlbW90ZVNvdXJjZUNvbm5lY3Rpb24pOgorICAg
ICAgICAoV2ViS2l0OjpSVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXI6OnBvc3RUYXNrVG9IYW5k
bGVyKToKKyAgICAgICAgKFdlYktpdDo6UlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyOjpzb3Vy
Y2VGcm9tSWRlbnRpZmllcik6CisgICAgICAgIChXZWJLaXQ6OlJUQ0RhdGFDaGFubmVsUmVtb3Rl
TWFuYWdlcjo6c2VuZERhdGEpOgorICAgICAgICAoV2ViS2l0OjpSVENEYXRhQ2hhbm5lbFJlbW90
ZU1hbmFnZXI6OmNsb3NlKToKKyAgICAgICAgKFdlYktpdDo6UlRDRGF0YUNoYW5uZWxSZW1vdGVN
YW5hZ2VyOjpjaGFuZ2VSZWFkeVN0YXRlKToKKyAgICAgICAgKFdlYktpdDo6UlRDRGF0YUNoYW5u
ZWxSZW1vdGVNYW5hZ2VyOjpyZWNlaXZlRGF0YSk6CisgICAgICAgIChXZWJLaXQ6OlJUQ0RhdGFD
aGFubmVsUmVtb3RlTWFuYWdlcjo6ZGV0ZWN0RXJyb3IpOgorICAgICAgICAoV2ViS2l0OjpSVENE
YXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXI6OmJ1ZmZlcmVkQW1vdW50SXNEZWNyZWFzaW5nKToKKyAg
ICAgICAgKFdlYktpdDo6UlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyOjpSZW1vdGVIYW5kbGVy
Q29ubmVjdGlvbjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6UlRDRGF0YUNoYW5uZWxSZW1v
dGVNYW5hZ2VyOjpSZW1vdGVIYW5kbGVyQ29ubmVjdGlvbjo6UmVtb3RlSGFuZGxlckNvbm5lY3Rp
b24pOgorICAgICAgICAoV2ViS2l0OjpSVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXI6OlJlbW90
ZUhhbmRsZXJDb25uZWN0aW9uOjpjb25uZWN0VG9Tb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpS
VENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXI6OlJlbW90ZUhhbmRsZXJDb25uZWN0aW9uOjpzZW5k
RGF0YSk6CisgICAgICAgIChXZWJLaXQ6OlJUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlcjo6UmVt
b3RlSGFuZGxlckNvbm5lY3Rpb246OmNsb3NlKToKKyAgICAgICAgKFdlYktpdDo6UlRDRGF0YUNo
YW5uZWxSZW1vdGVNYW5hZ2VyOjpSZW1vdGVTb3VyY2VDb25uZWN0aW9uOjpjcmVhdGUpOgorICAg
ICAgICAoV2ViS2l0OjpSVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXI6OlJlbW90ZVNvdXJjZUNv
bm5lY3Rpb246OlJlbW90ZVNvdXJjZUNvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpSVENE
YXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXI6OlJlbW90ZVNvdXJjZUNvbm5lY3Rpb246OmRpZENoYW5n
ZVJlYWR5U3RhdGUpOgorICAgICAgICAoV2ViS2l0OjpSVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFn
ZXI6OlJlbW90ZVNvdXJjZUNvbm5lY3Rpb246OmRpZFJlY2VpdmVTdHJpbmdEYXRhKToKKyAgICAg
ICAgKFdlYktpdDo6UlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyOjpSZW1vdGVTb3VyY2VDb25u
ZWN0aW9uOjpkaWRSZWNlaXZlUmF3RGF0YSk6CisgICAgICAgIChXZWJLaXQ6OlJUQ0RhdGFDaGFu
bmVsUmVtb3RlTWFuYWdlcjo6UmVtb3RlU291cmNlQ29ubmVjdGlvbjo6ZGlkRGV0ZWN0RXJyb3Ip
OgorICAgICAgICAoV2ViS2l0OjpSVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXI6OlJlbW90ZVNv
dXJjZUNvbm5lY3Rpb246OmJ1ZmZlcmVkQW1vdW50SXNEZWNyZWFzaW5nKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL1JUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlci5oOiBB
ZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL1JUQ0RhdGFDaGFubmVs
UmVtb3RlTWFuYWdlci5tZXNzYWdlcy5pbjogQ29waWVkIGZyb20gU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluLgorICAg
ICAgICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjppbnN0
YWxsU2VydmljZVdvcmtlcik6CisKIDIwMjEtMDMtMTcgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5A
YXBwbGUuY29tPgogCiAgICAgICAgIEdlb2xvY2F0aW9uIEFQSSBkb2VzIG5vdCB3b3JrIGluIFdL
V2ViVmlldyB3aXRoIGN1c3RvbSBVUkwgc2NoZW1lIGhhbmRsZXIKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCmlu
ZGV4IDNiYzdiZjY3ZWEwMTQ3ZDk5ODhkNTQ3Mzg5MGRiMDliYzc1NDM4NjQuLmY1MDIzZGNkZGQ1
ZmM0YWYxMWI3NjdjMmFkZjIwMmM2YWU2NDk5ODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L0hlYWRlcnMuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQpAQCAtMTAz
LDExICsxMDMsMTUgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogCiAg
ICAgTW9kdWxlcy9tZWRpYXNvdXJjZS9TYW1wbGVNYXAuaAogCisgICAgTW9kdWxlcy9tZWRpYXN0
cmVhbS9EZXRhY2hlZFJUQ0RhdGFDaGFubmVsLmgKICAgICBNb2R1bGVzL21lZGlhc3RyZWFtL0Rv
dWJsZVJhbmdlLmgKICAgICBNb2R1bGVzL21lZGlhc3RyZWFtL0xvbmdSYW5nZS5oCiAgICAgTW9k
dWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmgKICAgICBNb2R1bGVzL21lZGlhc3Ry
ZWFtL01lZGlhVHJhY2tDb25zdHJhaW50cy5oCiAgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9SVEND
b250cm9sbGVyLmgKKyAgICBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsLmgKKyAg
ICBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsUmVtb3RlSGFuZGxlci5oCisgICAg
TW9kdWxlcy9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbFJlbW90ZVNvdXJjZS5oCiAgICAgTW9k
dWxlcy9tZWRpYXN0cmVhbS9TVFVOTWVzc2FnZVBhcnNpbmcuaAogICAgIE1vZHVsZXMvbWVkaWFz
dHJlYW0vVXNlck1lZGlhQ2xpZW50LmgKICAgICBNb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRp
YUNvbnRyb2xsZXIuaApAQCAtMTA4MCw2ICsxMDg0LDcgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9G
UkFNRVdPUktfSEVBREVSUwogICAgIHBsYXRmb3JtL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5o
CiAgICAgcGxhdGZvcm0vU1NMS2V5R2VuZXJhdG9yLmgKICAgICBwbGF0Zm9ybS9TY3JlZW5Qcm9w
ZXJ0aWVzLmgKKyAgICBwbGF0Zm9ybS9TY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllci5o
CiAgICAgcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuaAogICAgIHBsYXRmb3JtL1Njcm9sbFR5cGVz
LmgKICAgICBwbGF0Zm9ybS9TY3JvbGxWaWV3LmgKQEAgLTEzNjUsNiArMTM3MCwxMiBAQCBzZXQo
V2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgcGxhdGZvcm0vbWVkaWFzdHJl
YW0vTWVkaWFTdHJlYW1Qcml2YXRlLmgKICAgICBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0
cmVhbVJlcXVlc3QuaAogICAgIHBsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tQ
cml2YXRlLmgKKyAgICBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbEhhbmRsZXIu
aAorICAgIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsSWRlbnRpZmllci5oCisg
ICAgcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVyQ29ubmVj
dGlvbi5oCisgICAgcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDRGF0YUNoYW5uZWxSZW1vdGVTb3Vy
Y2VDb25uZWN0aW9uLmgKKyAgICBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbFN0
YXRlLmgKKyAgICBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENQcmlvcml0eVR5cGUuaAogICAgIHBs
YXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaAogICAgIHBsYXRmb3JtL21l
ZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMuaAogICAgIHBsYXRmb3Jt
L21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuaApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9EZXRhY2hlZFJUQ0RhdGFDaGFubmVsLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL0RldGFjaGVkUlRDRGF0YUNoYW5u
ZWwuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi40ZDkxNmY4OWJmNWZhOGE4ZDAxYTkwMWFhODExMGM2NjEyYzI5NmM5
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9E
ZXRhY2hlZFJUQ0RhdGFDaGFubmVsLmgKQEAgLTAsMCArMSw5MSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDE3LTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisg
KiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04K
KyAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoV0VCX1JUQykKKworI2luY2x1ZGUgIlJUQ0Rh
dGFDaGFubmVsSGFuZGxlci5oIgorI2luY2x1ZGUgIlJUQ0RhdGFDaGFubmVsSWRlbnRpZmllci5o
IgorI2luY2x1ZGUgIlJUQ0RhdGFDaGFubmVsU3RhdGUuaCIKKyNpbmNsdWRlIDx3dGYvdGV4dC9X
VEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdHJ1Y3QgRGV0YWNoZWRSVENE
YXRhQ2hhbm5lbCB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoRGV0YWNoZWRSVENEYXRhQ2hh
bm5lbCk7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgRGV0YWNo
ZWRSVENEYXRhQ2hhbm5lbChSVENEYXRhQ2hhbm5lbElkZW50aWZpZXIgaWRlbnRpZmllciwgY29u
c3QgU3RyaW5nJiBsYWJlbCwgY29uc3QgUlRDRGF0YUNoYW5uZWxJbml0JiBvcHRpb25zLCBSVENE
YXRhQ2hhbm5lbFN0YXRlIHN0YXRlKQorICAgICAgICA6IGlkZW50aWZpZXIoaWRlbnRpZmllcikK
KyAgICAgICAgLCBsYWJlbChsYWJlbC5pc29sYXRlZENvcHkoKSkKKyAgICAgICAgLCBvcHRpb25z
KG9wdGlvbnMuaXNvbGF0ZWRDb3B5KCkpCisgICAgICAgICwgc3RhdGUoc3RhdGUpCisgICAgewor
ICAgIH0KKworICAgIHNpemVfdCBtZW1vcnlDb3N0KCkgY29uc3QgeyByZXR1cm4gbGFiZWwuc2l6
ZUluQnl0ZXMoKTsgfQorCisgICAgUlRDRGF0YUNoYW5uZWxJZGVudGlmaWVyIGlkZW50aWZpZXI7
CisgICAgU3RyaW5nIGxhYmVsOworICAgIFJUQ0RhdGFDaGFubmVsSW5pdCBvcHRpb25zOworICAg
IFJUQ0RhdGFDaGFubmVsU3RhdGUgc3RhdGUgeyBSVENEYXRhQ2hhbm5lbFN0YXRlOjpDbG9zZWQg
fTsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBj
b25zdDsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjp1bmlxdWVfcHRy
PERldGFjaGVkUlRDRGF0YUNoYW5uZWw+IGRlY29kZShEZWNvZGVyJik7Cit9OworCit0ZW1wbGF0
ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIERldGFjaGVkUlRDRGF0YUNoYW5uZWw6OmVuY29kZShFbmNv
ZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAgIGVuY29kZXIgPDwgaWRlbnRpZmllciA8PCBsYWJl
bCA8PCBvcHRpb25zIDw8IHN0YXRlOworfQorCit0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGQ6
OnVuaXF1ZV9wdHI8RGV0YWNoZWRSVENEYXRhQ2hhbm5lbD4gRGV0YWNoZWRSVENEYXRhQ2hhbm5l
bDo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCit7CisgICAgT3B0aW9uYWw8UlRDRGF0YUNoYW5u
ZWxJZGVudGlmaWVyPiBpZGVudGlmaWVyOworICAgIGRlY29kZXIgPj4gaWRlbnRpZmllcjsKKyAg
ICBpZiAoIWlkZW50aWZpZXIpCisgICAgICAgIHJldHVybiB7IH07CisKKyAgICBTdHJpbmcgbGFi
ZWw7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShsYWJlbCkpCisgICAgICAgIHJldHVybiB7IH07
CisKKyAgICBPcHRpb25hbDxSVENEYXRhQ2hhbm5lbEluaXQ+IG9wdGlvbnM7CisgICAgZGVjb2Rl
ciA+PiBvcHRpb25zOworICAgIGlmICghb3B0aW9ucykKKyAgICAgICAgcmV0dXJuIHsgfTsKKwor
ICAgIE9wdGlvbmFsPFJUQ0RhdGFDaGFubmVsU3RhdGU+IHN0YXRlOworICAgIGRlY29kZXIgPj4g
c3RhdGU7CisgICAgaWYgKCFzdGF0ZSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKworICAgIHJldHVy
biBtYWtlVW5pcXVlPERldGFjaGVkUlRDRGF0YUNoYW5uZWw+KCppZGVudGlmaWVyLCBXVEZNb3Zl
KGxhYmVsKSwgKm9wdGlvbnMsICpzdGF0ZSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
KworI2VuZGlmIC8vIEVOQUJMRShXRUJfUlRDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsLmNwcAppbmRleCAyNTRjMjBmYmI4NjQ1
YmMyNTgyYTkyZTMzNTZlNWQ0MWZlYjkzMzEzLi45YjAwMTRjYWFjM2UyODRhZjhkMmZiYjJmNjRj
MzQ3ZDNjZjNiNGE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL1JUQ0RhdGFDaGFubmVsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL1JUQ0RhdGFDaGFubmVsLmNwcApAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIkV4
Y2VwdGlvbkNvZGUuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTWVzc2FnZUV2
ZW50LmgiCisjaW5jbHVkZSAiUlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVyLmgiCiAjaW5jbHVk
ZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgogI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgog
I2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0FycmF5QnVmZmVyVmlldy5oPgpAQCAtOTMsNyArOTQs
NyBAQCBOZXR3b3JrU2VuZFF1ZXVlIFJUQ0RhdGFDaGFubmVsOjpjcmVhdGVNZXNzYWdlUXVldWUo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udAogUlRDRGF0YUNoYW5uZWw6OlJUQ0RhdGFDaGFu
bmVsKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIHN0ZDo6dW5pcXVlX3B0cjxSVENE
YXRhQ2hhbm5lbEhhbmRsZXI+JiYgaGFuZGxlciwgU3RyaW5nJiYgbGFiZWwsIFJUQ0RhdGFDaGFu
bmVsSW5pdCYmIG9wdGlvbnMpCiAgICAgOiBBY3RpdmVET01PYmplY3QoJmNvbnRleHQpCiAgICAg
LCBtX2hhbmRsZXIoV1RGTW92ZShoYW5kbGVyKSkKLSAgICAsIG1faWRlbnRpZmllcihSVENEYXRh
Q2hhbm5lbElkZW50aWZpZXIgeyBQcm9jZXNzOjppZGVudGlmaWVyKCksIE9iamVjdElkZW50aWZp
ZXI8UlRDRGF0YUNoYW5uZWxJZGVudGlmaWVyVHlwZT46OmdlbmVyYXRlVGhyZWFkU2FmZSgpIH0p
CisgICAgLCBtX2lkZW50aWZpZXIoUlRDRGF0YUNoYW5uZWxJZGVudGlmaWVyIHsgUHJvY2Vzczo6
aWRlbnRpZmllcigpLCBPYmplY3RJZGVudGlmaWVyPFJUQ0RhdGFDaGFubmVsTG9jYWxJZGVudGlm
aWVyVHlwZT46OmdlbmVyYXRlVGhyZWFkU2FmZSgpIH0pCiAgICAgLCBtX2NvbnRleHRJZGVudGlm
aWVyKGNvbnRleHQuaXNEb2N1bWVudCgpID8gU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZp
ZXIgeyB9IDogY29udGV4dC5jb250ZXh0SWRlbnRpZmllcigpKQogICAgICwgbV9sYWJlbChXVEZN
b3ZlKGxhYmVsKSkKICAgICAsIG1fb3B0aW9ucyhXVEZNb3ZlKG9wdGlvbnMpKQpAQCAtMjUyLDEw
ICsyNTMsMTAgQEAgdm9pZCBSVENEYXRhQ2hhbm5lbDo6c2NoZWR1bGVEaXNwYXRjaEV2ZW50KFJl
ZjxFdmVudD4mJiBldmVudCkKIH0KIAogc3RhdGljIExvY2sgc19ydGNEYXRhQ2hhbm5lbExvY2Fs
TWFwTG9jazsKLXN0YXRpYyBIYXNoTWFwPE9iamVjdElkZW50aWZpZXI8UlRDRGF0YUNoYW5uZWxJ
ZGVudGlmaWVyVHlwZT4sIHN0ZDo6dW5pcXVlX3B0cjxSVENEYXRhQ2hhbm5lbEhhbmRsZXI+PiYg
cnRjRGF0YUNoYW5uZWxMb2NhbE1hcCgpCitzdGF0aWMgSGFzaE1hcDxSVENEYXRhQ2hhbm5lbExv
Y2FsSWRlbnRpZmllciwgc3RkOjp1bmlxdWVfcHRyPFJUQ0RhdGFDaGFubmVsSGFuZGxlcj4+JiBy
dGNEYXRhQ2hhbm5lbExvY2FsTWFwKCkKIHsKICAgICBBU1NFUlQoc19ydGNEYXRhQ2hhbm5lbExv
Y2FsTWFwTG9jay5pc0hlbGQoKSk7Ci0gICAgc3RhdGljIExhenlOZXZlckRlc3Ryb3llZDxIYXNo
TWFwPE9iamVjdElkZW50aWZpZXI8UlRDRGF0YUNoYW5uZWxJZGVudGlmaWVyVHlwZT4sIHN0ZDo6
dW5pcXVlX3B0cjxSVENEYXRhQ2hhbm5lbEhhbmRsZXI+Pj4gbWFwOworICAgIHN0YXRpYyBMYXp5
TmV2ZXJEZXN0cm95ZWQ8SGFzaE1hcDxSVENEYXRhQ2hhbm5lbExvY2FsSWRlbnRpZmllciwgc3Rk
Ojp1bmlxdWVfcHRyPFJUQ0RhdGFDaGFubmVsSGFuZGxlcj4+PiBtYXA7CiAgICAgc3RhdGljIHN0
ZDo6b25jZV9mbGFnIG9uY2VLZXk7CiAgICAgc3RkOjpjYWxsX29uY2Uob25jZUtleSwgWyZdIHsK
ICAgICAgICAgbWFwLmNvbnN0cnVjdCgpOwpAQCAtMjkzLDYgKzI5NCwxMiBAQCB2b2lkIFJUQ0Rh
dGFDaGFubmVsOjpyZW1vdmVGcm9tRGF0YUNoYW5uZWxMb2NhbE1hcElmTmVlZGVkKCkKICAgICBy
dGNEYXRhQ2hhbm5lbExvY2FsTWFwKCkucmVtb3ZlKGlkZW50aWZpZXIoKS5jaGFubmVsSWRlbnRp
Zmllcik7CiB9CiAKK3N0ZDo6dW5pcXVlX3B0cjxSVENEYXRhQ2hhbm5lbEhhbmRsZXI+IFJUQ0Rh
dGFDaGFubmVsOjpoYW5kbGVyRnJvbUlkZW50aWZpZXIoUlRDRGF0YUNoYW5uZWxMb2NhbElkZW50
aWZpZXIgY2hhbm5lbElkZW50aWZpZXIpCit7CisgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhz
X3J0Y0RhdGFDaGFubmVsTG9jYWxNYXBMb2NrKTsKKyAgICByZXR1cm4gcnRjRGF0YUNoYW5uZWxM
b2NhbE1hcCgpLnRha2UoY2hhbm5lbElkZW50aWZpZXIpOworfQorCiBzdGF0aWMgUmVmPFJUQ0Rh
dGFDaGFubmVsPiBjcmVhdGVDbG9zZWRDaGFubmVsKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNv
bnRleHQsIFN0cmluZyYmIGxhYmVsLCBSVENEYXRhQ2hhbm5lbEluaXQmJiBvcHRpb25zKQogewog
ICAgIGF1dG8gY2hhbm5lbCA9IFJUQ0RhdGFDaGFubmVsOjpjcmVhdGUoY29udGV4dCwgbnVsbHB0
ciwgV1RGTW92ZShsYWJlbCksIFdURk1vdmUob3B0aW9ucykpOwpAQCAtMzAyLDE4ICszMDksMjUg
QEAgc3RhdGljIFJlZjxSVENEYXRhQ2hhbm5lbD4gY3JlYXRlQ2xvc2VkQ2hhbm5lbChTY3JpcHRF
eGVjdXRpb25Db250ZXh0JiBjb250ZXh0LAogCiBSZWY8UlRDRGF0YUNoYW5uZWw+IFJUQ0RhdGFD
aGFubmVsOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgUlRDRGF0YUNo
YW5uZWxJZGVudGlmaWVyIGlkZW50aWZpZXIsIFN0cmluZyYmIGxhYmVsLCBSVENEYXRhQ2hhbm5l
bEluaXQmJiBvcHRpb25zLCBSVENEYXRhQ2hhbm5lbFN0YXRlIHN0YXRlKQogewotICAgIGlmIChp
ZGVudGlmaWVyLnByb2Nlc3NJZGVudGlmaWVyICE9IFByb2Nlc3M6OmlkZW50aWZpZXIoKSkgewot
ICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihXZWJSVEMsICJPdXQtb2YtcHJvY2VzcyBkYXRhIGNo
YW5uZWxzIGFyZSBub3QgeWV0IHN1cHBvcnRlZCIpOwotICAgICAgICByZXR1cm4gY3JlYXRlQ2xv
c2VkQ2hhbm5lbChjb250ZXh0LCBXVEZNb3ZlKGxhYmVsKSwgV1RGTW92ZShvcHRpb25zKSk7Cisg
ICAgUlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVyKiByZW1vdGVIYW5kbGVyUHRyID0gbnVsbHB0
cjsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8UlRDRGF0YUNoYW5uZWxIYW5kbGVyPiBoYW5kbGVyOwor
ICAgIGlmIChpZGVudGlmaWVyLnByb2Nlc3NJZGVudGlmaWVyID09IFByb2Nlc3M6OmlkZW50aWZp
ZXIoKSkKKyAgICAgICAgaGFuZGxlciA9IFJUQ0RhdGFDaGFubmVsOjpoYW5kbGVyRnJvbUlkZW50
aWZpZXIoaWRlbnRpZmllci5jaGFubmVsSWRlbnRpZmllcik7CisgICAgZWxzZSB7CisgICAgICAg
IGF1dG8gcmVtb3RlSGFuZGxlciA9IFJUQ0RhdGFDaGFubmVsUmVtb3RlSGFuZGxlcjo6Y3JlYXRl
KGlkZW50aWZpZXIsIGNvbnRleHQuY3JlYXRlUlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVyQ29u
bmVjdGlvbigpKTsKKyAgICAgICAgcmVtb3RlSGFuZGxlclB0ciA9IHJlbW90ZUhhbmRsZXIuZ2V0
KCk7CisgICAgICAgIGhhbmRsZXIgPSBXVEZNb3ZlKHJlbW90ZUhhbmRsZXIpOwogICAgIH0KIAot
ICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2soc19ydGNEYXRhQ2hhbm5lbExvY2FsTWFwTG9jayk7
Ci0gICAgYXV0byBoYW5kbGVyID0gcnRjRGF0YUNoYW5uZWxMb2NhbE1hcCgpLnRha2UoaWRlbnRp
Zmllci5jaGFubmVsSWRlbnRpZmllcik7CiAgICAgaWYgKCFoYW5kbGVyKQogICAgICAgICByZXR1
cm4gY3JlYXRlQ2xvc2VkQ2hhbm5lbChjb250ZXh0LCBXVEZNb3ZlKGxhYmVsKSwgV1RGTW92ZShv
cHRpb25zKSk7CiAKICAgICBhdXRvIGNoYW5uZWwgPSBSVENEYXRhQ2hhbm5lbDo6Y3JlYXRlKGNv
bnRleHQsIFdURk1vdmUoaGFuZGxlciksIFdURk1vdmUobGFiZWwpLCBXVEZNb3ZlKG9wdGlvbnMp
KTsKICAgICBjaGFubmVsLT5tX3JlYWR5U3RhdGUgPSBzdGF0ZTsKKworICAgIGlmIChyZW1vdGVI
YW5kbGVyUHRyKQorICAgICAgICByZW1vdGVIYW5kbGVyUHRyLT5zZXRMb2NhbElkZW50aWZpZXIo
Y2hhbm5lbC0+aWRlbnRpZmllcigpKTsKKwogICAgIHJldHVybiBjaGFubmVsOwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVs
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsLmgK
aW5kZXggNTkwYTljYjdlZTRjZjQxYWM5NjM0NDBiZGVjMDkxYjhiODQwYzFiZC4uNjAxZDg4OTQy
NTc0NjU5OGM0M2FjZTc1Y2FmNWE0MmM4MjFlOWMyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRGF0YUNoYW5uZWwuaApAQCAtMjgsMTMgKzI4LDE0
IEBACiAjaWYgRU5BQkxFKFdFQl9SVEMpCiAKICNpbmNsdWRlICJBY3RpdmVET01PYmplY3QuaCIK
KyNpbmNsdWRlICJEZXRhY2hlZFJUQ0RhdGFDaGFubmVsLmgiCiAjaW5jbHVkZSAiRXZlbnQuaCIK
ICNpbmNsdWRlICJFdmVudFRhcmdldC5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbk9yLmgiCiAjaW5j
bHVkZSAiTmV0d29ya1NlbmRRdWV1ZS5oIgotI2luY2x1ZGUgIlByb2Nlc3NJZGVudGlmaWVyLmgi
CiAjaW5jbHVkZSAiUlRDRGF0YUNoYW5uZWxIYW5kbGVyLmgiCiAjaW5jbHVkZSAiUlRDRGF0YUNo
YW5uZWxIYW5kbGVyQ2xpZW50LmgiCisjaW5jbHVkZSAiUlRDRGF0YUNoYW5uZWxJZGVudGlmaWVy
LmgiCiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgogI2luY2x1ZGUgIlNjcmlw
dFdyYXBwYWJsZS5oIgogI2luY2x1ZGUgIlRpbWVyLmgiCkBAIC00OSwzOSArNTAsNiBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBCbG9iOwogY2xhc3MgUlRDUGVlckNvbm5lY3Rpb25IYW5k
bGVyOwogCi1lbnVtIFJUQ0RhdGFDaGFubmVsSWRlbnRpZmllclR5cGUgeyB9Owotc3RydWN0IFJU
Q0RhdGFDaGFubmVsSWRlbnRpZmllciB7Ci0gICAgUHJvY2Vzc0lkZW50aWZpZXIgcHJvY2Vzc0lk
ZW50aWZpZXI7Ci0gICAgT2JqZWN0SWRlbnRpZmllcjxSVENEYXRhQ2hhbm5lbElkZW50aWZpZXJU
eXBlPiBjaGFubmVsSWRlbnRpZmllcjsKLQotICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZv
aWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKLSAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBz
dGF0aWMgT3B0aW9uYWw8UlRDRGF0YUNoYW5uZWxJZGVudGlmaWVyPiBkZWNvZGUoRGVjb2RlciYp
OwotCi0jaWYgIUxPR19ESVNBQkxFRAotICAgIFN0cmluZyBsb2dTdHJpbmcoKSBjb25zdDsKLSNl
bmRpZgotfTsKLQotc3RydWN0IERldGFjaGVkUlRDRGF0YUNoYW5uZWwgewotICAgIFdURl9NQUtF
X05PTkNPUFlBQkxFKERldGFjaGVkUlRDRGF0YUNoYW5uZWwpOwotICAgIFdURl9NQUtFX0ZBU1Rf
QUxMT0NBVEVEOwotcHVibGljOgotICAgIERldGFjaGVkUlRDRGF0YUNoYW5uZWwoUlRDRGF0YUNo
YW5uZWxJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbGFiZWwsIGNvbnN0IFJU
Q0RhdGFDaGFubmVsSW5pdCYgb3B0aW9ucywgUlRDRGF0YUNoYW5uZWxTdGF0ZSBzdGF0ZSkKLSAg
ICAgICAgOiBpZGVudGlmaWVyKGlkZW50aWZpZXIpCi0gICAgICAgICwgbGFiZWwobGFiZWwuaXNv
bGF0ZWRDb3B5KCkpCi0gICAgICAgICwgb3B0aW9ucyhvcHRpb25zLmlzb2xhdGVkQ29weSgpKQot
ICAgICAgICAsIHN0YXRlKHN0YXRlKQotICAgIHsKLSAgICB9Ci0KLSAgICBzaXplX3QgbWVtb3J5
Q29zdCgpIGNvbnN0IHsgcmV0dXJuIGxhYmVsLnNpemVJbkJ5dGVzKCk7IH0KLQotICAgIFJUQ0Rh
dGFDaGFubmVsSWRlbnRpZmllciBpZGVudGlmaWVyOwotICAgIFN0cmluZyBsYWJlbDsKLSAgICBS
VENEYXRhQ2hhbm5lbEluaXQgb3B0aW9uczsKLSAgICBSVENEYXRhQ2hhbm5lbFN0YXRlIHN0YXRl
IHsgUlRDRGF0YUNoYW5uZWxTdGF0ZTo6Q2xvc2VkIH07Ci19OwotCiBjbGFzcyBSVENEYXRhQ2hh
bm5lbCBmaW5hbCA6IHB1YmxpYyBBY3RpdmVET01PYmplY3QsIHB1YmxpYyBSVENEYXRhQ2hhbm5l
bEhhbmRsZXJDbGllbnQsIHB1YmxpYyBFdmVudFRhcmdldFdpdGhJbmxpbmVEYXRhIHsKICAgICBX
VEZfTUFLRV9JU09fQUxMT0NBVEVEKFJUQ0RhdGFDaGFubmVsKTsKIHB1YmxpYzoKQEAgLTEyMCw2
ICs4OCw4IEBAIHB1YmxpYzoKICAgICB1c2luZyBSVENEYXRhQ2hhbm5lbEhhbmRsZXJDbGllbnQ6
OnJlZjsKICAgICB1c2luZyBSVENEYXRhQ2hhbm5lbEhhbmRsZXJDbGllbnQ6OmRlcmVmOwogCisg
ICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxSVENEYXRhQ2hhbm5lbEhh
bmRsZXI+IGhhbmRsZXJGcm9tSWRlbnRpZmllcihSVENEYXRhQ2hhbm5lbExvY2FsSWRlbnRpZmll
cik7CisKIHByaXZhdGU6CiAgICAgUlRDRGF0YUNoYW5uZWwoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCYsIHN0ZDo6dW5pcXVlX3B0cjxSVENEYXRhQ2hhbm5lbEhhbmRsZXI+JiYsIFN0cmluZyYmLCBS
VENEYXRhQ2hhbm5lbEluaXQmJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vUlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVyLmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi40NmVmNmY4YjBiY2U2MjkyYjlhMDlhZDExNWUyYzRmY2JkZGVlMmJlCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENE
YXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXIuY3BwCkBAIC0wLDAgKzEsMTI4IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICog
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisgKiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJSVENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXIuaCIKKworI2lmIEVOQUJM
RShXRUJfUlRDKQorCisjaW5jbHVkZSAiUlRDRGF0YUNoYW5uZWxIYW5kbGVyQ2xpZW50LmgiCisj
aW5jbHVkZSAiUlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVyQ29ubmVjdGlvbi5oIgorI2luY2x1
ZGUgIlNoYXJlZEJ1ZmZlci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0ZDo6dW5pcXVl
X3B0cjxSVENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXI+IFJUQ0RhdGFDaGFubmVsUmVtb3RlSGFu
ZGxlcjo6Y3JlYXRlKFJUQ0RhdGFDaGFubmVsSWRlbnRpZmllciByZW1vdGVJZGVudGlmaWVyLCBS
ZWZQdHI8UlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVyQ29ubmVjdGlvbj4mJiBjb25uZWN0aW9u
KQoreworICAgIGlmICghY29ubmVjdGlvbikKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAg
cmV0dXJuIG1ha2VVbmlxdWU8UlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVyPihyZW1vdGVJZGVu
dGlmaWVyLCBjb25uZWN0aW9uLnJlbGVhc2VOb25OdWxsKCkpOworfQorCitSVENEYXRhQ2hhbm5l
bFJlbW90ZUhhbmRsZXI6OlJUQ0RhdGFDaGFubmVsUmVtb3RlSGFuZGxlcihSVENEYXRhQ2hhbm5l
bElkZW50aWZpZXIgcmVtb3RlSWRlbnRpZmllciwgUmVmPFJUQ0RhdGFDaGFubmVsUmVtb3RlSGFu
ZGxlckNvbm5lY3Rpb24+JiYgY29ubmVjdGlvbikKKyAgICA6IG1fcmVtb3RlSWRlbnRpZmllcihy
ZW1vdGVJZGVudGlmaWVyKQorICAgICwgbV9jb25uZWN0aW9uKFdURk1vdmUoY29ubmVjdGlvbikp
Cit7Cit9CisKK1JUQ0RhdGFDaGFubmVsUmVtb3RlSGFuZGxlcjo6flJUQ0RhdGFDaGFubmVsUmVt
b3RlSGFuZGxlcigpCit7Cit9CisKK3ZvaWQgUlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVyOjpk
aWRDaGFuZ2VSZWFkeVN0YXRlKFJUQ0RhdGFDaGFubmVsU3RhdGUgc3RhdGUpCit7CisgICAgbV9j
bGllbnQtPmRpZENoYW5nZVJlYWR5U3RhdGUoc3RhdGUpOworfQorCit2b2lkIFJUQ0RhdGFDaGFu
bmVsUmVtb3RlSGFuZGxlcjo6ZGlkUmVjZWl2ZVN0cmluZ0RhdGEoU3RyaW5nJiYgdGV4dCkKK3sK
KyAgICBtX2NsaWVudC0+ZGlkUmVjZWl2ZVN0cmluZ0RhdGEodGV4dCk7Cit9CisKK3ZvaWQgUlRD
RGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVyOjpkaWRSZWNlaXZlUmF3RGF0YShjb25zdCBjaGFyKiBk
YXRhLCBzaXplX3Qgc2l6ZSkKK3sKKyAgICBtX2NsaWVudC0+ZGlkUmVjZWl2ZVJhd0RhdGEoZGF0
YSwgc2l6ZSk7Cit9CisKK3ZvaWQgUlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVyOjpkaWREZXRl
Y3RFcnJvcigpCit7CisgICAgbV9jbGllbnQtPmRpZERldGVjdEVycm9yKCk7Cit9CisKK3ZvaWQg
UlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVyOjpidWZmZXJlZEFtb3VudElzRGVjcmVhc2luZyhz
aXplX3QgYW1vdW50KQoreworICAgIG1fY2xpZW50LT5idWZmZXJlZEFtb3VudElzRGVjcmVhc2lu
ZyhhbW91bnQpOworfQorCit2b2lkIFJUQ0RhdGFDaGFubmVsUmVtb3RlSGFuZGxlcjo6cmVhZHlU
b1NlbmQoKQoreworICAgIG1faXNSZWFkeVRvU2VuZCA9IHRydWU7CisKKyAgICBmb3IgKGF1dG8m
IG1lc3NhZ2UgOiBtX3BlbmRpbmdNZXNzYWdlcykKKyAgICAgICAgbV9jb25uZWN0aW9uLT5zZW5k
RGF0YShtX3JlbW90ZUlkZW50aWZpZXIsIG1lc3NhZ2UuaXNSYXcsIHJlaW50ZXJwcmV0X2Nhc3Q8
Y29uc3QgdW5zaWduZWQgY2hhcio+KG1lc3NhZ2UuYnVmZmVyLT5kYXRhKCkpLCBtZXNzYWdlLmJ1
ZmZlci0+c2l6ZSgpKTsKKyAgICBtX3BlbmRpbmdNZXNzYWdlcy5jbGVhcigpOworCisgICAgaWYg
KG1faXNQZW5kaW5nQ2xvc2UpCisgICAgICAgIG1fY29ubmVjdGlvbi0+Y2xvc2UobV9yZW1vdGVJ
ZGVudGlmaWVyKTsKK30KKwordm9pZCBSVENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXI6OnNldENs
aWVudChSVENEYXRhQ2hhbm5lbEhhbmRsZXJDbGllbnQmIGNsaWVudCwgU2NyaXB0RXhlY3V0aW9u
Q29udGV4dElkZW50aWZpZXIgY29udGV4dElkZW50aWZpZXIpCit7CisgICAgbV9jbGllbnQgPSAm
Y2xpZW50OworICAgIEFTU0VSVChtX2xvY2FsSWRlbnRpZmllci5jaGFubmVsSWRlbnRpZmllcik7
CisgICAgbV9jb25uZWN0aW9uLT5jb25uZWN0VG9Tb3VyY2UoKnRoaXMsIGNvbnRleHRJZGVudGlm
aWVyLCBtX2xvY2FsSWRlbnRpZmllciwgbV9yZW1vdGVJZGVudGlmaWVyKTsKK30KKworYm9vbCBS
VENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXI6OnNlbmRTdHJpbmdEYXRhKGNvbnN0IENTdHJpbmcm
IHRleHQpCit7CisgICAgaWYgKCFtX2lzUmVhZHlUb1NlbmQpIHsKKyAgICAgICAgbV9wZW5kaW5n
TWVzc2FnZXMuYXBwZW5kKE1lc3NhZ2UgeyBmYWxzZSwgU2hhcmVkQnVmZmVyOjpjcmVhdGUodGV4
dC5kYXRhKCksIHRleHQubGVuZ3RoKCkpIH0pOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9
CisgICAgbV9jb25uZWN0aW9uLT5zZW5kRGF0YShtX3JlbW90ZUlkZW50aWZpZXIsIGZhbHNlLCBy
ZWludGVycHJldF9jYXN0PGNvbnN0IHVuc2lnbmVkIGNoYXIqPih0ZXh0LmRhdGEoKSksIHRleHQu
bGVuZ3RoKCkpOworICAgIHJldHVybiB0cnVlOworfQorCitib29sIFJUQ0RhdGFDaGFubmVsUmVt
b3RlSGFuZGxlcjo6c2VuZFJhd0RhdGEoY29uc3QgY2hhciogZGF0YSwgc2l6ZV90IHNpemUpCit7
CisgICAgaWYgKCFtX2lzUmVhZHlUb1NlbmQpIHsKKyAgICAgICAgbV9wZW5kaW5nTWVzc2FnZXMu
YXBwZW5kKE1lc3NhZ2UgeyB0cnVlLCBTaGFyZWRCdWZmZXI6OmNyZWF0ZShkYXRhLCBzaXplKSB9
KTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIG1fY29ubmVjdGlvbi0+c2VuZERh
dGEobV9yZW1vdGVJZGVudGlmaWVyLCB0cnVlLCByZWludGVycHJldF9jYXN0PGNvbnN0IHVuc2ln
bmVkIGNoYXIqPihkYXRhKSwgc2l6ZSk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK3ZvaWQgUlRD
RGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVyOjpjbG9zZSgpCit7CisgICAgaWYgKCFtX2lzUmVhZHlU
b1NlbmQpIHsKKyAgICAgICAgbV9pc1BlbmRpbmdDbG9zZSA9IHRydWU7CisgICAgICAgIHJldHVy
bjsKKyAgICB9CisgICAgbV9jb25uZWN0aW9uLT5jbG9zZShtX3JlbW90ZUlkZW50aWZpZXIpOwor
fQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCX1JUQykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRGF0YUNo
YW5uZWxSZW1vdGVIYW5kbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L1JUQ0RhdGFDaGFubmVsUmVtb3RlSGFuZGxlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNhMWRjZGJjMWNlOTVm
MjU4NDdkYmJkOTZlZmRiYzBiZDhkNGQxYTEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsUmVtb3RlSGFuZGxlci5oCkBA
IC0wLDAgKzEsODUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KKyAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUworICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUo
V0VCX1JUQykKKworI2luY2x1ZGUgIlJUQ0RhdGFDaGFubmVsSGFuZGxlci5oIgorI2luY2x1ZGUg
IlJUQ0RhdGFDaGFubmVsSWRlbnRpZmllci5oIgorI2luY2x1ZGUgIlJUQ0RhdGFDaGFubmVsU3Rh
dGUuaCIKKyNpbmNsdWRlIDx3dGYvRmFzdE1hbGxvYy5oPgorI2luY2x1ZGUgPHd0Zi9GdW5jdGlv
bi5oPgorI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CisjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBSVENEYXRhQ2hhbm5lbEhhbmRsZXJDbGllbnQ7
CitjbGFzcyBSVENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXJDb25uZWN0aW9uOworY2xhc3MgU2hh
cmVkQnVmZmVyOworCitjbGFzcyBSVENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXIgZmluYWwgOiBw
dWJsaWMgUlRDRGF0YUNoYW5uZWxIYW5kbGVyLCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8UlRDRGF0
YUNoYW5uZWxSZW1vdGVIYW5kbGVyPiB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7Citw
dWJsaWM6CisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxSVENEYXRhQ2hhbm5lbFJlbW90ZUhh
bmRsZXI+IGNyZWF0ZShSVENEYXRhQ2hhbm5lbElkZW50aWZpZXIsIFJlZlB0cjxSVENEYXRhQ2hh
bm5lbFJlbW90ZUhhbmRsZXJDb25uZWN0aW9uPiYmKTsKKyAgICBSVENEYXRhQ2hhbm5lbFJlbW90
ZUhhbmRsZXIoUlRDRGF0YUNoYW5uZWxJZGVudGlmaWVyLCBSZWY8UlRDRGF0YUNoYW5uZWxSZW1v
dGVIYW5kbGVyQ29ubmVjdGlvbj4mJik7CisgICAgflJUQ0RhdGFDaGFubmVsUmVtb3RlSGFuZGxl
cigpOworCisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkaWRDaGFuZ2VSZWFkeVN0YXRlKFJUQ0Rh
dGFDaGFubmVsU3RhdGUpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGlkUmVjZWl2ZVN0cmlu
Z0RhdGEoU3RyaW5nJiYpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGlkUmVjZWl2ZVJhd0Rh
dGEoY29uc3QgY2hhciosIHNpemVfdCk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkaWREZXRl
Y3RFcnJvcigpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgYnVmZmVyZWRBbW91bnRJc0RlY3Jl
YXNpbmcoc2l6ZV90KTsKKworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVhZHlUb1NlbmQoKTsK
KworICAgIHZvaWQgc2V0TG9jYWxJZGVudGlmaWVyKFJUQ0RhdGFDaGFubmVsSWRlbnRpZmllciBs
b2NhbElkZW50aWZpZXIpIHsgbV9sb2NhbElkZW50aWZpZXIgPSBsb2NhbElkZW50aWZpZXI7IH0K
KworcHJpdmF0ZToKKyAgICAvLyBSVENEYXRhQ2hhbm5lbEhhbmRsZXIKKyAgICB2b2lkIHNldENs
aWVudChSVENEYXRhQ2hhbm5lbEhhbmRsZXJDbGllbnQmLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0
SWRlbnRpZmllcikgZmluYWw7CisgICAgYm9vbCBzZW5kU3RyaW5nRGF0YShjb25zdCBDU3RyaW5n
JikgZmluYWw7CisgICAgYm9vbCBzZW5kUmF3RGF0YShjb25zdCBjaGFyKiwgc2l6ZV90KSBmaW5h
bDsKKyAgICB2b2lkIGNsb3NlKCkgZmluYWw7CisKKyAgICBSVENEYXRhQ2hhbm5lbElkZW50aWZp
ZXIgbV9yZW1vdGVJZGVudGlmaWVyOworICAgIFJUQ0RhdGFDaGFubmVsSWRlbnRpZmllciBtX2xv
Y2FsSWRlbnRpZmllcjsKKworICAgIFJUQ0RhdGFDaGFubmVsSGFuZGxlckNsaWVudCogbV9jbGll
bnQgeyBudWxscHRyIH07CisgICAgUmVmPFJUQ0RhdGFDaGFubmVsUmVtb3RlSGFuZGxlckNvbm5l
Y3Rpb24+IG1fY29ubmVjdGlvbjsKKworICAgIHN0cnVjdCBNZXNzYWdlIHsKKyAgICAgICAgYm9v
bCBpc1JhdyB7IGZhbHNlIH07CisgICAgICAgIFJlZjxTaGFyZWRCdWZmZXI+IGJ1ZmZlcjsKKyAg
ICB9OworICAgIFZlY3RvcjxNZXNzYWdlPiBtX3BlbmRpbmdNZXNzYWdlczsKKyAgICBib29sIG1f
aXNQZW5kaW5nQ2xvc2UgeyBmYWxzZSB9OworICAgIGJvb2wgbV9pc1JlYWR5VG9TZW5kIHsgZmFs
c2UgfTsKKworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxF
KFdFQl9SVEMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L1JUQ0RhdGFDaGFubmVsUmVtb3RlU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vUlRDRGF0YUNoYW5uZWxSZW1vdGVTb3VyY2UuY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVh
YTNhOGYwNTgzOGNhZjNhZThmNjM0ZmNhMDczNzgwMTRmNzY1OTAKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsUmVtb3Rl
U291cmNlLmNwcApAQCAtMCwwICsxLDQ5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQor
ICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisgKiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJSVENEYXRhQ2hhbm5lbFJlbW90ZVNvdXJjZS5oIgorCisjaWYgRU5B
QkxFKFdFQl9SVEMpCisKKyNpbmNsdWRlICJSVENEYXRhQ2hhbm5lbEhhbmRsZXIuaCIKKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitSVENEYXRhQ2hhbm5lbFJlbW90ZVNvdXJjZTo6UlRDRGF0YUNo
YW5uZWxSZW1vdGVTb3VyY2UoUlRDRGF0YUNoYW5uZWxJZGVudGlmaWVyIGlkZW50aWZpZXIsIFVu
aXF1ZVJlZjxSVENEYXRhQ2hhbm5lbEhhbmRsZXI+JiYgaGFuZGxlciwgUmVmPFJUQ0RhdGFDaGFu
bmVsUmVtb3RlU291cmNlQ29ubmVjdGlvbj4mJiBjb25uZWN0aW9uKQorICAgIDogbV9pZGVudGlm
aWVyKGlkZW50aWZpZXIpCisgICAgLCBtX2hhbmRsZXIoV1RGTW92ZShoYW5kbGVyKSkKKyAgICAs
IG1fY29ubmVjdGlvbihXVEZNb3ZlKGNvbm5lY3Rpb24pKQoreworICAgIC8vIEZJWE1FOiBXZSBz
aG91bGQgYXNrIG1faGFuZGxlciB0byBjYWxsIHVzIG9uIGl0cyBvd24gYmFja2dyb3VuZCB0aHJl
YWQuCisgICAgbV9oYW5kbGVyLT5zZXRDbGllbnQoKnRoaXMsIHsgfSk7Cit9CisKK1JUQ0RhdGFD
aGFubmVsUmVtb3RlU291cmNlOjp+UlRDRGF0YUNoYW5uZWxSZW1vdGVTb3VyY2UoKQoreworfQor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCX1JUQykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRGF0YUNoYW5u
ZWxSZW1vdGVTb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRD
RGF0YUNoYW5uZWxSZW1vdGVTb3VyY2UuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMmY5NDNiZTVhZDg3ZmM3MDAx
MzY3MmNmYzljMzdjZDQ3NGY2NjgwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbFJlbW90ZVNvdXJjZS5oCkBAIC0wLDAg
KzEsNjMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisg
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04KKyAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUworICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoV0VCX1JU
QykKKworI2luY2x1ZGUgIlJUQ0RhdGFDaGFubmVsSGFuZGxlckNsaWVudC5oIgorI2luY2x1ZGUg
IlJUQ0RhdGFDaGFubmVsSWRlbnRpZmllci5oIgorI2luY2x1ZGUgIlJUQ0RhdGFDaGFubmVsUmVt
b3RlU291cmNlQ29ubmVjdGlvbi5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFJU
Q0RhdGFDaGFubmVsSGFuZGxlcjsKKworY2xhc3MgUlRDRGF0YUNoYW5uZWxSZW1vdGVTb3VyY2Ug
OiBwdWJsaWMgUlRDRGF0YUNoYW5uZWxIYW5kbGVyQ2xpZW50IHsKK3B1YmxpYzoKKyAgICBzdGF0
aWMgUmVmPFJUQ0RhdGFDaGFubmVsUmVtb3RlU291cmNlPiBjcmVhdGUoUlRDRGF0YUNoYW5uZWxJ
ZGVudGlmaWVyIGlkZW50aWZpZXIsIFVuaXF1ZVJlZjxSVENEYXRhQ2hhbm5lbEhhbmRsZXI+JiYg
aGFuZGxlciwgUmVmPFJUQ0RhdGFDaGFubmVsUmVtb3RlU291cmNlQ29ubmVjdGlvbj4mJiBjb25u
ZWN0aW9uKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IFJUQ0RhdGFDaGFubmVsUmVtb3RlU291cmNl
KGlkZW50aWZpZXIsIFdURk1vdmUoaGFuZGxlciksIFdURk1vdmUoY29ubmVjdGlvbikpKTsgfQor
ICAgIH5SVENEYXRhQ2hhbm5lbFJlbW90ZVNvdXJjZSgpOworCisgICAgdm9pZCBzZW5kU3RyaW5n
RGF0YShjb25zdCBDU3RyaW5nJiB0ZXh0KSB7IG1faGFuZGxlci0+c2VuZFN0cmluZ0RhdGEodGV4
dCk7IH0KKyAgICB2b2lkIHNlbmRSYXdEYXRhKGNvbnN0IGNoYXIqIGRhdGEsIHNpemVfdCBzaXpl
KSB7IG1faGFuZGxlci0+c2VuZFJhd0RhdGEoZGF0YSwgc2l6ZSk7IH0KKyAgICB2b2lkIGNsb3Nl
KCkgeyBtX2hhbmRsZXItPmNsb3NlKCk7IH0KKworcHJpdmF0ZToKKyAgICBXRUJDT1JFX0VYUE9S
VCBSVENEYXRhQ2hhbm5lbFJlbW90ZVNvdXJjZShSVENEYXRhQ2hhbm5lbElkZW50aWZpZXIsIFVu
aXF1ZVJlZjxSVENEYXRhQ2hhbm5lbEhhbmRsZXI+JiYsIFJlZjxSVENEYXRhQ2hhbm5lbFJlbW90
ZVNvdXJjZUNvbm5lY3Rpb24+JiYpOworCisgICAgLy8gUlRDRGF0YUNoYW5uZWxIYW5kbGVyQ2xp
ZW50CisgICAgdm9pZCBkaWRDaGFuZ2VSZWFkeVN0YXRlKFJUQ0RhdGFDaGFubmVsU3RhdGUgc3Rh
dGUpIGZpbmFsIHsgbV9jb25uZWN0aW9uLT5kaWRDaGFuZ2VSZWFkeVN0YXRlKG1faWRlbnRpZmll
ciwgc3RhdGUpOyB9CisgICAgdm9pZCBkaWRSZWNlaXZlU3RyaW5nRGF0YShjb25zdCBTdHJpbmcm
IHRleHQpIGZpbmFsIHsgbV9jb25uZWN0aW9uLT5kaWRSZWNlaXZlU3RyaW5nRGF0YShtX2lkZW50
aWZpZXIsIHRleHQpOyB9CisgICAgdm9pZCBkaWRSZWNlaXZlUmF3RGF0YShjb25zdCBjaGFyKiBk
YXRhLCBzaXplX3Qgc2l6ZSkgZmluYWwgeyBtX2Nvbm5lY3Rpb24tPmRpZFJlY2VpdmVSYXdEYXRh
KG1faWRlbnRpZmllciwgZGF0YSwgc2l6ZSk7IH0KKyAgICB2b2lkIGRpZERldGVjdEVycm9yKCkg
ZmluYWwgeyBtX2Nvbm5lY3Rpb24tPmRpZERldGVjdEVycm9yKG1faWRlbnRpZmllcik7IH0KKyAg
ICB2b2lkIGJ1ZmZlcmVkQW1vdW50SXNEZWNyZWFzaW5nKHNpemVfdCBhbW91bnQpIGZpbmFsIHsg
bV9jb25uZWN0aW9uLT5idWZmZXJlZEFtb3VudElzRGVjcmVhc2luZyhtX2lkZW50aWZpZXIsIGFt
b3VudCk7IH0KKworICAgIFJUQ0RhdGFDaGFubmVsSWRlbnRpZmllciBtX2lkZW50aWZpZXI7Cisg
ICAgVW5pcXVlUmVmPFJUQ0RhdGFDaGFubmVsSGFuZGxlcj4gbV9oYW5kbGVyOworICAgIFJlZjxS
VENEYXRhQ2hhbm5lbFJlbW90ZVNvdXJjZUNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKK307CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJfUlRDKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGli
V2ViUlRDRGF0YUNoYW5uZWxIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ0RhdGFDaGFubmVsSGFuZGxlci5jcHAKaW5kZXgg
N2Y1ODJjYTBkYzdkYWIxYWNiY2JjOTBhNzg2NWRiODM2MjBkYTEyOC4uMmYzZDA5ZTdjOTE0ZTFi
ZjFhNGUwZjk0ODgxMTJhNzZkNjU4YmViMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDRGF0YUNoYW5uZWxIYW5kbGVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJX
ZWJSVENEYXRhQ2hhbm5lbEhhbmRsZXIuY3BwCkBAIC0xOTIsOCArMTkyLDEwIEBAIHZvaWQgTGli
V2ViUlRDRGF0YUNoYW5uZWxIYW5kbGVyOjpwb3N0VGFzayhGdW5jdGlvbjx2b2lkKCk+JiYgZnVu
Y3Rpb24pCiB7CiAgICAgQVNTRVJUKG1fY2xpZW50TG9jay5pc0hlbGQoKSk7CiAKLSAgICBpZiAo
IW1fY29udGV4dElkZW50aWZpZXIpCisgICAgaWYgKCFtX2NvbnRleHRJZGVudGlmaWVyKSB7CiAg
ICAgICAgIGNhbGxPbk1haW5UaHJlYWQoV1RGTW92ZShmdW5jdGlvbikpOworICAgICAgICByZXR1
cm47CisgICAgfQogICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OnBvc3RUYXNrVG8obV9jb250
ZXh0SWRlbnRpZmllciwgV1RGTW92ZShmdW5jdGlvbikpOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldE1lc3NhZ2luZ1Byb3h5LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0TWVzc2FnaW5n
UHJveHkuY3BwCmluZGV4IDZkODQ1NWQzMTMwZWU3ZDY1ZGVmNDJkNDhlNjA2MTU1NWZkNThiZGEu
LmU5ZjUxOTdjNGYzMjhkMzk3MmNkMWRlZmU0OWVlODEzNzhkZjJkNmMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHku
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0TWVz
c2FnaW5nUHJveHkuY3BwCkBAIC0zNyw2ICszNyw4IEBACiAjaW5jbHVkZSAiQ2FjaGVTdG9yYWdl
Q29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIK
KyNpbmNsdWRlICJMaWJXZWJSVENQcm92aWRlci5oIgorI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNs
dWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIldvcmtsZXRQYXJhbWV0ZXJzLmgiCiAjaW5jbHVk
ZSAiV29ya2xldFBlbmRpbmdUYXNrcy5oIgpAQCAtODUsNiArODcsMTQgQEAgUmVmUHRyPENhY2hl
U3RvcmFnZUNvbm5lY3Rpb24+IEF1ZGlvV29ya2xldE1lc3NhZ2luZ1Byb3h5OjpjcmVhdGVDYWNo
ZVN0b3JhZ2VDb24KICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAorUmVmUHRyPFJUQ0RhdGFDaGFu
bmVsUmVtb3RlSGFuZGxlckNvbm5lY3Rpb24+IEF1ZGlvV29ya2xldE1lc3NhZ2luZ1Byb3h5Ojpj
cmVhdGVSVENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXJDb25uZWN0aW9uKCkKK3sKKyAgICBBU1NF
UlQoaXNNYWluVGhyZWFkKCkpOworICAgIGlmICghbV9kb2N1bWVudC0+cGFnZSgpKQorICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKKyAgICByZXR1cm4gbV9kb2N1bWVudC0+cGFnZSgpLT5saWJXZWJS
VENQcm92aWRlcigpLmNyZWF0ZVJUQ0RhdGFDaGFubmVsUmVtb3RlSGFuZGxlckNvbm5lY3Rpb24o
KTsKK30KKwogdm9pZCBBdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eTo6cG9zdFRhc2tUb0xvYWRl
cihTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpUYXNrJiYgdGFzaykKIHsKICAgICBtX2RvY3VtZW50
LT5wb3N0VGFzayhXVEZNb3ZlKHRhc2spKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHkuaCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHkuaAppbmRleCBh
NmJjODU4OTE3YTVkMGViNzUwNGU2NDY4ZDA4YWY1NGUwMjU5YjZiLi5jMmVjNGEyNjFlM2MxY2M0
MWI0ZDZlN2IyZmRlZjExYTA1MGNhNWM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldE1lc3NhZ2luZ1Byb3h5LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eS5oCkBAIC01
OSw2ICs1OSw3IEBAIHByaXZhdGU6CiAKICAgICAvLyBXb3JrZXJMb2FkZXJQcm94eS4KICAgICBS
ZWZQdHI8Q2FjaGVTdG9yYWdlQ29ubmVjdGlvbj4gY3JlYXRlQ2FjaGVTdG9yYWdlQ29ubmVjdGlv
bigpIGZpbmFsOworICAgIFJlZlB0cjxSVENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXJDb25uZWN0
aW9uPiBjcmVhdGVSVENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXJDb25uZWN0aW9uKCkgZmluYWw7
CiAgICAgdm9pZCBwb3N0VGFza1RvTG9hZGVyKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlRhc2sm
JikgZmluYWw7CiAgICAgYm9vbCBwb3N0VGFza0Zvck1vZGVUb1dvcmtlck9yV29ya2xldEdsb2Jh
bFNjb3BlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlRhc2smJiwgY29uc3QgU3RyaW5nJiBtb2Rl
KSBmaW5hbDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3Vy
Y2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCA0OTMxYmQwYzdiZDM3ODAxZjZjM2M1M2ExYTM5
ODA0NTM4MTEzNTc3Li4xNjZiMzFmYzMwYWIyNmVhMDhkODg0NmI4ODVlMGE1ODIyOGY2MmUxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Tb3VyY2VzLnR4dApAQCAtMTYwLDYgKzE2MCw4IEBAIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRD
RFRNRlNlbmRlci5jcHAKIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRFRNRlRvbmVDaGFuZ2VFdmVu
dC5jcHAKIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRGF0YUNoYW5uZWwuY3BwCiBNb2R1bGVzL21l
ZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsRXZlbnQuY3BwCitNb2R1bGVzL21lZGlhc3RyZWFtL1JU
Q0RhdGFDaGFubmVsUmVtb3RlSGFuZGxlci5jcHAKK01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRGF0
YUNoYW5uZWxSZW1vdGVTb3VyY2UuY3BwCiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0VuY29kZWRB
dWRpb0ZyYW1lLmNwcAogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENFbmNvZGVkRnJhbWUuY3BwCiBN
b2R1bGVzL21lZGlhc3RyZWFtL1JUQ0VuY29kZWRWaWRlb0ZyYW1lLmNwcApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDE4MmI5YTVh
NTA0Y2E4NzY4YzhmYjlkYjc5NTBjMjFiMjBjY2Y0NzguLjlkYjNiODJmZDVmNTU1N2QyMTBkMjI4
ODI5NTNjNDhiNGFlMmJhNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTkzMiw3ICs5MzIsNyBAQAogCQkzMTZEQ0I0QzFFNzkx
MEE2MDAxQjVGODcgLyogSlNSVENJY2VDb25uZWN0aW9uU3RhdGUuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxNkRDQjQ2MUU3OTEwQTYwMDFCNUY4NyAv
KiBKU1JUQ0ljZUNvbm5lY3Rpb25TdGF0ZS5oICovOyB9OwogCQkzMTZEQ0I0RTFFNzkxMEE2MDAx
QjVGODcgLyogSlNSVENJY2VHYXRoZXJpbmdTdGF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE2RENCNDgxRTc5MTBBNjAwMUI1Rjg3IC8qIEpTUlRD
SWNlR2F0aGVyaW5nU3RhdGUuaCAqLzsgfTsKIAkJMzE2RENCNTAxRTc5MTBBNjAwMUI1Rjg3IC8q
IEpTUlRDU2lnbmFsaW5nU3RhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDMxNkRDQjRBMUU3OTEwQTYwMDFCNUY4NyAvKiBKU1JUQ1NpZ25hbGluZ1N0
YXRlLmggKi87IH07Ci0JCTMxNkRFNzAyMUU4M0FFMUQwMDg0QzI2MSAvKiBSVENEYXRhQ2hhbm5l
bFN0YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAz
MTZERTcwMTFFODNBRTFEMDA4NEMyNjEgLyogUlRDRGF0YUNoYW5uZWxTdGF0ZS5oICovOyB9Owor
CQkzMTZERTcwMjFFODNBRTFEMDA4NEMyNjEgLyogUlRDRGF0YUNoYW5uZWxTdGF0ZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE2REU3MDExRTgzQUUx
RDAwODRDMjYxIC8qIFJUQ0RhdGFDaGFubmVsU3RhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkzMTZGRTA3MjBFNkNDQkVFMDBCRjYwODggLyog
SlNDU1NLZXlmcmFtZVJ1bGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDMxNkZFMDZFMEU2Q0NCRUUwMEJGNjA4OCAvKiBKU0NTU0tleWZyYW1lUnVsZS5o
ICovOyB9OwogCQkzMTZGRTA3NDBFNkNDQkVFMDBCRjYwODggLyogSlNDU1NLZXlmcmFtZXNSdWxl
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTZGRTA3
MDBFNkNDQkVFMDBCRjYwODggLyogSlNDU1NLZXlmcmFtZXNSdWxlLmggKi87IH07CiAJCTMxNzQx
QUFEMTY2MzY2MDkwMDhBNUI3RSAvKiBTaW11bGF0ZWRDbGlja09wdGlvbnMuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxNzQxQUFCMTY2MzVFNDUwMDhB
NUI3RSAvKiBTaW11bGF0ZWRDbGlja09wdGlvbnMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTAzNiw2ICsxMDM2LDkgQEAKIAkJNDExMDNBQUMx
RTM5NzkxMDAwNzY5RjE0IC8qIFJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZUNvY29hLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTEwM0FBODFFMzk3
OTBBMDA3NjlGMTQgLyogUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlQ29jb2EuaCAqLzsgfTsK
IAkJNDExMDNBQUQxRTM5NzkxMDAwNzY5RjAzIC8qIFJlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJj
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDExMDNB
QTkxRTM5NzkwQTAwNzY5RjAzIC8qIFJlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZS5oICovOyB9
OwogCQk0MTEwM0FBRDFFMzk3OTEwMDA3NjlGMTQgLyogUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291
cmNlQ29jb2EuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDQxMTAzQUE5MUUzOTc5MEEwMDc2OUYxNCAvKiBSZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2VD
b2NvYS5oICovOyB9OworCQk0MTEyMjNCQTI2MDI0NEZFMDBCMEEwQjYgLyogU2NyaXB0RXhlY3V0
aW9uQ29udGV4dElkZW50aWZpZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDQxMTIyM0I4MjYwMjQ0RkUwMEIwQTBCNiAvKiBTY3JpcHRFeGVjdXRpb25D
b250ZXh0SWRlbnRpZmllci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CisJCTQxMTIyM0JFMjYwMjVCQzEwMEIwQTBCNiAvKiBSVENEYXRhQ2hhbm5lbFJl
bW90ZVNvdXJjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNDE2RURCRUYyNUZGQjIyNDAwMDkyNjc1IC8qIFJUQ0RhdGFDaGFubmVsUmVtb3RlU291cmNl
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNDEx
MjIzQzUyNjAzNTY3RDAwQjBBMEI2IC8qIERldGFjaGVkUlRDRGF0YUNoYW5uZWwuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxMTIyM0MzMjYwMzU2N0Mw
MEIwQTBCNiAvKiBEZXRhY2hlZFJUQ0RhdGFDaGFubmVsLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDExMkI1NDMxRjlGOUNBMDAwRTY3ODc1IC8q
IFNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNDExMkI1M0YxRjlGOUM5QjAwRTY3ODc1IC8qIFNlcnZpY2VXb3Jr
ZXJUaHJlYWRQcm94eS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTQxMTRGRTMyMjVCRUJEMTkwMDlEOUYyMCAvKiBSVENSdGNwUGFyYW1ldGVycy5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDExNEZFMkYy
NUJFQkQxODAwOUQ5RjIwIC8qIFJUQ1J0Y3BQYXJhbWV0ZXJzLmggKi87IH07CiAJCTQxMjMwODFC
MTM4QzQyOTcwMEJDQ0ZDQSAvKiBXZWJDb3JlLmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRjE5QjFBMDgyNDVFNUEwMDFFOUFCQyAv
KiBXZWJDb3JlLmZyYW1ld29yayAqLzsgfTsKQEAgLTEwNjEsNyArMTA2NCw3IEBACiAJCTQxM0M4
QjMzMjU1MkYyN0QwMEU2NTA1NSAvKiBSVENSdHBTZW5kZXJXaXRoVHJhbnNmb3JtLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTNDOEIyRTI1NTJGMjdC
MDBFNjUwNTUgLyogUlRDUnRwU2VuZGVyV2l0aFRyYW5zZm9ybS5oICovOyB9OwogCQk0MTNDOEIz
NDI1NTJGMjdEMDBFNjUwNTUgLyogUlRDUnRwVHJhbnNmb3JtLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTNDOEIyRjI1NTJGMjdCMDBFNjUwNTUgLyog
UlRDUnRwVHJhbnNmb3JtLmggKi87IH07CiAJCTQxM0M4QjM1MjU1MkYyN0QwMEU2NTA1NSAvKiBS
VENSdHBSZWNlaXZlcldpdGhUcmFuc2Zvcm0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDQxM0M4QjMwMjU1MkYyN0MwMEU2NTA1NSAvKiBSVENSdHBSZWNl
aXZlcldpdGhUcmFuc2Zvcm0uaCAqLzsgfTsKLQkJNDEzQ0MxMUQyNUU3RDk4RTAwRDU5QzRCIC8q
IFJUQ1ByaW9yaXR5VHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNDEzQ0MxMUMyNUU3RDk4RDAwRDU5QzRCIC8qIFJUQ1ByaW9yaXR5VHlwZS5oICov
OyB9OworCQk0MTNDQzExRDI1RTdEOThFMDBENTlDNEIgLyogUlRDUHJpb3JpdHlUeXBlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTNDQzExQzI1RTdE
OThEMDBENTlDNEIgLyogUlRDUHJpb3JpdHlUeXBlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDEzQ0NENEEyMERFMDM0RjAwNjVBMjFBIC8qIE1v
Y2tNZWRpYURldmljZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNDEzQ0NENDgyMERFMDEzQzAwNjVBMjFBIC8qIE1vY2tNZWRpYURldmljZS5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQxM0UwMDc5MURC
MEU0RjIwMDIzNDFEMiAvKiBNZW1vcnlSZWxlYXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTNFMDA3ODFEQjBFNERFMDAyMzQxRDIgLyogTWVtb3J5
UmVsZWFzZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTQxNDQ2MEEyMjQxMjk5NDUwMDgxNEJFNyAvKiBNZWRpYVNlc3Npb25JZGVudGlmaWVyLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTQ0NjBBMDI0
MTI5OTQxMDA4MTRCRTcgLyogTWVkaWFTZXNzaW9uSWRlbnRpZmllci5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0xMDk4LDYgKzExMDEsMTAgQEAK
IAkJNDE2RTZGRTkxQkJEMTJFNTAwMEE2MDQzIC8qIFJlYWRhYmxlU3RyZWFtQnVpbHRpbnMuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlCMDNEODA2MUJC
MzExMEQwMEI3NjREOCAvKiBSZWFkYWJsZVN0cmVhbUJ1aWx0aW5zLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDE2RTZGRTkxQkJEMTJFNTAwMEE2
MDUzIC8qIFdyaXRhYmxlU3RyZWFtQnVpbHRpbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlCMDNEODA2MUJCMzExMEQwMEI3NjRFOCAvKiBXcml0YWJs
ZVN0cmVhbUJ1aWx0aW5zLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJNDE2RUNBRTUyNUI1OENDNDAwQjM0REE1IC8qIE1lZGlhU2Vzc2lvbkdyb3Vw
SWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNDE2RUNBRTMyNUI1OENDNDAwQjM0REE1IC8qIE1lZGlhU2Vzc2lvbkdyb3VwSWRlbnRpZmll
ci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTQx
NkVEQkY2MjYwMEQ2NzkwMDA5MjY3NSAvKiBSVENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXIuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxNkVEQkY0MjYw
MEQ2NzgwMDA5MjY3NSAvKiBSVENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXIuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk0MTZFREMwMDI2MDBFNzg4
MDAwOTI2NzUgLyogUlRDRGF0YUNoYW5uZWxJZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTZFREJGRjI2MDBFNzg3MDAwOTI2NzUgLyog
UlRDRGF0YUNoYW5uZWxJZGVudGlmaWVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKKwkJNDE2RURDMDIyNjAwRTdCMDAwMDkyNjc1IC8qIFJUQ0RhdGFD
aGFubmVsUmVtb3RlSGFuZGxlckNvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxNkVEQzAxMjYwMEU3QjAwMDA5MjY3NSAvKiBSVENEYXRh
Q2hhbm5lbFJlbW90ZUhhbmRsZXJDb25uZWN0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNDE2RURDMDQyNjAwRTgxMDAwMDkyNjc1IC8qIFJU
Q0RhdGFDaGFubmVsUmVtb3RlU291cmNlQ29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE2RURDMDMyNjAwRTgwRjAwMDkyNjc1IC8qIFJU
Q0RhdGFDaGFubmVsUmVtb3RlU291cmNlQ29ubmVjdGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQxNkZEMjVGMjQwRkE0RTUwMDY2NjFEOCAv
KiBOb3dQbGF5aW5nSW5mby5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNDE2RkQyNUQyNDBFRTFBRTAwNjY2MUQ4IC8qIE5vd1BsYXlpbmdJbmZvLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDE3MjUzQUIx
MzU0QkJCQzAwMzYwRjJBIC8qIE1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxNzI1M0E5
MTM1NEJCQkMwMDM2MEYyQSAvKiBNZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50
LmggKi87IH07CiAJCTQxNzYxMkFGMUUzQTk5NDAwMEMzRDgxRCAvKiBMaWJXZWJSVENNZWRpYUVu
ZHBvaW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDQxNzYxMkFCMUUzQTk5M0IwMEMzRDgxRCAvKiBMaWJXZWJSVENNZWRpYUVuZHBvaW50LmNwcCAq
LzsgfTsKQEAgLTc2NDcsNiArNzY1NCw4IEBACiAJCTQxMTAzQUFBMUUzOTc5MEEwMDc2OUYxNCAv
KiBSZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2VDb2NvYS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBSZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2VDb2NvYS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMTE0QTdBMjMxN0IzOUUwMEI1NjAwNyAv
KiBXb3JrZXJNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXb3Jr
ZXJNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk0MTExNEE3QzIzMTdCMzlFMDBCNTYwMDcgLyogV29ya2VyTWVzc2FnZVBvcnRDaGFubmVs
UHJvdmlkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV29ya2VyTWVzc2FnZVBvcnRDaGFubmVs
UHJvdmlkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTEyMjNCODI2MDI0
NEZFMDBCMEEwQjYgLyogU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZp
ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDExMjIzQzMyNjAzNTY3QzAwQjBB
MEI2IC8qIERldGFjaGVkUlRDRGF0YUNoYW5uZWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gRGV0YWNoZWRSVENEYXRhQ2hhbm5lbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk0MTEyQjUzRjFGOUY5QzlCMDBFNjc4NzUgLyogU2VydmljZVdvcmtlclRocmVhZFBy
b3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNlcnZpY2VXb3JrZXJUaHJl
YWRQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTEyQjU0MTFGOUY5QzlD
MDBFNjc4NzUgLyogU2VydmljZVdvcmtlclRocmVhZFByb3h5LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMTRGRTJGMjVCRUJEMTgwMDlEOUYyMCAvKiBSVENS
dGNwUGFyYW1ldGVycy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSVENSdGNw
UGFyYW1ldGVycy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNzc5Myw2ICs3ODAy
LDEzIEBACiAJCTQxNkUwQjM3MjA5QkMzQzIwMDRBOTVEOSAvKiBGZXRjaElkZW50aWZpZXIuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRmV0Y2hJZGVudGlmaWVyLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxNkUyOUE1MTAyRkE5NjIwMDdGQzE0RSAvKiBXb3Jr
ZXJSZXBvcnRpbmdQcm94eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXb3Jr
ZXJSZXBvcnRpbmdQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTZFQ0FF
MzI1QjU4Q0M0MDBCMzREQTUgLyogTWVkaWFTZXNzaW9uR3JvdXBJZGVudGlmaWVyLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhU2Vzc2lvbkdyb3VwSWRlbnRpZmllci5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTZFREJFRDI1RkZCMjI0MDAwOTI2NzUg
LyogUlRDRGF0YUNoYW5uZWxSZW1vdGVTb3VyY2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gUlRDRGF0YUNoYW5uZWxSZW1vdGVTb3VyY2UuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk0MTZFREJFRjI1RkZCMjI0MDAwOTI2NzUgLyogUlRDRGF0YUNo
YW5uZWxSZW1vdGVTb3VyY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUlRD
RGF0YUNoYW5uZWxSZW1vdGVTb3VyY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
NDE2RURCRjQyNjAwRDY3ODAwMDkyNjc1IC8qIFJUQ0RhdGFDaGFubmVsUmVtb3RlSGFuZGxlci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSVENEYXRhQ2hhbm5lbFJlbW90ZUhh
bmRsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDE2RURCRjcyNjAwRDc2MzAw
MDkyNjc1IC8qIFJUQ0RhdGFDaGFubmVsUmVtb3RlSGFuZGxlci5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSVENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXIuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTZFREJGRjI2MDBFNzg3MDAwOTI2NzUgLyog
UlRDRGF0YUNoYW5uZWxJZGVudGlmaWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFJUQ0RhdGFDaGFubmVsSWRlbnRpZmllci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk0MTZFREMwMTI2MDBFN0IwMDAwOTI2NzUgLyogUlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5k
bGVyQ29ubmVjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSVENEYXRh
Q2hhbm5lbFJlbW90ZUhhbmRsZXJDb25uZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTQxNkVEQzAzMjYwMEU4MEYwMDA5MjY3NSAvKiBSVENEYXRhQ2hhbm5lbFJlbW90ZVNv
dXJjZUNvbm5lY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUlRDRGF0
YUNoYW5uZWxSZW1vdGVTb3VyY2VDb25uZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTQxNkY4MDc5MjQ1MDlGMzIwMEI2OEYwMiAvKiBXaW5kb3dEaXNwbGF5Q2FwdHVyZXJN
YWMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2luZG93RGlzcGxheUNhcHR1
cmVyTWFjLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxNkY4MDdBMjQ1MDlGMzIw
MEI2OEYwMiAvKiBTY3JlZW5EaXNwbGF5Q2FwdHVyZXJNYWMubW0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5vYmpjcHA7IHBhdGggPSBTY3JlZW5EaXNwbGF5Q2FwdHVyZXJNYWMubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxNkY4MDdCMjQ1MDlGMzMwMEI2OEYwMiAvKiBXaW5k
b3dEaXNwbGF5Q2FwdHVyZXJNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IHBhdGggPSBXaW5kb3dEaXNwbGF5Q2FwdHVyZXJNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC0xNzI0Miw2ICsxNzI1OCw3IEBACiAJCQkJNDFDN0UxMDUxRTZBNTQzNjAwMjdC
NERFIC8qIENhbnZhc0NhcHR1cmVNZWRpYVN0cmVhbVRyYWNrLmNwcCAqLywKIAkJCQk0MUM3RTEw
NjFFNkE1NDM2MDAyN0I0REUgLyogQ2FudmFzQ2FwdHVyZU1lZGlhU3RyZWFtVHJhY2suaCAqLywK
IAkJCQk0MUM3RTEwODFFNkFBMzdDMDAyN0I0REUgLyogQ2FudmFzQ2FwdHVyZU1lZGlhU3RyZWFt
VHJhY2suaWRsICovLAorCQkJCTQxMTIyM0MzMjYwMzU2N0MwMEIwQTBCNiAvKiBEZXRhY2hlZFJU
Q0RhdGFDaGFubmVsLmggKi8sCiAJCQkJOTNBODA2MTExRTAzQjUxQzAwOEExRjI2IC8qIERvdWJs
ZVJhbmdlLmggKi8sCiAJCQkJOTNBODA2MTIxRTAzQjUxQzAwOEExRjI2IC8qIERvdWJsZVJhbmdl
LmlkbCAqLywKIAkJCQk5M0E4MDYxMzFFMDNCNTFDMDA4QTFGMjYgLyogTG9uZ1JhbmdlLmggKi8s
CkBAIC0xNzI5MSw2ICsxNzMwOCwxMCBAQAogCQkJCTA3MjIxQjY2MTdDRUMzMjcwMDg0OEU1MSAv
KiBSVENEYXRhQ2hhbm5lbEV2ZW50LmNwcCAqLywKIAkJCQkwNzIyMUI2NzE3Q0VDMzI3MDA4NDhF
NTEgLyogUlRDRGF0YUNoYW5uZWxFdmVudC5oICovLAogCQkJCTA3MjIxQjY4MTdDRUMzMjcwMDg0
OEU1MSAvKiBSVENEYXRhQ2hhbm5lbEV2ZW50LmlkbCAqLywKKwkJCQk0MTZFREJGNzI2MDBENzYz
MDAwOTI2NzUgLyogUlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVyLmNwcCAqLywKKwkJCQk0MTZF
REJGNDI2MDBENjc4MDAwOTI2NzUgLyogUlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVyLmggKi8s
CisJCQkJNDE2RURCRUQyNUZGQjIyNDAwMDkyNjc1IC8qIFJUQ0RhdGFDaGFubmVsUmVtb3RlU291
cmNlLmNwcCAqLywKKwkJCQk0MTZFREJFRjI1RkZCMjI0MDAwOTI2NzUgLyogUlRDRGF0YUNoYW5u
ZWxSZW1vdGVTb3VyY2UuaCAqLywKIAkJCQk0MUZDQjc1RDIxNDg2NkZFMDAzOEFEQzYgLyogUlRD
RGVncmFkYXRpb25QcmVmZXJlbmNlLmggKi8sCiAJCQkJNDFGQ0I3NTUyMTQ4NjVDRjAwMzhBREM2
IC8qIFJUQ0RlZ3JhZGF0aW9uUHJlZmVyZW5jZS5pZGwgKi8sCiAJCQkJMDcyMjFCNjkxN0NFQzMy
NzAwODQ4RTUxIC8qIFJUQ0RUTUZTZW5kZXIuY3BwICovLApAQCAtMTc0ODYsNiArMTc1MDcsOSBA
QAogCQkJCTMxMzU5MTBDMUU3RERDQjYwMEYzMDYzMCAvKiBSVENCdW5kbGVQb2xpY3kuaCAqLywK
IAkJCQkwNzIyMUJBMjE3Q0YwQUQ0MDA4NDhFNTEgLyogUlRDRGF0YUNoYW5uZWxIYW5kbGVyLmgg
Ki8sCiAJCQkJMDcyMjFCQTMxN0NGMEFENDAwODQ4RTUxIC8qIFJUQ0RhdGFDaGFubmVsSGFuZGxl
ckNsaWVudC5oICovLAorCQkJCTQxNkVEQkZGMjYwMEU3ODcwMDA5MjY3NSAvKiBSVENEYXRhQ2hh
bm5lbElkZW50aWZpZXIuaCAqLywKKwkJCQk0MTZFREMwMTI2MDBFN0IwMDAwOTI2NzUgLyogUlRD
RGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVyQ29ubmVjdGlvbi5oICovLAorCQkJCTQxNkVEQzAzMjYw
MEU4MEYwMDA5MjY3NSAvKiBSVENEYXRhQ2hhbm5lbFJlbW90ZVNvdXJjZUNvbm5lY3Rpb24uaCAq
LywKIAkJCQkzMTZERTcwMTFFODNBRTFEMDA4NEMyNjEgLyogUlRDRGF0YUNoYW5uZWxTdGF0ZS5o
ICovLAogCQkJCTQxRjIzNTQ0MjJGNTUwMzMwMEI0RkNEQiAvKiBSVENEVE1GU2VuZGVyQmFja2Vu
ZC5oICovLAogCQkJCTA3MjIxQkE2MTdDRjBBRDQwMDg0OEU1MSAvKiBSVENJY2VDYW5kaWRhdGVE
ZXNjcmlwdG9yLmNwcCAqLywKQEAgLTI3ODEzLDYgKzI3ODM3LDcgQEAKIAkJCQlBMThGN0EzNTFF
Q0E3MzY0MDA1OUUxRTEgLyogUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmNwcCAqLywKIAkJCQky
OTNFQUUxRTEzNTZCMkZFMDA2N0FDRjkgLyogUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmggKi8s
CiAJCQkJQzFFMUQyMzUyMDNERjE1NDAwNTg0NjY1IC8qIFNjcmVlblByb3BlcnRpZXMuaCAqLywK
KwkJCQk0MTEyMjNCODI2MDI0NEZFMDBCMEEwQjYgLyogU2NyaXB0RXhlY3V0aW9uQ29udGV4dElk
ZW50aWZpZXIuaCAqLywKIAkJCQlCQzhBRTM0QzEyRUEwOTZBMDBFQjNBRTYgLyogU2Nyb2xsYWJs
ZUFyZWEuY3BwICovLAogCQkJCUJDOEFFMzREMTJFQTA5NkEwMEVCM0FFNiAvKiBTY3JvbGxhYmxl
QXJlYS5oICovLAogCQkJCTBGQzY5MkJDMjU3QzBGNDEwMDk4RTNGOSAvKiBTY3JvbGxBbmltYXRp
b25LaW5ldGljLmNwcCAqLywKQEAgLTM0NjIwLDYgKzM0NjQ1LDExIEBACiAJCQkJMDc4RTA5M0Mx
N0QxNkUxQzAwNDIwQUExIC8qIFJUQ0RhdGFDaGFubmVsSGFuZGxlci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMDc4RTA5M0QxN0QxNkUxQzAwNDIwQUExIC8qIFJUQ0RhdGFDaGFubmVsSGFuZGxlckNs
aWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDczNzk0RkExOUY1ODY0RTAwRTVBMDQ1IC8qIFJU
Q0RhdGFDaGFubmVsSGFuZGxlck1vY2suaCBpbiBIZWFkZXJzICovLAorCQkJCTQxNkVEQzAwMjYw
MEU3ODgwMDA5MjY3NSAvKiBSVENEYXRhQ2hhbm5lbElkZW50aWZpZXIuaCBpbiBIZWFkZXJzICov
LAorCQkJCTQxNkVEQkY2MjYwMEQ2NzkwMDA5MjY3NSAvKiBSVENEYXRhQ2hhbm5lbFJlbW90ZUhh
bmRsZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxNkVEQzAyMjYwMEU3QjAwMDA5MjY3NSAvKiBS
VENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXJDb25uZWN0aW9uLmggaW4gSGVhZGVycyAqLywKKwkJ
CQk0MTEyMjNCRTI2MDI1QkMxMDBCMEEwQjYgLyogUlRDRGF0YUNoYW5uZWxSZW1vdGVTb3VyY2Uu
aCBpbiBIZWFkZXJzICovLAorCQkJCTQxNkVEQzA0MjYwMEU4MTAwMDA5MjY3NSAvKiBSVENEYXRh
Q2hhbm5lbFJlbW90ZVNvdXJjZUNvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTMxNkRF
NzAyMUU4M0FFMUQwMDg0QzI2MSAvKiBSVENEYXRhQ2hhbm5lbFN0YXRlLmggaW4gSGVhZGVycyAq
LywKIAkJCQkwNzhFMDkyMDE3RDE0RDFDMDA0MjBBQTEgLyogUlRDRFRNRlNlbmRlci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMDc4RTA5MjExN0QxNEQxQzAwNDIwQUExIC8qIFJUQ0RUTUZUb25lQ2hh
bmdlRXZlbnQuaCBpbiBIZWFkZXJzICovLApAQCAtMzQ2ODgsNiArMzQ3MTgsNyBAQAogCQkJCTA4
QTQ4NDc4MEU1MjcyQzUwMEMzRkU3NiAvKiBTY3JpcHRFbGVtZW50LmggaW4gSGVhZGVycyAqLywK
IAkJCQlFM0U0RTJBODFFM0IxNzEwMDAyM0JCOEEgLyogU2NyaXB0RWxlbWVudENhY2hlZFNjcmlw
dEZldGNoZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxMUM5RDlCMEVCMzY4MTIwMEU0MDlEQiAv
KiBTY3JpcHRFeGVjdXRpb25Db250ZXh0LmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTEyMjNCQTI2
MDI0NEZFMDBCMEEwQjYgLyogU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTM3MkQzRTU1MjE2NTc4QUUwMEM1RTAyMSAvKiBTY3JpcHRNb2R1bGVM
b2FkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUZEMzE2MDM2MTJCMDI2NzYwMEMxQTM1OSAvKiBT
Y3JpcHRQcm9jZXNzb3JOb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQk4QTQxM0FFMDEyMDdCQkE1
MDA4MjAxNkUgLyogU2NyaXB0UnVubmVyLmggaW4gSGVhZGVycyAqLywKQEAgLTM1NjYwLDYgKzM1
NjkxLDcgQEAKIAkJCQlBNTRBMEM2MjFEQjdGOEMxMDAxN0E5MEIgLyogV29ya2VySW5zcGVjdG9y
Q29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTU0QTBDNkMxREI4MzFGOTAwMTdBOTBC
IC8qIFdvcmtlckluc3BlY3RvclByb3h5LmggaW4gSGVhZGVycyAqLywKIAkJCQkxOEY4MzFCODBG
RDQ4Qzc4MDBEOEM1NkIgLyogV29ya2VyTG9hZGVyUHJveHkuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTQxMTIyM0M1MjYwMzU2N0QwMEIwQTBCNiAvKiBEZXRhY2hlZFJUQ0RhdGFDaGFubmVsLmggaW4g
SGVhZGVycyAqLywKIAkJCQkyRTQzNDY0RDBGNTQ2QTgyMDBCMEYxQkEgLyogV29ya2VyTG9jYXRp
b24uaCBpbiBIZWFkZXJzICovLAogCQkJCTJFNDM0NjUwMEY1NDZBODIwMEIwRjFCQSAvKiBXb3Jr
ZXJNZXNzYWdpbmdQcm94eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTM0MzJERTQyNUQzNzdFMzAw
NThFNjEyIC8qIFdvcmtlck1vZHVsZVNjcmlwdExvYWRlci5oIGluIEhlYWRlcnMgKi8sCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNw
cAppbmRleCA0NzUzNDJhZGVjNTg0ZTM2MjAxMTRmMTc4YjM0ODU2M2VjZWM2N2U4Li5mNjlmMTE0
NThjY2Q0YjY5MWI1YWFjMGQ3ZTJhOWU1OWRiYjQ1OTRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAKQEAgLTM4MjYsOSAr
MzgyNiwxNiBAQCBTZXJpYWxpemVkU2NyaXB0VmFsdWU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZShW
ZWN0b3I8dWludDhfdD4mJiBidWZmZXIpCiAgICAgbV9tZW1vcnlDb3N0ID0gY29tcHV0ZU1lbW9y
eUNvc3QoKTsKIH0KIAotU2VyaWFsaXplZFNjcmlwdFZhbHVlOjpTZXJpYWxpemVkU2NyaXB0VmFs
dWUoVmVjdG9yPHVpbnQ4X3Q+JiYgYnVmZmVyLCBzdGQ6OnVuaXF1ZV9wdHI8QXJyYXlCdWZmZXJD
b250ZW50c0FycmF5PiBhcnJheUJ1ZmZlckNvbnRlbnRzQXJyYXkpCitTZXJpYWxpemVkU2NyaXB0
VmFsdWU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZShWZWN0b3I8dWludDhfdD4mJiBidWZmZXIsIHN0
ZDo6dW5pcXVlX3B0cjxBcnJheUJ1ZmZlckNvbnRlbnRzQXJyYXk+JiYgYXJyYXlCdWZmZXJDb250
ZW50c0FycmF5CisjaWYgRU5BQkxFKFdFQl9SVEMpCisgICAgICAgICwgVmVjdG9yPHN0ZDo6dW5p
cXVlX3B0cjxEZXRhY2hlZFJUQ0RhdGFDaGFubmVsPj4mJiBkZXRhY2hlZFJUQ0RhdGFDaGFubmVs
cworI2VuZGlmCisgICAgICAgICkKICAgICA6IG1fZGF0YShXVEZNb3ZlKGJ1ZmZlcikpCiAgICAg
LCBtX2FycmF5QnVmZmVyQ29udGVudHNBcnJheShXVEZNb3ZlKGFycmF5QnVmZmVyQ29udGVudHNB
cnJheSkpCisjaWYgRU5BQkxFKFdFQl9SVEMpCisgICAgLCBtX2RldGFjaGVkUlRDRGF0YUNoYW5u
ZWxzKFdURk1vdmUoZGV0YWNoZWRSVENEYXRhQ2hhbm5lbHMpKQorI2VuZGlmCiB7CiAgICAgbV9t
ZW1vcnlDb3N0ID0gY29tcHV0ZU1lbW9yeUNvc3QoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgKaW5kZXggNTRjOGU4MGY0ZTBi
MDE0MGY2MTQyZjk0MTIyYzE1NjA4NWJkYWIxYy4uOGRkMTk1ZjBkYmNjNjY3ZmJjNzdmNjNiNzZh
OTU4ZWMwYTJlY2JiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2Vy
aWFsaXplZFNjcmlwdFZhbHVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2Vy
aWFsaXplZFNjcmlwdFZhbHVlLmgKQEAgLTI2LDYgKzI2LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAK
KyNpbmNsdWRlICJEZXRhY2hlZFJUQ0RhdGFDaGFubmVsLmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9u
T3IuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9BcnJheUJ1ZmZlci5oPgogI2luY2x1ZGUg
PEphdmFTY3JpcHRDb3JlL0pTQ0pTVmFsdWUuaD4KQEAgLTUwLDkgKzUxLDYgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogI2lmIEVOQUJMRShPRkZTQ1JFRU5fQ0FOVkFTKQogY2xhc3MgRGV0YWNoZWRP
ZmZzY3JlZW5DYW52YXM7CiAjZW5kaWYKLSNpZiBFTkFCTEUoV0VCX1JUQykKLXN0cnVjdCBEZXRh
Y2hlZFJUQ0RhdGFDaGFubmVsOwotI2VuZGlmCiBjbGFzcyBJREJWYWx1ZTsKIGNsYXNzIE1lc3Nh
Z2VQb3J0OwogY2xhc3MgSW1hZ2VCaXRtYXBCYWNraW5nOwpAQCAtMTIwLDcgKzExOCwxMiBAQCBw
dWJsaWM6CiAKIHByaXZhdGU6CiAgICAgV0VCQ09SRV9FWFBPUlQgU2VyaWFsaXplZFNjcmlwdFZh
bHVlKFZlY3Rvcjx1bnNpZ25lZCBjaGFyPiYmKTsKLSAgICBXRUJDT1JFX0VYUE9SVCBTZXJpYWxp
emVkU2NyaXB0VmFsdWUoVmVjdG9yPHVuc2lnbmVkIGNoYXI+JiYsIHN0ZDo6dW5pcXVlX3B0cjxB
cnJheUJ1ZmZlckNvbnRlbnRzQXJyYXk+KTsKKyAgICBXRUJDT1JFX0VYUE9SVCBTZXJpYWxpemVk
U2NyaXB0VmFsdWUoVmVjdG9yPHVuc2lnbmVkIGNoYXI+JiYsIHN0ZDo6dW5pcXVlX3B0cjxBcnJh
eUJ1ZmZlckNvbnRlbnRzQXJyYXk+JiYKKyNpZiBFTkFCTEUoV0VCX1JUQykKKyAgICAgICAgLCBW
ZWN0b3I8c3RkOjp1bmlxdWVfcHRyPERldGFjaGVkUlRDRGF0YUNoYW5uZWw+PiYmCisjZW5kaWYK
KyAgICAgICAgKTsKKwogICAgIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZShWZWN0b3I8dW5zaWduZWQg
Y2hhcj4mJiwgY29uc3QgVmVjdG9yPFN0cmluZz4mIGJsb2JVUkxzLCBzdGQ6OnVuaXF1ZV9wdHI8
QXJyYXlCdWZmZXJDb250ZW50c0FycmF5Piwgc3RkOjp1bmlxdWVfcHRyPEFycmF5QnVmZmVyQ29u
dGVudHNBcnJheT4gc2hhcmVkQnVmZmVycywgVmVjdG9yPE9wdGlvbmFsPEltYWdlQml0bWFwQmFj
a2luZz4+JiYgYmFja2luZ1N0b3JlcwogI2lmIEVOQUJMRShPRkZTQ1JFRU5fQ0FOVkFTKQogICAg
ICAgICAsIFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8RGV0YWNoZWRPZmZzY3JlZW5DYW52YXM+PiYm
ID0geyB9CkBAIC0xNzAsNiArMTczLDEyIEBAIHZvaWQgU2VyaWFsaXplZFNjcmlwdFZhbHVlOjpl
bmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICAgICAgZW5jb2RlciA8PCBhcnJheUJ1
ZmZlckNvbnRlbnRzLnNpemVJbkJ5dGVzKCk7CiAgICAgICAgIGVuY29kZXIuZW5jb2RlRml4ZWRM
ZW5ndGhEYXRhKHN0YXRpY19jYXN0PGNvbnN0IHVpbnQ4X3QqPihhcnJheUJ1ZmZlckNvbnRlbnRz
LmRhdGEoKSksIGFycmF5QnVmZmVyQ29udGVudHMuc2l6ZUluQnl0ZXMoKSwgMSk7CiAgICAgfQor
CisjaWYgRU5BQkxFKFdFQl9SVEMpCisgICAgZW5jb2RlciA8PCBzdGF0aWNfY2FzdDx1aW50NjRf
dD4obV9kZXRhY2hlZFJUQ0RhdGFDaGFubmVscy5zaXplKCkpOworICAgIGZvciAoY29uc3QgYXV0
byAmY2hhbm5lbCA6IG1fZGV0YWNoZWRSVENEYXRhQ2hhbm5lbHMpCisgICAgICAgIGVuY29kZXIg
PDwgKmNoYW5uZWw7CisjZW5kaWYKIH0KIAogdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KQEAgLTIw
OSw3ICsyMTgsMjUgQEAgUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gU2VyaWFsaXplZFNj
cmlwdFZhbHVlOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKICAgICAgICAgYXJyYXlCdWZmZXJD
b250ZW50c0FycmF5LT5hcHBlbmQoeyBidWZmZXIsIGJ1ZmZlclNpemUsIEFycmF5QnVmZmVyOjpw
cmltaXRpdmVHaWdhY2FnZURlc3RydWN0b3IoKSB9KTsKICAgICB9CiAKLSAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBTZXJpYWxpemVkU2NyaXB0VmFsdWUoV1RGTW92ZShkYXRhKSwgV1RGTW92ZShh
cnJheUJ1ZmZlckNvbnRlbnRzQXJyYXkpKSk7CisjaWYgRU5BQkxFKFdFQl9SVEMpCisgICAgdWlu
dDY0X3QgZGV0YWNoZWRSVENEYXRhQ2hhbm5lbHNTaXplOworICAgIGlmICghZGVjb2Rlci5kZWNv
ZGUoZGV0YWNoZWRSVENEYXRhQ2hhbm5lbHNTaXplKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7
CisKKyAgICBWZWN0b3I8c3RkOjp1bmlxdWVfcHRyPERldGFjaGVkUlRDRGF0YUNoYW5uZWw+PiBk
ZXRhY2hlZFJUQ0RhdGFDaGFubmVsczsKKyAgICB3aGlsZSAoZGV0YWNoZWRSVENEYXRhQ2hhbm5l
bHNTaXplLS0pIHsKKyAgICAgICAgYXV0byBkZXRhY2hlZFJUQ0RhdGFDaGFubmVsID0gRGV0YWNo
ZWRSVENEYXRhQ2hhbm5lbDo6ZGVjb2RlKGRlY29kZXIpOworICAgICAgICBpZiAoIWRldGFjaGVk
UlRDRGF0YUNoYW5uZWwpCisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgZGV0
YWNoZWRSVENEYXRhQ2hhbm5lbHMuYXBwZW5kKFdURk1vdmUoZGV0YWNoZWRSVENEYXRhQ2hhbm5l
bCkpOworICAgIH0KKyNlbmRpZgorCisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU2VyaWFsaXpl
ZFNjcmlwdFZhbHVlKFdURk1vdmUoZGF0YSksIFdURk1vdmUoYXJyYXlCdWZmZXJDb250ZW50c0Fy
cmF5KQorI2lmIEVOQUJMRShXRUJfUlRDKQorICAgICAgICAsIFdURk1vdmUoZGV0YWNoZWRSVENE
YXRhQ2hhbm5lbHMpCisjZW5kaWYKKyAgICAgICAgKSk7CiB9CiAKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5jcHAKaW5kZXggZDU2M2U2OGFmZDVjYTAzMDZiNTZhMmM5OTA3MWFlZDVlY2Q3NzBmMS4uODhj
ZDUyMWU3Y2ZlMDZiYTgyNWFmY2Y4OTQ0NzY0YzJkN2M5OGEwYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuY3BwCkBAIC0zNDkxLDcgKzM0OTEsMTYgQEAgU29ja2V0UHJvdmlkZXIqIERvY3VtZW50Ojpz
b2NrZXRQcm92aWRlcigpCiB7CiAgICAgcmV0dXJuIG1fc29ja2V0UHJvdmlkZXIuZ2V0KCk7CiB9
Ci0gICAgCisKK1JlZlB0cjxSVENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXJDb25uZWN0aW9uPiBE
b2N1bWVudDo6Y3JlYXRlUlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVyQ29ubmVjdGlvbigpCit7
CisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBhdXRvKiBwYWdlID0gdGhpcy0+cGFn
ZSgpOworICAgIGlmICghcGFnZSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgcmV0dXJu
IHBhZ2UtPmxpYldlYlJUQ1Byb3ZpZGVyKCkuY3JlYXRlUlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5k
bGVyQ29ubmVjdGlvbigpOworfQorCiBib29sIERvY3VtZW50OjpjYW5OYXZpZ2F0ZShGcmFtZSog
dGFyZ2V0RnJhbWUsIGNvbnN0IFVSTCYgZGVzdGluYXRpb25VUkwpCiB7CiAgICAgaWYgKCFtX2Zy
YW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCAyZDgyN2QwODgyN2Y4NzhjOTVmMTc3MzkzYzRh
MjgzNjMyMGYxYjMxLi40MmJlYTg4OGVhMTkyYWRkZjRjOGM3N2YwYzBjNjlmYmUxNDZhMjUyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuaApAQCAtNzA1LDYgKzcwNSw3IEBAIHB1YmxpYzoKICAgICBJREJD
bGllbnQ6OklEQkNvbm5lY3Rpb25Qcm94eSogaWRiQ29ubmVjdGlvblByb3h5KCkgZmluYWw7CiAj
ZW5kaWYKICAgICBTb2NrZXRQcm92aWRlciogc29ja2V0UHJvdmlkZXIoKSBmaW5hbDsKKyAgICBS
ZWZQdHI8UlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVyQ29ubmVjdGlvbj4gY3JlYXRlUlRDRGF0
YUNoYW5uZWxSZW1vdGVIYW5kbGVyQ29ubmVjdGlvbigpIGZpbmFsOwogCiAgICAgYm9vbCBjYW5O
YXZpZ2F0ZShGcmFtZSogdGFyZ2V0RnJhbWUsIGNvbnN0IFVSTCYgZGVzdGluYXRpb25VUkwgPSBV
UkwoKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25D
b250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oCmlu
ZGV4IDJhOTIzMDcxMjBhMDc3OTE2YmUwYmJkM2Y4OTBmM2Y0MmJkZGU1NjQuLjhiYTIzMjk3YmIx
OWFmOTA3YjExYjBkYmQyY2E0ZDkwZGU2NWFkMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1Nj
cmlwdEV4ZWN1dGlvbkNvbnRleHQuaApAQCAtMjksNiArMjksOCBAQAogCiAjaW5jbHVkZSAiQWN0
aXZlRE9NT2JqZWN0LmgiCiAjaW5jbHVkZSAiRE9NVGltZXIuaCIKKyNpbmNsdWRlICJSVENEYXRh
Q2hhbm5lbFJlbW90ZUhhbmRsZXJDb25uZWN0aW9uLmgiCisjaW5jbHVkZSAiU2NyaXB0RXhlY3V0
aW9uQ29udGV4dElkZW50aWZpZXIuaCIKICNpbmNsdWRlICJTZWN1cml0eUNvbnRleHQuaCIKICNp
bmNsdWRlICJTZXJ2aWNlV29ya2VyVHlwZXMuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgpAQCAt
ODAsOSArODIsNiBAQCBuYW1lc3BhY2UgSURCQ2xpZW50IHsKIGNsYXNzIElEQkNvbm5lY3Rpb25Q
cm94eTsKIH0KIAotZW51bSBTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllclR5cGUgeyB9
OwotdXNpbmcgU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIgPSBPYmplY3RJZGVudGlm
aWVyPFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyVHlwZT47Ci0KIGNsYXNzIFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQgOiBwdWJsaWMgU2VjdXJpdHlDb250ZXh0LCBwdWJsaWMgQ2FuTWFr
ZVdlYWtQdHI8U2NyaXB0RXhlY3V0aW9uQ29udGV4dD4gewogcHVibGljOgogICAgIFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQoKTsKQEAgLTExNSw2ICsxMTQsOCBAQCBwdWJsaWM6CiAjZW5kaWYKICAg
ICB2aXJ0dWFsIFNvY2tldFByb3ZpZGVyKiBzb2NrZXRQcm92aWRlcigpID0gMDsKIAorICAgIHZp
cnR1YWwgUmVmUHRyPFJUQ0RhdGFDaGFubmVsUmVtb3RlSGFuZGxlckNvbm5lY3Rpb24+IGNyZWF0
ZVJUQ0RhdGFDaGFubmVsUmVtb3RlSGFuZGxlckNvbm5lY3Rpb24oKSB7IHJldHVybiBudWxscHRy
OyB9CisKICAgICB2aXJ0dWFsIFN0cmluZyByZXNvdXJjZVJlcXVlc3RJZGVudGlmaWVyKCkgY29u
c3QgeyByZXR1cm4gU3RyaW5nKCk7IH07CiAKICAgICBib29sIGNhbkluY2x1ZGVFcnJvckRldGFp
bHMoQ2FjaGVkU2NyaXB0KiwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlm
aWVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uY2Q0ZmM3MzIzOWJjMGMyYTk0YzQ4YzA2MzcyODA2ZDUzZmUzZjkx
NQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NjcmlwdEV4ZWN1
dGlvbkNvbnRleHRJZGVudGlmaWVyLmgKQEAgLTAsMCArMSwzNSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNw
cmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3RmL09iamVjdElkZW50aWZpZXIuaD4KKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitlbnVtIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyVHlw
ZSB7IH07Cit1c2luZyBTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciA9IE9iamVjdElk
ZW50aWZpZXI8U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXJUeXBlPjsKKworfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDRGF0YUNoYW5u
ZWxIYW5kbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENEYXRh
Q2hhbm5lbEhhbmRsZXIuaAppbmRleCAxYzAzNDdkZjYwYTllMjY4NDliYTRkODZiMGQ4NmUwNDJk
M2E3ODhjLi4xZTk1MTQxNjAwMzM2NGVkYWJhMDRlYmNiNWY3YmFmZTc0YjFlN2QyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbEhh
bmRsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENEYXRh
Q2hhbm5lbEhhbmRsZXIuaApAQCAtMjgsNyArMjgsNyBAQAogI2lmIEVOQUJMRShXRUJfUlRDKQog
CiAjaW5jbHVkZSAiUlRDUHJpb3JpdHlUeXBlLmgiCi0jaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9u
Q29udGV4dC5oIgorI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyLmgi
CiAjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5n
Lmg+CiAKQEAgLTQ0LDYgKzQ0LDkgQEAgc3RydWN0IFJUQ0RhdGFDaGFubmVsSW5pdCB7CiAgICAg
UlRDUHJpb3JpdHlUeXBlIHByaW9yaXR5IHsgUlRDUHJpb3JpdHlUeXBlOjpMb3cgfTsKIAogICAg
IFJUQ0RhdGFDaGFubmVsSW5pdCBpc29sYXRlZENvcHkoKSBjb25zdDsKKworICAgIHRlbXBsYXRl
PGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKKyAgICB0ZW1wbGF0
ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgT3B0aW9uYWw8UlRDRGF0YUNoYW5uZWxJbml0PiBkZWNv
ZGUoRGVjb2RlciYpOwogfTsKIAogaW5saW5lIFJUQ0RhdGFDaGFubmVsSW5pdCBSVENEYXRhQ2hh
bm5lbEluaXQ6Omlzb2xhdGVkQ29weSgpIGNvbnN0CkBAIC01Myw2ICs1Niw1MCBAQCBpbmxpbmUg
UlRDRGF0YUNoYW5uZWxJbml0IFJUQ0RhdGFDaGFubmVsSW5pdDo6aXNvbGF0ZWRDb3B5KCkgY29u
c3QKICAgICByZXR1cm4gY29weTsKIH0KIAordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBS
VENEYXRhQ2hhbm5lbEluaXQ6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAg
IGVuY29kZXIgPDwgb3JkZXJlZCA8PCBtYXhQYWNrZXRMaWZlVGltZSA8PCBtYXhSZXRyYW5zbWl0
cyA8PCBwcm90b2NvbCA8PCBuZWdvdGlhdGVkIDw8IGlkIDw8IHByaW9yaXR5OworfQorCit0ZW1w
bGF0ZTxjbGFzcyBEZWNvZGVyPiBPcHRpb25hbDxSVENEYXRhQ2hhbm5lbEluaXQ+IFJUQ0RhdGFD
aGFubmVsSW5pdDo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCit7CisgICAgT3B0aW9uYWw8Ym9v
bD4gb3JkZXJlZDsKKyAgICBkZWNvZGVyID4+IG9yZGVyZWQ7CisgICAgaWYgKCFvcmRlcmVkKQor
ICAgICAgICByZXR1cm4geyB9OworCisgICAgT3B0aW9uYWw8dW5zaWduZWQgc2hvcnQ+IG1heFBh
Y2tldExpZmVUaW1lOworICAgIGRlY29kZXIgPj4gbWF4UGFja2V0TGlmZVRpbWU7CisgICAgaWYg
KCFtYXhQYWNrZXRMaWZlVGltZSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKworICAgIE9wdGlvbmFs
PHVuc2lnbmVkIHNob3J0PiBtYXhSZXRyYW5zbWl0czsKKyAgICBkZWNvZGVyID4+IG1heFJldHJh
bnNtaXRzOworICAgIGlmICghbWF4UmV0cmFuc21pdHMpCisgICAgICAgIHJldHVybiB7IH07CisK
KyAgICBTdHJpbmcgcHJvdG9jb2w7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwcm90b2NvbCkp
CisgICAgICAgIHJldHVybiB7IH07CisKKyAgICBPcHRpb25hbDxib29sPiBuZWdvdGlhdGVkOwor
ICAgIGRlY29kZXIgPj4gbmVnb3RpYXRlZDsKKyAgICBpZiAoIW5lZ290aWF0ZWQpCisgICAgICAg
IHJldHVybiB7IH07CisKKyAgICBPcHRpb25hbDx1bnNpZ25lZCBzaG9ydD4gaWQ7CisgICAgZGVj
b2RlciA+PiBpZDsKKyAgICBpZiAoIWlkKQorICAgICAgICByZXR1cm4geyB9OworCisgICAgT3B0
aW9uYWw8UlRDUHJpb3JpdHlUeXBlPiBwcmlvcml0eTsKKyAgICBkZWNvZGVyID4+IHByaW9yaXR5
OworICAgIGlmICghcHJpb3JpdHkpCisgICAgICAgIHJldHVybiB7IH07CisKKyAgICByZXR1cm4g
UlRDRGF0YUNoYW5uZWxJbml0IHsgKm9yZGVyZWQsICptYXhQYWNrZXRMaWZlVGltZSwgKm1heFJl
dHJhbnNtaXRzLCBXVEZNb3ZlKHByb3RvY29sKSwgKm5lZ290aWF0ZWQsICppZCwgKnByaW9yaXR5
IH07Cit9CisKIGNsYXNzIFJUQ0RhdGFDaGFubmVsSGFuZGxlckNsaWVudDsKIAogY2xhc3MgUlRD
RGF0YUNoYW5uZWxIYW5kbGVyIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsSWRlbnRpZmllci5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDRGF0YUNoYW5uZWxJZGVudGlmaWVyLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZTM0MDJlYmFhZjMzNjQyNDdhNDMxYWFlZWJlYzk0NThlZDVkMGY3OQotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVs
SWRlbnRpZmllci5oCkBAIC0wLDAgKzEsNjMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
CisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KKyAqIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNl
CisKKyNpbmNsdWRlICJQcm9jZXNzSWRlbnRpZmllci5oIgorI2luY2x1ZGUgPHd0Zi9PYmplY3RJ
ZGVudGlmaWVyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworZW51bSBSVENEYXRhQ2hhbm5l
bExvY2FsSWRlbnRpZmllclR5cGUgeyB9OwordXNpbmcgUlRDRGF0YUNoYW5uZWxMb2NhbElkZW50
aWZpZXIgPSBPYmplY3RJZGVudGlmaWVyPFJUQ0RhdGFDaGFubmVsTG9jYWxJZGVudGlmaWVyVHlw
ZT47CitzdHJ1Y3QgUlRDRGF0YUNoYW5uZWxJZGVudGlmaWVyIHsKKyAgICBQcm9jZXNzSWRlbnRp
ZmllciBwcm9jZXNzSWRlbnRpZmllcjsKKyAgICBSVENEYXRhQ2hhbm5lbExvY2FsSWRlbnRpZmll
ciBjaGFubmVsSWRlbnRpZmllcjsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQg
ZW5jb2RlKEVuY29kZXImKSBjb25zdDsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0
aWMgT3B0aW9uYWw8UlRDRGF0YUNoYW5uZWxJZGVudGlmaWVyPiBkZWNvZGUoRGVjb2RlciYpOwor
fTsKKwordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK2lubGluZSB2b2lkIFJUQ0RhdGFDaGFubmVs
SWRlbnRpZmllcjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2Rl
ciA8PCBwcm9jZXNzSWRlbnRpZmllciA8PCBjaGFubmVsSWRlbnRpZmllcjsKK30KKwordGVtcGxh
dGU8Y2xhc3MgRGVjb2Rlcj4KK2lubGluZSBPcHRpb25hbDxSVENEYXRhQ2hhbm5lbElkZW50aWZp
ZXI+IFJUQ0RhdGFDaGFubmVsSWRlbnRpZmllcjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCit7
CisgICAgT3B0aW9uYWw8UHJvY2Vzc0lkZW50aWZpZXI+IHByb2Nlc3NJZGVudGlmaWVyOworICAg
IGRlY29kZXIgPj4gcHJvY2Vzc0lkZW50aWZpZXI7CisgICAgaWYgKCFwcm9jZXNzSWRlbnRpZmll
cikKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIE9wdGlvbmFsPFJUQ0RhdGFD
aGFubmVsTG9jYWxJZGVudGlmaWVyPiBjaGFubmVsSWRlbnRpZmllcjsKKyAgICBkZWNvZGVyID4+
IGNoYW5uZWxJZGVudGlmaWVyOworICAgIGlmICghY2hhbm5lbElkZW50aWZpZXIpCisgICAgICAg
IHJldHVybiBXVEY6Om51bGxvcHQ7CisgICAgcmV0dXJuIFJUQ0RhdGFDaGFubmVsSWRlbnRpZmll
ciB7ICpwcm9jZXNzSWRlbnRpZmllciwgKmNoYW5uZWxJZGVudGlmaWVyIH07Cit9CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsUmVtb3RlSGFuZGxlckNvbm5lY3Rpb24uaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsUmVtb3RlSGFuZGxl
ckNvbm5lY3Rpb24uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNDY5MjEzNTk2M2Q2ZTZiNjUyNWEzNDk5YTM4OTRh
NGNkNzE4NDE2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vUlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVyQ29ubmVjdGlvbi5oCkBAIC0wLDAg
KzEsNDUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisg
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04KKyAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUworICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJSVENEYXRh
Q2hhbm5lbElkZW50aWZpZXIuaCIKKyNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRl
bnRpZmllci5oIgorI2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5oPgorI2luY2x1
ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNz
IFJUQ0RhdGFDaGFubmVsUmVtb3RlSGFuZGxlcjsKKworY2xhc3MgUlRDRGF0YUNoYW5uZWxSZW1v
dGVIYW5kbGVyQ29ubmVjdGlvbiA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxSVENEYXRh
Q2hhbm5lbFJlbW90ZUhhbmRsZXJDb25uZWN0aW9uLCBXVEY6OkRlc3RydWN0aW9uVGhyZWFkOjpN
YWluPiB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+UlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVy
Q29ubmVjdGlvbigpID0gZGVmYXVsdDsKKworICAgIHZpcnR1YWwgdm9pZCBjb25uZWN0VG9Tb3Vy
Y2UoUlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVyJiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dElk
ZW50aWZpZXIsIFJUQ0RhdGFDaGFubmVsSWRlbnRpZmllciwgUlRDRGF0YUNoYW5uZWxJZGVudGlm
aWVyKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNlbmREYXRhKFJUQ0RhdGFDaGFubmVsSWRlbnRp
ZmllciwgYm9vbCBpc1JhdywgY29uc3QgdW5zaWduZWQgY2hhciosIHNpemVfdCkgPSAwOworICAg
IHZpcnR1YWwgdm9pZCBjbG9zZShSVENEYXRhQ2hhbm5lbElkZW50aWZpZXIpID0gMDsKK307CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsUmVtb3RlU291cmNlQ29ubmVjdGlvbi5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDRGF0YUNoYW5uZWxSZW1vdGVT
b3VyY2VDb25uZWN0aW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDEyNDdmNjg0Zjc2MDkwYTZkMmJlMjUwYTU1
ODg2NGNjZjA0MjE1NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsUmVtb3RlU291cmNlQ29ubmVjdGlvbi5oCkBAIC0w
LDAgKzEsNDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Cisg
KiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04KKyAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUworICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoV0VC
X1JUQykKKworI2luY2x1ZGUgIlJUQ0RhdGFDaGFubmVsSWRlbnRpZmllci5oIgorI2luY2x1ZGUg
IlJUQ0RhdGFDaGFubmVsU3RhdGUuaCIKKyNpbmNsdWRlIDx3dGYvVGhyZWFkU2FmZVJlZkNvdW50
ZWQuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitjbGFzcyBSVENEYXRhQ2hhbm5lbFJlbW90ZVNvdXJjZUNvbm5lY3Rpb24gOiBwdWJs
aWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8UlRDRGF0YUNoYW5uZWxSZW1vdGVTb3VyY2VDb25uZWN0
aW9uLCBXVEY6OkRlc3RydWN0aW9uVGhyZWFkOjpNYWluPiB7CitwdWJsaWM6CisgICAgdmlydHVh
bCB+UlRDRGF0YUNoYW5uZWxSZW1vdGVTb3VyY2VDb25uZWN0aW9uKCkgPSBkZWZhdWx0OworCisg
ICAgdmlydHVhbCB2b2lkIGRpZENoYW5nZVJlYWR5U3RhdGUoUlRDRGF0YUNoYW5uZWxJZGVudGlm
aWVyLCBSVENEYXRhQ2hhbm5lbFN0YXRlKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2Vp
dmVTdHJpbmdEYXRhKFJUQ0RhdGFDaGFubmVsSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJikgPSAw
OworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlUmF3RGF0YShSVENEYXRhQ2hhbm5lbElkZW50
aWZpZXIsIGNvbnN0IGNoYXIqLCBzaXplX3QpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkRGV0
ZWN0RXJyb3IoUlRDRGF0YUNoYW5uZWxJZGVudGlmaWVyKSA9IDA7CisgICAgdmlydHVhbCB2b2lk
IGJ1ZmZlcmVkQW1vdW50SXNEZWNyZWFzaW5nKFJUQ0RhdGFDaGFubmVsSWRlbnRpZmllciwgc2l6
ZV90KSA9IDA7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFC
TEUoV0VCX1JUQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL1JUQ0RhdGFDaGFubmVsU3RhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL1JUQ0RhdGFDaGFubmVsU3RhdGUuaAppbmRleCAyZTk5NjA2N2Q0ZmJmMjBlNWE0M2I0
MmRlNTM5MjQ2MWJkNzM4NDVlLi5jMDQwZGRmYmNhMzE2ZjRmOTZlODk3YWI2YWYzNmQwMzE2NGIw
Mzk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENE
YXRhQ2hhbm5lbFN0YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vUlRDRGF0YUNoYW5uZWxTdGF0ZS5oCkBAIC0yOSw3ICsyOSw3IEBACiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotZW51bSBjbGFzcyBSVENEYXRhQ2hhbm5lbFN0YXRlIHsKK2VudW0gY2xhc3Mg
UlRDRGF0YUNoYW5uZWxTdGF0ZSA6IHVpbnQ4X3QgewogICAgIENvbm5lY3RpbmcsCiAgICAgT3Bl
biwKICAgICBDbG9zaW5nLApAQCAtMzgsNCArMzgsMTkgQEAgZW51bSBjbGFzcyBSVENEYXRhQ2hh
bm5lbFN0YXRlIHsKIAogfTsgLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAorCituYW1lc3BhY2UgV1RG
IHsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpSVENEYXRhQ2hhbm5l
bFN0YXRlPiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKKyAgICAgICAgV2ViQ29y
ZTo6UlRDRGF0YUNoYW5uZWxTdGF0ZSwKKyAgICAgICAgV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWxT
dGF0ZTo6Q29ubmVjdGluZywKKyAgICAgICAgV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWxTdGF0ZTo6
T3BlbiwKKyAgICAgICAgV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWxTdGF0ZTo6Q2xvc2luZywKKyAg
ICAgICAgV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWxTdGF0ZTo6Q2xvc2VkCisgICAgPjsKK307CisK
K30KKwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9SVENQcmlvcml0eVR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL1JUQ1ByaW9yaXR5VHlwZS5oCmluZGV4IDQ1ZWMzZTk1NWYzNmVmNDVkZDRkOGNmNTU2NzNm
M2QyYTdiYjBhNGMuLjVkODRkOThiZjgzMmViNWIyYmVhY2E5ZWYxMDZhM2UzMGM1ODg3N2UgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ1ByaW9yaXR5
VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ1ByaW9y
aXR5VHlwZS5oCkBAIC0zMyw0ICszMywxOCBAQCBlbnVtIGNsYXNzIFJUQ1ByaW9yaXR5VHlwZSB7
IFZlcnlMb3csIExvdywgTWVkaXVtLCBIaWdoIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
IAorbmFtZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29y
ZTo6UlRDUHJpb3JpdHlUeXBlPiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKKyAg
ICAgICAgV2ViQ29yZTo6UlRDUHJpb3JpdHlUeXBlLAorICAgICAgICBXZWJDb3JlOjpSVENQcmlv
cml0eVR5cGU6OlZlcnlMb3csCisgICAgICAgIFdlYkNvcmU6OlJUQ1ByaW9yaXR5VHlwZTo6TG93
LAorICAgICAgICBXZWJDb3JlOjpSVENQcmlvcml0eVR5cGU6Ok1lZGl1bSwKKyAgICAgICAgV2Vi
Q29yZTo6UlRDUHJpb3JpdHlUeXBlOjpIaWdoCisgICAgPjsKK307CisKK30KKwogI2VuZGlmIC8v
IEVOQUJMRShXRUJfUlRDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuaAppbmRleCBj
YTAwOTIxZGM0NjFlOGViYmViYWZjMjFkYzU3YjdkNzNiYmZjMzY2Li4wZDBkNTU4MDc2ZDcyYjYy
ODRjOGYyMDFiMjNhZDQ3MjUzNGE1NzI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUHJvdmlk
ZXIuaApAQCAtMjcsNiArMjcsNyBAQAogCiAjaW5jbHVkZSAiRG9jdW1lbnRJZGVudGlmaWVyLmgi
CiAjaW5jbHVkZSAiTGliV2ViUlRDTWFjcm9zLmgiCisjaW5jbHVkZSAiUlRDRGF0YUNoYW5uZWxS
ZW1vdGVIYW5kbGVyQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxl
ci5oPgogI2luY2x1ZGUgPHd0Zi9FeHBlY3RlZC5oPgogI2luY2x1ZGUgPHd0Zi9VbmlxdWVSZWYu
aD4KQEAgLTkxLDYgKzkyLDggQEAgcHVibGljOgogICAgICAgICBjYWxsYmFjayhtYWtlVW5leHBl
Y3RlZChNRE5TUmVnaXN0ZXJFcnJvcjo6Tm90SW1wbGVtZW50ZWQpKTsKICAgICB9CiAKKyAgICB2
aXJ0dWFsIFJlZlB0cjxSVENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXJDb25uZWN0aW9uPiBjcmVh
dGVSVENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXJDb25uZWN0aW9uKCkgeyByZXR1cm4gbnVsbHB0
cjsgfQorCiAjaWYgVVNFKExJQldFQlJUQykKICAgICB2aXJ0dWFsIHJ0Yzo6c2NvcGVkX3JlZnB0
cjx3ZWJydGM6OlBlZXJDb25uZWN0aW9uSW50ZXJmYWNlPiBjcmVhdGVQZWVyQ29ubmVjdGlvbih3
ZWJydGM6OlBlZXJDb25uZWN0aW9uT2JzZXJ2ZXImLCBydGM6OlBhY2tldFNvY2tldEZhY3Rvcnkq
LCB3ZWJydGM6OlBlZXJDb25uZWN0aW9uSW50ZXJmYWNlOjpSVENDb25maWd1cmF0aW9uJiYpOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuY3BwCmluZGV4IDk3
OTlhYWVhOGFjMTU4MmI0ZWM3YmY2OTYyMmZkNGZkOGNiNjRmYmEuLjc0YjQ1MjZmZDQ5ZGRkMmM2
M2EzZTQ2NmI2MTM5MzUwNjFiNzI5YTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvV29ya2VyR2xvYmFsU2NvcGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29y
a2VyR2xvYmFsU2NvcGUuY3BwCkBAIC0xNjEsNiArMTYxLDE3IEBAIFNvY2tldFByb3ZpZGVyKiBX
b3JrZXJHbG9iYWxTY29wZTo6c29ja2V0UHJvdmlkZXIoKQogICAgIHJldHVybiBtX3NvY2tldFBy
b3ZpZGVyLmdldCgpOwogfQogCitSZWZQdHI8UlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVyQ29u
bmVjdGlvbj4gV29ya2VyR2xvYmFsU2NvcGU6OmNyZWF0ZVJUQ0RhdGFDaGFubmVsUmVtb3RlSGFu
ZGxlckNvbm5lY3Rpb24oKQoreworICAgIFJlZlB0cjxSVENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRs
ZXJDb25uZWN0aW9uPiBjb25uZWN0aW9uOworICAgIGNhbGxPbk1haW5UaHJlYWRBbmRXYWl0KFt3
b3JrZXJUaHJlYWQgPSBtYWtlUmVmKHRocmVhZCgpKSwgJmNvbm5lY3Rpb25dKCkgbXV0YWJsZSB7
CisgICAgICAgIGNvbm5lY3Rpb24gPSB3b3JrZXJUaHJlYWQtPndvcmtlckxvYWRlclByb3h5KCku
Y3JlYXRlUlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVyQ29ubmVjdGlvbigpOworICAgIH0pOwor
ICAgIEFTU0VSVChjb25uZWN0aW9uKTsKKworICAgIHJldHVybiBjb25uZWN0aW9uOworfQorCiAj
aWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCiAKIElEQkNsaWVudDo6SURCQ29ubmVjdGlvblBy
b3h5KiBXb3JrZXJHbG9iYWxTY29wZTo6aWRiQ29ubmVjdGlvblByb3h5KCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuaCBiL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuaAppbmRleCA3NDc5NWY1YzBmOWEyYTM1ZDAw
OTMwMTJhZDE4ZjU3ZTMxN2Y4MjcxLi4xMjdhMjk0ZTk2ZjNiMmIzOWM4MzU5OTdiZjA1ZGM1Mjlh
YTU3OTE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNj
b3BlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5oCkBA
IC0xNDYsNiArMTQ2LDcgQEAgcHJpdmF0ZToKICAgICBFdmVudFRhcmdldCogZXJyb3JFdmVudFRh
cmdldCgpIGZpbmFsOwogICAgIFN0cmluZyByZXNvdXJjZVJlcXVlc3RJZGVudGlmaWVyKCkgY29u
c3QgZmluYWwgeyByZXR1cm4gbV9pZGVudGlmaWVyOyB9CiAgICAgU29ja2V0UHJvdmlkZXIqIHNv
Y2tldFByb3ZpZGVyKCkgZmluYWw7CisgICAgUmVmUHRyPFJUQ0RhdGFDaGFubmVsUmVtb3RlSGFu
ZGxlckNvbm5lY3Rpb24+IGNyZWF0ZVJUQ0RhdGFDaGFubmVsUmVtb3RlSGFuZGxlckNvbm5lY3Rp
b24oKSBmaW5hbDsKIAogICAgIGJvb2wgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3Vy
aXR5UG9saWN5KCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9zaG91bGRCeXBhc3NNYWluV29ybGRD
b250ZW50U2VjdXJpdHlQb2xpY3k7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9Xb3JrZXJMb2FkZXJQcm94eS5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJM
b2FkZXJQcm94eS5oCmluZGV4IGVlNjQ2OWQ1ZDYxNGUzYWQ4MjdhMjI1MzNjZGMwZjRhNDkyMmE1
MTkuLmU3YTMwZmM5OGI5ZWU1MTU4MTIyNmI5NTZjOGJhNDU0YzExNzMyYTggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTG9hZGVyUHJveHkuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL1dvcmtlckxvYWRlclByb3h5LmgKQEAgLTUwLDYgKzUwLDggQEAgcHVi
bGljOgogICAgIC8vIENyZWF0ZXMgYSBjYWNoZSBzdG9yYWdlIGNvbm5lY3Rpb24gdG8gYmUgdXNl
ZCBvbiB0aGUgbWFpbiB0aHJlYWQuIE1ldGhvZCBtdXN0IGJlIGNhbGxlZCBvbiB0aGUgbWFpbiB0
aHJlYWQuCiAgICAgdmlydHVhbCBSZWZQdHI8Q2FjaGVTdG9yYWdlQ29ubmVjdGlvbj4gY3JlYXRl
Q2FjaGVTdG9yYWdlQ29ubmVjdGlvbigpID0gMDsKIAorICAgIHZpcnR1YWwgUmVmUHRyPFJUQ0Rh
dGFDaGFubmVsUmVtb3RlSGFuZGxlckNvbm5lY3Rpb24+IGNyZWF0ZVJUQ0RhdGFDaGFubmVsUmVt
b3RlSGFuZGxlckNvbm5lY3Rpb24oKSA9IDA7CisKICAgICAvLyBQb3N0cyBhIHRhc2sgdG8gdGhl
IHRocmVhZCB3aGljaCBydW5zIHRoZSBsb2FkaW5nIGNvZGUgKG5vcm1hbGx5LCB0aGUgbWFpbiB0
aHJlYWQpLgogICAgIHZpcnR1YWwgdm9pZCBwb3N0VGFza1RvTG9hZGVyKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQ6OlRhc2smJikgPSAwOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29y
a2VyTWVzc2FnaW5nUHJveHkuY3BwCmluZGV4IDk0MTQ1ZDVkNDNjZGVhYTU2NWQxMmVlYjFiODg2
NDNiMGFmZjZmMWEuLmIxMDdkNjU3MTVkYThkN2YzMzhlY2FmMDBiZjQ4MTJmMzc1ZjVlMWYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuY3BwCkBA
IC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSAiRXJyb3JFdmVudC5oIgogI2luY2x1ZGUgIkV2ZW50
TmFtZXMuaCIKICNpbmNsdWRlICJGZXRjaFJlcXVlc3RDcmVkZW50aWFscy5oIgorI2luY2x1ZGUg
IkxpYldlYlJUQ1Byb3ZpZGVyLmgiCiAjaW5jbHVkZSAiTWVzc2FnZUV2ZW50LmgiCiAjaW5jbHVk
ZSAiUGFnZS5oIgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKQEAgLTE3NSw2
ICsxNzYsMTUgQEAgUmVmUHRyPENhY2hlU3RvcmFnZUNvbm5lY3Rpb24+IFdvcmtlck1lc3NhZ2lu
Z1Byb3h5OjpjcmVhdGVDYWNoZVN0b3JhZ2VDb25uZWN0aW8KICAgICByZXR1cm4gZG9jdW1lbnQu
cGFnZSgpLT5jYWNoZVN0b3JhZ2VQcm92aWRlcigpLmNyZWF0ZUNhY2hlU3RvcmFnZUNvbm5lY3Rp
b24oKTsKIH0KIAorUmVmUHRyPFJUQ0RhdGFDaGFubmVsUmVtb3RlSGFuZGxlckNvbm5lY3Rpb24+
IFdvcmtlck1lc3NhZ2luZ1Byb3h5OjpjcmVhdGVSVENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXJD
b25uZWN0aW9uKCkKK3sKKyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgIGF1dG8mIGRv
Y3VtZW50ID0gZG93bmNhc3Q8RG9jdW1lbnQ+KCptX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpOwor
ICAgIGlmICghZG9jdW1lbnQucGFnZSgpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICBy
ZXR1cm4gZG9jdW1lbnQucGFnZSgpLT5saWJXZWJSVENQcm92aWRlcigpLmNyZWF0ZVJUQ0RhdGFD
aGFubmVsUmVtb3RlSGFuZGxlckNvbm5lY3Rpb24oKTsKK30KKwogYm9vbCBXb3JrZXJNZXNzYWdp
bmdQcm94eTo6cG9zdFRhc2tGb3JNb2RlVG9Xb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZShTY3Jp
cHRFeGVjdXRpb25Db250ZXh0OjpUYXNrJiYgdGFzaywgY29uc3QgU3RyaW5nJiBtb2RlKQogewog
ICAgIGlmIChtX2Fza2VkVG9UZXJtaW5hdGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dv
cmtlck1lc3NhZ2luZ1Byb3h5LmgKaW5kZXggZDllODFlMTU3YTBmNDg1MmU0OWI1OWQyNTY2YThh
ODBmNWY4MThhZS4uYmU5ZjQ2MGYzOGUyZDU1NjMzNWU3NmM5ZjVjYWMwOGZlODkyNjE4MiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuaApAQCAtODEs
NiArODEsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgaXNXb3JrZXJNZXNzYWdpbmdQcm94eSgpIGNv
bnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KICAgICB2b2lkIHBvc3RUYXNrVG9Mb2FkZXIoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dDo6VGFzayYmKSBmaW5hbDsKICAgICBSZWZQdHI8Q2FjaGVTdG9y
YWdlQ29ubmVjdGlvbj4gY3JlYXRlQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbigpIGZpbmFsOworICAg
IFJlZlB0cjxSVENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXJDb25uZWN0aW9uPiBjcmVhdGVSVENE
YXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXJDb25uZWN0aW9uKCkgZmluYWw7CiAKICAgICB2b2lkIHdv
cmtlclRocmVhZENyZWF0ZWQoRGVkaWNhdGVkV29ya2VyVGhyZWFkJik7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJl
YWRQcm94eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2
aWNlV29ya2VyVGhyZWFkUHJveHkuY3BwCmluZGV4IGQyY2FkOTYxMmYyNGMxNTBkZGVkN2ExY2Q5
OGIyODZjZmE4MmM0MDkuLjQ1ZGNhZjNmNzE0NmYzYWE2YjFkYzQ0MTllMDZkYmYyY2M0OWI1OGIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZp
Y2VXb3JrZXJUaHJlYWRQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2
aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZFByb3h5LmNwcApAQCAtMzQsNiArMzQsNyBA
QAogI2luY2x1ZGUgIkZldGNoTG9hZGVyLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRl
ICJGcmFtZUxvYWRlci5oIgorI2luY2x1ZGUgIkxpYldlYlJUQ1Byb3ZpZGVyLmgiCiAjaW5jbHVk
ZSAiTG9hZGVyU3RyYXRlZ3kuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTWVz
c2FnZVdpdGhNZXNzYWdlUG9ydHMuaCIKQEAgLTE2Myw2ICsxNjQsMTIgQEAgUmVmUHRyPENhY2hl
U3RvcmFnZUNvbm5lY3Rpb24+IFNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eTo6Y3JlYXRlQ2FjaGVT
dG9yYWdlQ29ubmUKICAgICByZXR1cm4gbV9jYWNoZVN0b3JhZ2VDb25uZWN0aW9uOwogfQogCitS
ZWZQdHI8UlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVyQ29ubmVjdGlvbj4gU2VydmljZVdvcmtl
clRocmVhZFByb3h5OjpjcmVhdGVSVENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXJDb25uZWN0aW9u
KCkKK3sKKyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgIHJldHVybiBtX3BhZ2UtPmxp
YldlYlJUQ1Byb3ZpZGVyKCkuY3JlYXRlUlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVyQ29ubmVj
dGlvbigpOworfQorCiBzdGQ6OnVuaXF1ZV9wdHI8RmV0Y2hMb2FkZXI+IFNlcnZpY2VXb3JrZXJU
aHJlYWRQcm94eTo6Y3JlYXRlQmxvYkxvYWRlcihGZXRjaExvYWRlckNsaWVudCYgY2xpZW50LCBj
b25zdCBVUkwmIGJsb2JVUkwpCiB7CiAgICAgYXV0byBsb2FkZXIgPSBtYWtlVW5pcXVlPEZldGNo
TG9hZGVyPihjbGllbnQsIG51bGxwdHIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZFByb3h5LmggYi9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkUHJveHku
aAppbmRleCBhMWQ0ZDk1OTUzMTRhZWZkMDQxMGJhMWJjMDY4NTNhMzVkOTZlOTkzLi4zNmQwZmY4
ODhiZmQxYWZjNmRkNjhlYWMzOTJhZTc5NWZiMThjZDdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2Vy
VGhyZWFkUHJveHkuaApAQCAtODgsNiArODgsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgcG9zdFRh
c2tGb3JNb2RlVG9Xb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZShTY3JpcHRFeGVjdXRpb25Db250
ZXh0OjpUYXNrJiYsIGNvbnN0IFN0cmluZyYgbW9kZSkgZmluYWw7CiAgICAgdm9pZCBwb3N0VGFz
a1RvTG9hZGVyKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlRhc2smJikgZmluYWw7CiAgICAgUmVm
UHRyPENhY2hlU3RvcmFnZUNvbm5lY3Rpb24+IGNyZWF0ZUNhY2hlU3RvcmFnZUNvbm5lY3Rpb24o
KSBmaW5hbDsKKyAgICBSZWZQdHI8UlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVyQ29ubmVjdGlv
bj4gY3JlYXRlUlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVyQ29ubmVjdGlvbigpIGZpbmFsOwog
CiAgICAgLy8gV29ya2VyRGVidWdnZXJQcm94eQogICAgIHZvaWQgcG9zdE1lc3NhZ2VUb0RlYnVn
Z2VyKGNvbnN0IFN0cmluZyYpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DTWFr
ZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQKaW5kZXggM2VhNzk0NjA4
NDEwNzA2NWJlODI4ZDRkYTJhOWQ2ZGE2MDdlOTkyMC4uZDZjZDA4ZWE0MDQxNDQxNTUwZGIwNTY3
NTIzMTU2NzRlNDNhODBiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4
dAorKysgYi9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0CkBAIC0xNzEsNiArMTcxLDcgQEAg
c2V0KFdlYktpdF9NRVNTQUdFU19JTl9GSUxFUwogICAgIE5ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9O
ZXR3b3JrTUROU1JlZ2lzdGVyCiAgICAgTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENN
b25pdG9yCiAgICAgTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlcgorICAg
IE5ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9SVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXJQcm94eQog
CiAgICAgUGx1Z2luUHJvY2Vzcy9QbHVnaW5Db250cm9sbGVyUHJveHkKICAgICBQbHVnaW5Qcm9j
ZXNzL1BsdWdpblByb2Nlc3MKQEAgLTI0NSw2ICsyNDYsNyBAQCBzZXQoV2ViS2l0X01FU1NBR0VT
X0lOX0ZJTEVTCiAgICAgV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUkKIAogICAg
IFdlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDTmV0d29yaworICAgIFdlYlByb2Nl
c3MvTmV0d29yay93ZWJydGMvUlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyCiAgICAgV2ViUHJv
Y2Vzcy9OZXR3b3JrL3dlYnJ0Yy9XZWJNRE5TUmVnaXN0ZXIKICAgICBXZWJQcm9jZXNzL05ldHdv
cmsvd2VicnRjL1dlYlJUQ01vbml0b3IKICAgICBXZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL1dl
YlJUQ1Jlc29sdmVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlu
cHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmls
ZWxpc3QKaW5kZXggZmI2MjEzYzRjYzM2ZjMzODUyOGMxOGI5NDhmOWFjODg5MzhiMTJkZS4uOWYy
Mjk3MTA3MTZiNDE5MzAwYTI0NmQwZDNmYmI4MGZjZWE4NmJiMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJL
aXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdApAQCAtNzAsNiArNzAsNyBAQCAkKFBS
T0pFQ1RfRElSKS9OZXR3b3JrUHJvY2Vzcy9tYWMvY29tLmFwcGxlLldlYktpdC5OZXR3b3JrUHJv
Y2Vzcy5zYi5pbgogJChQUk9KRUNUX0RJUikvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtN
RE5TUmVnaXN0ZXIubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL05ldHdvcmtQcm9jZXNzL3dl
YnJ0Yy9OZXR3b3JrUlRDTW9uaXRvci5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvTmV0d29y
a1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlci5tZXNzYWdlcy5pbgorJChQUk9KRUNU
X0RJUikvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL1JUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlclBy
b3h5Lm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9QbHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRy
b2xsZXJQcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvUGx1Z2luUHJvY2Vzcy9QbHVn
aW5Qcm9jZXNzLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9QbHVnaW5Qcm9jZXNzL1dlYlBy
b2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluCkBAIC0xNjgsNiArMTY5LDcgQEAgJChQUk9KRUNU
X0RJUikvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLm1lc3NhZ2VzLmluCiAk
KFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL05ldHdvcmsvV2ViU29ja2V0Q2hhbm5lbC5tZXNzYWdl
cy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlNvY2tldFN0cmVhbS5t
ZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJX
ZWJSVENOZXR3b3JrLm1lc3NhZ2VzLmluCiskKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL05ldHdv
cmsvd2VicnRjL1JUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlci5tZXNzYWdlcy5pbgogJChQUk9K
RUNUX0RJUikvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9XZWJNRE5TUmVnaXN0ZXIubWVzc2Fn
ZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvV2ViUlRDTW9u
aXRvci5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0
Yy9XZWJSVENSZXNvbHZlci5tZXNzYWdlcy5pbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9E
ZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNv
dXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKaW5kZXggZjI1NWI3M2MyYTBmMTBjODYyYzFjMThmZTk1
YTRmNzNmY2Y3MTgwMS4uODM5OGNmYzAxM2QzY2FmZjU3YzdjZjFkMjhhZmE0MzhlMzdmZGYyMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlz
dAorKysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CkBA
IC0xMzMsNiArMTMzLDEyIEBAICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJLaXQyL1BsdWdpblByb2Nlc3NQcm94eU1lc3NhZ2VzUmVwbGllcy5oCiAkKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9QbHVnaW5Qcm94eU1lc3NhZ2VSZWNlaXZl
ci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1BsdWdp
blByb3h5TWVzc2FnZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dl
YktpdDIvUGx1Z2luUHJveHlNZXNzYWdlc1JlcGxpZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyTWVzc2Fn
ZVJlY2VpdmVyLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktp
dDIvUlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyTWVzc2FnZXMuaAorJChCVUlMVF9QUk9EVUNU
U19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2Vy
TWVzc2FnZXNSZXBsaWVzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJLaXQyL1JUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNw
cAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUlRDRGF0YUNo
YW5uZWxSZW1vdGVNYW5hZ2VyUHJveHlNZXNzYWdlcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXJQcm94eU1l
c3NhZ2VzUmVwbGllcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2Vi
S2l0Mi9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAKICQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUF1ZGlvRGVz
dGluYXRpb25NYW5hZ2VyTWVzc2FnZXMuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZl
ZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlck1lc3NhZ2VzLmgK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9X
ZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCBiNmEwYzA0M2JiYjZkODM4YjY3ZDA3MzUx
Mzg2NzE5YWFiZmIwMjkzLi41ZmQ1OGQyMjRhN2M3ZDk0Yzc4MjI0Y2E1MDU2MDFhM2IyZmU3MzZh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291
cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC0xMzIsNiArMTMyLDcgQEAgTUVTU0FH
RV9SRUNFSVZFUlMgPSBcCiAJTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtNRE5TUmVnaXN0
ZXIgXAogCU5ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIgXAogCU5ldHdv
cmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDTW9uaXRvciBcCisJTmV0d29ya1Byb2Nlc3Mvd2Vi
cnRjL1JUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlclByb3h5IFwKIAlOZXR3b3JrUHJvY2Vzcy9D
b29raWVzL1dlYkNvb2tpZU1hbmFnZXIgXAogCVNoYXJlZC9QbHVnaW5zL05QT2JqZWN0TWVzc2Fn
ZVJlY2VpdmVyIFwKIAlTaGFyZWQvQXV4aWxpYXJ5UHJvY2VzcyBcCkBAIC0yMDMsOCArMjA0LDkg
QEAgTUVTU0FHRV9SRUNFSVZFUlMgPSBcCiAJV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9j
ZXNzQ29ubmVjdGlvbiBcCiAJV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlNvY2tldFN0cmVhbSBcCiAJ
V2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyIFwKLQlXZWJQcm9jZXNzL05ldHdv
cmsvd2VicnRjL1dlYlJUQ01vbml0b3IgXAogCVdlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGli
V2ViUlRDTmV0d29yayBcCisJV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9SVENEYXRhQ2hhbm5l
bFJlbW90ZU1hbmFnZXIgXAorCVdlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvV2ViUlRDTW9uaXRv
ciBcCiAJV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9XZWJNRE5TUmVnaXN0ZXIgXAogCVdlYlBy
b2Nlc3MvTmV0d29yay93ZWJydGMvV2ViUlRDUmVzb2x2ZXIgXAogCVdlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlciBcCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3MuY3BwCmluZGV4IDRmNTg4NWU4Zjc0ZjMyOWViZDNlZWJkZmVhYTk2N2YyYzdh
NmY0YzIuLjI4NDZjNmY0YjNiZmE2N2E5NjM0MTkzYzYwNjgzODRjYzFhNzBmODUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MuY3BwCkBAIC01Miw2ICs1Miw3IEBACiAjaW5jbHVkZSAiTmV0d29y
a1NvY2tldFN0cmVhbU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiUGluZ0xvYWQuaCIKICNpbmNsdWRl
ICJQcmVjb25uZWN0VGFzay5oIgorI2luY2x1ZGUgIlJUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdl
clByb3h5LmgiCiAjaW5jbHVkZSAiU2VydmljZVdvcmtlckZldGNoVGFza01lc3NhZ2VzLmgiCiAj
aW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCiAjaW5jbHVkZSAiV2ViRXJyb3JzLmgi
CkBAIC0xNDcsNiArMTQ4LDkgQEAgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6On5OZXR3
b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcygpCiAgICAgaWYgKG1fcnRjUHJvdmlkZXIpCiAgICAg
ICAgIG1fcnRjUHJvdmlkZXItPmNsb3NlKCk7CiAjZW5kaWYKKyNpZiBFTkFCTEUoV0VCX1JUQykK
KyAgICB1bnJlZ2lzdGVyVG9SVENEYXRhQ2hhbm5lbFByb3h5KCk7CisjZW5kaWYKIAogI2lmIEVO
QUJMRShTRVJWSUNFX1dPUktFUikKICAgICB1bnJlZ2lzdGVyU1dDb25uZWN0aW9uKCk7CkBAIC0y
NzgsNiArMjgyLDM0IEBAIHZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNyZWF0
ZVJUQ1Byb3ZpZGVyKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mCiAgICAgY2FsbGJhY2soKTsK
IH0KIAorI2lmIEVOQUJMRShXRUJfUlRDKQordm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzczo6Y29ubmVjdFRvUlRDRGF0YUNoYW5uZWxSZW1vdGVTb3VyY2UoV2ViQ29yZTo6UlRDRGF0
YUNoYW5uZWxJZGVudGlmaWVyIGxvY2FsSWRlbnRpZmllciwgV2ViQ29yZTo6UlRDRGF0YUNoYW5u
ZWxJZGVudGlmaWVyIHJlbW90ZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0
aW9uYWw8Ym9vbD4pPiYmIGNhbGxiYWNrKQoreworICAgIGF1dG8qIGNvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MgPSBtX25ldHdvcmtQcm9jZXNzLT53ZWJQcm9jZXNzQ29ubmVjdGlvbihyZW1vdGVJZGVu
dGlmaWVyLnByb2Nlc3NJZGVudGlmaWVyKTsKKyAgICBpZiAoIWNvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MpIHsKKyAgICAgICAgY2FsbGJhY2soZmFsc2UpOworICAgICAgICByZXR1cm47CisgICAgfQor
ICAgIHJlZ2lzdGVyVG9SVENEYXRhQ2hhbm5lbFByb3h5KCk7CisgICAgY29ubmVjdGlvblRvV2Vi
UHJvY2Vzcy0+cmVnaXN0ZXJUb1JUQ0RhdGFDaGFubmVsUHJveHkoKTsKKyAgICBjb25uZWN0aW9u
VG9XZWJQcm9jZXNzLT5jb25uZWN0aW9uKCkuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpO
ZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OkNvbm5lY3RUb1JUQ0RhdGFDaGFubmVsUmVtb3RlU291
cmNlIHsgcmVtb3RlSWRlbnRpZmllciwgbG9jYWxJZGVudGlmaWVyIH0sIFdURk1vdmUoY2FsbGJh
Y2spLCAwKTsKK30KKwordm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6cmVnaXN0
ZXJUb1JUQ0RhdGFDaGFubmVsUHJveHkoKQoreworICAgIGlmIChtX2lzUmVnaXN0ZXJlZFRvUlRD
RGF0YUNoYW5uZWxQcm94eSkKKyAgICAgICAgcmV0dXJuOworICAgIG1faXNSZWdpc3RlcmVkVG9S
VENEYXRhQ2hhbm5lbFByb3h5ID0gdHJ1ZTsKKyAgICBtX25ldHdvcmtQcm9jZXNzLT5ydGNEYXRh
Q2hhbm5lbFByb3h5KCkucmVnaXN0ZXJDb25uZWN0aW9uVG9XZWJQcm9jZXNzKCp0aGlzKTsKK30K
Kwordm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6dW5yZWdpc3RlclRvUlRDRGF0
YUNoYW5uZWxQcm94eSgpCit7CisgICAgaWYgKG1faXNSZWdpc3RlcmVkVG9SVENEYXRhQ2hhbm5l
bFByb3h5KQorICAgICAgICBtX25ldHdvcmtQcm9jZXNzLT5ydGNEYXRhQ2hhbm5lbFByb3h5KCku
dW5yZWdpc3RlckNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoKnRoaXMpOworfQorI2VuZGlmCisKIENh
Y2hlU3RvcmFnZUVuZ2luZUNvbm5lY3Rpb24mIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNz
OjpjYWNoZVN0b3JhZ2VDb25uZWN0aW9uKCkKIHsKICAgICBpZiAoIW1fY2FjaGVTdG9yYWdlQ29u
bmVjdGlvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAppbmRleCBkYTA2ZjczOWVmYTVkNTM0MGU5
YTYxODIzODViZTViMDY3M2UyM2FkLi45YzUyOWY5MmNhZTJjNzM0MzQ3NzM0M2U0NTEwODgzN2My
NjgzYTMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCkBAIC00OCw2ICs0OCw3IEBACiAjaW5j
bHVkZSA8V2ViQ29yZS9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L1BhZ2VJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Qcm9jZXNzSWRlbnRpZmllci5o
PgorI2luY2x1ZGUgPFdlYkNvcmUvUlRDRGF0YUNoYW5uZWxJZGVudGlmaWVyLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9SZWdpc3RyYWJsZURvbWFpbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvV2ViU29j
a2V0SWRlbnRpZmllci5oPgogI2luY2x1ZGUgPHd0Zi9PcHRpb25TZXQuaD4KQEAgLTI1MCw2ICsy
NTEsOSBAQCBwcml2YXRlOgogI2VuZGlmCiAKICAgICB2b2lkIGNyZWF0ZVJUQ1Byb3ZpZGVyKENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CisjaWYgRU5BQkxFKFdFQl9SVEMpCisgICAgdm9p
ZCBjb25uZWN0VG9SVENEYXRhQ2hhbm5lbFJlbW90ZVNvdXJjZShXZWJDb3JlOjpSVENEYXRhQ2hh
bm5lbElkZW50aWZpZXIgc291cmNlLCBXZWJDb3JlOjpSVENEYXRhQ2hhbm5lbElkZW50aWZpZXIg
aGFuZGxlciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxib29sPik+JiYpOworI2Vu
ZGlmCiAKICAgICB2b2lkIGNyZWF0ZU5ld01lc3NhZ2VQb3J0Q2hhbm5lbChjb25zdCBXZWJDb3Jl
OjpNZXNzYWdlUG9ydElkZW50aWZpZXImIHBvcnQxLCBjb25zdCBXZWJDb3JlOjpNZXNzYWdlUG9y
dElkZW50aWZpZXImIHBvcnQyKTsKICAgICB2b2lkIGVudGFuZ2xlTG9jYWxQb3J0SW5UaGlzUHJv
Y2Vzc1RvUmVtb3RlKGNvbnN0IFdlYkNvcmU6Ok1lc3NhZ2VQb3J0SWRlbnRpZmllciYgbG9jYWws
IGNvbnN0IFdlYkNvcmU6Ok1lc3NhZ2VQb3J0SWRlbnRpZmllciYgcmVtb3RlKTsKQEAgLTI3MSw2
ICsyNzUsOCBAQCBwcml2YXRlOgogI2VuZGlmCiAjaWYgRU5BQkxFKFdFQl9SVEMpCiAgICAgTmV0
d29ya01ETlNSZWdpc3RlciYgbWRuc1JlZ2lzdGVyKCkgeyByZXR1cm4gbV9tZG5zUmVnaXN0ZXI7
IH0KKyAgICB2b2lkIHJlZ2lzdGVyVG9SVENEYXRhQ2hhbm5lbFByb3h5KCk7CisgICAgdm9pZCB1
bnJlZ2lzdGVyVG9SVENEYXRhQ2hhbm5lbFByb3h5KCk7CiAjZW5kaWYKIAogICAgIENhY2hlU3Rv
cmFnZUVuZ2luZUNvbm5lY3Rpb24mIGNhY2hlU3RvcmFnZUNvbm5lY3Rpb24oKTsKQEAgLTM4NSw2
ICszOTEsMTAgQEAgcHJpdmF0ZToKICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViU1dTZXJ2ZXJUb0Nv
bnRleHRDb25uZWN0aW9uPiBtX3N3Q29udGV4dENvbm5lY3Rpb247CiAjZW5kaWYKIAorI2lmIEVO
QUJMRShXRUJfUlRDKQorICAgIGJvb2wgbV9pc1JlZ2lzdGVyZWRUb1JUQ0RhdGFDaGFubmVsUHJv
eHkgeyBmYWxzZSB9OworI2VuZGlmCisKICNpZiBFTkFCTEUoQVBQTEVfUEFZX1JFTU9URV9VSSkK
ICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHk+IG1fcGF5bWVu
dENvb3JkaW5hdG9yOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNz
YWdlcy5pbgppbmRleCBmZjhkNGExNzlmMWZhZmQ2MmI1ZDNmYTY0ZTk5YzIwOGFhOGZiZjlhLi45
NDhiY2NhNDNkYTgxNDM1YjcxZmU4ZDk3OWU4MGQ3MmU4MmQ3YmE3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1l
c3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KQEAgLTg3LDYgKzg3LDkgQEAgbWVzc2FnZXMg
LT4gTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgewogI2VuZGlm
CiAKICAgICBDcmVhdGVSVENQcm92aWRlcigpIC0+ICgpIEFzeW5jCisjaWYgRU5BQkxFKFdFQl9S
VEMpCisgICAgQ29ubmVjdFRvUlRDRGF0YUNoYW5uZWxSZW1vdGVTb3VyY2Uoc3RydWN0IFdlYkNv
cmU6OlJUQ0RhdGFDaGFubmVsSWRlbnRpZmllciBzb3VyY2UsIHN0cnVjdCBXZWJDb3JlOjpSVENE
YXRhQ2hhbm5lbElkZW50aWZpZXIgaGFuZGxlcikgLT4gKE9wdGlvbmFsPGJvb2w+IHJlc3VsdCkg
QXN5bmMKKyNlbmRpZgogCiAgICAgVXBkYXRlUXVvdGFCYXNlZE9uU3BhY2VVc2FnZUZvclRlc3Rp
bmcoc3RydWN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiBvcmlnaW4pCiAgICAgQ3JlYXRlTmV3TWVz
c2FnZVBvcnRDaGFubmVsKHN0cnVjdCBXZWJDb3JlOjpNZXNzYWdlUG9ydElkZW50aWZpZXIgcG9y
dDEsIHN0cnVjdCBXZWJDb3JlOjpNZXNzYWdlUG9ydElkZW50aWZpZXIgcG9ydDIpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCmluZGV4IDkzZDVh
Mzc3ZjVmYjY0MWEwMzBmYTZmYzVmYzkzMmQ0MWM0NGM5YTcuLjNhMGU3ZDY0ZDU0ZGVmZDA2ZGRi
OTBhYjQ3MDlkZDZhZjEwZjVjMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Byb2Nlc3MuY3BwCkBAIC0yODIyLDQgKzI4MjIsMTQgQEAgdm9pZCBOZXR3b3Jr
UHJvY2Vzczo6Y2xlYXJBcHBCb3VuZE5hdmlnYXRpb25EYXRhKFBBTDo6U2Vzc2lvbklEIHNlc3Np
b25JRCwgQ29tcGwKIH0KICNlbmRpZgogCisjaWYgRU5BQkxFKFdFQl9SVEMpCitSVENEYXRhQ2hh
bm5lbFJlbW90ZU1hbmFnZXJQcm94eSYgTmV0d29ya1Byb2Nlc3M6OnJ0Y0RhdGFDaGFubmVsUHJv
eHkoKQoreworICAgIEFTU0VSVChpc01haW5SdW5Mb29wKCkpOworICAgIGlmICghbV9ydGNEYXRh
Q2hhbm5lbFByb3h5KQorICAgICAgICBtX3J0Y0RhdGFDaGFubmVsUHJveHkgPSBSVENEYXRhQ2hh
bm5lbFJlbW90ZU1hbmFnZXJQcm94eTo6Y3JlYXRlKCk7CisgICAgcmV0dXJuICptX3J0Y0RhdGFD
aGFubmVsUHJveHk7Cit9CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmggYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKaW5kZXggMDc0MTc4ODk1
MmQ1MTkzMTQxZjJjOGIzMmQ5MTllZTUzZmU3NmQ0Ny4uZjYzZjYyZDZlN2E1MzZiOTEzYjQ3ZmIx
MjQ2NTNhZDAwYzE4NjFkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Byb2Nlc3MuaApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkRvd25sb2FkTWFuYWdl
ci5oIgogI2luY2x1ZGUgIkxvY2FsU3RvcmFnZURhdGFiYXNlVHJhY2tlci5oIgogI2luY2x1ZGUg
Ik5ldHdvcmtDb250ZW50UnVsZUxpc3RNYW5hZ2VyLmgiCisjaW5jbHVkZSAiUlRDRGF0YUNoYW5u
ZWxSZW1vdGVNYW5hZ2VyUHJveHkuaCIKICNpbmNsdWRlICJTYW5kYm94RXh0ZW5zaW9uLmgiCiAj
aW5jbHVkZSAiV2ViSURCU2VydmVyLmgiCiAjaW5jbHVkZSAiV2ViUGFnZVByb3h5SWRlbnRpZmll
ci5oIgpAQCAtMzgwLDYgKzM4MSwxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCBjbGVhckFwcEJvdW5k
TmF2aWdhdGlvbkRhdGEoUEFMOjpTZXNzaW9uSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4m
Jik7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShXRUJfUlRDKQorICAgIFJUQ0RhdGFDaGFubmVsUmVt
b3RlTWFuYWdlclByb3h5JiBydGNEYXRhQ2hhbm5lbFByb3h5KCk7CisjZW5kaWYKKwogcHJpdmF0
ZToKICAgICB2b2lkIHBsYXRmb3JtSW5pdGlhbGl6ZU5ldHdvcmtQcm9jZXNzKGNvbnN0IE5ldHdv
cmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJik7CiAKQEAgLTU4NCw2ICs1ODksMTAgQEAgcHJp
dmF0ZToKICAgICBIYXNoTWFwPFBBTDo6U2Vzc2lvbklELCBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29y
ZTo6U1dTZXJ2ZXI+PiBtX3N3U2VydmVyczsKICNlbmRpZgogICAgIAorI2lmIEVOQUJMRShXRUJf
UlRDKQorICAgIFJlZlB0cjxSVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXJQcm94eT4gbV9ydGNE
YXRhQ2hhbm5lbFByb3h5OworI2VuZGlmCisKICAgICBMb2NrIG1fc2Vzc2lvblN0b3JhZ2VRdW90
YU1hbmFnZXJzTG9jazsKICAgICBIYXNoTWFwPFBBTDo6U2Vzc2lvbklELCBzdGQ6OnVuaXF1ZV9w
dHI8U2Vzc2lvblN0b3JhZ2VRdW90YU1hbmFnZXI+PiBtX3Nlc3Npb25TdG9yYWdlUXVvdGFNYW5h
Z2VyczsKICAgICBib29sIG1fcXVvdGFMb2dnaW5nRW5hYmxlZCB7IGZhbHNlIH07CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9SVENEYXRhQ2hhbm5lbFJl
bW90ZU1hbmFnZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0
Yy9SVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXJQcm94eS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2VlYmNh
MzVhMWVlYzI4MWUyMGI3NWEwYmJkMzI4OThjYWY0MWU1NAotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL1JUQ0RhdGFDaGFubmVsUmVtb3RlTWFu
YWdlclByb3h5LmNwcApAQCAtMCwwICsxLDk3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIx
IEFwcGxlIEluYy4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICog
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OCisgKiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJS
VENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXJQcm94eS5oIgorCisjaWYgRU5BQkxFKFdFQl9SVEMp
CisKKyNpbmNsdWRlICJOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIgorI2luY2x1ZGUg
IlJUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlck1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiUlRDRGF0
YUNoYW5uZWxSZW1vdGVNYW5hZ2VyUHJveHlNZXNzYWdlcy5oIgorCituYW1lc3BhY2UgV2ViS2l0
IHsKKworUlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyUHJveHk6OlJUQ0RhdGFDaGFubmVsUmVt
b3RlTWFuYWdlclByb3h5KCkKKyAgICA6IG1fcXVldWUoV29ya1F1ZXVlOjpjcmVhdGUoIlJUQ0Rh
dGFDaGFubmVsUmVtb3RlTWFuYWdlclByb3h5IikpCit7Cit9CisKK3ZvaWQgUlRDRGF0YUNoYW5u
ZWxSZW1vdGVNYW5hZ2VyUHJveHk6OnJlZ2lzdGVyQ29ubmVjdGlvblRvV2ViUHJvY2VzcyhOZXR3
b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgY29ubmVjdGlvblRvV2ViUHJvY2VzcykKK3sKKyAg
ICBtX3F1ZXVlLT5kaXNwYXRjaChbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMp
LCBpZGVudGlmaWVyID0gY29ubmVjdGlvblRvV2ViUHJvY2Vzcy53ZWJQcm9jZXNzSWRlbnRpZmll
cigpLCBjb25uZWN0aW9uID0gbWFrZVJlZihjb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNvbm5lY3Rp
b24oKSldKCkgbXV0YWJsZSB7CisgICAgICAgIEFTU0VSVCghbV93ZWJQcm9jZXNzQ29ubmVjdGlv
bnMuY29udGFpbnMoaWRlbnRpZmllcikpOworICAgICAgICBtX3dlYlByb2Nlc3NDb25uZWN0aW9u
cy5hZGQoaWRlbnRpZmllciwgV1RGTW92ZShjb25uZWN0aW9uKSk7CisgICAgfSk7CisgICAgY29u
bmVjdGlvblRvV2ViUHJvY2Vzcy5jb25uZWN0aW9uKCkuYWRkV29ya1F1ZXVlTWVzc2FnZVJlY2Vp
dmVyKE1lc3NhZ2VzOjpSVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXJQcm94eTo6bWVzc2FnZVJl
Y2VpdmVyTmFtZSgpLCBtX3F1ZXVlLCB0aGlzKTsKK30KKwordm9pZCBSVENEYXRhQ2hhbm5lbFJl
bW90ZU1hbmFnZXJQcm94eTo6dW5yZWdpc3RlckNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoTmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MpCit7CisgICAg
bV9xdWV1ZS0+ZGlzcGF0Y2goW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwg
aWRlbnRpZmllciA9IGNvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mud2ViUHJvY2Vzc0lkZW50aWZpZXIo
KV0geworICAgICAgICBBU1NFUlQobV93ZWJQcm9jZXNzQ29ubmVjdGlvbnMuY29udGFpbnMoaWRl
bnRpZmllcikpOworICAgICAgICBtX3dlYlByb2Nlc3NDb25uZWN0aW9ucy5yZW1vdmUoaWRlbnRp
Zmllcik7CisgICAgfSk7CisgICAgY29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jb25uZWN0aW9uKCku
cmVtb3ZlV29ya1F1ZXVlTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpSVENEYXRhQ2hhbm5lbFJl
bW90ZU1hbmFnZXJQcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKTsKK30KKwordm9pZCBSVENE
YXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXJQcm94eTo6c2VuZERhdGEoV2ViQ29yZTo6UlRDRGF0YUNo
YW5uZWxJZGVudGlmaWVyIGlkZW50aWZpZXIsIGJvb2wgaXNSYXcsIGNvbnN0IElQQzo6RGF0YVJl
ZmVyZW5jZSYgZGF0YSkKK3sKKyAgICBpZiAoYXV0byogY29ubmVjdGlvbiA9IG1fd2ViUHJvY2Vz
c0Nvbm5lY3Rpb25zLmdldChpZGVudGlmaWVyLnByb2Nlc3NJZGVudGlmaWVyKSkKKyAgICAgICAg
Y29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6UlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyOjpT
ZW5kRGF0YSB7IGlkZW50aWZpZXIsIGlzUmF3LCBkYXRhIH0sIDApOworfQorCit2b2lkIFJUQ0Rh
dGFDaGFubmVsUmVtb3RlTWFuYWdlclByb3h5OjpjbG9zZShXZWJDb3JlOjpSVENEYXRhQ2hhbm5l
bElkZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBpZiAoYXV0byogY29ubmVjdGlvbiA9IG1f
d2ViUHJvY2Vzc0Nvbm5lY3Rpb25zLmdldChpZGVudGlmaWVyLnByb2Nlc3NJZGVudGlmaWVyKSkK
KyAgICAgICAgY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6UlRDRGF0YUNoYW5uZWxSZW1vdGVN
YW5hZ2VyOjpDbG9zZSB7IGlkZW50aWZpZXIgfSwgMCk7Cit9CisKK3ZvaWQgUlRDRGF0YUNoYW5u
ZWxSZW1vdGVNYW5hZ2VyUHJveHk6OmNoYW5nZVJlYWR5U3RhdGUoV2ViQ29yZTo6UlRDRGF0YUNo
YW5uZWxJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsU3RhdGUg
c3RhdGUpCit7CisgICAgaWYgKGF1dG8qIGNvbm5lY3Rpb24gPSBtX3dlYlByb2Nlc3NDb25uZWN0
aW9ucy5nZXQoaWRlbnRpZmllci5wcm9jZXNzSWRlbnRpZmllcikpCisgICAgICAgIGNvbm5lY3Rp
b24tPnNlbmQoTWVzc2FnZXM6OlJUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlcjo6Q2hhbmdlUmVh
ZHlTdGF0ZSB7IGlkZW50aWZpZXIsIHN0YXRlIH0sIDApOworfQorCit2b2lkIFJUQ0RhdGFDaGFu
bmVsUmVtb3RlTWFuYWdlclByb3h5OjpyZWNlaXZlRGF0YShXZWJDb3JlOjpSVENEYXRhQ2hhbm5l
bElkZW50aWZpZXIgaWRlbnRpZmllciwgYm9vbCBpc1JhdywgY29uc3QgSVBDOjpEYXRhUmVmZXJl
bmNlJiBkYXRhKQoreworICAgIGlmIChhdXRvKiBjb25uZWN0aW9uID0gbV93ZWJQcm9jZXNzQ29u
bmVjdGlvbnMuZ2V0KGlkZW50aWZpZXIucHJvY2Vzc0lkZW50aWZpZXIpKQorICAgICAgICBjb25u
ZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpSVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXI6OlJlY2Vp
dmVEYXRhIHsgaWRlbnRpZmllciwgaXNSYXcsIGRhdGEgfSwgMCk7Cit9CisKK3ZvaWQgUlRDRGF0
YUNoYW5uZWxSZW1vdGVNYW5hZ2VyUHJveHk6OmRldGVjdEVycm9yKFdlYkNvcmU6OlJUQ0RhdGFD
aGFubmVsSWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAgIGlmIChhdXRvKiBjb25uZWN0aW9u
ID0gbV93ZWJQcm9jZXNzQ29ubmVjdGlvbnMuZ2V0KGlkZW50aWZpZXIucHJvY2Vzc0lkZW50aWZp
ZXIpKQorICAgICAgICBjb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpSVENEYXRhQ2hhbm5lbFJl
bW90ZU1hbmFnZXI6OkRldGVjdEVycm9yIHsgaWRlbnRpZmllciB9LCAwKTsKK30KKwordm9pZCBS
VENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXJQcm94eTo6YnVmZmVyZWRBbW91bnRJc0RlY3JlYXNp
bmcoV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWxJZGVudGlmaWVyIGlkZW50aWZpZXIsIHNpemVfdCBh
bW91bnQpCit7CisgICAgaWYgKGF1dG8qIGNvbm5lY3Rpb24gPSBtX3dlYlByb2Nlc3NDb25uZWN0
aW9ucy5nZXQoaWRlbnRpZmllci5wcm9jZXNzSWRlbnRpZmllcikpCisgICAgICAgIGNvbm5lY3Rp
b24tPnNlbmQoTWVzc2FnZXM6OlJUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlcjo6QnVmZmVyZWRB
bW91bnRJc0RlY3JlYXNpbmcgeyBpZGVudGlmaWVyLCBhbW91bnQgfSwgMCk7Cit9CisKK30KKwor
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9S
VENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy93ZWJydGMvUlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyUHJveHkuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5mYTJkNjE4MzE2YTAwOWM0NjAwMmM3ZDg4NGFlZmYzNWU3YmQwMTViCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvUlRDRGF0YUNoYW5u
ZWxSZW1vdGVNYW5hZ2VyUHJveHkuaApAQCAtMCwwICsxLDY3IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisgKiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNw
cmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFdFQl9SVEMpCisKKyNpbmNsdWRlICJDb25uZWN0aW9u
LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9SVENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXJDb25uZWN0
aW9uLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SVENEYXRhQ2hhbm5lbFJlbW90ZVNvdXJjZUNvbm5l
Y3Rpb24uaD4KKyNpbmNsdWRlIDx3dGYvV29ya1F1ZXVlLmg+CisKK25hbWVzcGFjZSBXZWJLaXQg
eworCitjbGFzcyBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzczsKKworY2xhc3MgUlRDRGF0
YUNoYW5uZWxSZW1vdGVNYW5hZ2VyUHJveHkgZmluYWwgOiBwdWJsaWMgSVBDOjpDb25uZWN0aW9u
OjpXb3JrUXVldWVNZXNzYWdlUmVjZWl2ZXIgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8UlRD
RGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyUHJveHk+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgUlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyUHJveHkpOyB9CisKKyAgICB2b2lkIHJl
Z2lzdGVyQ29ubmVjdGlvblRvV2ViUHJvY2VzcyhOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cyYpOworICAgIHZvaWQgdW5yZWdpc3RlckNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoTmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MmKTsKKworcHJpdmF0ZToKKyAgICBSVENEYXRhQ2hhbm5lbFJl
bW90ZU1hbmFnZXJQcm94eSgpOworCisgICAgLy8gSVBDOjpDb25uZWN0aW9uOjpXb3JrUXVldWVN
ZXNzYWdlUmVjZWl2ZXIKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlv
biYsIElQQzo6RGVjb2RlciYpIGZpbmFsOworCisgICAgLy8gVG8gc291cmNlCisgICAgdm9pZCBz
ZW5kRGF0YShXZWJDb3JlOjpSVENEYXRhQ2hhbm5lbElkZW50aWZpZXIsIGJvb2wgaXNSYXcsIGNv
bnN0IElQQzo6RGF0YVJlZmVyZW5jZSYpOworICAgIHZvaWQgY2xvc2UoV2ViQ29yZTo6UlRDRGF0
YUNoYW5uZWxJZGVudGlmaWVyKTsKKworICAgIC8vIFRvIGhhbmRsZXIKKyAgICB2b2lkIGNoYW5n
ZVJlYWR5U3RhdGUoV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWxJZGVudGlmaWVyLCBXZWJDb3JlOjpS
VENEYXRhQ2hhbm5lbFN0YXRlKTsKKyAgICB2b2lkIHJlY2VpdmVEYXRhKFdlYkNvcmU6OlJUQ0Rh
dGFDaGFubmVsSWRlbnRpZmllciwgYm9vbCBpc1JhdywgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNl
Jik7CisgICAgdm9pZCBkZXRlY3RFcnJvcihXZWJDb3JlOjpSVENEYXRhQ2hhbm5lbElkZW50aWZp
ZXIpOworICAgIHZvaWQgYnVmZmVyZWRBbW91bnRJc0RlY3JlYXNpbmcoV2ViQ29yZTo6UlRDRGF0
YUNoYW5uZWxJZGVudGlmaWVyLCBzaXplX3QgYW1vdW50KTsKKworICAgIFJlZjxXb3JrUXVldWU+
IG1fcXVldWU7CisgICAgSGFzaE1hcDxXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllciwgUmVmPElQ
Qzo6Q29ubmVjdGlvbj4+IG1fd2ViUHJvY2Vzc0Nvbm5lY3Rpb25zOworfTsKKworfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCX1JUQykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL1JUQ0RhdGFDaGFubmVsUmVtb3RlTWFu
YWdlclByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJy
dGMvUlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNTJjMjFjOTJmOTc1MTM3MDI4OTdkNTZiNTY1YTc1OGEwMzI3MWEwOQotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL1JUQ0RhdGFDaGFubmVs
UmVtb3RlTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsMzcgQEAKKyMgQ29weXJp
Z2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMg
Mi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnIEFORAorIyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorIyBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
CisjIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SCisjIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyMgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IKKyMgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyMgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKyMgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworI2lmIEVOQUJMRShXRUJfUlRDKQorCitt
ZXNzYWdlcyAtPiBSVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXJQcm94eSBOb3RSZWZDb3VudGVk
IHsKKyAgICAvLyBUbyBzb3VyY2UKKyAgICBTZW5kRGF0YShzdHJ1Y3QgV2ViQ29yZTo6UlRDRGF0
YUNoYW5uZWxJZGVudGlmaWVyIHNvdXJjZSwgYm9vbCBpc1JhdywgSVBDOjpEYXRhUmVmZXJlbmNl
IHRleHQpOworICAgIENsb3NlKHN0cnVjdCBXZWJDb3JlOjpSVENEYXRhQ2hhbm5lbElkZW50aWZp
ZXIgc291cmNlKTsKKworICAgIC8vIFRvIGhhbmRsZXIKK8KgIMKgIENoYW5nZVJlYWR5U3RhdGUo
c3RydWN0IFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsSWRlbnRpZmllciBoYW5kbGVyLCBlbnVtOnVp
bnQ4X3QgV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWxTdGF0ZSBzdGF0ZSk7CivCoCDCoCBSZWNlaXZl
RGF0YShzdHJ1Y3QgV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWxJZGVudGlmaWVyIGhhbmRsZXIsIGJv
b2wgaXNSYXcsIElQQzo6RGF0YVJlZmVyZW5jZSBkYXRhKTsKK8KgIMKgIERldGVjdEVycm9yKHN0
cnVjdCBXZWJDb3JlOjpSVENEYXRhQ2hhbm5lbElkZW50aWZpZXIgaGFuZGxlcik7CivCoCDCoCBC
dWZmZXJlZEFtb3VudElzRGVjcmVhc2luZyhzdHJ1Y3QgV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWxJ
ZGVudGlmaWVyIGhhbmRsZXIsIHNpemVfdCBhbW91bnQpOworfQorCisjZW5kaWYgLy8gRU5BQkxF
KFdFQl9SVEMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0IGIvU291cmNl
L1dlYktpdC9Tb3VyY2VzLnR4dAppbmRleCA1OTNiYWNlNDU3NTBjYTFhY2NhYTZkMTc3ZDQ1Njhm
Y2Y3NzEzNzlmLi43YWVjMTU4MDc1YWE5NTVlNDc1MjYwZjRhMjhjYTk3OWY1MzZiODUzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291
cmNlcy50eHQKQEAgLTEzMCw2ICsxMzAsNyBAQCBOZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3Jr
Q2FjaGVTdWJyZXNvdXJjZXNFbnRyeS5jcHAKIE5ldHdvcmtQcm9jZXNzL2NhY2hlL1ByZWZldGNo
Q2FjaGUuY3BwCiAKIE5ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrTUROU1JlZ2lzdGVyLmNw
cAorTmV0d29ya1Byb2Nlc3Mvd2VicnRjL1JUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlclByb3h5
LmNwcAogCiAvLyBUT0RPOiBXZSBzaG91bGQgdW5pZnkgdGhlc2UgZmlsZXMgb25jZSBHVEsncyBQ
bHVnaW5Qcm9jZXNzMiBpcyByZW1vdmVkLgogUGxhdGZvcm0vTG9nZ2luZy5jcHAgQG5vLXVuaWZ5
CkBAIC02MzAsNiArNjMxLDcgQEAgV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENQ
cm92aWRlci5jcHAKIFdlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDUmVzb2x2ZXIu
Y3BwCiBXZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1NvY2tldC5jcHAKIFdlYlBy
b2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDU29ja2V0RmFjdG9yeS5jcHAKK1dlYlByb2Nl
c3MvTmV0d29yay93ZWJydGMvUlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyLmNwcAogV2ViUHJv
Y2Vzcy9OZXR3b3JrL3dlYnJ0Yy9XZWJNRE5TUmVnaXN0ZXIuY3BwCiBXZWJQcm9jZXNzL05ldHdv
cmsvd2VicnRjL1dlYlJUQ01vbml0b3IuY3BwCiBXZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL1dl
YlJUQ1Jlc29sdmVyLmNwcApAQCAtNzE4LDUgKzcyMCw3IEBAIFdlYlByb2Nlc3MvV2ViU3RvcmFn
ZS9TdG9yYWdlQXJlYU1hcC5jcHAKIFdlYlByb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlTmFtZXNw
YWNlSW1wbC5jcHAKIFdlYlByb2Nlc3MvV2ViU3RvcmFnZS9XZWJTdG9yYWdlTmFtZXNwYWNlUHJv
dmlkZXIuY3BwCiAKK1JUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5j
cHAKK1JUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAog
UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xNZXNzYWdlUmVjZWl2ZXIuY3BwCiBSZW1vdGVHcmFwaGlj
c0NvbnRleHRHTFByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2Vi
S2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMjA0M2IwNmI1YWM2ZGUzNzQzYTVj
NzdhMjgyYTE0NTJlNWMzZTI0MC4uMjM3OTE0ZjQxNzliYWVhZDk3OWMwMGE5MGY5NDhjNDU5MDBk
ZDcxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCkBAIC0zNjUwLDYgKzM2NTAsMTAgQEAKIAkJNDEwQkExMzkyNTcxMzVGMjAwMkUyRjhBIC8q
IE5ldHdvcmtSVENTb2NrZXRDb2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE5ldHdvcmtS
VENTb2NrZXRDb2NvYS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDEwQkExM0Ey
NTcxMzVGMjAwMkUyRjhBIC8qIE5ldHdvcmtSVENTb2NrZXRDb2NvYS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBOZXR3b3JrUlRDU29ja2V0Q29jb2EuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NDExMTQzNjMyMEY2NzdCMTAwMjZGOTEyIC8qIEluamVjdFVzZXJTY3JpcHRJbW1lZGlhdGVseS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbmplY3RVc2VyU2NyaXB0SW1tZWRp
YXRlbHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDExMjIzQjcyNjAyMTUyQjAw
QjBBMEI2IC8qIFJUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlci5tZXNzYWdlcy5pbiAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBS
VENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXIubWVzc2FnZXMuaW47IHBhdGggPSBOZXR3b3JrL3dl
YnJ0Yy9SVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXIubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTQxMTIyM0JCMjYwMjRFODAwMEIwQTBCNiAvKiBSVENEYXRhQ2hh
bm5lbFJlbW90ZU1hbmFnZXJQcm94eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSVENEYXRhQ2hhbm5lbFJl
bW90ZU1hbmFnZXJQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTEyMjNC
QzI2MDI0RTgxMDBCMEEwQjYgLyogUlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyUHJveHkuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gUlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyUHJveHkuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTEyMjNCRDI2MDI0RTgxMDBCMEEwQjYg
LyogUlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUlRD
RGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTQxMTI4NkVGMjFDOEE5MEMwMDNBODU1MCAvKiBNZWRpYVV0aWxpdGll
cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVV0aWxpdGllcy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTEyODZGMDIxQzhBOTBEMDAzQTg1NTAgLyog
TWVkaWFVdGlsaXRpZXMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGgg
PSBNZWRpYVV0aWxpdGllcy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDExMkI1
NDcxRjlGRDNBQjAwRTY3ODc1IC8qIE5ldHdvcmtSVENSZXNvbHZlci5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBOZXR3b3JrUlRDUmVzb2x2ZXIuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzcxMSw2ICszNzE1LDggQEAKIAkJNDE2ODRDNTAyNDY0
NTBGRDAwMUNFOEVEIC8qIFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxNjg0QzUxMjQ2NDUwRkQwMDFDRThFRCAv
KiBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNDE2Q0Q3NDUyM0ZCMTc4QjAwNjYxRDk5IC8qIE1ETlNSZWdpc3RlcklkZW50aWZp
ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gTUROU1JlZ2lzdGVySWRlbnRp
Zmllci5oOyBwYXRoID0gTmV0d29yay93ZWJydGMvTUROU1JlZ2lzdGVySWRlbnRpZmllci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTZFREMwNTI2MDBGNkIwMDAwOTI2NzUgLyog
UlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFJUQ0Rh
dGFDaGFubmVsUmVtb3RlTWFuYWdlci5jcHA7IHBhdGggPSBOZXR3b3JrL3dlYnJ0Yy9SVENEYXRh
Q2hhbm5lbFJlbW90ZU1hbmFnZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0
MTZFREMwNjI2MDBGNkIwMDAwOTI2NzUgLyogUlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgbmFtZSA9IFJUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlci5oOyBwYXRoID0gTmV0
d29yay93ZWJydGMvUlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTQxNkY4MDg2MjQ1QjM5NzQwMEI2OEYwMiAvKiBMaWJXZWJSVENOZXR3
b3JrLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9IExpYldlYlJUQ05ldHdvcmsu
bWVzc2FnZXMuaW47IHBhdGggPSBOZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENOZXR3b3JrLm1lc3Nh
Z2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTZGODA4OTI0NUM3RkY1MDBC
NjhGMDIgLyogTGliV2ViUlRDTmV0d29yay5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IG5hbWUgPSBMaWJXZWJSVENOZXR3b3JrLmNwcDsgcGF0aCA9IE5ldHdvcmsvd2VicnRjL0xp
YldlYlJUQ05ldHdvcmsuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTcyMTk4
OTIzQjYxMjgyMDBBRTU2ODYgLyogTGliV2ViUlRDQ29kZWNzLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IExpYldlYlJUQ0NvZGVjcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtODI0Myw2ICs4MjQ5LDkgQEAKIAkJCQk0MTEyQjU0ODFGOUZEM0FDMDBFNjc5ODYg
LyogTmV0d29ya1JUQ1Jlc29sdmVyQ29jb2EuaCAqLywKIAkJCQk0MTBCQTEzQTI1NzEzNUYyMDAy
RTJGOEEgLyogTmV0d29ya1JUQ1NvY2tldENvY29hLmggKi8sCiAJCQkJNDEwQkExMzkyNTcxMzVG
MjAwMkUyRjhBIC8qIE5ldHdvcmtSVENTb2NrZXRDb2NvYS5tbSAqLywKKwkJCQk0MTEyMjNCQzI2
MDI0RTgxMDBCMEEwQjYgLyogUlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyUHJveHkuY3BwICov
LAorCQkJCTQxMTIyM0JCMjYwMjRFODAwMEIwQTBCNiAvKiBSVENEYXRhQ2hhbm5lbFJlbW90ZU1h
bmFnZXJQcm94eS5oICovLAorCQkJCTQxMTIyM0JEMjYwMjRFODEwMEIwQTBCNiAvKiBSVENEYXRh
Q2hhbm5lbFJlbW90ZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiAqLywKIAkJCSk7CiAJCQlwYXRo
ID0gd2VicnRjOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTgyNjMsNiArODI3Miw5
IEBACiAJCQkJNDEzMDc1QTUxREU4NUVFNzAwMzlFQzY5IC8qIExpYldlYlJUQ1NvY2tldEZhY3Rv
cnkuY3BwICovLAogCQkJCTQxMzA3NUE2MURFODVFRTcwMDM5RUM2OSAvKiBMaWJXZWJSVENTb2Nr
ZXRGYWN0b3J5LmggKi8sCiAJCQkJNDE2Q0Q3NDUyM0ZCMTc4QjAwNjYxRDk5IC8qIE1ETlNSZWdp
c3RlcklkZW50aWZpZXIuaCAqLywKKwkJCQk0MTZFREMwNTI2MDBGNkIwMDAwOTI2NzUgLyogUlRD
RGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyLmNwcCAqLywKKwkJCQk0MTZFREMwNjI2MDBGNkIwMDAw
OTI2NzUgLyogUlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyLmggKi8sCisJCQkJNDExMjIzQjcy
NjAyMTUyQjAwQjBBMEI2IC8qIFJUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlci5tZXNzYWdlcy5p
biAqLywKIAkJCQk0MUI3RUQ2RTIwNjgxRENGMDA4N0Q4NTMgLyogV2ViTUROU1JlZ2lzdGVyLmNw
cCAqLywKIAkJCQk0MUI3RUQ2QzIwNjgxRENFMDA4N0Q4NTMgLyogV2ViTUROU1JlZ2lzdGVyLmgg
Ki8sCiAJCQkJNDFCN0VENkQyMDY4MURDRjAwODdEODUzIC8qIFdlYk1ETlNSZWdpc3Rlci5tZXNz
YWdlcy5pbiAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3Jr
L05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
TmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCmluZGV4IGI1NTc4Y2E4ODVkZDE3
ZmRhZTNjZTIyZTlkYTBhNjE1MThjYjY3ZDIuLjFlMTllNTIxZmIyM2M3NGU0MzQ3NzMzZDAyMDM1
YWIwZWMwMDIyYjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3Jr
L05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmNwcApAQCAtMjksNiArMjksNyBA
QAogI2luY2x1ZGUgIkRhdGFSZWZlcmVuY2UuaCIKICNpbmNsdWRlICJMaWJXZWJSVENOZXR3b3Jr
LmgiCiAjaW5jbHVkZSAiTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNzYWdlcy5oIgor
I2luY2x1ZGUgIlJUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlci5oIgogI2luY2x1ZGUgIlN0b3Jh
Z2VBcmVhTWFwLmgiCiAjaW5jbHVkZSAiU3RvcmFnZUFyZWFNYXBNZXNzYWdlcy5oIgogI2luY2x1
ZGUgIldlYkNhY2hlU3RvcmFnZVByb3ZpZGVyLmgiCkBAIC0zMjAsNCArMzIxLDExIEBAIHZvaWQg
TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpicm9hZGNhc3RDb25zb2xlTWVzc2FnZShNZXNzYWdl
U291cmNlIHNvdXJjZSwgTWVzCiAgICAgfQogfQogCisjaWYgRU5BQkxFKFdFQl9SVEMpCit2b2lk
IE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6Y29ubmVjdFRvUlRDRGF0YUNoYW5uZWxSZW1vdGVT
b3VyY2UoV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWxJZGVudGlmaWVyIGxvY2FsSWRlbnRpZmllciwg
V2ViQ29yZTo6UlRDRGF0YUNoYW5uZWxJZGVudGlmaWVyIHJlbW90ZUlkZW50aWZpZXIsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8Ym9vbD4pPiYmIGNhbGxiYWNrKQoreworICAgIGNh
bGxiYWNrKFJUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlcjo6c2hhcmVkTWFuYWdlcigpLmNvbm5l
Y3RUb1JlbW90ZVNvdXJjZShsb2NhbElkZW50aWZpZXIsIHJlbW90ZUlkZW50aWZpZXIpKTsKK30K
KyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5oIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmgKaW5k
ZXggMGFiNzkxNWI3ZmFjZTM5NWVkZmJhMzdkMzk5MmVlZDk3ZjNiOGIzMC4uYzkyMDEwYWE1YjRi
MjU0MGE3OTkxMWJiNTlmZThjMzU0Y2VjOTc5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmgKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmgKQEAg
LTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJTaGFyZWFibGVSZXNvdXJjZS5oIgogI2luY2x1ZGUg
PEphdmFTY3JpcHRDb3JlL0NvbnNvbGVUeXBlcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTWVzc2Fn
ZVBvcnRDaGFubmVsUHJvdmlkZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1JUQ0RhdGFDaGFubmVs
SWRlbnRpZmllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2VydmljZVdvcmtlclR5cGVzLmg+CiAj
aW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcu
aD4KQEAgLTEwOSw2ICsxMTAsOSBAQCBwcml2YXRlOgogICAgIC8vIE1lc3NhZ2UgaGFuZGxlcnMu
CiAgICAgdm9pZCBkaWRDYWNoZVJlc291cmNlKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dCYsIGNvbnN0IFNoYXJlYWJsZVJlc291cmNlOjpIYW5kbGUmKTsKICNlbmRpZgorI2lmIEVOQUJM
RShTSEFSRUFCTEVfUkVTT1VSQ0UpCisgICAgdm9pZCBjb25uZWN0VG9SVENEYXRhQ2hhbm5lbFJl
bW90ZVNvdXJjZShXZWJDb3JlOjpSVENEYXRhQ2hhbm5lbElkZW50aWZpZXIgc291cmNlLCBXZWJD
b3JlOjpSVENEYXRhQ2hhbm5lbElkZW50aWZpZXIgaGFuZGxlciwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChPcHRpb25hbDxib29sPik+JiYpOworI2VuZGlmCiAKICAgICB2b2lkIGJyb2FkY2FzdENv
bnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBt
ZXNzYWdlKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsv
TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluCmluZGV4
IDY0Zjg4ZWM3NDYzY2I2OGE5OGNjZmM2Mjg5OTcxYzg1M2ZkMzlmMjcuLmVhMmE4NjczY2MyMDlh
NTg0YjY0YzBmODg1ZWZhODZlYmQ4NWUyNTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rp
b24ubWVzc2FnZXMuaW4KQEAgLTM3LDYgKzM3LDEwIEBAIG1lc3NhZ2VzIC0+IE5ldHdvcmtQcm9j
ZXNzQ29ubmVjdGlvbiBMZWdhY3lSZWNlaXZlciB7CiAgICAgQWxsQ29va2llc0RlbGV0ZWQoKTsK
ICNlbmRpZgogCisjaWYgRU5BQkxFKFdFQl9SVEMpCisgICAgQ29ubmVjdFRvUlRDRGF0YUNoYW5u
ZWxSZW1vdGVTb3VyY2Uoc3RydWN0IFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsSWRlbnRpZmllciBz
b3VyY2UsIHN0cnVjdCBXZWJDb3JlOjpSVENEYXRhQ2hhbm5lbElkZW50aWZpZXIgaGFuZGxlcikg
LT4gKE9wdGlvbmFsPGJvb2w+IHJlc3VsdCkgQXN5bmMKKyNlbmRpZgorCiAgICAgQ2hlY2tQcm9j
ZXNzTG9jYWxQb3J0Rm9yQWN0aXZpdHkoc3RydWN0IFdlYkNvcmU6Ok1lc3NhZ2VQb3J0SWRlbnRp
ZmllciBwb3J0KSAtPiAoV2ViQ29yZTo6TWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXI6Okhhc0Fj
dGl2aXR5IGhhc0FjdGl2aXR5KSBBc3luYwogICAgIE1lc3NhZ2VzQXZhaWxhYmxlRm9yUG9ydChz
dHJ1Y3QgV2ViQ29yZTo6TWVzc2FnZVBvcnRJZGVudGlmaWVyIHBvcnQpCiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENQcm92aWRl
ci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRD
UHJvdmlkZXIuY3BwCmluZGV4IGU5MjA5OTJmMDhlZDZiMzJlNjdkZmU3YmY3NmVjMzE0N2Y3Y2Y0
N2MuLjc1NDBhZmExNGM3MzFmZmZkZTAzYTlmYjc3NzZkNTEzYjY4OTZhMzkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENQcm92aWRl
ci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldl
YlJUQ1Byb3ZpZGVyLmNwcApAQCAtMzMsNiArMzMsNyBAQAogI2VuZGlmCiAKICNpbmNsdWRlICJM
aWJXZWJSVENOZXR3b3JrLmgiCisjaW5jbHVkZSAiUlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2Vy
LmgiCiAjaW5jbHVkZSAiV2ViUGFnZS5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKICNpbmNs
dWRlIDxXZWJDb3JlL1BhZ2UuaD4KQEAgLTE1Miw2ICsxNTMsMTEgQEAgc3RkOjp1bmlxdWVfcHRy
PExpYldlYlJUQ1Byb3ZpZGVyOjpTdXNwZW5kYWJsZVNvY2tldEZhY3Rvcnk+IExpYldlYlJUQ1By
b3ZpZGVyOjoKICAgICByZXR1cm4gbWFrZVVuaXF1ZTxSVENTb2NrZXRGYWN0b3J5PihXVEZNb3Zl
KHVzZXJBZ2VudCkpOwogfQogCitSZWZQdHI8UlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVyQ29u
bmVjdGlvbj4gTGliV2ViUlRDUHJvdmlkZXI6OmNyZWF0ZVJUQ0RhdGFDaGFubmVsUmVtb3RlSGFu
ZGxlckNvbm5lY3Rpb24oKQoreworICAgIHJldHVybiAmUlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5h
Z2VyOjpzaGFyZWRNYW5hZ2VyKCkucmVtb3RlSGFuZGxlckNvbm5lY3Rpb24oKTsKK30KKwogfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBVU0UoTElCV0VCUlRDKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1Byb3Zp
ZGVyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRD
UHJvdmlkZXIuaAppbmRleCBmYzdjNTZlNTFjYjgzZjMyNGVhM2VhZGFmNGFiOGI3NjI3ZGJlNThm
Li43Y2RkZDFjNDFlOGFjZjA4YWRhNjdlNDMwZTYzYWEyNDRiZmY5MjVlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRD
UHJvdmlkZXIuaApAQCAtNjAsNiArNjAsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgcmVnaXN0ZXJN
RE5TTmFtZShXZWJDb3JlOjpEb2N1bWVudElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgaXBBZGRy
ZXNzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE1ETlNOYW1lT3JFcnJvciYmKT4mJikgZmluYWw7
CiAgICAgdm9pZCBkaXNhYmxlTm9uTG9jYWxob3N0Q29ubmVjdGlvbnMoKSBmaW5hbDsKICAgICB2
b2lkIHN0YXJ0ZWROZXR3b3JrVGhyZWFkKCkgZmluYWw7CisgICAgUmVmUHRyPFdlYkNvcmU6OlJU
Q0RhdGFDaGFubmVsUmVtb3RlSGFuZGxlckNvbm5lY3Rpb24+IGNyZWF0ZVJUQ0RhdGFDaGFubmVs
UmVtb3RlSGFuZGxlckNvbm5lY3Rpb24oKSBmaW5hbDsKIAogI2lmIEVOQUJMRShHUFVfUFJPQ0VT
UykgJiYgUExBVEZPUk0oQ09DT0EpICYmICFQTEFURk9STShNQUNDQVRBTFlTVCkKICAgICBXZWJQ
YWdlJiBtX3dlYlBhZ2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0
d29yay93ZWJydGMvUlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9SVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXIu
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjM0YWM1NTM0ZDE5NjY5OTlkNGE5OTQ1OGM5MDk5MTlhNmUyN2JhMDMK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJy
dGMvUlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyLmNwcApAQCAtMCwwICsxLDI1MyBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAg
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgorICogQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiUlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyLmgiCisKKyNp
ZiBFTkFCTEUoV0VCX1JUQykKKworI2luY2x1ZGUgIk5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJSVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXJNZXNz
YWdlcy5oIgorI2luY2x1ZGUgIlJUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlclByb3h5TWVzc2Fn
ZXMuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9SVENEYXRh
Q2hhbm5lbC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oPgor
CituYW1lc3BhY2UgV2ViS2l0IHsKKworUlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyJiBSVENE
YXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXI6OnNoYXJlZE1hbmFnZXIoKQoreworICAgIHN0YXRpYyBS
VENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXIqIHNoYXJlZE1hbmFnZXIgPSBuZXcgUlRDRGF0YUNo
YW5uZWxSZW1vdGVNYW5hZ2VyOworICAgIHJldHVybiAqc2hhcmVkTWFuYWdlcjsKK30KKworUlRD
RGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyOjpSVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXIoKQor
ICAgIDogbV9xdWV1ZShXb3JrUXVldWU6OmNyZWF0ZSgiUlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5h
Z2VyIikpCit7CisgICAgc2V0Q29ubmVjdGlvbigmV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5z
dXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpKTsKK30KKwordm9pZCBS
VENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXI6OnNldENvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9u
KiBjb25uZWN0aW9uKQoreworICAgIGlmIChtX2Nvbm5lY3Rpb24gPT0gY29ubmVjdGlvbikKKyAg
ICAgICAgcmV0dXJuOworCisgICAgaWYgKG1fY29ubmVjdGlvbikKKyAgICAgICAgbV9jb25uZWN0
aW9uLT5yZW1vdmVXb3JrUXVldWVNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlJUQ0RhdGFDaGFu
bmVsUmVtb3RlTWFuYWdlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKTsKKworICAgIG1fY29ubmVj
dGlvbiA9IGNvbm5lY3Rpb247CisKKyAgICBpZiAobV9jb25uZWN0aW9uKQorICAgICAgICBtX2Nv
bm5lY3Rpb24tPmFkZFdvcmtRdWV1ZU1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6UlRDRGF0YUNo
YW5uZWxSZW1vdGVNYW5hZ2VyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1fcXVldWUsIHRoaXMp
OworfQorCitib29sIFJUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlcjo6Y29ubmVjdFRvUmVtb3Rl
U291cmNlKFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsSWRlbnRpZmllciBsb2NhbElkZW50aWZpZXIs
IFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsSWRlbnRpZmllciByZW1vdGVJZGVudGlmaWVyKQorewor
ICAgIEFTU0VSVChQcm9jZXNzOjppZGVudGlmaWVyKCkgPT0gbG9jYWxJZGVudGlmaWVyLnByb2Nl
c3NJZGVudGlmaWVyKTsKKyAgICBpZiAoUHJvY2Vzczo6aWRlbnRpZmllcigpICE9IGxvY2FsSWRl
bnRpZmllci5wcm9jZXNzSWRlbnRpZmllcikKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAg
QVNTRVJUKFByb2Nlc3M6OmlkZW50aWZpZXIoKSA9PSBsb2NhbElkZW50aWZpZXIucHJvY2Vzc0lk
ZW50aWZpZXIpOworICAgIGlmIChQcm9jZXNzOjppZGVudGlmaWVyKCkgIT0gbG9jYWxJZGVudGlm
aWVyLnByb2Nlc3NJZGVudGlmaWVyKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBhdXRv
IGhhbmRsZXIgPSBXZWJDb3JlOjpSVENEYXRhQ2hhbm5lbDo6aGFuZGxlckZyb21JZGVudGlmaWVy
KGxvY2FsSWRlbnRpZmllci5jaGFubmVsSWRlbnRpZmllcik7CisgICAgaWYgKCFoYW5kbGVyKQor
ICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBhdXRvIGl0ZXJhdG9yID0gbV9zb3VyY2VzLmFk
ZChyZW1vdGVJZGVudGlmaWVyLmNoYW5uZWxJZGVudGlmaWVyLCBSVENEYXRhQ2hhbm5lbFJlbW90
ZVNvdXJjZTo6Y3JlYXRlKHJlbW90ZUlkZW50aWZpZXIsIG1ha2VVbmlxdWVSZWZGcm9tTm9uTnVs
bFVuaXF1ZVB0cihXVEZNb3ZlKGhhbmRsZXIpKSwgcmVtb3RlU291cmNlQ29ubmVjdGlvbigpKSk7
CisgICAgcmV0dXJuIGl0ZXJhdG9yLmlzTmV3RW50cnk7Cit9CisKK1dlYkNvcmU6OlJUQ0RhdGFD
aGFubmVsUmVtb3RlSGFuZGxlckNvbm5lY3Rpb24mIFJUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdl
cjo6cmVtb3RlSGFuZGxlckNvbm5lY3Rpb24oKQoreworICAgIGlmICghbV9yZW1vdGVIYW5kbGVy
Q29ubmVjdGlvbikKKyAgICAgICAgbV9yZW1vdGVIYW5kbGVyQ29ubmVjdGlvbiA9IFJlbW90ZUhh
bmRsZXJDb25uZWN0aW9uOjpjcmVhdGUobV9xdWV1ZS5jb3B5UmVmKCkpOworICAgIHJldHVybiAq
bV9yZW1vdGVIYW5kbGVyQ29ubmVjdGlvbjsKK30KKworV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWxS
ZW1vdGVTb3VyY2VDb25uZWN0aW9uJiBSVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXI6OnJlbW90
ZVNvdXJjZUNvbm5lY3Rpb24oKQoreworICAgIGlmICghbV9yZW1vdGVTb3VyY2VDb25uZWN0aW9u
KQorICAgICAgICBtX3JlbW90ZVNvdXJjZUNvbm5lY3Rpb24gPSBSZW1vdGVTb3VyY2VDb25uZWN0
aW9uOjpjcmVhdGUoKTsKKyAgICByZXR1cm4gKm1fcmVtb3RlU291cmNlQ29ubmVjdGlvbjsKK30K
Kwordm9pZCBSVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXI6OnBvc3RUYXNrVG9IYW5kbGVyKFdl
YkNvcmU6OlJUQ0RhdGFDaGFubmVsSWRlbnRpZmllciBoYW5kbGVySWRlbnRpZmllciwgRnVuY3Rp
b248dm9pZChXZWJDb3JlOjpSVENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXImKT4mJiBmdW5jdGlv
bikKK3sKKyAgICBBU1NFUlQoUHJvY2Vzczo6aWRlbnRpZmllcigpID09IGhhbmRsZXJJZGVudGlm
aWVyLnByb2Nlc3NJZGVudGlmaWVyKTsKKyAgICBpZiAoUHJvY2Vzczo6aWRlbnRpZmllcigpICE9
IGhhbmRsZXJJZGVudGlmaWVyLnByb2Nlc3NJZGVudGlmaWVyKQorICAgICAgICByZXR1cm47CisK
KyAgICBhdXRvIGl0ZXJhdG9yID0gbV9oYW5kbGVycy5maW5kKGhhbmRsZXJJZGVudGlmaWVyLmNo
YW5uZWxJZGVudGlmaWVyKTsKKyAgICBpZiAoaXRlcmF0b3IgPT0gbV9oYW5kbGVycy5lbmQoKSkK
KyAgICAgICAgcmV0dXJuOworICAgIGF1dG8mIHJlbW90ZUhhbmRsZXIgPSBpdGVyYXRvci0+dmFs
dWU7CisKKyAgICBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0Ojpwb3N0VGFza1RvKHJl
bW90ZUhhbmRsZXIuY29udGV4dElkZW50aWZpZXIsIFtoYW5kbGVyID0gcmVtb3RlSGFuZGxlci5o
YW5kbGVyLCBmdW5jdGlvbiA9IFdURk1vdmUoZnVuY3Rpb24pXShhdXRvJikgbXV0YWJsZSB7Cisg
ICAgICAgIGlmIChoYW5kbGVyKQorICAgICAgICAgICAgZnVuY3Rpb24oKmhhbmRsZXIpOworICAg
IH0pOworfQorCitSVENEYXRhQ2hhbm5lbFJlbW90ZVNvdXJjZSogUlRDRGF0YUNoYW5uZWxSZW1v
dGVNYW5hZ2VyOjpzb3VyY2VGcm9tSWRlbnRpZmllcihXZWJDb3JlOjpSVENEYXRhQ2hhbm5lbElk
ZW50aWZpZXIgc291cmNlSWRlbnRpZmllcikKK3sKKyAgICBBU1NFUlQoUHJvY2Vzczo6aWRlbnRp
ZmllcigpID09IHNvdXJjZUlkZW50aWZpZXIucHJvY2Vzc0lkZW50aWZpZXIpOworICAgIGlmIChQ
cm9jZXNzOjppZGVudGlmaWVyKCkgIT0gc291cmNlSWRlbnRpZmllci5wcm9jZXNzSWRlbnRpZmll
cikKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICByZXR1cm4gbV9zb3VyY2VzLmdldChz
b3VyY2VJZGVudGlmaWVyLmNoYW5uZWxJZGVudGlmaWVyKTsKK30KKwordm9pZCBSVENEYXRhQ2hh
bm5lbFJlbW90ZU1hbmFnZXI6OnNlbmREYXRhKFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsSWRlbnRp
ZmllciBzb3VyY2VJZGVudGlmaWVyLCBib29sIGlzUmF3LCBjb25zdCBJUEM6OkRhdGFSZWZlcmVu
Y2UmIGRhdGEpCit7CisgICAgaWYgKGF1dG8qIHNvdXJjZSA9IHNvdXJjZUZyb21JZGVudGlmaWVy
KHNvdXJjZUlkZW50aWZpZXIpKSB7CisgICAgICAgIGlmIChpc1JhdykKKyAgICAgICAgICAgIHNv
dXJjZS0+c2VuZFJhd0RhdGEocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oZGF0YS5kYXRh
KCkpLCBkYXRhLnNpemUoKSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHNvdXJjZS0+c2Vu
ZFN0cmluZ0RhdGEoQ1N0cmluZyhyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPihkYXRhLmRh
dGEoKSksIGRhdGEuc2l6ZSgpKSk7CisgICAgfQorfQorCit2b2lkIFJUQ0RhdGFDaGFubmVsUmVt
b3RlTWFuYWdlcjo6Y2xvc2UoV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWxJZGVudGlmaWVyIHNvdXJj
ZUlkZW50aWZpZXIpCit7CisgICAgaWYgKGF1dG8qIHNvdXJjZSA9IHNvdXJjZUZyb21JZGVudGlm
aWVyKHNvdXJjZUlkZW50aWZpZXIpKQorICAgICAgICBzb3VyY2UtPmNsb3NlKCk7Cit9CisKK3Zv
aWQgUlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyOjpjaGFuZ2VSZWFkeVN0YXRlKFdlYkNvcmU6
OlJUQ0RhdGFDaGFubmVsSWRlbnRpZmllciBoYW5kbGVySWRlbnRpZmllciwgV2ViQ29yZTo6UlRD
RGF0YUNoYW5uZWxTdGF0ZSBzdGF0ZSkKK3sKKyAgICBwb3N0VGFza1RvSGFuZGxlcihoYW5kbGVy
SWRlbnRpZmllciwgW3N0YXRlXShhdXRvJiBoYW5kbGVyKSB7CisgICAgICAgIGhhbmRsZXIuZGlk
Q2hhbmdlUmVhZHlTdGF0ZShzdGF0ZSk7CisgICAgfSk7Cit9CisKK3ZvaWQgUlRDRGF0YUNoYW5u
ZWxSZW1vdGVNYW5hZ2VyOjpyZWNlaXZlRGF0YShXZWJDb3JlOjpSVENEYXRhQ2hhbm5lbElkZW50
aWZpZXIgaGFuZGxlcklkZW50aWZpZXIsIGJvb2wgaXNSYXcsIGNvbnN0IElQQzo6RGF0YVJlZmVy
ZW5jZSYgZGF0YSkKK3sKKyAgICBWZWN0b3I8dW5zaWduZWQgY2hhcj4gYnVmZmVyOworICAgIFN0
cmluZyB0ZXh0OworICAgIGlmIChpc1JhdykKKyAgICAgICAgYnVmZmVyID0gZGF0YS52ZWN0b3Io
KTsKKyAgICBlbHNlCisgICAgICAgIHRleHQgPSBTdHJpbmc6OmZyb21VVEY4KGRhdGEuZGF0YSgp
LCBkYXRhLnNpemUoKSk7CisKKyAgICBwb3N0VGFza1RvSGFuZGxlcihoYW5kbGVySWRlbnRpZmll
ciwgW2lzUmF3LCB0ZXh0ID0gV1RGTW92ZSh0ZXh0KS5pc29sYXRlZENvcHkoKSwgYnVmZmVyID0g
V1RGTW92ZShidWZmZXIpXShhdXRvJiBoYW5kbGVyKSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKGlz
UmF3KQorICAgICAgICAgICAgaGFuZGxlci5kaWRSZWNlaXZlUmF3RGF0YShyZWludGVycHJldF9j
YXN0PGNvbnN0IGNoYXIqPihidWZmZXIuZGF0YSgpKSwgYnVmZmVyLnNpemUoKSk7CisgICAgICAg
IGVsc2UKKyAgICAgICAgICAgIGhhbmRsZXIuZGlkUmVjZWl2ZVN0cmluZ0RhdGEoV1RGTW92ZSh0
ZXh0KSk7CisgICAgfSk7Cit9CisKK3ZvaWQgUlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyOjpk
ZXRlY3RFcnJvcihXZWJDb3JlOjpSVENEYXRhQ2hhbm5lbElkZW50aWZpZXIgaGFuZGxlcklkZW50
aWZpZXIpCit7CisgICAgcG9zdFRhc2tUb0hhbmRsZXIoaGFuZGxlcklkZW50aWZpZXIsIFtdKGF1
dG8mIGhhbmRsZXIpIHsKKyAgICAgICAgaGFuZGxlci5kaWREZXRlY3RFcnJvcigpOworICAgIH0p
OworfQorCit2b2lkIFJUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlcjo6YnVmZmVyZWRBbW91bnRJ
c0RlY3JlYXNpbmcoV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWxJZGVudGlmaWVyIGhhbmRsZXJJZGVu
dGlmaWVyLCBzaXplX3QgYW1vdW50KQoreworICAgIHBvc3RUYXNrVG9IYW5kbGVyKGhhbmRsZXJJ
ZGVudGlmaWVyLCBbYW1vdW50XShhdXRvJiBoYW5kbGVyKSB7CisgICAgICAgIGhhbmRsZXIuYnVm
ZmVyZWRBbW91bnRJc0RlY3JlYXNpbmcoYW1vdW50KTsKKyAgICB9KTsKK30KKworUmVmPFJUQ0Rh
dGFDaGFubmVsUmVtb3RlTWFuYWdlcjo6UmVtb3RlSGFuZGxlckNvbm5lY3Rpb24+IFJUQ0RhdGFD
aGFubmVsUmVtb3RlTWFuYWdlcjo6UmVtb3RlSGFuZGxlckNvbm5lY3Rpb246OmNyZWF0ZShSZWY8
V29ya1F1ZXVlPiYmIHF1ZXVlKQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFJlbW90ZUhh
bmRsZXJDb25uZWN0aW9uKFdURk1vdmUocXVldWUpKSk7Cit9CisKK1JUQ0RhdGFDaGFubmVsUmVt
b3RlTWFuYWdlcjo6UmVtb3RlSGFuZGxlckNvbm5lY3Rpb246OlJlbW90ZUhhbmRsZXJDb25uZWN0
aW9uKFJlZjxXb3JrUXVldWU+JiYgcXVldWUpCisgICAgOiBtX2Nvbm5lY3Rpb24oV2ViUHJvY2Vz
czo6c2luZ2xldG9uKCkuZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlv
bigpKQorICAgICwgbV9xdWV1ZShXVEZNb3ZlKHF1ZXVlKSkKK3sKK30KKwordm9pZCBSVENEYXRh
Q2hhbm5lbFJlbW90ZU1hbmFnZXI6OlJlbW90ZUhhbmRsZXJDb25uZWN0aW9uOjpjb25uZWN0VG9T
b3VyY2UoV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVyJiBoYW5kbGVyLCBXZWJD
b3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciBjb250ZXh0SWRlbnRpZmllciwg
V2ViQ29yZTo6UlRDRGF0YUNoYW5uZWxJZGVudGlmaWVyIGxvY2FsSWRlbnRpZmllciwgV2ViQ29y
ZTo6UlRDRGF0YUNoYW5uZWxJZGVudGlmaWVyIHJlbW90ZUlkZW50aWZpZXIpCit7CisgICAgbV9x
dWV1ZS0+ZGlzcGF0Y2goW2hhbmRsZXIgPSBtYWtlV2Vha1B0cihoYW5kbGVyKSwgY29udGV4dElk
ZW50aWZpZXIsIGxvY2FsSWRlbnRpZmllcl0oKSBtdXRhYmxlIHsKKyAgICAgICAgUlRDRGF0YUNo
YW5uZWxSZW1vdGVNYW5hZ2VyOjpzaGFyZWRNYW5hZ2VyKCkubV9oYW5kbGVycy5hZGQobG9jYWxJ
ZGVudGlmaWVyLmNoYW5uZWxJZGVudGlmaWVyLCBSZW1vdGVIYW5kbGVyIHsgV1RGTW92ZShoYW5k
bGVyKSwgY29udGV4dElkZW50aWZpZXIgfSk7CisgICAgfSk7CisgICAgbV9jb25uZWN0aW9uLT5z
ZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNz
OjpDb25uZWN0VG9SVENEYXRhQ2hhbm5lbFJlbW90ZVNvdXJjZSB7IGxvY2FsSWRlbnRpZmllciwg
cmVtb3RlSWRlbnRpZmllciB9LCBbbG9jYWxJZGVudGlmaWVyXShhdXRvJiYgcmVzdWx0KSB7Cisg
ICAgICAgIFJUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlcjo6c2hhcmVkTWFuYWdlcigpLnBvc3RU
YXNrVG9IYW5kbGVyKGxvY2FsSWRlbnRpZmllciwgW3Jlc3VsdF0oYXV0byYgaGFuZGxlcikgewor
ICAgICAgICAgICAgaWYgKCFyZXN1bHQgfHwgISpyZXN1bHQpIHsKKyAgICAgICAgICAgICAgICBo
YW5kbGVyLmRpZERldGVjdEVycm9yKCk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICAgICAgfQorICAgICAgICAgICAgaGFuZGxlci5yZWFkeVRvU2VuZCgpOworICAgICAgICB9KTsK
KyAgICB9LCAwKTsKK30KKwordm9pZCBSVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXI6OlJlbW90
ZUhhbmRsZXJDb25uZWN0aW9uOjpzZW5kRGF0YShXZWJDb3JlOjpSVENEYXRhQ2hhbm5lbElkZW50
aWZpZXIgaWRlbnRpZmllciwgYm9vbCBpc1JhdywgY29uc3QgdW5zaWduZWQgY2hhciogZGF0YSwg
c2l6ZV90IHNpemUpCit7CisgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpSVENEYXRh
Q2hhbm5lbFJlbW90ZU1hbmFnZXJQcm94eTo6U2VuZERhdGEgeyBpZGVudGlmaWVyLCBpc1Jhdywg
SVBDOjpEYXRhUmVmZXJlbmNlIHsgZGF0YSwgc2l6ZSB9IH0sIDApOworfQorCit2b2lkIFJUQ0Rh
dGFDaGFubmVsUmVtb3RlTWFuYWdlcjo6UmVtb3RlSGFuZGxlckNvbm5lY3Rpb246OmNsb3NlKFdl
YkNvcmU6OlJUQ0RhdGFDaGFubmVsSWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAgIC8vIEZJ
WE1FOiBXZSBuZWVkIHRvIHdhaXQgdG8gc2VuZCB0aGlzIG1lc3NhZ2UgdW50aWwgUlRDRGF0YUNo
YW5uZWxSZW1vdGVNYW5hZ2VyUHJveHk6OkNvbm5lY3RUb1NvdXJjZSBpcyBhY3R1YWxseSBzZW50
LgorICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6UlRDRGF0YUNoYW5uZWxSZW1vdGVN
YW5hZ2VyUHJveHk6OkNsb3NlIHsgaWRlbnRpZmllciB9LCAwKTsKK30KKworUmVmPFJUQ0RhdGFD
aGFubmVsUmVtb3RlTWFuYWdlcjo6UmVtb3RlU291cmNlQ29ubmVjdGlvbj4gUlRDRGF0YUNoYW5u
ZWxSZW1vdGVNYW5hZ2VyOjpSZW1vdGVTb3VyY2VDb25uZWN0aW9uOjpjcmVhdGUoKQoreworICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IFJlbW90ZVNvdXJjZUNvbm5lY3Rpb24pOworfQorCitSVENE
YXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXI6OlJlbW90ZVNvdXJjZUNvbm5lY3Rpb246OlJlbW90ZVNv
dXJjZUNvbm5lY3Rpb24oKQorICAgIDogbV9jb25uZWN0aW9uKFdlYlByb2Nlc3M6OnNpbmdsZXRv
bigpLmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKSkKK3sKK30K
Kwordm9pZCBSVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXI6OlJlbW90ZVNvdXJjZUNvbm5lY3Rp
b246OmRpZENoYW5nZVJlYWR5U3RhdGUoV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWxJZGVudGlmaWVy
IGlkZW50aWZpZXIsIFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsU3RhdGUgc3RhdGUpCit7CisgICAg
bV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpSVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXJQ
cm94eTo6Q2hhbmdlUmVhZHlTdGF0ZSB7IGlkZW50aWZpZXIsIHN0YXRlIH0sIDApOworfQorCit2
b2lkIFJUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlcjo6UmVtb3RlU291cmNlQ29ubmVjdGlvbjo6
ZGlkUmVjZWl2ZVN0cmluZ0RhdGEoV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWxJZGVudGlmaWVyIGlk
ZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgc3RyaW5nKQoreworICAgIGF1dG8gdGV4dCA9IHN0cmlu
Zy51dGY4KCk7CisgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpSVENEYXRhQ2hhbm5l
bFJlbW90ZU1hbmFnZXJQcm94eTo6UmVjZWl2ZURhdGEgeyBpZGVudGlmaWVyLCBmYWxzZSwgSVBD
OjpEYXRhUmVmZXJlbmNlIHsgcmVpbnRlcnByZXRfY2FzdDxjb25zdCB1bnNpZ25lZCBjaGFyKj4o
dGV4dC5kYXRhKCkpLCB0ZXh0Lmxlbmd0aCgpIH0gfSwgMCk7Cit9CisKK3ZvaWQgUlRDRGF0YUNo
YW5uZWxSZW1vdGVNYW5hZ2VyOjpSZW1vdGVTb3VyY2VDb25uZWN0aW9uOjpkaWRSZWNlaXZlUmF3
RGF0YShXZWJDb3JlOjpSVENEYXRhQ2hhbm5lbElkZW50aWZpZXIgaWRlbnRpZmllciwgY29uc3Qg
Y2hhciogZGF0YSwgc2l6ZV90IHNpemUpCit7CisgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3Nh
Z2VzOjpSVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXJQcm94eTo6UmVjZWl2ZURhdGEgeyBpZGVu
dGlmaWVyLCB0cnVlLCBJUEM6OkRhdGFSZWZlcmVuY2UgeyByZWludGVycHJldF9jYXN0PGNvbnN0
IHVuc2lnbmVkIGNoYXIqPihkYXRhKSwgc2l6ZSAgfSB9LCAwKTsKK30KKwordm9pZCBSVENEYXRh
Q2hhbm5lbFJlbW90ZU1hbmFnZXI6OlJlbW90ZVNvdXJjZUNvbm5lY3Rpb246OmRpZERldGVjdEVy
cm9yKFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsSWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAg
IG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6UlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2Vy
UHJveHk6OkRldGVjdEVycm9yIHsgaWRlbnRpZmllciB9LCAwKTsKK30KKwordm9pZCBSVENEYXRh
Q2hhbm5lbFJlbW90ZU1hbmFnZXI6OlJlbW90ZVNvdXJjZUNvbm5lY3Rpb246OmJ1ZmZlcmVkQW1v
dW50SXNEZWNyZWFzaW5nKFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsSWRlbnRpZmllciBpZGVudGlm
aWVyLCBzaXplX3QgYW1vdW50KQoreworICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6
UlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyUHJveHk6OkJ1ZmZlcmVkQW1vdW50SXNEZWNyZWFz
aW5nIHsgaWRlbnRpZmllciwgYW1vdW50IH0sIDApOworfQorCit9CisKKyNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL1JUQ0RhdGFDaGFu
bmVsUmVtb3RlTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2Vi
cnRjL1JUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZkMTJiN2MzNWYw
MDRhNDdjNTU0ZmRiMTVlZTIzOWRlNjJiMzUwY2UKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvUlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5h
Z2VyLmgKQEAgLTAsMCArMSwxMTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KKyAqIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNp
ZiBFTkFCTEUoV0VCX1JUQykKKworI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKKyNpbmNsdWRlICJE
YXRhUmVmZXJlbmNlLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9SVENEYXRhQ2hhbm5lbFJlbW90ZUhh
bmRsZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1JUQ0RhdGFDaGFubmVsUmVtb3RlSGFuZGxlckNv
bm5lY3Rpb24uaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1JUQ0RhdGFDaGFubmVsUmVtb3RlU291cmNl
Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SVENEYXRhQ2hhbm5lbFJlbW90ZVNvdXJjZUNvbm5lY3Rp
b24uaD4KKyNpbmNsdWRlIDx3dGYvV29ya1F1ZXVlLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgewor
CitjbGFzcyBSVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXIgZmluYWwgOiBwdWJsaWMgSVBDOjpD
b25uZWN0aW9uOjpXb3JrUXVldWVNZXNzYWdlUmVjZWl2ZXIgeworcHVibGljOgorICAgIHN0YXRp
YyBSVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXImIHNoYXJlZE1hbmFnZXIoKTsKKworICAgIFdl
YkNvcmU6OlJUQ0RhdGFDaGFubmVsUmVtb3RlSGFuZGxlckNvbm5lY3Rpb24mIHJlbW90ZUhhbmRs
ZXJDb25uZWN0aW9uKCk7CisgICAgdm9pZCBzZXRDb25uZWN0aW9uKElQQzo6Q29ubmVjdGlvbiop
OworICAgIGJvb2wgY29ubmVjdFRvUmVtb3RlU291cmNlKFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVs
SWRlbnRpZmllciBzb3VyY2UsIFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsSWRlbnRpZmllciBoYW5k
bGVyKTsKKworcHJpdmF0ZToKKyAgICBSVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXIoKTsKKwor
ICAgIC8vIElQQzo6Q29ubmVjdGlvbjo6V29ya1F1ZXVlTWVzc2FnZVJlY2VpdmVyCisgICAgdm9p
ZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBmaW5h
bDsKKworICAgIC8vIE1lc3NhZ2VzCisgICAgdm9pZCBzZW5kRGF0YShXZWJDb3JlOjpSVENEYXRh
Q2hhbm5lbElkZW50aWZpZXIsIGJvb2wgaXNSYXcsIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYp
OworICAgIHZvaWQgY2xvc2UoV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWxJZGVudGlmaWVyKTsKKwor
ICAgIC8vIFRvIGhhbmRsZXIKKyAgICB2b2lkIGNoYW5nZVJlYWR5U3RhdGUoV2ViQ29yZTo6UlRD
RGF0YUNoYW5uZWxJZGVudGlmaWVyLCBXZWJDb3JlOjpSVENEYXRhQ2hhbm5lbFN0YXRlKTsKKyAg
ICB2b2lkIHJlY2VpdmVEYXRhKFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsSWRlbnRpZmllciwgYm9v
bCBpc1JhdywgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJik7CisgICAgdm9pZCBkZXRlY3RFcnJv
cihXZWJDb3JlOjpSVENEYXRhQ2hhbm5lbElkZW50aWZpZXIpOworICAgIHZvaWQgYnVmZmVyZWRB
bW91bnRJc0RlY3JlYXNpbmcoV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWxJZGVudGlmaWVyLCBzaXpl
X3QpOworCisgICAgV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWxSZW1vdGVTb3VyY2VDb25uZWN0aW9u
JiByZW1vdGVTb3VyY2VDb25uZWN0aW9uKCk7CisgICAgdm9pZCBwb3N0VGFza1RvSGFuZGxlcihX
ZWJDb3JlOjpSVENEYXRhQ2hhbm5lbElkZW50aWZpZXIsIEZ1bmN0aW9uPHZvaWQoV2ViQ29yZTo6
UlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVyJik+JiYpOworICAgIFdlYkNvcmU6OlJUQ0RhdGFD
aGFubmVsUmVtb3RlU291cmNlKiBzb3VyY2VGcm9tSWRlbnRpZmllcihXZWJDb3JlOjpSVENEYXRh
Q2hhbm5lbElkZW50aWZpZXIpOworCisgICAgY2xhc3MgUmVtb3RlSGFuZGxlckNvbm5lY3Rpb24g
OiBwdWJsaWMgV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVyQ29ubmVjdGlvbiB7
CisgICAgcHVibGljOgorICAgICAgICBzdGF0aWMgUmVmPFJlbW90ZUhhbmRsZXJDb25uZWN0aW9u
PiBjcmVhdGUoUmVmPFdvcmtRdWV1ZT4mJik7CisKKyAgICAgICAgdm9pZCBjb25uZWN0VG9Tb3Vy
Y2UoV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVyJiwgV2ViQ29yZTo6U2NyaXB0
RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIsIFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsSWRlbnRp
ZmllciwgV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWxJZGVudGlmaWVyKSBmaW5hbDsKKyAgICAgICAg
dm9pZCBzZW5kRGF0YShXZWJDb3JlOjpSVENEYXRhQ2hhbm5lbElkZW50aWZpZXIsIGJvb2wgaXNS
YXcsIGNvbnN0IHVuc2lnbmVkIGNoYXIqLCBzaXplX3QpIGZpbmFsOworICAgICAgICB2b2lkIGNs
b3NlKFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsSWRlbnRpZmllcikgZmluYWw7CisKKyAgICBwcml2
YXRlOgorICAgICAgICBleHBsaWNpdCBSZW1vdGVIYW5kbGVyQ29ubmVjdGlvbihSZWY8V29ya1F1
ZXVlPiYmKTsKKworICAgICAgICBSZWY8SVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247Cisg
ICAgICAgIFJlZjxXb3JrUXVldWU+IG1fcXVldWU7CisgICAgfTsKKworICAgIGNsYXNzIFJlbW90
ZVNvdXJjZUNvbm5lY3Rpb24gOiBwdWJsaWMgV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWxSZW1vdGVT
b3VyY2VDb25uZWN0aW9uIHsKKyAgICBwdWJsaWM6CisgICAgICAgIHN0YXRpYyBSZWY8UmVtb3Rl
U291cmNlQ29ubmVjdGlvbj4gY3JlYXRlKCk7CisKKyAgICBwcml2YXRlOgorICAgICAgICBSZW1v
dGVTb3VyY2VDb25uZWN0aW9uKCk7CisKKyAgICAgICAgdm9pZCBkaWRDaGFuZ2VSZWFkeVN0YXRl
KFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsSWRlbnRpZmllciwgV2ViQ29yZTo6UlRDRGF0YUNoYW5u
ZWxTdGF0ZSkgZmluYWw7CisgICAgICAgIHZvaWQgZGlkUmVjZWl2ZVN0cmluZ0RhdGEoV2ViQ29y
ZTo6UlRDRGF0YUNoYW5uZWxJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmKSBmaW5hbDsKKyAgICAg
ICAgdm9pZCBkaWRSZWNlaXZlUmF3RGF0YShXZWJDb3JlOjpSVENEYXRhQ2hhbm5lbElkZW50aWZp
ZXIsIGNvbnN0IGNoYXIqLCBzaXplX3QpIGZpbmFsOworICAgICAgICB2b2lkIGRpZERldGVjdEVy
cm9yKFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsSWRlbnRpZmllcikgZmluYWw7CisgICAgICAgIHZv
aWQgYnVmZmVyZWRBbW91bnRJc0RlY3JlYXNpbmcoV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWxJZGVu
dGlmaWVyLCBzaXplX3QpIGZpbmFsOworCisgICAgICAgIFJlZjxJUEM6OkNvbm5lY3Rpb24+IG1f
Y29ubmVjdGlvbjsKKyAgICB9OworCisgICAgc3RydWN0IFJlbW90ZUhhbmRsZXIgeworICAgICAg
ICBXZWFrUHRyPFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsUmVtb3RlSGFuZGxlcj4gaGFuZGxlcjsK
KyAgICAgICAgV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIgY29udGV4
dElkZW50aWZpZXI7CisgICAgfTsKKworICAgIFJlZjxXb3JrUXVldWU+IG1fcXVldWU7CisgICAg
UmVmUHRyPElQQzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOworICAgIFJlZlB0cjxSZW1vdGVI
YW5kbGVyQ29ubmVjdGlvbj4gbV9yZW1vdGVIYW5kbGVyQ29ubmVjdGlvbjsKKyAgICBSZWZQdHI8
UmVtb3RlU291cmNlQ29ubmVjdGlvbj4gbV9yZW1vdGVTb3VyY2VDb25uZWN0aW9uOworICAgIEhh
c2hNYXA8V2ViQ29yZTo6UlRDRGF0YUNoYW5uZWxMb2NhbElkZW50aWZpZXIsIFJlZjxXZWJDb3Jl
OjpSVENEYXRhQ2hhbm5lbFJlbW90ZVNvdXJjZT4+IG1fc291cmNlczsKKyAgICBIYXNoTWFwPFdl
YkNvcmU6OlJUQ0RhdGFDaGFubmVsTG9jYWxJZGVudGlmaWVyLCBSZW1vdGVIYW5kbGVyPiBtX2hh
bmRsZXJzOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUo
V0VCX1JUQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dl
YnJ0Yy9SVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvUlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2Vy
Lm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM4ZWE1ZGQ2ZmMzY2RhYzhkNDA2MWE2N2NkMWRkNzFm
NWJmMzFjYmYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0
d29yay93ZWJydGMvUlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyLm1lc3NhZ2VzLmluCkBAIC0w
LDAgKzEsMzcgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAg
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorIyBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1Q
TElFRAorIyBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UgQVJFCisjIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisjIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwKKyMgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyMgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyMgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwKKyMgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworI2lm
IEVOQUJMRShXRUJfUlRDKQorCittZXNzYWdlcyAtPiBSVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFn
ZXIgTm90UmVmQ291bnRlZCB7CisgICAgLy8gVG8gc291cmNlCisgICAgU2VuZERhdGEoc3RydWN0
IFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsSWRlbnRpZmllciBzb3VyY2UsIGJvb2wgaXNSYXcsIElQ
Qzo6RGF0YVJlZmVyZW5jZSB0ZXh0KTsKKyAgICBDbG9zZShzdHJ1Y3QgV2ViQ29yZTo6UlRDRGF0
YUNoYW5uZWxJZGVudGlmaWVyIHNvdXJjZSk7CisKKyAgICAvLyBUbyBoYW5kbGVyCivCoCDCoCBD
aGFuZ2VSZWFkeVN0YXRlKHN0cnVjdCBXZWJDb3JlOjpSVENEYXRhQ2hhbm5lbElkZW50aWZpZXIg
aGFuZGxlciwgZW51bTp1aW50OF90IFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsU3RhdGUgc3RhdGUp
OworwqAgwqAgUmVjZWl2ZURhdGEoc3RydWN0IFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsSWRlbnRp
ZmllciBoYW5kbGVyLCBib29sIGlzUmF3LCBJUEM6OkRhdGFSZWZlcmVuY2UgZGF0YSk7CivCoCDC
oCBEZXRlY3RFcnJvcihzdHJ1Y3QgV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWxJZGVudGlmaWVyIGhh
bmRsZXIpOworwqAgwqAgQnVmZmVyZWRBbW91bnRJc0RlY3JlYXNpbmcoc3RydWN0IFdlYkNvcmU6
OlJUQ0RhdGFDaGFubmVsSWRlbnRpZmllciBoYW5kbGVyLCBzaXplX3QgYW1vdW50KTsKK30KKwor
I2VuZGlmIC8vIEVOQUJMRShXRUJfUlRDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24u
Y3BwCmluZGV4IDQ2MjRjODM1NjlhYjkxNTAxOTVlNDY0NDZjMDQ2MjRlNWQwMDI5Y2QuLmIzOWFi
YjIyMDMwZDhkY2I4MDAxYjgzZTA0NTAyYWU4ZTNjMWZmNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5h
Z2VyQ29ubmVjdGlvbi5jcHAKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJMb2dnaW5nLmgi
CiAjaW5jbHVkZSAiTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNzYWdlcy5oIgogI2lu
Y2x1ZGUgIk5ldHdvcmtQcm9jZXNzTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJSVENEYXRhQ2hhbm5l
bFJlbW90ZU1hbmFnZXIuaCIKICNpbmNsdWRlICJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrTWVzc2Fn
ZXMuaCIKICNpbmNsdWRlICJTZXJ2aWNlV29ya2VySW5pdGlhbGl6YXRpb25EYXRhLmgiCiAjaW5j
bHVkZSAiV2ViQ2FjaGVTdG9yYWdlUHJvdmlkZXIuaCIKQEAgLTc0LDYgKzc1LDE2IEBAIHVzaW5n
IG5hbWVzcGFjZSBQQUw7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogCisjaWYgRU5BQkxF
KFdFQl9SVEMpCitjbGFzcyBTZXJ2aWNlV29ya2VyTGliV2ViUlRDUHJvdmlkZXIgZmluYWwgOiBw
dWJsaWMgV2ViQ29yZTo6TGliV2ViUlRDUHJvdmlkZXIgeworcHVibGljOgorICAgIFNlcnZpY2VX
b3JrZXJMaWJXZWJSVENQcm92aWRlcigpID0gZGVmYXVsdDsKKworcHJpdmF0ZToKKyAgICBSZWZQ
dHI8V2ViQ29yZTo6UlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVyQ29ubmVjdGlvbj4gY3JlYXRl
UlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVyQ29ubmVjdGlvbigpIGZpbmFsIHsgcmV0dXJuICZS
VENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXI6OnNoYXJlZE1hbmFnZXIoKS5yZW1vdGVIYW5kbGVy
Q29ubmVjdGlvbigpOyB9Cit9OworI2VuZGlmCisKIFNlcnZpY2VXb3JrZXJGcmFtZUxvYWRlckNs
aWVudDo6U2VydmljZVdvcmtlckZyYW1lTG9hZGVyQ2xpZW50KFdlYlBhZ2VQcm94eUlkZW50aWZp
ZXIgd2ViUGFnZVByb3h5SUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgRnJhbWVJZGVudGlmaWVy
IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50KQogICAgIDogbV93ZWJQYWdlUHJveHlJ
RCh3ZWJQYWdlUHJveHlJRCkKICAgICAsIG1fcGFnZUlEKHBhZ2VJRCkKQEAgLTEzMyw2ICsxNDQs
OSBAQCB2b2lkIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjppbnN0YWxsU2VydmljZVdv
cmtlcihjb25zdCBTZXJ2aWNlV29ya2VyQ29udAogI2VuZGlmCiAgICAgcGFnZUNvbmZpZ3VyYXRp
b24uc29ja2V0UHJvdmlkZXIgPSBXZWJTb2NrZXRQcm92aWRlcjo6Y3JlYXRlKCk7CiAgICAgcGFn
ZUNvbmZpZ3VyYXRpb24udXNlckNvbnRlbnRQcm92aWRlciA9IG1fdXNlckNvbnRlbnRDb250cm9s
bGVyOworI2lmIEVOQUJMRShXRUJfUlRDKQorICAgIHBhZ2VDb25maWd1cmF0aW9uLmxpYldlYlJU
Q1Byb3ZpZGVyID0gbWFrZVVuaXF1ZVJlZjxTZXJ2aWNlV29ya2VyTGliV2ViUlRDUHJvdmlkZXI+
KCk7CisjZW5kaWYKIAogICAgIGF1dG8gZWZmZWN0aXZlVXNlckFnZW50ID0gIFdURk1vdmUodXNl
ckFnZW50KTsKICAgICBpZiAoZWZmZWN0aXZlVXNlckFnZW50LmlzTnVsbCgpKQpkaWZmIC0tZ2l0
IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDQ0MzliOGY1NTFlZWU3
MjJlOWZmMWExYzM2YjBmMzlkNjdkYmUxY2YuLjNlNzljN2RjMGRkNDIzZWQzMzc5NTg4Y2QyY2Fk
NGI3OTliOWVhMDMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAyMS0wMy0xOCAgWW91ZW5uIEZhYmxldCAgPHlvdWVu
bkBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IFJUQ0RhdGFDaGFubmVsIHRyYW5zZmVy
IG91dCBvZiBwcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMjM0NDMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBmaXJzdCB0cnkgYXQgcmVtb3RlIGNoYW5uZWxzCisKKyAgICAgICAgKiBUZXN0V2Vi
S2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKwogMjAyMS0w
My0xNyAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgR2VvbG9j
YXRpb24gQVBJIGRvZXMgbm90IHdvcmsgaW4gV0tXZWJWaWV3IHdpdGggY3VzdG9tIFVSTCBzY2hl
bWUgaGFuZGxlcgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJ
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJL
aXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBlMjQ0MGJiYjRhZTAzMTdjYzI4
YWFhODE2Zjg3NjFjMzNjZDBiN2Y3Li4wYjliNDI0NzBiMjk3MTkxYzk2NTNiOTlhNTUyNTNlOTNm
MDFkNDEzIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJL
aXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjM1LDYgKzIzNSw3IEBACiAJCTNG
QkQxQjRBMUQzRDY2QUIwMEU2RDZGQSAvKiBGdWxsc2NyZWVuTGF5b3V0Q29uc3RyYWludHMuaHRt
bCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAz
RkJEMUI0OTFEMzlEMURCMDBFNkQ2RkEgLyogRnVsbHNjcmVlbkxheW91dENvbnN0cmFpbnRzLmh0
bWwgKi87IH07CiAJCTNGQ0M0RkU1MUVDNEU4NTIwMDc2RTM3QyAvKiBQaWN0dXJlSW5QaWN0dXJl
RGVsZWdhdGUubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAzRkNDNEZFNDFFQzRFODUyMDA3NkUzN0MgLyogUGljdHVyZUluUGljdHVyZURlbGVnYXRlLm1t
ICovOyB9OwogCQkzRkNDNEZFODFFQzRFOENBMDA3NkUzN0MgLyogUGljdHVyZUluUGljdHVyZURl
bGVnYXRlLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gM0ZDQzRGRTYxRUM0RTg3RTAwNzZFMzdDIC8qIFBpY3R1cmVJblBpY3R1cmVEZWxl
Z2F0ZS5odG1sICovOyB9OworCQk0MTEyMjNDNzI2MDM1RkJGMDBCMEEwQjYgLyogV2ViUlRDLm1t
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDExMjIzQzYy
NjAzNUZCRTAwQjBBMEI2IC8qIFdlYlJUQy5tbSAqLzsgfTsKIAkJNDExNTcyMzcyMzRCMjQwQzAw
NTBBMUQxIC8qIEdldFVzZXJNZWRpYS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDQxMTU3MjM2MjM0QjI0MDQwMDUwQTFEMSAvKiBHZXRVc2VyTWVkaWEu
bW0gKi87IH07CiAJCTQxMzVGQjg0MjAxMUZBQTcwMDMzMjEzOSAvKiBJbmplY3RJbnRlcm5hbHNf
QnVuZGxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDQxMzVGQjgzMjAxMUZBQTMwMDMzMjEzOSAvKiBJbmplY3RJbnRlcm5hbHNfQnVuZGxlLmNwcCAq
LzsgfTsKIAkJNDEzNUZCODUyMDExRkFCRjAwMzMyMTM5IC8qIGxpYldlYkNvcmVUZXN0U3VwcG9y
dC5keWxpYiBpbiBGcmFtZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDQxMzVGQjg2MjAxMUZBQkYwMDMzMjEzOSAvKiBsaWJXZWJDb3JlVGVzdFN1cHBvcnQuZHlsaWIg
Ki87IH07CkBAIC0xOTk3LDYgKzE5OTgsNyBAQAogCQkzRkJEMUI0OTFEMzlEMURCMDBFNkQ2RkEg
LyogRnVsbHNjcmVlbkxheW91dENvbnN0cmFpbnRzLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7
IHBhdGggPSBGdWxsc2NyZWVuTGF5b3V0Q29uc3RyYWludHMuaHRtbDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJM0ZDQzRGRTQxRUM0RTg1MjAwNzZFMzdDIC8qIFBpY3R1cmVJblBpY3R1
cmVEZWxlZ2F0ZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFBp
Y3R1cmVJblBpY3R1cmVEZWxlZ2F0ZS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
M0ZDQzRGRTYxRUM0RTg3RTAwNzZFMzdDIC8qIFBpY3R1cmVJblBpY3R1cmVEZWxlZ2F0ZS5odG1s
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gUGljdHVyZUluUGljdHVyZURlbGVnYXRlLmh0
bWw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxMTIyM0M2MjYwMzVGQkUwMEIwQTBC
NiAvKiBXZWJSVEMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBX
ZWJSVEMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMTU3MjM2MjM0QjI0MDQw
MDUwQTFEMSAvKiBHZXRVc2VyTWVkaWEubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IHBhdGggPSBHZXRVc2VyTWVkaWEubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTQxMzVGQjgzMjAxMUZBQTMwMDMzMjEzOSAvKiBJbmplY3RJbnRlcm5hbHNfQnVuZGxlLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEluamVjdEludGVybmFsc19CdW5k
bGUuY3BwOyBwYXRoID0gVGVzdHMvSW5qZWN0SW50ZXJuYWxzX0J1bmRsZS5jcHA7IHNvdXJjZVRy
ZWUgPSBTT1VSQ0VfUk9PVDsgfTsKIAkJNDEzNUZCODYyMDExRkFCRjAwMzMyMTM5IC8qIGxpYldl
YkNvcmVUZXN0U3VwcG9ydC5keWxpYiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBs
aWNpdEZpbGVUeXBlID0gImNvbXBpbGVkLm1hY2gtby5keWxpYiI7IHBhdGggPSBsaWJXZWJDb3Jl
VGVzdFN1cHBvcnQuZHlsaWI7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CkBA
IC00MjcyLDYgKzQyNzQsNyBAQAogCQkJCTExNUVCMzQyMUVFMEI3MjAwMDNDMkMwQSAvKiBWaWV3
cG9ydFNpemVGb3JWaWV3cG9ydFVuaXRzLm1tICovLAogCQkJCTUyMEJDRjRCMTQxRUIwOUUwMDkz
N0VBOCAvKiBXZWJBcmNoaXZlLmNwcCAqLywKIAkJCQk1MjBCQ0Y0QTE0MUVCMDlFMDA5MzdFQTgg
LyogV2ViQXJjaGl2ZV9CdW5kbGUuY3BwICovLAorCQkJCTQxMTIyM0M2MjYwMzVGQkUwMEIwQTBC
NiAvKiBXZWJSVEMubW0gKi8sCiAJCQkJN0NGQkNBREQxNzQzMjM0RjAwQjJCRkNGIC8qIFdpbGxM
b2FkLmNwcCAqLywKIAkJCQk3Q0ZCQ0FFMzE3NDMyMzhFMDBCMkJGQ0YgLyogV2lsbExvYWRfQnVu
ZGxlLmNwcCAqLywKIAkJCQk3NkUxODJEOTE1NDc1NTAxMDBGMUZBREQgLyogV2lsbFNlbmRTdWJt
aXRFdmVudC5jcHAgKi8sCkBAIC01MTk4LDYgKzUyMDEsNyBAQAogCQkJCTFDMkI4MTgwMUM4OTFF
N0MwMEE1NTI5RiAvKiBDYW5jZWxGb250U3VicmVzb3VyY2UubW0gaW4gU291cmNlcyAqLywKIAkJ
CQk3Q0NFN0VCNjFBNDExQTdFMDA0NDdDNEMgLyogQ2FuY2VsTG9hZEZyb21SZXNvdXJjZUxvYWRE
ZWxlZ2F0ZS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTdDODNFMDQxMUQwQTYzRjIwMEZFQkNGMyAv
KiBDYW5kaWRhdGVUZXN0cy5tbSBpbiBTb3VyY2VzICovLAorCQkJCTQxMTIyM0M3MjYwMzVGQkYw
MEIwQTBCNiAvKiBXZWJSVEMubW0gaW4gU291cmNlcyAqLywKIAkJCQk3Q0NFN0VFNzFBNDExQUU2
MDA0NDdDNEMgLyogQ2FuSGFuZGxlUmVxdWVzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwN0Mw
NDZDQTFFNDI2MkE4MDA3MjAxRTcgLyogQ0FSaW5nQnVmZmVyLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTU3MzAzQkNCMjAwODM3NjUwMDM1NTk2NSAvKiBDQk9SUmVhZGVyVGVzdC5jcHAgaW4gU291
cmNlcyAqLywK
</data>
<flag name="commit-queue"
          id="443023"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>423600</attachid>
            <date>2021-03-18 07:41:05 -0700</date>
            <delta_ts>2021-03-18 11:26:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-223443-20210318154101.patch</filename>
            <type>text/plain</type>
            <size>155204</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0NDcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzk0MDkxM2ExNjU1N2Ex
N2MxNTU4ZTc3NWU2N2VkMTIyOWU1MzIxYi4uMzFiNDE3OTI3ZTcxYmNmZDkzNmUzOGJkNWI2ZmQw
MTI4MjQyZjRlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg5IEBACisyMDIxLTAzLTE4ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgUlRDRGF0
YUNoYW5uZWwgdHJhbnNmZXIgb3V0IG9mIHByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMzQ0MworCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBzZXJpYWxpemF0aW9uL2Rl
c2VyaWFsaXphdGlvbiBvZiBSVENEYXRhQ2hhbm5lbCBpbmZvcm1hdGlvbiBzbyB0aGF0IGl0IGNh
biBiZSBNZXNzYWdlUG9ydCB0cmFuc2ZlcmVkIG9yIHRyYW5zZmVyZWQgdG8gb3V0LW9mLXByb2Nl
c3MgY29udGV4dHMgbGlrZSBXaW5kb3cgb3IgU2VydmljZSBXb3JrZXIuCisgICAgICAgIEFkZCBp
bmZyYXN0cnVjdHVyZSBmb3IgcmVtb3RlIHNvdXJjZXMgKHRoYXQgYWxsb3dzIHRvIHNlbmQgZGF0
YSBvciBjbG9zZSBkYXRhIGNoYW5uZWxzKSBhbmQgcmVtb3RlIGhhbmRsZXJzIHdoaWNoIHJlY2Vp
dmUgbWVzc2FnZXMgZnJvbSBvdXQtb2YtcHJvY2VzcyBkYXRhIGNoYW5uZWxzLgorCisgICAgICAg
IENvdmVyZWQgYnkgQVBJIHRlc3RzLgorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9E
ZXRhY2hlZFJUQ0RhdGFDaGFubmVsLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6RGV0YWNo
ZWRSVENEYXRhQ2hhbm5lbDo6RGV0YWNoZWRSVENEYXRhQ2hhbm5lbCk6CisgICAgICAgIChXZWJD
b3JlOjpEZXRhY2hlZFJUQ0RhdGFDaGFubmVsOjptZW1vcnlDb3N0IGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OkRldGFjaGVkUlRDRGF0YUNoYW5uZWw6OmVuY29kZSBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpEZXRhY2hlZFJUQ0RhdGFDaGFubmVsOjpkZWNvZGUpOgorICAgICAgICAqIE1v
ZHVsZXMvbWVkaWFzdHJlYW0vUlRDRGF0YUNoYW5uZWwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UlRDRGF0YUNoYW5uZWw6OlJUQ0RhdGFDaGFubmVsKToKKyAgICAgICAgKFdlYkNvcmU6OnJ0Y0Rh
dGFDaGFubmVsTG9jYWxNYXApOgorICAgICAgICAoV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWw6Omhh
bmRsZXJGcm9tSWRlbnRpZmllcik6CisgICAgICAgIChXZWJDb3JlOjpSVENEYXRhQ2hhbm5lbDo6
Y3JlYXRlKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsLmg6
CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRs
ZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsUmVtb3RlSGFu
ZGxlcjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsUmVtb3RlSGFu
ZGxlcjo6UlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJU
Q0RhdGFDaGFubmVsUmVtb3RlSGFuZGxlcjo6flJUQ0RhdGFDaGFubmVsUmVtb3RlSGFuZGxlcik6
CisgICAgICAgIChXZWJDb3JlOjpSVENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXI6OmRpZENoYW5n
ZVJlYWR5U3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5k
bGVyOjpkaWRSZWNlaXZlU3RyaW5nRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpSVENEYXRhQ2hh
bm5lbFJlbW90ZUhhbmRsZXI6OmRpZFJlY2VpdmVSYXdEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6
OlJUQ0RhdGFDaGFubmVsUmVtb3RlSGFuZGxlcjo6ZGlkRGV0ZWN0RXJyb3IpOgorICAgICAgICAo
V2ViQ29yZTo6UlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVyOjpidWZmZXJlZEFtb3VudElzRGVj
cmVhc2luZyk6CisgICAgICAgIChXZWJDb3JlOjpSVENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXI6
OnJlYWR5VG9TZW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsUmVtb3RlSGFu
ZGxlcjo6c2V0Q2xpZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsUmVtb3Rl
SGFuZGxlcjo6c2VuZFN0cmluZ0RhdGEpOgorICAgICAgICAoV2ViQ29yZTo6UlRDRGF0YUNoYW5u
ZWxSZW1vdGVIYW5kbGVyOjpzZW5kUmF3RGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpSVENEYXRh
Q2hhbm5lbFJlbW90ZUhhbmRsZXI6OmNsb3NlKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3Ry
ZWFtL1JUQ0RhdGFDaGFubmVsUmVtb3RlSGFuZGxlci5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1
bGVzL21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsUmVtb3RlU291cmNlLmNwcDogQ29waWVkIGZy
b20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDRGF0YUNoYW5uZWxIYW5k
bGVyLmguCisgICAgICAgIChXZWJDb3JlOjpSVENEYXRhQ2hhbm5lbFJlbW90ZVNvdXJjZTo6UlRD
RGF0YUNoYW5uZWxSZW1vdGVTb3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6UlRDRGF0YUNoYW5u
ZWxSZW1vdGVTb3VyY2U6On5SVENEYXRhQ2hhbm5lbFJlbW90ZVNvdXJjZSk6CisgICAgICAgICog
TW9kdWxlcy9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbFJlbW90ZVNvdXJjZS5oOiBBZGRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsUmVtb3RlU291cmNlOjpjcmVhdGUpOgor
ICAgICAgICAoV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWxSZW1vdGVTb3VyY2U6OnNlbmRTdHJpbmdE
YXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsUmVtb3RlU291cmNlOjpzZW5k
UmF3RGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpSVENEYXRhQ2hhbm5lbFJlbW90ZVNvdXJjZTo6
Y2xvc2UpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJU
Q0RhdGFDaGFubmVsSGFuZGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMaWJXZWJSVENEYXRh
Q2hhbm5lbEhhbmRsZXI6OnBvc3RUYXNrKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1
ZGlvV29ya2xldE1lc3NhZ2luZ1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvV29y
a2xldE1lc3NhZ2luZ1Byb3h5OjpjcmVhdGVSVENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXJDb25u
ZWN0aW9uKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldE1lc3NhZ2lu
Z1Byb3h5Lmg6CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1NlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWU6
OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSk6CisgICAgICAgICogYmluZGluZ3MvanMvU2VyaWFsaXpl
ZFNjcmlwdFZhbHVlLmg6CisgICAgICAgIChXZWJDb3JlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWU6
OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWU6
OmRlY29kZSk6CisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkRvY3VtZW50OjpjcmVhdGVSVENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXJDb25uZWN0aW9uKToK
KyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAgKiBkb20vU2NyaXB0RXhlY3V0aW9u
Q29udGV4dC5oOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6Y3Jl
YXRlUlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVyQ29ubmVjdGlvbik6CisgICAgICAgICogcGxh
dGZvcm0vU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIuaDogQ29waWVkIGZyb20gU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDRGF0YUNoYW5uZWxTdGF0ZS5oLgor
ICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsSGFuZGxlci5oOgor
ICAgICAgICAoV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWxJbml0OjplbmNvZGUgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWxJbml0OjpkZWNvZGUpOgorICAgICAgICAqIHBs
YXRmb3JtL21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsSWRlbnRpZmllci5oOiBDb3BpZWQgZnJv
bSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbEhhbmRs
ZXIuaC4KKyAgICAgICAgKFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsSWRlbnRpZmllcjo6ZW5jb2Rl
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsSWRlbnRpZmllcjo6ZGVj
b2RlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbFJlbW90
ZUhhbmRsZXJDb25uZWN0aW9uLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsSGFuZGxlci5oLgorICAgICAgICAqIHBsYXRmb3Jt
L21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsUmVtb3RlU291cmNlQ29ubmVjdGlvbi5oOiBDb3Bp
ZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5l
bEhhbmRsZXIuaC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5l
bFN0YXRlLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDUHJpb3JpdHlUeXBl
Lmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1By
b3ZpZGVyLmg6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpXb3JrZXJHbG9iYWxTY29wZTo6Y3JlYXRlUlRDRGF0YUNoYW5uZWxSZW1v
dGVIYW5kbGVyQ29ubmVjdGlvbik6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29w
ZS5oOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyTG9hZGVyUHJveHkuaDoKKyAgICAgICAgKiB3
b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtl
ck1lc3NhZ2luZ1Byb3h5OjpjcmVhdGVSVENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXJDb25uZWN0
aW9uKToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5Lmg6CisgICAgICAg
ICogd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZFByb3h5LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eTo6Y3JlYXRlUlRDRGF0
YUNoYW5uZWxSZW1vdGVIYW5kbGVyQ29ubmVjdGlvbik6CisgICAgICAgICogd29ya2Vycy9zZXJ2
aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZFByb3h5Lmg6CisKIDIwMjEtMDMtMTcgIFlv
dWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIFJUQ1J0cFNjcmlwdFRy
YW5zZm9ybWVyOjp3cml0YWJsZSBzaG91bGQgY2hlY2sgZm9yIG1fYmFja2VuZApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRl
eCAxMmY1ODg4YzBiNzcxNDhkNzU4NmNmYTY3YzhhMmZjZTYyMTFiNDJiLi4xYWJhMWE5YTc2ZDJl
N2RlOWNhNDNjZDQ4ZDE1NTdlYTllZTc3YWI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDg1IEBACisy
MDIxLTAzLTE4ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBJ
bXBsZW1lbnQgUlRDRGF0YUNoYW5uZWwgdHJhbnNmZXIgb3V0IG9mIHByb2Nlc3MKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMzQ0MworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBj
b25uZWN0aW5nIHJlbW90ZSBzb3VyY2VzIHRvIHJlbW90ZSBkYXRhIGNoYW5uZWxzLgorICAgICAg
ICBUaGlzIGlzIGRvbmUgYnkgY29ubmVjdGlvbiBkZXRhY2hlZCBkYXRhIGNoYW5uZWxzIHRvIHJl
bW90ZSBzb3VyY2UgdGhhdCB3aWxsIHNlbmQgbWVzc2FnZXMgdG8gbmV0d29yayBwcm9jZXNzLgor
ICAgICAgICBOZXR3b3JrIHByb2Nlc3MgdGhlbiBzZW5kcyB0byB0aGUgcHJvY2VzcyBpbiB3aGlj
aCB3YXMgcmVhdHRhY2hlZCB0aGUgZGF0YSBjaGFubmVsLgorICAgICAgICBQYWlyaW5nIG9mIGRh
dGEgY2hhbm5lbHMgaXMgZG9uZSBpbiBtYWluIHRocmVhZCB0aHJvdWdoIGNvbm5lY3RUb1NvdXJj
ZSBtZXNzYWdlLgorICAgICAgICBUaGUgZGF0YSB0aGVuIGZsb3dzIGluIGJhY2tncm91bmQgdGhy
ZWFkcywgbmV0d29yayBwcm9jZXNzIGJlaW5nIHRoZSBwcm94eSBiZXR3ZWVuIHdlYiBwcm9jZXNz
ZXMuCisgICAgICAgIFJUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlclByb3h5IGlzIHRoZSBmb3J3
YXJkaW5nIGVudGl0eSBpbiBOZXR3b3JrUHJvY2Vzcy4KKyAgICAgICAgUlRDRGF0YUNoYW5uZWxS
ZW1vdGVNYW5hZ2VyIGlzIHRoZSBlbnRpdHkgaW4gV2ViUHJvY2VzcyBkb2luZyB0aGUgbWVzc2Fn
aW5nIGZyb20gYW5kIHRvIGRhdGEgY2hhbm5lbHMuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4
dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAq
IERlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3Vy
Y2VzLm1ha2U6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzczo6fk5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNvbm5lY3RUb1JUQ0RhdGFDaGFubmVsUmVt
b3RlU291cmNlKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3M6OnJlZ2lzdGVyVG9SVENEYXRhQ2hhbm5lbFByb3h5KToKKyAgICAgICAgKFdlYktpdDo6TmV0
d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnVucmVnaXN0ZXJUb1JUQ0RhdGFDaGFubmVsUHJv
eHkpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nl
c3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6cnRjRGF0YUNoYW5uZWxQ
cm94eSk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaDoKKyAgICAg
ICAgKiBOZXR3b3JrUHJvY2Vzcy93ZWJydGMvUlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyUHJv
eHkuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5h
Z2VyUHJveHk6OlJUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlclByb3h5KToKKyAgICAgICAgKFdl
YktpdDo6UlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyUHJveHk6OnJlZ2lzdGVyQ29ubmVjdGlv
blRvV2ViUHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OlJUQ0RhdGFDaGFubmVsUmVtb3RlTWFu
YWdlclByb3h5Ojp1bnJlZ2lzdGVyQ29ubmVjdGlvblRvV2ViUHJvY2Vzcyk6CisgICAgICAgIChX
ZWJLaXQ6OlJUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlclByb3h5OjpzZW5kRGF0YSk6CisgICAg
ICAgIChXZWJLaXQ6OlJUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlclByb3h5OjpjbG9zZSk6Cisg
ICAgICAgIChXZWJLaXQ6OlJUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlclByb3h5OjpjaGFuZ2VS
ZWFkeVN0YXRlKToKKyAgICAgICAgKFdlYktpdDo6UlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2Vy
UHJveHk6OnJlY2VpdmVEYXRhKToKKyAgICAgICAgKFdlYktpdDo6UlRDRGF0YUNoYW5uZWxSZW1v
dGVNYW5hZ2VyUHJveHk6OmRldGVjdEVycm9yKToKKyAgICAgICAgKFdlYktpdDo6UlRDRGF0YUNo
YW5uZWxSZW1vdGVNYW5hZ2VyUHJveHk6OmJ1ZmZlcmVkQW1vdW50SXNEZWNyZWFzaW5nKToKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy93ZWJydGMvUlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2Vy
UHJveHkuaDogQWRkZWQuCisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mvd2VicnRjL1JUQ0RhdGFD
aGFubmVsUmVtb3RlTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluOiBBZGRlZC4KKyAgICAgICAgKiBT
b3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpjb25uZWN0VG9S
VENEYXRhQ2hhbm5lbFJlbW90ZVNvdXJjZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3Jr
L05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29y
ay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJv
Y2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5jcHA6CisgICAgICAgIChXZWJL
aXQ6OkxpYldlYlJUQ1Byb3ZpZGVyOjpjcmVhdGVSVENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXJD
b25uZWN0aW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJU
Q1Byb3ZpZGVyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9SVENEYXRh
Q2hhbm5lbFJlbW90ZU1hbmFnZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UlRDRGF0
YUNoYW5uZWxSZW1vdGVNYW5hZ2VyOjpzaGFyZWRNYW5hZ2VyKToKKyAgICAgICAgKFdlYktpdDo6
UlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyOjpSVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXIp
OgorICAgICAgICAoV2ViS2l0OjpSVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXI6OnNldENvbm5l
Y3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpSVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXI6OmNv
bm5lY3RUb1JlbW90ZVNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlJUQ0RhdGFDaGFubmVsUmVt
b3RlTWFuYWdlcjo6cmVtb3RlSGFuZGxlckNvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpS
VENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXI6OnJlbW90ZVNvdXJjZUNvbm5lY3Rpb24pOgorICAg
ICAgICAoV2ViS2l0OjpSVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXI6OnBvc3RUYXNrVG9IYW5k
bGVyKToKKyAgICAgICAgKFdlYktpdDo6UlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyOjpzb3Vy
Y2VGcm9tSWRlbnRpZmllcik6CisgICAgICAgIChXZWJLaXQ6OlJUQ0RhdGFDaGFubmVsUmVtb3Rl
TWFuYWdlcjo6c2VuZERhdGEpOgorICAgICAgICAoV2ViS2l0OjpSVENEYXRhQ2hhbm5lbFJlbW90
ZU1hbmFnZXI6OmNsb3NlKToKKyAgICAgICAgKFdlYktpdDo6UlRDRGF0YUNoYW5uZWxSZW1vdGVN
YW5hZ2VyOjpjaGFuZ2VSZWFkeVN0YXRlKToKKyAgICAgICAgKFdlYktpdDo6UlRDRGF0YUNoYW5u
ZWxSZW1vdGVNYW5hZ2VyOjpyZWNlaXZlRGF0YSk6CisgICAgICAgIChXZWJLaXQ6OlJUQ0RhdGFD
aGFubmVsUmVtb3RlTWFuYWdlcjo6ZGV0ZWN0RXJyb3IpOgorICAgICAgICAoV2ViS2l0OjpSVENE
YXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXI6OmJ1ZmZlcmVkQW1vdW50SXNEZWNyZWFzaW5nKToKKyAg
ICAgICAgKFdlYktpdDo6UlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyOjpSZW1vdGVIYW5kbGVy
Q29ubmVjdGlvbjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6UlRDRGF0YUNoYW5uZWxSZW1v
dGVNYW5hZ2VyOjpSZW1vdGVIYW5kbGVyQ29ubmVjdGlvbjo6UmVtb3RlSGFuZGxlckNvbm5lY3Rp
b24pOgorICAgICAgICAoV2ViS2l0OjpSVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXI6OlJlbW90
ZUhhbmRsZXJDb25uZWN0aW9uOjpjb25uZWN0VG9Tb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpS
VENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXI6OlJlbW90ZUhhbmRsZXJDb25uZWN0aW9uOjpzZW5k
RGF0YSk6CisgICAgICAgIChXZWJLaXQ6OlJUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlcjo6UmVt
b3RlSGFuZGxlckNvbm5lY3Rpb246OmNsb3NlKToKKyAgICAgICAgKFdlYktpdDo6UlRDRGF0YUNo
YW5uZWxSZW1vdGVNYW5hZ2VyOjpSZW1vdGVTb3VyY2VDb25uZWN0aW9uOjpjcmVhdGUpOgorICAg
ICAgICAoV2ViS2l0OjpSVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXI6OlJlbW90ZVNvdXJjZUNv
bm5lY3Rpb246OlJlbW90ZVNvdXJjZUNvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpSVENE
YXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXI6OlJlbW90ZVNvdXJjZUNvbm5lY3Rpb246OmRpZENoYW5n
ZVJlYWR5U3RhdGUpOgorICAgICAgICAoV2ViS2l0OjpSVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFn
ZXI6OlJlbW90ZVNvdXJjZUNvbm5lY3Rpb246OmRpZFJlY2VpdmVTdHJpbmdEYXRhKToKKyAgICAg
ICAgKFdlYktpdDo6UlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyOjpSZW1vdGVTb3VyY2VDb25u
ZWN0aW9uOjpkaWRSZWNlaXZlUmF3RGF0YSk6CisgICAgICAgIChXZWJLaXQ6OlJUQ0RhdGFDaGFu
bmVsUmVtb3RlTWFuYWdlcjo6UmVtb3RlU291cmNlQ29ubmVjdGlvbjo6ZGlkRGV0ZWN0RXJyb3Ip
OgorICAgICAgICAoV2ViS2l0OjpSVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXI6OlJlbW90ZVNv
dXJjZUNvbm5lY3Rpb246OmJ1ZmZlcmVkQW1vdW50SXNEZWNyZWFzaW5nKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL1JUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlci5oOiBB
ZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL1JUQ0RhdGFDaGFubmVs
UmVtb3RlTWFuYWdlci5tZXNzYWdlcy5pbjogQ29waWVkIGZyb20gU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluLgorICAg
ICAgICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjppbnN0
YWxsU2VydmljZVdvcmtlcik6CisKIDIwMjEtMDMtMTcgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5A
YXBwbGUuY29tPgogCiAgICAgICAgIEdlb2xvY2F0aW9uIEFQSSBkb2VzIG5vdCB3b3JrIGluIFdL
V2ViVmlldyB3aXRoIGN1c3RvbSBVUkwgc2NoZW1lIGhhbmRsZXIKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCmlu
ZGV4IDNiYzdiZjY3ZWEwMTQ3ZDk5ODhkNTQ3Mzg5MGRiMDliYzc1NDM4NjQuLmY1MDIzZGNkZGQ1
ZmM0YWYxMWI3NjdjMmFkZjIwMmM2YWU2NDk5ODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L0hlYWRlcnMuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQpAQCAtMTAz
LDExICsxMDMsMTUgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogCiAg
ICAgTW9kdWxlcy9tZWRpYXNvdXJjZS9TYW1wbGVNYXAuaAogCisgICAgTW9kdWxlcy9tZWRpYXN0
cmVhbS9EZXRhY2hlZFJUQ0RhdGFDaGFubmVsLmgKICAgICBNb2R1bGVzL21lZGlhc3RyZWFtL0Rv
dWJsZVJhbmdlLmgKICAgICBNb2R1bGVzL21lZGlhc3RyZWFtL0xvbmdSYW5nZS5oCiAgICAgTW9k
dWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmgKICAgICBNb2R1bGVzL21lZGlhc3Ry
ZWFtL01lZGlhVHJhY2tDb25zdHJhaW50cy5oCiAgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9SVEND
b250cm9sbGVyLmgKKyAgICBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsLmgKKyAg
ICBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsUmVtb3RlSGFuZGxlci5oCisgICAg
TW9kdWxlcy9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbFJlbW90ZVNvdXJjZS5oCiAgICAgTW9k
dWxlcy9tZWRpYXN0cmVhbS9TVFVOTWVzc2FnZVBhcnNpbmcuaAogICAgIE1vZHVsZXMvbWVkaWFz
dHJlYW0vVXNlck1lZGlhQ2xpZW50LmgKICAgICBNb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRp
YUNvbnRyb2xsZXIuaApAQCAtMTA4MCw2ICsxMDg0LDcgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9G
UkFNRVdPUktfSEVBREVSUwogICAgIHBsYXRmb3JtL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5o
CiAgICAgcGxhdGZvcm0vU1NMS2V5R2VuZXJhdG9yLmgKICAgICBwbGF0Zm9ybS9TY3JlZW5Qcm9w
ZXJ0aWVzLmgKKyAgICBwbGF0Zm9ybS9TY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllci5o
CiAgICAgcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuaAogICAgIHBsYXRmb3JtL1Njcm9sbFR5cGVz
LmgKICAgICBwbGF0Zm9ybS9TY3JvbGxWaWV3LmgKQEAgLTEzNjUsNiArMTM3MCwxMiBAQCBzZXQo
V2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgcGxhdGZvcm0vbWVkaWFzdHJl
YW0vTWVkaWFTdHJlYW1Qcml2YXRlLmgKICAgICBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0
cmVhbVJlcXVlc3QuaAogICAgIHBsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tQ
cml2YXRlLmgKKyAgICBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbEhhbmRsZXIu
aAorICAgIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsSWRlbnRpZmllci5oCisg
ICAgcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVyQ29ubmVj
dGlvbi5oCisgICAgcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDRGF0YUNoYW5uZWxSZW1vdGVTb3Vy
Y2VDb25uZWN0aW9uLmgKKyAgICBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbFN0
YXRlLmgKKyAgICBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENQcmlvcml0eVR5cGUuaAogICAgIHBs
YXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaAogICAgIHBsYXRmb3JtL21l
ZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMuaAogICAgIHBsYXRmb3Jt
L21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuaApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9EZXRhY2hlZFJUQ0RhdGFDaGFubmVsLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL0RldGFjaGVkUlRDRGF0YUNoYW5u
ZWwuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi40ZDkxNmY4OWJmNWZhOGE4ZDAxYTkwMWFhODExMGM2NjEyYzI5NmM5
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9E
ZXRhY2hlZFJUQ0RhdGFDaGFubmVsLmgKQEAgLTAsMCArMSw5MSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDE3LTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisg
KiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04K
KyAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoV0VCX1JUQykKKworI2luY2x1ZGUgIlJUQ0Rh
dGFDaGFubmVsSGFuZGxlci5oIgorI2luY2x1ZGUgIlJUQ0RhdGFDaGFubmVsSWRlbnRpZmllci5o
IgorI2luY2x1ZGUgIlJUQ0RhdGFDaGFubmVsU3RhdGUuaCIKKyNpbmNsdWRlIDx3dGYvdGV4dC9X
VEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdHJ1Y3QgRGV0YWNoZWRSVENE
YXRhQ2hhbm5lbCB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoRGV0YWNoZWRSVENEYXRhQ2hh
bm5lbCk7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgRGV0YWNo
ZWRSVENEYXRhQ2hhbm5lbChSVENEYXRhQ2hhbm5lbElkZW50aWZpZXIgaWRlbnRpZmllciwgY29u
c3QgU3RyaW5nJiBsYWJlbCwgY29uc3QgUlRDRGF0YUNoYW5uZWxJbml0JiBvcHRpb25zLCBSVENE
YXRhQ2hhbm5lbFN0YXRlIHN0YXRlKQorICAgICAgICA6IGlkZW50aWZpZXIoaWRlbnRpZmllcikK
KyAgICAgICAgLCBsYWJlbChsYWJlbC5pc29sYXRlZENvcHkoKSkKKyAgICAgICAgLCBvcHRpb25z
KG9wdGlvbnMuaXNvbGF0ZWRDb3B5KCkpCisgICAgICAgICwgc3RhdGUoc3RhdGUpCisgICAgewor
ICAgIH0KKworICAgIHNpemVfdCBtZW1vcnlDb3N0KCkgY29uc3QgeyByZXR1cm4gbGFiZWwuc2l6
ZUluQnl0ZXMoKTsgfQorCisgICAgUlRDRGF0YUNoYW5uZWxJZGVudGlmaWVyIGlkZW50aWZpZXI7
CisgICAgU3RyaW5nIGxhYmVsOworICAgIFJUQ0RhdGFDaGFubmVsSW5pdCBvcHRpb25zOworICAg
IFJUQ0RhdGFDaGFubmVsU3RhdGUgc3RhdGUgeyBSVENEYXRhQ2hhbm5lbFN0YXRlOjpDbG9zZWQg
fTsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBj
b25zdDsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjp1bmlxdWVfcHRy
PERldGFjaGVkUlRDRGF0YUNoYW5uZWw+IGRlY29kZShEZWNvZGVyJik7Cit9OworCit0ZW1wbGF0
ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIERldGFjaGVkUlRDRGF0YUNoYW5uZWw6OmVuY29kZShFbmNv
ZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAgIGVuY29kZXIgPDwgaWRlbnRpZmllciA8PCBsYWJl
bCA8PCBvcHRpb25zIDw8IHN0YXRlOworfQorCit0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGQ6
OnVuaXF1ZV9wdHI8RGV0YWNoZWRSVENEYXRhQ2hhbm5lbD4gRGV0YWNoZWRSVENEYXRhQ2hhbm5l
bDo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCit7CisgICAgT3B0aW9uYWw8UlRDRGF0YUNoYW5u
ZWxJZGVudGlmaWVyPiBpZGVudGlmaWVyOworICAgIGRlY29kZXIgPj4gaWRlbnRpZmllcjsKKyAg
ICBpZiAoIWlkZW50aWZpZXIpCisgICAgICAgIHJldHVybiB7IH07CisKKyAgICBTdHJpbmcgbGFi
ZWw7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShsYWJlbCkpCisgICAgICAgIHJldHVybiB7IH07
CisKKyAgICBPcHRpb25hbDxSVENEYXRhQ2hhbm5lbEluaXQ+IG9wdGlvbnM7CisgICAgZGVjb2Rl
ciA+PiBvcHRpb25zOworICAgIGlmICghb3B0aW9ucykKKyAgICAgICAgcmV0dXJuIHsgfTsKKwor
ICAgIE9wdGlvbmFsPFJUQ0RhdGFDaGFubmVsU3RhdGU+IHN0YXRlOworICAgIGRlY29kZXIgPj4g
c3RhdGU7CisgICAgaWYgKCFzdGF0ZSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKworICAgIHJldHVy
biBtYWtlVW5pcXVlPERldGFjaGVkUlRDRGF0YUNoYW5uZWw+KCppZGVudGlmaWVyLCBXVEZNb3Zl
KGxhYmVsKSwgKm9wdGlvbnMsICpzdGF0ZSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
KworI2VuZGlmIC8vIEVOQUJMRShXRUJfUlRDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsLmNwcAppbmRleCAyNTRjMjBmYmI4NjQ1
YmMyNTgyYTkyZTMzNTZlNWQ0MWZlYjkzMzEzLi45YjAwMTRjYWFjM2UyODRhZjhkMmZiYjJmNjRj
MzQ3ZDNjZjNiNGE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL1JUQ0RhdGFDaGFubmVsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL1JUQ0RhdGFDaGFubmVsLmNwcApAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIkV4
Y2VwdGlvbkNvZGUuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTWVzc2FnZUV2
ZW50LmgiCisjaW5jbHVkZSAiUlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVyLmgiCiAjaW5jbHVk
ZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgogI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgog
I2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0FycmF5QnVmZmVyVmlldy5oPgpAQCAtOTMsNyArOTQs
NyBAQCBOZXR3b3JrU2VuZFF1ZXVlIFJUQ0RhdGFDaGFubmVsOjpjcmVhdGVNZXNzYWdlUXVldWUo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udAogUlRDRGF0YUNoYW5uZWw6OlJUQ0RhdGFDaGFu
bmVsKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIHN0ZDo6dW5pcXVlX3B0cjxSVENE
YXRhQ2hhbm5lbEhhbmRsZXI+JiYgaGFuZGxlciwgU3RyaW5nJiYgbGFiZWwsIFJUQ0RhdGFDaGFu
bmVsSW5pdCYmIG9wdGlvbnMpCiAgICAgOiBBY3RpdmVET01PYmplY3QoJmNvbnRleHQpCiAgICAg
LCBtX2hhbmRsZXIoV1RGTW92ZShoYW5kbGVyKSkKLSAgICAsIG1faWRlbnRpZmllcihSVENEYXRh
Q2hhbm5lbElkZW50aWZpZXIgeyBQcm9jZXNzOjppZGVudGlmaWVyKCksIE9iamVjdElkZW50aWZp
ZXI8UlRDRGF0YUNoYW5uZWxJZGVudGlmaWVyVHlwZT46OmdlbmVyYXRlVGhyZWFkU2FmZSgpIH0p
CisgICAgLCBtX2lkZW50aWZpZXIoUlRDRGF0YUNoYW5uZWxJZGVudGlmaWVyIHsgUHJvY2Vzczo6
aWRlbnRpZmllcigpLCBPYmplY3RJZGVudGlmaWVyPFJUQ0RhdGFDaGFubmVsTG9jYWxJZGVudGlm
aWVyVHlwZT46OmdlbmVyYXRlVGhyZWFkU2FmZSgpIH0pCiAgICAgLCBtX2NvbnRleHRJZGVudGlm
aWVyKGNvbnRleHQuaXNEb2N1bWVudCgpID8gU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZp
ZXIgeyB9IDogY29udGV4dC5jb250ZXh0SWRlbnRpZmllcigpKQogICAgICwgbV9sYWJlbChXVEZN
b3ZlKGxhYmVsKSkKICAgICAsIG1fb3B0aW9ucyhXVEZNb3ZlKG9wdGlvbnMpKQpAQCAtMjUyLDEw
ICsyNTMsMTAgQEAgdm9pZCBSVENEYXRhQ2hhbm5lbDo6c2NoZWR1bGVEaXNwYXRjaEV2ZW50KFJl
ZjxFdmVudD4mJiBldmVudCkKIH0KIAogc3RhdGljIExvY2sgc19ydGNEYXRhQ2hhbm5lbExvY2Fs
TWFwTG9jazsKLXN0YXRpYyBIYXNoTWFwPE9iamVjdElkZW50aWZpZXI8UlRDRGF0YUNoYW5uZWxJ
ZGVudGlmaWVyVHlwZT4sIHN0ZDo6dW5pcXVlX3B0cjxSVENEYXRhQ2hhbm5lbEhhbmRsZXI+PiYg
cnRjRGF0YUNoYW5uZWxMb2NhbE1hcCgpCitzdGF0aWMgSGFzaE1hcDxSVENEYXRhQ2hhbm5lbExv
Y2FsSWRlbnRpZmllciwgc3RkOjp1bmlxdWVfcHRyPFJUQ0RhdGFDaGFubmVsSGFuZGxlcj4+JiBy
dGNEYXRhQ2hhbm5lbExvY2FsTWFwKCkKIHsKICAgICBBU1NFUlQoc19ydGNEYXRhQ2hhbm5lbExv
Y2FsTWFwTG9jay5pc0hlbGQoKSk7Ci0gICAgc3RhdGljIExhenlOZXZlckRlc3Ryb3llZDxIYXNo
TWFwPE9iamVjdElkZW50aWZpZXI8UlRDRGF0YUNoYW5uZWxJZGVudGlmaWVyVHlwZT4sIHN0ZDo6
dW5pcXVlX3B0cjxSVENEYXRhQ2hhbm5lbEhhbmRsZXI+Pj4gbWFwOworICAgIHN0YXRpYyBMYXp5
TmV2ZXJEZXN0cm95ZWQ8SGFzaE1hcDxSVENEYXRhQ2hhbm5lbExvY2FsSWRlbnRpZmllciwgc3Rk
Ojp1bmlxdWVfcHRyPFJUQ0RhdGFDaGFubmVsSGFuZGxlcj4+PiBtYXA7CiAgICAgc3RhdGljIHN0
ZDo6b25jZV9mbGFnIG9uY2VLZXk7CiAgICAgc3RkOjpjYWxsX29uY2Uob25jZUtleSwgWyZdIHsK
ICAgICAgICAgbWFwLmNvbnN0cnVjdCgpOwpAQCAtMjkzLDYgKzI5NCwxMiBAQCB2b2lkIFJUQ0Rh
dGFDaGFubmVsOjpyZW1vdmVGcm9tRGF0YUNoYW5uZWxMb2NhbE1hcElmTmVlZGVkKCkKICAgICBy
dGNEYXRhQ2hhbm5lbExvY2FsTWFwKCkucmVtb3ZlKGlkZW50aWZpZXIoKS5jaGFubmVsSWRlbnRp
Zmllcik7CiB9CiAKK3N0ZDo6dW5pcXVlX3B0cjxSVENEYXRhQ2hhbm5lbEhhbmRsZXI+IFJUQ0Rh
dGFDaGFubmVsOjpoYW5kbGVyRnJvbUlkZW50aWZpZXIoUlRDRGF0YUNoYW5uZWxMb2NhbElkZW50
aWZpZXIgY2hhbm5lbElkZW50aWZpZXIpCit7CisgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhz
X3J0Y0RhdGFDaGFubmVsTG9jYWxNYXBMb2NrKTsKKyAgICByZXR1cm4gcnRjRGF0YUNoYW5uZWxM
b2NhbE1hcCgpLnRha2UoY2hhbm5lbElkZW50aWZpZXIpOworfQorCiBzdGF0aWMgUmVmPFJUQ0Rh
dGFDaGFubmVsPiBjcmVhdGVDbG9zZWRDaGFubmVsKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNv
bnRleHQsIFN0cmluZyYmIGxhYmVsLCBSVENEYXRhQ2hhbm5lbEluaXQmJiBvcHRpb25zKQogewog
ICAgIGF1dG8gY2hhbm5lbCA9IFJUQ0RhdGFDaGFubmVsOjpjcmVhdGUoY29udGV4dCwgbnVsbHB0
ciwgV1RGTW92ZShsYWJlbCksIFdURk1vdmUob3B0aW9ucykpOwpAQCAtMzAyLDE4ICszMDksMjUg
QEAgc3RhdGljIFJlZjxSVENEYXRhQ2hhbm5lbD4gY3JlYXRlQ2xvc2VkQ2hhbm5lbChTY3JpcHRF
eGVjdXRpb25Db250ZXh0JiBjb250ZXh0LAogCiBSZWY8UlRDRGF0YUNoYW5uZWw+IFJUQ0RhdGFD
aGFubmVsOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgUlRDRGF0YUNo
YW5uZWxJZGVudGlmaWVyIGlkZW50aWZpZXIsIFN0cmluZyYmIGxhYmVsLCBSVENEYXRhQ2hhbm5l
bEluaXQmJiBvcHRpb25zLCBSVENEYXRhQ2hhbm5lbFN0YXRlIHN0YXRlKQogewotICAgIGlmIChp
ZGVudGlmaWVyLnByb2Nlc3NJZGVudGlmaWVyICE9IFByb2Nlc3M6OmlkZW50aWZpZXIoKSkgewot
ICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihXZWJSVEMsICJPdXQtb2YtcHJvY2VzcyBkYXRhIGNo
YW5uZWxzIGFyZSBub3QgeWV0IHN1cHBvcnRlZCIpOwotICAgICAgICByZXR1cm4gY3JlYXRlQ2xv
c2VkQ2hhbm5lbChjb250ZXh0LCBXVEZNb3ZlKGxhYmVsKSwgV1RGTW92ZShvcHRpb25zKSk7Cisg
ICAgUlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVyKiByZW1vdGVIYW5kbGVyUHRyID0gbnVsbHB0
cjsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8UlRDRGF0YUNoYW5uZWxIYW5kbGVyPiBoYW5kbGVyOwor
ICAgIGlmIChpZGVudGlmaWVyLnByb2Nlc3NJZGVudGlmaWVyID09IFByb2Nlc3M6OmlkZW50aWZp
ZXIoKSkKKyAgICAgICAgaGFuZGxlciA9IFJUQ0RhdGFDaGFubmVsOjpoYW5kbGVyRnJvbUlkZW50
aWZpZXIoaWRlbnRpZmllci5jaGFubmVsSWRlbnRpZmllcik7CisgICAgZWxzZSB7CisgICAgICAg
IGF1dG8gcmVtb3RlSGFuZGxlciA9IFJUQ0RhdGFDaGFubmVsUmVtb3RlSGFuZGxlcjo6Y3JlYXRl
KGlkZW50aWZpZXIsIGNvbnRleHQuY3JlYXRlUlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVyQ29u
bmVjdGlvbigpKTsKKyAgICAgICAgcmVtb3RlSGFuZGxlclB0ciA9IHJlbW90ZUhhbmRsZXIuZ2V0
KCk7CisgICAgICAgIGhhbmRsZXIgPSBXVEZNb3ZlKHJlbW90ZUhhbmRsZXIpOwogICAgIH0KIAot
ICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2soc19ydGNEYXRhQ2hhbm5lbExvY2FsTWFwTG9jayk7
Ci0gICAgYXV0byBoYW5kbGVyID0gcnRjRGF0YUNoYW5uZWxMb2NhbE1hcCgpLnRha2UoaWRlbnRp
Zmllci5jaGFubmVsSWRlbnRpZmllcik7CiAgICAgaWYgKCFoYW5kbGVyKQogICAgICAgICByZXR1
cm4gY3JlYXRlQ2xvc2VkQ2hhbm5lbChjb250ZXh0LCBXVEZNb3ZlKGxhYmVsKSwgV1RGTW92ZShv
cHRpb25zKSk7CiAKICAgICBhdXRvIGNoYW5uZWwgPSBSVENEYXRhQ2hhbm5lbDo6Y3JlYXRlKGNv
bnRleHQsIFdURk1vdmUoaGFuZGxlciksIFdURk1vdmUobGFiZWwpLCBXVEZNb3ZlKG9wdGlvbnMp
KTsKICAgICBjaGFubmVsLT5tX3JlYWR5U3RhdGUgPSBzdGF0ZTsKKworICAgIGlmIChyZW1vdGVI
YW5kbGVyUHRyKQorICAgICAgICByZW1vdGVIYW5kbGVyUHRyLT5zZXRMb2NhbElkZW50aWZpZXIo
Y2hhbm5lbC0+aWRlbnRpZmllcigpKTsKKwogICAgIHJldHVybiBjaGFubmVsOwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVs
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsLmgK
aW5kZXggNTkwYTljYjdlZTRjZjQxYWM5NjM0NDBiZGVjMDkxYjhiODQwYzFiZC4uNjAxZDg4OTQy
NTc0NjU5OGM0M2FjZTc1Y2FmNWE0MmM4MjFlOWMyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRGF0YUNoYW5uZWwuaApAQCAtMjgsMTMgKzI4LDE0
IEBACiAjaWYgRU5BQkxFKFdFQl9SVEMpCiAKICNpbmNsdWRlICJBY3RpdmVET01PYmplY3QuaCIK
KyNpbmNsdWRlICJEZXRhY2hlZFJUQ0RhdGFDaGFubmVsLmgiCiAjaW5jbHVkZSAiRXZlbnQuaCIK
ICNpbmNsdWRlICJFdmVudFRhcmdldC5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbk9yLmgiCiAjaW5j
bHVkZSAiTmV0d29ya1NlbmRRdWV1ZS5oIgotI2luY2x1ZGUgIlByb2Nlc3NJZGVudGlmaWVyLmgi
CiAjaW5jbHVkZSAiUlRDRGF0YUNoYW5uZWxIYW5kbGVyLmgiCiAjaW5jbHVkZSAiUlRDRGF0YUNo
YW5uZWxIYW5kbGVyQ2xpZW50LmgiCisjaW5jbHVkZSAiUlRDRGF0YUNoYW5uZWxJZGVudGlmaWVy
LmgiCiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgogI2luY2x1ZGUgIlNjcmlw
dFdyYXBwYWJsZS5oIgogI2luY2x1ZGUgIlRpbWVyLmgiCkBAIC00OSwzOSArNTAsNiBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBCbG9iOwogY2xhc3MgUlRDUGVlckNvbm5lY3Rpb25IYW5k
bGVyOwogCi1lbnVtIFJUQ0RhdGFDaGFubmVsSWRlbnRpZmllclR5cGUgeyB9Owotc3RydWN0IFJU
Q0RhdGFDaGFubmVsSWRlbnRpZmllciB7Ci0gICAgUHJvY2Vzc0lkZW50aWZpZXIgcHJvY2Vzc0lk
ZW50aWZpZXI7Ci0gICAgT2JqZWN0SWRlbnRpZmllcjxSVENEYXRhQ2hhbm5lbElkZW50aWZpZXJU
eXBlPiBjaGFubmVsSWRlbnRpZmllcjsKLQotICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZv
aWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKLSAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBz
dGF0aWMgT3B0aW9uYWw8UlRDRGF0YUNoYW5uZWxJZGVudGlmaWVyPiBkZWNvZGUoRGVjb2RlciYp
OwotCi0jaWYgIUxPR19ESVNBQkxFRAotICAgIFN0cmluZyBsb2dTdHJpbmcoKSBjb25zdDsKLSNl
bmRpZgotfTsKLQotc3RydWN0IERldGFjaGVkUlRDRGF0YUNoYW5uZWwgewotICAgIFdURl9NQUtF
X05PTkNPUFlBQkxFKERldGFjaGVkUlRDRGF0YUNoYW5uZWwpOwotICAgIFdURl9NQUtFX0ZBU1Rf
QUxMT0NBVEVEOwotcHVibGljOgotICAgIERldGFjaGVkUlRDRGF0YUNoYW5uZWwoUlRDRGF0YUNo
YW5uZWxJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbGFiZWwsIGNvbnN0IFJU
Q0RhdGFDaGFubmVsSW5pdCYgb3B0aW9ucywgUlRDRGF0YUNoYW5uZWxTdGF0ZSBzdGF0ZSkKLSAg
ICAgICAgOiBpZGVudGlmaWVyKGlkZW50aWZpZXIpCi0gICAgICAgICwgbGFiZWwobGFiZWwuaXNv
bGF0ZWRDb3B5KCkpCi0gICAgICAgICwgb3B0aW9ucyhvcHRpb25zLmlzb2xhdGVkQ29weSgpKQot
ICAgICAgICAsIHN0YXRlKHN0YXRlKQotICAgIHsKLSAgICB9Ci0KLSAgICBzaXplX3QgbWVtb3J5
Q29zdCgpIGNvbnN0IHsgcmV0dXJuIGxhYmVsLnNpemVJbkJ5dGVzKCk7IH0KLQotICAgIFJUQ0Rh
dGFDaGFubmVsSWRlbnRpZmllciBpZGVudGlmaWVyOwotICAgIFN0cmluZyBsYWJlbDsKLSAgICBS
VENEYXRhQ2hhbm5lbEluaXQgb3B0aW9uczsKLSAgICBSVENEYXRhQ2hhbm5lbFN0YXRlIHN0YXRl
IHsgUlRDRGF0YUNoYW5uZWxTdGF0ZTo6Q2xvc2VkIH07Ci19OwotCiBjbGFzcyBSVENEYXRhQ2hh
bm5lbCBmaW5hbCA6IHB1YmxpYyBBY3RpdmVET01PYmplY3QsIHB1YmxpYyBSVENEYXRhQ2hhbm5l
bEhhbmRsZXJDbGllbnQsIHB1YmxpYyBFdmVudFRhcmdldFdpdGhJbmxpbmVEYXRhIHsKICAgICBX
VEZfTUFLRV9JU09fQUxMT0NBVEVEKFJUQ0RhdGFDaGFubmVsKTsKIHB1YmxpYzoKQEAgLTEyMCw2
ICs4OCw4IEBAIHB1YmxpYzoKICAgICB1c2luZyBSVENEYXRhQ2hhbm5lbEhhbmRsZXJDbGllbnQ6
OnJlZjsKICAgICB1c2luZyBSVENEYXRhQ2hhbm5lbEhhbmRsZXJDbGllbnQ6OmRlcmVmOwogCisg
ICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxSVENEYXRhQ2hhbm5lbEhh
bmRsZXI+IGhhbmRsZXJGcm9tSWRlbnRpZmllcihSVENEYXRhQ2hhbm5lbExvY2FsSWRlbnRpZmll
cik7CisKIHByaXZhdGU6CiAgICAgUlRDRGF0YUNoYW5uZWwoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCYsIHN0ZDo6dW5pcXVlX3B0cjxSVENEYXRhQ2hhbm5lbEhhbmRsZXI+JiYsIFN0cmluZyYmLCBS
VENEYXRhQ2hhbm5lbEluaXQmJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vUlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVyLmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi40NmVmNmY4YjBiY2U2MjkyYjlhMDlhZDExNWUyYzRmY2JkZGVlMmJlCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENE
YXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXIuY3BwCkBAIC0wLDAgKzEsMTI4IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICog
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisgKiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJSVENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXIuaCIKKworI2lmIEVOQUJM
RShXRUJfUlRDKQorCisjaW5jbHVkZSAiUlRDRGF0YUNoYW5uZWxIYW5kbGVyQ2xpZW50LmgiCisj
aW5jbHVkZSAiUlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVyQ29ubmVjdGlvbi5oIgorI2luY2x1
ZGUgIlNoYXJlZEJ1ZmZlci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0ZDo6dW5pcXVl
X3B0cjxSVENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXI+IFJUQ0RhdGFDaGFubmVsUmVtb3RlSGFu
ZGxlcjo6Y3JlYXRlKFJUQ0RhdGFDaGFubmVsSWRlbnRpZmllciByZW1vdGVJZGVudGlmaWVyLCBS
ZWZQdHI8UlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVyQ29ubmVjdGlvbj4mJiBjb25uZWN0aW9u
KQoreworICAgIGlmICghY29ubmVjdGlvbikKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAg
cmV0dXJuIG1ha2VVbmlxdWU8UlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVyPihyZW1vdGVJZGVu
dGlmaWVyLCBjb25uZWN0aW9uLnJlbGVhc2VOb25OdWxsKCkpOworfQorCitSVENEYXRhQ2hhbm5l
bFJlbW90ZUhhbmRsZXI6OlJUQ0RhdGFDaGFubmVsUmVtb3RlSGFuZGxlcihSVENEYXRhQ2hhbm5l
bElkZW50aWZpZXIgcmVtb3RlSWRlbnRpZmllciwgUmVmPFJUQ0RhdGFDaGFubmVsUmVtb3RlSGFu
ZGxlckNvbm5lY3Rpb24+JiYgY29ubmVjdGlvbikKKyAgICA6IG1fcmVtb3RlSWRlbnRpZmllcihy
ZW1vdGVJZGVudGlmaWVyKQorICAgICwgbV9jb25uZWN0aW9uKFdURk1vdmUoY29ubmVjdGlvbikp
Cit7Cit9CisKK1JUQ0RhdGFDaGFubmVsUmVtb3RlSGFuZGxlcjo6flJUQ0RhdGFDaGFubmVsUmVt
b3RlSGFuZGxlcigpCit7Cit9CisKK3ZvaWQgUlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVyOjpk
aWRDaGFuZ2VSZWFkeVN0YXRlKFJUQ0RhdGFDaGFubmVsU3RhdGUgc3RhdGUpCit7CisgICAgbV9j
bGllbnQtPmRpZENoYW5nZVJlYWR5U3RhdGUoc3RhdGUpOworfQorCit2b2lkIFJUQ0RhdGFDaGFu
bmVsUmVtb3RlSGFuZGxlcjo6ZGlkUmVjZWl2ZVN0cmluZ0RhdGEoU3RyaW5nJiYgdGV4dCkKK3sK
KyAgICBtX2NsaWVudC0+ZGlkUmVjZWl2ZVN0cmluZ0RhdGEodGV4dCk7Cit9CisKK3ZvaWQgUlRD
RGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVyOjpkaWRSZWNlaXZlUmF3RGF0YShjb25zdCBjaGFyKiBk
YXRhLCBzaXplX3Qgc2l6ZSkKK3sKKyAgICBtX2NsaWVudC0+ZGlkUmVjZWl2ZVJhd0RhdGEoZGF0
YSwgc2l6ZSk7Cit9CisKK3ZvaWQgUlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVyOjpkaWREZXRl
Y3RFcnJvcigpCit7CisgICAgbV9jbGllbnQtPmRpZERldGVjdEVycm9yKCk7Cit9CisKK3ZvaWQg
UlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVyOjpidWZmZXJlZEFtb3VudElzRGVjcmVhc2luZyhz
aXplX3QgYW1vdW50KQoreworICAgIG1fY2xpZW50LT5idWZmZXJlZEFtb3VudElzRGVjcmVhc2lu
ZyhhbW91bnQpOworfQorCit2b2lkIFJUQ0RhdGFDaGFubmVsUmVtb3RlSGFuZGxlcjo6cmVhZHlU
b1NlbmQoKQoreworICAgIG1faXNSZWFkeVRvU2VuZCA9IHRydWU7CisKKyAgICBmb3IgKGF1dG8m
IG1lc3NhZ2UgOiBtX3BlbmRpbmdNZXNzYWdlcykKKyAgICAgICAgbV9jb25uZWN0aW9uLT5zZW5k
RGF0YShtX3JlbW90ZUlkZW50aWZpZXIsIG1lc3NhZ2UuaXNSYXcsIHJlaW50ZXJwcmV0X2Nhc3Q8
Y29uc3QgdW5zaWduZWQgY2hhcio+KG1lc3NhZ2UuYnVmZmVyLT5kYXRhKCkpLCBtZXNzYWdlLmJ1
ZmZlci0+c2l6ZSgpKTsKKyAgICBtX3BlbmRpbmdNZXNzYWdlcy5jbGVhcigpOworCisgICAgaWYg
KG1faXNQZW5kaW5nQ2xvc2UpCisgICAgICAgIG1fY29ubmVjdGlvbi0+Y2xvc2UobV9yZW1vdGVJ
ZGVudGlmaWVyKTsKK30KKwordm9pZCBSVENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXI6OnNldENs
aWVudChSVENEYXRhQ2hhbm5lbEhhbmRsZXJDbGllbnQmIGNsaWVudCwgU2NyaXB0RXhlY3V0aW9u
Q29udGV4dElkZW50aWZpZXIgY29udGV4dElkZW50aWZpZXIpCit7CisgICAgbV9jbGllbnQgPSAm
Y2xpZW50OworICAgIEFTU0VSVChtX2xvY2FsSWRlbnRpZmllci5jaGFubmVsSWRlbnRpZmllcik7
CisgICAgbV9jb25uZWN0aW9uLT5jb25uZWN0VG9Tb3VyY2UoKnRoaXMsIGNvbnRleHRJZGVudGlm
aWVyLCBtX2xvY2FsSWRlbnRpZmllciwgbV9yZW1vdGVJZGVudGlmaWVyKTsKK30KKworYm9vbCBS
VENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXI6OnNlbmRTdHJpbmdEYXRhKGNvbnN0IENTdHJpbmcm
IHRleHQpCit7CisgICAgaWYgKCFtX2lzUmVhZHlUb1NlbmQpIHsKKyAgICAgICAgbV9wZW5kaW5n
TWVzc2FnZXMuYXBwZW5kKE1lc3NhZ2UgeyBmYWxzZSwgU2hhcmVkQnVmZmVyOjpjcmVhdGUodGV4
dC5kYXRhKCksIHRleHQubGVuZ3RoKCkpIH0pOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9
CisgICAgbV9jb25uZWN0aW9uLT5zZW5kRGF0YShtX3JlbW90ZUlkZW50aWZpZXIsIGZhbHNlLCBy
ZWludGVycHJldF9jYXN0PGNvbnN0IHVuc2lnbmVkIGNoYXIqPih0ZXh0LmRhdGEoKSksIHRleHQu
bGVuZ3RoKCkpOworICAgIHJldHVybiB0cnVlOworfQorCitib29sIFJUQ0RhdGFDaGFubmVsUmVt
b3RlSGFuZGxlcjo6c2VuZFJhd0RhdGEoY29uc3QgY2hhciogZGF0YSwgc2l6ZV90IHNpemUpCit7
CisgICAgaWYgKCFtX2lzUmVhZHlUb1NlbmQpIHsKKyAgICAgICAgbV9wZW5kaW5nTWVzc2FnZXMu
YXBwZW5kKE1lc3NhZ2UgeyB0cnVlLCBTaGFyZWRCdWZmZXI6OmNyZWF0ZShkYXRhLCBzaXplKSB9
KTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIG1fY29ubmVjdGlvbi0+c2VuZERh
dGEobV9yZW1vdGVJZGVudGlmaWVyLCB0cnVlLCByZWludGVycHJldF9jYXN0PGNvbnN0IHVuc2ln
bmVkIGNoYXIqPihkYXRhKSwgc2l6ZSk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK3ZvaWQgUlRD
RGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVyOjpjbG9zZSgpCit7CisgICAgaWYgKCFtX2lzUmVhZHlU
b1NlbmQpIHsKKyAgICAgICAgbV9pc1BlbmRpbmdDbG9zZSA9IHRydWU7CisgICAgICAgIHJldHVy
bjsKKyAgICB9CisgICAgbV9jb25uZWN0aW9uLT5jbG9zZShtX3JlbW90ZUlkZW50aWZpZXIpOwor
fQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCX1JUQykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRGF0YUNo
YW5uZWxSZW1vdGVIYW5kbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L1JUQ0RhdGFDaGFubmVsUmVtb3RlSGFuZGxlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNhMWRjZGJjMWNlOTVm
MjU4NDdkYmJkOTZlZmRiYzBiZDhkNGQxYTEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsUmVtb3RlSGFuZGxlci5oCkBA
IC0wLDAgKzEsODUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KKyAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUworICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUo
V0VCX1JUQykKKworI2luY2x1ZGUgIlJUQ0RhdGFDaGFubmVsSGFuZGxlci5oIgorI2luY2x1ZGUg
IlJUQ0RhdGFDaGFubmVsSWRlbnRpZmllci5oIgorI2luY2x1ZGUgIlJUQ0RhdGFDaGFubmVsU3Rh
dGUuaCIKKyNpbmNsdWRlIDx3dGYvRmFzdE1hbGxvYy5oPgorI2luY2x1ZGUgPHd0Zi9GdW5jdGlv
bi5oPgorI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CisjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBSVENEYXRhQ2hhbm5lbEhhbmRsZXJDbGllbnQ7
CitjbGFzcyBSVENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXJDb25uZWN0aW9uOworY2xhc3MgU2hh
cmVkQnVmZmVyOworCitjbGFzcyBSVENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXIgZmluYWwgOiBw
dWJsaWMgUlRDRGF0YUNoYW5uZWxIYW5kbGVyLCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8UlRDRGF0
YUNoYW5uZWxSZW1vdGVIYW5kbGVyPiB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7Citw
dWJsaWM6CisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxSVENEYXRhQ2hhbm5lbFJlbW90ZUhh
bmRsZXI+IGNyZWF0ZShSVENEYXRhQ2hhbm5lbElkZW50aWZpZXIsIFJlZlB0cjxSVENEYXRhQ2hh
bm5lbFJlbW90ZUhhbmRsZXJDb25uZWN0aW9uPiYmKTsKKyAgICBSVENEYXRhQ2hhbm5lbFJlbW90
ZUhhbmRsZXIoUlRDRGF0YUNoYW5uZWxJZGVudGlmaWVyLCBSZWY8UlRDRGF0YUNoYW5uZWxSZW1v
dGVIYW5kbGVyQ29ubmVjdGlvbj4mJik7CisgICAgflJUQ0RhdGFDaGFubmVsUmVtb3RlSGFuZGxl
cigpOworCisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkaWRDaGFuZ2VSZWFkeVN0YXRlKFJUQ0Rh
dGFDaGFubmVsU3RhdGUpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGlkUmVjZWl2ZVN0cmlu
Z0RhdGEoU3RyaW5nJiYpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGlkUmVjZWl2ZVJhd0Rh
dGEoY29uc3QgY2hhciosIHNpemVfdCk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkaWREZXRl
Y3RFcnJvcigpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgYnVmZmVyZWRBbW91bnRJc0RlY3Jl
YXNpbmcoc2l6ZV90KTsKKworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVhZHlUb1NlbmQoKTsK
KworICAgIHZvaWQgc2V0TG9jYWxJZGVudGlmaWVyKFJUQ0RhdGFDaGFubmVsSWRlbnRpZmllciBs
b2NhbElkZW50aWZpZXIpIHsgbV9sb2NhbElkZW50aWZpZXIgPSBsb2NhbElkZW50aWZpZXI7IH0K
KworcHJpdmF0ZToKKyAgICAvLyBSVENEYXRhQ2hhbm5lbEhhbmRsZXIKKyAgICB2b2lkIHNldENs
aWVudChSVENEYXRhQ2hhbm5lbEhhbmRsZXJDbGllbnQmLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0
SWRlbnRpZmllcikgZmluYWw7CisgICAgYm9vbCBzZW5kU3RyaW5nRGF0YShjb25zdCBDU3RyaW5n
JikgZmluYWw7CisgICAgYm9vbCBzZW5kUmF3RGF0YShjb25zdCBjaGFyKiwgc2l6ZV90KSBmaW5h
bDsKKyAgICB2b2lkIGNsb3NlKCkgZmluYWw7CisKKyAgICBSVENEYXRhQ2hhbm5lbElkZW50aWZp
ZXIgbV9yZW1vdGVJZGVudGlmaWVyOworICAgIFJUQ0RhdGFDaGFubmVsSWRlbnRpZmllciBtX2xv
Y2FsSWRlbnRpZmllcjsKKworICAgIFJUQ0RhdGFDaGFubmVsSGFuZGxlckNsaWVudCogbV9jbGll
bnQgeyBudWxscHRyIH07CisgICAgUmVmPFJUQ0RhdGFDaGFubmVsUmVtb3RlSGFuZGxlckNvbm5l
Y3Rpb24+IG1fY29ubmVjdGlvbjsKKworICAgIHN0cnVjdCBNZXNzYWdlIHsKKyAgICAgICAgYm9v
bCBpc1JhdyB7IGZhbHNlIH07CisgICAgICAgIFJlZjxTaGFyZWRCdWZmZXI+IGJ1ZmZlcjsKKyAg
ICB9OworICAgIFZlY3RvcjxNZXNzYWdlPiBtX3BlbmRpbmdNZXNzYWdlczsKKyAgICBib29sIG1f
aXNQZW5kaW5nQ2xvc2UgeyBmYWxzZSB9OworICAgIGJvb2wgbV9pc1JlYWR5VG9TZW5kIHsgZmFs
c2UgfTsKKworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxF
KFdFQl9SVEMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L1JUQ0RhdGFDaGFubmVsUmVtb3RlU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vUlRDRGF0YUNoYW5uZWxSZW1vdGVTb3VyY2UuY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVh
YTNhOGYwNTgzOGNhZjNhZThmNjM0ZmNhMDczNzgwMTRmNzY1OTAKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsUmVtb3Rl
U291cmNlLmNwcApAQCAtMCwwICsxLDQ5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQor
ICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisgKiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJSVENEYXRhQ2hhbm5lbFJlbW90ZVNvdXJjZS5oIgorCisjaWYgRU5B
QkxFKFdFQl9SVEMpCisKKyNpbmNsdWRlICJSVENEYXRhQ2hhbm5lbEhhbmRsZXIuaCIKKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitSVENEYXRhQ2hhbm5lbFJlbW90ZVNvdXJjZTo6UlRDRGF0YUNo
YW5uZWxSZW1vdGVTb3VyY2UoUlRDRGF0YUNoYW5uZWxJZGVudGlmaWVyIGlkZW50aWZpZXIsIFVu
aXF1ZVJlZjxSVENEYXRhQ2hhbm5lbEhhbmRsZXI+JiYgaGFuZGxlciwgUmVmPFJUQ0RhdGFDaGFu
bmVsUmVtb3RlU291cmNlQ29ubmVjdGlvbj4mJiBjb25uZWN0aW9uKQorICAgIDogbV9pZGVudGlm
aWVyKGlkZW50aWZpZXIpCisgICAgLCBtX2hhbmRsZXIoV1RGTW92ZShoYW5kbGVyKSkKKyAgICAs
IG1fY29ubmVjdGlvbihXVEZNb3ZlKGNvbm5lY3Rpb24pKQoreworICAgIC8vIEZJWE1FOiBXZSBz
aG91bGQgYXNrIG1faGFuZGxlciB0byBjYWxsIHVzIG9uIGl0cyBvd24gYmFja2dyb3VuZCB0aHJl
YWQuCisgICAgbV9oYW5kbGVyLT5zZXRDbGllbnQoKnRoaXMsIHsgfSk7Cit9CisKK1JUQ0RhdGFD
aGFubmVsUmVtb3RlU291cmNlOjp+UlRDRGF0YUNoYW5uZWxSZW1vdGVTb3VyY2UoKQoreworfQor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCX1JUQykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRGF0YUNoYW5u
ZWxSZW1vdGVTb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRD
RGF0YUNoYW5uZWxSZW1vdGVTb3VyY2UuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMmY5NDNiZTVhZDg3ZmM3MDAx
MzY3MmNmYzljMzdjZDQ3NGY2NjgwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbFJlbW90ZVNvdXJjZS5oCkBAIC0wLDAg
KzEsNjMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisg
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04KKyAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUworICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoV0VCX1JU
QykKKworI2luY2x1ZGUgIlJUQ0RhdGFDaGFubmVsSGFuZGxlckNsaWVudC5oIgorI2luY2x1ZGUg
IlJUQ0RhdGFDaGFubmVsSWRlbnRpZmllci5oIgorI2luY2x1ZGUgIlJUQ0RhdGFDaGFubmVsUmVt
b3RlU291cmNlQ29ubmVjdGlvbi5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFJU
Q0RhdGFDaGFubmVsSGFuZGxlcjsKKworY2xhc3MgUlRDRGF0YUNoYW5uZWxSZW1vdGVTb3VyY2Ug
OiBwdWJsaWMgUlRDRGF0YUNoYW5uZWxIYW5kbGVyQ2xpZW50IHsKK3B1YmxpYzoKKyAgICBzdGF0
aWMgUmVmPFJUQ0RhdGFDaGFubmVsUmVtb3RlU291cmNlPiBjcmVhdGUoUlRDRGF0YUNoYW5uZWxJ
ZGVudGlmaWVyIGlkZW50aWZpZXIsIFVuaXF1ZVJlZjxSVENEYXRhQ2hhbm5lbEhhbmRsZXI+JiYg
aGFuZGxlciwgUmVmPFJUQ0RhdGFDaGFubmVsUmVtb3RlU291cmNlQ29ubmVjdGlvbj4mJiBjb25u
ZWN0aW9uKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IFJUQ0RhdGFDaGFubmVsUmVtb3RlU291cmNl
KGlkZW50aWZpZXIsIFdURk1vdmUoaGFuZGxlciksIFdURk1vdmUoY29ubmVjdGlvbikpKTsgfQor
ICAgIH5SVENEYXRhQ2hhbm5lbFJlbW90ZVNvdXJjZSgpOworCisgICAgdm9pZCBzZW5kU3RyaW5n
RGF0YShjb25zdCBDU3RyaW5nJiB0ZXh0KSB7IG1faGFuZGxlci0+c2VuZFN0cmluZ0RhdGEodGV4
dCk7IH0KKyAgICB2b2lkIHNlbmRSYXdEYXRhKGNvbnN0IGNoYXIqIGRhdGEsIHNpemVfdCBzaXpl
KSB7IG1faGFuZGxlci0+c2VuZFJhd0RhdGEoZGF0YSwgc2l6ZSk7IH0KKyAgICB2b2lkIGNsb3Nl
KCkgeyBtX2hhbmRsZXItPmNsb3NlKCk7IH0KKworcHJpdmF0ZToKKyAgICBXRUJDT1JFX0VYUE9S
VCBSVENEYXRhQ2hhbm5lbFJlbW90ZVNvdXJjZShSVENEYXRhQ2hhbm5lbElkZW50aWZpZXIsIFVu
aXF1ZVJlZjxSVENEYXRhQ2hhbm5lbEhhbmRsZXI+JiYsIFJlZjxSVENEYXRhQ2hhbm5lbFJlbW90
ZVNvdXJjZUNvbm5lY3Rpb24+JiYpOworCisgICAgLy8gUlRDRGF0YUNoYW5uZWxIYW5kbGVyQ2xp
ZW50CisgICAgdm9pZCBkaWRDaGFuZ2VSZWFkeVN0YXRlKFJUQ0RhdGFDaGFubmVsU3RhdGUgc3Rh
dGUpIGZpbmFsIHsgbV9jb25uZWN0aW9uLT5kaWRDaGFuZ2VSZWFkeVN0YXRlKG1faWRlbnRpZmll
ciwgc3RhdGUpOyB9CisgICAgdm9pZCBkaWRSZWNlaXZlU3RyaW5nRGF0YShjb25zdCBTdHJpbmcm
IHRleHQpIGZpbmFsIHsgbV9jb25uZWN0aW9uLT5kaWRSZWNlaXZlU3RyaW5nRGF0YShtX2lkZW50
aWZpZXIsIHRleHQpOyB9CisgICAgdm9pZCBkaWRSZWNlaXZlUmF3RGF0YShjb25zdCBjaGFyKiBk
YXRhLCBzaXplX3Qgc2l6ZSkgZmluYWwgeyBtX2Nvbm5lY3Rpb24tPmRpZFJlY2VpdmVSYXdEYXRh
KG1faWRlbnRpZmllciwgZGF0YSwgc2l6ZSk7IH0KKyAgICB2b2lkIGRpZERldGVjdEVycm9yKCkg
ZmluYWwgeyBtX2Nvbm5lY3Rpb24tPmRpZERldGVjdEVycm9yKG1faWRlbnRpZmllcik7IH0KKyAg
ICB2b2lkIGJ1ZmZlcmVkQW1vdW50SXNEZWNyZWFzaW5nKHNpemVfdCBhbW91bnQpIGZpbmFsIHsg
bV9jb25uZWN0aW9uLT5idWZmZXJlZEFtb3VudElzRGVjcmVhc2luZyhtX2lkZW50aWZpZXIsIGFt
b3VudCk7IH0KKworICAgIFJUQ0RhdGFDaGFubmVsSWRlbnRpZmllciBtX2lkZW50aWZpZXI7Cisg
ICAgVW5pcXVlUmVmPFJUQ0RhdGFDaGFubmVsSGFuZGxlcj4gbV9oYW5kbGVyOworICAgIFJlZjxS
VENEYXRhQ2hhbm5lbFJlbW90ZVNvdXJjZUNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKK307CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJfUlRDKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGli
V2ViUlRDRGF0YUNoYW5uZWxIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ0RhdGFDaGFubmVsSGFuZGxlci5jcHAKaW5kZXgg
N2Y1ODJjYTBkYzdkYWIxYWNiY2JjOTBhNzg2NWRiODM2MjBkYTEyOC4uMmYzZDA5ZTdjOTE0ZTFi
ZjFhNGUwZjk0ODgxMTJhNzZkNjU4YmViMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDRGF0YUNoYW5uZWxIYW5kbGVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJX
ZWJSVENEYXRhQ2hhbm5lbEhhbmRsZXIuY3BwCkBAIC0xOTIsOCArMTkyLDEwIEBAIHZvaWQgTGli
V2ViUlRDRGF0YUNoYW5uZWxIYW5kbGVyOjpwb3N0VGFzayhGdW5jdGlvbjx2b2lkKCk+JiYgZnVu
Y3Rpb24pCiB7CiAgICAgQVNTRVJUKG1fY2xpZW50TG9jay5pc0hlbGQoKSk7CiAKLSAgICBpZiAo
IW1fY29udGV4dElkZW50aWZpZXIpCisgICAgaWYgKCFtX2NvbnRleHRJZGVudGlmaWVyKSB7CiAg
ICAgICAgIGNhbGxPbk1haW5UaHJlYWQoV1RGTW92ZShmdW5jdGlvbikpOworICAgICAgICByZXR1
cm47CisgICAgfQogICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OnBvc3RUYXNrVG8obV9jb250
ZXh0SWRlbnRpZmllciwgV1RGTW92ZShmdW5jdGlvbikpOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldE1lc3NhZ2luZ1Byb3h5LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0TWVzc2FnaW5n
UHJveHkuY3BwCmluZGV4IDZkODQ1NWQzMTMwZWU3ZDY1ZGVmNDJkNDhlNjA2MTU1NWZkNThiZGEu
LmU5ZjUxOTdjNGYzMjhkMzk3MmNkMWRlZmU0OWVlODEzNzhkZjJkNmMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHku
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0TWVz
c2FnaW5nUHJveHkuY3BwCkBAIC0zNyw2ICszNyw4IEBACiAjaW5jbHVkZSAiQ2FjaGVTdG9yYWdl
Q29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIK
KyNpbmNsdWRlICJMaWJXZWJSVENQcm92aWRlci5oIgorI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNs
dWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIldvcmtsZXRQYXJhbWV0ZXJzLmgiCiAjaW5jbHVk
ZSAiV29ya2xldFBlbmRpbmdUYXNrcy5oIgpAQCAtODUsNiArODcsMTQgQEAgUmVmUHRyPENhY2hl
U3RvcmFnZUNvbm5lY3Rpb24+IEF1ZGlvV29ya2xldE1lc3NhZ2luZ1Byb3h5OjpjcmVhdGVDYWNo
ZVN0b3JhZ2VDb24KICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAorUmVmUHRyPFJUQ0RhdGFDaGFu
bmVsUmVtb3RlSGFuZGxlckNvbm5lY3Rpb24+IEF1ZGlvV29ya2xldE1lc3NhZ2luZ1Byb3h5Ojpj
cmVhdGVSVENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXJDb25uZWN0aW9uKCkKK3sKKyAgICBBU1NF
UlQoaXNNYWluVGhyZWFkKCkpOworICAgIGlmICghbV9kb2N1bWVudC0+cGFnZSgpKQorICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKKyAgICByZXR1cm4gbV9kb2N1bWVudC0+cGFnZSgpLT5saWJXZWJS
VENQcm92aWRlcigpLmNyZWF0ZVJUQ0RhdGFDaGFubmVsUmVtb3RlSGFuZGxlckNvbm5lY3Rpb24o
KTsKK30KKwogdm9pZCBBdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eTo6cG9zdFRhc2tUb0xvYWRl
cihTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpUYXNrJiYgdGFzaykKIHsKICAgICBtX2RvY3VtZW50
LT5wb3N0VGFzayhXVEZNb3ZlKHRhc2spKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHkuaCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHkuaAppbmRleCBh
NmJjODU4OTE3YTVkMGViNzUwNGU2NDY4ZDA4YWY1NGUwMjU5YjZiLi5jMmVjNGEyNjFlM2MxY2M0
MWI0ZDZlN2IyZmRlZjExYTA1MGNhNWM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldE1lc3NhZ2luZ1Byb3h5LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eS5oCkBAIC01
OSw2ICs1OSw3IEBAIHByaXZhdGU6CiAKICAgICAvLyBXb3JrZXJMb2FkZXJQcm94eS4KICAgICBS
ZWZQdHI8Q2FjaGVTdG9yYWdlQ29ubmVjdGlvbj4gY3JlYXRlQ2FjaGVTdG9yYWdlQ29ubmVjdGlv
bigpIGZpbmFsOworICAgIFJlZlB0cjxSVENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXJDb25uZWN0
aW9uPiBjcmVhdGVSVENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXJDb25uZWN0aW9uKCkgZmluYWw7
CiAgICAgdm9pZCBwb3N0VGFza1RvTG9hZGVyKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlRhc2sm
JikgZmluYWw7CiAgICAgYm9vbCBwb3N0VGFza0Zvck1vZGVUb1dvcmtlck9yV29ya2xldEdsb2Jh
bFNjb3BlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlRhc2smJiwgY29uc3QgU3RyaW5nJiBtb2Rl
KSBmaW5hbDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3Vy
Y2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCA0OTMxYmQwYzdiZDM3ODAxZjZjM2M1M2ExYTM5
ODA0NTM4MTEzNTc3Li4xNjZiMzFmYzMwYWIyNmVhMDhkODg0NmI4ODVlMGE1ODIyOGY2MmUxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Tb3VyY2VzLnR4dApAQCAtMTYwLDYgKzE2MCw4IEBAIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRD
RFRNRlNlbmRlci5jcHAKIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRFRNRlRvbmVDaGFuZ2VFdmVu
dC5jcHAKIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRGF0YUNoYW5uZWwuY3BwCiBNb2R1bGVzL21l
ZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsRXZlbnQuY3BwCitNb2R1bGVzL21lZGlhc3RyZWFtL1JU
Q0RhdGFDaGFubmVsUmVtb3RlSGFuZGxlci5jcHAKK01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRGF0
YUNoYW5uZWxSZW1vdGVTb3VyY2UuY3BwCiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0VuY29kZWRB
dWRpb0ZyYW1lLmNwcAogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENFbmNvZGVkRnJhbWUuY3BwCiBN
b2R1bGVzL21lZGlhc3RyZWFtL1JUQ0VuY29kZWRWaWRlb0ZyYW1lLmNwcApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDE4MmI5YTVh
NTA0Y2E4NzY4YzhmYjlkYjc5NTBjMjFiMjBjY2Y0NzguLjlkYjNiODJmZDVmNTU1N2QyMTBkMjI4
ODI5NTNjNDhiNGFlMmJhNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTkzMiw3ICs5MzIsNyBAQAogCQkzMTZEQ0I0QzFFNzkx
MEE2MDAxQjVGODcgLyogSlNSVENJY2VDb25uZWN0aW9uU3RhdGUuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxNkRDQjQ2MUU3OTEwQTYwMDFCNUY4NyAv
KiBKU1JUQ0ljZUNvbm5lY3Rpb25TdGF0ZS5oICovOyB9OwogCQkzMTZEQ0I0RTFFNzkxMEE2MDAx
QjVGODcgLyogSlNSVENJY2VHYXRoZXJpbmdTdGF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE2RENCNDgxRTc5MTBBNjAwMUI1Rjg3IC8qIEpTUlRD
SWNlR2F0aGVyaW5nU3RhdGUuaCAqLzsgfTsKIAkJMzE2RENCNTAxRTc5MTBBNjAwMUI1Rjg3IC8q
IEpTUlRDU2lnbmFsaW5nU3RhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDMxNkRDQjRBMUU3OTEwQTYwMDFCNUY4NyAvKiBKU1JUQ1NpZ25hbGluZ1N0
YXRlLmggKi87IH07Ci0JCTMxNkRFNzAyMUU4M0FFMUQwMDg0QzI2MSAvKiBSVENEYXRhQ2hhbm5l
bFN0YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAz
MTZERTcwMTFFODNBRTFEMDA4NEMyNjEgLyogUlRDRGF0YUNoYW5uZWxTdGF0ZS5oICovOyB9Owor
CQkzMTZERTcwMjFFODNBRTFEMDA4NEMyNjEgLyogUlRDRGF0YUNoYW5uZWxTdGF0ZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE2REU3MDExRTgzQUUx
RDAwODRDMjYxIC8qIFJUQ0RhdGFDaGFubmVsU3RhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkzMTZGRTA3MjBFNkNDQkVFMDBCRjYwODggLyog
SlNDU1NLZXlmcmFtZVJ1bGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDMxNkZFMDZFMEU2Q0NCRUUwMEJGNjA4OCAvKiBKU0NTU0tleWZyYW1lUnVsZS5o
ICovOyB9OwogCQkzMTZGRTA3NDBFNkNDQkVFMDBCRjYwODggLyogSlNDU1NLZXlmcmFtZXNSdWxl
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTZGRTA3
MDBFNkNDQkVFMDBCRjYwODggLyogSlNDU1NLZXlmcmFtZXNSdWxlLmggKi87IH07CiAJCTMxNzQx
QUFEMTY2MzY2MDkwMDhBNUI3RSAvKiBTaW11bGF0ZWRDbGlja09wdGlvbnMuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxNzQxQUFCMTY2MzVFNDUwMDhB
NUI3RSAvKiBTaW11bGF0ZWRDbGlja09wdGlvbnMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTAzNiw2ICsxMDM2LDkgQEAKIAkJNDExMDNBQUMx
RTM5NzkxMDAwNzY5RjE0IC8qIFJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZUNvY29hLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTEwM0FBODFFMzk3
OTBBMDA3NjlGMTQgLyogUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlQ29jb2EuaCAqLzsgfTsK
IAkJNDExMDNBQUQxRTM5NzkxMDAwNzY5RjAzIC8qIFJlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJj
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDExMDNB
QTkxRTM5NzkwQTAwNzY5RjAzIC8qIFJlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZS5oICovOyB9
OwogCQk0MTEwM0FBRDFFMzk3OTEwMDA3NjlGMTQgLyogUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291
cmNlQ29jb2EuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDQxMTAzQUE5MUUzOTc5MEEwMDc2OUYxNCAvKiBSZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2VD
b2NvYS5oICovOyB9OworCQk0MTEyMjNCQTI2MDI0NEZFMDBCMEEwQjYgLyogU2NyaXB0RXhlY3V0
aW9uQ29udGV4dElkZW50aWZpZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDQxMTIyM0I4MjYwMjQ0RkUwMEIwQTBCNiAvKiBTY3JpcHRFeGVjdXRpb25D
b250ZXh0SWRlbnRpZmllci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CisJCTQxMTIyM0JFMjYwMjVCQzEwMEIwQTBCNiAvKiBSVENEYXRhQ2hhbm5lbFJl
bW90ZVNvdXJjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNDE2RURCRUYyNUZGQjIyNDAwMDkyNjc1IC8qIFJUQ0RhdGFDaGFubmVsUmVtb3RlU291cmNl
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNDEx
MjIzQzUyNjAzNTY3RDAwQjBBMEI2IC8qIERldGFjaGVkUlRDRGF0YUNoYW5uZWwuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxMTIyM0MzMjYwMzU2N0Mw
MEIwQTBCNiAvKiBEZXRhY2hlZFJUQ0RhdGFDaGFubmVsLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDExMkI1NDMxRjlGOUNBMDAwRTY3ODc1IC8q
IFNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNDExMkI1M0YxRjlGOUM5QjAwRTY3ODc1IC8qIFNlcnZpY2VXb3Jr
ZXJUaHJlYWRQcm94eS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTQxMTRGRTMyMjVCRUJEMTkwMDlEOUYyMCAvKiBSVENSdGNwUGFyYW1ldGVycy5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDExNEZFMkYy
NUJFQkQxODAwOUQ5RjIwIC8qIFJUQ1J0Y3BQYXJhbWV0ZXJzLmggKi87IH07CiAJCTQxMjMwODFC
MTM4QzQyOTcwMEJDQ0ZDQSAvKiBXZWJDb3JlLmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRjE5QjFBMDgyNDVFNUEwMDFFOUFCQyAv
KiBXZWJDb3JlLmZyYW1ld29yayAqLzsgfTsKQEAgLTEwNjEsNyArMTA2NCw3IEBACiAJCTQxM0M4
QjMzMjU1MkYyN0QwMEU2NTA1NSAvKiBSVENSdHBTZW5kZXJXaXRoVHJhbnNmb3JtLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTNDOEIyRTI1NTJGMjdC
MDBFNjUwNTUgLyogUlRDUnRwU2VuZGVyV2l0aFRyYW5zZm9ybS5oICovOyB9OwogCQk0MTNDOEIz
NDI1NTJGMjdEMDBFNjUwNTUgLyogUlRDUnRwVHJhbnNmb3JtLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTNDOEIyRjI1NTJGMjdCMDBFNjUwNTUgLyog
UlRDUnRwVHJhbnNmb3JtLmggKi87IH07CiAJCTQxM0M4QjM1MjU1MkYyN0QwMEU2NTA1NSAvKiBS
VENSdHBSZWNlaXZlcldpdGhUcmFuc2Zvcm0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDQxM0M4QjMwMjU1MkYyN0MwMEU2NTA1NSAvKiBSVENSdHBSZWNl
aXZlcldpdGhUcmFuc2Zvcm0uaCAqLzsgfTsKLQkJNDEzQ0MxMUQyNUU3RDk4RTAwRDU5QzRCIC8q
IFJUQ1ByaW9yaXR5VHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNDEzQ0MxMUMyNUU3RDk4RDAwRDU5QzRCIC8qIFJUQ1ByaW9yaXR5VHlwZS5oICov
OyB9OworCQk0MTNDQzExRDI1RTdEOThFMDBENTlDNEIgLyogUlRDUHJpb3JpdHlUeXBlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTNDQzExQzI1RTdE
OThEMDBENTlDNEIgLyogUlRDUHJpb3JpdHlUeXBlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDEzQ0NENEEyMERFMDM0RjAwNjVBMjFBIC8qIE1v
Y2tNZWRpYURldmljZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNDEzQ0NENDgyMERFMDEzQzAwNjVBMjFBIC8qIE1vY2tNZWRpYURldmljZS5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQxM0UwMDc5MURC
MEU0RjIwMDIzNDFEMiAvKiBNZW1vcnlSZWxlYXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTNFMDA3ODFEQjBFNERFMDAyMzQxRDIgLyogTWVtb3J5
UmVsZWFzZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTQxNDQ2MEEyMjQxMjk5NDUwMDgxNEJFNyAvKiBNZWRpYVNlc3Npb25JZGVudGlmaWVyLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTQ0NjBBMDI0
MTI5OTQxMDA4MTRCRTcgLyogTWVkaWFTZXNzaW9uSWRlbnRpZmllci5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0xMDk4LDYgKzExMDEsMTAgQEAK
IAkJNDE2RTZGRTkxQkJEMTJFNTAwMEE2MDQzIC8qIFJlYWRhYmxlU3RyZWFtQnVpbHRpbnMuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlCMDNEODA2MUJC
MzExMEQwMEI3NjREOCAvKiBSZWFkYWJsZVN0cmVhbUJ1aWx0aW5zLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDE2RTZGRTkxQkJEMTJFNTAwMEE2
MDUzIC8qIFdyaXRhYmxlU3RyZWFtQnVpbHRpbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlCMDNEODA2MUJCMzExMEQwMEI3NjRFOCAvKiBXcml0YWJs
ZVN0cmVhbUJ1aWx0aW5zLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJNDE2RUNBRTUyNUI1OENDNDAwQjM0REE1IC8qIE1lZGlhU2Vzc2lvbkdyb3Vw
SWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNDE2RUNBRTMyNUI1OENDNDAwQjM0REE1IC8qIE1lZGlhU2Vzc2lvbkdyb3VwSWRlbnRpZmll
ci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTQx
NkVEQkY2MjYwMEQ2NzkwMDA5MjY3NSAvKiBSVENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXIuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxNkVEQkY0MjYw
MEQ2NzgwMDA5MjY3NSAvKiBSVENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXIuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk0MTZFREMwMDI2MDBFNzg4
MDAwOTI2NzUgLyogUlRDRGF0YUNoYW5uZWxJZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTZFREJGRjI2MDBFNzg3MDAwOTI2NzUgLyog
UlRDRGF0YUNoYW5uZWxJZGVudGlmaWVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKKwkJNDE2RURDMDIyNjAwRTdCMDAwMDkyNjc1IC8qIFJUQ0RhdGFD
aGFubmVsUmVtb3RlSGFuZGxlckNvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxNkVEQzAxMjYwMEU3QjAwMDA5MjY3NSAvKiBSVENEYXRh
Q2hhbm5lbFJlbW90ZUhhbmRsZXJDb25uZWN0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNDE2RURDMDQyNjAwRTgxMDAwMDkyNjc1IC8qIFJU
Q0RhdGFDaGFubmVsUmVtb3RlU291cmNlQ29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE2RURDMDMyNjAwRTgwRjAwMDkyNjc1IC8qIFJU
Q0RhdGFDaGFubmVsUmVtb3RlU291cmNlQ29ubmVjdGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQxNkZEMjVGMjQwRkE0RTUwMDY2NjFEOCAv
KiBOb3dQbGF5aW5nSW5mby5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNDE2RkQyNUQyNDBFRTFBRTAwNjY2MUQ4IC8qIE5vd1BsYXlpbmdJbmZvLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDE3MjUzQUIx
MzU0QkJCQzAwMzYwRjJBIC8qIE1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxNzI1M0E5
MTM1NEJCQkMwMDM2MEYyQSAvKiBNZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50
LmggKi87IH07CiAJCTQxNzYxMkFGMUUzQTk5NDAwMEMzRDgxRCAvKiBMaWJXZWJSVENNZWRpYUVu
ZHBvaW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDQxNzYxMkFCMUUzQTk5M0IwMEMzRDgxRCAvKiBMaWJXZWJSVENNZWRpYUVuZHBvaW50LmNwcCAq
LzsgfTsKQEAgLTc2NDcsNiArNzY1NCw4IEBACiAJCTQxMTAzQUFBMUUzOTc5MEEwMDc2OUYxNCAv
KiBSZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2VDb2NvYS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBSZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2VDb2NvYS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMTE0QTdBMjMxN0IzOUUwMEI1NjAwNyAv
KiBXb3JrZXJNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXb3Jr
ZXJNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk0MTExNEE3QzIzMTdCMzlFMDBCNTYwMDcgLyogV29ya2VyTWVzc2FnZVBvcnRDaGFubmVs
UHJvdmlkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV29ya2VyTWVzc2FnZVBvcnRDaGFubmVs
UHJvdmlkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTEyMjNCODI2MDI0
NEZFMDBCMEEwQjYgLyogU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZp
ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDExMjIzQzMyNjAzNTY3QzAwQjBB
MEI2IC8qIERldGFjaGVkUlRDRGF0YUNoYW5uZWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gRGV0YWNoZWRSVENEYXRhQ2hhbm5lbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk0MTEyQjUzRjFGOUY5QzlCMDBFNjc4NzUgLyogU2VydmljZVdvcmtlclRocmVhZFBy
b3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNlcnZpY2VXb3JrZXJUaHJl
YWRQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTEyQjU0MTFGOUY5QzlD
MDBFNjc4NzUgLyogU2VydmljZVdvcmtlclRocmVhZFByb3h5LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMTRGRTJGMjVCRUJEMTgwMDlEOUYyMCAvKiBSVENS
dGNwUGFyYW1ldGVycy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSVENSdGNw
UGFyYW1ldGVycy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNzc5Myw2ICs3ODAy
LDEzIEBACiAJCTQxNkUwQjM3MjA5QkMzQzIwMDRBOTVEOSAvKiBGZXRjaElkZW50aWZpZXIuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRmV0Y2hJZGVudGlmaWVyLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxNkUyOUE1MTAyRkE5NjIwMDdGQzE0RSAvKiBXb3Jr
ZXJSZXBvcnRpbmdQcm94eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXb3Jr
ZXJSZXBvcnRpbmdQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTZFQ0FF
MzI1QjU4Q0M0MDBCMzREQTUgLyogTWVkaWFTZXNzaW9uR3JvdXBJZGVudGlmaWVyLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhU2Vzc2lvbkdyb3VwSWRlbnRpZmllci5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTZFREJFRDI1RkZCMjI0MDAwOTI2NzUg
LyogUlRDRGF0YUNoYW5uZWxSZW1vdGVTb3VyY2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gUlRDRGF0YUNoYW5uZWxSZW1vdGVTb3VyY2UuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk0MTZFREJFRjI1RkZCMjI0MDAwOTI2NzUgLyogUlRDRGF0YUNo
YW5uZWxSZW1vdGVTb3VyY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUlRD
RGF0YUNoYW5uZWxSZW1vdGVTb3VyY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
NDE2RURCRjQyNjAwRDY3ODAwMDkyNjc1IC8qIFJUQ0RhdGFDaGFubmVsUmVtb3RlSGFuZGxlci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSVENEYXRhQ2hhbm5lbFJlbW90ZUhh
bmRsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDE2RURCRjcyNjAwRDc2MzAw
MDkyNjc1IC8qIFJUQ0RhdGFDaGFubmVsUmVtb3RlSGFuZGxlci5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSVENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXIuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTZFREJGRjI2MDBFNzg3MDAwOTI2NzUgLyog
UlRDRGF0YUNoYW5uZWxJZGVudGlmaWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFJUQ0RhdGFDaGFubmVsSWRlbnRpZmllci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk0MTZFREMwMTI2MDBFN0IwMDAwOTI2NzUgLyogUlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5k
bGVyQ29ubmVjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSVENEYXRh
Q2hhbm5lbFJlbW90ZUhhbmRsZXJDb25uZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTQxNkVEQzAzMjYwMEU4MEYwMDA5MjY3NSAvKiBSVENEYXRhQ2hhbm5lbFJlbW90ZVNv
dXJjZUNvbm5lY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUlRDRGF0
YUNoYW5uZWxSZW1vdGVTb3VyY2VDb25uZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTQxNkY4MDc5MjQ1MDlGMzIwMEI2OEYwMiAvKiBXaW5kb3dEaXNwbGF5Q2FwdHVyZXJN
YWMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2luZG93RGlzcGxheUNhcHR1
cmVyTWFjLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxNkY4MDdBMjQ1MDlGMzIw
MEI2OEYwMiAvKiBTY3JlZW5EaXNwbGF5Q2FwdHVyZXJNYWMubW0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5vYmpjcHA7IHBhdGggPSBTY3JlZW5EaXNwbGF5Q2FwdHVyZXJNYWMubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxNkY4MDdCMjQ1MDlGMzMwMEI2OEYwMiAvKiBXaW5k
b3dEaXNwbGF5Q2FwdHVyZXJNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IHBhdGggPSBXaW5kb3dEaXNwbGF5Q2FwdHVyZXJNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC0xNzI0Miw2ICsxNzI1OCw3IEBACiAJCQkJNDFDN0UxMDUxRTZBNTQzNjAwMjdC
NERFIC8qIENhbnZhc0NhcHR1cmVNZWRpYVN0cmVhbVRyYWNrLmNwcCAqLywKIAkJCQk0MUM3RTEw
NjFFNkE1NDM2MDAyN0I0REUgLyogQ2FudmFzQ2FwdHVyZU1lZGlhU3RyZWFtVHJhY2suaCAqLywK
IAkJCQk0MUM3RTEwODFFNkFBMzdDMDAyN0I0REUgLyogQ2FudmFzQ2FwdHVyZU1lZGlhU3RyZWFt
VHJhY2suaWRsICovLAorCQkJCTQxMTIyM0MzMjYwMzU2N0MwMEIwQTBCNiAvKiBEZXRhY2hlZFJU
Q0RhdGFDaGFubmVsLmggKi8sCiAJCQkJOTNBODA2MTExRTAzQjUxQzAwOEExRjI2IC8qIERvdWJs
ZVJhbmdlLmggKi8sCiAJCQkJOTNBODA2MTIxRTAzQjUxQzAwOEExRjI2IC8qIERvdWJsZVJhbmdl
LmlkbCAqLywKIAkJCQk5M0E4MDYxMzFFMDNCNTFDMDA4QTFGMjYgLyogTG9uZ1JhbmdlLmggKi8s
CkBAIC0xNzI5MSw2ICsxNzMwOCwxMCBAQAogCQkJCTA3MjIxQjY2MTdDRUMzMjcwMDg0OEU1MSAv
KiBSVENEYXRhQ2hhbm5lbEV2ZW50LmNwcCAqLywKIAkJCQkwNzIyMUI2NzE3Q0VDMzI3MDA4NDhF
NTEgLyogUlRDRGF0YUNoYW5uZWxFdmVudC5oICovLAogCQkJCTA3MjIxQjY4MTdDRUMzMjcwMDg0
OEU1MSAvKiBSVENEYXRhQ2hhbm5lbEV2ZW50LmlkbCAqLywKKwkJCQk0MTZFREJGNzI2MDBENzYz
MDAwOTI2NzUgLyogUlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVyLmNwcCAqLywKKwkJCQk0MTZF
REJGNDI2MDBENjc4MDAwOTI2NzUgLyogUlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVyLmggKi8s
CisJCQkJNDE2RURCRUQyNUZGQjIyNDAwMDkyNjc1IC8qIFJUQ0RhdGFDaGFubmVsUmVtb3RlU291
cmNlLmNwcCAqLywKKwkJCQk0MTZFREJFRjI1RkZCMjI0MDAwOTI2NzUgLyogUlRDRGF0YUNoYW5u
ZWxSZW1vdGVTb3VyY2UuaCAqLywKIAkJCQk0MUZDQjc1RDIxNDg2NkZFMDAzOEFEQzYgLyogUlRD
RGVncmFkYXRpb25QcmVmZXJlbmNlLmggKi8sCiAJCQkJNDFGQ0I3NTUyMTQ4NjVDRjAwMzhBREM2
IC8qIFJUQ0RlZ3JhZGF0aW9uUHJlZmVyZW5jZS5pZGwgKi8sCiAJCQkJMDcyMjFCNjkxN0NFQzMy
NzAwODQ4RTUxIC8qIFJUQ0RUTUZTZW5kZXIuY3BwICovLApAQCAtMTc0ODYsNiArMTc1MDcsOSBA
QAogCQkJCTMxMzU5MTBDMUU3RERDQjYwMEYzMDYzMCAvKiBSVENCdW5kbGVQb2xpY3kuaCAqLywK
IAkJCQkwNzIyMUJBMjE3Q0YwQUQ0MDA4NDhFNTEgLyogUlRDRGF0YUNoYW5uZWxIYW5kbGVyLmgg
Ki8sCiAJCQkJMDcyMjFCQTMxN0NGMEFENDAwODQ4RTUxIC8qIFJUQ0RhdGFDaGFubmVsSGFuZGxl
ckNsaWVudC5oICovLAorCQkJCTQxNkVEQkZGMjYwMEU3ODcwMDA5MjY3NSAvKiBSVENEYXRhQ2hh
bm5lbElkZW50aWZpZXIuaCAqLywKKwkJCQk0MTZFREMwMTI2MDBFN0IwMDAwOTI2NzUgLyogUlRD
RGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVyQ29ubmVjdGlvbi5oICovLAorCQkJCTQxNkVEQzAzMjYw
MEU4MEYwMDA5MjY3NSAvKiBSVENEYXRhQ2hhbm5lbFJlbW90ZVNvdXJjZUNvbm5lY3Rpb24uaCAq
LywKIAkJCQkzMTZERTcwMTFFODNBRTFEMDA4NEMyNjEgLyogUlRDRGF0YUNoYW5uZWxTdGF0ZS5o
ICovLAogCQkJCTQxRjIzNTQ0MjJGNTUwMzMwMEI0RkNEQiAvKiBSVENEVE1GU2VuZGVyQmFja2Vu
ZC5oICovLAogCQkJCTA3MjIxQkE2MTdDRjBBRDQwMDg0OEU1MSAvKiBSVENJY2VDYW5kaWRhdGVE
ZXNjcmlwdG9yLmNwcCAqLywKQEAgLTI3ODEzLDYgKzI3ODM3LDcgQEAKIAkJCQlBMThGN0EzNTFF
Q0E3MzY0MDA1OUUxRTEgLyogUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmNwcCAqLywKIAkJCQky
OTNFQUUxRTEzNTZCMkZFMDA2N0FDRjkgLyogUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmggKi8s
CiAJCQkJQzFFMUQyMzUyMDNERjE1NDAwNTg0NjY1IC8qIFNjcmVlblByb3BlcnRpZXMuaCAqLywK
KwkJCQk0MTEyMjNCODI2MDI0NEZFMDBCMEEwQjYgLyogU2NyaXB0RXhlY3V0aW9uQ29udGV4dElk
ZW50aWZpZXIuaCAqLywKIAkJCQlCQzhBRTM0QzEyRUEwOTZBMDBFQjNBRTYgLyogU2Nyb2xsYWJs
ZUFyZWEuY3BwICovLAogCQkJCUJDOEFFMzREMTJFQTA5NkEwMEVCM0FFNiAvKiBTY3JvbGxhYmxl
QXJlYS5oICovLAogCQkJCTBGQzY5MkJDMjU3QzBGNDEwMDk4RTNGOSAvKiBTY3JvbGxBbmltYXRp
b25LaW5ldGljLmNwcCAqLywKQEAgLTM0NjIwLDYgKzM0NjQ1LDExIEBACiAJCQkJMDc4RTA5M0Mx
N0QxNkUxQzAwNDIwQUExIC8qIFJUQ0RhdGFDaGFubmVsSGFuZGxlci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMDc4RTA5M0QxN0QxNkUxQzAwNDIwQUExIC8qIFJUQ0RhdGFDaGFubmVsSGFuZGxlckNs
aWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDczNzk0RkExOUY1ODY0RTAwRTVBMDQ1IC8qIFJU
Q0RhdGFDaGFubmVsSGFuZGxlck1vY2suaCBpbiBIZWFkZXJzICovLAorCQkJCTQxNkVEQzAwMjYw
MEU3ODgwMDA5MjY3NSAvKiBSVENEYXRhQ2hhbm5lbElkZW50aWZpZXIuaCBpbiBIZWFkZXJzICov
LAorCQkJCTQxNkVEQkY2MjYwMEQ2NzkwMDA5MjY3NSAvKiBSVENEYXRhQ2hhbm5lbFJlbW90ZUhh
bmRsZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxNkVEQzAyMjYwMEU3QjAwMDA5MjY3NSAvKiBS
VENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXJDb25uZWN0aW9uLmggaW4gSGVhZGVycyAqLywKKwkJ
CQk0MTEyMjNCRTI2MDI1QkMxMDBCMEEwQjYgLyogUlRDRGF0YUNoYW5uZWxSZW1vdGVTb3VyY2Uu
aCBpbiBIZWFkZXJzICovLAorCQkJCTQxNkVEQzA0MjYwMEU4MTAwMDA5MjY3NSAvKiBSVENEYXRh
Q2hhbm5lbFJlbW90ZVNvdXJjZUNvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTMxNkRF
NzAyMUU4M0FFMUQwMDg0QzI2MSAvKiBSVENEYXRhQ2hhbm5lbFN0YXRlLmggaW4gSGVhZGVycyAq
LywKIAkJCQkwNzhFMDkyMDE3RDE0RDFDMDA0MjBBQTEgLyogUlRDRFRNRlNlbmRlci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMDc4RTA5MjExN0QxNEQxQzAwNDIwQUExIC8qIFJUQ0RUTUZUb25lQ2hh
bmdlRXZlbnQuaCBpbiBIZWFkZXJzICovLApAQCAtMzQ2ODgsNiArMzQ3MTgsNyBAQAogCQkJCTA4
QTQ4NDc4MEU1MjcyQzUwMEMzRkU3NiAvKiBTY3JpcHRFbGVtZW50LmggaW4gSGVhZGVycyAqLywK
IAkJCQlFM0U0RTJBODFFM0IxNzEwMDAyM0JCOEEgLyogU2NyaXB0RWxlbWVudENhY2hlZFNjcmlw
dEZldGNoZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxMUM5RDlCMEVCMzY4MTIwMEU0MDlEQiAv
KiBTY3JpcHRFeGVjdXRpb25Db250ZXh0LmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTEyMjNCQTI2
MDI0NEZFMDBCMEEwQjYgLyogU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTM3MkQzRTU1MjE2NTc4QUUwMEM1RTAyMSAvKiBTY3JpcHRNb2R1bGVM
b2FkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUZEMzE2MDM2MTJCMDI2NzYwMEMxQTM1OSAvKiBT
Y3JpcHRQcm9jZXNzb3JOb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQk4QTQxM0FFMDEyMDdCQkE1
MDA4MjAxNkUgLyogU2NyaXB0UnVubmVyLmggaW4gSGVhZGVycyAqLywKQEAgLTM1NjYwLDYgKzM1
NjkxLDcgQEAKIAkJCQlBNTRBMEM2MjFEQjdGOEMxMDAxN0E5MEIgLyogV29ya2VySW5zcGVjdG9y
Q29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTU0QTBDNkMxREI4MzFGOTAwMTdBOTBC
IC8qIFdvcmtlckluc3BlY3RvclByb3h5LmggaW4gSGVhZGVycyAqLywKIAkJCQkxOEY4MzFCODBG
RDQ4Qzc4MDBEOEM1NkIgLyogV29ya2VyTG9hZGVyUHJveHkuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTQxMTIyM0M1MjYwMzU2N0QwMEIwQTBCNiAvKiBEZXRhY2hlZFJUQ0RhdGFDaGFubmVsLmggaW4g
SGVhZGVycyAqLywKIAkJCQkyRTQzNDY0RDBGNTQ2QTgyMDBCMEYxQkEgLyogV29ya2VyTG9jYXRp
b24uaCBpbiBIZWFkZXJzICovLAogCQkJCTJFNDM0NjUwMEY1NDZBODIwMEIwRjFCQSAvKiBXb3Jr
ZXJNZXNzYWdpbmdQcm94eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTM0MzJERTQyNUQzNzdFMzAw
NThFNjEyIC8qIFdvcmtlck1vZHVsZVNjcmlwdExvYWRlci5oIGluIEhlYWRlcnMgKi8sCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNw
cAppbmRleCA0NzUzNDJhZGVjNTg0ZTM2MjAxMTRmMTc4YjM0ODU2M2VjZWM2N2U4Li5mNjlmMTE0
NThjY2Q0YjY5MWI1YWFjMGQ3ZTJhOWU1OWRiYjQ1OTRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAKQEAgLTM4MjYsOSAr
MzgyNiwxNiBAQCBTZXJpYWxpemVkU2NyaXB0VmFsdWU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZShW
ZWN0b3I8dWludDhfdD4mJiBidWZmZXIpCiAgICAgbV9tZW1vcnlDb3N0ID0gY29tcHV0ZU1lbW9y
eUNvc3QoKTsKIH0KIAotU2VyaWFsaXplZFNjcmlwdFZhbHVlOjpTZXJpYWxpemVkU2NyaXB0VmFs
dWUoVmVjdG9yPHVpbnQ4X3Q+JiYgYnVmZmVyLCBzdGQ6OnVuaXF1ZV9wdHI8QXJyYXlCdWZmZXJD
b250ZW50c0FycmF5PiBhcnJheUJ1ZmZlckNvbnRlbnRzQXJyYXkpCitTZXJpYWxpemVkU2NyaXB0
VmFsdWU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZShWZWN0b3I8dWludDhfdD4mJiBidWZmZXIsIHN0
ZDo6dW5pcXVlX3B0cjxBcnJheUJ1ZmZlckNvbnRlbnRzQXJyYXk+JiYgYXJyYXlCdWZmZXJDb250
ZW50c0FycmF5CisjaWYgRU5BQkxFKFdFQl9SVEMpCisgICAgICAgICwgVmVjdG9yPHN0ZDo6dW5p
cXVlX3B0cjxEZXRhY2hlZFJUQ0RhdGFDaGFubmVsPj4mJiBkZXRhY2hlZFJUQ0RhdGFDaGFubmVs
cworI2VuZGlmCisgICAgICAgICkKICAgICA6IG1fZGF0YShXVEZNb3ZlKGJ1ZmZlcikpCiAgICAg
LCBtX2FycmF5QnVmZmVyQ29udGVudHNBcnJheShXVEZNb3ZlKGFycmF5QnVmZmVyQ29udGVudHNB
cnJheSkpCisjaWYgRU5BQkxFKFdFQl9SVEMpCisgICAgLCBtX2RldGFjaGVkUlRDRGF0YUNoYW5u
ZWxzKFdURk1vdmUoZGV0YWNoZWRSVENEYXRhQ2hhbm5lbHMpKQorI2VuZGlmCiB7CiAgICAgbV9t
ZW1vcnlDb3N0ID0gY29tcHV0ZU1lbW9yeUNvc3QoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgKaW5kZXggNTRjOGU4MGY0ZTBi
MDE0MGY2MTQyZjk0MTIyYzE1NjA4NWJkYWIxYy4uOGRkMTk1ZjBkYmNjNjY3ZmJjNzdmNjNiNzZh
OTU4ZWMwYTJlY2JiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2Vy
aWFsaXplZFNjcmlwdFZhbHVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2Vy
aWFsaXplZFNjcmlwdFZhbHVlLmgKQEAgLTI2LDYgKzI2LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAK
KyNpbmNsdWRlICJEZXRhY2hlZFJUQ0RhdGFDaGFubmVsLmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9u
T3IuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9BcnJheUJ1ZmZlci5oPgogI2luY2x1ZGUg
PEphdmFTY3JpcHRDb3JlL0pTQ0pTVmFsdWUuaD4KQEAgLTUwLDkgKzUxLDYgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogI2lmIEVOQUJMRShPRkZTQ1JFRU5fQ0FOVkFTKQogY2xhc3MgRGV0YWNoZWRP
ZmZzY3JlZW5DYW52YXM7CiAjZW5kaWYKLSNpZiBFTkFCTEUoV0VCX1JUQykKLXN0cnVjdCBEZXRh
Y2hlZFJUQ0RhdGFDaGFubmVsOwotI2VuZGlmCiBjbGFzcyBJREJWYWx1ZTsKIGNsYXNzIE1lc3Nh
Z2VQb3J0OwogY2xhc3MgSW1hZ2VCaXRtYXBCYWNraW5nOwpAQCAtMTIwLDcgKzExOCwxMiBAQCBw
dWJsaWM6CiAKIHByaXZhdGU6CiAgICAgV0VCQ09SRV9FWFBPUlQgU2VyaWFsaXplZFNjcmlwdFZh
bHVlKFZlY3Rvcjx1bnNpZ25lZCBjaGFyPiYmKTsKLSAgICBXRUJDT1JFX0VYUE9SVCBTZXJpYWxp
emVkU2NyaXB0VmFsdWUoVmVjdG9yPHVuc2lnbmVkIGNoYXI+JiYsIHN0ZDo6dW5pcXVlX3B0cjxB
cnJheUJ1ZmZlckNvbnRlbnRzQXJyYXk+KTsKKyAgICBXRUJDT1JFX0VYUE9SVCBTZXJpYWxpemVk
U2NyaXB0VmFsdWUoVmVjdG9yPHVuc2lnbmVkIGNoYXI+JiYsIHN0ZDo6dW5pcXVlX3B0cjxBcnJh
eUJ1ZmZlckNvbnRlbnRzQXJyYXk+JiYKKyNpZiBFTkFCTEUoV0VCX1JUQykKKyAgICAgICAgLCBW
ZWN0b3I8c3RkOjp1bmlxdWVfcHRyPERldGFjaGVkUlRDRGF0YUNoYW5uZWw+PiYmCisjZW5kaWYK
KyAgICAgICAgKTsKKwogICAgIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZShWZWN0b3I8dW5zaWduZWQg
Y2hhcj4mJiwgY29uc3QgVmVjdG9yPFN0cmluZz4mIGJsb2JVUkxzLCBzdGQ6OnVuaXF1ZV9wdHI8
QXJyYXlCdWZmZXJDb250ZW50c0FycmF5Piwgc3RkOjp1bmlxdWVfcHRyPEFycmF5QnVmZmVyQ29u
dGVudHNBcnJheT4gc2hhcmVkQnVmZmVycywgVmVjdG9yPE9wdGlvbmFsPEltYWdlQml0bWFwQmFj
a2luZz4+JiYgYmFja2luZ1N0b3JlcwogI2lmIEVOQUJMRShPRkZTQ1JFRU5fQ0FOVkFTKQogICAg
ICAgICAsIFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8RGV0YWNoZWRPZmZzY3JlZW5DYW52YXM+PiYm
ID0geyB9CkBAIC0xNzAsNiArMTczLDEyIEBAIHZvaWQgU2VyaWFsaXplZFNjcmlwdFZhbHVlOjpl
bmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICAgICAgZW5jb2RlciA8PCBhcnJheUJ1
ZmZlckNvbnRlbnRzLnNpemVJbkJ5dGVzKCk7CiAgICAgICAgIGVuY29kZXIuZW5jb2RlRml4ZWRM
ZW5ndGhEYXRhKHN0YXRpY19jYXN0PGNvbnN0IHVpbnQ4X3QqPihhcnJheUJ1ZmZlckNvbnRlbnRz
LmRhdGEoKSksIGFycmF5QnVmZmVyQ29udGVudHMuc2l6ZUluQnl0ZXMoKSwgMSk7CiAgICAgfQor
CisjaWYgRU5BQkxFKFdFQl9SVEMpCisgICAgZW5jb2RlciA8PCBzdGF0aWNfY2FzdDx1aW50NjRf
dD4obV9kZXRhY2hlZFJUQ0RhdGFDaGFubmVscy5zaXplKCkpOworICAgIGZvciAoY29uc3QgYXV0
byAmY2hhbm5lbCA6IG1fZGV0YWNoZWRSVENEYXRhQ2hhbm5lbHMpCisgICAgICAgIGVuY29kZXIg
PDwgKmNoYW5uZWw7CisjZW5kaWYKIH0KIAogdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KQEAgLTIw
OSw3ICsyMTgsMjUgQEAgUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gU2VyaWFsaXplZFNj
cmlwdFZhbHVlOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKICAgICAgICAgYXJyYXlCdWZmZXJD
b250ZW50c0FycmF5LT5hcHBlbmQoeyBidWZmZXIsIGJ1ZmZlclNpemUsIEFycmF5QnVmZmVyOjpw
cmltaXRpdmVHaWdhY2FnZURlc3RydWN0b3IoKSB9KTsKICAgICB9CiAKLSAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBTZXJpYWxpemVkU2NyaXB0VmFsdWUoV1RGTW92ZShkYXRhKSwgV1RGTW92ZShh
cnJheUJ1ZmZlckNvbnRlbnRzQXJyYXkpKSk7CisjaWYgRU5BQkxFKFdFQl9SVEMpCisgICAgdWlu
dDY0X3QgZGV0YWNoZWRSVENEYXRhQ2hhbm5lbHNTaXplOworICAgIGlmICghZGVjb2Rlci5kZWNv
ZGUoZGV0YWNoZWRSVENEYXRhQ2hhbm5lbHNTaXplKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7
CisKKyAgICBWZWN0b3I8c3RkOjp1bmlxdWVfcHRyPERldGFjaGVkUlRDRGF0YUNoYW5uZWw+PiBk
ZXRhY2hlZFJUQ0RhdGFDaGFubmVsczsKKyAgICB3aGlsZSAoZGV0YWNoZWRSVENEYXRhQ2hhbm5l
bHNTaXplLS0pIHsKKyAgICAgICAgYXV0byBkZXRhY2hlZFJUQ0RhdGFDaGFubmVsID0gRGV0YWNo
ZWRSVENEYXRhQ2hhbm5lbDo6ZGVjb2RlKGRlY29kZXIpOworICAgICAgICBpZiAoIWRldGFjaGVk
UlRDRGF0YUNoYW5uZWwpCisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgZGV0
YWNoZWRSVENEYXRhQ2hhbm5lbHMuYXBwZW5kKFdURk1vdmUoZGV0YWNoZWRSVENEYXRhQ2hhbm5l
bCkpOworICAgIH0KKyNlbmRpZgorCisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU2VyaWFsaXpl
ZFNjcmlwdFZhbHVlKFdURk1vdmUoZGF0YSksIFdURk1vdmUoYXJyYXlCdWZmZXJDb250ZW50c0Fy
cmF5KQorI2lmIEVOQUJMRShXRUJfUlRDKQorICAgICAgICAsIFdURk1vdmUoZGV0YWNoZWRSVENE
YXRhQ2hhbm5lbHMpCisjZW5kaWYKKyAgICAgICAgKSk7CiB9CiAKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5jcHAKaW5kZXggZDU2M2U2OGFmZDVjYTAzMDZiNTZhMmM5OTA3MWFlZDVlY2Q3NzBmMS4uODhj
ZDUyMWU3Y2ZlMDZiYTgyNWFmY2Y4OTQ0NzY0YzJkN2M5OGEwYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuY3BwCkBAIC0zNDkxLDcgKzM0OTEsMTYgQEAgU29ja2V0UHJvdmlkZXIqIERvY3VtZW50Ojpz
b2NrZXRQcm92aWRlcigpCiB7CiAgICAgcmV0dXJuIG1fc29ja2V0UHJvdmlkZXIuZ2V0KCk7CiB9
Ci0gICAgCisKK1JlZlB0cjxSVENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXJDb25uZWN0aW9uPiBE
b2N1bWVudDo6Y3JlYXRlUlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVyQ29ubmVjdGlvbigpCit7
CisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBhdXRvKiBwYWdlID0gdGhpcy0+cGFn
ZSgpOworICAgIGlmICghcGFnZSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgcmV0dXJu
IHBhZ2UtPmxpYldlYlJUQ1Byb3ZpZGVyKCkuY3JlYXRlUlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5k
bGVyQ29ubmVjdGlvbigpOworfQorCiBib29sIERvY3VtZW50OjpjYW5OYXZpZ2F0ZShGcmFtZSog
dGFyZ2V0RnJhbWUsIGNvbnN0IFVSTCYgZGVzdGluYXRpb25VUkwpCiB7CiAgICAgaWYgKCFtX2Zy
YW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCAyZDgyN2QwODgyN2Y4NzhjOTVmMTc3MzkzYzRh
MjgzNjMyMGYxYjMxLi40MmJlYTg4OGVhMTkyYWRkZjRjOGM3N2YwYzBjNjlmYmUxNDZhMjUyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuaApAQCAtNzA1LDYgKzcwNSw3IEBAIHB1YmxpYzoKICAgICBJREJD
bGllbnQ6OklEQkNvbm5lY3Rpb25Qcm94eSogaWRiQ29ubmVjdGlvblByb3h5KCkgZmluYWw7CiAj
ZW5kaWYKICAgICBTb2NrZXRQcm92aWRlciogc29ja2V0UHJvdmlkZXIoKSBmaW5hbDsKKyAgICBS
ZWZQdHI8UlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVyQ29ubmVjdGlvbj4gY3JlYXRlUlRDRGF0
YUNoYW5uZWxSZW1vdGVIYW5kbGVyQ29ubmVjdGlvbigpIGZpbmFsOwogCiAgICAgYm9vbCBjYW5O
YXZpZ2F0ZShGcmFtZSogdGFyZ2V0RnJhbWUsIGNvbnN0IFVSTCYgZGVzdGluYXRpb25VUkwgPSBV
UkwoKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25D
b250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oCmlu
ZGV4IDJhOTIzMDcxMjBhMDc3OTE2YmUwYmJkM2Y4OTBmM2Y0MmJkZGU1NjQuLjhiYTIzMjk3YmIx
OWFmOTA3YjExYjBkYmQyY2E0ZDkwZGU2NWFkMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1Nj
cmlwdEV4ZWN1dGlvbkNvbnRleHQuaApAQCAtMjksNiArMjksOCBAQAogCiAjaW5jbHVkZSAiQWN0
aXZlRE9NT2JqZWN0LmgiCiAjaW5jbHVkZSAiRE9NVGltZXIuaCIKKyNpbmNsdWRlICJSVENEYXRh
Q2hhbm5lbFJlbW90ZUhhbmRsZXJDb25uZWN0aW9uLmgiCisjaW5jbHVkZSAiU2NyaXB0RXhlY3V0
aW9uQ29udGV4dElkZW50aWZpZXIuaCIKICNpbmNsdWRlICJTZWN1cml0eUNvbnRleHQuaCIKICNp
bmNsdWRlICJTZXJ2aWNlV29ya2VyVHlwZXMuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgpAQCAt
ODAsOSArODIsNiBAQCBuYW1lc3BhY2UgSURCQ2xpZW50IHsKIGNsYXNzIElEQkNvbm5lY3Rpb25Q
cm94eTsKIH0KIAotZW51bSBTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllclR5cGUgeyB9
OwotdXNpbmcgU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIgPSBPYmplY3RJZGVudGlm
aWVyPFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyVHlwZT47Ci0KIGNsYXNzIFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQgOiBwdWJsaWMgU2VjdXJpdHlDb250ZXh0LCBwdWJsaWMgQ2FuTWFr
ZVdlYWtQdHI8U2NyaXB0RXhlY3V0aW9uQ29udGV4dD4gewogcHVibGljOgogICAgIFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQoKTsKQEAgLTExNSw2ICsxMTQsOCBAQCBwdWJsaWM6CiAjZW5kaWYKICAg
ICB2aXJ0dWFsIFNvY2tldFByb3ZpZGVyKiBzb2NrZXRQcm92aWRlcigpID0gMDsKIAorICAgIHZp
cnR1YWwgUmVmUHRyPFJUQ0RhdGFDaGFubmVsUmVtb3RlSGFuZGxlckNvbm5lY3Rpb24+IGNyZWF0
ZVJUQ0RhdGFDaGFubmVsUmVtb3RlSGFuZGxlckNvbm5lY3Rpb24oKSB7IHJldHVybiBudWxscHRy
OyB9CisKICAgICB2aXJ0dWFsIFN0cmluZyByZXNvdXJjZVJlcXVlc3RJZGVudGlmaWVyKCkgY29u
c3QgeyByZXR1cm4gU3RyaW5nKCk7IH07CiAKICAgICBib29sIGNhbkluY2x1ZGVFcnJvckRldGFp
bHMoQ2FjaGVkU2NyaXB0KiwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlm
aWVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uY2Q0ZmM3MzIzOWJjMGMyYTk0YzQ4YzA2MzcyODA2ZDUzZmUzZjkx
NQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NjcmlwdEV4ZWN1
dGlvbkNvbnRleHRJZGVudGlmaWVyLmgKQEAgLTAsMCArMSwzNSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNw
cmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3RmL09iamVjdElkZW50aWZpZXIuaD4KKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitlbnVtIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyVHlw
ZSB7IH07Cit1c2luZyBTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciA9IE9iamVjdElk
ZW50aWZpZXI8U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXJUeXBlPjsKKworfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDRGF0YUNoYW5u
ZWxIYW5kbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENEYXRh
Q2hhbm5lbEhhbmRsZXIuaAppbmRleCAxYzAzNDdkZjYwYTllMjY4NDliYTRkODZiMGQ4NmUwNDJk
M2E3ODhjLi4xZTk1MTQxNjAwMzM2NGVkYWJhMDRlYmNiNWY3YmFmZTc0YjFlN2QyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbEhh
bmRsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENEYXRh
Q2hhbm5lbEhhbmRsZXIuaApAQCAtMjgsNyArMjgsNyBAQAogI2lmIEVOQUJMRShXRUJfUlRDKQog
CiAjaW5jbHVkZSAiUlRDUHJpb3JpdHlUeXBlLmgiCi0jaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9u
Q29udGV4dC5oIgorI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyLmgi
CiAjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5n
Lmg+CiAKQEAgLTQ0LDYgKzQ0LDkgQEAgc3RydWN0IFJUQ0RhdGFDaGFubmVsSW5pdCB7CiAgICAg
UlRDUHJpb3JpdHlUeXBlIHByaW9yaXR5IHsgUlRDUHJpb3JpdHlUeXBlOjpMb3cgfTsKIAogICAg
IFJUQ0RhdGFDaGFubmVsSW5pdCBpc29sYXRlZENvcHkoKSBjb25zdDsKKworICAgIHRlbXBsYXRl
PGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKKyAgICB0ZW1wbGF0
ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgT3B0aW9uYWw8UlRDRGF0YUNoYW5uZWxJbml0PiBkZWNv
ZGUoRGVjb2RlciYpOwogfTsKIAogaW5saW5lIFJUQ0RhdGFDaGFubmVsSW5pdCBSVENEYXRhQ2hh
bm5lbEluaXQ6Omlzb2xhdGVkQ29weSgpIGNvbnN0CkBAIC01Myw2ICs1Niw1MCBAQCBpbmxpbmUg
UlRDRGF0YUNoYW5uZWxJbml0IFJUQ0RhdGFDaGFubmVsSW5pdDo6aXNvbGF0ZWRDb3B5KCkgY29u
c3QKICAgICByZXR1cm4gY29weTsKIH0KIAordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBS
VENEYXRhQ2hhbm5lbEluaXQ6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAg
IGVuY29kZXIgPDwgb3JkZXJlZCA8PCBtYXhQYWNrZXRMaWZlVGltZSA8PCBtYXhSZXRyYW5zbWl0
cyA8PCBwcm90b2NvbCA8PCBuZWdvdGlhdGVkIDw8IGlkIDw8IHByaW9yaXR5OworfQorCit0ZW1w
bGF0ZTxjbGFzcyBEZWNvZGVyPiBPcHRpb25hbDxSVENEYXRhQ2hhbm5lbEluaXQ+IFJUQ0RhdGFD
aGFubmVsSW5pdDo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCit7CisgICAgT3B0aW9uYWw8Ym9v
bD4gb3JkZXJlZDsKKyAgICBkZWNvZGVyID4+IG9yZGVyZWQ7CisgICAgaWYgKCFvcmRlcmVkKQor
ICAgICAgICByZXR1cm4geyB9OworCisgICAgT3B0aW9uYWw8dW5zaWduZWQgc2hvcnQ+IG1heFBh
Y2tldExpZmVUaW1lOworICAgIGRlY29kZXIgPj4gbWF4UGFja2V0TGlmZVRpbWU7CisgICAgaWYg
KCFtYXhQYWNrZXRMaWZlVGltZSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKworICAgIE9wdGlvbmFs
PHVuc2lnbmVkIHNob3J0PiBtYXhSZXRyYW5zbWl0czsKKyAgICBkZWNvZGVyID4+IG1heFJldHJh
bnNtaXRzOworICAgIGlmICghbWF4UmV0cmFuc21pdHMpCisgICAgICAgIHJldHVybiB7IH07CisK
KyAgICBTdHJpbmcgcHJvdG9jb2w7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwcm90b2NvbCkp
CisgICAgICAgIHJldHVybiB7IH07CisKKyAgICBPcHRpb25hbDxib29sPiBuZWdvdGlhdGVkOwor
ICAgIGRlY29kZXIgPj4gbmVnb3RpYXRlZDsKKyAgICBpZiAoIW5lZ290aWF0ZWQpCisgICAgICAg
IHJldHVybiB7IH07CisKKyAgICBPcHRpb25hbDx1bnNpZ25lZCBzaG9ydD4gaWQ7CisgICAgZGVj
b2RlciA+PiBpZDsKKyAgICBpZiAoIWlkKQorICAgICAgICByZXR1cm4geyB9OworCisgICAgT3B0
aW9uYWw8UlRDUHJpb3JpdHlUeXBlPiBwcmlvcml0eTsKKyAgICBkZWNvZGVyID4+IHByaW9yaXR5
OworICAgIGlmICghcHJpb3JpdHkpCisgICAgICAgIHJldHVybiB7IH07CisKKyAgICByZXR1cm4g
UlRDRGF0YUNoYW5uZWxJbml0IHsgKm9yZGVyZWQsICptYXhQYWNrZXRMaWZlVGltZSwgKm1heFJl
dHJhbnNtaXRzLCBXVEZNb3ZlKHByb3RvY29sKSwgKm5lZ290aWF0ZWQsICppZCwgKnByaW9yaXR5
IH07Cit9CisKIGNsYXNzIFJUQ0RhdGFDaGFubmVsSGFuZGxlckNsaWVudDsKIAogY2xhc3MgUlRD
RGF0YUNoYW5uZWxIYW5kbGVyIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsSWRlbnRpZmllci5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDRGF0YUNoYW5uZWxJZGVudGlmaWVyLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZTM0MDJlYmFhZjMzNjQyNDdhNDMxYWFlZWJlYzk0NThlZDVkMGY3OQotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVs
SWRlbnRpZmllci5oCkBAIC0wLDAgKzEsNjMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
CisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KKyAqIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNl
CisKKyNpbmNsdWRlICJQcm9jZXNzSWRlbnRpZmllci5oIgorI2luY2x1ZGUgPHd0Zi9PYmplY3RJ
ZGVudGlmaWVyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworZW51bSBSVENEYXRhQ2hhbm5l
bExvY2FsSWRlbnRpZmllclR5cGUgeyB9OwordXNpbmcgUlRDRGF0YUNoYW5uZWxMb2NhbElkZW50
aWZpZXIgPSBPYmplY3RJZGVudGlmaWVyPFJUQ0RhdGFDaGFubmVsTG9jYWxJZGVudGlmaWVyVHlw
ZT47CitzdHJ1Y3QgUlRDRGF0YUNoYW5uZWxJZGVudGlmaWVyIHsKKyAgICBQcm9jZXNzSWRlbnRp
ZmllciBwcm9jZXNzSWRlbnRpZmllcjsKKyAgICBSVENEYXRhQ2hhbm5lbExvY2FsSWRlbnRpZmll
ciBjaGFubmVsSWRlbnRpZmllcjsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQg
ZW5jb2RlKEVuY29kZXImKSBjb25zdDsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0
aWMgT3B0aW9uYWw8UlRDRGF0YUNoYW5uZWxJZGVudGlmaWVyPiBkZWNvZGUoRGVjb2RlciYpOwor
fTsKKwordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK2lubGluZSB2b2lkIFJUQ0RhdGFDaGFubmVs
SWRlbnRpZmllcjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2Rl
ciA8PCBwcm9jZXNzSWRlbnRpZmllciA8PCBjaGFubmVsSWRlbnRpZmllcjsKK30KKwordGVtcGxh
dGU8Y2xhc3MgRGVjb2Rlcj4KK2lubGluZSBPcHRpb25hbDxSVENEYXRhQ2hhbm5lbElkZW50aWZp
ZXI+IFJUQ0RhdGFDaGFubmVsSWRlbnRpZmllcjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCit7
CisgICAgT3B0aW9uYWw8UHJvY2Vzc0lkZW50aWZpZXI+IHByb2Nlc3NJZGVudGlmaWVyOworICAg
IGRlY29kZXIgPj4gcHJvY2Vzc0lkZW50aWZpZXI7CisgICAgaWYgKCFwcm9jZXNzSWRlbnRpZmll
cikKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIE9wdGlvbmFsPFJUQ0RhdGFD
aGFubmVsTG9jYWxJZGVudGlmaWVyPiBjaGFubmVsSWRlbnRpZmllcjsKKyAgICBkZWNvZGVyID4+
IGNoYW5uZWxJZGVudGlmaWVyOworICAgIGlmICghY2hhbm5lbElkZW50aWZpZXIpCisgICAgICAg
IHJldHVybiBXVEY6Om51bGxvcHQ7CisgICAgcmV0dXJuIFJUQ0RhdGFDaGFubmVsSWRlbnRpZmll
ciB7ICpwcm9jZXNzSWRlbnRpZmllciwgKmNoYW5uZWxJZGVudGlmaWVyIH07Cit9CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsUmVtb3RlSGFuZGxlckNvbm5lY3Rpb24uaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsUmVtb3RlSGFuZGxl
ckNvbm5lY3Rpb24uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNDY5MjEzNTk2M2Q2ZTZiNjUyNWEzNDk5YTM4OTRh
NGNkNzE4NDE2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vUlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVyQ29ubmVjdGlvbi5oCkBAIC0wLDAg
KzEsNDUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisg
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04KKyAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUworICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJSVENEYXRh
Q2hhbm5lbElkZW50aWZpZXIuaCIKKyNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRl
bnRpZmllci5oIgorI2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5oPgorI2luY2x1
ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNz
IFJUQ0RhdGFDaGFubmVsUmVtb3RlSGFuZGxlcjsKKworY2xhc3MgUlRDRGF0YUNoYW5uZWxSZW1v
dGVIYW5kbGVyQ29ubmVjdGlvbiA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxSVENEYXRh
Q2hhbm5lbFJlbW90ZUhhbmRsZXJDb25uZWN0aW9uLCBXVEY6OkRlc3RydWN0aW9uVGhyZWFkOjpN
YWluPiB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+UlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVy
Q29ubmVjdGlvbigpID0gZGVmYXVsdDsKKworICAgIHZpcnR1YWwgdm9pZCBjb25uZWN0VG9Tb3Vy
Y2UoUlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVyJiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dElk
ZW50aWZpZXIsIFJUQ0RhdGFDaGFubmVsSWRlbnRpZmllciwgUlRDRGF0YUNoYW5uZWxJZGVudGlm
aWVyKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNlbmREYXRhKFJUQ0RhdGFDaGFubmVsSWRlbnRp
ZmllciwgYm9vbCBpc1JhdywgY29uc3QgdW5zaWduZWQgY2hhciosIHNpemVfdCkgPSAwOworICAg
IHZpcnR1YWwgdm9pZCBjbG9zZShSVENEYXRhQ2hhbm5lbElkZW50aWZpZXIpID0gMDsKK307CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsUmVtb3RlU291cmNlQ29ubmVjdGlvbi5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDRGF0YUNoYW5uZWxSZW1vdGVT
b3VyY2VDb25uZWN0aW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDEyNDdmNjg0Zjc2MDkwYTZkMmJlMjUwYTU1
ODg2NGNjZjA0MjE1NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsUmVtb3RlU291cmNlQ29ubmVjdGlvbi5oCkBAIC0w
LDAgKzEsNDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Cisg
KiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04KKyAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUworICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoV0VC
X1JUQykKKworI2luY2x1ZGUgIlJUQ0RhdGFDaGFubmVsSWRlbnRpZmllci5oIgorI2luY2x1ZGUg
IlJUQ0RhdGFDaGFubmVsU3RhdGUuaCIKKyNpbmNsdWRlIDx3dGYvVGhyZWFkU2FmZVJlZkNvdW50
ZWQuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitjbGFzcyBSVENEYXRhQ2hhbm5lbFJlbW90ZVNvdXJjZUNvbm5lY3Rpb24gOiBwdWJs
aWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8UlRDRGF0YUNoYW5uZWxSZW1vdGVTb3VyY2VDb25uZWN0
aW9uLCBXVEY6OkRlc3RydWN0aW9uVGhyZWFkOjpNYWluPiB7CitwdWJsaWM6CisgICAgdmlydHVh
bCB+UlRDRGF0YUNoYW5uZWxSZW1vdGVTb3VyY2VDb25uZWN0aW9uKCkgPSBkZWZhdWx0OworCisg
ICAgdmlydHVhbCB2b2lkIGRpZENoYW5nZVJlYWR5U3RhdGUoUlRDRGF0YUNoYW5uZWxJZGVudGlm
aWVyLCBSVENEYXRhQ2hhbm5lbFN0YXRlKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2Vp
dmVTdHJpbmdEYXRhKFJUQ0RhdGFDaGFubmVsSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJikgPSAw
OworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlUmF3RGF0YShSVENEYXRhQ2hhbm5lbElkZW50
aWZpZXIsIGNvbnN0IGNoYXIqLCBzaXplX3QpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkRGV0
ZWN0RXJyb3IoUlRDRGF0YUNoYW5uZWxJZGVudGlmaWVyKSA9IDA7CisgICAgdmlydHVhbCB2b2lk
IGJ1ZmZlcmVkQW1vdW50SXNEZWNyZWFzaW5nKFJUQ0RhdGFDaGFubmVsSWRlbnRpZmllciwgc2l6
ZV90KSA9IDA7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFC
TEUoV0VCX1JUQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL1JUQ0RhdGFDaGFubmVsU3RhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL1JUQ0RhdGFDaGFubmVsU3RhdGUuaAppbmRleCAyZTk5NjA2N2Q0ZmJmMjBlNWE0M2I0
MmRlNTM5MjQ2MWJkNzM4NDVlLi5iNjlmZTg4MGQ0M2ZhYzNmMWRjMDAzMTUwOWY5NWRkZTc3M2M0
YzJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENE
YXRhQ2hhbm5lbFN0YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vUlRDRGF0YUNoYW5uZWxTdGF0ZS5oCkBAIC0yNyw5ICsyNywxMSBAQAogCiAjaWYgRU5BQkxF
KFdFQl9SVEMpCiAKKyNpbmNsdWRlIDx3dGYvRW51bVRyYWl0cy5oPgorCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKLWVudW0gY2xhc3MgUlRDRGF0YUNoYW5uZWxTdGF0ZSB7CitlbnVtIGNsYXNzIFJU
Q0RhdGFDaGFubmVsU3RhdGUgOiB1aW50OF90IHsKICAgICBDb25uZWN0aW5nLAogICAgIE9wZW4s
CiAgICAgQ2xvc2luZywKQEAgLTM4LDQgKzQwLDE5IEBAIGVudW0gY2xhc3MgUlRDRGF0YUNoYW5u
ZWxTdGF0ZSB7CiAKIH07IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKKworbmFtZXNwYWNlIFdURiB7
CisKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6UlRDRGF0YUNoYW5uZWxT
dGF0ZT4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgICAgIFdlYkNvcmU6
OlJUQ0RhdGFDaGFubmVsU3RhdGUsCisgICAgICAgIFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsU3Rh
dGU6OkNvbm5lY3RpbmcsCisgICAgICAgIFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsU3RhdGU6Ok9w
ZW4sCisgICAgICAgIFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsU3RhdGU6OkNsb3NpbmcsCisgICAg
ICAgIFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsU3RhdGU6OkNsb3NlZAorICAgID47Cit9OworCit9
CisKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vUlRDUHJpb3JpdHlUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9SVENQcmlvcml0eVR5cGUuaAppbmRleCA0NWVjM2U5NTVmMzZlZjQ1ZGQ0ZDhjZjU1NjczZjNk
MmE3YmIwYTRjLi5hMzEzYmQ4OGNjZWYxYWY5ODM2NjhiYWQyOTQxOTZkOWNiOWI1NDQ1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENQcmlvcml0eVR5
cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENQcmlvcml0
eVR5cGUuaApAQCAtMjcsMTAgKzI3LDI2IEBACiAKICNpZiBFTkFCTEUoV0VCX1JUQykKIAorI2lu
Y2x1ZGUgPHd0Zi9FbnVtVHJhaXRzLmg+CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogZW51bSBj
bGFzcyBSVENQcmlvcml0eVR5cGUgeyBWZXJ5TG93LCBMb3csIE1lZGl1bSwgSGlnaCB9OwogCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKK25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0ZTw+IHN0
cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OlJUQ1ByaW9yaXR5VHlwZT4geworICAgIHVzaW5nIHZh
bHVlcyA9IEVudW1WYWx1ZXM8CisgICAgICAgIFdlYkNvcmU6OlJUQ1ByaW9yaXR5VHlwZSwKKyAg
ICAgICAgV2ViQ29yZTo6UlRDUHJpb3JpdHlUeXBlOjpWZXJ5TG93LAorICAgICAgICBXZWJDb3Jl
OjpSVENQcmlvcml0eVR5cGU6OkxvdywKKyAgICAgICAgV2ViQ29yZTo6UlRDUHJpb3JpdHlUeXBl
OjpNZWRpdW0sCisgICAgICAgIFdlYkNvcmU6OlJUQ1ByaW9yaXR5VHlwZTo6SGlnaAorICAgID47
Cit9OworCit9CisKICNlbmRpZiAvLyBFTkFCTEUoV0VCX1JUQykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRl
ci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldl
YlJUQ1Byb3ZpZGVyLmgKaW5kZXggY2EwMDkyMWRjNDYxZThlYmJlYmFmYzIxZGM1N2I3ZDczYmJm
YzM2Ni4uMGQwZDU1ODA3NmQ3MmI2Mjg0YzhmMjAxYjIzYWQ0NzI1MzRhNTcyNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJU
Q1Byb3ZpZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGli
d2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmgKQEAgLTI3LDYgKzI3LDcgQEAKIAogI2luY2x1ZGUg
IkRvY3VtZW50SWRlbnRpZmllci5oIgogI2luY2x1ZGUgIkxpYldlYlJUQ01hY3Jvcy5oIgorI2lu
Y2x1ZGUgIlJUQ0RhdGFDaGFubmVsUmVtb3RlSGFuZGxlckNvbm5lY3Rpb24uaCIKICNpbmNsdWRl
IDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KICNpbmNsdWRlIDx3dGYvRXhwZWN0ZWQuaD4KICNp
bmNsdWRlIDx3dGYvVW5pcXVlUmVmLmg+CkBAIC05MSw2ICs5Miw4IEBAIHB1YmxpYzoKICAgICAg
ICAgY2FsbGJhY2sobWFrZVVuZXhwZWN0ZWQoTUROU1JlZ2lzdGVyRXJyb3I6Ok5vdEltcGxlbWVu
dGVkKSk7CiAgICAgfQogCisgICAgdmlydHVhbCBSZWZQdHI8UlRDRGF0YUNoYW5uZWxSZW1vdGVI
YW5kbGVyQ29ubmVjdGlvbj4gY3JlYXRlUlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVyQ29ubmVj
dGlvbigpIHsgcmV0dXJuIG51bGxwdHI7IH0KKwogI2lmIFVTRShMSUJXRUJSVEMpCiAgICAgdmly
dHVhbCBydGM6OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpQZWVyQ29ubmVjdGlvbkludGVyZmFjZT4g
Y3JlYXRlUGVlckNvbm5lY3Rpb24od2VicnRjOjpQZWVyQ29ubmVjdGlvbk9ic2VydmVyJiwgcnRj
OjpQYWNrZXRTb2NrZXRGYWN0b3J5Kiwgd2VicnRjOjpQZWVyQ29ubmVjdGlvbkludGVyZmFjZTo6
UlRDQ29uZmlndXJhdGlvbiYmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9Xb3JrZXJHbG9iYWxTY29wZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckds
b2JhbFNjb3BlLmNwcAppbmRleCA5Nzk5YWFlYThhYzE1ODJiNGVjN2JmNjk2MjJmZDRmZDhjYjY0
ZmJhLi43NGI0NTI2ZmQ0OWRkZDJjNjNhM2U0NjZiNjEzOTM1MDYxYjcyOWExIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmNwcApAQCAtMTYxLDYgKzE2MSwx
NyBAQCBTb2NrZXRQcm92aWRlciogV29ya2VyR2xvYmFsU2NvcGU6OnNvY2tldFByb3ZpZGVyKCkK
ICAgICByZXR1cm4gbV9zb2NrZXRQcm92aWRlci5nZXQoKTsKIH0KIAorUmVmUHRyPFJUQ0RhdGFD
aGFubmVsUmVtb3RlSGFuZGxlckNvbm5lY3Rpb24+IFdvcmtlckdsb2JhbFNjb3BlOjpjcmVhdGVS
VENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXJDb25uZWN0aW9uKCkKK3sKKyAgICBSZWZQdHI8UlRD
RGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVyQ29ubmVjdGlvbj4gY29ubmVjdGlvbjsKKyAgICBjYWxs
T25NYWluVGhyZWFkQW5kV2FpdChbd29ya2VyVGhyZWFkID0gbWFrZVJlZih0aHJlYWQoKSksICZj
b25uZWN0aW9uXSgpIG11dGFibGUgeworICAgICAgICBjb25uZWN0aW9uID0gd29ya2VyVGhyZWFk
LT53b3JrZXJMb2FkZXJQcm94eSgpLmNyZWF0ZVJUQ0RhdGFDaGFubmVsUmVtb3RlSGFuZGxlckNv
bm5lY3Rpb24oKTsKKyAgICB9KTsKKyAgICBBU1NFUlQoY29ubmVjdGlvbik7CisKKyAgICByZXR1
cm4gY29ubmVjdGlvbjsKK30KKwogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQogCiBJREJD
bGllbnQ6OklEQkNvbm5lY3Rpb25Qcm94eSogV29ya2VyR2xvYmFsU2NvcGU6OmlkYkNvbm5lY3Rp
b25Qcm94eSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2Jh
bFNjb3BlLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmgKaW5k
ZXggNzQ3OTVmNWMwZjlhMmEzNWQwMDkzMDEyYWQxOGY1N2UzMTdmODI3MS4uMTI3YTI5NGU5NmYz
YjJiMzljODM1OTk3YmYwNWRjNTI5YWE1NzkxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
V29ya2VyR2xvYmFsU2NvcGUuaApAQCAtMTQ2LDYgKzE0Niw3IEBAIHByaXZhdGU6CiAgICAgRXZl
bnRUYXJnZXQqIGVycm9yRXZlbnRUYXJnZXQoKSBmaW5hbDsKICAgICBTdHJpbmcgcmVzb3VyY2VS
ZXF1ZXN0SWRlbnRpZmllcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1faWRlbnRpZmllcjsgfQog
ICAgIFNvY2tldFByb3ZpZGVyKiBzb2NrZXRQcm92aWRlcigpIGZpbmFsOworICAgIFJlZlB0cjxS
VENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXJDb25uZWN0aW9uPiBjcmVhdGVSVENEYXRhQ2hhbm5l
bFJlbW90ZUhhbmRsZXJDb25uZWN0aW9uKCkgZmluYWw7CiAKICAgICBib29sIHNob3VsZEJ5cGFz
c01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1f
c2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5OyB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTG9hZGVyUHJveHkuaCBiL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvV29ya2VyTG9hZGVyUHJveHkuaAppbmRleCBlZTY0NjlkNWQ2MTRlM2Fk
ODI3YTIyNTMzY2RjMGY0YTQ5MjJhNTE5Li5lN2EzMGZjOThiOWVlNTE1ODEyMjZiOTU2YzhiYTQ1
NGMxMTczMmE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckxvYWRl
clByb3h5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJMb2FkZXJQcm94eS5o
CkBAIC01MCw2ICs1MCw4IEBAIHB1YmxpYzoKICAgICAvLyBDcmVhdGVzIGEgY2FjaGUgc3RvcmFn
ZSBjb25uZWN0aW9uIHRvIGJlIHVzZWQgb24gdGhlIG1haW4gdGhyZWFkLiBNZXRob2QgbXVzdCBi
ZSBjYWxsZWQgb24gdGhlIG1haW4gdGhyZWFkLgogICAgIHZpcnR1YWwgUmVmUHRyPENhY2hlU3Rv
cmFnZUNvbm5lY3Rpb24+IGNyZWF0ZUNhY2hlU3RvcmFnZUNvbm5lY3Rpb24oKSA9IDA7CiAKKyAg
ICB2aXJ0dWFsIFJlZlB0cjxSVENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXJDb25uZWN0aW9uPiBj
cmVhdGVSVENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXJDb25uZWN0aW9uKCkgPSAwOworCiAgICAg
Ly8gUG9zdHMgYSB0YXNrIHRvIHRoZSB0aHJlYWQgd2hpY2ggcnVucyB0aGUgbG9hZGluZyBjb2Rl
IChub3JtYWxseSwgdGhlIG1haW4gdGhyZWFkKS4KICAgICB2aXJ0dWFsIHZvaWQgcG9zdFRhc2tU
b0xvYWRlcihTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpUYXNrJiYpID0gMDsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcAppbmRleCA5NDE0NWQ1
ZDQzY2RlYWE1NjVkMTJlZWIxYjg4NjQzYjBhZmY2ZjFhLi5iMTA3ZDY1NzE1ZGE4ZDdmMzM4ZWNh
ZjAwYmY0ODEyZjM3NWY1ZTFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dv
cmtlck1lc3NhZ2luZ1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtl
ck1lc3NhZ2luZ1Byb3h5LmNwcApAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgIkVycm9yRXZl
bnQuaCIKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCiAjaW5jbHVkZSAiRmV0Y2hSZXF1ZXN0Q3Jl
ZGVudGlhbHMuaCIKKyNpbmNsdWRlICJMaWJXZWJSVENQcm92aWRlci5oIgogI2luY2x1ZGUgIk1l
c3NhZ2VFdmVudC5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJTY3JpcHRFeGVjdXRp
b25Db250ZXh0LmgiCkBAIC0xNzUsNiArMTc2LDE1IEBAIFJlZlB0cjxDYWNoZVN0b3JhZ2VDb25u
ZWN0aW9uPiBXb3JrZXJNZXNzYWdpbmdQcm94eTo6Y3JlYXRlQ2FjaGVTdG9yYWdlQ29ubmVjdGlv
CiAgICAgcmV0dXJuIGRvY3VtZW50LnBhZ2UoKS0+Y2FjaGVTdG9yYWdlUHJvdmlkZXIoKS5jcmVh
dGVDYWNoZVN0b3JhZ2VDb25uZWN0aW9uKCk7CiB9CiAKK1JlZlB0cjxSVENEYXRhQ2hhbm5lbFJl
bW90ZUhhbmRsZXJDb25uZWN0aW9uPiBXb3JrZXJNZXNzYWdpbmdQcm94eTo6Y3JlYXRlUlRDRGF0
YUNoYW5uZWxSZW1vdGVIYW5kbGVyQ29ubmVjdGlvbigpCit7CisgICAgQVNTRVJUKGlzTWFpblRo
cmVhZCgpKTsKKyAgICBhdXRvJiBkb2N1bWVudCA9IGRvd25jYXN0PERvY3VtZW50PigqbV9zY3Jp
cHRFeGVjdXRpb25Db250ZXh0KTsKKyAgICBpZiAoIWRvY3VtZW50LnBhZ2UoKSkKKyAgICAgICAg
cmV0dXJuIG51bGxwdHI7CisgICAgcmV0dXJuIGRvY3VtZW50LnBhZ2UoKS0+bGliV2ViUlRDUHJv
dmlkZXIoKS5jcmVhdGVSVENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXJDb25uZWN0aW9uKCk7Cit9
CisKIGJvb2wgV29ya2VyTWVzc2FnaW5nUHJveHk6OnBvc3RUYXNrRm9yTW9kZVRvV29ya2VyT3JX
b3JrbGV0R2xvYmFsU2NvcGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6VGFzayYmIHRhc2ssIGNv
bnN0IFN0cmluZyYgbW9kZSkKIHsKICAgICBpZiAobV9hc2tlZFRvVGVybWluYXRlKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5oIGIvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5oCmluZGV4IGQ5ZTgxZTE1
N2EwZjQ4NTJlNDliNTlkMjU2NmE4YTgwZjVmODE4YWUuLmJlOWY0NjBmMzhlMmQ1NTYzMzVlNzZj
OWY1Y2FjMDhmZTg5MjYxODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29y
a2VyTWVzc2FnaW5nUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1l
c3NhZ2luZ1Byb3h5LmgKQEAgLTgxLDYgKzgxLDcgQEAgcHJpdmF0ZToKICAgICBib29sIGlzV29y
a2VyTWVzc2FnaW5nUHJveHkoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CiAgICAgdm9p
ZCBwb3N0VGFza1RvTG9hZGVyKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlRhc2smJikgZmluYWw7
CiAgICAgUmVmUHRyPENhY2hlU3RvcmFnZUNvbm5lY3Rpb24+IGNyZWF0ZUNhY2hlU3RvcmFnZUNv
bm5lY3Rpb24oKSBmaW5hbDsKKyAgICBSZWZQdHI8UlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVy
Q29ubmVjdGlvbj4gY3JlYXRlUlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVyQ29ubmVjdGlvbigp
IGZpbmFsOwogCiAgICAgdm9pZCB3b3JrZXJUaHJlYWRDcmVhdGVkKERlZGljYXRlZFdvcmtlclRo
cmVhZCYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29u
dGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZFByb3h5LmNwcAppbmRleCBkMmNh
ZDk2MTJmMjRjMTUwZGRlZDdhMWNkOThiMjg2Y2ZhODJjNDA5Li40NWRjYWYzZjcxNDZmM2FhNmIx
ZGM0NDE5ZTA2ZGJmMmNjNDliNThiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWRQcm94
eS5jcHAKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJGZXRjaExvYWRlci5oIgogI2luY2x1
ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKKyNpbmNsdWRlICJMaWJXZWJS
VENQcm92aWRlci5oIgogI2luY2x1ZGUgIkxvYWRlclN0cmF0ZWd5LmgiCiAjaW5jbHVkZSAiTG9n
Z2luZy5oIgogI2luY2x1ZGUgIk1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzLmgiCkBAIC0xNjMsNiAr
MTY0LDEyIEBAIFJlZlB0cjxDYWNoZVN0b3JhZ2VDb25uZWN0aW9uPiBTZXJ2aWNlV29ya2VyVGhy
ZWFkUHJveHk6OmNyZWF0ZUNhY2hlU3RvcmFnZUNvbm5lCiAgICAgcmV0dXJuIG1fY2FjaGVTdG9y
YWdlQ29ubmVjdGlvbjsKIH0KIAorUmVmUHRyPFJUQ0RhdGFDaGFubmVsUmVtb3RlSGFuZGxlckNv
bm5lY3Rpb24+IFNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eTo6Y3JlYXRlUlRDRGF0YUNoYW5uZWxS
ZW1vdGVIYW5kbGVyQ29ubmVjdGlvbigpCit7CisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsK
KyAgICByZXR1cm4gbV9wYWdlLT5saWJXZWJSVENQcm92aWRlcigpLmNyZWF0ZVJUQ0RhdGFDaGFu
bmVsUmVtb3RlSGFuZGxlckNvbm5lY3Rpb24oKTsKK30KKwogc3RkOjp1bmlxdWVfcHRyPEZldGNo
TG9hZGVyPiBTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHk6OmNyZWF0ZUJsb2JMb2FkZXIoRmV0Y2hM
b2FkZXJDbGllbnQmIGNsaWVudCwgY29uc3QgVVJMJiBibG9iVVJMKQogewogICAgIGF1dG8gbG9h
ZGVyID0gbWFrZVVuaXF1ZTxGZXRjaExvYWRlcj4oY2xpZW50LCBudWxscHRyKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJU
aHJlYWRQcm94eS5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2Vy
dmljZVdvcmtlclRocmVhZFByb3h5LmgKaW5kZXggYTFkNGQ5NTk1MzE0YWVmZDA0MTBiYTFiYzA2
ODUzYTM1ZDk2ZTk5My4uMzZkMGZmODg4YmZkMWFmYzZkZDY4ZWFjMzkyYWU3OTVmYjE4Y2Q3YiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2Vydmlj
ZVdvcmtlclRocmVhZFByb3h5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNl
L2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZFByb3h5LmgKQEAgLTg4LDYgKzg4LDcgQEAgcHJp
dmF0ZToKICAgICBib29sIHBvc3RUYXNrRm9yTW9kZVRvV29ya2VyT3JXb3JrbGV0R2xvYmFsU2Nv
cGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6VGFzayYmLCBjb25zdCBTdHJpbmcmIG1vZGUpIGZp
bmFsOwogICAgIHZvaWQgcG9zdFRhc2tUb0xvYWRlcihTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpU
YXNrJiYpIGZpbmFsOwogICAgIFJlZlB0cjxDYWNoZVN0b3JhZ2VDb25uZWN0aW9uPiBjcmVhdGVD
YWNoZVN0b3JhZ2VDb25uZWN0aW9uKCkgZmluYWw7CisgICAgUmVmUHRyPFJUQ0RhdGFDaGFubmVs
UmVtb3RlSGFuZGxlckNvbm5lY3Rpb24+IGNyZWF0ZVJUQ0RhdGFDaGFubmVsUmVtb3RlSGFuZGxl
ckNvbm5lY3Rpb24oKSBmaW5hbDsKIAogICAgIC8vIFdvcmtlckRlYnVnZ2VyUHJveHkKICAgICB2
b2lkIHBvc3RNZXNzYWdlVG9EZWJ1Z2dlcihjb25zdCBTdHJpbmcmKSBmaW5hbDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlz
dHMudHh0CmluZGV4IDNlYTc5NDYwODQxMDcwNjViZTgyOGQ0ZGEyYTlkNmRhNjA3ZTk5MjAuLmQ2
Y2QwOGVhNDA0MTQ0MTU1MGRiMDU2NzUyMzE1Njc0ZTQzYTgwYmEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4
dApAQCAtMTcxLDYgKzE3MSw3IEBAIHNldChXZWJLaXRfTUVTU0FHRVNfSU5fRklMRVMKICAgICBO
ZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya01ETlNSZWdpc3RlcgogICAgIE5ldHdvcmtQcm9j
ZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDTW9uaXRvcgogICAgIE5ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9O
ZXR3b3JrUlRDUHJvdmlkZXIKKyAgICBOZXR3b3JrUHJvY2Vzcy93ZWJydGMvUlRDRGF0YUNoYW5u
ZWxSZW1vdGVNYW5hZ2VyUHJveHkKIAogICAgIFBsdWdpblByb2Nlc3MvUGx1Z2luQ29udHJvbGxl
clByb3h5CiAgICAgUGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9jZXNzCkBAIC0yNDUsNiArMjQ2LDcg
QEAgc2V0KFdlYktpdF9NRVNTQUdFU19JTl9GSUxFUwogICAgIFdlYlByb2Nlc3MvSW5zcGVjdG9y
L1dlYkluc3BlY3RvclVJCiAKICAgICBXZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJU
Q05ldHdvcmsKKyAgICBXZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL1JUQ0RhdGFDaGFubmVsUmVt
b3RlTWFuYWdlcgogICAgIFdlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvV2ViTUROU1JlZ2lzdGVy
CiAgICAgV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9XZWJSVENNb25pdG9yCiAgICAgV2ViUHJv
Y2Vzcy9OZXR3b3JrL3dlYnJ0Yy9XZWJSVENSZXNvbHZlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYktpdC9EZXJp
dmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CmluZGV4IGZiNjIxM2M0Y2MzNmYzMzg1MjhjMThi
OTQ4ZjlhYzg4OTM4YjEyZGUuLjlmMjI5NzEwNzE2YjQxOTMwMGEyNDZkMGQzZmJiODBmY2VhODZi
YjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxl
bGlzdAorKysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QK
QEAgLTcwLDYgKzcwLDcgQEAgJChQUk9KRUNUX0RJUikvTmV0d29ya1Byb2Nlc3MvbWFjL2NvbS5h
cHBsZS5XZWJLaXQuTmV0d29ya1Byb2Nlc3Muc2IuaW4KICQoUFJPSkVDVF9ESVIpL05ldHdvcmtQ
cm9jZXNzL3dlYnJ0Yy9OZXR3b3JrTUROU1JlZ2lzdGVyLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1Rf
RElSKS9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ01vbml0b3IubWVzc2FnZXMuaW4K
ICQoUFJPSkVDVF9ESVIpL05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIu
bWVzc2FnZXMuaW4KKyQoUFJPSkVDVF9ESVIpL05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9SVENEYXRh
Q2hhbm5lbFJlbW90ZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvUGx1
Z2luUHJvY2Vzcy9QbHVnaW5Db250cm9sbGVyUHJveHkubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9E
SVIpL1BsdWdpblByb2Nlc3MvUGx1Z2luUHJvY2Vzcy5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJ
UikvUGx1Z2luUHJvY2Vzcy9XZWJQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgpAQCAtMTY4
LDYgKzE2OSw3IEBAICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJj
ZUxvYWRlci5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9OZXR3b3JrL1dl
YlNvY2tldENoYW5uZWwubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvTmV0
d29yay9XZWJTb2NrZXRTdHJlYW0ubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nl
c3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDTmV0d29yay5tZXNzYWdlcy5pbgorJChQUk9KRUNU
X0RJUikvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9SVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFn
ZXIubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMv
V2ViTUROU1JlZ2lzdGVyLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL05l
dHdvcmsvd2VicnRjL1dlYlJUQ01vbml0b3IubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dl
YlByb2Nlc3MvTmV0d29yay93ZWJydGMvV2ViUlRDUmVzb2x2ZXIubWVzc2FnZXMuaW4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QgYi9T
b3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CmluZGV4IGYyNTVi
NzNjMmEwZjEwYzg2MmMxYzE4ZmU5NWE0ZjczZmNmNzE4MDEuLjgzOThjZmMwMTNkM2NhZmY1N2M3
Y2YxZDI4YWZhNDM4ZTM3ZmRmMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNv
dXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNl
cy1vdXRwdXQueGNmaWxlbGlzdApAQCAtMTMzLDYgKzEzMywxMiBAQCAkKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzUHJveHlNZXNzYWdlc1Jl
cGxpZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUGx1
Z2luUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZl
ZFNvdXJjZXMvV2ViS2l0Mi9QbHVnaW5Qcm94eU1lc3NhZ2VzLmgKICQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1BsdWdpblByb3h5TWVzc2FnZXNSZXBsaWVzLmgK
KyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JUQ0RhdGFDaGFu
bmVsUmVtb3RlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlck1lc3Nh
Z2VzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JUQ0Rh
dGFDaGFubmVsUmVtb3RlTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oCiskKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXJQ
cm94eU1lc3NhZ2VSZWNlaXZlci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291
cmNlcy9XZWJLaXQyL1JUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlclByb3h5TWVzc2FnZXMuaAor
JChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUlRDRGF0YUNoYW5u
ZWxSZW1vdGVNYW5hZ2VyUHJveHlNZXNzYWdlc1JlcGxpZXMuaAogJChCVUlMVF9QUk9EVUNUU19E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXJN
ZXNzYWdlUmVjZWl2ZXIuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMv
V2ViS2l0Mi9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlck1lc3NhZ2VzLmNwcAogJChCVUlM
VF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQXVkaW9EZXN0aW5h
dGlvbk1hbmFnZXJNZXNzYWdlcy5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRT
b3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggYjZh
MGMwNDNiYmI2ZDgzOGI2N2QwNzM1MTM4NjcxOWFhYmZiMDI5My4uNWZkNThkMjI0YTdjN2Q5NGM3
ODIyNGNhNTA1NjAxYTNiMmZlNzM2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9EZXJpdmVk
U291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAt
MTMyLDYgKzEzMiw3IEBAIE1FU1NBR0VfUkVDRUlWRVJTID0gXAogCU5ldHdvcmtQcm9jZXNzL3dl
YnJ0Yy9OZXR3b3JrTUROU1JlZ2lzdGVyIFwKIAlOZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29y
a1JUQ1Byb3ZpZGVyIFwKIAlOZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ01vbml0b3Ig
XAorCU5ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9SVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXJQcm94
eSBcCiAJTmV0d29ya1Byb2Nlc3MvQ29va2llcy9XZWJDb29raWVNYW5hZ2VyIFwKIAlTaGFyZWQv
UGx1Z2lucy9OUE9iamVjdE1lc3NhZ2VSZWNlaXZlciBcCiAJU2hhcmVkL0F1eGlsaWFyeVByb2Nl
c3MgXApAQCAtMjAzLDggKzIwNCw5IEBAIE1FU1NBR0VfUkVDRUlWRVJTID0gXAogCVdlYlByb2Nl
c3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24gXAogCVdlYlByb2Nlc3MvTmV0d29y
ay9XZWJTb2NrZXRTdHJlYW0gXAogCVdlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRl
ciBcCi0JV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9XZWJSVENNb25pdG9yIFwKIAlXZWJQcm9j
ZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ05ldHdvcmsgXAorCVdlYlByb2Nlc3MvTmV0d29y
ay93ZWJydGMvUlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyIFwKKwlXZWJQcm9jZXNzL05ldHdv
cmsvd2VicnRjL1dlYlJUQ01vbml0b3IgXAogCVdlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvV2Vi
TUROU1JlZ2lzdGVyIFwKIAlXZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL1dlYlJUQ1Jlc29sdmVy
IFwKIAlXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRldmljZU9yaWVudGF0aW9uVXBkYXRl
UHJvdmlkZXIgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAppbmRleCA0ZjU4ODVlOGY3NGYz
MjllYmQzZWViZGZlYWE5NjdmMmM3YTZmNGMyLi4yODQ2YzZmNGIzYmZhNjdhOTYzNDE5M2M2MDY4
Mzg0Y2MxYTcwZjg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcApAQCAtNTIsNiArNTIs
NyBAQAogI2luY2x1ZGUgIk5ldHdvcmtTb2NrZXRTdHJlYW1NZXNzYWdlcy5oIgogI2luY2x1ZGUg
IlBpbmdMb2FkLmgiCiAjaW5jbHVkZSAiUHJlY29ubmVjdFRhc2suaCIKKyNpbmNsdWRlICJSVENE
YXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXJQcm94eS5oIgogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJG
ZXRjaFRhc2tNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgog
I2luY2x1ZGUgIldlYkVycm9ycy5oIgpAQCAtMTQ3LDYgKzE0OCw5IEBAIE5ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzOjp+TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoKQogICAgIGlm
IChtX3J0Y1Byb3ZpZGVyKQogICAgICAgICBtX3J0Y1Byb3ZpZGVyLT5jbG9zZSgpOwogI2VuZGlm
CisjaWYgRU5BQkxFKFdFQl9SVEMpCisgICAgdW5yZWdpc3RlclRvUlRDRGF0YUNoYW5uZWxQcm94
eSgpOworI2VuZGlmCiAKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCiAgICAgdW5yZWdpc3Rl
clNXQ29ubmVjdGlvbigpOwpAQCAtMjc4LDYgKzI4MiwzNCBAQCB2b2lkIE5ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzOjpjcmVhdGVSVENQcm92aWRlcihDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KCk+JgogICAgIGNhbGxiYWNrKCk7CiB9CiAKKyNpZiBFTkFCTEUoV0VCX1JUQykKK3ZvaWQgTmV0
d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNvbm5lY3RUb1JUQ0RhdGFDaGFubmVsUmVtb3Rl
U291cmNlKFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsSWRlbnRpZmllciBsb2NhbElkZW50aWZpZXIs
IFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsSWRlbnRpZmllciByZW1vdGVJZGVudGlmaWVyLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPGJvb2w+KT4mJiBjYWxsYmFjaykKK3sKKyAgICBh
dXRvKiBjb25uZWN0aW9uVG9XZWJQcm9jZXNzID0gbV9uZXR3b3JrUHJvY2Vzcy0+d2ViUHJvY2Vz
c0Nvbm5lY3Rpb24ocmVtb3RlSWRlbnRpZmllci5wcm9jZXNzSWRlbnRpZmllcik7CisgICAgaWYg
KCFjb25uZWN0aW9uVG9XZWJQcm9jZXNzKSB7CisgICAgICAgIGNhbGxiYWNrKGZhbHNlKTsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKyAgICByZWdpc3RlclRvUlRDRGF0YUNoYW5uZWxQcm94eSgp
OworICAgIGNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MtPnJlZ2lzdGVyVG9SVENEYXRhQ2hhbm5lbFBy
b3h5KCk7CisgICAgY29ubmVjdGlvblRvV2ViUHJvY2Vzcy0+Y29ubmVjdGlvbigpLnNlbmRXaXRo
QXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpDb25uZWN0VG9S
VENEYXRhQ2hhbm5lbFJlbW90ZVNvdXJjZSB7IHJlbW90ZUlkZW50aWZpZXIsIGxvY2FsSWRlbnRp
ZmllciB9LCBXVEZNb3ZlKGNhbGxiYWNrKSwgMCk7Cit9CisKK3ZvaWQgTmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3M6OnJlZ2lzdGVyVG9SVENEYXRhQ2hhbm5lbFByb3h5KCkKK3sKKyAgICBp
ZiAobV9pc1JlZ2lzdGVyZWRUb1JUQ0RhdGFDaGFubmVsUHJveHkpCisgICAgICAgIHJldHVybjsK
KyAgICBtX2lzUmVnaXN0ZXJlZFRvUlRDRGF0YUNoYW5uZWxQcm94eSA9IHRydWU7CisgICAgbV9u
ZXR3b3JrUHJvY2Vzcy0+cnRjRGF0YUNoYW5uZWxQcm94eSgpLnJlZ2lzdGVyQ29ubmVjdGlvblRv
V2ViUHJvY2VzcygqdGhpcyk7Cit9CisKK3ZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3M6OnVucmVnaXN0ZXJUb1JUQ0RhdGFDaGFubmVsUHJveHkoKQoreworICAgIGlmIChtX2lzUmVn
aXN0ZXJlZFRvUlRDRGF0YUNoYW5uZWxQcm94eSkKKyAgICAgICAgbV9uZXR3b3JrUHJvY2Vzcy0+
cnRjRGF0YUNoYW5uZWxQcm94eSgpLnVucmVnaXN0ZXJDb25uZWN0aW9uVG9XZWJQcm9jZXNzKCp0
aGlzKTsKK30KKyNlbmRpZgorCiBDYWNoZVN0b3JhZ2VFbmdpbmVDb25uZWN0aW9uJiBOZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Y2FjaGVTdG9yYWdlQ29ubmVjdGlvbigpCiB7CiAgICAg
aWYgKCFtX2NhY2hlU3RvcmFnZUNvbm5lY3Rpb24pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmggYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKaW5k
ZXggZGEwNmY3MzllZmE1ZDUzNDBlOWE2MTgyMzg1YmU1YjA2NzNlMjNhZC4uOWM1MjlmOTJjYWUy
YzczNDM0NzczNDNlNDUxMDg4MzdjMjY4M2EzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaApA
QCAtNDgsNiArNDgsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvTmV0d29ya1N0b3JhZ2VTZXNzaW9u
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdlSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvUHJvY2Vzc0lkZW50aWZpZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1JUQ0RhdGFDaGFubmVs
SWRlbnRpZmllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVnaXN0cmFibGVEb21haW4uaD4KICNp
bmNsdWRlIDxXZWJDb3JlL1dlYlNvY2tldElkZW50aWZpZXIuaD4KICNpbmNsdWRlIDx3dGYvT3B0
aW9uU2V0Lmg+CkBAIC0yNTAsNiArMjUxLDkgQEAgcHJpdmF0ZToKICNlbmRpZgogCiAgICAgdm9p
ZCBjcmVhdGVSVENQcm92aWRlcihDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOworI2lmIEVO
QUJMRShXRUJfUlRDKQorICAgIHZvaWQgY29ubmVjdFRvUlRDRGF0YUNoYW5uZWxSZW1vdGVTb3Vy
Y2UoV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWxJZGVudGlmaWVyIHNvdXJjZSwgV2ViQ29yZTo6UlRD
RGF0YUNoYW5uZWxJZGVudGlmaWVyIGhhbmRsZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0
aW9uYWw8Ym9vbD4pPiYmKTsKKyNlbmRpZgogCiAgICAgdm9pZCBjcmVhdGVOZXdNZXNzYWdlUG9y
dENoYW5uZWwoY29uc3QgV2ViQ29yZTo6TWVzc2FnZVBvcnRJZGVudGlmaWVyJiBwb3J0MSwgY29u
c3QgV2ViQ29yZTo6TWVzc2FnZVBvcnRJZGVudGlmaWVyJiBwb3J0Mik7CiAgICAgdm9pZCBlbnRh
bmdsZUxvY2FsUG9ydEluVGhpc1Byb2Nlc3NUb1JlbW90ZShjb25zdCBXZWJDb3JlOjpNZXNzYWdl
UG9ydElkZW50aWZpZXImIGxvY2FsLCBjb25zdCBXZWJDb3JlOjpNZXNzYWdlUG9ydElkZW50aWZp
ZXImIHJlbW90ZSk7CkBAIC0yNzEsNiArMjc1LDggQEAgcHJpdmF0ZToKICNlbmRpZgogI2lmIEVO
QUJMRShXRUJfUlRDKQogICAgIE5ldHdvcmtNRE5TUmVnaXN0ZXImIG1kbnNSZWdpc3RlcigpIHsg
cmV0dXJuIG1fbWRuc1JlZ2lzdGVyOyB9CisgICAgdm9pZCByZWdpc3RlclRvUlRDRGF0YUNoYW5u
ZWxQcm94eSgpOworICAgIHZvaWQgdW5yZWdpc3RlclRvUlRDRGF0YUNoYW5uZWxQcm94eSgpOwog
I2VuZGlmCiAKICAgICBDYWNoZVN0b3JhZ2VFbmdpbmVDb25uZWN0aW9uJiBjYWNoZVN0b3JhZ2VD
b25uZWN0aW9uKCk7CkBAIC0zODUsNiArMzkxLDEwIEBAIHByaXZhdGU6CiAgICAgc3RkOjp1bmlx
dWVfcHRyPFdlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbj4gbV9zd0NvbnRleHRDb25uZWN0
aW9uOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoV0VCX1JUQykKKyAgICBib29sIG1faXNSZWdpc3Rl
cmVkVG9SVENEYXRhQ2hhbm5lbFByb3h5IHsgZmFsc2UgfTsKKyNlbmRpZgorCiAjaWYgRU5BQkxF
KEFQUExFX1BBWV9SRU1PVEVfVUkpCiAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYlBheW1lbnRDb29y
ZGluYXRvclByb3h5PiBtX3BheW1lbnRDb29yZGluYXRvcjsKICNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KaW5kZXggZmY4ZDRhMTc5ZjFmYWZkNjJiNWQz
ZmE2NGU5OWMyMDhhYThmYmY5YS4uOTQ4YmNjYTQzZGE4MTQzNWI3MWZlOGQ5NzllODBkNzJlODJk
N2JhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCkBAIC04
Nyw2ICs4Nyw5IEBAIG1lc3NhZ2VzIC0+IE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzIExl
Z2FjeVJlY2VpdmVyIHsKICNlbmRpZgogCiAgICAgQ3JlYXRlUlRDUHJvdmlkZXIoKSAtPiAoKSBB
c3luYworI2lmIEVOQUJMRShXRUJfUlRDKQorICAgIENvbm5lY3RUb1JUQ0RhdGFDaGFubmVsUmVt
b3RlU291cmNlKHN0cnVjdCBXZWJDb3JlOjpSVENEYXRhQ2hhbm5lbElkZW50aWZpZXIgc291cmNl
LCBzdHJ1Y3QgV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWxJZGVudGlmaWVyIGhhbmRsZXIpIC0+IChP
cHRpb25hbDxib29sPiByZXN1bHQpIEFzeW5jCisjZW5kaWYKIAogICAgIFVwZGF0ZVF1b3RhQmFz
ZWRPblNwYWNlVXNhZ2VGb3JUZXN0aW5nKHN0cnVjdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4gb3Jp
Z2luKQogICAgIENyZWF0ZU5ld01lc3NhZ2VQb3J0Q2hhbm5lbChzdHJ1Y3QgV2ViQ29yZTo6TWVz
c2FnZVBvcnRJZGVudGlmaWVyIHBvcnQxLCBzdHJ1Y3QgV2ViQ29yZTo6TWVzc2FnZVBvcnRJZGVu
dGlmaWVyIHBvcnQyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQ
cm9jZXNzLmNwcAppbmRleCA5M2Q1YTM3N2Y1ZmI2NDFhMDMwZmE2ZmM1ZmM5MzJkNDFjNDRjOWE3
Li4zYTBlN2Q2NGQ1NGRlZmQwNmRkYjkwYWI0NzA5ZGQ2YWYxMGY1YzI3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcApAQCAtMjgyMiw0ICsy
ODIyLDE0IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmNsZWFyQXBwQm91bmROYXZpZ2F0aW9uRGF0
YShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIENvbXBsCiB9CiAjZW5kaWYKIAorI2lmIEVOQUJM
RShXRUJfUlRDKQorUlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyUHJveHkmIE5ldHdvcmtQcm9j
ZXNzOjpydGNEYXRhQ2hhbm5lbFByb3h5KCkKK3sKKyAgICBBU1NFUlQoaXNNYWluUnVuTG9vcCgp
KTsKKyAgICBpZiAoIW1fcnRjRGF0YUNoYW5uZWxQcm94eSkKKyAgICAgICAgbV9ydGNEYXRhQ2hh
bm5lbFByb3h5ID0gUlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyUHJveHk6OmNyZWF0ZSgpOwor
ICAgIHJldHVybiAqbV9ydGNEYXRhQ2hhbm5lbFByb3h5OworfQorI2VuZGlmCisKIH0gLy8gbmFt
ZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJv
Y2Vzcy5oCmluZGV4IDA3NDE3ODg5NTJkNTE5MzE0MWYyYzhiMzJkOTE5ZWU1M2ZlNzZkNDcuLmY2
M2Y2MmQ2ZTdhNTM2YjkxM2I0N2ZiMTI0NjUzYWQwMGMxODYxZDcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKQEAgLTMyLDYgKzMyLDcgQEAKICNp
bmNsdWRlICJEb3dubG9hZE1hbmFnZXIuaCIKICNpbmNsdWRlICJMb2NhbFN0b3JhZ2VEYXRhYmFz
ZVRyYWNrZXIuaCIKICNpbmNsdWRlICJOZXR3b3JrQ29udGVudFJ1bGVMaXN0TWFuYWdlci5oIgor
I2luY2x1ZGUgIlJUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlclByb3h5LmgiCiAjaW5jbHVkZSAi
U2FuZGJveEV4dGVuc2lvbi5oIgogI2luY2x1ZGUgIldlYklEQlNlcnZlci5oIgogI2luY2x1ZGUg
IldlYlBhZ2VQcm94eUlkZW50aWZpZXIuaCIKQEAgLTM4MCw2ICszODEsMTAgQEAgcHVibGljOgog
ICAgIHZvaWQgY2xlYXJBcHBCb3VuZE5hdmlnYXRpb25EYXRhKFBBTDo6U2Vzc2lvbklELCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoV0VCX1JUQykK
KyAgICBSVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXJQcm94eSYgcnRjRGF0YUNoYW5uZWxQcm94
eSgpOworI2VuZGlmCisKIHByaXZhdGU6CiAgICAgdm9pZCBwbGF0Zm9ybUluaXRpYWxpemVOZXR3
b3JrUHJvY2Vzcyhjb25zdCBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYpOwogCkBA
IC01ODQsNiArNTg5LDEwIEBAIHByaXZhdGU6CiAgICAgSGFzaE1hcDxQQUw6OlNlc3Npb25JRCwg
c3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlNXU2VydmVyPj4gbV9zd1NlcnZlcnM7CiAjZW5kaWYK
ICAgICAKKyNpZiBFTkFCTEUoV0VCX1JUQykKKyAgICBSZWZQdHI8UlRDRGF0YUNoYW5uZWxSZW1v
dGVNYW5hZ2VyUHJveHk+IG1fcnRjRGF0YUNoYW5uZWxQcm94eTsKKyNlbmRpZgorCiAgICAgTG9j
ayBtX3Nlc3Npb25TdG9yYWdlUXVvdGFNYW5hZ2Vyc0xvY2s7CiAgICAgSGFzaE1hcDxQQUw6OlNl
c3Npb25JRCwgc3RkOjp1bmlxdWVfcHRyPFNlc3Npb25TdG9yYWdlUXVvdGFNYW5hZ2VyPj4gbV9z
ZXNzaW9uU3RvcmFnZVF1b3RhTWFuYWdlcnM7CiAgICAgYm9vbCBtX3F1b3RhTG9nZ2luZ0VuYWJs
ZWQgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93
ZWJydGMvUlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvUlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyUHJveHku
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjNlZWJjYTM1YTFlZWMyODFlMjBiNzVhMGJiZDMyODk4Y2FmNDFlNTQK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9S
VENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXJQcm94eS5jcHAKQEAgLTAsMCArMSw5NyBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAg
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgorICogQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiUlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyUHJveHkuaCIK
KworI2lmIEVOQUJMRShXRUJfUlRDKQorCisjaW5jbHVkZSAiTmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MuaCIKKyNpbmNsdWRlICJSVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXJNZXNzYWdl
cy5oIgorI2luY2x1ZGUgIlJUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlclByb3h5TWVzc2FnZXMu
aCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1JUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlclBy
b3h5OjpSVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXJQcm94eSgpCisgICAgOiBtX3F1ZXVlKFdv
cmtRdWV1ZTo6Y3JlYXRlKCJSVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXJQcm94eSIpKQorewor
fQorCit2b2lkIFJUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlclByb3h5OjpyZWdpc3RlckNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MoTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGNvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MpCit7CisgICAgbV9xdWV1ZS0+ZGlzcGF0Y2goW3RoaXMsIHByb3RlY3Rl
ZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgaWRlbnRpZmllciA9IGNvbm5lY3Rpb25Ub1dlYlByb2Nl
c3Mud2ViUHJvY2Vzc0lkZW50aWZpZXIoKSwgY29ubmVjdGlvbiA9IG1ha2VSZWYoY29ubmVjdGlv
blRvV2ViUHJvY2Vzcy5jb25uZWN0aW9uKCkpXSgpIG11dGFibGUgeworICAgICAgICBBU1NFUlQo
IW1fd2ViUHJvY2Vzc0Nvbm5lY3Rpb25zLmNvbnRhaW5zKGlkZW50aWZpZXIpKTsKKyAgICAgICAg
bV93ZWJQcm9jZXNzQ29ubmVjdGlvbnMuYWRkKGlkZW50aWZpZXIsIFdURk1vdmUoY29ubmVjdGlv
bikpOworICAgIH0pOworICAgIGNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY29ubmVjdGlvbigpLmFk
ZFdvcmtRdWV1ZU1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6UlRDRGF0YUNoYW5uZWxSZW1vdGVN
YW5hZ2VyUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV9xdWV1ZSwgdGhpcyk7Cit9CisK
K3ZvaWQgUlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyUHJveHk6OnVucmVnaXN0ZXJDb25uZWN0
aW9uVG9XZWJQcm9jZXNzKE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBjb25uZWN0aW9u
VG9XZWJQcm9jZXNzKQoreworICAgIG1fcXVldWUtPmRpc3BhdGNoKFt0aGlzLCBwcm90ZWN0ZWRU
aGlzID0gbWFrZVJlZigqdGhpcyksIGlkZW50aWZpZXIgPSBjb25uZWN0aW9uVG9XZWJQcm9jZXNz
LndlYlByb2Nlc3NJZGVudGlmaWVyKCldIHsKKyAgICAgICAgQVNTRVJUKG1fd2ViUHJvY2Vzc0Nv
bm5lY3Rpb25zLmNvbnRhaW5zKGlkZW50aWZpZXIpKTsKKyAgICAgICAgbV93ZWJQcm9jZXNzQ29u
bmVjdGlvbnMucmVtb3ZlKGlkZW50aWZpZXIpOworICAgIH0pOworICAgIGNvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MuY29ubmVjdGlvbigpLnJlbW92ZVdvcmtRdWV1ZU1lc3NhZ2VSZWNlaXZlcihNZXNz
YWdlczo6UlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5h
bWUoKSk7Cit9CisKK3ZvaWQgUlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyUHJveHk6OnNlbmRE
YXRhKFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsSWRlbnRpZmllciBpZGVudGlmaWVyLCBib29sIGlz
UmF3LCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIGRhdGEpCit7CisgICAgaWYgKGF1dG8qIGNv
bm5lY3Rpb24gPSBtX3dlYlByb2Nlc3NDb25uZWN0aW9ucy5nZXQoaWRlbnRpZmllci5wcm9jZXNz
SWRlbnRpZmllcikpCisgICAgICAgIGNvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlJUQ0RhdGFD
aGFubmVsUmVtb3RlTWFuYWdlcjo6U2VuZERhdGEgeyBpZGVudGlmaWVyLCBpc1JhdywgZGF0YSB9
LCAwKTsKK30KKwordm9pZCBSVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXJQcm94eTo6Y2xvc2Uo
V2ViQ29yZTo6UlRDRGF0YUNoYW5uZWxJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAgaWYg
KGF1dG8qIGNvbm5lY3Rpb24gPSBtX3dlYlByb2Nlc3NDb25uZWN0aW9ucy5nZXQoaWRlbnRpZmll
ci5wcm9jZXNzSWRlbnRpZmllcikpCisgICAgICAgIGNvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6
OlJUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlcjo6Q2xvc2UgeyBpZGVudGlmaWVyIH0sIDApOwor
fQorCit2b2lkIFJUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlclByb3h5OjpjaGFuZ2VSZWFkeVN0
YXRlKFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3Jl
OjpSVENEYXRhQ2hhbm5lbFN0YXRlIHN0YXRlKQoreworICAgIGlmIChhdXRvKiBjb25uZWN0aW9u
ID0gbV93ZWJQcm9jZXNzQ29ubmVjdGlvbnMuZ2V0KGlkZW50aWZpZXIucHJvY2Vzc0lkZW50aWZp
ZXIpKQorICAgICAgICBjb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpSVENEYXRhQ2hhbm5lbFJl
bW90ZU1hbmFnZXI6OkNoYW5nZVJlYWR5U3RhdGUgeyBpZGVudGlmaWVyLCBzdGF0ZSB9LCAwKTsK
K30KKwordm9pZCBSVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXJQcm94eTo6cmVjZWl2ZURhdGEo
V2ViQ29yZTo6UlRDRGF0YUNoYW5uZWxJZGVudGlmaWVyIGlkZW50aWZpZXIsIGJvb2wgaXNSYXcs
IGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgZGF0YSkKK3sKKyAgICBpZiAoYXV0byogY29ubmVj
dGlvbiA9IG1fd2ViUHJvY2Vzc0Nvbm5lY3Rpb25zLmdldChpZGVudGlmaWVyLnByb2Nlc3NJZGVu
dGlmaWVyKSkKKyAgICAgICAgY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6UlRDRGF0YUNoYW5u
ZWxSZW1vdGVNYW5hZ2VyOjpSZWNlaXZlRGF0YSB7IGlkZW50aWZpZXIsIGlzUmF3LCBkYXRhIH0s
IDApOworfQorCit2b2lkIFJUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlclByb3h5OjpkZXRlY3RF
cnJvcihXZWJDb3JlOjpSVENEYXRhQ2hhbm5lbElkZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAg
ICBpZiAoYXV0byogY29ubmVjdGlvbiA9IG1fd2ViUHJvY2Vzc0Nvbm5lY3Rpb25zLmdldChpZGVu
dGlmaWVyLnByb2Nlc3NJZGVudGlmaWVyKSkKKyAgICAgICAgY29ubmVjdGlvbi0+c2VuZChNZXNz
YWdlczo6UlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyOjpEZXRlY3RFcnJvciB7IGlkZW50aWZp
ZXIgfSwgMCk7Cit9CisKK3ZvaWQgUlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyUHJveHk6OmJ1
ZmZlcmVkQW1vdW50SXNEZWNyZWFzaW5nKFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsSWRlbnRpZmll
ciBpZGVudGlmaWVyLCBzaXplX3QgYW1vdW50KQoreworICAgIGlmIChhdXRvKiBjb25uZWN0aW9u
ID0gbV93ZWJQcm9jZXNzQ29ubmVjdGlvbnMuZ2V0KGlkZW50aWZpZXIucHJvY2Vzc0lkZW50aWZp
ZXIpKQorICAgICAgICBjb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpSVENEYXRhQ2hhbm5lbFJl
bW90ZU1hbmFnZXI6OkJ1ZmZlcmVkQW1vdW50SXNEZWNyZWFzaW5nIHsgaWRlbnRpZmllciwgYW1v
dW50IH0sIDApOworfQorCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy93ZWJydGMvUlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyUHJveHkuaCBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL1JUQ0RhdGFDaGFubmVsUmVtb3Rl
TWFuYWdlclByb3h5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmEyZDYxODMxNmEwMDljNDYwMDJjN2Q4ODRhZWZm
MzVlN2JkMDE1YgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3Mvd2VicnRjL1JUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlclByb3h5LmgKQEAgLTAsMCArMSw2
NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTgorICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShXRUJfUlRDKQor
CisjaW5jbHVkZSAiQ29ubmVjdGlvbi5oIgorI2luY2x1ZGUgPFdlYkNvcmUvUlRDRGF0YUNoYW5u
ZWxSZW1vdGVIYW5kbGVyQ29ubmVjdGlvbi5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUlRDRGF0YUNo
YW5uZWxSZW1vdGVTb3VyY2VDb25uZWN0aW9uLmg+CisjaW5jbHVkZSA8d3RmL1dvcmtRdWV1ZS5o
PgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3M7CisKK2NsYXNzIFJUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlclByb3h5IGZpbmFsIDog
cHVibGljIElQQzo6Q29ubmVjdGlvbjo6V29ya1F1ZXVlTWVzc2FnZVJlY2VpdmVyIHsKK3B1Ymxp
YzoKKyAgICBzdGF0aWMgUmVmPFJUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlclByb3h5PiBjcmVh
dGUoKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IFJUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlclBy
b3h5KTsgfQorCisgICAgdm9pZCByZWdpc3RlckNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoTmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmKTsKKyAgICB2b2lkIHVucmVnaXN0ZXJDb25uZWN0aW9u
VG9XZWJQcm9jZXNzKE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzJik7CisKK3ByaXZhdGU6
CisgICAgUlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyUHJveHkoKTsKKworICAgIC8vIElQQzo6
Q29ubmVjdGlvbjo6V29ya1F1ZXVlTWVzc2FnZVJlY2VpdmVyCisgICAgdm9pZCBkaWRSZWNlaXZl
TWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBmaW5hbDsKKworICAgIC8v
IFRvIHNvdXJjZQorICAgIHZvaWQgc2VuZERhdGEoV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWxJZGVu
dGlmaWVyLCBib29sIGlzUmF3LCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmKTsKKyAgICB2b2lk
IGNsb3NlKFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsSWRlbnRpZmllcik7CisKKyAgICAvLyBUbyBo
YW5kbGVyCisgICAgdm9pZCBjaGFuZ2VSZWFkeVN0YXRlKFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVs
SWRlbnRpZmllciwgV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWxTdGF0ZSk7CisgICAgdm9pZCByZWNl
aXZlRGF0YShXZWJDb3JlOjpSVENEYXRhQ2hhbm5lbElkZW50aWZpZXIsIGJvb2wgaXNSYXcsIGNv
bnN0IElQQzo6RGF0YVJlZmVyZW5jZSYpOworICAgIHZvaWQgZGV0ZWN0RXJyb3IoV2ViQ29yZTo6
UlRDRGF0YUNoYW5uZWxJZGVudGlmaWVyKTsKKyAgICB2b2lkIGJ1ZmZlcmVkQW1vdW50SXNEZWNy
ZWFzaW5nKFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsSWRlbnRpZmllciwgc2l6ZV90IGFtb3VudCk7
CisKKyAgICBSZWY8V29ya1F1ZXVlPiBtX3F1ZXVlOworICAgIEhhc2hNYXA8V2ViQ29yZTo6UHJv
Y2Vzc0lkZW50aWZpZXIsIFJlZjxJUEM6OkNvbm5lY3Rpb24+PiBtX3dlYlByb2Nlc3NDb25uZWN0
aW9uczsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKFdF
Ql9SVEMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9S
VENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL1JUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlclByb3h5
Lm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUyYzIxYzkyZjk3NTEzNzAyODk3ZDU2YjU2NWE3NThh
MDMyNzFhMDkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L3dlYnJ0Yy9SVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgpAQCAt
MCwwICsxLDM3IEBACisjIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4g
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisjIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAg
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyMgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElN
UExJRUQKKyMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRQorIyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgorIyBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMCisjIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisjIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisjIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksCisjIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyNp
ZiBFTkFCTEUoV0VCX1JUQykKKworbWVzc2FnZXMgLT4gUlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5h
Z2VyUHJveHkgTm90UmVmQ291bnRlZCB7CisgICAgLy8gVG8gc291cmNlCisgICAgU2VuZERhdGEo
c3RydWN0IFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsSWRlbnRpZmllciBzb3VyY2UsIGJvb2wgaXNS
YXcsIElQQzo6RGF0YVJlZmVyZW5jZSB0ZXh0KTsKKyAgICBDbG9zZShzdHJ1Y3QgV2ViQ29yZTo6
UlRDRGF0YUNoYW5uZWxJZGVudGlmaWVyIHNvdXJjZSk7CisKKyAgICAvLyBUbyBoYW5kbGVyCivC
oCDCoCBDaGFuZ2VSZWFkeVN0YXRlKHN0cnVjdCBXZWJDb3JlOjpSVENEYXRhQ2hhbm5lbElkZW50
aWZpZXIgaGFuZGxlciwgZW51bTp1aW50OF90IFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsU3RhdGUg
c3RhdGUpOworwqAgwqAgUmVjZWl2ZURhdGEoc3RydWN0IFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVs
SWRlbnRpZmllciBoYW5kbGVyLCBib29sIGlzUmF3LCBJUEM6OkRhdGFSZWZlcmVuY2UgZGF0YSk7
CivCoCDCoCBEZXRlY3RFcnJvcihzdHJ1Y3QgV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWxJZGVudGlm
aWVyIGhhbmRsZXIpOworwqAgwqAgQnVmZmVyZWRBbW91bnRJc0RlY3JlYXNpbmcoc3RydWN0IFdl
YkNvcmU6OlJUQ0RhdGFDaGFubmVsSWRlbnRpZmllciBoYW5kbGVyLCBzaXplX3QgYW1vdW50KTsK
K30KKworI2VuZGlmIC8vIEVOQUJMRShXRUJfUlRDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKaW5kZXggNTkzYmFjZTQ1
NzUwY2ExYWNjYWE2ZDE3N2Q0NTY4ZmNmNzcxMzc5Zi4uN2FlYzE1ODA3NWFhOTU1ZTQ3NTI2MGY0
YTI4Y2E5NzlmNTM2Yjg1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAor
KysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CkBAIC0xMzAsNiArMTMwLDcgQEAgTmV0d29y
a1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlU3VicmVzb3VyY2VzRW50cnkuY3BwCiBOZXR3b3Jr
UHJvY2Vzcy9jYWNoZS9QcmVmZXRjaENhY2hlLmNwcAogCiBOZXR3b3JrUHJvY2Vzcy93ZWJydGMv
TmV0d29ya01ETlNSZWdpc3Rlci5jcHAKK05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9SVENEYXRhQ2hh
bm5lbFJlbW90ZU1hbmFnZXJQcm94eS5jcHAKIAogLy8gVE9ETzogV2Ugc2hvdWxkIHVuaWZ5IHRo
ZXNlIGZpbGVzIG9uY2UgR1RLJ3MgUGx1Z2luUHJvY2VzczIgaXMgcmVtb3ZlZC4KIFBsYXRmb3Jt
L0xvZ2dpbmcuY3BwIEBuby11bmlmeQpAQCAtNjMwLDYgKzYzMSw3IEBAIFdlYlByb2Nlc3MvTmV0
d29yay93ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuY3BwCiBXZWJQcm9jZXNzL05ldHdvcmsvd2Vi
cnRjL0xpYldlYlJUQ1Jlc29sdmVyLmNwcAogV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJX
ZWJSVENTb2NrZXQuY3BwCiBXZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1NvY2tl
dEZhY3RvcnkuY3BwCitXZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL1JUQ0RhdGFDaGFubmVsUmVt
b3RlTWFuYWdlci5jcHAKIFdlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvV2ViTUROU1JlZ2lzdGVy
LmNwcAogV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9XZWJSVENNb25pdG9yLmNwcAogV2ViUHJv
Y2Vzcy9OZXR3b3JrL3dlYnJ0Yy9XZWJSVENSZXNvbHZlci5jcHAKQEAgLTcxOCw1ICs3MjAsNyBA
QCBXZWJQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZUFyZWFNYXAuY3BwCiBXZWJQcm9jZXNzL1dl
YlN0b3JhZ2UvU3RvcmFnZU5hbWVzcGFjZUltcGwuY3BwCiBXZWJQcm9jZXNzL1dlYlN0b3JhZ2Uv
V2ViU3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVyLmNwcAogCitSVENEYXRhQ2hhbm5lbFJlbW90ZU1h
bmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCitSVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXJQcm94
eU1lc3NhZ2VSZWNlaXZlci5jcHAKIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMTWVzc2FnZVJlY2Vp
dmVyLmNwcAogUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4
IDIwNDNiMDZiNWFjNmRlMzc0M2E1Yzc3YTI4MmExNDUyZTVjM2UyNDAuLjIzNzkxNGY0MTc5YmFl
YWQ5NzljMDBhOTBmOTQ4YzQ1OTAwZGQ3MTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
S2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMzY1MCw2ICszNjUwLDEwIEBACiAJCTQxMEJB
MTM5MjU3MTM1RjIwMDJFMkY4QSAvKiBOZXR3b3JrUlRDU29ja2V0Q29jb2EubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBOZXR3b3JrUlRDU29ja2V0Q29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTQxMEJBMTNBMjU3MTM1RjIwMDJFMkY4QSAvKiBOZXR3b3JrUlRDU29ja2V0
Q29jb2EuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTmV0d29ya1JUQ1NvY2tldENvY29hLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMTE0MzYzMjBGNjc3QjEwMDI2RjkxMiAvKiBJbmplY3RV
c2VyU2NyaXB0SW1tZWRpYXRlbHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
SW5qZWN0VXNlclNjcmlwdEltbWVkaWF0ZWx5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTQxMTIyM0I3MjYwMjE1MkIwMEIwQTBCNiAvKiBSVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFn
ZXIubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0OyBuYW1lID0gUlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyLm1lc3NhZ2Vz
LmluOyBwYXRoID0gTmV0d29yay93ZWJydGMvUlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyLm1l
c3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTEyMjNCQjI2MDI0RTgw
MDBCMEEwQjYgLyogUlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyUHJveHkuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gUlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyUHJveHkuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJNDExMjIzQkMyNjAyNEU4MTAwQjBBMEI2IC8qIFJUQ0RhdGFDaGFubmVs
UmVtb3RlTWFuYWdlclByb3h5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJUQ0RhdGFDaGFubmVs
UmVtb3RlTWFuYWdlclByb3h5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDEx
MjIzQkQyNjAyNEU4MTAwQjBBMEI2IC8qIFJUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlclByb3h5
Lm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dDsgcGF0aCA9IFJUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlclByb3h5Lm1lc3Nh
Z2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTEyODZFRjIxQzhBOTBDMDAz
QTg1NTAgLyogTWVkaWFVdGlsaXRpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gTWVkaWFVdGlsaXRpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDExMjg2
RjAyMUM4QTkwRDAwM0E4NTUwIC8qIE1lZGlhVXRpbGl0aWVzLm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gTWVkaWFVdGlsaXRpZXMubW07IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTQxMTJCNTQ3MUY5RkQzQUIwMEU2Nzg3NSAvKiBOZXR3b3JrUlRDUmVz
b2x2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTmV0d29ya1JU
Q1Jlc29sdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTM3MTEsNiArMzcx
NSw4IEBACiAJCTQxNjg0QzUwMjQ2NDUwRkQwMDFDRThFRCAvKiBSZW1vdGVSZWFsdGltZVZpZGVv
U291cmNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZVJl
YWx0aW1lVmlkZW9Tb3VyY2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTY4
NEM1MTI0NjQ1MEZEMDAxQ0U4RUQgLyogUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxNkNENzQ1MjNGQjE3OEIwMDY2MUQ5OSAv
KiBNRE5TUmVnaXN0ZXJJZGVudGlmaWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFt
ZSA9IE1ETlNSZWdpc3RlcklkZW50aWZpZXIuaDsgcGF0aCA9IE5ldHdvcmsvd2VicnRjL01ETlNS
ZWdpc3RlcklkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDE2RURD
MDUyNjAwRjZCMDAwMDkyNjc1IC8qIFJUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlci5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IG5hbWUgPSBSVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXIuY3BwOyBwYXRoID0g
TmV0d29yay93ZWJydGMvUlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDE2RURDMDYyNjAwRjZCMDAwMDkyNjc1IC8qIFJUQ0RhdGFD
aGFubmVsUmVtb3RlTWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBSVENEYXRhQ2hhbm5lbFJlbW90
ZU1hbmFnZXIuaDsgcGF0aCA9IE5ldHdvcmsvd2VicnRjL1JUQ0RhdGFDaGFubmVsUmVtb3RlTWFu
YWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTZGODA4NjI0NUIzOTc0MDBC
NjhGMDIgLyogTGliV2ViUlRDTmV0d29yay5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5h
bWUgPSBMaWJXZWJSVENOZXR3b3JrLm1lc3NhZ2VzLmluOyBwYXRoID0gTmV0d29yay93ZWJydGMv
TGliV2ViUlRDTmV0d29yay5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNDE2RjgwODkyNDVDN0ZGNTAwQjY4RjAyIC8qIExpYldlYlJUQ05ldHdvcmsuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTGliV2ViUlRDTmV0d29yay5jcHA7IHBh
dGggPSBOZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENOZXR3b3JrLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNDE3MjE5ODkyM0I2MTI4MjAwQUU1Njg2IC8qIExpYldlYlJUQ0NvZGVj
cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMaWJXZWJSVENDb2RlY3MuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTgyNDMsNiArODI0OSw5IEBACiAJCQkJNDEx
MkI1NDgxRjlGRDNBQzAwRTY3OTg2IC8qIE5ldHdvcmtSVENSZXNvbHZlckNvY29hLmggKi8sCiAJ
CQkJNDEwQkExM0EyNTcxMzVGMjAwMkUyRjhBIC8qIE5ldHdvcmtSVENTb2NrZXRDb2NvYS5oICov
LAogCQkJCTQxMEJBMTM5MjU3MTM1RjIwMDJFMkY4QSAvKiBOZXR3b3JrUlRDU29ja2V0Q29jb2Eu
bW0gKi8sCisJCQkJNDExMjIzQkMyNjAyNEU4MTAwQjBBMEI2IC8qIFJUQ0RhdGFDaGFubmVsUmVt
b3RlTWFuYWdlclByb3h5LmNwcCAqLywKKwkJCQk0MTEyMjNCQjI2MDI0RTgwMDBCMEEwQjYgLyog
UlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyUHJveHkuaCAqLywKKwkJCQk0MTEyMjNCRDI2MDI0
RTgxMDBCMEEwQjYgLyogUlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyUHJveHkubWVzc2FnZXMu
aW4gKi8sCiAJCQkpOwogCQkJcGF0aCA9IHdlYnJ0YzsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7CkBAIC04MjYzLDYgKzgyNzIsOSBAQAogCQkJCTQxMzA3NUE1MURFODVFRTcwMDM5RUM2OSAv
KiBMaWJXZWJSVENTb2NrZXRGYWN0b3J5LmNwcCAqLywKIAkJCQk0MTMwNzVBNjFERTg1RUU3MDAz
OUVDNjkgLyogTGliV2ViUlRDU29ja2V0RmFjdG9yeS5oICovLAogCQkJCTQxNkNENzQ1MjNGQjE3
OEIwMDY2MUQ5OSAvKiBNRE5TUmVnaXN0ZXJJZGVudGlmaWVyLmggKi8sCisJCQkJNDE2RURDMDUy
NjAwRjZCMDAwMDkyNjc1IC8qIFJUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlci5jcHAgKi8sCisJ
CQkJNDE2RURDMDYyNjAwRjZCMDAwMDkyNjc1IC8qIFJUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdl
ci5oICovLAorCQkJCTQxMTIyM0I3MjYwMjE1MkIwMEIwQTBCNiAvKiBSVENEYXRhQ2hhbm5lbFJl
bW90ZU1hbmFnZXIubWVzc2FnZXMuaW4gKi8sCiAJCQkJNDFCN0VENkUyMDY4MURDRjAwODdEODUz
IC8qIFdlYk1ETlNSZWdpc3Rlci5jcHAgKi8sCiAJCQkJNDFCN0VENkMyMDY4MURDRTAwODdEODUz
IC8qIFdlYk1ETlNSZWdpc3Rlci5oICovLAogCQkJCTQxQjdFRDZEMjA2ODFEQ0YwMDg3RDg1MyAv
KiBXZWJNRE5TUmVnaXN0ZXIubWVzc2FnZXMuaW4gKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmNw
cAppbmRleCBiNTU3OGNhODg1ZGQxN2ZkYWUzY2UyMmU5ZGEwYTYxNTE4Y2I2N2QyLi4xZTE5ZTUy
MWZiMjNjNzRlNDM0NzczM2QwMjAzNWFiMGVjMDAyMmI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlv
bi5jcHAKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJEYXRhUmVmZXJlbmNlLmgiCiAjaW5j
bHVkZSAiTGliV2ViUlRDTmV0d29yay5oIgogI2luY2x1ZGUgIk5ldHdvcmtDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJSVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFn
ZXIuaCIKICNpbmNsdWRlICJTdG9yYWdlQXJlYU1hcC5oIgogI2luY2x1ZGUgIlN0b3JhZ2VBcmVh
TWFwTWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJDYWNoZVN0b3JhZ2VQcm92aWRlci5oIgpAQCAt
MzIwLDQgKzMyMSwxMSBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6YnJvYWRjYXN0
Q29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lcwogICAgIH0KIH0KIAorI2lm
IEVOQUJMRShXRUJfUlRDKQordm9pZCBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OmNvbm5lY3RU
b1JUQ0RhdGFDaGFubmVsUmVtb3RlU291cmNlKFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsSWRlbnRp
ZmllciBsb2NhbElkZW50aWZpZXIsIFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsSWRlbnRpZmllciBy
ZW1vdGVJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPGJvb2w+KT4m
JiBjYWxsYmFjaykKK3sKKyAgICBjYWxsYmFjayhSVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXI6
OnNoYXJlZE1hbmFnZXIoKS5jb25uZWN0VG9SZW1vdGVTb3VyY2UobG9jYWxJZGVudGlmaWVyLCBy
ZW1vdGVJZGVudGlmaWVyKSk7Cit9CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vz
c0Nvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQ
cm9jZXNzQ29ubmVjdGlvbi5oCmluZGV4IDBhYjc5MTViN2ZhY2UzOTVlZGZiYTM3ZDM5OTJlZWQ5
N2YzYjhiMzAuLmM5MjAxMGFhNWI0YjI1NDBhNzk5MTFiYjU5ZmU4YzM1NGNlYzk3OWQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29u
bmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQ
cm9jZXNzQ29ubmVjdGlvbi5oCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiU2hhcmVhYmxl
UmVzb3VyY2UuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9Db25zb2xlVHlwZXMuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL01lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyLmg+CisjaW5jbHVkZSA8
V2ViQ29yZS9SVENEYXRhQ2hhbm5lbElkZW50aWZpZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Nl
cnZpY2VXb3JrZXJUeXBlcy5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVk
ZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CkBAIC0xMDksNiArMTEwLDkgQEAgcHJpdmF0ZToKICAg
ICAvLyBNZXNzYWdlIGhhbmRsZXJzLgogICAgIHZvaWQgZGlkQ2FjaGVSZXNvdXJjZShjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBTaGFyZWFibGVSZXNvdXJjZTo6SGFuZGxl
Jik7CiAjZW5kaWYKKyNpZiBFTkFCTEUoU0hBUkVBQkxFX1JFU09VUkNFKQorICAgIHZvaWQgY29u
bmVjdFRvUlRDRGF0YUNoYW5uZWxSZW1vdGVTb3VyY2UoV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWxJ
ZGVudGlmaWVyIHNvdXJjZSwgV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWxJZGVudGlmaWVyIGhhbmRs
ZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8Ym9vbD4pPiYmKTsKKyNlbmRpZgog
CiAgICAgdm9pZCBicm9hZGNhc3RDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlLCBNZXNzYWdl
TGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5p
biBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVj
dGlvbi5tZXNzYWdlcy5pbgppbmRleCA2NGY4OGVjNzQ2M2NiNjhhOThjY2ZjNjI4OTk3MWM4NTNm
ZDM5ZjI3Li5lYTJhODY3M2NjMjA5YTU4NGI2NGMwZjg4NWVmYTg2ZWJkODVlMjUzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5l
Y3Rpb24ubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsv
TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluCkBAIC0zNyw2ICszNywxMCBAQCBt
ZXNzYWdlcyAtPiBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24gTGVnYWN5UmVjZWl2ZXIgewogICAg
IEFsbENvb2tpZXNEZWxldGVkKCk7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShXRUJfUlRDKQorICAg
IENvbm5lY3RUb1JUQ0RhdGFDaGFubmVsUmVtb3RlU291cmNlKHN0cnVjdCBXZWJDb3JlOjpSVENE
YXRhQ2hhbm5lbElkZW50aWZpZXIgc291cmNlLCBzdHJ1Y3QgV2ViQ29yZTo6UlRDRGF0YUNoYW5u
ZWxJZGVudGlmaWVyIGhhbmRsZXIpIC0+IChPcHRpb25hbDxib29sPiByZXN1bHQpIEFzeW5jCisj
ZW5kaWYKKwogICAgIENoZWNrUHJvY2Vzc0xvY2FsUG9ydEZvckFjdGl2aXR5KHN0cnVjdCBXZWJD
b3JlOjpNZXNzYWdlUG9ydElkZW50aWZpZXIgcG9ydCkgLT4gKFdlYkNvcmU6Ok1lc3NhZ2VQb3J0
Q2hhbm5lbFByb3ZpZGVyOjpIYXNBY3Rpdml0eSBoYXNBY3Rpdml0eSkgQXN5bmMKICAgICBNZXNz
YWdlc0F2YWlsYWJsZUZvclBvcnQoc3RydWN0IFdlYkNvcmU6Ok1lc3NhZ2VQb3J0SWRlbnRpZmll
ciBwb3J0KQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93
ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05l
dHdvcmsvd2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmNwcAppbmRleCBlOTIwOTkyZjA4ZWQ2YjMy
ZTY3ZGZlN2JmNzZlYzMxNDdmN2NmNDdjLi43NTQwYWZhMTRjNzMxZmZmZGUwM2E5ZmI3Nzc2ZDUx
M2I2ODk2YTM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93
ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5jcHAKQEAgLTMzLDYgKzMzLDcgQEAK
ICNlbmRpZgogCiAjaW5jbHVkZSAiTGliV2ViUlRDTmV0d29yay5oIgorI2luY2x1ZGUgIlJUQ0Rh
dGFDaGFubmVsUmVtb3RlTWFuYWdlci5oIgogI2luY2x1ZGUgIldlYlBhZ2UuaCIKICNpbmNsdWRl
ICJXZWJQcm9jZXNzLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdlLmg+CkBAIC0xNTIsNiArMTUz
LDExIEBAIHN0ZDo6dW5pcXVlX3B0cjxMaWJXZWJSVENQcm92aWRlcjo6U3VzcGVuZGFibGVTb2Nr
ZXRGYWN0b3J5PiBMaWJXZWJSVENQcm92aWRlcjo6CiAgICAgcmV0dXJuIG1ha2VVbmlxdWU8UlRD
U29ja2V0RmFjdG9yeT4oV1RGTW92ZSh1c2VyQWdlbnQpKTsKIH0KIAorUmVmUHRyPFJUQ0RhdGFD
aGFubmVsUmVtb3RlSGFuZGxlckNvbm5lY3Rpb24+IExpYldlYlJUQ1Byb3ZpZGVyOjpjcmVhdGVS
VENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXJDb25uZWN0aW9uKCkKK3sKKyAgICByZXR1cm4gJlJU
Q0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlcjo6c2hhcmVkTWFuYWdlcigpLnJlbW90ZUhhbmRsZXJD
b25uZWN0aW9uKCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYgLy8gVVNF
KExJQldFQlJUQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3Jr
L3dlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05l
dHdvcmsvd2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmgKaW5kZXggZmM3YzU2ZTUxY2I4M2YzMjRl
YTNlYWRhZjRhYjhiNzYyN2RiZTU4Zi4uN2NkZGQxYzQxZThhY2YwOGFkYTY3ZTQzMGU2M2FhMjQ0
YmZmOTI1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2Vi
cnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05l
dHdvcmsvd2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmgKQEAgLTYwLDYgKzYwLDcgQEAgcHJpdmF0
ZToKICAgICB2b2lkIHJlZ2lzdGVyTUROU05hbWUoV2ViQ29yZTo6RG9jdW1lbnRJZGVudGlmaWVy
LCBjb25zdCBTdHJpbmcmIGlwQWRkcmVzcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChNRE5TTmFt
ZU9yRXJyb3ImJik+JiYpIGZpbmFsOwogICAgIHZvaWQgZGlzYWJsZU5vbkxvY2FsaG9zdENvbm5l
Y3Rpb25zKCkgZmluYWw7CiAgICAgdm9pZCBzdGFydGVkTmV0d29ya1RocmVhZCgpIGZpbmFsOwor
ICAgIFJlZlB0cjxXZWJDb3JlOjpSVENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXJDb25uZWN0aW9u
PiBjcmVhdGVSVENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXJDb25uZWN0aW9uKCkgZmluYWw7CiAK
ICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIFBMQVRGT1JNKENPQ09BKSAmJiAhUExBVEZPUk0o
TUFDQ0FUQUxZU1QpCiAgICAgV2ViUGFnZSYgbV93ZWJQYWdlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL1JUQ0RhdGFDaGFubmVsUmVtb3RlTWFu
YWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvUlRDRGF0
YUNoYW5uZWxSZW1vdGVNYW5hZ2VyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNGFjNTUzNGQxOTY2OTk5ZDRh
OTk0NThjOTA5OTE5YTZlMjdiYTAzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL1JUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlci5jcHAK
QEAgLTAsMCArMSwyNTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04KKyAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICog
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJUQ0RhdGFDaGFubmVs
UmVtb3RlTWFuYWdlci5oIgorCisjaWYgRU5BQkxFKFdFQl9SVEMpCisKKyNpbmNsdWRlICJOZXR3
b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzc01lc3NhZ2VzLmgiCisjaW5jbHVkZSAiUlRDRGF0YUNo
YW5uZWxSZW1vdGVNYW5hZ2VyTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJSVENEYXRhQ2hhbm5lbFJl
bW90ZU1hbmFnZXJQcm94eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgorI2lu
Y2x1ZGUgPFdlYkNvcmUvUlRDRGF0YUNoYW5uZWwuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Njcmlw
dEV4ZWN1dGlvbkNvbnRleHQuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1JUQ0RhdGFDaGFu
bmVsUmVtb3RlTWFuYWdlciYgUlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyOjpzaGFyZWRNYW5h
Z2VyKCkKK3sKKyAgICBzdGF0aWMgUlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyKiBzaGFyZWRN
YW5hZ2VyID0gbmV3IFJUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlcjsKKyAgICByZXR1cm4gKnNo
YXJlZE1hbmFnZXI7Cit9CisKK1JUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlcjo6UlRDRGF0YUNo
YW5uZWxSZW1vdGVNYW5hZ2VyKCkKKyAgICA6IG1fcXVldWUoV29ya1F1ZXVlOjpjcmVhdGUoIlJU
Q0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlciIpKQoreworICAgIHNldENvbm5lY3Rpb24oJldlYlBy
b2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5l
Y3Rpb24oKSk7Cit9CisKK3ZvaWQgUlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyOjpzZXRDb25u
ZWN0aW9uKElQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbikKK3sKKyAgICBpZiAobV9jb25uZWN0
aW9uID09IGNvbm5lY3Rpb24pCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChtX2Nvbm5lY3Rp
b24pCisgICAgICAgIG1fY29ubmVjdGlvbi0+cmVtb3ZlV29ya1F1ZXVlTWVzc2FnZVJlY2VpdmVy
KE1lc3NhZ2VzOjpSVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXI6Om1lc3NhZ2VSZWNlaXZlck5h
bWUoKSk7CisKKyAgICBtX2Nvbm5lY3Rpb24gPSBjb25uZWN0aW9uOworCisgICAgaWYgKG1fY29u
bmVjdGlvbikKKyAgICAgICAgbV9jb25uZWN0aW9uLT5hZGRXb3JrUXVldWVNZXNzYWdlUmVjZWl2
ZXIoTWVzc2FnZXM6OlJUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlcjo6bWVzc2FnZVJlY2VpdmVy
TmFtZSgpLCBtX3F1ZXVlLCB0aGlzKTsKK30KKworYm9vbCBSVENEYXRhQ2hhbm5lbFJlbW90ZU1h
bmFnZXI6OmNvbm5lY3RUb1JlbW90ZVNvdXJjZShXZWJDb3JlOjpSVENEYXRhQ2hhbm5lbElkZW50
aWZpZXIgbG9jYWxJZGVudGlmaWVyLCBXZWJDb3JlOjpSVENEYXRhQ2hhbm5lbElkZW50aWZpZXIg
cmVtb3RlSWRlbnRpZmllcikKK3sKKyAgICBBU1NFUlQoUHJvY2Vzczo6aWRlbnRpZmllcigpID09
IGxvY2FsSWRlbnRpZmllci5wcm9jZXNzSWRlbnRpZmllcik7CisgICAgaWYgKFByb2Nlc3M6Omlk
ZW50aWZpZXIoKSAhPSBsb2NhbElkZW50aWZpZXIucHJvY2Vzc0lkZW50aWZpZXIpCisgICAgICAg
IHJldHVybiBmYWxzZTsKKworICAgIEFTU0VSVChQcm9jZXNzOjppZGVudGlmaWVyKCkgPT0gbG9j
YWxJZGVudGlmaWVyLnByb2Nlc3NJZGVudGlmaWVyKTsKKyAgICBpZiAoUHJvY2Vzczo6aWRlbnRp
ZmllcigpICE9IGxvY2FsSWRlbnRpZmllci5wcm9jZXNzSWRlbnRpZmllcikKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworCisgICAgYXV0byBoYW5kbGVyID0gV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWw6
OmhhbmRsZXJGcm9tSWRlbnRpZmllcihsb2NhbElkZW50aWZpZXIuY2hhbm5lbElkZW50aWZpZXIp
OworICAgIGlmICghaGFuZGxlcikKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgYXV0byBp
dGVyYXRvciA9IG1fc291cmNlcy5hZGQocmVtb3RlSWRlbnRpZmllci5jaGFubmVsSWRlbnRpZmll
ciwgUlRDRGF0YUNoYW5uZWxSZW1vdGVTb3VyY2U6OmNyZWF0ZShyZW1vdGVJZGVudGlmaWVyLCBt
YWtlVW5pcXVlUmVmRnJvbU5vbk51bGxVbmlxdWVQdHIoV1RGTW92ZShoYW5kbGVyKSksIHJlbW90
ZVNvdXJjZUNvbm5lY3Rpb24oKSkpOworICAgIHJldHVybiBpdGVyYXRvci5pc05ld0VudHJ5Owor
fQorCitXZWJDb3JlOjpSVENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXJDb25uZWN0aW9uJiBSVENE
YXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXI6OnJlbW90ZUhhbmRsZXJDb25uZWN0aW9uKCkKK3sKKyAg
ICBpZiAoIW1fcmVtb3RlSGFuZGxlckNvbm5lY3Rpb24pCisgICAgICAgIG1fcmVtb3RlSGFuZGxl
ckNvbm5lY3Rpb24gPSBSZW1vdGVIYW5kbGVyQ29ubmVjdGlvbjo6Y3JlYXRlKG1fcXVldWUuY29w
eVJlZigpKTsKKyAgICByZXR1cm4gKm1fcmVtb3RlSGFuZGxlckNvbm5lY3Rpb247Cit9CisKK1dl
YkNvcmU6OlJUQ0RhdGFDaGFubmVsUmVtb3RlU291cmNlQ29ubmVjdGlvbiYgUlRDRGF0YUNoYW5u
ZWxSZW1vdGVNYW5hZ2VyOjpyZW1vdGVTb3VyY2VDb25uZWN0aW9uKCkKK3sKKyAgICBpZiAoIW1f
cmVtb3RlU291cmNlQ29ubmVjdGlvbikKKyAgICAgICAgbV9yZW1vdGVTb3VyY2VDb25uZWN0aW9u
ID0gUmVtb3RlU291cmNlQ29ubmVjdGlvbjo6Y3JlYXRlKCk7CisgICAgcmV0dXJuICptX3JlbW90
ZVNvdXJjZUNvbm5lY3Rpb247Cit9CisKK3ZvaWQgUlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2Vy
Ojpwb3N0VGFza1RvSGFuZGxlcihXZWJDb3JlOjpSVENEYXRhQ2hhbm5lbElkZW50aWZpZXIgaGFu
ZGxlcklkZW50aWZpZXIsIEZ1bmN0aW9uPHZvaWQoV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWxSZW1v
dGVIYW5kbGVyJik+JiYgZnVuY3Rpb24pCit7CisgICAgQVNTRVJUKFByb2Nlc3M6OmlkZW50aWZp
ZXIoKSA9PSBoYW5kbGVySWRlbnRpZmllci5wcm9jZXNzSWRlbnRpZmllcik7CisgICAgaWYgKFBy
b2Nlc3M6OmlkZW50aWZpZXIoKSAhPSBoYW5kbGVySWRlbnRpZmllci5wcm9jZXNzSWRlbnRpZmll
cikKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byBpdGVyYXRvciA9IG1faGFuZGxlcnMuZmlu
ZChoYW5kbGVySWRlbnRpZmllci5jaGFubmVsSWRlbnRpZmllcik7CisgICAgaWYgKGl0ZXJhdG9y
ID09IG1faGFuZGxlcnMuZW5kKCkpCisgICAgICAgIHJldHVybjsKKyAgICBhdXRvJiByZW1vdGVI
YW5kbGVyID0gaXRlcmF0b3ItPnZhbHVlOworCisgICAgV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9u
Q29udGV4dDo6cG9zdFRhc2tUbyhyZW1vdGVIYW5kbGVyLmNvbnRleHRJZGVudGlmaWVyLCBbaGFu
ZGxlciA9IHJlbW90ZUhhbmRsZXIuaGFuZGxlciwgZnVuY3Rpb24gPSBXVEZNb3ZlKGZ1bmN0aW9u
KV0oYXV0byYpIG11dGFibGUgeworICAgICAgICBpZiAoaGFuZGxlcikKKyAgICAgICAgICAgIGZ1
bmN0aW9uKCpoYW5kbGVyKTsKKyAgICB9KTsKK30KKworUlRDRGF0YUNoYW5uZWxSZW1vdGVTb3Vy
Y2UqIFJUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlcjo6c291cmNlRnJvbUlkZW50aWZpZXIoV2Vi
Q29yZTo6UlRDRGF0YUNoYW5uZWxJZGVudGlmaWVyIHNvdXJjZUlkZW50aWZpZXIpCit7CisgICAg
QVNTRVJUKFByb2Nlc3M6OmlkZW50aWZpZXIoKSA9PSBzb3VyY2VJZGVudGlmaWVyLnByb2Nlc3NJ
ZGVudGlmaWVyKTsKKyAgICBpZiAoUHJvY2Vzczo6aWRlbnRpZmllcigpICE9IHNvdXJjZUlkZW50
aWZpZXIucHJvY2Vzc0lkZW50aWZpZXIpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAg
cmV0dXJuIG1fc291cmNlcy5nZXQoc291cmNlSWRlbnRpZmllci5jaGFubmVsSWRlbnRpZmllcik7
Cit9CisKK3ZvaWQgUlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyOjpzZW5kRGF0YShXZWJDb3Jl
OjpSVENEYXRhQ2hhbm5lbElkZW50aWZpZXIgc291cmNlSWRlbnRpZmllciwgYm9vbCBpc1Jhdywg
Y29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiBkYXRhKQoreworICAgIGlmIChhdXRvKiBzb3VyY2Ug
PSBzb3VyY2VGcm9tSWRlbnRpZmllcihzb3VyY2VJZGVudGlmaWVyKSkgeworICAgICAgICBpZiAo
aXNSYXcpCisgICAgICAgICAgICBzb3VyY2UtPnNlbmRSYXdEYXRhKHJlaW50ZXJwcmV0X2Nhc3Q8
Y29uc3QgY2hhcio+KGRhdGEuZGF0YSgpKSwgZGF0YS5zaXplKCkpOworICAgICAgICBlbHNlCisg
ICAgICAgICAgICBzb3VyY2UtPnNlbmRTdHJpbmdEYXRhKENTdHJpbmcocmVpbnRlcnByZXRfY2Fz
dDxjb25zdCBjaGFyKj4oZGF0YS5kYXRhKCkpLCBkYXRhLnNpemUoKSkpOworICAgIH0KK30KKwor
dm9pZCBSVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXI6OmNsb3NlKFdlYkNvcmU6OlJUQ0RhdGFD
aGFubmVsSWRlbnRpZmllciBzb3VyY2VJZGVudGlmaWVyKQoreworICAgIGlmIChhdXRvKiBzb3Vy
Y2UgPSBzb3VyY2VGcm9tSWRlbnRpZmllcihzb3VyY2VJZGVudGlmaWVyKSkKKyAgICAgICAgc291
cmNlLT5jbG9zZSgpOworfQorCit2b2lkIFJUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlcjo6Y2hh
bmdlUmVhZHlTdGF0ZShXZWJDb3JlOjpSVENEYXRhQ2hhbm5lbElkZW50aWZpZXIgaGFuZGxlcklk
ZW50aWZpZXIsIFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsU3RhdGUgc3RhdGUpCit7CisgICAgcG9z
dFRhc2tUb0hhbmRsZXIoaGFuZGxlcklkZW50aWZpZXIsIFtzdGF0ZV0oYXV0byYgaGFuZGxlcikg
eworICAgICAgICBoYW5kbGVyLmRpZENoYW5nZVJlYWR5U3RhdGUoc3RhdGUpOworICAgIH0pOwor
fQorCit2b2lkIFJUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlcjo6cmVjZWl2ZURhdGEoV2ViQ29y
ZTo6UlRDRGF0YUNoYW5uZWxJZGVudGlmaWVyIGhhbmRsZXJJZGVudGlmaWVyLCBib29sIGlzUmF3
LCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIGRhdGEpCit7CisgICAgVmVjdG9yPHVuc2lnbmVk
IGNoYXI+IGJ1ZmZlcjsKKyAgICBTdHJpbmcgdGV4dDsKKyAgICBpZiAoaXNSYXcpCisgICAgICAg
IGJ1ZmZlciA9IGRhdGEudmVjdG9yKCk7CisgICAgZWxzZQorICAgICAgICB0ZXh0ID0gU3RyaW5n
Ojpmcm9tVVRGOChkYXRhLmRhdGEoKSwgZGF0YS5zaXplKCkpOworCisgICAgcG9zdFRhc2tUb0hh
bmRsZXIoaGFuZGxlcklkZW50aWZpZXIsIFtpc1JhdywgdGV4dCA9IFdURk1vdmUodGV4dCkuaXNv
bGF0ZWRDb3B5KCksIGJ1ZmZlciA9IFdURk1vdmUoYnVmZmVyKV0oYXV0byYgaGFuZGxlcikgbXV0
YWJsZSB7CisgICAgICAgIGlmIChpc1JhdykKKyAgICAgICAgICAgIGhhbmRsZXIuZGlkUmVjZWl2
ZVJhd0RhdGEocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oYnVmZmVyLmRhdGEoKSksIGJ1
ZmZlci5zaXplKCkpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBoYW5kbGVyLmRpZFJlY2Vp
dmVTdHJpbmdEYXRhKFdURk1vdmUodGV4dCkpOworICAgIH0pOworfQorCit2b2lkIFJUQ0RhdGFD
aGFubmVsUmVtb3RlTWFuYWdlcjo6ZGV0ZWN0RXJyb3IoV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWxJ
ZGVudGlmaWVyIGhhbmRsZXJJZGVudGlmaWVyKQoreworICAgIHBvc3RUYXNrVG9IYW5kbGVyKGhh
bmRsZXJJZGVudGlmaWVyLCBbXShhdXRvJiBoYW5kbGVyKSB7CisgICAgICAgIGhhbmRsZXIuZGlk
RGV0ZWN0RXJyb3IoKTsKKyAgICB9KTsKK30KKwordm9pZCBSVENEYXRhQ2hhbm5lbFJlbW90ZU1h
bmFnZXI6OmJ1ZmZlcmVkQW1vdW50SXNEZWNyZWFzaW5nKFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVs
SWRlbnRpZmllciBoYW5kbGVySWRlbnRpZmllciwgc2l6ZV90IGFtb3VudCkKK3sKKyAgICBwb3N0
VGFza1RvSGFuZGxlcihoYW5kbGVySWRlbnRpZmllciwgW2Ftb3VudF0oYXV0byYgaGFuZGxlcikg
eworICAgICAgICBoYW5kbGVyLmJ1ZmZlcmVkQW1vdW50SXNEZWNyZWFzaW5nKGFtb3VudCk7Cisg
ICAgfSk7Cit9CisKK1JlZjxSVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXI6OlJlbW90ZUhhbmRs
ZXJDb25uZWN0aW9uPiBSVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXI6OlJlbW90ZUhhbmRsZXJD
b25uZWN0aW9uOjpjcmVhdGUoUmVmPFdvcmtRdWV1ZT4mJiBxdWV1ZSkKK3sKKyAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBSZW1vdGVIYW5kbGVyQ29ubmVjdGlvbihXVEZNb3ZlKHF1ZXVlKSkpOwor
fQorCitSVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXI6OlJlbW90ZUhhbmRsZXJDb25uZWN0aW9u
OjpSZW1vdGVIYW5kbGVyQ29ubmVjdGlvbihSZWY8V29ya1F1ZXVlPiYmIHF1ZXVlKQorICAgIDog
bV9jb25uZWN0aW9uKFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdvcmtQcm9jZXNz
Q29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKSkKKyAgICAsIG1fcXVldWUoV1RGTW92ZShxdWV1ZSkp
Cit7Cit9CisKK3ZvaWQgUlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyOjpSZW1vdGVIYW5kbGVy
Q29ubmVjdGlvbjo6Y29ubmVjdFRvU291cmNlKFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsUmVtb3Rl
SGFuZGxlciYgaGFuZGxlciwgV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZp
ZXIgY29udGV4dElkZW50aWZpZXIsIFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsSWRlbnRpZmllciBs
b2NhbElkZW50aWZpZXIsIFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsSWRlbnRpZmllciByZW1vdGVJ
ZGVudGlmaWVyKQoreworICAgIG1fcXVldWUtPmRpc3BhdGNoKFtoYW5kbGVyID0gbWFrZVdlYWtQ
dHIoaGFuZGxlciksIGNvbnRleHRJZGVudGlmaWVyLCBsb2NhbElkZW50aWZpZXJdKCkgbXV0YWJs
ZSB7CisgICAgICAgIFJUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlcjo6c2hhcmVkTWFuYWdlcigp
Lm1faGFuZGxlcnMuYWRkKGxvY2FsSWRlbnRpZmllci5jaGFubmVsSWRlbnRpZmllciwgUmVtb3Rl
SGFuZGxlciB7IFdURk1vdmUoaGFuZGxlciksIGNvbnRleHRJZGVudGlmaWVyIH0pOworICAgIH0p
OworICAgIG1fY29ubmVjdGlvbi0+c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Q29ubmVjdFRvUlRDRGF0YUNoYW5uZWxSZW1vdGVTb3Vy
Y2UgeyBsb2NhbElkZW50aWZpZXIsIHJlbW90ZUlkZW50aWZpZXIgfSwgW2xvY2FsSWRlbnRpZmll
cl0oYXV0byYmIHJlc3VsdCkgeworICAgICAgICBSVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXI6
OnNoYXJlZE1hbmFnZXIoKS5wb3N0VGFza1RvSGFuZGxlcihsb2NhbElkZW50aWZpZXIsIFtyZXN1
bHRdKGF1dG8mIGhhbmRsZXIpIHsKKyAgICAgICAgICAgIGlmICghcmVzdWx0IHx8ICEqcmVzdWx0
KSB7CisgICAgICAgICAgICAgICAgaGFuZGxlci5kaWREZXRlY3RFcnJvcigpOworICAgICAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGhhbmRsZXIucmVhZHlU
b1NlbmQoKTsKKyAgICAgICAgfSk7CisgICAgfSwgMCk7Cit9CisKK3ZvaWQgUlRDRGF0YUNoYW5u
ZWxSZW1vdGVNYW5hZ2VyOjpSZW1vdGVIYW5kbGVyQ29ubmVjdGlvbjo6c2VuZERhdGEoV2ViQ29y
ZTo6UlRDRGF0YUNoYW5uZWxJZGVudGlmaWVyIGlkZW50aWZpZXIsIGJvb2wgaXNSYXcsIGNvbnN0
IHVuc2lnbmVkIGNoYXIqIGRhdGEsIHNpemVfdCBzaXplKQoreworICAgIG1fY29ubmVjdGlvbi0+
c2VuZChNZXNzYWdlczo6UlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyUHJveHk6OlNlbmREYXRh
IHsgaWRlbnRpZmllciwgaXNSYXcsIElQQzo6RGF0YVJlZmVyZW5jZSB7IGRhdGEsIHNpemUgfSB9
LCAwKTsKK30KKwordm9pZCBSVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXI6OlJlbW90ZUhhbmRs
ZXJDb25uZWN0aW9uOjpjbG9zZShXZWJDb3JlOjpSVENEYXRhQ2hhbm5lbElkZW50aWZpZXIgaWRl
bnRpZmllcikKK3sKKyAgICAvLyBGSVhNRTogV2UgbmVlZCB0byB3YWl0IHRvIHNlbmQgdGhpcyBt
ZXNzYWdlIHVudGlsIFJUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlclByb3h5OjpDb25uZWN0VG9T
b3VyY2UgaXMgYWN0dWFsbHkgc2VudC4KKyAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6
OlJUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlclByb3h5OjpDbG9zZSB7IGlkZW50aWZpZXIgfSwg
MCk7Cit9CisKK1JlZjxSVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXI6OlJlbW90ZVNvdXJjZUNv
bm5lY3Rpb24+IFJUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlcjo6UmVtb3RlU291cmNlQ29ubmVj
dGlvbjo6Y3JlYXRlKCkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBSZW1vdGVTb3VyY2VD
b25uZWN0aW9uKTsKK30KKworUlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyOjpSZW1vdGVTb3Vy
Y2VDb25uZWN0aW9uOjpSZW1vdGVTb3VyY2VDb25uZWN0aW9uKCkKKyAgICA6IG1fY29ubmVjdGlv
bihXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24o
KS5jb25uZWN0aW9uKCkpCit7Cit9CisKK3ZvaWQgUlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2Vy
OjpSZW1vdGVTb3VyY2VDb25uZWN0aW9uOjpkaWRDaGFuZ2VSZWFkeVN0YXRlKFdlYkNvcmU6OlJU
Q0RhdGFDaGFubmVsSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpSVENEYXRhQ2hhbm5l
bFN0YXRlIHN0YXRlKQoreworICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6UlRDRGF0
YUNoYW5uZWxSZW1vdGVNYW5hZ2VyUHJveHk6OkNoYW5nZVJlYWR5U3RhdGUgeyBpZGVudGlmaWVy
LCBzdGF0ZSB9LCAwKTsKK30KKwordm9pZCBSVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXI6OlJl
bW90ZVNvdXJjZUNvbm5lY3Rpb246OmRpZFJlY2VpdmVTdHJpbmdEYXRhKFdlYkNvcmU6OlJUQ0Rh
dGFDaGFubmVsSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHN0cmluZykKK3sK
KyAgICBhdXRvIHRleHQgPSBzdHJpbmcudXRmOCgpOworICAgIG1fY29ubmVjdGlvbi0+c2VuZChN
ZXNzYWdlczo6UlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyUHJveHk6OlJlY2VpdmVEYXRhIHsg
aWRlbnRpZmllciwgZmFsc2UsIElQQzo6RGF0YVJlZmVyZW5jZSB7IHJlaW50ZXJwcmV0X2Nhc3Q8
Y29uc3QgdW5zaWduZWQgY2hhcio+KHRleHQuZGF0YSgpKSwgdGV4dC5sZW5ndGgoKSB9IH0sIDAp
OworfQorCit2b2lkIFJUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlcjo6UmVtb3RlU291cmNlQ29u
bmVjdGlvbjo6ZGlkUmVjZWl2ZVJhd0RhdGEoV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWxJZGVudGlm
aWVyIGlkZW50aWZpZXIsIGNvbnN0IGNoYXIqIGRhdGEsIHNpemVfdCBzaXplKQoreworICAgIG1f
Y29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6UlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyUHJv
eHk6OlJlY2VpdmVEYXRhIHsgaWRlbnRpZmllciwgdHJ1ZSwgSVBDOjpEYXRhUmVmZXJlbmNlIHsg
cmVpbnRlcnByZXRfY2FzdDxjb25zdCB1bnNpZ25lZCBjaGFyKj4oZGF0YSksIHNpemUgIH0gfSwg
MCk7Cit9CisKK3ZvaWQgUlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyOjpSZW1vdGVTb3VyY2VD
b25uZWN0aW9uOjpkaWREZXRlY3RFcnJvcihXZWJDb3JlOjpSVENEYXRhQ2hhbm5lbElkZW50aWZp
ZXIgaWRlbnRpZmllcikKK3sKKyAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlJUQ0Rh
dGFDaGFubmVsUmVtb3RlTWFuYWdlclByb3h5OjpEZXRlY3RFcnJvciB7IGlkZW50aWZpZXIgfSwg
MCk7Cit9CisKK3ZvaWQgUlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyOjpSZW1vdGVTb3VyY2VD
b25uZWN0aW9uOjpidWZmZXJlZEFtb3VudElzRGVjcmVhc2luZyhXZWJDb3JlOjpSVENEYXRhQ2hh
bm5lbElkZW50aWZpZXIgaWRlbnRpZmllciwgc2l6ZV90IGFtb3VudCkKK3sKKyAgICBtX2Nvbm5l
Y3Rpb24tPnNlbmQoTWVzc2FnZXM6OlJUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlclByb3h5OjpC
dWZmZXJlZEFtb3VudElzRGVjcmVhc2luZyB7IGlkZW50aWZpZXIsIGFtb3VudCB9LCAwKTsKK30K
KworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3
b3JrL3dlYnJ0Yy9SVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9SVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXIuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi42ZDEyYjdjMzVmMDA0YTQ3YzU1NGZkYjE1ZWUyMzlkZTYyYjM1MGNlCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL1JU
Q0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlci5oCkBAIC0wLDAgKzEsMTEzIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAor
ICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
CisgKiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFdFQl9SVEMpCisKKyNpbmNsdWRlICJDb25u
ZWN0aW9uLmgiCisjaW5jbHVkZSAiRGF0YVJlZmVyZW5jZS5oIgorI2luY2x1ZGUgPFdlYkNvcmUv
UlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SVENEYXRh
Q2hhbm5lbFJlbW90ZUhhbmRsZXJDb25uZWN0aW9uLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SVENE
YXRhQ2hhbm5lbFJlbW90ZVNvdXJjZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUlRDRGF0YUNoYW5u
ZWxSZW1vdGVTb3VyY2VDb25uZWN0aW9uLmg+CisjaW5jbHVkZSA8d3RmL1dvcmtRdWV1ZS5oPgor
CituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgUlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2Vy
IGZpbmFsIDogcHVibGljIElQQzo6Q29ubmVjdGlvbjo6V29ya1F1ZXVlTWVzc2FnZVJlY2VpdmVy
IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyJiBzaGFy
ZWRNYW5hZ2VyKCk7CisKKyAgICBXZWJDb3JlOjpSVENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXJD
b25uZWN0aW9uJiByZW1vdGVIYW5kbGVyQ29ubmVjdGlvbigpOworICAgIHZvaWQgc2V0Q29ubmVj
dGlvbihJUEM6OkNvbm5lY3Rpb24qKTsKKyAgICBib29sIGNvbm5lY3RUb1JlbW90ZVNvdXJjZShX
ZWJDb3JlOjpSVENEYXRhQ2hhbm5lbElkZW50aWZpZXIgc291cmNlLCBXZWJDb3JlOjpSVENEYXRh
Q2hhbm5lbElkZW50aWZpZXIgaGFuZGxlcik7CisKK3ByaXZhdGU6CisgICAgUlRDRGF0YUNoYW5u
ZWxSZW1vdGVNYW5hZ2VyKCk7CisKKyAgICAvLyBJUEM6OkNvbm5lY3Rpb246OldvcmtRdWV1ZU1l
c3NhZ2VSZWNlaXZlcgorICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9u
JiwgSVBDOjpEZWNvZGVyJikgZmluYWw7CisKKyAgICAvLyBNZXNzYWdlcworICAgIHZvaWQgc2Vu
ZERhdGEoV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWxJZGVudGlmaWVyLCBib29sIGlzUmF3LCBjb25z
dCBJUEM6OkRhdGFSZWZlcmVuY2UmKTsKKyAgICB2b2lkIGNsb3NlKFdlYkNvcmU6OlJUQ0RhdGFD
aGFubmVsSWRlbnRpZmllcik7CisKKyAgICAvLyBUbyBoYW5kbGVyCisgICAgdm9pZCBjaGFuZ2VS
ZWFkeVN0YXRlKFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsSWRlbnRpZmllciwgV2ViQ29yZTo6UlRD
RGF0YUNoYW5uZWxTdGF0ZSk7CisgICAgdm9pZCByZWNlaXZlRGF0YShXZWJDb3JlOjpSVENEYXRh
Q2hhbm5lbElkZW50aWZpZXIsIGJvb2wgaXNSYXcsIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYp
OworICAgIHZvaWQgZGV0ZWN0RXJyb3IoV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWxJZGVudGlmaWVy
KTsKKyAgICB2b2lkIGJ1ZmZlcmVkQW1vdW50SXNEZWNyZWFzaW5nKFdlYkNvcmU6OlJUQ0RhdGFD
aGFubmVsSWRlbnRpZmllciwgc2l6ZV90KTsKKworICAgIFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVs
UmVtb3RlU291cmNlQ29ubmVjdGlvbiYgcmVtb3RlU291cmNlQ29ubmVjdGlvbigpOworICAgIHZv
aWQgcG9zdFRhc2tUb0hhbmRsZXIoV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWxJZGVudGlmaWVyLCBG
dW5jdGlvbjx2b2lkKFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsUmVtb3RlSGFuZGxlciYpPiYmKTsK
KyAgICBXZWJDb3JlOjpSVENEYXRhQ2hhbm5lbFJlbW90ZVNvdXJjZSogc291cmNlRnJvbUlkZW50
aWZpZXIoV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWxJZGVudGlmaWVyKTsKKworICAgIGNsYXNzIFJl
bW90ZUhhbmRsZXJDb25uZWN0aW9uIDogcHVibGljIFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsUmVt
b3RlSGFuZGxlckNvbm5lY3Rpb24geworICAgIHB1YmxpYzoKKyAgICAgICAgc3RhdGljIFJlZjxS
ZW1vdGVIYW5kbGVyQ29ubmVjdGlvbj4gY3JlYXRlKFJlZjxXb3JrUXVldWU+JiYpOworCisgICAg
ICAgIHZvaWQgY29ubmVjdFRvU291cmNlKFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsUmVtb3RlSGFu
ZGxlciYsIFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyLCBXZWJDb3Jl
OjpSVENEYXRhQ2hhbm5lbElkZW50aWZpZXIsIFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsSWRlbnRp
ZmllcikgZmluYWw7CisgICAgICAgIHZvaWQgc2VuZERhdGEoV2ViQ29yZTo6UlRDRGF0YUNoYW5u
ZWxJZGVudGlmaWVyLCBib29sIGlzUmF3LCBjb25zdCB1bnNpZ25lZCBjaGFyKiwgc2l6ZV90KSBm
aW5hbDsKKyAgICAgICAgdm9pZCBjbG9zZShXZWJDb3JlOjpSVENEYXRhQ2hhbm5lbElkZW50aWZp
ZXIpIGZpbmFsOworCisgICAgcHJpdmF0ZToKKyAgICAgICAgZXhwbGljaXQgUmVtb3RlSGFuZGxl
ckNvbm5lY3Rpb24oUmVmPFdvcmtRdWV1ZT4mJik7CisKKyAgICAgICAgUmVmPElQQzo6Q29ubmVj
dGlvbj4gbV9jb25uZWN0aW9uOworICAgICAgICBSZWY8V29ya1F1ZXVlPiBtX3F1ZXVlOworICAg
IH07CisKKyAgICBjbGFzcyBSZW1vdGVTb3VyY2VDb25uZWN0aW9uIDogcHVibGljIFdlYkNvcmU6
OlJUQ0RhdGFDaGFubmVsUmVtb3RlU291cmNlQ29ubmVjdGlvbiB7CisgICAgcHVibGljOgorICAg
ICAgICBzdGF0aWMgUmVmPFJlbW90ZVNvdXJjZUNvbm5lY3Rpb24+IGNyZWF0ZSgpOworCisgICAg
cHJpdmF0ZToKKyAgICAgICAgUmVtb3RlU291cmNlQ29ubmVjdGlvbigpOworCisgICAgICAgIHZv
aWQgZGlkQ2hhbmdlUmVhZHlTdGF0ZShXZWJDb3JlOjpSVENEYXRhQ2hhbm5lbElkZW50aWZpZXIs
IFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsU3RhdGUpIGZpbmFsOworICAgICAgICB2b2lkIGRpZFJl
Y2VpdmVTdHJpbmdEYXRhKFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsSWRlbnRpZmllciwgY29uc3Qg
U3RyaW5nJikgZmluYWw7CisgICAgICAgIHZvaWQgZGlkUmVjZWl2ZVJhd0RhdGEoV2ViQ29yZTo6
UlRDRGF0YUNoYW5uZWxJZGVudGlmaWVyLCBjb25zdCBjaGFyKiwgc2l6ZV90KSBmaW5hbDsKKyAg
ICAgICAgdm9pZCBkaWREZXRlY3RFcnJvcihXZWJDb3JlOjpSVENEYXRhQ2hhbm5lbElkZW50aWZp
ZXIpIGZpbmFsOworICAgICAgICB2b2lkIGJ1ZmZlcmVkQW1vdW50SXNEZWNyZWFzaW5nKFdlYkNv
cmU6OlJUQ0RhdGFDaGFubmVsSWRlbnRpZmllciwgc2l6ZV90KSBmaW5hbDsKKworICAgICAgICBS
ZWY8SVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247CisgICAgfTsKKworICAgIHN0cnVjdCBS
ZW1vdGVIYW5kbGVyIHsKKyAgICAgICAgV2Vha1B0cjxXZWJDb3JlOjpSVENEYXRhQ2hhbm5lbFJl
bW90ZUhhbmRsZXI+IGhhbmRsZXI7CisgICAgICAgIFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNv
bnRleHRJZGVudGlmaWVyIGNvbnRleHRJZGVudGlmaWVyOworICAgIH07CisKKyAgICBSZWY8V29y
a1F1ZXVlPiBtX3F1ZXVlOworICAgIFJlZlB0cjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlv
bjsKKyAgICBSZWZQdHI8UmVtb3RlSGFuZGxlckNvbm5lY3Rpb24+IG1fcmVtb3RlSGFuZGxlckNv
bm5lY3Rpb247CisgICAgUmVmUHRyPFJlbW90ZVNvdXJjZUNvbm5lY3Rpb24+IG1fcmVtb3RlU291
cmNlQ29ubmVjdGlvbjsKKyAgICBIYXNoTWFwPFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsTG9jYWxJ
ZGVudGlmaWVyLCBSZWY8V2ViQ29yZTo6UlRDRGF0YUNoYW5uZWxSZW1vdGVTb3VyY2U+PiBtX3Nv
dXJjZXM7CisgICAgSGFzaE1hcDxXZWJDb3JlOjpSVENEYXRhQ2hhbm5lbExvY2FsSWRlbnRpZmll
ciwgUmVtb3RlSGFuZGxlcj4gbV9oYW5kbGVyczsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktp
dAorCisjZW5kaWYgLy8gRU5BQkxFKFdFQl9SVEMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvUlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyLm1l
c3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL1JUQ0Rh
dGFDaGFubmVsUmVtb3RlTWFuYWdlci5tZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jOGVhNWRkNmZj
M2NkYWM4ZDQwNjFhNjdjZDFkZDcxZjViZjMxY2JmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL1JUQ0RhdGFDaGFubmVsUmVtb3RlTWFu
YWdlci5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDM3IEBACisjIENvcHlyaWdodCAoQykgMjAyMSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuICBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
IyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBB
TkQKKyMgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorIyBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUgorIyBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisjIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisjIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSCisjIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisjIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisKKyNpZiBFTkFCTEUoV0VCX1JUQykKKworbWVzc2FnZXMgLT4gUlRD
RGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyIE5vdFJlZkNvdW50ZWQgeworICAgIC8vIFRvIHNvdXJj
ZQorICAgIFNlbmREYXRhKHN0cnVjdCBXZWJDb3JlOjpSVENEYXRhQ2hhbm5lbElkZW50aWZpZXIg
c291cmNlLCBib29sIGlzUmF3LCBJUEM6OkRhdGFSZWZlcmVuY2UgdGV4dCk7CisgICAgQ2xvc2Uo
c3RydWN0IFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsSWRlbnRpZmllciBzb3VyY2UpOworCisgICAg
Ly8gVG8gaGFuZGxlcgorwqAgwqAgQ2hhbmdlUmVhZHlTdGF0ZShzdHJ1Y3QgV2ViQ29yZTo6UlRD
RGF0YUNoYW5uZWxJZGVudGlmaWVyIGhhbmRsZXIsIGVudW06dWludDhfdCBXZWJDb3JlOjpSVENE
YXRhQ2hhbm5lbFN0YXRlIHN0YXRlKTsKK8KgIMKgIFJlY2VpdmVEYXRhKHN0cnVjdCBXZWJDb3Jl
OjpSVENEYXRhQ2hhbm5lbElkZW50aWZpZXIgaGFuZGxlciwgYm9vbCBpc1JhdywgSVBDOjpEYXRh
UmVmZXJlbmNlIGRhdGEpOworwqAgwqAgRGV0ZWN0RXJyb3Ioc3RydWN0IFdlYkNvcmU6OlJUQ0Rh
dGFDaGFubmVsSWRlbnRpZmllciBoYW5kbGVyKTsKK8KgIMKgIEJ1ZmZlcmVkQW1vdW50SXNEZWNy
ZWFzaW5nKHN0cnVjdCBXZWJDb3JlOjpSVENEYXRhQ2hhbm5lbElkZW50aWZpZXIgaGFuZGxlciwg
c2l6ZV90IGFtb3VudCk7Cit9CisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCX1JUQykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJD
b25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29u
dGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcAppbmRleCA0NjI0YzgzNTY5YWI5MTUwMTk1ZTQ2NDQ2
YzA0NjI0ZTVkMDAyOWNkLi5iMzlhYmIyMjAzMGQ4ZGNiODAwMWI4M2UwNDUwMmFlOGUzYzFmZjQz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRl
eHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0
b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwCkBAIC0zMyw2ICszMyw3IEBA
CiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIk5ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzTWVzc2FnZXMuaCIKICNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc01lc3NhZ2VzLmgiCisj
aW5jbHVkZSAiUlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiU2Vydmlj
ZVdvcmtlckZldGNoVGFza01lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiU2VydmljZVdvcmtlckluaXRp
YWxpemF0aW9uRGF0YS5oIgogI2luY2x1ZGUgIldlYkNhY2hlU3RvcmFnZVByb3ZpZGVyLmgiCkBA
IC03NCw2ICs3NSwxNiBAQCB1c2luZyBuYW1lc3BhY2UgUEFMOwogdXNpbmcgbmFtZXNwYWNlIFdl
YkNvcmU7CiAKIAorI2lmIEVOQUJMRShXRUJfUlRDKQorY2xhc3MgU2VydmljZVdvcmtlckxpYldl
YlJUQ1Byb3ZpZGVyIGZpbmFsIDogcHVibGljIFdlYkNvcmU6OkxpYldlYlJUQ1Byb3ZpZGVyIHsK
K3B1YmxpYzoKKyAgICBTZXJ2aWNlV29ya2VyTGliV2ViUlRDUHJvdmlkZXIoKSA9IGRlZmF1bHQ7
CisKK3ByaXZhdGU6CisgICAgUmVmUHRyPFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsUmVtb3RlSGFu
ZGxlckNvbm5lY3Rpb24+IGNyZWF0ZVJUQ0RhdGFDaGFubmVsUmVtb3RlSGFuZGxlckNvbm5lY3Rp
b24oKSBmaW5hbCB7IHJldHVybiAmUlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyOjpzaGFyZWRN
YW5hZ2VyKCkucmVtb3RlSGFuZGxlckNvbm5lY3Rpb24oKTsgfQorfTsKKyNlbmRpZgorCiBTZXJ2
aWNlV29ya2VyRnJhbWVMb2FkZXJDbGllbnQ6OlNlcnZpY2VXb3JrZXJGcmFtZUxvYWRlckNsaWVu
dChXZWJQYWdlUHJveHlJZGVudGlmaWVyIHdlYlBhZ2VQcm94eUlELCBQYWdlSWRlbnRpZmllciBw
YWdlSUQsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCkK
ICAgICA6IG1fd2ViUGFnZVByb3h5SUQod2ViUGFnZVByb3h5SUQpCiAgICAgLCBtX3BhZ2VJRChw
YWdlSUQpCkBAIC0xMzMsNiArMTQ0LDkgQEAgdm9pZCBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVj
dGlvbjo6aW5zdGFsbFNlcnZpY2VXb3JrZXIoY29uc3QgU2VydmljZVdvcmtlckNvbnQKICNlbmRp
ZgogICAgIHBhZ2VDb25maWd1cmF0aW9uLnNvY2tldFByb3ZpZGVyID0gV2ViU29ja2V0UHJvdmlk
ZXI6OmNyZWF0ZSgpOwogICAgIHBhZ2VDb25maWd1cmF0aW9uLnVzZXJDb250ZW50UHJvdmlkZXIg
PSBtX3VzZXJDb250ZW50Q29udHJvbGxlcjsKKyNpZiBFTkFCTEUoV0VCX1JUQykKKyAgICBwYWdl
Q29uZmlndXJhdGlvbi5saWJXZWJSVENQcm92aWRlciA9IG1ha2VVbmlxdWVSZWY8U2VydmljZVdv
cmtlckxpYldlYlJUQ1Byb3ZpZGVyPigpOworI2VuZGlmCiAKICAgICBhdXRvIGVmZmVjdGl2ZVVz
ZXJBZ2VudCA9ICBXVEZNb3ZlKHVzZXJBZ2VudCk7CiAgICAgaWYgKGVmZmVjdGl2ZVVzZXJBZ2Vu
dC5pc051bGwoKSkKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxv
ZwppbmRleCA0NDM5YjhmNTUxZWVlNzIyZTlmZjFhMWMzNmIwZjM5ZDY3ZGJlMWNmLi4zZTc5Yzdk
YzBkZDQyM2VkMzM3OTU4OGNkMmNhZDRiNzk5YjllYTAzIDEwMDY0NAotLS0gYS9Ub29scy9DaGFu
Z2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjEtMDMtMTgg
IFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBS
VENEYXRhQ2hhbm5lbCB0cmFuc2ZlciBvdXQgb2YgcHJvY2VzcworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIzNDQzCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgZmlyc3QgdHJ5IGF0IHJlbW90ZSBjaGFubmVs
cworCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2o6CisKIDIwMjEtMDMtMTcgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUu
Y29tPgogCiAgICAgICAgIEdlb2xvY2F0aW9uIEFQSSBkb2VzIG5vdCB3b3JrIGluIFdLV2ViVmll
dyB3aXRoIGN1c3RvbSBVUkwgc2NoZW1lIGhhbmRsZXIKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5k
ZXggZTI0NDBiYmI0YWUwMzE3Y2MyOGFhYTgxNmY4NzYxYzMzY2QwYjdmNy4uMTQxNTM3N2VjM2Ux
NjQzZTdlZTY1Y2U2ODgyMTE0Yjk1NTYyMTFmYyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAg
LTIzNSw2ICsyMzUsNyBAQAogCQkzRkJEMUI0QTFEM0Q2NkFCMDBFNkQ2RkEgLyogRnVsbHNjcmVl
bkxheW91dENvbnN0cmFpbnRzLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gM0ZCRDFCNDkxRDM5RDFEQjAwRTZENkZBIC8qIEZ1bGxzY3Jl
ZW5MYXlvdXRDb25zdHJhaW50cy5odG1sICovOyB9OwogCQkzRkNDNEZFNTFFQzRFODUyMDA3NkUz
N0MgLyogUGljdHVyZUluUGljdHVyZURlbGVnYXRlLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gM0ZDQzRGRTQxRUM0RTg1MjAwNzZFMzdDIC8qIFBpY3R1
cmVJblBpY3R1cmVEZWxlZ2F0ZS5tbSAqLzsgfTsKIAkJM0ZDQzRGRTgxRUM0RThDQTAwNzZFMzdD
IC8qIFBpY3R1cmVJblBpY3R1cmVEZWxlZ2F0ZS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDNGQ0M0RkU2MUVDNEU4N0UwMDc2RTM3QyAv
KiBQaWN0dXJlSW5QaWN0dXJlRGVsZWdhdGUuaHRtbCAqLzsgfTsKKwkJNDExMjIzQzcyNjAzNUZC
RjAwQjBBMEI2IC8qIFdlYlJUQy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDQxMTIyM0M2MjYwMzVGQkUwMEIwQTBCNiAvKiBXZWJSVEMubW0gKi87IH07
CiAJCTQxMTU3MjM3MjM0QjI0MEMwMDUwQTFEMSAvKiBHZXRVc2VyTWVkaWEubW0gaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTE1NzIzNjIzNEIyNDA0MDA1
MEExRDEgLyogR2V0VXNlck1lZGlhLm1tICovOyB9OwogCQk0MTM1RkI4NDIwMTFGQUE3MDAzMzIx
MzkgLyogSW5qZWN0SW50ZXJuYWxzX0J1bmRsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTM1RkI4MzIwMTFGQUEzMDAzMzIxMzkgLyogSW5qZWN0
SW50ZXJuYWxzX0J1bmRsZS5jcHAgKi87IH07CiAJCTQxMzVGQjg1MjAxMUZBQkYwMDMzMjEzOSAv
KiBsaWJXZWJDb3JlVGVzdFN1cHBvcnQuZHlsaWIgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTM1RkI4NjIwMTFGQUJGMDAzMzIxMzkgLyogbGliV2Vi
Q29yZVRlc3RTdXBwb3J0LmR5bGliICovOyB9OwpAQCAtMTk5Nyw2ICsxOTk4LDcgQEAKIAkJM0ZC
RDFCNDkxRDM5RDFEQjAwRTZENkZBIC8qIEZ1bGxzY3JlZW5MYXlvdXRDb25zdHJhaW50cy5odG1s
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gRnVsbHNjcmVlbkxheW91dENvbnN0cmFpbnRz
Lmh0bWw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTNGQ0M0RkU0MUVDNEU4NTIwMDc2
RTM3QyAvKiBQaWN0dXJlSW5QaWN0dXJlRGVsZWdhdGUubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IHBhdGggPSBQaWN0dXJlSW5QaWN0dXJlRGVsZWdhdGUubW07IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTNGQ0M0RkU2MUVDNEU4N0UwMDc2RTM3QyAvKiBQaWN0dXJl
SW5QaWN0dXJlRGVsZWdhdGUuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9IFBpY3R1
cmVJblBpY3R1cmVEZWxlZ2F0ZS5odG1sOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0
MTEyMjNDNjI2MDM1RkJFMDBCMEEwQjYgLyogV2ViUlRDLm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViUlRDLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk0MTE1NzIzNjIzNEIyNDA0MDA1MEExRDEgLyogR2V0VXNlck1lZGlhLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gR2V0VXNlck1lZGlhLm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk0MTM1RkI4MzIwMTFGQUEzMDAzMzIxMzkgLyogSW5qZWN0
SW50ZXJuYWxzX0J1bmRsZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUg
PSBJbmplY3RJbnRlcm5hbHNfQnVuZGxlLmNwcDsgcGF0aCA9IFRlc3RzL0luamVjdEludGVybmFs
c19CdW5kbGUuY3BwOyBzb3VyY2VUcmVlID0gU09VUkNFX1JPT1Q7IH07CiAJCTQxMzVGQjg2MjAx
MUZBQkYwMDMzMjEzOSAvKiBsaWJXZWJDb3JlVGVzdFN1cHBvcnQuZHlsaWIgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZXhwbGljaXRGaWxlVHlwZSA9ICJjb21waWxlZC5tYWNoLW8uZHls
aWIiOyBwYXRoID0gbGliV2ViQ29yZVRlc3RTdXBwb3J0LmR5bGliOyBzb3VyY2VUcmVlID0gQlVJ
TFRfUFJPRFVDVFNfRElSOyB9OwpAQCAtNDI3Miw2ICs0Mjc0LDcgQEAKIAkJCQkxMTVFQjM0MjFF
RTBCNzIwMDAzQzJDMEEgLyogVmlld3BvcnRTaXplRm9yVmlld3BvcnRVbml0cy5tbSAqLywKIAkJ
CQk1MjBCQ0Y0QjE0MUVCMDlFMDA5MzdFQTggLyogV2ViQXJjaGl2ZS5jcHAgKi8sCiAJCQkJNTIw
QkNGNEExNDFFQjA5RTAwOTM3RUE4IC8qIFdlYkFyY2hpdmVfQnVuZGxlLmNwcCAqLywKKwkJCQk0
MTEyMjNDNjI2MDM1RkJFMDBCMEEwQjYgLyogV2ViUlRDLm1tICovLAogCQkJCTdDRkJDQUREMTc0
MzIzNEYwMEIyQkZDRiAvKiBXaWxsTG9hZC5jcHAgKi8sCiAJCQkJN0NGQkNBRTMxNzQzMjM4RTAw
QjJCRkNGIC8qIFdpbGxMb2FkX0J1bmRsZS5jcHAgKi8sCiAJCQkJNzZFMTgyRDkxNTQ3NTUwMTAw
RjFGQUREIC8qIFdpbGxTZW5kU3VibWl0RXZlbnQuY3BwICovLApAQCAtNTY3OCw2ICs1NjgxLDcg
QEAKIAkJCQk3Q0NFN0VBQjFBNDExQTI0MDA0NDdDNEMgLyogV2ViS2l0QWdub3N0aWNUZXN0Lm1t
IGluIFNvdXJjZXMgKi8sCiAJCQkJNDQ4MTEwQzIyNTNGNDAzMDAwOTdGQzMzIC8qIFdlYlByZWZl
cmVuY2VzVGVzdC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTUxNzE0RUI4MUNGOENBMTcwMDQ3MjND
NCAvKiBXZWJQcm9jZXNzS2lsbElEQkNsZWFudXAubW0gaW4gU291cmNlcyAqLywKKwkJCQk0MTEy
MjNDNzI2MDM1RkJGMDBCMEEwQjYgLyogV2ViUlRDLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNTM2
NzcwMzQxQ0M4MDIyODAwRDQyNUIxIC8qIFdlYlNjcmlwdE9iamVjdERlc2NyaXB0aW9uLm1tIGlu
IFNvdXJjZXMgKi8sCiAJCQkJNTEyMEM4M0QxRTY3NTEyOTAwMjVCMjUwIC8qIFdlYnNpdGVEYXRh
U3RvcmVDdXN0b21QYXRocy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTVDOUU1Njg1MURGOTE0NTQw
MEM5RUUzMyAvKiBXZWJzaXRlUG9saWNpZXMubW0gaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1dlYlJUQy5tbSBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1dlYlJUQy5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yZjkwYzViMzA2Nzc2
YjhmYjk5YmM0ZmMzODk5ODdhNTY3Njg2OTkzCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvV2ViUlRDLm1tCkBAIC0wLDAgKzEsMTgzIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUoV0VCX1JUQykKKworI2lt
cG9ydCAiSFRUUFNlcnZlci5oIgorI2ltcG9ydCAiUGxhdGZvcm1VdGlsaXRpZXMuaCIKKyNpbXBv
cnQgIlRlc3ROYXZpZ2F0aW9uRGVsZWdhdGUuaCIKKyNpbXBvcnQgIlRlc3RXS1dlYlZpZXcuaCIK
KworQGludGVyZmFjZSBXZWJSVENNZXNzYWdlSGFuZGxlciA6IE5TT2JqZWN0IDxXS1NjcmlwdE1l
c3NhZ2VIYW5kbGVyPgorLSAodm9pZClzZXRNZXNzYWdlSGFuZGxlcjooRnVuY3Rpb248dm9pZChX
S1NjcmlwdE1lc3NhZ2UqKT4mJiltZXNzYWdlSGFuZGxlcjsKK0BlbmQKKworQGltcGxlbWVudGF0
aW9uIFdlYlJUQ01lc3NhZ2VIYW5kbGVyICB7CitGdW5jdGlvbjx2b2lkKFdLU2NyaXB0TWVzc2Fn
ZSopPiBfbWVzc2FnZUhhbmRsZXI7Cit9CistICh2b2lkKXNldE1lc3NhZ2VIYW5kbGVyOihGdW5j
dGlvbjx2b2lkKFdLU2NyaXB0TWVzc2FnZSopPiYmKW1lc3NhZ2VIYW5kbGVyIHsKKyAgICBfbWVz
c2FnZUhhbmRsZXIgPSBXVEZNb3ZlKG1lc3NhZ2VIYW5kbGVyKTsKK30KKy0gKHZvaWQpdXNlckNv
bnRlbnRDb250cm9sbGVyOihXS1VzZXJDb250ZW50Q29udHJvbGxlciAqKXVzZXJDb250ZW50Q29u
dHJvbGxlciBkaWRSZWNlaXZlU2NyaXB0TWVzc2FnZTooV0tTY3JpcHRNZXNzYWdlICopbWVzc2Fn
ZQoreworICAgIGlmIChfbWVzc2FnZUhhbmRsZXIpCisgICAgICAgIF9tZXNzYWdlSGFuZGxlciht
ZXNzYWdlKTsKK30KK0BlbmQKKworbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgeworCitzdGF0aWMg
Ym9vbCBpc1JlYWR5ID0gZmFsc2U7CisKK1RFU1QoV2ViS2l0MiwgUlRDRGF0YUNoYW5uZWxQb3N0
TWVzc2FnZSkKK3sKKyAgICBfX2Jsb2NrIGJvb2wgcmVtb3ZlZEFueUV4aXN0aW5nRGF0YSA9IGZh
bHNlOworICAgIFtbV0tXZWJzaXRlRGF0YVN0b3JlIGRlZmF1bHREYXRhU3RvcmVdIHJlbW92ZURh
dGFPZlR5cGVzOltXS1dlYnNpdGVEYXRhU3RvcmUgYWxsV2Vic2l0ZURhdGFUeXBlc10gbW9kaWZp
ZWRTaW5jZTpbTlNEYXRlIGRpc3RhbnRQYXN0XSBjb21wbGV0aW9uSGFuZGxlcjpeKCkgeworICAg
ICAgICByZW1vdmVkQW55RXhpc3RpbmdEYXRhID0gdHJ1ZTsKKyAgICB9XTsKKyAgICBUZXN0V2Vi
S2l0QVBJOjpVdGlsOjpydW4oJnJlbW92ZWRBbnlFeGlzdGluZ0RhdGEpOworCisgICAgc3RhdGlj
IGNvbnN0IGNoYXIqIG1haW4gPQorICAgICI8c2NyaXB0PiIKKyAgICAibGV0IHJlZ2lzdHJhdGlv
bjsiCisgICAgImFzeW5jIGZ1bmN0aW9uIHJlZ2lzdGVyKCkgeyIKKyAgICAiICAgIHJlZ2lzdHJh
dGlvbiA9IGF3YWl0IG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLnJlZ2lzdGVyKCcvc3cuanMnKTsi
CisgICAgIiAgICBpZiAocmVnaXN0cmF0aW9uLmFjdGl2ZSkgeyIKKyAgICAiICAgICAgICB3aW5k
b3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy53ZWJydGMucG9zdE1lc3NhZ2UoJ1JFQURZJyk7Igor
ICAgICIgICAgICAgIHJldHVybjsiCisgICAgIiAgICB9IgorICAgICIgICAgd29ya2VyID0gcmVn
aXN0cmF0aW9uLmluc3RhbGxpbmc7IgorICAgICIgICAgd29ya2VyLmFkZEV2ZW50TGlzdGVuZXIo
J3N0YXRlY2hhbmdlJywgZnVuY3Rpb24oKSB7IgorICAgICIgICAgICAgIGlmICh3b3JrZXIuc3Rh
dGUgPT0gJ2FjdGl2YXRlZCcpIgorICAgICIgICAgICAgICAgICB3aW5kb3cud2Via2l0Lm1lc3Nh
Z2VIYW5kbGVycy53ZWJydGMucG9zdE1lc3NhZ2UoJ1JFQURZJyk7IgorICAgICIgICAgfSk7Igor
ICAgICJ9IgorICAgICJyZWdpc3RlcigpOyIKKyAgICAiIgorICAgICJsZXQgY2hhbm5lbDEsIGNo
YW5uZWwyOyIKKyAgICAibGV0IHBjMSwgcGMyOyIKKyAgICAiYXN5bmMgZnVuY3Rpb24gZG9UcmFu
c2ZlckRhdGFDaGFubmVsVGVzdCgpIHsiCisgICAgICAgICJwYzEgPSBuZXcgUlRDUGVlckNvbm5l
Y3Rpb24oKTsiCisgICAgICAgICJwYzIgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsiCisgICAg
ICAgICIiCisgICAgICAgICJwYzEub25pY2VjYW5kaWRhdGUgPSAoZXZlbnQpID0+IHBjMi5hZGRJ
Y2VDYW5kaWRhdGUoZXZlbnQuY2FuZGlkYXRlKTsiCisgICAgICAgICJwYzIub25pY2VjYW5kaWRh
dGUgPSAoZXZlbnQpID0+IHBjMS5hZGRJY2VDYW5kaWRhdGUoZXZlbnQuY2FuZGlkYXRlKTsiCisg
ICAgICAgICIiCisgICAgICAgICJjaGFubmVsMSA9IHBjMS5jcmVhdGVEYXRhQ2hhbm5lbCgndGVz
dCcpOyIKKyAgICAgICAgInJlZ2lzdHJhdGlvbi5hY3RpdmUucG9zdE1lc3NhZ2UoeyBjaGFubmVs
OiBjaGFubmVsMSB9LCBbY2hhbm5lbDFdKTsiCisgICAgICAgICJsZXQgcHJvbWlzZSA9IG5ldyBQ
cm9taXNlKHJlc29sdmUgPT4gcGMyLm9uZGF0YWNoYW5uZWwgPSAoZXZlbnQpID0+IHJlc29sdmUo
ZXZlbnQuY2hhbm5lbCkpOyIKKyAgICAgICAgIiIKKyAgICAgICAgImNvbnN0IG9mZmVyID0gYXdh
aXQgcGMxLmNyZWF0ZU9mZmVyKCk7IgorICAgICAgICAiYXdhaXQgcGMxLnNldExvY2FsRGVzY3Jp
cHRpb24ob2ZmZXIpOyIKKyAgICAgICAgImF3YWl0IHBjMi5zZXRSZW1vdGVEZXNjcmlwdGlvbihv
ZmZlcik7IgorICAgICAgICAiY29uc3QgYW5zd2VyID0gYXdhaXQgcGMyLmNyZWF0ZUFuc3dlcigp
OyIKKyAgICAgICAgImF3YWl0IHBjMi5zZXRMb2NhbERlc2NyaXB0aW9uKGFuc3dlcik7IgorICAg
ICAgICAiYXdhaXQgcGMxLnNldFJlbW90ZURlc2NyaXB0aW9uKGFuc3dlcik7IgorICAgICAgICAi
IgorICAgICAgICAiY2hhbm5lbDIgPSBhd2FpdCBwcm9taXNlOyIKKyAgICAgICAgImlmIChjaGFu
bmVsMi5yZWFkeVN0YXRlID09PSAnY2xvc2VkJykgeyIKKyAgICAgICAgIiAgIHdpbmRvdy53ZWJr
aXQubWVzc2FnZUhhbmRsZXJzLndlYnJ0Yy5wb3N0TWVzc2FnZSgnQ0xPU0VEJyk7IgorICAgICAg
ICAiICAgcmV0dXJuOyIKKyAgICAgICAgIn0iCisgICAgICAgICJpZiAoY2hhbm5lbDIucmVhZHlT
dGF0ZSAhPT0gJ29wZW4nKSIKKyAgICAgICAgIiAgICBhd2FpdCBuZXcgUHJvbWlzZShyZXNvbHZl
ID0+IGNoYW5uZWwyLm9ub3BlbiA9IHJlc29sdmUpOyIKKyAgICAgICAgIiIKKyAgICAgICAgInBy
b21pc2UgPSBuZXcgUHJvbWlzZShyZXNvbHZlID0+IG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLm9u
bWVzc2FnZSA9IChldmVudCkgPT4gcmVzb2x2ZShldmVudC5kYXRhKSk7IgorICAgICAgICAiY2hh
bm5lbDIuc2VuZCgnVFJBTlNGRVJFRCcpOyIKKyAgICAgICAgIndpbmRvdy53ZWJraXQubWVzc2Fn
ZUhhbmRsZXJzLndlYnJ0Yy5wb3N0TWVzc2FnZShhd2FpdCBwcm9taXNlKTsiCisgICAgIn0iCisg
ICAgImZ1bmN0aW9uIHRyYW5zZmVyRGF0YUNoYW5uZWwoKSB7IgorICAgICIgICBkb1RyYW5zZmVy
RGF0YUNoYW5uZWxUZXN0KCk7IgorICAgICJ9IgorICAgICI8L3NjcmlwdD4iOworCisgICAgc3Rh
dGljIGNvbnN0IGNoYXIqIGpzID0gInNlbGYub25tZXNzYWdlID0gKGV2ZW50KSA9PiB7ICIKKyAg
ICAiICAgIGNvbnN0IHNvdXJjZSA9IGV2ZW50LnNvdXJjZTsiCisgICAgIiAgICBjb25zdCBjaGFu
bmVsID0gZXZlbnQuZGF0YS5jaGFubmVsOyIKKyAgICAiICAgIGlmIChjaGFubmVsLnJlYWR5U3Rh
dGUgPT09ICdjbG9zZWQnKSIKKyAgICAiICAgICAgICBzb3VyY2UucG9zdE1lc3NhZ2UoJ2Nsb3Nl
ZCcpOyIKKyAgICAiICAgIGNoYW5uZWwub25jbG9zZSA9IChlKSA9PiBzb3VyY2UucG9zdE1lc3Nh
Z2UoJ2Nsb3NlIGV2ZW50Jyk7IgorICAgICIgICAgY2hhbm5lbC5vbm1lc3NhZ2UgPSAoZSkgPT4g
c291cmNlLnBvc3RNZXNzYWdlKGUuZGF0YSk7IgorICAgICJ9OyI7CisKKyAgICBIVFRQU2VydmVy
IHNlcnZlcih7CisgICAgICAgIHsgIi8iLCB7IG1haW4gfSB9LAorICAgICAgICB7ICIvc3cuanMi
LCB7IHt7ICJDb250ZW50LVR5cGUiLCAiYXBwbGljYXRpb24vamF2YXNjcmlwdCIgfX0sIGpzIH0g
fSwKKyAgICAgICAgeyAiLyIsIHsgbWFpbiB9IH0sCisgICAgfSwgSFRUUFNlcnZlcjo6UHJvdG9j
b2w6Okh0dHBzKTsKKyAgICBhdXRvKiByZXF1ZXN0ID0gc2VydmVyLnJlcXVlc3QoKTsKKworICAg
IGF1dG8gbmF2aWdhdGlvbkRlbGVnYXRlID0gYWRvcHROUyhbVGVzdE5hdmlnYXRpb25EZWxlZ2F0
ZSBuZXddKTsKKyAgICBbbmF2aWdhdGlvbkRlbGVnYXRlIHNldERpZFJlY2VpdmVBdXRoZW50aWNh
dGlvbkNoYWxsZW5nZTpeKFdLV2ViVmlldyAqLCBOU1VSTEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
ICpjaGFsbGVuZ2UsIHZvaWQgKF5jYWxsYmFjaykoTlNVUkxTZXNzaW9uQXV0aENoYWxsZW5nZURp
c3Bvc2l0aW9uLCBOU1VSTENyZWRlbnRpYWwgKikpIHsKKyAgICAgICAgY2FsbGJhY2soTlNVUkxT
ZXNzaW9uQXV0aENoYWxsZW5nZVVzZUNyZWRlbnRpYWwsIFtOU1VSTENyZWRlbnRpYWwgY3JlZGVu
dGlhbEZvclRydXN0OmNoYWxsZW5nZS5wcm90ZWN0aW9uU3BhY2Uuc2VydmVyVHJ1c3RdKTsKKyAg
ICB9XTsKKworICAgIGF1dG8gY29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25m
aWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CisgICAgYXV0byBtZXNzYWdlSGFuZGxlciA9IGFkb3B0
TlMoW1tXZWJSVENNZXNzYWdlSGFuZGxlciBhbGxvY10gaW5pdF0pOworICAgIFtbY29uZmlndXJh
dGlvbiB1c2VyQ29udGVudENvbnRyb2xsZXJdIGFkZFNjcmlwdE1lc3NhZ2VIYW5kbGVyOm1lc3Nh
Z2VIYW5kbGVyLmdldCgpIG5hbWU6QCJ3ZWJydGMiXTsKKworICAgIGF1dG8gd2ViVmlldzEgPSBh
ZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAs
IDAsIDMyMCwgNTAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCldKTsKKyAgICB3
ZWJWaWV3MS5nZXQoKS5uYXZpZ2F0aW9uRGVsZWdhdGUgPSBuYXZpZ2F0aW9uRGVsZWdhdGUuZ2V0
KCk7CisKKyAgICBbbWVzc2FnZUhhbmRsZXIgc2V0TWVzc2FnZUhhbmRsZXI6W10oV0tTY3JpcHRN
ZXNzYWdlICptZXNzYWdlKSB7CisgICAgICAgIEVYUEVDVF9XS19TVFJFUShAIlJFQURZIiwgW21l
c3NhZ2UgYm9keV0pOworICAgICAgICBpc1JlYWR5ID0gdHJ1ZTsKKyAgICB9XTsKKyAgICBpc1Jl
YWR5ID0gZmFsc2U7CisgICAgW3dlYlZpZXcxIGxvYWRSZXF1ZXN0OnJlcXVlc3RdOworICAgIFRl
c3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmaXNSZWFkeSk7CisKKyAgICBhdXRvIHdlYlZpZXcyID0g
YWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgw
LCAwLCAzMjAsIDUwMCkgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uLmdldCgpXSk7CisgICAg
d2ViVmlldzIuZ2V0KCkubmF2aWdhdGlvbkRlbGVnYXRlID0gbmF2aWdhdGlvbkRlbGVnYXRlLmdl
dCgpOworCisgICAgW21lc3NhZ2VIYW5kbGVyIHNldE1lc3NhZ2VIYW5kbGVyOltdKFdLU2NyaXB0
TWVzc2FnZSAqbWVzc2FnZSkgeworICAgICAgICBFWFBFQ1RfV0tfU1RSRVEoQCJSRUFEWSIsIFtt
ZXNzYWdlIGJvZHldKTsKKyAgICAgICAgaXNSZWFkeSA9IHRydWU7CisgICAgfV07CisgICAgaXNS
ZWFkeSA9IGZhbHNlOworICAgIFt3ZWJWaWV3MiBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKKyAgICBU
ZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmlzUmVhZHkpOworCisgICAgW21lc3NhZ2VIYW5kbGVy
IHNldE1lc3NhZ2VIYW5kbGVyOltdKFdLU2NyaXB0TWVzc2FnZSAqbWVzc2FnZSkgeworICAgICAg
ICBFWFBFQ1RfV0tfU1RSRVEoQCJUUkFOU0ZFUkVEIiwgW21lc3NhZ2UgYm9keV0pOworICAgICAg
ICBpc1JlYWR5ID0gdHJ1ZTsKKyAgICB9XTsKKworICAgIC8vIFRyYW5zZmVyIGlzIHByb2JhYmx5
IGluLXByb2Nlc3MuCisgICAgaXNSZWFkeSA9IGZhbHNlOworICAgIFt3ZWJWaWV3MSBzdHJpbmdC
eUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAidHJhbnNmZXJEYXRhQ2hhbm5lbCgpIl07CisgICAgVGVz
dFdlYktpdEFQSTo6VXRpbDo6cnVuKCZpc1JlYWR5KTsKKworICAgIC8vIFRyYW5zZmVyIGlzIHBy
b2JhYmx5IG91dC1vZi1wcm9jZXNzLgorICAgIGlzUmVhZHkgPSBmYWxzZTsKKyAgICBbd2ViVmll
dzIgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAInRyYW5zZmVyRGF0YUNoYW5uZWwoKSJd
OworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmaXNSZWFkeSk7Cit9CisKK30gLy8gbmFt
ZXNwYWNlIFRlc3RXZWJLaXRBUEkKKworI2VuZGlmIC8vIEVOQUJMRShXRUJfUlRDKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>423621</attachid>
            <date>2021-03-18 11:26:11 -0700</date>
            <delta_ts>2021-03-22 01:57:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-223443-20210318192605.patch</filename>
            <type>text/plain</type>
            <size>157839</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0NDcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzk0MDkxM2ExNjU1N2Ex
N2MxNTU4ZTc3NWU2N2VkMTIyOWU1MzIxYi4uMzFiNDE3OTI3ZTcxYmNmZDkzNmUzOGJkNWI2ZmQw
MTI4MjQyZjRlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg5IEBACisyMDIxLTAzLTE4ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgUlRDRGF0
YUNoYW5uZWwgdHJhbnNmZXIgb3V0IG9mIHByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMzQ0MworCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBzZXJpYWxpemF0aW9uL2Rl
c2VyaWFsaXphdGlvbiBvZiBSVENEYXRhQ2hhbm5lbCBpbmZvcm1hdGlvbiBzbyB0aGF0IGl0IGNh
biBiZSBNZXNzYWdlUG9ydCB0cmFuc2ZlcmVkIG9yIHRyYW5zZmVyZWQgdG8gb3V0LW9mLXByb2Nl
c3MgY29udGV4dHMgbGlrZSBXaW5kb3cgb3IgU2VydmljZSBXb3JrZXIuCisgICAgICAgIEFkZCBp
bmZyYXN0cnVjdHVyZSBmb3IgcmVtb3RlIHNvdXJjZXMgKHRoYXQgYWxsb3dzIHRvIHNlbmQgZGF0
YSBvciBjbG9zZSBkYXRhIGNoYW5uZWxzKSBhbmQgcmVtb3RlIGhhbmRsZXJzIHdoaWNoIHJlY2Vp
dmUgbWVzc2FnZXMgZnJvbSBvdXQtb2YtcHJvY2VzcyBkYXRhIGNoYW5uZWxzLgorCisgICAgICAg
IENvdmVyZWQgYnkgQVBJIHRlc3RzLgorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9E
ZXRhY2hlZFJUQ0RhdGFDaGFubmVsLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6RGV0YWNo
ZWRSVENEYXRhQ2hhbm5lbDo6RGV0YWNoZWRSVENEYXRhQ2hhbm5lbCk6CisgICAgICAgIChXZWJD
b3JlOjpEZXRhY2hlZFJUQ0RhdGFDaGFubmVsOjptZW1vcnlDb3N0IGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OkRldGFjaGVkUlRDRGF0YUNoYW5uZWw6OmVuY29kZSBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpEZXRhY2hlZFJUQ0RhdGFDaGFubmVsOjpkZWNvZGUpOgorICAgICAgICAqIE1v
ZHVsZXMvbWVkaWFzdHJlYW0vUlRDRGF0YUNoYW5uZWwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UlRDRGF0YUNoYW5uZWw6OlJUQ0RhdGFDaGFubmVsKToKKyAgICAgICAgKFdlYkNvcmU6OnJ0Y0Rh
dGFDaGFubmVsTG9jYWxNYXApOgorICAgICAgICAoV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWw6Omhh
bmRsZXJGcm9tSWRlbnRpZmllcik6CisgICAgICAgIChXZWJDb3JlOjpSVENEYXRhQ2hhbm5lbDo6
Y3JlYXRlKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsLmg6
CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRs
ZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsUmVtb3RlSGFu
ZGxlcjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsUmVtb3RlSGFu
ZGxlcjo6UlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJU
Q0RhdGFDaGFubmVsUmVtb3RlSGFuZGxlcjo6flJUQ0RhdGFDaGFubmVsUmVtb3RlSGFuZGxlcik6
CisgICAgICAgIChXZWJDb3JlOjpSVENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXI6OmRpZENoYW5n
ZVJlYWR5U3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5k
bGVyOjpkaWRSZWNlaXZlU3RyaW5nRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpSVENEYXRhQ2hh
bm5lbFJlbW90ZUhhbmRsZXI6OmRpZFJlY2VpdmVSYXdEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6
OlJUQ0RhdGFDaGFubmVsUmVtb3RlSGFuZGxlcjo6ZGlkRGV0ZWN0RXJyb3IpOgorICAgICAgICAo
V2ViQ29yZTo6UlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVyOjpidWZmZXJlZEFtb3VudElzRGVj
cmVhc2luZyk6CisgICAgICAgIChXZWJDb3JlOjpSVENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXI6
OnJlYWR5VG9TZW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsUmVtb3RlSGFu
ZGxlcjo6c2V0Q2xpZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsUmVtb3Rl
SGFuZGxlcjo6c2VuZFN0cmluZ0RhdGEpOgorICAgICAgICAoV2ViQ29yZTo6UlRDRGF0YUNoYW5u
ZWxSZW1vdGVIYW5kbGVyOjpzZW5kUmF3RGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpSVENEYXRh
Q2hhbm5lbFJlbW90ZUhhbmRsZXI6OmNsb3NlKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3Ry
ZWFtL1JUQ0RhdGFDaGFubmVsUmVtb3RlSGFuZGxlci5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1
bGVzL21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsUmVtb3RlU291cmNlLmNwcDogQ29waWVkIGZy
b20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDRGF0YUNoYW5uZWxIYW5k
bGVyLmguCisgICAgICAgIChXZWJDb3JlOjpSVENEYXRhQ2hhbm5lbFJlbW90ZVNvdXJjZTo6UlRD
RGF0YUNoYW5uZWxSZW1vdGVTb3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6UlRDRGF0YUNoYW5u
ZWxSZW1vdGVTb3VyY2U6On5SVENEYXRhQ2hhbm5lbFJlbW90ZVNvdXJjZSk6CisgICAgICAgICog
TW9kdWxlcy9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbFJlbW90ZVNvdXJjZS5oOiBBZGRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsUmVtb3RlU291cmNlOjpjcmVhdGUpOgor
ICAgICAgICAoV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWxSZW1vdGVTb3VyY2U6OnNlbmRTdHJpbmdE
YXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsUmVtb3RlU291cmNlOjpzZW5k
UmF3RGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpSVENEYXRhQ2hhbm5lbFJlbW90ZVNvdXJjZTo6
Y2xvc2UpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJU
Q0RhdGFDaGFubmVsSGFuZGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMaWJXZWJSVENEYXRh
Q2hhbm5lbEhhbmRsZXI6OnBvc3RUYXNrKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1
ZGlvV29ya2xldE1lc3NhZ2luZ1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvV29y
a2xldE1lc3NhZ2luZ1Byb3h5OjpjcmVhdGVSVENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXJDb25u
ZWN0aW9uKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldE1lc3NhZ2lu
Z1Byb3h5Lmg6CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1NlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWU6
OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSk6CisgICAgICAgICogYmluZGluZ3MvanMvU2VyaWFsaXpl
ZFNjcmlwdFZhbHVlLmg6CisgICAgICAgIChXZWJDb3JlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWU6
OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWU6
OmRlY29kZSk6CisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkRvY3VtZW50OjpjcmVhdGVSVENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXJDb25uZWN0aW9uKToK
KyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAgKiBkb20vU2NyaXB0RXhlY3V0aW9u
Q29udGV4dC5oOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6Y3Jl
YXRlUlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVyQ29ubmVjdGlvbik6CisgICAgICAgICogcGxh
dGZvcm0vU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIuaDogQ29waWVkIGZyb20gU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDRGF0YUNoYW5uZWxTdGF0ZS5oLgor
ICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsSGFuZGxlci5oOgor
ICAgICAgICAoV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWxJbml0OjplbmNvZGUgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWxJbml0OjpkZWNvZGUpOgorICAgICAgICAqIHBs
YXRmb3JtL21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsSWRlbnRpZmllci5oOiBDb3BpZWQgZnJv
bSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbEhhbmRs
ZXIuaC4KKyAgICAgICAgKFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsSWRlbnRpZmllcjo6ZW5jb2Rl
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsSWRlbnRpZmllcjo6ZGVj
b2RlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbFJlbW90
ZUhhbmRsZXJDb25uZWN0aW9uLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsSGFuZGxlci5oLgorICAgICAgICAqIHBsYXRmb3Jt
L21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsUmVtb3RlU291cmNlQ29ubmVjdGlvbi5oOiBDb3Bp
ZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5l
bEhhbmRsZXIuaC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5l
bFN0YXRlLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDUHJpb3JpdHlUeXBl
Lmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1By
b3ZpZGVyLmg6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpXb3JrZXJHbG9iYWxTY29wZTo6Y3JlYXRlUlRDRGF0YUNoYW5uZWxSZW1v
dGVIYW5kbGVyQ29ubmVjdGlvbik6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29w
ZS5oOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyTG9hZGVyUHJveHkuaDoKKyAgICAgICAgKiB3
b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtl
ck1lc3NhZ2luZ1Byb3h5OjpjcmVhdGVSVENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXJDb25uZWN0
aW9uKToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5Lmg6CisgICAgICAg
ICogd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZFByb3h5LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eTo6Y3JlYXRlUlRDRGF0
YUNoYW5uZWxSZW1vdGVIYW5kbGVyQ29ubmVjdGlvbik6CisgICAgICAgICogd29ya2Vycy9zZXJ2
aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZFByb3h5Lmg6CisKIDIwMjEtMDMtMTcgIFlv
dWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIFJUQ1J0cFNjcmlwdFRy
YW5zZm9ybWVyOjp3cml0YWJsZSBzaG91bGQgY2hlY2sgZm9yIG1fYmFja2VuZApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRl
eCAxMmY1ODg4YzBiNzcxNDhkNzU4NmNmYTY3YzhhMmZjZTYyMTFiNDJiLi4xYWJhMWE5YTc2ZDJl
N2RlOWNhNDNjZDQ4ZDE1NTdlYTllZTc3YWI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDg1IEBACisy
MDIxLTAzLTE4ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBJ
bXBsZW1lbnQgUlRDRGF0YUNoYW5uZWwgdHJhbnNmZXIgb3V0IG9mIHByb2Nlc3MKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMzQ0MworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBj
b25uZWN0aW5nIHJlbW90ZSBzb3VyY2VzIHRvIHJlbW90ZSBkYXRhIGNoYW5uZWxzLgorICAgICAg
ICBUaGlzIGlzIGRvbmUgYnkgY29ubmVjdGlvbiBkZXRhY2hlZCBkYXRhIGNoYW5uZWxzIHRvIHJl
bW90ZSBzb3VyY2UgdGhhdCB3aWxsIHNlbmQgbWVzc2FnZXMgdG8gbmV0d29yayBwcm9jZXNzLgor
ICAgICAgICBOZXR3b3JrIHByb2Nlc3MgdGhlbiBzZW5kcyB0byB0aGUgcHJvY2VzcyBpbiB3aGlj
aCB3YXMgcmVhdHRhY2hlZCB0aGUgZGF0YSBjaGFubmVsLgorICAgICAgICBQYWlyaW5nIG9mIGRh
dGEgY2hhbm5lbHMgaXMgZG9uZSBpbiBtYWluIHRocmVhZCB0aHJvdWdoIGNvbm5lY3RUb1NvdXJj
ZSBtZXNzYWdlLgorICAgICAgICBUaGUgZGF0YSB0aGVuIGZsb3dzIGluIGJhY2tncm91bmQgdGhy
ZWFkcywgbmV0d29yayBwcm9jZXNzIGJlaW5nIHRoZSBwcm94eSBiZXR3ZWVuIHdlYiBwcm9jZXNz
ZXMuCisgICAgICAgIFJUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlclByb3h5IGlzIHRoZSBmb3J3
YXJkaW5nIGVudGl0eSBpbiBOZXR3b3JrUHJvY2Vzcy4KKyAgICAgICAgUlRDRGF0YUNoYW5uZWxS
ZW1vdGVNYW5hZ2VyIGlzIHRoZSBlbnRpdHkgaW4gV2ViUHJvY2VzcyBkb2luZyB0aGUgbWVzc2Fn
aW5nIGZyb20gYW5kIHRvIGRhdGEgY2hhbm5lbHMuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4
dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAq
IERlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3Vy
Y2VzLm1ha2U6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzczo6fk5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNvbm5lY3RUb1JUQ0RhdGFDaGFubmVsUmVt
b3RlU291cmNlKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3M6OnJlZ2lzdGVyVG9SVENEYXRhQ2hhbm5lbFByb3h5KToKKyAgICAgICAgKFdlYktpdDo6TmV0
d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnVucmVnaXN0ZXJUb1JUQ0RhdGFDaGFubmVsUHJv
eHkpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nl
c3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6cnRjRGF0YUNoYW5uZWxQ
cm94eSk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaDoKKyAgICAg
ICAgKiBOZXR3b3JrUHJvY2Vzcy93ZWJydGMvUlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyUHJv
eHkuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5h
Z2VyUHJveHk6OlJUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlclByb3h5KToKKyAgICAgICAgKFdl
YktpdDo6UlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyUHJveHk6OnJlZ2lzdGVyQ29ubmVjdGlv
blRvV2ViUHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OlJUQ0RhdGFDaGFubmVsUmVtb3RlTWFu
YWdlclByb3h5Ojp1bnJlZ2lzdGVyQ29ubmVjdGlvblRvV2ViUHJvY2Vzcyk6CisgICAgICAgIChX
ZWJLaXQ6OlJUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlclByb3h5OjpzZW5kRGF0YSk6CisgICAg
ICAgIChXZWJLaXQ6OlJUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlclByb3h5OjpjbG9zZSk6Cisg
ICAgICAgIChXZWJLaXQ6OlJUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlclByb3h5OjpjaGFuZ2VS
ZWFkeVN0YXRlKToKKyAgICAgICAgKFdlYktpdDo6UlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2Vy
UHJveHk6OnJlY2VpdmVEYXRhKToKKyAgICAgICAgKFdlYktpdDo6UlRDRGF0YUNoYW5uZWxSZW1v
dGVNYW5hZ2VyUHJveHk6OmRldGVjdEVycm9yKToKKyAgICAgICAgKFdlYktpdDo6UlRDRGF0YUNo
YW5uZWxSZW1vdGVNYW5hZ2VyUHJveHk6OmJ1ZmZlcmVkQW1vdW50SXNEZWNyZWFzaW5nKToKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy93ZWJydGMvUlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2Vy
UHJveHkuaDogQWRkZWQuCisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mvd2VicnRjL1JUQ0RhdGFD
aGFubmVsUmVtb3RlTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluOiBBZGRlZC4KKyAgICAgICAgKiBT
b3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpjb25uZWN0VG9S
VENEYXRhQ2hhbm5lbFJlbW90ZVNvdXJjZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3Jr
L05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29y
ay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJv
Y2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5jcHA6CisgICAgICAgIChXZWJL
aXQ6OkxpYldlYlJUQ1Byb3ZpZGVyOjpjcmVhdGVSVENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXJD
b25uZWN0aW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJU
Q1Byb3ZpZGVyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9SVENEYXRh
Q2hhbm5lbFJlbW90ZU1hbmFnZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UlRDRGF0
YUNoYW5uZWxSZW1vdGVNYW5hZ2VyOjpzaGFyZWRNYW5hZ2VyKToKKyAgICAgICAgKFdlYktpdDo6
UlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyOjpSVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXIp
OgorICAgICAgICAoV2ViS2l0OjpSVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXI6OnNldENvbm5l
Y3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpSVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXI6OmNv
bm5lY3RUb1JlbW90ZVNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlJUQ0RhdGFDaGFubmVsUmVt
b3RlTWFuYWdlcjo6cmVtb3RlSGFuZGxlckNvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpS
VENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXI6OnJlbW90ZVNvdXJjZUNvbm5lY3Rpb24pOgorICAg
ICAgICAoV2ViS2l0OjpSVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXI6OnBvc3RUYXNrVG9IYW5k
bGVyKToKKyAgICAgICAgKFdlYktpdDo6UlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyOjpzb3Vy
Y2VGcm9tSWRlbnRpZmllcik6CisgICAgICAgIChXZWJLaXQ6OlJUQ0RhdGFDaGFubmVsUmVtb3Rl
TWFuYWdlcjo6c2VuZERhdGEpOgorICAgICAgICAoV2ViS2l0OjpSVENEYXRhQ2hhbm5lbFJlbW90
ZU1hbmFnZXI6OmNsb3NlKToKKyAgICAgICAgKFdlYktpdDo6UlRDRGF0YUNoYW5uZWxSZW1vdGVN
YW5hZ2VyOjpjaGFuZ2VSZWFkeVN0YXRlKToKKyAgICAgICAgKFdlYktpdDo6UlRDRGF0YUNoYW5u
ZWxSZW1vdGVNYW5hZ2VyOjpyZWNlaXZlRGF0YSk6CisgICAgICAgIChXZWJLaXQ6OlJUQ0RhdGFD
aGFubmVsUmVtb3RlTWFuYWdlcjo6ZGV0ZWN0RXJyb3IpOgorICAgICAgICAoV2ViS2l0OjpSVENE
YXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXI6OmJ1ZmZlcmVkQW1vdW50SXNEZWNyZWFzaW5nKToKKyAg
ICAgICAgKFdlYktpdDo6UlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyOjpSZW1vdGVIYW5kbGVy
Q29ubmVjdGlvbjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6UlRDRGF0YUNoYW5uZWxSZW1v
dGVNYW5hZ2VyOjpSZW1vdGVIYW5kbGVyQ29ubmVjdGlvbjo6UmVtb3RlSGFuZGxlckNvbm5lY3Rp
b24pOgorICAgICAgICAoV2ViS2l0OjpSVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXI6OlJlbW90
ZUhhbmRsZXJDb25uZWN0aW9uOjpjb25uZWN0VG9Tb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpS
VENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXI6OlJlbW90ZUhhbmRsZXJDb25uZWN0aW9uOjpzZW5k
RGF0YSk6CisgICAgICAgIChXZWJLaXQ6OlJUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlcjo6UmVt
b3RlSGFuZGxlckNvbm5lY3Rpb246OmNsb3NlKToKKyAgICAgICAgKFdlYktpdDo6UlRDRGF0YUNo
YW5uZWxSZW1vdGVNYW5hZ2VyOjpSZW1vdGVTb3VyY2VDb25uZWN0aW9uOjpjcmVhdGUpOgorICAg
ICAgICAoV2ViS2l0OjpSVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXI6OlJlbW90ZVNvdXJjZUNv
bm5lY3Rpb246OlJlbW90ZVNvdXJjZUNvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpSVENE
YXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXI6OlJlbW90ZVNvdXJjZUNvbm5lY3Rpb246OmRpZENoYW5n
ZVJlYWR5U3RhdGUpOgorICAgICAgICAoV2ViS2l0OjpSVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFn
ZXI6OlJlbW90ZVNvdXJjZUNvbm5lY3Rpb246OmRpZFJlY2VpdmVTdHJpbmdEYXRhKToKKyAgICAg
ICAgKFdlYktpdDo6UlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyOjpSZW1vdGVTb3VyY2VDb25u
ZWN0aW9uOjpkaWRSZWNlaXZlUmF3RGF0YSk6CisgICAgICAgIChXZWJLaXQ6OlJUQ0RhdGFDaGFu
bmVsUmVtb3RlTWFuYWdlcjo6UmVtb3RlU291cmNlQ29ubmVjdGlvbjo6ZGlkRGV0ZWN0RXJyb3Ip
OgorICAgICAgICAoV2ViS2l0OjpSVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXI6OlJlbW90ZVNv
dXJjZUNvbm5lY3Rpb246OmJ1ZmZlcmVkQW1vdW50SXNEZWNyZWFzaW5nKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL1JUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlci5oOiBB
ZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL1JUQ0RhdGFDaGFubmVs
UmVtb3RlTWFuYWdlci5tZXNzYWdlcy5pbjogQ29waWVkIGZyb20gU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluLgorICAg
ICAgICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjppbnN0
YWxsU2VydmljZVdvcmtlcik6CisKIDIwMjEtMDMtMTcgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5A
YXBwbGUuY29tPgogCiAgICAgICAgIEdlb2xvY2F0aW9uIEFQSSBkb2VzIG5vdCB3b3JrIGluIFdL
V2ViVmlldyB3aXRoIGN1c3RvbSBVUkwgc2NoZW1lIGhhbmRsZXIKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCmlu
ZGV4IDNiYzdiZjY3ZWEwMTQ3ZDk5ODhkNTQ3Mzg5MGRiMDliYzc1NDM4NjQuLjIxODRmZTE4NzI3
ZjQ0MzFhMzI0Mzg4ZGMzNmM3OTEwZGM2OGM0MmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L0hlYWRlcnMuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQpAQCAtMTAz
LDExICsxMDMsMTUgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogCiAg
ICAgTW9kdWxlcy9tZWRpYXNvdXJjZS9TYW1wbGVNYXAuaAogCisgICAgTW9kdWxlcy9tZWRpYXN0
cmVhbS9EZXRhY2hlZFJUQ0RhdGFDaGFubmVsLmgKICAgICBNb2R1bGVzL21lZGlhc3RyZWFtL0Rv
dWJsZVJhbmdlLmgKICAgICBNb2R1bGVzL21lZGlhc3RyZWFtL0xvbmdSYW5nZS5oCiAgICAgTW9k
dWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmgKICAgICBNb2R1bGVzL21lZGlhc3Ry
ZWFtL01lZGlhVHJhY2tDb25zdHJhaW50cy5oCiAgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9SVEND
b250cm9sbGVyLmgKKyAgICBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsLmgKKyAg
ICBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsUmVtb3RlSGFuZGxlci5oCisgICAg
TW9kdWxlcy9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbFJlbW90ZVNvdXJjZS5oCiAgICAgTW9k
dWxlcy9tZWRpYXN0cmVhbS9TVFVOTWVzc2FnZVBhcnNpbmcuaAogICAgIE1vZHVsZXMvbWVkaWFz
dHJlYW0vVXNlck1lZGlhQ2xpZW50LmgKICAgICBNb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRp
YUNvbnRyb2xsZXIuaApAQCAtMTA4MCw2ICsxMDg0LDcgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9G
UkFNRVdPUktfSEVBREVSUwogICAgIHBsYXRmb3JtL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5o
CiAgICAgcGxhdGZvcm0vU1NMS2V5R2VuZXJhdG9yLmgKICAgICBwbGF0Zm9ybS9TY3JlZW5Qcm9w
ZXJ0aWVzLmgKKyAgICBwbGF0Zm9ybS9TY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllci5o
CiAgICAgcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuaAogICAgIHBsYXRmb3JtL1Njcm9sbFR5cGVz
LmgKICAgICBwbGF0Zm9ybS9TY3JvbGxWaWV3LmgKQEAgLTEzNjUsNiArMTM3MCwxMyBAQCBzZXQo
V2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgcGxhdGZvcm0vbWVkaWFzdHJl
YW0vTWVkaWFTdHJlYW1Qcml2YXRlLmgKICAgICBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0
cmVhbVJlcXVlc3QuaAogICAgIHBsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tQ
cml2YXRlLmgKKyAgICBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbEhhbmRsZXIu
aAorICAgIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsSGFuZGxlckNsaWVudC5o
CisgICAgcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDRGF0YUNoYW5uZWxJZGVudGlmaWVyLmgKKyAg
ICBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXJDb25uZWN0
aW9uLmgKKyAgICBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbFJlbW90ZVNvdXJj
ZUNvbm5lY3Rpb24uaAorICAgIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsU3Rh
dGUuaAorICAgIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ1ByaW9yaXR5VHlwZS5oCiAgICAgcGxh
dGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oCiAgICAgcGxhdGZvcm0vbWVk
aWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcy5oCiAgICAgcGxhdGZvcm0v
bWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL0RldGFjaGVkUlRDRGF0YUNoYW5uZWwuaCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vRGV0YWNoZWRSVENEYXRhQ2hhbm5l
bC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjRkOTE2Zjg5YmY1ZmE4YThkMDFhOTAxYWE4MTEwYzY2MTJjMjk2YzkK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL0Rl
dGFjaGVkUlRDRGF0YUNoYW5uZWwuaApAQCAtMCwwICsxLDkxIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTctMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAq
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgor
ICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShXRUJfUlRDKQorCisjaW5jbHVkZSAiUlRDRGF0
YUNoYW5uZWxIYW5kbGVyLmgiCisjaW5jbHVkZSAiUlRDRGF0YUNoYW5uZWxJZGVudGlmaWVyLmgi
CisjaW5jbHVkZSAiUlRDRGF0YUNoYW5uZWxTdGF0ZS5oIgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dU
RlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0cnVjdCBEZXRhY2hlZFJUQ0Rh
dGFDaGFubmVsIHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShEZXRhY2hlZFJUQ0RhdGFDaGFu
bmVsKTsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBEZXRhY2hl
ZFJUQ0RhdGFDaGFubmVsKFJUQ0RhdGFDaGFubmVsSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25z
dCBTdHJpbmcmIGxhYmVsLCBjb25zdCBSVENEYXRhQ2hhbm5lbEluaXQmIG9wdGlvbnMsIFJUQ0Rh
dGFDaGFubmVsU3RhdGUgc3RhdGUpCisgICAgICAgIDogaWRlbnRpZmllcihpZGVudGlmaWVyKQor
ICAgICAgICAsIGxhYmVsKGxhYmVsLmlzb2xhdGVkQ29weSgpKQorICAgICAgICAsIG9wdGlvbnMo
b3B0aW9ucy5pc29sYXRlZENvcHkoKSkKKyAgICAgICAgLCBzdGF0ZShzdGF0ZSkKKyAgICB7Cisg
ICAgfQorCisgICAgc2l6ZV90IG1lbW9yeUNvc3QoKSBjb25zdCB7IHJldHVybiBsYWJlbC5zaXpl
SW5CeXRlcygpOyB9CisKKyAgICBSVENEYXRhQ2hhbm5lbElkZW50aWZpZXIgaWRlbnRpZmllcjsK
KyAgICBTdHJpbmcgbGFiZWw7CisgICAgUlRDRGF0YUNoYW5uZWxJbml0IG9wdGlvbnM7CisgICAg
UlRDRGF0YUNoYW5uZWxTdGF0ZSBzdGF0ZSB7IFJUQ0RhdGFDaGFubmVsU3RhdGU6OkNsb3NlZCB9
OworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNv
bnN0OworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8
RGV0YWNoZWRSVENEYXRhQ2hhbm5lbD4gZGVjb2RlKERlY29kZXImKTsKK307CisKK3RlbXBsYXRl
PGNsYXNzIEVuY29kZXI+IHZvaWQgRGV0YWNoZWRSVENEYXRhQ2hhbm5lbDo6ZW5jb2RlKEVuY29k
ZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2RlciA8PCBpZGVudGlmaWVyIDw8IGxhYmVs
IDw8IG9wdGlvbnMgPDwgc3RhdGU7Cit9CisKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0ZDo6
dW5pcXVlX3B0cjxEZXRhY2hlZFJUQ0RhdGFDaGFubmVsPiBEZXRhY2hlZFJUQ0RhdGFDaGFubmVs
OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBPcHRpb25hbDxSVENEYXRhQ2hhbm5l
bElkZW50aWZpZXI+IGlkZW50aWZpZXI7CisgICAgZGVjb2RlciA+PiBpZGVudGlmaWVyOworICAg
IGlmICghaWRlbnRpZmllcikKKyAgICAgICAgcmV0dXJuIHsgfTsKKworICAgIFN0cmluZyBsYWJl
bDsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGxhYmVsKSkKKyAgICAgICAgcmV0dXJuIHsgfTsK
KworICAgIE9wdGlvbmFsPFJUQ0RhdGFDaGFubmVsSW5pdD4gb3B0aW9uczsKKyAgICBkZWNvZGVy
ID4+IG9wdGlvbnM7CisgICAgaWYgKCFvcHRpb25zKQorICAgICAgICByZXR1cm4geyB9OworCisg
ICAgT3B0aW9uYWw8UlRDRGF0YUNoYW5uZWxTdGF0ZT4gc3RhdGU7CisgICAgZGVjb2RlciA+PiBz
dGF0ZTsKKyAgICBpZiAoIXN0YXRlKQorICAgICAgICByZXR1cm4geyB9OworCisgICAgcmV0dXJu
IG1ha2VVbmlxdWU8RGV0YWNoZWRSVENEYXRhQ2hhbm5lbD4oKmlkZW50aWZpZXIsIFdURk1vdmUo
bGFiZWwpLCAqb3B0aW9ucywgKnN0YXRlKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQor
CisjZW5kaWYgLy8gRU5BQkxFKFdFQl9SVEMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vUlRDRGF0YUNoYW5uZWwuY3BwCmluZGV4IDI1NGMyMGZiYjg2NDVi
YzI1ODJhOTJlMzM1NmU1ZDQxZmViOTMzMTMuLjliMDAxNGNhYWMzZTI4NGFmOGQyZmJiMmY2NGMz
NDdkM2NmM2I0YTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vUlRDRGF0YUNoYW5uZWwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vUlRDRGF0YUNoYW5uZWwuY3BwCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAiRXhj
ZXB0aW9uQ29kZS5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJNZXNzYWdlRXZl
bnQuaCIKKyNpbmNsdWRlICJSVENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXIuaCIKICNpbmNsdWRl
ICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCiAjaW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgiCiAj
aW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQXJyYXlCdWZmZXJWaWV3Lmg+CkBAIC05Myw3ICs5NCw3
IEBAIE5ldHdvcmtTZW5kUXVldWUgUlRDRGF0YUNoYW5uZWw6OmNyZWF0ZU1lc3NhZ2VRdWV1ZShT
Y3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250CiBSVENEYXRhQ2hhbm5lbDo6UlRDRGF0YUNoYW5u
ZWwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgc3RkOjp1bmlxdWVfcHRyPFJUQ0Rh
dGFDaGFubmVsSGFuZGxlcj4mJiBoYW5kbGVyLCBTdHJpbmcmJiBsYWJlbCwgUlRDRGF0YUNoYW5u
ZWxJbml0JiYgb3B0aW9ucykKICAgICA6IEFjdGl2ZURPTU9iamVjdCgmY29udGV4dCkKICAgICAs
IG1faGFuZGxlcihXVEZNb3ZlKGhhbmRsZXIpKQotICAgICwgbV9pZGVudGlmaWVyKFJUQ0RhdGFD
aGFubmVsSWRlbnRpZmllciB7IFByb2Nlc3M6OmlkZW50aWZpZXIoKSwgT2JqZWN0SWRlbnRpZmll
cjxSVENEYXRhQ2hhbm5lbElkZW50aWZpZXJUeXBlPjo6Z2VuZXJhdGVUaHJlYWRTYWZlKCkgfSkK
KyAgICAsIG1faWRlbnRpZmllcihSVENEYXRhQ2hhbm5lbElkZW50aWZpZXIgeyBQcm9jZXNzOjpp
ZGVudGlmaWVyKCksIE9iamVjdElkZW50aWZpZXI8UlRDRGF0YUNoYW5uZWxMb2NhbElkZW50aWZp
ZXJUeXBlPjo6Z2VuZXJhdGVUaHJlYWRTYWZlKCkgfSkKICAgICAsIG1fY29udGV4dElkZW50aWZp
ZXIoY29udGV4dC5pc0RvY3VtZW50KCkgPyBTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmll
ciB7IH0gOiBjb250ZXh0LmNvbnRleHRJZGVudGlmaWVyKCkpCiAgICAgLCBtX2xhYmVsKFdURk1v
dmUobGFiZWwpKQogICAgICwgbV9vcHRpb25zKFdURk1vdmUob3B0aW9ucykpCkBAIC0yNTIsMTAg
KzI1MywxMCBAQCB2b2lkIFJUQ0RhdGFDaGFubmVsOjpzY2hlZHVsZURpc3BhdGNoRXZlbnQoUmVm
PEV2ZW50PiYmIGV2ZW50KQogfQogCiBzdGF0aWMgTG9jayBzX3J0Y0RhdGFDaGFubmVsTG9jYWxN
YXBMb2NrOwotc3RhdGljIEhhc2hNYXA8T2JqZWN0SWRlbnRpZmllcjxSVENEYXRhQ2hhbm5lbElk
ZW50aWZpZXJUeXBlPiwgc3RkOjp1bmlxdWVfcHRyPFJUQ0RhdGFDaGFubmVsSGFuZGxlcj4+JiBy
dGNEYXRhQ2hhbm5lbExvY2FsTWFwKCkKK3N0YXRpYyBIYXNoTWFwPFJUQ0RhdGFDaGFubmVsTG9j
YWxJZGVudGlmaWVyLCBzdGQ6OnVuaXF1ZV9wdHI8UlRDRGF0YUNoYW5uZWxIYW5kbGVyPj4mIHJ0
Y0RhdGFDaGFubmVsTG9jYWxNYXAoKQogewogICAgIEFTU0VSVChzX3J0Y0RhdGFDaGFubmVsTG9j
YWxNYXBMb2NrLmlzSGVsZCgpKTsKLSAgICBzdGF0aWMgTGF6eU5ldmVyRGVzdHJveWVkPEhhc2hN
YXA8T2JqZWN0SWRlbnRpZmllcjxSVENEYXRhQ2hhbm5lbElkZW50aWZpZXJUeXBlPiwgc3RkOjp1
bmlxdWVfcHRyPFJUQ0RhdGFDaGFubmVsSGFuZGxlcj4+PiBtYXA7CisgICAgc3RhdGljIExhenlO
ZXZlckRlc3Ryb3llZDxIYXNoTWFwPFJUQ0RhdGFDaGFubmVsTG9jYWxJZGVudGlmaWVyLCBzdGQ6
OnVuaXF1ZV9wdHI8UlRDRGF0YUNoYW5uZWxIYW5kbGVyPj4+IG1hcDsKICAgICBzdGF0aWMgc3Rk
OjpvbmNlX2ZsYWcgb25jZUtleTsKICAgICBzdGQ6OmNhbGxfb25jZShvbmNlS2V5LCBbJl0gewog
ICAgICAgICBtYXAuY29uc3RydWN0KCk7CkBAIC0yOTMsNiArMjk0LDEyIEBAIHZvaWQgUlRDRGF0
YUNoYW5uZWw6OnJlbW92ZUZyb21EYXRhQ2hhbm5lbExvY2FsTWFwSWZOZWVkZWQoKQogICAgIHJ0
Y0RhdGFDaGFubmVsTG9jYWxNYXAoKS5yZW1vdmUoaWRlbnRpZmllcigpLmNoYW5uZWxJZGVudGlm
aWVyKTsKIH0KIAorc3RkOjp1bmlxdWVfcHRyPFJUQ0RhdGFDaGFubmVsSGFuZGxlcj4gUlRDRGF0
YUNoYW5uZWw6OmhhbmRsZXJGcm9tSWRlbnRpZmllcihSVENEYXRhQ2hhbm5lbExvY2FsSWRlbnRp
ZmllciBjaGFubmVsSWRlbnRpZmllcikKK3sKKyAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKHNf
cnRjRGF0YUNoYW5uZWxMb2NhbE1hcExvY2spOworICAgIHJldHVybiBydGNEYXRhQ2hhbm5lbExv
Y2FsTWFwKCkudGFrZShjaGFubmVsSWRlbnRpZmllcik7Cit9CisKIHN0YXRpYyBSZWY8UlRDRGF0
YUNoYW5uZWw+IGNyZWF0ZUNsb3NlZENoYW5uZWwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29u
dGV4dCwgU3RyaW5nJiYgbGFiZWwsIFJUQ0RhdGFDaGFubmVsSW5pdCYmIG9wdGlvbnMpCiB7CiAg
ICAgYXV0byBjaGFubmVsID0gUlRDRGF0YUNoYW5uZWw6OmNyZWF0ZShjb250ZXh0LCBudWxscHRy
LCBXVEZNb3ZlKGxhYmVsKSwgV1RGTW92ZShvcHRpb25zKSk7CkBAIC0zMDIsMTggKzMwOSwyNSBA
QCBzdGF0aWMgUmVmPFJUQ0RhdGFDaGFubmVsPiBjcmVhdGVDbG9zZWRDaGFubmVsKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsCiAKIFJlZjxSVENEYXRhQ2hhbm5lbD4gUlRDRGF0YUNo
YW5uZWw6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBSVENEYXRhQ2hh
bm5lbElkZW50aWZpZXIgaWRlbnRpZmllciwgU3RyaW5nJiYgbGFiZWwsIFJUQ0RhdGFDaGFubmVs
SW5pdCYmIG9wdGlvbnMsIFJUQ0RhdGFDaGFubmVsU3RhdGUgc3RhdGUpCiB7Ci0gICAgaWYgKGlk
ZW50aWZpZXIucHJvY2Vzc0lkZW50aWZpZXIgIT0gUHJvY2Vzczo6aWRlbnRpZmllcigpKSB7Ci0g
ICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFdlYlJUQywgIk91dC1vZi1wcm9jZXNzIGRhdGEgY2hh
bm5lbHMgYXJlIG5vdCB5ZXQgc3VwcG9ydGVkIik7Ci0gICAgICAgIHJldHVybiBjcmVhdGVDbG9z
ZWRDaGFubmVsKGNvbnRleHQsIFdURk1vdmUobGFiZWwpLCBXVEZNb3ZlKG9wdGlvbnMpKTsKKyAg
ICBSVENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXIqIHJlbW90ZUhhbmRsZXJQdHIgPSBudWxscHRy
OworICAgIHN0ZDo6dW5pcXVlX3B0cjxSVENEYXRhQ2hhbm5lbEhhbmRsZXI+IGhhbmRsZXI7Cisg
ICAgaWYgKGlkZW50aWZpZXIucHJvY2Vzc0lkZW50aWZpZXIgPT0gUHJvY2Vzczo6aWRlbnRpZmll
cigpKQorICAgICAgICBoYW5kbGVyID0gUlRDRGF0YUNoYW5uZWw6OmhhbmRsZXJGcm9tSWRlbnRp
ZmllcihpZGVudGlmaWVyLmNoYW5uZWxJZGVudGlmaWVyKTsKKyAgICBlbHNlIHsKKyAgICAgICAg
YXV0byByZW1vdGVIYW5kbGVyID0gUlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVyOjpjcmVhdGUo
aWRlbnRpZmllciwgY29udGV4dC5jcmVhdGVSVENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXJDb25u
ZWN0aW9uKCkpOworICAgICAgICByZW1vdGVIYW5kbGVyUHRyID0gcmVtb3RlSGFuZGxlci5nZXQo
KTsKKyAgICAgICAgaGFuZGxlciA9IFdURk1vdmUocmVtb3RlSGFuZGxlcik7CiAgICAgfQogCi0g
ICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhzX3J0Y0RhdGFDaGFubmVsTG9jYWxNYXBMb2NrKTsK
LSAgICBhdXRvIGhhbmRsZXIgPSBydGNEYXRhQ2hhbm5lbExvY2FsTWFwKCkudGFrZShpZGVudGlm
aWVyLmNoYW5uZWxJZGVudGlmaWVyKTsKICAgICBpZiAoIWhhbmRsZXIpCiAgICAgICAgIHJldHVy
biBjcmVhdGVDbG9zZWRDaGFubmVsKGNvbnRleHQsIFdURk1vdmUobGFiZWwpLCBXVEZNb3ZlKG9w
dGlvbnMpKTsKIAogICAgIGF1dG8gY2hhbm5lbCA9IFJUQ0RhdGFDaGFubmVsOjpjcmVhdGUoY29u
dGV4dCwgV1RGTW92ZShoYW5kbGVyKSwgV1RGTW92ZShsYWJlbCksIFdURk1vdmUob3B0aW9ucykp
OwogICAgIGNoYW5uZWwtPm1fcmVhZHlTdGF0ZSA9IHN0YXRlOworCisgICAgaWYgKHJlbW90ZUhh
bmRsZXJQdHIpCisgICAgICAgIHJlbW90ZUhhbmRsZXJQdHItPnNldExvY2FsSWRlbnRpZmllcihj
aGFubmVsLT5pZGVudGlmaWVyKCkpOworCiAgICAgcmV0dXJuIGNoYW5uZWw7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRGF0YUNoYW5uZWwu
aCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRGF0YUNoYW5uZWwuaApp
bmRleCA1OTBhOWNiN2VlNGNmNDFhYzk2MzQ0MGJkZWMwOTFiOGI4NDBjMWJkLi42MDFkODg5NDI1
NzQ2NTk4YzQzYWNlNzVjYWY1YTQyYzgyMWU5YzIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbC5oCkBAIC0yOCwxMyArMjgsMTQg
QEAKICNpZiBFTkFCTEUoV0VCX1JUQykKIAogI2luY2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgor
I2luY2x1ZGUgIkRldGFjaGVkUlRDRGF0YUNoYW5uZWwuaCIKICNpbmNsdWRlICJFdmVudC5oIgog
I2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uT3IuaCIKICNpbmNs
dWRlICJOZXR3b3JrU2VuZFF1ZXVlLmgiCi0jaW5jbHVkZSAiUHJvY2Vzc0lkZW50aWZpZXIuaCIK
ICNpbmNsdWRlICJSVENEYXRhQ2hhbm5lbEhhbmRsZXIuaCIKICNpbmNsdWRlICJSVENEYXRhQ2hh
bm5lbEhhbmRsZXJDbGllbnQuaCIKKyNpbmNsdWRlICJSVENEYXRhQ2hhbm5lbElkZW50aWZpZXIu
aCIKICNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCiAjaW5jbHVkZSAiU2NyaXB0
V3JhcHBhYmxlLmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKQEAgLTQ5LDM5ICs1MCw2IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIGNsYXNzIEJsb2I7CiBjbGFzcyBSVENQZWVyQ29ubmVjdGlvbkhhbmRs
ZXI7CiAKLWVudW0gUlRDRGF0YUNoYW5uZWxJZGVudGlmaWVyVHlwZSB7IH07Ci1zdHJ1Y3QgUlRD
RGF0YUNoYW5uZWxJZGVudGlmaWVyIHsKLSAgICBQcm9jZXNzSWRlbnRpZmllciBwcm9jZXNzSWRl
bnRpZmllcjsKLSAgICBPYmplY3RJZGVudGlmaWVyPFJUQ0RhdGFDaGFubmVsSWRlbnRpZmllclR5
cGU+IGNoYW5uZWxJZGVudGlmaWVyOwotCi0gICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9p
ZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OwotICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0
YXRpYyBPcHRpb25hbDxSVENEYXRhQ2hhbm5lbElkZW50aWZpZXI+IGRlY29kZShEZWNvZGVyJik7
Ci0KLSNpZiAhTE9HX0RJU0FCTEVECi0gICAgU3RyaW5nIGxvZ1N0cmluZygpIGNvbnN0OwotI2Vu
ZGlmCi19OwotCi1zdHJ1Y3QgRGV0YWNoZWRSVENEYXRhQ2hhbm5lbCB7Ci0gICAgV1RGX01BS0Vf
Tk9OQ09QWUFCTEUoRGV0YWNoZWRSVENEYXRhQ2hhbm5lbCk7Ci0gICAgV1RGX01BS0VfRkFTVF9B
TExPQ0FURUQ7Ci1wdWJsaWM6Ci0gICAgRGV0YWNoZWRSVENEYXRhQ2hhbm5lbChSVENEYXRhQ2hh
bm5lbElkZW50aWZpZXIgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBsYWJlbCwgY29uc3QgUlRD
RGF0YUNoYW5uZWxJbml0JiBvcHRpb25zLCBSVENEYXRhQ2hhbm5lbFN0YXRlIHN0YXRlKQotICAg
ICAgICA6IGlkZW50aWZpZXIoaWRlbnRpZmllcikKLSAgICAgICAgLCBsYWJlbChsYWJlbC5pc29s
YXRlZENvcHkoKSkKLSAgICAgICAgLCBvcHRpb25zKG9wdGlvbnMuaXNvbGF0ZWRDb3B5KCkpCi0g
ICAgICAgICwgc3RhdGUoc3RhdGUpCi0gICAgewotICAgIH0KLQotICAgIHNpemVfdCBtZW1vcnlD
b3N0KCkgY29uc3QgeyByZXR1cm4gbGFiZWwuc2l6ZUluQnl0ZXMoKTsgfQotCi0gICAgUlRDRGF0
YUNoYW5uZWxJZGVudGlmaWVyIGlkZW50aWZpZXI7Ci0gICAgU3RyaW5nIGxhYmVsOwotICAgIFJU
Q0RhdGFDaGFubmVsSW5pdCBvcHRpb25zOwotICAgIFJUQ0RhdGFDaGFubmVsU3RhdGUgc3RhdGUg
eyBSVENEYXRhQ2hhbm5lbFN0YXRlOjpDbG9zZWQgfTsKLX07Ci0KIGNsYXNzIFJUQ0RhdGFDaGFu
bmVsIGZpbmFsIDogcHVibGljIEFjdGl2ZURPTU9iamVjdCwgcHVibGljIFJUQ0RhdGFDaGFubmVs
SGFuZGxlckNsaWVudCwgcHVibGljIEV2ZW50VGFyZ2V0V2l0aElubGluZURhdGEgewogICAgIFdU
Rl9NQUtFX0lTT19BTExPQ0FURUQoUlRDRGF0YUNoYW5uZWwpOwogcHVibGljOgpAQCAtMTIwLDYg
Kzg4LDggQEAgcHVibGljOgogICAgIHVzaW5nIFJUQ0RhdGFDaGFubmVsSGFuZGxlckNsaWVudDo6
cmVmOwogICAgIHVzaW5nIFJUQ0RhdGFDaGFubmVsSGFuZGxlckNsaWVudDo6ZGVyZWY7CiAKKyAg
ICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFJUQ0RhdGFDaGFubmVsSGFu
ZGxlcj4gaGFuZGxlckZyb21JZGVudGlmaWVyKFJUQ0RhdGFDaGFubmVsTG9jYWxJZGVudGlmaWVy
KTsKKwogcHJpdmF0ZToKICAgICBSVENEYXRhQ2hhbm5lbChTY3JpcHRFeGVjdXRpb25Db250ZXh0
Jiwgc3RkOjp1bmlxdWVfcHRyPFJUQ0RhdGFDaGFubmVsSGFuZGxlcj4mJiwgU3RyaW5nJiYsIFJU
Q0RhdGFDaGFubmVsSW5pdCYmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXIuY3Bw
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjQ2ZWY2ZjhiMGJjZTYyOTJiOWEwOWFkMTE1ZTJjNGZjYmRkZWUyYmUKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0Rh
dGFDaGFubmVsUmVtb3RlSGFuZGxlci5jcHAKQEAgLTAsMCArMSwxMjggQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KKyAqIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIlJUQ0RhdGFDaGFubmVsUmVtb3RlSGFuZGxlci5oIgorCisjaWYgRU5BQkxF
KFdFQl9SVEMpCisKKyNpbmNsdWRlICJSVENEYXRhQ2hhbm5lbEhhbmRsZXJDbGllbnQuaCIKKyNp
bmNsdWRlICJSVENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXJDb25uZWN0aW9uLmgiCisjaW5jbHVk
ZSAiU2hhcmVkQnVmZmVyLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RkOjp1bmlxdWVf
cHRyPFJUQ0RhdGFDaGFubmVsUmVtb3RlSGFuZGxlcj4gUlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5k
bGVyOjpjcmVhdGUoUlRDRGF0YUNoYW5uZWxJZGVudGlmaWVyIHJlbW90ZUlkZW50aWZpZXIsIFJl
ZlB0cjxSVENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXJDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24p
Cit7CisgICAgaWYgKCFjb25uZWN0aW9uKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICBy
ZXR1cm4gbWFrZVVuaXF1ZTxSVENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXI+KHJlbW90ZUlkZW50
aWZpZXIsIGNvbm5lY3Rpb24ucmVsZWFzZU5vbk51bGwoKSk7Cit9CisKK1JUQ0RhdGFDaGFubmVs
UmVtb3RlSGFuZGxlcjo6UlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVyKFJUQ0RhdGFDaGFubmVs
SWRlbnRpZmllciByZW1vdGVJZGVudGlmaWVyLCBSZWY8UlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5k
bGVyQ29ubmVjdGlvbj4mJiBjb25uZWN0aW9uKQorICAgIDogbV9yZW1vdGVJZGVudGlmaWVyKHJl
bW90ZUlkZW50aWZpZXIpCisgICAgLCBtX2Nvbm5lY3Rpb24oV1RGTW92ZShjb25uZWN0aW9uKSkK
K3sKK30KKworUlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVyOjp+UlRDRGF0YUNoYW5uZWxSZW1v
dGVIYW5kbGVyKCkKK3sKK30KKwordm9pZCBSVENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXI6OmRp
ZENoYW5nZVJlYWR5U3RhdGUoUlRDRGF0YUNoYW5uZWxTdGF0ZSBzdGF0ZSkKK3sKKyAgICBtX2Ns
aWVudC0+ZGlkQ2hhbmdlUmVhZHlTdGF0ZShzdGF0ZSk7Cit9CisKK3ZvaWQgUlRDRGF0YUNoYW5u
ZWxSZW1vdGVIYW5kbGVyOjpkaWRSZWNlaXZlU3RyaW5nRGF0YShTdHJpbmcmJiB0ZXh0KQorewor
ICAgIG1fY2xpZW50LT5kaWRSZWNlaXZlU3RyaW5nRGF0YSh0ZXh0KTsKK30KKwordm9pZCBSVENE
YXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXI6OmRpZFJlY2VpdmVSYXdEYXRhKGNvbnN0IGNoYXIqIGRh
dGEsIHNpemVfdCBzaXplKQoreworICAgIG1fY2xpZW50LT5kaWRSZWNlaXZlUmF3RGF0YShkYXRh
LCBzaXplKTsKK30KKwordm9pZCBSVENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXI6OmRpZERldGVj
dEVycm9yKCkKK3sKKyAgICBtX2NsaWVudC0+ZGlkRGV0ZWN0RXJyb3IoKTsKK30KKwordm9pZCBS
VENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXI6OmJ1ZmZlcmVkQW1vdW50SXNEZWNyZWFzaW5nKHNp
emVfdCBhbW91bnQpCit7CisgICAgbV9jbGllbnQtPmJ1ZmZlcmVkQW1vdW50SXNEZWNyZWFzaW5n
KGFtb3VudCk7Cit9CisKK3ZvaWQgUlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVyOjpyZWFkeVRv
U2VuZCgpCit7CisgICAgbV9pc1JlYWR5VG9TZW5kID0gdHJ1ZTsKKworICAgIGZvciAoYXV0byYg
bWVzc2FnZSA6IG1fcGVuZGluZ01lc3NhZ2VzKQorICAgICAgICBtX2Nvbm5lY3Rpb24tPnNlbmRE
YXRhKG1fcmVtb3RlSWRlbnRpZmllciwgbWVzc2FnZS5pc1JhdywgcmVpbnRlcnByZXRfY2FzdDxj
b25zdCB1bnNpZ25lZCBjaGFyKj4obWVzc2FnZS5idWZmZXItPmRhdGEoKSksIG1lc3NhZ2UuYnVm
ZmVyLT5zaXplKCkpOworICAgIG1fcGVuZGluZ01lc3NhZ2VzLmNsZWFyKCk7CisKKyAgICBpZiAo
bV9pc1BlbmRpbmdDbG9zZSkKKyAgICAgICAgbV9jb25uZWN0aW9uLT5jbG9zZShtX3JlbW90ZUlk
ZW50aWZpZXIpOworfQorCit2b2lkIFJUQ0RhdGFDaGFubmVsUmVtb3RlSGFuZGxlcjo6c2V0Q2xp
ZW50KFJUQ0RhdGFDaGFubmVsSGFuZGxlckNsaWVudCYgY2xpZW50LCBTY3JpcHRFeGVjdXRpb25D
b250ZXh0SWRlbnRpZmllciBjb250ZXh0SWRlbnRpZmllcikKK3sKKyAgICBtX2NsaWVudCA9ICZj
bGllbnQ7CisgICAgQVNTRVJUKG1fbG9jYWxJZGVudGlmaWVyLmNoYW5uZWxJZGVudGlmaWVyKTsK
KyAgICBtX2Nvbm5lY3Rpb24tPmNvbm5lY3RUb1NvdXJjZSgqdGhpcywgY29udGV4dElkZW50aWZp
ZXIsIG1fbG9jYWxJZGVudGlmaWVyLCBtX3JlbW90ZUlkZW50aWZpZXIpOworfQorCitib29sIFJU
Q0RhdGFDaGFubmVsUmVtb3RlSGFuZGxlcjo6c2VuZFN0cmluZ0RhdGEoY29uc3QgQ1N0cmluZyYg
dGV4dCkKK3sKKyAgICBpZiAoIW1faXNSZWFkeVRvU2VuZCkgeworICAgICAgICBtX3BlbmRpbmdN
ZXNzYWdlcy5hcHBlbmQoTWVzc2FnZSB7IGZhbHNlLCBTaGFyZWRCdWZmZXI6OmNyZWF0ZSh0ZXh0
LmRhdGEoKSwgdGV4dC5sZW5ndGgoKSkgfSk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0K
KyAgICBtX2Nvbm5lY3Rpb24tPnNlbmREYXRhKG1fcmVtb3RlSWRlbnRpZmllciwgZmFsc2UsIHJl
aW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdW5zaWduZWQgY2hhcio+KHRleHQuZGF0YSgpKSwgdGV4dC5s
ZW5ndGgoKSk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgUlRDRGF0YUNoYW5uZWxSZW1v
dGVIYW5kbGVyOjpzZW5kUmF3RGF0YShjb25zdCBjaGFyKiBkYXRhLCBzaXplX3Qgc2l6ZSkKK3sK
KyAgICBpZiAoIW1faXNSZWFkeVRvU2VuZCkgeworICAgICAgICBtX3BlbmRpbmdNZXNzYWdlcy5h
cHBlbmQoTWVzc2FnZSB7IHRydWUsIFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKGRhdGEsIHNpemUpIH0p
OworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgbV9jb25uZWN0aW9uLT5zZW5kRGF0
YShtX3JlbW90ZUlkZW50aWZpZXIsIHRydWUsIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdW5zaWdu
ZWQgY2hhcio+KGRhdGEpLCBzaXplKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwordm9pZCBSVENE
YXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXI6OmNsb3NlKCkKK3sKKyAgICBpZiAoIW1faXNSZWFkeVRv
U2VuZCkgeworICAgICAgICBtX2lzUGVuZGluZ0Nsb3NlID0gdHJ1ZTsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KKyAgICBtX2Nvbm5lY3Rpb24tPmNsb3NlKG1fcmVtb3RlSWRlbnRpZmllcik7Cit9
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJfUlRDKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENEYXRhQ2hh
bm5lbFJlbW90ZUhhbmRsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
UlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2ExZGNkYmMxY2U5NWYy
NTg0N2RiYmQ5NmVmZGJjMGJkOGQ0ZDFhMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVyLmgKQEAg
LTAsMCArMSw4NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBB
TlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsK
KyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgorICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShX
RUJfUlRDKQorCisjaW5jbHVkZSAiUlRDRGF0YUNoYW5uZWxIYW5kbGVyLmgiCisjaW5jbHVkZSAi
UlRDRGF0YUNoYW5uZWxJZGVudGlmaWVyLmgiCisjaW5jbHVkZSAiUlRDRGF0YUNoYW5uZWxTdGF0
ZS5oIgorI2luY2x1ZGUgPHd0Zi9GYXN0TWFsbG9jLmg+CisjaW5jbHVkZSA8d3RmL0Z1bmN0aW9u
Lmg+CisjaW5jbHVkZSA8d3RmL0xvY2suaD4KKyNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFJUQ0RhdGFDaGFubmVsSGFuZGxlckNsaWVudDsK
K2NsYXNzIFJUQ0RhdGFDaGFubmVsUmVtb3RlSGFuZGxlckNvbm5lY3Rpb247CitjbGFzcyBTaGFy
ZWRCdWZmZXI7CisKK2NsYXNzIFJUQ0RhdGFDaGFubmVsUmVtb3RlSGFuZGxlciBmaW5hbCA6IHB1
YmxpYyBSVENEYXRhQ2hhbm5lbEhhbmRsZXIsIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxSVENEYXRh
Q2hhbm5lbFJlbW90ZUhhbmRsZXI+IHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1
YmxpYzoKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFJUQ0RhdGFDaGFubmVsUmVtb3RlSGFu
ZGxlcj4gY3JlYXRlKFJUQ0RhdGFDaGFubmVsSWRlbnRpZmllciwgUmVmUHRyPFJUQ0RhdGFDaGFu
bmVsUmVtb3RlSGFuZGxlckNvbm5lY3Rpb24+JiYpOworICAgIFJUQ0RhdGFDaGFubmVsUmVtb3Rl
SGFuZGxlcihSVENEYXRhQ2hhbm5lbElkZW50aWZpZXIsIFJlZjxSVENEYXRhQ2hhbm5lbFJlbW90
ZUhhbmRsZXJDb25uZWN0aW9uPiYmKTsKKyAgICB+UlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVy
KCk7CisKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRpZENoYW5nZVJlYWR5U3RhdGUoUlRDRGF0
YUNoYW5uZWxTdGF0ZSk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkaWRSZWNlaXZlU3RyaW5n
RGF0YShTdHJpbmcmJik7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkaWRSZWNlaXZlUmF3RGF0
YShjb25zdCBjaGFyKiwgc2l6ZV90KTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRpZERldGVj
dEVycm9yKCk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBidWZmZXJlZEFtb3VudElzRGVjcmVh
c2luZyhzaXplX3QpOworCisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCByZWFkeVRvU2VuZCgpOwor
CisgICAgdm9pZCBzZXRMb2NhbElkZW50aWZpZXIoUlRDRGF0YUNoYW5uZWxJZGVudGlmaWVyIGxv
Y2FsSWRlbnRpZmllcikgeyBtX2xvY2FsSWRlbnRpZmllciA9IGxvY2FsSWRlbnRpZmllcjsgfQor
Citwcml2YXRlOgorICAgIC8vIFJUQ0RhdGFDaGFubmVsSGFuZGxlcgorICAgIHZvaWQgc2V0Q2xp
ZW50KFJUQ0RhdGFDaGFubmVsSGFuZGxlckNsaWVudCYsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJ
ZGVudGlmaWVyKSBmaW5hbDsKKyAgICBib29sIHNlbmRTdHJpbmdEYXRhKGNvbnN0IENTdHJpbmcm
KSBmaW5hbDsKKyAgICBib29sIHNlbmRSYXdEYXRhKGNvbnN0IGNoYXIqLCBzaXplX3QpIGZpbmFs
OworICAgIHZvaWQgY2xvc2UoKSBmaW5hbDsKKworICAgIFJUQ0RhdGFDaGFubmVsSWRlbnRpZmll
ciBtX3JlbW90ZUlkZW50aWZpZXI7CisgICAgUlRDRGF0YUNoYW5uZWxJZGVudGlmaWVyIG1fbG9j
YWxJZGVudGlmaWVyOworCisgICAgUlRDRGF0YUNoYW5uZWxIYW5kbGVyQ2xpZW50KiBtX2NsaWVu
dCB7IG51bGxwdHIgfTsKKyAgICBSZWY8UlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVyQ29ubmVj
dGlvbj4gbV9jb25uZWN0aW9uOworCisgICAgc3RydWN0IE1lc3NhZ2UgeworICAgICAgICBib29s
IGlzUmF3IHsgZmFsc2UgfTsKKyAgICAgICAgUmVmPFNoYXJlZEJ1ZmZlcj4gYnVmZmVyOworICAg
IH07CisgICAgVmVjdG9yPE1lc3NhZ2U+IG1fcGVuZGluZ01lc3NhZ2VzOworICAgIGJvb2wgbV9p
c1BlbmRpbmdDbG9zZSB7IGZhbHNlIH07CisgICAgYm9vbCBtX2lzUmVhZHlUb1NlbmQgeyBmYWxz
ZSB9OworCit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUo
V0VCX1JUQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
UlRDRGF0YUNoYW5uZWxSZW1vdGVTb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbFJlbW90ZVNvdXJjZS5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWFh
M2E4ZjA1ODM4Y2FmM2FlOGY2MzRmY2EwNzM3ODAxNGY3NjU5MAotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRGF0YUNoYW5uZWxSZW1vdGVT
b3VyY2UuY3BwCkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisg
KiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KKyAqIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIlJUQ0RhdGFDaGFubmVsUmVtb3RlU291cmNlLmgiCisKKyNpZiBFTkFC
TEUoV0VCX1JUQykKKworI2luY2x1ZGUgIlJUQ0RhdGFDaGFubmVsSGFuZGxlci5oIgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK1JUQ0RhdGFDaGFubmVsUmVtb3RlU291cmNlOjpSVENEYXRhQ2hh
bm5lbFJlbW90ZVNvdXJjZShSVENEYXRhQ2hhbm5lbElkZW50aWZpZXIgaWRlbnRpZmllciwgVW5p
cXVlUmVmPFJUQ0RhdGFDaGFubmVsSGFuZGxlcj4mJiBoYW5kbGVyLCBSZWY8UlRDRGF0YUNoYW5u
ZWxSZW1vdGVTb3VyY2VDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24pCisgICAgOiBtX2lkZW50aWZp
ZXIoaWRlbnRpZmllcikKKyAgICAsIG1faGFuZGxlcihXVEZNb3ZlKGhhbmRsZXIpKQorICAgICwg
bV9jb25uZWN0aW9uKFdURk1vdmUoY29ubmVjdGlvbikpCit7CisgICAgLy8gRklYTUU6IFdlIHNo
b3VsZCBhc2sgbV9oYW5kbGVyIHRvIGNhbGwgdXMgb24gaXRzIG93biBiYWNrZ3JvdW5kIHRocmVh
ZC4KKyAgICBtX2hhbmRsZXItPnNldENsaWVudCgqdGhpcywgeyB9KTsKK30KKworUlRDRGF0YUNo
YW5uZWxSZW1vdGVTb3VyY2U6On5SVENEYXRhQ2hhbm5lbFJlbW90ZVNvdXJjZSgpCit7Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJfUlRDKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5l
bFJlbW90ZVNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENE
YXRhQ2hhbm5lbFJlbW90ZVNvdXJjZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMyZjk0M2JlNWFkODdmYzcwMDEz
NjcyY2ZjOWMzN2NkNDc0ZjY2ODAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsUmVtb3RlU291cmNlLmgKQEAgLTAsMCAr
MSw2MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTgorICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShXRUJfUlRD
KQorCisjaW5jbHVkZSAiUlRDRGF0YUNoYW5uZWxIYW5kbGVyQ2xpZW50LmgiCisjaW5jbHVkZSAi
UlRDRGF0YUNoYW5uZWxJZGVudGlmaWVyLmgiCisjaW5jbHVkZSAiUlRDRGF0YUNoYW5uZWxSZW1v
dGVTb3VyY2VDb25uZWN0aW9uLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgUlRD
RGF0YUNoYW5uZWxIYW5kbGVyOworCitjbGFzcyBSVENEYXRhQ2hhbm5lbFJlbW90ZVNvdXJjZSA6
IHB1YmxpYyBSVENEYXRhQ2hhbm5lbEhhbmRsZXJDbGllbnQgeworcHVibGljOgorICAgIHN0YXRp
YyBSZWY8UlRDRGF0YUNoYW5uZWxSZW1vdGVTb3VyY2U+IGNyZWF0ZShSVENEYXRhQ2hhbm5lbElk
ZW50aWZpZXIgaWRlbnRpZmllciwgVW5pcXVlUmVmPFJUQ0RhdGFDaGFubmVsSGFuZGxlcj4mJiBo
YW5kbGVyLCBSZWY8UlRDRGF0YUNoYW5uZWxSZW1vdGVTb3VyY2VDb25uZWN0aW9uPiYmIGNvbm5l
Y3Rpb24pIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUlRDRGF0YUNoYW5uZWxSZW1vdGVTb3VyY2Uo
aWRlbnRpZmllciwgV1RGTW92ZShoYW5kbGVyKSwgV1RGTW92ZShjb25uZWN0aW9uKSkpOyB9Cisg
ICAgflJUQ0RhdGFDaGFubmVsUmVtb3RlU291cmNlKCk7CisKKyAgICB2b2lkIHNlbmRTdHJpbmdE
YXRhKGNvbnN0IENTdHJpbmcmIHRleHQpIHsgbV9oYW5kbGVyLT5zZW5kU3RyaW5nRGF0YSh0ZXh0
KTsgfQorICAgIHZvaWQgc2VuZFJhd0RhdGEoY29uc3QgY2hhciogZGF0YSwgc2l6ZV90IHNpemUp
IHsgbV9oYW5kbGVyLT5zZW5kUmF3RGF0YShkYXRhLCBzaXplKTsgfQorICAgIHZvaWQgY2xvc2Uo
KSB7IG1faGFuZGxlci0+Y2xvc2UoKTsgfQorCitwcml2YXRlOgorICAgIFdFQkNPUkVfRVhQT1JU
IFJUQ0RhdGFDaGFubmVsUmVtb3RlU291cmNlKFJUQ0RhdGFDaGFubmVsSWRlbnRpZmllciwgVW5p
cXVlUmVmPFJUQ0RhdGFDaGFubmVsSGFuZGxlcj4mJiwgUmVmPFJUQ0RhdGFDaGFubmVsUmVtb3Rl
U291cmNlQ29ubmVjdGlvbj4mJik7CisKKyAgICAvLyBSVENEYXRhQ2hhbm5lbEhhbmRsZXJDbGll
bnQKKyAgICB2b2lkIGRpZENoYW5nZVJlYWR5U3RhdGUoUlRDRGF0YUNoYW5uZWxTdGF0ZSBzdGF0
ZSkgZmluYWwgeyBtX2Nvbm5lY3Rpb24tPmRpZENoYW5nZVJlYWR5U3RhdGUobV9pZGVudGlmaWVy
LCBzdGF0ZSk7IH0KKyAgICB2b2lkIGRpZFJlY2VpdmVTdHJpbmdEYXRhKGNvbnN0IFN0cmluZyYg
dGV4dCkgZmluYWwgeyBtX2Nvbm5lY3Rpb24tPmRpZFJlY2VpdmVTdHJpbmdEYXRhKG1faWRlbnRp
ZmllciwgdGV4dCk7IH0KKyAgICB2b2lkIGRpZFJlY2VpdmVSYXdEYXRhKGNvbnN0IGNoYXIqIGRh
dGEsIHNpemVfdCBzaXplKSBmaW5hbCB7IG1fY29ubmVjdGlvbi0+ZGlkUmVjZWl2ZVJhd0RhdGEo
bV9pZGVudGlmaWVyLCBkYXRhLCBzaXplKTsgfQorICAgIHZvaWQgZGlkRGV0ZWN0RXJyb3IoKSBm
aW5hbCB7IG1fY29ubmVjdGlvbi0+ZGlkRGV0ZWN0RXJyb3IobV9pZGVudGlmaWVyKTsgfQorICAg
IHZvaWQgYnVmZmVyZWRBbW91bnRJc0RlY3JlYXNpbmcoc2l6ZV90IGFtb3VudCkgZmluYWwgeyBt
X2Nvbm5lY3Rpb24tPmJ1ZmZlcmVkQW1vdW50SXNEZWNyZWFzaW5nKG1faWRlbnRpZmllciwgYW1v
dW50KTsgfQorCisgICAgUlRDRGF0YUNoYW5uZWxJZGVudGlmaWVyIG1faWRlbnRpZmllcjsKKyAg
ICBVbmlxdWVSZWY8UlRDRGF0YUNoYW5uZWxIYW5kbGVyPiBtX2hhbmRsZXI7CisgICAgUmVmPFJU
Q0RhdGFDaGFubmVsUmVtb3RlU291cmNlQ29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOworfTsKKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQl9SVEMpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJX
ZWJSVENEYXRhQ2hhbm5lbEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDRGF0YUNoYW5uZWxIYW5kbGVyLmNwcAppbmRleCA3
ZjU4MmNhMGRjN2RhYjFhY2JjYmM5MGE3ODY1ZGI4MzYyMGRhMTI4Li4yZjNkMDllN2M5MTRlMWJm
MWE0ZTBmOTQ4ODExMmE3NmQ2NThiZWIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENEYXRhQ2hhbm5lbEhhbmRsZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldl
YlJUQ0RhdGFDaGFubmVsSGFuZGxlci5jcHAKQEAgLTE5Miw4ICsxOTIsMTAgQEAgdm9pZCBMaWJX
ZWJSVENEYXRhQ2hhbm5lbEhhbmRsZXI6OnBvc3RUYXNrKEZ1bmN0aW9uPHZvaWQoKT4mJiBmdW5j
dGlvbikKIHsKICAgICBBU1NFUlQobV9jbGllbnRMb2NrLmlzSGVsZCgpKTsKIAotICAgIGlmICgh
bV9jb250ZXh0SWRlbnRpZmllcikKKyAgICBpZiAoIW1fY29udGV4dElkZW50aWZpZXIpIHsKICAg
ICAgICAgY2FsbE9uTWFpblRocmVhZChXVEZNb3ZlKGZ1bmN0aW9uKSk7CisgICAgICAgIHJldHVy
bjsKKyAgICB9CiAgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6cG9zdFRhc2tUbyhtX2NvbnRl
eHRJZGVudGlmaWVyLCBXVEZNb3ZlKGZ1bmN0aW9uKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHkuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRNZXNzYWdpbmdQ
cm94eS5jcHAKaW5kZXggNmQ4NDU1ZDMxMzBlZTdkNjVkZWY0MmQ0OGU2MDYxNTU1ZmQ1OGJkYS4u
ZTlmNTE5N2M0ZjMyOGQzOTcyY2QxZGVmZTQ5ZWU4MTM3OGRmMmQ2YyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRNZXNz
YWdpbmdQcm94eS5jcHAKQEAgLTM3LDYgKzM3LDggQEAKICNpbmNsdWRlICJDYWNoZVN0b3JhZ2VD
b25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJGcmFtZS5oIgor
I2luY2x1ZGUgIkxpYldlYlJUQ1Byb3ZpZGVyLmgiCisjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1
ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiV29ya2xldFBhcmFtZXRlcnMuaCIKICNpbmNsdWRl
ICJXb3JrbGV0UGVuZGluZ1Rhc2tzLmgiCkBAIC04NSw2ICs4NywxNCBAQCBSZWZQdHI8Q2FjaGVT
dG9yYWdlQ29ubmVjdGlvbj4gQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHk6OmNyZWF0ZUNhY2hl
U3RvcmFnZUNvbgogICAgIHJldHVybiBudWxscHRyOwogfQogCitSZWZQdHI8UlRDRGF0YUNoYW5u
ZWxSZW1vdGVIYW5kbGVyQ29ubmVjdGlvbj4gQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHk6OmNy
ZWF0ZVJUQ0RhdGFDaGFubmVsUmVtb3RlSGFuZGxlckNvbm5lY3Rpb24oKQoreworICAgIEFTU0VS
VChpc01haW5UaHJlYWQoKSk7CisgICAgaWYgKCFtX2RvY3VtZW50LT5wYWdlKCkpCisgICAgICAg
IHJldHVybiBudWxscHRyOworICAgIHJldHVybiBtX2RvY3VtZW50LT5wYWdlKCktPmxpYldlYlJU
Q1Byb3ZpZGVyKCkuY3JlYXRlUlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVyQ29ubmVjdGlvbigp
OworfQorCiB2b2lkIEF1ZGlvV29ya2xldE1lc3NhZ2luZ1Byb3h5Ojpwb3N0VGFza1RvTG9hZGVy
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlRhc2smJiB0YXNrKQogewogICAgIG1fZG9jdW1lbnQt
PnBvc3RUYXNrKFdURk1vdmUodGFzaykpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eS5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eS5oCmluZGV4IGE2
YmM4NTg5MTdhNWQwZWI3NTA0ZTY0NjhkMDhhZjU0ZTAyNTliNmIuLmMyZWM0YTI2MWUzYzFjYzQx
YjRkNmU3YjJmZGVmMTFhMDUwY2E1YzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHkuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldE1lc3NhZ2luZ1Byb3h5LmgKQEAgLTU5
LDYgKzU5LDcgQEAgcHJpdmF0ZToKIAogICAgIC8vIFdvcmtlckxvYWRlclByb3h5LgogICAgIFJl
ZlB0cjxDYWNoZVN0b3JhZ2VDb25uZWN0aW9uPiBjcmVhdGVDYWNoZVN0b3JhZ2VDb25uZWN0aW9u
KCkgZmluYWw7CisgICAgUmVmUHRyPFJUQ0RhdGFDaGFubmVsUmVtb3RlSGFuZGxlckNvbm5lY3Rp
b24+IGNyZWF0ZVJUQ0RhdGFDaGFubmVsUmVtb3RlSGFuZGxlckNvbm5lY3Rpb24oKSBmaW5hbDsK
ICAgICB2b2lkIHBvc3RUYXNrVG9Mb2FkZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6VGFzayYm
KSBmaW5hbDsKICAgICBib29sIHBvc3RUYXNrRm9yTW9kZVRvV29ya2VyT3JXb3JrbGV0R2xvYmFs
U2NvcGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6VGFzayYmLCBjb25zdCBTdHJpbmcmIG1vZGUp
IGZpbmFsOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJj
ZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IDQ5MzFiZDBjN2JkMzc4MDFmNmMzYzUzYTFhMzk4
MDQ1MzgxMTM1NzcuLjE2NmIzMWZjMzBhYjI2ZWEwOGQ4ODQ2Yjg4NWUwYTU4MjI4ZjYyZTEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1NvdXJjZXMudHh0CkBAIC0xNjAsNiArMTYwLDggQEAgTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENE
VE1GU2VuZGVyLmNwcAogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENEVE1GVG9uZUNoYW5nZUV2ZW50
LmNwcAogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbC5jcHAKIE1vZHVsZXMvbWVk
aWFzdHJlYW0vUlRDRGF0YUNoYW5uZWxFdmVudC5jcHAKK01vZHVsZXMvbWVkaWFzdHJlYW0vUlRD
RGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVyLmNwcAorTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENEYXRh
Q2hhbm5lbFJlbW90ZVNvdXJjZS5jcHAKIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRW5jb2RlZEF1
ZGlvRnJhbWUuY3BwCiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0VuY29kZWRGcmFtZS5jcHAKIE1v
ZHVsZXMvbWVkaWFzdHJlYW0vUlRDRW5jb2RlZFZpZGVvRnJhbWUuY3BwCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMTgyYjlhNWE1
MDRjYTg3NjhjOGZiOWRiNzk1MGMyMWIyMGNjZjQ3OC4uNzBlM2EyN2FlYzk4NWZjMzM5Mjc5NmU3
MmQ5ZmVmOGM2ZmFmMmIxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagpAQCAtOTMyLDcgKzkzMiw3IEBACiAJCTMxNkRDQjRDMUU3OTEw
QTYwMDFCNUY4NyAvKiBKU1JUQ0ljZUNvbm5lY3Rpb25TdGF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE2RENCNDYxRTc5MTBBNjAwMUI1Rjg3IC8q
IEpTUlRDSWNlQ29ubmVjdGlvblN0YXRlLmggKi87IH07CiAJCTMxNkRDQjRFMUU3OTEwQTYwMDFC
NUY4NyAvKiBKU1JUQ0ljZUdhdGhlcmluZ1N0YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTZEQ0I0ODFFNzkxMEE2MDAxQjVGODcgLyogSlNSVENJ
Y2VHYXRoZXJpbmdTdGF0ZS5oICovOyB9OwogCQkzMTZEQ0I1MDFFNzkxMEE2MDAxQjVGODcgLyog
SlNSVENTaWduYWxpbmdTdGF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMzE2RENCNEExRTc5MTBBNjAwMUI1Rjg3IC8qIEpTUlRDU2lnbmFsaW5nU3Rh
dGUuaCAqLzsgfTsKLQkJMzE2REU3MDIxRTgzQUUxRDAwODRDMjYxIC8qIFJUQ0RhdGFDaGFubmVs
U3RhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMx
NkRFNzAxMUU4M0FFMUQwMDg0QzI2MSAvKiBSVENEYXRhQ2hhbm5lbFN0YXRlLmggKi87IH07CisJ
CTMxNkRFNzAyMUU4M0FFMUQwMDg0QzI2MSAvKiBSVENEYXRhQ2hhbm5lbFN0YXRlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTZERTcwMTFFODNBRTFE
MDA4NEMyNjEgLyogUlRDRGF0YUNoYW5uZWxTdGF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTMxNkZFMDcyMEU2Q0NCRUUwMEJGNjA4OCAvKiBK
U0NTU0tleWZyYW1lUnVsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMzE2RkUwNkUwRTZDQ0JFRTAwQkY2MDg4IC8qIEpTQ1NTS2V5ZnJhbWVSdWxlLmgg
Ki87IH07CiAJCTMxNkZFMDc0MEU2Q0NCRUUwMEJGNjA4OCAvKiBKU0NTU0tleWZyYW1lc1J1bGUu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxNkZFMDcw
MEU2Q0NCRUUwMEJGNjA4OCAvKiBKU0NTU0tleWZyYW1lc1J1bGUuaCAqLzsgfTsKIAkJMzE3NDFB
QUQxNjYzNjYwOTAwOEE1QjdFIC8qIFNpbXVsYXRlZENsaWNrT3B0aW9ucy5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE3NDFBQUIxNjYzNUU0NTAwOEE1
QjdFIC8qIFNpbXVsYXRlZENsaWNrT3B0aW9ucy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0xMDM2LDYgKzEwMzYsOSBAQAogCQk0MTEwM0FBQzFF
Mzk3OTEwMDA3NjlGMTQgLyogUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlQ29jb2EuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxMTAzQUE4MUUzOTc5
MEEwMDc2OUYxNCAvKiBSZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2VDb2NvYS5oICovOyB9Owog
CQk0MTEwM0FBRDFFMzk3OTEwMDA3NjlGMDMgLyogUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNl
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTEwM0FB
OTFFMzk3OTBBMDA3NjlGMDMgLyogUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlLmggKi87IH07
CiAJCTQxMTAzQUFEMUUzOTc5MTAwMDc2OUYxNCAvKiBSZWFsdGltZUluY29taW5nQXVkaW9Tb3Vy
Y2VDb2NvYS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NDExMDNBQTkxRTM5NzkwQTAwNzY5RjE0IC8qIFJlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZUNv
Y29hLmggKi87IH07CisJCTQxMTIyM0JBMjYwMjQ0RkUwMEIwQTBCNiAvKiBTY3JpcHRFeGVjdXRp
b25Db250ZXh0SWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNDExMjIzQjgyNjAyNDRGRTAwQjBBMEI2IC8qIFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHRJZGVudGlmaWVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKKwkJNDExMjIzQkUyNjAyNUJDMTAwQjBBMEI2IC8qIFJUQ0RhdGFDaGFubmVsUmVt
b3RlU291cmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA0MTZFREJFRjI1RkZCMjI0MDAwOTI2NzUgLyogUlRDRGF0YUNoYW5uZWxSZW1vdGVTb3VyY2Uu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk0MTEy
MjNDNTI2MDM1NjdEMDBCMEEwQjYgLyogRGV0YWNoZWRSVENEYXRhQ2hhbm5lbC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDExMjIzQzMyNjAzNTY3QzAw
QjBBMEI2IC8qIERldGFjaGVkUlRDRGF0YUNoYW5uZWwuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0MTEyQjU0MzFGOUY5Q0EwMDBFNjc4NzUgLyog
U2VydmljZVdvcmtlclRocmVhZFByb3h5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0MTEyQjUzRjFGOUY5QzlCMDBFNjc4NzUgLyogU2VydmljZVdvcmtl
clRocmVhZFByb3h5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJNDExNEZFMzIyNUJFQkQxOTAwOUQ5RjIwIC8qIFJUQ1J0Y3BQYXJhbWV0ZXJzLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTE0RkUyRjI1
QkVCRDE4MDA5RDlGMjAgLyogUlRDUnRjcFBhcmFtZXRlcnMuaCAqLzsgfTsKIAkJNDEyMzA4MUIx
MzhDNDI5NzAwQkNDRkNBIC8qIFdlYkNvcmUuZnJhbWV3b3JrIGluIEZyYW1ld29ya3MgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNGMTlCMUEwODI0NUU1QTAwMUU5QUJDIC8q
IFdlYkNvcmUuZnJhbWV3b3JrICovOyB9OwpAQCAtMTA2MSw3ICsxMDY0LDcgQEAKIAkJNDEzQzhC
MzMyNTUyRjI3RDAwRTY1MDU1IC8qIFJUQ1J0cFNlbmRlcldpdGhUcmFuc2Zvcm0uaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxM0M4QjJFMjU1MkYyN0Iw
MEU2NTA1NSAvKiBSVENSdHBTZW5kZXJXaXRoVHJhbnNmb3JtLmggKi87IH07CiAJCTQxM0M4QjM0
MjU1MkYyN0QwMEU2NTA1NSAvKiBSVENSdHBUcmFuc2Zvcm0uaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxM0M4QjJGMjU1MkYyN0IwMEU2NTA1NSAvKiBS
VENSdHBUcmFuc2Zvcm0uaCAqLzsgfTsKIAkJNDEzQzhCMzUyNTUyRjI3RDAwRTY1MDU1IC8qIFJU
Q1J0cFJlY2VpdmVyV2l0aFRyYW5zZm9ybS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNDEzQzhCMzAyNTUyRjI3QzAwRTY1MDU1IC8qIFJUQ1J0cFJlY2Vp
dmVyV2l0aFRyYW5zZm9ybS5oICovOyB9OwotCQk0MTNDQzExRDI1RTdEOThFMDBENTlDNEIgLyog
UlRDUHJpb3JpdHlUeXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0MTNDQzExQzI1RTdEOThEMDBENTlDNEIgLyogUlRDUHJpb3JpdHlUeXBlLmggKi87
IH07CisJCTQxM0NDMTFEMjVFN0Q5OEUwMEQ1OUM0QiAvKiBSVENQcmlvcml0eVR5cGUuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxM0NDMTFDMjVFN0Q5
OEQwMEQ1OUM0QiAvKiBSVENQcmlvcml0eVR5cGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0MTNDQ0Q0QTIwREUwMzRGMDA2NUEyMUEgLyogTW9j
a01lZGlhRGV2aWNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA0MTNDQ0Q0ODIwREUwMTNDMDA2NUEyMUEgLyogTW9ja01lZGlhRGV2aWNlLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDEzRTAwNzkxREIw
RTRGMjAwMjM0MUQyIC8qIE1lbW9yeVJlbGVhc2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxM0UwMDc4MURCMEU0REUwMDIzNDFEMiAvKiBNZW1vcnlS
ZWxlYXNlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJNDE0NDYwQTIyNDEyOTk0NTAwODE0QkU3IC8qIE1lZGlhU2Vzc2lvbklkZW50aWZpZXIuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxNDQ2MEEwMjQx
Mjk5NDEwMDgxNEJFNyAvKiBNZWRpYVNlc3Npb25JZGVudGlmaWVyLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTEwOTgsNiArMTEwMSwxMCBAQAog
CQk0MTZFNkZFOTFCQkQxMkU1MDAwQTYwNDMgLyogUmVhZGFibGVTdHJlYW1CdWlsdGlucy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUIwM0Q4MDYxQkIz
MTEwRDAwQjc2NEQ4IC8qIFJlYWRhYmxlU3RyZWFtQnVpbHRpbnMuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0MTZFNkZFOTFCQkQxMkU1MDAwQTYw
NTMgLyogV3JpdGFibGVTdHJlYW1CdWlsdGlucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOUIwM0Q4MDYxQkIzMTEwRDAwQjc2NEU4IC8qIFdyaXRhYmxl
U3RyZWFtQnVpbHRpbnMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk0MTZFQ0FFNTI1QjU4Q0M0MDBCMzREQTUgLyogTWVkaWFTZXNzaW9uR3JvdXBJ
ZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA0MTZFQ0FFMzI1QjU4Q0M0MDBCMzREQTUgLyogTWVkaWFTZXNzaW9uR3JvdXBJZGVudGlmaWVy
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNDE2
RURCRjYyNjAwRDY3OTAwMDkyNjc1IC8qIFJUQ0RhdGFDaGFubmVsUmVtb3RlSGFuZGxlci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE2RURCRjQyNjAw
RDY3ODAwMDkyNjc1IC8qIFJUQ0RhdGFDaGFubmVsUmVtb3RlSGFuZGxlci5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTQxNkVEQzAwMjYwMEU3ODgw
MDA5MjY3NSAvKiBSVENEYXRhQ2hhbm5lbElkZW50aWZpZXIuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxNkVEQkZGMjYwMEU3ODcwMDA5MjY3NSAvKiBS
VENEYXRhQ2hhbm5lbElkZW50aWZpZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OworCQk0MTZFREMwMjI2MDBFN0IwMDAwOTI2NzUgLyogUlRDRGF0YUNo
YW5uZWxSZW1vdGVIYW5kbGVyQ29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNDE2RURDMDEyNjAwRTdCMDAwMDkyNjc1IC8qIFJUQ0RhdGFD
aGFubmVsUmVtb3RlSGFuZGxlckNvbm5lY3Rpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OworCQk0MTZFREMwNDI2MDBFODEwMDAwOTI2NzUgLyogUlRD
RGF0YUNoYW5uZWxSZW1vdGVTb3VyY2VDb25uZWN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTZFREMwMzI2MDBFODBGMDAwOTI2NzUgLyogUlRD
RGF0YUNoYW5uZWxSZW1vdGVTb3VyY2VDb25uZWN0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDE2RkQyNUYyNDBGQTRFNTAwNjY2MUQ4IC8q
IE5vd1BsYXlpbmdJbmZvLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0MTZGRDI1RDI0MEVFMUFFMDA2NjYxRDggLyogTm93UGxheWluZ0luZm8uaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0MTcyNTNBQjEz
NTRCQkJDMDAzNjBGMkEgLyogTWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE3MjUzQTkx
MzU0QkJCQzAwMzYwRjJBIC8qIE1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQu
aCAqLzsgfTsKIAkJNDE3NjEyQUYxRTNBOTk0MDAwQzNEODFEIC8qIExpYldlYlJUQ01lZGlhRW5k
cG9pbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NDE3NjEyQUIxRTNBOTkzQjAwQzNEODFEIC8qIExpYldlYlJUQ01lZGlhRW5kcG9pbnQuY3BwICov
OyB9OwpAQCAtNzY0Nyw2ICs3NjU0LDggQEAKIAkJNDExMDNBQUExRTM5NzkwQTAwNzY5RjE0IC8q
IFJlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZUNvY29hLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFJlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZUNvY29hLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDExMTRBN0EyMzE3QjM5RTAwQjU2MDA3IC8q
IFdvcmtlck1lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdvcmtl
ck1lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTQxMTE0QTdDMjMxN0IzOUUwMEI1NjAwNyAvKiBXb3JrZXJNZXNzYWdlUG9ydENoYW5uZWxQ
cm92aWRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXb3JrZXJNZXNzYWdlUG9ydENoYW5uZWxQ
cm92aWRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxMTIyM0I4MjYwMjQ0
RkUwMEIwQTBCNiAvKiBTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmll
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTEyMjNDMzI2MDM1NjdDMDBCMEEw
QjYgLyogRGV0YWNoZWRSVENEYXRhQ2hhbm5lbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBEZXRhY2hlZFJUQ0RhdGFDaGFubmVsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTQxMTJCNTNGMUY5RjlDOUIwMEU2Nzg3NSAvKiBTZXJ2aWNlV29ya2VyVGhyZWFkUHJv
eHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2VydmljZVdvcmtlclRocmVh
ZFByb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMTJCNTQxMUY5RjlDOUMw
MEU2Nzg3NSAvKiBTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gU2VydmljZVdvcmtlclRocmVhZFByb3h5LmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDExNEZFMkYyNUJFQkQxODAwOUQ5RjIwIC8qIFJUQ1J0
Y3BQYXJhbWV0ZXJzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJUQ1J0Y3BQ
YXJhbWV0ZXJzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC03NzkzLDYgKzc4MDIs
MTMgQEAKIAkJNDE2RTBCMzcyMDlCQzNDMjAwNEE5NUQ5IC8qIEZldGNoSWRlbnRpZmllci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGZXRjaElkZW50aWZpZXIuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE2RTI5QTUxMDJGQTk2MjAwN0ZDMTRFIC8qIFdvcmtl
clJlcG9ydGluZ1Byb3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdvcmtl
clJlcG9ydGluZ1Byb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxNkVDQUUz
MjVCNThDQzQwMEIzNERBNSAvKiBNZWRpYVNlc3Npb25Hcm91cElkZW50aWZpZXIuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFTZXNzaW9uR3JvdXBJZGVudGlmaWVyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxNkVEQkVEMjVGRkIyMjQwMDA5MjY3NSAv
KiBSVENEYXRhQ2hhbm5lbFJlbW90ZVNvdXJjZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBSVENEYXRhQ2hhbm5lbFJlbW90ZVNvdXJjZS5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTQxNkVEQkVGMjVGRkIyMjQwMDA5MjY3NSAvKiBSVENEYXRhQ2hh
bm5lbFJlbW90ZVNvdXJjZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSVENE
YXRhQ2hhbm5lbFJlbW90ZVNvdXJjZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0
MTZFREJGNDI2MDBENjc4MDAwOTI2NzUgLyogUlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJUQ0RhdGFDaGFubmVsUmVtb3RlSGFu
ZGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTZFREJGNzI2MDBENzYzMDAw
OTI2NzUgLyogUlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJUQ0RhdGFDaGFubmVsUmVtb3RlSGFuZGxlci5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxNkVEQkZGMjYwMEU3ODcwMDA5MjY3NSAvKiBS
VENEYXRhQ2hhbm5lbElkZW50aWZpZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gUlRDRGF0YUNoYW5uZWxJZGVudGlmaWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTQxNkVEQzAxMjYwMEU3QjAwMDA5MjY3NSAvKiBSVENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRs
ZXJDb25uZWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJUQ0RhdGFD
aGFubmVsUmVtb3RlSGFuZGxlckNvbm5lY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJNDE2RURDMDMyNjAwRTgwRjAwMDkyNjc1IC8qIFJUQ0RhdGFDaGFubmVsUmVtb3RlU291
cmNlQ29ubmVjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSVENEYXRh
Q2hhbm5lbFJlbW90ZVNvdXJjZUNvbm5lY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNDE2RjgwNzkyNDUwOUYzMjAwQjY4RjAyIC8qIFdpbmRvd0Rpc3BsYXlDYXB0dXJlck1h
Yy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXaW5kb3dEaXNwbGF5Q2FwdHVy
ZXJNYWMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE2RjgwN0EyNDUwOUYzMjAw
QjY4RjAyIC8qIFNjcmVlbkRpc3BsYXlDYXB0dXJlck1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9IFNjcmVlbkRpc3BsYXlDYXB0dXJlck1hYy5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE2RjgwN0IyNDUwOUYzMzAwQjY4RjAyIC8qIFdpbmRv
d0Rpc3BsYXlDYXB0dXJlck1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IFdpbmRvd0Rpc3BsYXlDYXB0dXJlck1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTE3MjQyLDYgKzE3MjU4LDcgQEAKIAkJCQk0MUM3RTEwNTFFNkE1NDM2MDAyN0I0
REUgLyogQ2FudmFzQ2FwdHVyZU1lZGlhU3RyZWFtVHJhY2suY3BwICovLAogCQkJCTQxQzdFMTA2
MUU2QTU0MzYwMDI3QjRERSAvKiBDYW52YXNDYXB0dXJlTWVkaWFTdHJlYW1UcmFjay5oICovLAog
CQkJCTQxQzdFMTA4MUU2QUEzN0MwMDI3QjRERSAvKiBDYW52YXNDYXB0dXJlTWVkaWFTdHJlYW1U
cmFjay5pZGwgKi8sCisJCQkJNDExMjIzQzMyNjAzNTY3QzAwQjBBMEI2IC8qIERldGFjaGVkUlRD
RGF0YUNoYW5uZWwuaCAqLywKIAkJCQk5M0E4MDYxMTFFMDNCNTFDMDA4QTFGMjYgLyogRG91Ymxl
UmFuZ2UuaCAqLywKIAkJCQk5M0E4MDYxMjFFMDNCNTFDMDA4QTFGMjYgLyogRG91YmxlUmFuZ2Uu
aWRsICovLAogCQkJCTkzQTgwNjEzMUUwM0I1MUMwMDhBMUYyNiAvKiBMb25nUmFuZ2UuaCAqLywK
QEAgLTE3MjkxLDYgKzE3MzA4LDEwIEBACiAJCQkJMDcyMjFCNjYxN0NFQzMyNzAwODQ4RTUxIC8q
IFJUQ0RhdGFDaGFubmVsRXZlbnQuY3BwICovLAogCQkJCTA3MjIxQjY3MTdDRUMzMjcwMDg0OEU1
MSAvKiBSVENEYXRhQ2hhbm5lbEV2ZW50LmggKi8sCiAJCQkJMDcyMjFCNjgxN0NFQzMyNzAwODQ4
RTUxIC8qIFJUQ0RhdGFDaGFubmVsRXZlbnQuaWRsICovLAorCQkJCTQxNkVEQkY3MjYwMEQ3NjMw
MDA5MjY3NSAvKiBSVENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXIuY3BwICovLAorCQkJCTQxNkVE
QkY0MjYwMEQ2NzgwMDA5MjY3NSAvKiBSVENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXIuaCAqLywK
KwkJCQk0MTZFREJFRDI1RkZCMjI0MDAwOTI2NzUgLyogUlRDRGF0YUNoYW5uZWxSZW1vdGVTb3Vy
Y2UuY3BwICovLAorCQkJCTQxNkVEQkVGMjVGRkIyMjQwMDA5MjY3NSAvKiBSVENEYXRhQ2hhbm5l
bFJlbW90ZVNvdXJjZS5oICovLAogCQkJCTQxRkNCNzVEMjE0ODY2RkUwMDM4QURDNiAvKiBSVENE
ZWdyYWRhdGlvblByZWZlcmVuY2UuaCAqLywKIAkJCQk0MUZDQjc1NTIxNDg2NUNGMDAzOEFEQzYg
LyogUlRDRGVncmFkYXRpb25QcmVmZXJlbmNlLmlkbCAqLywKIAkJCQkwNzIyMUI2OTE3Q0VDMzI3
MDA4NDhFNTEgLyogUlRDRFRNRlNlbmRlci5jcHAgKi8sCkBAIC0xNzQ4Niw2ICsxNzUwNyw5IEBA
CiAJCQkJMzEzNTkxMEMxRTdERENCNjAwRjMwNjMwIC8qIFJUQ0J1bmRsZVBvbGljeS5oICovLAog
CQkJCTA3MjIxQkEyMTdDRjBBRDQwMDg0OEU1MSAvKiBSVENEYXRhQ2hhbm5lbEhhbmRsZXIuaCAq
LywKIAkJCQkwNzIyMUJBMzE3Q0YwQUQ0MDA4NDhFNTEgLyogUlRDRGF0YUNoYW5uZWxIYW5kbGVy
Q2xpZW50LmggKi8sCisJCQkJNDE2RURCRkYyNjAwRTc4NzAwMDkyNjc1IC8qIFJUQ0RhdGFDaGFu
bmVsSWRlbnRpZmllci5oICovLAorCQkJCTQxNkVEQzAxMjYwMEU3QjAwMDA5MjY3NSAvKiBSVENE
YXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXJDb25uZWN0aW9uLmggKi8sCisJCQkJNDE2RURDMDMyNjAw
RTgwRjAwMDkyNjc1IC8qIFJUQ0RhdGFDaGFubmVsUmVtb3RlU291cmNlQ29ubmVjdGlvbi5oICov
LAogCQkJCTMxNkRFNzAxMUU4M0FFMUQwMDg0QzI2MSAvKiBSVENEYXRhQ2hhbm5lbFN0YXRlLmgg
Ki8sCiAJCQkJNDFGMjM1NDQyMkY1NTAzMzAwQjRGQ0RCIC8qIFJUQ0RUTUZTZW5kZXJCYWNrZW5k
LmggKi8sCiAJCQkJMDcyMjFCQTYxN0NGMEFENDAwODQ4RTUxIC8qIFJUQ0ljZUNhbmRpZGF0ZURl
c2NyaXB0b3IuY3BwICovLApAQCAtMjc4MTMsNiArMjc4MzcsNyBAQAogCQkJCUExOEY3QTM1MUVD
QTczNjQwMDU5RTFFMSAvKiBSdW50aW1lQXBwbGljYXRpb25DaGVja3MuY3BwICovLAogCQkJCTI5
M0VBRTFFMTM1NkIyRkUwMDY3QUNGOSAvKiBSdW50aW1lQXBwbGljYXRpb25DaGVja3MuaCAqLywK
IAkJCQlDMUUxRDIzNTIwM0RGMTU0MDA1ODQ2NjUgLyogU2NyZWVuUHJvcGVydGllcy5oICovLAor
CQkJCTQxMTIyM0I4MjYwMjQ0RkUwMEIwQTBCNiAvKiBTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRl
bnRpZmllci5oICovLAogCQkJCUJDOEFFMzRDMTJFQTA5NkEwMEVCM0FFNiAvKiBTY3JvbGxhYmxl
QXJlYS5jcHAgKi8sCiAJCQkJQkM4QUUzNEQxMkVBMDk2QTAwRUIzQUU2IC8qIFNjcm9sbGFibGVB
cmVhLmggKi8sCiAJCQkJMEZDNjkyQkMyNTdDMEY0MTAwOThFM0Y5IC8qIFNjcm9sbEFuaW1hdGlv
bktpbmV0aWMuY3BwICovLApAQCAtMzE5OTMsNiArMzIwMTgsNyBAQAogCQkJCTk0Nzk0OTI1MUUw
MzA4QUYwMDAxOEQ4NSAvKiBEZXByZWNhdGVkQ1NTT01WYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJOTQ3OTQ5M0QxRTA0NjNCNjAwMDE4RDg1IC8qIERlcHJlY2F0ZWRDU1NPTVZhbHVlTGlzdC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJN0NCRDEyOUUxRjk4QjkwRTAwMTI3RDI5IC8qIERlcHJlY2F0
ZWRHbG9iYWxTZXR0aW5ncy5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDExMjIzQzUyNjAzNTY3RDAw
QjBBMEI2IC8qIERldGFjaGVkUlRDRGF0YUNoYW5uZWwuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3
QzlBQkY5MTM1N0EzQkYwMEY1NTAzRiAvKiBEZXRhaWxzTWFya2VyQ29udHJvbC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQTFFRDc3OEQxQkUzMjk0MDAwREMxNzkxIC8qIERldmljZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQ0NDMkI1MTQxNUY2MTMwNjAwNDhDREQ2IC8qIERldmljZUNsaWVudC5oIGlu
IEhlYWRlcnMgKi8sCkBAIC0zNDYyMCw2ICszNDY0NiwxMSBAQAogCQkJCTA3OEUwOTNDMTdEMTZF
MUMwMDQyMEFBMSAvKiBSVENEYXRhQ2hhbm5lbEhhbmRsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTA3OEUwOTNEMTdEMTZFMUMwMDQyMEFBMSAvKiBSVENEYXRhQ2hhbm5lbEhhbmRsZXJDbGllbnQu
aCBpbiBIZWFkZXJzICovLAogCQkJCTA3Mzc5NEZBMTlGNTg2NEUwMEU1QTA0NSAvKiBSVENEYXRh
Q2hhbm5lbEhhbmRsZXJNb2NrLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTZFREMwMDI2MDBFNzg4
MDAwOTI2NzUgLyogUlRDRGF0YUNoYW5uZWxJZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLywKKwkJ
CQk0MTZFREJGNjI2MDBENjc5MDAwOTI2NzUgLyogUlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVy
LmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTZFREMwMjI2MDBFN0IwMDAwOTI2NzUgLyogUlRDRGF0
YUNoYW5uZWxSZW1vdGVIYW5kbGVyQ29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDEx
MjIzQkUyNjAyNUJDMTAwQjBBMEI2IC8qIFJUQ0RhdGFDaGFubmVsUmVtb3RlU291cmNlLmggaW4g
SGVhZGVycyAqLywKKwkJCQk0MTZFREMwNDI2MDBFODEwMDAwOTI2NzUgLyogUlRDRGF0YUNoYW5u
ZWxSZW1vdGVTb3VyY2VDb25uZWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMTZERTcwMjFF
ODNBRTFEMDA4NEMyNjEgLyogUlRDRGF0YUNoYW5uZWxTdGF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMDc4RTA5MjAxN0QxNEQxQzAwNDIwQUExIC8qIFJUQ0RUTUZTZW5kZXIuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTA3OEUwOTIxMTdEMTREMUMwMDQyMEFBMSAvKiBSVENEVE1GVG9uZUNoYW5nZUV2
ZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTM0Njg4LDYgKzM0NzE5LDcgQEAKIAkJCQkwOEE0ODQ3
ODBFNTI3MkM1MDBDM0ZFNzYgLyogU2NyaXB0RWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
RTNFNEUyQTgxRTNCMTcxMDAwMjNCQjhBIC8qIFNjcmlwdEVsZW1lbnRDYWNoZWRTY3JpcHRGZXRj
aGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMTFDOUQ5QjBFQjM2ODEyMDBFNDA5REIgLyogU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDExMjIzQkEyNjAyNDRG
RTAwQjBBMEI2IC8qIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkzNzJEM0U1NTIxNjU3OEFFMDBDNUUwMjEgLyogU2NyaXB0TW9kdWxlTG9hZGVy
LmggaW4gSGVhZGVycyAqLywKIAkJCQlGRDMxNjAzNjEyQjAyNjc2MDBDMUEzNTkgLyogU2NyaXB0
UHJvY2Vzc29yTm9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOEE0MTNBRTAxMjA3QkJBNTAwODIw
MTZFIC8qIFNjcmlwdFJ1bm5lci5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcAppbmRleCA0NzUzNDJh
ZGVjNTg0ZTM2MjAxMTRmMTc4YjM0ODU2M2VjZWM2N2U4Li5mNjlmMTE0NThjY2Q0YjY5MWI1YWFj
MGQ3ZTJhOWU1OWRiYjQ1OTRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAKQEAgLTM4MjYsOSArMzgyNiwxNiBAQCBTZXJp
YWxpemVkU2NyaXB0VmFsdWU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZShWZWN0b3I8dWludDhfdD4m
JiBidWZmZXIpCiAgICAgbV9tZW1vcnlDb3N0ID0gY29tcHV0ZU1lbW9yeUNvc3QoKTsKIH0KIAot
U2VyaWFsaXplZFNjcmlwdFZhbHVlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWUoVmVjdG9yPHVpbnQ4
X3Q+JiYgYnVmZmVyLCBzdGQ6OnVuaXF1ZV9wdHI8QXJyYXlCdWZmZXJDb250ZW50c0FycmF5PiBh
cnJheUJ1ZmZlckNvbnRlbnRzQXJyYXkpCitTZXJpYWxpemVkU2NyaXB0VmFsdWU6OlNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZShWZWN0b3I8dWludDhfdD4mJiBidWZmZXIsIHN0ZDo6dW5pcXVlX3B0cjxB
cnJheUJ1ZmZlckNvbnRlbnRzQXJyYXk+JiYgYXJyYXlCdWZmZXJDb250ZW50c0FycmF5CisjaWYg
RU5BQkxFKFdFQl9SVEMpCisgICAgICAgICwgVmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxEZXRhY2hl
ZFJUQ0RhdGFDaGFubmVsPj4mJiBkZXRhY2hlZFJUQ0RhdGFDaGFubmVscworI2VuZGlmCisgICAg
ICAgICkKICAgICA6IG1fZGF0YShXVEZNb3ZlKGJ1ZmZlcikpCiAgICAgLCBtX2FycmF5QnVmZmVy
Q29udGVudHNBcnJheShXVEZNb3ZlKGFycmF5QnVmZmVyQ29udGVudHNBcnJheSkpCisjaWYgRU5B
QkxFKFdFQl9SVEMpCisgICAgLCBtX2RldGFjaGVkUlRDRGF0YUNoYW5uZWxzKFdURk1vdmUoZGV0
YWNoZWRSVENEYXRhQ2hhbm5lbHMpKQorI2VuZGlmCiB7CiAgICAgbV9tZW1vcnlDb3N0ID0gY29t
cHV0ZU1lbW9yeUNvc3QoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
U2VyaWFsaXplZFNjcmlwdFZhbHVlLmgKaW5kZXggNTRjOGU4MGY0ZTBiMDE0MGY2MTQyZjk0MTIy
YzE1NjA4NWJkYWIxYy4uOTAyMDRlZTU2MzFkMDRkZjg2NGNmNTBlYmNiMzM3MzM5NjYwYzJjZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZh
bHVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZh
bHVlLmgKQEAgLTI2LDYgKzI2LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJEZXRh
Y2hlZFJUQ0RhdGFDaGFubmVsLmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uT3IuaCIKICNpbmNsdWRl
IDxKYXZhU2NyaXB0Q29yZS9BcnJheUJ1ZmZlci5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3Jl
L0pTQ0pTVmFsdWUuaD4KQEAgLTUwLDkgKzUxLDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogI2lm
IEVOQUJMRShPRkZTQ1JFRU5fQ0FOVkFTKQogY2xhc3MgRGV0YWNoZWRPZmZzY3JlZW5DYW52YXM7
CiAjZW5kaWYKLSNpZiBFTkFCTEUoV0VCX1JUQykKLXN0cnVjdCBEZXRhY2hlZFJUQ0RhdGFDaGFu
bmVsOwotI2VuZGlmCiBjbGFzcyBJREJWYWx1ZTsKIGNsYXNzIE1lc3NhZ2VQb3J0OwogY2xhc3Mg
SW1hZ2VCaXRtYXBCYWNraW5nOwpAQCAtMTIwLDcgKzExOCwxMiBAQCBwdWJsaWM6CiAKIHByaXZh
dGU6CiAgICAgV0VCQ09SRV9FWFBPUlQgU2VyaWFsaXplZFNjcmlwdFZhbHVlKFZlY3Rvcjx1bnNp
Z25lZCBjaGFyPiYmKTsKLSAgICBXRUJDT1JFX0VYUE9SVCBTZXJpYWxpemVkU2NyaXB0VmFsdWUo
VmVjdG9yPHVuc2lnbmVkIGNoYXI+JiYsIHN0ZDo6dW5pcXVlX3B0cjxBcnJheUJ1ZmZlckNvbnRl
bnRzQXJyYXk+KTsKKyAgICBXRUJDT1JFX0VYUE9SVCBTZXJpYWxpemVkU2NyaXB0VmFsdWUoVmVj
dG9yPHVuc2lnbmVkIGNoYXI+JiYsIHN0ZDo6dW5pcXVlX3B0cjxBcnJheUJ1ZmZlckNvbnRlbnRz
QXJyYXk+JiYKKyNpZiBFTkFCTEUoV0VCX1JUQykKKyAgICAgICAgLCBWZWN0b3I8c3RkOjp1bmlx
dWVfcHRyPERldGFjaGVkUlRDRGF0YUNoYW5uZWw+PiYmCisjZW5kaWYKKyAgICAgICAgKTsKKwog
ICAgIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZShWZWN0b3I8dW5zaWduZWQgY2hhcj4mJiwgY29uc3Qg
VmVjdG9yPFN0cmluZz4mIGJsb2JVUkxzLCBzdGQ6OnVuaXF1ZV9wdHI8QXJyYXlCdWZmZXJDb250
ZW50c0FycmF5Piwgc3RkOjp1bmlxdWVfcHRyPEFycmF5QnVmZmVyQ29udGVudHNBcnJheT4gc2hh
cmVkQnVmZmVycywgVmVjdG9yPE9wdGlvbmFsPEltYWdlQml0bWFwQmFja2luZz4+JiYgYmFja2lu
Z1N0b3JlcwogI2lmIEVOQUJMRShPRkZTQ1JFRU5fQ0FOVkFTKQogICAgICAgICAsIFZlY3Rvcjxz
dGQ6OnVuaXF1ZV9wdHI8RGV0YWNoZWRPZmZzY3JlZW5DYW52YXM+PiYmID0geyB9CkBAIC0xNjIs
MTQgKzE2NSwxOSBAQCB2b2lkIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6ZW5jb2RlKEVuY29kZXIm
IGVuY29kZXIpIGNvbnN0CiAgICAgYXV0byBoYXNBcnJheSA9IG1fYXJyYXlCdWZmZXJDb250ZW50
c0FycmF5ICYmIG1fYXJyYXlCdWZmZXJDb250ZW50c0FycmF5LT5zaXplKCk7CiAgICAgZW5jb2Rl
ciA8PCBoYXNBcnJheTsKIAotICAgIGlmICghaGFzQXJyYXkpCi0gICAgICAgIHJldHVybjsKLQot
ICAgIGVuY29kZXIgPDwgc3RhdGljX2Nhc3Q8dWludDY0X3Q+KG1fYXJyYXlCdWZmZXJDb250ZW50
c0FycmF5LT5zaXplKCkpOwotICAgIGZvciAoY29uc3QgYXV0byAmYXJyYXlCdWZmZXJDb250ZW50
cyA6ICptX2FycmF5QnVmZmVyQ29udGVudHNBcnJheSkgewotICAgICAgICBlbmNvZGVyIDw8IGFy
cmF5QnVmZmVyQ29udGVudHMuc2l6ZUluQnl0ZXMoKTsKLSAgICAgICAgZW5jb2Rlci5lbmNvZGVG
aXhlZExlbmd0aERhdGEoc3RhdGljX2Nhc3Q8Y29uc3QgdWludDhfdCo+KGFycmF5QnVmZmVyQ29u
dGVudHMuZGF0YSgpKSwgYXJyYXlCdWZmZXJDb250ZW50cy5zaXplSW5CeXRlcygpLCAxKTsKKyAg
ICBpZiAoaGFzQXJyYXkpIHsKKyAgICAgICAgZW5jb2RlciA8PCBzdGF0aWNfY2FzdDx1aW50NjRf
dD4obV9hcnJheUJ1ZmZlckNvbnRlbnRzQXJyYXktPnNpemUoKSk7CisgICAgICAgIGZvciAoY29u
c3QgYXV0byAmYXJyYXlCdWZmZXJDb250ZW50cyA6ICptX2FycmF5QnVmZmVyQ29udGVudHNBcnJh
eSkgeworICAgICAgICAgICAgZW5jb2RlciA8PCBhcnJheUJ1ZmZlckNvbnRlbnRzLnNpemVJbkJ5
dGVzKCk7CisgICAgICAgICAgICBlbmNvZGVyLmVuY29kZUZpeGVkTGVuZ3RoRGF0YShzdGF0aWNf
Y2FzdDxjb25zdCB1aW50OF90Kj4oYXJyYXlCdWZmZXJDb250ZW50cy5kYXRhKCkpLCBhcnJheUJ1
ZmZlckNvbnRlbnRzLnNpemVJbkJ5dGVzKCksIDEpOworICAgICAgICB9CiAgICAgfQorCisjaWYg
RU5BQkxFKFdFQl9SVEMpCisgICAgZW5jb2RlciA8PCBzdGF0aWNfY2FzdDx1aW50NjRfdD4obV9k
ZXRhY2hlZFJUQ0RhdGFDaGFubmVscy5zaXplKCkpOworICAgIGZvciAoY29uc3QgYXV0byAmY2hh
bm5lbCA6IG1fZGV0YWNoZWRSVENEYXRhQ2hhbm5lbHMpCisgICAgICAgIGVuY29kZXIgPDwgKmNo
YW5uZWw7CisjZW5kaWYKIH0KIAogdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KQEAgLTE4MywzMyAr
MTkxLDUxIEBAIFJlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IFNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZTo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZSho
YXNBcnJheSkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgaWYgKCFoYXNBcnJheSkK
LSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU2VyaWFsaXplZFNjcmlwdFZhbHVlKFdURk1v
dmUoZGF0YSkpKTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8QXJyYXlCdWZmZXJDb250ZW50c0FycmF5
PiBhcnJheUJ1ZmZlckNvbnRlbnRzQXJyYXk7CisgICAgaWYgKGhhc0FycmF5KSB7CisgICAgICAg
IHVpbnQ2NF90IGFycmF5TGVuZ3RoOworICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGFycmF5
TGVuZ3RoKSkKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICBBU1NFUlQoYXJy
YXlMZW5ndGgpOworCisgICAgICAgIGFycmF5QnVmZmVyQ29udGVudHNBcnJheSA9IG1ha2VVbmlx
dWU8QXJyYXlCdWZmZXJDb250ZW50c0FycmF5PigpOworICAgICAgICB3aGlsZSAoYXJyYXlMZW5n
dGgtLSkgeworICAgICAgICAgICAgdW5zaWduZWQgYnVmZmVyU2l6ZTsKKyAgICAgICAgICAgIGlm
ICghZGVjb2Rlci5kZWNvZGUoYnVmZmVyU2l6ZSkpCisgICAgICAgICAgICAgICAgcmV0dXJuIG51
bGxwdHI7CisgICAgICAgICAgICBpZiAoIWRlY29kZXIudGVtcGxhdGUgYnVmZmVySXNMYXJnZUVu
b3VnaFRvQ29udGFpbjx1aW50OF90PihidWZmZXJTaXplKSkKKyAgICAgICAgICAgICAgICByZXR1
cm4gbnVsbHB0cjsKKworICAgICAgICAgICAgYXV0byBidWZmZXIgPSBHaWdhY2FnZTo6dHJ5TWFs
bG9jKEdpZ2FjYWdlOjpQcmltaXRpdmUsIGJ1ZmZlclNpemUpOworICAgICAgICAgICAgaWYgKCFi
dWZmZXIpCisgICAgICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgICAgICBpZiAo
IWRlY29kZXIuZGVjb2RlRml4ZWRMZW5ndGhEYXRhKHN0YXRpY19jYXN0PHVpbnQ4X3QqPihidWZm
ZXIpLCBidWZmZXJTaXplLCAxKSkgeworICAgICAgICAgICAgICAgIEdpZ2FjYWdlOjpmcmVlKEdp
Z2FjYWdlOjpQcmltaXRpdmUsIGJ1ZmZlcik7CisgICAgICAgICAgICAgICAgcmV0dXJuIG51bGxw
dHI7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBhcnJheUJ1ZmZlckNvbnRlbnRzQXJyYXkt
PmFwcGVuZCh7IGJ1ZmZlciwgYnVmZmVyU2l6ZSwgQXJyYXlCdWZmZXI6OnByaW1pdGl2ZUdpZ2Fj
YWdlRGVzdHJ1Y3RvcigpIH0pOworICAgICAgICB9CisgICAgfQogCi0gICAgdWludDY0X3QgYXJy
YXlMZW5ndGg7Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShhcnJheUxlbmd0aCkpCisjaWYgRU5B
QkxFKFdFQl9SVEMpCisgICAgdWludDY0X3QgZGV0YWNoZWRSVENEYXRhQ2hhbm5lbHNTaXplOwor
ICAgIGlmICghZGVjb2Rlci5kZWNvZGUoZGV0YWNoZWRSVENEYXRhQ2hhbm5lbHNTaXplKSkKICAg
ICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgQVNTRVJUKGFycmF5TGVuZ3RoKTsKLQotICAgIGF1
dG8gYXJyYXlCdWZmZXJDb250ZW50c0FycmF5ID0gbWFrZVVuaXF1ZTxBcnJheUJ1ZmZlckNvbnRl
bnRzQXJyYXk+KCk7Ci0gICAgd2hpbGUgKGFycmF5TGVuZ3RoLS0pIHsKLSAgICAgICAgdW5zaWdu
ZWQgYnVmZmVyU2l6ZTsKLSAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShidWZmZXJTaXplKSkK
LSAgICAgICAgICAgIHJldHVybiBudWxscHRyOwotICAgICAgICBpZiAoIWRlY29kZXIudGVtcGxh
dGUgYnVmZmVySXNMYXJnZUVub3VnaFRvQ29udGFpbjx1aW50OF90PihidWZmZXJTaXplKSkKLSAg
ICAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgICAgIGF1dG8gYnVmZmVyID0gR2lnYWNh
Z2U6OnRyeU1hbGxvYyhHaWdhY2FnZTo6UHJpbWl0aXZlLCBidWZmZXJTaXplKTsKLSAgICAgICAg
aWYgKCFidWZmZXIpCi0gICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICAgICAgaWYgKCFk
ZWNvZGVyLmRlY29kZUZpeGVkTGVuZ3RoRGF0YShzdGF0aWNfY2FzdDx1aW50OF90Kj4oYnVmZmVy
KSwgYnVmZmVyU2l6ZSwgMSkpIHsKLSAgICAgICAgICAgIEdpZ2FjYWdlOjpmcmVlKEdpZ2FjYWdl
OjpQcmltaXRpdmUsIGJ1ZmZlcik7CisgICAgVmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxEZXRhY2hl
ZFJUQ0RhdGFDaGFubmVsPj4gZGV0YWNoZWRSVENEYXRhQ2hhbm5lbHM7CisgICAgd2hpbGUgKGRl
dGFjaGVkUlRDRGF0YUNoYW5uZWxzU2l6ZS0tKSB7CisgICAgICAgIGF1dG8gZGV0YWNoZWRSVENE
YXRhQ2hhbm5lbCA9IERldGFjaGVkUlRDRGF0YUNoYW5uZWw6OmRlY29kZShkZWNvZGVyKTsKKyAg
ICAgICAgaWYgKCFkZXRhY2hlZFJUQ0RhdGFDaGFubmVsKQogICAgICAgICAgICAgcmV0dXJuIG51
bGxwdHI7Ci0gICAgICAgIH0KLSAgICAgICAgYXJyYXlCdWZmZXJDb250ZW50c0FycmF5LT5hcHBl
bmQoeyBidWZmZXIsIGJ1ZmZlclNpemUsIEFycmF5QnVmZmVyOjpwcmltaXRpdmVHaWdhY2FnZURl
c3RydWN0b3IoKSB9KTsKKyAgICAgICAgZGV0YWNoZWRSVENEYXRhQ2hhbm5lbHMuYXBwZW5kKFdU
Rk1vdmUoZGV0YWNoZWRSVENEYXRhQ2hhbm5lbCkpOwogICAgIH0KKyNlbmRpZgogCi0gICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgU2VyaWFsaXplZFNjcmlwdFZhbHVlKFdURk1vdmUoZGF0YSksIFdU
Rk1vdmUoYXJyYXlCdWZmZXJDb250ZW50c0FycmF5KSkpOworICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZShXVEZNb3ZlKGRhdGEpLCBXVEZNb3ZlKGFycmF5QnVm
ZmVyQ29udGVudHNBcnJheSkKKyNpZiBFTkFCTEUoV0VCX1JUQykKKyAgICAgICAgLCBXVEZNb3Zl
KGRldGFjaGVkUlRDRGF0YUNoYW5uZWxzKQorI2VuZGlmCisgICAgICAgICkpOwogfQogCiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IGQ1NjNlNjhhZmQ1Y2EwMzA2YjU2YTJjOTkwNzFhZWQ1
ZWNkNzcwZjEuLjg4Y2Q1MjFlN2NmZTA2YmE4MjVhZmNmODk0NDc2NGMyZDdjOThhMGEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmNwcApAQCAtMzQ5MSw3ICszNDkxLDE2IEBAIFNvY2tldFByb3ZpZGVy
KiBEb2N1bWVudDo6c29ja2V0UHJvdmlkZXIoKQogewogICAgIHJldHVybiBtX3NvY2tldFByb3Zp
ZGVyLmdldCgpOwogfQotICAgIAorCitSZWZQdHI8UlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVy
Q29ubmVjdGlvbj4gRG9jdW1lbnQ6OmNyZWF0ZVJUQ0RhdGFDaGFubmVsUmVtb3RlSGFuZGxlckNv
bm5lY3Rpb24oKQoreworICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgYXV0byogcGFn
ZSA9IHRoaXMtPnBhZ2UoKTsKKyAgICBpZiAoIXBhZ2UpCisgICAgICAgIHJldHVybiBudWxscHRy
OworICAgIHJldHVybiBwYWdlLT5saWJXZWJSVENQcm92aWRlcigpLmNyZWF0ZVJUQ0RhdGFDaGFu
bmVsUmVtb3RlSGFuZGxlckNvbm5lY3Rpb24oKTsKK30KKwogYm9vbCBEb2N1bWVudDo6Y2FuTmF2
aWdhdGUoRnJhbWUqIHRhcmdldEZyYW1lLCBjb25zdCBVUkwmIGRlc3RpbmF0aW9uVVJMKQogewog
ICAgIGlmICghbV9mcmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXggMmQ4MjdkMDg4MjdmODc4
Yzk1ZjE3NzM5M2M0YTI4MzYzMjBmMWIzMS4uNDJiZWE4ODhlYTE5MmFkZGY0YzhjNzdmMGMwYzY5
ZmJlMTQ2YTI1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKQEAgLTcwNSw2ICs3MDUsNyBAQCBwdWJs
aWM6CiAgICAgSURCQ2xpZW50OjpJREJDb25uZWN0aW9uUHJveHkqIGlkYkNvbm5lY3Rpb25Qcm94
eSgpIGZpbmFsOwogI2VuZGlmCiAgICAgU29ja2V0UHJvdmlkZXIqIHNvY2tldFByb3ZpZGVyKCkg
ZmluYWw7CisgICAgUmVmUHRyPFJUQ0RhdGFDaGFubmVsUmVtb3RlSGFuZGxlckNvbm5lY3Rpb24+
IGNyZWF0ZVJUQ0RhdGFDaGFubmVsUmVtb3RlSGFuZGxlckNvbm5lY3Rpb24oKSBmaW5hbDsKIAog
ICAgIGJvb2wgY2FuTmF2aWdhdGUoRnJhbWUqIHRhcmdldEZyYW1lLCBjb25zdCBVUkwmIGRlc3Rp
bmF0aW9uVVJMID0gVVJMKCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlv
bkNvbnRleHQuaAppbmRleCAyYTkyMzA3MTIwYTA3NzkxNmJlMGJiZDNmODkwZjNmNDJiZGRlNTY0
Li44YmEyMzI5N2JiMTlhZjkwN2IxMWIwZGJkMmNhNGQ5MGRlNjVhZDAxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmgKQEAgLTI5LDYgKzI5LDggQEAKIAog
I2luY2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgogI2luY2x1ZGUgIkRPTVRpbWVyLmgiCisjaW5j
bHVkZSAiUlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVyQ29ubmVjdGlvbi5oIgorI2luY2x1ZGUg
IlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlD
b250ZXh0LmgiCiAjaW5jbHVkZSAiU2VydmljZVdvcmtlclR5cGVzLmgiCiAjaW5jbHVkZSAiU2V0
dGluZ3MuaCIKQEAgLTgwLDkgKzgyLDYgQEAgbmFtZXNwYWNlIElEQkNsaWVudCB7CiBjbGFzcyBJ
REJDb25uZWN0aW9uUHJveHk7CiB9CiAKLWVudW0gU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50
aWZpZXJUeXBlIHsgfTsKLXVzaW5nIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyID0g
T2JqZWN0SWRlbnRpZmllcjxTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllclR5cGU+Owot
CiBjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0IDogcHVibGljIFNlY3VyaXR5Q29udGV4dCwg
cHVibGljIENhbk1ha2VXZWFrUHRyPFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ+IHsKIHB1YmxpYzoK
ICAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7CkBAIC0xMTUsNiArMTE0LDggQEAgcHVibGlj
OgogI2VuZGlmCiAgICAgdmlydHVhbCBTb2NrZXRQcm92aWRlciogc29ja2V0UHJvdmlkZXIoKSA9
IDA7CiAKKyAgICB2aXJ0dWFsIFJlZlB0cjxSVENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXJDb25u
ZWN0aW9uPiBjcmVhdGVSVENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXJDb25uZWN0aW9uKCkgeyBy
ZXR1cm4gbnVsbHB0cjsgfQorCiAgICAgdmlydHVhbCBTdHJpbmcgcmVzb3VyY2VSZXF1ZXN0SWRl
bnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIFN0cmluZygpOyB9OwogCiAgICAgYm9vbCBjYW5JbmNs
dWRlRXJyb3JEZXRhaWxzKENhY2hlZFNjcmlwdCosIGNvbnN0IFN0cmluZyYgc291cmNlVVJMKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NjcmlwdEV4ZWN1dGlvbkNvbnRl
eHRJZGVudGlmaWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JpcHRFeGVjdXRpb25D
b250ZXh0SWRlbnRpZmllci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNkNGZjNzMyMzliYzBjMmE5NGM0OGMwNjM3
MjgwNmQ1M2ZlM2Y5MTUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9TY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllci5oCkBAIC0wLDAgKzEsMzUgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi9PYmplY3RJZGVudGlmaWVy
Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworZW51bSBTY3JpcHRFeGVjdXRpb25Db250ZXh0
SWRlbnRpZmllclR5cGUgeyB9OwordXNpbmcgU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZp
ZXIgPSBPYmplY3RJZGVudGlmaWVyPFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyVHlw
ZT47CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L1JUQ0RhdGFDaGFubmVsSGFuZGxlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vUlRDRGF0YUNoYW5uZWxIYW5kbGVyLmgKaW5kZXggMWMwMzQ3ZGY2MGE5ZTI2ODQ5YmE0
ZDg2YjBkODZlMDQyZDNhNzg4Yy4uMWU5NTE0MTYwMDMzNjRlZGFiYTA0ZWJjYjVmN2JhZmU3NGIx
ZTdkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRD
RGF0YUNoYW5uZWxIYW5kbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vUlRDRGF0YUNoYW5uZWxIYW5kbGVyLmgKQEAgLTI4LDcgKzI4LDcgQEAKICNpZiBFTkFC
TEUoV0VCX1JUQykKIAogI2luY2x1ZGUgIlJUQ1ByaW9yaXR5VHlwZS5oIgotI2luY2x1ZGUgIlNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKKyNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0
SWRlbnRpZmllci5oIgogI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgogI2luY2x1ZGUgPHd0Zi90
ZXh0L1dURlN0cmluZy5oPgogCkBAIC00NCw2ICs0NCw5IEBAIHN0cnVjdCBSVENEYXRhQ2hhbm5l
bEluaXQgewogICAgIFJUQ1ByaW9yaXR5VHlwZSBwcmlvcml0eSB7IFJUQ1ByaW9yaXR5VHlwZTo6
TG93IH07CiAKICAgICBSVENEYXRhQ2hhbm5lbEluaXQgaXNvbGF0ZWRDb3B5KCkgY29uc3Q7CisK
KyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7
CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIE9wdGlvbmFsPFJUQ0RhdGFDaGFu
bmVsSW5pdD4gZGVjb2RlKERlY29kZXImKTsKIH07CiAKIGlubGluZSBSVENEYXRhQ2hhbm5lbElu
aXQgUlRDRGF0YUNoYW5uZWxJbml0Ojppc29sYXRlZENvcHkoKSBjb25zdApAQCAtNTMsNiArNTYs
NTAgQEAgaW5saW5lIFJUQ0RhdGFDaGFubmVsSW5pdCBSVENEYXRhQ2hhbm5lbEluaXQ6Omlzb2xh
dGVkQ29weSgpIGNvbnN0CiAgICAgcmV0dXJuIGNvcHk7CiB9CiAKK3RlbXBsYXRlPGNsYXNzIEVu
Y29kZXI+IHZvaWQgUlRDRGF0YUNoYW5uZWxJbml0OjplbmNvZGUoRW5jb2RlciYgZW5jb2Rlcikg
Y29uc3QKK3sKKyAgICBlbmNvZGVyIDw8IG9yZGVyZWQgPDwgbWF4UGFja2V0TGlmZVRpbWUgPDwg
bWF4UmV0cmFuc21pdHMgPDwgcHJvdG9jb2wgPDwgbmVnb3RpYXRlZCA8PCBpZCA8PCBwcmlvcml0
eTsKK30KKwordGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gT3B0aW9uYWw8UlRDRGF0YUNoYW5uZWxJ
bml0PiBSVENEYXRhQ2hhbm5lbEluaXQ6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQoreworICAg
IE9wdGlvbmFsPGJvb2w+IG9yZGVyZWQ7CisgICAgZGVjb2RlciA+PiBvcmRlcmVkOworICAgIGlm
ICghb3JkZXJlZCkKKyAgICAgICAgcmV0dXJuIHsgfTsKKworICAgIE9wdGlvbmFsPHVuc2lnbmVk
IHNob3J0PiBtYXhQYWNrZXRMaWZlVGltZTsKKyAgICBkZWNvZGVyID4+IG1heFBhY2tldExpZmVU
aW1lOworICAgIGlmICghbWF4UGFja2V0TGlmZVRpbWUpCisgICAgICAgIHJldHVybiB7IH07CisK
KyAgICBPcHRpb25hbDx1bnNpZ25lZCBzaG9ydD4gbWF4UmV0cmFuc21pdHM7CisgICAgZGVjb2Rl
ciA+PiBtYXhSZXRyYW5zbWl0czsKKyAgICBpZiAoIW1heFJldHJhbnNtaXRzKQorICAgICAgICBy
ZXR1cm4geyB9OworCisgICAgU3RyaW5nIHByb3RvY29sOworICAgIGlmICghZGVjb2Rlci5kZWNv
ZGUocHJvdG9jb2wpKQorICAgICAgICByZXR1cm4geyB9OworCisgICAgT3B0aW9uYWw8Ym9vbD4g
bmVnb3RpYXRlZDsKKyAgICBkZWNvZGVyID4+IG5lZ290aWF0ZWQ7CisgICAgaWYgKCFuZWdvdGlh
dGVkKQorICAgICAgICByZXR1cm4geyB9OworCisgICAgT3B0aW9uYWw8dW5zaWduZWQgc2hvcnQ+
IGlkOworICAgIGRlY29kZXIgPj4gaWQ7CisgICAgaWYgKCFpZCkKKyAgICAgICAgcmV0dXJuIHsg
fTsKKworICAgIE9wdGlvbmFsPFJUQ1ByaW9yaXR5VHlwZT4gcHJpb3JpdHk7CisgICAgZGVjb2Rl
ciA+PiBwcmlvcml0eTsKKyAgICBpZiAoIXByaW9yaXR5KQorICAgICAgICByZXR1cm4geyB9Owor
CisgICAgcmV0dXJuIFJUQ0RhdGFDaGFubmVsSW5pdCB7ICpvcmRlcmVkLCAqbWF4UGFja2V0TGlm
ZVRpbWUsICptYXhSZXRyYW5zbWl0cywgV1RGTW92ZShwcm90b2NvbCksICpuZWdvdGlhdGVkLCAq
aWQsICpwcmlvcml0eSB9OworfQorCiBjbGFzcyBSVENEYXRhQ2hhbm5lbEhhbmRsZXJDbGllbnQ7
CiAKIGNsYXNzIFJUQ0RhdGFDaGFubmVsSGFuZGxlciB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbElkZW50aWZpZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsSWRlbnRpZmll
ci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmUzNDAyZWJhYWYzMzY0MjQ3YTQzMWFhZWViZWM5NDU4ZWQ1ZDBmNzkK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9S
VENEYXRhQ2hhbm5lbElkZW50aWZpZXIuaApAQCAtMCwwICsxLDYzIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICog
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisg
KiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiUHJvY2Vzc0lkZW50aWZpZXIuaCIKKyNpbmNsdWRl
IDx3dGYvT2JqZWN0SWRlbnRpZmllci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2VudW0g
UlRDRGF0YUNoYW5uZWxMb2NhbElkZW50aWZpZXJUeXBlIHsgfTsKK3VzaW5nIFJUQ0RhdGFDaGFu
bmVsTG9jYWxJZGVudGlmaWVyID0gT2JqZWN0SWRlbnRpZmllcjxSVENEYXRhQ2hhbm5lbExvY2Fs
SWRlbnRpZmllclR5cGU+Oworc3RydWN0IFJUQ0RhdGFDaGFubmVsSWRlbnRpZmllciB7CisgICAg
UHJvY2Vzc0lkZW50aWZpZXIgcHJvY2Vzc0lkZW50aWZpZXI7CisgICAgUlRDRGF0YUNoYW5uZWxM
b2NhbElkZW50aWZpZXIgY2hhbm5lbElkZW50aWZpZXI7CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBF
bmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGU8Y2xhc3Mg
RGVjb2Rlcj4gc3RhdGljIE9wdGlvbmFsPFJUQ0RhdGFDaGFubmVsSWRlbnRpZmllcj4gZGVjb2Rl
KERlY29kZXImKTsKK307CisKK3RlbXBsYXRlPGNsYXNzIEVuY29kZXI+CitpbmxpbmUgdm9pZCBS
VENEYXRhQ2hhbm5lbElkZW50aWZpZXI6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAor
eworICAgIGVuY29kZXIgPDwgcHJvY2Vzc0lkZW50aWZpZXIgPDwgY2hhbm5lbElkZW50aWZpZXI7
Cit9CisKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+CitpbmxpbmUgT3B0aW9uYWw8UlRDRGF0YUNo
YW5uZWxJZGVudGlmaWVyPiBSVENEYXRhQ2hhbm5lbElkZW50aWZpZXI6OmRlY29kZShEZWNvZGVy
JiBkZWNvZGVyKQoreworICAgIE9wdGlvbmFsPFByb2Nlc3NJZGVudGlmaWVyPiBwcm9jZXNzSWRl
bnRpZmllcjsKKyAgICBkZWNvZGVyID4+IHByb2Nlc3NJZGVudGlmaWVyOworICAgIGlmICghcHJv
Y2Vzc0lkZW50aWZpZXIpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBPcHRp
b25hbDxSVENEYXRhQ2hhbm5lbExvY2FsSWRlbnRpZmllcj4gY2hhbm5lbElkZW50aWZpZXI7Cisg
ICAgZGVjb2RlciA+PiBjaGFubmVsSWRlbnRpZmllcjsKKyAgICBpZiAoIWNoYW5uZWxJZGVudGlm
aWVyKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworICAgIHJldHVybiBSVENEYXRhQ2hh
bm5lbElkZW50aWZpZXIgeyAqcHJvY2Vzc0lkZW50aWZpZXIsICpjaGFubmVsSWRlbnRpZmllciB9
OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXJDb25uZWN0
aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5l
bFJlbW90ZUhhbmRsZXJDb25uZWN0aW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTQ2OTIxMzU5NjNkNmU2YjY1
MjVhMzQ5OWEzODk0YTRjZDcxODQxNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsUmVtb3RlSGFuZGxlckNvbm5lY3Rp
b24uaApAQCAtMCwwICsxLDQ1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisgKiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5j
bHVkZSAiUlRDRGF0YUNoYW5uZWxJZGVudGlmaWVyLmgiCisjaW5jbHVkZSAiU2NyaXB0RXhlY3V0
aW9uQ29udGV4dElkZW50aWZpZXIuaCIKKyNpbmNsdWRlIDx3dGYvVGhyZWFkU2FmZVJlZkNvdW50
ZWQuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitjbGFzcyBSVENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXI7CisKK2NsYXNzIFJUQ0Rh
dGFDaGFubmVsUmVtb3RlSGFuZGxlckNvbm5lY3Rpb24gOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNv
dW50ZWQ8UlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVyQ29ubmVjdGlvbiwgV1RGOjpEZXN0cnVj
dGlvblRocmVhZDo6TWFpbj4geworcHVibGljOgorICAgIHZpcnR1YWwgflJUQ0RhdGFDaGFubmVs
UmVtb3RlSGFuZGxlckNvbm5lY3Rpb24oKSA9IGRlZmF1bHQ7CisKKyAgICB2aXJ0dWFsIHZvaWQg
Y29ubmVjdFRvU291cmNlKFJUQ0RhdGFDaGFubmVsUmVtb3RlSGFuZGxlciYsIFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHRJZGVudGlmaWVyLCBSVENEYXRhQ2hhbm5lbElkZW50aWZpZXIsIFJUQ0RhdGFD
aGFubmVsSWRlbnRpZmllcikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzZW5kRGF0YShSVENEYXRh
Q2hhbm5lbElkZW50aWZpZXIsIGJvb2wgaXNSYXcsIGNvbnN0IHVuc2lnbmVkIGNoYXIqLCBzaXpl
X3QpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgY2xvc2UoUlRDRGF0YUNoYW5uZWxJZGVudGlmaWVy
KSA9IDA7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbFJlbW90ZVNvdXJjZUNv
bm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ0RhdGFD
aGFubmVsUmVtb3RlU291cmNlQ29ubmVjdGlvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQxMjQ3ZjY4NGY3NjA5
MGE2ZDJiZTI1MGE1NTg4NjRjY2YwNDIxNTcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbFJlbW90ZVNvdXJjZUNvbm5l
Y3Rpb24uaApAQCAtMCwwICsxLDQ5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICog
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisgKiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisj
aWYgRU5BQkxFKFdFQl9SVEMpCisKKyNpbmNsdWRlICJSVENEYXRhQ2hhbm5lbElkZW50aWZpZXIu
aCIKKyNpbmNsdWRlICJSVENEYXRhQ2hhbm5lbFN0YXRlLmgiCisjaW5jbHVkZSA8d3RmL1RocmVh
ZFNhZmVSZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgUlRDRGF0YUNoYW5uZWxSZW1vdGVTb3VyY2VDb25u
ZWN0aW9uIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFJUQ0RhdGFDaGFubmVsUmVtb3Rl
U291cmNlQ29ubmVjdGlvbiwgV1RGOjpEZXN0cnVjdGlvblRocmVhZDo6TWFpbj4geworcHVibGlj
OgorICAgIHZpcnR1YWwgflJUQ0RhdGFDaGFubmVsUmVtb3RlU291cmNlQ29ubmVjdGlvbigpID0g
ZGVmYXVsdDsKKworICAgIHZpcnR1YWwgdm9pZCBkaWRDaGFuZ2VSZWFkeVN0YXRlKFJUQ0RhdGFD
aGFubmVsSWRlbnRpZmllciwgUlRDRGF0YUNoYW5uZWxTdGF0ZSkgPSAwOworICAgIHZpcnR1YWwg
dm9pZCBkaWRSZWNlaXZlU3RyaW5nRGF0YShSVENEYXRhQ2hhbm5lbElkZW50aWZpZXIsIGNvbnN0
IFN0cmluZyYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVJhd0RhdGEoUlRDRGF0
YUNoYW5uZWxJZGVudGlmaWVyLCBjb25zdCBjaGFyKiwgc2l6ZV90KSA9IDA7CisgICAgdmlydHVh
bCB2b2lkIGRpZERldGVjdEVycm9yKFJUQ0RhdGFDaGFubmVsSWRlbnRpZmllcikgPSAwOworICAg
IHZpcnR1YWwgdm9pZCBidWZmZXJlZEFtb3VudElzRGVjcmVhc2luZyhSVENEYXRhQ2hhbm5lbElk
ZW50aWZpZXIsIHNpemVfdCkgPSAwOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisj
ZW5kaWYgLy8gRU5BQkxFKFdFQl9SVEMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbFN0YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbFN0YXRlLmgKaW5kZXggMmU5OTYwNjdk
NGZiZjIwZTVhNDNiNDJkZTUzOTI0NjFiZDczODQ1ZS4uYjY5ZmU4ODBkNDNmYWMzZjFkYzAwMzE1
MDlmOTVkZGU3NzNjNGMyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vUlRDRGF0YUNoYW5uZWxTdGF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsU3RhdGUuaApAQCAtMjcsOSArMjcsMTEgQEAK
IAogI2lmIEVOQUJMRShXRUJfUlRDKQogCisjaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMuaD4KKwog
bmFtZXNwYWNlIFdlYkNvcmUgewogCi1lbnVtIGNsYXNzIFJUQ0RhdGFDaGFubmVsU3RhdGUgewor
ZW51bSBjbGFzcyBSVENEYXRhQ2hhbm5lbFN0YXRlIDogdWludDhfdCB7CiAgICAgQ29ubmVjdGlu
ZywKICAgICBPcGVuLAogICAgIENsb3NpbmcsCkBAIC0zOCw0ICs0MCwxOSBAQCBlbnVtIGNsYXNz
IFJUQ0RhdGFDaGFubmVsU3RhdGUgewogCiB9OyAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCisKK25h
bWVzcGFjZSBXVEYgeworCit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OlJU
Q0RhdGFDaGFubmVsU3RhdGU+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAorICAg
ICAgICBXZWJDb3JlOjpSVENEYXRhQ2hhbm5lbFN0YXRlLAorICAgICAgICBXZWJDb3JlOjpSVENE
YXRhQ2hhbm5lbFN0YXRlOjpDb25uZWN0aW5nLAorICAgICAgICBXZWJDb3JlOjpSVENEYXRhQ2hh
bm5lbFN0YXRlOjpPcGVuLAorICAgICAgICBXZWJDb3JlOjpSVENEYXRhQ2hhbm5lbFN0YXRlOjpD
bG9zaW5nLAorICAgICAgICBXZWJDb3JlOjpSVENEYXRhQ2hhbm5lbFN0YXRlOjpDbG9zZWQKKyAg
ICA+OworfTsKKworfQorCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL1JUQ1ByaW9yaXR5VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vUlRDUHJpb3JpdHlUeXBlLmgKaW5kZXggNDVlYzNlOTU1ZjM2ZWY0NWRk
NGQ4Y2Y1NTY3M2YzZDJhN2JiMGE0Yy4uYTMxM2JkODhjY2VmMWFmOTgzNjY4YmFkMjk0MTk2ZDlj
YjliNTQ0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
UlRDUHJpb3JpdHlUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vUlRDUHJpb3JpdHlUeXBlLmgKQEAgLTI3LDEwICsyNywyNiBAQAogCiAjaWYgRU5BQkxFKFdF
Ql9SVEMpCiAKKyNpbmNsdWRlIDx3dGYvRW51bVRyYWl0cy5oPgorCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIGVudW0gY2xhc3MgUlRDUHJpb3JpdHlUeXBlIHsgVmVyeUxvdywgTG93LCBNZWRpdW0s
IEhpZ2ggfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCituYW1lc3BhY2UgV1RGIHsKKwor
dGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpSVENQcmlvcml0eVR5cGU+IHsK
KyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAorICAgICAgICBXZWJDb3JlOjpSVENQcmlv
cml0eVR5cGUsCisgICAgICAgIFdlYkNvcmU6OlJUQ1ByaW9yaXR5VHlwZTo6VmVyeUxvdywKKyAg
ICAgICAgV2ViQ29yZTo6UlRDUHJpb3JpdHlUeXBlOjpMb3csCisgICAgICAgIFdlYkNvcmU6OlJU
Q1ByaW9yaXR5VHlwZTo6TWVkaXVtLAorICAgICAgICBXZWJDb3JlOjpSVENQcmlvcml0eVR5cGU6
OkhpZ2gKKyAgICA+OworfTsKKworfQorCiAjZW5kaWYgLy8gRU5BQkxFKFdFQl9SVEMpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGli
V2ViUlRDUHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xp
YndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5oCmluZGV4IGNhMDA5MjFkYzQ2MWU4ZWJiZWJhZmMy
MWRjNTdiN2Q3M2JiZmMzNjYuLjBkMGQ1NTgwNzZkNzJiNjI4NGM4ZjIwMWIyM2FkNDcyNTM0YTU3
MjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndl
YnJ0Yy9MaWJXZWJSVENQcm92aWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5oCkBAIC0yNyw2ICsyNyw3IEBA
CiAKICNpbmNsdWRlICJEb2N1bWVudElkZW50aWZpZXIuaCIKICNpbmNsdWRlICJMaWJXZWJSVENN
YWNyb3MuaCIKKyNpbmNsdWRlICJSVENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXJDb25uZWN0aW9u
LmgiCiAjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CiAjaW5jbHVkZSA8d3RmL0V4
cGVjdGVkLmg+CiAjaW5jbHVkZSA8d3RmL1VuaXF1ZVJlZi5oPgpAQCAtOTEsNiArOTIsOCBAQCBw
dWJsaWM6CiAgICAgICAgIGNhbGxiYWNrKG1ha2VVbmV4cGVjdGVkKE1ETlNSZWdpc3RlckVycm9y
OjpOb3RJbXBsZW1lbnRlZCkpOwogICAgIH0KIAorICAgIHZpcnR1YWwgUmVmUHRyPFJUQ0RhdGFD
aGFubmVsUmVtb3RlSGFuZGxlckNvbm5lY3Rpb24+IGNyZWF0ZVJUQ0RhdGFDaGFubmVsUmVtb3Rl
SGFuZGxlckNvbm5lY3Rpb24oKSB7IHJldHVybiBudWxscHRyOyB9CisKICNpZiBVU0UoTElCV0VC
UlRDKQogICAgIHZpcnR1YWwgcnRjOjpzY29wZWRfcmVmcHRyPHdlYnJ0Yzo6UGVlckNvbm5lY3Rp
b25JbnRlcmZhY2U+IGNyZWF0ZVBlZXJDb25uZWN0aW9uKHdlYnJ0Yzo6UGVlckNvbm5lY3Rpb25P
YnNlcnZlciYsIHJ0Yzo6UGFja2V0U29ja2V0RmFjdG9yeSosIHdlYnJ0Yzo6UGVlckNvbm5lY3Rp
b25JbnRlcmZhY2U6OlJUQ0NvbmZpZ3VyYXRpb24mJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuY3BwIGIvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5jcHAKaW5kZXggOTc5OWFhZWE4YWMxNTgyYjRlYzdiZjY5
NjIyZmQ0ZmQ4Y2I2NGZiYS4uNzRiNDUyNmZkNDlkZGQyYzYzYTNlNDY2YjYxMzkzNTA2MWI3Mjlh
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5jcHAKQEAg
LTE2MSw2ICsxNjEsMTcgQEAgU29ja2V0UHJvdmlkZXIqIFdvcmtlckdsb2JhbFNjb3BlOjpzb2Nr
ZXRQcm92aWRlcigpCiAgICAgcmV0dXJuIG1fc29ja2V0UHJvdmlkZXIuZ2V0KCk7CiB9CiAKK1Jl
ZlB0cjxSVENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXJDb25uZWN0aW9uPiBXb3JrZXJHbG9iYWxT
Y29wZTo6Y3JlYXRlUlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVyQ29ubmVjdGlvbigpCit7Cisg
ICAgUmVmUHRyPFJUQ0RhdGFDaGFubmVsUmVtb3RlSGFuZGxlckNvbm5lY3Rpb24+IGNvbm5lY3Rp
b247CisgICAgY2FsbE9uTWFpblRocmVhZEFuZFdhaXQoW3dvcmtlclRocmVhZCA9IG1ha2VSZWYo
dGhyZWFkKCkpLCAmY29ubmVjdGlvbl0oKSBtdXRhYmxlIHsKKyAgICAgICAgY29ubmVjdGlvbiA9
IHdvcmtlclRocmVhZC0+d29ya2VyTG9hZGVyUHJveHkoKS5jcmVhdGVSVENEYXRhQ2hhbm5lbFJl
bW90ZUhhbmRsZXJDb25uZWN0aW9uKCk7CisgICAgfSk7CisgICAgQVNTRVJUKGNvbm5lY3Rpb24p
OworCisgICAgcmV0dXJuIGNvbm5lY3Rpb247Cit9CisKICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRB
QkFTRSkKIAogSURCQ2xpZW50OjpJREJDb25uZWN0aW9uUHJveHkqIFdvcmtlckdsb2JhbFNjb3Bl
OjppZGJDb25uZWN0aW9uUHJveHkoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9Xb3JrZXJHbG9iYWxTY29wZS5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9i
YWxTY29wZS5oCmluZGV4IDc0Nzk1ZjVjMGY5YTJhMzVkMDA5MzAxMmFkMThmNTdlMzE3ZjgyNzEu
LjEyN2EyOTRlOTZmM2IyYjM5YzgzNTk5N2JmMDVkYzUyOWFhNTc5MTggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmgKQEAgLTE0Niw2ICsxNDYsNyBAQCBwcml2
YXRlOgogICAgIEV2ZW50VGFyZ2V0KiBlcnJvckV2ZW50VGFyZ2V0KCkgZmluYWw7CiAgICAgU3Ry
aW5nIHJlc291cmNlUmVxdWVzdElkZW50aWZpZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2lk
ZW50aWZpZXI7IH0KICAgICBTb2NrZXRQcm92aWRlciogc29ja2V0UHJvdmlkZXIoKSBmaW5hbDsK
KyAgICBSZWZQdHI8UlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVyQ29ubmVjdGlvbj4gY3JlYXRl
UlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVyQ29ubmVjdGlvbigpIGZpbmFsOwogCiAgICAgYm9v
bCBzaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3koKSBjb25zdCBmaW5h
bCB7IHJldHVybiBtX3Nob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeTsg
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckxvYWRlclByb3h5
LmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckxvYWRlclByb3h5LmgKaW5kZXggZWU2
NDY5ZDVkNjE0ZTNhZDgyN2EyMjUzM2NkYzBmNGE0OTIyYTUxOS4uZTdhMzBmYzk4YjllZTUxNTgx
MjI2Yjk1NmM4YmE0NTRjMTE3MzJhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9Xb3JrZXJMb2FkZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2Vy
TG9hZGVyUHJveHkuaApAQCAtNTAsNiArNTAsOCBAQCBwdWJsaWM6CiAgICAgLy8gQ3JlYXRlcyBh
IGNhY2hlIHN0b3JhZ2UgY29ubmVjdGlvbiB0byBiZSB1c2VkIG9uIHRoZSBtYWluIHRocmVhZC4g
TWV0aG9kIG11c3QgYmUgY2FsbGVkIG9uIHRoZSBtYWluIHRocmVhZC4KICAgICB2aXJ0dWFsIFJl
ZlB0cjxDYWNoZVN0b3JhZ2VDb25uZWN0aW9uPiBjcmVhdGVDYWNoZVN0b3JhZ2VDb25uZWN0aW9u
KCkgPSAwOwogCisgICAgdmlydHVhbCBSZWZQdHI8UlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVy
Q29ubmVjdGlvbj4gY3JlYXRlUlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVyQ29ubmVjdGlvbigp
ID0gMDsKKwogICAgIC8vIFBvc3RzIGEgdGFzayB0byB0aGUgdGhyZWFkIHdoaWNoIHJ1bnMgdGhl
IGxvYWRpbmcgY29kZSAobm9ybWFsbHksIHRoZSBtYWluIHRocmVhZCkuCiAgICAgdmlydHVhbCB2
b2lkIHBvc3RUYXNrVG9Mb2FkZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6VGFzayYmKSA9IDA7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJv
eHkuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5jcHAK
aW5kZXggOTQxNDVkNWQ0M2NkZWFhNTY1ZDEyZWViMWI4ODY0M2IwYWZmNmYxYS4uYjEwN2Q2NTcx
NWRhOGQ3ZjMzOGVjYWYwMGJmNDgxMmYzNzVmNWUxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5jcHAKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNs
dWRlICJFcnJvckV2ZW50LmgiCiAjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgogI2luY2x1ZGUgIkZl
dGNoUmVxdWVzdENyZWRlbnRpYWxzLmgiCisjaW5jbHVkZSAiTGliV2ViUlRDUHJvdmlkZXIuaCIK
ICNpbmNsdWRlICJNZXNzYWdlRXZlbnQuaCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAi
U2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgpAQCAtMTc1LDYgKzE3NiwxNSBAQCBSZWZQdHI8Q2Fj
aGVTdG9yYWdlQ29ubmVjdGlvbj4gV29ya2VyTWVzc2FnaW5nUHJveHk6OmNyZWF0ZUNhY2hlU3Rv
cmFnZUNvbm5lY3RpbwogICAgIHJldHVybiBkb2N1bWVudC5wYWdlKCktPmNhY2hlU3RvcmFnZVBy
b3ZpZGVyKCkuY3JlYXRlQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbigpOwogfQogCitSZWZQdHI8UlRD
RGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVyQ29ubmVjdGlvbj4gV29ya2VyTWVzc2FnaW5nUHJveHk6
OmNyZWF0ZVJUQ0RhdGFDaGFubmVsUmVtb3RlSGFuZGxlckNvbm5lY3Rpb24oKQoreworICAgIEFT
U0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgYXV0byYgZG9jdW1lbnQgPSBkb3duY2FzdDxEb2N1
bWVudD4oKm1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dCk7CisgICAgaWYgKCFkb2N1bWVudC5wYWdl
KCkpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiBkb2N1bWVudC5wYWdlKCkt
PmxpYldlYlJUQ1Byb3ZpZGVyKCkuY3JlYXRlUlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVyQ29u
bmVjdGlvbigpOworfQorCiBib29sIFdvcmtlck1lc3NhZ2luZ1Byb3h5Ojpwb3N0VGFza0Zvck1v
ZGVUb1dvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlRh
c2smJiB0YXNrLCBjb25zdCBTdHJpbmcmIG1vZGUpCiB7CiAgICAgaWYgKG1fYXNrZWRUb1Rlcm1p
bmF0ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5n
UHJveHkuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuaApp
bmRleCBkOWU4MWUxNTdhMGY0ODUyZTQ5YjU5ZDI1NjZhOGE4MGY1ZjgxOGFlLi5iZTlmNDYwZjM4
ZTJkNTU2MzM1ZTc2YzlmNWNhYzA4ZmU4OTI2MTgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5oCkBAIC04MSw2ICs4MSw3IEBAIHByaXZhdGU6CiAg
ICAgYm9vbCBpc1dvcmtlck1lc3NhZ2luZ1Byb3h5KCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1
ZTsgfQogICAgIHZvaWQgcG9zdFRhc2tUb0xvYWRlcihTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpU
YXNrJiYpIGZpbmFsOwogICAgIFJlZlB0cjxDYWNoZVN0b3JhZ2VDb25uZWN0aW9uPiBjcmVhdGVD
YWNoZVN0b3JhZ2VDb25uZWN0aW9uKCkgZmluYWw7CisgICAgUmVmUHRyPFJUQ0RhdGFDaGFubmVs
UmVtb3RlSGFuZGxlckNvbm5lY3Rpb24+IGNyZWF0ZVJUQ0RhdGFDaGFubmVsUmVtb3RlSGFuZGxl
ckNvbm5lY3Rpb24oKSBmaW5hbDsKIAogICAgIHZvaWQgd29ya2VyVGhyZWFkQ3JlYXRlZChEZWRp
Y2F0ZWRXb3JrZXJUaHJlYWQmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZFByb3h5LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWRQcm94eS5j
cHAKaW5kZXggZDJjYWQ5NjEyZjI0YzE1MGRkZWQ3YTFjZDk4YjI4NmNmYTgyYzQwOS4uNDVkY2Fm
M2Y3MTQ2ZjNhYTZiMWRjNDQxOWUwNmRiZjJjYzQ5YjU4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZFByb3h5LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29y
a2VyVGhyZWFkUHJveHkuY3BwCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAiRmV0Y2hMb2Fk
ZXIuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCisjaW5j
bHVkZSAiTGliV2ViUlRDUHJvdmlkZXIuaCIKICNpbmNsdWRlICJMb2FkZXJTdHJhdGVneS5oIgog
I2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cy5o
IgpAQCAtMTYzLDYgKzE2NCwxMiBAQCBSZWZQdHI8Q2FjaGVTdG9yYWdlQ29ubmVjdGlvbj4gU2Vy
dmljZVdvcmtlclRocmVhZFByb3h5OjpjcmVhdGVDYWNoZVN0b3JhZ2VDb25uZQogICAgIHJldHVy
biBtX2NhY2hlU3RvcmFnZUNvbm5lY3Rpb247CiB9CiAKK1JlZlB0cjxSVENEYXRhQ2hhbm5lbFJl
bW90ZUhhbmRsZXJDb25uZWN0aW9uPiBTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHk6OmNyZWF0ZVJU
Q0RhdGFDaGFubmVsUmVtb3RlSGFuZGxlckNvbm5lY3Rpb24oKQoreworICAgIEFTU0VSVChpc01h
aW5UaHJlYWQoKSk7CisgICAgcmV0dXJuIG1fcGFnZS0+bGliV2ViUlRDUHJvdmlkZXIoKS5jcmVh
dGVSVENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXJDb25uZWN0aW9uKCk7Cit9CisKIHN0ZDo6dW5p
cXVlX3B0cjxGZXRjaExvYWRlcj4gU2VydmljZVdvcmtlclRocmVhZFByb3h5OjpjcmVhdGVCbG9i
TG9hZGVyKEZldGNoTG9hZGVyQ2xpZW50JiBjbGllbnQsIGNvbnN0IFVSTCYgYmxvYlVSTCkKIHsK
ICAgICBhdXRvIGxvYWRlciA9IG1ha2VVbmlxdWU8RmV0Y2hMb2FkZXI+KGNsaWVudCwgbnVsbHB0
cik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9T
ZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vydmlj
ZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWRQcm94eS5oCmluZGV4IGExZDRkOTU5NTMxNGFl
ZmQwNDEwYmExYmMwNjg1M2EzNWQ5NmU5OTMuLjM2ZDBmZjg4OGJmZDFhZmM2ZGQ2OGVhYzM5MmFl
Nzk1ZmIxOGNkN2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9j
b250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWRQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWRQcm94eS5oCkBAIC04OCw2
ICs4OCw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBwb3N0VGFza0Zvck1vZGVUb1dvcmtlck9yV29y
a2xldEdsb2JhbFNjb3BlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlRhc2smJiwgY29uc3QgU3Ry
aW5nJiBtb2RlKSBmaW5hbDsKICAgICB2b2lkIHBvc3RUYXNrVG9Mb2FkZXIoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dDo6VGFzayYmKSBmaW5hbDsKICAgICBSZWZQdHI8Q2FjaGVTdG9yYWdlQ29ubmVj
dGlvbj4gY3JlYXRlQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbigpIGZpbmFsOworICAgIFJlZlB0cjxS
VENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXJDb25uZWN0aW9uPiBjcmVhdGVSVENEYXRhQ2hhbm5l
bFJlbW90ZUhhbmRsZXJDb25uZWN0aW9uKCkgZmluYWw7CiAKICAgICAvLyBXb3JrZXJEZWJ1Z2dl
clByb3h5CiAgICAgdm9pZCBwb3N0TWVzc2FnZVRvRGVidWdnZXIoY29uc3QgU3RyaW5nJikgZmlu
YWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dl
YktpdC9DTWFrZUxpc3RzLnR4dAppbmRleCAzZWE3OTQ2MDg0MTA3MDY1YmU4MjhkNGRhMmE5ZDZk
YTYwN2U5OTIwLi5kNmNkMDhlYTQwNDE0NDE1NTBkYjA1Njc1MjMxNTY3NGU0M2E4MGJhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQv
Q01ha2VMaXN0cy50eHQKQEAgLTE3MSw2ICsxNzEsNyBAQCBzZXQoV2ViS2l0X01FU1NBR0VTX0lO
X0ZJTEVTCiAgICAgTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtNRE5TUmVnaXN0ZXIKICAg
ICBOZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ01vbml0b3IKICAgICBOZXR3b3JrUHJv
Y2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVyCisgICAgTmV0d29ya1Byb2Nlc3Mvd2VicnRj
L1JUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlclByb3h5CiAKICAgICBQbHVnaW5Qcm9jZXNzL1Bs
dWdpbkNvbnRyb2xsZXJQcm94eQogICAgIFBsdWdpblByb2Nlc3MvUGx1Z2luUHJvY2VzcwpAQCAt
MjQ1LDYgKzI0Niw3IEBAIHNldChXZWJLaXRfTUVTU0FHRVNfSU5fRklMRVMKICAgICBXZWJQcm9j
ZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSQogCiAgICAgV2ViUHJvY2Vzcy9OZXR3b3JrL3dl
YnJ0Yy9MaWJXZWJSVENOZXR3b3JrCisgICAgV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9SVENE
YXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXIKICAgICBXZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL1dl
Yk1ETlNSZWdpc3RlcgogICAgIFdlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvV2ViUlRDTW9uaXRv
cgogICAgIFdlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvV2ViUlRDUmVzb2x2ZXIKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdCBiL1NvdXJj
ZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAppbmRleCBmYjYyMTNjNGNj
MzZmMzM4NTI4YzE4Yjk0OGY5YWM4ODkzOGIxMmRlLi45ZjIyOTcxMDcxNmI0MTkzMDBhMjQ2ZDBk
M2ZiYjgwZmNlYTg2YmIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2Vz
LWlucHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1
dC54Y2ZpbGVsaXN0CkBAIC03MCw2ICs3MCw3IEBAICQoUFJPSkVDVF9ESVIpL05ldHdvcmtQcm9j
ZXNzL21hYy9jb20uYXBwbGUuV2ViS2l0Lk5ldHdvcmtQcm9jZXNzLnNiLmluCiAkKFBST0pFQ1Rf
RElSKS9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya01ETlNSZWdpc3Rlci5tZXNzYWdlcy5p
bgogJChQUk9KRUNUX0RJUikvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENNb25pdG9y
Lm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29y
a1JUQ1Byb3ZpZGVyLm1lc3NhZ2VzLmluCiskKFBST0pFQ1RfRElSKS9OZXR3b3JrUHJvY2Vzcy93
ZWJydGMvUlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KICQoUFJP
SkVDVF9ESVIpL1BsdWdpblByb2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5Lm1lc3NhZ2VzLmlu
CiAkKFBST0pFQ1RfRElSKS9QbHVnaW5Qcm9jZXNzL1BsdWdpblByb2Nlc3MubWVzc2FnZXMuaW4K
ICQoUFJPSkVDVF9ESVIpL1BsdWdpblByb2Nlc3MvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2Fn
ZXMuaW4KQEAgLTE2OCw2ICsxNjksNyBAQCAkKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL05ldHdv
cmsvV2ViUmVzb3VyY2VMb2FkZXIubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nl
c3MvTmV0d29yay9XZWJTb2NrZXRDaGFubmVsLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9X
ZWJQcm9jZXNzL05ldHdvcmsvV2ViU29ja2V0U3RyZWFtLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1Rf
RElSKS9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ05ldHdvcmsubWVzc2FnZXMu
aW4KKyQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvUlRDRGF0YUNoYW5u
ZWxSZW1vdGVNYW5hZ2VyLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL05l
dHdvcmsvd2VicnRjL1dlYk1ETlNSZWdpc3Rlci5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikv
V2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9XZWJSVENNb25pdG9yLm1lc3NhZ2VzLmluCiAkKFBS
T0pFQ1RfRElSKS9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL1dlYlJUQ1Jlc29sdmVyLm1lc3Nh
Z2VzLmluCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54
Y2ZpbGVsaXN0IGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlz
dAppbmRleCBmMjU1YjczYzJhMGYxMGM4NjJjMWMxOGZlOTVhNGY3M2ZjZjcxODAxLi44Mzk4Y2Zj
MDEzZDNjYWZmNTdjN2NmMWQyOGFmYTQzOGUzN2ZkZjIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJLaXQv
RGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKQEAgLTEzMyw2ICsxMzMsMTIgQEAgJChC
VUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUGx1Z2luUHJvY2Vzc1By
b3h5TWVzc2FnZXNSZXBsaWVzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJLaXQyL1BsdWdpblByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAogJChCVUlMVF9QUk9EVUNU
U19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUGx1Z2luUHJveHlNZXNzYWdlcy5oCiAkKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9QbHVnaW5Qcm94eU1lc3Nh
Z2VzUmVwbGllcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0
Mi9SVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiskKEJVSUxU
X1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SVENEYXRhQ2hhbm5lbFJlbW90
ZU1hbmFnZXJNZXNzYWdlcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMv
V2ViS2l0Mi9SVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXJNZXNzYWdlc1JlcGxpZXMuaAorJChC
VUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUlRDRGF0YUNoYW5uZWxS
ZW1vdGVNYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXJQcm94
eU1lc3NhZ2VzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQy
L1JUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlclByb3h5TWVzc2FnZXNSZXBsaWVzLmgKICQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUF1ZGlvRGVzdGlu
YXRpb25NYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXJNZXNzYWdl
cy5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90
ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyTWVzc2FnZXMuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5t
YWtlCmluZGV4IGI2YTBjMDQzYmJiNmQ4MzhiNjdkMDczNTEzODY3MTlhYWJmYjAyOTMuLjVmZDU4
ZDIyNGE3YzdkOTRjNzgyMjRjYTUwNTYwMWEzYjJmZTczNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3Vy
Y2VzLm1ha2UKQEAgLTEzMiw2ICsxMzIsNyBAQCBNRVNTQUdFX1JFQ0VJVkVSUyA9IFwKIAlOZXR3
b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya01ETlNSZWdpc3RlciBcCiAJTmV0d29ya1Byb2Nlc3Mv
d2VicnRjL05ldHdvcmtSVENQcm92aWRlciBcCiAJTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdv
cmtSVENNb25pdG9yIFwKKwlOZXR3b3JrUHJvY2Vzcy93ZWJydGMvUlRDRGF0YUNoYW5uZWxSZW1v
dGVNYW5hZ2VyUHJveHkgXAogCU5ldHdvcmtQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFuYWdl
ciBcCiAJU2hhcmVkL1BsdWdpbnMvTlBPYmplY3RNZXNzYWdlUmVjZWl2ZXIgXAogCVNoYXJlZC9B
dXhpbGlhcnlQcm9jZXNzIFwKQEAgLTIwMyw4ICsyMDQsOSBAQCBNRVNTQUdFX1JFQ0VJVkVSUyA9
IFwKIAlXZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uIFwKIAlXZWJQ
cm9jZXNzL05ldHdvcmsvV2ViU29ja2V0U3RyZWFtIFwKIAlXZWJQcm9jZXNzL05ldHdvcmsvV2Vi
UmVzb3VyY2VMb2FkZXIgXAotCVdlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvV2ViUlRDTW9uaXRv
ciBcCiAJV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENOZXR3b3JrIFwKKwlXZWJQ
cm9jZXNzL05ldHdvcmsvd2VicnRjL1JUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlciBcCisJV2Vi
UHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9XZWJSVENNb25pdG9yIFwKIAlXZWJQcm9jZXNzL05ldHdv
cmsvd2VicnRjL1dlYk1ETlNSZWdpc3RlciBcCiAJV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9X
ZWJSVENSZXNvbHZlciBcCiAJV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEZXZpY2VPcmll
bnRhdGlvblVwZGF0ZVByb3ZpZGVyIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKaW5kZXgg
NGY1ODg1ZThmNzRmMzI5ZWJkM2VlYmRmZWFhOTY3ZjJjN2E2ZjRjMi4uMjg0NmM2ZjRiM2JmYTY3
YTk2MzQxOTNjNjA2ODM4NGNjMWE3MGY4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAK
QEAgLTUyLDYgKzUyLDcgQEAKICNpbmNsdWRlICJOZXR3b3JrU29ja2V0U3RyZWFtTWVzc2FnZXMu
aCIKICNpbmNsdWRlICJQaW5nTG9hZC5oIgogI2luY2x1ZGUgIlByZWNvbm5lY3RUYXNrLmgiCisj
aW5jbHVkZSAiUlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyUHJveHkuaCIKICNpbmNsdWRlICJT
ZXJ2aWNlV29ya2VyRmV0Y2hUYXNrTWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJDb3JlQXJndW1l
bnRDb2RlcnMuaCIKICNpbmNsdWRlICJXZWJFcnJvcnMuaCIKQEAgLTE0Nyw2ICsxNDgsOSBAQCBO
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6fk5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzKCkKICAgICBpZiAobV9ydGNQcm92aWRlcikKICAgICAgICAgbV9ydGNQcm92aWRlci0+Y2xv
c2UoKTsKICNlbmRpZgorI2lmIEVOQUJMRShXRUJfUlRDKQorICAgIHVucmVnaXN0ZXJUb1JUQ0Rh
dGFDaGFubmVsUHJveHkoKTsKKyNlbmRpZgogCiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQog
ICAgIHVucmVnaXN0ZXJTV0Nvbm5lY3Rpb24oKTsKQEAgLTI3OCw2ICsyODIsMzQgQEAgdm9pZCBO
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Y3JlYXRlUlRDUHJvdmlkZXIoQ29tcGxldGlv
bkhhbmRsZXI8dm9pZCgpPiYKICAgICBjYWxsYmFjaygpOwogfQogCisjaWYgRU5BQkxFKFdFQl9S
VEMpCit2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpjb25uZWN0VG9SVENEYXRh
Q2hhbm5lbFJlbW90ZVNvdXJjZShXZWJDb3JlOjpSVENEYXRhQ2hhbm5lbElkZW50aWZpZXIgbG9j
YWxJZGVudGlmaWVyLCBXZWJDb3JlOjpSVENEYXRhQ2hhbm5lbElkZW50aWZpZXIgcmVtb3RlSWRl
bnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxib29sPik+JiYgY2FsbGJh
Y2spCit7CisgICAgYXV0byogY29ubmVjdGlvblRvV2ViUHJvY2VzcyA9IG1fbmV0d29ya1Byb2Nl
c3MtPndlYlByb2Nlc3NDb25uZWN0aW9uKHJlbW90ZUlkZW50aWZpZXIucHJvY2Vzc0lkZW50aWZp
ZXIpOworICAgIGlmICghY29ubmVjdGlvblRvV2ViUHJvY2VzcykgeworICAgICAgICBjYWxsYmFj
ayhmYWxzZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgcmVnaXN0ZXJUb1JUQ0RhdGFD
aGFubmVsUHJveHkoKTsKKyAgICBjb25uZWN0aW9uVG9XZWJQcm9jZXNzLT5yZWdpc3RlclRvUlRD
RGF0YUNoYW5uZWxQcm94eSgpOworICAgIGNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MtPmNvbm5lY3Rp
b24oKS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzQ29ubmVjdGlv
bjo6Q29ubmVjdFRvUlRDRGF0YUNoYW5uZWxSZW1vdGVTb3VyY2UgeyByZW1vdGVJZGVudGlmaWVy
LCBsb2NhbElkZW50aWZpZXIgfSwgV1RGTW92ZShjYWxsYmFjayksIDApOworfQorCit2b2lkIE5l
dHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpyZWdpc3RlclRvUlRDRGF0YUNoYW5uZWxQcm94
eSgpCit7CisgICAgaWYgKG1faXNSZWdpc3RlcmVkVG9SVENEYXRhQ2hhbm5lbFByb3h5KQorICAg
ICAgICByZXR1cm47CisgICAgbV9pc1JlZ2lzdGVyZWRUb1JUQ0RhdGFDaGFubmVsUHJveHkgPSB0
cnVlOworICAgIG1fbmV0d29ya1Byb2Nlc3MtPnJ0Y0RhdGFDaGFubmVsUHJveHkoKS5yZWdpc3Rl
ckNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoKnRoaXMpOworfQorCit2b2lkIE5ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzOjp1bnJlZ2lzdGVyVG9SVENEYXRhQ2hhbm5lbFByb3h5KCkKK3sKKyAg
ICBpZiAobV9pc1JlZ2lzdGVyZWRUb1JUQ0RhdGFDaGFubmVsUHJveHkpCisgICAgICAgIG1fbmV0
d29ya1Byb2Nlc3MtPnJ0Y0RhdGFDaGFubmVsUHJveHkoKS51bnJlZ2lzdGVyQ29ubmVjdGlvblRv
V2ViUHJvY2VzcygqdGhpcyk7Cit9CisjZW5kaWYKKwogQ2FjaGVTdG9yYWdlRW5naW5lQ29ubmVj
dGlvbiYgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNhY2hlU3RvcmFnZUNvbm5lY3Rp
b24oKQogewogICAgIGlmICghbV9jYWNoZVN0b3JhZ2VDb25uZWN0aW9uKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cy5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzcy5oCmluZGV4IGRhMDZmNzM5ZWZhNWQ1MzQwZTlhNjE4MjM4NWJlNWIwNjczZTIzYWQu
LjljNTI5ZjkyY2FlMmM3MzQzNDc3MzQzZTQ1MTA4ODM3YzI2ODNhMzAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzLmgKQEAgLTQ4LDYgKzQ4LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL05ldHdvcmtT
dG9yYWdlU2Vzc2lvbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZUlkZW50aWZpZXIuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL1Byb2Nlc3NJZGVudGlmaWVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9S
VENEYXRhQ2hhbm5lbElkZW50aWZpZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1JlZ2lzdHJhYmxl
RG9tYWluLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9XZWJTb2NrZXRJZGVudGlmaWVyLmg+CiAjaW5j
bHVkZSA8d3RmL09wdGlvblNldC5oPgpAQCAtMjUwLDYgKzI1MSw5IEBAIHByaXZhdGU6CiAjZW5k
aWYKIAogICAgIHZvaWQgY3JlYXRlUlRDUHJvdmlkZXIoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgp
PiYmKTsKKyNpZiBFTkFCTEUoV0VCX1JUQykKKyAgICB2b2lkIGNvbm5lY3RUb1JUQ0RhdGFDaGFu
bmVsUmVtb3RlU291cmNlKFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsSWRlbnRpZmllciBzb3VyY2Us
IFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsSWRlbnRpZmllciBoYW5kbGVyLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKE9wdGlvbmFsPGJvb2w+KT4mJik7CisjZW5kaWYKIAogICAgIHZvaWQgY3JlYXRl
TmV3TWVzc2FnZVBvcnRDaGFubmVsKGNvbnN0IFdlYkNvcmU6Ok1lc3NhZ2VQb3J0SWRlbnRpZmll
ciYgcG9ydDEsIGNvbnN0IFdlYkNvcmU6Ok1lc3NhZ2VQb3J0SWRlbnRpZmllciYgcG9ydDIpOwog
ICAgIHZvaWQgZW50YW5nbGVMb2NhbFBvcnRJblRoaXNQcm9jZXNzVG9SZW1vdGUoY29uc3QgV2Vi
Q29yZTo6TWVzc2FnZVBvcnRJZGVudGlmaWVyJiBsb2NhbCwgY29uc3QgV2ViQ29yZTo6TWVzc2Fn
ZVBvcnRJZGVudGlmaWVyJiByZW1vdGUpOwpAQCAtMjcxLDYgKzI3NSw4IEBAIHByaXZhdGU6CiAj
ZW5kaWYKICNpZiBFTkFCTEUoV0VCX1JUQykKICAgICBOZXR3b3JrTUROU1JlZ2lzdGVyJiBtZG5z
UmVnaXN0ZXIoKSB7IHJldHVybiBtX21kbnNSZWdpc3RlcjsgfQorICAgIHZvaWQgcmVnaXN0ZXJU
b1JUQ0RhdGFDaGFubmVsUHJveHkoKTsKKyAgICB2b2lkIHVucmVnaXN0ZXJUb1JUQ0RhdGFDaGFu
bmVsUHJveHkoKTsKICNlbmRpZgogCiAgICAgQ2FjaGVTdG9yYWdlRW5naW5lQ29ubmVjdGlvbiYg
Y2FjaGVTdG9yYWdlQ29ubmVjdGlvbigpOwpAQCAtMzg1LDYgKzM5MSwxMCBAQCBwcml2YXRlOgog
ICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24+IG1fc3dD
b250ZXh0Q29ubmVjdGlvbjsKICNlbmRpZgogCisjaWYgRU5BQkxFKFdFQl9SVEMpCisgICAgYm9v
bCBtX2lzUmVnaXN0ZXJlZFRvUlRDRGF0YUNoYW5uZWxQcm94eSB7IGZhbHNlIH07CisjZW5kaWYK
KwogI2lmIEVOQUJMRShBUFBMRV9QQVlfUkVNT1RFX1VJKQogICAgIHN0ZDo6dW5pcXVlX3B0cjxX
ZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eT4gbV9wYXltZW50Q29vcmRpbmF0b3I7CiAjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCmluZGV4IGZmOGQ0YTE3
OWYxZmFmZDYyYjVkM2ZhNjRlOTljMjA4YWE4ZmJmOWEuLjk0OGJjY2E0M2RhODE0MzViNzFmZThk
OTc5ZTgwZDcyZTgyZDdiYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KKysrIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNz
YWdlcy5pbgpAQCAtODcsNiArODcsOSBAQCBtZXNzYWdlcyAtPiBOZXR3b3JrQ29ubmVjdGlvblRv
V2ViUHJvY2VzcyBMZWdhY3lSZWNlaXZlciB7CiAjZW5kaWYKIAogICAgIENyZWF0ZVJUQ1Byb3Zp
ZGVyKCkgLT4gKCkgQXN5bmMKKyNpZiBFTkFCTEUoV0VCX1JUQykKKyAgICBDb25uZWN0VG9SVENE
YXRhQ2hhbm5lbFJlbW90ZVNvdXJjZShzdHJ1Y3QgV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWxJZGVu
dGlmaWVyIHNvdXJjZSwgc3RydWN0IFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsSWRlbnRpZmllciBo
YW5kbGVyKSAtPiAoT3B0aW9uYWw8Ym9vbD4gcmVzdWx0KSBBc3luYworI2VuZGlmCiAKICAgICBV
cGRhdGVRdW90YUJhc2VkT25TcGFjZVVzYWdlRm9yVGVzdGluZyhzdHJ1Y3QgV2ViQ29yZTo6Q2xp
ZW50T3JpZ2luIG9yaWdpbikKICAgICBDcmVhdGVOZXdNZXNzYWdlUG9ydENoYW5uZWwoc3RydWN0
IFdlYkNvcmU6Ok1lc3NhZ2VQb3J0SWRlbnRpZmllciBwb3J0MSwgc3RydWN0IFdlYkNvcmU6Ok1l
c3NhZ2VQb3J0SWRlbnRpZmllciBwb3J0MikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKaW5kZXggOTNkNWEzNzdmNWZiNjQxYTAzMGZhNmZjNWZj
OTMyZDQxYzQ0YzlhNy4uM2EwZTdkNjRkNTRkZWZkMDZkZGI5MGFiNDcwOWRkNmFmMTBmNWMyNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAK
QEAgLTI4MjIsNCArMjgyMiwxNCBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpjbGVhckFwcEJvdW5k
TmF2aWdhdGlvbkRhdGEoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBDb21wbAogfQogI2VuZGlm
CiAKKyNpZiBFTkFCTEUoV0VCX1JUQykKK1JUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlclByb3h5
JiBOZXR3b3JrUHJvY2Vzczo6cnRjRGF0YUNoYW5uZWxQcm94eSgpCit7CisgICAgQVNTRVJUKGlz
TWFpblJ1bkxvb3AoKSk7CisgICAgaWYgKCFtX3J0Y0RhdGFDaGFubmVsUHJveHkpCisgICAgICAg
IG1fcnRjRGF0YUNoYW5uZWxQcm94eSA9IFJUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlclByb3h5
OjpjcmVhdGUoKTsKKyAgICByZXR1cm4gKm1fcnRjRGF0YUNoYW5uZWxQcm94eTsKK30KKyNlbmRp
ZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Byb2Nlc3MuaAppbmRleCAwNzQxNzg4OTUyZDUxOTMxNDFmMmM4YjMyZDkxOWVl
NTNmZTc2ZDQ3Li5mNjNmNjJkNmU3YTUzNmI5MTNiNDdmYjEyNDY1M2FkMDBjMTg2MWQ3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKKysr
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCkBAIC0zMiw2
ICszMiw3IEBACiAjaW5jbHVkZSAiRG93bmxvYWRNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiTG9jYWxT
dG9yYWdlRGF0YWJhc2VUcmFja2VyLmgiCiAjaW5jbHVkZSAiTmV0d29ya0NvbnRlbnRSdWxlTGlz
dE1hbmFnZXIuaCIKKyNpbmNsdWRlICJSVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXJQcm94eS5o
IgogI2luY2x1ZGUgIlNhbmRib3hFeHRlbnNpb24uaCIKICNpbmNsdWRlICJXZWJJREJTZXJ2ZXIu
aCIKICNpbmNsdWRlICJXZWJQYWdlUHJveHlJZGVudGlmaWVyLmgiCkBAIC0zODAsNiArMzgxLDEw
IEBAIHB1YmxpYzoKICAgICB2b2lkIGNsZWFyQXBwQm91bmROYXZpZ2F0aW9uRGF0YShQQUw6OlNl
c3Npb25JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICNlbmRpZgogCisjaWYgRU5B
QkxFKFdFQl9SVEMpCisgICAgUlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyUHJveHkmIHJ0Y0Rh
dGFDaGFubmVsUHJveHkoKTsKKyNlbmRpZgorCiBwcml2YXRlOgogICAgIHZvaWQgcGxhdGZvcm1J
bml0aWFsaXplTmV0d29ya1Byb2Nlc3MoY29uc3QgTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnMmKTsKIApAQCAtNTg0LDYgKzU4OSwxMCBAQCBwcml2YXRlOgogICAgIEhhc2hNYXA8UEFM
OjpTZXNzaW9uSUQsIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpTV1NlcnZlcj4+IG1fc3dTZXJ2
ZXJzOwogI2VuZGlmCiAgICAgCisjaWYgRU5BQkxFKFdFQl9SVEMpCisgICAgUmVmUHRyPFJUQ0Rh
dGFDaGFubmVsUmVtb3RlTWFuYWdlclByb3h5PiBtX3J0Y0RhdGFDaGFubmVsUHJveHk7CisjZW5k
aWYKKwogICAgIExvY2sgbV9zZXNzaW9uU3RvcmFnZVF1b3RhTWFuYWdlcnNMb2NrOwogICAgIEhh
c2hNYXA8UEFMOjpTZXNzaW9uSUQsIHN0ZDo6dW5pcXVlX3B0cjxTZXNzaW9uU3RvcmFnZVF1b3Rh
TWFuYWdlcj4+IG1fc2Vzc2lvblN0b3JhZ2VRdW90YU1hbmFnZXJzOwogICAgIGJvb2wgbV9xdW90
YUxvZ2dpbmdFbmFibGVkIHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3Mvd2VicnRjL1JUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlclByb3h5LmNwcCBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL1JUQ0RhdGFDaGFubmVsUmVtb3Rl
TWFuYWdlclByb3h5LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zZWViY2EzNWExZWVjMjgxZTIwYjc1YTBiYmQz
Mjg5OGNhZjQxZTU0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy93ZWJydGMvUlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyUHJveHkuY3BwCkBAIC0wLDAg
KzEsOTcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisg
KiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04K
KyAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJUQ0RhdGFDaGFubmVsUmVtb3RlTWFu
YWdlclByb3h5LmgiCisKKyNpZiBFTkFCTEUoV0VCX1JUQykKKworI2luY2x1ZGUgIk5ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzLmgiCisjaW5jbHVkZSAiUlRDRGF0YUNoYW5uZWxSZW1vdGVN
YW5hZ2VyTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJSVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXJQ
cm94eU1lc3NhZ2VzLmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitSVENEYXRhQ2hhbm5lbFJl
bW90ZU1hbmFnZXJQcm94eTo6UlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyUHJveHkoKQorICAg
IDogbV9xdWV1ZShXb3JrUXVldWU6OmNyZWF0ZSgiUlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2Vy
UHJveHkiKSkKK3sKK30KKwordm9pZCBSVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXJQcm94eTo6
cmVnaXN0ZXJDb25uZWN0aW9uVG9XZWJQcm9jZXNzKE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzJiBjb25uZWN0aW9uVG9XZWJQcm9jZXNzKQoreworICAgIG1fcXVldWUtPmRpc3BhdGNoKFt0
aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGlkZW50aWZpZXIgPSBjb25uZWN0
aW9uVG9XZWJQcm9jZXNzLndlYlByb2Nlc3NJZGVudGlmaWVyKCksIGNvbm5lY3Rpb24gPSBtYWtl
UmVmKGNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY29ubmVjdGlvbigpKV0oKSBtdXRhYmxlIHsKKyAg
ICAgICAgQVNTRVJUKCFtX3dlYlByb2Nlc3NDb25uZWN0aW9ucy5jb250YWlucyhpZGVudGlmaWVy
KSk7CisgICAgICAgIG1fd2ViUHJvY2Vzc0Nvbm5lY3Rpb25zLmFkZChpZGVudGlmaWVyLCBXVEZN
b3ZlKGNvbm5lY3Rpb24pKTsKKyAgICB9KTsKKyAgICBjb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNv
bm5lY3Rpb24oKS5hZGRXb3JrUXVldWVNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlJUQ0RhdGFD
aGFubmVsUmVtb3RlTWFuYWdlclByb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1fcXVldWUs
IHRoaXMpOworfQorCit2b2lkIFJUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlclByb3h5Ojp1bnJl
Z2lzdGVyQ29ubmVjdGlvblRvV2ViUHJvY2VzcyhOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cyYgY29ubmVjdGlvblRvV2ViUHJvY2VzcykKK3sKKyAgICBtX3F1ZXVlLT5kaXNwYXRjaChbdGhp
cywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBpZGVudGlmaWVyID0gY29ubmVjdGlv
blRvV2ViUHJvY2Vzcy53ZWJQcm9jZXNzSWRlbnRpZmllcigpXSB7CisgICAgICAgIEFTU0VSVCht
X3dlYlByb2Nlc3NDb25uZWN0aW9ucy5jb250YWlucyhpZGVudGlmaWVyKSk7CisgICAgICAgIG1f
d2ViUHJvY2Vzc0Nvbm5lY3Rpb25zLnJlbW92ZShpZGVudGlmaWVyKTsKKyAgICB9KTsKKyAgICBj
b25uZWN0aW9uVG9XZWJQcm9jZXNzLmNvbm5lY3Rpb24oKS5yZW1vdmVXb3JrUXVldWVNZXNzYWdl
UmVjZWl2ZXIoTWVzc2FnZXM6OlJUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlclByb3h5OjptZXNz
YWdlUmVjZWl2ZXJOYW1lKCkpOworfQorCit2b2lkIFJUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdl
clByb3h5OjpzZW5kRGF0YShXZWJDb3JlOjpSVENEYXRhQ2hhbm5lbElkZW50aWZpZXIgaWRlbnRp
ZmllciwgYm9vbCBpc1JhdywgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiBkYXRhKQoreworICAg
IGlmIChhdXRvKiBjb25uZWN0aW9uID0gbV93ZWJQcm9jZXNzQ29ubmVjdGlvbnMuZ2V0KGlkZW50
aWZpZXIucHJvY2Vzc0lkZW50aWZpZXIpKQorICAgICAgICBjb25uZWN0aW9uLT5zZW5kKE1lc3Nh
Z2VzOjpSVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXI6OlNlbmREYXRhIHsgaWRlbnRpZmllciwg
aXNSYXcsIGRhdGEgfSwgMCk7Cit9CisKK3ZvaWQgUlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2Vy
UHJveHk6OmNsb3NlKFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsSWRlbnRpZmllciBpZGVudGlmaWVy
KQoreworICAgIGlmIChhdXRvKiBjb25uZWN0aW9uID0gbV93ZWJQcm9jZXNzQ29ubmVjdGlvbnMu
Z2V0KGlkZW50aWZpZXIucHJvY2Vzc0lkZW50aWZpZXIpKQorICAgICAgICBjb25uZWN0aW9uLT5z
ZW5kKE1lc3NhZ2VzOjpSVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXI6OkNsb3NlIHsgaWRlbnRp
ZmllciB9LCAwKTsKK30KKwordm9pZCBSVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXJQcm94eTo6
Y2hhbmdlUmVhZHlTdGF0ZShXZWJDb3JlOjpSVENEYXRhQ2hhbm5lbElkZW50aWZpZXIgaWRlbnRp
ZmllciwgV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWxTdGF0ZSBzdGF0ZSkKK3sKKyAgICBpZiAoYXV0
byogY29ubmVjdGlvbiA9IG1fd2ViUHJvY2Vzc0Nvbm5lY3Rpb25zLmdldChpZGVudGlmaWVyLnBy
b2Nlc3NJZGVudGlmaWVyKSkKKyAgICAgICAgY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6UlRD
RGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyOjpDaGFuZ2VSZWFkeVN0YXRlIHsgaWRlbnRpZmllciwg
c3RhdGUgfSwgMCk7Cit9CisKK3ZvaWQgUlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyUHJveHk6
OnJlY2VpdmVEYXRhKFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsSWRlbnRpZmllciBpZGVudGlmaWVy
LCBib29sIGlzUmF3LCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIGRhdGEpCit7CisgICAgaWYg
KGF1dG8qIGNvbm5lY3Rpb24gPSBtX3dlYlByb2Nlc3NDb25uZWN0aW9ucy5nZXQoaWRlbnRpZmll
ci5wcm9jZXNzSWRlbnRpZmllcikpCisgICAgICAgIGNvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6
OlJUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlcjo6UmVjZWl2ZURhdGEgeyBpZGVudGlmaWVyLCBp
c1JhdywgZGF0YSB9LCAwKTsKK30KKwordm9pZCBSVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXJQ
cm94eTo6ZGV0ZWN0RXJyb3IoV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWxJZGVudGlmaWVyIGlkZW50
aWZpZXIpCit7CisgICAgaWYgKGF1dG8qIGNvbm5lY3Rpb24gPSBtX3dlYlByb2Nlc3NDb25uZWN0
aW9ucy5nZXQoaWRlbnRpZmllci5wcm9jZXNzSWRlbnRpZmllcikpCisgICAgICAgIGNvbm5lY3Rp
b24tPnNlbmQoTWVzc2FnZXM6OlJUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlcjo6RGV0ZWN0RXJy
b3IgeyBpZGVudGlmaWVyIH0sIDApOworfQorCit2b2lkIFJUQ0RhdGFDaGFubmVsUmVtb3RlTWFu
YWdlclByb3h5OjpidWZmZXJlZEFtb3VudElzRGVjcmVhc2luZyhXZWJDb3JlOjpSVENEYXRhQ2hh
bm5lbElkZW50aWZpZXIgaWRlbnRpZmllciwgc2l6ZV90IGFtb3VudCkKK3sKKyAgICBpZiAoYXV0
byogY29ubmVjdGlvbiA9IG1fd2ViUHJvY2Vzc0Nvbm5lY3Rpb25zLmdldChpZGVudGlmaWVyLnBy
b2Nlc3NJZGVudGlmaWVyKSkKKyAgICAgICAgY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6UlRD
RGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyOjpCdWZmZXJlZEFtb3VudElzRGVjcmVhc2luZyB7IGlk
ZW50aWZpZXIsIGFtb3VudCB9LCAwKTsKK30KKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL1JUQ0RhdGFDaGFubmVsUmVtb3RlTWFu
YWdlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9SVENEYXRh
Q2hhbm5lbFJlbW90ZU1hbmFnZXJQcm94eS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZhMmQ2MTgzMTZhMDA5YzQ2
MDAyYzdkODg0YWVmZjM1ZTdiZDAxNWIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9SVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXJQcm94eS5o
CkBAIC0wLDAgKzEsNjcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBB
TkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KKyAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUworICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFC
TEUoV0VCX1JUQykKKworI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKKyNpbmNsdWRlIDxXZWJDb3Jl
L1JUQ0RhdGFDaGFubmVsUmVtb3RlSGFuZGxlckNvbm5lY3Rpb24uaD4KKyNpbmNsdWRlIDxXZWJD
b3JlL1JUQ0RhdGFDaGFubmVsUmVtb3RlU291cmNlQ29ubmVjdGlvbi5oPgorI2luY2x1ZGUgPHd0
Zi9Xb3JrUXVldWUuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIE5ldHdvcmtDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzOworCitjbGFzcyBSVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXJQ
cm94eSBmaW5hbCA6IHB1YmxpYyBJUEM6OkNvbm5lY3Rpb246OldvcmtRdWV1ZU1lc3NhZ2VSZWNl
aXZlciB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxSVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFn
ZXJQcm94eT4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBSVENEYXRhQ2hhbm5lbFJl
bW90ZU1hbmFnZXJQcm94eSk7IH0KKworICAgIHZvaWQgcmVnaXN0ZXJDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzKE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzJik7CisgICAgdm9pZCB1bnJlZ2lz
dGVyQ29ubmVjdGlvblRvV2ViUHJvY2VzcyhOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYp
OworCitwcml2YXRlOgorICAgIFJUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlclByb3h5KCk7CisK
KyAgICAvLyBJUEM6OkNvbm5lY3Rpb246OldvcmtRdWV1ZU1lc3NhZ2VSZWNlaXZlcgorICAgIHZv
aWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgZmlu
YWw7CisKKyAgICAvLyBUbyBzb3VyY2UKKyAgICB2b2lkIHNlbmREYXRhKFdlYkNvcmU6OlJUQ0Rh
dGFDaGFubmVsSWRlbnRpZmllciwgYm9vbCBpc1JhdywgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNl
Jik7CisgICAgdm9pZCBjbG9zZShXZWJDb3JlOjpSVENEYXRhQ2hhbm5lbElkZW50aWZpZXIpOwor
CisgICAgLy8gVG8gaGFuZGxlcgorICAgIHZvaWQgY2hhbmdlUmVhZHlTdGF0ZShXZWJDb3JlOjpS
VENEYXRhQ2hhbm5lbElkZW50aWZpZXIsIFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsU3RhdGUpOwor
ICAgIHZvaWQgcmVjZWl2ZURhdGEoV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWxJZGVudGlmaWVyLCBi
b29sIGlzUmF3LCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmKTsKKyAgICB2b2lkIGRldGVjdEVy
cm9yKFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsSWRlbnRpZmllcik7CisgICAgdm9pZCBidWZmZXJl
ZEFtb3VudElzRGVjcmVhc2luZyhXZWJDb3JlOjpSVENEYXRhQ2hhbm5lbElkZW50aWZpZXIsIHNp
emVfdCBhbW91bnQpOworCisgICAgUmVmPFdvcmtRdWV1ZT4gbV9xdWV1ZTsKKyAgICBIYXNoTWFw
PFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyLCBSZWY8SVBDOjpDb25uZWN0aW9uPj4gbV93ZWJQ
cm9jZXNzQ29ubmVjdGlvbnM7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlm
IC8vIEVOQUJMRShXRUJfUlRDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy93ZWJydGMvUlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4g
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9SVENEYXRhQ2hhbm5lbFJlbW90
ZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41MmMyMWM5MmY5NzUxMzcwMjg5
N2Q1NmI1NjVhNzU4YTAzMjcxYTA5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy93ZWJydGMvUlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyUHJveHkubWVz
c2FnZXMuaW4KQEAgLTAsMCArMSwzNyBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFy
ZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisjIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IK
KyMgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTAorIyBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorIyBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UgorIyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorIyBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorCisjaWYgRU5BQkxFKFdFQl9SVEMpCisKK21lc3NhZ2VzIC0+IFJUQ0RhdGFDaGFu
bmVsUmVtb3RlTWFuYWdlclByb3h5IE5vdFJlZkNvdW50ZWQgeworICAgIC8vIFRvIHNvdXJjZQor
ICAgIFNlbmREYXRhKHN0cnVjdCBXZWJDb3JlOjpSVENEYXRhQ2hhbm5lbElkZW50aWZpZXIgc291
cmNlLCBib29sIGlzUmF3LCBJUEM6OkRhdGFSZWZlcmVuY2UgdGV4dCk7CisgICAgQ2xvc2Uoc3Ry
dWN0IFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsSWRlbnRpZmllciBzb3VyY2UpOworCisgICAgLy8g
VG8gaGFuZGxlcgorwqAgwqAgQ2hhbmdlUmVhZHlTdGF0ZShzdHJ1Y3QgV2ViQ29yZTo6UlRDRGF0
YUNoYW5uZWxJZGVudGlmaWVyIGhhbmRsZXIsIGVudW06dWludDhfdCBXZWJDb3JlOjpSVENEYXRh
Q2hhbm5lbFN0YXRlIHN0YXRlKTsKK8KgIMKgIFJlY2VpdmVEYXRhKHN0cnVjdCBXZWJDb3JlOjpS
VENEYXRhQ2hhbm5lbElkZW50aWZpZXIgaGFuZGxlciwgYm9vbCBpc1JhdywgSVBDOjpEYXRhUmVm
ZXJlbmNlIGRhdGEpOworwqAgwqAgRGV0ZWN0RXJyb3Ioc3RydWN0IFdlYkNvcmU6OlJUQ0RhdGFD
aGFubmVsSWRlbnRpZmllciBoYW5kbGVyKTsKK8KgIMKgIEJ1ZmZlcmVkQW1vdW50SXNEZWNyZWFz
aW5nKHN0cnVjdCBXZWJDb3JlOjpSVENEYXRhQ2hhbm5lbElkZW50aWZpZXIgaGFuZGxlciwgc2l6
ZV90IGFtb3VudCk7Cit9CisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCX1JUQykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0Cmlu
ZGV4IDU5M2JhY2U0NTc1MGNhMWFjY2FhNmQxNzdkNDU2OGZjZjc3MTM3OWYuLjdhZWMxNTgwNzVh
YTk1NWU0NzUyNjBmNGEyOGNhOTc5ZjUzNmI4NTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
U291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dApAQCAtMTMwLDYgKzEz
MCw3IEBAIE5ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZVN1YnJlc291cmNlc0VudHJ5
LmNwcAogTmV0d29ya1Byb2Nlc3MvY2FjaGUvUHJlZmV0Y2hDYWNoZS5jcHAKIAogTmV0d29ya1By
b2Nlc3Mvd2VicnRjL05ldHdvcmtNRE5TUmVnaXN0ZXIuY3BwCitOZXR3b3JrUHJvY2Vzcy93ZWJy
dGMvUlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyUHJveHkuY3BwCiAKIC8vIFRPRE86IFdlIHNo
b3VsZCB1bmlmeSB0aGVzZSBmaWxlcyBvbmNlIEdUSydzIFBsdWdpblByb2Nlc3MyIGlzIHJlbW92
ZWQuCiBQbGF0Zm9ybS9Mb2dnaW5nLmNwcCBAbm8tdW5pZnkKQEAgLTYzMCw2ICs2MzEsNyBAQCBX
ZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmNwcAogV2ViUHJvY2Vz
cy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENSZXNvbHZlci5jcHAKIFdlYlByb2Nlc3MvTmV0d29y
ay93ZWJydGMvTGliV2ViUlRDU29ja2V0LmNwcAogV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9M
aWJXZWJSVENTb2NrZXRGYWN0b3J5LmNwcAorV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9SVENE
YXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXIuY3BwCiBXZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL1dl
Yk1ETlNSZWdpc3Rlci5jcHAKIFdlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvV2ViUlRDTW9uaXRv
ci5jcHAKIFdlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvV2ViUlRDUmVzb2x2ZXIuY3BwCkBAIC03
MTgsNSArNzIwLDcgQEAgV2ViUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VBcmVhTWFwLmNwcAog
V2ViUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VOYW1lc3BhY2VJbXBsLmNwcAogV2ViUHJvY2Vz
cy9XZWJTdG9yYWdlL1dlYlN0b3JhZ2VOYW1lc3BhY2VQcm92aWRlci5jcHAKIAorUlRDRGF0YUNo
YW5uZWxSZW1vdGVNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcAorUlRDRGF0YUNoYW5uZWxSZW1v
dGVNYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwCiBSZW1vdGVHcmFwaGljc0NvbnRleHRH
TE1lc3NhZ2VSZWNlaXZlci5jcHAKIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlNZXNzYWdl
UmVjZWl2ZXIuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagppbmRleCAyMDQzYjA2YjVhYzZkZTM3NDNhNWM3N2EyODJhMTQ1MmU1YzNlMjQwLi4y
Mzc5MTRmNDE3OWJhZWFkOTc5YzAwYTkwZjk0OGM0NTkwMGRkNzE3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTM2NTAsNiArMzY1MCwx
MCBAQAogCQk0MTBCQTEzOTI1NzEzNUYyMDAyRTJGOEEgLyogTmV0d29ya1JUQ1NvY2tldENvY29h
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gTmV0d29ya1JUQ1NvY2tldENvY29hLm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTBCQTEzQTI1NzEzNUYyMDAyRTJGOEEgLyogTmV0
d29ya1JUQ1NvY2tldENvY29hLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5ldHdvcmtSVENTb2NrZXRDb2Nv
YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTExNDM2MzIwRjY3N0IxMDAyNkY5
MTIgLyogSW5qZWN0VXNlclNjcmlwdEltbWVkaWF0ZWx5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEluamVjdFVzZXJTY3JpcHRJbW1lZGlhdGVseS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk0MTEyMjNCNzI2MDIxNTJCMDBCMEEwQjYgLyogUlRDRGF0YUNoYW5u
ZWxSZW1vdGVNYW5hZ2VyLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9IFJUQ0RhdGFDaGFubmVsUmVtb3RlTWFu
YWdlci5tZXNzYWdlcy5pbjsgcGF0aCA9IE5ldHdvcmsvd2VicnRjL1JUQ0RhdGFDaGFubmVsUmVt
b3RlTWFuYWdlci5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDEx
MjIzQkIyNjAyNEU4MDAwQjBBMEI2IC8qIFJUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlclByb3h5
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFJUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlclByb3h5Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxMTIyM0JDMjYwMjRFODEwMEIwQTBCNiAvKiBS
VENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXJQcm94eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBS
VENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXJQcm94eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTQxMTIyM0JEMjYwMjRFODEwMEIwQTBCNiAvKiBSVENEYXRhQ2hhbm5lbFJlbW90
ZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFn
ZXJQcm94eS5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDExMjg2
RUYyMUM4QTkwQzAwM0E4NTUwIC8qIE1lZGlhVXRpbGl0aWVzLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IE1lZGlhVXRpbGl0aWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTQxMTI4NkYwMjFDOEE5MEQwMDNBODU1MCAvKiBNZWRpYVV0aWxpdGllcy5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE1lZGlhVXRpbGl0aWVzLm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTEyQjU0NzFGOUZEM0FCMDBFNjc4NzUgLyog
TmV0d29ya1JUQ1Jlc29sdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IE5ldHdvcmtSVENSZXNvbHZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0zNzExLDYgKzM3MTUsOCBAQAogCQk0MTY4NEM1MDI0NjQ1MEZEMDAxQ0U4RUQgLyogUmVtb3Rl
UmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNDE2ODRDNTEyNDY0NTBGRDAwMUNFOEVEIC8qIFJlbW90ZVJlYWx0aW1lVmlkZW9T
b3VyY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlUmVhbHRpbWVW
aWRlb1NvdXJjZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTZDRDc0NTIzRkIx
NzhCMDA2NjFEOTkgLyogTUROU1JlZ2lzdGVySWRlbnRpZmllci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IG5hbWUgPSBNRE5TUmVnaXN0ZXJJZGVudGlmaWVyLmg7IHBhdGggPSBOZXR3b3Jr
L3dlYnJ0Yy9NRE5TUmVnaXN0ZXJJZGVudGlmaWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTQxNkVEQzA1MjYwMEY2QjAwMDA5MjY3NSAvKiBSVENEYXRhQ2hhbm5lbFJlbW90ZU1h
bmFnZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gUlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2Vy
LmNwcDsgcGF0aCA9IE5ldHdvcmsvd2VicnRjL1JUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlci5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxNkVEQzA2MjYwMEY2QjAwMDA5MjY3
NSAvKiBSVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gUlRDRGF0
YUNoYW5uZWxSZW1vdGVNYW5hZ2VyLmg7IHBhdGggPSBOZXR3b3JrL3dlYnJ0Yy9SVENEYXRhQ2hh
bm5lbFJlbW90ZU1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE2Rjgw
ODYyNDVCMzk3NDAwQjY4RjAyIC8qIExpYldlYlJUQ05ldHdvcmsubWVzc2FnZXMuaW4gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBuYW1lID0gTGliV2ViUlRDTmV0d29yay5tZXNzYWdlcy5pbjsgcGF0aCA9IE5l
dHdvcmsvd2VicnRjL0xpYldlYlJUQ05ldHdvcmsubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTQxNkY4MDg5MjQ1QzdGRjUwMEI2OEYwMiAvKiBMaWJXZWJSVENOZXR3
b3JrLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IExpYldlYlJUQ05l
dHdvcmsuY3BwOyBwYXRoID0gTmV0d29yay93ZWJydGMvTGliV2ViUlRDTmV0d29yay5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxNzIxOTg5MjNCNjEyODIwMEFFNTY4NiAvKiBM
aWJXZWJSVENDb2RlY3MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTGliV2Vi
UlRDQ29kZWNzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC04MjQzLDYgKzgyNDks
OSBAQAogCQkJCTQxMTJCNTQ4MUY5RkQzQUMwMEU2Nzk4NiAvKiBOZXR3b3JrUlRDUmVzb2x2ZXJD
b2NvYS5oICovLAogCQkJCTQxMEJBMTNBMjU3MTM1RjIwMDJFMkY4QSAvKiBOZXR3b3JrUlRDU29j
a2V0Q29jb2EuaCAqLywKIAkJCQk0MTBCQTEzOTI1NzEzNUYyMDAyRTJGOEEgLyogTmV0d29ya1JU
Q1NvY2tldENvY29hLm1tICovLAorCQkJCTQxMTIyM0JDMjYwMjRFODEwMEIwQTBCNiAvKiBSVENE
YXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXJQcm94eS5jcHAgKi8sCisJCQkJNDExMjIzQkIyNjAyNEU4
MDAwQjBBMEI2IC8qIFJUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlclByb3h5LmggKi8sCisJCQkJ
NDExMjIzQkQyNjAyNEU4MTAwQjBBMEI2IC8qIFJUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlclBy
b3h5Lm1lc3NhZ2VzLmluICovLAogCQkJKTsKIAkJCXBhdGggPSB3ZWJydGM7CiAJCQlzb3VyY2VU
cmVlID0gIjxncm91cD4iOwpAQCAtODI2Myw2ICs4MjcyLDkgQEAKIAkJCQk0MTMwNzVBNTFERTg1
RUU3MDAzOUVDNjkgLyogTGliV2ViUlRDU29ja2V0RmFjdG9yeS5jcHAgKi8sCiAJCQkJNDEzMDc1
QTYxREU4NUVFNzAwMzlFQzY5IC8qIExpYldlYlJUQ1NvY2tldEZhY3RvcnkuaCAqLywKIAkJCQk0
MTZDRDc0NTIzRkIxNzhCMDA2NjFEOTkgLyogTUROU1JlZ2lzdGVySWRlbnRpZmllci5oICovLAor
CQkJCTQxNkVEQzA1MjYwMEY2QjAwMDA5MjY3NSAvKiBSVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFn
ZXIuY3BwICovLAorCQkJCTQxNkVEQzA2MjYwMEY2QjAwMDA5MjY3NSAvKiBSVENEYXRhQ2hhbm5l
bFJlbW90ZU1hbmFnZXIuaCAqLywKKwkJCQk0MTEyMjNCNzI2MDIxNTJCMDBCMEEwQjYgLyogUlRD
RGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyLm1lc3NhZ2VzLmluICovLAogCQkJCTQxQjdFRDZFMjA2
ODFEQ0YwMDg3RDg1MyAvKiBXZWJNRE5TUmVnaXN0ZXIuY3BwICovLAogCQkJCTQxQjdFRDZDMjA2
ODFEQ0UwMDg3RDg1MyAvKiBXZWJNRE5TUmVnaXN0ZXIuaCAqLywKIAkJCQk0MUI3RUQ2RDIwNjgx
RENGMDA4N0Q4NTMgLyogV2ViTUROU1JlZ2lzdGVyLm1lc3NhZ2VzLmluICovLApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0
aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNz
Q29ubmVjdGlvbi5jcHAKaW5kZXggYjU1NzhjYTg4NWRkMTdmZGFlM2NlMjJlOWRhMGE2MTUxOGNi
NjdkMi4uMWUxOWU1MjFmYjIzYzc0ZTQzNDc3MzNkMDIwMzVhYjBlYzAwMjJiNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0
aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJv
Y2Vzc0Nvbm5lY3Rpb24uY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiRGF0YVJlZmVy
ZW5jZS5oIgogI2luY2x1ZGUgIkxpYldlYlJUQ05ldHdvcmsuaCIKICNpbmNsdWRlICJOZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2Vzc01lc3NhZ2VzLmgiCisjaW5jbHVkZSAiUlRDRGF0YUNoYW5u
ZWxSZW1vdGVNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiU3RvcmFnZUFyZWFNYXAuaCIKICNpbmNsdWRl
ICJTdG9yYWdlQXJlYU1hcE1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViQ2FjaGVTdG9yYWdlUHJv
dmlkZXIuaCIKQEAgLTMyMCw0ICszMjEsMTEgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rp
b246OmJyb2FkY2FzdENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXMKICAg
ICB9CiB9CiAKKyNpZiBFTkFCTEUoV0VCX1JUQykKK3ZvaWQgTmV0d29ya1Byb2Nlc3NDb25uZWN0
aW9uOjpjb25uZWN0VG9SVENEYXRhQ2hhbm5lbFJlbW90ZVNvdXJjZShXZWJDb3JlOjpSVENEYXRh
Q2hhbm5lbElkZW50aWZpZXIgbG9jYWxJZGVudGlmaWVyLCBXZWJDb3JlOjpSVENEYXRhQ2hhbm5l
bElkZW50aWZpZXIgcmVtb3RlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRp
b25hbDxib29sPik+JiYgY2FsbGJhY2spCit7CisgICAgY2FsbGJhY2soUlRDRGF0YUNoYW5uZWxS
ZW1vdGVNYW5hZ2VyOjpzaGFyZWRNYW5hZ2VyKCkuY29ubmVjdFRvUmVtb3RlU291cmNlKGxvY2Fs
SWRlbnRpZmllciwgcmVtb3RlSWRlbnRpZmllcikpOworfQorI2VuZGlmCisKIH0gLy8gbmFtZXNw
YWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsv
TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0
d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uaAppbmRleCAwYWI3OTE1YjdmYWNlMzk1ZWRm
YmEzN2QzOTkyZWVkOTdmM2I4YjMwLi5jOTIwMTBhYTViNGIyNTQwYTc5OTExYmI1OWZlOGMzNTRj
ZWM5NzlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9OZXR3
b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0
d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uaApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1
ZGUgIlNoYXJlYWJsZVJlc291cmNlLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQ29uc29s
ZVR5cGVzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9NZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlci5o
PgorI2luY2x1ZGUgPFdlYkNvcmUvUlRDRGF0YUNoYW5uZWxJZGVudGlmaWVyLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9TZXJ2aWNlV29ya2VyVHlwZXMuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRl
ZC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgpAQCAtMTA5LDYgKzExMCw5IEBA
IHByaXZhdGU6CiAgICAgLy8gTWVzc2FnZSBoYW5kbGVycy4KICAgICB2b2lkIGRpZENhY2hlUmVz
b3VyY2UoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgU2hhcmVhYmxlUmVz
b3VyY2U6OkhhbmRsZSYpOwogI2VuZGlmCisjaWYgRU5BQkxFKFNIQVJFQUJMRV9SRVNPVVJDRSkK
KyAgICB2b2lkIGNvbm5lY3RUb1JUQ0RhdGFDaGFubmVsUmVtb3RlU291cmNlKFdlYkNvcmU6OlJU
Q0RhdGFDaGFubmVsSWRlbnRpZmllciBzb3VyY2UsIFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsSWRl
bnRpZmllciBoYW5kbGVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPGJvb2w+KT4m
Jik7CisjZW5kaWYKIAogICAgIHZvaWQgYnJvYWRjYXN0Q29uc29sZU1lc3NhZ2UoTWVzc2FnZVNv
dXJjZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rp
b24ubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3Jr
UHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4KaW5kZXggNjRmODhlYzc0NjNjYjY4YTk4Y2Nm
YzYyODk5NzFjODUzZmQzOWYyNy4uZWEyYTg2NzNjYzIwOWE1ODRiNjRjMGY4ODVlZmE4NmViZDg1
ZTI1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29y
a1Byb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgpAQCAtMzcs
NiArMzcsMTAgQEAgbWVzc2FnZXMgLT4gTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uIExlZ2FjeVJl
Y2VpdmVyIHsKICAgICBBbGxDb29raWVzRGVsZXRlZCgpOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUo
V0VCX1JUQykKKyAgICBDb25uZWN0VG9SVENEYXRhQ2hhbm5lbFJlbW90ZVNvdXJjZShzdHJ1Y3Qg
V2ViQ29yZTo6UlRDRGF0YUNoYW5uZWxJZGVudGlmaWVyIHNvdXJjZSwgc3RydWN0IFdlYkNvcmU6
OlJUQ0RhdGFDaGFubmVsSWRlbnRpZmllciBoYW5kbGVyKSAtPiAoT3B0aW9uYWw8Ym9vbD4gcmVz
dWx0KSBBc3luYworI2VuZGlmCisKICAgICBDaGVja1Byb2Nlc3NMb2NhbFBvcnRGb3JBY3Rpdml0
eShzdHJ1Y3QgV2ViQ29yZTo6TWVzc2FnZVBvcnRJZGVudGlmaWVyIHBvcnQpIC0+IChXZWJDb3Jl
OjpNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlcjo6SGFzQWN0aXZpdHkgaGFzQWN0aXZpdHkpIEFz
eW5jCiAgICAgTWVzc2FnZXNBdmFpbGFibGVGb3JQb3J0KHN0cnVjdCBXZWJDb3JlOjpNZXNzYWdl
UG9ydElkZW50aWZpZXIgcG9ydCkKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5jcHAKaW5kZXggZTky
MDk5MmYwOGVkNmIzMmU2N2RmZTdiZjc2ZWMzMTQ3ZjdjZjQ3Yy4uNzU0MGFmYTE0YzczMWZmZmRl
MDNhOWZiNzc3NmQ1MTNiNjg5NmEzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuY3BwCkBAIC0z
Myw2ICszMyw3IEBACiAjZW5kaWYKIAogI2luY2x1ZGUgIkxpYldlYlJUQ05ldHdvcmsuaCIKKyNp
bmNsdWRlICJSVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXIuaCIKICNpbmNsdWRlICJXZWJQYWdl
LmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZS5oPgpA
QCAtMTUyLDYgKzE1MywxMSBAQCBzdGQ6OnVuaXF1ZV9wdHI8TGliV2ViUlRDUHJvdmlkZXI6OlN1
c3BlbmRhYmxlU29ja2V0RmFjdG9yeT4gTGliV2ViUlRDUHJvdmlkZXI6OgogICAgIHJldHVybiBt
YWtlVW5pcXVlPFJUQ1NvY2tldEZhY3Rvcnk+KFdURk1vdmUodXNlckFnZW50KSk7CiB9CiAKK1Jl
ZlB0cjxSVENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXJDb25uZWN0aW9uPiBMaWJXZWJSVENQcm92
aWRlcjo6Y3JlYXRlUlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVyQ29ubmVjdGlvbigpCit7Cisg
ICAgcmV0dXJuICZSVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXI6OnNoYXJlZE1hbmFnZXIoKS5y
ZW1vdGVIYW5kbGVyQ29ubmVjdGlvbigpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAog
I2VuZGlmIC8vIFVTRShMSUJXRUJSVEMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5oCmluZGV4IGZjN2M1
NmU1MWNiODNmMzI0ZWEzZWFkYWY0YWI4Yjc2MjdkYmU1OGYuLjdjZGRkMWM0MWU4YWNmMDhhZGE2
N2U0MzBlNjNhYTI0NGJmZjkyNWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5oCkBAIC02MCw2ICs2
MCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCByZWdpc3Rlck1ETlNOYW1lKFdlYkNvcmU6OkRvY3Vt
ZW50SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBpcEFkZHJlc3MsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoTUROU05hbWVPckVycm9yJiYpPiYmKSBmaW5hbDsKICAgICB2b2lkIGRpc2FibGVOb25M
b2NhbGhvc3RDb25uZWN0aW9ucygpIGZpbmFsOwogICAgIHZvaWQgc3RhcnRlZE5ldHdvcmtUaHJl
YWQoKSBmaW5hbDsKKyAgICBSZWZQdHI8V2ViQ29yZTo6UlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5k
bGVyQ29ubmVjdGlvbj4gY3JlYXRlUlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVyQ29ubmVjdGlv
bigpIGZpbmFsOwogCiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBQTEFURk9STShDT0NPQSkg
JiYgIVBMQVRGT1JNKE1BQ0NBVEFMWVNUKQogICAgIFdlYlBhZ2UmIG1fd2ViUGFnZTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9SVENEYXRhQ2hh
bm5lbFJlbW90ZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsv
d2VicnRjL1JUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzRhYzU1
MzRkMTk2Njk5OWQ0YTk5NDU4YzkwOTkxOWE2ZTI3YmEwMwotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9SVENEYXRhQ2hhbm5lbFJlbW90
ZU1hbmFnZXIuY3BwCkBAIC0wLDAgKzEsMjUzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIx
IEFwcGxlIEluYy4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICog
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OCisgKiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJS
VENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXIuaCIKKworI2lmIEVOQUJMRShXRUJfUlRDKQorCisj
aW5jbHVkZSAiTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNzYWdlcy5oIgorI2luY2x1
ZGUgIlJUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlck1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiUlRD
RGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyUHJveHlNZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYlBy
b2Nlc3MuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1JUQ0RhdGFDaGFubmVsLmg+CisjaW5jbHVkZSA8
V2ViQ29yZS9TY3JpcHRFeGVjdXRpb25Db250ZXh0Lmg+CisKK25hbWVzcGFjZSBXZWJLaXQgewor
CitSVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXImIFJUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdl
cjo6c2hhcmVkTWFuYWdlcigpCit7CisgICAgc3RhdGljIFJUQ0RhdGFDaGFubmVsUmVtb3RlTWFu
YWdlciogc2hhcmVkTWFuYWdlciA9IG5ldyBSVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXI7Cisg
ICAgcmV0dXJuICpzaGFyZWRNYW5hZ2VyOworfQorCitSVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFn
ZXI6OlJUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlcigpCisgICAgOiBtX3F1ZXVlKFdvcmtRdWV1
ZTo6Y3JlYXRlKCJSVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXIiKSkKK3sKKyAgICBzZXRDb25u
ZWN0aW9uKCZXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5l
Y3Rpb24oKS5jb25uZWN0aW9uKCkpOworfQorCit2b2lkIFJUQ0RhdGFDaGFubmVsUmVtb3RlTWFu
YWdlcjo6c2V0Q29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24pCit7CisgICAg
aWYgKG1fY29ubmVjdGlvbiA9PSBjb25uZWN0aW9uKQorICAgICAgICByZXR1cm47CisKKyAgICBp
ZiAobV9jb25uZWN0aW9uKQorICAgICAgICBtX2Nvbm5lY3Rpb24tPnJlbW92ZVdvcmtRdWV1ZU1l
c3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6UlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyOjptZXNz
YWdlUmVjZWl2ZXJOYW1lKCkpOworCisgICAgbV9jb25uZWN0aW9uID0gY29ubmVjdGlvbjsKKwor
ICAgIGlmIChtX2Nvbm5lY3Rpb24pCisgICAgICAgIG1fY29ubmVjdGlvbi0+YWRkV29ya1F1ZXVl
TWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpSVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXI6Om1l
c3NhZ2VSZWNlaXZlck5hbWUoKSwgbV9xdWV1ZSwgdGhpcyk7Cit9CisKK2Jvb2wgUlRDRGF0YUNo
YW5uZWxSZW1vdGVNYW5hZ2VyOjpjb25uZWN0VG9SZW1vdGVTb3VyY2UoV2ViQ29yZTo6UlRDRGF0
YUNoYW5uZWxJZGVudGlmaWVyIGxvY2FsSWRlbnRpZmllciwgV2ViQ29yZTo6UlRDRGF0YUNoYW5u
ZWxJZGVudGlmaWVyIHJlbW90ZUlkZW50aWZpZXIpCit7CisgICAgQVNTRVJUKFByb2Nlc3M6Omlk
ZW50aWZpZXIoKSA9PSBsb2NhbElkZW50aWZpZXIucHJvY2Vzc0lkZW50aWZpZXIpOworICAgIGlm
IChQcm9jZXNzOjppZGVudGlmaWVyKCkgIT0gbG9jYWxJZGVudGlmaWVyLnByb2Nlc3NJZGVudGlm
aWVyKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBBU1NFUlQoUHJvY2Vzczo6aWRlbnRp
ZmllcigpID09IGxvY2FsSWRlbnRpZmllci5wcm9jZXNzSWRlbnRpZmllcik7CisgICAgaWYgKFBy
b2Nlc3M6OmlkZW50aWZpZXIoKSAhPSBsb2NhbElkZW50aWZpZXIucHJvY2Vzc0lkZW50aWZpZXIp
CisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGF1dG8gaGFuZGxlciA9IFdlYkNvcmU6OlJU
Q0RhdGFDaGFubmVsOjpoYW5kbGVyRnJvbUlkZW50aWZpZXIobG9jYWxJZGVudGlmaWVyLmNoYW5u
ZWxJZGVudGlmaWVyKTsKKyAgICBpZiAoIWhhbmRsZXIpCisgICAgICAgIHJldHVybiBmYWxzZTsK
KworICAgIGF1dG8gaXRlcmF0b3IgPSBtX3NvdXJjZXMuYWRkKHJlbW90ZUlkZW50aWZpZXIuY2hh
bm5lbElkZW50aWZpZXIsIFJUQ0RhdGFDaGFubmVsUmVtb3RlU291cmNlOjpjcmVhdGUocmVtb3Rl
SWRlbnRpZmllciwgbWFrZVVuaXF1ZVJlZkZyb21Ob25OdWxsVW5pcXVlUHRyKFdURk1vdmUoaGFu
ZGxlcikpLCByZW1vdGVTb3VyY2VDb25uZWN0aW9uKCkpKTsKKyAgICByZXR1cm4gaXRlcmF0b3Iu
aXNOZXdFbnRyeTsKK30KKworV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVyQ29u
bmVjdGlvbiYgUlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyOjpyZW1vdGVIYW5kbGVyQ29ubmVj
dGlvbigpCit7CisgICAgaWYgKCFtX3JlbW90ZUhhbmRsZXJDb25uZWN0aW9uKQorICAgICAgICBt
X3JlbW90ZUhhbmRsZXJDb25uZWN0aW9uID0gUmVtb3RlSGFuZGxlckNvbm5lY3Rpb246OmNyZWF0
ZShtX3F1ZXVlLmNvcHlSZWYoKSk7CisgICAgcmV0dXJuICptX3JlbW90ZUhhbmRsZXJDb25uZWN0
aW9uOworfQorCitXZWJDb3JlOjpSVENEYXRhQ2hhbm5lbFJlbW90ZVNvdXJjZUNvbm5lY3Rpb24m
IFJUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlcjo6cmVtb3RlU291cmNlQ29ubmVjdGlvbigpCit7
CisgICAgaWYgKCFtX3JlbW90ZVNvdXJjZUNvbm5lY3Rpb24pCisgICAgICAgIG1fcmVtb3RlU291
cmNlQ29ubmVjdGlvbiA9IFJlbW90ZVNvdXJjZUNvbm5lY3Rpb246OmNyZWF0ZSgpOworICAgIHJl
dHVybiAqbV9yZW1vdGVTb3VyY2VDb25uZWN0aW9uOworfQorCit2b2lkIFJUQ0RhdGFDaGFubmVs
UmVtb3RlTWFuYWdlcjo6cG9zdFRhc2tUb0hhbmRsZXIoV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWxJ
ZGVudGlmaWVyIGhhbmRsZXJJZGVudGlmaWVyLCBGdW5jdGlvbjx2b2lkKFdlYkNvcmU6OlJUQ0Rh
dGFDaGFubmVsUmVtb3RlSGFuZGxlciYpPiYmIGZ1bmN0aW9uKQoreworICAgIEFTU0VSVChQcm9j
ZXNzOjppZGVudGlmaWVyKCkgPT0gaGFuZGxlcklkZW50aWZpZXIucHJvY2Vzc0lkZW50aWZpZXIp
OworICAgIGlmIChQcm9jZXNzOjppZGVudGlmaWVyKCkgIT0gaGFuZGxlcklkZW50aWZpZXIucHJv
Y2Vzc0lkZW50aWZpZXIpCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8gaXRlcmF0b3IgPSBt
X2hhbmRsZXJzLmZpbmQoaGFuZGxlcklkZW50aWZpZXIuY2hhbm5lbElkZW50aWZpZXIpOworICAg
IGlmIChpdGVyYXRvciA9PSBtX2hhbmRsZXJzLmVuZCgpKQorICAgICAgICByZXR1cm47CisgICAg
YXV0byYgcmVtb3RlSGFuZGxlciA9IGl0ZXJhdG9yLT52YWx1ZTsKKworICAgIFdlYkNvcmU6OlNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQ6OnBvc3RUYXNrVG8ocmVtb3RlSGFuZGxlci5jb250ZXh0SWRl
bnRpZmllciwgW2hhbmRsZXIgPSByZW1vdGVIYW5kbGVyLmhhbmRsZXIsIGZ1bmN0aW9uID0gV1RG
TW92ZShmdW5jdGlvbildKGF1dG8mKSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKGhhbmRsZXIpCisg
ICAgICAgICAgICBmdW5jdGlvbigqaGFuZGxlcik7CisgICAgfSk7Cit9CisKK1JUQ0RhdGFDaGFu
bmVsUmVtb3RlU291cmNlKiBSVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXI6OnNvdXJjZUZyb21J
ZGVudGlmaWVyKFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsSWRlbnRpZmllciBzb3VyY2VJZGVudGlm
aWVyKQoreworICAgIEFTU0VSVChQcm9jZXNzOjppZGVudGlmaWVyKCkgPT0gc291cmNlSWRlbnRp
Zmllci5wcm9jZXNzSWRlbnRpZmllcik7CisgICAgaWYgKFByb2Nlc3M6OmlkZW50aWZpZXIoKSAh
PSBzb3VyY2VJZGVudGlmaWVyLnByb2Nlc3NJZGVudGlmaWVyKQorICAgICAgICByZXR1cm4gbnVs
bHB0cjsKKworICAgIHJldHVybiBtX3NvdXJjZXMuZ2V0KHNvdXJjZUlkZW50aWZpZXIuY2hhbm5l
bElkZW50aWZpZXIpOworfQorCit2b2lkIFJUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlcjo6c2Vu
ZERhdGEoV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWxJZGVudGlmaWVyIHNvdXJjZUlkZW50aWZpZXIs
IGJvb2wgaXNSYXcsIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgZGF0YSkKK3sKKyAgICBpZiAo
YXV0byogc291cmNlID0gc291cmNlRnJvbUlkZW50aWZpZXIoc291cmNlSWRlbnRpZmllcikpIHsK
KyAgICAgICAgaWYgKGlzUmF3KQorICAgICAgICAgICAgc291cmNlLT5zZW5kUmF3RGF0YShyZWlu
dGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPihkYXRhLmRhdGEoKSksIGRhdGEuc2l6ZSgpKTsKKyAg
ICAgICAgZWxzZQorICAgICAgICAgICAgc291cmNlLT5zZW5kU3RyaW5nRGF0YShDU3RyaW5nKHJl
aW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KGRhdGEuZGF0YSgpKSwgZGF0YS5zaXplKCkpKTsK
KyAgICB9Cit9CisKK3ZvaWQgUlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyOjpjbG9zZShXZWJD
b3JlOjpSVENEYXRhQ2hhbm5lbElkZW50aWZpZXIgc291cmNlSWRlbnRpZmllcikKK3sKKyAgICBp
ZiAoYXV0byogc291cmNlID0gc291cmNlRnJvbUlkZW50aWZpZXIoc291cmNlSWRlbnRpZmllcikp
CisgICAgICAgIHNvdXJjZS0+Y2xvc2UoKTsKK30KKwordm9pZCBSVENEYXRhQ2hhbm5lbFJlbW90
ZU1hbmFnZXI6OmNoYW5nZVJlYWR5U3RhdGUoV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWxJZGVudGlm
aWVyIGhhbmRsZXJJZGVudGlmaWVyLCBXZWJDb3JlOjpSVENEYXRhQ2hhbm5lbFN0YXRlIHN0YXRl
KQoreworICAgIHBvc3RUYXNrVG9IYW5kbGVyKGhhbmRsZXJJZGVudGlmaWVyLCBbc3RhdGVdKGF1
dG8mIGhhbmRsZXIpIHsKKyAgICAgICAgaGFuZGxlci5kaWRDaGFuZ2VSZWFkeVN0YXRlKHN0YXRl
KTsKKyAgICB9KTsKK30KKwordm9pZCBSVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXI6OnJlY2Vp
dmVEYXRhKFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsSWRlbnRpZmllciBoYW5kbGVySWRlbnRpZmll
ciwgYm9vbCBpc1JhdywgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiBkYXRhKQoreworICAgIFZl
Y3Rvcjx1bnNpZ25lZCBjaGFyPiBidWZmZXI7CisgICAgU3RyaW5nIHRleHQ7CisgICAgaWYgKGlz
UmF3KQorICAgICAgICBidWZmZXIgPSBkYXRhLnZlY3RvcigpOworICAgIGVsc2UKKyAgICAgICAg
dGV4dCA9IFN0cmluZzo6ZnJvbVVURjgoZGF0YS5kYXRhKCksIGRhdGEuc2l6ZSgpKTsKKworICAg
IHBvc3RUYXNrVG9IYW5kbGVyKGhhbmRsZXJJZGVudGlmaWVyLCBbaXNSYXcsIHRleHQgPSBXVEZN
b3ZlKHRleHQpLmlzb2xhdGVkQ29weSgpLCBidWZmZXIgPSBXVEZNb3ZlKGJ1ZmZlcildKGF1dG8m
IGhhbmRsZXIpIG11dGFibGUgeworICAgICAgICBpZiAoaXNSYXcpCisgICAgICAgICAgICBoYW5k
bGVyLmRpZFJlY2VpdmVSYXdEYXRhKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KGJ1ZmZl
ci5kYXRhKCkpLCBidWZmZXIuc2l6ZSgpKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgaGFu
ZGxlci5kaWRSZWNlaXZlU3RyaW5nRGF0YShXVEZNb3ZlKHRleHQpKTsKKyAgICB9KTsKK30KKwor
dm9pZCBSVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXI6OmRldGVjdEVycm9yKFdlYkNvcmU6OlJU
Q0RhdGFDaGFubmVsSWRlbnRpZmllciBoYW5kbGVySWRlbnRpZmllcikKK3sKKyAgICBwb3N0VGFz
a1RvSGFuZGxlcihoYW5kbGVySWRlbnRpZmllciwgW10oYXV0byYgaGFuZGxlcikgeworICAgICAg
ICBoYW5kbGVyLmRpZERldGVjdEVycm9yKCk7CisgICAgfSk7Cit9CisKK3ZvaWQgUlRDRGF0YUNo
YW5uZWxSZW1vdGVNYW5hZ2VyOjpidWZmZXJlZEFtb3VudElzRGVjcmVhc2luZyhXZWJDb3JlOjpS
VENEYXRhQ2hhbm5lbElkZW50aWZpZXIgaGFuZGxlcklkZW50aWZpZXIsIHNpemVfdCBhbW91bnQp
Cit7CisgICAgcG9zdFRhc2tUb0hhbmRsZXIoaGFuZGxlcklkZW50aWZpZXIsIFthbW91bnRdKGF1
dG8mIGhhbmRsZXIpIHsKKyAgICAgICAgaGFuZGxlci5idWZmZXJlZEFtb3VudElzRGVjcmVhc2lu
ZyhhbW91bnQpOworICAgIH0pOworfQorCitSZWY8UlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2Vy
OjpSZW1vdGVIYW5kbGVyQ29ubmVjdGlvbj4gUlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyOjpS
ZW1vdGVIYW5kbGVyQ29ubmVjdGlvbjo6Y3JlYXRlKFJlZjxXb3JrUXVldWU+JiYgcXVldWUpCit7
CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVtb3RlSGFuZGxlckNvbm5lY3Rpb24oV1RGTW92
ZShxdWV1ZSkpKTsKK30KKworUlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyOjpSZW1vdGVIYW5k
bGVyQ29ubmVjdGlvbjo6UmVtb3RlSGFuZGxlckNvbm5lY3Rpb24oUmVmPFdvcmtRdWV1ZT4mJiBx
dWV1ZSkKKyAgICA6IG1fY29ubmVjdGlvbihXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVO
ZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkpCisgICAgLCBtX3F1ZXVlKFdU
Rk1vdmUocXVldWUpKQoreworfQorCit2b2lkIFJUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlcjo6
UmVtb3RlSGFuZGxlckNvbm5lY3Rpb246OmNvbm5lY3RUb1NvdXJjZShXZWJDb3JlOjpSVENEYXRh
Q2hhbm5lbFJlbW90ZUhhbmRsZXImIGhhbmRsZXIsIFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNv
bnRleHRJZGVudGlmaWVyIGNvbnRleHRJZGVudGlmaWVyLCBXZWJDb3JlOjpSVENEYXRhQ2hhbm5l
bElkZW50aWZpZXIgbG9jYWxJZGVudGlmaWVyLCBXZWJDb3JlOjpSVENEYXRhQ2hhbm5lbElkZW50
aWZpZXIgcmVtb3RlSWRlbnRpZmllcikKK3sKKyAgICBtX3F1ZXVlLT5kaXNwYXRjaChbaGFuZGxl
ciA9IG1ha2VXZWFrUHRyKGhhbmRsZXIpLCBjb250ZXh0SWRlbnRpZmllciwgbG9jYWxJZGVudGlm
aWVyXSgpIG11dGFibGUgeworICAgICAgICBSVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXI6OnNo
YXJlZE1hbmFnZXIoKS5tX2hhbmRsZXJzLmFkZChsb2NhbElkZW50aWZpZXIuY2hhbm5lbElkZW50
aWZpZXIsIFJlbW90ZUhhbmRsZXIgeyBXVEZNb3ZlKGhhbmRsZXIpLCBjb250ZXh0SWRlbnRpZmll
ciB9KTsKKyAgICB9KTsKKyAgICBtX2Nvbm5lY3Rpb24tPnNlbmRXaXRoQXN5bmNSZXBseShNZXNz
YWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OkNvbm5lY3RUb1JUQ0RhdGFDaGFu
bmVsUmVtb3RlU291cmNlIHsgbG9jYWxJZGVudGlmaWVyLCByZW1vdGVJZGVudGlmaWVyIH0sIFts
b2NhbElkZW50aWZpZXJdKGF1dG8mJiByZXN1bHQpIHsKKyAgICAgICAgUlRDRGF0YUNoYW5uZWxS
ZW1vdGVNYW5hZ2VyOjpzaGFyZWRNYW5hZ2VyKCkucG9zdFRhc2tUb0hhbmRsZXIobG9jYWxJZGVu
dGlmaWVyLCBbcmVzdWx0XShhdXRvJiBoYW5kbGVyKSB7CisgICAgICAgICAgICBpZiAoIXJlc3Vs
dCB8fCAhKnJlc3VsdCkgeworICAgICAgICAgICAgICAgIGhhbmRsZXIuZGlkRGV0ZWN0RXJyb3Io
KTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICBo
YW5kbGVyLnJlYWR5VG9TZW5kKCk7CisgICAgICAgIH0pOworICAgIH0sIDApOworfQorCit2b2lk
IFJUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlcjo6UmVtb3RlSGFuZGxlckNvbm5lY3Rpb246OnNl
bmREYXRhKFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsSWRlbnRpZmllciBpZGVudGlmaWVyLCBib29s
IGlzUmF3LCBjb25zdCB1bnNpZ25lZCBjaGFyKiBkYXRhLCBzaXplX3Qgc2l6ZSkKK3sKKyAgICBt
X2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlJUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlclBy
b3h5OjpTZW5kRGF0YSB7IGlkZW50aWZpZXIsIGlzUmF3LCBJUEM6OkRhdGFSZWZlcmVuY2UgeyBk
YXRhLCBzaXplIH0gfSwgMCk7Cit9CisKK3ZvaWQgUlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2Vy
OjpSZW1vdGVIYW5kbGVyQ29ubmVjdGlvbjo6Y2xvc2UoV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWxJ
ZGVudGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAgLy8gRklYTUU6IFdlIG5lZWQgdG8gd2FpdCB0
byBzZW5kIHRoaXMgbWVzc2FnZSB1bnRpbCBSVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXJQcm94
eTo6Q29ubmVjdFRvU291cmNlIGlzIGFjdHVhbGx5IHNlbnQuCisgICAgbV9jb25uZWN0aW9uLT5z
ZW5kKE1lc3NhZ2VzOjpSVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXJQcm94eTo6Q2xvc2UgeyBp
ZGVudGlmaWVyIH0sIDApOworfQorCitSZWY8UlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyOjpS
ZW1vdGVTb3VyY2VDb25uZWN0aW9uPiBSVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXI6OlJlbW90
ZVNvdXJjZUNvbm5lY3Rpb246OmNyZWF0ZSgpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
UmVtb3RlU291cmNlQ29ubmVjdGlvbik7Cit9CisKK1JUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdl
cjo6UmVtb3RlU291cmNlQ29ubmVjdGlvbjo6UmVtb3RlU291cmNlQ29ubmVjdGlvbigpCisgICAg
OiBtX2Nvbm5lY3Rpb24oV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlTmV0d29ya1Byb2Nl
c3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpKQoreworfQorCit2b2lkIFJUQ0RhdGFDaGFubmVs
UmVtb3RlTWFuYWdlcjo6UmVtb3RlU291cmNlQ29ubmVjdGlvbjo6ZGlkQ2hhbmdlUmVhZHlTdGF0
ZShXZWJDb3JlOjpSVENEYXRhQ2hhbm5lbElkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6
UlRDRGF0YUNoYW5uZWxTdGF0ZSBzdGF0ZSkKK3sKKyAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVz
c2FnZXM6OlJUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlclByb3h5OjpDaGFuZ2VSZWFkeVN0YXRl
IHsgaWRlbnRpZmllciwgc3RhdGUgfSwgMCk7Cit9CisKK3ZvaWQgUlRDRGF0YUNoYW5uZWxSZW1v
dGVNYW5hZ2VyOjpSZW1vdGVTb3VyY2VDb25uZWN0aW9uOjpkaWRSZWNlaXZlU3RyaW5nRGF0YShX
ZWJDb3JlOjpSVENEYXRhQ2hhbm5lbElkZW50aWZpZXIgaWRlbnRpZmllciwgY29uc3QgU3RyaW5n
JiBzdHJpbmcpCit7CisgICAgYXV0byB0ZXh0ID0gc3RyaW5nLnV0ZjgoKTsKKyAgICBtX2Nvbm5l
Y3Rpb24tPnNlbmQoTWVzc2FnZXM6OlJUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlclByb3h5OjpS
ZWNlaXZlRGF0YSB7IGlkZW50aWZpZXIsIGZhbHNlLCBJUEM6OkRhdGFSZWZlcmVuY2UgeyByZWlu
dGVycHJldF9jYXN0PGNvbnN0IHVuc2lnbmVkIGNoYXIqPih0ZXh0LmRhdGEoKSksIHRleHQubGVu
Z3RoKCkgfSB9LCAwKTsKK30KKwordm9pZCBSVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXI6OlJl
bW90ZVNvdXJjZUNvbm5lY3Rpb246OmRpZFJlY2VpdmVSYXdEYXRhKFdlYkNvcmU6OlJUQ0RhdGFD
aGFubmVsSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBjaGFyKiBkYXRhLCBzaXplX3Qgc2l6
ZSkKK3sKKyAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlJUQ0RhdGFDaGFubmVsUmVt
b3RlTWFuYWdlclByb3h5OjpSZWNlaXZlRGF0YSB7IGlkZW50aWZpZXIsIHRydWUsIElQQzo6RGF0
YVJlZmVyZW5jZSB7IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdW5zaWduZWQgY2hhcio+KGRhdGEp
LCBzaXplICB9IH0sIDApOworfQorCit2b2lkIFJUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlcjo6
UmVtb3RlU291cmNlQ29ubmVjdGlvbjo6ZGlkRGV0ZWN0RXJyb3IoV2ViQ29yZTo6UlRDRGF0YUNo
YW5uZWxJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1l
c3NhZ2VzOjpSVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXJQcm94eTo6RGV0ZWN0RXJyb3IgeyBp
ZGVudGlmaWVyIH0sIDApOworfQorCit2b2lkIFJUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlcjo6
UmVtb3RlU291cmNlQ29ubmVjdGlvbjo6YnVmZmVyZWRBbW91bnRJc0RlY3JlYXNpbmcoV2ViQ29y
ZTo6UlRDRGF0YUNoYW5uZWxJZGVudGlmaWVyIGlkZW50aWZpZXIsIHNpemVfdCBhbW91bnQpCit7
CisgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpSVENEYXRhQ2hhbm5lbFJlbW90ZU1h
bmFnZXJQcm94eTo6QnVmZmVyZWRBbW91bnRJc0RlY3JlYXNpbmcgeyBpZGVudGlmaWVyLCBhbW91
bnQgfSwgMCk7Cit9CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvTmV0d29yay93ZWJydGMvUlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyLmggYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvUlRDRGF0YUNoYW5uZWxSZW1v
dGVNYW5hZ2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmQxMmI3YzM1ZjAwNGE0N2M1NTRmZGIxNWVlMjM5ZGU2
MmIzNTBjZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3
b3JrL3dlYnJ0Yy9SVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXIuaApAQCAtMCwwICsxLDExMyBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAg
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQor
ICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTgorICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
CisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShXRUJfUlRDKQorCisj
aW5jbHVkZSAiQ29ubmVjdGlvbi5oIgorI2luY2x1ZGUgIkRhdGFSZWZlcmVuY2UuaCIKKyNpbmNs
dWRlIDxXZWJDb3JlL1JUQ0RhdGFDaGFubmVsUmVtb3RlSGFuZGxlci5oPgorI2luY2x1ZGUgPFdl
YkNvcmUvUlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVyQ29ubmVjdGlvbi5oPgorI2luY2x1ZGUg
PFdlYkNvcmUvUlRDRGF0YUNoYW5uZWxSZW1vdGVTb3VyY2UuaD4KKyNpbmNsdWRlIDxXZWJDb3Jl
L1JUQ0RhdGFDaGFubmVsUmVtb3RlU291cmNlQ29ubmVjdGlvbi5oPgorI2luY2x1ZGUgPHd0Zi9X
b3JrUXVldWUuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFJUQ0RhdGFDaGFubmVs
UmVtb3RlTWFuYWdlciBmaW5hbCA6IHB1YmxpYyBJUEM6OkNvbm5lY3Rpb246OldvcmtRdWV1ZU1l
c3NhZ2VSZWNlaXZlciB7CitwdWJsaWM6CisgICAgc3RhdGljIFJUQ0RhdGFDaGFubmVsUmVtb3Rl
TWFuYWdlciYgc2hhcmVkTWFuYWdlcigpOworCisgICAgV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWxS
ZW1vdGVIYW5kbGVyQ29ubmVjdGlvbiYgcmVtb3RlSGFuZGxlckNvbm5lY3Rpb24oKTsKKyAgICB2
b2lkIHNldENvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uKik7CisgICAgYm9vbCBjb25uZWN0VG9S
ZW1vdGVTb3VyY2UoV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWxJZGVudGlmaWVyIHNvdXJjZSwgV2Vi
Q29yZTo6UlRDRGF0YUNoYW5uZWxJZGVudGlmaWVyIGhhbmRsZXIpOworCitwcml2YXRlOgorICAg
IFJUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlcigpOworCisgICAgLy8gSVBDOjpDb25uZWN0aW9u
OjpXb3JrUXVldWVNZXNzYWdlUmVjZWl2ZXIKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQ
Qzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIGZpbmFsOworCisgICAgLy8gTWVzc2FnZXMK
KyAgICB2b2lkIHNlbmREYXRhKFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsSWRlbnRpZmllciwgYm9v
bCBpc1JhdywgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJik7CisgICAgdm9pZCBjbG9zZShXZWJD
b3JlOjpSVENEYXRhQ2hhbm5lbElkZW50aWZpZXIpOworCisgICAgLy8gVG8gaGFuZGxlcgorICAg
IHZvaWQgY2hhbmdlUmVhZHlTdGF0ZShXZWJDb3JlOjpSVENEYXRhQ2hhbm5lbElkZW50aWZpZXIs
IFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsU3RhdGUpOworICAgIHZvaWQgcmVjZWl2ZURhdGEoV2Vi
Q29yZTo6UlRDRGF0YUNoYW5uZWxJZGVudGlmaWVyLCBib29sIGlzUmF3LCBjb25zdCBJUEM6OkRh
dGFSZWZlcmVuY2UmKTsKKyAgICB2b2lkIGRldGVjdEVycm9yKFdlYkNvcmU6OlJUQ0RhdGFDaGFu
bmVsSWRlbnRpZmllcik7CisgICAgdm9pZCBidWZmZXJlZEFtb3VudElzRGVjcmVhc2luZyhXZWJD
b3JlOjpSVENEYXRhQ2hhbm5lbElkZW50aWZpZXIsIHNpemVfdCk7CisKKyAgICBXZWJDb3JlOjpS
VENEYXRhQ2hhbm5lbFJlbW90ZVNvdXJjZUNvbm5lY3Rpb24mIHJlbW90ZVNvdXJjZUNvbm5lY3Rp
b24oKTsKKyAgICB2b2lkIHBvc3RUYXNrVG9IYW5kbGVyKFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVs
SWRlbnRpZmllciwgRnVuY3Rpb248dm9pZChXZWJDb3JlOjpSVENEYXRhQ2hhbm5lbFJlbW90ZUhh
bmRsZXImKT4mJik7CisgICAgV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWxSZW1vdGVTb3VyY2UqIHNv
dXJjZUZyb21JZGVudGlmaWVyKFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsSWRlbnRpZmllcik7CisK
KyAgICBjbGFzcyBSZW1vdGVIYW5kbGVyQ29ubmVjdGlvbiA6IHB1YmxpYyBXZWJDb3JlOjpSVENE
YXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXJDb25uZWN0aW9uIHsKKyAgICBwdWJsaWM6CisgICAgICAg
IHN0YXRpYyBSZWY8UmVtb3RlSGFuZGxlckNvbm5lY3Rpb24+IGNyZWF0ZShSZWY8V29ya1F1ZXVl
PiYmKTsKKworICAgICAgICB2b2lkIGNvbm5lY3RUb1NvdXJjZShXZWJDb3JlOjpSVENEYXRhQ2hh
bm5lbFJlbW90ZUhhbmRsZXImLCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRp
ZmllciwgV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWxJZGVudGlmaWVyLCBXZWJDb3JlOjpSVENEYXRh
Q2hhbm5lbElkZW50aWZpZXIpIGZpbmFsOworICAgICAgICB2b2lkIHNlbmREYXRhKFdlYkNvcmU6
OlJUQ0RhdGFDaGFubmVsSWRlbnRpZmllciwgYm9vbCBpc1JhdywgY29uc3QgdW5zaWduZWQgY2hh
ciosIHNpemVfdCkgZmluYWw7CisgICAgICAgIHZvaWQgY2xvc2UoV2ViQ29yZTo6UlRDRGF0YUNo
YW5uZWxJZGVudGlmaWVyKSBmaW5hbDsKKworICAgIHByaXZhdGU6CisgICAgICAgIGV4cGxpY2l0
IFJlbW90ZUhhbmRsZXJDb25uZWN0aW9uKFJlZjxXb3JrUXVldWU+JiYpOworCisgICAgICAgIFJl
ZjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKKyAgICAgICAgUmVmPFdvcmtRdWV1ZT4g
bV9xdWV1ZTsKKyAgICB9OworCisgICAgY2xhc3MgUmVtb3RlU291cmNlQ29ubmVjdGlvbiA6IHB1
YmxpYyBXZWJDb3JlOjpSVENEYXRhQ2hhbm5lbFJlbW90ZVNvdXJjZUNvbm5lY3Rpb24geworICAg
IHB1YmxpYzoKKyAgICAgICAgc3RhdGljIFJlZjxSZW1vdGVTb3VyY2VDb25uZWN0aW9uPiBjcmVh
dGUoKTsKKworICAgIHByaXZhdGU6CisgICAgICAgIFJlbW90ZVNvdXJjZUNvbm5lY3Rpb24oKTsK
KworICAgICAgICB2b2lkIGRpZENoYW5nZVJlYWR5U3RhdGUoV2ViQ29yZTo6UlRDRGF0YUNoYW5u
ZWxJZGVudGlmaWVyLCBXZWJDb3JlOjpSVENEYXRhQ2hhbm5lbFN0YXRlKSBmaW5hbDsKKyAgICAg
ICAgdm9pZCBkaWRSZWNlaXZlU3RyaW5nRGF0YShXZWJDb3JlOjpSVENEYXRhQ2hhbm5lbElkZW50
aWZpZXIsIGNvbnN0IFN0cmluZyYpIGZpbmFsOworICAgICAgICB2b2lkIGRpZFJlY2VpdmVSYXdE
YXRhKFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsSWRlbnRpZmllciwgY29uc3QgY2hhciosIHNpemVf
dCkgZmluYWw7CisgICAgICAgIHZvaWQgZGlkRGV0ZWN0RXJyb3IoV2ViQ29yZTo6UlRDRGF0YUNo
YW5uZWxJZGVudGlmaWVyKSBmaW5hbDsKKyAgICAgICAgdm9pZCBidWZmZXJlZEFtb3VudElzRGVj
cmVhc2luZyhXZWJDb3JlOjpSVENEYXRhQ2hhbm5lbElkZW50aWZpZXIsIHNpemVfdCkgZmluYWw7
CisKKyAgICAgICAgUmVmPElQQzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOworICAgIH07CisK
KyAgICBzdHJ1Y3QgUmVtb3RlSGFuZGxlciB7CisgICAgICAgIFdlYWtQdHI8V2ViQ29yZTo6UlRD
RGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVyPiBoYW5kbGVyOworICAgICAgICBXZWJDb3JlOjpTY3Jp
cHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciBjb250ZXh0SWRlbnRpZmllcjsKKyAgICB9Owor
CisgICAgUmVmPFdvcmtRdWV1ZT4gbV9xdWV1ZTsKKyAgICBSZWZQdHI8SVBDOjpDb25uZWN0aW9u
PiBtX2Nvbm5lY3Rpb247CisgICAgUmVmUHRyPFJlbW90ZUhhbmRsZXJDb25uZWN0aW9uPiBtX3Jl
bW90ZUhhbmRsZXJDb25uZWN0aW9uOworICAgIFJlZlB0cjxSZW1vdGVTb3VyY2VDb25uZWN0aW9u
PiBtX3JlbW90ZVNvdXJjZUNvbm5lY3Rpb247CisgICAgSGFzaE1hcDxXZWJDb3JlOjpSVENEYXRh
Q2hhbm5lbExvY2FsSWRlbnRpZmllciwgUmVmPFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsUmVtb3Rl
U291cmNlPj4gbV9zb3VyY2VzOworICAgIEhhc2hNYXA8V2ViQ29yZTo6UlRDRGF0YUNoYW5uZWxM
b2NhbElkZW50aWZpZXIsIFJlbW90ZUhhbmRsZXI+IG1faGFuZGxlcnM7Cit9OworCit9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShXRUJfUlRDKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL1JUQ0RhdGFDaGFubmVsUmVt
b3RlTWFuYWdlci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3Jr
L3dlYnJ0Yy9SVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXIubWVzc2FnZXMuaW4KbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYzhlYTVkZDZmYzNjZGFjOGQ0MDYxYTY3Y2QxZGQ3MWY1YmYzMWNiZgotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9SVENEYXRhQ2hh
bm5lbFJlbW90ZU1hbmFnZXIubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwzNyBAQAorIyBDb3B5cmln
aHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAy
LiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycgQU5ECisjIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUK
KyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IKKyMgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorIyBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UgorIyBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUgorIyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorIyBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisjaWYgRU5BQkxFKFdFQl9SVEMpCisKK21l
c3NhZ2VzIC0+IFJUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlciBOb3RSZWZDb3VudGVkIHsKKyAg
ICAvLyBUbyBzb3VyY2UKKyAgICBTZW5kRGF0YShzdHJ1Y3QgV2ViQ29yZTo6UlRDRGF0YUNoYW5u
ZWxJZGVudGlmaWVyIHNvdXJjZSwgYm9vbCBpc1JhdywgSVBDOjpEYXRhUmVmZXJlbmNlIHRleHQp
OworICAgIENsb3NlKHN0cnVjdCBXZWJDb3JlOjpSVENEYXRhQ2hhbm5lbElkZW50aWZpZXIgc291
cmNlKTsKKworICAgIC8vIFRvIGhhbmRsZXIKK8KgIMKgIENoYW5nZVJlYWR5U3RhdGUoc3RydWN0
IFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsSWRlbnRpZmllciBoYW5kbGVyLCBlbnVtOnVpbnQ4X3Qg
V2ViQ29yZTo6UlRDRGF0YUNoYW5uZWxTdGF0ZSBzdGF0ZSk7CivCoCDCoCBSZWNlaXZlRGF0YShz
dHJ1Y3QgV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWxJZGVudGlmaWVyIGhhbmRsZXIsIGJvb2wgaXNS
YXcsIElQQzo6RGF0YVJlZmVyZW5jZSBkYXRhKTsKK8KgIMKgIERldGVjdEVycm9yKHN0cnVjdCBX
ZWJDb3JlOjpSVENEYXRhQ2hhbm5lbElkZW50aWZpZXIgaGFuZGxlcik7CivCoCDCoCBCdWZmZXJl
ZEFtb3VudElzRGVjcmVhc2luZyhzdHJ1Y3QgV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWxJZGVudGlm
aWVyIGhhbmRsZXIsIHNpemVfdCBhbW91bnQpOworfQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQl9S
VEMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0Nv
bnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3Rv
cmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAKaW5kZXggNDYyNGM4MzU2OWFi
OTE1MDE5NWU0NjQ0NmMwNDYyNGU1ZDAwMjljZC4uYjM5YWJiMjIwMzBkOGRjYjgwMDFiODNlMDQ1
MDJhZThlM2MxZmY0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3Jh
Z2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcApAQCAt
MzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJOZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzc01lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NN
ZXNzYWdlcy5oIgorI2luY2x1ZGUgIlJUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlci5oIgogI2lu
Y2x1ZGUgIlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlNlcnZp
Y2VXb3JrZXJJbml0aWFsaXphdGlvbkRhdGEuaCIKICNpbmNsdWRlICJXZWJDYWNoZVN0b3JhZ2VQ
cm92aWRlci5oIgpAQCAtNzQsNiArNzUsMTYgQEAgdXNpbmcgbmFtZXNwYWNlIFBBTDsKIHVzaW5n
IG5hbWVzcGFjZSBXZWJDb3JlOwogCiAKKyNpZiBFTkFCTEUoV0VCX1JUQykKK2NsYXNzIFNlcnZp
Y2VXb3JrZXJMaWJXZWJSVENQcm92aWRlciBmaW5hbCA6IHB1YmxpYyBXZWJDb3JlOjpMaWJXZWJS
VENQcm92aWRlciB7CitwdWJsaWM6CisgICAgU2VydmljZVdvcmtlckxpYldlYlJUQ1Byb3ZpZGVy
KCkgPSBkZWZhdWx0OworCitwcml2YXRlOgorICAgIFJlZlB0cjxXZWJDb3JlOjpSVENEYXRhQ2hh
bm5lbFJlbW90ZUhhbmRsZXJDb25uZWN0aW9uPiBjcmVhdGVSVENEYXRhQ2hhbm5lbFJlbW90ZUhh
bmRsZXJDb25uZWN0aW9uKCkgZmluYWwgeyByZXR1cm4gJlJUQ0RhdGFDaGFubmVsUmVtb3RlTWFu
YWdlcjo6c2hhcmVkTWFuYWdlcigpLnJlbW90ZUhhbmRsZXJDb25uZWN0aW9uKCk7IH0KK307Cisj
ZW5kaWYKKwogU2VydmljZVdvcmtlckZyYW1lTG9hZGVyQ2xpZW50OjpTZXJ2aWNlV29ya2VyRnJh
bWVMb2FkZXJDbGllbnQoV2ViUGFnZVByb3h5SWRlbnRpZmllciB3ZWJQYWdlUHJveHlJRCwgUGFn
ZUlkZW50aWZpZXIgcGFnZUlELCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgU3RyaW5n
JiB1c2VyQWdlbnQpCiAgICAgOiBtX3dlYlBhZ2VQcm94eUlEKHdlYlBhZ2VQcm94eUlEKQogICAg
ICwgbV9wYWdlSUQocGFnZUlEKQpAQCAtMTMzLDYgKzE0NCw5IEBAIHZvaWQgV2ViU1dDb250ZXh0
TWFuYWdlckNvbm5lY3Rpb246Omluc3RhbGxTZXJ2aWNlV29ya2VyKGNvbnN0IFNlcnZpY2VXb3Jr
ZXJDb250CiAjZW5kaWYKICAgICBwYWdlQ29uZmlndXJhdGlvbi5zb2NrZXRQcm92aWRlciA9IFdl
YlNvY2tldFByb3ZpZGVyOjpjcmVhdGUoKTsKICAgICBwYWdlQ29uZmlndXJhdGlvbi51c2VyQ29u
dGVudFByb3ZpZGVyID0gbV91c2VyQ29udGVudENvbnRyb2xsZXI7CisjaWYgRU5BQkxFKFdFQl9S
VEMpCisgICAgcGFnZUNvbmZpZ3VyYXRpb24ubGliV2ViUlRDUHJvdmlkZXIgPSBtYWtlVW5pcXVl
UmVmPFNlcnZpY2VXb3JrZXJMaWJXZWJSVENQcm92aWRlcj4oKTsKKyNlbmRpZgogCiAgICAgYXV0
byBlZmZlY3RpdmVVc2VyQWdlbnQgPSAgV1RGTW92ZSh1c2VyQWdlbnQpOwogICAgIGlmIChlZmZl
Y3RpdmVVc2VyQWdlbnQuaXNOdWxsKCkpCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9U
b29scy9DaGFuZ2VMb2cKaW5kZXggNDQzOWI4ZjU1MWVlZTcyMmU5ZmYxYTFjMzZiMGYzOWQ2N2Ri
ZTFjZi4uM2U3OWM3ZGMwZGQ0MjNlZDMzNzk1ODhjZDJjYWQ0Yjc5OWI5ZWEwMyAxMDA2NDQKLS0t
IGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBA
CisyMDIxLTAzLTE4ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAg
ICBJbXBsZW1lbnQgUlRDRGF0YUNoYW5uZWwgdHJhbnNmZXIgb3V0IG9mIHByb2Nlc3MKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMzQ0MworCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGZpcnN0IHRyeSBhdCBy
ZW1vdGUgY2hhbm5lbHMKKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorCiAyMDIxLTAzLTE3ICBZb3Vlbm4gRmFibGV0ICA8
eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBHZW9sb2NhdGlvbiBBUEkgZG9lcyBub3Qgd29y
ayBpbiBXS1dlYlZpZXcgd2l0aCBjdXN0b20gVVJMIHNjaGVtZSBoYW5kbGVyCmRpZmYgLS1naXQg
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvaiBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCmluZGV4IGUyNDQwYmJiNGFlMDMxN2NjMjhhYWE4MTZmODc2MWMzM2NkMGI3Zjcu
LjE0MTUzNzdlYzNlMTY0M2U3ZWU2NWNlNjg4MjExNGI5NTU2MjExZmMgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCkBAIC0yMzUsNiArMjM1LDcgQEAKIAkJM0ZCRDFCNEExRDNENjZBQjAwRTZENkZB
IC8qIEZ1bGxzY3JlZW5MYXlvdXRDb25zdHJhaW50cy5odG1sIGluIENvcHkgUmVzb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDNGQkQxQjQ5MUQzOUQxREIwMEU2RDZG
QSAvKiBGdWxsc2NyZWVuTGF5b3V0Q29uc3RyYWludHMuaHRtbCAqLzsgfTsKIAkJM0ZDQzRGRTUx
RUM0RTg1MjAwNzZFMzdDIC8qIFBpY3R1cmVJblBpY3R1cmVEZWxlZ2F0ZS5tbSBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDNGQ0M0RkU0MUVDNEU4NTIwMDc2
RTM3QyAvKiBQaWN0dXJlSW5QaWN0dXJlRGVsZWdhdGUubW0gKi87IH07CiAJCTNGQ0M0RkU4MUVD
NEU4Q0EwMDc2RTM3QyAvKiBQaWN0dXJlSW5QaWN0dXJlRGVsZWdhdGUuaHRtbCBpbiBDb3B5IFJl
c291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzRkNDNEZFNjFFQzRF
ODdFMDA3NkUzN0MgLyogUGljdHVyZUluUGljdHVyZURlbGVnYXRlLmh0bWwgKi87IH07CisJCTQx
MTIyM0M3MjYwMzVGQkYwMEIwQTBCNiAvKiBXZWJSVEMubW0gaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTEyMjNDNjI2MDM1RkJFMDBCMEEwQjYgLyogV2Vi
UlRDLm1tICovOyB9OwogCQk0MTE1NzIzNzIzNEIyNDBDMDA1MEExRDEgLyogR2V0VXNlck1lZGlh
Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDExNTcy
MzYyMzRCMjQwNDAwNTBBMUQxIC8qIEdldFVzZXJNZWRpYS5tbSAqLzsgfTsKIAkJNDEzNUZCODQy
MDExRkFBNzAwMzMyMTM5IC8qIEluamVjdEludGVybmFsc19CdW5kbGUuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEzNUZCODMyMDExRkFBMzAwMzMy
MTM5IC8qIEluamVjdEludGVybmFsc19CdW5kbGUuY3BwICovOyB9OwogCQk0MTM1RkI4NTIwMTFG
QUJGMDAzMzIxMzkgLyogbGliV2ViQ29yZVRlc3RTdXBwb3J0LmR5bGliIGluIEZyYW1ld29ya3Mg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEzNUZCODYyMDExRkFCRjAwMzMy
MTM5IC8qIGxpYldlYkNvcmVUZXN0U3VwcG9ydC5keWxpYiAqLzsgfTsKQEAgLTE5OTcsNiArMTk5
OCw3IEBACiAJCTNGQkQxQjQ5MUQzOUQxREIwMEU2RDZGQSAvKiBGdWxsc2NyZWVuTGF5b3V0Q29u
c3RyYWludHMuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9IEZ1bGxzY3JlZW5MYXlv
dXRDb25zdHJhaW50cy5odG1sOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzRkNDNEZF
NDFFQzRFODUyMDA3NkUzN0MgLyogUGljdHVyZUluUGljdHVyZURlbGVnYXRlLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUGljdHVyZUluUGljdHVyZURlbGVnYXRl
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzRkNDNEZFNjFFQzRFODdFMDA3NkUz
N0MgLyogUGljdHVyZUluUGljdHVyZURlbGVnYXRlLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7
IHBhdGggPSBQaWN0dXJlSW5QaWN0dXJlRGVsZWdhdGUuaHRtbDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJNDExMjIzQzYyNjAzNUZCRTAwQjBBMEI2IC8qIFdlYlJUQy5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYlJUQy5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNDExNTcyMzYyMzRCMjQwNDAwNTBBMUQxIC8qIEdldFVzZXJNZWRp
YS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEdldFVzZXJNZWRp
YS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDEzNUZCODMyMDExRkFBMzAwMzMy
MTM5IC8qIEluamVjdEludGVybmFsc19CdW5kbGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBuYW1lID0gSW5qZWN0SW50ZXJuYWxzX0J1bmRsZS5jcHA7IHBhdGggPSBUZXN0cy9J
bmplY3RJbnRlcm5hbHNfQnVuZGxlLmNwcDsgc291cmNlVHJlZSA9IFNPVVJDRV9ST09UOyB9Owog
CQk0MTM1RkI4NjIwMTFGQUJGMDAzMzIxMzkgLyogbGliV2ViQ29yZVRlc3RTdXBwb3J0LmR5bGli
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUgPSAiY29tcGls
ZWQubWFjaC1vLmR5bGliIjsgcGF0aCA9IGxpYldlYkNvcmVUZXN0U3VwcG9ydC5keWxpYjsgc291
cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKQEAgLTQyNzIsNiArNDI3NCw3IEBACiAJ
CQkJMTE1RUIzNDIxRUUwQjcyMDAwM0MyQzBBIC8qIFZpZXdwb3J0U2l6ZUZvclZpZXdwb3J0VW5p
dHMubW0gKi8sCiAJCQkJNTIwQkNGNEIxNDFFQjA5RTAwOTM3RUE4IC8qIFdlYkFyY2hpdmUuY3Bw
ICovLAogCQkJCTUyMEJDRjRBMTQxRUIwOUUwMDkzN0VBOCAvKiBXZWJBcmNoaXZlX0J1bmRsZS5j
cHAgKi8sCisJCQkJNDExMjIzQzYyNjAzNUZCRTAwQjBBMEI2IC8qIFdlYlJUQy5tbSAqLywKIAkJ
CQk3Q0ZCQ0FERDE3NDMyMzRGMDBCMkJGQ0YgLyogV2lsbExvYWQuY3BwICovLAogCQkJCTdDRkJD
QUUzMTc0MzIzOEUwMEIyQkZDRiAvKiBXaWxsTG9hZF9CdW5kbGUuY3BwICovLAogCQkJCTc2RTE4
MkQ5MTU0NzU1MDEwMEYxRkFERCAvKiBXaWxsU2VuZFN1Ym1pdEV2ZW50LmNwcCAqLywKQEAgLTU2
NzgsNiArNTY4MSw3IEBACiAJCQkJN0NDRTdFQUIxQTQxMUEyNDAwNDQ3QzRDIC8qIFdlYktpdEFn
bm9zdGljVGVzdC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTQ0ODExMEMyMjUzRjQwMzAwMDk3RkMz
MyAvKiBXZWJQcmVmZXJlbmNlc1Rlc3QubW0gaW4gU291cmNlcyAqLywKIAkJCQk1MTcxNEVCODFD
RjhDQTE3MDA0NzIzQzQgLyogV2ViUHJvY2Vzc0tpbGxJREJDbGVhbnVwLm1tIGluIFNvdXJjZXMg
Ki8sCisJCQkJNDExMjIzQzcyNjAzNUZCRjAwQjBBMEI2IC8qIFdlYlJUQy5tbSBpbiBTb3VyY2Vz
ICovLAogCQkJCTUzNjc3MDM0MUNDODAyMjgwMEQ0MjVCMSAvKiBXZWJTY3JpcHRPYmplY3REZXNj
cmlwdGlvbi5tbSBpbiBTb3VyY2VzICovLAogCQkJCTUxMjBDODNEMUU2NzUxMjkwMDI1QjI1MCAv
KiBXZWJzaXRlRGF0YVN0b3JlQ3VzdG9tUGF0aHMubW0gaW4gU291cmNlcyAqLywKIAkJCQk1QzlF
NTY4NTFERjkxNDU0MDBDOUVFMzMgLyogV2Vic2l0ZVBvbGljaWVzLm1tIGluIFNvdXJjZXMgKi8s
CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9XZWJSVEMubW0g
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9XZWJSVEMubW0KbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MmY5MGM1YjMwNjc3NmI4ZmI5OWJjNGZjMzg5OTg3YTU2NzY4Njk5MwotLS0gL2Rldi9udWxsCisr
KyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1dlYlJUQy5tbQpAQCAtMCwwICsx
LDE4MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKFdF
Ql9SVEMpCisKKyNpbXBvcnQgIkhUVFBTZXJ2ZXIuaCIKKyNpbXBvcnQgIlBsYXRmb3JtVXRpbGl0
aWVzLmgiCisjaW1wb3J0ICJUZXN0TmF2aWdhdGlvbkRlbGVnYXRlLmgiCisjaW1wb3J0ICJUZXN0
V0tXZWJWaWV3LmgiCisKK0BpbnRlcmZhY2UgV2ViUlRDTWVzc2FnZUhhbmRsZXIgOiBOU09iamVj
dCA8V0tTY3JpcHRNZXNzYWdlSGFuZGxlcj4KKy0gKHZvaWQpc2V0TWVzc2FnZUhhbmRsZXI6KEZ1
bmN0aW9uPHZvaWQoV0tTY3JpcHRNZXNzYWdlKik+JiYpbWVzc2FnZUhhbmRsZXI7CitAZW5kCisK
K0BpbXBsZW1lbnRhdGlvbiBXZWJSVENNZXNzYWdlSGFuZGxlciAgeworRnVuY3Rpb248dm9pZChX
S1NjcmlwdE1lc3NhZ2UqKT4gX21lc3NhZ2VIYW5kbGVyOworfQorLSAodm9pZClzZXRNZXNzYWdl
SGFuZGxlcjooRnVuY3Rpb248dm9pZChXS1NjcmlwdE1lc3NhZ2UqKT4mJiltZXNzYWdlSGFuZGxl
ciB7CisgICAgX21lc3NhZ2VIYW5kbGVyID0gV1RGTW92ZShtZXNzYWdlSGFuZGxlcik7Cit9Cist
ICh2b2lkKXVzZXJDb250ZW50Q29udHJvbGxlcjooV0tVc2VyQ29udGVudENvbnRyb2xsZXIgKil1
c2VyQ29udGVudENvbnRyb2xsZXIgZGlkUmVjZWl2ZVNjcmlwdE1lc3NhZ2U6KFdLU2NyaXB0TWVz
c2FnZSAqKW1lc3NhZ2UKK3sKKyAgICBpZiAoX21lc3NhZ2VIYW5kbGVyKQorICAgICAgICBfbWVz
c2FnZUhhbmRsZXIobWVzc2FnZSk7Cit9CitAZW5kCisKK25hbWVzcGFjZSBUZXN0V2ViS2l0QVBJ
IHsKKworc3RhdGljIGJvb2wgaXNSZWFkeSA9IGZhbHNlOworCitURVNUKFdlYktpdDIsIFJUQ0Rh
dGFDaGFubmVsUG9zdE1lc3NhZ2UpCit7CisgICAgX19ibG9jayBib29sIHJlbW92ZWRBbnlFeGlz
dGluZ0RhdGEgPSBmYWxzZTsKKyAgICBbW1dLV2Vic2l0ZURhdGFTdG9yZSBkZWZhdWx0RGF0YVN0
b3JlXSByZW1vdmVEYXRhT2ZUeXBlczpbV0tXZWJzaXRlRGF0YVN0b3JlIGFsbFdlYnNpdGVEYXRh
VHlwZXNdIG1vZGlmaWVkU2luY2U6W05TRGF0ZSBkaXN0YW50UGFzdF0gY29tcGxldGlvbkhhbmRs
ZXI6XigpIHsKKyAgICAgICAgcmVtb3ZlZEFueUV4aXN0aW5nRGF0YSA9IHRydWU7CisgICAgfV07
CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZW1vdmVkQW55RXhpc3RpbmdEYXRhKTsK
KworICAgIHN0YXRpYyBjb25zdCBjaGFyKiBtYWluID0KKyAgICAiPHNjcmlwdD4iCisgICAgImxl
dCByZWdpc3RyYXRpb247IgorICAgICJhc3luYyBmdW5jdGlvbiByZWdpc3RlcigpIHsiCisgICAg
IiAgICByZWdpc3RyYXRpb24gPSBhd2FpdCBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5yZWdpc3Rl
cignL3N3LmpzJyk7IgorICAgICIgICAgaWYgKHJlZ2lzdHJhdGlvbi5hY3RpdmUpIHsiCisgICAg
IiAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMud2VicnRjLnBvc3RNZXNzYWdl
KCdSRUFEWScpOyIKKyAgICAiICAgICAgICByZXR1cm47IgorICAgICIgICAgfSIKKyAgICAiICAg
IHdvcmtlciA9IHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nOyIKKyAgICAiICAgIHdvcmtlci5hZGRF
dmVudExpc3RlbmVyKCdzdGF0ZWNoYW5nZScsIGZ1bmN0aW9uKCkgeyIKKyAgICAiICAgICAgICBp
ZiAod29ya2VyLnN0YXRlID09ICdhY3RpdmF0ZWQnKSIKKyAgICAiICAgICAgICAgICAgd2luZG93
LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMud2VicnRjLnBvc3RNZXNzYWdlKCdSRUFEWScpOyIKKyAg
ICAiICAgIH0pOyIKKyAgICAifSIKKyAgICAicmVnaXN0ZXIoKTsiCisgICAgIiIKKyAgICAibGV0
IGNoYW5uZWwxLCBjaGFubmVsMjsiCisgICAgImxldCBwYzEsIHBjMjsiCisgICAgImFzeW5jIGZ1
bmN0aW9uIGRvVHJhbnNmZXJEYXRhQ2hhbm5lbFRlc3QoKSB7IgorICAgICAgICAicGMxID0gbmV3
IFJUQ1BlZXJDb25uZWN0aW9uKCk7IgorICAgICAgICAicGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0
aW9uKCk7IgorICAgICAgICAiIgorICAgICAgICAicGMxLm9uaWNlY2FuZGlkYXRlID0gKGV2ZW50
KSA9PiBwYzIuYWRkSWNlQ2FuZGlkYXRlKGV2ZW50LmNhbmRpZGF0ZSk7IgorICAgICAgICAicGMy
Lm9uaWNlY2FuZGlkYXRlID0gKGV2ZW50KSA9PiBwYzEuYWRkSWNlQ2FuZGlkYXRlKGV2ZW50LmNh
bmRpZGF0ZSk7IgorICAgICAgICAiIgorICAgICAgICAiY2hhbm5lbDEgPSBwYzEuY3JlYXRlRGF0
YUNoYW5uZWwoJ3Rlc3QnKTsiCisgICAgICAgICJyZWdpc3RyYXRpb24uYWN0aXZlLnBvc3RNZXNz
YWdlKHsgY2hhbm5lbDogY2hhbm5lbDEgfSwgW2NoYW5uZWwxXSk7IgorICAgICAgICAibGV0IHBy
b21pc2UgPSBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHBjMi5vbmRhdGFjaGFubmVsID0gKGV2ZW50
KSA9PiByZXNvbHZlKGV2ZW50LmNoYW5uZWwpKTsiCisgICAgICAgICIiCisgICAgICAgICJjb25z
dCBvZmZlciA9IGF3YWl0IHBjMS5jcmVhdGVPZmZlcigpOyIKKyAgICAgICAgImF3YWl0IHBjMS5z
ZXRMb2NhbERlc2NyaXB0aW9uKG9mZmVyKTsiCisgICAgICAgICJhd2FpdCBwYzIuc2V0UmVtb3Rl
RGVzY3JpcHRpb24ob2ZmZXIpOyIKKyAgICAgICAgImNvbnN0IGFuc3dlciA9IGF3YWl0IHBjMi5j
cmVhdGVBbnN3ZXIoKTsiCisgICAgICAgICJhd2FpdCBwYzIuc2V0TG9jYWxEZXNjcmlwdGlvbihh
bnN3ZXIpOyIKKyAgICAgICAgImF3YWl0IHBjMS5zZXRSZW1vdGVEZXNjcmlwdGlvbihhbnN3ZXIp
OyIKKyAgICAgICAgIiIKKyAgICAgICAgImNoYW5uZWwyID0gYXdhaXQgcHJvbWlzZTsiCisgICAg
ICAgICJpZiAoY2hhbm5lbDIucmVhZHlTdGF0ZSA9PT0gJ2Nsb3NlZCcpIHsiCisgICAgICAgICIg
ICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy53ZWJydGMucG9zdE1lc3NhZ2UoJ0NMT1NF
RCcpOyIKKyAgICAgICAgIiAgIHJldHVybjsiCisgICAgICAgICJ9IgorICAgICAgICAiaWYgKGNo
YW5uZWwyLnJlYWR5U3RhdGUgIT09ICdvcGVuJykiCisgICAgICAgICIgICAgYXdhaXQgbmV3IFBy
b21pc2UocmVzb2x2ZSA9PiBjaGFubmVsMi5vbm9wZW4gPSByZXNvbHZlKTsiCisgICAgICAgICIi
CisgICAgICAgICJwcm9taXNlID0gbmV3IFByb21pc2UocmVzb2x2ZSA9PiBuYXZpZ2F0b3Iuc2Vy
dmljZVdvcmtlci5vbm1lc3NhZ2UgPSAoZXZlbnQpID0+IHJlc29sdmUoZXZlbnQuZGF0YSkpOyIK
KyAgICAgICAgImNoYW5uZWwyLnNlbmQoJ1RSQU5TRkVSRUQnKTsiCisgICAgICAgICJ3aW5kb3cu
d2Via2l0Lm1lc3NhZ2VIYW5kbGVycy53ZWJydGMucG9zdE1lc3NhZ2UoYXdhaXQgcHJvbWlzZSk7
IgorICAgICJ9IgorICAgICJmdW5jdGlvbiB0cmFuc2ZlckRhdGFDaGFubmVsKCkgeyIKKyAgICAi
ICAgZG9UcmFuc2ZlckRhdGFDaGFubmVsVGVzdCgpOyIKKyAgICAifSIKKyAgICAiPC9zY3JpcHQ+
IjsKKworICAgIHN0YXRpYyBjb25zdCBjaGFyKiBqcyA9ICJzZWxmLm9ubWVzc2FnZSA9IChldmVu
dCkgPT4geyAiCisgICAgIiAgICBjb25zdCBzb3VyY2UgPSBldmVudC5zb3VyY2U7IgorICAgICIg
ICAgY29uc3QgY2hhbm5lbCA9IGV2ZW50LmRhdGEuY2hhbm5lbDsiCisgICAgIiAgICBpZiAoY2hh
bm5lbC5yZWFkeVN0YXRlID09PSAnY2xvc2VkJykiCisgICAgIiAgICAgICAgc291cmNlLnBvc3RN
ZXNzYWdlKCdjbG9zZWQnKTsiCisgICAgIiAgICBjaGFubmVsLm9uY2xvc2UgPSAoZSkgPT4gc291
cmNlLnBvc3RNZXNzYWdlKCdjbG9zZSBldmVudCcpOyIKKyAgICAiICAgIGNoYW5uZWwub25tZXNz
YWdlID0gKGUpID0+IHNvdXJjZS5wb3N0TWVzc2FnZShlLmRhdGEpOyIKKyAgICAifTsiOworCisg
ICAgSFRUUFNlcnZlciBzZXJ2ZXIoeworICAgICAgICB7ICIvIiwgeyBtYWluIH0gfSwKKyAgICAg
ICAgeyAiL3N3LmpzIiwgeyB7eyAiQ29udGVudC1UeXBlIiwgImFwcGxpY2F0aW9uL2phdmFzY3Jp
cHQiIH19LCBqcyB9IH0sCisgICAgICAgIHsgIi8iLCB7IG1haW4gfSB9LAorICAgIH0sIEhUVFBT
ZXJ2ZXI6OlByb3RvY29sOjpIdHRwcyk7CisgICAgYXV0byogcmVxdWVzdCA9IHNlcnZlci5yZXF1
ZXN0KCk7CisKKyAgICBhdXRvIG5hdmlnYXRpb25EZWxlZ2F0ZSA9IGFkb3B0TlMoW1Rlc3ROYXZp
Z2F0aW9uRGVsZWdhdGUgbmV3XSk7CisgICAgW25hdmlnYXRpb25EZWxlZ2F0ZSBzZXREaWRSZWNl
aXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2U6XihXS1dlYlZpZXcgKiwgTlNVUkxBdXRoZW50aWNh
dGlvbkNoYWxsZW5nZSAqY2hhbGxlbmdlLCB2b2lkICheY2FsbGJhY2spKE5TVVJMU2Vzc2lvbkF1
dGhDaGFsbGVuZ2VEaXNwb3NpdGlvbiwgTlNVUkxDcmVkZW50aWFsICopKSB7CisgICAgICAgIGNh
bGxiYWNrKE5TVVJMU2Vzc2lvbkF1dGhDaGFsbGVuZ2VVc2VDcmVkZW50aWFsLCBbTlNVUkxDcmVk
ZW50aWFsIGNyZWRlbnRpYWxGb3JUcnVzdDpjaGFsbGVuZ2UucHJvdGVjdGlvblNwYWNlLnNlcnZl
clRydXN0XSk7CisgICAgfV07CisKKyAgICBhdXRvIGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtb
V0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOworICAgIGF1dG8gbWVzc2FnZUhh
bmRsZXIgPSBhZG9wdE5TKFtbV2ViUlRDTWVzc2FnZUhhbmRsZXIgYWxsb2NdIGluaXRdKTsKKyAg
ICBbW2NvbmZpZ3VyYXRpb24gdXNlckNvbnRlbnRDb250cm9sbGVyXSBhZGRTY3JpcHRNZXNzYWdl
SGFuZGxlcjptZXNzYWdlSGFuZGxlci5nZXQoKSBuYW1lOkAid2VicnRjIl07CisKKyAgICBhdXRv
IHdlYlZpZXcxID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6
Q0dSZWN0TWFrZSgwLCAwLCAzMjAsIDUwMCkgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uLmdl
dCgpXSk7CisgICAgd2ViVmlldzEuZ2V0KCkubmF2aWdhdGlvbkRlbGVnYXRlID0gbmF2aWdhdGlv
bkRlbGVnYXRlLmdldCgpOworCisgICAgW21lc3NhZ2VIYW5kbGVyIHNldE1lc3NhZ2VIYW5kbGVy
OltdKFdLU2NyaXB0TWVzc2FnZSAqbWVzc2FnZSkgeworICAgICAgICBFWFBFQ1RfV0tfU1RSRVEo
QCJSRUFEWSIsIFttZXNzYWdlIGJvZHldKTsKKyAgICAgICAgaXNSZWFkeSA9IHRydWU7CisgICAg
fV07CisgICAgaXNSZWFkeSA9IGZhbHNlOworICAgIFt3ZWJWaWV3MSBsb2FkUmVxdWVzdDpyZXF1
ZXN0XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmlzUmVhZHkpOworCisgICAgYXV0
byB3ZWJWaWV3MiA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1l
OkNHUmVjdE1ha2UoMCwgMCwgMzIwLCA1MDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbi5n
ZXQoKV0pOworICAgIHdlYlZpZXcyLmdldCgpLm5hdmlnYXRpb25EZWxlZ2F0ZSA9IG5hdmlnYXRp
b25EZWxlZ2F0ZS5nZXQoKTsKKworICAgIFttZXNzYWdlSGFuZGxlciBzZXRNZXNzYWdlSGFuZGxl
cjpbXShXS1NjcmlwdE1lc3NhZ2UgKm1lc3NhZ2UpIHsKKyAgICAgICAgRVhQRUNUX1dLX1NUUkVR
KEAiUkVBRFkiLCBbbWVzc2FnZSBib2R5XSk7CisgICAgICAgIGlzUmVhZHkgPSB0cnVlOworICAg
IH1dOworICAgIGlzUmVhZHkgPSBmYWxzZTsKKyAgICBbd2ViVmlldzIgbG9hZFJlcXVlc3Q6cmVx
dWVzdF07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZpc1JlYWR5KTsKKworICAgIFtt
ZXNzYWdlSGFuZGxlciBzZXRNZXNzYWdlSGFuZGxlcjpbXShXS1NjcmlwdE1lc3NhZ2UgKm1lc3Nh
Z2UpIHsKKyAgICAgICAgRVhQRUNUX1dLX1NUUkVRKEAiVFJBTlNGRVJFRCIsIFttZXNzYWdlIGJv
ZHldKTsKKyAgICAgICAgaXNSZWFkeSA9IHRydWU7CisgICAgfV07CisKKyAgICAvLyBUcmFuc2Zl
ciBpcyBwcm9iYWJseSBpbi1wcm9jZXNzLgorICAgIGlzUmVhZHkgPSBmYWxzZTsKKyAgICBbd2Vi
VmlldzEgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAInRyYW5zZmVyRGF0YUNoYW5uZWwo
KSJdOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmaXNSZWFkeSk7CisKKyAgICAvLyBU
cmFuc2ZlciBpcyBwcm9iYWJseSBvdXQtb2YtcHJvY2Vzcy4KKyAgICBpc1JlYWR5ID0gZmFsc2U7
CisgICAgW3dlYlZpZXcyIHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJ0cmFuc2ZlckRh
dGFDaGFubmVsKCkiXTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmlzUmVhZHkpOwor
fQorCit9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VC
X1JUQykK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>423864</attachid>
            <date>2021-03-22 01:57:54 -0700</date>
            <delta_ts>2021-03-22 11:29:43 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-223443-20210322095751.patch</filename>
            <type>text/plain</type>
            <size>157610</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0NDcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzk0MDkxM2ExNjU1N2Ex
N2MxNTU4ZTc3NWU2N2VkMTIyOWU1MzIxYi4uZGY4YjYwMTE2MWU1OTExMWM4NDM4ZjI4OWRmZGRi
NTkxYzA1N2UyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg5IEBACisyMDIxLTAzLTE4ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgUlRDRGF0
YUNoYW5uZWwgdHJhbnNmZXIgb3V0IG9mIHByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMzQ0MworCisgICAgICAgIFJldmlld2VkIGJ5IEVy
aWMgQ2FybHNvbi4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3Igc2VyaWFsaXphdGlvbi9kZXNl
cmlhbGl6YXRpb24gb2YgUlRDRGF0YUNoYW5uZWwgaW5mb3JtYXRpb24gc28gdGhhdCBpdCBjYW4g
YmUgTWVzc2FnZVBvcnQgdHJhbnNmZXJlZCBvciB0cmFuc2ZlcmVkIHRvIG91dC1vZi1wcm9jZXNz
IGNvbnRleHRzIGxpa2UgV2luZG93IG9yIFNlcnZpY2UgV29ya2VyLgorICAgICAgICBBZGQgaW5m
cmFzdHJ1Y3R1cmUgZm9yIHJlbW90ZSBzb3VyY2VzICh0aGF0IGFsbG93cyB0byBzZW5kIGRhdGEg
b3IgY2xvc2UgZGF0YSBjaGFubmVscykgYW5kIHJlbW90ZSBoYW5kbGVycyB3aGljaCByZWNlaXZl
IG1lc3NhZ2VzIGZyb20gb3V0LW9mLXByb2Nlc3MgZGF0YSBjaGFubmVscy4KKworICAgICAgICBD
b3ZlcmVkIGJ5IEFQSSB0ZXN0cy4KKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vRGV0
YWNoZWRSVENEYXRhQ2hhbm5lbC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRldGFjaGVk
UlRDRGF0YUNoYW5uZWw6OkRldGFjaGVkUlRDRGF0YUNoYW5uZWwpOgorICAgICAgICAoV2ViQ29y
ZTo6RGV0YWNoZWRSVENEYXRhQ2hhbm5lbDo6bWVtb3J5Q29zdCBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpEZXRhY2hlZFJUQ0RhdGFDaGFubmVsOjplbmNvZGUgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6RGV0YWNoZWRSVENEYXRhQ2hhbm5lbDo6ZGVjb2RlKToKKyAgICAgICAgKiBNb2R1
bGVzL21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJU
Q0RhdGFDaGFubmVsOjpSVENEYXRhQ2hhbm5lbCk6CisgICAgICAgIChXZWJDb3JlOjpydGNEYXRh
Q2hhbm5lbExvY2FsTWFwKToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsOjpoYW5k
bGVyRnJvbUlkZW50aWZpZXIpOgorICAgICAgICAoV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWw6OmNy
ZWF0ZSk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbC5oOgor
ICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVy
LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpSVENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRs
ZXI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpSVENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRs
ZXI6OlJUQ0RhdGFDaGFubmVsUmVtb3RlSGFuZGxlcik6CisgICAgICAgIChXZWJDb3JlOjpSVENE
YXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXI6On5SVENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVyOjpkaWRDaGFuZ2VS
ZWFkeVN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsUmVtb3RlSGFuZGxl
cjo6ZGlkUmVjZWl2ZVN0cmluZ0RhdGEpOgorICAgICAgICAoV2ViQ29yZTo6UlRDRGF0YUNoYW5u
ZWxSZW1vdGVIYW5kbGVyOjpkaWRSZWNlaXZlUmF3RGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpS
VENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXI6OmRpZERldGVjdEVycm9yKToKKyAgICAgICAgKFdl
YkNvcmU6OlJUQ0RhdGFDaGFubmVsUmVtb3RlSGFuZGxlcjo6YnVmZmVyZWRBbW91bnRJc0RlY3Jl
YXNpbmcpOgorICAgICAgICAoV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVyOjpy
ZWFkeVRvU2VuZCk6CisgICAgICAgIChXZWJDb3JlOjpSVENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRs
ZXI6OnNldENsaWVudCk6CisgICAgICAgIChXZWJDb3JlOjpSVENEYXRhQ2hhbm5lbFJlbW90ZUhh
bmRsZXI6OnNlbmRTdHJpbmdEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVs
UmVtb3RlSGFuZGxlcjo6c2VuZFJhd0RhdGEpOgorICAgICAgICAoV2ViQ29yZTo6UlRDRGF0YUNo
YW5uZWxSZW1vdGVIYW5kbGVyOjpjbG9zZSk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVh
bS9SVENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXIuaDogQWRkZWQuCisgICAgICAgICogTW9kdWxl
cy9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbFJlbW90ZVNvdXJjZS5jcHA6IENvcGllZCBmcm9t
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsSGFuZGxl
ci5oLgorICAgICAgICAoV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWxSZW1vdGVTb3VyY2U6OlJUQ0Rh
dGFDaGFubmVsUmVtb3RlU291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVs
UmVtb3RlU291cmNlOjp+UlRDRGF0YUNoYW5uZWxSZW1vdGVTb3VyY2UpOgorICAgICAgICAqIE1v
ZHVsZXMvbWVkaWFzdHJlYW0vUlRDRGF0YUNoYW5uZWxSZW1vdGVTb3VyY2UuaDogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlOjpSVENEYXRhQ2hhbm5lbFJlbW90ZVNvdXJjZTo6Y3JlYXRlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsUmVtb3RlU291cmNlOjpzZW5kU3RyaW5nRGF0
YSk6CisgICAgICAgIChXZWJDb3JlOjpSVENEYXRhQ2hhbm5lbFJlbW90ZVNvdXJjZTo6c2VuZFJh
d0RhdGEpOgorICAgICAgICAoV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWxSZW1vdGVTb3VyY2U6OmNs
b3NlKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENE
YXRhQ2hhbm5lbEhhbmRsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGliV2ViUlRDRGF0YUNo
YW5uZWxIYW5kbGVyOjpwb3N0VGFzayk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRp
b1dvcmtsZXRNZXNzYWdpbmdQcm94eS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1dvcmts
ZXRNZXNzYWdpbmdQcm94eTo6Y3JlYXRlUlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVyQ29ubmVj
dGlvbik6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRNZXNzYWdpbmdQ
cm94eS5oOgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TZXJpYWxpemVkU2Ny
aXB0VmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlOjpT
ZXJpYWxpemVkU2NyaXB0VmFsdWUpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1NlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZS5oOgorICAgICAgICAoV2ViQ29yZTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlOjpl
bmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlOjpk
ZWNvZGUpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpE
b2N1bWVudDo6Y3JlYXRlUlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVyQ29ubmVjdGlvbik6Cisg
ICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgICogZG9tL1NjcmlwdEV4ZWN1dGlvbkNv
bnRleHQuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OmNyZWF0
ZVJUQ0RhdGFDaGFubmVsUmVtb3RlSGFuZGxlckNvbm5lY3Rpb24pOgorICAgICAgICAqIHBsYXRm
b3JtL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyLmg6IENvcGllZCBmcm9tIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsU3RhdGUuaC4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbEhhbmRsZXIuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsSW5pdDo6ZW5jb2RlIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsSW5pdDo6ZGVjb2RlKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbElkZW50aWZpZXIuaDogQ29waWVkIGZyb20g
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDRGF0YUNoYW5uZWxIYW5kbGVy
LmguCisgICAgICAgIChXZWJDb3JlOjpSVENEYXRhQ2hhbm5lbElkZW50aWZpZXI6OmVuY29kZSBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSVENEYXRhQ2hhbm5lbElkZW50aWZpZXI6OmRlY29k
ZSk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDRGF0YUNoYW5uZWxSZW1vdGVI
YW5kbGVyQ29ubmVjdGlvbi5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbEhhbmRsZXIuaC4KKyAgICAgICAgKiBwbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbFJlbW90ZVNvdXJjZUNvbm5lY3Rpb24uaDogQ29waWVk
IGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDRGF0YUNoYW5uZWxI
YW5kbGVyLmguCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDRGF0YUNoYW5uZWxT
dGF0ZS5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ1ByaW9yaXR5VHlwZS5o
OgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92
aWRlci5oOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6V29ya2VyR2xvYmFsU2NvcGU6OmNyZWF0ZVJUQ0RhdGFDaGFubmVsUmVtb3Rl
SGFuZGxlckNvbm5lY3Rpb24pOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUu
aDoKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlckxvYWRlclByb3h5Lmg6CisgICAgICAgICogd29y
a2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJN
ZXNzYWdpbmdQcm94eTo6Y3JlYXRlUlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVyQ29ubmVjdGlv
bik6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5oOgorICAgICAgICAq
IHdvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWRQcm94eS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHk6OmNyZWF0ZVJUQ0RhdGFD
aGFubmVsUmVtb3RlSGFuZGxlckNvbm5lY3Rpb24pOgorICAgICAgICAqIHdvcmtlcnMvc2Vydmlj
ZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWRQcm94eS5oOgorCiAyMDIxLTAzLTE3ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBSVENSdHBTY3JpcHRUcmFu
c2Zvcm1lcjo6d3JpdGFibGUgc2hvdWxkIGNoZWNrIGZvciBtX2JhY2tlbmQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXgg
MTJmNTg4OGMwYjc3MTQ4ZDc1ODZjZmE2N2M4YTJmY2U2MjExYjQyYi4uY2Q4ZTQwN2RiZWRmNjNh
NjU3MTQzOTRiNzM5ZjJjOTQ2Mjc3NjViNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw4NSBAQAorMjAy
MS0wMy0xOCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgSW1w
bGVtZW50IFJUQ0RhdGFDaGFubmVsIHRyYW5zZmVyIG91dCBvZiBwcm9jZXNzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjM0NDMKKworICAgICAgICBS
ZXZpZXdlZCBieSBFcmljIENhcmxzb24uCisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIGNvbm5l
Y3RpbmcgcmVtb3RlIHNvdXJjZXMgdG8gcmVtb3RlIGRhdGEgY2hhbm5lbHMuCisgICAgICAgIFRo
aXMgaXMgZG9uZSBieSBjb25uZWN0aW9uIGRldGFjaGVkIGRhdGEgY2hhbm5lbHMgdG8gcmVtb3Rl
IHNvdXJjZSB0aGF0IHdpbGwgc2VuZCBtZXNzYWdlcyB0byBuZXR3b3JrIHByb2Nlc3MuCisgICAg
ICAgIE5ldHdvcmsgcHJvY2VzcyB0aGVuIHNlbmRzIHRvIHRoZSBwcm9jZXNzIGluIHdoaWNoIHdh
cyByZWF0dGFjaGVkIHRoZSBkYXRhIGNoYW5uZWwuCisgICAgICAgIFBhaXJpbmcgb2YgZGF0YSBj
aGFubmVscyBpcyBkb25lIGluIG1haW4gdGhyZWFkIHRocm91Z2ggY29ubmVjdFRvU291cmNlIG1l
c3NhZ2UuCisgICAgICAgIFRoZSBkYXRhIHRoZW4gZmxvd3MgaW4gYmFja2dyb3VuZCB0aHJlYWRz
LCBuZXR3b3JrIHByb2Nlc3MgYmVpbmcgdGhlIHByb3h5IGJldHdlZW4gd2ViIHByb2Nlc3Nlcy4K
KyAgICAgICAgUlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyUHJveHkgaXMgdGhlIGZvcndhcmRp
bmcgZW50aXR5IGluIE5ldHdvcmtQcm9jZXNzLgorICAgICAgICBSVENEYXRhQ2hhbm5lbFJlbW90
ZU1hbmFnZXIgaXMgdGhlIGVudGl0eSBpbiBXZWJQcm9jZXNzIGRvaW5nIHRoZSBtZXNzYWdpbmcg
ZnJvbSBhbmQgdG8gZGF0YSBjaGFubmVscy4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0Ogor
ICAgICAgICAqIERlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3Q6CisgICAgICAgICogRGVy
aXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3Q6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMu
bWFrZToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNz
Ojp+TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpOZXR3
b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Y29ubmVjdFRvUlRDRGF0YUNoYW5uZWxSZW1vdGVT
b3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6
cmVnaXN0ZXJUb1JUQ0RhdGFDaGFubmVsUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2Vzczo6dW5yZWdpc3RlclRvUlRDRGF0YUNoYW5uZWxQcm94eSk6
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mu
aDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cy5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5j
cHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpydGNEYXRhQ2hhbm5lbFByb3h5
KToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oOgorICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9SVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXJQcm94eS5j
cHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpSVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXJQ
cm94eTo6UlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyUHJveHkpOgorICAgICAgICAoV2ViS2l0
OjpSVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXJQcm94eTo6cmVnaXN0ZXJDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6UlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2Vy
UHJveHk6OnVucmVnaXN0ZXJDb25uZWN0aW9uVG9XZWJQcm9jZXNzKToKKyAgICAgICAgKFdlYktp
dDo6UlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyUHJveHk6OnNlbmREYXRhKToKKyAgICAgICAg
KFdlYktpdDo6UlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyUHJveHk6OmNsb3NlKToKKyAgICAg
ICAgKFdlYktpdDo6UlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyUHJveHk6OmNoYW5nZVJlYWR5
U3RhdGUpOgorICAgICAgICAoV2ViS2l0OjpSVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXJQcm94
eTo6cmVjZWl2ZURhdGEpOgorICAgICAgICAoV2ViS2l0OjpSVENEYXRhQ2hhbm5lbFJlbW90ZU1h
bmFnZXJQcm94eTo6ZGV0ZWN0RXJyb3IpOgorICAgICAgICAoV2ViS2l0OjpSVENEYXRhQ2hhbm5l
bFJlbW90ZU1hbmFnZXJQcm94eTo6YnVmZmVyZWRBbW91bnRJc0RlY3JlYXNpbmcpOgorICAgICAg
ICAqIE5ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9SVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXJQcm94
eS5oOiBBZGRlZC4KKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy93ZWJydGMvUlRDRGF0YUNoYW5u
ZWxSZW1vdGVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW46IEFkZGVkLgorICAgICAgICAqIFNvdXJj
ZXMudHh0OgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwOgor
ICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OmNvbm5lY3RUb1JUQ0Rh
dGFDaGFubmVsUmVtb3RlU291cmNlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvTmV0
d29ya1Byb2Nlc3NDb25uZWN0aW9uLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL05l
dHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNz
L05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
TGliV2ViUlRDUHJvdmlkZXI6OmNyZWF0ZVJUQ0RhdGFDaGFubmVsUmVtb3RlSGFuZGxlckNvbm5l
Y3Rpb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDUHJv
dmlkZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL1JUQ0RhdGFDaGFu
bmVsUmVtb3RlTWFuYWdlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpSVENEYXRhQ2hh
bm5lbFJlbW90ZU1hbmFnZXI6OnNoYXJlZE1hbmFnZXIpOgorICAgICAgICAoV2ViS2l0OjpSVENE
YXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXI6OlJUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlcik6Cisg
ICAgICAgIChXZWJLaXQ6OlJUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlcjo6c2V0Q29ubmVjdGlv
bik6CisgICAgICAgIChXZWJLaXQ6OlJUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlcjo6Y29ubmVj
dFRvUmVtb3RlU291cmNlKToKKyAgICAgICAgKFdlYktpdDo6UlRDRGF0YUNoYW5uZWxSZW1vdGVN
YW5hZ2VyOjpyZW1vdGVIYW5kbGVyQ29ubmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OlJUQ0Rh
dGFDaGFubmVsUmVtb3RlTWFuYWdlcjo6cmVtb3RlU291cmNlQ29ubmVjdGlvbik6CisgICAgICAg
IChXZWJLaXQ6OlJUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlcjo6cG9zdFRhc2tUb0hhbmRsZXIp
OgorICAgICAgICAoV2ViS2l0OjpSVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXI6OnNvdXJjZUZy
b21JZGVudGlmaWVyKToKKyAgICAgICAgKFdlYktpdDo6UlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5h
Z2VyOjpzZW5kRGF0YSk6CisgICAgICAgIChXZWJLaXQ6OlJUQ0RhdGFDaGFubmVsUmVtb3RlTWFu
YWdlcjo6Y2xvc2UpOgorICAgICAgICAoV2ViS2l0OjpSVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFn
ZXI6OmNoYW5nZVJlYWR5U3RhdGUpOgorICAgICAgICAoV2ViS2l0OjpSVENEYXRhQ2hhbm5lbFJl
bW90ZU1hbmFnZXI6OnJlY2VpdmVEYXRhKToKKyAgICAgICAgKFdlYktpdDo6UlRDRGF0YUNoYW5u
ZWxSZW1vdGVNYW5hZ2VyOjpkZXRlY3RFcnJvcik6CisgICAgICAgIChXZWJLaXQ6OlJUQ0RhdGFD
aGFubmVsUmVtb3RlTWFuYWdlcjo6YnVmZmVyZWRBbW91bnRJc0RlY3JlYXNpbmcpOgorICAgICAg
ICAoV2ViS2l0OjpSVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXI6OlJlbW90ZUhhbmRsZXJDb25u
ZWN0aW9uOjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpSVENEYXRhQ2hhbm5lbFJlbW90ZU1h
bmFnZXI6OlJlbW90ZUhhbmRsZXJDb25uZWN0aW9uOjpSZW1vdGVIYW5kbGVyQ29ubmVjdGlvbik6
CisgICAgICAgIChXZWJLaXQ6OlJUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlcjo6UmVtb3RlSGFu
ZGxlckNvbm5lY3Rpb246OmNvbm5lY3RUb1NvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlJUQ0Rh
dGFDaGFubmVsUmVtb3RlTWFuYWdlcjo6UmVtb3RlSGFuZGxlckNvbm5lY3Rpb246OnNlbmREYXRh
KToKKyAgICAgICAgKFdlYktpdDo6UlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyOjpSZW1vdGVI
YW5kbGVyQ29ubmVjdGlvbjo6Y2xvc2UpOgorICAgICAgICAoV2ViS2l0OjpSVENEYXRhQ2hhbm5l
bFJlbW90ZU1hbmFnZXI6OlJlbW90ZVNvdXJjZUNvbm5lY3Rpb246OmNyZWF0ZSk6CisgICAgICAg
IChXZWJLaXQ6OlJUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlcjo6UmVtb3RlU291cmNlQ29ubmVj
dGlvbjo6UmVtb3RlU291cmNlQ29ubmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OlJUQ0RhdGFD
aGFubmVsUmVtb3RlTWFuYWdlcjo6UmVtb3RlU291cmNlQ29ubmVjdGlvbjo6ZGlkQ2hhbmdlUmVh
ZHlTdGF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlJUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlcjo6
UmVtb3RlU291cmNlQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZVN0cmluZ0RhdGEpOgorICAgICAgICAo
V2ViS2l0OjpSVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXI6OlJlbW90ZVNvdXJjZUNvbm5lY3Rp
b246OmRpZFJlY2VpdmVSYXdEYXRhKToKKyAgICAgICAgKFdlYktpdDo6UlRDRGF0YUNoYW5uZWxS
ZW1vdGVNYW5hZ2VyOjpSZW1vdGVTb3VyY2VDb25uZWN0aW9uOjpkaWREZXRlY3RFcnJvcik6Cisg
ICAgICAgIChXZWJLaXQ6OlJUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlcjo6UmVtb3RlU291cmNl
Q29ubmVjdGlvbjo6YnVmZmVyZWRBbW91bnRJc0RlY3JlYXNpbmcpOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvTmV0d29yay93ZWJydGMvUlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyLmg6IEFkZGVk
LgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvUlRDRGF0YUNoYW5uZWxSZW1v
dGVNYW5hZ2VyLm1lc3NhZ2VzLmluOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4uCisgICAgICAg
ICogV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246Omluc3RhbGxT
ZXJ2aWNlV29ya2VyKToKKwogMjAyMS0wMy0xNyAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBs
ZS5jb20+CiAKICAgICAgICAgR2VvbG9jYXRpb24gQVBJIGRvZXMgbm90IHdvcmsgaW4gV0tXZWJW
aWV3IHdpdGggY3VzdG9tIFVSTCBzY2hlbWUgaGFuZGxlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvSGVhZGVycy5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKaW5kZXgg
M2JjN2JmNjdlYTAxNDdkOTk4OGQ1NDczODkwZGIwOWJjNzU0Mzg2NC4uMjE4NGZlMTg3MjdmNDQz
MWEzMjQzODhkYzM2Yzc5MTBkYzY4YzQyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvSGVh
ZGVycy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCkBAIC0xMDMsMTEg
KzEwMywxNSBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAKICAgICBN
b2R1bGVzL21lZGlhc291cmNlL1NhbXBsZU1hcC5oCiAKKyAgICBNb2R1bGVzL21lZGlhc3RyZWFt
L0RldGFjaGVkUlRDRGF0YUNoYW5uZWwuaAogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vRG91Ymxl
UmFuZ2UuaAogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vTG9uZ1JhbmdlLmgKICAgICBNb2R1bGVz
L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suaAogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0v
TWVkaWFUcmFja0NvbnN0cmFpbnRzLmgKICAgICBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0NvbnRy
b2xsZXIuaAorICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRGF0YUNoYW5uZWwuaAorICAgIE1v
ZHVsZXMvbWVkaWFzdHJlYW0vUlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVyLmgKKyAgICBNb2R1
bGVzL21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsUmVtb3RlU291cmNlLmgKICAgICBNb2R1bGVz
L21lZGlhc3RyZWFtL1NUVU5NZXNzYWdlUGFyc2luZy5oCiAgICAgTW9kdWxlcy9tZWRpYXN0cmVh
bS9Vc2VyTWVkaWFDbGllbnQuaAogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhQ29u
dHJvbGxlci5oCkBAIC0xMDgwLDYgKzEwODQsNyBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1F
V09SS19IRUFERVJTCiAgICAgcGxhdGZvcm0vUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmgKICAg
ICBwbGF0Zm9ybS9TU0xLZXlHZW5lcmF0b3IuaAogICAgIHBsYXRmb3JtL1NjcmVlblByb3BlcnRp
ZXMuaAorICAgIHBsYXRmb3JtL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyLmgKICAg
ICBwbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5oCiAgICAgcGxhdGZvcm0vU2Nyb2xsVHlwZXMuaAog
ICAgIHBsYXRmb3JtL1Njcm9sbFZpZXcuaApAQCAtMTM2NSw2ICsxMzcwLDEzIEBAIHNldChXZWJD
b3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9N
ZWRpYVN0cmVhbVByaXZhdGUuaAogICAgIHBsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFt
UmVxdWVzdC5oCiAgICAgcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1ByaXZh
dGUuaAorICAgIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsSGFuZGxlci5oCisg
ICAgcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDRGF0YUNoYW5uZWxIYW5kbGVyQ2xpZW50LmgKKyAg
ICBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbElkZW50aWZpZXIuaAorICAgIHBs
YXRmb3JtL21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsUmVtb3RlSGFuZGxlckNvbm5lY3Rpb24u
aAorICAgIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsUmVtb3RlU291cmNlQ29u
bmVjdGlvbi5oCisgICAgcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDRGF0YUNoYW5uZWxTdGF0ZS5o
CisgICAgcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDUHJpb3JpdHlUeXBlLmgKICAgICBwbGF0Zm9y
bS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmgKICAgICBwbGF0Zm9ybS9tZWRpYXN0
cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzLmgKICAgICBwbGF0Zm9ybS9tZWRp
YXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vRGV0YWNoZWRSVENEYXRhQ2hhbm5lbC5oIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9EZXRhY2hlZFJUQ0RhdGFDaGFubmVsLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNGQ5MTZmODliZjVmYThhOGQwMWE5MDFhYTgxMTBjNjYxMmMyOTZjOQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vRGV0YWNo
ZWRSVENEYXRhQ2hhbm5lbC5oCkBAIC0wLDAgKzEsOTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAxNy0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisgKiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNw
cmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFdFQl9SVEMpCisKKyNpbmNsdWRlICJSVENEYXRhQ2hh
bm5lbEhhbmRsZXIuaCIKKyNpbmNsdWRlICJSVENEYXRhQ2hhbm5lbElkZW50aWZpZXIuaCIKKyNp
bmNsdWRlICJSVENEYXRhQ2hhbm5lbFN0YXRlLmgiCisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3Ry
aW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RydWN0IERldGFjaGVkUlRDRGF0YUNo
YW5uZWwgeworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKERldGFjaGVkUlRDRGF0YUNoYW5uZWwp
OworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIERldGFjaGVkUlRD
RGF0YUNoYW5uZWwoUlRDRGF0YUNoYW5uZWxJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IFN0
cmluZyYgbGFiZWwsIGNvbnN0IFJUQ0RhdGFDaGFubmVsSW5pdCYgb3B0aW9ucywgUlRDRGF0YUNo
YW5uZWxTdGF0ZSBzdGF0ZSkKKyAgICAgICAgOiBpZGVudGlmaWVyKGlkZW50aWZpZXIpCisgICAg
ICAgICwgbGFiZWwobGFiZWwuaXNvbGF0ZWRDb3B5KCkpCisgICAgICAgICwgb3B0aW9ucyhvcHRp
b25zLmlzb2xhdGVkQ29weSgpKQorICAgICAgICAsIHN0YXRlKHN0YXRlKQorICAgIHsKKyAgICB9
CisKKyAgICBzaXplX3QgbWVtb3J5Q29zdCgpIGNvbnN0IHsgcmV0dXJuIGxhYmVsLnNpemVJbkJ5
dGVzKCk7IH0KKworICAgIFJUQ0RhdGFDaGFubmVsSWRlbnRpZmllciBpZGVudGlmaWVyOworICAg
IFN0cmluZyBsYWJlbDsKKyAgICBSVENEYXRhQ2hhbm5lbEluaXQgb3B0aW9uczsKKyAgICBSVENE
YXRhQ2hhbm5lbFN0YXRlIHN0YXRlIHsgUlRDRGF0YUNoYW5uZWxTdGF0ZTo6Q2xvc2VkIH07CisK
KyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7
CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxEZXRh
Y2hlZFJUQ0RhdGFDaGFubmVsPiBkZWNvZGUoRGVjb2RlciYpOworfTsKKwordGVtcGxhdGU8Y2xh
c3MgRW5jb2Rlcj4gdm9pZCBEZXRhY2hlZFJUQ0RhdGFDaGFubmVsOjplbmNvZGUoRW5jb2RlciYg
ZW5jb2RlcikgY29uc3QKK3sKKyAgICBlbmNvZGVyIDw8IGlkZW50aWZpZXIgPDwgbGFiZWwgPDwg
b3B0aW9ucyA8PCBzdGF0ZTsKK30KKwordGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RkOjp1bmlx
dWVfcHRyPERldGFjaGVkUlRDRGF0YUNoYW5uZWw+IERldGFjaGVkUlRDRGF0YUNoYW5uZWw6OmRl
Y29kZShEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIE9wdGlvbmFsPFJUQ0RhdGFDaGFubmVsSWRl
bnRpZmllcj4gaWRlbnRpZmllcjsKKyAgICBkZWNvZGVyID4+IGlkZW50aWZpZXI7CisgICAgaWYg
KCFpZGVudGlmaWVyKQorICAgICAgICByZXR1cm4geyB9OworCisgICAgU3RyaW5nIGxhYmVsOwor
ICAgIGlmICghZGVjb2Rlci5kZWNvZGUobGFiZWwpKQorICAgICAgICByZXR1cm4geyB9OworCisg
ICAgT3B0aW9uYWw8UlRDRGF0YUNoYW5uZWxJbml0PiBvcHRpb25zOworICAgIGRlY29kZXIgPj4g
b3B0aW9uczsKKyAgICBpZiAoIW9wdGlvbnMpCisgICAgICAgIHJldHVybiB7IH07CisKKyAgICBP
cHRpb25hbDxSVENEYXRhQ2hhbm5lbFN0YXRlPiBzdGF0ZTsKKyAgICBkZWNvZGVyID4+IHN0YXRl
OworICAgIGlmICghc3RhdGUpCisgICAgICAgIHJldHVybiB7IH07CisKKyAgICByZXR1cm4gbWFr
ZVVuaXF1ZTxEZXRhY2hlZFJUQ0RhdGFDaGFubmVsPigqaWRlbnRpZmllciwgV1RGTW92ZShsYWJl
bCksICpvcHRpb25zLCAqc3RhdGUpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNl
bmRpZiAvLyBFTkFCTEUoV0VCX1JUQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vUlRDRGF0YUNoYW5uZWwuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbC5jcHAKaW5kZXggMjU0YzIwZmJiODY0NWJjMjU4
MmE5MmUzMzU2ZTVkNDFmZWI5MzMxMy4uOWIwMDE0Y2FhYzNlMjg0YWY4ZDJmYmIyZjY0YzM0N2Qz
Y2YzYjRhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9S
VENEYXRhQ2hhbm5lbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9SVENEYXRhQ2hhbm5lbC5jcHAKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJFeGNlcHRp
b25Db2RlLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIk1lc3NhZ2VFdmVudC5o
IgorI2luY2x1ZGUgIlJUQ0RhdGFDaGFubmVsUmVtb3RlSGFuZGxlci5oIgogI2luY2x1ZGUgIlNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKICNpbmNsdWRlICJTaGFyZWRCdWZmZXIuaCIKICNpbmNs
dWRlIDxKYXZhU2NyaXB0Q29yZS9BcnJheUJ1ZmZlclZpZXcuaD4KQEAgLTkzLDcgKzk0LDcgQEAg
TmV0d29ya1NlbmRRdWV1ZSBSVENEYXRhQ2hhbm5lbDo6Y3JlYXRlTWVzc2FnZVF1ZXVlKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQmIGNvbnQKIFJUQ0RhdGFDaGFubmVsOjpSVENEYXRhQ2hhbm5lbChT
Y3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBzdGQ6OnVuaXF1ZV9wdHI8UlRDRGF0YUNo
YW5uZWxIYW5kbGVyPiYmIGhhbmRsZXIsIFN0cmluZyYmIGxhYmVsLCBSVENEYXRhQ2hhbm5lbElu
aXQmJiBvcHRpb25zKQogICAgIDogQWN0aXZlRE9NT2JqZWN0KCZjb250ZXh0KQogICAgICwgbV9o
YW5kbGVyKFdURk1vdmUoaGFuZGxlcikpCi0gICAgLCBtX2lkZW50aWZpZXIoUlRDRGF0YUNoYW5u
ZWxJZGVudGlmaWVyIHsgUHJvY2Vzczo6aWRlbnRpZmllcigpLCBPYmplY3RJZGVudGlmaWVyPFJU
Q0RhdGFDaGFubmVsSWRlbnRpZmllclR5cGU+OjpnZW5lcmF0ZVRocmVhZFNhZmUoKSB9KQorICAg
ICwgbV9pZGVudGlmaWVyKFJUQ0RhdGFDaGFubmVsSWRlbnRpZmllciB7IFByb2Nlc3M6OmlkZW50
aWZpZXIoKSwgT2JqZWN0SWRlbnRpZmllcjxSVENEYXRhQ2hhbm5lbExvY2FsSWRlbnRpZmllclR5
cGU+OjpnZW5lcmF0ZVRocmVhZFNhZmUoKSB9KQogICAgICwgbV9jb250ZXh0SWRlbnRpZmllcihj
b250ZXh0LmlzRG9jdW1lbnQoKSA/IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyIHsg
fSA6IGNvbnRleHQuY29udGV4dElkZW50aWZpZXIoKSkKICAgICAsIG1fbGFiZWwoV1RGTW92ZShs
YWJlbCkpCiAgICAgLCBtX29wdGlvbnMoV1RGTW92ZShvcHRpb25zKSkKQEAgLTI1MiwxMCArMjUz
LDEwIEBAIHZvaWQgUlRDRGF0YUNoYW5uZWw6OnNjaGVkdWxlRGlzcGF0Y2hFdmVudChSZWY8RXZl
bnQ+JiYgZXZlbnQpCiB9CiAKIHN0YXRpYyBMb2NrIHNfcnRjRGF0YUNoYW5uZWxMb2NhbE1hcExv
Y2s7Ci1zdGF0aWMgSGFzaE1hcDxPYmplY3RJZGVudGlmaWVyPFJUQ0RhdGFDaGFubmVsSWRlbnRp
ZmllclR5cGU+LCBzdGQ6OnVuaXF1ZV9wdHI8UlRDRGF0YUNoYW5uZWxIYW5kbGVyPj4mIHJ0Y0Rh
dGFDaGFubmVsTG9jYWxNYXAoKQorc3RhdGljIEhhc2hNYXA8UlRDRGF0YUNoYW5uZWxMb2NhbElk
ZW50aWZpZXIsIHN0ZDo6dW5pcXVlX3B0cjxSVENEYXRhQ2hhbm5lbEhhbmRsZXI+PiYgcnRjRGF0
YUNoYW5uZWxMb2NhbE1hcCgpCiB7CiAgICAgQVNTRVJUKHNfcnRjRGF0YUNoYW5uZWxMb2NhbE1h
cExvY2suaXNIZWxkKCkpOwotICAgIHN0YXRpYyBMYXp5TmV2ZXJEZXN0cm95ZWQ8SGFzaE1hcDxP
YmplY3RJZGVudGlmaWVyPFJUQ0RhdGFDaGFubmVsSWRlbnRpZmllclR5cGU+LCBzdGQ6OnVuaXF1
ZV9wdHI8UlRDRGF0YUNoYW5uZWxIYW5kbGVyPj4+IG1hcDsKKyAgICBzdGF0aWMgTGF6eU5ldmVy
RGVzdHJveWVkPEhhc2hNYXA8UlRDRGF0YUNoYW5uZWxMb2NhbElkZW50aWZpZXIsIHN0ZDo6dW5p
cXVlX3B0cjxSVENEYXRhQ2hhbm5lbEhhbmRsZXI+Pj4gbWFwOwogICAgIHN0YXRpYyBzdGQ6Om9u
Y2VfZmxhZyBvbmNlS2V5OwogICAgIHN0ZDo6Y2FsbF9vbmNlKG9uY2VLZXksIFsmXSB7CiAgICAg
ICAgIG1hcC5jb25zdHJ1Y3QoKTsKQEAgLTI5Myw2ICsyOTQsMTIgQEAgdm9pZCBSVENEYXRhQ2hh
bm5lbDo6cmVtb3ZlRnJvbURhdGFDaGFubmVsTG9jYWxNYXBJZk5lZWRlZCgpCiAgICAgcnRjRGF0
YUNoYW5uZWxMb2NhbE1hcCgpLnJlbW92ZShpZGVudGlmaWVyKCkuY2hhbm5lbElkZW50aWZpZXIp
OwogfQogCitzdGQ6OnVuaXF1ZV9wdHI8UlRDRGF0YUNoYW5uZWxIYW5kbGVyPiBSVENEYXRhQ2hh
bm5lbDo6aGFuZGxlckZyb21JZGVudGlmaWVyKFJUQ0RhdGFDaGFubmVsTG9jYWxJZGVudGlmaWVy
IGNoYW5uZWxJZGVudGlmaWVyKQoreworICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2soc19ydGNE
YXRhQ2hhbm5lbExvY2FsTWFwTG9jayk7CisgICAgcmV0dXJuIHJ0Y0RhdGFDaGFubmVsTG9jYWxN
YXAoKS50YWtlKGNoYW5uZWxJZGVudGlmaWVyKTsKK30KKwogc3RhdGljIFJlZjxSVENEYXRhQ2hh
bm5lbD4gY3JlYXRlQ2xvc2VkQ2hhbm5lbChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0
LCBTdHJpbmcmJiBsYWJlbCwgUlRDRGF0YUNoYW5uZWxJbml0JiYgb3B0aW9ucykKIHsKICAgICBh
dXRvIGNoYW5uZWwgPSBSVENEYXRhQ2hhbm5lbDo6Y3JlYXRlKGNvbnRleHQsIG51bGxwdHIsIFdU
Rk1vdmUobGFiZWwpLCBXVEZNb3ZlKG9wdGlvbnMpKTsKQEAgLTMwMiwxOCArMzA5LDI1IEBAIHN0
YXRpYyBSZWY8UlRDRGF0YUNoYW5uZWw+IGNyZWF0ZUNsb3NlZENoYW5uZWwoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCYgY29udGV4dCwKIAogUmVmPFJUQ0RhdGFDaGFubmVsPiBSVENEYXRhQ2hhbm5l
bDo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFJUQ0RhdGFDaGFubmVs
SWRlbnRpZmllciBpZGVudGlmaWVyLCBTdHJpbmcmJiBsYWJlbCwgUlRDRGF0YUNoYW5uZWxJbml0
JiYgb3B0aW9ucywgUlRDRGF0YUNoYW5uZWxTdGF0ZSBzdGF0ZSkKIHsKLSAgICBpZiAoaWRlbnRp
Zmllci5wcm9jZXNzSWRlbnRpZmllciAhPSBQcm9jZXNzOjppZGVudGlmaWVyKCkpIHsKLSAgICAg
ICAgUkVMRUFTRV9MT0dfRVJST1IoV2ViUlRDLCAiT3V0LW9mLXByb2Nlc3MgZGF0YSBjaGFubmVs
cyBhcmUgbm90IHlldCBzdXBwb3J0ZWQiKTsKLSAgICAgICAgcmV0dXJuIGNyZWF0ZUNsb3NlZENo
YW5uZWwoY29udGV4dCwgV1RGTW92ZShsYWJlbCksIFdURk1vdmUob3B0aW9ucykpOworICAgIFJU
Q0RhdGFDaGFubmVsUmVtb3RlSGFuZGxlciogcmVtb3RlSGFuZGxlclB0ciA9IG51bGxwdHI7Cisg
ICAgc3RkOjp1bmlxdWVfcHRyPFJUQ0RhdGFDaGFubmVsSGFuZGxlcj4gaGFuZGxlcjsKKyAgICBp
ZiAoaWRlbnRpZmllci5wcm9jZXNzSWRlbnRpZmllciA9PSBQcm9jZXNzOjppZGVudGlmaWVyKCkp
CisgICAgICAgIGhhbmRsZXIgPSBSVENEYXRhQ2hhbm5lbDo6aGFuZGxlckZyb21JZGVudGlmaWVy
KGlkZW50aWZpZXIuY2hhbm5lbElkZW50aWZpZXIpOworICAgIGVsc2UgeworICAgICAgICBhdXRv
IHJlbW90ZUhhbmRsZXIgPSBSVENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXI6OmNyZWF0ZShpZGVu
dGlmaWVyLCBjb250ZXh0LmNyZWF0ZVJUQ0RhdGFDaGFubmVsUmVtb3RlSGFuZGxlckNvbm5lY3Rp
b24oKSk7CisgICAgICAgIHJlbW90ZUhhbmRsZXJQdHIgPSByZW1vdGVIYW5kbGVyLmdldCgpOwor
ICAgICAgICBoYW5kbGVyID0gV1RGTW92ZShyZW1vdGVIYW5kbGVyKTsKICAgICB9CiAKLSAgICBh
dXRvIGxvY2tlciA9IGhvbGRMb2NrKHNfcnRjRGF0YUNoYW5uZWxMb2NhbE1hcExvY2spOwotICAg
IGF1dG8gaGFuZGxlciA9IHJ0Y0RhdGFDaGFubmVsTG9jYWxNYXAoKS50YWtlKGlkZW50aWZpZXIu
Y2hhbm5lbElkZW50aWZpZXIpOwogICAgIGlmICghaGFuZGxlcikKICAgICAgICAgcmV0dXJuIGNy
ZWF0ZUNsb3NlZENoYW5uZWwoY29udGV4dCwgV1RGTW92ZShsYWJlbCksIFdURk1vdmUob3B0aW9u
cykpOwogCiAgICAgYXV0byBjaGFubmVsID0gUlRDRGF0YUNoYW5uZWw6OmNyZWF0ZShjb250ZXh0
LCBXVEZNb3ZlKGhhbmRsZXIpLCBXVEZNb3ZlKGxhYmVsKSwgV1RGTW92ZShvcHRpb25zKSk7CiAg
ICAgY2hhbm5lbC0+bV9yZWFkeVN0YXRlID0gc3RhdGU7CisKKyAgICBpZiAocmVtb3RlSGFuZGxl
clB0cikKKyAgICAgICAgcmVtb3RlSGFuZGxlclB0ci0+c2V0TG9jYWxJZGVudGlmaWVyKGNoYW5u
ZWwtPmlkZW50aWZpZXIoKSk7CisKICAgICByZXR1cm4gY2hhbm5lbDsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbC5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbC5oCmluZGV4
IDU5MGE5Y2I3ZWU0Y2Y0MWFjOTYzNDQwYmRlYzA5MWI4Yjg0MGMxYmQuLjYwMWQ4ODk0MjU3NDY1
OThjNDNhY2U3NWNhZjVhNDJjODIxZTljMjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vUlRDRGF0YUNoYW5uZWwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsLmgKQEAgLTI4LDEzICsyOCwxNCBAQAog
I2lmIEVOQUJMRShXRUJfUlRDKQogCiAjaW5jbHVkZSAiQWN0aXZlRE9NT2JqZWN0LmgiCisjaW5j
bHVkZSAiRGV0YWNoZWRSVENEYXRhQ2hhbm5lbC5oIgogI2luY2x1ZGUgIkV2ZW50LmgiCiAjaW5j
bHVkZSAiRXZlbnRUYXJnZXQuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Pci5oIgogI2luY2x1ZGUg
Ik5ldHdvcmtTZW5kUXVldWUuaCIKLSNpbmNsdWRlICJQcm9jZXNzSWRlbnRpZmllci5oIgogI2lu
Y2x1ZGUgIlJUQ0RhdGFDaGFubmVsSGFuZGxlci5oIgogI2luY2x1ZGUgIlJUQ0RhdGFDaGFubmVs
SGFuZGxlckNsaWVudC5oIgorI2luY2x1ZGUgIlJUQ0RhdGFDaGFubmVsSWRlbnRpZmllci5oIgog
I2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKICNpbmNsdWRlICJTY3JpcHRXcmFw
cGFibGUuaCIKICNpbmNsdWRlICJUaW1lci5oIgpAQCAtNDksMzkgKzUwLDYgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogY2xhc3MgQmxvYjsKIGNsYXNzIFJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlcjsK
IAotZW51bSBSVENEYXRhQ2hhbm5lbElkZW50aWZpZXJUeXBlIHsgfTsKLXN0cnVjdCBSVENEYXRh
Q2hhbm5lbElkZW50aWZpZXIgewotICAgIFByb2Nlc3NJZGVudGlmaWVyIHByb2Nlc3NJZGVudGlm
aWVyOwotICAgIE9iamVjdElkZW50aWZpZXI8UlRDRGF0YUNoYW5uZWxJZGVudGlmaWVyVHlwZT4g
Y2hhbm5lbElkZW50aWZpZXI7Ci0KLSAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVu
Y29kZShFbmNvZGVyJikgY29uc3Q7Ci0gICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGlj
IE9wdGlvbmFsPFJUQ0RhdGFDaGFubmVsSWRlbnRpZmllcj4gZGVjb2RlKERlY29kZXImKTsKLQot
I2lmICFMT0dfRElTQUJMRUQKLSAgICBTdHJpbmcgbG9nU3RyaW5nKCkgY29uc3Q7Ci0jZW5kaWYK
LX07Ci0KLXN0cnVjdCBEZXRhY2hlZFJUQ0RhdGFDaGFubmVsIHsKLSAgICBXVEZfTUFLRV9OT05D
T1BZQUJMRShEZXRhY2hlZFJUQ0RhdGFDaGFubmVsKTsKLSAgICBXVEZfTUFLRV9GQVNUX0FMTE9D
QVRFRDsKLXB1YmxpYzoKLSAgICBEZXRhY2hlZFJUQ0RhdGFDaGFubmVsKFJUQ0RhdGFDaGFubmVs
SWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGxhYmVsLCBjb25zdCBSVENEYXRh
Q2hhbm5lbEluaXQmIG9wdGlvbnMsIFJUQ0RhdGFDaGFubmVsU3RhdGUgc3RhdGUpCi0gICAgICAg
IDogaWRlbnRpZmllcihpZGVudGlmaWVyKQotICAgICAgICAsIGxhYmVsKGxhYmVsLmlzb2xhdGVk
Q29weSgpKQotICAgICAgICAsIG9wdGlvbnMob3B0aW9ucy5pc29sYXRlZENvcHkoKSkKLSAgICAg
ICAgLCBzdGF0ZShzdGF0ZSkKLSAgICB7Ci0gICAgfQotCi0gICAgc2l6ZV90IG1lbW9yeUNvc3Qo
KSBjb25zdCB7IHJldHVybiBsYWJlbC5zaXplSW5CeXRlcygpOyB9Ci0KLSAgICBSVENEYXRhQ2hh
bm5lbElkZW50aWZpZXIgaWRlbnRpZmllcjsKLSAgICBTdHJpbmcgbGFiZWw7Ci0gICAgUlRDRGF0
YUNoYW5uZWxJbml0IG9wdGlvbnM7Ci0gICAgUlRDRGF0YUNoYW5uZWxTdGF0ZSBzdGF0ZSB7IFJU
Q0RhdGFDaGFubmVsU3RhdGU6OkNsb3NlZCB9OwotfTsKLQogY2xhc3MgUlRDRGF0YUNoYW5uZWwg
ZmluYWwgOiBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0LCBwdWJsaWMgUlRDRGF0YUNoYW5uZWxIYW5k
bGVyQ2xpZW50LCBwdWJsaWMgRXZlbnRUYXJnZXRXaXRoSW5saW5lRGF0YSB7CiAgICAgV1RGX01B
S0VfSVNPX0FMTE9DQVRFRChSVENEYXRhQ2hhbm5lbCk7CiBwdWJsaWM6CkBAIC0xMjAsNiArODgs
OCBAQCBwdWJsaWM6CiAgICAgdXNpbmcgUlRDRGF0YUNoYW5uZWxIYW5kbGVyQ2xpZW50OjpyZWY7
CiAgICAgdXNpbmcgUlRDRGF0YUNoYW5uZWxIYW5kbGVyQ2xpZW50OjpkZXJlZjsKIAorICAgIFdF
QkNPUkVfRVhQT1JUIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8UlRDRGF0YUNoYW5uZWxIYW5kbGVy
PiBoYW5kbGVyRnJvbUlkZW50aWZpZXIoUlRDRGF0YUNoYW5uZWxMb2NhbElkZW50aWZpZXIpOwor
CiBwcml2YXRlOgogICAgIFJUQ0RhdGFDaGFubmVsKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBz
dGQ6OnVuaXF1ZV9wdHI8UlRDRGF0YUNoYW5uZWxIYW5kbGVyPiYmLCBTdHJpbmcmJiwgUlRDRGF0
YUNoYW5uZWxJbml0JiYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsUmVtb3RlSGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsUmVtb3RlSGFuZGxlci5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNDZlZjZmOGIwYmNlNjI5MmI5YTA5YWQxMTVlMmM0ZmNiZGRlZTJiZQotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRGF0YUNo
YW5uZWxSZW1vdGVIYW5kbGVyLmNwcApAQCAtMCwwICsxLDEyOCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAyMSBBcHBsZSBJbmMuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
IEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgorICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiUlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVyLmgiCisKKyNpZiBFTkFCTEUoV0VC
X1JUQykKKworI2luY2x1ZGUgIlJUQ0RhdGFDaGFubmVsSGFuZGxlckNsaWVudC5oIgorI2luY2x1
ZGUgIlJUQ0RhdGFDaGFubmVsUmVtb3RlSGFuZGxlckNvbm5lY3Rpb24uaCIKKyNpbmNsdWRlICJT
aGFyZWRCdWZmZXIuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdGQ6OnVuaXF1ZV9wdHI8
UlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVyPiBSVENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXI6
OmNyZWF0ZShSVENEYXRhQ2hhbm5lbElkZW50aWZpZXIgcmVtb3RlSWRlbnRpZmllciwgUmVmUHRy
PFJUQ0RhdGFDaGFubmVsUmVtb3RlSGFuZGxlckNvbm5lY3Rpb24+JiYgY29ubmVjdGlvbikKK3sK
KyAgICBpZiAoIWNvbm5lY3Rpb24pCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVy
biBtYWtlVW5pcXVlPFJUQ0RhdGFDaGFubmVsUmVtb3RlSGFuZGxlcj4ocmVtb3RlSWRlbnRpZmll
ciwgY29ubmVjdGlvbi5yZWxlYXNlTm9uTnVsbCgpKTsKK30KKworUlRDRGF0YUNoYW5uZWxSZW1v
dGVIYW5kbGVyOjpSVENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXIoUlRDRGF0YUNoYW5uZWxJZGVu
dGlmaWVyIHJlbW90ZUlkZW50aWZpZXIsIFJlZjxSVENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXJD
b25uZWN0aW9uPiYmIGNvbm5lY3Rpb24pCisgICAgOiBtX3JlbW90ZUlkZW50aWZpZXIocmVtb3Rl
SWRlbnRpZmllcikKKyAgICAsIG1fY29ubmVjdGlvbihXVEZNb3ZlKGNvbm5lY3Rpb24pKQorewor
fQorCitSVENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXI6On5SVENEYXRhQ2hhbm5lbFJlbW90ZUhh
bmRsZXIoKQoreworfQorCit2b2lkIFJUQ0RhdGFDaGFubmVsUmVtb3RlSGFuZGxlcjo6ZGlkQ2hh
bmdlUmVhZHlTdGF0ZShSVENEYXRhQ2hhbm5lbFN0YXRlIHN0YXRlKQoreworICAgIG1fY2xpZW50
LT5kaWRDaGFuZ2VSZWFkeVN0YXRlKHN0YXRlKTsKK30KKwordm9pZCBSVENEYXRhQ2hhbm5lbFJl
bW90ZUhhbmRsZXI6OmRpZFJlY2VpdmVTdHJpbmdEYXRhKFN0cmluZyYmIHRleHQpCit7CisgICAg
bV9jbGllbnQtPmRpZFJlY2VpdmVTdHJpbmdEYXRhKHRleHQpOworfQorCit2b2lkIFJUQ0RhdGFD
aGFubmVsUmVtb3RlSGFuZGxlcjo6ZGlkUmVjZWl2ZVJhd0RhdGEoY29uc3QgY2hhciogZGF0YSwg
c2l6ZV90IHNpemUpCit7CisgICAgbV9jbGllbnQtPmRpZFJlY2VpdmVSYXdEYXRhKGRhdGEsIHNp
emUpOworfQorCit2b2lkIFJUQ0RhdGFDaGFubmVsUmVtb3RlSGFuZGxlcjo6ZGlkRGV0ZWN0RXJy
b3IoKQoreworICAgIG1fY2xpZW50LT5kaWREZXRlY3RFcnJvcigpOworfQorCit2b2lkIFJUQ0Rh
dGFDaGFubmVsUmVtb3RlSGFuZGxlcjo6YnVmZmVyZWRBbW91bnRJc0RlY3JlYXNpbmcoc2l6ZV90
IGFtb3VudCkKK3sKKyAgICBtX2NsaWVudC0+YnVmZmVyZWRBbW91bnRJc0RlY3JlYXNpbmcoYW1v
dW50KTsKK30KKwordm9pZCBSVENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXI6OnJlYWR5VG9TZW5k
KCkKK3sKKyAgICBtX2lzUmVhZHlUb1NlbmQgPSB0cnVlOworCisgICAgZm9yIChhdXRvJiBtZXNz
YWdlIDogbV9wZW5kaW5nTWVzc2FnZXMpCisgICAgICAgIG1fY29ubmVjdGlvbi0+c2VuZERhdGEo
bV9yZW1vdGVJZGVudGlmaWVyLCBtZXNzYWdlLmlzUmF3LCByZWludGVycHJldF9jYXN0PGNvbnN0
IHVuc2lnbmVkIGNoYXIqPihtZXNzYWdlLmJ1ZmZlci0+ZGF0YSgpKSwgbWVzc2FnZS5idWZmZXIt
PnNpemUoKSk7CisgICAgbV9wZW5kaW5nTWVzc2FnZXMuY2xlYXIoKTsKKworICAgIGlmIChtX2lz
UGVuZGluZ0Nsb3NlKQorICAgICAgICBtX2Nvbm5lY3Rpb24tPmNsb3NlKG1fcmVtb3RlSWRlbnRp
Zmllcik7Cit9CisKK3ZvaWQgUlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVyOjpzZXRDbGllbnQo
UlRDRGF0YUNoYW5uZWxIYW5kbGVyQ2xpZW50JiBjbGllbnQsIFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHRJZGVudGlmaWVyIGNvbnRleHRJZGVudGlmaWVyKQoreworICAgIG1fY2xpZW50ID0gJmNsaWVu
dDsKKyAgICBBU1NFUlQobV9sb2NhbElkZW50aWZpZXIuY2hhbm5lbElkZW50aWZpZXIpOworICAg
IG1fY29ubmVjdGlvbi0+Y29ubmVjdFRvU291cmNlKCp0aGlzLCBjb250ZXh0SWRlbnRpZmllciwg
bV9sb2NhbElkZW50aWZpZXIsIG1fcmVtb3RlSWRlbnRpZmllcik7Cit9CisKK2Jvb2wgUlRDRGF0
YUNoYW5uZWxSZW1vdGVIYW5kbGVyOjpzZW5kU3RyaW5nRGF0YShjb25zdCBDU3RyaW5nJiB0ZXh0
KQoreworICAgIGlmICghbV9pc1JlYWR5VG9TZW5kKSB7CisgICAgICAgIG1fcGVuZGluZ01lc3Nh
Z2VzLmFwcGVuZChNZXNzYWdlIHsgZmFsc2UsIFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKHRleHQuZGF0
YSgpLCB0ZXh0Lmxlbmd0aCgpKSB9KTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAg
IG1fY29ubmVjdGlvbi0+c2VuZERhdGEobV9yZW1vdGVJZGVudGlmaWVyLCBmYWxzZSwgcmVpbnRl
cnByZXRfY2FzdDxjb25zdCB1bnNpZ25lZCBjaGFyKj4odGV4dC5kYXRhKCkpLCB0ZXh0Lmxlbmd0
aCgpKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBSVENEYXRhQ2hhbm5lbFJlbW90ZUhh
bmRsZXI6OnNlbmRSYXdEYXRhKGNvbnN0IGNoYXIqIGRhdGEsIHNpemVfdCBzaXplKQoreworICAg
IGlmICghbV9pc1JlYWR5VG9TZW5kKSB7CisgICAgICAgIG1fcGVuZGluZ01lc3NhZ2VzLmFwcGVu
ZChNZXNzYWdlIHsgdHJ1ZSwgU2hhcmVkQnVmZmVyOjpjcmVhdGUoZGF0YSwgc2l6ZSkgfSk7Cisg
ICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICBtX2Nvbm5lY3Rpb24tPnNlbmREYXRhKG1f
cmVtb3RlSWRlbnRpZmllciwgdHJ1ZSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCB1bnNpZ25lZCBj
aGFyKj4oZGF0YSksIHNpemUpOworICAgIHJldHVybiB0cnVlOworfQorCit2b2lkIFJUQ0RhdGFD
aGFubmVsUmVtb3RlSGFuZGxlcjo6Y2xvc2UoKQoreworICAgIGlmICghbV9pc1JlYWR5VG9TZW5k
KSB7CisgICAgICAgIG1faXNQZW5kaW5nQ2xvc2UgPSB0cnVlOworICAgICAgICByZXR1cm47Cisg
ICAgfQorICAgIG1fY29ubmVjdGlvbi0+Y2xvc2UobV9yZW1vdGVJZGVudGlmaWVyKTsKK30KKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQl9SVEMpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVs
UmVtb3RlSGFuZGxlci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENE
YXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jYTFkY2RiYzFjZTk1ZjI1ODQ3
ZGJiZDk2ZWZkYmMwYmQ4ZDRkMWExCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXIuaApAQCAtMCww
ICsxLDg1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICog
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OCisgKiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFdFQl9S
VEMpCisKKyNpbmNsdWRlICJSVENEYXRhQ2hhbm5lbEhhbmRsZXIuaCIKKyNpbmNsdWRlICJSVENE
YXRhQ2hhbm5lbElkZW50aWZpZXIuaCIKKyNpbmNsdWRlICJSVENEYXRhQ2hhbm5lbFN0YXRlLmgi
CisjaW5jbHVkZSA8d3RmL0Zhc3RNYWxsb2MuaD4KKyNpbmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4K
KyNpbmNsdWRlIDx3dGYvTG9jay5oPgorI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworY2xhc3MgUlRDRGF0YUNoYW5uZWxIYW5kbGVyQ2xpZW50OworY2xh
c3MgUlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVyQ29ubmVjdGlvbjsKK2NsYXNzIFNoYXJlZEJ1
ZmZlcjsKKworY2xhc3MgUlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVyIGZpbmFsIDogcHVibGlj
IFJUQ0RhdGFDaGFubmVsSGFuZGxlciwgcHVibGljIENhbk1ha2VXZWFrUHRyPFJUQ0RhdGFDaGFu
bmVsUmVtb3RlSGFuZGxlcj4geworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGlj
OgorICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8UlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVy
PiBjcmVhdGUoUlRDRGF0YUNoYW5uZWxJZGVudGlmaWVyLCBSZWZQdHI8UlRDRGF0YUNoYW5uZWxS
ZW1vdGVIYW5kbGVyQ29ubmVjdGlvbj4mJik7CisgICAgUlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5k
bGVyKFJUQ0RhdGFDaGFubmVsSWRlbnRpZmllciwgUmVmPFJUQ0RhdGFDaGFubmVsUmVtb3RlSGFu
ZGxlckNvbm5lY3Rpb24+JiYpOworICAgIH5SVENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXIoKTsK
KworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGlkQ2hhbmdlUmVhZHlTdGF0ZShSVENEYXRhQ2hh
bm5lbFN0YXRlKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRpZFJlY2VpdmVTdHJpbmdEYXRh
KFN0cmluZyYmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRpZFJlY2VpdmVSYXdEYXRhKGNv
bnN0IGNoYXIqLCBzaXplX3QpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGlkRGV0ZWN0RXJy
b3IoKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGJ1ZmZlcmVkQW1vdW50SXNEZWNyZWFzaW5n
KHNpemVfdCk7CisKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlYWR5VG9TZW5kKCk7CisKKyAg
ICB2b2lkIHNldExvY2FsSWRlbnRpZmllcihSVENEYXRhQ2hhbm5lbElkZW50aWZpZXIgbG9jYWxJ
ZGVudGlmaWVyKSB7IG1fbG9jYWxJZGVudGlmaWVyID0gbG9jYWxJZGVudGlmaWVyOyB9CisKK3By
aXZhdGU6CisgICAgLy8gUlRDRGF0YUNoYW5uZWxIYW5kbGVyCisgICAgdm9pZCBzZXRDbGllbnQo
UlRDRGF0YUNoYW5uZWxIYW5kbGVyQ2xpZW50JiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50
aWZpZXIpIGZpbmFsOworICAgIGJvb2wgc2VuZFN0cmluZ0RhdGEoY29uc3QgQ1N0cmluZyYpIGZp
bmFsOworICAgIGJvb2wgc2VuZFJhd0RhdGEoY29uc3QgY2hhciosIHNpemVfdCkgZmluYWw7Cisg
ICAgdm9pZCBjbG9zZSgpIGZpbmFsOworCisgICAgUlRDRGF0YUNoYW5uZWxJZGVudGlmaWVyIG1f
cmVtb3RlSWRlbnRpZmllcjsKKyAgICBSVENEYXRhQ2hhbm5lbElkZW50aWZpZXIgbV9sb2NhbElk
ZW50aWZpZXI7CisKKyAgICBSVENEYXRhQ2hhbm5lbEhhbmRsZXJDbGllbnQqIG1fY2xpZW50IHsg
bnVsbHB0ciB9OworICAgIFJlZjxSVENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXJDb25uZWN0aW9u
PiBtX2Nvbm5lY3Rpb247CisKKyAgICBzdHJ1Y3QgTWVzc2FnZSB7CisgICAgICAgIGJvb2wgaXNS
YXcgeyBmYWxzZSB9OworICAgICAgICBSZWY8U2hhcmVkQnVmZmVyPiBidWZmZXI7CisgICAgfTsK
KyAgICBWZWN0b3I8TWVzc2FnZT4gbV9wZW5kaW5nTWVzc2FnZXM7CisgICAgYm9vbCBtX2lzUGVu
ZGluZ0Nsb3NlIHsgZmFsc2UgfTsKKyAgICBib29sIG1faXNSZWFkeVRvU2VuZCB7IGZhbHNlIH07
CisKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJf
UlRDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENE
YXRhQ2hhbm5lbFJlbW90ZVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL1JUQ0RhdGFDaGFubmVsUmVtb3RlU291cmNlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lYWEzYThm
MDU4MzhjYWYzYWU4ZjYzNGZjYTA3Mzc4MDE0Zjc2NTkwCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbFJlbW90ZVNvdXJj
ZS5jcHAKQEAgLTAsMCArMSw0OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgorICogQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiUlRDRGF0YUNoYW5uZWxSZW1vdGVTb3VyY2UuaCIKKworI2lmIEVOQUJMRShX
RUJfUlRDKQorCisjaW5jbHVkZSAiUlRDRGF0YUNoYW5uZWxIYW5kbGVyLmgiCisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworUlRDRGF0YUNoYW5uZWxSZW1vdGVTb3VyY2U6OlJUQ0RhdGFDaGFubmVs
UmVtb3RlU291cmNlKFJUQ0RhdGFDaGFubmVsSWRlbnRpZmllciBpZGVudGlmaWVyLCBVbmlxdWVS
ZWY8UlRDRGF0YUNoYW5uZWxIYW5kbGVyPiYmIGhhbmRsZXIsIFJlZjxSVENEYXRhQ2hhbm5lbFJl
bW90ZVNvdXJjZUNvbm5lY3Rpb24+JiYgY29ubmVjdGlvbikKKyAgICA6IG1faWRlbnRpZmllcihp
ZGVudGlmaWVyKQorICAgICwgbV9oYW5kbGVyKFdURk1vdmUoaGFuZGxlcikpCisgICAgLCBtX2Nv
bm5lY3Rpb24oV1RGTW92ZShjb25uZWN0aW9uKSkKK3sKKyAgICAvLyBGSVhNRTogV2Ugc2hvdWxk
IGFzayBtX2hhbmRsZXIgdG8gY2FsbCB1cyBvbiBpdHMgb3duIGJhY2tncm91bmQgdGhyZWFkLgor
ICAgIG1faGFuZGxlci0+c2V0Q2xpZW50KCp0aGlzLCB7IH0pOworfQorCitSVENEYXRhQ2hhbm5l
bFJlbW90ZVNvdXJjZTo6flJUQ0RhdGFDaGFubmVsUmVtb3RlU291cmNlKCkKK3sKK30KKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQl9SVEMpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsUmVt
b3RlU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0RhdGFD
aGFubmVsUmVtb3RlU291cmNlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzJmOTQzYmU1YWQ4N2ZjNzAwMTM2NzJj
ZmM5YzM3Y2Q0NzRmNjY4MAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vUlRDRGF0YUNoYW5uZWxSZW1vdGVTb3VyY2UuaApAQCAtMCwwICsxLDYz
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
ICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
CisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OCisgKiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFdFQl9SVEMpCisK
KyNpbmNsdWRlICJSVENEYXRhQ2hhbm5lbEhhbmRsZXJDbGllbnQuaCIKKyNpbmNsdWRlICJSVENE
YXRhQ2hhbm5lbElkZW50aWZpZXIuaCIKKyNpbmNsdWRlICJSVENEYXRhQ2hhbm5lbFJlbW90ZVNv
dXJjZUNvbm5lY3Rpb24uaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBSVENEYXRh
Q2hhbm5lbEhhbmRsZXI7CisKK2NsYXNzIFJUQ0RhdGFDaGFubmVsUmVtb3RlU291cmNlIDogcHVi
bGljIFJUQ0RhdGFDaGFubmVsSGFuZGxlckNsaWVudCB7CitwdWJsaWM6CisgICAgc3RhdGljIFJl
ZjxSVENEYXRhQ2hhbm5lbFJlbW90ZVNvdXJjZT4gY3JlYXRlKFJUQ0RhdGFDaGFubmVsSWRlbnRp
ZmllciBpZGVudGlmaWVyLCBVbmlxdWVSZWY8UlRDRGF0YUNoYW5uZWxIYW5kbGVyPiYmIGhhbmRs
ZXIsIFJlZjxSVENEYXRhQ2hhbm5lbFJlbW90ZVNvdXJjZUNvbm5lY3Rpb24+JiYgY29ubmVjdGlv
bikgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBSVENEYXRhQ2hhbm5lbFJlbW90ZVNvdXJjZShpZGVu
dGlmaWVyLCBXVEZNb3ZlKGhhbmRsZXIpLCBXVEZNb3ZlKGNvbm5lY3Rpb24pKSk7IH0KKyAgICB+
UlRDRGF0YUNoYW5uZWxSZW1vdGVTb3VyY2UoKTsKKworICAgIHZvaWQgc2VuZFN0cmluZ0RhdGEo
Y29uc3QgQ1N0cmluZyYgdGV4dCkgeyBtX2hhbmRsZXItPnNlbmRTdHJpbmdEYXRhKHRleHQpOyB9
CisgICAgdm9pZCBzZW5kUmF3RGF0YShjb25zdCBjaGFyKiBkYXRhLCBzaXplX3Qgc2l6ZSkgeyBt
X2hhbmRsZXItPnNlbmRSYXdEYXRhKGRhdGEsIHNpemUpOyB9CisgICAgdm9pZCBjbG9zZSgpIHsg
bV9oYW5kbGVyLT5jbG9zZSgpOyB9CisKK3ByaXZhdGU6CisgICAgV0VCQ09SRV9FWFBPUlQgUlRD
RGF0YUNoYW5uZWxSZW1vdGVTb3VyY2UoUlRDRGF0YUNoYW5uZWxJZGVudGlmaWVyLCBVbmlxdWVS
ZWY8UlRDRGF0YUNoYW5uZWxIYW5kbGVyPiYmLCBSZWY8UlRDRGF0YUNoYW5uZWxSZW1vdGVTb3Vy
Y2VDb25uZWN0aW9uPiYmKTsKKworICAgIC8vIFJUQ0RhdGFDaGFubmVsSGFuZGxlckNsaWVudAor
ICAgIHZvaWQgZGlkQ2hhbmdlUmVhZHlTdGF0ZShSVENEYXRhQ2hhbm5lbFN0YXRlIHN0YXRlKSBm
aW5hbCB7IG1fY29ubmVjdGlvbi0+ZGlkQ2hhbmdlUmVhZHlTdGF0ZShtX2lkZW50aWZpZXIsIHN0
YXRlKTsgfQorICAgIHZvaWQgZGlkUmVjZWl2ZVN0cmluZ0RhdGEoY29uc3QgU3RyaW5nJiB0ZXh0
KSBmaW5hbCB7IG1fY29ubmVjdGlvbi0+ZGlkUmVjZWl2ZVN0cmluZ0RhdGEobV9pZGVudGlmaWVy
LCB0ZXh0KTsgfQorICAgIHZvaWQgZGlkUmVjZWl2ZVJhd0RhdGEoY29uc3QgY2hhciogZGF0YSwg
c2l6ZV90IHNpemUpIGZpbmFsIHsgbV9jb25uZWN0aW9uLT5kaWRSZWNlaXZlUmF3RGF0YShtX2lk
ZW50aWZpZXIsIGRhdGEsIHNpemUpOyB9CisgICAgdm9pZCBkaWREZXRlY3RFcnJvcigpIGZpbmFs
IHsgbV9jb25uZWN0aW9uLT5kaWREZXRlY3RFcnJvcihtX2lkZW50aWZpZXIpOyB9CisgICAgdm9p
ZCBidWZmZXJlZEFtb3VudElzRGVjcmVhc2luZyhzaXplX3QgYW1vdW50KSBmaW5hbCB7IG1fY29u
bmVjdGlvbi0+YnVmZmVyZWRBbW91bnRJc0RlY3JlYXNpbmcobV9pZGVudGlmaWVyLCBhbW91bnQp
OyB9CisKKyAgICBSVENEYXRhQ2hhbm5lbElkZW50aWZpZXIgbV9pZGVudGlmaWVyOworICAgIFVu
aXF1ZVJlZjxSVENEYXRhQ2hhbm5lbEhhbmRsZXI+IG1faGFuZGxlcjsKKyAgICBSZWY8UlRDRGF0
YUNoYW5uZWxSZW1vdGVTb3VyY2VDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247Cit9OworCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCX1JUQykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJU
Q0RhdGFDaGFubmVsSGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENEYXRhQ2hhbm5lbEhhbmRsZXIuY3BwCmluZGV4IDdmNTgy
Y2EwZGM3ZGFiMWFjYmNiYzkwYTc4NjVkYjgzNjIwZGExMjguLjJmM2QwOWU3YzkxNGUxYmYxYTRl
MGY5NDg4MTEyYTc2ZDY1OGJlYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ0RhdGFDaGFubmVsSGFuZGxlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRD
RGF0YUNoYW5uZWxIYW5kbGVyLmNwcApAQCAtMTkyLDggKzE5MiwxMCBAQCB2b2lkIExpYldlYlJU
Q0RhdGFDaGFubmVsSGFuZGxlcjo6cG9zdFRhc2soRnVuY3Rpb248dm9pZCgpPiYmIGZ1bmN0aW9u
KQogewogICAgIEFTU0VSVChtX2NsaWVudExvY2suaXNIZWxkKCkpOwogCi0gICAgaWYgKCFtX2Nv
bnRleHRJZGVudGlmaWVyKQorICAgIGlmICghbV9jb250ZXh0SWRlbnRpZmllcikgewogICAgICAg
ICBjYWxsT25NYWluVGhyZWFkKFdURk1vdmUoZnVuY3Rpb24pKTsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KICAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0Ojpwb3N0VGFza1RvKG1fY29udGV4dElk
ZW50aWZpZXIsIFdURk1vdmUoZnVuY3Rpb24pKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldE1lc3NhZ2luZ1Byb3h5
LmNwcAppbmRleCA2ZDg0NTVkMzEzMGVlN2Q2NWRlZjQyZDQ4ZTYwNjE1NTVmZDU4YmRhLi5lOWY1
MTk3YzRmMzI4ZDM5NzJjZDFkZWZlNDllZTgxMzc4ZGYyZDZjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldE1lc3NhZ2luZ1Byb3h5LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldE1lc3NhZ2lu
Z1Byb3h5LmNwcApAQCAtMzcsNiArMzcsOCBAQAogI2luY2x1ZGUgIkNhY2hlU3RvcmFnZUNvbm5l
Y3Rpb24uaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5j
bHVkZSAiTGliV2ViUlRDUHJvdmlkZXIuaCIKKyNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAi
U2V0dGluZ3MuaCIKICNpbmNsdWRlICJXb3JrbGV0UGFyYW1ldGVycy5oIgogI2luY2x1ZGUgIldv
cmtsZXRQZW5kaW5nVGFza3MuaCIKQEAgLTg1LDYgKzg3LDE0IEBAIFJlZlB0cjxDYWNoZVN0b3Jh
Z2VDb25uZWN0aW9uPiBBdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eTo6Y3JlYXRlQ2FjaGVTdG9y
YWdlQ29uCiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKK1JlZlB0cjxSVENEYXRhQ2hhbm5lbFJl
bW90ZUhhbmRsZXJDb25uZWN0aW9uPiBBdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eTo6Y3JlYXRl
UlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVyQ29ubmVjdGlvbigpCit7CisgICAgQVNTRVJUKGlz
TWFpblRocmVhZCgpKTsKKyAgICBpZiAoIW1fZG9jdW1lbnQtPnBhZ2UoKSkKKyAgICAgICAgcmV0
dXJuIG51bGxwdHI7CisgICAgcmV0dXJuIG1fZG9jdW1lbnQtPnBhZ2UoKS0+bGliV2ViUlRDUHJv
dmlkZXIoKS5jcmVhdGVSVENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXJDb25uZWN0aW9uKCk7Cit9
CisKIHZvaWQgQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHk6OnBvc3RUYXNrVG9Mb2FkZXIoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dDo6VGFzayYmIHRhc2spCiB7CiAgICAgbV9kb2N1bWVudC0+cG9z
dFRhc2soV1RGTW92ZSh0YXNrKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1ZGlvL0F1ZGlvV29ya2xldE1lc3NhZ2luZ1Byb3h5LmggYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldE1lc3NhZ2luZ1Byb3h5LmgKaW5kZXggYTZiYzg1
ODkxN2E1ZDBlYjc1MDRlNjQ2OGQwOGFmNTRlMDI1OWI2Yi4uYzJlYzRhMjYxZTNjMWNjNDFiNGQ2
ZTdiMmZkZWYxMWEwNTBjYTVjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdWRpby9BdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHkuaApAQCAtNTksNiAr
NTksNyBAQCBwcml2YXRlOgogCiAgICAgLy8gV29ya2VyTG9hZGVyUHJveHkuCiAgICAgUmVmUHRy
PENhY2hlU3RvcmFnZUNvbm5lY3Rpb24+IGNyZWF0ZUNhY2hlU3RvcmFnZUNvbm5lY3Rpb24oKSBm
aW5hbDsKKyAgICBSZWZQdHI8UlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVyQ29ubmVjdGlvbj4g
Y3JlYXRlUlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVyQ29ubmVjdGlvbigpIGZpbmFsOwogICAg
IHZvaWQgcG9zdFRhc2tUb0xvYWRlcihTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpUYXNrJiYpIGZp
bmFsOwogICAgIGJvb2wgcG9zdFRhc2tGb3JNb2RlVG9Xb3JrZXJPcldvcmtsZXRHbG9iYWxTY29w
ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpUYXNrJiYsIGNvbnN0IFN0cmluZyYgbW9kZSkgZmlu
YWw7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dl
YkNvcmUvU291cmNlcy50eHQKaW5kZXggNDkzMWJkMGM3YmQzNzgwMWY2YzNjNTNhMWEzOTgwNDUz
ODExMzU3Ny4uMTY2YjMxZmMzMGFiMjZlYTA4ZDg4NDZiODg1ZTBhNTgyMjhmNjJlMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291
cmNlcy50eHQKQEAgLTE2MCw2ICsxNjAsOCBAQCBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0RUTUZT
ZW5kZXIuY3BwCiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0RUTUZUb25lQ2hhbmdlRXZlbnQuY3Bw
CiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsLmNwcAogTW9kdWxlcy9tZWRpYXN0
cmVhbS9SVENEYXRhQ2hhbm5lbEV2ZW50LmNwcAorTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENEYXRh
Q2hhbm5lbFJlbW90ZUhhbmRsZXIuY3BwCitNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFu
bmVsUmVtb3RlU291cmNlLmNwcAogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENFbmNvZGVkQXVkaW9G
cmFtZS5jcHAKIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRW5jb2RlZEZyYW1lLmNwcAogTW9kdWxl
cy9tZWRpYXN0cmVhbS9SVENFbmNvZGVkVmlkZW9GcmFtZS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAxODJiOWE1YTUwNGNh
ODc2OGM4ZmI5ZGI3OTUwYzIxYjIwY2NmNDc4Li43MGUzYTI3YWVjOTg1ZmMzMzkyNzk2ZTcyZDlm
ZWY4YzZmYWYyYjE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCkBAIC05MzIsNyArOTMyLDcgQEAKIAkJMzE2RENCNEMxRTc5MTBBNjAw
MUI1Rjg3IC8qIEpTUlRDSWNlQ29ubmVjdGlvblN0YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTZEQ0I0NjFFNzkxMEE2MDAxQjVGODcgLyogSlNS
VENJY2VDb25uZWN0aW9uU3RhdGUuaCAqLzsgfTsKIAkJMzE2RENCNEUxRTc5MTBBNjAwMUI1Rjg3
IC8qIEpTUlRDSWNlR2F0aGVyaW5nU3RhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDMxNkRDQjQ4MUU3OTEwQTYwMDFCNUY4NyAvKiBKU1JUQ0ljZUdh
dGhlcmluZ1N0YXRlLmggKi87IH07CiAJCTMxNkRDQjUwMUU3OTEwQTYwMDFCNUY4NyAvKiBKU1JU
Q1NpZ25hbGluZ1N0YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAzMTZEQ0I0QTFFNzkxMEE2MDAxQjVGODcgLyogSlNSVENTaWduYWxpbmdTdGF0ZS5o
ICovOyB9OwotCQkzMTZERTcwMjFFODNBRTFEMDA4NEMyNjEgLyogUlRDRGF0YUNoYW5uZWxTdGF0
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE2REU3
MDExRTgzQUUxRDAwODRDMjYxIC8qIFJUQ0RhdGFDaGFubmVsU3RhdGUuaCAqLzsgfTsKKwkJMzE2
REU3MDIxRTgzQUUxRDAwODRDMjYxIC8qIFJUQ0RhdGFDaGFubmVsU3RhdGUuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxNkRFNzAxMUU4M0FFMUQwMDg0
QzI2MSAvKiBSVENEYXRhQ2hhbm5lbFN0YXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMzE2RkUwNzIwRTZDQ0JFRTAwQkY2MDg4IC8qIEpTQ1NT
S2V5ZnJhbWVSdWxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAzMTZGRTA2RTBFNkNDQkVFMDBCRjYwODggLyogSlNDU1NLZXlmcmFtZVJ1bGUuaCAqLzsg
fTsKIAkJMzE2RkUwNzQwRTZDQ0JFRTAwQkY2MDg4IC8qIEpTQ1NTS2V5ZnJhbWVzUnVsZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE2RkUwNzAwRTZD
Q0JFRTAwQkY2MDg4IC8qIEpTQ1NTS2V5ZnJhbWVzUnVsZS5oICovOyB9OwogCQkzMTc0MUFBRDE2
NjM2NjA5MDA4QTVCN0UgLyogU2ltdWxhdGVkQ2xpY2tPcHRpb25zLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTc0MUFBQjE2NjM1RTQ1MDA4QTVCN0Ug
LyogU2ltdWxhdGVkQ2xpY2tPcHRpb25zLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTEwMzYsNiArMTAzNiw5IEBACiAJCTQxMTAzQUFDMUUzOTc5
MTAwMDc2OUYxNCAvKiBSZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2VDb2NvYS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDExMDNBQTgxRTM5NzkwQTAw
NzY5RjE0IC8qIFJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZUNvY29hLmggKi87IH07CiAJCTQx
MTAzQUFEMUUzOTc5MTAwMDc2OUYwMyAvKiBSZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2UuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxMTAzQUE5MUUz
OTc5MEEwMDc2OUYwMyAvKiBSZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2UuaCAqLzsgfTsKIAkJ
NDExMDNBQUQxRTM5NzkxMDAwNzY5RjE0IC8qIFJlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZUNv
Y29hLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTEw
M0FBOTFFMzk3OTBBMDA3NjlGMTQgLyogUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlQ29jb2Eu
aCAqLzsgfTsKKwkJNDExMjIzQkEyNjAyNDRGRTAwQjBBMEI2IC8qIFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHRJZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0MTEyMjNCODI2MDI0NEZFMDBCMEEwQjYgLyogU2NyaXB0RXhlY3V0aW9uQ29udGV4
dElkZW50aWZpZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OworCQk0MTEyMjNCRTI2MDI1QkMxMDBCMEEwQjYgLyogUlRDRGF0YUNoYW5uZWxSZW1vdGVT
b3VyY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQx
NkVEQkVGMjVGRkIyMjQwMDA5MjY3NSAvKiBSVENEYXRhQ2hhbm5lbFJlbW90ZVNvdXJjZS5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTQxMTIyM0M1
MjYwMzU2N0QwMEIwQTBCNiAvKiBEZXRhY2hlZFJUQ0RhdGFDaGFubmVsLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTEyMjNDMzI2MDM1NjdDMDBCMEEw
QjYgLyogRGV0YWNoZWRSVENEYXRhQ2hhbm5lbC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQxMTJCNTQzMUY5RjlDQTAwMEU2Nzg3NSAvKiBTZXJ2
aWNlV29ya2VyVGhyZWFkUHJveHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDQxMTJCNTNGMUY5RjlDOUIwMEU2Nzg3NSAvKiBTZXJ2aWNlV29ya2VyVGhy
ZWFkUHJveHkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQk0MTE0RkUzMjI1QkVCRDE5MDA5RDlGMjAgLyogUlRDUnRjcFBhcmFtZXRlcnMuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxMTRGRTJGMjVCRUJE
MTgwMDlEOUYyMCAvKiBSVENSdGNwUGFyYW1ldGVycy5oICovOyB9OwogCQk0MTIzMDgxQjEzOEM0
Mjk3MDBCQ0NGQ0EgLyogV2ViQ29yZS5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0YxOUIxQTA4MjQ1RTVBMDAxRTlBQkMgLyogV2Vi
Q29yZS5mcmFtZXdvcmsgKi87IH07CkBAIC0xMDYxLDcgKzEwNjQsNyBAQAogCQk0MTNDOEIzMzI1
NTJGMjdEMDBFNjUwNTUgLyogUlRDUnRwU2VuZGVyV2l0aFRyYW5zZm9ybS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEzQzhCMkUyNTUyRjI3QjAwRTY1
MDU1IC8qIFJUQ1J0cFNlbmRlcldpdGhUcmFuc2Zvcm0uaCAqLzsgfTsKIAkJNDEzQzhCMzQyNTUy
RjI3RDAwRTY1MDU1IC8qIFJUQ1J0cFRyYW5zZm9ybS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEzQzhCMkYyNTUyRjI3QjAwRTY1MDU1IC8qIFJUQ1J0
cFRyYW5zZm9ybS5oICovOyB9OwogCQk0MTNDOEIzNTI1NTJGMjdEMDBFNjUwNTUgLyogUlRDUnRw
UmVjZWl2ZXJXaXRoVHJhbnNmb3JtLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA0MTNDOEIzMDI1NTJGMjdDMDBFNjUwNTUgLyogUlRDUnRwUmVjZWl2ZXJX
aXRoVHJhbnNmb3JtLmggKi87IH07Ci0JCTQxM0NDMTFEMjVFN0Q5OEUwMEQ1OUM0QiAvKiBSVENQ
cmlvcml0eVR5cGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDQxM0NDMTFDMjVFN0Q5OEQwMEQ1OUM0QiAvKiBSVENQcmlvcml0eVR5cGUuaCAqLzsgfTsK
KwkJNDEzQ0MxMUQyNUU3RDk4RTAwRDU5QzRCIC8qIFJUQ1ByaW9yaXR5VHlwZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEzQ0MxMUMyNUU3RDk4RDAw
RDU5QzRCIC8qIFJUQ1ByaW9yaXR5VHlwZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTQxM0NDRDRBMjBERTAzNEYwMDY1QTIxQSAvKiBNb2NrTWVk
aWFEZXZpY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDQxM0NDRDQ4MjBERTAxM0MwMDY1QTIxQSAvKiBNb2NrTWVkaWFEZXZpY2UuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0MTNFMDA3OTFEQjBFNEYy
MDAyMzQxRDIgLyogTWVtb3J5UmVsZWFzZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNDEzRTAwNzgxREIwRTRERTAwMjM0MUQyIC8qIE1lbW9yeVJlbGVh
c2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0
MTQ0NjBBMjI0MTI5OTQ1MDA4MTRCRTcgLyogTWVkaWFTZXNzaW9uSWRlbnRpZmllci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE0NDYwQTAyNDEyOTk0
MTAwODE0QkU3IC8qIE1lZGlhU2Vzc2lvbklkZW50aWZpZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTA5OCw2ICsxMTAxLDEwIEBACiAJCTQx
NkU2RkU5MUJCRDEyRTUwMDBBNjA0MyAvKiBSZWFkYWJsZVN0cmVhbUJ1aWx0aW5zLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QjAzRDgwNjFCQjMxMTBE
MDBCNzY0RDggLyogUmVhZGFibGVTdHJlYW1CdWlsdGlucy5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQxNkU2RkU5MUJCRDEyRTUwMDBBNjA1MyAv
KiBXcml0YWJsZVN0cmVhbUJ1aWx0aW5zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5QjAzRDgwNjFCQjMxMTBEMDBCNzY0RTggLyogV3JpdGFibGVTdHJl
YW1CdWlsdGlucy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTQxNkVDQUU1MjVCNThDQzQwMEIzNERBNSAvKiBNZWRpYVNlc3Npb25Hcm91cElkZW50
aWZpZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQx
NkVDQUUzMjVCNThDQzQwMEIzNERBNSAvKiBNZWRpYVNlc3Npb25Hcm91cElkZW50aWZpZXIuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk0MTZFREJG
NjI2MDBENjc5MDAwOTI2NzUgLyogUlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVyLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTZFREJGNDI2MDBENjc4
MDAwOTI2NzUgLyogUlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVyLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNDE2RURDMDAyNjAwRTc4ODAwMDky
Njc1IC8qIFJUQ0RhdGFDaGFubmVsSWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE2RURCRkYyNjAwRTc4NzAwMDkyNjc1IC8qIFJUQ0Rh
dGFDaGFubmVsSWRlbnRpZmllci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CisJCTQxNkVEQzAyMjYwMEU3QjAwMDA5MjY3NSAvKiBSVENEYXRhQ2hhbm5l
bFJlbW90ZUhhbmRsZXJDb25uZWN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0MTZFREMwMTI2MDBFN0IwMDAwOTI2NzUgLyogUlRDRGF0YUNoYW5u
ZWxSZW1vdGVIYW5kbGVyQ29ubmVjdGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CisJCTQxNkVEQzA0MjYwMEU4MTAwMDA5MjY3NSAvKiBSVENEYXRh
Q2hhbm5lbFJlbW90ZVNvdXJjZUNvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxNkVEQzAzMjYwMEU4MEYwMDA5MjY3NSAvKiBSVENEYXRh
Q2hhbm5lbFJlbW90ZVNvdXJjZUNvbm5lY3Rpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0MTZGRDI1RjI0MEZBNEU1MDA2NjYxRDggLyogTm93
UGxheWluZ0luZm8uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDQxNkZEMjVEMjQwRUUxQUUwMDY2NjFEOCAvKiBOb3dQbGF5aW5nSW5mby5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQxNzI1M0FCMTM1NEJC
QkMwMDM2MEYyQSAvKiBNZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTcyNTNBOTEzNTRC
QkJDMDAzNjBGMkEgLyogTWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudC5oICov
OyB9OwogCQk0MTc2MTJBRjFFM0E5OTQwMDBDM0Q4MUQgLyogTGliV2ViUlRDTWVkaWFFbmRwb2lu
dC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTc2
MTJBQjFFM0E5OTNCMDBDM0Q4MUQgLyogTGliV2ViUlRDTWVkaWFFbmRwb2ludC5jcHAgKi87IH07
CkBAIC03NjQ3LDYgKzc2NTQsOCBAQAogCQk0MTEwM0FBQTFFMzk3OTBBMDA3NjlGMTQgLyogUmVh
bHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlQ29jb2EuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlQ29jb2EuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTExNEE3QTIzMTdCMzlFMDBCNTYwMDcgLyogV29y
a2VyTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV29ya2VyTWVz
c2FnZVBvcnRDaGFubmVsUHJvdmlkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NDExMTRBN0MyMzE3QjM5RTAwQjU2MDA3IC8qIFdvcmtlck1lc3NhZ2VQb3J0Q2hhbm5lbFByb3Zp
ZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdvcmtlck1lc3NhZ2VQb3J0Q2hhbm5lbFByb3Zp
ZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDExMjIzQjgyNjAyNDRGRTAw
QjBBMEI2IC8qIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxMTIyM0MzMjYwMzU2N0MwMEIwQTBCNiAv
KiBEZXRhY2hlZFJUQ0RhdGFDaGFubmVsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IERldGFjaGVkUlRDRGF0YUNoYW5uZWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNDExMkI1M0YxRjlGOUM5QjAwRTY3ODc1IC8qIFNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTZXJ2aWNlV29ya2VyVGhyZWFkUHJv
eHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDExMkI1NDExRjlGOUM5QzAwRTY3
ODc1IC8qIFNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk0MTE0RkUyRjI1QkVCRDE4MDA5RDlGMjAgLyogUlRDUnRjcFBh
cmFtZXRlcnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUlRDUnRjcFBhcmFt
ZXRlcnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTc3OTMsNiArNzgwMiwxMyBA
QAogCQk0MTZFMEIzNzIwOUJDM0MyMDA0QTk1RDkgLyogRmV0Y2hJZGVudGlmaWVyLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZldGNoSWRlbnRpZmllci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk0MTZFMjlBNTEwMkZBOTYyMDA3RkMxNEUgLyogV29ya2VyUmVw
b3J0aW5nUHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV29ya2VyUmVw
b3J0aW5nUHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE2RUNBRTMyNUI1
OENDNDAwQjM0REE1IC8qIE1lZGlhU2Vzc2lvbkdyb3VwSWRlbnRpZmllci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVNlc3Npb25Hcm91cElkZW50aWZpZXIuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDE2RURCRUQyNUZGQjIyNDAwMDkyNjc1IC8qIFJU
Q0RhdGFDaGFubmVsUmVtb3RlU291cmNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFJUQ0RhdGFDaGFubmVsUmVtb3RlU291cmNlLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJNDE2RURCRUYyNUZGQjIyNDAwMDkyNjc1IC8qIFJUQ0RhdGFDaGFubmVs
UmVtb3RlU291cmNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJUQ0RhdGFD
aGFubmVsUmVtb3RlU291cmNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxNkVE
QkY0MjYwMEQ2NzgwMDA5MjY3NSAvKiBSVENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXIuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVy
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxNkVEQkY3MjYwMEQ3NjMwMDA5MjY3
NSAvKiBSVENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gUlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVyLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDE2RURCRkYyNjAwRTc4NzAwMDkyNjc1IC8qIFJUQ0Rh
dGFDaGFubmVsSWRlbnRpZmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBS
VENEYXRhQ2hhbm5lbElkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
NDE2RURDMDEyNjAwRTdCMDAwMDkyNjc1IC8qIFJUQ0RhdGFDaGFubmVsUmVtb3RlSGFuZGxlckNv
bm5lY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUlRDRGF0YUNoYW5u
ZWxSZW1vdGVIYW5kbGVyQ29ubmVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk0MTZFREMwMzI2MDBFODBGMDAwOTI2NzUgLyogUlRDRGF0YUNoYW5uZWxSZW1vdGVTb3VyY2VD
b25uZWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJUQ0RhdGFDaGFu
bmVsUmVtb3RlU291cmNlQ29ubmVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk0MTZGODA3OTI0NTA5RjMyMDBCNjhGMDIgLyogV2luZG93RGlzcGxheUNhcHR1cmVyTWFjLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdpbmRvd0Rpc3BsYXlDYXB0dXJlck1h
Yy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTZGODA3QTI0NTA5RjMyMDBCNjhG
MDIgLyogU2NyZWVuRGlzcGxheUNhcHR1cmVyTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBwYXRoID0gU2NyZWVuRGlzcGxheUNhcHR1cmVyTWFjLm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk0MTZGODA3QjI0NTA5RjMzMDBCNjhGMDIgLyogV2luZG93RGlz
cGxheUNhcHR1cmVyTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRo
ID0gV2luZG93RGlzcGxheUNhcHR1cmVyTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtMTcyNDIsNiArMTcyNTgsNyBAQAogCQkJCTQxQzdFMTA1MUU2QTU0MzYwMDI3QjRERSAv
KiBDYW52YXNDYXB0dXJlTWVkaWFTdHJlYW1UcmFjay5jcHAgKi8sCiAJCQkJNDFDN0UxMDYxRTZB
NTQzNjAwMjdCNERFIC8qIENhbnZhc0NhcHR1cmVNZWRpYVN0cmVhbVRyYWNrLmggKi8sCiAJCQkJ
NDFDN0UxMDgxRTZBQTM3QzAwMjdCNERFIC8qIENhbnZhc0NhcHR1cmVNZWRpYVN0cmVhbVRyYWNr
LmlkbCAqLywKKwkJCQk0MTEyMjNDMzI2MDM1NjdDMDBCMEEwQjYgLyogRGV0YWNoZWRSVENEYXRh
Q2hhbm5lbC5oICovLAogCQkJCTkzQTgwNjExMUUwM0I1MUMwMDhBMUYyNiAvKiBEb3VibGVSYW5n
ZS5oICovLAogCQkJCTkzQTgwNjEyMUUwM0I1MUMwMDhBMUYyNiAvKiBEb3VibGVSYW5nZS5pZGwg
Ki8sCiAJCQkJOTNBODA2MTMxRTAzQjUxQzAwOEExRjI2IC8qIExvbmdSYW5nZS5oICovLApAQCAt
MTcyOTEsNiArMTczMDgsMTAgQEAKIAkJCQkwNzIyMUI2NjE3Q0VDMzI3MDA4NDhFNTEgLyogUlRD
RGF0YUNoYW5uZWxFdmVudC5jcHAgKi8sCiAJCQkJMDcyMjFCNjcxN0NFQzMyNzAwODQ4RTUxIC8q
IFJUQ0RhdGFDaGFubmVsRXZlbnQuaCAqLywKIAkJCQkwNzIyMUI2ODE3Q0VDMzI3MDA4NDhFNTEg
LyogUlRDRGF0YUNoYW5uZWxFdmVudC5pZGwgKi8sCisJCQkJNDE2RURCRjcyNjAwRDc2MzAwMDky
Njc1IC8qIFJUQ0RhdGFDaGFubmVsUmVtb3RlSGFuZGxlci5jcHAgKi8sCisJCQkJNDE2RURCRjQy
NjAwRDY3ODAwMDkyNjc1IC8qIFJUQ0RhdGFDaGFubmVsUmVtb3RlSGFuZGxlci5oICovLAorCQkJ
CTQxNkVEQkVEMjVGRkIyMjQwMDA5MjY3NSAvKiBSVENEYXRhQ2hhbm5lbFJlbW90ZVNvdXJjZS5j
cHAgKi8sCisJCQkJNDE2RURCRUYyNUZGQjIyNDAwMDkyNjc1IC8qIFJUQ0RhdGFDaGFubmVsUmVt
b3RlU291cmNlLmggKi8sCiAJCQkJNDFGQ0I3NUQyMTQ4NjZGRTAwMzhBREM2IC8qIFJUQ0RlZ3Jh
ZGF0aW9uUHJlZmVyZW5jZS5oICovLAogCQkJCTQxRkNCNzU1MjE0ODY1Q0YwMDM4QURDNiAvKiBS
VENEZWdyYWRhdGlvblByZWZlcmVuY2UuaWRsICovLAogCQkJCTA3MjIxQjY5MTdDRUMzMjcwMDg0
OEU1MSAvKiBSVENEVE1GU2VuZGVyLmNwcCAqLywKQEAgLTE3NDg2LDYgKzE3NTA3LDkgQEAKIAkJ
CQkzMTM1OTEwQzFFN0REQ0I2MDBGMzA2MzAgLyogUlRDQnVuZGxlUG9saWN5LmggKi8sCiAJCQkJ
MDcyMjFCQTIxN0NGMEFENDAwODQ4RTUxIC8qIFJUQ0RhdGFDaGFubmVsSGFuZGxlci5oICovLAog
CQkJCTA3MjIxQkEzMTdDRjBBRDQwMDg0OEU1MSAvKiBSVENEYXRhQ2hhbm5lbEhhbmRsZXJDbGll
bnQuaCAqLywKKwkJCQk0MTZFREJGRjI2MDBFNzg3MDAwOTI2NzUgLyogUlRDRGF0YUNoYW5uZWxJ
ZGVudGlmaWVyLmggKi8sCisJCQkJNDE2RURDMDEyNjAwRTdCMDAwMDkyNjc1IC8qIFJUQ0RhdGFD
aGFubmVsUmVtb3RlSGFuZGxlckNvbm5lY3Rpb24uaCAqLywKKwkJCQk0MTZFREMwMzI2MDBFODBG
MDAwOTI2NzUgLyogUlRDRGF0YUNoYW5uZWxSZW1vdGVTb3VyY2VDb25uZWN0aW9uLmggKi8sCiAJ
CQkJMzE2REU3MDExRTgzQUUxRDAwODRDMjYxIC8qIFJUQ0RhdGFDaGFubmVsU3RhdGUuaCAqLywK
IAkJCQk0MUYyMzU0NDIyRjU1MDMzMDBCNEZDREIgLyogUlRDRFRNRlNlbmRlckJhY2tlbmQuaCAq
LywKIAkJCQkwNzIyMUJBNjE3Q0YwQUQ0MDA4NDhFNTEgLyogUlRDSWNlQ2FuZGlkYXRlRGVzY3Jp
cHRvci5jcHAgKi8sCkBAIC0yNzgxMyw2ICsyNzgzNyw3IEBACiAJCQkJQTE4RjdBMzUxRUNBNzM2
NDAwNTlFMUUxIC8qIFJ1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5jcHAgKi8sCiAJCQkJMjkzRUFF
MUUxMzU2QjJGRTAwNjdBQ0Y5IC8qIFJ1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oICovLAogCQkJ
CUMxRTFEMjM1MjAzREYxNTQwMDU4NDY2NSAvKiBTY3JlZW5Qcm9wZXJ0aWVzLmggKi8sCisJCQkJ
NDExMjIzQjgyNjAyNDRGRTAwQjBBMEI2IC8qIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlm
aWVyLmggKi8sCiAJCQkJQkM4QUUzNEMxMkVBMDk2QTAwRUIzQUU2IC8qIFNjcm9sbGFibGVBcmVh
LmNwcCAqLywKIAkJCQlCQzhBRTM0RDEyRUEwOTZBMDBFQjNBRTYgLyogU2Nyb2xsYWJsZUFyZWEu
aCAqLywKIAkJCQkwRkM2OTJCQzI1N0MwRjQxMDA5OEUzRjkgLyogU2Nyb2xsQW5pbWF0aW9uS2lu
ZXRpYy5jcHAgKi8sCkBAIC0zMTk5Myw2ICszMjAxOCw3IEBACiAJCQkJOTQ3OTQ5MjUxRTAzMDhB
RjAwMDE4RDg1IC8qIERlcHJlY2F0ZWRDU1NPTVZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQk5
NDc5NDkzRDFFMDQ2M0I2MDAwMThEODUgLyogRGVwcmVjYXRlZENTU09NVmFsdWVMaXN0LmggaW4g
SGVhZGVycyAqLywKIAkJCQk3Q0JEMTI5RTFGOThCOTBFMDAxMjdEMjkgLyogRGVwcmVjYXRlZEds
b2JhbFNldHRpbmdzLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTEyMjNDNTI2MDM1NjdEMDBCMEEw
QjYgLyogRGV0YWNoZWRSVENEYXRhQ2hhbm5lbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTdDOUFC
RjkxMzU3QTNCRjAwRjU1MDNGIC8qIERldGFpbHNNYXJrZXJDb250cm9sLmggaW4gSGVhZGVycyAq
LywKIAkJCQlBMUVENzc4RDFCRTMyOTQwMDBEQzE3OTEgLyogRGV2aWNlLmggaW4gSGVhZGVycyAq
LywKIAkJCQlDQ0MyQjUxNDE1RjYxMzA2MDA0OENERDYgLyogRGV2aWNlQ2xpZW50LmggaW4gSGVh
ZGVycyAqLywKQEAgLTM0NjIwLDYgKzM0NjQ2LDExIEBACiAJCQkJMDc4RTA5M0MxN0QxNkUxQzAw
NDIwQUExIC8qIFJUQ0RhdGFDaGFubmVsSGFuZGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDc4
RTA5M0QxN0QxNkUxQzAwNDIwQUExIC8qIFJUQ0RhdGFDaGFubmVsSGFuZGxlckNsaWVudC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMDczNzk0RkExOUY1ODY0RTAwRTVBMDQ1IC8qIFJUQ0RhdGFDaGFu
bmVsSGFuZGxlck1vY2suaCBpbiBIZWFkZXJzICovLAorCQkJCTQxNkVEQzAwMjYwMEU3ODgwMDA5
MjY3NSAvKiBSVENEYXRhQ2hhbm5lbElkZW50aWZpZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTQx
NkVEQkY2MjYwMEQ2NzkwMDA5MjY3NSAvKiBSVENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXIuaCBp
biBIZWFkZXJzICovLAorCQkJCTQxNkVEQzAyMjYwMEU3QjAwMDA5MjY3NSAvKiBSVENEYXRhQ2hh
bm5lbFJlbW90ZUhhbmRsZXJDb25uZWN0aW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTEyMjNC
RTI2MDI1QkMxMDBCMEEwQjYgLyogUlRDRGF0YUNoYW5uZWxSZW1vdGVTb3VyY2UuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTQxNkVEQzA0MjYwMEU4MTAwMDA5MjY3NSAvKiBSVENEYXRhQ2hhbm5lbFJl
bW90ZVNvdXJjZUNvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTMxNkRFNzAyMUU4M0FF
MUQwMDg0QzI2MSAvKiBSVENEYXRhQ2hhbm5lbFN0YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQkw
NzhFMDkyMDE3RDE0RDFDMDA0MjBBQTEgLyogUlRDRFRNRlNlbmRlci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMDc4RTA5MjExN0QxNEQxQzAwNDIwQUExIC8qIFJUQ0RUTUZUb25lQ2hhbmdlRXZlbnQu
aCBpbiBIZWFkZXJzICovLApAQCAtMzQ2ODgsNiArMzQ3MTksNyBAQAogCQkJCTA4QTQ4NDc4MEU1
MjcyQzUwMEMzRkU3NiAvKiBTY3JpcHRFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlFM0U0
RTJBODFFM0IxNzEwMDAyM0JCOEEgLyogU2NyaXB0RWxlbWVudENhY2hlZFNjcmlwdEZldGNoZXIu
aCBpbiBIZWFkZXJzICovLAogCQkJCUUxMUM5RDlCMEVCMzY4MTIwMEU0MDlEQiAvKiBTY3JpcHRF
eGVjdXRpb25Db250ZXh0LmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTEyMjNCQTI2MDI0NEZFMDBC
MEEwQjYgLyogU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIuaCBpbiBIZWFkZXJzICov
LAogCQkJCTM3MkQzRTU1MjE2NTc4QUUwMEM1RTAyMSAvKiBTY3JpcHRNb2R1bGVMb2FkZXIuaCBp
biBIZWFkZXJzICovLAogCQkJCUZEMzE2MDM2MTJCMDI2NzYwMEMxQTM1OSAvKiBTY3JpcHRQcm9j
ZXNzb3JOb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQk4QTQxM0FFMDEyMDdCQkE1MDA4MjAxNkUg
LyogU2NyaXB0UnVubmVyLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwCmluZGV4IDQ3NTM0MmFkZWM1
ODRlMzYyMDExNGYxNzhiMzQ4NTYzZWNlYzY3ZTguLmY2OWYxMTQ1OGNjZDRiNjkxYjVhYWMwZDdl
MmE5ZTU5ZGJiNDU5NGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1Nl
cmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
U2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcApAQCAtMzgyNiw5ICszODI2LDE2IEBAIFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlKFZlY3Rvcjx1aW50OF90PiYmIGJ1
ZmZlcikKICAgICBtX21lbW9yeUNvc3QgPSBjb21wdXRlTWVtb3J5Q29zdCgpOwogfQogCi1TZXJp
YWxpemVkU2NyaXB0VmFsdWU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZShWZWN0b3I8dWludDhfdD4m
JiBidWZmZXIsIHN0ZDo6dW5pcXVlX3B0cjxBcnJheUJ1ZmZlckNvbnRlbnRzQXJyYXk+IGFycmF5
QnVmZmVyQ29udGVudHNBcnJheSkKK1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6U2VyaWFsaXplZFNj
cmlwdFZhbHVlKFZlY3Rvcjx1aW50OF90PiYmIGJ1ZmZlciwgc3RkOjp1bmlxdWVfcHRyPEFycmF5
QnVmZmVyQ29udGVudHNBcnJheT4mJiBhcnJheUJ1ZmZlckNvbnRlbnRzQXJyYXkKKyNpZiBFTkFC
TEUoV0VCX1JUQykKKyAgICAgICAgLCBWZWN0b3I8c3RkOjp1bmlxdWVfcHRyPERldGFjaGVkUlRD
RGF0YUNoYW5uZWw+PiYmIGRldGFjaGVkUlRDRGF0YUNoYW5uZWxzCisjZW5kaWYKKyAgICAgICAg
KQogICAgIDogbV9kYXRhKFdURk1vdmUoYnVmZmVyKSkKICAgICAsIG1fYXJyYXlCdWZmZXJDb250
ZW50c0FycmF5KFdURk1vdmUoYXJyYXlCdWZmZXJDb250ZW50c0FycmF5KSkKKyNpZiBFTkFCTEUo
V0VCX1JUQykKKyAgICAsIG1fZGV0YWNoZWRSVENEYXRhQ2hhbm5lbHMoV1RGTW92ZShkZXRhY2hl
ZFJUQ0RhdGFDaGFubmVscykpCisjZW5kaWYKIHsKICAgICBtX21lbW9yeUNvc3QgPSBjb21wdXRl
TWVtb3J5Q29zdCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
U2VyaWFsaXplZFNjcmlwdFZhbHVlLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJp
YWxpemVkU2NyaXB0VmFsdWUuaAppbmRleCA1NGM4ZTgwZjRlMGIwMTQwZjYxNDJmOTQxMjJjMTU2
MDg1YmRhYjFjLi45MDIwNGVlNTYzMWQwNGRmODY0Y2Y1MGViY2IzMzczMzk2NjBjMmNkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUu
aApAQCAtMjYsNiArMjYsNyBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgIkRldGFjaGVk
UlRDRGF0YUNoYW5uZWwuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Pci5oIgogI2luY2x1ZGUgPEph
dmFTY3JpcHRDb3JlL0FycmF5QnVmZmVyLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlND
SlNWYWx1ZS5oPgpAQCAtNTAsOSArNTEsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAjaWYgRU5B
QkxFKE9GRlNDUkVFTl9DQU5WQVMpCiBjbGFzcyBEZXRhY2hlZE9mZnNjcmVlbkNhbnZhczsKICNl
bmRpZgotI2lmIEVOQUJMRShXRUJfUlRDKQotc3RydWN0IERldGFjaGVkUlRDRGF0YUNoYW5uZWw7
Ci0jZW5kaWYKIGNsYXNzIElEQlZhbHVlOwogY2xhc3MgTWVzc2FnZVBvcnQ7CiBjbGFzcyBJbWFn
ZUJpdG1hcEJhY2tpbmc7CkBAIC0xMjAsNyArMTE4LDEyIEBAIHB1YmxpYzoKIAogcHJpdmF0ZToK
ICAgICBXRUJDT1JFX0VYUE9SVCBTZXJpYWxpemVkU2NyaXB0VmFsdWUoVmVjdG9yPHVuc2lnbmVk
IGNoYXI+JiYpOwotICAgIFdFQkNPUkVfRVhQT1JUIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZShWZWN0
b3I8dW5zaWduZWQgY2hhcj4mJiwgc3RkOjp1bmlxdWVfcHRyPEFycmF5QnVmZmVyQ29udGVudHNB
cnJheT4pOworICAgIFdFQkNPUkVfRVhQT1JUIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZShWZWN0b3I8
dW5zaWduZWQgY2hhcj4mJiwgc3RkOjp1bmlxdWVfcHRyPEFycmF5QnVmZmVyQ29udGVudHNBcnJh
eT4mJgorI2lmIEVOQUJMRShXRUJfUlRDKQorICAgICAgICAsIFZlY3RvcjxzdGQ6OnVuaXF1ZV9w
dHI8RGV0YWNoZWRSVENEYXRhQ2hhbm5lbD4+JiYKKyNlbmRpZgorICAgICAgICApOworCiAgICAg
U2VyaWFsaXplZFNjcmlwdFZhbHVlKFZlY3Rvcjx1bnNpZ25lZCBjaGFyPiYmLCBjb25zdCBWZWN0
b3I8U3RyaW5nPiYgYmxvYlVSTHMsIHN0ZDo6dW5pcXVlX3B0cjxBcnJheUJ1ZmZlckNvbnRlbnRz
QXJyYXk+LCBzdGQ6OnVuaXF1ZV9wdHI8QXJyYXlCdWZmZXJDb250ZW50c0FycmF5PiBzaGFyZWRC
dWZmZXJzLCBWZWN0b3I8T3B0aW9uYWw8SW1hZ2VCaXRtYXBCYWNraW5nPj4mJiBiYWNraW5nU3Rv
cmVzCiAjaWYgRU5BQkxFKE9GRlNDUkVFTl9DQU5WQVMpCiAgICAgICAgICwgVmVjdG9yPHN0ZDo6
dW5pcXVlX3B0cjxEZXRhY2hlZE9mZnNjcmVlbkNhbnZhcz4+JiYgPSB7IH0KQEAgLTE2MiwxNCAr
MTY1LDE5IEBAIHZvaWQgU2VyaWFsaXplZFNjcmlwdFZhbHVlOjplbmNvZGUoRW5jb2RlciYgZW5j
b2RlcikgY29uc3QKICAgICBhdXRvIGhhc0FycmF5ID0gbV9hcnJheUJ1ZmZlckNvbnRlbnRzQXJy
YXkgJiYgbV9hcnJheUJ1ZmZlckNvbnRlbnRzQXJyYXktPnNpemUoKTsKICAgICBlbmNvZGVyIDw8
IGhhc0FycmF5OwogCi0gICAgaWYgKCFoYXNBcnJheSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAg
ZW5jb2RlciA8PCBzdGF0aWNfY2FzdDx1aW50NjRfdD4obV9hcnJheUJ1ZmZlckNvbnRlbnRzQXJy
YXktPnNpemUoKSk7Ci0gICAgZm9yIChjb25zdCBhdXRvICZhcnJheUJ1ZmZlckNvbnRlbnRzIDog
Km1fYXJyYXlCdWZmZXJDb250ZW50c0FycmF5KSB7Ci0gICAgICAgIGVuY29kZXIgPDwgYXJyYXlC
dWZmZXJDb250ZW50cy5zaXplSW5CeXRlcygpOwotICAgICAgICBlbmNvZGVyLmVuY29kZUZpeGVk
TGVuZ3RoRGF0YShzdGF0aWNfY2FzdDxjb25zdCB1aW50OF90Kj4oYXJyYXlCdWZmZXJDb250ZW50
cy5kYXRhKCkpLCBhcnJheUJ1ZmZlckNvbnRlbnRzLnNpemVJbkJ5dGVzKCksIDEpOworICAgIGlm
IChoYXNBcnJheSkgeworICAgICAgICBlbmNvZGVyIDw8IHN0YXRpY19jYXN0PHVpbnQ2NF90Piht
X2FycmF5QnVmZmVyQ29udGVudHNBcnJheS0+c2l6ZSgpKTsKKyAgICAgICAgZm9yIChjb25zdCBh
dXRvICZhcnJheUJ1ZmZlckNvbnRlbnRzIDogKm1fYXJyYXlCdWZmZXJDb250ZW50c0FycmF5KSB7
CisgICAgICAgICAgICBlbmNvZGVyIDw8IGFycmF5QnVmZmVyQ29udGVudHMuc2l6ZUluQnl0ZXMo
KTsKKyAgICAgICAgICAgIGVuY29kZXIuZW5jb2RlRml4ZWRMZW5ndGhEYXRhKHN0YXRpY19jYXN0
PGNvbnN0IHVpbnQ4X3QqPihhcnJheUJ1ZmZlckNvbnRlbnRzLmRhdGEoKSksIGFycmF5QnVmZmVy
Q29udGVudHMuc2l6ZUluQnl0ZXMoKSwgMSk7CisgICAgICAgIH0KICAgICB9CisKKyNpZiBFTkFC
TEUoV0VCX1JUQykKKyAgICBlbmNvZGVyIDw8IHN0YXRpY19jYXN0PHVpbnQ2NF90PihtX2RldGFj
aGVkUlRDRGF0YUNoYW5uZWxzLnNpemUoKSk7CisgICAgZm9yIChjb25zdCBhdXRvICZjaGFubmVs
IDogbV9kZXRhY2hlZFJUQ0RhdGFDaGFubmVscykKKyAgICAgICAgZW5jb2RlciA8PCAqY2hhbm5l
bDsKKyNlbmRpZgogfQogCiB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgpAQCAtMTgzLDMzICsxOTEs
NTEgQEAgUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gU2VyaWFsaXplZFNjcmlwdFZhbHVl
OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGhhc0Fy
cmF5KSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICBpZiAoIWhhc0FycmF5KQotICAg
ICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTZXJpYWxpemVkU2NyaXB0VmFsdWUoV1RGTW92ZShk
YXRhKSkpOworICAgIHN0ZDo6dW5pcXVlX3B0cjxBcnJheUJ1ZmZlckNvbnRlbnRzQXJyYXk+IGFy
cmF5QnVmZmVyQ29udGVudHNBcnJheTsKKyAgICBpZiAoaGFzQXJyYXkpIHsKKyAgICAgICAgdWlu
dDY0X3QgYXJyYXlMZW5ndGg7CisgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUoYXJyYXlMZW5n
dGgpKQorICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIEFTU0VSVChhcnJheUxl
bmd0aCk7CisKKyAgICAgICAgYXJyYXlCdWZmZXJDb250ZW50c0FycmF5ID0gbWFrZVVuaXF1ZTxB
cnJheUJ1ZmZlckNvbnRlbnRzQXJyYXk+KCk7CisgICAgICAgIHdoaWxlIChhcnJheUxlbmd0aC0t
KSB7CisgICAgICAgICAgICB1bnNpZ25lZCBidWZmZXJTaXplOworICAgICAgICAgICAgaWYgKCFk
ZWNvZGVyLmRlY29kZShidWZmZXJTaXplKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gbnVsbHB0
cjsKKyAgICAgICAgICAgIGlmICghZGVjb2Rlci50ZW1wbGF0ZSBidWZmZXJJc0xhcmdlRW5vdWdo
VG9Db250YWluPHVpbnQ4X3Q+KGJ1ZmZlclNpemUpKQorICAgICAgICAgICAgICAgIHJldHVybiBu
dWxscHRyOworCisgICAgICAgICAgICBhdXRvIGJ1ZmZlciA9IEdpZ2FjYWdlOjp0cnlNYWxsb2Mo
R2lnYWNhZ2U6OlByaW1pdGl2ZSwgYnVmZmVyU2l6ZSk7CisgICAgICAgICAgICBpZiAoIWJ1ZmZl
cikKKyAgICAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgICAgIGlmICghZGVj
b2Rlci5kZWNvZGVGaXhlZExlbmd0aERhdGEoc3RhdGljX2Nhc3Q8dWludDhfdCo+KGJ1ZmZlciks
IGJ1ZmZlclNpemUsIDEpKSB7CisgICAgICAgICAgICAgICAgR2lnYWNhZ2U6OmZyZWUoR2lnYWNh
Z2U6OlByaW1pdGl2ZSwgYnVmZmVyKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsK
KyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGFycmF5QnVmZmVyQ29udGVudHNBcnJheS0+YXBw
ZW5kKHsgYnVmZmVyLCBidWZmZXJTaXplLCBBcnJheUJ1ZmZlcjo6cHJpbWl0aXZlR2lnYWNhZ2VE
ZXN0cnVjdG9yKCkgfSk7CisgICAgICAgIH0KKyAgICB9CiAKLSAgICB1aW50NjRfdCBhcnJheUxl
bmd0aDsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGFycmF5TGVuZ3RoKSkKKyNpZiBFTkFCTEUo
V0VCX1JUQykKKyAgICB1aW50NjRfdCBkZXRhY2hlZFJUQ0RhdGFDaGFubmVsc1NpemU7CisgICAg
aWYgKCFkZWNvZGVyLmRlY29kZShkZXRhY2hlZFJUQ0RhdGFDaGFubmVsc1NpemUpKQogICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKLSAgICBBU1NFUlQoYXJyYXlMZW5ndGgpOwotCi0gICAgYXV0byBh
cnJheUJ1ZmZlckNvbnRlbnRzQXJyYXkgPSBtYWtlVW5pcXVlPEFycmF5QnVmZmVyQ29udGVudHNB
cnJheT4oKTsKLSAgICB3aGlsZSAoYXJyYXlMZW5ndGgtLSkgewotICAgICAgICB1bnNpZ25lZCBi
dWZmZXJTaXplOwotICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGJ1ZmZlclNpemUpKQotICAg
ICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgICAgIGlmICghZGVjb2Rlci50ZW1wbGF0ZSBi
dWZmZXJJc0xhcmdlRW5vdWdoVG9Db250YWluPHVpbnQ4X3Q+KGJ1ZmZlclNpemUpKQotICAgICAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICAgICAgYXV0byBidWZmZXIgPSBHaWdhY2FnZTo6
dHJ5TWFsbG9jKEdpZ2FjYWdlOjpQcmltaXRpdmUsIGJ1ZmZlclNpemUpOwotICAgICAgICBpZiAo
IWJ1ZmZlcikKLSAgICAgICAgICAgIHJldHVybiBudWxscHRyOwotICAgICAgICBpZiAoIWRlY29k
ZXIuZGVjb2RlRml4ZWRMZW5ndGhEYXRhKHN0YXRpY19jYXN0PHVpbnQ4X3QqPihidWZmZXIpLCBi
dWZmZXJTaXplLCAxKSkgewotICAgICAgICAgICAgR2lnYWNhZ2U6OmZyZWUoR2lnYWNhZ2U6OlBy
aW1pdGl2ZSwgYnVmZmVyKTsKKyAgICBWZWN0b3I8c3RkOjp1bmlxdWVfcHRyPERldGFjaGVkUlRD
RGF0YUNoYW5uZWw+PiBkZXRhY2hlZFJUQ0RhdGFDaGFubmVsczsKKyAgICB3aGlsZSAoZGV0YWNo
ZWRSVENEYXRhQ2hhbm5lbHNTaXplLS0pIHsKKyAgICAgICAgYXV0byBkZXRhY2hlZFJUQ0RhdGFD
aGFubmVsID0gRGV0YWNoZWRSVENEYXRhQ2hhbm5lbDo6ZGVjb2RlKGRlY29kZXIpOworICAgICAg
ICBpZiAoIWRldGFjaGVkUlRDRGF0YUNoYW5uZWwpCiAgICAgICAgICAgICByZXR1cm4gbnVsbHB0
cjsKLSAgICAgICAgfQotICAgICAgICBhcnJheUJ1ZmZlckNvbnRlbnRzQXJyYXktPmFwcGVuZCh7
IGJ1ZmZlciwgYnVmZmVyU2l6ZSwgQXJyYXlCdWZmZXI6OnByaW1pdGl2ZUdpZ2FjYWdlRGVzdHJ1
Y3RvcigpIH0pOworICAgICAgICBkZXRhY2hlZFJUQ0RhdGFDaGFubmVscy5hcHBlbmQoV1RGTW92
ZShkZXRhY2hlZFJUQ0RhdGFDaGFubmVsKSk7CiAgICAgfQorI2VuZGlmCiAKLSAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBTZXJpYWxpemVkU2NyaXB0VmFsdWUoV1RGTW92ZShkYXRhKSwgV1RGTW92
ZShhcnJheUJ1ZmZlckNvbnRlbnRzQXJyYXkpKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
U2VyaWFsaXplZFNjcmlwdFZhbHVlKFdURk1vdmUoZGF0YSksIFdURk1vdmUoYXJyYXlCdWZmZXJD
b250ZW50c0FycmF5KQorI2lmIEVOQUJMRShXRUJfUlRDKQorICAgICAgICAsIFdURk1vdmUoZGV0
YWNoZWRSVENEYXRhQ2hhbm5lbHMpCisjZW5kaWYKKyAgICAgICAgKSk7CiB9CiAKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5jcHAKaW5kZXggZDU2M2U2OGFmZDVjYTAzMDZiNTZhMmM5OTA3MWFlZDVlY2Q3
NzBmMS4uODhjZDUyMWU3Y2ZlMDZiYTgyNWFmY2Y4OTQ0NzY0YzJkN2M5OGEwYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuY3BwCkBAIC0zNDkxLDcgKzM0OTEsMTYgQEAgU29ja2V0UHJvdmlkZXIqIERv
Y3VtZW50Ojpzb2NrZXRQcm92aWRlcigpCiB7CiAgICAgcmV0dXJuIG1fc29ja2V0UHJvdmlkZXIu
Z2V0KCk7CiB9Ci0gICAgCisKK1JlZlB0cjxSVENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXJDb25u
ZWN0aW9uPiBEb2N1bWVudDo6Y3JlYXRlUlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVyQ29ubmVj
dGlvbigpCit7CisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBhdXRvKiBwYWdlID0g
dGhpcy0+cGFnZSgpOworICAgIGlmICghcGFnZSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7Cisg
ICAgcmV0dXJuIHBhZ2UtPmxpYldlYlJUQ1Byb3ZpZGVyKCkuY3JlYXRlUlRDRGF0YUNoYW5uZWxS
ZW1vdGVIYW5kbGVyQ29ubmVjdGlvbigpOworfQorCiBib29sIERvY3VtZW50OjpjYW5OYXZpZ2F0
ZShGcmFtZSogdGFyZ2V0RnJhbWUsIGNvbnN0IFVSTCYgZGVzdGluYXRpb25VUkwpCiB7CiAgICAg
aWYgKCFtX2ZyYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCAyZDgyN2QwODgyN2Y4NzhjOTVm
MTc3MzkzYzRhMjgzNjMyMGYxYjMxLi40MmJlYTg4OGVhMTkyYWRkZjRjOGM3N2YwYzBjNjlmYmUx
NDZhMjUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtNzA1LDYgKzcwNSw3IEBAIHB1YmxpYzoK
ICAgICBJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Qcm94eSogaWRiQ29ubmVjdGlvblByb3h5KCkg
ZmluYWw7CiAjZW5kaWYKICAgICBTb2NrZXRQcm92aWRlciogc29ja2V0UHJvdmlkZXIoKSBmaW5h
bDsKKyAgICBSZWZQdHI8UlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVyQ29ubmVjdGlvbj4gY3Jl
YXRlUlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVyQ29ubmVjdGlvbigpIGZpbmFsOwogCiAgICAg
Ym9vbCBjYW5OYXZpZ2F0ZShGcmFtZSogdGFyZ2V0RnJhbWUsIGNvbnN0IFVSTCYgZGVzdGluYXRp
b25VUkwgPSBVUkwoKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRF
eGVjdXRpb25Db250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dC5oCmluZGV4IDJhOTIzMDcxMjBhMDc3OTE2YmUwYmJkM2Y4OTBmM2Y0MmJkZGU1NjQuLjhi
YTIzMjk3YmIxOWFmOTA3YjExYjBkYmQyY2E0ZDkwZGU2NWFkMDEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaApAQCAtMjksNiArMjksOCBAQAogCiAjaW5j
bHVkZSAiQWN0aXZlRE9NT2JqZWN0LmgiCiAjaW5jbHVkZSAiRE9NVGltZXIuaCIKKyNpbmNsdWRl
ICJSVENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXJDb25uZWN0aW9uLmgiCisjaW5jbHVkZSAiU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIuaCIKICNpbmNsdWRlICJTZWN1cml0eUNvbnRl
eHQuaCIKICNpbmNsdWRlICJTZXJ2aWNlV29ya2VyVHlwZXMuaCIKICNpbmNsdWRlICJTZXR0aW5n
cy5oIgpAQCAtODAsOSArODIsNiBAQCBuYW1lc3BhY2UgSURCQ2xpZW50IHsKIGNsYXNzIElEQkNv
bm5lY3Rpb25Qcm94eTsKIH0KIAotZW51bSBTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmll
clR5cGUgeyB9OwotdXNpbmcgU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIgPSBPYmpl
Y3RJZGVudGlmaWVyPFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyVHlwZT47Ci0KIGNs
YXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQgOiBwdWJsaWMgU2VjdXJpdHlDb250ZXh0LCBwdWJs
aWMgQ2FuTWFrZVdlYWtQdHI8U2NyaXB0RXhlY3V0aW9uQ29udGV4dD4gewogcHVibGljOgogICAg
IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKQEAgLTExNSw2ICsxMTQsOCBAQCBwdWJsaWM6CiAj
ZW5kaWYKICAgICB2aXJ0dWFsIFNvY2tldFByb3ZpZGVyKiBzb2NrZXRQcm92aWRlcigpID0gMDsK
IAorICAgIHZpcnR1YWwgUmVmUHRyPFJUQ0RhdGFDaGFubmVsUmVtb3RlSGFuZGxlckNvbm5lY3Rp
b24+IGNyZWF0ZVJUQ0RhdGFDaGFubmVsUmVtb3RlSGFuZGxlckNvbm5lY3Rpb24oKSB7IHJldHVy
biBudWxscHRyOyB9CisKICAgICB2aXJ0dWFsIFN0cmluZyByZXNvdXJjZVJlcXVlc3RJZGVudGlm
aWVyKCkgY29uc3QgeyByZXR1cm4gU3RyaW5nKCk7IH07CiAKICAgICBib29sIGNhbkluY2x1ZGVF
cnJvckRldGFpbHMoQ2FjaGVkU2NyaXB0KiwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2NyaXB0RXhlY3V0aW9uQ29udGV4dElk
ZW50aWZpZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NjcmlwdEV4ZWN1dGlvbkNvbnRl
eHRJZGVudGlmaWVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2Q0ZmM3MzIzOWJjMGMyYTk0YzQ4YzA2MzcyODA2
ZDUzZmUzZjkxNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Nj
cmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyLmgKQEAgLTAsMCArMSwzNSBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3RmL09iamVjdElkZW50aWZpZXIuaD4K
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitlbnVtIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVu
dGlmaWVyVHlwZSB7IH07Cit1c2luZyBTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciA9
IE9iamVjdElkZW50aWZpZXI8U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXJUeXBlPjsK
KworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRD
RGF0YUNoYW5uZWxIYW5kbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9SVENEYXRhQ2hhbm5lbEhhbmRsZXIuaAppbmRleCAxYzAzNDdkZjYwYTllMjY4NDliYTRkODZi
MGQ4NmUwNDJkM2E3ODhjLi4xZTk1MTQxNjAwMzM2NGVkYWJhMDRlYmNiNWY3YmFmZTc0YjFlN2Qy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENEYXRh
Q2hhbm5lbEhhbmRsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9SVENEYXRhQ2hhbm5lbEhhbmRsZXIuaApAQCAtMjgsNyArMjgsNyBAQAogI2lmIEVOQUJMRShX
RUJfUlRDKQogCiAjaW5jbHVkZSAiUlRDUHJpb3JpdHlUeXBlLmgiCi0jaW5jbHVkZSAiU2NyaXB0
RXhlY3V0aW9uQ29udGV4dC5oIgorI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVu
dGlmaWVyLmgiCiAjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQv
V1RGU3RyaW5nLmg+CiAKQEAgLTQ0LDYgKzQ0LDkgQEAgc3RydWN0IFJUQ0RhdGFDaGFubmVsSW5p
dCB7CiAgICAgUlRDUHJpb3JpdHlUeXBlIHByaW9yaXR5IHsgUlRDUHJpb3JpdHlUeXBlOjpMb3cg
fTsKIAogICAgIFJUQ0RhdGFDaGFubmVsSW5pdCBpc29sYXRlZENvcHkoKSBjb25zdDsKKworICAg
IHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKKyAg
ICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgT3B0aW9uYWw8UlRDRGF0YUNoYW5uZWxJ
bml0PiBkZWNvZGUoRGVjb2RlciYpOwogfTsKIAogaW5saW5lIFJUQ0RhdGFDaGFubmVsSW5pdCBS
VENEYXRhQ2hhbm5lbEluaXQ6Omlzb2xhdGVkQ29weSgpIGNvbnN0CkBAIC01Myw2ICs1Niw1MCBA
QCBpbmxpbmUgUlRDRGF0YUNoYW5uZWxJbml0IFJUQ0RhdGFDaGFubmVsSW5pdDo6aXNvbGF0ZWRD
b3B5KCkgY29uc3QKICAgICByZXR1cm4gY29weTsKIH0KIAordGVtcGxhdGU8Y2xhc3MgRW5jb2Rl
cj4gdm9pZCBSVENEYXRhQ2hhbm5lbEluaXQ6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25z
dAoreworICAgIGVuY29kZXIgPDwgb3JkZXJlZCA8PCBtYXhQYWNrZXRMaWZlVGltZSA8PCBtYXhS
ZXRyYW5zbWl0cyA8PCBwcm90b2NvbCA8PCBuZWdvdGlhdGVkIDw8IGlkIDw8IHByaW9yaXR5Owor
fQorCit0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBPcHRpb25hbDxSVENEYXRhQ2hhbm5lbEluaXQ+
IFJUQ0RhdGFDaGFubmVsSW5pdDo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCit7CisgICAgT3B0
aW9uYWw8Ym9vbD4gb3JkZXJlZDsKKyAgICBkZWNvZGVyID4+IG9yZGVyZWQ7CisgICAgaWYgKCFv
cmRlcmVkKQorICAgICAgICByZXR1cm4geyB9OworCisgICAgT3B0aW9uYWw8dW5zaWduZWQgc2hv
cnQ+IG1heFBhY2tldExpZmVUaW1lOworICAgIGRlY29kZXIgPj4gbWF4UGFja2V0TGlmZVRpbWU7
CisgICAgaWYgKCFtYXhQYWNrZXRMaWZlVGltZSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKworICAg
IE9wdGlvbmFsPHVuc2lnbmVkIHNob3J0PiBtYXhSZXRyYW5zbWl0czsKKyAgICBkZWNvZGVyID4+
IG1heFJldHJhbnNtaXRzOworICAgIGlmICghbWF4UmV0cmFuc21pdHMpCisgICAgICAgIHJldHVy
biB7IH07CisKKyAgICBTdHJpbmcgcHJvdG9jb2w7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShw
cm90b2NvbCkpCisgICAgICAgIHJldHVybiB7IH07CisKKyAgICBPcHRpb25hbDxib29sPiBuZWdv
dGlhdGVkOworICAgIGRlY29kZXIgPj4gbmVnb3RpYXRlZDsKKyAgICBpZiAoIW5lZ290aWF0ZWQp
CisgICAgICAgIHJldHVybiB7IH07CisKKyAgICBPcHRpb25hbDx1bnNpZ25lZCBzaG9ydD4gaWQ7
CisgICAgZGVjb2RlciA+PiBpZDsKKyAgICBpZiAoIWlkKQorICAgICAgICByZXR1cm4geyB9Owor
CisgICAgT3B0aW9uYWw8UlRDUHJpb3JpdHlUeXBlPiBwcmlvcml0eTsKKyAgICBkZWNvZGVyID4+
IHByaW9yaXR5OworICAgIGlmICghcHJpb3JpdHkpCisgICAgICAgIHJldHVybiB7IH07CisKKyAg
ICByZXR1cm4gUlRDRGF0YUNoYW5uZWxJbml0IHsgKm9yZGVyZWQsICptYXhQYWNrZXRMaWZlVGlt
ZSwgKm1heFJldHJhbnNtaXRzLCBXVEZNb3ZlKHByb3RvY29sKSwgKm5lZ290aWF0ZWQsICppZCwg
KnByaW9yaXR5IH07Cit9CisKIGNsYXNzIFJUQ0RhdGFDaGFubmVsSGFuZGxlckNsaWVudDsKIAog
Y2xhc3MgUlRDRGF0YUNoYW5uZWxIYW5kbGVyIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsSWRlbnRpZmllci5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDRGF0YUNoYW5uZWxJZGVudGlmaWVyLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZTM0MDJlYmFhZjMzNjQyNDdhNDMxYWFlZWJlYzk0NThlZDVkMGY3OQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ0Rh
dGFDaGFubmVsSWRlbnRpZmllci5oCkBAIC0wLDAgKzEsNjMgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
CisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KKyAqIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3By
YWdtYSBvbmNlCisKKyNpbmNsdWRlICJQcm9jZXNzSWRlbnRpZmllci5oIgorI2luY2x1ZGUgPHd0
Zi9PYmplY3RJZGVudGlmaWVyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworZW51bSBSVENE
YXRhQ2hhbm5lbExvY2FsSWRlbnRpZmllclR5cGUgeyB9OwordXNpbmcgUlRDRGF0YUNoYW5uZWxM
b2NhbElkZW50aWZpZXIgPSBPYmplY3RJZGVudGlmaWVyPFJUQ0RhdGFDaGFubmVsTG9jYWxJZGVu
dGlmaWVyVHlwZT47CitzdHJ1Y3QgUlRDRGF0YUNoYW5uZWxJZGVudGlmaWVyIHsKKyAgICBQcm9j
ZXNzSWRlbnRpZmllciBwcm9jZXNzSWRlbnRpZmllcjsKKyAgICBSVENEYXRhQ2hhbm5lbExvY2Fs
SWRlbnRpZmllciBjaGFubmVsSWRlbnRpZmllcjsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29k
ZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNv
ZGVyPiBzdGF0aWMgT3B0aW9uYWw8UlRDRGF0YUNoYW5uZWxJZGVudGlmaWVyPiBkZWNvZGUoRGVj
b2RlciYpOworfTsKKwordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK2lubGluZSB2b2lkIFJUQ0Rh
dGFDaGFubmVsSWRlbnRpZmllcjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7Cisg
ICAgZW5jb2RlciA8PCBwcm9jZXNzSWRlbnRpZmllciA8PCBjaGFubmVsSWRlbnRpZmllcjsKK30K
KwordGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK2lubGluZSBPcHRpb25hbDxSVENEYXRhQ2hhbm5l
bElkZW50aWZpZXI+IFJUQ0RhdGFDaGFubmVsSWRlbnRpZmllcjo6ZGVjb2RlKERlY29kZXImIGRl
Y29kZXIpCit7CisgICAgT3B0aW9uYWw8UHJvY2Vzc0lkZW50aWZpZXI+IHByb2Nlc3NJZGVudGlm
aWVyOworICAgIGRlY29kZXIgPj4gcHJvY2Vzc0lkZW50aWZpZXI7CisgICAgaWYgKCFwcm9jZXNz
SWRlbnRpZmllcikKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIE9wdGlvbmFs
PFJUQ0RhdGFDaGFubmVsTG9jYWxJZGVudGlmaWVyPiBjaGFubmVsSWRlbnRpZmllcjsKKyAgICBk
ZWNvZGVyID4+IGNoYW5uZWxJZGVudGlmaWVyOworICAgIGlmICghY2hhbm5lbElkZW50aWZpZXIp
CisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisgICAgcmV0dXJuIFJUQ0RhdGFDaGFubmVs
SWRlbnRpZmllciB7ICpwcm9jZXNzSWRlbnRpZmllciwgKmNoYW5uZWxJZGVudGlmaWVyIH07Cit9
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsUmVtb3RlSGFuZGxlckNvbm5lY3Rpb24u
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsUmVt
b3RlSGFuZGxlckNvbm5lY3Rpb24uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNDY5MjEzNTk2M2Q2ZTZiNjUyNWEz
NDk5YTM4OTRhNGNkNzE4NDE2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vUlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVyQ29ubmVjdGlvbi5o
CkBAIC0wLDAgKzEsNDUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBB
TkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KKyAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUworICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRl
ICJSVENEYXRhQ2hhbm5lbElkZW50aWZpZXIuaCIKKyNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25D
b250ZXh0SWRlbnRpZmllci5oIgorI2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5o
PgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK2NsYXNzIFJUQ0RhdGFDaGFubmVsUmVtb3RlSGFuZGxlcjsKKworY2xhc3MgUlRDRGF0YUNo
YW5uZWxSZW1vdGVIYW5kbGVyQ29ubmVjdGlvbiA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRl
ZDxSVENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXJDb25uZWN0aW9uLCBXVEY6OkRlc3RydWN0aW9u
VGhyZWFkOjpNYWluPiB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+UlRDRGF0YUNoYW5uZWxSZW1v
dGVIYW5kbGVyQ29ubmVjdGlvbigpID0gZGVmYXVsdDsKKworICAgIHZpcnR1YWwgdm9pZCBjb25u
ZWN0VG9Tb3VyY2UoUlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVyJiwgU2NyaXB0RXhlY3V0aW9u
Q29udGV4dElkZW50aWZpZXIsIFJUQ0RhdGFDaGFubmVsSWRlbnRpZmllciwgUlRDRGF0YUNoYW5u
ZWxJZGVudGlmaWVyKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNlbmREYXRhKFJUQ0RhdGFDaGFu
bmVsSWRlbnRpZmllciwgYm9vbCBpc1JhdywgY29uc3QgdW5zaWduZWQgY2hhciosIHNpemVfdCkg
PSAwOworICAgIHZpcnR1YWwgdm9pZCBjbG9zZShSVENEYXRhQ2hhbm5lbElkZW50aWZpZXIpID0g
MDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsUmVtb3RlU291cmNlQ29ubmVj
dGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDRGF0YUNoYW5u
ZWxSZW1vdGVTb3VyY2VDb25uZWN0aW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDEyNDdmNjg0Zjc2MDkwYTZk
MmJlMjUwYTU1ODg2NGNjZjA0MjE1NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsUmVtb3RlU291cmNlQ29ubmVjdGlv
bi5oCkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KKyAqIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUworICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBF
TkFCTEUoV0VCX1JUQykKKworI2luY2x1ZGUgIlJUQ0RhdGFDaGFubmVsSWRlbnRpZmllci5oIgor
I2luY2x1ZGUgIlJUQ0RhdGFDaGFubmVsU3RhdGUuaCIKKyNpbmNsdWRlIDx3dGYvVGhyZWFkU2Fm
ZVJlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitjbGFzcyBSVENEYXRhQ2hhbm5lbFJlbW90ZVNvdXJjZUNvbm5lY3Rp
b24gOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8UlRDRGF0YUNoYW5uZWxSZW1vdGVTb3Vy
Y2VDb25uZWN0aW9uLCBXVEY6OkRlc3RydWN0aW9uVGhyZWFkOjpNYWluPiB7CitwdWJsaWM6Cisg
ICAgdmlydHVhbCB+UlRDRGF0YUNoYW5uZWxSZW1vdGVTb3VyY2VDb25uZWN0aW9uKCkgPSBkZWZh
dWx0OworCisgICAgdmlydHVhbCB2b2lkIGRpZENoYW5nZVJlYWR5U3RhdGUoUlRDRGF0YUNoYW5u
ZWxJZGVudGlmaWVyLCBSVENEYXRhQ2hhbm5lbFN0YXRlKSA9IDA7CisgICAgdmlydHVhbCB2b2lk
IGRpZFJlY2VpdmVTdHJpbmdEYXRhKFJUQ0RhdGFDaGFubmVsSWRlbnRpZmllciwgY29uc3QgU3Ry
aW5nJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlUmF3RGF0YShSVENEYXRhQ2hh
bm5lbElkZW50aWZpZXIsIGNvbnN0IGNoYXIqLCBzaXplX3QpID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgZGlkRGV0ZWN0RXJyb3IoUlRDRGF0YUNoYW5uZWxJZGVudGlmaWVyKSA9IDA7CisgICAgdmly
dHVhbCB2b2lkIGJ1ZmZlcmVkQW1vdW50SXNEZWNyZWFzaW5nKFJUQ0RhdGFDaGFubmVsSWRlbnRp
Zmllciwgc2l6ZV90KSA9IDA7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRp
ZiAvLyBFTkFCTEUoV0VCX1JUQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsU3RhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsU3RhdGUuaAppbmRleCAyZTk5NjA2N2Q0ZmJm
MjBlNWE0M2I0MmRlNTM5MjQ2MWJkNzM4NDVlLi5iNjlmZTg4MGQ0M2ZhYzNmMWRjMDAzMTUwOWY5
NWRkZTc3M2M0YzJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9SVENEYXRhQ2hhbm5lbFN0YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vUlRDRGF0YUNoYW5uZWxTdGF0ZS5oCkBAIC0yNyw5ICsyNywxMSBAQAogCiAj
aWYgRU5BQkxFKFdFQl9SVEMpCiAKKyNpbmNsdWRlIDx3dGYvRW51bVRyYWl0cy5oPgorCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKLWVudW0gY2xhc3MgUlRDRGF0YUNoYW5uZWxTdGF0ZSB7CitlbnVt
IGNsYXNzIFJUQ0RhdGFDaGFubmVsU3RhdGUgOiB1aW50OF90IHsKICAgICBDb25uZWN0aW5nLAog
ICAgIE9wZW4sCiAgICAgQ2xvc2luZywKQEAgLTM4LDQgKzQwLDE5IEBAIGVudW0gY2xhc3MgUlRD
RGF0YUNoYW5uZWxTdGF0ZSB7CiAKIH07IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKKworbmFtZXNw
YWNlIFdURiB7CisKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6UlRDRGF0
YUNoYW5uZWxTdGF0ZT4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgICAg
IFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsU3RhdGUsCisgICAgICAgIFdlYkNvcmU6OlJUQ0RhdGFD
aGFubmVsU3RhdGU6OkNvbm5lY3RpbmcsCisgICAgICAgIFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVs
U3RhdGU6Ok9wZW4sCisgICAgICAgIFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsU3RhdGU6OkNsb3Np
bmcsCisgICAgICAgIFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsU3RhdGU6OkNsb3NlZAorICAgID47
Cit9OworCit9CisKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vUlRDUHJpb3JpdHlUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9SVENQcmlvcml0eVR5cGUuaAppbmRleCA0NWVjM2U5NTVmMzZlZjQ1ZGQ0ZDhj
ZjU1NjczZjNkMmE3YmIwYTRjLi5hMzEzYmQ4OGNjZWYxYWY5ODM2NjhiYWQyOTQxOTZkOWNiOWI1
NDQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENQ
cmlvcml0eVR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9S
VENQcmlvcml0eVR5cGUuaApAQCAtMjcsMTAgKzI3LDI2IEBACiAKICNpZiBFTkFCTEUoV0VCX1JU
QykKIAorI2luY2x1ZGUgPHd0Zi9FbnVtVHJhaXRzLmg+CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogZW51bSBjbGFzcyBSVENQcmlvcml0eVR5cGUgeyBWZXJ5TG93LCBMb3csIE1lZGl1bSwgSGln
aCB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKK25hbWVzcGFjZSBXVEYgeworCit0ZW1w
bGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OlJUQ1ByaW9yaXR5VHlwZT4geworICAg
IHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgICAgIFdlYkNvcmU6OlJUQ1ByaW9yaXR5
VHlwZSwKKyAgICAgICAgV2ViQ29yZTo6UlRDUHJpb3JpdHlUeXBlOjpWZXJ5TG93LAorICAgICAg
ICBXZWJDb3JlOjpSVENQcmlvcml0eVR5cGU6OkxvdywKKyAgICAgICAgV2ViQ29yZTo6UlRDUHJp
b3JpdHlUeXBlOjpNZWRpdW0sCisgICAgICAgIFdlYkNvcmU6OlJUQ1ByaW9yaXR5VHlwZTo6SGln
aAorICAgID47Cit9OworCit9CisKICNlbmRpZiAvLyBFTkFCTEUoV0VCX1JUQykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJS
VENQcm92aWRlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2Vi
cnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmgKaW5kZXggY2EwMDkyMWRjNDYxZThlYmJlYmFmYzIxZGM1
N2I3ZDczYmJmYzM2Ni4uMGQwZDU1ODA3NmQ3MmI2Mjg0YzhmMjAxYjIzYWQ0NzI1MzRhNTcyNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRj
L0xpYldlYlJUQ1Byb3ZpZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmgKQEAgLTI3LDYgKzI3LDcgQEAKIAog
I2luY2x1ZGUgIkRvY3VtZW50SWRlbnRpZmllci5oIgogI2luY2x1ZGUgIkxpYldlYlJUQ01hY3Jv
cy5oIgorI2luY2x1ZGUgIlJUQ0RhdGFDaGFubmVsUmVtb3RlSGFuZGxlckNvbm5lY3Rpb24uaCIK
ICNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KICNpbmNsdWRlIDx3dGYvRXhwZWN0
ZWQuaD4KICNpbmNsdWRlIDx3dGYvVW5pcXVlUmVmLmg+CkBAIC05MSw2ICs5Miw4IEBAIHB1Ymxp
YzoKICAgICAgICAgY2FsbGJhY2sobWFrZVVuZXhwZWN0ZWQoTUROU1JlZ2lzdGVyRXJyb3I6Ok5v
dEltcGxlbWVudGVkKSk7CiAgICAgfQogCisgICAgdmlydHVhbCBSZWZQdHI8UlRDRGF0YUNoYW5u
ZWxSZW1vdGVIYW5kbGVyQ29ubmVjdGlvbj4gY3JlYXRlUlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5k
bGVyQ29ubmVjdGlvbigpIHsgcmV0dXJuIG51bGxwdHI7IH0KKwogI2lmIFVTRShMSUJXRUJSVEMp
CiAgICAgdmlydHVhbCBydGM6OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpQZWVyQ29ubmVjdGlvbklu
dGVyZmFjZT4gY3JlYXRlUGVlckNvbm5lY3Rpb24od2VicnRjOjpQZWVyQ29ubmVjdGlvbk9ic2Vy
dmVyJiwgcnRjOjpQYWNrZXRTb2NrZXRGYWN0b3J5Kiwgd2VicnRjOjpQZWVyQ29ubmVjdGlvbklu
dGVyZmFjZTo6UlRDQ29uZmlndXJhdGlvbiYmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L1dvcmtlckdsb2JhbFNjb3BlLmNwcAppbmRleCA5Nzk5YWFlYThhYzE1ODJiNGVjN2JmNjk2MjJm
ZDRmZDhjYjY0ZmJhLi43NGI0NTI2ZmQ0OWRkZDJjNjNhM2U0NjZiNjEzOTM1MDYxYjcyOWExIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmNwcApAQCAtMTYx
LDYgKzE2MSwxNyBAQCBTb2NrZXRQcm92aWRlciogV29ya2VyR2xvYmFsU2NvcGU6OnNvY2tldFBy
b3ZpZGVyKCkKICAgICByZXR1cm4gbV9zb2NrZXRQcm92aWRlci5nZXQoKTsKIH0KIAorUmVmUHRy
PFJUQ0RhdGFDaGFubmVsUmVtb3RlSGFuZGxlckNvbm5lY3Rpb24+IFdvcmtlckdsb2JhbFNjb3Bl
OjpjcmVhdGVSVENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXJDb25uZWN0aW9uKCkKK3sKKyAgICBS
ZWZQdHI8UlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVyQ29ubmVjdGlvbj4gY29ubmVjdGlvbjsK
KyAgICBjYWxsT25NYWluVGhyZWFkQW5kV2FpdChbd29ya2VyVGhyZWFkID0gbWFrZVJlZih0aHJl
YWQoKSksICZjb25uZWN0aW9uXSgpIG11dGFibGUgeworICAgICAgICBjb25uZWN0aW9uID0gd29y
a2VyVGhyZWFkLT53b3JrZXJMb2FkZXJQcm94eSgpLmNyZWF0ZVJUQ0RhdGFDaGFubmVsUmVtb3Rl
SGFuZGxlckNvbm5lY3Rpb24oKTsKKyAgICB9KTsKKyAgICBBU1NFUlQoY29ubmVjdGlvbik7CisK
KyAgICByZXR1cm4gY29ubmVjdGlvbjsKK30KKwogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNF
KQogCiBJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Qcm94eSogV29ya2VyR2xvYmFsU2NvcGU6Omlk
YkNvbm5lY3Rpb25Qcm94eSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dv
cmtlckdsb2JhbFNjb3BlLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNj
b3BlLmgKaW5kZXggNzQ3OTVmNWMwZjlhMmEzNWQwMDkzMDEyYWQxOGY1N2UzMTdmODI3MS4uMTI3
YTI5NGU5NmYzYjJiMzljODM1OTk3YmYwNWRjNTI5YWE1NzkxOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuaApAQCAtMTQ2LDYgKzE0Niw3IEBAIHByaXZhdGU6
CiAgICAgRXZlbnRUYXJnZXQqIGVycm9yRXZlbnRUYXJnZXQoKSBmaW5hbDsKICAgICBTdHJpbmcg
cmVzb3VyY2VSZXF1ZXN0SWRlbnRpZmllcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1faWRlbnRp
ZmllcjsgfQogICAgIFNvY2tldFByb3ZpZGVyKiBzb2NrZXRQcm92aWRlcigpIGZpbmFsOworICAg
IFJlZlB0cjxSVENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXJDb25uZWN0aW9uPiBjcmVhdGVSVENE
YXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXJDb25uZWN0aW9uKCkgZmluYWw7CiAKICAgICBib29sIHNo
b3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSgpIGNvbnN0IGZpbmFsIHsg
cmV0dXJuIG1fc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5OyB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTG9hZGVyUHJveHkuaCBi
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTG9hZGVyUHJveHkuaAppbmRleCBlZTY0Njlk
NWQ2MTRlM2FkODI3YTIyNTMzY2RjMGY0YTQ5MjJhNTE5Li5lN2EzMGZjOThiOWVlNTE1ODEyMjZi
OTU2YzhiYTQ1NGMxMTczMmE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dv
cmtlckxvYWRlclByb3h5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJMb2Fk
ZXJQcm94eS5oCkBAIC01MCw2ICs1MCw4IEBAIHB1YmxpYzoKICAgICAvLyBDcmVhdGVzIGEgY2Fj
aGUgc3RvcmFnZSBjb25uZWN0aW9uIHRvIGJlIHVzZWQgb24gdGhlIG1haW4gdGhyZWFkLiBNZXRo
b2QgbXVzdCBiZSBjYWxsZWQgb24gdGhlIG1haW4gdGhyZWFkLgogICAgIHZpcnR1YWwgUmVmUHRy
PENhY2hlU3RvcmFnZUNvbm5lY3Rpb24+IGNyZWF0ZUNhY2hlU3RvcmFnZUNvbm5lY3Rpb24oKSA9
IDA7CiAKKyAgICB2aXJ0dWFsIFJlZlB0cjxSVENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXJDb25u
ZWN0aW9uPiBjcmVhdGVSVENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXJDb25uZWN0aW9uKCkgPSAw
OworCiAgICAgLy8gUG9zdHMgYSB0YXNrIHRvIHRoZSB0aHJlYWQgd2hpY2ggcnVucyB0aGUgbG9h
ZGluZyBjb2RlIChub3JtYWxseSwgdGhlIG1haW4gdGhyZWFkKS4KICAgICB2aXJ0dWFsIHZvaWQg
cG9zdFRhc2tUb0xvYWRlcihTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpUYXNrJiYpID0gMDsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcAppbmRl
eCA5NDE0NWQ1ZDQzY2RlYWE1NjVkMTJlZWIxYjg4NjQzYjBhZmY2ZjFhLi5iMTA3ZDY1NzE1ZGE4
ZDdmMzM4ZWNhZjAwYmY0ODEyZjM3NWY1ZTFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcApAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUg
IkVycm9yRXZlbnQuaCIKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCiAjaW5jbHVkZSAiRmV0Y2hS
ZXF1ZXN0Q3JlZGVudGlhbHMuaCIKKyNpbmNsdWRlICJMaWJXZWJSVENQcm92aWRlci5oIgogI2lu
Y2x1ZGUgIk1lc3NhZ2VFdmVudC5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJTY3Jp
cHRFeGVjdXRpb25Db250ZXh0LmgiCkBAIC0xNzUsNiArMTc2LDE1IEBAIFJlZlB0cjxDYWNoZVN0
b3JhZ2VDb25uZWN0aW9uPiBXb3JrZXJNZXNzYWdpbmdQcm94eTo6Y3JlYXRlQ2FjaGVTdG9yYWdl
Q29ubmVjdGlvCiAgICAgcmV0dXJuIGRvY3VtZW50LnBhZ2UoKS0+Y2FjaGVTdG9yYWdlUHJvdmlk
ZXIoKS5jcmVhdGVDYWNoZVN0b3JhZ2VDb25uZWN0aW9uKCk7CiB9CiAKK1JlZlB0cjxSVENEYXRh
Q2hhbm5lbFJlbW90ZUhhbmRsZXJDb25uZWN0aW9uPiBXb3JrZXJNZXNzYWdpbmdQcm94eTo6Y3Jl
YXRlUlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVyQ29ubmVjdGlvbigpCit7CisgICAgQVNTRVJU
KGlzTWFpblRocmVhZCgpKTsKKyAgICBhdXRvJiBkb2N1bWVudCA9IGRvd25jYXN0PERvY3VtZW50
PigqbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KTsKKyAgICBpZiAoIWRvY3VtZW50LnBhZ2UoKSkK
KyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgcmV0dXJuIGRvY3VtZW50LnBhZ2UoKS0+bGli
V2ViUlRDUHJvdmlkZXIoKS5jcmVhdGVSVENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXJDb25uZWN0
aW9uKCk7Cit9CisKIGJvb2wgV29ya2VyTWVzc2FnaW5nUHJveHk6OnBvc3RUYXNrRm9yTW9kZVRv
V29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6VGFzayYm
IHRhc2ssIGNvbnN0IFN0cmluZyYgbW9kZSkKIHsKICAgICBpZiAobV9hc2tlZFRvVGVybWluYXRl
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94
eS5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5oCmluZGV4
IGQ5ZTgxZTE1N2EwZjQ4NTJlNDliNTlkMjU2NmE4YTgwZjVmODE4YWUuLmJlOWY0NjBmMzhlMmQ1
NTYzMzVlNzZjOWY1Y2FjMDhmZTg5MjYxODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L1dvcmtlck1lc3NhZ2luZ1Byb3h5LmgKQEAgLTgxLDYgKzgxLDcgQEAgcHJpdmF0ZToKICAgICBi
b29sIGlzV29ya2VyTWVzc2FnaW5nUHJveHkoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9
CiAgICAgdm9pZCBwb3N0VGFza1RvTG9hZGVyKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlRhc2sm
JikgZmluYWw7CiAgICAgUmVmUHRyPENhY2hlU3RvcmFnZUNvbm5lY3Rpb24+IGNyZWF0ZUNhY2hl
U3RvcmFnZUNvbm5lY3Rpb24oKSBmaW5hbDsKKyAgICBSZWZQdHI8UlRDRGF0YUNoYW5uZWxSZW1v
dGVIYW5kbGVyQ29ubmVjdGlvbj4gY3JlYXRlUlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVyQ29u
bmVjdGlvbigpIGZpbmFsOwogCiAgICAgdm9pZCB3b3JrZXJUaHJlYWRDcmVhdGVkKERlZGljYXRl
ZFdvcmtlclRocmVhZCYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3Nl
cnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuY3BwIGIvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZFByb3h5LmNwcApp
bmRleCBkMmNhZDk2MTJmMjRjMTUwZGRlZDdhMWNkOThiMjg2Y2ZhODJjNDA5Li40NWRjYWYzZjcx
NDZmM2FhNmIxZGM0NDE5ZTA2ZGJmMmNjNDliNThiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJU
aHJlYWRQcm94eS5jcHAKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJGZXRjaExvYWRlci5o
IgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKKyNpbmNsdWRl
ICJMaWJXZWJSVENQcm92aWRlci5oIgogI2luY2x1ZGUgIkxvYWRlclN0cmF0ZWd5LmgiCiAjaW5j
bHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIk1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzLmgiCkBA
IC0xNjMsNiArMTY0LDEyIEBAIFJlZlB0cjxDYWNoZVN0b3JhZ2VDb25uZWN0aW9uPiBTZXJ2aWNl
V29ya2VyVGhyZWFkUHJveHk6OmNyZWF0ZUNhY2hlU3RvcmFnZUNvbm5lCiAgICAgcmV0dXJuIG1f
Y2FjaGVTdG9yYWdlQ29ubmVjdGlvbjsKIH0KIAorUmVmUHRyPFJUQ0RhdGFDaGFubmVsUmVtb3Rl
SGFuZGxlckNvbm5lY3Rpb24+IFNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eTo6Y3JlYXRlUlRDRGF0
YUNoYW5uZWxSZW1vdGVIYW5kbGVyQ29ubmVjdGlvbigpCit7CisgICAgQVNTRVJUKGlzTWFpblRo
cmVhZCgpKTsKKyAgICByZXR1cm4gbV9wYWdlLT5saWJXZWJSVENQcm92aWRlcigpLmNyZWF0ZVJU
Q0RhdGFDaGFubmVsUmVtb3RlSGFuZGxlckNvbm5lY3Rpb24oKTsKK30KKwogc3RkOjp1bmlxdWVf
cHRyPEZldGNoTG9hZGVyPiBTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHk6OmNyZWF0ZUJsb2JMb2Fk
ZXIoRmV0Y2hMb2FkZXJDbGllbnQmIGNsaWVudCwgY29uc3QgVVJMJiBibG9iVVJMKQogewogICAg
IGF1dG8gbG9hZGVyID0gbWFrZVVuaXF1ZTxGZXRjaExvYWRlcj4oY2xpZW50LCBudWxscHRyKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZp
Y2VXb3JrZXJUaHJlYWRQcm94eS5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2Nv
bnRleHQvU2VydmljZVdvcmtlclRocmVhZFByb3h5LmgKaW5kZXggYTFkNGQ5NTk1MzE0YWVmZDA0
MTBiYTFiYzA2ODUzYTM1ZDk2ZTk5My4uMzZkMGZmODg4YmZkMWFmYzZkZDY4ZWFjMzkyYWU3OTVm
YjE4Y2Q3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRl
eHQvU2VydmljZVdvcmtlclRocmVhZFByb3h5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZFByb3h5LmgKQEAgLTg4LDYgKzg4
LDcgQEAgcHJpdmF0ZToKICAgICBib29sIHBvc3RUYXNrRm9yTW9kZVRvV29ya2VyT3JXb3JrbGV0
R2xvYmFsU2NvcGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6VGFzayYmLCBjb25zdCBTdHJpbmcm
IG1vZGUpIGZpbmFsOwogICAgIHZvaWQgcG9zdFRhc2tUb0xvYWRlcihTY3JpcHRFeGVjdXRpb25D
b250ZXh0OjpUYXNrJiYpIGZpbmFsOwogICAgIFJlZlB0cjxDYWNoZVN0b3JhZ2VDb25uZWN0aW9u
PiBjcmVhdGVDYWNoZVN0b3JhZ2VDb25uZWN0aW9uKCkgZmluYWw7CisgICAgUmVmUHRyPFJUQ0Rh
dGFDaGFubmVsUmVtb3RlSGFuZGxlckNvbm5lY3Rpb24+IGNyZWF0ZVJUQ0RhdGFDaGFubmVsUmVt
b3RlSGFuZGxlckNvbm5lY3Rpb24oKSBmaW5hbDsKIAogICAgIC8vIFdvcmtlckRlYnVnZ2VyUHJv
eHkKICAgICB2b2lkIHBvc3RNZXNzYWdlVG9EZWJ1Z2dlcihjb25zdCBTdHJpbmcmKSBmaW5hbDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViS2l0
L0NNYWtlTGlzdHMudHh0CmluZGV4IDNlYTc5NDYwODQxMDcwNjViZTgyOGQ0ZGEyYTlkNmRhNjA3
ZTk5MjAuLmQ2Y2QwOGVhNDA0MTQ0MTU1MGRiMDU2NzUyMzE1Njc0ZTQzYTgwYmEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYktpdC9DTWFr
ZUxpc3RzLnR4dApAQCAtMTcxLDYgKzE3MSw3IEBAIHNldChXZWJLaXRfTUVTU0FHRVNfSU5fRklM
RVMKICAgICBOZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya01ETlNSZWdpc3RlcgogICAgIE5l
dHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDTW9uaXRvcgogICAgIE5ldHdvcmtQcm9jZXNz
L3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIKKyAgICBOZXR3b3JrUHJvY2Vzcy93ZWJydGMvUlRD
RGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyUHJveHkKIAogICAgIFBsdWdpblByb2Nlc3MvUGx1Z2lu
Q29udHJvbGxlclByb3h5CiAgICAgUGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9jZXNzCkBAIC0yNDUs
NiArMjQ2LDcgQEAgc2V0KFdlYktpdF9NRVNTQUdFU19JTl9GSUxFUwogICAgIFdlYlByb2Nlc3Mv
SW5zcGVjdG9yL1dlYkluc3BlY3RvclVJCiAKICAgICBXZWJQcm9jZXNzL05ldHdvcmsvd2VicnRj
L0xpYldlYlJUQ05ldHdvcmsKKyAgICBXZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL1JUQ0RhdGFD
aGFubmVsUmVtb3RlTWFuYWdlcgogICAgIFdlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvV2ViTURO
U1JlZ2lzdGVyCiAgICAgV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9XZWJSVENNb25pdG9yCiAg
ICAgV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9XZWJSVENSZXNvbHZlcgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dl
YktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CmluZGV4IGZiNjIxM2M0Y2MzNmYz
Mzg1MjhjMThiOTQ4ZjlhYzg4OTM4YjEyZGUuLjlmMjI5NzEwNzE2YjQxOTMwMGEyNDZkMGQzZmJi
ODBmY2VhODZiYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5w
dXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0Lnhj
ZmlsZWxpc3QKQEAgLTcwLDYgKzcwLDcgQEAgJChQUk9KRUNUX0RJUikvTmV0d29ya1Byb2Nlc3Mv
bWFjL2NvbS5hcHBsZS5XZWJLaXQuTmV0d29ya1Byb2Nlc3Muc2IuaW4KICQoUFJPSkVDVF9ESVIp
L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrTUROU1JlZ2lzdGVyLm1lc3NhZ2VzLmluCiAk
KFBST0pFQ1RfRElSKS9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ01vbml0b3IubWVz
c2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRD
UHJvdmlkZXIubWVzc2FnZXMuaW4KKyQoUFJPSkVDVF9ESVIpL05ldHdvcmtQcm9jZXNzL3dlYnJ0
Yy9SVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNU
X0RJUikvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Db250cm9sbGVyUHJveHkubWVzc2FnZXMuaW4KICQo
UFJPSkVDVF9ESVIpL1BsdWdpblByb2Nlc3MvUGx1Z2luUHJvY2Vzcy5tZXNzYWdlcy5pbgogJChQ
Uk9KRUNUX0RJUikvUGx1Z2luUHJvY2Vzcy9XZWJQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5p
bgpAQCAtMTY4LDYgKzE2OSw3IEBAICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvTmV0d29yay9X
ZWJSZXNvdXJjZUxvYWRlci5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9O
ZXR3b3JrL1dlYlNvY2tldENoYW5uZWwubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dlYlBy
b2Nlc3MvTmV0d29yay9XZWJTb2NrZXRTdHJlYW0ubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIp
L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDTmV0d29yay5tZXNzYWdlcy5pbgor
JChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9SVENEYXRhQ2hhbm5lbFJl
bW90ZU1hbmFnZXIubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvTmV0d29y
ay93ZWJydGMvV2ViTUROU1JlZ2lzdGVyLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9XZWJQ
cm9jZXNzL05ldHdvcmsvd2VicnRjL1dlYlJUQ01vbml0b3IubWVzc2FnZXMuaW4KICQoUFJPSkVD
VF9ESVIpL1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvV2ViUlRDUmVzb2x2ZXIubWVzc2FnZXMu
aW4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmls
ZWxpc3QgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0Cmlu
ZGV4IGYyNTViNzNjMmEwZjEwYzg2MmMxYzE4ZmU5NWE0ZjczZmNmNzE4MDEuLjgzOThjZmMwMTNk
M2NhZmY1N2M3Y2YxZDI4YWZhNDM4ZTM3ZmRmMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
RGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYktpdC9EZXJp
dmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdApAQCAtMTMzLDYgKzEzMywxMiBAQCAkKEJVSUxU
X1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzUHJveHlN
ZXNzYWdlc1JlcGxpZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dl
YktpdDIvUGx1Z2luUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9QbHVnaW5Qcm94eU1lc3NhZ2VzLmgKICQoQlVJTFRf
UFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1BsdWdpblByb3h5TWVzc2FnZXNS
ZXBsaWVzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JU
Q0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAKKyQoQlVJTFRfUFJP
RFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JUQ0RhdGFDaGFubmVsUmVtb3RlTWFu
YWdlck1lc3NhZ2VzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJL
aXQyL1JUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oCiskKEJVSUxU
X1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SVENEYXRhQ2hhbm5lbFJlbW90
ZU1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJLaXQyL1JUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlclByb3h5TWVz
c2FnZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUlRD
RGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyUHJveHlNZXNzYWdlc1JlcGxpZXMuaAogJChCVUlMVF9Q
Uk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQXVkaW9EZXN0aW5hdGlv
bk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZl
ZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlck1lc3NhZ2VzLmNw
cAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQXVk
aW9EZXN0aW5hdGlvbk1hbmFnZXJNZXNzYWdlcy5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UK
aW5kZXggYjZhMGMwNDNiYmI2ZDgzOGI2N2QwNzM1MTM4NjcxOWFhYmZiMDI5My4uNWZkNThkMjI0
YTdjN2Q5NGM3ODIyNGNhNTA1NjAxYTNiMmZlNzM2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMu
bWFrZQpAQCAtMTMyLDYgKzEzMiw3IEBAIE1FU1NBR0VfUkVDRUlWRVJTID0gXAogCU5ldHdvcmtQ
cm9jZXNzL3dlYnJ0Yy9OZXR3b3JrTUROU1JlZ2lzdGVyIFwKIAlOZXR3b3JrUHJvY2Vzcy93ZWJy
dGMvTmV0d29ya1JUQ1Byb3ZpZGVyIFwKIAlOZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JU
Q01vbml0b3IgXAorCU5ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9SVENEYXRhQ2hhbm5lbFJlbW90ZU1h
bmFnZXJQcm94eSBcCiAJTmV0d29ya1Byb2Nlc3MvQ29va2llcy9XZWJDb29raWVNYW5hZ2VyIFwK
IAlTaGFyZWQvUGx1Z2lucy9OUE9iamVjdE1lc3NhZ2VSZWNlaXZlciBcCiAJU2hhcmVkL0F1eGls
aWFyeVByb2Nlc3MgXApAQCAtMjAzLDggKzIwNCw5IEBAIE1FU1NBR0VfUkVDRUlWRVJTID0gXAog
CVdlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24gXAogCVdlYlByb2Nl
c3MvTmV0d29yay9XZWJTb2NrZXRTdHJlYW0gXAogCVdlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNv
dXJjZUxvYWRlciBcCi0JV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9XZWJSVENNb25pdG9yIFwK
IAlXZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ05ldHdvcmsgXAorCVdlYlByb2Nl
c3MvTmV0d29yay93ZWJydGMvUlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyIFwKKwlXZWJQcm9j
ZXNzL05ldHdvcmsvd2VicnRjL1dlYlJUQ01vbml0b3IgXAogCVdlYlByb2Nlc3MvTmV0d29yay93
ZWJydGMvV2ViTUROU1JlZ2lzdGVyIFwKIAlXZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL1dlYlJU
Q1Jlc29sdmVyIFwKIAlXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRldmljZU9yaWVudGF0
aW9uVXBkYXRlUHJvdmlkZXIgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAppbmRleCA0ZjU4
ODVlOGY3NGYzMjllYmQzZWViZGZlYWE5NjdmMmM3YTZmNGMyLi4yODQ2YzZmNGIzYmZhNjdhOTYz
NDE5M2M2MDY4Mzg0Y2MxYTcwZjg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcApAQCAt
NTIsNiArNTIsNyBAQAogI2luY2x1ZGUgIk5ldHdvcmtTb2NrZXRTdHJlYW1NZXNzYWdlcy5oIgog
I2luY2x1ZGUgIlBpbmdMb2FkLmgiCiAjaW5jbHVkZSAiUHJlY29ubmVjdFRhc2suaCIKKyNpbmNs
dWRlICJSVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXJQcm94eS5oIgogI2luY2x1ZGUgIlNlcnZp
Y2VXb3JrZXJGZXRjaFRhc2tNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENv
ZGVycy5oIgogI2luY2x1ZGUgIldlYkVycm9ycy5oIgpAQCAtMTQ3LDYgKzE0OCw5IEBAIE5ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjp+TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mo
KQogICAgIGlmIChtX3J0Y1Byb3ZpZGVyKQogICAgICAgICBtX3J0Y1Byb3ZpZGVyLT5jbG9zZSgp
OwogI2VuZGlmCisjaWYgRU5BQkxFKFdFQl9SVEMpCisgICAgdW5yZWdpc3RlclRvUlRDRGF0YUNo
YW5uZWxQcm94eSgpOworI2VuZGlmCiAKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCiAgICAg
dW5yZWdpc3RlclNXQ29ubmVjdGlvbigpOwpAQCAtMjc4LDYgKzI4MiwzNCBAQCB2b2lkIE5ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpjcmVhdGVSVENQcm92aWRlcihDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKCk+JgogICAgIGNhbGxiYWNrKCk7CiB9CiAKKyNpZiBFTkFCTEUoV0VCX1JUQykK
K3ZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNvbm5lY3RUb1JUQ0RhdGFDaGFu
bmVsUmVtb3RlU291cmNlKFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsSWRlbnRpZmllciBsb2NhbElk
ZW50aWZpZXIsIFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsSWRlbnRpZmllciByZW1vdGVJZGVudGlm
aWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPGJvb2w+KT4mJiBjYWxsYmFjaykK
K3sKKyAgICBhdXRvKiBjb25uZWN0aW9uVG9XZWJQcm9jZXNzID0gbV9uZXR3b3JrUHJvY2Vzcy0+
d2ViUHJvY2Vzc0Nvbm5lY3Rpb24ocmVtb3RlSWRlbnRpZmllci5wcm9jZXNzSWRlbnRpZmllcik7
CisgICAgaWYgKCFjb25uZWN0aW9uVG9XZWJQcm9jZXNzKSB7CisgICAgICAgIGNhbGxiYWNrKGZh
bHNlKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICByZWdpc3RlclRvUlRDRGF0YUNoYW5u
ZWxQcm94eSgpOworICAgIGNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MtPnJlZ2lzdGVyVG9SVENEYXRh
Q2hhbm5lbFByb3h5KCk7CisgICAgY29ubmVjdGlvblRvV2ViUHJvY2Vzcy0+Y29ubmVjdGlvbigp
LnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpD
b25uZWN0VG9SVENEYXRhQ2hhbm5lbFJlbW90ZVNvdXJjZSB7IHJlbW90ZUlkZW50aWZpZXIsIGxv
Y2FsSWRlbnRpZmllciB9LCBXVEZNb3ZlKGNhbGxiYWNrKSwgMCk7Cit9CisKK3ZvaWQgTmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnJlZ2lzdGVyVG9SVENEYXRhQ2hhbm5lbFByb3h5KCkK
K3sKKyAgICBpZiAobV9pc1JlZ2lzdGVyZWRUb1JUQ0RhdGFDaGFubmVsUHJveHkpCisgICAgICAg
IHJldHVybjsKKyAgICBtX2lzUmVnaXN0ZXJlZFRvUlRDRGF0YUNoYW5uZWxQcm94eSA9IHRydWU7
CisgICAgbV9uZXR3b3JrUHJvY2Vzcy0+cnRjRGF0YUNoYW5uZWxQcm94eSgpLnJlZ2lzdGVyQ29u
bmVjdGlvblRvV2ViUHJvY2VzcygqdGhpcyk7Cit9CisKK3ZvaWQgTmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3M6OnVucmVnaXN0ZXJUb1JUQ0RhdGFDaGFubmVsUHJveHkoKQoreworICAgIGlm
IChtX2lzUmVnaXN0ZXJlZFRvUlRDRGF0YUNoYW5uZWxQcm94eSkKKyAgICAgICAgbV9uZXR3b3Jr
UHJvY2Vzcy0+cnRjRGF0YUNoYW5uZWxQcm94eSgpLnVucmVnaXN0ZXJDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzKCp0aGlzKTsKK30KKyNlbmRpZgorCiBDYWNoZVN0b3JhZ2VFbmdpbmVDb25uZWN0aW9u
JiBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Y2FjaGVTdG9yYWdlQ29ubmVjdGlvbigp
CiB7CiAgICAgaWYgKCFtX2NhY2hlU3RvcmFnZUNvbm5lY3Rpb24pCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzLmgKaW5kZXggZGEwNmY3MzllZmE1ZDUzNDBlOWE2MTgyMzg1YmU1YjA2NzNlMjNhZC4uOWM1
MjlmOTJjYWUyYzczNDM0NzczNDNlNDUxMDg4MzdjMjY4M2EzMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MuaApAQCAtNDgsNiArNDgsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvTmV0d29ya1N0b3Jh
Z2VTZXNzaW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdlSWRlbnRpZmllci5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvUHJvY2Vzc0lkZW50aWZpZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1JUQ0Rh
dGFDaGFubmVsSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVnaXN0cmFibGVEb21h
aW4uaD4KICNpbmNsdWRlIDxXZWJDb3JlL1dlYlNvY2tldElkZW50aWZpZXIuaD4KICNpbmNsdWRl
IDx3dGYvT3B0aW9uU2V0Lmg+CkBAIC0yNTAsNiArMjUxLDkgQEAgcHJpdmF0ZToKICNlbmRpZgog
CiAgICAgdm9pZCBjcmVhdGVSVENQcm92aWRlcihDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYp
OworI2lmIEVOQUJMRShXRUJfUlRDKQorICAgIHZvaWQgY29ubmVjdFRvUlRDRGF0YUNoYW5uZWxS
ZW1vdGVTb3VyY2UoV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWxJZGVudGlmaWVyIHNvdXJjZSwgV2Vi
Q29yZTo6UlRDRGF0YUNoYW5uZWxJZGVudGlmaWVyIGhhbmRsZXIsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoT3B0aW9uYWw8Ym9vbD4pPiYmKTsKKyNlbmRpZgogCiAgICAgdm9pZCBjcmVhdGVOZXdN
ZXNzYWdlUG9ydENoYW5uZWwoY29uc3QgV2ViQ29yZTo6TWVzc2FnZVBvcnRJZGVudGlmaWVyJiBw
b3J0MSwgY29uc3QgV2ViQ29yZTo6TWVzc2FnZVBvcnRJZGVudGlmaWVyJiBwb3J0Mik7CiAgICAg
dm9pZCBlbnRhbmdsZUxvY2FsUG9ydEluVGhpc1Byb2Nlc3NUb1JlbW90ZShjb25zdCBXZWJDb3Jl
OjpNZXNzYWdlUG9ydElkZW50aWZpZXImIGxvY2FsLCBjb25zdCBXZWJDb3JlOjpNZXNzYWdlUG9y
dElkZW50aWZpZXImIHJlbW90ZSk7CkBAIC0yNzEsNiArMjc1LDggQEAgcHJpdmF0ZToKICNlbmRp
ZgogI2lmIEVOQUJMRShXRUJfUlRDKQogICAgIE5ldHdvcmtNRE5TUmVnaXN0ZXImIG1kbnNSZWdp
c3RlcigpIHsgcmV0dXJuIG1fbWRuc1JlZ2lzdGVyOyB9CisgICAgdm9pZCByZWdpc3RlclRvUlRD
RGF0YUNoYW5uZWxQcm94eSgpOworICAgIHZvaWQgdW5yZWdpc3RlclRvUlRDRGF0YUNoYW5uZWxQ
cm94eSgpOwogI2VuZGlmCiAKICAgICBDYWNoZVN0b3JhZ2VFbmdpbmVDb25uZWN0aW9uJiBjYWNo
ZVN0b3JhZ2VDb25uZWN0aW9uKCk7CkBAIC0zODUsNiArMzkxLDEwIEBAIHByaXZhdGU6CiAgICAg
c3RkOjp1bmlxdWVfcHRyPFdlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbj4gbV9zd0NvbnRl
eHRDb25uZWN0aW9uOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoV0VCX1JUQykKKyAgICBib29sIG1f
aXNSZWdpc3RlcmVkVG9SVENEYXRhQ2hhbm5lbFByb3h5IHsgZmFsc2UgfTsKKyNlbmRpZgorCiAj
aWYgRU5BQkxFKEFQUExFX1BBWV9SRU1PVEVfVUkpCiAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYlBh
eW1lbnRDb29yZGluYXRvclByb3h5PiBtX3BheW1lbnRDb29yZGluYXRvcjsKICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRv
V2ViUHJvY2Vzcy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KaW5kZXggZmY4ZDRhMTc5ZjFm
YWZkNjJiNWQzZmE2NGU5OWMyMDhhYThmYmY5YS4uOTQ4YmNjYTQzZGE4MTQzNWI3MWZlOGQ5Nzll
ODBkNzJlODJkN2JhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2Vz
LmluCkBAIC04Nyw2ICs4Nyw5IEBAIG1lc3NhZ2VzIC0+IE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzIExlZ2FjeVJlY2VpdmVyIHsKICNlbmRpZgogCiAgICAgQ3JlYXRlUlRDUHJvdmlkZXIo
KSAtPiAoKSBBc3luYworI2lmIEVOQUJMRShXRUJfUlRDKQorICAgIENvbm5lY3RUb1JUQ0RhdGFD
aGFubmVsUmVtb3RlU291cmNlKHN0cnVjdCBXZWJDb3JlOjpSVENEYXRhQ2hhbm5lbElkZW50aWZp
ZXIgc291cmNlLCBzdHJ1Y3QgV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWxJZGVudGlmaWVyIGhhbmRs
ZXIpIC0+IChPcHRpb25hbDxib29sPiByZXN1bHQpIEFzeW5jCisjZW5kaWYKIAogICAgIFVwZGF0
ZVF1b3RhQmFzZWRPblNwYWNlVXNhZ2VGb3JUZXN0aW5nKHN0cnVjdCBXZWJDb3JlOjpDbGllbnRP
cmlnaW4gb3JpZ2luKQogICAgIENyZWF0ZU5ld01lc3NhZ2VQb3J0Q2hhbm5lbChzdHJ1Y3QgV2Vi
Q29yZTo6TWVzc2FnZVBvcnRJZGVudGlmaWVyIHBvcnQxLCBzdHJ1Y3QgV2ViQ29yZTo6TWVzc2Fn
ZVBvcnRJZGVudGlmaWVyIHBvcnQyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtQcm9jZXNzLmNwcAppbmRleCA5M2Q1YTM3N2Y1ZmI2NDFhMDMwZmE2ZmM1ZmM5MzJk
NDFjNDRjOWE3Li4zYTBlN2Q2NGQ1NGRlZmQwNmRkYjkwYWI0NzA5ZGQ2YWYxMGY1YzI3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcApAQCAt
MjgyMiw0ICsyODIyLDE0IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmNsZWFyQXBwQm91bmROYXZp
Z2F0aW9uRGF0YShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIENvbXBsCiB9CiAjZW5kaWYKIAor
I2lmIEVOQUJMRShXRUJfUlRDKQorUlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyUHJveHkmIE5l
dHdvcmtQcm9jZXNzOjpydGNEYXRhQ2hhbm5lbFByb3h5KCkKK3sKKyAgICBBU1NFUlQoaXNNYWlu
UnVuTG9vcCgpKTsKKyAgICBpZiAoIW1fcnRjRGF0YUNoYW5uZWxQcm94eSkKKyAgICAgICAgbV9y
dGNEYXRhQ2hhbm5lbFByb3h5ID0gUlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyUHJveHk6OmNy
ZWF0ZSgpOworICAgIHJldHVybiAqbV9ydGNEYXRhQ2hhbm5lbFByb3h5OworfQorI2VuZGlmCisK
IH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrUHJvY2Vzcy5oCmluZGV4IDA3NDE3ODg5NTJkNTE5MzE0MWYyYzhiMzJkOTE5ZWU1M2Zl
NzZkNDcuLmY2M2Y2MmQ2ZTdhNTM2YjkxM2I0N2ZiMTI0NjUzYWQwMGMxODYxZDcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaAorKysgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKQEAgLTMyLDYgKzMy
LDcgQEAKICNpbmNsdWRlICJEb3dubG9hZE1hbmFnZXIuaCIKICNpbmNsdWRlICJMb2NhbFN0b3Jh
Z2VEYXRhYmFzZVRyYWNrZXIuaCIKICNpbmNsdWRlICJOZXR3b3JrQ29udGVudFJ1bGVMaXN0TWFu
YWdlci5oIgorI2luY2x1ZGUgIlJUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlclByb3h5LmgiCiAj
aW5jbHVkZSAiU2FuZGJveEV4dGVuc2lvbi5oIgogI2luY2x1ZGUgIldlYklEQlNlcnZlci5oIgog
I2luY2x1ZGUgIldlYlBhZ2VQcm94eUlkZW50aWZpZXIuaCIKQEAgLTM4MCw2ICszODEsMTAgQEAg
cHVibGljOgogICAgIHZvaWQgY2xlYXJBcHBCb3VuZE5hdmlnYXRpb25EYXRhKFBBTDo6U2Vzc2lv
bklELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUo
V0VCX1JUQykKKyAgICBSVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXJQcm94eSYgcnRjRGF0YUNo
YW5uZWxQcm94eSgpOworI2VuZGlmCisKIHByaXZhdGU6CiAgICAgdm9pZCBwbGF0Zm9ybUluaXRp
YWxpemVOZXR3b3JrUHJvY2Vzcyhjb25zdCBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVy
cyYpOwogCkBAIC01ODQsNiArNTg5LDEwIEBAIHByaXZhdGU6CiAgICAgSGFzaE1hcDxQQUw6OlNl
c3Npb25JRCwgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlNXU2VydmVyPj4gbV9zd1NlcnZlcnM7
CiAjZW5kaWYKICAgICAKKyNpZiBFTkFCTEUoV0VCX1JUQykKKyAgICBSZWZQdHI8UlRDRGF0YUNo
YW5uZWxSZW1vdGVNYW5hZ2VyUHJveHk+IG1fcnRjRGF0YUNoYW5uZWxQcm94eTsKKyNlbmRpZgor
CiAgICAgTG9jayBtX3Nlc3Npb25TdG9yYWdlUXVvdGFNYW5hZ2Vyc0xvY2s7CiAgICAgSGFzaE1h
cDxQQUw6OlNlc3Npb25JRCwgc3RkOjp1bmlxdWVfcHRyPFNlc3Npb25TdG9yYWdlUXVvdGFNYW5h
Z2VyPj4gbV9zZXNzaW9uU3RvcmFnZVF1b3RhTWFuYWdlcnM7CiAgICAgYm9vbCBtX3F1b3RhTG9n
Z2luZ0VuYWJsZWQgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy93ZWJydGMvUlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyUHJveHkuY3BwIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvUlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5h
Z2VyUHJveHkuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNlZWJjYTM1YTFlZWMyODFlMjBiNzVhMGJiZDMyODk4
Y2FmNDFlNTQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L3dlYnJ0Yy9SVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXJQcm94eS5jcHAKQEAgLTAsMCArMSw5
NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgorICog
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2Vy
UHJveHkuaCIKKworI2lmIEVOQUJMRShXRUJfUlRDKQorCisjaW5jbHVkZSAiTmV0d29ya0Nvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MuaCIKKyNpbmNsdWRlICJSVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFn
ZXJNZXNzYWdlcy5oIgorI2luY2x1ZGUgIlJUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlclByb3h5
TWVzc2FnZXMuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1JUQ0RhdGFDaGFubmVsUmVtb3Rl
TWFuYWdlclByb3h5OjpSVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXJQcm94eSgpCisgICAgOiBt
X3F1ZXVlKFdvcmtRdWV1ZTo6Y3JlYXRlKCJSVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXJQcm94
eSIpKQoreworfQorCit2b2lkIFJUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlclByb3h5OjpyZWdp
c3RlckNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mm
IGNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MpCit7CisgICAgbV9xdWV1ZS0+ZGlzcGF0Y2goW3RoaXMs
IHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgaWRlbnRpZmllciA9IGNvbm5lY3Rpb25U
b1dlYlByb2Nlc3Mud2ViUHJvY2Vzc0lkZW50aWZpZXIoKSwgY29ubmVjdGlvbiA9IG1ha2VSZWYo
Y29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jb25uZWN0aW9uKCkpXSgpIG11dGFibGUgeworICAgICAg
ICBBU1NFUlQoIW1fd2ViUHJvY2Vzc0Nvbm5lY3Rpb25zLmNvbnRhaW5zKGlkZW50aWZpZXIpKTsK
KyAgICAgICAgbV93ZWJQcm9jZXNzQ29ubmVjdGlvbnMuYWRkKGlkZW50aWZpZXIsIFdURk1vdmUo
Y29ubmVjdGlvbikpOworICAgIH0pOworICAgIGNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY29ubmVj
dGlvbigpLmFkZFdvcmtRdWV1ZU1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6UlRDRGF0YUNoYW5u
ZWxSZW1vdGVNYW5hZ2VyUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV9xdWV1ZSwgdGhp
cyk7Cit9CisKK3ZvaWQgUlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyUHJveHk6OnVucmVnaXN0
ZXJDb25uZWN0aW9uVG9XZWJQcm9jZXNzKE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBj
b25uZWN0aW9uVG9XZWJQcm9jZXNzKQoreworICAgIG1fcXVldWUtPmRpc3BhdGNoKFt0aGlzLCBw
cm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGlkZW50aWZpZXIgPSBjb25uZWN0aW9uVG9X
ZWJQcm9jZXNzLndlYlByb2Nlc3NJZGVudGlmaWVyKCldIHsKKyAgICAgICAgQVNTRVJUKG1fd2Vi
UHJvY2Vzc0Nvbm5lY3Rpb25zLmNvbnRhaW5zKGlkZW50aWZpZXIpKTsKKyAgICAgICAgbV93ZWJQ
cm9jZXNzQ29ubmVjdGlvbnMucmVtb3ZlKGlkZW50aWZpZXIpOworICAgIH0pOworICAgIGNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MuY29ubmVjdGlvbigpLnJlbW92ZVdvcmtRdWV1ZU1lc3NhZ2VSZWNl
aXZlcihNZXNzYWdlczo6UlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyUHJveHk6Om1lc3NhZ2VS
ZWNlaXZlck5hbWUoKSk7Cit9CisKK3ZvaWQgUlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyUHJv
eHk6OnNlbmREYXRhKFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsSWRlbnRpZmllciBpZGVudGlmaWVy
LCBib29sIGlzUmF3LCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIGRhdGEpCit7CisgICAgaWYg
KGF1dG8qIGNvbm5lY3Rpb24gPSBtX3dlYlByb2Nlc3NDb25uZWN0aW9ucy5nZXQoaWRlbnRpZmll
ci5wcm9jZXNzSWRlbnRpZmllcikpCisgICAgICAgIGNvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6
OlJUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlcjo6U2VuZERhdGEgeyBpZGVudGlmaWVyLCBpc1Jh
dywgZGF0YSB9LCAwKTsKK30KKwordm9pZCBSVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXJQcm94
eTo6Y2xvc2UoV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWxJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7
CisgICAgaWYgKGF1dG8qIGNvbm5lY3Rpb24gPSBtX3dlYlByb2Nlc3NDb25uZWN0aW9ucy5nZXQo
aWRlbnRpZmllci5wcm9jZXNzSWRlbnRpZmllcikpCisgICAgICAgIGNvbm5lY3Rpb24tPnNlbmQo
TWVzc2FnZXM6OlJUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlcjo6Q2xvc2UgeyBpZGVudGlmaWVy
IH0sIDApOworfQorCit2b2lkIFJUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlclByb3h5OjpjaGFu
Z2VSZWFkeVN0YXRlKFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsSWRlbnRpZmllciBpZGVudGlmaWVy
LCBXZWJDb3JlOjpSVENEYXRhQ2hhbm5lbFN0YXRlIHN0YXRlKQoreworICAgIGlmIChhdXRvKiBj
b25uZWN0aW9uID0gbV93ZWJQcm9jZXNzQ29ubmVjdGlvbnMuZ2V0KGlkZW50aWZpZXIucHJvY2Vz
c0lkZW50aWZpZXIpKQorICAgICAgICBjb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpSVENEYXRh
Q2hhbm5lbFJlbW90ZU1hbmFnZXI6OkNoYW5nZVJlYWR5U3RhdGUgeyBpZGVudGlmaWVyLCBzdGF0
ZSB9LCAwKTsKK30KKwordm9pZCBSVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXJQcm94eTo6cmVj
ZWl2ZURhdGEoV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWxJZGVudGlmaWVyIGlkZW50aWZpZXIsIGJv
b2wgaXNSYXcsIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgZGF0YSkKK3sKKyAgICBpZiAoYXV0
byogY29ubmVjdGlvbiA9IG1fd2ViUHJvY2Vzc0Nvbm5lY3Rpb25zLmdldChpZGVudGlmaWVyLnBy
b2Nlc3NJZGVudGlmaWVyKSkKKyAgICAgICAgY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6UlRD
RGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyOjpSZWNlaXZlRGF0YSB7IGlkZW50aWZpZXIsIGlzUmF3
LCBkYXRhIH0sIDApOworfQorCit2b2lkIFJUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlclByb3h5
OjpkZXRlY3RFcnJvcihXZWJDb3JlOjpSVENEYXRhQ2hhbm5lbElkZW50aWZpZXIgaWRlbnRpZmll
cikKK3sKKyAgICBpZiAoYXV0byogY29ubmVjdGlvbiA9IG1fd2ViUHJvY2Vzc0Nvbm5lY3Rpb25z
LmdldChpZGVudGlmaWVyLnByb2Nlc3NJZGVudGlmaWVyKSkKKyAgICAgICAgY29ubmVjdGlvbi0+
c2VuZChNZXNzYWdlczo6UlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyOjpEZXRlY3RFcnJvciB7
IGlkZW50aWZpZXIgfSwgMCk7Cit9CisKK3ZvaWQgUlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2Vy
UHJveHk6OmJ1ZmZlcmVkQW1vdW50SXNEZWNyZWFzaW5nKFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVs
SWRlbnRpZmllciBpZGVudGlmaWVyLCBzaXplX3QgYW1vdW50KQoreworICAgIGlmIChhdXRvKiBj
b25uZWN0aW9uID0gbV93ZWJQcm9jZXNzQ29ubmVjdGlvbnMuZ2V0KGlkZW50aWZpZXIucHJvY2Vz
c0lkZW50aWZpZXIpKQorICAgICAgICBjb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpSVENEYXRh
Q2hhbm5lbFJlbW90ZU1hbmFnZXI6OkJ1ZmZlcmVkQW1vdW50SXNEZWNyZWFzaW5nIHsgaWRlbnRp
ZmllciwgYW1vdW50IH0sIDApOworfQorCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvUlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2Vy
UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL1JUQ0RhdGFDaGFu
bmVsUmVtb3RlTWFuYWdlclByb3h5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmEyZDYxODMxNmEwMDljNDYwMDJj
N2Q4ODRhZWZmMzVlN2JkMDE1YgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3Mvd2VicnRjL1JUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlclByb3h5LmgKQEAg
LTAsMCArMSw2NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBB
TlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsK
KyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgorICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShX
RUJfUlRDKQorCisjaW5jbHVkZSAiQ29ubmVjdGlvbi5oIgorI2luY2x1ZGUgPFdlYkNvcmUvUlRD
RGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVyQ29ubmVjdGlvbi5oPgorI2luY2x1ZGUgPFdlYkNvcmUv
UlRDRGF0YUNoYW5uZWxSZW1vdGVTb3VyY2VDb25uZWN0aW9uLmg+CisjaW5jbHVkZSA8d3RmL1dv
cmtRdWV1ZS5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgTmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3M7CisKK2NsYXNzIFJUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlclByb3h5
IGZpbmFsIDogcHVibGljIElQQzo6Q29ubmVjdGlvbjo6V29ya1F1ZXVlTWVzc2FnZVJlY2VpdmVy
IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFJUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlclBy
b3h5PiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IFJUQ0RhdGFDaGFubmVsUmVtb3Rl
TWFuYWdlclByb3h5KTsgfQorCisgICAgdm9pZCByZWdpc3RlckNvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MoTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmKTsKKyAgICB2b2lkIHVucmVnaXN0ZXJD
b25uZWN0aW9uVG9XZWJQcm9jZXNzKE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzJik7CisK
K3ByaXZhdGU6CisgICAgUlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyUHJveHkoKTsKKworICAg
IC8vIElQQzo6Q29ubmVjdGlvbjo6V29ya1F1ZXVlTWVzc2FnZVJlY2VpdmVyCisgICAgdm9pZCBk
aWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBmaW5hbDsK
KworICAgIC8vIFRvIHNvdXJjZQorICAgIHZvaWQgc2VuZERhdGEoV2ViQ29yZTo6UlRDRGF0YUNo
YW5uZWxJZGVudGlmaWVyLCBib29sIGlzUmF3LCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmKTsK
KyAgICB2b2lkIGNsb3NlKFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsSWRlbnRpZmllcik7CisKKyAg
ICAvLyBUbyBoYW5kbGVyCisgICAgdm9pZCBjaGFuZ2VSZWFkeVN0YXRlKFdlYkNvcmU6OlJUQ0Rh
dGFDaGFubmVsSWRlbnRpZmllciwgV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWxTdGF0ZSk7CisgICAg
dm9pZCByZWNlaXZlRGF0YShXZWJDb3JlOjpSVENEYXRhQ2hhbm5lbElkZW50aWZpZXIsIGJvb2wg
aXNSYXcsIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYpOworICAgIHZvaWQgZGV0ZWN0RXJyb3Io
V2ViQ29yZTo6UlRDRGF0YUNoYW5uZWxJZGVudGlmaWVyKTsKKyAgICB2b2lkIGJ1ZmZlcmVkQW1v
dW50SXNEZWNyZWFzaW5nKFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsSWRlbnRpZmllciwgc2l6ZV90
IGFtb3VudCk7CisKKyAgICBSZWY8V29ya1F1ZXVlPiBtX3F1ZXVlOworICAgIEhhc2hNYXA8V2Vi
Q29yZTo6UHJvY2Vzc0lkZW50aWZpZXIsIFJlZjxJUEM6OkNvbm5lY3Rpb24+PiBtX3dlYlByb2Nl
c3NDb25uZWN0aW9uczsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8g
RU5BQkxFKFdFQl9SVEMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L3dlYnJ0Yy9SVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL1JUQ0RhdGFDaGFubmVsUmVtb3RlTWFu
YWdlclByb3h5Lm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJkNDk4OTE3OTU2YTQ5NmQ3MWU4ZTA4
NGE0ZDZlNWM1NzhkOGYzNGYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL3dlYnJ0Yy9SVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXJQcm94eS5tZXNzYWdl
cy5pbgpAQCAtMCwwICsxLDM3IEBACisjIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1l
dDoKKyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyMgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFIElNUExJRUQKKyMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorIyBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgorIyBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMCisjIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisjIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisj
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksCisjIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisKKyNpZiBFTkFCTEUoV0VCX1JUQykKKworbWVzc2FnZXMgLT4gUlRDRGF0YUNoYW5uZWxS
ZW1vdGVNYW5hZ2VyUHJveHkgTm90UmVmQ291bnRlZCB7CisgICAgLy8gVG8gc291cmNlCisgICAg
U2VuZERhdGEoc3RydWN0IFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsSWRlbnRpZmllciBzb3VyY2Us
IGJvb2wgaXNSYXcsIElQQzo6RGF0YVJlZmVyZW5jZSB0ZXh0KTsKKyAgICBDbG9zZShzdHJ1Y3Qg
V2ViQ29yZTo6UlRDRGF0YUNoYW5uZWxJZGVudGlmaWVyIHNvdXJjZSk7CisKKyAgICAvLyBUbyBo
YW5kbGVyCisgICAgQ2hhbmdlUmVhZHlTdGF0ZShzdHJ1Y3QgV2ViQ29yZTo6UlRDRGF0YUNoYW5u
ZWxJZGVudGlmaWVyIGhhbmRsZXIsIGVudW06dWludDhfdCBXZWJDb3JlOjpSVENEYXRhQ2hhbm5l
bFN0YXRlIHN0YXRlKTsKKyAgICBSZWNlaXZlRGF0YShzdHJ1Y3QgV2ViQ29yZTo6UlRDRGF0YUNo
YW5uZWxJZGVudGlmaWVyIGhhbmRsZXIsIGJvb2wgaXNSYXcsIElQQzo6RGF0YVJlZmVyZW5jZSBk
YXRhKTsKKyAgICBEZXRlY3RFcnJvcihzdHJ1Y3QgV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWxJZGVu
dGlmaWVyIGhhbmRsZXIpOworICAgIEJ1ZmZlcmVkQW1vdW50SXNEZWNyZWFzaW5nKHN0cnVjdCBX
ZWJDb3JlOjpSVENEYXRhQ2hhbm5lbElkZW50aWZpZXIgaGFuZGxlciwgc2l6ZV90IGFtb3VudCk7
Cit9CisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCX1JUQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CmluZGV4IDU5M2JhY2U0
NTc1MGNhMWFjY2FhNmQxNzdkNDU2OGZjZjc3MTM3OWYuLjdhZWMxNTgwNzVhYTk1NWU0NzUyNjBm
NGEyOGNhOTc5ZjUzNmI4NTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQK
KysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dApAQCAtMTMwLDYgKzEzMCw3IEBAIE5ldHdv
cmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZVN1YnJlc291cmNlc0VudHJ5LmNwcAogTmV0d29y
a1Byb2Nlc3MvY2FjaGUvUHJlZmV0Y2hDYWNoZS5jcHAKIAogTmV0d29ya1Byb2Nlc3Mvd2VicnRj
L05ldHdvcmtNRE5TUmVnaXN0ZXIuY3BwCitOZXR3b3JrUHJvY2Vzcy93ZWJydGMvUlRDRGF0YUNo
YW5uZWxSZW1vdGVNYW5hZ2VyUHJveHkuY3BwCiAKIC8vIFRPRE86IFdlIHNob3VsZCB1bmlmeSB0
aGVzZSBmaWxlcyBvbmNlIEdUSydzIFBsdWdpblByb2Nlc3MyIGlzIHJlbW92ZWQuCiBQbGF0Zm9y
bS9Mb2dnaW5nLmNwcCBAbm8tdW5pZnkKQEAgLTYzMCw2ICs2MzEsNyBAQCBXZWJQcm9jZXNzL05l
dHdvcmsvd2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmNwcAogV2ViUHJvY2Vzcy9OZXR3b3JrL3dl
YnJ0Yy9MaWJXZWJSVENSZXNvbHZlci5jcHAKIFdlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGli
V2ViUlRDU29ja2V0LmNwcAogV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2Nr
ZXRGYWN0b3J5LmNwcAorV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9SVENEYXRhQ2hhbm5lbFJl
bW90ZU1hbmFnZXIuY3BwCiBXZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL1dlYk1ETlNSZWdpc3Rl
ci5jcHAKIFdlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvV2ViUlRDTW9uaXRvci5jcHAKIFdlYlBy
b2Nlc3MvTmV0d29yay93ZWJydGMvV2ViUlRDUmVzb2x2ZXIuY3BwCkBAIC03MTgsNSArNzIwLDcg
QEAgV2ViUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VBcmVhTWFwLmNwcAogV2ViUHJvY2Vzcy9X
ZWJTdG9yYWdlL1N0b3JhZ2VOYW1lc3BhY2VJbXBsLmNwcAogV2ViUHJvY2Vzcy9XZWJTdG9yYWdl
L1dlYlN0b3JhZ2VOYW1lc3BhY2VQcm92aWRlci5jcHAKIAorUlRDRGF0YUNoYW5uZWxSZW1vdGVN
YW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcAorUlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyUHJv
eHlNZXNzYWdlUmVjZWl2ZXIuY3BwCiBSZW1vdGVHcmFwaGljc0NvbnRleHRHTE1lc3NhZ2VSZWNl
aXZlci5jcHAKIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3Bw
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRl
eCAyMDQzYjA2YjVhYzZkZTM3NDNhNWM3N2EyODJhMTQ1MmU1YzNlMjQwLi4yMzc5MTRmNDE3OWJh
ZWFkOTc5YzAwYTkwZjk0OGM0NTkwMGRkNzE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTM2NTAsNiArMzY1MCwxMCBAQAogCQk0MTBC
QTEzOTI1NzEzNUYyMDAyRTJGOEEgLyogTmV0d29ya1JUQ1NvY2tldENvY29hLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBwYXRoID0gTmV0d29ya1JUQ1NvY2tldENvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk0MTBCQTEzQTI1NzEzNUYyMDAyRTJGOEEgLyogTmV0d29ya1JUQ1NvY2tl
dENvY29hLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5ldHdvcmtSVENTb2NrZXRDb2NvYS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk0MTExNDM2MzIwRjY3N0IxMDAyNkY5MTIgLyogSW5qZWN0
VXNlclNjcmlwdEltbWVkaWF0ZWx5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEluamVjdFVzZXJTY3JpcHRJbW1lZGlhdGVseS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk0MTEyMjNCNzI2MDIxNTJCMDBCMEEwQjYgLyogUlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5h
Z2VyLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dDsgbmFtZSA9IFJUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlci5tZXNzYWdl
cy5pbjsgcGF0aCA9IE5ldHdvcmsvd2VicnRjL1JUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlci5t
ZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDExMjIzQkIyNjAyNEU4
MDAwQjBBMEI2IC8qIFJUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlclByb3h5LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFJUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlclByb3h5Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTQxMTIyM0JDMjYwMjRFODEwMEIwQTBCNiAvKiBSVENEYXRhQ2hhbm5l
bFJlbW90ZU1hbmFnZXJQcm94eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSVENEYXRhQ2hhbm5l
bFJlbW90ZU1hbmFnZXJQcm94eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQx
MTIyM0JEMjYwMjRFODEwMEIwQTBCNiAvKiBSVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXJQcm94
eS5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQ7IHBhdGggPSBSVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXJQcm94eS5tZXNz
YWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDExMjg2RUYyMUM4QTkwQzAw
M0E4NTUwIC8qIE1lZGlhVXRpbGl0aWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IE1lZGlhVXRpbGl0aWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMTI4
NkYwMjFDOEE5MEQwMDNBODU1MCAvKiBNZWRpYVV0aWxpdGllcy5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE1lZGlhVXRpbGl0aWVzLm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk0MTEyQjU0NzFGOUZEM0FCMDBFNjc4NzUgLyogTmV0d29ya1JUQ1Jl
c29sdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE5ldHdvcmtS
VENSZXNvbHZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zNzExLDYgKzM3
MTUsOCBAQAogCQk0MTY4NEM1MDI0NjQ1MEZEMDAxQ0U4RUQgLyogUmVtb3RlUmVhbHRpbWVWaWRl
b1NvdXJjZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVS
ZWFsdGltZVZpZGVvU291cmNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE2
ODRDNTEyNDY0NTBGRDAwMUNFOEVEIC8qIFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTZDRDc0NTIzRkIxNzhCMDA2NjFEOTkg
LyogTUROU1JlZ2lzdGVySWRlbnRpZmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5h
bWUgPSBNRE5TUmVnaXN0ZXJJZGVudGlmaWVyLmg7IHBhdGggPSBOZXR3b3JrL3dlYnJ0Yy9NRE5T
UmVnaXN0ZXJJZGVudGlmaWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxNkVE
QzA1MjYwMEY2QjAwMDA5MjY3NSAvKiBSVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXIuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBuYW1lID0gUlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyLmNwcDsgcGF0aCA9
IE5ldHdvcmsvd2VicnRjL1JUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlci5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxNkVEQzA2MjYwMEY2QjAwMDA5MjY3NSAvKiBSVENEYXRh
Q2hhbm5lbFJlbW90ZU1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gUlRDRGF0YUNoYW5uZWxSZW1v
dGVNYW5hZ2VyLmg7IHBhdGggPSBOZXR3b3JrL3dlYnJ0Yy9SVENEYXRhQ2hhbm5lbFJlbW90ZU1h
bmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE2RjgwODYyNDVCMzk3NDAw
QjY4RjAyIC8qIExpYldlYlJUQ05ldHdvcmsubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBu
YW1lID0gTGliV2ViUlRDTmV0d29yay5tZXNzYWdlcy5pbjsgcGF0aCA9IE5ldHdvcmsvd2VicnRj
L0xpYldlYlJUQ05ldHdvcmsubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTQxNkY4MDg5MjQ1QzdGRjUwMEI2OEYwMiAvKiBMaWJXZWJSVENOZXR3b3JrLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IExpYldlYlJUQ05ldHdvcmsuY3BwOyBw
YXRoID0gTmV0d29yay93ZWJydGMvTGliV2ViUlRDTmV0d29yay5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTQxNzIxOTg5MjNCNjEyODIwMEFFNTY4NiAvKiBMaWJXZWJSVENDb2Rl
Y3MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTGliV2ViUlRDQ29kZWNzLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC04MjQzLDYgKzgyNDksOSBAQAogCQkJCTQx
MTJCNTQ4MUY5RkQzQUMwMEU2Nzk4NiAvKiBOZXR3b3JrUlRDUmVzb2x2ZXJDb2NvYS5oICovLAog
CQkJCTQxMEJBMTNBMjU3MTM1RjIwMDJFMkY4QSAvKiBOZXR3b3JrUlRDU29ja2V0Q29jb2EuaCAq
LywKIAkJCQk0MTBCQTEzOTI1NzEzNUYyMDAyRTJGOEEgLyogTmV0d29ya1JUQ1NvY2tldENvY29h
Lm1tICovLAorCQkJCTQxMTIyM0JDMjYwMjRFODEwMEIwQTBCNiAvKiBSVENEYXRhQ2hhbm5lbFJl
bW90ZU1hbmFnZXJQcm94eS5jcHAgKi8sCisJCQkJNDExMjIzQkIyNjAyNEU4MDAwQjBBMEI2IC8q
IFJUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlclByb3h5LmggKi8sCisJCQkJNDExMjIzQkQyNjAy
NEU4MTAwQjBBMEI2IC8qIFJUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlclByb3h5Lm1lc3NhZ2Vz
LmluICovLAogCQkJKTsKIAkJCXBhdGggPSB3ZWJydGM7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91
cD4iOwpAQCAtODI2Myw2ICs4MjcyLDkgQEAKIAkJCQk0MTMwNzVBNTFERTg1RUU3MDAzOUVDNjkg
LyogTGliV2ViUlRDU29ja2V0RmFjdG9yeS5jcHAgKi8sCiAJCQkJNDEzMDc1QTYxREU4NUVFNzAw
MzlFQzY5IC8qIExpYldlYlJUQ1NvY2tldEZhY3RvcnkuaCAqLywKIAkJCQk0MTZDRDc0NTIzRkIx
NzhCMDA2NjFEOTkgLyogTUROU1JlZ2lzdGVySWRlbnRpZmllci5oICovLAorCQkJCTQxNkVEQzA1
MjYwMEY2QjAwMDA5MjY3NSAvKiBSVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXIuY3BwICovLAor
CQkJCTQxNkVEQzA2MjYwMEY2QjAwMDA5MjY3NSAvKiBSVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFn
ZXIuaCAqLywKKwkJCQk0MTEyMjNCNzI2MDIxNTJCMDBCMEEwQjYgLyogUlRDRGF0YUNoYW5uZWxS
ZW1vdGVNYW5hZ2VyLm1lc3NhZ2VzLmluICovLAogCQkJCTQxQjdFRDZFMjA2ODFEQ0YwMDg3RDg1
MyAvKiBXZWJNRE5TUmVnaXN0ZXIuY3BwICovLAogCQkJCTQxQjdFRDZDMjA2ODFEQ0UwMDg3RDg1
MyAvKiBXZWJNRE5TUmVnaXN0ZXIuaCAqLywKIAkJCQk0MUI3RUQ2RDIwNjgxRENGMDA4N0Q4NTMg
LyogV2ViTUROU1JlZ2lzdGVyLm1lc3NhZ2VzLmluICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5j
cHAKaW5kZXggYjU1NzhjYTg4NWRkMTdmZGFlM2NlMjJlOWRhMGE2MTUxOGNiNjdkMi4uMWUxOWU1
MjFmYjIzYzc0ZTQzNDc3MzNkMDIwMzVhYjBlYzAwMjJiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rp
b24uY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiRGF0YVJlZmVyZW5jZS5oIgogI2lu
Y2x1ZGUgIkxpYldlYlJUQ05ldHdvcmsuaCIKICNpbmNsdWRlICJOZXR3b3JrQ29ubmVjdGlvblRv
V2ViUHJvY2Vzc01lc3NhZ2VzLmgiCisjaW5jbHVkZSAiUlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5h
Z2VyLmgiCiAjaW5jbHVkZSAiU3RvcmFnZUFyZWFNYXAuaCIKICNpbmNsdWRlICJTdG9yYWdlQXJl
YU1hcE1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViQ2FjaGVTdG9yYWdlUHJvdmlkZXIuaCIKQEAg
LTMyMCw0ICszMjEsMTEgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OmJyb2FkY2Fz
dENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXMKICAgICB9CiB9CiAKKyNp
ZiBFTkFCTEUoV0VCX1JUQykKK3ZvaWQgTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpjb25uZWN0
VG9SVENEYXRhQ2hhbm5lbFJlbW90ZVNvdXJjZShXZWJDb3JlOjpSVENEYXRhQ2hhbm5lbElkZW50
aWZpZXIgbG9jYWxJZGVudGlmaWVyLCBXZWJDb3JlOjpSVENEYXRhQ2hhbm5lbElkZW50aWZpZXIg
cmVtb3RlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxib29sPik+
JiYgY2FsbGJhY2spCit7CisgICAgY2FsbGJhY2soUlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2Vy
OjpzaGFyZWRNYW5hZ2VyKCkuY29ubmVjdFRvUmVtb3RlU291cmNlKGxvY2FsSWRlbnRpZmllciwg
cmVtb3RlSWRlbnRpZmllcikpOworfQorI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nl
c3NDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3Jr
UHJvY2Vzc0Nvbm5lY3Rpb24uaAppbmRleCAwYWI3OTE1YjdmYWNlMzk1ZWRmYmEzN2QzOTkyZWVk
OTdmM2I4YjMwLi5jOTIwMTBhYTViNGIyNTQwYTc5OTExYmI1OWZlOGMzNTRjZWM5NzlkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nv
bm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3Jr
UHJvY2Vzc0Nvbm5lY3Rpb24uaApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIlNoYXJlYWJs
ZVJlc291cmNlLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQ29uc29sZVR5cGVzLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9NZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlci5oPgorI2luY2x1ZGUg
PFdlYkNvcmUvUlRDRGF0YUNoYW5uZWxJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9T
ZXJ2aWNlV29ya2VyVHlwZXMuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1
ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgpAQCAtMTA5LDYgKzExMCw5IEBAIHByaXZhdGU6CiAg
ICAgLy8gTWVzc2FnZSBoYW5kbGVycy4KICAgICB2b2lkIGRpZENhY2hlUmVzb3VyY2UoY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgU2hhcmVhYmxlUmVzb3VyY2U6OkhhbmRs
ZSYpOwogI2VuZGlmCisjaWYgRU5BQkxFKFNIQVJFQUJMRV9SRVNPVVJDRSkKKyAgICB2b2lkIGNv
bm5lY3RUb1JUQ0RhdGFDaGFubmVsUmVtb3RlU291cmNlKFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVs
SWRlbnRpZmllciBzb3VyY2UsIFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsSWRlbnRpZmllciBoYW5k
bGVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPGJvb2w+KT4mJik7CisjZW5kaWYK
IAogICAgIHZvaWQgYnJvYWRjYXN0Q29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZSwgTWVzc2Fn
ZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMu
aW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5l
Y3Rpb24ubWVzc2FnZXMuaW4KaW5kZXggNjRmODhlYzc0NjNjYjY4YTk4Y2NmYzYyODk5NzFjODUz
ZmQzOWYyNy4uZWEyYTg2NzNjYzIwOWE1ODRiNjRjMGY4ODVlZmE4NmViZDg1ZTI1MyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25u
ZWN0aW9uLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3Jr
L05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgpAQCAtMzcsNiArMzcsMTAgQEAg
bWVzc2FnZXMgLT4gTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uIExlZ2FjeVJlY2VpdmVyIHsKICAg
ICBBbGxDb29raWVzRGVsZXRlZCgpOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoV0VCX1JUQykKKyAg
ICBDb25uZWN0VG9SVENEYXRhQ2hhbm5lbFJlbW90ZVNvdXJjZShzdHJ1Y3QgV2ViQ29yZTo6UlRD
RGF0YUNoYW5uZWxJZGVudGlmaWVyIHNvdXJjZSwgc3RydWN0IFdlYkNvcmU6OlJUQ0RhdGFDaGFu
bmVsSWRlbnRpZmllciBoYW5kbGVyKSAtPiAoT3B0aW9uYWw8Ym9vbD4gcmVzdWx0KSBBc3luYwor
I2VuZGlmCisKICAgICBDaGVja1Byb2Nlc3NMb2NhbFBvcnRGb3JBY3Rpdml0eShzdHJ1Y3QgV2Vi
Q29yZTo6TWVzc2FnZVBvcnRJZGVudGlmaWVyIHBvcnQpIC0+IChXZWJDb3JlOjpNZXNzYWdlUG9y
dENoYW5uZWxQcm92aWRlcjo6SGFzQWN0aXZpdHkgaGFzQWN0aXZpdHkpIEFzeW5jCiAgICAgTWVz
c2FnZXNBdmFpbGFibGVGb3JQb3J0KHN0cnVjdCBXZWJDb3JlOjpNZXNzYWdlUG9ydElkZW50aWZp
ZXIgcG9ydCkKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsv
d2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9O
ZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5jcHAKaW5kZXggZTkyMDk5MmYwOGVkNmIz
MmU2N2RmZTdiZjc2ZWMzMTQ3ZjdjZjQ3Yy4uNzU0MGFmYTE0YzczMWZmZmRlMDNhOWZiNzc3NmQ1
MTNiNjg5NmEzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsv
d2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuY3BwCkBAIC0zMyw2ICszMyw3IEBA
CiAjZW5kaWYKIAogI2luY2x1ZGUgIkxpYldlYlJUQ05ldHdvcmsuaCIKKyNpbmNsdWRlICJSVENE
YXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXIuaCIKICNpbmNsdWRlICJXZWJQYWdlLmgiCiAjaW5jbHVk
ZSAiV2ViUHJvY2Vzcy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZS5oPgpAQCAtMTUyLDYgKzE1
MywxMSBAQCBzdGQ6OnVuaXF1ZV9wdHI8TGliV2ViUlRDUHJvdmlkZXI6OlN1c3BlbmRhYmxlU29j
a2V0RmFjdG9yeT4gTGliV2ViUlRDUHJvdmlkZXI6OgogICAgIHJldHVybiBtYWtlVW5pcXVlPFJU
Q1NvY2tldEZhY3Rvcnk+KFdURk1vdmUodXNlckFnZW50KSk7CiB9CiAKK1JlZlB0cjxSVENEYXRh
Q2hhbm5lbFJlbW90ZUhhbmRsZXJDb25uZWN0aW9uPiBMaWJXZWJSVENQcm92aWRlcjo6Y3JlYXRl
UlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVyQ29ubmVjdGlvbigpCit7CisgICAgcmV0dXJuICZS
VENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXI6OnNoYXJlZE1hbmFnZXIoKS5yZW1vdGVIYW5kbGVy
Q29ubmVjdGlvbigpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIFVT
RShMSUJXRUJSVEMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29y
ay93ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9O
ZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5oCmluZGV4IGZjN2M1NmU1MWNiODNmMzI0
ZWEzZWFkYWY0YWI4Yjc2MjdkYmU1OGYuLjdjZGRkMWM0MWU4YWNmMDhhZGE2N2U0MzBlNjNhYTI0
NGJmZjkyNWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dl
YnJ0Yy9MaWJXZWJSVENQcm92aWRlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9O
ZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5oCkBAIC02MCw2ICs2MCw3IEBAIHByaXZh
dGU6CiAgICAgdm9pZCByZWdpc3Rlck1ETlNOYW1lKFdlYkNvcmU6OkRvY3VtZW50SWRlbnRpZmll
ciwgY29uc3QgU3RyaW5nJiBpcEFkZHJlc3MsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoTUROU05h
bWVPckVycm9yJiYpPiYmKSBmaW5hbDsKICAgICB2b2lkIGRpc2FibGVOb25Mb2NhbGhvc3RDb25u
ZWN0aW9ucygpIGZpbmFsOwogICAgIHZvaWQgc3RhcnRlZE5ldHdvcmtUaHJlYWQoKSBmaW5hbDsK
KyAgICBSZWZQdHI8V2ViQ29yZTo6UlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVyQ29ubmVjdGlv
bj4gY3JlYXRlUlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVyQ29ubmVjdGlvbigpIGZpbmFsOwog
CiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBQTEFURk9STShDT0NPQSkgJiYgIVBMQVRGT1JN
KE1BQ0NBVEFMWVNUKQogICAgIFdlYlBhZ2UmIG1fd2ViUGFnZTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9SVENEYXRhQ2hhbm5lbFJlbW90ZU1h
bmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL1JUQ0Rh
dGFDaGFubmVsUmVtb3RlTWFuYWdlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjIxMDY1M2UzM2M2YjgzZTVj
YzA4NTc3MDc2MGY5NGYxM2U5MmI2MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9SVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXIuY3Bw
CkBAIC0wLDAgKzEsMjQ5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OCisgKiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAq
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSVENEYXRhQ2hhbm5l
bFJlbW90ZU1hbmFnZXIuaCIKKworI2lmIEVOQUJMRShXRUJfUlRDKQorCisjaW5jbHVkZSAiTmV0
d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNzYWdlcy5oIgorI2luY2x1ZGUgIlJUQ0RhdGFD
aGFubmVsUmVtb3RlTWFuYWdlck1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiUlRDRGF0YUNoYW5uZWxS
ZW1vdGVNYW5hZ2VyUHJveHlNZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKKyNp
bmNsdWRlIDxXZWJDb3JlL1JUQ0RhdGFDaGFubmVsLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TY3Jp
cHRFeGVjdXRpb25Db250ZXh0Lmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitSVENEYXRhQ2hh
bm5lbFJlbW90ZU1hbmFnZXImIFJUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlcjo6c2hhcmVkTWFu
YWdlcigpCit7CisgICAgc3RhdGljIFJUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlciogc2hhcmVk
TWFuYWdlciA9IG5ldyBSVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXI7CisgICAgcmV0dXJuICpz
aGFyZWRNYW5hZ2VyOworfQorCitSVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXI6OlJUQ0RhdGFD
aGFubmVsUmVtb3RlTWFuYWdlcigpCisgICAgOiBtX3F1ZXVlKFdvcmtRdWV1ZTo6Y3JlYXRlKCJS
VENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXIiKSkKK3sKKyAgICBzZXRDb25uZWN0aW9uKCZXZWJQ
cm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25u
ZWN0aW9uKCkpOworfQorCit2b2lkIFJUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlcjo6c2V0Q29u
bmVjdGlvbihJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24pCit7CisgICAgaWYgKG1fY29ubmVj
dGlvbiA9PSBjb25uZWN0aW9uKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAobV9jb25uZWN0
aW9uKQorICAgICAgICBtX2Nvbm5lY3Rpb24tPnJlbW92ZVdvcmtRdWV1ZU1lc3NhZ2VSZWNlaXZl
cihNZXNzYWdlczo6UlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyOjptZXNzYWdlUmVjZWl2ZXJO
YW1lKCkpOworCisgICAgbV9jb25uZWN0aW9uID0gY29ubmVjdGlvbjsKKworICAgIGlmIChtX2Nv
bm5lY3Rpb24pCisgICAgICAgIG1fY29ubmVjdGlvbi0+YWRkV29ya1F1ZXVlTWVzc2FnZVJlY2Vp
dmVyKE1lc3NhZ2VzOjpSVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXI6Om1lc3NhZ2VSZWNlaXZl
ck5hbWUoKSwgbV9xdWV1ZSwgdGhpcyk7Cit9CisKK2Jvb2wgUlRDRGF0YUNoYW5uZWxSZW1vdGVN
YW5hZ2VyOjpjb25uZWN0VG9SZW1vdGVTb3VyY2UoV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWxJZGVu
dGlmaWVyIGxvY2FsSWRlbnRpZmllciwgV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWxJZGVudGlmaWVy
IHJlbW90ZUlkZW50aWZpZXIpCit7CisgICAgQVNTRVJUKFByb2Nlc3M6OmlkZW50aWZpZXIoKSA9
PSBsb2NhbElkZW50aWZpZXIucHJvY2Vzc0lkZW50aWZpZXIpOworICAgIGlmIChQcm9jZXNzOjpp
ZGVudGlmaWVyKCkgIT0gbG9jYWxJZGVudGlmaWVyLnByb2Nlc3NJZGVudGlmaWVyKQorICAgICAg
ICByZXR1cm4gZmFsc2U7CisKKyAgICBhdXRvIGhhbmRsZXIgPSBXZWJDb3JlOjpSVENEYXRhQ2hh
bm5lbDo6aGFuZGxlckZyb21JZGVudGlmaWVyKGxvY2FsSWRlbnRpZmllci5jaGFubmVsSWRlbnRp
Zmllcik7CisgICAgaWYgKCFoYW5kbGVyKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBh
dXRvIGl0ZXJhdG9yID0gbV9zb3VyY2VzLmFkZChyZW1vdGVJZGVudGlmaWVyLmNoYW5uZWxJZGVu
dGlmaWVyLCBSVENEYXRhQ2hhbm5lbFJlbW90ZVNvdXJjZTo6Y3JlYXRlKHJlbW90ZUlkZW50aWZp
ZXIsIG1ha2VVbmlxdWVSZWZGcm9tTm9uTnVsbFVuaXF1ZVB0cihXVEZNb3ZlKGhhbmRsZXIpKSwg
cmVtb3RlU291cmNlQ29ubmVjdGlvbigpKSk7CisgICAgcmV0dXJuIGl0ZXJhdG9yLmlzTmV3RW50
cnk7Cit9CisKK1dlYkNvcmU6OlJUQ0RhdGFDaGFubmVsUmVtb3RlSGFuZGxlckNvbm5lY3Rpb24m
IFJUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlcjo6cmVtb3RlSGFuZGxlckNvbm5lY3Rpb24oKQor
eworICAgIGlmICghbV9yZW1vdGVIYW5kbGVyQ29ubmVjdGlvbikKKyAgICAgICAgbV9yZW1vdGVI
YW5kbGVyQ29ubmVjdGlvbiA9IFJlbW90ZUhhbmRsZXJDb25uZWN0aW9uOjpjcmVhdGUobV9xdWV1
ZS5jb3B5UmVmKCkpOworICAgIHJldHVybiAqbV9yZW1vdGVIYW5kbGVyQ29ubmVjdGlvbjsKK30K
KworV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWxSZW1vdGVTb3VyY2VDb25uZWN0aW9uJiBSVENEYXRh
Q2hhbm5lbFJlbW90ZU1hbmFnZXI6OnJlbW90ZVNvdXJjZUNvbm5lY3Rpb24oKQoreworICAgIGlm
ICghbV9yZW1vdGVTb3VyY2VDb25uZWN0aW9uKQorICAgICAgICBtX3JlbW90ZVNvdXJjZUNvbm5l
Y3Rpb24gPSBSZW1vdGVTb3VyY2VDb25uZWN0aW9uOjpjcmVhdGUoKTsKKyAgICByZXR1cm4gKm1f
cmVtb3RlU291cmNlQ29ubmVjdGlvbjsKK30KKwordm9pZCBSVENEYXRhQ2hhbm5lbFJlbW90ZU1h
bmFnZXI6OnBvc3RUYXNrVG9IYW5kbGVyKFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsSWRlbnRpZmll
ciBoYW5kbGVySWRlbnRpZmllciwgRnVuY3Rpb248dm9pZChXZWJDb3JlOjpSVENEYXRhQ2hhbm5l
bFJlbW90ZUhhbmRsZXImKT4mJiBmdW5jdGlvbikKK3sKKyAgICBBU1NFUlQoUHJvY2Vzczo6aWRl
bnRpZmllcigpID09IGhhbmRsZXJJZGVudGlmaWVyLnByb2Nlc3NJZGVudGlmaWVyKTsKKyAgICBp
ZiAoUHJvY2Vzczo6aWRlbnRpZmllcigpICE9IGhhbmRsZXJJZGVudGlmaWVyLnByb2Nlc3NJZGVu
dGlmaWVyKQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRvIGl0ZXJhdG9yID0gbV9oYW5kbGVy
cy5maW5kKGhhbmRsZXJJZGVudGlmaWVyLmNoYW5uZWxJZGVudGlmaWVyKTsKKyAgICBpZiAoaXRl
cmF0b3IgPT0gbV9oYW5kbGVycy5lbmQoKSkKKyAgICAgICAgcmV0dXJuOworICAgIGF1dG8mIHJl
bW90ZUhhbmRsZXIgPSBpdGVyYXRvci0+dmFsdWU7CisKKyAgICBXZWJDb3JlOjpTY3JpcHRFeGVj
dXRpb25Db250ZXh0Ojpwb3N0VGFza1RvKHJlbW90ZUhhbmRsZXIuY29udGV4dElkZW50aWZpZXIs
IFtoYW5kbGVyID0gcmVtb3RlSGFuZGxlci5oYW5kbGVyLCBmdW5jdGlvbiA9IFdURk1vdmUoZnVu
Y3Rpb24pXShhdXRvJikgbXV0YWJsZSB7CisgICAgICAgIGlmIChoYW5kbGVyKQorICAgICAgICAg
ICAgZnVuY3Rpb24oKmhhbmRsZXIpOworICAgIH0pOworfQorCitSVENEYXRhQ2hhbm5lbFJlbW90
ZVNvdXJjZSogUlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyOjpzb3VyY2VGcm9tSWRlbnRpZmll
cihXZWJDb3JlOjpSVENEYXRhQ2hhbm5lbElkZW50aWZpZXIgc291cmNlSWRlbnRpZmllcikKK3sK
KyAgICBBU1NFUlQoUHJvY2Vzczo6aWRlbnRpZmllcigpID09IHNvdXJjZUlkZW50aWZpZXIucHJv
Y2Vzc0lkZW50aWZpZXIpOworICAgIGlmIChQcm9jZXNzOjppZGVudGlmaWVyKCkgIT0gc291cmNl
SWRlbnRpZmllci5wcm9jZXNzSWRlbnRpZmllcikKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisK
KyAgICByZXR1cm4gbV9zb3VyY2VzLmdldChzb3VyY2VJZGVudGlmaWVyLmNoYW5uZWxJZGVudGlm
aWVyKTsKK30KKwordm9pZCBSVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXI6OnNlbmREYXRhKFdl
YkNvcmU6OlJUQ0RhdGFDaGFubmVsSWRlbnRpZmllciBzb3VyY2VJZGVudGlmaWVyLCBib29sIGlz
UmF3LCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIGRhdGEpCit7CisgICAgaWYgKGF1dG8qIHNv
dXJjZSA9IHNvdXJjZUZyb21JZGVudGlmaWVyKHNvdXJjZUlkZW50aWZpZXIpKSB7CisgICAgICAg
IGlmIChpc1JhdykKKyAgICAgICAgICAgIHNvdXJjZS0+c2VuZFJhd0RhdGEocmVpbnRlcnByZXRf
Y2FzdDxjb25zdCBjaGFyKj4oZGF0YS5kYXRhKCkpLCBkYXRhLnNpemUoKSk7CisgICAgICAgIGVs
c2UKKyAgICAgICAgICAgIHNvdXJjZS0+c2VuZFN0cmluZ0RhdGEoQ1N0cmluZyhyZWludGVycHJl
dF9jYXN0PGNvbnN0IGNoYXIqPihkYXRhLmRhdGEoKSksIGRhdGEuc2l6ZSgpKSk7CisgICAgfQor
fQorCit2b2lkIFJUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlcjo6Y2xvc2UoV2ViQ29yZTo6UlRD
RGF0YUNoYW5uZWxJZGVudGlmaWVyIHNvdXJjZUlkZW50aWZpZXIpCit7CisgICAgaWYgKGF1dG8q
IHNvdXJjZSA9IHNvdXJjZUZyb21JZGVudGlmaWVyKHNvdXJjZUlkZW50aWZpZXIpKQorICAgICAg
ICBzb3VyY2UtPmNsb3NlKCk7Cit9CisKK3ZvaWQgUlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2Vy
OjpjaGFuZ2VSZWFkeVN0YXRlKFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsSWRlbnRpZmllciBoYW5k
bGVySWRlbnRpZmllciwgV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWxTdGF0ZSBzdGF0ZSkKK3sKKyAg
ICBwb3N0VGFza1RvSGFuZGxlcihoYW5kbGVySWRlbnRpZmllciwgW3N0YXRlXShhdXRvJiBoYW5k
bGVyKSB7CisgICAgICAgIGhhbmRsZXIuZGlkQ2hhbmdlUmVhZHlTdGF0ZShzdGF0ZSk7CisgICAg
fSk7Cit9CisKK3ZvaWQgUlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyOjpyZWNlaXZlRGF0YShX
ZWJDb3JlOjpSVENEYXRhQ2hhbm5lbElkZW50aWZpZXIgaGFuZGxlcklkZW50aWZpZXIsIGJvb2wg
aXNSYXcsIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgZGF0YSkKK3sKKyAgICBWZWN0b3I8dW5z
aWduZWQgY2hhcj4gYnVmZmVyOworICAgIFN0cmluZyB0ZXh0OworICAgIGlmIChpc1JhdykKKyAg
ICAgICAgYnVmZmVyID0gZGF0YS52ZWN0b3IoKTsKKyAgICBlbHNlCisgICAgICAgIHRleHQgPSBT
dHJpbmc6OmZyb21VVEY4KGRhdGEuZGF0YSgpLCBkYXRhLnNpemUoKSk7CisKKyAgICBwb3N0VGFz
a1RvSGFuZGxlcihoYW5kbGVySWRlbnRpZmllciwgW2lzUmF3LCB0ZXh0ID0gV1RGTW92ZSh0ZXh0
KS5pc29sYXRlZENvcHkoKSwgYnVmZmVyID0gV1RGTW92ZShidWZmZXIpXShhdXRvJiBoYW5kbGVy
KSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKGlzUmF3KQorICAgICAgICAgICAgaGFuZGxlci5kaWRS
ZWNlaXZlUmF3RGF0YShyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPihidWZmZXIuZGF0YSgp
KSwgYnVmZmVyLnNpemUoKSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGhhbmRsZXIuZGlk
UmVjZWl2ZVN0cmluZ0RhdGEoV1RGTW92ZSh0ZXh0KSk7CisgICAgfSk7Cit9CisKK3ZvaWQgUlRD
RGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyOjpkZXRlY3RFcnJvcihXZWJDb3JlOjpSVENEYXRhQ2hh
bm5lbElkZW50aWZpZXIgaGFuZGxlcklkZW50aWZpZXIpCit7CisgICAgcG9zdFRhc2tUb0hhbmRs
ZXIoaGFuZGxlcklkZW50aWZpZXIsIFtdKGF1dG8mIGhhbmRsZXIpIHsKKyAgICAgICAgaGFuZGxl
ci5kaWREZXRlY3RFcnJvcigpOworICAgIH0pOworfQorCit2b2lkIFJUQ0RhdGFDaGFubmVsUmVt
b3RlTWFuYWdlcjo6YnVmZmVyZWRBbW91bnRJc0RlY3JlYXNpbmcoV2ViQ29yZTo6UlRDRGF0YUNo
YW5uZWxJZGVudGlmaWVyIGhhbmRsZXJJZGVudGlmaWVyLCBzaXplX3QgYW1vdW50KQoreworICAg
IHBvc3RUYXNrVG9IYW5kbGVyKGhhbmRsZXJJZGVudGlmaWVyLCBbYW1vdW50XShhdXRvJiBoYW5k
bGVyKSB7CisgICAgICAgIGhhbmRsZXIuYnVmZmVyZWRBbW91bnRJc0RlY3JlYXNpbmcoYW1vdW50
KTsKKyAgICB9KTsKK30KKworUmVmPFJUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlcjo6UmVtb3Rl
SGFuZGxlckNvbm5lY3Rpb24+IFJUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlcjo6UmVtb3RlSGFu
ZGxlckNvbm5lY3Rpb246OmNyZWF0ZShSZWY8V29ya1F1ZXVlPiYmIHF1ZXVlKQoreworICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IFJlbW90ZUhhbmRsZXJDb25uZWN0aW9uKFdURk1vdmUocXVldWUp
KSk7Cit9CisKK1JUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlcjo6UmVtb3RlSGFuZGxlckNvbm5l
Y3Rpb246OlJlbW90ZUhhbmRsZXJDb25uZWN0aW9uKFJlZjxXb3JrUXVldWU+JiYgcXVldWUpCisg
ICAgOiBtX2Nvbm5lY3Rpb24oV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlTmV0d29ya1By
b2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpKQorICAgICwgbV9xdWV1ZShXVEZNb3ZlKHF1
ZXVlKSkKK3sKK30KKwordm9pZCBSVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXI6OlJlbW90ZUhh
bmRsZXJDb25uZWN0aW9uOjpjb25uZWN0VG9Tb3VyY2UoV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWxS
ZW1vdGVIYW5kbGVyJiBoYW5kbGVyLCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRl
bnRpZmllciBjb250ZXh0SWRlbnRpZmllciwgV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWxJZGVudGlm
aWVyIGxvY2FsSWRlbnRpZmllciwgV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWxJZGVudGlmaWVyIHJl
bW90ZUlkZW50aWZpZXIpCit7CisgICAgbV9xdWV1ZS0+ZGlzcGF0Y2goW2hhbmRsZXIgPSBtYWtl
V2Vha1B0cihoYW5kbGVyKSwgY29udGV4dElkZW50aWZpZXIsIGxvY2FsSWRlbnRpZmllcl0oKSBt
dXRhYmxlIHsKKyAgICAgICAgUlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyOjpzaGFyZWRNYW5h
Z2VyKCkubV9oYW5kbGVycy5hZGQobG9jYWxJZGVudGlmaWVyLmNoYW5uZWxJZGVudGlmaWVyLCBS
ZW1vdGVIYW5kbGVyIHsgV1RGTW92ZShoYW5kbGVyKSwgY29udGV4dElkZW50aWZpZXIgfSk7Cisg
ICAgfSk7CisgICAgbV9jb25uZWN0aW9uLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5l
dHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpDb25uZWN0VG9SVENEYXRhQ2hhbm5lbFJlbW90
ZVNvdXJjZSB7IGxvY2FsSWRlbnRpZmllciwgcmVtb3RlSWRlbnRpZmllciB9LCBbbG9jYWxJZGVu
dGlmaWVyXShhdXRvJiYgcmVzdWx0KSB7CisgICAgICAgIFJUQ0RhdGFDaGFubmVsUmVtb3RlTWFu
YWdlcjo6c2hhcmVkTWFuYWdlcigpLnBvc3RUYXNrVG9IYW5kbGVyKGxvY2FsSWRlbnRpZmllciwg
W3Jlc3VsdF0oYXV0byYgaGFuZGxlcikgeworICAgICAgICAgICAgaWYgKCFyZXN1bHQgfHwgISpy
ZXN1bHQpIHsKKyAgICAgICAgICAgICAgICBoYW5kbGVyLmRpZERldGVjdEVycm9yKCk7CisgICAg
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaGFuZGxlci5y
ZWFkeVRvU2VuZCgpOworICAgICAgICB9KTsKKyAgICB9LCAwKTsKK30KKwordm9pZCBSVENEYXRh
Q2hhbm5lbFJlbW90ZU1hbmFnZXI6OlJlbW90ZUhhbmRsZXJDb25uZWN0aW9uOjpzZW5kRGF0YShX
ZWJDb3JlOjpSVENEYXRhQ2hhbm5lbElkZW50aWZpZXIgaWRlbnRpZmllciwgYm9vbCBpc1Jhdywg
Y29uc3QgdW5zaWduZWQgY2hhciogZGF0YSwgc2l6ZV90IHNpemUpCit7CisgICAgbV9jb25uZWN0
aW9uLT5zZW5kKE1lc3NhZ2VzOjpSVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXJQcm94eTo6U2Vu
ZERhdGEgeyBpZGVudGlmaWVyLCBpc1JhdywgSVBDOjpEYXRhUmVmZXJlbmNlIHsgZGF0YSwgc2l6
ZSB9IH0sIDApOworfQorCit2b2lkIFJUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlcjo6UmVtb3Rl
SGFuZGxlckNvbm5lY3Rpb246OmNsb3NlKFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsSWRlbnRpZmll
ciBpZGVudGlmaWVyKQoreworICAgIC8vIEZJWE1FOiBXZSBuZWVkIHRvIHdhaXQgdG8gc2VuZCB0
aGlzIG1lc3NhZ2UgdW50aWwgUlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyUHJveHk6OkNvbm5l
Y3RUb1NvdXJjZSBpcyBhY3R1YWxseSBzZW50LgorICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNz
YWdlczo6UlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyUHJveHk6OkNsb3NlIHsgaWRlbnRpZmll
ciB9LCAwKTsKK30KKworUmVmPFJUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlcjo6UmVtb3RlU291
cmNlQ29ubmVjdGlvbj4gUlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyOjpSZW1vdGVTb3VyY2VD
b25uZWN0aW9uOjpjcmVhdGUoKQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFJlbW90ZVNv
dXJjZUNvbm5lY3Rpb24pOworfQorCitSVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXI6OlJlbW90
ZVNvdXJjZUNvbm5lY3Rpb246OlJlbW90ZVNvdXJjZUNvbm5lY3Rpb24oKQorICAgIDogbV9jb25u
ZWN0aW9uKFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVj
dGlvbigpLmNvbm5lY3Rpb24oKSkKK3sKK30KKwordm9pZCBSVENEYXRhQ2hhbm5lbFJlbW90ZU1h
bmFnZXI6OlJlbW90ZVNvdXJjZUNvbm5lY3Rpb246OmRpZENoYW5nZVJlYWR5U3RhdGUoV2ViQ29y
ZTo6UlRDRGF0YUNoYW5uZWxJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6OlJUQ0RhdGFD
aGFubmVsU3RhdGUgc3RhdGUpCit7CisgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpS
VENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXJQcm94eTo6Q2hhbmdlUmVhZHlTdGF0ZSB7IGlkZW50
aWZpZXIsIHN0YXRlIH0sIDApOworfQorCit2b2lkIFJUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdl
cjo6UmVtb3RlU291cmNlQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZVN0cmluZ0RhdGEoV2ViQ29yZTo6
UlRDRGF0YUNoYW5uZWxJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgc3RyaW5n
KQoreworICAgIGF1dG8gdGV4dCA9IHN0cmluZy51dGY4KCk7CisgICAgbV9jb25uZWN0aW9uLT5z
ZW5kKE1lc3NhZ2VzOjpSVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXJQcm94eTo6UmVjZWl2ZURh
dGEgeyBpZGVudGlmaWVyLCBmYWxzZSwgSVBDOjpEYXRhUmVmZXJlbmNlIHsgcmVpbnRlcnByZXRf
Y2FzdDxjb25zdCB1bnNpZ25lZCBjaGFyKj4odGV4dC5kYXRhKCkpLCB0ZXh0Lmxlbmd0aCgpIH0g
fSwgMCk7Cit9CisKK3ZvaWQgUlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyOjpSZW1vdGVTb3Vy
Y2VDb25uZWN0aW9uOjpkaWRSZWNlaXZlUmF3RGF0YShXZWJDb3JlOjpSVENEYXRhQ2hhbm5lbElk
ZW50aWZpZXIgaWRlbnRpZmllciwgY29uc3QgY2hhciogZGF0YSwgc2l6ZV90IHNpemUpCit7Cisg
ICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpSVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFn
ZXJQcm94eTo6UmVjZWl2ZURhdGEgeyBpZGVudGlmaWVyLCB0cnVlLCBJUEM6OkRhdGFSZWZlcmVu
Y2UgeyByZWludGVycHJldF9jYXN0PGNvbnN0IHVuc2lnbmVkIGNoYXIqPihkYXRhKSwgc2l6ZSAg
fSB9LCAwKTsKK30KKwordm9pZCBSVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXI6OlJlbW90ZVNv
dXJjZUNvbm5lY3Rpb246OmRpZERldGVjdEVycm9yKFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsSWRl
bnRpZmllciBpZGVudGlmaWVyKQoreworICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6
UlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyUHJveHk6OkRldGVjdEVycm9yIHsgaWRlbnRpZmll
ciB9LCAwKTsKK30KKwordm9pZCBSVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXI6OlJlbW90ZVNv
dXJjZUNvbm5lY3Rpb246OmJ1ZmZlcmVkQW1vdW50SXNEZWNyZWFzaW5nKFdlYkNvcmU6OlJUQ0Rh
dGFDaGFubmVsSWRlbnRpZmllciBpZGVudGlmaWVyLCBzaXplX3QgYW1vdW50KQoreworICAgIG1f
Y29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6UlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyUHJv
eHk6OkJ1ZmZlcmVkQW1vdW50SXNEZWNyZWFzaW5nIHsgaWRlbnRpZmllciwgYW1vdW50IH0sIDAp
OworfQorCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L05ldHdvcmsvd2VicnRjL1JUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlci5oIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL1JUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdl
ci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjZkMTJiN2MzNWYwMDRhNDdjNTU0ZmRiMTVlZTIzOWRlNjJiMzUwY2UK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJy
dGMvUlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyLmgKQEAgLTAsMCArMSwxMTMgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBM
SUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04KKyAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoV0VCX1JUQykKKworI2luY2x1ZGUg
IkNvbm5lY3Rpb24uaCIKKyNpbmNsdWRlICJEYXRhUmVmZXJlbmNlLmgiCisjaW5jbHVkZSA8V2Vi
Q29yZS9SVENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1JU
Q0RhdGFDaGFubmVsUmVtb3RlSGFuZGxlckNvbm5lY3Rpb24uaD4KKyNpbmNsdWRlIDxXZWJDb3Jl
L1JUQ0RhdGFDaGFubmVsUmVtb3RlU291cmNlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SVENEYXRh
Q2hhbm5lbFJlbW90ZVNvdXJjZUNvbm5lY3Rpb24uaD4KKyNpbmNsdWRlIDx3dGYvV29ya1F1ZXVl
Lmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBSVENEYXRhQ2hhbm5lbFJlbW90ZU1h
bmFnZXIgZmluYWwgOiBwdWJsaWMgSVBDOjpDb25uZWN0aW9uOjpXb3JrUXVldWVNZXNzYWdlUmVj
ZWl2ZXIgeworcHVibGljOgorICAgIHN0YXRpYyBSVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXIm
IHNoYXJlZE1hbmFnZXIoKTsKKworICAgIFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsUmVtb3RlSGFu
ZGxlckNvbm5lY3Rpb24mIHJlbW90ZUhhbmRsZXJDb25uZWN0aW9uKCk7CisgICAgdm9pZCBzZXRD
b25uZWN0aW9uKElQQzo6Q29ubmVjdGlvbiopOworICAgIGJvb2wgY29ubmVjdFRvUmVtb3RlU291
cmNlKFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsSWRlbnRpZmllciBzb3VyY2UsIFdlYkNvcmU6OlJU
Q0RhdGFDaGFubmVsSWRlbnRpZmllciBoYW5kbGVyKTsKKworcHJpdmF0ZToKKyAgICBSVENEYXRh
Q2hhbm5lbFJlbW90ZU1hbmFnZXIoKTsKKworICAgIC8vIElQQzo6Q29ubmVjdGlvbjo6V29ya1F1
ZXVlTWVzc2FnZVJlY2VpdmVyCisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5l
Y3Rpb24mLCBJUEM6OkRlY29kZXImKSBmaW5hbDsKKworICAgIC8vIE1lc3NhZ2VzCisgICAgdm9p
ZCBzZW5kRGF0YShXZWJDb3JlOjpSVENEYXRhQ2hhbm5lbElkZW50aWZpZXIsIGJvb2wgaXNSYXcs
IGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYpOworICAgIHZvaWQgY2xvc2UoV2ViQ29yZTo6UlRD
RGF0YUNoYW5uZWxJZGVudGlmaWVyKTsKKworICAgIC8vIFRvIGhhbmRsZXIKKyAgICB2b2lkIGNo
YW5nZVJlYWR5U3RhdGUoV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWxJZGVudGlmaWVyLCBXZWJDb3Jl
OjpSVENEYXRhQ2hhbm5lbFN0YXRlKTsKKyAgICB2b2lkIHJlY2VpdmVEYXRhKFdlYkNvcmU6OlJU
Q0RhdGFDaGFubmVsSWRlbnRpZmllciwgYm9vbCBpc1JhdywgY29uc3QgSVBDOjpEYXRhUmVmZXJl
bmNlJik7CisgICAgdm9pZCBkZXRlY3RFcnJvcihXZWJDb3JlOjpSVENEYXRhQ2hhbm5lbElkZW50
aWZpZXIpOworICAgIHZvaWQgYnVmZmVyZWRBbW91bnRJc0RlY3JlYXNpbmcoV2ViQ29yZTo6UlRD
RGF0YUNoYW5uZWxJZGVudGlmaWVyLCBzaXplX3QpOworCisgICAgV2ViQ29yZTo6UlRDRGF0YUNo
YW5uZWxSZW1vdGVTb3VyY2VDb25uZWN0aW9uJiByZW1vdGVTb3VyY2VDb25uZWN0aW9uKCk7Cisg
ICAgdm9pZCBwb3N0VGFza1RvSGFuZGxlcihXZWJDb3JlOjpSVENEYXRhQ2hhbm5lbElkZW50aWZp
ZXIsIEZ1bmN0aW9uPHZvaWQoV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVyJik+
JiYpOworICAgIFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsUmVtb3RlU291cmNlKiBzb3VyY2VGcm9t
SWRlbnRpZmllcihXZWJDb3JlOjpSVENEYXRhQ2hhbm5lbElkZW50aWZpZXIpOworCisgICAgY2xh
c3MgUmVtb3RlSGFuZGxlckNvbm5lY3Rpb24gOiBwdWJsaWMgV2ViQ29yZTo6UlRDRGF0YUNoYW5u
ZWxSZW1vdGVIYW5kbGVyQ29ubmVjdGlvbiB7CisgICAgcHVibGljOgorICAgICAgICBzdGF0aWMg
UmVmPFJlbW90ZUhhbmRsZXJDb25uZWN0aW9uPiBjcmVhdGUoUmVmPFdvcmtRdWV1ZT4mJik7CisK
KyAgICAgICAgdm9pZCBjb25uZWN0VG9Tb3VyY2UoV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWxSZW1v
dGVIYW5kbGVyJiwgV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIsIFdl
YkNvcmU6OlJUQ0RhdGFDaGFubmVsSWRlbnRpZmllciwgV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWxJ
ZGVudGlmaWVyKSBmaW5hbDsKKyAgICAgICAgdm9pZCBzZW5kRGF0YShXZWJDb3JlOjpSVENEYXRh
Q2hhbm5lbElkZW50aWZpZXIsIGJvb2wgaXNSYXcsIGNvbnN0IHVuc2lnbmVkIGNoYXIqLCBzaXpl
X3QpIGZpbmFsOworICAgICAgICB2b2lkIGNsb3NlKFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsSWRl
bnRpZmllcikgZmluYWw7CisKKyAgICBwcml2YXRlOgorICAgICAgICBleHBsaWNpdCBSZW1vdGVI
YW5kbGVyQ29ubmVjdGlvbihSZWY8V29ya1F1ZXVlPiYmKTsKKworICAgICAgICBSZWY8SVBDOjpD
b25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247CisgICAgICAgIFJlZjxXb3JrUXVldWU+IG1fcXVldWU7
CisgICAgfTsKKworICAgIGNsYXNzIFJlbW90ZVNvdXJjZUNvbm5lY3Rpb24gOiBwdWJsaWMgV2Vi
Q29yZTo6UlRDRGF0YUNoYW5uZWxSZW1vdGVTb3VyY2VDb25uZWN0aW9uIHsKKyAgICBwdWJsaWM6
CisgICAgICAgIHN0YXRpYyBSZWY8UmVtb3RlU291cmNlQ29ubmVjdGlvbj4gY3JlYXRlKCk7CisK
KyAgICBwcml2YXRlOgorICAgICAgICBSZW1vdGVTb3VyY2VDb25uZWN0aW9uKCk7CisKKyAgICAg
ICAgdm9pZCBkaWRDaGFuZ2VSZWFkeVN0YXRlKFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsSWRlbnRp
ZmllciwgV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWxTdGF0ZSkgZmluYWw7CisgICAgICAgIHZvaWQg
ZGlkUmVjZWl2ZVN0cmluZ0RhdGEoV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWxJZGVudGlmaWVyLCBj
b25zdCBTdHJpbmcmKSBmaW5hbDsKKyAgICAgICAgdm9pZCBkaWRSZWNlaXZlUmF3RGF0YShXZWJD
b3JlOjpSVENEYXRhQ2hhbm5lbElkZW50aWZpZXIsIGNvbnN0IGNoYXIqLCBzaXplX3QpIGZpbmFs
OworICAgICAgICB2b2lkIGRpZERldGVjdEVycm9yKFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsSWRl
bnRpZmllcikgZmluYWw7CisgICAgICAgIHZvaWQgYnVmZmVyZWRBbW91bnRJc0RlY3JlYXNpbmco
V2ViQ29yZTo6UlRDRGF0YUNoYW5uZWxJZGVudGlmaWVyLCBzaXplX3QpIGZpbmFsOworCisgICAg
ICAgIFJlZjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKKyAgICB9OworCisgICAgc3Ry
dWN0IFJlbW90ZUhhbmRsZXIgeworICAgICAgICBXZWFrUHRyPFdlYkNvcmU6OlJUQ0RhdGFDaGFu
bmVsUmVtb3RlSGFuZGxlcj4gaGFuZGxlcjsKKyAgICAgICAgV2ViQ29yZTo6U2NyaXB0RXhlY3V0
aW9uQ29udGV4dElkZW50aWZpZXIgY29udGV4dElkZW50aWZpZXI7CisgICAgfTsKKworICAgIFJl
ZjxXb3JrUXVldWU+IG1fcXVldWU7CisgICAgUmVmUHRyPElQQzo6Q29ubmVjdGlvbj4gbV9jb25u
ZWN0aW9uOworICAgIFJlZlB0cjxSZW1vdGVIYW5kbGVyQ29ubmVjdGlvbj4gbV9yZW1vdGVIYW5k
bGVyQ29ubmVjdGlvbjsKKyAgICBSZWZQdHI8UmVtb3RlU291cmNlQ29ubmVjdGlvbj4gbV9yZW1v
dGVTb3VyY2VDb25uZWN0aW9uOworICAgIEhhc2hNYXA8V2ViQ29yZTo6UlRDRGF0YUNoYW5uZWxM
b2NhbElkZW50aWZpZXIsIFJlZjxXZWJDb3JlOjpSVENEYXRhQ2hhbm5lbFJlbW90ZVNvdXJjZT4+
IG1fc291cmNlczsKKyAgICBIYXNoTWFwPFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsTG9jYWxJZGVu
dGlmaWVyLCBSZW1vdGVIYW5kbGVyPiBtX2hhbmRsZXJzOworfTsKKworfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCX1JUQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9SVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFn
ZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMv
UlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyLm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYxYTcy
MTYzNmJiMzcyZmE4OWQ4MGFjOTVmMWE5M2RkMzc1M2RiMDIKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvUlRDRGF0YUNoYW5uZWxSZW1v
dGVNYW5hZ2VyLm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsMzcgQEAKKyMgQ29weXJpZ2h0IChDKSAy
MDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnIEFORAorIyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorIyBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisjIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SCisjIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyMgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyMgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIKKyMgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKyMgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKworI2lmIEVOQUJMRShXRUJfUlRDKQorCittZXNzYWdlcyAt
PiBSVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXIgTm90UmVmQ291bnRlZCB7CisgICAgLy8gVG8g
c291cmNlCisgICAgU2VuZERhdGEoc3RydWN0IFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsSWRlbnRp
ZmllciBzb3VyY2UsIGJvb2wgaXNSYXcsIElQQzo6RGF0YVJlZmVyZW5jZSB0ZXh0KTsKKyAgICBD
bG9zZShzdHJ1Y3QgV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWxJZGVudGlmaWVyIHNvdXJjZSk7CisK
KyAgICAvLyBUbyBoYW5kbGVyCisgICAgQ2hhbmdlUmVhZHlTdGF0ZShzdHJ1Y3QgV2ViQ29yZTo6
UlRDRGF0YUNoYW5uZWxJZGVudGlmaWVyIGhhbmRsZXIsIGVudW06dWludDhfdCBXZWJDb3JlOjpS
VENEYXRhQ2hhbm5lbFN0YXRlIHN0YXRlKTsKKyAgICBSZWNlaXZlRGF0YShzdHJ1Y3QgV2ViQ29y
ZTo6UlRDRGF0YUNoYW5uZWxJZGVudGlmaWVyIGhhbmRsZXIsIGJvb2wgaXNSYXcsIElQQzo6RGF0
YVJlZmVyZW5jZSBkYXRhKTsKKyAgICBEZXRlY3RFcnJvcihzdHJ1Y3QgV2ViQ29yZTo6UlRDRGF0
YUNoYW5uZWxJZGVudGlmaWVyIGhhbmRsZXIpOworICAgIEJ1ZmZlcmVkQW1vdW50SXNEZWNyZWFz
aW5nKHN0cnVjdCBXZWJDb3JlOjpSVENEYXRhQ2hhbm5lbElkZW50aWZpZXIgaGFuZGxlciwgc2l6
ZV90IGFtb3VudCk7Cit9CisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCX1JUQykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25u
ZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4
dE1hbmFnZXJDb25uZWN0aW9uLmNwcAppbmRleCA0NjI0YzgzNTY5YWI5MTUwMTk1ZTQ2NDQ2YzA0
NjI0ZTVkMDAyOWNkLi5iMzlhYmIyMjAzMGQ4ZGNiODAwMWI4M2UwNDUwMmFlOGUzYzFmZjQzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRN
YW5hZ2VyQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3Jh
Z2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwCkBAIC0zMyw2ICszMyw3IEBACiAj
aW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIk5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzTWVzc2FnZXMuaCIKICNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc01lc3NhZ2VzLmgiCisjaW5j
bHVkZSAiUlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiU2VydmljZVdv
cmtlckZldGNoVGFza01lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiU2VydmljZVdvcmtlckluaXRpYWxp
emF0aW9uRGF0YS5oIgogI2luY2x1ZGUgIldlYkNhY2hlU3RvcmFnZVByb3ZpZGVyLmgiCkBAIC03
NCw2ICs3NSwxNiBAQCB1c2luZyBuYW1lc3BhY2UgUEFMOwogdXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7CiAKIAorI2lmIEVOQUJMRShXRUJfUlRDKQorY2xhc3MgU2VydmljZVdvcmtlckxpYldlYlJU
Q1Byb3ZpZGVyIGZpbmFsIDogcHVibGljIFdlYkNvcmU6OkxpYldlYlJUQ1Byb3ZpZGVyIHsKK3B1
YmxpYzoKKyAgICBTZXJ2aWNlV29ya2VyTGliV2ViUlRDUHJvdmlkZXIoKSA9IGRlZmF1bHQ7CisK
K3ByaXZhdGU6CisgICAgUmVmUHRyPFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsUmVtb3RlSGFuZGxl
ckNvbm5lY3Rpb24+IGNyZWF0ZVJUQ0RhdGFDaGFubmVsUmVtb3RlSGFuZGxlckNvbm5lY3Rpb24o
KSBmaW5hbCB7IHJldHVybiAmUlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyOjpzaGFyZWRNYW5h
Z2VyKCkucmVtb3RlSGFuZGxlckNvbm5lY3Rpb24oKTsgfQorfTsKKyNlbmRpZgorCiBTZXJ2aWNl
V29ya2VyRnJhbWVMb2FkZXJDbGllbnQ6OlNlcnZpY2VXb3JrZXJGcmFtZUxvYWRlckNsaWVudChX
ZWJQYWdlUHJveHlJZGVudGlmaWVyIHdlYlBhZ2VQcm94eUlELCBQYWdlSWRlbnRpZmllciBwYWdl
SUQsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCkKICAg
ICA6IG1fd2ViUGFnZVByb3h5SUQod2ViUGFnZVByb3h5SUQpCiAgICAgLCBtX3BhZ2VJRChwYWdl
SUQpCkBAIC0xMzMsNiArMTQ0LDkgQEAgdm9pZCBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlv
bjo6aW5zdGFsbFNlcnZpY2VXb3JrZXIoY29uc3QgU2VydmljZVdvcmtlckNvbnQKICNlbmRpZgog
ICAgIHBhZ2VDb25maWd1cmF0aW9uLnNvY2tldFByb3ZpZGVyID0gV2ViU29ja2V0UHJvdmlkZXI6
OmNyZWF0ZSgpOwogICAgIHBhZ2VDb25maWd1cmF0aW9uLnVzZXJDb250ZW50UHJvdmlkZXIgPSBt
X3VzZXJDb250ZW50Q29udHJvbGxlcjsKKyNpZiBFTkFCTEUoV0VCX1JUQykKKyAgICBwYWdlQ29u
ZmlndXJhdGlvbi5saWJXZWJSVENQcm92aWRlciA9IG1ha2VVbmlxdWVSZWY8U2VydmljZVdvcmtl
ckxpYldlYlJUQ1Byb3ZpZGVyPigpOworI2VuZGlmCiAKICAgICBhdXRvIGVmZmVjdGl2ZVVzZXJB
Z2VudCA9ICBXVEZNb3ZlKHVzZXJBZ2VudCk7CiAgICAgaWYgKGVmZmVjdGl2ZVVzZXJBZ2VudC5p
c051bGwoKSkKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwpp
bmRleCA0NDM5YjhmNTUxZWVlNzIyZTlmZjFhMWMzNmIwZjM5ZDY3ZGJlMWNmLi5hNGY2ZmEyN2Zm
MjY0MWE5MTJiNzYwMmRiOWJkMjk2NjliNTcyYWY2IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VM
b2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMjEtMDMtMTggIFlv
dWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBSVENE
YXRhQ2hhbm5lbCB0cmFuc2ZlciBvdXQgb2YgcHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIzNDQzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
RXJpYyBDYXJsc29uLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisKIDIwMjEtMDMtMTcgIFlvdWVubiBGYWJsZXQgIDx5
b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIEdlb2xvY2F0aW9uIEFQSSBkb2VzIG5vdCB3b3Jr
IGluIFdLV2ViVmlldyB3aXRoIGN1c3RvbSBVUkwgc2NoZW1lIGhhbmRsZXIKZGlmZiAtLWdpdCBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKaW5kZXggZTI0NDBiYmI0YWUwMzE3Y2MyOGFhYTgxNmY4NzYxYzMzY2QwYjdmNy4u
MTQxNTM3N2VjM2UxNjQzZTdlZTY1Y2U2ODgyMTE0Yjk1NTYyMTFmYyAxMDA2NDQKLS0tIGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
KysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKQEAgLTIzNSw2ICsyMzUsNyBAQAogCQkzRkJEMUI0QTFEM0Q2NkFCMDBFNkQ2RkEg
LyogRnVsbHNjcmVlbkxheW91dENvbnN0cmFpbnRzLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gM0ZCRDFCNDkxRDM5RDFEQjAwRTZENkZB
IC8qIEZ1bGxzY3JlZW5MYXlvdXRDb25zdHJhaW50cy5odG1sICovOyB9OwogCQkzRkNDNEZFNTFF
QzRFODUyMDA3NkUzN0MgLyogUGljdHVyZUluUGljdHVyZURlbGVnYXRlLm1tIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gM0ZDQzRGRTQxRUM0RTg1MjAwNzZF
MzdDIC8qIFBpY3R1cmVJblBpY3R1cmVEZWxlZ2F0ZS5tbSAqLzsgfTsKIAkJM0ZDQzRGRTgxRUM0
RThDQTAwNzZFMzdDIC8qIFBpY3R1cmVJblBpY3R1cmVEZWxlZ2F0ZS5odG1sIGluIENvcHkgUmVz
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDNGQ0M0RkU2MUVDNEU4
N0UwMDc2RTM3QyAvKiBQaWN0dXJlSW5QaWN0dXJlRGVsZWdhdGUuaHRtbCAqLzsgfTsKKwkJNDEx
MjIzQzcyNjAzNUZCRjAwQjBBMEI2IC8qIFdlYlJUQy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxMTIyM0M2MjYwMzVGQkUwMEIwQTBCNiAvKiBXZWJS
VEMubW0gKi87IH07CiAJCTQxMTU3MjM3MjM0QjI0MEMwMDUwQTFEMSAvKiBHZXRVc2VyTWVkaWEu
bW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTE1NzIz
NjIzNEIyNDA0MDA1MEExRDEgLyogR2V0VXNlck1lZGlhLm1tICovOyB9OwogCQk0MTM1RkI4NDIw
MTFGQUE3MDAzMzIxMzkgLyogSW5qZWN0SW50ZXJuYWxzX0J1bmRsZS5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTM1RkI4MzIwMTFGQUEzMDAzMzIx
MzkgLyogSW5qZWN0SW50ZXJuYWxzX0J1bmRsZS5jcHAgKi87IH07CiAJCTQxMzVGQjg1MjAxMUZB
QkYwMDMzMjEzOSAvKiBsaWJXZWJDb3JlVGVzdFN1cHBvcnQuZHlsaWIgaW4gRnJhbWV3b3JrcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTM1RkI4NjIwMTFGQUJGMDAzMzIx
MzkgLyogbGliV2ViQ29yZVRlc3RTdXBwb3J0LmR5bGliICovOyB9OwpAQCAtMTk5Nyw2ICsxOTk4
LDcgQEAKIAkJM0ZCRDFCNDkxRDM5RDFEQjAwRTZENkZBIC8qIEZ1bGxzY3JlZW5MYXlvdXRDb25z
dHJhaW50cy5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gRnVsbHNjcmVlbkxheW91
dENvbnN0cmFpbnRzLmh0bWw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTNGQ0M0RkU0
MUVDNEU4NTIwMDc2RTM3QyAvKiBQaWN0dXJlSW5QaWN0dXJlRGVsZWdhdGUubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBQaWN0dXJlSW5QaWN0dXJlRGVsZWdhdGUu
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTNGQ0M0RkU2MUVDNEU4N0UwMDc2RTM3
QyAvKiBQaWN0dXJlSW5QaWN0dXJlRGVsZWdhdGUuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsg
cGF0aCA9IFBpY3R1cmVJblBpY3R1cmVEZWxlZ2F0ZS5odG1sOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk0MTEyMjNDNjI2MDM1RkJFMDBCMEEwQjYgLyogV2ViUlRDLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViUlRDLm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk0MTE1NzIzNjIzNEIyNDA0MDA1MEExRDEgLyogR2V0VXNlck1lZGlh
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gR2V0VXNlck1lZGlh
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTM1RkI4MzIwMTFGQUEzMDAzMzIx
MzkgLyogSW5qZWN0SW50ZXJuYWxzX0J1bmRsZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IG5hbWUgPSBJbmplY3RJbnRlcm5hbHNfQnVuZGxlLmNwcDsgcGF0aCA9IFRlc3RzL0lu
amVjdEludGVybmFsc19CdW5kbGUuY3BwOyBzb3VyY2VUcmVlID0gU09VUkNFX1JPT1Q7IH07CiAJ
CTQxMzVGQjg2MjAxMUZBQkYwMDMzMjEzOSAvKiBsaWJXZWJDb3JlVGVzdFN1cHBvcnQuZHlsaWIg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZXhwbGljaXRGaWxlVHlwZSA9ICJjb21waWxl
ZC5tYWNoLW8uZHlsaWIiOyBwYXRoID0gbGliV2ViQ29yZVRlc3RTdXBwb3J0LmR5bGliOyBzb3Vy
Y2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwpAQCAtNDI3Miw2ICs0Mjc0LDcgQEAKIAkJ
CQkxMTVFQjM0MjFFRTBCNzIwMDAzQzJDMEEgLyogVmlld3BvcnRTaXplRm9yVmlld3BvcnRVbml0
cy5tbSAqLywKIAkJCQk1MjBCQ0Y0QjE0MUVCMDlFMDA5MzdFQTggLyogV2ViQXJjaGl2ZS5jcHAg
Ki8sCiAJCQkJNTIwQkNGNEExNDFFQjA5RTAwOTM3RUE4IC8qIFdlYkFyY2hpdmVfQnVuZGxlLmNw
cCAqLywKKwkJCQk0MTEyMjNDNjI2MDM1RkJFMDBCMEEwQjYgLyogV2ViUlRDLm1tICovLAogCQkJ
CTdDRkJDQUREMTc0MzIzNEYwMEIyQkZDRiAvKiBXaWxsTG9hZC5jcHAgKi8sCiAJCQkJN0NGQkNB
RTMxNzQzMjM4RTAwQjJCRkNGIC8qIFdpbGxMb2FkX0J1bmRsZS5jcHAgKi8sCiAJCQkJNzZFMTgy
RDkxNTQ3NTUwMTAwRjFGQUREIC8qIFdpbGxTZW5kU3VibWl0RXZlbnQuY3BwICovLApAQCAtNTY3
OCw2ICs1NjgxLDcgQEAKIAkJCQk3Q0NFN0VBQjFBNDExQTI0MDA0NDdDNEMgLyogV2ViS2l0QWdu
b3N0aWNUZXN0Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNDQ4MTEwQzIyNTNGNDAzMDAwOTdGQzMz
IC8qIFdlYlByZWZlcmVuY2VzVGVzdC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTUxNzE0RUI4MUNG
OENBMTcwMDQ3MjNDNCAvKiBXZWJQcm9jZXNzS2lsbElEQkNsZWFudXAubW0gaW4gU291cmNlcyAq
LywKKwkJCQk0MTEyMjNDNzI2MDM1RkJGMDBCMEEwQjYgLyogV2ViUlRDLm1tIGluIFNvdXJjZXMg
Ki8sCiAJCQkJNTM2NzcwMzQxQ0M4MDIyODAwRDQyNUIxIC8qIFdlYlNjcmlwdE9iamVjdERlc2Ny
aXB0aW9uLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNTEyMEM4M0QxRTY3NTEyOTAwMjVCMjUwIC8q
IFdlYnNpdGVEYXRhU3RvcmVDdXN0b21QYXRocy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTVDOUU1
Njg1MURGOTE0NTQwMEM5RUUzMyAvKiBXZWJzaXRlUG9saWNpZXMubW0gaW4gU291cmNlcyAqLywK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1dlYlJUQy5tbSBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1dlYlJUQy5tbQpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4y
ZjkwYzViMzA2Nzc2YjhmYjk5YmM0ZmMzODk5ODdhNTY3Njg2OTkzCi0tLSAvZGV2L251bGwKKysr
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvV2ViUlRDLm1tCkBAIC0wLDAgKzEs
MTgzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUoV0VC
X1JUQykKKworI2ltcG9ydCAiSFRUUFNlcnZlci5oIgorI2ltcG9ydCAiUGxhdGZvcm1VdGlsaXRp
ZXMuaCIKKyNpbXBvcnQgIlRlc3ROYXZpZ2F0aW9uRGVsZWdhdGUuaCIKKyNpbXBvcnQgIlRlc3RX
S1dlYlZpZXcuaCIKKworQGludGVyZmFjZSBXZWJSVENNZXNzYWdlSGFuZGxlciA6IE5TT2JqZWN0
IDxXS1NjcmlwdE1lc3NhZ2VIYW5kbGVyPgorLSAodm9pZClzZXRNZXNzYWdlSGFuZGxlcjooRnVu
Y3Rpb248dm9pZChXS1NjcmlwdE1lc3NhZ2UqKT4mJiltZXNzYWdlSGFuZGxlcjsKK0BlbmQKKwor
QGltcGxlbWVudGF0aW9uIFdlYlJUQ01lc3NhZ2VIYW5kbGVyICB7CitGdW5jdGlvbjx2b2lkKFdL
U2NyaXB0TWVzc2FnZSopPiBfbWVzc2FnZUhhbmRsZXI7Cit9CistICh2b2lkKXNldE1lc3NhZ2VI
YW5kbGVyOihGdW5jdGlvbjx2b2lkKFdLU2NyaXB0TWVzc2FnZSopPiYmKW1lc3NhZ2VIYW5kbGVy
IHsKKyAgICBfbWVzc2FnZUhhbmRsZXIgPSBXVEZNb3ZlKG1lc3NhZ2VIYW5kbGVyKTsKK30KKy0g
KHZvaWQpdXNlckNvbnRlbnRDb250cm9sbGVyOihXS1VzZXJDb250ZW50Q29udHJvbGxlciAqKXVz
ZXJDb250ZW50Q29udHJvbGxlciBkaWRSZWNlaXZlU2NyaXB0TWVzc2FnZTooV0tTY3JpcHRNZXNz
YWdlICopbWVzc2FnZQoreworICAgIGlmIChfbWVzc2FnZUhhbmRsZXIpCisgICAgICAgIF9tZXNz
YWdlSGFuZGxlcihtZXNzYWdlKTsKK30KK0BlbmQKKworbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkg
eworCitzdGF0aWMgYm9vbCBpc1JlYWR5ID0gZmFsc2U7CisKK1RFU1QoV2ViS2l0MiwgUlRDRGF0
YUNoYW5uZWxQb3N0TWVzc2FnZSkKK3sKKyAgICBfX2Jsb2NrIGJvb2wgcmVtb3ZlZEFueUV4aXN0
aW5nRGF0YSA9IGZhbHNlOworICAgIFtbV0tXZWJzaXRlRGF0YVN0b3JlIGRlZmF1bHREYXRhU3Rv
cmVdIHJlbW92ZURhdGFPZlR5cGVzOltXS1dlYnNpdGVEYXRhU3RvcmUgYWxsV2Vic2l0ZURhdGFU
eXBlc10gbW9kaWZpZWRTaW5jZTpbTlNEYXRlIGRpc3RhbnRQYXN0XSBjb21wbGV0aW9uSGFuZGxl
cjpeKCkgeworICAgICAgICByZW1vdmVkQW55RXhpc3RpbmdEYXRhID0gdHJ1ZTsKKyAgICB9XTsK
KyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJlbW92ZWRBbnlFeGlzdGluZ0RhdGEpOwor
CisgICAgc3RhdGljIGNvbnN0IGNoYXIqIG1haW4gPQorICAgICI8c2NyaXB0PiIKKyAgICAibGV0
IHJlZ2lzdHJhdGlvbjsiCisgICAgImFzeW5jIGZ1bmN0aW9uIHJlZ2lzdGVyKCkgeyIKKyAgICAi
ICAgIHJlZ2lzdHJhdGlvbiA9IGF3YWl0IG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLnJlZ2lzdGVy
KCcvc3cuanMnKTsiCisgICAgIiAgICBpZiAocmVnaXN0cmF0aW9uLmFjdGl2ZSkgeyIKKyAgICAi
ICAgICAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy53ZWJydGMucG9zdE1lc3NhZ2Uo
J1JFQURZJyk7IgorICAgICIgICAgICAgIHJldHVybjsiCisgICAgIiAgICB9IgorICAgICIgICAg
d29ya2VyID0gcmVnaXN0cmF0aW9uLmluc3RhbGxpbmc7IgorICAgICIgICAgd29ya2VyLmFkZEV2
ZW50TGlzdGVuZXIoJ3N0YXRlY2hhbmdlJywgZnVuY3Rpb24oKSB7IgorICAgICIgICAgICAgIGlm
ICh3b3JrZXIuc3RhdGUgPT0gJ2FjdGl2YXRlZCcpIgorICAgICIgICAgICAgICAgICB3aW5kb3cu
d2Via2l0Lm1lc3NhZ2VIYW5kbGVycy53ZWJydGMucG9zdE1lc3NhZ2UoJ1JFQURZJyk7IgorICAg
ICIgICAgfSk7IgorICAgICJ9IgorICAgICJyZWdpc3RlcigpOyIKKyAgICAiIgorICAgICJsZXQg
Y2hhbm5lbDEsIGNoYW5uZWwyOyIKKyAgICAibGV0IHBjMSwgcGMyOyIKKyAgICAiYXN5bmMgZnVu
Y3Rpb24gZG9UcmFuc2ZlckRhdGFDaGFubmVsVGVzdCgpIHsiCisgICAgICAgICJwYzEgPSBuZXcg
UlRDUGVlckNvbm5lY3Rpb24oKTsiCisgICAgICAgICJwYzIgPSBuZXcgUlRDUGVlckNvbm5lY3Rp
b24oKTsiCisgICAgICAgICIiCisgICAgICAgICJwYzEub25pY2VjYW5kaWRhdGUgPSAoZXZlbnQp
ID0+IHBjMi5hZGRJY2VDYW5kaWRhdGUoZXZlbnQuY2FuZGlkYXRlKTsiCisgICAgICAgICJwYzIu
b25pY2VjYW5kaWRhdGUgPSAoZXZlbnQpID0+IHBjMS5hZGRJY2VDYW5kaWRhdGUoZXZlbnQuY2Fu
ZGlkYXRlKTsiCisgICAgICAgICIiCisgICAgICAgICJjaGFubmVsMSA9IHBjMS5jcmVhdGVEYXRh
Q2hhbm5lbCgndGVzdCcpOyIKKyAgICAgICAgInJlZ2lzdHJhdGlvbi5hY3RpdmUucG9zdE1lc3Nh
Z2UoeyBjaGFubmVsOiBjaGFubmVsMSB9LCBbY2hhbm5lbDFdKTsiCisgICAgICAgICJsZXQgcHJv
bWlzZSA9IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gcGMyLm9uZGF0YWNoYW5uZWwgPSAoZXZlbnQp
ID0+IHJlc29sdmUoZXZlbnQuY2hhbm5lbCkpOyIKKyAgICAgICAgIiIKKyAgICAgICAgImNvbnN0
IG9mZmVyID0gYXdhaXQgcGMxLmNyZWF0ZU9mZmVyKCk7IgorICAgICAgICAiYXdhaXQgcGMxLnNl
dExvY2FsRGVzY3JpcHRpb24ob2ZmZXIpOyIKKyAgICAgICAgImF3YWl0IHBjMi5zZXRSZW1vdGVE
ZXNjcmlwdGlvbihvZmZlcik7IgorICAgICAgICAiY29uc3QgYW5zd2VyID0gYXdhaXQgcGMyLmNy
ZWF0ZUFuc3dlcigpOyIKKyAgICAgICAgImF3YWl0IHBjMi5zZXRMb2NhbERlc2NyaXB0aW9uKGFu
c3dlcik7IgorICAgICAgICAiYXdhaXQgcGMxLnNldFJlbW90ZURlc2NyaXB0aW9uKGFuc3dlcik7
IgorICAgICAgICAiIgorICAgICAgICAiY2hhbm5lbDIgPSBhd2FpdCBwcm9taXNlOyIKKyAgICAg
ICAgImlmIChjaGFubmVsMi5yZWFkeVN0YXRlID09PSAnY2xvc2VkJykgeyIKKyAgICAgICAgIiAg
IHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLndlYnJ0Yy5wb3N0TWVzc2FnZSgnQ0xPU0VE
Jyk7IgorICAgICAgICAiICAgcmV0dXJuOyIKKyAgICAgICAgIn0iCisgICAgICAgICJpZiAoY2hh
bm5lbDIucmVhZHlTdGF0ZSAhPT0gJ29wZW4nKSIKKyAgICAgICAgIiAgICBhd2FpdCBuZXcgUHJv
bWlzZShyZXNvbHZlID0+IGNoYW5uZWwyLm9ub3BlbiA9IHJlc29sdmUpOyIKKyAgICAgICAgIiIK
KyAgICAgICAgInByb21pc2UgPSBuZXcgUHJvbWlzZShyZXNvbHZlID0+IG5hdmlnYXRvci5zZXJ2
aWNlV29ya2VyLm9ubWVzc2FnZSA9IChldmVudCkgPT4gcmVzb2x2ZShldmVudC5kYXRhKSk7Igor
ICAgICAgICAiY2hhbm5lbDIuc2VuZCgnVFJBTlNGRVJFRCcpOyIKKyAgICAgICAgIndpbmRvdy53
ZWJraXQubWVzc2FnZUhhbmRsZXJzLndlYnJ0Yy5wb3N0TWVzc2FnZShhd2FpdCBwcm9taXNlKTsi
CisgICAgIn0iCisgICAgImZ1bmN0aW9uIHRyYW5zZmVyRGF0YUNoYW5uZWwoKSB7IgorICAgICIg
ICBkb1RyYW5zZmVyRGF0YUNoYW5uZWxUZXN0KCk7IgorICAgICJ9IgorICAgICI8L3NjcmlwdD4i
OworCisgICAgc3RhdGljIGNvbnN0IGNoYXIqIGpzID0gInNlbGYub25tZXNzYWdlID0gKGV2ZW50
KSA9PiB7ICIKKyAgICAiICAgIGNvbnN0IHNvdXJjZSA9IGV2ZW50LnNvdXJjZTsiCisgICAgIiAg
ICBjb25zdCBjaGFubmVsID0gZXZlbnQuZGF0YS5jaGFubmVsOyIKKyAgICAiICAgIGlmIChjaGFu
bmVsLnJlYWR5U3RhdGUgPT09ICdjbG9zZWQnKSIKKyAgICAiICAgICAgICBzb3VyY2UucG9zdE1l
c3NhZ2UoJ2Nsb3NlZCcpOyIKKyAgICAiICAgIGNoYW5uZWwub25jbG9zZSA9IChlKSA9PiBzb3Vy
Y2UucG9zdE1lc3NhZ2UoJ2Nsb3NlIGV2ZW50Jyk7IgorICAgICIgICAgY2hhbm5lbC5vbm1lc3Nh
Z2UgPSAoZSkgPT4gc291cmNlLnBvc3RNZXNzYWdlKGUuZGF0YSk7IgorICAgICJ9OyI7CisKKyAg
ICBIVFRQU2VydmVyIHNlcnZlcih7CisgICAgICAgIHsgIi8iLCB7IG1haW4gfSB9LAorICAgICAg
ICB7ICIvc3cuanMiLCB7IHt7ICJDb250ZW50LVR5cGUiLCAiYXBwbGljYXRpb24vamF2YXNjcmlw
dCIgfX0sIGpzIH0gfSwKKyAgICAgICAgeyAiLyIsIHsgbWFpbiB9IH0sCisgICAgfSwgSFRUUFNl
cnZlcjo6UHJvdG9jb2w6Okh0dHBzKTsKKyAgICBhdXRvKiByZXF1ZXN0ID0gc2VydmVyLnJlcXVl
c3QoKTsKKworICAgIGF1dG8gbmF2aWdhdGlvbkRlbGVnYXRlID0gYWRvcHROUyhbVGVzdE5hdmln
YXRpb25EZWxlZ2F0ZSBuZXddKTsKKyAgICBbbmF2aWdhdGlvbkRlbGVnYXRlIHNldERpZFJlY2Vp
dmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZTpeKFdLV2ViVmlldyAqLCBOU1VSTEF1dGhlbnRpY2F0
aW9uQ2hhbGxlbmdlICpjaGFsbGVuZ2UsIHZvaWQgKF5jYWxsYmFjaykoTlNVUkxTZXNzaW9uQXV0
aENoYWxsZW5nZURpc3Bvc2l0aW9uLCBOU1VSTENyZWRlbnRpYWwgKikpIHsKKyAgICAgICAgY2Fs
bGJhY2soTlNVUkxTZXNzaW9uQXV0aENoYWxsZW5nZVVzZUNyZWRlbnRpYWwsIFtOU1VSTENyZWRl
bnRpYWwgY3JlZGVudGlhbEZvclRydXN0OmNoYWxsZW5nZS5wcm90ZWN0aW9uU3BhY2Uuc2VydmVy
VHJ1c3RdKTsKKyAgICB9XTsKKworICAgIGF1dG8gY29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tX
S1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CisgICAgYXV0byBtZXNzYWdlSGFu
ZGxlciA9IGFkb3B0TlMoW1tXZWJSVENNZXNzYWdlSGFuZGxlciBhbGxvY10gaW5pdF0pOworICAg
IFtbY29uZmlndXJhdGlvbiB1c2VyQ29udGVudENvbnRyb2xsZXJdIGFkZFNjcmlwdE1lc3NhZ2VI
YW5kbGVyOm1lc3NhZ2VIYW5kbGVyLmdldCgpIG5hbWU6QCJ3ZWJydGMiXTsKKworICAgIGF1dG8g
d2ViVmlldzEgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpD
R1JlY3RNYWtlKDAsIDAsIDMyMCwgNTAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0
KCldKTsKKyAgICB3ZWJWaWV3MS5nZXQoKS5uYXZpZ2F0aW9uRGVsZWdhdGUgPSBuYXZpZ2F0aW9u
RGVsZWdhdGUuZ2V0KCk7CisKKyAgICBbbWVzc2FnZUhhbmRsZXIgc2V0TWVzc2FnZUhhbmRsZXI6
W10oV0tTY3JpcHRNZXNzYWdlICptZXNzYWdlKSB7CisgICAgICAgIEVYUEVDVF9XS19TVFJFUShA
IlJFQURZIiwgW21lc3NhZ2UgYm9keV0pOworICAgICAgICBpc1JlYWR5ID0gdHJ1ZTsKKyAgICB9
XTsKKyAgICBpc1JlYWR5ID0gZmFsc2U7CisgICAgW3dlYlZpZXcxIGxvYWRSZXF1ZXN0OnJlcXVl
c3RdOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmaXNSZWFkeSk7CisKKyAgICBhdXRv
IHdlYlZpZXcyID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6
Q0dSZWN0TWFrZSgwLCAwLCAzMjAsIDUwMCkgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uLmdl
dCgpXSk7CisgICAgd2ViVmlldzIuZ2V0KCkubmF2aWdhdGlvbkRlbGVnYXRlID0gbmF2aWdhdGlv
bkRlbGVnYXRlLmdldCgpOworCisgICAgW21lc3NhZ2VIYW5kbGVyIHNldE1lc3NhZ2VIYW5kbGVy
OltdKFdLU2NyaXB0TWVzc2FnZSAqbWVzc2FnZSkgeworICAgICAgICBFWFBFQ1RfV0tfU1RSRVEo
QCJSRUFEWSIsIFttZXNzYWdlIGJvZHldKTsKKyAgICAgICAgaXNSZWFkeSA9IHRydWU7CisgICAg
fV07CisgICAgaXNSZWFkeSA9IGZhbHNlOworICAgIFt3ZWJWaWV3MiBsb2FkUmVxdWVzdDpyZXF1
ZXN0XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmlzUmVhZHkpOworCisgICAgW21l
c3NhZ2VIYW5kbGVyIHNldE1lc3NhZ2VIYW5kbGVyOltdKFdLU2NyaXB0TWVzc2FnZSAqbWVzc2Fn
ZSkgeworICAgICAgICBFWFBFQ1RfV0tfU1RSRVEoQCJUUkFOU0ZFUkVEIiwgW21lc3NhZ2UgYm9k
eV0pOworICAgICAgICBpc1JlYWR5ID0gdHJ1ZTsKKyAgICB9XTsKKworICAgIC8vIFRyYW5zZmVy
IGlzIHByb2JhYmx5IGluLXByb2Nlc3MuCisgICAgaXNSZWFkeSA9IGZhbHNlOworICAgIFt3ZWJW
aWV3MSBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAidHJhbnNmZXJEYXRhQ2hhbm5lbCgp
Il07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZpc1JlYWR5KTsKKworICAgIC8vIFRy
YW5zZmVyIGlzIHByb2JhYmx5IG91dC1vZi1wcm9jZXNzLgorICAgIGlzUmVhZHkgPSBmYWxzZTsK
KyAgICBbd2ViVmlldzIgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAInRyYW5zZmVyRGF0
YUNoYW5uZWwoKSJdOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmaXNSZWFkeSk7Cit9
CisKK30gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkKKworI2VuZGlmIC8vIEVOQUJMRShXRUJf
UlRDKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>