<?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>222587</bug_id>
          
          <creation_ts>2021-03-01 22:35:53 -0800</creation_ts>
          <short_desc>Validate documentState of FrameState when setting and getting it</short_desc>
          <delta_ts>2022-02-24 09:11:46 -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>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=237142</see_also>
          <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="Sihui Liu">sihui_liu</reporter>
          <assigned_to name="Sihui Liu">sihui_liu</assigned_to>
          <cc>berto</cc>
    
    <cc>cdumez</cc>
    
    <cc>cgarcia</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>gustavo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1734754</commentid>
    <comment_count>0</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-03-01 22:35:53 -0800</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1734762</commentid>
    <comment_count>1</comment_count>
      <attachid>421907</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-03-01 22:49:23 -0800</bug_when>
    <thetext>Created attachment 421907
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1734872</commentid>
    <comment_count>2</comment_count>
      <attachid>421945</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-03-02 09:03:10 -0800</bug_when>
    <thetext>Created attachment 421945
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1734875</commentid>
    <comment_count>3</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2021-03-02 09:03:58 -0800</bug_when>
    <thetext>Thanks for the patch. If this patch contains new public API please make sure it follows the guidelines for new WebKit2 GTK+ API. See https://trac.webkit.org/wiki/WebKitGTK/AddingNewWebKit2API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1734884</commentid>
    <comment_count>4</comment_count>
      <attachid>421945</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-03-02 09:24:42 -0800</bug_when>
    <thetext>Comment on attachment 421945
Patch

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

&gt; Source/WebKit/Shared/SessionState.cpp:282
&gt; +        StringView(stateString).upconvertedCharacters();

Maybe a comment to explain why this is validating? It is not clear to me at least.

&gt; Source/WebKit/Shared/SessionState.h:90
&gt; +    Vector&lt;String&gt; documentState() const { return  m_documentState; }

should return a `const Vector&lt;String&gt;&amp;`

&gt; Source/WebKit/UIProcess/API/glib/WebKitWebViewSessionState.cpp:310
&gt;          frameState.documentState.reserveInitialCapacity(documentStateLength);

Looks like this line should be dropped?

&gt; Source/WebKit/UIProcess/mac/LegacySessionStateCoding.cpp:907
&gt; +            frameState.setDocumentState(documentState, FrameState::ShouldValidate::Yes);

Decoding failed here. So what&apos;s the point of this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1734989</commentid>
    <comment_count>5</comment_count>
      <attachid>421984</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-03-02 13:21:18 -0800</bug_when>
    <thetext>Created attachment 421984
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1734990</commentid>
    <comment_count>6</comment_count>
      <attachid>421945</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-03-02 13:24:00 -0800</bug_when>
    <thetext>Comment on attachment 421945
Patch

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

&gt;&gt; Source/WebKit/Shared/SessionState.cpp:282
&gt;&gt; +        StringView(stateString).upconvertedCharacters();
&gt; 
&gt; Maybe a comment to explain why this is validating? It is not clear to me at least.

I just added the crashed function here, it seems it failed when traversing the characters. Will add a comment.

&gt;&gt; Source/WebKit/Shared/SessionState.h:90
&gt;&gt; +    Vector&lt;String&gt; documentState() const { return  m_documentState; }
&gt; 
&gt; should return a `const Vector&lt;String&gt;&amp;`

Okay.

&gt;&gt; Source/WebKit/UIProcess/API/glib/WebKitWebViewSessionState.cpp:310
&gt;&gt;          frameState.documentState.reserveInitialCapacity(documentStateLength);
&gt; 
&gt; Looks like this line should be dropped?

Right, good catch, will remove.

&gt;&gt; Source/WebKit/UIProcess/mac/LegacySessionStateCoding.cpp:907
&gt;&gt; +            frameState.setDocumentState(documentState, FrameState::ShouldValidate::Yes);
&gt; 
&gt; Decoding failed here. So what&apos;s the point of this?

The old behavior is updating documentState even it fails, so I just followed that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1735037</commentid>
    <comment_count>7</comment_count>
      <attachid>421984</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2021-03-02 14:43:00 -0800</bug_when>
    <thetext>Comment on attachment 421984
Patch

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

&gt; Source/WebKit/Shared/SessionState.cpp:289
&gt; +            auto character = characters8[i];
&gt; +            UNUSED_PARAM(character);

I believe the compiler is smart enough to notice that &apos;character&apos; is unused, and skip the load from characters8 altogether. That will turn this validation into a no-op.

You should be able to force a load by doing &quot;volatile LChar character = characters8[I]&quot;.

But perhaps a better idea would be to RELEASE_ASSERT(isLatin1(character)). (LChar is a 7-bit Latin1 encoding.) That&apos;s slightly more validation, and honestly every time I&apos;ve tried to use the &apos;volatile&apos; keyword I&apos;ve done it wrong.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1735058</commentid>
    <comment_count>8</comment_count>
      <attachid>422001</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-03-02 15:17:00 -0800</bug_when>
    <thetext>Created attachment 422001
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1735982</commentid>
    <comment_count>9</comment_count>
      <attachid>422274</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-03-04 12:52:34 -0800</bug_when>
    <thetext>Created attachment 422274
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1735994</commentid>
    <comment_count>10</comment_count>
      <attachid>422274</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2021-03-04 13:22:36 -0800</bug_when>
    <thetext>Comment on attachment 422274
Patch

r=me

Based on the analysis of other crash logs, maybe we should add a main thread RELEASE_ASSERT too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1736034</commentid>
    <comment_count>11</comment_count>
      <attachid>422293</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-03-04 15:08:27 -0800</bug_when>
    <thetext>Created attachment 422293
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1736050</commentid>
    <comment_count>12</comment_count>
      <attachid>422297</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-03-04 15:23:21 -0800</bug_when>
    <thetext>Created attachment 422297
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1736074</commentid>
    <comment_count>13</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-03-04 15:54:27 -0800</bug_when>
    <thetext>Patch 422293 does not build</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1736083</commentid>
    <comment_count>14</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-03-04 16:12:46 -0800</bug_when>
    <thetext>Committed r273929: &lt;https://commits.webkit.org/r273929&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 422297.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1736086</commentid>
    <comment_count>15</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-03-04 16:13:20 -0800</bug_when>
    <thetext>&lt;rdar://problem/75063667&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>421907</attachid>
            <date>2021-03-01 22:49:23 -0800</date>
            <delta_ts>2021-03-02 09:03:08 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222587-20210301224922.patch</filename>
            <type>text/plain</type>
            <size>9095</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjczNjU2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDc0YTk2NmI1ODljNTY0YjJk
OTc2ZjhhZTZmNzMyODJiYWE1NDE5YTAuLjczN2NiMjIzMDI2NjRjZGVlMjMwNGQyMDAzODYwN2U4
ZjdmMjU5NWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzMgQEAKKzIwMjEtMDMtMDEgIFNpaHVpIExp
dSAgPHNpaHVpX2xpdUBhcHBlLmNvbT4KKworICAgICAgICBWYWxpZGF0ZSBkb2N1bWVudFN0YXRl
IG9mIEZyYW1lU3RhdGUgd2hlbiBzZXR0aW5nIGFuZCBnZXR0aW5nIGl0CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjI1ODcKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICByZGFyOi8vNDg2MzQ1NTMgc2hvd2Vk
IHVzIHN0cmluZ3Mgb2YgZG9jdW1lbnRTdGF0ZSBjYW4gYmUgaW52YWxpZCB3aGVuIHRoZXkgYXJl
IGVuY29kZWQgaW4gZW5jb2RlRnJhbWVTdGF0ZU5vZGUuCisgICAgICAgIFRvIGdldCBhIGJldHRl
ciBpZGVhIG9mIHdoZW4gdGhlIHN0cmluZ3MgYmVjb21lIGludmFsaWQsIGFkZCBjaGVja3MgZm9y
IGRvY3VtZW50U3RhdGUgd2hlbiBnZXR0aW5nIGFuZCBzZXR0aW5nIAorICAgICAgICBpdC4KKwor
ICAgICAgICBObyB0ZXN0IGFzIG5vIGJlaGF2aW9yIGNoYW5nZS4KKworICAgICAgICAqIFNoYXJl
ZC9TZXNzaW9uU3RhdGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpGcmFtZVN0YXRlOjplbmNvZGUg
Y29uc3QpOgorICAgICAgICAoV2ViS2l0OjpGcmFtZVN0YXRlOjpkZWNvZGUpOgorICAgICAgICAo
V2ViS2l0OjpGcmFtZVN0YXRlOjp2YWxpZGF0ZURvY3VtZW50U3RhdGUgY29uc3QpOgorICAgICAg
ICAoV2ViS2l0OjpGcmFtZVN0YXRlOjpzZXREb2N1bWVudFN0YXRlKToKKyAgICAgICAgKiBTaGFy
ZWQvU2Vzc2lvblN0YXRlLmg6CisgICAgICAgIChXZWJLaXQ6OkZyYW1lU3RhdGU6On5GcmFtZVN0
YXRlKToKKyAgICAgICAgKFdlYktpdDo6RnJhbWVTdGF0ZTo6ZG9jdW1lbnRTdGF0ZSBjb25zdCk6
CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1Nlc3Npb25TdGF0ZUNvZGluZy5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9MZWdhY3lTZXNzaW9uU3RhdGVDb2RpbmcuaDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvbWFjL0xlZ2FjeVNlc3Npb25TdGF0ZUNvZGluZy5jcHA6CisgICAgICAgIChXZWJLaXQ6
OmVuY29kZUZyYW1lU3RhdGVOb2RlKToKKyAgICAgICAgKFdlYktpdDo6ZGVjb2RlQmFja0Zvcndh
cmRUcmVlTm9kZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9TZXNzaW9u
U3RhdGVDb252ZXJzaW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6dG9GcmFtZVN0YXRlKToKKyAg
ICAgICAgKFdlYktpdDo6YXBwbHlGcmFtZVN0YXRlKToKKwogMjAyMS0wMy0wMSAgQ2hyaXMgRHVt
ZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFNldCBvd25lcnNoaXAgb2YgSU9TdXJm
YWNlcyBmcm9tIHRoZSBHUFVQcm9jZXNzIGluc3RlYWQgb2YgdGhlIFdlYlByb2Nlc3MKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1Nlc3Npb25TdGF0ZS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9TZXNzaW9uU3RhdGUuY3BwCmluZGV4IDJlY2M0ZjFmZDgzYTJhYmY1YWUzY2Vm
OTE1MTIzZWUyMjhlMjcyNTcuLjEyNmM1OGUzNDNiYzhhNzEyYmMzZjJjNTkyNDc3Y2I0ZjUxZmVm
MDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1Nlc3Npb25TdGF0ZS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvU2Vzc2lvblN0YXRlLmNwcApAQCAtMTEwLDcgKzExMCw3
IEBAIHZvaWQgRnJhbWVTdGF0ZTo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QK
ICAgICBlbmNvZGVyIDw8IHJlZmVycmVyOwogICAgIGVuY29kZXIgPDwgdGFyZ2V0OwogCi0gICAg
ZW5jb2RlciA8PCBkb2N1bWVudFN0YXRlOworICAgIGVuY29kZXIgPDwgbV9kb2N1bWVudFN0YXRl
OwogICAgIGVuY29kZXIgPDwgc3RhdGVPYmplY3REYXRhOwogCiAgICAgZW5jb2RlciA8PCBkb2N1
bWVudFNlcXVlbmNlTnVtYmVyOwpAQCAtMTQ2LDggKzE0NiwxMCBAQCBPcHRpb25hbDxGcmFtZVN0
YXRlPiBGcmFtZVN0YXRlOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyKQogICAgIGlmICgh
ZGVjb2Rlci5kZWNvZGUocmVzdWx0LnRhcmdldCkpCiAgICAgICAgIHJldHVybiBXVEY6Om51bGxv
cHQ7CiAKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5kb2N1bWVudFN0YXRlKSkKKyAg
ICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5tX2RvY3VtZW50U3RhdGUpKQogICAgICAgICBy
ZXR1cm4gV1RGOjpudWxsb3B0OworICAgIHJlc3VsdC52YWxpZGF0ZURvY3VtZW50U3RhdGUoKTsK
KwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LnN0YXRlT2JqZWN0RGF0YSkpCiAgICAg
ICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAKQEAgLTI3MCw0ICsyNzIsMjMgQEAgT3B0aW9uYWw8
QmFja0ZvcndhcmRMaXN0U3RhdGU+IEJhY2tGb3J3YXJkTGlzdFN0YXRlOjpkZWNvZGUoSVBDOjpE
ZWNvZGVyJiBkZWNvZGUKICAgICByZXR1cm4ge3sgV1RGTW92ZSgqaXRlbXMpLCBXVEZNb3ZlKGN1
cnJlbnRJbmRleCkgfX07CiB9CiAKK3ZvaWQgRnJhbWVTdGF0ZTo6dmFsaWRhdGVEb2N1bWVudFN0
YXRlKCkgY29uc3QKK3sKKyAgICBSRUxFQVNFX0FTU0VSVCghbV9pc0Rlc3RydWN0ZWQpOworICAg
IGZvciAoYXV0byYgc3RhdGVTdHJpbmcgOiBtX2RvY3VtZW50U3RhdGUpIHsKKyAgICAgICAgaWYg
KHN0YXRlU3RyaW5nLmlzTnVsbCgpKQorICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAg
U3RyaW5nVmlldyhzdGF0ZVN0cmluZykudXBjb252ZXJ0ZWRDaGFyYWN0ZXJzKCk7CisgICAgfQor
fQorCit2b2lkIEZyYW1lU3RhdGU6OnNldERvY3VtZW50U3RhdGUoY29uc3QgVmVjdG9yPFN0cmlu
Zz4mIGRvY3VtZW50U3RhdGUsIFNob3VsZFZhbGlkYXRlIHNob3VsZFZhbGlkYXRlKQoreworICAg
IG1fZG9jdW1lbnRTdGF0ZSA9IGRvY3VtZW50U3RhdGU7CisKKyAgICBpZiAoc2hvdWxkVmFsaWRh
dGUgPT0gU2hvdWxkVmFsaWRhdGU6OlllcykKKyAgICAgICAgdmFsaWRhdGVEb2N1bWVudFN0YXRl
KCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9TaGFyZWQvU2Vzc2lvblN0YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9TZXNzaW9uU3Rh
dGUuaAppbmRleCAwNTc3ODZmYjAyNDEzMDc4YWI2NjAwYzU3NWIyYTJlZjMzN2Q2OTg3Li4yZjFj
ZWZmNzFlOGVjZjg3ZmY3NmI0N2I2NjZiMzhiMGQ2ZTcyYTg1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9TZXNzaW9uU3RhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9T
ZXNzaW9uU3RhdGUuaApAQCAtODAsMTYgKzgwLDIzIEBAIHN0cnVjdCBIVFRQQm9keSB7CiAgICAg
VmVjdG9yPEVsZW1lbnQ+IGVsZW1lbnRzOwogfTsKIAotc3RydWN0IEZyYW1lU3RhdGUgeworY2xh
c3MgRnJhbWVTdGF0ZSB7CitwdWJsaWM6CiAgICAgdm9pZCBlbmNvZGUoSVBDOjpFbmNvZGVyJikg
Y29uc3Q7CiAgICAgc3RhdGljIE9wdGlvbmFsPEZyYW1lU3RhdGU+IGRlY29kZShJUEM6OkRlY29k
ZXImKTsKIAorICAgIC8vIFRoZXNlIGFyZSB1c2VkIHRvIGhlbHAgZGVidWcgPHJkYXI6Ly9wcm9i
bGVtLzQ4NjM0NTUzPi4KKyAgICB+RnJhbWVTdGF0ZSgpIHsgbV9pc0Rlc3RydWN0ZWQgPSB0cnVl
OyB9CisgICAgVmVjdG9yPFN0cmluZz4gZG9jdW1lbnRTdGF0ZSgpIGNvbnN0IHsgcmV0dXJuICBt
X2RvY3VtZW50U3RhdGU7IH0KKyAgICBlbnVtIGNsYXNzIFNob3VsZFZhbGlkYXRlIDogYm9vbCB7
IE5vLCBZZXMgfTsKKyAgICB2b2lkIHNldERvY3VtZW50U3RhdGUoY29uc3QgVmVjdG9yPFN0cmlu
Zz4mLCBTaG91bGRWYWxpZGF0ZSA9IFNob3VsZFZhbGlkYXRlOjpObyk7CisgICAgdm9pZCB2YWxp
ZGF0ZURvY3VtZW50U3RhdGUoKSBjb25zdDsKKwogICAgIFN0cmluZyB1cmxTdHJpbmc7CiAgICAg
U3RyaW5nIG9yaWdpbmFsVVJMU3RyaW5nOwogICAgIFN0cmluZyByZWZlcnJlcjsKICAgICBTdHJp
bmcgdGFyZ2V0OwogCi0gICAgVmVjdG9yPFN0cmluZz4gZG9jdW1lbnRTdGF0ZTsKICAgICBPcHRp
b25hbDxWZWN0b3I8dWludDhfdD4+IHN0YXRlT2JqZWN0RGF0YTsKIAogICAgIGludDY0X3QgZG9j
dW1lbnRTZXF1ZW5jZU51bWJlciB7IDAgfTsKQEAgLTExMyw5ICsxMjAsOSBAQCBzdHJ1Y3QgRnJh
bWVTdGF0ZSB7CiAKICAgICBWZWN0b3I8RnJhbWVTdGF0ZT4gY2hpbGRyZW47CiAKLSAgICAvLyBU
aGlzIGlzIG9ubHkgdXNlZCB0byBoZWxwIGRlYnVnIDxyZGFyOi8vcHJvYmxlbS80ODYzNDU1Mz4u
Ci0gICAgYm9vbCBpc0Rlc3RydWN0ZWQgeyBmYWxzZSB9OwotICAgIH5GcmFtZVN0YXRlKCkgeyBp
c0Rlc3RydWN0ZWQgPSB0cnVlOyB9Citwcml2YXRlOgorICAgIGJvb2wgbV9pc0Rlc3RydWN0ZWQg
eyBmYWxzZSB9OworICAgIFZlY3RvcjxTdHJpbmc+IG1fZG9jdW1lbnRTdGF0ZTsKIH07CiAKIHN0
cnVjdCBQYWdlU3RhdGUgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvU2Vzc2lvblN0YXRlQ29kaW5nLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9T
ZXNzaW9uU3RhdGVDb2RpbmcuaAppbmRleCA1NmQ3YzQyYmJlNzQxODc0MTdjMzVhMTliYWNiYWM4
ZDkxZGMwZjU1Li5mNGIzMWRiNGQ2MTUzOGZiZWMxMmI5MWI2M2JhMTViYzM3NjFjMjQ4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9TZXNzaW9uU3RhdGVDb2Rpbmcu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9TZXNzaW9uU3RhdGVDb2Rpbmcu
aApAQCAtMzAsNyArMzAsNyBAQAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotc3RydWN0IEZyYW1l
U3RhdGU7CitjbGFzcyBGcmFtZVN0YXRlOwogc3RydWN0IFNlc3Npb25TdGF0ZTsKIAogUmV0YWlu
UHRyPE5TRGF0YT4gZW5jb2RlU2Vzc2lvblN0YXRlKGNvbnN0IFNlc3Npb25TdGF0ZSYpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTGVnYWN5U2Vzc2lvblN0YXRlQ29kaW5n
LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9MZWdhY3lTZXNzaW9uU3RhdGVDb2RpbmcuaApp
bmRleCAxN2ViYzRkYWI0YzlmZWU5MTk3ODM2NjM5NTBlZjhkOWUxNzlmOWYwLi40OGQwYWZiMTY2
ZjU4M2Y3Yjk5ZmJhNzI2ZGQ0NGEzODBmZjBkODIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9MZWdhY3lTZXNzaW9uU3RhdGVDb2RpbmcuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9MZWdhY3lTZXNzaW9uU3RhdGVDb2RpbmcuaApAQCAtMzQsNyArMzQsNyBAQCBj
bGFzcyBEYXRhOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotc3RydWN0IEZyYW1lU3RhdGU7Citj
bGFzcyBGcmFtZVN0YXRlOwogc3RydWN0IFNlc3Npb25TdGF0ZTsKIAogUmVmUHRyPEFQSTo6RGF0
YT4gZW5jb2RlTGVnYWN5U2Vzc2lvblN0YXRlKGNvbnN0IFNlc3Npb25TdGF0ZSYpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL0xlZ2FjeVNlc3Npb25TdGF0ZUNvZGlu
Zy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvTGVnYWN5U2Vzc2lvblN0YXRlQ29k
aW5nLmNwcAppbmRleCA4ODVkM2Y3YTJkNzUxYWRiOThmODQzN2YwMTAwZjE4MTYyZTFmN2YxLi44
YjcwNDM5ODNkNzNiNWM4Y2RkMWYxY2NmNmZjYjc3YTk1ZjhjNWQ4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvTGVnYWN5U2Vzc2lvblN0YXRlQ29kaW5nLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvTGVnYWN5U2Vzc2lvblN0YXRlQ29kaW5nLmNw
cApAQCAtMzIzLDkgKzMyMyw3IEBAIHN0YXRpYyB2b2lkIGVuY29kZUZyYW1lU3RhdGVOb2RlKEhp
c3RvcnlFbnRyeURhdGFFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBGcmFtZVN0CiB7CiAgICAgZW5j
b2RlciA8PCBzdGF0aWNfY2FzdDx1aW50NjRfdD4oZnJhbWVTdGF0ZS5jaGlsZHJlbi5zaXplKCkp
OwogCi0gICAgUkVMRUFTRV9BU1NFUlQoIWZyYW1lU3RhdGUuaXNEZXN0cnVjdGVkKTsKICAgICBm
b3IgKGNvbnN0IGF1dG8mIGNoaWxkRnJhbWVTdGF0ZSA6IGZyYW1lU3RhdGUuY2hpbGRyZW4pIHsK
LSAgICAgICAgUkVMRUFTRV9BU1NFUlQoIWNoaWxkRnJhbWVTdGF0ZS5pc0Rlc3RydWN0ZWQpOwog
ICAgICAgICBlbmNvZGVyIDw8IGNoaWxkRnJhbWVTdGF0ZS5vcmlnaW5hbFVSTFN0cmluZzsKICAg
ICAgICAgZW5jb2RlciA8PCBjaGlsZEZyYW1lU3RhdGUudXJsU3RyaW5nOwogCkBAIC0zMzQsOCAr
MzMyLDkgQEAgc3RhdGljIHZvaWQgZW5jb2RlRnJhbWVTdGF0ZU5vZGUoSGlzdG9yeUVudHJ5RGF0
YUVuY29kZXImIGVuY29kZXIsIGNvbnN0IEZyYW1lU3QKIAogICAgIGVuY29kZXIgPDwgZnJhbWVT
dGF0ZS5kb2N1bWVudFNlcXVlbmNlTnVtYmVyOwogCi0gICAgZW5jb2RlciA8PCBzdGF0aWNfY2Fz
dDx1aW50NjRfdD4oZnJhbWVTdGF0ZS5kb2N1bWVudFN0YXRlLnNpemUoKSk7Ci0gICAgZm9yIChj
b25zdCBhdXRvJiBkb2N1bWVudFN0YXRlIDogZnJhbWVTdGF0ZS5kb2N1bWVudFN0YXRlKQorICAg
IGZyYW1lU3RhdGUudmFsaWRhdGVEb2N1bWVudFN0YXRlKCk7CisgICAgZW5jb2RlciA8PCBzdGF0
aWNfY2FzdDx1aW50NjRfdD4oZnJhbWVTdGF0ZS5kb2N1bWVudFN0YXRlKCkuc2l6ZSgpKTsKKyAg
ICBmb3IgKGNvbnN0IGF1dG8mIGRvY3VtZW50U3RhdGUgOiBmcmFtZVN0YXRlLmRvY3VtZW50U3Rh
dGUoKSkKICAgICAgICAgZW5jb2RlciA8PCBkb2N1bWVudFN0YXRlOwogCiAgICAgaWYgKGZyYW1l
U3RhdGUuaHR0cEJvZHkpIHsKQEAgLTg5OSwxNSArODk4LDE5IEBAIHN0YXRpYyB2b2lkIGRlY29k
ZUJhY2tGb3J3YXJkVHJlZU5vZGUoSGlzdG9yeUVudHJ5RGF0YURlY29kZXImIGRlY29kZXIsIEZy
YW1lU3RhCiAgICAgdWludDY0X3QgZG9jdW1lbnRTdGF0ZVZlY3RvclNpemU7CiAgICAgZGVjb2Rl
ciA+PiBkb2N1bWVudFN0YXRlVmVjdG9yU2l6ZTsKIAorICAgIFZlY3RvcjxTdHJpbmc+IGRvY3Vt
ZW50U3RhdGU7CiAgICAgZm9yICh1aW50NjRfdCBpID0gMDsgaSA8IGRvY3VtZW50U3RhdGVWZWN0
b3JTaXplOyArK2kpIHsKICAgICAgICAgU3RyaW5nIHN0YXRlOwogICAgICAgICBkZWNvZGVyID4+
IHN0YXRlOwogCi0gICAgICAgIGlmICghZGVjb2Rlci5pc1ZhbGlkKCkpCisgICAgICAgIGlmICgh
ZGVjb2Rlci5pc1ZhbGlkKCkpIHsKKyAgICAgICAgICAgIGZyYW1lU3RhdGUuc2V0RG9jdW1lbnRT
dGF0ZShkb2N1bWVudFN0YXRlLCBGcmFtZVN0YXRlOjpTaG91bGRWYWxpZGF0ZTo6WWVzKTsKICAg
ICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQogCi0gICAgICAgIGZyYW1lU3RhdGUuZG9jdW1l
bnRTdGF0ZS5hcHBlbmQoV1RGTW92ZShzdGF0ZSkpOworICAgICAgICBkb2N1bWVudFN0YXRlLmFw
cGVuZChXVEZNb3ZlKHN0YXRlKSk7CiAgICAgfQorICAgIGZyYW1lU3RhdGUuc2V0RG9jdW1lbnRT
dGF0ZShkb2N1bWVudFN0YXRlLCBGcmFtZVN0YXRlOjpTaG91bGRWYWxpZGF0ZTo6WWVzKTsKIAog
ICAgIFN0cmluZyBmb3JtQ29udGVudFR5cGU7CiAgICAgZGVjb2RlciA+PiBmb3JtQ29udGVudFR5
cGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
U2Vzc2lvblN0YXRlQ29udmVyc2lvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvU2Vzc2lvblN0YXRlQ29udmVyc2lvbi5jcHAKaW5kZXggMDI2OTVkM2ViODlm
NWU2NDA5Mzg0MTQyNDllN2Y1YzlmODJhYzQxMC4uZDVlMjBmNDExN2FhNTFlYzZiYjcxM2YxNjA3
N2FjZjFkYmUyYWJjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1Nlc3Npb25TdGF0ZUNvbnZlcnNpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9TZXNzaW9uU3RhdGVDb252ZXJzaW9uLmNwcApAQCAt
NzIsNyArNzIsNyBAQCBzdGF0aWMgRnJhbWVTdGF0ZSB0b0ZyYW1lU3RhdGUoY29uc3QgSGlzdG9y
eUl0ZW0mIGhpc3RvcnlJdGVtKQogICAgIGZyYW1lU3RhdGUucmVmZXJyZXIgPSBoaXN0b3J5SXRl
bS5yZWZlcnJlcigpOwogICAgIGZyYW1lU3RhdGUudGFyZ2V0ID0gaGlzdG9yeUl0ZW0udGFyZ2V0
KCk7CiAKLSAgICBmcmFtZVN0YXRlLmRvY3VtZW50U3RhdGUgPSBoaXN0b3J5SXRlbS5kb2N1bWVu
dFN0YXRlKCk7CisgICAgZnJhbWVTdGF0ZS5zZXREb2N1bWVudFN0YXRlKGhpc3RvcnlJdGVtLmRv
Y3VtZW50U3RhdGUoKSk7CiAgICAgaWYgKFJlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IHN0
YXRlT2JqZWN0ID0gaGlzdG9yeUl0ZW0uc3RhdGVPYmplY3QoKSkKICAgICAgICAgZnJhbWVTdGF0
ZS5zdGF0ZU9iamVjdERhdGEgPSBzdGF0ZU9iamVjdC0+ZGF0YSgpOwogCkBAIC0xNDgsNyArMTQ4
LDcgQEAgc3RhdGljIHZvaWQgYXBwbHlGcmFtZVN0YXRlKEhpc3RvcnlJdGVtJiBoaXN0b3J5SXRl
bSwgY29uc3QgRnJhbWVTdGF0ZSYgZnJhbWVTdGEKICAgICBoaXN0b3J5SXRlbS5zZXRSZWZlcnJl
cihmcmFtZVN0YXRlLnJlZmVycmVyKTsKICAgICBoaXN0b3J5SXRlbS5zZXRUYXJnZXQoZnJhbWVT
dGF0ZS50YXJnZXQpOwogCi0gICAgaGlzdG9yeUl0ZW0uc2V0RG9jdW1lbnRTdGF0ZShmcmFtZVN0
YXRlLmRvY3VtZW50U3RhdGUpOworICAgIGhpc3RvcnlJdGVtLnNldERvY3VtZW50U3RhdGUoZnJh
bWVTdGF0ZS5kb2N1bWVudFN0YXRlKCkpOwogCiAgICAgaWYgKGZyYW1lU3RhdGUuc3RhdGVPYmpl
Y3REYXRhKSB7CiAgICAgICAgIFZlY3Rvcjx1aW50OF90PiBzdGF0ZU9iamVjdERhdGEgPSBmcmFt
ZVN0YXRlLnN0YXRlT2JqZWN0RGF0YS52YWx1ZSgpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>421945</attachid>
            <date>2021-03-02 09:03:10 -0800</date>
            <delta_ts>2021-03-02 13:21:16 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222587-20210302090309.patch</filename>
            <type>text/plain</type>
            <size>11144</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjczNjU2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDc0YTk2NmI1ODljNTY0YjJk
