<?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>231593</bug_id>
          
          <creation_ts>2021-10-12 10:23:53 -0700</creation_ts>
          <short_desc>Scrolling thread animations need to commit layers on the scrolling thread</short_desc>
          <delta_ts>2021-10-12 17:15:15 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Scrolling</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>
          
          <blocked>188043</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>cmarcelo</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fred.wang</cc>
    
    <cc>jamesr</cc>
    
    <cc>luiz</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1803206</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-10-12 10:23:53 -0700</bug_when>
    <thetext>Scrolling thread animations need to commit layers on the scrolling thread</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1803213</commentid>
    <comment_count>1</comment_count>
      <attachid>440955</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-10-12 10:30:41 -0700</bug_when>
    <thetext>Created attachment 440955
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1803239</commentid>
    <comment_count>2</comment_count>
      <attachid>440955</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2021-10-12 11:06:58 -0700</bug_when>
    <thetext>Comment on attachment 440955
Patch

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

&gt; Source/WebKit/ChangeLog:8
&gt; +        Scroll animations were running the scrolling thread (in that the timers were firing on that

&quot;on&quot;

&gt; Source/WebKit/ChangeLog:9
&gt; +        thread), but the scrolling thread wasn&apos;t changing layer positons, so those animations

positons!

&gt; Source/WebKit/ChangeLog:26
&gt; +        Scroll animations are still based on a 60Hz timer, but in future should be driven by
&gt; +        displayDidRefresh() notifications.

Excitement!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1803296</commentid>
    <comment_count>3</comment_count>
      <attachid>440967</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-10-12 12:15:04 -0700</bug_when>
    <thetext>Created attachment 440967
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1803326</commentid>
    <comment_count>4</comment_count>
      <attachid>440973</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-10-12 13:04:32 -0700</bug_when>
    <thetext>Created attachment 440973
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1803352</commentid>
    <comment_count>5</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-10-12 13:58:23 -0700</bug_when>
    <thetext>https://trac.webkit.org/changeset/284022/webkit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1803355</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-10-12 13:59:40 -0700</bug_when>
    <thetext>&lt;rdar://problem/84165163&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1803487</commentid>
    <comment_count>7</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2021-10-12 15:44:58 -0700</bug_when>
    <thetext>Reverted r284022 for reason:

Caused tests to exit early due to an assertion failure

