<?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>232363</bug_id>
          
          <creation_ts>2021-10-26 20:10:10 -0700</creation_ts>
          <short_desc>Release FileSystemStorageHandle when it is not in use</short_desc>
          <delta_ts>2021-10-29 10:53:27 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>231706</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Sihui Liu">sihui_liu</reporter>
          <assigned_to name="Sihui Liu">sihui_liu</assigned_to>
          <cc>ayumi_kojima</cc>
    
    <cc>sihui_liu</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1809169</commentid>
    <comment_count>0</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-10-26 20:10:10 -0700</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1809175</commentid>
    <comment_count>1</comment_count>
      <attachid>442564</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-10-26 20:16:38 -0700</bug_when>
    <thetext>Created attachment 442564
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1809187</commentid>
    <comment_count>2</comment_count>
      <attachid>442570</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-10-26 22:58:36 -0700</bug_when>
    <thetext>Created attachment 442570
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1809274</commentid>
    <comment_count>3</comment_count>
      <attachid>442596</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-10-27 09:23:55 -0700</bug_when>
    <thetext>Created attachment 442596
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1809723</commentid>
    <comment_count>4</comment_count>
      <attachid>442596</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-10-28 09:58:19 -0700</bug_when>
    <thetext>Comment on attachment 442596
Patch

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

&gt; Source/WebCore/Modules/filesystemaccess/FileSystemFileHandle.cpp:69
&gt; +            FileSystem::closeFile(file);

If we need to do it there, we might have an issue as this task might be scheduled but never executed.
Maybe we should have a result that, if destroyed and its file is valid, would call closeFile whatever.

&gt; Source/WebCore/Modules/filesystemaccess/WorkerFileSystemStorageConnection.cpp:81
&gt; +        return;

If we do not have a scope, shouldn&apos;t we still call closeHandle?

&gt; Source/WebCore/Modules/storage/StorageManager.cpp:125
&gt; +            connection-&gt;closeHandle(identifier);

Ditto here, should we call closeHandle if the task is not executed?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1809878</commentid>
    <comment_count>5</comment_count>
      <attachid>442757</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-10-28 15:46:21 -0700</bug_when>
    <thetext>Created attachment 442757
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1809904</commentid>
    <comment_count>6</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-10-28 16:46:29 -0700</bug_when>
    <thetext>Committed r285007 (243653@main): &lt;https://commits.webkit.org/243653@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 442757.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1809905</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-10-28 16:47:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/84784824&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1810090</commentid>
    <comment_count>8</comment_count>
    <who name="">ayumi_kojima</who>
    <bug_when>2021-10-29 08:47:36 -0700</bug_when>
    <thetext>Reverted r285007 for reason:

Reverting r285007 because it caused storage/filesystemaccess/sync-access-handle-basics-worker.html to constantly fail.

Committed r285030 (243674@main): &lt;https://commits.webkit.org/243674@main&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1810128</commentid>
    <comment_count>9</comment_count>
      <attachid>442834</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-10-29 10:16:36 -0700</bug_when>
    <thetext>Created attachment 442834
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1810138</commentid>
    <comment_count>10</comment_count>
      <attachid>442834</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-10-29 10:23:48 -0700</bug_when>
    <thetext>Comment on attachment 442834
Patch for landing

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

Re-landing patch after making a small change to the test file.