OTc2ZjhhZTZmNzMyODJiYWE1NDE5YTAuLmY2YWI4YWFmNjcyZjIwZjkxMTY4YTBiN2E4N2Y5YzU4
YmM5MjA0ZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzYgQEAKKzIwMjEtMDMtMDIgIFNpaHVpIExp
dSAgPHNpaHVpX2xpdUBhcHBlLmNvbT4KKworICAgICAgICBWYWxpZGF0ZSBkb2N1bWVudFN0YXRl
IG9mIEZyYW1lU3RhdGUgd2hlbiBzZXR0aW5nIGFuZCBnZXR0aW5nIGl0CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjI1ODcKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICByZGFyOi8vNDg2MzQ1NTMgc2hvd2Vk
IHVzIHN0cmluZ3Mgb2YgZG9jdW1lbnRTdGF0ZSBjYW4gYmUgaW52YWxpZCB3aGVuIHRoZXkgYXJl
IGVuY29kZWQgaW4gZW5jb2RlRnJhbWVTdGF0ZU5vZGUKKyAgICAgICAgaW4gVUkgcHJvY2Vzcy4g
VG8gZ2V0IGEgYmV0dGVyIGlkZWEgb2Ygd2hlbiB0aGUgc3RyaW5ncyBiZWNvbWUgaW52YWxpZCwg
YWRkIGNoZWNrcyBmb3IgZG9jdW1lbnRTdGF0ZSB3aGVuIAorICAgICAgICBnZXR0aW5nIGFuZCBz
ZXR0aW5nIGl0LgorCisgICAgICAgIE5vIHRlc3QgYXMgbm8gYmVoYXZpb3IgY2hhbmdlLgorCisg
ICAgICAgICogU2hhcmVkL1Nlc3Npb25TdGF0ZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkZyYW1l
U3RhdGU6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OkZyYW1lU3RhdGU6OmRlY29k
ZSk6CisgICAgICAgIChXZWJLaXQ6OkZyYW1lU3RhdGU6OnZhbGlkYXRlRG9jdW1lbnRTdGF0ZSBj
b25zdCk6CisgICAgICAgIChXZWJLaXQ6OkZyYW1lU3RhdGU6OnNldERvY3VtZW50U3RhdGUpOgor
ICAgICAgICAqIFNoYXJlZC9TZXNzaW9uU3RhdGUuaDoKKyAgICAgICAgKFdlYktpdDo6RnJhbWVT
dGF0ZTo6fkZyYW1lU3RhdGUpOgorICAgICAgICAoV2ViS2l0OjpGcmFtZVN0YXRlOjpkb2N1bWVu
dFN0YXRlIGNvbnN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViVmll
d1Nlc3Npb25TdGF0ZS5jcHA6CisgICAgICAgIChlbmNvZGVGcmFtZVN0YXRlKToKKyAgICAgICAg
KGRlY29kZUZyYW1lU3RhdGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9TZXNzaW9uU3Rh
dGVDb2RpbmcuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvTGVnYWN5U2Vzc2lvblN0YXRlQ29kaW5n
Lmg6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9MZWdhY3lTZXNzaW9uU3RhdGVDb2RpbmcuY3Bw
OgorICAgICAgICAoV2ViS2l0OjplbmNvZGVGcmFtZVN0YXRlTm9kZSk6CisgICAgICAgIChXZWJL
aXQ6OmRlY29kZUJhY2tGb3J3YXJkVHJlZU5vZGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvU2Vzc2lvblN0YXRlQ29udmVyc2lvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6
OnRvRnJhbWVTdGF0ZSk6CisgICAgICAgIChXZWJLaXQ6OmFwcGx5RnJhbWVTdGF0ZSk6CisKIDIw
MjEtMDMtMDEgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBTZXQg
b3duZXJzaGlwIG9mIElPU3VyZmFjZXMgZnJvbSB0aGUgR1BVUHJvY2VzcyBpbnN0ZWFkIG9mIHRo
ZSBXZWJQcm9jZXNzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9TZXNzaW9uU3Rh
dGUuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvU2Vzc2lvblN0YXRlLmNwcAppbmRleCAyZWNj
NGYxZmQ4M2EyYWJmNWFlM2NlZjkxNTEyM2VlMjI4ZTI3MjU3Li4xMjZjNThlMzQzYmM4YTcxMmJj
M2YyYzU5MjQ3N2NiNGY1MWZlZjA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9T
ZXNzaW9uU3RhdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1Nlc3Npb25TdGF0ZS5j
cHAKQEAgLTExMCw3ICsxMTAsNyBAQCB2b2lkIEZyYW1lU3RhdGU6OmVuY29kZShJUEM6OkVuY29k
ZXImIGVuY29kZXIpIGNvbnN0CiAgICAgZW5jb2RlciA8PCByZWZlcnJlcjsKICAgICBlbmNvZGVy
IDw8IHRhcmdldDsKIAotICAgIGVuY29kZXIgPDwgZG9jdW1lbnRTdGF0ZTsKKyAgICBlbmNvZGVy
IDw8IG1fZG9jdW1lbnRTdGF0ZTsKICAgICBlbmNvZGVyIDw8IHN0YXRlT2JqZWN0RGF0YTsKIAog
ICAgIGVuY29kZXIgPDwgZG9jdW1lbnRTZXF1ZW5jZU51bWJlcjsKQEAgLTE0Niw4ICsxNDYsMTAg
QEAgT3B0aW9uYWw8RnJhbWVTdGF0ZT4gRnJhbWVTdGF0ZTo6ZGVjb2RlKElQQzo6RGVjb2RlciYg
ZGVjb2RlcikKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC50YXJnZXQpKQogICAgICAg
ICByZXR1cm4gV1RGOjpudWxsb3B0OwogCi0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQu
ZG9jdW1lbnRTdGF0ZSkpCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQubV9kb2N1bWVu
dFN0YXRlKSkKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKyAgICByZXN1bHQudmFsaWRh
dGVEb2N1bWVudFN0YXRlKCk7CisKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5zdGF0
ZU9iamVjdERhdGEpKQogICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogCkBAIC0yNzAsNCAr
MjcyLDIzIEBAIE9wdGlvbmFsPEJhY2tGb3J3YXJkTGlzdFN0YXRlPiBCYWNrRm9yd2FyZExpc3RT
dGF0ZTo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2RlCiAgICAgcmV0dXJuIHt7IFdURk1vdmUo
Kml0ZW1zKSwgV1RGTW92ZShjdXJyZW50SW5kZXgpIH19OwogfQogCit2b2lkIEZyYW1lU3RhdGU6
OnZhbGlkYXRlRG9jdW1lbnRTdGF0ZSgpIGNvbnN0Cit7CisgICAgUkVMRUFTRV9BU1NFUlQoIW1f
aXNEZXN0cnVjdGVkKTsKKyAgICBmb3IgKGF1dG8mIHN0YXRlU3RyaW5nIDogbV9kb2N1bWVudFN0
YXRlKSB7CisgICAgICAgIGlmIChzdGF0ZVN0cmluZy5pc051bGwoKSkKKyAgICAgICAgICAgIGNv
bnRpbnVlOworCisgICAgICAgIFN0cmluZ1ZpZXcoc3RhdGVTdHJpbmcpLnVwY29udmVydGVkQ2hh
cmFjdGVycygpOworICAgIH0KK30KKwordm9pZCBGcmFtZVN0YXRlOjpzZXREb2N1bWVudFN0YXRl
KGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBkb2N1bWVudFN0YXRlLCBTaG91bGRWYWxpZGF0ZSBzaG91
bGRWYWxpZGF0ZSkKK3sKKyAgICBtX2RvY3VtZW50U3RhdGUgPSBkb2N1bWVudFN0YXRlOworCisg
ICAgaWYgKHNob3VsZFZhbGlkYXRlID09IFNob3VsZFZhbGlkYXRlOjpZZXMpCisgICAgICAgIHZh
bGlkYXRlRG9jdW1lbnRTdGF0ZSgpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1Nlc3Npb25TdGF0ZS5oIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvU2Vzc2lvblN0YXRlLmgKaW5kZXggMDU3Nzg2ZmIwMjQxMzA3OGFiNjYwMGM1NzVi
MmEyZWYzMzdkNjk4Ny4uMmYxY2VmZjcxZThlY2Y4N2ZmNzZiNDdiNjY2YjM4YjBkNmU3MmE4NSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvU2Vzc2lvblN0YXRlLmgKKysrIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvU2Vzc2lvblN0YXRlLmgKQEAgLTgwLDE2ICs4MCwyMyBAQCBzdHJ1
Y3QgSFRUUEJvZHkgewogICAgIFZlY3RvcjxFbGVtZW50PiBlbGVtZW50czsKIH07CiAKLXN0cnVj
dCBGcmFtZVN0YXRlIHsKK2NsYXNzIEZyYW1lU3RhdGUgeworcHVibGljOgogICAgIHZvaWQgZW5j
b2RlKElQQzo6RW5jb2RlciYpIGNvbnN0OwogICAgIHN0YXRpYyBPcHRpb25hbDxGcmFtZVN0YXRl
PiBkZWNvZGUoSVBDOjpEZWNvZGVyJik7CiAKKyAgICAvLyBUaGVzZSBhcmUgdXNlZCB0byBoZWxw
IGRlYnVnIDxyZGFyOi8vcHJvYmxlbS80ODYzNDU1Mz4uCisgICAgfkZyYW1lU3RhdGUoKSB7IG1f
aXNEZXN0cnVjdGVkID0gdHJ1ZTsgfQorICAgIFZlY3RvcjxTdHJpbmc+IGRvY3VtZW50U3RhdGUo
KSBjb25zdCB7IHJldHVybiAgbV9kb2N1bWVudFN0YXRlOyB9CisgICAgZW51bSBjbGFzcyBTaG91
bGRWYWxpZGF0ZSA6IGJvb2wgeyBObywgWWVzIH07CisgICAgdm9pZCBzZXREb2N1bWVudFN0YXRl
KGNvbnN0IFZlY3RvcjxTdHJpbmc+JiwgU2hvdWxkVmFsaWRhdGUgPSBTaG91bGRWYWxpZGF0ZTo6
Tm8pOworICAgIHZvaWQgdmFsaWRhdGVEb2N1bWVudFN0YXRlKCkgY29uc3Q7CisKICAgICBTdHJp
bmcgdXJsU3RyaW5nOwogICAgIFN0cmluZyBvcmlnaW5hbFVSTFN0cmluZzsKICAgICBTdHJpbmcg
cmVmZXJyZXI7CiAgICAgU3RyaW5nIHRhcmdldDsKIAotICAgIFZlY3RvcjxTdHJpbmc+IGRvY3Vt
ZW50U3RhdGU7CiAgICAgT3B0aW9uYWw8VmVjdG9yPHVpbnQ4X3Q+PiBzdGF0ZU9iamVjdERhdGE7
CiAKICAgICBpbnQ2NF90IGRvY3VtZW50U2VxdWVuY2VOdW1iZXIgeyAwIH07CkBAIC0xMTMsOSAr
MTIwLDkgQEAgc3RydWN0IEZyYW1lU3RhdGUgewogCiAgICAgVmVjdG9yPEZyYW1lU3RhdGU+IGNo
aWxkcmVuOwogCi0gICAgLy8gVGhpcyBpcyBvbmx5IHVzZWQgdG8gaGVscCBkZWJ1ZyA8cmRhcjov
L3Byb2JsZW0vNDg2MzQ1NTM+LgotICAgIGJvb2wgaXNEZXN0cnVjdGVkIHsgZmFsc2UgfTsKLSAg
ICB+RnJhbWVTdGF0ZSgpIHsgaXNEZXN0cnVjdGVkID0gdHJ1ZTsgfQorcHJpdmF0ZToKKyAgICBi
b29sIG1faXNEZXN0cnVjdGVkIHsgZmFsc2UgfTsKKyAgICBWZWN0b3I8U3RyaW5nPiBtX2RvY3Vt
ZW50U3RhdGU7CiB9OwogCiBzdHJ1Y3QgUGFnZVN0YXRlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYlZpZXdTZXNzaW9uU3RhdGUuY3BwIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViVmlld1Nlc3Npb25TdGF0
ZS5jcHAKaW5kZXggODVmMjNlYjU0ZDZjMDI3YWIxMzdkMWFlYmU2YWVlOTQyYTczMWI4YS4uMTRj
OTIyODQ0MmVlNGM1NzYxN2RlYzU0OGQwN2NmZmNkODMxN2VjNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViVmlld1Nlc3Npb25TdGF0ZS5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViVmlld1Nlc3Np
b25TdGF0ZS5jcHAKQEAgLTE2Miw3ICsxNjIsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgZW5jb2Rl
RnJhbWVTdGF0ZShHVmFyaWFudEJ1aWxkZXIqIHNlc3Npb25CdWlsZGVyLCBjb25zdCBGcmFtZQog
ICAgIGdfdmFyaWFudF9idWlsZGVyX2FkZChzZXNzaW9uQnVpbGRlciwgInMiLCBmcmFtZVN0YXRl
LnJlZmVycmVyLnV0ZjgoKS5kYXRhKCkpOwogICAgIGdfdmFyaWFudF9idWlsZGVyX2FkZChzZXNz
aW9uQnVpbGRlciwgInMiLCBmcmFtZVN0YXRlLnRhcmdldC51dGY4KCkuZGF0YSgpKTsKICAgICBn
X3ZhcmlhbnRfYnVpbGRlcl9vcGVuKHNlc3Npb25CdWlsZGVyLCBHX1ZBUklBTlRfVFlQRSgiYXMi
KSk7Ci0gICAgZm9yIChjb25zdCBhdXRvJiBzdGF0ZSA6IGZyYW1lU3RhdGUuZG9jdW1lbnRTdGF0
ZSkKKyAgICBmb3IgKGNvbnN0IGF1dG8mIHN0YXRlIDogZnJhbWVTdGF0ZS5kb2N1bWVudFN0YXRl
KCkpCiAgICAgICAgIGdfdmFyaWFudF9idWlsZGVyX2FkZChzZXNzaW9uQnVpbGRlciwgInMiLCBz
dGF0ZS51dGY4KCkuZGF0YSgpKTsKICAgICBnX3ZhcmlhbnRfYnVpbGRlcl9jbG9zZShzZXNzaW9u
QnVpbGRlcik7CiAgICAgaWYgKCFmcmFtZVN0YXRlLnN0YXRlT2JqZWN0RGF0YSkKQEAgLTMwNSwx
MCArMzA1LDEzIEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBkZWNvZGVGcmFtZVN0YXRlKEdWYXJpYW50
KiBmcmFtZVN0YXRlVmFyaWFudCwgRnJhbWVTdGF0ZSYgZnJhCiAgICAgICAgIGZyYW1lU3RhdGUu
cmVmZXJyZXIgPSBTdHJpbmc6OmZyb21VVEY4KHJlZmVycmVyKTsKICAgICBmcmFtZVN0YXRlLnRh
cmdldCA9IFN0cmluZzo6ZnJvbVVURjgodGFyZ2V0KTsKICAgICBpZiAoZ3NpemUgZG9jdW1lbnRT
dGF0ZUxlbmd0aCA9IGdfdmFyaWFudF9pdGVyX25fY2hpbGRyZW4oZG9jdW1lbnRTdGF0ZUl0ZXIu
Z2V0KCkpKSB7CisgICAgICAgIFZlY3RvcjxTdHJpbmc+IGRvY3VtZW50U3RhdGU7CisgICAgICAg
IGRvY3VtZW50U3RhdGUucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShkb2N1bWVudFN0YXRlTGVuZ3Ro
KTsKICAgICAgICAgZnJhbWVTdGF0ZS5kb2N1bWVudFN0YXRlLnJlc2VydmVJbml0aWFsQ2FwYWNp
dHkoZG9jdW1lbnRTdGF0ZUxlbmd0aCk7CiAgICAgICAgIGNvbnN0IGNoYXIqIGRvY3VtZW50U3Rh
dGVTdHJpbmc7CiAgICAgICAgIHdoaWxlIChnX3ZhcmlhbnRfaXRlcl9uZXh0KGRvY3VtZW50U3Rh
dGVJdGVyLmdldCgpLCAiJnMiLCAmZG9jdW1lbnRTdGF0ZVN0cmluZykpCi0gICAgICAgICAgICBm
cmFtZVN0YXRlLmRvY3VtZW50U3RhdGUudW5jaGVja2VkQXBwZW5kKFN0cmluZzo6ZnJvbVVURjgo
ZG9jdW1lbnRTdGF0ZVN0cmluZykpOworICAgICAgICAgICAgZG9jdW1lbnRTdGF0ZS51bmNoZWNr
ZWRBcHBlbmQoU3RyaW5nOjpmcm9tVVRGOChkb2N1bWVudFN0YXRlU3RyaW5nKSk7CisgICAgICAg
IGZyYW1lU3RhdGUuc2V0RG9jdW1lbnRTdGF0ZShkb2N1bWVudFN0YXRlKTsKICAgICB9CiAgICAg
aWYgKHN0YXRlT2JqZWN0RGF0YUl0ZXIpIHsKICAgICAgICAgVmVjdG9yPHVpbnQ4X3Q+IHN0YXRl
T2JqZWN0VmVjdG9yOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2Ev
U2Vzc2lvblN0YXRlQ29kaW5nLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9TZXNz
aW9uU3RhdGVDb2RpbmcuaAppbmRleCA1NmQ3YzQyYmJlNzQxODc0MTdjMzVhMTliYWNiYWM4ZDkx
ZGMwZjU1Li5mNGIzMWRiNGQ2MTUzOGZiZWMxMmI5MWI2M2JhMTViYzM3NjFjMjQ4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9TZXNzaW9uU3RhdGVDb2RpbmcuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9TZXNzaW9uU3RhdGVDb2RpbmcuaApA
QCAtMzAsNyArMzAsNyBAQAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotc3RydWN0IEZyYW1lU3Rh
dGU7CitjbGFzcyBGcmFtZVN0YXRlOwogc3RydWN0IFNlc3Npb25TdGF0ZTsKIAogUmV0YWluUHRy
PE5TRGF0YT4gZW5jb2RlU2Vzc2lvblN0YXRlKGNvbnN0IFNlc3Npb25TdGF0ZSYpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTGVnYWN5U2Vzc2lvblN0YXRlQ29kaW5nLmgg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9MZWdhY3lTZXNzaW9uU3RhdGVDb2RpbmcuaAppbmRl
eCAxN2ViYzRkYWI0YzlmZWU5MTk3ODM2NjM5NTBlZjhkOWUxNzlmOWYwLi40OGQwYWZiMTY2ZjU4
M2Y3Yjk5ZmJhNzI2ZGQ0NGEzODBmZjBkODIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9MZWdhY3lTZXNzaW9uU3RhdGVDb2RpbmcuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9MZWdhY3lTZXNzaW9uU3RhdGVDb2RpbmcuaApAQCAtMzQsNyArMzQsNyBAQCBjbGFz
cyBEYXRhOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotc3RydWN0IEZyYW1lU3RhdGU7CitjbGFz
cyBGcmFtZVN0YXRlOwogc3RydWN0IFNlc3Npb25TdGF0ZTsKIAogUmVmUHRyPEFQSTo6RGF0YT4g
ZW5jb2RlTGVnYWN5U2Vzc2lvblN0YXRlKGNvbnN0IFNlc3Npb25TdGF0ZSYpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL0xlZ2FjeVNlc3Npb25TdGF0ZUNvZGluZy5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvTGVnYWN5U2Vzc2lvblN0YXRlQ29kaW5n
LmNwcAppbmRleCA4ODVkM2Y3YTJkNzUxYWRiOThmODQzN2YwMTAwZjE4MTYyZTFmN2YxLi44Yjcw
NDM5ODNkNzNiNWM4Y2RkMWYxY2NmNmZjYjc3YTk1ZjhjNWQ4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9tYWMvTGVnYWN5U2Vzc2lvblN0YXRlQ29kaW5nLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvTGVnYWN5U2Vzc2lvblN0YXRlQ29kaW5nLmNwcApA
QCAtMzIzLDkgKzMyMyw3IEBAIHN0YXRpYyB2b2lkIGVuY29kZUZyYW1lU3RhdGVOb2RlKEhpc3Rv
cnlFbnRyeURhdGFFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBGcmFtZVN0CiB7CiAgICAgZW5jb2Rl
ciA8PCBzdGF0aWNfY2FzdDx1aW50NjRfdD4oZnJhbWVTdGF0ZS5jaGlsZHJlbi5zaXplKCkpOwog
Ci0gICAgUkVMRUFTRV9BU1NFUlQoIWZyYW1lU3RhdGUuaXNEZXN0cnVjdGVkKTsKICAgICBmb3Ig
KGNvbnN0IGF1dG8mIGNoaWxkRnJhbWVTdGF0ZSA6IGZyYW1lU3RhdGUuY2hpbGRyZW4pIHsKLSAg
ICAgICAgUkVMRUFTRV9BU1NFUlQoIWNoaWxkRnJhbWVTdGF0ZS5pc0Rlc3RydWN0ZWQpOwogICAg
ICAgICBlbmNvZGVyIDw8IGNoaWxkRnJhbWVTdGF0ZS5vcmlnaW5hbFVSTFN0cmluZzsKICAgICAg
ICAgZW5jb2RlciA8PCBjaGlsZEZyYW1lU3RhdGUudXJsU3RyaW5nOwogCkBAIC0zMzQsOCArMzMy
LDkgQEAgc3RhdGljIHZvaWQgZW5jb2RlRnJhbWVTdGF0ZU5vZGUoSGlzdG9yeUVudHJ5RGF0YUVu
Y29kZXImIGVuY29kZXIsIGNvbnN0IEZyYW1lU3QKIAogICAgIGVuY29kZXIgPDwgZnJhbWVTdGF0
ZS5kb2N1bWVudFNlcXVlbmNlTnVtYmVyOwogCi0gICAgZW5jb2RlciA8PCBzdGF0aWNfY2FzdDx1
aW50NjRfdD4oZnJhbWVTdGF0ZS5kb2N1bWVudFN0YXRlLnNpemUoKSk7Ci0gICAgZm9yIChjb25z
dCBhdXRvJiBkb2N1bWVudFN0YXRlIDogZnJhbWVTdGF0ZS5kb2N1bWVudFN0YXRlKQorICAgIGZy
YW1lU3RhdGUudmFsaWRhdGVEb2N1bWVudFN0YXRlKCk7CisgICAgZW5jb2RlciA8PCBzdGF0aWNf
Y2FzdDx1aW50NjRfdD4oZnJhbWVTdGF0ZS5kb2N1bWVudFN0YXRlKCkuc2l6ZSgpKTsKKyAgICBm
b3IgKGNvbnN0IGF1dG8mIGRvY3VtZW50U3RhdGUgOiBmcmFtZVN0YXRlLmRvY3VtZW50U3RhdGUo
KSkKICAgICAgICAgZW5jb2RlciA8PCBkb2N1bWVudFN0YXRlOwogCiAgICAgaWYgKGZyYW1lU3Rh
dGUuaHR0cEJvZHkpIHsKQEAgLTg5OSwxNSArODk4LDE5IEBAIHN0YXRpYyB2b2lkIGRlY29kZUJh
Y2tGb3J3YXJkVHJlZU5vZGUoSGlzdG9yeUVudHJ5RGF0YURlY29kZXImIGRlY29kZXIsIEZyYW1l
U3RhCiAgICAgdWludDY0X3QgZG9jdW1lbnRTdGF0ZVZlY3RvclNpemU7CiAgICAgZGVjb2RlciA+
PiBkb2N1bWVudFN0YXRlVmVjdG9yU2l6ZTsKIAorICAgIFZlY3RvcjxTdHJpbmc+IGRvY3VtZW50
U3RhdGU7CiAgICAgZm9yICh1aW50NjRfdCBpID0gMDsgaSA8IGRvY3VtZW50U3RhdGVWZWN0b3JT
aXplOyArK2kpIHsKICAgICAgICAgU3RyaW5nIHN0YXRlOwogICAgICAgICBkZWNvZGVyID4+IHN0
YXRlOwogCi0gICAgICAgIGlmICghZGVjb2Rlci5pc1ZhbGlkKCkpCisgICAgICAgIGlmICghZGVj
b2Rlci5pc1ZhbGlkKCkpIHsKKyAgICAgICAgICAgIGZyYW1lU3RhdGUuc2V0RG9jdW1lbnRTdGF0
ZShkb2N1bWVudFN0YXRlLCBGcmFtZVN0YXRlOjpTaG91bGRWYWxpZGF0ZTo6WWVzKTsKICAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgfQogCi0gICAgICAgIGZyYW1lU3RhdGUuZG9jdW1lbnRT
dGF0ZS5hcHBlbmQoV1RGTW92ZShzdGF0ZSkpOworICAgICAgICBkb2N1bWVudFN0YXRlLmFwcGVu
ZChXVEZNb3ZlKHN0YXRlKSk7CiAgICAgfQorICAgIGZyYW1lU3RhdGUuc2V0RG9jdW1lbnRTdGF0
ZShkb2N1bWVudFN0YXRlLCBGcmFtZVN0YXRlOjpTaG91bGRWYWxpZGF0ZTo6WWVzKTsKIAogICAg
IFN0cmluZyBmb3JtQ29udGVudFR5cGU7CiAgICAgZGVjb2RlciA+PiBmb3JtQ29udGVudFR5cGU7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvU2Vz
c2lvblN0YXRlQ29udmVyc2lvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvU2Vzc2lvblN0YXRlQ29udmVyc2lvbi5jcHAKaW5kZXggMDI2OTVkM2ViODlmNWU2
NDA5Mzg0MTQyNDllN2Y1YzlmODJhYzQxMC4uZDVlMjBmNDExN2FhNTFlYzZiYjcxM2YxNjA3N2Fj
ZjFkYmUyYWJjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1Nlc3Npb25TdGF0ZUNvbnZlcnNpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9TZXNzaW9uU3RhdGVDb252ZXJzaW9uLmNwcApAQCAtNzIs
NyArNzIsNyBAQCBzdGF0aWMgRnJhbWVTdGF0ZSB0b0ZyYW1lU3RhdGUoY29uc3QgSGlzdG9yeUl0
ZW0mIGhpc3RvcnlJdGVtKQogICAgIGZyYW1lU3RhdGUucmVmZXJyZXIgPSBoaXN0b3J5SXRlbS5y
ZWZlcnJlcigpOwogICAgIGZyYW1lU3RhdGUudGFyZ2V0ID0gaGlzdG9yeUl0ZW0udGFyZ2V0KCk7
CiAKLSAgICBmcmFtZVN0YXRlLmRvY3VtZW50U3RhdGUgPSBoaXN0b3J5SXRlbS5kb2N1bWVudFN0
YXRlKCk7CisgICAgZnJhbWVTdGF0ZS5zZXREb2N1bWVudFN0YXRlKGhpc3RvcnlJdGVtLmRvY3Vt
ZW50U3RhdGUoKSk7CiAgICAgaWYgKFJlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IHN0YXRl
T2JqZWN0ID0gaGlzdG9yeUl0ZW0uc3RhdGVPYmplY3QoKSkKICAgICAgICAgZnJhbWVTdGF0ZS5z
dGF0ZU9iamVjdERhdGEgPSBzdGF0ZU9iamVjdC0+ZGF0YSgpOwogCkBAIC0xNDgsNyArMTQ4LDcg
QEAgc3RhdGljIHZvaWQgYXBwbHlGcmFtZVN0YXRlKEhpc3RvcnlJdGVtJiBoaXN0b3J5SXRlbSwg
Y29uc3QgRnJhbWVTdGF0ZSYgZnJhbWVTdGEKICAgICBoaXN0b3J5SXRlbS5zZXRSZWZlcnJlcihm
cmFtZVN0YXRlLnJlZmVycmVyKTsKICAgICBoaXN0b3J5SXRlbS5zZXRUYXJnZXQoZnJhbWVTdGF0
ZS50YXJnZXQpOwogCi0gICAgaGlzdG9yeUl0ZW0uc2V0RG9jdW1lbnRTdGF0ZShmcmFtZVN0YXRl
LmRvY3VtZW50U3RhdGUpOworICAgIGhpc3RvcnlJdGVtLnNldERvY3VtZW50U3RhdGUoZnJhbWVT
dGF0ZS5kb2N1bWVudFN0YXRlKCkpOwogCiAgICAgaWYgKGZyYW1lU3RhdGUuc3RhdGVPYmplY3RE
YXRhKSB7CiAgICAgICAgIFZlY3Rvcjx1aW50OF90PiBzdGF0ZU9iamVjdERhdGEgPSBmcmFtZVN0
YXRlLnN0YXRlT2JqZWN0RGF0YS52YWx1ZSgpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>421984</attachid>
            <date>2021-03-02 13:21:18 -0800</date>
            <delta_ts>2021-03-02 15:16:58 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222587-20210302132117.patch</filename>
            <type>text/plain</type>
            <size>11430</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjczNzMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGYyNDJjYjI0ZDliODUxOWMz