Committed r284049 (242878@main): &lt;https://commits.webkit.org/242878@main&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1803494</commentid>
    <comment_count>8</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2021-10-12 15:47:56 -0700</bug_when>
    <thetext>(In reply to Ryan Haddad from comment #7)
&gt; Reverted r284022 for reason:
&gt; 
&gt; Caused tests to exit early due to an assertion failure

ASSERTION FAILED: connectionInfo.fullSpeedUpdatesClientCount
/Volumes/Data/worker/macOS-AppleSilicon-Big-Sur-Debug-Build-EWS/build/Source/WebKit/UIProcess/mac/DisplayLink.cpp(186) : void WebKit::DisplayLink::decrementFullSpeedRequestClientCount(IPC::Connection &amp;)

https://ews-build.s3-us-west-2.amazonaws.com/macOS-AppleSilicon-Big-Sur-Debug-WK2-Tests-EWS/r440955-14272-rerun/results.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1803569</commentid>
    <comment_count>9</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-10-12 17:15:15 -0700</bug_when>
    <thetext>Re-landed in https://trac.webkit.org/changeset/284064/webkit</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440955</attachid>
            <date>2021-10-12 10:30:41 -0700</date>
            <delta_ts>2021-10-12 11:06:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231593-20211012103040.patch</filename>
            <type>text/plain</type>
            <size>24731</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzOTg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmM2ZDE1ZWRkMTNjYWUy
ZThiMzBkYTg2ZTA1NGY0MjE4YjFmZmFiMC4uYjA3NDYzOTEyZGY4YjYxMjVhZGQyNTMwYjczZmIy
MTkwZjI1ZjYzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDIxLTEwLTEyICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFNjcm9sbGluZyB0
aHJlYWQgYW5pbWF0aW9ucyBuZWVkIHRvIGNvbW1pdCBsYXllcnMgb24gdGhlIHNjcm9sbGluZyB0
aHJlYWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIz
MTU5MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEV4
cG9ydCBzb21lIEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IgZnVuY3Rpb25zLgorCisgICAgICAg
ICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBhZ2Uvc2Ny
b2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaDoKKyAgICAgICAgKiBwYWdlL3Njcm9s
bGluZy9tYWMvU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWMuaDoKKwogMjAyMS0xMC0xMiAgU2ltb24g
RnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBIYXZlIHRoZSBTY3Jv
bGxpbmdUcmVlIHRyYWNrIG5vZGVzIHdpdGggYW5pbWF0ZWQgc2Nyb2xscwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCAz
MzUyNzAzNWNjNTdkZTNhNjAzMTI1ZGNlMjE2NTZjODQ2NjAwNWZlLi4zZTI5Yzk1NmJmODA3NjVj
MzU3NTNjMWI4YTVlZmViMmUwYzc5NTBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDIx
LTEwLTEyICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAg
IFNjcm9sbGluZyB0aHJlYWQgYW5pbWF0aW9ucyBuZWVkIHRvIGNvbW1pdCBsYXllcnMgb24gdGhl
IHNjcm9sbGluZyB0aHJlYWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIzMTU5MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
ICAgICAgICAKKyAgICAgICAgU2Nyb2xsIGFuaW1hdGlvbnMgd2VyZSBydW5uaW5nIHRoZSBzY3Jv
bGxpbmcgdGhyZWFkIChpbiB0aGF0IHRoZSB0aW1lcnMgd2VyZSBmaXJpbmcgb24gdGhhdAorICAg
ICAgICB0aHJlYWQpLCBidXQgdGhlIHNjcm9sbGluZyB0aHJlYWQgd2Fzbid0IGNoYW5naW5nIGxh
eWVyIHBvc2l0b25zLCBzbyB0aG9zZSBhbmltYXRpb25zCisgICAgICAgIHdlcmVuJ3Qgc21vb3Ro
LgorCisgICAgICAgIFRoaXMgaGFwcGVuZWQgYmVjYXVzZSBvZiBhbiBleGlzdGluZyBhc3N1bXB0
aW9uIHRoYXQgd2Ugb25seSBjb21taXQgbGF5ZXIgY2hhbmdlcyBvbiB0aGUKKyAgICAgICAgc2Ny
b2xsaW5nIHRocmVhZCBpbiByZXNwb25zZSB0byB3aGVlbCBldmVudHM7IHRoZSBtYWNoaW5lcnkg
YXJvdW5kCisgICAgICAgIFRocmVhZGVkU2Nyb2xsaW5nVHJlZTo6ZGlzcGxheURpZFJlZnJlc2go
KSB3YXMgYWxsIGdhdGVkIG9uIGhhdmluZyByZWNlbnRseSByZWNlaXZlZCBhIHdoZWVsCisgICAg
ICAgIGV2ZW50LgorCisgICAgICAgIFRvIGZpeCB0aGlzIHdlIG5lZWQgdG8gY29tbXVuaWNhdGUg
YmFjayB0byB0aGUgVUkgcHJvY2VzcyB3aGVuIHRoZXJlIGFyZSBhY3RpdmUgc2Nyb2xsCisgICAg
ICAgIGFuaW1hdGlvbnMgcnVubmluZy4gVGhlIFNjcm9sbGluZ1RyZWUgYWxyZWFkeSB0cmFja3Mg
dGhpcywgYW5kIHRoZSB2aXJ0dWFsCisgICAgICAgIGhhc05vZGVXaXRoQW5pbWF0ZWRTY3JvbGxD
aGFuZ2VkKCkgb24gU2Nyb2xsaW5nQ29vcmRpbmF0b3IgaXMgY2FsbGVkIGZvciBpdC4gVG8gZ2V0
IHRoaXMgdG8KKyAgICAgICAgdGhlIFVJIHByb2Nlc3Mgb24gbWFjT1MsIHN1YmNsYXNzIFNjcm9s
bGluZ0Nvb3JkaW5hdG9yTWFjIGluIFdlYktpdDIgYW5kIG92ZXJyaWRlCisgICAgICAgIGhhc05v
ZGVXaXRoQW5pbWF0ZWRTY3JvbGxDaGFuZ2VkKCkgdG8gY2FsbCBpbnRvIFdlYlBhZ2UsIHdoaWNo
IHRoZW4gSVBDcyB0byBXZWJQYWdlUHJveHkuCisgICAgICAgIFRoaXMgZW5kcyB1cCBjYWxsaW5n
IHNldERpc3BsYXlMaW5rRm9yRGlzcGxheVdhbnRzRnVsbFNwZWVkVXBkYXRlcygpIHNvIHRoYXQg
a25vdyB0byBJUEMKKyAgICAgICAgZGlzcGxheURpZFJlZnJlc2ggdG8gRXZlbnREaXNwYXRjaGVy
IG9mZiB0aGUgbWFpbiB0aHJlYWQgKGFzIHdlIGRvIGZvciB3aGVlbCBldmVudHMpLgorCisgICAg
ICAgIFNjcm9sbCBhbmltYXRpb25zIGFyZSBzdGlsbCBiYXNlZCBvbiBhIDYwSHogdGltZXIsIGJ1
dCBpbiBmdXR1cmUgc2hvdWxkIGJlIGRyaXZlbiBieQorICAgICAgICBkaXNwbGF5RGlkUmVmcmVz
aCgpIG5vdGlmaWNhdGlvbnMuCisKKyAgICAgICAgKiBTb3VyY2VzQ29jb2EudHh0OgorICAgICAg
ICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
UHJveHk6OndoZWVsRXZlbnRIeXN0ZXJlc2lzVXBkYXRlZCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2VQcm94eTo6dXBkYXRlRGlzcGxheUxpbmtGcmVxdWVuY3kpOgorICAgICAgICAoV2ViS2l0
OjpXZWJQYWdlUHJveHk6OnVwZGF0ZVdoZWVsRXZlbnRBY3Rpdml0eUFmdGVyUHJvY2Vzc1N3YXAp
OgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnNldEhhc0FjdGl2ZUFuaW1hdGVkU2Ny
b2xscyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6cmVzZXRTdGF0ZUFmdGVyUHJv
Y2Vzc0V4aXRlZCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViS2l0
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVD
bGllbnQ6OmNyZWF0ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yIGNvbnN0KToKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnNl
dEhhc0FjdGl2ZUFuaW1hdGVkU2Nyb2xscyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFu
aW1hdGlvblNjcm9sbGluZ0Nvb3JkaW5hdG9yLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3Jl
L3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdDb29yZGluYXRvck1hYy5oLgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uU2Nyb2xsaW5nQ29vcmRp
bmF0b3IubW06IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9T
Y3JvbGxpbmdDb29yZGluYXRvck1hYy5oLgorICAgICAgICAoV2ViS2l0OjpUaWxlZENvcmVBbmlt
YXRpb25TY3JvbGxpbmdDb29yZGluYXRvcjo6VGlsZWRDb3JlQW5pbWF0aW9uU2Nyb2xsaW5nQ29v
cmRpbmF0b3IpOgorICAgICAgICAoV2ViS2l0OjpUaWxlZENvcmVBbmltYXRpb25TY3JvbGxpbmdD
b29yZGluYXRvcjo6cGFnZURlc3Ryb3llZCk6CisgICAgICAgIChXZWJLaXQ6OlRpbGVkQ29yZUFu
aW1hdGlvblNjcm9sbGluZ0Nvb3JkaW5hdG9yOjpoYXNOb2RlV2l0aEFuaW1hdGVkU2Nyb2xsQ2hh
bmdlZCk6CisKIDIwMjEtMTAtMTIgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Vi
a2l0Lm9yZz4KIAogICAgICAgICBSZW1vdmUgbm9uLUhBVkUoQ0ZORVRXT1JLX05TVVJMU0VTU0lP
Tl9TVFJJQ1RSVVNURVZBTFVBVEUpIGNvZGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA1OWQ2ZWVmNzEwYjM5YzI4YWMxNGIyN2Y1
MzE5MGM1MmU4NGM5MzA3Li5lYWE4YzBjYzk1OGI1OGFiNDhkNmEzZWQ3MzE0NTc1NzM3ZDIzMjI3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCkBAIC0yOTA4LDcgKzI5MDgsNyBAQAogCQk5MzhDRjI0MjI2QkI3MjhDMDBDMDkyNDAgLyog
V2ViU29ja2V0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDk3QUFCQ0ZGMTRGQTA5RDUwMDc0NTdBRSAvKiBXZWJTb2NrZXQuY3BwICovOyB9OwogCQk5
MzhFNjVGMTA5RjA5ODQwMDA4QTQ4RUMgLyogSlNIVE1MRWxlbWVudFdyYXBwZXJGYWN0b3J5Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzhFNjVGMDA5
RjA5ODQwMDA4QTQ4RUMgLyogSlNIVE1MRWxlbWVudFdyYXBwZXJGYWN0b3J5LmggKi87IH07CiAJ
CTkzOEU2NjYyMDlGMDlCODcwMDhBNDhFQyAvKiBKU0hUTUxDYW52YXNFbGVtZW50LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzhFNjY2MTA5RjA5Qjg3
MDA4QTQ4RUMgLyogSlNIVE1MQ2FudmFzRWxlbWVudC5oICovOyB9OwotCQk5MzkxQTk5MTE2Mjc0
NkNCMDAyOTczMzAgLyogU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWMuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzOTFBOTkwMTYyNzQ2Q0IwMDI5NzMzMCAv
KiBTY3JvbGxpbmdDb29yZGluYXRvck1hYy5oICovOyB9OworCQk5MzkxQTk5MTE2Mjc0NkNCMDAy
OTczMzAgLyogU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzOTFBOTkwMTYyNzQ2Q0IwMDI5NzMzMCAvKiBTY3Jv
bGxpbmdDb29yZGluYXRvck1hYy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTkzOTFBOTlEMTYyOUQ3MDAwMDI5NzMzMCAvKiBTY3JvbGxpbmdUcmVl
U2Nyb2xsaW5nTm9kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOTM5MUE5OUIxNjI5RDcwMDAwMjk3MzMwIC8qIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdO
b2RlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
OTM5MjE0NjkxOEE2RDc5MTAwMEVFNjg4IC8qIFRleHRJdGVyYXRvckJlaGF2aW9yLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzkyMTQ2ODE4QTZENzkx
MDAwRUU2ODggLyogVGV4dEl0ZXJhdG9yQmVoYXZpb3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5MzkyRjE0MjBBRDE4NUY0MDA2OTFCRDQgLyog
UmVuZGVyQ291bnRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOTM5MkYxNDEwQUQxODVGNDAwNjkxQkQ0IC8qIFJlbmRlckNvdW50ZXIuaCAqLzsgfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5n
Q29vcmRpbmF0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xs
aW5nQ29vcmRpbmF0b3IuaAppbmRleCAwYmQ4YWM0YmE3NzBmNTcxNWE5NzUyZDM5YzM2MWJhM2Zj
MTQ3ZmYwLi5iN2JmNjQ1ZGUzN2U1YTExNTBlYzY5MWY1YzkxZWNiMzViOWU1ZmE1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5h
dG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdD
b29yZGluYXRvci5oCkBAIC0xMzIsMTEgKzEzMiwxMSBAQCBwcml2YXRlOgogICAgIFdFQkNPUkVf
RVhQT1JUIHZvaWQgc2Nyb2xsQnlTaW11bGF0aW5nV2hlZWxFdmVudEZvclRlc3RpbmcoU2Nyb2xs
aW5nTm9kZUlELCBGbG9hdFNpemUpIGZpbmFsOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBp
c1VzZXJTY3JvbGxJblByb2dyZXNzKFNjcm9sbGluZ05vZGVJRCkgY29uc3Qgb3ZlcnJpZGU7Ci0g
ICAgYm9vbCBpc1J1YmJlckJhbmRJblByb2dyZXNzKFNjcm9sbGluZ05vZGVJRCkgY29uc3Qgb3Zl
cnJpZGU7CisgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBpc1J1YmJlckJhbmRJblByb2dyZXNzKFNj
cm9sbGluZ05vZGVJRCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICBXRUJDT1JFX0VYUE9SVCBib29s
IGlzU2Nyb2xsU25hcEluUHJvZ3Jlc3MoU2Nyb2xsaW5nTm9kZUlEKSBjb25zdCBvdmVycmlkZTsK
IAotICAgIHZvaWQgc2V0U2Nyb2xsUGlubmluZ0JlaGF2aW9yKFNjcm9sbFBpbm5pbmdCZWhhdmlv
cikgb3ZlcnJpZGU7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRTY3JvbGxQaW5uaW5nQmVo
YXZpb3IoU2Nyb2xsUGlubmluZ0JlaGF2aW9yKSBvdmVycmlkZTsKIAogICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgcmVjb25jaWxlVmlld3BvcnRDb25zdHJhaW5lZExheWVyUG9zaXRpb25zKFNjcm9s
bGluZ05vZGVJRCwgY29uc3QgTGF5b3V0UmVjdCYgdmlld3BvcnRSZWN0LCBTY3JvbGxpbmdMYXll
clBvc2l0aW9uQWN0aW9uKSBvdmVycmlkZTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNjcm9s
bGFibGVBcmVhU2Nyb2xsYmFyTGF5ZXJEaWRDaGFuZ2UoU2Nyb2xsYWJsZUFyZWEmLCBTY3JvbGxi
YXJPcmllbnRhdGlvbikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWMuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdDb29yZGluYXRvck1hYy5oCmluZGV4IDJiZDgx
ZmM4NGYxOTBhNjI0ZTY5MmRhZDZlM2IwNWNhZmEyMmUyMjUuLjRjZThkNjVkNDczOTQ5MmFlYzcz
ZDliOTU3Nzk5NDhjN2JhMjg4MWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Ny
b2xsaW5nL21hYy9TY3JvbGxpbmdDb29yZGluYXRvck1hYy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdDb29yZGluYXRvck1hYy5oCkBAIC0zMSw3ICsz
MSw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgU2Nyb2xsaW5nQ29vcmRpbmF0
b3JNYWMgOiBwdWJsaWMgQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvciB7CitjbGFzcyBXRUJDT1JF
X0VYUE9SVCBTY3JvbGxpbmdDb29yZGluYXRvck1hYyA6IHB1YmxpYyBBc3luY1Njcm9sbGluZ0Nv
b3JkaW5hdG9yIHsKIHB1YmxpYzoKICAgICBleHBsaWNpdCBTY3JvbGxpbmdDb29yZGluYXRvck1h
YyhQYWdlKik7CiAgICAgdmlydHVhbCB+U2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWMoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291
cmNlc0NvY29hLnR4dAppbmRleCAzNzIyZWY4ZjVmM2VjN2MwY2FiZjVmNzA5ZTI5ZDU2YmRjYzcx
YjczLi4yN2I1Njc2ZjNkY2UxYTRmNThmZTIyYzMxNDAxMTk2YWQyN2U4NTg1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3Vy
Y2VzQ29jb2EudHh0CkBAIC03MDIsNiArNzAyLDcgQEAgV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9X
ZWJQYWdlSU9TLm1tCiAKIFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMvRGlzcGxheVJlZnJlc2hNb25p
dG9yTWFjLmNwcAogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QYWdlQmFubmVyTWFjLm1tCitXZWJQ
cm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvblNjcm9sbGluZ0Nvb3JkaW5hdG9y
Lm1tCiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVh
Lm1tCiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dlYlBhZ2VNYWMubW0KIFdlYlByb2Nlc3MvV2Vi
UGFnZS9tYWMvV0tBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdEJhc2UubW0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IGE5NmFiYTczOTJkNTYyYThhNzRjZGVm
OTM5NWUwMWE3MjA5YzlmNGYuLmVmMTA3ODhlOTYyYTNjMmJkZWU3YmI5M2I1MjUzNmVmNTRmNGE1
MWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtMjg5MCwy
NiArMjg5MCwyNSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6aGFuZGxlV2hlZWxFdmVudChjb25zdCBO
YXRpdmVXZWJXaGVlbEV2ZW50JiBldmVudCkKIH0KIAogI2lmIEhBVkUoQ1ZESVNQTEFZTElOSykK
LXZvaWQgV2ViUGFnZVByb3h5Ojp3aGVlbEV2ZW50SHlzdGVyZXNpc1VwZGF0ZWQoUEFMOjpIeXN0
ZXJlc2lzU3RhdGUgc3RhdGUpCit2b2lkIFdlYlBhZ2VQcm94eTo6d2hlZWxFdmVudEh5c3RlcmVz
aXNVcGRhdGVkKFBBTDo6SHlzdGVyZXNpc1N0YXRlKQoreworICAgIHVwZGF0ZURpc3BsYXlMaW5r
RnJlcXVlbmN5KCk7Cit9CisKK3ZvaWQgV2ViUGFnZVByb3h5Ojp1cGRhdGVEaXNwbGF5TGlua0Zy
ZXF1ZW5jeSgpCiB7CiAgICAgaWYgKCFtX3Byb2Nlc3MtPmhhc0Nvbm5lY3Rpb24oKSB8fCAhbV9k
aXNwbGF5SUQpCiAgICAgICAgIHJldHVybjsKIAotICAgIGJvb2wgd2FudHNGdWxsU3BlZWRVcGRh
dGVzID0gc3RhdGUgPT0gUEFMOjpIeXN0ZXJlc2lzU3RhdGU6OlN0YXJ0ZWQ7Ci0gICAgcHJvY2Vz
cygpLnByb2Nlc3NQb29sKCkuc2V0RGlzcGxheUxpbmtGb3JEaXNwbGF5V2FudHNGdWxsU3BlZWRV
cGRhdGVzKCptX3Byb2Nlc3MtPmNvbm5lY3Rpb24oKSwgKm1fZGlzcGxheUlELCB3YW50c0Z1bGxT
cGVlZFVwZGF0ZXMpOworICAgIGJvb2wgd2FudHNGdWxsU3BlZWRVcGRhdGVzRm9yV2hlZWxFdmVu
dHMgPSBtX3doZWVsRXZlbnRBY3Rpdml0eUh5c3RlcmVzaXMuc3RhdGUoKSA9PSBQQUw6Okh5c3Rl
cmVzaXNTdGF0ZTo6U3RhcnRlZDsKKyAgICBwcm9jZXNzKCkucHJvY2Vzc1Bvb2woKS5zZXREaXNw
bGF5TGlua0ZvckRpc3BsYXlXYW50c0Z1bGxTcGVlZFVwZGF0ZXMoKm1fcHJvY2Vzcy0+Y29ubmVj
dGlvbigpLCAqbV9kaXNwbGF5SUQsIHdhbnRzRnVsbFNwZWVkVXBkYXRlc0ZvcldoZWVsRXZlbnRz
IHx8IG1faGFzQWN0aXZlQW5pbWF0ZWRTY3JvbGwpOwogfQogI2VuZGlmCiAKIHZvaWQgV2ViUGFn
ZVByb3h5Ojp1cGRhdGVXaGVlbEV2ZW50QWN0aXZpdHlBZnRlclByb2Nlc3NTd2FwKCkKIHsKICNp
ZiBIQVZFKENWRElTUExBWUxJTkspCi0gICAgaWYgKG1fd2hlZWxFdmVudEFjdGl2aXR5SHlzdGVy
ZXNpcy5zdGF0ZSgpID09IFBBTDo6SHlzdGVyZXNpc1N0YXRlOjpTdGFydGVkKSB7Ci0gICAgICAg
IGlmICghbV9wcm9jZXNzLT5oYXNDb25uZWN0aW9uKCkgfHwgIW1fZGlzcGxheUlEKQotICAgICAg
ICAgICAgcmV0dXJuOwotCi0gICAgICAgIGJvb2wgd2FudHNGdWxsU3BlZWRVcGRhdGVzID0gdHJ1
ZTsKLSAgICAgICAgcHJvY2VzcygpLnByb2Nlc3NQb29sKCkuc2V0RGlzcGxheUxpbmtGb3JEaXNw
bGF5V2FudHNGdWxsU3BlZWRVcGRhdGVzKCptX3Byb2Nlc3MtPmNvbm5lY3Rpb24oKSwgKm1fZGlz
cGxheUlELCB3YW50c0Z1bGxTcGVlZFVwZGF0ZXMpOwotICAgIH0KKyAgICB1cGRhdGVEaXNwbGF5
TGlua0ZyZXF1ZW5jeSgpOwogI2VuZGlmCiB9CiAKQEAgLTYxNjEsNiArNjE2MCwxNCBAQCB2b2lk
IFdlYlBhZ2VQcm94eTo6cGFnZURpZFNjcm9sbChjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgc2Ny
b2xsUG9zaXRpb24pCiAjZW5kaWYKIH0KIAordm9pZCBXZWJQYWdlUHJveHk6OnNldEhhc0FjdGl2
ZUFuaW1hdGVkU2Nyb2xscyhib29sIGlzUnVubmluZykKK3sKKyAgICBtX2hhc0FjdGl2ZUFuaW1h
dGVkU2Nyb2xsID0gaXNSdW5uaW5nOworI2lmIEhBVkUoQ1ZESVNQTEFZTElOSykKKyAgICB1cGRh
dGVEaXNwbGF5TGlua0ZyZXF1ZW5jeSgpOworI2VuZGlmCit9CisKIHZvaWQgV2ViUGFnZVByb3h5
OjpydW5PcGVuUGFuZWwoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIEZyYW1lSW5mb0RhdGEmJiBm
cmFtZUluZm8sIGNvbnN0IEZpbGVDaG9vc2VyU2V0dGluZ3MmIHNldHRpbmdzKQogewogICAgIGlm
IChtX29wZW5QYW5lbFJlc3VsdExpc3RlbmVyKSB7CkBAIC03OTY1LDYgKzc5NzIsNyBAQCB2b2lk
IFdlYlBhZ2VQcm94eTo6cmVzZXRTdGF0ZUFmdGVyUHJvY2Vzc0V4aXRlZChQcm9jZXNzVGVybWlu
YXRpb25SZWFzb24gdGVybWluYQogICAgIG1faXNTZXJ2aWNlV29ya2VyUGFnZSA9IGZhbHNlOwog
CiAgICAgbV91c2VyU2NyaXB0c05vdGlmaWVkID0gZmFsc2U7CisgICAgbV9oYXNBY3RpdmVBbmlt
YXRlZFNjcm9sbCA9IGZhbHNlOwogCiAgICAgbV9lZGl0b3JTdGF0ZSA9IEVkaXRvclN0YXRlKCk7
CiAgICAgbV9jYWNoZWRGb250QXR0cmlidXRlc0F0U2VsZWN0aW9uU3RhcnQucmVzZXQoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggYzVkNTYzM2FiYzg5MjQ3ZTdi
YzQ0ZWRhNDZjYTI0NWMwNTI4NTk1NC4uZjYyNjMyMDRhMjJmZjk1ZDM0OGRhNTFkMWY2MzYyYTg5
ZjYyMzVkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTcxNSw2
ICs3MTUsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCByZXF1ZXN0U2Nyb2xsKGNvbnN0IFdlYkNvcmU6
OkZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgc2Ny
b2xsT3JpZ2luLCBXZWJDb3JlOjpTY3JvbGxJc0FuaW1hdGVkKTsKICAgICAKICAgICBXZWJDb3Jl
OjpGbG9hdFBvaW50IHZpZXdTY3JvbGxQb3NpdGlvbigpIGNvbnN0OworICAgIAorICAgIHZvaWQg
c2V0SGFzQWN0aXZlQW5pbWF0ZWRTY3JvbGxzKGJvb2wgaXNSdW5uaW5nKTsKIAogICAgIHZvaWQg
c2V0RGVsZWdhdGVzU2Nyb2xsaW5nKGJvb2wgZGVsZWdhdGVzU2Nyb2xsaW5nKSB7IG1fZGVsZWdh
dGVzU2Nyb2xsaW5nID0gZGVsZWdhdGVzU2Nyb2xsaW5nOyB9CiAgICAgYm9vbCBkZWxlZ2F0ZXNT
Y3JvbGxpbmcoKSBjb25zdCB7IHJldHVybiBtX2RlbGVnYXRlc1Njcm9sbGluZzsgfQpAQCAtMjM3
NCwxMCArMjM3Niw2IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRSZWxlYXNlQWxsVG91Y2hQb2lu
dHMoKSB7IH0KICNlbmRpZiAvLyBQTEFURk9STShJT1NfRkFNSUxZKQogCi0jaWYgRU5BQkxFKERB
VEFfREVURUNUSU9OKQotICAgIFJldGFpblB0cjxOU0FycmF5PiBtX2RhdGFEZXRlY3Rpb25SZXN1
bHRzOwotI2VuZGlmCi0KICAgICB2b2lkIHBlcmZvcm1EcmFnQ29udHJvbGxlckFjdGlvbihEcmFn
Q29udHJvbGxlckFjdGlvbiwgV2ViQ29yZTo6RHJhZ0RhdGEmLCBjb25zdCBTdHJpbmcmIGRyYWdT
dG9yYWdlTmFtZSwgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJiYsIFZlY3RvcjxTYW5kYm94RXh0
ZW5zaW9uOjpIYW5kbGU+JiYpOwogCiAgICAgdm9pZCB1cGRhdGVCYWNraW5nU3RvcmVEaXNjYXJk
YWJsZVN0YXRlKCk7CkBAIC0yMzkxLDYgKzIzODksNyBAQCBwcml2YXRlOgogCiAjaWYgSEFWRShD
VkRJU1BMQVlMSU5LKQogICAgIHZvaWQgd2hlZWxFdmVudEh5c3RlcmVzaXNVcGRhdGVkKFBBTDo6
SHlzdGVyZXNpc1N0YXRlKTsKKyAgICB2b2lkIHVwZGF0ZURpc3BsYXlMaW5rRnJlcXVlbmN5KCk7
CiAjZW5kaWYKICAgICB2b2lkIHVwZGF0ZVdoZWVsRXZlbnRBY3Rpdml0eUFmdGVyUHJvY2Vzc1N3
YXAoKTsKIApAQCAtMjYzNyw3ICsyNjM2LDYgQEAgcHJpdmF0ZToKIAogI2lmIFBMQVRGT1JNKE1B
QykKICAgICBib29sIG1fdXNlU3lzdGVtQXBwZWFyYW5jZSB7IGZhbHNlIH07Ci0KICAgICBib29s
IG1fYWNjZXB0c0ZpcnN0TW91c2UgeyBmYWxzZSB9OwogI2VuZGlmCiAKQEAgLTI2NTcsNiArMjY1
NSwxMCBAQCBwcml2YXRlOgogICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJBdXRoZW50aWNhdG9yQ29v
cmRpbmF0b3JQcm94eT4gbV9jcmVkZW50aWFsc01lc3NlbmdlcjsKICNlbmRpZgogCisjaWYgRU5B
QkxFKERBVEFfREVURUNUSU9OKQorICAgIFJldGFpblB0cjxOU0FycmF5PiBtX2RhdGFEZXRlY3Rp
b25SZXN1bHRzOworI2VuZGlmCisKICAgICBIYXNoU2V0PFdlYkVkaXRDb21tYW5kUHJveHkqPiBt
X2VkaXRDb21tYW5kU2V0OwogCiAjaWYgUExBVEZPUk0oQ09DT0EpCkBAIC0yNzYzLDYgKzI3NjUs
OCBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBtX2hhc1VwZGF0ZWRSZW5kZXJpbmdBZnRlckRpZENv
bW1pdExvYWQgeyB0cnVlIH07CiAKKyAgICBib29sIG1faGFzQWN0aXZlQW5pbWF0ZWRTY3JvbGwg
eyBmYWxzZSB9OworCiAgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IG1fZGVjaWRlUG9saWN5
Rm9yUmVzcG9uc2VSZXF1ZXN0OwogICAgIGJvb2wgbV9zaG91bGRTdXBwcmVzc0FwcExpbmtzSW5O
ZXh0TmF2aWdhdGlvblBvbGljeURlY2lzaW9uIHsgZmFsc2UgfTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDcyZTU2ZGZmZTZl
NWY0MGIzZWE1MzJlYWRlM2ZkMTk4ZDhkZWYwZTUuLjdhOTM5MWEwNzc5NzZlZDFjM2I2ZDA3NmY0
NGFhYzkyMTMyOTBlMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkubWVzc2FnZXMuaW4KQEAgLTY3LDYgKzY3LDcgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVBy
b3h5IHsKIAogICAgIFJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbChXZWJDb3JlOjpGcmFtZUlk
ZW50aWZpZXIgZnJhbWVJRCwgc3RydWN0IFdlYktpdDo6RnJhbWVJbmZvRGF0YSBmcmFtZUluZm8s
IFN0cmluZyBtZXNzYWdlKSAtPiAoYm9vbCBzaG91bGRDbG9zZSkgU3luY2hyb25vdXMKICAgICBQ
YWdlRGlkU2Nyb2xsKFdlYkNvcmU6OkludFBvaW50IHNjcm9sbFBvc2l0aW9uKQorICAgIFNldEhh
c0FjdGl2ZUFuaW1hdGVkU2Nyb2xscyhib29sIGhhc0FjdGl2ZUFuaW1hdGVkU2Nyb2xscykKICAg
ICBSdW5PcGVuUGFuZWwoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBX
ZWJLaXQ6OkZyYW1lSW5mb0RhdGEgZnJhbWVJbmZvLCBzdHJ1Y3QgV2ViQ29yZTo6RmlsZUNob29z
ZXJTZXR0aW5ncyBwYXJhbWV0ZXJzKQogICAgIFNob3dTaGFyZVNoZWV0KHN0cnVjdCBXZWJDb3Jl
OjpTaGFyZURhdGFXaXRoUGFyc2VkVVJMIHNoYXJlRGF0YSkgLT4gKGJvb2wgZ3JhbnRlZCkgQXN5
bmMKICAgICBTaG93Q29udGFjdFBpY2tlcihzdHJ1Y3QgV2ViQ29yZTo6Q29udGFjdHNSZXF1ZXN0
RGF0YSByZXF1ZXN0RGF0YSkgLT4gKHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFdlYkNvcmU6OkNvbnRh
Y3RJbmZvPj4gaW5mbykgQXN5bmMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCmluZGV4IDViMzJlYmEyMjA4YTRkODQ5YzQ1NzA3MWJjYTQzODk2MjUy
MTcwZTUuLmRlMzFjMzBkNDhiZmZhM2JhOTBkODk3N2YwYzBjMWVmNmM0MjdkOWQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIv
U291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjYxMCw2
ICsyNjEwLDggQEAKIAkJMEZDRDA5NEYyNEM3OUY1QjAwMEM2RDM5IC8qIFJlbW90ZVNjcm9sbGlu
Z1VJU3RhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlU2Nyb2xsaW5nVUlTdGF0ZS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRkQyQ0IyNTI2Q0REN0EzMDAwOEIxMUMgLyogSWRl
bnRpZmllclR5cGVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElkZW50aWZpZXJUeXBlcy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkwRkRDRDdGNjFENDdFOTJBMDA5RjA4QkMgLyogTG9nSW5p
dGlhbGl6YXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTG9nSW5pdGlh
bGl6YXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEZFMjdGQUUyNzE0RkMx
NTAwMDNBQUFFIC8qIFRpbGVkQ29yZUFuaW1hdGlvblNjcm9sbGluZ0Nvb3JkaW5hdG9yLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFRpbGVkQ29yZUFuaW1hdGlvblNjcm9sbGluZ0Nvb3JkaW5hdG9yLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGRTI3RkFGMjcxNEZDMTUwMDAzQUFBRSAvKiBU
aWxlZENvcmVBbmltYXRpb25TY3JvbGxpbmdDb29yZGluYXRvci5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IFRpbGVkQ29yZUFuaW1hdGlvblNjcm9sbGluZ0Nvb3JkaW5hdG9yLm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkwRkYyNEEyQjE4NzlFNEJDMDAzQUJGMEMgLyogUmVtb3Rl
TGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5
TWVzc2FnZVJlY2VpdmVyLmNwcDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3Rl
TGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUg
PSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTBGRjI0QTJCMTg3OUU0QkMwMDNBQkYwRCAvKiBS
ZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBSZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlck1lc3Nh
Z2VSZWNlaXZlci5jcHA7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUNhcHR1
cmVTYW1wbGVNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9IEJVSUxUX1BS
T0RVQ1RTX0RJUjsgfTsKIAkJMEZGMjRBMkMxODc5RTRCQzAwM0FCRjBDIC8qIFJlbW90ZUxheWVy
VHJlZURyYXdpbmdBcmVhUHJveHlNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IG5hbWUgPSBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5TWVzc2FnZXMuaDsgcGF0aCA9
IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eU1l
c3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CkBAIC0xMTA3MCw2
ICsxMTA3Miw4IEBACiAJCQkJN0M2RDM3RkExNzJGNTU1RjAwOUQyODQ3IC8qIFBhZ2VCYW5uZXJN
YWMubW0gKi8sCiAJCQkJMUFBRjI2MzcxNDY4N0MzOTAwNEExRThBIC8qIFRpbGVkQ29yZUFuaW1h
dGlvbkRyYXdpbmdBcmVhLmggKi8sCiAJCQkJMUFBRjI2MzYxNDY4N0MzOTAwNEExRThBIC8qIFRp
bGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLm1tICovLAorCQkJCTBGRTI3RkFFMjcxNEZDMTUw
MDAzQUFBRSAvKiBUaWxlZENvcmVBbmltYXRpb25TY3JvbGxpbmdDb29yZGluYXRvci5oICovLAor
CQkJCTBGRTI3RkFGMjcxNEZDMTUwMDAzQUFBRSAvKiBUaWxlZENvcmVBbmltYXRpb25TY3JvbGxp
bmdDb29yZGluYXRvci5tbSAqLywKIAkJCQlCQzk2M0Q2RDExM0REMUE1MDA1NzRCRTIgLyogV2Vi
UGFnZU1hYy5tbSAqLywKIAkJCQkyOUNENTVBODEyOEUyOTRGMDAxMzNDODUgLyogV0tBY2Nlc3Np
YmlsaXR5V2ViUGFnZU9iamVjdEJhc2UuaCAqLywKIAkJCQkyOUNENTVBOTEyOEUyOTRGMDAxMzND
ODUgLyogV0tBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdEJhc2UubW0gKi8sCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQuY3BwCmluZGV4IDJiM2IyZGU1ODdjNGQxZTVmOGM3OTNlZDc3NTA4MWNiMDYxMjlmZDcu
Ljg3NzUzNTEzMjVmNDc2YWZjZDg4NGM3MGMzZDRhMmUyNzJjYjRlZjggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQuY3BwCkBAIC00Miw2ICs0Miw3IEBACiAjaW5jbHVkZSAiUGx1Z2luVmlldy5oIgogI2lu
Y2x1ZGUgIlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5oIgogI2luY2x1ZGUgIlNoYXJlZEJ1
ZmZlckNvcHkuaCIKKyNpbmNsdWRlICJUaWxlZENvcmVBbmltYXRpb25TY3JvbGxpbmdDb29yZGlu
YXRvci5oIgogI2luY2x1ZGUgIlVzZXJEYXRhLmgiCiAjaW5jbHVkZSAiV2ViQ29sb3JDaG9vc2Vy
LmgiCiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCkBAIC0xMDEyLDEyICsxMDEz
LDE0IEBAIFJlZlB0cjxTY3JvbGxpbmdDb29yZGluYXRvcj4gV2ViQ2hyb21lQ2xpZW50OjpjcmVh
dGVTY3JvbGxpbmdDb29yZGluYXRvcihQYWdlJiBwCiB7CiAgICAgQVNTRVJUX1VOVVNFRChwYWdl
LCBtX3BhZ2UuY29yZVBhZ2UoKSA9PSAmcGFnZSk7CiAjaWYgUExBVEZPUk0oQ09DT0EpCi0gICAg
aWYgKG1fcGFnZS5kcmF3aW5nQXJlYSgpLT50eXBlKCkgIT0gRHJhd2luZ0FyZWFUeXBlOjpSZW1v
dGVMYXllclRyZWUpCi0gICAgICAgIHJldHVybiBudWxscHRyOwotICAgIHJldHVybiBSZW1vdGVT
Y3JvbGxpbmdDb29yZGluYXRvcjo6Y3JlYXRlKCZtX3BhZ2UpOwotI2Vsc2UKLSAgICByZXR1cm4g
bnVsbHB0cjsKKyAgICBzd2l0Y2ggKG1fcGFnZS5kcmF3aW5nQXJlYSgpLT50eXBlKCkpIHsKKyAg
ICBjYXNlIERyYXdpbmdBcmVhVHlwZTo6VGlsZWRDb3JlQW5pbWF0aW9uOgorICAgICAgICByZXR1
cm4gVGlsZWRDb3JlQW5pbWF0aW9uU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OmNyZWF0ZSgmbV9wYWdl
KTsKKyAgICBjYXNlIERyYXdpbmdBcmVhVHlwZTo6UmVtb3RlTGF5ZXJUcmVlOgorICAgICAgICBy
ZXR1cm4gUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OmNyZWF0ZSgmbV9wYWdlKTsKKyAgICB9
CiAjZW5kaWYKKyAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IGQ5NDc2ZjdmMDZhYWQwNDUz
OTc2NjNjNWU4OWVkMTcyNTkzMDZkMzEuLjIyYzMzMThiMjIxYTZiZWRmYWIwMjRlY2UyY2YwOWVm
ZjUwOTMzNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
Y3BwCkBAIC0yNzI5LDYgKzI3MjksMTEgQEAgdm9pZCBXZWJQYWdlOjpwYWdlU3RvcHBlZFNjcm9s
bGluZygpCiAgICAgICAgIGZyYW1lLT5sb2FkZXIoKS5oaXN0b3J5KCkuc2F2ZVNjcm9sbFBvc2l0
aW9uQW5kVmlld1N0YXRlVG9JdGVtKGZyYW1lLT5sb2FkZXIoKS5oaXN0b3J5KCkuY3VycmVudEl0
ZW0oKSk7CiB9CiAKK3ZvaWQgV2ViUGFnZTo6c2V0SGFzQWN0aXZlQW5pbWF0ZWRTY3JvbGxzKGJv
b2wgaGFzQWN0aXZlQW5pbWF0ZWRTY3JvbGxzKQoreworICAgIHNlbmQoTWVzc2FnZXM6OldlYlBh
Z2VQcm94eTo6U2V0SGFzQWN0aXZlQW5pbWF0ZWRTY3JvbGxzKGhhc0FjdGl2ZUFuaW1hdGVkU2Ny
b2xscykpOworfQorCiAjaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCiBXZWJDb250ZXh0TWVudSYg
V2ViUGFnZTo6Y29udGV4dE1lbnUoKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5oCmluZGV4IDc3YmYwMmU3YWVmYTEzNDFkMmY4MzYzYTJkZjQ4ZjgzMGYxNWQy
ODIuLmZlMjkwY2ZjNGRkNmQzMjkzMTdjMTk0MWE4MmE4ZWM1N2IzNGEzNDIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTYxNyw3ICs2MTcsOSBAQCBw
dWJsaWM6CiAgICAgdm9pZCBsaXN0ZW5Gb3JMYXlvdXRNaWxlc3RvbmVzKE9wdGlvblNldDxXZWJD
b3JlOjpMYXlvdXRNaWxlc3RvbmU+KTsKIAogICAgIHZvaWQgc2V0U3VwcHJlc3NTY3JvbGxiYXJB
bmltYXRpb25zKGJvb2wpOwotICAgIAorCisgICAgdm9pZCBzZXRIYXNBY3RpdmVBbmltYXRlZFNj
cm9sbHMoYm9vbCk7CisKICAgICB2b2lkIHNldEVuYWJsZVZlcnRpY2FsUnViYmVyQmFuZGluZyhi
b29sKTsKICAgICB2b2lkIHNldEVuYWJsZUhvcml6b250YWxSdWJiZXJCYW5kaW5nKGJvb2wpOwog
ICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1Rp
bGVkQ29yZUFuaW1hdGlvblNjcm9sbGluZ0Nvb3JkaW5hdG9yLmggYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uU2Nyb2xsaW5nQ29vcmRpbmF0
b3IuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4yZTU1NmU0MTQyMjIzYjlhNzI4NGM2YTEzM2JlMjY3YTBhZGQyOWMy
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFj
L1RpbGVkQ29yZUFuaW1hdGlvblNjcm9sbGluZ0Nvb3JkaW5hdG9yLmgKQEAgLTAsMCArMSw1NSBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKEFTWU5DX1NDUk9MTElO
RykgJiYgRU5BQkxFKFNDUk9MTElOR19USFJFQUQpCisKKyNpbmNsdWRlIDxXZWJDb3JlL1Njcm9s
bGluZ0Nvb3JkaW5hdG9yTWFjLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJQ
YWdlOworCitjbGFzcyBUaWxlZENvcmVBbmltYXRpb25TY3JvbGxpbmdDb29yZGluYXRvciBmaW5h
bCA6IHB1YmxpYyBXZWJDb3JlOjpTY3JvbGxpbmdDb29yZGluYXRvck1hYyB7CitwdWJsaWM6Cisg
ICAgc3RhdGljIFJlZjxUaWxlZENvcmVBbmltYXRpb25TY3JvbGxpbmdDb29yZGluYXRvcj4gY3Jl
YXRlKFdlYlBhZ2UqIHBhZ2UpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBU
aWxlZENvcmVBbmltYXRpb25TY3JvbGxpbmdDb29yZGluYXRvcihwYWdlKSk7CisgICAgfQorCitw
cml2YXRlOgorICAgIGV4cGxpY2l0IFRpbGVkQ29yZUFuaW1hdGlvblNjcm9sbGluZ0Nvb3JkaW5h
dG9yKFdlYlBhZ2UqKTsKKyAgICB+VGlsZWRDb3JlQW5pbWF0aW9uU2Nyb2xsaW5nQ29vcmRpbmF0
b3IoKTsKKworICAgIHZvaWQgcGFnZURlc3Ryb3llZCgpIGZpbmFsOworICAgIHZvaWQgaGFzTm9k
ZVdpdGhBbmltYXRlZFNjcm9sbENoYW5nZWQoYm9vbCkgZmluYWw7CisgICAgCisgICAgV2ViUGFn
ZSogbV9wYWdlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFC
TEUoQVNZTkNfU0NST0xMSU5HKSAmJiBFTkFCTEUoU0NST0xMSU5HX1RIUkVBRCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRp
b25TY3JvbGxpbmdDb29yZGluYXRvci5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25TY3JvbGxpbmdDb29yZGluYXRvci5tbQpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5lZDRmNTM4ODc5YTc0NTExNDkyYTRmYTc4YWNjOTNkNGEzNDJlYTdhCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFu
aW1hdGlvblNjcm9sbGluZ0Nvb3JkaW5hdG9yLm1tCkBAIC0wLDAgKzEsNTkgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW1wb3J0ICJjb25maWcuaCIKKworI2lmIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpICYm
IEVOQUJMRShTQ1JPTExJTkdfVEhSRUFEKQorI2ltcG9ydCAiVGlsZWRDb3JlQW5pbWF0aW9uU2Ny
b2xsaW5nQ29vcmRpbmF0b3IuaCIKKworI2ltcG9ydCAiV2ViUGFnZS5oIgorCituYW1lc3BhY2Ug
V2ViS2l0IHsKKworVGlsZWRDb3JlQW5pbWF0aW9uU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OlRpbGVk
Q29yZUFuaW1hdGlvblNjcm9sbGluZ0Nvb3JkaW5hdG9yKFdlYlBhZ2UqIHBhZ2UpCisgICAgOiBT
Y3JvbGxpbmdDb29yZGluYXRvck1hYyhwYWdlLT5jb3JlUGFnZSgpKQorICAgICwgbV9wYWdlKHBh
Z2UpCit7Cit9CisKK1RpbGVkQ29yZUFuaW1hdGlvblNjcm9sbGluZ0Nvb3JkaW5hdG9yOjp+VGls
ZWRDb3JlQW5pbWF0aW9uU2Nyb2xsaW5nQ29vcmRpbmF0b3IoKSA9IGRlZmF1bHQ7CisKK3ZvaWQg
VGlsZWRDb3JlQW5pbWF0aW9uU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnBhZ2VEZXN0cm95ZWQoKQor
eworICAgIFNjcm9sbGluZ0Nvb3JkaW5hdG9yTWFjOjpwYWdlRGVzdHJveWVkKCk7CisgICAgbV9w
YWdlID0gbnVsbHB0cjsKK30KKwordm9pZCBUaWxlZENvcmVBbmltYXRpb25TY3JvbGxpbmdDb29y
ZGluYXRvcjo6aGFzTm9kZVdpdGhBbmltYXRlZFNjcm9sbENoYW5nZWQoYm9vbCBoYXZlQW5pbWF0
ZWRTY3JvbGxpbmdOb2RlcykKK3sKKyAgICBpZiAoIW1fcGFnZSkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgbV9wYWdlLT5zZXRIYXNBY3RpdmVBbmltYXRlZFNjcm9sbHMoaGF2ZUFuaW1hdGVkU2Ny
b2xsaW5nTm9kZXMpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVO
QUJMRShBU1lOQ19TQ1JPTExJTkcpICYmIEVOQUJMRShTQ1JPTExJTkdfVEhSRUFEKQo=
</data>
<flag name="review"
          id="465050"
          type_id="1"
          status="+"
          setter="thorton"
    />
    <flag name="commit-queue"
          id="465056"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440967</attachid>
            <date>2021-10-12 12:15:04 -0700</date>
            <delta_ts>2021-10-12 13:41:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231593-20211012121504.patch</filename>
            <type>text/plain</type>
            <size>24762</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzOTg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmM2ZDE1ZWRkMTNjYWUy
ZThiMzBkYTg2ZTA1NGY0MjE4YjFmZmFiMC4uNDhlODkyMjY0Nzk1NGFiNDM0MTU5MmE0NWYyMDQz
MjUzNjZhZDZlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDIxLTEwLTEyICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFNjcm9sbGluZyB0
aHJlYWQgYW5pbWF0aW9ucyBuZWVkIHRvIGNvbW1pdCBsYXllcnMgb24gdGhlIHNjcm9sbGluZyB0
aHJlYWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIz
MTU5MworCisgICAgICAgIFJldmlld2VkIGJ5IFRpbSBIb3J0b24uCisKKyAgICAgICAgRXhwb3J0
IHNvbWUgQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvciBmdW5jdGlvbnMuCisKKyAgICAgICAgKiBX
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGFnZS9zY3JvbGxp
bmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5oOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5n
L21hYy9TY3JvbGxpbmdDb29yZGluYXRvck1hYy5oOgorCiAyMDIxLTEwLTEyICBTaW1vbiBGcmFz
ZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEhhdmUgdGhlIFNjcm9sbGlu
Z1RyZWUgdHJhY2sgbm9kZXMgd2l0aCBhbmltYXRlZCBzY3JvbGxzCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDMzNTI3
MDM1Y2M1N2RlM2E2MDMxMjVkY2UyMTY1NmM4NDY2MDA1ZmUuLmU1NTBjZmNiZDZkMTlhOGZlNDE4
YjlkY2JlNzFiMTEyYzkxMjNhNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTEgQEAKKzIwMjEtMTAt
MTIgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgU2Ny
b2xsaW5nIHRocmVhZCBhbmltYXRpb25zIG5lZWQgdG8gY29tbWl0IGxheWVycyBvbiB0aGUgc2Ny
b2xsaW5nIHRocmVhZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjMxNTkzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgVGltIEhvcnRvbi4KKyAgICAgICAg
CisgICAgICAgIFNjcm9sbCBhbmltYXRpb25zIHdlcmUgcnVubmluZyBvbiB0aGUgc2Nyb2xsaW5n
IHRocmVhZCAoaW4gdGhhdCB0aGUgdGltZXJzIHdlcmUgZmlyaW5nIG9uCisgICAgICAgIHRoYXQg
dGhyZWFkKSwgYnV0IHRoZSBzY3JvbGxpbmcgdGhyZWFkIHdhc24ndCBjaGFuZ2luZyBsYXllciBw
b3NpdGlvbnMsIHNvIHRob3NlIGFuaW1hdGlvbnMKKyAgICAgICAgd2VyZW4ndCBzbW9vdGguCisK
KyAgICAgICAgVGhpcyBoYXBwZW5lZCBiZWNhdXNlIG9mIGFuIGV4aXN0aW5nIGFzc3VtcHRpb24g
dGhhdCB3ZSBvbmx5IGNvbW1pdCBsYXllciBjaGFuZ2VzIG9uIHRoZQorICAgICAgICBzY3JvbGxp
bmcgdGhyZWFkIGluIHJlc3BvbnNlIHRvIHdoZWVsIGV2ZW50czsgdGhlIG1hY2hpbmVyeSBhcm91
bmQKKyAgICAgICAgVGhyZWFkZWRTY3JvbGxpbmdUcmVlOjpkaXNwbGF5RGlkUmVmcmVzaCgpIHdh
cyBhbGwgZ2F0ZWQgb24gaGF2aW5nIHJlY2VudGx5IHJlY2VpdmVkIGEgd2hlZWwKKyAgICAgICAg
ZXZlbnQuCisKKyAgICAgICAgVG8gZml4IHRoaXMgd2UgbmVlZCB0byBjb21tdW5pY2F0ZSBiYWNr
IHRvIHRoZSBVSSBwcm9jZXNzIHdoZW4gdGhlcmUgYXJlIGFjdGl2ZSBzY3JvbGwKKyAgICAgICAg
YW5pbWF0aW9ucyBydW5uaW5nLiBUaGUgU2Nyb2xsaW5nVHJlZSBhbHJlYWR5IHRyYWNrcyB0aGlz
LCBhbmQgdGhlIHZpcnR1YWwKKyAgICAgICAgaGFzTm9kZVdpdGhBbmltYXRlZFNjcm9sbENoYW5n
ZWQoKSBvbiBTY3JvbGxpbmdDb29yZGluYXRvciBpcyBjYWxsZWQgZm9yIGl0LiBUbyBnZXQgdGhp
cyB0bworICAgICAgICB0aGUgVUkgcHJvY2VzcyBvbiBtYWNPUywgc3ViY2xhc3MgU2Nyb2xsaW5n
Q29vcmRpbmF0b3JNYWMgaW4gV2ViS2l0MiBhbmQgb3ZlcnJpZGUKKyAgICAgICAgaGFzTm9kZVdp
dGhBbmltYXRlZFNjcm9sbENoYW5nZWQoKSB0byBjYWxsIGludG8gV2ViUGFnZSwgd2hpY2ggdGhl
biBJUENzIHRvIFdlYlBhZ2VQcm94eS4KKyAgICAgICAgVGhpcyBlbmRzIHVwIGNhbGxpbmcgc2V0
RGlzcGxheUxpbmtGb3JEaXNwbGF5V2FudHNGdWxsU3BlZWRVcGRhdGVzKCkgc28gdGhhdCBrbm93
IHRvIElQQworICAgICAgICBkaXNwbGF5RGlkUmVmcmVzaCB0byBFdmVudERpc3BhdGNoZXIgb2Zm
IHRoZSBtYWluIHRocmVhZCAoYXMgd2UgZG8gZm9yIHdoZWVsIGV2ZW50cykuCisKKyAgICAgICAg
U2Nyb2xsIGFuaW1hdGlvbnMgYXJlIHN0aWxsIGJhc2VkIG9uIGEgNjBIeiB0aW1lciwgYnV0IGlu
IGZ1dHVyZSBzaG91bGQgYmUgZHJpdmVuIGJ5CisgICAgICAgIGRpc3BsYXlEaWRSZWZyZXNoKCkg
bm90aWZpY2F0aW9ucy4KKworICAgICAgICAqIFNvdXJjZXNDb2NvYS50eHQ6CisgICAgICAgICog
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94
eTo6d2hlZWxFdmVudEh5c3RlcmVzaXNVcGRhdGVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZVByb3h5Ojp1cGRhdGVEaXNwbGF5TGlua0ZyZXF1ZW5jeSk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2VQcm94eTo6dXBkYXRlV2hlZWxFdmVudEFjdGl2aXR5QWZ0ZXJQcm9jZXNzU3dhcCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6c2V0SGFzQWN0aXZlQW5pbWF0ZWRTY3JvbGxz
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpyZXNldFN0YXRlQWZ0ZXJQcm9jZXNz
RXhpdGVkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgICog
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJLaXQueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVu
dDo6Y3JlYXRlU2Nyb2xsaW5nQ29vcmRpbmF0b3IgY29uc3QpOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6c2V0SGFz
QWN0aXZlQW5pbWF0ZWRTY3JvbGxzKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0
aW9uU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ0Nvb3JkaW5hdG9yTWFjLmguCisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25TY3JvbGxpbmdDb29yZGluYXRv
ci5tbTogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9s
bGluZ0Nvb3JkaW5hdG9yTWFjLmguCisgICAgICAgIChXZWJLaXQ6OlRpbGVkQ29yZUFuaW1hdGlv
blNjcm9sbGluZ0Nvb3JkaW5hdG9yOjpUaWxlZENvcmVBbmltYXRpb25TY3JvbGxpbmdDb29yZGlu
YXRvcik6CisgICAgICAgIChXZWJLaXQ6OlRpbGVkQ29yZUFuaW1hdGlvblNjcm9sbGluZ0Nvb3Jk
aW5hdG9yOjpwYWdlRGVzdHJveWVkKToKKyAgICAgICAgKFdlYktpdDo6VGlsZWRDb3JlQW5pbWF0
aW9uU2Nyb2xsaW5nQ29vcmRpbmF0b3I6Omhhc05vZGVXaXRoQW5pbWF0ZWRTY3JvbGxDaGFuZ2Vk
KToKKwogMjAyMS0xMC0xMiAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQu
b3JnPgogCiAgICAgICAgIFJlbW92ZSBub24tSEFWRShDRk5FVFdPUktfTlNVUkxTRVNTSU9OX1NU
UklDVFJVU1RFVkFMVUFURSkgY29kZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDU5ZDZlZWY3MTBiMzljMjhhYzE0YjI3ZjUzMTkw
YzUyZTg0YzkzMDcuLmVhYThjMGNjOTU4YjU4YWI0OGQ2YTNlZDczMTQ1NzU3MzdkMjMyMjcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
QEAgLTI5MDgsNyArMjkwOCw3IEBACiAJCTkzOENGMjQyMjZCQjcyOEMwMEMwOTI0MCAvKiBXZWJT
b2NrZXQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTdBQUJDRkYxNEZBMDlENTAwNzQ1N0FFIC8qIFdlYlNvY2tldC5jcHAgKi87IH07CiAJCTkzOEU2
NUYxMDlGMDk4NDAwMDhBNDhFQyAvKiBKU0hUTUxFbGVtZW50V3JhcHBlckZhY3RvcnkuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzOEU2NUYwMDlGMDk4
NDAwMDhBNDhFQyAvKiBKU0hUTUxFbGVtZW50V3JhcHBlckZhY3RvcnkuaCAqLzsgfTsKIAkJOTM4
RTY2NjIwOUYwOUI4NzAwOEE0OEVDIC8qIEpTSFRNTENhbnZhc0VsZW1lbnQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzOEU2NjYxMDlGMDlCODcwMDhB
NDhFQyAvKiBKU0hUTUxDYW52YXNFbGVtZW50LmggKi87IH07Ci0JCTkzOTFBOTkxMTYyNzQ2Q0Iw
MDI5NzMzMCAvKiBTY3JvbGxpbmdDb29yZGluYXRvck1hYy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM5MUE5OTAxNjI3NDZDQjAwMjk3MzMwIC8qIFNj
cm9sbGluZ0Nvb3JkaW5hdG9yTWFjLmggKi87IH07CisJCTkzOTFBOTkxMTYyNzQ2Q0IwMDI5NzMz
MCAvKiBTY3JvbGxpbmdDb29yZGluYXRvck1hYy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOTM5MUE5OTAxNjI3NDZDQjAwMjk3MzMwIC8qIFNjcm9sbGlu
Z0Nvb3JkaW5hdG9yTWFjLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJOTM5MUE5OUQxNjI5RDcwMDAwMjk3MzMwIC8qIFNjcm9sbGluZ1RyZWVTY3Jv
bGxpbmdOb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA5MzkxQTk5QjE2MjlENzAwMDAyOTczMzAgLyogU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5Mzky
MTQ2OTE4QTZENzkxMDAwRUU2ODggLyogVGV4dEl0ZXJhdG9yQmVoYXZpb3IuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzOTIxNDY4MThBNkQ3OTEwMDBF
RTY4OCAvKiBUZXh0SXRlcmF0b3JCZWhhdmlvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzOTJGMTQyMEFEMTg1RjQwMDY5MUJENCAvKiBSZW5k
ZXJDb3VudGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA5MzkyRjE0MTBBRDE4NUY0MDA2OTFCRDQgLyogUmVuZGVyQ291bnRlci5oICovOyB9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29y
ZGluYXRvci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdD
b29yZGluYXRvci5oCmluZGV4IDBiZDhhYzRiYTc3MGY1NzE1YTk3NTJkMzljMzYxYmEzZmMxNDdm
ZjAuLmI3YmY2NDVkZTM3ZTVhMTE1MGVjNjkxZjVjOTFlY2IzNWI5ZTVmYTUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3Iu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3Jk
aW5hdG9yLmgKQEAgLTEzMiwxMSArMTMyLDExIEBAIHByaXZhdGU6CiAgICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCBzY3JvbGxCeVNpbXVsYXRpbmdXaGVlbEV2ZW50Rm9yVGVzdGluZyhTY3JvbGxpbmdO
b2RlSUQsIEZsb2F0U2l6ZSkgZmluYWw7CiAKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIGlzVXNl
clNjcm9sbEluUHJvZ3Jlc3MoU2Nyb2xsaW5nTm9kZUlEKSBjb25zdCBvdmVycmlkZTsKLSAgICBi
b29sIGlzUnViYmVyQmFuZEluUHJvZ3Jlc3MoU2Nyb2xsaW5nTm9kZUlEKSBjb25zdCBvdmVycmlk
ZTsKKyAgICBXRUJDT1JFX0VYUE9SVCBib29sIGlzUnViYmVyQmFuZEluUHJvZ3Jlc3MoU2Nyb2xs
aW5nTm9kZUlEKSBjb25zdCBvdmVycmlkZTsKIAogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgaXNT
Y3JvbGxTbmFwSW5Qcm9ncmVzcyhTY3JvbGxpbmdOb2RlSUQpIGNvbnN0IG92ZXJyaWRlOwogCi0g
ICAgdm9pZCBzZXRTY3JvbGxQaW5uaW5nQmVoYXZpb3IoU2Nyb2xsUGlubmluZ0JlaGF2aW9yKSBv
dmVycmlkZTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFNjcm9sbFBpbm5pbmdCZWhhdmlv
cihTY3JvbGxQaW5uaW5nQmVoYXZpb3IpIG92ZXJyaWRlOwogCiAgICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCByZWNvbmNpbGVWaWV3cG9ydENvbnN0cmFpbmVkTGF5ZXJQb3NpdGlvbnMoU2Nyb2xsaW5n
Tm9kZUlELCBjb25zdCBMYXlvdXRSZWN0JiB2aWV3cG9ydFJlY3QsIFNjcm9sbGluZ0xheWVyUG9z
aXRpb25BY3Rpb24pIG92ZXJyaWRlOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2Nyb2xsYWJs
ZUFyZWFTY3JvbGxiYXJMYXllckRpZENoYW5nZShTY3JvbGxhYmxlQXJlYSYsIFNjcm9sbGJhck9y
aWVudGF0aW9uKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Ny
b2xsaW5nL21hYy9TY3JvbGxpbmdDb29yZGluYXRvck1hYy5oIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ0Nvb3JkaW5hdG9yTWFjLmgKaW5kZXggMmJkODFmYzg0
ZjE5MGE2MjRlNjkyZGFkNmUzYjA1Y2FmYTIyZTIyNS4uNGNlOGQ2NWQ0NzM5NDkyYWVjNzNkOWI5
NTc3OTk0OGM3YmEyODgxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvbWFjL1Njcm9sbGluZ0Nvb3JkaW5hdG9yTWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ0Nvb3JkaW5hdG9yTWFjLmgKQEAgLTMxLDcgKzMxLDcg
QEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBTY3JvbGxpbmdDb29yZGluYXRvck1h
YyA6IHB1YmxpYyBBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yIHsKK2NsYXNzIFdFQkNPUkVfRVhQ
T1JUIFNjcm9sbGluZ0Nvb3JkaW5hdG9yTWFjIDogcHVibGljIEFzeW5jU2Nyb2xsaW5nQ29vcmRp
bmF0b3IgewogcHVibGljOgogICAgIGV4cGxpY2l0IFNjcm9sbGluZ0Nvb3JkaW5hdG9yTWFjKFBh
Z2UqKTsKICAgICB2aXJ0dWFsIH5TY3JvbGxpbmdDb29yZGluYXRvck1hYygpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2Vz
Q29jb2EudHh0CmluZGV4IDM3MjJlZjhmNWYzZWM3YzBjYWJmNWY3MDllMjlkNTZiZGNjNzFiNzMu
LjI3YjU2NzZmM2RjZTFhNGY1OGZlMjJjMzE0MDExOTZhZDI3ZTg1ODUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXND
b2NvYS50eHQKQEAgLTcwMiw2ICs3MDIsNyBAQCBXZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBh
Z2VJT1MubW0KIAogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9EaXNwbGF5UmVmcmVzaE1vbml0b3JN
YWMuY3BwCiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BhZ2VCYW5uZXJNYWMubW0KK1dlYlByb2Nl
c3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uU2Nyb2xsaW5nQ29vcmRpbmF0b3IubW0K
IFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEubW0K
IFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5tbQogV2ViUHJvY2Vzcy9XZWJQYWdl
L21hYy9XS0FjY2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0QmFzZS5tbQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggYTk2YWJhNzM5MmQ1NjJhOGE3NGNkZWY5Mzk1
ZTAxYTcyMDljOWY0Zi4uZWYxMDc4OGU5NjJhM2MyYmRlZTdiYjkzYjUyNTM2ZWY1NGY0YTUxYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC0yODkwLDI2ICsy
ODkwLDI1IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpoYW5kbGVXaGVlbEV2ZW50KGNvbnN0IE5hdGl2
ZVdlYldoZWVsRXZlbnQmIGV2ZW50KQogfQogCiAjaWYgSEFWRShDVkRJU1BMQVlMSU5LKQotdm9p
ZCBXZWJQYWdlUHJveHk6OndoZWVsRXZlbnRIeXN0ZXJlc2lzVXBkYXRlZChQQUw6Okh5c3RlcmVz
aXNTdGF0ZSBzdGF0ZSkKK3ZvaWQgV2ViUGFnZVByb3h5Ojp3aGVlbEV2ZW50SHlzdGVyZXNpc1Vw
ZGF0ZWQoUEFMOjpIeXN0ZXJlc2lzU3RhdGUpCit7CisgICAgdXBkYXRlRGlzcGxheUxpbmtGcmVx
dWVuY3koKTsKK30KKwordm9pZCBXZWJQYWdlUHJveHk6OnVwZGF0ZURpc3BsYXlMaW5rRnJlcXVl
bmN5KCkKIHsKICAgICBpZiAoIW1fcHJvY2Vzcy0+aGFzQ29ubmVjdGlvbigpIHx8ICFtX2Rpc3Bs
YXlJRCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgYm9vbCB3YW50c0Z1bGxTcGVlZFVwZGF0ZXMg
PSBzdGF0ZSA9PSBQQUw6Okh5c3RlcmVzaXNTdGF0ZTo6U3RhcnRlZDsKLSAgICBwcm9jZXNzKCku
cHJvY2Vzc1Bvb2woKS5zZXREaXNwbGF5TGlua0ZvckRpc3BsYXlXYW50c0Z1bGxTcGVlZFVwZGF0
ZXMoKm1fcHJvY2Vzcy0+Y29ubmVjdGlvbigpLCAqbV9kaXNwbGF5SUQsIHdhbnRzRnVsbFNwZWVk
VXBkYXRlcyk7CisgICAgYm9vbCB3YW50c0Z1bGxTcGVlZFVwZGF0ZXNGb3JXaGVlbEV2ZW50cyA9
IG1fd2hlZWxFdmVudEFjdGl2aXR5SHlzdGVyZXNpcy5zdGF0ZSgpID09IFBBTDo6SHlzdGVyZXNp
c1N0YXRlOjpTdGFydGVkOworICAgIHByb2Nlc3MoKS5wcm9jZXNzUG9vbCgpLnNldERpc3BsYXlM
aW5rRm9yRGlzcGxheVdhbnRzRnVsbFNwZWVkVXBkYXRlcygqbV9wcm9jZXNzLT5jb25uZWN0aW9u
KCksICptX2Rpc3BsYXlJRCwgd2FudHNGdWxsU3BlZWRVcGRhdGVzRm9yV2hlZWxFdmVudHMgfHwg
bV9oYXNBY3RpdmVBbmltYXRlZFNjcm9sbCk7CiB9CiAjZW5kaWYKIAogdm9pZCBXZWJQYWdlUHJv
eHk6OnVwZGF0ZVdoZWVsRXZlbnRBY3Rpdml0eUFmdGVyUHJvY2Vzc1N3YXAoKQogewogI2lmIEhB
VkUoQ1ZESVNQTEFZTElOSykKLSAgICBpZiAobV93aGVlbEV2ZW50QWN0aXZpdHlIeXN0ZXJlc2lz
LnN0YXRlKCkgPT0gUEFMOjpIeXN0ZXJlc2lzU3RhdGU6OlN0YXJ0ZWQpIHsKLSAgICAgICAgaWYg
KCFtX3Byb2Nlc3MtPmhhc0Nvbm5lY3Rpb24oKSB8fCAhbV9kaXNwbGF5SUQpCi0gICAgICAgICAg
ICByZXR1cm47Ci0KLSAgICAgICAgYm9vbCB3YW50c0Z1bGxTcGVlZFVwZGF0ZXMgPSB0cnVlOwot
ICAgICAgICBwcm9jZXNzKCkucHJvY2Vzc1Bvb2woKS5zZXREaXNwbGF5TGlua0ZvckRpc3BsYXlX
YW50c0Z1bGxTcGVlZFVwZGF0ZXMoKm1fcHJvY2Vzcy0+Y29ubmVjdGlvbigpLCAqbV9kaXNwbGF5
SUQsIHdhbnRzRnVsbFNwZWVkVXBkYXRlcyk7Ci0gICAgfQorICAgIHVwZGF0ZURpc3BsYXlMaW5r
RnJlcXVlbmN5KCk7CiAjZW5kaWYKIH0KIApAQCAtNjE2MSw2ICs2MTYwLDE0IEBAIHZvaWQgV2Vi
UGFnZVByb3h5OjpwYWdlRGlkU2Nyb2xsKGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBzY3JvbGxQ
b3NpdGlvbikKICNlbmRpZgogfQogCit2b2lkIFdlYlBhZ2VQcm94eTo6c2V0SGFzQWN0aXZlQW5p
bWF0ZWRTY3JvbGxzKGJvb2wgaXNSdW5uaW5nKQoreworICAgIG1faGFzQWN0aXZlQW5pbWF0ZWRT
Y3JvbGwgPSBpc1J1bm5pbmc7CisjaWYgSEFWRShDVkRJU1BMQVlMSU5LKQorICAgIHVwZGF0ZURp
c3BsYXlMaW5rRnJlcXVlbmN5KCk7CisjZW5kaWYKK30KKwogdm9pZCBXZWJQYWdlUHJveHk6OnJ1
bk9wZW5QYW5lbChGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgRnJhbWVJbmZvRGF0YSYmIGZyYW1l
SW5mbywgY29uc3QgRmlsZUNob29zZXJTZXR0aW5ncyYgc2V0dGluZ3MpCiB7CiAgICAgaWYgKG1f
b3BlblBhbmVsUmVzdWx0TGlzdGVuZXIpIHsKQEAgLTc5NjUsNiArNzk3Miw3IEBAIHZvaWQgV2Vi
UGFnZVByb3h5OjpyZXNldFN0YXRlQWZ0ZXJQcm9jZXNzRXhpdGVkKFByb2Nlc3NUZXJtaW5hdGlv
blJlYXNvbiB0ZXJtaW5hCiAgICAgbV9pc1NlcnZpY2VXb3JrZXJQYWdlID0gZmFsc2U7CiAKICAg
ICBtX3VzZXJTY3JpcHRzTm90aWZpZWQgPSBmYWxzZTsKKyAgICBtX2hhc0FjdGl2ZUFuaW1hdGVk
U2Nyb2xsID0gZmFsc2U7CiAKICAgICBtX2VkaXRvclN0YXRlID0gRWRpdG9yU3RhdGUoKTsKICAg
ICBtX2NhY2hlZEZvbnRBdHRyaWJ1dGVzQXRTZWxlY3Rpb25TdGFydC5yZXNldCgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCBjNWQ1NjMzYWJjODkyNDdlN2JjNDRl
ZGE0NmNhMjQ1YzA1Mjg1OTU0Li5mNjI2MzIwNGEyMmZmOTVkMzQ4ZGE1MWQxZjYzNjJhODlmNjIz
NWRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtNzE1LDYgKzcx
NSw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlcXVlc3RTY3JvbGwoY29uc3QgV2ViQ29yZTo6Rmxv
YXRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBzY3JvbGxP
cmlnaW4sIFdlYkNvcmU6OlNjcm9sbElzQW5pbWF0ZWQpOwogICAgIAogICAgIFdlYkNvcmU6OkZs
b2F0UG9pbnQgdmlld1Njcm9sbFBvc2l0aW9uKCkgY29uc3Q7CisgICAgCisgICAgdm9pZCBzZXRI
YXNBY3RpdmVBbmltYXRlZFNjcm9sbHMoYm9vbCBpc1J1bm5pbmcpOwogCiAgICAgdm9pZCBzZXRE
ZWxlZ2F0ZXNTY3JvbGxpbmcoYm9vbCBkZWxlZ2F0ZXNTY3JvbGxpbmcpIHsgbV9kZWxlZ2F0ZXNT
Y3JvbGxpbmcgPSBkZWxlZ2F0ZXNTY3JvbGxpbmc7IH0KICAgICBib29sIGRlbGVnYXRlc1Njcm9s
bGluZygpIGNvbnN0IHsgcmV0dXJuIG1fZGVsZWdhdGVzU2Nyb2xsaW5nOyB9CkBAIC0yMzc0LDEw
ICsyMzc2LDYgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZFJlbGVhc2VBbGxUb3VjaFBvaW50cygp
IHsgfQogI2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkpCiAKLSNpZiBFTkFCTEUoREFUQV9E
RVRFQ1RJT04pCi0gICAgUmV0YWluUHRyPE5TQXJyYXk+IG1fZGF0YURldGVjdGlvblJlc3VsdHM7
Ci0jZW5kaWYKLQogICAgIHZvaWQgcGVyZm9ybURyYWdDb250cm9sbGVyQWN0aW9uKERyYWdDb250
cm9sbGVyQWN0aW9uLCBXZWJDb3JlOjpEcmFnRGF0YSYsIGNvbnN0IFN0cmluZyYgZHJhZ1N0b3Jh
Z2VOYW1lLCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmJiwgVmVjdG9yPFNhbmRib3hFeHRlbnNp
b246OkhhbmRsZT4mJik7CiAKICAgICB2b2lkIHVwZGF0ZUJhY2tpbmdTdG9yZURpc2NhcmRhYmxl
U3RhdGUoKTsKQEAgLTIzOTEsNiArMjM4OSw3IEBAIHByaXZhdGU6CiAKICNpZiBIQVZFKENWRElT
UExBWUxJTkspCiAgICAgdm9pZCB3aGVlbEV2ZW50SHlzdGVyZXNpc1VwZGF0ZWQoUEFMOjpIeXN0
ZXJlc2lzU3RhdGUpOworICAgIHZvaWQgdXBkYXRlRGlzcGxheUxpbmtGcmVxdWVuY3koKTsKICNl
bmRpZgogICAgIHZvaWQgdXBkYXRlV2hlZWxFdmVudEFjdGl2aXR5QWZ0ZXJQcm9jZXNzU3dhcCgp
OwogCkBAIC0yNjM3LDcgKzI2MzYsNiBAQCBwcml2YXRlOgogCiAjaWYgUExBVEZPUk0oTUFDKQog
ICAgIGJvb2wgbV91c2VTeXN0ZW1BcHBlYXJhbmNlIHsgZmFsc2UgfTsKLQogICAgIGJvb2wgbV9h
Y2NlcHRzRmlyc3RNb3VzZSB7IGZhbHNlIH07CiAjZW5kaWYKIApAQCAtMjY1Nyw2ICsyNjU1LDEw
IEBAIHByaXZhdGU6CiAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkF1dGhlbnRpY2F0b3JDb29yZGlu
YXRvclByb3h5PiBtX2NyZWRlbnRpYWxzTWVzc2VuZ2VyOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUo
REFUQV9ERVRFQ1RJT04pCisgICAgUmV0YWluUHRyPE5TQXJyYXk+IG1fZGF0YURldGVjdGlvblJl
c3VsdHM7CisjZW5kaWYKKwogICAgIEhhc2hTZXQ8V2ViRWRpdENvbW1hbmRQcm94eSo+IG1fZWRp
dENvbW1hbmRTZXQ7CiAKICNpZiBQTEFURk9STShDT0NPQSkKQEAgLTI3NjMsNiArMjc2NSw4IEBA
IHByaXZhdGU6CiAKICAgICBib29sIG1faGFzVXBkYXRlZFJlbmRlcmluZ0FmdGVyRGlkQ29tbWl0
TG9hZCB7IHRydWUgfTsKIAorICAgIGJvb2wgbV9oYXNBY3RpdmVBbmltYXRlZFNjcm9sbCB7IGZh
bHNlIH07CisKICAgICBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgbV9kZWNpZGVQb2xpY3lGb3JS
ZXNwb25zZVJlcXVlc3Q7CiAgICAgYm9vbCBtX3Nob3VsZFN1cHByZXNzQXBwTGlua3NJbk5leHRO
YXZpZ2F0aW9uUG9saWN5RGVjaXNpb24geyBmYWxzZSB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KaW5kZXggNzJlNTZkZmZlNmU1ZjQw
YjNlYTUzMmVhZGUzZmQxOThkOGRlZjBlNS4uN2E5MzkxYTA3Nzk3NmVkMWMzYjZkMDc2ZjQ0YWFj
OTIxMzI5MGUxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5tZXNzYWdlcy5pbgpAQCAtNjcsNiArNjcsNyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkg
ewogCiAgICAgUnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKFdlYkNvcmU6OkZyYW1lSWRlbnRp
ZmllciBmcmFtZUlELCBzdHJ1Y3QgV2ViS2l0OjpGcmFtZUluZm9EYXRhIGZyYW1lSW5mbywgU3Ry
aW5nIG1lc3NhZ2UpIC0+IChib29sIHNob3VsZENsb3NlKSBTeW5jaHJvbm91cwogICAgIFBhZ2VE
aWRTY3JvbGwoV2ViQ29yZTo6SW50UG9pbnQgc2Nyb2xsUG9zaXRpb24pCisgICAgU2V0SGFzQWN0
aXZlQW5pbWF0ZWRTY3JvbGxzKGJvb2wgaGFzQWN0aXZlQW5pbWF0ZWRTY3JvbGxzKQogICAgIFJ1
bk9wZW5QYW5lbChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgc3RydWN0IFdlYktp
dDo6RnJhbWVJbmZvRGF0YSBmcmFtZUluZm8sIHN0cnVjdCBXZWJDb3JlOjpGaWxlQ2hvb3NlclNl
dHRpbmdzIHBhcmFtZXRlcnMpCiAgICAgU2hvd1NoYXJlU2hlZXQoc3RydWN0IFdlYkNvcmU6OlNo
YXJlRGF0YVdpdGhQYXJzZWRVUkwgc2hhcmVEYXRhKSAtPiAoYm9vbCBncmFudGVkKSBBc3luYwog
ICAgIFNob3dDb250YWN0UGlja2VyKHN0cnVjdCBXZWJDb3JlOjpDb250YWN0c1JlcXVlc3REYXRh
IHJlcXVlc3REYXRhKSAtPiAoc3RkOjpvcHRpb25hbDxWZWN0b3I8V2ViQ29yZTo6Q29udGFjdElu
Zm8+PiBpbmZvKSBBc3luYwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKaW5kZXggNWIzMmViYTIyMDhhNGQ4NDljNDU3MDcxYmNhNDM4OTYyNTIxNzBl
NS4uZGUzMWMzMGQ0OGJmZmEzYmE5MGQ4OTc3ZjBjMGMxZWY2YzQyN2Q5ZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yNjEwLDYgKzI2
MTAsOCBAQAogCQkwRkNEMDk0RjI0Qzc5RjVCMDAwQzZEMzkgLyogUmVtb3RlU2Nyb2xsaW5nVUlT
dGF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVTY3JvbGxpbmdVSVN0YXRlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGRDJDQjI1MjZDREQ3QTMwMDA4QjExQyAvKiBJZGVudGlm
aWVyVHlwZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSWRlbnRpZmllclR5cGVzLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTBGRENEN0Y2MUQ0N0U5MkEwMDlGMDhCQyAvKiBMb2dJbml0aWFs
aXphdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMb2dJbml0aWFsaXph
dGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRkUyN0ZBRTI3MTRGQzE1MDAw
M0FBQUUgLyogVGlsZWRDb3JlQW5pbWF0aW9uU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gVGlsZWRDb3JlQW5pbWF0aW9uU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEZFMjdGQUYyNzE0RkMxNTAwMDNBQUFFIC8qIFRpbGVk
Q29yZUFuaW1hdGlvblNjcm9sbGluZ0Nvb3JkaW5hdG9yLm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRo
ID0gVGlsZWRDb3JlQW5pbWF0aW9uU2Nyb2xsaW5nQ29vcmRpbmF0b3IubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTBGRjI0QTJCMTg3OUU0QkMwMDNBQkYwQyAvKiBSZW1vdGVMYXll
clRyZWVEcmF3aW5nQXJlYVByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHlNZXNz
YWdlUmVjZWl2ZXIuY3BwOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVMYXll
clRyZWVEcmF3aW5nQXJlYVByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9IEJV
SUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJMEZGMjRBMkIxODc5RTRCQzAwM0FCRjBEIC8qIFJlbW90
ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyTWVzc2FnZVJl
Y2VpdmVyLmNwcDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQ2FwdHVyZVNh
bXBsZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVD
VFNfRElSOyB9OwogCQkwRkYyNEEyQzE4NzlFNEJDMDAzQUJGMEMgLyogUmVtb3RlTGF5ZXJUcmVl
RHJhd2luZ0FyZWFQcm94eU1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFt
ZSA9IFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHlNZXNzYWdlcy5oOyBwYXRoID0gRGVy
aXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5TWVzc2Fn
ZXMuaDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKQEAgLTExMDcwLDYgKzEx
MDcyLDggQEAKIAkJCQk3QzZEMzdGQTE3MkY1NTVGMDA5RDI4NDcgLyogUGFnZUJhbm5lck1hYy5t
bSAqLywKIAkJCQkxQUFGMjYzNzE0Njg3QzM5MDA0QTFFOEEgLyogVGlsZWRDb3JlQW5pbWF0aW9u
RHJhd2luZ0FyZWEuaCAqLywKIAkJCQkxQUFGMjYzNjE0Njg3QzM5MDA0QTFFOEEgLyogVGlsZWRD
b3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEubW0gKi8sCisJCQkJMEZFMjdGQUUyNzE0RkMxNTAwMDNB
QUFFIC8qIFRpbGVkQ29yZUFuaW1hdGlvblNjcm9sbGluZ0Nvb3JkaW5hdG9yLmggKi8sCisJCQkJ
MEZFMjdGQUYyNzE0RkMxNTAwMDNBQUFFIC8qIFRpbGVkQ29yZUFuaW1hdGlvblNjcm9sbGluZ0Nv
b3JkaW5hdG9yLm1tICovLAogCQkJCUJDOTYzRDZEMTEzREQxQTUwMDU3NEJFMiAvKiBXZWJQYWdl
TWFjLm1tICovLAogCQkJCTI5Q0Q1NUE4MTI4RTI5NEYwMDEzM0M4NSAvKiBXS0FjY2Vzc2liaWxp
dHlXZWJQYWdlT2JqZWN0QmFzZS5oICovLAogCQkJCTI5Q0Q1NUE5MTI4RTI5NEYwMDEzM0M4NSAv
KiBXS0FjY2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0QmFzZS5tbSAqLywKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3Bw
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5jcHAKaW5kZXggMmIzYjJkZTU4N2M0ZDFlNWY4Yzc5M2VkNzc1MDgxY2IwNjEyOWZkNy4uYTQ4
MWMwZTgxODRjMmJhMmEwNWEyZTYwMjE2NjQ1ZmNjMjVmNDJlYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5jcHAKQEAgLTQyLDYgKzQyLDcgQEAKICNpbmNsdWRlICJQbHVnaW5WaWV3LmgiCiAjaW5jbHVk
ZSAiUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmgiCiAjaW5jbHVkZSAiU2hhcmVkQnVmZmVy
Q29weS5oIgorI2luY2x1ZGUgIlRpbGVkQ29yZUFuaW1hdGlvblNjcm9sbGluZ0Nvb3JkaW5hdG9y
LmgiCiAjaW5jbHVkZSAiVXNlckRhdGEuaCIKICNpbmNsdWRlICJXZWJDb2xvckNob29zZXIuaCIK
ICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKQEAgLTEwMTIsMTIgKzEwMTMsMTYg
QEAgUmVmUHRyPFNjcm9sbGluZ0Nvb3JkaW5hdG9yPiBXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVNj
cm9sbGluZ0Nvb3JkaW5hdG9yKFBhZ2UmIHAKIHsKICAgICBBU1NFUlRfVU5VU0VEKHBhZ2UsIG1f
cGFnZS5jb3JlUGFnZSgpID09ICZwYWdlKTsKICNpZiBQTEFURk9STShDT0NPQSkKLSAgICBpZiAo
bV9wYWdlLmRyYXdpbmdBcmVhKCktPnR5cGUoKSAhPSBEcmF3aW5nQXJlYVR5cGU6OlJlbW90ZUxh
eWVyVHJlZSkKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgcmV0dXJuIFJlbW90ZVNjcm9s
bGluZ0Nvb3JkaW5hdG9yOjpjcmVhdGUoJm1fcGFnZSk7Ci0jZWxzZQotICAgIHJldHVybiBudWxs
cHRyOworICAgIHN3aXRjaCAobV9wYWdlLmRyYXdpbmdBcmVhKCktPnR5cGUoKSkgeworI2lmICFQ
TEFURk9STShJT1NfRkFNSUxZKQorICAgIGNhc2UgRHJhd2luZ0FyZWFUeXBlOjpUaWxlZENvcmVB
bmltYXRpb246CisgICAgICAgIHJldHVybiBUaWxlZENvcmVBbmltYXRpb25TY3JvbGxpbmdDb29y
ZGluYXRvcjo6Y3JlYXRlKCZtX3BhZ2UpOwogI2VuZGlmCisgICAgY2FzZSBEcmF3aW5nQXJlYVR5
cGU6OlJlbW90ZUxheWVyVHJlZToKKyAgICAgICAgcmV0dXJuIFJlbW90ZVNjcm9sbGluZ0Nvb3Jk
aW5hdG9yOjpjcmVhdGUoJm1fcGFnZSk7CisgICAgfQorI2VuZGlmCisgICAgcmV0dXJuIG51bGxw
dHI7CiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmNwcAppbmRleCBkOTQ3NmY3ZjA2YWFkMDQ1Mzk3NjYzYzVlODllZDE3MjU5MzA2ZDMxLi4y
MmMzMzE4YjIyMWE2YmVkZmFiMDI0ZWNlMmNmMDllZmY1MDkzMzYxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtMjcyOSw2ICsyNzI5LDExIEBA
IHZvaWQgV2ViUGFnZTo6cGFnZVN0b3BwZWRTY3JvbGxpbmcoKQogICAgICAgICBmcmFtZS0+bG9h
ZGVyKCkuaGlzdG9yeSgpLnNhdmVTY3JvbGxQb3NpdGlvbkFuZFZpZXdTdGF0ZVRvSXRlbShmcmFt
ZS0+bG9hZGVyKCkuaGlzdG9yeSgpLmN1cnJlbnRJdGVtKCkpOwogfQogCit2b2lkIFdlYlBhZ2U6
OnNldEhhc0FjdGl2ZUFuaW1hdGVkU2Nyb2xscyhib29sIGhhc0FjdGl2ZUFuaW1hdGVkU2Nyb2xs
cykKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlNldEhhc0FjdGl2ZUFuaW1h
dGVkU2Nyb2xscyhoYXNBY3RpdmVBbmltYXRlZFNjcm9sbHMpKTsKK30KKwogI2lmIEVOQUJMRShD
T05URVhUX01FTlVTKQogV2ViQ29udGV4dE1lbnUmIFdlYlBhZ2U6OmNvbnRleHRNZW51KCkKIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCA3N2JmMDJl
N2FlZmExMzQxZDJmODM2M2EyZGY0OGY4MzBmMTVkMjgyLi5mZTI5MGNmYzRkZDZkMzI5MzE3YzE5
NDFhODJhOGVjNTdiMzRhMzQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5oCkBAIC02MTcsNyArNjE3LDkgQEAgcHVibGljOgogICAgIHZvaWQgbGlzdGVuRm9y
TGF5b3V0TWlsZXN0b25lcyhPcHRpb25TZXQ8V2ViQ29yZTo6TGF5b3V0TWlsZXN0b25lPik7CiAK
ICAgICB2b2lkIHNldFN1cHByZXNzU2Nyb2xsYmFyQW5pbWF0aW9ucyhib29sKTsKLSAgICAKKwor
ICAgIHZvaWQgc2V0SGFzQWN0aXZlQW5pbWF0ZWRTY3JvbGxzKGJvb2wpOworCiAgICAgdm9pZCBz
ZXRFbmFibGVWZXJ0aWNhbFJ1YmJlckJhbmRpbmcoYm9vbCk7CiAgICAgdm9pZCBzZXRFbmFibGVI
b3Jpem9udGFsUnViYmVyQmFuZGluZyhib29sKTsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25TY3JvbGxpbmdD
b29yZGluYXRvci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVk
Q29yZUFuaW1hdGlvblNjcm9sbGluZ0Nvb3JkaW5hdG9yLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmU1NTZlNDE0
MjIyM2I5YTcyODRjNmExMzNiZTI2N2EwYWRkMjljMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25TY3JvbGxp
bmdDb29yZGluYXRvci5oCkBAIC0wLDAgKzEsNTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9u
Y2UKKworI2lmIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpICYmIEVOQUJMRShTQ1JPTExJTkdfVEhS
RUFEKQorCisjaW5jbHVkZSA8V2ViQ29yZS9TY3JvbGxpbmdDb29yZGluYXRvck1hYy5oPgorCitu
YW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViUGFnZTsKKworY2xhc3MgVGlsZWRDb3JlQW5p
bWF0aW9uU2Nyb2xsaW5nQ29vcmRpbmF0b3IgZmluYWwgOiBwdWJsaWMgV2ViQ29yZTo6U2Nyb2xs
aW5nQ29vcmRpbmF0b3JNYWMgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8VGlsZWRDb3JlQW5p
bWF0aW9uU2Nyb2xsaW5nQ29vcmRpbmF0b3I+IGNyZWF0ZShXZWJQYWdlKiBwYWdlKQorICAgIHsK
KyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVGlsZWRDb3JlQW5pbWF0aW9uU2Nyb2xsaW5n
Q29vcmRpbmF0b3IocGFnZSkpOworICAgIH0KKworcHJpdmF0ZToKKyAgICBleHBsaWNpdCBUaWxl
ZENvcmVBbmltYXRpb25TY3JvbGxpbmdDb29yZGluYXRvcihXZWJQYWdlKik7CisgICAgflRpbGVk
Q29yZUFuaW1hdGlvblNjcm9sbGluZ0Nvb3JkaW5hdG9yKCk7CisKKyAgICB2b2lkIHBhZ2VEZXN0
cm95ZWQoKSBmaW5hbDsKKyAgICB2b2lkIGhhc05vZGVXaXRoQW5pbWF0ZWRTY3JvbGxDaGFuZ2Vk
KGJvb2wpIGZpbmFsOworICAgIAorICAgIFdlYlBhZ2UqIG1fcGFnZTsKK307CisKK30gLy8gbmFt
ZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEFTWU5DX1NDUk9MTElORykgJiYgRU5B
QkxFKFNDUk9MTElOR19USFJFQUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uU2Nyb2xsaW5nQ29vcmRpbmF0b3IubW0g
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9u
U2Nyb2xsaW5nQ29vcmRpbmF0b3IubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWQ0ZjUzODg3OWE3NDUxMTQ5MmE0
ZmE3OGFjYzkzZDRhMzQyZWE3YQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25TY3JvbGxpbmdDb29yZGluYXRv
ci5tbQpAQCAtMCwwICsxLDU5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisK
KyNpZiBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKSAmJiBFTkFCTEUoU0NST0xMSU5HX1RIUkVBRCkK
KyNpbXBvcnQgIlRpbGVkQ29yZUFuaW1hdGlvblNjcm9sbGluZ0Nvb3JkaW5hdG9yLmgiCisKKyNp
bXBvcnQgIldlYlBhZ2UuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1RpbGVkQ29yZUFuaW1h
dGlvblNjcm9sbGluZ0Nvb3JkaW5hdG9yOjpUaWxlZENvcmVBbmltYXRpb25TY3JvbGxpbmdDb29y
ZGluYXRvcihXZWJQYWdlKiBwYWdlKQorICAgIDogU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWMocGFn
ZS0+Y29yZVBhZ2UoKSkKKyAgICAsIG1fcGFnZShwYWdlKQoreworfQorCitUaWxlZENvcmVBbmlt
YXRpb25TY3JvbGxpbmdDb29yZGluYXRvcjo6flRpbGVkQ29yZUFuaW1hdGlvblNjcm9sbGluZ0Nv
b3JkaW5hdG9yKCkgPSBkZWZhdWx0OworCit2b2lkIFRpbGVkQ29yZUFuaW1hdGlvblNjcm9sbGlu
Z0Nvb3JkaW5hdG9yOjpwYWdlRGVzdHJveWVkKCkKK3sKKyAgICBTY3JvbGxpbmdDb29yZGluYXRv
ck1hYzo6cGFnZURlc3Ryb3llZCgpOworICAgIG1fcGFnZSA9IG51bGxwdHI7Cit9CisKK3ZvaWQg
VGlsZWRDb3JlQW5pbWF0aW9uU2Nyb2xsaW5nQ29vcmRpbmF0b3I6Omhhc05vZGVXaXRoQW5pbWF0
ZWRTY3JvbGxDaGFuZ2VkKGJvb2wgaGF2ZUFuaW1hdGVkU2Nyb2xsaW5nTm9kZXMpCit7CisgICAg
aWYgKCFtX3BhZ2UpCisgICAgICAgIHJldHVybjsKKworICAgIG1fcGFnZS0+c2V0SGFzQWN0aXZl
QW5pbWF0ZWRTY3JvbGxzKGhhdmVBbmltYXRlZFNjcm9sbGluZ05vZGVzKTsKK30KKworfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKSAmJiBF
TkFCTEUoU0NST0xMSU5HX1RIUkVBRCkK
</data>
<flag name="commit-queue"
          id="465075"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440973</attachid>
            <date>2021-10-12 13:04:32 -0700</date>
            <delta_ts>2021-10-12 13:04:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231593-20211012130431.patch</filename>
            <type>text/plain</type>
            <size>24726</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzOTg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmM2ZDE1ZWRkMTNjYWUy
ZThiMzBkYTg2ZTA1NGY0MjE4YjFmZmFiMC4uNDhlODkyMjY0Nzk1NGFiNDM0MTU5MmE0NWYyMDQz
MjUzNjZhZDZlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDIxLTEwLTEyICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFNjcm9sbGluZyB0
aHJlYWQgYW5pbWF0aW9ucyBuZWVkIHRvIGNvbW1pdCBsYXllcnMgb24gdGhlIHNjcm9sbGluZyB0
aHJlYWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIz
MTU5MworCisgICAgICAgIFJldmlld2VkIGJ5IFRpbSBIb3J0b24uCisKKyAgICAgICAgRXhwb3J0
IHNvbWUgQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvciBmdW5jdGlvbnMuCisKKyAgICAgICAgKiBX
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGFnZS9zY3JvbGxp
bmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5oOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5n
L21hYy9TY3JvbGxpbmdDb29yZGluYXRvck1hYy5oOgorCiAyMDIxLTEwLTEyICBTaW1vbiBGcmFz
ZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEhhdmUgdGhlIFNjcm9sbGlu
Z1RyZWUgdHJhY2sgbm9kZXMgd2l0aCBhbmltYXRlZCBzY3JvbGxzCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDMzNTI3
MDM1Y2M1N2RlM2E2MDMxMjVkY2UyMTY1NmM4NDY2MDA1ZmUuLmU1NTBjZmNiZDZkMTlhOGZlNDE4
YjlkY2JlNzFiMTEyYzkxMjNhNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTEgQEAKKzIwMjEtMTAt
MTIgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgU2Ny
b2xsaW5nIHRocmVhZCBhbmltYXRpb25zIG5lZWQgdG8gY29tbWl0IGxheWVycyBvbiB0aGUgc2Ny
b2xsaW5nIHRocmVhZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjMxNTkzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgVGltIEhvcnRvbi4KKyAgICAgICAg
CisgICAgICAgIFNjcm9sbCBhbmltYXRpb25zIHdlcmUgcnVubmluZyBvbiB0aGUgc2Nyb2xsaW5n
IHRocmVhZCAoaW4gdGhhdCB0aGUgdGltZXJzIHdlcmUgZmlyaW5nIG9uCisgICAgICAgIHRoYXQg
dGhyZWFkKSwgYnV0IHRoZSBzY3JvbGxpbmcgdGhyZWFkIHdhc24ndCBjaGFuZ2luZyBsYXllciBw
b3NpdGlvbnMsIHNvIHRob3NlIGFuaW1hdGlvbnMKKyAgICAgICAgd2VyZW4ndCBzbW9vdGguCisK
KyAgICAgICAgVGhpcyBoYXBwZW5lZCBiZWNhdXNlIG9mIGFuIGV4aXN0aW5nIGFzc3VtcHRpb24g
dGhhdCB3ZSBvbmx5IGNvbW1pdCBsYXllciBjaGFuZ2VzIG9uIHRoZQorICAgICAgICBzY3JvbGxp
bmcgdGhyZWFkIGluIHJlc3BvbnNlIHRvIHdoZWVsIGV2ZW50czsgdGhlIG1hY2hpbmVyeSBhcm91
bmQKKyAgICAgICAgVGhyZWFkZWRTY3JvbGxpbmdUcmVlOjpkaXNwbGF5RGlkUmVmcmVzaCgpIHdh
cyBhbGwgZ2F0ZWQgb24gaGF2aW5nIHJlY2VudGx5IHJlY2VpdmVkIGEgd2hlZWwKKyAgICAgICAg
ZXZlbnQuCisKKyAgICAgICAgVG8gZml4IHRoaXMgd2UgbmVlZCB0byBjb21tdW5pY2F0ZSBiYWNr
IHRvIHRoZSBVSSBwcm9jZXNzIHdoZW4gdGhlcmUgYXJlIGFjdGl2ZSBzY3JvbGwKKyAgICAgICAg
YW5pbWF0aW9ucyBydW5uaW5nLiBUaGUgU2Nyb2xsaW5nVHJlZSBhbHJlYWR5IHRyYWNrcyB0aGlz
LCBhbmQgdGhlIHZpcnR1YWwKKyAgICAgICAgaGFzTm9kZVdpdGhBbmltYXRlZFNjcm9sbENoYW5n
ZWQoKSBvbiBTY3JvbGxpbmdDb29yZGluYXRvciBpcyBjYWxsZWQgZm9yIGl0LiBUbyBnZXQgdGhp
cyB0bworICAgICAgICB0aGUgVUkgcHJvY2VzcyBvbiBtYWNPUywgc3ViY2xhc3MgU2Nyb2xsaW5n
Q29vcmRpbmF0b3JNYWMgaW4gV2ViS2l0MiBhbmQgb3ZlcnJpZGUKKyAgICAgICAgaGFzTm9kZVdp
dGhBbmltYXRlZFNjcm9sbENoYW5nZWQoKSB0byBjYWxsIGludG8gV2ViUGFnZSwgd2hpY2ggdGhl
biBJUENzIHRvIFdlYlBhZ2VQcm94eS4KKyAgICAgICAgVGhpcyBlbmRzIHVwIGNhbGxpbmcgc2V0
RGlzcGxheUxpbmtGb3JEaXNwbGF5V2FudHNGdWxsU3BlZWRVcGRhdGVzKCkgc28gdGhhdCBrbm93
IHRvIElQQworICAgICAgICBkaXNwbGF5RGlkUmVmcmVzaCB0byBFdmVudERpc3BhdGNoZXIgb2Zm
IHRoZSBtYWluIHRocmVhZCAoYXMgd2UgZG8gZm9yIHdoZWVsIGV2ZW50cykuCisKKyAgICAgICAg
U2Nyb2xsIGFuaW1hdGlvbnMgYXJlIHN0aWxsIGJhc2VkIG9uIGEgNjBIeiB0aW1lciwgYnV0IGlu
IGZ1dHVyZSBzaG91bGQgYmUgZHJpdmVuIGJ5CisgICAgICAgIGRpc3BsYXlEaWRSZWZyZXNoKCkg
bm90aWZpY2F0aW9ucy4KKworICAgICAgICAqIFNvdXJjZXNDb2NvYS50eHQ6CisgICAgICAgICog
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94
eTo6d2hlZWxFdmVudEh5c3RlcmVzaXNVcGRhdGVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZVByb3h5Ojp1cGRhdGVEaXNwbGF5TGlua0ZyZXF1ZW5jeSk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2VQcm94eTo6dXBkYXRlV2hlZWxFdmVudEFjdGl2aXR5QWZ0ZXJQcm9jZXNzU3dhcCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6c2V0SGFzQWN0aXZlQW5pbWF0ZWRTY3JvbGxz
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpyZXNldFN0YXRlQWZ0ZXJQcm9jZXNz
RXhpdGVkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgICog
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJLaXQueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVu
dDo6Y3JlYXRlU2Nyb2xsaW5nQ29vcmRpbmF0b3IgY29uc3QpOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6c2V0SGFz
QWN0aXZlQW5pbWF0ZWRTY3JvbGxzKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0
aW9uU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ0Nvb3JkaW5hdG9yTWFjLmguCisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25TY3JvbGxpbmdDb29yZGluYXRv
ci5tbTogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9s
bGluZ0Nvb3JkaW5hdG9yTWFjLmguCisgICAgICAgIChXZWJLaXQ6OlRpbGVkQ29yZUFuaW1hdGlv
blNjcm9sbGluZ0Nvb3JkaW5hdG9yOjpUaWxlZENvcmVBbmltYXRpb25TY3JvbGxpbmdDb29yZGlu
YXRvcik6CisgICAgICAgIChXZWJLaXQ6OlRpbGVkQ29yZUFuaW1hdGlvblNjcm9sbGluZ0Nvb3Jk
aW5hdG9yOjpwYWdlRGVzdHJveWVkKToKKyAgICAgICAgKFdlYktpdDo6VGlsZWRDb3JlQW5pbWF0
aW9uU2Nyb2xsaW5nQ29vcmRpbmF0b3I6Omhhc05vZGVXaXRoQW5pbWF0ZWRTY3JvbGxDaGFuZ2Vk
KToKKwogMjAyMS0xMC0xMiAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQu
b3JnPgogCiAgICAgICAgIFJlbW92ZSBub24tSEFWRShDRk5FVFdPUktfTlNVUkxTRVNTSU9OX1NU
UklDVFJVU1RFVkFMVUFURSkgY29kZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDU5ZDZlZWY3MTBiMzljMjhhYzE0YjI3ZjUzMTkw
YzUyZTg0YzkzMDcuLmVhYThjMGNjOTU4YjU4YWI0OGQ2YTNlZDczMTQ1NzU3MzdkMjMyMjcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
QEAgLTI5MDgsNyArMjkwOCw3IEBACiAJCTkzOENGMjQyMjZCQjcyOEMwMEMwOTI0MCAvKiBXZWJT
b2NrZXQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTdBQUJDRkYxNEZBMDlENTAwNzQ1N0FFIC8qIFdlYlNvY2tldC5jcHAgKi87IH07CiAJCTkzOEU2
NUYxMDlGMDk4NDAwMDhBNDhFQyAvKiBKU0hUTUxFbGVtZW50V3JhcHBlckZhY3RvcnkuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzOEU2NUYwMDlGMDk4
NDAwMDhBNDhFQyAvKiBKU0hUTUxFbGVtZW50V3JhcHBlckZhY3RvcnkuaCAqLzsgfTsKIAkJOTM4
RTY2NjIwOUYwOUI4NzAwOEE0OEVDIC8qIEpTSFRNTENhbnZhc0VsZW1lbnQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzOEU2NjYxMDlGMDlCODcwMDhB
NDhFQyAvKiBKU0hUTUxDYW52YXNFbGVtZW50LmggKi87IH07Ci0JCTkzOTFBOTkxMTYyNzQ2Q0Iw
MDI5NzMzMCAvKiBTY3JvbGxpbmdDb29yZGluYXRvck1hYy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM5MUE5OTAxNjI3NDZDQjAwMjk3MzMwIC8qIFNj
cm9sbGluZ0Nvb3JkaW5hdG9yTWFjLmggKi87IH07CisJCTkzOTFBOTkxMTYyNzQ2Q0IwMDI5NzMz
MCAvKiBTY3JvbGxpbmdDb29yZGluYXRvck1hYy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOTM5MUE5OTAxNjI3NDZDQjAwMjk3MzMwIC8qIFNjcm9sbGlu
Z0Nvb3JkaW5hdG9yTWFjLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJOTM5MUE5OUQxNjI5RDcwMDAwMjk3MzMwIC8qIFNjcm9sbGluZ1RyZWVTY3Jv
bGxpbmdOb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA5MzkxQTk5QjE2MjlENzAwMDAyOTczMzAgLyogU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5Mzky
MTQ2OTE4QTZENzkxMDAwRUU2ODggLyogVGV4dEl0ZXJhdG9yQmVoYXZpb3IuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzOTIxNDY4MThBNkQ3OTEwMDBF
RTY4OCAvKiBUZXh0SXRlcmF0b3JCZWhhdmlvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzOTJGMTQyMEFEMTg1RjQwMDY5MUJENCAvKiBSZW5k
ZXJDb3VudGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA5MzkyRjE0MTBBRDE4NUY0MDA2OTFCRDQgLyogUmVuZGVyQ291bnRlci5oICovOyB9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29y
ZGluYXRvci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdD
b29yZGluYXRvci5oCmluZGV4IDBiZDhhYzRiYTc3MGY1NzE1YTk3NTJkMzljMzYxYmEzZmMxNDdm
ZjAuLmI3YmY2NDVkZTM3ZTVhMTE1MGVjNjkxZjVjOTFlY2IzNWI5ZTVmYTUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3Iu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3Jk
aW5hdG9yLmgKQEAgLTEzMiwxMSArMTMyLDExIEBAIHByaXZhdGU6CiAgICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCBzY3JvbGxCeVNpbXVsYXRpbmdXaGVlbEV2ZW50Rm9yVGVzdGluZyhTY3JvbGxpbmdO
b2RlSUQsIEZsb2F0U2l6ZSkgZmluYWw7CiAKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIGlzVXNl
clNjcm9sbEluUHJvZ3Jlc3MoU2Nyb2xsaW5nTm9kZUlEKSBjb25zdCBvdmVycmlkZTsKLSAgICBi
b29sIGlzUnViYmVyQmFuZEluUHJvZ3Jlc3MoU2Nyb2xsaW5nTm9kZUlEKSBjb25zdCBvdmVycmlk
ZTsKKyAgICBXRUJDT1JFX0VYUE9SVCBib29sIGlzUnViYmVyQmFuZEluUHJvZ3Jlc3MoU2Nyb2xs
aW5nTm9kZUlEKSBjb25zdCBvdmVycmlkZTsKIAogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgaXNT
Y3JvbGxTbmFwSW5Qcm9ncmVzcyhTY3JvbGxpbmdOb2RlSUQpIGNvbnN0IG92ZXJyaWRlOwogCi0g
ICAgdm9pZCBzZXRTY3JvbGxQaW5uaW5nQmVoYXZpb3IoU2Nyb2xsUGlubmluZ0JlaGF2aW9yKSBv
dmVycmlkZTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFNjcm9sbFBpbm5pbmdCZWhhdmlv
cihTY3JvbGxQaW5uaW5nQmVoYXZpb3IpIG92ZXJyaWRlOwogCiAgICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCByZWNvbmNpbGVWaWV3cG9ydENvbnN0cmFpbmVkTGF5ZXJQb3NpdGlvbnMoU2Nyb2xsaW5n
Tm9kZUlELCBjb25zdCBMYXlvdXRSZWN0JiB2aWV3cG9ydFJlY3QsIFNjcm9sbGluZ0xheWVyUG9z
aXRpb25BY3Rpb24pIG92ZXJyaWRlOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2Nyb2xsYWJs
ZUFyZWFTY3JvbGxiYXJMYXllckRpZENoYW5nZShTY3JvbGxhYmxlQXJlYSYsIFNjcm9sbGJhck9y
aWVudGF0aW9uKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Ny
b2xsaW5nL21hYy9TY3JvbGxpbmdDb29yZGluYXRvck1hYy5oIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ0Nvb3JkaW5hdG9yTWFjLmgKaW5kZXggMmJkODFmYzg0
ZjE5MGE2MjRlNjkyZGFkNmUzYjA1Y2FmYTIyZTIyNS4uNGNlOGQ2NWQ0NzM5NDkyYWVjNzNkOWI5
NTc3OTk0OGM3YmEyODgxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvbWFjL1Njcm9sbGluZ0Nvb3JkaW5hdG9yTWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ0Nvb3JkaW5hdG9yTWFjLmgKQEAgLTMxLDcgKzMxLDcg
QEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBTY3JvbGxpbmdDb29yZGluYXRvck1h
YyA6IHB1YmxpYyBBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yIHsKK2NsYXNzIFdFQkNPUkVfRVhQ
T1JUIFNjcm9sbGluZ0Nvb3JkaW5hdG9yTWFjIDogcHVibGljIEFzeW5jU2Nyb2xsaW5nQ29vcmRp
bmF0b3IgewogcHVibGljOgogICAgIGV4cGxpY2l0IFNjcm9sbGluZ0Nvb3JkaW5hdG9yTWFjKFBh
Z2UqKTsKICAgICB2aXJ0dWFsIH5TY3JvbGxpbmdDb29yZGluYXRvck1hYygpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2Vz
Q29jb2EudHh0CmluZGV4IDM3MjJlZjhmNWYzZWM3YzBjYWJmNWY3MDllMjlkNTZiZGNjNzFiNzMu
LjI3YjU2NzZmM2RjZTFhNGY1OGZlMjJjMzE0MDExOTZhZDI3ZTg1ODUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXND
b2NvYS50eHQKQEAgLTcwMiw2ICs3MDIsNyBAQCBXZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBh
Z2VJT1MubW0KIAogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9EaXNwbGF5UmVmcmVzaE1vbml0b3JN
YWMuY3BwCiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BhZ2VCYW5uZXJNYWMubW0KK1dlYlByb2Nl
c3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uU2Nyb2xsaW5nQ29vcmRpbmF0b3IubW0K
IFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEubW0K
IFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5tbQogV2ViUHJvY2Vzcy9XZWJQYWdl
L21hYy9XS0FjY2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0QmFzZS5tbQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggYTk2YWJhNzM5MmQ1NjJhOGE3NGNkZWY5Mzk1
ZTAxYTcyMDljOWY0Zi4uZWYxMDc4OGU5NjJhM2MyYmRlZTdiYjkzYjUyNTM2ZWY1NGY0YTUxYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC0yODkwLDI2ICsy
ODkwLDI1IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpoYW5kbGVXaGVlbEV2ZW50KGNvbnN0IE5hdGl2
ZVdlYldoZWVsRXZlbnQmIGV2ZW50KQogfQogCiAjaWYgSEFWRShDVkRJU1BMQVlMSU5LKQotdm9p
ZCBXZWJQYWdlUHJveHk6OndoZWVsRXZlbnRIeXN0ZXJlc2lzVXBkYXRlZChQQUw6Okh5c3RlcmVz
aXNTdGF0ZSBzdGF0ZSkKK3ZvaWQgV2ViUGFnZVByb3h5Ojp3aGVlbEV2ZW50SHlzdGVyZXNpc1Vw
ZGF0ZWQoUEFMOjpIeXN0ZXJlc2lzU3RhdGUpCit7CisgICAgdXBkYXRlRGlzcGxheUxpbmtGcmVx
dWVuY3koKTsKK30KKwordm9pZCBXZWJQYWdlUHJveHk6OnVwZGF0ZURpc3BsYXlMaW5rRnJlcXVl
bmN5KCkKIHsKICAgICBpZiAoIW1fcHJvY2Vzcy0+aGFzQ29ubmVjdGlvbigpIHx8ICFtX2Rpc3Bs
YXlJRCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgYm9vbCB3YW50c0Z1bGxTcGVlZFVwZGF0ZXMg
PSBzdGF0ZSA9PSBQQUw6Okh5c3RlcmVzaXNTdGF0ZTo6U3RhcnRlZDsKLSAgICBwcm9jZXNzKCku
cHJvY2Vzc1Bvb2woKS5zZXREaXNwbGF5TGlua0ZvckRpc3BsYXlXYW50c0Z1bGxTcGVlZFVwZGF0
ZXMoKm1fcHJvY2Vzcy0+Y29ubmVjdGlvbigpLCAqbV9kaXNwbGF5SUQsIHdhbnRzRnVsbFNwZWVk
VXBkYXRlcyk7CisgICAgYm9vbCB3YW50c0Z1bGxTcGVlZFVwZGF0ZXNGb3JXaGVlbEV2ZW50cyA9
IG1fd2hlZWxFdmVudEFjdGl2aXR5SHlzdGVyZXNpcy5zdGF0ZSgpID09IFBBTDo6SHlzdGVyZXNp
c1N0YXRlOjpTdGFydGVkOworICAgIHByb2Nlc3MoKS5wcm9jZXNzUG9vbCgpLnNldERpc3BsYXlM
aW5rRm9yRGlzcGxheVdhbnRzRnVsbFNwZWVkVXBkYXRlcygqbV9wcm9jZXNzLT5jb25uZWN0aW9u
KCksICptX2Rpc3BsYXlJRCwgd2FudHNGdWxsU3BlZWRVcGRhdGVzRm9yV2hlZWxFdmVudHMgfHwg
bV9oYXNBY3RpdmVBbmltYXRlZFNjcm9sbCk7CiB9CiAjZW5kaWYKIAogdm9pZCBXZWJQYWdlUHJv
eHk6OnVwZGF0ZVdoZWVsRXZlbnRBY3Rpdml0eUFmdGVyUHJvY2Vzc1N3YXAoKQogewogI2lmIEhB
VkUoQ1ZESVNQTEFZTElOSykKLSAgICBpZiAobV93aGVlbEV2ZW50QWN0aXZpdHlIeXN0ZXJlc2lz
LnN0YXRlKCkgPT0gUEFMOjpIeXN0ZXJlc2lzU3RhdGU6OlN0YXJ0ZWQpIHsKLSAgICAgICAgaWYg
KCFtX3Byb2Nlc3MtPmhhc0Nvbm5lY3Rpb24oKSB8fCAhbV9kaXNwbGF5SUQpCi0gICAgICAgICAg
ICByZXR1cm47Ci0KLSAgICAgICAgYm9vbCB3YW50c0Z1bGxTcGVlZFVwZGF0ZXMgPSB0cnVlOwot
ICAgICAgICBwcm9jZXNzKCkucHJvY2Vzc1Bvb2woKS5zZXREaXNwbGF5TGlua0ZvckRpc3BsYXlX
YW50c0Z1bGxTcGVlZFVwZGF0ZXMoKm1fcHJvY2Vzcy0+Y29ubmVjdGlvbigpLCAqbV9kaXNwbGF5
SUQsIHdhbnRzRnVsbFNwZWVkVXBkYXRlcyk7Ci0gICAgfQorICAgIHVwZGF0ZURpc3BsYXlMaW5r
RnJlcXVlbmN5KCk7CiAjZW5kaWYKIH0KIApAQCAtNjE2MSw2ICs2MTYwLDE0IEBAIHZvaWQgV2Vi
UGFnZVByb3h5OjpwYWdlRGlkU2Nyb2xsKGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBzY3JvbGxQ
b3NpdGlvbikKICNlbmRpZgogfQogCit2b2lkIFdlYlBhZ2VQcm94eTo6c2V0SGFzQWN0aXZlQW5p
bWF0ZWRTY3JvbGxzKGJvb2wgaXNSdW5uaW5nKQoreworICAgIG1faGFzQWN0aXZlQW5pbWF0ZWRT
Y3JvbGwgPSBpc1J1bm5pbmc7CisjaWYgSEFWRShDVkRJU1BMQVlMSU5LKQorICAgIHVwZGF0ZURp
c3BsYXlMaW5rRnJlcXVlbmN5KCk7CisjZW5kaWYKK30KKwogdm9pZCBXZWJQYWdlUHJveHk6OnJ1
bk9wZW5QYW5lbChGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgRnJhbWVJbmZvRGF0YSYmIGZyYW1l
SW5mbywgY29uc3QgRmlsZUNob29zZXJTZXR0aW5ncyYgc2V0dGluZ3MpCiB7CiAgICAgaWYgKG1f
b3BlblBhbmVsUmVzdWx0TGlzdGVuZXIpIHsKQEAgLTc5NjUsNiArNzk3Miw3IEBAIHZvaWQgV2Vi
UGFnZVByb3h5OjpyZXNldFN0YXRlQWZ0ZXJQcm9jZXNzRXhpdGVkKFByb2Nlc3NUZXJtaW5hdGlv
blJlYXNvbiB0ZXJtaW5hCiAgICAgbV9pc1NlcnZpY2VXb3JrZXJQYWdlID0gZmFsc2U7CiAKICAg
ICBtX3VzZXJTY3JpcHRzTm90aWZpZWQgPSBmYWxzZTsKKyAgICBtX2hhc0FjdGl2ZUFuaW1hdGVk
U2Nyb2xsID0gZmFsc2U7CiAKICAgICBtX2VkaXRvclN0YXRlID0gRWRpdG9yU3RhdGUoKTsKICAg
ICBtX2NhY2hlZEZvbnRBdHRyaWJ1dGVzQXRTZWxlY3Rpb25TdGFydC5yZXNldCgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCBjNWQ1NjMzYWJjODkyNDdlN2JjNDRl
ZGE0NmNhMjQ1YzA1Mjg1OTU0Li5mNjI2MzIwNGEyMmZmOTVkMzQ4ZGE1MWQxZjYzNjJhODlmNjIz
NWRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtNzE1LDYgKzcx
NSw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlcXVlc3RTY3JvbGwoY29uc3QgV2ViQ29yZTo6Rmxv
YXRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBzY3JvbGxP
cmlnaW4sIFdlYkNvcmU6OlNjcm9sbElzQW5pbWF0ZWQpOwogICAgIAogICAgIFdlYkNvcmU6OkZs
b2F0UG9pbnQgdmlld1Njcm9sbFBvc2l0aW9uKCkgY29uc3Q7CisgICAgCisgICAgdm9pZCBzZXRI
YXNBY3RpdmVBbmltYXRlZFNjcm9sbHMoYm9vbCBpc1J1bm5pbmcpOwogCiAgICAgdm9pZCBzZXRE
ZWxlZ2F0ZXNTY3JvbGxpbmcoYm9vbCBkZWxlZ2F0ZXNTY3JvbGxpbmcpIHsgbV9kZWxlZ2F0ZXNT
Y3JvbGxpbmcgPSBkZWxlZ2F0ZXNTY3JvbGxpbmc7IH0KICAgICBib29sIGRlbGVnYXRlc1Njcm9s
bGluZygpIGNvbnN0IHsgcmV0dXJuIG1fZGVsZWdhdGVzU2Nyb2xsaW5nOyB9CkBAIC0yMzc0LDEw
ICsyMzc2LDYgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZFJlbGVhc2VBbGxUb3VjaFBvaW50cygp
IHsgfQogI2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkpCiAKLSNpZiBFTkFCTEUoREFUQV9E
RVRFQ1RJT04pCi0gICAgUmV0YWluUHRyPE5TQXJyYXk+IG1fZGF0YURldGVjdGlvblJlc3VsdHM7
Ci0jZW5kaWYKLQogICAgIHZvaWQgcGVyZm9ybURyYWdDb250cm9sbGVyQWN0aW9uKERyYWdDb250
cm9sbGVyQWN0aW9uLCBXZWJDb3JlOjpEcmFnRGF0YSYsIGNvbnN0IFN0cmluZyYgZHJhZ1N0b3Jh
Z2VOYW1lLCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmJiwgVmVjdG9yPFNhbmRib3hFeHRlbnNp
b246OkhhbmRsZT4mJik7CiAKICAgICB2b2lkIHVwZGF0ZUJhY2tpbmdTdG9yZURpc2NhcmRhYmxl
U3RhdGUoKTsKQEAgLTIzOTEsNiArMjM4OSw3IEBAIHByaXZhdGU6CiAKICNpZiBIQVZFKENWRElT
UExBWUxJTkspCiAgICAgdm9pZCB3aGVlbEV2ZW50SHlzdGVyZXNpc1VwZGF0ZWQoUEFMOjpIeXN0
ZXJlc2lzU3RhdGUpOworICAgIHZvaWQgdXBkYXRlRGlzcGxheUxpbmtGcmVxdWVuY3koKTsKICNl
bmRpZgogICAgIHZvaWQgdXBkYXRlV2hlZWxFdmVudEFjdGl2aXR5QWZ0ZXJQcm9jZXNzU3dhcCgp
OwogCkBAIC0yNjM3LDcgKzI2MzYsNiBAQCBwcml2YXRlOgogCiAjaWYgUExBVEZPUk0oTUFDKQog
ICAgIGJvb2wgbV91c2VTeXN0ZW1BcHBlYXJhbmNlIHsgZmFsc2UgfTsKLQogICAgIGJvb2wgbV9h
Y2NlcHRzRmlyc3RNb3VzZSB7IGZhbHNlIH07CiAjZW5kaWYKIApAQCAtMjY1Nyw2ICsyNjU1LDEw
IEBAIHByaXZhdGU6CiAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkF1dGhlbnRpY2F0b3JDb29yZGlu
YXRvclByb3h5PiBtX2NyZWRlbnRpYWxzTWVzc2VuZ2VyOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUo
REFUQV9ERVRFQ1RJT04pCisgICAgUmV0YWluUHRyPE5TQXJyYXk+IG1fZGF0YURldGVjdGlvblJl
c3VsdHM7CisjZW5kaWYKKwogICAgIEhhc2hTZXQ8V2ViRWRpdENvbW1hbmRQcm94eSo+IG1fZWRp
dENvbW1hbmRTZXQ7CiAKICNpZiBQTEFURk9STShDT0NPQSkKQEAgLTI3NjMsNiArMjc2NSw4IEBA
IHByaXZhdGU6CiAKICAgICBib29sIG1faGFzVXBkYXRlZFJlbmRlcmluZ0FmdGVyRGlkQ29tbWl0
TG9hZCB7IHRydWUgfTsKIAorICAgIGJvb2wgbV9oYXNBY3RpdmVBbmltYXRlZFNjcm9sbCB7IGZh
bHNlIH07CisKICAgICBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgbV9kZWNpZGVQb2xpY3lGb3JS
ZXNwb25zZVJlcXVlc3Q7CiAgICAgYm9vbCBtX3Nob3VsZFN1cHByZXNzQXBwTGlua3NJbk5leHRO
YXZpZ2F0aW9uUG9saWN5RGVjaXNpb24geyBmYWxzZSB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KaW5kZXggNzJlNTZkZmZlNmU1ZjQw
YjNlYTUzMmVhZGUzZmQxOThkOGRlZjBlNS4uN2E5MzkxYTA3Nzk3NmVkMWMzYjZkMDc2ZjQ0YWFj
OTIxMzI5MGUxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5tZXNzYWdlcy5pbgpAQCAtNjcsNiArNjcsNyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkg
ewogCiAgICAgUnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKFdlYkNvcmU6OkZyYW1lSWRlbnRp
ZmllciBmcmFtZUlELCBzdHJ1Y3QgV2ViS2l0OjpGcmFtZUluZm9EYXRhIGZyYW1lSW5mbywgU3Ry
aW5nIG1lc3NhZ2UpIC0+IChib29sIHNob3VsZENsb3NlKSBTeW5jaHJvbm91cwogICAgIFBhZ2VE
aWRTY3JvbGwoV2ViQ29yZTo6SW50UG9pbnQgc2Nyb2xsUG9zaXRpb24pCisgICAgU2V0SGFzQWN0
aXZlQW5pbWF0ZWRTY3JvbGxzKGJvb2wgaGFzQWN0aXZlQW5pbWF0ZWRTY3JvbGxzKQogICAgIFJ1
bk9wZW5QYW5lbChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgc3RydWN0IFdlYktp
dDo6RnJhbWVJbmZvRGF0YSBmcmFtZUluZm8sIHN0cnVjdCBXZWJDb3JlOjpGaWxlQ2hvb3NlclNl
dHRpbmdzIHBhcmFtZXRlcnMpCiAgICAgU2hvd1NoYXJlU2hlZXQoc3RydWN0IFdlYkNvcmU6OlNo
YXJlRGF0YVdpdGhQYXJzZWRVUkwgc2hhcmVEYXRhKSAtPiAoYm9vbCBncmFudGVkKSBBc3luYwog
ICAgIFNob3dDb250YWN0UGlja2VyKHN0cnVjdCBXZWJDb3JlOjpDb250YWN0c1JlcXVlc3REYXRh
IHJlcXVlc3REYXRhKSAtPiAoc3RkOjpvcHRpb25hbDxWZWN0b3I8V2ViQ29yZTo6Q29udGFjdElu
Zm8+PiBpbmZvKSBBc3luYwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKaW5kZXggNWIzMmViYTIyMDhhNGQ4NDljNDU3MDcxYmNhNDM4OTYyNTIxNzBl
NS4uZGUzMWMzMGQ0OGJmZmEzYmE5MGQ4OTc3ZjBjMGMxZWY2YzQyN2Q5ZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yNjEwLDYgKzI2
MTAsOCBAQAogCQkwRkNEMDk0RjI0Qzc5RjVCMDAwQzZEMzkgLyogUmVtb3RlU2Nyb2xsaW5nVUlT
dGF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVTY3JvbGxpbmdVSVN0YXRlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGRDJDQjI1MjZDREQ3QTMwMDA4QjExQyAvKiBJZGVudGlm
aWVyVHlwZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSWRlbnRpZmllclR5cGVzLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTBGRENEN0Y2MUQ0N0U5MkEwMDlGMDhCQyAvKiBMb2dJbml0aWFs
aXphdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMb2dJbml0aWFsaXph
dGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRkUyN0ZBRTI3MTRGQzE1MDAw
M0FBQUUgLyogVGlsZWRDb3JlQW5pbWF0aW9uU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gVGlsZWRDb3JlQW5pbWF0aW9uU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEZFMjdGQUYyNzE0RkMxNTAwMDNBQUFFIC8qIFRpbGVk
Q29yZUFuaW1hdGlvblNjcm9sbGluZ0Nvb3JkaW5hdG9yLm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRo
ID0gVGlsZWRDb3JlQW5pbWF0aW9uU2Nyb2xsaW5nQ29vcmRpbmF0b3IubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTBGRjI0QTJCMTg3OUU0QkMwMDNBQkYwQyAvKiBSZW1vdGVMYXll
clRyZWVEcmF3aW5nQXJlYVByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHlNZXNz
YWdlUmVjZWl2ZXIuY3BwOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVMYXll
clRyZWVEcmF3aW5nQXJlYVByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9IEJV
SUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJMEZGMjRBMkIxODc5RTRCQzAwM0FCRjBEIC8qIFJlbW90
ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyTWVzc2FnZVJl
Y2VpdmVyLmNwcDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQ2FwdHVyZVNh
bXBsZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVD
VFNfRElSOyB9OwogCQkwRkYyNEEyQzE4NzlFNEJDMDAzQUJGMEMgLyogUmVtb3RlTGF5ZXJUcmVl
RHJhd2luZ0FyZWFQcm94eU1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFt
ZSA9IFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHlNZXNzYWdlcy5oOyBwYXRoID0gRGVy
aXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5TWVzc2Fn
ZXMuaDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKQEAgLTExMDcwLDYgKzEx
MDcyLDggQEAKIAkJCQk3QzZEMzdGQTE3MkY1NTVGMDA5RDI4NDcgLyogUGFnZUJhbm5lck1hYy5t
bSAqLywKIAkJCQkxQUFGMjYzNzE0Njg3QzM5MDA0QTFFOEEgLyogVGlsZWRDb3JlQW5pbWF0aW9u
RHJhd2luZ0FyZWEuaCAqLywKIAkJCQkxQUFGMjYzNjE0Njg3QzM5MDA0QTFFOEEgLyogVGlsZWRD
b3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEubW0gKi8sCisJCQkJMEZFMjdGQUUyNzE0RkMxNTAwMDNB
QUFFIC8qIFRpbGVkQ29yZUFuaW1hdGlvblNjcm9sbGluZ0Nvb3JkaW5hdG9yLmggKi8sCisJCQkJ
MEZFMjdGQUYyNzE0RkMxNTAwMDNBQUFFIC8qIFRpbGVkQ29yZUFuaW1hdGlvblNjcm9sbGluZ0Nv
b3JkaW5hdG9yLm1tICovLAogCQkJCUJDOTYzRDZEMTEzREQxQTUwMDU3NEJFMiAvKiBXZWJQYWdl
TWFjLm1tICovLAogCQkJCTI5Q0Q1NUE4MTI4RTI5NEYwMDEzM0M4NSAvKiBXS0FjY2Vzc2liaWxp
dHlXZWJQYWdlT2JqZWN0QmFzZS5oICovLAogCQkJCTI5Q0Q1NUE5MTI4RTI5NEYwMDEzM0M4NSAv
KiBXS0FjY2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0QmFzZS5tbSAqLywKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3Bw
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5jcHAKaW5kZXggMmIzYjJkZTU4N2M0ZDFlNWY4Yzc5M2VkNzc1MDgxY2IwNjEyOWZkNy4uZTRj
MTlhZGNjZGQxZDU0OTY5ZDI3NjBkZTMzOGM4ZGY0OTJkYjFjOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5jcHAKQEAgLTExNyw2ICsxMTcsMTAgQEAKICNpbmNsdWRlICJSZW1vdGVHcmFwaGljc0NvbnRl
eHRHTFByb3h5LmgiCiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKE1BQykKKyNpbmNsdWRlICJUaWxl
ZENvcmVBbmltYXRpb25TY3JvbGxpbmdDb29yZGluYXRvci5oIgorI2VuZGlmCisKIG5hbWVzcGFj
ZSBXZWJLaXQgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiB1c2luZyBuYW1lc3BhY2UgSFRN
TE5hbWVzOwpAQCAtMTAxMiwxMiArMTAxNiwxNiBAQCBSZWZQdHI8U2Nyb2xsaW5nQ29vcmRpbmF0
b3I+IFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlU2Nyb2xsaW5nQ29vcmRpbmF0b3IoUGFnZSYgcAog
ewogICAgIEFTU0VSVF9VTlVTRUQocGFnZSwgbV9wYWdlLmNvcmVQYWdlKCkgPT0gJnBhZ2UpOwog
I2lmIFBMQVRGT1JNKENPQ09BKQotICAgIGlmIChtX3BhZ2UuZHJhd2luZ0FyZWEoKS0+dHlwZSgp
ICE9IERyYXdpbmdBcmVhVHlwZTo6UmVtb3RlTGF5ZXJUcmVlKQotICAgICAgICByZXR1cm4gbnVs
bHB0cjsKLSAgICByZXR1cm4gUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OmNyZWF0ZSgmbV9w
YWdlKTsKLSNlbHNlCi0gICAgcmV0dXJuIG51bGxwdHI7CisgICAgc3dpdGNoIChtX3BhZ2UuZHJh
d2luZ0FyZWEoKS0+dHlwZSgpKSB7CisjaWYgUExBVEZPUk0oTUFDKQorICAgIGNhc2UgRHJhd2lu
Z0FyZWFUeXBlOjpUaWxlZENvcmVBbmltYXRpb246CisgICAgICAgIHJldHVybiBUaWxlZENvcmVB
bmltYXRpb25TY3JvbGxpbmdDb29yZGluYXRvcjo6Y3JlYXRlKCZtX3BhZ2UpOwogI2VuZGlmCisg
ICAgY2FzZSBEcmF3aW5nQXJlYVR5cGU6OlJlbW90ZUxheWVyVHJlZToKKyAgICAgICAgcmV0dXJu
IFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yOjpjcmVhdGUoJm1fcGFnZSk7CisgICAgfQorI2Vu
ZGlmCisgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCBkOTQ3NmY3ZjA2YWFkMDQ1Mzk3NjYz
YzVlODllZDE3MjU5MzA2ZDMxLi4yMmMzMzE4YjIyMWE2YmVkZmFiMDI0ZWNlMmNmMDllZmY1MDkz
MzYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApA
QCAtMjcyOSw2ICsyNzI5LDExIEBAIHZvaWQgV2ViUGFnZTo6cGFnZVN0b3BwZWRTY3JvbGxpbmco
KQogICAgICAgICBmcmFtZS0+bG9hZGVyKCkuaGlzdG9yeSgpLnNhdmVTY3JvbGxQb3NpdGlvbkFu
ZFZpZXdTdGF0ZVRvSXRlbShmcmFtZS0+bG9hZGVyKCkuaGlzdG9yeSgpLmN1cnJlbnRJdGVtKCkp
OwogfQogCit2b2lkIFdlYlBhZ2U6OnNldEhhc0FjdGl2ZUFuaW1hdGVkU2Nyb2xscyhib29sIGhh
c0FjdGl2ZUFuaW1hdGVkU2Nyb2xscykKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJv
eHk6OlNldEhhc0FjdGl2ZUFuaW1hdGVkU2Nyb2xscyhoYXNBY3RpdmVBbmltYXRlZFNjcm9sbHMp
KTsKK30KKwogI2lmIEVOQUJMRShDT05URVhUX01FTlVTKQogV2ViQ29udGV4dE1lbnUmIFdlYlBh
Z2U6OmNvbnRleHRNZW51KCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuaAppbmRleCA3N2JmMDJlN2FlZmExMzQxZDJmODM2M2EyZGY0OGY4MzBmMTVkMjgyLi5m
ZTI5MGNmYzRkZDZkMzI5MzE3YzE5NDFhODJhOGVjNTdiMzRhMzQyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC02MTcsNyArNjE3LDkgQEAgcHVibGlj
OgogICAgIHZvaWQgbGlzdGVuRm9yTGF5b3V0TWlsZXN0b25lcyhPcHRpb25TZXQ8V2ViQ29yZTo6
TGF5b3V0TWlsZXN0b25lPik7CiAKICAgICB2b2lkIHNldFN1cHByZXNzU2Nyb2xsYmFyQW5pbWF0
aW9ucyhib29sKTsKLSAgICAKKworICAgIHZvaWQgc2V0SGFzQWN0aXZlQW5pbWF0ZWRTY3JvbGxz
KGJvb2wpOworCiAgICAgdm9pZCBzZXRFbmFibGVWZXJ0aWNhbFJ1YmJlckJhbmRpbmcoYm9vbCk7
CiAgICAgdm9pZCBzZXRFbmFibGVIb3Jpem9udGFsUnViYmVyQmFuZGluZyhib29sKTsKICAgICAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENv
cmVBbmltYXRpb25TY3JvbGxpbmdDb29yZGluYXRvci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvblNjcm9sbGluZ0Nvb3JkaW5hdG9yLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMmU1NTZlNDE0MjIyM2I5YTcyODRjNmExMzNiZTI2N2EwYWRkMjljMgotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxl
ZENvcmVBbmltYXRpb25TY3JvbGxpbmdDb29yZGluYXRvci5oCkBAIC0wLDAgKzEsNTUgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpICYm
IEVOQUJMRShTQ1JPTExJTkdfVEhSRUFEKQorCisjaW5jbHVkZSA8V2ViQ29yZS9TY3JvbGxpbmdD
b29yZGluYXRvck1hYy5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViUGFnZTsK
KworY2xhc3MgVGlsZWRDb3JlQW5pbWF0aW9uU2Nyb2xsaW5nQ29vcmRpbmF0b3IgZmluYWwgOiBw
dWJsaWMgV2ViQ29yZTo6U2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWMgeworcHVibGljOgorICAgIHN0
YXRpYyBSZWY8VGlsZWRDb3JlQW5pbWF0aW9uU2Nyb2xsaW5nQ29vcmRpbmF0b3I+IGNyZWF0ZShX
ZWJQYWdlKiBwYWdlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVGlsZWRD
b3JlQW5pbWF0aW9uU2Nyb2xsaW5nQ29vcmRpbmF0b3IocGFnZSkpOworICAgIH0KKworcHJpdmF0
ZToKKyAgICBleHBsaWNpdCBUaWxlZENvcmVBbmltYXRpb25TY3JvbGxpbmdDb29yZGluYXRvcihX
ZWJQYWdlKik7CisgICAgflRpbGVkQ29yZUFuaW1hdGlvblNjcm9sbGluZ0Nvb3JkaW5hdG9yKCk7
CisKKyAgICB2b2lkIHBhZ2VEZXN0cm95ZWQoKSBmaW5hbDsKKyAgICB2b2lkIGhhc05vZGVXaXRo
QW5pbWF0ZWRTY3JvbGxDaGFuZ2VkKGJvb2wpIGZpbmFsOworICAgIAorICAgIFdlYlBhZ2UqIG1f
cGFnZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEFT
WU5DX1NDUk9MTElORykgJiYgRU5BQkxFKFNDUk9MTElOR19USFJFQUQpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uU2Ny
b2xsaW5nQ29vcmRpbmF0b3IubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9t
YWMvVGlsZWRDb3JlQW5pbWF0aW9uU2Nyb2xsaW5nQ29vcmRpbmF0b3IubW0KbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZWQ0ZjUzODg3OWE3NDUxMTQ5MmE0ZmE3OGFjYzkzZDRhMzQyZWE3YQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRp
b25TY3JvbGxpbmdDb29yZGluYXRvci5tbQpAQCAtMCwwICsxLDU5IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2ltcG9ydCAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKSAmJiBFTkFC
TEUoU0NST0xMSU5HX1RIUkVBRCkKKyNpbXBvcnQgIlRpbGVkQ29yZUFuaW1hdGlvblNjcm9sbGlu
Z0Nvb3JkaW5hdG9yLmgiCisKKyNpbXBvcnQgIldlYlBhZ2UuaCIKKworbmFtZXNwYWNlIFdlYktp
dCB7CisKK1RpbGVkQ29yZUFuaW1hdGlvblNjcm9sbGluZ0Nvb3JkaW5hdG9yOjpUaWxlZENvcmVB
bmltYXRpb25TY3JvbGxpbmdDb29yZGluYXRvcihXZWJQYWdlKiBwYWdlKQorICAgIDogU2Nyb2xs
aW5nQ29vcmRpbmF0b3JNYWMocGFnZS0+Y29yZVBhZ2UoKSkKKyAgICAsIG1fcGFnZShwYWdlKQor
eworfQorCitUaWxlZENvcmVBbmltYXRpb25TY3JvbGxpbmdDb29yZGluYXRvcjo6flRpbGVkQ29y
ZUFuaW1hdGlvblNjcm9sbGluZ0Nvb3JkaW5hdG9yKCkgPSBkZWZhdWx0OworCit2b2lkIFRpbGVk
Q29yZUFuaW1hdGlvblNjcm9sbGluZ0Nvb3JkaW5hdG9yOjpwYWdlRGVzdHJveWVkKCkKK3sKKyAg
ICBTY3JvbGxpbmdDb29yZGluYXRvck1hYzo6cGFnZURlc3Ryb3llZCgpOworICAgIG1fcGFnZSA9
IG51bGxwdHI7Cit9CisKK3ZvaWQgVGlsZWRDb3JlQW5pbWF0aW9uU2Nyb2xsaW5nQ29vcmRpbmF0
b3I6Omhhc05vZGVXaXRoQW5pbWF0ZWRTY3JvbGxDaGFuZ2VkKGJvb2wgaGF2ZUFuaW1hdGVkU2Ny
b2xsaW5nTm9kZXMpCit7CisgICAgaWYgKCFtX3BhZ2UpCisgICAgICAgIHJldHVybjsKKworICAg
IG1fcGFnZS0+c2V0SGFzQWN0aXZlQW5pbWF0ZWRTY3JvbGxzKGhhdmVBbmltYXRlZFNjcm9sbGlu
Z05vZGVzKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUo
QVNZTkNfU0NST0xMSU5HKSAmJiBFTkFCTEUoU0NST0xMSU5HX1RIUkVBRCkK
</data>

          </attachment>
      

    </bug>

</bugzilla>