<?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>210533</bug_id>
          
          <creation_ts>2020-04-14 23:18:42 -0700</creation_ts>
          <short_desc>SPI clients using fastServerTrustEvaluationEnabled need SPI to inform them of modern TLS negotiation</short_desc>
          <delta_ts>2020-04-24 11:23:49 -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>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>
          <dependson>210825</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alex Christensen">achristensen</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          <cc>beidson</cc>
    
    <cc>cdumez</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1641690</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-04-14 23:18:42 -0700</bug_when>
    <thetext>SPI clients using fastServerTrustEvaluationEnabled need SPI to inform them of modern TLS negotiation</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1641691</commentid>
    <comment_count>1</comment_count>
      <attachid>396504</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-04-14 23:19:52 -0700</bug_when>
    <thetext>Created attachment 396504
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1643733</commentid>
    <comment_count>2</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-04-20 19:29:11 -0700</bug_when>
    <thetext>Tools/Scripts/svn-apply failed to apply attachment 396504 to trunk.
Please resolve the conflicts and upload a new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1643734</commentid>
    <comment_count>3</comment_count>
      <attachid>397047</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-04-20 19:36:26 -0700</bug_when>
    <thetext>Created attachment 397047
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1643751</commentid>
    <comment_count>4</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-04-20 20:23:58 -0700</bug_when>
    <thetext>Committed r260410: &lt;https://trac.webkit.org/changeset/260410&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 397047.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1643752</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-04-20 20:25:28 -0700</bug_when>
    <thetext>&lt;rdar://problem/62088873&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1644186</commentid>
    <comment_count>6</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2020-04-21 20:58:41 -0700</bug_when>
    <thetext>Reverted r260410 for reason:

Caused crashes in Safari