NTY1M2U0MWM4MTg2YWQxYWFiYmNhY2UuLmRiNjA2NmUwODA4MTEwOTZhZjBkNjM4YTZmMDBjNDA2
OTEyN2VhN2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzYgQEAKKzIwMjEtMDMtMDIgIFNpaHVpIExp
dSAgPHNpaHVpX2xpdUBhcHBlLmNvbT4KKworICAgICAgICBWYWxpZGF0ZSBkb2N1bWVudFN0YXRl
IG9mIEZyYW1lU3RhdGUgd2hlbiBzZXR0aW5nIGFuZCBnZXR0aW5nIGl0CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjI1ODcKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICByZGFyOi8vNDg2MzQ1NTMgc2hvd2Vk
IHVzIHN0cmluZ3Mgb2YgZG9jdW1lbnRTdGF0ZSBjYW4gYmUgaW52YWxpZCB3aGVuIHRoZXkgYXJl
IGVuY29kZWQgaW4gZW5jb2RlRnJhbWVTdGF0ZU5vZGUKKyAgICAgICAgaW4gVUkgcHJvY2Vzcy4g
VG8gZ2V0IGEgYmV0dGVyIGlkZWEgb2Ygd2hlbiB0aGUgc3RyaW5ncyBiZWNvbWUgaW52YWxpZCwg
YWRkIGNoZWNrcyBmb3IgZG9jdW1lbnRTdGF0ZSB3aGVuIAorICAgICAgICBnZXR0aW5nIGFuZCBz
ZXR0aW5nIGl0LgorCisgICAgICAgIE5vIHRlc3QgYXMgbm8gYmVoYXZpb3IgY2hhbmdlLgorCisg
ICAgICAgICogU2hhcmVkL1Nlc3Npb25TdGF0ZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkZyYW1l
U3RhdGU6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OkZyYW1lU3RhdGU6OmRlY29k
ZSk6CisgICAgICAgIChXZWJLaXQ6OkZyYW1lU3RhdGU6OnZhbGlkYXRlRG9jdW1lbnRTdGF0ZSBj
b25zdCk6CisgICAgICAgIChXZWJLaXQ6OkZyYW1lU3RhdGU6OnNldERvY3VtZW50U3RhdGUpOgor
ICAgICAgICAqIFNoYXJlZC9TZXNzaW9uU3RhdGUuaDoKKyAgICAgICAgKFdlYktpdDo6RnJhbWVT
dGF0ZTo6fkZyYW1lU3RhdGUpOgorICAgICAgICAoV2ViS2l0OjpGcmFtZVN0YXRlOjpkb2N1bWVu
dFN0YXRlIGNvbnN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViVmll
d1Nlc3Npb25TdGF0ZS5jcHA6CisgICAgICAgIChlbmNvZGVGcmFtZVN0YXRlKToKKyAgICAgICAg
KGRlY29kZUZyYW1lU3RhdGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9TZXNzaW9uU3Rh
dGVDb2RpbmcuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvTGVnYWN5U2Vzc2lvblN0YXRlQ29kaW5n
Lmg6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9MZWdhY3lTZXNzaW9uU3RhdGVDb2RpbmcuY3Bw
OgorICAgICAgICAoV2ViS2l0OjplbmNvZGVGcmFtZVN0YXRlTm9kZSk6CisgICAgICAgIChXZWJL
aXQ6OmRlY29kZUJhY2tGb3J3YXJkVHJlZU5vZGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvU2Vzc2lvblN0YXRlQ29udmVyc2lvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6
OnRvRnJhbWVTdGF0ZSk6CisgICAgICAgIChXZWJLaXQ6OmFwcGx5RnJhbWVTdGF0ZSk6CisKIDIw
MjEtMDMtMDIgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIFVz
ZSBjYXB0dXJlIHNldHRpbmdzIGFmdGVyIHJlY292ZXJpbmcgY2FwdHVyZSBmcm9tIEdQVVByb2Nl
c3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1Nlc3Npb25TdGF0ZS5jcHAgYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9TZXNzaW9uU3RhdGUuY3BwCmluZGV4IDJlY2M0ZjFmZDgzYTJh
YmY1YWUzY2VmOTE1MTIzZWUyMjhlMjcyNTcuLjRjMzUzNzM1NmNiNmJiZDdlMzZmZjc0ZmZmMjk2
NmY5ZDhmYjM5MWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1Nlc3Npb25TdGF0
ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvU2Vzc2lvblN0YXRlLmNwcApAQCAtMTEw
LDcgKzExMCw3IEBAIHZvaWQgRnJhbWVTdGF0ZTo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2Rl
cikgY29uc3QKICAgICBlbmNvZGVyIDw8IHJlZmVycmVyOwogICAgIGVuY29kZXIgPDwgdGFyZ2V0
OwogCi0gICAgZW5jb2RlciA8PCBkb2N1bWVudFN0YXRlOworICAgIGVuY29kZXIgPDwgbV9kb2N1
bWVudFN0YXRlOwogICAgIGVuY29kZXIgPDwgc3RhdGVPYmplY3REYXRhOwogCiAgICAgZW5jb2Rl
ciA8PCBkb2N1bWVudFNlcXVlbmNlTnVtYmVyOwpAQCAtMTQ2LDggKzE0NiwxMCBAQCBPcHRpb25h
bDxGcmFtZVN0YXRlPiBGcmFtZVN0YXRlOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyKQog
ICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LnRhcmdldCkpCiAgICAgICAgIHJldHVybiBX
VEY6Om51bGxvcHQ7CiAKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5kb2N1bWVudFN0
YXRlKSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5tX2RvY3VtZW50U3RhdGUpKQog
ICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworICAgIHJlc3VsdC52YWxpZGF0ZURvY3VtZW50
U3RhdGUoKTsKKwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LnN0YXRlT2JqZWN0RGF0
YSkpCiAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAKQEAgLTI3MCw0ICsyNzIsMzEgQEAg
T3B0aW9uYWw8QmFja0ZvcndhcmRMaXN0U3RhdGU+IEJhY2tGb3J3YXJkTGlzdFN0YXRlOjpkZWNv
ZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGUKICAgICByZXR1cm4ge3sgV1RGTW92ZSgqaXRlbXMpLCBX
VEZNb3ZlKGN1cnJlbnRJbmRleCkgfX07CiB9CiAKK3ZvaWQgRnJhbWVTdGF0ZTo6dmFsaWRhdGVE
b2N1bWVudFN0YXRlKCkgY29uc3QKK3sKKyAgICBSRUxFQVNFX0FTU0VSVCghbV9pc0Rlc3RydWN0
ZWQpOworICAgIGZvciAoYXV0byYgc3RhdGVTdHJpbmcgOiBtX2RvY3VtZW50U3RhdGUpIHsKKyAg
ICAgICAgaWYgKHN0YXRlU3RyaW5nLmlzTnVsbCgpKQorICAgICAgICAgICAgY29udGludWU7CisK
KyAgICAgICAgaWYgKCFzdGF0ZVN0cmluZy5pczhCaXQoKSkKKyAgICAgICAgICAgIGNvbnRpbnVl
OworCisgICAgICAgIC8vIHJkYXI6Ly80ODYzNDU1MyBpbmRpY2F0ZXMgOEJpdCBzdHJpbmcgY2Fu
IGJlIGludmFsaWQuCisgICAgICAgIGNvbnN0IExDaGFyKiBjaGFyYWN0ZXJzOCA9IHN0YXRlU3Ry
aW5nLmNoYXJhY3RlcnM4KCk7CisgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBzdGF0
ZVN0cmluZy5sZW5ndGgoKTsgKytpKSB7CisgICAgICAgICAgICBhdXRvIGNoYXJhY3RlciA9IGNo
YXJhY3RlcnM4W2ldOworICAgICAgICAgICAgVU5VU0VEX1BBUkFNKGNoYXJhY3Rlcik7CisgICAg
ICAgIH0KKyAgICB9Cit9CisKK3ZvaWQgRnJhbWVTdGF0ZTo6c2V0RG9jdW1lbnRTdGF0ZShjb25z
dCBWZWN0b3I8U3RyaW5nPiYgZG9jdW1lbnRTdGF0ZSwgU2hvdWxkVmFsaWRhdGUgc2hvdWxkVmFs
aWRhdGUpCit7CisgICAgbV9kb2N1bWVudFN0YXRlID0gZG9jdW1lbnRTdGF0ZTsKKworICAgIGlm
IChzaG91bGRWYWxpZGF0ZSA9PSBTaG91bGRWYWxpZGF0ZTo6WWVzKQorICAgICAgICB2YWxpZGF0
ZURvY3VtZW50U3RhdGUoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9TZXNzaW9uU3RhdGUuaCBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1Nlc3Npb25TdGF0ZS5oCmluZGV4IDA1Nzc4NmZiMDI0MTMwNzhhYjY2MDBjNTc1YjJhMmVm
MzM3ZDY5ODcuLmQ5YTZhMzBhODRkMTU5ZGU1NzkwZWI1MjE5ZjNmYzM3YTQyOGI0NGIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1Nlc3Npb25TdGF0ZS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1Nlc3Npb25TdGF0ZS5oCkBAIC04MCwxNiArODAsMjMgQEAgc3RydWN0IEhU
VFBCb2R5IHsKICAgICBWZWN0b3I8RWxlbWVudD4gZWxlbWVudHM7CiB9OwogCi1zdHJ1Y3QgRnJh
bWVTdGF0ZSB7CitjbGFzcyBGcmFtZVN0YXRlIHsKK3B1YmxpYzoKICAgICB2b2lkIGVuY29kZShJ
UEM6OkVuY29kZXImKSBjb25zdDsKICAgICBzdGF0aWMgT3B0aW9uYWw8RnJhbWVTdGF0ZT4gZGVj
b2RlKElQQzo6RGVjb2RlciYpOwogCisgICAgLy8gVGhlc2UgYXJlIHVzZWQgdG8gaGVscCBkZWJ1
ZyA8cmRhcjovL3Byb2JsZW0vNDg2MzQ1NTM+LgorICAgIH5GcmFtZVN0YXRlKCkgeyBtX2lzRGVz
dHJ1Y3RlZCA9IHRydWU7IH0KKyAgICBjb25zdCBWZWN0b3I8U3RyaW5nPiYgZG9jdW1lbnRTdGF0
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fZG9jdW1lbnRTdGF0ZTsgfQorICAgIGVudW0gY2xhc3MgU2hv
dWxkVmFsaWRhdGUgOiBib29sIHsgTm8sIFllcyB9OworICAgIHZvaWQgc2V0RG9jdW1lbnRTdGF0
ZShjb25zdCBWZWN0b3I8U3RyaW5nPiYsIFNob3VsZFZhbGlkYXRlID0gU2hvdWxkVmFsaWRhdGU6
Ok5vKTsKKyAgICB2b2lkIHZhbGlkYXRlRG9jdW1lbnRTdGF0ZSgpIGNvbnN0OworCiAgICAgU3Ry
aW5nIHVybFN0cmluZzsKICAgICBTdHJpbmcgb3JpZ2luYWxVUkxTdHJpbmc7CiAgICAgU3RyaW5n
IHJlZmVycmVyOwogICAgIFN0cmluZyB0YXJnZXQ7CiAKLSAgICBWZWN0b3I8U3RyaW5nPiBkb2N1
bWVudFN0YXRlOwogICAgIE9wdGlvbmFsPFZlY3Rvcjx1aW50OF90Pj4gc3RhdGVPYmplY3REYXRh
OwogCiAgICAgaW50NjRfdCBkb2N1bWVudFNlcXVlbmNlTnVtYmVyIHsgMCB9OwpAQCAtMTEzLDkg
KzEyMCw5IEBAIHN0cnVjdCBGcmFtZVN0YXRlIHsKIAogICAgIFZlY3RvcjxGcmFtZVN0YXRlPiBj
aGlsZHJlbjsKIAotICAgIC8vIFRoaXMgaXMgb25seSB1c2VkIHRvIGhlbHAgZGVidWcgPHJkYXI6
Ly9wcm9ibGVtLzQ4NjM0NTUzPi4KLSAgICBib29sIGlzRGVzdHJ1Y3RlZCB7IGZhbHNlIH07Ci0g
ICAgfkZyYW1lU3RhdGUoKSB7IGlzRGVzdHJ1Y3RlZCA9IHRydWU7IH0KK3ByaXZhdGU6CisgICAg
Ym9vbCBtX2lzRGVzdHJ1Y3RlZCB7IGZhbHNlIH07CisgICAgVmVjdG9yPFN0cmluZz4gbV9kb2N1
bWVudFN0YXRlOwogfTsKIAogc3RydWN0IFBhZ2VTdGF0ZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJWaWV3U2Vzc2lvblN0YXRlLmNwcCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYlZpZXdTZXNzaW9uU3Rh
dGUuY3BwCmluZGV4IDg1ZjIzZWI1NGQ2YzAyN2FiMTM3ZDFhZWJlNmFlZTk0MmE3MzFiOGEuLmIy
ZGU1YTJmMDNlYTFhYmU5YWFhMjVmNGM4YThhOTE5ZmQ2MjMyOWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYlZpZXdTZXNzaW9uU3RhdGUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYlZpZXdTZXNz
aW9uU3RhdGUuY3BwCkBAIC0xNjIsNyArMTYyLDcgQEAgc3RhdGljIGlubGluZSB2b2lkIGVuY29k
ZUZyYW1lU3RhdGUoR1ZhcmlhbnRCdWlsZGVyKiBzZXNzaW9uQnVpbGRlciwgY29uc3QgRnJhbWUK
ICAgICBnX3ZhcmlhbnRfYnVpbGRlcl9hZGQoc2Vzc2lvbkJ1aWxkZXIsICJzIiwgZnJhbWVTdGF0
ZS5yZWZlcnJlci51dGY4KCkuZGF0YSgpKTsKICAgICBnX3ZhcmlhbnRfYnVpbGRlcl9hZGQoc2Vz
c2lvbkJ1aWxkZXIsICJzIiwgZnJhbWVTdGF0ZS50YXJnZXQudXRmOCgpLmRhdGEoKSk7CiAgICAg
Z192YXJpYW50X2J1aWxkZXJfb3BlbihzZXNzaW9uQnVpbGRlciwgR19WQVJJQU5UX1RZUEUoImFz
IikpOwotICAgIGZvciAoY29uc3QgYXV0byYgc3RhdGUgOiBmcmFtZVN0YXRlLmRvY3VtZW50U3Rh
dGUpCisgICAgZm9yIChjb25zdCBhdXRvJiBzdGF0ZSA6IGZyYW1lU3RhdGUuZG9jdW1lbnRTdGF0
ZSgpKQogICAgICAgICBnX3ZhcmlhbnRfYnVpbGRlcl9hZGQoc2Vzc2lvbkJ1aWxkZXIsICJzIiwg
c3RhdGUudXRmOCgpLmRhdGEoKSk7CiAgICAgZ192YXJpYW50X2J1aWxkZXJfY2xvc2Uoc2Vzc2lv
bkJ1aWxkZXIpOwogICAgIGlmICghZnJhbWVTdGF0ZS5zdGF0ZU9iamVjdERhdGEpCkBAIC0zMDUs
MTAgKzMwNSwxMiBAQCBzdGF0aWMgaW5saW5lIHZvaWQgZGVjb2RlRnJhbWVTdGF0ZShHVmFyaWFu
dCogZnJhbWVTdGF0ZVZhcmlhbnQsIEZyYW1lU3RhdGUmIGZyYQogICAgICAgICBmcmFtZVN0YXRl
LnJlZmVycmVyID0gU3RyaW5nOjpmcm9tVVRGOChyZWZlcnJlcik7CiAgICAgZnJhbWVTdGF0ZS50
YXJnZXQgPSBTdHJpbmc6OmZyb21VVEY4KHRhcmdldCk7CiAgICAgaWYgKGdzaXplIGRvY3VtZW50
U3RhdGVMZW5ndGggPSBnX3ZhcmlhbnRfaXRlcl9uX2NoaWxkcmVuKGRvY3VtZW50U3RhdGVJdGVy
LmdldCgpKSkgewotICAgICAgICBmcmFtZVN0YXRlLmRvY3VtZW50U3RhdGUucmVzZXJ2ZUluaXRp
YWxDYXBhY2l0eShkb2N1bWVudFN0YXRlTGVuZ3RoKTsKKyAgICAgICAgVmVjdG9yPFN0cmluZz4g
ZG9jdW1lbnRTdGF0ZTsKKyAgICAgICAgZG9jdW1lbnRTdGF0ZS5yZXNlcnZlSW5pdGlhbENhcGFj
aXR5KGRvY3VtZW50U3RhdGVMZW5ndGgpOwogICAgICAgICBjb25zdCBjaGFyKiBkb2N1bWVudFN0
YXRlU3RyaW5nOwogICAgICAgICB3aGlsZSAoZ192YXJpYW50X2l0ZXJfbmV4dChkb2N1bWVudFN0
YXRlSXRlci5nZXQoKSwgIiZzIiwgJmRvY3VtZW50U3RhdGVTdHJpbmcpKQotICAgICAgICAgICAg
ZnJhbWVTdGF0ZS5kb2N1bWVudFN0YXRlLnVuY2hlY2tlZEFwcGVuZChTdHJpbmc6OmZyb21VVEY4
KGRvY3VtZW50U3RhdGVTdHJpbmcpKTsKKyAgICAgICAgICAgIGRvY3VtZW50U3RhdGUudW5jaGVj
a2VkQXBwZW5kKFN0cmluZzo6ZnJvbVVURjgoZG9jdW1lbnRTdGF0ZVN0cmluZykpOworICAgICAg
ICBmcmFtZVN0YXRlLnNldERvY3VtZW50U3RhdGUoZG9jdW1lbnRTdGF0ZSk7CiAgICAgfQogICAg
IGlmIChzdGF0ZU9iamVjdERhdGFJdGVyKSB7CiAgICAgICAgIFZlY3Rvcjx1aW50OF90PiBzdGF0
ZU9iamVjdFZlY3RvcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29h
L1Nlc3Npb25TdGF0ZUNvZGluZy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvU2Vz
c2lvblN0YXRlQ29kaW5nLmgKaW5kZXggNTZkN2M0MmJiZTc0MTg3NDE3YzM1YTE5YmFjYmFjOGQ5
MWRjMGY1NS4uZjRiMzFkYjRkNjE1MzhmYmVjMTJiOTFiNjNiYTE1YmMzNzYxYzI0OCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvU2Vzc2lvblN0YXRlQ29kaW5nLmgK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvU2Vzc2lvblN0YXRlQ29kaW5nLmgK
QEAgLTMwLDcgKzMwLDcgQEAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLXN0cnVjdCBGcmFtZVN0
YXRlOworY2xhc3MgRnJhbWVTdGF0ZTsKIHN0cnVjdCBTZXNzaW9uU3RhdGU7CiAKIFJldGFpblB0
cjxOU0RhdGE+IGVuY29kZVNlc3Npb25TdGF0ZShjb25zdCBTZXNzaW9uU3RhdGUmKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0xlZ2FjeVNlc3Npb25TdGF0ZUNvZGluZy5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTGVnYWN5U2Vzc2lvblN0YXRlQ29kaW5nLmgKaW5k
ZXggMTdlYmM0ZGFiNGM5ZmVlOTE5NzgzNjYzOTUwZWY4ZDllMTc5ZjlmMC4uNDhkMGFmYjE2NmY1
ODNmN2I5OWZiYTcyNmRkNDRhMzgwZmYwZDgyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvTGVnYWN5U2Vzc2lvblN0YXRlQ29kaW5nLmgKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvTGVnYWN5U2Vzc2lvblN0YXRlQ29kaW5nLmgKQEAgLTM0LDcgKzM0LDcgQEAgY2xh
c3MgRGF0YTsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLXN0cnVjdCBGcmFtZVN0YXRlOworY2xh
c3MgRnJhbWVTdGF0ZTsKIHN0cnVjdCBTZXNzaW9uU3RhdGU7CiAKIFJlZlB0cjxBUEk6OkRhdGE+
IGVuY29kZUxlZ2FjeVNlc3Npb25TdGF0ZShjb25zdCBTZXNzaW9uU3RhdGUmKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9MZWdhY3lTZXNzaW9uU3RhdGVDb2Rpbmcu
Y3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL0xlZ2FjeVNlc3Npb25TdGF0ZUNvZGlu
Zy5jcHAKaW5kZXggODg1ZDNmN2EyZDc1MWFkYjk4Zjg0MzdmMDEwMGYxODE2MmUxZjdmMS4uOGI3
MDQzOTgzZDczYjVjOGNkZDFmMWNjZjZmY2I3N2E5NWY4YzVkOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvbWFjL0xlZ2FjeVNlc3Npb25TdGF0ZUNvZGluZy5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL0xlZ2FjeVNlc3Npb25TdGF0ZUNvZGluZy5jcHAK
QEAgLTMyMyw5ICszMjMsNyBAQCBzdGF0aWMgdm9pZCBlbmNvZGVGcmFtZVN0YXRlTm9kZShIaXN0
b3J5RW50cnlEYXRhRW5jb2RlciYgZW5jb2RlciwgY29uc3QgRnJhbWVTdAogewogICAgIGVuY29k
ZXIgPDwgc3RhdGljX2Nhc3Q8dWludDY0X3Q+KGZyYW1lU3RhdGUuY2hpbGRyZW4uc2l6ZSgpKTsK
IAotICAgIFJFTEVBU0VfQVNTRVJUKCFmcmFtZVN0YXRlLmlzRGVzdHJ1Y3RlZCk7CiAgICAgZm9y
IChjb25zdCBhdXRvJiBjaGlsZEZyYW1lU3RhdGUgOiBmcmFtZVN0YXRlLmNoaWxkcmVuKSB7Ci0g
ICAgICAgIFJFTEVBU0VfQVNTRVJUKCFjaGlsZEZyYW1lU3RhdGUuaXNEZXN0cnVjdGVkKTsKICAg
ICAgICAgZW5jb2RlciA8PCBjaGlsZEZyYW1lU3RhdGUub3JpZ2luYWxVUkxTdHJpbmc7CiAgICAg
ICAgIGVuY29kZXIgPDwgY2hpbGRGcmFtZVN0YXRlLnVybFN0cmluZzsKIApAQCAtMzM0LDggKzMz
Miw5IEBAIHN0YXRpYyB2b2lkIGVuY29kZUZyYW1lU3RhdGVOb2RlKEhpc3RvcnlFbnRyeURhdGFF
bmNvZGVyJiBlbmNvZGVyLCBjb25zdCBGcmFtZVN0CiAKICAgICBlbmNvZGVyIDw8IGZyYW1lU3Rh
dGUuZG9jdW1lbnRTZXF1ZW5jZU51bWJlcjsKIAotICAgIGVuY29kZXIgPDwgc3RhdGljX2Nhc3Q8
dWludDY0X3Q+KGZyYW1lU3RhdGUuZG9jdW1lbnRTdGF0ZS5zaXplKCkpOwotICAgIGZvciAoY29u
c3QgYXV0byYgZG9jdW1lbnRTdGF0ZSA6IGZyYW1lU3RhdGUuZG9jdW1lbnRTdGF0ZSkKKyAgICBm
cmFtZVN0YXRlLnZhbGlkYXRlRG9jdW1lbnRTdGF0ZSgpOworICAgIGVuY29kZXIgPDwgc3RhdGlj
X2Nhc3Q8dWludDY0X3Q+KGZyYW1lU3RhdGUuZG9jdW1lbnRTdGF0ZSgpLnNpemUoKSk7CisgICAg
Zm9yIChjb25zdCBhdXRvJiBkb2N1bWVudFN0YXRlIDogZnJhbWVTdGF0ZS5kb2N1bWVudFN0YXRl
KCkpCiAgICAgICAgIGVuY29kZXIgPDwgZG9jdW1lbnRTdGF0ZTsKIAogICAgIGlmIChmcmFtZVN0
YXRlLmh0dHBCb2R5KSB7CkBAIC04OTksMTUgKzg5OCwxOSBAQCBzdGF0aWMgdm9pZCBkZWNvZGVC
YWNrRm9yd2FyZFRyZWVOb2RlKEhpc3RvcnlFbnRyeURhdGFEZWNvZGVyJiBkZWNvZGVyLCBGcmFt
ZVN0YQogICAgIHVpbnQ2NF90IGRvY3VtZW50U3RhdGVWZWN0b3JTaXplOwogICAgIGRlY29kZXIg
Pj4gZG9jdW1lbnRTdGF0ZVZlY3RvclNpemU7CiAKKyAgICBWZWN0b3I8U3RyaW5nPiBkb2N1bWVu
dFN0YXRlOwogICAgIGZvciAodWludDY0X3QgaSA9IDA7IGkgPCBkb2N1bWVudFN0YXRlVmVjdG9y
U2l6ZTsgKytpKSB7CiAgICAgICAgIFN0cmluZyBzdGF0ZTsKICAgICAgICAgZGVjb2RlciA+PiBz
dGF0ZTsKIAotICAgICAgICBpZiAoIWRlY29kZXIuaXNWYWxpZCgpKQorICAgICAgICBpZiAoIWRl
Y29kZXIuaXNWYWxpZCgpKSB7CisgICAgICAgICAgICBmcmFtZVN0YXRlLnNldERvY3VtZW50U3Rh
dGUoZG9jdW1lbnRTdGF0ZSwgRnJhbWVTdGF0ZTo6U2hvdWxkVmFsaWRhdGU6Olllcyk7CiAgICAg
ICAgICAgICByZXR1cm47CisgICAgICAgIH0KIAotICAgICAgICBmcmFtZVN0YXRlLmRvY3VtZW50
U3RhdGUuYXBwZW5kKFdURk1vdmUoc3RhdGUpKTsKKyAgICAgICAgZG9jdW1lbnRTdGF0ZS5hcHBl
bmQoV1RGTW92ZShzdGF0ZSkpOwogICAgIH0KKyAgICBmcmFtZVN0YXRlLnNldERvY3VtZW50U3Rh
dGUoZG9jdW1lbnRTdGF0ZSwgRnJhbWVTdGF0ZTo6U2hvdWxkVmFsaWRhdGU6Olllcyk7CiAKICAg
ICBTdHJpbmcgZm9ybUNvbnRlbnRUeXBlOwogICAgIGRlY29kZXIgPj4gZm9ybUNvbnRlbnRUeXBl
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1Nl
c3Npb25TdGF0ZUNvbnZlcnNpb24uY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1Nlc3Npb25TdGF0ZUNvbnZlcnNpb24uY3BwCmluZGV4IDAyNjk1ZDNlYjg5ZjVl
NjQwOTM4NDE0MjQ5ZTdmNWM5ZjgyYWM0MTAuLmQ1ZTIwZjQxMTdhYTUxZWM2YmI3MTNmMTYwNzdh
Y2YxZGJlMmFiYzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9TZXNzaW9uU3RhdGVDb252ZXJzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvU2Vzc2lvblN0YXRlQ29udmVyc2lvbi5jcHAKQEAgLTcy
LDcgKzcyLDcgQEAgc3RhdGljIEZyYW1lU3RhdGUgdG9GcmFtZVN0YXRlKGNvbnN0IEhpc3RvcnlJ
dGVtJiBoaXN0b3J5SXRlbSkKICAgICBmcmFtZVN0YXRlLnJlZmVycmVyID0gaGlzdG9yeUl0ZW0u
cmVmZXJyZXIoKTsKICAgICBmcmFtZVN0YXRlLnRhcmdldCA9IGhpc3RvcnlJdGVtLnRhcmdldCgp
OwogCi0gICAgZnJhbWVTdGF0ZS5kb2N1bWVudFN0YXRlID0gaGlzdG9yeUl0ZW0uZG9jdW1lbnRT
dGF0ZSgpOworICAgIGZyYW1lU3RhdGUuc2V0RG9jdW1lbnRTdGF0ZShoaXN0b3J5SXRlbS5kb2N1
bWVudFN0YXRlKCkpOwogICAgIGlmIChSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBzdGF0
ZU9iamVjdCA9IGhpc3RvcnlJdGVtLnN0YXRlT2JqZWN0KCkpCiAgICAgICAgIGZyYW1lU3RhdGUu
c3RhdGVPYmplY3REYXRhID0gc3RhdGVPYmplY3QtPmRhdGEoKTsKIApAQCAtMTQ4LDcgKzE0OCw3
IEBAIHN0YXRpYyB2b2lkIGFwcGx5RnJhbWVTdGF0ZShIaXN0b3J5SXRlbSYgaGlzdG9yeUl0ZW0s
IGNvbnN0IEZyYW1lU3RhdGUmIGZyYW1lU3RhCiAgICAgaGlzdG9yeUl0ZW0uc2V0UmVmZXJyZXIo
ZnJhbWVTdGF0ZS5yZWZlcnJlcik7CiAgICAgaGlzdG9yeUl0ZW0uc2V0VGFyZ2V0KGZyYW1lU3Rh
dGUudGFyZ2V0KTsKIAotICAgIGhpc3RvcnlJdGVtLnNldERvY3VtZW50U3RhdGUoZnJhbWVTdGF0
ZS5kb2N1bWVudFN0YXRlKTsKKyAgICBoaXN0b3J5SXRlbS5zZXREb2N1bWVudFN0YXRlKGZyYW1l
U3RhdGUuZG9jdW1lbnRTdGF0ZSgpKTsKIAogICAgIGlmIChmcmFtZVN0YXRlLnN0YXRlT2JqZWN0
RGF0YSkgewogICAgICAgICBWZWN0b3I8dWludDhfdD4gc3RhdGVPYmplY3REYXRhID0gZnJhbWVT
dGF0ZS5zdGF0ZU9iamVjdERhdGEudmFsdWUoKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>422001</attachid>
            <date>2021-03-02 15:17:00 -0800</date>
            <delta_ts>2021-03-04 12:52:31 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222587-20210302151700.patch</filename>
            <type>text/plain</type>
            <size>11443</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjczNzMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGYyNDJjYjI0ZDliODUxOWMz
