<?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>222945</bug_id>
          
          <creation_ts>2021-03-08 15:38:06 -0800</creation_ts>
          <short_desc>Preferences do not need to be passed to the WebProcess via WebPageCreationParameters since the store already is</short_desc>
          <delta_ts>2021-03-09 19:14:16 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sam Weinig">sam</reporter>
          <assigned_to name="Sam Weinig">sam</assigned_to>
          <cc>achristensen</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1737330</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-03-08 15:38:06 -0800</bug_when>
    <thetext>Preferences do not need to be passed to the WebProcess via WebPageCreationParameters since the store already is</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1737335</commentid>
    <comment_count>1</comment_count>
      <attachid>422628</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-03-08 15:46:09 -0800</bug_when>
    <thetext>Created attachment 422628
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1737591</commentid>
    <comment_count>2</comment_count>
      <attachid>422707</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-03-09 08:46:11 -0800</bug_when>
    <thetext>Created attachment 422707
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1737747</commentid>
    <comment_count>3</comment_count>
      <attachid>422707</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-03-09 13:52:13 -0800</bug_when>
    <thetext>Comment on attachment 422707
Patch

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

&gt; Source/WebKit/UIProcess/WebPageProxy.cpp:-7988
&gt; -    parameters.httpsUpgradeEnabled = preferences().upgradeKnownHostsToHTTPSEnabled() ? m_configuration-&gt;httpsUpgradeEnabled() : false;

This is not equivalent to its replacement.  This uses the value from WKWebViewConfiguration only if the preference is on, which allows you to turn off the feature with the internal preference but by default it will use the value from WKWebViewConfiguration.

&gt; Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm:554
&gt; +    pageConfiguration-&gt;preferences()-&gt;setUpgradeKnownHostsToHTTPSEnabled(!![_configuration upgradeKnownHostsToHTTPS]);

