<?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>236844</bug_id>
          
          <creation_ts>2022-02-18 09:54:17 -0800</creation_ts>
          <short_desc>Add assertion that no two sessions share the same general storage directory</short_desc>
          <delta_ts>2022-03-02 11:01:23 -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>Website Storage</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sihui Liu">sihui_liu</reporter>
          <assigned_to name="Sihui Liu">sihui_liu</assigned_to>
          <cc>cdumez</cc>
    
    <cc>sihui_liu</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1843467</commentid>
    <comment_count>0</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2022-02-18 09:54:17 -0800</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1843484</commentid>
    <comment_count>1</comment_count>
      <attachid>452539</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2022-02-18 10:34:57 -0800</bug_when>
    <thetext>Created attachment 452539
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1843663</commentid>
    <comment_count>2</comment_count>
      <attachid>452586</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2022-02-18 15:12:14 -0800</bug_when>
    <thetext>Created attachment 452586
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1843720</commentid>
    <comment_count>3</comment_count>
      <attachid>452586</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-02-18 16:46:09 -0800</bug_when>
    <thetext>Comment on attachment 452586
Patch

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

r=me

&gt; Source/WebKit/ChangeLog:3
&gt; +        Add assertion that no two network session share the same storage path

sessions (plural)

&gt; Source/WebKit/ChangeLog:8
&gt; +        Each NetworkStorageManager has its own queue and access the storage files on that queue, so we can&apos;t have two

accesses

&gt; Source/WebKit/NetworkProcess/storage/NetworkStorageManager.cpp:115
&gt; +    static NeverDestroyed&lt;HashSet&lt;String&gt;&gt; paths;

I just learned today that you can use MainThreadNeverDestroyed (and drop your main thread assertion above).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1843728</commentid>
    <comment_count>4</comment_count>
      <attachid>452609</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2022-02-18 16:54:06 -0800</bug_when>
    <thetext>Created attachment 452609
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1843771</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-02-18 20:15:19 -0800</bug_when>
    <thetext>Committed r290196 (247524@main): &lt;https://commits.webkit.org/247524@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 452609.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1843772</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-02-18 20:16:17 -0800</bug_when>
    <thetext>&lt;rdar://problem/89178566&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1843900</commentid>
    <comment_count>7</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-02-19 13:43:01 -0800</bug_when>
    <thetext>Reverted r290196 for reason:

Caused Network Process crashes &lt;rdar://89190571&gt;

Committed r290214 (247542@trunk): &lt;https://commits.webkit.org/247542@trunk&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1846818</commentid>
    <comment_count>8</comment_count>
      <attachid>453443</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2022-02-28 15:40:09 -0800</bug_when>
    <thetext>Created attachment 453443
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1846825</commentid>
    <comment_count>9</comment_count>
      <attachid>453443</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-02-28 15:50:04 -0800</bug_when>
    <thetext>Comment on attachment 453443
Patch

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

&gt; Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp:211
&gt; +    HashMap&lt;String, PAL::SessionID&gt; directoriesBySession;

This name seems wrong. If something says &quot;BySession&quot;, then I&apos;d expect the session to be the HashMap key, not the value.
Maybe this could be named something like: &quot;directorySessions&quot; or &quot;sessionForDirectory&quot;

&gt; Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp:216
&gt; +                RELEASE_ASSERT_WITH_MESSAGE(directoriesBySession.add(directory, sessionID).isNewEntry, &quot;GeneralStorageDirectory for session &apos;%llu&apos; is already in use by session &apos;%llu&apos;&quot;, directoriesBySession.get(directory).toUInt64(), sessionID.toUInt64());