NTY1M2U0MWM4MTg2YWQxYWFiYmNhY2UuLmRiNjA2NmUwODA4MTEwOTZhZjBkNjM4YTZmMDBjNDA2
OTEyN2VhN2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzYgQEAKKzIwMjEtMDMtMDIgIFNpaHVpIExp
dSAgPHNpaHVpX2xpdUBhcHBlLmNvbT4KKworICAgICAgICBWYWxpZGF0ZSBkb2N1bWVudFN0YXRl
IG9mIEZyYW1lU3RhdGUgd2hlbiBzZXR0aW5nIGFuZCBnZXR0aW5nIGl0CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjI1ODcKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICByZGFyOi8vNDg2MzQ1NTMgc2hvd2Vk
IHVzIHN0cmluZ3Mgb2YgZG9jdW1lbnRTdGF0ZSBjYW4gYmUgaW52YWxpZCB3aGVuIHRoZXkgYXJl
IGVuY29kZWQgaW4gZW5jb2RlRnJhbWVTdGF0ZU5vZGUKKyAgICAgICAgaW4gVUkgcHJvY2Vzcy4g
VG8gZ2V0IGEgYmV0dGVyIGlkZWEgb2Ygd2hlbiB0aGUgc3RyaW5ncyBiZWNvbWUgaW52YWxpZCwg
YWRkIGNoZWNrcyBmb3IgZG9jdW1lbnRTdGF0ZSB3aGVuIAorICAgICAgICBnZXR0aW5nIGFuZCBz
ZXR0aW5nIGl0LgorCisgICAgICAgIE5vIHRlc3QgYXMgbm8gYmVoYXZpb3IgY2hhbmdlLgorCisg
ICAgICAgICogU2hhcmVkL1Nlc3Npb25TdGF0ZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkZyYW1l
U3RhdGU6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OkZyYW1lU3RhdGU6OmRlY29k
ZSk6CisgICAgICAgIChXZWJLaXQ6OkZyYW1lU3RhdGU6OnZhbGlkYXRlRG9jdW1lbnRTdGF0ZSBj
b25zdCk6CisgICAgICAgIChXZWJLaXQ6OkZyYW1lU3RhdGU6OnNldERvY3VtZW50U3RhdGUpOgor
ICAgICAgICAqIFNoYXJlZC9TZXNzaW9uU3RhdGUuaDoKKyAgICAgICAgKFdlYktpdDo6RnJhbWVT
dGF0ZTo6fkZyYW1lU3RhdGUpOgorICAgICAgICAoV2ViS2l0OjpGcmFtZVN0YXRlOjpkb2N1bWVu
dFN0YXRlIGNvbnN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViVmll
d1Nlc3Npb25TdGF0ZS5jcHA6CisgICAgICAgIChlbmNvZGVGcmFtZVN0YXRlKToKKyAgICAgICAg
KGRlY29kZUZyYW1lU3RhdGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9TZXNzaW9uU3Rh
dGVDb2RpbmcuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvTGVnYWN5U2Vzc2lvblN0YXRlQ29kaW5n
Lmg6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9MZWdhY3lTZXNzaW9uU3RhdGVDb2RpbmcuY3Bw
OgorICAgICAgICAoV2ViS2l0OjplbmNvZGVGcmFtZVN0YXRlTm9kZSk6CisgICAgICAgIChXZWJL
aXQ6OmRlY29kZUJhY2tGb3J3YXJkVHJlZU5vZGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvU2Vzc2lvblN0YXRlQ29udmVyc2lvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6
OnRvRnJhbWVTdGF0ZSk6CisgICAgICAgIChXZWJLaXQ6OmFwcGx5RnJhbWVTdGF0ZSk6CisKIDIw
MjEtMDMtMDIgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIFVz
ZSBjYXB0dXJlIHNldHRpbmdzIGFmdGVyIHJlY292ZXJpbmcgY2FwdHVyZSBmcm9tIEdQVVByb2Nl
c3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1Nlc3Npb25TdGF0ZS5jcHAgYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9TZXNzaW9uU3RhdGUuY3BwCmluZGV4IDJlY2M0ZjFmZDgzYTJh
YmY1YWUzY2VmOTE1MTIzZWUyMjhlMjcyNTcuLmUzMWI0NWE3OGM3NmVkYjczZWViMzMwYWNlOWVm
N2JiZWE2M2FlZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1Nlc3Npb25TdGF0
ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvU2Vzc2lvblN0YXRlLmNwcApAQCAtMTEw
LDcgKzExMCw3IEBAIHZvaWQgRnJhbWVTdGF0ZTo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2Rl
cikgY29uc3QKICAgICBlbmNvZGVyIDw8IHJlZmVycmVyOwogICAgIGVuY29kZXIgPDwgdGFyZ2V0
OwogCi0gICAgZW5jb2RlciA8PCBkb2N1bWVudFN0YXRlOworICAgIGVuY29kZXIgPDwgbV9kb2N1
bWVudFN0YXRlOwogICAgIGVuY29kZXIgPDwgc3RhdGVPYmplY3REYXRhOwogCiAgICAgZW5jb2Rl
ciA8PCBkb2N1bWVudFNlcXVlbmNlTnVtYmVyOwpAQCAtMTQ2LDggKzE0NiwxMCBAQCBPcHRpb25h
bDxGcmFtZVN0YXRlPiBGcmFtZVN0YXRlOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyKQog
ICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LnRhcmdldCkpCiAgICAgICAgIHJldHVybiBX
VEY6Om51bGxvcHQ7CiAKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5kb2N1bWVudFN0
YXRlKSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5tX2RvY3VtZW50U3RhdGUpKQog
ICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworICAgIHJlc3VsdC52YWxpZGF0ZURvY3VtZW50
U3RhdGUoKTsKKwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LnN0YXRlT2JqZWN0RGF0
YSkpCiAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAKQEAgLTI3MCw0ICsyNzIsMzEgQEAg
T3B0aW9uYWw8QmFja0ZvcndhcmRMaXN0U3RhdGU+IEJhY2tGb3J3YXJkTGlzdFN0YXRlOjpkZWNv
ZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGUKICAgICByZXR1cm4ge3sgV1RGTW92ZSgqaXRlbXMpLCBX
VEZNb3ZlKGN1cnJlbnRJbmRleCkgfX07CiB9CiAKK3ZvaWQgRnJhbWVTdGF0ZTo6dmFsaWRhdGVE
b2N1bWVudFN0YXRlKCkgY29uc3QKK3sKKyAgICBSRUxFQVNFX0FTU0VSVCghbV9pc0Rlc3RydWN0
ZWQpOworICAgIGZvciAoYXV0byYgc3RhdGVTdHJpbmcgOiBtX2RvY3VtZW50U3RhdGUpIHsKKyAg
ICAgICAgaWYgKHN0YXRlU3RyaW5nLmlzTnVsbCgpKQorICAgICAgICAgICAgY29udGludWU7CisK
KyAgICAgICAgaWYgKCFzdGF0ZVN0cmluZy5pczhCaXQoKSkKKyAgICAgICAgICAgIGNvbnRpbnVl
OworCisgICAgICAgIC8vIHJkYXI6Ly80ODYzNDU1MyBpbmRpY2F0ZXMgOC1iaXQgc3RyaW5nIGNh
biBiZSBpbnZhbGlkLgorICAgICAgICBjb25zdCBMQ2hhciogY2hhcmFjdGVyczggPSBzdGF0ZVN0
cmluZy5jaGFyYWN0ZXJzOCgpOworICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgc3Rh
dGVTdHJpbmcubGVuZ3RoKCk7ICsraSkgeworICAgICAgICAgICAgYXV0byBjaGFyYWN0ZXIgPSBj
aGFyYWN0ZXJzOFtpXTsKKyAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUKGlzTGF0aW4xKGNoYXJh
Y3RlcikpOworICAgICAgICB9CisgICAgfQorfQorCit2b2lkIEZyYW1lU3RhdGU6OnNldERvY3Vt
ZW50U3RhdGUoY29uc3QgVmVjdG9yPFN0cmluZz4mIGRvY3VtZW50U3RhdGUsIFNob3VsZFZhbGlk
YXRlIHNob3VsZFZhbGlkYXRlKQoreworICAgIG1fZG9jdW1lbnRTdGF0ZSA9IGRvY3VtZW50U3Rh
dGU7CisKKyAgICBpZiAoc2hvdWxkVmFsaWRhdGUgPT0gU2hvdWxkVmFsaWRhdGU6OlllcykKKyAg
ICAgICAgdmFsaWRhdGVEb2N1bWVudFN0YXRlKCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktp
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvU2Vzc2lvblN0YXRlLmggYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9TZXNzaW9uU3RhdGUuaAppbmRleCAwNTc3ODZmYjAyNDEzMDc4YWI2
NjAwYzU3NWIyYTJlZjMzN2Q2OTg3Li5kOWE2YTMwYTg0ZDE1OWRlNTc5MGViNTIxOWYzZmMzN2E0
MjhiNDRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9TZXNzaW9uU3RhdGUuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9TZXNzaW9uU3RhdGUuaApAQCAtODAsMTYgKzgwLDIz
IEBAIHN0cnVjdCBIVFRQQm9keSB7CiAgICAgVmVjdG9yPEVsZW1lbnQ+IGVsZW1lbnRzOwogfTsK
IAotc3RydWN0IEZyYW1lU3RhdGUgeworY2xhc3MgRnJhbWVTdGF0ZSB7CitwdWJsaWM6CiAgICAg
dm9pZCBlbmNvZGUoSVBDOjpFbmNvZGVyJikgY29uc3Q7CiAgICAgc3RhdGljIE9wdGlvbmFsPEZy
YW1lU3RhdGU+IGRlY29kZShJUEM6OkRlY29kZXImKTsKIAorICAgIC8vIFRoZXNlIGFyZSB1c2Vk
IHRvIGhlbHAgZGVidWcgPHJkYXI6Ly9wcm9ibGVtLzQ4NjM0NTUzPi4KKyAgICB+RnJhbWVTdGF0
ZSgpIHsgbV9pc0Rlc3RydWN0ZWQgPSB0cnVlOyB9CisgICAgY29uc3QgVmVjdG9yPFN0cmluZz4m
IGRvY3VtZW50U3RhdGUoKSBjb25zdCB7IHJldHVybiBtX2RvY3VtZW50U3RhdGU7IH0KKyAgICBl
bnVtIGNsYXNzIFNob3VsZFZhbGlkYXRlIDogYm9vbCB7IE5vLCBZZXMgfTsKKyAgICB2b2lkIHNl
dERvY3VtZW50U3RhdGUoY29uc3QgVmVjdG9yPFN0cmluZz4mLCBTaG91bGRWYWxpZGF0ZSA9IFNo
b3VsZFZhbGlkYXRlOjpObyk7CisgICAgdm9pZCB2YWxpZGF0ZURvY3VtZW50U3RhdGUoKSBjb25z
dDsKKwogICAgIFN0cmluZyB1cmxTdHJpbmc7CiAgICAgU3RyaW5nIG9yaWdpbmFsVVJMU3RyaW5n
OwogICAgIFN0cmluZyByZWZlcnJlcjsKICAgICBTdHJpbmcgdGFyZ2V0OwogCi0gICAgVmVjdG9y
PFN0cmluZz4gZG9jdW1lbnRTdGF0ZTsKICAgICBPcHRpb25hbDxWZWN0b3I8dWludDhfdD4+IHN0
YXRlT2JqZWN0RGF0YTsKIAogICAgIGludDY0X3QgZG9jdW1lbnRTZXF1ZW5jZU51bWJlciB7IDAg
fTsKQEAgLTExMyw5ICsxMjAsOSBAQCBzdHJ1Y3QgRnJhbWVTdGF0ZSB7CiAKICAgICBWZWN0b3I8
RnJhbWVTdGF0ZT4gY2hpbGRyZW47CiAKLSAgICAvLyBUaGlzIGlzIG9ubHkgdXNlZCB0byBoZWxw
IGRlYnVnIDxyZGFyOi8vcHJvYmxlbS80ODYzNDU1Mz4uCi0gICAgYm9vbCBpc0Rlc3RydWN0ZWQg
eyBmYWxzZSB9OwotICAgIH5GcmFtZVN0YXRlKCkgeyBpc0Rlc3RydWN0ZWQgPSB0cnVlOyB9Citw
cml2YXRlOgorICAgIGJvb2wgbV9pc0Rlc3RydWN0ZWQgeyBmYWxzZSB9OworICAgIFZlY3RvcjxT
dHJpbmc+IG1fZG9jdW1lbnRTdGF0ZTsKIH07CiAKIHN0cnVjdCBQYWdlU3RhdGUgewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViVmlld1Nlc3Np
b25TdGF0ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJW
aWV3U2Vzc2lvblN0YXRlLmNwcAppbmRleCA4NWYyM2ViNTRkNmMwMjdhYjEzN2QxYWViZTZhZWU5
NDJhNzMxYjhhLi5iMmRlNWEyZjAzZWExYWJlOWFhYTI1ZjRjOGE4YTkxOWZkNjIzMjlmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJWaWV3U2Vz
c2lvblN0YXRlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJL
aXRXZWJWaWV3U2Vzc2lvblN0YXRlLmNwcApAQCAtMTYyLDcgKzE2Miw3IEBAIHN0YXRpYyBpbmxp
bmUgdm9pZCBlbmNvZGVGcmFtZVN0YXRlKEdWYXJpYW50QnVpbGRlciogc2Vzc2lvbkJ1aWxkZXIs
IGNvbnN0IEZyYW1lCiAgICAgZ192YXJpYW50X2J1aWxkZXJfYWRkKHNlc3Npb25CdWlsZGVyLCAi
cyIsIGZyYW1lU3RhdGUucmVmZXJyZXIudXRmOCgpLmRhdGEoKSk7CiAgICAgZ192YXJpYW50X2J1
aWxkZXJfYWRkKHNlc3Npb25CdWlsZGVyLCAicyIsIGZyYW1lU3RhdGUudGFyZ2V0LnV0ZjgoKS5k
YXRhKCkpOwogICAgIGdfdmFyaWFudF9idWlsZGVyX29wZW4oc2Vzc2lvbkJ1aWxkZXIsIEdfVkFS
SUFOVF9UWVBFKCJhcyIpKTsKLSAgICBmb3IgKGNvbnN0IGF1dG8mIHN0YXRlIDogZnJhbWVTdGF0
ZS5kb2N1bWVudFN0YXRlKQorICAgIGZvciAoY29uc3QgYXV0byYgc3RhdGUgOiBmcmFtZVN0YXRl
LmRvY3VtZW50U3RhdGUoKSkKICAgICAgICAgZ192YXJpYW50X2J1aWxkZXJfYWRkKHNlc3Npb25C
dWlsZGVyLCAicyIsIHN0YXRlLnV0ZjgoKS5kYXRhKCkpOwogICAgIGdfdmFyaWFudF9idWlsZGVy
X2Nsb3NlKHNlc3Npb25CdWlsZGVyKTsKICAgICBpZiAoIWZyYW1lU3RhdGUuc3RhdGVPYmplY3RE
YXRhKQpAQCAtMzA1LDEwICszMDUsMTIgQEAgc3RhdGljIGlubGluZSB2b2lkIGRlY29kZUZyYW1l
U3RhdGUoR1ZhcmlhbnQqIGZyYW1lU3RhdGVWYXJpYW50LCBGcmFtZVN0YXRlJiBmcmEKICAgICAg
ICAgZnJhbWVTdGF0ZS5yZWZlcnJlciA9IFN0cmluZzo6ZnJvbVVURjgocmVmZXJyZXIpOwogICAg
IGZyYW1lU3RhdGUudGFyZ2V0ID0gU3RyaW5nOjpmcm9tVVRGOCh0YXJnZXQpOwogICAgIGlmIChn
c2l6ZSBkb2N1bWVudFN0YXRlTGVuZ3RoID0gZ192YXJpYW50X2l0ZXJfbl9jaGlsZHJlbihkb2N1
bWVudFN0YXRlSXRlci5nZXQoKSkpIHsKLSAgICAgICAgZnJhbWVTdGF0ZS5kb2N1bWVudFN0YXRl
LnJlc2VydmVJbml0aWFsQ2FwYWNpdHkoZG9jdW1lbnRTdGF0ZUxlbmd0aCk7CisgICAgICAgIFZl
Y3RvcjxTdHJpbmc+IGRvY3VtZW50U3RhdGU7CisgICAgICAgIGRvY3VtZW50U3RhdGUucmVzZXJ2
ZUluaXRpYWxDYXBhY2l0eShkb2N1bWVudFN0YXRlTGVuZ3RoKTsKICAgICAgICAgY29uc3QgY2hh
ciogZG9jdW1lbnRTdGF0ZVN0cmluZzsKICAgICAgICAgd2hpbGUgKGdfdmFyaWFudF9pdGVyX25l
eHQoZG9jdW1lbnRTdGF0ZUl0ZXIuZ2V0KCksICImcyIsICZkb2N1bWVudFN0YXRlU3RyaW5nKSkK
LSAgICAgICAgICAgIGZyYW1lU3RhdGUuZG9jdW1lbnRTdGF0ZS51bmNoZWNrZWRBcHBlbmQoU3Ry
aW5nOjpmcm9tVVRGOChkb2N1bWVudFN0YXRlU3RyaW5nKSk7CisgICAgICAgICAgICBkb2N1bWVu
dFN0YXRlLnVuY2hlY2tlZEFwcGVuZChTdHJpbmc6OmZyb21VVEY4KGRvY3VtZW50U3RhdGVTdHJp
bmcpKTsKKyAgICAgICAgZnJhbWVTdGF0ZS5zZXREb2N1bWVudFN0YXRlKGRvY3VtZW50U3RhdGUp
OwogICAgIH0KICAgICBpZiAoc3RhdGVPYmplY3REYXRhSXRlcikgewogICAgICAgICBWZWN0b3I8
dWludDhfdD4gc3RhdGVPYmplY3RWZWN0b3I7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Db2NvYS9TZXNzaW9uU3RhdGVDb2RpbmcuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0NvY29hL1Nlc3Npb25TdGF0ZUNvZGluZy5oCmluZGV4IDU2ZDdjNDJiYmU3NDE4NzQxN2Mz
NWExOWJhY2JhYzhkOTFkYzBmNTUuLmY0YjMxZGI0ZDYxNTM4ZmJlYzEyYjkxYjYzYmExNWJjMzc2
MWMyNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1Nlc3Npb25T
dGF0ZUNvZGluZy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1Nlc3Npb25T
dGF0ZUNvZGluZy5oCkBAIC0zMCw3ICszMCw3IEBACiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1z
dHJ1Y3QgRnJhbWVTdGF0ZTsKK2NsYXNzIEZyYW1lU3RhdGU7CiBzdHJ1Y3QgU2Vzc2lvblN0YXRl
OwogCiBSZXRhaW5QdHI8TlNEYXRhPiBlbmNvZGVTZXNzaW9uU3RhdGUoY29uc3QgU2Vzc2lvblN0
YXRlJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9MZWdhY3lTZXNzaW9u
U3RhdGVDb2RpbmcuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0xlZ2FjeVNlc3Npb25TdGF0
ZUNvZGluZy5oCmluZGV4IDE3ZWJjNGRhYjRjOWZlZTkxOTc4MzY2Mzk1MGVmOGQ5ZTE3OWY5ZjAu
LjQ4ZDBhZmIxNjZmNTgzZjdiOTlmYmE3MjZkZDQ0YTM4MGZmMGQ4MjEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0xlZ2FjeVNlc3Npb25TdGF0ZUNvZGluZy5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0xlZ2FjeVNlc3Npb25TdGF0ZUNvZGluZy5oCkBAIC0zNCw3
ICszNCw3IEBAIGNsYXNzIERhdGE7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1zdHJ1Y3QgRnJh
bWVTdGF0ZTsKK2NsYXNzIEZyYW1lU3RhdGU7CiBzdHJ1Y3QgU2Vzc2lvblN0YXRlOwogCiBSZWZQ
dHI8QVBJOjpEYXRhPiBlbmNvZGVMZWdhY3lTZXNzaW9uU3RhdGUoY29uc3QgU2Vzc2lvblN0YXRl
Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvTGVnYWN5U2Vzc2lv
blN0YXRlQ29kaW5nLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9MZWdhY3lTZXNz
aW9uU3RhdGVDb2RpbmcuY3BwCmluZGV4IDg4NWQzZjdhMmQ3NTFhZGI5OGY4NDM3ZjAxMDBmMTgx
NjJlMWY3ZjEuLjhiNzA0Mzk4M2Q3M2I1YzhjZGQxZjFjY2Y2ZmNiNzdhOTVmOGM1ZDggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9MZWdhY3lTZXNzaW9uU3RhdGVDb2Rp
bmcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9MZWdhY3lTZXNzaW9uU3Rh
dGVDb2RpbmcuY3BwCkBAIC0zMjMsOSArMzIzLDcgQEAgc3RhdGljIHZvaWQgZW5jb2RlRnJhbWVT
dGF0ZU5vZGUoSGlzdG9yeUVudHJ5RGF0YUVuY29kZXImIGVuY29kZXIsIGNvbnN0IEZyYW1lU3QK
IHsKICAgICBlbmNvZGVyIDw8IHN0YXRpY19jYXN0PHVpbnQ2NF90PihmcmFtZVN0YXRlLmNoaWxk
cmVuLnNpemUoKSk7CiAKLSAgICBSRUxFQVNFX0FTU0VSVCghZnJhbWVTdGF0ZS5pc0Rlc3RydWN0
ZWQpOwogICAgIGZvciAoY29uc3QgYXV0byYgY2hpbGRGcmFtZVN0YXRlIDogZnJhbWVTdGF0ZS5j
aGlsZHJlbikgewotICAgICAgICBSRUxFQVNFX0FTU0VSVCghY2hpbGRGcmFtZVN0YXRlLmlzRGVz
dHJ1Y3RlZCk7CiAgICAgICAgIGVuY29kZXIgPDwgY2hpbGRGcmFtZVN0YXRlLm9yaWdpbmFsVVJM
U3RyaW5nOwogICAgICAgICBlbmNvZGVyIDw8IGNoaWxkRnJhbWVTdGF0ZS51cmxTdHJpbmc7CiAK
QEAgLTMzNCw4ICszMzIsOSBAQCBzdGF0aWMgdm9pZCBlbmNvZGVGcmFtZVN0YXRlTm9kZShIaXN0
b3J5RW50cnlEYXRhRW5jb2RlciYgZW5jb2RlciwgY29uc3QgRnJhbWVTdAogCiAgICAgZW5jb2Rl
ciA8PCBmcmFtZVN0YXRlLmRvY3VtZW50U2VxdWVuY2VOdW1iZXI7CiAKLSAgICBlbmNvZGVyIDw8
IHN0YXRpY19jYXN0PHVpbnQ2NF90PihmcmFtZVN0YXRlLmRvY3VtZW50U3RhdGUuc2l6ZSgpKTsK
LSAgICBmb3IgKGNvbnN0IGF1dG8mIGRvY3VtZW50U3RhdGUgOiBmcmFtZVN0YXRlLmRvY3VtZW50
U3RhdGUpCisgICAgZnJhbWVTdGF0ZS52YWxpZGF0ZURvY3VtZW50U3RhdGUoKTsKKyAgICBlbmNv
ZGVyIDw8IHN0YXRpY19jYXN0PHVpbnQ2NF90PihmcmFtZVN0YXRlLmRvY3VtZW50U3RhdGUoKS5z
aXplKCkpOworICAgIGZvciAoY29uc3QgYXV0byYgZG9jdW1lbnRTdGF0ZSA6IGZyYW1lU3RhdGUu
ZG9jdW1lbnRTdGF0ZSgpKQogICAgICAgICBlbmNvZGVyIDw8IGRvY3VtZW50U3RhdGU7CiAKICAg
ICBpZiAoZnJhbWVTdGF0ZS5odHRwQm9keSkgewpAQCAtODk5LDE1ICs4OTgsMTkgQEAgc3RhdGlj
IHZvaWQgZGVjb2RlQmFja0ZvcndhcmRUcmVlTm9kZShIaXN0b3J5RW50cnlEYXRhRGVjb2RlciYg
ZGVjb2RlciwgRnJhbWVTdGEKICAgICB1aW50NjRfdCBkb2N1bWVudFN0YXRlVmVjdG9yU2l6ZTsK
ICAgICBkZWNvZGVyID4+IGRvY3VtZW50U3RhdGVWZWN0b3JTaXplOwogCisgICAgVmVjdG9yPFN0
cmluZz4gZG9jdW1lbnRTdGF0ZTsKICAgICBmb3IgKHVpbnQ2NF90IGkgPSAwOyBpIDwgZG9jdW1l
bnRTdGF0ZVZlY3RvclNpemU7ICsraSkgewogICAgICAgICBTdHJpbmcgc3RhdGU7CiAgICAgICAg
IGRlY29kZXIgPj4gc3RhdGU7CiAKLSAgICAgICAgaWYgKCFkZWNvZGVyLmlzVmFsaWQoKSkKKyAg
ICAgICAgaWYgKCFkZWNvZGVyLmlzVmFsaWQoKSkgeworICAgICAgICAgICAgZnJhbWVTdGF0ZS5z
ZXREb2N1bWVudFN0YXRlKGRvY3VtZW50U3RhdGUsIEZyYW1lU3RhdGU6OlNob3VsZFZhbGlkYXRl
OjpZZXMpOwogICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CiAKLSAgICAgICAgZnJhbWVT
dGF0ZS5kb2N1bWVudFN0YXRlLmFwcGVuZChXVEZNb3ZlKHN0YXRlKSk7CisgICAgICAgIGRvY3Vt
ZW50U3RhdGUuYXBwZW5kKFdURk1vdmUoc3RhdGUpKTsKICAgICB9CisgICAgZnJhbWVTdGF0ZS5z
ZXREb2N1bWVudFN0YXRlKGRvY3VtZW50U3RhdGUsIEZyYW1lU3RhdGU6OlNob3VsZFZhbGlkYXRl
OjpZZXMpOwogCiAgICAgU3RyaW5nIGZvcm1Db250ZW50VHlwZTsKICAgICBkZWNvZGVyID4+IGZv
cm1Db250ZW50VHlwZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9TZXNzaW9uU3RhdGVDb252ZXJzaW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9TZXNzaW9uU3RhdGVDb252ZXJzaW9uLmNwcAppbmRleCAw
MjY5NWQzZWI4OWY1ZTY0MDkzODQxNDI0OWU3ZjVjOWY4MmFjNDEwLi5kNWUyMGY0MTE3YWE1MWVj
NmJiNzEzZjE2MDc3YWNmMWRiZTJhYmMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvU2Vzc2lvblN0YXRlQ29udmVyc2lvbi5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1Nlc3Npb25TdGF0ZUNvbnZlcnNp
b24uY3BwCkBAIC03Miw3ICs3Miw3IEBAIHN0YXRpYyBGcmFtZVN0YXRlIHRvRnJhbWVTdGF0ZShj
b25zdCBIaXN0b3J5SXRlbSYgaGlzdG9yeUl0ZW0pCiAgICAgZnJhbWVTdGF0ZS5yZWZlcnJlciA9
IGhpc3RvcnlJdGVtLnJlZmVycmVyKCk7CiAgICAgZnJhbWVTdGF0ZS50YXJnZXQgPSBoaXN0b3J5
SXRlbS50YXJnZXQoKTsKIAotICAgIGZyYW1lU3RhdGUuZG9jdW1lbnRTdGF0ZSA9IGhpc3RvcnlJ
dGVtLmRvY3VtZW50U3RhdGUoKTsKKyAgICBmcmFtZVN0YXRlLnNldERvY3VtZW50U3RhdGUoaGlz
dG9yeUl0ZW0uZG9jdW1lbnRTdGF0ZSgpKTsKICAgICBpZiAoUmVmUHRyPFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZT4gc3RhdGVPYmplY3QgPSBoaXN0b3J5SXRlbS5zdGF0ZU9iamVjdCgpKQogICAgICAg
ICBmcmFtZVN0YXRlLnN0YXRlT2JqZWN0RGF0YSA9IHN0YXRlT2JqZWN0LT5kYXRhKCk7CiAKQEAg
LTE0OCw3ICsxNDgsNyBAQCBzdGF0aWMgdm9pZCBhcHBseUZyYW1lU3RhdGUoSGlzdG9yeUl0ZW0m
IGhpc3RvcnlJdGVtLCBjb25zdCBGcmFtZVN0YXRlJiBmcmFtZVN0YQogICAgIGhpc3RvcnlJdGVt
LnNldFJlZmVycmVyKGZyYW1lU3RhdGUucmVmZXJyZXIpOwogICAgIGhpc3RvcnlJdGVtLnNldFRh
cmdldChmcmFtZVN0YXRlLnRhcmdldCk7CiAKLSAgICBoaXN0b3J5SXRlbS5zZXREb2N1bWVudFN0
YXRlKGZyYW1lU3RhdGUuZG9jdW1lbnRTdGF0ZSk7CisgICAgaGlzdG9yeUl0ZW0uc2V0RG9jdW1l
bnRTdGF0ZShmcmFtZVN0YXRlLmRvY3VtZW50U3RhdGUoKSk7CiAKICAgICBpZiAoZnJhbWVTdGF0
ZS5zdGF0ZU9iamVjdERhdGEpIHsKICAgICAgICAgVmVjdG9yPHVpbnQ4X3Q+IHN0YXRlT2JqZWN0
RGF0YSA9IGZyYW1lU3RhdGUuc3RhdGVPYmplY3REYXRhLnZhbHVlKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>422274</attachid>
            <date>2021-03-04 12:52:34 -0800</date>
            <delta_ts>2021-03-04 15:08:25 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222587-20210304125233.patch</filename>
            <type>text/plain</type>
            <size>11394</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjczOTAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGZkMzBhYWNmZDJiMDE1YzE4