Committed r260497: &lt;https://trac.webkit.org/changeset/260497&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1644187</commentid>
    <comment_count>7</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2020-04-21 20:59:33 -0700</bug_when>
    <thetext>(In reply to Ryan Haddad from comment #6)
&gt; Reverted r260410 for reason:
&gt; 
&gt; Caused crashes in Safari
&gt; 
&gt; Committed r260497: &lt;https://trac.webkit.org/changeset/260497&gt;
Reverted because I had to had to revert https://bugs.webkit.org/show_bug.cgi?id=210825, which was a follow-up fix for this change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1645257</commentid>
    <comment_count>8</comment_count>
      <attachid>397047</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-04-24 10:36:05 -0700</bug_when>
    <thetext>Comment on attachment 397047
Patch

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

&gt; Source/WebKit/NetworkProcess/NetworkLoad.cpp:291
&gt; +    m_networkProcess-&gt;send(Messages::NetworkProcessProxy::DidNegotiateModernTLS(m_parameters.webPageProxyID, challenge));

I&apos;m adding if (m_parameters.webPageProxyID) here.  We should later make sure that&apos;s always true.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1645259</commentid>
    <comment_count>9</comment_count>
      <attachid>397469</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-04-24 10:38:05 -0700</bug_when>
    <thetext>Created attachment 397469
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1645289</commentid>
    <comment_count>10</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-04-24 11:23:48 -0700</bug_when>
    <thetext>Committed r260658: &lt;https://trac.webkit.org/changeset/260658&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 397469.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>396504</attachid>
            <date>2020-04-14 23:19:52 -0700</date>
            <delta_ts>2020-04-20 19:36:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-210533-20200414231952.patch</filename>
            <type>text/plain</type>
            <size>20408</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNjAwODEpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM0IEBACisyMDIwLTA0LTE0ICBBbGV4IENocmlz
dGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgU1BJIGNsaWVudHMg
dXNpbmcgZmFzdFNlcnZlclRydXN0RXZhbHVhdGlvbkVuYWJsZWQgbmVlZCBTUEkgdG8gaW5mb3Jt
IHRoZW0gb2YgbW9kZXJuIFRMUyBuZWdvdGlhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEwNTMzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrRGF0YVRhc2su
aDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0RhdGFUYXNrQ2xpZW50OjpkaWROZWdvdGlhdGVN
b2Rlcm5UTFMpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya0xvYWQ6OmRpZE5lZ290aWF0ZU1vZGVyblRMUyk6CisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5oOgorICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpOZXR3
b3JrRGF0YVRhc2tDb2NvYTo6ZGlkTmVnb3RpYXRlTW9kZXJuVExTKToKKyAgICAgICAgKiBOZXR3
b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tOgorICAgICAgICAoLVtXS05l
dHdvcmtTZXNzaW9uRGVsZWdhdGUgVVJMU2Vzc2lvbjp0YXNrOmRpZFJlY2VpdmVDaGFsbGVuZ2U6
Y29tcGxldGlvbkhhbmRsZXI6XSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9BUElOYXZpZ2F0
aW9uQ2xpZW50Lmg6CisgICAgICAgIChBUEk6Ok5hdmlnYXRpb25DbGllbnQ6OmRpZE5lZ290aWF0
ZU1vZGVyblRMUyk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRpb25E
ZWxlZ2F0ZVByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvTmF2aWdhdGlvblN0
YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25TdGF0ZS5tbToKKyAg
ICAgICAgKFdlYktpdDo6TmF2aWdhdGlvblN0YXRlOjpzZXROYXZpZ2F0aW9uRGVsZWdhdGUpOgor
ICAgICAgICAoV2ViS2l0OjpOYXZpZ2F0aW9uU3RhdGU6Ok5hdmlnYXRpb25DbGllbnQ6OmRpZE5l
Z290aWF0ZU1vZGVyblRMUyk6CisgICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1By
b2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OmRp
ZE5lZ290aWF0ZU1vZGVyblRMUyk6CisgICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsvTmV0d29y
a1Byb2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9j
ZXNzUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5j
cHA6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorCiAyMDIwLTA0LTE0ICBC
cmVudCBGdWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgogCiAgICAgICAgIEluamVjdGVkQnVu
ZGxlIHBhcmFtZXRlcnMgb2Z0ZW4gbmVlZCBpbml0aWFsaXphdGlvbiBmdW5jdGlvbiBjYWxsZWQg
YmVmb3JlIHVuYXJjaGl2aW5nCkluZGV4OiBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtEYXRhVGFzay5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya0RhdGFUYXNrLmgJKHJldmlzaW9uIDI1OTkyMikKKysrIFNvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya0RhdGFUYXNrLmgJKHdvcmtpbmcgY29weSkKQEAgLTcyLDYg
KzcyLDggQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBib29sIHNob3VsZENhcHR1cmVFeHRyYU5l
dHdvcmtMb2FkTWV0cmljcygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKKyAgICB2aXJ0dWFs
IHZvaWQgZGlkTmVnb3RpYXRlTW9kZXJuVExTKGNvbnN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlJikgeyB9CisKICAgICB2b2lkIGRpZENvbXBsZXRlV2l0aEVycm9yKGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlRXJyb3ImIGVycm9yKQogICAgIHsKICAgICAgICAgV2ViQ29yZTo6TmV0
d29ya0xvYWRNZXRyaWNzIGVtcHR5TWV0cmljczsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya0xvYWQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQuY3BwCShyZXZpc2lvbiAyNTk5MjIpCisrKyBTb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIkF1dGhlbnRpY2F0aW9uTWFuYWdlci5oIgogI2luY2x1
ZGUgIk5ldHdvcmtEYXRhVGFza0Jsb2IuaCIKICNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzcy5oIgor
I2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzUHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIk5ldHdv
cmtTZXNzaW9uLmgiCiAjaW5jbHVkZSAiV2ViRXJyb3JzLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9S
ZXNvdXJjZVJlcXVlc3QuaD4KQEAgLTI4NSw2ICsyODYsMTEgQEAgdm9pZCBOZXR3b3JrTG9hZDo6
d2FzQmxvY2tlZEJ5UmVzdHJpY3RpbwogICAgIG1fY2xpZW50LmdldCgpLmRpZEZhaWxMb2FkaW5n
KHdhc0Jsb2NrZWRCeVJlc3RyaWN0aW9uc0Vycm9yKG1fY3VycmVudFJlcXVlc3QpKTsKIH0KIAor
dm9pZCBOZXR3b3JrTG9hZDo6ZGlkTmVnb3RpYXRlTW9kZXJuVExTKGNvbnN0IFdlYkNvcmU6OkF1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiBjaGFsbGVuZ2UpCit7CisgICAgbV9uZXR3b3JrUHJvY2Vz
cy0+c2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3NQcm94eTo6RGlkTmVnb3RpYXRlTW9kZXJu
VExTKG1fcGFyYW1ldGVycy53ZWJQYWdlUHJveHlJRCwgY2hhbGxlbmdlKSk7Cit9CisKIFN0cmlu
ZyBOZXR3b3JrTG9hZDo6ZGVzY3JpcHRpb24oKSBjb25zdAogewogICAgIGlmIChtX3Rhc2suZ2V0
KCkpCkluZGV4OiBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5oCShy
ZXZpc2lvbiAyNTk5MjIpCisrKyBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtM
b2FkLmgJKHdvcmtpbmcgY29weSkKQEAgLTgxLDYgKzgxLDcgQEAgcHJpdmF0ZToKICAgICB2b2lk
IHdhc0Jsb2NrZWQoKSBmaW5hbDsKICAgICB2b2lkIGNhbm5vdFNob3dVUkwoKSBmaW5hbDsKICAg
ICB2b2lkIHdhc0Jsb2NrZWRCeVJlc3RyaWN0aW9ucygpIGZpbmFsOworICAgIHZvaWQgZGlkTmVn
b3RpYXRlTW9kZXJuVExTKGNvbnN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJikg
ZmluYWw7CiAKICAgICB2b2lkIG5vdGlmeURpZFJlY2VpdmVSZXNwb25zZShXZWJDb3JlOjpSZXNv
dXJjZVJlc3BvbnNlJiYsIE5lZ290aWF0ZWRMZWdhY3lUTFMsIFJlc3BvbnNlQ29tcGxldGlvbkhh
bmRsZXImJik7CiAgICAgdm9pZCB0aHJvdHRsZURlbGF5Q29tcGxldGVkKCk7CkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0
YVRhc2tDb2NvYS5oCShyZXZpc2lvbiAyNTk5MjIpCisrKyBTb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLmgJKHdvcmtpbmcgY29weSkKQEAgLTUz
LDYgKzUzLDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBkaWRTZW5kRGF0YSh1aW50NjRfdCB0b3Rh
bEJ5dGVzU2VudCwgdWludDY0X3QgdG90YWxCeXRlc0V4cGVjdGVkVG9TZW5kKTsKICAgICB2b2lk
IGRpZFJlY2VpdmVDaGFsbGVuZ2UoV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2UmJiwg
TmVnb3RpYXRlZExlZ2FjeVRMUywgQ2hhbGxlbmdlQ29tcGxldGlvbkhhbmRsZXImJik7CisgICAg
dm9pZCBkaWROZWdvdGlhdGVNb2Rlcm5UTFMoY29uc3QgV2ViQ29yZTo6QXV0aGVudGljYXRpb25D
aGFsbGVuZ2UmKTsKICAgICB2b2lkIGRpZENvbXBsZXRlV2l0aEVycm9yKGNvbnN0IFdlYkNvcmU6
OlJlc291cmNlRXJyb3ImLCBjb25zdCBXZWJDb3JlOjpOZXR3b3JrTG9hZE1ldHJpY3MmKTsKICAg
ICB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZShXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYsIE5l
Z290aWF0ZWRMZWdhY3lUTFMsIFJlc3BvbnNlQ29tcGxldGlvbkhhbmRsZXImJik7CiAgICAgdm9p
ZCBkaWRSZWNlaXZlRGF0YShSZWY8V2ViQ29yZTo6U2hhcmVkQnVmZmVyPiYmKTsKSW5kZXg6IFNv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EubW0K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3Jr
RGF0YVRhc2tDb2NvYS5tbQkocmV2aXNpb24gMjU5OTIyKQorKysgU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5tbQkod29ya2luZyBjb3B5KQpA
QCAtMzMwLDYgKzMzMCwxMiBAQCB2b2lkIE5ldHdvcmtEYXRhVGFza0NvY29hOjpkaWRSZWNlaXZl
Q2hhCiAgICAgfQogfQogCit2b2lkIE5ldHdvcmtEYXRhVGFza0NvY29hOjpkaWROZWdvdGlhdGVN
b2Rlcm5UTFMoY29uc3QgV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2UmIGNoYWxsZW5n
ZSkKK3sKKyAgICBpZiAobV9jbGllbnQpCisgICAgICAgIG1fY2xpZW50LT5kaWROZWdvdGlhdGVN
b2Rlcm5UTFMoY2hhbGxlbmdlKTsKK30KKwogdm9pZCBOZXR3b3JrRGF0YVRhc2tDb2NvYTo6ZGlk
Q29tcGxldGVXaXRoRXJyb3IoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYgZXJyb3IsIGNv
bnN0IFdlYkNvcmU6Ok5ldHdvcmtMb2FkTWV0cmljcyYgbmV0d29ya0xvYWRNZXRyaWNzKQogewog
ICAgIGlmIChlcnJvci5pc051bGwoKSkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW0JKHJldmlzaW9u
IDI1OTkyMikKKysrIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nl
c3Npb25Db2NvYS5tbQkod29ya2luZyBjb3B5KQpAQCAtNjcxLDggKzY3MSwxMCBAQCAtICh2b2lk
KVVSTFNlc3Npb246KE5TVVJMU2Vzc2lvbiAqKXNlc3NpCiAKICAgICAgICAgLy8gSGFuZGxlIHNl
cnZlciB0cnVzdCBldmFsdWF0aW9uIGF0IHBsYXRmb3JtLWxldmVsIGlmIHJlcXVlc3RlZCwgZm9y
IHBlcmZvcm1hbmNlIHJlYXNvbnMgYW5kIHRvIHVzZSBBVFMgZGVmYXVsdHMuCiAgICAgICAgIGlm
IChzZXNzaW9uQ29jb2EtPmZhc3RTZXJ2ZXJUcnVzdEV2YWx1YXRpb25FbmFibGVkKCkgJiYgbmVn
b3RpYXRlZExlZ2FjeVRMUyA9PSBOZWdvdGlhdGVkTGVnYWN5VExTOjpObykgewotI2lmIEhBVkUo
Q0ZORVRXT1JLX05TVVJMU0VTU0lPTl9TVFJJQ1RSVVNURVZBTFVBVEUpCiAgICAgICAgICAgICBh
dXRvKiBuZXR3b3JrRGF0YVRhc2sgPSBbc2VsZiBleGlzdGluZ1Rhc2s6dGFza107CisgICAgICAg
ICAgICBpZiAobmV0d29ya0RhdGFUYXNrKQorICAgICAgICAgICAgICAgIG5ldHdvcmtEYXRhVGFz
ay0+ZGlkTmVnb3RpYXRlTW9kZXJuVExTKGNoYWxsZW5nZSk7CisjaWYgSEFWRShDRk5FVFdPUktf
TlNVUkxTRVNTSU9OX1NUUklDVFJVU1RFVkFMVUFURSkKICAgICAgICAgICAgIGF1dG8gZGVjaXNp
b25IYW5kbGVyID0gbWFrZUJsb2NrUHRyKFt3ZWFrU2VsZiA9IFdlYWtPYmpDUHRyPFdLTmV0d29y
a1Nlc3Npb25EZWxlZ2F0ZT4oc2VsZiksIHNlc3Npb25Db2NvYSA9IG1ha2VXZWFrUHRyKHNlc3Np
b25Db2NvYSksIGNvbXBsZXRpb25IYW5kbGVyID0gbWFrZUJsb2NrUHRyKGNvbXBsZXRpb25IYW5k
bGVyKSwgdGFza0lkZW50aWZpZXIsIG5ldHdvcmtEYXRhVGFzayA9IG1ha2VSZWZQdHIobmV0d29y
a0RhdGFUYXNrKSwgbmVnb3RpYXRlZExlZ2FjeVRMU10oTlNVUkxBdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZSAqY2hhbGxlbmdlLCBPU1N0YXR1cyB0cnVzdFJlc3VsdCkgbXV0YWJsZSB7CiAgICAgICAg
ICAgICAgICAgYXV0byBzdHJvbmdTZWxmID0gd2Vha1NlbGYuZ2V0KCk7CiAgICAgICAgICAgICAg
ICAgaWYgKCFzdHJvbmdTZWxmKQpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuY3BwCShyZXZpc2lvbiAyNTk5MjIpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03ODgwLDYgKzc4ODAsMTEgQEAgdm9p
ZCBXZWJQYWdlUHJveHk6Om5lZ290aWF0ZWRMZWdhY3lUTFMoKQogICAgIG1fcGFnZUxvYWRTdGF0
ZS5uZWdvdGlhdGVkTGVnYWN5VExTKHRyYW5zYWN0aW9uKTsKIH0KIAordm9pZCBXZWJQYWdlUHJv
eHk6OmRpZE5lZ290aWF0ZU1vZGVyblRMUyhjb25zdCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNo
YWxsZW5nZSYgY2hhbGxlbmdlKQoreworICAgIG1fbmF2aWdhdGlvbkNsaWVudC0+ZGlkTmVnb3Rp
YXRlTW9kZXJuVExTKGNoYWxsZW5nZSk7Cit9CisKIHZvaWQgV2ViUGFnZVByb3h5OjpleGNlZWRl
ZERhdGFiYXNlUXVvdGEoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgb3Jp
Z2luSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBkYXRhYmFzZU5hbWUsIGNvbnN0IFN0cmluZyYg
ZGlzcGxheU5hbWUsIHVpbnQ2NF90IGN1cnJlbnRRdW90YSwgdWludDY0X3QgY3VycmVudE9yaWdp
blVzYWdlLCB1aW50NjRfdCBjdXJyZW50RGF0YWJhc2VVc2FnZSwgdWludDY0X3QgZXhwZWN0ZWRV
c2FnZSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RXhjZWVkZWREYXRhYmFzZVF1b3RhOjpEZWxh
eWVkUmVwbHkmJiByZXBseSkKIHsKICAgICByZXF1ZXN0U3RvcmFnZVNwYWNlKGZyYW1lSUQsIG9y
aWdpbklkZW50aWZpZXIsIGRhdGFiYXNlTmFtZSwgZGlzcGxheU5hbWUsIGN1cnJlbnRRdW90YSwg
Y3VycmVudE9yaWdpblVzYWdlLCBjdXJyZW50RGF0YWJhc2VVc2FnZSwgZXhwZWN0ZWRVc2FnZSwg
W3JlcGx5ID0gV1RGTW92ZShyZXBseSldKGF1dG8gcXVvdGEpIG11dGFibGUgewpJbmRleDogU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgJKHJldmlzaW9uIDI1OTkyMikKKysrIFNv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCSh3b3JraW5nIGNvcHkpCkBAIC0x
MzU4LDYgKzEzNTgsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGRpZFJlY2VpdmVBdXRoZW50aWNh
dGlvbkNoYWxsZW5nZVByb3h5KFJlZjxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5PiYmLCBO
ZWdvdGlhdGVkTGVnYWN5VExTKTsKICAgICB2b2lkIG5lZ290aWF0ZWRMZWdhY3lUTFMoKTsKKyAg
ICB2b2lkIGRpZE5lZ290aWF0ZU1vZGVyblRMUyhjb25zdCBXZWJDb3JlOjpBdXRoZW50aWNhdGlv
bkNoYWxsZW5nZSYpOwogCiAgICAgU3BlbGxEb2N1bWVudFRhZyBzcGVsbERvY3VtZW50VGFnKCk7
CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElOYXZpZ2F0aW9uQ2xpZW50
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSU5hdmlnYXRp
b25DbGllbnQuaAkocmV2aXNpb24gMjU5OTIyKQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0FQSU5hdmlnYXRpb25DbGllbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMTAyLDYgKzEwMiw3
IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlQXV0aGVudGljYXRpb25D
aGFsbGVuZ2UoV2ViS2l0OjpXZWJQYWdlUHJveHkmLCBXZWJLaXQ6OkF1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlUHJveHkmIGNoYWxsZW5nZSkgeyBjaGFsbGVuZ2UubGlzdGVuZXIoKS5jb21wbGV0ZUNo
YWxsZW5nZShXZWJLaXQ6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlRGlzcG9zaXRpb246OlBlcmZv
cm1EZWZhdWx0SGFuZGxpbmcpOyB9CiAgICAgdmlydHVhbCB2b2lkIHNob3VsZEFsbG93TGVnYWN5
VExTKFdlYktpdDo6V2ViUGFnZVByb3h5JiwgV2ViS2l0OjpBdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZVByb3h5JiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxl
cikgeyBjb21wbGV0aW9uSGFuZGxlcih0cnVlKTsgfQorICAgIHZpcnR1YWwgdm9pZCBkaWROZWdv
dGlhdGVNb2Rlcm5UTFMoY29uc3QgV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2UmKSB7
IH0KICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkQnlwYXNzQ29udGVudE1vZGVTYWZlZ3VhcmRzKCkg
Y29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIAogICAgIC8vIEZJWE1FOiBUaGVzZSBmdW5jdGlvbiBz
aG91bGQgbm90IGJlIHBhcnQgb2YgdGhpcyBjbGllbnQuCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uRGVsZWdhdGVQcml2YXRlLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLTmF2aWdhdGlvbkRlbGVn
YXRlUHJpdmF0ZS5oCShyZXZpc2lvbiAyNTk5MjIpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uRGVsZWdhdGVQcml2YXRlLmgJKHdvcmtpbmcgY29weSkK
QEAgLTg3LDYgKzg3LDcgQEAgc3RhdGljIGNvbnN0IFdLTmF2aWdhdGlvblJlc3BvbnNlUG9saWN5
IAogLSAoTlNEYXRhICopX3dlYkNyeXB0b01hc3RlcktleUZvcldlYlZpZXc6KFdLV2ViVmlldyAq
KXdlYlZpZXc7CiAKIC0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgYXV0aGVu
dGljYXRpb25DaGFsbGVuZ2U6KE5TVVJMQXV0aGVudGljYXRpb25DaGFsbGVuZ2UgKiljaGFsbGVu
Z2Ugc2hvdWxkQWxsb3dMZWdhY3lUTFM6KHZvaWQgKF4pKEJPT0wpKWNvbXBsZXRpb25IYW5kbGVy
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7Cist
ICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRpZE5lZ290aWF0ZU1vZGVyblRM
UzooTlNVUkxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSAqKWNoYWxsZW5nZSBXS19BUElfQVZBSUxB
QkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogCiAtICh2b2lkKV93ZWJW
aWV3RGlkQmVnaW5OYXZpZ2F0aW9uR2VzdHVyZTooV0tXZWJWaWV3ICopd2ViVmlldzsKIC8vIEl0
ZW0gaXMgbmlsIGlmIHRoZSBnZXN0dXJlIGVuZGVkIHdpdGhvdXQgbmF2aWdhdGlvbi4KSW5kZXg6
IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25TdGF0ZS5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25TdGF0ZS5oCShy
ZXZpc2lvbiAyNTk5MjIpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0
aW9uU3RhdGUuaAkod29ya2luZyBjb3B5KQpAQCAtMTE3LDYgKzExNyw3IEBAIHByaXZhdGU6CiAK
ICAgICAgICAgdm9pZCBkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoV2ViUGFnZVBy
b3h5JiwgQXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eSYpIG92ZXJyaWRlOwogICAgICAgICB2
b2lkIHNob3VsZEFsbG93TGVnYWN5VExTKFdlYlBhZ2VQcm94eSYsIEF1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlUHJveHkmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKSBmaW5hbDsKKyAg
ICAgICAgdm9pZCBkaWROZWdvdGlhdGVNb2Rlcm5UTFMoY29uc3QgV2ViQ29yZTo6QXV0aGVudGlj
YXRpb25DaGFsbGVuZ2UmKSBmaW5hbDsKICAgICAgICAgYm9vbCBwcm9jZXNzRGlkVGVybWluYXRl
KFdlYlBhZ2VQcm94eSYsIFByb2Nlc3NUZXJtaW5hdGlvblJlYXNvbikgb3ZlcnJpZGU7CiAgICAg
ICAgIHZvaWQgcHJvY2Vzc0RpZEJlY29tZVJlc3BvbnNpdmUoV2ViUGFnZVByb3h5Jikgb3ZlcnJp
ZGU7CiAgICAgICAgIHZvaWQgcHJvY2Vzc0RpZEJlY29tZVVucmVzcG9uc2l2ZShXZWJQYWdlUHJv
eHkmKSBvdmVycmlkZTsKQEAgLTIyOSw2ICsyMzAsNyBAQCBwcml2YXRlOgogICAgICAgICBib29s
IHdlYlZpZXdSZW5kZXJpbmdQcm9ncmVzc0RpZENoYW5nZSA6IDE7CiAgICAgICAgIGJvb2wgd2Vi
Vmlld0RpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZUNvbXBsZXRpb25IYW5kbGVyIDog
MTsKICAgICAgICAgYm9vbCB3ZWJWaWV3QXV0aGVudGljYXRpb25DaGFsbGVuZ2VTaG91bGRBbGxv
d0xlZ2FjeVRMUyA6IDE7CisgICAgICAgIGJvb2wgd2ViVmlld0RpZE5lZ290aWF0ZU1vZGVyblRM
UyA6IDE7CiAgICAgICAgIGJvb2wgd2ViVmlld1dlYkNvbnRlbnRQcm9jZXNzRGlkVGVybWluYXRl
IDogMTsKICAgICAgICAgYm9vbCB3ZWJWaWV3V2ViQ29udGVudFByb2Nlc3NEaWRUZXJtaW5hdGVX
aXRoUmVhc29uIDogMTsKICAgICAgICAgYm9vbCB3ZWJWaWV3V2ViUHJvY2Vzc0RpZENyYXNoIDog
MTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25TdGF0ZS5t
bQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9u
U3RhdGUubW0JKHJldmlzaW9uIDI1OTkyMikKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Nv
Y29hL05hdmlnYXRpb25TdGF0ZS5tbQkod29ya2luZyBjb3B5KQpAQCAtNzAsNiArNzAsNyBAQAog
I2ltcG9ydCAiX1dLUmVuZGVyaW5nUHJvZ3Jlc3NFdmVudHNJbnRlcm5hbC5oIgogI2ltcG9ydCAi
X1dLU2FtZURvY3VtZW50TmF2aWdhdGlvblR5cGVJbnRlcm5hbC5oIgogI2ltcG9ydCAiX1dLV2Vi
c2l0ZVBvbGljaWVzSW50ZXJuYWwuaCIKKyNpbXBvcnQgPFdlYkNvcmUvQXV0aGVudGljYXRpb25N
YWMuaD4KICNpbXBvcnQgPFdlYkNvcmUvQ29udGVudFJ1bGVMaXN0UmVzdWx0cy5oPgogI2ltcG9y
dCA8V2ViQ29yZS9DcmVkZW50aWFsLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1NTTEtleUdlbmVyYXRv
ci5oPgpAQCAtMTc3LDYgKzE3OCw3IEBAIHZvaWQgTmF2aWdhdGlvblN0YXRlOjpzZXROYXZpZ2F0
aW9uRGVsZWcKICAgICBtX25hdmlnYXRpb25EZWxlZ2F0ZU1ldGhvZHMud2ViVmlld1JlbmRlcmlu
Z1Byb2dyZXNzRGlkQ2hhbmdlID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0
b3IoX3dlYlZpZXc6cmVuZGVyaW5nUHJvZ3Jlc3NEaWRDaGFuZ2U6KV07CiAgICAgbV9uYXZpZ2F0
aW9uRGVsZWdhdGVNZXRob2RzLndlYlZpZXdEaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVu
Z2VDb21wbGV0aW9uSGFuZGxlciA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVj
dG9yKHdlYlZpZXc6ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlOmNvbXBsZXRpb25I
YW5kbGVyOildOwogICAgIG1fbmF2aWdhdGlvbkRlbGVnYXRlTWV0aG9kcy53ZWJWaWV3QXV0aGVu
dGljYXRpb25DaGFsbGVuZ2VTaG91bGRBbGxvd0xlZ2FjeVRMUyA9IFtkZWxlZ2F0ZSByZXNwb25k
c1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OmF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlOnNo
b3VsZEFsbG93TGVnYWN5VExTOildOworICAgIG1fbmF2aWdhdGlvbkRlbGVnYXRlTWV0aG9kcy53
ZWJWaWV3RGlkTmVnb3RpYXRlTW9kZXJuVExTID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3Rv
cjpAc2VsZWN0b3IoX3dlYlZpZXc6ZGlkTmVnb3RpYXRlTW9kZXJuVExTOildOwogICAgIG1fbmF2
aWdhdGlvbkRlbGVnYXRlTWV0aG9kcy53ZWJWaWV3V2ViQ29udGVudFByb2Nlc3NEaWRUZXJtaW5h
dGUgPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcih3ZWJWaWV3V2ViQ29u
dGVudFByb2Nlc3NEaWRUZXJtaW5hdGU6KV07CiAgICAgbV9uYXZpZ2F0aW9uRGVsZWdhdGVNZXRo
b2RzLndlYlZpZXdXZWJDb250ZW50UHJvY2Vzc0RpZFRlcm1pbmF0ZVdpdGhSZWFzb24gPSBbZGVs
ZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzp3ZWJDb250ZW50UHJv
Y2Vzc0RpZFRlcm1pbmF0ZVdpdGhSZWFzb246KV07CiAgICAgbV9uYXZpZ2F0aW9uRGVsZWdhdGVN
ZXRob2RzLndlYlZpZXdXZWJQcm9jZXNzRGlkQ3Jhc2ggPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1Nl
bGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlld1dlYlByb2Nlc3NEaWRDcmFzaDopXTsKQEAgLTEwNDUs
NiArMTA0NywxOCBAQCB2b2lkIE5hdmlnYXRpb25TdGF0ZTo6TmF2aWdhdGlvbkNsaWVudDo6CiAg
ICAgfSkuZ2V0KCldOwogfQogCit2b2lkIE5hdmlnYXRpb25TdGF0ZTo6TmF2aWdhdGlvbkNsaWVu
dDo6ZGlkTmVnb3RpYXRlTW9kZXJuVExTKGNvbnN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlJiBjaGFsbGVuZ2UpCit7CisgICAgaWYgKCFtX25hdmlnYXRpb25TdGF0ZS5tX25hdmln
YXRpb25EZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RpZE5lZ290aWF0ZU1vZGVyblRMUykKKyAgICAg
ICAgcmV0dXJuOworCisgICAgYXV0byBuYXZpZ2F0aW9uRGVsZWdhdGUgPSBtX25hdmlnYXRpb25T
dGF0ZS5tX25hdmlnYXRpb25EZWxlZ2F0ZS5nZXQoKTsKKyAgICBpZiAoIW5hdmlnYXRpb25EZWxl
Z2F0ZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgW3N0YXRpY19jYXN0PGlkIDxXS05hdmlnYXRp
b25EZWxlZ2F0ZVByaXZhdGU+PihuYXZpZ2F0aW9uRGVsZWdhdGUuZ2V0KCkpIF93ZWJWaWV3Om1f
bmF2aWdhdGlvblN0YXRlLm1fd2ViVmlldyBkaWROZWdvdGlhdGVNb2Rlcm5UTFM6bWFjKGNoYWxs
ZW5nZSldOworfQorCiBzdGF0aWMgX1dLUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uIHdrUHJvY2Vz
c1Rlcm1pbmF0aW9uUmVhc29uKFByb2Nlc3NUZXJtaW5hdGlvblJlYXNvbiByZWFzb24pCiB7CiAg
ICAgc3dpdGNoIChyZWFzb24pIHsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdv
cmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAkocmV2aXNpb24gMjU5OTIy
KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzUyLDYgKzM1MiwxMiBAQCB2b2lkIE5ldHdvcmtQcm9j
ZXNzUHJveHk6Om5lZ290aWF0ZWRMZWdhCiAgICAgICAgIHBhZ2UtPm5lZ290aWF0ZWRMZWdhY3lU
TFMoKTsKIH0KIAordm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpkaWROZWdvdGlhdGVNb2Rlcm5U
TFMoV2ViUGFnZVByb3h5SWRlbnRpZmllciBwYWdlSUQsIGNvbnN0IFdlYkNvcmU6OkF1dGhlbnRp
Y2F0aW9uQ2hhbGxlbmdlJiBjaGFsbGVuZ2UpCit7CisgICAgaWYgKGF1dG8qIHBhZ2UgPSBwYWdl
SUQgPyBXZWJQcm9jZXNzUHJveHk6OndlYlBhZ2UocGFnZUlEKSA6IG51bGxwdHIpCisgICAgICAg
IHBhZ2UtPmRpZE5lZ290aWF0ZU1vZGVyblRMUyhjaGFsbGVuZ2UpOworfQorCiB2b2lkIE5ldHdv
cmtQcm9jZXNzUHJveHk6OmRpZEZldGNoV2Vic2l0ZURhdGEodWludDY0X3QgY2FsbGJhY2tJRCwg
Y29uc3QgV2Vic2l0ZURhdGEmIHdlYnNpdGVEYXRhKQogewogICAgIE1FU1NBR0VfQ0hFQ0sobV9w
ZW5kaW5nRmV0Y2hXZWJzaXRlRGF0YUNhbGxiYWNrcy5pc1ZhbGlkS2V5KGNhbGxiYWNrSUQpKTsK
SW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94
eS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29y
a1Byb2Nlc3NQcm94eS5oCShyZXZpc2lvbiAyNTk5MjIpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaAkod29ya2luZyBjb3B5KQpAQCAtMjUx
LDYgKzI1MSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRSZWNlaXZlTmV0d29ya1Byb2Nlc3NQ
cm94eU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJik7CiAgICAgdm9pZCBk
aWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoUEFMOjpTZXNzaW9uSUQsIFdlYlBhZ2VQ
cm94eUlkZW50aWZpZXIsIGNvbnN0IE9wdGlvbmFsPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0
YT4mLCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYmLCBib29sLCB1aW50NjRfdCBj
aGFsbGVuZ2VJRCk7CiAgICAgdm9pZCBuZWdvdGlhdGVkTGVnYWN5VExTKFdlYlBhZ2VQcm94eUlk
ZW50aWZpZXIpOworICAgIHZvaWQgZGlkTmVnb3RpYXRlTW9kZXJuVExTKFdlYlBhZ2VQcm94eUlk
ZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJik7CiAgICAg
dm9pZCBkaWRGZXRjaFdlYnNpdGVEYXRhKHVpbnQ2NF90IGNhbGxiYWNrSUQsIGNvbnN0IFdlYnNp
dGVEYXRhJik7CiAgICAgdm9pZCBkaWREZWxldGVXZWJzaXRlRGF0YSh1aW50NjRfdCBjYWxsYmFj
a0lEKTsKICAgICB2b2lkIGRpZERlbGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2lucyh1aW50NjRfdCBj
YWxsYmFja0lEKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29y
a1Byb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4JKHJldmlzaW9u
IDI1OTkyMikKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nl
c3NQcm94eS5tZXNzYWdlcy5pbgkod29ya2luZyBjb3B5KQpAQCAtMjMsNiArMjMsNyBAQAogbWVz
c2FnZXMgLT4gTmV0d29ya1Byb2Nlc3NQcm94eSBMZWdhY3lSZWNlaXZlciBOb3RSZWZDb3VudGVk
IHsKICAgICBEaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoUEFMOjpTZXNzaW9uSUQg
c2Vzc2lvbklELCBXZWJLaXQ6OldlYlBhZ2VQcm94eUlkZW50aWZpZXIgcGFnZUlELCBPcHRpb25h
bDxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGE+IHRvcE9yaWdpbiwgV2ViQ29yZTo6QXV0aGVu
dGljYXRpb25DaGFsbGVuZ2UgY2hhbGxlbmdlLCBib29sIG5lZ290aWF0ZWRMZWdhY3lUTFMsIHVp
bnQ2NF90IGNoYWxsZW5nZUlEKQogICAgIE5lZ290aWF0ZWRMZWdhY3lUTFMoV2ViS2l0OjpXZWJQ
YWdlUHJveHlJZGVudGlmaWVyIHBhZ2VJRCkKKyAgICBEaWROZWdvdGlhdGVNb2Rlcm5UTFMoV2Vi
S2l0OjpXZWJQYWdlUHJveHlJZGVudGlmaWVyIHBhZ2VJRCwgV2ViQ29yZTo6QXV0aGVudGljYXRp
b25DaGFsbGVuZ2UgY2hhbGxlbmdlKQogCiAgICAgRGlkRmV0Y2hXZWJzaXRlRGF0YSh1aW50NjRf
dCBjYWxsYmFja0lELCBzdHJ1Y3QgV2ViS2l0OjpXZWJzaXRlRGF0YSB3ZWJzaXRlRGF0YSkKICAg
ICBEaWREZWxldGVXZWJzaXRlRGF0YSh1aW50NjRfdCBjYWxsYmFja0lEKQpJbmRleDogVG9vbHMv
Q2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0NoYW5nZUxvZwkocmV2aXNpb24gMjYwMTE3
KQorKysgVG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIw
MjAtMDQtMTQgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKwor
ICAgICAgICBTUEkgY2xpZW50cyB1c2luZyBmYXN0U2VydmVyVHJ1c3RFdmFsdWF0aW9uRW5hYmxl
ZCBuZWVkIFNQSSB0byBpbmZvcm0gdGhlbSBvZiBtb2Rlcm4gVExTIG5lZ290aWF0aW9uCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTA1MzMKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvVExTRGVwcmVjYXRpb24ubW06CisgICAgICAgICgtW1RMU05h
dmlnYXRpb25EZWxlZ2F0ZSB3YWl0Rm9yRGlkTmVnb3RpYXRlTW9kZXJuVExTXSk6CisgICAgICAg
ICgtW1RMU05hdmlnYXRpb25EZWxlZ2F0ZSBfd2ViVmlldzpkaWROZWdvdGlhdGVNb2Rlcm5UTFM6
XSk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKwogMjAyMC0wNC0xNCAgSmVyIE5v
YmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBXS1RSIGFsd2F5cyBlbmFibGVz
IGNhcHR1cmluZyBhdWRpby92aWRlbyBpbiBHUFVQcm9jZXNzCkluZGV4OiBUb29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1RMU0RlcHJlY2F0aW9uLm1tCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvVExTRGVwcmVjYXRpb24ubW0J
KHJldmlzaW9uIDI1OTkyMikKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvVExTRGVwcmVjYXRpb24ubW0JKHdvcmtpbmcgY29weSkKQEAgLTczLDYgKzczLDcgQEAgLSAo
dm9pZCl3YWl0VW50aWxOZWdvdGlhdGVkTGVnYWN5VExTQ2hhbgogQGludGVyZmFjZSBUTFNOYXZp
Z2F0aW9uRGVsZWdhdGUgOiBOU09iamVjdCA8V0tOYXZpZ2F0aW9uRGVsZWdhdGU+CiAtICh2b2lk
KXdhaXRGb3JEaWRGaW5pc2hOYXZpZ2F0aW9uOwogLSAodm9pZCl3YWl0Rm9yRGlkRmFpbFByb3Zp
c2lvbmFsTmF2aWdhdGlvbjsKKy0gKE5TVVJMQXV0aGVudGljYXRpb25DaGFsbGVuZ2UgKil3YWl0
Rm9yRGlkTmVnb3RpYXRlTW9kZXJuVExTOwogLSAoYm9vbClyZWNlaXZlZFNob3VsZEFsbG93TGVn
YWN5VExTOwogQHByb3BlcnR5IChub25hdG9taWMpIGJvb2wgc2hvdWxkQWxsb3dMZWdhY3lUTFM7
CiBAZW5kCkBAIC04MSw2ICs4Miw3IEBAIC0gKGJvb2wpcmVjZWl2ZWRTaG91bGRBbGxvd0xlZ2Fj
eVRMUzsKICAgICBib29sIF9uYXZpZ2F0aW9uRmluaXNoZWQ7CiAgICAgYm9vbCBfbmF2aWdhdGlv
bkZhaWxlZDsKICAgICBib29sIF9yZWNlaXZlZFNob3VsZEFsbG93TGVnYWN5VExTOworICAgIFJl
dGFpblB0cjxOU1VSTEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlPiBfbmVnb3RpYXRlZE1vZGVyblRM
UzsKIH0KIAogLSAodm9pZCl3YWl0Rm9yRGlkRmluaXNoTmF2aWdhdGlvbgpAQCAtOTUsNiArOTcs
MTMgQEAgLSAodm9pZCl3YWl0Rm9yRGlkRmFpbFByb3Zpc2lvbmFsTmF2aWdhdAogICAgICAgICBU
ZXN0V2ViS2l0QVBJOjpVdGlsOjpzcGluUnVuTG9vcCgpOwogfQogCistIChOU1VSTEF1dGhlbnRp
Y2F0aW9uQ2hhbGxlbmdlICopd2FpdEZvckRpZE5lZ290aWF0ZU1vZGVyblRMUworeworICAgIHdo
aWxlICghX25lZ290aWF0ZWRNb2Rlcm5UTFMpCisgICAgICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6
OnNwaW5SdW5Mb29wKCk7CisgICAgcmV0dXJuIF9uZWdvdGlhdGVkTW9kZXJuVExTLmF1dG9yZWxl
YXNlKCk7Cit9CisKIC0gKGJvb2wpcmVjZWl2ZWRTaG91bGRBbGxvd0xlZ2FjeVRMUwogewogICAg
IHJldHVybiBfcmVjZWl2ZWRTaG91bGRBbGxvd0xlZ2FjeVRMUzsKQEAgLTEyMiw2ICsxMzEsMTEg
QEAgLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBhdQogICAgIGNvbXBsZXRp
b25IYW5kbGVyKFtzZWxmIHNob3VsZEFsbG93TGVnYWN5VExTXSk7CiB9CiAKKy0gKHZvaWQpX3dl
YlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGlkTmVnb3RpYXRlTW9kZXJuVExTOihOU1VSTEF1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlICopY2hhbGxlbmdlCit7CisgICAgX25lZ290aWF0ZWRNb2Rl
cm5UTFMgPSBjaGFsbGVuZ2U7Cit9CisKIEBlbmQKIAogCkBAIC0zNjksNiArMzgzLDI1IEBAIFRF
U1QoVExTVmVyc2lvbiwgU3VicmVzb3VyY2UpCiAgICAgW3dlYlZpZXcgcmVtb3ZlT2JzZXJ2ZXI6
b2JzZXJ2ZXIuZ2V0KCkgZm9yS2V5UGF0aDpAIl9uZWdvdGlhdGVkTGVnYWN5VExTIl07CiB9CiAK
K1RFU1QoVExTVmVyc2lvbiwgRGlkTmVnb3RpYXRlTW9kZXJuVExTKQoreworICAgIEhUVFBTZXJ2
ZXIgc2VydmVyKHsKKyAgICAgICAgeyAiLyIsIHsgImhlbGxvIiB9fQorICAgIH0sIEhUVFBTZXJ2
ZXI6OlByb3RvY29sOjpIdHRwcyk7CisKKyAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbVExT
TmF2aWdhdGlvbkRlbGVnYXRlIG5ld10pOworICAgIGF1dG8gY29uZmlndXJhdGlvbiA9IGFkb3B0
TlMoW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gbmV3XSk7CisgICAgYXV0byBkYXRhU3RvcmVDb25m
aWd1cmF0aW9uID0gYWRvcHROUyhbX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24gbmV3
XSk7CisgICAgW2RhdGFTdG9yZUNvbmZpZ3VyYXRpb24gc2V0RmFzdFNlcnZlclRydXN0RXZhbHVh
dGlvbkVuYWJsZWQ6WUVTXTsKKyAgICBbY29uZmlndXJhdGlvbiBzZXRXZWJzaXRlRGF0YVN0b3Jl
OltbW1dLV2Vic2l0ZURhdGFTdG9yZSBhbGxvY10gX2luaXRXaXRoQ29uZmlndXJhdGlvbjpkYXRh
U3RvcmVDb25maWd1cmF0aW9uLmdldCgpXSBhdXRvcmVsZWFzZV1dOworICAgIGF1dG8gd2ViVmll
dyA9IGFkb3B0TlMoW1tXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgw
LCAwLCA4MDAsIDYwMCkgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uLmdldCgpXSk7CisgICAg
W3dlYlZpZXcgc2V0TmF2aWdhdGlvbkRlbGVnYXRlOmRlbGVnYXRlLmdldCgpXTsKKyAgICBbd2Vi
VmlldyBsb2FkUmVxdWVzdDpzZXJ2ZXIucmVxdWVzdCgpXTsKKyAgICBOU1VSTEF1dGhlbnRpY2F0
aW9uQ2hhbGxlbmdlICpjaGFsbGVuZ2UgPSBbZGVsZWdhdGUgd2FpdEZvckRpZE5lZ290aWF0ZU1v
ZGVyblRMU107CisgICAgRVhQRUNUX1dLX1NUUkVRKGNoYWxsZW5nZS5wcm90ZWN0aW9uU3BhY2Uu
aG9zdCwgIjEyNy4wLjAuMSIpOworICAgIEVYUEVDVF9FUShjaGFsbGVuZ2UucHJvdGVjdGlvblNw
YWNlLnBvcnQsIHNlcnZlci5wb3J0KCkpOworfQorCiBURVNUKFRMU1ZlcnNpb24sIEJhY2tGb3J3
YXJkSGFzT25seVNlY3VyZUNvbnRlbnQpCiB7CiAgICAgSFRUUFNlcnZlciBzZWN1cmVTZXJ2ZXIo
ewo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>397047</attachid>
            <date>2020-04-20 19:36:26 -0700</date>
            <delta_ts>2020-04-24 10:38:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-210533-20200420193625.patch</filename>
            <type>text/plain</type>
            <size>20424</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNjAzODQpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM0IEBACisyMDIwLTA0LTIwICBBbGV4IENocmlz
dGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgU1BJIGNsaWVudHMg
dXNpbmcgZmFzdFNlcnZlclRydXN0RXZhbHVhdGlvbkVuYWJsZWQgbmVlZCBTUEkgdG8gaW5mb3Jt
IHRoZW0gb2YgbW9kZXJuIFRMUyBuZWdvdGlhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEwNTMzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQnJh
ZHkgRWlkc29uLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0RhdGFUYXNrLmg6
CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtEYXRhVGFza0NsaWVudDo6ZGlkTmVnb3RpYXRlTW9k
ZXJuVExTKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5jcHA6CisgICAg
ICAgIChXZWJLaXQ6Ok5ldHdvcmtMb2FkOjpkaWROZWdvdGlhdGVNb2Rlcm5UTFMpOgorICAgICAg
ICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nl
c3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vz
cy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6TmV0d29y
a0RhdGFUYXNrQ29jb2E6OmRpZE5lZ290aWF0ZU1vZGVyblRMUyk6CisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbToKKyAgICAgICAgKC1bV0tOZXR3
b3JrU2Vzc2lvbkRlbGVnYXRlIFVSTFNlc3Npb246dGFzazpkaWRSZWNlaXZlQ2hhbGxlbmdlOmNv
bXBsZXRpb25IYW5kbGVyOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJTmF2aWdhdGlv
bkNsaWVudC5oOgorICAgICAgICAoQVBJOjpOYXZpZ2F0aW9uQ2xpZW50OjpkaWROZWdvdGlhdGVN
b2Rlcm5UTFMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uRGVs
ZWdhdGVQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25TdGF0
ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUubW06CisgICAg
ICAgIChXZWJLaXQ6Ok5hdmlnYXRpb25TdGF0ZTo6c2V0TmF2aWdhdGlvbkRlbGVnYXRlKToKKyAg
ICAgICAgKFdlYktpdDo6TmF2aWdhdGlvblN0YXRlOjpOYXZpZ2F0aW9uQ2xpZW50OjpkaWROZWdv
dGlhdGVNb2Rlcm5UTFMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9j
ZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpkaWRO
ZWdvdGlhdGVNb2Rlcm5UTFMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQ
cm9jZXNzUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vz
c1Byb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3Bw
OgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKwogMjAyMC0wNC0yMCAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFNlbmRpbmcgYmVhY29ucyB3
aGVuIEZldGNoIEtlZXBBbGl2ZSBmZWF0dXJlIGlzIGRpc2FibGVkIGNyYXNoZXMgdGhlIFdlYlBy
b2Nlc3MKSW5kZXg6IFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0RhdGFUYXNr
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrRGF0
YVRhc2suaAkocmV2aXNpb24gMjYwMzY3KQorKysgU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrRGF0YVRhc2suaAkod29ya2luZyBjb3B5KQpAQCAtNzIsNiArNzIsOCBAQCBwdWJs
aWM6CiAKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkQ2FwdHVyZUV4dHJhTmV0d29ya0xvYWRNZXRy
aWNzKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIAorICAgIHZpcnR1YWwgdm9pZCBkaWROZWdv
dGlhdGVNb2Rlcm5UTFMoY29uc3QgV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2UmKSB7
IH0KKwogICAgIHZvaWQgZGlkQ29tcGxldGVXaXRoRXJyb3IoY29uc3QgV2ViQ29yZTo6UmVzb3Vy
Y2VFcnJvciYgZXJyb3IpCiAgICAgewogICAgICAgICBXZWJDb3JlOjpOZXR3b3JrTG9hZE1ldHJp
Y3MgZW1wdHlNZXRyaWNzOwpJbmRleDogU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrTG9hZC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrTG9hZC5jcHAJKHJldmlzaW9uIDI2MDM2NykKKysrIFNvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya0xvYWQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw2ICszMCw3IEBA
CiAjaW5jbHVkZSAiQXV0aGVudGljYXRpb25NYW5hZ2VyLmgiCiAjaW5jbHVkZSAiTmV0d29ya0Rh
dGFUYXNrQmxvYi5oIgogI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzLmgiCisjaW5jbHVkZSAiTmV0
d29ya1Byb2Nlc3NQcm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Nlc3Npb24uaCIK
ICNpbmNsdWRlICJXZWJFcnJvcnMuaCIKICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVxdWVz
dC5oPgpAQCAtMjg1LDYgKzI4NiwxMSBAQCB2b2lkIE5ldHdvcmtMb2FkOjp3YXNCbG9ja2VkQnlS
ZXN0cmljdGlvCiAgICAgbV9jbGllbnQuZ2V0KCkuZGlkRmFpbExvYWRpbmcod2FzQmxvY2tlZEJ5
UmVzdHJpY3Rpb25zRXJyb3IobV9jdXJyZW50UmVxdWVzdCkpOwogfQogCit2b2lkIE5ldHdvcmtM
b2FkOjpkaWROZWdvdGlhdGVNb2Rlcm5UTFMoY29uc3QgV2ViQ29yZTo6QXV0aGVudGljYXRpb25D
aGFsbGVuZ2UmIGNoYWxsZW5nZSkKK3sKKyAgICBtX25ldHdvcmtQcm9jZXNzLT5zZW5kKE1lc3Nh
Z2VzOjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpEaWROZWdvdGlhdGVNb2Rlcm5UTFMobV9wYXJhbWV0
ZXJzLndlYlBhZ2VQcm94eUlELCBjaGFsbGVuZ2UpKTsKK30KKwogU3RyaW5nIE5ldHdvcmtMb2Fk
OjpkZXNjcmlwdGlvbigpIGNvbnN0CiB7CiAgICAgaWYgKG1fdGFzay5nZXQoKSkKSW5kZXg6IFNv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkLmgJKHJldmlzaW9uIDI2MDM2
NykKKysrIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQuaAkod29ya2lu
ZyBjb3B5KQpAQCAtODEsNiArODEsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgd2FzQmxvY2tlZCgp
IGZpbmFsOwogICAgIHZvaWQgY2Fubm90U2hvd1VSTCgpIGZpbmFsOwogICAgIHZvaWQgd2FzQmxv
Y2tlZEJ5UmVzdHJpY3Rpb25zKCkgZmluYWw7CisgICAgdm9pZCBkaWROZWdvdGlhdGVNb2Rlcm5U
TFMoY29uc3QgV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2UmKSBmaW5hbDsKIAogICAg
IHZvaWQgbm90aWZ5RGlkUmVjZWl2ZVJlc3BvbnNlKFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2Um
JiwgTmVnb3RpYXRlZExlZ2FjeVRMUywgUmVzcG9uc2VDb21wbGV0aW9uSGFuZGxlciYmKTsKICAg
ICB2b2lkIHRocm90dGxlRGVsYXlDb21wbGV0ZWQoKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLmgJ
KHJldmlzaW9uIDI2MDM2NykKKysrIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2Ev
TmV0d29ya0RhdGFUYXNrQ29jb2EuaAkod29ya2luZyBjb3B5KQpAQCAtNTMsNiArNTMsNyBAQCBw
dWJsaWM6CiAKICAgICB2b2lkIGRpZFNlbmREYXRhKHVpbnQ2NF90IHRvdGFsQnl0ZXNTZW50LCB1
aW50NjRfdCB0b3RhbEJ5dGVzRXhwZWN0ZWRUb1NlbmQpOwogICAgIHZvaWQgZGlkUmVjZWl2ZUNo
YWxsZW5nZShXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYmLCBOZWdvdGlhdGVkTGVn
YWN5VExTLCBDaGFsbGVuZ2VDb21wbGV0aW9uSGFuZGxlciYmKTsKKyAgICB2b2lkIGRpZE5lZ290
aWF0ZU1vZGVyblRMUyhjb25zdCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYpOwog
ICAgIHZvaWQgZGlkQ29tcGxldGVXaXRoRXJyb3IoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJv
ciYsIGNvbnN0IFdlYkNvcmU6Ok5ldHdvcmtMb2FkTWV0cmljcyYpOwogICAgIHZvaWQgZGlkUmVj
ZWl2ZVJlc3BvbnNlKFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJiwgTmVnb3RpYXRlZExlZ2Fj
eVRMUywgUmVzcG9uc2VDb21wbGV0aW9uSGFuZGxlciYmKTsKICAgICB2b2lkIGRpZFJlY2VpdmVE
YXRhKFJlZjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+JiYpOwpJbmRleDogU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5tbQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29h
Lm1tCShyZXZpc2lvbiAyNjAzNjcpCisrKyBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2Nv
Y29hL05ldHdvcmtEYXRhVGFza0NvY29hLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0zMTgsNiArMzE4
LDEyIEBAIHZvaWQgTmV0d29ya0RhdGFUYXNrQ29jb2E6OmRpZFJlY2VpdmVDaGEKICAgICB9CiB9
CiAKK3ZvaWQgTmV0d29ya0RhdGFUYXNrQ29jb2E6OmRpZE5lZ290aWF0ZU1vZGVyblRMUyhjb25z
dCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYgY2hhbGxlbmdlKQoreworICAgIGlm
IChtX2NsaWVudCkKKyAgICAgICAgbV9jbGllbnQtPmRpZE5lZ290aWF0ZU1vZGVyblRMUyhjaGFs
bGVuZ2UpOworfQorCiB2b2lkIE5ldHdvcmtEYXRhVGFza0NvY29hOjpkaWRDb21wbGV0ZVdpdGhF
cnJvcihjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiBlcnJvciwgY29uc3QgV2ViQ29yZTo6
TmV0d29ya0xvYWRNZXRyaWNzJiBuZXR3b3JrTG9hZE1ldHJpY3MpCiB7CiAgICAgaWYgKGVycm9y
LmlzTnVsbCgpKQpJbmRleDogU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3
b3JrU2Vzc2lvbkNvY29hLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbQkocmV2aXNpb24gMjYwMzY3KQorKysg
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1t
CSh3b3JraW5nIGNvcHkpCkBAIC02NzQsOCArNjc0LDEwIEBAIC0gKHZvaWQpVVJMU2Vzc2lvbjoo
TlNVUkxTZXNzaW9uICopc2Vzc2kKIAogICAgICAgICAvLyBIYW5kbGUgc2VydmVyIHRydXN0IGV2
YWx1YXRpb24gYXQgcGxhdGZvcm0tbGV2ZWwgaWYgcmVxdWVzdGVkLCBmb3IgcGVyZm9ybWFuY2Ug
cmVhc29ucyBhbmQgdG8gdXNlIEFUUyBkZWZhdWx0cy4KICAgICAgICAgaWYgKHNlc3Npb25Db2Nv
YS0+ZmFzdFNlcnZlclRydXN0RXZhbHVhdGlvbkVuYWJsZWQoKSAmJiBuZWdvdGlhdGVkTGVnYWN5
VExTID09IE5lZ290aWF0ZWRMZWdhY3lUTFM6Ok5vKSB7Ci0jaWYgSEFWRShDRk5FVFdPUktfTlNV
UkxTRVNTSU9OX1NUUklDVFJVU1RFVkFMVUFURSkKICAgICAgICAgICAgIGF1dG8qIG5ldHdvcmtE
YXRhVGFzayA9IFtzZWxmIGV4aXN0aW5nVGFzazp0YXNrXTsKKyAgICAgICAgICAgIGlmIChuZXR3
b3JrRGF0YVRhc2spCisgICAgICAgICAgICAgICAgbmV0d29ya0RhdGFUYXNrLT5kaWROZWdvdGlh
dGVNb2Rlcm5UTFMoY2hhbGxlbmdlKTsKKyNpZiBIQVZFKENGTkVUV09SS19OU1VSTFNFU1NJT05f
U1RSSUNUUlVTVEVWQUxVQVRFKQogICAgICAgICAgICAgYXV0byBkZWNpc2lvbkhhbmRsZXIgPSBt
YWtlQmxvY2tQdHIoW3dlYWtTZWxmID0gV2Vha09iakNQdHI8V0tOZXR3b3JrU2Vzc2lvbkRlbGVn
YXRlPihzZWxmKSwgc2Vzc2lvbkNvY29hID0gbWFrZVdlYWtQdHIoc2Vzc2lvbkNvY29hKSwgY29t
cGxldGlvbkhhbmRsZXIgPSBtYWtlQmxvY2tQdHIoY29tcGxldGlvbkhhbmRsZXIpLCB0YXNrSWRl
bnRpZmllciwgbmV0d29ya0RhdGFUYXNrID0gbWFrZVJlZlB0cihuZXR3b3JrRGF0YVRhc2spLCBu
ZWdvdGlhdGVkTGVnYWN5VExTXShOU1VSTEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlICpjaGFsbGVu
Z2UsIE9TU3RhdHVzIHRydXN0UmVzdWx0KSBtdXRhYmxlIHsKICAgICAgICAgICAgICAgICBhdXRv
IHN0cm9uZ1NlbGYgPSB3ZWFrU2VsZi5nZXQoKTsKICAgICAgICAgICAgICAgICBpZiAoIXN0cm9u
Z1NlbGYpCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAJKHJl
dmlzaW9uIDI2MDM2NykKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTc5MjcsNiArNzkyNywxMSBAQCB2b2lkIFdlYlBhZ2VQcm94
eTo6bmVnb3RpYXRlZExlZ2FjeVRMUygpCiAgICAgbV9wYWdlTG9hZFN0YXRlLm5lZ290aWF0ZWRM
ZWdhY3lUTFModHJhbnNhY3Rpb24pOwogfQogCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkTmVnb3Rp
YXRlTW9kZXJuVExTKGNvbnN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiBjaGFs
bGVuZ2UpCit7CisgICAgbV9uYXZpZ2F0aW9uQ2xpZW50LT5kaWROZWdvdGlhdGVNb2Rlcm5UTFMo
Y2hhbGxlbmdlKTsKK30KKwogdm9pZCBXZWJQYWdlUHJveHk6OmV4Y2VlZGVkRGF0YWJhc2VRdW90
YShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiBvcmlnaW5JZGVudGlmaWVy
LCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlTmFtZSwgY29uc3QgU3RyaW5nJiBkaXNwbGF5TmFtZSwg
dWludDY0X3QgY3VycmVudFF1b3RhLCB1aW50NjRfdCBjdXJyZW50T3JpZ2luVXNhZ2UsIHVpbnQ2
NF90IGN1cnJlbnREYXRhYmFzZVVzYWdlLCB1aW50NjRfdCBleHBlY3RlZFVzYWdlLCBNZXNzYWdl
czo6V2ViUGFnZVByb3h5OjpFeGNlZWRlZERhdGFiYXNlUXVvdGE6OkRlbGF5ZWRSZXBseSYmIHJl
cGx5KQogewogICAgIHJlcXVlc3RTdG9yYWdlU3BhY2UoZnJhbWVJRCwgb3JpZ2luSWRlbnRpZmll
ciwgZGF0YWJhc2VOYW1lLCBkaXNwbGF5TmFtZSwgY3VycmVudFF1b3RhLCBjdXJyZW50T3JpZ2lu
VXNhZ2UsIGN1cnJlbnREYXRhYmFzZVVzYWdlLCBleHBlY3RlZFVzYWdlLCBbcmVwbHkgPSBXVEZN
b3ZlKHJlcGx5KV0oYXV0byBxdW90YSkgbXV0YWJsZSB7CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuaAkocmV2aXNpb24gMjYwMzY3KQorKysgU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmgJKHdvcmtpbmcgY29weSkKQEAgLTEzNjYsNiArMTM2Niw3
IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
UHJveHkoUmVmPEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHk+JiYsIE5lZ290aWF0ZWRMZWdh
Y3lUTFMpOwogICAgIHZvaWQgbmVnb3RpYXRlZExlZ2FjeVRMUygpOworICAgIHZvaWQgZGlkTmVn
b3RpYXRlTW9kZXJuVExTKGNvbnN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJik7
CiAKICAgICBTcGVsbERvY3VtZW50VGFnIHNwZWxsRG9jdW1lbnRUYWcoKTsKIApJbmRleDogU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSU5hdmlnYXRpb25DbGllbnQuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJTmF2aWdhdGlvbkNsaWVudC5oCShy
ZXZpc2lvbiAyNjAzNjcpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJTmF2aWdh
dGlvbkNsaWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDIsNiArMTAyLDcgQEAgcHVibGljOgog
CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShXZWJL
aXQ6OldlYlBhZ2VQcm94eSYsIFdlYktpdDo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eSYg
Y2hhbGxlbmdlKSB7IGNoYWxsZW5nZS5saXN0ZW5lcigpLmNvbXBsZXRlQ2hhbGxlbmdlKFdlYktp
dDo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2VEaXNwb3NpdGlvbjo6UGVyZm9ybURlZmF1bHRIYW5k
bGluZyk7IH0KICAgICB2aXJ0dWFsIHZvaWQgc2hvdWxkQWxsb3dMZWdhY3lUTFMoV2ViS2l0OjpX
ZWJQYWdlUHJveHkmLCBXZWJLaXQ6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHkmLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKSB7IGNvbXBsZXRp
b25IYW5kbGVyKHRydWUpOyB9CisgICAgdmlydHVhbCB2b2lkIGRpZE5lZ290aWF0ZU1vZGVyblRM
Uyhjb25zdCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYpIHsgfQogICAgIHZpcnR1
YWwgYm9vbCBzaG91bGRCeXBhc3NDb250ZW50TW9kZVNhZmVndWFyZHMoKSBjb25zdCB7IHJldHVy
biBmYWxzZTsgfQogCiAgICAgLy8gRklYTUU6IFRoZXNlIGZ1bmN0aW9uIHNob3VsZCBub3QgYmUg
cGFydCBvZiB0aGlzIGNsaWVudC4KSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS05hdmlnYXRpb25EZWxlZ2F0ZVByaXZhdGUuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uRGVsZWdhdGVQcml2YXRlLmgJ
KHJldmlzaW9uIDI2MDM2NykKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S05hdmlnYXRpb25EZWxlZ2F0ZVByaXZhdGUuaAkod29ya2luZyBjb3B5KQpAQCAtODYsNiArODYs
NyBAQCBzdGF0aWMgY29uc3QgV0tOYXZpZ2F0aW9uUmVzcG9uc2VQb2xpY3kgCiAtIChOU0RhdGEg
Kilfd2ViQ3J5cHRvTWFzdGVyS2V5Rm9yV2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldzsKIAog
LSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBhdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZTooTlNVUkxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSAqKWNoYWxsZW5nZSBzaG91bGRBbGxv
d0xlZ2FjeVRMUzoodm9pZCAoXikoQk9PTCkpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlM
QUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKy0gKHZvaWQpX3dlYlZp
ZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGlkTmVnb3RpYXRlTW9kZXJuVExTOihOU1VSTEF1dGhl
bnRpY2F0aW9uQ2hhbGxlbmdlICopY2hhbGxlbmdlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tf
TUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAKIC0gKHZvaWQpX3dlYlZpZXdEaWRCZWdpbk5h
dmlnYXRpb25HZXN0dXJlOihXS1dlYlZpZXcgKil3ZWJWaWV3OwogLy8gSXRlbSBpcyBuaWwgaWYg
dGhlIGdlc3R1cmUgZW5kZWQgd2l0aG91dCBuYXZpZ2F0aW9uLgpJbmRleDogU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQ29jb2EvTmF2aWdhdGlvblN0YXRlLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvTmF2aWdhdGlvblN0YXRlLmgJKHJldmlzaW9uIDI2MDM2
NykKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25TdGF0ZS5oCSh3
b3JraW5nIGNvcHkpCkBAIC0xMTcsNiArMTE3LDcgQEAgcHJpdmF0ZToKIAogICAgICAgICB2b2lk
IGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShXZWJQYWdlUHJveHkmLCBBdXRoZW50
aWNhdGlvbkNoYWxsZW5nZVByb3h5Jikgb3ZlcnJpZGU7CiAgICAgICAgIHZvaWQgc2hvdWxkQWxs
b3dMZWdhY3lUTFMoV2ViUGFnZVByb3h5JiwgQXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eSYs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpIGZpbmFsOworICAgICAgICB2b2lkIGRp
ZE5lZ290aWF0ZU1vZGVyblRMUyhjb25zdCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZSYpIGZpbmFsOwogICAgICAgICBib29sIHByb2Nlc3NEaWRUZXJtaW5hdGUoV2ViUGFnZVByb3h5
JiwgUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uKSBvdmVycmlkZTsKICAgICAgICAgdm9pZCBwcm9j
ZXNzRGlkQmVjb21lUmVzcG9uc2l2ZShXZWJQYWdlUHJveHkmKSBvdmVycmlkZTsKICAgICAgICAg
dm9pZCBwcm9jZXNzRGlkQmVjb21lVW5yZXNwb25zaXZlKFdlYlBhZ2VQcm94eSYpIG92ZXJyaWRl
OwpAQCAtMjI5LDYgKzIzMCw3IEBAIHByaXZhdGU6CiAgICAgICAgIGJvb2wgd2ViVmlld1JlbmRl
cmluZ1Byb2dyZXNzRGlkQ2hhbmdlIDogMTsKICAgICAgICAgYm9vbCB3ZWJWaWV3RGlkUmVjZWl2
ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlQ29tcGxldGlvbkhhbmRsZXIgOiAxOwogICAgICAgICBi
b29sIHdlYlZpZXdBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVNob3VsZEFsbG93TGVnYWN5VExTIDog
MTsKKyAgICAgICAgYm9vbCB3ZWJWaWV3RGlkTmVnb3RpYXRlTW9kZXJuVExTIDogMTsKICAgICAg
ICAgYm9vbCB3ZWJWaWV3V2ViQ29udGVudFByb2Nlc3NEaWRUZXJtaW5hdGUgOiAxOwogICAgICAg
ICBib29sIHdlYlZpZXdXZWJDb250ZW50UHJvY2Vzc0RpZFRlcm1pbmF0ZVdpdGhSZWFzb24gOiAx
OwogICAgICAgICBib29sIHdlYlZpZXdXZWJQcm9jZXNzRGlkQ3Jhc2ggOiAxOwpJbmRleDogU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvTmF2aWdhdGlvblN0YXRlLm1tCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25TdGF0ZS5tbQkocmV2
aXNpb24gMjYwMzY3KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvTmF2aWdhdGlv
blN0YXRlLm1tCSh3b3JraW5nIGNvcHkpCkBAIC03MCw2ICs3MCw3IEBACiAjaW1wb3J0ICJfV0tS
ZW5kZXJpbmdQcm9ncmVzc0V2ZW50c0ludGVybmFsLmgiCiAjaW1wb3J0ICJfV0tTYW1lRG9jdW1l
bnROYXZpZ2F0aW9uVHlwZUludGVybmFsLmgiCiAjaW1wb3J0ICJfV0tXZWJzaXRlUG9saWNpZXNJ
bnRlcm5hbC5oIgorI2ltcG9ydCA8V2ViQ29yZS9BdXRoZW50aWNhdGlvbk1hYy5oPgogI2ltcG9y
dCA8V2ViQ29yZS9Db250ZW50UnVsZUxpc3RSZXN1bHRzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0Ny
ZWRlbnRpYWwuaD4KICNpbXBvcnQgPFdlYkNvcmUvU1NMS2V5R2VuZXJhdG9yLmg+CkBAIC0xNzcs
NiArMTc4LDcgQEAgdm9pZCBOYXZpZ2F0aW9uU3RhdGU6OnNldE5hdmlnYXRpb25EZWxlZwogICAg
IG1fbmF2aWdhdGlvbkRlbGVnYXRlTWV0aG9kcy53ZWJWaWV3UmVuZGVyaW5nUHJvZ3Jlc3NEaWRD
aGFuZ2UgPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzpy
ZW5kZXJpbmdQcm9ncmVzc0RpZENoYW5nZTopXTsKICAgICBtX25hdmlnYXRpb25EZWxlZ2F0ZU1l
dGhvZHMud2ViVmlld0RpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZUNvbXBsZXRpb25I
YW5kbGVyID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3Iod2ViVmlldzpk
aWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2U6Y29tcGxldGlvbkhhbmRsZXI6KV07CiAg
ICAgbV9uYXZpZ2F0aW9uRGVsZWdhdGVNZXRob2RzLndlYlZpZXdBdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZVNob3VsZEFsbG93TGVnYWN5VExTID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpA
c2VsZWN0b3IoX3dlYlZpZXc6YXV0aGVudGljYXRpb25DaGFsbGVuZ2U6c2hvdWxkQWxsb3dMZWdh
Y3lUTFM6KV07CisgICAgbV9uYXZpZ2F0aW9uRGVsZWdhdGVNZXRob2RzLndlYlZpZXdEaWROZWdv
dGlhdGVNb2Rlcm5UTFMgPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihf
d2ViVmlldzpkaWROZWdvdGlhdGVNb2Rlcm5UTFM6KV07CiAgICAgbV9uYXZpZ2F0aW9uRGVsZWdh
dGVNZXRob2RzLndlYlZpZXdXZWJDb250ZW50UHJvY2Vzc0RpZFRlcm1pbmF0ZSA9IFtkZWxlZ2F0
ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKHdlYlZpZXdXZWJDb250ZW50UHJvY2Vzc0Rp
ZFRlcm1pbmF0ZTopXTsKICAgICBtX25hdmlnYXRpb25EZWxlZ2F0ZU1ldGhvZHMud2ViVmlld1dl
YkNvbnRlbnRQcm9jZXNzRGlkVGVybWluYXRlV2l0aFJlYXNvbiA9IFtkZWxlZ2F0ZSByZXNwb25k
c1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OndlYkNvbnRlbnRQcm9jZXNzRGlkVGVybWlu
YXRlV2l0aFJlYXNvbjopXTsKICAgICBtX25hdmlnYXRpb25EZWxlZ2F0ZU1ldGhvZHMud2ViVmll
d1dlYlByb2Nlc3NEaWRDcmFzaCA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVj
dG9yKF93ZWJWaWV3V2ViUHJvY2Vzc0RpZENyYXNoOildOwpAQCAtMTA0NSw2ICsxMDQ3LDE4IEBA
IHZvaWQgTmF2aWdhdGlvblN0YXRlOjpOYXZpZ2F0aW9uQ2xpZW50OjoKICAgICB9KS5nZXQoKV07
CiB9CiAKK3ZvaWQgTmF2aWdhdGlvblN0YXRlOjpOYXZpZ2F0aW9uQ2xpZW50OjpkaWROZWdvdGlh
dGVNb2Rlcm5UTFMoY29uc3QgV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2UmIGNoYWxs
ZW5nZSkKK3sKKyAgICBpZiAoIW1fbmF2aWdhdGlvblN0YXRlLm1fbmF2aWdhdGlvbkRlbGVnYXRl
TWV0aG9kcy53ZWJWaWV3RGlkTmVnb3RpYXRlTW9kZXJuVExTKQorICAgICAgICByZXR1cm47CisK
KyAgICBhdXRvIG5hdmlnYXRpb25EZWxlZ2F0ZSA9IG1fbmF2aWdhdGlvblN0YXRlLm1fbmF2aWdh
dGlvbkRlbGVnYXRlLmdldCgpOworICAgIGlmICghbmF2aWdhdGlvbkRlbGVnYXRlKQorICAgICAg
ICByZXR1cm47CisKKyAgICBbc3RhdGljX2Nhc3Q8aWQgPFdLTmF2aWdhdGlvbkRlbGVnYXRlUHJp
dmF0ZT4+KG5hdmlnYXRpb25EZWxlZ2F0ZS5nZXQoKSkgX3dlYlZpZXc6bV9uYXZpZ2F0aW9uU3Rh
dGUubV93ZWJWaWV3IGRpZE5lZ290aWF0ZU1vZGVyblRMUzptYWMoY2hhbGxlbmdlKV07Cit9CisK
IHN0YXRpYyBfV0tQcm9jZXNzVGVybWluYXRpb25SZWFzb24gd2tQcm9jZXNzVGVybWluYXRpb25S
ZWFzb24oUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uIHJlYXNvbikKIHsKICAgICBzd2l0Y2ggKHJl
YXNvbikgewpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJv
Y2Vzc1Byb3h5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3
b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCShyZXZpc2lvbiAyNjAzNjcpCisrKyBTb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0zNDQsNiArMzQ0LDEyIEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6bmVn
b3RpYXRlZExlZ2EKICAgICAgICAgcGFnZS0+bmVnb3RpYXRlZExlZ2FjeVRMUygpOwogfQogCit2
b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmRpZE5lZ290aWF0ZU1vZGVyblRMUyhXZWJQYWdlUHJv
eHlJZGVudGlmaWVyIHBhZ2VJRCwgY29uc3QgV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVu
Z2UmIGNoYWxsZW5nZSkKK3sKKyAgICBpZiAoYXV0byogcGFnZSA9IHBhZ2VJRCA/IFdlYlByb2Nl
c3NQcm94eTo6d2ViUGFnZShwYWdlSUQpIDogbnVsbHB0cikKKyAgICAgICAgcGFnZS0+ZGlkTmVn
b3RpYXRlTW9kZXJuVExTKGNoYWxsZW5nZSk7Cit9CisKIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94
eTo6ZGlkRmV0Y2hXZWJzaXRlRGF0YShDYWxsYmFja0lEIGNhbGxiYWNrSUQsIGNvbnN0IFdlYnNp
dGVEYXRhJiB3ZWJzaXRlRGF0YSkKIHsKICAgICBNRVNTQUdFX0NIRUNLKG1fcGVuZGluZ0ZldGNo
V2Vic2l0ZURhdGFDYWxsYmFja3MuaXNWYWxpZEtleShjYWxsYmFja0lEKSk7CkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJv
eHkuaAkocmV2aXNpb24gMjYwMzY3KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29y
ay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgJKHdvcmtpbmcgY29weSkKQEAgLTI1MCw2ICsyNTAsNyBA
QCBwcml2YXRlOgogICAgIHZvaWQgZGlkUmVjZWl2ZU5ldHdvcmtQcm9jZXNzUHJveHlNZXNzYWdl
KElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpOwogICAgIHZvaWQgZGlkUmVjZWl2ZUF1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKFBBTDo6U2Vzc2lvbklELCBXZWJQYWdlUHJveHlJZGVudGlm
aWVyLCBjb25zdCBPcHRpb25hbDxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGE+JiwgV2ViQ29y
ZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2UmJiwgYm9vbCwgdWludDY0X3QgY2hhbGxlbmdlSUQp
OwogICAgIHZvaWQgbmVnb3RpYXRlZExlZ2FjeVRMUyhXZWJQYWdlUHJveHlJZGVudGlmaWVyKTsK
KyAgICB2b2lkIGRpZE5lZ290aWF0ZU1vZGVyblRMUyhXZWJQYWdlUHJveHlJZGVudGlmaWVyLCBj
b25zdCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYpOwogICAgIHZvaWQgZGlkRmV0
Y2hXZWJzaXRlRGF0YShDYWxsYmFja0lELCBjb25zdCBXZWJzaXRlRGF0YSYpOwogICAgIHZvaWQg
ZGlkRGVsZXRlV2Vic2l0ZURhdGEoQ2FsbGJhY2tJRCk7CiAgICAgdm9pZCBkaWREZWxldGVXZWJz
aXRlRGF0YUZvck9yaWdpbnMoQ2FsbGJhY2tJRCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lm1l
c3NhZ2VzLmluCShyZXZpc2lvbiAyNjAzNjcpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9O
ZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4JKHdvcmtpbmcgY29weSkKQEAg
LTIzLDYgKzIzLDcgQEAKIG1lc3NhZ2VzIC0+IE5ldHdvcmtQcm9jZXNzUHJveHkgTGVnYWN5UmVj
ZWl2ZXIgTm90UmVmQ291bnRlZCB7CiAgICAgRGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViS2l0OjpXZWJQYWdlUHJveHlJZGVudGlm
aWVyIHBhZ2VJRCwgT3B0aW9uYWw8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhPiB0b3BPcmln
aW4sIFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlIGNoYWxsZW5nZSwgYm9vbCBuZWdv
dGlhdGVkTGVnYWN5VExTLCB1aW50NjRfdCBjaGFsbGVuZ2VJRCkKICAgICBOZWdvdGlhdGVkTGVn
YWN5VExTKFdlYktpdDo6V2ViUGFnZVByb3h5SWRlbnRpZmllciBwYWdlSUQpCisgICAgRGlkTmVn
b3RpYXRlTW9kZXJuVExTKFdlYktpdDo6V2ViUGFnZVByb3h5SWRlbnRpZmllciBwYWdlSUQsIFdl
YkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlIGNoYWxsZW5nZSkKIAogICAgIERpZEZldGNo
V2Vic2l0ZURhdGEoV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQsIHN0cnVjdCBXZWJLaXQ6
OldlYnNpdGVEYXRhIHdlYnNpdGVEYXRhKQogICAgIERpZERlbGV0ZVdlYnNpdGVEYXRhKFdlYktp
dDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQpJbmRleDogVG9vbHMvQ2hhbmdlTG9nCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFRvb2xzL0NoYW5nZUxvZwkocmV2aXNpb24gMjYwMzY3KQorKysgVG9vbHMvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjAtMDQtMjAgIEFsZXggQ2hy
aXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBTUEkgY2xpZW50
cyB1c2luZyBmYXN0U2VydmVyVHJ1c3RFdmFsdWF0aW9uRW5hYmxlZCBuZWVkIFNQSSB0byBpbmZv
cm0gdGhlbSBvZiBtb2Rlcm4gVExTIG5lZ290aWF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTA1MzMKKworICAgICAgICBSZXZpZXdlZCBieSBC
cmFkeSBFaWRzb24uCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L1RMU0RlcHJlY2F0aW9uLm1tOgorICAgICAgICAoLVtUTFNOYXZpZ2F0aW9uRGVsZWdhdGUgd2Fp
dEZvckRpZE5lZ290aWF0ZU1vZGVyblRMU10pOgorICAgICAgICAoLVtUTFNOYXZpZ2F0aW9uRGVs
ZWdhdGUgX3dlYlZpZXc6ZGlkTmVnb3RpYXRlTW9kZXJuVExTOl0pOgorICAgICAgICAoVGVzdFdl
YktpdEFQSTo6VEVTVCk6CisKIDIwMjAtMDQtMjAgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2ll
aEBhcHBsZS5jb20+CiAKICAgICAgICAgT3ZlcnNpemVkIGNhcmV0IGFuZCBzZWxlY3Rpb24gcmVj
dHMgaW4gdGV4dCBmaWVsZHMgb24gZ2FuamkuY29tIGFuZCBuZXRmbGl4LmNvbS9sb2dpbgpJbmRl
eDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9UTFNEZXByZWNhdGlvbi5t
bQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1RM
U0RlcHJlY2F0aW9uLm1tCShyZXZpc2lvbiAyNjAzNjcpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL1RMU0RlcHJlY2F0aW9uLm1tCSh3b3JraW5nIGNvcHkpCkBAIC03
Myw2ICs3Myw3IEBAIC0gKHZvaWQpd2FpdFVudGlsTmVnb3RpYXRlZExlZ2FjeVRMU0NoYW4KIEBp
bnRlcmZhY2UgVExTTmF2aWdhdGlvbkRlbGVnYXRlIDogTlNPYmplY3QgPFdLTmF2aWdhdGlvbkRl
bGVnYXRlPgogLSAodm9pZCl3YWl0Rm9yRGlkRmluaXNoTmF2aWdhdGlvbjsKIC0gKHZvaWQpd2Fp
dEZvckRpZEZhaWxQcm92aXNpb25hbE5hdmlnYXRpb247CistIChOU1VSTEF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlICopd2FpdEZvckRpZE5lZ290aWF0ZU1vZGVyblRMUzsKIC0gKGJvb2wpcmVjZWl2
ZWRTaG91bGRBbGxvd0xlZ2FjeVRMUzsKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBib29sIHNob3Vs
ZEFsbG93TGVnYWN5VExTOwogQGVuZApAQCAtODEsNiArODIsNyBAQCAtIChib29sKXJlY2VpdmVk
U2hvdWxkQWxsb3dMZWdhY3lUTFM7CiAgICAgYm9vbCBfbmF2aWdhdGlvbkZpbmlzaGVkOwogICAg
IGJvb2wgX25hdmlnYXRpb25GYWlsZWQ7CiAgICAgYm9vbCBfcmVjZWl2ZWRTaG91bGRBbGxvd0xl
Z2FjeVRMUzsKKyAgICBSZXRhaW5QdHI8TlNVUkxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZT4gX25l
Z290aWF0ZWRNb2Rlcm5UTFM7CiB9CiAKIC0gKHZvaWQpd2FpdEZvckRpZEZpbmlzaE5hdmlnYXRp
b24KQEAgLTk1LDYgKzk3LDEzIEBAIC0gKHZvaWQpd2FpdEZvckRpZEZhaWxQcm92aXNpb25hbE5h
dmlnYXQKICAgICAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6c3BpblJ1bkxvb3AoKTsKIH0KIAor
LSAoTlNVUkxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSAqKXdhaXRGb3JEaWROZWdvdGlhdGVNb2Rl
cm5UTFMKK3sKKyAgICB3aGlsZSAoIV9uZWdvdGlhdGVkTW9kZXJuVExTKQorICAgICAgICBUZXN0
V2ViS2l0QVBJOjpVdGlsOjpzcGluUnVuTG9vcCgpOworICAgIHJldHVybiBfbmVnb3RpYXRlZE1v
ZGVyblRMUy5hdXRvcmVsZWFzZSgpOworfQorCiAtIChib29sKXJlY2VpdmVkU2hvdWxkQWxsb3dM
ZWdhY3lUTFMKIHsKICAgICByZXR1cm4gX3JlY2VpdmVkU2hvdWxkQWxsb3dMZWdhY3lUTFM7CkBA
IC0xMjIsNiArMTMxLDExIEBAIC0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcg
YXUKICAgICBjb21wbGV0aW9uSGFuZGxlcihbc2VsZiBzaG91bGRBbGxvd0xlZ2FjeVRMU10pOwog
fQogCistICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRpZE5lZ290aWF0ZU1v
ZGVyblRMUzooTlNVUkxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSAqKWNoYWxsZW5nZQoreworICAg
IF9uZWdvdGlhdGVkTW9kZXJuVExTID0gY2hhbGxlbmdlOworfQorCiBAZW5kCiAKIApAQCAtMzY5
LDYgKzM4MywyNSBAQCBURVNUKFRMU1ZlcnNpb24sIFN1YnJlc291cmNlKQogICAgIFt3ZWJWaWV3
IHJlbW92ZU9ic2VydmVyOm9ic2VydmVyLmdldCgpIGZvcktleVBhdGg6QCJfbmVnb3RpYXRlZExl
Z2FjeVRMUyJdOwogfQogCitURVNUKFRMU1ZlcnNpb24sIERpZE5lZ290aWF0ZU1vZGVyblRMUykK
K3sKKyAgICBIVFRQU2VydmVyIHNlcnZlcih7CisgICAgICAgIHsgIi8iLCB7ICJoZWxsbyIgfX0K
KyAgICB9LCBIVFRQU2VydmVyOjpQcm90b2NvbDo6SHR0cHMpOworCisgICAgYXV0byBkZWxlZ2F0
ZSA9IGFkb3B0TlMoW1RMU05hdmlnYXRpb25EZWxlZ2F0ZSBuZXddKTsKKyAgICBhdXRvIGNvbmZp
Z3VyYXRpb24gPSBhZG9wdE5TKFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIG5ld10pOworICAgIGF1
dG8gZGF0YVN0b3JlQ29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW19XS1dlYnNpdGVEYXRhU3RvcmVD
b25maWd1cmF0aW9uIG5ld10pOworICAgIFtkYXRhU3RvcmVDb25maWd1cmF0aW9uIHNldEZhc3RT
ZXJ2ZXJUcnVzdEV2YWx1YXRpb25FbmFibGVkOllFU107CisgICAgW2NvbmZpZ3VyYXRpb24gc2V0
V2Vic2l0ZURhdGFTdG9yZTpbW1tXS1dlYnNpdGVEYXRhU3RvcmUgYWxsb2NdIF9pbml0V2l0aENv
bmZpZ3VyYXRpb246ZGF0YVN0b3JlQ29uZmlndXJhdGlvbi5nZXQoKV0gYXV0b3JlbGVhc2VdXTsK
KyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbV0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZy
YW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlv
bi5nZXQoKV0pOworICAgIFt3ZWJWaWV3IHNldE5hdmlnYXRpb25EZWxlZ2F0ZTpkZWxlZ2F0ZS5n
ZXQoKV07CisgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6c2VydmVyLnJlcXVlc3QoKV07CisgICAg
TlNVUkxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSAqY2hhbGxlbmdlID0gW2RlbGVnYXRlIHdhaXRG
b3JEaWROZWdvdGlhdGVNb2Rlcm5UTFNdOworICAgIEVYUEVDVF9XS19TVFJFUShjaGFsbGVuZ2Uu
cHJvdGVjdGlvblNwYWNlLmhvc3QsICIxMjcuMC4wLjEiKTsKKyAgICBFWFBFQ1RfRVEoY2hhbGxl
bmdlLnByb3RlY3Rpb25TcGFjZS5wb3J0LCBzZXJ2ZXIucG9ydCgpKTsKK30KKwogVEVTVChUTFNW
ZXJzaW9uLCBCYWNrRm9yd2FyZEhhc09ubHlTZWN1cmVDb250ZW50KQogewogICAgIEhUVFBTZXJ2
ZXIgc2VjdXJlU2VydmVyKHsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>397469</attachid>
            <date>2020-04-24 10:38:05 -0700</date>
            <delta_ts>2020-04-24 11:23:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-210533-20200424103804.patch</filename>
            <type>text/plain</type>
            <size>20401</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNjA2MDQpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM0IEBACisyMDIwLTA0LTI0ICBBbGV4IENocmlz
dGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgU1BJIGNsaWVudHMg
dXNpbmcgZmFzdFNlcnZlclRydXN0RXZhbHVhdGlvbkVuYWJsZWQgbmVlZCBTUEkgdG8gaW5mb3Jt
IHRoZW0gb2YgbW9kZXJuIFRMUyBuZWdvdGlhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEwNTMzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQnJh
ZHkgRWlkc29uLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0RhdGFUYXNrLmg6
CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtEYXRhVGFza0NsaWVudDo6ZGlkTmVnb3RpYXRlTW9k
ZXJuVExTKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5jcHA6CisgICAg
ICAgIChXZWJLaXQ6Ok5ldHdvcmtMb2FkOjpkaWROZWdvdGlhdGVNb2Rlcm5UTFMpOgorICAgICAg
ICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nl
c3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vz
cy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6TmV0d29y
a0RhdGFUYXNrQ29jb2E6OmRpZE5lZ290aWF0ZU1vZGVyblRMUyk6CisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbToKKyAgICAgICAgKC1bV0tOZXR3
b3JrU2Vzc2lvbkRlbGVnYXRlIFVSTFNlc3Npb246dGFzazpkaWRSZWNlaXZlQ2hhbGxlbmdlOmNv
bXBsZXRpb25IYW5kbGVyOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJTmF2aWdhdGlv
bkNsaWVudC5oOgorICAgICAgICAoQVBJOjpOYXZpZ2F0aW9uQ2xpZW50OjpkaWROZWdvdGlhdGVN
b2Rlcm5UTFMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uRGVs
ZWdhdGVQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25TdGF0
ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUubW06CisgICAg
ICAgIChXZWJLaXQ6Ok5hdmlnYXRpb25TdGF0ZTo6c2V0TmF2aWdhdGlvbkRlbGVnYXRlKToKKyAg
ICAgICAgKFdlYktpdDo6TmF2aWdhdGlvblN0YXRlOjpOYXZpZ2F0aW9uQ2xpZW50OjpkaWROZWdv
dGlhdGVNb2Rlcm5UTFMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9j
ZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpkaWRO
ZWdvdGlhdGVNb2Rlcm5UTFMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQ
cm9jZXNzUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vz
c1Byb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3Bw
OgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKwogMjAyMC0wNC0yMyAgQnJl
bnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBBbGxvdyAia2Vybi5v
c3ZlcnNpb24iIHN5c2N0bCByZWFkCkluZGV4OiBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtEYXRhVGFzay5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya0RhdGFUYXNrLmgJKHJldmlzaW9uIDI2MDU0MikKKysrIFNvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0RhdGFUYXNrLmgJKHdvcmtpbmcgY29weSkKQEAgLTcy
LDYgKzcyLDggQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBib29sIHNob3VsZENhcHR1cmVFeHRy
YU5ldHdvcmtMb2FkTWV0cmljcygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKKyAgICB2aXJ0
dWFsIHZvaWQgZGlkTmVnb3RpYXRlTW9kZXJuVExTKGNvbnN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0
aW9uQ2hhbGxlbmdlJikgeyB9CisKICAgICB2b2lkIGRpZENvbXBsZXRlV2l0aEVycm9yKGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImIGVycm9yKQogICAgIHsKICAgICAgICAgV2ViQ29yZTo6
TmV0d29ya0xvYWRNZXRyaWNzIGVtcHR5TWV0cmljczsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQuY3BwCShyZXZpc2lvbiAyNjA1NDIpCisrKyBTb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIkF1dGhlbnRpY2F0aW9uTWFuYWdlci5oIgogI2lu
Y2x1ZGUgIk5ldHdvcmtEYXRhVGFza0Jsb2IuaCIKICNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzcy5o
IgorI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzUHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIk5l
dHdvcmtTZXNzaW9uLmgiCiAjaW5jbHVkZSAiV2ViRXJyb3JzLmgiCiAjaW5jbHVkZSA8V2ViQ29y
ZS9SZXNvdXJjZVJlcXVlc3QuaD4KQEAgLTI4NSw2ICsyODYsMTIgQEAgdm9pZCBOZXR3b3JrTG9h
ZDo6d2FzQmxvY2tlZEJ5UmVzdHJpY3RpbwogICAgIG1fY2xpZW50LmdldCgpLmRpZEZhaWxMb2Fk
aW5nKHdhc0Jsb2NrZWRCeVJlc3RyaWN0aW9uc0Vycm9yKG1fY3VycmVudFJlcXVlc3QpKTsKIH0K
IAordm9pZCBOZXR3b3JrTG9hZDo6ZGlkTmVnb3RpYXRlTW9kZXJuVExTKGNvbnN0IFdlYkNvcmU6
OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiBjaGFsbGVuZ2UpCit7CisgICAgaWYgKG1fcGFyYW1l
dGVycy53ZWJQYWdlUHJveHlJRCkKKyAgICAgICAgbV9uZXR3b3JrUHJvY2Vzcy0+c2VuZChNZXNz
YWdlczo6TmV0d29ya1Byb2Nlc3NQcm94eTo6RGlkTmVnb3RpYXRlTW9kZXJuVExTKG1fcGFyYW1l
dGVycy53ZWJQYWdlUHJveHlJRCwgY2hhbGxlbmdlKSk7Cit9CisKIFN0cmluZyBOZXR3b3JrTG9h
ZDo6ZGVzY3JpcHRpb24oKSBjb25zdAogewogICAgIGlmIChtX3Rhc2suZ2V0KCkpCkluZGV4OiBT
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5oCShyZXZpc2lvbiAyNjA1
NDIpCisrKyBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkLmgJKHdvcmtp
bmcgY29weSkKQEAgLTgxLDYgKzgxLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHdhc0Jsb2NrZWQo
KSBmaW5hbDsKICAgICB2b2lkIGNhbm5vdFNob3dVUkwoKSBmaW5hbDsKICAgICB2b2lkIHdhc0Js
b2NrZWRCeVJlc3RyaWN0aW9ucygpIGZpbmFsOworICAgIHZvaWQgZGlkTmVnb3RpYXRlTW9kZXJu
VExTKGNvbnN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJikgZmluYWw7CiAKICAg
ICB2b2lkIG5vdGlmeURpZFJlY2VpdmVSZXNwb25zZShXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNl
JiYsIE5lZ290aWF0ZWRMZWdhY3lUTFMsIFJlc3BvbnNlQ29tcGxldGlvbkhhbmRsZXImJik7CiAg
ICAgdm9pZCB0aHJvdHRsZURlbGF5Q29tcGxldGVkKCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5o
CShyZXZpc2lvbiAyNjA1NDIpCisrKyBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29h
L05ldHdvcmtEYXRhVGFza0NvY29hLmgJKHdvcmtpbmcgY29weSkKQEAgLTUzLDYgKzUzLDcgQEAg
cHVibGljOgogCiAgICAgdm9pZCBkaWRTZW5kRGF0YSh1aW50NjRfdCB0b3RhbEJ5dGVzU2VudCwg
dWludDY0X3QgdG90YWxCeXRlc0V4cGVjdGVkVG9TZW5kKTsKICAgICB2b2lkIGRpZFJlY2VpdmVD
aGFsbGVuZ2UoV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2UmJiwgTmVnb3RpYXRlZExl
Z2FjeVRMUywgQ2hhbGxlbmdlQ29tcGxldGlvbkhhbmRsZXImJik7CisgICAgdm9pZCBkaWROZWdv
dGlhdGVNb2Rlcm5UTFMoY29uc3QgV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2UmKTsK
ICAgICB2b2lkIGRpZENvbXBsZXRlV2l0aEVycm9yKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJy
b3ImLCBjb25zdCBXZWJDb3JlOjpOZXR3b3JrTG9hZE1ldHJpY3MmKTsKICAgICB2b2lkIGRpZFJl
Y2VpdmVSZXNwb25zZShXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYsIE5lZ290aWF0ZWRMZWdh
Y3lUTFMsIFJlc3BvbnNlQ29tcGxldGlvbkhhbmRsZXImJik7CiAgICAgdm9pZCBkaWRSZWNlaXZl
RGF0YShSZWY8V2ViQ29yZTo6U2hhcmVkQnVmZmVyPiYmKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EubW0KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2Nv
YS5tbQkocmV2aXNpb24gMjYwNTQyKQorKysgU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9j
b2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5tbQkod29ya2luZyBjb3B5KQpAQCAtMzE4LDYgKzMx
OCwxMiBAQCB2b2lkIE5ldHdvcmtEYXRhVGFza0NvY29hOjpkaWRSZWNlaXZlQ2hhCiAgICAgfQog
fQogCit2b2lkIE5ldHdvcmtEYXRhVGFza0NvY29hOjpkaWROZWdvdGlhdGVNb2Rlcm5UTFMoY29u
c3QgV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2UmIGNoYWxsZW5nZSkKK3sKKyAgICBp
ZiAobV9jbGllbnQpCisgICAgICAgIG1fY2xpZW50LT5kaWROZWdvdGlhdGVNb2Rlcm5UTFMoY2hh
bGxlbmdlKTsKK30KKwogdm9pZCBOZXR3b3JrRGF0YVRhc2tDb2NvYTo6ZGlkQ29tcGxldGVXaXRo
RXJyb3IoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYgZXJyb3IsIGNvbnN0IFdlYkNvcmU6
Ok5ldHdvcmtMb2FkTWV0cmljcyYgbmV0d29ya0xvYWRNZXRyaWNzKQogewogICAgIGlmIChlcnJv
ci5pc051bGwoKSkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0
d29ya1Nlc3Npb25Db2NvYS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW0JKHJldmlzaW9uIDI2MDU0MikKKysr
IFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5t
bQkod29ya2luZyBjb3B5KQpAQCAtNjc0LDggKzY3NCwxMCBAQCAtICh2b2lkKVVSTFNlc3Npb246
KE5TVVJMU2Vzc2lvbiAqKXNlc3NpCiAKICAgICAgICAgLy8gSGFuZGxlIHNlcnZlciB0cnVzdCBl
dmFsdWF0aW9uIGF0IHBsYXRmb3JtLWxldmVsIGlmIHJlcXVlc3RlZCwgZm9yIHBlcmZvcm1hbmNl
IHJlYXNvbnMgYW5kIHRvIHVzZSBBVFMgZGVmYXVsdHMuCiAgICAgICAgIGlmIChzZXNzaW9uQ29j
b2EtPmZhc3RTZXJ2ZXJUcnVzdEV2YWx1YXRpb25FbmFibGVkKCkgJiYgbmVnb3RpYXRlZExlZ2Fj
eVRMUyA9PSBOZWdvdGlhdGVkTGVnYWN5VExTOjpObykgewotI2lmIEhBVkUoQ0ZORVRXT1JLX05T
VVJMU0VTU0lPTl9TVFJJQ1RSVVNURVZBTFVBVEUpCiAgICAgICAgICAgICBhdXRvKiBuZXR3b3Jr
RGF0YVRhc2sgPSBbc2VsZiBleGlzdGluZ1Rhc2s6dGFza107CisgICAgICAgICAgICBpZiAobmV0
d29ya0RhdGFUYXNrKQorICAgICAgICAgICAgICAgIG5ldHdvcmtEYXRhVGFzay0+ZGlkTmVnb3Rp
YXRlTW9kZXJuVExTKGNoYWxsZW5nZSk7CisjaWYgSEFWRShDRk5FVFdPUktfTlNVUkxTRVNTSU9O
X1NUUklDVFJVU1RFVkFMVUFURSkKICAgICAgICAgICAgIGF1dG8gZGVjaXNpb25IYW5kbGVyID0g
bWFrZUJsb2NrUHRyKFt3ZWFrU2VsZiA9IFdlYWtPYmpDUHRyPFdLTmV0d29ya1Nlc3Npb25EZWxl
Z2F0ZT4oc2VsZiksIHNlc3Npb25Db2NvYSA9IG1ha2VXZWFrUHRyKHNlc3Npb25Db2NvYSksIGNv
bXBsZXRpb25IYW5kbGVyID0gbWFrZUJsb2NrUHRyKGNvbXBsZXRpb25IYW5kbGVyKSwgdGFza0lk
ZW50aWZpZXIsIG5ldHdvcmtEYXRhVGFzayA9IG1ha2VSZWZQdHIobmV0d29ya0RhdGFUYXNrKSwg
bmVnb3RpYXRlZExlZ2FjeVRMU10oTlNVUkxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSAqY2hhbGxl
bmdlLCBPU1N0YXR1cyB0cnVzdFJlc3VsdCkgbXV0YWJsZSB7CiAgICAgICAgICAgICAgICAgYXV0
byBzdHJvbmdTZWxmID0gd2Vha1NlbGYuZ2V0KCk7CiAgICAgICAgICAgICAgICAgaWYgKCFzdHJv
bmdTZWxmKQpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCShy
ZXZpc2lvbiAyNjA1NDIpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC03OTQwLDYgKzc5NDAsMTEgQEAgdm9pZCBXZWJQYWdlUHJv
eHk6Om5lZ290aWF0ZWRMZWdhY3lUTFMoKQogICAgIG1fcGFnZUxvYWRTdGF0ZS5uZWdvdGlhdGVk
TGVnYWN5VExTKHRyYW5zYWN0aW9uKTsKIH0KIAordm9pZCBXZWJQYWdlUHJveHk6OmRpZE5lZ290
aWF0ZU1vZGVyblRMUyhjb25zdCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYgY2hh
bGxlbmdlKQoreworICAgIG1fbmF2aWdhdGlvbkNsaWVudC0+ZGlkTmVnb3RpYXRlTW9kZXJuVExT
KGNoYWxsZW5nZSk7Cit9CisKIHZvaWQgV2ViUGFnZVByb3h5OjpleGNlZWRlZERhdGFiYXNlUXVv
dGEoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgb3JpZ2luSWRlbnRpZmll
ciwgY29uc3QgU3RyaW5nJiBkYXRhYmFzZU5hbWUsIGNvbnN0IFN0cmluZyYgZGlzcGxheU5hbWUs
IHVpbnQ2NF90IGN1cnJlbnRRdW90YSwgdWludDY0X3QgY3VycmVudE9yaWdpblVzYWdlLCB1aW50
NjRfdCBjdXJyZW50RGF0YWJhc2VVc2FnZSwgdWludDY0X3QgZXhwZWN0ZWRVc2FnZSwgTWVzc2Fn
ZXM6OldlYlBhZ2VQcm94eTo6RXhjZWVkZWREYXRhYmFzZVF1b3RhOjpEZWxheWVkUmVwbHkmJiBy
ZXBseSkKIHsKICAgICByZXF1ZXN0U3RvcmFnZVNwYWNlKGZyYW1lSUQsIG9yaWdpbklkZW50aWZp
ZXIsIGRhdGFiYXNlTmFtZSwgZGlzcGxheU5hbWUsIGN1cnJlbnRRdW90YSwgY3VycmVudE9yaWdp
blVzYWdlLCBjdXJyZW50RGF0YWJhc2VVc2FnZSwgZXhwZWN0ZWRVc2FnZSwgW3JlcGx5ID0gV1RG
TW92ZShyZXBseSldKGF1dG8gcXVvdGEpIG11dGFibGUgewpJbmRleDogU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmgJKHJldmlzaW9uIDI2MDU0MikKKysrIFNvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMzY5LDYgKzEzNjks
NyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZVByb3h5KFJlZjxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5PiYmLCBOZWdvdGlhdGVkTGVn
YWN5VExTKTsKICAgICB2b2lkIG5lZ290aWF0ZWRMZWdhY3lUTFMoKTsKKyAgICB2b2lkIGRpZE5l
Z290aWF0ZU1vZGVyblRMUyhjb25zdCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYp
OwogCiAgICAgU3BlbGxEb2N1bWVudFRhZyBzcGVsbERvY3VtZW50VGFnKCk7CiAKSW5kZXg6IFNv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElOYXZpZ2F0aW9uQ2xpZW50LmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSU5hdmlnYXRpb25DbGllbnQuaAko
cmV2aXNpb24gMjYwNTQyKQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSU5hdmln
YXRpb25DbGllbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMTAyLDYgKzEwMiw3IEBAIHB1YmxpYzoK
IAogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoV2Vi
S2l0OjpXZWJQYWdlUHJveHkmLCBXZWJLaXQ6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHkm
IGNoYWxsZW5nZSkgeyBjaGFsbGVuZ2UubGlzdGVuZXIoKS5jb21wbGV0ZUNoYWxsZW5nZShXZWJL
aXQ6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlRGlzcG9zaXRpb246OlBlcmZvcm1EZWZhdWx0SGFu
ZGxpbmcpOyB9CiAgICAgdmlydHVhbCB2b2lkIHNob3VsZEFsbG93TGVnYWN5VExTKFdlYktpdDo6
V2ViUGFnZVByb3h5JiwgV2ViS2l0OjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5JiwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgeyBjb21wbGV0
aW9uSGFuZGxlcih0cnVlKTsgfQorICAgIHZpcnR1YWwgdm9pZCBkaWROZWdvdGlhdGVNb2Rlcm5U
TFMoY29uc3QgV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2UmKSB7IH0KICAgICB2aXJ0
dWFsIGJvb2wgc2hvdWxkQnlwYXNzQ29udGVudE1vZGVTYWZlZ3VhcmRzKCkgY29uc3QgeyByZXR1
cm4gZmFsc2U7IH0KIAogICAgIC8vIEZJWE1FOiBUaGVzZSBmdW5jdGlvbiBzaG91bGQgbm90IGJl
IHBhcnQgb2YgdGhpcyBjbGllbnQuCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tOYXZpZ2F0aW9uRGVsZWdhdGVQcml2YXRlLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLTmF2aWdhdGlvbkRlbGVnYXRlUHJpdmF0ZS5o
CShyZXZpc2lvbiAyNjA1NDIpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tOYXZpZ2F0aW9uRGVsZWdhdGVQcml2YXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTg2LDYgKzg2
LDcgQEAgc3RhdGljIGNvbnN0IFdLTmF2aWdhdGlvblJlc3BvbnNlUG9saWN5IAogLSAoTlNEYXRh
ICopX3dlYkNyeXB0b01hc3RlcktleUZvcldlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXc7CiAK
IC0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgYXV0aGVudGljYXRpb25DaGFs
bGVuZ2U6KE5TVVJMQXV0aGVudGljYXRpb25DaGFsbGVuZ2UgKiljaGFsbGVuZ2Ugc2hvdWxkQWxs
b3dMZWdhY3lUTFM6KHZvaWQgKF4pKEJPT0wpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CistICh2b2lkKV93ZWJW
aWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRpZE5lZ290aWF0ZU1vZGVyblRMUzooTlNVUkxBdXRo
ZW50aWNhdGlvbkNoYWxsZW5nZSAqKWNoYWxsZW5nZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdL
X01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogCiAtICh2b2lkKV93ZWJWaWV3RGlkQmVnaW5O
YXZpZ2F0aW9uR2VzdHVyZTooV0tXZWJWaWV3ICopd2ViVmlldzsKIC8vIEl0ZW0gaXMgbmlsIGlm
IHRoZSBnZXN0dXJlIGVuZGVkIHdpdGhvdXQgbmF2aWdhdGlvbi4KSW5kZXg6IFNvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25TdGF0ZS5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25TdGF0ZS5oCShyZXZpc2lvbiAyNjA1
NDIpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUuaAko
d29ya2luZyBjb3B5KQpAQCAtMTE3LDYgKzExNyw3IEBAIHByaXZhdGU6CiAKICAgICAgICAgdm9p
ZCBkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoV2ViUGFnZVByb3h5JiwgQXV0aGVu
dGljYXRpb25DaGFsbGVuZ2VQcm94eSYpIG92ZXJyaWRlOwogICAgICAgICB2b2lkIHNob3VsZEFs
bG93TGVnYWN5VExTKFdlYlBhZ2VQcm94eSYsIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHkm
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKSBmaW5hbDsKKyAgICAgICAgdm9pZCBk
aWROZWdvdGlhdGVNb2Rlcm5UTFMoY29uc3QgV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVu
Z2UmKSBmaW5hbDsKICAgICAgICAgYm9vbCBwcm9jZXNzRGlkVGVybWluYXRlKFdlYlBhZ2VQcm94
eSYsIFByb2Nlc3NUZXJtaW5hdGlvblJlYXNvbikgb3ZlcnJpZGU7CiAgICAgICAgIHZvaWQgcHJv
Y2Vzc0RpZEJlY29tZVJlc3BvbnNpdmUoV2ViUGFnZVByb3h5Jikgb3ZlcnJpZGU7CiAgICAgICAg
IHZvaWQgcHJvY2Vzc0RpZEJlY29tZVVucmVzcG9uc2l2ZShXZWJQYWdlUHJveHkmKSBvdmVycmlk
ZTsKQEAgLTIyOSw2ICsyMzAsNyBAQCBwcml2YXRlOgogICAgICAgICBib29sIHdlYlZpZXdSZW5k
ZXJpbmdQcm9ncmVzc0RpZENoYW5nZSA6IDE7CiAgICAgICAgIGJvb2wgd2ViVmlld0RpZFJlY2Vp
dmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZUNvbXBsZXRpb25IYW5kbGVyIDogMTsKICAgICAgICAg
Ym9vbCB3ZWJWaWV3QXV0aGVudGljYXRpb25DaGFsbGVuZ2VTaG91bGRBbGxvd0xlZ2FjeVRMUyA6
IDE7CisgICAgICAgIGJvb2wgd2ViVmlld0RpZE5lZ290aWF0ZU1vZGVyblRMUyA6IDE7CiAgICAg
ICAgIGJvb2wgd2ViVmlld1dlYkNvbnRlbnRQcm9jZXNzRGlkVGVybWluYXRlIDogMTsKICAgICAg
ICAgYm9vbCB3ZWJWaWV3V2ViQ29udGVudFByb2Nlc3NEaWRUZXJtaW5hdGVXaXRoUmVhc29uIDog
MTsKICAgICAgICAgYm9vbCB3ZWJWaWV3V2ViUHJvY2Vzc0RpZENyYXNoIDogMTsKSW5kZXg6IFNv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25TdGF0ZS5tbQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUubW0JKHJl
dmlzaW9uIDI2MDU0MikKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL05hdmlnYXRp
b25TdGF0ZS5tbQkod29ya2luZyBjb3B5KQpAQCAtNzAsNiArNzAsNyBAQAogI2ltcG9ydCAiX1dL
UmVuZGVyaW5nUHJvZ3Jlc3NFdmVudHNJbnRlcm5hbC5oIgogI2ltcG9ydCAiX1dLU2FtZURvY3Vt
ZW50TmF2aWdhdGlvblR5cGVJbnRlcm5hbC5oIgogI2ltcG9ydCAiX1dLV2Vic2l0ZVBvbGljaWVz
SW50ZXJuYWwuaCIKKyNpbXBvcnQgPFdlYkNvcmUvQXV0aGVudGljYXRpb25NYWMuaD4KICNpbXBv
cnQgPFdlYkNvcmUvQ29udGVudFJ1bGVMaXN0UmVzdWx0cy5oPgogI2ltcG9ydCA8V2ViQ29yZS9D
cmVkZW50aWFsLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1NTTEtleUdlbmVyYXRvci5oPgpAQCAtMTc4
LDYgKzE3OSw3IEBAIHZvaWQgTmF2aWdhdGlvblN0YXRlOjpzZXROYXZpZ2F0aW9uRGVsZWcKICAg
ICBtX25hdmlnYXRpb25EZWxlZ2F0ZU1ldGhvZHMud2ViVmlld1JlbmRlcmluZ1Byb2dyZXNzRGlk
Q2hhbmdlID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6
cmVuZGVyaW5nUHJvZ3Jlc3NEaWRDaGFuZ2U6KV07CiAgICAgbV9uYXZpZ2F0aW9uRGVsZWdhdGVN
ZXRob2RzLndlYlZpZXdEaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2VDb21wbGV0aW9u
SGFuZGxlciA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKHdlYlZpZXc6
ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlOmNvbXBsZXRpb25IYW5kbGVyOildOwog
ICAgIG1fbmF2aWdhdGlvbkRlbGVnYXRlTWV0aG9kcy53ZWJWaWV3QXV0aGVudGljYXRpb25DaGFs
bGVuZ2VTaG91bGRBbGxvd0xlZ2FjeVRMUyA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6
QHNlbGVjdG9yKF93ZWJWaWV3OmF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlOnNob3VsZEFsbG93TGVn
YWN5VExTOildOworICAgIG1fbmF2aWdhdGlvbkRlbGVnYXRlTWV0aG9kcy53ZWJWaWV3RGlkTmVn
b3RpYXRlTW9kZXJuVExTID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3Io
X3dlYlZpZXc6ZGlkTmVnb3RpYXRlTW9kZXJuVExTOildOwogICAgIG1fbmF2aWdhdGlvbkRlbGVn
YXRlTWV0aG9kcy53ZWJWaWV3V2ViQ29udGVudFByb2Nlc3NEaWRUZXJtaW5hdGUgPSBbZGVsZWdh
dGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcih3ZWJWaWV3V2ViQ29udGVudFByb2Nlc3NE
aWRUZXJtaW5hdGU6KV07CiAgICAgbV9uYXZpZ2F0aW9uRGVsZWdhdGVNZXRob2RzLndlYlZpZXdX
ZWJDb250ZW50UHJvY2Vzc0RpZFRlcm1pbmF0ZVdpdGhSZWFzb24gPSBbZGVsZWdhdGUgcmVzcG9u
ZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzp3ZWJDb250ZW50UHJvY2Vzc0RpZFRlcm1p
bmF0ZVdpdGhSZWFzb246KV07CiAgICAgbV9uYXZpZ2F0aW9uRGVsZWdhdGVNZXRob2RzLndlYlZp
ZXdXZWJQcm9jZXNzRGlkQ3Jhc2ggPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxl
Y3Rvcihfd2ViVmlld1dlYlByb2Nlc3NEaWRDcmFzaDopXTsKQEAgLTEwNDYsNiArMTA0OCwxOCBA
QCB2b2lkIE5hdmlnYXRpb25TdGF0ZTo6TmF2aWdhdGlvbkNsaWVudDo6CiAgICAgfSkuZ2V0KCld
OwogfQogCit2b2lkIE5hdmlnYXRpb25TdGF0ZTo6TmF2aWdhdGlvbkNsaWVudDo6ZGlkTmVnb3Rp
YXRlTW9kZXJuVExTKGNvbnN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiBjaGFs
bGVuZ2UpCit7CisgICAgaWYgKCFtX25hdmlnYXRpb25TdGF0ZS5tX25hdmlnYXRpb25EZWxlZ2F0
ZU1ldGhvZHMud2ViVmlld0RpZE5lZ290aWF0ZU1vZGVyblRMUykKKyAgICAgICAgcmV0dXJuOwor
CisgICAgYXV0byBuYXZpZ2F0aW9uRGVsZWdhdGUgPSBtX25hdmlnYXRpb25TdGF0ZS5tX25hdmln
YXRpb25EZWxlZ2F0ZS5nZXQoKTsKKyAgICBpZiAoIW5hdmlnYXRpb25EZWxlZ2F0ZSkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgW3N0YXRpY19jYXN0PGlkIDxXS05hdmlnYXRpb25EZWxlZ2F0ZVBy
aXZhdGU+PihuYXZpZ2F0aW9uRGVsZWdhdGUuZ2V0KCkpIF93ZWJWaWV3Om1fbmF2aWdhdGlvblN0
YXRlLm1fd2ViVmlldyBkaWROZWdvdGlhdGVNb2Rlcm5UTFM6bWFjKGNoYWxsZW5nZSldOworfQor
CiBzdGF0aWMgX1dLUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uIHdrUHJvY2Vzc1Rlcm1pbmF0aW9u
UmVhc29uKFByb2Nlc3NUZXJtaW5hdGlvblJlYXNvbiByZWFzb24pCiB7CiAgICAgc3dpdGNoIChy
ZWFzb24pIHsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1By
b2Nlc3NQcm94eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0
d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAkocmV2aXNpb24gMjYwNTQyKQorKysgU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMzQ0LDYgKzM0NCwxMiBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6Om5l
Z290aWF0ZWRMZWdhCiAgICAgICAgIHBhZ2UtPm5lZ290aWF0ZWRMZWdhY3lUTFMoKTsKIH0KIAor
dm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpkaWROZWdvdGlhdGVNb2Rlcm5UTFMoV2ViUGFnZVBy
b3h5SWRlbnRpZmllciBwYWdlSUQsIGNvbnN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlJiBjaGFsbGVuZ2UpCit7CisgICAgaWYgKGF1dG8qIHBhZ2UgPSBwYWdlSUQgPyBXZWJQcm9j
ZXNzUHJveHk6OndlYlBhZ2UocGFnZUlEKSA6IG51bGxwdHIpCisgICAgICAgIHBhZ2UtPmRpZE5l
Z290aWF0ZU1vZGVyblRMUyhjaGFsbGVuZ2UpOworfQorCiB2b2lkIE5ldHdvcmtQcm9jZXNzUHJv
eHk6OmRpZEZldGNoV2Vic2l0ZURhdGEoQ2FsbGJhY2tJRCBjYWxsYmFja0lELCBjb25zdCBXZWJz
aXRlRGF0YSYgd2Vic2l0ZURhdGEpCiB7CiAgICAgTUVTU0FHRV9DSEVDSyhtX3BlbmRpbmdGZXRj
aFdlYnNpdGVEYXRhQ2FsbGJhY2tzLmlzVmFsaWRLZXkoY2FsbGJhY2tJRCkpOwpJbmRleDogU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1By
b3h5LmgJKHJldmlzaW9uIDI2MDU0MikKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdv
cmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNTEsNiArMjUxLDcg
QEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZFJlY2VpdmVOZXR3b3JrUHJvY2Vzc1Byb3h5TWVzc2Fn
ZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKTsKICAgICB2b2lkIGRpZFJlY2VpdmVB
dXRoZW50aWNhdGlvbkNoYWxsZW5nZShQQUw6OlNlc3Npb25JRCwgV2ViUGFnZVByb3h5SWRlbnRp
ZmllciwgY29uc3QgT3B0aW9uYWw8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhPiYsIFdlYkNv
cmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiYsIGJvb2wsIHVpbnQ2NF90IGNoYWxsZW5nZUlE
KTsKICAgICB2b2lkIG5lZ290aWF0ZWRMZWdhY3lUTFMoV2ViUGFnZVByb3h5SWRlbnRpZmllcik7
CisgICAgdm9pZCBkaWROZWdvdGlhdGVNb2Rlcm5UTFMoV2ViUGFnZVByb3h5SWRlbnRpZmllciwg
Y29uc3QgV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2UmKTsKICAgICB2b2lkIGRpZEZl
dGNoV2Vic2l0ZURhdGEoQ2FsbGJhY2tJRCwgY29uc3QgV2Vic2l0ZURhdGEmKTsKICAgICB2b2lk
IGRpZERlbGV0ZVdlYnNpdGVEYXRhKENhbGxiYWNrSUQpOwogICAgIHZvaWQgZGlkRGVsZXRlV2Vi
c2l0ZURhdGFGb3JPcmlnaW5zKENhbGxiYWNrSUQpOwpJbmRleDogU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5t
ZXNzYWdlcy5pbgkocmV2aXNpb24gMjYwNTQyKQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
TmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCSh3b3JraW5nIGNvcHkpCkBA
IC0yMyw2ICsyMyw3IEBACiBtZXNzYWdlcyAtPiBOZXR3b3JrUHJvY2Vzc1Byb3h5IExlZ2FjeVJl
Y2VpdmVyIE5vdFJlZkNvdW50ZWQgewogICAgIERpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYktpdDo6V2ViUGFnZVByb3h5SWRlbnRp
ZmllciBwYWdlSUQsIE9wdGlvbmFsPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YT4gdG9wT3Jp
Z2luLCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSBjaGFsbGVuZ2UsIGJvb2wgbmVn
b3RpYXRlZExlZ2FjeVRMUywgdWludDY0X3QgY2hhbGxlbmdlSUQpCiAgICAgTmVnb3RpYXRlZExl
Z2FjeVRMUyhXZWJLaXQ6OldlYlBhZ2VQcm94eUlkZW50aWZpZXIgcGFnZUlEKQorICAgIERpZE5l
Z290aWF0ZU1vZGVyblRMUyhXZWJLaXQ6OldlYlBhZ2VQcm94eUlkZW50aWZpZXIgcGFnZUlELCBX
ZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSBjaGFsbGVuZ2UpCiAKICAgICBEaWRGZXRj
aFdlYnNpdGVEYXRhKFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lELCBzdHJ1Y3QgV2ViS2l0
OjpXZWJzaXRlRGF0YSB3ZWJzaXRlRGF0YSkKICAgICBEaWREZWxldGVXZWJzaXRlRGF0YShXZWJL
aXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkKSW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJldmlzaW9uIDI2MDU0MikKKysrIFRvb2xzL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDIwLTA0LTI0ICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgU1BJIGNsaWVu
dHMgdXNpbmcgZmFzdFNlcnZlclRydXN0RXZhbHVhdGlvbkVuYWJsZWQgbmVlZCBTUEkgdG8gaW5m
b3JtIHRoZW0gb2YgbW9kZXJuIFRMUyBuZWdvdGlhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEwNTMzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
QnJhZHkgRWlkc29uLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9UTFNEZXByZWNhdGlvbi5tbToKKyAgICAgICAgKC1bVExTTmF2aWdhdGlvbkRlbGVnYXRlIHdh
aXRGb3JEaWROZWdvdGlhdGVNb2Rlcm5UTFNdKToKKyAgICAgICAgKC1bVExTTmF2aWdhdGlvbkRl
bGVnYXRlIF93ZWJWaWV3OmRpZE5lZ290aWF0ZU1vZGVyblRMUzpdKToKKyAgICAgICAgKFRlc3RX
ZWJLaXRBUEk6OlRFU1QpOgorCiAyMDIwLTA0LTIyICBEYW5pZWwgQmF0ZXMgIDxkYWJhdGVzQGFw
cGxlLmNvbT4KIAogICAgICAgICBBZGQgYSB0ZXN0IGZvciAtZm9jdXNUZXh0SW5wdXRDb250ZXh0
IG9uIGEgZmllbGQgaW4gZGV0YWNoZWQgZnJhbWUKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Q29jb2EvVExTRGVwcmVjYXRpb24ubW0KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9UTFNEZXByZWNhdGlvbi5tbQkocmV2aXNp
b24gMjYwNTQyKQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9UTFNE
ZXByZWNhdGlvbi5tbQkod29ya2luZyBjb3B5KQpAQCAtNzMsNiArNzMsNyBAQCAtICh2b2lkKXdh
aXRVbnRpbE5lZ290aWF0ZWRMZWdhY3lUTFNDaGFuCiBAaW50ZXJmYWNlIFRMU05hdmlnYXRpb25E
ZWxlZ2F0ZSA6IE5TT2JqZWN0IDxXS05hdmlnYXRpb25EZWxlZ2F0ZT4KIC0gKHZvaWQpd2FpdEZv
ckRpZEZpbmlzaE5hdmlnYXRpb247CiAtICh2b2lkKXdhaXRGb3JEaWRGYWlsUHJvdmlzaW9uYWxO
YXZpZ2F0aW9uOworLSAoTlNVUkxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSAqKXdhaXRGb3JEaWRO
ZWdvdGlhdGVNb2Rlcm5UTFM7CiAtIChib29sKXJlY2VpdmVkU2hvdWxkQWxsb3dMZWdhY3lUTFM7
CiBAcHJvcGVydHkgKG5vbmF0b21pYykgYm9vbCBzaG91bGRBbGxvd0xlZ2FjeVRMUzsKIEBlbmQK
QEAgLTgxLDYgKzgyLDcgQEAgLSAoYm9vbClyZWNlaXZlZFNob3VsZEFsbG93TGVnYWN5VExTOwog
ICAgIGJvb2wgX25hdmlnYXRpb25GaW5pc2hlZDsKICAgICBib29sIF9uYXZpZ2F0aW9uRmFpbGVk
OwogICAgIGJvb2wgX3JlY2VpdmVkU2hvdWxkQWxsb3dMZWdhY3lUTFM7CisgICAgUmV0YWluUHRy
PE5TVVJMQXV0aGVudGljYXRpb25DaGFsbGVuZ2U+IF9uZWdvdGlhdGVkTW9kZXJuVExTOwogfQog
CiAtICh2b2lkKXdhaXRGb3JEaWRGaW5pc2hOYXZpZ2F0aW9uCkBAIC05NSw2ICs5NywxMyBAQCAt
ICh2b2lkKXdhaXRGb3JEaWRGYWlsUHJvdmlzaW9uYWxOYXZpZ2F0CiAgICAgICAgIFRlc3RXZWJL
aXRBUEk6OlV0aWw6OnNwaW5SdW5Mb29wKCk7CiB9CiAKKy0gKE5TVVJMQXV0aGVudGljYXRpb25D
aGFsbGVuZ2UgKil3YWl0Rm9yRGlkTmVnb3RpYXRlTW9kZXJuVExTCit7CisgICAgd2hpbGUgKCFf
bmVnb3RpYXRlZE1vZGVyblRMUykKKyAgICAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6c3BpblJ1
bkxvb3AoKTsKKyAgICByZXR1cm4gX25lZ290aWF0ZWRNb2Rlcm5UTFMuYXV0b3JlbGVhc2UoKTsK
K30KKwogLSAoYm9vbClyZWNlaXZlZFNob3VsZEFsbG93TGVnYWN5VExTCiB7CiAgICAgcmV0dXJu
IF9yZWNlaXZlZFNob3VsZEFsbG93TGVnYWN5VExTOwpAQCAtMTIyLDYgKzEzMSwxMSBAQCAtICh2
b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGF1CiAgICAgY29tcGxldGlvbkhhbmRs
ZXIoW3NlbGYgc2hvdWxkQWxsb3dMZWdhY3lUTFNdKTsKIH0KIAorLSAodm9pZClfd2ViVmlldzoo
V0tXZWJWaWV3ICopd2ViVmlldyBkaWROZWdvdGlhdGVNb2Rlcm5UTFM6KE5TVVJMQXV0aGVudGlj
YXRpb25DaGFsbGVuZ2UgKiljaGFsbGVuZ2UKK3sKKyAgICBfbmVnb3RpYXRlZE1vZGVyblRMUyA9
IGNoYWxsZW5nZTsKK30KKwogQGVuZAogCiAKQEAgLTM2OSw2ICszODMsMjUgQEAgVEVTVChUTFNW
ZXJzaW9uLCBTdWJyZXNvdXJjZSkKICAgICBbd2ViVmlldyByZW1vdmVPYnNlcnZlcjpvYnNlcnZl
ci5nZXQoKSBmb3JLZXlQYXRoOkAiX25lZ290aWF0ZWRMZWdhY3lUTFMiXTsKIH0KIAorVEVTVChU
TFNWZXJzaW9uLCBEaWROZWdvdGlhdGVNb2Rlcm5UTFMpCit7CisgICAgSFRUUFNlcnZlciBzZXJ2
ZXIoeworICAgICAgICB7ICIvIiwgeyAiaGVsbG8iIH19CisgICAgfSwgSFRUUFNlcnZlcjo6UHJv
dG9jb2w6Okh0dHBzKTsKKworICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtUTFNOYXZpZ2F0
aW9uRGVsZWdhdGUgbmV3XSk7CisgICAgYXV0byBjb25maWd1cmF0aW9uID0gYWRvcHROUyhbV0tX
ZWJWaWV3Q29uZmlndXJhdGlvbiBuZXddKTsKKyAgICBhdXRvIGRhdGFTdG9yZUNvbmZpZ3VyYXRp
b24gPSBhZG9wdE5TKFtfV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbiBuZXddKTsKKyAg
ICBbZGF0YVN0b3JlQ29uZmlndXJhdGlvbiBzZXRGYXN0U2VydmVyVHJ1c3RFdmFsdWF0aW9uRW5h
YmxlZDpZRVNdOworICAgIFtjb25maWd1cmF0aW9uIHNldFdlYnNpdGVEYXRhU3RvcmU6W1tbV0tX
ZWJzaXRlRGF0YVN0b3JlIGFsbG9jXSBfaW5pdFdpdGhDb25maWd1cmF0aW9uOmRhdGFTdG9yZUNv
bmZpZ3VyYXRpb24uZ2V0KCldIGF1dG9yZWxlYXNlXV07CisgICAgYXV0byB3ZWJWaWV3ID0gYWRv
cHROUyhbW1dLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgw
MCwgNjAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCldKTsKKyAgICBbd2ViVmll
dyBzZXROYXZpZ2F0aW9uRGVsZWdhdGU6ZGVsZWdhdGUuZ2V0KCldOworICAgIFt3ZWJWaWV3IGxv
YWRSZXF1ZXN0OnNlcnZlci5yZXF1ZXN0KCldOworICAgIE5TVVJMQXV0aGVudGljYXRpb25DaGFs
bGVuZ2UgKmNoYWxsZW5nZSA9IFtkZWxlZ2F0ZSB3YWl0Rm9yRGlkTmVnb3RpYXRlTW9kZXJuVExT
XTsKKyAgICBFWFBFQ1RfV0tfU1RSRVEoY2hhbGxlbmdlLnByb3RlY3Rpb25TcGFjZS5ob3N0LCAi
MTI3LjAuMC4xIik7CisgICAgRVhQRUNUX0VRKGNoYWxsZW5nZS5wcm90ZWN0aW9uU3BhY2UucG9y
dCwgc2VydmVyLnBvcnQoKSk7Cit9CisKIFRFU1QoVExTVmVyc2lvbiwgQmFja0ZvcndhcmRIYXNP
bmx5U2VjdXJlQ29udGVudCkKIHsKICAgICBIVFRQU2VydmVyIHNlY3VyZVNlcnZlcih7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>