This always uses the value from WKWebViewConfiguration, which Simon is about to discover breaks his internal performance benchmark.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1737749</commentid>
    <comment_count>4</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-03-09 14:03:21 -0800</bug_when>
    <thetext>(In reply to Alex Christensen from comment #3)
&gt; Comment on attachment 422707 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=422707&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/UIProcess/WebPageProxy.cpp:-7988
&gt; &gt; -    parameters.httpsUpgradeEnabled = preferences().upgradeKnownHostsToHTTPSEnabled() ? m_configuration-&gt;httpsUpgradeEnabled() : false;
&gt; 
&gt; This is not equivalent to its replacement.  This uses the value from
&gt; WKWebViewConfiguration only if the preference is on, which allows you to
&gt; turn off the feature with the internal preference but by default it will use
&gt; the value from WKWebViewConfiguration.
&gt; 
&gt; &gt; Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm:554
&gt; &gt; +    pageConfiguration-&gt;preferences()-&gt;setUpgradeKnownHostsToHTTPSEnabled(!![_configuration upgradeKnownHostsToHTTPS]);
&gt; 
&gt; This always uses the value from WKWebViewConfiguration, which Simon is about
&gt; to discover breaks his internal performance benchmark.

Ah right, this needs to follow the mediaDevicesEnabled model.

    if (pageConfiguration-&gt;preferences().upgradeKnownHostsToHTTPSEnabled())
        pageConfiguration-&gt;preferences()-&gt;setUpgradeKnownHostsToHTTPSEnabled(!![_configuration upgradeKnownHostsToHTTPS]);

We should probably do that for a few others.

I&apos;ll add a test for this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1737756</commentid>
    <comment_count>5</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-03-09 14:18:03 -0800</bug_when>
    <thetext>The whole concept of having something on the configuration is supposed to mean it is immutable, but if you also make it a preference, things get really weird, and don&apos;t really make sense. We should really try to avoid that whenever we can.

In reality, what this &quot;internal feature&quot; really is is &quot;force disable upgradeKnownHostsToHTTPS&quot;, so perhaps the cleanest way to model this would be with two preferences, one for mapping the configuration state, and one for mapping the preferences state, annoying as that is.

What a mess.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1737789</commentid>
    <comment_count>6</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-03-09 15:01:09 -0800</bug_when>
    <thetext>I filed https://bugs.webkit.org/show_bug.cgi?id=222999 to actually rationalize this stuff.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1737840</commentid>
    <comment_count>7</comment_count>
      <attachid>422775</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-03-09 16:24:08 -0800</bug_when>
    <thetext>Created attachment 422775
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1737841</commentid>
    <comment_count>8</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-03-09 16:24:34 -0800</bug_when>
    <thetext>This version is a bit scaled back while I work out a general solution for the configuration / preference fiasco.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1737899</commentid>
    <comment_count>9</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-03-09 19:13:01 -0800</bug_when>
    <thetext>Committed r274192: &lt;https://commits.webkit.org/r274192&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 422775.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1737901</commentid>
    <comment_count>10</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-03-09 19:14:16 -0800</bug_when>
    <thetext>&lt;rdar://problem/75246653&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>422628</attachid>
            <date>2021-03-08 15:46:09 -0800</date>
            <delta_ts>2021-03-09 08:46:09 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222945-20210308154609.patch</filename>
            <type>text/plain</type>
            <size>19172</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyNzQxMDUpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDIwIEBACisyMDIxLTAzLTA4ICBTYW0gV2VpbmlnICA8d2Vpbmln
QGFwcGxlLmNvbT4KKworICAgICAgICBQcmVmZXJlbmNlcyBkbyBub3QgbmVlZCB0byBiZSBwYXNz
ZWQgdG8gdGhlIFdlYlByb2Nlc3MgdmlhIFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMgc2luY2Ug
dGhlIHN0b3JlIGFscmVhZHkgaXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIyMjk0NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0RlYnVnLnlh
bWw6CisgICAgICAgIE5lZWRzSW5BcHBCcm93c2VyUHJpdmFjeVF1aXJrcyBpcyBvbmx5IGV2ZXIg
YWNjZXNzZWQgdmlhIHRoZSBXZWJLaXQgcHJlZmVyZW5jZXMgc3RvcmUsCisgICAgICAgIHNvIGRv
ZXMgbm90IG5lZWQgdG8gYmUgZXhwb3NlZCBpbiBXZWJLaXRMZWdhY3kgb3IgV2ViQ29yZS4gQWNo
aWV2ZSB0aGlzIGJ5IHJlbW92aW5nIHRoZQorICAgICAgICBXZWJLaXRMZWdhY3kgYW5kIFdlYkNv
cmUgZGVmYXVsdHMuCisKKyAgICAgICAgKiBTY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVu
Y2VzSW50ZXJuYWwueWFtbDoKKyAgICAgICAgVXBncmFkZUtub3duSG9zdHNUb0hUVFBTRW5hYmxl
ZCBvbiB0aGUgb3RoZXJoYW5kIGRvZXMgd2FudCB0byBiZSB1c2VkIGluIFdlYkNvcmUsIHNvIHdl
CisgICAgICAgIG1pZ2h0IGFzIHdlbGwgdXNlIHRoZSBTZXR0aW5ncyBpbmZyYXN0cnVjdHVyZSBm
b3IgaXQgdG8gcmVkdWNlIHNvbWUgdHlwaW5nLiBBZGQgZGVmYXVsdHMKKyAgICAgICAgYnV0IGtl
ZXAgZXhwb3N1cmUgdG8ganVzdCBXZWJLaXQuCisKIDIwMjEtMDMtMDggIFNhbSBXZWluaWcgIDx3
ZWluaWdAYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSBxdWlya3MgZm9yIHRoZSBubyBsb25n
ZXIgc3VwcG9ydGVkIGlBZCBQcm9kdWNlcgpJbmRleDogU291cmNlL1dURi9TY3JpcHRzL1ByZWZl
cmVuY2VzL1dlYlByZWZlcmVuY2VzRGVidWcueWFtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RG
L1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNEZWJ1Zy55YW1sCShyZXZpc2lvbiAy
NzQxMDUpCisrKyBTb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNE
ZWJ1Zy55YW1sCSh3b3JraW5nIGNvcHkpCkBAIC0xMjcsMTkgKzEyNywxNCBAQCBMb2dzUGFnZU1l
c3NhZ2VzVG9TeXN0ZW1Db25zb2xlRW5hYmxlZDoKICAgICBXZWJDb3JlOgogICAgICAgZGVmYXVs
dDogZmFsc2UKIAotIyBGSVhNRTogVGhpcyBpcyBub3QgcmVsZXZlbnQgZm9yIFdlYktpdExlZ2Fj
eSwgc28gc2hvdWxkIGJlIGV4Y2x1ZGVkIGZyb20gV2ViS2l0TGVnYWN5IGVudGlyZWx5LgotIyBG
SVhNRTogVGhpcyBpcyBub3QgcmVsZXZlbnQgZm9yIFdlYkNvcmUsIHNvIHNob3VsZCBub3QgaGF2
ZSBXZWJDb3JlIGJpbmRpbmdzLgogTmVlZHNJbkFwcEJyb3dzZXJQcml2YWN5UXVpcmtzOgogICB0
eXBlOiBib29sCiAgIGh1bWFuUmVhZGFibGVOYW1lOiAiTmVlZHMgSW4tQXBwIEJyb3dzZXIgUHJp
dmFjeSBRdWlya3MiCiAgIGh1bWFuUmVhZGFibGVEZXNjcmlwdGlvbjogIkVuYWJsZSBxdWlya3Mg
bmVlZGVkIHRvIHN1cHBvcnQgSW4tQXBwIEJyb3dzZXIgcHJpdmFjeSIKKyAgZXhwb3NlZDogWyBX
ZWJLaXQgXQogICBkZWZhdWx0VmFsdWU6Ci0gICAgV2ViS2l0TGVnYWN5OgotICAgICAgZGVmYXVs
dDogZmFsc2UKICAgICBXZWJLaXQ6CiAgICAgICBkZWZhdWx0OiBmYWxzZQotICAgIFdlYkNvcmU6
Ci0gICAgICBkZWZhdWx0OiBmYWxzZQogCiBSZXNvdXJjZVVzYWdlT3ZlcmxheVZpc2libGU6CiAg
IHR5cGU6IGJvb2wKSW5kZXg6IFNvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVm
ZXJlbmNlc0ludGVybmFsLnlhbWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi9TY3JpcHRzL1By
ZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzSW50ZXJuYWwueWFtbAkocmV2aXNpb24gMjc0MTA1KQor
KysgU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzSW50ZXJuYWwu
eWFtbAkod29ya2luZyBjb3B5KQpAQCAtNzU4LDExICs3NTgsMTQgQEAgVXBncmFkZUtub3duSG9z
dHNUb0hUVFBTRW5hYmxlZDoKICAgdHlwZTogYm9vbAogICBodW1hblJlYWRhYmxlTmFtZTogIlVw
Z3JhZGUga25vd24gaG9zdHMgdG8gSFRUUFMiCiAgIGh1bWFuUmVhZGFibGVEZXNjcmlwdGlvbjog
IlVwZ3JhZGUga25vd24gaG9zdHMgdG8gSFRUUFMiCi0gIHdlYmNvcmVCaW5kaW5nOiBub25lCiAg
IGV4cG9zZWQ6IFsgV2ViS2l0IF0KICAgZGVmYXVsdFZhbHVlOgorICAgIFdlYktpdExlZ2FjeToK
KyAgICAgIGRlZmF1bHQ6IGZhbHNlCiAgICAgV2ViS2l0OgogICAgICAgZGVmYXVsdDogdHJ1ZQor
ICAgIFdlYkNvcmU6CisgICAgICBkZWZhdWx0OiBmYWxzZQogCiBVc2VHUFVQcm9jZXNzRm9yQ2Fu
dmFzUmVuZGVyaW5nRW5hYmxlZDoKICAgdHlwZTogYm9vbApJbmRleDogU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwkocmV2aXNp
b24gMjc0MTA1KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzAgQEAKKzIwMjEtMDMtMDggIFNhbSBXZWluaWcgIDx3ZWluaWdAYXBwbGUuY29t
PgorCisgICAgICAgIFByZWZlcmVuY2VzIGRvIG5vdCBuZWVkIHRvIGJlIHBhc3NlZCB0byB0aGUg
V2ViUHJvY2VzcyB2aWEgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyBzaW5jZSB0aGUgc3RvcmUg
YWxyZWFkeSBpcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjIyOTQ1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBjb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uc0JhY2tlbmQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6OkNvbnRlbnRFeHRlbnNpb25zQmFja2Vu
ZDo6cHJvY2Vzc0NvbnRlbnRSdWxlTGlzdHNGb3JMb2FkKToKKyAgICAgICAgR2V0IHVwZ3JhZGVL
bm93bkhvc3RzVG9IVFRQU0VuYWJsZWQgc3RhdGUgZnJvbSBwcmVmZXJlbmNlcywgcmF0aGVyIHRo
YW4gaGF2aW5nIGl0IGxpdmUKKyAgICAgICAgb24gdGhlIHBhZ2UuCisKKyAgICAgICAgKiBwYWdl
L0V2ZW50SGFuZGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6Om1vdXNl
RG93bk1heVN0YXJ0U2VsZWN0IGNvbnN0KToKKyAgICAgICAgR2V0IHRleHRJbnRlcmFjdGlvbkVu
YWJsZWQgc3RhdGUgZnJvbSBwcmVmZXJlbmNlcywgcmF0aGVyIHRoYW4gY29weWluZyBpdHMgc3Rh
dGUgdG8gdGhlIHBhZ2UuCisKKyAgICAgICAgKiBwYWdlL1BhZ2UuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6bV9zaG91bGRSZWxheFRoaXJkUGFydHlDb29raWVCbG9ja2luZyk6CisgICAgICAgIChX
ZWJDb3JlOjptX2h0dHBzVXBncmFkZUVuYWJsZWQpOiBEZWxldGVkLgorICAgICAgICAqIHBhZ2Uv
UGFnZS5oOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6dGV4dEludGVyYWN0aW9uRW5hYmxlZCBj
b25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpzZXRUZXh0SW50ZXJhY3Rp
b25FbmFibGVkKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6Omh0dHBzVXBncmFk
ZUVuYWJsZWQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIHBhZ2UvUGFnZUNvbmZpZ3VyYXRp
b24uaDoKKyAgICAgICAgUmVtb3ZlIGh0dHBzVXBncmFkZUVuYWJsZWQgYW5kIHRleHRJbnRlcmFj
dGlvbkVuYWJsZWQgc3RhdGUgZnJvbSBQYWdlL1BhZ2VDb25maWd1cmF0aW9uIGFuZAorICAgICAg
ICBoYXZlIHRoZW0gdXNlIFNldHRpbmdzIGxpa2Ugb3RoZXIgc2V0dGluZ3MuCisKIDIwMjEtMDMt
MDUgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAgIEZpeCBpbnNwZWN0
b3Igdmlld2luZyBvZiBjYW52YXMgc2F2ZS9yZXN0b3JlIHN0YWNrLCBhbmQgdGlnaHRlbiBhbmQg
c2ltcGxpZnkgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZQpJbmRleDogU291cmNlL1dlYkNv
cmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbnNCYWNrZW5kLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9u
c0JhY2tlbmQuY3BwCShyZXZpc2lvbiAyNzQxMDUpCisrKyBTb3VyY2UvV2ViQ29yZS9jb250ZW50
ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uc0JhY2tlbmQuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0xODMsNyArMTgzLDcgQEAgQ29udGVudFJ1bGVMaXN0UmVzdWx0cyBDb250ZW50RXh0ZW5zaW9u
cwogICAgIGF1dG8gYWN0aW9ucyA9IGFjdGlvbnNGb3JSZXNvdXJjZUxvYWQocmVzb3VyY2VMb2Fk
SW5mbyk7CiAKICAgICBDb250ZW50UnVsZUxpc3RSZXN1bHRzIHJlc3VsdHM7Ci0gICAgaWYgKHBh
Z2UuaHR0cHNVcGdyYWRlRW5hYmxlZCgpKQorICAgIGlmIChwYWdlLnNldHRpbmdzKCkudXBncmFk
ZUtub3duSG9zdHNUb0hUVFBTRW5hYmxlZCgpKQogICAgICAgICBtYWtlU2VjdXJlSWZOZWNlc3Nh
cnkocmVzdWx0cywgdXJsKTsKICAgICByZXN1bHRzLnJlc3VsdHMucmVzZXJ2ZUluaXRpYWxDYXBh
Y2l0eShhY3Rpb25zLnNpemUoKSk7CiAgICAgZm9yIChjb25zdCBhdXRvJiBhY3Rpb25zRnJvbUNv
bnRlbnRSdWxlTGlzdCA6IGFjdGlvbnMpIHsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvRXZl
bnRIYW5kbGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFu
ZGxlci5jcHAJKHJldmlzaW9uIDI3NDEwNSkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRI
YW5kbGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzA4LDggKzcwOCw3IEBAIGJvb2wgRXZlbnRI
YW5kbGVyOjpjYW5Nb3VzZURvd25TdGFydFNlbGUKIAogYm9vbCBFdmVudEhhbmRsZXI6Om1vdXNl
RG93bk1heVN0YXJ0U2VsZWN0KCkgY29uc3QKIHsKLSAgICBhdXRvKiBwYWdlID0gbV9mcmFtZS5w
YWdlKCk7Ci0gICAgaWYgKHBhZ2UgJiYgIXBhZ2UtPnRleHRJbnRlcmFjdGlvbkVuYWJsZWQoKSkK
KyAgICBpZiAoIW1fZnJhbWUuc2V0dGluZ3MoKS50ZXh0SW50ZXJhY3Rpb25FbmFibGVkKCkpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIHJldHVybiBtX21vdXNlRG93bk1heVN0YXJ0U2Vs
ZWN0OwpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCShyZXZpc2lvbiAyNzQxMDUpCisrKyBTb3VyY2Uv
V2ViQ29yZS9wYWdlL1BhZ2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMDYsOCArMzA2LDYgQEAg
UGFnZTo6UGFnZShQYWdlQ29uZmlndXJhdGlvbiYmIHBhZ2VDb25maQogICAgICwgbV9sb2Fkc1N1
YnJlc291cmNlcyhwYWdlQ29uZmlndXJhdGlvbi5sb2Fkc1N1YnJlc291cmNlcykKICAgICAsIG1f
bG9hZHNGcm9tTmV0d29yayhwYWdlQ29uZmlndXJhdGlvbi5sb2Fkc0Zyb21OZXR3b3JrKQogICAg
ICwgbV9zaG91bGRSZWxheFRoaXJkUGFydHlDb29raWVCbG9ja2luZyhwYWdlQ29uZmlndXJhdGlv
bi5zaG91bGRSZWxheFRoaXJkUGFydHlDb29raWVCbG9ja2luZykKLSAgICAsIG1fdGV4dEludGVy
YWN0aW9uRW5hYmxlZChwYWdlQ29uZmlndXJhdGlvbi50ZXh0SW50ZXJhY3Rpb25FbmFibGVkKQot
ICAgICwgbV9odHRwc1VwZ3JhZGVFbmFibGVkKHBhZ2VDb25maWd1cmF0aW9uLmh0dHBzVXBncmFk
ZUVuYWJsZWQpCiB7CiAgICAgdXBkYXRlVGltZXJUaHJvdHRsaW5nU3RhdGUoKTsKIApJbmRleDog
U291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
cGFnZS9QYWdlLmgJKHJldmlzaW9uIDI3NDEwNSkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFn
ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC04MzMsMTEgKzgzMyw2IEBAIHB1YmxpYzoKIAogICAgIE1v
bm90b25pY1RpbWUgbGFzdFJlbmRlcmluZ1VwZGF0ZVRpbWVzdGFtcCgpIGNvbnN0IHsgcmV0dXJu
IG1fbGFzdFJlbmRlcmluZ1VwZGF0ZVRpbWVzdGFtcDsgfQogCi0gICAgYm9vbCB0ZXh0SW50ZXJh
Y3Rpb25FbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV90ZXh0SW50ZXJhY3Rpb25FbmFibGVkOyB9
Ci0gICAgdm9pZCBzZXRUZXh0SW50ZXJhY3Rpb25FbmFibGVkKGJvb2wgdmFsdWUpIHsgbV90ZXh0
SW50ZXJhY3Rpb25FbmFibGVkID0gdmFsdWU7IH0KLQotICAgIGJvb2wgaHR0cHNVcGdyYWRlRW5h
YmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1faHR0cHNVcGdyYWRlRW5hYmxlZDsgfQotCiAgICAgTG9h
ZFNjaGVkdWxpbmdNb2RlIGxvYWRTY2hlZHVsaW5nTW9kZSgpIGNvbnN0IHsgcmV0dXJuIG1fbG9h
ZFNjaGVkdWxpbmdNb2RlOyB9CiAgICAgdm9pZCBzZXRMb2FkU2NoZWR1bGluZ01vZGUoTG9hZFNj
aGVkdWxpbmdNb2RlKTsKIApAQCAtMTE0Nyw5ICsxMTQyLDYgQEAgcHJpdmF0ZToKICAgICBib29s
IG1faGFzQmVlbk5vdGlmaWVkVG9JbmplY3RVc2VyU2NyaXB0cyB7IGZhbHNlIH07CiAKICAgICBN
b25vdG9uaWNUaW1lIG1fbGFzdFJlbmRlcmluZ1VwZGF0ZVRpbWVzdGFtcDsKLSAgICAKLSAgICBi
b29sIG1fdGV4dEludGVyYWN0aW9uRW5hYmxlZCB7IHRydWUgfTsKLSAgICBjb25zdCBib29sIG1f
aHR0cHNVcGdyYWRlRW5hYmxlZCB7IHRydWUgfTsKICAgICBtdXRhYmxlIE1lZGlhU2Vzc2lvbkdy
b3VwSWRlbnRpZmllciBtX21lZGlhU2Vzc2lvbkdyb3VwSWRlbnRpZmllcjsKIH07CiAKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1cmF0aW9uLmgJKHJldmlzaW9uIDI3NDEwNSkK
KysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uaAkod29ya2luZyBjb3B5
KQpAQCAtMTI5LDEyICsxMjksMTIgQEAgcHVibGljOgogICAgIFZlY3RvcjxVc2VyQ29udGVudFVS
TFBhdHRlcm4+IGNvcnNEaXNhYmxpbmdQYXR0ZXJuczsKICAgICBVbmlxdWVSZWY8U3BlZWNoUmVj
b2duaXRpb25Qcm92aWRlcj4gc3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcjsKICAgICBVbmlxdWVS
ZWY8TWVkaWFSZWNvcmRlclByb3ZpZGVyPiBtZWRpYVJlY29yZGVyUHJvdmlkZXI7CisKKyAgICAv
LyBGSVhNRTogVGhlc2Ugc2hvdWxkIGJlIGFsbCBiZSBTZXR0aW5ncy4KICAgICBib29sIGxvYWRz
U3VicmVzb3VyY2VzIHsgdHJ1ZSB9OwogICAgIGJvb2wgbG9hZHNGcm9tTmV0d29yayB7IHRydWUg
fTsKICAgICBib29sIHVzZXJTY3JpcHRzU2hvdWxkV2FpdFVudGlsTm90aWZpY2F0aW9uIHsgdHJ1
ZSB9OwogICAgIFNob3VsZFJlbGF4VGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nIHNob3VsZFJlbGF4
VGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nIHsgU2hvdWxkUmVsYXhUaGlyZFBhcnR5Q29va2llQmxv
Y2tpbmc6Ok5vIH07Ci0gICAgYm9vbCB0ZXh0SW50ZXJhY3Rpb25FbmFibGVkIHsgdHJ1ZSB9Owot
ICAgIGJvb2wgaHR0cHNVcGdyYWRlRW5hYmxlZCB7IHRydWUgfTsKIH07CiAKIH0KSW5kZXg6IFNv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCShyZXZpc2lvbiAyNzQxMTQpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDI3IEBACisyMDIxLTAzLTA4ICBTYW0gV2VpbmlnICA8d2Vpbmln
QGFwcGxlLmNvbT4KKworICAgICAgICBQcmVmZXJlbmNlcyBkbyBub3QgbmVlZCB0byBiZSBwYXNz
ZWQgdG8gdGhlIFdlYlByb2Nlc3MgdmlhIFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMgc2luY2Ug
dGhlIHN0b3JlIGFscmVhZHkgaXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIyMjk0NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIG5lZWRzSW5BcHBCcm93c2VyUHJpdmFjeVF1aXJrcywgdGV4dEludGVyYWN0
aW9uRW5hYmxlZCBhbmQgaHR0cHNVcGdyYWRlRW5hYmxlZCB3ZXJlIGFsbCBiZWluZyBwYXNzZWQK
KyAgICAgICAgdG8gdGhlIFdlYlByb2Nlc3MgdHdpY2UsIG9uY2UgdmlhIHRoZSBwcmVmZXJlbmNl
cyBzdG9yZSwgYW5kIG9uY2UgdmlhIGV4cGxpY2l0IHNlcmlhbGl6YXRpb24uCisgICAgICAgIAor
ICAgICAgICBVc2UgdGhlIHByZWZlcmVuY2VzIGluZnJhc3RydWN0dXJlIHRvIGRvIHRoaXMgZm9y
IHVzIGluc3RlYWQsIGFuZCByZW1vdmUgYSBidW5jaCBvZiB1bm5lZWRlZCBjb2RlLgorCisgICAg
ICAgICogU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUgY29uc3QpOgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUpOgorICAgICAgICAqIFNo
YXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1dlYlZpZXcubW06CisgICAgICAgICgtW1dLV2ViVmlldyBfc2V0dXBQYWdlQ29u
ZmlndXJhdGlvbjpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpjcmVhdGlvblBhcmFtZXRlcnMpOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6bV9s
YXN0TmF2aWdhdGlvbldhc0FwcEJvdW5kKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6dXBk
YXRlUHJlZmVyZW5jZXMpOgorCiAyMDIxLTAzLTA4ICBCcmVudCBGdWxnaGFtICA8YmZ1bGdoYW1A
YXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04gKHIyNzM1NDEpOiBQYXlsb2FkcyByZXF1
aXJpbmcgTlNVUkwgaW4gc2VyaWFsaXphdGlvbiBmYWlsIApJbmRleDogU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5jcHAJKHJldmlzaW9uIDI3
NDEwNSkKKysrIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNzEsNyArMTcxLDYgQEAgdm9pZCBXZWJQYWdlQ3JlYXRp
b25QYXJhbWV0ZXJzOjplbmNvZGUoSQogICAgIGVuY29kZXIgPDwgc2hvdWxkRW5hYmxlVlA5RGVj
b2RlcjsKICAgICBlbmNvZGVyIDw8IHNob3VsZEVuYWJsZVZQOVNXRGVjb2RlcjsKICNpZiBFTkFC
TEUoQVBQX0JPVU5EX0RPTUFJTlMpCi0gICAgZW5jb2RlciA8PCBuZWVkc0luQXBwQnJvd3NlclBy
aXZhY3lRdWlya3M7CiAgICAgZW5jb2RlciA8PCBsaW1pdHNOYXZpZ2F0aW9uc1RvQXBwQm91bmRE
b21haW5zOwogI2VuZGlmCiAgICAgZW5jb2RlciA8PCBsYXN0TmF2aWdhdGlvbldhc0FwcEJvdW5k
OwpAQCAtMTgyLDggKzE4MSw2IEBAIHZvaWQgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVyczo6ZW5j
b2RlKEkKICAgICBlbmNvZGVyIDw8IHRoZW1lTmFtZTsKICNlbmRpZgogICAgIAotICAgIGVuY29k
ZXIgPDwgdGV4dEludGVyYWN0aW9uRW5hYmxlZDsKLSAgICBlbmNvZGVyIDw8IGh0dHBzVXBncmFk
ZUVuYWJsZWQ7CiAjaWYgUExBVEZPUk0oSU9TKQogICAgIGVuY29kZXIgPDwgYWxsb3dzRGVwcmVj
YXRlZFN5bmNocm9ub3VzWE1MSHR0cFJlcXVlc3REdXJpbmdVbmxvYWQ7CiAjZW5kaWYKQEAgLTU2
OCw5ICs1NjUsNiBAQCBPcHRpb25hbDxXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzPiBXZWJQCiAg
ICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAKICNpZiBFTkFCTEUoQVBQX0JPVU5EX0RPTUFJ
TlMpCi0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLm5lZWRzSW5BcHBCcm93c2Vy
UHJpdmFjeVF1aXJrcykpCi0gICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Ci0gICAgCiAgICAg
aWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLmxpbWl0c05hdmlnYXRpb25zVG9BcHBCb3Vu
ZERvbWFpbnMpKQogICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogI2VuZGlmCkBAIC01ODgs
MTIgKzU4Miw2IEBAIE9wdGlvbmFsPFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM+IFdlYlAKICAg
ICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKICNlbmRpZgogICAgIAotICAgIGlmICghZGVjb2Rl
ci5kZWNvZGUocGFyYW1ldGVycy50ZXh0SW50ZXJhY3Rpb25FbmFibGVkKSkKLSAgICAgICAgcmV0
dXJuIFdURjo6bnVsbG9wdDsKLQotICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5o
dHRwc1VwZ3JhZGVFbmFibGVkKSkKLSAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLQogI2lm
IFBMQVRGT1JNKElPUykKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMuYWxsb3dz
RGVwcmVjYXRlZFN5bmNocm9ub3VzWE1MSHR0cFJlcXVlc3REdXJpbmdVbmxvYWQpKQogICAgICAg
ICByZXR1cm4gV1RGOjpudWxsb3B0OwpJbmRleDogU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFn
ZUNyZWF0aW9uUGFyYW1ldGVycy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaAkocmV2aXNpb24gMjc0MTA1KQorKysgU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oCSh3b3JraW5nIGNvcHkp
CkBAIC0yNDIsNyArMjQyLDYgQEAgc3RydWN0IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMgewog
ICAgIGJvb2wgc2hvdWxkRW5hYmxlVlA5RGVjb2RlciB7IGZhbHNlIH07CiAgICAgYm9vbCBzaG91
bGRFbmFibGVWUDlTV0RlY29kZXIgeyBmYWxzZSB9OwogI2lmIEVOQUJMRShBUFBfQk9VTkRfRE9N
QUlOUykKLSAgICBib29sIG5lZWRzSW5BcHBCcm93c2VyUHJpdmFjeVF1aXJrcyB7IGZhbHNlIH07
CiAgICAgYm9vbCBsaW1pdHNOYXZpZ2F0aW9uc1RvQXBwQm91bmREb21haW5zIHsgZmFsc2UgfTsK
ICNlbmRpZgogICAgIGJvb2wgbGFzdE5hdmlnYXRpb25XYXNBcHBCb3VuZCB7IGZhbHNlIH07CkBA
IC0yNTMsOSArMjUyLDYgQEAgc3RydWN0IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMgewogI2lm
IFBMQVRGT1JNKEdUSykKICAgICBTdHJpbmcgdGhlbWVOYW1lOwogI2VuZGlmCi0KLSAgICBib29s
IHRleHRJbnRlcmFjdGlvbkVuYWJsZWQgeyB0cnVlIH07Ci0gICAgYm9vbCBodHRwc1VwZ3JhZGVF
bmFibGVkIHsgdHJ1ZSB9OwogICAgIAogI2lmIFBMQVRGT1JNKElPUykKICAgICBib29sIGFsbG93
c0RlcHJlY2F0ZWRTeW5jaHJvbm91c1hNTEh0dHBSZXF1ZXN0RHVyaW5nVW5sb2FkIHsgZmFsc2Ug
fTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAkocmV2aXNp
b24gMjc0MTA1KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNzkxMiw4ICs3OTEyLDEwIEBAIFdlYlBhZ2VDcmVhdGlvblBhcmFt
ZXRlcnMgV2ViUGFnZVByb3h5OjoKICAgICBwYXJhbWV0ZXJzLnVybFNjaGVtZXNXaXRoTGVnYWN5
Q3VzdG9tUHJvdG9jb2xIYW5kbGVycyA9IFdlYlByb2Nlc3NQb29sOjp1cmxTY2hlbWVzV2l0aEN1
c3RvbVByb3RvY29sSGFuZGxlcnMoKTsKIAogI2lmIEVOQUJMRShXRUJfUlRDKQorICAgIC8vIEZJ
WE1FOiBUaGlzIGlzIGFsc28gYmVpbmcgcGFzc2VkIG92ZXIgdGhlIHRvIFdlYlByb2Nlc3Mgdmlh
IHRoZSBQcmVmZXJlbmNlc1N0b3JlLgogICAgIHBhcmFtZXRlcnMuaWNlQ2FuZGlkYXRlRmlsdGVy
aW5nRW5hYmxlZCA9IG1fcHJlZmVyZW5jZXMtPmljZUNhbmRpZGF0ZUZpbHRlcmluZ0VuYWJsZWQo
KTsKICNpZiBVU0UoTElCV0VCUlRDKQorICAgIC8vIEZJWE1FOiBUaGlzIGlzIGFsc28gYmVpbmcg
cGFzc2VkIG92ZXIgdGhlIHRvIFdlYlByb2Nlc3MgdmlhIHRoZSBQcmVmZXJlbmNlc1N0b3JlLgog
ICAgIHBhcmFtZXRlcnMuZW51bWVyYXRpbmdBbGxOZXR3b3JrSW50ZXJmYWNlc0VuYWJsZWQgPSBt
X3ByZWZlcmVuY2VzLT5lbnVtZXJhdGluZ0FsbE5ldHdvcmtJbnRlcmZhY2VzRW5hYmxlZCgpOwog
I2VuZGlmCiAjZW5kaWYKQEAgLTc5MzksMjAgKzc5NDEsMzEgQEAgV2ViUGFnZUNyZWF0aW9uUGFy
YW1ldGVycyBXZWJQYWdlUHJveHk6OgogICAgIHByb2Nlc3MuYWRkV2ViVXNlckNvbnRlbnRDb250
cm9sbGVyUHJveHkodXNlckNvbnRlbnRDb250cm9sbGVyKTsKICAgICBwYXJhbWV0ZXJzLnVzZXJD
b250ZW50Q29udHJvbGxlclBhcmFtZXRlcnMgPSB1c2VyQ29udGVudENvbnRyb2xsZXIuZ2V0KCku
cGFyYW1ldGVycygpOwogCisgICAgLy8gRklYTUU6IFRoaXMgaXMgYWxzbyBiZWluZyBwYXNzZWQg
b3ZlciB0aGUgdG8gV2ViUHJvY2VzcyB2aWEgdGhlIFByZWZlcmVuY2VzU3RvcmUuCiAgICAgcGFy
YW1ldGVycy5zaG91bGRDYXB0dXJlQXVkaW9JblVJUHJvY2VzcyA9IHByZWZlcmVuY2VzKCkuY2Fw
dHVyZUF1ZGlvSW5VSVByb2Nlc3NFbmFibGVkKCk7CisgICAgLy8gRklYTUU6IFRoaXMgaXMgYWxz
byBiZWluZyBwYXNzZWQgb3ZlciB0aGUgdG8gV2ViUHJvY2VzcyB2aWEgdGhlIFByZWZlcmVuY2Vz
U3RvcmUuCiAgICAgcGFyYW1ldGVycy5zaG91bGRDYXB0dXJlQXVkaW9JbkdQVVByb2Nlc3MgPSBw
cmVmZXJlbmNlcygpLmNhcHR1cmVBdWRpb0luR1BVUHJvY2Vzc0VuYWJsZWQoKTsKKyAgICAvLyBG
SVhNRTogVGhpcyBpcyBhbHNvIGJlaW5nIHBhc3NlZCBvdmVyIHRoZSB0byBXZWJQcm9jZXNzIHZp
YSB0aGUgUHJlZmVyZW5jZXNTdG9yZS4KICAgICBwYXJhbWV0ZXJzLnNob3VsZENhcHR1cmVWaWRl
b0luVUlQcm9jZXNzID0gcHJlZmVyZW5jZXMoKS5jYXB0dXJlVmlkZW9JblVJUHJvY2Vzc0VuYWJs
ZWQoKTsKKyAgICAvLyBGSVhNRTogVGhpcyBpcyBhbHNvIGJlaW5nIHBhc3NlZCBvdmVyIHRoZSB0
byBXZWJQcm9jZXNzIHZpYSB0aGUgUHJlZmVyZW5jZXNTdG9yZS4KICAgICBwYXJhbWV0ZXJzLnNo
b3VsZENhcHR1cmVWaWRlb0luR1BVUHJvY2VzcyA9IHByZWZlcmVuY2VzKCkuY2FwdHVyZVZpZGVv
SW5HUFVQcm9jZXNzRW5hYmxlZCgpOworICAgIC8vIEZJWE1FOiBUaGlzIGlzIGFsc28gYmVpbmcg
cGFzc2VkIG92ZXIgdGhlIHRvIFdlYlByb2Nlc3MgdmlhIHRoZSBQcmVmZXJlbmNlc1N0b3JlLgog
ICAgIHBhcmFtZXRlcnMuc2hvdWxkUmVuZGVyQ2FudmFzSW5HUFVQcm9jZXNzID0gcHJlZmVyZW5j
ZXMoKS51c2VHUFVQcm9jZXNzRm9yQ2FudmFzUmVuZGVyaW5nRW5hYmxlZCgpOworICAgIC8vIEZJ
WE1FOiBUaGlzIGlzIGFsc28gYmVpbmcgcGFzc2VkIG92ZXIgdGhlIHRvIFdlYlByb2Nlc3Mgdmlh
IHRoZSBQcmVmZXJlbmNlc1N0b3JlLgogICAgIHBhcmFtZXRlcnMuc2hvdWxkUmVuZGVyRE9NSW5H
UFVQcm9jZXNzID0gcHJlZmVyZW5jZXMoKS51c2VHUFVQcm9jZXNzRm9yRE9NUmVuZGVyaW5nRW5h
YmxlZCgpOworICAgIC8vIEZJWE1FOiBUaGlzIGlzIGFsc28gYmVpbmcgcGFzc2VkIG92ZXIgdGhl
IHRvIFdlYlByb2Nlc3MgdmlhIHRoZSBQcmVmZXJlbmNlc1N0b3JlLgogICAgIHBhcmFtZXRlcnMu
c2hvdWxkUGxheU1lZGlhSW5HUFVQcm9jZXNzID0gcHJlZmVyZW5jZXMoKS51c2VHUFVQcm9jZXNz
Rm9yTWVkaWFFbmFibGVkKCk7CiAjaWYgRU5BQkxFKFdFQkdMKQorICAgIC8vIEZJWE1FOiBUaGlz
IGlzIGFsc28gYmVpbmcgcGFzc2VkIG92ZXIgdGhlIHRvIFdlYlByb2Nlc3MgdmlhIHRoZSBQcmVm
ZXJlbmNlc1N0b3JlLgogICAgIHBhcmFtZXRlcnMuc2hvdWxkUmVuZGVyV2ViR0xJbkdQVVByb2Nl
c3MgPSBwcmVmZXJlbmNlcygpLnVzZUdQVVByb2Nlc3NGb3JXZWJHTEVuYWJsZWQoKTsKICNlbmRp
ZgogCisgICAgLy8gRklYTUU6IFRoaXMgaXMgYWxzbyBiZWluZyBwYXNzZWQgb3ZlciB0aGUgdG8g
V2ViUHJvY2VzcyB2aWEgdGhlIFByZWZlcmVuY2VzU3RvcmUuCiAgICAgcGFyYW1ldGVycy5zaG91
bGRFbmFibGVWUDlEZWNvZGVyID0gcHJlZmVyZW5jZXMoKS52cDlEZWNvZGVyRW5hYmxlZCgpOwog
I2lmIEVOQUJMRShWUDkpICYmIFBMQVRGT1JNKENPQ09BKQorICAgIC8vIEZJWE1FOiBUaGlzIGlz
IGFsc28gYmVpbmcgcGFzc2VkIG92ZXIgdGhlIHRvIFdlYlByb2Nlc3MgdmlhIHRoZSBQcmVmZXJl
bmNlc1N0b3JlLgogICAgIHBhcmFtZXRlcnMuc2hvdWxkRW5hYmxlVlA4RGVjb2RlciA9IHByZWZl
cmVuY2VzKCkudnA5RGVjb2RlckVuYWJsZWQoKTsKKyAgICAvLyBGSVhNRTogVGhpcyBpcyBhbHNv
IGJlaW5nIHBhc3NlZCBvdmVyIHRoZSB0byBXZWJQcm9jZXNzIHZpYSB0aGUgUHJlZmVyZW5jZXNT
dG9yZS4KICAgICBwYXJhbWV0ZXJzLnNob3VsZEVuYWJsZVZQOVNXRGVjb2RlciA9IHByZWZlcmVu
Y2VzKCkudnA5RGVjb2RlckVuYWJsZWQoKSAmJiAoIVdlYkNvcmU6OnN5c3RlbUhhc0JhdHRlcnko
KSB8fCBwcmVmZXJlbmNlcygpLnZwOVNXRGVjb2RlckVuYWJsZWRPbkJhdHRlcnkoKSk7CiAjZW5k
aWYKICAgICBwYXJhbWV0ZXJzLnNob3VsZENhcHR1cmVEaXNwbGF5SW5VSVByb2Nlc3MgPSBtX3By
b2Nlc3MtPnByb2Nlc3NQb29sKCkuY29uZmlndXJhdGlvbigpLnNob3VsZENhcHR1cmVEaXNwbGF5
SW5VSVByb2Nlc3MoKTsKQEAgLTc5NzQsMTQgKzc5ODcsOCBAQCBXZWJQYWdlQ3JlYXRpb25QYXJh
bWV0ZXJzIFdlYlBhZ2VQcm94eTo6CiAgICAgfQogI2VuZGlmCiAKLSNpZiBFTkFCTEUoQVBQX0JP
VU5EX0RPTUFJTlMpCi0gICAgcGFyYW1ldGVycy5uZWVkc0luQXBwQnJvd3NlclByaXZhY3lRdWly
a3MgPSBwcmVmZXJlbmNlcygpLm5lZWRzSW5BcHBCcm93c2VyUHJpdmFjeVF1aXJrcygpOwotI2Vu
ZGlmCi0gICAgCi0gICAgcGFyYW1ldGVycy50ZXh0SW50ZXJhY3Rpb25FbmFibGVkID0gcHJlZmVy
ZW5jZXMoKS50ZXh0SW50ZXJhY3Rpb25FbmFibGVkKCk7Ci0gICAgcGFyYW1ldGVycy5odHRwc1Vw
Z3JhZGVFbmFibGVkID0gcHJlZmVyZW5jZXMoKS51cGdyYWRlS25vd25Ib3N0c1RvSFRUUFNFbmFi
bGVkKCkgPyBtX2NvbmZpZ3VyYXRpb24tPmh0dHBzVXBncmFkZUVuYWJsZWQoKSA6IGZhbHNlOwot
CiAjaWYgUExBVEZPUk0oSU9TKQorICAgIC8vIEZJWE1FOiBUaGlzIGlzIGFsc28gYmVpbmcgcGFz
c2VkIG92ZXIgdGhlIHRvIFdlYlByb2Nlc3MgdmlhIHRoZSBQcmVmZXJlbmNlc1N0b3JlLgogICAg
IHBhcmFtZXRlcnMuYWxsb3dzRGVwcmVjYXRlZFN5bmNocm9ub3VzWE1MSHR0cFJlcXVlc3REdXJp
bmdVbmxvYWQgPSBhbGxvd3NEZXByZWNhdGVkU3luY2hyb25vdXNYTUxIdHRwUmVxdWVzdER1cmlu
Z1VubG9hZCgpOwogI2VuZGlmCiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXcubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLV2ViVmlldy5tbQkocmV2aXNpb24gMjc0MTA1KQorKysgU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQkod29ya2luZyBjb3B5KQpAQCAtNTUw
LDggKzU1MCw4IEBAICAgICAvLyBXZSBhcmUgaW4gdGhlIFZpZXcncyBpbml0aWFsaXphdGkKICAg
ICAgICAgcGFnZUNvbmZpZ3VyYXRpb24tPnByZWZlcmVuY2VzKCktPnNldE1lZGlhRGV2aWNlc0Vu
YWJsZWQoISFbX2NvbmZpZ3VyYXRpb24gX21lZGlhQ2FwdHVyZUVuYWJsZWRdKTsKIAogICAgIHBh
Z2VDb25maWd1cmF0aW9uLT5wcmVmZXJlbmNlcygpLT5zZXRDb2xvckZpbHRlckVuYWJsZWQoISFb
X2NvbmZpZ3VyYXRpb24gX2NvbG9yRmlsdGVyRW5hYmxlZF0pOwotCiAgICAgcGFnZUNvbmZpZ3Vy
YXRpb24tPnByZWZlcmVuY2VzKCktPnNldFVuZG9NYW5hZ2VyQVBJRW5hYmxlZCghIVtfY29uZmln
dXJhdGlvbiBfdW5kb01hbmFnZXJBUElFbmFibGVkXSk7CisgICAgcGFnZUNvbmZpZ3VyYXRpb24t
PnByZWZlcmVuY2VzKCktPnNldFVwZ3JhZGVLbm93bkhvc3RzVG9IVFRQU0VuYWJsZWQoISFbX2Nv
bmZpZ3VyYXRpb24gdXBncmFkZUtub3duSG9zdHNUb0hUVFBTXSk7CiAKICNpZiBFTkFCTEUoTEVH
QUNZX0VOQ1JZUFRFRF9NRURJQSkKICAgICBwYWdlQ29uZmlndXJhdGlvbi0+cHJlZmVyZW5jZXMo
KS0+c2V0TGVnYWN5RW5jcnlwdGVkTWVkaWFBUElFbmFibGVkKCEhW19jb25maWd1cmF0aW9uIF9s
ZWdhY3lFbmNyeXB0ZWRNZWRpYUFQSUVuYWJsZWRdKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCShyZXZpc2lvbiAyNzQxMDUpCisrKyBTb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtNDUyLDkgKzQ1Miw2IEBAIFdlYlBhZ2U6OldlYlBhZ2UoUGFnZUlkZW50aWZpZXIgcGFnZUlE
LCAKICNpZiBFTkFCTEUoV0VCR0wpCiAgICAgLCBtX3Nob3VsZFJlbmRlcldlYkdMSW5HUFVQcm9j
ZXNzIHsgcGFyYW1ldGVycy5zaG91bGRSZW5kZXJXZWJHTEluR1BVUHJvY2Vzc30KICNlbmRpZgot
I2lmIEVOQUJMRShBUFBfQk9VTkRfRE9NQUlOUykKLSAgICAsIG1fbmVlZHNJbkFwcEJyb3dzZXJQ
cml2YWN5UXVpcmtzIHsgcGFyYW1ldGVycy5uZWVkc0luQXBwQnJvd3NlclByaXZhY3lRdWlya3Mg
fQotI2VuZGlmCiAgICAgLCBtX2xheWVySG9zdGluZ01vZGUocGFyYW1ldGVycy5sYXllckhvc3Rp
bmdNb2RlKQogI2lmIEVOQUJMRShQTEFURk9STV9EUklWRU5fVEVYVF9DSEVDS0lORykKICAgICAs
IG1fdGV4dENoZWNraW5nQ29udHJvbGxlclByb3h5KG1ha2VVbmlxdWVSZWY8VGV4dENoZWNraW5n
Q29udHJvbGxlclByb3h5PigqdGhpcykpCkBAIC02MDAsOSArNTk3LDYgQEAgV2ViUGFnZTo6V2Vi
UGFnZShQYWdlSWRlbnRpZmllciBwYWdlSUQsIAogICAgIHBhZ2VDb25maWd1cmF0aW9uLmxvYWRz
U3VicmVzb3VyY2VzID0gcGFyYW1ldGVycy5sb2Fkc1N1YnJlc291cmNlczsKICAgICBwYWdlQ29u
ZmlndXJhdGlvbi5sb2Fkc0Zyb21OZXR3b3JrID0gcGFyYW1ldGVycy5sb2Fkc0Zyb21OZXR3b3Jr
OwogICAgIHBhZ2VDb25maWd1cmF0aW9uLnNob3VsZFJlbGF4VGhpcmRQYXJ0eUNvb2tpZUJsb2Nr
aW5nID0gcGFyYW1ldGVycy5zaG91bGRSZWxheFRoaXJkUGFydHlDb29raWVCbG9ja2luZzsKLSAg
ICBwYWdlQ29uZmlndXJhdGlvbi5odHRwc1VwZ3JhZGVFbmFibGVkID0gcGFyYW1ldGVycy5odHRw
c1VwZ3JhZGVFbmFibGVkOwotCi0gICAgcGFnZUNvbmZpZ3VyYXRpb24udGV4dEludGVyYWN0aW9u
RW5hYmxlZCA9IHBhcmFtZXRlcnMudGV4dEludGVyYWN0aW9uRW5hYmxlZDsKICAgICAKICAgICBp
ZiAoIXBhcmFtZXRlcnMuY3Jvc3NPcmlnaW5BY2Nlc3NDb250cm9sQ2hlY2tFbmFibGVkKQogICAg
ICAgICBDcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2xDaGVja0Rpc2FibGVyOjpzaW5nbGV0b24oKS5z
ZXRDcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2xDaGVja0VuYWJsZWQoZmFsc2UpOwpAQCAtMzkzNSw4
ICszOTI5LDYgQEAgdm9pZCBXZWJQYWdlOjp1cGRhdGVQcmVmZXJlbmNlcyhjb25zdCBXZQogICAg
IG1faXBjVGVzdGluZ0FQSUVuYWJsZWQgPSBzdG9yZS5nZXRCb29sVmFsdWVGb3JLZXkoV2ViUHJl
ZmVyZW5jZXNLZXk6OmlwY1Rlc3RpbmdBUElFbmFibGVkS2V5KCkpOwogI2VuZGlmCiAKLSAgICBt
X3BhZ2UtPnNldFRleHRJbnRlcmFjdGlvbkVuYWJsZWQoc3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5
KFdlYlByZWZlcmVuY2VzS2V5Ojp0ZXh0SW50ZXJhY3Rpb25FbmFibGVkS2V5KCkpKTsKLQogI2lm
IEVOQUJMRShXRUJfQVVUSE4pICYmIFBMQVRGT1JNKElPUykKICAgICBpZiAoYXV0byogY29ubmVj
dGlvbiA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCkp
IHsKICAgICAgICAgaWYgKGlzUGFyZW50UHJvY2Vzc0FGdWxsV2ViQnJvd3Nlcihjb25uZWN0aW9u
LT5nZXRBdWRpdFRva2VuKCkpKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>422707</attachid>
            <date>2021-03-09 08:46:11 -0800</date>
            <delta_ts>2021-03-09 16:24:06 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222945-20210309084610.patch</filename>
            <type>text/plain</type>
            <size>19171</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyNzQxNDgpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDIwIEBACisyMDIxLTAzLTA5ICBTYW0gV2VpbmlnICA8d2Vpbmln
QGFwcGxlLmNvbT4KKworICAgICAgICBQcmVmZXJlbmNlcyBkbyBub3QgbmVlZCB0byBiZSBwYXNz
ZWQgdG8gdGhlIFdlYlByb2Nlc3MgdmlhIFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMgc2luY2Ug
dGhlIHN0b3JlIGFscmVhZHkgaXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIyMjk0NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0RlYnVnLnlh
bWw6CisgICAgICAgIE5lZWRzSW5BcHBCcm93c2VyUHJpdmFjeVF1aXJrcyBpcyBvbmx5IGV2ZXIg
YWNjZXNzZWQgdmlhIHRoZSBXZWJLaXQgcHJlZmVyZW5jZXMgc3RvcmUsCisgICAgICAgIHNvIGRv
ZXMgbm90IG5lZWQgdG8gYmUgZXhwb3NlZCBpbiBXZWJLaXRMZWdhY3kgb3IgV2ViQ29yZS4gQWNo
aWV2ZSB0aGlzIGJ5IHJlbW92aW5nIHRoZQorICAgICAgICBXZWJLaXRMZWdhY3kgYW5kIFdlYkNv
cmUgZGVmYXVsdHMuCisKKyAgICAgICAgKiBTY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVu
Y2VzSW50ZXJuYWwueWFtbDoKKyAgICAgICAgVXBncmFkZUtub3duSG9zdHNUb0hUVFBTRW5hYmxl
ZCBvbiB0aGUgb3RoZXJoYW5kIGRvZXMgd2FudCB0byBiZSB1c2VkIGluIFdlYkNvcmUsIHNvIHdl
CisgICAgICAgIG1pZ2h0IGFzIHdlbGwgdXNlIHRoZSBTZXR0aW5ncyBpbmZyYXN0cnVjdHVyZSBm
b3IgaXQgdG8gcmVkdWNlIHNvbWUgdHlwaW5nLiBBZGQgZGVmYXVsdHMKKyAgICAgICAgYnV0IGtl
ZXAgZXhwb3N1cmUgdG8ganVzdCBXZWJLaXQuCisKIDIwMjEtMDMtMDggIFNhbSBXZWluaWcgIDx3
ZWluaWdAYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSBxdWlya3MgZm9yIHRoZSBubyBsb25n
ZXIgc3VwcG9ydGVkIGlBZCBQcm9kdWNlcgpJbmRleDogU291cmNlL1dURi9TY3JpcHRzL1ByZWZl
cmVuY2VzL1dlYlByZWZlcmVuY2VzRGVidWcueWFtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RG
L1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNEZWJ1Zy55YW1sCShyZXZpc2lvbiAy
NzQxNDgpCisrKyBTb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNE
ZWJ1Zy55YW1sCSh3b3JraW5nIGNvcHkpCkBAIC0xMjcsMTkgKzEyNywxNSBAQCBMb2dzUGFnZU1l
c3NhZ2VzVG9TeXN0ZW1Db25zb2xlRW5hYmxlZDoKICAgICBXZWJDb3JlOgogICAgICAgZGVmYXVs
dDogZmFsc2UKIAotIyBGSVhNRTogVGhpcyBpcyBub3QgcmVsZXZlbnQgZm9yIFdlYktpdExlZ2Fj
eSwgc28gc2hvdWxkIGJlIGV4Y2x1ZGVkIGZyb20gV2ViS2l0TGVnYWN5IGVudGlyZWx5LgotIyBG
SVhNRTogVGhpcyBpcyBub3QgcmVsZXZlbnQgZm9yIFdlYkNvcmUsIHNvIHNob3VsZCBub3QgaGF2
ZSBXZWJDb3JlIGJpbmRpbmdzLgogTmVlZHNJbkFwcEJyb3dzZXJQcml2YWN5UXVpcmtzOgogICB0
eXBlOiBib29sCiAgIGh1bWFuUmVhZGFibGVOYW1lOiAiTmVlZHMgSW4tQXBwIEJyb3dzZXIgUHJp
dmFjeSBRdWlya3MiCiAgIGh1bWFuUmVhZGFibGVEZXNjcmlwdGlvbjogIkVuYWJsZSBxdWlya3Mg
bmVlZGVkIHRvIHN1cHBvcnQgSW4tQXBwIEJyb3dzZXIgcHJpdmFjeSIKKyAgd2ViY29yZUJpbmRp
bmc6IG5vbmUKKyAgZXhwb3NlZDogWyBXZWJLaXQgXQogICBkZWZhdWx0VmFsdWU6Ci0gICAgV2Vi
S2l0TGVnYWN5OgotICAgICAgZGVmYXVsdDogZmFsc2UKICAgICBXZWJLaXQ6CiAgICAgICBkZWZh
dWx0OiBmYWxzZQotICAgIFdlYkNvcmU6Ci0gICAgICBkZWZhdWx0OiBmYWxzZQogCiBSZXNvdXJj
ZVVzYWdlT3ZlcmxheVZpc2libGU6CiAgIHR5cGU6IGJvb2wKSW5kZXg6IFNvdXJjZS9XVEYvU2Ny
aXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0ludGVybmFsLnlhbWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzSW50ZXJuYWwu
eWFtbAkocmV2aXNpb24gMjc0MTQ4KQorKysgU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2Vz
L1dlYlByZWZlcmVuY2VzSW50ZXJuYWwueWFtbAkod29ya2luZyBjb3B5KQpAQCAtNzU4LDExICs3
NTgsMTQgQEAgVXBncmFkZUtub3duSG9zdHNUb0hUVFBTRW5hYmxlZDoKICAgdHlwZTogYm9vbAog
ICBodW1hblJlYWRhYmxlTmFtZTogIlVwZ3JhZGUga25vd24gaG9zdHMgdG8gSFRUUFMiCiAgIGh1
bWFuUmVhZGFibGVEZXNjcmlwdGlvbjogIlVwZ3JhZGUga25vd24gaG9zdHMgdG8gSFRUUFMiCi0g
IHdlYmNvcmVCaW5kaW5nOiBub25lCiAgIGV4cG9zZWQ6IFsgV2ViS2l0IF0KICAgZGVmYXVsdFZh
bHVlOgorICAgIFdlYktpdExlZ2FjeToKKyAgICAgIGRlZmF1bHQ6IGZhbHNlCiAgICAgV2ViS2l0
OgogICAgICAgZGVmYXVsdDogdHJ1ZQorICAgIFdlYkNvcmU6CisgICAgICBkZWZhdWx0OiBmYWxz
ZQogCiBVc2VHUFVQcm9jZXNzRm9yQ2FudmFzUmVuZGVyaW5nRW5hYmxlZDoKICAgdHlwZTogYm9v
bApJbmRleDogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjc0MTQ4KQorKysgU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzAgQEAKKzIwMjEtMDMtMDkgIFNhbSBX
ZWluaWcgIDx3ZWluaWdAYXBwbGUuY29tPgorCisgICAgICAgIFByZWZlcmVuY2VzIGRvIG5vdCBu
ZWVkIHRvIGJlIHBhc3NlZCB0byB0aGUgV2ViUHJvY2VzcyB2aWEgV2ViUGFnZUNyZWF0aW9uUGFy
YW1ldGVycyBzaW5jZSB0aGUgc3RvcmUgYWxyZWFkeSBpcworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIyOTQ1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBjb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0
ZW5zaW9uc0JhY2tlbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6
OkNvbnRlbnRFeHRlbnNpb25zQmFja2VuZDo6cHJvY2Vzc0NvbnRlbnRSdWxlTGlzdHNGb3JMb2Fk
KToKKyAgICAgICAgR2V0IHVwZ3JhZGVLbm93bkhvc3RzVG9IVFRQU0VuYWJsZWQgc3RhdGUgZnJv
bSBwcmVmZXJlbmNlcywgcmF0aGVyIHRoYW4gaGF2aW5nIGl0IGxpdmUKKyAgICAgICAgb24gdGhl
IHBhZ2UuCisKKyAgICAgICAgKiBwYWdlL0V2ZW50SGFuZGxlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpFdmVudEhhbmRsZXI6Om1vdXNlRG93bk1heVN0YXJ0U2VsZWN0IGNvbnN0KToKKyAgICAg
ICAgR2V0IHRleHRJbnRlcmFjdGlvbkVuYWJsZWQgc3RhdGUgZnJvbSBwcmVmZXJlbmNlcywgcmF0
aGVyIHRoYW4gY29weWluZyBpdHMgc3RhdGUgdG8gdGhlIHBhZ2UuCisKKyAgICAgICAgKiBwYWdl
L1BhZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6bV9zaG91bGRSZWxheFRoaXJkUGFydHlDb29r
aWVCbG9ja2luZyk6CisgICAgICAgIChXZWJDb3JlOjptX2h0dHBzVXBncmFkZUVuYWJsZWQpOiBE
ZWxldGVkLgorICAgICAgICAqIHBhZ2UvUGFnZS5oOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6
dGV4dEludGVyYWN0aW9uRW5hYmxlZCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpQYWdlOjpzZXRUZXh0SW50ZXJhY3Rpb25FbmFibGVkKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OlBhZ2U6Omh0dHBzVXBncmFkZUVuYWJsZWQgY29uc3QpOiBEZWxldGVkLgorICAgICAg
ICAqIHBhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uaDoKKyAgICAgICAgUmVtb3ZlIGh0dHBzVXBncmFk
ZUVuYWJsZWQgYW5kIHRleHRJbnRlcmFjdGlvbkVuYWJsZWQgc3RhdGUgZnJvbSBQYWdlL1BhZ2VD
b25maWd1cmF0aW9uIGFuZAorICAgICAgICBoYXZlIHRoZW0gdXNlIFNldHRpbmdzIGxpa2Ugb3Ro
ZXIgc2V0dGluZ3MuCisKIDIwMjEtMDMtMDkgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBh
cHBsZS5jb20+CiAKICAgICAgICAgW21hY09TXSBBZGQgYSB3YXkgdG8gdHJpZ2dlciB3ZWJwYWdl
IHRyYW5zbGF0aW9uIHZpYSB0aGUgY29udGV4dCBtZW51CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9j
b250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uc0JhY2tlbmQuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25zQmFj
a2VuZC5jcHAJKHJldmlzaW9uIDI3NDE0OCkKKysrIFNvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRl
bnNpb25zL0NvbnRlbnRFeHRlbnNpb25zQmFja2VuZC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE4
Myw3ICsxODMsNyBAQCBDb250ZW50UnVsZUxpc3RSZXN1bHRzIENvbnRlbnRFeHRlbnNpb25zCiAg
ICAgYXV0byBhY3Rpb25zID0gYWN0aW9uc0ZvclJlc291cmNlTG9hZChyZXNvdXJjZUxvYWRJbmZv
KTsKIAogICAgIENvbnRlbnRSdWxlTGlzdFJlc3VsdHMgcmVzdWx0czsKLSAgICBpZiAocGFnZS5o
dHRwc1VwZ3JhZGVFbmFibGVkKCkpCisgICAgaWYgKHBhZ2Uuc2V0dGluZ3MoKS51cGdyYWRlS25v
d25Ib3N0c1RvSFRUUFNFbmFibGVkKCkpCiAgICAgICAgIG1ha2VTZWN1cmVJZk5lY2Vzc2FyeShy
ZXN1bHRzLCB1cmwpOwogICAgIHJlc3VsdHMucmVzdWx0cy5yZXNlcnZlSW5pdGlhbENhcGFjaXR5
KGFjdGlvbnMuc2l6ZSgpKTsKICAgICBmb3IgKGNvbnN0IGF1dG8mIGFjdGlvbnNGcm9tQ29udGVu
dFJ1bGVMaXN0IDogYWN0aW9ucykgewpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhh
bmRsZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVy
LmNwcAkocmV2aXNpb24gMjc0MTQ4KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRs
ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03MDgsOCArNzA4LDcgQEAgYm9vbCBFdmVudEhhbmRs
ZXI6OmNhbk1vdXNlRG93blN0YXJ0U2VsZQogCiBib29sIEV2ZW50SGFuZGxlcjo6bW91c2VEb3du
TWF5U3RhcnRTZWxlY3QoKSBjb25zdAogewotICAgIGF1dG8qIHBhZ2UgPSBtX2ZyYW1lLnBhZ2Uo
KTsKLSAgICBpZiAocGFnZSAmJiAhcGFnZS0+dGV4dEludGVyYWN0aW9uRW5hYmxlZCgpKQorICAg
IGlmICghbV9mcmFtZS5zZXR0aW5ncygpLnRleHRJbnRlcmFjdGlvbkVuYWJsZWQoKSkKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogCiAgICAgcmV0dXJuIG1fbW91c2VEb3duTWF5U3RhcnRTZWxlY3Q7
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAJKHJldmlzaW9uIDI3NDE0OCkKKysrIFNvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMwNiw4ICszMDYsNiBAQCBQYWdl
OjpQYWdlKFBhZ2VDb25maWd1cmF0aW9uJiYgcGFnZUNvbmZpCiAgICAgLCBtX2xvYWRzU3VicmVz
b3VyY2VzKHBhZ2VDb25maWd1cmF0aW9uLmxvYWRzU3VicmVzb3VyY2VzKQogICAgICwgbV9sb2Fk
c0Zyb21OZXR3b3JrKHBhZ2VDb25maWd1cmF0aW9uLmxvYWRzRnJvbU5ldHdvcmspCiAgICAgLCBt
X3Nob3VsZFJlbGF4VGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nKHBhZ2VDb25maWd1cmF0aW9uLnNo
b3VsZFJlbGF4VGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nKQotICAgICwgbV90ZXh0SW50ZXJhY3Rp
b25FbmFibGVkKHBhZ2VDb25maWd1cmF0aW9uLnRleHRJbnRlcmFjdGlvbkVuYWJsZWQpCi0gICAg
LCBtX2h0dHBzVXBncmFkZUVuYWJsZWQocGFnZUNvbmZpZ3VyYXRpb24uaHR0cHNVcGdyYWRlRW5h
YmxlZCkKIHsKICAgICB1cGRhdGVUaW1lclRocm90dGxpbmdTdGF0ZSgpOwogCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdl
L1BhZ2UuaAkocmV2aXNpb24gMjc0MTQ4KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTgzMywxMSArODMzLDYgQEAgcHVibGljOgogCiAgICAgTW9ub3Rv
bmljVGltZSBsYXN0UmVuZGVyaW5nVXBkYXRlVGltZXN0YW1wKCkgY29uc3QgeyByZXR1cm4gbV9s
YXN0UmVuZGVyaW5nVXBkYXRlVGltZXN0YW1wOyB9CiAKLSAgICBib29sIHRleHRJbnRlcmFjdGlv
bkVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX3RleHRJbnRlcmFjdGlvbkVuYWJsZWQ7IH0KLSAg
ICB2b2lkIHNldFRleHRJbnRlcmFjdGlvbkVuYWJsZWQoYm9vbCB2YWx1ZSkgeyBtX3RleHRJbnRl
cmFjdGlvbkVuYWJsZWQgPSB2YWx1ZTsgfQotCi0gICAgYm9vbCBodHRwc1VwZ3JhZGVFbmFibGVk
KCkgY29uc3QgeyByZXR1cm4gbV9odHRwc1VwZ3JhZGVFbmFibGVkOyB9Ci0KICAgICBMb2FkU2No
ZWR1bGluZ01vZGUgbG9hZFNjaGVkdWxpbmdNb2RlKCkgY29uc3QgeyByZXR1cm4gbV9sb2FkU2No
ZWR1bGluZ01vZGU7IH0KICAgICB2b2lkIHNldExvYWRTY2hlZHVsaW5nTW9kZShMb2FkU2NoZWR1
bGluZ01vZGUpOwogCkBAIC0xMTQ3LDkgKzExNDIsNiBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9o
YXNCZWVuTm90aWZpZWRUb0luamVjdFVzZXJTY3JpcHRzIHsgZmFsc2UgfTsKIAogICAgIE1vbm90
b25pY1RpbWUgbV9sYXN0UmVuZGVyaW5nVXBkYXRlVGltZXN0YW1wOwotICAgIAotICAgIGJvb2wg
bV90ZXh0SW50ZXJhY3Rpb25FbmFibGVkIHsgdHJ1ZSB9OwotICAgIGNvbnN0IGJvb2wgbV9odHRw
c1VwZ3JhZGVFbmFibGVkIHsgdHJ1ZSB9OwogICAgIG11dGFibGUgTWVkaWFTZXNzaW9uR3JvdXBJ
ZGVudGlmaWVyIG1fbWVkaWFTZXNzaW9uR3JvdXBJZGVudGlmaWVyOwogfTsKIApJbmRleDogU291
cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uaAkocmV2aXNpb24gMjc0MTQ4KQorKysg
U291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBA
IC0xMjksMTIgKzEyOSwxMiBAQCBwdWJsaWM6CiAgICAgVmVjdG9yPFVzZXJDb250ZW50VVJMUGF0
dGVybj4gY29yc0Rpc2FibGluZ1BhdHRlcm5zOwogICAgIFVuaXF1ZVJlZjxTcGVlY2hSZWNvZ25p
dGlvblByb3ZpZGVyPiBzcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyOwogICAgIFVuaXF1ZVJlZjxN
ZWRpYVJlY29yZGVyUHJvdmlkZXI+IG1lZGlhUmVjb3JkZXJQcm92aWRlcjsKKworICAgIC8vIEZJ
WE1FOiBUaGVzZSBzaG91bGQgYmUgYWxsIGJlIFNldHRpbmdzLgogICAgIGJvb2wgbG9hZHNTdWJy
ZXNvdXJjZXMgeyB0cnVlIH07CiAgICAgYm9vbCBsb2Fkc0Zyb21OZXR3b3JrIHsgdHJ1ZSB9Owog
ICAgIGJvb2wgdXNlclNjcmlwdHNTaG91bGRXYWl0VW50aWxOb3RpZmljYXRpb24geyB0cnVlIH07
CiAgICAgU2hvdWxkUmVsYXhUaGlyZFBhcnR5Q29va2llQmxvY2tpbmcgc2hvdWxkUmVsYXhUaGly
ZFBhcnR5Q29va2llQmxvY2tpbmcgeyBTaG91bGRSZWxheFRoaXJkUGFydHlDb29raWVCbG9ja2lu
Zzo6Tm8gfTsKLSAgICBib29sIHRleHRJbnRlcmFjdGlvbkVuYWJsZWQgeyB0cnVlIH07Ci0gICAg
Ym9vbCBodHRwc1VwZ3JhZGVFbmFibGVkIHsgdHJ1ZSB9OwogfTsKIAogfQpJbmRleDogU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9DaGFuZ2VMb2cJ
KHJldmlzaW9uIDI3NDE0OCkKKysrIFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDMgKzEsMjcgQEAKKzIwMjEtMDMtMDkgIFNhbSBXZWluaWcgIDx3ZWluaWdAYXBw
bGUuY29tPgorCisgICAgICAgIFByZWZlcmVuY2VzIGRvIG5vdCBuZWVkIHRvIGJlIHBhc3NlZCB0
byB0aGUgV2ViUHJvY2VzcyB2aWEgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyBzaW5jZSB0aGUg
c3RvcmUgYWxyZWFkeSBpcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjIyOTQ1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgbmVlZHNJbkFwcEJyb3dzZXJQcml2YWN5UXVpcmtzLCB0ZXh0SW50ZXJhY3Rpb25F
bmFibGVkIGFuZCBodHRwc1VwZ3JhZGVFbmFibGVkIHdlcmUgYWxsIGJlaW5nIHBhc3NlZAorICAg
ICAgICB0byB0aGUgV2ViUHJvY2VzcyB0d2ljZSwgb25jZSB2aWEgdGhlIHByZWZlcmVuY2VzIHN0
b3JlLCBhbmQgb25jZSB2aWEgZXhwbGljaXQgc2VyaWFsaXphdGlvbi4KKyAgICAgICAgCisgICAg
ICAgIFVzZSB0aGUgcHJlZmVyZW5jZXMgaW5mcmFzdHJ1Y3R1cmUgdG8gZG8gdGhpcyBmb3IgdXMg
aW5zdGVhZCwgYW5kIHJlbW92ZSBhIGJ1bmNoIG9mIHVubmVlZGVkIGNvZGUuCisKKyAgICAgICAg
KiBTaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5jcHA6CisgICAgICAgIChXZWJLaXQ6
OldlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVk
L1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLV2ViVmlldy5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9zZXR1cFBhZ2VDb25maWd1
cmF0aW9uOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmNyZWF0aW9uUGFyYW1ldGVycyk6CisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjptX2xhc3RO
YXZpZ2F0aW9uV2FzQXBwQm91bmQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjp1cGRhdGVQ
cmVmZXJlbmNlcyk6CisKIDIwMjEtMDMtMDkgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBh
cHBsZS5jb20+CiAKICAgICAgICAgW21hY09TXSBBZGQgYSB3YXkgdG8gdHJpZ2dlciB3ZWJwYWdl
IHRyYW5zbGF0aW9uIHZpYSB0aGUgY29udGV4dCBtZW51CkluZGV4OiBTb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAkocmV2aXNpb24gMjc0
MTQ4KQorKysgU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTE3MSw3ICsxNzEsNiBAQCB2b2lkIFdlYlBhZ2VDcmVhdGlv
blBhcmFtZXRlcnM6OmVuY29kZShJCiAgICAgZW5jb2RlciA8PCBzaG91bGRFbmFibGVWUDlEZWNv
ZGVyOwogICAgIGVuY29kZXIgPDwgc2hvdWxkRW5hYmxlVlA5U1dEZWNvZGVyOwogI2lmIEVOQUJM
RShBUFBfQk9VTkRfRE9NQUlOUykKLSAgICBlbmNvZGVyIDw8IG5lZWRzSW5BcHBCcm93c2VyUHJp
dmFjeVF1aXJrczsKICAgICBlbmNvZGVyIDw8IGxpbWl0c05hdmlnYXRpb25zVG9BcHBCb3VuZERv
bWFpbnM7CiAjZW5kaWYKICAgICBlbmNvZGVyIDw8IGxhc3ROYXZpZ2F0aW9uV2FzQXBwQm91bmQ7
CkBAIC0xODIsOCArMTgxLDYgQEAgdm9pZCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNv
ZGUoSQogICAgIGVuY29kZXIgPDwgdGhlbWVOYW1lOwogI2VuZGlmCiAgICAgCi0gICAgZW5jb2Rl
ciA8PCB0ZXh0SW50ZXJhY3Rpb25FbmFibGVkOwotICAgIGVuY29kZXIgPDwgaHR0cHNVcGdyYWRl
RW5hYmxlZDsKICNpZiBQTEFURk9STShJT1MpCiAgICAgZW5jb2RlciA8PCBhbGxvd3NEZXByZWNh
dGVkU3luY2hyb25vdXNYTUxIdHRwUmVxdWVzdER1cmluZ1VubG9hZDsKICNlbmRpZgpAQCAtNTY4
LDkgKzU2NSw2IEBAIE9wdGlvbmFsPFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM+IFdlYlAKICAg
ICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIAogI2lmIEVOQUJMRShBUFBfQk9VTkRfRE9NQUlO
UykKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMubmVlZHNJbkFwcEJyb3dzZXJQ
cml2YWN5UXVpcmtzKSkKLSAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLSAgICAKICAgICBp
ZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMubGltaXRzTmF2aWdhdGlvbnNUb0FwcEJvdW5k
RG9tYWlucykpCiAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAjZW5kaWYKQEAgLTU4OCwx
MiArNTgyLDYgQEAgT3B0aW9uYWw8V2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycz4gV2ViUAogICAg
ICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogI2VuZGlmCiAgICAgCi0gICAgaWYgKCFkZWNvZGVy
LmRlY29kZShwYXJhbWV0ZXJzLnRleHRJbnRlcmFjdGlvbkVuYWJsZWQpKQotICAgICAgICByZXR1
cm4gV1RGOjpudWxsb3B0OwotCi0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLmh0
dHBzVXBncmFkZUVuYWJsZWQpKQotICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwotCiAjaWYg
UExBVEZPUk0oSU9TKQogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5hbGxvd3NE
ZXByZWNhdGVkU3luY2hyb25vdXNYTUxIdHRwUmVxdWVzdER1cmluZ1VubG9hZCkpCiAgICAgICAg
IHJldHVybiBXVEY6Om51bGxvcHQ7CkluZGV4OiBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdl
Q3JlYXRpb25QYXJhbWV0ZXJzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oCShyZXZpc2lvbiAyNzQxNDgpCisrKyBTb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmgJKHdvcmtpbmcgY29weSkK
QEAgLTI0Miw3ICsyNDIsNiBAQCBzdHJ1Y3QgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyB7CiAg
ICAgYm9vbCBzaG91bGRFbmFibGVWUDlEZWNvZGVyIHsgZmFsc2UgfTsKICAgICBib29sIHNob3Vs
ZEVuYWJsZVZQOVNXRGVjb2RlciB7IGZhbHNlIH07CiAjaWYgRU5BQkxFKEFQUF9CT1VORF9ET01B
SU5TKQotICAgIGJvb2wgbmVlZHNJbkFwcEJyb3dzZXJQcml2YWN5UXVpcmtzIHsgZmFsc2UgfTsK
ICAgICBib29sIGxpbWl0c05hdmlnYXRpb25zVG9BcHBCb3VuZERvbWFpbnMgeyBmYWxzZSB9Owog
I2VuZGlmCiAgICAgYm9vbCBsYXN0TmF2aWdhdGlvbldhc0FwcEJvdW5kIHsgZmFsc2UgfTsKQEAg
LTI1Myw5ICsyNTIsNiBAQCBzdHJ1Y3QgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyB7CiAjaWYg
UExBVEZPUk0oR1RLKQogICAgIFN0cmluZyB0aGVtZU5hbWU7CiAjZW5kaWYKLQotICAgIGJvb2wg
dGV4dEludGVyYWN0aW9uRW5hYmxlZCB7IHRydWUgfTsKLSAgICBib29sIGh0dHBzVXBncmFkZUVu
YWJsZWQgeyB0cnVlIH07CiAgICAgCiAjaWYgUExBVEZPUk0oSU9TKQogICAgIGJvb2wgYWxsb3dz
RGVwcmVjYXRlZFN5bmNocm9ub3VzWE1MSHR0cFJlcXVlc3REdXJpbmdVbmxvYWQgeyBmYWxzZSB9
OwpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCShyZXZpc2lv
biAyNzQxNDgpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC03OTE4LDggKzc5MTgsMTAgQEAgV2ViUGFnZUNyZWF0aW9uUGFyYW1l
dGVycyBXZWJQYWdlUHJveHk6OgogICAgIHBhcmFtZXRlcnMudXJsU2NoZW1lc1dpdGhMZWdhY3lD
dXN0b21Qcm90b2NvbEhhbmRsZXJzID0gV2ViUHJvY2Vzc1Bvb2w6OnVybFNjaGVtZXNXaXRoQ3Vz
dG9tUHJvdG9jb2xIYW5kbGVycygpOwogCiAjaWYgRU5BQkxFKFdFQl9SVEMpCisgICAgLy8gRklY
TUU6IFRoaXMgaXMgYWxzbyBiZWluZyBwYXNzZWQgb3ZlciB0aGUgdG8gV2ViUHJvY2VzcyB2aWEg
dGhlIFByZWZlcmVuY2VzU3RvcmUuCiAgICAgcGFyYW1ldGVycy5pY2VDYW5kaWRhdGVGaWx0ZXJp
bmdFbmFibGVkID0gbV9wcmVmZXJlbmNlcy0+aWNlQ2FuZGlkYXRlRmlsdGVyaW5nRW5hYmxlZCgp
OwogI2lmIFVTRShMSUJXRUJSVEMpCisgICAgLy8gRklYTUU6IFRoaXMgaXMgYWxzbyBiZWluZyBw
YXNzZWQgb3ZlciB0aGUgdG8gV2ViUHJvY2VzcyB2aWEgdGhlIFByZWZlcmVuY2VzU3RvcmUuCiAg
ICAgcGFyYW1ldGVycy5lbnVtZXJhdGluZ0FsbE5ldHdvcmtJbnRlcmZhY2VzRW5hYmxlZCA9IG1f
cHJlZmVyZW5jZXMtPmVudW1lcmF0aW5nQWxsTmV0d29ya0ludGVyZmFjZXNFbmFibGVkKCk7CiAj
ZW5kaWYKICNlbmRpZgpAQCAtNzk0NSwyMCArNzk0NywzMSBAQCBXZWJQYWdlQ3JlYXRpb25QYXJh
bWV0ZXJzIFdlYlBhZ2VQcm94eTo6CiAgICAgcHJvY2Vzcy5hZGRXZWJVc2VyQ29udGVudENvbnRy
b2xsZXJQcm94eSh1c2VyQ29udGVudENvbnRyb2xsZXIpOwogICAgIHBhcmFtZXRlcnMudXNlckNv
bnRlbnRDb250cm9sbGVyUGFyYW1ldGVycyA9IHVzZXJDb250ZW50Q29udHJvbGxlci5nZXQoKS5w
YXJhbWV0ZXJzKCk7CiAKKyAgICAvLyBGSVhNRTogVGhpcyBpcyBhbHNvIGJlaW5nIHBhc3NlZCBv
dmVyIHRoZSB0byBXZWJQcm9jZXNzIHZpYSB0aGUgUHJlZmVyZW5jZXNTdG9yZS4KICAgICBwYXJh
bWV0ZXJzLnNob3VsZENhcHR1cmVBdWRpb0luVUlQcm9jZXNzID0gcHJlZmVyZW5jZXMoKS5jYXB0
dXJlQXVkaW9JblVJUHJvY2Vzc0VuYWJsZWQoKTsKKyAgICAvLyBGSVhNRTogVGhpcyBpcyBhbHNv
IGJlaW5nIHBhc3NlZCBvdmVyIHRoZSB0byBXZWJQcm9jZXNzIHZpYSB0aGUgUHJlZmVyZW5jZXNT
dG9yZS4KICAgICBwYXJhbWV0ZXJzLnNob3VsZENhcHR1cmVBdWRpb0luR1BVUHJvY2VzcyA9IHBy
ZWZlcmVuY2VzKCkuY2FwdHVyZUF1ZGlvSW5HUFVQcm9jZXNzRW5hYmxlZCgpOworICAgIC8vIEZJ
WE1FOiBUaGlzIGlzIGFsc28gYmVpbmcgcGFzc2VkIG92ZXIgdGhlIHRvIFdlYlByb2Nlc3Mgdmlh
IHRoZSBQcmVmZXJlbmNlc1N0b3JlLgogICAgIHBhcmFtZXRlcnMuc2hvdWxkQ2FwdHVyZVZpZGVv
SW5VSVByb2Nlc3MgPSBwcmVmZXJlbmNlcygpLmNhcHR1cmVWaWRlb0luVUlQcm9jZXNzRW5hYmxl
ZCgpOworICAgIC8vIEZJWE1FOiBUaGlzIGlzIGFsc28gYmVpbmcgcGFzc2VkIG92ZXIgdGhlIHRv
IFdlYlByb2Nlc3MgdmlhIHRoZSBQcmVmZXJlbmNlc1N0b3JlLgogICAgIHBhcmFtZXRlcnMuc2hv
dWxkQ2FwdHVyZVZpZGVvSW5HUFVQcm9jZXNzID0gcHJlZmVyZW5jZXMoKS5jYXB0dXJlVmlkZW9J
bkdQVVByb2Nlc3NFbmFibGVkKCk7CisgICAgLy8gRklYTUU6IFRoaXMgaXMgYWxzbyBiZWluZyBw
YXNzZWQgb3ZlciB0aGUgdG8gV2ViUHJvY2VzcyB2aWEgdGhlIFByZWZlcmVuY2VzU3RvcmUuCiAg
ICAgcGFyYW1ldGVycy5zaG91bGRSZW5kZXJDYW52YXNJbkdQVVByb2Nlc3MgPSBwcmVmZXJlbmNl
cygpLnVzZUdQVVByb2Nlc3NGb3JDYW52YXNSZW5kZXJpbmdFbmFibGVkKCk7CisgICAgLy8gRklY
TUU6IFRoaXMgaXMgYWxzbyBiZWluZyBwYXNzZWQgb3ZlciB0aGUgdG8gV2ViUHJvY2VzcyB2aWEg
dGhlIFByZWZlcmVuY2VzU3RvcmUuCiAgICAgcGFyYW1ldGVycy5zaG91bGRSZW5kZXJET01JbkdQ
VVByb2Nlc3MgPSBwcmVmZXJlbmNlcygpLnVzZUdQVVByb2Nlc3NGb3JET01SZW5kZXJpbmdFbmFi
bGVkKCk7CisgICAgLy8gRklYTUU6IFRoaXMgaXMgYWxzbyBiZWluZyBwYXNzZWQgb3ZlciB0aGUg
dG8gV2ViUHJvY2VzcyB2aWEgdGhlIFByZWZlcmVuY2VzU3RvcmUuCiAgICAgcGFyYW1ldGVycy5z
aG91bGRQbGF5TWVkaWFJbkdQVVByb2Nlc3MgPSBwcmVmZXJlbmNlcygpLnVzZUdQVVByb2Nlc3NG
b3JNZWRpYUVuYWJsZWQoKTsKICNpZiBFTkFCTEUoV0VCR0wpCisgICAgLy8gRklYTUU6IFRoaXMg
aXMgYWxzbyBiZWluZyBwYXNzZWQgb3ZlciB0aGUgdG8gV2ViUHJvY2VzcyB2aWEgdGhlIFByZWZl
cmVuY2VzU3RvcmUuCiAgICAgcGFyYW1ldGVycy5zaG91bGRSZW5kZXJXZWJHTEluR1BVUHJvY2Vz
cyA9IHByZWZlcmVuY2VzKCkudXNlR1BVUHJvY2Vzc0ZvcldlYkdMRW5hYmxlZCgpOwogI2VuZGlm
CiAKKyAgICAvLyBGSVhNRTogVGhpcyBpcyBhbHNvIGJlaW5nIHBhc3NlZCBvdmVyIHRoZSB0byBX
ZWJQcm9jZXNzIHZpYSB0aGUgUHJlZmVyZW5jZXNTdG9yZS4KICAgICBwYXJhbWV0ZXJzLnNob3Vs
ZEVuYWJsZVZQOURlY29kZXIgPSBwcmVmZXJlbmNlcygpLnZwOURlY29kZXJFbmFibGVkKCk7CiAj
aWYgRU5BQkxFKFZQOSkgJiYgUExBVEZPUk0oQ09DT0EpCisgICAgLy8gRklYTUU6IFRoaXMgaXMg
YWxzbyBiZWluZyBwYXNzZWQgb3ZlciB0aGUgdG8gV2ViUHJvY2VzcyB2aWEgdGhlIFByZWZlcmVu
Y2VzU3RvcmUuCiAgICAgcGFyYW1ldGVycy5zaG91bGRFbmFibGVWUDhEZWNvZGVyID0gcHJlZmVy
ZW5jZXMoKS52cDlEZWNvZGVyRW5hYmxlZCgpOworICAgIC8vIEZJWE1FOiBUaGlzIGlzIGFsc28g
YmVpbmcgcGFzc2VkIG92ZXIgdGhlIHRvIFdlYlByb2Nlc3MgdmlhIHRoZSBQcmVmZXJlbmNlc1N0
b3JlLgogICAgIHBhcmFtZXRlcnMuc2hvdWxkRW5hYmxlVlA5U1dEZWNvZGVyID0gcHJlZmVyZW5j
ZXMoKS52cDlEZWNvZGVyRW5hYmxlZCgpICYmICghV2ViQ29yZTo6c3lzdGVtSGFzQmF0dGVyeSgp
IHx8IHByZWZlcmVuY2VzKCkudnA5U1dEZWNvZGVyRW5hYmxlZE9uQmF0dGVyeSgpKTsKICNlbmRp
ZgogICAgIHBhcmFtZXRlcnMuc2hvdWxkQ2FwdHVyZURpc3BsYXlJblVJUHJvY2VzcyA9IG1fcHJv
Y2Vzcy0+cHJvY2Vzc1Bvb2woKS5jb25maWd1cmF0aW9uKCkuc2hvdWxkQ2FwdHVyZURpc3BsYXlJ
blVJUHJvY2VzcygpOwpAQCAtNzk4MCwxNCArNzk5Myw4IEBAIFdlYlBhZ2VDcmVhdGlvblBhcmFt
ZXRlcnMgV2ViUGFnZVByb3h5OjoKICAgICB9CiAjZW5kaWYKIAotI2lmIEVOQUJMRShBUFBfQk9V
TkRfRE9NQUlOUykKLSAgICBwYXJhbWV0ZXJzLm5lZWRzSW5BcHBCcm93c2VyUHJpdmFjeVF1aXJr
cyA9IHByZWZlcmVuY2VzKCkubmVlZHNJbkFwcEJyb3dzZXJQcml2YWN5UXVpcmtzKCk7Ci0jZW5k
aWYKLSAgICAKLSAgICBwYXJhbWV0ZXJzLnRleHRJbnRlcmFjdGlvbkVuYWJsZWQgPSBwcmVmZXJl
bmNlcygpLnRleHRJbnRlcmFjdGlvbkVuYWJsZWQoKTsKLSAgICBwYXJhbWV0ZXJzLmh0dHBzVXBn
cmFkZUVuYWJsZWQgPSBwcmVmZXJlbmNlcygpLnVwZ3JhZGVLbm93bkhvc3RzVG9IVFRQU0VuYWJs
ZWQoKSA/IG1fY29uZmlndXJhdGlvbi0+aHR0cHNVcGdyYWRlRW5hYmxlZCgpIDogZmFsc2U7Ci0K
ICNpZiBQTEFURk9STShJT1MpCisgICAgLy8gRklYTUU6IFRoaXMgaXMgYWxzbyBiZWluZyBwYXNz
ZWQgb3ZlciB0aGUgdG8gV2ViUHJvY2VzcyB2aWEgdGhlIFByZWZlcmVuY2VzU3RvcmUuCiAgICAg
cGFyYW1ldGVycy5hbGxvd3NEZXByZWNhdGVkU3luY2hyb25vdXNYTUxIdHRwUmVxdWVzdER1cmlu
Z1VubG9hZCA9IGFsbG93c0RlcHJlY2F0ZWRTeW5jaHJvbm91c1hNTEh0dHBSZXF1ZXN0RHVyaW5n
VW5sb2FkKCk7CiAjZW5kaWYKIApJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLV2ViVmlldy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJWaWV3Lm1tCShyZXZpc2lvbiAyNzQxNDgpCisrKyBTb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC01NTAs
OCArNTUwLDggQEAgICAgIC8vIFdlIGFyZSBpbiB0aGUgVmlldydzIGluaXRpYWxpemF0aQogICAg
ICAgICBwYWdlQ29uZmlndXJhdGlvbi0+cHJlZmVyZW5jZXMoKS0+c2V0TWVkaWFEZXZpY2VzRW5h
YmxlZCghIVtfY29uZmlndXJhdGlvbiBfbWVkaWFDYXB0dXJlRW5hYmxlZF0pOwogCiAgICAgcGFn
ZUNvbmZpZ3VyYXRpb24tPnByZWZlcmVuY2VzKCktPnNldENvbG9yRmlsdGVyRW5hYmxlZCghIVtf
Y29uZmlndXJhdGlvbiBfY29sb3JGaWx0ZXJFbmFibGVkXSk7Ci0KICAgICBwYWdlQ29uZmlndXJh
dGlvbi0+cHJlZmVyZW5jZXMoKS0+c2V0VW5kb01hbmFnZXJBUElFbmFibGVkKCEhW19jb25maWd1
cmF0aW9uIF91bmRvTWFuYWdlckFQSUVuYWJsZWRdKTsKKyAgICBwYWdlQ29uZmlndXJhdGlvbi0+
cHJlZmVyZW5jZXMoKS0+c2V0VXBncmFkZUtub3duSG9zdHNUb0hUVFBTRW5hYmxlZCghIVtfY29u
ZmlndXJhdGlvbiB1cGdyYWRlS25vd25Ib3N0c1RvSFRUUFNdKTsKIAogI2lmIEVOQUJMRShMRUdB
Q1lfRU5DUllQVEVEX01FRElBKQogICAgIHBhZ2VDb25maWd1cmF0aW9uLT5wcmVmZXJlbmNlcygp
LT5zZXRMZWdhY3lFbmNyeXB0ZWRNZWRpYUFQSUVuYWJsZWQoISFbX2NvbmZpZ3VyYXRpb24gX2xl
Z2FjeUVuY3J5cHRlZE1lZGlhQVBJRW5hYmxlZF0pOwpJbmRleDogU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAJKHJldmlzaW9uIDI3NDE0OCkKKysrIFNvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC00NTIsOSArNDUyLDYgQEAgV2ViUGFnZTo6V2ViUGFnZShQYWdlSWRlbnRpZmllciBwYWdlSUQs
IAogI2lmIEVOQUJMRShXRUJHTCkKICAgICAsIG1fc2hvdWxkUmVuZGVyV2ViR0xJbkdQVVByb2Nl
c3MgeyBwYXJhbWV0ZXJzLnNob3VsZFJlbmRlcldlYkdMSW5HUFVQcm9jZXNzfQogI2VuZGlmCi0j
aWYgRU5BQkxFKEFQUF9CT1VORF9ET01BSU5TKQotICAgICwgbV9uZWVkc0luQXBwQnJvd3NlclBy
aXZhY3lRdWlya3MgeyBwYXJhbWV0ZXJzLm5lZWRzSW5BcHBCcm93c2VyUHJpdmFjeVF1aXJrcyB9
Ci0jZW5kaWYKICAgICAsIG1fbGF5ZXJIb3N0aW5nTW9kZShwYXJhbWV0ZXJzLmxheWVySG9zdGlu
Z01vZGUpCiAjaWYgRU5BQkxFKFBMQVRGT1JNX0RSSVZFTl9URVhUX0NIRUNLSU5HKQogICAgICwg
bV90ZXh0Q2hlY2tpbmdDb250cm9sbGVyUHJveHkobWFrZVVuaXF1ZVJlZjxUZXh0Q2hlY2tpbmdD
b250cm9sbGVyUHJveHk+KCp0aGlzKSkKQEAgLTYwMCw5ICs1OTcsNiBAQCBXZWJQYWdlOjpXZWJQ
YWdlKFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgCiAgICAgcGFnZUNvbmZpZ3VyYXRpb24ubG9hZHNT
dWJyZXNvdXJjZXMgPSBwYXJhbWV0ZXJzLmxvYWRzU3VicmVzb3VyY2VzOwogICAgIHBhZ2VDb25m
aWd1cmF0aW9uLmxvYWRzRnJvbU5ldHdvcmsgPSBwYXJhbWV0ZXJzLmxvYWRzRnJvbU5ldHdvcms7
CiAgICAgcGFnZUNvbmZpZ3VyYXRpb24uc2hvdWxkUmVsYXhUaGlyZFBhcnR5Q29va2llQmxvY2tp
bmcgPSBwYXJhbWV0ZXJzLnNob3VsZFJlbGF4VGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nOwotICAg
IHBhZ2VDb25maWd1cmF0aW9uLmh0dHBzVXBncmFkZUVuYWJsZWQgPSBwYXJhbWV0ZXJzLmh0dHBz
VXBncmFkZUVuYWJsZWQ7Ci0KLSAgICBwYWdlQ29uZmlndXJhdGlvbi50ZXh0SW50ZXJhY3Rpb25F
bmFibGVkID0gcGFyYW1ldGVycy50ZXh0SW50ZXJhY3Rpb25FbmFibGVkOwogICAgIAogICAgIGlm
ICghcGFyYW1ldGVycy5jcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2xDaGVja0VuYWJsZWQpCiAgICAg
ICAgIENyb3NzT3JpZ2luQWNjZXNzQ29udHJvbENoZWNrRGlzYWJsZXI6OnNpbmdsZXRvbigpLnNl
dENyb3NzT3JpZ2luQWNjZXNzQ29udHJvbENoZWNrRW5hYmxlZChmYWxzZSk7CkBAIC0zOTM1LDgg
KzM5MjksNiBAQCB2b2lkIFdlYlBhZ2U6OnVwZGF0ZVByZWZlcmVuY2VzKGNvbnN0IFdlCiAgICAg
bV9pcGNUZXN0aW5nQVBJRW5hYmxlZCA9IHN0b3JlLmdldEJvb2xWYWx1ZUZvcktleShXZWJQcmVm
ZXJlbmNlc0tleTo6aXBjVGVzdGluZ0FQSUVuYWJsZWRLZXkoKSk7CiAjZW5kaWYKIAotICAgIG1f
cGFnZS0+c2V0VGV4dEludGVyYWN0aW9uRW5hYmxlZChzdG9yZS5nZXRCb29sVmFsdWVGb3JLZXko
V2ViUHJlZmVyZW5jZXNLZXk6OnRleHRJbnRlcmFjdGlvbkVuYWJsZWRLZXkoKSkpOwotCiAjaWYg
RU5BQkxFKFdFQl9BVVRITikgJiYgUExBVEZPUk0oSU9TKQogICAgIGlmIChhdXRvKiBjb25uZWN0
aW9uID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKSkg
ewogICAgICAgICBpZiAoaXNQYXJlbnRQcm9jZXNzQUZ1bGxXZWJCcm93c2VyKGNvbm5lY3Rpb24t
PmdldEF1ZGl0VG9rZW4oKSkpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>422775</attachid>
            <date>2021-03-09 16:24:08 -0800</date>
            <delta_ts>2021-03-09 19:13:02 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222945-20210309162407.patch</filename>
            <type>text/plain</type>
            <size>15647</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyNzQxODUpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDIxLTAzLTA5ICBTYW0gV2VpbmlnICA8d2Vpbmln
QGFwcGxlLmNvbT4KKworICAgICAgICBQcmVmZXJlbmNlcyBkbyBub3QgbmVlZCB0byBiZSBwYXNz
ZWQgdG8gdGhlIFdlYlByb2Nlc3MgdmlhIFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMgc2luY2Ug
dGhlIHN0b3JlIGFscmVhZHkgaXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIyMjk0NQorCisgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEZyYXNlci4K
KworICAgICAgICAqIFNjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNEZWJ1Zy55YW1s
OgorICAgICAgICBOZWVkc0luQXBwQnJvd3NlclByaXZhY3lRdWlya3MgaXMgb25seSBldmVyIGFj
Y2Vzc2VkIHZpYSB0aGUgV2ViS2l0IHByZWZlcmVuY2VzIHN0b3JlLAorICAgICAgICBzbyBkb2Vz
IG5vdCBuZWVkIHRvIGJlIGV4cG9zZWQgaW4gV2ViS2l0TGVnYWN5IG9yIFdlYkNvcmUuIEFjaGll
dmUgdGhpcyBieSByZW1vdmluZyB0aGUKKyAgICAgICAgV2ViS2l0TGVnYWN5IGFuZCBXZWJDb3Jl
IGRlZmF1bHRzLgorCiAyMDIxLTAzLTA5ICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Vi
a2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCByZXZlcnRpbmcgcjI3NDE3MS4KSW5kZXg6
IFNvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0RlYnVnLnlhbWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVu
Y2VzRGVidWcueWFtbAkocmV2aXNpb24gMjc0MTU1KQorKysgU291cmNlL1dURi9TY3JpcHRzL1By
ZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRGVidWcueWFtbAkod29ya2luZyBjb3B5KQpAQCAtMTI3
LDE5ICsxMjcsMTUgQEAgTG9nc1BhZ2VNZXNzYWdlc1RvU3lzdGVtQ29uc29sZUVuYWJsZWQ6CiAg
ICAgV2ViQ29yZToKICAgICAgIGRlZmF1bHQ6IGZhbHNlCiAKLSMgRklYTUU6IFRoaXMgaXMgbm90
IHJlbGV2ZW50IGZvciBXZWJLaXRMZWdhY3ksIHNvIHNob3VsZCBiZSBleGNsdWRlZCBmcm9tIFdl
YktpdExlZ2FjeSBlbnRpcmVseS4KLSMgRklYTUU6IFRoaXMgaXMgbm90IHJlbGV2ZW50IGZvciBX
ZWJDb3JlLCBzbyBzaG91bGQgbm90IGhhdmUgV2ViQ29yZSBiaW5kaW5ncy4KIE5lZWRzSW5BcHBC
cm93c2VyUHJpdmFjeVF1aXJrczoKICAgdHlwZTogYm9vbAogICBodW1hblJlYWRhYmxlTmFtZTog
Ik5lZWRzIEluLUFwcCBCcm93c2VyIFByaXZhY3kgUXVpcmtzIgogICBodW1hblJlYWRhYmxlRGVz
Y3JpcHRpb246ICJFbmFibGUgcXVpcmtzIG5lZWRlZCB0byBzdXBwb3J0IEluLUFwcCBCcm93c2Vy
IHByaXZhY3kiCisgIHdlYmNvcmVCaW5kaW5nOiBub25lCisgIGV4cG9zZWQ6IFsgV2ViS2l0IF0K
ICAgZGVmYXVsdFZhbHVlOgotICAgIFdlYktpdExlZ2FjeToKLSAgICAgIGRlZmF1bHQ6IGZhbHNl
CiAgICAgV2ViS2l0OgogICAgICAgZGVmYXVsdDogZmFsc2UKLSAgICBXZWJDb3JlOgotICAgICAg
ZGVmYXVsdDogZmFsc2UKIAogUmVzb3VyY2VVc2FnZU92ZXJsYXlWaXNpYmxlOgogICB0eXBlOiBi
b29sCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNzQxNjMpCisrKyBTb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyMiBAQAorMjAyMS0wMy0wOSAgU2Ft
IFdlaW5pZyAgPHdlaW5pZ0BhcHBsZS5jb20+CisKKyAgICAgICAgUHJlZmVyZW5jZXMgZG8gbm90
IG5lZWQgdG8gYmUgcGFzc2VkIHRvIHRoZSBXZWJQcm9jZXNzIHZpYSBXZWJQYWdlQ3JlYXRpb25Q
YXJhbWV0ZXJzIHNpbmNlIHRoZSBzdG9yZSBhbHJlYWR5IGlzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjI5NDUKKworICAgICAgICBSZXZpZXdlZCBi
eSBTaW1vbiBGcmFzZXIuCisKKyAgICAgICAgKiBwYWdlL0V2ZW50SGFuZGxlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6Om1vdXNlRG93bk1heVN0YXJ0U2VsZWN0IGNvbnN0
KToKKyAgICAgICAgR2V0IHRleHRJbnRlcmFjdGlvbkVuYWJsZWQgc3RhdGUgZnJvbSBwcmVmZXJl
bmNlcywgcmF0aGVyIHRoYW4gY29weWluZyBpdHMgc3RhdGUgdG8gdGhlIHBhZ2UuCisKKyAgICAg
ICAgKiBwYWdlL1BhZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6bV9zaG91bGRSZWxheFRoaXJk
UGFydHlDb29raWVCbG9ja2luZyk6CisgICAgICAgICogcGFnZS9QYWdlLmg6CisgICAgICAgIChX
ZWJDb3JlOjpQYWdlOjp0ZXh0SW50ZXJhY3Rpb25FbmFibGVkIGNvbnN0KTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OlBhZ2U6OnNldFRleHRJbnRlcmFjdGlvbkVuYWJsZWQpOiBEZWxldGVk
LgorICAgICAgICAqIHBhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uaDoKKyAgICAgICAgUmVtb3ZlIHRl
eHRJbnRlcmFjdGlvbkVuYWJsZWQgc3RhdGUgZnJvbSBQYWdlL1BhZ2VDb25maWd1cmF0aW9uIGhh
dmUgaXQgdXNlIFNldHRpbmdzIGxpa2Ugb3RoZXIgc2V0dGluZ3MuCisKIDIwMjEtMDMtMDkgIFdl
bnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdl
ZCwgZml4IHRoZSBFTkFCTEUoQVBQX0hJR0hMSUdIVFMpIGJ1aWxkIGFmdGVyIHIyNzQxNTUKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAJKHJldmlzaW9uIDI3NDE1NSkKKysr
IFNvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
NzA4LDggKzcwOCw3IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpjYW5Nb3VzZURvd25TdGFydFNlbGUK
IAogYm9vbCBFdmVudEhhbmRsZXI6Om1vdXNlRG93bk1heVN0YXJ0U2VsZWN0KCkgY29uc3QKIHsK
LSAgICBhdXRvKiBwYWdlID0gbV9mcmFtZS5wYWdlKCk7Ci0gICAgaWYgKHBhZ2UgJiYgIXBhZ2Ut
PnRleHRJbnRlcmFjdGlvbkVuYWJsZWQoKSkKKyAgICBpZiAoIW1fZnJhbWUuc2V0dGluZ3MoKS50
ZXh0SW50ZXJhY3Rpb25FbmFibGVkKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIHJl
dHVybiBtX21vdXNlRG93bk1heVN0YXJ0U2VsZWN0OwpJbmRleDogU291cmNlL1dlYkNvcmUvcGFn
ZS9QYWdlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCShy
ZXZpc2lvbiAyNzQxNTUpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0zMDYsNyArMzA2LDYgQEAgUGFnZTo6UGFnZShQYWdlQ29uZmlndXJhdGlvbiYm
IHBhZ2VDb25maQogICAgICwgbV9sb2Fkc1N1YnJlc291cmNlcyhwYWdlQ29uZmlndXJhdGlvbi5s
b2Fkc1N1YnJlc291cmNlcykKICAgICAsIG1fbG9hZHNGcm9tTmV0d29yayhwYWdlQ29uZmlndXJh
dGlvbi5sb2Fkc0Zyb21OZXR3b3JrKQogICAgICwgbV9zaG91bGRSZWxheFRoaXJkUGFydHlDb29r
aWVCbG9ja2luZyhwYWdlQ29uZmlndXJhdGlvbi5zaG91bGRSZWxheFRoaXJkUGFydHlDb29raWVC
bG9ja2luZykKLSAgICAsIG1fdGV4dEludGVyYWN0aW9uRW5hYmxlZChwYWdlQ29uZmlndXJhdGlv
bi50ZXh0SW50ZXJhY3Rpb25FbmFibGVkKQogICAgICwgbV9odHRwc1VwZ3JhZGVFbmFibGVkKHBh
Z2VDb25maWd1cmF0aW9uLmh0dHBzVXBncmFkZUVuYWJsZWQpCiB7CiAgICAgdXBkYXRlVGltZXJU
aHJvdHRsaW5nU3RhdGUoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCShyZXZpc2lvbiAyNzQxNTUpCisr
KyBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAkod29ya2luZyBjb3B5KQpAQCAtODMzLDkgKzgz
Myw2IEBAIHB1YmxpYzoKIAogICAgIE1vbm90b25pY1RpbWUgbGFzdFJlbmRlcmluZ1VwZGF0ZVRp
bWVzdGFtcCgpIGNvbnN0IHsgcmV0dXJuIG1fbGFzdFJlbmRlcmluZ1VwZGF0ZVRpbWVzdGFtcDsg
fQogCi0gICAgYm9vbCB0ZXh0SW50ZXJhY3Rpb25FbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV90
ZXh0SW50ZXJhY3Rpb25FbmFibGVkOyB9Ci0gICAgdm9pZCBzZXRUZXh0SW50ZXJhY3Rpb25FbmFi
bGVkKGJvb2wgdmFsdWUpIHsgbV90ZXh0SW50ZXJhY3Rpb25FbmFibGVkID0gdmFsdWU7IH0KLQog
ICAgIGJvb2wgaHR0cHNVcGdyYWRlRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1faHR0cHNVcGdy
YWRlRW5hYmxlZDsgfQogCiAgICAgTG9hZFNjaGVkdWxpbmdNb2RlIGxvYWRTY2hlZHVsaW5nTW9k
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fbG9hZFNjaGVkdWxpbmdNb2RlOyB9CkBAIC0xMTQ3LDggKzEx
NDQsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9oYXNCZWVuTm90aWZpZWRUb0luamVjdFVzZXJT
Y3JpcHRzIHsgZmFsc2UgfTsKIAogICAgIE1vbm90b25pY1RpbWUgbV9sYXN0UmVuZGVyaW5nVXBk
YXRlVGltZXN0YW1wOwotICAgIAotICAgIGJvb2wgbV90ZXh0SW50ZXJhY3Rpb25FbmFibGVkIHsg
dHJ1ZSB9OworCiAgICAgY29uc3QgYm9vbCBtX2h0dHBzVXBncmFkZUVuYWJsZWQgeyB0cnVlIH07
CiAgICAgbXV0YWJsZSBNZWRpYVNlc3Npb25Hcm91cElkZW50aWZpZXIgbV9tZWRpYVNlc3Npb25H
cm91cElkZW50aWZpZXI7CiB9OwpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmln
dXJhdGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3Vy
YXRpb24uaAkocmV2aXNpb24gMjc0MTU1KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29u
ZmlndXJhdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMjksMTEgKzEyOSwxMiBAQCBwdWJsaWM6
CiAgICAgVmVjdG9yPFVzZXJDb250ZW50VVJMUGF0dGVybj4gY29yc0Rpc2FibGluZ1BhdHRlcm5z
OwogICAgIFVuaXF1ZVJlZjxTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyPiBzcGVlY2hSZWNvZ25p
dGlvblByb3ZpZGVyOwogICAgIFVuaXF1ZVJlZjxNZWRpYVJlY29yZGVyUHJvdmlkZXI+IG1lZGlh
UmVjb3JkZXJQcm92aWRlcjsKKworICAgIC8vIEZJWE1FOiBUaGVzZSBzaG91bGQgYmUgYWxsIGJl
IFNldHRpbmdzLgogICAgIGJvb2wgbG9hZHNTdWJyZXNvdXJjZXMgeyB0cnVlIH07CiAgICAgYm9v
bCBsb2Fkc0Zyb21OZXR3b3JrIHsgdHJ1ZSB9OwogICAgIGJvb2wgdXNlclNjcmlwdHNTaG91bGRX
YWl0VW50aWxOb3RpZmljYXRpb24geyB0cnVlIH07CiAgICAgU2hvdWxkUmVsYXhUaGlyZFBhcnR5
Q29va2llQmxvY2tpbmcgc2hvdWxkUmVsYXhUaGlyZFBhcnR5Q29va2llQmxvY2tpbmcgeyBTaG91
bGRSZWxheFRoaXJkUGFydHlDb29raWVCbG9ja2luZzo6Tm8gfTsKLSAgICBib29sIHRleHRJbnRl
cmFjdGlvbkVuYWJsZWQgeyB0cnVlIH07CiAgICAgYm9vbCBodHRwc1VwZ3JhZGVFbmFibGVkIHsg
dHJ1ZSB9OwogfTsKIApJbmRleDogU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdC9DaGFuZ2VMb2cJKHJldmlzaW9uIDI3NDE4NSkKKysrIFNvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjUgQEAKKzIwMjEtMDMt
MDkgIFNhbSBXZWluaWcgIDx3ZWluaWdAYXBwbGUuY29tPgorCisgICAgICAgIFByZWZlcmVuY2Vz
IGRvIG5vdCBuZWVkIHRvIGJlIHBhc3NlZCB0byB0aGUgV2ViUHJvY2VzcyB2aWEgV2ViUGFnZUNy
ZWF0aW9uUGFyYW1ldGVycyBzaW5jZSB0aGUgc3RvcmUgYWxyZWFkeSBpcworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIyOTQ1CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgorCisgICAgICAgIG5lZWRzSW5BcHBCcm93c2VyUHJpdmFj
eVF1aXJrcyBhbmQgdGV4dEludGVyYWN0aW9uRW5hYmxlZCB3ZXJlIGJvdGggYmVpbmcgcGFzc2Vk
IHRvIHRoZSBXZWJQcm9jZXNzIHR3aWNlLCAKKyAgICAgICAgb25jZSB2aWEgdGhlIHByZWZlcmVu
Y2VzIHN0b3JlLCBhbmQgb25jZSB2aWEgZXhwbGljaXQgc2VyaWFsaXphdGlvbi4KKyAgICAgICAg
CisgICAgICAgIFVzZSB0aGUgcHJlZmVyZW5jZXMgaW5mcmFzdHJ1Y3R1cmUgdG8gZG8gdGhpcyBm
b3IgdXMgaW5zdGVhZCwgYW5kIHJlbW92ZSBhIGJ1bmNoIG9mIHVubmVlZGVkIGNvZGUuCisKKyAg
ICAgICAgKiBTaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZSBjb25zdCk6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZSk6CisgICAgICAgICog
U2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpjcmVhdGlv
blBhcmFtZXRlcnMpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6bV9sYXN0TmF2aWdhdGlvbldhc0FwcEJvdW5kKToKKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZTo6dXBkYXRlUHJlZmVyZW5jZXMpOgorCiAyMDIxLTAzLTA5ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgQ3Jhc2ggdW5kZXIgV2ViVmll
d0ltcGw6OmZsYWdzQ2hhbmdlZCgpCkluZGV4OiBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdl
Q3JlYXRpb25QYXJhbWV0ZXJzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAkocmV2aXNpb24gMjc0MTU1KQorKysgU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTE3MSw3ICsxNzEsNiBAQCB2b2lkIFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM6
OmVuY29kZShJCiAgICAgZW5jb2RlciA8PCBzaG91bGRFbmFibGVWUDlEZWNvZGVyOwogICAgIGVu
Y29kZXIgPDwgc2hvdWxkRW5hYmxlVlA5U1dEZWNvZGVyOwogI2lmIEVOQUJMRShBUFBfQk9VTkRf
RE9NQUlOUykKLSAgICBlbmNvZGVyIDw8IG5lZWRzSW5BcHBCcm93c2VyUHJpdmFjeVF1aXJrczsK
ICAgICBlbmNvZGVyIDw8IGxpbWl0c05hdmlnYXRpb25zVG9BcHBCb3VuZERvbWFpbnM7CiAjZW5k
aWYKICAgICBlbmNvZGVyIDw8IGxhc3ROYXZpZ2F0aW9uV2FzQXBwQm91bmQ7CkBAIC0xODIsNyAr
MTgxLDYgQEAgdm9pZCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUoSQogICAgIGVu
Y29kZXIgPDwgdGhlbWVOYW1lOwogI2VuZGlmCiAgICAgCi0gICAgZW5jb2RlciA8PCB0ZXh0SW50
ZXJhY3Rpb25FbmFibGVkOwogICAgIGVuY29kZXIgPDwgaHR0cHNVcGdyYWRlRW5hYmxlZDsKICNp
ZiBQTEFURk9STShJT1MpCiAgICAgZW5jb2RlciA8PCBhbGxvd3NEZXByZWNhdGVkU3luY2hyb25v
dXNYTUxIdHRwUmVxdWVzdER1cmluZ1VubG9hZDsKQEAgLTU2OCw5ICs1NjYsNiBAQCBPcHRpb25h
bDxXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzPiBXZWJQCiAgICAgICAgIHJldHVybiBXVEY6Om51
bGxvcHQ7CiAKICNpZiBFTkFCTEUoQVBQX0JPVU5EX0RPTUFJTlMpCi0gICAgaWYgKCFkZWNvZGVy
LmRlY29kZShwYXJhbWV0ZXJzLm5lZWRzSW5BcHBCcm93c2VyUHJpdmFjeVF1aXJrcykpCi0gICAg
ICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Ci0gICAgCiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShw
YXJhbWV0ZXJzLmxpbWl0c05hdmlnYXRpb25zVG9BcHBCb3VuZERvbWFpbnMpKQogICAgICAgICBy
ZXR1cm4gV1RGOjpudWxsb3B0OwogI2VuZGlmCkBAIC01ODcsOSArNTgyLDYgQEAgT3B0aW9uYWw8
V2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycz4gV2ViUAogICAgIGlmICghZGVjb2Rlci5kZWNvZGUo
cGFyYW1ldGVycy50aGVtZU5hbWUpKQogICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogI2Vu
ZGlmCi0gICAgCi0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLnRleHRJbnRlcmFj
dGlvbkVuYWJsZWQpKQotICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogCiAgICAgaWYgKCFk
ZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLmh0dHBzVXBncmFkZUVuYWJsZWQpKQogICAgICAgICBy
ZXR1cm4gV1RGOjpudWxsb3B0OwpJbmRleDogU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNy
ZWF0aW9uUGFyYW1ldGVycy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaAkocmV2aXNpb24gMjc0MTU1KQorKysgU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oCSh3b3JraW5nIGNvcHkpCkBA
IC0yNDIsNyArMjQyLDYgQEAgc3RydWN0IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMgewogICAg
IGJvb2wgc2hvdWxkRW5hYmxlVlA5RGVjb2RlciB7IGZhbHNlIH07CiAgICAgYm9vbCBzaG91bGRF
bmFibGVWUDlTV0RlY29kZXIgeyBmYWxzZSB9OwogI2lmIEVOQUJMRShBUFBfQk9VTkRfRE9NQUlO
UykKLSAgICBib29sIG5lZWRzSW5BcHBCcm93c2VyUHJpdmFjeVF1aXJrcyB7IGZhbHNlIH07CiAg
ICAgYm9vbCBsaW1pdHNOYXZpZ2F0aW9uc1RvQXBwQm91bmREb21haW5zIHsgZmFsc2UgfTsKICNl
bmRpZgogICAgIGJvb2wgbGFzdE5hdmlnYXRpb25XYXNBcHBCb3VuZCB7IGZhbHNlIH07CkBAIC0y
NTMsMTAgKzI1Miw5IEBAIHN0cnVjdCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzIHsKICNpZiBQ
TEFURk9STShHVEspCiAgICAgU3RyaW5nIHRoZW1lTmFtZTsKICNlbmRpZgotCi0gICAgYm9vbCB0
ZXh0SW50ZXJhY3Rpb25FbmFibGVkIHsgdHJ1ZSB9OwotICAgIGJvb2wgaHR0cHNVcGdyYWRlRW5h
YmxlZCB7IHRydWUgfTsKICAgICAKKyAgICBib29sIGh0dHBzVXBncmFkZUVuYWJsZWQgeyB0cnVl
IH07CisKICNpZiBQTEFURk9STShJT1MpCiAgICAgYm9vbCBhbGxvd3NEZXByZWNhdGVkU3luY2hy
b25vdXNYTUxIdHRwUmVxdWVzdER1cmluZ1VubG9hZCB7IGZhbHNlIH07CiAjZW5kaWYKSW5kZXg6
IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAkocmV2aXNpb24gMjc0MTU1
KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNzkyMiw4ICs3OTIyLDEwIEBAIFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMgV2Vi
UGFnZVByb3h5OjoKICAgICBwYXJhbWV0ZXJzLnVybFNjaGVtZXNXaXRoTGVnYWN5Q3VzdG9tUHJv
dG9jb2xIYW5kbGVycyA9IFdlYlByb2Nlc3NQb29sOjp1cmxTY2hlbWVzV2l0aEN1c3RvbVByb3Rv
Y29sSGFuZGxlcnMoKTsKIAogI2lmIEVOQUJMRShXRUJfUlRDKQorICAgIC8vIEZJWE1FOiBUaGlz
IGlzIGFsc28gYmVpbmcgcGFzc2VkIG92ZXIgdGhlIHRvIFdlYlByb2Nlc3MgdmlhIHRoZSBQcmVm
ZXJlbmNlc1N0b3JlLgogICAgIHBhcmFtZXRlcnMuaWNlQ2FuZGlkYXRlRmlsdGVyaW5nRW5hYmxl
ZCA9IG1fcHJlZmVyZW5jZXMtPmljZUNhbmRpZGF0ZUZpbHRlcmluZ0VuYWJsZWQoKTsKICNpZiBV
U0UoTElCV0VCUlRDKQorICAgIC8vIEZJWE1FOiBUaGlzIGlzIGFsc28gYmVpbmcgcGFzc2VkIG92
ZXIgdGhlIHRvIFdlYlByb2Nlc3MgdmlhIHRoZSBQcmVmZXJlbmNlc1N0b3JlLgogICAgIHBhcmFt
ZXRlcnMuZW51bWVyYXRpbmdBbGxOZXR3b3JrSW50ZXJmYWNlc0VuYWJsZWQgPSBtX3ByZWZlcmVu
Y2VzLT5lbnVtZXJhdGluZ0FsbE5ldHdvcmtJbnRlcmZhY2VzRW5hYmxlZCgpOwogI2VuZGlmCiAj
ZW5kaWYKQEAgLTc5NDksMjAgKzc5NTEsMzEgQEAgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyBX
ZWJQYWdlUHJveHk6OgogICAgIHByb2Nlc3MuYWRkV2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJv
eHkodXNlckNvbnRlbnRDb250cm9sbGVyKTsKICAgICBwYXJhbWV0ZXJzLnVzZXJDb250ZW50Q29u
dHJvbGxlclBhcmFtZXRlcnMgPSB1c2VyQ29udGVudENvbnRyb2xsZXIuZ2V0KCkucGFyYW1ldGVy
cygpOwogCisgICAgLy8gRklYTUU6IFRoaXMgaXMgYWxzbyBiZWluZyBwYXNzZWQgb3ZlciB0aGUg
dG8gV2ViUHJvY2VzcyB2aWEgdGhlIFByZWZlcmVuY2VzU3RvcmUuCiAgICAgcGFyYW1ldGVycy5z
aG91bGRDYXB0dXJlQXVkaW9JblVJUHJvY2VzcyA9IHByZWZlcmVuY2VzKCkuY2FwdHVyZUF1ZGlv
SW5VSVByb2Nlc3NFbmFibGVkKCk7CisgICAgLy8gRklYTUU6IFRoaXMgaXMgYWxzbyBiZWluZyBw
YXNzZWQgb3ZlciB0aGUgdG8gV2ViUHJvY2VzcyB2aWEgdGhlIFByZWZlcmVuY2VzU3RvcmUuCiAg
ICAgcGFyYW1ldGVycy5zaG91bGRDYXB0dXJlQXVkaW9JbkdQVVByb2Nlc3MgPSBwcmVmZXJlbmNl
cygpLmNhcHR1cmVBdWRpb0luR1BVUHJvY2Vzc0VuYWJsZWQoKTsKKyAgICAvLyBGSVhNRTogVGhp
cyBpcyBhbHNvIGJlaW5nIHBhc3NlZCBvdmVyIHRoZSB0byBXZWJQcm9jZXNzIHZpYSB0aGUgUHJl
ZmVyZW5jZXNTdG9yZS4KICAgICBwYXJhbWV0ZXJzLnNob3VsZENhcHR1cmVWaWRlb0luVUlQcm9j
ZXNzID0gcHJlZmVyZW5jZXMoKS5jYXB0dXJlVmlkZW9JblVJUHJvY2Vzc0VuYWJsZWQoKTsKKyAg
ICAvLyBGSVhNRTogVGhpcyBpcyBhbHNvIGJlaW5nIHBhc3NlZCBvdmVyIHRoZSB0byBXZWJQcm9j
ZXNzIHZpYSB0aGUgUHJlZmVyZW5jZXNTdG9yZS4KICAgICBwYXJhbWV0ZXJzLnNob3VsZENhcHR1
cmVWaWRlb0luR1BVUHJvY2VzcyA9IHByZWZlcmVuY2VzKCkuY2FwdHVyZVZpZGVvSW5HUFVQcm9j
ZXNzRW5hYmxlZCgpOworICAgIC8vIEZJWE1FOiBUaGlzIGlzIGFsc28gYmVpbmcgcGFzc2VkIG92
ZXIgdGhlIHRvIFdlYlByb2Nlc3MgdmlhIHRoZSBQcmVmZXJlbmNlc1N0b3JlLgogICAgIHBhcmFt
ZXRlcnMuc2hvdWxkUmVuZGVyQ2FudmFzSW5HUFVQcm9jZXNzID0gcHJlZmVyZW5jZXMoKS51c2VH
UFVQcm9jZXNzRm9yQ2FudmFzUmVuZGVyaW5nRW5hYmxlZCgpOworICAgIC8vIEZJWE1FOiBUaGlz
IGlzIGFsc28gYmVpbmcgcGFzc2VkIG92ZXIgdGhlIHRvIFdlYlByb2Nlc3MgdmlhIHRoZSBQcmVm
ZXJlbmNlc1N0b3JlLgogICAgIHBhcmFtZXRlcnMuc2hvdWxkUmVuZGVyRE9NSW5HUFVQcm9jZXNz
ID0gcHJlZmVyZW5jZXMoKS51c2VHUFVQcm9jZXNzRm9yRE9NUmVuZGVyaW5nRW5hYmxlZCgpOwor
ICAgIC8vIEZJWE1FOiBUaGlzIGlzIGFsc28gYmVpbmcgcGFzc2VkIG92ZXIgdGhlIHRvIFdlYlBy
b2Nlc3MgdmlhIHRoZSBQcmVmZXJlbmNlc1N0b3JlLgogICAgIHBhcmFtZXRlcnMuc2hvdWxkUGxh
eU1lZGlhSW5HUFVQcm9jZXNzID0gcHJlZmVyZW5jZXMoKS51c2VHUFVQcm9jZXNzRm9yTWVkaWFF
bmFibGVkKCk7CiAjaWYgRU5BQkxFKFdFQkdMKQorICAgIC8vIEZJWE1FOiBUaGlzIGlzIGFsc28g
YmVpbmcgcGFzc2VkIG92ZXIgdGhlIHRvIFdlYlByb2Nlc3MgdmlhIHRoZSBQcmVmZXJlbmNlc1N0
b3JlLgogICAgIHBhcmFtZXRlcnMuc2hvdWxkUmVuZGVyV2ViR0xJbkdQVVByb2Nlc3MgPSBwcmVm
ZXJlbmNlcygpLnVzZUdQVVByb2Nlc3NGb3JXZWJHTEVuYWJsZWQoKTsKICNlbmRpZgogCisgICAg
Ly8gRklYTUU6IFRoaXMgaXMgYWxzbyBiZWluZyBwYXNzZWQgb3ZlciB0aGUgdG8gV2ViUHJvY2Vz
cyB2aWEgdGhlIFByZWZlcmVuY2VzU3RvcmUuCiAgICAgcGFyYW1ldGVycy5zaG91bGRFbmFibGVW
UDlEZWNvZGVyID0gcHJlZmVyZW5jZXMoKS52cDlEZWNvZGVyRW5hYmxlZCgpOwogI2lmIEVOQUJM
RShWUDkpICYmIFBMQVRGT1JNKENPQ09BKQorICAgIC8vIEZJWE1FOiBUaGlzIGlzIGFsc28gYmVp
bmcgcGFzc2VkIG92ZXIgdGhlIHRvIFdlYlByb2Nlc3MgdmlhIHRoZSBQcmVmZXJlbmNlc1N0b3Jl
LgogICAgIHBhcmFtZXRlcnMuc2hvdWxkRW5hYmxlVlA4RGVjb2RlciA9IHByZWZlcmVuY2VzKCku
dnA5RGVjb2RlckVuYWJsZWQoKTsKKyAgICAvLyBGSVhNRTogVGhpcyBpcyBhbHNvIGJlaW5nIHBh
c3NlZCBvdmVyIHRoZSB0byBXZWJQcm9jZXNzIHZpYSB0aGUgUHJlZmVyZW5jZXNTdG9yZS4KICAg
ICBwYXJhbWV0ZXJzLnNob3VsZEVuYWJsZVZQOVNXRGVjb2RlciA9IHByZWZlcmVuY2VzKCkudnA5
RGVjb2RlckVuYWJsZWQoKSAmJiAoIVdlYkNvcmU6OnN5c3RlbUhhc0JhdHRlcnkoKSB8fCBwcmVm
ZXJlbmNlcygpLnZwOVNXRGVjb2RlckVuYWJsZWRPbkJhdHRlcnkoKSk7CiAjZW5kaWYKICAgICBw
YXJhbWV0ZXJzLnNob3VsZENhcHR1cmVEaXNwbGF5SW5VSVByb2Nlc3MgPSBtX3Byb2Nlc3MtPnBy
b2Nlc3NQb29sKCkuY29uZmlndXJhdGlvbigpLnNob3VsZENhcHR1cmVEaXNwbGF5SW5VSVByb2Nl
c3MoKTsKQEAgLTc5ODQsMTQgKzc5OTcsMTAgQEAgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyBX
ZWJQYWdlUHJveHk6OgogICAgIH0KICNlbmRpZgogCi0jaWYgRU5BQkxFKEFQUF9CT1VORF9ET01B
SU5TKQotICAgIHBhcmFtZXRlcnMubmVlZHNJbkFwcEJyb3dzZXJQcml2YWN5UXVpcmtzID0gcHJl
ZmVyZW5jZXMoKS5uZWVkc0luQXBwQnJvd3NlclByaXZhY3lRdWlya3MoKTsKLSNlbmRpZgotICAg
IAotICAgIHBhcmFtZXRlcnMudGV4dEludGVyYWN0aW9uRW5hYmxlZCA9IHByZWZlcmVuY2VzKCku
dGV4dEludGVyYWN0aW9uRW5hYmxlZCgpOwogICAgIHBhcmFtZXRlcnMuaHR0cHNVcGdyYWRlRW5h
YmxlZCA9IHByZWZlcmVuY2VzKCkudXBncmFkZUtub3duSG9zdHNUb0hUVFBTRW5hYmxlZCgpID8g
bV9jb25maWd1cmF0aW9uLT5odHRwc1VwZ3JhZGVFbmFibGVkKCkgOiBmYWxzZTsKIAogI2lmIFBM
QVRGT1JNKElPUykKKyAgICAvLyBGSVhNRTogVGhpcyBpcyBhbHNvIGJlaW5nIHBhc3NlZCBvdmVy
IHRoZSB0byBXZWJQcm9jZXNzIHZpYSB0aGUgUHJlZmVyZW5jZXNTdG9yZS4KICAgICBwYXJhbWV0
ZXJzLmFsbG93c0RlcHJlY2F0ZWRTeW5jaHJvbm91c1hNTEh0dHBSZXF1ZXN0RHVyaW5nVW5sb2Fk
ID0gYWxsb3dzRGVwcmVjYXRlZFN5bmNocm9ub3VzWE1MSHR0cFJlcXVlc3REdXJpbmdVbmxvYWQo
KTsKICNlbmRpZgogCkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmNwcAkocmV2aXNpb24gMjc0MTU1KQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ1Miw5ICs0NTIsNiBAQCBX
ZWJQYWdlOjpXZWJQYWdlKFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgCiAjaWYgRU5BQkxFKFdFQkdM
KQogICAgICwgbV9zaG91bGRSZW5kZXJXZWJHTEluR1BVUHJvY2VzcyB7IHBhcmFtZXRlcnMuc2hv
dWxkUmVuZGVyV2ViR0xJbkdQVVByb2Nlc3N9CiAjZW5kaWYKLSNpZiBFTkFCTEUoQVBQX0JPVU5E
X0RPTUFJTlMpCi0gICAgLCBtX25lZWRzSW5BcHBCcm93c2VyUHJpdmFjeVF1aXJrcyB7IHBhcmFt
ZXRlcnMubmVlZHNJbkFwcEJyb3dzZXJQcml2YWN5UXVpcmtzIH0KLSNlbmRpZgogICAgICwgbV9s
YXllckhvc3RpbmdNb2RlKHBhcmFtZXRlcnMubGF5ZXJIb3N0aW5nTW9kZSkKICNpZiBFTkFCTEUo
UExBVEZPUk1fRFJJVkVOX1RFWFRfQ0hFQ0tJTkcpCiAgICAgLCBtX3RleHRDaGVja2luZ0NvbnRy
b2xsZXJQcm94eShtYWtlVW5pcXVlUmVmPFRleHRDaGVja2luZ0NvbnRyb2xsZXJQcm94eT4oKnRo
aXMpKQpAQCAtNjAyLDggKzU5OSw2IEBAIFdlYlBhZ2U6OldlYlBhZ2UoUGFnZUlkZW50aWZpZXIg
cGFnZUlELCAKICAgICBwYWdlQ29uZmlndXJhdGlvbi5zaG91bGRSZWxheFRoaXJkUGFydHlDb29r
aWVCbG9ja2luZyA9IHBhcmFtZXRlcnMuc2hvdWxkUmVsYXhUaGlyZFBhcnR5Q29va2llQmxvY2tp
bmc7CiAgICAgcGFnZUNvbmZpZ3VyYXRpb24uaHR0cHNVcGdyYWRlRW5hYmxlZCA9IHBhcmFtZXRl
cnMuaHR0cHNVcGdyYWRlRW5hYmxlZDsKIAotICAgIHBhZ2VDb25maWd1cmF0aW9uLnRleHRJbnRl
cmFjdGlvbkVuYWJsZWQgPSBwYXJhbWV0ZXJzLnRleHRJbnRlcmFjdGlvbkVuYWJsZWQ7Ci0gICAg
CiAgICAgaWYgKCFwYXJhbWV0ZXJzLmNyb3NzT3JpZ2luQWNjZXNzQ29udHJvbENoZWNrRW5hYmxl
ZCkKICAgICAgICAgQ3Jvc3NPcmlnaW5BY2Nlc3NDb250cm9sQ2hlY2tEaXNhYmxlcjo6c2luZ2xl
dG9uKCkuc2V0Q3Jvc3NPcmlnaW5BY2Nlc3NDb250cm9sQ2hlY2tFbmFibGVkKGZhbHNlKTsKIApA
QCAtMzkzNSw4ICszOTMwLDYgQEAgdm9pZCBXZWJQYWdlOjp1cGRhdGVQcmVmZXJlbmNlcyhjb25z
dCBXZQogICAgIG1faXBjVGVzdGluZ0FQSUVuYWJsZWQgPSBzdG9yZS5nZXRCb29sVmFsdWVGb3JL
ZXkoV2ViUHJlZmVyZW5jZXNLZXk6OmlwY1Rlc3RpbmdBUElFbmFibGVkS2V5KCkpOwogI2VuZGlm
CiAKLSAgICBtX3BhZ2UtPnNldFRleHRJbnRlcmFjdGlvbkVuYWJsZWQoc3RvcmUuZ2V0Qm9vbFZh
bHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5Ojp0ZXh0SW50ZXJhY3Rpb25FbmFibGVkS2V5KCkp
KTsKLQogI2lmIEVOQUJMRShXRUJfQVVUSE4pICYmIFBMQVRGT1JNKElPUykKICAgICBpZiAoYXV0
byogY29ubmVjdGlvbiA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25u
ZWN0aW9uKCkpIHsKICAgICAgICAgaWYgKGlzUGFyZW50UHJvY2Vzc0FGdWxsV2ViQnJvd3Nlcihj
b25uZWN0aW9uLT5nZXRBdWRpdFRva2VuKCkpKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>