ODFiZWRlZmQzZWZhZDRmN2M2NDhhMDkuLmE0MDgxOTkxNGNmZWI2ODExMDExZmYwNjRiYzc4NTMz
ZjRjZTJkZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzYgQEAKKzIwMjEtMDMtMDQgIFNpaHVpIExp
dSAgPHNpaHVpX2xpdUBhcHBlLmNvbT4KKworICAgICAgICBWYWxpZGF0ZSBkb2N1bWVudFN0YXRl
IG9mIEZyYW1lU3RhdGUgd2hlbiBzZXR0aW5nIGFuZCBnZXR0aW5nIGl0CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjI1ODcKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbiByZGFyOi8vNDg2MzQ1NTMsIHN0
cmluZ3Mgb2YgZG9jdW1lbnRTdGF0ZSBjYW4gYmUgaW52YWxpZCB3aGVuIHRoZXkgYXJlIGVuY29k
ZWQgaW4gZW5jb2RlRnJhbWVTdGF0ZU5vZGUKKyAgICAgICAgaW4gVUkgcHJvY2Vzcy4gVG8gZ2V0
IGEgYmV0dGVyIGlkZWEgb2Ygd2hlbiB0aGUgc3RyaW5ncyBiZWNvbWUgaW52YWxpZCwgYWRkIGNo
ZWNrcyBmb3IgZG9jdW1lbnRTdGF0ZSB3aGVuIAorICAgICAgICBnZXR0aW5nIGFuZCBzZXR0aW5n
IGl0LgorCisgICAgICAgIE5vIHRlc3QgYXMgbm8gYmVoYXZpb3IgY2hhbmdlLgorCisgICAgICAg
ICogU2hhcmVkL1Nlc3Npb25TdGF0ZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkZyYW1lU3RhdGU6
OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OkZyYW1lU3RhdGU6OmRlY29kZSk6Cisg
ICAgICAgIChXZWJLaXQ6OkZyYW1lU3RhdGU6OnZhbGlkYXRlRG9jdW1lbnRTdGF0ZSBjb25zdCk6
CisgICAgICAgIChXZWJLaXQ6OkZyYW1lU3RhdGU6OnNldERvY3VtZW50U3RhdGUpOgorICAgICAg
ICAqIFNoYXJlZC9TZXNzaW9uU3RhdGUuaDoKKyAgICAgICAgKFdlYktpdDo6RnJhbWVTdGF0ZTo6
fkZyYW1lU3RhdGUpOgorICAgICAgICAoV2ViS2l0OjpGcmFtZVN0YXRlOjpkb2N1bWVudFN0YXRl
IGNvbnN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViVmlld1Nlc3Np
b25TdGF0ZS5jcHA6CisgICAgICAgIChlbmNvZGVGcmFtZVN0YXRlKToKKyAgICAgICAgKGRlY29k
ZUZyYW1lU3RhdGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9TZXNzaW9uU3RhdGVDb2Rp
bmcuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvTGVnYWN5U2Vzc2lvblN0YXRlQ29kaW5nLmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL21hYy9MZWdhY3lTZXNzaW9uU3RhdGVDb2RpbmcuY3BwOgorICAg
ICAgICAoV2ViS2l0OjplbmNvZGVGcmFtZVN0YXRlTm9kZSk6CisgICAgICAgIChXZWJLaXQ6OmRl
Y29kZUJhY2tGb3J3YXJkVHJlZU5vZGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvU2Vzc2lvblN0YXRlQ29udmVyc2lvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OnRvRnJh
bWVTdGF0ZSk6CisgICAgICAgIChXZWJLaXQ6OmFwcGx5RnJhbWVTdGF0ZSk6CisKIDIwMjEtMDMt
MDQgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJ
T04gKHIyNzM3MzIpOiBBU1NFUlRJT04gRkFJTEVEOiBDb21wbGV0aW9uIGhhbmRsZXIgc2hvdWxk
IGFsd2F5cyBiZSBjYWxsZWQgdW5kZXIgV2ViS2l0OjpSZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
UHJveHk6On5SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJveHkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1Nlc3Npb25TdGF0ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9T
ZXNzaW9uU3RhdGUuY3BwCmluZGV4IDJlY2M0ZjFmZDgzYTJhYmY1YWUzY2VmOTE1MTIzZWUyMjhl
MjcyNTcuLjdiZDBiNThmNDRkNTYzMmZiOTFmZmFmNDQ2NzZkZWY5ZDA5YzU2YjkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1Nlc3Npb25TdGF0ZS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvU2Vzc2lvblN0YXRlLmNwcApAQCAtMTEwLDcgKzExMCw3IEBAIHZvaWQgRnJh
bWVTdGF0ZTo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICBlbmNvZGVy
IDw8IHJlZmVycmVyOwogICAgIGVuY29kZXIgPDwgdGFyZ2V0OwogCi0gICAgZW5jb2RlciA8PCBk
b2N1bWVudFN0YXRlOworICAgIGVuY29kZXIgPDwgbV9kb2N1bWVudFN0YXRlOwogICAgIGVuY29k
ZXIgPDwgc3RhdGVPYmplY3REYXRhOwogCiAgICAgZW5jb2RlciA8PCBkb2N1bWVudFNlcXVlbmNl
TnVtYmVyOwpAQCAtMTQ2LDggKzE0NiwxMCBAQCBPcHRpb25hbDxGcmFtZVN0YXRlPiBGcmFtZVN0
YXRlOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyKQogICAgIGlmICghZGVjb2Rlci5kZWNv
ZGUocmVzdWx0LnRhcmdldCkpCiAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAKLSAgICBp
ZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5kb2N1bWVudFN0YXRlKSkKKyAgICBpZiAoIWRlY29k
ZXIuZGVjb2RlKHJlc3VsdC5tX2RvY3VtZW50U3RhdGUpKQogICAgICAgICByZXR1cm4gV1RGOjpu
dWxsb3B0OworICAgIHJlc3VsdC52YWxpZGF0ZURvY3VtZW50U3RhdGUoKTsKKwogICAgIGlmICgh
ZGVjb2Rlci5kZWNvZGUocmVzdWx0LnN0YXRlT2JqZWN0RGF0YSkpCiAgICAgICAgIHJldHVybiBX
VEY6Om51bGxvcHQ7CiAKQEAgLTI3MCw0ICsyNzIsMzAgQEAgT3B0aW9uYWw8QmFja0ZvcndhcmRM
aXN0U3RhdGU+IEJhY2tGb3J3YXJkTGlzdFN0YXRlOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNv
ZGUKICAgICByZXR1cm4ge3sgV1RGTW92ZSgqaXRlbXMpLCBXVEZNb3ZlKGN1cnJlbnRJbmRleCkg
fX07CiB9CiAKK3ZvaWQgRnJhbWVTdGF0ZTo6dmFsaWRhdGVEb2N1bWVudFN0YXRlKCkgY29uc3QK
K3sKKyAgICBmb3IgKGF1dG8mIHN0YXRlU3RyaW5nIDogbV9kb2N1bWVudFN0YXRlKSB7CisgICAg
ICAgIGlmIChzdGF0ZVN0cmluZy5pc051bGwoKSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisg
ICAgICAgIGlmICghc3RhdGVTdHJpbmcuaXM4Qml0KCkpCisgICAgICAgICAgICBjb250aW51ZTsK
KworICAgICAgICAvLyByZGFyOi8vNDg2MzQ1NTMgaW5kaWNhdGVzIDgtYml0IHN0cmluZyBjYW4g
YmUgaW52YWxpZC4KKyAgICAgICAgY29uc3QgTENoYXIqIGNoYXJhY3RlcnM4ID0gc3RhdGVTdHJp
bmcuY2hhcmFjdGVyczgoKTsKKyAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHN0YXRl
U3RyaW5nLmxlbmd0aCgpOyArK2kpIHsKKyAgICAgICAgICAgIGF1dG8gY2hhcmFjdGVyID0gY2hh
cmFjdGVyczhbaV07CisgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVChpc0xhdGluMShjaGFyYWN0
ZXIpKTsKKyAgICAgICAgfQorICAgIH0KK30KKwordm9pZCBGcmFtZVN0YXRlOjpzZXREb2N1bWVu
dFN0YXRlKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBkb2N1bWVudFN0YXRlLCBTaG91bGRWYWxpZGF0
ZSBzaG91bGRWYWxpZGF0ZSkKK3sKKyAgICBtX2RvY3VtZW50U3RhdGUgPSBkb2N1bWVudFN0YXRl
OworCisgICAgaWYgKHNob3VsZFZhbGlkYXRlID09IFNob3VsZFZhbGlkYXRlOjpZZXMpCisgICAg
ICAgIHZhbGlkYXRlRG9jdW1lbnRTdGF0ZSgpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1Nlc3Npb25TdGF0ZS5oIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvU2Vzc2lvblN0YXRlLmgKaW5kZXggMDU3Nzg2ZmIwMjQxMzA3OGFiNjYw
MGM1NzViMmEyZWYzMzdkNjk4Ny4uYTdkOTZkMGNhNzE4ZmY1YmQzYzQ1NDljZWZmZTFhMmMwNzFj
YTcxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvU2Vzc2lvblN0YXRlLmgKKysr
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvU2Vzc2lvblN0YXRlLmgKQEAgLTgwLDE2ICs4MCwyMyBA
QCBzdHJ1Y3QgSFRUUEJvZHkgewogICAgIFZlY3RvcjxFbGVtZW50PiBlbGVtZW50czsKIH07CiAK
LXN0cnVjdCBGcmFtZVN0YXRlIHsKK2NsYXNzIEZyYW1lU3RhdGUgeworcHVibGljOgogICAgIHZv
aWQgZW5jb2RlKElQQzo6RW5jb2RlciYpIGNvbnN0OwogICAgIHN0YXRpYyBPcHRpb25hbDxGcmFt
ZVN0YXRlPiBkZWNvZGUoSVBDOjpEZWNvZGVyJik7CiAKKyAgICAvLyBUaGVzZSBhcmUgdXNlZCB0
byBoZWxwIGRlYnVnIDxyZGFyOi8vcHJvYmxlbS80ODYzNDU1Mz4uCisgICAgfkZyYW1lU3RhdGUo
KSB7IFJFTEVBU0VfQVNTRVJUKGlzTWFpblRocmVhZCgpKTsgfQorICAgIGNvbnN0IFZlY3RvcjxT
dHJpbmc+JiBkb2N1bWVudFN0YXRlKCkgY29uc3QgeyByZXR1cm4gbV9kb2N1bWVudFN0YXRlOyB9
CisgICAgZW51bSBjbGFzcyBTaG91bGRWYWxpZGF0ZSA6IGJvb2wgeyBObywgWWVzIH07CisgICAg
dm9pZCBzZXREb2N1bWVudFN0YXRlKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiwgU2hvdWxkVmFsaWRh
dGUgPSBTaG91bGRWYWxpZGF0ZTo6Tm8pOworICAgIHZvaWQgdmFsaWRhdGVEb2N1bWVudFN0YXRl
KCkgY29uc3Q7CisKICAgICBTdHJpbmcgdXJsU3RyaW5nOwogICAgIFN0cmluZyBvcmlnaW5hbFVS
TFN0cmluZzsKICAgICBTdHJpbmcgcmVmZXJyZXI7CiAgICAgU3RyaW5nIHRhcmdldDsKIAotICAg
IFZlY3RvcjxTdHJpbmc+IGRvY3VtZW50U3RhdGU7CiAgICAgT3B0aW9uYWw8VmVjdG9yPHVpbnQ4
X3Q+PiBzdGF0ZU9iamVjdERhdGE7CiAKICAgICBpbnQ2NF90IGRvY3VtZW50U2VxdWVuY2VOdW1i
ZXIgeyAwIH07CkBAIC0xMTMsOSArMTIwLDggQEAgc3RydWN0IEZyYW1lU3RhdGUgewogCiAgICAg
VmVjdG9yPEZyYW1lU3RhdGU+IGNoaWxkcmVuOwogCi0gICAgLy8gVGhpcyBpcyBvbmx5IHVzZWQg
dG8gaGVscCBkZWJ1ZyA8cmRhcjovL3Byb2JsZW0vNDg2MzQ1NTM+LgotICAgIGJvb2wgaXNEZXN0
cnVjdGVkIHsgZmFsc2UgfTsKLSAgICB+RnJhbWVTdGF0ZSgpIHsgaXNEZXN0cnVjdGVkID0gdHJ1
ZTsgfQorcHJpdmF0ZToKKyAgICBWZWN0b3I8U3RyaW5nPiBtX2RvY3VtZW50U3RhdGU7CiB9Owog
CiBzdHJ1Y3QgUGFnZVN0YXRlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9nbGliL1dlYktpdFdlYlZpZXdTZXNzaW9uU3RhdGUuY3BwIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViVmlld1Nlc3Npb25TdGF0ZS5jcHAKaW5kZXggODVm
MjNlYjU0ZDZjMDI3YWIxMzdkMWFlYmU2YWVlOTQyYTczMWI4YS4uYjJkZTVhMmYwM2VhMWFiZTlh
YWEyNWY0YzhhOGE5MTlmZDYyMzI5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL2dsaWIvV2ViS2l0V2ViVmlld1Nlc3Npb25TdGF0ZS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViVmlld1Nlc3Npb25TdGF0ZS5jcHAKQEAg
LTE2Miw3ICsxNjIsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgZW5jb2RlRnJhbWVTdGF0ZShHVmFy
aWFudEJ1aWxkZXIqIHNlc3Npb25CdWlsZGVyLCBjb25zdCBGcmFtZQogICAgIGdfdmFyaWFudF9i
dWlsZGVyX2FkZChzZXNzaW9uQnVpbGRlciwgInMiLCBmcmFtZVN0YXRlLnJlZmVycmVyLnV0Zjgo
KS5kYXRhKCkpOwogICAgIGdfdmFyaWFudF9idWlsZGVyX2FkZChzZXNzaW9uQnVpbGRlciwgInMi
LCBmcmFtZVN0YXRlLnRhcmdldC51dGY4KCkuZGF0YSgpKTsKICAgICBnX3ZhcmlhbnRfYnVpbGRl
cl9vcGVuKHNlc3Npb25CdWlsZGVyLCBHX1ZBUklBTlRfVFlQRSgiYXMiKSk7Ci0gICAgZm9yIChj
b25zdCBhdXRvJiBzdGF0ZSA6IGZyYW1lU3RhdGUuZG9jdW1lbnRTdGF0ZSkKKyAgICBmb3IgKGNv
bnN0IGF1dG8mIHN0YXRlIDogZnJhbWVTdGF0ZS5kb2N1bWVudFN0YXRlKCkpCiAgICAgICAgIGdf
dmFyaWFudF9idWlsZGVyX2FkZChzZXNzaW9uQnVpbGRlciwgInMiLCBzdGF0ZS51dGY4KCkuZGF0
YSgpKTsKICAgICBnX3ZhcmlhbnRfYnVpbGRlcl9jbG9zZShzZXNzaW9uQnVpbGRlcik7CiAgICAg
aWYgKCFmcmFtZVN0YXRlLnN0YXRlT2JqZWN0RGF0YSkKQEAgLTMwNSwxMCArMzA1LDEyIEBAIHN0
YXRpYyBpbmxpbmUgdm9pZCBkZWNvZGVGcmFtZVN0YXRlKEdWYXJpYW50KiBmcmFtZVN0YXRlVmFy
aWFudCwgRnJhbWVTdGF0ZSYgZnJhCiAgICAgICAgIGZyYW1lU3RhdGUucmVmZXJyZXIgPSBTdHJp
bmc6OmZyb21VVEY4KHJlZmVycmVyKTsKICAgICBmcmFtZVN0YXRlLnRhcmdldCA9IFN0cmluZzo6
ZnJvbVVURjgodGFyZ2V0KTsKICAgICBpZiAoZ3NpemUgZG9jdW1lbnRTdGF0ZUxlbmd0aCA9IGdf
dmFyaWFudF9pdGVyX25fY2hpbGRyZW4oZG9jdW1lbnRTdGF0ZUl0ZXIuZ2V0KCkpKSB7Ci0gICAg
ICAgIGZyYW1lU3RhdGUuZG9jdW1lbnRTdGF0ZS5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KGRvY3Vt
ZW50U3RhdGVMZW5ndGgpOworICAgICAgICBWZWN0b3I8U3RyaW5nPiBkb2N1bWVudFN0YXRlOwor
ICAgICAgICBkb2N1bWVudFN0YXRlLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkoZG9jdW1lbnRTdGF0
ZUxlbmd0aCk7CiAgICAgICAgIGNvbnN0IGNoYXIqIGRvY3VtZW50U3RhdGVTdHJpbmc7CiAgICAg
ICAgIHdoaWxlIChnX3ZhcmlhbnRfaXRlcl9uZXh0KGRvY3VtZW50U3RhdGVJdGVyLmdldCgpLCAi
JnMiLCAmZG9jdW1lbnRTdGF0ZVN0cmluZykpCi0gICAgICAgICAgICBmcmFtZVN0YXRlLmRvY3Vt
ZW50U3RhdGUudW5jaGVja2VkQXBwZW5kKFN0cmluZzo6ZnJvbVVURjgoZG9jdW1lbnRTdGF0ZVN0
cmluZykpOworICAgICAgICAgICAgZG9jdW1lbnRTdGF0ZS51bmNoZWNrZWRBcHBlbmQoU3RyaW5n
Ojpmcm9tVVRGOChkb2N1bWVudFN0YXRlU3RyaW5nKSk7CisgICAgICAgIGZyYW1lU3RhdGUuc2V0
RG9jdW1lbnRTdGF0ZShkb2N1bWVudFN0YXRlKTsKICAgICB9CiAgICAgaWYgKHN0YXRlT2JqZWN0
RGF0YUl0ZXIpIHsKICAgICAgICAgVmVjdG9yPHVpbnQ4X3Q+IHN0YXRlT2JqZWN0VmVjdG9yOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvU2Vzc2lvblN0YXRlQ29k
aW5nLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9TZXNzaW9uU3RhdGVDb2Rpbmcu
aAppbmRleCA1NmQ3YzQyYmJlNzQxODc0MTdjMzVhMTliYWNiYWM4ZDkxZGMwZjU1Li40ZDU4NjRh
MzRmYWI0MDEwYmQ0YTBlN2JjNWVjM2IzYTUxZDIyYWNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Db2NvYS9TZXNzaW9uU3RhdGVDb2RpbmcuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Db2NvYS9TZXNzaW9uU3RhdGVDb2RpbmcuaApAQCAtMzAsNyArMzAsNiBA
QAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotc3RydWN0IEZyYW1lU3RhdGU7CiBzdHJ1Y3QgU2Vz
c2lvblN0YXRlOwogCiBSZXRhaW5QdHI8TlNEYXRhPiBlbmNvZGVTZXNzaW9uU3RhdGUoY29uc3Qg
U2Vzc2lvblN0YXRlJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9MZWdh
Y3lTZXNzaW9uU3RhdGVDb2RpbmcuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0xlZ2FjeVNl
c3Npb25TdGF0ZUNvZGluZy5oCmluZGV4IDE3ZWJjNGRhYjRjOWZlZTkxOTc4MzY2Mzk1MGVmOGQ5
ZTE3OWY5ZjAuLjcxYWM0MDEyOGI1NWRjZDk2NTY5ZjczODI5Mzg3MWJkNDRjYzQ2NTYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0xlZ2FjeVNlc3Npb25TdGF0ZUNvZGluZy5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0xlZ2FjeVNlc3Npb25TdGF0ZUNvZGluZy5o
CkBAIC0zNCw3ICszNCw2IEBAIGNsYXNzIERhdGE7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1z
dHJ1Y3QgRnJhbWVTdGF0ZTsKIHN0cnVjdCBTZXNzaW9uU3RhdGU7CiAKIFJlZlB0cjxBUEk6OkRh
dGE+IGVuY29kZUxlZ2FjeVNlc3Npb25TdGF0ZShjb25zdCBTZXNzaW9uU3RhdGUmKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9MZWdhY3lTZXNzaW9uU3RhdGVDb2Rp
bmcuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL0xlZ2FjeVNlc3Npb25TdGF0ZUNv
ZGluZy5jcHAKaW5kZXggODg1ZDNmN2EyZDc1MWFkYjk4Zjg0MzdmMDEwMGYxODE2MmUxZjdmMS4u
NjNlM2FmNDFkYTA1NTc5YmI1NDJhMmU2Njc4ODk4MzEwZTU1ZDliOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL0xlZ2FjeVNlc3Npb25TdGF0ZUNvZGluZy5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL0xlZ2FjeVNlc3Npb25TdGF0ZUNvZGluZy5j
cHAKQEAgLTMyMyw5ICszMjMsNyBAQCBzdGF0aWMgdm9pZCBlbmNvZGVGcmFtZVN0YXRlTm9kZShI
aXN0b3J5RW50cnlEYXRhRW5jb2RlciYgZW5jb2RlciwgY29uc3QgRnJhbWVTdAogewogICAgIGVu
Y29kZXIgPDwgc3RhdGljX2Nhc3Q8dWludDY0X3Q+KGZyYW1lU3RhdGUuY2hpbGRyZW4uc2l6ZSgp
KTsKIAotICAgIFJFTEVBU0VfQVNTRVJUKCFmcmFtZVN0YXRlLmlzRGVzdHJ1Y3RlZCk7CiAgICAg
Zm9yIChjb25zdCBhdXRvJiBjaGlsZEZyYW1lU3RhdGUgOiBmcmFtZVN0YXRlLmNoaWxkcmVuKSB7
Ci0gICAgICAgIFJFTEVBU0VfQVNTRVJUKCFjaGlsZEZyYW1lU3RhdGUuaXNEZXN0cnVjdGVkKTsK
ICAgICAgICAgZW5jb2RlciA8PCBjaGlsZEZyYW1lU3RhdGUub3JpZ2luYWxVUkxTdHJpbmc7CiAg
ICAgICAgIGVuY29kZXIgPDwgY2hpbGRGcmFtZVN0YXRlLnVybFN0cmluZzsKIApAQCAtMzM0LDgg
KzMzMiw5IEBAIHN0YXRpYyB2b2lkIGVuY29kZUZyYW1lU3RhdGVOb2RlKEhpc3RvcnlFbnRyeURh
dGFFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBGcmFtZVN0CiAKICAgICBlbmNvZGVyIDw8IGZyYW1l
U3RhdGUuZG9jdW1lbnRTZXF1ZW5jZU51bWJlcjsKIAotICAgIGVuY29kZXIgPDwgc3RhdGljX2Nh
c3Q8dWludDY0X3Q+KGZyYW1lU3RhdGUuZG9jdW1lbnRTdGF0ZS5zaXplKCkpOwotICAgIGZvciAo
Y29uc3QgYXV0byYgZG9jdW1lbnRTdGF0ZSA6IGZyYW1lU3RhdGUuZG9jdW1lbnRTdGF0ZSkKKyAg
ICBmcmFtZVN0YXRlLnZhbGlkYXRlRG9jdW1lbnRTdGF0ZSgpOworICAgIGVuY29kZXIgPDwgc3Rh
dGljX2Nhc3Q8dWludDY0X3Q+KGZyYW1lU3RhdGUuZG9jdW1lbnRTdGF0ZSgpLnNpemUoKSk7Cisg
ICAgZm9yIChjb25zdCBhdXRvJiBkb2N1bWVudFN0YXRlIDogZnJhbWVTdGF0ZS5kb2N1bWVudFN0
YXRlKCkpCiAgICAgICAgIGVuY29kZXIgPDwgZG9jdW1lbnRTdGF0ZTsKIAogICAgIGlmIChmcmFt
ZVN0YXRlLmh0dHBCb2R5KSB7CkBAIC04OTksNiArODk4LDcgQEAgc3RhdGljIHZvaWQgZGVjb2Rl
QmFja0ZvcndhcmRUcmVlTm9kZShIaXN0b3J5RW50cnlEYXRhRGVjb2RlciYgZGVjb2RlciwgRnJh
bWVTdGEKICAgICB1aW50NjRfdCBkb2N1bWVudFN0YXRlVmVjdG9yU2l6ZTsKICAgICBkZWNvZGVy
ID4+IGRvY3VtZW50U3RhdGVWZWN0b3JTaXplOwogCisgICAgVmVjdG9yPFN0cmluZz4gZG9jdW1l
bnRTdGF0ZTsKICAgICBmb3IgKHVpbnQ2NF90IGkgPSAwOyBpIDwgZG9jdW1lbnRTdGF0ZVZlY3Rv
clNpemU7ICsraSkgewogICAgICAgICBTdHJpbmcgc3RhdGU7CiAgICAgICAgIGRlY29kZXIgPj4g
c3RhdGU7CkBAIC05MDYsOCArOTA2LDkgQEAgc3RhdGljIHZvaWQgZGVjb2RlQmFja0ZvcndhcmRU
cmVlTm9kZShIaXN0b3J5RW50cnlEYXRhRGVjb2RlciYgZGVjb2RlciwgRnJhbWVTdGEKICAgICAg
ICAgaWYgKCFkZWNvZGVyLmlzVmFsaWQoKSkKICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAg
ICBmcmFtZVN0YXRlLmRvY3VtZW50U3RhdGUuYXBwZW5kKFdURk1vdmUoc3RhdGUpKTsKKyAgICAg
ICAgZG9jdW1lbnRTdGF0ZS5hcHBlbmQoV1RGTW92ZShzdGF0ZSkpOwogICAgIH0KKyAgICBmcmFt
ZVN0YXRlLnNldERvY3VtZW50U3RhdGUoZG9jdW1lbnRTdGF0ZSwgRnJhbWVTdGF0ZTo6U2hvdWxk
VmFsaWRhdGU6Olllcyk7CiAKICAgICBTdHJpbmcgZm9ybUNvbnRlbnRUeXBlOwogICAgIGRlY29k
ZXIgPj4gZm9ybUNvbnRlbnRUeXBlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1Nlc3Npb25TdGF0ZUNvbnZlcnNpb24uY3BwIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1Nlc3Npb25TdGF0ZUNvbnZlcnNpb24uY3Bw
CmluZGV4IDAyNjk1ZDNlYjg5ZjVlNjQwOTM4NDE0MjQ5ZTdmNWM5ZjgyYWM0MTAuLmQ1ZTIwZjQx
MTdhYTUxZWM2YmI3MTNmMTYwNzdhY2YxZGJlMmFiYzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9TZXNzaW9uU3RhdGVDb252ZXJzaW9uLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvU2Vzc2lvblN0YXRl
Q29udmVyc2lvbi5jcHAKQEAgLTcyLDcgKzcyLDcgQEAgc3RhdGljIEZyYW1lU3RhdGUgdG9GcmFt
ZVN0YXRlKGNvbnN0IEhpc3RvcnlJdGVtJiBoaXN0b3J5SXRlbSkKICAgICBmcmFtZVN0YXRlLnJl
ZmVycmVyID0gaGlzdG9yeUl0ZW0ucmVmZXJyZXIoKTsKICAgICBmcmFtZVN0YXRlLnRhcmdldCA9
IGhpc3RvcnlJdGVtLnRhcmdldCgpOwogCi0gICAgZnJhbWVTdGF0ZS5kb2N1bWVudFN0YXRlID0g
aGlzdG9yeUl0ZW0uZG9jdW1lbnRTdGF0ZSgpOworICAgIGZyYW1lU3RhdGUuc2V0RG9jdW1lbnRT
dGF0ZShoaXN0b3J5SXRlbS5kb2N1bWVudFN0YXRlKCkpOwogICAgIGlmIChSZWZQdHI8U2VyaWFs
aXplZFNjcmlwdFZhbHVlPiBzdGF0ZU9iamVjdCA9IGhpc3RvcnlJdGVtLnN0YXRlT2JqZWN0KCkp
CiAgICAgICAgIGZyYW1lU3RhdGUuc3RhdGVPYmplY3REYXRhID0gc3RhdGVPYmplY3QtPmRhdGEo
KTsKIApAQCAtMTQ4LDcgKzE0OCw3IEBAIHN0YXRpYyB2b2lkIGFwcGx5RnJhbWVTdGF0ZShIaXN0
b3J5SXRlbSYgaGlzdG9yeUl0ZW0sIGNvbnN0IEZyYW1lU3RhdGUmIGZyYW1lU3RhCiAgICAgaGlz
dG9yeUl0ZW0uc2V0UmVmZXJyZXIoZnJhbWVTdGF0ZS5yZWZlcnJlcik7CiAgICAgaGlzdG9yeUl0
ZW0uc2V0VGFyZ2V0KGZyYW1lU3RhdGUudGFyZ2V0KTsKIAotICAgIGhpc3RvcnlJdGVtLnNldERv
Y3VtZW50U3RhdGUoZnJhbWVTdGF0ZS5kb2N1bWVudFN0YXRlKTsKKyAgICBoaXN0b3J5SXRlbS5z
ZXREb2N1bWVudFN0YXRlKGZyYW1lU3RhdGUuZG9jdW1lbnRTdGF0ZSgpKTsKIAogICAgIGlmIChm
cmFtZVN0YXRlLnN0YXRlT2JqZWN0RGF0YSkgewogICAgICAgICBWZWN0b3I8dWludDhfdD4gc3Rh
dGVPYmplY3REYXRhID0gZnJhbWVTdGF0ZS5zdGF0ZU9iamVjdERhdGEudmFsdWUoKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>422293</attachid>
            <date>2021-03-04 15:08:27 -0800</date>
            <delta_ts>2021-03-04 15:54:28 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-222587-20210304150826.patch</filename>
            <type>text/plain</type>
            <size>13402</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjczOTAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGZkMzBhYWNmZDJiMDE1YzE4
