<?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>232976</bug_id>
          
          <creation_ts>2021-11-10 18:02:49 -0800</creation_ts>
          <short_desc>Log memory usage metadata when WebContent crosses critical or warning level memory thresholds</short_desc>
          <delta_ts>2021-11-11 12:41:10 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ben Nham">nham</reporter>
          <assigned_to name="Ben Nham">nham</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>darin</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>nham</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1813869</commentid>
    <comment_count>0</comment_count>
    <who name="Ben Nham">nham</who>
    <bug_when>2021-11-10 18:02:49 -0800</bug_when>
    <thetext>We receive a large number of out of memory reports without enough logging info to properly debug. We should log more metadata about memory usage (similar to what we do on Mac in `WebCore::logMemoryStatisticsAtTimeOfDeath`) to help us debug those reports.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1813873</commentid>
    <comment_count>1</comment_count>
      <attachid>443891</attachid>
    <who name="Ben Nham">nham</who>
    <bug_when>2021-11-10 18:17:34 -0800</bug_when>
    <thetext>Created attachment 443891
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1813877</commentid>
    <comment_count>2</comment_count>
    <who name="Ben Nham">nham</who>
    <bug_when>2021-11-10 18:19:00 -0800</bug_when>
    <thetext>&lt;rdar://85171163&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1813881</commentid>
    <comment_count>3</comment_count>
      <attachid>443894</attachid>
    <who name="Ben Nham">nham</who>
    <bug_when>2021-11-10 18:29:01 -0800</bug_when>
    <thetext>Created attachment 443894
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1814082</commentid>
    <comment_count>4</comment_count>
      <attachid>443894</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-11-11 10:09:23 -0800</bug_when>
    <thetext>Comment on attachment 443894
Patch

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

&gt; Source/WTF/wtf/cocoa/ResourceUsageCocoa.cpp:140
&gt; +            // Count all resident malloc pages as dirty.
&gt; +            size_t dirtyPages = info.pages_resident - info.pages_reusable;
&gt; +            tags[info.user_tag].dirty += dirtyPages + info.pages_swapped_out;

Do we really need a local variable just to add pages_swapped_out?

&gt; Source/WTF/wtf/cocoa/ResourceUsageCocoa.cpp:143
&gt; +            tags[info.user_tag].dirty += (info.pages_dirtied + info.pages_swapped_out);

Not sure the parentheses add clarity here.

&gt; Source/WebCore/page/MemoryRelease.h:34
&gt; +enum class LogMemoryStatisticsReason {

: uint8_t?

&gt; Source/WebKit/WebProcess/WebProcess.cpp:464
&gt; +                // Log stats in the next turn of the run loop so that it runs after the low memory handler.

This comment is here, but not above. Does the same rationale apply above?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1814130</commentid>
    <comment_count>5</comment_count>
      <attachid>443977</attachid>
    <who name="Ben Nham">nham</who>
    <bug_when>2021-11-11 11:12:47 -0800</bug_when>
    <thetext>Created attachment 443977
patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1814133</commentid>
    <comment_count>6</comment_count>
      <attachid>443979</attachid>
    <who name="Ben Nham">nham</who>
    <bug_when>2021-11-11 11:16:15 -0800</bug_when>
    <thetext>Created attachment 443979
patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1814166</commentid>
    <comment_count>7</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-11-11 12:41:08 -0800</bug_when>
    <thetext>Committed r285648 (244148@main): &lt;https://commits.webkit.org/244148@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 443979.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>443891</attachid>
            <date>2021-11-10 18:17:34 -0800</date>
            <delta_ts>2021-11-10 18:29:24 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232976-20211110181733.patch</filename>
            <type>text/plain</type>
            <size>32037</size>
            <attacher name="Ben Nham">nham</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1NjA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDFhNGE1NTdlZjZjNDUwMmNlMjY5NTJi
MzVmOWM1MDBiN2FjNzQyNjAuLjljMTllZDgxZGU5ZWZmNDk2Mjc4OTM3M2U5ZjViNDAwZDUxODlh
NDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMzYgQEAKKzIwMjEtMTEtMTAgIEJlbiBOaGFtICA8bmhhbUBhcHBs
ZS5jb20+CisKKyAgICAgICAgTG9nIG1lbW9yeSB1c2FnZSBtZXRhZGF0YSB3aGVuIHByb2Nlc3Mg
aGl0IHByb2Nlc3MgbGV2ZWwgbGltaXRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMzI5NzYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBGaXhlZCBzZXZlcmFsIGlzc3VlcyB3aXRoIG1lbW9yeSB1c2FnZSB0
cmFja2luZzoKKyAgICAgICAgIC0gcGFnZXNQZXJWTVRhZyBub3cgcHJvcGVybHkgYWNjb3VudHMg
Zm9yIHN3YXBwZWQtb3V0IHBhZ2VzIGluIGl0cyBmb290cHJpbnQgY2FsY3VsYXRpb24sCisgICAg
ICAgICAgIGFzIGZvb3RwcmludCgxKSBhbHJlYWR5IGRvZXMuCisgICAgICAgICAtIGRpc3BsYXlO
YW1lUGVyVk1UYWcgbm93IGluY2x1ZGVzIGFsbCBvZiB0aGUgbW9zdCBjb21tb24gVk0gdGFncyBh
c3NvY2lhdGVkIHdpdGggV2ViS2l0LgorICAgICAgICAgLSBNZW1vcnlQcmVzc3VyZUhhbmRsZXIg
bm93IGtub3dzIHRoZSBzcGVjaWZpYyB0eXBlIG9mIHByZXNzdXJlIGV2ZW50IHRoYXQgb2NjdXJy
ZWQuIFRoaXMKKyAgICAgICAgICAgYWxsb3dzIGl0IHRvIGRpZmZlcmVudGlhdGUgYmV0d2VlbiB0
aGUgZW50aXJlIHN5c3RlbSBiZWluZyBhdCBhIHdhcm5pbmcgcHJlc3N1cmUgbGV2ZWwKKyAgICAg
ICAgICAgdnMuIGp1c3QgdGhpcyBwcm9jZXNzIGhpdHRpbmcgaXRzIHdhcm5pbmcgbWVtb3J5IGxl
dmVsIGxpbWl0LgorCisgICAgICAgICogd3RmL01lbW9yeVByZXNzdXJlSGFuZGxlci5jcHA6Cisg
ICAgICAgIChXVEY6Ok1lbW9yeVByZXNzdXJlSGFuZGxlcjo6c2V0TWVtb3J5UHJlc3N1cmVTdGF0
dXMpOgorICAgICAgICAoV1RGOjpNZW1vcnlQcmVzc3VyZUhhbmRsZXI6Om1lbW9yeVByZXNzdXJl
U3RhdHVzQ2hhbmdlZCk6CisgICAgICAgIChXVEY6Ok1lbW9yeVByZXNzdXJlSGFuZGxlcjo6c2V0
VW5kZXJNZW1vcnlQcmVzc3VyZSk6IERlbGV0ZWQuCisgICAgICAgICogd3RmL01lbW9yeVByZXNz
dXJlSGFuZGxlci5oOgorICAgICAgICAoV1RGOjpNZW1vcnlQcmVzc3VyZUhhbmRsZXI6OnNldE1l
bW9yeVByZXNzdXJlU3RhdHVzQ2hhbmdlZENhbGxiYWNrKToKKyAgICAgICAgKFdURjo6TWVtb3J5
UHJlc3N1cmVIYW5kbGVyOjppc1VuZGVyTWVtb3J5UHJlc3N1cmUgY29uc3QpOgorICAgICAgICAq
IHd0Zi9SZXNvdXJjZVVzYWdlLmg6CisgICAgICAgICogd3RmL2NvY29hL01lbW9yeVByZXNzdXJl
SGFuZGxlckNvY29hLm1tOgorICAgICAgICAoV1RGOjpNZW1vcnlQcmVzc3VyZUhhbmRsZXI6Omlu
c3RhbGwpOgorICAgICAgICAqIHd0Zi9jb2NvYS9SZXNvdXJjZVVzYWdlQ29jb2EuY3BwOgorICAg
ICAgICAoV1RGOjpkaXNwbGF5TmFtZUZvclZNVGFnKToKKyAgICAgICAgKFdURjo6cGFnZXNQZXJW
TVRhZyk6CisgICAgICAgICogd3RmL3VuaXgvTWVtb3J5UHJlc3N1cmVIYW5kbGVyVW5peC5jcHA6
CisgICAgICAgIChXVEY6Ok1lbW9yeVByZXNzdXJlSGFuZGxlcjo6dHJpZ2dlck1lbW9yeVByZXNz
dXJlRXZlbnQpOgorICAgICAgICAqIHd0Zi93aW4vTWVtb3J5UHJlc3N1cmVIYW5kbGVyV2luLmNw
cDoKKyAgICAgICAgKFdURjo6TWVtb3J5UHJlc3N1cmVIYW5kbGVyOjp3aW5kb3dzTWVhc3VyZW1l
bnRUaW1lckZpcmVkKToKKwogMjAyMS0xMS0xMCAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5j
b20+CiAKICAgICAgICAgW0NGXSBSZWR1Y2UgZHVwbGljYXRpb24gYW5kIHVubmVlZGVkIGJ1ZmZl
ciBhbGxvY2F0aW9ucyBhbmQgY29weWluZyBpbiBVUkwgY29kZSwgYWxzbyByZW1vdmUgdW51c2Vk
IG1ldGhvZHMgYW5kIGZ1bmN0aW9ucwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDk0MzhiMTRhOWJhZjZjZTQ2NTYy
NDQ1MTQ0YTE5MzU0YWY0MTgzNWYuLjNhNjVhNjc0MzVhYzlmZjI5Mjc3MWU1NDQ2MDIzNDRjMTg0
MDA2YTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMyBAQAorMjAyMS0xMS0xMCAgQmVuIE5oYW0g
IDxuaGFtQGFwcGxlLmNvbT4KKworICAgICAgICBMb2cgbWVtb3J5IHVzYWdlIG1ldGFkYXRhIHdo
ZW4gcHJvY2VzcyBoaXQgcHJvY2VzcyBsZXZlbCBsaW1pdHMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMjk3NgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlYkNvcmU6OmxvZ01lbW9yeVN0YXRpc3RpY3Mg
d2FzIGNoYW5nZWQgdG86CisgICAgICAgICAtIEVtaXQgVk0gdGFnIG5hbWVzIGFzIHB1YmxpYyBz
dHJpbmdzIHRvIHRoZSBsb2cuIFRoZXJlIGlzbid0IGFueXRoaW5nIHByaXZhY3kgc2Vuc2l0aXZl
CisgICAgICAgICAgIGFib3V0IG91ciAyNTUgZml4ZWQgVk0gdGFncywgYW5kIGVtaXR0aW5nIHRo
ZW0gdG8gdGhlIGxvZ3MgYXMgYXMgcHJpdmF0ZSBzdHJpbmcgKGFzIHdlCisgICAgICAgICAgIHdl
cmUgZG9pbmcgYmVmb3JlKSBtYWRlIHRob3NlIGxvZyBsaW5lcyB1c2VsZXNzLgorICAgICAgICAg
LSBVc2UgV2ViQ29yZTo6bWVtb3J5VXNhZ2VTdGF0aXN0aWNzIHRvIGdhdGhlciBtZW1vcnkgbWV0
YWRhdGEsIHNpbmNlIG90aGVyIFdlYkNvcmUKKyAgICAgICAgICAgY2FsbHNpdGVzIHdlcmUgYWxy
ZWFkeSB1c2luZyB0aGF0IGFuZCBpdCByZWR1Y2VzIGNvZGUgZHVwbGljYXRpb24uCisgICAgICAg
ICAtIE9ubHkgbG9nIEpTIG9iamVjdCB0eXBlIGNvdW50cyBvbiBpbnRlcm5hbCBPUyBidWlsZHMu
IFByZXZpb3VzbHkgd2UgYWxzbyBsb2dnZWQgdGhvc2UKKyAgICAgICAgICAgY291bnRzIG9uIHB1
YmxpYyBPUyBidWlsZHMsIGJ1dCB0aGF0IHdhcyB1c2VsZXNzIHNpbmNlIGFsbCB0aGUgY2xhc3Mg
bmFtZXMgd2VyZSByZWRhY3RlZAorICAgICAgICAgICBpbiB0aGUgbG9nLgorCisgICAgICAgICog
cGFnZS9NZW1vcnlSZWxlYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmxvZ01lbW9yeVN0YXRp
c3RpY3MpOgorICAgICAgICAoV2ViQ29yZTo6bG9nTWVtb3J5U3RhdGlzdGljc1JlYXNvbkRlc2Ny
aXB0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OnBhZ2VDb3VudCk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpsb2dNZW1vcnlTdGF0aXN0aWNzQXRUaW1lT2ZEZWF0aCk6IERlbGV0ZWQuCisg
ICAgICAgICogcGFnZS9NZW1vcnlSZWxlYXNlLmg6CisgICAgICAgICogcGFnZS9QZXJmb3JtYW5j
ZUxvZ2dpbmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGVyZm9ybWFuY2VMb2dnaW5nOjptZW1v
cnlVc2FnZVN0YXRpc3RpY3MpOgorICAgICAgICAoV2ViQ29yZTo6UGVyZm9ybWFuY2VMb2dnaW5n
OjpkaWRSZWFjaFBvaW50T2ZJbnRlcmVzdCk6CisgICAgICAgICogcGFnZS9QZXJmb3JtYW5jZUxv
Z2dpbmcuaDoKKyAgICAgICAgKiBwYWdlL2NvY29hL1BlcmZvcm1hbmNlTG9nZ2luZ0NvY29hLm1t
OgorICAgICAgICAoV2ViQ29yZTo6UGVyZm9ybWFuY2VMb2dnaW5nOjpnZXRQbGF0Zm9ybU1lbW9y
eVVzYWdlU3RhdGlzdGljcyk6CisKIDIwMjEtMTEtMTAgIEFudG9pbmUgUXVpbnQgIDxncmFvdXRz
QHdlYmtpdC5vcmc+CiAKICAgICAgICAgVGhlIGNzc1RleHQgcHJvcGVydHkgZm9yIGEgY29tcHV0
ZWQgc3R5bGUgc2hvdWxkIHJldHVybiBhbiBlbXB0eSBzdHJpbmcKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggYTUzMTcx
MzI4MTQ1NGIwMDRiMmU5NDNhNjJmNWFhNWQyMzZlYzljOC4uZGUwNTM1NDdhY2JiMzMwYWM4ZWI2
YzM2YmRiNmYxNGYwN2RjMDdhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNCBAQAorMjAyMS0xMS0x
MCAgQmVuIE5oYW0gIDxuaGFtQGFwcGxlLmNvbT4KKworICAgICAgICBMb2cgbWVtb3J5IHVzYWdl
IG1ldGFkYXRhIHdoZW4gcHJvY2VzcyBoaXQgcHJvY2VzcyBsZXZlbCBsaW1pdHMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMjk3NgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIGNhbGxiYWNrcyB0
byBsb2cgbWVtb3J5IHVzYWdlIG1ldGFkYXRhIHRoZSBmaXJzdCB0aW1lIGEgcHJvY2VzcyBoaXRz
IHRoZXNlIG1pbGVzdG9uZXM6CisKKyAgICAgICAgIC0gZXhjZWVkZWQgaW5hY3RpdmUgbWVtb3J5
IGxpbWl0IHdoaWxlIGFjdGl2ZSAob24gTWFjKQorICAgICAgICAgLSBleGNlZWRlZCB3YXJuaW5n
IHByb2Nlc3MgbGltaXQgdGhyZXNob2xkIChvbiBvdGhlciBub24tTWFjIEFwcGxlIHBsYXRmb3Jt
cykKKyAgICAgICAgIC0gZXhjZWVkZWQgY3JpdGljYWwgcHJvY2VzcyBsaW1pdCB0aHJlc2hvbGQg
KG9uIG90aGVyIG5vbi1NYWMgQXBwbGUgcGxhdGZvcm1zKQorCisgICAgICAgIFRoZSByZWFzb24g
Zm9yIHRoaXMgaXMgd2UgIHJlY2VpdmUgYSBsYXJnZSBudW1iZXIgb2Ygb3V0IG9mIG1lbW9yeSBy
ZXBvcnRzIHdpdGggdmVyeSBsaXR0bGUKKyAgICAgICAgaW5mbyBpbiB0aGUgbG9ncy4gV2Ugd2Fu
dCB0byBsb2cgbW9yZSBtZXRhZGF0YSBhYm91dCBtZW1vcnkgdXNhZ2UgKHNpbWlsYXIgdG8gd2hh
dCB3ZSBkbyBvbgorICAgICAgICBNYWMgaW4gYFdlYkNvcmU6OmxvZ01lbW9yeVN0YXRpc3RpY3NB
dFRpbWVPZkRlYXRoYCkgdG8gaGVscCB1cyBkZWJ1ZyB0aG9zZSByZXBvcnRzLgorCisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vz
czo6aW5pdGlhbGl6ZVdlYlByb2Nlc3MpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vz
cy5oOgorCiAyMDIxLTExLTEwICBQZXIgQXJuZSBWb2xsYW4gPHB2b2xsYW5AYXBwbGUuY29tPgog
CiAgICAgICAgIFttYWNPU11bR1BVUF0gUmVtb3ZlIGFjY2VzcyB0byBzeXNjdGwgcHJvcGVydGll
cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmNwcCBi
L1NvdXJjZS9XVEYvd3RmL01lbW9yeVByZXNzdXJlSGFuZGxlci5jcHAKaW5kZXggYzc1YTQzYmM1
YmVhOWFjZDAyYTM3YjU2N2E4OWZiNWJiMzg3MTM3YS4uNGIwNTUyZTBiZmZjMDNkNzFhYTM0ZmJk
YTE5MjMxNmU0ZjIxZWFlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvTWVtb3J5UHJlc3N1
cmVIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9NZW1vcnlQcmVzc3VyZUhhbmRsZXIu
Y3BwCkBAIC0yNjQsMTggKzI2NCwxOSBAQCB2b2lkIE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6cmVs
ZWFzZU1lbW9yeShDcml0aWNhbCBjcml0aWNhbCwgU3luY2hyb25vdXMgc3luY2hybwogICAgIHBs
YXRmb3JtUmVsZWFzZU1lbW9yeShjcml0aWNhbCk7CiB9CiAKLXZvaWQgTWVtb3J5UHJlc3N1cmVI
YW5kbGVyOjpzZXRVbmRlck1lbW9yeVByZXNzdXJlKGJvb2wgdW5kZXJNZW1vcnlQcmVzc3VyZSkK
K3ZvaWQgTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpzZXRNZW1vcnlQcmVzc3VyZVN0YXR1cyhNZW1v
cnlQcmVzc3VyZVN0YXR1cyBtZW1vcnlQcmVzc3VyZVN0YXR1cykKIHsKLSAgICBpZiAobV91bmRl
ck1lbW9yeVByZXNzdXJlID09IHVuZGVyTWVtb3J5UHJlc3N1cmUpCisgICAgaWYgKG1fbWVtb3J5
UHJlc3N1cmVTdGF0dXMgPT0gbWVtb3J5UHJlc3N1cmVTdGF0dXMpCiAgICAgICAgIHJldHVybjsK
LSAgICBtX3VuZGVyTWVtb3J5UHJlc3N1cmUgPSB1bmRlck1lbW9yeVByZXNzdXJlOworCisgICAg
bV9tZW1vcnlQcmVzc3VyZVN0YXR1cyA9IG1lbW9yeVByZXNzdXJlU3RhdHVzOwogICAgIG1lbW9y
eVByZXNzdXJlU3RhdHVzQ2hhbmdlZCgpOwogfQogCiB2b2lkIE1lbW9yeVByZXNzdXJlSGFuZGxl
cjo6bWVtb3J5UHJlc3N1cmVTdGF0dXNDaGFuZ2VkKCkKIHsKICAgICBpZiAobV9tZW1vcnlQcmVz
c3VyZVN0YXR1c0NoYW5nZWRDYWxsYmFjaykKLSAgICAgICAgbV9tZW1vcnlQcmVzc3VyZVN0YXR1
c0NoYW5nZWRDYWxsYmFjayhpc1VuZGVyTWVtb3J5UHJlc3N1cmUoKSk7CisgICAgICAgIG1fbWVt
b3J5UHJlc3N1cmVTdGF0dXNDaGFuZ2VkQ2FsbGJhY2sobV9tZW1vcnlQcmVzc3VyZVN0YXR1cyk7
CiB9CiAKIHZvaWQgTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpSZWxpZWZMb2dnZXI6OmxvZ01lbW9y
eVVzYWdlQ2hhbmdlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL01lbW9yeVByZXNzdXJl
SGFuZGxlci5oIGIvU291cmNlL1dURi93dGYvTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmgKaW5kZXgg
MGY1YjYyNjMwMGQ4ZTllZThmMGQ3ODU0OTQ1MTc5OGVlMmQ5MGFmMy4uMjdlMjIwOWZiOWE3M2Zk
ODBmYTA3NDY1ZDVhNTJlNTYyODBlZWY2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvTWVt
b3J5UHJlc3N1cmVIYW5kbGVyLmgKKysrIGIvU291cmNlL1dURi93dGYvTWVtb3J5UHJlc3N1cmVI
YW5kbGVyLmgKQEAgLTQzLDYgKzQzLDE4IEBACiAKIG5hbWVzcGFjZSBXVEYgewogCitlbnVtIGNs
YXNzIE1lbW9yeVByZXNzdXJlU3RhdHVzIDogdWludDhfdCB7CisgICAgTm9ybWFsLAorCisgICAg
Ly8gVGhlIGVudGlyZSBzeXN0ZW0gaXMgYXQgYSB3YXJuaW5nIG9yIGNyaXRpY2FsIHByZXNzdXJl
IGxldmVsLgorICAgIFN5c3RlbVdhcm5pbmcsCisgICAgU3lzdGVtQ3JpdGljYWwsCisKKyAgICAv
LyBUaGlzIHNwZWNpZmljIHByb2Nlc3MgY3Jvc3NlZCBhIHdhcm5pbmcgb3IgY3JpdGljYWwgbWVt
b3J5IHVzYWdlIGxpbWl0LgorICAgIFByb2Nlc3NMaW1pdFdhcm5pbmcsCisgICAgUHJvY2Vzc0xp
bWl0Q3JpdGljYWwKK307CisKIGVudW0gY2xhc3MgTWVtb3J5VXNhZ2VQb2xpY3kgOiB1aW50OF90
IHsKICAgICBVbnJlc3RyaWN0ZWQsIC8vIEFsbG9jYXRlIGFzIG11Y2ggYXMgeW91IHdhbnQKICAg
ICBDb25zZXJ2YXRpdmUsIC8vIE1heWJlIHlvdSBkb24ndCBjYWNoZSBldmVyeSBzaW5nbGUgdGhp
bmcKQEAgLTc0LDcgKzg2LDcgQEAgcHVibGljOgogI2VuZGlmCiAKICAgICB2b2lkIHNldE1lbW9y
eUtpbGxDYWxsYmFjayhXVEY6OkZ1bmN0aW9uPHZvaWQoKT4mJiBmdW5jdGlvbikgeyBtX21lbW9y
eUtpbGxDYWxsYmFjayA9IFdURk1vdmUoZnVuY3Rpb24pOyB9Ci0gICAgdm9pZCBzZXRNZW1vcnlQ
cmVzc3VyZVN0YXR1c0NoYW5nZWRDYWxsYmFjayhXVEY6OkZ1bmN0aW9uPHZvaWQoYm9vbCk+JiYg
ZnVuY3Rpb24pIHsgbV9tZW1vcnlQcmVzc3VyZVN0YXR1c0NoYW5nZWRDYWxsYmFjayA9IFdURk1v
dmUoZnVuY3Rpb24pOyB9CisgICAgdm9pZCBzZXRNZW1vcnlQcmVzc3VyZVN0YXR1c0NoYW5nZWRD
YWxsYmFjayhXVEY6OkZ1bmN0aW9uPHZvaWQoTWVtb3J5UHJlc3N1cmVTdGF0dXMpPiYmIGZ1bmN0
aW9uKSB7IG1fbWVtb3J5UHJlc3N1cmVTdGF0dXNDaGFuZ2VkQ2FsbGJhY2sgPSBXVEZNb3ZlKGZ1
bmN0aW9uKTsgfQogICAgIHZvaWQgc2V0RGlkRXhjZWVkSW5hY3RpdmVMaW1pdFdoaWxlQWN0aXZl
Q2FsbGJhY2soV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYgZnVuY3Rpb24pIHsgbV9kaWRFeGNlZWRJ
bmFjdGl2ZUxpbWl0V2hpbGVBY3RpdmVDYWxsYmFjayA9IFdURk1vdmUoZnVuY3Rpb24pOyB9CiAK
ICAgICB2b2lkIHNldExvd01lbW9yeUhhbmRsZXIoTG93TWVtb3J5SGFuZGxlciYmIGhhbmRsZXIp
CkBAIC04NCwxNCArOTYsMTYgQEAgcHVibGljOgogCiAgICAgYm9vbCBpc1VuZGVyTWVtb3J5UHJl
c3N1cmUoKSBjb25zdAogICAgIHsKLSAgICAgICAgcmV0dXJuIG1fdW5kZXJNZW1vcnlQcmVzc3Vy
ZQorICAgICAgICBhdXRvIG1lbW9yeVByZXNzdXJlU3RhdHVzID0gbV9tZW1vcnlQcmVzc3VyZVN0
YXR1cy5sb2FkKCk7CisgICAgICAgIHJldHVybiBtZW1vcnlQcmVzc3VyZVN0YXR1cyA9PSBNZW1v
cnlQcmVzc3VyZVN0YXR1czo6U3lzdGVtQ3JpdGljYWwKKyAgICAgICAgICAgIHx8IG1lbW9yeVBy
ZXNzdXJlU3RhdHVzID09IE1lbW9yeVByZXNzdXJlU3RhdHVzOjpQcm9jZXNzTGltaXRDcml0aWNh
bAogI2lmIFBMQVRGT1JNKE1BQykKICAgICAgICAgICAgIHx8IG1fbWVtb3J5VXNhZ2VQb2xpY3kg
Pj0gTWVtb3J5VXNhZ2VQb2xpY3k6OlN0cmljdAogI2VuZGlmCiAgICAgICAgICAgICB8fCBtX2lz
U2ltdWxhdGluZ01lbW9yeVByZXNzdXJlOwogICAgIH0KICAgICBib29sIGlzU2ltdWxhdGluZ01l
bW9yeVByZXNzdXJlKCkgY29uc3QgeyByZXR1cm4gbV9pc1NpbXVsYXRpbmdNZW1vcnlQcmVzc3Vy
ZTsgfQotICAgIHZvaWQgc2V0VW5kZXJNZW1vcnlQcmVzc3VyZShib29sKTsKKyAgICB2b2lkIHNl
dE1lbW9yeVByZXNzdXJlU3RhdHVzKE1lbW9yeVByZXNzdXJlU3RhdHVzKTsKIAogICAgIFdURl9F
WFBPUlRfUFJJVkFURSBNZW1vcnlVc2FnZVBvbGljeSBjdXJyZW50TWVtb3J5VXNhZ2VQb2xpY3ko
KTsKIApAQCAtMjM5LDcgKzI1Myw3IEBAIHByaXZhdGU6CiAKICAgICB1bnNpZ25lZCBtX3BhZ2VD
b3VudCB7IDAgfTsKIAotICAgIHN0ZDo6YXRvbWljPGJvb2w+IG1fdW5kZXJNZW1vcnlQcmVzc3Vy
ZSB7IGZhbHNlIH07CisgICAgc3RkOjphdG9taWM8TWVtb3J5UHJlc3N1cmVTdGF0dXM+IG1fbWVt
b3J5UHJlc3N1cmVTdGF0dXMgeyBNZW1vcnlQcmVzc3VyZVN0YXR1czo6Tm9ybWFsIH07CiAgICAg
Ym9vbCBtX2luc3RhbGxlZCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2lzU2ltdWxhdGluZ01lbW9y
eVByZXNzdXJlIHsgZmFsc2UgfTsKICAgICBib29sIG1fc2hvdWxkTG9nTWVtb3J5TWVtb3J5UHJl
c3N1cmVFdmVudHMgeyB0cnVlIH07CkBAIC0yNTEsNyArMjY1LDcgQEAgcHJpdmF0ZToKIAogICAg
IHN0ZDo6dW5pcXVlX3B0cjxSdW5Mb29wOjpUaW1lcjxNZW1vcnlQcmVzc3VyZUhhbmRsZXI+PiBt
X21lYXN1cmVtZW50VGltZXI7CiAgICAgV1RGOjpGdW5jdGlvbjx2b2lkKCk+IG1fbWVtb3J5S2ls
bENhbGxiYWNrOwotICAgIFdURjo6RnVuY3Rpb248dm9pZChib29sKT4gbV9tZW1vcnlQcmVzc3Vy
ZVN0YXR1c0NoYW5nZWRDYWxsYmFjazsKKyAgICBXVEY6OkZ1bmN0aW9uPHZvaWQoTWVtb3J5UHJl
c3N1cmVTdGF0dXMpPiBtX21lbW9yeVByZXNzdXJlU3RhdHVzQ2hhbmdlZENhbGxiYWNrOwogICAg
IFdURjo6RnVuY3Rpb248dm9pZCgpPiBtX2RpZEV4Y2VlZEluYWN0aXZlTGltaXRXaGlsZUFjdGl2
ZUNhbGxiYWNrOwogICAgIExvd01lbW9yeUhhbmRsZXIgbV9sb3dNZW1vcnlIYW5kbGVyOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9SZXNvdXJjZVVzYWdlLmggYi9Tb3VyY2UvV1RGL3d0
Zi9SZXNvdXJjZVVzYWdlLmgKaW5kZXggMmE0MjQ3MTMxNTE3NDM5NzdlZTRjMGUzYjFlZGQ1NDBm
YWM4MDdjYi4uODNkMmE2ZGI5ODUwNTk4MDhlNTg5ZjE4NmZkZWIwOTgyZGY1MTU4NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dURi93dGYvUmVzb3VyY2VVc2FnZS5oCisrKyBiL1NvdXJjZS9XVEYvd3Rm
L1Jlc291cmNlVXNhZ2UuaApAQCAtMzMsNiArMzMsNyBAQCBuYW1lc3BhY2UgV1RGIHsKIAogc3Ry
dWN0IFRhZ0luZm8gewogICAgIFdURl9NQUtFX1NUUlVDVF9GQVNUX0FMTE9DQVRFRDsKKyAgICBz
aXplX3QgcmVnaW9uQ291bnQgeyAwIH07CiAgICAgc2l6ZV90IGRpcnR5IHsgMCB9OwogICAgIHNp
emVfdCByZWNsYWltYWJsZSB7IDAgfTsKICAgICBzaXplX3QgcmVzZXJ2ZWQgeyAwIH07CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9jb2NvYS9NZW1vcnlQcmVzc3VyZUhhbmRsZXJDb2NvYS5t
bSBiL1NvdXJjZS9XVEYvd3RmL2NvY29hL01lbW9yeVByZXNzdXJlSGFuZGxlckNvY29hLm1tCmlu
ZGV4IDk2MjA1ZDBmMjg2MGQ0MjgxYzI3MjliMzU4NzA2MDZlNDNhNTRhNTguLjM5Y2Y3Yzg2ZjY4
NTgyN2NjNTk5ZWE1ZTU2ZmRjYWJiYTI2OTI2MjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3Rm
L2NvY29hL01lbW9yeVByZXNzdXJlSGFuZGxlckNvY29hLm1tCisrKyBiL1NvdXJjZS9XVEYvd3Rm
L2NvY29hL01lbW9yeVByZXNzdXJlSGFuZGxlckNvY29hLm1tCkBAIC03OCwyMSArNzgsMjMgQEAg
dm9pZCBNZW1vcnlQcmVzc3VyZUhhbmRsZXI6Omluc3RhbGwoKQogICAgICAgICAgICAgc3dpdGNo
IChzdGF0dXMpIHsKICAgICAgICAgICAgIC8vIFZNIHByZXNzdXJlIGV2ZW50cy4KICAgICAgICAg
ICAgIGNhc2UgRElTUEFUQ0hfTUVNT1JZUFJFU1NVUkVfTk9STUFMOgotICAgICAgICAgICAgICAg
IHNldFVuZGVyTWVtb3J5UHJlc3N1cmUoZmFsc2UpOworICAgICAgICAgICAgICAgIHNldE1lbW9y
eVByZXNzdXJlU3RhdHVzKE1lbW9yeVByZXNzdXJlU3RhdHVzOjpOb3JtYWwpOwogICAgICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICAgICAgY2FzZSBESVNQQVRDSF9NRU1PUllQUkVTU1VSRV9X
QVJOOgotICAgICAgICAgICAgICAgIHNldFVuZGVyTWVtb3J5UHJlc3N1cmUoZmFsc2UpOworICAg
ICAgICAgICAgICAgIHNldE1lbW9yeVByZXNzdXJlU3RhdHVzKE1lbW9yeVByZXNzdXJlU3RhdHVz
OjpTeXN0ZW1XYXJuaW5nKTsKICAgICAgICAgICAgICAgICByZXNwb25kVG9NZW1vcnlQcmVzc3Vy
ZShDcml0aWNhbDo6Tm8pOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgY2Fz
ZSBESVNQQVRDSF9NRU1PUllQUkVTU1VSRV9DUklUSUNBTDoKLSAgICAgICAgICAgICAgICBzZXRV
bmRlck1lbW9yeVByZXNzdXJlKHRydWUpOworICAgICAgICAgICAgICAgIHNldE1lbW9yeVByZXNz
dXJlU3RhdHVzKE1lbW9yeVByZXNzdXJlU3RhdHVzOjpTeXN0ZW1Dcml0aWNhbCk7CiAgICAgICAg
ICAgICAgICAgcmVzcG9uZFRvTWVtb3J5UHJlc3N1cmUoQ3JpdGljYWw6Olllcyk7CiAgICAgICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAvLyBQcm9jZXNzIG1lbW9yeSBsaW1pdCBldmVu
dHMuCiAgICAgICAgICAgICBjYXNlIERJU1BBVENIX01FTU9SWVBSRVNTVVJFX1BST0NfTElNSVRf
V0FSTjoKKyAgICAgICAgICAgICAgICBzZXRNZW1vcnlQcmVzc3VyZVN0YXR1cyhNZW1vcnlQcmVz
c3VyZVN0YXR1czo6UHJvY2Vzc0xpbWl0V2FybmluZyk7CiAgICAgICAgICAgICAgICAgcmVzcG9u
ZFRvTWVtb3J5UHJlc3N1cmUoQ3JpdGljYWw6Ok5vKTsKICAgICAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgICAgIGNhc2UgRElTUEFUQ0hfTUVNT1JZUFJFU1NVUkVfUFJPQ19MSU1JVF9DUklU
SUNBTDoKKyAgICAgICAgICAgICAgICBzZXRNZW1vcnlQcmVzc3VyZVN0YXR1cyhNZW1vcnlQcmVz
c3VyZVN0YXR1czo6UHJvY2Vzc0xpbWl0Q3JpdGljYWwpOwogICAgICAgICAgICAgICAgIHJlc3Bv
bmRUb01lbW9yeVByZXNzdXJlKENyaXRpY2FsOjpZZXMpOwogICAgICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvY29jb2EvUmVzb3Vy
Y2VVc2FnZUNvY29hLmNwcCBiL1NvdXJjZS9XVEYvd3RmL2NvY29hL1Jlc291cmNlVXNhZ2VDb2Nv
YS5jcHAKaW5kZXggZGZjYTA3MmI0YzRhY2VlMDMyMTNiNjk5MDAxMzc4NjFhM2IzNDlkZC4uN2M4
ZjlhMjIyOTQzMGFlNTE3MTAxODcxNzNlNWYwODFiMTJmMWY1YSAxMDA2NDQKLS0tIGEvU291cmNl
L1dURi93dGYvY29jb2EvUmVzb3VyY2VVc2FnZUNvY29hLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0
Zi9jb2NvYS9SZXNvdXJjZVVzYWdlQ29jb2EuY3BwCkBAIC03MiwyOCArNzIsMzIgQEAgdm9pZCBs
b2dGb290cHJpbnRDb21wYXJpc29uKGNvbnN0IHN0ZDo6YXJyYXk8VGFnSW5mbywgMjU2PiYgYmVm
b3JlLCBjb25zdCBzdGQ6OmEKIGNvbnN0IGNoYXIqIGRpc3BsYXlOYW1lRm9yVk1UYWcodW5zaWdu
ZWQgdGFnKQogewogICAgIHN3aXRjaCAodGFnKSB7Ci0gICAgY2FzZSBWTV9NRU1PUllfSU9LSVQ6
IHJldHVybiAiSU9LaXQiOwotICAgIGNhc2UgVk1fTUVNT1JZX0xBWUVSS0lUOiByZXR1cm4gIkNv
cmVBbmltYXRpb24iOwotICAgIGNhc2UgVk1fTUVNT1JZX0lNQUdFSU86IHJldHVybiAiSW1hZ2VJ
TyI7CiAgICAgY2FzZSBWTV9NRU1PUllfQ0dJTUFHRTogcmV0dXJuICJDRyBpbWFnZSI7CisgICAg
Y2FzZSBWTV9NRU1PUllfQ09SRUdSQVBISUNTX0RBVEE6IHJldHVybiAiQ0cgcmFzdGVyIGRhdGEi
OworICAgIGNhc2UgVk1fTUVNT1JZX0NPUkVTRVJWSUNFUzogcmV0dXJuICJDb3JlU2VydmljZXMi
OworICAgIGNhc2UgVk1fTUVNT1JZX0RZTElCOiByZXR1cm4gImR5bGliIjsKKyAgICBjYXNlIFZN
X01FTU9SWV9GT1VOREFUSU9OOiByZXR1cm4gIkZvdW5kYXRpb24iOworICAgIGNhc2UgVk1fTUVN
T1JZX0lNQUdFSU86IHJldHVybiAiSW1hZ2VJTyI7CisgICAgY2FzZSBWTV9NRU1PUllfSU9BQ0NF
TEVSQVRPUjogcmV0dXJuICJJT0FjY2VsZXJhdG9yIjsKKyAgICBjYXNlIFZNX01FTU9SWV9JT1NV
UkZBQ0U6IHJldHVybiAiSU9TdXJmYWNlIjsKKyAgICBjYXNlIFZNX01FTU9SWV9JT0tJVDogcmV0
dXJuICJJT0tpdCI7CiAgICAgY2FzZSBWTV9NRU1PUllfSkFWQVNDUklQVF9DT1JFOiByZXR1cm4g
IkdpZ2FjYWdlIjsKICAgICBjYXNlIFZNX01FTU9SWV9KQVZBU0NSSVBUX0pJVF9FWEVDVVRBQkxF
X0FMTE9DQVRPUjogcmV0dXJuICJKU0MgSklUIjsKICAgICBjYXNlIFZNX01FTU9SWV9KQVZBU0NS
SVBUX0pJVF9SRUdJU1RFUl9GSUxFOiByZXR1cm4gIklzb0hlYXAiOworICAgIGNhc2UgVk1fTUVN
T1JZX0xBWUVSS0lUOiByZXR1cm4gIkNvcmVBbmltYXRpb24iOworICAgIGNhc2UgVk1fTUVNT1JZ
X0xJQkRJU1BBVENIOiByZXR1cm4gImxpYmRpc3BhdGNoIjsKICAgICBjYXNlIFZNX01FTU9SWV9N
QUxMT0M6IHJldHVybiAibWFsbG9jIjsKICAgICBjYXNlIFZNX01FTU9SWV9NQUxMT0NfSFVHRTog
cmV0dXJuICJtYWxsb2MgKGh1Z2UpIjsKICAgICBjYXNlIFZNX01FTU9SWV9NQUxMT0NfTEFSR0U6
IHJldHVybiAibWFsbG9jIChsYXJnZSkiOworICAgIGNhc2UgVk1fTUVNT1JZX01BTExPQ19NRURJ
VU06IHJldHVybiAibWFsbG9jIChtZWRpdW0pIjsKKyAgICBjYXNlIFZNX01FTU9SWV9NQUxMT0Nf
TkFOTzogcmV0dXJuICJtYWxsb2MgKG5hbm8pIjsKICAgICBjYXNlIFZNX01FTU9SWV9NQUxMT0Nf
U01BTEw6IHJldHVybiAibWFsbG9jIChzbWFsbCkiOwogICAgIGNhc2UgVk1fTUVNT1JZX01BTExP
Q19USU5ZOiByZXR1cm4gIm1hbGxvYyAodGlueSkiOwotICAgIGNhc2UgVk1fTUVNT1JZX01BTExP
Q19OQU5POiByZXR1cm4gIm1hbGxvYyAobmFubykiOwotICAgIGNhc2UgVk1fTUVNT1JZX1RDTUFM
TE9DOiByZXR1cm4gImJtYWxsb2MiOwotICAgIGNhc2UgVk1fTUVNT1JZX0ZPVU5EQVRJT046IHJl
dHVybiAiRm91bmRhdGlvbiI7Ci0gICAgY2FzZSBWTV9NRU1PUllfU1RBQ0s6IHJldHVybiAiU3Rh
Y2siOworICAgIGNhc2UgVk1fTUVNT1JZX09TX0FMTE9DX09OQ0U6IHJldHVybiAib3NfYWxsb2Nf
b25jZSI7CiAgICAgY2FzZSBWTV9NRU1PUllfU1FMSVRFOiByZXR1cm4gIlNRTGl0ZSI7CisgICAg
Y2FzZSBWTV9NRU1PUllfU1RBQ0s6IHJldHVybiAiU3RhY2siOworICAgIGNhc2UgVk1fTUVNT1JZ
X1RDTUFMTE9DOiByZXR1cm4gImJtYWxsb2MiOwogICAgIGNhc2UgVk1fTUVNT1JZX1VOU0hBUkVE
X1BNQVA6IHJldHVybiAicG1hcCAodW5zaGFyZWQpIjsKLSAgICBjYXNlIFZNX01FTU9SWV9EWUxJ
QjogcmV0dXJuICJkeWxpYiI7Ci0gICAgY2FzZSBWTV9NRU1PUllfQ09SRVNFUlZJQ0VTOiByZXR1
cm4gIkNvcmVTZXJ2aWNlcyI7Ci0gICAgY2FzZSBWTV9NRU1PUllfT1NfQUxMT0NfT05DRTogcmV0
dXJuICJvc19hbGxvY19vbmNlIjsKLSAgICBjYXNlIFZNX01FTU9SWV9MSUJESVNQQVRDSDogcmV0
dXJuICJsaWJkaXNwYXRjaCI7CiAgICAgZGVmYXVsdDogcmV0dXJuIG51bGxwdHI7CiAgICAgfQog
fQpAQCAtMTE1LDYgKzExOSw4IEBAIHN0ZDo6YXJyYXk8VGFnSW5mbywgMjU2PiBwYWdlc1BlclZN
VGFnKCkKICAgICAgICAgaWYgKGtyICE9IEtFUk5fU1VDQ0VTUykKICAgICAgICAgICAgIGJyZWFr
OwogCisgICAgICAgIHRhZ3NbaW5mby51c2VyX3RhZ10ucmVnaW9uQ291bnQrKzsKKwogICAgICAg
ICB0YWdzW2luZm8udXNlcl90YWddLnJlc2VydmVkICs9IHNpemUgLyB2bVBhZ2VTaXplKCk7CiAK
ICAgICAgICAgaWYgKHB1cmdlYWJsZVN0YXRlID09IFZNX1BVUkdBQkxFX1ZPTEFUSUxFKSB7CkBA
IC0xMjksMTAgKzEzNSwxMiBAQCBzdGQ6OmFycmF5PFRhZ0luZm8sIDI1Nj4gcGFnZXNQZXJWTVRh
ZygpCiAKICAgICAgICAgYm9vbCBhbm9ueW1vdXMgPSAhaW5mby5leHRlcm5hbF9wYWdlcjsKICAg
ICAgICAgaWYgKGFub255bW91cykgewotICAgICAgICAgICAgdGFnc1tpbmZvLnVzZXJfdGFnXS5k
aXJ0eSArPSBpbmZvLnBhZ2VzX3Jlc2lkZW50IC0gaW5mby5wYWdlc19yZXVzYWJsZTsKKyAgICAg
ICAgICAgIC8vIENvdW50IGFsbCByZXNpZGVudCBtYWxsb2MgcGFnZXMgYXMgZGlydHkuCisgICAg
ICAgICAgICBzaXplX3QgZGlydHlQYWdlcyA9IGluZm8ucGFnZXNfcmVzaWRlbnQgLSBpbmZvLnBh
Z2VzX3JldXNhYmxlOworICAgICAgICAgICAgdGFnc1tpbmZvLnVzZXJfdGFnXS5kaXJ0eSArPSBk
aXJ0eVBhZ2VzICsgaW5mby5wYWdlc19zd2FwcGVkX291dDsKICAgICAgICAgICAgIHRhZ3NbaW5m
by51c2VyX3RhZ10ucmVjbGFpbWFibGUgKz0gaW5mby5wYWdlc19yZXVzYWJsZTsKICAgICAgICAg
fSBlbHNlCi0gICAgICAgICAgICB0YWdzW2luZm8udXNlcl90YWddLmRpcnR5ICs9IGluZm8ucGFn
ZXNfZGlydGllZDsKKyAgICAgICAgICAgIHRhZ3NbaW5mby51c2VyX3RhZ10uZGlydHkgKz0gKGlu
Zm8ucGFnZXNfZGlydGllZCArIGluZm8ucGFnZXNfc3dhcHBlZF9vdXQpOwogICAgIH0KIAogICAg
IHJldHVybiB0YWdzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdW5peC9NZW1vcnlQcmVz
c3VyZUhhbmRsZXJVbml4LmNwcCBiL1NvdXJjZS9XVEYvd3RmL3VuaXgvTWVtb3J5UHJlc3N1cmVI
YW5kbGVyVW5peC5jcHAKaW5kZXggOGM1MGU0Y2UwNmNlMjFiOTVhZmYyODkxZjllZDkxYmI5Njc0
MjhmOC4uZTYwOWM5MTljMTI5NDAyMGI0ZDM2ZDk0ZGFjNzJiNTBmN2Y3MTI2YiAxMDA2NDQKLS0t
IGEvU291cmNlL1dURi93dGYvdW5peC9NZW1vcnlQcmVzc3VyZUhhbmRsZXJVbml4LmNwcAorKysg
Yi9Tb3VyY2UvV1RGL3d0Zi91bml4L01lbW9yeVByZXNzdXJlSGFuZGxlclVuaXguY3BwCkBAIC02
Niw3ICs2Niw3IEBAIHZvaWQgTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjp0cmlnZ2VyTWVtb3J5UHJl
c3N1cmVFdmVudChib29sIGlzQ3JpdGljYWwpCiAgICAgaWYgKFJlbGllZkxvZ2dlcjo6bG9nZ2lu
Z0VuYWJsZWQoKSkKICAgICAgICAgTE9HKE1lbW9yeVByZXNzdXJlLCAiR290IG1lbW9yeSBwcmVz
c3VyZSBub3RpZmljYXRpb24gKCVzKSIsIGlzQ3JpdGljYWwgPyAiY3JpdGljYWwiIDogIm5vbi1j
cml0aWNhbCIpOwogCi0gICAgc2V0VW5kZXJNZW1vcnlQcmVzc3VyZSh0cnVlKTsKKyAgICBzZXRN
ZW1vcnlQcmVzc3VyZVN0YXR1cyhNZW1vcnlQcmVzc3VyZTo6U3lzdGVtQ3JpdGljYWwpOwogCiAg
ICAgZW5zdXJlT25NYWluVGhyZWFkKFt0aGlzLCBpc0NyaXRpY2FsXSB7CiAgICAgICAgIHJlc3Bv
bmRUb01lbW9yeVByZXNzdXJlKGlzQ3JpdGljYWwgPyBDcml0aWNhbDo6WWVzIDogQ3JpdGljYWw6
Ok5vKTsKQEAgLTc1LDcgKzc1LDcgQEAgdm9pZCBNZW1vcnlQcmVzc3VyZUhhbmRsZXI6OnRyaWdn
ZXJNZW1vcnlQcmVzc3VyZUV2ZW50KGJvb2wgaXNDcml0aWNhbCkKICAgICBpZiAoUmVsaWVmTG9n
Z2VyOjpsb2dnaW5nRW5hYmxlZCgpICYmIGlzVW5kZXJNZW1vcnlQcmVzc3VyZSgpKQogICAgICAg
ICBMT0coTWVtb3J5UHJlc3N1cmUsICJTeXN0ZW0gaXMgbm8gbG9uZ2VyIHVuZGVyIG1lbW9yeSBw
cmVzc3VyZS4iKTsKIAotICAgIHNldFVuZGVyTWVtb3J5UHJlc3N1cmUoZmFsc2UpOworICAgIHNl
dE1lbW9yeVByZXNzdXJlU3RhdHVzKE1lbW9yeVByZXNzdXJlOjpOb3JtYWwpOwogfQogCiB2b2lk
IE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6aW5zdGFsbCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RG
L3d0Zi93aW4vTWVtb3J5UHJlc3N1cmVIYW5kbGVyV2luLmNwcCBiL1NvdXJjZS9XVEYvd3RmL3dp
bi9NZW1vcnlQcmVzc3VyZUhhbmRsZXJXaW4uY3BwCmluZGV4IGU2YmViZGMxY2EyMDI2MTllYTRm
ZDc2NDI5YzljZTNmZTUwYWM4YjAuLjhlZmYxNmUxOTgyN2I1NDIzZGE2ZGZmM2VhM2E1MDdiNWQy
MzY2ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3dpbi9NZW1vcnlQcmVzc3VyZUhhbmRs
ZXJXaW4uY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL3dpbi9NZW1vcnlQcmVzc3VyZUhhbmRsZXJX
aW4uY3BwCkBAIC0zOCwxMiArMzgsMTIgQEAgdm9pZCBNZW1vcnlQcmVzc3VyZUhhbmRsZXI6OnBs
YXRmb3JtSW5pdGlhbGl6ZSgpCiAKIHZvaWQgTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjp3aW5kb3dz
TWVhc3VyZW1lbnRUaW1lckZpcmVkKCkKIHsKLSAgICBzZXRVbmRlck1lbW9yeVByZXNzdXJlKGZh
bHNlKTsKKyAgICBzZXRNZW1vcnlQcmVzc3VyZVN0YXR1cyhNZW1vcnlQcmVzc3VyZTo6Tm9ybWFs
KTsKIAogICAgIEJPT0wgbWVtb3J5TG93OwogCiAgICAgaWYgKFF1ZXJ5TWVtb3J5UmVzb3VyY2VO
b3RpZmljYXRpb24obV9sb3dNZW1vcnlIYW5kbGUuZ2V0KCksICZtZW1vcnlMb3cpICYmIG1lbW9y
eUxvdykgewotICAgICAgICBzZXRVbmRlck1lbW9yeVByZXNzdXJlKHRydWUpOworICAgICAgICBz
ZXRNZW1vcnlQcmVzc3VyZVN0YXR1cyhNZW1vcnlQcmVzc3VyZTo6U3lzdGVtQ3JpdGljYWwpOwog
ICAgICAgICByZWxlYXNlTWVtb3J5KENyaXRpY2FsOjpZZXMpOwogICAgICAgICByZXR1cm47CiAg
ICAgfQpAQCAtNjAsNyArNjAsNyBAQCB2b2lkIE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6d2luZG93
c01lYXN1cmVtZW50VGltZXJGaXJlZCgpCiAgICAgY29uc3QgaW50IG1heE1lbW9yeVVzYWdlQnl0
ZXMgPSAwLjkgKiAxMDI0ICogMTAyNCAqIDEwMjQ7CiAKICAgICBpZiAoY291bnRlcnMuUHJpdmF0
ZVVzYWdlID4gbWF4TWVtb3J5VXNhZ2VCeXRlcykgewotICAgICAgICBzZXRVbmRlck1lbW9yeVBy
ZXNzdXJlKHRydWUpOworICAgICAgICBzZXRNZW1vcnlQcmVzc3VyZVN0YXR1cyhNZW1vcnlQcmVz
c3VyZTo6UHJvY2Vzc0xpbWl0Q3JpdGljYWwpOwogICAgICAgICByZWxlYXNlTWVtb3J5KENyaXRp
Y2FsOjpZZXMpOwogICAgIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9NZW1vcnlSZWxlYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTWVtb3J5UmVsZWFzZS5j
cHAKaW5kZXggMWI0ZTQ4NWY3YTc1YzIxZDU2OGZkODViMjU0MDZlMjVkZjU1NjBiNC4uOTAxZWJl
OWE1YmU2NjNiMDE4ZDEyMWI2YzZhYjlhNTIwY2EwYTg1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9NZW1vcnlSZWxlYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL01l
bW9yeVJlbGVhc2UuY3BwCkBAIC00Niw2ICs0Niw3IEBACiAjaW5jbHVkZSAiTG9nZ2luZy5oIgog
I2luY2x1ZGUgIk1lbW9yeUNhY2hlLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgorI2luY2x1ZGUgIlBl
cmZvcm1hbmNlTG9nZ2luZy5oIgogI2luY2x1ZGUgIlJlbmRlclRoZW1lLmgiCiAjaW5jbHVkZSAi
U2Nyb2xsaW5nVGhyZWFkLmgiCiAjaW5jbHVkZSAiU3R5bGVTY29wZS5oIgpAQCAtNjAsNiArNjEs
NyBAQAogCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAjaW5jbHVkZSAiUmVzb3VyY2VVc2FnZVRocmVh
ZC5oIgorI2luY2x1ZGUgPHd0Zi9zcGkvZGFyd2luL09TVmFyaWFudFNQSS5oPgogI2VuZGlmCiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTE3NSwyNiArMTc3LDM4IEBAIHZvaWQgcmVsZWFzZUdy
YXBoaWNzTWVtb3J5KENyaXRpY2FsIGNyaXRpY2FsLCBTeW5jaHJvbm91cyBzeW5jaHJvbm91cykK
ICAgICBXVEY6OnJlbGVhc2VGYXN0TWFsbG9jRnJlZU1lbW9yeSgpOwogfQogCi0jaWYgIVJFTEVB
U0VfTE9HX0RJU0FCTEVECi1zdGF0aWMgdW5zaWduZWQgcGFnZUNvdW50KCkKKyNpZiBSRUxFQVNF
X0xPR19ESVNBQkxFRAordm9pZCBsb2dNZW1vcnlTdGF0aXN0aWNzKExvZ01lbW9yeVN0YXRpc3Rp
Y3NSZWFzb24pIHsgfQorI2Vsc2UKK3N0YXRpYyBjb25zdCBjaGFyKiBsb2dNZW1vcnlTdGF0aXN0
aWNzUmVhc29uRGVzY3JpcHRpb24oTG9nTWVtb3J5U3RhdGlzdGljc1JlYXNvbiByZWFzb24pCiB7
Ci0gICAgdW5zaWduZWQgY291bnQgPSAwOwotICAgIFBhZ2U6OmZvckVhY2hQYWdlKFsmXSAoUGFn
ZSYgcGFnZSkgewotICAgICAgICBpZiAoIXBhZ2UuaXNVdGlsaXR5UGFnZSgpKQotICAgICAgICAg
ICAgKytjb3VudDsKLSAgICB9KTsKLSAgICByZXR1cm4gY291bnQ7CisgICAgc3dpdGNoIChyZWFz
b24pIHsKKyAgICBjYXNlIExvZ01lbW9yeVN0YXRpc3RpY3NSZWFzb246OkRlYnVnTm90aWZpY2F0
aW9uOgorICAgICAgICByZXR1cm4gImRlYnVnIG5vdGlmaWNhdGlvbiI7CisgICAgY2FzZSBMb2dN
ZW1vcnlTdGF0aXN0aWNzUmVhc29uOjpXYXJuaW5nTWVtb3J5UHJlc3N1cmVOb3RpZmljYXRpb246
CisgICAgICAgIHJldHVybiAid2FybmluZyBtZW1vcnkgcHJlc3N1cmUgbm90aWZpY2F0aW9uIjsK
KyAgICBjYXNlIExvZ01lbW9yeVN0YXRpc3RpY3NSZWFzb246OkNyaXRpY2FsTWVtb3J5UHJlc3N1
cmVOb3RpZmljYXRpb246CisgICAgICAgIHJldHVybiAiY3JpdGljYWwgbWVtb3J5IHByZXNzdXJl
IG5vdGlmaWNhdGlvbiI7CisgICAgY2FzZSBMb2dNZW1vcnlTdGF0aXN0aWNzUmVhc29uOjpPdXRP
Zk1lbW9yeURlYXRoOgorICAgICAgICByZXR1cm4gIm91dCBvZiBtZW1vcnkgZGVhdGgiOworICAg
IH07CisgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0KLSNlbmRpZgogCi12b2lk
IGxvZ01lbW9yeVN0YXRpc3RpY3NBdFRpbWVPZkRlYXRoKCkKK3ZvaWQgbG9nTWVtb3J5U3RhdGlz
dGljcyhMb2dNZW1vcnlTdGF0aXN0aWNzUmVhc29uIHJlYXNvbikKIHsKLSNpZiAhUkVMRUFTRV9M
T0dfRElTQUJMRUQKKyAgICBjb25zdCBjaGFyKiBkZXNjcmlwdGlvbiA9IGxvZ01lbW9yeVN0YXRp
c3RpY3NSZWFzb25EZXNjcmlwdGlvbihyZWFzb24pOworCisgICAgUkVMRUFTRV9MT0coTWVtb3J5
UHJlc3N1cmUsICJXZWJLaXQgbWVtb3J5IHVzYWdlIHN0YXRpc3RpY3MgYXQgdGltZSBvZiAlIiBQ
VUJMSUNfTE9HX1NUUklORyAiOiIsIGRlc2NyaXB0aW9uKTsKKyAgICBhdXRvIHN0YXRzID0gUGVy
Zm9ybWFuY2VMb2dnaW5nOjptZW1vcnlVc2FnZVN0YXRpc3RpY3MoU2hvdWxkSW5jbHVkZUV4cGVu
c2l2ZUNvbXB1dGF0aW9uczo6WWVzKTsKKyAgICBmb3IgKGF1dG8mIFtrZXksIHZhbF0gOiBzdGF0
cykKKyAgICAgICAgUkVMRUFTRV9MT0coTWVtb3J5UHJlc3N1cmUsICIlIiBQVUJMSUNfTE9HX1NU
UklORyAiOiAlenUiLCBrZXksIHZhbCk7CisKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBhdXRv
IHBhZ2VTaXplID0gdm1QYWdlU2l6ZSgpOwogICAgIGF1dG8gcGFnZXMgPSBwYWdlc1BlclZNVGFn
KCk7CiAKLSAgICBSRUxFQVNFX0xPRyhNZW1vcnlQcmVzc3VyZSwgIkRpcnR5IG1lbW9yeSBwZXIg
Vk0gdGFnIGF0IHRpbWUgb2YgZGVhdGg6Iik7CisgICAgUkVMRUFTRV9MT0coTWVtb3J5UHJlc3N1
cmUsICJEaXJ0eSBtZW1vcnkgcGVyIFZNIHRhZyBhdCB0aW1lIG9mICUiIFBVQkxJQ19MT0dfU1RS
SU5HICI6IiwgZGVzY3JpcHRpb24pOwogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCAyNTY7
ICsraSkgewogICAgICAgICBzaXplX3QgZGlydHkgPSBwYWdlc1tpXS5kaXJ0eSAqIHBhZ2VTaXpl
OwogICAgICAgICBpZiAoIWRpcnR5KQpAQCAtMjAyLDI4ICsyMTYsMjIgQEAgdm9pZCBsb2dNZW1v
cnlTdGF0aXN0aWNzQXRUaW1lT2ZEZWF0aCgpCiAgICAgICAgIFN0cmluZyB0YWdOYW1lID0gZGlz
cGxheU5hbWVGb3JWTVRhZyhpKTsKICAgICAgICAgaWYgKCF0YWdOYW1lKQogICAgICAgICAgICAg
dGFnTmFtZSA9IG1ha2VTdHJpbmcoIlRhZyAiLCBpKTsKLSAgICAgICAgUkVMRUFTRV9MT0coTWVt
b3J5UHJlc3N1cmUsICIlMTZzOiAlbHUgTUIiLCB0YWdOYW1lLmxhdGluMSgpLmRhdGEoKSwgZGly
dHkgLyBNQik7CisgICAgICAgIFJFTEVBU0VfTE9HKE1lbW9yeVByZXNzdXJlLCAiJSIgUFVCTElD
X0xPR19TVFJJTkcgIjogJWx1IE1CIGluICV6dSByZWdpb25zIiwgdGFnTmFtZS5sYXRpbjEoKS5k
YXRhKCksIGRpcnR5IC8gTUIsIHBhZ2VzW2ldLnJlZ2lvbkNvdW50KTsKICAgICB9CisKKyAgICBi
b29sIHNob3VsZExvZ0phdmFTY3JpcHRPYmplY3RDb3VudHMgPSBvc192YXJpYW50X2FsbG93c19p
bnRlcm5hbF9zZWN1cml0eV9wb2xpY2llcygiY29tLmFwcGxlLldlYktpdCIpOworICAgIGlmICgh
c2hvdWxkTG9nSmF2YVNjcmlwdE9iamVjdENvdW50cykKKyAgICAgICAgcmV0dXJuOwogI2VuZGlm
CiAKICAgICBhdXRvJiB2bSA9IGNvbW1vblZNKCk7CiAgICAgSlNDOjpKU0xvY2tIb2xkZXIgbG9j
a2VyKHZtKTsKLSAgICBSRUxFQVNFX0xPRyhNZW1vcnlQcmVzc3VyZSwgIk1lbW9yeSB1c2FnZSBz
dGF0aXN0aWNzIGF0IHRpbWUgb2YgZGVhdGg6Iik7Ci0gICAgUkVMRUFTRV9MT0coTWVtb3J5UHJl
c3N1cmUsICJHQyBoZWFwIHNpemU6ICV6dSIsIHZtLmhlYXAuc2l6ZSgpKTsKLSAgICBSRUxFQVNF
X0xPRyhNZW1vcnlQcmVzc3VyZSwgIkdDIGhlYXAgZXh0cmEgbWVtb3J5IHNpemU6ICV6dSIsIHZt
LmhlYXAuZXh0cmFNZW1vcnlTaXplKCkpOwotI2lmIEVOQUJMRShSRVNPVVJDRV9VU0FHRSkKLSAg
ICBSRUxFQVNFX0xPRyhNZW1vcnlQcmVzc3VyZSwgIkdDIGhlYXAgZXh0ZXJuYWwgbWVtb3J5OiAl
enUiLCB2bS5oZWFwLmV4dGVybmFsTWVtb3J5U2l6ZSgpKTsKLSNlbmRpZgotICAgIFJFTEVBU0Vf
TE9HKE1lbW9yeVByZXNzdXJlLCAiR2xvYmFsIG9iamVjdCBjb3VudDogJXp1Iiwgdm0uaGVhcC5n
bG9iYWxPYmplY3RDb3VudCgpKTsKLQotICAgIFJFTEVBU0VfTE9HKE1lbW9yeVByZXNzdXJlLCAi
UGFnZSBjb3VudDogJXUiLCBwYWdlQ291bnQoKSk7Ci0gICAgUkVMRUFTRV9MT0coTWVtb3J5UHJl
c3N1cmUsICJEb2N1bWVudCBjb3VudDogJXUiLCBEb2N1bWVudDo6YWxsRG9jdW1lbnRzKCkuc2l6
ZSgpKTsKLSAgICBSRUxFQVNFX0xPRyhNZW1vcnlQcmVzc3VyZSwgIkxpdmUgSmF2YVNjcmlwdCBv
YmplY3RzOiIpOworICAgIFJFTEVBU0VfTE9HKE1lbW9yeVByZXNzdXJlLCAiTGl2ZSBKYXZhU2Ny
aXB0IG9iamVjdHMgYXQgdGltZSBvZiAlIiBQVUJMSUNfTE9HX1NUUklORyAiOiIsIGRlc2NyaXB0
aW9uKTsKICAgICBhdXRvIHR5cGVDb3VudHMgPSB2bS5oZWFwLm9iamVjdFR5cGVDb3VudHMoKTsK
ICAgICBmb3IgKGF1dG8mIGl0IDogKnR5cGVDb3VudHMpCiAgICAgICAgIFJFTEVBU0VfTE9HKE1l
bW9yeVByZXNzdXJlLCAiICAlczogJWQiLCBpdC5rZXksIGl0LnZhbHVlKTsKLSNlbmRpZgogfQor
I2VuZGlmCiAKICNpZiAhUExBVEZPUk0oQ09DT0EpCiB2b2lkIHBsYXRmb3JtUmVsZWFzZU1lbW9y
eShDcml0aWNhbCkgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL01lbW9yeVJl
bGVhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTWVtb3J5UmVsZWFzZS5oCmluZGV4IDIwZmEz
NjgwODIxYjAxZmI4MTM3NGU1YzU5YTU3NDFjNjg5YjczOWYuLjVjODEzYmFhNTA3OGIxODZkMWRl
YzNkZjU0ZTQxYzBiZDg5ZDdlZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTWVt
b3J5UmVsZWFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTWVtb3J5UmVsZWFzZS5oCkBA
IC0zMSw2ICszMSwxMiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGVudW0gY2xhc3MgTWFpbnRh
aW5CYWNrRm9yd2FyZENhY2hlIDogYm9vbCB7IE5vLCBZZXMgfTsKIGVudW0gY2xhc3MgTWFpbnRh
aW5NZW1vcnlDYWNoZSA6IGJvb2wgeyBObywgWWVzIH07CitlbnVtIGNsYXNzIExvZ01lbW9yeVN0
YXRpc3RpY3NSZWFzb24geworICAgIERlYnVnTm90aWZpY2F0aW9uLAorICAgIFdhcm5pbmdNZW1v
cnlQcmVzc3VyZU5vdGlmaWNhdGlvbiwKKyAgICBDcml0aWNhbE1lbW9yeVByZXNzdXJlTm90aWZp
Y2F0aW9uLAorICAgIE91dE9mTWVtb3J5RGVhdGgKK307CiAKIFdFQkNPUkVfRVhQT1JUIHZvaWQg
cmVsZWFzZU1lbW9yeShDcml0aWNhbCwgU3luY2hyb25vdXMsIE1haW50YWluQmFja0ZvcndhcmRD
YWNoZSA9IE1haW50YWluQmFja0ZvcndhcmRDYWNoZTo6Tm8sIE1haW50YWluTWVtb3J5Q2FjaGUg
PSBNYWludGFpbk1lbW9yeUNhY2hlOjpObyk7CiB2b2lkIHBsYXRmb3JtUmVsZWFzZU1lbW9yeShD
cml0aWNhbCk7CkBAIC0zOCw2ICs0NCw2IEBAIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVsZWFzZUdy
YXBoaWNzTWVtb3J5KENyaXRpY2FsLCBTeW5jaHJvbm91cyk7CiB2b2lkIHBsYXRmb3JtUmVsZWFz
ZUdyYXBoaWNzTWVtb3J5KENyaXRpY2FsKTsKIHZvaWQgamV0dGlzb25FeHBlbnNpdmVPYmplY3Rz
T25Ub3BMZXZlbE5hdmlnYXRpb24oKTsKIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVnaXN0ZXJNZW1v
cnlSZWxlYXNlTm90aWZ5Q2FsbGJhY2tzKCk7Ci1XRUJDT1JFX0VYUE9SVCB2b2lkIGxvZ01lbW9y
eVN0YXRpc3RpY3NBdFRpbWVPZkRlYXRoKCk7CitXRUJDT1JFX0VYUE9SVCB2b2lkIGxvZ01lbW9y
eVN0YXRpc3RpY3MoTG9nTWVtb3J5U3RhdGlzdGljc1JlYXNvbik7CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VMb2dn
aW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VMb2dnaW5nLmNwcAppbmRl
eCBhY2E4NzUwNTBmYzIxMzE4NzIxMWJiZDYyNThkMGM5NzMyMGNkNGNkLi5iMzk4ZDVlZjliZTE4
ODI4ZWIzMzJjYmNhOTM2ZTNjYTEzNmM0ZjQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1BlcmZvcm1hbmNlTG9nZ2luZy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJm
b3JtYW5jZUxvZ2dpbmcuY3BwCkBAIC01NiwyNSArNTYsMjcgQEAgc3RhdGljIGNvbnN0IGNoYXIq
IHRvU3RyaW5nKFBlcmZvcm1hbmNlTG9nZ2luZzo6UG9pbnRPZkludGVyZXN0IHBvaSkKIEhhc2hN
YXA8Y29uc3QgY2hhciosIHNpemVfdD4gUGVyZm9ybWFuY2VMb2dnaW5nOjptZW1vcnlVc2FnZVN0
YXRpc3RpY3MoU2hvdWxkSW5jbHVkZUV4cGVuc2l2ZUNvbXB1dGF0aW9ucyBpbmNsdWRlRXhwZW5z
aXZlKQogewogICAgIEhhc2hNYXA8Y29uc3QgY2hhciosIHNpemVfdD4gc3RhdHM7CisgICAgc3Rh
dHMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eSgzMik7CisKKyAgICBzdGF0cy5hZGQoInBhZ2VfY291
bnQiLCBQYWdlOjpub25VdGlsaXR5UGFnZUNvdW50KCkpOworICAgIHN0YXRzLmFkZCgiYmFja2Zv
cndhcmRfY2FjaGVfcGFnZV9jb3VudCIsIEJhY2tGb3J3YXJkQ2FjaGU6OnNpbmdsZXRvbigpLnBh
Z2VDb3VudCgpKTsKKyAgICBzdGF0cy5hZGQoImRvY3VtZW50X2NvdW50IiwgRG9jdW1lbnQ6OmFs
bERvY3VtZW50cygpLnNpemUoKSk7CiAKICAgICBhdXRvJiB2bSA9IGNvbW1vblZNKCk7CiAgICAg
SlNDOjpKU0xvY2tIb2xkZXIgbG9ja2VyKHZtKTsKLSAgICBzdGF0cy5hZGQoImphdmFzY3JpcHRf
Z2NfaGVhcF9jYXBhY2l0eSIsIHZtLmhlYXAuY2FwYWNpdHkoKSk7Ci0gICAgc3RhdHMuYWRkKCJq
YXZhc2NyaXB0X2djX2hlYXBfZXh0cmFfbWVtb3J5X3NpemUiLCB2bS5oZWFwLmV4dHJhTWVtb3J5
U2l6ZSgpKTsKLQotICAgIGF1dG8mIGJhY2tGb3J3YXJkQ2FjaGUgPSBCYWNrRm9yd2FyZENhY2hl
OjpzaW5nbGV0b24oKTsKLSAgICBzdGF0cy5hZGQoImJhY2tmb3J3YXJkX2NhY2hlX3BhZ2VfY291
bnQiLCBiYWNrRm9yd2FyZENhY2hlLnBhZ2VDb3VudCgpKTsKLQotICAgIHN0YXRzLmFkZCgiZG9j
dW1lbnRfY291bnQiLCBEb2N1bWVudDo6YWxsRG9jdW1lbnRzKCkuc2l6ZSgpKTsKKyAgICBzdGF0
cy5hZGQoImphdmFzY3JpcHRfZ2NfaGVhcF9jYXBhY2l0eV9tYiIsIHZtLmhlYXAuY2FwYWNpdHko
KSA+PiAyMCk7CisgICAgc3RhdHMuYWRkKCJqYXZhc2NyaXB0X2djX2hlYXBfZXh0cmFfbWVtb3J5
X3NpemVfbWIiLCB2bS5oZWFwLmV4dHJhTWVtb3J5U2l6ZSgpID4+IDIwKTsKIAogICAgIGlmIChp
bmNsdWRlRXhwZW5zaXZlID09IFNob3VsZEluY2x1ZGVFeHBlbnNpdmVDb21wdXRhdGlvbnM6Olll
cykgewotICAgICAgICBzdGF0cy5hZGQoImphdmFzY3JpcHRfZ2NfaGVhcF9zaXplIiwgdm0uaGVh
cC5zaXplKCkpOworICAgICAgICBzdGF0cy5hZGQoImphdmFzY3JpcHRfZ2NfaGVhcF9zaXplX21i
Iiwgdm0uaGVhcC5zaXplKCkgPj4gMjApOwogICAgICAgICBzdGF0cy5hZGQoImphdmFzY3JpcHRf
Z2Nfb2JqZWN0X2NvdW50Iiwgdm0uaGVhcC5vYmplY3RDb3VudCgpKTsKICAgICAgICAgc3RhdHMu
YWRkKCJqYXZhc2NyaXB0X2djX3Byb3RlY3RlZF9vYmplY3RfY291bnQiLCB2bS5oZWFwLnByb3Rl
Y3RlZE9iamVjdENvdW50KCkpOwogICAgICAgICBzdGF0cy5hZGQoImphdmFzY3JpcHRfZ2NfZ2xv
YmFsX29iamVjdF9jb3VudCIsIHZtLmhlYXAuZ2xvYmFsT2JqZWN0Q291bnQoKSk7CiAgICAgICAg
IHN0YXRzLmFkZCgiamF2YXNjcmlwdF9nY19wcm90ZWN0ZWRfZ2xvYmFsX29iamVjdF9jb3VudCIs
IHZtLmhlYXAucHJvdGVjdGVkR2xvYmFsT2JqZWN0Q291bnQoKSk7CiAgICAgfQogCisgICAgZ2V0
UGxhdGZvcm1NZW1vcnlVc2FnZVN0YXRpc3RpY3Moc3RhdHMpOworCiAgICAgcmV0dXJuIHN0YXRz
OwogfQogCkBAIC05OCwxMSArMTAwLDggQEAgdm9pZCBQZXJmb3JtYW5jZUxvZ2dpbmc6OmRpZFJl
YWNoUG9pbnRPZkludGVyZXN0KFBvaW50T2ZJbnRlcmVzdCBwb2kpCiAgICAgaWYgKG1fcGFnZS5t
YWluRnJhbWUoKS5sb2FkZXIoKS5jbGllbnQoKS5pc0VtcHR5RnJhbWVMb2FkZXJDbGllbnQoKSkK
ICAgICAgICAgcmV0dXJuOwogCi0gICAgYXV0byBzdGF0cyA9IG1lbW9yeVVzYWdlU3RhdGlzdGlj
cyhTaG91bGRJbmNsdWRlRXhwZW5zaXZlQ29tcHV0YXRpb25zOjpObyk7Ci0gICAgZ2V0UGxhdGZv
cm1NZW1vcnlVc2FnZVN0YXRpc3RpY3Moc3RhdHMpOwotCiAgICAgUkVMRUFTRV9MT0coUGVyZm9y
bWFuY2VMb2dnaW5nLCAiTWVtb3J5IHVzYWdlIGluZm8gZHVtcCBhdCAlczoiLCB0b1N0cmluZyhw
b2kpKTsKLSAgICBmb3IgKGF1dG8mIGl0IDogc3RhdHMpCisgICAgZm9yIChhdXRvJiBpdCA6IG1l
bW9yeVVzYWdlU3RhdGlzdGljcyhTaG91bGRJbmNsdWRlRXhwZW5zaXZlQ29tcHV0YXRpb25zOjpO
bykpCiAgICAgICAgIFJFTEVBU0VfTE9HKFBlcmZvcm1hbmNlTG9nZ2luZywgIiAgJXM6ICV6dSIs
IGl0LmtleSwgaXQudmFsdWUpOwogI2VuZGlmCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1BlcmZvcm1hbmNlTG9nZ2luZy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3Jt
YW5jZUxvZ2dpbmcuaAppbmRleCAzMmI0YzBlOWExZTEyMTgyOWRhYjZmYmNlYzA4OWNhYmRkNjk5
OTA0Li5lMGY3ZGNiZjdlNDllM2JlMTRkNWU2OWEzNDI4MTE5Zjg3NTQ5YjZjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlTG9nZ2luZy5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VMb2dnaW5nLmgKQEAgLTMyLDcgKzMyLDcgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBjbGFzcyBQYWdlOwogCi1lbnVtIGNsYXNzIFNob3VsZEluY2x1ZGVF
eHBlbnNpdmVDb21wdXRhdGlvbnMgeyBObywgWWVzIH07CitlbnVtIGNsYXNzIFNob3VsZEluY2x1
ZGVFeHBlbnNpdmVDb21wdXRhdGlvbnMgOiBib29sIHsgTm8sIFllcyB9OwogCiBjbGFzcyBQZXJm
b3JtYW5jZUxvZ2dpbmcgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9jb2NvYS9QZXJmb3JtYW5jZUxvZ2dpbmdDb2NvYS5tbSBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvY29jb2EvUGVyZm9ybWFuY2VMb2dnaW5nQ29jb2EubW0KaW5k
ZXggMjg5NmZlMTk3NmZmYjE4YWRmYTc5NjY2ZmU2OGUxNjM3YWIyNTBmYy4uMzEyNWM1YzY2NTA3
ODRiOGFjNzg2NThkZTI4YWNlZGRkNTUxY2I3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9jb2NvYS9QZXJmb3JtYW5jZUxvZ2dpbmdDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL2NvY29hL1BlcmZvcm1hbmNlTG9nZ2luZ0NvY29hLm1tCkBAIC00OCwxMSArNDgsMTEg
QEAgdm9pZCBQZXJmb3JtYW5jZUxvZ2dpbmc6OmdldFBsYXRmb3JtTWVtb3J5VXNhZ2VTdGF0aXN0
aWNzKEhhc2hNYXA8Y29uc3QgY2hhciosIHMKICAgICBrZXJuX3JldHVybl90IGVyciA9IHRhc2tf
aW5mbyhtYWNoX3Rhc2tfc2VsZigpLCBUQVNLX1ZNX0lORk8sICh0YXNrX2luZm9fdCkgJnZtSW5m
bywgJmNvdW50KTsKICAgICBpZiAoZXJyICE9IEtFUk5fU1VDQ0VTUykKICAgICAgICAgcmV0dXJu
OwotICAgIHN0YXRzLmFkZCgiaW50ZXJuYWwiLCBzdGF0aWNfY2FzdDxzaXplX3Q+KHZtSW5mby5p
bnRlcm5hbCkpOwotICAgIHN0YXRzLmFkZCgiY29tcHJlc3NlZCIsIHN0YXRpY19jYXN0PHNpemVf
dD4odm1JbmZvLmNvbXByZXNzZWQpKTsKLSAgICBzdGF0cy5hZGQoInBoeXNfZm9vdHByaW50Iiwg
c3RhdGljX2Nhc3Q8c2l6ZV90Pih2bUluZm8ucGh5c19mb290cHJpbnQpKTsKLSAgICBzdGF0cy5h
ZGQoInJlc2lkZW50X3NpemUiLCBzdGF0aWNfY2FzdDxzaXplX3Q+KHZtSW5mby5yZXNpZGVudF9z
aXplKSk7Ci0gICAgc3RhdHMuYWRkKCJ2aXJ0dWFsX3NpemUiLCBzdGF0aWNfY2FzdDxzaXplX3Q+
KHZtSW5mby52aXJ0dWFsX3NpemUpKTsKKyAgICBzdGF0cy5hZGQoImludGVybmFsX21iIiwgc3Rh
dGljX2Nhc3Q8c2l6ZV90Pih2bUluZm8uaW50ZXJuYWwgPj4gMjApKTsKKyAgICBzdGF0cy5hZGQo
ImNvbXByZXNzZWRfbWIiLCBzdGF0aWNfY2FzdDxzaXplX3Q+KHZtSW5mby5jb21wcmVzc2VkID4+
IDIwKSk7CisgICAgc3RhdHMuYWRkKCJwaHlzX2Zvb3RwcmludF9tYiIsIHN0YXRpY19jYXN0PHNp
emVfdD4odm1JbmZvLnBoeXNfZm9vdHByaW50ID4+IDIwKSk7CisgICAgc3RhdHMuYWRkKCJyZXNp
ZGVudF9zaXplX21iIiwgc3RhdGljX2Nhc3Q8c2l6ZV90Pih2bUluZm8ucmVzaWRlbnRfc2l6ZSA+
PiAyMCkpOworICAgIHN0YXRzLmFkZCgidmlydHVhbF9zaXplX21iIiwgc3RhdGljX2Nhc3Q8c2l6
ZV90Pih2bUluZm8udmlydHVhbF9zaXplID4+IDIwKSk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAppbmRleCBkODYyOWU4NzI5MTRmMDc4MWM2YzQxMmM3MjU0
OWEyOGJiYWU3MGQwLi43OTRiOWI2NWVlNDFjYjhjOGZlNjgyYWY0OWYzYTY4YmNhNDVkYTIzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCkBAIC0xMzUsNiArMTM1LDcg
QEAKICNpbmNsdWRlIDxXZWJDb3JlL1NlcnZpY2VXb3JrZXJDb250ZXh0RGF0YS5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvU2V0dGluZ3MuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1VzZXJHZXN0dXJlSW5k
aWNhdG9yLmg+CisjaW5jbHVkZSA8cGFsL0xvZ2dpbmcuaD4KICNpbmNsdWRlIDx3dGYvQWxnb3Jp
dGhtcy5oPgogI2luY2x1ZGUgPHd0Zi9DYWxsYmFja0FnZ3JlZ2F0b3IuaD4KICNpbmNsdWRlIDx3
dGYvTGFuZ3VhZ2UuaD4KQEAgLTQyOSw3ICs0MzAsNyBAQCB2b2lkIFdlYlByb2Nlc3M6OmluaXRp
YWxpemVXZWJQcm9jZXNzKFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJz
KQogI2lmIEVOQUJMRShQRVJJT0RJQ19NRU1PUllfTU9OSVRPUikKICAgICAgICAgbWVtb3J5UHJl
c3N1cmVIYW5kbGVyLnNldFNob3VsZFVzZVBlcmlvZGljTWVtb3J5TW9uaXRvcih0cnVlKTsKICAg
ICAgICAgbWVtb3J5UHJlc3N1cmVIYW5kbGVyLnNldE1lbW9yeUtpbGxDYWxsYmFjayhbdGhpc10g
KCkgewotICAgICAgICAgICAgV2ViQ29yZTo6bG9nTWVtb3J5U3RhdGlzdGljc0F0VGltZU9mRGVh
dGgoKTsKKyAgICAgICAgICAgIFdlYkNvcmU6OmxvZ01lbW9yeVN0YXRpc3RpY3MoTG9nTWVtb3J5
U3RhdGlzdGljc1JlYXNvbjo6T3V0T2ZNZW1vcnlEZWF0aCk7CiAgICAgICAgICAgICBpZiAoTWVt
b3J5UHJlc3N1cmVIYW5kbGVyOjpzaW5nbGV0b24oKS5wcm9jZXNzU3RhdGUoKSA9PSBXZWJzYW1Q
cm9jZXNzU3RhdGU6OkFjdGl2ZSkKICAgICAgICAgICAgICAgICBwYXJlbnRQcm9jZXNzQ29ubmVj
dGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkRpZEV4Y2VlZEFjdGl2ZU1l
bW9yeUxpbWl0KCksIDApOwogICAgICAgICAgICAgZWxzZQpAQCAtNDM3LDEzICs0MzgsNDAgQEAg
dm9pZCBXZWJQcm9jZXNzOjppbml0aWFsaXplV2ViUHJvY2VzcyhXZWJQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzJiYgcGFyYW1ldGVycykKICAgICAgICAgfSk7CiAgICAgICAgIG1lbW9yeVByZXNz
dXJlSGFuZGxlci5zZXREaWRFeGNlZWRJbmFjdGl2ZUxpbWl0V2hpbGVBY3RpdmVDYWxsYmFjayhb
dGhpc10gKCkgewogICAgICAgICAgICAgcGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChN
ZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpEaWRFeGNlZWRJbmFjdGl2ZU1lbW9yeUxpbWl0V2hp
bGVBY3RpdmUoKSwgMCk7CisKKyAgICAgICAgICAgIGlmICghbV9sb2dnZWRQcm9jZXNzTGltaXRD
cml0aWNhbE1lbW9yeVN0YXRpc3RpY3MpIHsKKyAgICAgICAgICAgICAgICBtX2xvZ2dlZFByb2Nl
c3NMaW1pdENyaXRpY2FsTWVtb3J5U3RhdGlzdGljcyA9IHRydWU7CisgICAgICAgICAgICAgICAg
UnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFtdIHsKKyAgICAgICAgICAgICAgICAgICAgV2ViQ29y
ZTo6bG9nTWVtb3J5U3RhdGlzdGljcyhMb2dNZW1vcnlTdGF0aXN0aWNzUmVhc29uOjpDcml0aWNh
bE1lbW9yeVByZXNzdXJlTm90aWZpY2F0aW9uKTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAg
ICAgICAgIH0KICAgICAgICAgfSk7CiAjZW5kaWYKLSAgICAgICAgbWVtb3J5UHJlc3N1cmVIYW5k
bGVyLnNldE1lbW9yeVByZXNzdXJlU3RhdHVzQ2hhbmdlZENhbGxiYWNrKFt0aGlzXShib29sIGlz
VW5kZXJNZW1vcnlQcmVzc3VyZSkgeworICAgICAgICBtZW1vcnlQcmVzc3VyZUhhbmRsZXIuc2V0
TWVtb3J5UHJlc3N1cmVTdGF0dXNDaGFuZ2VkQ2FsbGJhY2soW3RoaXNdKFdURjo6TWVtb3J5UHJl
c3N1cmVTdGF0dXMgbWVtb3J5UHJlc3N1cmVTdGF0dXMpIHsKICAgICAgICAgICAgIGlmIChwYXJl
bnRQcm9jZXNzQ29ubmVjdGlvbigpKQotICAgICAgICAgICAgICAgIHBhcmVudFByb2Nlc3NDb25u
ZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6TWVtb3J5UHJlc3N1cmVT
dGF0dXNDaGFuZ2VkKGlzVW5kZXJNZW1vcnlQcmVzc3VyZSksIDApOworICAgICAgICAgICAgICAg
IHBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94
eTo6TWVtb3J5UHJlc3N1cmVTdGF0dXNDaGFuZ2VkKE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6c2lu
Z2xldG9uKCkuaXNVbmRlck1lbW9yeVByZXNzdXJlKCkpLCAwKTsKKworICAgICAgICAgICAgc3Rk
OjpvcHRpb25hbDxMb2dNZW1vcnlTdGF0aXN0aWNzUmVhc29uPiBsb2dNZW1vcnlTdGF0aXN0aWNz
UmVhc29uOworICAgICAgICAgICAgaWYgKG1lbW9yeVByZXNzdXJlU3RhdHVzID09IFdURjo6TWVt
b3J5UHJlc3N1cmVTdGF0dXM6OlByb2Nlc3NMaW1pdFdhcm5pbmcgJiYgIW1fbG9nZ2VkUHJvY2Vz
c0xpbWl0V2FybmluZ01lbW9yeVN0YXRpc3RpY3MpIHsKKyAgICAgICAgICAgICAgICBsb2dNZW1v
cnlTdGF0aXN0aWNzUmVhc29uID0gTG9nTWVtb3J5U3RhdGlzdGljc1JlYXNvbjo6V2FybmluZ01l
bW9yeVByZXNzdXJlTm90aWZpY2F0aW9uOworICAgICAgICAgICAgICAgIG1fbG9nZ2VkUHJvY2Vz
c0xpbWl0V2FybmluZ01lbW9yeVN0YXRpc3RpY3MgPSB0cnVlOworICAgICAgICAgICAgfSBlbHNl
IGlmIChtZW1vcnlQcmVzc3VyZVN0YXR1cyA9PSBXVEY6Ok1lbW9yeVByZXNzdXJlU3RhdHVzOjpQ
cm9jZXNzTGltaXRDcml0aWNhbCAmJiAhbV9sb2dnZWRQcm9jZXNzTGltaXRDcml0aWNhbE1lbW9y
eVN0YXRpc3RpY3MpIHsKKyAgICAgICAgICAgICAgICBsb2dNZW1vcnlTdGF0aXN0aWNzUmVhc29u
ID0gTG9nTWVtb3J5U3RhdGlzdGljc1JlYXNvbjo6Q3JpdGljYWxNZW1vcnlQcmVzc3VyZU5vdGlm
aWNhdGlvbjsKKyAgICAgICAgICAgICAgICBtX2xvZ2dlZFByb2Nlc3NMaW1pdENyaXRpY2FsTWVt
b3J5U3RhdGlzdGljcyA9IHRydWU7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChs
b2dNZW1vcnlTdGF0aXN0aWNzUmVhc29uKSB7CisgICAgICAgICAgICAgICAgLy8gTG9nIHN0YXRz
IGluIHRoZSBuZXh0IHR1cm4gb2YgdGhlIHJ1biBsb29wIHNvIHRoYXQgaXQgcnVucyBhZnRlciB0
aGUgbG93IG1lbW9yeSBoYW5kbGVyLgorICAgICAgICAgICAgICAgIFJ1bkxvb3A6Om1haW4oKS5k
aXNwYXRjaChbcmVhc29uID0gKmxvZ01lbW9yeVN0YXRpc3RpY3NSZWFzb25dIHsKKyAgICAgICAg
ICAgICAgICAgICAgV2ViQ29yZTo6bG9nTWVtb3J5U3RhdGlzdGljcyhyZWFzb24pOworICAgICAg
ICAgICAgICAgIH0pOworICAgICAgICAgICAgfQogICAgICAgICB9KTsKICAgICAgICAgbWVtb3J5
UHJlc3N1cmVIYW5kbGVyLmluc3RhbGwoKTsKKworICAgICAgICBQQUw6OnJlZ2lzdGVyTm90aWZ5
Q2FsbGJhY2soImNvbS5hcHBsZS5XZWJLaXQubG9nTWVtU3RhdHMiLCBbXSB7CisgICAgICAgICAg
ICBXZWJDb3JlOjpsb2dNZW1vcnlTdGF0aXN0aWNzKExvZ01lbW9yeVN0YXRpc3RpY3NSZWFzb246
OkRlYnVnTm90aWZpY2F0aW9uKTsKKyAgICAgICAgfSk7CiAgICAgfQogCiAgICAgU2FuZGJveEV4
dGVuc2lvbjo6Y29uc3VtZVBlcm1hbmVudGx5KHBhcmFtZXRlcnMuYWRkaXRpb25hbFNhbmRib3hF
eHRlbnNpb25IYW5kbGVzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCmluZGV4
IDIzNTM0MjUyNmVmN2E3NjEwY2IyNzIzMjBiNGQ2Mzg2NGRlZTA2NTcuLmZlZGUwMzM2MzFlOTkx
NzMxOTRhNjA2MWYyODc4MjgyYzMxNzIzMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBy
b2Nlc3MuaApAQCAtNzA3LDYgKzcwNyw4IEBAIHByaXZhdGU6CiAjZW5kaWYKIAogICAgIGJvb2wg
bV9zdXBwcmVzc01lbW9yeVByZXNzdXJlSGFuZGxlciB7IGZhbHNlIH07CisgICAgYm9vbCBtX2xv
Z2dlZFByb2Nlc3NMaW1pdFdhcm5pbmdNZW1vcnlTdGF0aXN0aWNzIHsgZmFsc2UgfTsKKyAgICBi
b29sIG1fbG9nZ2VkUHJvY2Vzc0xpbWl0Q3JpdGljYWxNZW1vcnlTdGF0aXN0aWNzIHsgZmFsc2Ug
fTsKICNpZiBQTEFURk9STShNQUMpCiAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OkNQVU1v
bml0b3I+IG1fY3B1TW9uaXRvcjsKICAgICBzdGQ6Om9wdGlvbmFsPGRvdWJsZT4gbV9jcHVMaW1p
dDsK
</data>
<flag name="commit-queue"
          id="468725"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>443894</attachid>
            <date>2021-11-10 18:29:01 -0800</date>
            <delta_ts>2021-11-11 11:12:44 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232976-20211110182859.patch</filename>
            <type>text/plain</type>
            <size>32161</size>
            <attacher name="Ben Nham">nham</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1NjA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDFhNGE1NTdlZjZjNDUwMmNlMjY5NTJi
MzVmOWM1MDBiN2FjNzQyNjAuLmNlNTUwYzBmZmM1YjJhMzA1ZGU0NjFhODM3NWRhYzE3ZDc4MDlj
YWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMzcgQEAKKzIwMjEtMTEtMTAgIEJlbiBOaGFtICA8bmhhbUBhcHBs
ZS5jb20+CisKKyAgICAgICAgTG9nIG1lbW9yeSB1c2FnZSBtZXRhZGF0YSB3aGVuIFdlYkNvbnRl
bnQgY3Jvc3NlcyBjcml0aWNhbCBvciB3YXJuaW5nIGxldmVsIG1lbW9yeSB0aHJlc2hvbGRzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzI5NzYKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGaXhlZCBzZXZl
cmFsIGlzc3VlcyB3aXRoIG1lbW9yeSB1c2FnZSB0cmFja2luZzoKKworICAgICAgICAgLSBwYWdl
c1BlclZNVGFnIG5vdyBwcm9wZXJseSBhY2NvdW50cyBmb3Igc3dhcHBlZC1vdXQgcGFnZXMgaW4g
aXRzIGZvb3RwcmludCBjYWxjdWxhdGlvbiwKKyAgICAgICAgICAgYXMgZm9vdHByaW50KDEpIGFs
cmVhZHkgZG9lcy4KKyAgICAgICAgIC0gZGlzcGxheU5hbWVQZXJWTVRhZyBub3cgaW5jbHVkZXMg
YWxsIG9mIHRoZSBtb3N0IGNvbW1vbiBWTSB0YWdzIGFzc29jaWF0ZWQgd2l0aCBXZWJLaXQuCisg
ICAgICAgICAtIE1lbW9yeVByZXNzdXJlSGFuZGxlciBub3cga25vd3MgdGhlIHNwZWNpZmljIHR5
cGUgb2YgcHJlc3N1cmUgZXZlbnQgdGhhdCBvY2N1cnJlZC4gVGhpcworICAgICAgICAgICBhbGxv
d3MgaXQgdG8gZGlmZmVyZW50aWF0ZSBiZXR3ZWVuIHRoZSBlbnRpcmUgc3lzdGVtIGJlaW5nIGF0
IGEgd2FybmluZyBwcmVzc3VyZSBsZXZlbAorICAgICAgICAgICB2cy4ganVzdCB0aGlzIHByb2Nl
c3MgaGl0dGluZyBpdHMgd2FybmluZyBtZW1vcnkgbGV2ZWwgbGltaXQuCisKKyAgICAgICAgKiB3
dGYvTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdURjo6TWVtb3J5UHJlc3N1
cmVIYW5kbGVyOjpzZXRNZW1vcnlQcmVzc3VyZVN0YXR1cyk6CisgICAgICAgIChXVEY6Ok1lbW9y
eVByZXNzdXJlSGFuZGxlcjo6bWVtb3J5UHJlc3N1cmVTdGF0dXNDaGFuZ2VkKToKKyAgICAgICAg
KFdURjo6TWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpzZXRVbmRlck1lbW9yeVByZXNzdXJlKTogRGVs
ZXRlZC4KKyAgICAgICAgKiB3dGYvTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmg6CisgICAgICAgIChX
VEY6Ok1lbW9yeVByZXNzdXJlSGFuZGxlcjo6c2V0TWVtb3J5UHJlc3N1cmVTdGF0dXNDaGFuZ2Vk
Q2FsbGJhY2spOgorICAgICAgICAoV1RGOjpNZW1vcnlQcmVzc3VyZUhhbmRsZXI6OmlzVW5kZXJN
ZW1vcnlQcmVzc3VyZSBjb25zdCk6CisgICAgICAgICogd3RmL1Jlc291cmNlVXNhZ2UuaDoKKyAg
ICAgICAgKiB3dGYvY29jb2EvTWVtb3J5UHJlc3N1cmVIYW5kbGVyQ29jb2EubW06CisgICAgICAg
IChXVEY6Ok1lbW9yeVByZXNzdXJlSGFuZGxlcjo6aW5zdGFsbCk6CisgICAgICAgICogd3RmL2Nv
Y29hL1Jlc291cmNlVXNhZ2VDb2NvYS5jcHA6CisgICAgICAgIChXVEY6OmRpc3BsYXlOYW1lRm9y
Vk1UYWcpOgorICAgICAgICAoV1RGOjpwYWdlc1BlclZNVGFnKToKKyAgICAgICAgKiB3dGYvdW5p
eC9NZW1vcnlQcmVzc3VyZUhhbmRsZXJVbml4LmNwcDoKKyAgICAgICAgKFdURjo6TWVtb3J5UHJl
c3N1cmVIYW5kbGVyOjp0cmlnZ2VyTWVtb3J5UHJlc3N1cmVFdmVudCk6CisgICAgICAgICogd3Rm
L3dpbi9NZW1vcnlQcmVzc3VyZUhhbmRsZXJXaW4uY3BwOgorICAgICAgICAoV1RGOjpNZW1vcnlQ
cmVzc3VyZUhhbmRsZXI6OndpbmRvd3NNZWFzdXJlbWVudFRpbWVyRmlyZWQpOgorCiAyMDIxLTEx
LTEwICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAgICBbQ0ZdIFJlZHVj
ZSBkdXBsaWNhdGlvbiBhbmQgdW5uZWVkZWQgYnVmZmVyIGFsbG9jYXRpb25zIGFuZCBjb3B5aW5n
IGluIFVSTCBjb2RlLCBhbHNvIHJlbW92ZSB1bnVzZWQgbWV0aG9kcyBhbmQgZnVuY3Rpb25zCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKaW5kZXggOTQzOGIxNGE5YmFmNmNlNDY1NjI0NDUxNDRhMTkzNTRhZjQxODM1Zi4uYjU2
MTk5ZGZkOGRjZjJkYmMwN2VkODMwNmNmNTNlODFlNjJkYzFlZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDM0IEBACisyMDIxLTExLTEwICBCZW4gTmhhbSAgPG5oYW1AYXBwbGUuY29tPgorCisgICAg
ICAgIExvZyBtZW1vcnkgdXNhZ2UgbWV0YWRhdGEgd2hlbiBXZWJDb250ZW50IGNyb3NzZXMgY3Jp
dGljYWwgb3Igd2FybmluZyBsZXZlbCBtZW1vcnkgdGhyZXNob2xkcworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMyOTc2CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViQ29yZTo6bG9nTWVtb3J5U3RhdGlz
dGljcyB3YXMgY2hhbmdlZCB0bzoKKworICAgICAgICAgLSBFbWl0IFZNIHRhZyBuYW1lcyBhcyBw
dWJsaWMgc3RyaW5ncyB0byB0aGUgbG9nLiBUaGVyZSBpc24ndCBhbnl0aGluZyBwcml2YWN5IHNl
bnNpdGl2ZQorICAgICAgICAgICBhYm91dCBvdXIgMjU1IGZpeGVkIFZNIHRhZ3MsIGFuZCBlbWl0
dGluZyB0aGVtIHRvIHRoZSBsb2dzIGFzIGFzIHByaXZhdGUgc3RyaW5nIChhcyB3ZQorICAgICAg
ICAgICB3ZXJlIGRvaW5nIGJlZm9yZSkgbWFkZSB0aG9zZSBsb2cgbGluZXMgdXNlbGVzcy4KKyAg
ICAgICAgIC0gVXNlIFdlYkNvcmU6Om1lbW9yeVVzYWdlU3RhdGlzdGljcyB0byBnYXRoZXIgbWVt
b3J5IG1ldGFkYXRhLCBzaW5jZSBvdGhlciBXZWJDb3JlCisgICAgICAgICAgIGNhbGxzaXRlcyB3
ZXJlIGFscmVhZHkgdXNpbmcgdGhhdCBhbmQgaXQgcmVkdWNlcyBjb2RlIGR1cGxpY2F0aW9uLgor
ICAgICAgICAgLSBPbmx5IGxvZyBKUyBvYmplY3QgdHlwZSBjb3VudHMgb24gaW50ZXJuYWwgT1Mg
YnVpbGRzLiBQcmV2aW91c2x5IHdlIGFsc28gbG9nZ2VkIHRob3NlCisgICAgICAgICAgIGNvdW50
cyBvbiBwdWJsaWMgT1MgYnVpbGRzLCBidXQgdGhhdCB3YXMgdXNlbGVzcyBzaW5jZSBhbGwgdGhl
IGNsYXNzIG5hbWVzIHdlcmUgcmVkYWN0ZWQKKyAgICAgICAgICAgaW4gdGhlIGxvZy4KKworICAg
ICAgICAqIHBhZ2UvTWVtb3J5UmVsZWFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpsb2dNZW1v
cnlTdGF0aXN0aWNzKToKKyAgICAgICAgKFdlYkNvcmU6OmxvZ01lbW9yeVN0YXRpc3RpY3NSZWFz
b25EZXNjcmlwdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpwYWdlQ291bnQpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6bG9nTWVtb3J5U3RhdGlzdGljc0F0VGltZU9mRGVhdGgpOiBEZWxl
dGVkLgorICAgICAgICAqIHBhZ2UvTWVtb3J5UmVsZWFzZS5oOgorICAgICAgICAqIHBhZ2UvUGVy
Zm9ybWFuY2VMb2dnaW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBlcmZvcm1hbmNlTG9nZ2lu
Zzo6bWVtb3J5VXNhZ2VTdGF0aXN0aWNzKToKKyAgICAgICAgKFdlYkNvcmU6OlBlcmZvcm1hbmNl
TG9nZ2luZzo6ZGlkUmVhY2hQb2ludE9mSW50ZXJlc3QpOgorICAgICAgICAqIHBhZ2UvUGVyZm9y
bWFuY2VMb2dnaW5nLmg6CisgICAgICAgICogcGFnZS9jb2NvYS9QZXJmb3JtYW5jZUxvZ2dpbmdD
b2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6OlBlcmZvcm1hbmNlTG9nZ2luZzo6Z2V0UGxhdGZv
cm1NZW1vcnlVc2FnZVN0YXRpc3RpY3MpOgorCiAyMDIxLTExLTEwICBBbnRvaW5lIFF1aW50ICA8
Z3Jhb3V0c0B3ZWJraXQub3JnPgogCiAgICAgICAgIFRoZSBjc3NUZXh0IHByb3BlcnR5IGZvciBh
IGNvbXB1dGVkIHN0eWxlIHNob3VsZCByZXR1cm4gYW4gZW1wdHkgc3RyaW5nCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4
IGE1MzE3MTMyODE0NTRiMDA0YjJlOTQzYTYyZjVhYTVkMjM2ZWM5YzguLmNkODBjMzljYzk3NWZj
M2MwMmVkOTg0MzRmOTdjY2Q4ZmVjZmEwZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIw
MjEtMTEtMTAgIEJlbiBOaGFtICA8bmhhbUBhcHBsZS5jb20+CisKKyAgICAgICAgTG9nIG1lbW9y
eSB1c2FnZSBtZXRhZGF0YSB3aGVuIFdlYkNvbnRlbnQgY3Jvc3NlcyBjcml0aWNhbCBvciB3YXJu
aW5nIGxldmVsIG1lbW9yeSB0aHJlc2hvbGRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMzI5NzYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBBZGRlZCBjYWxsYmFja3MgdG8gbG9nIG1lbW9yeSB1c2FnZSBt
ZXRhZGF0YSB0aGUgZmlyc3QgdGltZSBhIHByb2Nlc3MgaGl0cyB0aGVzZSBtaWxlc3RvbmVzOgor
CisgICAgICAgICAtIGV4Y2VlZGVkIGluYWN0aXZlIG1lbW9yeSBsaW1pdCB3aGlsZSBhY3RpdmUg
KG9uIE1hYykKKyAgICAgICAgIC0gZXhjZWVkZWQgd2FybmluZyBwcm9jZXNzIGxpbWl0IHRocmVz
aG9sZCAob24gb3RoZXIgbm9uLU1hYyBBcHBsZSBwbGF0Zm9ybXMpCisgICAgICAgICAtIGV4Y2Vl
ZGVkIGNyaXRpY2FsIHByb2Nlc3MgbGltaXQgdGhyZXNob2xkIChvbiBvdGhlciBub24tTWFjIEFw
cGxlIHBsYXRmb3JtcykKKworICAgICAgICBUaGUgcmVhc29uIGZvciB0aGlzIGlzIHdlICByZWNl
aXZlIGEgbGFyZ2UgbnVtYmVyIG9mIG91dCBvZiBtZW1vcnkgcmVwb3J0cyB3aXRoIHZlcnkgbGl0
dGxlCisgICAgICAgIGluZm8gaW4gdGhlIGxvZ3MuIFdlIHdhbnQgdG8gbG9nIG1vcmUgbWV0YWRh
dGEgYWJvdXQgbWVtb3J5IHVzYWdlIChzaW1pbGFyIHRvIHdoYXQgd2UgZG8gb24KKyAgICAgICAg
TWFjIGluIGBXZWJDb3JlOjpsb2dNZW1vcnlTdGF0aXN0aWNzQXRUaW1lT2ZEZWF0aGApIHRvIGhl
bHAgdXMgZGVidWcgdGhvc2UgcmVwb3J0cy4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJv
Y2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmluaXRpYWxpemVXZWJQcm9j
ZXNzKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuaDoKKwogMjAyMS0xMS0xMCAg
UGVyIEFybmUgVm9sbGFuIDxwdm9sbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbbWFjT1NdW0dQ
VVBdIFJlbW92ZSBhY2Nlc3MgdG8gc3lzY3RsIHByb3BlcnRpZXMKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XVEYvd3RmL01lbW9yeVByZXNzdXJlSGFuZGxlci5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9NZW1v
cnlQcmVzc3VyZUhhbmRsZXIuY3BwCmluZGV4IGM3NWE0M2JjNWJlYTlhY2QwMmEzN2I1NjdhODlm
YjViYjM4NzEzN2EuLjRiMDU1MmUwYmZmYzAzZDcxYWEzNGZiZGExOTIzMTZlNGYyMWVhZTYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL01lbW9yeVByZXNzdXJlSGFuZGxlci5jcHAKKysrIGIv
U291cmNlL1dURi93dGYvTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmNwcApAQCAtMjY0LDE4ICsyNjQs
MTkgQEAgdm9pZCBNZW1vcnlQcmVzc3VyZUhhbmRsZXI6OnJlbGVhc2VNZW1vcnkoQ3JpdGljYWwg
Y3JpdGljYWwsIFN5bmNocm9ub3VzIHN5bmNocm8KICAgICBwbGF0Zm9ybVJlbGVhc2VNZW1vcnko
Y3JpdGljYWwpOwogfQogCi12b2lkIE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6c2V0VW5kZXJNZW1v
cnlQcmVzc3VyZShib29sIHVuZGVyTWVtb3J5UHJlc3N1cmUpCit2b2lkIE1lbW9yeVByZXNzdXJl
SGFuZGxlcjo6c2V0TWVtb3J5UHJlc3N1cmVTdGF0dXMoTWVtb3J5UHJlc3N1cmVTdGF0dXMgbWVt
b3J5UHJlc3N1cmVTdGF0dXMpCiB7Ci0gICAgaWYgKG1fdW5kZXJNZW1vcnlQcmVzc3VyZSA9PSB1
bmRlck1lbW9yeVByZXNzdXJlKQorICAgIGlmIChtX21lbW9yeVByZXNzdXJlU3RhdHVzID09IG1l
bW9yeVByZXNzdXJlU3RhdHVzKQogICAgICAgICByZXR1cm47Ci0gICAgbV91bmRlck1lbW9yeVBy
ZXNzdXJlID0gdW5kZXJNZW1vcnlQcmVzc3VyZTsKKworICAgIG1fbWVtb3J5UHJlc3N1cmVTdGF0
dXMgPSBtZW1vcnlQcmVzc3VyZVN0YXR1czsKICAgICBtZW1vcnlQcmVzc3VyZVN0YXR1c0NoYW5n
ZWQoKTsKIH0KIAogdm9pZCBNZW1vcnlQcmVzc3VyZUhhbmRsZXI6Om1lbW9yeVByZXNzdXJlU3Rh
dHVzQ2hhbmdlZCgpCiB7CiAgICAgaWYgKG1fbWVtb3J5UHJlc3N1cmVTdGF0dXNDaGFuZ2VkQ2Fs
bGJhY2spCi0gICAgICAgIG1fbWVtb3J5UHJlc3N1cmVTdGF0dXNDaGFuZ2VkQ2FsbGJhY2soaXNV
bmRlck1lbW9yeVByZXNzdXJlKCkpOworICAgICAgICBtX21lbW9yeVByZXNzdXJlU3RhdHVzQ2hh
bmdlZENhbGxiYWNrKG1fbWVtb3J5UHJlc3N1cmVTdGF0dXMpOwogfQogCiB2b2lkIE1lbW9yeVBy
ZXNzdXJlSGFuZGxlcjo6UmVsaWVmTG9nZ2VyOjpsb2dNZW1vcnlVc2FnZUNoYW5nZSgpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9NZW1vcnlQcmVzc3VyZUhhbmRsZXIuaCBiL1NvdXJjZS9X
VEYvd3RmL01lbW9yeVByZXNzdXJlSGFuZGxlci5oCmluZGV4IDBmNWI2MjYzMDBkOGU5ZWU4ZjBk
Nzg1NDk0NTE3OThlZTJkOTBhZjMuLjI3ZTIyMDlmYjlhNzNmZDgwZmEwNzQ2NWQ1YTUyZTU2Mjgw
ZWVmNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL01lbW9yeVByZXNzdXJlSGFuZGxlci5o
CisrKyBiL1NvdXJjZS9XVEYvd3RmL01lbW9yeVByZXNzdXJlSGFuZGxlci5oCkBAIC00Myw2ICs0
MywxOCBAQAogCiBuYW1lc3BhY2UgV1RGIHsKIAorZW51bSBjbGFzcyBNZW1vcnlQcmVzc3VyZVN0
YXR1cyA6IHVpbnQ4X3QgeworICAgIE5vcm1hbCwKKworICAgIC8vIFRoZSBlbnRpcmUgc3lzdGVt
IGlzIGF0IGEgd2FybmluZyBvciBjcml0aWNhbCBwcmVzc3VyZSBsZXZlbC4KKyAgICBTeXN0ZW1X
YXJuaW5nLAorICAgIFN5c3RlbUNyaXRpY2FsLAorCisgICAgLy8gVGhpcyBzcGVjaWZpYyBwcm9j
ZXNzIGNyb3NzZWQgYSB3YXJuaW5nIG9yIGNyaXRpY2FsIG1lbW9yeSB1c2FnZSBsaW1pdC4KKyAg
ICBQcm9jZXNzTGltaXRXYXJuaW5nLAorICAgIFByb2Nlc3NMaW1pdENyaXRpY2FsCit9OworCiBl
bnVtIGNsYXNzIE1lbW9yeVVzYWdlUG9saWN5IDogdWludDhfdCB7CiAgICAgVW5yZXN0cmljdGVk
LCAvLyBBbGxvY2F0ZSBhcyBtdWNoIGFzIHlvdSB3YW50CiAgICAgQ29uc2VydmF0aXZlLCAvLyBN
YXliZSB5b3UgZG9uJ3QgY2FjaGUgZXZlcnkgc2luZ2xlIHRoaW5nCkBAIC03NCw3ICs4Niw3IEBA
IHB1YmxpYzoKICNlbmRpZgogCiAgICAgdm9pZCBzZXRNZW1vcnlLaWxsQ2FsbGJhY2soV1RGOjpG
dW5jdGlvbjx2b2lkKCk+JiYgZnVuY3Rpb24pIHsgbV9tZW1vcnlLaWxsQ2FsbGJhY2sgPSBXVEZN
b3ZlKGZ1bmN0aW9uKTsgfQotICAgIHZvaWQgc2V0TWVtb3J5UHJlc3N1cmVTdGF0dXNDaGFuZ2Vk
Q2FsbGJhY2soV1RGOjpGdW5jdGlvbjx2b2lkKGJvb2wpPiYmIGZ1bmN0aW9uKSB7IG1fbWVtb3J5
UHJlc3N1cmVTdGF0dXNDaGFuZ2VkQ2FsbGJhY2sgPSBXVEZNb3ZlKGZ1bmN0aW9uKTsgfQorICAg
IHZvaWQgc2V0TWVtb3J5UHJlc3N1cmVTdGF0dXNDaGFuZ2VkQ2FsbGJhY2soV1RGOjpGdW5jdGlv
bjx2b2lkKE1lbW9yeVByZXNzdXJlU3RhdHVzKT4mJiBmdW5jdGlvbikgeyBtX21lbW9yeVByZXNz
dXJlU3RhdHVzQ2hhbmdlZENhbGxiYWNrID0gV1RGTW92ZShmdW5jdGlvbik7IH0KICAgICB2b2lk
IHNldERpZEV4Y2VlZEluYWN0aXZlTGltaXRXaGlsZUFjdGl2ZUNhbGxiYWNrKFdURjo6RnVuY3Rp
b248dm9pZCgpPiYmIGZ1bmN0aW9uKSB7IG1fZGlkRXhjZWVkSW5hY3RpdmVMaW1pdFdoaWxlQWN0
aXZlQ2FsbGJhY2sgPSBXVEZNb3ZlKGZ1bmN0aW9uKTsgfQogCiAgICAgdm9pZCBzZXRMb3dNZW1v
cnlIYW5kbGVyKExvd01lbW9yeUhhbmRsZXImJiBoYW5kbGVyKQpAQCAtODQsMTQgKzk2LDE2IEBA
IHB1YmxpYzoKIAogICAgIGJvb2wgaXNVbmRlck1lbW9yeVByZXNzdXJlKCkgY29uc3QKICAgICB7
Ci0gICAgICAgIHJldHVybiBtX3VuZGVyTWVtb3J5UHJlc3N1cmUKKyAgICAgICAgYXV0byBtZW1v
cnlQcmVzc3VyZVN0YXR1cyA9IG1fbWVtb3J5UHJlc3N1cmVTdGF0dXMubG9hZCgpOworICAgICAg
ICByZXR1cm4gbWVtb3J5UHJlc3N1cmVTdGF0dXMgPT0gTWVtb3J5UHJlc3N1cmVTdGF0dXM6OlN5
c3RlbUNyaXRpY2FsCisgICAgICAgICAgICB8fCBtZW1vcnlQcmVzc3VyZVN0YXR1cyA9PSBNZW1v
cnlQcmVzc3VyZVN0YXR1czo6UHJvY2Vzc0xpbWl0Q3JpdGljYWwKICNpZiBQTEFURk9STShNQUMp
CiAgICAgICAgICAgICB8fCBtX21lbW9yeVVzYWdlUG9saWN5ID49IE1lbW9yeVVzYWdlUG9saWN5
OjpTdHJpY3QKICNlbmRpZgogICAgICAgICAgICAgfHwgbV9pc1NpbXVsYXRpbmdNZW1vcnlQcmVz
c3VyZTsKICAgICB9CiAgICAgYm9vbCBpc1NpbXVsYXRpbmdNZW1vcnlQcmVzc3VyZSgpIGNvbnN0
IHsgcmV0dXJuIG1faXNTaW11bGF0aW5nTWVtb3J5UHJlc3N1cmU7IH0KLSAgICB2b2lkIHNldFVu
ZGVyTWVtb3J5UHJlc3N1cmUoYm9vbCk7CisgICAgdm9pZCBzZXRNZW1vcnlQcmVzc3VyZVN0YXR1
cyhNZW1vcnlQcmVzc3VyZVN0YXR1cyk7CiAKICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgTWVtb3J5
VXNhZ2VQb2xpY3kgY3VycmVudE1lbW9yeVVzYWdlUG9saWN5KCk7CiAKQEAgLTIzOSw3ICsyNTMs
NyBAQCBwcml2YXRlOgogCiAgICAgdW5zaWduZWQgbV9wYWdlQ291bnQgeyAwIH07CiAKLSAgICBz
dGQ6OmF0b21pYzxib29sPiBtX3VuZGVyTWVtb3J5UHJlc3N1cmUgeyBmYWxzZSB9OworICAgIHN0
ZDo6YXRvbWljPE1lbW9yeVByZXNzdXJlU3RhdHVzPiBtX21lbW9yeVByZXNzdXJlU3RhdHVzIHsg
TWVtb3J5UHJlc3N1cmVTdGF0dXM6Ok5vcm1hbCB9OwogICAgIGJvb2wgbV9pbnN0YWxsZWQgeyBm
YWxzZSB9OwogICAgIGJvb2wgbV9pc1NpbXVsYXRpbmdNZW1vcnlQcmVzc3VyZSB7IGZhbHNlIH07
CiAgICAgYm9vbCBtX3Nob3VsZExvZ01lbW9yeU1lbW9yeVByZXNzdXJlRXZlbnRzIHsgdHJ1ZSB9
OwpAQCAtMjUxLDcgKzI2NSw3IEBAIHByaXZhdGU6CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8UnVu
TG9vcDo6VGltZXI8TWVtb3J5UHJlc3N1cmVIYW5kbGVyPj4gbV9tZWFzdXJlbWVudFRpbWVyOwog
ICAgIFdURjo6RnVuY3Rpb248dm9pZCgpPiBtX21lbW9yeUtpbGxDYWxsYmFjazsKLSAgICBXVEY6
OkZ1bmN0aW9uPHZvaWQoYm9vbCk+IG1fbWVtb3J5UHJlc3N1cmVTdGF0dXNDaGFuZ2VkQ2FsbGJh
Y2s7CisgICAgV1RGOjpGdW5jdGlvbjx2b2lkKE1lbW9yeVByZXNzdXJlU3RhdHVzKT4gbV9tZW1v
cnlQcmVzc3VyZVN0YXR1c0NoYW5nZWRDYWxsYmFjazsKICAgICBXVEY6OkZ1bmN0aW9uPHZvaWQo
KT4gbV9kaWRFeGNlZWRJbmFjdGl2ZUxpbWl0V2hpbGVBY3RpdmVDYWxsYmFjazsKICAgICBMb3dN
ZW1vcnlIYW5kbGVyIG1fbG93TWVtb3J5SGFuZGxlcjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri93dGYvUmVzb3VyY2VVc2FnZS5oIGIvU291cmNlL1dURi93dGYvUmVzb3VyY2VVc2FnZS5oCmlu
ZGV4IDJhNDI0NzEzMTUxNzQzOTc3ZWU0YzBlM2IxZWRkNTQwZmFjODA3Y2IuLjgzZDJhNmRiOTg1
MDU5ODA4ZTU4OWYxODZmZGViMDk4MmRmNTE1ODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3Rm
L1Jlc291cmNlVXNhZ2UuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9SZXNvdXJjZVVzYWdlLmgKQEAg
LTMzLDYgKzMzLDcgQEAgbmFtZXNwYWNlIFdURiB7CiAKIHN0cnVjdCBUYWdJbmZvIHsKICAgICBX
VEZfTUFLRV9TVFJVQ1RfRkFTVF9BTExPQ0FURUQ7CisgICAgc2l6ZV90IHJlZ2lvbkNvdW50IHsg
MCB9OwogICAgIHNpemVfdCBkaXJ0eSB7IDAgfTsKICAgICBzaXplX3QgcmVjbGFpbWFibGUgeyAw
IH07CiAgICAgc2l6ZV90IHJlc2VydmVkIHsgMCB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93
dGYvY29jb2EvTWVtb3J5UHJlc3N1cmVIYW5kbGVyQ29jb2EubW0gYi9Tb3VyY2UvV1RGL3d0Zi9j
b2NvYS9NZW1vcnlQcmVzc3VyZUhhbmRsZXJDb2NvYS5tbQppbmRleCA5NjIwNWQwZjI4NjBkNDI4
MWMyNzI5YjM1ODcwNjA2ZTQzYTU0YTU4Li4zOWNmN2M4NmY2ODU4MjdjYzU5OWVhNWU1NmZkY2Fi
YmEyNjkyNjI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9jb2NvYS9NZW1vcnlQcmVzc3Vy
ZUhhbmRsZXJDb2NvYS5tbQorKysgYi9Tb3VyY2UvV1RGL3d0Zi9jb2NvYS9NZW1vcnlQcmVzc3Vy
ZUhhbmRsZXJDb2NvYS5tbQpAQCAtNzgsMjEgKzc4LDIzIEBAIHZvaWQgTWVtb3J5UHJlc3N1cmVI
YW5kbGVyOjppbnN0YWxsKCkKICAgICAgICAgICAgIHN3aXRjaCAoc3RhdHVzKSB7CiAgICAgICAg
ICAgICAvLyBWTSBwcmVzc3VyZSBldmVudHMuCiAgICAgICAgICAgICBjYXNlIERJU1BBVENIX01F
TU9SWVBSRVNTVVJFX05PUk1BTDoKLSAgICAgICAgICAgICAgICBzZXRVbmRlck1lbW9yeVByZXNz
dXJlKGZhbHNlKTsKKyAgICAgICAgICAgICAgICBzZXRNZW1vcnlQcmVzc3VyZVN0YXR1cyhNZW1v
cnlQcmVzc3VyZVN0YXR1czo6Tm9ybWFsKTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgICAgIGNhc2UgRElTUEFUQ0hfTUVNT1JZUFJFU1NVUkVfV0FSTjoKLSAgICAgICAgICAgICAg
ICBzZXRVbmRlck1lbW9yeVByZXNzdXJlKGZhbHNlKTsKKyAgICAgICAgICAgICAgICBzZXRNZW1v
cnlQcmVzc3VyZVN0YXR1cyhNZW1vcnlQcmVzc3VyZVN0YXR1czo6U3lzdGVtV2FybmluZyk7CiAg
ICAgICAgICAgICAgICAgcmVzcG9uZFRvTWVtb3J5UHJlc3N1cmUoQ3JpdGljYWw6Ok5vKTsKICAg
ICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIGNhc2UgRElTUEFUQ0hfTUVNT1JZUFJF
U1NVUkVfQ1JJVElDQUw6Ci0gICAgICAgICAgICAgICAgc2V0VW5kZXJNZW1vcnlQcmVzc3VyZSh0
cnVlKTsKKyAgICAgICAgICAgICAgICBzZXRNZW1vcnlQcmVzc3VyZVN0YXR1cyhNZW1vcnlQcmVz
c3VyZVN0YXR1czo6U3lzdGVtQ3JpdGljYWwpOwogICAgICAgICAgICAgICAgIHJlc3BvbmRUb01l
bW9yeVByZXNzdXJlKENyaXRpY2FsOjpZZXMpOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICAgICAgLy8gUHJvY2VzcyBtZW1vcnkgbGltaXQgZXZlbnRzLgogICAgICAgICAgICAgY2Fz
ZSBESVNQQVRDSF9NRU1PUllQUkVTU1VSRV9QUk9DX0xJTUlUX1dBUk46CisgICAgICAgICAgICAg
ICAgc2V0TWVtb3J5UHJlc3N1cmVTdGF0dXMoTWVtb3J5UHJlc3N1cmVTdGF0dXM6OlByb2Nlc3NM
aW1pdFdhcm5pbmcpOwogICAgICAgICAgICAgICAgIHJlc3BvbmRUb01lbW9yeVByZXNzdXJlKENy
aXRpY2FsOjpObyk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNlIERJ
U1BBVENIX01FTU9SWVBSRVNTVVJFX1BST0NfTElNSVRfQ1JJVElDQUw6CisgICAgICAgICAgICAg
ICAgc2V0TWVtb3J5UHJlc3N1cmVTdGF0dXMoTWVtb3J5UHJlc3N1cmVTdGF0dXM6OlByb2Nlc3NM
aW1pdENyaXRpY2FsKTsKICAgICAgICAgICAgICAgICByZXNwb25kVG9NZW1vcnlQcmVzc3VyZShD
cml0aWNhbDo6WWVzKTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL2NvY29hL1Jlc291cmNlVXNhZ2VDb2NvYS5jcHAgYi9T
b3VyY2UvV1RGL3d0Zi9jb2NvYS9SZXNvdXJjZVVzYWdlQ29jb2EuY3BwCmluZGV4IGRmY2EwNzJi
NGM0YWNlZTAzMjEzYjY5OTAwMTM3ODYxYTNiMzQ5ZGQuLjdjOGY5YTIyMjk0MzBhZTUxNzEwMTg3
MTczZTVmMDgxYjEyZjFmNWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL2NvY29hL1Jlc291
cmNlVXNhZ2VDb2NvYS5jcHAKKysrIGIvU291cmNlL1dURi93dGYvY29jb2EvUmVzb3VyY2VVc2Fn
ZUNvY29hLmNwcApAQCAtNzIsMjggKzcyLDMyIEBAIHZvaWQgbG9nRm9vdHByaW50Q29tcGFyaXNv
bihjb25zdCBzdGQ6OmFycmF5PFRhZ0luZm8sIDI1Nj4mIGJlZm9yZSwgY29uc3Qgc3RkOjphCiBj
b25zdCBjaGFyKiBkaXNwbGF5TmFtZUZvclZNVGFnKHVuc2lnbmVkIHRhZykKIHsKICAgICBzd2l0
Y2ggKHRhZykgewotICAgIGNhc2UgVk1fTUVNT1JZX0lPS0lUOiByZXR1cm4gIklPS2l0IjsKLSAg
ICBjYXNlIFZNX01FTU9SWV9MQVlFUktJVDogcmV0dXJuICJDb3JlQW5pbWF0aW9uIjsKLSAgICBj
YXNlIFZNX01FTU9SWV9JTUFHRUlPOiByZXR1cm4gIkltYWdlSU8iOwogICAgIGNhc2UgVk1fTUVN
T1JZX0NHSU1BR0U6IHJldHVybiAiQ0cgaW1hZ2UiOworICAgIGNhc2UgVk1fTUVNT1JZX0NPUkVH
UkFQSElDU19EQVRBOiByZXR1cm4gIkNHIHJhc3RlciBkYXRhIjsKKyAgICBjYXNlIFZNX01FTU9S
WV9DT1JFU0VSVklDRVM6IHJldHVybiAiQ29yZVNlcnZpY2VzIjsKKyAgICBjYXNlIFZNX01FTU9S
WV9EWUxJQjogcmV0dXJuICJkeWxpYiI7CisgICAgY2FzZSBWTV9NRU1PUllfRk9VTkRBVElPTjog
cmV0dXJuICJGb3VuZGF0aW9uIjsKKyAgICBjYXNlIFZNX01FTU9SWV9JTUFHRUlPOiByZXR1cm4g
IkltYWdlSU8iOworICAgIGNhc2UgVk1fTUVNT1JZX0lPQUNDRUxFUkFUT1I6IHJldHVybiAiSU9B
Y2NlbGVyYXRvciI7CisgICAgY2FzZSBWTV9NRU1PUllfSU9TVVJGQUNFOiByZXR1cm4gIklPU3Vy
ZmFjZSI7CisgICAgY2FzZSBWTV9NRU1PUllfSU9LSVQ6IHJldHVybiAiSU9LaXQiOwogICAgIGNh
c2UgVk1fTUVNT1JZX0pBVkFTQ1JJUFRfQ09SRTogcmV0dXJuICJHaWdhY2FnZSI7CiAgICAgY2Fz
ZSBWTV9NRU1PUllfSkFWQVNDUklQVF9KSVRfRVhFQ1VUQUJMRV9BTExPQ0FUT1I6IHJldHVybiAi
SlNDIEpJVCI7CiAgICAgY2FzZSBWTV9NRU1PUllfSkFWQVNDUklQVF9KSVRfUkVHSVNURVJfRklM
RTogcmV0dXJuICJJc29IZWFwIjsKKyAgICBjYXNlIFZNX01FTU9SWV9MQVlFUktJVDogcmV0dXJu
ICJDb3JlQW5pbWF0aW9uIjsKKyAgICBjYXNlIFZNX01FTU9SWV9MSUJESVNQQVRDSDogcmV0dXJu
ICJsaWJkaXNwYXRjaCI7CiAgICAgY2FzZSBWTV9NRU1PUllfTUFMTE9DOiByZXR1cm4gIm1hbGxv
YyI7CiAgICAgY2FzZSBWTV9NRU1PUllfTUFMTE9DX0hVR0U6IHJldHVybiAibWFsbG9jIChodWdl
KSI7CiAgICAgY2FzZSBWTV9NRU1PUllfTUFMTE9DX0xBUkdFOiByZXR1cm4gIm1hbGxvYyAobGFy
Z2UpIjsKKyAgICBjYXNlIFZNX01FTU9SWV9NQUxMT0NfTUVESVVNOiByZXR1cm4gIm1hbGxvYyAo
bWVkaXVtKSI7CisgICAgY2FzZSBWTV9NRU1PUllfTUFMTE9DX05BTk86IHJldHVybiAibWFsbG9j
IChuYW5vKSI7CiAgICAgY2FzZSBWTV9NRU1PUllfTUFMTE9DX1NNQUxMOiByZXR1cm4gIm1hbGxv
YyAoc21hbGwpIjsKICAgICBjYXNlIFZNX01FTU9SWV9NQUxMT0NfVElOWTogcmV0dXJuICJtYWxs
b2MgKHRpbnkpIjsKLSAgICBjYXNlIFZNX01FTU9SWV9NQUxMT0NfTkFOTzogcmV0dXJuICJtYWxs
b2MgKG5hbm8pIjsKLSAgICBjYXNlIFZNX01FTU9SWV9UQ01BTExPQzogcmV0dXJuICJibWFsbG9j
IjsKLSAgICBjYXNlIFZNX01FTU9SWV9GT1VOREFUSU9OOiByZXR1cm4gIkZvdW5kYXRpb24iOwot
ICAgIGNhc2UgVk1fTUVNT1JZX1NUQUNLOiByZXR1cm4gIlN0YWNrIjsKKyAgICBjYXNlIFZNX01F
TU9SWV9PU19BTExPQ19PTkNFOiByZXR1cm4gIm9zX2FsbG9jX29uY2UiOwogICAgIGNhc2UgVk1f
TUVNT1JZX1NRTElURTogcmV0dXJuICJTUUxpdGUiOworICAgIGNhc2UgVk1fTUVNT1JZX1NUQUNL
OiByZXR1cm4gIlN0YWNrIjsKKyAgICBjYXNlIFZNX01FTU9SWV9UQ01BTExPQzogcmV0dXJuICJi
bWFsbG9jIjsKICAgICBjYXNlIFZNX01FTU9SWV9VTlNIQVJFRF9QTUFQOiByZXR1cm4gInBtYXAg
KHVuc2hhcmVkKSI7Ci0gICAgY2FzZSBWTV9NRU1PUllfRFlMSUI6IHJldHVybiAiZHlsaWIiOwot
ICAgIGNhc2UgVk1fTUVNT1JZX0NPUkVTRVJWSUNFUzogcmV0dXJuICJDb3JlU2VydmljZXMiOwot
ICAgIGNhc2UgVk1fTUVNT1JZX09TX0FMTE9DX09OQ0U6IHJldHVybiAib3NfYWxsb2Nfb25jZSI7
Ci0gICAgY2FzZSBWTV9NRU1PUllfTElCRElTUEFUQ0g6IHJldHVybiAibGliZGlzcGF0Y2giOwog
ICAgIGRlZmF1bHQ6IHJldHVybiBudWxscHRyOwogICAgIH0KIH0KQEAgLTExNSw2ICsxMTksOCBA
QCBzdGQ6OmFycmF5PFRhZ0luZm8sIDI1Nj4gcGFnZXNQZXJWTVRhZygpCiAgICAgICAgIGlmIChr
ciAhPSBLRVJOX1NVQ0NFU1MpCiAgICAgICAgICAgICBicmVhazsKIAorICAgICAgICB0YWdzW2lu
Zm8udXNlcl90YWddLnJlZ2lvbkNvdW50Kys7CisKICAgICAgICAgdGFnc1tpbmZvLnVzZXJfdGFn
XS5yZXNlcnZlZCArPSBzaXplIC8gdm1QYWdlU2l6ZSgpOwogCiAgICAgICAgIGlmIChwdXJnZWFi
bGVTdGF0ZSA9PSBWTV9QVVJHQUJMRV9WT0xBVElMRSkgewpAQCAtMTI5LDEwICsxMzUsMTIgQEAg
c3RkOjphcnJheTxUYWdJbmZvLCAyNTY+IHBhZ2VzUGVyVk1UYWcoKQogCiAgICAgICAgIGJvb2wg
YW5vbnltb3VzID0gIWluZm8uZXh0ZXJuYWxfcGFnZXI7CiAgICAgICAgIGlmIChhbm9ueW1vdXMp
IHsKLSAgICAgICAgICAgIHRhZ3NbaW5mby51c2VyX3RhZ10uZGlydHkgKz0gaW5mby5wYWdlc19y
ZXNpZGVudCAtIGluZm8ucGFnZXNfcmV1c2FibGU7CisgICAgICAgICAgICAvLyBDb3VudCBhbGwg
cmVzaWRlbnQgbWFsbG9jIHBhZ2VzIGFzIGRpcnR5LgorICAgICAgICAgICAgc2l6ZV90IGRpcnR5
UGFnZXMgPSBpbmZvLnBhZ2VzX3Jlc2lkZW50IC0gaW5mby5wYWdlc19yZXVzYWJsZTsKKyAgICAg
ICAgICAgIHRhZ3NbaW5mby51c2VyX3RhZ10uZGlydHkgKz0gZGlydHlQYWdlcyArIGluZm8ucGFn
ZXNfc3dhcHBlZF9vdXQ7CiAgICAgICAgICAgICB0YWdzW2luZm8udXNlcl90YWddLnJlY2xhaW1h
YmxlICs9IGluZm8ucGFnZXNfcmV1c2FibGU7CiAgICAgICAgIH0gZWxzZQotICAgICAgICAgICAg
dGFnc1tpbmZvLnVzZXJfdGFnXS5kaXJ0eSArPSBpbmZvLnBhZ2VzX2RpcnRpZWQ7CisgICAgICAg
ICAgICB0YWdzW2luZm8udXNlcl90YWddLmRpcnR5ICs9IChpbmZvLnBhZ2VzX2RpcnRpZWQgKyBp
bmZvLnBhZ2VzX3N3YXBwZWRfb3V0KTsKICAgICB9CiAKICAgICByZXR1cm4gdGFnczsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XVEYvd3RmL3VuaXgvTWVtb3J5UHJlc3N1cmVIYW5kbGVyVW5peC5jcHAg
Yi9Tb3VyY2UvV1RGL3d0Zi91bml4L01lbW9yeVByZXNzdXJlSGFuZGxlclVuaXguY3BwCmluZGV4
IDhjNTBlNGNlMDZjZTIxYjk1YWZmMjg5MWY5ZWQ5MWJiOTY3NDI4ZjguLjg1YTNlYTA2YzY2N2Y1
OTJjOTJlZTcyNTZiMDkzMWNlOTU5NWUxZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3Vu
aXgvTWVtb3J5UHJlc3N1cmVIYW5kbGVyVW5peC5jcHAKKysrIGIvU291cmNlL1dURi93dGYvdW5p
eC9NZW1vcnlQcmVzc3VyZUhhbmRsZXJVbml4LmNwcApAQCAtNjYsNyArNjYsNyBAQCB2b2lkIE1l
bW9yeVByZXNzdXJlSGFuZGxlcjo6dHJpZ2dlck1lbW9yeVByZXNzdXJlRXZlbnQoYm9vbCBpc0Ny
aXRpY2FsKQogICAgIGlmIChSZWxpZWZMb2dnZXI6OmxvZ2dpbmdFbmFibGVkKCkpCiAgICAgICAg
IExPRyhNZW1vcnlQcmVzc3VyZSwgIkdvdCBtZW1vcnkgcHJlc3N1cmUgbm90aWZpY2F0aW9uICgl
cykiLCBpc0NyaXRpY2FsID8gImNyaXRpY2FsIiA6ICJub24tY3JpdGljYWwiKTsKIAotICAgIHNl
dFVuZGVyTWVtb3J5UHJlc3N1cmUodHJ1ZSk7CisgICAgc2V0TWVtb3J5UHJlc3N1cmVTdGF0dXMo
TWVtb3J5UHJlc3N1cmVTdGF0dXM6OlN5c3RlbUNyaXRpY2FsKTsKIAogICAgIGVuc3VyZU9uTWFp
blRocmVhZChbdGhpcywgaXNDcml0aWNhbF0gewogICAgICAgICByZXNwb25kVG9NZW1vcnlQcmVz
c3VyZShpc0NyaXRpY2FsID8gQ3JpdGljYWw6OlllcyA6IENyaXRpY2FsOjpObyk7CkBAIC03NSw3
ICs3NSw3IEBAIHZvaWQgTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjp0cmlnZ2VyTWVtb3J5UHJlc3N1
cmVFdmVudChib29sIGlzQ3JpdGljYWwpCiAgICAgaWYgKFJlbGllZkxvZ2dlcjo6bG9nZ2luZ0Vu
YWJsZWQoKSAmJiBpc1VuZGVyTWVtb3J5UHJlc3N1cmUoKSkKICAgICAgICAgTE9HKE1lbW9yeVBy
ZXNzdXJlLCAiU3lzdGVtIGlzIG5vIGxvbmdlciB1bmRlciBtZW1vcnkgcHJlc3N1cmUuIik7CiAK
LSAgICBzZXRVbmRlck1lbW9yeVByZXNzdXJlKGZhbHNlKTsKKyAgICBzZXRNZW1vcnlQcmVzc3Vy
ZVN0YXR1cyhNZW1vcnlQcmVzc3VyZVN0YXR1czo6Tm9ybWFsKTsKIH0KIAogdm9pZCBNZW1vcnlQ
cmVzc3VyZUhhbmRsZXI6Omluc3RhbGwoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvd2lu
L01lbW9yeVByZXNzdXJlSGFuZGxlcldpbi5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi93aW4vTWVtb3J5
UHJlc3N1cmVIYW5kbGVyV2luLmNwcAppbmRleCBlNmJlYmRjMWNhMjAyNjE5ZWE0ZmQ3NjQyOWM5
Y2UzZmU1MGFjOGIwLi40NGQ1NzhlYTBmN2JhZjQ4MDIzMzRkYzcyM2M2YWQ4MjA4Nzk4NmY1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi93aW4vTWVtb3J5UHJlc3N1cmVIYW5kbGVyV2luLmNw
cAorKysgYi9Tb3VyY2UvV1RGL3d0Zi93aW4vTWVtb3J5UHJlc3N1cmVIYW5kbGVyV2luLmNwcApA
QCAtMzgsMTIgKzM4LDEyIEBAIHZvaWQgTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpwbGF0Zm9ybUlu
aXRpYWxpemUoKQogCiB2b2lkIE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6d2luZG93c01lYXN1cmVt
ZW50VGltZXJGaXJlZCgpCiB7Ci0gICAgc2V0VW5kZXJNZW1vcnlQcmVzc3VyZShmYWxzZSk7Cisg
ICAgc2V0TWVtb3J5UHJlc3N1cmVTdGF0dXMoTWVtb3J5UHJlc3N1cmVTdGF0dXM6Ok5vcm1hbCk7
CiAKICAgICBCT09MIG1lbW9yeUxvdzsKIAogICAgIGlmIChRdWVyeU1lbW9yeVJlc291cmNlTm90
aWZpY2F0aW9uKG1fbG93TWVtb3J5SGFuZGxlLmdldCgpLCAmbWVtb3J5TG93KSAmJiBtZW1vcnlM
b3cpIHsKLSAgICAgICAgc2V0VW5kZXJNZW1vcnlQcmVzc3VyZSh0cnVlKTsKKyAgICAgICAgc2V0
TWVtb3J5UHJlc3N1cmVTdGF0dXMoTWVtb3J5UHJlc3N1cmVTdGF0dXM6OlN5c3RlbUNyaXRpY2Fs
KTsKICAgICAgICAgcmVsZWFzZU1lbW9yeShDcml0aWNhbDo6WWVzKTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KQEAgLTYwLDcgKzYwLDcgQEAgdm9pZCBNZW1vcnlQcmVzc3VyZUhhbmRsZXI6Ondp
bmRvd3NNZWFzdXJlbWVudFRpbWVyRmlyZWQoKQogICAgIGNvbnN0IGludCBtYXhNZW1vcnlVc2Fn
ZUJ5dGVzID0gMC45ICogMTAyNCAqIDEwMjQgKiAxMDI0OwogCiAgICAgaWYgKGNvdW50ZXJzLlBy
aXZhdGVVc2FnZSA+IG1heE1lbW9yeVVzYWdlQnl0ZXMpIHsKLSAgICAgICAgc2V0VW5kZXJNZW1v
cnlQcmVzc3VyZSh0cnVlKTsKKyAgICAgICAgc2V0TWVtb3J5UHJlc3N1cmVTdGF0dXMoTWVtb3J5
UHJlc3N1cmVTdGF0dXM6OlByb2Nlc3NMaW1pdENyaXRpY2FsKTsKICAgICAgICAgcmVsZWFzZU1l
bW9yeShDcml0aWNhbDo6WWVzKTsKICAgICB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvTWVtb3J5UmVsZWFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL01lbW9y
eVJlbGVhc2UuY3BwCmluZGV4IDFiNGU0ODVmN2E3NWMyMWQ1NjhmZDg1YjI1NDA2ZTI1ZGY1NTYw
YjQuLjkwMWViZTlhNWJlNjYzYjAxOGQxMjFiNmM2YWI5YTUyMGNhMGE4NWEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvTWVtb3J5UmVsZWFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9NZW1vcnlSZWxlYXNlLmNwcApAQCAtNDYsNiArNDYsNyBAQAogI2luY2x1ZGUgIkxv
Z2dpbmcuaCIKICNpbmNsdWRlICJNZW1vcnlDYWNoZS5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKKyNp
bmNsdWRlICJQZXJmb3JtYW5jZUxvZ2dpbmcuaCIKICNpbmNsdWRlICJSZW5kZXJUaGVtZS5oIgog
I2luY2x1ZGUgIlNjcm9sbGluZ1RocmVhZC5oIgogI2luY2x1ZGUgIlN0eWxlU2NvcGUuaCIKQEAg
LTYwLDYgKzYxLDcgQEAKIAogI2lmIFBMQVRGT1JNKENPQ09BKQogI2luY2x1ZGUgIlJlc291cmNl
VXNhZ2VUaHJlYWQuaCIKKyNpbmNsdWRlIDx3dGYvc3BpL2Rhcndpbi9PU1ZhcmlhbnRTUEkuaD4K
ICNlbmRpZgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0xNzUsMjYgKzE3NywzOCBAQCB2b2lk
IHJlbGVhc2VHcmFwaGljc01lbW9yeShDcml0aWNhbCBjcml0aWNhbCwgU3luY2hyb25vdXMgc3lu
Y2hyb25vdXMpCiAgICAgV1RGOjpyZWxlYXNlRmFzdE1hbGxvY0ZyZWVNZW1vcnkoKTsKIH0KIAot
I2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAotc3RhdGljIHVuc2lnbmVkIHBhZ2VDb3VudCgpCisj
aWYgUkVMRUFTRV9MT0dfRElTQUJMRUQKK3ZvaWQgbG9nTWVtb3J5U3RhdGlzdGljcyhMb2dNZW1v
cnlTdGF0aXN0aWNzUmVhc29uKSB7IH0KKyNlbHNlCitzdGF0aWMgY29uc3QgY2hhciogbG9nTWVt
b3J5U3RhdGlzdGljc1JlYXNvbkRlc2NyaXB0aW9uKExvZ01lbW9yeVN0YXRpc3RpY3NSZWFzb24g
cmVhc29uKQogewotICAgIHVuc2lnbmVkIGNvdW50ID0gMDsKLSAgICBQYWdlOjpmb3JFYWNoUGFn
ZShbJl0gKFBhZ2UmIHBhZ2UpIHsKLSAgICAgICAgaWYgKCFwYWdlLmlzVXRpbGl0eVBhZ2UoKSkK
LSAgICAgICAgICAgICsrY291bnQ7Ci0gICAgfSk7Ci0gICAgcmV0dXJuIGNvdW50OworICAgIHN3
aXRjaCAocmVhc29uKSB7CisgICAgY2FzZSBMb2dNZW1vcnlTdGF0aXN0aWNzUmVhc29uOjpEZWJ1
Z05vdGlmaWNhdGlvbjoKKyAgICAgICAgcmV0dXJuICJkZWJ1ZyBub3RpZmljYXRpb24iOworICAg
IGNhc2UgTG9nTWVtb3J5U3RhdGlzdGljc1JlYXNvbjo6V2FybmluZ01lbW9yeVByZXNzdXJlTm90
aWZpY2F0aW9uOgorICAgICAgICByZXR1cm4gIndhcm5pbmcgbWVtb3J5IHByZXNzdXJlIG5vdGlm
aWNhdGlvbiI7CisgICAgY2FzZSBMb2dNZW1vcnlTdGF0aXN0aWNzUmVhc29uOjpDcml0aWNhbE1l
bW9yeVByZXNzdXJlTm90aWZpY2F0aW9uOgorICAgICAgICByZXR1cm4gImNyaXRpY2FsIG1lbW9y
eSBwcmVzc3VyZSBub3RpZmljYXRpb24iOworICAgIGNhc2UgTG9nTWVtb3J5U3RhdGlzdGljc1Jl
YXNvbjo6T3V0T2ZNZW1vcnlEZWF0aDoKKyAgICAgICAgcmV0dXJuICJvdXQgb2YgbWVtb3J5IGRl
YXRoIjsKKyAgICB9OworICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiB9Ci0jZW5k
aWYKIAotdm9pZCBsb2dNZW1vcnlTdGF0aXN0aWNzQXRUaW1lT2ZEZWF0aCgpCit2b2lkIGxvZ01l
bW9yeVN0YXRpc3RpY3MoTG9nTWVtb3J5U3RhdGlzdGljc1JlYXNvbiByZWFzb24pCiB7Ci0jaWYg
IVJFTEVBU0VfTE9HX0RJU0FCTEVECisgICAgY29uc3QgY2hhciogZGVzY3JpcHRpb24gPSBsb2dN
ZW1vcnlTdGF0aXN0aWNzUmVhc29uRGVzY3JpcHRpb24ocmVhc29uKTsKKworICAgIFJFTEVBU0Vf
TE9HKE1lbW9yeVByZXNzdXJlLCAiV2ViS2l0IG1lbW9yeSB1c2FnZSBzdGF0aXN0aWNzIGF0IHRp
bWUgb2YgJSIgUFVCTElDX0xPR19TVFJJTkcgIjoiLCBkZXNjcmlwdGlvbik7CisgICAgYXV0byBz
dGF0cyA9IFBlcmZvcm1hbmNlTG9nZ2luZzo6bWVtb3J5VXNhZ2VTdGF0aXN0aWNzKFNob3VsZElu
Y2x1ZGVFeHBlbnNpdmVDb21wdXRhdGlvbnM6Olllcyk7CisgICAgZm9yIChhdXRvJiBba2V5LCB2
YWxdIDogc3RhdHMpCisgICAgICAgIFJFTEVBU0VfTE9HKE1lbW9yeVByZXNzdXJlLCAiJSIgUFVC
TElDX0xPR19TVFJJTkcgIjogJXp1Iiwga2V5LCB2YWwpOworCiAjaWYgUExBVEZPUk0oQ09DT0Ep
CiAgICAgYXV0byBwYWdlU2l6ZSA9IHZtUGFnZVNpemUoKTsKICAgICBhdXRvIHBhZ2VzID0gcGFn
ZXNQZXJWTVRhZygpOwogCi0gICAgUkVMRUFTRV9MT0coTWVtb3J5UHJlc3N1cmUsICJEaXJ0eSBt
ZW1vcnkgcGVyIFZNIHRhZyBhdCB0aW1lIG9mIGRlYXRoOiIpOworICAgIFJFTEVBU0VfTE9HKE1l
bW9yeVByZXNzdXJlLCAiRGlydHkgbWVtb3J5IHBlciBWTSB0YWcgYXQgdGltZSBvZiAlIiBQVUJM
SUNfTE9HX1NUUklORyAiOiIsIGRlc2NyaXB0aW9uKTsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAw
OyBpIDwgMjU2OyArK2kpIHsKICAgICAgICAgc2l6ZV90IGRpcnR5ID0gcGFnZXNbaV0uZGlydHkg
KiBwYWdlU2l6ZTsKICAgICAgICAgaWYgKCFkaXJ0eSkKQEAgLTIwMiwyOCArMjE2LDIyIEBAIHZv
aWQgbG9nTWVtb3J5U3RhdGlzdGljc0F0VGltZU9mRGVhdGgoKQogICAgICAgICBTdHJpbmcgdGFn
TmFtZSA9IGRpc3BsYXlOYW1lRm9yVk1UYWcoaSk7CiAgICAgICAgIGlmICghdGFnTmFtZSkKICAg
ICAgICAgICAgIHRhZ05hbWUgPSBtYWtlU3RyaW5nKCJUYWcgIiwgaSk7Ci0gICAgICAgIFJFTEVB
U0VfTE9HKE1lbW9yeVByZXNzdXJlLCAiJTE2czogJWx1IE1CIiwgdGFnTmFtZS5sYXRpbjEoKS5k
YXRhKCksIGRpcnR5IC8gTUIpOworICAgICAgICBSRUxFQVNFX0xPRyhNZW1vcnlQcmVzc3VyZSwg
IiUiIFBVQkxJQ19MT0dfU1RSSU5HICI6ICVsdSBNQiBpbiAlenUgcmVnaW9ucyIsIHRhZ05hbWUu
bGF0aW4xKCkuZGF0YSgpLCBkaXJ0eSAvIE1CLCBwYWdlc1tpXS5yZWdpb25Db3VudCk7CiAgICAg
fQorCisgICAgYm9vbCBzaG91bGRMb2dKYXZhU2NyaXB0T2JqZWN0Q291bnRzID0gb3NfdmFyaWFu
dF9hbGxvd3NfaW50ZXJuYWxfc2VjdXJpdHlfcG9saWNpZXMoImNvbS5hcHBsZS5XZWJLaXQiKTsK
KyAgICBpZiAoIXNob3VsZExvZ0phdmFTY3JpcHRPYmplY3RDb3VudHMpCisgICAgICAgIHJldHVy
bjsKICNlbmRpZgogCiAgICAgYXV0byYgdm0gPSBjb21tb25WTSgpOwogICAgIEpTQzo6SlNMb2Nr
SG9sZGVyIGxvY2tlcih2bSk7Ci0gICAgUkVMRUFTRV9MT0coTWVtb3J5UHJlc3N1cmUsICJNZW1v
cnkgdXNhZ2Ugc3RhdGlzdGljcyBhdCB0aW1lIG9mIGRlYXRoOiIpOwotICAgIFJFTEVBU0VfTE9H
KE1lbW9yeVByZXNzdXJlLCAiR0MgaGVhcCBzaXplOiAlenUiLCB2bS5oZWFwLnNpemUoKSk7Ci0g
ICAgUkVMRUFTRV9MT0coTWVtb3J5UHJlc3N1cmUsICJHQyBoZWFwIGV4dHJhIG1lbW9yeSBzaXpl
OiAlenUiLCB2bS5oZWFwLmV4dHJhTWVtb3J5U2l6ZSgpKTsKLSNpZiBFTkFCTEUoUkVTT1VSQ0Vf
VVNBR0UpCi0gICAgUkVMRUFTRV9MT0coTWVtb3J5UHJlc3N1cmUsICJHQyBoZWFwIGV4dGVybmFs
IG1lbW9yeTogJXp1Iiwgdm0uaGVhcC5leHRlcm5hbE1lbW9yeVNpemUoKSk7Ci0jZW5kaWYKLSAg
ICBSRUxFQVNFX0xPRyhNZW1vcnlQcmVzc3VyZSwgIkdsb2JhbCBvYmplY3QgY291bnQ6ICV6dSIs
IHZtLmhlYXAuZ2xvYmFsT2JqZWN0Q291bnQoKSk7Ci0KLSAgICBSRUxFQVNFX0xPRyhNZW1vcnlQ
cmVzc3VyZSwgIlBhZ2UgY291bnQ6ICV1IiwgcGFnZUNvdW50KCkpOwotICAgIFJFTEVBU0VfTE9H
KE1lbW9yeVByZXNzdXJlLCAiRG9jdW1lbnQgY291bnQ6ICV1IiwgRG9jdW1lbnQ6OmFsbERvY3Vt
ZW50cygpLnNpemUoKSk7Ci0gICAgUkVMRUFTRV9MT0coTWVtb3J5UHJlc3N1cmUsICJMaXZlIEph
dmFTY3JpcHQgb2JqZWN0czoiKTsKKyAgICBSRUxFQVNFX0xPRyhNZW1vcnlQcmVzc3VyZSwgIkxp
dmUgSmF2YVNjcmlwdCBvYmplY3RzIGF0IHRpbWUgb2YgJSIgUFVCTElDX0xPR19TVFJJTkcgIjoi
LCBkZXNjcmlwdGlvbik7CiAgICAgYXV0byB0eXBlQ291bnRzID0gdm0uaGVhcC5vYmplY3RUeXBl
Q291bnRzKCk7CiAgICAgZm9yIChhdXRvJiBpdCA6ICp0eXBlQ291bnRzKQogICAgICAgICBSRUxF
QVNFX0xPRyhNZW1vcnlQcmVzc3VyZSwgIiAgJXM6ICVkIiwgaXQua2V5LCBpdC52YWx1ZSk7Ci0j
ZW5kaWYKIH0KKyNlbmRpZgogCiAjaWYgIVBMQVRGT1JNKENPQ09BKQogdm9pZCBwbGF0Zm9ybVJl
bGVhc2VNZW1vcnkoQ3JpdGljYWwpIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9NZW1vcnlSZWxlYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL01lbW9yeVJlbGVhc2UuaApp
bmRleCAyMGZhMzY4MDgyMWIwMWZiODEzNzRlNWM1OWE1NzQxYzY4OWI3MzlmLi41YzgxM2JhYTUw
NzhiMTg2ZDFkZWMzZGY1NGU0MWMwYmQ4OWQ3ZWZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL01lbW9yeVJlbGVhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL01lbW9yeVJl
bGVhc2UuaApAQCAtMzEsNiArMzEsMTIgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBlbnVtIGNs
YXNzIE1haW50YWluQmFja0ZvcndhcmRDYWNoZSA6IGJvb2wgeyBObywgWWVzIH07CiBlbnVtIGNs
YXNzIE1haW50YWluTWVtb3J5Q2FjaGUgOiBib29sIHsgTm8sIFllcyB9OworZW51bSBjbGFzcyBM
b2dNZW1vcnlTdGF0aXN0aWNzUmVhc29uIHsKKyAgICBEZWJ1Z05vdGlmaWNhdGlvbiwKKyAgICBX
YXJuaW5nTWVtb3J5UHJlc3N1cmVOb3RpZmljYXRpb24sCisgICAgQ3JpdGljYWxNZW1vcnlQcmVz
c3VyZU5vdGlmaWNhdGlvbiwKKyAgICBPdXRPZk1lbW9yeURlYXRoCit9OwogCiBXRUJDT1JFX0VY
UE9SVCB2b2lkIHJlbGVhc2VNZW1vcnkoQ3JpdGljYWwsIFN5bmNocm9ub3VzLCBNYWludGFpbkJh
Y2tGb3J3YXJkQ2FjaGUgPSBNYWludGFpbkJhY2tGb3J3YXJkQ2FjaGU6Ok5vLCBNYWludGFpbk1l
bW9yeUNhY2hlID0gTWFpbnRhaW5NZW1vcnlDYWNoZTo6Tm8pOwogdm9pZCBwbGF0Zm9ybVJlbGVh
c2VNZW1vcnkoQ3JpdGljYWwpOwpAQCAtMzgsNiArNDQsNiBAQCBXRUJDT1JFX0VYUE9SVCB2b2lk
IHJlbGVhc2VHcmFwaGljc01lbW9yeShDcml0aWNhbCwgU3luY2hyb25vdXMpOwogdm9pZCBwbGF0
Zm9ybVJlbGVhc2VHcmFwaGljc01lbW9yeShDcml0aWNhbCk7CiB2b2lkIGpldHRpc29uRXhwZW5z
aXZlT2JqZWN0c09uVG9wTGV2ZWxOYXZpZ2F0aW9uKCk7CiBXRUJDT1JFX0VYUE9SVCB2b2lkIHJl
Z2lzdGVyTWVtb3J5UmVsZWFzZU5vdGlmeUNhbGxiYWNrcygpOwotV0VCQ09SRV9FWFBPUlQgdm9p
ZCBsb2dNZW1vcnlTdGF0aXN0aWNzQXRUaW1lT2ZEZWF0aCgpOworV0VCQ09SRV9FWFBPUlQgdm9p
ZCBsb2dNZW1vcnlTdGF0aXN0aWNzKExvZ01lbW9yeVN0YXRpc3RpY3NSZWFzb24pOwogCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZv
cm1hbmNlTG9nZ2luZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlTG9nZ2lu
Zy5jcHAKaW5kZXggYWNhODc1MDUwZmMyMTMxODcyMTFiYmQ2MjU4ZDBjOTczMjBjZDRjZC4uYjM5
OGQ1ZWY5YmUxODgyOGViMzMyY2JjYTkzNmUzY2ExMzZjNGY0MyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZUxvZ2dpbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGVyZm9ybWFuY2VMb2dnaW5nLmNwcApAQCAtNTYsMjUgKzU2LDI3IEBAIHN0YXRpYyBj
b25zdCBjaGFyKiB0b1N0cmluZyhQZXJmb3JtYW5jZUxvZ2dpbmc6OlBvaW50T2ZJbnRlcmVzdCBw
b2kpCiBIYXNoTWFwPGNvbnN0IGNoYXIqLCBzaXplX3Q+IFBlcmZvcm1hbmNlTG9nZ2luZzo6bWVt
b3J5VXNhZ2VTdGF0aXN0aWNzKFNob3VsZEluY2x1ZGVFeHBlbnNpdmVDb21wdXRhdGlvbnMgaW5j
bHVkZUV4cGVuc2l2ZSkKIHsKICAgICBIYXNoTWFwPGNvbnN0IGNoYXIqLCBzaXplX3Q+IHN0YXRz
OworICAgIHN0YXRzLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkoMzIpOworCisgICAgc3RhdHMuYWRk
KCJwYWdlX2NvdW50IiwgUGFnZTo6bm9uVXRpbGl0eVBhZ2VDb3VudCgpKTsKKyAgICBzdGF0cy5h
ZGQoImJhY2tmb3J3YXJkX2NhY2hlX3BhZ2VfY291bnQiLCBCYWNrRm9yd2FyZENhY2hlOjpzaW5n
bGV0b24oKS5wYWdlQ291bnQoKSk7CisgICAgc3RhdHMuYWRkKCJkb2N1bWVudF9jb3VudCIsIERv
Y3VtZW50OjphbGxEb2N1bWVudHMoKS5zaXplKCkpOwogCiAgICAgYXV0byYgdm0gPSBjb21tb25W
TSgpOwogICAgIEpTQzo6SlNMb2NrSG9sZGVyIGxvY2tlcih2bSk7Ci0gICAgc3RhdHMuYWRkKCJq
YXZhc2NyaXB0X2djX2hlYXBfY2FwYWNpdHkiLCB2bS5oZWFwLmNhcGFjaXR5KCkpOwotICAgIHN0
YXRzLmFkZCgiamF2YXNjcmlwdF9nY19oZWFwX2V4dHJhX21lbW9yeV9zaXplIiwgdm0uaGVhcC5l
eHRyYU1lbW9yeVNpemUoKSk7Ci0KLSAgICBhdXRvJiBiYWNrRm9yd2FyZENhY2hlID0gQmFja0Zv
cndhcmRDYWNoZTo6c2luZ2xldG9uKCk7Ci0gICAgc3RhdHMuYWRkKCJiYWNrZm9yd2FyZF9jYWNo
ZV9wYWdlX2NvdW50IiwgYmFja0ZvcndhcmRDYWNoZS5wYWdlQ291bnQoKSk7Ci0KLSAgICBzdGF0
cy5hZGQoImRvY3VtZW50X2NvdW50IiwgRG9jdW1lbnQ6OmFsbERvY3VtZW50cygpLnNpemUoKSk7
CisgICAgc3RhdHMuYWRkKCJqYXZhc2NyaXB0X2djX2hlYXBfY2FwYWNpdHlfbWIiLCB2bS5oZWFw
LmNhcGFjaXR5KCkgPj4gMjApOworICAgIHN0YXRzLmFkZCgiamF2YXNjcmlwdF9nY19oZWFwX2V4
dHJhX21lbW9yeV9zaXplX21iIiwgdm0uaGVhcC5leHRyYU1lbW9yeVNpemUoKSA+PiAyMCk7CiAK
ICAgICBpZiAoaW5jbHVkZUV4cGVuc2l2ZSA9PSBTaG91bGRJbmNsdWRlRXhwZW5zaXZlQ29tcHV0
YXRpb25zOjpZZXMpIHsKLSAgICAgICAgc3RhdHMuYWRkKCJqYXZhc2NyaXB0X2djX2hlYXBfc2l6
ZSIsIHZtLmhlYXAuc2l6ZSgpKTsKKyAgICAgICAgc3RhdHMuYWRkKCJqYXZhc2NyaXB0X2djX2hl
YXBfc2l6ZV9tYiIsIHZtLmhlYXAuc2l6ZSgpID4+IDIwKTsKICAgICAgICAgc3RhdHMuYWRkKCJq
YXZhc2NyaXB0X2djX29iamVjdF9jb3VudCIsIHZtLmhlYXAub2JqZWN0Q291bnQoKSk7CiAgICAg
ICAgIHN0YXRzLmFkZCgiamF2YXNjcmlwdF9nY19wcm90ZWN0ZWRfb2JqZWN0X2NvdW50Iiwgdm0u
aGVhcC5wcm90ZWN0ZWRPYmplY3RDb3VudCgpKTsKICAgICAgICAgc3RhdHMuYWRkKCJqYXZhc2Ny
aXB0X2djX2dsb2JhbF9vYmplY3RfY291bnQiLCB2bS5oZWFwLmdsb2JhbE9iamVjdENvdW50KCkp
OwogICAgICAgICBzdGF0cy5hZGQoImphdmFzY3JpcHRfZ2NfcHJvdGVjdGVkX2dsb2JhbF9vYmpl
Y3RfY291bnQiLCB2bS5oZWFwLnByb3RlY3RlZEdsb2JhbE9iamVjdENvdW50KCkpOwogICAgIH0K
IAorICAgIGdldFBsYXRmb3JtTWVtb3J5VXNhZ2VTdGF0aXN0aWNzKHN0YXRzKTsKKwogICAgIHJl
dHVybiBzdGF0czsKIH0KIApAQCAtOTgsMTEgKzEwMCw4IEBAIHZvaWQgUGVyZm9ybWFuY2VMb2dn
aW5nOjpkaWRSZWFjaFBvaW50T2ZJbnRlcmVzdChQb2ludE9mSW50ZXJlc3QgcG9pKQogICAgIGlm
IChtX3BhZ2UubWFpbkZyYW1lKCkubG9hZGVyKCkuY2xpZW50KCkuaXNFbXB0eUZyYW1lTG9hZGVy
Q2xpZW50KCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGF1dG8gc3RhdHMgPSBtZW1vcnlVc2Fn
ZVN0YXRpc3RpY3MoU2hvdWxkSW5jbHVkZUV4cGVuc2l2ZUNvbXB1dGF0aW9uczo6Tm8pOwotICAg
IGdldFBsYXRmb3JtTWVtb3J5VXNhZ2VTdGF0aXN0aWNzKHN0YXRzKTsKLQogICAgIFJFTEVBU0Vf
TE9HKFBlcmZvcm1hbmNlTG9nZ2luZywgIk1lbW9yeSB1c2FnZSBpbmZvIGR1bXAgYXQgJXM6Iiwg
dG9TdHJpbmcocG9pKSk7Ci0gICAgZm9yIChhdXRvJiBpdCA6IHN0YXRzKQorICAgIGZvciAoYXV0
byYgaXQgOiBtZW1vcnlVc2FnZVN0YXRpc3RpY3MoU2hvdWxkSW5jbHVkZUV4cGVuc2l2ZUNvbXB1
dGF0aW9uczo6Tm8pKQogICAgICAgICBSRUxFQVNFX0xPRyhQZXJmb3JtYW5jZUxvZ2dpbmcsICIg
ICVzOiAlenUiLCBpdC5rZXksIGl0LnZhbHVlKTsKICNlbmRpZgogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZUxvZ2dpbmcuaCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvUGVyZm9ybWFuY2VMb2dnaW5nLmgKaW5kZXggMzJiNGMwZTlhMWUxMjE4MjlkYWI2ZmJjZWMw
ODljYWJkZDY5OTkwNC4uZTBmN2RjYmY3ZTQ5ZTNiZTE0ZDVlNjlhMzQyODExOWY4NzU0OWI2YyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZUxvZ2dpbmcuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlTG9nZ2luZy5oCkBAIC0zMiw3ICszMiw3
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgUGFnZTsKIAotZW51bSBjbGFzcyBTaG91
bGRJbmNsdWRlRXhwZW5zaXZlQ29tcHV0YXRpb25zIHsgTm8sIFllcyB9OworZW51bSBjbGFzcyBT
aG91bGRJbmNsdWRlRXhwZW5zaXZlQ29tcHV0YXRpb25zIDogYm9vbCB7IE5vLCBZZXMgfTsKIAog
Y2xhc3MgUGVyZm9ybWFuY2VMb2dnaW5nIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY29jb2EvUGVyZm9ybWFuY2VMb2dnaW5n
Q29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NvY29hL1BlcmZvcm1hbmNlTG9nZ2luZ0Nv
Y29hLm1tCmluZGV4IDI4OTZmZTE5NzZmZmIxOGFkZmE3OTY2NmZlNjhlMTYzN2FiMjUwZmMuLjMx
MjVjNWM2NjUwNzg0YjhhYzc4NjU4ZGUyOGFjZWRkZDU1MWNiNzYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvY29jb2EvUGVyZm9ybWFuY2VMb2dnaW5nQ29jb2EubW0KKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9jb2NvYS9QZXJmb3JtYW5jZUxvZ2dpbmdDb2NvYS5tbQpAQCAtNDgs
MTEgKzQ4LDExIEBAIHZvaWQgUGVyZm9ybWFuY2VMb2dnaW5nOjpnZXRQbGF0Zm9ybU1lbW9yeVVz
YWdlU3RhdGlzdGljcyhIYXNoTWFwPGNvbnN0IGNoYXIqLCBzCiAgICAga2Vybl9yZXR1cm5fdCBl
cnIgPSB0YXNrX2luZm8obWFjaF90YXNrX3NlbGYoKSwgVEFTS19WTV9JTkZPLCAodGFza19pbmZv
X3QpICZ2bUluZm8sICZjb3VudCk7CiAgICAgaWYgKGVyciAhPSBLRVJOX1NVQ0NFU1MpCiAgICAg
ICAgIHJldHVybjsKLSAgICBzdGF0cy5hZGQoImludGVybmFsIiwgc3RhdGljX2Nhc3Q8c2l6ZV90
Pih2bUluZm8uaW50ZXJuYWwpKTsKLSAgICBzdGF0cy5hZGQoImNvbXByZXNzZWQiLCBzdGF0aWNf
Y2FzdDxzaXplX3Q+KHZtSW5mby5jb21wcmVzc2VkKSk7Ci0gICAgc3RhdHMuYWRkKCJwaHlzX2Zv
b3RwcmludCIsIHN0YXRpY19jYXN0PHNpemVfdD4odm1JbmZvLnBoeXNfZm9vdHByaW50KSk7Ci0g
ICAgc3RhdHMuYWRkKCJyZXNpZGVudF9zaXplIiwgc3RhdGljX2Nhc3Q8c2l6ZV90Pih2bUluZm8u
cmVzaWRlbnRfc2l6ZSkpOwotICAgIHN0YXRzLmFkZCgidmlydHVhbF9zaXplIiwgc3RhdGljX2Nh
c3Q8c2l6ZV90Pih2bUluZm8udmlydHVhbF9zaXplKSk7CisgICAgc3RhdHMuYWRkKCJpbnRlcm5h
bF9tYiIsIHN0YXRpY19jYXN0PHNpemVfdD4odm1JbmZvLmludGVybmFsID4+IDIwKSk7CisgICAg
c3RhdHMuYWRkKCJjb21wcmVzc2VkX21iIiwgc3RhdGljX2Nhc3Q8c2l6ZV90Pih2bUluZm8uY29t
cHJlc3NlZCA+PiAyMCkpOworICAgIHN0YXRzLmFkZCgicGh5c19mb290cHJpbnRfbWIiLCBzdGF0
aWNfY2FzdDxzaXplX3Q+KHZtSW5mby5waHlzX2Zvb3RwcmludCA+PiAyMCkpOworICAgIHN0YXRz
LmFkZCgicmVzaWRlbnRfc2l6ZV9tYiIsIHN0YXRpY19jYXN0PHNpemVfdD4odm1JbmZvLnJlc2lk
ZW50X3NpemUgPj4gMjApKTsKKyAgICBzdGF0cy5hZGQoInZpcnR1YWxfc2l6ZV9tYiIsIHN0YXRp
Y19jYXN0PHNpemVfdD4odm1JbmZvLnZpcnR1YWxfc2l6ZSA+PiAyMCkpOwogfQogCiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKaW5kZXggZDg2MjllODcyOTE0ZjA3ODFj
NmM0MTJjNzI1NDlhMjhiYmFlNzBkMC4uNzk0YjliNjVlZTQxY2I4YzhmZTY4MmFmNDlmM2E2OGJj
YTQ1ZGEyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3Mu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcApAQCAtMTM1
LDYgKzEzNSw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9TZXJ2aWNlV29ya2VyQ29udGV4dERhdGEu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL1NldHRpbmdzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Vc2Vy
R2VzdHVyZUluZGljYXRvci5oPgorI2luY2x1ZGUgPHBhbC9Mb2dnaW5nLmg+CiAjaW5jbHVkZSA8
d3RmL0FsZ29yaXRobXMuaD4KICNpbmNsdWRlIDx3dGYvQ2FsbGJhY2tBZ2dyZWdhdG9yLmg+CiAj
aW5jbHVkZSA8d3RmL0xhbmd1YWdlLmg+CkBAIC00MjksNyArNDMwLDcgQEAgdm9pZCBXZWJQcm9j
ZXNzOjppbml0aWFsaXplV2ViUHJvY2VzcyhXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiYg
cGFyYW1ldGVycykKICNpZiBFTkFCTEUoUEVSSU9ESUNfTUVNT1JZX01PTklUT1IpCiAgICAgICAg
IG1lbW9yeVByZXNzdXJlSGFuZGxlci5zZXRTaG91bGRVc2VQZXJpb2RpY01lbW9yeU1vbml0b3Io
dHJ1ZSk7CiAgICAgICAgIG1lbW9yeVByZXNzdXJlSGFuZGxlci5zZXRNZW1vcnlLaWxsQ2FsbGJh
Y2soW3RoaXNdICgpIHsKLSAgICAgICAgICAgIFdlYkNvcmU6OmxvZ01lbW9yeVN0YXRpc3RpY3NB
dFRpbWVPZkRlYXRoKCk7CisgICAgICAgICAgICBXZWJDb3JlOjpsb2dNZW1vcnlTdGF0aXN0aWNz
KExvZ01lbW9yeVN0YXRpc3RpY3NSZWFzb246Ok91dE9mTWVtb3J5RGVhdGgpOwogICAgICAgICAg
ICAgaWYgKE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6c2luZ2xldG9uKCkucHJvY2Vzc1N0YXRlKCkg
PT0gV2Vic2FtUHJvY2Vzc1N0YXRlOjpBY3RpdmUpCiAgICAgICAgICAgICAgICAgcGFyZW50UHJv
Y2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpEaWRFeGNl
ZWRBY3RpdmVNZW1vcnlMaW1pdCgpLCAwKTsKICAgICAgICAgICAgIGVsc2UKQEAgLTQzNywxMyAr
NDM4LDQwIEBAIHZvaWQgV2ViUHJvY2Vzczo6aW5pdGlhbGl6ZVdlYlByb2Nlc3MoV2ViUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMpCiAgICAgICAgIH0pOwogICAgICAgICBt
ZW1vcnlQcmVzc3VyZUhhbmRsZXIuc2V0RGlkRXhjZWVkSW5hY3RpdmVMaW1pdFdoaWxlQWN0aXZl
Q2FsbGJhY2soW3RoaXNdICgpIHsKICAgICAgICAgICAgIHBhcmVudFByb2Nlc3NDb25uZWN0aW9u
KCktPnNlbmQoTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6RGlkRXhjZWVkSW5hY3RpdmVNZW1v
cnlMaW1pdFdoaWxlQWN0aXZlKCksIDApOworCisgICAgICAgICAgICBpZiAoIW1fbG9nZ2VkUHJv
Y2Vzc0xpbWl0Q3JpdGljYWxNZW1vcnlTdGF0aXN0aWNzKSB7CisgICAgICAgICAgICAgICAgbV9s
b2dnZWRQcm9jZXNzTGltaXRDcml0aWNhbE1lbW9yeVN0YXRpc3RpY3MgPSB0cnVlOworICAgICAg
ICAgICAgICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChbXSB7CisgICAgICAgICAgICAgICAg
ICAgIFdlYkNvcmU6OmxvZ01lbW9yeVN0YXRpc3RpY3MoTG9nTWVtb3J5U3RhdGlzdGljc1JlYXNv
bjo6Q3JpdGljYWxNZW1vcnlQcmVzc3VyZU5vdGlmaWNhdGlvbik7CisgICAgICAgICAgICAgICAg
fSk7CisgICAgICAgICAgICB9CiAgICAgICAgIH0pOwogI2VuZGlmCi0gICAgICAgIG1lbW9yeVBy
ZXNzdXJlSGFuZGxlci5zZXRNZW1vcnlQcmVzc3VyZVN0YXR1c0NoYW5nZWRDYWxsYmFjayhbdGhp
c10oYm9vbCBpc1VuZGVyTWVtb3J5UHJlc3N1cmUpIHsKKyAgICAgICAgbWVtb3J5UHJlc3N1cmVI
YW5kbGVyLnNldE1lbW9yeVByZXNzdXJlU3RhdHVzQ2hhbmdlZENhbGxiYWNrKFt0aGlzXShXVEY6
Ok1lbW9yeVByZXNzdXJlU3RhdHVzIG1lbW9yeVByZXNzdXJlU3RhdHVzKSB7CiAgICAgICAgICAg
ICBpZiAocGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKSkKLSAgICAgICAgICAgICAgICBwYXJlbnRQ
cm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6Ok1lbW9y
eVByZXNzdXJlU3RhdHVzQ2hhbmdlZChpc1VuZGVyTWVtb3J5UHJlc3N1cmUpLCAwKTsKKyAgICAg
ICAgICAgICAgICBwYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQ
cm9jZXNzUHJveHk6Ok1lbW9yeVByZXNzdXJlU3RhdHVzQ2hhbmdlZChNZW1vcnlQcmVzc3VyZUhh
bmRsZXI6OnNpbmdsZXRvbigpLmlzVW5kZXJNZW1vcnlQcmVzc3VyZSgpKSwgMCk7CisKKyAgICAg
ICAgICAgIHN0ZDo6b3B0aW9uYWw8TG9nTWVtb3J5U3RhdGlzdGljc1JlYXNvbj4gbG9nTWVtb3J5
U3RhdGlzdGljc1JlYXNvbjsKKyAgICAgICAgICAgIGlmIChtZW1vcnlQcmVzc3VyZVN0YXR1cyA9
PSBXVEY6Ok1lbW9yeVByZXNzdXJlU3RhdHVzOjpQcm9jZXNzTGltaXRXYXJuaW5nICYmICFtX2xv
Z2dlZFByb2Nlc3NMaW1pdFdhcm5pbmdNZW1vcnlTdGF0aXN0aWNzKSB7CisgICAgICAgICAgICAg
ICAgbG9nTWVtb3J5U3RhdGlzdGljc1JlYXNvbiA9IExvZ01lbW9yeVN0YXRpc3RpY3NSZWFzb246
Oldhcm5pbmdNZW1vcnlQcmVzc3VyZU5vdGlmaWNhdGlvbjsKKyAgICAgICAgICAgICAgICBtX2xv
Z2dlZFByb2Nlc3NMaW1pdFdhcm5pbmdNZW1vcnlTdGF0aXN0aWNzID0gdHJ1ZTsKKyAgICAgICAg
ICAgIH0gZWxzZSBpZiAobWVtb3J5UHJlc3N1cmVTdGF0dXMgPT0gV1RGOjpNZW1vcnlQcmVzc3Vy
ZVN0YXR1czo6UHJvY2Vzc0xpbWl0Q3JpdGljYWwgJiYgIW1fbG9nZ2VkUHJvY2Vzc0xpbWl0Q3Jp
dGljYWxNZW1vcnlTdGF0aXN0aWNzKSB7CisgICAgICAgICAgICAgICAgbG9nTWVtb3J5U3RhdGlz
dGljc1JlYXNvbiA9IExvZ01lbW9yeVN0YXRpc3RpY3NSZWFzb246OkNyaXRpY2FsTWVtb3J5UHJl
c3N1cmVOb3RpZmljYXRpb247CisgICAgICAgICAgICAgICAgbV9sb2dnZWRQcm9jZXNzTGltaXRD
cml0aWNhbE1lbW9yeVN0YXRpc3RpY3MgPSB0cnVlOworICAgICAgICAgICAgfQorCisgICAgICAg
ICAgICBpZiAobG9nTWVtb3J5U3RhdGlzdGljc1JlYXNvbikgeworICAgICAgICAgICAgICAgIC8v
IExvZyBzdGF0cyBpbiB0aGUgbmV4dCB0dXJuIG9mIHRoZSBydW4gbG9vcCBzbyB0aGF0IGl0IHJ1
bnMgYWZ0ZXIgdGhlIGxvdyBtZW1vcnkgaGFuZGxlci4KKyAgICAgICAgICAgICAgICBSdW5Mb29w
OjptYWluKCkuZGlzcGF0Y2goW3JlYXNvbiA9ICpsb2dNZW1vcnlTdGF0aXN0aWNzUmVhc29uXSB7
CisgICAgICAgICAgICAgICAgICAgIFdlYkNvcmU6OmxvZ01lbW9yeVN0YXRpc3RpY3MocmVhc29u
KTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0KICAgICAgICAgfSk7CiAgICAg
ICAgIG1lbW9yeVByZXNzdXJlSGFuZGxlci5pbnN0YWxsKCk7CisKKyAgICAgICAgUEFMOjpyZWdp
c3Rlck5vdGlmeUNhbGxiYWNrKCJjb20uYXBwbGUuV2ViS2l0LmxvZ01lbVN0YXRzIiwgW10gewor
ICAgICAgICAgICAgV2ViQ29yZTo6bG9nTWVtb3J5U3RhdGlzdGljcyhMb2dNZW1vcnlTdGF0aXN0
aWNzUmVhc29uOjpEZWJ1Z05vdGlmaWNhdGlvbik7CisgICAgICAgIH0pOwogICAgIH0KIAogICAg
IFNhbmRib3hFeHRlbnNpb246OmNvbnN1bWVQZXJtYW5lbnRseShwYXJhbWV0ZXJzLmFkZGl0aW9u
YWxTYW5kYm94RXh0ZW5zaW9uSGFuZGxlcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nl
c3MuaAppbmRleCAyMzUzNDI1MjZlZjdhNzYxMGNiMjcyMzIwYjRkNjM4NjRkZWUwNjU3Li5mZWRl
MDMzNjMxZTk5MTczMTk0YTYwNjFmMjg3ODI4MmMzMTcyMzJiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQcm9jZXNzLmgKQEAgLTcwNyw2ICs3MDcsOCBAQCBwcml2YXRlOgogI2VuZGlmCiAK
ICAgICBib29sIG1fc3VwcHJlc3NNZW1vcnlQcmVzc3VyZUhhbmRsZXIgeyBmYWxzZSB9OworICAg
IGJvb2wgbV9sb2dnZWRQcm9jZXNzTGltaXRXYXJuaW5nTWVtb3J5U3RhdGlzdGljcyB7IGZhbHNl
IH07CisgICAgYm9vbCBtX2xvZ2dlZFByb2Nlc3NMaW1pdENyaXRpY2FsTWVtb3J5U3RhdGlzdGlj
cyB7IGZhbHNlIH07CiAjaWYgUExBVEZPUk0oTUFDKQogICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJD
b3JlOjpDUFVNb25pdG9yPiBtX2NwdU1vbml0b3I7CiAgICAgc3RkOjpvcHRpb25hbDxkb3VibGU+
IG1fY3B1TGltaXQ7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>443977</attachid>
            <date>2021-11-11 11:12:47 -0800</date>
            <delta_ts>2021-11-11 11:16:12 -0800</delta_ts>
            <desc>patch for landing</desc>
            <filename>bug-232976-20211111111246.patch</filename>
            <type>text/plain</type>
            <size>32346</size>
            <attacher name="Ben Nham">nham</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1NjA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDFhNGE1NTdlZjZjNDUwMmNlMjY5NTJi
MzVmOWM1MDBiN2FjNzQyNjAuLjRkMWM5MWMxZmZkZDRlZDg1ZjYwZGY0ZWU1YjM3MTk0MmE1MGE2
NGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMzcgQEAKKzIwMjEtMTEtMTAgIEJlbiBOaGFtICA8bmhhbUBhcHBs
ZS5jb20+CisKKyAgICAgICAgTG9nIG1lbW9yeSB1c2FnZSBtZXRhZGF0YSB3aGVuIFdlYkNvbnRl
bnQgY3Jvc3NlcyBjcml0aWNhbCBvciB3YXJuaW5nIGxldmVsIG1lbW9yeSB0aHJlc2hvbGRzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzI5NzYKKwor
ICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICBGaXhlZCBzZXZlcmFs
IGlzc3VlcyB3aXRoIG1lbW9yeSB1c2FnZSB0cmFja2luZzoKKworICAgICAgICAgLSBwYWdlc1Bl
clZNVGFnIG5vdyBwcm9wZXJseSBhY2NvdW50cyBmb3Igc3dhcHBlZC1vdXQgcGFnZXMgaW4gaXRz
IGZvb3RwcmludCBjYWxjdWxhdGlvbiwKKyAgICAgICAgICAgYXMgZm9vdHByaW50KDEpIGFscmVh
ZHkgZG9lcy4KKyAgICAgICAgIC0gZGlzcGxheU5hbWVQZXJWTVRhZyBub3cgaW5jbHVkZXMgYWxs
IG9mIHRoZSBtb3N0IGNvbW1vbiBWTSB0YWdzIGFzc29jaWF0ZWQgd2l0aCBXZWJLaXQuCisgICAg
ICAgICAtIE1lbW9yeVByZXNzdXJlSGFuZGxlciBub3cga25vd3MgdGhlIHNwZWNpZmljIHR5cGUg
b2YgcHJlc3N1cmUgZXZlbnQgdGhhdCBvY2N1cnJlZC4gVGhpcworICAgICAgICAgICBhbGxvd3Mg
aXQgdG8gZGlmZmVyZW50aWF0ZSBiZXR3ZWVuIHRoZSBlbnRpcmUgc3lzdGVtIGJlaW5nIGF0IGEg
d2FybmluZyBwcmVzc3VyZSBsZXZlbAorICAgICAgICAgICB2cy4ganVzdCB0aGlzIHByb2Nlc3Mg
aGl0dGluZyBpdHMgd2FybmluZyBtZW1vcnkgbGV2ZWwgbGltaXQuCisKKyAgICAgICAgKiB3dGYv
TWVtb3J5UHJlc3N1cmVIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdURjo6TWVtb3J5UHJlc3N1cmVI
YW5kbGVyOjpzZXRNZW1vcnlQcmVzc3VyZVN0YXR1cyk6CisgICAgICAgIChXVEY6Ok1lbW9yeVBy
ZXNzdXJlSGFuZGxlcjo6bWVtb3J5UHJlc3N1cmVTdGF0dXNDaGFuZ2VkKToKKyAgICAgICAgKFdU
Rjo6TWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpzZXRVbmRlck1lbW9yeVByZXNzdXJlKTogRGVsZXRl
ZC4KKyAgICAgICAgKiB3dGYvTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmg6CisgICAgICAgIChXVEY6
Ok1lbW9yeVByZXNzdXJlSGFuZGxlcjo6c2V0TWVtb3J5UHJlc3N1cmVTdGF0dXNDaGFuZ2VkQ2Fs
bGJhY2spOgorICAgICAgICAoV1RGOjpNZW1vcnlQcmVzc3VyZUhhbmRsZXI6OmlzVW5kZXJNZW1v
cnlQcmVzc3VyZSBjb25zdCk6CisgICAgICAgICogd3RmL1Jlc291cmNlVXNhZ2UuaDoKKyAgICAg
ICAgKiB3dGYvY29jb2EvTWVtb3J5UHJlc3N1cmVIYW5kbGVyQ29jb2EubW06CisgICAgICAgIChX
VEY6Ok1lbW9yeVByZXNzdXJlSGFuZGxlcjo6aW5zdGFsbCk6CisgICAgICAgICogd3RmL2NvY29h
L1Jlc291cmNlVXNhZ2VDb2NvYS5jcHA6CisgICAgICAgIChXVEY6OmRpc3BsYXlOYW1lRm9yVk1U
YWcpOgorICAgICAgICAoV1RGOjpwYWdlc1BlclZNVGFnKToKKyAgICAgICAgKiB3dGYvdW5peC9N
ZW1vcnlQcmVzc3VyZUhhbmRsZXJVbml4LmNwcDoKKyAgICAgICAgKFdURjo6TWVtb3J5UHJlc3N1
cmVIYW5kbGVyOjp0cmlnZ2VyTWVtb3J5UHJlc3N1cmVFdmVudCk6CisgICAgICAgICogd3RmL3dp
bi9NZW1vcnlQcmVzc3VyZUhhbmRsZXJXaW4uY3BwOgorICAgICAgICAoV1RGOjpNZW1vcnlQcmVz
c3VyZUhhbmRsZXI6OndpbmRvd3NNZWFzdXJlbWVudFRpbWVyRmlyZWQpOgorCiAyMDIxLTExLTEw
ICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAgICBbQ0ZdIFJlZHVjZSBk
dXBsaWNhdGlvbiBhbmQgdW5uZWVkZWQgYnVmZmVyIGFsbG9jYXRpb25zIGFuZCBjb3B5aW5nIGlu
IFVSTCBjb2RlLCBhbHNvIHJlbW92ZSB1bnVzZWQgbWV0aG9kcyBhbmQgZnVuY3Rpb25zCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKaW5kZXggOTQzOGIxNGE5YmFmNmNlNDY1NjI0NDUxNDRhMTkzNTRhZjQxODM1Zi4uNzk1N2I5
MDJkZjZjYWM4MDBjN2FkNmVlMTViNWUwNGQ2MTE3OTdhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDM0IEBACisyMDIxLTExLTEwICBCZW4gTmhhbSAgPG5oYW1AYXBwbGUuY29tPgorCisgICAgICAg
IExvZyBtZW1vcnkgdXNhZ2UgbWV0YWRhdGEgd2hlbiBXZWJDb250ZW50IGNyb3NzZXMgY3JpdGlj
YWwgb3Igd2FybmluZyBsZXZlbCBtZW1vcnkgdGhyZXNob2xkcworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMyOTc2CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgV2ViQ29yZTo6bG9nTWVtb3J5U3RhdGlzdGljcyB3
YXMgY2hhbmdlZCB0bzoKKworICAgICAgICAgLSBFbWl0IFZNIHRhZyBuYW1lcyBhcyBwdWJsaWMg
c3RyaW5ncyB0byB0aGUgbG9nLiBUaGVyZSBpc24ndCBhbnl0aGluZyBwcml2YWN5IHNlbnNpdGl2
ZQorICAgICAgICAgICBhYm91dCBvdXIgMjU2IGZpeGVkIFZNIHRhZ3MsIGFuZCBlbWl0dGluZyB0
aGVtIHRvIHRoZSBsb2dzIGFzIGFzIHByaXZhdGUgc3RyaW5nIChhcyB3ZQorICAgICAgICAgICB3
ZXJlIGRvaW5nIGJlZm9yZSkgbWFkZSB0aG9zZSBsb2cgbGluZXMgdXNlbGVzcy4KKyAgICAgICAg
IC0gVXNlIFdlYkNvcmU6Om1lbW9yeVVzYWdlU3RhdGlzdGljcyB0byBnYXRoZXIgbWVtb3J5IG1l
dGFkYXRhLCBzaW5jZSBvdGhlciBXZWJDb3JlCisgICAgICAgICAgIGNhbGxzaXRlcyB3ZXJlIGFs
cmVhZHkgdXNpbmcgdGhhdCBhbmQgaXQgcmVkdWNlcyBjb2RlIGR1cGxpY2F0aW9uLgorICAgICAg
ICAgLSBPbmx5IGxvZyBKUyBvYmplY3QgdHlwZSBjb3VudHMgb24gaW50ZXJuYWwgT1MgYnVpbGRz
LiBQcmV2aW91c2x5IHdlIGFsc28gbG9nZ2VkIHRob3NlCisgICAgICAgICAgIGNvdW50cyBvbiBw
dWJsaWMgT1MgYnVpbGRzLCBidXQgdGhhdCB3YXMgdXNlbGVzcyBzaW5jZSBhbGwgdGhlIGNsYXNz
IG5hbWVzIHdlcmUgcmVkYWN0ZWQKKyAgICAgICAgICAgaW4gdGhlIGxvZy4KKworICAgICAgICAq
IHBhZ2UvTWVtb3J5UmVsZWFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpsb2dNZW1vcnlTdGF0
aXN0aWNzKToKKyAgICAgICAgKFdlYkNvcmU6OmxvZ01lbW9yeVN0YXRpc3RpY3NSZWFzb25EZXNj
cmlwdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpwYWdlQ291bnQpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6bG9nTWVtb3J5U3RhdGlzdGljc0F0VGltZU9mRGVhdGgpOiBEZWxldGVkLgor
ICAgICAgICAqIHBhZ2UvTWVtb3J5UmVsZWFzZS5oOgorICAgICAgICAqIHBhZ2UvUGVyZm9ybWFu
Y2VMb2dnaW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBlcmZvcm1hbmNlTG9nZ2luZzo6bWVt
b3J5VXNhZ2VTdGF0aXN0aWNzKToKKyAgICAgICAgKFdlYkNvcmU6OlBlcmZvcm1hbmNlTG9nZ2lu
Zzo6ZGlkUmVhY2hQb2ludE9mSW50ZXJlc3QpOgorICAgICAgICAqIHBhZ2UvUGVyZm9ybWFuY2VM
b2dnaW5nLmg6CisgICAgICAgICogcGFnZS9jb2NvYS9QZXJmb3JtYW5jZUxvZ2dpbmdDb2NvYS5t
bToKKyAgICAgICAgKFdlYkNvcmU6OlBlcmZvcm1hbmNlTG9nZ2luZzo6Z2V0UGxhdGZvcm1NZW1v
cnlVc2FnZVN0YXRpc3RpY3MpOgorCiAyMDIxLTExLTEwICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0
c0B3ZWJraXQub3JnPgogCiAgICAgICAgIFRoZSBjc3NUZXh0IHByb3BlcnR5IGZvciBhIGNvbXB1
dGVkIHN0eWxlIHNob3VsZCByZXR1cm4gYW4gZW1wdHkgc3RyaW5nCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGE1MzE3
MTMyODE0NTRiMDA0YjJlOTQzYTYyZjVhYTVkMjM2ZWM5YzguLjQ2ODViNGVmZDA1MWU5YzRlNzYw
MDAxODliOTEyYTUzYmZlOTIwY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMjEtMTEt
MTAgIEJlbiBOaGFtICA8bmhhbUBhcHBsZS5jb20+CisKKyAgICAgICAgTG9nIG1lbW9yeSB1c2Fn
ZSBtZXRhZGF0YSB3aGVuIFdlYkNvbnRlbnQgY3Jvc3NlcyBjcml0aWNhbCBvciB3YXJuaW5nIGxl
dmVsIG1lbW9yeSB0aHJlc2hvbGRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMzI5NzYKKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4K
KworICAgICAgICBBZGRlZCBjYWxsYmFja3MgdG8gbG9nIG1lbW9yeSB1c2FnZSBtZXRhZGF0YSB0
aGUgZmlyc3QgdGltZSBhIHByb2Nlc3MgaGl0cyB0aGVzZSBtaWxlc3RvbmVzOgorCisgICAgICAg
ICAtIGV4Y2VlZGVkIGluYWN0aXZlIG1lbW9yeSBsaW1pdCB3aGlsZSBhY3RpdmUgKG9uIE1hYykK
KyAgICAgICAgIC0gZXhjZWVkZWQgd2FybmluZyBwcm9jZXNzIGxpbWl0IHRocmVzaG9sZCAob24g
b3RoZXIgbm9uLU1hYyBBcHBsZSBwbGF0Zm9ybXMpCisgICAgICAgICAtIGV4Y2VlZGVkIGNyaXRp
Y2FsIHByb2Nlc3MgbGltaXQgdGhyZXNob2xkIChvbiBvdGhlciBub24tTWFjIEFwcGxlIHBsYXRm
b3JtcykKKworICAgICAgICBUaGUgcmVhc29uIGZvciB0aGlzIGlzIHdlICByZWNlaXZlIGEgbGFy
Z2UgbnVtYmVyIG9mIG91dCBvZiBtZW1vcnkgcmVwb3J0cyB3aXRoIHZlcnkgbGl0dGxlCisgICAg
ICAgIGluZm8gaW4gdGhlIGxvZ3MuIFdlIHdhbnQgdG8gbG9nIG1vcmUgbWV0YWRhdGEgYWJvdXQg
bWVtb3J5IHVzYWdlIChzaW1pbGFyIHRvIHdoYXQgd2UgZG8gb24KKyAgICAgICAgTWFjIGluIGBX
ZWJDb3JlOjpsb2dNZW1vcnlTdGF0aXN0aWNzQXRUaW1lT2ZEZWF0aGApIHRvIGhlbHAgdXMgZGVi
dWcgdGhvc2UgcmVwb3J0cy4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmluaXRpYWxpemVXZWJQcm9jZXNzKToKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuaDoKKwogMjAyMS0xMS0xMCAgUGVyIEFybmUg
Vm9sbGFuIDxwdm9sbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbbWFjT1NdW0dQVVBdIFJlbW92
ZSBhY2Nlc3MgdG8gc3lzY3RsIHByb3BlcnRpZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3Rm
L01lbW9yeVByZXNzdXJlSGFuZGxlci5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9NZW1vcnlQcmVzc3Vy
ZUhhbmRsZXIuY3BwCmluZGV4IGM3NWE0M2JjNWJlYTlhY2QwMmEzN2I1NjdhODlmYjViYjM4NzEz
N2EuLjRiMDU1MmUwYmZmYzAzZDcxYWEzNGZiZGExOTIzMTZlNGYyMWVhZTYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XVEYvd3RmL01lbW9yeVByZXNzdXJlSGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dU
Ri93dGYvTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmNwcApAQCAtMjY0LDE4ICsyNjQsMTkgQEAgdm9p
ZCBNZW1vcnlQcmVzc3VyZUhhbmRsZXI6OnJlbGVhc2VNZW1vcnkoQ3JpdGljYWwgY3JpdGljYWws
IFN5bmNocm9ub3VzIHN5bmNocm8KICAgICBwbGF0Zm9ybVJlbGVhc2VNZW1vcnkoY3JpdGljYWwp
OwogfQogCi12b2lkIE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6c2V0VW5kZXJNZW1vcnlQcmVzc3Vy
ZShib29sIHVuZGVyTWVtb3J5UHJlc3N1cmUpCit2b2lkIE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6
c2V0TWVtb3J5UHJlc3N1cmVTdGF0dXMoTWVtb3J5UHJlc3N1cmVTdGF0dXMgbWVtb3J5UHJlc3N1
cmVTdGF0dXMpCiB7Ci0gICAgaWYgKG1fdW5kZXJNZW1vcnlQcmVzc3VyZSA9PSB1bmRlck1lbW9y
eVByZXNzdXJlKQorICAgIGlmIChtX21lbW9yeVByZXNzdXJlU3RhdHVzID09IG1lbW9yeVByZXNz
dXJlU3RhdHVzKQogICAgICAgICByZXR1cm47Ci0gICAgbV91bmRlck1lbW9yeVByZXNzdXJlID0g
dW5kZXJNZW1vcnlQcmVzc3VyZTsKKworICAgIG1fbWVtb3J5UHJlc3N1cmVTdGF0dXMgPSBtZW1v
cnlQcmVzc3VyZVN0YXR1czsKICAgICBtZW1vcnlQcmVzc3VyZVN0YXR1c0NoYW5nZWQoKTsKIH0K
IAogdm9pZCBNZW1vcnlQcmVzc3VyZUhhbmRsZXI6Om1lbW9yeVByZXNzdXJlU3RhdHVzQ2hhbmdl
ZCgpCiB7CiAgICAgaWYgKG1fbWVtb3J5UHJlc3N1cmVTdGF0dXNDaGFuZ2VkQ2FsbGJhY2spCi0g
ICAgICAgIG1fbWVtb3J5UHJlc3N1cmVTdGF0dXNDaGFuZ2VkQ2FsbGJhY2soaXNVbmRlck1lbW9y
eVByZXNzdXJlKCkpOworICAgICAgICBtX21lbW9yeVByZXNzdXJlU3RhdHVzQ2hhbmdlZENhbGxi
YWNrKG1fbWVtb3J5UHJlc3N1cmVTdGF0dXMpOwogfQogCiB2b2lkIE1lbW9yeVByZXNzdXJlSGFu
ZGxlcjo6UmVsaWVmTG9nZ2VyOjpsb2dNZW1vcnlVc2FnZUNoYW5nZSgpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV1RGL3d0Zi9NZW1vcnlQcmVzc3VyZUhhbmRsZXIuaCBiL1NvdXJjZS9XVEYvd3RmL01l
bW9yeVByZXNzdXJlSGFuZGxlci5oCmluZGV4IDBmNWI2MjYzMDBkOGU5ZWU4ZjBkNzg1NDk0NTE3
OThlZTJkOTBhZjMuLjI3ZTIyMDlmYjlhNzNmZDgwZmEwNzQ2NWQ1YTUyZTU2MjgwZWVmNjkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL01lbW9yeVByZXNzdXJlSGFuZGxlci5oCisrKyBiL1Nv
dXJjZS9XVEYvd3RmL01lbW9yeVByZXNzdXJlSGFuZGxlci5oCkBAIC00Myw2ICs0MywxOCBAQAog
CiBuYW1lc3BhY2UgV1RGIHsKIAorZW51bSBjbGFzcyBNZW1vcnlQcmVzc3VyZVN0YXR1cyA6IHVp
bnQ4X3QgeworICAgIE5vcm1hbCwKKworICAgIC8vIFRoZSBlbnRpcmUgc3lzdGVtIGlzIGF0IGEg
d2FybmluZyBvciBjcml0aWNhbCBwcmVzc3VyZSBsZXZlbC4KKyAgICBTeXN0ZW1XYXJuaW5nLAor
ICAgIFN5c3RlbUNyaXRpY2FsLAorCisgICAgLy8gVGhpcyBzcGVjaWZpYyBwcm9jZXNzIGNyb3Nz
ZWQgYSB3YXJuaW5nIG9yIGNyaXRpY2FsIG1lbW9yeSB1c2FnZSBsaW1pdC4KKyAgICBQcm9jZXNz
TGltaXRXYXJuaW5nLAorICAgIFByb2Nlc3NMaW1pdENyaXRpY2FsCit9OworCiBlbnVtIGNsYXNz
IE1lbW9yeVVzYWdlUG9saWN5IDogdWludDhfdCB7CiAgICAgVW5yZXN0cmljdGVkLCAvLyBBbGxv
Y2F0ZSBhcyBtdWNoIGFzIHlvdSB3YW50CiAgICAgQ29uc2VydmF0aXZlLCAvLyBNYXliZSB5b3Ug
ZG9uJ3QgY2FjaGUgZXZlcnkgc2luZ2xlIHRoaW5nCkBAIC03NCw3ICs4Niw3IEBAIHB1YmxpYzoK
ICNlbmRpZgogCiAgICAgdm9pZCBzZXRNZW1vcnlLaWxsQ2FsbGJhY2soV1RGOjpGdW5jdGlvbjx2
b2lkKCk+JiYgZnVuY3Rpb24pIHsgbV9tZW1vcnlLaWxsQ2FsbGJhY2sgPSBXVEZNb3ZlKGZ1bmN0
aW9uKTsgfQotICAgIHZvaWQgc2V0TWVtb3J5UHJlc3N1cmVTdGF0dXNDaGFuZ2VkQ2FsbGJhY2so
V1RGOjpGdW5jdGlvbjx2b2lkKGJvb2wpPiYmIGZ1bmN0aW9uKSB7IG1fbWVtb3J5UHJlc3N1cmVT
dGF0dXNDaGFuZ2VkQ2FsbGJhY2sgPSBXVEZNb3ZlKGZ1bmN0aW9uKTsgfQorICAgIHZvaWQgc2V0
TWVtb3J5UHJlc3N1cmVTdGF0dXNDaGFuZ2VkQ2FsbGJhY2soV1RGOjpGdW5jdGlvbjx2b2lkKE1l
bW9yeVByZXNzdXJlU3RhdHVzKT4mJiBmdW5jdGlvbikgeyBtX21lbW9yeVByZXNzdXJlU3RhdHVz
Q2hhbmdlZENhbGxiYWNrID0gV1RGTW92ZShmdW5jdGlvbik7IH0KICAgICB2b2lkIHNldERpZEV4
Y2VlZEluYWN0aXZlTGltaXRXaGlsZUFjdGl2ZUNhbGxiYWNrKFdURjo6RnVuY3Rpb248dm9pZCgp
PiYmIGZ1bmN0aW9uKSB7IG1fZGlkRXhjZWVkSW5hY3RpdmVMaW1pdFdoaWxlQWN0aXZlQ2FsbGJh
Y2sgPSBXVEZNb3ZlKGZ1bmN0aW9uKTsgfQogCiAgICAgdm9pZCBzZXRMb3dNZW1vcnlIYW5kbGVy
KExvd01lbW9yeUhhbmRsZXImJiBoYW5kbGVyKQpAQCAtODQsMTQgKzk2LDE2IEBAIHB1YmxpYzoK
IAogICAgIGJvb2wgaXNVbmRlck1lbW9yeVByZXNzdXJlKCkgY29uc3QKICAgICB7Ci0gICAgICAg
IHJldHVybiBtX3VuZGVyTWVtb3J5UHJlc3N1cmUKKyAgICAgICAgYXV0byBtZW1vcnlQcmVzc3Vy
ZVN0YXR1cyA9IG1fbWVtb3J5UHJlc3N1cmVTdGF0dXMubG9hZCgpOworICAgICAgICByZXR1cm4g
bWVtb3J5UHJlc3N1cmVTdGF0dXMgPT0gTWVtb3J5UHJlc3N1cmVTdGF0dXM6OlN5c3RlbUNyaXRp
Y2FsCisgICAgICAgICAgICB8fCBtZW1vcnlQcmVzc3VyZVN0YXR1cyA9PSBNZW1vcnlQcmVzc3Vy
ZVN0YXR1czo6UHJvY2Vzc0xpbWl0Q3JpdGljYWwKICNpZiBQTEFURk9STShNQUMpCiAgICAgICAg
ICAgICB8fCBtX21lbW9yeVVzYWdlUG9saWN5ID49IE1lbW9yeVVzYWdlUG9saWN5OjpTdHJpY3QK
ICNlbmRpZgogICAgICAgICAgICAgfHwgbV9pc1NpbXVsYXRpbmdNZW1vcnlQcmVzc3VyZTsKICAg
ICB9CiAgICAgYm9vbCBpc1NpbXVsYXRpbmdNZW1vcnlQcmVzc3VyZSgpIGNvbnN0IHsgcmV0dXJu
IG1faXNTaW11bGF0aW5nTWVtb3J5UHJlc3N1cmU7IH0KLSAgICB2b2lkIHNldFVuZGVyTWVtb3J5
UHJlc3N1cmUoYm9vbCk7CisgICAgdm9pZCBzZXRNZW1vcnlQcmVzc3VyZVN0YXR1cyhNZW1vcnlQ
cmVzc3VyZVN0YXR1cyk7CiAKICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgTWVtb3J5VXNhZ2VQb2xp
Y3kgY3VycmVudE1lbW9yeVVzYWdlUG9saWN5KCk7CiAKQEAgLTIzOSw3ICsyNTMsNyBAQCBwcml2
YXRlOgogCiAgICAgdW5zaWduZWQgbV9wYWdlQ291bnQgeyAwIH07CiAKLSAgICBzdGQ6OmF0b21p
Yzxib29sPiBtX3VuZGVyTWVtb3J5UHJlc3N1cmUgeyBmYWxzZSB9OworICAgIHN0ZDo6YXRvbWlj
PE1lbW9yeVByZXNzdXJlU3RhdHVzPiBtX21lbW9yeVByZXNzdXJlU3RhdHVzIHsgTWVtb3J5UHJl
c3N1cmVTdGF0dXM6Ok5vcm1hbCB9OwogICAgIGJvb2wgbV9pbnN0YWxsZWQgeyBmYWxzZSB9Owog
ICAgIGJvb2wgbV9pc1NpbXVsYXRpbmdNZW1vcnlQcmVzc3VyZSB7IGZhbHNlIH07CiAgICAgYm9v
bCBtX3Nob3VsZExvZ01lbW9yeU1lbW9yeVByZXNzdXJlRXZlbnRzIHsgdHJ1ZSB9OwpAQCAtMjUx
LDcgKzI2NSw3IEBAIHByaXZhdGU6CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8UnVuTG9vcDo6VGlt
ZXI8TWVtb3J5UHJlc3N1cmVIYW5kbGVyPj4gbV9tZWFzdXJlbWVudFRpbWVyOwogICAgIFdURjo6
RnVuY3Rpb248dm9pZCgpPiBtX21lbW9yeUtpbGxDYWxsYmFjazsKLSAgICBXVEY6OkZ1bmN0aW9u
PHZvaWQoYm9vbCk+IG1fbWVtb3J5UHJlc3N1cmVTdGF0dXNDaGFuZ2VkQ2FsbGJhY2s7CisgICAg
V1RGOjpGdW5jdGlvbjx2b2lkKE1lbW9yeVByZXNzdXJlU3RhdHVzKT4gbV9tZW1vcnlQcmVzc3Vy
ZVN0YXR1c0NoYW5nZWRDYWxsYmFjazsKICAgICBXVEY6OkZ1bmN0aW9uPHZvaWQoKT4gbV9kaWRF
eGNlZWRJbmFjdGl2ZUxpbWl0V2hpbGVBY3RpdmVDYWxsYmFjazsKICAgICBMb3dNZW1vcnlIYW5k
bGVyIG1fbG93TWVtb3J5SGFuZGxlcjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUmVz
b3VyY2VVc2FnZS5oIGIvU291cmNlL1dURi93dGYvUmVzb3VyY2VVc2FnZS5oCmluZGV4IDJhNDI0
NzEzMTUxNzQzOTc3ZWU0YzBlM2IxZWRkNTQwZmFjODA3Y2IuLjgzZDJhNmRiOTg1MDU5ODA4ZTU4
OWYxODZmZGViMDk4MmRmNTE1ODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1Jlc291cmNl
VXNhZ2UuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9SZXNvdXJjZVVzYWdlLmgKQEAgLTMzLDYgKzMz
LDcgQEAgbmFtZXNwYWNlIFdURiB7CiAKIHN0cnVjdCBUYWdJbmZvIHsKICAgICBXVEZfTUFLRV9T
VFJVQ1RfRkFTVF9BTExPQ0FURUQ7CisgICAgc2l6ZV90IHJlZ2lvbkNvdW50IHsgMCB9OwogICAg
IHNpemVfdCBkaXJ0eSB7IDAgfTsKICAgICBzaXplX3QgcmVjbGFpbWFibGUgeyAwIH07CiAgICAg
c2l6ZV90IHJlc2VydmVkIHsgMCB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvY29jb2Ev
TWVtb3J5UHJlc3N1cmVIYW5kbGVyQ29jb2EubW0gYi9Tb3VyY2UvV1RGL3d0Zi9jb2NvYS9NZW1v
cnlQcmVzc3VyZUhhbmRsZXJDb2NvYS5tbQppbmRleCA5NjIwNWQwZjI4NjBkNDI4MWMyNzI5YjM1
ODcwNjA2ZTQzYTU0YTU4Li4zOWNmN2M4NmY2ODU4MjdjYzU5OWVhNWU1NmZkY2FiYmEyNjkyNjI2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9jb2NvYS9NZW1vcnlQcmVzc3VyZUhhbmRsZXJD
b2NvYS5tbQorKysgYi9Tb3VyY2UvV1RGL3d0Zi9jb2NvYS9NZW1vcnlQcmVzc3VyZUhhbmRsZXJD
b2NvYS5tbQpAQCAtNzgsMjEgKzc4LDIzIEBAIHZvaWQgTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpp
bnN0YWxsKCkKICAgICAgICAgICAgIHN3aXRjaCAoc3RhdHVzKSB7CiAgICAgICAgICAgICAvLyBW
TSBwcmVzc3VyZSBldmVudHMuCiAgICAgICAgICAgICBjYXNlIERJU1BBVENIX01FTU9SWVBSRVNT
VVJFX05PUk1BTDoKLSAgICAgICAgICAgICAgICBzZXRVbmRlck1lbW9yeVByZXNzdXJlKGZhbHNl
KTsKKyAgICAgICAgICAgICAgICBzZXRNZW1vcnlQcmVzc3VyZVN0YXR1cyhNZW1vcnlQcmVzc3Vy
ZVN0YXR1czo6Tm9ybWFsKTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIGNh
c2UgRElTUEFUQ0hfTUVNT1JZUFJFU1NVUkVfV0FSTjoKLSAgICAgICAgICAgICAgICBzZXRVbmRl
ck1lbW9yeVByZXNzdXJlKGZhbHNlKTsKKyAgICAgICAgICAgICAgICBzZXRNZW1vcnlQcmVzc3Vy
ZVN0YXR1cyhNZW1vcnlQcmVzc3VyZVN0YXR1czo6U3lzdGVtV2FybmluZyk7CiAgICAgICAgICAg
ICAgICAgcmVzcG9uZFRvTWVtb3J5UHJlc3N1cmUoQ3JpdGljYWw6Ok5vKTsKICAgICAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgICAgIGNhc2UgRElTUEFUQ0hfTUVNT1JZUFJFU1NVUkVfQ1JJ
VElDQUw6Ci0gICAgICAgICAgICAgICAgc2V0VW5kZXJNZW1vcnlQcmVzc3VyZSh0cnVlKTsKKyAg
ICAgICAgICAgICAgICBzZXRNZW1vcnlQcmVzc3VyZVN0YXR1cyhNZW1vcnlQcmVzc3VyZVN0YXR1
czo6U3lzdGVtQ3JpdGljYWwpOwogICAgICAgICAgICAgICAgIHJlc3BvbmRUb01lbW9yeVByZXNz
dXJlKENyaXRpY2FsOjpZZXMpOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAg
Ly8gUHJvY2VzcyBtZW1vcnkgbGltaXQgZXZlbnRzLgogICAgICAgICAgICAgY2FzZSBESVNQQVRD
SF9NRU1PUllQUkVTU1VSRV9QUk9DX0xJTUlUX1dBUk46CisgICAgICAgICAgICAgICAgc2V0TWVt
b3J5UHJlc3N1cmVTdGF0dXMoTWVtb3J5UHJlc3N1cmVTdGF0dXM6OlByb2Nlc3NMaW1pdFdhcm5p
bmcpOwogICAgICAgICAgICAgICAgIHJlc3BvbmRUb01lbW9yeVByZXNzdXJlKENyaXRpY2FsOjpO
byk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNlIERJU1BBVENIX01F
TU9SWVBSRVNTVVJFX1BST0NfTElNSVRfQ1JJVElDQUw6CisgICAgICAgICAgICAgICAgc2V0TWVt
b3J5UHJlc3N1cmVTdGF0dXMoTWVtb3J5UHJlc3N1cmVTdGF0dXM6OlByb2Nlc3NMaW1pdENyaXRp
Y2FsKTsKICAgICAgICAgICAgICAgICByZXNwb25kVG9NZW1vcnlQcmVzc3VyZShDcml0aWNhbDo6
WWVzKTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XVEYvd3RmL2NvY29hL1Jlc291cmNlVXNhZ2VDb2NvYS5jcHAgYi9Tb3VyY2UvV1RG
L3d0Zi9jb2NvYS9SZXNvdXJjZVVzYWdlQ29jb2EuY3BwCmluZGV4IGRmY2EwNzJiNGM0YWNlZTAz
MjEzYjY5OTAwMTM3ODYxYTNiMzQ5ZGQuLjMxNDA3YmFhZDU0MDc0NmI4NTk3NmRkODkzYWM0ODk5
NGJiMTc3MDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL2NvY29hL1Jlc291cmNlVXNhZ2VD
b2NvYS5jcHAKKysrIGIvU291cmNlL1dURi93dGYvY29jb2EvUmVzb3VyY2VVc2FnZUNvY29hLmNw
cApAQCAtNzIsMjggKzcyLDMyIEBAIHZvaWQgbG9nRm9vdHByaW50Q29tcGFyaXNvbihjb25zdCBz
dGQ6OmFycmF5PFRhZ0luZm8sIDI1Nj4mIGJlZm9yZSwgY29uc3Qgc3RkOjphCiBjb25zdCBjaGFy
KiBkaXNwbGF5TmFtZUZvclZNVGFnKHVuc2lnbmVkIHRhZykKIHsKICAgICBzd2l0Y2ggKHRhZykg
ewotICAgIGNhc2UgVk1fTUVNT1JZX0lPS0lUOiByZXR1cm4gIklPS2l0IjsKLSAgICBjYXNlIFZN
X01FTU9SWV9MQVlFUktJVDogcmV0dXJuICJDb3JlQW5pbWF0aW9uIjsKLSAgICBjYXNlIFZNX01F
TU9SWV9JTUFHRUlPOiByZXR1cm4gIkltYWdlSU8iOwogICAgIGNhc2UgVk1fTUVNT1JZX0NHSU1B
R0U6IHJldHVybiAiQ0cgaW1hZ2UiOworICAgIGNhc2UgVk1fTUVNT1JZX0NPUkVHUkFQSElDU19E
QVRBOiByZXR1cm4gIkNHIHJhc3RlciBkYXRhIjsKKyAgICBjYXNlIFZNX01FTU9SWV9DT1JFU0VS
VklDRVM6IHJldHVybiAiQ29yZVNlcnZpY2VzIjsKKyAgICBjYXNlIFZNX01FTU9SWV9EWUxJQjog
cmV0dXJuICJkeWxpYiI7CisgICAgY2FzZSBWTV9NRU1PUllfRk9VTkRBVElPTjogcmV0dXJuICJG
b3VuZGF0aW9uIjsKKyAgICBjYXNlIFZNX01FTU9SWV9JTUFHRUlPOiByZXR1cm4gIkltYWdlSU8i
OworICAgIGNhc2UgVk1fTUVNT1JZX0lPQUNDRUxFUkFUT1I6IHJldHVybiAiSU9BY2NlbGVyYXRv
ciI7CisgICAgY2FzZSBWTV9NRU1PUllfSU9TVVJGQUNFOiByZXR1cm4gIklPU3VyZmFjZSI7Cisg
ICAgY2FzZSBWTV9NRU1PUllfSU9LSVQ6IHJldHVybiAiSU9LaXQiOwogICAgIGNhc2UgVk1fTUVN
T1JZX0pBVkFTQ1JJUFRfQ09SRTogcmV0dXJuICJHaWdhY2FnZSI7CiAgICAgY2FzZSBWTV9NRU1P
UllfSkFWQVNDUklQVF9KSVRfRVhFQ1VUQUJMRV9BTExPQ0FUT1I6IHJldHVybiAiSlNDIEpJVCI7
CiAgICAgY2FzZSBWTV9NRU1PUllfSkFWQVNDUklQVF9KSVRfUkVHSVNURVJfRklMRTogcmV0dXJu
ICJJc29IZWFwIjsKKyAgICBjYXNlIFZNX01FTU9SWV9MQVlFUktJVDogcmV0dXJuICJDb3JlQW5p
bWF0aW9uIjsKKyAgICBjYXNlIFZNX01FTU9SWV9MSUJESVNQQVRDSDogcmV0dXJuICJsaWJkaXNw
YXRjaCI7CiAgICAgY2FzZSBWTV9NRU1PUllfTUFMTE9DOiByZXR1cm4gIm1hbGxvYyI7CiAgICAg
Y2FzZSBWTV9NRU1PUllfTUFMTE9DX0hVR0U6IHJldHVybiAibWFsbG9jIChodWdlKSI7CiAgICAg
Y2FzZSBWTV9NRU1PUllfTUFMTE9DX0xBUkdFOiByZXR1cm4gIm1hbGxvYyAobGFyZ2UpIjsKKyAg
ICBjYXNlIFZNX01FTU9SWV9NQUxMT0NfTUVESVVNOiByZXR1cm4gIm1hbGxvYyAobWVkaXVtKSI7
CisgICAgY2FzZSBWTV9NRU1PUllfTUFMTE9DX05BTk86IHJldHVybiAibWFsbG9jIChuYW5vKSI7
CiAgICAgY2FzZSBWTV9NRU1PUllfTUFMTE9DX1NNQUxMOiByZXR1cm4gIm1hbGxvYyAoc21hbGwp
IjsKICAgICBjYXNlIFZNX01FTU9SWV9NQUxMT0NfVElOWTogcmV0dXJuICJtYWxsb2MgKHRpbnkp
IjsKLSAgICBjYXNlIFZNX01FTU9SWV9NQUxMT0NfTkFOTzogcmV0dXJuICJtYWxsb2MgKG5hbm8p
IjsKLSAgICBjYXNlIFZNX01FTU9SWV9UQ01BTExPQzogcmV0dXJuICJibWFsbG9jIjsKLSAgICBj
YXNlIFZNX01FTU9SWV9GT1VOREFUSU9OOiByZXR1cm4gIkZvdW5kYXRpb24iOwotICAgIGNhc2Ug
Vk1fTUVNT1JZX1NUQUNLOiByZXR1cm4gIlN0YWNrIjsKKyAgICBjYXNlIFZNX01FTU9SWV9PU19B
TExPQ19PTkNFOiByZXR1cm4gIm9zX2FsbG9jX29uY2UiOwogICAgIGNhc2UgVk1fTUVNT1JZX1NR
TElURTogcmV0dXJuICJTUUxpdGUiOworICAgIGNhc2UgVk1fTUVNT1JZX1NUQUNLOiByZXR1cm4g
IlN0YWNrIjsKKyAgICBjYXNlIFZNX01FTU9SWV9UQ01BTExPQzogcmV0dXJuICJibWFsbG9jIjsK
ICAgICBjYXNlIFZNX01FTU9SWV9VTlNIQVJFRF9QTUFQOiByZXR1cm4gInBtYXAgKHVuc2hhcmVk
KSI7Ci0gICAgY2FzZSBWTV9NRU1PUllfRFlMSUI6IHJldHVybiAiZHlsaWIiOwotICAgIGNhc2Ug
Vk1fTUVNT1JZX0NPUkVTRVJWSUNFUzogcmV0dXJuICJDb3JlU2VydmljZXMiOwotICAgIGNhc2Ug
Vk1fTUVNT1JZX09TX0FMTE9DX09OQ0U6IHJldHVybiAib3NfYWxsb2Nfb25jZSI7Ci0gICAgY2Fz
ZSBWTV9NRU1PUllfTElCRElTUEFUQ0g6IHJldHVybiAibGliZGlzcGF0Y2giOwogICAgIGRlZmF1
bHQ6IHJldHVybiBudWxscHRyOwogICAgIH0KIH0KQEAgLTExNSw2ICsxMTksOCBAQCBzdGQ6OmFy
cmF5PFRhZ0luZm8sIDI1Nj4gcGFnZXNQZXJWTVRhZygpCiAgICAgICAgIGlmIChrciAhPSBLRVJO
X1NVQ0NFU1MpCiAgICAgICAgICAgICBicmVhazsKIAorICAgICAgICB0YWdzW2luZm8udXNlcl90
YWddLnJlZ2lvbkNvdW50Kys7CisKICAgICAgICAgdGFnc1tpbmZvLnVzZXJfdGFnXS5yZXNlcnZl
ZCArPSBzaXplIC8gdm1QYWdlU2l6ZSgpOwogCiAgICAgICAgIGlmIChwdXJnZWFibGVTdGF0ZSA9
PSBWTV9QVVJHQUJMRV9WT0xBVElMRSkgewpAQCAtMTI3LDEyICsxMzMsMTMgQEAgc3RkOjphcnJh
eTxUYWdJbmZvLCAyNTY+IHBhZ2VzUGVyVk1UYWcoKQogICAgICAgICAgICAgY29udGludWU7CiAg
ICAgICAgIH0KIAorICAgICAgICAvLyBUaGlzIGNhbGN1bGF0ZXMgdGhlIGZvb3RwcmludCBvZiBh
IFZNIHJlZ2lvbiBpbiBhIG1hbm5lciBzaW1pbGFyIHRvIHdoYXQgZm9vdHByaW50KDEpIGRvZXMg
aW4gdGhlIGxlZ2FjeSAtLXZtT2JqZWN0RGlydHkgbW9kZS4KICAgICAgICAgYm9vbCBhbm9ueW1v
dXMgPSAhaW5mby5leHRlcm5hbF9wYWdlcjsKICAgICAgICAgaWYgKGFub255bW91cykgewotICAg
ICAgICAgICAgdGFnc1tpbmZvLnVzZXJfdGFnXS5kaXJ0eSArPSBpbmZvLnBhZ2VzX3Jlc2lkZW50
IC0gaW5mby5wYWdlc19yZXVzYWJsZTsKKyAgICAgICAgICAgIHRhZ3NbaW5mby51c2VyX3RhZ10u
ZGlydHkgKz0gaW5mby5wYWdlc19yZXNpZGVudCAtIGluZm8ucGFnZXNfcmV1c2FibGUgKyBpbmZv
LnBhZ2VzX3N3YXBwZWRfb3V0OwogICAgICAgICAgICAgdGFnc1tpbmZvLnVzZXJfdGFnXS5yZWNs
YWltYWJsZSArPSBpbmZvLnBhZ2VzX3JldXNhYmxlOwogICAgICAgICB9IGVsc2UKLSAgICAgICAg
ICAgIHRhZ3NbaW5mby51c2VyX3RhZ10uZGlydHkgKz0gaW5mby5wYWdlc19kaXJ0aWVkOworICAg
ICAgICAgICAgdGFnc1tpbmZvLnVzZXJfdGFnXS5kaXJ0eSArPSBpbmZvLnBhZ2VzX2RpcnRpZWQg
KyBpbmZvLnBhZ2VzX3N3YXBwZWRfb3V0OwogICAgIH0KIAogICAgIHJldHVybiB0YWdzOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dURi93dGYvdW5peC9NZW1vcnlQcmVzc3VyZUhhbmRsZXJVbml4LmNw
cCBiL1NvdXJjZS9XVEYvd3RmL3VuaXgvTWVtb3J5UHJlc3N1cmVIYW5kbGVyVW5peC5jcHAKaW5k
ZXggOGM1MGU0Y2UwNmNlMjFiOTVhZmYyODkxZjllZDkxYmI5Njc0MjhmOC4uODVhM2VhMDZjNjY3
ZjU5MmM5MmVlNzI1NmIwOTMxY2U5NTk1ZTFmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYv
dW5peC9NZW1vcnlQcmVzc3VyZUhhbmRsZXJVbml4LmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi91
bml4L01lbW9yeVByZXNzdXJlSGFuZGxlclVuaXguY3BwCkBAIC02Niw3ICs2Niw3IEBAIHZvaWQg
TWVtb3J5UHJlc3N1cmVIYW5kbGVyOjp0cmlnZ2VyTWVtb3J5UHJlc3N1cmVFdmVudChib29sIGlz
Q3JpdGljYWwpCiAgICAgaWYgKFJlbGllZkxvZ2dlcjo6bG9nZ2luZ0VuYWJsZWQoKSkKICAgICAg
ICAgTE9HKE1lbW9yeVByZXNzdXJlLCAiR290IG1lbW9yeSBwcmVzc3VyZSBub3RpZmljYXRpb24g
KCVzKSIsIGlzQ3JpdGljYWwgPyAiY3JpdGljYWwiIDogIm5vbi1jcml0aWNhbCIpOwogCi0gICAg
c2V0VW5kZXJNZW1vcnlQcmVzc3VyZSh0cnVlKTsKKyAgICBzZXRNZW1vcnlQcmVzc3VyZVN0YXR1
cyhNZW1vcnlQcmVzc3VyZVN0YXR1czo6U3lzdGVtQ3JpdGljYWwpOwogCiAgICAgZW5zdXJlT25N
YWluVGhyZWFkKFt0aGlzLCBpc0NyaXRpY2FsXSB7CiAgICAgICAgIHJlc3BvbmRUb01lbW9yeVBy
ZXNzdXJlKGlzQ3JpdGljYWwgPyBDcml0aWNhbDo6WWVzIDogQ3JpdGljYWw6Ok5vKTsKQEAgLTc1
LDcgKzc1LDcgQEAgdm9pZCBNZW1vcnlQcmVzc3VyZUhhbmRsZXI6OnRyaWdnZXJNZW1vcnlQcmVz
c3VyZUV2ZW50KGJvb2wgaXNDcml0aWNhbCkKICAgICBpZiAoUmVsaWVmTG9nZ2VyOjpsb2dnaW5n
RW5hYmxlZCgpICYmIGlzVW5kZXJNZW1vcnlQcmVzc3VyZSgpKQogICAgICAgICBMT0coTWVtb3J5
UHJlc3N1cmUsICJTeXN0ZW0gaXMgbm8gbG9uZ2VyIHVuZGVyIG1lbW9yeSBwcmVzc3VyZS4iKTsK
IAotICAgIHNldFVuZGVyTWVtb3J5UHJlc3N1cmUoZmFsc2UpOworICAgIHNldE1lbW9yeVByZXNz
dXJlU3RhdHVzKE1lbW9yeVByZXNzdXJlU3RhdHVzOjpOb3JtYWwpOwogfQogCiB2b2lkIE1lbW9y
eVByZXNzdXJlSGFuZGxlcjo6aW5zdGFsbCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi93
aW4vTWVtb3J5UHJlc3N1cmVIYW5kbGVyV2luLmNwcCBiL1NvdXJjZS9XVEYvd3RmL3dpbi9NZW1v
cnlQcmVzc3VyZUhhbmRsZXJXaW4uY3BwCmluZGV4IGU2YmViZGMxY2EyMDI2MTllYTRmZDc2NDI5
YzljZTNmZTUwYWM4YjAuLjQ0ZDU3OGVhMGY3YmFmNDgwMjMzNGRjNzIzYzZhZDgyMDg3OTg2ZjUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3dpbi9NZW1vcnlQcmVzc3VyZUhhbmRsZXJXaW4u
Y3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL3dpbi9NZW1vcnlQcmVzc3VyZUhhbmRsZXJXaW4uY3Bw
CkBAIC0zOCwxMiArMzgsMTIgQEAgdm9pZCBNZW1vcnlQcmVzc3VyZUhhbmRsZXI6OnBsYXRmb3Jt
SW5pdGlhbGl6ZSgpCiAKIHZvaWQgTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjp3aW5kb3dzTWVhc3Vy
ZW1lbnRUaW1lckZpcmVkKCkKIHsKLSAgICBzZXRVbmRlck1lbW9yeVByZXNzdXJlKGZhbHNlKTsK
KyAgICBzZXRNZW1vcnlQcmVzc3VyZVN0YXR1cyhNZW1vcnlQcmVzc3VyZVN0YXR1czo6Tm9ybWFs
KTsKIAogICAgIEJPT0wgbWVtb3J5TG93OwogCiAgICAgaWYgKFF1ZXJ5TWVtb3J5UmVzb3VyY2VO
b3RpZmljYXRpb24obV9sb3dNZW1vcnlIYW5kbGUuZ2V0KCksICZtZW1vcnlMb3cpICYmIG1lbW9y
eUxvdykgewotICAgICAgICBzZXRVbmRlck1lbW9yeVByZXNzdXJlKHRydWUpOworICAgICAgICBz
ZXRNZW1vcnlQcmVzc3VyZVN0YXR1cyhNZW1vcnlQcmVzc3VyZVN0YXR1czo6U3lzdGVtQ3JpdGlj
YWwpOwogICAgICAgICByZWxlYXNlTWVtb3J5KENyaXRpY2FsOjpZZXMpOwogICAgICAgICByZXR1
cm47CiAgICAgfQpAQCAtNjAsNyArNjAsNyBAQCB2b2lkIE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6
d2luZG93c01lYXN1cmVtZW50VGltZXJGaXJlZCgpCiAgICAgY29uc3QgaW50IG1heE1lbW9yeVVz
YWdlQnl0ZXMgPSAwLjkgKiAxMDI0ICogMTAyNCAqIDEwMjQ7CiAKICAgICBpZiAoY291bnRlcnMu
UHJpdmF0ZVVzYWdlID4gbWF4TWVtb3J5VXNhZ2VCeXRlcykgewotICAgICAgICBzZXRVbmRlck1l
bW9yeVByZXNzdXJlKHRydWUpOworICAgICAgICBzZXRNZW1vcnlQcmVzc3VyZVN0YXR1cyhNZW1v
cnlQcmVzc3VyZVN0YXR1czo6UHJvY2Vzc0xpbWl0Q3JpdGljYWwpOwogICAgICAgICByZWxlYXNl
TWVtb3J5KENyaXRpY2FsOjpZZXMpOwogICAgIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9NZW1vcnlSZWxlYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTWVt
b3J5UmVsZWFzZS5jcHAKaW5kZXggMWI0ZTQ4NWY3YTc1YzIxZDU2OGZkODViMjU0MDZlMjVkZjU1
NjBiNC4uOTAxZWJlOWE1YmU2NjNiMDE4ZDEyMWI2YzZhYjlhNTIwY2EwYTg1YSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9NZW1vcnlSZWxlYXNlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL01lbW9yeVJlbGVhc2UuY3BwCkBAIC00Niw2ICs0Niw3IEBACiAjaW5jbHVkZSAi
TG9nZ2luZy5oIgogI2luY2x1ZGUgIk1lbW9yeUNhY2hlLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgor
I2luY2x1ZGUgIlBlcmZvcm1hbmNlTG9nZ2luZy5oIgogI2luY2x1ZGUgIlJlbmRlclRoZW1lLmgi
CiAjaW5jbHVkZSAiU2Nyb2xsaW5nVGhyZWFkLmgiCiAjaW5jbHVkZSAiU3R5bGVTY29wZS5oIgpA
QCAtNjAsNiArNjEsNyBAQAogCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAjaW5jbHVkZSAiUmVzb3Vy
Y2VVc2FnZVRocmVhZC5oIgorI2luY2x1ZGUgPHd0Zi9zcGkvZGFyd2luL09TVmFyaWFudFNQSS5o
PgogI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTE3NSwyNiArMTc3LDM4IEBAIHZv
aWQgcmVsZWFzZUdyYXBoaWNzTWVtb3J5KENyaXRpY2FsIGNyaXRpY2FsLCBTeW5jaHJvbm91cyBz
eW5jaHJvbm91cykKICAgICBXVEY6OnJlbGVhc2VGYXN0TWFsbG9jRnJlZU1lbW9yeSgpOwogfQog
Ci0jaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECi1zdGF0aWMgdW5zaWduZWQgcGFnZUNvdW50KCkK
KyNpZiBSRUxFQVNFX0xPR19ESVNBQkxFRAordm9pZCBsb2dNZW1vcnlTdGF0aXN0aWNzKExvZ01l
bW9yeVN0YXRpc3RpY3NSZWFzb24pIHsgfQorI2Vsc2UKK3N0YXRpYyBjb25zdCBjaGFyKiBsb2dN
ZW1vcnlTdGF0aXN0aWNzUmVhc29uRGVzY3JpcHRpb24oTG9nTWVtb3J5U3RhdGlzdGljc1JlYXNv
biByZWFzb24pCiB7Ci0gICAgdW5zaWduZWQgY291bnQgPSAwOwotICAgIFBhZ2U6OmZvckVhY2hQ
YWdlKFsmXSAoUGFnZSYgcGFnZSkgewotICAgICAgICBpZiAoIXBhZ2UuaXNVdGlsaXR5UGFnZSgp
KQotICAgICAgICAgICAgKytjb3VudDsKLSAgICB9KTsKLSAgICByZXR1cm4gY291bnQ7CisgICAg
c3dpdGNoIChyZWFzb24pIHsKKyAgICBjYXNlIExvZ01lbW9yeVN0YXRpc3RpY3NSZWFzb246OkRl
YnVnTm90aWZpY2F0aW9uOgorICAgICAgICByZXR1cm4gImRlYnVnIG5vdGlmaWNhdGlvbiI7Cisg
ICAgY2FzZSBMb2dNZW1vcnlTdGF0aXN0aWNzUmVhc29uOjpXYXJuaW5nTWVtb3J5UHJlc3N1cmVO
b3RpZmljYXRpb246CisgICAgICAgIHJldHVybiAid2FybmluZyBtZW1vcnkgcHJlc3N1cmUgbm90
aWZpY2F0aW9uIjsKKyAgICBjYXNlIExvZ01lbW9yeVN0YXRpc3RpY3NSZWFzb246OkNyaXRpY2Fs
TWVtb3J5UHJlc3N1cmVOb3RpZmljYXRpb246CisgICAgICAgIHJldHVybiAiY3JpdGljYWwgbWVt
b3J5IHByZXNzdXJlIG5vdGlmaWNhdGlvbiI7CisgICAgY2FzZSBMb2dNZW1vcnlTdGF0aXN0aWNz
UmVhc29uOjpPdXRPZk1lbW9yeURlYXRoOgorICAgICAgICByZXR1cm4gIm91dCBvZiBtZW1vcnkg
ZGVhdGgiOworICAgIH07CisgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0KLSNl
bmRpZgogCi12b2lkIGxvZ01lbW9yeVN0YXRpc3RpY3NBdFRpbWVPZkRlYXRoKCkKK3ZvaWQgbG9n
TWVtb3J5U3RhdGlzdGljcyhMb2dNZW1vcnlTdGF0aXN0aWNzUmVhc29uIHJlYXNvbikKIHsKLSNp
ZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKKyAgICBjb25zdCBjaGFyKiBkZXNjcmlwdGlvbiA9IGxv
Z01lbW9yeVN0YXRpc3RpY3NSZWFzb25EZXNjcmlwdGlvbihyZWFzb24pOworCisgICAgUkVMRUFT
RV9MT0coTWVtb3J5UHJlc3N1cmUsICJXZWJLaXQgbWVtb3J5IHVzYWdlIHN0YXRpc3RpY3MgYXQg
dGltZSBvZiAlIiBQVUJMSUNfTE9HX1NUUklORyAiOiIsIGRlc2NyaXB0aW9uKTsKKyAgICBhdXRv
IHN0YXRzID0gUGVyZm9ybWFuY2VMb2dnaW5nOjptZW1vcnlVc2FnZVN0YXRpc3RpY3MoU2hvdWxk
SW5jbHVkZUV4cGVuc2l2ZUNvbXB1dGF0aW9uczo6WWVzKTsKKyAgICBmb3IgKGF1dG8mIFtrZXks
IHZhbF0gOiBzdGF0cykKKyAgICAgICAgUkVMRUFTRV9MT0coTWVtb3J5UHJlc3N1cmUsICIlIiBQ
VUJMSUNfTE9HX1NUUklORyAiOiAlenUiLCBrZXksIHZhbCk7CisKICNpZiBQTEFURk9STShDT0NP
QSkKICAgICBhdXRvIHBhZ2VTaXplID0gdm1QYWdlU2l6ZSgpOwogICAgIGF1dG8gcGFnZXMgPSBw
YWdlc1BlclZNVGFnKCk7CiAKLSAgICBSRUxFQVNFX0xPRyhNZW1vcnlQcmVzc3VyZSwgIkRpcnR5
IG1lbW9yeSBwZXIgVk0gdGFnIGF0IHRpbWUgb2YgZGVhdGg6Iik7CisgICAgUkVMRUFTRV9MT0co
TWVtb3J5UHJlc3N1cmUsICJEaXJ0eSBtZW1vcnkgcGVyIFZNIHRhZyBhdCB0aW1lIG9mICUiIFBV
QkxJQ19MT0dfU1RSSU5HICI6IiwgZGVzY3JpcHRpb24pOwogICAgIGZvciAodW5zaWduZWQgaSA9
IDA7IGkgPCAyNTY7ICsraSkgewogICAgICAgICBzaXplX3QgZGlydHkgPSBwYWdlc1tpXS5kaXJ0
eSAqIHBhZ2VTaXplOwogICAgICAgICBpZiAoIWRpcnR5KQpAQCAtMjAyLDI4ICsyMTYsMjIgQEAg
dm9pZCBsb2dNZW1vcnlTdGF0aXN0aWNzQXRUaW1lT2ZEZWF0aCgpCiAgICAgICAgIFN0cmluZyB0
YWdOYW1lID0gZGlzcGxheU5hbWVGb3JWTVRhZyhpKTsKICAgICAgICAgaWYgKCF0YWdOYW1lKQog
ICAgICAgICAgICAgdGFnTmFtZSA9IG1ha2VTdHJpbmcoIlRhZyAiLCBpKTsKLSAgICAgICAgUkVM
RUFTRV9MT0coTWVtb3J5UHJlc3N1cmUsICIlMTZzOiAlbHUgTUIiLCB0YWdOYW1lLmxhdGluMSgp
LmRhdGEoKSwgZGlydHkgLyBNQik7CisgICAgICAgIFJFTEVBU0VfTE9HKE1lbW9yeVByZXNzdXJl
LCAiJSIgUFVCTElDX0xPR19TVFJJTkcgIjogJWx1IE1CIGluICV6dSByZWdpb25zIiwgdGFnTmFt
ZS5sYXRpbjEoKS5kYXRhKCksIGRpcnR5IC8gTUIsIHBhZ2VzW2ldLnJlZ2lvbkNvdW50KTsKICAg
ICB9CisKKyAgICBib29sIHNob3VsZExvZ0phdmFTY3JpcHRPYmplY3RDb3VudHMgPSBvc192YXJp
YW50X2FsbG93c19pbnRlcm5hbF9zZWN1cml0eV9wb2xpY2llcygiY29tLmFwcGxlLldlYktpdCIp
OworICAgIGlmICghc2hvdWxkTG9nSmF2YVNjcmlwdE9iamVjdENvdW50cykKKyAgICAgICAgcmV0
dXJuOwogI2VuZGlmCiAKICAgICBhdXRvJiB2bSA9IGNvbW1vblZNKCk7CiAgICAgSlNDOjpKU0xv
Y2tIb2xkZXIgbG9ja2VyKHZtKTsKLSAgICBSRUxFQVNFX0xPRyhNZW1vcnlQcmVzc3VyZSwgIk1l
bW9yeSB1c2FnZSBzdGF0aXN0aWNzIGF0IHRpbWUgb2YgZGVhdGg6Iik7Ci0gICAgUkVMRUFTRV9M
T0coTWVtb3J5UHJlc3N1cmUsICJHQyBoZWFwIHNpemU6ICV6dSIsIHZtLmhlYXAuc2l6ZSgpKTsK
LSAgICBSRUxFQVNFX0xPRyhNZW1vcnlQcmVzc3VyZSwgIkdDIGhlYXAgZXh0cmEgbWVtb3J5IHNp
emU6ICV6dSIsIHZtLmhlYXAuZXh0cmFNZW1vcnlTaXplKCkpOwotI2lmIEVOQUJMRShSRVNPVVJD
RV9VU0FHRSkKLSAgICBSRUxFQVNFX0xPRyhNZW1vcnlQcmVzc3VyZSwgIkdDIGhlYXAgZXh0ZXJu
YWwgbWVtb3J5OiAlenUiLCB2bS5oZWFwLmV4dGVybmFsTWVtb3J5U2l6ZSgpKTsKLSNlbmRpZgot
ICAgIFJFTEVBU0VfTE9HKE1lbW9yeVByZXNzdXJlLCAiR2xvYmFsIG9iamVjdCBjb3VudDogJXp1
Iiwgdm0uaGVhcC5nbG9iYWxPYmplY3RDb3VudCgpKTsKLQotICAgIFJFTEVBU0VfTE9HKE1lbW9y
eVByZXNzdXJlLCAiUGFnZSBjb3VudDogJXUiLCBwYWdlQ291bnQoKSk7Ci0gICAgUkVMRUFTRV9M
T0coTWVtb3J5UHJlc3N1cmUsICJEb2N1bWVudCBjb3VudDogJXUiLCBEb2N1bWVudDo6YWxsRG9j
dW1lbnRzKCkuc2l6ZSgpKTsKLSAgICBSRUxFQVNFX0xPRyhNZW1vcnlQcmVzc3VyZSwgIkxpdmUg
SmF2YVNjcmlwdCBvYmplY3RzOiIpOworICAgIFJFTEVBU0VfTE9HKE1lbW9yeVByZXNzdXJlLCAi
TGl2ZSBKYXZhU2NyaXB0IG9iamVjdHMgYXQgdGltZSBvZiAlIiBQVUJMSUNfTE9HX1NUUklORyAi
OiIsIGRlc2NyaXB0aW9uKTsKICAgICBhdXRvIHR5cGVDb3VudHMgPSB2bS5oZWFwLm9iamVjdFR5
cGVDb3VudHMoKTsKICAgICBmb3IgKGF1dG8mIGl0IDogKnR5cGVDb3VudHMpCiAgICAgICAgIFJF
TEVBU0VfTE9HKE1lbW9yeVByZXNzdXJlLCAiICAlczogJWQiLCBpdC5rZXksIGl0LnZhbHVlKTsK
LSNlbmRpZgogfQorI2VuZGlmCiAKICNpZiAhUExBVEZPUk0oQ09DT0EpCiB2b2lkIHBsYXRmb3Jt
UmVsZWFzZU1lbW9yeShDcml0aWNhbCkgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL01lbW9yeVJlbGVhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTWVtb3J5UmVsZWFzZS5o
CmluZGV4IDIwZmEzNjgwODIxYjAxZmI4MTM3NGU1YzU5YTU3NDFjNjg5YjczOWYuLjhjOWQ4NWZi
ZDg4ZmIzMmI0MmU4NjY4YzhkYmIxYjcwZWFiMTQyMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvTWVtb3J5UmVsZWFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTWVtb3J5
UmVsZWFzZS5oCkBAIC0zMSw2ICszMSwxMiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGVudW0g
Y2xhc3MgTWFpbnRhaW5CYWNrRm9yd2FyZENhY2hlIDogYm9vbCB7IE5vLCBZZXMgfTsKIGVudW0g
Y2xhc3MgTWFpbnRhaW5NZW1vcnlDYWNoZSA6IGJvb2wgeyBObywgWWVzIH07CitlbnVtIGNsYXNz
IExvZ01lbW9yeVN0YXRpc3RpY3NSZWFzb24gOiB1aW50OF90IHsKKyAgICBEZWJ1Z05vdGlmaWNh
dGlvbiwKKyAgICBXYXJuaW5nTWVtb3J5UHJlc3N1cmVOb3RpZmljYXRpb24sCisgICAgQ3JpdGlj
YWxNZW1vcnlQcmVzc3VyZU5vdGlmaWNhdGlvbiwKKyAgICBPdXRPZk1lbW9yeURlYXRoCit9Owog
CiBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlbGVhc2VNZW1vcnkoQ3JpdGljYWwsIFN5bmNocm9ub3Vz
LCBNYWludGFpbkJhY2tGb3J3YXJkQ2FjaGUgPSBNYWludGFpbkJhY2tGb3J3YXJkQ2FjaGU6Ok5v
LCBNYWludGFpbk1lbW9yeUNhY2hlID0gTWFpbnRhaW5NZW1vcnlDYWNoZTo6Tm8pOwogdm9pZCBw
bGF0Zm9ybVJlbGVhc2VNZW1vcnkoQ3JpdGljYWwpOwpAQCAtMzgsNiArNDQsNiBAQCBXRUJDT1JF
X0VYUE9SVCB2b2lkIHJlbGVhc2VHcmFwaGljc01lbW9yeShDcml0aWNhbCwgU3luY2hyb25vdXMp
Owogdm9pZCBwbGF0Zm9ybVJlbGVhc2VHcmFwaGljc01lbW9yeShDcml0aWNhbCk7CiB2b2lkIGpl
dHRpc29uRXhwZW5zaXZlT2JqZWN0c09uVG9wTGV2ZWxOYXZpZ2F0aW9uKCk7CiBXRUJDT1JFX0VY
UE9SVCB2b2lkIHJlZ2lzdGVyTWVtb3J5UmVsZWFzZU5vdGlmeUNhbGxiYWNrcygpOwotV0VCQ09S
RV9FWFBPUlQgdm9pZCBsb2dNZW1vcnlTdGF0aXN0aWNzQXRUaW1lT2ZEZWF0aCgpOworV0VCQ09S
RV9FWFBPUlQgdm9pZCBsb2dNZW1vcnlTdGF0aXN0aWNzKExvZ01lbW9yeVN0YXRpc3RpY3NSZWFz
b24pOwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1BlcmZvcm1hbmNlTG9nZ2luZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZv
cm1hbmNlTG9nZ2luZy5jcHAKaW5kZXggYWNhODc1MDUwZmMyMTMxODcyMTFiYmQ2MjU4ZDBjOTcz
MjBjZDRjZC4uYjM5OGQ1ZWY5YmUxODgyOGViMzMyY2JjYTkzNmUzY2ExMzZjNGY0MyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZUxvZ2dpbmcuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VMb2dnaW5nLmNwcApAQCAtNTYsMjUgKzU2LDI3
IEBAIHN0YXRpYyBjb25zdCBjaGFyKiB0b1N0cmluZyhQZXJmb3JtYW5jZUxvZ2dpbmc6OlBvaW50
T2ZJbnRlcmVzdCBwb2kpCiBIYXNoTWFwPGNvbnN0IGNoYXIqLCBzaXplX3Q+IFBlcmZvcm1hbmNl
TG9nZ2luZzo6bWVtb3J5VXNhZ2VTdGF0aXN0aWNzKFNob3VsZEluY2x1ZGVFeHBlbnNpdmVDb21w
dXRhdGlvbnMgaW5jbHVkZUV4cGVuc2l2ZSkKIHsKICAgICBIYXNoTWFwPGNvbnN0IGNoYXIqLCBz
aXplX3Q+IHN0YXRzOworICAgIHN0YXRzLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkoMzIpOworCisg
ICAgc3RhdHMuYWRkKCJwYWdlX2NvdW50IiwgUGFnZTo6bm9uVXRpbGl0eVBhZ2VDb3VudCgpKTsK
KyAgICBzdGF0cy5hZGQoImJhY2tmb3J3YXJkX2NhY2hlX3BhZ2VfY291bnQiLCBCYWNrRm9yd2Fy
ZENhY2hlOjpzaW5nbGV0b24oKS5wYWdlQ291bnQoKSk7CisgICAgc3RhdHMuYWRkKCJkb2N1bWVu
dF9jb3VudCIsIERvY3VtZW50OjphbGxEb2N1bWVudHMoKS5zaXplKCkpOwogCiAgICAgYXV0byYg
dm0gPSBjb21tb25WTSgpOwogICAgIEpTQzo6SlNMb2NrSG9sZGVyIGxvY2tlcih2bSk7Ci0gICAg
c3RhdHMuYWRkKCJqYXZhc2NyaXB0X2djX2hlYXBfY2FwYWNpdHkiLCB2bS5oZWFwLmNhcGFjaXR5
KCkpOwotICAgIHN0YXRzLmFkZCgiamF2YXNjcmlwdF9nY19oZWFwX2V4dHJhX21lbW9yeV9zaXpl
Iiwgdm0uaGVhcC5leHRyYU1lbW9yeVNpemUoKSk7Ci0KLSAgICBhdXRvJiBiYWNrRm9yd2FyZENh
Y2hlID0gQmFja0ZvcndhcmRDYWNoZTo6c2luZ2xldG9uKCk7Ci0gICAgc3RhdHMuYWRkKCJiYWNr
Zm9yd2FyZF9jYWNoZV9wYWdlX2NvdW50IiwgYmFja0ZvcndhcmRDYWNoZS5wYWdlQ291bnQoKSk7
Ci0KLSAgICBzdGF0cy5hZGQoImRvY3VtZW50X2NvdW50IiwgRG9jdW1lbnQ6OmFsbERvY3VtZW50
cygpLnNpemUoKSk7CisgICAgc3RhdHMuYWRkKCJqYXZhc2NyaXB0X2djX2hlYXBfY2FwYWNpdHlf
bWIiLCB2bS5oZWFwLmNhcGFjaXR5KCkgPj4gMjApOworICAgIHN0YXRzLmFkZCgiamF2YXNjcmlw
dF9nY19oZWFwX2V4dHJhX21lbW9yeV9zaXplX21iIiwgdm0uaGVhcC5leHRyYU1lbW9yeVNpemUo
KSA+PiAyMCk7CiAKICAgICBpZiAoaW5jbHVkZUV4cGVuc2l2ZSA9PSBTaG91bGRJbmNsdWRlRXhw
ZW5zaXZlQ29tcHV0YXRpb25zOjpZZXMpIHsKLSAgICAgICAgc3RhdHMuYWRkKCJqYXZhc2NyaXB0
X2djX2hlYXBfc2l6ZSIsIHZtLmhlYXAuc2l6ZSgpKTsKKyAgICAgICAgc3RhdHMuYWRkKCJqYXZh
c2NyaXB0X2djX2hlYXBfc2l6ZV9tYiIsIHZtLmhlYXAuc2l6ZSgpID4+IDIwKTsKICAgICAgICAg
c3RhdHMuYWRkKCJqYXZhc2NyaXB0X2djX29iamVjdF9jb3VudCIsIHZtLmhlYXAub2JqZWN0Q291
bnQoKSk7CiAgICAgICAgIHN0YXRzLmFkZCgiamF2YXNjcmlwdF9nY19wcm90ZWN0ZWRfb2JqZWN0
X2NvdW50Iiwgdm0uaGVhcC5wcm90ZWN0ZWRPYmplY3RDb3VudCgpKTsKICAgICAgICAgc3RhdHMu
YWRkKCJqYXZhc2NyaXB0X2djX2dsb2JhbF9vYmplY3RfY291bnQiLCB2bS5oZWFwLmdsb2JhbE9i
amVjdENvdW50KCkpOwogICAgICAgICBzdGF0cy5hZGQoImphdmFzY3JpcHRfZ2NfcHJvdGVjdGVk
X2dsb2JhbF9vYmplY3RfY291bnQiLCB2bS5oZWFwLnByb3RlY3RlZEdsb2JhbE9iamVjdENvdW50
KCkpOwogICAgIH0KIAorICAgIGdldFBsYXRmb3JtTWVtb3J5VXNhZ2VTdGF0aXN0aWNzKHN0YXRz
KTsKKwogICAgIHJldHVybiBzdGF0czsKIH0KIApAQCAtOTgsMTEgKzEwMCw4IEBAIHZvaWQgUGVy
Zm9ybWFuY2VMb2dnaW5nOjpkaWRSZWFjaFBvaW50T2ZJbnRlcmVzdChQb2ludE9mSW50ZXJlc3Qg
cG9pKQogICAgIGlmIChtX3BhZ2UubWFpbkZyYW1lKCkubG9hZGVyKCkuY2xpZW50KCkuaXNFbXB0
eUZyYW1lTG9hZGVyQ2xpZW50KCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGF1dG8gc3RhdHMg
PSBtZW1vcnlVc2FnZVN0YXRpc3RpY3MoU2hvdWxkSW5jbHVkZUV4cGVuc2l2ZUNvbXB1dGF0aW9u
czo6Tm8pOwotICAgIGdldFBsYXRmb3JtTWVtb3J5VXNhZ2VTdGF0aXN0aWNzKHN0YXRzKTsKLQog
ICAgIFJFTEVBU0VfTE9HKFBlcmZvcm1hbmNlTG9nZ2luZywgIk1lbW9yeSB1c2FnZSBpbmZvIGR1
bXAgYXQgJXM6IiwgdG9TdHJpbmcocG9pKSk7Ci0gICAgZm9yIChhdXRvJiBpdCA6IHN0YXRzKQor
ICAgIGZvciAoYXV0byYgaXQgOiBtZW1vcnlVc2FnZVN0YXRpc3RpY3MoU2hvdWxkSW5jbHVkZUV4
cGVuc2l2ZUNvbXB1dGF0aW9uczo6Tm8pKQogICAgICAgICBSRUxFQVNFX0xPRyhQZXJmb3JtYW5j
ZUxvZ2dpbmcsICIgICVzOiAlenUiLCBpdC5rZXksIGl0LnZhbHVlKTsKICNlbmRpZgogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZUxvZ2dpbmcuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VMb2dnaW5nLmgKaW5kZXggMzJiNGMwZTlhMWUxMjE4
MjlkYWI2ZmJjZWMwODljYWJkZDY5OTkwNC4uZTBmN2RjYmY3ZTQ5ZTNiZTE0ZDVlNjlhMzQyODEx
OWY4NzU0OWI2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZUxv
Z2dpbmcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlTG9nZ2luZy5oCkBA
IC0zMiw3ICszMiw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgUGFnZTsKIAotZW51
bSBjbGFzcyBTaG91bGRJbmNsdWRlRXhwZW5zaXZlQ29tcHV0YXRpb25zIHsgTm8sIFllcyB9Owor
ZW51bSBjbGFzcyBTaG91bGRJbmNsdWRlRXhwZW5zaXZlQ29tcHV0YXRpb25zIDogYm9vbCB7IE5v
LCBZZXMgfTsKIAogY2xhc3MgUGVyZm9ybWFuY2VMb2dnaW5nIHsKICAgICBXVEZfTUFLRV9GQVNU
X0FMTE9DQVRFRDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY29jb2EvUGVyZm9y
bWFuY2VMb2dnaW5nQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NvY29hL1BlcmZvcm1h
bmNlTG9nZ2luZ0NvY29hLm1tCmluZGV4IDI4OTZmZTE5NzZmZmIxOGFkZmE3OTY2NmZlNjhlMTYz
N2FiMjUwZmMuLjMxMjVjNWM2NjUwNzg0YjhhYzc4NjU4ZGUyOGFjZWRkZDU1MWNiNzYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY29jb2EvUGVyZm9ybWFuY2VMb2dnaW5nQ29jb2Eu
bW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9jb2NvYS9QZXJmb3JtYW5jZUxvZ2dpbmdDb2Nv
YS5tbQpAQCAtNDgsMTEgKzQ4LDExIEBAIHZvaWQgUGVyZm9ybWFuY2VMb2dnaW5nOjpnZXRQbGF0
Zm9ybU1lbW9yeVVzYWdlU3RhdGlzdGljcyhIYXNoTWFwPGNvbnN0IGNoYXIqLCBzCiAgICAga2Vy
bl9yZXR1cm5fdCBlcnIgPSB0YXNrX2luZm8obWFjaF90YXNrX3NlbGYoKSwgVEFTS19WTV9JTkZP
LCAodGFza19pbmZvX3QpICZ2bUluZm8sICZjb3VudCk7CiAgICAgaWYgKGVyciAhPSBLRVJOX1NV
Q0NFU1MpCiAgICAgICAgIHJldHVybjsKLSAgICBzdGF0cy5hZGQoImludGVybmFsIiwgc3RhdGlj
X2Nhc3Q8c2l6ZV90Pih2bUluZm8uaW50ZXJuYWwpKTsKLSAgICBzdGF0cy5hZGQoImNvbXByZXNz
ZWQiLCBzdGF0aWNfY2FzdDxzaXplX3Q+KHZtSW5mby5jb21wcmVzc2VkKSk7Ci0gICAgc3RhdHMu
YWRkKCJwaHlzX2Zvb3RwcmludCIsIHN0YXRpY19jYXN0PHNpemVfdD4odm1JbmZvLnBoeXNfZm9v
dHByaW50KSk7Ci0gICAgc3RhdHMuYWRkKCJyZXNpZGVudF9zaXplIiwgc3RhdGljX2Nhc3Q8c2l6
ZV90Pih2bUluZm8ucmVzaWRlbnRfc2l6ZSkpOwotICAgIHN0YXRzLmFkZCgidmlydHVhbF9zaXpl
Iiwgc3RhdGljX2Nhc3Q8c2l6ZV90Pih2bUluZm8udmlydHVhbF9zaXplKSk7CisgICAgc3RhdHMu
YWRkKCJpbnRlcm5hbF9tYiIsIHN0YXRpY19jYXN0PHNpemVfdD4odm1JbmZvLmludGVybmFsID4+
IDIwKSk7CisgICAgc3RhdHMuYWRkKCJjb21wcmVzc2VkX21iIiwgc3RhdGljX2Nhc3Q8c2l6ZV90
Pih2bUluZm8uY29tcHJlc3NlZCA+PiAyMCkpOworICAgIHN0YXRzLmFkZCgicGh5c19mb290cHJp
bnRfbWIiLCBzdGF0aWNfY2FzdDxzaXplX3Q+KHZtSW5mby5waHlzX2Zvb3RwcmludCA+PiAyMCkp
OworICAgIHN0YXRzLmFkZCgicmVzaWRlbnRfc2l6ZV9tYiIsIHN0YXRpY19jYXN0PHNpemVfdD4o
dm1JbmZvLnJlc2lkZW50X3NpemUgPj4gMjApKTsKKyAgICBzdGF0cy5hZGQoInZpcnR1YWxfc2l6
ZV9tYiIsIHN0YXRpY19jYXN0PHNpemVfdD4odm1JbmZvLnZpcnR1YWxfc2l6ZSA+PiAyMCkpOwog
fQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKaW5kZXggZDg2Mjll
ODcyOTE0ZjA3ODFjNmM0MTJjNzI1NDlhMjhiYmFlNzBkMC4uNDEzMzNjN2JkZWVjMmM5OGY5ZGM0
ZjZkN2M0ZWEyNzRlMzJkZDUzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNz
LmNwcApAQCAtMTM1LDYgKzEzNSw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9TZXJ2aWNlV29ya2Vy
Q29udGV4dERhdGEuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NldHRpbmdzLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9Vc2VyR2VzdHVyZUluZGljYXRvci5oPgorI2luY2x1ZGUgPHBhbC9Mb2dnaW5nLmg+
CiAjaW5jbHVkZSA8d3RmL0FsZ29yaXRobXMuaD4KICNpbmNsdWRlIDx3dGYvQ2FsbGJhY2tBZ2dy
ZWdhdG9yLmg+CiAjaW5jbHVkZSA8d3RmL0xhbmd1YWdlLmg+CkBAIC0zNzYsNiArMzc3LDE0IEBA
IHZvaWQgV2ViUHJvY2Vzczo6aW5pdGlhbGl6ZUNvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uKiBj
b25uZWN0aW9uKQogICAgIG1fd2ViQ29ubmVjdGlvbiA9IFdlYkNvbm5lY3Rpb25Ub1VJUHJvY2Vz
czo6Y3JlYXRlKHRoaXMpOwogfQogCitzdGF0aWMgdm9pZCBzY2hlZHVsZUxvZ01lbW9yeVN0YXRp
c3RpY3MoTG9nTWVtb3J5U3RhdGlzdGljc1JlYXNvbiByZWFzb24pCit7CisgICAgLy8gTG9nIHN0
YXRzIGluIHRoZSBuZXh0IHR1cm4gb2YgdGhlIHJ1biBsb29wIHNvIHRoYXQgaXQgcnVucyBhZnRl
ciB0aGUgbG93IG1lbW9yeSBoYW5kbGVyLgorICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChb
cmVhc29uXSB7CisgICAgICAgIFdlYkNvcmU6OmxvZ01lbW9yeVN0YXRpc3RpY3MocmVhc29uKTsK
KyAgICB9KTsKK30KKwogdm9pZCBXZWJQcm9jZXNzOjppbml0aWFsaXplV2ViUHJvY2VzcyhXZWJQ
cm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiYgcGFyYW1ldGVycykKIHsgICAgCiAgICAgVHJhY2VT
Y29wZSB0cmFjZVNjb3BlKEluaXRpYWxpemVXZWJQcm9jZXNzU3RhcnQsIEluaXRpYWxpemVXZWJQ
cm9jZXNzRW5kKTsKQEAgLTQyOSw3ICs0MzgsNyBAQCB2b2lkIFdlYlByb2Nlc3M6OmluaXRpYWxp
emVXZWJQcm9jZXNzKFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzKQog
I2lmIEVOQUJMRShQRVJJT0RJQ19NRU1PUllfTU9OSVRPUikKICAgICAgICAgbWVtb3J5UHJlc3N1
cmVIYW5kbGVyLnNldFNob3VsZFVzZVBlcmlvZGljTWVtb3J5TW9uaXRvcih0cnVlKTsKICAgICAg
ICAgbWVtb3J5UHJlc3N1cmVIYW5kbGVyLnNldE1lbW9yeUtpbGxDYWxsYmFjayhbdGhpc10gKCkg
ewotICAgICAgICAgICAgV2ViQ29yZTo6bG9nTWVtb3J5U3RhdGlzdGljc0F0VGltZU9mRGVhdGgo
KTsKKyAgICAgICAgICAgIFdlYkNvcmU6OmxvZ01lbW9yeVN0YXRpc3RpY3MoTG9nTWVtb3J5U3Rh
dGlzdGljc1JlYXNvbjo6T3V0T2ZNZW1vcnlEZWF0aCk7CiAgICAgICAgICAgICBpZiAoTWVtb3J5
UHJlc3N1cmVIYW5kbGVyOjpzaW5nbGV0b24oKS5wcm9jZXNzU3RhdGUoKSA9PSBXZWJzYW1Qcm9j
ZXNzU3RhdGU6OkFjdGl2ZSkKICAgICAgICAgICAgICAgICBwYXJlbnRQcm9jZXNzQ29ubmVjdGlv
bigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkRpZEV4Y2VlZEFjdGl2ZU1lbW9y
eUxpbWl0KCksIDApOwogICAgICAgICAgICAgZWxzZQpAQCAtNDM3LDEzICs0NDYsMzAgQEAgdm9p
ZCBXZWJQcm9jZXNzOjppbml0aWFsaXplV2ViUHJvY2VzcyhXZWJQcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzJiYgcGFyYW1ldGVycykKICAgICAgICAgfSk7CiAgICAgICAgIG1lbW9yeVByZXNzdXJl
SGFuZGxlci5zZXREaWRFeGNlZWRJbmFjdGl2ZUxpbWl0V2hpbGVBY3RpdmVDYWxsYmFjayhbdGhp
c10gKCkgewogICAgICAgICAgICAgcGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNz
YWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpEaWRFeGNlZWRJbmFjdGl2ZU1lbW9yeUxpbWl0V2hpbGVB
Y3RpdmUoKSwgMCk7CisKKyAgICAgICAgICAgIGlmICghbV9sb2dnZWRQcm9jZXNzTGltaXRDcml0
aWNhbE1lbW9yeVN0YXRpc3RpY3MpIHsKKyAgICAgICAgICAgICAgICBtX2xvZ2dlZFByb2Nlc3NM
aW1pdENyaXRpY2FsTWVtb3J5U3RhdGlzdGljcyA9IHRydWU7CisgICAgICAgICAgICAgICAgc2No
ZWR1bGVMb2dNZW1vcnlTdGF0aXN0aWNzKExvZ01lbW9yeVN0YXRpc3RpY3NSZWFzb246OkNyaXRp
Y2FsTWVtb3J5UHJlc3N1cmVOb3RpZmljYXRpb24pOworICAgICAgICAgICAgfQogICAgICAgICB9
KTsKICNlbmRpZgotICAgICAgICBtZW1vcnlQcmVzc3VyZUhhbmRsZXIuc2V0TWVtb3J5UHJlc3N1
cmVTdGF0dXNDaGFuZ2VkQ2FsbGJhY2soW3RoaXNdKGJvb2wgaXNVbmRlck1lbW9yeVByZXNzdXJl
KSB7CisgICAgICAgIG1lbW9yeVByZXNzdXJlSGFuZGxlci5zZXRNZW1vcnlQcmVzc3VyZVN0YXR1
c0NoYW5nZWRDYWxsYmFjayhbdGhpc10oV1RGOjpNZW1vcnlQcmVzc3VyZVN0YXR1cyBtZW1vcnlQ
cmVzc3VyZVN0YXR1cykgewogICAgICAgICAgICAgaWYgKHBhcmVudFByb2Nlc3NDb25uZWN0aW9u
KCkpCi0gICAgICAgICAgICAgICAgcGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNz
YWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpNZW1vcnlQcmVzc3VyZVN0YXR1c0NoYW5nZWQoaXNVbmRl
ck1lbW9yeVByZXNzdXJlKSwgMCk7CisgICAgICAgICAgICAgICAgcGFyZW50UHJvY2Vzc0Nvbm5l
Y3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpNZW1vcnlQcmVzc3VyZVN0
YXR1c0NoYW5nZWQoTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpzaW5nbGV0b24oKS5pc1VuZGVyTWVt
b3J5UHJlc3N1cmUoKSksIDApOworCisgICAgICAgICAgICBpZiAobWVtb3J5UHJlc3N1cmVTdGF0
dXMgPT0gV1RGOjpNZW1vcnlQcmVzc3VyZVN0YXR1czo6UHJvY2Vzc0xpbWl0V2FybmluZyAmJiAh
bV9sb2dnZWRQcm9jZXNzTGltaXRXYXJuaW5nTWVtb3J5U3RhdGlzdGljcykgeworICAgICAgICAg
ICAgICAgIG1fbG9nZ2VkUHJvY2Vzc0xpbWl0V2FybmluZ01lbW9yeVN0YXRpc3RpY3MgPSB0cnVl
OworICAgICAgICAgICAgICAgIHNjaGVkdWxlTG9nTWVtb3J5U3RhdGlzdGljcyhMb2dNZW1vcnlT
dGF0aXN0aWNzUmVhc29uOjpXYXJuaW5nTWVtb3J5UHJlc3N1cmVOb3RpZmljYXRpb24pOworICAg
ICAgICAgICAgfSBlbHNlIGlmIChtZW1vcnlQcmVzc3VyZVN0YXR1cyA9PSBXVEY6Ok1lbW9yeVBy
ZXNzdXJlU3RhdHVzOjpQcm9jZXNzTGltaXRDcml0aWNhbCAmJiAhbV9sb2dnZWRQcm9jZXNzTGlt
aXRDcml0aWNhbE1lbW9yeVN0YXRpc3RpY3MpIHsKKyAgICAgICAgICAgICAgICBtX2xvZ2dlZFBy
b2Nlc3NMaW1pdENyaXRpY2FsTWVtb3J5U3RhdGlzdGljcyA9IHRydWU7CisgICAgICAgICAgICAg
ICAgc2NoZWR1bGVMb2dNZW1vcnlTdGF0aXN0aWNzKExvZ01lbW9yeVN0YXRpc3RpY3NSZWFzb246
OkNyaXRpY2FsTWVtb3J5UHJlc3N1cmVOb3RpZmljYXRpb24pOworICAgICAgICAgICAgfQogICAg
ICAgICB9KTsKICAgICAgICAgbWVtb3J5UHJlc3N1cmVIYW5kbGVyLmluc3RhbGwoKTsKKworICAg
ICAgICBQQUw6OnJlZ2lzdGVyTm90aWZ5Q2FsbGJhY2soImNvbS5hcHBsZS5XZWJLaXQubG9nTWVt
U3RhdHMiLCBbXSB7CisgICAgICAgICAgICBXZWJDb3JlOjpsb2dNZW1vcnlTdGF0aXN0aWNzKExv
Z01lbW9yeVN0YXRpc3RpY3NSZWFzb246OkRlYnVnTm90aWZpY2F0aW9uKTsKKyAgICAgICAgfSk7
CiAgICAgfQogCiAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y29uc3VtZVBlcm1hbmVudGx5KHBhcmFt
ZXRlcnMuYWRkaXRpb25hbFNhbmRib3hFeHRlbnNpb25IYW5kbGVzKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUHJvY2Vzcy5oCmluZGV4IDIzNTM0MjUyNmVmN2E3NjEwY2IyNzIzMjBiNGQ2Mzg2
NGRlZTA2NTcuLmZlZGUwMzM2MzFlOTkxNzMxOTRhNjA2MWYyODc4MjgyYzMxNzIzMmIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaApAQCAtNzA3LDYgKzcwNyw4IEBAIHByaXZh
dGU6CiAjZW5kaWYKIAogICAgIGJvb2wgbV9zdXBwcmVzc01lbW9yeVByZXNzdXJlSGFuZGxlciB7
IGZhbHNlIH07CisgICAgYm9vbCBtX2xvZ2dlZFByb2Nlc3NMaW1pdFdhcm5pbmdNZW1vcnlTdGF0
aXN0aWNzIHsgZmFsc2UgfTsKKyAgICBib29sIG1fbG9nZ2VkUHJvY2Vzc0xpbWl0Q3JpdGljYWxN
ZW1vcnlTdGF0aXN0aWNzIHsgZmFsc2UgfTsKICNpZiBQTEFURk9STShNQUMpCiAgICAgc3RkOjp1
bmlxdWVfcHRyPFdlYkNvcmU6OkNQVU1vbml0b3I+IG1fY3B1TW9uaXRvcjsKICAgICBzdGQ6Om9w
dGlvbmFsPGRvdWJsZT4gbV9jcHVMaW1pdDsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>443979</attachid>
            <date>2021-11-11 11:16:15 -0800</date>
            <delta_ts>2021-11-11 12:41:09 -0800</delta_ts>
            <desc>patch for landing</desc>
            <filename>bug-232976-20211111111614.patch</filename>
            <type>text/plain</type>
            <size>32436</size>
            <attacher name="Ben Nham">nham</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1NjA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDFhNGE1NTdlZjZjNDUwMmNlMjY5NTJi
MzVmOWM1MDBiN2FjNzQyNjAuLjRkMWM5MWMxZmZkZDRlZDg1ZjYwZGY0ZWU1YjM3MTk0MmE1MGE2
NGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMzcgQEAKKzIwMjEtMTEtMTAgIEJlbiBOaGFtICA8bmhhbUBhcHBs
ZS5jb20+CisKKyAgICAgICAgTG9nIG1lbW9yeSB1c2FnZSBtZXRhZGF0YSB3aGVuIFdlYkNvbnRl
bnQgY3Jvc3NlcyBjcml0aWNhbCBvciB3YXJuaW5nIGxldmVsIG1lbW9yeSB0aHJlc2hvbGRzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzI5NzYKKwor
ICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICBGaXhlZCBzZXZlcmFs
IGlzc3VlcyB3aXRoIG1lbW9yeSB1c2FnZSB0cmFja2luZzoKKworICAgICAgICAgLSBwYWdlc1Bl
clZNVGFnIG5vdyBwcm9wZXJseSBhY2NvdW50cyBmb3Igc3dhcHBlZC1vdXQgcGFnZXMgaW4gaXRz
IGZvb3RwcmludCBjYWxjdWxhdGlvbiwKKyAgICAgICAgICAgYXMgZm9vdHByaW50KDEpIGFscmVh
ZHkgZG9lcy4KKyAgICAgICAgIC0gZGlzcGxheU5hbWVQZXJWTVRhZyBub3cgaW5jbHVkZXMgYWxs
IG9mIHRoZSBtb3N0IGNvbW1vbiBWTSB0YWdzIGFzc29jaWF0ZWQgd2l0aCBXZWJLaXQuCisgICAg
ICAgICAtIE1lbW9yeVByZXNzdXJlSGFuZGxlciBub3cga25vd3MgdGhlIHNwZWNpZmljIHR5cGUg
b2YgcHJlc3N1cmUgZXZlbnQgdGhhdCBvY2N1cnJlZC4gVGhpcworICAgICAgICAgICBhbGxvd3Mg
aXQgdG8gZGlmZmVyZW50aWF0ZSBiZXR3ZWVuIHRoZSBlbnRpcmUgc3lzdGVtIGJlaW5nIGF0IGEg
d2FybmluZyBwcmVzc3VyZSBsZXZlbAorICAgICAgICAgICB2cy4ganVzdCB0aGlzIHByb2Nlc3Mg
aGl0dGluZyBpdHMgd2FybmluZyBtZW1vcnkgbGV2ZWwgbGltaXQuCisKKyAgICAgICAgKiB3dGYv
TWVtb3J5UHJlc3N1cmVIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdURjo6TWVtb3J5UHJlc3N1cmVI
YW5kbGVyOjpzZXRNZW1vcnlQcmVzc3VyZVN0YXR1cyk6CisgICAgICAgIChXVEY6Ok1lbW9yeVBy
ZXNzdXJlSGFuZGxlcjo6bWVtb3J5UHJlc3N1cmVTdGF0dXNDaGFuZ2VkKToKKyAgICAgICAgKFdU
Rjo6TWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpzZXRVbmRlck1lbW9yeVByZXNzdXJlKTogRGVsZXRl
ZC4KKyAgICAgICAgKiB3dGYvTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmg6CisgICAgICAgIChXVEY6
Ok1lbW9yeVByZXNzdXJlSGFuZGxlcjo6c2V0TWVtb3J5UHJlc3N1cmVTdGF0dXNDaGFuZ2VkQ2Fs
bGJhY2spOgorICAgICAgICAoV1RGOjpNZW1vcnlQcmVzc3VyZUhhbmRsZXI6OmlzVW5kZXJNZW1v
cnlQcmVzc3VyZSBjb25zdCk6CisgICAgICAgICogd3RmL1Jlc291cmNlVXNhZ2UuaDoKKyAgICAg
ICAgKiB3dGYvY29jb2EvTWVtb3J5UHJlc3N1cmVIYW5kbGVyQ29jb2EubW06CisgICAgICAgIChX
VEY6Ok1lbW9yeVByZXNzdXJlSGFuZGxlcjo6aW5zdGFsbCk6CisgICAgICAgICogd3RmL2NvY29h
L1Jlc291cmNlVXNhZ2VDb2NvYS5jcHA6CisgICAgICAgIChXVEY6OmRpc3BsYXlOYW1lRm9yVk1U
YWcpOgorICAgICAgICAoV1RGOjpwYWdlc1BlclZNVGFnKToKKyAgICAgICAgKiB3dGYvdW5peC9N
ZW1vcnlQcmVzc3VyZUhhbmRsZXJVbml4LmNwcDoKKyAgICAgICAgKFdURjo6TWVtb3J5UHJlc3N1
cmVIYW5kbGVyOjp0cmlnZ2VyTWVtb3J5UHJlc3N1cmVFdmVudCk6CisgICAgICAgICogd3RmL3dp
bi9NZW1vcnlQcmVzc3VyZUhhbmRsZXJXaW4uY3BwOgorICAgICAgICAoV1RGOjpNZW1vcnlQcmVz
c3VyZUhhbmRsZXI6OndpbmRvd3NNZWFzdXJlbWVudFRpbWVyRmlyZWQpOgorCiAyMDIxLTExLTEw
ICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAgICBbQ0ZdIFJlZHVjZSBk
dXBsaWNhdGlvbiBhbmQgdW5uZWVkZWQgYnVmZmVyIGFsbG9jYXRpb25zIGFuZCBjb3B5aW5nIGlu
IFVSTCBjb2RlLCBhbHNvIHJlbW92ZSB1bnVzZWQgbWV0aG9kcyBhbmQgZnVuY3Rpb25zCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKaW5kZXggOTQzOGIxNGE5YmFmNmNlNDY1NjI0NDUxNDRhMTkzNTRhZjQxODM1Zi4uNzk1N2I5
MDJkZjZjYWM4MDBjN2FkNmVlMTViNWUwNGQ2MTE3OTdhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDM0IEBACisyMDIxLTExLTEwICBCZW4gTmhhbSAgPG5oYW1AYXBwbGUuY29tPgorCisgICAgICAg
IExvZyBtZW1vcnkgdXNhZ2UgbWV0YWRhdGEgd2hlbiBXZWJDb250ZW50IGNyb3NzZXMgY3JpdGlj
YWwgb3Igd2FybmluZyBsZXZlbCBtZW1vcnkgdGhyZXNob2xkcworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMyOTc2CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgV2ViQ29yZTo6bG9nTWVtb3J5U3RhdGlzdGljcyB3
YXMgY2hhbmdlZCB0bzoKKworICAgICAgICAgLSBFbWl0IFZNIHRhZyBuYW1lcyBhcyBwdWJsaWMg
c3RyaW5ncyB0byB0aGUgbG9nLiBUaGVyZSBpc24ndCBhbnl0aGluZyBwcml2YWN5IHNlbnNpdGl2
ZQorICAgICAgICAgICBhYm91dCBvdXIgMjU2IGZpeGVkIFZNIHRhZ3MsIGFuZCBlbWl0dGluZyB0
aGVtIHRvIHRoZSBsb2dzIGFzIGFzIHByaXZhdGUgc3RyaW5nIChhcyB3ZQorICAgICAgICAgICB3
ZXJlIGRvaW5nIGJlZm9yZSkgbWFkZSB0aG9zZSBsb2cgbGluZXMgdXNlbGVzcy4KKyAgICAgICAg
IC0gVXNlIFdlYkNvcmU6Om1lbW9yeVVzYWdlU3RhdGlzdGljcyB0byBnYXRoZXIgbWVtb3J5IG1l
dGFkYXRhLCBzaW5jZSBvdGhlciBXZWJDb3JlCisgICAgICAgICAgIGNhbGxzaXRlcyB3ZXJlIGFs
cmVhZHkgdXNpbmcgdGhhdCBhbmQgaXQgcmVkdWNlcyBjb2RlIGR1cGxpY2F0aW9uLgorICAgICAg
ICAgLSBPbmx5IGxvZyBKUyBvYmplY3QgdHlwZSBjb3VudHMgb24gaW50ZXJuYWwgT1MgYnVpbGRz
LiBQcmV2aW91c2x5IHdlIGFsc28gbG9nZ2VkIHRob3NlCisgICAgICAgICAgIGNvdW50cyBvbiBw
dWJsaWMgT1MgYnVpbGRzLCBidXQgdGhhdCB3YXMgdXNlbGVzcyBzaW5jZSBhbGwgdGhlIGNsYXNz
IG5hbWVzIHdlcmUgcmVkYWN0ZWQKKyAgICAgICAgICAgaW4gdGhlIGxvZy4KKworICAgICAgICAq
IHBhZ2UvTWVtb3J5UmVsZWFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpsb2dNZW1vcnlTdGF0
aXN0aWNzKToKKyAgICAgICAgKFdlYkNvcmU6OmxvZ01lbW9yeVN0YXRpc3RpY3NSZWFzb25EZXNj
cmlwdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpwYWdlQ291bnQpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6bG9nTWVtb3J5U3RhdGlzdGljc0F0VGltZU9mRGVhdGgpOiBEZWxldGVkLgor
ICAgICAgICAqIHBhZ2UvTWVtb3J5UmVsZWFzZS5oOgorICAgICAgICAqIHBhZ2UvUGVyZm9ybWFu
Y2VMb2dnaW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBlcmZvcm1hbmNlTG9nZ2luZzo6bWVt
b3J5VXNhZ2VTdGF0aXN0aWNzKToKKyAgICAgICAgKFdlYkNvcmU6OlBlcmZvcm1hbmNlTG9nZ2lu
Zzo6ZGlkUmVhY2hQb2ludE9mSW50ZXJlc3QpOgorICAgICAgICAqIHBhZ2UvUGVyZm9ybWFuY2VM
b2dnaW5nLmg6CisgICAgICAgICogcGFnZS9jb2NvYS9QZXJmb3JtYW5jZUxvZ2dpbmdDb2NvYS5t
bToKKyAgICAgICAgKFdlYkNvcmU6OlBlcmZvcm1hbmNlTG9nZ2luZzo6Z2V0UGxhdGZvcm1NZW1v
cnlVc2FnZVN0YXRpc3RpY3MpOgorCiAyMDIxLTExLTEwICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0
c0B3ZWJraXQub3JnPgogCiAgICAgICAgIFRoZSBjc3NUZXh0IHByb3BlcnR5IGZvciBhIGNvbXB1
dGVkIHN0eWxlIHNob3VsZCByZXR1cm4gYW4gZW1wdHkgc3RyaW5nCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGE1MzE3
MTMyODE0NTRiMDA0YjJlOTQzYTYyZjVhYTVkMjM2ZWM5YzguLjQ2ODViNGVmZDA1MWU5YzRlNzYw
MDAxODliOTEyYTUzYmZlOTIwY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMjEtMTEt
MTAgIEJlbiBOaGFtICA8bmhhbUBhcHBsZS5jb20+CisKKyAgICAgICAgTG9nIG1lbW9yeSB1c2Fn
ZSBtZXRhZGF0YSB3aGVuIFdlYkNvbnRlbnQgY3Jvc3NlcyBjcml0aWNhbCBvciB3YXJuaW5nIGxl
dmVsIG1lbW9yeSB0aHJlc2hvbGRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMzI5NzYKKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4K
KworICAgICAgICBBZGRlZCBjYWxsYmFja3MgdG8gbG9nIG1lbW9yeSB1c2FnZSBtZXRhZGF0YSB0
aGUgZmlyc3QgdGltZSBhIHByb2Nlc3MgaGl0cyB0aGVzZSBtaWxlc3RvbmVzOgorCisgICAgICAg
ICAtIGV4Y2VlZGVkIGluYWN0aXZlIG1lbW9yeSBsaW1pdCB3aGlsZSBhY3RpdmUgKG9uIE1hYykK
KyAgICAgICAgIC0gZXhjZWVkZWQgd2FybmluZyBwcm9jZXNzIGxpbWl0IHRocmVzaG9sZCAob24g
b3RoZXIgbm9uLU1hYyBBcHBsZSBwbGF0Zm9ybXMpCisgICAgICAgICAtIGV4Y2VlZGVkIGNyaXRp
Y2FsIHByb2Nlc3MgbGltaXQgdGhyZXNob2xkIChvbiBvdGhlciBub24tTWFjIEFwcGxlIHBsYXRm
b3JtcykKKworICAgICAgICBUaGUgcmVhc29uIGZvciB0aGlzIGlzIHdlICByZWNlaXZlIGEgbGFy
Z2UgbnVtYmVyIG9mIG91dCBvZiBtZW1vcnkgcmVwb3J0cyB3aXRoIHZlcnkgbGl0dGxlCisgICAg
ICAgIGluZm8gaW4gdGhlIGxvZ3MuIFdlIHdhbnQgdG8gbG9nIG1vcmUgbWV0YWRhdGEgYWJvdXQg
bWVtb3J5IHVzYWdlIChzaW1pbGFyIHRvIHdoYXQgd2UgZG8gb24KKyAgICAgICAgTWFjIGluIGBX
ZWJDb3JlOjpsb2dNZW1vcnlTdGF0aXN0aWNzQXRUaW1lT2ZEZWF0aGApIHRvIGhlbHAgdXMgZGVi
dWcgdGhvc2UgcmVwb3J0cy4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmluaXRpYWxpemVXZWJQcm9jZXNzKToKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuaDoKKwogMjAyMS0xMS0xMCAgUGVyIEFybmUg
Vm9sbGFuIDxwdm9sbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbbWFjT1NdW0dQVVBdIFJlbW92
ZSBhY2Nlc3MgdG8gc3lzY3RsIHByb3BlcnRpZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3Rm
L01lbW9yeVByZXNzdXJlSGFuZGxlci5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9NZW1vcnlQcmVzc3Vy
ZUhhbmRsZXIuY3BwCmluZGV4IGM3NWE0M2JjNWJlYTlhY2QwMmEzN2I1NjdhODlmYjViYjM4NzEz
N2EuLjRiMDU1MmUwYmZmYzAzZDcxYWEzNGZiZGExOTIzMTZlNGYyMWVhZTYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XVEYvd3RmL01lbW9yeVByZXNzdXJlSGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dU
Ri93dGYvTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmNwcApAQCAtMjY0LDE4ICsyNjQsMTkgQEAgdm9p
ZCBNZW1vcnlQcmVzc3VyZUhhbmRsZXI6OnJlbGVhc2VNZW1vcnkoQ3JpdGljYWwgY3JpdGljYWws
IFN5bmNocm9ub3VzIHN5bmNocm8KICAgICBwbGF0Zm9ybVJlbGVhc2VNZW1vcnkoY3JpdGljYWwp
OwogfQogCi12b2lkIE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6c2V0VW5kZXJNZW1vcnlQcmVzc3Vy
ZShib29sIHVuZGVyTWVtb3J5UHJlc3N1cmUpCit2b2lkIE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6
c2V0TWVtb3J5UHJlc3N1cmVTdGF0dXMoTWVtb3J5UHJlc3N1cmVTdGF0dXMgbWVtb3J5UHJlc3N1
cmVTdGF0dXMpCiB7Ci0gICAgaWYgKG1fdW5kZXJNZW1vcnlQcmVzc3VyZSA9PSB1bmRlck1lbW9y
eVByZXNzdXJlKQorICAgIGlmIChtX21lbW9yeVByZXNzdXJlU3RhdHVzID09IG1lbW9yeVByZXNz
dXJlU3RhdHVzKQogICAgICAgICByZXR1cm47Ci0gICAgbV91bmRlck1lbW9yeVByZXNzdXJlID0g
dW5kZXJNZW1vcnlQcmVzc3VyZTsKKworICAgIG1fbWVtb3J5UHJlc3N1cmVTdGF0dXMgPSBtZW1v
cnlQcmVzc3VyZVN0YXR1czsKICAgICBtZW1vcnlQcmVzc3VyZVN0YXR1c0NoYW5nZWQoKTsKIH0K
IAogdm9pZCBNZW1vcnlQcmVzc3VyZUhhbmRsZXI6Om1lbW9yeVByZXNzdXJlU3RhdHVzQ2hhbmdl
ZCgpCiB7CiAgICAgaWYgKG1fbWVtb3J5UHJlc3N1cmVTdGF0dXNDaGFuZ2VkQ2FsbGJhY2spCi0g
ICAgICAgIG1fbWVtb3J5UHJlc3N1cmVTdGF0dXNDaGFuZ2VkQ2FsbGJhY2soaXNVbmRlck1lbW9y
eVByZXNzdXJlKCkpOworICAgICAgICBtX21lbW9yeVByZXNzdXJlU3RhdHVzQ2hhbmdlZENhbGxi
YWNrKG1fbWVtb3J5UHJlc3N1cmVTdGF0dXMpOwogfQogCiB2b2lkIE1lbW9yeVByZXNzdXJlSGFu
ZGxlcjo6UmVsaWVmTG9nZ2VyOjpsb2dNZW1vcnlVc2FnZUNoYW5nZSgpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV1RGL3d0Zi9NZW1vcnlQcmVzc3VyZUhhbmRsZXIuaCBiL1NvdXJjZS9XVEYvd3RmL01l
bW9yeVByZXNzdXJlSGFuZGxlci5oCmluZGV4IDBmNWI2MjYzMDBkOGU5ZWU4ZjBkNzg1NDk0NTE3
OThlZTJkOTBhZjMuLjI3ZTIyMDlmYjlhNzNmZDgwZmEwNzQ2NWQ1YTUyZTU2MjgwZWVmNjkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL01lbW9yeVByZXNzdXJlSGFuZGxlci5oCisrKyBiL1Nv
dXJjZS9XVEYvd3RmL01lbW9yeVByZXNzdXJlSGFuZGxlci5oCkBAIC00Myw2ICs0MywxOCBAQAog
CiBuYW1lc3BhY2UgV1RGIHsKIAorZW51bSBjbGFzcyBNZW1vcnlQcmVzc3VyZVN0YXR1cyA6IHVp
bnQ4X3QgeworICAgIE5vcm1hbCwKKworICAgIC8vIFRoZSBlbnRpcmUgc3lzdGVtIGlzIGF0IGEg
d2FybmluZyBvciBjcml0aWNhbCBwcmVzc3VyZSBsZXZlbC4KKyAgICBTeXN0ZW1XYXJuaW5nLAor
ICAgIFN5c3RlbUNyaXRpY2FsLAorCisgICAgLy8gVGhpcyBzcGVjaWZpYyBwcm9jZXNzIGNyb3Nz
ZWQgYSB3YXJuaW5nIG9yIGNyaXRpY2FsIG1lbW9yeSB1c2FnZSBsaW1pdC4KKyAgICBQcm9jZXNz
TGltaXRXYXJuaW5nLAorICAgIFByb2Nlc3NMaW1pdENyaXRpY2FsCit9OworCiBlbnVtIGNsYXNz
IE1lbW9yeVVzYWdlUG9saWN5IDogdWludDhfdCB7CiAgICAgVW5yZXN0cmljdGVkLCAvLyBBbGxv
Y2F0ZSBhcyBtdWNoIGFzIHlvdSB3YW50CiAgICAgQ29uc2VydmF0aXZlLCAvLyBNYXliZSB5b3Ug
ZG9uJ3QgY2FjaGUgZXZlcnkgc2luZ2xlIHRoaW5nCkBAIC03NCw3ICs4Niw3IEBAIHB1YmxpYzoK
ICNlbmRpZgogCiAgICAgdm9pZCBzZXRNZW1vcnlLaWxsQ2FsbGJhY2soV1RGOjpGdW5jdGlvbjx2
b2lkKCk+JiYgZnVuY3Rpb24pIHsgbV9tZW1vcnlLaWxsQ2FsbGJhY2sgPSBXVEZNb3ZlKGZ1bmN0
aW9uKTsgfQotICAgIHZvaWQgc2V0TWVtb3J5UHJlc3N1cmVTdGF0dXNDaGFuZ2VkQ2FsbGJhY2so
V1RGOjpGdW5jdGlvbjx2b2lkKGJvb2wpPiYmIGZ1bmN0aW9uKSB7IG1fbWVtb3J5UHJlc3N1cmVT
dGF0dXNDaGFuZ2VkQ2FsbGJhY2sgPSBXVEZNb3ZlKGZ1bmN0aW9uKTsgfQorICAgIHZvaWQgc2V0
TWVtb3J5UHJlc3N1cmVTdGF0dXNDaGFuZ2VkQ2FsbGJhY2soV1RGOjpGdW5jdGlvbjx2b2lkKE1l
bW9yeVByZXNzdXJlU3RhdHVzKT4mJiBmdW5jdGlvbikgeyBtX21lbW9yeVByZXNzdXJlU3RhdHVz
Q2hhbmdlZENhbGxiYWNrID0gV1RGTW92ZShmdW5jdGlvbik7IH0KICAgICB2b2lkIHNldERpZEV4
Y2VlZEluYWN0aXZlTGltaXRXaGlsZUFjdGl2ZUNhbGxiYWNrKFdURjo6RnVuY3Rpb248dm9pZCgp
PiYmIGZ1bmN0aW9uKSB7IG1fZGlkRXhjZWVkSW5hY3RpdmVMaW1pdFdoaWxlQWN0aXZlQ2FsbGJh
Y2sgPSBXVEZNb3ZlKGZ1bmN0aW9uKTsgfQogCiAgICAgdm9pZCBzZXRMb3dNZW1vcnlIYW5kbGVy
KExvd01lbW9yeUhhbmRsZXImJiBoYW5kbGVyKQpAQCAtODQsMTQgKzk2LDE2IEBAIHB1YmxpYzoK
IAogICAgIGJvb2wgaXNVbmRlck1lbW9yeVByZXNzdXJlKCkgY29uc3QKICAgICB7Ci0gICAgICAg
IHJldHVybiBtX3VuZGVyTWVtb3J5UHJlc3N1cmUKKyAgICAgICAgYXV0byBtZW1vcnlQcmVzc3Vy
ZVN0YXR1cyA9IG1fbWVtb3J5UHJlc3N1cmVTdGF0dXMubG9hZCgpOworICAgICAgICByZXR1cm4g
bWVtb3J5UHJlc3N1cmVTdGF0dXMgPT0gTWVtb3J5UHJlc3N1cmVTdGF0dXM6OlN5c3RlbUNyaXRp
Y2FsCisgICAgICAgICAgICB8fCBtZW1vcnlQcmVzc3VyZVN0YXR1cyA9PSBNZW1vcnlQcmVzc3Vy
ZVN0YXR1czo6UHJvY2Vzc0xpbWl0Q3JpdGljYWwKICNpZiBQTEFURk9STShNQUMpCiAgICAgICAg
ICAgICB8fCBtX21lbW9yeVVzYWdlUG9saWN5ID49IE1lbW9yeVVzYWdlUG9saWN5OjpTdHJpY3QK
ICNlbmRpZgogICAgICAgICAgICAgfHwgbV9pc1NpbXVsYXRpbmdNZW1vcnlQcmVzc3VyZTsKICAg
ICB9CiAgICAgYm9vbCBpc1NpbXVsYXRpbmdNZW1vcnlQcmVzc3VyZSgpIGNvbnN0IHsgcmV0dXJu
IG1faXNTaW11bGF0aW5nTWVtb3J5UHJlc3N1cmU7IH0KLSAgICB2b2lkIHNldFVuZGVyTWVtb3J5
UHJlc3N1cmUoYm9vbCk7CisgICAgdm9pZCBzZXRNZW1vcnlQcmVzc3VyZVN0YXR1cyhNZW1vcnlQ
cmVzc3VyZVN0YXR1cyk7CiAKICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgTWVtb3J5VXNhZ2VQb2xp
Y3kgY3VycmVudE1lbW9yeVVzYWdlUG9saWN5KCk7CiAKQEAgLTIzOSw3ICsyNTMsNyBAQCBwcml2
YXRlOgogCiAgICAgdW5zaWduZWQgbV9wYWdlQ291bnQgeyAwIH07CiAKLSAgICBzdGQ6OmF0b21p
Yzxib29sPiBtX3VuZGVyTWVtb3J5UHJlc3N1cmUgeyBmYWxzZSB9OworICAgIHN0ZDo6YXRvbWlj
PE1lbW9yeVByZXNzdXJlU3RhdHVzPiBtX21lbW9yeVByZXNzdXJlU3RhdHVzIHsgTWVtb3J5UHJl
c3N1cmVTdGF0dXM6Ok5vcm1hbCB9OwogICAgIGJvb2wgbV9pbnN0YWxsZWQgeyBmYWxzZSB9Owog
ICAgIGJvb2wgbV9pc1NpbXVsYXRpbmdNZW1vcnlQcmVzc3VyZSB7IGZhbHNlIH07CiAgICAgYm9v
bCBtX3Nob3VsZExvZ01lbW9yeU1lbW9yeVByZXNzdXJlRXZlbnRzIHsgdHJ1ZSB9OwpAQCAtMjUx
LDcgKzI2NSw3IEBAIHByaXZhdGU6CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8UnVuTG9vcDo6VGlt
ZXI8TWVtb3J5UHJlc3N1cmVIYW5kbGVyPj4gbV9tZWFzdXJlbWVudFRpbWVyOwogICAgIFdURjo6
RnVuY3Rpb248dm9pZCgpPiBtX21lbW9yeUtpbGxDYWxsYmFjazsKLSAgICBXVEY6OkZ1bmN0aW9u
PHZvaWQoYm9vbCk+IG1fbWVtb3J5UHJlc3N1cmVTdGF0dXNDaGFuZ2VkQ2FsbGJhY2s7CisgICAg
V1RGOjpGdW5jdGlvbjx2b2lkKE1lbW9yeVByZXNzdXJlU3RhdHVzKT4gbV9tZW1vcnlQcmVzc3Vy
ZVN0YXR1c0NoYW5nZWRDYWxsYmFjazsKICAgICBXVEY6OkZ1bmN0aW9uPHZvaWQoKT4gbV9kaWRF
eGNlZWRJbmFjdGl2ZUxpbWl0V2hpbGVBY3RpdmVDYWxsYmFjazsKICAgICBMb3dNZW1vcnlIYW5k
bGVyIG1fbG93TWVtb3J5SGFuZGxlcjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUmVz
b3VyY2VVc2FnZS5oIGIvU291cmNlL1dURi93dGYvUmVzb3VyY2VVc2FnZS5oCmluZGV4IDJhNDI0
NzEzMTUxNzQzOTc3ZWU0YzBlM2IxZWRkNTQwZmFjODA3Y2IuLjgzZDJhNmRiOTg1MDU5ODA4ZTU4
OWYxODZmZGViMDk4MmRmNTE1ODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1Jlc291cmNl
VXNhZ2UuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9SZXNvdXJjZVVzYWdlLmgKQEAgLTMzLDYgKzMz
LDcgQEAgbmFtZXNwYWNlIFdURiB7CiAKIHN0cnVjdCBUYWdJbmZvIHsKICAgICBXVEZfTUFLRV9T
VFJVQ1RfRkFTVF9BTExPQ0FURUQ7CisgICAgc2l6ZV90IHJlZ2lvbkNvdW50IHsgMCB9OwogICAg
IHNpemVfdCBkaXJ0eSB7IDAgfTsKICAgICBzaXplX3QgcmVjbGFpbWFibGUgeyAwIH07CiAgICAg
c2l6ZV90IHJlc2VydmVkIHsgMCB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvY29jb2Ev
TWVtb3J5UHJlc3N1cmVIYW5kbGVyQ29jb2EubW0gYi9Tb3VyY2UvV1RGL3d0Zi9jb2NvYS9NZW1v
cnlQcmVzc3VyZUhhbmRsZXJDb2NvYS5tbQppbmRleCA5NjIwNWQwZjI4NjBkNDI4MWMyNzI5YjM1
ODcwNjA2ZTQzYTU0YTU4Li4zOWNmN2M4NmY2ODU4MjdjYzU5OWVhNWU1NmZkY2FiYmEyNjkyNjI2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9jb2NvYS9NZW1vcnlQcmVzc3VyZUhhbmRsZXJD
b2NvYS5tbQorKysgYi9Tb3VyY2UvV1RGL3d0Zi9jb2NvYS9NZW1vcnlQcmVzc3VyZUhhbmRsZXJD
b2NvYS5tbQpAQCAtNzgsMjEgKzc4LDIzIEBAIHZvaWQgTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpp
bnN0YWxsKCkKICAgICAgICAgICAgIHN3aXRjaCAoc3RhdHVzKSB7CiAgICAgICAgICAgICAvLyBW
TSBwcmVzc3VyZSBldmVudHMuCiAgICAgICAgICAgICBjYXNlIERJU1BBVENIX01FTU9SWVBSRVNT
VVJFX05PUk1BTDoKLSAgICAgICAgICAgICAgICBzZXRVbmRlck1lbW9yeVByZXNzdXJlKGZhbHNl
KTsKKyAgICAgICAgICAgICAgICBzZXRNZW1vcnlQcmVzc3VyZVN0YXR1cyhNZW1vcnlQcmVzc3Vy
ZVN0YXR1czo6Tm9ybWFsKTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIGNh
c2UgRElTUEFUQ0hfTUVNT1JZUFJFU1NVUkVfV0FSTjoKLSAgICAgICAgICAgICAgICBzZXRVbmRl
ck1lbW9yeVByZXNzdXJlKGZhbHNlKTsKKyAgICAgICAgICAgICAgICBzZXRNZW1vcnlQcmVzc3Vy
ZVN0YXR1cyhNZW1vcnlQcmVzc3VyZVN0YXR1czo6U3lzdGVtV2FybmluZyk7CiAgICAgICAgICAg
ICAgICAgcmVzcG9uZFRvTWVtb3J5UHJlc3N1cmUoQ3JpdGljYWw6Ok5vKTsKICAgICAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgICAgIGNhc2UgRElTUEFUQ0hfTUVNT1JZUFJFU1NVUkVfQ1JJ
VElDQUw6Ci0gICAgICAgICAgICAgICAgc2V0VW5kZXJNZW1vcnlQcmVzc3VyZSh0cnVlKTsKKyAg
ICAgICAgICAgICAgICBzZXRNZW1vcnlQcmVzc3VyZVN0YXR1cyhNZW1vcnlQcmVzc3VyZVN0YXR1
czo6U3lzdGVtQ3JpdGljYWwpOwogICAgICAgICAgICAgICAgIHJlc3BvbmRUb01lbW9yeVByZXNz
dXJlKENyaXRpY2FsOjpZZXMpOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAg
Ly8gUHJvY2VzcyBtZW1vcnkgbGltaXQgZXZlbnRzLgogICAgICAgICAgICAgY2FzZSBESVNQQVRD
SF9NRU1PUllQUkVTU1VSRV9QUk9DX0xJTUlUX1dBUk46CisgICAgICAgICAgICAgICAgc2V0TWVt
b3J5UHJlc3N1cmVTdGF0dXMoTWVtb3J5UHJlc3N1cmVTdGF0dXM6OlByb2Nlc3NMaW1pdFdhcm5p
bmcpOwogICAgICAgICAgICAgICAgIHJlc3BvbmRUb01lbW9yeVByZXNzdXJlKENyaXRpY2FsOjpO
byk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNlIERJU1BBVENIX01F
TU9SWVBSRVNTVVJFX1BST0NfTElNSVRfQ1JJVElDQUw6CisgICAgICAgICAgICAgICAgc2V0TWVt
b3J5UHJlc3N1cmVTdGF0dXMoTWVtb3J5UHJlc3N1cmVTdGF0dXM6OlByb2Nlc3NMaW1pdENyaXRp
Y2FsKTsKICAgICAgICAgICAgICAgICByZXNwb25kVG9NZW1vcnlQcmVzc3VyZShDcml0aWNhbDo6
WWVzKTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XVEYvd3RmL2NvY29hL1Jlc291cmNlVXNhZ2VDb2NvYS5jcHAgYi9Tb3VyY2UvV1RG
L3d0Zi9jb2NvYS9SZXNvdXJjZVVzYWdlQ29jb2EuY3BwCmluZGV4IGRmY2EwNzJiNGM0YWNlZTAz
MjEzYjY5OTAwMTM3ODYxYTNiMzQ5ZGQuLjMxNDA3YmFhZDU0MDc0NmI4NTk3NmRkODkzYWM0ODk5
NGJiMTc3MDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL2NvY29hL1Jlc291cmNlVXNhZ2VD
b2NvYS5jcHAKKysrIGIvU291cmNlL1dURi93dGYvY29jb2EvUmVzb3VyY2VVc2FnZUNvY29hLmNw
cApAQCAtNzIsMjggKzcyLDMyIEBAIHZvaWQgbG9nRm9vdHByaW50Q29tcGFyaXNvbihjb25zdCBz
dGQ6OmFycmF5PFRhZ0luZm8sIDI1Nj4mIGJlZm9yZSwgY29uc3Qgc3RkOjphCiBjb25zdCBjaGFy
KiBkaXNwbGF5TmFtZUZvclZNVGFnKHVuc2lnbmVkIHRhZykKIHsKICAgICBzd2l0Y2ggKHRhZykg
ewotICAgIGNhc2UgVk1fTUVNT1JZX0lPS0lUOiByZXR1cm4gIklPS2l0IjsKLSAgICBjYXNlIFZN
X01FTU9SWV9MQVlFUktJVDogcmV0dXJuICJDb3JlQW5pbWF0aW9uIjsKLSAgICBjYXNlIFZNX01F
TU9SWV9JTUFHRUlPOiByZXR1cm4gIkltYWdlSU8iOwogICAgIGNhc2UgVk1fTUVNT1JZX0NHSU1B
R0U6IHJldHVybiAiQ0cgaW1hZ2UiOworICAgIGNhc2UgVk1fTUVNT1JZX0NPUkVHUkFQSElDU19E
QVRBOiByZXR1cm4gIkNHIHJhc3RlciBkYXRhIjsKKyAgICBjYXNlIFZNX01FTU9SWV9DT1JFU0VS
VklDRVM6IHJldHVybiAiQ29yZVNlcnZpY2VzIjsKKyAgICBjYXNlIFZNX01FTU9SWV9EWUxJQjog
cmV0dXJuICJkeWxpYiI7CisgICAgY2FzZSBWTV9NRU1PUllfRk9VTkRBVElPTjogcmV0dXJuICJG
b3VuZGF0aW9uIjsKKyAgICBjYXNlIFZNX01FTU9SWV9JTUFHRUlPOiByZXR1cm4gIkltYWdlSU8i
OworICAgIGNhc2UgVk1fTUVNT1JZX0lPQUNDRUxFUkFUT1I6IHJldHVybiAiSU9BY2NlbGVyYXRv
ciI7CisgICAgY2FzZSBWTV9NRU1PUllfSU9TVVJGQUNFOiByZXR1cm4gIklPU3VyZmFjZSI7Cisg
ICAgY2FzZSBWTV9NRU1PUllfSU9LSVQ6IHJldHVybiAiSU9LaXQiOwogICAgIGNhc2UgVk1fTUVN
T1JZX0pBVkFTQ1JJUFRfQ09SRTogcmV0dXJuICJHaWdhY2FnZSI7CiAgICAgY2FzZSBWTV9NRU1P
UllfSkFWQVNDUklQVF9KSVRfRVhFQ1VUQUJMRV9BTExPQ0FUT1I6IHJldHVybiAiSlNDIEpJVCI7
CiAgICAgY2FzZSBWTV9NRU1PUllfSkFWQVNDUklQVF9KSVRfUkVHSVNURVJfRklMRTogcmV0dXJu
ICJJc29IZWFwIjsKKyAgICBjYXNlIFZNX01FTU9SWV9MQVlFUktJVDogcmV0dXJuICJDb3JlQW5p
bWF0aW9uIjsKKyAgICBjYXNlIFZNX01FTU9SWV9MSUJESVNQQVRDSDogcmV0dXJuICJsaWJkaXNw
YXRjaCI7CiAgICAgY2FzZSBWTV9NRU1PUllfTUFMTE9DOiByZXR1cm4gIm1hbGxvYyI7CiAgICAg
Y2FzZSBWTV9NRU1PUllfTUFMTE9DX0hVR0U6IHJldHVybiAibWFsbG9jIChodWdlKSI7CiAgICAg
Y2FzZSBWTV9NRU1PUllfTUFMTE9DX0xBUkdFOiByZXR1cm4gIm1hbGxvYyAobGFyZ2UpIjsKKyAg
ICBjYXNlIFZNX01FTU9SWV9NQUxMT0NfTUVESVVNOiByZXR1cm4gIm1hbGxvYyAobWVkaXVtKSI7
CisgICAgY2FzZSBWTV9NRU1PUllfTUFMTE9DX05BTk86IHJldHVybiAibWFsbG9jIChuYW5vKSI7
CiAgICAgY2FzZSBWTV9NRU1PUllfTUFMTE9DX1NNQUxMOiByZXR1cm4gIm1hbGxvYyAoc21hbGwp
IjsKICAgICBjYXNlIFZNX01FTU9SWV9NQUxMT0NfVElOWTogcmV0dXJuICJtYWxsb2MgKHRpbnkp
IjsKLSAgICBjYXNlIFZNX01FTU9SWV9NQUxMT0NfTkFOTzogcmV0dXJuICJtYWxsb2MgKG5hbm8p
IjsKLSAgICBjYXNlIFZNX01FTU9SWV9UQ01BTExPQzogcmV0dXJuICJibWFsbG9jIjsKLSAgICBj
YXNlIFZNX01FTU9SWV9GT1VOREFUSU9OOiByZXR1cm4gIkZvdW5kYXRpb24iOwotICAgIGNhc2Ug
Vk1fTUVNT1JZX1NUQUNLOiByZXR1cm4gIlN0YWNrIjsKKyAgICBjYXNlIFZNX01FTU9SWV9PU19B
TExPQ19PTkNFOiByZXR1cm4gIm9zX2FsbG9jX29uY2UiOwogICAgIGNhc2UgVk1fTUVNT1JZX1NR
TElURTogcmV0dXJuICJTUUxpdGUiOworICAgIGNhc2UgVk1fTUVNT1JZX1NUQUNLOiByZXR1cm4g
IlN0YWNrIjsKKyAgICBjYXNlIFZNX01FTU9SWV9UQ01BTExPQzogcmV0dXJuICJibWFsbG9jIjsK
ICAgICBjYXNlIFZNX01FTU9SWV9VTlNIQVJFRF9QTUFQOiByZXR1cm4gInBtYXAgKHVuc2hhcmVk
KSI7Ci0gICAgY2FzZSBWTV9NRU1PUllfRFlMSUI6IHJldHVybiAiZHlsaWIiOwotICAgIGNhc2Ug
Vk1fTUVNT1JZX0NPUkVTRVJWSUNFUzogcmV0dXJuICJDb3JlU2VydmljZXMiOwotICAgIGNhc2Ug
Vk1fTUVNT1JZX09TX0FMTE9DX09OQ0U6IHJldHVybiAib3NfYWxsb2Nfb25jZSI7Ci0gICAgY2Fz
ZSBWTV9NRU1PUllfTElCRElTUEFUQ0g6IHJldHVybiAibGliZGlzcGF0Y2giOwogICAgIGRlZmF1
bHQ6IHJldHVybiBudWxscHRyOwogICAgIH0KIH0KQEAgLTExNSw2ICsxMTksOCBAQCBzdGQ6OmFy
cmF5PFRhZ0luZm8sIDI1Nj4gcGFnZXNQZXJWTVRhZygpCiAgICAgICAgIGlmIChrciAhPSBLRVJO
X1NVQ0NFU1MpCiAgICAgICAgICAgICBicmVhazsKIAorICAgICAgICB0YWdzW2luZm8udXNlcl90
YWddLnJlZ2lvbkNvdW50Kys7CisKICAgICAgICAgdGFnc1tpbmZvLnVzZXJfdGFnXS5yZXNlcnZl
ZCArPSBzaXplIC8gdm1QYWdlU2l6ZSgpOwogCiAgICAgICAgIGlmIChwdXJnZWFibGVTdGF0ZSA9
PSBWTV9QVVJHQUJMRV9WT0xBVElMRSkgewpAQCAtMTI3LDEyICsxMzMsMTMgQEAgc3RkOjphcnJh
eTxUYWdJbmZvLCAyNTY+IHBhZ2VzUGVyVk1UYWcoKQogICAgICAgICAgICAgY29udGludWU7CiAg
ICAgICAgIH0KIAorICAgICAgICAvLyBUaGlzIGNhbGN1bGF0ZXMgdGhlIGZvb3RwcmludCBvZiBh
IFZNIHJlZ2lvbiBpbiBhIG1hbm5lciBzaW1pbGFyIHRvIHdoYXQgZm9vdHByaW50KDEpIGRvZXMg
aW4gdGhlIGxlZ2FjeSAtLXZtT2JqZWN0RGlydHkgbW9kZS4KICAgICAgICAgYm9vbCBhbm9ueW1v
dXMgPSAhaW5mby5leHRlcm5hbF9wYWdlcjsKICAgICAgICAgaWYgKGFub255bW91cykgewotICAg
ICAgICAgICAgdGFnc1tpbmZvLnVzZXJfdGFnXS5kaXJ0eSArPSBpbmZvLnBhZ2VzX3Jlc2lkZW50
IC0gaW5mby5wYWdlc19yZXVzYWJsZTsKKyAgICAgICAgICAgIHRhZ3NbaW5mby51c2VyX3RhZ10u
ZGlydHkgKz0gaW5mby5wYWdlc19yZXNpZGVudCAtIGluZm8ucGFnZXNfcmV1c2FibGUgKyBpbmZv
LnBhZ2VzX3N3YXBwZWRfb3V0OwogICAgICAgICAgICAgdGFnc1tpbmZvLnVzZXJfdGFnXS5yZWNs
YWltYWJsZSArPSBpbmZvLnBhZ2VzX3JldXNhYmxlOwogICAgICAgICB9IGVsc2UKLSAgICAgICAg
ICAgIHRhZ3NbaW5mby51c2VyX3RhZ10uZGlydHkgKz0gaW5mby5wYWdlc19kaXJ0aWVkOworICAg
ICAgICAgICAgdGFnc1tpbmZvLnVzZXJfdGFnXS5kaXJ0eSArPSBpbmZvLnBhZ2VzX2RpcnRpZWQg
KyBpbmZvLnBhZ2VzX3N3YXBwZWRfb3V0OwogICAgIH0KIAogICAgIHJldHVybiB0YWdzOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dURi93dGYvdW5peC9NZW1vcnlQcmVzc3VyZUhhbmRsZXJVbml4LmNw
cCBiL1NvdXJjZS9XVEYvd3RmL3VuaXgvTWVtb3J5UHJlc3N1cmVIYW5kbGVyVW5peC5jcHAKaW5k
ZXggOGM1MGU0Y2UwNmNlMjFiOTVhZmYyODkxZjllZDkxYmI5Njc0MjhmOC4uODVhM2VhMDZjNjY3
ZjU5MmM5MmVlNzI1NmIwOTMxY2U5NTk1ZTFmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYv
dW5peC9NZW1vcnlQcmVzc3VyZUhhbmRsZXJVbml4LmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi91
bml4L01lbW9yeVByZXNzdXJlSGFuZGxlclVuaXguY3BwCkBAIC02Niw3ICs2Niw3IEBAIHZvaWQg
TWVtb3J5UHJlc3N1cmVIYW5kbGVyOjp0cmlnZ2VyTWVtb3J5UHJlc3N1cmVFdmVudChib29sIGlz
Q3JpdGljYWwpCiAgICAgaWYgKFJlbGllZkxvZ2dlcjo6bG9nZ2luZ0VuYWJsZWQoKSkKICAgICAg
ICAgTE9HKE1lbW9yeVByZXNzdXJlLCAiR290IG1lbW9yeSBwcmVzc3VyZSBub3RpZmljYXRpb24g
KCVzKSIsIGlzQ3JpdGljYWwgPyAiY3JpdGljYWwiIDogIm5vbi1jcml0aWNhbCIpOwogCi0gICAg
c2V0VW5kZXJNZW1vcnlQcmVzc3VyZSh0cnVlKTsKKyAgICBzZXRNZW1vcnlQcmVzc3VyZVN0YXR1
cyhNZW1vcnlQcmVzc3VyZVN0YXR1czo6U3lzdGVtQ3JpdGljYWwpOwogCiAgICAgZW5zdXJlT25N
YWluVGhyZWFkKFt0aGlzLCBpc0NyaXRpY2FsXSB7CiAgICAgICAgIHJlc3BvbmRUb01lbW9yeVBy
ZXNzdXJlKGlzQ3JpdGljYWwgPyBDcml0aWNhbDo6WWVzIDogQ3JpdGljYWw6Ok5vKTsKQEAgLTc1
LDcgKzc1LDcgQEAgdm9pZCBNZW1vcnlQcmVzc3VyZUhhbmRsZXI6OnRyaWdnZXJNZW1vcnlQcmVz
c3VyZUV2ZW50KGJvb2wgaXNDcml0aWNhbCkKICAgICBpZiAoUmVsaWVmTG9nZ2VyOjpsb2dnaW5n
RW5hYmxlZCgpICYmIGlzVW5kZXJNZW1vcnlQcmVzc3VyZSgpKQogICAgICAgICBMT0coTWVtb3J5
UHJlc3N1cmUsICJTeXN0ZW0gaXMgbm8gbG9uZ2VyIHVuZGVyIG1lbW9yeSBwcmVzc3VyZS4iKTsK
IAotICAgIHNldFVuZGVyTWVtb3J5UHJlc3N1cmUoZmFsc2UpOworICAgIHNldE1lbW9yeVByZXNz
dXJlU3RhdHVzKE1lbW9yeVByZXNzdXJlU3RhdHVzOjpOb3JtYWwpOwogfQogCiB2b2lkIE1lbW9y
eVByZXNzdXJlSGFuZGxlcjo6aW5zdGFsbCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi93
aW4vTWVtb3J5UHJlc3N1cmVIYW5kbGVyV2luLmNwcCBiL1NvdXJjZS9XVEYvd3RmL3dpbi9NZW1v
cnlQcmVzc3VyZUhhbmRsZXJXaW4uY3BwCmluZGV4IGU2YmViZGMxY2EyMDI2MTllYTRmZDc2NDI5
YzljZTNmZTUwYWM4YjAuLjQ0ZDU3OGVhMGY3YmFmNDgwMjMzNGRjNzIzYzZhZDgyMDg3OTg2ZjUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3dpbi9NZW1vcnlQcmVzc3VyZUhhbmRsZXJXaW4u
Y3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL3dpbi9NZW1vcnlQcmVzc3VyZUhhbmRsZXJXaW4uY3Bw
CkBAIC0zOCwxMiArMzgsMTIgQEAgdm9pZCBNZW1vcnlQcmVzc3VyZUhhbmRsZXI6OnBsYXRmb3Jt
SW5pdGlhbGl6ZSgpCiAKIHZvaWQgTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjp3aW5kb3dzTWVhc3Vy
ZW1lbnRUaW1lckZpcmVkKCkKIHsKLSAgICBzZXRVbmRlck1lbW9yeVByZXNzdXJlKGZhbHNlKTsK
KyAgICBzZXRNZW1vcnlQcmVzc3VyZVN0YXR1cyhNZW1vcnlQcmVzc3VyZVN0YXR1czo6Tm9ybWFs
KTsKIAogICAgIEJPT0wgbWVtb3J5TG93OwogCiAgICAgaWYgKFF1ZXJ5TWVtb3J5UmVzb3VyY2VO
b3RpZmljYXRpb24obV9sb3dNZW1vcnlIYW5kbGUuZ2V0KCksICZtZW1vcnlMb3cpICYmIG1lbW9y
eUxvdykgewotICAgICAgICBzZXRVbmRlck1lbW9yeVByZXNzdXJlKHRydWUpOworICAgICAgICBz
ZXRNZW1vcnlQcmVzc3VyZVN0YXR1cyhNZW1vcnlQcmVzc3VyZVN0YXR1czo6U3lzdGVtQ3JpdGlj
YWwpOwogICAgICAgICByZWxlYXNlTWVtb3J5KENyaXRpY2FsOjpZZXMpOwogICAgICAgICByZXR1
cm47CiAgICAgfQpAQCAtNjAsNyArNjAsNyBAQCB2b2lkIE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6
d2luZG93c01lYXN1cmVtZW50VGltZXJGaXJlZCgpCiAgICAgY29uc3QgaW50IG1heE1lbW9yeVVz
YWdlQnl0ZXMgPSAwLjkgKiAxMDI0ICogMTAyNCAqIDEwMjQ7CiAKICAgICBpZiAoY291bnRlcnMu
UHJpdmF0ZVVzYWdlID4gbWF4TWVtb3J5VXNhZ2VCeXRlcykgewotICAgICAgICBzZXRVbmRlck1l
bW9yeVByZXNzdXJlKHRydWUpOworICAgICAgICBzZXRNZW1vcnlQcmVzc3VyZVN0YXR1cyhNZW1v
cnlQcmVzc3VyZVN0YXR1czo6UHJvY2Vzc0xpbWl0Q3JpdGljYWwpOwogICAgICAgICByZWxlYXNl
TWVtb3J5KENyaXRpY2FsOjpZZXMpOwogICAgIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9NZW1vcnlSZWxlYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTWVt
b3J5UmVsZWFzZS5jcHAKaW5kZXggMWI0ZTQ4NWY3YTc1YzIxZDU2OGZkODViMjU0MDZlMjVkZjU1
NjBiNC4uZWY3OTUzMGU3YzVjMjBjNDE4NDA2OWVkYzU4NjVkYzI4Yjk5M2Y2ZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9NZW1vcnlSZWxlYXNlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL01lbW9yeVJlbGVhc2UuY3BwCkBAIC00Niw2ICs0Niw3IEBACiAjaW5jbHVkZSAi
TG9nZ2luZy5oIgogI2luY2x1ZGUgIk1lbW9yeUNhY2hlLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgor
I2luY2x1ZGUgIlBlcmZvcm1hbmNlTG9nZ2luZy5oIgogI2luY2x1ZGUgIlJlbmRlclRoZW1lLmgi
CiAjaW5jbHVkZSAiU2Nyb2xsaW5nVGhyZWFkLmgiCiAjaW5jbHVkZSAiU3R5bGVTY29wZS5oIgpA
QCAtNjAsNiArNjEsNyBAQAogCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAjaW5jbHVkZSAiUmVzb3Vy
Y2VVc2FnZVRocmVhZC5oIgorI2luY2x1ZGUgPHd0Zi9zcGkvZGFyd2luL09TVmFyaWFudFNQSS5o
PgogI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTE3NSwyNiArMTc3LDM4IEBAIHZv
aWQgcmVsZWFzZUdyYXBoaWNzTWVtb3J5KENyaXRpY2FsIGNyaXRpY2FsLCBTeW5jaHJvbm91cyBz
eW5jaHJvbm91cykKICAgICBXVEY6OnJlbGVhc2VGYXN0TWFsbG9jRnJlZU1lbW9yeSgpOwogfQog
Ci0jaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECi1zdGF0aWMgdW5zaWduZWQgcGFnZUNvdW50KCkK
KyNpZiBSRUxFQVNFX0xPR19ESVNBQkxFRAordm9pZCBsb2dNZW1vcnlTdGF0aXN0aWNzKExvZ01l
bW9yeVN0YXRpc3RpY3NSZWFzb24pIHsgfQorI2Vsc2UKK3N0YXRpYyBjb25zdCBjaGFyKiBsb2dN
ZW1vcnlTdGF0aXN0aWNzUmVhc29uRGVzY3JpcHRpb24oTG9nTWVtb3J5U3RhdGlzdGljc1JlYXNv
biByZWFzb24pCiB7Ci0gICAgdW5zaWduZWQgY291bnQgPSAwOwotICAgIFBhZ2U6OmZvckVhY2hQ
YWdlKFsmXSAoUGFnZSYgcGFnZSkgewotICAgICAgICBpZiAoIXBhZ2UuaXNVdGlsaXR5UGFnZSgp
KQotICAgICAgICAgICAgKytjb3VudDsKLSAgICB9KTsKLSAgICByZXR1cm4gY291bnQ7CisgICAg
c3dpdGNoIChyZWFzb24pIHsKKyAgICBjYXNlIExvZ01lbW9yeVN0YXRpc3RpY3NSZWFzb246OkRl
YnVnTm90aWZpY2F0aW9uOgorICAgICAgICByZXR1cm4gImRlYnVnIG5vdGlmaWNhdGlvbiI7Cisg
ICAgY2FzZSBMb2dNZW1vcnlTdGF0aXN0aWNzUmVhc29uOjpXYXJuaW5nTWVtb3J5UHJlc3N1cmVO
b3RpZmljYXRpb246CisgICAgICAgIHJldHVybiAid2FybmluZyBtZW1vcnkgcHJlc3N1cmUgbm90
aWZpY2F0aW9uIjsKKyAgICBjYXNlIExvZ01lbW9yeVN0YXRpc3RpY3NSZWFzb246OkNyaXRpY2Fs
TWVtb3J5UHJlc3N1cmVOb3RpZmljYXRpb246CisgICAgICAgIHJldHVybiAiY3JpdGljYWwgbWVt
b3J5IHByZXNzdXJlIG5vdGlmaWNhdGlvbiI7CisgICAgY2FzZSBMb2dNZW1vcnlTdGF0aXN0aWNz
UmVhc29uOjpPdXRPZk1lbW9yeURlYXRoOgorICAgICAgICByZXR1cm4gIm91dCBvZiBtZW1vcnkg
ZGVhdGgiOworICAgIH07CisgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0KLSNl
bmRpZgogCi12b2lkIGxvZ01lbW9yeVN0YXRpc3RpY3NBdFRpbWVPZkRlYXRoKCkKK3ZvaWQgbG9n
TWVtb3J5U3RhdGlzdGljcyhMb2dNZW1vcnlTdGF0aXN0aWNzUmVhc29uIHJlYXNvbikKIHsKLSNp
ZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKKyAgICBjb25zdCBjaGFyKiBkZXNjcmlwdGlvbiA9IGxv
Z01lbW9yeVN0YXRpc3RpY3NSZWFzb25EZXNjcmlwdGlvbihyZWFzb24pOworCisgICAgUkVMRUFT
RV9MT0coTWVtb3J5UHJlc3N1cmUsICJXZWJLaXQgbWVtb3J5IHVzYWdlIHN0YXRpc3RpY3MgYXQg
dGltZSBvZiAlIiBQVUJMSUNfTE9HX1NUUklORyAiOiIsIGRlc2NyaXB0aW9uKTsKKyAgICBhdXRv
IHN0YXRzID0gUGVyZm9ybWFuY2VMb2dnaW5nOjptZW1vcnlVc2FnZVN0YXRpc3RpY3MoU2hvdWxk
SW5jbHVkZUV4cGVuc2l2ZUNvbXB1dGF0aW9uczo6WWVzKTsKKyAgICBmb3IgKGF1dG8mIFtrZXks
IHZhbF0gOiBzdGF0cykKKyAgICAgICAgUkVMRUFTRV9MT0coTWVtb3J5UHJlc3N1cmUsICIlIiBQ
VUJMSUNfTE9HX1NUUklORyAiOiAlenUiLCBrZXksIHZhbCk7CisKICNpZiBQTEFURk9STShDT0NP
QSkKICAgICBhdXRvIHBhZ2VTaXplID0gdm1QYWdlU2l6ZSgpOwogICAgIGF1dG8gcGFnZXMgPSBw
YWdlc1BlclZNVGFnKCk7CiAKLSAgICBSRUxFQVNFX0xPRyhNZW1vcnlQcmVzc3VyZSwgIkRpcnR5
IG1lbW9yeSBwZXIgVk0gdGFnIGF0IHRpbWUgb2YgZGVhdGg6Iik7CisgICAgUkVMRUFTRV9MT0co
TWVtb3J5UHJlc3N1cmUsICJEaXJ0eSBtZW1vcnkgcGVyIFZNIHRhZyBhdCB0aW1lIG9mICUiIFBV
QkxJQ19MT0dfU1RSSU5HICI6IiwgZGVzY3JpcHRpb24pOwogICAgIGZvciAodW5zaWduZWQgaSA9
IDA7IGkgPCAyNTY7ICsraSkgewogICAgICAgICBzaXplX3QgZGlydHkgPSBwYWdlc1tpXS5kaXJ0
eSAqIHBhZ2VTaXplOwogICAgICAgICBpZiAoIWRpcnR5KQpAQCAtMjAyLDI4ICsyMTYsMjIgQEAg
dm9pZCBsb2dNZW1vcnlTdGF0aXN0aWNzQXRUaW1lT2ZEZWF0aCgpCiAgICAgICAgIFN0cmluZyB0
YWdOYW1lID0gZGlzcGxheU5hbWVGb3JWTVRhZyhpKTsKICAgICAgICAgaWYgKCF0YWdOYW1lKQog
ICAgICAgICAgICAgdGFnTmFtZSA9IG1ha2VTdHJpbmcoIlRhZyAiLCBpKTsKLSAgICAgICAgUkVM
RUFTRV9MT0coTWVtb3J5UHJlc3N1cmUsICIlMTZzOiAlbHUgTUIiLCB0YWdOYW1lLmxhdGluMSgp
LmRhdGEoKSwgZGlydHkgLyBNQik7CisgICAgICAgIFJFTEVBU0VfTE9HKE1lbW9yeVByZXNzdXJl
LCAiICAlIiBQVUJMSUNfTE9HX1NUUklORyAiOiAlbHUgTUIgaW4gJXp1IHJlZ2lvbnMiLCB0YWdO
YW1lLmxhdGluMSgpLmRhdGEoKSwgZGlydHkgLyBNQiwgcGFnZXNbaV0ucmVnaW9uQ291bnQpOwog
ICAgIH0KKworICAgIGJvb2wgc2hvdWxkTG9nSmF2YVNjcmlwdE9iamVjdENvdW50cyA9IG9zX3Zh
cmlhbnRfYWxsb3dzX2ludGVybmFsX3NlY3VyaXR5X3BvbGljaWVzKCJjb20uYXBwbGUuV2ViS2l0
Iik7CisgICAgaWYgKCFzaG91bGRMb2dKYXZhU2NyaXB0T2JqZWN0Q291bnRzKQorICAgICAgICBy
ZXR1cm47CiAjZW5kaWYKIAogICAgIGF1dG8mIHZtID0gY29tbW9uVk0oKTsKICAgICBKU0M6OkpT
TG9ja0hvbGRlciBsb2NrZXIodm0pOwotICAgIFJFTEVBU0VfTE9HKE1lbW9yeVByZXNzdXJlLCAi
TWVtb3J5IHVzYWdlIHN0YXRpc3RpY3MgYXQgdGltZSBvZiBkZWF0aDoiKTsKLSAgICBSRUxFQVNF
X0xPRyhNZW1vcnlQcmVzc3VyZSwgIkdDIGhlYXAgc2l6ZTogJXp1Iiwgdm0uaGVhcC5zaXplKCkp
OwotICAgIFJFTEVBU0VfTE9HKE1lbW9yeVByZXNzdXJlLCAiR0MgaGVhcCBleHRyYSBtZW1vcnkg
c2l6ZTogJXp1Iiwgdm0uaGVhcC5leHRyYU1lbW9yeVNpemUoKSk7Ci0jaWYgRU5BQkxFKFJFU09V
UkNFX1VTQUdFKQotICAgIFJFTEVBU0VfTE9HKE1lbW9yeVByZXNzdXJlLCAiR0MgaGVhcCBleHRl
cm5hbCBtZW1vcnk6ICV6dSIsIHZtLmhlYXAuZXh0ZXJuYWxNZW1vcnlTaXplKCkpOwotI2VuZGlm
Ci0gICAgUkVMRUFTRV9MT0coTWVtb3J5UHJlc3N1cmUsICJHbG9iYWwgb2JqZWN0IGNvdW50OiAl
enUiLCB2bS5oZWFwLmdsb2JhbE9iamVjdENvdW50KCkpOwotCi0gICAgUkVMRUFTRV9MT0coTWVt
b3J5UHJlc3N1cmUsICJQYWdlIGNvdW50OiAldSIsIHBhZ2VDb3VudCgpKTsKLSAgICBSRUxFQVNF
X0xPRyhNZW1vcnlQcmVzc3VyZSwgIkRvY3VtZW50IGNvdW50OiAldSIsIERvY3VtZW50OjphbGxE
b2N1bWVudHMoKS5zaXplKCkpOwotICAgIFJFTEVBU0VfTE9HKE1lbW9yeVByZXNzdXJlLCAiTGl2
ZSBKYXZhU2NyaXB0IG9iamVjdHM6Iik7CisgICAgUkVMRUFTRV9MT0coTWVtb3J5UHJlc3N1cmUs
ICJMaXZlIEphdmFTY3JpcHQgb2JqZWN0cyBhdCB0aW1lIG9mICUiIFBVQkxJQ19MT0dfU1RSSU5H
ICI6IiwgZGVzY3JpcHRpb24pOwogICAgIGF1dG8gdHlwZUNvdW50cyA9IHZtLmhlYXAub2JqZWN0
VHlwZUNvdW50cygpOwogICAgIGZvciAoYXV0byYgaXQgOiAqdHlwZUNvdW50cykKLSAgICAgICAg
UkVMRUFTRV9MT0coTWVtb3J5UHJlc3N1cmUsICIgICVzOiAlZCIsIGl0LmtleSwgaXQudmFsdWUp
OwotI2VuZGlmCisgICAgICAgIFJFTEVBU0VfTE9HKE1lbW9yeVByZXNzdXJlLCAiICAlIiBQVUJM
SUNfTE9HX1NUUklORyAiOiAlZCIsIGl0LmtleSwgaXQudmFsdWUpOwogfQorI2VuZGlmCiAKICNp
ZiAhUExBVEZPUk0oQ09DT0EpCiB2b2lkIHBsYXRmb3JtUmVsZWFzZU1lbW9yeShDcml0aWNhbCkg
eyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL01lbW9yeVJlbGVhc2UuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvTWVtb3J5UmVsZWFzZS5oCmluZGV4IDIwZmEzNjgwODIxYjAxZmI4
MTM3NGU1YzU5YTU3NDFjNjg5YjczOWYuLjhjOWQ4NWZiZDg4ZmIzMmI0MmU4NjY4YzhkYmIxYjcw
ZWFiMTQyMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTWVtb3J5UmVsZWFzZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTWVtb3J5UmVsZWFzZS5oCkBAIC0zMSw2ICszMSwx
MiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGVudW0gY2xhc3MgTWFpbnRhaW5CYWNrRm9yd2Fy
ZENhY2hlIDogYm9vbCB7IE5vLCBZZXMgfTsKIGVudW0gY2xhc3MgTWFpbnRhaW5NZW1vcnlDYWNo
ZSA6IGJvb2wgeyBObywgWWVzIH07CitlbnVtIGNsYXNzIExvZ01lbW9yeVN0YXRpc3RpY3NSZWFz
b24gOiB1aW50OF90IHsKKyAgICBEZWJ1Z05vdGlmaWNhdGlvbiwKKyAgICBXYXJuaW5nTWVtb3J5
UHJlc3N1cmVOb3RpZmljYXRpb24sCisgICAgQ3JpdGljYWxNZW1vcnlQcmVzc3VyZU5vdGlmaWNh
dGlvbiwKKyAgICBPdXRPZk1lbW9yeURlYXRoCit9OwogCiBXRUJDT1JFX0VYUE9SVCB2b2lkIHJl
bGVhc2VNZW1vcnkoQ3JpdGljYWwsIFN5bmNocm9ub3VzLCBNYWludGFpbkJhY2tGb3J3YXJkQ2Fj
aGUgPSBNYWludGFpbkJhY2tGb3J3YXJkQ2FjaGU6Ok5vLCBNYWludGFpbk1lbW9yeUNhY2hlID0g
TWFpbnRhaW5NZW1vcnlDYWNoZTo6Tm8pOwogdm9pZCBwbGF0Zm9ybVJlbGVhc2VNZW1vcnkoQ3Jp
dGljYWwpOwpAQCAtMzgsNiArNDQsNiBAQCBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlbGVhc2VHcmFw
aGljc01lbW9yeShDcml0aWNhbCwgU3luY2hyb25vdXMpOwogdm9pZCBwbGF0Zm9ybVJlbGVhc2VH
cmFwaGljc01lbW9yeShDcml0aWNhbCk7CiB2b2lkIGpldHRpc29uRXhwZW5zaXZlT2JqZWN0c09u
VG9wTGV2ZWxOYXZpZ2F0aW9uKCk7CiBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlZ2lzdGVyTWVtb3J5
UmVsZWFzZU5vdGlmeUNhbGxiYWNrcygpOwotV0VCQ09SRV9FWFBPUlQgdm9pZCBsb2dNZW1vcnlT
dGF0aXN0aWNzQXRUaW1lT2ZEZWF0aCgpOworV0VCQ09SRV9FWFBPUlQgdm9pZCBsb2dNZW1vcnlT
dGF0aXN0aWNzKExvZ01lbW9yeVN0YXRpc3RpY3NSZWFzb24pOwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlTG9nZ2lu
Zy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlTG9nZ2luZy5jcHAKaW5kZXgg
YWNhODc1MDUwZmMyMTMxODcyMTFiYmQ2MjU4ZDBjOTczMjBjZDRjZC4uYjM5OGQ1ZWY5YmUxODgy
OGViMzMyY2JjYTkzNmUzY2ExMzZjNGY0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9QZXJmb3JtYW5jZUxvZ2dpbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9y
bWFuY2VMb2dnaW5nLmNwcApAQCAtNTYsMjUgKzU2LDI3IEBAIHN0YXRpYyBjb25zdCBjaGFyKiB0
b1N0cmluZyhQZXJmb3JtYW5jZUxvZ2dpbmc6OlBvaW50T2ZJbnRlcmVzdCBwb2kpCiBIYXNoTWFw
PGNvbnN0IGNoYXIqLCBzaXplX3Q+IFBlcmZvcm1hbmNlTG9nZ2luZzo6bWVtb3J5VXNhZ2VTdGF0
aXN0aWNzKFNob3VsZEluY2x1ZGVFeHBlbnNpdmVDb21wdXRhdGlvbnMgaW5jbHVkZUV4cGVuc2l2
ZSkKIHsKICAgICBIYXNoTWFwPGNvbnN0IGNoYXIqLCBzaXplX3Q+IHN0YXRzOworICAgIHN0YXRz
LnJlc2VydmVJbml0aWFsQ2FwYWNpdHkoMzIpOworCisgICAgc3RhdHMuYWRkKCJwYWdlX2NvdW50
IiwgUGFnZTo6bm9uVXRpbGl0eVBhZ2VDb3VudCgpKTsKKyAgICBzdGF0cy5hZGQoImJhY2tmb3J3
YXJkX2NhY2hlX3BhZ2VfY291bnQiLCBCYWNrRm9yd2FyZENhY2hlOjpzaW5nbGV0b24oKS5wYWdl
Q291bnQoKSk7CisgICAgc3RhdHMuYWRkKCJkb2N1bWVudF9jb3VudCIsIERvY3VtZW50OjphbGxE
b2N1bWVudHMoKS5zaXplKCkpOwogCiAgICAgYXV0byYgdm0gPSBjb21tb25WTSgpOwogICAgIEpT
Qzo6SlNMb2NrSG9sZGVyIGxvY2tlcih2bSk7Ci0gICAgc3RhdHMuYWRkKCJqYXZhc2NyaXB0X2dj
X2hlYXBfY2FwYWNpdHkiLCB2bS5oZWFwLmNhcGFjaXR5KCkpOwotICAgIHN0YXRzLmFkZCgiamF2
YXNjcmlwdF9nY19oZWFwX2V4dHJhX21lbW9yeV9zaXplIiwgdm0uaGVhcC5leHRyYU1lbW9yeVNp
emUoKSk7Ci0KLSAgICBhdXRvJiBiYWNrRm9yd2FyZENhY2hlID0gQmFja0ZvcndhcmRDYWNoZTo6
c2luZ2xldG9uKCk7Ci0gICAgc3RhdHMuYWRkKCJiYWNrZm9yd2FyZF9jYWNoZV9wYWdlX2NvdW50
IiwgYmFja0ZvcndhcmRDYWNoZS5wYWdlQ291bnQoKSk7Ci0KLSAgICBzdGF0cy5hZGQoImRvY3Vt
ZW50X2NvdW50IiwgRG9jdW1lbnQ6OmFsbERvY3VtZW50cygpLnNpemUoKSk7CisgICAgc3RhdHMu
YWRkKCJqYXZhc2NyaXB0X2djX2hlYXBfY2FwYWNpdHlfbWIiLCB2bS5oZWFwLmNhcGFjaXR5KCkg
Pj4gMjApOworICAgIHN0YXRzLmFkZCgiamF2YXNjcmlwdF9nY19oZWFwX2V4dHJhX21lbW9yeV9z
aXplX21iIiwgdm0uaGVhcC5leHRyYU1lbW9yeVNpemUoKSA+PiAyMCk7CiAKICAgICBpZiAoaW5j
bHVkZUV4cGVuc2l2ZSA9PSBTaG91bGRJbmNsdWRlRXhwZW5zaXZlQ29tcHV0YXRpb25zOjpZZXMp
IHsKLSAgICAgICAgc3RhdHMuYWRkKCJqYXZhc2NyaXB0X2djX2hlYXBfc2l6ZSIsIHZtLmhlYXAu
c2l6ZSgpKTsKKyAgICAgICAgc3RhdHMuYWRkKCJqYXZhc2NyaXB0X2djX2hlYXBfc2l6ZV9tYiIs
IHZtLmhlYXAuc2l6ZSgpID4+IDIwKTsKICAgICAgICAgc3RhdHMuYWRkKCJqYXZhc2NyaXB0X2dj
X29iamVjdF9jb3VudCIsIHZtLmhlYXAub2JqZWN0Q291bnQoKSk7CiAgICAgICAgIHN0YXRzLmFk
ZCgiamF2YXNjcmlwdF9nY19wcm90ZWN0ZWRfb2JqZWN0X2NvdW50Iiwgdm0uaGVhcC5wcm90ZWN0
ZWRPYmplY3RDb3VudCgpKTsKICAgICAgICAgc3RhdHMuYWRkKCJqYXZhc2NyaXB0X2djX2dsb2Jh
bF9vYmplY3RfY291bnQiLCB2bS5oZWFwLmdsb2JhbE9iamVjdENvdW50KCkpOwogICAgICAgICBz
dGF0cy5hZGQoImphdmFzY3JpcHRfZ2NfcHJvdGVjdGVkX2dsb2JhbF9vYmplY3RfY291bnQiLCB2
bS5oZWFwLnByb3RlY3RlZEdsb2JhbE9iamVjdENvdW50KCkpOwogICAgIH0KIAorICAgIGdldFBs
YXRmb3JtTWVtb3J5VXNhZ2VTdGF0aXN0aWNzKHN0YXRzKTsKKwogICAgIHJldHVybiBzdGF0czsK
IH0KIApAQCAtOTgsMTEgKzEwMCw4IEBAIHZvaWQgUGVyZm9ybWFuY2VMb2dnaW5nOjpkaWRSZWFj
aFBvaW50T2ZJbnRlcmVzdChQb2ludE9mSW50ZXJlc3QgcG9pKQogICAgIGlmIChtX3BhZ2UubWFp
bkZyYW1lKCkubG9hZGVyKCkuY2xpZW50KCkuaXNFbXB0eUZyYW1lTG9hZGVyQ2xpZW50KCkpCiAg
ICAgICAgIHJldHVybjsKIAotICAgIGF1dG8gc3RhdHMgPSBtZW1vcnlVc2FnZVN0YXRpc3RpY3Mo
U2hvdWxkSW5jbHVkZUV4cGVuc2l2ZUNvbXB1dGF0aW9uczo6Tm8pOwotICAgIGdldFBsYXRmb3Jt
TWVtb3J5VXNhZ2VTdGF0aXN0aWNzKHN0YXRzKTsKLQogICAgIFJFTEVBU0VfTE9HKFBlcmZvcm1h
bmNlTG9nZ2luZywgIk1lbW9yeSB1c2FnZSBpbmZvIGR1bXAgYXQgJXM6IiwgdG9TdHJpbmcocG9p
KSk7Ci0gICAgZm9yIChhdXRvJiBpdCA6IHN0YXRzKQorICAgIGZvciAoYXV0byYgaXQgOiBtZW1v
cnlVc2FnZVN0YXRpc3RpY3MoU2hvdWxkSW5jbHVkZUV4cGVuc2l2ZUNvbXB1dGF0aW9uczo6Tm8p
KQogICAgICAgICBSRUxFQVNFX0xPRyhQZXJmb3JtYW5jZUxvZ2dpbmcsICIgICVzOiAlenUiLCBp
dC5rZXksIGl0LnZhbHVlKTsKICNlbmRpZgogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9QZXJmb3JtYW5jZUxvZ2dpbmcuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFu
Y2VMb2dnaW5nLmgKaW5kZXggMzJiNGMwZTlhMWUxMjE4MjlkYWI2ZmJjZWMwODljYWJkZDY5OTkw
NC4uZTBmN2RjYmY3ZTQ5ZTNiZTE0ZDVlNjlhMzQyODExOWY4NzU0OWI2YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZUxvZ2dpbmcuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1BlcmZvcm1hbmNlTG9nZ2luZy5oCkBAIC0zMiw3ICszMiw3IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogY2xhc3MgUGFnZTsKIAotZW51bSBjbGFzcyBTaG91bGRJbmNsdWRlRXhw
ZW5zaXZlQ29tcHV0YXRpb25zIHsgTm8sIFllcyB9OworZW51bSBjbGFzcyBTaG91bGRJbmNsdWRl
RXhwZW5zaXZlQ29tcHV0YXRpb25zIDogYm9vbCB7IE5vLCBZZXMgfTsKIAogY2xhc3MgUGVyZm9y
bWFuY2VMb2dnaW5nIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvY29jb2EvUGVyZm9ybWFuY2VMb2dnaW5nQ29jb2EubW0gYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL2NvY29hL1BlcmZvcm1hbmNlTG9nZ2luZ0NvY29hLm1tCmluZGV4
IDI4OTZmZTE5NzZmZmIxOGFkZmE3OTY2NmZlNjhlMTYzN2FiMjUwZmMuLjMxMjVjNWM2NjUwNzg0
YjhhYzc4NjU4ZGUyOGFjZWRkZDU1MWNiNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvY29jb2EvUGVyZm9ybWFuY2VMb2dnaW5nQ29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9jb2NvYS9QZXJmb3JtYW5jZUxvZ2dpbmdDb2NvYS5tbQpAQCAtNDgsMTEgKzQ4LDExIEBA
IHZvaWQgUGVyZm9ybWFuY2VMb2dnaW5nOjpnZXRQbGF0Zm9ybU1lbW9yeVVzYWdlU3RhdGlzdGlj
cyhIYXNoTWFwPGNvbnN0IGNoYXIqLCBzCiAgICAga2Vybl9yZXR1cm5fdCBlcnIgPSB0YXNrX2lu
Zm8obWFjaF90YXNrX3NlbGYoKSwgVEFTS19WTV9JTkZPLCAodGFza19pbmZvX3QpICZ2bUluZm8s
ICZjb3VudCk7CiAgICAgaWYgKGVyciAhPSBLRVJOX1NVQ0NFU1MpCiAgICAgICAgIHJldHVybjsK
LSAgICBzdGF0cy5hZGQoImludGVybmFsIiwgc3RhdGljX2Nhc3Q8c2l6ZV90Pih2bUluZm8uaW50
ZXJuYWwpKTsKLSAgICBzdGF0cy5hZGQoImNvbXByZXNzZWQiLCBzdGF0aWNfY2FzdDxzaXplX3Q+
KHZtSW5mby5jb21wcmVzc2VkKSk7Ci0gICAgc3RhdHMuYWRkKCJwaHlzX2Zvb3RwcmludCIsIHN0
YXRpY19jYXN0PHNpemVfdD4odm1JbmZvLnBoeXNfZm9vdHByaW50KSk7Ci0gICAgc3RhdHMuYWRk
KCJyZXNpZGVudF9zaXplIiwgc3RhdGljX2Nhc3Q8c2l6ZV90Pih2bUluZm8ucmVzaWRlbnRfc2l6
ZSkpOwotICAgIHN0YXRzLmFkZCgidmlydHVhbF9zaXplIiwgc3RhdGljX2Nhc3Q8c2l6ZV90Pih2
bUluZm8udmlydHVhbF9zaXplKSk7CisgICAgc3RhdHMuYWRkKCJpbnRlcm5hbF9tYiIsIHN0YXRp
Y19jYXN0PHNpemVfdD4odm1JbmZvLmludGVybmFsID4+IDIwKSk7CisgICAgc3RhdHMuYWRkKCJj
b21wcmVzc2VkX21iIiwgc3RhdGljX2Nhc3Q8c2l6ZV90Pih2bUluZm8uY29tcHJlc3NlZCA+PiAy
MCkpOworICAgIHN0YXRzLmFkZCgicGh5c19mb290cHJpbnRfbWIiLCBzdGF0aWNfY2FzdDxzaXpl
X3Q+KHZtSW5mby5waHlzX2Zvb3RwcmludCA+PiAyMCkpOworICAgIHN0YXRzLmFkZCgicmVzaWRl
bnRfc2l6ZV9tYiIsIHN0YXRpY19jYXN0PHNpemVfdD4odm1JbmZvLnJlc2lkZW50X3NpemUgPj4g
MjApKTsKKyAgICBzdGF0cy5hZGQoInZpcnR1YWxfc2l6ZV9tYiIsIHN0YXRpY19jYXN0PHNpemVf
dD4odm1JbmZvLnZpcnR1YWxfc2l6ZSA+PiAyMCkpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUHJvY2Vzcy5jcHAKaW5kZXggZDg2MjllODcyOTE0ZjA3ODFjNmM0MTJjNzI1NDlh
MjhiYmFlNzBkMC4uNDEzMzNjN2JkZWVjMmM5OGY5ZGM0ZjZkN2M0ZWEyNzRlMzJkZDUzNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcApAQCAtMTM1LDYgKzEzNSw3IEBA
CiAjaW5jbHVkZSA8V2ViQ29yZS9TZXJ2aWNlV29ya2VyQ29udGV4dERhdGEuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL1NldHRpbmdzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Vc2VyR2VzdHVyZUluZGlj
YXRvci5oPgorI2luY2x1ZGUgPHBhbC9Mb2dnaW5nLmg+CiAjaW5jbHVkZSA8d3RmL0FsZ29yaXRo
bXMuaD4KICNpbmNsdWRlIDx3dGYvQ2FsbGJhY2tBZ2dyZWdhdG9yLmg+CiAjaW5jbHVkZSA8d3Rm
L0xhbmd1YWdlLmg+CkBAIC0zNzYsNiArMzc3LDE0IEBAIHZvaWQgV2ViUHJvY2Vzczo6aW5pdGlh
bGl6ZUNvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uKQogICAgIG1fd2ViQ29u
bmVjdGlvbiA9IFdlYkNvbm5lY3Rpb25Ub1VJUHJvY2Vzczo6Y3JlYXRlKHRoaXMpOwogfQogCitz
dGF0aWMgdm9pZCBzY2hlZHVsZUxvZ01lbW9yeVN0YXRpc3RpY3MoTG9nTWVtb3J5U3RhdGlzdGlj
c1JlYXNvbiByZWFzb24pCit7CisgICAgLy8gTG9nIHN0YXRzIGluIHRoZSBuZXh0IHR1cm4gb2Yg
dGhlIHJ1biBsb29wIHNvIHRoYXQgaXQgcnVucyBhZnRlciB0aGUgbG93IG1lbW9yeSBoYW5kbGVy
LgorICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChbcmVhc29uXSB7CisgICAgICAgIFdlYkNv
cmU6OmxvZ01lbW9yeVN0YXRpc3RpY3MocmVhc29uKTsKKyAgICB9KTsKK30KKwogdm9pZCBXZWJQ
cm9jZXNzOjppbml0aWFsaXplV2ViUHJvY2VzcyhXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
JiYgcGFyYW1ldGVycykKIHsgICAgCiAgICAgVHJhY2VTY29wZSB0cmFjZVNjb3BlKEluaXRpYWxp
emVXZWJQcm9jZXNzU3RhcnQsIEluaXRpYWxpemVXZWJQcm9jZXNzRW5kKTsKQEAgLTQyOSw3ICs0
MzgsNyBAQCB2b2lkIFdlYlByb2Nlc3M6OmluaXRpYWxpemVXZWJQcm9jZXNzKFdlYlByb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzKQogI2lmIEVOQUJMRShQRVJJT0RJQ19NRU1P
UllfTU9OSVRPUikKICAgICAgICAgbWVtb3J5UHJlc3N1cmVIYW5kbGVyLnNldFNob3VsZFVzZVBl
cmlvZGljTWVtb3J5TW9uaXRvcih0cnVlKTsKICAgICAgICAgbWVtb3J5UHJlc3N1cmVIYW5kbGVy
LnNldE1lbW9yeUtpbGxDYWxsYmFjayhbdGhpc10gKCkgewotICAgICAgICAgICAgV2ViQ29yZTo6
bG9nTWVtb3J5U3RhdGlzdGljc0F0VGltZU9mRGVhdGgoKTsKKyAgICAgICAgICAgIFdlYkNvcmU6
OmxvZ01lbW9yeVN0YXRpc3RpY3MoTG9nTWVtb3J5U3RhdGlzdGljc1JlYXNvbjo6T3V0T2ZNZW1v
cnlEZWF0aCk7CiAgICAgICAgICAgICBpZiAoTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpzaW5nbGV0
b24oKS5wcm9jZXNzU3RhdGUoKSA9PSBXZWJzYW1Qcm9jZXNzU3RhdGU6OkFjdGl2ZSkKICAgICAg
ICAgICAgICAgICBwYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQ
cm9jZXNzUHJveHk6OkRpZEV4Y2VlZEFjdGl2ZU1lbW9yeUxpbWl0KCksIDApOwogICAgICAgICAg
ICAgZWxzZQpAQCAtNDM3LDEzICs0NDYsMzAgQEAgdm9pZCBXZWJQcm9jZXNzOjppbml0aWFsaXpl
V2ViUHJvY2VzcyhXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiYgcGFyYW1ldGVycykKICAg
ICAgICAgfSk7CiAgICAgICAgIG1lbW9yeVByZXNzdXJlSGFuZGxlci5zZXREaWRFeGNlZWRJbmFj
dGl2ZUxpbWl0V2hpbGVBY3RpdmVDYWxsYmFjayhbdGhpc10gKCkgewogICAgICAgICAgICAgcGFy
ZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpE
aWRFeGNlZWRJbmFjdGl2ZU1lbW9yeUxpbWl0V2hpbGVBY3RpdmUoKSwgMCk7CisKKyAgICAgICAg
ICAgIGlmICghbV9sb2dnZWRQcm9jZXNzTGltaXRDcml0aWNhbE1lbW9yeVN0YXRpc3RpY3MpIHsK
KyAgICAgICAgICAgICAgICBtX2xvZ2dlZFByb2Nlc3NMaW1pdENyaXRpY2FsTWVtb3J5U3RhdGlz
dGljcyA9IHRydWU7CisgICAgICAgICAgICAgICAgc2NoZWR1bGVMb2dNZW1vcnlTdGF0aXN0aWNz
KExvZ01lbW9yeVN0YXRpc3RpY3NSZWFzb246OkNyaXRpY2FsTWVtb3J5UHJlc3N1cmVOb3RpZmlj
YXRpb24pOworICAgICAgICAgICAgfQogICAgICAgICB9KTsKICNlbmRpZgotICAgICAgICBtZW1v
cnlQcmVzc3VyZUhhbmRsZXIuc2V0TWVtb3J5UHJlc3N1cmVTdGF0dXNDaGFuZ2VkQ2FsbGJhY2so
W3RoaXNdKGJvb2wgaXNVbmRlck1lbW9yeVByZXNzdXJlKSB7CisgICAgICAgIG1lbW9yeVByZXNz
dXJlSGFuZGxlci5zZXRNZW1vcnlQcmVzc3VyZVN0YXR1c0NoYW5nZWRDYWxsYmFjayhbdGhpc10o
V1RGOjpNZW1vcnlQcmVzc3VyZVN0YXR1cyBtZW1vcnlQcmVzc3VyZVN0YXR1cykgewogICAgICAg
ICAgICAgaWYgKHBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCkpCi0gICAgICAgICAgICAgICAgcGFy
ZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpN
ZW1vcnlQcmVzc3VyZVN0YXR1c0NoYW5nZWQoaXNVbmRlck1lbW9yeVByZXNzdXJlKSwgMCk7Cisg
ICAgICAgICAgICAgICAgcGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6
V2ViUHJvY2Vzc1Byb3h5OjpNZW1vcnlQcmVzc3VyZVN0YXR1c0NoYW5nZWQoTWVtb3J5UHJlc3N1
cmVIYW5kbGVyOjpzaW5nbGV0b24oKS5pc1VuZGVyTWVtb3J5UHJlc3N1cmUoKSksIDApOworCisg
ICAgICAgICAgICBpZiAobWVtb3J5UHJlc3N1cmVTdGF0dXMgPT0gV1RGOjpNZW1vcnlQcmVzc3Vy
ZVN0YXR1czo6UHJvY2Vzc0xpbWl0V2FybmluZyAmJiAhbV9sb2dnZWRQcm9jZXNzTGltaXRXYXJu
aW5nTWVtb3J5U3RhdGlzdGljcykgeworICAgICAgICAgICAgICAgIG1fbG9nZ2VkUHJvY2Vzc0xp
bWl0V2FybmluZ01lbW9yeVN0YXRpc3RpY3MgPSB0cnVlOworICAgICAgICAgICAgICAgIHNjaGVk
dWxlTG9nTWVtb3J5U3RhdGlzdGljcyhMb2dNZW1vcnlTdGF0aXN0aWNzUmVhc29uOjpXYXJuaW5n
TWVtb3J5UHJlc3N1cmVOb3RpZmljYXRpb24pOworICAgICAgICAgICAgfSBlbHNlIGlmIChtZW1v
cnlQcmVzc3VyZVN0YXR1cyA9PSBXVEY6Ok1lbW9yeVByZXNzdXJlU3RhdHVzOjpQcm9jZXNzTGlt
aXRDcml0aWNhbCAmJiAhbV9sb2dnZWRQcm9jZXNzTGltaXRDcml0aWNhbE1lbW9yeVN0YXRpc3Rp
Y3MpIHsKKyAgICAgICAgICAgICAgICBtX2xvZ2dlZFByb2Nlc3NMaW1pdENyaXRpY2FsTWVtb3J5
U3RhdGlzdGljcyA9IHRydWU7CisgICAgICAgICAgICAgICAgc2NoZWR1bGVMb2dNZW1vcnlTdGF0
aXN0aWNzKExvZ01lbW9yeVN0YXRpc3RpY3NSZWFzb246OkNyaXRpY2FsTWVtb3J5UHJlc3N1cmVO
b3RpZmljYXRpb24pOworICAgICAgICAgICAgfQogICAgICAgICB9KTsKICAgICAgICAgbWVtb3J5
UHJlc3N1cmVIYW5kbGVyLmluc3RhbGwoKTsKKworICAgICAgICBQQUw6OnJlZ2lzdGVyTm90aWZ5
Q2FsbGJhY2soImNvbS5hcHBsZS5XZWJLaXQubG9nTWVtU3RhdHMiLCBbXSB7CisgICAgICAgICAg
ICBXZWJDb3JlOjpsb2dNZW1vcnlTdGF0aXN0aWNzKExvZ01lbW9yeVN0YXRpc3RpY3NSZWFzb246
OkRlYnVnTm90aWZpY2F0aW9uKTsKKyAgICAgICAgfSk7CiAgICAgfQogCiAgICAgU2FuZGJveEV4
dGVuc2lvbjo6Y29uc3VtZVBlcm1hbmVudGx5KHBhcmFtZXRlcnMuYWRkaXRpb25hbFNhbmRib3hF
eHRlbnNpb25IYW5kbGVzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCmluZGV4
IDIzNTM0MjUyNmVmN2E3NjEwY2IyNzIzMjBiNGQ2Mzg2NGRlZTA2NTcuLmZlZGUwMzM2MzFlOTkx
NzMxOTRhNjA2MWYyODc4MjgyYzMxNzIzMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBy
b2Nlc3MuaApAQCAtNzA3LDYgKzcwNyw4IEBAIHByaXZhdGU6CiAjZW5kaWYKIAogICAgIGJvb2wg
bV9zdXBwcmVzc01lbW9yeVByZXNzdXJlSGFuZGxlciB7IGZhbHNlIH07CisgICAgYm9vbCBtX2xv
Z2dlZFByb2Nlc3NMaW1pdFdhcm5pbmdNZW1vcnlTdGF0aXN0aWNzIHsgZmFsc2UgfTsKKyAgICBi
b29sIG1fbG9nZ2VkUHJvY2Vzc0xpbWl0Q3JpdGljYWxNZW1vcnlTdGF0aXN0aWNzIHsgZmFsc2Ug
fTsKICNpZiBQTEFURk9STShNQUMpCiAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OkNQVU1v
bml0b3I+IG1fY3B1TW9uaXRvcjsKICAgICBzdGQ6Om9wdGlvbmFsPGRvdWJsZT4gbV9jcHVMaW1p
dDsK
</data>

          </attachment>
      

    </bug>

</bugzilla>