&gt; LayoutTests/storage/filesystemaccess/resources/sync-access-handle-basics.js:23
&gt; +        }, () =&gt; {
&gt; +            createFileHandle(rootHandle);

This old patch exits early here. The removeEntry() means to clean up existing test file if it exists. If the file does not exist, removeEntry may throw error, and it&apos;s fine to continue test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1810162</commentid>
    <comment_count>11</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-10-29 10:53:26 -0700</bug_when>
    <thetext>Committed r285041 (243685@main): &lt;https://commits.webkit.org/243685@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 442834.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>442564</attachid>
            <date>2021-10-26 20:16:38 -0700</date>
            <delta_ts>2021-10-26 22:58:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232363-20211026201637.patch</filename>
            <type>text/plain</type>
            <size>32903</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0OTAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGYzMGRjMDJhMzc1NTE1
YWE3NWNlZTIxYmE4YWUxNzE1MmIyMjYwMC4uNDU2ZGQzNzFlZDY4NjU3ZThkNDY0MDBjOTEzNzRi
YzlhNzYwZjEwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDIxLTEwLTI2ICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIFJlbGVhc2UgRmlsZVN5c3Rl
bVN0b3JhZ2VIYW5kbGUgd2hlbiBpdCBpcyBub3QgaW4gdXNlCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzIzNjMKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXaGVuIEZpbGVTeXN0ZW1IYW5kbGUgaXMgZGVz
dHJveWVkLCBpdHMgY29ycmVzcG9uZGluZyBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZSBzaG91bGQg
YmUgZGVzdHJveWVkIGFzIGl0IHNob3VsZAorICAgICAgICBub3QgYmUgdXNlZCBhZ2Fpbi4gQWxz
bywgc3RvcCBjcmVhdGluZyBhIG5ldyBGaWxlU3lzdGVtSGFuZGxlIG9yIEZpbGVTeXN0ZW1TeW5j
QWNjZXNzSGFuZGxlIGlmIGNvbnRleHQgYWxyZWFkeSAKKyAgICAgICAgc3RvcHMuCisKKyAgICAg
ICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlOjpjcmVhdGUp
OgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZTo6RmlsZVN5c3Rl
bURpcmVjdG9yeUhhbmRsZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtRGlyZWN0b3J5
SGFuZGxlOjpnZXRGaWxlSGFuZGxlKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1EaXJl
Y3RvcnlIYW5kbGU6OmdldERpcmVjdG9yeUhhbmRsZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxl
U3lzdGVtRGlyZWN0b3J5SGFuZGxlOjpnZXRIYW5kbGUpOgorICAgICAgICAqIE1vZHVsZXMvZmls
ZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlLmg6CisgICAgICAgICogTW9k
dWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29y
ZTo6RmlsZVN5c3RlbUZpbGVIYW5kbGU6OkZpbGVTeXN0ZW1GaWxlSGFuZGxlKToKKyAgICAgICAg
KFdlYkNvcmU6OkZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKToK
KyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUu
aDoKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUhhbmRsZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlOjpGaWxlU3lzdGVtSGFuZGxl
KToKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUhhbmRsZS5o
OgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb24uaDoKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3Rl
bVN5bmNBY2Nlc3NIYW5kbGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNB
Y2Nlc3NIYW5kbGU6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0Fj
Y2Vzc0hhbmRsZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUpOgorICAgICAgICAqIE1vZHVs
ZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5oOgorICAgICAg
ICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5l
Y3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25u
ZWN0aW9uOjpjbG9zZUhhbmRsZSk6CisgICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNz
L1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oOgorICAgICAgICAqIE1vZHVsZXMv
c3RvcmFnZS9TdG9yYWdlTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdG9yYWdlTWFu
YWdlcjo6ZmlsZVN5c3RlbUFjY2Vzc0dldERpcmVjdG9yeSk6CisKIDIwMjEtMTAtMjYgIFNpaHVp
IExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CiAKICAgICAgICAgRmlsZVN5c3RlbUhhbmRsZSBz
aG91bGQgYmUgQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggZWYzNzQzZDA0
OTZhZDJhNzkxNjBiOTIxNDM3MTgxNjdlYzgyMTUxNy4uYzE0ODM3YzFlZmMyNTQ2MzAxNWQ1ZTdj
NTFjMGM2YzUyMTNlOTg3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAyMS0xMC0yNiAg
U2lodWkgTGl1ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4KKworICAgICAgICBSZWxlYXNlIEZpbGVT
eXN0ZW1TdG9yYWdlSGFuZGxlIHdoZW4gaXQgaXMgbm90IGluIHVzZQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMyMzYzCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9zdG9yYWdl
L0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RmlsZVN5c3Rl
bVN0b3JhZ2VIYW5kbGU6OmNsb3NlKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9zdG9yYWdl
L0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mvc3Rv
cmFnZS9GaWxlU3lzdGVtU3RvcmFnZU1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpGaWxl
U3lzdGVtU3RvcmFnZU1hbmFnZXI6OmNsb3NlSGFuZGxlKToKKyAgICAgICAgKFdlYktpdDo6Rmls
ZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyOjpjb25uZWN0aW9uQ2xvc2VkKToKKyAgICAgICAgKiBOZXR3
b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlci5oOgorICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6TmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpjbG9zZUhhbmRsZSk6CisgICAgICAg
ICogTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuaDoKKyAgICAg
ICAgKiBOZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5tZXNzYWdl
cy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZpbGVTeXN0ZW1T
dG9yYWdlQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZpbGVTeXN0ZW1TdG9y
YWdlQ29ubmVjdGlvbjo6Y2xvc2VIYW5kbGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmg6CisKIDIwMjEtMTAtMjYg
IEthdGUgQ2hlbmV5ICA8a2F0aGVyaW5lX2NoZW5leUBhcHBsZS5jb20+CiAKICAgICAgICAgTmV0
d29ya1Byb2Nlc3M6OnVwZGF0ZUJ1bmRsZUlkZW50aWZpZXIsIGEgdGVzdGluZyBmdW5jdGlvbiwg
b3ZlcnJpZGVzIHRoZSBhY3R1YWwgYnVuZGxlSUQgaW5zdGVhZCBvZiB0aGUgb3ZlcnJpZGUgdmFs
dWUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9G
aWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmls
ZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlLmNwcAppbmRleCA2N2ZmYzhj
NDkzZDE0MjQ1MTA0OTMwMjBjYmNmNzNmZWUyNzEwMThlLi44ODYwY2M3YjM1N2I2ZjkwNjNiZWJi
MDI5ZjkwMzA5YmIyZWNmMWM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Zp
bGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5k
bGUuY3BwCkBAIC0zNiwxMiArMzYsMTIgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBXVEZfTUFL
RV9JU09fQUxMT0NBVEVEX0lNUEwoRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZSk7CiAKLVJlZjxG
aWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlPiBGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlOjpjcmVh
dGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgU3RyaW5nJiYgbmFtZSwgRmlsZVN5
c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgUmVmPEZpbGVTeXN0ZW1TdG9yYWdlQ29u
bmVjdGlvbj4mJiBjb25uZWN0aW9uKQorUmVmPEZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGU+IEZp
bGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGU6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBj
b250ZXh0LCBTdHJpbmcmJiBuYW1lLCBGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlm
aWVyLCBSZWY8RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24pCiB7CiAg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZShjb250ZXh0
LCBXVEZNb3ZlKG5hbWUpLCBpZGVudGlmaWVyLCBXVEZNb3ZlKGNvbm5lY3Rpb24pKSk7CiB9CiAK
LUZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGU6OkZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGUoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgU3RyaW5nJiYgbmFtZSwgRmlsZVN5c3RlbUhh
bmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgUmVmPEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlv
bj4mJiBjb25uZWN0aW9uKQorRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZTo6RmlsZVN5c3RlbURp
cmVjdG9yeUhhbmRsZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBTdHJpbmcmJiBu
YW1lLCBGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBSZWY8RmlsZVN5c3Rl
bVN0b3JhZ2VDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24pCiAgICAgOiBGaWxlU3lzdGVtSGFuZGxl
KGNvbnRleHQsIEZpbGVTeXN0ZW1IYW5kbGU6OktpbmQ6OkRpcmVjdG9yeSwgV1RGTW92ZShuYW1l
KSwgaWRlbnRpZmllciwgV1RGTW92ZShjb25uZWN0aW9uKSkKIHsKIH0KQEAgLTU2LDggKzU2LDE0
IEBAIHZvaWQgRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZTo6Z2V0RmlsZUhhbmRsZShjb25zdCBT
dHJpbmcmIG5hbWUsIHN0ZDo6b3B0aW9uYWw8CiAgICAgICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0
aW9uKCkpCiAgICAgICAgICAgICByZXR1cm4gcHJvbWlzZS5yZWplY3QocmVzdWx0LnJlbGVhc2VF
eGNlcHRpb24oKSk7CiAKKyAgICAgICAgYXV0byBpZGVudGlmaWVyID0gcmVzdWx0LnJldHVyblZh
bHVlKCk7CiAgICAgICAgIGF1dG8qIGNvbnRleHQgPSB3ZWFrVGhpcyA/IHdlYWtUaGlzLT5zY3Jp
cHRFeGVjdXRpb25Db250ZXh0KCkgOiBudWxscHRyOwotICAgICAgICBwcm9taXNlLnNldHRsZShG
aWxlU3lzdGVtRmlsZUhhbmRsZTo6Y3JlYXRlKGNvbnRleHQsIFN0cmluZyB7IG5hbWUgfSwgcmVz
dWx0LnJldHVyblZhbHVlKCksIFdURk1vdmUoY29ubmVjdGlvbikpKTsKKyAgICAgICAgaWYgKCFj
b250ZXh0KSB7CisgICAgICAgICAgICBjb25uZWN0aW9uLT5jbG9zZUhhbmRsZShpZGVudGlmaWVy
KTsKKyAgICAgICAgICAgIHJldHVybiBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBJbnZhbGlk
U3RhdGVFcnJvciwgIkNvbnRleHQgaGFzIHN0b3BwZWQiX3MgfSk7CisgICAgICAgIH0KKworICAg
ICAgICBwcm9taXNlLnNldHRsZShGaWxlU3lzdGVtRmlsZUhhbmRsZTo6Y3JlYXRlKCpjb250ZXh0
LCBTdHJpbmcgeyBuYW1lIH0sIHJlc3VsdC5yZXR1cm5WYWx1ZSgpLCBXVEZNb3ZlKGNvbm5lY3Rp
b24pKSk7CiAgICAgfSk7CiB9CiAKQEAgLTcxLDggKzc3LDE0IEBAIHZvaWQgRmlsZVN5c3RlbURp
cmVjdG9yeUhhbmRsZTo6Z2V0RGlyZWN0b3J5SGFuZGxlKGNvbnN0IFN0cmluZyYgbmFtZSwgc3Rk
OjpvcHRpCiAgICAgICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpCiAgICAgICAgICAgICBy
ZXR1cm4gcHJvbWlzZS5yZWplY3QocmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKSk7CiAKKyAgICAg
ICAgYXV0byBpZGVudGlmaWVyID0gcmVzdWx0LnJldHVyblZhbHVlKCk7CiAgICAgICAgIGF1dG8q
IGNvbnRleHQgPSB3ZWFrVGhpcyA/IHdlYWtUaGlzLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkg
OiBudWxscHRyOwotICAgICAgICBwcm9taXNlLnNldHRsZShGaWxlU3lzdGVtRGlyZWN0b3J5SGFu
ZGxlOjpjcmVhdGUoY29udGV4dCwgU3RyaW5nIHsgbmFtZSB9LCByZXN1bHQucmV0dXJuVmFsdWUo
KSwgV1RGTW92ZShjb25uZWN0aW9uKSkpOworICAgICAgICBpZiAoIWNvbnRleHQpIHsKKyAgICAg
ICAgICAgIGNvbm5lY3Rpb24tPmNsb3NlSGFuZGxlKGlkZW50aWZpZXIpOworICAgICAgICAgICAg
cmV0dXJuIHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCAiQ29u
dGV4dCBoYXMgc3RvcHBlZCJfcyB9KTsKKyAgICAgICAgfQorCisgICAgICAgIHByb21pc2Uuc2V0
dGxlKEZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGU6OmNyZWF0ZSgqY29udGV4dCwgU3RyaW5nIHsg
bmFtZSB9LCBpZGVudGlmaWVyLCBXVEZNb3ZlKGNvbm5lY3Rpb24pKSk7CiAgICAgfSk7CiB9CiAK
QEAgLTExOSwxMiArMTMxLDE3IEBAIHZvaWQgRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZTo6Z2V0
SGFuZGxlKGNvbnN0IFN0cmluZyYgbmFtZSwgQ29tcGxldGlvbkhhbmRsZXI8CiAKICAgICAgICAg
YXV0byBbaWRlbnRpZmllciwgaXNEaXJlY3RvcnldID0gcmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1
ZSgpOwogICAgICAgICBhdXRvKiBjb250ZXh0ID0gd2Vha1RoaXMgPyB3ZWFrVGhpcy0+c2NyaXB0
RXhlY3V0aW9uQ29udGV4dCgpIDogbnVsbHB0cjsKKyAgICAgICAgaWYgKCFjb250ZXh0KSB7Cisg
ICAgICAgICAgICBjb25uZWN0aW9uLT5jbG9zZUhhbmRsZShpZGVudGlmaWVyKTsKKyAgICAgICAg
ICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJv
ciwgIkNvbnRleHQgaGFzIHN0b3BwZWQiX3MgfSk7CisgICAgICAgIH0KKwogICAgICAgICBpZiAo
aXNEaXJlY3RvcnkpIHsKLSAgICAgICAgICAgIFJlZjxGaWxlU3lzdGVtSGFuZGxlPiBoYW5kbGUg
PSBGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlOjpjcmVhdGUoY29udGV4dCwgU3RyaW5nIHsgbmFt
ZSB9LCBpZGVudGlmaWVyLCBXVEZNb3ZlKGNvbm5lY3Rpb24pKTsKKyAgICAgICAgICAgIFJlZjxG
aWxlU3lzdGVtSGFuZGxlPiBoYW5kbGUgPSBGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlOjpjcmVh
dGUoKmNvbnRleHQsIFN0cmluZyB7IG5hbWUgfSwgaWRlbnRpZmllciwgV1RGTW92ZShjb25uZWN0
aW9uKSk7CiAgICAgICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShoYW5k
bGUpKTsKICAgICAgICAgfQogCi0gICAgICAgIFJlZjxGaWxlU3lzdGVtSGFuZGxlPiBoYW5kbGUg
PSBGaWxlU3lzdGVtRmlsZUhhbmRsZTo6Y3JlYXRlKGNvbnRleHQsIFN0cmluZyB7IG5hbWUgfSwg
aWRlbnRpZmllciwgV1RGTW92ZShjb25uZWN0aW9uKSk7CisgICAgICAgIFJlZjxGaWxlU3lzdGVt
SGFuZGxlPiBoYW5kbGUgPSBGaWxlU3lzdGVtRmlsZUhhbmRsZTo6Y3JlYXRlKCpjb250ZXh0LCBT
dHJpbmcgeyBuYW1lIH0sIGlkZW50aWZpZXIsIFdURk1vdmUoY29ubmVjdGlvbikpOwogICAgICAg
ICBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKGhhbmRsZSkpOwogICAgIH0pOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1E
aXJlY3RvcnlIYW5kbGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vz
cy9GaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlLmgKaW5kZXggMWU4NDMyOGI3YjI4NDI4Y2FmNzgy
NTNmYjllZWRlZjBmYzBkZmRmMC4uY2U2YTUzODYwYWIwYzllOTMxMTM3YWFlNWY5ODZjNTg4ODk2
MDBiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNz
L0ZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZS5oCkBAIC00Nyw3ICs0
Nyw3IEBAIHB1YmxpYzoKICAgICAgICAgYm9vbCByZWN1cnNpdmUgeyBmYWxzZSB9OwogICAgIH07
CiAKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVmPEZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5k
bGU+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgU3RyaW5nJiYsIEZpbGVTeXN0ZW1I
YW5kbGVJZGVudGlmaWVyLCBSZWY8RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uPiYmKTsKKyAg
ICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVmPEZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGU+IGNy
ZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgU3RyaW5nJiYsIEZpbGVTeXN0ZW1IYW5kbGVJ
ZGVudGlmaWVyLCBSZWY8RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uPiYmKTsKICAgICB2b2lk
IGdldEZpbGVIYW5kbGUoY29uc3QgU3RyaW5nJiBuYW1lLCBzdGQ6Om9wdGlvbmFsPEdldEZpbGVP
cHRpb25zPiwgRE9NUHJvbWlzZURlZmVycmVkPElETEludGVyZmFjZTxGaWxlU3lzdGVtRmlsZUhh
bmRsZT4+JiYpOwogICAgIHZvaWQgZ2V0RGlyZWN0b3J5SGFuZGxlKGNvbnN0IFN0cmluZyYgbmFt
ZSwgc3RkOjpvcHRpb25hbDxHZXREaXJlY3RvcnlPcHRpb25zPiwgRE9NUHJvbWlzZURlZmVycmVk
PElETEludGVyZmFjZTxGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlPj4mJik7CiAgICAgdm9pZCBy
ZW1vdmVFbnRyeShjb25zdCBTdHJpbmcmIG5hbWUsIHN0ZDo6b3B0aW9uYWw8UmVtb3ZlT3B0aW9u
cz4sIERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmKTsKQEAgLTc3LDcgKzc3LDcgQEAgcHVibGlj
OgogICAgIFJlZjxJdGVyYXRvcj4gY3JlYXRlSXRlcmF0b3IoKTsKIAogcHJpdmF0ZToKLSAgICBG
aWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBTdHJpbmcm
JiwgRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFJlZjxGaWxlU3lzdGVtU3RvcmFnZUNvbm5l
Y3Rpb24+JiYpOworICAgIEZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGUoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCYsIFN0cmluZyYmLCBGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgUmVmPEZpbGVT
eXN0ZW1TdG9yYWdlQ29ubmVjdGlvbj4mJik7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmls
ZVN5c3RlbUZpbGVIYW5kbGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVt
YWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmNwcAppbmRleCAzNjY4NzNhYWZkOWQ5OGU1NzY0
YzliMjU1MWIzY2U1ZWY2MjBiZmI4Li4yZGJiNGUzYTgwMGZlMmY0NTg5NjE3ZGExN2MzYzUzMzA5
MDFkYjFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nl
c3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
ZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5jcHAKQEAgLTM2LDEyICszNiwx
MiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChG
aWxlU3lzdGVtRmlsZUhhbmRsZSk7CiAKLVJlZjxGaWxlU3lzdGVtRmlsZUhhbmRsZT4gRmlsZVN5
c3RlbUZpbGVIYW5kbGU6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBT
dHJpbmcmJiBuYW1lLCBGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBSZWY8
RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24pCitSZWY8RmlsZVN5c3Rl
bUZpbGVIYW5kbGU+IEZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCYgY29udGV4dCwgU3RyaW5nJiYgbmFtZSwgRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZp
ZXIgaWRlbnRpZmllciwgUmVmPEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbj4mJiBjb25uZWN0
aW9uKQogewogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEZpbGVTeXN0ZW1GaWxlSGFuZGxlKGNv
bnRleHQsIFdURk1vdmUobmFtZSksIGlkZW50aWZpZXIsIFdURk1vdmUoY29ubmVjdGlvbikpKTsK
IH0KIAotRmlsZVN5c3RlbUZpbGVIYW5kbGU6OkZpbGVTeXN0ZW1GaWxlSGFuZGxlKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFN0cmluZyYmIG5hbWUsIEZpbGVTeXN0ZW1IYW5kbGVJ
ZGVudGlmaWVyIGlkZW50aWZpZXIsIFJlZjxGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24+JiYg
Y29ubmVjdGlvbikKK0ZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpGaWxlU3lzdGVtRmlsZUhhbmRsZShT
Y3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBTdHJpbmcmJiBuYW1lLCBGaWxlU3lzdGVt
SGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBSZWY8RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0
aW9uPiYmIGNvbm5lY3Rpb24pCiAgICAgOiBGaWxlU3lzdGVtSGFuZGxlKGNvbnRleHQsIEZpbGVT
eXN0ZW1IYW5kbGU6OktpbmQ6OkZpbGUsIFdURk1vdmUobmFtZSksIGlkZW50aWZpZXIsIFdURk1v
dmUoY29ubmVjdGlvbikpCiB7CiB9CkBAIC02MCwxMSArNjAsMTggQEAgdm9pZCBGaWxlU3lzdGVt
RmlsZUhhbmRsZTo6Y3JlYXRlU3luY0FjY2Vzc0hhbmRsZShET01Qcm9taXNlRGVmZXJyZWQ8SURM
SW50ZXJmYWMKICAgICAgICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkKICAgICAgICAgICAg
IHJldHVybiBwcm9taXNlLnJlamVjdChyZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpKTsKIAotICAg
ICAgICBhdXRvIHJlc3VsdFZhbHVlID0gcmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpOwotICAg
ICAgICBpZiAocmVzdWx0VmFsdWUuc2Vjb25kID09IEZpbGVTeXN0ZW06OmludmFsaWRQbGF0Zm9y
bUZpbGVIYW5kbGUpCisgICAgICAgIGF1dG8gW2lkZW50aWZpZXIsIGZpbGVdID0gcmVzdWx0LnJl
bGVhc2VSZXR1cm5WYWx1ZSgpOworICAgICAgICBpZiAoZmlsZSA9PSBGaWxlU3lzdGVtOjppbnZh
bGlkUGxhdGZvcm1GaWxlSGFuZGxlKQogICAgICAgICAgICAgcmV0dXJuIHByb21pc2UucmVqZWN0
KEV4Y2VwdGlvbiB7IFVua25vd25FcnJvciwgIkludmFsaWQgcGxhdGZvcm0gZmlsZSBoYW5kbGUi
X3MgfSk7CiAKLSAgICAgICAgcHJvbWlzZS5zZXR0bGUoRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5k
bGU6OmNyZWF0ZShwcm90ZWN0ZWRUaGlzLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIHByb3Rl
Y3RlZFRoaXMuZ2V0KCksIHJlc3VsdFZhbHVlLmZpcnN0LCByZXN1bHRWYWx1ZS5zZWNvbmQpKTsK
KyAgICAgICAgYXV0byogY29udGV4dCA9IHByb3RlY3RlZFRoaXMtPnNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQoKTsKKyAgICAgICAgaWYgKCFjb250ZXh0KSB7CisgICAgICAgICAgICBGaWxlU3lzdGVt
OjpjbG9zZUZpbGUoZmlsZSk7CisgICAgICAgICAgICBwcm90ZWN0ZWRUaGlzLT5jbG9zZShpZGVu
dGlmaWVyLCB7IH0pOworICAgICAgICAgICAgcmV0dXJuIHByb21pc2UucmVqZWN0KEV4Y2VwdGlv
biB7IEludmFsaWRTdGF0ZUVycm9yLCAiQ29udGV4dCBoYXMgc3RvcHBlZCJfcyB9KTsKKyAgICAg
ICAgfQorCisgICAgICAgIHByb21pc2Uuc2V0dGxlKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxl
OjpjcmVhdGUoKmNvbnRleHQsIHByb3RlY3RlZFRoaXMuZ2V0KCksIGlkZW50aWZpZXIsIGZpbGUp
KTsKICAgICB9KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxl
c3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUuaAppbmRleCA5NGQ1ZTFl
MTdmOWY2ZmExOTc3NDE0MDNmNzllNGM3ODBjNmVkZGJlLi5iYWE0MmY4ZDkyMzFhYWRkZTI1Mjlj
ZmVjMjAxYjM0ZWI1NWYyOTE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Zp
bGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUuaApAQCAtMzcs
NyArMzcsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZT4gY2xhc3MgRXhjZXB0aW9uT3I7CiBjbGFzcyBG
aWxlU3lzdGVtRmlsZUhhbmRsZSBmaW5hbCA6IHB1YmxpYyBGaWxlU3lzdGVtSGFuZGxlIHsKICAg
ICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKEZpbGVTeXN0ZW1GaWxlSGFuZGxlKTsKIHB1YmxpYzoK
LSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVmPEZpbGVTeXN0ZW1GaWxlSGFuZGxlPiBjcmVh
dGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFN0cmluZyYmLCBGaWxlU3lzdGVtSGFuZGxlSWRl
bnRpZmllciwgUmVmPEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbj4mJik7CisgICAgV0VCQ09S
RV9FWFBPUlQgc3RhdGljIFJlZjxGaWxlU3lzdGVtRmlsZUhhbmRsZT4gY3JlYXRlKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQmLCBTdHJpbmcmJiwgRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFJl
ZjxGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24+JiYpOwogICAgIHZvaWQgZ2V0RmlsZShET01Q
cm9taXNlRGVmZXJyZWQ8SURMSW50ZXJmYWNlPEZpbGU+PiYmKTsKIAogICAgIHZvaWQgY3JlYXRl
U3luY0FjY2Vzc0hhbmRsZShET01Qcm9taXNlRGVmZXJyZWQ8SURMSW50ZXJmYWNlPEZpbGVTeXN0
ZW1TeW5jQWNjZXNzSGFuZGxlPj4mJik7CkBAIC00Nyw3ICs0Nyw3IEBAIHB1YmxpYzoKICAgICB2
b2lkIGNsb3NlKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChFeGNlcHRpb25Pcjx2b2lkPiYmKT4mJik7CiAKIHByaXZhdGU6Ci0gICAg
RmlsZVN5c3RlbUZpbGVIYW5kbGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFN0cmluZyYmLCBG
aWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgUmVmPEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlv
bj4mJik7CisgICAgRmlsZVN5c3RlbUZpbGVIYW5kbGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYs
IFN0cmluZyYmLCBGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgUmVmPEZpbGVTeXN0ZW1TdG9y
YWdlQ29ubmVjdGlvbj4mJik7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUhh
bmRsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5
c3RlbUhhbmRsZS5jcHAKaW5kZXggZWYwMTBmM2E5NzZhYjFiZTgzMWQzY2Q5MmI2Y2EzMTYwOTQx
NzZmYS4uYjVjNWI5NWI0MmU3Yjk1ZThkMTFkZDk2ZmM3YjY4ZWNjNGYwNTFmMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1IYW5k
bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxl
U3lzdGVtSGFuZGxlLmNwcApAQCAtMzQsOCArMzQsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChGaWxlU3lzdGVtSGFuZGxlKTsKIAotRmlsZVN5
c3RlbUhhbmRsZTo6RmlsZVN5c3RlbUhhbmRsZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250
ZXh0LCBGaWxlU3lzdGVtSGFuZGxlOjpLaW5kIGtpbmQsIFN0cmluZyYmIG5hbWUsIEZpbGVTeXN0
ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFJlZjxGaWxlU3lzdGVtU3RvcmFnZUNvbm5l
Y3Rpb24+JiYgY29ubmVjdGlvbikKLSAgICA6IEFjdGl2ZURPTU9iamVjdChjb250ZXh0KQorRmls
ZVN5c3RlbUhhbmRsZTo6RmlsZVN5c3RlbUhhbmRsZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBj
b250ZXh0LCBGaWxlU3lzdGVtSGFuZGxlOjpLaW5kIGtpbmQsIFN0cmluZyYmIG5hbWUsIEZpbGVT
eXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFJlZjxGaWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb24+JiYgY29ubmVjdGlvbikKKyAgICA6IEFjdGl2ZURPTU9iamVjdCgmY29udGV4dCkK
ICAgICAsIG1fa2luZChraW5kKQogICAgICwgbV9uYW1lKFdURk1vdmUobmFtZSkpCiAgICAgLCBt
X2lkZW50aWZpZXIoaWRlbnRpZmllcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtSGFuZGxlLmggYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUhhbmRsZS5oCmluZGV4IDBhODVlMDI4
ZGIzNWZmNWRmZjYzMDFlNmQxOTNiMDYzMTEzYjNhMjguLmJmMjgwNTAwOTAzZjdhNTY4OGNlOWRh
ZWE4ODU4MjYyOTY4MjQ5OTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmls
ZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtSGFuZGxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1IYW5kbGUuaApAQCAtNTQsNyArNTQsNyBA
QCBwdWJsaWM6CiAgICAgdm9pZCBtb3ZlKEZpbGVTeXN0ZW1IYW5kbGUmLCBjb25zdCBTdHJpbmcm
IG5ld05hbWUsIERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmKTsKIAogcHJvdGVjdGVkOgotICAg
IEZpbGVTeXN0ZW1IYW5kbGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIEtpbmQsIFN0cmluZyYm
IG5hbWUsIEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBSZWY8RmlsZVN5c3RlbVN0b3JhZ2VD
b25uZWN0aW9uPiYmKTsKKyAgICBGaWxlU3lzdGVtSGFuZGxlKFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQmLCBLaW5kLCBTdHJpbmcmJiBuYW1lLCBGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgUmVm
PEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbj4mJik7CiAgICAgRmlsZVN5c3RlbVN0b3JhZ2VD
b25uZWN0aW9uJiBjb25uZWN0aW9uKCkgeyByZXR1cm4gbV9jb25uZWN0aW9uLmdldCgpOyB9CiAK
IHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1h
Y2Nlc3MvRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgKaW5kZXgg
MjdmYTFlMmM5Y2VlZTI1NjVjZjM3NWJhNjk0YzRhNWFjMTdlOTc3NC4uNzNlYmY5OWM0NWU0MTYx
ZGNlNDEwNjgzZWQzODQxNTk3NDhhYmE4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3RvcmFn
ZUNvbm5lY3Rpb24uaApAQCAtNTAsNiArNTAsNyBAQCBwdWJsaWM6CiAgICAgdXNpbmcgR2V0SGFu
ZGxlTmFtZXNDYWxsYmFjayA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8VmVj
dG9yPFN0cmluZz4+JiYpPjsKICAgICB1c2luZyBHZXRIYW5kbGVXaXRoVHlwZUNhbGxiYWNrID0g
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25PcjxzdGQ6OnBhaXI8RmlsZVN5c3RlbUhh
bmRsZUlkZW50aWZpZXIsIGJvb2w+PiYmKT47CiAKKyAgICB2aXJ0dWFsIHZvaWQgY2xvc2VIYW5k
bGUoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgaXNT
YW1lRW50cnkoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1IYW5kbGVJZGVu
dGlmaWVyLCBTYW1lRW50cnlDYWxsYmFjayYmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIG1vdmUo
RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBj
b25zdCBTdHJpbmcmIG5ld05hbWUsIFZvaWRDYWxsYmFjayYmKSA9IDA7CiAgICAgdmlydHVhbCB2
b2lkIGdldEZpbGVIYW5kbGUoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIGNvbnN0IFN0cmlu
ZyYgbmFtZSwgYm9vbCBjcmVhdGVJZk5lY2Vzc2FyeSwgR2V0SGFuZGxlQ2FsbGJhY2smJikgPSAw
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0Zp
bGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmls
ZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5jcHAKaW5kZXggMjRmYzJh
N2E0MjM4Mzg3OWY4ZWRmOTVhNmNhZWQ4MmYzOGIxYzI2OC4uYTQ2ZTBkYzMwNjNlM2VmMjY2MjZk
MGQ5YjIwMWEzMDVjZWRlOWE2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9m
aWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NI
YW5kbGUuY3BwCkBAIC0zMywxMyArMzMsMTMgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1S
ZWY8RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU+IEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxl
OjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgRmlsZVN5c3RlbUZpbGVI
YW5kbGUmIHNvdXJjZSwgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGlkZW50
aWZpZXIsIEZpbGVTeXN0ZW06OlBsYXRmb3JtRmlsZUhhbmRsZSBmaWxlKQorUmVmPEZpbGVTeXN0
ZW1TeW5jQWNjZXNzSGFuZGxlPiBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6Y3JlYXRlKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIEZpbGVTeXN0ZW1GaWxlSGFuZGxlJiBzb3Vy
Y2UsIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBGaWxl
U3lzdGVtOjpQbGF0Zm9ybUZpbGVIYW5kbGUgZmlsZSkKIHsKICAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZShjb250ZXh0LCBzb3VyY2UsIGlkZW50aWZp
ZXIsIGZpbGUpKTsKIH0KIAotRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OkZpbGVTeXN0ZW1T
eW5jQWNjZXNzSGFuZGxlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIEZpbGVTeXN0
ZW1GaWxlSGFuZGxlJiBzb3VyY2UsIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmll
ciBpZGVudGlmaWVyLCBGaWxlU3lzdGVtOjpQbGF0Zm9ybUZpbGVIYW5kbGUgZmlsZSkKLSAgICA6
IEFjdGl2ZURPTU9iamVjdChjb250ZXh0KQorRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OkZp
bGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQs
IEZpbGVTeXN0ZW1GaWxlSGFuZGxlJiBzb3VyY2UsIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxl
SWRlbnRpZmllciBpZGVudGlmaWVyLCBGaWxlU3lzdGVtOjpQbGF0Zm9ybUZpbGVIYW5kbGUgZmls
ZSkKKyAgICA6IEFjdGl2ZURPTU9iamVjdCgmY29udGV4dCkKICAgICAsIG1fc291cmNlKHNvdXJj
ZSkKICAgICAsIG1faWRlbnRpZmllcihpZGVudGlmaWVyKQogICAgICwgbV9maWxlKGZpbGUpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5
c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3Rl
bWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5oCmluZGV4IGVkMjliZTU5MTZmMTk5
MjlhOTEzMjI1NjY1MWVlZGQ0ZmZiN2FkN2IuLjcwYWZmMzM5YTIxMDkzMDQ4MGU0NDdjMjA4NTc5
MWY1MjMyYmExMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3Rl
bWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5oCkBA
IC00NCw3ICs0NCw3IEBAIHB1YmxpYzoKICAgICAgICAgdW5zaWduZWQgbG9uZyBsb25nIGF0Owog
ICAgIH07CiAKLSAgICBzdGF0aWMgUmVmPEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlPiBjcmVh
dGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIEZpbGVTeXN0ZW1GaWxlSGFuZGxlJiwgRmlsZVN5
c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtOjpQbGF0Zm9ybUZpbGVI
YW5kbGUpOworICAgIHN0YXRpYyBSZWY8RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU+IGNyZWF0
ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgRmlsZVN5c3RlbUZpbGVIYW5kbGUmLCBGaWxlU3lz
dGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW06OlBsYXRmb3JtRmlsZUhh
bmRsZSk7CiAgICAgfkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlKCk7CiAKICAgICB2b2lkIHRy
dW5jYXRlKHVuc2lnbmVkIGxvbmcgbG9uZyBzaXplLCBET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4m
Jik7CkBAIC01Niw3ICs1Niw3IEBAIHB1YmxpYzoKICAgICBFeGNlcHRpb25Pcjx1bnNpZ25lZCBs
b25nIGxvbmc+IHdyaXRlKEJ1ZmZlclNvdXJjZSYmLCBGaWxlc3lzdGVtUmVhZFdyaXRlT3B0aW9u
cyk7CiAKIHByaXZhdGU6Ci0gICAgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCosIEZpbGVTeXN0ZW1GaWxlSGFuZGxlJiwgRmlsZVN5c3RlbVN5bmNBY2Nl
c3NIYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtOjpQbGF0Zm9ybUZpbGVIYW5kbGUpOworICAg
IEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBGaWxl
U3lzdGVtRmlsZUhhbmRsZSYsIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwg
RmlsZVN5c3RlbTo6UGxhdGZvcm1GaWxlSGFuZGxlKTsKICAgICBib29sIGlzQ2xvc2luZ09yQ2xv
c2VkKCkgY29uc3Q7CiAgICAgdXNpbmcgQ2xvc2VDYWxsYmFjayA9IENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoRXhjZXB0aW9uT3I8dm9pZD4mJik+OwogICAgIHZvaWQgY2xvc2VJbnRlcm5hbChDbG9z
ZUNhbGxiYWNrJiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lz
dGVtYWNjZXNzL1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VD
b25uZWN0aW9uLmNwcAppbmRleCA2NzFhYzRmMTE4YTkzYTZkNjYxODIyZjhmNWU3ZDJhYTAzMGEx
YTI4Li5hZmRmOGM3ZTk0MDIyYzcyZTFmZTE3YzkxOTFjY2U3ODVmMjQ3NTM5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvV29ya2VyRmlsZVN5c3Rl
bVN0b3JhZ2VDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVz
eXN0ZW1hY2Nlc3MvV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmNwcApAQCAtNzUs
NiArNzUsMTYgQEAgdm9pZCBXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OnNjb3Bl
Q2xvc2VkKCkKICAgICBtX3Njb3BlID0gbnVsbHB0cjsKIH0KIAordm9pZCBXb3JrZXJGaWxlU3lz
dGVtU3RvcmFnZUNvbm5lY3Rpb246OmNsb3NlSGFuZGxlKEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlm
aWVyIGlkZW50aWZpZXIpCit7CisgICAgaWYgKCFtX3Njb3BlKQorICAgICAgICByZXR1cm47CisK
KyAgICBjYWxsT25NYWluVGhyZWFkKFttYWluVGhyZWFkQ29ubmVjdGlvbiA9IG1fbWFpblRocmVh
ZENvbm5lY3Rpb24sIGlkZW50aWZpZXJdKCkgbXV0YWJsZSB7CisgICAgICAgIG1haW5UaHJlYWRD
b25uZWN0aW9uLT5jbG9zZUhhbmRsZShpZGVudGlmaWVyKTsKKyAgICB9KTsKK30KKwogdm9pZCBX
b3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmlzU2FtZUVudHJ5KEZpbGVTeXN0ZW1I
YW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIG90
aGVySWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpTYW1lRW50cnlDYWxs
YmFjayYmIGNhbGxiYWNrKQogewogICAgIGlmICghbV9zY29wZSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3RvcmFn
ZUNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9X
b3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaAppbmRleCBjYWM5YjQyZmU4ZDVkMGQ1
ODYxYmVkYzk2OTUwMjE1NmU3ZTAzNTU2Li41YmNiZmMyYWIyOTYzMzM2ZjRjNWViZmRiMjc0MzAx
OWEyODU2YmNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1h
Y2Nlc3MvV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29u
bmVjdGlvbi5oCkBAIC01Nyw2ICs1Nyw3IEBAIHByaXZhdGU6CiAgICAgV29ya2VyRmlsZVN5c3Rl
bVN0b3JhZ2VDb25uZWN0aW9uKFdvcmtlckdsb2JhbFNjb3BlJiwgUmVmPEZpbGVTeXN0ZW1TdG9y
YWdlQ29ubmVjdGlvbj4mJik7CiAKICAgICAvLyBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24K
KyAgICB2b2lkIGNsb3NlSGFuZGxlKEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyKSBmaW5hbDsK
ICAgICB2b2lkIGlzU2FtZUVudHJ5KEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lz
dGVtSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpTYW1lRW50
cnlDYWxsYmFjayYmKSBmaW5hbDsKICAgICB2b2lkIG1vdmUoRmlsZVN5c3RlbUhhbmRsZUlkZW50
aWZpZXIsIEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5ld05hbWUs
IFZvaWRDYWxsYmFjayYmKSBmaW5hbDsKICAgICB2b2lkIGdldEZpbGVIYW5kbGUoRmlsZVN5c3Rl
bUhhbmRsZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwgYm9vbCBjcmVhdGVJZk5lY2Vz
c2FyeSwgRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpHZXRIYW5kbGVDYWxsYmFjayYmKSBm
aW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RvcmFnZS9TdG9yYWdl
TWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0b3JhZ2UvU3RvcmFnZU1hbmFn
ZXIuY3BwCmluZGV4IGNmMDdhNWFmNDljNWViNGY0MzI5NTdiMzE3YmI5MDQ1YWM2Mjg5OTAuLjc4
MDRhODAyN2Q0MDY5MjNhMzRjMzllYWNjZWM2OTNjZDEwNjExNmMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvc3RvcmFnZS9TdG9yYWdlTWFuYWdlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9zdG9yYWdlL1N0b3JhZ2VNYW5hZ2VyLmNwcApAQCAtMTE5LDkgKzEx
OSwxNCBAQCB2b2lkIFN0b3JhZ2VNYW5hZ2VyOjpmaWxlU3lzdGVtQWNjZXNzR2V0RGlyZWN0b3J5
KERPTVByb21pc2VEZWZlcnJlZDxJRExJbnRlcmZhYwogICAgICAgICBpZiAocmVzdWx0Lmhhc0V4
Y2VwdGlvbigpKQogICAgICAgICAgICAgcmV0dXJuIHByb21pc2UucmVqZWN0KHJlc3VsdC5yZWxl
YXNlRXhjZXB0aW9uKCkpOwogCisgICAgICAgIGF1dG8gW2lkZW50aWZpZXIsIGNvbm5lY3Rpb25d
ID0gcmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpOwogICAgICAgICBhdXRvKiBjb250ZXh0ID0g
d2Vha05hdmlnYXRvciA/IHdlYWtOYXZpZ2F0b3ItPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSA6
IG51bGxwdHI7Ci0gICAgICAgIGF1dG8gaWRlbnRpZmllckNvbm5lY3Rpb25QYWlyID0gcmVzdWx0
LnJlbGVhc2VSZXR1cm5WYWx1ZSgpOwotICAgICAgICBwcm9taXNlLnJlc29sdmUoRmlsZVN5c3Rl
bURpcmVjdG9yeUhhbmRsZTo6Y3JlYXRlKGNvbnRleHQsIHsgfSwgaWRlbnRpZmllckNvbm5lY3Rp
b25QYWlyLmZpcnN0LCBSZWYgeyAqIGlkZW50aWZpZXJDb25uZWN0aW9uUGFpci5zZWNvbmQgfSkp
OworICAgICAgICBpZiAoIWNvbnRleHQpIHsKKyAgICAgICAgICAgIGNvbm5lY3Rpb24tPmNsb3Nl
SGFuZGxlKGlkZW50aWZpZXIpOworICAgICAgICAgICAgcmV0dXJuIHByb21pc2UucmVqZWN0KEV4
Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCAiQ29udGV4dCBoYXMgc3RvcHBlZCJfcyB9KTsK
KyAgICAgICAgfQorCisgICAgICAgIHByb21pc2UucmVzb2x2ZShGaWxlU3lzdGVtRGlyZWN0b3J5
SGFuZGxlOjpjcmVhdGUoKmNvbnRleHQsIHsgfSwgaWRlbnRpZmllciwgUmVmIHsgKmNvbm5lY3Rp
b24gfSkpOwogICAgIH0pOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUuY3BwIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmNwcAppbmRl
eCAxZmIxNzU5ODE0NTc4YjQ5ZGViY2YyZmUzZWY4MDc3OWIwNDFhNzdkLi42MDcxY2JjNTAxYTBi
Nzc2NjUxY2I1ZTI0Y2ZiNzFlZGI2NDk1Y2U3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZUhhbmRs
ZS5jcHAKQEAgLTY5LDYgKzY5LDE0IEBAIEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlOjp+RmlsZVN5
c3RlbVN0b3JhZ2VIYW5kbGUoKQogICAgICAgICBGaWxlU3lzdGVtOjpjbG9zZUZpbGUobV9oYW5k
bGUpOwogfQogCit2b2lkIEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlOjpjbG9zZSgpCit7CisgICAg
aWYgKCFtX21hbmFnZXIpCisgICAgICAgIHJldHVybjsKKworICAgIG1fbWFuYWdlci0+Y2xvc2VI
YW5kbGUoKnRoaXMpOworfQorCiBib29sIEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlOjppc1NhbWVF
bnRyeShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyKQogewog
ICAgIGF1dG8gcGF0aCA9IG1fbWFuYWdlci0+Z2V0UGF0aChpZGVudGlmaWVyKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFn
ZUhhbmRsZS5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0
ZW1TdG9yYWdlSGFuZGxlLmgKaW5kZXggYzBhOWUzYjFhYmNmOGZkOThhNTI3NjE0YjRjNzEwMjdm
NjU4MTVkZi4uM2RhZjQ3MmY3MTZjNTNkYjVjNGMyYjhlOTU4ZjU3NGY4ZWVlYWRkOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9y
YWdlSGFuZGxlLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0Zp
bGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmgKQEAgLTUwLDYgKzUwLDcgQEAgcHVibGljOgogICAgIGNv
bnN0IFN0cmluZyYgcGF0aCgpIGNvbnN0IHsgcmV0dXJuIG1fcGF0aDsgfQogICAgIFR5cGUgdHlw
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZTsgfQogCisgICAgdm9pZCBjbG9zZSgpOwogICAgIGJv
b2wgaXNTYW1lRW50cnkoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIpOwogICAg
IHN0ZDo6b3B0aW9uYWw8RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gbW92ZShXZWJDb3JlOjpGaWxl
U3lzdGVtSGFuZGxlSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuZXdOYW1lKTsKICAgICBFeHBl
Y3RlZDxXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3Jh
Z2VFcnJvcj4gZ2V0RmlsZUhhbmRsZShJUEM6OkNvbm5lY3Rpb246OlVuaXF1ZUlELCBTdHJpbmcm
JiBuYW1lLCBib29sIGNyZWF0ZUlmTmVjZXNzYXJ5KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZU1hbmFnZXIuY3BwIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlTWFu
YWdlci5jcHAKaW5kZXggYjkwYTRmYWVlNTNlZTAzMzkzMWI5OTA2NzlhZmI0NmE4ZTU3MzJjMy4u
MzhhYTI2NTVjMzlkZGMyMzdiYTVhMzgwYTVkNTQ5MTI0MmMzN2Y1MSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdl
ci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0
ZW1TdG9yYWdlTWFuYWdlci5jcHAKQEAgLTk0LDYgKzk0LDE0IEBAIEZpbGVTeXN0ZW1TdG9yYWdl
SGFuZGxlOjpUeXBlIEZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlcjo6Z2V0VHlwZShXZWJDb3JlOjpG
aWxlU3lzCiAgICAgcmV0dXJuIGhhbmRsZSA9PSBtX2hhbmRsZXMuZW5kKCkgPyBGaWxlU3lzdGVt
U3RvcmFnZUhhbmRsZTo6VHlwZTo6QW55IDogaGFuZGxlLT52YWx1ZS0+dHlwZSgpOwogfQogCit2
b2lkIEZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlcjo6Y2xvc2VIYW5kbGUoRmlsZVN5c3RlbVN0b3Jh
Z2VIYW5kbGUmIGhhbmRsZSkKK3sKKyAgICBhdXRvIGlkZW50aWZpZXIgPSBoYW5kbGUuaWRlbnRp
ZmllcigpOworICAgIGF1dG8gdGFrZW5IYW5kbGUgPSBtX2hhbmRsZXMudGFrZShpZGVudGlmaWVy
KTsKKyAgICBBU1NFUlQodGFrZW5IYW5kbGUuZ2V0KCkgPT0gJmhhbmRsZSk7CisgICAgbV9yZWdp
c3RyeS51bnJlZ2lzdGVySGFuZGxlKGlkZW50aWZpZXIpOworfQorCiB2b2lkIEZpbGVTeXN0ZW1T
dG9yYWdlTWFuYWdlcjo6Y29ubmVjdGlvbkNsb3NlZChJUEM6OkNvbm5lY3Rpb246OlVuaXF1ZUlE
IGNvbm5lY3Rpb24pCiB7CiAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CkBAIC0xMDQs
NyArMTEyLDcgQEAgdm9pZCBGaWxlU3lzdGVtU3RvcmFnZU1hbmFnZXI6OmNvbm5lY3Rpb25DbG9z
ZWQoSVBDOjpDb25uZWN0aW9uOjpVbmlxdWVJRCBjb25uZWMKIAogICAgIGF1dG8gaWRlbnRpZmll
cnMgPSBjb25uZWN0aW9uSGFuZGxlcy0+dmFsdWU7CiAgICAgZm9yIChhdXRvIGlkZW50aWZpZXIg
OiBpZGVudGlmaWVycykgewotICAgICAgICBhdXRvIGhhbmRsZSA9IG1faGFuZGxlcy50YWtlKGlk
ZW50aWZpZXIpOworICAgICAgICBtX2hhbmRsZXMucmVtb3ZlKGlkZW50aWZpZXIpOwogICAgICAg
ICBtX3JlZ2lzdHJ5LnVucmVnaXN0ZXJIYW5kbGUoaWRlbnRpZmllcik7CiAgICAgfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0
b3JhZ2VNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmls
ZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyLmgKaW5kZXggZmYwMWFiYjU0ZmYxNjBjZDE0MmRhYzgxNzUy
MTJhMmY4Zjk3YTU0Yi4uYjg1NzY3NjhiMzU1YWNiM2FhMGMzNzAzOGNjNTFlY2M5MzJiMzk2YyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0
ZW1TdG9yYWdlTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3Rv
cmFnZS9GaWxlU3lzdGVtU3RvcmFnZU1hbmFnZXIuaApAQCAtNDIsNiArNDIsNyBAQCBwdWJsaWM6
CiAgICAgRXhwZWN0ZWQ8V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZpbGVT
eXN0ZW1TdG9yYWdlRXJyb3I+IGNyZWF0ZUhhbmRsZShJUEM6OkNvbm5lY3Rpb246OlVuaXF1ZUlE
LCBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6VHlwZSwgU3RyaW5nJiYgcGF0aCwgU3RyaW5nJiYg
bmFtZSwgYm9vbCBjcmVhdGVJZk5lY2Vzc2FyeSk7CiAgICAgY29uc3QgU3RyaW5nJiBnZXRQYXRo
KFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyKTsKICAgICBGaWxlU3lzdGVtU3Rv
cmFnZUhhbmRsZTo6VHlwZSBnZXRUeXBlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlm
aWVyKTsKKyAgICB2b2lkIGNsb3NlSGFuZGxlKEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlJik7CiAg
ICAgdm9pZCBjb25uZWN0aW9uQ2xvc2VkKElQQzo6Q29ubmVjdGlvbjo6VW5pcXVlSUQpOwogICAg
IEV4cGVjdGVkPFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVt
U3RvcmFnZUVycm9yPiBnZXREaXJlY3RvcnkoSVBDOjpDb25uZWN0aW9uOjpVbmlxdWVJRCk7CiAg
ICAgYm9vbCBhY3F1aXJlTG9ja0ZvckZpbGUoY29uc3QgU3RyaW5nJiBwYXRoLCBXZWJDb3JlOjpG
aWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuY3BwCmlu
ZGV4IDY5YmFjODI1YmVmZjI3OWU0ZTAwZDE3OTczYzFhNDViNjk1NmI5NjUuLmNlNTgxMTQwMzRm
OThlZTMyNmRhYjc3ZGFmYWY1NjIzZGRkMjIwMDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIu
Y3BwCkBAIC0xNzEsNiArMTcxLDE0IEBAIHZvaWQgTmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpmaWxl
U3lzdGVtR2V0RGlyZWN0b3J5KElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwKICAgICBjb21w
bGV0aW9uSGFuZGxlcihsb2NhbE9yaWdpblN0b3JhZ2VNYW5hZ2VyKG9yaWdpbikuZmlsZVN5c3Rl
bVN0b3JhZ2VNYW5hZ2VyKCptX2ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlUmVnaXN0cnkpLmdldERp
cmVjdG9yeShjb25uZWN0aW9uLnVuaXF1ZUlEKCkpKTsKIH0KIAordm9pZCBOZXR3b3JrU3RvcmFn
ZU1hbmFnZXI6OmNsb3NlSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVy
IGlkZW50aWZpZXIpCit7CisgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CisKKyAgICBp
ZiAoYXV0byBoYW5kbGUgPSBtX2ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlUmVnaXN0cnktPmdldEhh
bmRsZShpZGVudGlmaWVyKSkKKyAgICAgICAgaGFuZGxlLT5jbG9zZSgpOworfQorCiB2b2lkIE5l
dHdvcmtTdG9yYWdlTWFuYWdlcjo6aXNTYW1lRW50cnkoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRs
ZUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZp
ZXIgdGFyZ2V0SWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKIHsKICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFn
ZU1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3Jr
U3RvcmFnZU1hbmFnZXIuaAppbmRleCAwNGNjM2FmMDliYWIzZDJmMGUwZjcwMWMxZmYyOTAwYTYx
NDE2MzU2Li5lMjU1MDQxODk2MGZkNGY3ZTM4Yzg0MWM0MDhmM2Y0MDVhZDY2Mzc4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VN
YW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdv
cmtTdG9yYWdlTWFuYWdlci5oCkBAIC02OSw2ICs2OSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBw
ZXJzaXN0ZWQoY29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChib29sKT4mJik7CiAgICAgdm9pZCBwZXJzaXN0KGNvbnN0IFdlYkNvcmU6OkNsaWVudE9y
aWdpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwogICAgIHZvaWQgZmlsZVN5
c3RlbUdldERpcmVjdG9yeShJUEM6OkNvbm5lY3Rpb24mLCBjb25zdCBXZWJDb3JlOjpDbGllbnRP
cmlnaW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4cGVjdGVkPFdlYkNvcmU6OkZpbGVTeXN0
ZW1IYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPik+JiYpOworICAgIHZv
aWQgY2xvc2VIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIpOwogICAg
IHZvaWQgaXNTYW1lRW50cnkoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFdl
YkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KGJvb2wpPiYmKTsKICAgICB2b2lkIG1vdmUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50
aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcm
IG5ld05hbWUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxGaWxlU3lzdGVt
U3RvcmFnZUVycm9yPik+JiYpOwogICAgIHZvaWQgZ2V0RmlsZUhhbmRsZShJUEM6OkNvbm5lY3Rp
b24mLCBXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgU3RyaW5nJiYgbmFtZSwg
Ym9vbCBjcmVhdGVJZk5lY2Vzc2FyeSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDxX
ZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJv
cj4pPiYmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFn
ZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLm1lc3NhZ2VzLmluCmluZGV4
IDgyZWEzMTBmODE1MWVkZjJjNDNhYmE0NTExNGE4MDFjNGI3NDZmNzIuLjFmYmJmMzdiYWFkN2Qw
NDNjODc1Y2U4ZGYxYmFiOWExNTc2YTc5MDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIubWVzc2FnZXMuaW4KKysr
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFu
YWdlci5tZXNzYWdlcy5pbgpAQCAtMjcsNiArMjcsNyBAQAogICAgIFBlcnNpc3RlZChzdHJ1Y3Qg
V2ViQ29yZTo6Q2xpZW50T3JpZ2luIG9yaWdpbikgLT4gKGJvb2wgcGVyc2lzdGVkKSBBc3luYwog
ICAgIFBlcnNpc3Qoc3RydWN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiBvcmlnaW4pIC0+IChib29s
IHBlcnNpc3RlZCkgQXN5bmMKICAgICBGaWxlU3lzdGVtR2V0RGlyZWN0b3J5KHN0cnVjdCBXZWJD
b3JlOjpDbGllbnRPcmlnaW4gb3JpZ2luKSAtPiAoRXhwZWN0ZWQ8V2ViQ29yZTo6RmlsZVN5c3Rl
bUhhbmRsZUlkZW50aWZpZXIsIFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gcmVzdWx0
KSBBc3luYyBXYW50c0Nvbm5lY3Rpb24KKyAgICBDbG9zZUhhbmRsZShXZWJDb3JlOjpGaWxlU3lz
dGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyKQogICAgIElzU2FtZUVudHJ5KFdlYkNvcmU6
OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0
ZW1IYW5kbGVJZGVudGlmaWVyIHRhcmdldElkZW50aWZpZXIpIC0+IChib29sIHJlc3VsdCkgQXN5
bmMKICAgICBHZXRGaWxlSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVy
IGlkZW50aWZpZXIsIFN0cmluZyBuYW1lLCBib29sIGNyZWF0ZUlmTmVjZXNzYXJ5KSAtPiAoRXhw
ZWN0ZWQ8V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFdlYktpdDo6RmlsZVN5
c3RlbVN0b3JhZ2VFcnJvcj4gcmVzdWx0KSBBc3luYyBXYW50c0Nvbm5lY3Rpb24KICAgICBHZXRE
aXJlY3RvcnlIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRp
ZmllciwgU3RyaW5nIG5hbWUsIGJvb2wgY3JlYXRlSWZOZWNlc3NhcnkpIC0+IChFeHBlY3RlZDxX
ZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgV2ViS2l0OjpGaWxlU3lzdGVtU3Rv
cmFnZUVycm9yPiByZXN1bHQpIEFzeW5jIFdhbnRzQ29ubmVjdGlvbgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZpbGVTeXN0ZW1TdG9yYWdl
Q29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmNwcAppbmRleCAxZjA2YjU5ZjhjYzY2MGNh
MzM5MDYwNWVlZjE2MjE1Nzc3YWM1YTZhLi42MzVlZWY4NTU3ZjlmNGQ0ZWFjYjg4MzFiY2ZiNjY0
MmRmYzBhOGQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0
aW9uLmNwcApAQCAtNDgsNiArNDgsMTQgQEAgdm9pZCBXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5l
Y3Rpb246OmNvbm5lY3Rpb25DbG9zZWQoKQogICAgIG1fY29ubmVjdGlvbiA9IG51bGxwdHI7CiB9
CiAKK3ZvaWQgV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpjbG9zZUhhbmRsZShGaWxl
U3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAgIGlmICghbV9jb25uZWN0
aW9uKQorICAgICAgICByZXR1cm47CisKKyAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6
Ok5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6Q2xvc2VIYW5kbGUoaWRlbnRpZmllciksIDApOworfQor
CiB2b2lkIFdlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6aXNTYW1lRW50cnkoV2ViQ29y
ZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5
c3RlbUhhbmRsZUlkZW50aWZpZXIgb3RoZXJJZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVt
U3RvcmFnZUNvbm5lY3Rpb246OlNhbWVFbnRyeUNhbGxiYWNrJiYgY29tcGxldGlvbkhhbmRsZXIp
CiB7CiAgICAgaWYgKCFtX2Nvbm5lY3Rpb24pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRmlsZVN5c3RlbVN0
b3JhZ2VDb25uZWN0aW9uLmgKaW5kZXggN2IzYTFkMWU5ZWQyNzU3ZWRhMWRlYjU0NTU3ZTg0Njlm
ZGZkOTBiOS4uZmIzZGJkZWM4MTJmNWEyNTIyZjg4YzUzYWNiNDg0MjA0NTEzZmFhZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZpbGVTeXN0
ZW1TdG9yYWdlQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaApAQCAtNzIsNiArNzIs
NyBAQCBwcml2YXRlOgogICAgIGV4cGxpY2l0IFdlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlv
bihJUEM6OkNvbm5lY3Rpb24mKTsKIAogICAgIC8vIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlv
bgorICAgIHZvaWQgY2xvc2VIYW5kbGUoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIpIGZpbmFs
OwogICAgIHZvaWQgaXNTYW1lRW50cnkoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZp
ZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lz
dGVtU3RvcmFnZUNvbm5lY3Rpb246OlNhbWVFbnRyeUNhbGxiYWNrJiYpIGZpbmFsOwogICAgIHZv
aWQgbW92ZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgV2ViQ29yZTo6Rmls
ZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmV3TmFtZSwgVm9pZENhbGxi
YWNrJiYpIGZpbmFsOwogICAgIHZvaWQgZ2V0RmlsZUhhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVt
SGFuZGxlSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBib29sIGNyZWF0ZUlmTmVjZXNz
YXJ5LCBXZWJDb3JlOjpGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OkdldEhhbmRsZUNhbGxi
YWNrJiYpIGZpbmFsOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>442570</attachid>
            <date>2021-10-26 22:58:36 -0700</date>
            <delta_ts>2021-10-27 09:23:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232363-20211026225835.patch</filename>
            <type>text/plain</type>
            <size>32905</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0OTE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2FkNjY4YzY0OGQyNTY4
MjA5NjQ4NjA0YjIzZjJmNmIxMjUzMDE1NS4uMjBmYzQ3MjRmMWUzMTFjNjNmNzAyODgzMmYwNTJk
ODJmM2E5ZGQ3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDIxLTEwLTI2ICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIFJlbGVhc2UgRmlsZVN5c3Rl
bVN0b3JhZ2VIYW5kbGUgd2hlbiBpdCBpcyBub3QgaW4gdXNlCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzIzNjMKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXaGVuIEZpbGVTeXN0ZW1IYW5kbGUgaXMgZGVz
dHJveWVkLCBpdHMgY29ycmVzcG9uZGluZyBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZSBzaG91bGQg
YmUgZGVzdHJveWVkIGFzIGl0IHNob3VsZAorICAgICAgICBub3QgYmUgdXNlZCBhZ2Fpbi4gQWxz
bywgc3RvcCBjcmVhdGluZyBhIG5ldyBGaWxlU3lzdGVtSGFuZGxlIG9yIEZpbGVTeXN0ZW1TeW5j
QWNjZXNzSGFuZGxlIGlmIGNvbnRleHQgYWxyZWFkeSAKKyAgICAgICAgc3RvcHMuCisKKyAgICAg
ICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlOjpjcmVhdGUp
OgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZTo6RmlsZVN5c3Rl
bURpcmVjdG9yeUhhbmRsZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtRGlyZWN0b3J5
SGFuZGxlOjpnZXRGaWxlSGFuZGxlKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1EaXJl
Y3RvcnlIYW5kbGU6OmdldERpcmVjdG9yeUhhbmRsZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxl
U3lzdGVtRGlyZWN0b3J5SGFuZGxlOjpnZXRIYW5kbGUpOgorICAgICAgICAqIE1vZHVsZXMvZmls
ZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlLmg6CisgICAgICAgICogTW9k
dWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29y
ZTo6RmlsZVN5c3RlbUZpbGVIYW5kbGU6OkZpbGVTeXN0ZW1GaWxlSGFuZGxlKToKKyAgICAgICAg
KFdlYkNvcmU6OkZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKToK
KyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUu
aDoKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUhhbmRsZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlOjpGaWxlU3lzdGVtSGFuZGxl
KToKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUhhbmRsZS5o
OgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb24uaDoKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3Rl
bVN5bmNBY2Nlc3NIYW5kbGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNB
Y2Nlc3NIYW5kbGU6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0Fj
Y2Vzc0hhbmRsZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUpOgorICAgICAgICAqIE1vZHVs
ZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5oOgorICAgICAg
ICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5l
Y3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25u
ZWN0aW9uOjpjbG9zZUhhbmRsZSk6CisgICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNz
L1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oOgorICAgICAgICAqIE1vZHVsZXMv
c3RvcmFnZS9TdG9yYWdlTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdG9yYWdlTWFu
YWdlcjo6ZmlsZVN5c3RlbUFjY2Vzc0dldERpcmVjdG9yeSk6CisKIDIwMjEtMTAtMjYgIFRpbSBI
b3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CiAKICAgICAgICAgW0dQVSBQcm9jZXNz
XSBgRGlzcGxheUxpc3Q6OlJlY29yZGVyOjpnZXRDVE1gIHNob3VsZCBpbmNsdWRlIHRoZSBkZXZp
Y2Ugc2NhbGUgZmFjdG9yCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGU0NzQ2NjI0OWIxZmRlODI0Y2EzNmViOTE5YTM3
ZjBhZDc5MWQ1ODMuLjQzMWVmZmM4NDY2MzEyMDYyNTJjZmE1ZjZkODkxZTNlNzVkN2ViZmQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMjEtMTAtMjYgIFNpaHVpIExpdSAgPHNpaHVpX2xp
dUBhcHBsZS5jb20+CisKKyAgICAgICAgUmVsZWFzZSBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZSB3
aGVuIGl0IGlzIG5vdCBpbiB1c2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIzMjM2MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZUhh
bmRsZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlOjpjbG9z
ZSk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZUhh
bmRsZS5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3Jh
Z2VNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VNYW5hZ2Vy
OjpjbG9zZUhhbmRsZSk6CisgICAgICAgIChXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdl
cjo6Y29ubmVjdGlvbkNsb3NlZCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9G
aWxlU3lzdGVtU3RvcmFnZU1hbmFnZXIuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9zdG9y
YWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtT
dG9yYWdlTWFuYWdlcjo6Y2xvc2VIYW5kbGUpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3N0
b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mv
c3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIubWVzc2FnZXMuaW46CisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmNsb3Nl
SGFuZGxlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZpbGVTeXN0
ZW1TdG9yYWdlQ29ubmVjdGlvbi5oOgorCiAyMDIxLTEwLTI2ICBBbGV4IENocmlzdGVuc2VuICA8
YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmVtb3ZlIHByb3BlcnRpZXMgc2V0
IGJ5IE5TVVJMUHJvdG9jb2wgb24gTlNVUkxSZXF1ZXN0IGJlZm9yZSBzZXJpYWxpemluZwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0
ZW1EaXJlY3RvcnlIYW5kbGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVt
YWNjZXNzL0ZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGUuY3BwCmluZGV4IDY3ZmZjOGM0OTNkMTQy
NDUxMDQ5MzAyMGNiY2Y3M2ZlZTI3MTAxOGUuLjg4NjBjYzdiMzU3YjZmOTA2M2JlYmIwMjlmOTAz
MDliYjJlY2YxYzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3Rl
bWFjY2Vzcy9GaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZS5jcHAK
QEAgLTM2LDEyICszNiwxMiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFdURl9NQUtFX0lTT19B
TExPQ0FURURfSU1QTChGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlKTsKIAotUmVmPEZpbGVTeXN0
ZW1EaXJlY3RvcnlIYW5kbGU+IEZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGU6OmNyZWF0ZShTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBTdHJpbmcmJiBuYW1lLCBGaWxlU3lzdGVtSGFu
ZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBSZWY8RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9u
PiYmIGNvbm5lY3Rpb24pCitSZWY8RmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZT4gRmlsZVN5c3Rl
bURpcmVjdG9yeUhhbmRsZTo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQs
IFN0cmluZyYmIG5hbWUsIEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFJl
ZjxGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24+JiYgY29ubmVjdGlvbikKIHsKICAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlKGNvbnRleHQsIFdURk1v
dmUobmFtZSksIGlkZW50aWZpZXIsIFdURk1vdmUoY29ubmVjdGlvbikpKTsKIH0KIAotRmlsZVN5
c3RlbURpcmVjdG9yeUhhbmRsZTo6RmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZShTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiBjb250ZXh0LCBTdHJpbmcmJiBuYW1lLCBGaWxlU3lzdGVtSGFuZGxlSWRl
bnRpZmllciBpZGVudGlmaWVyLCBSZWY8RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uPiYmIGNv
bm5lY3Rpb24pCitGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlOjpGaWxlU3lzdGVtRGlyZWN0b3J5
SGFuZGxlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFN0cmluZyYmIG5hbWUsIEZp
bGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFJlZjxGaWxlU3lzdGVtU3RvcmFn
ZUNvbm5lY3Rpb24+JiYgY29ubmVjdGlvbikKICAgICA6IEZpbGVTeXN0ZW1IYW5kbGUoY29udGV4
dCwgRmlsZVN5c3RlbUhhbmRsZTo6S2luZDo6RGlyZWN0b3J5LCBXVEZNb3ZlKG5hbWUpLCBpZGVu
dGlmaWVyLCBXVEZNb3ZlKGNvbm5lY3Rpb24pKQogewogfQpAQCAtNTYsOCArNTYsMTQgQEAgdm9p
ZCBGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlOjpnZXRGaWxlSGFuZGxlKGNvbnN0IFN0cmluZyYg
bmFtZSwgc3RkOjpvcHRpb25hbDwKICAgICAgICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkK
ICAgICAgICAgICAgIHJldHVybiBwcm9taXNlLnJlamVjdChyZXN1bHQucmVsZWFzZUV4Y2VwdGlv
bigpKTsKIAorICAgICAgICBhdXRvIGlkZW50aWZpZXIgPSByZXN1bHQucmV0dXJuVmFsdWUoKTsK
ICAgICAgICAgYXV0byogY29udGV4dCA9IHdlYWtUaGlzID8gd2Vha1RoaXMtPnNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQoKSA6IG51bGxwdHI7Ci0gICAgICAgIHByb21pc2Uuc2V0dGxlKEZpbGVTeXN0
ZW1GaWxlSGFuZGxlOjpjcmVhdGUoY29udGV4dCwgU3RyaW5nIHsgbmFtZSB9LCByZXN1bHQucmV0
dXJuVmFsdWUoKSwgV1RGTW92ZShjb25uZWN0aW9uKSkpOworICAgICAgICBpZiAoIWNvbnRleHQp
IHsKKyAgICAgICAgICAgIGNvbm5lY3Rpb24tPmNsb3NlSGFuZGxlKGlkZW50aWZpZXIpOworICAg
ICAgICAgICAgcmV0dXJuIHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVy
cm9yLCAiQ29udGV4dCBoYXMgc3RvcHBlZCJfcyB9KTsKKyAgICAgICAgfQorCisgICAgICAgIHBy
b21pc2Uuc2V0dGxlKEZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpjcmVhdGUoKmNvbnRleHQsIFN0cmlu
ZyB7IG5hbWUgfSwgcmVzdWx0LnJldHVyblZhbHVlKCksIFdURk1vdmUoY29ubmVjdGlvbikpKTsK
ICAgICB9KTsKIH0KIApAQCAtNzEsOCArNzcsMTQgQEAgdm9pZCBGaWxlU3lzdGVtRGlyZWN0b3J5
SGFuZGxlOjpnZXREaXJlY3RvcnlIYW5kbGUoY29uc3QgU3RyaW5nJiBuYW1lLCBzdGQ6Om9wdGkK
ICAgICAgICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkKICAgICAgICAgICAgIHJldHVybiBw
cm9taXNlLnJlamVjdChyZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpKTsKIAorICAgICAgICBhdXRv
IGlkZW50aWZpZXIgPSByZXN1bHQucmV0dXJuVmFsdWUoKTsKICAgICAgICAgYXV0byogY29udGV4
dCA9IHdlYWtUaGlzID8gd2Vha1RoaXMtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSA6IG51bGxw
dHI7Ci0gICAgICAgIHByb21pc2Uuc2V0dGxlKEZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGU6OmNy
ZWF0ZShjb250ZXh0LCBTdHJpbmcgeyBuYW1lIH0sIHJlc3VsdC5yZXR1cm5WYWx1ZSgpLCBXVEZN
b3ZlKGNvbm5lY3Rpb24pKSk7CisgICAgICAgIGlmICghY29udGV4dCkgeworICAgICAgICAgICAg
Y29ubmVjdGlvbi0+Y2xvc2VIYW5kbGUoaWRlbnRpZmllcik7CisgICAgICAgICAgICByZXR1cm4g
cHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJDb250ZXh0IGhh
cyBzdG9wcGVkIl9zIH0pOworICAgICAgICB9CisKKyAgICAgICAgcHJvbWlzZS5zZXR0bGUoRmls
ZVN5c3RlbURpcmVjdG9yeUhhbmRsZTo6Y3JlYXRlKCpjb250ZXh0LCBTdHJpbmcgeyBuYW1lIH0s
IGlkZW50aWZpZXIsIFdURk1vdmUoY29ubmVjdGlvbikpKTsKICAgICB9KTsKIH0KIApAQCAtMTE5
LDEyICsxMzEsMTcgQEAgdm9pZCBGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlOjpnZXRIYW5kbGUo
Y29uc3QgU3RyaW5nJiBuYW1lLCBDb21wbGV0aW9uSGFuZGxlcjwKIAogICAgICAgICBhdXRvIFtp
ZGVudGlmaWVyLCBpc0RpcmVjdG9yeV0gPSByZXN1bHQucmVsZWFzZVJldHVyblZhbHVlKCk7CiAg
ICAgICAgIGF1dG8qIGNvbnRleHQgPSB3ZWFrVGhpcyA/IHdlYWtUaGlzLT5zY3JpcHRFeGVjdXRp
b25Db250ZXh0KCkgOiBudWxscHRyOworICAgICAgICBpZiAoIWNvbnRleHQpIHsKKyAgICAgICAg
ICAgIGNvbm5lY3Rpb24tPmNsb3NlSGFuZGxlKGlkZW50aWZpZXIpOworICAgICAgICAgICAgcmV0
dXJuIGNvbXBsZXRpb25IYW5kbGVyKEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCAiQ29u
dGV4dCBoYXMgc3RvcHBlZCJfcyB9KTsKKyAgICAgICAgfQorCiAgICAgICAgIGlmIChpc0RpcmVj
dG9yeSkgewotICAgICAgICAgICAgUmVmPEZpbGVTeXN0ZW1IYW5kbGU+IGhhbmRsZSA9IEZpbGVT
eXN0ZW1EaXJlY3RvcnlIYW5kbGU6OmNyZWF0ZShjb250ZXh0LCBTdHJpbmcgeyBuYW1lIH0sIGlk
ZW50aWZpZXIsIFdURk1vdmUoY29ubmVjdGlvbikpOworICAgICAgICAgICAgUmVmPEZpbGVTeXN0
ZW1IYW5kbGU+IGhhbmRsZSA9IEZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGU6OmNyZWF0ZSgqY29u
dGV4dCwgU3RyaW5nIHsgbmFtZSB9LCBpZGVudGlmaWVyLCBXVEZNb3ZlKGNvbm5lY3Rpb24pKTsK
ICAgICAgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKGhhbmRsZSkpOwog
ICAgICAgICB9CiAKLSAgICAgICAgUmVmPEZpbGVTeXN0ZW1IYW5kbGU+IGhhbmRsZSA9IEZpbGVT
eXN0ZW1GaWxlSGFuZGxlOjpjcmVhdGUoY29udGV4dCwgU3RyaW5nIHsgbmFtZSB9LCBpZGVudGlm
aWVyLCBXVEZNb3ZlKGNvbm5lY3Rpb24pKTsKKyAgICAgICAgUmVmPEZpbGVTeXN0ZW1IYW5kbGU+
IGhhbmRsZSA9IEZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpjcmVhdGUoKmNvbnRleHQsIFN0cmluZyB7
IG5hbWUgfSwgaWRlbnRpZmllciwgV1RGTW92ZShjb25uZWN0aW9uKSk7CiAgICAgICAgIGNvbXBs
ZXRpb25IYW5kbGVyKFdURk1vdmUoaGFuZGxlKSk7CiAgICAgfSk7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbURpcmVjdG9y
eUhhbmRsZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVT
eXN0ZW1EaXJlY3RvcnlIYW5kbGUuaAppbmRleCAxZTg0MzI4YjdiMjg0MjhjYWY3ODI1M2ZiOWVl
ZGVmMGZjMGRmZGYwLi5jZTZhNTM4NjBhYjBjOWU5MzExMzdhYWU1Zjk4NmM1ODg4OTYwMGJkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5
c3RlbURpcmVjdG9yeUhhbmRsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5
c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlLmgKQEAgLTQ3LDcgKzQ3LDcgQEAg
cHVibGljOgogICAgICAgICBib29sIHJlY3Vyc2l2ZSB7IGZhbHNlIH07CiAgICAgfTsKIAotICAg
IFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWY8RmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZT4gY3Jl
YXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBTdHJpbmcmJiwgRmlsZVN5c3RlbUhhbmRsZUlk
ZW50aWZpZXIsIFJlZjxGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24+JiYpOworICAgIFdFQkNP
UkVfRVhQT1JUIHN0YXRpYyBSZWY8RmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZT4gY3JlYXRlKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBTdHJpbmcmJiwgRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZp
ZXIsIFJlZjxGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24+JiYpOwogICAgIHZvaWQgZ2V0Rmls
ZUhhbmRsZShjb25zdCBTdHJpbmcmIG5hbWUsIHN0ZDo6b3B0aW9uYWw8R2V0RmlsZU9wdGlvbnM+
LCBET01Qcm9taXNlRGVmZXJyZWQ8SURMSW50ZXJmYWNlPEZpbGVTeXN0ZW1GaWxlSGFuZGxlPj4m
Jik7CiAgICAgdm9pZCBnZXREaXJlY3RvcnlIYW5kbGUoY29uc3QgU3RyaW5nJiBuYW1lLCBzdGQ6
Om9wdGlvbmFsPEdldERpcmVjdG9yeU9wdGlvbnM+LCBET01Qcm9taXNlRGVmZXJyZWQ8SURMSW50
ZXJmYWNlPEZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGU+PiYmKTsKICAgICB2b2lkIHJlbW92ZUVu
dHJ5KGNvbnN0IFN0cmluZyYgbmFtZSwgc3RkOjpvcHRpb25hbDxSZW1vdmVPcHRpb25zPiwgRE9N
UHJvbWlzZURlZmVycmVkPHZvaWQ+JiYpOwpAQCAtNzcsNyArNzcsNyBAQCBwdWJsaWM6CiAgICAg
UmVmPEl0ZXJhdG9yPiBjcmVhdGVJdGVyYXRvcigpOwogCiBwcml2YXRlOgotICAgIEZpbGVTeXN0
ZW1EaXJlY3RvcnlIYW5kbGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFN0cmluZyYmLCBGaWxl
U3lzdGVtSGFuZGxlSWRlbnRpZmllciwgUmVmPEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbj4m
Jik7CisgICAgRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZShTY3JpcHRFeGVjdXRpb25Db250ZXh0
JiwgU3RyaW5nJiYsIEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBSZWY8RmlsZVN5c3RlbVN0
b3JhZ2VDb25uZWN0aW9uPiYmKTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVt
RmlsZUhhbmRsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3Mv
RmlsZVN5c3RlbUZpbGVIYW5kbGUuY3BwCmluZGV4IDM2Njg3M2FhZmQ5ZDk4ZTU3NjRjOWIyNTUx
YjNjZTVlZjYyMGJmYjguLjJkYmI0ZTNhODAwZmUyZjQ1ODk2MTdkYTE3YzNjNTMzMDkwMWRiMWQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxl
U3lzdGVtRmlsZUhhbmRsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lz
dGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmNwcApAQCAtMzYsMTIgKzM2LDEyIEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKEZpbGVTeXN0
ZW1GaWxlSGFuZGxlKTsKIAotUmVmPEZpbGVTeXN0ZW1GaWxlSGFuZGxlPiBGaWxlU3lzdGVtRmls
ZUhhbmRsZTo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFN0cmluZyYm
IG5hbWUsIEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFJlZjxGaWxlU3lz
dGVtU3RvcmFnZUNvbm5lY3Rpb24+JiYgY29ubmVjdGlvbikKK1JlZjxGaWxlU3lzdGVtRmlsZUhh
bmRsZT4gRmlsZVN5c3RlbUZpbGVIYW5kbGU6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0
JiBjb250ZXh0LCBTdHJpbmcmJiBuYW1lLCBGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVu
dGlmaWVyLCBSZWY8RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24pCiB7
CiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRmlsZVN5c3RlbUZpbGVIYW5kbGUoY29udGV4dCwg
V1RGTW92ZShuYW1lKSwgaWRlbnRpZmllciwgV1RGTW92ZShjb25uZWN0aW9uKSkpOwogfQogCi1G
aWxlU3lzdGVtRmlsZUhhbmRsZTo6RmlsZVN5c3RlbUZpbGVIYW5kbGUoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCogY29udGV4dCwgU3RyaW5nJiYgbmFtZSwgRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZp
ZXIgaWRlbnRpZmllciwgUmVmPEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbj4mJiBjb25uZWN0
aW9uKQorRmlsZVN5c3RlbUZpbGVIYW5kbGU6OkZpbGVTeXN0ZW1GaWxlSGFuZGxlKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFN0cmluZyYmIG5hbWUsIEZpbGVTeXN0ZW1IYW5kbGVJ
ZGVudGlmaWVyIGlkZW50aWZpZXIsIFJlZjxGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24+JiYg
Y29ubmVjdGlvbikKICAgICA6IEZpbGVTeXN0ZW1IYW5kbGUoY29udGV4dCwgRmlsZVN5c3RlbUhh
bmRsZTo6S2luZDo6RmlsZSwgV1RGTW92ZShuYW1lKSwgaWRlbnRpZmllciwgV1RGTW92ZShjb25u
ZWN0aW9uKSkKIHsKIH0KQEAgLTYwLDExICs2MCwxOCBAQCB2b2lkIEZpbGVTeXN0ZW1GaWxlSGFu
ZGxlOjpjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKERPTVByb21pc2VEZWZlcnJlZDxJRExJbnRlcmZh
YwogICAgICAgICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKQogICAgICAgICAgICAgcmV0dXJu
IHByb21pc2UucmVqZWN0KHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCkpOwogCi0gICAgICAgIGF1
dG8gcmVzdWx0VmFsdWUgPSByZXN1bHQucmVsZWFzZVJldHVyblZhbHVlKCk7Ci0gICAgICAgIGlm
IChyZXN1bHRWYWx1ZS5zZWNvbmQgPT0gRmlsZVN5c3RlbTo6aW52YWxpZFBsYXRmb3JtRmlsZUhh
bmRsZSkKKyAgICAgICAgYXV0byBbaWRlbnRpZmllciwgZmlsZV0gPSByZXN1bHQucmVsZWFzZVJl
dHVyblZhbHVlKCk7CisgICAgICAgIGlmIChmaWxlID09IEZpbGVTeXN0ZW06OmludmFsaWRQbGF0
Zm9ybUZpbGVIYW5kbGUpCiAgICAgICAgICAgICByZXR1cm4gcHJvbWlzZS5yZWplY3QoRXhjZXB0
aW9uIHsgVW5rbm93bkVycm9yLCAiSW52YWxpZCBwbGF0Zm9ybSBmaWxlIGhhbmRsZSJfcyB9KTsK
IAotICAgICAgICBwcm9taXNlLnNldHRsZShGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6Y3Jl
YXRlKHByb3RlY3RlZFRoaXMtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgcHJvdGVjdGVkVGhp
cy5nZXQoKSwgcmVzdWx0VmFsdWUuZmlyc3QsIHJlc3VsdFZhbHVlLnNlY29uZCkpOworICAgICAg
ICBhdXRvKiBjb250ZXh0ID0gcHJvdGVjdGVkVGhpcy0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgp
OworICAgICAgICBpZiAoIWNvbnRleHQpIHsKKyAgICAgICAgICAgIEZpbGVTeXN0ZW06OmNsb3Nl
RmlsZShmaWxlKTsKKyAgICAgICAgICAgIHByb3RlY3RlZFRoaXMtPmNsb3NlKGlkZW50aWZpZXIs
IHsgfSk7CisgICAgICAgICAgICByZXR1cm4gcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgSW52
YWxpZFN0YXRlRXJyb3IsICJDb250ZXh0IGhhcyBzdG9wcGVkIl9zIH0pOworICAgICAgICB9CisK
KyAgICAgICAgcHJvbWlzZS5zZXR0bGUoRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmNyZWF0
ZSgqY29udGV4dCwgcHJvdGVjdGVkVGhpcy5nZXQoKSwgaWRlbnRpZmllciwgZmlsZSkpOwogICAg
IH0pOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1h
Y2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmls
ZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5oCmluZGV4IDk0ZDVlMWUxN2Y5ZjZm
YTE5Nzc0MTQwM2Y3OWU0Yzc4MGM2ZWRkYmUuLmJhYTQyZjhkOTIzMWFhZGRlMjUyOWNmZWMyMDFi
MzRlYjU1ZjI5MTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3Rl
bWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5oCkBAIC0zNyw3ICszNyw3
IEBAIHRlbXBsYXRlPHR5cGVuYW1lPiBjbGFzcyBFeGNlcHRpb25PcjsKIGNsYXNzIEZpbGVTeXN0
ZW1GaWxlSGFuZGxlIGZpbmFsIDogcHVibGljIEZpbGVTeXN0ZW1IYW5kbGUgewogICAgIFdURl9N
QUtFX0lTT19BTExPQ0FURUQoRmlsZVN5c3RlbUZpbGVIYW5kbGUpOwogcHVibGljOgotICAgIFdF
QkNPUkVfRVhQT1JUIHN0YXRpYyBSZWY8RmlsZVN5c3RlbUZpbGVIYW5kbGU+IGNyZWF0ZShTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KiwgU3RyaW5nJiYsIEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVy
LCBSZWY8RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uPiYmKTsKKyAgICBXRUJDT1JFX0VYUE9S
VCBzdGF0aWMgUmVmPEZpbGVTeXN0ZW1GaWxlSGFuZGxlPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCYsIFN0cmluZyYmLCBGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgUmVmPEZpbGVT
eXN0ZW1TdG9yYWdlQ29ubmVjdGlvbj4mJik7CiAgICAgdm9pZCBnZXRGaWxlKERPTVByb21pc2VE
ZWZlcnJlZDxJRExJbnRlcmZhY2U8RmlsZT4+JiYpOwogCiAgICAgdm9pZCBjcmVhdGVTeW5jQWNj
ZXNzSGFuZGxlKERPTVByb21pc2VEZWZlcnJlZDxJRExJbnRlcmZhY2U8RmlsZVN5c3RlbVN5bmNB
Y2Nlc3NIYW5kbGU+PiYmKTsKQEAgLTQ3LDcgKzQ3LDcgQEAgcHVibGljOgogICAgIHZvaWQgY2xv
c2UoRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKEV4Y2VwdGlvbk9yPHZvaWQ+JiYpPiYmKTsKIAogcHJpdmF0ZToKLSAgICBGaWxlU3lz
dGVtRmlsZUhhbmRsZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgU3RyaW5nJiYsIEZpbGVTeXN0
ZW1IYW5kbGVJZGVudGlmaWVyLCBSZWY8RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uPiYmKTsK
KyAgICBGaWxlU3lzdGVtRmlsZUhhbmRsZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgU3RyaW5n
JiYsIEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBSZWY8RmlsZVN5c3RlbVN0b3JhZ2VDb25u
ZWN0aW9uPiYmKTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtSGFuZGxlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtSGFu
ZGxlLmNwcAppbmRleCBlZjAxMGYzYTk3NmFiMWJlODMxZDNjZDkyYjZjYTMxNjA5NDE3NmZhLi5i
NWM1Yjk1YjQyZTdiOTVlOGQxMWRkOTZmYzdiNjhlY2M0ZjA1MWYxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUhhbmRsZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1I
YW5kbGUuY3BwCkBAIC0zNCw4ICszNCw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogV1RGX01B
S0VfSVNPX0FMTE9DQVRFRF9JTVBMKEZpbGVTeXN0ZW1IYW5kbGUpOwogCi1GaWxlU3lzdGVtSGFu
ZGxlOjpGaWxlU3lzdGVtSGFuZGxlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIEZp
bGVTeXN0ZW1IYW5kbGU6OktpbmQga2luZCwgU3RyaW5nJiYgbmFtZSwgRmlsZVN5c3RlbUhhbmRs
ZUlkZW50aWZpZXIgaWRlbnRpZmllciwgUmVmPEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbj4m
JiBjb25uZWN0aW9uKQotICAgIDogQWN0aXZlRE9NT2JqZWN0KGNvbnRleHQpCitGaWxlU3lzdGVt
SGFuZGxlOjpGaWxlU3lzdGVtSGFuZGxlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQs
IEZpbGVTeXN0ZW1IYW5kbGU6OktpbmQga2luZCwgU3RyaW5nJiYgbmFtZSwgRmlsZVN5c3RlbUhh
bmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgUmVmPEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlv
bj4mJiBjb25uZWN0aW9uKQorICAgIDogQWN0aXZlRE9NT2JqZWN0KCZjb250ZXh0KQogICAgICwg
bV9raW5kKGtpbmQpCiAgICAgLCBtX25hbWUoV1RGTW92ZShuYW1lKSkKICAgICAsIG1faWRlbnRp
ZmllcihpZGVudGlmaWVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxl
c3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1IYW5kbGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
ZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtSGFuZGxlLmgKaW5kZXggMGE4NWUwMjhkYjM1ZmY1
ZGZmNjMwMWU2ZDE5M2IwNjMxMTNiM2EyOC4uYmYyODA1MDA5MDNmN2E1Njg4Y2U5ZGFlYTg4NTgy
NjI5NjgyNDk5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVt
YWNjZXNzL0ZpbGVTeXN0ZW1IYW5kbGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Zp
bGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUhhbmRsZS5oCkBAIC01NCw3ICs1NCw3IEBAIHB1Ymxp
YzoKICAgICB2b2lkIG1vdmUoRmlsZVN5c3RlbUhhbmRsZSYsIGNvbnN0IFN0cmluZyYgbmV3TmFt
ZSwgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYpOwogCiBwcm90ZWN0ZWQ6Ci0gICAgRmlsZVN5
c3RlbUhhbmRsZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgS2luZCwgU3RyaW5nJiYgbmFtZSwg
RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFJlZjxGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rp
b24+JiYpOworICAgIEZpbGVTeXN0ZW1IYW5kbGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIEtp
bmQsIFN0cmluZyYmIG5hbWUsIEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBSZWY8RmlsZVN5
c3RlbVN0b3JhZ2VDb25uZWN0aW9uPiYmKTsKICAgICBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rp
b24mIGNvbm5lY3Rpb24oKSB7IHJldHVybiBtX2Nvbm5lY3Rpb24uZ2V0KCk7IH0KIAogcHJpdmF0
ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9G
aWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmls
ZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaAppbmRleCAyN2ZhMWUy
YzljZWVlMjU2NWNmMzc1YmE2OTRjNGE1YWMxN2U5Nzc0Li43M2ViZjk5YzQ1ZTQxNjFkY2U0MTA2
ODNlZDM4NDE1OTc0OGFiYTg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Zp
bGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVj
dGlvbi5oCkBAIC01MCw2ICs1MCw3IEBAIHB1YmxpYzoKICAgICB1c2luZyBHZXRIYW5kbGVOYW1l
c0NhbGxiYWNrID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25PcjxWZWN0b3I8U3Ry
aW5nPj4mJik+OwogICAgIHVzaW5nIEdldEhhbmRsZVdpdGhUeXBlQ2FsbGJhY2sgPSBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPHN0ZDo6cGFpcjxGaWxlU3lzdGVtSGFuZGxlSWRl
bnRpZmllciwgYm9vbD4+JiYpPjsKIAorICAgIHZpcnR1YWwgdm9pZCBjbG9zZUhhbmRsZShGaWxl
U3lzdGVtSGFuZGxlSWRlbnRpZmllcikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBpc1NhbWVFbnRy
eShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIs
IFNhbWVFbnRyeUNhbGxiYWNrJiYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgbW92ZShGaWxlU3lz
dGVtSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIGNvbnN0IFN0
cmluZyYgbmV3TmFtZSwgVm9pZENhbGxiYWNrJiYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZ2V0
RmlsZUhhbmRsZShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1l
LCBib29sIGNyZWF0ZUlmTmVjZXNzYXJ5LCBHZXRIYW5kbGVDYWxsYmFjayYmKSA9IDA7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3Rl
bVN5bmNBY2Nlc3NIYW5kbGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVt
YWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmNwcAppbmRleCAyNGZjMmE3YTQyMzgz
ODc5ZjhlZGY5NWE2Y2FlZDgyZjM4YjFjMjY4Li5hNDZlMGRjMzA2M2UzZWYyNjYyNmQwZDliMjAx
YTMwNWNlZGU5YTYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0
ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5j
cHAKQEAgLTMzLDEzICszMywxMyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVJlZjxGaWxl
U3lzdGVtU3luY0FjY2Vzc0hhbmRsZT4gRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmNyZWF0
ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBGaWxlU3lzdGVtRmlsZUhhbmRsZSYg
c291cmNlLCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwg
RmlsZVN5c3RlbTo6UGxhdGZvcm1GaWxlSGFuZGxlIGZpbGUpCitSZWY8RmlsZVN5c3RlbVN5bmNB
Y2Nlc3NIYW5kbGU+IEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpjcmVhdGUoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCYgY29udGV4dCwgRmlsZVN5c3RlbUZpbGVIYW5kbGUmIHNvdXJjZSwgRmls
ZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIEZpbGVTeXN0ZW06
OlBsYXRmb3JtRmlsZUhhbmRsZSBmaWxlKQogewogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEZp
bGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlKGNvbnRleHQsIHNvdXJjZSwgaWRlbnRpZmllciwgZmls
ZSkpOwogfQogCi1GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6RmlsZVN5c3RlbVN5bmNBY2Nl
c3NIYW5kbGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgRmlsZVN5c3RlbUZpbGVI
YW5kbGUmIHNvdXJjZSwgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGlkZW50
aWZpZXIsIEZpbGVTeXN0ZW06OlBsYXRmb3JtRmlsZUhhbmRsZSBmaWxlKQotICAgIDogQWN0aXZl
RE9NT2JqZWN0KGNvbnRleHQpCitGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6RmlsZVN5c3Rl
bVN5bmNBY2Nlc3NIYW5kbGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgRmlsZVN5
c3RlbUZpbGVIYW5kbGUmIHNvdXJjZSwgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlm
aWVyIGlkZW50aWZpZXIsIEZpbGVTeXN0ZW06OlBsYXRmb3JtRmlsZUhhbmRsZSBmaWxlKQorICAg
IDogQWN0aXZlRE9NT2JqZWN0KCZjb250ZXh0KQogICAgICwgbV9zb3VyY2Uoc291cmNlKQogICAg
ICwgbV9pZGVudGlmaWVyKGlkZW50aWZpZXIpCiAgICAgLCBtX2ZpbGUoZmlsZSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3lu
Y0FjY2Vzc0hhbmRsZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNz
L0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmgKaW5kZXggZWQyOWJlNTkxNmYxOTkyOWE5MTMy
MjU2NjUxZWVkZDRmZmI3YWQ3Yi4uNzBhZmYzMzlhMjEwOTMwNDgwZTQ0N2MyMDg1NzkxZjUyMzJi
YTEzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNz
L0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmgKQEAgLTQ0LDcg
KzQ0LDcgQEAgcHVibGljOgogICAgICAgICB1bnNpZ25lZCBsb25nIGxvbmcgYXQ7CiAgICAgfTsK
IAotICAgIHN0YXRpYyBSZWY8RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU+IGNyZWF0ZShTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KiwgRmlsZVN5c3RlbUZpbGVIYW5kbGUmLCBGaWxlU3lzdGVtU3lu
Y0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW06OlBsYXRmb3JtRmlsZUhhbmRsZSk7
CisgICAgc3RhdGljIFJlZjxGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZT4gY3JlYXRlKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQmLCBGaWxlU3lzdGVtRmlsZUhhbmRsZSYsIEZpbGVTeXN0ZW1TeW5j
QWNjZXNzSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbTo6UGxhdGZvcm1GaWxlSGFuZGxlKTsK
ICAgICB+RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUoKTsKIAogICAgIHZvaWQgdHJ1bmNhdGUo
dW5zaWduZWQgbG9uZyBsb25nIHNpemUsIERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmKTsKQEAg
LTU2LDcgKzU2LDcgQEAgcHVibGljOgogICAgIEV4Y2VwdGlvbk9yPHVuc2lnbmVkIGxvbmcgbG9u
Zz4gd3JpdGUoQnVmZmVyU291cmNlJiYsIEZpbGVzeXN0ZW1SZWFkV3JpdGVPcHRpb25zKTsKIAog
cHJpdmF0ZToKLSAgICBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZShTY3JpcHRFeGVjdXRpb25D
b250ZXh0KiwgRmlsZVN5c3RlbUZpbGVIYW5kbGUmLCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRs
ZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW06OlBsYXRmb3JtRmlsZUhhbmRsZSk7CisgICAgRmlsZVN5
c3RlbVN5bmNBY2Nlc3NIYW5kbGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIEZpbGVTeXN0ZW1G
aWxlSGFuZGxlJiwgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lz
dGVtOjpQbGF0Zm9ybUZpbGVIYW5kbGUpOwogICAgIGJvb2wgaXNDbG9zaW5nT3JDbG9zZWQoKSBj
b25zdDsKICAgICB1c2luZyBDbG9zZUNhbGxiYWNrID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChF
eGNlcHRpb25Pcjx2b2lkPiYmKT47CiAgICAgdm9pZCBjbG9zZUludGVybmFsKENsb3NlQ2FsbGJh
Y2smJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nl
c3MvV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rp
b24uY3BwCmluZGV4IDY3MWFjNGYxMThhOTNhNmQ2NjE4MjJmOGY1ZTdkMmFhMDMwYTFhMjguLmFm
ZGY4YzdlOTQwMjJjNzJlMWZlMTdjOTE5MWNjZTc4NWYyNDc1MzkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3RvcmFn
ZUNvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFj
Y2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwCkBAIC03NSw2ICs3NSwx
NiBAQCB2b2lkIFdvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6c2NvcGVDbG9zZWQo
KQogICAgIG1fc2NvcGUgPSBudWxscHRyOwogfQogCit2b2lkIFdvcmtlckZpbGVTeXN0ZW1TdG9y
YWdlQ29ubmVjdGlvbjo6Y2xvc2VIYW5kbGUoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRl
bnRpZmllcikKK3sKKyAgICBpZiAoIW1fc2NvcGUpCisgICAgICAgIHJldHVybjsKKworICAgIGNh
bGxPbk1haW5UaHJlYWQoW21haW5UaHJlYWRDb25uZWN0aW9uID0gbV9tYWluVGhyZWFkQ29ubmVj
dGlvbiwgaWRlbnRpZmllcl0oKSBtdXRhYmxlIHsKKyAgICAgICAgbWFpblRocmVhZENvbm5lY3Rp
b24tPmNsb3NlSGFuZGxlKGlkZW50aWZpZXIpOworICAgIH0pOworfQorCiB2b2lkIFdvcmtlckZp
bGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6aXNTYW1lRW50cnkoRmlsZVN5c3RlbUhhbmRsZUlk
ZW50aWZpZXIgaWRlbnRpZmllciwgRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgb3RoZXJJZGVu
dGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OlNhbWVFbnRyeUNhbGxiYWNrJiYg
Y2FsbGJhY2spCiB7CiAgICAgaWYgKCFtX3Njb3BlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVj
dGlvbi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZp
bGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oCmluZGV4IGNhYzliNDJmZThkNWQwZDU4NjFiZWRj
OTY5NTAyMTU2ZTdlMDM1NTYuLjViY2JmYzJhYjI5NjMzMzZmNGM1ZWJmZGIyNzQzMDE5YTI4NTZi
Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9X
b3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9u
LmgKQEAgLTU3LDYgKzU3LDcgQEAgcHJpdmF0ZToKICAgICBXb3JrZXJGaWxlU3lzdGVtU3RvcmFn
ZUNvbm5lY3Rpb24oV29ya2VyR2xvYmFsU2NvcGUmLCBSZWY8RmlsZVN5c3RlbVN0b3JhZ2VDb25u
ZWN0aW9uPiYmKTsKIAogICAgIC8vIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbgorICAgIHZv
aWQgY2xvc2VIYW5kbGUoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIpIGZpbmFsOwogICAgIHZv
aWQgaXNTYW1lRW50cnkoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1IYW5k
bGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OlNhbWVFbnRyeUNhbGxi
YWNrJiYpIGZpbmFsOwogICAgIHZvaWQgbW92ZShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwg
RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmV3TmFtZSwgVm9pZENh
bGxiYWNrJiYpIGZpbmFsOwogICAgIHZvaWQgZ2V0RmlsZUhhbmRsZShGaWxlU3lzdGVtSGFuZGxl
SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBib29sIGNyZWF0ZUlmTmVjZXNzYXJ5LCBG
aWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OkdldEhhbmRsZUNhbGxiYWNrJiYpIGZpbmFsOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdG9yYWdlL1N0b3JhZ2VNYW5hZ2Vy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RvcmFnZS9TdG9yYWdlTWFuYWdlci5jcHAK
aW5kZXggY2YwN2E1YWY0OWM1ZWI0ZjQzMjk1N2IzMTdiYjkwNDVhYzYyODk5MC4uNzgwNGE4MDI3
ZDQwNjkyM2EzNGMzOWVhY2NlYzY5M2NkMTA2MTE2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9zdG9yYWdlL1N0b3JhZ2VNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3N0b3JhZ2UvU3RvcmFnZU1hbmFnZXIuY3BwCkBAIC0xMTksOSArMTE5LDE0IEBA
IHZvaWQgU3RvcmFnZU1hbmFnZXI6OmZpbGVTeXN0ZW1BY2Nlc3NHZXREaXJlY3RvcnkoRE9NUHJv
bWlzZURlZmVycmVkPElETEludGVyZmFjCiAgICAgICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9u
KCkpCiAgICAgICAgICAgICByZXR1cm4gcHJvbWlzZS5yZWplY3QocmVzdWx0LnJlbGVhc2VFeGNl
cHRpb24oKSk7CiAKKyAgICAgICAgYXV0byBbaWRlbnRpZmllciwgY29ubmVjdGlvbl0gPSByZXN1
bHQucmVsZWFzZVJldHVyblZhbHVlKCk7CiAgICAgICAgIGF1dG8qIGNvbnRleHQgPSB3ZWFrTmF2
aWdhdG9yID8gd2Vha05hdmlnYXRvci0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIDogbnVsbHB0
cjsKLSAgICAgICAgYXV0byBpZGVudGlmaWVyQ29ubmVjdGlvblBhaXIgPSByZXN1bHQucmVsZWFz
ZVJldHVyblZhbHVlKCk7Ci0gICAgICAgIHByb21pc2UucmVzb2x2ZShGaWxlU3lzdGVtRGlyZWN0
b3J5SGFuZGxlOjpjcmVhdGUoY29udGV4dCwgeyB9LCBpZGVudGlmaWVyQ29ubmVjdGlvblBhaXIu
Zmlyc3QsIFJlZiB7ICogaWRlbnRpZmllckNvbm5lY3Rpb25QYWlyLnNlY29uZCB9KSk7CisgICAg
ICAgIGlmICghY29udGV4dCkgeworICAgICAgICAgICAgY29ubmVjdGlvbi0+Y2xvc2VIYW5kbGUo
aWRlbnRpZmllcik7CisgICAgICAgICAgICByZXR1cm4gcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9u
IHsgSW52YWxpZFN0YXRlRXJyb3IsICJDb250ZXh0IGhhcyBzdG9wcGVkIl9zIH0pOworICAgICAg
ICB9CisKKyAgICAgICAgcHJvbWlzZS5yZXNvbHZlKEZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGU6
OmNyZWF0ZSgqY29udGV4dCwgeyB9LCBpZGVudGlmaWVyLCBSZWYgeyAqY29ubmVjdGlvbiB9KSk7
CiAgICAgfSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
c3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUuY3BwCmluZGV4IDFmYjE3
NTk4MTQ1NzhiNDlkZWJjZjJmZTNlZjgwNzc5YjA0MWE3N2QuLjYwNzFjYmM1MDFhMGI3NzY2NTFj
YjVlMjRjZmI3MWVkYjY0OTVjZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmNwcApA
QCAtNjksNiArNjksMTQgQEAgRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU6On5GaWxlU3lzdGVtU3Rv
cmFnZUhhbmRsZSgpCiAgICAgICAgIEZpbGVTeXN0ZW06OmNsb3NlRmlsZShtX2hhbmRsZSk7CiB9
CiAKK3ZvaWQgRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OmNsb3NlKCkKK3sKKyAgICBpZiAoIW1f
bWFuYWdlcikKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9tYW5hZ2VyLT5jbG9zZUhhbmRsZSgq
dGhpcyk7Cit9CisKIGJvb2wgRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OmlzU2FtZUVudHJ5KFdl
YkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIpCiB7CiAgICAgYXV0
byBwYXRoID0gbV9tYW5hZ2VyLT5nZXRQYXRoKGlkZW50aWZpZXIpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxl
LmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3Jh
Z2VIYW5kbGUuaAppbmRleCBjMGE5ZTNiMWFiY2Y4ZmQ5OGE1Mjc2MTRiNGM3MTAyN2Y2NTgxNWRm
Li4zZGFmNDcyZjcxNmM1M2RiNWM0YzJiOGU5NThmNTc0ZjhlZWVhZGQ4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5k
bGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3Rl
bVN0b3JhZ2VIYW5kbGUuaApAQCAtNTAsNiArNTAsNyBAQCBwdWJsaWM6CiAgICAgY29uc3QgU3Ry
aW5nJiBwYXRoKCkgY29uc3QgeyByZXR1cm4gbV9wYXRoOyB9CiAgICAgVHlwZSB0eXBlKCkgY29u
c3QgeyByZXR1cm4gbV90eXBlOyB9CiAKKyAgICB2b2lkIGNsb3NlKCk7CiAgICAgYm9vbCBpc1Nh
bWVFbnRyeShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllcik7CiAgICAgc3RkOjpv
cHRpb25hbDxGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiBtb3ZlKFdlYkNvcmU6OkZpbGVTeXN0ZW1I
YW5kbGVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5ld05hbWUpOwogICAgIEV4cGVjdGVkPFdl
YkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUVycm9y
PiBnZXRGaWxlSGFuZGxlKElQQzo6Q29ubmVjdGlvbjo6VW5pcXVlSUQsIFN0cmluZyYmIG5hbWUs
IGJvb2wgY3JlYXRlSWZOZWNlc3NhcnkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlci5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyLmNw
cAppbmRleCBiOTBhNGZhZWU1M2VlMDMzOTMxYjk5MDY3OWFmYjQ2YThlNTczMmMzLi4zOGFhMjY1
NWMzOWRkYzIzN2JhNWEzODBhNWQ1NDkxMjQyYzM3ZjUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3Jh
Z2VNYW5hZ2VyLmNwcApAQCAtOTQsNiArOTQsMTQgQEAgRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU6
OlR5cGUgRmlsZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyOjpnZXRUeXBlKFdlYkNvcmU6OkZpbGVTeXMK
ICAgICByZXR1cm4gaGFuZGxlID09IG1faGFuZGxlcy5lbmQoKSA/IEZpbGVTeXN0ZW1TdG9yYWdl
SGFuZGxlOjpUeXBlOjpBbnkgOiBoYW5kbGUtPnZhbHVlLT50eXBlKCk7CiB9CiAKK3ZvaWQgRmls
ZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyOjpjbG9zZUhhbmRsZShGaWxlU3lzdGVtU3RvcmFnZUhhbmRs
ZSYgaGFuZGxlKQoreworICAgIGF1dG8gaWRlbnRpZmllciA9IGhhbmRsZS5pZGVudGlmaWVyKCk7
CisgICAgYXV0byB0YWtlbkhhbmRsZSA9IG1faGFuZGxlcy50YWtlKGlkZW50aWZpZXIpOworICAg
IEFTU0VSVCh0YWtlbkhhbmRsZS5nZXQoKSA9PSAmaGFuZGxlKTsKKyAgICBtX3JlZ2lzdHJ5LnVu
cmVnaXN0ZXJIYW5kbGUoaWRlbnRpZmllcik7Cit9CisKIHZvaWQgRmlsZVN5c3RlbVN0b3JhZ2VN
YW5hZ2VyOjpjb25uZWN0aW9uQ2xvc2VkKElQQzo6Q29ubmVjdGlvbjo6VW5pcXVlSUQgY29ubmVj
dGlvbikKIHsKICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKQEAgLTEwNCw3ICsxMTIs
NyBAQCB2b2lkIEZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlcjo6Y29ubmVjdGlvbkNsb3NlZChJUEM6
OkNvbm5lY3Rpb246OlVuaXF1ZUlEIGNvbm5lYwogCiAgICAgYXV0byBpZGVudGlmaWVycyA9IGNv
bm5lY3Rpb25IYW5kbGVzLT52YWx1ZTsKICAgICBmb3IgKGF1dG8gaWRlbnRpZmllciA6IGlkZW50
aWZpZXJzKSB7Ci0gICAgICAgIGF1dG8gaGFuZGxlID0gbV9oYW5kbGVzLnRha2UoaWRlbnRpZmll
cik7CisgICAgICAgIG1faGFuZGxlcy5yZW1vdmUoaWRlbnRpZmllcik7CiAgICAgICAgIG1fcmVn
aXN0cnkudW5yZWdpc3RlckhhbmRsZShpZGVudGlmaWVyKTsKICAgICB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZU1h
bmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVt
U3RvcmFnZU1hbmFnZXIuaAppbmRleCBmZjAxYWJiNTRmZjE2MGNkMTQyZGFjODE3NTIxMmEyZjhm
OTdhNTRiLi5iODU3Njc2OGIzNTVhY2IzYWEwYzM3MDM4Y2M1MWVjYzkzMmIzOTZjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3Jh
Z2VNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0Zp
bGVTeXN0ZW1TdG9yYWdlTWFuYWdlci5oCkBAIC00Miw2ICs0Miw3IEBAIHB1YmxpYzoKICAgICBF
eHBlY3RlZDxXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0
b3JhZ2VFcnJvcj4gY3JlYXRlSGFuZGxlKElQQzo6Q29ubmVjdGlvbjo6VW5pcXVlSUQsIEZpbGVT
eXN0ZW1TdG9yYWdlSGFuZGxlOjpUeXBlLCBTdHJpbmcmJiBwYXRoLCBTdHJpbmcmJiBuYW1lLCBi
b29sIGNyZWF0ZUlmTmVjZXNzYXJ5KTsKICAgICBjb25zdCBTdHJpbmcmIGdldFBhdGgoV2ViQ29y
ZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIpOwogICAgIEZpbGVTeXN0ZW1TdG9yYWdlSGFu
ZGxlOjpUeXBlIGdldFR5cGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIpOwor
ICAgIHZvaWQgY2xvc2VIYW5kbGUoRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUmKTsKICAgICB2b2lk
IGNvbm5lY3Rpb25DbG9zZWQoSVBDOjpDb25uZWN0aW9uOjpVbmlxdWVJRCk7CiAgICAgRXhwZWN0
ZWQ8V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdl
RXJyb3I+IGdldERpcmVjdG9yeShJUEM6OkNvbm5lY3Rpb246OlVuaXF1ZUlEKTsKICAgICBib29s
IGFjcXVpcmVMb2NrRm9yRmlsZShjb25zdCBTdHJpbmcmIHBhdGgsIFdlYkNvcmU6OkZpbGVTeXN0
ZW1IYW5kbGVJZGVudGlmaWVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5jcHAKaW5kZXggNjli
YWM4MjViZWZmMjc5ZTRlMDBkMTc5NzNjMWE0NWI2OTU2Yjk2NS4uY2U1ODExNDAzNGY5OGVlMzI2
ZGFiNzdkYWZhZjU2MjNkZGQyMjAwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5jcHAKQEAg
LTE3MSw2ICsxNzEsMTQgQEAgdm9pZCBOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OmZpbGVTeXN0ZW1H
ZXREaXJlY3RvcnkoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLAogICAgIGNvbXBsZXRpb25I
YW5kbGVyKGxvY2FsT3JpZ2luU3RvcmFnZU1hbmFnZXIob3JpZ2luKS5maWxlU3lzdGVtU3RvcmFn
ZU1hbmFnZXIoKm1fZmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVSZWdpc3RyeSkuZ2V0RGlyZWN0b3J5
KGNvbm5lY3Rpb24udW5pcXVlSUQoKSkpOwogfQogCit2b2lkIE5ldHdvcmtTdG9yYWdlTWFuYWdl
cjo6Y2xvc2VIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRp
ZmllcikKK3sKKyAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKKworICAgIGlmIChhdXRv
IGhhbmRsZSA9IG1fZmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVSZWdpc3RyeS0+Z2V0SGFuZGxlKGlk
ZW50aWZpZXIpKQorICAgICAgICBoYW5kbGUtPmNsb3NlKCk7Cit9CisKIHZvaWQgTmV0d29ya1N0
b3JhZ2VNYW5hZ2VyOjppc1NhbWVFbnRyeShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRp
ZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciB0YXJn
ZXRJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25I
YW5kbGVyKQogewogICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdl
ci5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdl
TWFuYWdlci5oCmluZGV4IDA0Y2MzYWYwOWJhYjNkMmYwZTBmNzAxYzFmZjI5MDBhNjE0MTYzNTYu
LmUyNTUwNDE4OTYwZmQ0ZjdlMzhjODQxYzQwOGYzZjQwNWFkNjYzNzggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3Jh
Z2VNYW5hZ2VyLmgKQEAgLTY5LDYgKzY5LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHBlcnNpc3Rl
ZChjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJv
b2wpPiYmKTsKICAgICB2b2lkIHBlcnNpc3QoY29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CiAgICAgdm9pZCBmaWxlU3lzdGVtR2V0
RGlyZWN0b3J5KElQQzo6Q29ubmVjdGlvbiYsIGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0ZWQ8V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRs
ZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4mJik7CisgICAgdm9pZCBjbG9z
ZUhhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllcik7CiAgICAgdm9pZCBp
c1NhbWVFbnRyeShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgV2ViQ29yZTo6
RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+
JiYpOwogICAgIHZvaWQgbW92ZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwg
V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmV3TmFt
ZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFsPEZpbGVTeXN0ZW1TdG9yYWdl
RXJyb3I+KT4mJik7CiAgICAgdm9pZCBnZXRGaWxlSGFuZGxlKElQQzo6Q29ubmVjdGlvbiYsIFdl
YkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBTdHJpbmcmJiBuYW1lLCBib29sIGNy
ZWF0ZUlmTmVjZXNzYXJ5LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4cGVjdGVkPFdlYkNvcmU6
OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPik+JiYp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdv
cmtTdG9yYWdlTWFuYWdlci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIubWVzc2FnZXMuaW4KaW5kZXggODJlYTMx
MGY4MTUxZWRmMmM0M2FiYTQ1MTE0YTgwMWM0Yjc0NmY3Mi4uMWZiYmYzN2JhYWQ3ZDA0M2M4NzVj
ZThkZjFiYWI5YTE1NzZhNzkwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5tZXNzYWdlcy5pbgorKysgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLm1l
c3NhZ2VzLmluCkBAIC0yNyw2ICsyNyw3IEBACiAgICAgUGVyc2lzdGVkKHN0cnVjdCBXZWJDb3Jl
OjpDbGllbnRPcmlnaW4gb3JpZ2luKSAtPiAoYm9vbCBwZXJzaXN0ZWQpIEFzeW5jCiAgICAgUGVy
c2lzdChzdHJ1Y3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luIG9yaWdpbikgLT4gKGJvb2wgcGVyc2lz
dGVkKSBBc3luYwogICAgIEZpbGVTeXN0ZW1HZXREaXJlY3Rvcnkoc3RydWN0IFdlYkNvcmU6OkNs
aWVudE9yaWdpbiBvcmlnaW4pIC0+IChFeHBlY3RlZDxXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxl
SWRlbnRpZmllciwgV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiByZXN1bHQpIEFzeW5j
IFdhbnRzQ29ubmVjdGlvbgorICAgIENsb3NlSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5k
bGVJZGVudGlmaWVyIGlkZW50aWZpZXIpCiAgICAgSXNTYW1lRW50cnkoV2ViQ29yZTo6RmlsZVN5
c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRs
ZUlkZW50aWZpZXIgdGFyZ2V0SWRlbnRpZmllcikgLT4gKGJvb2wgcmVzdWx0KSBBc3luYwogICAg
IEdldEZpbGVIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRp
ZmllciwgU3RyaW5nIG5hbWUsIGJvb2wgY3JlYXRlSWZOZWNlc3NhcnkpIC0+IChFeHBlY3RlZDxX
ZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgV2ViS2l0OjpGaWxlU3lzdGVtU3Rv
cmFnZUVycm9yPiByZXN1bHQpIEFzeW5jIFdhbnRzQ29ubmVjdGlvbgogICAgIEdldERpcmVjdG9y
eUhhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBT
dHJpbmcgbmFtZSwgYm9vbCBjcmVhdGVJZk5lY2Vzc2FyeSkgLT4gKEV4cGVjdGVkPFdlYkNvcmU6
OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJy
b3I+IHJlc3VsdCkgQXN5bmMgV2FudHNDb25uZWN0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0
aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGaWxl
U3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwCmluZGV4IDFmMDZiNTlmOGNjNjYwY2EzMzkwNjA1
ZWVmMTYyMTU3NzdhYzVhNmEuLjYzNWVlZjg1NTdmOWY0ZDRlYWNiODgzMWJjZmI2NjQyZGZjMGE4
ZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3Bw
CkBAIC00OCw2ICs0OCwxNCBAQCB2b2lkIFdlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6
Y29ubmVjdGlvbkNsb3NlZCgpCiAgICAgbV9jb25uZWN0aW9uID0gbnVsbHB0cjsKIH0KIAordm9p
ZCBXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmNsb3NlSGFuZGxlKEZpbGVTeXN0ZW1I
YW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAgaWYgKCFtX2Nvbm5lY3Rpb24pCisg
ICAgICAgIHJldHVybjsKKworICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6TmV0d29y
a1N0b3JhZ2VNYW5hZ2VyOjpDbG9zZUhhbmRsZShpZGVudGlmaWVyKSwgMCk7Cit9CisKIHZvaWQg
V2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjppc1NhbWVFbnRyeShXZWJDb3JlOjpGaWxl
U3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtSGFu
ZGxlSWRlbnRpZmllciBvdGhlcklkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1TdG9yYWdl
Q29ubmVjdGlvbjo6U2FtZUVudHJ5Q2FsbGJhY2smJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAg
ICBpZiAoIW1fY29ubmVjdGlvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGaWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb24uaAppbmRleCA3YjNhMWQxZTllZDI3NTdlZGExZGViNTQ1NTdlODQ2OWZkZmQ5MGI5
Li5hNzZhN2QxM2MzMGQ1OTgxZmU3MWE3NzRjZDRkMDVjMjE2NDcxNDEwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRmlsZVN5c3RlbVN0b3Jh
Z2VDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oCkBAIC03Miw2ICs3Miw3IEBAIHBy
aXZhdGU6CiAgICAgZXhwbGljaXQgV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uKElQQzo6
Q29ubmVjdGlvbiYpOwogCiAgICAgLy8gRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uCisgICAg
dm9pZCBjbG9zZUhhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllcikgZmlu
YWw7CiAgICAgdm9pZCBpc1NhbWVFbnRyeShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRp
ZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVT
eXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6U2FtZUVudHJ5Q2FsbGJhY2smJikgZmluYWw7CiAgICAg
dm9pZCBtb3ZlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBXZWJDb3JlOjpG
aWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuZXdOYW1lLCBWb2lkQ2Fs
bGJhY2smJikgZmluYWw7CiAgICAgdm9pZCBnZXRGaWxlSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0
ZW1IYW5kbGVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIGJvb2wgY3JlYXRlSWZOZWNl
c3NhcnksIFdlYkNvcmU6OkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6R2V0SGFuZGxlQ2Fs
bGJhY2smJikgZmluYWw7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>442596</attachid>
            <date>2021-10-27 09:23:55 -0700</date>
            <delta_ts>2021-10-28 15:46:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232363-20211027092355.patch</filename>
            <type>text/plain</type>
            <size>32894</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0OTIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjIxN2JjMjBlOGE1OGE3
NWYzZWRjYjY1NjRjOWI2MmJlYTBjZTA3ZS4uZGQwMGRjZmUyZmQwNmY3Y2U1NGJlMzI1YjZkYmZj
ZmQzNWZlNzA3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDIxLTEwLTI3ICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIFJlbGVhc2UgRmlsZVN5c3Rl
bVN0b3JhZ2VIYW5kbGUgd2hlbiBpdCBpcyBub3QgaW4gdXNlCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzIzNjMKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXaGVuIEZpbGVTeXN0ZW1IYW5kbGUgaXMgZGVz
dHJveWVkLCBpdHMgY29ycmVzcG9uZGluZyBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZSBzaG91bGQg
YmUgZGVzdHJveWVkIGFzIGl0IHNob3VsZAorICAgICAgICBub3QgYmUgdXNlZCBhZ2Fpbi4gQWxz
bywgc3RvcCBjcmVhdGluZyBhIG5ldyBGaWxlU3lzdGVtSGFuZGxlIG9yIEZpbGVTeXN0ZW1TeW5j
QWNjZXNzSGFuZGxlIGlmIGNvbnRleHQgYWxyZWFkeSAKKyAgICAgICAgc3RvcHMuCisKKyAgICAg
ICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlOjpjcmVhdGUp
OgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZTo6RmlsZVN5c3Rl
bURpcmVjdG9yeUhhbmRsZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtRGlyZWN0b3J5
SGFuZGxlOjpnZXRGaWxlSGFuZGxlKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1EaXJl
Y3RvcnlIYW5kbGU6OmdldERpcmVjdG9yeUhhbmRsZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxl
U3lzdGVtRGlyZWN0b3J5SGFuZGxlOjpnZXRIYW5kbGUpOgorICAgICAgICAqIE1vZHVsZXMvZmls
ZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlLmg6CisgICAgICAgICogTW9k
dWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29y
ZTo6RmlsZVN5c3RlbUZpbGVIYW5kbGU6OkZpbGVTeXN0ZW1GaWxlSGFuZGxlKToKKyAgICAgICAg
KFdlYkNvcmU6OkZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKToK
KyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUu
aDoKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUhhbmRsZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlOjpGaWxlU3lzdGVtSGFuZGxl
KToKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUhhbmRsZS5o
OgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb24uaDoKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3Rl
bVN5bmNBY2Nlc3NIYW5kbGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNB
Y2Nlc3NIYW5kbGU6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0Fj
Y2Vzc0hhbmRsZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUpOgorICAgICAgICAqIE1vZHVs
ZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5oOgorICAgICAg
ICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5l
Y3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25u
ZWN0aW9uOjpjbG9zZUhhbmRsZSk6CisgICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNz
L1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oOgorICAgICAgICAqIE1vZHVsZXMv
c3RvcmFnZS9TdG9yYWdlTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdG9yYWdlTWFu
YWdlcjo6ZmlsZVN5c3RlbUFjY2Vzc0dldERpcmVjdG9yeSk6CisKIDIwMjEtMTAtMjcgIE1hcnRp
biBSb2JpbnNvbiAgPG1yb2JpbnNvbkB3ZWJraXQub3JnPgogCiAgICAgICAgIEVsaW1pbmF0ZSBk
dXBsaWNhdGVkIHBsYXRmb3JtLXNwZWNpZmljIGNvZGUgaW4gU2Nyb2xsaW5nVHJlZVN0aWNreU5v
ZGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKaW5kZXggZWI4MmM2ZTExYzJjYjA3NjZkNjIzZjE1Y2E1ZmZjYmIxNzYwNDkzMi4u
NWU4ZWVmMGVmZTM0MGI5Mjc5NTU1N2NmMTZjYmM3ZjVlOTlhZjE1MCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNSBAQAorMjAyMS0xMC0yNyAgU2lodWkgTGl1ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4K
KworICAgICAgICBSZWxlYXNlIEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlIHdoZW4gaXQgaXMgbm90
IGluIHVzZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjMyMzYzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBOZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OmNsb3NlKToKKyAgICAgICAg
KiBOZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmg6CisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZU1hbmFnZXIuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZU1hbmFnZXI6OmNsb3NlSGFuZGxl
KToKKyAgICAgICAgKFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyOjpjb25uZWN0aW9u
Q2xvc2VkKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9y
YWdlTWFuYWdlci5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0
b3JhZ2VNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1N0b3JhZ2VNYW5hZ2Vy
OjpjbG9zZUhhbmRsZSk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3Jr
U3RvcmFnZU1hbmFnZXIuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdv
cmtTdG9yYWdlTWFuYWdlci5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Y2xvc2VIYW5kbGUpOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25u
ZWN0aW9uLmg6CisKIDIwMjEtMTAtMjcgIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkB3ZWJr
aXQub3JnPgogCiAgICAgICAgIEVsaW1pbmF0ZSBkdXBsaWNhdGVkIHBsYXRmb3JtLXNwZWNpZmlj
IGNvZGUgaW4gU2Nyb2xsaW5nVHJlZVN0aWNreU5vZGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRGly
ZWN0b3J5SGFuZGxlLmNwcAppbmRleCA2N2ZmYzhjNDkzZDE0MjQ1MTA0OTMwMjBjYmNmNzNmZWUy
NzEwMThlLi44ODYwY2M3YjM1N2I2ZjkwNjNiZWJiMDI5ZjkwMzA5YmIyZWNmMWM3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbURp
cmVjdG9yeUhhbmRsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVt
YWNjZXNzL0ZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGUuY3BwCkBAIC0zNiwxMiArMzYsMTIgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogCiBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoRmlsZVN5
c3RlbURpcmVjdG9yeUhhbmRsZSk7CiAKLVJlZjxGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlPiBG
aWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCog
Y29udGV4dCwgU3RyaW5nJiYgbmFtZSwgRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRp
ZmllciwgUmVmPEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbj4mJiBjb25uZWN0aW9uKQorUmVm
PEZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGU+IEZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGU6OmNy
ZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBTdHJpbmcmJiBuYW1lLCBGaWxl
U3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBSZWY8RmlsZVN5c3RlbVN0b3JhZ2VD
b25uZWN0aW9uPiYmIGNvbm5lY3Rpb24pCiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRmls
ZVN5c3RlbURpcmVjdG9yeUhhbmRsZShjb250ZXh0LCBXVEZNb3ZlKG5hbWUpLCBpZGVudGlmaWVy
LCBXVEZNb3ZlKGNvbm5lY3Rpb24pKSk7CiB9CiAKLUZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGU6
OkZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4
dCwgU3RyaW5nJiYgbmFtZSwgRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwg
UmVmPEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbj4mJiBjb25uZWN0aW9uKQorRmlsZVN5c3Rl
bURpcmVjdG9yeUhhbmRsZTo6RmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZShTY3JpcHRFeGVjdXRp
b25Db250ZXh0JiBjb250ZXh0LCBTdHJpbmcmJiBuYW1lLCBGaWxlU3lzdGVtSGFuZGxlSWRlbnRp
ZmllciBpZGVudGlmaWVyLCBSZWY8RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uPiYmIGNvbm5l
Y3Rpb24pCiAgICAgOiBGaWxlU3lzdGVtSGFuZGxlKGNvbnRleHQsIEZpbGVTeXN0ZW1IYW5kbGU6
OktpbmQ6OkRpcmVjdG9yeSwgV1RGTW92ZShuYW1lKSwgaWRlbnRpZmllciwgV1RGTW92ZShjb25u
ZWN0aW9uKSkKIHsKIH0KQEAgLTU2LDggKzU2LDE0IEBAIHZvaWQgRmlsZVN5c3RlbURpcmVjdG9y
eUhhbmRsZTo6Z2V0RmlsZUhhbmRsZShjb25zdCBTdHJpbmcmIG5hbWUsIHN0ZDo6b3B0aW9uYWw8
CiAgICAgICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpCiAgICAgICAgICAgICByZXR1cm4g
cHJvbWlzZS5yZWplY3QocmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKSk7CiAKKyAgICAgICAgYXV0
byBpZGVudGlmaWVyID0gcmVzdWx0LnJldHVyblZhbHVlKCk7CiAgICAgICAgIGF1dG8qIGNvbnRl
eHQgPSB3ZWFrVGhpcyA/IHdlYWtUaGlzLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgOiBudWxs
cHRyOwotICAgICAgICBwcm9taXNlLnNldHRsZShGaWxlU3lzdGVtRmlsZUhhbmRsZTo6Y3JlYXRl
KGNvbnRleHQsIFN0cmluZyB7IG5hbWUgfSwgcmVzdWx0LnJldHVyblZhbHVlKCksIFdURk1vdmUo
Y29ubmVjdGlvbikpKTsKKyAgICAgICAgaWYgKCFjb250ZXh0KSB7CisgICAgICAgICAgICBjb25u
ZWN0aW9uLT5jbG9zZUhhbmRsZShpZGVudGlmaWVyKTsKKyAgICAgICAgICAgIHJldHVybiBwcm9t
aXNlLnJlamVjdChFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgIkNvbnRleHQgaGFzIHN0
b3BwZWQiX3MgfSk7CisgICAgICAgIH0KKworICAgICAgICBwcm9taXNlLnNldHRsZShGaWxlU3lz
dGVtRmlsZUhhbmRsZTo6Y3JlYXRlKCpjb250ZXh0LCBTdHJpbmcgeyBuYW1lIH0sIHJlc3VsdC5y
ZXR1cm5WYWx1ZSgpLCBXVEZNb3ZlKGNvbm5lY3Rpb24pKSk7CiAgICAgfSk7CiB9CiAKQEAgLTcx
LDggKzc3LDE0IEBAIHZvaWQgRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZTo6Z2V0RGlyZWN0b3J5
SGFuZGxlKGNvbnN0IFN0cmluZyYgbmFtZSwgc3RkOjpvcHRpCiAgICAgICAgIGlmIChyZXN1bHQu
aGFzRXhjZXB0aW9uKCkpCiAgICAgICAgICAgICByZXR1cm4gcHJvbWlzZS5yZWplY3QocmVzdWx0
LnJlbGVhc2VFeGNlcHRpb24oKSk7CiAKKyAgICAgICAgYXV0byBpZGVudGlmaWVyID0gcmVzdWx0
LnJldHVyblZhbHVlKCk7CiAgICAgICAgIGF1dG8qIGNvbnRleHQgPSB3ZWFrVGhpcyA/IHdlYWtU
aGlzLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgOiBudWxscHRyOwotICAgICAgICBwcm9taXNl
LnNldHRsZShGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlOjpjcmVhdGUoY29udGV4dCwgU3RyaW5n
IHsgbmFtZSB9LCByZXN1bHQucmV0dXJuVmFsdWUoKSwgV1RGTW92ZShjb25uZWN0aW9uKSkpOwor
ICAgICAgICBpZiAoIWNvbnRleHQpIHsKKyAgICAgICAgICAgIGNvbm5lY3Rpb24tPmNsb3NlSGFu
ZGxlKGlkZW50aWZpZXIpOworICAgICAgICAgICAgcmV0dXJuIHByb21pc2UucmVqZWN0KEV4Y2Vw
dGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCAiQ29udGV4dCBoYXMgc3RvcHBlZCJfcyB9KTsKKyAg
ICAgICAgfQorCisgICAgICAgIHByb21pc2Uuc2V0dGxlKEZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5k
bGU6OmNyZWF0ZSgqY29udGV4dCwgU3RyaW5nIHsgbmFtZSB9LCBpZGVudGlmaWVyLCBXVEZNb3Zl
KGNvbm5lY3Rpb24pKSk7CiAgICAgfSk7CiB9CiAKQEAgLTExOSwxMiArMTMxLDE3IEBAIHZvaWQg
RmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZTo6Z2V0SGFuZGxlKGNvbnN0IFN0cmluZyYgbmFtZSwg
Q29tcGxldGlvbkhhbmRsZXI8CiAKICAgICAgICAgYXV0byBbaWRlbnRpZmllciwgaXNEaXJlY3Rv
cnldID0gcmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpOwogICAgICAgICBhdXRvKiBjb250ZXh0
ID0gd2Vha1RoaXMgPyB3ZWFrVGhpcy0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIDogbnVsbHB0
cjsKKyAgICAgICAgaWYgKCFjb250ZXh0KSB7CisgICAgICAgICAgICBjb25uZWN0aW9uLT5jbG9z
ZUhhbmRsZShpZGVudGlmaWVyKTsKKyAgICAgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxl
cihFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgIkNvbnRleHQgaGFzIHN0b3BwZWQiX3Mg
fSk7CisgICAgICAgIH0KKwogICAgICAgICBpZiAoaXNEaXJlY3RvcnkpIHsKLSAgICAgICAgICAg
IFJlZjxGaWxlU3lzdGVtSGFuZGxlPiBoYW5kbGUgPSBGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxl
OjpjcmVhdGUoY29udGV4dCwgU3RyaW5nIHsgbmFtZSB9LCBpZGVudGlmaWVyLCBXVEZNb3ZlKGNv
bm5lY3Rpb24pKTsKKyAgICAgICAgICAgIFJlZjxGaWxlU3lzdGVtSGFuZGxlPiBoYW5kbGUgPSBG
aWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlOjpjcmVhdGUoKmNvbnRleHQsIFN0cmluZyB7IG5hbWUg
fSwgaWRlbnRpZmllciwgV1RGTW92ZShjb25uZWN0aW9uKSk7CiAgICAgICAgICAgICByZXR1cm4g
Y29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShoYW5kbGUpKTsKICAgICAgICAgfQogCi0gICAgICAg
IFJlZjxGaWxlU3lzdGVtSGFuZGxlPiBoYW5kbGUgPSBGaWxlU3lzdGVtRmlsZUhhbmRsZTo6Y3Jl
YXRlKGNvbnRleHQsIFN0cmluZyB7IG5hbWUgfSwgaWRlbnRpZmllciwgV1RGTW92ZShjb25uZWN0
aW9uKSk7CisgICAgICAgIFJlZjxGaWxlU3lzdGVtSGFuZGxlPiBoYW5kbGUgPSBGaWxlU3lzdGVt
RmlsZUhhbmRsZTo6Y3JlYXRlKCpjb250ZXh0LCBTdHJpbmcgeyBuYW1lIH0sIGlkZW50aWZpZXIs
IFdURk1vdmUoY29ubmVjdGlvbikpOwogICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3Zl
KGhhbmRsZSkpOwogICAgIH0pOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGUuaCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxl
LmgKaW5kZXggMWU4NDMyOGI3YjI4NDI4Y2FmNzgyNTNmYjllZWRlZjBmYzBkZmRmMC4uY2U2YTUz
ODYwYWIwYzllOTMxMTM3YWFlNWY5ODZjNTg4ODk2MDBiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3Rl
bURpcmVjdG9yeUhhbmRsZS5oCkBAIC00Nyw3ICs0Nyw3IEBAIHB1YmxpYzoKICAgICAgICAgYm9v
bCByZWN1cnNpdmUgeyBmYWxzZSB9OwogICAgIH07CiAKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0
aWMgUmVmPEZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGU+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25D
b250ZXh0KiwgU3RyaW5nJiYsIEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBSZWY8RmlsZVN5
c3RlbVN0b3JhZ2VDb25uZWN0aW9uPiYmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVm
PEZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGU+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0
JiwgU3RyaW5nJiYsIEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBSZWY8RmlsZVN5c3RlbVN0
b3JhZ2VDb25uZWN0aW9uPiYmKTsKICAgICB2b2lkIGdldEZpbGVIYW5kbGUoY29uc3QgU3RyaW5n
JiBuYW1lLCBzdGQ6Om9wdGlvbmFsPEdldEZpbGVPcHRpb25zPiwgRE9NUHJvbWlzZURlZmVycmVk
PElETEludGVyZmFjZTxGaWxlU3lzdGVtRmlsZUhhbmRsZT4+JiYpOwogICAgIHZvaWQgZ2V0RGly
ZWN0b3J5SGFuZGxlKGNvbnN0IFN0cmluZyYgbmFtZSwgc3RkOjpvcHRpb25hbDxHZXREaXJlY3Rv
cnlPcHRpb25zPiwgRE9NUHJvbWlzZURlZmVycmVkPElETEludGVyZmFjZTxGaWxlU3lzdGVtRGly
ZWN0b3J5SGFuZGxlPj4mJik7CiAgICAgdm9pZCByZW1vdmVFbnRyeShjb25zdCBTdHJpbmcmIG5h
bWUsIHN0ZDo6b3B0aW9uYWw8UmVtb3ZlT3B0aW9ucz4sIERPTVByb21pc2VEZWZlcnJlZDx2b2lk
PiYmKTsKQEAgLTc3LDcgKzc3LDcgQEAgcHVibGljOgogICAgIFJlZjxJdGVyYXRvcj4gY3JlYXRl
SXRlcmF0b3IoKTsKIAogcHJpdmF0ZToKLSAgICBGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBTdHJpbmcmJiwgRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZp
ZXIsIFJlZjxGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24+JiYpOworICAgIEZpbGVTeXN0ZW1E
aXJlY3RvcnlIYW5kbGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIFN0cmluZyYmLCBGaWxlU3lz
dGVtSGFuZGxlSWRlbnRpZmllciwgUmVmPEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbj4mJik7
CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxl
LmNwcAppbmRleCAzNjY4NzNhYWZkOWQ5OGU1NzY0YzliMjU1MWIzY2U1ZWY2MjBiZmI4Li4yZGJi
NGUzYTgwMGZlMmY0NTg5NjE3ZGExN2MzYzUzMzA5MDFkYjFkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVt
RmlsZUhhbmRsZS5jcHAKQEAgLTM2LDEyICszNiwxMiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChGaWxlU3lzdGVtRmlsZUhhbmRsZSk7CiAKLVJl
ZjxGaWxlU3lzdGVtRmlsZUhhbmRsZT4gRmlsZVN5c3RlbUZpbGVIYW5kbGU6OmNyZWF0ZShTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBTdHJpbmcmJiBuYW1lLCBGaWxlU3lzdGVtSGFu
ZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBSZWY8RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9u
PiYmIGNvbm5lY3Rpb24pCitSZWY8RmlsZVN5c3RlbUZpbGVIYW5kbGU+IEZpbGVTeXN0ZW1GaWxl
SGFuZGxlOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgU3RyaW5nJiYg
bmFtZSwgRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgUmVmPEZpbGVTeXN0
ZW1TdG9yYWdlQ29ubmVjdGlvbj4mJiBjb25uZWN0aW9uKQogewogICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IEZpbGVTeXN0ZW1GaWxlSGFuZGxlKGNvbnRleHQsIFdURk1vdmUobmFtZSksIGlkZW50
aWZpZXIsIFdURk1vdmUoY29ubmVjdGlvbikpKTsKIH0KIAotRmlsZVN5c3RlbUZpbGVIYW5kbGU6
OkZpbGVTeXN0ZW1GaWxlSGFuZGxlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFN0
cmluZyYmIG5hbWUsIEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFJlZjxG
aWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24+JiYgY29ubmVjdGlvbikKK0ZpbGVTeXN0ZW1GaWxl
SGFuZGxlOjpGaWxlU3lzdGVtRmlsZUhhbmRsZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250
ZXh0LCBTdHJpbmcmJiBuYW1lLCBGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVy
LCBSZWY8RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24pCiAgICAgOiBG
aWxlU3lzdGVtSGFuZGxlKGNvbnRleHQsIEZpbGVTeXN0ZW1IYW5kbGU6OktpbmQ6OkZpbGUsIFdU
Rk1vdmUobmFtZSksIGlkZW50aWZpZXIsIFdURk1vdmUoY29ubmVjdGlvbikpCiB7CiB9CkBAIC02
MCwxMSArNjAsMTggQEAgdm9pZCBGaWxlU3lzdGVtRmlsZUhhbmRsZTo6Y3JlYXRlU3luY0FjY2Vz
c0hhbmRsZShET01Qcm9taXNlRGVmZXJyZWQ8SURMSW50ZXJmYWMKICAgICAgICAgaWYgKHJlc3Vs
dC5oYXNFeGNlcHRpb24oKSkKICAgICAgICAgICAgIHJldHVybiBwcm9taXNlLnJlamVjdChyZXN1
bHQucmVsZWFzZUV4Y2VwdGlvbigpKTsKIAotICAgICAgICBhdXRvIHJlc3VsdFZhbHVlID0gcmVz
dWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpOwotICAgICAgICBpZiAocmVzdWx0VmFsdWUuc2Vjb25k
ID09IEZpbGVTeXN0ZW06OmludmFsaWRQbGF0Zm9ybUZpbGVIYW5kbGUpCisgICAgICAgIGF1dG8g
W2lkZW50aWZpZXIsIGZpbGVdID0gcmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpOworICAgICAg
ICBpZiAoZmlsZSA9PSBGaWxlU3lzdGVtOjppbnZhbGlkUGxhdGZvcm1GaWxlSGFuZGxlKQogICAg
ICAgICAgICAgcmV0dXJuIHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IFVua25vd25FcnJvciwg
IkludmFsaWQgcGxhdGZvcm0gZmlsZSBoYW5kbGUiX3MgfSk7CiAKLSAgICAgICAgcHJvbWlzZS5z
ZXR0bGUoRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmNyZWF0ZShwcm90ZWN0ZWRUaGlzLT5z
Y3JpcHRFeGVjdXRpb25Db250ZXh0KCksIHByb3RlY3RlZFRoaXMuZ2V0KCksIHJlc3VsdFZhbHVl
LmZpcnN0LCByZXN1bHRWYWx1ZS5zZWNvbmQpKTsKKyAgICAgICAgYXV0byogY29udGV4dCA9IHBy
b3RlY3RlZFRoaXMtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKKyAgICAgICAgaWYgKCFjb250
ZXh0KSB7CisgICAgICAgICAgICBGaWxlU3lzdGVtOjpjbG9zZUZpbGUoZmlsZSk7CisgICAgICAg
ICAgICBwcm90ZWN0ZWRUaGlzLT5jbG9zZShpZGVudGlmaWVyLCB7IH0pOworICAgICAgICAgICAg
cmV0dXJuIHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCAiQ29u
dGV4dCBoYXMgc3RvcHBlZCJfcyB9KTsKKyAgICAgICAgfQorCisgICAgICAgIHByb21pc2Uuc2V0
dGxlKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpjcmVhdGUoKmNvbnRleHQsIHByb3RlY3Rl
ZFRoaXMuZ2V0KCksIGlkZW50aWZpZXIsIGZpbGUpKTsKICAgICB9KTsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxl
SGFuZGxlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5
c3RlbUZpbGVIYW5kbGUuaAppbmRleCA5NGQ1ZTFlMTdmOWY2ZmExOTc3NDE0MDNmNzllNGM3ODBj
NmVkZGJlLi5iYWE0MmY4ZDkyMzFhYWRkZTI1MjljZmVjMjAxYjM0ZWI1NWYyOTE1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZp
bGVIYW5kbGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3Mv
RmlsZVN5c3RlbUZpbGVIYW5kbGUuaApAQCAtMzcsNyArMzcsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFt
ZT4gY2xhc3MgRXhjZXB0aW9uT3I7CiBjbGFzcyBGaWxlU3lzdGVtRmlsZUhhbmRsZSBmaW5hbCA6
IHB1YmxpYyBGaWxlU3lzdGVtSGFuZGxlIHsKICAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKEZp
bGVTeXN0ZW1GaWxlSGFuZGxlKTsKIHB1YmxpYzoKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMg
UmVmPEZpbGVTeXN0ZW1GaWxlSGFuZGxlPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCos
IFN0cmluZyYmLCBGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgUmVmPEZpbGVTeXN0ZW1TdG9y
YWdlQ29ubmVjdGlvbj4mJik7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZjxGaWxlU3lz
dGVtRmlsZUhhbmRsZT4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBTdHJpbmcmJiwg
RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFJlZjxGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rp
b24+JiYpOwogICAgIHZvaWQgZ2V0RmlsZShET01Qcm9taXNlRGVmZXJyZWQ8SURMSW50ZXJmYWNl
PEZpbGU+PiYmKTsKIAogICAgIHZvaWQgY3JlYXRlU3luY0FjY2Vzc0hhbmRsZShET01Qcm9taXNl
RGVmZXJyZWQ8SURMSW50ZXJmYWNlPEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlPj4mJik7CkBA
IC00Nyw3ICs0Nyw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGNsb3NlKEZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25Pcjx2
b2lkPiYmKT4mJik7CiAKIHByaXZhdGU6Ci0gICAgRmlsZVN5c3RlbUZpbGVIYW5kbGUoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCosIFN0cmluZyYmLCBGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwg
UmVmPEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbj4mJik7CisgICAgRmlsZVN5c3RlbUZpbGVI
YW5kbGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIFN0cmluZyYmLCBGaWxlU3lzdGVtSGFuZGxl
SWRlbnRpZmllciwgUmVmPEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbj4mJik7CiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUhhbmRsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUhhbmRsZS5jcHAKaW5kZXggZWYwMTBm
M2E5NzZhYjFiZTgzMWQzY2Q5MmI2Y2EzMTYwOTQxNzZmYS4uYjVjNWI5NWI0MmU3Yjk1ZThkMTFk
ZDk2ZmM3YjY4ZWNjNGYwNTFmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9m
aWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1IYW5kbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtSGFuZGxlLmNwcApAQCAtMzQsOCAr
MzQsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1Q
TChGaWxlU3lzdGVtSGFuZGxlKTsKIAotRmlsZVN5c3RlbUhhbmRsZTo6RmlsZVN5c3RlbUhhbmRs
ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBGaWxlU3lzdGVtSGFuZGxlOjpLaW5k
IGtpbmQsIFN0cmluZyYmIG5hbWUsIEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZp
ZXIsIFJlZjxGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24+JiYgY29ubmVjdGlvbikKLSAgICA6
IEFjdGl2ZURPTU9iamVjdChjb250ZXh0KQorRmlsZVN5c3RlbUhhbmRsZTo6RmlsZVN5c3RlbUhh
bmRsZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBGaWxlU3lzdGVtSGFuZGxlOjpL
aW5kIGtpbmQsIFN0cmluZyYmIG5hbWUsIEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50
aWZpZXIsIFJlZjxGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24+JiYgY29ubmVjdGlvbikKKyAg
ICA6IEFjdGl2ZURPTU9iamVjdCgmY29udGV4dCkKICAgICAsIG1fa2luZChraW5kKQogICAgICwg
bV9uYW1lKFdURk1vdmUobmFtZSkpCiAgICAgLCBtX2lkZW50aWZpZXIoaWRlbnRpZmllcikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lz
dGVtSGFuZGxlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmls
ZVN5c3RlbUhhbmRsZS5oCmluZGV4IDBhODVlMDI4ZGIzNWZmNWRmZjYzMDFlNmQxOTNiMDYzMTEz
YjNhMjguLmJmMjgwNTAwOTAzZjdhNTY4OGNlOWRhZWE4ODU4MjYyOTY4MjQ5OTggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtSGFu
ZGxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVT
eXN0ZW1IYW5kbGUuaApAQCAtNTQsNyArNTQsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBtb3ZlKEZp
bGVTeXN0ZW1IYW5kbGUmLCBjb25zdCBTdHJpbmcmIG5ld05hbWUsIERPTVByb21pc2VEZWZlcnJl
ZDx2b2lkPiYmKTsKIAogcHJvdGVjdGVkOgotICAgIEZpbGVTeXN0ZW1IYW5kbGUoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCosIEtpbmQsIFN0cmluZyYmIG5hbWUsIEZpbGVTeXN0ZW1IYW5kbGVJZGVu
dGlmaWVyLCBSZWY8RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uPiYmKTsKKyAgICBGaWxlU3lz
dGVtSGFuZGxlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBLaW5kLCBTdHJpbmcmJiBuYW1lLCBG
aWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgUmVmPEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlv
bj4mJik7CiAgICAgRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uJiBjb25uZWN0aW9uKCkgeyBy
ZXR1cm4gbV9jb25uZWN0aW9uLmdldCgpOyB9CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN0b3JhZ2VDb25u
ZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5
c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgKaW5kZXggMjdmYTFlMmM5Y2VlZTI1NjVjZjM3NWJhNjk0
YzRhNWFjMTdlOTc3NC4uNzNlYmY5OWM0NWU0MTYxZGNlNDEwNjgzZWQzODQxNTk3NDhhYmE4NyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVT
eXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmls
ZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaApAQCAtNTAsNiArNTAs
NyBAQCBwdWJsaWM6CiAgICAgdXNpbmcgR2V0SGFuZGxlTmFtZXNDYWxsYmFjayA9IENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8VmVjdG9yPFN0cmluZz4+JiYpPjsKICAgICB1c2lu
ZyBHZXRIYW5kbGVXaXRoVHlwZUNhbGxiYWNrID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeGNl
cHRpb25PcjxzdGQ6OnBhaXI8RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIGJvb2w+PiYmKT47
CiAKKyAgICB2aXJ0dWFsIHZvaWQgY2xvc2VIYW5kbGUoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZp
ZXIpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgaXNTYW1lRW50cnkoRmlsZVN5c3RlbUhhbmRsZUlk
ZW50aWZpZXIsIEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBTYW1lRW50cnlDYWxsYmFjayYm
KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIG1vdmUoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIs
IEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5ld05hbWUsIFZvaWRD
YWxsYmFjayYmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGdldEZpbGVIYW5kbGUoRmlsZVN5c3Rl
bUhhbmRsZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwgYm9vbCBjcmVhdGVJZk5lY2Vz
c2FyeSwgR2V0SGFuZGxlQ2FsbGJhY2smJikgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3lu
Y0FjY2Vzc0hhbmRsZS5jcHAKaW5kZXggMjRmYzJhN2E0MjM4Mzg3OWY4ZWRmOTVhNmNhZWQ4MmYz
OGIxYzI2OC4uYTQ2ZTBkYzMwNjNlM2VmMjY2MjZkMGQ5YjIwMWEzMDVjZWRlOWE2MSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1T
eW5jQWNjZXNzSGFuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0
ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuY3BwCkBAIC0zMywxMyArMzMsMTMg
QEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1SZWY8RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5k
bGU+IEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCogY29udGV4dCwgRmlsZVN5c3RlbUZpbGVIYW5kbGUmIHNvdXJjZSwgRmlsZVN5c3RlbVN5
bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIEZpbGVTeXN0ZW06OlBsYXRmb3Jt
RmlsZUhhbmRsZSBmaWxlKQorUmVmPEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlPiBGaWxlU3lz
dGVtU3luY0FjY2Vzc0hhbmRsZTo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRl
eHQsIEZpbGVTeXN0ZW1GaWxlSGFuZGxlJiBzb3VyY2UsIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFu
ZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBGaWxlU3lzdGVtOjpQbGF0Zm9ybUZpbGVIYW5kbGUg
ZmlsZSkKIHsKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBGaWxlU3lzdGVtU3luY0FjY2Vzc0hh
bmRsZShjb250ZXh0LCBzb3VyY2UsIGlkZW50aWZpZXIsIGZpbGUpKTsKIH0KIAotRmlsZVN5c3Rl
bVN5bmNBY2Nlc3NIYW5kbGU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqIGNvbnRleHQsIEZpbGVTeXN0ZW1GaWxlSGFuZGxlJiBzb3VyY2UsIEZpbGVT
eXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBGaWxlU3lzdGVtOjpQ
bGF0Zm9ybUZpbGVIYW5kbGUgZmlsZSkKLSAgICA6IEFjdGl2ZURPTU9iamVjdChjb250ZXh0KQor
RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIEZpbGVTeXN0ZW1GaWxlSGFuZGxlJiBzb3Vy
Y2UsIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBGaWxl
U3lzdGVtOjpQbGF0Zm9ybUZpbGVIYW5kbGUgZmlsZSkKKyAgICA6IEFjdGl2ZURPTU9iamVjdCgm
Y29udGV4dCkKICAgICAsIG1fc291cmNlKHNvdXJjZSkKICAgICAsIG1faWRlbnRpZmllcihpZGVu
dGlmaWVyKQogICAgICwgbV9maWxlKGZpbGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZS5oCmluZGV4IGVkMjliZTU5MTZmMTk5MjlhOTEzMjI1NjY1MWVlZGQ0ZmZiN2FkN2Iu
LjcwYWZmMzM5YTIxMDkzMDQ4MGU0NDdjMjA4NTc5MWY1MjMyYmExMzAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9G
aWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5oCkBAIC00NCw3ICs0NCw3IEBAIHB1YmxpYzoKICAg
ICAgICAgdW5zaWduZWQgbG9uZyBsb25nIGF0OwogICAgIH07CiAKLSAgICBzdGF0aWMgUmVmPEZp
bGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCos
IEZpbGVTeXN0ZW1GaWxlSGFuZGxlJiwgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlm
aWVyLCBGaWxlU3lzdGVtOjpQbGF0Zm9ybUZpbGVIYW5kbGUpOworICAgIHN0YXRpYyBSZWY8Rmls
ZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0Jiwg
RmlsZVN5c3RlbUZpbGVIYW5kbGUmLCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZp
ZXIsIEZpbGVTeXN0ZW06OlBsYXRmb3JtRmlsZUhhbmRsZSk7CiAgICAgfkZpbGVTeXN0ZW1TeW5j
QWNjZXNzSGFuZGxlKCk7CiAKICAgICB2b2lkIHRydW5jYXRlKHVuc2lnbmVkIGxvbmcgbG9uZyBz
aXplLCBET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJik7CkBAIC01Niw3ICs1Niw3IEBAIHB1Ymxp
YzoKICAgICBFeGNlcHRpb25Pcjx1bnNpZ25lZCBsb25nIGxvbmc+IHdyaXRlKEJ1ZmZlclNvdXJj
ZSYmLCBGaWxlc3lzdGVtUmVhZFdyaXRlT3B0aW9ucyk7CiAKIHByaXZhdGU6Ci0gICAgRmlsZVN5
c3RlbVN5bmNBY2Nlc3NIYW5kbGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIEZpbGVTeXN0ZW1G
aWxlSGFuZGxlJiwgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lz
dGVtOjpQbGF0Zm9ybUZpbGVIYW5kbGUpOworICAgIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxl
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBGaWxlU3lzdGVtRmlsZUhhbmRsZSYsIEZpbGVTeXN0
ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbTo6UGxhdGZvcm1GaWxlSGFu
ZGxlKTsKICAgICBib29sIGlzQ2xvc2luZ09yQ2xvc2VkKCkgY29uc3Q7CiAgICAgdXNpbmcgQ2xv
c2VDYWxsYmFjayA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8dm9pZD4mJik+
OwogICAgIHZvaWQgY2xvc2VJbnRlcm5hbChDbG9zZUNhbGxiYWNrJiYpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZpbGVTeXN0ZW1T
dG9yYWdlQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1h
Y2Nlc3MvV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmNwcAppbmRleCA2NzFhYzRm
MTE4YTkzYTZkNjYxODIyZjhmNWU3ZDJhYTAzMGExYTI4Li5hZmRmOGM3ZTk0MDIyYzcyZTFmZTE3
YzkxOTFjY2U3ODVmMjQ3NTM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Zp
bGVzeXN0ZW1hY2Nlc3MvV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvV29ya2VyRmlsZVN5c3Rl
bVN0b3JhZ2VDb25uZWN0aW9uLmNwcApAQCAtNzUsNiArNzUsMTYgQEAgdm9pZCBXb3JrZXJGaWxl
U3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OnNjb3BlQ2xvc2VkKCkKICAgICBtX3Njb3BlID0gbnVs
bHB0cjsKIH0KIAordm9pZCBXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmNsb3Nl
SGFuZGxlKEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAgaWYg
KCFtX3Njb3BlKQorICAgICAgICByZXR1cm47CisKKyAgICBjYWxsT25NYWluVGhyZWFkKFttYWlu
VGhyZWFkQ29ubmVjdGlvbiA9IG1fbWFpblRocmVhZENvbm5lY3Rpb24sIGlkZW50aWZpZXJdKCkg
bXV0YWJsZSB7CisgICAgICAgIG1haW5UaHJlYWRDb25uZWN0aW9uLT5jbG9zZUhhbmRsZShpZGVu
dGlmaWVyKTsKKyAgICB9KTsKK30KKwogdm9pZCBXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5l
Y3Rpb246OmlzU2FtZUVudHJ5KEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIs
IEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIG90aGVySWRlbnRpZmllciwgRmlsZVN5c3RlbVN0
b3JhZ2VDb25uZWN0aW9uOjpTYW1lRW50cnlDYWxsYmFjayYmIGNhbGxiYWNrKQogewogICAgIGlm
ICghbV9zY29wZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3Rl
bWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5l
Y3Rpb24uaAppbmRleCBjYWM5YjQyZmU4ZDVkMGQ1ODYxYmVkYzk2OTUwMjE1NmU3ZTAzNTU2Li41
YmNiZmMyYWIyOTYzMzM2ZjRjNWViZmRiMjc0MzAxOWEyODU2YmNkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvV29ya2VyRmlsZVN5c3RlbVN0b3Jh
Z2VDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNj
ZXNzL1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oCkBAIC01Nyw2ICs1Nyw3IEBA
IHByaXZhdGU6CiAgICAgV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uKFdvcmtlckds
b2JhbFNjb3BlJiwgUmVmPEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbj4mJik7CiAKICAgICAv
LyBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24KKyAgICB2b2lkIGNsb3NlSGFuZGxlKEZpbGVT
eXN0ZW1IYW5kbGVJZGVudGlmaWVyKSBmaW5hbDsKICAgICB2b2lkIGlzU2FtZUVudHJ5KEZpbGVT
eXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5
c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpTYW1lRW50cnlDYWxsYmFjayYmKSBmaW5hbDsKICAgICB2
b2lkIG1vdmUoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1IYW5kbGVJZGVu
dGlmaWVyLCBjb25zdCBTdHJpbmcmIG5ld05hbWUsIFZvaWRDYWxsYmFjayYmKSBmaW5hbDsKICAg
ICB2b2lkIGdldEZpbGVIYW5kbGUoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIGNvbnN0IFN0
cmluZyYgbmFtZSwgYm9vbCBjcmVhdGVJZk5lY2Vzc2FyeSwgRmlsZVN5c3RlbVN0b3JhZ2VDb25u
ZWN0aW9uOjpHZXRIYW5kbGVDYWxsYmFjayYmKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvc3RvcmFnZS9TdG9yYWdlTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3N0b3JhZ2UvU3RvcmFnZU1hbmFnZXIuY3BwCmluZGV4IGNmMDdhNWFmNDljNWVi
NGY0MzI5NTdiMzE3YmI5MDQ1YWM2Mjg5OTAuLjc4MDRhODAyN2Q0MDY5MjNhMzRjMzllYWNjZWM2
OTNjZDEwNjExNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RvcmFnZS9T
dG9yYWdlTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdG9yYWdlL1N0
b3JhZ2VNYW5hZ2VyLmNwcApAQCAtMTE5LDkgKzExOSwxNCBAQCB2b2lkIFN0b3JhZ2VNYW5hZ2Vy
OjpmaWxlU3lzdGVtQWNjZXNzR2V0RGlyZWN0b3J5KERPTVByb21pc2VEZWZlcnJlZDxJRExJbnRl
cmZhYwogICAgICAgICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKQogICAgICAgICAgICAgcmV0
dXJuIHByb21pc2UucmVqZWN0KHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCkpOwogCisgICAgICAg
IGF1dG8gW2lkZW50aWZpZXIsIGNvbm5lY3Rpb25dID0gcmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1
ZSgpOwogICAgICAgICBhdXRvKiBjb250ZXh0ID0gd2Vha05hdmlnYXRvciA/IHdlYWtOYXZpZ2F0
b3ItPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSA6IG51bGxwdHI7Ci0gICAgICAgIGF1dG8gaWRl
bnRpZmllckNvbm5lY3Rpb25QYWlyID0gcmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpOwotICAg
ICAgICBwcm9taXNlLnJlc29sdmUoRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZTo6Y3JlYXRlKGNv
bnRleHQsIHsgfSwgaWRlbnRpZmllckNvbm5lY3Rpb25QYWlyLmZpcnN0LCBSZWYgeyAqIGlkZW50
aWZpZXJDb25uZWN0aW9uUGFpci5zZWNvbmQgfSkpOworICAgICAgICBpZiAoIWNvbnRleHQpIHsK
KyAgICAgICAgICAgIGNvbm5lY3Rpb24tPmNsb3NlSGFuZGxlKGlkZW50aWZpZXIpOworICAgICAg
ICAgICAgcmV0dXJuIHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9y
LCAiQ29udGV4dCBoYXMgc3RvcHBlZCJfcyB9KTsKKyAgICAgICAgfQorCisgICAgICAgIHByb21p
c2UucmVzb2x2ZShGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlOjpjcmVhdGUoKmNvbnRleHQsIHsg
fSwgaWRlbnRpZmllciwgUmVmIHsgKmNvbm5lY3Rpb24gfSkpOwogICAgIH0pOwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0
b3JhZ2VIYW5kbGUuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0Zp
bGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmNwcAppbmRleCAxZmIxNzU5ODE0NTc4YjQ5ZGViY2YyZmUz
ZWY4MDc3OWIwNDFhNzdkLi42MDcxY2JjNTAxYTBiNzc2NjUxY2I1ZTI0Y2ZiNzFlZGI2NDk1Y2U3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5
c3RlbVN0b3JhZ2VIYW5kbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
c3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5jcHAKQEAgLTY5LDYgKzY5LDE0IEBAIEZp
bGVTeXN0ZW1TdG9yYWdlSGFuZGxlOjp+RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUoKQogICAgICAg
ICBGaWxlU3lzdGVtOjpjbG9zZUZpbGUobV9oYW5kbGUpOwogfQogCit2b2lkIEZpbGVTeXN0ZW1T
dG9yYWdlSGFuZGxlOjpjbG9zZSgpCit7CisgICAgaWYgKCFtX21hbmFnZXIpCisgICAgICAgIHJl
dHVybjsKKworICAgIG1fbWFuYWdlci0+Y2xvc2VIYW5kbGUoKnRoaXMpOworfQorCiBib29sIEZp
bGVTeXN0ZW1TdG9yYWdlSGFuZGxlOjppc1NhbWVFbnRyeShXZWJDb3JlOjpGaWxlU3lzdGVtSGFu
ZGxlSWRlbnRpZmllciBpZGVudGlmaWVyKQogewogICAgIGF1dG8gcGF0aCA9IG1fbWFuYWdlci0+
Z2V0UGF0aChpZGVudGlmaWVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5oIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmgKaW5kZXggYzBh
OWUzYjFhYmNmOGZkOThhNTI3NjE0YjRjNzEwMjdmNjU4MTVkZi4uM2RhZjQ3MmY3MTZjNTNkYjVj
NGMyYjhlOTU4ZjU3NGY4ZWVlYWRkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmgKKysrIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmgKQEAg
LTUwLDYgKzUwLDcgQEAgcHVibGljOgogICAgIGNvbnN0IFN0cmluZyYgcGF0aCgpIGNvbnN0IHsg
cmV0dXJuIG1fcGF0aDsgfQogICAgIFR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZTsg
fQogCisgICAgdm9pZCBjbG9zZSgpOwogICAgIGJvb2wgaXNTYW1lRW50cnkoV2ViQ29yZTo6Rmls
ZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIpOwogICAgIHN0ZDo6b3B0aW9uYWw8RmlsZVN5c3RlbVN0
b3JhZ2VFcnJvcj4gbW92ZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgY29u
c3QgU3RyaW5nJiBuZXdOYW1lKTsKICAgICBFeHBlY3RlZDxXZWJDb3JlOjpGaWxlU3lzdGVtSGFu
ZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gZ2V0RmlsZUhhbmRsZShJUEM6
OkNvbm5lY3Rpb246OlVuaXF1ZUlELCBTdHJpbmcmJiBuYW1lLCBib29sIGNyZWF0ZUlmTmVjZXNz
YXJ5KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9G
aWxlU3lzdGVtU3RvcmFnZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlci5jcHAKaW5kZXggYjkwYTRmYWVlNTNl
ZTAzMzkzMWI5OTA2NzlhZmI0NmE4ZTU3MzJjMy4uMzhhYTI2NTVjMzlkZGMyMzdiYTVhMzgwYTVk
NTQ5MTI0MmMzN2Y1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9z
dG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlci5jcHAKQEAgLTk0
LDYgKzk0LDE0IEBAIEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlOjpUeXBlIEZpbGVTeXN0ZW1TdG9y
YWdlTWFuYWdlcjo6Z2V0VHlwZShXZWJDb3JlOjpGaWxlU3lzCiAgICAgcmV0dXJuIGhhbmRsZSA9
PSBtX2hhbmRsZXMuZW5kKCkgPyBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6VHlwZTo6QW55IDog
aGFuZGxlLT52YWx1ZS0+dHlwZSgpOwogfQogCit2b2lkIEZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdl
cjo6Y2xvc2VIYW5kbGUoRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUmIGhhbmRsZSkKK3sKKyAgICBh
dXRvIGlkZW50aWZpZXIgPSBoYW5kbGUuaWRlbnRpZmllcigpOworICAgIGF1dG8gdGFrZW5IYW5k
bGUgPSBtX2hhbmRsZXMudGFrZShpZGVudGlmaWVyKTsKKyAgICBBU1NFUlQodGFrZW5IYW5kbGUu
Z2V0KCkgPT0gJmhhbmRsZSk7CisgICAgbV9yZWdpc3RyeS51bnJlZ2lzdGVySGFuZGxlKGlkZW50
aWZpZXIpOworfQorCiB2b2lkIEZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlcjo6Y29ubmVjdGlvbkNs
b3NlZChJUEM6OkNvbm5lY3Rpb246OlVuaXF1ZUlEIGNvbm5lY3Rpb24pCiB7CiAgICAgQVNTRVJU
KCFSdW5Mb29wOjppc01haW4oKSk7CkBAIC0xMDQsNyArMTEyLDcgQEAgdm9pZCBGaWxlU3lzdGVt
U3RvcmFnZU1hbmFnZXI6OmNvbm5lY3Rpb25DbG9zZWQoSVBDOjpDb25uZWN0aW9uOjpVbmlxdWVJ
RCBjb25uZWMKIAogICAgIGF1dG8gaWRlbnRpZmllcnMgPSBjb25uZWN0aW9uSGFuZGxlcy0+dmFs
dWU7CiAgICAgZm9yIChhdXRvIGlkZW50aWZpZXIgOiBpZGVudGlmaWVycykgewotICAgICAgICBh
dXRvIGhhbmRsZSA9IG1faGFuZGxlcy50YWtlKGlkZW50aWZpZXIpOworICAgICAgICBtX2hhbmRs
ZXMucmVtb3ZlKGlkZW50aWZpZXIpOwogICAgICAgICBtX3JlZ2lzdHJ5LnVucmVnaXN0ZXJIYW5k
bGUoaWRlbnRpZmllcik7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyLmggYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyLmgKaW5k
ZXggZmYwMWFiYjU0ZmYxNjBjZDE0MmRhYzgxNzUyMTJhMmY4Zjk3YTU0Yi4uYjg1NzY3NjhiMzU1
YWNiM2FhMGMzNzAzOGNjNTFlY2M5MzJiMzk2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlci5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZU1hbmFn
ZXIuaApAQCAtNDIsNiArNDIsNyBAQCBwdWJsaWM6CiAgICAgRXhwZWN0ZWQ8V2ViQ29yZTo6Rmls
ZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IGNyZWF0ZUhh
bmRsZShJUEM6OkNvbm5lY3Rpb246OlVuaXF1ZUlELCBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6
VHlwZSwgU3RyaW5nJiYgcGF0aCwgU3RyaW5nJiYgbmFtZSwgYm9vbCBjcmVhdGVJZk5lY2Vzc2Fy
eSk7CiAgICAgY29uc3QgU3RyaW5nJiBnZXRQYXRoKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJ
ZGVudGlmaWVyKTsKICAgICBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6VHlwZSBnZXRUeXBlKFdl
YkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyKTsKKyAgICB2b2lkIGNsb3NlSGFuZGxl
KEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlJik7CiAgICAgdm9pZCBjb25uZWN0aW9uQ2xvc2VkKElQ
Qzo6Q29ubmVjdGlvbjo6VW5pcXVlSUQpOwogICAgIEV4cGVjdGVkPFdlYkNvcmU6OkZpbGVTeXN0
ZW1IYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiBnZXREaXJlY3Rvcnko
SVBDOjpDb25uZWN0aW9uOjpVbmlxdWVJRCk7CiAgICAgYm9vbCBhY3F1aXJlTG9ja0ZvckZpbGUo
Y29uc3QgU3RyaW5nJiBwYXRoLCBXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllcik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29y
a1N0b3JhZ2VNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFn
ZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuY3BwCmluZGV4IDY5YmFjODI1YmVmZjI3OWU0ZTAwZDE3
OTczYzFhNDViNjk1NmI5NjUuLmNlNTgxMTQwMzRmOThlZTMyNmRhYjc3ZGFmYWY1NjIzZGRkMjIw
MDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3
b3JrU3RvcmFnZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
c3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuY3BwCkBAIC0xNzEsNiArMTcxLDE0IEBAIHZv
aWQgTmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpmaWxlU3lzdGVtR2V0RGlyZWN0b3J5KElQQzo6Q29u
bmVjdGlvbiYgY29ubmVjdGlvbiwKICAgICBjb21wbGV0aW9uSGFuZGxlcihsb2NhbE9yaWdpblN0
b3JhZ2VNYW5hZ2VyKG9yaWdpbikuZmlsZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyKCptX2ZpbGVTeXN0
ZW1TdG9yYWdlSGFuZGxlUmVnaXN0cnkpLmdldERpcmVjdG9yeShjb25uZWN0aW9uLnVuaXF1ZUlE
KCkpKTsKIH0KIAordm9pZCBOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OmNsb3NlSGFuZGxlKFdlYkNv
cmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAgQVNTRVJU
KCFSdW5Mb29wOjppc01haW4oKSk7CisKKyAgICBpZiAoYXV0byBoYW5kbGUgPSBtX2ZpbGVTeXN0
ZW1TdG9yYWdlSGFuZGxlUmVnaXN0cnktPmdldEhhbmRsZShpZGVudGlmaWVyKSkKKyAgICAgICAg
aGFuZGxlLT5jbG9zZSgpOworfQorCiB2b2lkIE5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6aXNTYW1l
RW50cnkoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2Vi
Q29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgdGFyZ2V0SWRlbnRpZmllciwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBBU1NF
UlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuaAppbmRleCAwNGNj
M2FmMDliYWIzZDJmMGUwZjcwMWMxZmYyOTAwYTYxNDE2MzU2Li5lMjU1MDQxODk2MGZkNGY3ZTM4
Yzg0MWM0MDhmM2Y0MDVhZDY2Mzc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5oCkBAIC02OSw2
ICs2OSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBwZXJzaXN0ZWQoY29uc3QgV2ViQ29yZTo6Q2xp
ZW50T3JpZ2luJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CiAgICAgdm9pZCBw
ZXJzaXN0KGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoYm9vbCk+JiYpOwogICAgIHZvaWQgZmlsZVN5c3RlbUdldERpcmVjdG9yeShJUEM6OkNvbm5l
Y3Rpb24mLCBjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKEV4cGVjdGVkPFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lz
dGVtU3RvcmFnZUVycm9yPik+JiYpOworICAgIHZvaWQgY2xvc2VIYW5kbGUoV2ViQ29yZTo6Rmls
ZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIpOwogICAgIHZvaWQgaXNTYW1lRW50cnkoV2ViQ29yZTo6
RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVu
dGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKICAgICB2b2lkIG1vdmUo
V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1I
YW5kbGVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5ld05hbWUsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoc3RkOjpvcHRpb25hbDxGaWxlU3lzdGVtU3RvcmFnZUVycm9yPik+JiYpOwogICAgIHZv
aWQgZ2V0RmlsZUhhbmRsZShJUEM6OkNvbm5lY3Rpb24mLCBXZWJDb3JlOjpGaWxlU3lzdGVtSGFu
ZGxlSWRlbnRpZmllciwgU3RyaW5nJiYgbmFtZSwgYm9vbCBjcmVhdGVJZk5lY2Vzc2FyeSwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDxXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRl
bnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4pPiYmKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIubWVz
c2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0
b3JhZ2VNYW5hZ2VyLm1lc3NhZ2VzLmluCmluZGV4IDgyZWEzMTBmODE1MWVkZjJjNDNhYmE0NTEx
NGE4MDFjNGI3NDZmNzIuLjFmYmJmMzdiYWFkN2QwNDNjODc1Y2U4ZGYxYmFiOWExNTc2YTc5MDUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3Jr
U3RvcmFnZU1hbmFnZXIubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5tZXNzYWdlcy5pbgpAQCAtMjcsNiAr
MjcsNyBAQAogICAgIFBlcnNpc3RlZChzdHJ1Y3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luIG9yaWdp
bikgLT4gKGJvb2wgcGVyc2lzdGVkKSBBc3luYwogICAgIFBlcnNpc3Qoc3RydWN0IFdlYkNvcmU6
OkNsaWVudE9yaWdpbiBvcmlnaW4pIC0+IChib29sIHBlcnNpc3RlZCkgQXN5bmMKICAgICBGaWxl
U3lzdGVtR2V0RGlyZWN0b3J5KHN0cnVjdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4gb3JpZ2luKSAt
PiAoRXhwZWN0ZWQ8V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFdlYktpdDo6
RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gcmVzdWx0KSBBc3luYyBXYW50c0Nvbm5lY3Rpb24KKyAg
ICBDbG9zZUhhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlm
aWVyKQogICAgIElzU2FtZUVudHJ5KFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVy
IGlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIHRhcmdldElk
ZW50aWZpZXIpIC0+IChib29sIHJlc3VsdCkgQXN5bmMKICAgICBHZXRGaWxlSGFuZGxlKFdlYkNv
cmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFN0cmluZyBuYW1lLCBi
b29sIGNyZWF0ZUlmTmVjZXNzYXJ5KSAtPiAoRXhwZWN0ZWQ8V2ViQ29yZTo6RmlsZVN5c3RlbUhh
bmRsZUlkZW50aWZpZXIsIFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gcmVzdWx0KSBB
c3luYyBXYW50c0Nvbm5lY3Rpb24KICAgICBHZXREaXJlY3RvcnlIYW5kbGUoV2ViQ29yZTo6Rmls
ZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgU3RyaW5nIG5hbWUsIGJvb2wgY3Jl
YXRlSWZOZWNlc3NhcnkpIC0+IChFeHBlY3RlZDxXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRl
bnRpZmllciwgV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiByZXN1bHQpIEFzeW5jIFdh
bnRzQ29ubmVjdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0
aW9uLmNwcAppbmRleCAxZjA2YjU5ZjhjYzY2MGNhMzM5MDYwNWVlZjE2MjE1Nzc3YWM1YTZhLi5k
MWQ3OTg1ZTY1ZWRkMjU5ZWY5MzI1ZjI5NGYwNGM4ZTA2MThmYmQyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRmlsZVN5c3RlbVN0b3JhZ2VD
b25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmNwcApAQCAtNDgsNiArNDgsMTQgQEAg
dm9pZCBXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmNvbm5lY3Rpb25DbG9zZWQoKQog
ICAgIG1fY29ubmVjdGlvbiA9IG51bGxwdHI7CiB9CiAKK3ZvaWQgV2ViRmlsZVN5c3RlbVN0b3Jh
Z2VDb25uZWN0aW9uOjpjbG9zZUhhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRp
ZmllciBpZGVudGlmaWVyKQoreworICAgIGlmICghbV9jb25uZWN0aW9uKQorICAgICAgICByZXR1
cm47CisKKyAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtTdG9yYWdlTWFu
YWdlcjo6Q2xvc2VIYW5kbGUoaWRlbnRpZmllciksIDApOworfQorCiB2b2lkIFdlYkZpbGVTeXN0
ZW1TdG9yYWdlQ29ubmVjdGlvbjo6aXNTYW1lRW50cnkoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRs
ZUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZp
ZXIgb3RoZXJJZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246
OlNhbWVFbnRyeUNhbGxiYWNrJiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgaWYgKCFtX2Nv
bm5lY3Rpb24pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgK
aW5kZXggN2IzYTFkMWU5ZWQyNzU3ZWRhMWRlYjU0NTU3ZTg0NjlmZGZkOTBiOS4uYTc2YTdkMTNj
MzBkNTk4MWZlNzFhNzc0Y2Q0ZDA1YzIxNjQ3MTQxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlv
bi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGaWxl
U3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaApAQCAtNzIsNiArNzIsNyBAQCBwcml2YXRlOgogICAg
IGV4cGxpY2l0IFdlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb24m
KTsKIAogICAgIC8vIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbgorICAgIHZvaWQgY2xvc2VI
YW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIpIGZpbmFsOwogICAgIHZv
aWQgaXNTYW1lRW50cnkoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFdlYkNv
cmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtU3RvcmFn
ZUNvbm5lY3Rpb246OlNhbWVFbnRyeUNhbGxiYWNrJiYpIGZpbmFsOwogICAgIHZvaWQgbW92ZShX
ZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbUhh
bmRsZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmV3TmFtZSwgVm9pZENhbGxiYWNrJiYpIGZp
bmFsOwogICAgIHZvaWQgZ2V0RmlsZUhhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRl
bnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBib29sIGNyZWF0ZUlmTmVjZXNzYXJ5LCBXZWJD
b3JlOjpGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OkdldEhhbmRsZUNhbGxiYWNrJiYpIGZp
bmFsOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>442757</attachid>
            <date>2021-10-28 15:46:21 -0700</date>
            <delta_ts>2021-10-29 10:16:32 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-232363-20211028154620.patch</filename>
            <type>text/plain</type>
            <size>34569</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0OTkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWI0MmI1ODNkZjVmNjBi
NWE3MzcyYzBmMjg1YzI1MjZmZDQ2YjkxZC4uNjI2ZGIwMmMwNzM3NmRmYzJiMmJmNzc5MDUxMDYy
YjhiZGY2YzI0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDIxLTEwLTI4ICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIFJlbGVhc2UgRmlsZVN5c3Rl
bVN0b3JhZ2VIYW5kbGUgd2hlbiBpdCBpcyBub3QgaW4gdXNlCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzIzNjMKKworICAgICAgICBSZXZpZXdlZCBi
eSBZb3Vlbm4gRmFibGV0LgorCisgICAgICAgIFdoZW4gRmlsZVN5c3RlbUhhbmRsZSBpcyBkZXN0
cm95ZWQsIGl0cyBjb3JyZXNwb25kaW5nIEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlIHNob3VsZCBi
ZSBkZXN0cm95ZWQgYXMgaXQgd2lsbAorICAgICAgICBub3QgYmUgdXNlZCBhbnkgbW9yZS4gQWxz
bywgc3RvcCBjcmVhdGluZyBhIG5ldyBGaWxlU3lzdGVtSGFuZGxlIG9yIEZpbGVTeXN0ZW1TeW5j
QWNjZXNzSGFuZGxlIGlmIGNvbnRleHQgCisgICAgICAgIGFscmVhZHkgc3RvcHMuCisKKyAgICAg
ICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlOjpjcmVhdGUp
OgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZTo6RmlsZVN5c3Rl
bURpcmVjdG9yeUhhbmRsZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtRGlyZWN0b3J5
SGFuZGxlOjpnZXRGaWxlSGFuZGxlKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1EaXJl
Y3RvcnlIYW5kbGU6OmdldERpcmVjdG9yeUhhbmRsZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxl
U3lzdGVtRGlyZWN0b3J5SGFuZGxlOjpnZXRIYW5kbGUpOgorICAgICAgICAqIE1vZHVsZXMvZmls
ZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlLmg6CisgICAgICAgICogTW9k
dWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29y
ZTo6RmlsZVN5c3RlbUZpbGVIYW5kbGU6OkZpbGVTeXN0ZW1GaWxlSGFuZGxlKToKKyAgICAgICAg
KFdlYkNvcmU6OkZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKToK
KyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUu
aDoKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUhhbmRsZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlOjpGaWxlU3lzdGVtSGFuZGxl
KToKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUhhbmRsZS5o
OgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb24uaDoKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3Rl
bVN5bmNBY2Nlc3NIYW5kbGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNB
Y2Nlc3NIYW5kbGU6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0Fj
Y2Vzc0hhbmRsZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUpOgorICAgICAgICAqIE1vZHVs
ZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5oOgorICAgICAg
ICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5l
Y3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25u
ZWN0aW9uOjpjbG9zZUhhbmRsZSk6CisgICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNz
L1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oOgorICAgICAgICAqIE1vZHVsZXMv
c3RvcmFnZS9TdG9yYWdlTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdG9yYWdlTWFu
YWdlcjo6ZmlsZVN5c3RlbUFjY2Vzc0dldERpcmVjdG9yeSk6CisKIDIwMjEtMTAtMjggIE15bGVz
IEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KIAogICAgICAgICBbd2F0Y2hPU10g
Rml4IGxvZ2dpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggMDYxMTMzZGRlMzg4YWQ2ZWJiNWQzYWVlYWQzZGFlMGMw
NjQ2NWU1NS4uYjZmMzE3YWJhMDRkNDY1YzRhNzI4OGE3MjVhMmZmM2Y1OWYwNTdjMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwyNSBAQAorMjAyMS0xMC0yOCAgU2lodWkgTGl1ICA8c2lodWlfbGl1QGFw
cGxlLmNvbT4KKworICAgICAgICBSZWxlYXNlIEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlIHdoZW4g
aXQgaXMgbm90IGluIHVzZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjMyMzYzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgWW91ZW5uIEZhYmxldC4KKwor
ICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6Y2xvc2UpOgor
ICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUu
aDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlTWFu
YWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlcjo6Y2xv
c2VIYW5kbGUpOgorICAgICAgICAoV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZU1hbmFnZXI6OmNv
bm5lY3Rpb25DbG9zZWQpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5
c3RlbVN0b3JhZ2VNYW5hZ2VyLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9O
ZXR3b3JrU3RvcmFnZU1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU3RvcmFn
ZU1hbmFnZXI6OmNsb3NlSGFuZGxlKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9zdG9yYWdl
L05ldHdvcmtTdG9yYWdlTWFuYWdlci5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3N0b3Jh
Z2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpjbG9zZUhhbmRs
ZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGaWxlU3lzdGVtU3Rv
cmFnZUNvbm5lY3Rpb24uaDoKKwogMjAyMS0xMC0yOCAgRGFuaWVsIEtvbGVzYSAgPGRrb2xlc2FA
aWdhbGlhLmNvbT4KIAogICAgICAgICBOb24tdW5pZmllZCBidWlsZCBmaXhlcwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1EaXJl
Y3RvcnlIYW5kbGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNz
L0ZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGUuY3BwCmluZGV4IDY3ZmZjOGM0OTNkMTQyNDUxMDQ5
MzAyMGNiY2Y3M2ZlZTI3MTAxOGUuLjg4NjBjYzdiMzU3YjZmOTA2M2JlYmIwMjlmOTAzMDliYjJl
Y2YxYzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vz
cy9GaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZS5jcHAKQEAgLTM2
LDEyICszNiwxMiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFdURl9NQUtFX0lTT19BTExPQ0FU
RURfSU1QTChGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlKTsKIAotUmVmPEZpbGVTeXN0ZW1EaXJl
Y3RvcnlIYW5kbGU+IEZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGU6OmNyZWF0ZShTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiBjb250ZXh0LCBTdHJpbmcmJiBuYW1lLCBGaWxlU3lzdGVtSGFuZGxlSWRl
bnRpZmllciBpZGVudGlmaWVyLCBSZWY8RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uPiYmIGNv
bm5lY3Rpb24pCitSZWY8RmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZT4gRmlsZVN5c3RlbURpcmVj
dG9yeUhhbmRsZTo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFN0cmlu
ZyYmIG5hbWUsIEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFJlZjxGaWxl
U3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24+JiYgY29ubmVjdGlvbikKIHsKICAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlKGNvbnRleHQsIFdURk1vdmUobmFt
ZSksIGlkZW50aWZpZXIsIFdURk1vdmUoY29ubmVjdGlvbikpKTsKIH0KIAotRmlsZVN5c3RlbURp
cmVjdG9yeUhhbmRsZTo6RmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZShTY3JpcHRFeGVjdXRpb25D
b250ZXh0KiBjb250ZXh0LCBTdHJpbmcmJiBuYW1lLCBGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmll
ciBpZGVudGlmaWVyLCBSZWY8RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uPiYmIGNvbm5lY3Rp
b24pCitGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlOjpGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxl
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFN0cmluZyYmIG5hbWUsIEZpbGVTeXN0
ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFJlZjxGaWxlU3lzdGVtU3RvcmFnZUNvbm5l
Y3Rpb24+JiYgY29ubmVjdGlvbikKICAgICA6IEZpbGVTeXN0ZW1IYW5kbGUoY29udGV4dCwgRmls
ZVN5c3RlbUhhbmRsZTo6S2luZDo6RGlyZWN0b3J5LCBXVEZNb3ZlKG5hbWUpLCBpZGVudGlmaWVy
LCBXVEZNb3ZlKGNvbm5lY3Rpb24pKQogewogfQpAQCAtNTYsOCArNTYsMTQgQEAgdm9pZCBGaWxl
U3lzdGVtRGlyZWN0b3J5SGFuZGxlOjpnZXRGaWxlSGFuZGxlKGNvbnN0IFN0cmluZyYgbmFtZSwg
c3RkOjpvcHRpb25hbDwKICAgICAgICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkKICAgICAg
ICAgICAgIHJldHVybiBwcm9taXNlLnJlamVjdChyZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpKTsK
IAorICAgICAgICBhdXRvIGlkZW50aWZpZXIgPSByZXN1bHQucmV0dXJuVmFsdWUoKTsKICAgICAg
ICAgYXV0byogY29udGV4dCA9IHdlYWtUaGlzID8gd2Vha1RoaXMtPnNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQoKSA6IG51bGxwdHI7Ci0gICAgICAgIHByb21pc2Uuc2V0dGxlKEZpbGVTeXN0ZW1GaWxl
SGFuZGxlOjpjcmVhdGUoY29udGV4dCwgU3RyaW5nIHsgbmFtZSB9LCByZXN1bHQucmV0dXJuVmFs
dWUoKSwgV1RGTW92ZShjb25uZWN0aW9uKSkpOworICAgICAgICBpZiAoIWNvbnRleHQpIHsKKyAg
ICAgICAgICAgIGNvbm5lY3Rpb24tPmNsb3NlSGFuZGxlKGlkZW50aWZpZXIpOworICAgICAgICAg
ICAgcmV0dXJuIHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCAi
Q29udGV4dCBoYXMgc3RvcHBlZCJfcyB9KTsKKyAgICAgICAgfQorCisgICAgICAgIHByb21pc2Uu
c2V0dGxlKEZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpjcmVhdGUoKmNvbnRleHQsIFN0cmluZyB7IG5h
bWUgfSwgcmVzdWx0LnJldHVyblZhbHVlKCksIFdURk1vdmUoY29ubmVjdGlvbikpKTsKICAgICB9
KTsKIH0KIApAQCAtNzEsOCArNzcsMTQgQEAgdm9pZCBGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxl
OjpnZXREaXJlY3RvcnlIYW5kbGUoY29uc3QgU3RyaW5nJiBuYW1lLCBzdGQ6Om9wdGkKICAgICAg
ICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkKICAgICAgICAgICAgIHJldHVybiBwcm9taXNl
LnJlamVjdChyZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpKTsKIAorICAgICAgICBhdXRvIGlkZW50
aWZpZXIgPSByZXN1bHQucmV0dXJuVmFsdWUoKTsKICAgICAgICAgYXV0byogY29udGV4dCA9IHdl
YWtUaGlzID8gd2Vha1RoaXMtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSA6IG51bGxwdHI7Ci0g
ICAgICAgIHByb21pc2Uuc2V0dGxlKEZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGU6OmNyZWF0ZShj
b250ZXh0LCBTdHJpbmcgeyBuYW1lIH0sIHJlc3VsdC5yZXR1cm5WYWx1ZSgpLCBXVEZNb3ZlKGNv
bm5lY3Rpb24pKSk7CisgICAgICAgIGlmICghY29udGV4dCkgeworICAgICAgICAgICAgY29ubmVj
dGlvbi0+Y2xvc2VIYW5kbGUoaWRlbnRpZmllcik7CisgICAgICAgICAgICByZXR1cm4gcHJvbWlz
ZS5yZWplY3QoRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJDb250ZXh0IGhhcyBzdG9w
cGVkIl9zIH0pOworICAgICAgICB9CisKKyAgICAgICAgcHJvbWlzZS5zZXR0bGUoRmlsZVN5c3Rl
bURpcmVjdG9yeUhhbmRsZTo6Y3JlYXRlKCpjb250ZXh0LCBTdHJpbmcgeyBuYW1lIH0sIGlkZW50
aWZpZXIsIFdURk1vdmUoY29ubmVjdGlvbikpKTsKICAgICB9KTsKIH0KIApAQCAtMTE5LDEyICsx
MzEsMTcgQEAgdm9pZCBGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlOjpnZXRIYW5kbGUoY29uc3Qg
U3RyaW5nJiBuYW1lLCBDb21wbGV0aW9uSGFuZGxlcjwKIAogICAgICAgICBhdXRvIFtpZGVudGlm
aWVyLCBpc0RpcmVjdG9yeV0gPSByZXN1bHQucmVsZWFzZVJldHVyblZhbHVlKCk7CiAgICAgICAg
IGF1dG8qIGNvbnRleHQgPSB3ZWFrVGhpcyA/IHdlYWtUaGlzLT5zY3JpcHRFeGVjdXRpb25Db250
ZXh0KCkgOiBudWxscHRyOworICAgICAgICBpZiAoIWNvbnRleHQpIHsKKyAgICAgICAgICAgIGNv
bm5lY3Rpb24tPmNsb3NlSGFuZGxlKGlkZW50aWZpZXIpOworICAgICAgICAgICAgcmV0dXJuIGNv
bXBsZXRpb25IYW5kbGVyKEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCAiQ29udGV4dCBo
YXMgc3RvcHBlZCJfcyB9KTsKKyAgICAgICAgfQorCiAgICAgICAgIGlmIChpc0RpcmVjdG9yeSkg
ewotICAgICAgICAgICAgUmVmPEZpbGVTeXN0ZW1IYW5kbGU+IGhhbmRsZSA9IEZpbGVTeXN0ZW1E
aXJlY3RvcnlIYW5kbGU6OmNyZWF0ZShjb250ZXh0LCBTdHJpbmcgeyBuYW1lIH0sIGlkZW50aWZp
ZXIsIFdURk1vdmUoY29ubmVjdGlvbikpOworICAgICAgICAgICAgUmVmPEZpbGVTeXN0ZW1IYW5k
bGU+IGhhbmRsZSA9IEZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGU6OmNyZWF0ZSgqY29udGV4dCwg
U3RyaW5nIHsgbmFtZSB9LCBpZGVudGlmaWVyLCBXVEZNb3ZlKGNvbm5lY3Rpb24pKTsKICAgICAg
ICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKGhhbmRsZSkpOwogICAgICAg
ICB9CiAKLSAgICAgICAgUmVmPEZpbGVTeXN0ZW1IYW5kbGU+IGhhbmRsZSA9IEZpbGVTeXN0ZW1G
aWxlSGFuZGxlOjpjcmVhdGUoY29udGV4dCwgU3RyaW5nIHsgbmFtZSB9LCBpZGVudGlmaWVyLCBX
VEZNb3ZlKGNvbm5lY3Rpb24pKTsKKyAgICAgICAgUmVmPEZpbGVTeXN0ZW1IYW5kbGU+IGhhbmRs
ZSA9IEZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpjcmVhdGUoKmNvbnRleHQsIFN0cmluZyB7IG5hbWUg
fSwgaWRlbnRpZmllciwgV1RGTW92ZShjb25uZWN0aW9uKSk7CiAgICAgICAgIGNvbXBsZXRpb25I
YW5kbGVyKFdURk1vdmUoaGFuZGxlKSk7CiAgICAgfSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRs
ZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1E
aXJlY3RvcnlIYW5kbGUuaAppbmRleCAxZTg0MzI4YjdiMjg0MjhjYWY3ODI1M2ZiOWVlZGVmMGZj
MGRmZGYwLi5jZTZhNTM4NjBhYjBjOWU5MzExMzdhYWU1Zjk4NmM1ODg4OTYwMGJkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbURp
cmVjdG9yeUhhbmRsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFj
Y2Vzcy9GaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlLmgKQEAgLTQ3LDcgKzQ3LDcgQEAgcHVibGlj
OgogICAgICAgICBib29sIHJlY3Vyc2l2ZSB7IGZhbHNlIH07CiAgICAgfTsKIAotICAgIFdFQkNP
UkVfRVhQT1JUIHN0YXRpYyBSZWY8RmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZT4gY3JlYXRlKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBTdHJpbmcmJiwgRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZp
ZXIsIFJlZjxGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24+JiYpOworICAgIFdFQkNPUkVfRVhQ
T1JUIHN0YXRpYyBSZWY8RmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZT4gY3JlYXRlKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQmLCBTdHJpbmcmJiwgRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFJl
ZjxGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24+JiYpOwogICAgIHZvaWQgZ2V0RmlsZUhhbmRs
ZShjb25zdCBTdHJpbmcmIG5hbWUsIHN0ZDo6b3B0aW9uYWw8R2V0RmlsZU9wdGlvbnM+LCBET01Q
cm9taXNlRGVmZXJyZWQ8SURMSW50ZXJmYWNlPEZpbGVTeXN0ZW1GaWxlSGFuZGxlPj4mJik7CiAg
ICAgdm9pZCBnZXREaXJlY3RvcnlIYW5kbGUoY29uc3QgU3RyaW5nJiBuYW1lLCBzdGQ6Om9wdGlv
bmFsPEdldERpcmVjdG9yeU9wdGlvbnM+LCBET01Qcm9taXNlRGVmZXJyZWQ8SURMSW50ZXJmYWNl
PEZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGU+PiYmKTsKICAgICB2b2lkIHJlbW92ZUVudHJ5KGNv
bnN0IFN0cmluZyYgbmFtZSwgc3RkOjpvcHRpb25hbDxSZW1vdmVPcHRpb25zPiwgRE9NUHJvbWlz
ZURlZmVycmVkPHZvaWQ+JiYpOwpAQCAtNzcsNyArNzcsNyBAQCBwdWJsaWM6CiAgICAgUmVmPEl0
ZXJhdG9yPiBjcmVhdGVJdGVyYXRvcigpOwogCiBwcml2YXRlOgotICAgIEZpbGVTeXN0ZW1EaXJl
Y3RvcnlIYW5kbGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFN0cmluZyYmLCBGaWxlU3lzdGVt
SGFuZGxlSWRlbnRpZmllciwgUmVmPEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbj4mJik7Cisg
ICAgRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgU3Ry
aW5nJiYsIEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBSZWY8RmlsZVN5c3RlbVN0b3JhZ2VD
b25uZWN0aW9uPiYmKTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhh
bmRsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5
c3RlbUZpbGVIYW5kbGUuY3BwCmluZGV4IDM2Njg3M2FhZmQ5ZDk4ZTU3NjRjOWIyNTUxYjNjZTVl
ZjYyMGJmYjguLjJkYmI0ZTNhODAwZmUyZjQ1ODk2MTdkYTE3YzNjNTMzMDkwMWRiMWQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVt
RmlsZUhhbmRsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNj
ZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmNwcApAQCAtMzYsMTIgKzM2LDEyIEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKEZpbGVTeXN0ZW1GaWxl
SGFuZGxlKTsKIAotUmVmPEZpbGVTeXN0ZW1GaWxlSGFuZGxlPiBGaWxlU3lzdGVtRmlsZUhhbmRs
ZTo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFN0cmluZyYmIG5hbWUs
IEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFJlZjxGaWxlU3lzdGVtU3Rv
cmFnZUNvbm5lY3Rpb24+JiYgY29ubmVjdGlvbikKK1JlZjxGaWxlU3lzdGVtRmlsZUhhbmRsZT4g
RmlsZVN5c3RlbUZpbGVIYW5kbGU6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250
ZXh0LCBTdHJpbmcmJiBuYW1lLCBGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVy
LCBSZWY8RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24pCiB7CiAgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgRmlsZVN5c3RlbUZpbGVIYW5kbGUoY29udGV4dCwgV1RGTW92
ZShuYW1lKSwgaWRlbnRpZmllciwgV1RGTW92ZShjb25uZWN0aW9uKSkpOwogfQogCi1GaWxlU3lz
dGVtRmlsZUhhbmRsZTo6RmlsZVN5c3RlbUZpbGVIYW5kbGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCogY29udGV4dCwgU3RyaW5nJiYgbmFtZSwgRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRl
bnRpZmllciwgUmVmPEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbj4mJiBjb25uZWN0aW9uKQor
RmlsZVN5c3RlbUZpbGVIYW5kbGU6OkZpbGVTeXN0ZW1GaWxlSGFuZGxlKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQmIGNvbnRleHQsIFN0cmluZyYmIG5hbWUsIEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlm
aWVyIGlkZW50aWZpZXIsIFJlZjxGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24+JiYgY29ubmVj
dGlvbikKICAgICA6IEZpbGVTeXN0ZW1IYW5kbGUoY29udGV4dCwgRmlsZVN5c3RlbUhhbmRsZTo6
S2luZDo6RmlsZSwgV1RGTW92ZShuYW1lKSwgaWRlbnRpZmllciwgV1RGTW92ZShjb25uZWN0aW9u
KSkKIHsKIH0KQEAgLTYwLDExICs2MCwxOCBAQCB2b2lkIEZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpj
cmVhdGVTeW5jQWNjZXNzSGFuZGxlKERPTVByb21pc2VEZWZlcnJlZDxJRExJbnRlcmZhYwogICAg
ICAgICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKQogICAgICAgICAgICAgcmV0dXJuIHByb21p
c2UucmVqZWN0KHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCkpOwogCi0gICAgICAgIGF1dG8gcmVz
dWx0VmFsdWUgPSByZXN1bHQucmVsZWFzZVJldHVyblZhbHVlKCk7Ci0gICAgICAgIGlmIChyZXN1
bHRWYWx1ZS5zZWNvbmQgPT0gRmlsZVN5c3RlbTo6aW52YWxpZFBsYXRmb3JtRmlsZUhhbmRsZSkK
KyAgICAgICAgYXV0byBbaWRlbnRpZmllciwgZmlsZV0gPSByZXN1bHQucmVsZWFzZVJldHVyblZh
bHVlKCk7CisgICAgICAgIGlmIChmaWxlID09IEZpbGVTeXN0ZW06OmludmFsaWRQbGF0Zm9ybUZp
bGVIYW5kbGUpCiAgICAgICAgICAgICByZXR1cm4gcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsg
VW5rbm93bkVycm9yLCAiSW52YWxpZCBwbGF0Zm9ybSBmaWxlIGhhbmRsZSJfcyB9KTsKIAotICAg
ICAgICBwcm9taXNlLnNldHRsZShGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6Y3JlYXRlKHBy
b3RlY3RlZFRoaXMtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgcHJvdGVjdGVkVGhpcy5nZXQo
KSwgcmVzdWx0VmFsdWUuZmlyc3QsIHJlc3VsdFZhbHVlLnNlY29uZCkpOworICAgICAgICBhdXRv
KiBjb250ZXh0ID0gcHJvdGVjdGVkVGhpcy0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOworICAg
ICAgICBpZiAoIWNvbnRleHQpIHsKKyAgICAgICAgICAgIEZpbGVTeXN0ZW06OmNsb3NlRmlsZShm
aWxlKTsKKyAgICAgICAgICAgIHByb3RlY3RlZFRoaXMtPmNsb3NlKGlkZW50aWZpZXIsIHsgfSk7
CisgICAgICAgICAgICByZXR1cm4gcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgSW52YWxpZFN0
YXRlRXJyb3IsICJDb250ZXh0IGhhcyBzdG9wcGVkIl9zIH0pOworICAgICAgICB9CisKKyAgICAg
ICAgcHJvbWlzZS5zZXR0bGUoRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmNyZWF0ZSgqY29u
dGV4dCwgcHJvdGVjdGVkVGhpcy5nZXQoKSwgaWRlbnRpZmllciwgZmlsZSkpOwogICAgIH0pOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3Mv
RmlsZVN5c3RlbUZpbGVIYW5kbGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3Rl
bWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5oCmluZGV4IDk0ZDVlMWUxN2Y5ZjZmYTE5Nzc0
MTQwM2Y3OWU0Yzc4MGM2ZWRkYmUuLmJhYTQyZjhkOTIzMWFhZGRlMjUyOWNmZWMyMDFiMzRlYjU1
ZjI5MTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vz
cy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmls
ZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5oCkBAIC0zNyw3ICszNyw3IEBAIHRl
bXBsYXRlPHR5cGVuYW1lPiBjbGFzcyBFeGNlcHRpb25PcjsKIGNsYXNzIEZpbGVTeXN0ZW1GaWxl
SGFuZGxlIGZpbmFsIDogcHVibGljIEZpbGVTeXN0ZW1IYW5kbGUgewogICAgIFdURl9NQUtFX0lT
T19BTExPQ0FURUQoRmlsZVN5c3RlbUZpbGVIYW5kbGUpOwogcHVibGljOgotICAgIFdFQkNPUkVf
RVhQT1JUIHN0YXRpYyBSZWY8RmlsZVN5c3RlbUZpbGVIYW5kbGU+IGNyZWF0ZShTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiwgU3RyaW5nJiYsIEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBSZWY8
RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uPiYmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0
aWMgUmVmPEZpbGVTeXN0ZW1GaWxlSGFuZGxlPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCYsIFN0cmluZyYmLCBGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgUmVmPEZpbGVTeXN0ZW1T
dG9yYWdlQ29ubmVjdGlvbj4mJik7CiAgICAgdm9pZCBnZXRGaWxlKERPTVByb21pc2VEZWZlcnJl
ZDxJRExJbnRlcmZhY2U8RmlsZT4+JiYpOwogCiAgICAgdm9pZCBjcmVhdGVTeW5jQWNjZXNzSGFu
ZGxlKERPTVByb21pc2VEZWZlcnJlZDxJRExJbnRlcmZhY2U8RmlsZVN5c3RlbVN5bmNBY2Nlc3NI
YW5kbGU+PiYmKTsKQEAgLTQ3LDcgKzQ3LDcgQEAgcHVibGljOgogICAgIHZvaWQgY2xvc2UoRmls
ZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KEV4Y2VwdGlvbk9yPHZvaWQ+JiYpPiYmKTsKIAogcHJpdmF0ZToKLSAgICBGaWxlU3lzdGVtRmls
ZUhhbmRsZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgU3RyaW5nJiYsIEZpbGVTeXN0ZW1IYW5k
bGVJZGVudGlmaWVyLCBSZWY8RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uPiYmKTsKKyAgICBG
aWxlU3lzdGVtRmlsZUhhbmRsZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgU3RyaW5nJiYsIEZp
bGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBSZWY8RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9u
PiYmKTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtSGFuZGxlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtSGFuZGxlLmNw
cAppbmRleCBlZjAxMGYzYTk3NmFiMWJlODMxZDNjZDkyYjZjYTMxNjA5NDE3NmZhLi5iNWM1Yjk1
YjQyZTdiOTVlOGQxMWRkOTZmYzdiNjhlY2M0ZjA1MWYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUhhbmRsZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1IYW5kbGUu
Y3BwCkBAIC0zNCw4ICszNCw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogV1RGX01BS0VfSVNP
X0FMTE9DQVRFRF9JTVBMKEZpbGVTeXN0ZW1IYW5kbGUpOwogCi1GaWxlU3lzdGVtSGFuZGxlOjpG
aWxlU3lzdGVtSGFuZGxlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIEZpbGVTeXN0
ZW1IYW5kbGU6OktpbmQga2luZCwgU3RyaW5nJiYgbmFtZSwgRmlsZVN5c3RlbUhhbmRsZUlkZW50
aWZpZXIgaWRlbnRpZmllciwgUmVmPEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbj4mJiBjb25u
ZWN0aW9uKQotICAgIDogQWN0aXZlRE9NT2JqZWN0KGNvbnRleHQpCitGaWxlU3lzdGVtSGFuZGxl
OjpGaWxlU3lzdGVtSGFuZGxlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIEZpbGVT
eXN0ZW1IYW5kbGU6OktpbmQga2luZCwgU3RyaW5nJiYgbmFtZSwgRmlsZVN5c3RlbUhhbmRsZUlk
ZW50aWZpZXIgaWRlbnRpZmllciwgUmVmPEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbj4mJiBj
b25uZWN0aW9uKQorICAgIDogQWN0aXZlRE9NT2JqZWN0KCZjb250ZXh0KQogICAgICwgbV9raW5k
KGtpbmQpCiAgICAgLCBtX25hbWUoV1RGTW92ZShuYW1lKSkKICAgICAsIG1faWRlbnRpZmllcihp
ZGVudGlmaWVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVt
YWNjZXNzL0ZpbGVTeXN0ZW1IYW5kbGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5
c3RlbWFjY2Vzcy9GaWxlU3lzdGVtSGFuZGxlLmgKaW5kZXggMGE4NWUwMjhkYjM1ZmY1ZGZmNjMw
MWU2ZDE5M2IwNjMxMTNiM2EyOC4uYmYyODA1MDA5MDNmN2E1Njg4Y2U5ZGFlYTg4NTgyNjI5Njgy
NDk5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNz
L0ZpbGVTeXN0ZW1IYW5kbGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0
ZW1hY2Nlc3MvRmlsZVN5c3RlbUhhbmRsZS5oCkBAIC01NCw3ICs1NCw3IEBAIHB1YmxpYzoKICAg
ICB2b2lkIG1vdmUoRmlsZVN5c3RlbUhhbmRsZSYsIGNvbnN0IFN0cmluZyYgbmV3TmFtZSwgRE9N
UHJvbWlzZURlZmVycmVkPHZvaWQ+JiYpOwogCiBwcm90ZWN0ZWQ6Ci0gICAgRmlsZVN5c3RlbUhh
bmRsZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgS2luZCwgU3RyaW5nJiYgbmFtZSwgRmlsZVN5
c3RlbUhhbmRsZUlkZW50aWZpZXIsIFJlZjxGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24+JiYp
OworICAgIEZpbGVTeXN0ZW1IYW5kbGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIEtpbmQsIFN0
cmluZyYmIG5hbWUsIEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBSZWY8RmlsZVN5c3RlbVN0
b3JhZ2VDb25uZWN0aW9uPiYmKTsKICAgICBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24mIGNv
bm5lY3Rpb24oKSB7IHJldHVybiBtX2Nvbm5lY3Rpb24uZ2V0KCk7IH0KIAogcHJpdmF0ZToKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lz
dGVtU3RvcmFnZUNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3Rl
bWFjY2Vzcy9GaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaAppbmRleCAyN2ZhMWUyYzljZWVl
MjU2NWNmMzc1YmE2OTRjNGE1YWMxN2U5Nzc0Li43M2ViZjk5YzQ1ZTQxNjFkY2U0MTA2ODNlZDM4
NDE1OTc0OGFiYTg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0
ZW1hY2Nlc3MvRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5o
CkBAIC01MCw2ICs1MCw3IEBAIHB1YmxpYzoKICAgICB1c2luZyBHZXRIYW5kbGVOYW1lc0NhbGxi
YWNrID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25PcjxWZWN0b3I8U3RyaW5nPj4m
Jik+OwogICAgIHVzaW5nIEdldEhhbmRsZVdpdGhUeXBlQ2FsbGJhY2sgPSBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPHN0ZDo6cGFpcjxGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmll
ciwgYm9vbD4+JiYpPjsKIAorICAgIHZpcnR1YWwgdm9pZCBjbG9zZUhhbmRsZShGaWxlU3lzdGVt
SGFuZGxlSWRlbnRpZmllcikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBpc1NhbWVFbnRyeShGaWxl
U3lzdGVtSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFNhbWVF
bnRyeUNhbGxiYWNrJiYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgbW92ZShGaWxlU3lzdGVtSGFu
ZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYg
bmV3TmFtZSwgVm9pZENhbGxiYWNrJiYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZ2V0RmlsZUhh
bmRsZShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBib29s
IGNyZWF0ZUlmTmVjZXNzYXJ5LCBHZXRIYW5kbGVDYWxsYmFjayYmKSA9IDA7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNB
Y2Nlc3NIYW5kbGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNz
L0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmNwcAppbmRleCAyNGZjMmE3YTQyMzgzODc5Zjhl
ZGY5NWE2Y2FlZDgyZjM4YjFjMjY4Li5hNDZlMGRjMzA2M2UzZWYyNjYyNmQwZDliMjAxYTMwNWNl
ZGU5YTYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nl
c3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5jcHAKQEAg
LTMzLDEzICszMywxMyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVJlZjxGaWxlU3lzdGVt
U3luY0FjY2Vzc0hhbmRsZT4gRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmNyZWF0ZShTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBGaWxlU3lzdGVtRmlsZUhhbmRsZSYgc291cmNl
LCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgRmlsZVN5
c3RlbTo6UGxhdGZvcm1GaWxlSGFuZGxlIGZpbGUpCitSZWY8RmlsZVN5c3RlbVN5bmNBY2Nlc3NI
YW5kbGU+IEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCYgY29udGV4dCwgRmlsZVN5c3RlbUZpbGVIYW5kbGUmIHNvdXJjZSwgRmlsZVN5c3Rl
bVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIEZpbGVTeXN0ZW06OlBsYXRm
b3JtRmlsZUhhbmRsZSBmaWxlKQogewogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEZpbGVTeXN0
ZW1TeW5jQWNjZXNzSGFuZGxlKGNvbnRleHQsIHNvdXJjZSwgaWRlbnRpZmllciwgZmlsZSkpOwog
fQogCi1GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5k
bGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgRmlsZVN5c3RlbUZpbGVIYW5kbGUm
IHNvdXJjZSwgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIs
IEZpbGVTeXN0ZW06OlBsYXRmb3JtRmlsZUhhbmRsZSBmaWxlKQotICAgIDogQWN0aXZlRE9NT2Jq
ZWN0KGNvbnRleHQpCitGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6RmlsZVN5c3RlbVN5bmNB
Y2Nlc3NIYW5kbGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgRmlsZVN5c3RlbUZp
bGVIYW5kbGUmIHNvdXJjZSwgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGlk
ZW50aWZpZXIsIEZpbGVTeXN0ZW06OlBsYXRmb3JtRmlsZUhhbmRsZSBmaWxlKQorICAgIDogQWN0
aXZlRE9NT2JqZWN0KCZjb250ZXh0KQogICAgICwgbV9zb3VyY2Uoc291cmNlKQogICAgICwgbV9p
ZGVudGlmaWVyKGlkZW50aWZpZXIpCiAgICAgLCBtX2ZpbGUoZmlsZSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVT
eXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmgKaW5kZXggZWQyOWJlNTkxNmYxOTkyOWE5MTMyMjU2NjUx
ZWVkZDRmZmI3YWQ3Yi4uNzBhZmYzMzlhMjEwOTMwNDgwZTQ0N2MyMDg1NzkxZjUyMzJiYTEzMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVT
eXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxl
c3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmgKQEAgLTQ0LDcgKzQ0LDcg
QEAgcHVibGljOgogICAgICAgICB1bnNpZ25lZCBsb25nIGxvbmcgYXQ7CiAgICAgfTsKIAotICAg
IHN0YXRpYyBSZWY8RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU+IGNyZWF0ZShTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiwgRmlsZVN5c3RlbUZpbGVIYW5kbGUmLCBGaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW06OlBsYXRmb3JtRmlsZUhhbmRsZSk7CisgICAg
c3RhdGljIFJlZjxGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZT4gY3JlYXRlKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQmLCBGaWxlU3lzdGVtRmlsZUhhbmRsZSYsIEZpbGVTeXN0ZW1TeW5jQWNjZXNz
SGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbTo6UGxhdGZvcm1GaWxlSGFuZGxlKTsKICAgICB+
RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUoKTsKIAogICAgIHZvaWQgdHJ1bmNhdGUodW5zaWdu
ZWQgbG9uZyBsb25nIHNpemUsIERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmKTsKQEAgLTU2LDcg
KzU2LDcgQEAgcHVibGljOgogICAgIEV4Y2VwdGlvbk9yPHVuc2lnbmVkIGxvbmcgbG9uZz4gd3Jp
dGUoQnVmZmVyU291cmNlJiYsIEZpbGVzeXN0ZW1SZWFkV3JpdGVPcHRpb25zKTsKIAogcHJpdmF0
ZToKLSAgICBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZShTY3JpcHRFeGVjdXRpb25Db250ZXh0
KiwgRmlsZVN5c3RlbUZpbGVIYW5kbGUmLCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50
aWZpZXIsIEZpbGVTeXN0ZW06OlBsYXRmb3JtRmlsZUhhbmRsZSk7CisgICAgRmlsZVN5c3RlbVN5
bmNBY2Nlc3NIYW5kbGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIEZpbGVTeXN0ZW1GaWxlSGFu
ZGxlJiwgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtOjpQ
bGF0Zm9ybUZpbGVIYW5kbGUpOwogICAgIGJvb2wgaXNDbG9zaW5nT3JDbG9zZWQoKSBjb25zdDsK
ICAgICB1c2luZyBDbG9zZUNhbGxiYWNrID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeGNlcHRp
b25Pcjx2b2lkPiYmKT47CiAgICAgdm9pZCBjbG9zZUludGVybmFsKENsb3NlQ2FsbGJhY2smJik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvV29y
a2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3Bw
CmluZGV4IDY3MWFjNGYxMThhOTNhNmQ2NjE4MjJmOGY1ZTdkMmFhMDMwYTFhMjguLmFlMjhmMzBm
NDk0YWQwMzJhN2Q1MjNmMjZkNDZjYzE5OGQzN2NlM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5l
Y3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9X
b3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAj
aW5jbHVkZSAiV29ya2VyR2xvYmFsU2NvcGUuaCIKICNpbmNsdWRlICJXb3JrZXJMb2FkZXJQcm94
eS5oIgogI2luY2x1ZGUgIldvcmtlclRocmVhZC5oIgorI2luY2x1ZGUgPHd0Zi9TY29wZS5oPgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTc1LDYgKzc2LDE0IEBAIHZvaWQgV29ya2VyRmls
ZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpzY29wZUNsb3NlZCgpCiAgICAgbV9zY29wZSA9IG51
bGxwdHI7CiB9CiAKK3ZvaWQgV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpjbG9z
ZUhhbmRsZShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAgIGNh
bGxPbk1haW5UaHJlYWQoW21haW5UaHJlYWRDb25uZWN0aW9uID0gbV9tYWluVGhyZWFkQ29ubmVj
dGlvbiwgaWRlbnRpZmllcl0oKSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKG1haW5UaHJlYWRDb25u
ZWN0aW9uKQorICAgICAgICAgICAgbWFpblRocmVhZENvbm5lY3Rpb24tPmNsb3NlSGFuZGxlKGlk
ZW50aWZpZXIpOworICAgIH0pOworfQorCiB2b2lkIFdvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29u
bmVjdGlvbjo6aXNTYW1lRW50cnkoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmll
ciwgRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgb3RoZXJJZGVudGlmaWVyLCBGaWxlU3lzdGVt
U3RvcmFnZUNvbm5lY3Rpb246OlNhbWVFbnRyeUNhbGxiYWNrJiYgY2FsbGJhY2spCiB7CiAgICAg
aWYgKCFtX3Njb3BlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lz
dGVtYWNjZXNzL1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29u
bmVjdGlvbi5oCmluZGV4IGNhYzliNDJmZThkNWQwZDU4NjFiZWRjOTY5NTAyMTU2ZTdlMDM1NTYu
LjViY2JmYzJhYjI5NjMzMzZmNGM1ZWJmZGIyNzQzMDE5YTI4NTZiY2QgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3Rv
cmFnZUNvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1h
Y2Nlc3MvV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgKQEAgLTU3LDYgKzU3LDcg
QEAgcHJpdmF0ZToKICAgICBXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24oV29ya2Vy
R2xvYmFsU2NvcGUmLCBSZWY8RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uPiYmKTsKIAogICAg
IC8vIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbgorICAgIHZvaWQgY2xvc2VIYW5kbGUoRmls
ZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIpIGZpbmFsOwogICAgIHZvaWQgaXNTYW1lRW50cnkoRmls
ZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBGaWxl
U3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OlNhbWVFbnRyeUNhbGxiYWNrJiYpIGZpbmFsOwogICAg
IHZvaWQgbW92ZShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbUhhbmRsZUlk
ZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmV3TmFtZSwgVm9pZENhbGxiYWNrJiYpIGZpbmFsOwog
ICAgIHZvaWQgZ2V0RmlsZUhhbmRsZShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgY29uc3Qg
U3RyaW5nJiBuYW1lLCBib29sIGNyZWF0ZUlmTmVjZXNzYXJ5LCBGaWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb246OkdldEhhbmRsZUNhbGxiYWNrJiYpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9zdG9yYWdlL1N0b3JhZ2VNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvc3RvcmFnZS9TdG9yYWdlTWFuYWdlci5jcHAKaW5kZXggY2YwN2E1YWY0OWM1
ZWI0ZjQzMjk1N2IzMTdiYjkwNDVhYzYyODk5MC4uNzgwNGE4MDI3ZDQwNjkyM2EzNGMzOWVhY2Nl
YzY5M2NkMTA2MTE2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdG9yYWdl
L1N0b3JhZ2VNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0b3JhZ2Uv
U3RvcmFnZU1hbmFnZXIuY3BwCkBAIC0xMTksOSArMTE5LDE0IEBAIHZvaWQgU3RvcmFnZU1hbmFn
ZXI6OmZpbGVTeXN0ZW1BY2Nlc3NHZXREaXJlY3RvcnkoRE9NUHJvbWlzZURlZmVycmVkPElETElu
dGVyZmFjCiAgICAgICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpCiAgICAgICAgICAgICBy
ZXR1cm4gcHJvbWlzZS5yZWplY3QocmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKSk7CiAKKyAgICAg
ICAgYXV0byBbaWRlbnRpZmllciwgY29ubmVjdGlvbl0gPSByZXN1bHQucmVsZWFzZVJldHVyblZh
bHVlKCk7CiAgICAgICAgIGF1dG8qIGNvbnRleHQgPSB3ZWFrTmF2aWdhdG9yID8gd2Vha05hdmln
YXRvci0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIDogbnVsbHB0cjsKLSAgICAgICAgYXV0byBp
ZGVudGlmaWVyQ29ubmVjdGlvblBhaXIgPSByZXN1bHQucmVsZWFzZVJldHVyblZhbHVlKCk7Ci0g
ICAgICAgIHByb21pc2UucmVzb2x2ZShGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlOjpjcmVhdGUo
Y29udGV4dCwgeyB9LCBpZGVudGlmaWVyQ29ubmVjdGlvblBhaXIuZmlyc3QsIFJlZiB7ICogaWRl
bnRpZmllckNvbm5lY3Rpb25QYWlyLnNlY29uZCB9KSk7CisgICAgICAgIGlmICghY29udGV4dCkg
eworICAgICAgICAgICAgY29ubmVjdGlvbi0+Y2xvc2VIYW5kbGUoaWRlbnRpZmllcik7CisgICAg
ICAgICAgICByZXR1cm4gcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJy
b3IsICJDb250ZXh0IGhhcyBzdG9wcGVkIl9zIH0pOworICAgICAgICB9CisKKyAgICAgICAgcHJv
bWlzZS5yZXNvbHZlKEZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGU6OmNyZWF0ZSgqY29udGV4dCwg
eyB9LCBpZGVudGlmaWVyLCBSZWYgeyAqY29ubmVjdGlvbiB9KSk7CiAgICAgfSk7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVt
U3RvcmFnZUhhbmRsZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2Uv
RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUuY3BwCmluZGV4IDFmYjE3NTk4MTQ1NzhiNDlkZWJjZjJm
ZTNlZjgwNzc5YjA0MWE3N2QuLjYwNzFjYmM1MDFhMGI3NzY2NTFjYjVlMjRjZmI3MWVkYjY0OTVj
ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxl
U3lzdGVtU3RvcmFnZUhhbmRsZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmNwcApAQCAtNjksNiArNjksMTQgQEAg
RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU6On5GaWxlU3lzdGVtU3RvcmFnZUhhbmRsZSgpCiAgICAg
ICAgIEZpbGVTeXN0ZW06OmNsb3NlRmlsZShtX2hhbmRsZSk7CiB9CiAKK3ZvaWQgRmlsZVN5c3Rl
bVN0b3JhZ2VIYW5kbGU6OmNsb3NlKCkKK3sKKyAgICBpZiAoIW1fbWFuYWdlcikKKyAgICAgICAg
cmV0dXJuOworCisgICAgbV9tYW5hZ2VyLT5jbG9zZUhhbmRsZSgqdGhpcyk7Cit9CisKIGJvb2wg
RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OmlzU2FtZUVudHJ5KFdlYkNvcmU6OkZpbGVTeXN0ZW1I
YW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIpCiB7CiAgICAgYXV0byBwYXRoID0gbV9tYW5hZ2Vy
LT5nZXRQYXRoKGlkZW50aWZpZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmggYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUuaAppbmRleCBj
MGE5ZTNiMWFiY2Y4ZmQ5OGE1Mjc2MTRiNGM3MTAyN2Y2NTgxNWRmLi4zZGFmNDcyZjcxNmM1M2Ri
NWM0YzJiOGU5NThmNTc0ZjhlZWVhZGQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUuaApA
QCAtNTAsNiArNTAsNyBAQCBwdWJsaWM6CiAgICAgY29uc3QgU3RyaW5nJiBwYXRoKCkgY29uc3Qg
eyByZXR1cm4gbV9wYXRoOyB9CiAgICAgVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gbV90eXBl
OyB9CiAKKyAgICB2b2lkIGNsb3NlKCk7CiAgICAgYm9vbCBpc1NhbWVFbnRyeShXZWJDb3JlOjpG
aWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllcik7CiAgICAgc3RkOjpvcHRpb25hbDxGaWxlU3lzdGVt
U3RvcmFnZUVycm9yPiBtb3ZlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBj
b25zdCBTdHJpbmcmIG5ld05hbWUpOwogICAgIEV4cGVjdGVkPFdlYkNvcmU6OkZpbGVTeXN0ZW1I
YW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiBnZXRGaWxlSGFuZGxlKElQ
Qzo6Q29ubmVjdGlvbjo6VW5pcXVlSUQsIFN0cmluZyYmIG5hbWUsIGJvb2wgY3JlYXRlSWZOZWNl
c3NhcnkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdl
L0ZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyLmNwcAppbmRleCBiOTBhNGZhZWU1
M2VlMDMzOTMxYjk5MDY3OWFmYjQ2YThlNTczMmMzLi4zOGFhMjY1NWMzOWRkYzIzN2JhNWEzODBh
NWQ1NDkxMjQyYzM3ZjUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyLmNwcApAQCAt
OTQsNiArOTQsMTQgQEAgRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OlR5cGUgRmlsZVN5c3RlbVN0
b3JhZ2VNYW5hZ2VyOjpnZXRUeXBlKFdlYkNvcmU6OkZpbGVTeXMKICAgICByZXR1cm4gaGFuZGxl
ID09IG1faGFuZGxlcy5lbmQoKSA/IEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlOjpUeXBlOjpBbnkg
OiBoYW5kbGUtPnZhbHVlLT50eXBlKCk7CiB9CiAKK3ZvaWQgRmlsZVN5c3RlbVN0b3JhZ2VNYW5h
Z2VyOjpjbG9zZUhhbmRsZShGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZSYgaGFuZGxlKQoreworICAg
IGF1dG8gaWRlbnRpZmllciA9IGhhbmRsZS5pZGVudGlmaWVyKCk7CisgICAgYXV0byB0YWtlbkhh
bmRsZSA9IG1faGFuZGxlcy50YWtlKGlkZW50aWZpZXIpOworICAgIEFTU0VSVCh0YWtlbkhhbmRs
ZS5nZXQoKSA9PSAmaGFuZGxlKTsKKyAgICBtX3JlZ2lzdHJ5LnVucmVnaXN0ZXJIYW5kbGUoaWRl
bnRpZmllcik7Cit9CisKIHZvaWQgRmlsZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyOjpjb25uZWN0aW9u
Q2xvc2VkKElQQzo6Q29ubmVjdGlvbjo6VW5pcXVlSUQgY29ubmVjdGlvbikKIHsKICAgICBBU1NF
UlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKQEAgLTEwNCw3ICsxMTIsNyBAQCB2b2lkIEZpbGVTeXN0
ZW1TdG9yYWdlTWFuYWdlcjo6Y29ubmVjdGlvbkNsb3NlZChJUEM6OkNvbm5lY3Rpb246OlVuaXF1
ZUlEIGNvbm5lYwogCiAgICAgYXV0byBpZGVudGlmaWVycyA9IGNvbm5lY3Rpb25IYW5kbGVzLT52
YWx1ZTsKICAgICBmb3IgKGF1dG8gaWRlbnRpZmllciA6IGlkZW50aWZpZXJzKSB7Ci0gICAgICAg
IGF1dG8gaGFuZGxlID0gbV9oYW5kbGVzLnRha2UoaWRlbnRpZmllcik7CisgICAgICAgIG1faGFu
ZGxlcy5yZW1vdmUoaWRlbnRpZmllcik7CiAgICAgICAgIG1fcmVnaXN0cnkudW5yZWdpc3Rlckhh
bmRsZShpZGVudGlmaWVyKTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZU1hbmFnZXIuaCBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZU1hbmFnZXIuaApp
bmRleCBmZjAxYWJiNTRmZjE2MGNkMTQyZGFjODE3NTIxMmEyZjhmOTdhNTRiLi5iODU3Njc2OGIz
NTVhY2IzYWEwYzM3MDM4Y2M1MWVjYzkzMmIzOTZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyLmgKKysrIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlTWFu
YWdlci5oCkBAIC00Miw2ICs0Miw3IEBAIHB1YmxpYzoKICAgICBFeHBlY3RlZDxXZWJDb3JlOjpG
aWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gY3JlYXRl
SGFuZGxlKElQQzo6Q29ubmVjdGlvbjo6VW5pcXVlSUQsIEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxl
OjpUeXBlLCBTdHJpbmcmJiBwYXRoLCBTdHJpbmcmJiBuYW1lLCBib29sIGNyZWF0ZUlmTmVjZXNz
YXJ5KTsKICAgICBjb25zdCBTdHJpbmcmIGdldFBhdGgoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRs
ZUlkZW50aWZpZXIpOwogICAgIEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlOjpUeXBlIGdldFR5cGUo
V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIpOworICAgIHZvaWQgY2xvc2VIYW5k
bGUoRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUmKTsKICAgICB2b2lkIGNvbm5lY3Rpb25DbG9zZWQo
SVBDOjpDb25uZWN0aW9uOjpVbmlxdWVJRCk7CiAgICAgRXhwZWN0ZWQ8V2ViQ29yZTo6RmlsZVN5
c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IGdldERpcmVjdG9y
eShJUEM6OkNvbm5lY3Rpb246OlVuaXF1ZUlEKTsKICAgICBib29sIGFjcXVpcmVMb2NrRm9yRmls
ZShjb25zdCBTdHJpbmcmIHBhdGgsIFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVy
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3
b3JrU3RvcmFnZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9y
YWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5jcHAKaW5kZXggNjliYWM4MjViZWZmMjc5ZTRlMDBk
MTc5NzNjMWE0NWI2OTU2Yjk2NS4uY2U1ODExNDAzNGY5OGVlMzI2ZGFiNzdkYWZhZjU2MjNkZGQy
MjAwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05l
dHdvcmtTdG9yYWdlTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5jcHAKQEAgLTE3MSw2ICsxNzEsMTQgQEAg
dm9pZCBOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OmZpbGVTeXN0ZW1HZXREaXJlY3RvcnkoSVBDOjpD
b25uZWN0aW9uJiBjb25uZWN0aW9uLAogICAgIGNvbXBsZXRpb25IYW5kbGVyKGxvY2FsT3JpZ2lu
U3RvcmFnZU1hbmFnZXIob3JpZ2luKS5maWxlU3lzdGVtU3RvcmFnZU1hbmFnZXIoKm1fZmlsZVN5
c3RlbVN0b3JhZ2VIYW5kbGVSZWdpc3RyeSkuZ2V0RGlyZWN0b3J5KGNvbm5lY3Rpb24udW5pcXVl
SUQoKSkpOwogfQogCit2b2lkIE5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6Y2xvc2VIYW5kbGUoV2Vi
Q29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBBU1NF
UlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKKworICAgIGlmIChhdXRvIGhhbmRsZSA9IG1fZmlsZVN5
c3RlbVN0b3JhZ2VIYW5kbGVSZWdpc3RyeS0+Z2V0SGFuZGxlKGlkZW50aWZpZXIpKQorICAgICAg
ICBoYW5kbGUtPmNsb3NlKCk7Cit9CisKIHZvaWQgTmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjppc1Nh
bWVFbnRyeShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBX
ZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciB0YXJnZXRJZGVudGlmaWVyLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIEFT
U0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5oIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5oCmluZGV4IDA0
Y2MzYWYwOWJhYjNkMmYwZTBmNzAxYzFmZjI5MDBhNjE0MTYzNTYuLmUyNTUwNDE4OTYwZmQ0Zjdl
MzhjODQxYzQwOGYzZjQwNWFkNjYzNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmgKQEAgLTY5
LDYgKzY5LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHBlcnNpc3RlZChjb25zdCBXZWJDb3JlOjpD
bGllbnRPcmlnaW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKICAgICB2b2lk
IHBlcnNpc3QoY29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChib29sKT4mJik7CiAgICAgdm9pZCBmaWxlU3lzdGVtR2V0RGlyZWN0b3J5KElQQzo6Q29u
bmVjdGlvbiYsIGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoRXhwZWN0ZWQ8V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZpbGVT
eXN0ZW1TdG9yYWdlRXJyb3I+KT4mJik7CisgICAgdm9pZCBjbG9zZUhhbmRsZShXZWJDb3JlOjpG
aWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllcik7CiAgICAgdm9pZCBpc1NhbWVFbnRyeShXZWJDb3Jl
OjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlk
ZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwogICAgIHZvaWQgbW92
ZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3Rl
bUhhbmRsZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmV3TmFtZSwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChzdGQ6Om9wdGlvbmFsPEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4mJik7CiAgICAg
dm9pZCBnZXRGaWxlSGFuZGxlKElQQzo6Q29ubmVjdGlvbiYsIFdlYkNvcmU6OkZpbGVTeXN0ZW1I
YW5kbGVJZGVudGlmaWVyLCBTdHJpbmcmJiBuYW1lLCBib29sIGNyZWF0ZUlmTmVjZXNzYXJ5LCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4cGVjdGVkPFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJ
ZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPik+JiYpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5t
ZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3Jr
U3RvcmFnZU1hbmFnZXIubWVzc2FnZXMuaW4KaW5kZXggODJlYTMxMGY4MTUxZWRmMmM0M2FiYTQ1
MTE0YTgwMWM0Yjc0NmY3Mi4uMWZiYmYzN2JhYWQ3ZDA0M2M4NzVjZThkZjFiYWI5YTE1NzZhNzkw
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdv
cmtTdG9yYWdlTWFuYWdlci5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLm1lc3NhZ2VzLmluCkBAIC0yNyw2
ICsyNyw3IEBACiAgICAgUGVyc2lzdGVkKHN0cnVjdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4gb3Jp
Z2luKSAtPiAoYm9vbCBwZXJzaXN0ZWQpIEFzeW5jCiAgICAgUGVyc2lzdChzdHJ1Y3QgV2ViQ29y
ZTo6Q2xpZW50T3JpZ2luIG9yaWdpbikgLT4gKGJvb2wgcGVyc2lzdGVkKSBBc3luYwogICAgIEZp
bGVTeXN0ZW1HZXREaXJlY3Rvcnkoc3RydWN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiBvcmlnaW4p
IC0+IChFeHBlY3RlZDxXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgV2ViS2l0
OjpGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiByZXN1bHQpIEFzeW5jIFdhbnRzQ29ubmVjdGlvbgor
ICAgIENsb3NlSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50
aWZpZXIpCiAgICAgSXNTYW1lRW50cnkoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZp
ZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgdGFyZ2V0
SWRlbnRpZmllcikgLT4gKGJvb2wgcmVzdWx0KSBBc3luYwogICAgIEdldEZpbGVIYW5kbGUoV2Vi
Q29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgU3RyaW5nIG5hbWUs
IGJvb2wgY3JlYXRlSWZOZWNlc3NhcnkpIC0+IChFeHBlY3RlZDxXZWJDb3JlOjpGaWxlU3lzdGVt
SGFuZGxlSWRlbnRpZmllciwgV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiByZXN1bHQp
IEFzeW5jIFdhbnRzQ29ubmVjdGlvbgogICAgIEdldERpcmVjdG9yeUhhbmRsZShXZWJDb3JlOjpG
aWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBTdHJpbmcgbmFtZSwgYm9vbCBj
cmVhdGVJZk5lY2Vzc2FyeSkgLT4gKEV4cGVjdGVkPFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJ
ZGVudGlmaWVyLCBXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IHJlc3VsdCkgQXN5bmMg
V2FudHNDb25uZWN0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5l
Y3Rpb24uY3BwCmluZGV4IDFmMDZiNTlmOGNjNjYwY2EzMzkwNjA1ZWVmMTYyMTU3NzdhYzVhNmEu
LmQxZDc5ODVlNjVlZGQyNTllZjkzMjVmMjk0ZjA0YzhlMDYxOGZiZDIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGaWxlU3lzdGVtU3RvcmFn
ZUNvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwCkBAIC00OCw2ICs0OCwxNCBA
QCB2b2lkIFdlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Y29ubmVjdGlvbkNsb3NlZCgp
CiAgICAgbV9jb25uZWN0aW9uID0gbnVsbHB0cjsKIH0KIAordm9pZCBXZWJGaWxlU3lzdGVtU3Rv
cmFnZUNvbm5lY3Rpb246OmNsb3NlSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVu
dGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAgaWYgKCFtX2Nvbm5lY3Rpb24pCisgICAgICAgIHJl
dHVybjsKKworICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6TmV0d29ya1N0b3JhZ2VN
YW5hZ2VyOjpDbG9zZUhhbmRsZShpZGVudGlmaWVyKSwgMCk7Cit9CisKIHZvaWQgV2ViRmlsZVN5
c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjppc1NhbWVFbnRyeShXZWJDb3JlOjpGaWxlU3lzdGVtSGFu
ZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRp
ZmllciBvdGhlcklkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlv
bjo6U2FtZUVudHJ5Q2FsbGJhY2smJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBpZiAoIW1f
Y29ubmVjdGlvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24u
aAppbmRleCA3YjNhMWQxZTllZDI3NTdlZGExZGViNTQ1NTdlODQ2OWZkZmQ5MGI5Li5hNzZhN2Qx
M2MzMGQ1OTgxZmU3MWE3NzRjZDRkMDVjMjE2NDcxNDEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0
aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZp
bGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oCkBAIC03Miw2ICs3Miw3IEBAIHByaXZhdGU6CiAg
ICAgZXhwbGljaXQgV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uKElQQzo6Q29ubmVjdGlv
biYpOwogCiAgICAgLy8gRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uCisgICAgdm9pZCBjbG9z
ZUhhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllcikgZmluYWw7CiAgICAg
dm9pZCBpc1NhbWVFbnRyeShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgV2Vi
Q29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1TdG9y
YWdlQ29ubmVjdGlvbjo6U2FtZUVudHJ5Q2FsbGJhY2smJikgZmluYWw7CiAgICAgdm9pZCBtb3Zl
KFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVt
SGFuZGxlSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuZXdOYW1lLCBWb2lkQ2FsbGJhY2smJikg
ZmluYWw7CiAgICAgdm9pZCBnZXRGaWxlSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJ
ZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIGJvb2wgY3JlYXRlSWZOZWNlc3NhcnksIFdl
YkNvcmU6OkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6R2V0SGFuZGxlQ2FsbGJhY2smJikg
ZmluYWw7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKaW5kZXggZGE4OGNkZTViMTQwZGNkZTQwOTRjNWYyMTA3ZGVmYTlmMjY2NGFiNi4u
MWU0NjEwMDAxZGU1OTMwMDFjZDlhYmU3N2RlMzM5MTMwYWU1NTM4NSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDEzIEBACisyMDIxLTEwLTI4ICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisg
ICAgICAgIFJlbGVhc2UgRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUgd2hlbiBpdCBpcyBub3QgaW4g
dXNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzIz
NjMKKworICAgICAgICBSZXZpZXdlZCBieSBZb3Vlbm4gRmFibGV0LgorCisgICAgICAgICogc3Rv
cmFnZS9maWxlc3lzdGVtYWNjZXNzL3Jlc291cmNlcy9zeW5jLWFjY2Vzcy1oYW5kbGUtYmFzaWNz
LmpzOgorICAgICAgICAoZ2V0RGlyZWN0b3J5KTogY2xlYW4gdXAgZXhpc3RpbmcgZmlsZSBiZWZv
cmUgdGVzdC4KKwogMjAyMS0xMC0yOCAgQWRpdHlhIEtlZXJ0aGkgIDxha2VlcnRoaUBhcHBsZS5j
b20+CiAKICAgICAgICAgUkVHUkVTU0lPTiAocjI4MjQ1MSk6IFtpT1NdIENhbm5vdCBvdmVycmlk
ZSBiYWNrZ3JvdW5kIG9mIHNlYXJjaCBpbnB1dHMgd2l0aCAnYXBwZWFyYW5jZTogdGV4dGZpZWxk
JwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9maWxlc3lzdGVtYWNjZXNzL3Jlc291
cmNlcy9zeW5jLWFjY2Vzcy1oYW5kbGUtYmFzaWNzLmpzIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9m
aWxlc3lzdGVtYWNjZXNzL3Jlc291cmNlcy9zeW5jLWFjY2Vzcy1oYW5kbGUtYmFzaWNzLmpzCmlu
ZGV4IDk2NzEyNWE0NmRjNmI2ZWMzZmNmZWYxMzk0YTg2MDhjODY1Mjg3MmMuLjg4ZTRjODFmMzgw
MjJmOGI3ZjE2MzJhYzE2MDdhNDhhM2U4OThlM2UgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0
b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9yZXNvdXJjZXMvc3luYy1hY2Nlc3MtaGFuZGxlLWJhc2lj
cy5qcworKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2ZpbGVzeXN0ZW1hY2Nlc3MvcmVzb3VyY2Vz
L3N5bmMtYWNjZXNzLWhhbmRsZS1iYXNpY3MuanMKQEAgLTE3LDcgKzE3LDExIEBAIGZ1bmN0aW9u
IGZpbmlzaFRlc3QoZXJyb3IpCiBmdW5jdGlvbiBnZXREaXJlY3RvcnkoKSB7CiAgICAgbmF2aWdh
dG9yLnN0b3JhZ2UuZ2V0RGlyZWN0b3J5KCkudGhlbigoaGFuZGxlKSA9PiB7CiAgICAgICAgIHJv
b3RIYW5kbGUgPSBoYW5kbGU7Ci0gICAgICAgIGNyZWF0ZUZpbGVIYW5kbGUocm9vdEhhbmRsZSk7
CisgICAgICAgIHJvb3RIYW5kbGUucmVtb3ZlRW50cnkoInN5bmMtYWNjZXNzLWhhbmRsZS50eHQi
KS50aGVuKCgpID0+IHsKKyAgICAgICAgICAgIGNyZWF0ZUZpbGVIYW5kbGUocm9vdEhhbmRsZSk7
CisgICAgICAgIH0pLmNhdGNoKChlcnJvcikgPT4geworICAgICAgICAgICAgZmluaXNoVGVzdChl
cnJvcik7CisgICAgICAgIH0pOwogICAgIH0pLmNhdGNoKChlcnJvcikgPT4gewogICAgICAgICBm
aW5pc2hUZXN0KGVycm9yKTsKICAgICB9KTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>442834</attachid>
            <date>2021-10-29 10:16:36 -0700</date>
            <delta_ts>2021-10-29 10:53:27 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-232363-20211029101635.patch</filename>
            <type>text/plain</type>
            <size>34524</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1MDMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTM1MjU2NWJhNDhlZDRi
ZTU3ZTZiOTQzNWFkZmRmNTAyYjEzMWIzYy4uNWNiYzkyOTZlOWZiMTJjYzM0MDY5YTYzZDFlMDlj
NGFmYzI0MzlmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDIxLTEwLTI5ICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIFJlbGVhc2UgRmlsZVN5c3Rl
bVN0b3JhZ2VIYW5kbGUgd2hlbiBpdCBpcyBub3QgaW4gdXNlCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzIzNjMKKworICAgICAgICBSZXZpZXdlZCBi
eSBZb3Vlbm4gRmFibGV0LgorCisgICAgICAgIFdoZW4gRmlsZVN5c3RlbUhhbmRsZSBpcyBkZXN0
cm95ZWQsIGl0cyBjb3JyZXNwb25kaW5nIEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlIHNob3VsZCBi
ZSBkZXN0cm95ZWQgYXMgaXQgd2lsbAorICAgICAgICBub3QgYmUgdXNlZCBhbnkgbW9yZS4gQWxz
bywgc3RvcCBjcmVhdGluZyBhIG5ldyBGaWxlU3lzdGVtSGFuZGxlIG9yIEZpbGVTeXN0ZW1TeW5j
QWNjZXNzSGFuZGxlIGlmIGNvbnRleHQgCisgICAgICAgIGFscmVhZHkgc3RvcHMuCisKKyAgICAg
ICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlOjpjcmVhdGUp
OgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZTo6RmlsZVN5c3Rl
bURpcmVjdG9yeUhhbmRsZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtRGlyZWN0b3J5
SGFuZGxlOjpnZXRGaWxlSGFuZGxlKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1EaXJl
Y3RvcnlIYW5kbGU6OmdldERpcmVjdG9yeUhhbmRsZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxl
U3lzdGVtRGlyZWN0b3J5SGFuZGxlOjpnZXRIYW5kbGUpOgorICAgICAgICAqIE1vZHVsZXMvZmls
ZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlLmg6CisgICAgICAgICogTW9k
dWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29y
ZTo6RmlsZVN5c3RlbUZpbGVIYW5kbGU6OkZpbGVTeXN0ZW1GaWxlSGFuZGxlKToKKyAgICAgICAg
KFdlYkNvcmU6OkZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKToK
KyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUu
aDoKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUhhbmRsZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlOjpGaWxlU3lzdGVtSGFuZGxl
KToKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUhhbmRsZS5o
OgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb24uaDoKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3Rl
bVN5bmNBY2Nlc3NIYW5kbGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNB
Y2Nlc3NIYW5kbGU6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0Fj
Y2Vzc0hhbmRsZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUpOgorICAgICAgICAqIE1vZHVs
ZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5oOgorICAgICAg
ICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5l
Y3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25u
ZWN0aW9uOjpjbG9zZUhhbmRsZSk6CisgICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNz
L1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oOgorICAgICAgICAqIE1vZHVsZXMv
c3RvcmFnZS9TdG9yYWdlTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdG9yYWdlTWFu
YWdlcjo6ZmlsZVN5c3RlbUFjY2Vzc0dldERpcmVjdG9yeSk6CisKIDIwMjEtMTAtMjkgIEFudHRp
IEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAgIE1ha2UgOi13ZWJraXQtYW55
KCkgYSBzeW5vbnltIG9mIDppcygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDUzNTAwYmM3ZjU3ZDRkNTVhNmI0NmU0
NjgyNTgyZDJlMzI2NDgyYjUuLmVlYjJkYjRmNTZkZDM3MTJkYmU4OTlhMTVhNDNkZjZiZmRiYWNj
OTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMjEtMTAtMjkgIFNpaHVpIExpdSAgPHNp
aHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgUmVsZWFzZSBGaWxlU3lzdGVtU3RvcmFnZUhh
bmRsZSB3aGVuIGl0IGlzIG5vdCBpbiB1c2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIzMjM2MworCisgICAgICAgIFJldmlld2VkIGJ5IFlvdWVubiBG
YWJsZXQuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9y
YWdlSGFuZGxlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU6
OmNsb3NlKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9y
YWdlSGFuZGxlLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVt
U3RvcmFnZU1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZU1h
bmFnZXI6OmNsb3NlSGFuZGxlKToKKyAgICAgICAgKFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VN
YW5hZ2VyOjpjb25uZWN0aW9uQ2xvc2VkKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9zdG9y
YWdlL0ZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlci5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNz
L3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0
d29ya1N0b3JhZ2VNYW5hZ2VyOjpjbG9zZUhhbmRsZSk6CisgICAgICAgICogTmV0d29ya1Byb2Nl
c3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5tZXNzYWdlcy5pbjoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlv
bi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6
Y2xvc2VIYW5kbGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRmls
ZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmg6CisKIDIwMjEtMTAtMjkgIEF5dW1pIEtvamltYSAg
PGF5dW1pX2tvamltYUBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcmV2ZXJ0aW5n
IHIyODUwMDcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1h
Y2Nlc3MvRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZS5jcHAKaW5kZXgg
NjdmZmM4YzQ5M2QxNDI0NTEwNDkzMDIwY2JjZjczZmVlMjcxMDE4ZS4uODg2MGNjN2IzNTdiNmY5
MDYzYmViYjAyOWY5MDMwOWJiMmVjZjFjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRGlyZWN0
b3J5SGFuZGxlLmNwcApAQCAtMzYsMTIgKzM2LDEyIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
V1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKEZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGUpOwog
Ci1SZWY8RmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZT4gRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRs
ZTo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFN0cmluZyYmIG5hbWUs
IEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFJlZjxGaWxlU3lzdGVtU3Rv
cmFnZUNvbm5lY3Rpb24+JiYgY29ubmVjdGlvbikKK1JlZjxGaWxlU3lzdGVtRGlyZWN0b3J5SGFu
ZGxlPiBGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCYgY29udGV4dCwgU3RyaW5nJiYgbmFtZSwgRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIg
aWRlbnRpZmllciwgUmVmPEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbj4mJiBjb25uZWN0aW9u
KQogewogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGUo
Y29udGV4dCwgV1RGTW92ZShuYW1lKSwgaWRlbnRpZmllciwgV1RGTW92ZShjb25uZWN0aW9uKSkp
OwogfQogCi1GaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlOjpGaWxlU3lzdGVtRGlyZWN0b3J5SGFu
ZGxlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFN0cmluZyYmIG5hbWUsIEZpbGVT
eXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFJlZjxGaWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb24+JiYgY29ubmVjdGlvbikKK0ZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGU6OkZpbGVT
eXN0ZW1EaXJlY3RvcnlIYW5kbGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgU3Ry
aW5nJiYgbmFtZSwgRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgUmVmPEZp
bGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbj4mJiBjb25uZWN0aW9uKQogICAgIDogRmlsZVN5c3Rl
bUhhbmRsZShjb250ZXh0LCBGaWxlU3lzdGVtSGFuZGxlOjpLaW5kOjpEaXJlY3RvcnksIFdURk1v
dmUobmFtZSksIGlkZW50aWZpZXIsIFdURk1vdmUoY29ubmVjdGlvbikpCiB7CiB9CkBAIC01Niw4
ICs1NiwxNCBAQCB2b2lkIEZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGU6OmdldEZpbGVIYW5kbGUo
Y29uc3QgU3RyaW5nJiBuYW1lLCBzdGQ6Om9wdGlvbmFsPAogICAgICAgICBpZiAocmVzdWx0Lmhh
c0V4Y2VwdGlvbigpKQogICAgICAgICAgICAgcmV0dXJuIHByb21pc2UucmVqZWN0KHJlc3VsdC5y
ZWxlYXNlRXhjZXB0aW9uKCkpOwogCisgICAgICAgIGF1dG8gaWRlbnRpZmllciA9IHJlc3VsdC5y
ZXR1cm5WYWx1ZSgpOwogICAgICAgICBhdXRvKiBjb250ZXh0ID0gd2Vha1RoaXMgPyB3ZWFrVGhp
cy0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIDogbnVsbHB0cjsKLSAgICAgICAgcHJvbWlzZS5z
ZXR0bGUoRmlsZVN5c3RlbUZpbGVIYW5kbGU6OmNyZWF0ZShjb250ZXh0LCBTdHJpbmcgeyBuYW1l
IH0sIHJlc3VsdC5yZXR1cm5WYWx1ZSgpLCBXVEZNb3ZlKGNvbm5lY3Rpb24pKSk7CisgICAgICAg
IGlmICghY29udGV4dCkgeworICAgICAgICAgICAgY29ubmVjdGlvbi0+Y2xvc2VIYW5kbGUoaWRl
bnRpZmllcik7CisgICAgICAgICAgICByZXR1cm4gcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsg
SW52YWxpZFN0YXRlRXJyb3IsICJDb250ZXh0IGhhcyBzdG9wcGVkIl9zIH0pOworICAgICAgICB9
CisKKyAgICAgICAgcHJvbWlzZS5zZXR0bGUoRmlsZVN5c3RlbUZpbGVIYW5kbGU6OmNyZWF0ZSgq
Y29udGV4dCwgU3RyaW5nIHsgbmFtZSB9LCByZXN1bHQucmV0dXJuVmFsdWUoKSwgV1RGTW92ZShj
b25uZWN0aW9uKSkpOwogICAgIH0pOwogfQogCkBAIC03MSw4ICs3NywxNCBAQCB2b2lkIEZpbGVT
eXN0ZW1EaXJlY3RvcnlIYW5kbGU6OmdldERpcmVjdG9yeUhhbmRsZShjb25zdCBTdHJpbmcmIG5h
bWUsIHN0ZDo6b3B0aQogICAgICAgICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKQogICAgICAg
ICAgICAgcmV0dXJuIHByb21pc2UucmVqZWN0KHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCkpOwog
CisgICAgICAgIGF1dG8gaWRlbnRpZmllciA9IHJlc3VsdC5yZXR1cm5WYWx1ZSgpOwogICAgICAg
ICBhdXRvKiBjb250ZXh0ID0gd2Vha1RoaXMgPyB3ZWFrVGhpcy0+c2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpIDogbnVsbHB0cjsKLSAgICAgICAgcHJvbWlzZS5zZXR0bGUoRmlsZVN5c3RlbURpcmVj
dG9yeUhhbmRsZTo6Y3JlYXRlKGNvbnRleHQsIFN0cmluZyB7IG5hbWUgfSwgcmVzdWx0LnJldHVy
blZhbHVlKCksIFdURk1vdmUoY29ubmVjdGlvbikpKTsKKyAgICAgICAgaWYgKCFjb250ZXh0KSB7
CisgICAgICAgICAgICBjb25uZWN0aW9uLT5jbG9zZUhhbmRsZShpZGVudGlmaWVyKTsKKyAgICAg
ICAgICAgIHJldHVybiBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJv
ciwgIkNvbnRleHQgaGFzIHN0b3BwZWQiX3MgfSk7CisgICAgICAgIH0KKworICAgICAgICBwcm9t
aXNlLnNldHRsZShGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlOjpjcmVhdGUoKmNvbnRleHQsIFN0
cmluZyB7IG5hbWUgfSwgaWRlbnRpZmllciwgV1RGTW92ZShjb25uZWN0aW9uKSkpOwogICAgIH0p
OwogfQogCkBAIC0xMTksMTIgKzEzMSwxNyBAQCB2b2lkIEZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5k
bGU6OmdldEhhbmRsZShjb25zdCBTdHJpbmcmIG5hbWUsIENvbXBsZXRpb25IYW5kbGVyPAogCiAg
ICAgICAgIGF1dG8gW2lkZW50aWZpZXIsIGlzRGlyZWN0b3J5XSA9IHJlc3VsdC5yZWxlYXNlUmV0
dXJuVmFsdWUoKTsKICAgICAgICAgYXV0byogY29udGV4dCA9IHdlYWtUaGlzID8gd2Vha1RoaXMt
PnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSA6IG51bGxwdHI7CisgICAgICAgIGlmICghY29udGV4
dCkgeworICAgICAgICAgICAgY29ubmVjdGlvbi0+Y2xvc2VIYW5kbGUoaWRlbnRpZmllcik7Cisg
ICAgICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoRXhjZXB0aW9uIHsgSW52YWxpZFN0
YXRlRXJyb3IsICJDb250ZXh0IGhhcyBzdG9wcGVkIl9zIH0pOworICAgICAgICB9CisKICAgICAg
ICAgaWYgKGlzRGlyZWN0b3J5KSB7Ci0gICAgICAgICAgICBSZWY8RmlsZVN5c3RlbUhhbmRsZT4g
aGFuZGxlID0gRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZTo6Y3JlYXRlKGNvbnRleHQsIFN0cmlu
ZyB7IG5hbWUgfSwgaWRlbnRpZmllciwgV1RGTW92ZShjb25uZWN0aW9uKSk7CisgICAgICAgICAg
ICBSZWY8RmlsZVN5c3RlbUhhbmRsZT4gaGFuZGxlID0gRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRs
ZTo6Y3JlYXRlKCpjb250ZXh0LCBTdHJpbmcgeyBuYW1lIH0sIGlkZW50aWZpZXIsIFdURk1vdmUo
Y29ubmVjdGlvbikpOwogICAgICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKFdURk1v
dmUoaGFuZGxlKSk7CiAgICAgICAgIH0KIAotICAgICAgICBSZWY8RmlsZVN5c3RlbUhhbmRsZT4g
aGFuZGxlID0gRmlsZVN5c3RlbUZpbGVIYW5kbGU6OmNyZWF0ZShjb250ZXh0LCBTdHJpbmcgeyBu
YW1lIH0sIGlkZW50aWZpZXIsIFdURk1vdmUoY29ubmVjdGlvbikpOworICAgICAgICBSZWY8Rmls
ZVN5c3RlbUhhbmRsZT4gaGFuZGxlID0gRmlsZVN5c3RlbUZpbGVIYW5kbGU6OmNyZWF0ZSgqY29u
dGV4dCwgU3RyaW5nIHsgbmFtZSB9LCBpZGVudGlmaWVyLCBXVEZNb3ZlKGNvbm5lY3Rpb24pKTsK
ICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShoYW5kbGUpKTsKICAgICB9KTsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxl
U3lzdGVtRGlyZWN0b3J5SGFuZGxlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0
ZW1hY2Nlc3MvRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZS5oCmluZGV4IDFlODQzMjhiN2IyODQy
OGNhZjc4MjUzZmI5ZWVkZWYwZmMwZGZkZjAuLmNlNmE1Mzg2MGFiMGM5ZTkzMTEzN2FhZTVmOTg2
YzU4ODg5NjAwYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3Rl
bWFjY2Vzcy9GaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGUuaApAQCAt
NDcsNyArNDcsNyBAQCBwdWJsaWM6CiAgICAgICAgIGJvb2wgcmVjdXJzaXZlIHsgZmFsc2UgfTsK
ICAgICB9OwogCi0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZjxGaWxlU3lzdGVtRGlyZWN0
b3J5SGFuZGxlPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFN0cmluZyYmLCBGaWxl
U3lzdGVtSGFuZGxlSWRlbnRpZmllciwgUmVmPEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbj4m
Jik7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZjxGaWxlU3lzdGVtRGlyZWN0b3J5SGFu
ZGxlPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIFN0cmluZyYmLCBGaWxlU3lzdGVt
SGFuZGxlSWRlbnRpZmllciwgUmVmPEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbj4mJik7CiAg
ICAgdm9pZCBnZXRGaWxlSGFuZGxlKGNvbnN0IFN0cmluZyYgbmFtZSwgc3RkOjpvcHRpb25hbDxH
ZXRGaWxlT3B0aW9ucz4sIERPTVByb21pc2VEZWZlcnJlZDxJRExJbnRlcmZhY2U8RmlsZVN5c3Rl
bUZpbGVIYW5kbGU+PiYmKTsKICAgICB2b2lkIGdldERpcmVjdG9yeUhhbmRsZShjb25zdCBTdHJp
bmcmIG5hbWUsIHN0ZDo6b3B0aW9uYWw8R2V0RGlyZWN0b3J5T3B0aW9ucz4sIERPTVByb21pc2VE
ZWZlcnJlZDxJRExJbnRlcmZhY2U8RmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZT4+JiYpOwogICAg
IHZvaWQgcmVtb3ZlRW50cnkoY29uc3QgU3RyaW5nJiBuYW1lLCBzdGQ6Om9wdGlvbmFsPFJlbW92
ZU9wdGlvbnM+LCBET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJik7CkBAIC03Nyw3ICs3Nyw3IEBA
IHB1YmxpYzoKICAgICBSZWY8SXRlcmF0b3I+IGNyZWF0ZUl0ZXJhdG9yKCk7CiAKIHByaXZhdGU6
Ci0gICAgRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZShTY3JpcHRFeGVjdXRpb25Db250ZXh0Kiwg
U3RyaW5nJiYsIEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBSZWY8RmlsZVN5c3RlbVN0b3Jh
Z2VDb25uZWN0aW9uPiYmKTsKKyAgICBGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQmLCBTdHJpbmcmJiwgRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFJl
ZjxGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24+JiYpOwogfTsKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNj
ZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmls
ZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5jcHAKaW5kZXggMzY2ODczYWFmZDlk
OThlNTc2NGM5YjI1NTFiM2NlNWVmNjIwYmZiOC4uMmRiYjRlM2E4MDBmZTJmNDU4OTYxN2RhMTdj
M2M1MzMwOTAxZGIxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lz
dGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUuY3BwCkBAIC0zNiwx
MiArMzYsMTIgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBXVEZfTUFLRV9JU09fQUxMT0NBVEVE
X0lNUEwoRmlsZVN5c3RlbUZpbGVIYW5kbGUpOwogCi1SZWY8RmlsZVN5c3RlbUZpbGVIYW5kbGU+
IEZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29u
dGV4dCwgU3RyaW5nJiYgbmFtZSwgRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmll
ciwgUmVmPEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbj4mJiBjb25uZWN0aW9uKQorUmVmPEZp
bGVTeXN0ZW1GaWxlSGFuZGxlPiBGaWxlU3lzdGVtRmlsZUhhbmRsZTo6Y3JlYXRlKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFN0cmluZyYmIG5hbWUsIEZpbGVTeXN0ZW1IYW5kbGVJ
ZGVudGlmaWVyIGlkZW50aWZpZXIsIFJlZjxGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24+JiYg
Y29ubmVjdGlvbikKIHsKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBGaWxlU3lzdGVtRmlsZUhh
bmRsZShjb250ZXh0LCBXVEZNb3ZlKG5hbWUpLCBpZGVudGlmaWVyLCBXVEZNb3ZlKGNvbm5lY3Rp
b24pKSk7CiB9CiAKLUZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpGaWxlU3lzdGVtRmlsZUhhbmRsZShT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBTdHJpbmcmJiBuYW1lLCBGaWxlU3lzdGVt
SGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBSZWY8RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0
aW9uPiYmIGNvbm5lY3Rpb24pCitGaWxlU3lzdGVtRmlsZUhhbmRsZTo6RmlsZVN5c3RlbUZpbGVI
YW5kbGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgU3RyaW5nJiYgbmFtZSwgRmls
ZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgUmVmPEZpbGVTeXN0ZW1TdG9yYWdl
Q29ubmVjdGlvbj4mJiBjb25uZWN0aW9uKQogICAgIDogRmlsZVN5c3RlbUhhbmRsZShjb250ZXh0
LCBGaWxlU3lzdGVtSGFuZGxlOjpLaW5kOjpGaWxlLCBXVEZNb3ZlKG5hbWUpLCBpZGVudGlmaWVy
LCBXVEZNb3ZlKGNvbm5lY3Rpb24pKQogewogfQpAQCAtNjAsMTEgKzYwLDE4IEBAIHZvaWQgRmls
ZVN5c3RlbUZpbGVIYW5kbGU6OmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoRE9NUHJvbWlzZURlZmVy
cmVkPElETEludGVyZmFjCiAgICAgICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpCiAgICAg
ICAgICAgICByZXR1cm4gcHJvbWlzZS5yZWplY3QocmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKSk7
CiAKLSAgICAgICAgYXV0byByZXN1bHRWYWx1ZSA9IHJlc3VsdC5yZWxlYXNlUmV0dXJuVmFsdWUo
KTsKLSAgICAgICAgaWYgKHJlc3VsdFZhbHVlLnNlY29uZCA9PSBGaWxlU3lzdGVtOjppbnZhbGlk
UGxhdGZvcm1GaWxlSGFuZGxlKQorICAgICAgICBhdXRvIFtpZGVudGlmaWVyLCBmaWxlXSA9IHJl
c3VsdC5yZWxlYXNlUmV0dXJuVmFsdWUoKTsKKyAgICAgICAgaWYgKGZpbGUgPT0gRmlsZVN5c3Rl
bTo6aW52YWxpZFBsYXRmb3JtRmlsZUhhbmRsZSkKICAgICAgICAgICAgIHJldHVybiBwcm9taXNl
LnJlamVjdChFeGNlcHRpb24geyBVbmtub3duRXJyb3IsICJJbnZhbGlkIHBsYXRmb3JtIGZpbGUg
aGFuZGxlIl9zIH0pOwogCi0gICAgICAgIHByb21pc2Uuc2V0dGxlKEZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlOjpjcmVhdGUocHJvdGVjdGVkVGhpcy0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgp
LCBwcm90ZWN0ZWRUaGlzLmdldCgpLCByZXN1bHRWYWx1ZS5maXJzdCwgcmVzdWx0VmFsdWUuc2Vj
b25kKSk7CisgICAgICAgIGF1dG8qIGNvbnRleHQgPSBwcm90ZWN0ZWRUaGlzLT5zY3JpcHRFeGVj
dXRpb25Db250ZXh0KCk7CisgICAgICAgIGlmICghY29udGV4dCkgeworICAgICAgICAgICAgRmls
ZVN5c3RlbTo6Y2xvc2VGaWxlKGZpbGUpOworICAgICAgICAgICAgcHJvdGVjdGVkVGhpcy0+Y2xv
c2UoaWRlbnRpZmllciwgeyB9KTsKKyAgICAgICAgICAgIHJldHVybiBwcm9taXNlLnJlamVjdChF
eGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgIkNvbnRleHQgaGFzIHN0b3BwZWQiX3MgfSk7
CisgICAgICAgIH0KKworICAgICAgICBwcm9taXNlLnNldHRsZShGaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZTo6Y3JlYXRlKCpjb250ZXh0LCBwcm90ZWN0ZWRUaGlzLmdldCgpLCBpZGVudGlmaWVy
LCBmaWxlKSk7CiAgICAgfSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmgKaW5kZXgg
OTRkNWUxZTE3ZjlmNmZhMTk3NzQxNDAzZjc5ZTRjNzgwYzZlZGRiZS4uYmFhNDJmOGQ5MjMxYWFk
ZGUyNTI5Y2ZlYzIwMWIzNGViNTVmMjkxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmgK
QEAgLTM3LDcgKzM3LDcgQEAgdGVtcGxhdGU8dHlwZW5hbWU+IGNsYXNzIEV4Y2VwdGlvbk9yOwog
Y2xhc3MgRmlsZVN5c3RlbUZpbGVIYW5kbGUgZmluYWwgOiBwdWJsaWMgRmlsZVN5c3RlbUhhbmRs
ZSB7CiAgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChGaWxlU3lzdGVtRmlsZUhhbmRsZSk7CiBw
dWJsaWM6Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZjxGaWxlU3lzdGVtRmlsZUhhbmRs
ZT4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBTdHJpbmcmJiwgRmlsZVN5c3RlbUhh
bmRsZUlkZW50aWZpZXIsIFJlZjxGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24+JiYpOworICAg
IFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWY8RmlsZVN5c3RlbUZpbGVIYW5kbGU+IGNyZWF0ZShT
Y3JpcHRFeGVjdXRpb25Db250ZXh0JiwgU3RyaW5nJiYsIEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlm
aWVyLCBSZWY8RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uPiYmKTsKICAgICB2b2lkIGdldEZp
bGUoRE9NUHJvbWlzZURlZmVycmVkPElETEludGVyZmFjZTxGaWxlPj4mJik7CiAKICAgICB2b2lk
IGNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoRE9NUHJvbWlzZURlZmVycmVkPElETEludGVyZmFjZTxG
aWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZT4+JiYpOwpAQCAtNDcsNyArNDcsNyBAQCBwdWJsaWM6
CiAgICAgdm9pZCBjbG9zZShGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8dm9pZD4mJik+JiYpOwogCiBwcml2YXRl
OgotICAgIEZpbGVTeXN0ZW1GaWxlSGFuZGxlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBTdHJp
bmcmJiwgRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFJlZjxGaWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb24+JiYpOworICAgIEZpbGVTeXN0ZW1GaWxlSGFuZGxlKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQmLCBTdHJpbmcmJiwgRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFJlZjxGaWxlU3lz
dGVtU3RvcmFnZUNvbm5lY3Rpb24+JiYpOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVT
eXN0ZW1IYW5kbGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNz
L0ZpbGVTeXN0ZW1IYW5kbGUuY3BwCmluZGV4IGVmMDEwZjNhOTc2YWIxYmU4MzFkM2NkOTJiNmNh
MzE2MDk0MTc2ZmEuLmI1YzViOTViNDJlN2I5NWU4ZDExZGQ5NmZjN2I2OGVjYzRmMDUxZjEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lz
dGVtSGFuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nl
c3MvRmlsZVN5c3RlbUhhbmRsZS5jcHAKQEAgLTM0LDggKzM0LDggQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogCiBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoRmlsZVN5c3RlbUhhbmRsZSk7CiAK
LUZpbGVTeXN0ZW1IYW5kbGU6OkZpbGVTeXN0ZW1IYW5kbGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCogY29udGV4dCwgRmlsZVN5c3RlbUhhbmRsZTo6S2luZCBraW5kLCBTdHJpbmcmJiBuYW1lLCBG
aWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBSZWY8RmlsZVN5c3RlbVN0b3Jh
Z2VDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24pCi0gICAgOiBBY3RpdmVET01PYmplY3QoY29udGV4
dCkKK0ZpbGVTeXN0ZW1IYW5kbGU6OkZpbGVTeXN0ZW1IYW5kbGUoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCYgY29udGV4dCwgRmlsZVN5c3RlbUhhbmRsZTo6S2luZCBraW5kLCBTdHJpbmcmJiBuYW1l
LCBGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBSZWY8RmlsZVN5c3RlbVN0
b3JhZ2VDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24pCisgICAgOiBBY3RpdmVET01PYmplY3QoJmNv
bnRleHQpCiAgICAgLCBtX2tpbmQoa2luZCkKICAgICAsIG1fbmFtZShXVEZNb3ZlKG5hbWUpKQog
ICAgICwgbV9pZGVudGlmaWVyKGlkZW50aWZpZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUhhbmRsZS5oIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1IYW5kbGUuaAppbmRleCAw
YTg1ZTAyOGRiMzVmZjVkZmY2MzAxZTZkMTkzYjA2MzExM2IzYTI4Li5iZjI4MDUwMDkwM2Y3YTU2
ODhjZTlkYWVhODg1ODI2Mjk2ODI0OTk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUhhbmRsZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtSGFuZGxlLmgKQEAgLTU0LDcg
KzU0LDcgQEAgcHVibGljOgogICAgIHZvaWQgbW92ZShGaWxlU3lzdGVtSGFuZGxlJiwgY29uc3Qg
U3RyaW5nJiBuZXdOYW1lLCBET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJik7CiAKIHByb3RlY3Rl
ZDoKLSAgICBGaWxlU3lzdGVtSGFuZGxlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBLaW5kLCBT
dHJpbmcmJiBuYW1lLCBGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgUmVmPEZpbGVTeXN0ZW1T
dG9yYWdlQ29ubmVjdGlvbj4mJik7CisgICAgRmlsZVN5c3RlbUhhbmRsZShTY3JpcHRFeGVjdXRp
b25Db250ZXh0JiwgS2luZCwgU3RyaW5nJiYgbmFtZSwgRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZp
ZXIsIFJlZjxGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24+JiYpOwogICAgIEZpbGVTeXN0ZW1T
dG9yYWdlQ29ubmVjdGlvbiYgY29ubmVjdGlvbigpIHsgcmV0dXJuIG1fY29ubmVjdGlvbi5nZXQo
KTsgfQogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxl
c3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5o
CmluZGV4IDI3ZmExZTJjOWNlZWUyNTY1Y2YzNzViYTY5NGM0YTVhYzE3ZTk3NzQuLjczZWJmOTlj
NDVlNDE2MWRjZTQxMDY4M2VkMzg0MTU5NzQ4YWJhODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24u
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3Rl
bVN0b3JhZ2VDb25uZWN0aW9uLmgKQEAgLTUwLDYgKzUwLDcgQEAgcHVibGljOgogICAgIHVzaW5n
IEdldEhhbmRsZU5hbWVzQ2FsbGJhY2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlv
bk9yPFZlY3RvcjxTdHJpbmc+PiYmKT47CiAgICAgdXNpbmcgR2V0SGFuZGxlV2l0aFR5cGVDYWxs
YmFjayA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8c3RkOjpwYWlyPEZpbGVT
eXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBib29sPj4mJik+OwogCisgICAgdmlydHVhbCB2b2lkIGNs
b3NlSGFuZGxlKEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyKSA9IDA7CiAgICAgdmlydHVhbCB2
b2lkIGlzU2FtZUVudHJ5KEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtSGFu
ZGxlSWRlbnRpZmllciwgU2FtZUVudHJ5Q2FsbGJhY2smJikgPSAwOwogICAgIHZpcnR1YWwgdm9p
ZCBtb3ZlKEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtSGFuZGxlSWRlbnRp
ZmllciwgY29uc3QgU3RyaW5nJiBuZXdOYW1lLCBWb2lkQ2FsbGJhY2smJikgPSAwOwogICAgIHZp
cnR1YWwgdm9pZCBnZXRGaWxlSGFuZGxlKEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBjb25z
dCBTdHJpbmcmIG5hbWUsIGJvb2wgY3JlYXRlSWZOZWNlc3NhcnksIEdldEhhbmRsZUNhbGxiYWNr
JiYpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFj
Y2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuY3BwCmluZGV4
IDI0ZmMyYTdhNDIzODM4NzlmOGVkZjk1YTZjYWVkODJmMzhiMWMyNjguLmE0NmUwZGMzMDYzZTNl
ZjI2NjI2ZDBkOWIyMDFhMzA1Y2VkZTlhNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5j
QWNjZXNzSGFuZGxlLmNwcApAQCAtMzMsMTMgKzMzLDEzIEBACiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAotUmVmPEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlPiBGaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZTo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIEZpbGVTeXN0
ZW1GaWxlSGFuZGxlJiBzb3VyY2UsIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmll
ciBpZGVudGlmaWVyLCBGaWxlU3lzdGVtOjpQbGF0Zm9ybUZpbGVIYW5kbGUgZmlsZSkKK1JlZjxG
aWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZT4gRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmNy
ZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBGaWxlU3lzdGVtRmlsZUhhbmRs
ZSYgc291cmNlLCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmll
ciwgRmlsZVN5c3RlbTo6UGxhdGZvcm1GaWxlSGFuZGxlIGZpbGUpCiB7CiAgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUoY29udGV4dCwgc291cmNlLCBp
ZGVudGlmaWVyLCBmaWxlKSk7CiB9CiAKLUZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpGaWxl
U3lzdGVtU3luY0FjY2Vzc0hhbmRsZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBG
aWxlU3lzdGVtRmlsZUhhbmRsZSYgc291cmNlLCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlk
ZW50aWZpZXIgaWRlbnRpZmllciwgRmlsZVN5c3RlbTo6UGxhdGZvcm1GaWxlSGFuZGxlIGZpbGUp
Ci0gICAgOiBBY3RpdmVET01PYmplY3QoY29udGV4dCkKK0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFu
ZGxlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBj
b250ZXh0LCBGaWxlU3lzdGVtRmlsZUhhbmRsZSYgc291cmNlLCBGaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgRmlsZVN5c3RlbTo6UGxhdGZvcm1GaWxlSGFu
ZGxlIGZpbGUpCisgICAgOiBBY3RpdmVET01PYmplY3QoJmNvbnRleHQpCiAgICAgLCBtX3NvdXJj
ZShzb3VyY2UpCiAgICAgLCBtX2lkZW50aWZpZXIoaWRlbnRpZmllcikKICAgICAsIG1fZmlsZShm
aWxlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNz
L0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Zp
bGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaAppbmRleCBlZDI5YmU1
OTE2ZjE5OTI5YTkxMzIyNTY2NTFlZWRkNGZmYjdhZDdiLi43MGFmZjMzOWEyMTA5MzA0ODBlNDQ3
YzIwODU3OTFmNTIzMmJhMTMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Zp
bGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5k
bGUuaApAQCAtNDQsNyArNDQsNyBAQCBwdWJsaWM6CiAgICAgICAgIHVuc2lnbmVkIGxvbmcgbG9u
ZyBhdDsKICAgICB9OwogCi0gICAgc3RhdGljIFJlZjxGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRs
ZT4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBGaWxlU3lzdGVtRmlsZUhhbmRsZSYs
IEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbTo6UGxhdGZv
cm1GaWxlSGFuZGxlKTsKKyAgICBzdGF0aWMgUmVmPEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxl
PiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIEZpbGVTeXN0ZW1GaWxlSGFuZGxlJiwg
RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtOjpQbGF0Zm9y
bUZpbGVIYW5kbGUpOwogICAgIH5GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZSgpOwogCiAgICAg
dm9pZCB0cnVuY2F0ZSh1bnNpZ25lZCBsb25nIGxvbmcgc2l6ZSwgRE9NUHJvbWlzZURlZmVycmVk
PHZvaWQ+JiYpOwpAQCAtNTYsNyArNTYsNyBAQCBwdWJsaWM6CiAgICAgRXhjZXB0aW9uT3I8dW5z
aWduZWQgbG9uZyBsb25nPiB3cml0ZShCdWZmZXJTb3VyY2UmJiwgRmlsZXN5c3RlbVJlYWRXcml0
ZU9wdGlvbnMpOwogCiBwcml2YXRlOgotICAgIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBGaWxlU3lzdGVtRmlsZUhhbmRsZSYsIEZpbGVTeXN0ZW1T
eW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbTo6UGxhdGZvcm1GaWxlSGFuZGxl
KTsKKyAgICBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZShTY3JpcHRFeGVjdXRpb25Db250ZXh0
JiwgRmlsZVN5c3RlbUZpbGVIYW5kbGUmLCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50
aWZpZXIsIEZpbGVTeXN0ZW06OlBsYXRmb3JtRmlsZUhhbmRsZSk7CiAgICAgYm9vbCBpc0Nsb3Np
bmdPckNsb3NlZCgpIGNvbnN0OwogICAgIHVzaW5nIENsb3NlQ2FsbGJhY2sgPSBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPHZvaWQ+JiYpPjsKICAgICB2b2lkIGNsb3NlSW50ZXJu
YWwoQ2xvc2VDYWxsYmFjayYmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
ZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZpbGVTeXN0ZW1T
dG9yYWdlQ29ubmVjdGlvbi5jcHAKaW5kZXggNjcxYWM0ZjExOGE5M2E2ZDY2MTgyMmY4ZjVlN2Qy
YWEwMzBhMWEyOC4uYWUyOGYzMGY0OTRhZDAzMmE3ZDUyM2YyNmQ0NmNjMTk4ZDM3Y2UzYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZp
bGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHAK
QEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJXb3JrZXJHbG9iYWxTY29wZS5oIgogI2luY2x1
ZGUgIldvcmtlckxvYWRlclByb3h5LmgiCiAjaW5jbHVkZSAiV29ya2VyVGhyZWFkLmgiCisjaW5j
bHVkZSA8d3RmL1Njb3BlLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNzUsNiArNzYs
MTQgQEAgdm9pZCBXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OnNjb3BlQ2xvc2Vk
KCkKICAgICBtX3Njb3BlID0gbnVsbHB0cjsKIH0KIAordm9pZCBXb3JrZXJGaWxlU3lzdGVtU3Rv
cmFnZUNvbm5lY3Rpb246OmNsb3NlSGFuZGxlKEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlk
ZW50aWZpZXIpCit7CisgICAgY2FsbE9uTWFpblRocmVhZChbbWFpblRocmVhZENvbm5lY3Rpb24g
PSBtX21haW5UaHJlYWRDb25uZWN0aW9uLCBpZGVudGlmaWVyXSgpIG11dGFibGUgeworICAgICAg
ICBpZiAobWFpblRocmVhZENvbm5lY3Rpb24pCisgICAgICAgICAgICBtYWluVGhyZWFkQ29ubmVj
dGlvbi0+Y2xvc2VIYW5kbGUoaWRlbnRpZmllcik7CisgICAgfSk7Cit9CisKIHZvaWQgV29ya2Vy
RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjppc1NhbWVFbnRyeShGaWxlU3lzdGVtSGFuZGxl
SWRlbnRpZmllciBpZGVudGlmaWVyLCBGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBvdGhlcklk
ZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6U2FtZUVudHJ5Q2FsbGJhY2sm
JiBjYWxsYmFjaykKIHsKICAgICBpZiAoIW1fc2NvcGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25u
ZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvV29ya2Vy
RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgKaW5kZXggY2FjOWI0MmZlOGQ1ZDBkNTg2MWJl
ZGM5Njk1MDIxNTZlN2UwMzU1Ni4uNWJjYmZjMmFiMjk2MzMzNmY0YzVlYmZkYjI3NDMwMTlhMjg1
NmJjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNz
L1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rp
b24uaApAQCAtNTcsNiArNTcsNyBAQCBwcml2YXRlOgogICAgIFdvcmtlckZpbGVTeXN0ZW1TdG9y
YWdlQ29ubmVjdGlvbihXb3JrZXJHbG9iYWxTY29wZSYsIFJlZjxGaWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb24+JiYpOwogCiAgICAgLy8gRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uCisgICAg
dm9pZCBjbG9zZUhhbmRsZShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllcikgZmluYWw7CiAgICAg
dm9pZCBpc1NhbWVFbnRyeShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbUhh
bmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6U2FtZUVudHJ5Q2Fs
bGJhY2smJikgZmluYWw7CiAgICAgdm9pZCBtb3ZlKEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVy
LCBGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuZXdOYW1lLCBWb2lk
Q2FsbGJhY2smJikgZmluYWw7CiAgICAgdm9pZCBnZXRGaWxlSGFuZGxlKEZpbGVTeXN0ZW1IYW5k
bGVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIGJvb2wgY3JlYXRlSWZOZWNlc3Nhcnks
IEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6R2V0SGFuZGxlQ2FsbGJhY2smJikgZmluYWw7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0b3JhZ2UvU3RvcmFnZU1hbmFn
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdG9yYWdlL1N0b3JhZ2VNYW5hZ2VyLmNw
cAppbmRleCBjZjA3YTVhZjQ5YzVlYjRmNDMyOTU3YjMxN2JiOTA0NWFjNjI4OTkwLi43ODA0YTgw
MjdkNDA2OTIzYTM0YzM5ZWFjY2VjNjkzY2QxMDYxMTZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3N0b3JhZ2UvU3RvcmFnZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvc3RvcmFnZS9TdG9yYWdlTWFuYWdlci5jcHAKQEAgLTExOSw5ICsxMTksMTQg
QEAgdm9pZCBTdG9yYWdlTWFuYWdlcjo6ZmlsZVN5c3RlbUFjY2Vzc0dldERpcmVjdG9yeShET01Q
cm9taXNlRGVmZXJyZWQ8SURMSW50ZXJmYWMKICAgICAgICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRp
b24oKSkKICAgICAgICAgICAgIHJldHVybiBwcm9taXNlLnJlamVjdChyZXN1bHQucmVsZWFzZUV4
Y2VwdGlvbigpKTsKIAorICAgICAgICBhdXRvIFtpZGVudGlmaWVyLCBjb25uZWN0aW9uXSA9IHJl
c3VsdC5yZWxlYXNlUmV0dXJuVmFsdWUoKTsKICAgICAgICAgYXV0byogY29udGV4dCA9IHdlYWtO
YXZpZ2F0b3IgPyB3ZWFrTmF2aWdhdG9yLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgOiBudWxs
cHRyOwotICAgICAgICBhdXRvIGlkZW50aWZpZXJDb25uZWN0aW9uUGFpciA9IHJlc3VsdC5yZWxl
YXNlUmV0dXJuVmFsdWUoKTsKLSAgICAgICAgcHJvbWlzZS5yZXNvbHZlKEZpbGVTeXN0ZW1EaXJl
Y3RvcnlIYW5kbGU6OmNyZWF0ZShjb250ZXh0LCB7IH0sIGlkZW50aWZpZXJDb25uZWN0aW9uUGFp
ci5maXJzdCwgUmVmIHsgKiBpZGVudGlmaWVyQ29ubmVjdGlvblBhaXIuc2Vjb25kIH0pKTsKKyAg
ICAgICAgaWYgKCFjb250ZXh0KSB7CisgICAgICAgICAgICBjb25uZWN0aW9uLT5jbG9zZUhhbmRs
ZShpZGVudGlmaWVyKTsKKyAgICAgICAgICAgIHJldHVybiBwcm9taXNlLnJlamVjdChFeGNlcHRp
b24geyBJbnZhbGlkU3RhdGVFcnJvciwgIkNvbnRleHQgaGFzIHN0b3BwZWQiX3MgfSk7CisgICAg
ICAgIH0KKworICAgICAgICBwcm9taXNlLnJlc29sdmUoRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRs
ZTo6Y3JlYXRlKCpjb250ZXh0LCB7IH0sIGlkZW50aWZpZXIsIFJlZiB7ICpjb25uZWN0aW9uIH0p
KTsKICAgICB9KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5jcHAKaW5kZXggMWZi
MTc1OTgxNDU3OGI0OWRlYmNmMmZlM2VmODA3NzliMDQxYTc3ZC4uNjA3MWNiYzUwMWEwYjc3NjY1
MWNiNWUyNGNmYjcxZWRiNjQ5NWNlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUuY3Bw
CkBAIC02OSw2ICs2OSwxNCBAQCBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6fkZpbGVTeXN0ZW1T
dG9yYWdlSGFuZGxlKCkKICAgICAgICAgRmlsZVN5c3RlbTo6Y2xvc2VGaWxlKG1faGFuZGxlKTsK
IH0KIAordm9pZCBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6Y2xvc2UoKQoreworICAgIGlmICgh
bV9tYW5hZ2VyKQorICAgICAgICByZXR1cm47CisKKyAgICBtX21hbmFnZXItPmNsb3NlSGFuZGxl
KCp0aGlzKTsKK30KKwogYm9vbCBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6aXNTYW1lRW50cnko
V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllcikKIHsKICAgICBh
dXRvIHBhdGggPSBtX21hbmFnZXItPmdldFBhdGgoaWRlbnRpZmllcik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5k
bGUuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3Rv
cmFnZUhhbmRsZS5oCmluZGV4IGMwYTllM2IxYWJjZjhmZDk4YTUyNzYxNGI0YzcxMDI3ZjY1ODE1
ZGYuLjNkYWY0NzJmNzE2YzUzZGI1YzRjMmI4ZTk1OGY1NzRmOGVlZWFkZDggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZUhh
bmRsZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lz
dGVtU3RvcmFnZUhhbmRsZS5oCkBAIC01MCw2ICs1MCw3IEBAIHB1YmxpYzoKICAgICBjb25zdCBT
dHJpbmcmIHBhdGgoKSBjb25zdCB7IHJldHVybiBtX3BhdGg7IH0KICAgICBUeXBlIHR5cGUoKSBj
b25zdCB7IHJldHVybiBtX3R5cGU7IH0KIAorICAgIHZvaWQgY2xvc2UoKTsKICAgICBib29sIGlz
U2FtZUVudHJ5KFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyKTsKICAgICBzdGQ6
Om9wdGlvbmFsPEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IG1vdmUoV2ViQ29yZTo6RmlsZVN5c3Rl
bUhhbmRsZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmV3TmFtZSk7CiAgICAgRXhwZWN0ZWQ8
V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlRXJy
b3I+IGdldEZpbGVIYW5kbGUoSVBDOjpDb25uZWN0aW9uOjpVbmlxdWVJRCwgU3RyaW5nJiYgbmFt
ZSwgYm9vbCBjcmVhdGVJZk5lY2Vzc2FyeSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZU1hbmFnZXIu
Y3BwCmluZGV4IGI5MGE0ZmFlZTUzZWUwMzM5MzFiOTkwNjc5YWZiNDZhOGU1NzMyYzMuLjM4YWEy
NjU1YzM5ZGRjMjM3YmE1YTM4MGE1ZDU0OTEyNDJjMzdmNTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZU1hbmFnZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3Rv
cmFnZU1hbmFnZXIuY3BwCkBAIC05NCw2ICs5NCwxNCBAQCBGaWxlU3lzdGVtU3RvcmFnZUhhbmRs
ZTo6VHlwZSBGaWxlU3lzdGVtU3RvcmFnZU1hbmFnZXI6OmdldFR5cGUoV2ViQ29yZTo6RmlsZVN5
cwogICAgIHJldHVybiBoYW5kbGUgPT0gbV9oYW5kbGVzLmVuZCgpID8gRmlsZVN5c3RlbVN0b3Jh
Z2VIYW5kbGU6OlR5cGU6OkFueSA6IGhhbmRsZS0+dmFsdWUtPnR5cGUoKTsKIH0KIAordm9pZCBG
aWxlU3lzdGVtU3RvcmFnZU1hbmFnZXI6OmNsb3NlSGFuZGxlKEZpbGVTeXN0ZW1TdG9yYWdlSGFu
ZGxlJiBoYW5kbGUpCit7CisgICAgYXV0byBpZGVudGlmaWVyID0gaGFuZGxlLmlkZW50aWZpZXIo
KTsKKyAgICBhdXRvIHRha2VuSGFuZGxlID0gbV9oYW5kbGVzLnRha2UoaWRlbnRpZmllcik7Cisg
ICAgQVNTRVJUKHRha2VuSGFuZGxlLmdldCgpID09ICZoYW5kbGUpOworICAgIG1fcmVnaXN0cnku
dW5yZWdpc3RlckhhbmRsZShpZGVudGlmaWVyKTsKK30KKwogdm9pZCBGaWxlU3lzdGVtU3RvcmFn
ZU1hbmFnZXI6OmNvbm5lY3Rpb25DbG9zZWQoSVBDOjpDb25uZWN0aW9uOjpVbmlxdWVJRCBjb25u
ZWN0aW9uKQogewogICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwpAQCAtMTA0LDcgKzEx
Miw3IEBAIHZvaWQgRmlsZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyOjpjb25uZWN0aW9uQ2xvc2VkKElQ
Qzo6Q29ubmVjdGlvbjo6VW5pcXVlSUQgY29ubmVjCiAKICAgICBhdXRvIGlkZW50aWZpZXJzID0g
Y29ubmVjdGlvbkhhbmRsZXMtPnZhbHVlOwogICAgIGZvciAoYXV0byBpZGVudGlmaWVyIDogaWRl
bnRpZmllcnMpIHsKLSAgICAgICAgYXV0byBoYW5kbGUgPSBtX2hhbmRsZXMudGFrZShpZGVudGlm
aWVyKTsKKyAgICAgICAgbV9oYW5kbGVzLnJlbW92ZShpZGVudGlmaWVyKTsKICAgICAgICAgbV9y
ZWdpc3RyeS51bnJlZ2lzdGVySGFuZGxlKGlkZW50aWZpZXIpOwogICAgIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdl
TWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0
ZW1TdG9yYWdlTWFuYWdlci5oCmluZGV4IGZmMDFhYmI1NGZmMTYwY2QxNDJkYWM4MTc1MjEyYTJm
OGY5N2E1NGIuLmI4NTc2NzY4YjM1NWFjYjNhYTBjMzcwMzhjYzUxZWNjOTMyYjM5NmMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3Rv
cmFnZU1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2Uv
RmlsZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyLmgKQEAgLTQyLDYgKzQyLDcgQEAgcHVibGljOgogICAg
IEV4cGVjdGVkPFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVt
U3RvcmFnZUVycm9yPiBjcmVhdGVIYW5kbGUoSVBDOjpDb25uZWN0aW9uOjpVbmlxdWVJRCwgRmls
ZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OlR5cGUsIFN0cmluZyYmIHBhdGgsIFN0cmluZyYmIG5hbWUs
IGJvb2wgY3JlYXRlSWZOZWNlc3NhcnkpOwogICAgIGNvbnN0IFN0cmluZyYgZ2V0UGF0aChXZWJD
b3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllcik7CiAgICAgRmlsZVN5c3RlbVN0b3JhZ2VI
YW5kbGU6OlR5cGUgZ2V0VHlwZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllcik7
CisgICAgdm9pZCBjbG9zZUhhbmRsZShGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZSYpOwogICAgIHZv
aWQgY29ubmVjdGlvbkNsb3NlZChJUEM6OkNvbm5lY3Rpb246OlVuaXF1ZUlEKTsKICAgICBFeHBl
Y3RlZDxXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3Jh
Z2VFcnJvcj4gZ2V0RGlyZWN0b3J5KElQQzo6Q29ubmVjdGlvbjo6VW5pcXVlSUQpOwogICAgIGJv
b2wgYWNxdWlyZUxvY2tGb3JGaWxlKGNvbnN0IFN0cmluZyYgcGF0aCwgV2ViQ29yZTo6RmlsZVN5
c3RlbUhhbmRsZUlkZW50aWZpZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmNwcAppbmRleCA2
OWJhYzgyNWJlZmYyNzllNGUwMGQxNzk3M2MxYTQ1YjY5NTZiOTY1Li5jZTU4MTE0MDM0Zjk4ZWUz
MjZkYWI3N2RhZmFmNTYyM2RkZDIyMDA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmNwcApA
QCAtMTcxLDYgKzE3MSwxNCBAQCB2b2lkIE5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6ZmlsZVN5c3Rl
bUdldERpcmVjdG9yeShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sCiAgICAgY29tcGxldGlv
bkhhbmRsZXIobG9jYWxPcmlnaW5TdG9yYWdlTWFuYWdlcihvcmlnaW4pLmZpbGVTeXN0ZW1TdG9y
YWdlTWFuYWdlcigqbV9maWxlU3lzdGVtU3RvcmFnZUhhbmRsZVJlZ2lzdHJ5KS5nZXREaXJlY3Rv
cnkoY29ubmVjdGlvbi51bmlxdWVJRCgpKSk7CiB9CiAKK3ZvaWQgTmV0d29ya1N0b3JhZ2VNYW5h
Z2VyOjpjbG9zZUhhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVu
dGlmaWVyKQoreworICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOworCisgICAgaWYgKGF1
dG8gaGFuZGxlID0gbV9maWxlU3lzdGVtU3RvcmFnZUhhbmRsZVJlZ2lzdHJ5LT5nZXRIYW5kbGUo
aWRlbnRpZmllcikpCisgICAgICAgIGhhbmRsZS0+Y2xvc2UoKTsKK30KKwogdm9pZCBOZXR3b3Jr
U3RvcmFnZU1hbmFnZXI6OmlzU2FtZUVudHJ5KFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVu
dGlmaWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIHRh
cmdldElkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlv
bkhhbmRsZXIpCiB7CiAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5h
Z2VyLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3Jh
Z2VNYW5hZ2VyLmgKaW5kZXggMDRjYzNhZjA5YmFiM2QyZjBlMGY3MDFjMWZmMjkwMGE2MTQxNjM1
Ni4uZTI1NTA0MTg5NjBmZDRmN2UzOGM4NDFjNDA4ZjNmNDA1YWQ2NjM3OCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdl
ci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3Rv
cmFnZU1hbmFnZXIuaApAQCAtNjksNiArNjksNyBAQCBwcml2YXRlOgogICAgIHZvaWQgcGVyc2lz
dGVkKGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
Ym9vbCk+JiYpOwogICAgIHZvaWQgcGVyc2lzdChjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4m
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKICAgICB2b2lkIGZpbGVTeXN0ZW1H
ZXREaXJlY3RvcnkoSVBDOjpDb25uZWN0aW9uJiwgY29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2lu
JiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDxXZWJDb3JlOjpGaWxlU3lzdGVtSGFu
ZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4pPiYmKTsKKyAgICB2b2lkIGNs
b3NlSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyKTsKICAgICB2b2lk
IGlzU2FtZUVudHJ5KFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBXZWJDb3Jl
OjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29s
KT4mJik7CiAgICAgdm9pZCBtb3ZlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVy
LCBXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuZXdO
YW1lLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8RmlsZVN5c3RlbVN0b3Jh
Z2VFcnJvcj4pPiYmKTsKICAgICB2b2lkIGdldEZpbGVIYW5kbGUoSVBDOjpDb25uZWN0aW9uJiwg
V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFN0cmluZyYmIG5hbWUsIGJvb2wg
Y3JlYXRlSWZOZWNlc3NhcnksIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0ZWQ8V2ViQ29y
ZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4m
Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0
d29ya1N0b3JhZ2VNYW5hZ2VyLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5tZXNzYWdlcy5pbgppbmRleCA4MmVh
MzEwZjgxNTFlZGYyYzQzYWJhNDUxMTRhODAxYzRiNzQ2ZjcyLi4xZmJiZjM3YmFhZDdkMDQzYzg3
NWNlOGRmMWJhYjlhMTU3NmE3OTA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLm1lc3NhZ2VzLmluCisrKyBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIu
bWVzc2FnZXMuaW4KQEAgLTI3LDYgKzI3LDcgQEAKICAgICBQZXJzaXN0ZWQoc3RydWN0IFdlYkNv
cmU6OkNsaWVudE9yaWdpbiBvcmlnaW4pIC0+IChib29sIHBlcnNpc3RlZCkgQXN5bmMKICAgICBQ
ZXJzaXN0KHN0cnVjdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4gb3JpZ2luKSAtPiAoYm9vbCBwZXJz
aXN0ZWQpIEFzeW5jCiAgICAgRmlsZVN5c3RlbUdldERpcmVjdG9yeShzdHJ1Y3QgV2ViQ29yZTo6
Q2xpZW50T3JpZ2luIG9yaWdpbikgLT4gKEV4cGVjdGVkPFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5k
bGVJZGVudGlmaWVyLCBXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IHJlc3VsdCkgQXN5
bmMgV2FudHNDb25uZWN0aW9uCisgICAgQ2xvc2VIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhh
bmRsZUlkZW50aWZpZXIgaWRlbnRpZmllcikKICAgICBJc1NhbWVFbnRyeShXZWJDb3JlOjpGaWxl
U3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtSGFu
ZGxlSWRlbnRpZmllciB0YXJnZXRJZGVudGlmaWVyKSAtPiAoYm9vbCByZXN1bHQpIEFzeW5jCiAg
ICAgR2V0RmlsZUhhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVu
dGlmaWVyLCBTdHJpbmcgbmFtZSwgYm9vbCBjcmVhdGVJZk5lY2Vzc2FyeSkgLT4gKEV4cGVjdGVk
PFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBXZWJLaXQ6OkZpbGVTeXN0ZW1T
dG9yYWdlRXJyb3I+IHJlc3VsdCkgQXN5bmMgV2FudHNDb25uZWN0aW9uCiAgICAgR2V0RGlyZWN0
b3J5SGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIs
IFN0cmluZyBuYW1lLCBib29sIGNyZWF0ZUlmTmVjZXNzYXJ5KSAtPiAoRXhwZWN0ZWQ8V2ViQ29y
ZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VF
cnJvcj4gcmVzdWx0KSBBc3luYyBXYW50c0Nvbm5lY3Rpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5l
Y3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZp
bGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHAKaW5kZXggMWYwNmI1OWY4Y2M2NjBjYTMzOTA2
MDVlZWYxNjIxNTc3N2FjNWE2YS4uZDFkNzk4NWU2NWVkZDI1OWVmOTMyNWYyOTRmMDRjOGUwNjE4
ZmJkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5j
cHAKQEAgLTQ4LDYgKzQ4LDE0IEBAIHZvaWQgV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9u
Ojpjb25uZWN0aW9uQ2xvc2VkKCkKICAgICBtX2Nvbm5lY3Rpb24gPSBudWxscHRyOwogfQogCit2
b2lkIFdlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Y2xvc2VIYW5kbGUoV2ViQ29yZTo6
RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBpZiAoIW1fY29u
bmVjdGlvbikKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3Nh
Z2VzOjpOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OkNsb3NlSGFuZGxlKGlkZW50aWZpZXIpLCAwKTsK
K30KKwogdm9pZCBXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmlzU2FtZUVudHJ5KFdl
YkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6OkZp
bGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIG90aGVySWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5
c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpTYW1lRW50cnlDYWxsYmFjayYmIGNvbXBsZXRpb25IYW5k
bGVyKQogewogICAgIGlmICghbV9jb25uZWN0aW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlv
bi5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZpbGVTeXN0
ZW1TdG9yYWdlQ29ubmVjdGlvbi5oCmluZGV4IDdiM2ExZDFlOWVkMjc1N2VkYTFkZWI1NDU1N2U4
NDY5ZmRmZDkwYjkuLmE3NmE3ZDEzYzMwZDU5ODFmZTcxYTc3NGNkNGQwNWMyMTY0NzE0MTAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGaWxl
U3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgKQEAgLTcyLDYg
KzcyLDcgQEAgcHJpdmF0ZToKICAgICBleHBsaWNpdCBXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5l
Y3Rpb24oSVBDOjpDb25uZWN0aW9uJik7CiAKICAgICAvLyBGaWxlU3lzdGVtU3RvcmFnZUNvbm5l
Y3Rpb24KKyAgICB2b2lkIGNsb3NlSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVu
dGlmaWVyKSBmaW5hbDsKICAgICB2b2lkIGlzU2FtZUVudHJ5KFdlYkNvcmU6OkZpbGVTeXN0ZW1I
YW5kbGVJZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgV2Vi
Q29yZTo6RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpTYW1lRW50cnlDYWxsYmFjayYmKSBm
aW5hbDsKICAgICB2b2lkIG1vdmUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIs
IFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5ld05h
bWUsIFZvaWRDYWxsYmFjayYmKSBmaW5hbDsKICAgICB2b2lkIGdldEZpbGVIYW5kbGUoV2ViQ29y
ZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwgYm9vbCBj
cmVhdGVJZk5lY2Vzc2FyeSwgV2ViQ29yZTo6RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpH
ZXRIYW5kbGVDYWxsYmFjayYmKSBmaW5hbDsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAzMTNhYzExN2Q2MDkzZTg3OTc4M2Y3
YmYyNjE3ZWU0MTZkZDE2NGVmLi5hNmM4Mzg2YTcxZWU2N2Y5NWI5MjI3MTE1MzEyNmZmZWJjYTM2
ZjM2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjEtMTAtMjkgIFNpaHVpIExpdSAgPHNpaHVp
X2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgUmVsZWFzZSBGaWxlU3lzdGVtU3RvcmFnZUhhbmRs
ZSB3aGVuIGl0IGlzIG5vdCBpbiB1c2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIzMjM2MworCisgICAgICAgIFJldmlld2VkIGJ5IFlvdWVubiBGYWJs
ZXQuCisKKyAgICAgICAgKiBzdG9yYWdlL2ZpbGVzeXN0ZW1hY2Nlc3MvcmVzb3VyY2VzL3N5bmMt
YWNjZXNzLWhhbmRsZS1iYXNpY3MuanM6CisgICAgICAgIChnZXREaXJlY3RvcnkpOiBjbGVhbiB1
cCBleGlzdGluZyBmaWxlIGJlZm9yZSB0ZXN0LgorCiAyMDIxLTEwLTI5ICBBbnR0aSBLb2l2aXN0
byAgPGFudHRpQGFwcGxlLmNvbT4KIAogICAgICAgICBNYWtlIDotd2Via2l0LWFueSgpIGEgc3lu
b255bSBvZiA6aXMoKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9maWxlc3lzdGVt
YWNjZXNzL3Jlc291cmNlcy9zeW5jLWFjY2Vzcy1oYW5kbGUtYmFzaWNzLmpzIGIvTGF5b3V0VGVz
dHMvc3RvcmFnZS9maWxlc3lzdGVtYWNjZXNzL3Jlc291cmNlcy9zeW5jLWFjY2Vzcy1oYW5kbGUt
YmFzaWNzLmpzCmluZGV4IDk2NzEyNWE0NmRjNmI2ZWMzZmNmZWYxMzk0YTg2MDhjODY1Mjg3MmMu
LjVhZTE2YjUzYzZiOWEwZTE4OWUwYWYzZTRhMTA3OGM2MjQ2NWFlMjYgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL3N0b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9yZXNvdXJjZXMvc3luYy1hY2Nlc3Mt
aGFuZGxlLWJhc2ljcy5qcworKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2ZpbGVzeXN0ZW1hY2Nl
c3MvcmVzb3VyY2VzL3N5bmMtYWNjZXNzLWhhbmRsZS1iYXNpY3MuanMKQEAgLTE3LDcgKzE3LDEx
IEBAIGZ1bmN0aW9uIGZpbmlzaFRlc3QoZXJyb3IpCiBmdW5jdGlvbiBnZXREaXJlY3RvcnkoKSB7
CiAgICAgbmF2aWdhdG9yLnN0b3JhZ2UuZ2V0RGlyZWN0b3J5KCkudGhlbigoaGFuZGxlKSA9PiB7
CiAgICAgICAgIHJvb3RIYW5kbGUgPSBoYW5kbGU7Ci0gICAgICAgIGNyZWF0ZUZpbGVIYW5kbGUo
cm9vdEhhbmRsZSk7CisgICAgICAgIHJvb3RIYW5kbGUucmVtb3ZlRW50cnkoInN5bmMtYWNjZXNz
LWhhbmRsZS50eHQiKS50aGVuKCgpID0+IHsKKyAgICAgICAgICAgIGNyZWF0ZUZpbGVIYW5kbGUo
cm9vdEhhbmRsZSk7CisgICAgICAgIH0sICgpID0+IHsKKyAgICAgICAgICAgIGNyZWF0ZUZpbGVI
YW5kbGUocm9vdEhhbmRsZSk7CisgICAgICAgIH0pOwogICAgIH0pLmNhdGNoKChlcnJvcikgPT4g
ewogICAgICAgICBmaW5pc2hUZXN0KGVycm9yKTsKICAgICB9KTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>