ODFiZWRlZmQzZWZhZDRmN2M2NDhhMDkuLjI5ZWEwODRmMDJhM2E2OTE5ZmNkYTFlMzI0OTA2ODIw
M2FjYmQ1MzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDIgQEAKKzIwMjEtMDMtMDQgIFNpaHVpIExp
dSAgPHNpaHVpX2xpdUBhcHBlLmNvbT4KKworICAgICAgICBWYWxpZGF0ZSBkb2N1bWVudFN0YXRl
IG9mIEZyYW1lU3RhdGUgd2hlbiBzZXR0aW5nIGFuZCBnZXR0aW5nIGl0CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjI1ODcKKworICAgICAgICBSZXZp
ZXdlZCBieSBHZW9mZnJleSBHYXJlbi4KKworICAgICAgICBJbiByZGFyOi8vNDg2MzQ1NTMsIHN0
cmluZ3Mgb2YgZG9jdW1lbnRTdGF0ZSBjYW4gYmUgaW52YWxpZCB3aGVuIHRoZXkgYXJlIGVuY29k
ZWQgaW4gZW5jb2RlRnJhbWVTdGF0ZU5vZGUKKyAgICAgICAgaW4gVUkgcHJvY2Vzcy4gVG8gZ2V0
IGEgYmV0dGVyIGlkZWEgb2Ygd2hlbiB0aGUgc3RyaW5ncyBiZWNvbWUgaW52YWxpZCwgYWRkIGNo
ZWNrcyBmb3IgZG9jdW1lbnRTdGF0ZSB3aGVuIAorICAgICAgICBnZXR0aW5nIGFuZCBzZXR0aW5n
IGl0LgorCisgICAgICAgIE5vIHRlc3QgYXMgbm8gYmVoYXZpb3IgY2hhbmdlLgorCisgICAgICAg
ICogU2hhcmVkL1Nlc3Npb25TdGF0ZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkZyYW1lU3RhdGU6
OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OkZyYW1lU3RhdGU6OmRlY29kZSk6Cisg
ICAgICAgIChXZWJLaXQ6OkZyYW1lU3RhdGU6OnZhbGlkYXRlRG9jdW1lbnRTdGF0ZSBjb25zdCk6
CisgICAgICAgIChXZWJLaXQ6OkZyYW1lU3RhdGU6OnNldERvY3VtZW50U3RhdGUpOgorICAgICAg
ICAqIFNoYXJlZC9TZXNzaW9uU3RhdGUuaDoKKyAgICAgICAgKFdlYktpdDo6RnJhbWVTdGF0ZTo6
RnJhbWVTdGF0ZSk6CisgICAgICAgIChXZWJLaXQ6OkZyYW1lU3RhdGU6On5GcmFtZVN0YXRlKToK
KyAgICAgICAgKFdlYktpdDo6RnJhbWVTdGF0ZTo6ZG9jdW1lbnRTdGF0ZSBjb25zdCk6CisgICAg
ICAgICogU2hhcmVkL1dlYkJhY2tGb3J3YXJkTGlzdEl0ZW0uY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJCYWNrRm9yd2FyZExpc3RJdGVtOjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJC
YWNrRm9yd2FyZExpc3RJdGVtOjp+V2ViQmFja0ZvcndhcmRMaXN0SXRlbSk6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYlZpZXdTZXNzaW9uU3RhdGUuY3BwOgorICAgICAg
ICAoZW5jb2RlRnJhbWVTdGF0ZSk6CisgICAgICAgIChkZWNvZGVGcmFtZVN0YXRlKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQ29jb2EvU2Vzc2lvblN0YXRlQ29kaW5nLmg6CisgICAgICAgICogVUlQ
cm9jZXNzL0xlZ2FjeVNlc3Npb25TdGF0ZUNvZGluZy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnNlc3Npb25T
dGF0ZSBjb25zdCk6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9MZWdhY3lTZXNzaW9uU3RhdGVD
b2RpbmcuY3BwOgorICAgICAgICAoV2ViS2l0OjplbmNvZGVGcmFtZVN0YXRlTm9kZSk6CisgICAg
ICAgIChXZWJLaXQ6OmRlY29kZUJhY2tGb3J3YXJkVHJlZU5vZGUpOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvU2Vzc2lvblN0YXRlQ29udmVyc2lvbi5jcHA6CisgICAgICAg
IChXZWJLaXQ6OnRvRnJhbWVTdGF0ZSk6CisgICAgICAgIChXZWJLaXQ6OmFwcGx5RnJhbWVTdGF0
ZSk6CisKIDIwMjEtMDMtMDQgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAg
ICAgICAgIFJFR1JFU1NJT04gKHIyNzM3MzIpOiBBU1NFUlRJT04gRkFJTEVEOiBDb21wbGV0aW9u
IGhhbmRsZXIgc2hvdWxkIGFsd2F5cyBiZSBjYWxsZWQgdW5kZXIgV2ViS2l0OjpSZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlUHJveHk6On5SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJveHkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1Nlc3Npb25TdGF0ZS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9TZXNzaW9uU3RhdGUuY3BwCmluZGV4IDJlY2M0ZjFmZDgzYTJhYmY1YWUz
Y2VmOTE1MTIzZWUyMjhlMjcyNTcuLjdiZDBiNThmNDRkNTYzMmZiOTFmZmFmNDQ2NzZkZWY5ZDA5
YzU2YjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1Nlc3Npb25TdGF0ZS5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvU2Vzc2lvblN0YXRlLmNwcApAQCAtMTEwLDcgKzEx
MCw3IEBAIHZvaWQgRnJhbWVTdGF0ZTo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29u
c3QKICAgICBlbmNvZGVyIDw8IHJlZmVycmVyOwogICAgIGVuY29kZXIgPDwgdGFyZ2V0OwogCi0g
ICAgZW5jb2RlciA8PCBkb2N1bWVudFN0YXRlOworICAgIGVuY29kZXIgPDwgbV9kb2N1bWVudFN0
YXRlOwogICAgIGVuY29kZXIgPDwgc3RhdGVPYmplY3REYXRhOwogCiAgICAgZW5jb2RlciA8PCBk
b2N1bWVudFNlcXVlbmNlTnVtYmVyOwpAQCAtMTQ2LDggKzE0NiwxMCBAQCBPcHRpb25hbDxGcmFt
ZVN0YXRlPiBGcmFtZVN0YXRlOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyKQogICAgIGlm
ICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LnRhcmdldCkpCiAgICAgICAgIHJldHVybiBXVEY6Om51
bGxvcHQ7CiAKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5kb2N1bWVudFN0YXRlKSkK
KyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5tX2RvY3VtZW50U3RhdGUpKQogICAgICAg
ICByZXR1cm4gV1RGOjpudWxsb3B0OworICAgIHJlc3VsdC52YWxpZGF0ZURvY3VtZW50U3RhdGUo
KTsKKwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LnN0YXRlT2JqZWN0RGF0YSkpCiAg
ICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAKQEAgLTI3MCw0ICsyNzIsMzAgQEAgT3B0aW9u
YWw8QmFja0ZvcndhcmRMaXN0U3RhdGU+IEJhY2tGb3J3YXJkTGlzdFN0YXRlOjpkZWNvZGUoSVBD
OjpEZWNvZGVyJiBkZWNvZGUKICAgICByZXR1cm4ge3sgV1RGTW92ZSgqaXRlbXMpLCBXVEZNb3Zl
KGN1cnJlbnRJbmRleCkgfX07CiB9CiAKK3ZvaWQgRnJhbWVTdGF0ZTo6dmFsaWRhdGVEb2N1bWVu
dFN0YXRlKCkgY29uc3QKK3sKKyAgICBmb3IgKGF1dG8mIHN0YXRlU3RyaW5nIDogbV9kb2N1bWVu
dFN0YXRlKSB7CisgICAgICAgIGlmIChzdGF0ZVN0cmluZy5pc051bGwoKSkKKyAgICAgICAgICAg
IGNvbnRpbnVlOworCisgICAgICAgIGlmICghc3RhdGVTdHJpbmcuaXM4Qml0KCkpCisgICAgICAg
ICAgICBjb250aW51ZTsKKworICAgICAgICAvLyByZGFyOi8vNDg2MzQ1NTMgaW5kaWNhdGVzIDgt
Yml0IHN0cmluZyBjYW4gYmUgaW52YWxpZC4KKyAgICAgICAgY29uc3QgTENoYXIqIGNoYXJhY3Rl
cnM4ID0gc3RhdGVTdHJpbmcuY2hhcmFjdGVyczgoKTsKKyAgICAgICAgZm9yICh1bnNpZ25lZCBp
ID0gMDsgaSA8IHN0YXRlU3RyaW5nLmxlbmd0aCgpOyArK2kpIHsKKyAgICAgICAgICAgIGF1dG8g
Y2hhcmFjdGVyID0gY2hhcmFjdGVyczhbaV07CisgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVChp
c0xhdGluMShjaGFyYWN0ZXIpKTsKKyAgICAgICAgfQorICAgIH0KK30KKwordm9pZCBGcmFtZVN0
YXRlOjpzZXREb2N1bWVudFN0YXRlKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBkb2N1bWVudFN0YXRl
LCBTaG91bGRWYWxpZGF0ZSBzaG91bGRWYWxpZGF0ZSkKK3sKKyAgICBtX2RvY3VtZW50U3RhdGUg
PSBkb2N1bWVudFN0YXRlOworCisgICAgaWYgKHNob3VsZFZhbGlkYXRlID09IFNob3VsZFZhbGlk
YXRlOjpZZXMpCisgICAgICAgIHZhbGlkYXRlRG9jdW1lbnRTdGF0ZSgpOworfQorCiB9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1Nlc3Npb25T
dGF0ZS5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvU2Vzc2lvblN0YXRlLmgKaW5kZXggMDU3Nzg2
ZmIwMjQxMzA3OGFiNjYwMGM1NzViMmEyZWYzMzdkNjk4Ny4uNmQzNzBhMDc3ODI1YTJiYjlkZTA5
NDUwMTM4NmM5ZjNmNDU4NTIyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvU2Vz
c2lvblN0YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvU2Vzc2lvblN0YXRlLmgKQEAg
LTgwLDE2ICs4MCwyNCBAQCBzdHJ1Y3QgSFRUUEJvZHkgewogICAgIFZlY3RvcjxFbGVtZW50PiBl
bGVtZW50czsKIH07CiAKLXN0cnVjdCBGcmFtZVN0YXRlIHsKK2NsYXNzIEZyYW1lU3RhdGUgewor
cHVibGljOgogICAgIHZvaWQgZW5jb2RlKElQQzo6RW5jb2RlciYpIGNvbnN0OwogICAgIHN0YXRp
YyBPcHRpb25hbDxGcmFtZVN0YXRlPiBkZWNvZGUoSVBDOjpEZWNvZGVyJik7CiAKKyAgICAvLyBU
aGVzZSBhcmUgdXNlZCB0byBoZWxwIGRlYnVnIDxyZGFyOi8vcHJvYmxlbS80ODYzNDU1Mz4uCisg
ICAgRnJhbWVTdGF0ZSgpIHsgUkVMRUFTRV9BU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOyB9Cisg
ICAgfkZyYW1lU3RhdGUoKSB7IFJFTEVBU0VfQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsgfQor
ICAgIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBkb2N1bWVudFN0YXRlKCkgY29uc3QgeyByZXR1cm4g
bV9kb2N1bWVudFN0YXRlOyB9CisgICAgZW51bSBjbGFzcyBTaG91bGRWYWxpZGF0ZSA6IGJvb2wg
eyBObywgWWVzIH07CisgICAgdm9pZCBzZXREb2N1bWVudFN0YXRlKGNvbnN0IFZlY3RvcjxTdHJp
bmc+JiwgU2hvdWxkVmFsaWRhdGUgPSBTaG91bGRWYWxpZGF0ZTo6Tm8pOworICAgIHZvaWQgdmFs
aWRhdGVEb2N1bWVudFN0YXRlKCkgY29uc3Q7CisKICAgICBTdHJpbmcgdXJsU3RyaW5nOwogICAg
IFN0cmluZyBvcmlnaW5hbFVSTFN0cmluZzsKICAgICBTdHJpbmcgcmVmZXJyZXI7CiAgICAgU3Ry
aW5nIHRhcmdldDsKIAotICAgIFZlY3RvcjxTdHJpbmc+IGRvY3VtZW50U3RhdGU7CiAgICAgT3B0
aW9uYWw8VmVjdG9yPHVpbnQ4X3Q+PiBzdGF0ZU9iamVjdERhdGE7CiAKICAgICBpbnQ2NF90IGRv
Y3VtZW50U2VxdWVuY2VOdW1iZXIgeyAwIH07CkBAIC0xMTMsOSArMTIxLDggQEAgc3RydWN0IEZy
YW1lU3RhdGUgewogCiAgICAgVmVjdG9yPEZyYW1lU3RhdGU+IGNoaWxkcmVuOwogCi0gICAgLy8g
VGhpcyBpcyBvbmx5IHVzZWQgdG8gaGVscCBkZWJ1ZyA8cmRhcjovL3Byb2JsZW0vNDg2MzQ1NTM+
LgotICAgIGJvb2wgaXNEZXN0cnVjdGVkIHsgZmFsc2UgfTsKLSAgICB+RnJhbWVTdGF0ZSgpIHsg
aXNEZXN0cnVjdGVkID0gdHJ1ZTsgfQorcHJpdmF0ZToKKyAgICBWZWN0b3I8U3RyaW5nPiBtX2Rv
Y3VtZW50U3RhdGU7CiB9OwogCiBzdHJ1Y3QgUGFnZVN0YXRlIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYkJhY2tGb3J3YXJkTGlzdEl0ZW0uY3BwIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViQmFja0ZvcndhcmRMaXN0SXRlbS5jcHAKaW5kZXggOGZlYWM1YTk0MWNhOWJk
NzQxYjNiODE4ZDg2OThjOTViZWQwYmVkMC4uN2I0ZWRjOWEzZmM4NmM5MjIyNjg1YTZmYzYyMTEx
MTA3YjY2M2I2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQmFja0Zvcndh
cmRMaXN0SXRlbS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQmFja0ZvcndhcmRM
aXN0SXRlbS5jcHAKQEAgLTM5LDYgKzM5LDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAK
IFJlZjxXZWJCYWNrRm9yd2FyZExpc3RJdGVtPiBXZWJCYWNrRm9yd2FyZExpc3RJdGVtOjpjcmVh
dGUoQmFja0ZvcndhcmRMaXN0SXRlbVN0YXRlJiYgYmFja0ZvcndhcmRMaXN0SXRlbVN0YXRlLCBX
ZWJQYWdlUHJveHlJZGVudGlmaWVyIHBhZ2VJRCkKIHsKKyAgICBSRUxFQVNFX0FTU0VSVChSdW5M
b29wOjppc01haW4oKSk7CiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViQmFja0ZvcndhcmRM
aXN0SXRlbShXVEZNb3ZlKGJhY2tGb3J3YXJkTGlzdEl0ZW1TdGF0ZSksIHBhZ2VJRCkpOwogfQog
CkBAIC01Myw2ICs1NCw3IEBAIFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW06OldlYkJhY2tGb3J3YXJk
TGlzdEl0ZW0oQmFja0ZvcndhcmRMaXN0SXRlbVN0YXRlJiYgYmFja0ZvCiAKIFdlYkJhY2tGb3J3
YXJkTGlzdEl0ZW06On5XZWJCYWNrRm9yd2FyZExpc3RJdGVtKCkKIHsKKyAgICBSRUxFQVNFX0FT
U0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAgICAgQVNTRVJUKGFsbEl0ZW1zKCkuZ2V0KG1faXRl
bVN0YXRlLmlkZW50aWZpZXIpID09IHRoaXMpOwogICAgIGFsbEl0ZW1zKCkucmVtb3ZlKG1faXRl
bVN0YXRlLmlkZW50aWZpZXIpOwogICAgIHJlbW92ZUZyb21CYWNrRm9yd2FyZENhY2hlKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJWaWV3
U2Vzc2lvblN0YXRlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktp
dFdlYlZpZXdTZXNzaW9uU3RhdGUuY3BwCmluZGV4IDg1ZjIzZWI1NGQ2YzAyN2FiMTM3ZDFhZWJl
NmFlZTk0MmE3MzFiOGEuLmIyZGU1YTJmMDNlYTFhYmU5YWFhMjVmNGM4YThhOTE5ZmQ2MjMyOWYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYlZp
ZXdTZXNzaW9uU3RhdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGli
L1dlYktpdFdlYlZpZXdTZXNzaW9uU3RhdGUuY3BwCkBAIC0xNjIsNyArMTYyLDcgQEAgc3RhdGlj
IGlubGluZSB2b2lkIGVuY29kZUZyYW1lU3RhdGUoR1ZhcmlhbnRCdWlsZGVyKiBzZXNzaW9uQnVp
bGRlciwgY29uc3QgRnJhbWUKICAgICBnX3ZhcmlhbnRfYnVpbGRlcl9hZGQoc2Vzc2lvbkJ1aWxk
ZXIsICJzIiwgZnJhbWVTdGF0ZS5yZWZlcnJlci51dGY4KCkuZGF0YSgpKTsKICAgICBnX3Zhcmlh
bnRfYnVpbGRlcl9hZGQoc2Vzc2lvbkJ1aWxkZXIsICJzIiwgZnJhbWVTdGF0ZS50YXJnZXQudXRm
OCgpLmRhdGEoKSk7CiAgICAgZ192YXJpYW50X2J1aWxkZXJfb3BlbihzZXNzaW9uQnVpbGRlciwg
R19WQVJJQU5UX1RZUEUoImFzIikpOwotICAgIGZvciAoY29uc3QgYXV0byYgc3RhdGUgOiBmcmFt
ZVN0YXRlLmRvY3VtZW50U3RhdGUpCisgICAgZm9yIChjb25zdCBhdXRvJiBzdGF0ZSA6IGZyYW1l
U3RhdGUuZG9jdW1lbnRTdGF0ZSgpKQogICAgICAgICBnX3ZhcmlhbnRfYnVpbGRlcl9hZGQoc2Vz
c2lvbkJ1aWxkZXIsICJzIiwgc3RhdGUudXRmOCgpLmRhdGEoKSk7CiAgICAgZ192YXJpYW50X2J1
aWxkZXJfY2xvc2Uoc2Vzc2lvbkJ1aWxkZXIpOwogICAgIGlmICghZnJhbWVTdGF0ZS5zdGF0ZU9i
amVjdERhdGEpCkBAIC0zMDUsMTAgKzMwNSwxMiBAQCBzdGF0aWMgaW5saW5lIHZvaWQgZGVjb2Rl
RnJhbWVTdGF0ZShHVmFyaWFudCogZnJhbWVTdGF0ZVZhcmlhbnQsIEZyYW1lU3RhdGUmIGZyYQog
ICAgICAgICBmcmFtZVN0YXRlLnJlZmVycmVyID0gU3RyaW5nOjpmcm9tVVRGOChyZWZlcnJlcik7
CiAgICAgZnJhbWVTdGF0ZS50YXJnZXQgPSBTdHJpbmc6OmZyb21VVEY4KHRhcmdldCk7CiAgICAg
aWYgKGdzaXplIGRvY3VtZW50U3RhdGVMZW5ndGggPSBnX3ZhcmlhbnRfaXRlcl9uX2NoaWxkcmVu
KGRvY3VtZW50U3RhdGVJdGVyLmdldCgpKSkgewotICAgICAgICBmcmFtZVN0YXRlLmRvY3VtZW50
U3RhdGUucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShkb2N1bWVudFN0YXRlTGVuZ3RoKTsKKyAgICAg
ICAgVmVjdG9yPFN0cmluZz4gZG9jdW1lbnRTdGF0ZTsKKyAgICAgICAgZG9jdW1lbnRTdGF0ZS5y
ZXNlcnZlSW5pdGlhbENhcGFjaXR5KGRvY3VtZW50U3RhdGVMZW5ndGgpOwogICAgICAgICBjb25z
dCBjaGFyKiBkb2N1bWVudFN0YXRlU3RyaW5nOwogICAgICAgICB3aGlsZSAoZ192YXJpYW50X2l0
ZXJfbmV4dChkb2N1bWVudFN0YXRlSXRlci5nZXQoKSwgIiZzIiwgJmRvY3VtZW50U3RhdGVTdHJp
bmcpKQotICAgICAgICAgICAgZnJhbWVTdGF0ZS5kb2N1bWVudFN0YXRlLnVuY2hlY2tlZEFwcGVu
ZChTdHJpbmc6OmZyb21VVEY4KGRvY3VtZW50U3RhdGVTdHJpbmcpKTsKKyAgICAgICAgICAgIGRv
Y3VtZW50U3RhdGUudW5jaGVja2VkQXBwZW5kKFN0cmluZzo6ZnJvbVVURjgoZG9jdW1lbnRTdGF0
ZVN0cmluZykpOworICAgICAgICBmcmFtZVN0YXRlLnNldERvY3VtZW50U3RhdGUoZG9jdW1lbnRT
dGF0ZSk7CiAgICAgfQogICAgIGlmIChzdGF0ZU9iamVjdERhdGFJdGVyKSB7CiAgICAgICAgIFZl
Y3Rvcjx1aW50OF90PiBzdGF0ZU9iamVjdFZlY3RvcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0NvY29hL1Nlc3Npb25TdGF0ZUNvZGluZy5oIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQ29jb2EvU2Vzc2lvblN0YXRlQ29kaW5nLmgKaW5kZXggNTZkN2M0MmJiZTc0MTg3
NDE3YzM1YTE5YmFjYmFjOGQ5MWRjMGY1NS4uNGQ1ODY0YTM0ZmFiNDAxMGJkNGEwZTdiYzVlYzNi
M2E1MWQyMmFjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvU2Vz
c2lvblN0YXRlQ29kaW5nLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvU2Vz
c2lvblN0YXRlQ29kaW5nLmgKQEAgLTMwLDcgKzMwLDYgQEAKIAogbmFtZXNwYWNlIFdlYktpdCB7
CiAKLXN0cnVjdCBGcmFtZVN0YXRlOwogc3RydWN0IFNlc3Npb25TdGF0ZTsKIAogUmV0YWluUHRy
PE5TRGF0YT4gZW5jb2RlU2Vzc2lvblN0YXRlKGNvbnN0IFNlc3Npb25TdGF0ZSYpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTGVnYWN5U2Vzc2lvblN0YXRlQ29kaW5nLmgg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9MZWdhY3lTZXNzaW9uU3RhdGVDb2RpbmcuaAppbmRl
eCAxN2ViYzRkYWI0YzlmZWU5MTk3ODM2NjM5NTBlZjhkOWUxNzlmOWYwLi43MWFjNDAxMjhiNTVk
Y2Q5NjU2OWY3MzgyOTM4NzFiZDQ0Y2M0NjU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9MZWdhY3lTZXNzaW9uU3RhdGVDb2RpbmcuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9MZWdhY3lTZXNzaW9uU3RhdGVDb2RpbmcuaApAQCAtMzQsNyArMzQsNiBAQCBjbGFz
cyBEYXRhOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotc3RydWN0IEZyYW1lU3RhdGU7CiBzdHJ1
Y3QgU2Vzc2lvblN0YXRlOwogCiBSZWZQdHI8QVBJOjpEYXRhPiBlbmNvZGVMZWdhY3lTZXNzaW9u
U3RhdGUoY29uc3QgU2Vzc2lvblN0YXRlJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmNwcAppbmRleCAwMzgxMDVkNDA4YWMwOTgzNWNiOTY1MGUwMDFhODhhYzU4NzZlN2I3
Li5jM2QyZmU3ZDgzN2Y2ZWE4MWJjZjkyODI5Y2NiYjBhMmU3OTQ5ZjY4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTM1ODIsNiArMzU4Miw3IEBAIHZvaWQg
V2ViUGFnZVByb3h5OjpzZXRDdXN0b21UZXh0RW5jb2RpbmdOYW1lKGNvbnN0IFN0cmluZyYgZW5j
b2RpbmdOYW1lKQogCiBTZXNzaW9uU3RhdGUgV2ViUGFnZVByb3h5OjpzZXNzaW9uU3RhdGUoV1RG
OjpGdW5jdGlvbjxib29sIChXZWJCYWNrRm9yd2FyZExpc3RJdGVtJik+JiYgZmlsdGVyKSBjb25z
dAogeworICAgIFJFTEVBU0VfQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKICAgICBTZXNzaW9u
U3RhdGUgc2Vzc2lvblN0YXRlOwogCiAgICAgc2Vzc2lvblN0YXRlLmJhY2tGb3J3YXJkTGlzdFN0
YXRlID0gbV9iYWNrRm9yd2FyZExpc3QtPmJhY2tGb3J3YXJkTGlzdFN0YXRlKFdURk1vdmUoZmls
dGVyKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvTGVnYWN5U2Vz
c2lvblN0YXRlQ29kaW5nLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9MZWdhY3lT
ZXNzaW9uU3RhdGVDb2RpbmcuY3BwCmluZGV4IDg4NWQzZjdhMmQ3NTFhZGI5OGY4NDM3ZjAxMDBm
MTgxNjJlMWY3ZjEuLjYzZTNhZjQxZGEwNTU3OWJiNTQyYTJlNjY3ODg5ODMxMGU1NWQ5YjggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9MZWdhY3lTZXNzaW9uU3RhdGVD
b2RpbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9MZWdhY3lTZXNzaW9u
U3RhdGVDb2RpbmcuY3BwCkBAIC0zMjMsOSArMzIzLDcgQEAgc3RhdGljIHZvaWQgZW5jb2RlRnJh
bWVTdGF0ZU5vZGUoSGlzdG9yeUVudHJ5RGF0YUVuY29kZXImIGVuY29kZXIsIGNvbnN0IEZyYW1l
U3QKIHsKICAgICBlbmNvZGVyIDw8IHN0YXRpY19jYXN0PHVpbnQ2NF90PihmcmFtZVN0YXRlLmNo
aWxkcmVuLnNpemUoKSk7CiAKLSAgICBSRUxFQVNFX0FTU0VSVCghZnJhbWVTdGF0ZS5pc0Rlc3Ry
dWN0ZWQpOwogICAgIGZvciAoY29uc3QgYXV0byYgY2hpbGRGcmFtZVN0YXRlIDogZnJhbWVTdGF0
ZS5jaGlsZHJlbikgewotICAgICAgICBSRUxFQVNFX0FTU0VSVCghY2hpbGRGcmFtZVN0YXRlLmlz
RGVzdHJ1Y3RlZCk7CiAgICAgICAgIGVuY29kZXIgPDwgY2hpbGRGcmFtZVN0YXRlLm9yaWdpbmFs
VVJMU3RyaW5nOwogICAgICAgICBlbmNvZGVyIDw8IGNoaWxkRnJhbWVTdGF0ZS51cmxTdHJpbmc7
CiAKQEAgLTMzNCw4ICszMzIsOSBAQCBzdGF0aWMgdm9pZCBlbmNvZGVGcmFtZVN0YXRlTm9kZShI
aXN0b3J5RW50cnlEYXRhRW5jb2RlciYgZW5jb2RlciwgY29uc3QgRnJhbWVTdAogCiAgICAgZW5j
b2RlciA8PCBmcmFtZVN0YXRlLmRvY3VtZW50U2VxdWVuY2VOdW1iZXI7CiAKLSAgICBlbmNvZGVy
IDw8IHN0YXRpY19jYXN0PHVpbnQ2NF90PihmcmFtZVN0YXRlLmRvY3VtZW50U3RhdGUuc2l6ZSgp
KTsKLSAgICBmb3IgKGNvbnN0IGF1dG8mIGRvY3VtZW50U3RhdGUgOiBmcmFtZVN0YXRlLmRvY3Vt
ZW50U3RhdGUpCisgICAgZnJhbWVTdGF0ZS52YWxpZGF0ZURvY3VtZW50U3RhdGUoKTsKKyAgICBl
bmNvZGVyIDw8IHN0YXRpY19jYXN0PHVpbnQ2NF90PihmcmFtZVN0YXRlLmRvY3VtZW50U3RhdGUo
KS5zaXplKCkpOworICAgIGZvciAoY29uc3QgYXV0byYgZG9jdW1lbnRTdGF0ZSA6IGZyYW1lU3Rh
dGUuZG9jdW1lbnRTdGF0ZSgpKQogICAgICAgICBlbmNvZGVyIDw8IGRvY3VtZW50U3RhdGU7CiAK
ICAgICBpZiAoZnJhbWVTdGF0ZS5odHRwQm9keSkgewpAQCAtODk5LDYgKzg5OCw3IEBAIHN0YXRp
YyB2b2lkIGRlY29kZUJhY2tGb3J3YXJkVHJlZU5vZGUoSGlzdG9yeUVudHJ5RGF0YURlY29kZXIm
IGRlY29kZXIsIEZyYW1lU3RhCiAgICAgdWludDY0X3QgZG9jdW1lbnRTdGF0ZVZlY3RvclNpemU7
CiAgICAgZGVjb2RlciA+PiBkb2N1bWVudFN0YXRlVmVjdG9yU2l6ZTsKIAorICAgIFZlY3RvcjxT
dHJpbmc+IGRvY3VtZW50U3RhdGU7CiAgICAgZm9yICh1aW50NjRfdCBpID0gMDsgaSA8IGRvY3Vt
ZW50U3RhdGVWZWN0b3JTaXplOyArK2kpIHsKICAgICAgICAgU3RyaW5nIHN0YXRlOwogICAgICAg
ICBkZWNvZGVyID4+IHN0YXRlOwpAQCAtOTA2LDggKzkwNiw5IEBAIHN0YXRpYyB2b2lkIGRlY29k
ZUJhY2tGb3J3YXJkVHJlZU5vZGUoSGlzdG9yeUVudHJ5RGF0YURlY29kZXImIGRlY29kZXIsIEZy
YW1lU3RhCiAgICAgICAgIGlmICghZGVjb2Rlci5pc1ZhbGlkKCkpCiAgICAgICAgICAgICByZXR1
cm47CiAKLSAgICAgICAgZnJhbWVTdGF0ZS5kb2N1bWVudFN0YXRlLmFwcGVuZChXVEZNb3ZlKHN0
YXRlKSk7CisgICAgICAgIGRvY3VtZW50U3RhdGUuYXBwZW5kKFdURk1vdmUoc3RhdGUpKTsKICAg
ICB9CisgICAgZnJhbWVTdGF0ZS5zZXREb2N1bWVudFN0YXRlKGRvY3VtZW50U3RhdGUsIEZyYW1l
U3RhdGU6OlNob3VsZFZhbGlkYXRlOjpZZXMpOwogCiAgICAgU3RyaW5nIGZvcm1Db250ZW50VHlw
ZTsKICAgICBkZWNvZGVyID4+IGZvcm1Db250ZW50VHlwZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9TZXNzaW9uU3RhdGVDb252ZXJzaW9uLmNw
cCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9TZXNzaW9uU3RhdGVD
b252ZXJzaW9uLmNwcAppbmRleCAwMjY5NWQzZWI4OWY1ZTY0MDkzODQxNDI0OWU3ZjVjOWY4MmFj
NDEwLi5kNWUyMGY0MTE3YWE1MWVjNmJiNzEzZjE2MDc3YWNmMWRiZTJhYmMyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvU2Vzc2lvblN0YXRlQ29u
dmVyc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1Nlc3Npb25TdGF0ZUNvbnZlcnNpb24uY3BwCkBAIC03Miw3ICs3Miw3IEBAIHN0YXRpYyBGcmFt
ZVN0YXRlIHRvRnJhbWVTdGF0ZShjb25zdCBIaXN0b3J5SXRlbSYgaGlzdG9yeUl0ZW0pCiAgICAg
ZnJhbWVTdGF0ZS5yZWZlcnJlciA9IGhpc3RvcnlJdGVtLnJlZmVycmVyKCk7CiAgICAgZnJhbWVT
dGF0ZS50YXJnZXQgPSBoaXN0b3J5SXRlbS50YXJnZXQoKTsKIAotICAgIGZyYW1lU3RhdGUuZG9j
dW1lbnRTdGF0ZSA9IGhpc3RvcnlJdGVtLmRvY3VtZW50U3RhdGUoKTsKKyAgICBmcmFtZVN0YXRl
LnNldERvY3VtZW50U3RhdGUoaGlzdG9yeUl0ZW0uZG9jdW1lbnRTdGF0ZSgpKTsKICAgICBpZiAo
UmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gc3RhdGVPYmplY3QgPSBoaXN0b3J5SXRlbS5z
dGF0ZU9iamVjdCgpKQogICAgICAgICBmcmFtZVN0YXRlLnN0YXRlT2JqZWN0RGF0YSA9IHN0YXRl
T2JqZWN0LT5kYXRhKCk7CiAKQEAgLTE0OCw3ICsxNDgsNyBAQCBzdGF0aWMgdm9pZCBhcHBseUZy
YW1lU3RhdGUoSGlzdG9yeUl0ZW0mIGhpc3RvcnlJdGVtLCBjb25zdCBGcmFtZVN0YXRlJiBmcmFt
ZVN0YQogICAgIGhpc3RvcnlJdGVtLnNldFJlZmVycmVyKGZyYW1lU3RhdGUucmVmZXJyZXIpOwog
ICAgIGhpc3RvcnlJdGVtLnNldFRhcmdldChmcmFtZVN0YXRlLnRhcmdldCk7CiAKLSAgICBoaXN0
b3J5SXRlbS5zZXREb2N1bWVudFN0YXRlKGZyYW1lU3RhdGUuZG9jdW1lbnRTdGF0ZSk7CisgICAg
aGlzdG9yeUl0ZW0uc2V0RG9jdW1lbnRTdGF0ZShmcmFtZVN0YXRlLmRvY3VtZW50U3RhdGUoKSk7
CiAKICAgICBpZiAoZnJhbWVTdGF0ZS5zdGF0ZU9iamVjdERhdGEpIHsKICAgICAgICAgVmVjdG9y
PHVpbnQ4X3Q+IHN0YXRlT2JqZWN0RGF0YSA9IGZyYW1lU3RhdGUuc3RhdGVPYmplY3REYXRhLnZh
bHVlKCk7Cg==
</data>
<flag name="commit-queue"
          id="441355"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>422297</attachid>
            <date>2021-03-04 15:23:21 -0800</date>
            <delta_ts>2021-03-04 16:12:47 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-222587-20210304152320.patch</filename>
            <type>text/plain</type>
            <size>13626</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjczOTAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGZkMzBhYWNmZDJiMDE1YzE4