We&apos;re supposed to use PRIu64, not %llu to print 64bit integers to be friendly to Linux ports. Looks like this code may not build on Linux but I think it I still good practice.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1846830</commentid>
    <comment_count>10</comment_count>
      <attachid>453446</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2022-02-28 16:05:27 -0800</bug_when>
    <thetext>Created attachment 453446
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1846831</commentid>
    <comment_count>11</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2022-02-28 16:06:19 -0800</bug_when>
    <thetext>(In reply to Chris Dumez from comment #9)
&gt; Comment on attachment 453443 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=453443&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp:211
&gt; &gt; +    HashMap&lt;String, PAL::SessionID&gt; directoriesBySession;
&gt; 
&gt; This name seems wrong. If something says &quot;BySession&quot;, then I&apos;d expect the
&gt; session to be the HashMap key, not the value.
&gt; Maybe this could be named something like: &quot;directorySessions&quot; or
&gt; &quot;sessionForDirectory&quot;

Changed to sessionForDirectory.

&gt; 
&gt; &gt; Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp:216
&gt; &gt; +                RELEASE_ASSERT_WITH_MESSAGE(directoriesBySession.add(directory, sessionID).isNewEntry, &quot;GeneralStorageDirectory for session &apos;%llu&apos; is already in use by session &apos;%llu&apos;&quot;, directoriesBySession.get(directory).toUInt64(), sessionID.toUInt64());
&gt; 
&gt; We&apos;re supposed to use PRIu64, not %llu to print 64bit integers to be
&gt; friendly to Linux ports. Looks like this code may not build on Linux but I
&gt; think it I still good practice.

Sure, changed to PRIu64.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1847287</commentid>
    <comment_count>12</comment_count>
      <attachid>453563</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2022-03-01 19:27:27 -0800</bug_when>
    <thetext>Created attachment 453563
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1847308</commentid>
    <comment_count>13</comment_count>
      <attachid>453573</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2022-03-01 23:16:12 -0800</bug_when>
    <thetext>Created attachment 453573
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1847467</commentid>
    <comment_count>14</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-03-02 09:42:19 -0800</bug_when>
    <thetext>ChangeLog entry in Tools/ChangeLog contains OOPS!.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1847469</commentid>
    <comment_count>15</comment_count>
      <attachid>453627</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2022-03-02 09:47:28 -0800</bug_when>
    <thetext>Created attachment 453627
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1847508</commentid>
    <comment_count>16</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-03-02 11:01:18 -0800</bug_when>
    <thetext>Committed r290739 (247985@main): &lt;https://commits.webkit.org/247985@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 453627.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>452539</attachid>
            <date>2022-02-18 10:34:57 -0800</date>
            <delta_ts>2022-02-18 15:12:12 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-236844-20220218103456.patch</filename>
            <type>text/plain</type>
            <size>4859</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwMTI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDg5ZTQ3NjEyYzRmNjhmMjQ3
NTM5ZDM3MGNmYTM3NzkzMWZlZGVmZTUuLmZmYzhhMGIwMWNkMDhiODRiYmZkNDQyZGQ1NWY2YjQ1
MTg1OTUyMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMjItMDItMTggIFNpaHVpIExp
dSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGFzc2VydGlvbiB0aGF0IG5v
IHR3byBuZXR3b3JrIHNlc3Npb24gc2hhcmUgdGhlIHNhbWUgc3RvcmFnZSBwYXRoCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzY4NDQKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBFYWNoIE5ldHdvcmtTdG9y
YWdlTWFuYWdlciBoYXMgaXRzIG93biBxdWV1ZSBhbmQgYWNjZXNzIHRoZSBzdG9yYWdlIGZpbGVz
IG9uIHRoYXQgcXVldWUsIHNvIHdlIGNhbid0IGhhdmUgdHdvCisgICAgICAgIE5ldHdvcmt3b3Jr
U3RvcmFnZU1hbmFnZXJzIHVzZSB0aGUgc2FtZSBwYXRoLCBhcyB0aGUgcGF0aCBtYXkgYmUgYWNj
ZXNzZWQgY29uY3VycmVudGx5IGFuZCBjYXVzZSBjb3JydXB0aW9uLiAKKyAgICAgICAgQ3VycmVu
dGx5IHdlIGhhdmUgYW4gU1BJIGZvciBzZXR0aW5nIGN1c3RvbSBnZW5lcmFsU3RvcmFnZURpcmVj
dG9yeSBmb3IgV2Vic2l0ZURhdGFTdG9yZSAoaW4gCisgICAgICAgIF9XS1dlYnNpdGVEYXRhU3Rv
cmVDb25maWd1cmF0aW9uKSwgd2hpY2ggbWVhbnMgU1BJIGNsaWVudHMgY2FuIGNyZWF0ZSB0d28g
c2Vzc2lvbnMgd2l0aCB0aGUgc2FtZSBwYXRoIGluIHRoZW9yeS4gCisgICAgICAgIEkndmUgbWFk
ZSB0aGUgbWlzdGFrZSB3aGVuIHdyaXRpbmcgQVBJIHRlc3QgaW4gcjI4OTg3OCwgd2hlcmUgSSBz
YXcgZGF0YWJhc2UgZXJyb3IgZHVyaW5nIG1pZ3JhdGlvbiBiZWNhdXNlIHRoZSAKKyAgICAgICAg
dGhlIGZpcnN0IFdlYnNpdGVEYXRhU3RvcmUgd2FzIG5vdCBkZWFsbG9jYXRlZCBwcm9wZXJseSBh
bmQgdGhlIGRhdGFiYXNlIHdhcyBzdGlsbCBpbiB1c2UuIFNvLCBsZXQncyBlbmZvcmNlIAorICAg
ICAgICB0aGlzIGNoZWNrIHRvIGF2b2lkIHN1Y2ggaXNzdWUuCisKKyAgICAgICAgKiBOZXR3b3Jr
UHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJL
aXQ6OmFjdGl2ZVBhdGhzKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1N0b3JhZ2VNYW5hZ2Vy
OjpOZXR3b3JrU3RvcmFnZU1hbmFnZXIpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU3RvcmFn
ZU1hbmFnZXI6On5OZXR3b3JrU3RvcmFnZU1hbmFnZXIpOgorICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmg6CisKIDIwMjItMDItMTggIFNhYW0g
QmFyYXRpICA8c2JhcmF0aUBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIExDX1NPVVJDRV9WRVJT
SU9OIHRvIGNvbXBpbGUgdGFyZ2V0cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmNwcAppbmRleCA5
MjFlNGM4ZGI2Y2Y1YjU2NDk3NzgzNTQ0NGE2NzZhZjIzYjIwZWY2Li5iZjJkM2VkMjQ3ZTk1ZDlk
NTI0ZWI3MTY2YzgwNGM3YjQ1Mzg0ZTU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmNwcApA
QCAtMTA4LDYgKzEwOCwxNCBAQCBzdGF0aWMgdm9pZCBkZWxldGVPcmlnaW5GaWxlSWZOZWNlc3Nh
cnkoY29uc3QgU3RyaW5nJiBmaWxlUGF0aCkKICAgICAgICAgRmlsZVN5c3RlbTo6ZGVsZXRlRmls
ZShmaWxlUGF0aCk7CiB9CiAKK3N0YXRpYyBIYXNoU2V0PFN0cmluZz4mIGFjdGl2ZVBhdGhzKCkK
K3sKKyAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOworCisgICAgc3RhdGljIE5ldmVyRGVz
dHJveWVkPEhhc2hTZXQ8U3RyaW5nPj4gcGF0aHM7CisgICAgcmV0dXJuIHBhdGhzOworfQorCiBS
ZWY8TmV0d29ya1N0b3JhZ2VNYW5hZ2VyPiBOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OmNyZWF0ZShQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIElQQzo6Q29ubmVjdGlvbjo6VW5pcXVlSUQgY29ubmVj
dGlvbiwgY29uc3QgU3RyaW5nJiBwYXRoLCBjb25zdCBTdHJpbmcmIGN1c3RvbUxvY2FsU3RvcmFn
ZVBhdGgsIGNvbnN0IFN0cmluZyYgY3VzdG9tSURCU3RvcmFnZVBhdGgsIGNvbnN0IFN0cmluZyYg
Y3VzdG9tQ2FjaGVTdG9yYWdlUGF0aCwgdWludDY0X3QgZGVmYXVsdE9yaWdpblF1b3RhLCB1aW50
NjRfdCBkZWZhdWx0VGhpcmRQYXJ0eU9yaWdpblF1b3RhLCBib29sIHNob3VsZFVzZUN1c3RvbVBh
dGhzKQogewogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IE5ldHdvcmtTdG9yYWdlTWFuYWdlcihz
ZXNzaW9uSUQsIGNvbm5lY3Rpb24sIHBhdGgsIGN1c3RvbUxvY2FsU3RvcmFnZVBhdGgsIGN1c3Rv
bUlEQlN0b3JhZ2VQYXRoLCBjdXN0b21DYWNoZVN0b3JhZ2VQYXRoLCBkZWZhdWx0T3JpZ2luUXVv
dGEsIGRlZmF1bHRUaGlyZFBhcnR5T3JpZ2luUXVvdGEsIHNob3VsZFVzZUN1c3RvbVBhdGhzKSk7
CkBAIC0xMjIsNiArMTMwLDEyIEBAIE5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6TmV0d29ya1N0b3Jh
Z2VNYW5hZ2VyKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgSVBDOjpDb25uCiB7CiAgICAgQVNT
RVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKIAorICAgIC8vIFNlc3Npb25zIGFyZSBub3Qgc3VwcG9z
ZWQgdG8gc2hhcmUgdGhlIHNhbWUgcGF0aCwgYXMgZWFjaCBzZXNzaW9uIHJ1bnMgb24gaXRzIG93
biBxdWV1ZQorICAgIC8vIGFuZCB0aGlzIGNhbiBjYXVzZSBjb3JydXB0aW9uLiBJZiB0aGUgYXNz
ZXJ0aW9uIGlzIGhpdCwgY2hlY2sgaWYgeW91IGNyZWF0ZSBtdWx0aXBsZQorICAgIC8vIFdlYnNp
dGVEYXRhU3RvcmVzIHdpdGggdGhlIHNhbWUgZ2VuZXJhbFN0b3JhZ2VEaXJlY3RvcnkuCisgICAg
aWYgKCFwYXRoLmlzRW1wdHkoKSkKKyAgICAgICAgUkVMRUFTRV9BU1NFUlQoYWN0aXZlUGF0aHMo
KS5hZGQocGF0aCkuaXNOZXdFbnRyeSk7CisKICAgICBtX3F1ZXVlLT5kaXNwYXRjaChbdGhpcywg
cHJvdGVjdGVkVGhpcyA9IFJlZiB7ICp0aGlzIH0sIHBhdGggPSBwYXRoLmlzb2xhdGVkQ29weSgp
LCBjdXN0b21Mb2NhbFN0b3JhZ2VQYXRoID0gY3Jvc3NUaHJlYWRDb3B5KGN1c3RvbUxvY2FsU3Rv
cmFnZVBhdGgpLCBjdXN0b21JREJTdG9yYWdlUGF0aCA9IGNyb3NzVGhyZWFkQ29weShjdXN0b21J
REJTdG9yYWdlUGF0aCksIGN1c3RvbUNhY2hlU3RvcmFnZVBhdGggPSBjcm9zc1RocmVhZENvcHko
Y3VzdG9tQ2FjaGVTdG9yYWdlUGF0aCksIHNob3VsZFVzZUN1c3RvbVBhdGhzXSgpIG11dGFibGUg
ewogICAgICAgICBtX2ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlUmVnaXN0cnkgPSBtYWtlVW5pcXVl
PEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlUmVnaXN0cnk+KCk7CiAgICAgICAgIG1fc3RvcmFnZUFy
ZWFSZWdpc3RyeSA9IG1ha2VVbmlxdWU8U3RvcmFnZUFyZWFSZWdpc3RyeT4oKTsKQEAgLTE0Miw2
ICsxNTYsOSBAQCBOZXR3b3JrU3RvcmFnZU1hbmFnZXI6On5OZXR3b3JrU3RvcmFnZU1hbmFnZXIo
KQogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAgICAgQVNTRVJUKG1fY2xvc2Vk
KTsKKworICAgIGlmICghbV9wYXRoLmlzRW1wdHkoKSkKKyAgICAgICAgYWN0aXZlUGF0aHMoKS5y
ZW1vdmUobV9wYXRoKTsKIH0KIAogYm9vbCBOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OmNhbkhhbmRs
ZVR5cGVzKE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+IHR5cGVzKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5o
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFu
YWdlci5oCmluZGV4IDBlNWJiYTc2MDljYWZlMTI0MmUwOGVkNmFjZjM2YzIzM2Q4MzAxYzcuLjZh
ZmM1NjYyNTk2ZDk3ZTg4MWY5NTdlZmI0MzhjMWU3NzBkNmJlNTIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VN
YW5hZ2VyLmgKQEAgLTc3LDYgKzc3LDcgQEAgcHVibGljOgogICAgIHZvaWQgc3RvcFJlY2Vpdmlu
Z01lc3NhZ2VGcm9tQ29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb24mKTsKIAogICAgIFBBTDo6U2Vz
c2lvbklEIHNlc3Npb25JRCgpIGNvbnN0IHsgcmV0dXJuIG1fc2Vzc2lvbklEOyB9CisgICAgU3Ry
aW5nIHBhdGgoKSBjb25zdCB7IHJldHVybiBtX3BhdGg7IH0KICAgICB2b2lkIGNsb3NlKCk7CiAg
ICAgdm9pZCBjbGVhclN0b3JhZ2VGb3JUZXN0aW5nKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4m
Jik7CiAgICAgdm9pZCBkaWRJbmNyZWFzZVF1b3RhKGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdp
biYsIFF1b3RhSW5jcmVhc2VSZXF1ZXN0SWRlbnRpZmllciwgc3RkOjpvcHRpb25hbDx1aW50NjRf
dD4gbmV3UXVvdGEpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>452586</attachid>
            <date>2022-02-18 15:12:14 -0800</date>
            <delta_ts>2022-02-18 16:54:03 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-236844-20220218151213.patch</filename>
            <type>text/plain</type>
            <size>6104</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwMTEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDkyNTIwNGRkNDFlMmI0NjBl
YjQwMGI0NTU4ZWU4ODk4MDFjNDBmYTcuLjhhOWVmZjNlZjgxOWFhNjk1OGRiOTFiZTMwNGJhNzRj
MGI1MjIxOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMjItMDItMTggIFNpaHVpIExp
dSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGFzc2VydGlvbiB0aGF0IG5v
IHR3byBuZXR3b3JrIHNlc3Npb24gc2hhcmUgdGhlIHNhbWUgc3RvcmFnZSBwYXRoCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzY4NDQKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBFYWNoIE5ldHdvcmtTdG9y
YWdlTWFuYWdlciBoYXMgaXRzIG93biBxdWV1ZSBhbmQgYWNjZXNzIHRoZSBzdG9yYWdlIGZpbGVz
IG9uIHRoYXQgcXVldWUsIHNvIHdlIGNhbid0IGhhdmUgdHdvCisgICAgICAgIE5ldHdvcmt3b3Jr
U3RvcmFnZU1hbmFnZXJzIHVzZSB0aGUgc2FtZSBwYXRoLCBhcyB0aGUgcGF0aCBtYXkgYmUgYWNj
ZXNzZWQgY29uY3VycmVudGx5IGFuZCBjYXVzZSBjb3JydXB0aW9uLiAKKyAgICAgICAgQ3VycmVu
dGx5IHdlIGhhdmUgYW4gU1BJIGZvciBzZXR0aW5nIGN1c3RvbSBnZW5lcmFsU3RvcmFnZURpcmVj
dG9yeSBmb3IgV2Vic2l0ZURhdGFTdG9yZSAoaW4gCisgICAgICAgIF9XS1dlYnNpdGVEYXRhU3Rv
cmVDb25maWd1cmF0aW9uKSwgd2hpY2ggbWVhbnMgU1BJIGNsaWVudHMgY2FuIGNyZWF0ZSB0d28g
c2Vzc2lvbnMgd2l0aCB0aGUgc2FtZSBwYXRoIGluIHRoZW9yeS4KKyAgICAgICAgTGV0J3MgYWRk
IGFuIGFzc2VydGlvbiB0byBlbnN1cmUgdGhhdCBkb2VzIG5vdCBoYXBwZW4uCisKKyAgICAgICAg
VGhpcyBhc3NlcnRpb24gaGFzIGhlbHBlZCBmaW5kIGEgYnVnIGluIFdlYktpdFRlc3RSdW5uZXIg
dGhhdCB3ZSBkaWRuJ3Qgc2V0IGN1c3RvbSBnZW5lcmFsU3RvcmFnZURpcmVjdG9yeSBmb3IgYQor
ICAgICAgICBjdXN0b20gV2Vic2l0ZURhdGFTdG9yZSAoc28gaXQncyB1c2luZyB0aGUgc2FtZSBw
YXRoIGFzIGRlZmF1bHQgV2Vic2l0ZURhdGFTdG9yZSkuCisKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6
OmFjdGl2ZVBhdGhzKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpO
ZXR3b3JrU3RvcmFnZU1hbmFnZXIpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU3RvcmFnZU1h
bmFnZXI6On5OZXR3b3JrU3RvcmFnZU1hbmFnZXIpOgorCiAyMDIyLTAyLTE3ICBEaWVnbyBQaW5v
IEdhcmNpYSAgPGRwaW5vQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS10gRGViaWFuIFN0YWJs
ZSBidWlsZCBpcyBicm9rZW4gYWZ0ZXIgcjI5MDAyNgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmNw
cAppbmRleCA5MjFlNGM4ZGI2Y2Y1YjU2NDk3NzgzNTQ0NGE2NzZhZjIzYjIwZWY2Li5iZjJkM2Vk
MjQ3ZTk1ZDlkNTI0ZWI3MTY2YzgwNGM3YjQ1Mzg0ZTU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5h
Z2VyLmNwcApAQCAtMTA4LDYgKzEwOCwxNCBAQCBzdGF0aWMgdm9pZCBkZWxldGVPcmlnaW5GaWxl
SWZOZWNlc3NhcnkoY29uc3QgU3RyaW5nJiBmaWxlUGF0aCkKICAgICAgICAgRmlsZVN5c3RlbTo6
ZGVsZXRlRmlsZShmaWxlUGF0aCk7CiB9CiAKK3N0YXRpYyBIYXNoU2V0PFN0cmluZz4mIGFjdGl2
ZVBhdGhzKCkKK3sKKyAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOworCisgICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkPEhhc2hTZXQ8U3RyaW5nPj4gcGF0aHM7CisgICAgcmV0dXJuIHBhdGhz
OworfQorCiBSZWY8TmV0d29ya1N0b3JhZ2VNYW5hZ2VyPiBOZXR3b3JrU3RvcmFnZU1hbmFnZXI6
OmNyZWF0ZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIElQQzo6Q29ubmVjdGlvbjo6VW5pcXVl
SUQgY29ubmVjdGlvbiwgY29uc3QgU3RyaW5nJiBwYXRoLCBjb25zdCBTdHJpbmcmIGN1c3RvbUxv
Y2FsU3RvcmFnZVBhdGgsIGNvbnN0IFN0cmluZyYgY3VzdG9tSURCU3RvcmFnZVBhdGgsIGNvbnN0
IFN0cmluZyYgY3VzdG9tQ2FjaGVTdG9yYWdlUGF0aCwgdWludDY0X3QgZGVmYXVsdE9yaWdpblF1
b3RhLCB1aW50NjRfdCBkZWZhdWx0VGhpcmRQYXJ0eU9yaWdpblF1b3RhLCBib29sIHNob3VsZFVz
ZUN1c3RvbVBhdGhzKQogewogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IE5ldHdvcmtTdG9yYWdl
TWFuYWdlcihzZXNzaW9uSUQsIGNvbm5lY3Rpb24sIHBhdGgsIGN1c3RvbUxvY2FsU3RvcmFnZVBh
dGgsIGN1c3RvbUlEQlN0b3JhZ2VQYXRoLCBjdXN0b21DYWNoZVN0b3JhZ2VQYXRoLCBkZWZhdWx0
T3JpZ2luUXVvdGEsIGRlZmF1bHRUaGlyZFBhcnR5T3JpZ2luUXVvdGEsIHNob3VsZFVzZUN1c3Rv
bVBhdGhzKSk7CkBAIC0xMjIsNiArMTMwLDEyIEBAIE5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6TmV0
d29ya1N0b3JhZ2VNYW5hZ2VyKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgSVBDOjpDb25uCiB7
CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKIAorICAgIC8vIFNlc3Npb25zIGFyZSBu
b3Qgc3VwcG9zZWQgdG8gc2hhcmUgdGhlIHNhbWUgcGF0aCwgYXMgZWFjaCBzZXNzaW9uIHJ1bnMg
b24gaXRzIG93biBxdWV1ZQorICAgIC8vIGFuZCB0aGlzIGNhbiBjYXVzZSBjb3JydXB0aW9uLiBJ
ZiB0aGUgYXNzZXJ0aW9uIGlzIGhpdCwgY2hlY2sgaWYgeW91IGNyZWF0ZSBtdWx0aXBsZQorICAg
IC8vIFdlYnNpdGVEYXRhU3RvcmVzIHdpdGggdGhlIHNhbWUgZ2VuZXJhbFN0b3JhZ2VEaXJlY3Rv
cnkuCisgICAgaWYgKCFwYXRoLmlzRW1wdHkoKSkKKyAgICAgICAgUkVMRUFTRV9BU1NFUlQoYWN0
aXZlUGF0aHMoKS5hZGQocGF0aCkuaXNOZXdFbnRyeSk7CisKICAgICBtX3F1ZXVlLT5kaXNwYXRj
aChbdGhpcywgcHJvdGVjdGVkVGhpcyA9IFJlZiB7ICp0aGlzIH0sIHBhdGggPSBwYXRoLmlzb2xh
dGVkQ29weSgpLCBjdXN0b21Mb2NhbFN0b3JhZ2VQYXRoID0gY3Jvc3NUaHJlYWRDb3B5KGN1c3Rv
bUxvY2FsU3RvcmFnZVBhdGgpLCBjdXN0b21JREJTdG9yYWdlUGF0aCA9IGNyb3NzVGhyZWFkQ29w
eShjdXN0b21JREJTdG9yYWdlUGF0aCksIGN1c3RvbUNhY2hlU3RvcmFnZVBhdGggPSBjcm9zc1Ro
cmVhZENvcHkoY3VzdG9tQ2FjaGVTdG9yYWdlUGF0aCksIHNob3VsZFVzZUN1c3RvbVBhdGhzXSgp
IG11dGFibGUgewogICAgICAgICBtX2ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlUmVnaXN0cnkgPSBt
YWtlVW5pcXVlPEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlUmVnaXN0cnk+KCk7CiAgICAgICAgIG1f
c3RvcmFnZUFyZWFSZWdpc3RyeSA9IG1ha2VVbmlxdWU8U3RvcmFnZUFyZWFSZWdpc3RyeT4oKTsK
QEAgLTE0Miw2ICsxNTYsOSBAQCBOZXR3b3JrU3RvcmFnZU1hbmFnZXI6On5OZXR3b3JrU3RvcmFn
ZU1hbmFnZXIoKQogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAgICAgQVNTRVJU
KG1fY2xvc2VkKTsKKworICAgIGlmICghbV9wYXRoLmlzRW1wdHkoKSkKKyAgICAgICAgYWN0aXZl
UGF0aHMoKS5yZW1vdmUobV9wYXRoKTsKIH0KIAogYm9vbCBOZXR3b3JrU3RvcmFnZU1hbmFnZXI6
OmNhbkhhbmRsZVR5cGVzKE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+IHR5cGVzKQpkaWZmIC0t
Z2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDk4MGQ3ZWFkYTc4
ZWMyODFlOTk1YTM4ZmQ4MDJiNzdkOTQzZDExZDEuLjQ1Y2Q3MTAxYzM5ZDg5Mzk3MmJmOGQzZGZi
M2FhNGNlNmM2MTkwMjMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAyMi0wMi0xOCAgU2lodWkgTGl1ICA8c2lodWlf
bGl1QGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgYXNzZXJ0aW9uIHRoYXQgbm8gdHdvIG5ldHdv
cmsgc2Vzc2lvbiBzaGFyZSB0aGUgc2FtZSBzdG9yYWdlIHBhdGgKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNjg0NAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29u
dHJvbGxlci5jcHA6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpjb25maWd1cmVXZWJz
aXRlRGF0YVN0b3JlVGVtcG9yYXJ5RGlyZWN0b3JpZXMpOgorCiAyMDIyLTAyLTE3ICBBZGl0eWEg
S2VlcnRoaSAgPGFrZWVydGhpQGFwcGxlLmNvbT4KIAogICAgICAgICAnLXdlYmtpdC11c2VyLXNl
bGVjdDogYWxsJyBpcyBub3QgcmVzcGVjdGVkIGluIGVkaXRhYmxlIHZpZXdzCmRpZmYgLS1naXQg
YS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcCBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCmluZGV4IDUwMGM3MWQ1YTRhMTdhMTgzODc2
Yjk5YjlmZjA2MjNiZjY0MjYyNjYuLjM5ZDlhNzJmNDc5MGNmODgzODlhNGE1YjA2MzIxMGIwOTgy
MmJkN2QgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIu
Y3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCkBAIC02
MTQsNiArNjE0LDcgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6Y29uZmlndXJlV2Vic2l0ZURhdGFT
dG9yZVRlbXBvcmFyeURpcmVjdG9yaWVzKFdLV2Vic2l0ZURhdGEKICAgICAgICAgV0tXZWJzaXRl
RGF0YVN0b3JlQ29uZmlndXJhdGlvblNldE1lZGlhS2V5c1N0b3JhZ2VEaXJlY3RvcnkoY29uZmln
dXJhdGlvbiwgdG9XSyhtYWtlU3RyaW5nKHRlbXBvcmFyeUZvbGRlciwgcGF0aFNlcGFyYXRvciwg
Ik1lZGlhS2V5cyIsIHBhdGhTZXBhcmF0b3IsIHJhbmRvbU51bWJlcikpLmdldCgpKTsKICAgICAg
ICAgV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvblNldFJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NEaXJlY3RvcnkoY29uZmlndXJhdGlvbiwgdG9XSyhtYWtlU3RyaW5nKHRlbXBvcmFyeUZvbGRl
ciwgcGF0aFNlcGFyYXRvciwgIlJlc291cmNlTG9hZFN0YXRpc3RpY3MiLCBwYXRoU2VwYXJhdG9y
LCByYW5kb21OdW1iZXIpKS5nZXQoKSk7CiAgICAgICAgIFdLV2Vic2l0ZURhdGFTdG9yZUNvbmZp
Z3VyYXRpb25TZXRTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGlyZWN0b3J5KGNvbmZpZ3VyYXRp
b24sIHRvV0sobWFrZVN0cmluZyh0ZW1wb3JhcnlGb2xkZXIsIHBhdGhTZXBhcmF0b3IsICJTZXJ2
aWNlV29ya2VycyIsIHBhdGhTZXBhcmF0b3IsIHJhbmRvbU51bWJlcikpLmdldCgpKTsKKyAgICAg
ICAgV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvblNldEdlbmVyYWxTdG9yYWdlRGlyZWN0
b3J5KGNvbmZpZ3VyYXRpb24sIHRvV0sobWFrZVN0cmluZyh0ZW1wb3JhcnlGb2xkZXIsIHBhdGhT
ZXBhcmF0b3IsICJEZWZhdWx0IiwgcGF0aFNlcGFyYXRvciwgcmFuZG9tTnVtYmVyKSkuZ2V0KCkp
OwogI2lmIFBMQVRGT1JNKFdJTikKICAgICAgICAgV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJh
dGlvblNldENvb2tpZVN0b3JhZ2VGaWxlKGNvbmZpZ3VyYXRpb24sIHRvV0sobWFrZVN0cmluZyh0
ZW1wb3JhcnlGb2xkZXIsIHBhdGhTZXBhcmF0b3IsICJjb29raWVzIiwgcGF0aFNlcGFyYXRvciwg
cmFuZG9tTnVtYmVyLCBwYXRoU2VwYXJhdG9yLCAiY29va2llamFyLmRiIikpLmdldCgpKTsKICNl
bmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>452609</attachid>
            <date>2022-02-18 16:54:06 -0800</date>
            <delta_ts>2022-02-28 15:40:06 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-236844-20220218165404.patch</filename>
            <type>text/plain</type>
            <size>6077</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwMTEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDkyNTIwNGRkNDFlMmI0NjBl
YjQwMGI0NTU4ZWU4ODk4MDFjNDBmYTcuLmJhNzUwNjI1ZmRlNDgyNjU3OTdjOTYxNDBlNzc0Y2Y5
Mjg3MjgyMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMjItMDItMTggIFNpaHVpIExp
dSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGFzc2VydGlvbiB0aGF0IG5v
IHR3byBuZXR3b3JrIHNlc3Npb25zIHNoYXJlIHRoZSBzYW1lIHN0b3JhZ2UgcGF0aAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM2ODQ0CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgQ2hyaXMgRHVtZXouCisKKyAgICAgICAgRWFjaCBOZXR3b3JrU3RvcmFn
ZU1hbmFnZXIgaGFzIGl0cyBvd24gcXVldWUgYW5kIGFjY2Vzc2VzIHRoZSBzdG9yYWdlIGZpbGVz
IG9uIHRoYXQgcXVldWUsIHNvIHdlIGNhbid0IGhhdmUgdHdvCisgICAgICAgIE5ldHdvcmt3b3Jr
U3RvcmFnZU1hbmFnZXJzIHVzZSB0aGUgc2FtZSBwYXRoLCBhcyB0aGUgcGF0aCBtYXkgYmUgYWNj
ZXNzZWQgY29uY3VycmVudGx5IGFuZCBjYXVzZSBjb3JydXB0aW9uLiAKKyAgICAgICAgQ3VycmVu
dGx5IHdlIGhhdmUgYW4gU1BJIGZvciBzZXR0aW5nIGN1c3RvbSBnZW5lcmFsU3RvcmFnZURpcmVj
dG9yeSBmb3IgV2Vic2l0ZURhdGFTdG9yZSAoaW4gCisgICAgICAgIF9XS1dlYnNpdGVEYXRhU3Rv
cmVDb25maWd1cmF0aW9uKSwgd2hpY2ggbWVhbnMgU1BJIGNsaWVudHMgY2FuIGNyZWF0ZSB0d28g
c2Vzc2lvbnMgd2l0aCB0aGUgc2FtZSBwYXRoIGluIHRoZW9yeS4KKyAgICAgICAgTGV0J3MgYWRk
IGFuIGFzc2VydGlvbiB0byBlbnN1cmUgdGhhdCBkb2VzIG5vdCBoYXBwZW4uCisKKyAgICAgICAg
VGhpcyBhc3NlcnRpb24gaGFzIGhlbHBlZCBmaW5kIGEgYnVnIGluIFdlYktpdFRlc3RSdW5uZXIg
dGhhdCB3ZSBkaWRuJ3Qgc2V0IGN1c3RvbSBnZW5lcmFsU3RvcmFnZURpcmVjdG9yeSBmb3IgYQor
ICAgICAgICBjdXN0b20gV2Vic2l0ZURhdGFTdG9yZSAoc28gaXQncyB1c2luZyB0aGUgc2FtZSBw
YXRoIGFzIGRlZmF1bHQgV2Vic2l0ZURhdGFTdG9yZSkuCisKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6
OmFjdGl2ZVBhdGhzKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpO
ZXR3b3JrU3RvcmFnZU1hbmFnZXIpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU3RvcmFnZU1h
bmFnZXI6On5OZXR3b3JrU3RvcmFnZU1hbmFnZXIpOgorCiAyMDIyLTAyLTE3ICBEaWVnbyBQaW5v
IEdhcmNpYSAgPGRwaW5vQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS10gRGViaWFuIFN0YWJs
ZSBidWlsZCBpcyBicm9rZW4gYWZ0ZXIgcjI5MDAyNgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmNw
cAppbmRleCA5MjFlNGM4ZGI2Y2Y1YjU2NDk3NzgzNTQ0NGE2NzZhZjIzYjIwZWY2Li5iM2M4N2I5
ZTYzZTIyZTI4NmYwZWJlMjkxYzUxNDM5NGVmZTcwNDhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5h
Z2VyLmNwcApAQCAtMTA4LDYgKzEwOCwxMiBAQCBzdGF0aWMgdm9pZCBkZWxldGVPcmlnaW5GaWxl
SWZOZWNlc3NhcnkoY29uc3QgU3RyaW5nJiBmaWxlUGF0aCkKICAgICAgICAgRmlsZVN5c3RlbTo6
ZGVsZXRlRmlsZShmaWxlUGF0aCk7CiB9CiAKK3N0YXRpYyBIYXNoU2V0PFN0cmluZz4mIGFjdGl2
ZVBhdGhzKCkKK3sKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPEhhc2hTZXQ8
U3RyaW5nPj4gcGF0aHM7CisgICAgcmV0dXJuIHBhdGhzOworfQorCiBSZWY8TmV0d29ya1N0b3Jh
Z2VNYW5hZ2VyPiBOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OmNyZWF0ZShQQUw6OlNlc3Npb25JRCBz
ZXNzaW9uSUQsIElQQzo6Q29ubmVjdGlvbjo6VW5pcXVlSUQgY29ubmVjdGlvbiwgY29uc3QgU3Ry
aW5nJiBwYXRoLCBjb25zdCBTdHJpbmcmIGN1c3RvbUxvY2FsU3RvcmFnZVBhdGgsIGNvbnN0IFN0
cmluZyYgY3VzdG9tSURCU3RvcmFnZVBhdGgsIGNvbnN0IFN0cmluZyYgY3VzdG9tQ2FjaGVTdG9y
YWdlUGF0aCwgdWludDY0X3QgZGVmYXVsdE9yaWdpblF1b3RhLCB1aW50NjRfdCBkZWZhdWx0VGhp
cmRQYXJ0eU9yaWdpblF1b3RhLCBib29sIHNob3VsZFVzZUN1c3RvbVBhdGhzKQogewogICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IE5ldHdvcmtTdG9yYWdlTWFuYWdlcihzZXNzaW9uSUQsIGNvbm5l
Y3Rpb24sIHBhdGgsIGN1c3RvbUxvY2FsU3RvcmFnZVBhdGgsIGN1c3RvbUlEQlN0b3JhZ2VQYXRo
LCBjdXN0b21DYWNoZVN0b3JhZ2VQYXRoLCBkZWZhdWx0T3JpZ2luUXVvdGEsIGRlZmF1bHRUaGly
ZFBhcnR5T3JpZ2luUXVvdGEsIHNob3VsZFVzZUN1c3RvbVBhdGhzKSk7CkBAIC0xMjIsNiArMTI4
LDEyIEBAIE5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6TmV0d29ya1N0b3JhZ2VNYW5hZ2VyKFBBTDo6
U2Vzc2lvbklEIHNlc3Npb25JRCwgSVBDOjpDb25uCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6Omlz
TWFpbigpKTsKIAorICAgIC8vIFNlc3Npb25zIGFyZSBub3Qgc3VwcG9zZWQgdG8gc2hhcmUgdGhl
IHNhbWUgcGF0aCwgYXMgZWFjaCBzZXNzaW9uIHJ1bnMgb24gaXRzIG93biBxdWV1ZQorICAgIC8v
IGFuZCB0aGlzIGNhbiBjYXVzZSBjb3JydXB0aW9uLiBJZiB0aGUgYXNzZXJ0aW9uIGlzIGhpdCwg
Y2hlY2sgaWYgeW91IGNyZWF0ZSBtdWx0aXBsZQorICAgIC8vIFdlYnNpdGVEYXRhU3RvcmVzIHdp
dGggdGhlIHNhbWUgZ2VuZXJhbFN0b3JhZ2VEaXJlY3RvcnkuCisgICAgaWYgKCFwYXRoLmlzRW1w
dHkoKSkKKyAgICAgICAgUkVMRUFTRV9BU1NFUlQoYWN0aXZlUGF0aHMoKS5hZGQocGF0aCkuaXNO
ZXdFbnRyeSk7CisKICAgICBtX3F1ZXVlLT5kaXNwYXRjaChbdGhpcywgcHJvdGVjdGVkVGhpcyA9
IFJlZiB7ICp0aGlzIH0sIHBhdGggPSBwYXRoLmlzb2xhdGVkQ29weSgpLCBjdXN0b21Mb2NhbFN0
b3JhZ2VQYXRoID0gY3Jvc3NUaHJlYWRDb3B5KGN1c3RvbUxvY2FsU3RvcmFnZVBhdGgpLCBjdXN0
b21JREJTdG9yYWdlUGF0aCA9IGNyb3NzVGhyZWFkQ29weShjdXN0b21JREJTdG9yYWdlUGF0aCks
IGN1c3RvbUNhY2hlU3RvcmFnZVBhdGggPSBjcm9zc1RocmVhZENvcHkoY3VzdG9tQ2FjaGVTdG9y
YWdlUGF0aCksIHNob3VsZFVzZUN1c3RvbVBhdGhzXSgpIG11dGFibGUgewogICAgICAgICBtX2Zp
bGVTeXN0ZW1TdG9yYWdlSGFuZGxlUmVnaXN0cnkgPSBtYWtlVW5pcXVlPEZpbGVTeXN0ZW1TdG9y
YWdlSGFuZGxlUmVnaXN0cnk+KCk7CiAgICAgICAgIG1fc3RvcmFnZUFyZWFSZWdpc3RyeSA9IG1h
a2VVbmlxdWU8U3RvcmFnZUFyZWFSZWdpc3RyeT4oKTsKQEAgLTE0Miw2ICsxNTQsOSBAQCBOZXR3
b3JrU3RvcmFnZU1hbmFnZXI6On5OZXR3b3JrU3RvcmFnZU1hbmFnZXIoKQogewogICAgIEFTU0VS
VChSdW5Mb29wOjppc01haW4oKSk7CiAgICAgQVNTRVJUKG1fY2xvc2VkKTsKKworICAgIGlmICgh
bV9wYXRoLmlzRW1wdHkoKSkKKyAgICAgICAgYWN0aXZlUGF0aHMoKS5yZW1vdmUobV9wYXRoKTsK
IH0KIAogYm9vbCBOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OmNhbkhhbmRsZVR5cGVzKE9wdGlvblNl
dDxXZWJzaXRlRGF0YVR5cGU+IHR5cGVzKQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIv
VG9vbHMvQ2hhbmdlTG9nCmluZGV4IDk4MGQ3ZWFkYTc4ZWMyODFlOTk1YTM4ZmQ4MDJiNzdkOTQz
ZDExZDEuLmZhNzdiMGYwNTY3NTA2MzY4M2VjYTYwNzM3MDljYWJlZWVlMDY1NmMgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBA
QAorMjAyMi0wMi0xOCAgU2lodWkgTGl1ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4KKworICAgICAg
ICBBZGQgYXNzZXJ0aW9uIHRoYXQgbm8gdHdvIG5ldHdvcmsgc2Vzc2lvbiBzaGFyZSB0aGUgc2Ft
ZSBzdG9yYWdlIHBhdGgKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIzNjg0NAorCisgICAgICAgIFJldmlld2VkIGJ5IENocmlzIER1bWV6LgorCisgICAg
ICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXVFI6
OlRlc3RDb250cm9sbGVyOjpjb25maWd1cmVXZWJzaXRlRGF0YVN0b3JlVGVtcG9yYXJ5RGlyZWN0
b3JpZXMpOgorCiAyMDIyLTAyLTE3ICBBZGl0eWEgS2VlcnRoaSAgPGFrZWVydGhpQGFwcGxlLmNv
bT4KIAogICAgICAgICAnLXdlYmtpdC11c2VyLXNlbGVjdDogYWxsJyBpcyBub3QgcmVzcGVjdGVk
IGluIGVkaXRhYmxlIHZpZXdzCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rl
c3RDb250cm9sbGVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIu
Y3BwCmluZGV4IDUwMGM3MWQ1YTRhMTdhMTgzODc2Yjk5YjlmZjA2MjNiZjY0MjYyNjYuLjM5ZDlh
NzJmNDc5MGNmODgzODlhNGE1YjA2MzIxMGIwOTgyMmJkN2QgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCkBAIC02MTQsNiArNjE0LDcgQEAgdm9pZCBUZXN0Q29u
dHJvbGxlcjo6Y29uZmlndXJlV2Vic2l0ZURhdGFTdG9yZVRlbXBvcmFyeURpcmVjdG9yaWVzKFdL
V2Vic2l0ZURhdGEKICAgICAgICAgV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvblNldE1l
ZGlhS2V5c1N0b3JhZ2VEaXJlY3RvcnkoY29uZmlndXJhdGlvbiwgdG9XSyhtYWtlU3RyaW5nKHRl
bXBvcmFyeUZvbGRlciwgcGF0aFNlcGFyYXRvciwgIk1lZGlhS2V5cyIsIHBhdGhTZXBhcmF0b3Is
IHJhbmRvbU51bWJlcikpLmdldCgpKTsKICAgICAgICAgV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmln
dXJhdGlvblNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnkoY29uZmlndXJhdGlvbiwg
dG9XSyhtYWtlU3RyaW5nKHRlbXBvcmFyeUZvbGRlciwgcGF0aFNlcGFyYXRvciwgIlJlc291cmNl
TG9hZFN0YXRpc3RpY3MiLCBwYXRoU2VwYXJhdG9yLCByYW5kb21OdW1iZXIpKS5nZXQoKSk7CiAg
ICAgICAgIFdLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb25TZXRTZXJ2aWNlV29ya2VyUmVn
aXN0cmF0aW9uRGlyZWN0b3J5KGNvbmZpZ3VyYXRpb24sIHRvV0sobWFrZVN0cmluZyh0ZW1wb3Jh
cnlGb2xkZXIsIHBhdGhTZXBhcmF0b3IsICJTZXJ2aWNlV29ya2VycyIsIHBhdGhTZXBhcmF0b3Is
IHJhbmRvbU51bWJlcikpLmdldCgpKTsKKyAgICAgICAgV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmln
dXJhdGlvblNldEdlbmVyYWxTdG9yYWdlRGlyZWN0b3J5KGNvbmZpZ3VyYXRpb24sIHRvV0sobWFr
ZVN0cmluZyh0ZW1wb3JhcnlGb2xkZXIsIHBhdGhTZXBhcmF0b3IsICJEZWZhdWx0IiwgcGF0aFNl
cGFyYXRvciwgcmFuZG9tTnVtYmVyKSkuZ2V0KCkpOwogI2lmIFBMQVRGT1JNKFdJTikKICAgICAg
ICAgV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvblNldENvb2tpZVN0b3JhZ2VGaWxlKGNv
bmZpZ3VyYXRpb24sIHRvV0sobWFrZVN0cmluZyh0ZW1wb3JhcnlGb2xkZXIsIHBhdGhTZXBhcmF0
b3IsICJjb29raWVzIiwgcGF0aFNlcGFyYXRvciwgcmFuZG9tTnVtYmVyLCBwYXRoU2VwYXJhdG9y
LCAiY29va2llamFyLmRiIikpLmdldCgpKTsKICNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>453443</attachid>
            <date>2022-02-28 15:40:09 -0800</date>
            <delta_ts>2022-02-28 16:05:24 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-236844-20220228154008.patch</filename>
            <type>text/plain</type>
            <size>5589</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwNjE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDFmZmE1MGViMjhmOTYyMGQw
YmRjNjEwY2IwZWEwZWQ1NWNkZjllMzQuLjcwNTY4OGUzNGEzMWIzMTg1YjlmZGMzNDUwMTZkYzJl
ZGNkMmQxYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMjItMDItMjggIFNpaHVpIExp
dSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGFzc2VydGlvbiB0aGF0IG5v
IHR3byBzZXNzaW9ucyBzaGFyZSB0aGUgc2FtZSBnZW5lcmFsIHN0b3JhZ2UgZGlyZWN0b3J5Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzY4NDQKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg5MTc4NTY2PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIHJkYXI6Ly84OTE5MDU3MSBzaG93cyB0aGF0IHRoZXJl
IGNhbiBiZSB0d28gV2Vic2l0ZURhdGFTdG9yZXMgdXNpbmcgdGhlIHNhbWUgZ2VuZXJhbCBzdG9y
YWdlIGRpcmVjdG9yeSwgd2hlbgorICAgICAgICBpbml0aWFsaXppbmcgbmV0d29yayBwcm9jZXNz
LiBUaGlzIGNhbiBjYXVzZSB0cm91YmxlIGJlY2F1c2Ugc3RvcmFnZSBjb2RlIG9mIGVhY2ggc2Vz
c2lvbiBydW5zIG9uIGl0cyBvd24KKyAgICAgICAgV29ya1F1ZXVlIChvciB0aHJlYWQpLCBzbyB0
aGUgZGlyZWN0b3J5IChhbmQgaXRzIGZpbGVzKSBtYXkgYmUgYWNjZXNzZWQgY29uY3VycmVudGx5
LCBhbmQgdGhpcyBjYW4gY2F1c2UgCisgICAgICAgIGNvcnJ1cHRpb24uIFRoZSBjb3JyZWN0IHVz
YWdlIGlzIHVzaW5nIGRpZmZlcmVudCBwYXRocyBmb3IgZGlmZmVyZW50IHBlcnNpc3RlbnQgc2Vz
c2lvbnMuIExldCdzIGFkZCBhbiBhc3NlcnRpb24gCisgICAgICAgIHRvIGhlbHAgZmluZCB0aGUg
cHJvYmxlbWF0aWMgdXNlIGNhc2UuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvTmV0d29yay9OZXR3
b3JrUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94
eTo6c2VuZENyZWF0aW9uUGFyYW1ldGVyc1RvTmV3UHJvY2Vzcyk6CisgICAgICAgICogVUlQcm9j
ZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJzaXRlRGF0YVN0b3JlOjpwYXJhbWV0ZXJzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vic2l0
ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0
b3JlOjpjYWNoZVN0b3JhZ2VEaXJlY3RvcnkgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJz
aXRlRGF0YVN0b3JlOjpyZXNvbHZlZEdlbmVyYWxTdG9yYWdlRGlyZWN0b3J5IGNvbnN0KToKKyAg
ICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6Z2VuZXJhbFN0b3JhZ2VEaXJlY3Rvcnkg
Y29uc3QpOiBEZWxldGVkLgorCiAyMDIyLTAyLTI4ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBs
ZS5jb20+CiAKICAgICAgICAgQWRvcHQgdGhlIG1vZGVybiBIYXNoZXIgbW9yZSB3aWRlbHkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQ
cm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNz
UHJveHkuY3BwCmluZGV4IDU3ZGU4YjFmNjU4NjZmYjFmY2Y3YmQxOGJiYjY4ZDIwYzE1YWU5ZmMu
Ljg2MTM1YzIxN2YwMWY5NzkyMzdjZWIwY2UyMmFkMTRkOWNlN2Q3YjUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNw
cApAQCAtMjA4LDcgKzIwOCwxNCBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnNlbmRDcmVh
dGlvblBhcmFtZXRlcnNUb05ld1Byb2Nlc3MoKQogCiAjaWYgIVBMQVRGT1JNKEdUSykgJiYgIVBM
QVRGT1JNKFdQRSkgLy8gR1RLIGFuZCBXUEUgZG9uJ3QgdXNlIGRlZmF1bHROZXR3b3JrUHJvY2Vz
cwogICAgIHBhcmFtZXRlcnMud2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMgPSBXZWJzaXRlRGF0
YVN0b3JlOjpwYXJhbWV0ZXJzRnJvbUVhY2hXZWJzaXRlRGF0YVN0b3JlKCk7Ci0gICAgV2Vic2l0
ZURhdGFTdG9yZTo6Zm9yRWFjaFdlYnNpdGVEYXRhU3RvcmUoW3RoaXNdKGF1dG8mIHdlYnNpdGVE
YXRhU3RvcmUpIHsKKyAgICBIYXNoTWFwPFN0cmluZywgUEFMOjpTZXNzaW9uSUQ+IGRpcmVjdG9y
aWVzQnlTZXNzaW9uOworICAgIFdlYnNpdGVEYXRhU3RvcmU6OmZvckVhY2hXZWJzaXRlRGF0YVN0
b3JlKFsmXShhdXRvJiB3ZWJzaXRlRGF0YVN0b3JlKSB7CisgICAgICAgIGlmICh3ZWJzaXRlRGF0
YVN0b3JlLmlzUGVyc2lzdGVudCgpKSB7CisgICAgICAgICAgICBpZiAoYXV0byBkaXJlY3Rvcnkg
PSB3ZWJzaXRlRGF0YVN0b3JlLnJlc29sdmVkR2VuZXJhbFN0b3JhZ2VEaXJlY3RvcnkoKTsgIWRp
cmVjdG9yeS5pc0VtcHR5KCkpIHsKKyAgICAgICAgICAgICAgICBhdXRvIHNlc3Npb25JRCA9IHdl
YnNpdGVEYXRhU3RvcmUuc2Vzc2lvbklEKCk7CisgICAgICAgICAgICAgICAgUkVMRUFTRV9BU1NF
UlRfV0lUSF9NRVNTQUdFKGRpcmVjdG9yaWVzQnlTZXNzaW9uLmFkZChkaXJlY3RvcnksIHNlc3Np
b25JRCkuaXNOZXdFbnRyeSwgIkdlbmVyYWxTdG9yYWdlRGlyZWN0b3J5IGZvciBzZXNzaW9uICcl
bGx1JyBpcyBhbHJlYWR5IGluIHVzZSBieSBzZXNzaW9uICclbGx1JyIsIGRpcmVjdG9yaWVzQnlT
ZXNzaW9uLmdldChkaXJlY3RvcnkpLnRvVUludDY0KCksIHNlc3Npb25JRC50b1VJbnQ2NCgpKTsK
KyAgICAgICAgICAgIH0KKyAgICAgICAgfQogICAgICAgICBhZGRTZXNzaW9uKHdlYnNpdGVEYXRh
U3RvcmUsIFNlbmRQYXJhbWV0ZXJzVG9OZXR3b3JrUHJvY2Vzczo6Tm8pOwogICAgIH0pOwogI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJz
aXRlRGF0YVN0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dl
YnNpdGVEYXRhU3RvcmUuY3BwCmluZGV4IDFjN2QxMmRiMzJlNTE3NzlmZWU1YWM4NDU4OGQ5MTY1
MjY5MTUwN2YuLmRmNTE3Zjg2ZjZhYzI3OGEwMTJjMTI4NGFmZGI0NjZmNGE5YzcxODEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3Rv
cmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVE
YXRhU3RvcmUuY3BwCkBAIC0xODgyLDcgKzE4ODIsNyBAQCBXZWJzaXRlRGF0YVN0b3JlUGFyYW1l
dGVycyBXZWJzaXRlRGF0YVN0b3JlOjpwYXJhbWV0ZXJzKCkKICAgICAgICAgICAgIHBhcmFtZXRl
cnMuY2FjaGVTdG9yYWdlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlID0gV1RGTW92ZSgqaGFuZGxl
KTsKICAgICB9CiAKLSAgICBpZiAoYXV0byBkaXJlY3RvcnkgPSBnZW5lcmFsU3RvcmFnZURpcmVj
dG9yeSgpOyAhZGlyZWN0b3J5LmlzRW1wdHkoKSkgeworICAgIGlmIChhdXRvIGRpcmVjdG9yeSA9
IHJlc29sdmVkR2VuZXJhbFN0b3JhZ2VEaXJlY3RvcnkoKTsgIWRpcmVjdG9yeS5pc0VtcHR5KCkp
IHsKICAgICAgICAgcGFyYW1ldGVycy5nZW5lcmFsU3RvcmFnZURpcmVjdG9yeSA9IGRpcmVjdG9y
eTsKICAgICAgICAgaWYgKGF1dG8gaGFuZGxlID0gU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFu
ZGxlRm9yUmVhZFdyaXRlRGlyZWN0b3J5KGRpcmVjdG9yeSkpCiAgICAgICAgICAgICBwYXJhbWV0
ZXJzLmdlbmVyYWxTdG9yYWdlRGlyZWN0b3J5SGFuZGxlID0gV1RGTW92ZSgqaGFuZGxlKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRh
U3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRh
U3RvcmUuaAppbmRleCBjZmNlNWNlNDRiNmQ1NjVjMDI5YzI1OTlmMmJmNzhmNGZmNDRlZjQ0Li42
MzllZWRmMTg3ZjM4MDc1MmY4OGRiNDM3Yjg4OGY5ZjdhZWJmNGNjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oCkBA
IC0xNTksNyArMTU5LDYgQEAgcHVibGljOgogICAgIHVpbnQ2NF90IHBlck9yaWdpblN0b3JhZ2VR
dW90YSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVzb2x2ZWRDb25maWd1cmF0aW9uLT5wZXJPcmlnaW5T
dG9yYWdlUXVvdGEoKTsgfQogICAgIHVpbnQ2NF90IHBlclRoaXJkUGFydHlPcmlnaW5TdG9yYWdl
UXVvdGEoKSBjb25zdDsKICAgICBjb25zdCBTdHJpbmcmIGNhY2hlU3RvcmFnZURpcmVjdG9yeSgp
IGNvbnN0IHsgcmV0dXJuIG1fcmVzb2x2ZWRDb25maWd1cmF0aW9uLT5jYWNoZVN0b3JhZ2VEaXJl
Y3RvcnkoKTsgfQotICAgIGNvbnN0IFN0cmluZyYgZ2VuZXJhbFN0b3JhZ2VEaXJlY3RvcnkoKSBj
b25zdCB7IHJldHVybiBtX3Jlc29sdmVkQ29uZmlndXJhdGlvbi0+Z2VuZXJhbFN0b3JhZ2VEaXJl
Y3RvcnkoKTsgfQogCiAjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04p
CiAgICAgdm9pZCBjbGVhclJlc291cmNlTG9hZFN0YXRpc3RpY3NJbldlYlByb2Nlc3NlcyhDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwpAQCAtMjU4LDYgKzI1Nyw3IEBAIHB1YmxpYzoKICAg
ICBjb25zdCBTdHJpbmcmIHJlc29sdmVkU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRpcmVjdG9y
eSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVzb2x2ZWRDb25maWd1cmF0aW9uLT5zZXJ2aWNlV29ya2Vy
UmVnaXN0cmF0aW9uRGlyZWN0b3J5KCk7IH0KICAgICBjb25zdCBTdHJpbmcmIHJlc29sdmVkUmVz
b3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVzb2x2ZWRD
b25maWd1cmF0aW9uLT5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5KCk7IH0KICAgICBj
b25zdCBTdHJpbmcmIHJlc29sdmVkSFNUU1N0b3JhZ2VEaXJlY3RvcnkoKSBjb25zdCB7IHJldHVy
biBtX3Jlc29sdmVkQ29uZmlndXJhdGlvbi0+aHN0c1N0b3JhZ2VEaXJlY3RvcnkoKTsgfQorICAg
IGNvbnN0IFN0cmluZyYgcmVzb2x2ZWRHZW5lcmFsU3RvcmFnZURpcmVjdG9yeSgpIGNvbnN0IHsg
cmV0dXJuIG1fcmVzb2x2ZWRDb25maWd1cmF0aW9uLT5nZW5lcmFsU3RvcmFnZURpcmVjdG9yeSgp
OyB9CiAjaWYgRU5BQkxFKEFSS0lUX0lOTElORV9QUkVWSUVXKQogICAgIGNvbnN0IFN0cmluZyYg
cmVzb2x2ZWRNb2RlbEVsZW1lbnRDYWNoZURpcmVjdG9yeSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVz
b2x2ZWRDb25maWd1cmF0aW9uLT5tb2RlbEVsZW1lbnRDYWNoZURpcmVjdG9yeSgpOyB9CiAjZW5k
aWYK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>453446</attachid>
            <date>2022-02-28 16:05:27 -0800</date>
            <delta_ts>2022-03-01 19:27:24 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-236844-20220228160526.patch</filename>
            <type>text/plain</type>
            <size>5638</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwNjE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDFmZmE1MGViMjhmOTYyMGQw
YmRjNjEwY2IwZWEwZWQ1NWNkZjllMzQuLjI1NmVmYzZjOTVmZWM0ZWU4OTdmMjQxNDYyOGY4Njhh
MDMwYzUyOTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMjItMDItMjggIFNpaHVpIExp
dSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGFzc2VydGlvbiB0aGF0IG5v
IHR3byBzZXNzaW9ucyBzaGFyZSB0aGUgc2FtZSBnZW5lcmFsIHN0b3JhZ2UgZGlyZWN0b3J5Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzY4NDQKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg5MTc4NTY2PgorCisgICAgICAgIFJldmlld2VkIGJ5IENo
cmlzIER1bWV6LgorCisgICAgICAgIHJkYXI6Ly84OTE5MDU3MSBzaG93cyB0aGF0IHRoZXJlIGNh
biBiZSB0d28gV2Vic2l0ZURhdGFTdG9yZXMgdXNpbmcgdGhlIHNhbWUgZ2VuZXJhbCBzdG9yYWdl
IGRpcmVjdG9yeSwgd2hlbgorICAgICAgICBpbml0aWFsaXppbmcgbmV0d29yayBwcm9jZXNzLiBU
aGlzIGNhbiBsZWFkIHRvIGNvcnJ1cHRpb24gYmVjYXVzZSBzdG9yYWdlIGNvZGUgb2YgZWFjaCBz
ZXNzaW9uIHJ1bnMgb24gaXRzIG93bgorICAgICAgICBXb3JrUXVldWUgKG9yIHRocmVhZCkgaW4g
bmV0d29yayBwcm9jZXNzLiBJZiB0d28gc2Vzc2lvbnMgKFdlYnNpdGVEYXRhU3RvcmVzKSB1c2Ug
dGhlIHNhbWUgZGlyZWN0b3J5LCB0aGUgCisgICAgICAgIGRpcmVjdG9yeSBhbmQgaXRzIGZpbGVz
IG1heSBiZSBhY2Nlc3NlZCBjb25jdXJyZW50bHkuIFRoZSBjb3JyZWN0IHVzYWdlIGlzIGNyZWF0
aW5nIGRpZmZlcmVudCBwZXJzaXN0ZW50IAorICAgICAgICBzZXNzaW9ucyB3aXRoIGRpZmZlcmVu
dCBwYXRocy4gTGV0J3MgYWRkIGFuIGFzc2VydGlvbiB0byBoZWxwIGZpbmQgcHJvYmxlbWF0aWMg
dXNlIGNhc2UuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1By
b3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6c2VuZENyZWF0
aW9uUGFyYW1ldGVyc1RvTmV3UHJvY2Vzcyk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYnNpdGVE
YXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0
b3JlOjpwYXJhbWV0ZXJzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0
ZURhdGFTdG9yZS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlOjpjYWNoZVN0
b3JhZ2VEaXJlY3RvcnkgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3Jl
OjpyZXNvbHZlZEdlbmVyYWxTdG9yYWdlRGlyZWN0b3J5IGNvbnN0KToKKyAgICAgICAgKFdlYktp
dDo6V2Vic2l0ZURhdGFTdG9yZTo6Z2VuZXJhbFN0b3JhZ2VEaXJlY3RvcnkgY29uc3QpOiBEZWxl
dGVkLgorCiAyMDIyLTAyLTI4ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAg
ICAgICAgQWRvcHQgdGhlIG1vZGVybiBIYXNoZXIgbW9yZSB3aWRlbHkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCmlu
ZGV4IDU3ZGU4YjFmNjU4NjZmYjFmY2Y3YmQxOGJiYjY4ZDIwYzE1YWU5ZmMuLjIxMjNhOGQ4YmM4
NDIzNjYzZDI2NmQyZTY4ZWY1ZDMwMDYwZjBhYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcApAQCAtMjA4LDcg
KzIwOCwxNCBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnNlbmRDcmVhdGlvblBhcmFtZXRl
cnNUb05ld1Byb2Nlc3MoKQogCiAjaWYgIVBMQVRGT1JNKEdUSykgJiYgIVBMQVRGT1JNKFdQRSkg
Ly8gR1RLIGFuZCBXUEUgZG9uJ3QgdXNlIGRlZmF1bHROZXR3b3JrUHJvY2VzcwogICAgIHBhcmFt
ZXRlcnMud2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMgPSBXZWJzaXRlRGF0YVN0b3JlOjpwYXJh
bWV0ZXJzRnJvbUVhY2hXZWJzaXRlRGF0YVN0b3JlKCk7Ci0gICAgV2Vic2l0ZURhdGFTdG9yZTo6
Zm9yRWFjaFdlYnNpdGVEYXRhU3RvcmUoW3RoaXNdKGF1dG8mIHdlYnNpdGVEYXRhU3RvcmUpIHsK
KyAgICBIYXNoTWFwPFN0cmluZywgUEFMOjpTZXNzaW9uSUQ+IHNlc3Npb25Gb3JEaXJlY3Rvcnk7
CisgICAgV2Vic2l0ZURhdGFTdG9yZTo6Zm9yRWFjaFdlYnNpdGVEYXRhU3RvcmUoWyZdKGF1dG8m
IHdlYnNpdGVEYXRhU3RvcmUpIHsKKyAgICAgICAgaWYgKHdlYnNpdGVEYXRhU3RvcmUuaXNQZXJz
aXN0ZW50KCkpIHsKKyAgICAgICAgICAgIGlmIChhdXRvIGRpcmVjdG9yeSA9IHdlYnNpdGVEYXRh
U3RvcmUucmVzb2x2ZWRHZW5lcmFsU3RvcmFnZURpcmVjdG9yeSgpOyAhZGlyZWN0b3J5LmlzRW1w
dHkoKSkgeworICAgICAgICAgICAgICAgIGF1dG8gc2Vzc2lvbklEID0gd2Vic2l0ZURhdGFTdG9y
ZS5zZXNzaW9uSUQoKTsKKyAgICAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVF9XSVRIX01FU1NB
R0Uoc2Vzc2lvbkZvckRpcmVjdG9yeS5hZGQoZGlyZWN0b3J5LCBzZXNzaW9uSUQpLmlzTmV3RW50
cnksICJHZW5lcmFsU3RvcmFnZURpcmVjdG9yeSBmb3Igc2Vzc2lvbiAlIiBQUkl1NjQgIiBpcyBh
bHJlYWR5IGluIHVzZSBieSBzZXNzaW9uICUiIFBSSXU2NCwgc2Vzc2lvbkZvckRpcmVjdG9yeS5n
ZXQoZGlyZWN0b3J5KS50b1VJbnQ2NCgpLCBzZXNzaW9uSUQudG9VSW50NjQoKSk7CisgICAgICAg
ICAgICB9CisgICAgICAgIH0KICAgICAgICAgYWRkU2Vzc2lvbih3ZWJzaXRlRGF0YVN0b3JlLCBT
ZW5kUGFyYW1ldGVyc1RvTmV0d29ya1Byb2Nlc3M6Ok5vKTsKICAgICB9KTsKICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFT
dG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0
YVN0b3JlLmNwcAppbmRleCAxYzdkMTJkYjMyZTUxNzc5ZmVlNWFjODQ1ODhkOTE2NTI2OTE1MDdm
Li5kZjUxN2Y4NmY2YWMyNzhhMDEyYzEyODRhZmRiNDY2ZjRhOWM3MTgxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3Jl
LmNwcApAQCAtMTg4Miw3ICsxODgyLDcgQEAgV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMgV2Vi
c2l0ZURhdGFTdG9yZTo6cGFyYW1ldGVycygpCiAgICAgICAgICAgICBwYXJhbWV0ZXJzLmNhY2hl
U3RvcmFnZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSA9IFdURk1vdmUoKmhhbmRsZSk7CiAgICAg
fQogCi0gICAgaWYgKGF1dG8gZGlyZWN0b3J5ID0gZ2VuZXJhbFN0b3JhZ2VEaXJlY3RvcnkoKTsg
IWRpcmVjdG9yeS5pc0VtcHR5KCkpIHsKKyAgICBpZiAoYXV0byBkaXJlY3RvcnkgPSByZXNvbHZl
ZEdlbmVyYWxTdG9yYWdlRGlyZWN0b3J5KCk7ICFkaXJlY3RvcnkuaXNFbXB0eSgpKSB7CiAgICAg
ICAgIHBhcmFtZXRlcnMuZ2VuZXJhbFN0b3JhZ2VEaXJlY3RvcnkgPSBkaXJlY3Rvcnk7CiAgICAg
ICAgIGlmIChhdXRvIGhhbmRsZSA9IFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvclJl
YWRXcml0ZURpcmVjdG9yeShkaXJlY3RvcnkpKQogICAgICAgICAgICAgcGFyYW1ldGVycy5nZW5l
cmFsU3RvcmFnZURpcmVjdG9yeUhhbmRsZSA9IFdURk1vdmUoKmhhbmRsZSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgK
aW5kZXggY2ZjZTVjZTQ0YjZkNTY1YzAyOWMyNTk5ZjJiZjc4ZjRmZjQ0ZWY0NC4uNjM5ZWVkZjE4
N2YzODA3NTJmODhkYjQzN2I4ODhmOWY3YWViZjRjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaApAQCAtMTU5LDcg
KzE1OSw2IEBAIHB1YmxpYzoKICAgICB1aW50NjRfdCBwZXJPcmlnaW5TdG9yYWdlUXVvdGEoKSBj
b25zdCB7IHJldHVybiBtX3Jlc29sdmVkQ29uZmlndXJhdGlvbi0+cGVyT3JpZ2luU3RvcmFnZVF1
b3RhKCk7IH0KICAgICB1aW50NjRfdCBwZXJUaGlyZFBhcnR5T3JpZ2luU3RvcmFnZVF1b3RhKCkg
Y29uc3Q7CiAgICAgY29uc3QgU3RyaW5nJiBjYWNoZVN0b3JhZ2VEaXJlY3RvcnkoKSBjb25zdCB7
IHJldHVybiBtX3Jlc29sdmVkQ29uZmlndXJhdGlvbi0+Y2FjaGVTdG9yYWdlRGlyZWN0b3J5KCk7
IH0KLSAgICBjb25zdCBTdHJpbmcmIGdlbmVyYWxTdG9yYWdlRGlyZWN0b3J5KCkgY29uc3QgeyBy
ZXR1cm4gbV9yZXNvbHZlZENvbmZpZ3VyYXRpb24tPmdlbmVyYWxTdG9yYWdlRGlyZWN0b3J5KCk7
IH0KIAogI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIHZv
aWQgY2xlYXJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzSW5XZWJQcm9jZXNzZXMoQ29tcGxldGlvbkhh
bmRsZXI8dm9pZCgpPiYmKTsKQEAgLTI1OCw2ICsyNTcsNyBAQCBwdWJsaWM6CiAgICAgY29uc3Qg
U3RyaW5nJiByZXNvbHZlZFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EaXJlY3RvcnkoKSBjb25z
dCB7IHJldHVybiBtX3Jlc29sdmVkQ29uZmlndXJhdGlvbi0+c2VydmljZVdvcmtlclJlZ2lzdHJh
dGlvbkRpcmVjdG9yeSgpOyB9CiAgICAgY29uc3QgU3RyaW5nJiByZXNvbHZlZFJlc291cmNlTG9h
ZFN0YXRpc3RpY3NEaXJlY3RvcnkoKSBjb25zdCB7IHJldHVybiBtX3Jlc29sdmVkQ29uZmlndXJh
dGlvbi0+cmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeSgpOyB9CiAgICAgY29uc3QgU3Ry
aW5nJiByZXNvbHZlZEhTVFNTdG9yYWdlRGlyZWN0b3J5KCkgY29uc3QgeyByZXR1cm4gbV9yZXNv
bHZlZENvbmZpZ3VyYXRpb24tPmhzdHNTdG9yYWdlRGlyZWN0b3J5KCk7IH0KKyAgICBjb25zdCBT
dHJpbmcmIHJlc29sdmVkR2VuZXJhbFN0b3JhZ2VEaXJlY3RvcnkoKSBjb25zdCB7IHJldHVybiBt
X3Jlc29sdmVkQ29uZmlndXJhdGlvbi0+Z2VuZXJhbFN0b3JhZ2VEaXJlY3RvcnkoKTsgfQogI2lm
IEVOQUJMRShBUktJVF9JTkxJTkVfUFJFVklFVykKICAgICBjb25zdCBTdHJpbmcmIHJlc29sdmVk
TW9kZWxFbGVtZW50Q2FjaGVEaXJlY3RvcnkoKSBjb25zdCB7IHJldHVybiBtX3Jlc29sdmVkQ29u
ZmlndXJhdGlvbi0+bW9kZWxFbGVtZW50Q2FjaGVEaXJlY3RvcnkoKTsgfQogI2VuZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>453563</attachid>
            <date>2022-03-01 19:27:27 -0800</date>
            <delta_ts>2022-03-01 23:16:09 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-236844-20220301192726.patch</filename>
            <type>text/plain</type>
            <size>23813</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwNjc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGU5NTgzMjVlZTAyY2FhMTU1
MjYzY2JhNmNiNzI2ZThhMWQ0MjMzZTAuLjk0MmFiZTlmZDk4NTY0NjA2MDEzNjUyNGNiMzc3NGI3
ZTdmZWVjNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMjItMDMtMDEgIFNpaHVpIExp
dSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGFzc2VydGlvbiB0aGF0IG5v
IHR3byBzZXNzaW9ucyBzaGFyZSB0aGUgc2FtZSBnZW5lcmFsIHN0b3JhZ2UgZGlyZWN0b3J5Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzY4NDQKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg5MTc4NTY2PgorCisgICAgICAgIFJldmlld2VkIGJ5IENo
cmlzIER1bWV6LgorCisgICAgICAgIHJkYXI6Ly84OTE5MDU3MSBzaG93cyB0aGF0IHRoZXJlIGNh
biBiZSB0d28gV2Vic2l0ZURhdGFTdG9yZXMgdXNpbmcgdGhlIHNhbWUgZ2VuZXJhbCBzdG9yYWdl
IGRpcmVjdG9yeSwgd2hlbgorICAgICAgICBpbml0aWFsaXppbmcgbmV0d29yayBwcm9jZXNzLiBU
aGlzIGNhbiBsZWFkIHRvIGNvcnJ1cHRpb24gYmVjYXVzZSBzdG9yYWdlIGNvZGUgb2YgZWFjaCBz
ZXNzaW9uIHJ1bnMgb24gaXRzIG93bgorICAgICAgICBXb3JrUXVldWUgKG9yIHRocmVhZCkgaW4g
bmV0d29yayBwcm9jZXNzLiBJZiB0d28gc2Vzc2lvbnMgKFdlYnNpdGVEYXRhU3RvcmVzKSB1c2Ug
dGhlIHNhbWUgZGlyZWN0b3J5LCB0aGUgCisgICAgICAgIGRpcmVjdG9yeSBhbmQgaXRzIGZpbGVz
IG1heSBiZSBhY2Nlc3NlZCBjb25jdXJyZW50bHkuIFRoZSBjb3JyZWN0IHVzYWdlIGlzIGNyZWF0
aW5nIGRpZmZlcmVudCBwZXJzaXN0ZW50IAorICAgICAgICBzZXNzaW9ucyB3aXRoIGRpZmZlcmVu
dCBwYXRocy4gTGV0J3MgYWRkIGFuIGFzc2VydGlvbiB0byBoZWxwIGZpbmQgcHJvYmxlbWF0aWMg
dXNlIGNhc2UuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1By
b3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6c2VuZENyZWF0
aW9uUGFyYW1ldGVyc1RvTmV3UHJvY2Vzcyk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYnNpdGVE
YXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0
b3JlOjpwYXJhbWV0ZXJzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0
ZURhdGFTdG9yZS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlOjpjYWNoZVN0
b3JhZ2VEaXJlY3RvcnkgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3Jl
OjpyZXNvbHZlZEdlbmVyYWxTdG9yYWdlRGlyZWN0b3J5IGNvbnN0KToKKyAgICAgICAgKFdlYktp
dDo6V2Vic2l0ZURhdGFTdG9yZTo6Z2VuZXJhbFN0b3JhZ2VEaXJlY3RvcnkgY29uc3QpOiBEZWxl
dGVkLgorCiAyMDIyLTAzLTAxICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgogCiAg
ICAgICAgIE1vdmUgU3RvcmFnZUJ1Y2tldCBmdW5jdGlvbiBkZWZpbml0aW9ucyBvdXRzaWRlIHRo
ZSBjbGFzcyBkZWZpbml0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9O
ZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
TmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAppbmRleCA1N2RlOGIxZjY1ODY2ZmIxZmNm
N2JkMThiYmI2OGQyMGMxNWFlOWZjLi5iMWY4NmU5ZDRkNWM0ZTFmYjU3ZjlkMTgxNmE2ZTVhMWE1
ZWE5NzNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdv
cmtQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsv
TmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKQEAgLTIwOCw3ICsyMDgsMTYgQEAgdm9pZCBOZXR3b3Jr
UHJvY2Vzc1Byb3h5OjpzZW5kQ3JlYXRpb25QYXJhbWV0ZXJzVG9OZXdQcm9jZXNzKCkKIAogI2lm
ICFQTEFURk9STShHVEspICYmICFQTEFURk9STShXUEUpIC8vIEdUSyBhbmQgV1BFIGRvbid0IHVz
ZSBkZWZhdWx0TmV0d29ya1Byb2Nlc3MKICAgICBwYXJhbWV0ZXJzLndlYnNpdGVEYXRhU3RvcmVQ
YXJhbWV0ZXJzID0gV2Vic2l0ZURhdGFTdG9yZTo6cGFyYW1ldGVyc0Zyb21FYWNoV2Vic2l0ZURh
dGFTdG9yZSgpOwotICAgIFdlYnNpdGVEYXRhU3RvcmU6OmZvckVhY2hXZWJzaXRlRGF0YVN0b3Jl
KFt0aGlzXShhdXRvJiB3ZWJzaXRlRGF0YVN0b3JlKSB7CisgICAgSGFzaE1hcDxTdHJpbmcsIFBB
TDo6U2Vzc2lvbklEPiBzZXNzaW9uRm9yRGlyZWN0b3J5OworICAgIFdlYnNpdGVEYXRhU3RvcmU6
OmZvckVhY2hXZWJzaXRlRGF0YVN0b3JlKFsmXShhdXRvJiB3ZWJzaXRlRGF0YVN0b3JlKSB7Cisg
ICAgICAgIGlmICh3ZWJzaXRlRGF0YVN0b3JlLmlzUGVyc2lzdGVudCgpKSB7CisgICAgICAgICAg
ICBpZiAoYXV0byBkaXJlY3RvcnkgPSB3ZWJzaXRlRGF0YVN0b3JlLnJlc29sdmVkR2VuZXJhbFN0
b3JhZ2VEaXJlY3RvcnkoKTsgIWRpcmVjdG9yeS5pc0VtcHR5KCkpIHsKKyAgICAgICAgICAgICAg
ICBhdXRvIHNlc3Npb25JRCA9IHdlYnNpdGVEYXRhU3RvcmUuc2Vzc2lvbklEKCk7CisgICAgICAg
ICAgICAgICAgLy8gUGVyc2lzdGVudCBzZXNzaW9ucyBzaGFyaW5nIHNhbWUgc3RvcmFnZSBkaXJl
Y3RvcnkgbWF5IGNhdXNlIGNvcnJ1cHRpb24uCisgICAgICAgICAgICAgICAgLy8gSWYgdGhlIGFz
c2VydGlvbiBpcyBoaXQsIGNoZWNrIGlmIHlvdSBoYXZlIG11bHRpcGxlIFdlYnNpdGVEYXRhU3Rv
cmVzIHdpdGggdGhlIHNhbWUgZ2VuZXJhbFN0b3JhZ2VEaXJlY3RvcnkuCisgICAgICAgICAgICAg
ICAgUkVMRUFTRV9BU1NFUlRfV0lUSF9NRVNTQUdFKHNlc3Npb25Gb3JEaXJlY3RvcnkuYWRkKGRp
cmVjdG9yeSwgc2Vzc2lvbklEKS5pc05ld0VudHJ5LCAiR2VuZXJhbFN0b3JhZ2VEaXJlY3Rvcnkg
Zm9yIHNlc3Npb24gJSIgUFJJdTY0ICIgaXMgYWxyZWFkeSBpbiB1c2UgYnkgc2Vzc2lvbiAlIiBQ
Ukl1NjQsIHNlc3Npb25Gb3JEaXJlY3RvcnkuZ2V0KGRpcmVjdG9yeSkudG9VSW50NjQoKSwgc2Vz
c2lvbklELnRvVUludDY0KCkpOworICAgICAgICAgICAgfQorICAgICAgICB9CiAgICAgICAgIGFk
ZFNlc3Npb24od2Vic2l0ZURhdGFTdG9yZSwgU2VuZFBhcmFtZXRlcnNUb05ldHdvcmtQcm9jZXNz
OjpObyk7CiAgICAgfSk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKaW5kZXggMWM3ZDEyZGIzMmU1
MTc3OWZlZTVhYzg0NTg4ZDkxNjUyNjkxNTA3Zi4uZGY1MTdmODZmNmFjMjc4YTAxMmMxMjg0YWZk
YjQ2NmY0YTljNzE4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0
ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKQEAgLTE4ODIsNyArMTg4Miw3IEBAIFdl
YnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzIFdlYnNpdGVEYXRhU3RvcmU6OnBhcmFtZXRlcnMoKQog
ICAgICAgICAgICAgcGFyYW1ldGVycy5jYWNoZVN0b3JhZ2VEaXJlY3RvcnlFeHRlbnNpb25IYW5k
bGUgPSBXVEZNb3ZlKCpoYW5kbGUpOwogICAgIH0KIAotICAgIGlmIChhdXRvIGRpcmVjdG9yeSA9
IGdlbmVyYWxTdG9yYWdlRGlyZWN0b3J5KCk7ICFkaXJlY3RvcnkuaXNFbXB0eSgpKSB7CisgICAg
aWYgKGF1dG8gZGlyZWN0b3J5ID0gcmVzb2x2ZWRHZW5lcmFsU3RvcmFnZURpcmVjdG9yeSgpOyAh
ZGlyZWN0b3J5LmlzRW1wdHkoKSkgewogICAgICAgICBwYXJhbWV0ZXJzLmdlbmVyYWxTdG9yYWdl
RGlyZWN0b3J5ID0gZGlyZWN0b3J5OwogICAgICAgICBpZiAoYXV0byBoYW5kbGUgPSBTYW5kYm94
RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JSZWFkV3JpdGVEaXJlY3RvcnkoZGlyZWN0b3J5KSkK
ICAgICAgICAgICAgIHBhcmFtZXRlcnMuZ2VuZXJhbFN0b3JhZ2VEaXJlY3RvcnlIYW5kbGUgPSBX
VEZNb3ZlKCpoYW5kbGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
c2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
c2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oCmluZGV4IGNmY2U1Y2U0NGI2ZDU2NWMwMjljMjU5
OWYyYmY3OGY0ZmY0NGVmNDQuLjYzOWVlZGYxODdmMzgwNzUyZjg4ZGI0MzdiODg4ZjlmN2FlYmY0
Y2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNp
dGVEYXRhU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9X
ZWJzaXRlRGF0YVN0b3JlLmgKQEAgLTE1OSw3ICsxNTksNiBAQCBwdWJsaWM6CiAgICAgdWludDY0
X3QgcGVyT3JpZ2luU3RvcmFnZVF1b3RhKCkgY29uc3QgeyByZXR1cm4gbV9yZXNvbHZlZENvbmZp
Z3VyYXRpb24tPnBlck9yaWdpblN0b3JhZ2VRdW90YSgpOyB9CiAgICAgdWludDY0X3QgcGVyVGhp
cmRQYXJ0eU9yaWdpblN0b3JhZ2VRdW90YSgpIGNvbnN0OwogICAgIGNvbnN0IFN0cmluZyYgY2Fj
aGVTdG9yYWdlRGlyZWN0b3J5KCkgY29uc3QgeyByZXR1cm4gbV9yZXNvbHZlZENvbmZpZ3VyYXRp
b24tPmNhY2hlU3RvcmFnZURpcmVjdG9yeSgpOyB9Ci0gICAgY29uc3QgU3RyaW5nJiBnZW5lcmFs
U3RvcmFnZURpcmVjdG9yeSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVzb2x2ZWRDb25maWd1cmF0aW9u
LT5nZW5lcmFsU3RvcmFnZURpcmVjdG9yeSgpOyB9CiAKICNpZiBFTkFCTEUoSU5URUxMSUdFTlRf
VFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICB2b2lkIGNsZWFyUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c0luV2ViUHJvY2Vzc2VzKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CkBAIC0yNTgsNiAr
MjU3LDcgQEAgcHVibGljOgogICAgIGNvbnN0IFN0cmluZyYgcmVzb2x2ZWRTZXJ2aWNlV29ya2Vy
UmVnaXN0cmF0aW9uRGlyZWN0b3J5KCkgY29uc3QgeyByZXR1cm4gbV9yZXNvbHZlZENvbmZpZ3Vy
YXRpb24tPnNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EaXJlY3RvcnkoKTsgfQogICAgIGNvbnN0
IFN0cmluZyYgcmVzb2x2ZWRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5KCkgY29uc3Qg
eyByZXR1cm4gbV9yZXNvbHZlZENvbmZpZ3VyYXRpb24tPnJlc291cmNlTG9hZFN0YXRpc3RpY3NE
aXJlY3RvcnkoKTsgfQogICAgIGNvbnN0IFN0cmluZyYgcmVzb2x2ZWRIU1RTU3RvcmFnZURpcmVj
dG9yeSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVzb2x2ZWRDb25maWd1cmF0aW9uLT5oc3RzU3RvcmFn
ZURpcmVjdG9yeSgpOyB9CisgICAgY29uc3QgU3RyaW5nJiByZXNvbHZlZEdlbmVyYWxTdG9yYWdl
RGlyZWN0b3J5KCkgY29uc3QgeyByZXR1cm4gbV9yZXNvbHZlZENvbmZpZ3VyYXRpb24tPmdlbmVy
YWxTdG9yYWdlRGlyZWN0b3J5KCk7IH0KICNpZiBFTkFCTEUoQVJLSVRfSU5MSU5FX1BSRVZJRVcp
CiAgICAgY29uc3QgU3RyaW5nJiByZXNvbHZlZE1vZGVsRWxlbWVudENhY2hlRGlyZWN0b3J5KCkg
Y29uc3QgeyByZXR1cm4gbV9yZXNvbHZlZENvbmZpZ3VyYXRpb24tPm1vZGVsRWxlbWVudENhY2hl
RGlyZWN0b3J5KCk7IH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9v
bHMvQ2hhbmdlTG9nCmluZGV4IGI1OWYwZThiMGQxMmFmMTM4MzZkMjcxZTk1NzQ5MDM1NmNlZGZk
NzguLmIyMWU3MTAzMzdmNjgzYzJkZjA0NTJlMjUwMjgzOGI2MzI2Mzg3MDEgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNCBAQAor
MjAyMi0wMy0wMSAgU2lodWkgTGl1ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4KKworICAgICAgICBB
ZGQgYXNzZXJ0aW9uIHRoYXQgbm8gdHdvIHNlc3Npb25zIHNoYXJlIHRoZSBzYW1lIGdlbmVyYWwg
c3RvcmFnZSBkaXJlY3RvcnkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIzNjg0NAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODkxNzg1NjY+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXBkYXRlIHRoZSB0
ZXN0cyB3aGVyZSB0d28gV2Vic2l0ZURhdGFTdG9yZXMgYXJlIGNyZWF0ZWQgd2l0aCB0aGUgc2Ft
ZSBnZW5lcmFsIHN0b3JhZ2UgZGlyZWN0b3J5LgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5tbToKKyAgICAgICAgKGVt
cHR5T2JzZXJ2YXRpb25zREJQYXRoKToKKyAgICAgICAgKGVtcHR5UGNtREJQYXRoKToKKyAgICAg
ICAgKGNsZWFuVXApOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
UHVzaEFQSS5tbToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Jl
c291cmNlTG9hZFN0YXRpc3RpY3MubW06CisgICAgICAgIChURVNUKToKKyAgICAgICAgKiBUZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dlYlB1c2hEYWVtb24ubW06CisgICAgICAgICog
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XZWJzaXRlRGF0YVN0b3JlQ3VzdG9tUGF0
aHMubW06CisgICAgICAgIChydW5XZWJzaXRlRGF0YVN0b3JlQ3VzdG9tUGF0aHMpOgorCiAyMDIy
LTAzLTAxICBBbmRyZXMgR29uemFsZXogIDxhbmRyZXNnXzIyQGFwcGxlLmNvbT4KIAogICAgICAg
ICBNYWtlIGFjY2Vzc2liaWxpdHkvYXJpYS1oaWRkZW4tZmFsc2Utd29ya3MtaW4tc3VidHJlZXMu
aHRtbCBhc3luYyB0byBwYXNzIGluIGlzb2xhdGVkIHRyZWUgbW9kZS4KZGlmZiAtLWdpdCBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1ByaXZhdGVDbGlj
a01lYXN1cmVtZW50Lm1tCmluZGV4IGVhMDExMGM1ZjU0YzBhNTQwMjIwZTE3NjdhNmRlMTM3OGYz
YzJjYzAuLmIyYjg0YjY1YWFhODZhZjc0MGFkMWZmMzZjNTk4NDgwM2UwMmRhYmQgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Q
cml2YXRlQ2xpY2tNZWFzdXJlbWVudC5tbQpAQCAtMjkyLDcgKzI5Miw4IEBAIHN0YXRpYyB2b2lk
IHBvbGxVbnRpbFBDTUlzTWlncmF0ZWQoV0tXZWJWaWV3ICp3ZWJWaWV3LCBNaWdyYXRpbmdGcm9t
UmVzb3VyY2VMb2FkCiBzdGF0aWMgTlNTdHJpbmcgKmVtcHR5T2JzZXJ2YXRpb25zREJQYXRoKCkK
IHsKICAgICBOU0ZpbGVNYW5hZ2VyICpkZWZhdWx0RmlsZU1hbmFnZXIgPSBOU0ZpbGVNYW5hZ2Vy
LmRlZmF1bHRNYW5hZ2VyOwotICAgIE5TVVJMICppdHBSb290VVJMID0gV0tXZWJzaXRlRGF0YVN0
b3JlLmRlZmF1bHREYXRhU3RvcmUuX2NvbmZpZ3VyYXRpb24uX3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3NEaXJlY3Rvcnk7CisgICAgYXV0byBkYXRhU3RvcmVDb25maWd1cmF0aW9uID0gYWRvcHROUyhb
W19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CisgICAgTlNV
UkwgKml0cFJvb3RVUkwgPSBkYXRhU3RvcmVDb25maWd1cmF0aW9uLmdldCgpLl9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzRGlyZWN0b3J5OwogICAgIE5TVVJMICpmaWxlVVJMID0gW2l0cFJvb3RVUkwg
VVJMQnlBcHBlbmRpbmdQYXRoQ29tcG9uZW50OkAib2JzZXJ2YXRpb25zLmRiIl07CiAgICAgW2Rl
ZmF1bHRGaWxlTWFuYWdlciByZW1vdmVJdGVtQXRQYXRoOml0cFJvb3RVUkwucGF0aCBlcnJvcjpu
aWxdOwogICAgIEVYUEVDVF9GQUxTRShbZGVmYXVsdEZpbGVNYW5hZ2VyIGZpbGVFeGlzdHNBdFBh
dGg6aXRwUm9vdFVSTC5wYXRoXSk7CkBAIC0zMDMsNyArMzA0LDggQEAgc3RhdGljIE5TU3RyaW5n
ICplbXB0eU9ic2VydmF0aW9uc0RCUGF0aCgpCiBzdGF0aWMgTlNTdHJpbmcgKmVtcHR5UGNtREJQ
YXRoKCkKIHsKICAgICBOU0ZpbGVNYW5hZ2VyICpkZWZhdWx0RmlsZU1hbmFnZXIgPSBOU0ZpbGVN
YW5hZ2VyLmRlZmF1bHRNYW5hZ2VyOwotICAgIE5TVVJMICppdHBSb290VVJMID0gV0tXZWJzaXRl
RGF0YVN0b3JlLmRlZmF1bHREYXRhU3RvcmUuX2NvbmZpZ3VyYXRpb24uX3Jlc291cmNlTG9hZFN0
YXRpc3RpY3NEaXJlY3Rvcnk7CisgICAgYXV0byBkYXRhU3RvcmVDb25maWd1cmF0aW9uID0gYWRv
cHROUyhbW19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7Cisg
ICAgTlNVUkwgKml0cFJvb3RVUkwgPSBkYXRhU3RvcmVDb25maWd1cmF0aW9uLmdldCgpLl9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5OwogICAgIE5TVVJMICpmaWxlVVJMID0gW2l0cFJv
b3RVUkwgVVJMQnlBcHBlbmRpbmdQYXRoQ29tcG9uZW50OkAicGNtLmRiIl07CiAgICAgW2RlZmF1
bHRGaWxlTWFuYWdlciByZW1vdmVJdGVtQXRQYXRoOml0cFJvb3RVUkwucGF0aCBlcnJvcjpuaWxd
OwogICAgIEVYUEVDVF9GQUxTRShbZGVmYXVsdEZpbGVNYW5hZ2VyIGZpbGVFeGlzdHNBdFBhdGg6
aXRwUm9vdFVSTC5wYXRoXSk7CkBAIC0zMTYsNyArMzE4LDggQEAgc3RhdGljIHZvaWQgY2xlYW5V
cChSZXRhaW5QdHI8V0tXZWJWaWV3PiB3ZWJWaWV3KQogICAgIHN0YXRpYyBib29sIGlzRG9uZSA9
IGZhbHNlOwogICAgIFtbd2ViVmlldy5nZXQoKSBjb25maWd1cmF0aW9uXS53ZWJzaXRlRGF0YVN0
b3JlIF9jbG9zZURhdGFiYXNlczpeewogICAgICAgICBOU0ZpbGVNYW5hZ2VyICpkZWZhdWx0Rmls
ZU1hbmFnZXIgPSBOU0ZpbGVNYW5hZ2VyLmRlZmF1bHRNYW5hZ2VyOwotICAgICAgICBOU1N0cmlu
ZyAqaXRwUm9vdCA9IFdLV2Vic2l0ZURhdGFTdG9yZS5kZWZhdWx0RGF0YVN0b3JlLl9jb25maWd1
cmF0aW9uLl9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5LnBhdGg7CisgICAgICAgIGF1
dG8gZGF0YVN0b3JlQ29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tfV0tXZWJzaXRlRGF0YVN0b3Jl
Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOworICAgICAgICBOU1N0cmluZyAqaXRwUm9vdCA9
IGRhdGFTdG9yZUNvbmZpZ3VyYXRpb24uZ2V0KCkuX3Jlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJl
Y3RvcnkucGF0aDsKICAgICAgICAgW2RlZmF1bHRGaWxlTWFuYWdlciByZW1vdmVJdGVtQXRQYXRo
Oml0cFJvb3QgZXJyb3I6bmlsXTsKICAgICAgICAgd2hpbGUgKFtkZWZhdWx0RmlsZU1hbmFnZXIg
ZmlsZUV4aXN0c0F0UGF0aDppdHBSb290XSkKICAgICAgICAgICAgIHVzbGVlcCgxMDAwMCk7CmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1B1c2hBUEku
bW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1B1c2hBUEkubW0KaW5k
ZXggYjY3Mjk2NzhhZjk5ODU3ZDJhZmY5MGMzY2FlNDNlNmZiMjQ3Y2FiNC4uYzVhYmQ0NmYzYWU5
NmJlMjA4NTVhNzU5MWQ1ZGFjMzhjNDZjODBiMiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9QdXNoQVBJLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvUHVzaEFQSS5tbQpAQCAtMTA3LDcgKzEwNyw3IEBAIHNlbGYu
YWRkRXZlbnRMaXN0ZW5lcigicHVzaCIsIChldmVudCkgPT4gewogc3RhdGljIHZvaWQgY2xlYXJX
ZWJzaXRlRGF0YVN0b3JlKFdLV2Vic2l0ZURhdGFTdG9yZSAqc3RvcmUpCiB7CiAgICAgX19ibG9j
ayBib29sIGNsZWFyZWRTdG9yZSA9IGZhbHNlOwotICAgIFtbV0tXZWJzaXRlRGF0YVN0b3JlIGRl
ZmF1bHREYXRhU3RvcmVdIHJlbW92ZURhdGFPZlR5cGVzOltXS1dlYnNpdGVEYXRhU3RvcmUgYWxs
V2Vic2l0ZURhdGFUeXBlc10gbW9kaWZpZWRTaW5jZTpbTlNEYXRlIGRpc3RhbnRQYXN0XSBjb21w
bGV0aW9uSGFuZGxlcjpeKCkgeworICAgIFtzdG9yZSByZW1vdmVEYXRhT2ZUeXBlczpbV0tXZWJz
aXRlRGF0YVN0b3JlIGFsbFdlYnNpdGVEYXRhVHlwZXNdIG1vZGlmaWVkU2luY2U6W05TRGF0ZSBk
aXN0YW50UGFzdF0gY29tcGxldGlvbkhhbmRsZXI6XigpIHsKICAgICAgICAgY2xlYXJlZFN0b3Jl
ID0gdHJ1ZTsKICAgICB9XTsKICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmNsZWFyZWRT
dG9yZSk7CkBAIC0zMjMsMTMgKzMyMywxMiBAQCBURVNUKFB1c2hBUEksIGZpcmVQdXNoRXZlbnRX
aXRoTm9QYWdlc1RpbWVvdXQpCiAgICAgW1tjb25maWd1cmF0aW9uIHVzZXJDb250ZW50Q29udHJv
bGxlcl0gYWRkU2NyaXB0TWVzc2FnZUhhbmRsZXI6bWVzc2FnZUhhbmRsZXIuZ2V0KCkgbmFtZTpA
InN3Il07CiAKICAgICBleHBlY3RlZE1lc3NhZ2UgPSAiUmVhZHkiOwotICAgIGF1dG8gd2ViVmll
dyA9IGFkb3B0TlMoW1tXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgw
LCAwLCA4MDAsIDYwMCkgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uLmdldCgpXSk7Ci0gICAg
W3dlYlZpZXcgbG9hZFJlcXVlc3Q6c2VydmVyLnJlcXVlc3QoKV07Ci0KLSAgICBUZXN0V2ViS2l0
QVBJOjpVdGlsOjpydW4oJmRvbmUpOwogCi0gICAgW3dlYlZpZXcgX2Nsb3NlXTsKLSAgICB3ZWJW
aWV3ID0gbnVsbHB0cjsKKyAgICBAYXV0b3JlbGVhc2Vwb29sIHsKKyAgICAgICAgYXV0byB3ZWJW
aWV3ID0gYWRvcHROUyhbW1dLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0
KDAsIDAsIDgwMCwgNjAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCldKTsKKyAg
ICAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6c2VydmVyLnJlcXVlc3QoKV07CisgICAgICAgIFRl
c3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgfQogCiAgICAgW2RhdGFTdG9yZUNv
bmZpZ3VyYXRpb24gc2V0U2VydmljZVdvcmtlclByb2Nlc3NUZXJtaW5hdGlvbkRlbGF5RW5hYmxl
ZDpOT107CiAgICAgZGF0YVN0b3JlID0gYWRvcHROUyhbW1dLV2Vic2l0ZURhdGFTdG9yZSBhbGxv
Y10gX2luaXRXaXRoQ29uZmlndXJhdGlvbjpkYXRhU3RvcmVDb25maWd1cmF0aW9uLmdldCgpXSk7
CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Jlc291
cmNlTG9hZFN0YXRpc3RpY3MubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL1Jlc291cmNlTG9hZFN0YXRpc3RpY3MubW0KaW5kZXggMzBhM2M4NzMxY2JiYzhjNDNjZjdj
ZTg5Y2YzNTYyMjMxZDM5NTQyMy4uY2JmNWFlY2M4Mjg2N2JmZDM3M2Q1MTg4MWE4ZTk0YTA0YmM5
YTNkOCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9S
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvUmVzb3VyY2VMb2FkU3RhdGlzdGljcy5tbQpAQCAtMTA4NiwxNSArMTA4Niwx
OCBAQCBURVNUKFJlc291cmNlTG9hZFN0YXRpc3RpY3MsIENhbkFjY2Vzc0RhdGFTdW1tYXJ5V2l0
aE5vUHJvY2Vzc1Bvb2wpCiBURVNUKFJlc291cmNlTG9hZFN0YXRpc3RpY3MsIFN0b3JlU3VzcGVu
c2lvbikKIHsKICAgICBhdXRvICpzaGFyZWRQcm9jZXNzUG9vbCA9IFtXS1Byb2Nlc3NQb29sIF9z
aGFyZWRQcm9jZXNzUG9vbF07Ci0gICAgYXV0byAqZGF0YVN0b3JlMSA9IFtXS1dlYnNpdGVEYXRh
U3RvcmUgZGVmYXVsdERhdGFTdG9yZV07Ci0gICAgYXV0byBkYXRhU3RvcmUyID0gYWRvcHROUyhb
W1dLV2Vic2l0ZURhdGFTdG9yZSBhbGxvY10gX2luaXRXaXRoQ29uZmlndXJhdGlvbjphZG9wdE5T
KFtbX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKS5nZXQoKV0p
OworICAgIGF1dG8gZGF0YVN0b3JlQ29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tfV0tXZWJzaXRl
RGF0YVN0b3JlQ29uZmlndXJhdGlvbiBhbGxvY10gaW5pdE5vblBlcnNpc3RlbnRDb25maWd1cmF0
aW9uXSk7CisgICAgYXV0byBjdXN0b21HZW5lcmFsU3RvcmFnZURpcmVjdG9yeSA9IFtOU1VSTCBV
UkxXaXRoU3RyaW5nOltOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAiJUAlQCIsIGRhdGFTdG9y
ZUNvbmZpZ3VyYXRpb24uZ2V0KCkuZ2VuZXJhbFN0b3JhZ2VEaXJlY3RvcnkucGF0aCwgQCJfQ3Vz
dG9tIl1dOworICAgIGF1dG8gZGF0YVN0b3JlMSA9IGFkb3B0TlMoW1tXS1dlYnNpdGVEYXRhU3Rv
cmUgYWxsb2NdIF9pbml0V2l0aENvbmZpZ3VyYXRpb246ZGF0YVN0b3JlQ29uZmlndXJhdGlvbi5n
ZXQoKV0pOworICAgIGRhdGFTdG9yZUNvbmZpZ3VyYXRpb24uZ2V0KCkuZ2VuZXJhbFN0b3JhZ2VE
aXJlY3RvcnkgPSBjdXN0b21HZW5lcmFsU3RvcmFnZURpcmVjdG9yeTsKKyAgICBhdXRvIGRhdGFT
dG9yZTIgPSBhZG9wdE5TKFtbV0tXZWJzaXRlRGF0YVN0b3JlIGFsbG9jXSBfaW5pdFdpdGhDb25m
aWd1cmF0aW9uOmRhdGFTdG9yZUNvbmZpZ3VyYXRpb24uZ2V0KCldKTsKIAogICAgIFtkYXRhU3Rv
cmUxIF9zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZDpZRVNdOwogICAgIFtkYXRhU3Rv
cmUyIF9zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZDpZRVNdOwogCiAgICAgYXV0byBj
b25maWd1cmF0aW9uMSA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBp
bml0XSk7CiAgICAgW2NvbmZpZ3VyYXRpb24xIHNldFByb2Nlc3NQb29sOiBzaGFyZWRQcm9jZXNz
UG9vbF07Ci0gICAgY29uZmlndXJhdGlvbjEuZ2V0KCkud2Vic2l0ZURhdGFTdG9yZSA9IGRhdGFT
dG9yZTE7CisgICAgY29uZmlndXJhdGlvbjEuZ2V0KCkud2Vic2l0ZURhdGFTdG9yZSA9IGRhdGFT
dG9yZTEuZ2V0KCk7CiAKICAgICBhdXRvIGNvbmZpZ3VyYXRpb24yID0gYWRvcHROUyhbW1dLV2Vi
Vmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKICAgICBbY29uZmlndXJhdGlvbjIgc2V0
UHJvY2Vzc1Bvb2w6IHNoYXJlZFByb2Nlc3NQb29sXTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV2ViUHVzaERhZW1vbi5tbSBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV2ViUHVzaERhZW1vbi5tbQppbmRleCA5YmU1YTIw
YTBjMGI4NDU3NDQ3NmMxMTkwMTk0ZDI5MjljNmE3NjcyLi4wZGUwOWRjNmI0OGI3ZTEyZThjY2Uz
NDllMjgzYjgzNjlkODAwMTFkIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL1dlYlB1c2hEYWVtb24ubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9XZWJQdXNoRGFlbW9uLm1tCkBAIC0zOTAsNyArMzkwLDcgQEAgVEVT
VChXZWJQdXNoRCwgUGVybWlzc2lvbk1hbmFnZW1lbnQpCiBzdGF0aWMgdm9pZCBjbGVhcldlYnNp
dGVEYXRhU3RvcmUoV0tXZWJzaXRlRGF0YVN0b3JlICpzdG9yZSkKIHsKICAgICBfX2Jsb2NrIGJv
b2wgY2xlYXJlZFN0b3JlID0gZmFsc2U7Ci0gICAgW1tXS1dlYnNpdGVEYXRhU3RvcmUgZGVmYXVs
dERhdGFTdG9yZV0gcmVtb3ZlRGF0YU9mVHlwZXM6W1dLV2Vic2l0ZURhdGFTdG9yZSBhbGxXZWJz
aXRlRGF0YVR5cGVzXSBtb2RpZmllZFNpbmNlOltOU0RhdGUgZGlzdGFudFBhc3RdIGNvbXBsZXRp
b25IYW5kbGVyOl4oKSB7CisgICAgW3N0b3JlIHJlbW92ZURhdGFPZlR5cGVzOltXS1dlYnNpdGVE
YXRhU3RvcmUgYWxsV2Vic2l0ZURhdGFUeXBlc10gbW9kaWZpZWRTaW5jZTpbTlNEYXRlIGRpc3Rh
bnRQYXN0XSBjb21wbGV0aW9uSGFuZGxlcjpeKCkgewogICAgICAgICBjbGVhcmVkU3RvcmUgPSB0
cnVlOwogICAgIH1dOwogICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmY2xlYXJlZFN0b3Jl
KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV2Vi
c2l0ZURhdGFTdG9yZUN1c3RvbVBhdGhzLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9XZWJzaXRlRGF0YVN0b3JlQ3VzdG9tUGF0aHMubW0KaW5kZXggNTY3NTkxOTNl
NTQ3NTlmMWJjYzgwMzlkOWMxZDA1N2JlZmQzMDg1Mi4uOGU0N2FiOTgwYWNkZmM2ZTE1MzgwODhi
M2VjNzk3MWVlMGI5YzczMyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9XZWJzaXRlRGF0YVN0b3JlQ3VzdG9tUGF0aHMubW0KKysrIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XZWJzaXRlRGF0YVN0b3JlQ3VzdG9tUGF0aHMu
bW0KQEAgLTE4Nyw4MyArMTg3LDY3IEBAIHN0YXRpYyB2b2lkIHJ1bldlYnNpdGVEYXRhU3RvcmVD
dXN0b21QYXRocyhTaG91bGRFbmFibGVQcm9jZXNzUHJld2FybWluZyBzaG91bGRFCiAgICAgUmV0
YWluUHRyPE5TVVJMPiBmaWxlSURCUGF0aCA9IFtbaWRiUGF0aCBVUkxCeUFwcGVuZGluZ1BhdGhD
b21wb25lbnQ6QCJ2MSJdIFVSTEJ5QXBwZW5kaW5nUGF0aENvbXBvbmVudDpAImZpbGVfXzAiXTsK
ICAgICBFWFBFQ1RfVFJVRShbW05TRmlsZU1hbmFnZXIgZGVmYXVsdE1hbmFnZXJdIGZpbGVFeGlz
dHNBdFBhdGg6ZmlsZUlEQlBhdGguZ2V0KCkucGF0aF0pOwogCi0gICAgYXV0byBkYXRhU3RvcmUg
PSBhZG9wdE5TKFtbV0tXZWJzaXRlRGF0YVN0b3JlIGFsbG9jXSBfaW5pdFdpdGhDb25maWd1cmF0
aW9uOndlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmdldCgpXSk7Ci0gICAgUmV0YWluUHRy
PE5TU2V0PiB0eXBlcyA9IGFkb3B0TlMoW1tOU1NldCBhbGxvY10gaW5pdFdpdGhPYmplY3RzOldL
V2Vic2l0ZURhdGFUeXBlSW5kZXhlZERCRGF0YWJhc2VzLCBuaWxdKTsKLQotICAgIC8vIFN1YmZy
YW1lIG9mIGRpZmZlcmVudCBvcmlnaW5zIG1heSBhbHNvIGNyZWF0ZSBJbmRleGVkREIgZmlsZXMu
Ci0gICAgUmV0YWluUHRyPE5TVVJMPiB1cmwxID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxG
b3JSZXNvdXJjZTpAIkluZGV4ZWREQiIgd2l0aEV4dGVuc2lvbjpAInNxbGl0ZTMiIHN1YmRpcmVj
dG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07Ci0gICAgUmV0YWluUHRyPE5TVVJMPiB1
cmwyID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIkluZGV4ZWREQiIg
d2l0aEV4dGVuc2lvbjpAInNxbGl0ZTMtc2htIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJ
LnJlc291cmNlcyJdOwotICAgIFJldGFpblB0cjxOU1VSTD4gdXJsMyA9IFtbTlNCdW5kbGUgbWFp
bkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJJbmRleGVkREIiIHdpdGhFeHRlbnNpb246QCJzcWxp
dGUzLXdhbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKLQotICAg
IFJldGFpblB0cjxOU1VSTD4gZnJhbWVJREJQYXRoID0gW1tmaWxlSURCUGF0aCBVUkxCeUFwcGVu
ZGluZ1BhdGhDb21wb25lbnQ6QCJodHRwc19hcHBsZS5jb21fMCJdIFVSTEJ5QXBwZW5kaW5nUGF0
aENvbXBvbmVudDpAIldlYnNpdGVEYXRhU3RvcmVDdXN0b21QYXRocyJdOwotICAgIFtbTlNGaWxl
TWFuYWdlciBkZWZhdWx0TWFuYWdlcl0gY3JlYXRlRGlyZWN0b3J5QXRVUkw6ZnJhbWVJREJQYXRo
LmdldCgpIHdpdGhJbnRlcm1lZGlhdGVEaXJlY3RvcmllczpZRVMgYXR0cmlidXRlczpuaWwgZXJy
b3I6bmlsXTsKLQotICAgIFtbTlNGaWxlTWFuYWdlciBkZWZhdWx0TWFuYWdlcl0gY29weUl0ZW1B
dFVSTDp1cmwxLmdldCgpIHRvVVJMOltmcmFtZUlEQlBhdGguZ2V0KCkgVVJMQnlBcHBlbmRpbmdQ
YXRoQ29tcG9uZW50OkAiSW5kZXhlZERCLnNxbGl0ZTMiXSBlcnJvcjpuaWxdOwotICAgIFtbTlNG
aWxlTWFuYWdlciBkZWZhdWx0TWFuYWdlcl0gY29weUl0ZW1BdFVSTDp1cmwyLmdldCgpIHRvVVJM
OltmcmFtZUlEQlBhdGguZ2V0KCkgVVJMQnlBcHBlbmRpbmdQYXRoQ29tcG9uZW50OkAiSW5kZXhl
ZERCLnNxbGl0ZTMtc2htIl0gZXJyb3I6bmlsXTsKLSAgICBbW05TRmlsZU1hbmFnZXIgZGVmYXVs
dE1hbmFnZXJdIGNvcHlJdGVtQXRVUkw6dXJsMy5nZXQoKSB0b1VSTDpbZnJhbWVJREJQYXRoLmdl
dCgpIFVSTEJ5QXBwZW5kaW5nUGF0aENvbXBvbmVudDpAIkluZGV4ZWREQi5zcWxpdGUzLXdhbCJd
IGVycm9yOm5pbF07Ci0KLSAgICBSZXRhaW5QdHI8TlNVUkw+IGZyYW1lSURCUGF0aDIgPSBbW2Zp
bGVJREJQYXRoIFVSTEJ5QXBwZW5kaW5nUGF0aENvbXBvbmVudDpAImh0dHBzX3dlYmtpdC5vcmdf
MCJdIFVSTEJ5QXBwZW5kaW5nUGF0aENvbXBvbmVudDpAIldlYnNpdGVEYXRhU3RvcmVDdXN0b21Q
YXRocyJdOwotICAgIFtbTlNGaWxlTWFuYWdlciBkZWZhdWx0TWFuYWdlcl0gY3JlYXRlRGlyZWN0
b3J5QXRVUkw6ZnJhbWVJREJQYXRoMi5nZXQoKSB3aXRoSW50ZXJtZWRpYXRlRGlyZWN0b3JpZXM6
WUVTIGF0dHJpYnV0ZXM6bmlsIGVycm9yOm5pbF07Ci0KLSAgICBbW05TRmlsZU1hbmFnZXIgZGVm
YXVsdE1hbmFnZXJdIGNvcHlJdGVtQXRVUkw6dXJsMS5nZXQoKSB0b1VSTDpbZnJhbWVJREJQYXRo
Mi5nZXQoKSBVUkxCeUFwcGVuZGluZ1BhdGhDb21wb25lbnQ6QCJJbmRleGVkREIuc3FsaXRlMyJd
IGVycm9yOm5pbF07Ci0gICAgW1tOU0ZpbGVNYW5hZ2VyIGRlZmF1bHRNYW5hZ2VyXSBjb3B5SXRl
bUF0VVJMOnVybDIuZ2V0KCkgdG9VUkw6W2ZyYW1lSURCUGF0aDIuZ2V0KCkgVVJMQnlBcHBlbmRp
bmdQYXRoQ29tcG9uZW50OkAiSW5kZXhlZERCLnNxbGl0ZTMtc2htIl0gZXJyb3I6bmlsXTsKLSAg
ICBbW05TRmlsZU1hbmFnZXIgZGVmYXVsdE1hbmFnZXJdIGNvcHlJdGVtQXRVUkw6dXJsMy5nZXQo
KSB0b1VSTDpbZnJhbWVJREJQYXRoMi5nZXQoKSBVUkxCeUFwcGVuZGluZ1BhdGhDb21wb25lbnQ6
QCJJbmRleGVkREIuc3FsaXRlMy13YWwiXSBlcnJvcjpuaWxdOwotCi0gICAgW2RhdGFTdG9yZSBm
ZXRjaERhdGFSZWNvcmRzT2ZUeXBlczp0eXBlcy5nZXQoKSBjb21wbGV0aW9uSGFuZGxlcjpeKE5T
QXJyYXk8V0tXZWJzaXRlRGF0YVJlY29yZCAqPiAqIHJlY29yZHMpIHsKLSAgICAgICAgRVhQRUNU
X0VRKFtyZWNvcmRzIGNvdW50XSwgKHVuc2lnbmVkIGxvbmcpMyk7Ci0gICAgICAgIGZvciAoaWQg
cmVjb3JkIGluIHJlY29yZHMpIHsKLSAgICAgICAgICAgIGlmIChbW3JlY29yZCBkaXNwbGF5TmFt
ZV0gaXNFcXVhbDogQCJhcHBsZS5jb20iXSkgewotICAgICAgICAgICAgICAgIFtkYXRhU3RvcmUg
cmVtb3ZlRGF0YU9mVHlwZXM6dHlwZXMuZ2V0KCkgZm9yRGF0YVJlY29yZHM6QFtyZWNvcmRdIGNv
bXBsZXRpb25IYW5kbGVyOl4oKSB7Ci0gICAgICAgICAgICAgICAgICAgIHJlY2VpdmVkU2NyaXB0
TWVzc2FnZSA9IHRydWU7Ci0gICAgICAgICAgICAgICAgICAgIEVYUEVDVF9GQUxTRShbW05TRmls
ZU1hbmFnZXIgZGVmYXVsdE1hbmFnZXJdIGZpbGVFeGlzdHNBdFBhdGg6ZnJhbWVJREJQYXRoLmdl
dCgpLnBhdGhdKTsKLSAgICAgICAgICAgICAgICB9XTsKKyAgICBAYXV0b3JlbGVhc2Vwb29sIHsK
KyAgICAgICAgYXV0byBkYXRhU3RvcmUgPSBhZG9wdE5TKFtbV0tXZWJzaXRlRGF0YVN0b3JlIGFs
bG9jXSBfaW5pdFdpdGhDb25maWd1cmF0aW9uOndlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9u
LmdldCgpXSk7CisgICAgICAgIFJldGFpblB0cjxOU1NldD4gdHlwZXMgPSBhZG9wdE5TKFtbTlNT
ZXQgYWxsb2NdIGluaXRXaXRoT2JqZWN0czpXS1dlYnNpdGVEYXRhVHlwZUluZGV4ZWREQkRhdGFi
YXNlcywgbmlsXSk7CisKKyAgICAgICAgLy8gU3ViZnJhbWUgb2YgZGlmZmVyZW50IG9yaWdpbnMg
bWF5IGFsc28gY3JlYXRlIEluZGV4ZWREQiBmaWxlcy4KKyAgICAgICAgUmV0YWluUHRyPE5TVVJM
PiB1cmwxID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIkluZGV4ZWRE
QiIgd2l0aEV4dGVuc2lvbjpAInNxbGl0ZTMiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEku
cmVzb3VyY2VzIl07CisgICAgICAgIFJldGFpblB0cjxOU1VSTD4gdXJsMiA9IFtbTlNCdW5kbGUg
bWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJJbmRleGVkREIiIHdpdGhFeHRlbnNpb246QCJz
cWxpdGUzLXNobSIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKKyAg
ICAgICAgUmV0YWluUHRyPE5TVVJMPiB1cmwzID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxG
b3JSZXNvdXJjZTpAIkluZGV4ZWREQiIgd2l0aEV4dGVuc2lvbjpAInNxbGl0ZTMtd2FsIiBzdWJk
aXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdOworCisgICAgICAgIFJldGFpblB0
cjxOU1VSTD4gZnJhbWVJREJQYXRoID0gW1tmaWxlSURCUGF0aCBVUkxCeUFwcGVuZGluZ1BhdGhD
b21wb25lbnQ6QCJodHRwc19hcHBsZS5jb21fMCJdIFVSTEJ5QXBwZW5kaW5nUGF0aENvbXBvbmVu
dDpAIldlYnNpdGVEYXRhU3RvcmVDdXN0b21QYXRocyJdOworICAgICAgICBbW05TRmlsZU1hbmFn
ZXIgZGVmYXVsdE1hbmFnZXJdIGNyZWF0ZURpcmVjdG9yeUF0VVJMOmZyYW1lSURCUGF0aC5nZXQo
KSB3aXRoSW50ZXJtZWRpYXRlRGlyZWN0b3JpZXM6WUVTIGF0dHJpYnV0ZXM6bmlsIGVycm9yOm5p
bF07CisKKyAgICAgICAgW1tOU0ZpbGVNYW5hZ2VyIGRlZmF1bHRNYW5hZ2VyXSBjb3B5SXRlbUF0
VVJMOnVybDEuZ2V0KCkgdG9VUkw6W2ZyYW1lSURCUGF0aC5nZXQoKSBVUkxCeUFwcGVuZGluZ1Bh
dGhDb21wb25lbnQ6QCJJbmRleGVkREIuc3FsaXRlMyJdIGVycm9yOm5pbF07CisgICAgICAgIFtb
TlNGaWxlTWFuYWdlciBkZWZhdWx0TWFuYWdlcl0gY29weUl0ZW1BdFVSTDp1cmwyLmdldCgpIHRv
VVJMOltmcmFtZUlEQlBhdGguZ2V0KCkgVVJMQnlBcHBlbmRpbmdQYXRoQ29tcG9uZW50OkAiSW5k
ZXhlZERCLnNxbGl0ZTMtc2htIl0gZXJyb3I6bmlsXTsKKyAgICAgICAgW1tOU0ZpbGVNYW5hZ2Vy
IGRlZmF1bHRNYW5hZ2VyXSBjb3B5SXRlbUF0VVJMOnVybDMuZ2V0KCkgdG9VUkw6W2ZyYW1lSURC
UGF0aC5nZXQoKSBVUkxCeUFwcGVuZGluZ1BhdGhDb21wb25lbnQ6QCJJbmRleGVkREIuc3FsaXRl
My13YWwiXSBlcnJvcjpuaWxdOworCisgICAgICAgIFJldGFpblB0cjxOU1VSTD4gZnJhbWVJREJQ
YXRoMiA9IFtbZmlsZUlEQlBhdGggVVJMQnlBcHBlbmRpbmdQYXRoQ29tcG9uZW50OkAiaHR0cHNf
d2Via2l0Lm9yZ18wIl0gVVJMQnlBcHBlbmRpbmdQYXRoQ29tcG9uZW50OkAiV2Vic2l0ZURhdGFT
dG9yZUN1c3RvbVBhdGhzIl07CisgICAgICAgIFtbTlNGaWxlTWFuYWdlciBkZWZhdWx0TWFuYWdl
cl0gY3JlYXRlRGlyZWN0b3J5QXRVUkw6ZnJhbWVJREJQYXRoMi5nZXQoKSB3aXRoSW50ZXJtZWRp
YXRlRGlyZWN0b3JpZXM6WUVTIGF0dHJpYnV0ZXM6bmlsIGVycm9yOm5pbF07CisKKyAgICAgICAg
W1tOU0ZpbGVNYW5hZ2VyIGRlZmF1bHRNYW5hZ2VyXSBjb3B5SXRlbUF0VVJMOnVybDEuZ2V0KCkg
dG9VUkw6W2ZyYW1lSURCUGF0aDIuZ2V0KCkgVVJMQnlBcHBlbmRpbmdQYXRoQ29tcG9uZW50OkAi
SW5kZXhlZERCLnNxbGl0ZTMiXSBlcnJvcjpuaWxdOworICAgICAgICBbW05TRmlsZU1hbmFnZXIg
ZGVmYXVsdE1hbmFnZXJdIGNvcHlJdGVtQXRVUkw6dXJsMi5nZXQoKSB0b1VSTDpbZnJhbWVJREJQ
YXRoMi5nZXQoKSBVUkxCeUFwcGVuZGluZ1BhdGhDb21wb25lbnQ6QCJJbmRleGVkREIuc3FsaXRl
My1zaG0iXSBlcnJvcjpuaWxdOworICAgICAgICBbW05TRmlsZU1hbmFnZXIgZGVmYXVsdE1hbmFn
ZXJdIGNvcHlJdGVtQXRVUkw6dXJsMy5nZXQoKSB0b1VSTDpbZnJhbWVJREJQYXRoMi5nZXQoKSBV
UkxCeUFwcGVuZGluZ1BhdGhDb21wb25lbnQ6QCJJbmRleGVkREIuc3FsaXRlMy13YWwiXSBlcnJv
cjpuaWxdOworCisgICAgICAgIFtkYXRhU3RvcmUgZmV0Y2hEYXRhUmVjb3Jkc09mVHlwZXM6dHlw
ZXMuZ2V0KCkgY29tcGxldGlvbkhhbmRsZXI6XihOU0FycmF5PFdLV2Vic2l0ZURhdGFSZWNvcmQg
Kj4gKiByZWNvcmRzKSB7CisgICAgICAgICAgICBFWFBFQ1RfRVEoW3JlY29yZHMgY291bnRdLCAo
dW5zaWduZWQgbG9uZykzKTsKKyAgICAgICAgICAgIGZvciAoaWQgcmVjb3JkIGluIHJlY29yZHMp
IHsKKyAgICAgICAgICAgICAgICBpZiAoW1tyZWNvcmQgZGlzcGxheU5hbWVdIGlzRXF1YWw6IEAi
YXBwbGUuY29tIl0pIHsKKyAgICAgICAgICAgICAgICAgICAgW2RhdGFTdG9yZSByZW1vdmVEYXRh
T2ZUeXBlczp0eXBlcy5nZXQoKSBmb3JEYXRhUmVjb3JkczpAW3JlY29yZF0gY29tcGxldGlvbkhh
bmRsZXI6XigpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlY2VpdmVkU2NyaXB0TWVzc2Fn
ZSA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICBFWFBFQ1RfRkFMU0UoW1tOU0ZpbGVN
YW5hZ2VyIGRlZmF1bHRNYW5hZ2VyXSBmaWxlRXhpc3RzQXRQYXRoOmZyYW1lSURCUGF0aC5nZXQo
KS5wYXRoXSk7CisgICAgICAgICAgICAgICAgICAgIH1dOworICAgICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIH1dOwotICAgIHJlY2VpdmVkU2NyaXB0TWVzc2Fn
ZSA9IGZhbHNlOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVjZWl2ZWRTY3JpcHRN
ZXNzYWdlKTsKKyAgICAgICAgfV07CisgICAgICAgIHJlY2VpdmVkU2NyaXB0TWVzc2FnZSA9IGZh
bHNlOworICAgICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJlY2VpdmVkU2NyaXB0TWVz
c2FnZSk7CiAKLSAgICBbZGF0YVN0b3JlIHJlbW92ZURhdGFPZlR5cGVzOnR5cGVzLmdldCgpIG1v
ZGlmaWVkU2luY2U6W05TRGF0ZSBkaXN0YW50UGFzdF0gY29tcGxldGlvbkhhbmRsZXI6W10oKSB7
Ci0gICAgICAgIHJlY2VpdmVkU2NyaXB0TWVzc2FnZSA9IHRydWU7Ci0gICAgfV07Ci0gICAgcmVj
ZWl2ZWRTY3JpcHRNZXNzYWdlID0gZmFsc2U7Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVu
KCZyZWNlaXZlZFNjcmlwdE1lc3NhZ2UpOworICAgICAgICBbZGF0YVN0b3JlIHJlbW92ZURhdGFP
ZlR5cGVzOnR5cGVzLmdldCgpIG1vZGlmaWVkU2luY2U6W05TRGF0ZSBkaXN0YW50UGFzdF0gY29t
cGxldGlvbkhhbmRsZXI6W10oKSB7CisgICAgICAgICAgICByZWNlaXZlZFNjcmlwdE1lc3NhZ2Ug
PSB0cnVlOworICAgICAgICB9XTsKKyAgICAgICAgcmVjZWl2ZWRTY3JpcHRNZXNzYWdlID0gZmFs
c2U7CisgICAgICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVjZWl2ZWRTY3JpcHRNZXNz
YWdlKTsKIAotICAgIEVYUEVDVF9GQUxTRShbW05TRmlsZU1hbmFnZXIgZGVmYXVsdE1hbmFnZXJd
IGZpbGVFeGlzdHNBdFBhdGg6ZmlsZUlEQlBhdGguZ2V0KCkucGF0aF0pOworICAgICAgICBFWFBF
Q1RfRkFMU0UoW1tOU0ZpbGVNYW5hZ2VyIGRlZmF1bHRNYW5hZ2VyXSBmaWxlRXhpc3RzQXRQYXRo
OmZpbGVJREJQYXRoLmdldCgpLnBhdGhdKTsKIAotICAgIC8vIE5vdywgd2l0aCBicmFuZCBuZXcg
V0tXZWJzaXRlRGF0YVN0b3JlcyBwb2ludGluZyBhdCB0aGUgc2FtZSBjdXN0b20gY29va2llIHN0
b3JhZ2UgbG9jYXRpb24sCi0gICAgLy8gaW4gbmV3bHkgZmlyZWQgdXAgTmV0d29ya1Byb2Nlc3Nl
cywgdmVyaWZ5IHRoYXQgdGhlIGZldGNoIGFuZCBkZWxldGUgQVBJcyB3b3JrIGFzIGV4cGVjdGVk
LgorICAgICAgICAvLyBOb3csIHdpdGggYnJhbmQgbmV3IFdLV2Vic2l0ZURhdGFTdG9yZXMgcG9p
bnRpbmcgYXQgdGhlIHNhbWUgY3VzdG9tIGNvb2tpZSBzdG9yYWdlIGxvY2F0aW9uLAorICAgICAg
ICAvLyBpbiBuZXdseSBmaXJlZCB1cCBOZXR3b3JrUHJvY2Vzc2VzLCB2ZXJpZnkgdGhhdCB0aGUg
ZmV0Y2ggYW5kIGRlbGV0ZSBBUElzIHdvcmsgYXMgZXhwZWN0ZWQuCisgICAgICAgIFtkYXRhU3Rv
cmUgX3Rlcm1pbmF0ZU5ldHdvcmtQcm9jZXNzXTsKKyAgICB9CiAKLSAgICBbZGF0YVN0b3JlIF90
ZXJtaW5hdGVOZXR3b3JrUHJvY2Vzc107CiAgICAgYXV0byBuZXdDdXN0b21EYXRhU3RvcmUgPSBh
ZG9wdE5TKFtbV0tXZWJzaXRlRGF0YVN0b3JlIGFsbG9jXSBfaW5pdFdpdGhDb25maWd1cmF0aW9u
OndlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmdldCgpXSk7Ci0KICAgICBbbmV3Q3VzdG9t
RGF0YVN0b3JlIGZldGNoRGF0YVJlY29yZHNPZlR5cGVzOltOU1NldCBzZXRXaXRoT2JqZWN0czpX
S1dlYnNpdGVEYXRhVHlwZUNvb2tpZXMsIG5pbF0gY29tcGxldGlvbkhhbmRsZXI6XihOU0FycmF5
PFdLV2Vic2l0ZURhdGFSZWNvcmQgKj4gKiByZWNvcmRzKSB7CiAgICAgICAgIEVYUEVDVF9HVChb
cmVjb3JkcyBjb3VudF0sICh1bnNpZ25lZCBsb25nKTApOwogICAgICAgICByZWNlaXZlZFNjcmlw
dE1lc3NhZ2UgPSB0cnVlOwogICAgIH1dOwotCiAgICAgcmVjZWl2ZWRTY3JpcHRNZXNzYWdlID0g
ZmFsc2U7CiAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWNlaXZlZFNjcmlwdE1lc3Nh
Z2UpOwogCi0gICAgW2RhdGFTdG9yZSBfdGVybWluYXRlTmV0d29ya1Byb2Nlc3NdOwotICAgIG5l
d0N1c3RvbURhdGFTdG9yZSA9IGFkb3B0TlMoW1tXS1dlYnNpdGVEYXRhU3RvcmUgYWxsb2NdIF9p
bml0V2l0aENvbmZpZ3VyYXRpb246d2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uZ2V0KCld
KTsKLQogICAgIFtuZXdDdXN0b21EYXRhU3RvcmUgcmVtb3ZlRGF0YU9mVHlwZXM6W05TU2V0IHNl
dFdpdGhPYmplY3RzOldLV2Vic2l0ZURhdGFUeXBlQ29va2llcywgbmlsXSBtb2RpZmllZFNpbmNl
OltOU0RhdGUgZGlzdGFudFBhc3RdIGNvbXBsZXRpb25IYW5kbGVyOl4gewogICAgICAgICByZWNl
aXZlZFNjcmlwdE1lc3NhZ2UgPSB0cnVlOwogICAgIH1dOwotCi0gICAgcmVjZWl2ZWRTY3JpcHRN
ZXNzYWdlID0gZmFsc2U7Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWNlaXZlZFNj
cmlwdE1lc3NhZ2UpOwotCi0gICAgLy8gVGhpcyB0aW1lLCByZXVzZSB0aGUgc2FtZSBuZXR3b3Jr
IHByb2Nlc3MgYnV0IHN0aWxsIGRvIGEgbmV3IHdlYnNpdGVkYXRhc3RvcmUsIHRvIG1ha2Ugc3Vy
ZSBldmVuIGFuIGV4aXN0aW5nIG5ldHdvcmsgcHJvY2VzcwotICAgIC8vIGdldHMgdGhlIG5ldyBk
YXRhc3RvcmUuCi0gICAgbmV3Q3VzdG9tRGF0YVN0b3JlID0gYWRvcHROUyhbW1dLV2Vic2l0ZURh
dGFTdG9yZSBhbGxvY10gX2luaXRXaXRoQ29uZmlndXJhdGlvbjp3ZWJzaXRlRGF0YVN0b3JlQ29u
ZmlndXJhdGlvbi5nZXQoKV0pOwotCi0gICAgW25ld0N1c3RvbURhdGFTdG9yZSBmZXRjaERhdGFS
ZWNvcmRzT2ZUeXBlczpbTlNTZXQgc2V0V2l0aE9iamVjdHM6V0tXZWJzaXRlRGF0YVR5cGVDb29r
aWVzLCBuaWxdIGNvbXBsZXRpb25IYW5kbGVyOl4oTlNBcnJheTxXS1dlYnNpdGVEYXRhUmVjb3Jk
ICo+ICogcmVjb3JkcykgewotICAgICAgICBFWFBFQ1RfRVEoW3JlY29yZHMgY291bnRdLCAodW5z
aWduZWQgbG9uZykwKTsKLSAgICAgICAgcmVjZWl2ZWRTY3JpcHRNZXNzYWdlID0gdHJ1ZTsKLSAg
ICB9XTsKLQogICAgIHJlY2VpdmVkU2NyaXB0TWVzc2FnZSA9IGZhbHNlOwogICAgIFRlc3RXZWJL
aXRBUEk6OlV0aWw6OnJ1bigmcmVjZWl2ZWRTY3JpcHRNZXNzYWdlKTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>453573</attachid>
            <date>2022-03-01 23:16:12 -0800</date>
            <delta_ts>2022-03-02 09:47:25 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-236844-20220301231611.patch</filename>
            <type>text/plain</type>
            <size>23789</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwNjc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGU5NTgzMjVlZTAyY2FhMTU1
MjYzY2JhNmNiNzI2ZThhMWQ0MjMzZTAuLjk0MmFiZTlmZDk4NTY0NjA2MDEzNjUyNGNiMzc3NGI3
ZTdmZWVjNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMjItMDMtMDEgIFNpaHVpIExp
dSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGFzc2VydGlvbiB0aGF0IG5v
IHR3byBzZXNzaW9ucyBzaGFyZSB0aGUgc2FtZSBnZW5lcmFsIHN0b3JhZ2UgZGlyZWN0b3J5Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzY4NDQKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg5MTc4NTY2PgorCisgICAgICAgIFJldmlld2VkIGJ5IENo
cmlzIER1bWV6LgorCisgICAgICAgIHJkYXI6Ly84OTE5MDU3MSBzaG93cyB0aGF0IHRoZXJlIGNh
biBiZSB0d28gV2Vic2l0ZURhdGFTdG9yZXMgdXNpbmcgdGhlIHNhbWUgZ2VuZXJhbCBzdG9yYWdl
IGRpcmVjdG9yeSwgd2hlbgorICAgICAgICBpbml0aWFsaXppbmcgbmV0d29yayBwcm9jZXNzLiBU
aGlzIGNhbiBsZWFkIHRvIGNvcnJ1cHRpb24gYmVjYXVzZSBzdG9yYWdlIGNvZGUgb2YgZWFjaCBz
ZXNzaW9uIHJ1bnMgb24gaXRzIG93bgorICAgICAgICBXb3JrUXVldWUgKG9yIHRocmVhZCkgaW4g
bmV0d29yayBwcm9jZXNzLiBJZiB0d28gc2Vzc2lvbnMgKFdlYnNpdGVEYXRhU3RvcmVzKSB1c2Ug
dGhlIHNhbWUgZGlyZWN0b3J5LCB0aGUgCisgICAgICAgIGRpcmVjdG9yeSBhbmQgaXRzIGZpbGVz
IG1heSBiZSBhY2Nlc3NlZCBjb25jdXJyZW50bHkuIFRoZSBjb3JyZWN0IHVzYWdlIGlzIGNyZWF0
aW5nIGRpZmZlcmVudCBwZXJzaXN0ZW50IAorICAgICAgICBzZXNzaW9ucyB3aXRoIGRpZmZlcmVu
dCBwYXRocy4gTGV0J3MgYWRkIGFuIGFzc2VydGlvbiB0byBoZWxwIGZpbmQgcHJvYmxlbWF0aWMg
dXNlIGNhc2UuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1By
b3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6c2VuZENyZWF0
aW9uUGFyYW1ldGVyc1RvTmV3UHJvY2Vzcyk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYnNpdGVE
YXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0
b3JlOjpwYXJhbWV0ZXJzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0
ZURhdGFTdG9yZS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlOjpjYWNoZVN0
b3JhZ2VEaXJlY3RvcnkgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3Jl
OjpyZXNvbHZlZEdlbmVyYWxTdG9yYWdlRGlyZWN0b3J5IGNvbnN0KToKKyAgICAgICAgKFdlYktp
dDo6V2Vic2l0ZURhdGFTdG9yZTo6Z2VuZXJhbFN0b3JhZ2VEaXJlY3RvcnkgY29uc3QpOiBEZWxl
dGVkLgorCiAyMDIyLTAzLTAxICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgogCiAg
ICAgICAgIE1vdmUgU3RvcmFnZUJ1Y2tldCBmdW5jdGlvbiBkZWZpbml0aW9ucyBvdXRzaWRlIHRo
ZSBjbGFzcyBkZWZpbml0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9O
ZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
TmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAppbmRleCA1N2RlOGIxZjY1ODY2ZmIxZmNm
N2JkMThiYmI2OGQyMGMxNWFlOWZjLi5iMWY4NmU5ZDRkNWM0ZTFmYjU3ZjlkMTgxNmE2ZTVhMWE1
ZWE5NzNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdv
cmtQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsv
TmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKQEAgLTIwOCw3ICsyMDgsMTYgQEAgdm9pZCBOZXR3b3Jr
UHJvY2Vzc1Byb3h5OjpzZW5kQ3JlYXRpb25QYXJhbWV0ZXJzVG9OZXdQcm9jZXNzKCkKIAogI2lm
ICFQTEFURk9STShHVEspICYmICFQTEFURk9STShXUEUpIC8vIEdUSyBhbmQgV1BFIGRvbid0IHVz
ZSBkZWZhdWx0TmV0d29ya1Byb2Nlc3MKICAgICBwYXJhbWV0ZXJzLndlYnNpdGVEYXRhU3RvcmVQ
YXJhbWV0ZXJzID0gV2Vic2l0ZURhdGFTdG9yZTo6cGFyYW1ldGVyc0Zyb21FYWNoV2Vic2l0ZURh
dGFTdG9yZSgpOwotICAgIFdlYnNpdGVEYXRhU3RvcmU6OmZvckVhY2hXZWJzaXRlRGF0YVN0b3Jl
KFt0aGlzXShhdXRvJiB3ZWJzaXRlRGF0YVN0b3JlKSB7CisgICAgSGFzaE1hcDxTdHJpbmcsIFBB
TDo6U2Vzc2lvbklEPiBzZXNzaW9uRm9yRGlyZWN0b3J5OworICAgIFdlYnNpdGVEYXRhU3RvcmU6
OmZvckVhY2hXZWJzaXRlRGF0YVN0b3JlKFsmXShhdXRvJiB3ZWJzaXRlRGF0YVN0b3JlKSB7Cisg
ICAgICAgIGlmICh3ZWJzaXRlRGF0YVN0b3JlLmlzUGVyc2lzdGVudCgpKSB7CisgICAgICAgICAg
ICBpZiAoYXV0byBkaXJlY3RvcnkgPSB3ZWJzaXRlRGF0YVN0b3JlLnJlc29sdmVkR2VuZXJhbFN0
b3JhZ2VEaXJlY3RvcnkoKTsgIWRpcmVjdG9yeS5pc0VtcHR5KCkpIHsKKyAgICAgICAgICAgICAg
ICBhdXRvIHNlc3Npb25JRCA9IHdlYnNpdGVEYXRhU3RvcmUuc2Vzc2lvbklEKCk7CisgICAgICAg
ICAgICAgICAgLy8gUGVyc2lzdGVudCBzZXNzaW9ucyBzaGFyaW5nIHNhbWUgc3RvcmFnZSBkaXJl
Y3RvcnkgbWF5IGNhdXNlIGNvcnJ1cHRpb24uCisgICAgICAgICAgICAgICAgLy8gSWYgdGhlIGFz
c2VydGlvbiBpcyBoaXQsIGNoZWNrIGlmIHlvdSBoYXZlIG11bHRpcGxlIFdlYnNpdGVEYXRhU3Rv
cmVzIHdpdGggdGhlIHNhbWUgZ2VuZXJhbFN0b3JhZ2VEaXJlY3RvcnkuCisgICAgICAgICAgICAg
ICAgUkVMRUFTRV9BU1NFUlRfV0lUSF9NRVNTQUdFKHNlc3Npb25Gb3JEaXJlY3RvcnkuYWRkKGRp
cmVjdG9yeSwgc2Vzc2lvbklEKS5pc05ld0VudHJ5LCAiR2VuZXJhbFN0b3JhZ2VEaXJlY3Rvcnkg
Zm9yIHNlc3Npb24gJSIgUFJJdTY0ICIgaXMgYWxyZWFkeSBpbiB1c2UgYnkgc2Vzc2lvbiAlIiBQ
Ukl1NjQsIHNlc3Npb25Gb3JEaXJlY3RvcnkuZ2V0KGRpcmVjdG9yeSkudG9VSW50NjQoKSwgc2Vz
c2lvbklELnRvVUludDY0KCkpOworICAgICAgICAgICAgfQorICAgICAgICB9CiAgICAgICAgIGFk
ZFNlc3Npb24od2Vic2l0ZURhdGFTdG9yZSwgU2VuZFBhcmFtZXRlcnNUb05ldHdvcmtQcm9jZXNz
OjpObyk7CiAgICAgfSk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKaW5kZXggMWM3ZDEyZGIzMmU1
MTc3OWZlZTVhYzg0NTg4ZDkxNjUyNjkxNTA3Zi4uZGY1MTdmODZmNmFjMjc4YTAxMmMxMjg0YWZk
YjQ2NmY0YTljNzE4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0
ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKQEAgLTE4ODIsNyArMTg4Miw3IEBAIFdl
YnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzIFdlYnNpdGVEYXRhU3RvcmU6OnBhcmFtZXRlcnMoKQog
ICAgICAgICAgICAgcGFyYW1ldGVycy5jYWNoZVN0b3JhZ2VEaXJlY3RvcnlFeHRlbnNpb25IYW5k
bGUgPSBXVEZNb3ZlKCpoYW5kbGUpOwogICAgIH0KIAotICAgIGlmIChhdXRvIGRpcmVjdG9yeSA9
IGdlbmVyYWxTdG9yYWdlRGlyZWN0b3J5KCk7ICFkaXJlY3RvcnkuaXNFbXB0eSgpKSB7CisgICAg
aWYgKGF1dG8gZGlyZWN0b3J5ID0gcmVzb2x2ZWRHZW5lcmFsU3RvcmFnZURpcmVjdG9yeSgpOyAh
ZGlyZWN0b3J5LmlzRW1wdHkoKSkgewogICAgICAgICBwYXJhbWV0ZXJzLmdlbmVyYWxTdG9yYWdl
RGlyZWN0b3J5ID0gZGlyZWN0b3J5OwogICAgICAgICBpZiAoYXV0byBoYW5kbGUgPSBTYW5kYm94
RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JSZWFkV3JpdGVEaXJlY3RvcnkoZGlyZWN0b3J5KSkK
ICAgICAgICAgICAgIHBhcmFtZXRlcnMuZ2VuZXJhbFN0b3JhZ2VEaXJlY3RvcnlIYW5kbGUgPSBX
VEZNb3ZlKCpoYW5kbGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
c2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
c2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oCmluZGV4IGNmY2U1Y2U0NGI2ZDU2NWMwMjljMjU5
OWYyYmY3OGY0ZmY0NGVmNDQuLjYzOWVlZGYxODdmMzgwNzUyZjg4ZGI0MzdiODg4ZjlmN2FlYmY0
Y2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNp
dGVEYXRhU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9X
ZWJzaXRlRGF0YVN0b3JlLmgKQEAgLTE1OSw3ICsxNTksNiBAQCBwdWJsaWM6CiAgICAgdWludDY0
X3QgcGVyT3JpZ2luU3RvcmFnZVF1b3RhKCkgY29uc3QgeyByZXR1cm4gbV9yZXNvbHZlZENvbmZp
Z3VyYXRpb24tPnBlck9yaWdpblN0b3JhZ2VRdW90YSgpOyB9CiAgICAgdWludDY0X3QgcGVyVGhp
cmRQYXJ0eU9yaWdpblN0b3JhZ2VRdW90YSgpIGNvbnN0OwogICAgIGNvbnN0IFN0cmluZyYgY2Fj
aGVTdG9yYWdlRGlyZWN0b3J5KCkgY29uc3QgeyByZXR1cm4gbV9yZXNvbHZlZENvbmZpZ3VyYXRp
b24tPmNhY2hlU3RvcmFnZURpcmVjdG9yeSgpOyB9Ci0gICAgY29uc3QgU3RyaW5nJiBnZW5lcmFs
U3RvcmFnZURpcmVjdG9yeSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVzb2x2ZWRDb25maWd1cmF0aW9u
LT5nZW5lcmFsU3RvcmFnZURpcmVjdG9yeSgpOyB9CiAKICNpZiBFTkFCTEUoSU5URUxMSUdFTlRf
VFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICB2b2lkIGNsZWFyUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c0luV2ViUHJvY2Vzc2VzKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CkBAIC0yNTgsNiAr
MjU3LDcgQEAgcHVibGljOgogICAgIGNvbnN0IFN0cmluZyYgcmVzb2x2ZWRTZXJ2aWNlV29ya2Vy
UmVnaXN0cmF0aW9uRGlyZWN0b3J5KCkgY29uc3QgeyByZXR1cm4gbV9yZXNvbHZlZENvbmZpZ3Vy
YXRpb24tPnNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EaXJlY3RvcnkoKTsgfQogICAgIGNvbnN0
IFN0cmluZyYgcmVzb2x2ZWRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5KCkgY29uc3Qg
eyByZXR1cm4gbV9yZXNvbHZlZENvbmZpZ3VyYXRpb24tPnJlc291cmNlTG9hZFN0YXRpc3RpY3NE
aXJlY3RvcnkoKTsgfQogICAgIGNvbnN0IFN0cmluZyYgcmVzb2x2ZWRIU1RTU3RvcmFnZURpcmVj
dG9yeSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVzb2x2ZWRDb25maWd1cmF0aW9uLT5oc3RzU3RvcmFn
ZURpcmVjdG9yeSgpOyB9CisgICAgY29uc3QgU3RyaW5nJiByZXNvbHZlZEdlbmVyYWxTdG9yYWdl
RGlyZWN0b3J5KCkgY29uc3QgeyByZXR1cm4gbV9yZXNvbHZlZENvbmZpZ3VyYXRpb24tPmdlbmVy
YWxTdG9yYWdlRGlyZWN0b3J5KCk7IH0KICNpZiBFTkFCTEUoQVJLSVRfSU5MSU5FX1BSRVZJRVcp
CiAgICAgY29uc3QgU3RyaW5nJiByZXNvbHZlZE1vZGVsRWxlbWVudENhY2hlRGlyZWN0b3J5KCkg
Y29uc3QgeyByZXR1cm4gbV9yZXNvbHZlZENvbmZpZ3VyYXRpb24tPm1vZGVsRWxlbWVudENhY2hl
RGlyZWN0b3J5KCk7IH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9v
bHMvQ2hhbmdlTG9nCmluZGV4IGI1OWYwZThiMGQxMmFmMTM4MzZkMjcxZTk1NzQ5MDM1NmNlZGZk
NzguLmIyMWU3MTAzMzdmNjgzYzJkZjA0NTJlMjUwMjgzOGI2MzI2Mzg3MDEgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNCBAQAor
MjAyMi0wMy0wMSAgU2lodWkgTGl1ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4KKworICAgICAgICBB
ZGQgYXNzZXJ0aW9uIHRoYXQgbm8gdHdvIHNlc3Npb25zIHNoYXJlIHRoZSBzYW1lIGdlbmVyYWwg
c3RvcmFnZSBkaXJlY3RvcnkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIzNjg0NAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODkxNzg1NjY+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXBkYXRlIHRoZSB0
ZXN0cyB3aGVyZSB0d28gV2Vic2l0ZURhdGFTdG9yZXMgYXJlIGNyZWF0ZWQgd2l0aCB0aGUgc2Ft
ZSBnZW5lcmFsIHN0b3JhZ2UgZGlyZWN0b3J5LgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5tbToKKyAgICAgICAgKGVt
cHR5T2JzZXJ2YXRpb25zREJQYXRoKToKKyAgICAgICAgKGVtcHR5UGNtREJQYXRoKToKKyAgICAg
ICAgKGNsZWFuVXApOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
UHVzaEFQSS5tbToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Jl
c291cmNlTG9hZFN0YXRpc3RpY3MubW06CisgICAgICAgIChURVNUKToKKyAgICAgICAgKiBUZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dlYlB1c2hEYWVtb24ubW06CisgICAgICAgICog
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XZWJzaXRlRGF0YVN0b3JlQ3VzdG9tUGF0
aHMubW06CisgICAgICAgIChydW5XZWJzaXRlRGF0YVN0b3JlQ3VzdG9tUGF0aHMpOgorCiAyMDIy
LTAzLTAxICBBbmRyZXMgR29uemFsZXogIDxhbmRyZXNnXzIyQGFwcGxlLmNvbT4KIAogICAgICAg
ICBNYWtlIGFjY2Vzc2liaWxpdHkvYXJpYS1oaWRkZW4tZmFsc2Utd29ya3MtaW4tc3VidHJlZXMu
aHRtbCBhc3luYyB0byBwYXNzIGluIGlzb2xhdGVkIHRyZWUgbW9kZS4KZGlmZiAtLWdpdCBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1ByaXZhdGVDbGlj
a01lYXN1cmVtZW50Lm1tCmluZGV4IGVhMDExMGM1ZjU0YzBhNTQwMjIwZTE3NjdhNmRlMTM3OGYz
YzJjYzAuLmIyYjg0YjY1YWFhODZhZjc0MGFkMWZmMzZjNTk4NDgwM2UwMmRhYmQgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Q
cml2YXRlQ2xpY2tNZWFzdXJlbWVudC5tbQpAQCAtMjkyLDcgKzI5Miw4IEBAIHN0YXRpYyB2b2lk
IHBvbGxVbnRpbFBDTUlzTWlncmF0ZWQoV0tXZWJWaWV3ICp3ZWJWaWV3LCBNaWdyYXRpbmdGcm9t
UmVzb3VyY2VMb2FkCiBzdGF0aWMgTlNTdHJpbmcgKmVtcHR5T2JzZXJ2YXRpb25zREJQYXRoKCkK
IHsKICAgICBOU0ZpbGVNYW5hZ2VyICpkZWZhdWx0RmlsZU1hbmFnZXIgPSBOU0ZpbGVNYW5hZ2Vy
LmRlZmF1bHRNYW5hZ2VyOwotICAgIE5TVVJMICppdHBSb290VVJMID0gV0tXZWJzaXRlRGF0YVN0
b3JlLmRlZmF1bHREYXRhU3RvcmUuX2NvbmZpZ3VyYXRpb24uX3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3NEaXJlY3Rvcnk7CisgICAgYXV0byBkYXRhU3RvcmVDb25maWd1cmF0aW9uID0gYWRvcHROUyhb
W19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CisgICAgTlNV
UkwgKml0cFJvb3RVUkwgPSBkYXRhU3RvcmVDb25maWd1cmF0aW9uLmdldCgpLl9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzRGlyZWN0b3J5OwogICAgIE5TVVJMICpmaWxlVVJMID0gW2l0cFJvb3RVUkwg
VVJMQnlBcHBlbmRpbmdQYXRoQ29tcG9uZW50OkAib2JzZXJ2YXRpb25zLmRiIl07CiAgICAgW2Rl
ZmF1bHRGaWxlTWFuYWdlciByZW1vdmVJdGVtQXRQYXRoOml0cFJvb3RVUkwucGF0aCBlcnJvcjpu
aWxdOwogICAgIEVYUEVDVF9GQUxTRShbZGVmYXVsdEZpbGVNYW5hZ2VyIGZpbGVFeGlzdHNBdFBh
dGg6aXRwUm9vdFVSTC5wYXRoXSk7CkBAIC0zMDMsNyArMzA0LDggQEAgc3RhdGljIE5TU3RyaW5n
ICplbXB0eU9ic2VydmF0aW9uc0RCUGF0aCgpCiBzdGF0aWMgTlNTdHJpbmcgKmVtcHR5UGNtREJQ
YXRoKCkKIHsKICAgICBOU0ZpbGVNYW5hZ2VyICpkZWZhdWx0RmlsZU1hbmFnZXIgPSBOU0ZpbGVN
YW5hZ2VyLmRlZmF1bHRNYW5hZ2VyOwotICAgIE5TVVJMICppdHBSb290VVJMID0gV0tXZWJzaXRl
RGF0YVN0b3JlLmRlZmF1bHREYXRhU3RvcmUuX2NvbmZpZ3VyYXRpb24uX3Jlc291cmNlTG9hZFN0
YXRpc3RpY3NEaXJlY3Rvcnk7CisgICAgYXV0byBkYXRhU3RvcmVDb25maWd1cmF0aW9uID0gYWRv
cHROUyhbW19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7Cisg
ICAgTlNVUkwgKml0cFJvb3RVUkwgPSBkYXRhU3RvcmVDb25maWd1cmF0aW9uLmdldCgpLl9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5OwogICAgIE5TVVJMICpmaWxlVVJMID0gW2l0cFJv
b3RVUkwgVVJMQnlBcHBlbmRpbmdQYXRoQ29tcG9uZW50OkAicGNtLmRiIl07CiAgICAgW2RlZmF1
bHRGaWxlTWFuYWdlciByZW1vdmVJdGVtQXRQYXRoOml0cFJvb3RVUkwucGF0aCBlcnJvcjpuaWxd
OwogICAgIEVYUEVDVF9GQUxTRShbZGVmYXVsdEZpbGVNYW5hZ2VyIGZpbGVFeGlzdHNBdFBhdGg6
aXRwUm9vdFVSTC5wYXRoXSk7CkBAIC0zMTYsNyArMzE4LDggQEAgc3RhdGljIHZvaWQgY2xlYW5V
cChSZXRhaW5QdHI8V0tXZWJWaWV3PiB3ZWJWaWV3KQogICAgIHN0YXRpYyBib29sIGlzRG9uZSA9
IGZhbHNlOwogICAgIFtbd2ViVmlldy5nZXQoKSBjb25maWd1cmF0aW9uXS53ZWJzaXRlRGF0YVN0
b3JlIF9jbG9zZURhdGFiYXNlczpeewogICAgICAgICBOU0ZpbGVNYW5hZ2VyICpkZWZhdWx0Rmls
ZU1hbmFnZXIgPSBOU0ZpbGVNYW5hZ2VyLmRlZmF1bHRNYW5hZ2VyOwotICAgICAgICBOU1N0cmlu
ZyAqaXRwUm9vdCA9IFdLV2Vic2l0ZURhdGFTdG9yZS5kZWZhdWx0RGF0YVN0b3JlLl9jb25maWd1
cmF0aW9uLl9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5LnBhdGg7CisgICAgICAgIGF1
dG8gZGF0YVN0b3JlQ29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tfV0tXZWJzaXRlRGF0YVN0b3Jl
Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOworICAgICAgICBOU1N0cmluZyAqaXRwUm9vdCA9
IGRhdGFTdG9yZUNvbmZpZ3VyYXRpb24uZ2V0KCkuX3Jlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJl
Y3RvcnkucGF0aDsKICAgICAgICAgW2RlZmF1bHRGaWxlTWFuYWdlciByZW1vdmVJdGVtQXRQYXRo
Oml0cFJvb3QgZXJyb3I6bmlsXTsKICAgICAgICAgd2hpbGUgKFtkZWZhdWx0RmlsZU1hbmFnZXIg
ZmlsZUV4aXN0c0F0UGF0aDppdHBSb290XSkKICAgICAgICAgICAgIHVzbGVlcCgxMDAwMCk7CmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1B1c2hBUEku
bW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1B1c2hBUEkubW0KaW5k
ZXggYjY3Mjk2NzhhZjk5ODU3ZDJhZmY5MGMzY2FlNDNlNmZiMjQ3Y2FiNC4uYzVhYmQ0NmYzYWU5
NmJlMjA4NTVhNzU5MWQ1ZGFjMzhjNDZjODBiMiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9QdXNoQVBJLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvUHVzaEFQSS5tbQpAQCAtMTA3LDcgKzEwNyw3IEBAIHNlbGYu
YWRkRXZlbnRMaXN0ZW5lcigicHVzaCIsIChldmVudCkgPT4gewogc3RhdGljIHZvaWQgY2xlYXJX
ZWJzaXRlRGF0YVN0b3JlKFdLV2Vic2l0ZURhdGFTdG9yZSAqc3RvcmUpCiB7CiAgICAgX19ibG9j
ayBib29sIGNsZWFyZWRTdG9yZSA9IGZhbHNlOwotICAgIFtbV0tXZWJzaXRlRGF0YVN0b3JlIGRl
ZmF1bHREYXRhU3RvcmVdIHJlbW92ZURhdGFPZlR5cGVzOltXS1dlYnNpdGVEYXRhU3RvcmUgYWxs
V2Vic2l0ZURhdGFUeXBlc10gbW9kaWZpZWRTaW5jZTpbTlNEYXRlIGRpc3RhbnRQYXN0XSBjb21w
bGV0aW9uSGFuZGxlcjpeKCkgeworICAgIFtzdG9yZSByZW1vdmVEYXRhT2ZUeXBlczpbV0tXZWJz
aXRlRGF0YVN0b3JlIGFsbFdlYnNpdGVEYXRhVHlwZXNdIG1vZGlmaWVkU2luY2U6W05TRGF0ZSBk
aXN0YW50UGFzdF0gY29tcGxldGlvbkhhbmRsZXI6XigpIHsKICAgICAgICAgY2xlYXJlZFN0b3Jl
ID0gdHJ1ZTsKICAgICB9XTsKICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmNsZWFyZWRT
dG9yZSk7CkBAIC0zMjMsMTMgKzMyMywxMiBAQCBURVNUKFB1c2hBUEksIGZpcmVQdXNoRXZlbnRX
aXRoTm9QYWdlc1RpbWVvdXQpCiAgICAgW1tjb25maWd1cmF0aW9uIHVzZXJDb250ZW50Q29udHJv
bGxlcl0gYWRkU2NyaXB0TWVzc2FnZUhhbmRsZXI6bWVzc2FnZUhhbmRsZXIuZ2V0KCkgbmFtZTpA
InN3Il07CiAKICAgICBleHBlY3RlZE1lc3NhZ2UgPSAiUmVhZHkiOwotICAgIGF1dG8gd2ViVmll
dyA9IGFkb3B0TlMoW1tXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgw
LCAwLCA4MDAsIDYwMCkgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uLmdldCgpXSk7Ci0gICAg
W3dlYlZpZXcgbG9hZFJlcXVlc3Q6c2VydmVyLnJlcXVlc3QoKV07Ci0KLSAgICBUZXN0V2ViS2l0
QVBJOjpVdGlsOjpydW4oJmRvbmUpOwogCi0gICAgW3dlYlZpZXcgX2Nsb3NlXTsKLSAgICB3ZWJW
aWV3ID0gbnVsbHB0cjsKKyAgICBAYXV0b3JlbGVhc2Vwb29sIHsKKyAgICAgICAgYXV0byB3ZWJW
aWV3ID0gYWRvcHROUyhbW1dLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0
KDAsIDAsIDgwMCwgNjAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCldKTsKKyAg
ICAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6c2VydmVyLnJlcXVlc3QoKV07CisgICAgICAgIFRl
c3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgfQogCiAgICAgW2RhdGFTdG9yZUNv
bmZpZ3VyYXRpb24gc2V0U2VydmljZVdvcmtlclByb2Nlc3NUZXJtaW5hdGlvbkRlbGF5RW5hYmxl
ZDpOT107CiAgICAgZGF0YVN0b3JlID0gYWRvcHROUyhbW1dLV2Vic2l0ZURhdGFTdG9yZSBhbGxv
Y10gX2luaXRXaXRoQ29uZmlndXJhdGlvbjpkYXRhU3RvcmVDb25maWd1cmF0aW9uLmdldCgpXSk7
CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Jlc291
cmNlTG9hZFN0YXRpc3RpY3MubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL1Jlc291cmNlTG9hZFN0YXRpc3RpY3MubW0KaW5kZXggMzBhM2M4NzMxY2JiYzhjNDNjZjdj
ZTg5Y2YzNTYyMjMxZDM5NTQyMy4uYWI5YzdhNmRkNjBmMDAyYjYyNGUwNTNiODA5MTM3MTNjNGE3
YjdkMCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9S
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvUmVzb3VyY2VMb2FkU3RhdGlzdGljcy5tbQpAQCAtMTA4NiwxNSArMTA4Niwx
OCBAQCBURVNUKFJlc291cmNlTG9hZFN0YXRpc3RpY3MsIENhbkFjY2Vzc0RhdGFTdW1tYXJ5V2l0
aE5vUHJvY2Vzc1Bvb2wpCiBURVNUKFJlc291cmNlTG9hZFN0YXRpc3RpY3MsIFN0b3JlU3VzcGVu
c2lvbikKIHsKICAgICBhdXRvICpzaGFyZWRQcm9jZXNzUG9vbCA9IFtXS1Byb2Nlc3NQb29sIF9z
aGFyZWRQcm9jZXNzUG9vbF07Ci0gICAgYXV0byAqZGF0YVN0b3JlMSA9IFtXS1dlYnNpdGVEYXRh
U3RvcmUgZGVmYXVsdERhdGFTdG9yZV07Ci0gICAgYXV0byBkYXRhU3RvcmUyID0gYWRvcHROUyhb
W1dLV2Vic2l0ZURhdGFTdG9yZSBhbGxvY10gX2luaXRXaXRoQ29uZmlndXJhdGlvbjphZG9wdE5T
KFtbX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKS5nZXQoKV0p
OworICAgIGF1dG8gZGF0YVN0b3JlQ29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tfV0tXZWJzaXRl
RGF0YVN0b3JlQ29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOworICAgIGF1dG8gY3VzdG9tR2Vu
ZXJhbFN0b3JhZ2VEaXJlY3RvcnkgPSBbTlNVUkwgZmlsZVVSTFdpdGhQYXRoOltOU1N0cmluZyBz
dHJpbmdXaXRoRm9ybWF0OkAiJUAlQCIsIGRhdGFTdG9yZUNvbmZpZ3VyYXRpb24uZ2V0KCkuZ2Vu
ZXJhbFN0b3JhZ2VEaXJlY3RvcnkucGF0aCwgQCJfQ3VzdG9tIl1dOworICAgIGF1dG8gZGF0YVN0
b3JlMSA9IGFkb3B0TlMoW1tXS1dlYnNpdGVEYXRhU3RvcmUgYWxsb2NdIF9pbml0V2l0aENvbmZp
Z3VyYXRpb246ZGF0YVN0b3JlQ29uZmlndXJhdGlvbi5nZXQoKV0pOworICAgIGRhdGFTdG9yZUNv
bmZpZ3VyYXRpb24uZ2V0KCkuZ2VuZXJhbFN0b3JhZ2VEaXJlY3RvcnkgPSBjdXN0b21HZW5lcmFs
U3RvcmFnZURpcmVjdG9yeTsKKyAgICBhdXRvIGRhdGFTdG9yZTIgPSBhZG9wdE5TKFtbV0tXZWJz
aXRlRGF0YVN0b3JlIGFsbG9jXSBfaW5pdFdpdGhDb25maWd1cmF0aW9uOmRhdGFTdG9yZUNvbmZp
Z3VyYXRpb24uZ2V0KCldKTsKIAogICAgIFtkYXRhU3RvcmUxIF9zZXRSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRW5hYmxlZDpZRVNdOwogICAgIFtkYXRhU3RvcmUyIF9zZXRSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRW5hYmxlZDpZRVNdOwogCiAgICAgYXV0byBjb25maWd1cmF0aW9uMSA9IGFkb3B0TlMo
W1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CiAgICAgW2NvbmZpZ3VyYXRp
b24xIHNldFByb2Nlc3NQb29sOiBzaGFyZWRQcm9jZXNzUG9vbF07Ci0gICAgY29uZmlndXJhdGlv
bjEuZ2V0KCkud2Vic2l0ZURhdGFTdG9yZSA9IGRhdGFTdG9yZTE7CisgICAgY29uZmlndXJhdGlv
bjEuZ2V0KCkud2Vic2l0ZURhdGFTdG9yZSA9IGRhdGFTdG9yZTEuZ2V0KCk7CiAKICAgICBhdXRv
IGNvbmZpZ3VyYXRpb24yID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2Nd
IGluaXRdKTsKICAgICBbY29uZmlndXJhdGlvbjIgc2V0UHJvY2Vzc1Bvb2w6IHNoYXJlZFByb2Nl
c3NQb29sXTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvV2ViUHVzaERhZW1vbi5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvV2ViUHVzaERhZW1vbi5tbQppbmRleCA5YmU1YTIwYTBjMGI4NDU3NDQ3NmMxMTkwMTk0ZDI5
MjljNmE3NjcyLi4wZGUwOWRjNmI0OGI3ZTEyZThjY2UzNDllMjgzYjgzNjlkODAwMTFkIDEwMDY0
NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dlYlB1c2hEYWVt
b24ubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XZWJQdXNo
RGFlbW9uLm1tCkBAIC0zOTAsNyArMzkwLDcgQEAgVEVTVChXZWJQdXNoRCwgUGVybWlzc2lvbk1h
bmFnZW1lbnQpCiBzdGF0aWMgdm9pZCBjbGVhcldlYnNpdGVEYXRhU3RvcmUoV0tXZWJzaXRlRGF0
YVN0b3JlICpzdG9yZSkKIHsKICAgICBfX2Jsb2NrIGJvb2wgY2xlYXJlZFN0b3JlID0gZmFsc2U7
Ci0gICAgW1tXS1dlYnNpdGVEYXRhU3RvcmUgZGVmYXVsdERhdGFTdG9yZV0gcmVtb3ZlRGF0YU9m
VHlwZXM6W1dLV2Vic2l0ZURhdGFTdG9yZSBhbGxXZWJzaXRlRGF0YVR5cGVzXSBtb2RpZmllZFNp
bmNlOltOU0RhdGUgZGlzdGFudFBhc3RdIGNvbXBsZXRpb25IYW5kbGVyOl4oKSB7CisgICAgW3N0
b3JlIHJlbW92ZURhdGFPZlR5cGVzOltXS1dlYnNpdGVEYXRhU3RvcmUgYWxsV2Vic2l0ZURhdGFU
eXBlc10gbW9kaWZpZWRTaW5jZTpbTlNEYXRlIGRpc3RhbnRQYXN0XSBjb21wbGV0aW9uSGFuZGxl
cjpeKCkgewogICAgICAgICBjbGVhcmVkU3RvcmUgPSB0cnVlOwogICAgIH1dOwogICAgIFRlc3RX
ZWJLaXRBUEk6OlV0aWw6OnJ1bigmY2xlYXJlZFN0b3JlKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV2Vic2l0ZURhdGFTdG9yZUN1c3RvbVBhdGhz
Lm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XZWJzaXRlRGF0YVN0
b3JlQ3VzdG9tUGF0aHMubW0KaW5kZXggNTY3NTkxOTNlNTQ3NTlmMWJjYzgwMzlkOWMxZDA1N2Jl
ZmQzMDg1Mi4uOGU0N2FiOTgwYWNkZmM2ZTE1MzgwODhiM2VjNzk3MWVlMGI5YzczMyAxMDA2NDQK
LS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XZWJzaXRlRGF0YVN0
b3JlQ3VzdG9tUGF0aHMubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9XZWJzaXRlRGF0YVN0b3JlQ3VzdG9tUGF0aHMubW0KQEAgLTE4Nyw4MyArMTg3LDY3IEBA
IHN0YXRpYyB2b2lkIHJ1bldlYnNpdGVEYXRhU3RvcmVDdXN0b21QYXRocyhTaG91bGRFbmFibGVQ
cm9jZXNzUHJld2FybWluZyBzaG91bGRFCiAgICAgUmV0YWluUHRyPE5TVVJMPiBmaWxlSURCUGF0
aCA9IFtbaWRiUGF0aCBVUkxCeUFwcGVuZGluZ1BhdGhDb21wb25lbnQ6QCJ2MSJdIFVSTEJ5QXBw
ZW5kaW5nUGF0aENvbXBvbmVudDpAImZpbGVfXzAiXTsKICAgICBFWFBFQ1RfVFJVRShbW05TRmls
ZU1hbmFnZXIgZGVmYXVsdE1hbmFnZXJdIGZpbGVFeGlzdHNBdFBhdGg6ZmlsZUlEQlBhdGguZ2V0
KCkucGF0aF0pOwogCi0gICAgYXV0byBkYXRhU3RvcmUgPSBhZG9wdE5TKFtbV0tXZWJzaXRlRGF0
YVN0b3JlIGFsbG9jXSBfaW5pdFdpdGhDb25maWd1cmF0aW9uOndlYnNpdGVEYXRhU3RvcmVDb25m
aWd1cmF0aW9uLmdldCgpXSk7Ci0gICAgUmV0YWluUHRyPE5TU2V0PiB0eXBlcyA9IGFkb3B0TlMo
W1tOU1NldCBhbGxvY10gaW5pdFdpdGhPYmplY3RzOldLV2Vic2l0ZURhdGFUeXBlSW5kZXhlZERC
RGF0YWJhc2VzLCBuaWxdKTsKLQotICAgIC8vIFN1YmZyYW1lIG9mIGRpZmZlcmVudCBvcmlnaW5z
IG1heSBhbHNvIGNyZWF0ZSBJbmRleGVkREIgZmlsZXMuCi0gICAgUmV0YWluUHRyPE5TVVJMPiB1
cmwxID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIkluZGV4ZWREQiIg
d2l0aEV4dGVuc2lvbjpAInNxbGl0ZTMiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVz
b3VyY2VzIl07Ci0gICAgUmV0YWluUHRyPE5TVVJMPiB1cmwyID0gW1tOU0J1bmRsZSBtYWluQnVu
ZGxlXSBVUkxGb3JSZXNvdXJjZTpAIkluZGV4ZWREQiIgd2l0aEV4dGVuc2lvbjpAInNxbGl0ZTMt
c2htIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdOwotICAgIFJldGFp
blB0cjxOU1VSTD4gdXJsMyA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6
QCJJbmRleGVkREIiIHdpdGhFeHRlbnNpb246QCJzcWxpdGUzLXdhbCIgc3ViZGlyZWN0b3J5OkAi
VGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKLQotICAgIFJldGFpblB0cjxOU1VSTD4gZnJhbWVJ
REJQYXRoID0gW1tmaWxlSURCUGF0aCBVUkxCeUFwcGVuZGluZ1BhdGhDb21wb25lbnQ6QCJodHRw
c19hcHBsZS5jb21fMCJdIFVSTEJ5QXBwZW5kaW5nUGF0aENvbXBvbmVudDpAIldlYnNpdGVEYXRh
U3RvcmVDdXN0b21QYXRocyJdOwotICAgIFtbTlNGaWxlTWFuYWdlciBkZWZhdWx0TWFuYWdlcl0g
Y3JlYXRlRGlyZWN0b3J5QXRVUkw6ZnJhbWVJREJQYXRoLmdldCgpIHdpdGhJbnRlcm1lZGlhdGVE
aXJlY3RvcmllczpZRVMgYXR0cmlidXRlczpuaWwgZXJyb3I6bmlsXTsKLQotICAgIFtbTlNGaWxl
TWFuYWdlciBkZWZhdWx0TWFuYWdlcl0gY29weUl0ZW1BdFVSTDp1cmwxLmdldCgpIHRvVVJMOltm
cmFtZUlEQlBhdGguZ2V0KCkgVVJMQnlBcHBlbmRpbmdQYXRoQ29tcG9uZW50OkAiSW5kZXhlZERC
LnNxbGl0ZTMiXSBlcnJvcjpuaWxdOwotICAgIFtbTlNGaWxlTWFuYWdlciBkZWZhdWx0TWFuYWdl
cl0gY29weUl0ZW1BdFVSTDp1cmwyLmdldCgpIHRvVVJMOltmcmFtZUlEQlBhdGguZ2V0KCkgVVJM
QnlBcHBlbmRpbmdQYXRoQ29tcG9uZW50OkAiSW5kZXhlZERCLnNxbGl0ZTMtc2htIl0gZXJyb3I6
bmlsXTsKLSAgICBbW05TRmlsZU1hbmFnZXIgZGVmYXVsdE1hbmFnZXJdIGNvcHlJdGVtQXRVUkw6
dXJsMy5nZXQoKSB0b1VSTDpbZnJhbWVJREJQYXRoLmdldCgpIFVSTEJ5QXBwZW5kaW5nUGF0aENv
bXBvbmVudDpAIkluZGV4ZWREQi5zcWxpdGUzLXdhbCJdIGVycm9yOm5pbF07Ci0KLSAgICBSZXRh
aW5QdHI8TlNVUkw+IGZyYW1lSURCUGF0aDIgPSBbW2ZpbGVJREJQYXRoIFVSTEJ5QXBwZW5kaW5n
UGF0aENvbXBvbmVudDpAImh0dHBzX3dlYmtpdC5vcmdfMCJdIFVSTEJ5QXBwZW5kaW5nUGF0aENv
bXBvbmVudDpAIldlYnNpdGVEYXRhU3RvcmVDdXN0b21QYXRocyJdOwotICAgIFtbTlNGaWxlTWFu
YWdlciBkZWZhdWx0TWFuYWdlcl0gY3JlYXRlRGlyZWN0b3J5QXRVUkw6ZnJhbWVJREJQYXRoMi5n
ZXQoKSB3aXRoSW50ZXJtZWRpYXRlRGlyZWN0b3JpZXM6WUVTIGF0dHJpYnV0ZXM6bmlsIGVycm9y
Om5pbF07Ci0KLSAgICBbW05TRmlsZU1hbmFnZXIgZGVmYXVsdE1hbmFnZXJdIGNvcHlJdGVtQXRV
Ukw6dXJsMS5nZXQoKSB0b1VSTDpbZnJhbWVJREJQYXRoMi5nZXQoKSBVUkxCeUFwcGVuZGluZ1Bh
dGhDb21wb25lbnQ6QCJJbmRleGVkREIuc3FsaXRlMyJdIGVycm9yOm5pbF07Ci0gICAgW1tOU0Zp
bGVNYW5hZ2VyIGRlZmF1bHRNYW5hZ2VyXSBjb3B5SXRlbUF0VVJMOnVybDIuZ2V0KCkgdG9VUkw6
W2ZyYW1lSURCUGF0aDIuZ2V0KCkgVVJMQnlBcHBlbmRpbmdQYXRoQ29tcG9uZW50OkAiSW5kZXhl
ZERCLnNxbGl0ZTMtc2htIl0gZXJyb3I6bmlsXTsKLSAgICBbW05TRmlsZU1hbmFnZXIgZGVmYXVs
dE1hbmFnZXJdIGNvcHlJdGVtQXRVUkw6dXJsMy5nZXQoKSB0b1VSTDpbZnJhbWVJREJQYXRoMi5n
ZXQoKSBVUkxCeUFwcGVuZGluZ1BhdGhDb21wb25lbnQ6QCJJbmRleGVkREIuc3FsaXRlMy13YWwi
XSBlcnJvcjpuaWxdOwotCi0gICAgW2RhdGFTdG9yZSBmZXRjaERhdGFSZWNvcmRzT2ZUeXBlczp0
eXBlcy5nZXQoKSBjb21wbGV0aW9uSGFuZGxlcjpeKE5TQXJyYXk8V0tXZWJzaXRlRGF0YVJlY29y
ZCAqPiAqIHJlY29yZHMpIHsKLSAgICAgICAgRVhQRUNUX0VRKFtyZWNvcmRzIGNvdW50XSwgKHVu
c2lnbmVkIGxvbmcpMyk7Ci0gICAgICAgIGZvciAoaWQgcmVjb3JkIGluIHJlY29yZHMpIHsKLSAg
ICAgICAgICAgIGlmIChbW3JlY29yZCBkaXNwbGF5TmFtZV0gaXNFcXVhbDogQCJhcHBsZS5jb20i
XSkgewotICAgICAgICAgICAgICAgIFtkYXRhU3RvcmUgcmVtb3ZlRGF0YU9mVHlwZXM6dHlwZXMu
Z2V0KCkgZm9yRGF0YVJlY29yZHM6QFtyZWNvcmRdIGNvbXBsZXRpb25IYW5kbGVyOl4oKSB7Ci0g
ICAgICAgICAgICAgICAgICAgIHJlY2VpdmVkU2NyaXB0TWVzc2FnZSA9IHRydWU7Ci0gICAgICAg
ICAgICAgICAgICAgIEVYUEVDVF9GQUxTRShbW05TRmlsZU1hbmFnZXIgZGVmYXVsdE1hbmFnZXJd
IGZpbGVFeGlzdHNBdFBhdGg6ZnJhbWVJREJQYXRoLmdldCgpLnBhdGhdKTsKLSAgICAgICAgICAg
ICAgICB9XTsKKyAgICBAYXV0b3JlbGVhc2Vwb29sIHsKKyAgICAgICAgYXV0byBkYXRhU3RvcmUg
PSBhZG9wdE5TKFtbV0tXZWJzaXRlRGF0YVN0b3JlIGFsbG9jXSBfaW5pdFdpdGhDb25maWd1cmF0
aW9uOndlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmdldCgpXSk7CisgICAgICAgIFJldGFp
blB0cjxOU1NldD4gdHlwZXMgPSBhZG9wdE5TKFtbTlNTZXQgYWxsb2NdIGluaXRXaXRoT2JqZWN0
czpXS1dlYnNpdGVEYXRhVHlwZUluZGV4ZWREQkRhdGFiYXNlcywgbmlsXSk7CisKKyAgICAgICAg
Ly8gU3ViZnJhbWUgb2YgZGlmZmVyZW50IG9yaWdpbnMgbWF5IGFsc28gY3JlYXRlIEluZGV4ZWRE
QiBmaWxlcy4KKyAgICAgICAgUmV0YWluUHRyPE5TVVJMPiB1cmwxID0gW1tOU0J1bmRsZSBtYWlu
QnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIkluZGV4ZWREQiIgd2l0aEV4dGVuc2lvbjpAInNxbGl0
ZTMiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CisgICAgICAgIFJl
dGFpblB0cjxOU1VSTD4gdXJsMiA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3Vy
Y2U6QCJJbmRleGVkREIiIHdpdGhFeHRlbnNpb246QCJzcWxpdGUzLXNobSIgc3ViZGlyZWN0b3J5
OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKKyAgICAgICAgUmV0YWluUHRyPE5TVVJMPiB1
cmwzID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIkluZGV4ZWREQiIg
d2l0aEV4dGVuc2lvbjpAInNxbGl0ZTMtd2FsIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJ
LnJlc291cmNlcyJdOworCisgICAgICAgIFJldGFpblB0cjxOU1VSTD4gZnJhbWVJREJQYXRoID0g
W1tmaWxlSURCUGF0aCBVUkxCeUFwcGVuZGluZ1BhdGhDb21wb25lbnQ6QCJodHRwc19hcHBsZS5j
b21fMCJdIFVSTEJ5QXBwZW5kaW5nUGF0aENvbXBvbmVudDpAIldlYnNpdGVEYXRhU3RvcmVDdXN0
b21QYXRocyJdOworICAgICAgICBbW05TRmlsZU1hbmFnZXIgZGVmYXVsdE1hbmFnZXJdIGNyZWF0
ZURpcmVjdG9yeUF0VVJMOmZyYW1lSURCUGF0aC5nZXQoKSB3aXRoSW50ZXJtZWRpYXRlRGlyZWN0
b3JpZXM6WUVTIGF0dHJpYnV0ZXM6bmlsIGVycm9yOm5pbF07CisKKyAgICAgICAgW1tOU0ZpbGVN
YW5hZ2VyIGRlZmF1bHRNYW5hZ2VyXSBjb3B5SXRlbUF0VVJMOnVybDEuZ2V0KCkgdG9VUkw6W2Zy
YW1lSURCUGF0aC5nZXQoKSBVUkxCeUFwcGVuZGluZ1BhdGhDb21wb25lbnQ6QCJJbmRleGVkREIu
c3FsaXRlMyJdIGVycm9yOm5pbF07CisgICAgICAgIFtbTlNGaWxlTWFuYWdlciBkZWZhdWx0TWFu
YWdlcl0gY29weUl0ZW1BdFVSTDp1cmwyLmdldCgpIHRvVVJMOltmcmFtZUlEQlBhdGguZ2V0KCkg
VVJMQnlBcHBlbmRpbmdQYXRoQ29tcG9uZW50OkAiSW5kZXhlZERCLnNxbGl0ZTMtc2htIl0gZXJy
b3I6bmlsXTsKKyAgICAgICAgW1tOU0ZpbGVNYW5hZ2VyIGRlZmF1bHRNYW5hZ2VyXSBjb3B5SXRl
bUF0VVJMOnVybDMuZ2V0KCkgdG9VUkw6W2ZyYW1lSURCUGF0aC5nZXQoKSBVUkxCeUFwcGVuZGlu
Z1BhdGhDb21wb25lbnQ6QCJJbmRleGVkREIuc3FsaXRlMy13YWwiXSBlcnJvcjpuaWxdOworCisg
ICAgICAgIFJldGFpblB0cjxOU1VSTD4gZnJhbWVJREJQYXRoMiA9IFtbZmlsZUlEQlBhdGggVVJM
QnlBcHBlbmRpbmdQYXRoQ29tcG9uZW50OkAiaHR0cHNfd2Via2l0Lm9yZ18wIl0gVVJMQnlBcHBl
bmRpbmdQYXRoQ29tcG9uZW50OkAiV2Vic2l0ZURhdGFTdG9yZUN1c3RvbVBhdGhzIl07CisgICAg
ICAgIFtbTlNGaWxlTWFuYWdlciBkZWZhdWx0TWFuYWdlcl0gY3JlYXRlRGlyZWN0b3J5QXRVUkw6
ZnJhbWVJREJQYXRoMi5nZXQoKSB3aXRoSW50ZXJtZWRpYXRlRGlyZWN0b3JpZXM6WUVTIGF0dHJp
YnV0ZXM6bmlsIGVycm9yOm5pbF07CisKKyAgICAgICAgW1tOU0ZpbGVNYW5hZ2VyIGRlZmF1bHRN
YW5hZ2VyXSBjb3B5SXRlbUF0VVJMOnVybDEuZ2V0KCkgdG9VUkw6W2ZyYW1lSURCUGF0aDIuZ2V0
KCkgVVJMQnlBcHBlbmRpbmdQYXRoQ29tcG9uZW50OkAiSW5kZXhlZERCLnNxbGl0ZTMiXSBlcnJv
cjpuaWxdOworICAgICAgICBbW05TRmlsZU1hbmFnZXIgZGVmYXVsdE1hbmFnZXJdIGNvcHlJdGVt
QXRVUkw6dXJsMi5nZXQoKSB0b1VSTDpbZnJhbWVJREJQYXRoMi5nZXQoKSBVUkxCeUFwcGVuZGlu
Z1BhdGhDb21wb25lbnQ6QCJJbmRleGVkREIuc3FsaXRlMy1zaG0iXSBlcnJvcjpuaWxdOworICAg
ICAgICBbW05TRmlsZU1hbmFnZXIgZGVmYXVsdE1hbmFnZXJdIGNvcHlJdGVtQXRVUkw6dXJsMy5n
ZXQoKSB0b1VSTDpbZnJhbWVJREJQYXRoMi5nZXQoKSBVUkxCeUFwcGVuZGluZ1BhdGhDb21wb25l
bnQ6QCJJbmRleGVkREIuc3FsaXRlMy13YWwiXSBlcnJvcjpuaWxdOworCisgICAgICAgIFtkYXRh
U3RvcmUgZmV0Y2hEYXRhUmVjb3Jkc09mVHlwZXM6dHlwZXMuZ2V0KCkgY29tcGxldGlvbkhhbmRs
ZXI6XihOU0FycmF5PFdLV2Vic2l0ZURhdGFSZWNvcmQgKj4gKiByZWNvcmRzKSB7CisgICAgICAg
ICAgICBFWFBFQ1RfRVEoW3JlY29yZHMgY291bnRdLCAodW5zaWduZWQgbG9uZykzKTsKKyAgICAg
ICAgICAgIGZvciAoaWQgcmVjb3JkIGluIHJlY29yZHMpIHsKKyAgICAgICAgICAgICAgICBpZiAo
W1tyZWNvcmQgZGlzcGxheU5hbWVdIGlzRXF1YWw6IEAiYXBwbGUuY29tIl0pIHsKKyAgICAgICAg
ICAgICAgICAgICAgW2RhdGFTdG9yZSByZW1vdmVEYXRhT2ZUeXBlczp0eXBlcy5nZXQoKSBmb3JE
YXRhUmVjb3JkczpAW3JlY29yZF0gY29tcGxldGlvbkhhbmRsZXI6XigpIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHJlY2VpdmVkU2NyaXB0TWVzc2FnZSA9IHRydWU7CisgICAgICAgICAgICAg
ICAgICAgICAgICBFWFBFQ1RfRkFMU0UoW1tOU0ZpbGVNYW5hZ2VyIGRlZmF1bHRNYW5hZ2VyXSBm
aWxlRXhpc3RzQXRQYXRoOmZyYW1lSURCUGF0aC5nZXQoKS5wYXRoXSk7CisgICAgICAgICAgICAg
ICAgICAgIH1dOworICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KLSAgICAgICAgfQot
ICAgIH1dOwotICAgIHJlY2VpdmVkU2NyaXB0TWVzc2FnZSA9IGZhbHNlOwotICAgIFRlc3RXZWJL
aXRBUEk6OlV0aWw6OnJ1bigmcmVjZWl2ZWRTY3JpcHRNZXNzYWdlKTsKKyAgICAgICAgfV07Cisg
ICAgICAgIHJlY2VpdmVkU2NyaXB0TWVzc2FnZSA9IGZhbHNlOworICAgICAgICBUZXN0V2ViS2l0
QVBJOjpVdGlsOjpydW4oJnJlY2VpdmVkU2NyaXB0TWVzc2FnZSk7CiAKLSAgICBbZGF0YVN0b3Jl
IHJlbW92ZURhdGFPZlR5cGVzOnR5cGVzLmdldCgpIG1vZGlmaWVkU2luY2U6W05TRGF0ZSBkaXN0
YW50UGFzdF0gY29tcGxldGlvbkhhbmRsZXI6W10oKSB7Ci0gICAgICAgIHJlY2VpdmVkU2NyaXB0
TWVzc2FnZSA9IHRydWU7Ci0gICAgfV07Ci0gICAgcmVjZWl2ZWRTY3JpcHRNZXNzYWdlID0gZmFs
c2U7Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWNlaXZlZFNjcmlwdE1lc3NhZ2Up
OworICAgICAgICBbZGF0YVN0b3JlIHJlbW92ZURhdGFPZlR5cGVzOnR5cGVzLmdldCgpIG1vZGlm
aWVkU2luY2U6W05TRGF0ZSBkaXN0YW50UGFzdF0gY29tcGxldGlvbkhhbmRsZXI6W10oKSB7Cisg
ICAgICAgICAgICByZWNlaXZlZFNjcmlwdE1lc3NhZ2UgPSB0cnVlOworICAgICAgICB9XTsKKyAg
ICAgICAgcmVjZWl2ZWRTY3JpcHRNZXNzYWdlID0gZmFsc2U7CisgICAgICAgIFRlc3RXZWJLaXRB
UEk6OlV0aWw6OnJ1bigmcmVjZWl2ZWRTY3JpcHRNZXNzYWdlKTsKIAotICAgIEVYUEVDVF9GQUxT
RShbW05TRmlsZU1hbmFnZXIgZGVmYXVsdE1hbmFnZXJdIGZpbGVFeGlzdHNBdFBhdGg6ZmlsZUlE
QlBhdGguZ2V0KCkucGF0aF0pOworICAgICAgICBFWFBFQ1RfRkFMU0UoW1tOU0ZpbGVNYW5hZ2Vy
IGRlZmF1bHRNYW5hZ2VyXSBmaWxlRXhpc3RzQXRQYXRoOmZpbGVJREJQYXRoLmdldCgpLnBhdGhd
KTsKIAotICAgIC8vIE5vdywgd2l0aCBicmFuZCBuZXcgV0tXZWJzaXRlRGF0YVN0b3JlcyBwb2lu
dGluZyBhdCB0aGUgc2FtZSBjdXN0b20gY29va2llIHN0b3JhZ2UgbG9jYXRpb24sCi0gICAgLy8g
aW4gbmV3bHkgZmlyZWQgdXAgTmV0d29ya1Byb2Nlc3NlcywgdmVyaWZ5IHRoYXQgdGhlIGZldGNo
IGFuZCBkZWxldGUgQVBJcyB3b3JrIGFzIGV4cGVjdGVkLgorICAgICAgICAvLyBOb3csIHdpdGgg
YnJhbmQgbmV3IFdLV2Vic2l0ZURhdGFTdG9yZXMgcG9pbnRpbmcgYXQgdGhlIHNhbWUgY3VzdG9t
IGNvb2tpZSBzdG9yYWdlIGxvY2F0aW9uLAorICAgICAgICAvLyBpbiBuZXdseSBmaXJlZCB1cCBO
ZXR3b3JrUHJvY2Vzc2VzLCB2ZXJpZnkgdGhhdCB0aGUgZmV0Y2ggYW5kIGRlbGV0ZSBBUElzIHdv
cmsgYXMgZXhwZWN0ZWQuCisgICAgICAgIFtkYXRhU3RvcmUgX3Rlcm1pbmF0ZU5ldHdvcmtQcm9j
ZXNzXTsKKyAgICB9CiAKLSAgICBbZGF0YVN0b3JlIF90ZXJtaW5hdGVOZXR3b3JrUHJvY2Vzc107
CiAgICAgYXV0byBuZXdDdXN0b21EYXRhU3RvcmUgPSBhZG9wdE5TKFtbV0tXZWJzaXRlRGF0YVN0
b3JlIGFsbG9jXSBfaW5pdFdpdGhDb25maWd1cmF0aW9uOndlYnNpdGVEYXRhU3RvcmVDb25maWd1
cmF0aW9uLmdldCgpXSk7Ci0KICAgICBbbmV3Q3VzdG9tRGF0YVN0b3JlIGZldGNoRGF0YVJlY29y
ZHNPZlR5cGVzOltOU1NldCBzZXRXaXRoT2JqZWN0czpXS1dlYnNpdGVEYXRhVHlwZUNvb2tpZXMs
IG5pbF0gY29tcGxldGlvbkhhbmRsZXI6XihOU0FycmF5PFdLV2Vic2l0ZURhdGFSZWNvcmQgKj4g
KiByZWNvcmRzKSB7CiAgICAgICAgIEVYUEVDVF9HVChbcmVjb3JkcyBjb3VudF0sICh1bnNpZ25l
ZCBsb25nKTApOwogICAgICAgICByZWNlaXZlZFNjcmlwdE1lc3NhZ2UgPSB0cnVlOwogICAgIH1d
OwotCiAgICAgcmVjZWl2ZWRTY3JpcHRNZXNzYWdlID0gZmFsc2U7CiAgICAgVGVzdFdlYktpdEFQ
STo6VXRpbDo6cnVuKCZyZWNlaXZlZFNjcmlwdE1lc3NhZ2UpOwogCi0gICAgW2RhdGFTdG9yZSBf
dGVybWluYXRlTmV0d29ya1Byb2Nlc3NdOwotICAgIG5ld0N1c3RvbURhdGFTdG9yZSA9IGFkb3B0
TlMoW1tXS1dlYnNpdGVEYXRhU3RvcmUgYWxsb2NdIF9pbml0V2l0aENvbmZpZ3VyYXRpb246d2Vi
c2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uZ2V0KCldKTsKLQogICAgIFtuZXdDdXN0b21EYXRh
U3RvcmUgcmVtb3ZlRGF0YU9mVHlwZXM6W05TU2V0IHNldFdpdGhPYmplY3RzOldLV2Vic2l0ZURh
dGFUeXBlQ29va2llcywgbmlsXSBtb2RpZmllZFNpbmNlOltOU0RhdGUgZGlzdGFudFBhc3RdIGNv
bXBsZXRpb25IYW5kbGVyOl4gewogICAgICAgICByZWNlaXZlZFNjcmlwdE1lc3NhZ2UgPSB0cnVl
OwogICAgIH1dOwotCi0gICAgcmVjZWl2ZWRTY3JpcHRNZXNzYWdlID0gZmFsc2U7Ci0gICAgVGVz
dFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWNlaXZlZFNjcmlwdE1lc3NhZ2UpOwotCi0gICAgLy8g
VGhpcyB0aW1lLCByZXVzZSB0aGUgc2FtZSBuZXR3b3JrIHByb2Nlc3MgYnV0IHN0aWxsIGRvIGEg
bmV3IHdlYnNpdGVkYXRhc3RvcmUsIHRvIG1ha2Ugc3VyZSBldmVuIGFuIGV4aXN0aW5nIG5ldHdv
cmsgcHJvY2VzcwotICAgIC8vIGdldHMgdGhlIG5ldyBkYXRhc3RvcmUuCi0gICAgbmV3Q3VzdG9t
RGF0YVN0b3JlID0gYWRvcHROUyhbW1dLV2Vic2l0ZURhdGFTdG9yZSBhbGxvY10gX2luaXRXaXRo
Q29uZmlndXJhdGlvbjp3ZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5nZXQoKV0pOwotCi0g
ICAgW25ld0N1c3RvbURhdGFTdG9yZSBmZXRjaERhdGFSZWNvcmRzT2ZUeXBlczpbTlNTZXQgc2V0
V2l0aE9iamVjdHM6V0tXZWJzaXRlRGF0YVR5cGVDb29raWVzLCBuaWxdIGNvbXBsZXRpb25IYW5k
bGVyOl4oTlNBcnJheTxXS1dlYnNpdGVEYXRhUmVjb3JkICo+ICogcmVjb3JkcykgewotICAgICAg
ICBFWFBFQ1RfRVEoW3JlY29yZHMgY291bnRdLCAodW5zaWduZWQgbG9uZykwKTsKLSAgICAgICAg
cmVjZWl2ZWRTY3JpcHRNZXNzYWdlID0gdHJ1ZTsKLSAgICB9XTsKLQogICAgIHJlY2VpdmVkU2Ny
aXB0TWVzc2FnZSA9IGZhbHNlOwogICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVjZWl2
ZWRTY3JpcHRNZXNzYWdlKTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>453627</attachid>
            <date>2022-03-02 09:47:28 -0800</date>
            <delta_ts>2022-03-02 11:01:21 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-236844-20220302094727.patch</filename>
            <type>text/plain</type>
            <size>23735</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwNzM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGYxMzA2NTAyMzhjZTY5NTVk
YmY4YjViNjEzZWZlMWQ0NDhjNjA1ZDkuLjJhZDkwNmJjYjQ1NjQ4ZTgwODgyNzkzN2E3NDFmZTYz
NDlmZDI5ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMjItMDMtMDIgIFNpaHVpIExp
dSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGFzc2VydGlvbiB0aGF0IG5v
IHR3byBzZXNzaW9ucyBzaGFyZSB0aGUgc2FtZSBnZW5lcmFsIHN0b3JhZ2UgZGlyZWN0b3J5Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzY4NDQKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg5MTc4NTY2PgorCisgICAgICAgIFJldmlld2VkIGJ5IENo
cmlzIER1bWV6LgorCisgICAgICAgIHJkYXI6Ly84OTE5MDU3MSBzaG93cyB0aGF0IHRoZXJlIGNh
biBiZSB0d28gV2Vic2l0ZURhdGFTdG9yZXMgdXNpbmcgdGhlIHNhbWUgZ2VuZXJhbCBzdG9yYWdl
IGRpcmVjdG9yeSwgd2hlbgorICAgICAgICBpbml0aWFsaXppbmcgbmV0d29yayBwcm9jZXNzLiBU
aGlzIGNhbiBsZWFkIHRvIGNvcnJ1cHRpb24gYmVjYXVzZSBzdG9yYWdlIGNvZGUgb2YgZWFjaCBz
ZXNzaW9uIHJ1bnMgb24gaXRzIG93bgorICAgICAgICBXb3JrUXVldWUgKG9yIHRocmVhZCkgaW4g
bmV0d29yayBwcm9jZXNzLiBJZiB0d28gc2Vzc2lvbnMgKFdlYnNpdGVEYXRhU3RvcmVzKSB1c2Ug
dGhlIHNhbWUgZGlyZWN0b3J5LCB0aGUgCisgICAgICAgIGRpcmVjdG9yeSBhbmQgaXRzIGZpbGVz
IG1heSBiZSBhY2Nlc3NlZCBjb25jdXJyZW50bHkuIFRoZSBjb3JyZWN0IHVzYWdlIGlzIGNyZWF0
aW5nIGRpZmZlcmVudCBwZXJzaXN0ZW50IAorICAgICAgICBzZXNzaW9ucyB3aXRoIGRpZmZlcmVu
dCBwYXRocy4gTGV0J3MgYWRkIGFuIGFzc2VydGlvbiB0byBoZWxwIGZpbmQgcHJvYmxlbWF0aWMg
dXNlIGNhc2UuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1By
b3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6c2VuZENyZWF0
aW9uUGFyYW1ldGVyc1RvTmV3UHJvY2Vzcyk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYnNpdGVE
YXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0
b3JlOjpwYXJhbWV0ZXJzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0
ZURhdGFTdG9yZS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlOjpjYWNoZVN0
b3JhZ2VEaXJlY3RvcnkgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3Jl
OjpyZXNvbHZlZEdlbmVyYWxTdG9yYWdlRGlyZWN0b3J5IGNvbnN0KToKKyAgICAgICAgKFdlYktp
dDo6V2Vic2l0ZURhdGFTdG9yZTo6Z2VuZXJhbFN0b3JhZ2VEaXJlY3RvcnkgY29uc3QpOiBEZWxl
dGVkLgorCiAyMDIyLTAzLTAyICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAog
ICAgICAgICBSZW5hbWUgTWVkaWFTYW1wbGVBVkZPYmpDOjpjcmVhdGVJbWFnZVNhbXBsZSB0byBN
ZWRpYVNhbXBsZUFWRk9iakM6OmNyZWF0ZUZyb21QaXhlbEJ1ZmZlcgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKaW5k
ZXggNWY4NjViNmVlMTgwZGZiZThkNWZkMjViNzJmMTk5YTAxNWExNDEzZi4uNTI4ZTE0NjhiMDQ4
OTY0ZTNlMTc5NTZkMmE5OTE0MjY5OGQyYmFlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCkBAIC0yMTEsNyAr
MjExLDE2IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6c2VuZENyZWF0aW9uUGFyYW1ldGVy
c1RvTmV3UHJvY2VzcygpCiAKICNpZiAhUExBVEZPUk0oR1RLKSAmJiAhUExBVEZPUk0oV1BFKSAv
LyBHVEsgYW5kIFdQRSBkb24ndCB1c2UgZGVmYXVsdE5ldHdvcmtQcm9jZXNzCiAgICAgcGFyYW1l
dGVycy53ZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycyA9IFdlYnNpdGVEYXRhU3RvcmU6OnBhcmFt
ZXRlcnNGcm9tRWFjaFdlYnNpdGVEYXRhU3RvcmUoKTsKLSAgICBXZWJzaXRlRGF0YVN0b3JlOjpm
b3JFYWNoV2Vic2l0ZURhdGFTdG9yZShbdGhpc10oYXV0byYgd2Vic2l0ZURhdGFTdG9yZSkgewor
ICAgIEhhc2hNYXA8U3RyaW5nLCBQQUw6OlNlc3Npb25JRD4gc2Vzc2lvbkZvckRpcmVjdG9yeTsK
KyAgICBXZWJzaXRlRGF0YVN0b3JlOjpmb3JFYWNoV2Vic2l0ZURhdGFTdG9yZShbJl0oYXV0byYg
d2Vic2l0ZURhdGFTdG9yZSkgeworICAgICAgICBpZiAod2Vic2l0ZURhdGFTdG9yZS5pc1BlcnNp
c3RlbnQoKSkgeworICAgICAgICAgICAgaWYgKGF1dG8gZGlyZWN0b3J5ID0gd2Vic2l0ZURhdGFT
dG9yZS5yZXNvbHZlZEdlbmVyYWxTdG9yYWdlRGlyZWN0b3J5KCk7ICFkaXJlY3RvcnkuaXNFbXB0
eSgpKSB7CisgICAgICAgICAgICAgICAgYXV0byBzZXNzaW9uSUQgPSB3ZWJzaXRlRGF0YVN0b3Jl
LnNlc3Npb25JRCgpOworICAgICAgICAgICAgICAgIC8vIFBlcnNpc3RlbnQgc2Vzc2lvbnMgc2hh
cmluZyBzYW1lIHN0b3JhZ2UgZGlyZWN0b3J5IG1heSBjYXVzZSBjb3JydXB0aW9uLgorICAgICAg
ICAgICAgICAgIC8vIElmIHRoZSBhc3NlcnRpb24gaXMgaGl0LCBjaGVjayBpZiB5b3UgaGF2ZSBt
dWx0aXBsZSBXZWJzaXRlRGF0YVN0b3JlcyB3aXRoIHRoZSBzYW1lIGdlbmVyYWxTdG9yYWdlRGly
ZWN0b3J5LgorICAgICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX1dJVEhfTUVTU0FHRShzZXNz
aW9uRm9yRGlyZWN0b3J5LmFkZChkaXJlY3RvcnksIHNlc3Npb25JRCkuaXNOZXdFbnRyeSwgIkdl
bmVyYWxTdG9yYWdlRGlyZWN0b3J5IGZvciBzZXNzaW9uICUiIFBSSXU2NCAiIGlzIGFscmVhZHkg
aW4gdXNlIGJ5IHNlc3Npb24gJSIgUFJJdTY0LCBzZXNzaW9uRm9yRGlyZWN0b3J5LmdldChkaXJl
Y3RvcnkpLnRvVUludDY0KCksIHNlc3Npb25JRC50b1VJbnQ2NCgpKTsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgfQogICAgICAgICBhZGRTZXNzaW9uKHdlYnNpdGVEYXRhU3RvcmUsIFNlbmRQYXJh
bWV0ZXJzVG9OZXR3b3JrUHJvY2Vzczo6Tm8pOwogICAgIH0pOwogI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNw
cCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUu
Y3BwCmluZGV4IDFjN2QxMmRiMzJlNTE3NzlmZWU1YWM4NDU4OGQ5MTY1MjY5MTUwN2YuLmRmNTE3
Zjg2ZjZhYzI3OGEwMTJjMTI4NGFmZGI0NjZmNGE5YzcxODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCkBA
IC0xODgyLDcgKzE4ODIsNyBAQCBXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycyBXZWJzaXRlRGF0
YVN0b3JlOjpwYXJhbWV0ZXJzKCkKICAgICAgICAgICAgIHBhcmFtZXRlcnMuY2FjaGVTdG9yYWdl
RGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlID0gV1RGTW92ZSgqaGFuZGxlKTsKICAgICB9CiAKLSAg
ICBpZiAoYXV0byBkaXJlY3RvcnkgPSBnZW5lcmFsU3RvcmFnZURpcmVjdG9yeSgpOyAhZGlyZWN0
b3J5LmlzRW1wdHkoKSkgeworICAgIGlmIChhdXRvIGRpcmVjdG9yeSA9IHJlc29sdmVkR2VuZXJh
bFN0b3JhZ2VEaXJlY3RvcnkoKTsgIWRpcmVjdG9yeS5pc0VtcHR5KCkpIHsKICAgICAgICAgcGFy
YW1ldGVycy5nZW5lcmFsU3RvcmFnZURpcmVjdG9yeSA9IGRpcmVjdG9yeTsKICAgICAgICAgaWYg
KGF1dG8gaGFuZGxlID0gU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yUmVhZFdyaXRl
RGlyZWN0b3J5KGRpcmVjdG9yeSkpCiAgICAgICAgICAgICBwYXJhbWV0ZXJzLmdlbmVyYWxTdG9y
YWdlRGlyZWN0b3J5SGFuZGxlID0gV1RGTW92ZSgqaGFuZGxlKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaAppbmRleCBj
ZmNlNWNlNDRiNmQ1NjVjMDI5YzI1OTlmMmJmNzhmNGZmNDRlZjQ0Li42MzllZWRmMTg3ZjM4MDc1
MmY4OGRiNDM3Yjg4OGY5ZjdhZWJmNGNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oCkBAIC0xNTksNyArMTU5LDYg
QEAgcHVibGljOgogICAgIHVpbnQ2NF90IHBlck9yaWdpblN0b3JhZ2VRdW90YSgpIGNvbnN0IHsg
cmV0dXJuIG1fcmVzb2x2ZWRDb25maWd1cmF0aW9uLT5wZXJPcmlnaW5TdG9yYWdlUXVvdGEoKTsg
fQogICAgIHVpbnQ2NF90IHBlclRoaXJkUGFydHlPcmlnaW5TdG9yYWdlUXVvdGEoKSBjb25zdDsK
ICAgICBjb25zdCBTdHJpbmcmIGNhY2hlU3RvcmFnZURpcmVjdG9yeSgpIGNvbnN0IHsgcmV0dXJu
IG1fcmVzb2x2ZWRDb25maWd1cmF0aW9uLT5jYWNoZVN0b3JhZ2VEaXJlY3RvcnkoKTsgfQotICAg
IGNvbnN0IFN0cmluZyYgZ2VuZXJhbFN0b3JhZ2VEaXJlY3RvcnkoKSBjb25zdCB7IHJldHVybiBt
X3Jlc29sdmVkQ29uZmlndXJhdGlvbi0+Z2VuZXJhbFN0b3JhZ2VEaXJlY3RvcnkoKTsgfQogCiAj
aWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCiAgICAgdm9pZCBjbGVh
clJlc291cmNlTG9hZFN0YXRpc3RpY3NJbldlYlByb2Nlc3NlcyhDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKCk+JiYpOwpAQCAtMjU4LDYgKzI1Nyw3IEBAIHB1YmxpYzoKICAgICBjb25zdCBTdHJpbmcm
IHJlc29sdmVkU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRpcmVjdG9yeSgpIGNvbnN0IHsgcmV0
dXJuIG1fcmVzb2x2ZWRDb25maWd1cmF0aW9uLT5zZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGly
ZWN0b3J5KCk7IH0KICAgICBjb25zdCBTdHJpbmcmIHJlc29sdmVkUmVzb3VyY2VMb2FkU3RhdGlz
dGljc0RpcmVjdG9yeSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVzb2x2ZWRDb25maWd1cmF0aW9uLT5y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5KCk7IH0KICAgICBjb25zdCBTdHJpbmcmIHJl
c29sdmVkSFNUU1N0b3JhZ2VEaXJlY3RvcnkoKSBjb25zdCB7IHJldHVybiBtX3Jlc29sdmVkQ29u
ZmlndXJhdGlvbi0+aHN0c1N0b3JhZ2VEaXJlY3RvcnkoKTsgfQorICAgIGNvbnN0IFN0cmluZyYg
cmVzb2x2ZWRHZW5lcmFsU3RvcmFnZURpcmVjdG9yeSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVzb2x2
ZWRDb25maWd1cmF0aW9uLT5nZW5lcmFsU3RvcmFnZURpcmVjdG9yeSgpOyB9CiAjaWYgRU5BQkxF
KEFSS0lUX0lOTElORV9QUkVWSUVXKQogICAgIGNvbnN0IFN0cmluZyYgcmVzb2x2ZWRNb2RlbEVs
ZW1lbnRDYWNoZURpcmVjdG9yeSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVzb2x2ZWRDb25maWd1cmF0
aW9uLT5tb2RlbEVsZW1lbnRDYWNoZURpcmVjdG9yeSgpOyB9CiAjZW5kaWYKZGlmZiAtLWdpdCBh
L1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBjMGI4NWIzMDIzNGFhYmNj
ZThlMjJlNmM1N2M5MTI3YTQzNWY2ODk5Li4xMDc2YjNiY2JmYjA2ODQwNjQ3ZjE5ZGI4MDQ1Zjlk
NDIyMDcwYTJkIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMjItMDMtMDIgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBh
cHBsZS5jb20+CisKKyAgICAgICAgQWRkIGFzc2VydGlvbiB0aGF0IG5vIHR3byBzZXNzaW9ucyBz
aGFyZSB0aGUgc2FtZSBnZW5lcmFsIHN0b3JhZ2UgZGlyZWN0b3J5CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzY4NDQKKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzg5MTc4NTY2PgorCisgICAgICAgIFJldmlld2VkIGJ5IENocmlzIER1bWV6LgorCisg
ICAgICAgIFVwZGF0ZSB0aGUgdGVzdHMgd2hlcmUgdHdvIFdlYnNpdGVEYXRhU3RvcmVzIGFyZSBj
cmVhdGVkIHdpdGggdGhlIHNhbWUgZ2VuZXJhbCBzdG9yYWdlIGRpcmVjdG9yeS4KKworICAgICAg
ICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQubW06CisgICAgICAgIChlbXB0eU9ic2VydmF0aW9uc0RCUGF0aCk6CisgICAgICAgIChlbXB0
eVBjbURCUGF0aCk6CisgICAgICAgIChjbGVhblVwKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL1B1c2hBUEkubW06CisgICAgICAgICogVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzLm1tOgorICAgICAgICAoVEVT
VCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XZWJQdXNoRGFl
bW9uLm1tOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV2Vic2l0
ZURhdGFTdG9yZUN1c3RvbVBhdGhzLm1tOgorICAgICAgICAocnVuV2Vic2l0ZURhdGFTdG9yZUN1
c3RvbVBhdGhzKToKKwogMjAyMi0wMy0wMiAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNl
bkB3ZWJraXQub3JnPgogCiAgICAgICAgIEFkZCBTUEkgX1dLRGF0YVRhc2sKZGlmZiAtLWdpdCBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1ByaXZhdGVD
bGlja01lYXN1cmVtZW50Lm1tCmluZGV4IGVhMDExMGM1ZjU0YzBhNTQwMjIwZTE3NjdhNmRlMTM3
OGYzYzJjYzAuLmIyYjg0YjY1YWFhODZhZjc0MGFkMWZmMzZjNTk4NDgwM2UwMmRhYmQgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5tbQpAQCAtMjkyLDcgKzI5Miw4IEBAIHN0YXRpYyB2
b2lkIHBvbGxVbnRpbFBDTUlzTWlncmF0ZWQoV0tXZWJWaWV3ICp3ZWJWaWV3LCBNaWdyYXRpbmdG
cm9tUmVzb3VyY2VMb2FkCiBzdGF0aWMgTlNTdHJpbmcgKmVtcHR5T2JzZXJ2YXRpb25zREJQYXRo
KCkKIHsKICAgICBOU0ZpbGVNYW5hZ2VyICpkZWZhdWx0RmlsZU1hbmFnZXIgPSBOU0ZpbGVNYW5h
Z2VyLmRlZmF1bHRNYW5hZ2VyOwotICAgIE5TVVJMICppdHBSb290VVJMID0gV0tXZWJzaXRlRGF0
YVN0b3JlLmRlZmF1bHREYXRhU3RvcmUuX2NvbmZpZ3VyYXRpb24uX3Jlc291cmNlTG9hZFN0YXRp
c3RpY3NEaXJlY3Rvcnk7CisgICAgYXV0byBkYXRhU3RvcmVDb25maWd1cmF0aW9uID0gYWRvcHRO
UyhbW19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CisgICAg
TlNVUkwgKml0cFJvb3RVUkwgPSBkYXRhU3RvcmVDb25maWd1cmF0aW9uLmdldCgpLl9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5OwogICAgIE5TVVJMICpmaWxlVVJMID0gW2l0cFJvb3RV
UkwgVVJMQnlBcHBlbmRpbmdQYXRoQ29tcG9uZW50OkAib2JzZXJ2YXRpb25zLmRiIl07CiAgICAg
W2RlZmF1bHRGaWxlTWFuYWdlciByZW1vdmVJdGVtQXRQYXRoOml0cFJvb3RVUkwucGF0aCBlcnJv
cjpuaWxdOwogICAgIEVYUEVDVF9GQUxTRShbZGVmYXVsdEZpbGVNYW5hZ2VyIGZpbGVFeGlzdHNB
dFBhdGg6aXRwUm9vdFVSTC5wYXRoXSk7CkBAIC0zMDMsNyArMzA0LDggQEAgc3RhdGljIE5TU3Ry
aW5nICplbXB0eU9ic2VydmF0aW9uc0RCUGF0aCgpCiBzdGF0aWMgTlNTdHJpbmcgKmVtcHR5UGNt
REJQYXRoKCkKIHsKICAgICBOU0ZpbGVNYW5hZ2VyICpkZWZhdWx0RmlsZU1hbmFnZXIgPSBOU0Zp
bGVNYW5hZ2VyLmRlZmF1bHRNYW5hZ2VyOwotICAgIE5TVVJMICppdHBSb290VVJMID0gV0tXZWJz
aXRlRGF0YVN0b3JlLmRlZmF1bHREYXRhU3RvcmUuX2NvbmZpZ3VyYXRpb24uX3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3NEaXJlY3Rvcnk7CisgICAgYXV0byBkYXRhU3RvcmVDb25maWd1cmF0aW9uID0g
YWRvcHROUyhbW19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7
CisgICAgTlNVUkwgKml0cFJvb3RVUkwgPSBkYXRhU3RvcmVDb25maWd1cmF0aW9uLmdldCgpLl9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5OwogICAgIE5TVVJMICpmaWxlVVJMID0gW2l0
cFJvb3RVUkwgVVJMQnlBcHBlbmRpbmdQYXRoQ29tcG9uZW50OkAicGNtLmRiIl07CiAgICAgW2Rl
ZmF1bHRGaWxlTWFuYWdlciByZW1vdmVJdGVtQXRQYXRoOml0cFJvb3RVUkwucGF0aCBlcnJvcjpu
aWxdOwogICAgIEVYUEVDVF9GQUxTRShbZGVmYXVsdEZpbGVNYW5hZ2VyIGZpbGVFeGlzdHNBdFBh
dGg6aXRwUm9vdFVSTC5wYXRoXSk7CkBAIC0zMTYsNyArMzE4LDggQEAgc3RhdGljIHZvaWQgY2xl
YW5VcChSZXRhaW5QdHI8V0tXZWJWaWV3PiB3ZWJWaWV3KQogICAgIHN0YXRpYyBib29sIGlzRG9u
ZSA9IGZhbHNlOwogICAgIFtbd2ViVmlldy5nZXQoKSBjb25maWd1cmF0aW9uXS53ZWJzaXRlRGF0
YVN0b3JlIF9jbG9zZURhdGFiYXNlczpeewogICAgICAgICBOU0ZpbGVNYW5hZ2VyICpkZWZhdWx0
RmlsZU1hbmFnZXIgPSBOU0ZpbGVNYW5hZ2VyLmRlZmF1bHRNYW5hZ2VyOwotICAgICAgICBOU1N0
cmluZyAqaXRwUm9vdCA9IFdLV2Vic2l0ZURhdGFTdG9yZS5kZWZhdWx0RGF0YVN0b3JlLl9jb25m
aWd1cmF0aW9uLl9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5LnBhdGg7CisgICAgICAg
IGF1dG8gZGF0YVN0b3JlQ29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tfV0tXZWJzaXRlRGF0YVN0
b3JlQ29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOworICAgICAgICBOU1N0cmluZyAqaXRwUm9v
dCA9IGRhdGFTdG9yZUNvbmZpZ3VyYXRpb24uZ2V0KCkuX3Jlc291cmNlTG9hZFN0YXRpc3RpY3NE
aXJlY3RvcnkucGF0aDsKICAgICAgICAgW2RlZmF1bHRGaWxlTWFuYWdlciByZW1vdmVJdGVtQXRQ
YXRoOml0cFJvb3QgZXJyb3I6bmlsXTsKICAgICAgICAgd2hpbGUgKFtkZWZhdWx0RmlsZU1hbmFn
ZXIgZmlsZUV4aXN0c0F0UGF0aDppdHBSb290XSkKICAgICAgICAgICAgIHVzbGVlcCgxMDAwMCk7
CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1B1c2hB
UEkubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1B1c2hBUEkubW0K
aW5kZXggYjY3Mjk2NzhhZjk5ODU3ZDJhZmY5MGMzY2FlNDNlNmZiMjQ3Y2FiNC4uYzVhYmQ0NmYz
YWU5NmJlMjA4NTVhNzU5MWQ1ZGFjMzhjNDZjODBiMiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9QdXNoQVBJLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHVzaEFQSS5tbQpAQCAtMTA3LDcgKzEwNyw3IEBAIHNl
bGYuYWRkRXZlbnRMaXN0ZW5lcigicHVzaCIsIChldmVudCkgPT4gewogc3RhdGljIHZvaWQgY2xl
YXJXZWJzaXRlRGF0YVN0b3JlKFdLV2Vic2l0ZURhdGFTdG9yZSAqc3RvcmUpCiB7CiAgICAgX19i
bG9jayBib29sIGNsZWFyZWRTdG9yZSA9IGZhbHNlOwotICAgIFtbV0tXZWJzaXRlRGF0YVN0b3Jl
IGRlZmF1bHREYXRhU3RvcmVdIHJlbW92ZURhdGFPZlR5cGVzOltXS1dlYnNpdGVEYXRhU3RvcmUg
YWxsV2Vic2l0ZURhdGFUeXBlc10gbW9kaWZpZWRTaW5jZTpbTlNEYXRlIGRpc3RhbnRQYXN0XSBj
b21wbGV0aW9uSGFuZGxlcjpeKCkgeworICAgIFtzdG9yZSByZW1vdmVEYXRhT2ZUeXBlczpbV0tX
ZWJzaXRlRGF0YVN0b3JlIGFsbFdlYnNpdGVEYXRhVHlwZXNdIG1vZGlmaWVkU2luY2U6W05TRGF0
ZSBkaXN0YW50UGFzdF0gY29tcGxldGlvbkhhbmRsZXI6XigpIHsKICAgICAgICAgY2xlYXJlZFN0
b3JlID0gdHJ1ZTsKICAgICB9XTsKICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmNsZWFy
ZWRTdG9yZSk7CkBAIC0zMjMsMTMgKzMyMywxMiBAQCBURVNUKFB1c2hBUEksIGZpcmVQdXNoRXZl
bnRXaXRoTm9QYWdlc1RpbWVvdXQpCiAgICAgW1tjb25maWd1cmF0aW9uIHVzZXJDb250ZW50Q29u
dHJvbGxlcl0gYWRkU2NyaXB0TWVzc2FnZUhhbmRsZXI6bWVzc2FnZUhhbmRsZXIuZ2V0KCkgbmFt
ZTpAInN3Il07CiAKICAgICBleHBlY3RlZE1lc3NhZ2UgPSAiUmVhZHkiOwotICAgIGF1dG8gd2Vi
VmlldyA9IGFkb3B0TlMoW1tXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVj
dCgwLCAwLCA4MDAsIDYwMCkgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uLmdldCgpXSk7Ci0g
ICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6c2VydmVyLnJlcXVlc3QoKV07Ci0KLSAgICBUZXN0V2Vi
S2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOwogCi0gICAgW3dlYlZpZXcgX2Nsb3NlXTsKLSAgICB3
ZWJWaWV3ID0gbnVsbHB0cjsKKyAgICBAYXV0b3JlbGVhc2Vwb29sIHsKKyAgICAgICAgYXV0byB3
ZWJWaWV3ID0gYWRvcHROUyhbW1dLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VS
ZWN0KDAsIDAsIDgwMCwgNjAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCldKTsK
KyAgICAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6c2VydmVyLnJlcXVlc3QoKV07CisgICAgICAg
IFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgfQogCiAgICAgW2RhdGFTdG9y
ZUNvbmZpZ3VyYXRpb24gc2V0U2VydmljZVdvcmtlclByb2Nlc3NUZXJtaW5hdGlvbkRlbGF5RW5h
YmxlZDpOT107CiAgICAgZGF0YVN0b3JlID0gYWRvcHROUyhbW1dLV2Vic2l0ZURhdGFTdG9yZSBh
bGxvY10gX2luaXRXaXRoQ29uZmlndXJhdGlvbjpkYXRhU3RvcmVDb25maWd1cmF0aW9uLmdldCgp
XSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Jl
c291cmNlTG9hZFN0YXRpc3RpY3MubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL1Jlc291cmNlTG9hZFN0YXRpc3RpY3MubW0KaW5kZXggMzBhM2M4NzMxY2JiYzhjNDNj
ZjdjZTg5Y2YzNTYyMjMxZDM5NTQyMy4uYWI5YzdhNmRkNjBmMDAyYjYyNGUwNTNiODA5MTM3MTNj
NGE3YjdkMCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2EvUmVzb3VyY2VMb2FkU3RhdGlzdGljcy5tbQpAQCAtMTA4NiwxNSArMTA4
NiwxOCBAQCBURVNUKFJlc291cmNlTG9hZFN0YXRpc3RpY3MsIENhbkFjY2Vzc0RhdGFTdW1tYXJ5
V2l0aE5vUHJvY2Vzc1Bvb2wpCiBURVNUKFJlc291cmNlTG9hZFN0YXRpc3RpY3MsIFN0b3JlU3Vz
cGVuc2lvbikKIHsKICAgICBhdXRvICpzaGFyZWRQcm9jZXNzUG9vbCA9IFtXS1Byb2Nlc3NQb29s
IF9zaGFyZWRQcm9jZXNzUG9vbF07Ci0gICAgYXV0byAqZGF0YVN0b3JlMSA9IFtXS1dlYnNpdGVE
YXRhU3RvcmUgZGVmYXVsdERhdGFTdG9yZV07Ci0gICAgYXV0byBkYXRhU3RvcmUyID0gYWRvcHRO
UyhbW1dLV2Vic2l0ZURhdGFTdG9yZSBhbGxvY10gX2luaXRXaXRoQ29uZmlndXJhdGlvbjphZG9w
dE5TKFtbX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKS5nZXQo
KV0pOworICAgIGF1dG8gZGF0YVN0b3JlQ29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tfV0tXZWJz
aXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOworICAgIGF1dG8gY3VzdG9t
R2VuZXJhbFN0b3JhZ2VEaXJlY3RvcnkgPSBbTlNVUkwgZmlsZVVSTFdpdGhQYXRoOltOU1N0cmlu
ZyBzdHJpbmdXaXRoRm9ybWF0OkAiJUAlQCIsIGRhdGFTdG9yZUNvbmZpZ3VyYXRpb24uZ2V0KCku
Z2VuZXJhbFN0b3JhZ2VEaXJlY3RvcnkucGF0aCwgQCJfQ3VzdG9tIl1dOworICAgIGF1dG8gZGF0
YVN0b3JlMSA9IGFkb3B0TlMoW1tXS1dlYnNpdGVEYXRhU3RvcmUgYWxsb2NdIF9pbml0V2l0aENv
bmZpZ3VyYXRpb246ZGF0YVN0b3JlQ29uZmlndXJhdGlvbi5nZXQoKV0pOworICAgIGRhdGFTdG9y
ZUNvbmZpZ3VyYXRpb24uZ2V0KCkuZ2VuZXJhbFN0b3JhZ2VEaXJlY3RvcnkgPSBjdXN0b21HZW5l
cmFsU3RvcmFnZURpcmVjdG9yeTsKKyAgICBhdXRvIGRhdGFTdG9yZTIgPSBhZG9wdE5TKFtbV0tX
ZWJzaXRlRGF0YVN0b3JlIGFsbG9jXSBfaW5pdFdpdGhDb25maWd1cmF0aW9uOmRhdGFTdG9yZUNv
bmZpZ3VyYXRpb24uZ2V0KCldKTsKIAogICAgIFtkYXRhU3RvcmUxIF9zZXRSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzRW5hYmxlZDpZRVNdOwogICAgIFtkYXRhU3RvcmUyIF9zZXRSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzRW5hYmxlZDpZRVNdOwogCiAgICAgYXV0byBjb25maWd1cmF0aW9uMSA9IGFkb3B0
TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CiAgICAgW2NvbmZpZ3Vy
YXRpb24xIHNldFByb2Nlc3NQb29sOiBzaGFyZWRQcm9jZXNzUG9vbF07Ci0gICAgY29uZmlndXJh
dGlvbjEuZ2V0KCkud2Vic2l0ZURhdGFTdG9yZSA9IGRhdGFTdG9yZTE7CisgICAgY29uZmlndXJh
dGlvbjEuZ2V0KCkud2Vic2l0ZURhdGFTdG9yZSA9IGRhdGFTdG9yZTEuZ2V0KCk7CiAKICAgICBh
dXRvIGNvbmZpZ3VyYXRpb24yID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxs
b2NdIGluaXRdKTsKICAgICBbY29uZmlndXJhdGlvbjIgc2V0UHJvY2Vzc1Bvb2w6IHNoYXJlZFBy
b2Nlc3NQb29sXTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Q29jb2EvV2ViUHVzaERhZW1vbi5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Q29jb2EvV2ViUHVzaERhZW1vbi5tbQppbmRleCA5YmU1YTIwYTBjMGI4NDU3NDQ3NmMxMTkwMTk0
ZDI5MjljNmE3NjcyLi4wZGUwOWRjNmI0OGI3ZTEyZThjY2UzNDllMjgzYjgzNjlkODAwMTFkIDEw
MDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dlYlB1c2hE
YWVtb24ubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XZWJQ
dXNoRGFlbW9uLm1tCkBAIC0zOTAsNyArMzkwLDcgQEAgVEVTVChXZWJQdXNoRCwgUGVybWlzc2lv
bk1hbmFnZW1lbnQpCiBzdGF0aWMgdm9pZCBjbGVhcldlYnNpdGVEYXRhU3RvcmUoV0tXZWJzaXRl
RGF0YVN0b3JlICpzdG9yZSkKIHsKICAgICBfX2Jsb2NrIGJvb2wgY2xlYXJlZFN0b3JlID0gZmFs
c2U7Ci0gICAgW1tXS1dlYnNpdGVEYXRhU3RvcmUgZGVmYXVsdERhdGFTdG9yZV0gcmVtb3ZlRGF0
YU9mVHlwZXM6W1dLV2Vic2l0ZURhdGFTdG9yZSBhbGxXZWJzaXRlRGF0YVR5cGVzXSBtb2RpZmll
ZFNpbmNlOltOU0RhdGUgZGlzdGFudFBhc3RdIGNvbXBsZXRpb25IYW5kbGVyOl4oKSB7CisgICAg
W3N0b3JlIHJlbW92ZURhdGFPZlR5cGVzOltXS1dlYnNpdGVEYXRhU3RvcmUgYWxsV2Vic2l0ZURh
dGFUeXBlc10gbW9kaWZpZWRTaW5jZTpbTlNEYXRlIGRpc3RhbnRQYXN0XSBjb21wbGV0aW9uSGFu
ZGxlcjpeKCkgewogICAgICAgICBjbGVhcmVkU3RvcmUgPSB0cnVlOwogICAgIH1dOwogICAgIFRl
c3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmY2xlYXJlZFN0b3JlKTsKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV2Vic2l0ZURhdGFTdG9yZUN1c3RvbVBh
dGhzLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XZWJzaXRlRGF0
YVN0b3JlQ3VzdG9tUGF0aHMubW0KaW5kZXggNTY3NTkxOTNlNTQ3NTlmMWJjYzgwMzlkOWMxZDA1
N2JlZmQzMDg1Mi4uOGU0N2FiOTgwYWNkZmM2ZTE1MzgwODhiM2VjNzk3MWVlMGI5YzczMyAxMDA2
NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XZWJzaXRlRGF0
YVN0b3JlQ3VzdG9tUGF0aHMubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS9XZWJzaXRlRGF0YVN0b3JlQ3VzdG9tUGF0aHMubW0KQEAgLTE4Nyw4MyArMTg3LDY3
IEBAIHN0YXRpYyB2b2lkIHJ1bldlYnNpdGVEYXRhU3RvcmVDdXN0b21QYXRocyhTaG91bGRFbmFi
bGVQcm9jZXNzUHJld2FybWluZyBzaG91bGRFCiAgICAgUmV0YWluUHRyPE5TVVJMPiBmaWxlSURC
UGF0aCA9IFtbaWRiUGF0aCBVUkxCeUFwcGVuZGluZ1BhdGhDb21wb25lbnQ6QCJ2MSJdIFVSTEJ5
QXBwZW5kaW5nUGF0aENvbXBvbmVudDpAImZpbGVfXzAiXTsKICAgICBFWFBFQ1RfVFJVRShbW05T
RmlsZU1hbmFnZXIgZGVmYXVsdE1hbmFnZXJdIGZpbGVFeGlzdHNBdFBhdGg6ZmlsZUlEQlBhdGgu
Z2V0KCkucGF0aF0pOwogCi0gICAgYXV0byBkYXRhU3RvcmUgPSBhZG9wdE5TKFtbV0tXZWJzaXRl
RGF0YVN0b3JlIGFsbG9jXSBfaW5pdFdpdGhDb25maWd1cmF0aW9uOndlYnNpdGVEYXRhU3RvcmVD
b25maWd1cmF0aW9uLmdldCgpXSk7Ci0gICAgUmV0YWluUHRyPE5TU2V0PiB0eXBlcyA9IGFkb3B0
TlMoW1tOU1NldCBhbGxvY10gaW5pdFdpdGhPYmplY3RzOldLV2Vic2l0ZURhdGFUeXBlSW5kZXhl
ZERCRGF0YWJhc2VzLCBuaWxdKTsKLQotICAgIC8vIFN1YmZyYW1lIG9mIGRpZmZlcmVudCBvcmln
aW5zIG1heSBhbHNvIGNyZWF0ZSBJbmRleGVkREIgZmlsZXMuCi0gICAgUmV0YWluUHRyPE5TVVJM
PiB1cmwxID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIkluZGV4ZWRE
QiIgd2l0aEV4dGVuc2lvbjpAInNxbGl0ZTMiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEku
cmVzb3VyY2VzIl07Ci0gICAgUmV0YWluUHRyPE5TVVJMPiB1cmwyID0gW1tOU0J1bmRsZSBtYWlu
QnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIkluZGV4ZWREQiIgd2l0aEV4dGVuc2lvbjpAInNxbGl0
ZTMtc2htIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdOwotICAgIFJl
dGFpblB0cjxOU1VSTD4gdXJsMyA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3Vy
Y2U6QCJJbmRleGVkREIiIHdpdGhFeHRlbnNpb246QCJzcWxpdGUzLXdhbCIgc3ViZGlyZWN0b3J5
OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKLQotICAgIFJldGFpblB0cjxOU1VSTD4gZnJh
bWVJREJQYXRoID0gW1tmaWxlSURCUGF0aCBVUkxCeUFwcGVuZGluZ1BhdGhDb21wb25lbnQ6QCJo
dHRwc19hcHBsZS5jb21fMCJdIFVSTEJ5QXBwZW5kaW5nUGF0aENvbXBvbmVudDpAIldlYnNpdGVE
YXRhU3RvcmVDdXN0b21QYXRocyJdOwotICAgIFtbTlNGaWxlTWFuYWdlciBkZWZhdWx0TWFuYWdl
cl0gY3JlYXRlRGlyZWN0b3J5QXRVUkw6ZnJhbWVJREJQYXRoLmdldCgpIHdpdGhJbnRlcm1lZGlh
dGVEaXJlY3RvcmllczpZRVMgYXR0cmlidXRlczpuaWwgZXJyb3I6bmlsXTsKLQotICAgIFtbTlNG
aWxlTWFuYWdlciBkZWZhdWx0TWFuYWdlcl0gY29weUl0ZW1BdFVSTDp1cmwxLmdldCgpIHRvVVJM
OltmcmFtZUlEQlBhdGguZ2V0KCkgVVJMQnlBcHBlbmRpbmdQYXRoQ29tcG9uZW50OkAiSW5kZXhl
ZERCLnNxbGl0ZTMiXSBlcnJvcjpuaWxdOwotICAgIFtbTlNGaWxlTWFuYWdlciBkZWZhdWx0TWFu
YWdlcl0gY29weUl0ZW1BdFVSTDp1cmwyLmdldCgpIHRvVVJMOltmcmFtZUlEQlBhdGguZ2V0KCkg
VVJMQnlBcHBlbmRpbmdQYXRoQ29tcG9uZW50OkAiSW5kZXhlZERCLnNxbGl0ZTMtc2htIl0gZXJy
b3I6bmlsXTsKLSAgICBbW05TRmlsZU1hbmFnZXIgZGVmYXVsdE1hbmFnZXJdIGNvcHlJdGVtQXRV
Ukw6dXJsMy5nZXQoKSB0b1VSTDpbZnJhbWVJREJQYXRoLmdldCgpIFVSTEJ5QXBwZW5kaW5nUGF0
aENvbXBvbmVudDpAIkluZGV4ZWREQi5zcWxpdGUzLXdhbCJdIGVycm9yOm5pbF07Ci0KLSAgICBS
ZXRhaW5QdHI8TlNVUkw+IGZyYW1lSURCUGF0aDIgPSBbW2ZpbGVJREJQYXRoIFVSTEJ5QXBwZW5k
aW5nUGF0aENvbXBvbmVudDpAImh0dHBzX3dlYmtpdC5vcmdfMCJdIFVSTEJ5QXBwZW5kaW5nUGF0
aENvbXBvbmVudDpAIldlYnNpdGVEYXRhU3RvcmVDdXN0b21QYXRocyJdOwotICAgIFtbTlNGaWxl
TWFuYWdlciBkZWZhdWx0TWFuYWdlcl0gY3JlYXRlRGlyZWN0b3J5QXRVUkw6ZnJhbWVJREJQYXRo
Mi5nZXQoKSB3aXRoSW50ZXJtZWRpYXRlRGlyZWN0b3JpZXM6WUVTIGF0dHJpYnV0ZXM6bmlsIGVy
cm9yOm5pbF07Ci0KLSAgICBbW05TRmlsZU1hbmFnZXIgZGVmYXVsdE1hbmFnZXJdIGNvcHlJdGVt
QXRVUkw6dXJsMS5nZXQoKSB0b1VSTDpbZnJhbWVJREJQYXRoMi5nZXQoKSBVUkxCeUFwcGVuZGlu
Z1BhdGhDb21wb25lbnQ6QCJJbmRleGVkREIuc3FsaXRlMyJdIGVycm9yOm5pbF07Ci0gICAgW1tO
U0ZpbGVNYW5hZ2VyIGRlZmF1bHRNYW5hZ2VyXSBjb3B5SXRlbUF0VVJMOnVybDIuZ2V0KCkgdG9V
Ukw6W2ZyYW1lSURCUGF0aDIuZ2V0KCkgVVJMQnlBcHBlbmRpbmdQYXRoQ29tcG9uZW50OkAiSW5k
ZXhlZERCLnNxbGl0ZTMtc2htIl0gZXJyb3I6bmlsXTsKLSAgICBbW05TRmlsZU1hbmFnZXIgZGVm
YXVsdE1hbmFnZXJdIGNvcHlJdGVtQXRVUkw6dXJsMy5nZXQoKSB0b1VSTDpbZnJhbWVJREJQYXRo
Mi5nZXQoKSBVUkxCeUFwcGVuZGluZ1BhdGhDb21wb25lbnQ6QCJJbmRleGVkREIuc3FsaXRlMy13
YWwiXSBlcnJvcjpuaWxdOwotCi0gICAgW2RhdGFTdG9yZSBmZXRjaERhdGFSZWNvcmRzT2ZUeXBl
czp0eXBlcy5nZXQoKSBjb21wbGV0aW9uSGFuZGxlcjpeKE5TQXJyYXk8V0tXZWJzaXRlRGF0YVJl
Y29yZCAqPiAqIHJlY29yZHMpIHsKLSAgICAgICAgRVhQRUNUX0VRKFtyZWNvcmRzIGNvdW50XSwg
KHVuc2lnbmVkIGxvbmcpMyk7Ci0gICAgICAgIGZvciAoaWQgcmVjb3JkIGluIHJlY29yZHMpIHsK
LSAgICAgICAgICAgIGlmIChbW3JlY29yZCBkaXNwbGF5TmFtZV0gaXNFcXVhbDogQCJhcHBsZS5j
b20iXSkgewotICAgICAgICAgICAgICAgIFtkYXRhU3RvcmUgcmVtb3ZlRGF0YU9mVHlwZXM6dHlw
ZXMuZ2V0KCkgZm9yRGF0YVJlY29yZHM6QFtyZWNvcmRdIGNvbXBsZXRpb25IYW5kbGVyOl4oKSB7
Ci0gICAgICAgICAgICAgICAgICAgIHJlY2VpdmVkU2NyaXB0TWVzc2FnZSA9IHRydWU7Ci0gICAg
ICAgICAgICAgICAgICAgIEVYUEVDVF9GQUxTRShbW05TRmlsZU1hbmFnZXIgZGVmYXVsdE1hbmFn
ZXJdIGZpbGVFeGlzdHNBdFBhdGg6ZnJhbWVJREJQYXRoLmdldCgpLnBhdGhdKTsKLSAgICAgICAg
ICAgICAgICB9XTsKKyAgICBAYXV0b3JlbGVhc2Vwb29sIHsKKyAgICAgICAgYXV0byBkYXRhU3Rv
cmUgPSBhZG9wdE5TKFtbV0tXZWJzaXRlRGF0YVN0b3JlIGFsbG9jXSBfaW5pdFdpdGhDb25maWd1
cmF0aW9uOndlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmdldCgpXSk7CisgICAgICAgIFJl
dGFpblB0cjxOU1NldD4gdHlwZXMgPSBhZG9wdE5TKFtbTlNTZXQgYWxsb2NdIGluaXRXaXRoT2Jq
ZWN0czpXS1dlYnNpdGVEYXRhVHlwZUluZGV4ZWREQkRhdGFiYXNlcywgbmlsXSk7CisKKyAgICAg
ICAgLy8gU3ViZnJhbWUgb2YgZGlmZmVyZW50IG9yaWdpbnMgbWF5IGFsc28gY3JlYXRlIEluZGV4
ZWREQiBmaWxlcy4KKyAgICAgICAgUmV0YWluUHRyPE5TVVJMPiB1cmwxID0gW1tOU0J1bmRsZSBt
YWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIkluZGV4ZWREQiIgd2l0aEV4dGVuc2lvbjpAInNx
bGl0ZTMiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CisgICAgICAg
IFJldGFpblB0cjxOU1VSTD4gdXJsMiA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVz
b3VyY2U6QCJJbmRleGVkREIiIHdpdGhFeHRlbnNpb246QCJzcWxpdGUzLXNobSIgc3ViZGlyZWN0
b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKKyAgICAgICAgUmV0YWluUHRyPE5TVVJM
PiB1cmwzID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIkluZGV4ZWRE
QiIgd2l0aEV4dGVuc2lvbjpAInNxbGl0ZTMtd2FsIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0
QVBJLnJlc291cmNlcyJdOworCisgICAgICAgIFJldGFpblB0cjxOU1VSTD4gZnJhbWVJREJQYXRo
ID0gW1tmaWxlSURCUGF0aCBVUkxCeUFwcGVuZGluZ1BhdGhDb21wb25lbnQ6QCJodHRwc19hcHBs
ZS5jb21fMCJdIFVSTEJ5QXBwZW5kaW5nUGF0aENvbXBvbmVudDpAIldlYnNpdGVEYXRhU3RvcmVD
dXN0b21QYXRocyJdOworICAgICAgICBbW05TRmlsZU1hbmFnZXIgZGVmYXVsdE1hbmFnZXJdIGNy
ZWF0ZURpcmVjdG9yeUF0VVJMOmZyYW1lSURCUGF0aC5nZXQoKSB3aXRoSW50ZXJtZWRpYXRlRGly
ZWN0b3JpZXM6WUVTIGF0dHJpYnV0ZXM6bmlsIGVycm9yOm5pbF07CisKKyAgICAgICAgW1tOU0Zp
bGVNYW5hZ2VyIGRlZmF1bHRNYW5hZ2VyXSBjb3B5SXRlbUF0VVJMOnVybDEuZ2V0KCkgdG9VUkw6
W2ZyYW1lSURCUGF0aC5nZXQoKSBVUkxCeUFwcGVuZGluZ1BhdGhDb21wb25lbnQ6QCJJbmRleGVk
REIuc3FsaXRlMyJdIGVycm9yOm5pbF07CisgICAgICAgIFtbTlNGaWxlTWFuYWdlciBkZWZhdWx0
TWFuYWdlcl0gY29weUl0ZW1BdFVSTDp1cmwyLmdldCgpIHRvVVJMOltmcmFtZUlEQlBhdGguZ2V0
KCkgVVJMQnlBcHBlbmRpbmdQYXRoQ29tcG9uZW50OkAiSW5kZXhlZERCLnNxbGl0ZTMtc2htIl0g
ZXJyb3I6bmlsXTsKKyAgICAgICAgW1tOU0ZpbGVNYW5hZ2VyIGRlZmF1bHRNYW5hZ2VyXSBjb3B5
SXRlbUF0VVJMOnVybDMuZ2V0KCkgdG9VUkw6W2ZyYW1lSURCUGF0aC5nZXQoKSBVUkxCeUFwcGVu
ZGluZ1BhdGhDb21wb25lbnQ6QCJJbmRleGVkREIuc3FsaXRlMy13YWwiXSBlcnJvcjpuaWxdOwor
CisgICAgICAgIFJldGFpblB0cjxOU1VSTD4gZnJhbWVJREJQYXRoMiA9IFtbZmlsZUlEQlBhdGgg
VVJMQnlBcHBlbmRpbmdQYXRoQ29tcG9uZW50OkAiaHR0cHNfd2Via2l0Lm9yZ18wIl0gVVJMQnlB
cHBlbmRpbmdQYXRoQ29tcG9uZW50OkAiV2Vic2l0ZURhdGFTdG9yZUN1c3RvbVBhdGhzIl07Cisg
ICAgICAgIFtbTlNGaWxlTWFuYWdlciBkZWZhdWx0TWFuYWdlcl0gY3JlYXRlRGlyZWN0b3J5QXRV
Ukw6ZnJhbWVJREJQYXRoMi5nZXQoKSB3aXRoSW50ZXJtZWRpYXRlRGlyZWN0b3JpZXM6WUVTIGF0
dHJpYnV0ZXM6bmlsIGVycm9yOm5pbF07CisKKyAgICAgICAgW1tOU0ZpbGVNYW5hZ2VyIGRlZmF1
bHRNYW5hZ2VyXSBjb3B5SXRlbUF0VVJMOnVybDEuZ2V0KCkgdG9VUkw6W2ZyYW1lSURCUGF0aDIu
Z2V0KCkgVVJMQnlBcHBlbmRpbmdQYXRoQ29tcG9uZW50OkAiSW5kZXhlZERCLnNxbGl0ZTMiXSBl
cnJvcjpuaWxdOworICAgICAgICBbW05TRmlsZU1hbmFnZXIgZGVmYXVsdE1hbmFnZXJdIGNvcHlJ
dGVtQXRVUkw6dXJsMi5nZXQoKSB0b1VSTDpbZnJhbWVJREJQYXRoMi5nZXQoKSBVUkxCeUFwcGVu
ZGluZ1BhdGhDb21wb25lbnQ6QCJJbmRleGVkREIuc3FsaXRlMy1zaG0iXSBlcnJvcjpuaWxdOwor
ICAgICAgICBbW05TRmlsZU1hbmFnZXIgZGVmYXVsdE1hbmFnZXJdIGNvcHlJdGVtQXRVUkw6dXJs
My5nZXQoKSB0b1VSTDpbZnJhbWVJREJQYXRoMi5nZXQoKSBVUkxCeUFwcGVuZGluZ1BhdGhDb21w
b25lbnQ6QCJJbmRleGVkREIuc3FsaXRlMy13YWwiXSBlcnJvcjpuaWxdOworCisgICAgICAgIFtk
YXRhU3RvcmUgZmV0Y2hEYXRhUmVjb3Jkc09mVHlwZXM6dHlwZXMuZ2V0KCkgY29tcGxldGlvbkhh
bmRsZXI6XihOU0FycmF5PFdLV2Vic2l0ZURhdGFSZWNvcmQgKj4gKiByZWNvcmRzKSB7CisgICAg
ICAgICAgICBFWFBFQ1RfRVEoW3JlY29yZHMgY291bnRdLCAodW5zaWduZWQgbG9uZykzKTsKKyAg
ICAgICAgICAgIGZvciAoaWQgcmVjb3JkIGluIHJlY29yZHMpIHsKKyAgICAgICAgICAgICAgICBp
ZiAoW1tyZWNvcmQgZGlzcGxheU5hbWVdIGlzRXF1YWw6IEAiYXBwbGUuY29tIl0pIHsKKyAgICAg
ICAgICAgICAgICAgICAgW2RhdGFTdG9yZSByZW1vdmVEYXRhT2ZUeXBlczp0eXBlcy5nZXQoKSBm
b3JEYXRhUmVjb3JkczpAW3JlY29yZF0gY29tcGxldGlvbkhhbmRsZXI6XigpIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHJlY2VpdmVkU2NyaXB0TWVzc2FnZSA9IHRydWU7CisgICAgICAgICAg
ICAgICAgICAgICAgICBFWFBFQ1RfRkFMU0UoW1tOU0ZpbGVNYW5hZ2VyIGRlZmF1bHRNYW5hZ2Vy
XSBmaWxlRXhpc3RzQXRQYXRoOmZyYW1lSURCUGF0aC5nZXQoKS5wYXRoXSk7CisgICAgICAgICAg
ICAgICAgICAgIH1dOworICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KLSAgICAgICAg
fQotICAgIH1dOwotICAgIHJlY2VpdmVkU2NyaXB0TWVzc2FnZSA9IGZhbHNlOwotICAgIFRlc3RX
ZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVjZWl2ZWRTY3JpcHRNZXNzYWdlKTsKKyAgICAgICAgfV07
CisgICAgICAgIHJlY2VpdmVkU2NyaXB0TWVzc2FnZSA9IGZhbHNlOworICAgICAgICBUZXN0V2Vi
S2l0QVBJOjpVdGlsOjpydW4oJnJlY2VpdmVkU2NyaXB0TWVzc2FnZSk7CiAKLSAgICBbZGF0YVN0
b3JlIHJlbW92ZURhdGFPZlR5cGVzOnR5cGVzLmdldCgpIG1vZGlmaWVkU2luY2U6W05TRGF0ZSBk
aXN0YW50UGFzdF0gY29tcGxldGlvbkhhbmRsZXI6W10oKSB7Ci0gICAgICAgIHJlY2VpdmVkU2Ny
aXB0TWVzc2FnZSA9IHRydWU7Ci0gICAgfV07Ci0gICAgcmVjZWl2ZWRTY3JpcHRNZXNzYWdlID0g
ZmFsc2U7Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWNlaXZlZFNjcmlwdE1lc3Nh
Z2UpOworICAgICAgICBbZGF0YVN0b3JlIHJlbW92ZURhdGFPZlR5cGVzOnR5cGVzLmdldCgpIG1v
ZGlmaWVkU2luY2U6W05TRGF0ZSBkaXN0YW50UGFzdF0gY29tcGxldGlvbkhhbmRsZXI6W10oKSB7
CisgICAgICAgICAgICByZWNlaXZlZFNjcmlwdE1lc3NhZ2UgPSB0cnVlOworICAgICAgICB9XTsK
KyAgICAgICAgcmVjZWl2ZWRTY3JpcHRNZXNzYWdlID0gZmFsc2U7CisgICAgICAgIFRlc3RXZWJL
aXRBUEk6OlV0aWw6OnJ1bigmcmVjZWl2ZWRTY3JpcHRNZXNzYWdlKTsKIAotICAgIEVYUEVDVF9G
QUxTRShbW05TRmlsZU1hbmFnZXIgZGVmYXVsdE1hbmFnZXJdIGZpbGVFeGlzdHNBdFBhdGg6Zmls
ZUlEQlBhdGguZ2V0KCkucGF0aF0pOworICAgICAgICBFWFBFQ1RfRkFMU0UoW1tOU0ZpbGVNYW5h
Z2VyIGRlZmF1bHRNYW5hZ2VyXSBmaWxlRXhpc3RzQXRQYXRoOmZpbGVJREJQYXRoLmdldCgpLnBh
dGhdKTsKIAotICAgIC8vIE5vdywgd2l0aCBicmFuZCBuZXcgV0tXZWJzaXRlRGF0YVN0b3JlcyBw
b2ludGluZyBhdCB0aGUgc2FtZSBjdXN0b20gY29va2llIHN0b3JhZ2UgbG9jYXRpb24sCi0gICAg
Ly8gaW4gbmV3bHkgZmlyZWQgdXAgTmV0d29ya1Byb2Nlc3NlcywgdmVyaWZ5IHRoYXQgdGhlIGZl
dGNoIGFuZCBkZWxldGUgQVBJcyB3b3JrIGFzIGV4cGVjdGVkLgorICAgICAgICAvLyBOb3csIHdp
dGggYnJhbmQgbmV3IFdLV2Vic2l0ZURhdGFTdG9yZXMgcG9pbnRpbmcgYXQgdGhlIHNhbWUgY3Vz
dG9tIGNvb2tpZSBzdG9yYWdlIGxvY2F0aW9uLAorICAgICAgICAvLyBpbiBuZXdseSBmaXJlZCB1
cCBOZXR3b3JrUHJvY2Vzc2VzLCB2ZXJpZnkgdGhhdCB0aGUgZmV0Y2ggYW5kIGRlbGV0ZSBBUElz
IHdvcmsgYXMgZXhwZWN0ZWQuCisgICAgICAgIFtkYXRhU3RvcmUgX3Rlcm1pbmF0ZU5ldHdvcmtQ
cm9jZXNzXTsKKyAgICB9CiAKLSAgICBbZGF0YVN0b3JlIF90ZXJtaW5hdGVOZXR3b3JrUHJvY2Vz
c107CiAgICAgYXV0byBuZXdDdXN0b21EYXRhU3RvcmUgPSBhZG9wdE5TKFtbV0tXZWJzaXRlRGF0
YVN0b3JlIGFsbG9jXSBfaW5pdFdpdGhDb25maWd1cmF0aW9uOndlYnNpdGVEYXRhU3RvcmVDb25m
aWd1cmF0aW9uLmdldCgpXSk7Ci0KICAgICBbbmV3Q3VzdG9tRGF0YVN0b3JlIGZldGNoRGF0YVJl
Y29yZHNPZlR5cGVzOltOU1NldCBzZXRXaXRoT2JqZWN0czpXS1dlYnNpdGVEYXRhVHlwZUNvb2tp
ZXMsIG5pbF0gY29tcGxldGlvbkhhbmRsZXI6XihOU0FycmF5PFdLV2Vic2l0ZURhdGFSZWNvcmQg
Kj4gKiByZWNvcmRzKSB7CiAgICAgICAgIEVYUEVDVF9HVChbcmVjb3JkcyBjb3VudF0sICh1bnNp
Z25lZCBsb25nKTApOwogICAgICAgICByZWNlaXZlZFNjcmlwdE1lc3NhZ2UgPSB0cnVlOwogICAg
IH1dOwotCiAgICAgcmVjZWl2ZWRTY3JpcHRNZXNzYWdlID0gZmFsc2U7CiAgICAgVGVzdFdlYktp
dEFQSTo6VXRpbDo6cnVuKCZyZWNlaXZlZFNjcmlwdE1lc3NhZ2UpOwogCi0gICAgW2RhdGFTdG9y
ZSBfdGVybWluYXRlTmV0d29ya1Byb2Nlc3NdOwotICAgIG5ld0N1c3RvbURhdGFTdG9yZSA9IGFk
b3B0TlMoW1tXS1dlYnNpdGVEYXRhU3RvcmUgYWxsb2NdIF9pbml0V2l0aENvbmZpZ3VyYXRpb246
d2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uZ2V0KCldKTsKLQogICAgIFtuZXdDdXN0b21E
YXRhU3RvcmUgcmVtb3ZlRGF0YU9mVHlwZXM6W05TU2V0IHNldFdpdGhPYmplY3RzOldLV2Vic2l0
ZURhdGFUeXBlQ29va2llcywgbmlsXSBtb2RpZmllZFNpbmNlOltOU0RhdGUgZGlzdGFudFBhc3Rd
IGNvbXBsZXRpb25IYW5kbGVyOl4gewogICAgICAgICByZWNlaXZlZFNjcmlwdE1lc3NhZ2UgPSB0
cnVlOwogICAgIH1dOwotCi0gICAgcmVjZWl2ZWRTY3JpcHRNZXNzYWdlID0gZmFsc2U7Ci0gICAg
VGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWNlaXZlZFNjcmlwdE1lc3NhZ2UpOwotCi0gICAg
Ly8gVGhpcyB0aW1lLCByZXVzZSB0aGUgc2FtZSBuZXR3b3JrIHByb2Nlc3MgYnV0IHN0aWxsIGRv
IGEgbmV3IHdlYnNpdGVkYXRhc3RvcmUsIHRvIG1ha2Ugc3VyZSBldmVuIGFuIGV4aXN0aW5nIG5l
dHdvcmsgcHJvY2VzcwotICAgIC8vIGdldHMgdGhlIG5ldyBkYXRhc3RvcmUuCi0gICAgbmV3Q3Vz
dG9tRGF0YVN0b3JlID0gYWRvcHROUyhbW1dLV2Vic2l0ZURhdGFTdG9yZSBhbGxvY10gX2luaXRX
aXRoQ29uZmlndXJhdGlvbjp3ZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5nZXQoKV0pOwot
Ci0gICAgW25ld0N1c3RvbURhdGFTdG9yZSBmZXRjaERhdGFSZWNvcmRzT2ZUeXBlczpbTlNTZXQg
c2V0V2l0aE9iamVjdHM6V0tXZWJzaXRlRGF0YVR5cGVDb29raWVzLCBuaWxdIGNvbXBsZXRpb25I
YW5kbGVyOl4oTlNBcnJheTxXS1dlYnNpdGVEYXRhUmVjb3JkICo+ICogcmVjb3JkcykgewotICAg
ICAgICBFWFBFQ1RfRVEoW3JlY29yZHMgY291bnRdLCAodW5zaWduZWQgbG9uZykwKTsKLSAgICAg
ICAgcmVjZWl2ZWRTY3JpcHRNZXNzYWdlID0gdHJ1ZTsKLSAgICB9XTsKLQogICAgIHJlY2VpdmVk
U2NyaXB0TWVzc2FnZSA9IGZhbHNlOwogICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVj
ZWl2ZWRTY3JpcHRNZXNzYWdlKTsKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>