ODFiZWRlZmQzZWZhZDRmN2M2NDhhMDkuLjI5ZWEwODRmMDJhM2E2OTE5ZmNkYTFlMzI0OTA2ODIw
M2FjYmQ1MzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDIgQEAKKzIwMjEtMDMtMDQgIFNpaHVpIExp
dSAgPHNpaHVpX2xpdUBhcHBlLmNvbT4KKworICAgICAgICBWYWxpZGF0ZSBkb2N1bWVudFN0YXRl
IG9mIEZyYW1lU3RhdGUgd2hlbiBzZXR0aW5nIGFuZCBnZXR0aW5nIGl0CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjI1ODcKKworICAgICAgICBSZXZp
ZXdlZCBieSBHZW9mZnJleSBHYXJlbi4KKworICAgICAgICBJbiByZGFyOi8vNDg2MzQ1NTMsIHN0
cmluZ3Mgb2YgZG9jdW1lbnRTdGF0ZSBjYW4gYmUgaW52YWxpZCB3aGVuIHRoZXkgYXJlIGVuY29k
ZWQgaW4gZW5jb2RlRnJhbWVTdGF0ZU5vZGUKKyAgICAgICAgaW4gVUkgcHJvY2Vzcy4gVG8gZ2V0
IGEgYmV0dGVyIGlkZWEgb2Ygd2hlbiB0aGUgc3RyaW5ncyBiZWNvbWUgaW52YWxpZCwgYWRkIGNo
ZWNrcyBmb3IgZG9jdW1lbnRTdGF0ZSB3aGVuIAorICAgICAgICBnZXR0aW5nIGFuZCBzZXR0aW5n
IGl0LgorCisgICAgICAgIE5vIHRlc3QgYXMgbm8gYmVoYXZpb3IgY2hhbmdlLgorCisgICAgICAg
ICogU2hhcmVkL1Nlc3Npb25TdGF0ZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkZyYW1lU3RhdGU6
OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OkZyYW1lU3RhdGU6OmRlY29kZSk6Cisg
ICAgICAgIChXZWJLaXQ6OkZyYW1lU3RhdGU6OnZhbGlkYXRlRG9jdW1lbnRTdGF0ZSBjb25zdCk6
CisgICAgICAgIChXZWJLaXQ6OkZyYW1lU3RhdGU6OnNldERvY3VtZW50U3RhdGUpOgorICAgICAg
ICAqIFNoYXJlZC9TZXNzaW9uU3RhdGUuaDoKKyAgICAgICAgKFdlYktpdDo6RnJhbWVTdGF0ZTo6
RnJhbWVTdGF0ZSk6CisgICAgICAgIChXZWJLaXQ6OkZyYW1lU3RhdGU6On5GcmFtZVN0YXRlKToK
KyAgICAgICAgKFdlYktpdDo6RnJhbWVTdGF0ZTo6ZG9jdW1lbnRTdGF0ZSBjb25zdCk6CisgICAg
ICAgICogU2hhcmVkL1dlYkJhY2tGb3J3YXJkTGlzdEl0ZW0uY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJCYWNrRm9yd2FyZExpc3RJdGVtOjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJC
YWNrRm9yd2FyZExpc3RJdGVtOjp+V2ViQmFja0ZvcndhcmRMaXN0SXRlbSk6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYlZpZXdTZXNzaW9uU3RhdGUuY3BwOgorICAgICAg
ICAoZW5jb2RlRnJhbWVTdGF0ZSk6CisgICAgICAgIChkZWNvZGVGcmFtZVN0YXRlKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQ29jb2EvU2Vzc2lvblN0YXRlQ29kaW5nLmg6CisgICAgICAgICogVUlQ
cm9jZXNzL0xlZ2FjeVNlc3Npb25TdGF0ZUNvZGluZy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnNlc3Npb25T
dGF0ZSBjb25zdCk6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9MZWdhY3lTZXNzaW9uU3RhdGVD
b2RpbmcuY3BwOgorICAgICAgICAoV2ViS2l0OjplbmNvZGVGcmFtZVN0YXRlTm9kZSk6CisgICAg
ICAgIChXZWJLaXQ6OmRlY29kZUJhY2tGb3J3YXJkVHJlZU5vZGUpOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvU2Vzc2lvblN0YXRlQ29udmVyc2lvbi5jcHA6CisgICAgICAg
IChXZWJLaXQ6OnRvRnJhbWVTdGF0ZSk6CisgICAgICAgIChXZWJLaXQ6OmFwcGx5RnJhbWVTdGF0
ZSk6CisKIDIwMjEtMDMtMDQgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAg
ICAgICAgIFJFR1JFU1NJT04gKHIyNzM3MzIpOiBBU1NFUlRJT04gRkFJTEVEOiBDb21wbGV0aW9u
IGhhbmRsZXIgc2hvdWxkIGFsd2F5cyBiZSBjYWxsZWQgdW5kZXIgV2ViS2l0OjpSZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlUHJveHk6On5SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJveHkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1Nlc3Npb25TdGF0ZS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9TZXNzaW9uU3RhdGUuY3BwCmluZGV4IDJlY2M0ZjFmZDgzYTJhYmY1YWUz
Y2VmOTE1MTIzZWUyMjhlMjcyNTcuLjdiZDBiNThmNDRkNTYzMmZiOTFmZmFmNDQ2NzZkZWY5ZDA5
YzU2YjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1Nlc3Npb25TdGF0ZS5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvU2Vzc2lvblN0YXRlLmNwcApAQCAtMTEwLDcgKzEx
MCw3IEBAIHZvaWQgRnJhbWVTdGF0ZTo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29u
c3QKICAgICBlbmNvZGVyIDw8IHJlZmVycmVyOwogICAgIGVuY29kZXIgPDwgdGFyZ2V0OwogCi0g
ICAgZW5jb2RlciA8PCBkb2N1bWVudFN0YXRlOworICAgIGVuY29kZXIgPDwgbV9kb2N1bWVudFN0
YXRlOwogICAgIGVuY29kZXIgPDwgc3RhdGVPYmplY3REYXRhOwogCiAgICAgZW5jb2RlciA8PCBk
b2N1bWVudFNlcXVlbmNlTnVtYmVyOwpAQCAtMTQ2LDggKzE0NiwxMCBAQCBPcHRpb25hbDxGcmFt
ZVN0YXRlPiBGcmFtZVN0YXRlOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyKQogICAgIGlm
ICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LnRhcmdldCkpCiAgICAgICAgIHJldHVybiBXVEY6Om51
bGxvcHQ7CiAKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5kb2N1bWVudFN0YXRlKSkK
KyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5tX2RvY3VtZW50U3RhdGUpKQogICAgICAg
ICByZXR1cm4gV1RGOjpudWxsb3B0OworICAgIHJlc3VsdC52YWxpZGF0ZURvY3VtZW50U3RhdGUo
KTsKKwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LnN0YXRlT2JqZWN0RGF0YSkpCiAg
ICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAKQEAgLTI3MCw0ICsyNzIsMzAgQEAgT3B0aW9u
YWw8QmFja0ZvcndhcmRMaXN0U3RhdGU+IEJhY2tGb3J3YXJkTGlzdFN0YXRlOjpkZWNvZGUoSVBD
OjpEZWNvZGVyJiBkZWNvZGUKICAgICByZXR1cm4ge3sgV1RGTW92ZSgqaXRlbXMpLCBXVEZNb3Zl
KGN1cnJlbnRJbmRleCkgfX07CiB9CiAKK3ZvaWQgRnJhbWVTdGF0ZTo6dmFsaWRhdGVEb2N1bWVu
dFN0YXRlKCkgY29uc3QKK3sKKyAgICBmb3IgKGF1dG8mIHN0YXRlU3RyaW5nIDogbV9kb2N1bWVu
dFN0YXRlKSB7CisgICAgICAgIGlmIChzdGF0ZVN0cmluZy5pc051bGwoKSkKKyAgICAgICAgICAg
IGNvbnRpbnVlOworCisgICAgICAgIGlmICghc3RhdGVTdHJpbmcuaXM4Qml0KCkpCisgICAgICAg
ICAgICBjb250aW51ZTsKKworICAgICAgICAvLyByZGFyOi8vNDg2MzQ1NTMgaW5kaWNhdGVzIDgt
Yml0IHN0cmluZyBjYW4gYmUgaW52YWxpZC4KKyAgICAgICAgY29uc3QgTENoYXIqIGNoYXJhY3Rl
cnM4ID0gc3RhdGVTdHJpbmcuY2hhcmFjdGVyczgoKTsKKyAgICAgICAgZm9yICh1bnNpZ25lZCBp
ID0gMDsgaSA8IHN0YXRlU3RyaW5nLmxlbmd0aCgpOyArK2kpIHsKKyAgICAgICAgICAgIGF1dG8g
Y2hhcmFjdGVyID0gY2hhcmFjdGVyczhbaV07CisgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVChp
c0xhdGluMShjaGFyYWN0ZXIpKTsKKyAgICAgICAgfQorICAgIH0KK30KKwordm9pZCBGcmFtZVN0
YXRlOjpzZXREb2N1bWVudFN0YXRlKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBkb2N1bWVudFN0YXRl
LCBTaG91bGRWYWxpZGF0ZSBzaG91bGRWYWxpZGF0ZSkKK3sKKyAgICBtX2RvY3VtZW50U3RhdGUg
PSBkb2N1bWVudFN0YXRlOworCisgICAgaWYgKHNob3VsZFZhbGlkYXRlID09IFNob3VsZFZhbGlk
YXRlOjpZZXMpCisgICAgICAgIHZhbGlkYXRlRG9jdW1lbnRTdGF0ZSgpOworfQorCiB9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1Nlc3Npb25T
dGF0ZS5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvU2Vzc2lvblN0YXRlLmgKaW5kZXggMDU3Nzg2
ZmIwMjQxMzA3OGFiNjYwMGM1NzViMmEyZWYzMzdkNjk4Ny4uYjRhMWNlYzc4YmQ0YjczNGRjM2Nh
YzE3MGExYjhiMWM1NThhMWVkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvU2Vz
c2lvblN0YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvU2Vzc2lvblN0YXRlLmgKQEAg
LTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5o
PgogI2luY2x1ZGUgPHd0Zi9FbnVtVHJhaXRzLmg+CiAjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+
CisjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KICNpbmNsdWRlIDx3dGYvVVJMLmg+CiAjaW5jbHVk
ZSA8d3RmL1ZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgpAQCAtODAs
MTYgKzgxLDI0IEBAIHN0cnVjdCBIVFRQQm9keSB7CiAgICAgVmVjdG9yPEVsZW1lbnQ+IGVsZW1l
bnRzOwogfTsKIAotc3RydWN0IEZyYW1lU3RhdGUgeworY2xhc3MgRnJhbWVTdGF0ZSB7CitwdWJs
aWM6CiAgICAgdm9pZCBlbmNvZGUoSVBDOjpFbmNvZGVyJikgY29uc3Q7CiAgICAgc3RhdGljIE9w
dGlvbmFsPEZyYW1lU3RhdGU+IGRlY29kZShJUEM6OkRlY29kZXImKTsKIAorICAgIC8vIFRoZXNl
IGFyZSB1c2VkIHRvIGhlbHAgZGVidWcgPHJkYXI6Ly9wcm9ibGVtLzQ4NjM0NTUzPi4KKyAgICBG
cmFtZVN0YXRlKCkgeyBSRUxFQVNFX0FTU0VSVChSdW5Mb29wOjppc01haW4oKSk7IH0KKyAgICB+
RnJhbWVTdGF0ZSgpIHsgUkVMRUFTRV9BU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOyB9CisgICAg
Y29uc3QgVmVjdG9yPFN0cmluZz4mIGRvY3VtZW50U3RhdGUoKSBjb25zdCB7IHJldHVybiBtX2Rv
Y3VtZW50U3RhdGU7IH0KKyAgICBlbnVtIGNsYXNzIFNob3VsZFZhbGlkYXRlIDogYm9vbCB7IE5v
LCBZZXMgfTsKKyAgICB2b2lkIHNldERvY3VtZW50U3RhdGUoY29uc3QgVmVjdG9yPFN0cmluZz4m
LCBTaG91bGRWYWxpZGF0ZSA9IFNob3VsZFZhbGlkYXRlOjpObyk7CisgICAgdm9pZCB2YWxpZGF0
ZURvY3VtZW50U3RhdGUoKSBjb25zdDsKKwogICAgIFN0cmluZyB1cmxTdHJpbmc7CiAgICAgU3Ry
aW5nIG9yaWdpbmFsVVJMU3RyaW5nOwogICAgIFN0cmluZyByZWZlcnJlcjsKICAgICBTdHJpbmcg
dGFyZ2V0OwogCi0gICAgVmVjdG9yPFN0cmluZz4gZG9jdW1lbnRTdGF0ZTsKICAgICBPcHRpb25h
bDxWZWN0b3I8dWludDhfdD4+IHN0YXRlT2JqZWN0RGF0YTsKIAogICAgIGludDY0X3QgZG9jdW1l
bnRTZXF1ZW5jZU51bWJlciB7IDAgfTsKQEAgLTExMyw5ICsxMjIsOCBAQCBzdHJ1Y3QgRnJhbWVT
dGF0ZSB7CiAKICAgICBWZWN0b3I8RnJhbWVTdGF0ZT4gY2hpbGRyZW47CiAKLSAgICAvLyBUaGlz
IGlzIG9ubHkgdXNlZCB0byBoZWxwIGRlYnVnIDxyZGFyOi8vcHJvYmxlbS80ODYzNDU1Mz4uCi0g
ICAgYm9vbCBpc0Rlc3RydWN0ZWQgeyBmYWxzZSB9OwotICAgIH5GcmFtZVN0YXRlKCkgeyBpc0Rl
c3RydWN0ZWQgPSB0cnVlOyB9Citwcml2YXRlOgorICAgIFZlY3RvcjxTdHJpbmc+IG1fZG9jdW1l
bnRTdGF0ZTsKIH07CiAKIHN0cnVjdCBQYWdlU3RhdGUgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViQmFja0ZvcndhcmRMaXN0SXRlbS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJCYWNrRm9yd2FyZExpc3RJdGVtLmNwcAppbmRleCA4ZmVhYzVhOTQxY2E5YmQ3NDFi
M2I4MThkODY5OGM5NWJlZDBiZWQwLi43YjRlZGM5YTNmYzg2YzkyMjI2ODVhNmZjNjIxMTExMDdi
NjYzYjY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJCYWNrRm9yd2FyZExp
c3RJdGVtLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJCYWNrRm9yd2FyZExpc3RJ
dGVtLmNwcApAQCAtMzksNiArMzksNyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogUmVm
PFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0+IFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW06OmNyZWF0ZShC
YWNrRm9yd2FyZExpc3RJdGVtU3RhdGUmJiBiYWNrRm9yd2FyZExpc3RJdGVtU3RhdGUsIFdlYlBh
Z2VQcm94eUlkZW50aWZpZXIgcGFnZUlEKQogeworICAgIFJFTEVBU0VfQVNTRVJUKFJ1bkxvb3A6
OmlzTWFpbigpKTsKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJCYWNrRm9yd2FyZExpc3RJ
dGVtKFdURk1vdmUoYmFja0ZvcndhcmRMaXN0SXRlbVN0YXRlKSwgcGFnZUlEKSk7CiB9CiAKQEAg
LTUzLDYgKzU0LDcgQEAgV2ViQmFja0ZvcndhcmRMaXN0SXRlbTo6V2ViQmFja0ZvcndhcmRMaXN0
SXRlbShCYWNrRm9yd2FyZExpc3RJdGVtU3RhdGUmJiBiYWNrRm8KIAogV2ViQmFja0ZvcndhcmRM
aXN0SXRlbTo6fldlYkJhY2tGb3J3YXJkTGlzdEl0ZW0oKQogeworICAgIFJFTEVBU0VfQVNTRVJU
KFJ1bkxvb3A6OmlzTWFpbigpKTsKICAgICBBU1NFUlQoYWxsSXRlbXMoKS5nZXQobV9pdGVtU3Rh
dGUuaWRlbnRpZmllcikgPT0gdGhpcyk7CiAgICAgYWxsSXRlbXMoKS5yZW1vdmUobV9pdGVtU3Rh
dGUuaWRlbnRpZmllcik7CiAgICAgcmVtb3ZlRnJvbUJhY2tGb3J3YXJkQ2FjaGUoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYlZpZXdTZXNz
aW9uU3RhdGUuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2Vi
Vmlld1Nlc3Npb25TdGF0ZS5jcHAKaW5kZXggODVmMjNlYjU0ZDZjMDI3YWIxMzdkMWFlYmU2YWVl
OTQyYTczMWI4YS4uYjJkZTVhMmYwM2VhMWFiZTlhYWEyNWY0YzhhOGE5MTlmZDYyMzI5ZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViVmlld1Nl
c3Npb25TdGF0ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2Vi
S2l0V2ViVmlld1Nlc3Npb25TdGF0ZS5jcHAKQEAgLTE2Miw3ICsxNjIsNyBAQCBzdGF0aWMgaW5s
aW5lIHZvaWQgZW5jb2RlRnJhbWVTdGF0ZShHVmFyaWFudEJ1aWxkZXIqIHNlc3Npb25CdWlsZGVy
LCBjb25zdCBGcmFtZQogICAgIGdfdmFyaWFudF9idWlsZGVyX2FkZChzZXNzaW9uQnVpbGRlciwg
InMiLCBmcmFtZVN0YXRlLnJlZmVycmVyLnV0ZjgoKS5kYXRhKCkpOwogICAgIGdfdmFyaWFudF9i
dWlsZGVyX2FkZChzZXNzaW9uQnVpbGRlciwgInMiLCBmcmFtZVN0YXRlLnRhcmdldC51dGY4KCku
ZGF0YSgpKTsKICAgICBnX3ZhcmlhbnRfYnVpbGRlcl9vcGVuKHNlc3Npb25CdWlsZGVyLCBHX1ZB
UklBTlRfVFlQRSgiYXMiKSk7Ci0gICAgZm9yIChjb25zdCBhdXRvJiBzdGF0ZSA6IGZyYW1lU3Rh
dGUuZG9jdW1lbnRTdGF0ZSkKKyAgICBmb3IgKGNvbnN0IGF1dG8mIHN0YXRlIDogZnJhbWVTdGF0
ZS5kb2N1bWVudFN0YXRlKCkpCiAgICAgICAgIGdfdmFyaWFudF9idWlsZGVyX2FkZChzZXNzaW9u
QnVpbGRlciwgInMiLCBzdGF0ZS51dGY4KCkuZGF0YSgpKTsKICAgICBnX3ZhcmlhbnRfYnVpbGRl
cl9jbG9zZShzZXNzaW9uQnVpbGRlcik7CiAgICAgaWYgKCFmcmFtZVN0YXRlLnN0YXRlT2JqZWN0
RGF0YSkKQEAgLTMwNSwxMCArMzA1LDEyIEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBkZWNvZGVGcmFt
ZVN0YXRlKEdWYXJpYW50KiBmcmFtZVN0YXRlVmFyaWFudCwgRnJhbWVTdGF0ZSYgZnJhCiAgICAg
ICAgIGZyYW1lU3RhdGUucmVmZXJyZXIgPSBTdHJpbmc6OmZyb21VVEY4KHJlZmVycmVyKTsKICAg
ICBmcmFtZVN0YXRlLnRhcmdldCA9IFN0cmluZzo6ZnJvbVVURjgodGFyZ2V0KTsKICAgICBpZiAo
Z3NpemUgZG9jdW1lbnRTdGF0ZUxlbmd0aCA9IGdfdmFyaWFudF9pdGVyX25fY2hpbGRyZW4oZG9j
dW1lbnRTdGF0ZUl0ZXIuZ2V0KCkpKSB7Ci0gICAgICAgIGZyYW1lU3RhdGUuZG9jdW1lbnRTdGF0
ZS5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KGRvY3VtZW50U3RhdGVMZW5ndGgpOworICAgICAgICBW
ZWN0b3I8U3RyaW5nPiBkb2N1bWVudFN0YXRlOworICAgICAgICBkb2N1bWVudFN0YXRlLnJlc2Vy
dmVJbml0aWFsQ2FwYWNpdHkoZG9jdW1lbnRTdGF0ZUxlbmd0aCk7CiAgICAgICAgIGNvbnN0IGNo
YXIqIGRvY3VtZW50U3RhdGVTdHJpbmc7CiAgICAgICAgIHdoaWxlIChnX3ZhcmlhbnRfaXRlcl9u
ZXh0KGRvY3VtZW50U3RhdGVJdGVyLmdldCgpLCAiJnMiLCAmZG9jdW1lbnRTdGF0ZVN0cmluZykp
Ci0gICAgICAgICAgICBmcmFtZVN0YXRlLmRvY3VtZW50U3RhdGUudW5jaGVja2VkQXBwZW5kKFN0
cmluZzo6ZnJvbVVURjgoZG9jdW1lbnRTdGF0ZVN0cmluZykpOworICAgICAgICAgICAgZG9jdW1l
bnRTdGF0ZS51bmNoZWNrZWRBcHBlbmQoU3RyaW5nOjpmcm9tVVRGOChkb2N1bWVudFN0YXRlU3Ry
aW5nKSk7CisgICAgICAgIGZyYW1lU3RhdGUuc2V0RG9jdW1lbnRTdGF0ZShkb2N1bWVudFN0YXRl
KTsKICAgICB9CiAgICAgaWYgKHN0YXRlT2JqZWN0RGF0YUl0ZXIpIHsKICAgICAgICAgVmVjdG9y
PHVpbnQ4X3Q+IHN0YXRlT2JqZWN0VmVjdG9yOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQ29jb2EvU2Vzc2lvblN0YXRlQ29kaW5nLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Db2NvYS9TZXNzaW9uU3RhdGVDb2RpbmcuaAppbmRleCA1NmQ3YzQyYmJlNzQxODc0MTdj
MzVhMTliYWNiYWM4ZDkxZGMwZjU1Li40ZDU4NjRhMzRmYWI0MDEwYmQ0YTBlN2JjNWVjM2IzYTUx
ZDIyYWNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9TZXNzaW9u
U3RhdGVDb2RpbmcuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9TZXNzaW9u
U3RhdGVDb2RpbmcuaApAQCAtMzAsNyArMzAsNiBAQAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAot
c3RydWN0IEZyYW1lU3RhdGU7CiBzdHJ1Y3QgU2Vzc2lvblN0YXRlOwogCiBSZXRhaW5QdHI8TlNE
YXRhPiBlbmNvZGVTZXNzaW9uU3RhdGUoY29uc3QgU2Vzc2lvblN0YXRlJik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9MZWdhY3lTZXNzaW9uU3RhdGVDb2RpbmcuaCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0xlZ2FjeVNlc3Npb25TdGF0ZUNvZGluZy5oCmluZGV4IDE3
ZWJjNGRhYjRjOWZlZTkxOTc4MzY2Mzk1MGVmOGQ5ZTE3OWY5ZjAuLjcxYWM0MDEyOGI1NWRjZDk2
NTY5ZjczODI5Mzg3MWJkNDRjYzQ2NTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0xlZ2FjeVNlc3Npb25TdGF0ZUNvZGluZy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0xlZ2FjeVNlc3Npb25TdGF0ZUNvZGluZy5oCkBAIC0zNCw3ICszNCw2IEBAIGNsYXNzIERh
dGE7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1zdHJ1Y3QgRnJhbWVTdGF0ZTsKIHN0cnVjdCBT
ZXNzaW9uU3RhdGU7CiAKIFJlZlB0cjxBUEk6OkRhdGE+IGVuY29kZUxlZ2FjeVNlc3Npb25TdGF0
ZShjb25zdCBTZXNzaW9uU3RhdGUmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuY3BwCmluZGV4IDAzODEwNWQ0MDhhYzA5ODM1Y2I5NjUwZTAwMWE4OGFjNTg3NmU3YjcuLmMz
ZDJmZTdkODM3ZjZlYTgxYmNmOTI4MjljY2JiMGEyZTc5NDlmNjggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtMzU4Miw2ICszNTgyLDcgQEAgdm9pZCBXZWJQ
YWdlUHJveHk6OnNldEN1c3RvbVRleHRFbmNvZGluZ05hbWUoY29uc3QgU3RyaW5nJiBlbmNvZGlu
Z05hbWUpCiAKIFNlc3Npb25TdGF0ZSBXZWJQYWdlUHJveHk6OnNlc3Npb25TdGF0ZShXVEY6OkZ1
bmN0aW9uPGJvb2wgKFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0mKT4mJiBmaWx0ZXIpIGNvbnN0CiB7
CisgICAgUkVMRUFTRV9BU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogICAgIFNlc3Npb25TdGF0
ZSBzZXNzaW9uU3RhdGU7CiAKICAgICBzZXNzaW9uU3RhdGUuYmFja0ZvcndhcmRMaXN0U3RhdGUg
PSBtX2JhY2tGb3J3YXJkTGlzdC0+YmFja0ZvcndhcmRMaXN0U3RhdGUoV1RGTW92ZShmaWx0ZXIp
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9MZWdhY3lTZXNzaW9u
U3RhdGVDb2RpbmcuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL0xlZ2FjeVNlc3Np
b25TdGF0ZUNvZGluZy5jcHAKaW5kZXggODg1ZDNmN2EyZDc1MWFkYjk4Zjg0MzdmMDEwMGYxODE2
MmUxZjdmMS4uNjNlM2FmNDFkYTA1NTc5YmI1NDJhMmU2Njc4ODk4MzEwZTU1ZDliOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL0xlZ2FjeVNlc3Npb25TdGF0ZUNvZGlu
Zy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL0xlZ2FjeVNlc3Npb25TdGF0
ZUNvZGluZy5jcHAKQEAgLTMyMyw5ICszMjMsNyBAQCBzdGF0aWMgdm9pZCBlbmNvZGVGcmFtZVN0
YXRlTm9kZShIaXN0b3J5RW50cnlEYXRhRW5jb2RlciYgZW5jb2RlciwgY29uc3QgRnJhbWVTdAog
ewogICAgIGVuY29kZXIgPDwgc3RhdGljX2Nhc3Q8dWludDY0X3Q+KGZyYW1lU3RhdGUuY2hpbGRy
ZW4uc2l6ZSgpKTsKIAotICAgIFJFTEVBU0VfQVNTRVJUKCFmcmFtZVN0YXRlLmlzRGVzdHJ1Y3Rl
ZCk7CiAgICAgZm9yIChjb25zdCBhdXRvJiBjaGlsZEZyYW1lU3RhdGUgOiBmcmFtZVN0YXRlLmNo
aWxkcmVuKSB7Ci0gICAgICAgIFJFTEVBU0VfQVNTRVJUKCFjaGlsZEZyYW1lU3RhdGUuaXNEZXN0
cnVjdGVkKTsKICAgICAgICAgZW5jb2RlciA8PCBjaGlsZEZyYW1lU3RhdGUub3JpZ2luYWxVUkxT
dHJpbmc7CiAgICAgICAgIGVuY29kZXIgPDwgY2hpbGRGcmFtZVN0YXRlLnVybFN0cmluZzsKIApA
QCAtMzM0LDggKzMzMiw5IEBAIHN0YXRpYyB2b2lkIGVuY29kZUZyYW1lU3RhdGVOb2RlKEhpc3Rv
cnlFbnRyeURhdGFFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBGcmFtZVN0CiAKICAgICBlbmNvZGVy
IDw8IGZyYW1lU3RhdGUuZG9jdW1lbnRTZXF1ZW5jZU51bWJlcjsKIAotICAgIGVuY29kZXIgPDwg
c3RhdGljX2Nhc3Q8dWludDY0X3Q+KGZyYW1lU3RhdGUuZG9jdW1lbnRTdGF0ZS5zaXplKCkpOwot
ICAgIGZvciAoY29uc3QgYXV0byYgZG9jdW1lbnRTdGF0ZSA6IGZyYW1lU3RhdGUuZG9jdW1lbnRT
dGF0ZSkKKyAgICBmcmFtZVN0YXRlLnZhbGlkYXRlRG9jdW1lbnRTdGF0ZSgpOworICAgIGVuY29k
ZXIgPDwgc3RhdGljX2Nhc3Q8dWludDY0X3Q+KGZyYW1lU3RhdGUuZG9jdW1lbnRTdGF0ZSgpLnNp
emUoKSk7CisgICAgZm9yIChjb25zdCBhdXRvJiBkb2N1bWVudFN0YXRlIDogZnJhbWVTdGF0ZS5k
b2N1bWVudFN0YXRlKCkpCiAgICAgICAgIGVuY29kZXIgPDwgZG9jdW1lbnRTdGF0ZTsKIAogICAg
IGlmIChmcmFtZVN0YXRlLmh0dHBCb2R5KSB7CkBAIC04OTksNiArODk4LDcgQEAgc3RhdGljIHZv
aWQgZGVjb2RlQmFja0ZvcndhcmRUcmVlTm9kZShIaXN0b3J5RW50cnlEYXRhRGVjb2RlciYgZGVj
b2RlciwgRnJhbWVTdGEKICAgICB1aW50NjRfdCBkb2N1bWVudFN0YXRlVmVjdG9yU2l6ZTsKICAg
ICBkZWNvZGVyID4+IGRvY3VtZW50U3RhdGVWZWN0b3JTaXplOwogCisgICAgVmVjdG9yPFN0cmlu
Zz4gZG9jdW1lbnRTdGF0ZTsKICAgICBmb3IgKHVpbnQ2NF90IGkgPSAwOyBpIDwgZG9jdW1lbnRT
dGF0ZVZlY3RvclNpemU7ICsraSkgewogICAgICAgICBTdHJpbmcgc3RhdGU7CiAgICAgICAgIGRl
Y29kZXIgPj4gc3RhdGU7CkBAIC05MDYsOCArOTA2LDkgQEAgc3RhdGljIHZvaWQgZGVjb2RlQmFj
a0ZvcndhcmRUcmVlTm9kZShIaXN0b3J5RW50cnlEYXRhRGVjb2RlciYgZGVjb2RlciwgRnJhbWVT
dGEKICAgICAgICAgaWYgKCFkZWNvZGVyLmlzVmFsaWQoKSkKICAgICAgICAgICAgIHJldHVybjsK
IAotICAgICAgICBmcmFtZVN0YXRlLmRvY3VtZW50U3RhdGUuYXBwZW5kKFdURk1vdmUoc3RhdGUp
KTsKKyAgICAgICAgZG9jdW1lbnRTdGF0ZS5hcHBlbmQoV1RGTW92ZShzdGF0ZSkpOwogICAgIH0K
KyAgICBmcmFtZVN0YXRlLnNldERvY3VtZW50U3RhdGUoZG9jdW1lbnRTdGF0ZSwgRnJhbWVTdGF0
ZTo6U2hvdWxkVmFsaWRhdGU6Olllcyk7CiAKICAgICBTdHJpbmcgZm9ybUNvbnRlbnRUeXBlOwog
ICAgIGRlY29kZXIgPj4gZm9ybUNvbnRlbnRUeXBlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1Nlc3Npb25TdGF0ZUNvbnZlcnNpb24uY3BwIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1Nlc3Npb25TdGF0ZUNvbnZl
cnNpb24uY3BwCmluZGV4IDAyNjk1ZDNlYjg5ZjVlNjQwOTM4NDE0MjQ5ZTdmNWM5ZjgyYWM0MTAu
LmQ1ZTIwZjQxMTdhYTUxZWM2YmI3MTNmMTYwNzdhY2YxZGJlMmFiYzIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9TZXNzaW9uU3RhdGVDb252ZXJz
aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvU2Vz
c2lvblN0YXRlQ29udmVyc2lvbi5jcHAKQEAgLTcyLDcgKzcyLDcgQEAgc3RhdGljIEZyYW1lU3Rh
dGUgdG9GcmFtZVN0YXRlKGNvbnN0IEhpc3RvcnlJdGVtJiBoaXN0b3J5SXRlbSkKICAgICBmcmFt
ZVN0YXRlLnJlZmVycmVyID0gaGlzdG9yeUl0ZW0ucmVmZXJyZXIoKTsKICAgICBmcmFtZVN0YXRl
LnRhcmdldCA9IGhpc3RvcnlJdGVtLnRhcmdldCgpOwogCi0gICAgZnJhbWVTdGF0ZS5kb2N1bWVu
dFN0YXRlID0gaGlzdG9yeUl0ZW0uZG9jdW1lbnRTdGF0ZSgpOworICAgIGZyYW1lU3RhdGUuc2V0
RG9jdW1lbnRTdGF0ZShoaXN0b3J5SXRlbS5kb2N1bWVudFN0YXRlKCkpOwogICAgIGlmIChSZWZQ
dHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBzdGF0ZU9iamVjdCA9IGhpc3RvcnlJdGVtLnN0YXRl
T2JqZWN0KCkpCiAgICAgICAgIGZyYW1lU3RhdGUuc3RhdGVPYmplY3REYXRhID0gc3RhdGVPYmpl
Y3QtPmRhdGEoKTsKIApAQCAtMTQ4LDcgKzE0OCw3IEBAIHN0YXRpYyB2b2lkIGFwcGx5RnJhbWVT
dGF0ZShIaXN0b3J5SXRlbSYgaGlzdG9yeUl0ZW0sIGNvbnN0IEZyYW1lU3RhdGUmIGZyYW1lU3Rh
CiAgICAgaGlzdG9yeUl0ZW0uc2V0UmVmZXJyZXIoZnJhbWVTdGF0ZS5yZWZlcnJlcik7CiAgICAg
aGlzdG9yeUl0ZW0uc2V0VGFyZ2V0KGZyYW1lU3RhdGUudGFyZ2V0KTsKIAotICAgIGhpc3RvcnlJ
dGVtLnNldERvY3VtZW50U3RhdGUoZnJhbWVTdGF0ZS5kb2N1bWVudFN0YXRlKTsKKyAgICBoaXN0
b3J5SXRlbS5zZXREb2N1bWVudFN0YXRlKGZyYW1lU3RhdGUuZG9jdW1lbnRTdGF0ZSgpKTsKIAog
ICAgIGlmIChmcmFtZVN0YXRlLnN0YXRlT2JqZWN0RGF0YSkgewogICAgICAgICBWZWN0b3I8dWlu
dDhfdD4gc3RhdGVPYmplY3REYXRhID0gZnJhbWVTdGF0ZS5zdGF0ZU9iamVjdERhdGEudmFsdWUo
KTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>