<?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>161016</bug_id>
          
          <creation_ts>2016-08-19 15:09:33 -0700</creation_ts>
          <short_desc>Merge MessageEncoder and ArgumentEncoder into Encoder</short_desc>
          <delta_ts>2016-08-19 15:55:00 -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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Anders Carlsson">andersca</reporter>
          <assigned_to name="Anders Carlsson">andersca</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1221498</commentid>
    <comment_count>0</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2016-08-19 15:09:33 -0700</bug_when>
    <thetext>Merge MessageEncoder and ArgumentEncoder into Encoder</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1221509</commentid>
    <comment_count>1</comment_count>
      <attachid>286490</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2016-08-19 15:19:48 -0700</bug_when>
    <thetext>Created attachment 286490
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1221510</commentid>
    <comment_count>2</comment_count>
      <attachid>286490</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2016-08-19 15:27:12 -0700</bug_when>
    <thetext>Comment on attachment 286490
Patch

rs=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1221512</commentid>
    <comment_count>3</comment_count>
      <attachid>286490</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-08-19 15:28:53 -0700</bug_when>
    <thetext>Comment on attachment 286490
Patch

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

Change log isn’t so great.

Diff doesn’t show the changes to Encoder.h/cpp, annoying since our Subversion patch shows those even when combined with a rename.

More of the touched header files should get the #pragma once treatment.

&gt; Source/WebKit2/Platform/IPC/MessageReceiver.h:35
&gt; -class MessageDecoder;
&gt; -class MessageEncoder;
&gt; +class Encoder;
&gt;  class Connection;
&gt; +class MessageDecoder;

Strange to re-sort this, but put Encoder before Connection!

&gt; Source/WebKit2/Scripts/webkit/messages.py:122
&gt; +            result.append(&apos;        DelayedReply(PassRefPtr&lt;IPC::Connection&gt;, std::unique_ptr&lt;IPC::Encoder&gt;);\n&apos;)

Irritating that this is still using PassRefPtr.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1221525</commentid>
    <comment_count>4</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2016-08-19 15:53:40 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; Comment on attachment 286490 [details]
&gt; Patch
&gt; 

&gt; More of the touched header files should get the #pragma once treatment.
&gt; 

Was planning on fix all those in one patch sometime in the future.

&gt; &gt; Source/WebKit2/Platform/IPC/MessageReceiver.h:35
&gt; &gt; -class MessageDecoder;
&gt; &gt; -class MessageEncoder;
&gt; &gt; +class Encoder;
&gt; &gt;  class Connection;
&gt; &gt; +class MessageDecoder;
&gt; 
&gt; Strange to re-sort this, but put Encoder before Connection!
&gt; 
&gt; &gt; Source/WebKit2/Scripts/webkit/messages.py:122
&gt; &gt; +            result.append(&apos;        DelayedReply(PassRefPtr&lt;IPC::Connection&gt;, std::unique_ptr&lt;IPC::Encoder&gt;);\n&apos;)
&gt; 
&gt; Irritating that this is still using PassRefPtr.

Yes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1221526</commentid>
    <comment_count>5</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2016-08-19 15:55:00 -0700</bug_when>
    <thetext>Committed r204665: &lt;http://trac.webkit.org/changeset/204665&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>286490</attachid>
            <date>2016-08-19 15:19:48 -0700</date>
            <delta_ts>2016-08-19 15:27:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-161016-20160819151756.patch</filename>
            <type>text/plain</type>
            <size>342582</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA0NjQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggODAzMGUyYzQwMWQxNGFm
Mjc3OTQzNTFiNzJhNWVmMGU3NTMyNjM1My4uOWZlNDRlYzA0NzE5MzI4NjM0NDNiMTUxYWZiZDM4
Njc0NWI0YTUyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUzNCBAQAorMjAxNi0wOC0xOSAgQW5k
ZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgorCisgICAgICAgIE1lcmdlIE1lc3Nh
Z2VFbmNvZGVyIGFuZCBBcmd1bWVudEVuY29kZXIgaW50byBFbmNvZGVyCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjEwMTYKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIERhdGFiYXNlUHJvY2Vzcy9EYXRh
YmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpEYXRhYmFz
ZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVTeW5jTWVzc2FnZSk6CisgICAgICAg
ICogRGF0YWJhc2VQcm9jZXNzL0RhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5oOgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZElELmg6CisgICAgICAgIChJ
UEM6OkFyZ3VtZW50Q29kZXI8V2ViS2l0OjpEb3dubG9hZElEPjo6ZW5jb2RlKToKKyAgICAgICAg
KiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHA6CisgICAg
ICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpkaWRSZWNlaXZlU3lu
Y01lc3NhZ2UpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdl
KToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oOgorICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZSk6
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnMuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1l
dGVycy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJz
OjplbmNvZGUpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRQ
YXJhbWV0ZXJzLmg6CisgICAgICAgICogUGxhdGZvcm0vSVBDL0FyZ3VtZW50Q29kZXIuaDoKKyAg
ICAgICAgKElQQzo6QXJndW1lbnRDb2Rlcjo6ZW5jb2RlKToKKyAgICAgICAgKiBQbGF0Zm9ybS9J
UEMvQXJndW1lbnRDb2RlcnMuY3BwOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPHN0ZDo6
Y2hyb25vOjpzeXN0ZW1fY2xvY2s6OnRpbWVfcG9pbnQ+OjplbmNvZGUpOgorICAgICAgICAoSVBD
OjpBcmd1bWVudENvZGVyPEF0b21pY1N0cmluZz46OmVuY29kZSk6CisgICAgICAgIChJUEM6OkFy
Z3VtZW50Q29kZXI8Q1N0cmluZz46OmVuY29kZSk6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29k
ZXI8U3RyaW5nPjo6ZW5jb2RlKToKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2Rlcjx1dWlkX3Q+
OjplbmNvZGUpOgorICAgICAgICAqIFBsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5oOgorICAg
ICAgICAoSVBDOjpTaW1wbGVBcmd1bWVudENvZGVyOjplbmNvZGUpOgorICAgICAgICAoSVBDOjpB
cmd1bWVudENvZGVyPE9wdGlvblNldDxUPj46OmVuY29kZSk6CisgICAgICAgIChJUEM6OkFyZ3Vt
ZW50Q29kZXI8V1RGOjpPcHRpb25hbDxUPj46OmVuY29kZSk6CisgICAgICAgICogUGxhdGZvcm0v
SVBDL0FyZ3VtZW50RW5jb2Rlci5jcHA6CisgICAgICAgIChJUEM6OmFsbG9jQnVmZmVyKTogRGVs
ZXRlZC4KKyAgICAgICAgKElQQzo6ZnJlZUJ1ZmZlcik6IERlbGV0ZWQuCisgICAgICAgIChJUEM6
OkFyZ3VtZW50RW5jb2Rlcjo6QXJndW1lbnRFbmNvZGVyKTogRGVsZXRlZC4KKyAgICAgICAgKElQ
Qzo6QXJndW1lbnRFbmNvZGVyOjp+QXJndW1lbnRFbmNvZGVyKTogRGVsZXRlZC4KKyAgICAgICAg
KElQQzo6cm91bmRVcFRvQWxpZ25tZW50KTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1l
bnRFbmNvZGVyOjpyZXNlcnZlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRFbmNv
ZGVyOjpncm93KTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRFbmNvZGVyOjplbmNv
ZGVGaXhlZExlbmd0aERhdGEpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudEVuY29k
ZXI6OmVuY29kZVZhcmlhYmxlTGVuZ3RoQnl0ZUFycmF5KTogRGVsZXRlZC4KKyAgICAgICAgKElQ
Qzo6Y29weVZhbHVlVG9CdWZmZXIpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudEVu
Y29kZXI6OmVuY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50RW5jb2Rlcjo6
YWRkQXR0YWNobWVudCk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50RW5jb2Rlcjo6
cmVsZWFzZUF0dGFjaG1lbnRzKTogRGVsZXRlZC4KKyAgICAgICAgKiBQbGF0Zm9ybS9JUEMvQXJn
dW1lbnRFbmNvZGVyLmg6CisgICAgICAgIChJUEM6OkFyZ3VtZW50RW5jb2Rlcjo6ZW5jb2RlRW51
bSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50RW5jb2Rlcjo6ZW5jb2RlKTogRGVs
ZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRFbmNvZGVyOjpvcGVyYXRvcjw8KTogRGVsZXRl
ZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRFbmNvZGVyOjpidWZmZXIpOiBEZWxldGVkLgorICAg
ICAgICAoSVBDOjpBcmd1bWVudEVuY29kZXI6OmJ1ZmZlclNpemUpOiBEZWxldGVkLgorICAgICAg
ICAqIFBsYXRmb3JtL0lQQy9Bcmd1bWVudHMuaDoKKyAgICAgICAgKElQQzo6VHVwbGVDb2Rlcjo6
ZW5jb2RlKToKKyAgICAgICAgKElQQzo6QXJndW1lbnRzOjplbmNvZGUpOgorICAgICAgICAqIFBs
YXRmb3JtL0lQQy9BdHRhY2htZW50LmNwcDoKKyAgICAgICAgKElQQzo6QXR0YWNobWVudDo6ZW5j
b2RlKToKKyAgICAgICAgKiBQbGF0Zm9ybS9JUEMvQXR0YWNobWVudC5oOgorICAgICAgICAqIFBs
YXRmb3JtL0lQQy9Db25uZWN0aW9uLmNwcDoKKyAgICAgICAgKElQQzo6Q29ubmVjdGlvbjo6ZGlz
cGF0Y2hXb3JrUXVldWVNZXNzYWdlUmVjZWl2ZXJNZXNzYWdlKToKKyAgICAgICAgKElQQzo6Q29u
bmVjdGlvbjo6Y3JlYXRlU3luY01lc3NhZ2VFbmNvZGVyKToKKyAgICAgICAgKElQQzo6Q29ubmVj
dGlvbjo6c2VuZE1lc3NhZ2UpOgorICAgICAgICAoSVBDOjpDb25uZWN0aW9uOjpzZW5kU3luY1Jl
cGx5KToKKyAgICAgICAgKElQQzo6Q29ubmVjdGlvbjo6c2VuZFN5bmNNZXNzYWdlKToKKyAgICAg
ICAgKElQQzo6Q29ubmVjdGlvbjo6c2VuZFN5bmNNZXNzYWdlRnJvbVNlY29uZGFyeVRocmVhZCk6
CisgICAgICAgIChJUEM6OkNvbm5lY3Rpb246OnNlbmRPdXRnb2luZ01lc3NhZ2VzKToKKyAgICAg
ICAgKElQQzo6Q29ubmVjdGlvbjo6ZGlzcGF0Y2hTeW5jTWVzc2FnZSk6CisgICAgICAgICogUGxh
dGZvcm0vSVBDL0Nvbm5lY3Rpb24uaDoKKyAgICAgICAgKElQQzo6Q29ubmVjdGlvbjo6c2VuZCk6
CisgICAgICAgIChJUEM6OkNvbm5lY3Rpb246OnNlbmRTeW5jKToKKyAgICAgICAgKiBQbGF0Zm9y
bS9JUEMvRGF0YVJlZmVyZW5jZS5jcHA6CisgICAgICAgIChJUEM6OkRhdGFSZWZlcmVuY2U6OmVu
Y29kZSk6CisgICAgICAgIChJUEM6OlNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2U6OmVuY29kZSk6
CisgICAgICAgICogUGxhdGZvcm0vSVBDL0RhdGFSZWZlcmVuY2UuaDoKKyAgICAgICAgKiBQbGF0
Zm9ybS9JUEMvRW5jb2Rlci5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9y
bS9JUEMvQXJndW1lbnRFbmNvZGVyLmNwcC4KKyAgICAgICAgKElQQzo6YWxsb2NCdWZmZXIpOgor
ICAgICAgICAoSVBDOjpmcmVlQnVmZmVyKToKKyAgICAgICAgKElQQzo6RW5jb2Rlcjo6RW5jb2Rl
cik6CisgICAgICAgIChJUEM6OkVuY29kZXI6On5FbmNvZGVyKToKKyAgICAgICAgKElQQzo6RW5j
b2Rlcjo6aXNTeW5jTWVzc2FnZSk6CisgICAgICAgIChJUEM6OkVuY29kZXI6OnNob3VsZERpc3Bh
dGNoTWVzc2FnZVdoZW5XYWl0aW5nRm9yU3luY1JlcGx5KToKKyAgICAgICAgKElQQzo6RW5jb2Rl
cjo6c2V0SXNTeW5jTWVzc2FnZSk6CisgICAgICAgIChJUEM6OkVuY29kZXI6OnNldFNob3VsZERp
c3BhdGNoTWVzc2FnZVdoZW5XYWl0aW5nRm9yU3luY1JlcGx5KToKKyAgICAgICAgKElQQzo6RW5j
b2Rlcjo6c2V0RnVsbHlTeW5jaHJvbm91c01vZGVGb3JUZXN0aW5nKToKKyAgICAgICAgKElQQzo6
RW5jb2Rlcjo6d3JhcEZvclRlc3RpbmcpOgorICAgICAgICAoSVBDOjpyb3VuZFVwVG9BbGlnbm1l
bnQpOgorICAgICAgICAoSVBDOjpFbmNvZGVyOjpyZXNlcnZlKToKKyAgICAgICAgKElQQzo6RW5j
b2Rlcjo6ZW5jb2RlSGVhZGVyKToKKyAgICAgICAgKElQQzo6RW5jb2Rlcjo6Z3Jvdyk6CisgICAg
ICAgIChJUEM6OkVuY29kZXI6OmVuY29kZUZpeGVkTGVuZ3RoRGF0YSk6CisgICAgICAgIChJUEM6
OkVuY29kZXI6OmVuY29kZVZhcmlhYmxlTGVuZ3RoQnl0ZUFycmF5KToKKyAgICAgICAgKElQQzo6
Y29weVZhbHVlVG9CdWZmZXIpOgorICAgICAgICAoSVBDOjpFbmNvZGVyOjplbmNvZGUpOgorICAg
ICAgICAoSVBDOjpFbmNvZGVyOjphZGRBdHRhY2htZW50KToKKyAgICAgICAgKElQQzo6RW5jb2Rl
cjo6cmVsZWFzZUF0dGFjaG1lbnRzKToKKyAgICAgICAgKiBQbGF0Zm9ybS9JUEMvRW5jb2Rlci5o
OiBSZW5hbWVkIGZyb20gU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL0FyZ3VtZW50RW5jb2Rl
ci5oLgorICAgICAgICAqIFBsYXRmb3JtL0lQQy9IYW5kbGVNZXNzYWdlLmg6CisgICAgICAgIChJ
UEM6OmhhbmRsZU1lc3NhZ2UpOgorICAgICAgICAoSVBDOjpoYW5kbGVNZXNzYWdlRGVsYXllZCk6
CisgICAgICAgICogUGxhdGZvcm0vSVBDL01lc3NhZ2VFbmNvZGVyLmNwcDogUmVtb3ZlZC4KKyAg
ICAgICAgKElQQzo6TWVzc2FnZUVuY29kZXI6Ok1lc3NhZ2VFbmNvZGVyKTogRGVsZXRlZC4KKyAg
ICAgICAgKElQQzo6TWVzc2FnZUVuY29kZXI6On5NZXNzYWdlRW5jb2Rlcik6IERlbGV0ZWQuCisg
ICAgICAgIChJUEM6Ok1lc3NhZ2VFbmNvZGVyOjplbmNvZGVIZWFkZXIpOiBEZWxldGVkLgorICAg
ICAgICAoSVBDOjpNZXNzYWdlRW5jb2Rlcjo6aXNTeW5jTWVzc2FnZSk6IERlbGV0ZWQuCisgICAg
ICAgIChJUEM6Ok1lc3NhZ2VFbmNvZGVyOjpzaG91bGREaXNwYXRjaE1lc3NhZ2VXaGVuV2FpdGlu
Z0ZvclN5bmNSZXBseSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6Ok1lc3NhZ2VFbmNvZGVyOjpz
ZXRJc1N5bmNNZXNzYWdlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6TWVzc2FnZUVuY29kZXI6
OnNldFNob3VsZERpc3BhdGNoTWVzc2FnZVdoZW5XYWl0aW5nRm9yU3luY1JlcGx5KTogRGVsZXRl
ZC4KKyAgICAgICAgKElQQzo6TWVzc2FnZUVuY29kZXI6OnNldEZ1bGx5U3luY2hyb25vdXNNb2Rl
Rm9yVGVzdGluZyk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6Ok1lc3NhZ2VFbmNvZGVyOjp3cmFw
Rm9yVGVzdGluZyk6IERlbGV0ZWQuCisgICAgICAgICogUGxhdGZvcm0vSVBDL01lc3NhZ2VFbmNv
ZGVyLmg6IFJlbW92ZWQuCisgICAgICAgIChJUEM6Ok1lc3NhZ2VFbmNvZGVyOjptZXNzYWdlUmVj
ZWl2ZXJOYW1lKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6TWVzc2FnZUVuY29kZXI6Om1lc3Nh
Z2VOYW1lKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6TWVzc2FnZUVuY29kZXI6OmRlc3RpbmF0
aW9uSUQpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpNZXNzYWdlRW5jb2Rlcjo6VVVJRCk6IERl
bGV0ZWQuCisgICAgICAgICogUGxhdGZvcm0vSVBDL01lc3NhZ2VSZWNlaXZlci5oOgorICAgICAg
ICAoSVBDOjpNZXNzYWdlUmVjZWl2ZXI6OmRpZFJlY2VpdmVTeW5jTWVzc2FnZSk6CisgICAgICAg
ICogUGxhdGZvcm0vSVBDL01lc3NhZ2VSZWNlaXZlck1hcC5jcHA6CisgICAgICAgIChJUEM6Ok1l
c3NhZ2VSZWNlaXZlck1hcDo6ZGlzcGF0Y2hTeW5jTWVzc2FnZSk6CisgICAgICAgICogUGxhdGZv
cm0vSVBDL01lc3NhZ2VSZWNlaXZlck1hcC5oOgorICAgICAgICAqIFBsYXRmb3JtL0lQQy9NZXNz
YWdlUmVjb3JkZXIuaDoKKyAgICAgICAgKiBQbGF0Zm9ybS9JUEMvTWVzc2FnZVNlbmRlci5jcHA6
CisgICAgICAgIChJUEM6Ok1lc3NhZ2VTZW5kZXI6OnNlbmRNZXNzYWdlKToKKyAgICAgICAgKiBQ
bGF0Zm9ybS9JUEMvTWVzc2FnZVNlbmRlci5oOgorICAgICAgICAoSVBDOjpNZXNzYWdlU2VuZGVy
OjpzZW5kKToKKyAgICAgICAgKiBQbGF0Zm9ybS9JUEMvU3RyaW5nUmVmZXJlbmNlLmNwcDoKKyAg
ICAgICAgKElQQzo6U3RyaW5nUmVmZXJlbmNlOjplbmNvZGUpOgorICAgICAgICAqIFBsYXRmb3Jt
L0lQQy9TdHJpbmdSZWZlcmVuY2UuaDoKKyAgICAgICAgKiBQbGF0Zm9ybS9JUEMvbWFjL0Nvbm5l
Y3Rpb25NYWMubW06CisgICAgICAgIChJUEM6OkNvbm5lY3Rpb246Om9wZW4pOgorICAgICAgICAo
SVBDOjpDb25uZWN0aW9uOjpzZW5kT3V0Z29pbmdNZXNzYWdlKToKKyAgICAgICAgKiBQbGF0Zm9y
bS9JUEMvbWFjL01hY2hQb3J0Lmg6CisgICAgICAgIChJUEM6Ok1hY2hQb3J0OjplbmNvZGUpOgor
ICAgICAgICAqIFBsYXRmb3JtL1NoYXJlZE1lbW9yeS5oOgorICAgICAgICAqIFBsYXRmb3JtL21h
Yy9TaGFyZWRNZW1vcnlNYWMuY3BwOgorICAgICAgICAoV2ViS2l0OjpTaGFyZWRNZW1vcnk6Okhh
bmRsZTo6ZW5jb2RlKToKKyAgICAgICAgKiBQbHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQ
cm94eS5oOgorICAgICAgICAqIFBsdWdpblByb2Nlc3MvUGx1Z2luQ3JlYXRpb25QYXJhbWV0ZXJz
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UGx1Z2luQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUp
OgorICAgICAgICAqIFBsdWdpblByb2Nlc3MvUGx1Z2luQ3JlYXRpb25QYXJhbWV0ZXJzLmg6Cisg
ICAgICAgICogUGx1Z2luUHJvY2Vzcy9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYlByb2Nlc3NDb25uZWN0aW9uOjpkaWRSZWNlaXZlU3luY01lc3NhZ2UpOgor
ICAgICAgICAqIFBsdWdpblByb2Nlc3MvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uaDoKKyAgICAgICAg
KiBTY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weToKKyAgICAgICAgKG1lc3NhZ2VfdG9fc3RydWN0
X2RlY2xhcmF0aW9uKToKKyAgICAgICAgKGZvcndhcmRfZGVjbGFyYXRpb25zX2FuZF9oZWFkZXJz
KToKKyAgICAgICAgKGdlbmVyYXRlX21lc3NhZ2VfaGFuZGxlcik6CisgICAgICAgIChoZWFkZXJz
X2Zvcl90eXBlKTogRGVsZXRlZC4KKyAgICAgICAgKiBTaGFyZWQvQVBJL0FQSURhdGEuY3BwOgor
ICAgICAgICAoQVBJOjpEYXRhOjplbmNvZGUpOgorICAgICAgICAqIFNoYXJlZC9BUEkvQVBJRGF0
YS5oOgorICAgICAgICAqIFNoYXJlZC9BUEkvQVBJRXJyb3IuY3BwOgorICAgICAgICAoQVBJOjpF
cnJvcjo6ZW5jb2RlKToKKyAgICAgICAgKiBTaGFyZWQvQVBJL0FQSUVycm9yLmg6CisgICAgICAg
ICogU2hhcmVkL0FQSS9BUElGcmFtZUhhbmRsZS5jcHA6CisgICAgICAgIChBUEk6OkZyYW1lSGFu
ZGxlOjplbmNvZGUpOgorICAgICAgICAqIFNoYXJlZC9BUEkvQVBJRnJhbWVIYW5kbGUuaDoKKyAg
ICAgICAgKiBTaGFyZWQvQVBJL0FQSUdlb21ldHJ5LmNwcDoKKyAgICAgICAgKEFQSTo6UG9pbnQ6
OmVuY29kZSk6CisgICAgICAgIChBUEk6OlNpemU6OmVuY29kZSk6CisgICAgICAgIChBUEk6OlJl
Y3Q6OmVuY29kZSk6CisgICAgICAgICogU2hhcmVkL0FQSS9BUElHZW9tZXRyeS5oOgorICAgICAg
ICAqIFNoYXJlZC9BUEkvQVBJTnVtYmVyLmg6CisgICAgICAgIChBUEk6Ok51bWJlcjo6ZW5jb2Rl
KToKKyAgICAgICAgKiBTaGFyZWQvQVBJL0FQSVBhZ2VHcm91cEhhbmRsZS5jcHA6CisgICAgICAg
IChBUEk6OlBhZ2VHcm91cEhhbmRsZTo6ZW5jb2RlKToKKyAgICAgICAgKiBTaGFyZWQvQVBJL0FQ
SVBhZ2VHcm91cEhhbmRsZS5oOgorICAgICAgICAqIFNoYXJlZC9BUEkvQVBJUGFnZUhhbmRsZS5j
cHA6CisgICAgICAgIChBUEk6OlBhZ2VIYW5kbGU6OmVuY29kZSk6CisgICAgICAgICogU2hhcmVk
L0FQSS9BUElQYWdlSGFuZGxlLmg6CisgICAgICAgICogU2hhcmVkL0FQSS9BUElVUkwuaDoKKyAg
ICAgICAgKEFQSTo6VVJMOjplbmNvZGUpOgorICAgICAgICAqIFNoYXJlZC9BUEkvQVBJVVJMUmVx
dWVzdC5jcHA6CisgICAgICAgIChBUEk6OlVSTFJlcXVlc3Q6OmVuY29kZSk6CisgICAgICAgICog
U2hhcmVkL0FQSS9BUElVUkxSZXF1ZXN0Lmg6CisgICAgICAgICogU2hhcmVkL0FQSS9BUElVUkxS
ZXNwb25zZS5jcHA6CisgICAgICAgIChBUEk6OlVSTFJlc3BvbnNlOjplbmNvZGUpOgorICAgICAg
ICAqIFNoYXJlZC9BUEkvQVBJVVJMUmVzcG9uc2UuaDoKKyAgICAgICAgKiBTaGFyZWQvQVBJL0Nv
Y29hL1JlbW90ZU9iamVjdEludm9jYXRpb24uaDoKKyAgICAgICAgKiBTaGFyZWQvQVBJL0NvY29h
L1JlbW90ZU9iamVjdEludm9jYXRpb24ubW06CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU9iamVj
dEludm9jYXRpb246OmVuY29kZSk6CisgICAgICAgICogU2hhcmVkL0Fzc2lzdGVkTm9kZUluZm9y
bWF0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6T3B0aW9uSXRlbTo6ZW5jb2RlKToKKyAgICAg
ICAgKFdlYktpdDo6QXNzaXN0ZWROb2RlSW5mb3JtYXRpb246OmVuY29kZSk6CisgICAgICAgICog
U2hhcmVkL0Fzc2lzdGVkTm9kZUluZm9ybWF0aW9uLmg6CisgICAgICAgICogU2hhcmVkL0NvY29h
L0RhdGFEZXRlY3Rpb25SZXN1bHQuaDoKKyAgICAgICAgKiBTaGFyZWQvQ29jb2EvRGF0YURldGVj
dGlvblJlc3VsdC5tbToKKyAgICAgICAgKFdlYktpdDo6RGF0YURldGVjdGlvblJlc3VsdDo6ZW5j
b2RlKToKKyAgICAgICAgKiBTaGFyZWQvQ29jb2EvTG9hZFBhcmFtZXRlcnNDb2NvYS5tbToKKyAg
ICAgICAgKFdlYktpdDo6TG9hZFBhcmFtZXRlcnM6OnBsYXRmb3JtRW5jb2RlKToKKyAgICAgICAg
KiBTaGFyZWQvQ29jb2EvV2ViQ29yZUFyZ3VtZW50Q29kZXJzQ29jb2EubW06CisgICAgICAgIChJ
UEM6OkFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6UGF5bWVudD46OmVuY29kZSk6CisgICAgICAgIChJ
UEM6OkFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6UGF5bWVudENvbnRhY3Q+OjplbmNvZGUpOgorICAg
ICAgICAoSVBDOjpBcmd1bWVudENvZGVyPFdlYkNvcmU6OlBheW1lbnRNZXJjaGFudFNlc3Npb24+
OjplbmNvZGUpOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPFdlYkNvcmU6OlBheW1lbnRN
ZXRob2Q+OjplbmNvZGUpOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPFBheW1lbnRSZXF1
ZXN0Pjo6ZW5jb2RlKToKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxQYXltZW50UmVxdWVz
dDo6Q29udGFjdEZpZWxkcz46OmVuY29kZSk6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8
UGF5bWVudFJlcXVlc3Q6OkxpbmVJdGVtPjo6ZW5jb2RlKToKKyAgICAgICAgKElQQzo6QXJndW1l
bnRDb2RlcjxQYXltZW50UmVxdWVzdDo6TWVyY2hhbnRDYXBhYmlsaXRpZXM+OjplbmNvZGUpOgor
ICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPFBheW1lbnRSZXF1ZXN0OjpTaGlwcGluZ01ldGhv
ZD46OmVuY29kZSk6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8UGF5bWVudFJlcXVlc3Q6
OlRvdGFsQW5kTGluZUl0ZW1zPjo6ZW5jb2RlKToKKyAgICAgICAgKiBTaGFyZWQvQ29udGV4dE1l
bnVDb250ZXh0RGF0YS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkNvbnRleHRNZW51Q29udGV4dERh
dGE6OmVuY29kZSk6CisgICAgICAgICogU2hhcmVkL0NvbnRleHRNZW51Q29udGV4dERhdGEuaDoK
KyAgICAgICAgKiBTaGFyZWQvRGF0YWJhc2VzL0RhdGFiYXNlUHJvY2Vzc0NyZWF0aW9uUGFyYW1l
dGVycy5jcHA6CisgICAgICAgIChXZWJLaXQ6OkRhdGFiYXNlUHJvY2Vzc0NyZWF0aW9uUGFyYW1l
dGVyczo6ZW5jb2RlKToKKyAgICAgICAgKiBTaGFyZWQvRGF0YWJhc2VzL0RhdGFiYXNlUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVycy5oOgorICAgICAgICAqIFNoYXJlZC9EYXRhYmFzZXMvSW5kZXhl
ZERCL1dlYklEQlJlc3VsdC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYklEQlJlc3VsdDo6ZW5j
b2RlKToKKyAgICAgICAgKiBTaGFyZWQvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJSZXN1bHQu
aDoKKyAgICAgICAgKiBTaGFyZWQvRWRpdG9yU3RhdGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpF
ZGl0b3JTdGF0ZTo6ZW5jb2RlKToKKyAgICAgICAgKFdlYktpdDo6RWRpdG9yU3RhdGU6OlBvc3RM
YXlvdXREYXRhOjplbmNvZGUpOgorICAgICAgICAqIFNoYXJlZC9FZGl0b3JTdGF0ZS5oOgorICAg
ICAgICAqIFNoYXJlZC9Gb250SW5mby5jcHA6CisgICAgICAgIChXZWJLaXQ6OkZvbnRJbmZvOjpl
bmNvZGUpOgorICAgICAgICAqIFNoYXJlZC9Gb250SW5mby5oOgorICAgICAgICAqIFNoYXJlZC9H
YW1lcGFkL0dhbWVwYWREYXRhLmNwcDoKKyAgICAgICAgKFdlYktpdDo6R2FtZXBhZERhdGE6OmVu
Y29kZSk6CisgICAgICAgICogU2hhcmVkL0dhbWVwYWQvR2FtZXBhZERhdGEuaDoKKyAgICAgICAg
KiBTaGFyZWQvTGF5ZXJUcmVlQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkxheWVyVHJl
ZUNvbnRleHQ6OmVuY29kZSk6CisgICAgICAgICogU2hhcmVkL0xheWVyVHJlZUNvbnRleHQuaDoK
KyAgICAgICAgKiBTaGFyZWQvTG9hZFBhcmFtZXRlcnMuY3BwOgorICAgICAgICAoV2ViS2l0OjpM
b2FkUGFyYW1ldGVyczo6ZW5jb2RlKToKKyAgICAgICAgKFdlYktpdDo6TG9hZFBhcmFtZXRlcnM6
OnBsYXRmb3JtRW5jb2RlKToKKyAgICAgICAgKiBTaGFyZWQvTG9hZFBhcmFtZXRlcnMuaDoKKyAg
ICAgICAgKiBTaGFyZWQvTmF2aWdhdGlvbkFjdGlvbkRhdGEuY3BwOgorICAgICAgICAoV2ViS2l0
OjpOYXZpZ2F0aW9uQWN0aW9uRGF0YTo6ZW5jb2RlKToKKyAgICAgICAgKiBTaGFyZWQvTmF2aWdh
dGlvbkFjdGlvbkRhdGEuaDoKKyAgICAgICAgKiBTaGFyZWQvUGxhdGZvcm1Qb3B1cE1lbnVEYXRh
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UGxhdGZvcm1Qb3B1cE1lbnVEYXRhOjplbmNvZGUpOgor
ICAgICAgICAqIFNoYXJlZC9QbGF0Zm9ybVBvcHVwTWVudURhdGEuaDoKKyAgICAgICAgKiBTaGFy
ZWQvUGx1Z2lucy9OUElkZW50aWZpZXJEYXRhLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TlBJZGVu
dGlmaWVyRGF0YTo6ZW5jb2RlKToKKyAgICAgICAgKiBTaGFyZWQvUGx1Z2lucy9OUElkZW50aWZp
ZXJEYXRhLmg6CisgICAgICAgICogU2hhcmVkL1BsdWdpbnMvTlBPYmplY3RNZXNzYWdlUmVjZWl2
ZXIuaDoKKyAgICAgICAgKiBTaGFyZWQvUGx1Z2lucy9OUFJlbW90ZU9iamVjdE1hcC5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6Ok5QUmVtb3RlT2JqZWN0TWFwOjpkaWRSZWNlaXZlU3luY01lc3NhZ2Up
OgorICAgICAgICAqIFNoYXJlZC9QbHVnaW5zL05QUmVtb3RlT2JqZWN0TWFwLmg6CisgICAgICAg
ICogU2hhcmVkL1BsdWdpbnMvTlBWYXJpYW50RGF0YS5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5Q
VmFyaWFudERhdGE6OmVuY29kZSk6CisgICAgICAgICogU2hhcmVkL1BsdWdpbnMvTlBWYXJpYW50
RGF0YS5oOgorICAgICAgICAqIFNoYXJlZC9QbHVnaW5zL1BsdWdpblByb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnMuY3BwOgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5Qcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzOjplbmNvZGUpOgorICAgICAgICAqIFNoYXJlZC9QbHVnaW5zL1BsdWdpblByb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnMuaDoKKyAgICAgICAgKiBTaGFyZWQvUHJpbnRJbmZvLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6UHJpbnRJbmZvOjplbmNvZGUpOgorICAgICAgICAqIFNoYXJlZC9Qcmlu
dEluZm8uaDoKKyAgICAgICAgKiBTaGFyZWQvU2FuZGJveEV4dGVuc2lvbi5oOgorICAgICAgICAo
V2ViS2l0OjpTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGU6OmVuY29kZSk6CisgICAgICAgIChXZWJL
aXQ6OlNhbmRib3hFeHRlbnNpb246OkhhbmRsZUFycmF5OjplbmNvZGUpOgorICAgICAgICAqIFNo
YXJlZC9TY3JvbGxpbmcvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JUcmFuc2FjdGlvbi5jcHA6
CisgICAgICAgIChBcmd1bWVudENvZGVyPFNjcm9sbGluZ1N0YXRlTm9kZT46OmVuY29kZSk6Cisg
ICAgICAgIChBcmd1bWVudENvZGVyPFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZT46OmVuY29k
ZSk6CisgICAgICAgIChBcmd1bWVudENvZGVyPFNjcm9sbGluZ1N0YXRlRnJhbWVTY3JvbGxpbmdO
b2RlPjo6ZW5jb2RlKToKKyAgICAgICAgKEFyZ3VtZW50Q29kZXI8U2Nyb2xsaW5nU3RhdGVPdmVy
Zmxvd1Njcm9sbGluZ05vZGU+OjplbmNvZGUpOgorICAgICAgICAoQXJndW1lbnRDb2RlcjxTY3Jv
bGxpbmdTdGF0ZUZpeGVkTm9kZT46OmVuY29kZSk6CisgICAgICAgIChBcmd1bWVudENvZGVyPFNj
cm9sbGluZ1N0YXRlU3RpY2t5Tm9kZT46OmVuY29kZSk6CisgICAgICAgIChXZWJLaXQ6OmVuY29k
ZU5vZGVBbmREZXNjZW5kYW50cyk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVNjcm9sbGluZ0Nv
b3JkaW5hdG9yVHJhbnNhY3Rpb246OmVuY29kZSk6CisgICAgICAgICogU2hhcmVkL1Njcm9sbGlu
Zy9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclRyYW5zYWN0aW9uLmg6CisgICAgICAgICogU2hh
cmVkL1Nlc3Npb25TdGF0ZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkhUVFBCb2R5OjpFbGVtZW50
OjplbmNvZGUpOgorICAgICAgICAoV2ViS2l0OjpIVFRQQm9keTo6ZW5jb2RlKToKKyAgICAgICAg
KFdlYktpdDo6RnJhbWVTdGF0ZTo6ZW5jb2RlKToKKyAgICAgICAgKFdlYktpdDo6UGFnZVN0YXRl
OjplbmNvZGUpOgorICAgICAgICAoV2ViS2l0OjpCYWNrRm9yd2FyZExpc3RJdGVtU3RhdGU6OmVu
Y29kZSk6CisgICAgICAgIChXZWJLaXQ6OkJhY2tGb3J3YXJkTGlzdFN0YXRlOjplbmNvZGUpOgor
ICAgICAgICAqIFNoYXJlZC9TZXNzaW9uU3RhdGUuaDoKKyAgICAgICAgKiBTaGFyZWQvU2hhcmVh
YmxlQml0bWFwLmNwcDoKKyAgICAgICAgKFdlYktpdDo6U2hhcmVhYmxlQml0bWFwOjpIYW5kbGU6
OmVuY29kZSk6CisgICAgICAgICogU2hhcmVkL1NoYXJlYWJsZUJpdG1hcC5oOgorICAgICAgICAq
IFNoYXJlZC9TaGFyZWFibGVSZXNvdXJjZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlNoYXJlYWJs
ZVJlc291cmNlOjpIYW5kbGU6OmVuY29kZSk6CisgICAgICAgICogU2hhcmVkL1NoYXJlYWJsZVJl
c291cmNlLmg6CisgICAgICAgICogU2hhcmVkL1N0YXRpc3RpY3NEYXRhLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6U3RhdGlzdGljc0RhdGE6OmVuY29kZSk6CisgICAgICAgICogU2hhcmVkL1N0YXRp
c3RpY3NEYXRhLmg6CisgICAgICAgICogU2hhcmVkL1VwZGF0ZUluZm8uY3BwOgorICAgICAgICAo
V2ViS2l0OjpVcGRhdGVJbmZvOjplbmNvZGUpOgorICAgICAgICAqIFNoYXJlZC9VcGRhdGVJbmZv
Lmg6CisgICAgICAgICogU2hhcmVkL1VzZXJEYXRhLmNwcDoKKyAgICAgICAgKFdlYktpdDo6VXNl
ckRhdGE6OmVuY29kZSk6CisgICAgICAgICogU2hhcmVkL1VzZXJEYXRhLmg6CisgICAgICAgICog
U2hhcmVkL1Zpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8uY3BwOgorICAgICAgICAoV2ViS2l0
OjpWaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvOjplbmNvZGUpOgorICAgICAgICAqIFNoYXJl
ZC9WaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvLmg6CisgICAgICAgICogU2hhcmVkL1dlYkJh
Y2tGb3J3YXJkTGlzdEl0ZW0uaDoKKyAgICAgICAgKiBTaGFyZWQvV2ViQ29tcGlsZWRDb250ZW50
RXh0ZW5zaW9uRGF0YS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbXBpbGVkQ29udGVudEV4
dGVuc2lvbkRhdGE6OmVuY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYkNvbXBpbGVkQ29udGVu
dEV4dGVuc2lvbkRhdGEuaDoKKyAgICAgICAgKiBTaGFyZWQvV2ViQ29udGV4dE1lbnVJdGVtRGF0
YS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHRNZW51SXRlbURhdGE6OmVuY29kZSk6
CisgICAgICAgICogU2hhcmVkL1dlYkNvbnRleHRNZW51SXRlbURhdGEuaDoKKyAgICAgICAgKiBT
aGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcDoKKyAgICAgICAgKElQQzo6QXJndW1lbnRD
b2RlcjxBZmZpbmVUcmFuc2Zvcm0+OjplbmNvZGUpOgorICAgICAgICAoSVBDOjpBcmd1bWVudENv
ZGVyPEV2ZW50VHJhY2tpbmdSZWdpb25zPjo6ZW5jb2RlKToKKyAgICAgICAgKElQQzo6QXJndW1l
bnRDb2RlcjxUcmFuc2Zvcm1hdGlvbk1hdHJpeD46OmVuY29kZSk6CisgICAgICAgIChJUEM6OkFy
Z3VtZW50Q29kZXI8TGluZWFyVGltaW5nRnVuY3Rpb24+OjplbmNvZGUpOgorICAgICAgICAoSVBD
OjpBcmd1bWVudENvZGVyPEN1YmljQmV6aWVyVGltaW5nRnVuY3Rpb24+OjplbmNvZGUpOgorICAg
ICAgICAoSVBDOjpBcmd1bWVudENvZGVyPFN0ZXBzVGltaW5nRnVuY3Rpb24+OjplbmNvZGUpOgor
ICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPFNwcmluZ1RpbWluZ0Z1bmN0aW9uPjo6ZW5jb2Rl
KToKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxGbG9hdFBvaW50Pjo6ZW5jb2RlKToKKyAg
ICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxGbG9hdFBvaW50M0Q+OjplbmNvZGUpOgorICAgICAg
ICAoSVBDOjpBcmd1bWVudENvZGVyPEZsb2F0UmVjdD46OmVuY29kZSk6CisgICAgICAgIChJUEM6
OkFyZ3VtZW50Q29kZXI8RmxvYXRTaXplPjo6ZW5jb2RlKToKKyAgICAgICAgKElQQzo6QXJndW1l
bnRDb2RlcjxGbG9hdFJvdW5kZWRSZWN0Pjo6ZW5jb2RlKToKKyAgICAgICAgKElQQzo6QXJndW1l
bnRDb2RlcjxGbG9hdFF1YWQ+OjplbmNvZGUpOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVy
PFZpZXdwb3J0QXJndW1lbnRzPjo6ZW5jb2RlKToKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2Rl
cjxJbnRQb2ludD46OmVuY29kZSk6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8SW50UmVj
dD46OmVuY29kZSk6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8SW50U2l6ZT46OmVuY29k
ZSk6CisgICAgICAgIChJUEM6OnBhdGhFbmNvZGVBcHBsaWVyRnVuY3Rpb24pOgorICAgICAgICAo
SVBDOjpBcmd1bWVudENvZGVyPFBhdGg+OjplbmNvZGUpOgorICAgICAgICAoSVBDOjpBcmd1bWVu
dENvZGVyPFJlY2VudFNlYXJjaD46OmVuY29kZSk6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29k
ZXI8UmVnaW9uOjpTcGFuPjo6ZW5jb2RlKToKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxS
ZWdpb24+OjplbmNvZGUpOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPExlbmd0aD46OmVu
Y29kZSk6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8Vmlld3BvcnRBdHRyaWJ1dGVzPjo6
ZW5jb2RlKToKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxNaW1lQ2xhc3NJbmZvPjo6ZW5j
b2RlKToKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxQbHVnaW5JbmZvPjo6ZW5jb2RlKToK
KyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZT46OmVu
Y29kZSk6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8UHJvdGVjdGlvblNwYWNlPjo6ZW5j
b2RlKToKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxDcmVkZW50aWFsPjo6ZW5jb2RlKToK
KyAgICAgICAgKElQQzo6ZW5jb2RlSW1hZ2UpOgorICAgICAgICAoSVBDOjplbmNvZGVPcHRpb25h
bEltYWdlKToKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxDdXJzb3I+OjplbmNvZGUpOgor
ICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPFJlc291cmNlUmVxdWVzdD46OmVuY29kZSk6Cisg
ICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8UmVzb3VyY2VFcnJvcj46OmVuY29kZSk6CisgICAg
ICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8U2VsZWN0aW9uUmVjdD46OmVuY29kZSk6CisgICAgICAg
IChJUEM6OkFyZ3VtZW50Q29kZXI8V2luZG93RmVhdHVyZXM+OjplbmNvZGUpOgorICAgICAgICAo
SVBDOjpBcmd1bWVudENvZGVyPENvbG9yPjo6ZW5jb2RlKToKKyAgICAgICAgKElQQzo6QXJndW1l
bnRDb2RlcjxDb21wb3NpdGlvblVuZGVybGluZT46OmVuY29kZSk6CisgICAgICAgIChJUEM6OkFy
Z3VtZW50Q29kZXI8Q29va2llPjo6ZW5jb2RlKToKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2Rl
cjxEYXRhYmFzZURldGFpbHM+OjplbmNvZGUpOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVy
PEhpZ2hsaWdodD46OmVuY29kZSk6CisgICAgICAgIChJUEM6OmVuY29kZVNoYXJlZEJ1ZmZlcik6
CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8UGFzdGVib2FyZFdlYkNvbnRlbnQ+OjplbmNv
ZGUpOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPFBhc3RlYm9hcmRJbWFnZT46OmVuY29k
ZSk6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8RGljdGF0aW9uQWx0ZXJuYXRpdmU+Ojpl
bmNvZGUpOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEZpbGVDaG9vc2VyU2V0dGluZ3M+
OjplbmNvZGUpOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEdyYW1tYXJEZXRhaWw+Ojpl
bmNvZGUpOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPFRleHRDaGVja2luZ1JlcXVlc3RE
YXRhPjo6ZW5jb2RlKToKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxUZXh0Q2hlY2tpbmdS
ZXN1bHQ+OjplbmNvZGUpOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPFVSTD46OmVuY29k
ZSk6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8VXNlclN0eWxlU2hlZXQ+OjplbmNvZGUp
OgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPE1lZGlhU2Vzc2lvbk1ldGFkYXRhPjo6ZW5j
b2RlKToKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxVc2VyU2NyaXB0Pjo6ZW5jb2RlKToK
KyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxTY3JvbGxhYmxlQXJlYVBhcmFtZXRlcnM+Ojpl
bmNvZGUpOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEZpeGVkUG9zaXRpb25WaWV3cG9y
dENvbnN0cmFpbnRzPjo6ZW5jb2RlKToKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxTdGlj
a3lQb3NpdGlvblZpZXdwb3J0Q29uc3RyYWludHM+OjplbmNvZGUpOgorICAgICAgICAoSVBDOjpB
cmd1bWVudENvZGVyPEZpbHRlck9wZXJhdGlvbj46OmVuY29kZSk6CisgICAgICAgIChJUEM6OkFy
Z3VtZW50Q29kZXI8RmlsdGVyT3BlcmF0aW9ucz46OmVuY29kZSk6CisgICAgICAgIChJUEM6OkFy
Z3VtZW50Q29kZXI8U2Vzc2lvbklEPjo6ZW5jb2RlKToKKyAgICAgICAgKElQQzo6QXJndW1lbnRD
b2RlcjxCbG9iUGFydD46OmVuY29kZSk6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8VGV4
dEluZGljYXRvckRhdGE+OjplbmNvZGUpOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPE1l
ZGlhUGxheWJhY2tUYXJnZXRDb250ZXh0Pjo6ZW5jb2RlKToKKyAgICAgICAgKElQQzo6QXJndW1l
bnRDb2RlcjxEaWN0aW9uYXJ5UG9wdXBJbmZvPjo6ZW5jb2RlKToKKyAgICAgICAgKElQQzo6QXJn
dW1lbnRDb2RlcjxFeGNlcHRpb25EZXRhaWxzPjo6ZW5jb2RlKToKKyAgICAgICAgKElQQzo6QXJn
dW1lbnRDb2RlcjxSZXNvdXJjZUxvYWRTdGF0aXN0aWNzPjo6ZW5jb2RlKToKKyAgICAgICAgKiBT
aGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmg6CisgICAgICAgICogU2hhcmVkL1dlYkV2ZW50
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRXZlbnQ6OmVuY29kZSk6CisgICAgICAgICogU2hh
cmVkL1dlYkV2ZW50Lmg6CisgICAgICAgICogU2hhcmVkL1dlYkdlb2xvY2F0aW9uUG9zaXRpb24u
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJHZW9sb2NhdGlvblBvc2l0aW9uOjpEYXRhOjplbmNv
ZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJHZW9sb2NhdGlvblBvc2l0aW9uLmg6CisgICAgICAg
ICogU2hhcmVkL1dlYkhpdFRlc3RSZXN1bHREYXRhLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
SGl0VGVzdFJlc3VsdERhdGE6OmVuY29kZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkhpdFRlc3RS
ZXN1bHREYXRhOjpwbGF0Zm9ybUVuY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYkhpdFRlc3RS
ZXN1bHREYXRhLmg6CisgICAgICAgICogU2hhcmVkL1dlYktleWJvYXJkRXZlbnQuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJLZXlib2FyZEV2ZW50OjplbmNvZGUpOgorICAgICAgICAqIFNoYXJl
ZC9XZWJNb3VzZUV2ZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViTW91c2VFdmVudDo6ZW5j
b2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViTmF2aWdhdGlvbkRhdGFTdG9yZS5oOgorICAgICAg
ICAoV2ViS2l0OjpXZWJOYXZpZ2F0aW9uRGF0YVN0b3JlOjplbmNvZGUpOgorICAgICAgICAqIFNo
YXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZUNyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViUGFn
ZUNyZWF0aW9uUGFyYW1ldGVycy5oOgorICAgICAgICAqIFNoYXJlZC9XZWJQYWdlR3JvdXBEYXRh
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZUdyb3VwRGF0YTo6ZW5jb2RlKToKKyAgICAg
ICAgKiBTaGFyZWQvV2ViUGFnZUdyb3VwRGF0YS5oOgorICAgICAgICAqIFNoYXJlZC9XZWJQbGF0
Zm9ybVRvdWNoUG9pbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQbGF0Zm9ybVRvdWNoUG9p
bnQ6OmVuY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYlBvcHVwSXRlbS5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYlBvcHVwSXRlbTo6ZW5jb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViUG9w
dXBJdGVtLmg6CisgICAgICAgICogU2hhcmVkL1dlYlByZWZlcmVuY2VzU3RvcmUuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQcmVmZXJlbmNlc1N0b3JlOjpWYWx1ZTo6ZW5jb2RlKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUHJlZmVyZW5jZXNTdG9yZTo6ZW5jb2RlKToKKyAgICAgICAgKiBTaGFy
ZWQvV2ViUHJlZmVyZW5jZXNTdG9yZS5oOgorICAgICAgICAqIFNoYXJlZC9XZWJQcm9jZXNzQ3Jl
YXRpb25QYXJhbWV0ZXJzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVyczo6ZW5jb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVycy5oOgorICAgICAgICAqIFNoYXJlZC9XZWJUb3VjaEV2ZW50LmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViVG91Y2hFdmVudDo6ZW5jb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2Vi
VXNlckNvbnRlbnRDb250cm9sbGVyRGF0YVR5cGVzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
VXNlclNjcmlwdERhdGE6OmVuY29kZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlVzZXJTdHlsZVNo
ZWV0RGF0YTo6ZW5jb2RlKToKKyAgICAgICAgKFdlYktpdDo6V2ViU2NyaXB0TWVzc2FnZUhhbmRs
ZXJEYXRhOjplbmNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJVc2VyQ29udGVudENvbnRyb2xs
ZXJEYXRhVHlwZXMuaDoKKyAgICAgICAgKiBTaGFyZWQvV2ViV2hlZWxFdmVudC5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYldoZWVsRXZlbnQ6OmVuY29kZSk6CisgICAgICAgICogU2hhcmVkL1dl
YnNpdGVEYXRhL1dlYnNpdGVEYXRhLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGE6
OkVudHJ5OjplbmNvZGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YTo6ZW5jb2RlKToK
KyAgICAgICAgKiBTaGFyZWQvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGEuaDoKKyAgICAgICAgKiBT
aGFyZWQvY2YvQXJndW1lbnRDb2RlcnNDRi5jcHA6CisgICAgICAgIChJUEM6OmVuY29kZSk6Cisg
ICAgICAgICogU2hhcmVkL2NmL0FyZ3VtZW50Q29kZXJzQ0YuaDoKKyAgICAgICAgKiBTaGFyZWQv
aW9zL0ludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uLmg6CisgICAgICAgICogU2hhcmVk
L2lvcy9JbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbi5tbToKKyAgICAgICAgKFdlYktp
dDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb246OmVuY29kZSk6CisgICAgICAgICog
U2hhcmVkL2lvcy9RdWlja0xvb2tEb2N1bWVudERhdGEuY3BwOgorICAgICAgICAoV2ViS2l0OjpR
dWlja0xvb2tEb2N1bWVudERhdGE6OmVuY29kZSk6CisgICAgICAgICogU2hhcmVkL2lvcy9RdWlj
a0xvb2tEb2N1bWVudERhdGEuaDoKKyAgICAgICAgKiBTaGFyZWQvaW9zL1dlYlBsYXRmb3JtVG91
Y2hQb2ludElPUy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBsYXRmb3JtVG91Y2hQb2ludDo6
ZW5jb2RlKToKKyAgICAgICAgKiBTaGFyZWQvaW9zL1dlYlRvdWNoRXZlbnRJT1MuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJUb3VjaEV2ZW50OjplbmNvZGUpOgorICAgICAgICAqIFNoYXJlZC9t
YWMvQXJndW1lbnRDb2RlcnNNYWMuaDoKKyAgICAgICAgKiBTaGFyZWQvbWFjL0FyZ3VtZW50Q29k
ZXJzTWFjLm1tOgorICAgICAgICAoSVBDOjplbmNvZGUpOgorICAgICAgICAqIFNoYXJlZC9tYWMv
QXR0cmlidXRlZFN0cmluZy5oOgorICAgICAgICAqIFNoYXJlZC9tYWMvQXR0cmlidXRlZFN0cmlu
Zy5tbToKKyAgICAgICAgKFdlYktpdDo6QXR0cmlidXRlZFN0cmluZzo6ZW5jb2RlKToKKyAgICAg
ICAgKiBTaGFyZWQvbWFjL0NvbG9yU3BhY2VEYXRhLmg6CisgICAgICAgICogU2hhcmVkL21hYy9D
b2xvclNwYWNlRGF0YS5tbToKKyAgICAgICAgKFdlYktpdDo6Q29sb3JTcGFjZURhdGE6OmVuY29k
ZSk6CisgICAgICAgICogU2hhcmVkL21hYy9PYmpDT2JqZWN0R3JhcGguaDoKKyAgICAgICAgKiBT
aGFyZWQvbWFjL09iakNPYmplY3RHcmFwaC5tbToKKyAgICAgICAgKFdlYktpdDo6T2JqQ09iamVj
dEdyYXBoOjplbmNvZGUpOgorICAgICAgICAqIFNoYXJlZC9tYWMvUmVtb3RlTGF5ZXJCYWNraW5n
U3RvcmUuaDoKKyAgICAgICAgKiBTaGFyZWQvbWFjL1JlbW90ZUxheWVyQmFja2luZ1N0b3JlLm1t
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllckJhY2tpbmdTdG9yZTo6ZW5jb2RlKToKKyAg
ICAgICAgKiBTaGFyZWQvbWFjL1JlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uLmg6CisgICAgICAg
ICogU2hhcmVkL21hYy9SZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbi5tbToKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OkxheWVyQ3JlYXRpb25Qcm9wZXJ0aWVz
OjplbmNvZGUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6
TGF5ZXJQcm9wZXJ0aWVzOjplbmNvZGUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRy
ZWVUcmFuc2FjdGlvbjo6ZW5jb2RlKToKKyAgICAgICAgKiBTaGFyZWQvbWFjL1NhbmRib3hFeHRl
bnNpb25NYWMubW06CisgICAgICAgIChXZWJLaXQ6OlNhbmRib3hFeHRlbnNpb246OkhhbmRsZTo6
ZW5jb2RlKToKKyAgICAgICAgKFdlYktpdDo6U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlQXJyYXk6
OmVuY29kZSk6CisgICAgICAgICogU2hhcmVkL21hYy9TZWNJdGVtUmVxdWVzdERhdGEuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpTZWNJdGVtUmVxdWVzdERhdGE6OmVuY29kZSk6CisgICAgICAgICog
U2hhcmVkL21hYy9TZWNJdGVtUmVxdWVzdERhdGEuaDoKKyAgICAgICAgKiBTaGFyZWQvbWFjL1Nl
Y0l0ZW1SZXNwb25zZURhdGEuY3BwOgorICAgICAgICAoV2ViS2l0OjpTZWNJdGVtUmVzcG9uc2VE
YXRhOjplbmNvZGUpOgorICAgICAgICAqIFNoYXJlZC9tYWMvU2VjSXRlbVJlc3BvbnNlRGF0YS5o
OgorICAgICAgICAqIFNoYXJlZC9tYWMvV2ViQ29yZUFyZ3VtZW50Q29kZXJzTWFjLm1tOgorICAg
ICAgICAoSVBDOjpBcmd1bWVudENvZGVyPFJlc291cmNlUmVxdWVzdD46OmVuY29kZVBsYXRmb3Jt
RGF0YSk6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8Q2VydGlmaWNhdGVJbmZvPjo6ZW5j
b2RlKToKKyAgICAgICAgKElQQzo6ZW5jb2RlTlNFcnJvcik6CisgICAgICAgIChJUEM6OkFyZ3Vt
ZW50Q29kZXI8UmVzb3VyY2VFcnJvcj46OmVuY29kZVBsYXRmb3JtRGF0YSk6CisgICAgICAgIChJ
UEM6OkFyZ3VtZW50Q29kZXI8UHJvdGVjdGlvblNwYWNlPjo6ZW5jb2RlUGxhdGZvcm1EYXRhKToK
KyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxDcmVkZW50aWFsPjo6ZW5jb2RlUGxhdGZvcm1E
YXRhKToKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxNYWNoU2VuZFJpZ2h0Pjo6ZW5jb2Rl
KToKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxLZXlwcmVzc0NvbW1hbmQ+OjplbmNvZGUp
OgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPENvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxl
cj46OmVuY29kZSk6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8TWVkaWFQbGF5YmFja1Rh
cmdldENvbnRleHQ+OjplbmNvZGVQbGF0Zm9ybURhdGEpOgorICAgICAgICAqIFNoYXJlZC9tYWMv
V2ViR2VzdHVyZUV2ZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViR2VzdHVyZUV2ZW50Ojpl
bmNvZGUpOgorICAgICAgICAqIFNoYXJlZC9tYWMvV2ViR2VzdHVyZUV2ZW50Lmg6CisgICAgICAg
ICogU2hhcmVkL21hYy9XZWJIaXRUZXN0UmVzdWx0RGF0YS5tbToKKyAgICAgICAgKFdlYktpdDo6
V2ViSGl0VGVzdFJlc3VsdERhdGE6OnBsYXRmb3JtRW5jb2RlKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL0FQSUhpdFRlc3RSZXN1bHQuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQXBwbGVQYXkv
V2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ2hpbGRQ
cm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpDaGlsZFByb2Nlc3NQcm94eTo6c2Vu
ZE1lc3NhZ2UpOgorICAgICAgICAoV2ViS2l0OjpDaGlsZFByb2Nlc3NQcm94eTo6ZGlzcGF0Y2hT
eW5jTWVzc2FnZSk6CisgICAgICAgIChXZWJLaXQ6OkNoaWxkUHJvY2Vzc1Byb3h5OjpkaWRGaW5p
c2hMYXVuY2hpbmcpOgorICAgICAgICAqIFVJUHJvY2Vzcy9DaGlsZFByb2Nlc3NQcm94eS5oOgor
ICAgICAgICAoV2ViS2l0OjpDaGlsZFByb2Nlc3NQcm94eTo6c2VuZCk6CisgICAgICAgICogVUlQ
cm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZFByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL05l
dHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQ
cm9jZXNzUHJveHk6OmRpZFJlY2VpdmVTeW5jTWVzc2FnZSk6CisgICAgICAgICogVUlQcm9jZXNz
L05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Ob3Rp
ZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbi5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL05vdGlm
aWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL1BsdWdpbnMv
UGx1Z2luUHJvY2Vzc01hbmFnZXIuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvUGx1Z2lucy9QbHVn
aW5Qcm9jZXNzUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvU2Nyb2xsaW5nL1JlbW90ZVNj
cm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9TdG9yYWdl
L1N0b3JhZ2VNYW5hZ2VyLmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkZ1bGxTY3JlZW5NYW5h
Z2VyUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViSWNvbkRhdGFiYXNlLmg6CisgICAg
ICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2VQcm94eTo6c2VuZE1lc3NhZ2UpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHku
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFzdGVib2FyZFByb3h5Lmg6CisgICAgICAgICog
VUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vz
c1Bvb2w6OmRpc3BhdGNoU3luY01lc3NhZ2UpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9j
ZXNzUG9vbC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OmRpZFJlY2VpdmVTeW5jTWVzc2FnZSk6Cisg
ICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oOgorICAgICAgICAqIFdlYktpdDIu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsv
TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1By
b2Nlc3NDb25uZWN0aW9uOjpkaWRSZWNlaXZlU3luY01lc3NhZ2UpOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1BsdWdpbnMvUGx1Z2luLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UGx1Z2luOjpQYXJh
bWV0ZXJzOjplbmNvZGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW4uaDoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24uY3Bw
OgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZVN5
bmNNZXNzYWdlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nv
bm5lY3Rpb24uaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nv
bm5lY3Rpb25NYW5hZ2VyLmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2lu
UHJveHkuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1Njcm9sbGluZy9SZW1vdGVTY3JvbGxpbmdD
b29yZGluYXRvci5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvU2Nyb2xsaW5nL1JlbW90ZVNjcm9s
bGluZ0Nvb3JkaW5hdG9yLm1tOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5n
QXJlYS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZTo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFn
ZS9tYWMvUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViUGFnZS9tYWMvUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZS5tbToKKyAgICAgICAgKFdlYktp
dDo6UGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZTo6S2V5ZnJhbWVWYWx1ZTo6ZW5jb2RlKToKKyAg
ICAgICAgKFdlYktpdDo6UGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZTo6UHJvcGVydGllczo6ZW5j
b2RlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZURy
YXdpbmdBcmVhLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVMYXll
clRyZWVEcmF3aW5nQXJlYS5tbToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlRHJh
d2luZ0FyZWE6OmZsdXNoTGF5ZXJzKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVl
RHJhd2luZ0FyZWE6OkJhY2tpbmdTdG9yZUZsdXNoZXI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjpCYWNraW5nU3RvcmVGbHVzaGVyOjpCYWNr
aW5nU3RvcmVGbHVzaGVyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpkaWRSZWNlaXZlU3luY01lc3NhZ2UpOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oOgorCiAyMDE2LTA4LTE2ICBTaW1vbiBGcmFz
ZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFJlbmFtZSBkaWRMYXlvdXQo
TGF5b3V0TWlsZXN0b25lcykgdG8gZGlkUmVhY2hMYXlvdXRNaWxlc3RvbmUoKSwgYW5kIHJlbGF0
ZWQgV0syIGZ1bmN0aW9ucwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9j
ZXNzL0RhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9E
YXRhYmFzZVByb2Nlc3MvRGF0YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcAppbmRleCA3
YTg2ZmUyZmM0NjQ4NjNhMjFmYzZiZTQ2YjdjNjJiYjViNzljZTAxLi45NGJhMjU3YmEwMDFiNDJj
YzcxMjU2OTc5MjAyNjYyNzk5Mzk1NzNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9EYXRh
YmFzZVByb2Nlc3MvRGF0YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvRGF0YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0aW9u
LmNwcApAQCAtNzIsNyArNzIsNyBAQCB2b2lkIERhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlv
bjo6ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aQogICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOwogfQogCi12b2lkIERhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlv
bjo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBD
OjpNZXNzYWdlRGVjb2RlciYgZGVjb2Rlciwgc3RkOjp1bmlxdWVfcHRyPElQQzo6TWVzc2FnZUVu
Y29kZXI+JiByZXBseUVuY29kZXIpCit2b2lkIERhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlv
bjo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBD
OjpNZXNzYWdlRGVjb2RlciYgZGVjb2Rlciwgc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4m
IHJlcGx5RW5jb2RlcikKIHsKICAgICBpZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkg
PT0gTWVzc2FnZXM6OkRhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6bWVzc2FnZVJlY2Vp
dmVyTmFtZSgpKSB7CiAgICAgICAgIGRpZFJlY2VpdmVTeW5jRGF0YWJhc2VUb1dlYlByb2Nlc3ND
b25uZWN0aW9uTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyLCByZXBseUVuY29kZXIpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0RhdGFiYXNlVG9XZWJQcm9j
ZXNzQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0RhdGFiYXNl
VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5oCmluZGV4IGZhZTVlYmRiOWJkMDkwZjc4MmE5ZTNiYmIw
YTc0MjFmZjBlOWMzNmUuLjJiMGVkMTY4NTBlMTc3NjYyYTgyMTRjYTE3OGFkMGQyZmNhYmJiZjMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVRvV2Vi
UHJvY2Vzc0Nvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3Mv
RGF0YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmgKQEAgLTQ5LDEzICs0OSwxMyBAQCBwcml2
YXRlOgogCiAgICAgLy8gSVBDOjpDb25uZWN0aW9uOjpDbGllbnQKICAgICB2b2lkIGRpZFJlY2Vp
dmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6TWVzc2FnZURlY29kZXImKSBvdmVycmlk
ZTsKLSAgICB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6
Ok1lc3NhZ2VEZWNvZGVyJiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6TWVzc2FnZUVuY29kZXI+Jikg
b3ZlcnJpZGU7CisgICAgdm9pZCBkaWRSZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9u
JiwgSVBDOjpNZXNzYWdlRGVjb2RlciYsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+Jikg
b3ZlcnJpZGU7CiAgICAgdm9pZCBkaWRDbG9zZShJUEM6OkNvbm5lY3Rpb24mKSBvdmVycmlkZTsK
ICAgICB2b2lkIGRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6
OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlUmVjZWl2ZXJOYW1lLCBJUEM6OlN0cmluZ1JlZmVyZW5j
ZSBtZXNzYWdlTmFtZSkgb3ZlcnJpZGU7CiAgICAgSVBDOjpQcm9jZXNzVHlwZSBsb2NhbFByb2Nl
c3NUeXBlKCkgb3ZlcnJpZGUgeyByZXR1cm4gSVBDOjpQcm9jZXNzVHlwZTo6RGF0YWJhc2U7IH0K
ICAgICBJUEM6OlByb2Nlc3NUeXBlIHJlbW90ZVByb2Nlc3NUeXBlKCkgb3ZlcnJpZGUgeyByZXR1
cm4gSVBDOjpQcm9jZXNzVHlwZTo6V2ViOyB9CiAgICAgdm9pZCBkaWRSZWNlaXZlRGF0YWJhc2VU
b1dlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6Ok1lc3Nh
Z2VEZWNvZGVyJik7Ci0gICAgdm9pZCBkaWRSZWNlaXZlU3luY0RhdGFiYXNlVG9XZWJQcm9jZXNz
Q29ubmVjdGlvbk1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpNZXNzYWdlRGVjb2RlciYs
IHN0ZDo6dW5pcXVlX3B0cjxJUEM6Ok1lc3NhZ2VFbmNvZGVyPiYpOworICAgIHZvaWQgZGlkUmVj
ZWl2ZVN5bmNEYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlKElQQzo6Q29ubmVj
dGlvbiYsIElQQzo6TWVzc2FnZURlY29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVy
PiYpOwogCiAgICAgLy8gSVBDOjpNZXNzYWdlU2VuZGVyCiAgICAgSVBDOjpDb25uZWN0aW9uKiBt
ZXNzYWdlU2VuZGVyQ29ubmVjdGlvbigpIG92ZXJyaWRlIHsgcmV0dXJuIG1fY29ubmVjdGlvbi5w
dHIoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvRG93bmxv
YWRzL0Rvd25sb2FkSUQuaCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fk
cy9Eb3dubG9hZElELmgKaW5kZXggMzdlNjhjM2U5NWEzYzc5Nzg1NDk2NTEwM2Y4YjdiZmY2ZTBm
MDgxMi4uM2QyOTZkNjQ1MGViZTY1MjRhNGNkMjNhZjcwOTcyYzlmMjM1ZGRjYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkSUQuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRJRC5o
CkBAIC0yOCw3ICsyOCw3IEBACiAKICNpbmNsdWRlICJBcmd1bWVudENvZGVyLmgiCiAjaW5jbHVk
ZSAiQXJndW1lbnREZWNvZGVyLmgiCi0jaW5jbHVkZSAiQXJndW1lbnRFbmNvZGVyLmgiCisjaW5j
bHVkZSAiRW5jb2Rlci5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoVHJhaXRzLmg+CiAKIG5hbWVzcGFj
ZSBXZWJLaXQgewpAQCAtNTcsNyArNTcsNyBAQCBwcml2YXRlOgogbmFtZXNwYWNlIElQQyB7CiAg
ICAgCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYktpdDo6RG93bmxvYWRJRD4g
ewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXImIGVuY29kZXIsIGNvbnN0
IFdlYktpdDo6RG93bmxvYWRJRCYgZG93bmxvYWRJRCkKKyAgICBzdGF0aWMgdm9pZCBlbmNvZGUo
RW5jb2RlciYgZW5jb2RlciwgY29uc3QgV2ViS2l0OjpEb3dubG9hZElEJiBkb3dubG9hZElEKQog
ICAgIHsKICAgICAgICAgZW5jb2RlciA8PCBkb3dubG9hZElELmRvd25sb2FkSUQoKTsKICAgICB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVj
dGlvblRvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKaW5kZXggMjFlZmEyNjM1NjYzODcwYjY1MDFl
NTJhMzI5NDIxMWEzNjE5NGNjNC4uMTM4ZDk5ODVlZTQzYzM3NjdiZjhkNzkzODc0NGUxYjhiZWFk
NWU2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcApAQCAtOTIsNyArOTIsNyBAQCB2
b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpkaWRSZWNlaXZlTWVzc2FnZShJUEM6
OkNvbm5lY3Rpb24mIGNvbm5lY3RpbwogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogfQogCi12
b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpkaWRSZWNlaXZlU3luY01lc3NhZ2Uo
SVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVy
LCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpNZXNzYWdlRW5jb2Rlcj4mIHJlcGx5KQordm9pZCBOZXR3
b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29u
bmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2Rlciwgc3RkOjp1
bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4mIHJlcGx5KQogewogICAgIGlmIChkZWNvZGVyLm1lc3Nh
Z2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3M6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSkgewogICAgICAgICBkaWRSZWNlaXZlU3luY05ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyLCByZXBs
eSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAppbmRleCBmYTRiN2JjOTAzY2JkNjcyOTgwYTFm
MzE2NTRmY2I1NzM2NDVjZTI1Li4wYTllZDQxMWFmNWM0MDY2NDA4N2JmMzJjMjJmZDQ1OTdiZWU0
NzhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNz
L05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKQEAgLTYwLDcgKzYwLDcgQEAgcHJpdmF0
ZToKIAogICAgIC8vIElQQzo6Q29ubmVjdGlvbjo6Q2xpZW50CiAgICAgdm9pZCBkaWRSZWNlaXZl
TWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJikgb3ZlcnJpZGU7
Ci0gICAgdm9pZCBkaWRSZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpN
ZXNzYWdlRGVjb2RlciYsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6Ok1lc3NhZ2VFbmNvZGVyPiYpIG92
ZXJyaWRlOworICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYs
IElQQzo6TWVzc2FnZURlY29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYpIG92
ZXJyaWRlOwogICAgIHZvaWQgZGlkQ2xvc2UoSVBDOjpDb25uZWN0aW9uJikgb3ZlcnJpZGU7CiAg
ICAgdm9pZCBkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpT
dHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFtZSwgSVBDOjpTdHJpbmdSZWZlcmVuY2Ug
bWVzc2FnZU5hbWUpIG92ZXJyaWRlOwogICAgIElQQzo6UHJvY2Vzc1R5cGUgbG9jYWxQcm9jZXNz
VHlwZSgpIG92ZXJyaWRlIHsgcmV0dXJuIElQQzo6UHJvY2Vzc1R5cGU6Ok5ldHdvcms7IH0KQEAg
LTY4LDcgKzY4LDcgQEAgcHJpdmF0ZToKIAogICAgIC8vIE1lc3NhZ2UgaGFuZGxlcnMuCiAgICAg
dm9pZCBkaWRSZWNlaXZlTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNzYWdlKElQQzo6
Q29ubmVjdGlvbiYsIElQQzo6TWVzc2FnZURlY29kZXImKTsKLSAgICB2b2lkIGRpZFJlY2VpdmVT
eW5jTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYs
IElQQzo6TWVzc2FnZURlY29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpNZXNzYWdlRW5jb2Rl
cj4mKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVTeW5jTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3NNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6TWVzc2FnZURlY29kZXImLCBzdGQ6OnVu
aXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYpOwogICAgIAogICAgIHZvaWQgc2NoZWR1bGVSZXNvdXJj
ZUxvYWQoY29uc3QgTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMmKTsKICAgICB2b2lkIHBl
cmZvcm1TeW5jaHJvbm91c0xvYWQoY29uc3QgTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMm
LCBSZWZQdHI8TWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpQZXJmb3Jt
U3luY2hyb25vdXNMb2FkOjpEZWxheWVkUmVwbHk+JiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdDIv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCmluZGV4IGU4MTc2N2M3N2JmMWIxOGU5
NTJkMWIzNGEwMmQxMjQxMTUwNGUyNWYuLjk4ODQ2ZjBiYTg5NTkxZmIxNDE4OTZmOTZlZjNiMWRj
YmQzZmE5ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdv
cmtQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UHJvY2Vzcy5jcHAKQEAgLTE0Niw3ICsxNDYsNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpkaWRS
ZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6TWVzc2FnZQog
ICAgIGRpZFJlY2VpdmVOZXR3b3JrUHJvY2Vzc01lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7
CiB9CiAKLXZvaWQgTmV0d29ya1Byb2Nlc3M6OmRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNv
bm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIsIHN0ZDo6
dW5pcXVlX3B0cjxJUEM6Ok1lc3NhZ2VFbmNvZGVyPiYgcmVwbHlFbmNvZGVyKQordm9pZCBOZXR3
b3JrUHJvY2Vzczo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVj
dGlvbiwgSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2Rlciwgc3RkOjp1bmlxdWVfcHRyPElQQzo6
RW5jb2Rlcj4mIHJlcGx5RW5jb2RlcikKIHsKICAgICBpZiAobWVzc2FnZVJlY2VpdmVyTWFwKCku
ZGlzcGF0Y2hTeW5jTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyLCByZXBseUVuY29kZXIpKQog
ICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Byb2Nlc3MuaAppbmRleCA3MTk5NDVkZjZlNTliYjQyNDgzODI3N2Y3NzE4ZjE3NjBmZDAxMzZk
Li40NzEzMTA2ZTg4ODU1OTU3YTE5ODg1ZjFlOGE0MWY2MjRjMzFkMTUyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKQEAgLTE0MSw3ICsxNDEs
NyBAQCBwcml2YXRlOgogCiAgICAgLy8gSVBDOjpDb25uZWN0aW9uOjpDbGllbnQKICAgICB2b2lk
IGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6TWVzc2FnZURlY29kZXIm
KSBvdmVycmlkZTsKLSAgICB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rp
b24mLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6TWVzc2FnZUVu
Y29kZXI+Jikgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRSZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpD
b25uZWN0aW9uJiwgSVBDOjpNZXNzYWdlRGVjb2RlciYsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVu
Y29kZXI+Jikgb3ZlcnJpZGU7CiAgICAgdm9pZCBkaWRDbG9zZShJUEM6OkNvbm5lY3Rpb24mKSBv
dmVycmlkZTsKICAgICB2b2lkIGRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShJUEM6OkNvbm5lY3Rp
b24mLCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlUmVjZWl2ZXJOYW1lLCBJUEM6OlN0cmlu
Z1JlZmVyZW5jZSBtZXNzYWdlTmFtZSkgb3ZlcnJpZGU7CiAgICAgSVBDOjpQcm9jZXNzVHlwZSBs
b2NhbFByb2Nlc3NUeXBlKCkgb3ZlcnJpZGUgeyByZXR1cm4gSVBDOjpQcm9jZXNzVHlwZTo6TmV0
d29yazsgfQpAQCAtMTU4LDcgKzE1OCw3IEBAIHByaXZhdGU6CiAKICAgICAvLyBNZXNzYWdlIEhh
bmRsZXJzCiAgICAgdm9pZCBkaWRSZWNlaXZlTmV0d29ya1Byb2Nlc3NNZXNzYWdlKElQQzo6Q29u
bmVjdGlvbiYsIElQQzo6TWVzc2FnZURlY29kZXImKTsKLSAgICB2b2lkIGRpZFJlY2VpdmVTeW5j
TmV0d29ya1Byb2Nlc3NNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6TWVzc2FnZURlY29k
ZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpNZXNzYWdlRW5jb2Rlcj4mKTsKKyAgICB2b2lkIGRp
ZFJlY2VpdmVTeW5jTmV0d29ya1Byb2Nlc3NNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6
TWVzc2FnZURlY29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYpOwogICAgIHZv
aWQgaW5pdGlhbGl6ZU5ldHdvcmtQcm9jZXNzKE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzJiYpOwogICAgIHZvaWQgY3JlYXRlTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoKTsK
ICAgICB2b2lkIGRlc3Ryb3lQcml2YXRlQnJvd3NpbmdTZXNzaW9uKFdlYkNvcmU6OlNlc3Npb25J
RCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKaW5kZXggMjEzNzllOGFiZjY0
YWU4NzcwZWJhOTcyNWZiNGM5Y2NjZTRmZGYwNi4uNzViMzA2YTcwY2MwNzM2YWE0YTRmYTE5OGQy
YTExNGZkMGU2NGEyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcApAQCAt
MzgsNyArMzgsNyBAQCBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6TmV0d29ya1By
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMoKQogewogfQogCi12b2lkIE5ldHdvcmtQcm9jZXNzQ3Jl
YXRpb25QYXJhbWV0ZXJzOjplbmNvZGUoSVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNv
bnN0Cit2b2lkIE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUoSVBDOjpF
bmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewogICAgIGVuY29kZXIgPDwgcHJpdmF0ZUJyb3dzaW5n
RW5hYmxlZDsKICAgICBlbmNvZGVyLmVuY29kZUVudW0oY2FjaGVNb2RlbCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVycy5oIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnMuaAppbmRleCA0MjkyY2U5ODg5YmI2ZjM5OGRjYWIzMjA3OTcxYTFj
M2FiZDc3ZTdmLi4yNDA5Y2MwZjYzMDBjY2U3ZjM4M2Q3NGU0MWZlODllYWJlYTY4NzFhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdv
cmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKQEAgLTM3LDcgKzM3LDcgQEAKIAogbmFtZXNw
YWNlIElQQyB7CiBjbGFzcyBBcmd1bWVudERlY29kZXI7Ci1jbGFzcyBBcmd1bWVudEVuY29kZXI7
CitjbGFzcyBFbmNvZGVyOwogfQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTQ1LDcgKzQ1LDcg
QEAgbmFtZXNwYWNlIFdlYktpdCB7CiBzdHJ1Y3QgTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnMgewogICAgIE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzKCk7CiAKLSAgICB2
b2lkIGVuY29kZShJUEM6OkFyZ3VtZW50RW5jb2RlciYpIGNvbnN0OworICAgIHZvaWQgZW5jb2Rl
KElQQzo6RW5jb2RlciYpIGNvbnN0OwogICAgIHN0YXRpYyBib29sIGRlY29kZShJUEM6OkFyZ3Vt
ZW50RGVjb2RlciYsIE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJik7CiAKICAgICBi
b29sIHByaXZhdGVCcm93c2luZ0VuYWJsZWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycy5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycy5jcHAK
aW5kZXggZGZlMzIyYzliN2VkZjk2YTk2MTVjZjYyZjZiYzY5M2ViODQzNjA0ZC4uNWU0OGQzZTBm
OTIyMzNhZDg1MmFjNjUwZDg0MTc2MjhkMzgzM2EzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0
ZXJzLmNwcApAQCAtMzQsNyArMzQsNyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFt
ZXNwYWNlIFdlYktpdCB7CiAKLXZvaWQgTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnM6OmVu
Y29kZShJUEM6OkFyZ3VtZW50RW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3ZvaWQgTmV0d29ya1Jl
c291cmNlTG9hZFBhcmFtZXRlcnM6OmVuY29kZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0
CiB7CiAgICAgZW5jb2RlciA8PCBpZGVudGlmaWVyOwogICAgIGVuY29kZXIgPDwgd2ViUGFnZUlE
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291
cmNlTG9hZFBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdv
cmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzLmgKaW5kZXggMTY3OGVhODZiMTI2NTZkM2U5N2MwMDU5
ODhmYzcxZGMwZmNjYjczZS4uOTI3OTUzNDYyYjMyY2MxYzcxZTBkOGNiOTY2MTA1YTE5MzMxYzll
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291
cmNlTG9hZFBhcmFtZXRlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycy5oCkBAIC0zNSw3ICszNSw3IEBACiAKIG5hbWVz
cGFjZSBJUEMgewogY2xhc3MgQXJndW1lbnREZWNvZGVyOwotY2xhc3MgQXJndW1lbnRFbmNvZGVy
OworY2xhc3MgRW5jb2RlcjsKIH0KIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC00NCw3ICs0NCw3
IEBAIHR5cGVkZWYgdWludDY0X3QgUmVzb3VyY2VMb2FkSWRlbnRpZmllcjsKIAogY2xhc3MgTmV0
d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMgOiBwdWJsaWMgTmV0d29ya0xvYWRQYXJhbWV0ZXJz
IHsKIHB1YmxpYzoKLSAgICB2b2lkIGVuY29kZShJUEM6OkFyZ3VtZW50RW5jb2RlciYpIGNvbnN0
OworICAgIHZvaWQgZW5jb2RlKElQQzo6RW5jb2RlciYpIGNvbnN0OwogICAgIHN0YXRpYyBib29s
IGRlY29kZShJUEM6OkFyZ3VtZW50RGVjb2RlciYsIE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0
ZXJzJik7CiAKICAgICBSZXNvdXJjZUxvYWRJZGVudGlmaWVyIGlkZW50aWZpZXIgeyAwIH07CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2Rlci5oIGIv
U291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL0FyZ3VtZW50Q29kZXIuaAppbmRleCAyYWYzMTNj
NDI3N2Q1MGU0OTNmNzZmY2IyMmI2ZmYyZmIyN2FmYzk1Li43YmFiYjgxMGJlMGZkMGMwMzg0MTM3
Zjk3OTRiNTljN2IzYWNkOGM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9J
UEMvQXJndW1lbnRDb2Rlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9Bcmd1
bWVudENvZGVyLmgKQEAgLTI5LDEwICsyOSwxMCBAQAogbmFtZXNwYWNlIElQQyB7CiAKIGNsYXNz
IEFyZ3VtZW50RGVjb2RlcjsKLWNsYXNzIEFyZ3VtZW50RW5jb2RlcjsKK2NsYXNzIEVuY29kZXI7
CiAgICAgCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgQXJndW1lbnRDb2RlciB7Ci0gICAg
c3RhdGljIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgY29uc3QgVCYgdCkK
KyAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgVCYgdCkKICAg
ICB7CiAgICAgICAgIHQuZW5jb2RlKGVuY29kZXIpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9QbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMuY3BwCmluZGV4IDg5NzQ1OTVjZTNlNWE2N2Jk
NmUwYTI0ZjU2NjIxODUxMzNjYzM0OGUuLjdmN2RlYjRmOGQyZGVkYzY5MGVjYmU0ZDgwYTg5YmQ2
YTZiODQ4NTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9Bcmd1bWVu
dENvZGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL0FyZ3VtZW50Q29k
ZXJzLmNwcApAQCAtMzIsNyArMzIsNyBAQAogCiBuYW1lc3BhY2UgSVBDIHsKIAotdm9pZCBBcmd1
bWVudENvZGVyPHN0ZDo6Y2hyb25vOjpzeXN0ZW1fY2xvY2s6OnRpbWVfcG9pbnQ+OjplbmNvZGUo
SVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIsIGNvbnN0IHN0ZDo6Y2hyb25vOjpzeXN0ZW1f
Y2xvY2s6OnRpbWVfcG9pbnQmIHRpbWVQb2ludCkKK3ZvaWQgQXJndW1lbnRDb2RlcjxzdGQ6OmNo
cm9ubzo6c3lzdGVtX2Nsb2NrOjp0aW1lX3BvaW50Pjo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5j
b2RlciwgY29uc3Qgc3RkOjpjaHJvbm86OnN5c3RlbV9jbG9jazo6dGltZV9wb2ludCYgdGltZVBv
aW50KQogewogICAgIGVuY29kZXIgPDwgc3RhdGljX2Nhc3Q8aW50NjRfdD4odGltZVBvaW50LnRp
bWVfc2luY2VfZXBvY2goKS5jb3VudCgpKTsKIH0KQEAgLTQ3LDcgKzQ3LDcgQEAgYm9vbCBBcmd1
bWVudENvZGVyPHN0ZDo6Y2hyb25vOjpzeXN0ZW1fY2xvY2s6OnRpbWVfcG9pbnQ+OjpkZWNvZGUo
QXJndW1lbnREZWNvZGUKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBBcmd1bWVudENvZGVy
PEF0b21pY1N0cmluZz46OmVuY29kZShBcmd1bWVudEVuY29kZXImIGVuY29kZXIsIGNvbnN0IEF0
b21pY1N0cmluZyYgYXRvbWljU3RyaW5nKQordm9pZCBBcmd1bWVudENvZGVyPEF0b21pY1N0cmlu
Zz46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBBdG9taWNTdHJpbmcmIGF0b21pY1N0
cmluZykKIHsKICAgICBlbmNvZGVyIDw8IGF0b21pY1N0cmluZy5zdHJpbmcoKTsKIH0KQEAgLTYy
LDcgKzYyLDcgQEAgYm9vbCBBcmd1bWVudENvZGVyPEF0b21pY1N0cmluZz46OmRlY29kZShBcmd1
bWVudERlY29kZXImIGRlY29kZXIsIEF0b21pY1N0cmluZyYKICAgICByZXR1cm4gdHJ1ZTsKIH0K
IAotdm9pZCBBcmd1bWVudENvZGVyPENTdHJpbmc+OjplbmNvZGUoQXJndW1lbnRFbmNvZGVyJiBl
bmNvZGVyLCBjb25zdCBDU3RyaW5nJiBzdHJpbmcpCit2b2lkIEFyZ3VtZW50Q29kZXI8Q1N0cmlu
Zz46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBDU3RyaW5nJiBzdHJpbmcpCiB7CiAg
ICAgLy8gU3BlY2lhbCBjYXNlIHRoZSBudWxsIHN0cmluZy4KICAgICBpZiAoc3RyaW5nLmlzTnVs
bCgpKSB7CkBAIC0xMDMsNyArMTAzLDcgQEAgYm9vbCBBcmd1bWVudENvZGVyPENTdHJpbmc+Ojpk
ZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBDU3RyaW5nJiByZXN1bHQpCiB9CiAKIAot
dm9pZCBBcmd1bWVudENvZGVyPFN0cmluZz46OmVuY29kZShBcmd1bWVudEVuY29kZXImIGVuY29k
ZXIsIGNvbnN0IFN0cmluZyYgc3RyaW5nKQordm9pZCBBcmd1bWVudENvZGVyPFN0cmluZz46OmVu
Y29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBTdHJpbmcmIHN0cmluZykKIHsKICAgICAvLyBT
cGVjaWFsIGNhc2UgdGhlIG51bGwgc3RyaW5nLgogICAgIGlmIChzdHJpbmcuaXNOdWxsKCkpIHsK
QEAgLTE2Myw3ICsxNjMsNyBAQCBib29sIEFyZ3VtZW50Q29kZXI8U3RyaW5nPjo6ZGVjb2RlKEFy
Z3VtZW50RGVjb2RlciYgZGVjb2RlciwgU3RyaW5nJiByZXN1bHQpCiB9CiAKICNpZiBIQVZFKERU
UkFDRSkKLXZvaWQgQXJndW1lbnRDb2Rlcjx1dWlkX3Q+OjplbmNvZGUoQXJndW1lbnRFbmNvZGVy
JiBlbmNvZGVyLCBjb25zdCB1dWlkX3QmIHV1aWQpCit2b2lkIEFyZ3VtZW50Q29kZXI8dXVpZF90
Pjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IHV1aWRfdCYgdXVpZCkKIHsKICAgICBT
aW1wbGVBcmd1bWVudENvZGVyPHV1aWRfdD46OmVuY29kZShlbmNvZGVyLCB1dWlkKTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5oIGIv
U291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL0FyZ3VtZW50Q29kZXJzLmgKaW5kZXggOTViNWJk
YTA4NjNjNzQ5Mzg0OGUzNjFlMjEwZmQ2NjA4MTBjZTAwZi4uMWQ0OTgxM2NiNWVkNTUwZGM1ZWU3
MjdlY2NhOTBkMWFmNzdmNTU1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0v
SVBDL0FyZ3VtZW50Q29kZXJzLmgKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL0Fy
Z3VtZW50Q29kZXJzLmgKQEAgLTI3LDcgKzI3LDcgQEAKICNkZWZpbmUgQXJndW1lbnRDb2RlcnNf
aAogCiAjaW5jbHVkZSAiQXJndW1lbnREZWNvZGVyLmgiCi0jaW5jbHVkZSAiQXJndW1lbnRFbmNv
ZGVyLmgiCisjaW5jbHVkZSAiRW5jb2Rlci5oIgogI2luY2x1ZGUgPHV0aWxpdHk+CiAjaW5jbHVk
ZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvSGFzaENvdW50ZWRTZXQuaD4KQEAgLTQ1
LDcgKzQ1LDcgQEAgbmFtZXNwYWNlIElQQyB7CiAKIC8vIEFuIGFyZ3VtZW50IGNvZGVyIHdvcmtz
IG9uIFBPRCB0eXBlcwogdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IFNpbXBsZUFyZ3VtZW50
Q29kZXIgewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXImIGVuY29kZXIs
IGNvbnN0IFQmIHQpCisgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNv
bnN0IFQmIHQpCiAgICAgewogICAgICAgICBlbmNvZGVyLmVuY29kZUZpeGVkTGVuZ3RoRGF0YShy
ZWludGVycHJldF9jYXN0PGNvbnN0IHVpbnQ4X3QqPigmdCksIHNpemVvZihUKSwgYWxpZ25vZihU
KSk7CiAgICAgfQpAQCAtNTcsNyArNTcsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3Qg
U2ltcGxlQXJndW1lbnRDb2RlciB7CiB9OwogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3Qg
QXJndW1lbnRDb2RlcjxPcHRpb25TZXQ8VD4+IHsKLSAgICBzdGF0aWMgdm9pZCBlbmNvZGUoQXJn
dW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBPcHRpb25TZXQ8VD4mIG9wdGlvblNldCkKKyAg
ICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgT3B0aW9uU2V0PFQ+
JiBvcHRpb25TZXQpCiAgICAgewogICAgICAgICBlbmNvZGVyIDw8IChzdGF0aWNfY2FzdDx1aW50
NjRfdD4ob3B0aW9uU2V0LnRvUmF3KCkpKTsKICAgICB9CkBAIC03NCw3ICs3NCw3IEBAIHRlbXBs
YXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBBcmd1bWVudENvZGVyPE9wdGlvblNldDxUPj4gewogfTsK
IAogdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V1RGOjpPcHRpb25h
bDxUPj4gewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXImIGVuY29kZXIs
IGNvbnN0IFdURjo6T3B0aW9uYWw8VD4mIG9wdGlvbmFsKQorICAgIHN0YXRpYyB2b2lkIGVuY29k
ZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBXVEY6Ok9wdGlvbmFsPFQ+JiBvcHRpb25hbCkKICAg
ICB7CiAgICAgICAgIGlmICghb3B0aW9uYWwpIHsKICAgICAgICAgICAgIGVuY29kZXIgPDwgZmFs
c2U7CkBAIC0xMDYsNyArMTA2LDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IEFyZ3Vt
ZW50Q29kZXI8V1RGOjpPcHRpb25hbDxUPj4gewogfTsKIAogdGVtcGxhdGU8dHlwZW5hbWUgVCwg
dHlwZW5hbWUgVT4gc3RydWN0IEFyZ3VtZW50Q29kZXI8c3RkOjpwYWlyPFQsIFU+PiB7Ci0gICAg
c3RhdGljIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgY29uc3Qgc3RkOjpw
YWlyPFQsIFU+JiBwYWlyKQorICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVy
LCBjb25zdCBzdGQ6OnBhaXI8VCwgVT4mIHBhaXIpCiAgICAgewogICAgICAgICBlbmNvZGVyIDw8
IHBhaXIuZmlyc3QgPDwgcGFpci5zZWNvbmQ7CiAgICAgfQpAQCAtMTI4LDcgKzEyOCw3IEBAIHRl
bXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFU+IHN0cnVjdCBBcmd1bWVudENvZGVyPHN0ZDo6
cGFpcjxULCBVPj4gewogfTsKIAogdGVtcGxhdGU8dHlwZW5hbWUgUmVwLCB0eXBlbmFtZSBQZXJp
b2Q+IHN0cnVjdCBBcmd1bWVudENvZGVyPHN0ZDo6Y2hyb25vOjpkdXJhdGlvbjxSZXAsIFBlcmlv
ZD4+IHsKLSAgICBzdGF0aWMgdm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBj
b25zdCBzdGQ6OmNocm9ubzo6ZHVyYXRpb248UmVwLCBQZXJpb2Q+JiBkdXJhdGlvbikKKyAgICBz
dGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3Qgc3RkOjpjaHJvbm86OmR1
cmF0aW9uPFJlcCwgUGVyaW9kPiYgZHVyYXRpb24pCiAgICAgewogICAgICAgICBzdGF0aWNfYXNz
ZXJ0KHN0ZDo6aXNfaW50ZWdyYWw8UmVwPjo6dmFsdWUgJiYgc3RkOjppc19zaWduZWQ8UmVwPjo6
dmFsdWUgJiYgc2l6ZW9mKFJlcCkgPD0gc2l6ZW9mKGludDY0X3QpLCAiU2VyaWFsaXphdGlvbiBv
ZiB0aGlzIFJlcCB0eXBlIGlzIG5vdCBzdXBwb3J0ZWQgeWV0LiBPbmx5IHNpZ25lZCBpbnRlZ2Vy
IHR5cGUgd2hpY2ggY2FuIGJlIGZpdCBpbiBhbiBpbnQ2NF90IGlzIGN1cnJlbnRseSBzdXBwb3J0
ZWQuIik7CiAgICAgICAgIGVuY29kZXIgPDwgc3RhdGljX2Nhc3Q8aW50NjRfdD4oZHVyYXRpb24u
Y291bnQoKSk7CkBAIC0xNDUsNyArMTQ1LDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgUmVwLCB0eXBl
bmFtZSBQZXJpb2Q+IHN0cnVjdCBBcmd1bWVudENvZGVyPHN0ZDo6Y2hyb25vOjpkdXJhdGkKIH07
CiAKIHRlbXBsYXRlPHR5cGVuYW1lIEtleVR5cGUsIHR5cGVuYW1lIFZhbHVlVHlwZT4gc3RydWN0
IEFyZ3VtZW50Q29kZXI8V1RGOjpLZXlWYWx1ZVBhaXI8S2V5VHlwZSwgVmFsdWVUeXBlPj4gewot
ICAgIHN0YXRpYyB2b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFdU
Rjo6S2V5VmFsdWVQYWlyPEtleVR5cGUsIFZhbHVlVHlwZT4mIHBhaXIpCisgICAgc3RhdGljIHZv
aWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFdURjo6S2V5VmFsdWVQYWlyPEtleVR5
cGUsIFZhbHVlVHlwZT4mIHBhaXIpCiAgICAgewogICAgICAgICBlbmNvZGVyIDw8IHBhaXIua2V5
IDw8IHBhaXIudmFsdWU7CiAgICAgfQpAQCAtMTY5LDcgKzE2OSw3IEBAIHRlbXBsYXRlPHR5cGVu
YW1lIEtleVR5cGUsIHR5cGVuYW1lIFZhbHVlVHlwZT4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V1RG
OjpLZXlWYWx1CiB0ZW1wbGF0ZTxib29sIGZpeGVkU2l6ZUVsZW1lbnRzLCB0eXBlbmFtZSBULCBz
aXplX3QgaW5saW5lQ2FwYWNpdHk+IHN0cnVjdCBWZWN0b3JBcmd1bWVudENvZGVyOwogCiB0ZW1w
bGF0ZTx0eXBlbmFtZSBULCBzaXplX3QgaW5saW5lQ2FwYWNpdHk+IHN0cnVjdCBWZWN0b3JBcmd1
bWVudENvZGVyPGZhbHNlLCBULCBpbmxpbmVDYXBhY2l0eT4gewotICAgIHN0YXRpYyB2b2lkIGVu
Y29kZShBcmd1bWVudEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFZlY3RvcjxULCBpbmxpbmVDYXBh
Y2l0eT4mIHZlY3RvcikKKyAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2Rlciwg
Y29uc3QgVmVjdG9yPFQsIGlubGluZUNhcGFjaXR5PiYgdmVjdG9yKQogICAgIHsKICAgICAgICAg
ZW5jb2RlciA8PCBzdGF0aWNfY2FzdDx1aW50NjRfdD4odmVjdG9yLnNpemUoKSk7CiAgICAgICAg
IGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgdmVjdG9yLnNpemUoKTsgKytpKQpAQCAtMTk4LDcgKzE5
OCw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHNpemVfdCBpbmxpbmVDYXBhY2l0eT4gc3RydWN0
IFZlY3RvckFyZ3VtZW50Q29kZXI8ZmFsc2UsIFQsCiB9OwogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBU
LCBzaXplX3QgaW5saW5lQ2FwYWNpdHk+IHN0cnVjdCBWZWN0b3JBcmd1bWVudENvZGVyPHRydWUs
IFQsIGlubGluZUNhcGFjaXR5PiB7Ci0gICAgc3RhdGljIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5j
b2RlciYgZW5jb2RlciwgY29uc3QgVmVjdG9yPFQsIGlubGluZUNhcGFjaXR5PiYgdmVjdG9yKQor
ICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBWZWN0b3I8VCwg
aW5saW5lQ2FwYWNpdHk+JiB2ZWN0b3IpCiAgICAgewogICAgICAgICBlbmNvZGVyIDw8IHN0YXRp
Y19jYXN0PHVpbnQ2NF90Pih2ZWN0b3Iuc2l6ZSgpKTsKICAgICAgICAgZW5jb2Rlci5lbmNvZGVG
aXhlZExlbmd0aERhdGEocmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50OF90Kj4odmVjdG9yLmRh
dGEoKSksIHZlY3Rvci5zaXplKCkgKiBzaXplb2YoVCksIGFsaWdub2YoVCkpOwpAQCAtMjMzLDcg
KzIzMyw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHNpemVfdCBpbmxpbmVDYXBhY2l0eT4gc3Ry
dWN0IEFyZ3VtZW50Q29kZXI8VmVjdG9yPFQsIGlubGluCiB0ZW1wbGF0ZTx0eXBlbmFtZSBLZXlB
cmcsIHR5cGVuYW1lIE1hcHBlZEFyZywgdHlwZW5hbWUgSGFzaEFyZywgdHlwZW5hbWUgS2V5VHJh
aXRzQXJnLCB0eXBlbmFtZSBNYXBwZWRUcmFpdHNBcmc+IHN0cnVjdCBBcmd1bWVudENvZGVyPEhh
c2hNYXA8S2V5QXJnLCBNYXBwZWRBcmcsIEhhc2hBcmcsIEtleVRyYWl0c0FyZywgTWFwcGVkVHJh
aXRzQXJnPj4gewogICAgIHR5cGVkZWYgSGFzaE1hcDxLZXlBcmcsIE1hcHBlZEFyZywgSGFzaEFy
ZywgS2V5VHJhaXRzQXJnLCBNYXBwZWRUcmFpdHNBcmc+IEhhc2hNYXBUeXBlOwogCi0gICAgc3Rh
dGljIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgY29uc3QgSGFzaE1hcFR5
cGUmIGhhc2hNYXApCisgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNv
bnN0IEhhc2hNYXBUeXBlJiBoYXNoTWFwKQogICAgIHsKICAgICAgICAgZW5jb2RlciA8PCBzdGF0
aWNfY2FzdDx1aW50NjRfdD4oaGFzaE1hcC5zaXplKCkpOwogICAgICAgICBmb3IgKHR5cGVuYW1l
IEhhc2hNYXBUeXBlOjpjb25zdF9pdGVyYXRvciBpdCA9IGhhc2hNYXAuYmVnaW4oKSwgZW5kID0g
aGFzaE1hcC5lbmQoKTsgaXQgIT0gZW5kOyArK2l0KQpAQCAtMjcwLDcgKzI3MCw3IEBAIHRlbXBs
YXRlPHR5cGVuYW1lIEtleUFyZywgdHlwZW5hbWUgTWFwcGVkQXJnLCB0eXBlbmFtZSBIYXNoQXJn
LCB0eXBlbmFtZSBLZXlUcmFpCiB0ZW1wbGF0ZTx0eXBlbmFtZSBLZXlBcmcsIHR5cGVuYW1lIEhh
c2hBcmcsIHR5cGVuYW1lIEtleVRyYWl0c0FyZz4gc3RydWN0IEFyZ3VtZW50Q29kZXI8SGFzaFNl
dDxLZXlBcmcsIEhhc2hBcmcsIEtleVRyYWl0c0FyZz4+IHsKICAgICB0eXBlZGVmIEhhc2hTZXQ8
S2V5QXJnLCBIYXNoQXJnLCBLZXlUcmFpdHNBcmc+IEhhc2hTZXRUeXBlOwogCi0gICAgc3RhdGlj
IHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgY29uc3QgSGFzaFNldFR5cGUm
IGhhc2hTZXQpCisgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0
IEhhc2hTZXRUeXBlJiBoYXNoU2V0KQogICAgIHsKICAgICAgICAgZW5jb2RlciA8PCBzdGF0aWNf
Y2FzdDx1aW50NjRfdD4oaGFzaFNldC5zaXplKCkpOwogICAgICAgICBmb3IgKHR5cGVuYW1lIEhh
c2hTZXRUeXBlOjpjb25zdF9pdGVyYXRvciBpdCA9IGhhc2hTZXQuYmVnaW4oKSwgZW5kID0gaGFz
aFNldC5lbmQoKTsgaXQgIT0gZW5kOyArK2l0KQpAQCAtMzA0LDcgKzMwNCw3IEBAIHRlbXBsYXRl
PHR5cGVuYW1lIEtleUFyZywgdHlwZW5hbWUgSGFzaEFyZywgdHlwZW5hbWUgS2V5VHJhaXRzQXJn
PiBzdHJ1Y3QgQXJndW1lCiB0ZW1wbGF0ZTx0eXBlbmFtZSBLZXlBcmcsIHR5cGVuYW1lIEhhc2hB
cmcsIHR5cGVuYW1lIEtleVRyYWl0c0FyZz4gc3RydWN0IEFyZ3VtZW50Q29kZXI8SGFzaENvdW50
ZWRTZXQ8S2V5QXJnLCBIYXNoQXJnLCBLZXlUcmFpdHNBcmc+PiB7CiAgICAgdHlwZWRlZiBIYXNo
Q291bnRlZFNldDxLZXlBcmcsIEhhc2hBcmcsIEtleVRyYWl0c0FyZz4gSGFzaENvdW50ZWRTZXRU
eXBlOwogICAgIAotICAgIHN0YXRpYyB2b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXImIGVuY29k
ZXIsIGNvbnN0IEhhc2hDb3VudGVkU2V0VHlwZSYgaGFzaENvdW50ZWRTZXQpCisgICAgc3RhdGlj
IHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IEhhc2hDb3VudGVkU2V0VHlwZSYg
aGFzaENvdW50ZWRTZXQpCiAgICAgewogICAgICAgICBlbmNvZGVyIDw8IHN0YXRpY19jYXN0PHVp
bnQ2NF90PihoYXNoQ291bnRlZFNldC5zaXplKCkpOwogICAgICAgICAKQEAgLTM0MywyOCArMzQz
LDI4IEBAIHRlbXBsYXRlPHR5cGVuYW1lIEtleUFyZywgdHlwZW5hbWUgSGFzaEFyZywgdHlwZW5h
bWUgS2V5VHJhaXRzQXJnPiBzdHJ1Y3QgQXJndW1lCiB9OwogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBB
cmd1bWVudENvZGVyPHN0ZDo6Y2hyb25vOjpzeXN0ZW1fY2xvY2s6OnRpbWVfcG9pbnQ+IHsKLSAg
ICBzdGF0aWMgdm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyJiwgY29uc3Qgc3RkOjpjaHJvbm86
OnN5c3RlbV9jbG9jazo6dGltZV9wb2ludCYpOworICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNv
ZGVyJiwgY29uc3Qgc3RkOjpjaHJvbm86OnN5c3RlbV9jbG9jazo6dGltZV9wb2ludCYpOwogICAg
IHN0YXRpYyBib29sIGRlY29kZShBcmd1bWVudERlY29kZXImLCBzdGQ6OmNocm9ubzo6c3lzdGVt
X2Nsb2NrOjp0aW1lX3BvaW50Jik7CiB9OwogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENv
ZGVyPEF0b21pY1N0cmluZz4gewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShBcmd1bWVudEVuY29k
ZXImLCBjb25zdCBBdG9taWNTdHJpbmcmKTsKKyAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2Rl
ciYsIGNvbnN0IEF0b21pY1N0cmluZyYpOwogICAgIHN0YXRpYyBib29sIGRlY29kZShBcmd1bWVu
dERlY29kZXImLCBBdG9taWNTdHJpbmcmKTsKIH07CiAKIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3Vt
ZW50Q29kZXI8Q1N0cmluZz4gewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShBcmd1bWVudEVuY29k
ZXImLCBjb25zdCBDU3RyaW5nJik7CisgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBj
b25zdCBDU3RyaW5nJik7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYs
IENTdHJpbmcmKTsKIH07CiAKIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8U3RyaW5n
PiB7Ci0gICAgc3RhdGljIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYsIGNvbnN0IFN0cmlu
ZyYpOworICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgU3RyaW5nJik7CiAg
ICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYsIFN0cmluZyYpOwogfTsKIAog
I2lmIEhBVkUoRFRSQUNFKQogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2Rlcjx1dWlkX3Q+
IHsKLSAgICBzdGF0aWMgdm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyJiwgY29uc3QgdXVpZF90
Jik7CisgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCB1dWlkX3QmKTsKICAg
ICBzdGF0aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiwgdXVpZF90Jik7CiB9OwogI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvQXJndW1lbnRFbmNv
ZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9Bcmd1bWVudEVuY29kZXIuY3Bw
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiODExMDJkMTkxZDYwOTU1NTRlOGFmMGY1
MDYzNjk0ZmQ2M2E2OTcyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9Bcmd1bWVudEVuY29kZXIuY3BwCisr
KyAvZGV2L251bGwKQEAgLTEsMTk4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
Ci0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
LSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29u
ZmlnLmgiCi0jaW5jbHVkZSAiQXJndW1lbnRFbmNvZGVyLmgiCi0KLSNpbmNsdWRlICJEYXRhUmVm
ZXJlbmNlLmgiCi0jaW5jbHVkZSA8YWxnb3JpdGhtPgotI2luY2x1ZGUgPHN0ZGlvLmg+Ci0KLSNp
ZiBPUyhEQVJXSU4pCi0jaW5jbHVkZSA8c3lzL21tYW4uaD4KLSNlbmRpZgotCi1uYW1lc3BhY2Ug
SVBDIHsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci1zdGF0aWMgaW5saW5lIGJvb2wgYWxsb2NC
dWZmZXIoVComIGJ1ZmZlciwgc2l6ZV90IHNpemUpCi17Ci0jaWYgT1MoREFSV0lOKQotICAgIGJ1
ZmZlciA9IHN0YXRpY19jYXN0PFQqPihtbWFwKDAsIHNpemUsIFBST1RfUkVBRCB8IFBST1RfV1JJ
VEUsIE1BUF9BTk9OIHwgTUFQX1BSSVZBVEUsIC0xLCAwKSk7Ci0gICAgcmV0dXJuIGJ1ZmZlciAh
PSBNQVBfRkFJTEVEOwotI2Vsc2UKLSAgICBidWZmZXIgPSBzdGF0aWNfY2FzdDxUKj4oZmFzdE1h
bGxvYyhzaXplKSk7Ci0gICAgcmV0dXJuICEhYnVmZmVyOwotI2VuZGlmCi19Ci0KLXN0YXRpYyBp
bmxpbmUgdm9pZCBmcmVlQnVmZmVyKHZvaWQqIGFkZHIsIHNpemVfdCBzaXplKQotewotI2lmIE9T
KERBUldJTikKLSAgICBtdW5tYXAoYWRkciwgc2l6ZSk7Ci0jZWxzZQotICAgIFVOVVNFRF9QQVJB
TShzaXplKTsKLSAgICBmYXN0RnJlZShhZGRyKTsKLSNlbmRpZgotfQotCi1Bcmd1bWVudEVuY29k
ZXI6OkFyZ3VtZW50RW5jb2RlcigpCi0gICAgOiBtX2J1ZmZlcihtX2lubGluZUJ1ZmZlcikKLSAg
ICAsIG1fYnVmZmVyUG9pbnRlcihtX2lubGluZUJ1ZmZlcikKLSAgICAsIG1fYnVmZmVyU2l6ZSgw
KQotICAgICwgbV9idWZmZXJDYXBhY2l0eShzaXplb2YobV9pbmxpbmVCdWZmZXIpKQotewotfQot
Ci1Bcmd1bWVudEVuY29kZXI6On5Bcmd1bWVudEVuY29kZXIoKQotewotICAgIGlmIChtX2J1ZmZl
ciAhPSBtX2lubGluZUJ1ZmZlcikKLSAgICAgICAgZnJlZUJ1ZmZlcihtX2J1ZmZlciwgbV9idWZm
ZXJDYXBhY2l0eSk7Ci0gICAgLy8gRklYTUU6IFdlIG5lZWQgdG8gZGlzcG9zZSBvZiB0aGUgYXR0
YWNobWVudHMgaW4gY2FzZXMgb2YgZmFpbHVyZS4KLX0KLQotc3RhdGljIGlubGluZSBzaXplX3Qg
cm91bmRVcFRvQWxpZ25tZW50KHNpemVfdCB2YWx1ZSwgdW5zaWduZWQgYWxpZ25tZW50KQotewot
ICAgIHJldHVybiAoKHZhbHVlICsgYWxpZ25tZW50IC0gMSkgLyBhbGlnbm1lbnQpICogYWxpZ25t
ZW50OwotfQotCi12b2lkIEFyZ3VtZW50RW5jb2Rlcjo6cmVzZXJ2ZShzaXplX3Qgc2l6ZSkKLXsK
LSAgICBpZiAoc2l6ZSA8PSBtX2J1ZmZlckNhcGFjaXR5KQotICAgICAgICByZXR1cm47Ci0KLSAg
ICBzaXplX3QgbmV3Q2FwYWNpdHkgPSByb3VuZFVwVG9BbGlnbm1lbnQobV9idWZmZXJDYXBhY2l0
eSAqIDIsIDQwOTYpOwotICAgIHdoaWxlIChuZXdDYXBhY2l0eSA8IHNpemUpCi0gICAgICAgIG5l
d0NhcGFjaXR5ICo9IDI7Ci0KLSAgICB1aW50OF90KiBuZXdCdWZmZXI7Ci0gICAgaWYgKCFhbGxv
Y0J1ZmZlcihuZXdCdWZmZXIsIG5ld0NhcGFjaXR5KSkKLSAgICAgICAgQ1JBU0goKTsKLQotICAg
IG1lbWNweShuZXdCdWZmZXIsIG1fYnVmZmVyLCBtX2J1ZmZlclNpemUpOwotCi0gICAgaWYgKG1f
YnVmZmVyICE9IG1faW5saW5lQnVmZmVyKQotICAgICAgICBmcmVlQnVmZmVyKG1fYnVmZmVyLCBt
X2J1ZmZlckNhcGFjaXR5KTsKLQotICAgIG1fYnVmZmVyID0gbmV3QnVmZmVyOwotICAgIG1fYnVm
ZmVyQ2FwYWNpdHkgPSBuZXdDYXBhY2l0eTsKLX0KLQotdWludDhfdCogQXJndW1lbnRFbmNvZGVy
Ojpncm93KHVuc2lnbmVkIGFsaWdubWVudCwgc2l6ZV90IHNpemUpCi17Ci0gICAgc2l6ZV90IGFs
aWduZWRTaXplID0gcm91bmRVcFRvQWxpZ25tZW50KG1fYnVmZmVyU2l6ZSwgYWxpZ25tZW50KTsK
LSAgICByZXNlcnZlKGFsaWduZWRTaXplICsgc2l6ZSk7Ci0KLSAgICBtX2J1ZmZlclNpemUgPSBh
bGlnbmVkU2l6ZSArIHNpemU7Ci0gICAgbV9idWZmZXJQb2ludGVyID0gbV9idWZmZXIgKyBhbGln
bmVkU2l6ZSArIHNpemU7Ci0gICAgCi0gICAgcmV0dXJuIG1fYnVmZmVyICsgYWxpZ25lZFNpemU7
Ci19Ci0KLXZvaWQgQXJndW1lbnRFbmNvZGVyOjplbmNvZGVGaXhlZExlbmd0aERhdGEoY29uc3Qg
dWludDhfdCogZGF0YSwgc2l6ZV90IHNpemUsIHVuc2lnbmVkIGFsaWdubWVudCkKLXsKLSAgICBB
U1NFUlQoIShyZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4oZGF0YSkgJSBhbGlnbm1lbnQpKTsK
LQotICAgIHVpbnQ4X3QqIGJ1ZmZlciA9IGdyb3coYWxpZ25tZW50LCBzaXplKTsKLSAgICBtZW1j
cHkoYnVmZmVyLCBkYXRhLCBzaXplKTsKLX0KLQotdm9pZCBBcmd1bWVudEVuY29kZXI6OmVuY29k
ZVZhcmlhYmxlTGVuZ3RoQnl0ZUFycmF5KGNvbnN0IERhdGFSZWZlcmVuY2UmIGRhdGFSZWZlcmVu
Y2UpCi17Ci0gICAgZW5jb2RlKHN0YXRpY19jYXN0PHVpbnQ2NF90PihkYXRhUmVmZXJlbmNlLnNp
emUoKSkpOwotICAgIGVuY29kZUZpeGVkTGVuZ3RoRGF0YShkYXRhUmVmZXJlbmNlLmRhdGEoKSwg
ZGF0YVJlZmVyZW5jZS5zaXplKCksIDEpOwotfQotCi10ZW1wbGF0ZTx0eXBlbmFtZSBUeXBlPgot
c3RhdGljIHZvaWQgY29weVZhbHVlVG9CdWZmZXIoVHlwZSB2YWx1ZSwgdWludDhfdCogYnVmZmVy
UG9zaXRpb24pCi17Ci0gICAgbWVtY3B5KGJ1ZmZlclBvc2l0aW9uLCAmdmFsdWUsIHNpemVvZihU
eXBlKSk7Ci19Ci0KLXZvaWQgQXJndW1lbnRFbmNvZGVyOjplbmNvZGUoYm9vbCBuKQotewotICAg
IHVpbnQ4X3QqIGJ1ZmZlciA9IGdyb3coc2l6ZW9mKG4pLCBzaXplb2YobikpOwotICAgIGNvcHlW
YWx1ZVRvQnVmZmVyKG4sIGJ1ZmZlcik7Ci19Ci0KLXZvaWQgQXJndW1lbnRFbmNvZGVyOjplbmNv
ZGUodWludDhfdCBuKQotewotICAgIHVpbnQ4X3QqIGJ1ZmZlciA9IGdyb3coc2l6ZW9mKG4pLCBz
aXplb2YobikpOwotICAgIGNvcHlWYWx1ZVRvQnVmZmVyKG4sIGJ1ZmZlcik7Ci19Ci0KLXZvaWQg
QXJndW1lbnRFbmNvZGVyOjplbmNvZGUodWludDE2X3QgbikKLXsKLSAgICB1aW50OF90KiBidWZm
ZXIgPSBncm93KHNpemVvZihuKSwgc2l6ZW9mKG4pKTsKLSAgICBjb3B5VmFsdWVUb0J1ZmZlcihu
LCBidWZmZXIpOwotfQotCi12b2lkIEFyZ3VtZW50RW5jb2Rlcjo6ZW5jb2RlKHVpbnQzMl90IG4p
Ci17Ci0gICAgdWludDhfdCogYnVmZmVyID0gZ3JvdyhzaXplb2YobiksIHNpemVvZihuKSk7Ci0g
ICAgY29weVZhbHVlVG9CdWZmZXIobiwgYnVmZmVyKTsKLX0KLQotdm9pZCBBcmd1bWVudEVuY29k
ZXI6OmVuY29kZSh1aW50NjRfdCBuKQotewotICAgIHVpbnQ4X3QqIGJ1ZmZlciA9IGdyb3coc2l6
ZW9mKG4pLCBzaXplb2YobikpOwotICAgIGNvcHlWYWx1ZVRvQnVmZmVyKG4sIGJ1ZmZlcik7Ci19
Ci0KLXZvaWQgQXJndW1lbnRFbmNvZGVyOjplbmNvZGUoaW50MzJfdCBuKQotewotICAgIHVpbnQ4
X3QqIGJ1ZmZlciA9IGdyb3coc2l6ZW9mKG4pLCBzaXplb2YobikpOwotICAgIGNvcHlWYWx1ZVRv
QnVmZmVyKG4sIGJ1ZmZlcik7Ci19Ci0KLXZvaWQgQXJndW1lbnRFbmNvZGVyOjplbmNvZGUoaW50
NjRfdCBuKQotewotICAgIHVpbnQ4X3QqIGJ1ZmZlciA9IGdyb3coc2l6ZW9mKG4pLCBzaXplb2Yo
bikpOwotICAgIGNvcHlWYWx1ZVRvQnVmZmVyKG4sIGJ1ZmZlcik7Ci19Ci0KLXZvaWQgQXJndW1l
bnRFbmNvZGVyOjplbmNvZGUoZmxvYXQgbikKLXsKLSAgICB1aW50OF90KiBidWZmZXIgPSBncm93
KHNpemVvZihuKSwgc2l6ZW9mKG4pKTsKLSAgICBjb3B5VmFsdWVUb0J1ZmZlcihuLCBidWZmZXIp
OwotfQotCi12b2lkIEFyZ3VtZW50RW5jb2Rlcjo6ZW5jb2RlKGRvdWJsZSBuKQotewotICAgIHVp
bnQ4X3QqIGJ1ZmZlciA9IGdyb3coc2l6ZW9mKG4pLCBzaXplb2YobikpOwotICAgIGNvcHlWYWx1
ZVRvQnVmZmVyKG4sIGJ1ZmZlcik7Ci19Ci0KLXZvaWQgQXJndW1lbnRFbmNvZGVyOjphZGRBdHRh
Y2htZW50KEF0dGFjaG1lbnQmJiBhdHRhY2htZW50KQotewotICAgIG1fYXR0YWNobWVudHMuYXBw
ZW5kKFdURk1vdmUoYXR0YWNobWVudCkpOwotfQotCi1WZWN0b3I8QXR0YWNobWVudD4gQXJndW1l
bnRFbmNvZGVyOjpyZWxlYXNlQXR0YWNobWVudHMoKQotewotICAgIHJldHVybiBXVEZNb3ZlKG1f
YXR0YWNobWVudHMpOwotfQotCi19IC8vIG5hbWVzcGFjZSBJUEMKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9Bcmd1bWVudEVuY29kZXIuaCBiL1NvdXJjZS9XZWJLaXQy
L1BsYXRmb3JtL0lQQy9Bcmd1bWVudEVuY29kZXIuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMjExYzE5NWE0MzdhZmRlOWFmYTFlYmNiOGRjZTI2YmMxMGJmZGQ2MS4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0
Zm9ybS9JUEMvQXJndW1lbnRFbmNvZGVyLmgKKysrIC9kZXYvbnVsbApAQCAtMSw5OCArMCwwIEBA
Ci0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCi0gKi8KLQotI2lmbmRlZiBBcmd1bWVudEVuY29kZXJfaAotI2RlZmluZSBBcmd1bWVu
dEVuY29kZXJfaAotCi0jaW5jbHVkZSAiQXJndW1lbnRDb2Rlci5oIgotI2luY2x1ZGUgIkF0dGFj
aG1lbnQuaCIKLSNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+Ci0KLW5hbWVzcGFjZSBJUEMgewotCi1j
bGFzcyBBcmd1bWVudEVuY29kZXI7Ci1jbGFzcyBEYXRhUmVmZXJlbmNlOwotCi1jbGFzcyBBcmd1
bWVudEVuY29kZXIgewotICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwotcHVibGljOgotICAg
IEFyZ3VtZW50RW5jb2RlcigpOwotICAgIHZpcnR1YWwgfkFyZ3VtZW50RW5jb2RlcigpOwotCi0g
ICAgdm9pZCBlbmNvZGVGaXhlZExlbmd0aERhdGEoY29uc3QgdWludDhfdCosIHNpemVfdCwgdW5z
aWduZWQgYWxpZ25tZW50KTsKLSAgICB2b2lkIGVuY29kZVZhcmlhYmxlTGVuZ3RoQnl0ZUFycmF5
KGNvbnN0IERhdGFSZWZlcmVuY2UmKTsKLQotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHZvaWQg
ZW5jb2RlRW51bShUIHQpCi0gICAgewotICAgICAgICBDT01QSUxFX0FTU0VSVChzaXplb2YoVCkg
PD0gc2l6ZW9mKHVpbnQ2NF90KSwgZW51bV90eXBlX211c3Rfbm90X2JlX2xhcmdlcl90aGFuXzY0
X2JpdHMpOwotCi0gICAgICAgIGVuY29kZShzdGF0aWNfY2FzdDx1aW50NjRfdD4odCkpOwotICAg
IH0KLQotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHZvaWQgZW5jb2RlKFQmJiB0KQotICAgIHsK
LSAgICAgICAgQXJndW1lbnRDb2Rlcjx0eXBlbmFtZSBzdGQ6OnJlbW92ZV9jb25zdDx0eXBlbmFt
ZSBzdGQ6OnJlbW92ZV9yZWZlcmVuY2U8VD46OnR5cGU+Ojp0eXBlPjo6ZW5jb2RlKCp0aGlzLCBz
dGQ6OmZvcndhcmQ8VD4odCkpOwotICAgIH0KLQotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IEFy
Z3VtZW50RW5jb2RlciYgb3BlcmF0b3I8PChUJiYgdCkKLSAgICB7Ci0gICAgICAgIGVuY29kZShz
dGQ6OmZvcndhcmQ8VD4odCkpOwotICAgICAgICByZXR1cm4gKnRoaXM7Ci0gICAgfQotCi0gICAg
dWludDhfdCogYnVmZmVyKCkgY29uc3QgeyByZXR1cm4gbV9idWZmZXI7IH0KLSAgICBzaXplX3Qg
YnVmZmVyU2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fYnVmZmVyU2l6ZTsgfQotCi0gICAgdm9pZCBh
ZGRBdHRhY2htZW50KEF0dGFjaG1lbnQmJik7Ci0gICAgVmVjdG9yPEF0dGFjaG1lbnQ+IHJlbGVh
c2VBdHRhY2htZW50cygpOwotICAgIHZvaWQgcmVzZXJ2ZShzaXplX3QpOwotCi1wcml2YXRlOgot
ICAgIHZvaWQgZW5jb2RlKGJvb2wpOwotICAgIHZvaWQgZW5jb2RlKHVpbnQ4X3QpOwotICAgIHZv
aWQgZW5jb2RlKHVpbnQxNl90KTsKLSAgICB2b2lkIGVuY29kZSh1aW50MzJfdCk7Ci0gICAgdm9p
ZCBlbmNvZGUodWludDY0X3QpOwotICAgIHZvaWQgZW5jb2RlKGludDMyX3QpOwotICAgIHZvaWQg
ZW5jb2RlKGludDY0X3QpOwotICAgIHZvaWQgZW5jb2RlKGZsb2F0KTsKLSAgICB2b2lkIGVuY29k
ZShkb3VibGUpOwotCi0gICAgdWludDhfdCogZ3Jvdyh1bnNpZ25lZCBhbGlnbm1lbnQsIHNpemVf
dCBzaXplKTsKLQotICAgIHVpbnQ4X3QgbV9pbmxpbmVCdWZmZXJbNTEyXTsKLQotICAgIHVpbnQ4
X3QqIG1fYnVmZmVyOwotICAgIHVpbnQ4X3QqIG1fYnVmZmVyUG9pbnRlcjsKLSAgICAKLSAgICBz
aXplX3QgbV9idWZmZXJTaXplOwotICAgIHNpemVfdCBtX2J1ZmZlckNhcGFjaXR5OwotCi0gICAg
VmVjdG9yPEF0dGFjaG1lbnQ+IG1fYXR0YWNobWVudHM7Ci19OwotCi19IC8vIG5hbWVzcGFjZSBJ
UEMKLQotI2VuZGlmIC8vIEFyZ3VtZW50RW5jb2Rlcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9QbGF0Zm9ybS9JUEMvQXJndW1lbnRzLmggYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9J
UEMvQXJndW1lbnRzLmgKaW5kZXggZDdiZjIxNzc0MDM5YWIzOWMwZTBlZTQ3OWM5NzRlZDJiZjYx
NjA1Zi4uZTIwZWZjY2RlNjc2MmU5ZDdmMjgwOGRjNjFkNjQ5NmJiZjFkZDYxZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL0FyZ3VtZW50cy5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1BsYXRmb3JtL0lQQy9Bcmd1bWVudHMuaApAQCAtMjcsMTMgKzI3LDEzIEBACiAjZGVm
aW5lIEFyZ3VtZW50c19oCiAKICNpbmNsdWRlICJBcmd1bWVudERlY29kZXIuaCIKLSNpbmNsdWRl
ICJBcmd1bWVudEVuY29kZXIuaCIKKyNpbmNsdWRlICJFbmNvZGVyLmgiCiAKIG5hbWVzcGFjZSBJ
UEMgewogCiB0ZW1wbGF0ZTxzaXplX3QgaW5kZXgsIHR5cGVuYW1lLi4uIEVsZW1lbnRzPgogc3Ry
dWN0IFR1cGxlQ29kZXIgewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXIm
IGVuY29kZXIsIGNvbnN0IHN0ZDo6dHVwbGU8RWxlbWVudHMuLi4+JiB0dXBsZSkKKyAgICBzdGF0
aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3Qgc3RkOjp0dXBsZTxFbGVtZW50
cy4uLj4mIHR1cGxlKQogICAgIHsKICAgICAgICAgZW5jb2RlciA8PCBzdGQ6OmdldDxzaXplb2Yu
Li4oRWxlbWVudHMpIC0gaW5kZXg+KHR1cGxlKTsKICAgICAgICAgVHVwbGVDb2RlcjxpbmRleCAt
IDEsIEVsZW1lbnRzLi4uPjo6ZW5jb2RlKGVuY29kZXIsIHR1cGxlKTsKQEAgLTQ5LDcgKzQ5LDcg
QEAgc3RydWN0IFR1cGxlQ29kZXIgewogCiB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBFbGVtZW50cz4K
IHN0cnVjdCBUdXBsZUNvZGVyPDAsIEVsZW1lbnRzLi4uPiB7Ci0gICAgc3RhdGljIHZvaWQgZW5j
b2RlKEFyZ3VtZW50RW5jb2RlciYsIGNvbnN0IHN0ZDo6dHVwbGU8RWxlbWVudHMuLi4+JikKKyAg
ICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IHN0ZDo6dHVwbGU8RWxlbWVudHMu
Li4+JikKICAgICB7CiAgICAgfQogCkBAIC02MCw3ICs2MCw3IEBAIHN0cnVjdCBUdXBsZUNvZGVy
PDAsIEVsZW1lbnRzLi4uPiB7CiB9OwogCiB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBFbGVtZW50cz4g
c3RydWN0IEFyZ3VtZW50Q29kZXI8c3RkOjp0dXBsZTxFbGVtZW50cy4uLj4+IHsKLSAgICBzdGF0
aWMgdm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBzdGQ6OnR1cGxl
PEVsZW1lbnRzLi4uPiYgdHVwbGUpCisgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImIGVu
Y29kZXIsIGNvbnN0IHN0ZDo6dHVwbGU8RWxlbWVudHMuLi4+JiB0dXBsZSkKICAgICB7CiAgICAg
ICAgIFR1cGxlQ29kZXI8c2l6ZW9mLi4uKEVsZW1lbnRzKSwgRWxlbWVudHMuLi4+OjplbmNvZGUo
ZW5jb2RlciwgdHVwbGUpOwogICAgIH0KQEAgLTgwLDcgKzgwLDcgQEAgc3RydWN0IEFyZ3VtZW50
cyB7CiAgICAgewogICAgIH0KIAotICAgIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYgZW5j
b2RlcikgY29uc3QKKyAgICB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAg
IHsKICAgICAgICAgQXJndW1lbnRDb2RlcjxzdGQ6OnR1cGxlPFR5cGVzLi4uPj46OmVuY29kZShl
bmNvZGVyLCBhcmd1bWVudHMpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1Bs
YXRmb3JtL0lQQy9BdHRhY2htZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9B
dHRhY2htZW50LmNwcAppbmRleCA1OTAzM2RlMzg5ZjUyMGNiMGNiYzc4ODEzYWJmNmIyZGI4Mzll
MDQzLi5jNjJmZDlmZmMyYTlkZWU4NjllZWRhMWQwNThjMDZkNjA3NjgwMDUwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvQXR0YWNobWVudC5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvUGxhdGZvcm0vSVBDL0F0dGFjaG1lbnQuY3BwCkBAIC0yNyw3ICsyNyw3IEBACiAj
aW5jbHVkZSAiQXR0YWNobWVudC5oIgogCiAjaW5jbHVkZSAiQXJndW1lbnREZWNvZGVyLmgiCi0j
aW5jbHVkZSAiQXJndW1lbnRFbmNvZGVyLmgiCisjaW5jbHVkZSAiRW5jb2Rlci5oIgogCiBuYW1l
c3BhY2UgSVBDIHsKIApAQCAtNTAsNyArNTAsNyBAQCB2b2lkIEF0dGFjaG1lbnQ6OnJlbGVhc2Uo
KQogfQogI2VuZGlmCiAKLXZvaWQgQXR0YWNobWVudDo6ZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYg
ZW5jb2RlcikgY29uc3QKK3ZvaWQgQXR0YWNobWVudDo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIp
IGNvbnN0CiB7CiAgICAgZW5jb2Rlci5hZGRBdHRhY2htZW50KFdURk1vdmUoKmNvbnN0X2Nhc3Q8
QXR0YWNobWVudCo+KHRoaXMpKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0
Zm9ybS9JUEMvQXR0YWNobWVudC5oIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL0F0dGFj
aG1lbnQuaAppbmRleCAxMGU2NmMyOThjNzhkZDc5Y2YyNTczZDU4NDEwMmQ4YzcwNzkyZThlLi42
ZDA2ZGFmODg4MjA1NDY3YjJhNGRhMjgwOWJkMmMwMWQ2MGQ1Y2Y1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvQXR0YWNobWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1BsYXRmb3JtL0lQQy9BdHRhY2htZW50LmgKQEAgLTM0LDcgKzM0LDcgQEAKIG5hbWVzcGFjZSBJ
UEMgewogCiBjbGFzcyBBcmd1bWVudERlY29kZXI7Ci1jbGFzcyBBcmd1bWVudEVuY29kZXI7Citj
bGFzcyBFbmNvZGVyOwogCiBjbGFzcyBBdHRhY2htZW50IHsKIHB1YmxpYzoKQEAgLTc1LDcgKzc1
LDcgQEAgcHVibGljOgogICAgIG1hY2hfbXNnX3R5cGVfbmFtZV90IGRpc3Bvc2l0aW9uKCkgY29u
c3QgeyByZXR1cm4gbV9kaXNwb3NpdGlvbjsgfQogI2VuZGlmCiAKLSAgICB2b2lkIGVuY29kZShB
cmd1bWVudEVuY29kZXImKSBjb25zdDsKKyAgICB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7
CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYsIEF0dGFjaG1lbnQmKTsK
ICAgICAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMv
Q29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvQ29ubmVjdGlvbi5j
cHAKaW5kZXggNTU4ZmE5NTdjY2ZhZDI3YWQ2MTMzMzdjMmExMDNiOTg4MDA0MThiMC4uYWVmMjYw
ZTU2NWE3MjIwNTkxY2U4MGNkNjg2NmUxZTVhZmYzNzllMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1Bs
YXRmb3JtL0lQQy9Db25uZWN0aW9uLmNwcApAQCAtMjg0LDkgKzI4NCw5IEBAIHZvaWQgQ29ubmVj
dGlvbjo6ZGlzcGF0Y2hXb3JrUXVldWVNZXNzYWdlUmVjZWl2ZXJNZXNzYWdlKFdvcmtRdWV1ZU1l
c3NhZ2VSZWNlaXZlCiAgICAgfQogCiAjaWYgSEFWRShEVFJBQ0UpCi0gICAgYXV0byByZXBseUVu
Y29kZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPE1lc3NhZ2VFbmNvZGVyPigiSVBDIiwgIlN5bmNNZXNz
YWdlUmVwbHkiLCBzeW5jUmVxdWVzdElELCBkZWNvZGVyLlVVSUQoKSk7CisgICAgYXV0byByZXBs
eUVuY29kZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPEVuY29kZXI+KCJJUEMiLCAiU3luY01lc3NhZ2VS
ZXBseSIsIHN5bmNSZXF1ZXN0SUQsIGRlY29kZXIuVVVJRCgpKTsKICNlbHNlCi0gICAgYXV0byBy
ZXBseUVuY29kZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPE1lc3NhZ2VFbmNvZGVyPigiSVBDIiwgIlN5
bmNNZXNzYWdlUmVwbHkiLCBzeW5jUmVxdWVzdElEKTsKKyAgICBhdXRvIHJlcGx5RW5jb2RlciA9
IHN0ZDo6bWFrZV91bmlxdWU8RW5jb2Rlcj4oIklQQyIsICJTeW5jTWVzc2FnZVJlcGx5Iiwgc3lu
Y1JlcXVlc3RJRCk7CiAjZW5kaWYKIAogICAgIC8vIEhhbmQgb2ZmIGJvdGggdGhlIGRlY29kZXIg
YW5kIGVuY29kZXIgdG8gdGhlIHdvcmsgcXVldWUgbWVzc2FnZSByZWNlaXZlci4KQEAgLTMyOCw5
ICszMjgsOSBAQCB2b2lkIENvbm5lY3Rpb246Om1hcmtDdXJyZW50bHlEaXNwYXRjaGVkTWVzc2Fn
ZUFzSW52YWxpZCgpCiAgICAgbV9kaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UgPSB0cnVlOwogfQog
Ci1zdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZUVuY29kZXI+IENvbm5lY3Rpb246OmNyZWF0ZVN5bmNN
ZXNzYWdlRW5jb2RlcihTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFtZSwgU3RyaW5n
UmVmZXJlbmNlIG1lc3NhZ2VOYW1lLCB1aW50NjRfdCBkZXN0aW5hdGlvbklELCB1aW50NjRfdCYg
c3luY1JlcXVlc3RJRCkKK3N0ZDo6dW5pcXVlX3B0cjxFbmNvZGVyPiBDb25uZWN0aW9uOjpjcmVh
dGVTeW5jTWVzc2FnZUVuY29kZXIoU3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VSZWNlaXZlck5hbWUs
IFN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlTmFtZSwgdWludDY0X3QgZGVzdGluYXRpb25JRCwgdWlu
dDY0X3QmIHN5bmNSZXF1ZXN0SUQpCiB7Ci0gICAgYXV0byBlbmNvZGVyID0gc3RkOjptYWtlX3Vu
aXF1ZTxNZXNzYWdlRW5jb2Rlcj4obWVzc2FnZVJlY2VpdmVyTmFtZSwgbWVzc2FnZU5hbWUsIGRl
c3RpbmF0aW9uSUQpOworICAgIGF1dG8gZW5jb2RlciA9IHN0ZDo6bWFrZV91bmlxdWU8RW5jb2Rl
cj4obWVzc2FnZVJlY2VpdmVyTmFtZSwgbWVzc2FnZU5hbWUsIGRlc3RpbmF0aW9uSUQpOwogICAg
IGVuY29kZXItPnNldElzU3luY01lc3NhZ2UodHJ1ZSk7CiAKICAgICAvLyBFbmNvZGUgdGhlIHN5
bmMgcmVxdWVzdCBJRC4KQEAgLTM0MCw3ICszNDAsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8TWVzc2Fn
ZUVuY29kZXI+IENvbm5lY3Rpb246OmNyZWF0ZVN5bmNNZXNzYWdlRW5jb2RlcihTdHJpbmdSZWZl
cgogICAgIHJldHVybiBlbmNvZGVyOwogfQogCi1ib29sIENvbm5lY3Rpb246OnNlbmRNZXNzYWdl
KHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlRW5jb2Rlcj4gZW5jb2RlciwgdW5zaWduZWQgbWVzc2Fn
ZVNlbmRGbGFncywgYm9vbCBhbHJlYWR5UmVjb3JkZWRNZXNzYWdlKQorYm9vbCBDb25uZWN0aW9u
OjpzZW5kTWVzc2FnZShzdGQ6OnVuaXF1ZV9wdHI8RW5jb2Rlcj4gZW5jb2RlciwgdW5zaWduZWQg
bWVzc2FnZVNlbmRGbGFncywgYm9vbCBhbHJlYWR5UmVjb3JkZWRNZXNzYWdlKQogewogICAgIGlm
ICghaXNWYWxpZCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0zNzgsNyArMzc4LDcgQEAg
Ym9vbCBDb25uZWN0aW9uOjpzZW5kTWVzc2FnZShzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZUVuY29k
ZXI+IGVuY29kZXIsIHVuc2lnbmVkIG0KICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBDb25u
ZWN0aW9uOjpzZW5kU3luY1JlcGx5KHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlRW5jb2Rlcj4gZW5j
b2RlcikKK2Jvb2wgQ29ubmVjdGlvbjo6c2VuZFN5bmNSZXBseShzdGQ6OnVuaXF1ZV9wdHI8RW5j
b2Rlcj4gZW5jb2RlcikKIHsKICAgICByZXR1cm4gc2VuZE1lc3NhZ2UoV1RGTW92ZShlbmNvZGVy
KSk7CiB9CkBAIC00NTksNyArNDU5LDcgQEAgc3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VEZWNvZGVy
PiBDb25uZWN0aW9uOjp3YWl0Rm9yTWVzc2FnZShTdHJpbmdSZWZlcmVuY2UgbWVzc2EKICAgICBy
ZXR1cm4gbnVsbHB0cjsKIH0KIAotc3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VEZWNvZGVyPiBDb25u
ZWN0aW9uOjpzZW5kU3luY01lc3NhZ2UodWludDY0X3Qgc3luY1JlcXVlc3RJRCwgc3RkOjp1bmlx
dWVfcHRyPE1lc3NhZ2VFbmNvZGVyPiBlbmNvZGVyLCBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRz
IHRpbWVvdXQsIHVuc2lnbmVkIHN5bmNTZW5kRmxhZ3MpCitzdGQ6OnVuaXF1ZV9wdHI8TWVzc2Fn
ZURlY29kZXI+IENvbm5lY3Rpb246OnNlbmRTeW5jTWVzc2FnZSh1aW50NjRfdCBzeW5jUmVxdWVz
dElELCBzdGQ6OnVuaXF1ZV9wdHI8RW5jb2Rlcj4gZW5jb2Rlciwgc3RkOjpjaHJvbm86Om1pbGxp
c2Vjb25kcyB0aW1lb3V0LCB1bnNpZ25lZCBzeW5jU2VuZEZsYWdzKQogewogICAgIGlmICghUnVu
TG9vcDo6aXNNYWluKCkpIHsKICAgICAgICAgLy8gTm8gZmxhZ3MgYXJlIHN1cHBvcnRlZCBmb3Ig
c3luY2hyb25vdXMgbWVzc2FnZXMgc2VudCBmcm9tIHNlY29uZGFyeSB0aHJlYWRzLgpAQCAtNTEy
LDcgKzUxMiw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlRGVjb2Rlcj4gQ29ubmVjdGlvbjo6
c2VuZFN5bmNNZXNzYWdlKHVpbnQ2NF90IHN5bmNSZXF1ZXN0CiAgICAgcmV0dXJuIHJlcGx5Owog
fQogCi1zdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZURlY29kZXI+IENvbm5lY3Rpb246OnNlbmRTeW5j
TWVzc2FnZUZyb21TZWNvbmRhcnlUaHJlYWQodWludDY0X3Qgc3luY1JlcXVlc3RJRCwgc3RkOjp1
bmlxdWVfcHRyPE1lc3NhZ2VFbmNvZGVyPiBlbmNvZGVyLCBzdGQ6OmNocm9ubzo6bWlsbGlzZWNv
bmRzIHRpbWVvdXQpCitzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZURlY29kZXI+IENvbm5lY3Rpb246
OnNlbmRTeW5jTWVzc2FnZUZyb21TZWNvbmRhcnlUaHJlYWQodWludDY0X3Qgc3luY1JlcXVlc3RJ
RCwgc3RkOjp1bmlxdWVfcHRyPEVuY29kZXI+IGVuY29kZXIsIHN0ZDo6Y2hyb25vOjptaWxsaXNl
Y29uZHMgdGltZW91dCkKIHsKICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKIApAQCAt
ODA2LDcgKzgwNiw3IEBAIHZvaWQgQ29ubmVjdGlvbjo6c2VuZE91dGdvaW5nTWVzc2FnZXMoKQog
ICAgICAgICByZXR1cm47CiAKICAgICB3aGlsZSAodHJ1ZSkgewotICAgICAgICBzdGQ6OnVuaXF1
ZV9wdHI8TWVzc2FnZUVuY29kZXI+IG1lc3NhZ2U7CisgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxF
bmNvZGVyPiBtZXNzYWdlOwogCiAgICAgICAgIHsKICAgICAgICAgICAgIHN0ZDo6bG9ja19ndWFy
ZDxMb2NrPiBsb2NrKG1fb3V0Z29pbmdNZXNzYWdlc011dGV4KTsKQEAgLTgzMiw5ICs4MzIsOSBA
QCB2b2lkIENvbm5lY3Rpb246OmRpc3BhdGNoU3luY01lc3NhZ2UoTWVzc2FnZURlY29kZXImIGRl
Y29kZXIpCiAgICAgfQogCiAjaWYgSEFWRShEVFJBQ0UpCi0gICAgYXV0byByZXBseUVuY29kZXIg
PSBzdGQ6Om1ha2VfdW5pcXVlPE1lc3NhZ2VFbmNvZGVyPigiSVBDIiwgIlN5bmNNZXNzYWdlUmVw
bHkiLCBzeW5jUmVxdWVzdElELCBkZWNvZGVyLlVVSUQoKSk7CisgICAgYXV0byByZXBseUVuY29k
ZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPEVuY29kZXI+KCJJUEMiLCAiU3luY01lc3NhZ2VSZXBseSIs
IHN5bmNSZXF1ZXN0SUQsIGRlY29kZXIuVVVJRCgpKTsKICNlbHNlCi0gICAgYXV0byByZXBseUVu
Y29kZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPE1lc3NhZ2VFbmNvZGVyPigiSVBDIiwgIlN5bmNNZXNz
YWdlUmVwbHkiLCBzeW5jUmVxdWVzdElEKTsKKyAgICBhdXRvIHJlcGx5RW5jb2RlciA9IHN0ZDo6
bWFrZV91bmlxdWU8RW5jb2Rlcj4oIklQQyIsICJTeW5jTWVzc2FnZVJlcGx5Iiwgc3luY1JlcXVl
c3RJRCk7CiAjZW5kaWYKIAogICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9
PSAiSVBDIiAmJiBkZWNvZGVyLm1lc3NhZ2VOYW1lKCkgPT0gIldyYXBwZWRBc3luY01lc3NhZ2VG
b3JUZXN0aW5nIikgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL0Nv
bm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmgKaW5k
ZXggOTNmYzY0YWFlNmM5NDgxMzhkZWNjMmY0MTZhMWM1YjYxNjcwY2JkOC4uOTEzNTFiY2UyNmNh
ZDEwYjM0MmIxNDIwOTZjN2MzZjBmYWVkZTMwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
UGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9J
UEMvQ29ubmVjdGlvbi5oCkBAIC0yNSwxMiArMjUsMTEgQEAKICAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KICAqLwogCi0jaWZuZGVmIENvbm5lY3Rpb25faAotI2RlZmluZSBDb25u
ZWN0aW9uX2gKKyNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiQXJndW1lbnRzLmgiCisjaW5jbHVk
ZSAiRW5jb2Rlci5oIgogI2luY2x1ZGUgIk1lc3NhZ2VEZWNvZGVyLmgiCi0jaW5jbHVkZSAiTWVz
c2FnZUVuY29kZXIuaCIKICNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKICNpbmNsdWRlICJQ
cm9jZXNzVHlwZS5oIgogI2luY2x1ZGUgPGF0b21pYz4KQEAgLTE3MywxMSArMTcyLDExIEBAIHB1
YmxpYzoKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBib29sIHNlbmRTeW5jKFQmJiBtZXNzYWdl
LCB0eXBlbmFtZSBUOjpSZXBseSYmIHJlcGx5LCB1aW50NjRfdCBkZXN0aW5hdGlvbklELCBzdGQ6
OmNocm9ubzo6bWlsbGlzZWNvbmRzIHRpbWVvdXQgPSBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRz
OjptYXgoKSwgdW5zaWduZWQgc3luY1NlbmRGbGFncyA9IDApOwogICAgIHRlbXBsYXRlPHR5cGVu
YW1lIFQ+IGJvb2wgd2FpdEZvckFuZERpc3BhdGNoSW1tZWRpYXRlbHkodWludDY0X3QgZGVzdGlu
YXRpb25JRCwgc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyB0aW1lb3V0LCB1bnNpZ25lZCB3YWl0
Rm9yTWVzc2FnZUZsYWdzID0gMCk7CiAKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZUVuY29k
ZXI+IGNyZWF0ZVN5bmNNZXNzYWdlRW5jb2RlcihTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2Vp
dmVyTmFtZSwgU3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VOYW1lLCB1aW50NjRfdCBkZXN0aW5hdGlv
bklELCB1aW50NjRfdCYgc3luY1JlcXVlc3RJRCk7Ci0gICAgYm9vbCBzZW5kTWVzc2FnZShzdGQ6
OnVuaXF1ZV9wdHI8TWVzc2FnZUVuY29kZXI+LCB1bnNpZ25lZCBtZXNzYWdlU2VuZEZsYWdzID0g
MCwgYm9vbCBhbHJlYWR5UmVjb3JkZWRNZXNzYWdlID0gZmFsc2UpOwotICAgIHN0ZDo6dW5pcXVl
X3B0cjxNZXNzYWdlRGVjb2Rlcj4gc2VuZFN5bmNNZXNzYWdlKHVpbnQ2NF90IHN5bmNSZXF1ZXN0
SUQsIHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlRW5jb2Rlcj4sIHN0ZDo6Y2hyb25vOjptaWxsaXNl
Y29uZHMgdGltZW91dCwgdW5zaWduZWQgc3luY1NlbmRGbGFncyA9IDApOwotICAgIHN0ZDo6dW5p
cXVlX3B0cjxNZXNzYWdlRGVjb2Rlcj4gc2VuZFN5bmNNZXNzYWdlRnJvbVNlY29uZGFyeVRocmVh
ZCh1aW50NjRfdCBzeW5jUmVxdWVzdElELCBzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZUVuY29kZXI+
LCBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIHRpbWVvdXQpOwotICAgIGJvb2wgc2VuZFN5bmNS
ZXBseShzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZUVuY29kZXI+KTsKKyAgICBzdGQ6OnVuaXF1ZV9w
dHI8RW5jb2Rlcj4gY3JlYXRlU3luY01lc3NhZ2VFbmNvZGVyKFN0cmluZ1JlZmVyZW5jZSBtZXNz
YWdlUmVjZWl2ZXJOYW1lLCBTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZU5hbWUsIHVpbnQ2NF90IGRl
c3RpbmF0aW9uSUQsIHVpbnQ2NF90JiBzeW5jUmVxdWVzdElEKTsKKyAgICBib29sIHNlbmRNZXNz
YWdlKHN0ZDo6dW5pcXVlX3B0cjxFbmNvZGVyPiwgdW5zaWduZWQgbWVzc2FnZVNlbmRGbGFncyA9
IDAsIGJvb2wgYWxyZWFkeVJlY29yZGVkTWVzc2FnZSA9IGZhbHNlKTsKKyAgICBzdGQ6OnVuaXF1
ZV9wdHI8TWVzc2FnZURlY29kZXI+IHNlbmRTeW5jTWVzc2FnZSh1aW50NjRfdCBzeW5jUmVxdWVz
dElELCBzdGQ6OnVuaXF1ZV9wdHI8RW5jb2Rlcj4sIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMg
dGltZW91dCwgdW5zaWduZWQgc3luY1NlbmRGbGFncyA9IDApOworICAgIHN0ZDo6dW5pcXVlX3B0
cjxNZXNzYWdlRGVjb2Rlcj4gc2VuZFN5bmNNZXNzYWdlRnJvbVNlY29uZGFyeVRocmVhZCh1aW50
NjRfdCBzeW5jUmVxdWVzdElELCBzdGQ6OnVuaXF1ZV9wdHI8RW5jb2Rlcj4sIHN0ZDo6Y2hyb25v
OjptaWxsaXNlY29uZHMgdGltZW91dCk7CisgICAgYm9vbCBzZW5kU3luY1JlcGx5KHN0ZDo6dW5p
cXVlX3B0cjxFbmNvZGVyPik7CiAKICAgICB2b2lkIHdha2VVcFJ1bkxvb3AoKTsKIApAQCAtMjI1
LDcgKzIyNCw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBjYW5TZW5kT3V0Z29pbmdNZXNzYWdlcygp
IGNvbnN0OwogICAgIGJvb2wgcGxhdGZvcm1DYW5TZW5kT3V0Z29pbmdNZXNzYWdlcygpIGNvbnN0
OwogICAgIHZvaWQgc2VuZE91dGdvaW5nTWVzc2FnZXMoKTsKLSAgICBib29sIHNlbmRPdXRnb2lu
Z01lc3NhZ2Uoc3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VFbmNvZGVyPik7CisgICAgYm9vbCBzZW5k
T3V0Z29pbmdNZXNzYWdlKHN0ZDo6dW5pcXVlX3B0cjxFbmNvZGVyPik7CiAgICAgdm9pZCBjb25u
ZWN0aW9uRGlkQ2xvc2UoKTsKICAgICAKICAgICAvLyBDYWxsZWQgb24gdGhlIGxpc3RlbmVyIHRo
cmVhZC4KQEAgLTI3MSw3ICsyNzAsNyBAQCBwcml2YXRlOgogCiAgICAgLy8gT3V0Z29pbmcgbWVz
c2FnZXMuCiAgICAgTG9jayBtX291dGdvaW5nTWVzc2FnZXNNdXRleDsKLSAgICBEZXF1ZTxzdGQ6
OnVuaXF1ZV9wdHI8TWVzc2FnZUVuY29kZXI+PiBtX291dGdvaW5nTWVzc2FnZXM7CisgICAgRGVx
dWU8c3RkOjp1bmlxdWVfcHRyPEVuY29kZXI+PiBtX291dGdvaW5nTWVzc2FnZXM7CiAgICAgCiAg
ICAgQ29uZGl0aW9uIG1fd2FpdEZvck1lc3NhZ2VDb25kaXRpb247CiAgICAgTG9jayBtX3dhaXRG
b3JNZXNzYWdlTXV0ZXg7CkBAIC0zNjMsNyArMzYyLDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVD4g
Ym9vbCBDb25uZWN0aW9uOjpzZW5kKFQmJiBtZXNzYWdlLCB1aW50NjRfdCBkZXN0aW5hdGlvbklE
LAogewogICAgIENPTVBJTEVfQVNTRVJUKCFUOjppc1N5bmMsIEFzeW5jTWVzc2FnZUV4cGVjdGVk
KTsKIAotICAgIGF1dG8gZW5jb2RlciA9IHN0ZDo6bWFrZV91bmlxdWU8TWVzc2FnZUVuY29kZXI+
KFQ6OnJlY2VpdmVyTmFtZSgpLCBUOjpuYW1lKCksIGRlc3RpbmF0aW9uSUQpOworICAgIGF1dG8g
ZW5jb2RlciA9IHN0ZDo6bWFrZV91bmlxdWU8RW5jb2Rlcj4oVDo6cmVjZWl2ZXJOYW1lKCksIFQ6
Om5hbWUoKSwgZGVzdGluYXRpb25JRCk7CiAgICAgZW5jb2Rlci0+ZW5jb2RlKG1lc3NhZ2UuYXJn
dW1lbnRzKCkpOwogICAgIAogICAgIHJldHVybiBzZW5kTWVzc2FnZShXVEZNb3ZlKGVuY29kZXIp
LCBtZXNzYWdlU2VuZEZsYWdzKTsKQEAgLTM3NCw3ICszNzMsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFt
ZSBUPiBib29sIENvbm5lY3Rpb246OnNlbmRTeW5jKFQmJiBtZXNzYWdlLCB0eXBlbmFtZSBUOjpS
ZXBseSYmCiAgICAgQ09NUElMRV9BU1NFUlQoVDo6aXNTeW5jLCBTeW5jTWVzc2FnZUV4cGVjdGVk
KTsKIAogICAgIHVpbnQ2NF90IHN5bmNSZXF1ZXN0SUQgPSAwOwotICAgIHN0ZDo6dW5pcXVlX3B0
cjxNZXNzYWdlRW5jb2Rlcj4gZW5jb2RlciA9IGNyZWF0ZVN5bmNNZXNzYWdlRW5jb2RlcihUOjpy
ZWNlaXZlck5hbWUoKSwgVDo6bmFtZSgpLCBkZXN0aW5hdGlvbklELCBzeW5jUmVxdWVzdElEKTsK
KyAgICBzdGQ6OnVuaXF1ZV9wdHI8RW5jb2Rlcj4gZW5jb2RlciA9IGNyZWF0ZVN5bmNNZXNzYWdl
RW5jb2RlcihUOjpyZWNlaXZlck5hbWUoKSwgVDo6bmFtZSgpLCBkZXN0aW5hdGlvbklELCBzeW5j
UmVxdWVzdElEKTsKIAogICAgIGlmIChzeW5jU2VuZEZsYWdzICYgU3luY01lc3NhZ2VTZW5kRmxh
Z3M6OlVzZUZ1bGx5U3luY2hyb25vdXNNb2RlRm9yVGVzdGluZykgewogICAgICAgICBlbmNvZGVy
LT5zZXRGdWxseVN5bmNocm9ub3VzTW9kZUZvclRlc3RpbmcoKTsKQEAgLTQwNSw1ICs0MDQsMyBA
QCB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBib29sIENvbm5lY3Rpb246OndhaXRGb3JBbmREaXNwYXRj
aEltbWVkaWF0ZWx5KHVpbnQ2NF90IGRlcwogfQogCiB9IC8vIG5hbWVzcGFjZSBJUEMKLQotI2Vu
ZGlmIC8vIENvbm5lY3Rpb25faApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0v
SVBDL0RhdGFSZWZlcmVuY2UuY3BwIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL0RhdGFS
ZWZlcmVuY2UuY3BwCmluZGV4IGNhNjFmYTZiMzMwY2VkZTQxNDZjMGUxNjAzNWJlZmZjMDk4YzA3
MjAuLmVmNmMxZGQ0YjU2YWZhZDkyYTAyZjkzOTdhZmY5NGQ1NjVmNzBmM2UgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9EYXRhUmVmZXJlbmNlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvRGF0YVJlZmVyZW5jZS5jcHAKQEAgLTI3LDExICsyNywx
MSBAQAogI2luY2x1ZGUgIkRhdGFSZWZlcmVuY2UuaCIKIAogI2luY2x1ZGUgIkFyZ3VtZW50RGVj
b2Rlci5oIgotI2luY2x1ZGUgIkFyZ3VtZW50RW5jb2Rlci5oIgorI2luY2x1ZGUgIkVuY29kZXIu
aCIKIAogbmFtZXNwYWNlIElQQyB7CiAKLXZvaWQgRGF0YVJlZmVyZW5jZTo6ZW5jb2RlKEFyZ3Vt
ZW50RW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3ZvaWQgRGF0YVJlZmVyZW5jZTo6ZW5jb2RlKEVu
Y29kZXImIGVuY29kZXIpIGNvbnN0CiB7CiAgICAgZW5jb2Rlci5lbmNvZGVWYXJpYWJsZUxlbmd0
aEJ5dGVBcnJheSgqdGhpcyk7CiB9CkBAIC00MSw3ICs0MSw3IEBAIGJvb2wgRGF0YVJlZmVyZW5j
ZTo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgRGF0YVJlZmVyZW5jZSYgZGF0YVJl
ZmVyZW5jCiAgICAgcmV0dXJuIGRlY29kZXIuZGVjb2RlVmFyaWFibGVMZW5ndGhCeXRlQXJyYXko
ZGF0YVJlZmVyZW5jZSk7CiB9CiAKLXZvaWQgU2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZTo6ZW5j
b2RlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3ZvaWQgU2hhcmVkQnVmZmVyRGF0
YVJlZmVyZW5jZTo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB7CiAgICAgdWludDY0
X3QgYnVmZmVyU2l6ZSA9IHN0YXRpY19jYXN0PHVpbnQ2NF90PihtX2J1ZmZlci0+c2l6ZSgpKTsK
ICAgICBlbmNvZGVyLnJlc2VydmUoYnVmZmVyU2l6ZSArIHNpemVvZih1aW50NjRfdCkpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL0RhdGFSZWZlcmVuY2UuaCBiL1Nv
dXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9EYXRhUmVmZXJlbmNlLmgKaW5kZXggMmJmMjg5ZTdl
YjE3ZWY2NzhiZmMxYmZmYTM1YjBkNTViZDYxNWM2OC4uYzIyZTY0ZjU2YmRhZDE2NjkwMWRiMmUw
ODNjMTJlZWUyOWM1OWNiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBD
L0RhdGFSZWZlcmVuY2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvRGF0YVJl
ZmVyZW5jZS5oCkBAIC0zMiw3ICszMiw3IEBACiBuYW1lc3BhY2UgSVBDIHsKIAogY2xhc3MgQXJn
dW1lbnREZWNvZGVyOwotY2xhc3MgQXJndW1lbnRFbmNvZGVyOworY2xhc3MgRW5jb2RlcjsKICAg
ICAKIGNsYXNzIERhdGFSZWZlcmVuY2UgewogcHVibGljOgpAQCAtNzMsNyArNzMsNyBAQCBwdWJs
aWM6CiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQogCi0gICAgdmlydHVhbCB2b2lkIGVu
Y29kZShBcmd1bWVudEVuY29kZXImKSBjb25zdDsKKyAgICB2aXJ0dWFsIHZvaWQgZW5jb2RlKEVu
Y29kZXImKSBjb25zdDsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiwg
RGF0YVJlZmVyZW5jZSYpOwogCiAgICAgdmlydHVhbCB+RGF0YVJlZmVyZW5jZSgpIHsgfQpAQCAt
MTAyLDcgKzEwMiw3IEBAIHByaXZhdGU6CiAgICAgY29uc3QgdWludDhfdCogZGF0YSgpIGNvbnN0
ID0gZGVsZXRlOwogICAgIFZlY3Rvcjx1aW50OF90PiB2ZWN0b3IoKSBjb25zdCA9IGRlbGV0ZTsK
IAotICAgIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYpIGNvbnN0IG92ZXJyaWRlOworICAg
IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdCBvdmVycmlkZTsKIAogICAgIFJlZlB0cjxXZWJD
b3JlOjpTaGFyZWRCdWZmZXI+IG1fYnVmZmVyOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1BsYXRmb3JtL0lQQy9FbmNvZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQ
Qy9FbmNvZGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41N2U5YTVkZmFhMWMxMGU5ZjdkYTE0NzQzOWVmMWE1
ZDU5NDc0M2M0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBD
L0VuY29kZXIuY3BwCkBAIC0wLDAgKzEsMjY0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEw
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIkVuY29kZXIuaCIKKworI2luY2x1ZGUgIkRhdGFSZWZlcmVuY2Uu
aCIKKyNpbmNsdWRlICJNZXNzYWdlRmxhZ3MuaCIKKyNpbmNsdWRlIDxhbGdvcml0aG0+CisjaW5j
bHVkZSA8c3RkaW8uaD4KKworI2lmIE9TKERBUldJTikKKyNpbmNsdWRlIDxzeXMvbW1hbi5oPgor
I2VuZGlmCisKK25hbWVzcGFjZSBJUEMgeworCitzdGF0aWMgY29uc3QgdWludDhfdCBkZWZhdWx0
TWVzc2FnZUZsYWdzID0gMDsKKwordGVtcGxhdGUgPHR5cGVuYW1lIFQ+CitzdGF0aWMgaW5saW5l
IGJvb2wgYWxsb2NCdWZmZXIoVComIGJ1ZmZlciwgc2l6ZV90IHNpemUpCit7CisjaWYgT1MoREFS
V0lOKQorICAgIGJ1ZmZlciA9IHN0YXRpY19jYXN0PFQqPihtbWFwKDAsIHNpemUsIFBST1RfUkVB
RCB8IFBST1RfV1JJVEUsIE1BUF9BTk9OIHwgTUFQX1BSSVZBVEUsIC0xLCAwKSk7CisgICAgcmV0
dXJuIGJ1ZmZlciAhPSBNQVBfRkFJTEVEOworI2Vsc2UKKyAgICBidWZmZXIgPSBzdGF0aWNfY2Fz
dDxUKj4oZmFzdE1hbGxvYyhzaXplKSk7CisgICAgcmV0dXJuICEhYnVmZmVyOworI2VuZGlmCit9
CisKK3N0YXRpYyBpbmxpbmUgdm9pZCBmcmVlQnVmZmVyKHZvaWQqIGFkZHIsIHNpemVfdCBzaXpl
KQoreworI2lmIE9TKERBUldJTikKKyAgICBtdW5tYXAoYWRkciwgc2l6ZSk7CisjZWxzZQorICAg
IFVOVVNFRF9QQVJBTShzaXplKTsKKyAgICBmYXN0RnJlZShhZGRyKTsKKyNlbmRpZgorfQorCitF
bmNvZGVyOjpFbmNvZGVyKFN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlUmVjZWl2ZXJOYW1lLCBTdHJp
bmdSZWZlcmVuY2UgbWVzc2FnZU5hbWUsIHVpbnQ2NF90IGRlc3RpbmF0aW9uSUQpCisgICAgOiBt
X21lc3NhZ2VSZWNlaXZlck5hbWUobWVzc2FnZVJlY2VpdmVyTmFtZSkKKyAgICAsIG1fbWVzc2Fn
ZU5hbWUobWVzc2FnZU5hbWUpCisgICAgLCBtX2Rlc3RpbmF0aW9uSUQoZGVzdGluYXRpb25JRCkK
KyAgICAsIG1fYnVmZmVyKG1faW5saW5lQnVmZmVyKQorICAgICwgbV9idWZmZXJQb2ludGVyKG1f
aW5saW5lQnVmZmVyKQorICAgICwgbV9idWZmZXJTaXplKDApCisgICAgLCBtX2J1ZmZlckNhcGFj
aXR5KHNpemVvZihtX2lubGluZUJ1ZmZlcikpCit7CisgICAgZW5jb2RlSGVhZGVyKCk7Cit9CisK
K0VuY29kZXI6On5FbmNvZGVyKCkKK3sKKyAgICBpZiAobV9idWZmZXIgIT0gbV9pbmxpbmVCdWZm
ZXIpCisgICAgICAgIGZyZWVCdWZmZXIobV9idWZmZXIsIG1fYnVmZmVyQ2FwYWNpdHkpOworICAg
IC8vIEZJWE1FOiBXZSBuZWVkIHRvIGRpc3Bvc2Ugb2YgdGhlIGF0dGFjaG1lbnRzIGluIGNhc2Vz
IG9mIGZhaWx1cmUuCit9CisKK2Jvb2wgRW5jb2Rlcjo6aXNTeW5jTWVzc2FnZSgpIGNvbnN0Cit7
CisgICAgcmV0dXJuICpidWZmZXIoKSAmIFN5bmNNZXNzYWdlOworfQorCitib29sIEVuY29kZXI6
OnNob3VsZERpc3BhdGNoTWVzc2FnZVdoZW5XYWl0aW5nRm9yU3luY1JlcGx5KCkgY29uc3QKK3sK
KyAgICByZXR1cm4gKmJ1ZmZlcigpICYgRGlzcGF0Y2hNZXNzYWdlV2hlbldhaXRpbmdGb3JTeW5j
UmVwbHk7Cit9CisKK3ZvaWQgRW5jb2Rlcjo6c2V0SXNTeW5jTWVzc2FnZShib29sIGlzU3luY01l
c3NhZ2UpCit7CisgICAgaWYgKGlzU3luY01lc3NhZ2UpCisgICAgICAgICpidWZmZXIoKSB8PSBT
eW5jTWVzc2FnZTsKKyAgICBlbHNlCisgICAgICAgICpidWZmZXIoKSAmPSB+U3luY01lc3NhZ2U7
Cit9CisKK3ZvaWQgRW5jb2Rlcjo6c2V0U2hvdWxkRGlzcGF0Y2hNZXNzYWdlV2hlbldhaXRpbmdG
b3JTeW5jUmVwbHkoYm9vbCBzaG91bGREaXNwYXRjaE1lc3NhZ2VXaGVuV2FpdGluZ0ZvclN5bmNS
ZXBseSkKK3sKKyAgICBpZiAoc2hvdWxkRGlzcGF0Y2hNZXNzYWdlV2hlbldhaXRpbmdGb3JTeW5j
UmVwbHkpCisgICAgICAgICpidWZmZXIoKSB8PSBEaXNwYXRjaE1lc3NhZ2VXaGVuV2FpdGluZ0Zv
clN5bmNSZXBseTsKKyAgICBlbHNlCisgICAgICAgICpidWZmZXIoKSAmPSB+RGlzcGF0Y2hNZXNz
YWdlV2hlbldhaXRpbmdGb3JTeW5jUmVwbHk7Cit9CisKK3ZvaWQgRW5jb2Rlcjo6c2V0RnVsbHlT
eW5jaHJvbm91c01vZGVGb3JUZXN0aW5nKCkKK3sKKyAgICAqYnVmZmVyKCkgfD0gVXNlRnVsbHlT
eW5jaHJvbm91c01vZGVGb3JUZXN0aW5nOworfQorCit2b2lkIEVuY29kZXI6OndyYXBGb3JUZXN0
aW5nKHN0ZDo6dW5pcXVlX3B0cjxFbmNvZGVyPiBvcmlnaW5hbCkKK3sKKyAgICBBU1NFUlQoaXNT
eW5jTWVzc2FnZSgpKTsKKyAgICBBU1NFUlQoIW9yaWdpbmFsLT5pc1N5bmNNZXNzYWdlKCkpOwor
CisgICAgb3JpZ2luYWwtPnNldFNob3VsZERpc3BhdGNoTWVzc2FnZVdoZW5XYWl0aW5nRm9yU3lu
Y1JlcGx5KHRydWUpOworCisgICAgZW5jb2RlVmFyaWFibGVMZW5ndGhCeXRlQXJyYXkoRGF0YVJl
ZmVyZW5jZShvcmlnaW5hbC0+YnVmZmVyKCksIG9yaWdpbmFsLT5idWZmZXJTaXplKCkpKTsKKwor
ICAgIFZlY3RvcjxBdHRhY2htZW50PiBhdHRhY2htZW50cyA9IG9yaWdpbmFsLT5yZWxlYXNlQXR0
YWNobWVudHMoKTsKKyAgICByZXNlcnZlKGF0dGFjaG1lbnRzLnNpemUoKSk7CisgICAgZm9yIChB
dHRhY2htZW50JiBhdHRhY2htZW50IDogYXR0YWNobWVudHMpCisgICAgICAgIGFkZEF0dGFjaG1l
bnQoV1RGTW92ZShhdHRhY2htZW50KSk7Cit9CisKK3N0YXRpYyBpbmxpbmUgc2l6ZV90IHJvdW5k
VXBUb0FsaWdubWVudChzaXplX3QgdmFsdWUsIHVuc2lnbmVkIGFsaWdubWVudCkKK3sKKyAgICBy
ZXR1cm4gKCh2YWx1ZSArIGFsaWdubWVudCAtIDEpIC8gYWxpZ25tZW50KSAqIGFsaWdubWVudDsK
K30KKwordm9pZCBFbmNvZGVyOjpyZXNlcnZlKHNpemVfdCBzaXplKQoreworICAgIGlmIChzaXpl
IDw9IG1fYnVmZmVyQ2FwYWNpdHkpCisgICAgICAgIHJldHVybjsKKworICAgIHNpemVfdCBuZXdD
YXBhY2l0eSA9IHJvdW5kVXBUb0FsaWdubWVudChtX2J1ZmZlckNhcGFjaXR5ICogMiwgNDA5Nik7
CisgICAgd2hpbGUgKG5ld0NhcGFjaXR5IDwgc2l6ZSkKKyAgICAgICAgbmV3Q2FwYWNpdHkgKj0g
MjsKKworICAgIHVpbnQ4X3QqIG5ld0J1ZmZlcjsKKyAgICBpZiAoIWFsbG9jQnVmZmVyKG5ld0J1
ZmZlciwgbmV3Q2FwYWNpdHkpKQorICAgICAgICBDUkFTSCgpOworCisgICAgbWVtY3B5KG5ld0J1
ZmZlciwgbV9idWZmZXIsIG1fYnVmZmVyU2l6ZSk7CisKKyAgICBpZiAobV9idWZmZXIgIT0gbV9p
bmxpbmVCdWZmZXIpCisgICAgICAgIGZyZWVCdWZmZXIobV9idWZmZXIsIG1fYnVmZmVyQ2FwYWNp
dHkpOworCisgICAgbV9idWZmZXIgPSBuZXdCdWZmZXI7CisgICAgbV9idWZmZXJDYXBhY2l0eSA9
IG5ld0NhcGFjaXR5OworfQorCit2b2lkIEVuY29kZXI6OmVuY29kZUhlYWRlcigpCit7CisgICAg
QVNTRVJUKCFtX21lc3NhZ2VSZWNlaXZlck5hbWUuaXNFbXB0eSgpKTsKKworICAgICp0aGlzIDw8
IGRlZmF1bHRNZXNzYWdlRmxhZ3M7CisgICAgKnRoaXMgPDwgbV9tZXNzYWdlUmVjZWl2ZXJOYW1l
OworICAgICp0aGlzIDw8IG1fbWVzc2FnZU5hbWU7CisgICAgKnRoaXMgPDwgbV9kZXN0aW5hdGlv
bklEOworI2lmIEhBVkUoRFRSQUNFKQorICAgICp0aGlzIDw8IG1fVVVJRDsKKyNlbmRpZgorfQor
Cit1aW50OF90KiBFbmNvZGVyOjpncm93KHVuc2lnbmVkIGFsaWdubWVudCwgc2l6ZV90IHNpemUp
Cit7CisgICAgc2l6ZV90IGFsaWduZWRTaXplID0gcm91bmRVcFRvQWxpZ25tZW50KG1fYnVmZmVy
U2l6ZSwgYWxpZ25tZW50KTsKKyAgICByZXNlcnZlKGFsaWduZWRTaXplICsgc2l6ZSk7CisKKyAg
ICBtX2J1ZmZlclNpemUgPSBhbGlnbmVkU2l6ZSArIHNpemU7CisgICAgbV9idWZmZXJQb2ludGVy
ID0gbV9idWZmZXIgKyBhbGlnbmVkU2l6ZSArIHNpemU7CisgICAgCisgICAgcmV0dXJuIG1fYnVm
ZmVyICsgYWxpZ25lZFNpemU7Cit9CisKK3ZvaWQgRW5jb2Rlcjo6ZW5jb2RlRml4ZWRMZW5ndGhE
YXRhKGNvbnN0IHVpbnQ4X3QqIGRhdGEsIHNpemVfdCBzaXplLCB1bnNpZ25lZCBhbGlnbm1lbnQp
Cit7CisgICAgQVNTRVJUKCEocmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KGRhdGEpICUgYWxp
Z25tZW50KSk7CisKKyAgICB1aW50OF90KiBidWZmZXIgPSBncm93KGFsaWdubWVudCwgc2l6ZSk7
CisgICAgbWVtY3B5KGJ1ZmZlciwgZGF0YSwgc2l6ZSk7Cit9CisKK3ZvaWQgRW5jb2Rlcjo6ZW5j
b2RlVmFyaWFibGVMZW5ndGhCeXRlQXJyYXkoY29uc3QgRGF0YVJlZmVyZW5jZSYgZGF0YVJlZmVy
ZW5jZSkKK3sKKyAgICBlbmNvZGUoc3RhdGljX2Nhc3Q8dWludDY0X3Q+KGRhdGFSZWZlcmVuY2Uu
c2l6ZSgpKSk7CisgICAgZW5jb2RlRml4ZWRMZW5ndGhEYXRhKGRhdGFSZWZlcmVuY2UuZGF0YSgp
LCBkYXRhUmVmZXJlbmNlLnNpemUoKSwgMSk7Cit9CisKK3RlbXBsYXRlPHR5cGVuYW1lIFR5cGU+
CitzdGF0aWMgdm9pZCBjb3B5VmFsdWVUb0J1ZmZlcihUeXBlIHZhbHVlLCB1aW50OF90KiBidWZm
ZXJQb3NpdGlvbikKK3sKKyAgICBtZW1jcHkoYnVmZmVyUG9zaXRpb24sICZ2YWx1ZSwgc2l6ZW9m
KFR5cGUpKTsKK30KKwordm9pZCBFbmNvZGVyOjplbmNvZGUoYm9vbCBuKQoreworICAgIHVpbnQ4
X3QqIGJ1ZmZlciA9IGdyb3coc2l6ZW9mKG4pLCBzaXplb2YobikpOworICAgIGNvcHlWYWx1ZVRv
QnVmZmVyKG4sIGJ1ZmZlcik7Cit9CisKK3ZvaWQgRW5jb2Rlcjo6ZW5jb2RlKHVpbnQ4X3QgbikK
K3sKKyAgICB1aW50OF90KiBidWZmZXIgPSBncm93KHNpemVvZihuKSwgc2l6ZW9mKG4pKTsKKyAg
ICBjb3B5VmFsdWVUb0J1ZmZlcihuLCBidWZmZXIpOworfQorCit2b2lkIEVuY29kZXI6OmVuY29k
ZSh1aW50MTZfdCBuKQoreworICAgIHVpbnQ4X3QqIGJ1ZmZlciA9IGdyb3coc2l6ZW9mKG4pLCBz
aXplb2YobikpOworICAgIGNvcHlWYWx1ZVRvQnVmZmVyKG4sIGJ1ZmZlcik7Cit9CisKK3ZvaWQg
RW5jb2Rlcjo6ZW5jb2RlKHVpbnQzMl90IG4pCit7CisgICAgdWludDhfdCogYnVmZmVyID0gZ3Jv
dyhzaXplb2YobiksIHNpemVvZihuKSk7CisgICAgY29weVZhbHVlVG9CdWZmZXIobiwgYnVmZmVy
KTsKK30KKwordm9pZCBFbmNvZGVyOjplbmNvZGUodWludDY0X3QgbikKK3sKKyAgICB1aW50OF90
KiBidWZmZXIgPSBncm93KHNpemVvZihuKSwgc2l6ZW9mKG4pKTsKKyAgICBjb3B5VmFsdWVUb0J1
ZmZlcihuLCBidWZmZXIpOworfQorCit2b2lkIEVuY29kZXI6OmVuY29kZShpbnQzMl90IG4pCit7
CisgICAgdWludDhfdCogYnVmZmVyID0gZ3JvdyhzaXplb2YobiksIHNpemVvZihuKSk7CisgICAg
Y29weVZhbHVlVG9CdWZmZXIobiwgYnVmZmVyKTsKK30KKwordm9pZCBFbmNvZGVyOjplbmNvZGUo
aW50NjRfdCBuKQoreworICAgIHVpbnQ4X3QqIGJ1ZmZlciA9IGdyb3coc2l6ZW9mKG4pLCBzaXpl
b2YobikpOworICAgIGNvcHlWYWx1ZVRvQnVmZmVyKG4sIGJ1ZmZlcik7Cit9CisKK3ZvaWQgRW5j
b2Rlcjo6ZW5jb2RlKGZsb2F0IG4pCit7CisgICAgdWludDhfdCogYnVmZmVyID0gZ3JvdyhzaXpl
b2YobiksIHNpemVvZihuKSk7CisgICAgY29weVZhbHVlVG9CdWZmZXIobiwgYnVmZmVyKTsKK30K
Kwordm9pZCBFbmNvZGVyOjplbmNvZGUoZG91YmxlIG4pCit7CisgICAgdWludDhfdCogYnVmZmVy
ID0gZ3JvdyhzaXplb2YobiksIHNpemVvZihuKSk7CisgICAgY29weVZhbHVlVG9CdWZmZXIobiwg
YnVmZmVyKTsKK30KKwordm9pZCBFbmNvZGVyOjphZGRBdHRhY2htZW50KEF0dGFjaG1lbnQmJiBh
dHRhY2htZW50KQoreworICAgIG1fYXR0YWNobWVudHMuYXBwZW5kKFdURk1vdmUoYXR0YWNobWVu
dCkpOworfQorCitWZWN0b3I8QXR0YWNobWVudD4gRW5jb2Rlcjo6cmVsZWFzZUF0dGFjaG1lbnRz
KCkKK3sKKyAgICByZXR1cm4gV1RGTW92ZShtX2F0dGFjaG1lbnRzKTsKK30KKworfSAvLyBuYW1l
c3BhY2UgSVBDCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvRW5jb2Rl
ci5oIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL0VuY29kZXIuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4x
MmI4ZWI3NzZkMjFlZWM3MWVjYmVhYTYwMTJmMmQxNzE5YTFjM2JiCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL0VuY29kZXIuaApAQCAtMCwwICsxLDExNiBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiQXJndW1lbnRDb2Rlci5o
IgorI2luY2x1ZGUgIkF0dGFjaG1lbnQuaCIKKyNpbmNsdWRlICJTdHJpbmdSZWZlcmVuY2UuaCIK
KyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisKK25hbWVzcGFjZSBJUEMgeworCitjbGFzcyBFbmNv
ZGVyOworY2xhc3MgRGF0YVJlZmVyZW5jZTsKKworY2xhc3MgRW5jb2RlciBmaW5hbCB7CisgICAg
V1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgRW5jb2RlcihTdHJpbmdSZWZl
cmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFtZSwgU3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VOYW1lLCB1
aW50NjRfdCBkZXN0aW5hdGlvbklEKTsKKyAgICB+RW5jb2RlcigpOworCisgICAgU3RyaW5nUmVm
ZXJlbmNlIG1lc3NhZ2VSZWNlaXZlck5hbWUoKSBjb25zdCB7IHJldHVybiBtX21lc3NhZ2VSZWNl
aXZlck5hbWU7IH0KKyAgICBTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZU5hbWUoKSBjb25zdCB7IHJl
dHVybiBtX21lc3NhZ2VOYW1lOyB9CisgICAgdWludDY0X3QgZGVzdGluYXRpb25JRCgpIGNvbnN0
IHsgcmV0dXJuIG1fZGVzdGluYXRpb25JRDsgfQorCisgICAgdm9pZCBzZXRJc1N5bmNNZXNzYWdl
KGJvb2wpOworICAgIGJvb2wgaXNTeW5jTWVzc2FnZSgpIGNvbnN0OworCisgICAgdm9pZCBzZXRT
aG91bGREaXNwYXRjaE1lc3NhZ2VXaGVuV2FpdGluZ0ZvclN5bmNSZXBseShib29sKTsKKyAgICBi
b29sIHNob3VsZERpc3BhdGNoTWVzc2FnZVdoZW5XYWl0aW5nRm9yU3luY1JlcGx5KCkgY29uc3Q7
CisKKyAgICB2b2lkIHNldEZ1bGx5U3luY2hyb25vdXNNb2RlRm9yVGVzdGluZygpOworCisgICAg
dm9pZCB3cmFwRm9yVGVzdGluZyhzdGQ6OnVuaXF1ZV9wdHI8RW5jb2Rlcj4pOworCisgICAgdm9p
ZCBlbmNvZGVGaXhlZExlbmd0aERhdGEoY29uc3QgdWludDhfdCosIHNpemVfdCwgdW5zaWduZWQg
YWxpZ25tZW50KTsKKyAgICB2b2lkIGVuY29kZVZhcmlhYmxlTGVuZ3RoQnl0ZUFycmF5KGNvbnN0
IERhdGFSZWZlcmVuY2UmKTsKKworICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHZvaWQgZW5jb2Rl
RW51bShUIHQpCisgICAgeworICAgICAgICBDT01QSUxFX0FTU0VSVChzaXplb2YoVCkgPD0gc2l6
ZW9mKHVpbnQ2NF90KSwgZW51bV90eXBlX211c3Rfbm90X2JlX2xhcmdlcl90aGFuXzY0X2JpdHMp
OworCisgICAgICAgIGVuY29kZShzdGF0aWNfY2FzdDx1aW50NjRfdD4odCkpOworICAgIH0KKwor
ICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHZvaWQgZW5jb2RlKFQmJiB0KQorICAgIHsKKyAgICAg
ICAgQXJndW1lbnRDb2Rlcjx0eXBlbmFtZSBzdGQ6OnJlbW92ZV9jb25zdDx0eXBlbmFtZSBzdGQ6
OnJlbW92ZV9yZWZlcmVuY2U8VD46OnR5cGU+Ojp0eXBlPjo6ZW5jb2RlKCp0aGlzLCBzdGQ6OmZv
cndhcmQ8VD4odCkpOworICAgIH0KKworICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IEVuY29kZXIm
IG9wZXJhdG9yPDwoVCYmIHQpCisgICAgeworICAgICAgICBlbmNvZGUoc3RkOjpmb3J3YXJkPFQ+
KHQpKTsKKyAgICAgICAgcmV0dXJuICp0aGlzOworICAgIH0KKworICAgIHVpbnQ4X3QqIGJ1ZmZl
cigpIGNvbnN0IHsgcmV0dXJuIG1fYnVmZmVyOyB9CisgICAgc2l6ZV90IGJ1ZmZlclNpemUoKSBj
b25zdCB7IHJldHVybiBtX2J1ZmZlclNpemU7IH0KKworICAgIHZvaWQgYWRkQXR0YWNobWVudChB
dHRhY2htZW50JiYpOworICAgIFZlY3RvcjxBdHRhY2htZW50PiByZWxlYXNlQXR0YWNobWVudHMo
KTsKKyAgICB2b2lkIHJlc2VydmUoc2l6ZV90KTsKKworcHJpdmF0ZToKKyAgICB1aW50OF90KiBn
cm93KHVuc2lnbmVkIGFsaWdubWVudCwgc2l6ZV90KTsKKworICAgIHZvaWQgZW5jb2RlKGJvb2wp
OworICAgIHZvaWQgZW5jb2RlKHVpbnQ4X3QpOworICAgIHZvaWQgZW5jb2RlKHVpbnQxNl90KTsK
KyAgICB2b2lkIGVuY29kZSh1aW50MzJfdCk7CisgICAgdm9pZCBlbmNvZGUodWludDY0X3QpOwor
ICAgIHZvaWQgZW5jb2RlKGludDMyX3QpOworICAgIHZvaWQgZW5jb2RlKGludDY0X3QpOworICAg
IHZvaWQgZW5jb2RlKGZsb2F0KTsKKyAgICB2b2lkIGVuY29kZShkb3VibGUpOworCisgICAgdm9p
ZCBlbmNvZGVIZWFkZXIoKTsKKworICAgIFN0cmluZ1JlZmVyZW5jZSBtX21lc3NhZ2VSZWNlaXZl
ck5hbWU7CisgICAgU3RyaW5nUmVmZXJlbmNlIG1fbWVzc2FnZU5hbWU7CisgICAgdWludDY0X3Qg
bV9kZXN0aW5hdGlvbklEOworCisgICAgdWludDhfdCBtX2lubGluZUJ1ZmZlcls1MTJdOworCisg
ICAgdWludDhfdCogbV9idWZmZXI7CisgICAgdWludDhfdCogbV9idWZmZXJQb2ludGVyOworICAg
IAorICAgIHNpemVfdCBtX2J1ZmZlclNpemU7CisgICAgc2l6ZV90IG1fYnVmZmVyQ2FwYWNpdHk7
CisKKyAgICBWZWN0b3I8QXR0YWNobWVudD4gbV9hdHRhY2htZW50czsKK307CisKK30gLy8gbmFt
ZXNwYWNlIElQQwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL0hhbmRs
ZU1lc3NhZ2UuaCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9IYW5kbGVNZXNzYWdlLmgK
aW5kZXggYzA4YTNkYWE4NDhjY2RiZTg4ZTE1NzdiMjUzZjIyODA0NDJhMjEyYi4uY2M1MjZkYmEw
YjU2YjMxOThiN2ZkOWNmNTYyMmIzZDBkMjhkN2NkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvUGxhdGZvcm0vSVBDL0hhbmRsZU1lc3NhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0
Zm9ybS9JUEMvSGFuZGxlTWVzc2FnZS5oCkBAIC0yLDggKzIsOCBAQAogI2RlZmluZSBIYW5kbGVN
ZXNzYWdlX2gKIAogI2luY2x1ZGUgIkFyZ3VtZW50cy5oIgorI2luY2x1ZGUgIkVuY29kZXIuaCIK
ICNpbmNsdWRlICJNZXNzYWdlRGVjb2Rlci5oIgotI2luY2x1ZGUgIk1lc3NhZ2VFbmNvZGVyLmgi
CiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgogCiBuYW1lc3BhY2UgSVBDIHsKQEAgLTkz
LDcgKzkzLDcgQEAgdm9pZCBoYW5kbGVNZXNzYWdlKE1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyLCBD
KiBvYmplY3QsIE1GIGZ1bmN0aW9uKQogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFt
ZSBDLCB0eXBlbmFtZSBNRj4KLXZvaWQgaGFuZGxlTWVzc2FnZShNZXNzYWdlRGVjb2RlciYgZGVj
b2RlciwgTWVzc2FnZUVuY29kZXImIHJlcGx5RW5jb2RlciwgQyogb2JqZWN0LCBNRiBmdW5jdGlv
bikKK3ZvaWQgaGFuZGxlTWVzc2FnZShNZXNzYWdlRGVjb2RlciYgZGVjb2RlciwgRW5jb2RlciYg
cmVwbHlFbmNvZGVyLCBDKiBvYmplY3QsIE1GIGZ1bmN0aW9uKQogewogICAgIHR5cGVuYW1lIFQ6
OkRlY29kZVR5cGUgYXJndW1lbnRzOwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUoYXJndW1lbnRz
KSkgewpAQCAtMTA3LDcgKzEwNyw3IEBAIHZvaWQgaGFuZGxlTWVzc2FnZShNZXNzYWdlRGVjb2Rl
ciYgZGVjb2RlciwgTWVzc2FnZUVuY29kZXImIHJlcGx5RW5jb2RlciwgQyogb2JqCiB9CiAKIHRl
bXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIEMsIHR5cGVuYW1lIE1GPgotdm9pZCBoYW5kbGVN
ZXNzYWdlKENvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIE1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyLCBN
ZXNzYWdlRW5jb2RlciYgcmVwbHlFbmNvZGVyLCBDKiBvYmplY3QsIE1GIGZ1bmN0aW9uKQordm9p
ZCBoYW5kbGVNZXNzYWdlKENvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIE1lc3NhZ2VEZWNvZGVyJiBk
ZWNvZGVyLCBFbmNvZGVyJiByZXBseUVuY29kZXIsIEMqIG9iamVjdCwgTUYgZnVuY3Rpb24pCiB7
CiAgICAgdHlwZW5hbWUgVDo6RGVjb2RlVHlwZSBhcmd1bWVudHM7CiAgICAgaWYgKCFkZWNvZGVy
LmRlY29kZShhcmd1bWVudHMpKSB7CkBAIC0xMzIsNyArMTMyLDcgQEAgdm9pZCBoYW5kbGVNZXNz
YWdlKENvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIE1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyLCBDKiBv
YmplY3QsIE0KIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgQywgdHlwZW5hbWUg
TUY+Ci12b2lkIGhhbmRsZU1lc3NhZ2VEZWxheWVkKENvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIE1l
c3NhZ2VEZWNvZGVyJiBkZWNvZGVyLCBzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZUVuY29kZXI+JiBy
ZXBseUVuY29kZXIsIEMqIG9iamVjdCwgTUYgZnVuY3Rpb24pCit2b2lkIGhhbmRsZU1lc3NhZ2VE
ZWxheWVkKENvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIE1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyLCBz
dGQ6OnVuaXF1ZV9wdHI8RW5jb2Rlcj4mIHJlcGx5RW5jb2RlciwgQyogb2JqZWN0LCBNRiBmdW5j
dGlvbikKIHsKICAgICB0eXBlbmFtZSBUOjpEZWNvZGVUeXBlIGFyZ3VtZW50czsKICAgICBpZiAo
IWRlY29kZXIuZGVjb2RlKGFyZ3VtZW50cykpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1BsYXRmb3JtL0lQQy9NZXNzYWdlRW5jb2Rlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9y
bS9JUEMvTWVzc2FnZUVuY29kZXIuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2
MTQ0Yjc4ZDVkNjVkNDdkN2QzZmI5ODkxMWY0NTRlMTI5ZWE1NTdkLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQ
Qy9NZXNzYWdlRW5jb2Rlci5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwxMjQgKzAsMCBAQAotLyoK
LSAqIENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0g
KgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJNZXNzYWdlRW5jb2Rlci5o
IgotCi0jaW5jbHVkZSAiQXJndW1lbnRDb2RlcnMuaCIKLSNpbmNsdWRlICJEYXRhUmVmZXJlbmNl
LmgiCi0jaW5jbHVkZSAiTWVzc2FnZUZsYWdzLmgiCi0jaW5jbHVkZSAiTWVzc2FnZVJlY29yZGVy
LmgiCi0jaW5jbHVkZSAiU3RyaW5nUmVmZXJlbmNlLmgiCi0KLW5hbWVzcGFjZSBJUEMgewotCi1z
dGF0aWMgY29uc3QgdWludDhfdCBkZWZhdWx0TWVzc2FnZUZsYWdzID0gMDsKLQotI2lmIEhBVkUo
RFRSQUNFKQotTWVzc2FnZUVuY29kZXI6Ok1lc3NhZ2VFbmNvZGVyKFN0cmluZ1JlZmVyZW5jZSBt
ZXNzYWdlUmVjZWl2ZXJOYW1lLCBTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZU5hbWUsIHVpbnQ2NF90
IGRlc3RpbmF0aW9uSUQsIGNvbnN0IHV1aWRfdCYgVVVJRCkKLSAgICA6IG1fbWVzc2FnZVJlY2Vp
dmVyTmFtZShtZXNzYWdlUmVjZWl2ZXJOYW1lKQotICAgICwgbV9tZXNzYWdlTmFtZShtZXNzYWdl
TmFtZSkKLSAgICAsIG1fZGVzdGluYXRpb25JRChkZXN0aW5hdGlvbklEKQotewotICAgIHV1aWRf
Y29weShtX1VVSUQsIFVVSUQpOwotICAgIGVuY29kZUhlYWRlcigpOwotfQotI2VuZGlmCi0KLU1l
c3NhZ2VFbmNvZGVyOjpNZXNzYWdlRW5jb2RlcihTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2Vp
dmVyTmFtZSwgU3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VOYW1lLCB1aW50NjRfdCBkZXN0aW5hdGlv
bklEKQotICAgIDogbV9tZXNzYWdlUmVjZWl2ZXJOYW1lKG1lc3NhZ2VSZWNlaXZlck5hbWUpCi0g
ICAgLCBtX21lc3NhZ2VOYW1lKG1lc3NhZ2VOYW1lKQotICAgICwgbV9kZXN0aW5hdGlvbklEKGRl
c3RpbmF0aW9uSUQpCi17Ci0jaWYgSEFWRShEVFJBQ0UpCi0gICAgdXVpZF9nZW5lcmF0ZShtX1VV
SUQpOwotI2VuZGlmCi0gICAgZW5jb2RlSGVhZGVyKCk7Ci19Ci0KLU1lc3NhZ2VFbmNvZGVyOjp+
TWVzc2FnZUVuY29kZXIoKQotewotfQotCi12b2lkIE1lc3NhZ2VFbmNvZGVyOjplbmNvZGVIZWFk
ZXIoKQotewotICAgIEFTU0VSVCghbV9tZXNzYWdlUmVjZWl2ZXJOYW1lLmlzRW1wdHkoKSk7Ci0K
LSAgICAqdGhpcyA8PCBkZWZhdWx0TWVzc2FnZUZsYWdzOwotICAgICp0aGlzIDw8IG1fbWVzc2Fn
ZVJlY2VpdmVyTmFtZTsKLSAgICAqdGhpcyA8PCBtX21lc3NhZ2VOYW1lOwotICAgICp0aGlzIDw8
IG1fZGVzdGluYXRpb25JRDsKLSNpZiBIQVZFKERUUkFDRSkKLSAgICAqdGhpcyA8PCBtX1VVSUQ7
Ci0jZW5kaWYKLX0KLQotYm9vbCBNZXNzYWdlRW5jb2Rlcjo6aXNTeW5jTWVzc2FnZSgpIGNvbnN0
Ci17Ci0gICAgcmV0dXJuICpidWZmZXIoKSAmIFN5bmNNZXNzYWdlOwotfQotCi1ib29sIE1lc3Nh
Z2VFbmNvZGVyOjpzaG91bGREaXNwYXRjaE1lc3NhZ2VXaGVuV2FpdGluZ0ZvclN5bmNSZXBseSgp
IGNvbnN0Ci17Ci0gICAgcmV0dXJuICpidWZmZXIoKSAmIERpc3BhdGNoTWVzc2FnZVdoZW5XYWl0
aW5nRm9yU3luY1JlcGx5OwotfQotCi12b2lkIE1lc3NhZ2VFbmNvZGVyOjpzZXRJc1N5bmNNZXNz
YWdlKGJvb2wgaXNTeW5jTWVzc2FnZSkKLXsKLSAgICBpZiAoaXNTeW5jTWVzc2FnZSkKLSAgICAg
ICAgKmJ1ZmZlcigpIHw9IFN5bmNNZXNzYWdlOwotICAgIGVsc2UKLSAgICAgICAgKmJ1ZmZlcigp
ICY9IH5TeW5jTWVzc2FnZTsKLX0KLQotdm9pZCBNZXNzYWdlRW5jb2Rlcjo6c2V0U2hvdWxkRGlz
cGF0Y2hNZXNzYWdlV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkoYm9vbCBzaG91bGREaXNwYXRjaE1l
c3NhZ2VXaGVuV2FpdGluZ0ZvclN5bmNSZXBseSkKLXsKLSAgICBpZiAoc2hvdWxkRGlzcGF0Y2hN
ZXNzYWdlV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkpCi0gICAgICAgICpidWZmZXIoKSB8PSBEaXNw
YXRjaE1lc3NhZ2VXaGVuV2FpdGluZ0ZvclN5bmNSZXBseTsKLSAgICBlbHNlCi0gICAgICAgICpi
dWZmZXIoKSAmPSB+RGlzcGF0Y2hNZXNzYWdlV2hlbldhaXRpbmdGb3JTeW5jUmVwbHk7Ci19Ci0K
LXZvaWQgTWVzc2FnZUVuY29kZXI6OnNldEZ1bGx5U3luY2hyb25vdXNNb2RlRm9yVGVzdGluZygp
Ci17Ci0gICAgKmJ1ZmZlcigpIHw9IFVzZUZ1bGx5U3luY2hyb25vdXNNb2RlRm9yVGVzdGluZzsK
LX0KLQotdm9pZCBNZXNzYWdlRW5jb2Rlcjo6d3JhcEZvclRlc3Rpbmcoc3RkOjp1bmlxdWVfcHRy
PE1lc3NhZ2VFbmNvZGVyPiBvcmlnaW5hbCkKLXsKLSAgICBBU1NFUlQoaXNTeW5jTWVzc2FnZSgp
KTsKLSAgICBBU1NFUlQoIW9yaWdpbmFsLT5pc1N5bmNNZXNzYWdlKCkpOwotCi0gICAgb3JpZ2lu
YWwtPnNldFNob3VsZERpc3BhdGNoTWVzc2FnZVdoZW5XYWl0aW5nRm9yU3luY1JlcGx5KHRydWUp
OwotCi0gICAgZW5jb2RlVmFyaWFibGVMZW5ndGhCeXRlQXJyYXkoRGF0YVJlZmVyZW5jZShvcmln
aW5hbC0+YnVmZmVyKCksIG9yaWdpbmFsLT5idWZmZXJTaXplKCkpKTsKLQotICAgIFZlY3RvcjxB
dHRhY2htZW50PiBhdHRhY2htZW50cyA9IG9yaWdpbmFsLT5yZWxlYXNlQXR0YWNobWVudHMoKTsK
LSAgICByZXNlcnZlKGF0dGFjaG1lbnRzLnNpemUoKSk7Ci0gICAgZm9yIChBdHRhY2htZW50JiBh
dHRhY2htZW50IDogYXR0YWNobWVudHMpCi0gICAgICAgIGFkZEF0dGFjaG1lbnQoV1RGTW92ZShh
dHRhY2htZW50KSk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIElQQwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvUGxhdGZvcm0vSVBDL01lc3NhZ2VFbmNvZGVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9Q
bGF0Zm9ybS9JUEMvTWVzc2FnZUVuY29kZXIuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggYjUyZmIxMDNmY2RhMGUxMGI3ZTJiZmQyOWNiMzkzMTA1OTdiYmNlOS4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9y
bS9JUEMvTWVzc2FnZUVuY29kZXIuaAorKysgL2Rldi9udWxsCkBAIC0xLDgwICswLDAgQEAKLS8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgot
ICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KLSAqLwotCi0jaWZuZGVmIE1lc3NhZ2VFbmNvZGVyX2gKLSNkZWZpbmUgTWVzc2FnZUVuY29k
ZXJfaAotCi0jaW5jbHVkZSAiQXJndW1lbnRFbmNvZGVyLmgiCi0jaW5jbHVkZSAiU3RyaW5nUmVm
ZXJlbmNlLmgiCi0jaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KLQotI2lmIEhBVkUoRFRSQUNFKQot
I2luY2x1ZGUgPHV1aWQvdXVpZC5oPgotI2VuZGlmCi0KLW5hbWVzcGFjZSBJUEMgewotCi1jbGFz
cyBTdHJpbmdSZWZlcmVuY2U7Ci0KLWNsYXNzIE1lc3NhZ2VFbmNvZGVyIDogcHVibGljIEFyZ3Vt
ZW50RW5jb2RlciB7Ci1wdWJsaWM6Ci0gICAgTWVzc2FnZUVuY29kZXIoU3RyaW5nUmVmZXJlbmNl
IG1lc3NhZ2VSZWNlaXZlck5hbWUsIFN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlTmFtZSwgdWludDY0
X3QgZGVzdGluYXRpb25JRCk7Ci0jaWYgSEFWRShEVFJBQ0UpCi0gICAgTWVzc2FnZUVuY29kZXIo
U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VSZWNlaXZlck5hbWUsIFN0cmluZ1JlZmVyZW5jZSBtZXNz
YWdlTmFtZSwgdWludDY0X3QgZGVzdGluYXRpb25JRCwgY29uc3QgdXVpZF90Jik7Ci0jZW5kaWYK
LSAgICB2aXJ0dWFsIH5NZXNzYWdlRW5jb2RlcigpOwotCi0gICAgU3RyaW5nUmVmZXJlbmNlIG1l
c3NhZ2VSZWNlaXZlck5hbWUoKSBjb25zdCB7IHJldHVybiBtX21lc3NhZ2VSZWNlaXZlck5hbWU7
IH0KLSAgICBTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZU5hbWUoKSBjb25zdCB7IHJldHVybiBtX21l
c3NhZ2VOYW1lOyB9Ci0gICAgdWludDY0X3QgZGVzdGluYXRpb25JRCgpIGNvbnN0IHsgcmV0dXJu
IG1fZGVzdGluYXRpb25JRDsgfQotCi0gICAgdm9pZCBzZXRJc1N5bmNNZXNzYWdlKGJvb2wpOwot
ICAgIGJvb2wgaXNTeW5jTWVzc2FnZSgpIGNvbnN0OwotCi0gICAgdm9pZCBzZXRTaG91bGREaXNw
YXRjaE1lc3NhZ2VXaGVuV2FpdGluZ0ZvclN5bmNSZXBseShib29sKTsKLSAgICBib29sIHNob3Vs
ZERpc3BhdGNoTWVzc2FnZVdoZW5XYWl0aW5nRm9yU3luY1JlcGx5KCkgY29uc3Q7Ci0KLSAgICB2
b2lkIHNldEZ1bGx5U3luY2hyb25vdXNNb2RlRm9yVGVzdGluZygpOwotCi0jaWYgSEFWRShEVFJB
Q0UpCi0gICAgY29uc3QgdXVpZF90JiBVVUlEKCkgY29uc3QgeyByZXR1cm4gbV9VVUlEOyB9Ci0j
ZW5kaWYKLQotICAgIHZvaWQgd3JhcEZvclRlc3Rpbmcoc3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VF
bmNvZGVyPik7Ci0KLXByaXZhdGU6Ci0gICAgdm9pZCBlbmNvZGVIZWFkZXIoKTsKLQotICAgIFN0
cmluZ1JlZmVyZW5jZSBtX21lc3NhZ2VSZWNlaXZlck5hbWU7Ci0gICAgU3RyaW5nUmVmZXJlbmNl
IG1fbWVzc2FnZU5hbWU7Ci0gICAgdWludDY0X3QgbV9kZXN0aW5hdGlvbklEOwotI2lmIEhBVkUo
RFRSQUNFKQotICAgIHV1aWRfdCBtX1VVSUQ7Ci0jZW5kaWYKLX07Ci0KLX0gLy8gbmFtZXNwYWNl
IElQQwotCi0jZW5kaWYgLy8gTWVzc2FnZUVuY29kZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvUGxhdGZvcm0vSVBDL01lc3NhZ2VSZWNlaXZlci5oIGIvU291cmNlL1dlYktpdDIvUGxh
dGZvcm0vSVBDL01lc3NhZ2VSZWNlaXZlci5oCmluZGV4IDM0NmExZTIwYTNmYTI5YmVmZmJkYzkw
ODQ3MDY3MDZjMzQzNjczYzYuLjg2MzI4NDIxNzlmOWUzNjZjOTg2OWQ5YjgwNWJiOWRjZmEyN2Qz
NGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9NZXNzYWdlUmVjZWl2
ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvTWVzc2FnZVJlY2VpdmVyLmgK
QEAgLTMwLDkgKzMwLDkgQEAKIAogbmFtZXNwYWNlIElQQyB7CiAKLWNsYXNzIE1lc3NhZ2VEZWNv
ZGVyOwotY2xhc3MgTWVzc2FnZUVuY29kZXI7CitjbGFzcyBFbmNvZGVyOwogY2xhc3MgQ29ubmVj
dGlvbjsKK2NsYXNzIE1lc3NhZ2VEZWNvZGVyOwogCiBjbGFzcyBNZXNzYWdlUmVjZWl2ZXIgewog
cHVibGljOgpAQCAtNDIsNyArNDIsNyBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgdmlydHVhbCB2
b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvbm5lY3Rpb24mLCBNZXNzYWdlRGVjb2RlciYpID0gMDsK
LSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvbm5lY3Rpb24mLCBNZXNz
YWdlRGVjb2RlciYsIHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlRW5jb2Rlcj4mKQorICAgIHZpcnR1
YWwgdm9pZCBkaWRSZWNlaXZlU3luY01lc3NhZ2UoQ29ubmVjdGlvbiYsIE1lc3NhZ2VEZWNvZGVy
Jiwgc3RkOjp1bmlxdWVfcHRyPEVuY29kZXI+JikKICAgICB7CiAgICAgICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQ
Qy9NZXNzYWdlUmVjZWl2ZXJNYXAuY3BwIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL01l
c3NhZ2VSZWNlaXZlck1hcC5jcHAKaW5kZXggYWMyYWMxNmI5ZjE3Y2JiYTUyNGQzMjFlMWIxYzRk
NDkyODU0YjVmMi4uMWQwZDJkZWM3ZmYyNWMyMTgwY2U3N2MwNjY5YjMxZTg1MmZjZWRjZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL01lc3NhZ2VSZWNlaXZlck1hcC5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL01lc3NhZ2VSZWNlaXZlck1hcC5j
cHAKQEAgLTEyNyw3ICsxMjcsNyBAQCBib29sIE1lc3NhZ2VSZWNlaXZlck1hcDo6ZGlzcGF0Y2hN
ZXNzYWdlKENvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIE1lc3NhZ2VEZWNvZGVyJgogICAgIHJldHVy
biBmYWxzZTsKIH0KIAotYm9vbCBNZXNzYWdlUmVjZWl2ZXJNYXA6OmRpc3BhdGNoU3luY01lc3Nh
Z2UoQ29ubmVjdGlvbiYgY29ubmVjdGlvbiwgTWVzc2FnZURlY29kZXImIGRlY29kZXIsIHN0ZDo6
dW5pcXVlX3B0cjxNZXNzYWdlRW5jb2Rlcj4mIHJlcGx5RW5jb2RlcikKK2Jvb2wgTWVzc2FnZVJl
Y2VpdmVyTWFwOjpkaXNwYXRjaFN5bmNNZXNzYWdlKENvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIE1l
c3NhZ2VEZWNvZGVyJiBkZWNvZGVyLCBzdGQ6OnVuaXF1ZV9wdHI8RW5jb2Rlcj4mIHJlcGx5RW5j
b2RlcikKIHsKICAgICBpZiAoTWVzc2FnZVJlY2VpdmVyKiBtZXNzYWdlUmVjZWl2ZXIgPSBtX2ds
b2JhbE1lc3NhZ2VSZWNlaXZlcnMuZ2V0KGRlY29kZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgpKSkg
ewogICAgICAgICBBU1NFUlQoIWRlY29kZXIuZGVzdGluYXRpb25JRCgpKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9NZXNzYWdlUmVjZWl2ZXJNYXAuaCBiL1NvdXJj
ZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9NZXNzYWdlUmVjZWl2ZXJNYXAuaAppbmRleCA1NmMxYWNh
YmZlZDM2NDkyYTRmYTkyMmQ0NDgyZWQ4NTg2NGQzZmVmLi45NWJiZjMyYTRiMjFkOGIxODczZDNl
MjIyZDhhMmM3NTk2MWM1NDljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9J
UEMvTWVzc2FnZVJlY2VpdmVyTWFwLmgKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBD
L01lc3NhZ2VSZWNlaXZlck1hcC5oCkBAIC0zMyw4ICszMyw4IEBACiBuYW1lc3BhY2UgSVBDIHsK
IAogY2xhc3MgQ29ubmVjdGlvbjsKK2NsYXNzIEVuY29kZXI7CiBjbGFzcyBNZXNzYWdlRGVjb2Rl
cjsKLWNsYXNzIE1lc3NhZ2VFbmNvZGVyOwogY2xhc3MgTWVzc2FnZVJlY2VpdmVyOwogCiBjbGFz
cyBNZXNzYWdlUmVjZWl2ZXJNYXAgewpAQCAtNTIsNyArNTIsNyBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBpbnZhbGlkYXRlKCk7CiAKICAgICBib29sIGRpc3BhdGNoTWVzc2FnZShDb25uZWN0aW9uJiwg
TWVzc2FnZURlY29kZXImKTsKLSAgICBib29sIGRpc3BhdGNoU3luY01lc3NhZ2UoQ29ubmVjdGlv
biYsIE1lc3NhZ2VEZWNvZGVyJiwgc3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VFbmNvZGVyPiYpOwor
ICAgIGJvb2wgZGlzcGF0Y2hTeW5jTWVzc2FnZShDb25uZWN0aW9uJiwgTWVzc2FnZURlY29kZXIm
LCBzdGQ6OnVuaXF1ZV9wdHI8RW5jb2Rlcj4mKTsKIAogcHJpdmF0ZToKICAgICAvLyBNZXNzYWdl
IHJlY2VpdmVycyB0aGF0IGRvbid0IHJlcXVpcmUgYSBkZXN0aW5hdGlvbiBJRC4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9NZXNzYWdlUmVjb3JkZXIuaCBiL1NvdXJj
ZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9NZXNzYWdlUmVjb3JkZXIuaAppbmRleCBlOGZhNjE5MWE5
M2VhMDNmOTVhNGI0ZDU3NzUzNzg3MTVkZmM4OWY3Li4xNWVjMDVkMjJiNGM5MmNjZTNjMWEzY2Jj
YTAwNmIwNTRkNThjYjAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMv
TWVzc2FnZVJlY29yZGVyLmgKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL01lc3Nh
Z2VSZWNvcmRlci5oCkBAIC03Niw3ICs3Niw3IEBAIHB1YmxpYzoKICAgICAgICAgV2ViS2l0TWVz
c2FnZVJlY29yZCBtX3JlY29yZDsKICAgICB9OwogCi0gICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0
cjxNZXNzYWdlUmVjb3JkZXI6Ok1lc3NhZ2VQcm9jZXNzaW5nVG9rZW4+IHJlY29yZE91dGdvaW5n
TWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6Ok1lc3NhZ2VFbmNvZGVyJik7CisgICAgc3Rh
dGljIHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlUmVjb3JkZXI6Ok1lc3NhZ2VQcm9jZXNzaW5nVG9r
ZW4+IHJlY29yZE91dGdvaW5nTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkVuY29kZXIm
KTsKICAgICBzdGF0aWMgdm9pZCByZWNvcmRJbmNvbWluZ01lc3NhZ2UoSVBDOjpDb25uZWN0aW9u
JiwgSVBDOjpNZXNzYWdlRGVjb2RlciYpOwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvUGxhdGZvcm0vSVBDL01lc3NhZ2VTZW5kZXIuY3BwIGIvU291cmNlL1dlYktpdDIv
UGxhdGZvcm0vSVBDL01lc3NhZ2VTZW5kZXIuY3BwCmluZGV4IGQ4YzRjY2NmMjg0OWMxYTRkZWE3
OTE3NjRiMjhlZTYwNTg5NjkxY2MuLjYxMGM5ZjQ5MDIyNzc2YjkyNGI2OTU2ZGRmMWYyNzJlOTAy
YTZkYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9NZXNzYWdlU2Vu
ZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvTWVzc2FnZVNlbmRlci5j
cHAKQEAgLTMyLDcgKzMyLDcgQEAgTWVzc2FnZVNlbmRlcjo6fk1lc3NhZ2VTZW5kZXIoKQogewog
fQogCi1ib29sIE1lc3NhZ2VTZW5kZXI6OnNlbmRNZXNzYWdlKHN0ZDo6dW5pcXVlX3B0cjxNZXNz
YWdlRW5jb2Rlcj4gZW5jb2RlciwgdW5zaWduZWQgbWVzc2FnZVNlbmRGbGFncykKK2Jvb2wgTWVz
c2FnZVNlbmRlcjo6c2VuZE1lc3NhZ2Uoc3RkOjp1bmlxdWVfcHRyPEVuY29kZXI+IGVuY29kZXIs
IHVuc2lnbmVkIG1lc3NhZ2VTZW5kRmxhZ3MpCiB7CiAgICAgQVNTRVJUKG1lc3NhZ2VTZW5kZXJD
b25uZWN0aW9uKCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMv
TWVzc2FnZVNlbmRlci5oIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL01lc3NhZ2VTZW5k
ZXIuaAppbmRleCA5NmI3NzI0NzYyZmE2Y2E0YTZhY2JhYTI5ZGQyMGZiYmRjNmE4ZGFjLi5hZGI0
NDUwMDlkOGZhYTMxNDZlZjg2ZDIzNWVkMDY2OGJlNzcxNjUzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9QbGF0Zm9ybS9JUEMvTWVzc2FnZVNlbmRlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1BsYXRmb3JtL0lQQy9NZXNzYWdlU2VuZGVyLmgKQEAgLTQ0LDcgKzQ0LDcgQEAgcHVibGljOgog
ICAgIHsKICAgICAgICAgc3RhdGljX2Fzc2VydCghVTo6aXNTeW5jLCAiTWVzc2FnZSBpcyBzeW5j
ISIpOwogCi0gICAgICAgIGF1dG8gZW5jb2RlciA9IHN0ZDo6bWFrZV91bmlxdWU8TWVzc2FnZUVu
Y29kZXI+KFU6OnJlY2VpdmVyTmFtZSgpLCBVOjpuYW1lKCksIGRlc3RpbmF0aW9uSUQpOworICAg
ICAgICBhdXRvIGVuY29kZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPEVuY29kZXI+KFU6OnJlY2VpdmVy
TmFtZSgpLCBVOjpuYW1lKCksIGRlc3RpbmF0aW9uSUQpOwogICAgICAgICBlbmNvZGVyLT5lbmNv
ZGUobWVzc2FnZS5hcmd1bWVudHMoKSk7CiAgICAgICAgIAogICAgICAgICByZXR1cm4gc2VuZE1l
c3NhZ2UoV1RGTW92ZShlbmNvZGVyKSwgbWVzc2FnZVNlbmRGbGFncyk7CkBAIC02Niw3ICs2Niw3
IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIG1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uKCktPnNl
bmRTeW5jKFdURk1vdmUobWVzc2FnZSksIFdURk1vdmUocmVwbHkpLCBkZXN0aW5hdGlvbklELCB0
aW1lb3V0LCBzeW5jU2VuZEZsYWdzKTsKICAgICB9CiAKLSAgICB2aXJ0dWFsIGJvb2wgc2VuZE1l
c3NhZ2Uoc3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VFbmNvZGVyPiwgdW5zaWduZWQgbWVzc2FnZVNl
bmRGbGFncyk7CisgICAgdmlydHVhbCBib29sIHNlbmRNZXNzYWdlKHN0ZDo6dW5pcXVlX3B0cjxF
bmNvZGVyPiwgdW5zaWduZWQgbWVzc2FnZVNlbmRGbGFncyk7CiAKIHByaXZhdGU6CiAgICAgdmly
dHVhbCBDb25uZWN0aW9uKiBtZXNzYWdlU2VuZGVyQ29ubmVjdGlvbigpID0gMDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9TdHJpbmdSZWZlcmVuY2UuY3BwIGIvU291
cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL1N0cmluZ1JlZmVyZW5jZS5jcHAKaW5kZXggNzM2M2Nl
ZDk0NjViOWQzMTM1NjNlZmUyMzNiZjgxMTJkODg2Y2E1ZC4uODIxNTE5Zjk5ZmI1NGJiOTNkZDM3
MWQ3MmQzZTFjNDA5YjA5ZmNmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0v
SVBDL1N0cmluZ1JlZmVyZW5jZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBD
L1N0cmluZ1JlZmVyZW5jZS5jcHAKQEAgLTI3LDggKzI3LDggQEAKICNpbmNsdWRlICJTdHJpbmdS
ZWZlcmVuY2UuaCIKIAogI2luY2x1ZGUgIkFyZ3VtZW50RGVjb2Rlci5oIgotI2luY2x1ZGUgIkFy
Z3VtZW50RW5jb2Rlci5oIgogI2luY2x1ZGUgIkRhdGFSZWZlcmVuY2UuaCIKKyNpbmNsdWRlICJF
bmNvZGVyLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hlci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NT
dHJpbmcuaD4KIApAQCAtMzksNyArMzksNyBAQCBDU3RyaW5nIFN0cmluZ1JlZmVyZW5jZTo6dG9T
dHJpbmcoKSBjb25zdAogICAgIHJldHVybiBXVEY6OkNTdHJpbmcobV9kYXRhLCBtX3NpemUpOwog
fQogCi12b2lkIFN0cmluZ1JlZmVyZW5jZTo6ZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2Rl
cikgY29uc3QKK3ZvaWQgU3RyaW5nUmVmZXJlbmNlOjplbmNvZGUoRW5jb2RlciYgZW5jb2Rlcikg
Y29uc3QKIHsKICAgICBlbmNvZGVyIDw8IERhdGFSZWZlcmVuY2UocmVpbnRlcnByZXRfY2FzdDxj
b25zdCB1aW50OF90Kj4obV9kYXRhKSwgbV9zaXplKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1BsYXRmb3JtL0lQQy9TdHJpbmdSZWZlcmVuY2UuaCBiL1NvdXJjZS9XZWJLaXQyL1Bs
YXRmb3JtL0lQQy9TdHJpbmdSZWZlcmVuY2UuaAppbmRleCAzNDAzYmJjODQyYzcxNDJhYjk5OTAy
N2Q4OWUwMmE5MGNjMmUxODU0Li5kYWUwNmJkMzYyOTllOTA5ZDJkMjk0MzY3NjI3NzM3NzA4MGEz
MzgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvU3RyaW5nUmVmZXJl
bmNlLmgKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL1N0cmluZ1JlZmVyZW5jZS5o
CkBAIC0zMiw3ICszMiw3IEBACiAKIG5hbWVzcGFjZSBJUEMgewogCi1jbGFzcyBBcmd1bWVudEVu
Y29kZXI7CitjbGFzcyBFbmNvZGVyOwogY2xhc3MgQXJndW1lbnREZWNvZGVyOwogCiBjbGFzcyBT
dHJpbmdSZWZlcmVuY2UgewpAQCAtNjgsNyArNjgsNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVy
biBhLm1fc2l6ZSA9PSBiLm1fc2l6ZSAmJiAhbWVtY21wKGEubV9kYXRhLCBiLm1fZGF0YSwgYS5t
X3NpemUpOwogICAgIH0KIAotICAgIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYpIGNvbnN0
OworICAgIHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKICAgICBzdGF0aWMgYm9vbCBkZWNv
ZGUoQXJndW1lbnREZWNvZGVyJiwgU3RyaW5nUmVmZXJlbmNlJik7CiAKICAgICBzdHJ1Y3QgSGFz
aCB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvbWFjL0Nvbm5lY3Rp
b25NYWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvbWFjL0Nvbm5lY3Rpb25NYWMu
bW0KaW5kZXggNDdlY2RiOWVhOGFhNzZiMWJlNGM4OGFmODUzZTNhOGQyYzhlNmM1My4uMzVhNGVj
N2Q5NWIzNWI5NGRlMDcwMTBkZmM4OTYwODg3NjVkNmMxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvUGxhdGZvcm0vSVBDL21hYy9Db25uZWN0aW9uTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1BsYXRmb3JtL0lQQy9tYWMvQ29ubmVjdGlvbk1hYy5tbQpAQCAtMjAwLDcgKzIwMCw3IEBA
IGJvb2wgQ29ubmVjdGlvbjo6b3BlbigpCiAgICAgICAgIG1faXNDb25uZWN0ZWQgPSB0cnVlOwog
ICAgICAgICAKICAgICAgICAgLy8gU2VuZCB0aGUgaW5pdGlhbGl6ZSBtZXNzYWdlLCB3aGljaCBj
b250YWlucyBhIHNlbmQgcmlnaHQgZm9yIHRoZSBzZXJ2ZXIgdG8gdXNlLgotICAgICAgICBhdXRv
IGVuY29kZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPE1lc3NhZ2VFbmNvZGVyPigiSVBDIiwgIkluaXRp
YWxpemVDb25uZWN0aW9uIiwgMCk7CisgICAgICAgIGF1dG8gZW5jb2RlciA9IHN0ZDo6bWFrZV91
bmlxdWU8RW5jb2Rlcj4oIklQQyIsICJJbml0aWFsaXplQ29ubmVjdGlvbiIsIDApOwogICAgICAg
ICBlbmNvZGVyLT5lbmNvZGUoTWFjaFBvcnQobV9yZWNlaXZlUG9ydCwgTUFDSF9NU0dfVFlQRV9N
QUtFX1NFTkQpKTsKIAogICAgICAgICBzZW5kTWVzc2FnZShXVEZNb3ZlKGVuY29kZXIpKTsKQEAg
LTIyMyw3ICsyMjMsNyBAQCBib29sIENvbm5lY3Rpb246Om9wZW4oKQogICAgICAgICAgICAgY29u
bmVjdGlvbi0+ZXhjZXB0aW9uU291cmNlRXZlbnRIYW5kbGVyKCk7CiAgICAgICAgIH0pOwogCi0g
ICAgICAgIGF1dG8gZW5jb2RlciA9IHN0ZDo6bWFrZV91bmlxdWU8TWVzc2FnZUVuY29kZXI+KCJJ
UEMiLCAiU2V0RXhjZXB0aW9uUG9ydCIsIDApOworICAgICAgICBhdXRvIGVuY29kZXIgPSBzdGQ6
Om1ha2VfdW5pcXVlPEVuY29kZXI+KCJJUEMiLCAiU2V0RXhjZXB0aW9uUG9ydCIsIDApOwogICAg
ICAgICBlbmNvZGVyLT5lbmNvZGUoTWFjaFBvcnQobV9leGNlcHRpb25Qb3J0LCBNQUNIX01TR19U
WVBFX01BS0VfU0VORCkpOwogCiAgICAgICAgIHNlbmRNZXNzYWdlKFdURk1vdmUoZW5jb2Rlcikp
OwpAQCAtMjY1LDcgKzI2NSw3IEBAIGJvb2wgQ29ubmVjdGlvbjo6cGxhdGZvcm1DYW5TZW5kT3V0
Z29pbmdNZXNzYWdlcygpIGNvbnN0CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgQ29ubmVj
dGlvbjo6c2VuZE91dGdvaW5nTWVzc2FnZShzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZUVuY29kZXI+
IGVuY29kZXIpCitib29sIENvbm5lY3Rpb246OnNlbmRPdXRnb2luZ01lc3NhZ2Uoc3RkOjp1bmlx
dWVfcHRyPEVuY29kZXI+IGVuY29kZXIpCiB7CiAgICAgVmVjdG9yPEF0dGFjaG1lbnQ+IGF0dGFj
aG1lbnRzID0gZW5jb2Rlci0+cmVsZWFzZUF0dGFjaG1lbnRzKCk7CiAgICAgCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvbWFjL01hY2hQb3J0LmggYi9Tb3VyY2UvV2Vi
S2l0Mi9QbGF0Zm9ybS9JUEMvbWFjL01hY2hQb3J0LmgKaW5kZXggNjYzZmZjYzQ2ZGViMDhkN2Q4
NWU2MDJmODJjOWQ1OWEyM2U3ZGQ3OC4uMTczNjg4YTE3MjY3NzI5YTllNThkOTkzNGUwZTE2ZDRh
Mjc5MjU2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL21hYy9NYWNo
UG9ydC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9tYWMvTWFjaFBvcnQuaApA
QCAtMjcsOCArMjcsOCBAQAogI2RlZmluZSBNYWNoUG9ydF9oCiAKICNpbmNsdWRlICJBcmd1bWVu
dERlY29kZXIuaCIKLSNpbmNsdWRlICJBcmd1bWVudEVuY29kZXIuaCIKICNpbmNsdWRlICJBdHRh
Y2htZW50LmgiCisjaW5jbHVkZSAiRW5jb2Rlci5oIgogCiBuYW1lc3BhY2UgSVBDIHsKIApAQCAt
NDYsNyArNDYsNyBAQCBwdWJsaWM6CiAgICAgewogICAgIH0KIAotICAgIHZvaWQgZW5jb2RlKEFy
Z3VtZW50RW5jb2RlciYgZW5jb2RlcikgY29uc3QKKyAgICB2b2lkIGVuY29kZShFbmNvZGVyJiBl
bmNvZGVyKSBjb25zdAogICAgIHsKICAgICAgICAgZW5jb2RlciA8PCBBdHRhY2htZW50KG1fcG9y
dCwgbV9kaXNwb3NpdGlvbik7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxh
dGZvcm0vU2hhcmVkTWVtb3J5LmggYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9TaGFyZWRNZW1v
cnkuaAppbmRleCAxOGU3NWE3NzE0ODcyODNlNzY2OGNkNDE0ZjE5OTM4NGIzM2IwZWM0Li45YTQ1
YmUwNDNiOTVlODNkNWI1MzRlMDczZjgzMGQ5Nzc4NDEwNTcxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9QbGF0Zm9ybS9TaGFyZWRNZW1vcnkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0
Zm9ybS9TaGFyZWRNZW1vcnkuaApAQCAtMzcsNyArMzcsNyBAQAogCiBuYW1lc3BhY2UgSVBDIHsK
IGNsYXNzIEFyZ3VtZW50RGVjb2RlcjsKLWNsYXNzIEFyZ3VtZW50RW5jb2RlcjsKK2NsYXNzIEVu
Y29kZXI7CiB9CiAKICNpZiBPUyhEQVJXSU4pCkBAIC02NSw3ICs2NSw3IEBAIHB1YmxpYzoKIAog
ICAgICAgICB2b2lkIGNsZWFyKCk7CiAKLSAgICAgICAgdm9pZCBlbmNvZGUoSVBDOjpBcmd1bWVu
dEVuY29kZXImKSBjb25zdDsKKyAgICAgICAgdm9pZCBlbmNvZGUoSVBDOjpFbmNvZGVyJikgY29u
c3Q7CiAgICAgICAgIHN0YXRpYyBib29sIGRlY29kZShJUEM6OkFyZ3VtZW50RGVjb2RlciYsIEhh
bmRsZSYpOwogCiAjaWYgVVNFKFVOSVhfRE9NQUlOX1NPQ0tFVFMpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9QbGF0Zm9ybS9tYWMvU2hhcmVkTWVtb3J5TWFjLmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1BsYXRmb3JtL21hYy9TaGFyZWRNZW1vcnlNYWMuY3BwCmluZGV4IDA4MGM1Mjg0MjY5Nzkx
ZmQ5ZTkwNDFkMjk5MmY4ZmYwNDM3ODdhZjcuLmMwNTJhOTdkZmU0M2Y1ZWZhY2QzYTg1ZGY2NWNh
NzVkZGJjNGYxNGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL21hYy9TaGFy
ZWRNZW1vcnlNYWMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL21hYy9TaGFyZWRN
ZW1vcnlNYWMuY3BwCkBAIC0yNyw4ICsyNyw4IEBACiAjaW5jbHVkZSAiU2hhcmVkTWVtb3J5Lmgi
CiAKICNpbmNsdWRlICJBcmd1bWVudERlY29kZXIuaCIKLSNpbmNsdWRlICJBcmd1bWVudEVuY29k
ZXIuaCIKICNpbmNsdWRlICJBcmd1bWVudHMuaCIKKyNpbmNsdWRlICJFbmNvZGVyLmgiCiAjaW5j
bHVkZSAiTWFjaFBvcnQuaCIKICNpbmNsdWRlIDxXZWJDb3JlL01hY2hTZW5kUmlnaHQuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL01hY2hWTVNQSS5oPgpAQCAtNjQsNyArNjQsNyBAQCB2b2lkIFNoYXJl
ZE1lbW9yeTo6SGFuZGxlOjpjbGVhcigpCiAgICAgbV9zaXplID0gMDsKIH0KIAotdm9pZCBTaGFy
ZWRNZW1vcnk6OkhhbmRsZTo6ZW5jb2RlKElQQzo6QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBj
b25zdAordm9pZCBTaGFyZWRNZW1vcnk6OkhhbmRsZTo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5j
b2RlcikgY29uc3QKIHsKICAgICBlbmNvZGVyIDw8IHN0YXRpY19jYXN0PHVpbnQ2NF90PihtX3Np
emUpOwogICAgIGVuY29kZXIgPDwgSVBDOjpNYWNoUG9ydChtX3BvcnQsIE1BQ0hfTVNHX1RZUEVf
TU9WRV9TRU5EKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1
Z2luQ29udHJvbGxlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdp
bkNvbnRyb2xsZXJQcm94eS5oCmluZGV4IDcyY2ZkODk0NjMyYzhmOGUzNjI1ZDQzMTI5ZWI3OTgy
N2U0MDM5N2MuLjJkNWIwYjZiN2U0YTU1NTUzM2MxMGUzMDRlNjJlODRjZDc2OWNkYTQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5
LmgKKysrIGIvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Db250cm9sbGVyUHJv
eHkuaApAQCAtNjMsNyArNjMsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkZXN0cm95KCk7CiAKICAg
ICB2b2lkIGRpZFJlY2VpdmVQbHVnaW5Db250cm9sbGVyUHJveHlNZXNzYWdlKElQQzo6Q29ubmVj
dGlvbiYsIElQQzo6TWVzc2FnZURlY29kZXImKTsKLSAgICB2b2lkIGRpZFJlY2VpdmVTeW5jUGx1
Z2luQ29udHJvbGxlclByb3h5TWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6Ok1lc3NhZ2VE
ZWNvZGVyJiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6TWVzc2FnZUVuY29kZXI+Jik7CisgICAgdm9p
ZCBkaWRSZWNlaXZlU3luY1BsdWdpbkNvbnRyb2xsZXJQcm94eU1lc3NhZ2UoSVBDOjpDb25uZWN0
aW9uJiwgSVBDOjpNZXNzYWdlRGVjb2RlciYsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+
Jik7CiAKICAgICBib29sIHdhbnRzV2hlZWxFdmVudHMoKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5DcmVhdGlvblBhcmFtZXRlcnMuY3Bw
IGIvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5DcmVhdGlvblBhcmFtZXRlcnMu
Y3BwCmluZGV4IDk2YTYxNjZjYzdjNTRhMmJmYWY5ODQ2YmMyNDI2NDc0YjgyNjk2ZTQuLjVkYmFm
MTNkY2IzOTZiMjY3NjY5YzViZTc2OWE3NTMwYjMwYzVkMTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpbkNyZWF0aW9uUGFyYW1ldGVycy5jcHAK
QEAgLTQ0LDcgKzQ0LDcgQEAgUGx1Z2luQ3JlYXRpb25QYXJhbWV0ZXJzOjpQbHVnaW5DcmVhdGlv
blBhcmFtZXRlcnMoKQogewogfQogCi12b2lkIFBsdWdpbkNyZWF0aW9uUGFyYW1ldGVyczo6ZW5j
b2RlKElQQzo6QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAordm9pZCBQbHVnaW5DcmVh
dGlvblBhcmFtZXRlcnM6OmVuY29kZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB7CiAg
ICAgZW5jb2RlciA8PCBwbHVnaW5JbnN0YW5jZUlEOwogICAgIGVuY29kZXIgPDwgd2luZG93TlBP
YmplY3RJRDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2lu
Q3JlYXRpb25QYXJhbWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdp
bkNyZWF0aW9uUGFyYW1ldGVycy5oCmluZGV4IDhmMDVhMzNhMDZiZDQxZWU0NjY2MTIzYmMwYWNk
NDk5YjQxYTYwNDYuLmNjNDQ0ZjRlMzlhODRlM2E2YWNhYWQxYzVlNDVlOWFkYmQ0MTQzMjAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luQ3JlYXRpb25QYXJh
bWV0ZXJzLmgKKysrIGIvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5DcmVhdGlv
blBhcmFtZXRlcnMuaApAQCAtMzIsNyArMzIsNyBAQAogCiBuYW1lc3BhY2UgSVBDIHsKICAgICBj
bGFzcyBBcmd1bWVudERlY29kZXI7Ci0gICAgY2xhc3MgQXJndW1lbnRFbmNvZGVyOworICAgIGNs
YXNzIEVuY29kZXI7CiB9CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtNDAsNyArNDAsNyBAQCBu
YW1lc3BhY2UgV2ViS2l0IHsKIHN0cnVjdCBQbHVnaW5DcmVhdGlvblBhcmFtZXRlcnMgewogICAg
IFBsdWdpbkNyZWF0aW9uUGFyYW1ldGVycygpOwogCi0gICAgdm9pZCBlbmNvZGUoSVBDOjpBcmd1
bWVudEVuY29kZXImKSBjb25zdDsKKyAgICB2b2lkIGVuY29kZShJUEM6OkVuY29kZXImKSBjb25z
dDsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoSVBDOjpBcmd1bWVudERlY29kZXImLCBQbHVnaW5D
cmVhdGlvblBhcmFtZXRlcnMmKTsKIAogICAgIC8vIFRoZSB1bmlxdWUgSUQgb2YgdGhpcyBwbHVn
LWluIGluc3RhbmNlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9X
ZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1dl
YlByb2Nlc3NDb25uZWN0aW9uLmNwcAppbmRleCAzNjBjZmMxYWQxYmE4MWY4YjBhN2JjNTJmZmZl
ZDQ0NDVjZWMxMDM1Li44ZjE2MDI4YzQ1NWM5YjgxZDhhOWZjYzg3MmMxOGMzZWIxYTQ0OTlmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1dlYlByb2Nlc3NDb25uZWN0
aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1dlYlByb2Nlc3NDb25u
ZWN0aW9uLmNwcApAQCAtMTQwLDcgKzE0MCw3IEBAIHZvaWQgV2ViUHJvY2Vzc0Nvbm5lY3Rpb246
OmRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpNCiAg
ICAgcGx1Z2luQ29udHJvbGxlclByb3h5LT5kaWRSZWNlaXZlUGx1Z2luQ29udHJvbGxlclByb3h5
TWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsKIH0KIAotdm9pZCBXZWJQcm9jZXNzQ29ubmVj
dGlvbjo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwg
SVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2Rlciwgc3RkOjp1bmlxdWVfcHRyPElQQzo6TWVzc2Fn
ZUVuY29kZXI+JiByZXBseUVuY29kZXIpCit2b2lkIFdlYlByb2Nlc3NDb25uZWN0aW9uOjpkaWRS
ZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6Ok1lc3Nh
Z2VEZWNvZGVyJiBkZWNvZGVyLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYgcmVwbHlF
bmNvZGVyKQogewogICAgIFRlbXBvcmFyeUNoYW5nZTxJUEM6OkNvbm5lY3Rpb24qPiBjdXJyZW50
Q29ubmVjdGlvbkNoYW5nZShjdXJyZW50Q29ubmVjdGlvbiwgJmNvbm5lY3Rpb24pOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1dlYlByb2Nlc3NDb25uZWN0aW9u
LmggYi9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1dlYlByb2Nlc3NDb25uZWN0aW9uLmgK
aW5kZXggMThiZTAwODI0YTc3ZjQ3M2E2MDlmYzQ3Y2FkNGY0Mzc4ZjI2MmJhOC4uM2MxM2JkZGRk
OTcyNDg1MGU3ODY2ZDMxZDc0MGU3N2I1NmUyMjM2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvUGx1Z2luUHJvY2Vzcy9XZWJQcm9jZXNzQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1BsdWdpblByb2Nlc3MvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uaApAQCAtNjYsNyArNjYsNyBA
QCBwcml2YXRlOgogCiAgICAgLy8gSVBDOjpDb25uZWN0aW9uOjpDbGllbnQKICAgICB2b2lkIGRp
ZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6TWVzc2FnZURlY29kZXImKSBv
dmVycmlkZTsKLSAgICB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24m
LCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6TWVzc2FnZUVuY29k
ZXI+Jikgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRSZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpDb25u
ZWN0aW9uJiwgSVBDOjpNZXNzYWdlRGVjb2RlciYsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29k
ZXI+Jikgb3ZlcnJpZGU7CiAgICAgdm9pZCBkaWRDbG9zZShJUEM6OkNvbm5lY3Rpb24mKSBvdmVy
cmlkZTsKICAgICB2b2lkIGRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24m
LCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlUmVjZWl2ZXJOYW1lLCBJUEM6OlN0cmluZ1Jl
ZmVyZW5jZSBtZXNzYWdlTmFtZSkgb3ZlcnJpZGU7CiAgICAgSVBDOjpQcm9jZXNzVHlwZSBsb2Nh
bFByb2Nlc3NUeXBlKCkgb3ZlcnJpZGUgeyByZXR1cm4gSVBDOjpQcm9jZXNzVHlwZTo6UGx1Z2lu
OyB9CkBAIC03NCw3ICs3NCw3IEBAIHByaXZhdGU6CiAKICAgICAvLyBNZXNzYWdlIGhhbmRsZXJz
LgogICAgIHZvaWQgZGlkUmVjZWl2ZVdlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZShJUEM6OkNv
bm5lY3Rpb24mLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7Ci0gICAgdm9pZCBkaWRSZWNlaXZlU3lu
Y1dlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6Ok1lc3Nh
Z2VEZWNvZGVyJiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6TWVzc2FnZUVuY29kZXI+Jik7CisgICAg
dm9pZCBkaWRSZWNlaXZlU3luY1dlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZShJUEM6OkNvbm5l
Y3Rpb24mLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rl
cj4mKTsKICAgICB2b2lkIGNyZWF0ZVBsdWdpbihjb25zdCBQbHVnaW5DcmVhdGlvblBhcmFtZXRl
cnMmLCBQYXNzUmVmUHRyPE1lc3NhZ2VzOjpXZWJQcm9jZXNzQ29ubmVjdGlvbjo6Q3JlYXRlUGx1
Z2luOjpEZWxheWVkUmVwbHk+KTsKICAgICB2b2lkIGNyZWF0ZVBsdWdpbkFzeW5jaHJvbm91c2x5
KGNvbnN0IFBsdWdpbkNyZWF0aW9uUGFyYW1ldGVycyYpOwogICAgIHZvaWQgZGVzdHJveVBsdWdp
bih1aW50NjRfdCBwbHVnaW5JbnN0YW5jZUlELCBib29sIGFzeW5jaHJvbm91c0NyZWF0aW9uSW5j
b21wbGV0ZSwgUGFzc1JlZlB0cjxNZXNzYWdlczo6V2ViUHJvY2Vzc0Nvbm5lY3Rpb246OkRlc3Ry
b3lQbHVnaW46OkRlbGF5ZWRSZXBseT4pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2Ny
aXB0cy93ZWJraXQvbWVzc2FnZXMucHkgYi9Tb3VyY2UvV2ViS2l0Mi9TY3JpcHRzL3dlYmtpdC9t
ZXNzYWdlcy5weQppbmRleCA2YmVjZWJiNmQ4NmE4NGVkMWQ5MzU5ZDU2YjgyODE1MmQxOTA3MmQ0
Li40YjA5OTU1NGQzYTVmYmZmNTk2NmEyZjQ1ODY4Mjc1NGM5ZTZlZmQyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQpAQCAtMTE5LDE0ICsxMTksMTQgQEAgZGVm
IG1lc3NhZ2VfdG9fc3RydWN0X2RlY2xhcmF0aW9uKG1lc3NhZ2UpOgogICAgICAgICBpZiBtZXNz
YWdlLmhhc19hdHRyaWJ1dGUoREVMQVlFRF9BVFRSSUJVVEUpOgogICAgICAgICAgICAgc2VuZF9w
YXJhbWV0ZXJzID0gWyhmdW5jdGlvbl9wYXJhbWV0ZXJfdHlwZSh4LnR5cGUpLCB4Lm5hbWUpIGZv
ciB4IGluIG1lc3NhZ2UucmVwbHlfcGFyYW1ldGVyc10KICAgICAgICAgICAgIHJlc3VsdC5hcHBl
bmQoJyAgICBzdHJ1Y3QgRGVsYXllZFJlcGx5IDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVk
PERlbGF5ZWRSZXBseT4ge1xuJykKLSAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyAgICAgICAg
RGVsYXllZFJlcGx5KFBhc3NSZWZQdHI8SVBDOjpDb25uZWN0aW9uPiwgc3RkOjp1bmlxdWVfcHRy
PElQQzo6TWVzc2FnZUVuY29kZXI+KTtcbicpCisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCcg
ICAgICAgIERlbGF5ZWRSZXBseShQYXNzUmVmUHRyPElQQzo6Q29ubmVjdGlvbj4sIHN0ZDo6dW5p
cXVlX3B0cjxJUEM6OkVuY29kZXI+KTtcbicpCiAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCcg
ICAgICAgIH5EZWxheWVkUmVwbHkoKTtcbicpCiAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCdc
bicpCiAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCcgICAgICAgIGJvb2wgc2VuZCglcyk7XG4n
ICUgJywgJy5qb2luKFsnICcuam9pbih4KSBmb3IgeCBpbiBzZW5kX3BhcmFtZXRlcnNdKSkKICAg
ICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJ1xuJykKICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQo
JyAgICBwcml2YXRlOlxuJykKICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyAgICAgICAgUmVm
UHRyPElQQzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uO1xuJykKLSAgICAgICAgICAgIHJlc3Vs
dC5hcHBlbmQoJyAgICAgICAgc3RkOjp1bmlxdWVfcHRyPElQQzo6TWVzc2FnZUVuY29kZXI+IG1f
ZW5jb2RlcjtcbicpCisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCcgICAgICAgIHN0ZDo6dW5p
cXVlX3B0cjxJUEM6OkVuY29kZXI+IG1fZW5jb2RlcjtcbicpCiAgICAgICAgICAgICByZXN1bHQu
YXBwZW5kKCcgICAgfTtcblxuJykKIAogICAgICAgICByZXN1bHQuYXBwZW5kKCcgICAgdHlwZWRl
ZiAlcyBSZXBseTtcbicgJSByZXBseV90eXBlKG1lc3NhZ2UpKQpAQCAtMTcwLDggKzE3MCw3IEBA
IGRlZiBmb3J3YXJkX2RlY2xhcmF0aW9uc19hbmRfaGVhZGVycyhyZWNlaXZlcik6CiAKICAgICBo
ZWFkZXJzID0gc2V0KFsKICAgICAgICAgJyJBcmd1bWVudHMuaCInLAotICAgICAgICAnIk1lc3Nh
Z2VFbmNvZGVyLmgiJywKLSAgICAgICAgJyJTdHJpbmdSZWZlcmVuY2UuaCInLAorICAgICAgICAn
IkVuY29kZXIuaCInLAogICAgIF0pCiAKICAgICBub25fdGVtcGxhdGVfd3RmX3R5cGVzID0gZnJv
emVuc2V0KFsKQEAgLTM2Niw5ICszNjUsNyBAQCBkZWYgaGVhZGVyc19mb3JfdHlwZSh0eXBlKToK
ICAgICAgICAgJ1dlYkNvcmU6OlRleHRJbmRpY2F0b3JEYXRhJzogWyc8V2ViQ29yZS9UZXh0SW5k
aWNhdG9yLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpWaWV3cG9ydEF0dHJpYnV0ZXMnOiBbJzxX
ZWJDb3JlL1ZpZXdwb3J0QXJndW1lbnRzLmg+J10sCiAgICAgICAgICdXZWJLaXQ6OkJhY2tGb3J3
YXJkTGlzdEl0ZW1TdGF0ZSc6IFsnIlNlc3Npb25TdGF0ZS5oIiddLAotICAgICAgICAnV2ViS2l0
OjpJbmplY3RlZEJ1bmRsZVVzZXJNZXNzYWdlRW5jb2Rlcic6IFtdLAogICAgICAgICAnV2ViS2l0
OjpQYWdlU3RhdGUnOiBbJyJTZXNzaW9uU3RhdGUuaCInXSwKLSAgICAgICAgJ1dlYktpdDo6V2Vi
Q29udGV4dFVzZXJNZXNzYWdlRW5jb2Rlcic6IFtdLAogICAgICAgICAnV2ViS2l0OjpXZWJHZXN0
dXJlRXZlbnQnOiBbJyJXZWJFdmVudC5oIiddLAogICAgICAgICAnV2ViS2l0OjpXZWJLZXlib2Fy
ZEV2ZW50JzogWyciV2ViRXZlbnQuaCInXSwKICAgICAgICAgJ1dlYktpdDo6V2ViTW91c2VFdmVu
dCc6IFsnIldlYkV2ZW50LmgiJ10sCkBAIC00ODYsNyArNDgzLDcgQEAgZGVmIGdlbmVyYXRlX21l
c3NhZ2VfaGFuZGxlcihmaWxlKToKICAgICAgICAgICAgIGlmIG1lc3NhZ2UuY29uZGl0aW9uOgog
ICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyNpZiAlc1xuXG4nICUgbWVzc2FnZS5jb25k
aXRpb24pCiAKLSAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyVzOjpEZWxheWVkUmVwbHk6OkRl
bGF5ZWRSZXBseShQYXNzUmVmUHRyPElQQzo6Q29ubmVjdGlvbj4gY29ubmVjdGlvbiwgc3RkOjp1
bmlxdWVfcHRyPElQQzo6TWVzc2FnZUVuY29kZXI+IGVuY29kZXIpXG4nICUgbWVzc2FnZS5uYW1l
KQorICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnJXM6OkRlbGF5ZWRSZXBseTo6RGVsYXllZFJl
cGx5KFBhc3NSZWZQdHI8SVBDOjpDb25uZWN0aW9uPiBjb25uZWN0aW9uLCBzdGQ6OnVuaXF1ZV9w
dHI8SVBDOjpFbmNvZGVyPiBlbmNvZGVyKVxuJyAlIG1lc3NhZ2UubmFtZSkKICAgICAgICAgICAg
IHJlc3VsdC5hcHBlbmQoJyAgICA6IG1fY29ubmVjdGlvbihjb25uZWN0aW9uKVxuJykKICAgICAg
ICAgICAgIHJlc3VsdC5hcHBlbmQoJyAgICAsIG1fZW5jb2RlcihXVEZNb3ZlKGVuY29kZXIpKVxu
JykKICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJ3tcbicpCkBAIC01MzYsNyArNTMzLDcgQEAg
ZGVmIGdlbmVyYXRlX21lc3NhZ2VfaGFuZGxlcihmaWxlKToKIAogICAgIGlmIHN5bmNfbWVzc2Fn
ZXM6CiAgICAgICAgIHJlc3VsdC5hcHBlbmQoJ1xuJykKLSAgICAgICAgcmVzdWx0LmFwcGVuZCgn
dm9pZCAlczo6ZGlkUmVjZWl2ZVN5bmMlc01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0
aW9uLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpN
ZXNzYWdlRW5jb2Rlcj4mIHJlcGx5RW5jb2RlcilcbicgJSAocmVjZWl2ZXIubmFtZSwgcmVjZWl2
ZXIubmFtZSBpZiByZWNlaXZlci5oYXNfYXR0cmlidXRlKExFR0FDWV9SRUNFSVZFUl9BVFRSSUJV
VEUpIGVsc2UgJycpKQorICAgICAgICByZXN1bHQuYXBwZW5kKCd2b2lkICVzOjpkaWRSZWNlaXZl
U3luYyVzTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6TWVzc2FnZURl
Y29kZXImIGRlY29kZXIsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+JiByZXBseUVuY29k
ZXIpXG4nICUgKHJlY2VpdmVyLm5hbWUsIHJlY2VpdmVyLm5hbWUgaWYgcmVjZWl2ZXIuaGFzX2F0
dHJpYnV0ZShMRUdBQ1lfUkVDRUlWRVJfQVRUUklCVVRFKSBlbHNlICcnKSkKICAgICAgICAgcmVz
dWx0LmFwcGVuZCgne1xuJykKICAgICAgICAgcmVzdWx0ICs9IFtzeW5jX21lc3NhZ2Vfc3RhdGVt
ZW50KHJlY2VpdmVyLCBtZXNzYWdlKSBmb3IgbWVzc2FnZSBpbiBzeW5jX21lc3NhZ2VzXQogICAg
ICAgICByZXN1bHQuYXBwZW5kKCcgICAgVU5VU0VEX1BBUkFNKGNvbm5lY3Rpb24pO1xuJykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvQVBJRGF0YS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvQVBJL0FQSURhdGEuY3BwCmluZGV4IDU3YmY4Yzc0MTYwNzFjMTlkODgx
MjlmZWIxYmU3NTVkMDFmODRjMGEuLjk4Mzc1MGE1YThkMmFkNDlmNzVkZTc0ZWZlNmUzNmMwNmM1
MzUwNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvQVBJRGF0YS5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9BUElEYXRhLmNwcApAQCAtMjcsMTEgKzI3
LDExIEBACiAjaW5jbHVkZSAiQVBJRGF0YS5oIgogCiAjaW5jbHVkZSAiQXJndW1lbnREZWNvZGVy
LmgiCi0jaW5jbHVkZSAiQXJndW1lbnRFbmNvZGVyLmgiCisjaW5jbHVkZSAiRW5jb2Rlci5oIgog
CiBuYW1lc3BhY2UgQVBJIHsKIAotdm9pZCBEYXRhOjplbmNvZGUoSVBDOjpBcmd1bWVudEVuY29k
ZXImIGVuY29kZXIpIGNvbnN0Cit2b2lkIERhdGE6OmVuY29kZShJUEM6OkVuY29kZXImIGVuY29k
ZXIpIGNvbnN0CiB7CiAgICAgZW5jb2RlciA8PCBkYXRhUmVmZXJlbmNlKCk7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL0FQSURhdGEuaCBiL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9BUEkvQVBJRGF0YS5oCmluZGV4IGY1MDM1MjQ0ZDRhYWYwMGNiZDkyNzZlMjlhMWY4
MWMyYjZiYzgzMmEuLjE4ZjAxZDA4Mzk3NTllMTA4ODgwZDgwMGZjZWNlZTYwYjgxNTFhMTggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvQVBJRGF0YS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9BUEkvQVBJRGF0YS5oCkBAIC0zMyw3ICszMyw3IEBACiAKIG5hbWVz
cGFjZSBJUEMgewogY2xhc3MgQXJndW1lbnREZWNvZGVyOwotY2xhc3MgQXJndW1lbnRFbmNvZGVy
OworY2xhc3MgRW5jb2RlcjsKIH0KIAogT0JKQ19DTEFTUyBOU0RhdGE7CkBAIC04MCw3ICs4MCw3
IEBAIHB1YmxpYzoKIAogICAgIElQQzo6RGF0YVJlZmVyZW5jZSBkYXRhUmVmZXJlbmNlKCkgY29u
c3QgeyByZXR1cm4gSVBDOjpEYXRhUmVmZXJlbmNlKG1fYnl0ZXMsIG1fc2l6ZSk7IH0KIAotICAg
IHZvaWQgZW5jb2RlKElQQzo6QXJndW1lbnRFbmNvZGVyJikgY29uc3Q7CisgICAgdm9pZCBlbmNv
ZGUoSVBDOjpFbmNvZGVyJikgY29uc3Q7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKElQQzo6QXJn
dW1lbnREZWNvZGVyJiwgUmVmUHRyPEFQSTo6T2JqZWN0PiYpOwogCiBwcml2YXRlOgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9BUElFcnJvci5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvQVBJL0FQSUVycm9yLmNwcAppbmRleCA4NmExZGIwYjAzNzRkMzZmNGEzZTkx
MzE0ZDU5MDg4MzZlNWJkYTJhLi5kODVmOTQzYjcwYTMzYzE3ZDYyYzg5MjUwMGRkYmZmZmZiMDU5
ZjhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL0FQSUVycm9yLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL0FQSUVycm9yLmNwcApAQCAtMzgsNyArMzgs
NyBAQCBjb25zdCBXVEY6OlN0cmluZyYgRXJyb3I6OndlYktpdEVycm9yRG9tYWluKCkKICAgICBy
ZXR1cm4gd2ViS2l0RXJyb3JEb21haW5TdHJpbmc7CiB9CiAKLXZvaWQgRXJyb3I6OmVuY29kZShJ
UEM6OkFyZ3VtZW50RW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3ZvaWQgRXJyb3I6OmVuY29kZShJ
UEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB7CiAgICAgZW5jb2RlciA8PCBwbGF0Zm9ybUVy
cm9yKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL0FQSUVycm9y
LmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL0FQSUVycm9yLmgKaW5kZXggYzI5ZTk1ZmYz
NTdmZDZmMDJiMzViM2I5NTgzNzQ3MDI5ODVlYzA5MS4uM2EwOTU3MTY1YjliNzdiMGEyMWNmMmI3
YzE4Y2JiODc1OGRlMmRkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9B
UElFcnJvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvQVBJRXJyb3IuaApAQCAt
MzEsNyArMzEsNyBAQAogCiBuYW1lc3BhY2UgSVBDIHsKIGNsYXNzIEFyZ3VtZW50RGVjb2RlcjsK
LWNsYXNzIEFyZ3VtZW50RW5jb2RlcjsKK2NsYXNzIEVuY29kZXI7CiB9CiAKIG5hbWVzcGFjZSBB
UEkgewpAQCAtNTcsNyArNTcsNyBAQCBwdWJsaWM6CiAKICAgICBjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZUVycm9yJiBwbGF0Zm9ybUVycm9yKCkgY29uc3QgeyByZXR1cm4gbV9wbGF0Zm9ybUVycm9y
OyB9CiAKLSAgICB2b2lkIGVuY29kZShJUEM6OkFyZ3VtZW50RW5jb2RlciYpIGNvbnN0OworICAg
IHZvaWQgZW5jb2RlKElQQzo6RW5jb2RlciYpIGNvbnN0OwogICAgIHN0YXRpYyBib29sIGRlY29k
ZShJUEM6OkFyZ3VtZW50RGVjb2RlciYsIFJlZlB0cjxPYmplY3Q+Jik7CiAKIHByaXZhdGU6CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL0FQSUZyYW1lSGFuZGxlLmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvQVBJRnJhbWVIYW5kbGUuY3BwCmluZGV4IDRmMzg2
MGJhZjcyMWU3MmVkMmYyNDU5MjZhMmY4YjM4MDNiNjc5Y2MuLjhhMzIwMDBjNDI3YTg2MGQzNjg0
ZTZhYTUxZTExMGE5YTY1NWQ5NDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9B
UEkvQVBJRnJhbWVIYW5kbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvQVBJ
RnJhbWVIYW5kbGUuY3BwCkBAIC0yNyw3ICsyNyw3IEBACiAjaW5jbHVkZSAiQVBJRnJhbWVIYW5k
bGUuaCIKIAogI2luY2x1ZGUgIkFyZ3VtZW50RGVjb2Rlci5oIgotI2luY2x1ZGUgIkFyZ3VtZW50
RW5jb2Rlci5oIgorI2luY2x1ZGUgIkVuY29kZXIuaCIKIAogbmFtZXNwYWNlIEFQSSB7CiAKQEAg
LTUxLDcgKzUxLDcgQEAgRnJhbWVIYW5kbGU6On5GcmFtZUhhbmRsZSgpCiB7CiB9CiAKLXZvaWQg
RnJhbWVIYW5kbGU6OmVuY29kZShJUEM6OkFyZ3VtZW50RW5jb2RlciYgZW5jb2RlcikgY29uc3QK
K3ZvaWQgRnJhbWVIYW5kbGU6OmVuY29kZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB7
CiAgICAgZW5jb2RlciA8PCBtX2ZyYW1lSUQ7CiAgICAgZW5jb2RlciA8PCBtX2lzQXV0b2NvbnZl
cnRpbmc7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL0FQSUZyYW1lSGFu
ZGxlLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL0FQSUZyYW1lSGFuZGxlLmgKaW5kZXgg
ZjQwZDMzNzI3ODIyNmNkMzk5MzE1MjU5MDc5NDlhZmRiZGUzNjY3OC4uMjI3Zjk4NGFiZGEzZGI3
Njc2MjA2MTk0MjYwNGJlOWI4ZWQ4MDExZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hh
cmVkL0FQSS9BUElGcmFtZUhhbmRsZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkv
QVBJRnJhbWVIYW5kbGUuaApAQCAtMzEsNyArMzEsNyBAQAogCiBuYW1lc3BhY2UgSVBDIHsKIGNs
YXNzIEFyZ3VtZW50RGVjb2RlcjsKLWNsYXNzIEFyZ3VtZW50RW5jb2RlcjsKK2NsYXNzIEVuY29k
ZXI7CiB9CiAKIG5hbWVzcGFjZSBBUEkgewpAQCAtNDcsNyArNDcsNyBAQCBwdWJsaWM6CiAgICAg
dWludDY0X3QgZnJhbWVJRCgpIGNvbnN0IHsgcmV0dXJuIG1fZnJhbWVJRDsgfQogICAgIGJvb2wg
aXNBdXRvY29udmVydGluZygpIGNvbnN0IHsgcmV0dXJuIG1faXNBdXRvY29udmVydGluZzsgfQog
Ci0gICAgdm9pZCBlbmNvZGUoSVBDOjpBcmd1bWVudEVuY29kZXImKSBjb25zdDsKKyAgICB2b2lk
IGVuY29kZShJUEM6OkVuY29kZXImKSBjb25zdDsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoSVBD
OjpBcmd1bWVudERlY29kZXImLCBSZWZQdHI8T2JqZWN0PiYpOwogCiBwcml2YXRlOgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9BUElHZW9tZXRyeS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvQVBJL0FQSUdlb21ldHJ5LmNwcAppbmRleCBjNTk4MjdiMThkYWM1Y2Ix
Y2VjYWNmYWE1ZGFkMzc5MmNlODA5ODk1Li5lYWZhNzMyZDUyMGI4NjYzNDZiYjk4OWUwNTI5ZGFm
ZWFmYzQ5NThkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL0FQSUdlb21l
dHJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL0FQSUdlb21ldHJ5LmNwcApA
QCAtMjcsMTEgKzI3LDExIEBACiAjaW5jbHVkZSAiQVBJR2VvbWV0cnkuaCIKIAogI2luY2x1ZGUg
IkFyZ3VtZW50RGVjb2Rlci5oIgotI2luY2x1ZGUgIkFyZ3VtZW50RW5jb2Rlci5oIgorI2luY2x1
ZGUgIkVuY29kZXIuaCIKIAogbmFtZXNwYWNlIEFQSSB7CiAKLXZvaWQgUG9pbnQ6OmVuY29kZShJ
UEM6OkFyZ3VtZW50RW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3ZvaWQgUG9pbnQ6OmVuY29kZShJ
UEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB7CiAgICAgZW5jb2RlciA8PCBtX3BvaW50Lng7
CiAgICAgZW5jb2RlciA8PCBtX3BvaW50Lnk7CkBAIC01MCw3ICs1MCw3IEBAIGJvb2wgUG9pbnQ6
OmRlY29kZShJUEM6OkFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgUmVmUHRyPEFQSTo6T2JqZWN0
PiYgcmVzdWx0KQogfQogCiAKLXZvaWQgU2l6ZTo6ZW5jb2RlKElQQzo6QXJndW1lbnRFbmNvZGVy
JiBlbmNvZGVyKSBjb25zdAordm9pZCBTaXplOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVy
KSBjb25zdAogewogICAgIGVuY29kZXIgPDwgbV9zaXplLndpZHRoOwogICAgIGVuY29kZXIgPDwg
bV9zaXplLmhlaWdodDsKQEAgLTY5LDcgKzY5LDcgQEAgYm9vbCBTaXplOjpkZWNvZGUoSVBDOjpB
cmd1bWVudERlY29kZXImIGRlY29kZXIsIFJlZlB0cjxBUEk6Ok9iamVjdD4mIHJlc3VsdCkKIH0K
IAogCi12b2lkIFJlY3Q6OmVuY29kZShJUEM6OkFyZ3VtZW50RW5jb2RlciYgZW5jb2RlcikgY29u
c3QKK3ZvaWQgUmVjdDo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKIHsKICAg
ICBlbmNvZGVyIDw8IG1fcmVjdC5vcmlnaW4ueDsKICAgICBlbmNvZGVyIDw8IG1fcmVjdC5vcmln
aW4ueTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvQVBJR2VvbWV0cnku
aCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvQVBJR2VvbWV0cnkuaAppbmRleCAxMjIyMTk4
M2IzYWE4MjNhYTUzNDlkNmFhZDE3ODZiYzFmYWY0ZGY4Li5jOWMxZDE4ZmVhN2ZhOWQ1MGRkMjky
ZTYzMGQ5YjQ5M2YyOGZkYmYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJ
L0FQSUdlb21ldHJ5LmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9BUElHZW9tZXRy
eS5oCkBAIC0zMiw3ICszMiw3IEBACiAKIG5hbWVzcGFjZSBJUEMgewogY2xhc3MgQXJndW1lbnRE
ZWNvZGVyOwotY2xhc3MgQXJndW1lbnRFbmNvZGVyOworY2xhc3MgRW5jb2RlcjsKIH0KIAogbmFt
ZXNwYWNlIEFQSSB7CkBAIC00Niw3ICs0Niw3IEBAIHB1YmxpYzoKIAogICAgIGNvbnN0IFdLU2l6
ZSYgc2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2l6ZTsgfQogCi0gICAgdm9pZCBlbmNvZGUoSVBD
OjpBcmd1bWVudEVuY29kZXImKSBjb25zdDsKKyAgICB2b2lkIGVuY29kZShJUEM6OkVuY29kZXIm
KSBjb25zdDsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoSVBDOjpBcmd1bWVudERlY29kZXImLCBS
ZWZQdHI8QVBJOjpPYmplY3Q+Jik7CiAKIHByaXZhdGU6CkBAIC02Nyw3ICs2Nyw3IEBAIHB1Ymxp
YzoKIAogICAgIGNvbnN0IFdLUG9pbnQmIHBvaW50KCkgY29uc3QgeyByZXR1cm4gbV9wb2ludDsg
fQogCi0gICAgdm9pZCBlbmNvZGUoSVBDOjpBcmd1bWVudEVuY29kZXImKSBjb25zdDsKKyAgICB2
b2lkIGVuY29kZShJUEM6OkVuY29kZXImKSBjb25zdDsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUo
SVBDOjpBcmd1bWVudERlY29kZXImLCBSZWZQdHI8QVBJOjpPYmplY3Q+Jik7CiAKIHByaXZhdGU6
CkBAIC04Nyw3ICs4Nyw3IEBAIHB1YmxpYzoKIAogICAgIGNvbnN0IFdLUmVjdCYgcmVjdCgpIGNv
bnN0IHsgcmV0dXJuIG1fcmVjdDsgfQogCi0gICAgdm9pZCBlbmNvZGUoSVBDOjpBcmd1bWVudEVu
Y29kZXImKSBjb25zdDsKKyAgICB2b2lkIGVuY29kZShJUEM6OkVuY29kZXImKSBjb25zdDsKICAg
ICBzdGF0aWMgYm9vbCBkZWNvZGUoSVBDOjpBcmd1bWVudERlY29kZXImLCBSZWZQdHI8QVBJOjpP
YmplY3Q+Jik7CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
QVBJL0FQSU51bWJlci5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9BUElOdW1iZXIuaApp
bmRleCA1Y2I1MDA3MDc4OTk5YmNjYzQzMjZjYjllZTZhNmE2YzEzNmM0NjQwLi40YTRhOTg3Zjg1
YmNhYmY5NWM3MzAzYzA2NzI1YmY1ZWJlMDg0MDg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvQVBJL0FQSU51bWJlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkv
QVBJTnVtYmVyLmgKQEAgLTI4LDcgKzI4LDcgQEAKIAogI2luY2x1ZGUgIkFQSU9iamVjdC5oIgog
I2luY2x1ZGUgIkFyZ3VtZW50RGVjb2Rlci5oIgotI2luY2x1ZGUgIkFyZ3VtZW50RW5jb2Rlci5o
IgorI2luY2x1ZGUgIkVuY29kZXIuaCIKIAogbmFtZXNwYWNlIEFQSSB7CiAKQEAgLTQyLDcgKzQy
LDcgQEAgcHVibGljOgogCiAgICAgTnVtYmVyVHlwZSB2YWx1ZSgpIGNvbnN0IHsgcmV0dXJuIG1f
dmFsdWU7IH0KIAotICAgIHZvaWQgZW5jb2RlKElQQzo6QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVy
KSBjb25zdAorICAgIHZvaWQgZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAg
ICB7CiAgICAgICAgIGVuY29kZXIgPDwgbV92YWx1ZTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvQVBJL0FQSVBhZ2VHcm91cEhhbmRsZS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvQVBJL0FQSVBhZ2VHcm91cEhhbmRsZS5jcHAKaW5kZXggNWU5ZjIxODAyNGRi
MGNkNTNiZGZiMDEyYzcyODc5NmVmMGJiYTM2OC4uZDExNWM1MWVkYzY2ZmRmMjFlNmJiNzgwOTBk
NTNlNWI3N2VmMTBhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9BUElQ
YWdlR3JvdXBIYW5kbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvQVBJUGFn
ZUdyb3VwSGFuZGxlLmNwcApAQCAtMjcsNyArMjcsNyBAQAogI2luY2x1ZGUgIkFQSVBhZ2VHcm91
cEhhbmRsZS5oIgogCiAjaW5jbHVkZSAiQXJndW1lbnREZWNvZGVyLmgiCi0jaW5jbHVkZSAiQXJn
dW1lbnRFbmNvZGVyLmgiCisjaW5jbHVkZSAiRW5jb2Rlci5oIgogCiBuYW1lc3BhY2UgQVBJIHsK
IApAQCAtNDUsNyArNDUsNyBAQCBQYWdlR3JvdXBIYW5kbGU6On5QYWdlR3JvdXBIYW5kbGUoKQog
ewogfQogCi12b2lkIFBhZ2VHcm91cEhhbmRsZTo6ZW5jb2RlKElQQzo6QXJndW1lbnRFbmNvZGVy
JiBlbmNvZGVyKSBjb25zdAordm9pZCBQYWdlR3JvdXBIYW5kbGU6OmVuY29kZShJUEM6OkVuY29k
ZXImIGVuY29kZXIpIGNvbnN0CiB7CiAgICAgZW5jb2RlciA8PCBtX3dlYlBhZ2VHcm91cERhdGE7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL0FQSVBhZ2VHcm91cEhh
bmRsZS5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9BUElQYWdlR3JvdXBIYW5kbGUuaApp
bmRleCBjZWRjMTdlYWMxZWRhMzdmM2VlODFjYWZlZDgyNDM1ODBjN2IyYTQ2Li5iYzAzMmM5ODQ5
Mjc5ZjA2MzU1NDhlYjY4ZTRhMjMwNzliYjMzZjM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvQVBJL0FQSVBhZ2VHcm91cEhhbmRsZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9BUEkvQVBJUGFnZUdyb3VwSGFuZGxlLmgKQEAgLTMyLDcgKzMyLDcgQEAKIAogbmFtZXNw
YWNlIElQQyB7CiBjbGFzcyBBcmd1bWVudERlY29kZXI7Ci1jbGFzcyBBcmd1bWVudEVuY29kZXI7
CitjbGFzcyBFbmNvZGVyOwogfQogCiBuYW1lc3BhY2UgQVBJIHsKQEAgLTQ0LDcgKzQ0LDcgQEAg
cHVibGljOgogCiAgICAgY29uc3QgV2ViS2l0OjpXZWJQYWdlR3JvdXBEYXRhJiB3ZWJQYWdlR3Jv
dXBEYXRhKCkgY29uc3QgeyByZXR1cm4gbV93ZWJQYWdlR3JvdXBEYXRhOyB9CiAKLSAgICB2b2lk
IGVuY29kZShJUEM6OkFyZ3VtZW50RW5jb2RlciYpIGNvbnN0OworICAgIHZvaWQgZW5jb2RlKElQ
Qzo6RW5jb2RlciYpIGNvbnN0OwogICAgIHN0YXRpYyBib29sIGRlY29kZShJUEM6OkFyZ3VtZW50
RGVjb2RlciYsIFJlZlB0cjxPYmplY3Q+Jik7CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvQVBJL0FQSVBhZ2VIYW5kbGUuY3BwIGIvU291cmNlL1dlYktpdDIv
U2hhcmVkL0FQSS9BUElQYWdlSGFuZGxlLmNwcAppbmRleCBmZmIwMWY0NDkzMDA3MWQ1YmFjZTE5
Y2NhMmNkNDg0NmZkOTMzYzg5Li5kY2IwODQ5YzE5YzhjODQxMjYxOWM5YjJiYmJiNWQ1NTQyMzVl
NWZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL0FQSVBhZ2VIYW5kbGUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvQVBJUGFnZUhhbmRsZS5jcHAKQEAg
LTI3LDcgKzI3LDcgQEAKICNpbmNsdWRlICJBUElQYWdlSGFuZGxlLmgiCiAKICNpbmNsdWRlICJB
cmd1bWVudERlY29kZXIuaCIKLSNpbmNsdWRlICJBcmd1bWVudEVuY29kZXIuaCIKKyNpbmNsdWRl
ICJFbmNvZGVyLmgiCiAKIG5hbWVzcGFjZSBBUEkgewogCkBAIC01MSw3ICs1MSw3IEBAIFBhZ2VI
YW5kbGU6On5QYWdlSGFuZGxlKCkKIHsKIH0KIAotdm9pZCBQYWdlSGFuZGxlOjplbmNvZGUoSVBD
OjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit2b2lkIFBhZ2VIYW5kbGU6OmVuY29k
ZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB7CiAgICAgZW5jb2RlciA8PCBtX3BhZ2VJ
RDsKICAgICBlbmNvZGVyIDw8IG1faXNBdXRvY29udmVydGluZzsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9BUEkvQVBJUGFnZUhhbmRsZS5oIGIvU291cmNlL1dlYktpdDIvU2hh
cmVkL0FQSS9BUElQYWdlSGFuZGxlLmgKaW5kZXggYTFkMmM4NzNkNDExYWM5YTE5YjNkZWY3ODlk
YTc1Njc3ZjQ4NWYxYi4uNDJmODNjNzA5NDg4NDhjOTkyNmMzZGY5MGMzMDM5ZDVhMDMxMTRhMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9BUElQYWdlSGFuZGxlLmgKKysr
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9BUElQYWdlSGFuZGxlLmgKQEAgLTMxLDcgKzMx
LDcgQEAKIAogbmFtZXNwYWNlIElQQyB7CiBjbGFzcyBBcmd1bWVudERlY29kZXI7Ci1jbGFzcyBB
cmd1bWVudEVuY29kZXI7CitjbGFzcyBFbmNvZGVyOwogfQogCiBuYW1lc3BhY2UgQVBJIHsKQEAg
LTQ1LDcgKzQ1LDcgQEAgcHVibGljOgogICAgIHVpbnQ2NF90IHBhZ2VJRCgpIGNvbnN0IHsgcmV0
dXJuIG1fcGFnZUlEOyB9CiAgICAgYm9vbCBpc0F1dG9jb252ZXJ0aW5nKCkgY29uc3QgeyByZXR1
cm4gbV9pc0F1dG9jb252ZXJ0aW5nOyB9CiAKLSAgICB2b2lkIGVuY29kZShJUEM6OkFyZ3VtZW50
RW5jb2RlciYpIGNvbnN0OworICAgIHZvaWQgZW5jb2RlKElQQzo6RW5jb2RlciYpIGNvbnN0Owog
ICAgIHN0YXRpYyBib29sIGRlY29kZShJUEM6OkFyZ3VtZW50RGVjb2RlciYsIFJlZlB0cjxPYmpl
Y3Q+Jik7CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJ
L0FQSVVSTC5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9BUElVUkwuaAppbmRleCBiNGU3
YzhkYWE2ODhkNDU3YTllN2NmNDk4NGM0OWU1MjU3ODVlOGUwLi5kNDc2MGY1MmExZTRkOWRkZDEy
NDk0MGM2Nzg5YWI0N2U0MGNiYmRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
QVBJL0FQSVVSTC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvQVBJVVJMLmgKQEAg
LTg1LDcgKzg1LDcgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gbV9wYXJzZWRVUkwtPmlzVmFs
aWQoKSA/IG1fcGFyc2VkVVJMLT5sYXN0UGF0aENvbXBvbmVudCgpIDogV1RGOjpTdHJpbmcoKTsK
ICAgICB9CiAKLSAgICB2b2lkIGVuY29kZShJUEM6OkFyZ3VtZW50RW5jb2RlciYgZW5jb2Rlcikg
Y29uc3QKKyAgICB2b2lkIGVuY29kZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAg
ewogICAgICAgICBlbmNvZGVyIDw8IG1fc3RyaW5nOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9BUEkvQVBJVVJMUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvQVBJL0FQSVVSTFJlcXVlc3QuY3BwCmluZGV4IDIzZDUzNWE3MGEyZDBlZTE5MDg5OTZk
YTIyYmVjYmRlZDAwOTMyNmYuLmQwN2RmNTZkNTYxZTRmZTZhMzdjYjY5ZmY3NzZhNDIzNDM5ZDM2
MjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvQVBJVVJMUmVxdWVzdC5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9BUElVUkxSZXF1ZXN0LmNwcApAQCAt
NTMsNyArNTMsNyBAQCB2b2lkIFVSTFJlcXVlc3Q6OnNldERlZmF1bHRUaW1lb3V0SW50ZXJ2YWwo
ZG91YmxlIHRpbWVvdXRJbnRlcnZhbCkKICAgICAgICAgcHJvY2Vzc1Bvb2wtPnNldERlZmF1bHRS
ZXF1ZXN0VGltZW91dEludGVydmFsKHRpbWVvdXRJbnRlcnZhbCk7CiB9CiAKLXZvaWQgVVJMUmVx
dWVzdDo6ZW5jb2RlKElQQzo6QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAordm9pZCBV
UkxSZXF1ZXN0OjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewogICAgIGVu
Y29kZXIgPDwgcmVzb3VyY2VSZXF1ZXN0KCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvQVBJL0FQSVVSTFJlcXVlc3QuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkv
QVBJVVJMUmVxdWVzdC5oCmluZGV4IDAyNmNjZTM5YjIxNmMwZWExYTVjMDc4NWZmODA0NjRjNDA2
YmU1YmYuLmYyNzI1NzU1YzIzZDhkMjk2NzQ0Y2ExZGFiZGI5NWIzNGZhYTgzMGQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvQVBJVVJMUmVxdWVzdC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9BUEkvQVBJVVJMUmVxdWVzdC5oCkBAIC0zMiw3ICszMiw3IEBACiAK
IG5hbWVzcGFjZSBJUEMgewogY2xhc3MgQXJndW1lbnREZWNvZGVyOwotY2xhc3MgQXJndW1lbnRF
bmNvZGVyOworY2xhc3MgRW5jb2RlcjsKIH0KIAogbmFtZXNwYWNlIEFQSSB7CkBAIC00OSw3ICs0
OSw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgZG91YmxlIGRlZmF1bHRUaW1lb3V0SW50ZXJ2YWwo
KTsgLy8gTWF5IHJldHVybiAwIHdoZW4gdXNpbmcgcGxhdGZvcm0gZGVmYXVsdC4KICAgICBzdGF0
aWMgdm9pZCBzZXREZWZhdWx0VGltZW91dEludGVydmFsKGRvdWJsZSk7CiAKLSAgICB2b2lkIGVu
Y29kZShJUEM6OkFyZ3VtZW50RW5jb2RlciYpIGNvbnN0OworICAgIHZvaWQgZW5jb2RlKElQQzo6
RW5jb2RlciYpIGNvbnN0OwogICAgIHN0YXRpYyBib29sIGRlY29kZShJUEM6OkFyZ3VtZW50RGVj
b2RlciYsIFJlZlB0cjxPYmplY3Q+Jik7CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvQVBJL0FQSVVSTFJlc3BvbnNlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9BUEkvQVBJVVJMUmVzcG9uc2UuY3BwCmluZGV4IDIyNmQ2MjRjYjVkMDQwZGQ0MmYyZTcx
NjdjNWIyOWMwZTJjODQxZDMuLjQxMmNjZjg3N2JmNTc1NmMxOTdiMzA5Zjc0YzJiOGIxM2Q2Y2Mw
MzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvQVBJVVJMUmVzcG9uc2Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvQVBJVVJMUmVzcG9uc2UuY3BwCkBA
IC0zNyw3ICszNyw3IEBAIFVSTFJlc3BvbnNlOjpVUkxSZXNwb25zZShjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKIHsKIH0KIAotdm9pZCBVUkxSZXNwb25zZTo6ZW5j
b2RlKElQQzo6QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAordm9pZCBVUkxSZXNwb25z
ZTo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKIHsKICAgICBlbmNvZGVyIDw8
IHJlc291cmNlUmVzcG9uc2UoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9BUEkvQVBJVVJMUmVzcG9uc2UuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvQVBJVVJM
UmVzcG9uc2UuaAppbmRleCBkYjgxYjNmOWM3ODljZjczM2JkMWNlM2M1Mzc3YjY2NjYwMDgyODJk
Li5jMThhYmVkZjgwNmJkNzhmMGUwNGQyOTdjMWU1MWQ2YTBjMGYzMjY3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL0FQSVVSTFJlc3BvbnNlLmgKKysrIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL0FQSS9BUElVUkxSZXNwb25zZS5oCkBAIC0zMiw3ICszMiw3IEBACiAKIG5h
bWVzcGFjZSBJUEMgewogY2xhc3MgQXJndW1lbnREZWNvZGVyOwotY2xhc3MgQXJndW1lbnRFbmNv
ZGVyOworY2xhc3MgRW5jb2RlcjsKIH0KIAogbmFtZXNwYWNlIEFQSSB7CkBAIC00Niw3ICs0Niw3
IEBAIHB1YmxpYzoKIAogICAgIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmIHJlc291
cmNlUmVzcG9uc2UoKSBjb25zdCB7IHJldHVybiBtX3Jlc3BvbnNlOyB9CiAKLSAgICB2b2lkIGVu
Y29kZShJUEM6OkFyZ3VtZW50RW5jb2RlciYpIGNvbnN0OworICAgIHZvaWQgZW5jb2RlKElQQzo6
RW5jb2RlciYpIGNvbnN0OwogICAgIHN0YXRpYyBib29sIGRlY29kZShJUEM6OkFyZ3VtZW50RGVj
b2RlciYsIFJlZlB0cjxPYmplY3Q+Jik7CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvQVBJL0NvY29hL1JlbW90ZU9iamVjdEludm9jYXRpb24uaCBiL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9BUEkvQ29jb2EvUmVtb3RlT2JqZWN0SW52b2NhdGlvbi5oCmluZGV4
IGQyYTg4Y2U4NDQ1NzNiZDViMGQxZWMwZmZjNjFlMDUzZGRjMzI0NjcuLjE4NzBkMzZmYzIzZjRm
ODMxN2M1N2MwZGQ3NWJlYzkwY2IyNzdmNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9BUEkvQ29jb2EvUmVtb3RlT2JqZWN0SW52b2NhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9BUEkvQ29jb2EvUmVtb3RlT2JqZWN0SW52b2NhdGlvbi5oCkBAIC0zMCw3ICsz
MCw3IEBACiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBJUEMg
ewotY2xhc3MgQXJndW1lbnRFbmNvZGVyOworY2xhc3MgRW5jb2RlcjsKIGNsYXNzIEFyZ3VtZW50
RGVjb2RlcjsKIH0KIApAQCAtNTcsNyArNTcsNyBAQCBwdWJsaWM6CiAgICAgY29uc3QgQVBJOjpE
aWN0aW9uYXJ5KiBlbmNvZGVkSW52b2NhdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fZW5jb2RlZElu
dm9jYXRpb24uZ2V0KCk7IH0KICAgICBjb25zdCBSZXBseUluZm8qIHJlcGx5SW5mbygpIGNvbnN0
IHsgcmV0dXJuIG1fcmVwbHlJbmZvLmdldCgpOyB9CiAKLSAgICB2b2lkIGVuY29kZShJUEM6OkFy
Z3VtZW50RW5jb2RlciYpIGNvbnN0OworICAgIHZvaWQgZW5jb2RlKElQQzo6RW5jb2RlciYpIGNv
bnN0OwogICAgIHN0YXRpYyBib29sIGRlY29kZShJUEM6OkFyZ3VtZW50RGVjb2RlciYsIFJlbW90
ZU9iamVjdEludm9jYXRpb24mKTsKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9BUEkvQ29jb2EvUmVtb3RlT2JqZWN0SW52b2NhdGlvbi5tbSBiL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9BUEkvQ29jb2EvUmVtb3RlT2JqZWN0SW52b2NhdGlvbi5tbQppbmRleCAw
OWNjYjdiYjkzM2UyOTVhNDk3Y2FhYjM0YjQ0NTM3NDg5Njk3NzFiLi41NzY0NzRlZWNhMGQ5OGI0
NmNmMWIzMzc2YjhkYWNkY2NkOWNlMzY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvQVBJL0NvY29hL1JlbW90ZU9iamVjdEludm9jYXRpb24ubW0KKysrIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL0FQSS9Db2NvYS9SZW1vdGVPYmplY3RJbnZvY2F0aW9uLm1tCkBAIC00Miw3ICs0
Miw3IEBAIFJlbW90ZU9iamVjdEludm9jYXRpb246OlJlbW90ZU9iamVjdEludm9jYXRpb24oY29u
c3QgU3RyaW5nJiBpbnRlcmZhY2VJZGVudGlmaWVyCiB7CiB9CiAKLXZvaWQgUmVtb3RlT2JqZWN0
SW52b2NhdGlvbjo6ZW5jb2RlKElQQzo6QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAor
dm9pZCBSZW1vdGVPYmplY3RJbnZvY2F0aW9uOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVy
KSBjb25zdAogewogICAgIGVuY29kZXIgPDwgbV9pbnRlcmZhY2VJZGVudGlmaWVyOwogICAgIFVz
ZXJEYXRhOjplbmNvZGUoZW5jb2RlciwgbV9lbmNvZGVkSW52b2NhdGlvbi5nZXQoKSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQXNzaXN0ZWROb2RlSW5mb3JtYXRpb24uY3Bw
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0Fzc2lzdGVkTm9kZUluZm9ybWF0aW9uLmNwcAppbmRl
eCBmNjZjYmZjZjZmNTQ0ODY3MzYzZDY4OGRlNjBmN2ExNzFlODU4OTQ0Li5jYmMxMTBjYWQ2MTFi
YTZiNTY4MGI4YjlhZjA0YjFlZTlhODE3ZDg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvQXNzaXN0ZWROb2RlSW5mb3JtYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9Bc3Npc3RlZE5vZGVJbmZvcm1hdGlvbi5jcHAKQEAgLTMyLDcgKzMyLDcgQEAKIG5hbWVz
cGFjZSBXZWJLaXQgewogCiAjaWYgUExBVEZPUk0oSU9TKQotdm9pZCBPcHRpb25JdGVtOjplbmNv
ZGUoSVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit2b2lkIE9wdGlvbkl0ZW06
OmVuY29kZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB7CiAgICAgZW5jb2RlciA8PCB0
ZXh0OwogICAgIGVuY29kZXIgPDwgaXNHcm91cDsKQEAgLTYxLDcgKzYxLDcgQEAgYm9vbCBPcHRp
b25JdGVtOjpkZWNvZGUoSVBDOjpBcmd1bWVudERlY29kZXImIGRlY29kZXIsIE9wdGlvbkl0ZW0m
IHJlc3VsdCkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBBc3Npc3RlZE5vZGVJbmZvcm1h
dGlvbjo6ZW5jb2RlKElQQzo6QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAordm9pZCBB
c3Npc3RlZE5vZGVJbmZvcm1hdGlvbjo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29u
c3QKIHsKICAgICBlbmNvZGVyIDw8IGVsZW1lbnRSZWN0OwogICAgIGVuY29kZXIgPDwgc2VsZWN0
aW9uUmVjdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Bc3Npc3RlZE5vZGVJ
bmZvcm1hdGlvbi5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0Fzc2lzdGVkTm9kZUluZm9ybWF0
aW9uLmgKaW5kZXggMjYxOThkMWI1NmYyMDQ3MGRhMWI5ODVmN2QxODc3ZWQxZTNiNDZlZC4uMTkw
MGQxOWZkZWM5YTVjYmJmMTk2YTJhMjVkMjZkNzljZTkyNjRkMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL0Fzc2lzdGVkTm9kZUluZm9ybWF0aW9uLmgKKysrIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL0Fzc2lzdGVkTm9kZUluZm9ybWF0aW9uLmgKQEAgLTgyLDcgKzgyLDcgQEAg
c3RydWN0IE9wdGlvbkl0ZW0gewogICAgIGJvb2wgZGlzYWJsZWQgeyBmYWxzZSB9OwogICAgIGlu
dCBwYXJlbnRHcm91cElEIHsgMCB9OwogCi0gICAgdm9pZCBlbmNvZGUoSVBDOjpBcmd1bWVudEVu
Y29kZXImKSBjb25zdDsKKyAgICB2b2lkIGVuY29kZShJUEM6OkVuY29kZXImKSBjb25zdDsKICAg
ICBzdGF0aWMgYm9vbCBkZWNvZGUoSVBDOjpBcmd1bWVudERlY29kZXImLCBPcHRpb25JdGVtJik7
CiB9OwogCkBAIC0xMTEsNyArMTExLDcgQEAgc3RydWN0IEFzc2lzdGVkTm9kZUluZm9ybWF0aW9u
IHsKICAgICBTdHJpbmcgdGl0bGU7CiAgICAgV2ViQ29yZTo6QXV0b2ZpbGxGaWVsZE5hbWUgYXV0
b2ZpbGxGaWVsZE5hbWUgeyBXZWJDb3JlOjpBdXRvZmlsbEZpZWxkTmFtZTo6Tm9uZSB9OwogCi0g
ICAgdm9pZCBlbmNvZGUoSVBDOjpBcmd1bWVudEVuY29kZXImKSBjb25zdDsKKyAgICB2b2lkIGVu
Y29kZShJUEM6OkVuY29kZXImKSBjb25zdDsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoSVBDOjpB
cmd1bWVudERlY29kZXImLCBBc3Npc3RlZE5vZGVJbmZvcm1hdGlvbiYpOwogfTsKICNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0NvY29hL0RhdGFEZXRlY3Rpb25SZXN1
bHQuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db2NvYS9EYXRhRGV0ZWN0aW9uUmVzdWx0LmgK
aW5kZXggMGQ1YTg3ZDM3N2VhMGJiMzBlMGQ1ZTRjODU2MTJmZGE2ZWFiZTk0Zi4uMGE0MGQwNmM3
YjQ1MmRmNzUxNDliMTBiZWQ4NDU1NjMzNzViMWUwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvU2hhcmVkL0NvY29hL0RhdGFEZXRlY3Rpb25SZXN1bHQuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvQ29jb2EvRGF0YURldGVjdGlvblJlc3VsdC5oCkBAIC0zNyw3ICszNyw3IEBAIG5h
bWVzcGFjZSBXZWJLaXQgewogc3RydWN0IERhdGFEZXRlY3Rpb25SZXN1bHQgewogICAgIFJldGFp
blB0cjxOU0FycmF5PiByZXN1bHRzOwogCi0gICAgdm9pZCBlbmNvZGUoSVBDOjpBcmd1bWVudEVu
Y29kZXImKSBjb25zdDsKKyAgICB2b2lkIGVuY29kZShJUEM6OkVuY29kZXImKSBjb25zdDsKICAg
ICBzdGF0aWMgYm9vbCBkZWNvZGUoSVBDOjpBcmd1bWVudERlY29kZXImLCBEYXRhRGV0ZWN0aW9u
UmVzdWx0Jik7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29jb2Ev
RGF0YURldGVjdGlvblJlc3VsdC5tbSBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db2NvYS9EYXRh
RGV0ZWN0aW9uUmVzdWx0Lm1tCmluZGV4IGM3ZTI0YTAwODI0NzdhNTk5NGU1N2UzYjU3NmMxMjQx
MWQyZDBiZGYuLjIxY2E2YmUwMmJmNDE0OTFlMzVmOWRkMTUwYjNlNDJjY2RjYjBlODEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db2NvYS9EYXRhRGV0ZWN0aW9uUmVzdWx0Lm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db2NvYS9EYXRhRGV0ZWN0aW9uUmVzdWx0Lm1t
CkBAIC0zOSw3ICszOSw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiAjaWYgRU5BQkxFKERBVEFf
REVURUNUSU9OKQogCi12b2lkIERhdGFEZXRlY3Rpb25SZXN1bHQ6OmVuY29kZShJUEM6OkFyZ3Vt
ZW50RW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3ZvaWQgRGF0YURldGVjdGlvblJlc3VsdDo6ZW5j
b2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKIHsKICAgICBSZXRhaW5QdHI8TlNNdXRh
YmxlRGF0YT4gZGF0YSA9IGFkb3B0TlMoW1tOU011dGFibGVEYXRhIGFsbG9jXSBpbml0XSk7CiAg
ICAgUmV0YWluUHRyPE5TS2V5ZWRBcmNoaXZlcj4gYXJjaGl2ZXIgPSBhZG9wdE5TKFtbTlNLZXll
ZEFyY2hpdmVyIGFsbG9jXSBpbml0Rm9yV3JpdGluZ1dpdGhNdXRhYmxlRGF0YTpkYXRhLmdldCgp
XSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29jb2EvTG9hZFBhcmFtZXRl
cnNDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db2NvYS9Mb2FkUGFyYW1ldGVyc0Nv
Y29hLm1tCmluZGV4IDBhZGUwMWQwMWVlMmFlZjQ1NDQ5MGI4YzVmOTI2NjYyOWZmYzdjYzAuLmY5
NjMwZGVhNzYzM2I0Y2Y4ZGUyNDViOTk1YTZhZThhMjVlZGIxYTQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9Db2NvYS9Mb2FkUGFyYW1ldGVyc0NvY29hLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9Db2NvYS9Mb2FkUGFyYW1ldGVyc0NvY29hLm1tCkBAIC0zMyw3ICsz
Myw3IEBACiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi12b2lkIExvYWRQYXJhbWV0ZXJzOjpwbGF0
Zm9ybUVuY29kZShJUEM6OkFyZ3VtZW50RW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3ZvaWQgTG9h
ZFBhcmFtZXRlcnM6OnBsYXRmb3JtRW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QK
IHsKICAgICBJUEM6OmVuY29kZShlbmNvZGVyLCBkYXRhRGV0ZWN0aW9uQ29udGV4dC5nZXQoKSk7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29jb2EvV2ViQ29yZUFyZ3Vt
ZW50Q29kZXJzQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29jb2EvV2ViQ29yZUFy
Z3VtZW50Q29kZXJzQ29jb2EubW0KaW5kZXggNWRlOTEzOTQ0ZTFjMTA1Yjk0ZjgzZDI1NDhjOTY4
ZjAzZjhmYjJiMi4uNTMxYjhmYzllYjRmZDU4MmMxZGM1NWM0MTMxMmZlMmVmMmFkMWYyOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0NvY29hL1dlYkNvcmVBcmd1bWVudENvZGVy
c0NvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db2NvYS9XZWJDb3JlQXJndW1l
bnRDb2RlcnNDb2NvYS5tbQpAQCAtNDcsNyArNDcsNyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29y
ZTsKIAogbmFtZXNwYWNlIElQQyB7CiAKLXZvaWQgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpQYXlt
ZW50Pjo6ZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgY29uc3QgV2ViQ29yZTo6UGF5
bWVudCYgcGF5bWVudCkKK3ZvaWQgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpQYXltZW50Pjo6ZW5j
b2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFdlYkNvcmU6OlBheW1lbnQmIHBheW1lbnQpCiB7
CiAgICAgYXV0byBkYXRhID0gYWRvcHROUyhbW05TTXV0YWJsZURhdGEgYWxsb2NdIGluaXRdKTsK
ICAgICBhdXRvIGFyY2hpdmVyID0gYWRvcHROUyhbW05TS2V5ZWRBcmNoaXZlciBhbGxvY10gaW5p
dEZvcldyaXRpbmdXaXRoTXV0YWJsZURhdGE6ZGF0YS5nZXQoKV0pOwpAQCAtODEsNyArODEsNyBA
QCBib29sIEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6UGF5bWVudD46OmRlY29kZShBcmd1bWVudERl
Y29kZXImIGRlY29kZXIsIFdlYkNvcmU6OgogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIEFy
Z3VtZW50Q29kZXI8V2ViQ29yZTo6UGF5bWVudENvbnRhY3Q+OjplbmNvZGUoQXJndW1lbnRFbmNv
ZGVyJiBlbmNvZGVyLCBjb25zdCBXZWJDb3JlOjpQYXltZW50Q29udGFjdCYgcGF5bWVudENvbnRh
Y3QpCit2b2lkIEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6UGF5bWVudENvbnRhY3Q+OjplbmNvZGUo
RW5jb2RlciYgZW5jb2RlciwgY29uc3QgV2ViQ29yZTo6UGF5bWVudENvbnRhY3QmIHBheW1lbnRD
b250YWN0KQogewogICAgIGF1dG8gZGF0YSA9IGFkb3B0TlMoW1tOU011dGFibGVEYXRhIGFsbG9j
XSBpbml0XSk7CiAgICAgYXV0byBhcmNoaXZlciA9IGFkb3B0TlMoW1tOU0tleWVkQXJjaGl2ZXIg
YWxsb2NdIGluaXRGb3JXcml0aW5nV2l0aE11dGFibGVEYXRhOmRhdGEuZ2V0KCldKTsKQEAgLTEx
NSw3ICsxMTUsNyBAQCBib29sIEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6UGF5bWVudENvbnRhY3Q+
OjpkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBXZQogICAgIHJldHVybiB0cnVlOwog
fQogCi12b2lkIEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6UGF5bWVudE1lcmNoYW50U2Vzc2lvbj46
OmVuY29kZShBcmd1bWVudEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFdlYkNvcmU6OlBheW1lbnRN
ZXJjaGFudFNlc3Npb24mIHBheW1lbnRNZXJjaGFudFNlc3Npb24pCit2b2lkIEFyZ3VtZW50Q29k
ZXI8V2ViQ29yZTo6UGF5bWVudE1lcmNoYW50U2Vzc2lvbj46OmVuY29kZShFbmNvZGVyJiBlbmNv
ZGVyLCBjb25zdCBXZWJDb3JlOjpQYXltZW50TWVyY2hhbnRTZXNzaW9uJiBwYXltZW50TWVyY2hh
bnRTZXNzaW9uKQogewogICAgIGF1dG8gZGF0YSA9IGFkb3B0TlMoW1tOU011dGFibGVEYXRhIGFs
bG9jXSBpbml0XSk7CiAgICAgYXV0byBhcmNoaXZlciA9IGFkb3B0TlMoW1tOU0tleWVkQXJjaGl2
ZXIgYWxsb2NdIGluaXRGb3JXcml0aW5nV2l0aE11dGFibGVEYXRhOmRhdGEuZ2V0KCldKTsKQEAg
LTE1MCw3ICsxNTAsNyBAQCBib29sIEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6UGF5bWVudE1lcmNo
YW50U2Vzc2lvbj46OmRlY29kZShBcmd1bWVudERlY29kZXImIGRlYwogICAgIHJldHVybiB0cnVl
OwogfQogCi12b2lkIEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6UGF5bWVudE1ldGhvZD46OmVuY29k
ZShBcmd1bWVudEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFdlYkNvcmU6OlBheW1lbnRNZXRob2Qm
IHBheW1lbnRNZXRob2QpCit2b2lkIEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6UGF5bWVudE1ldGhv
ZD46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBXZWJDb3JlOjpQYXltZW50TWV0aG9k
JiBwYXltZW50TWV0aG9kKQogewogICAgIGF1dG8gZGF0YSA9IGFkb3B0TlMoW1tOU011dGFibGVE
YXRhIGFsbG9jXSBpbml0XSk7CiAgICAgYXV0byBhcmNoaXZlciA9IGFkb3B0TlMoW1tOU0tleWVk
QXJjaGl2ZXIgYWxsb2NdIGluaXRGb3JXcml0aW5nV2l0aE11dGFibGVEYXRhOmRhdGEuZ2V0KCld
KTsKQEAgLTE4NCw3ICsxODQsNyBAQCBib29sIEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6UGF5bWVu
dE1ldGhvZD46OmRlY29kZShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIFdlYgogICAgIHJldHVy
biB0cnVlOwogfQogCi12b2lkIEFyZ3VtZW50Q29kZXI8UGF5bWVudFJlcXVlc3Q+OjplbmNvZGUo
QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBQYXltZW50UmVxdWVzdCYgcmVxdWVzdCkK
K3ZvaWQgQXJndW1lbnRDb2RlcjxQYXltZW50UmVxdWVzdD46OmVuY29kZShFbmNvZGVyJiBlbmNv
ZGVyLCBjb25zdCBQYXltZW50UmVxdWVzdCYgcmVxdWVzdCkKIHsKICAgICBlbmNvZGVyIDw8IHJl
cXVlc3QuY291bnRyeUNvZGUoKTsKICAgICBlbmNvZGVyIDw8IHJlcXVlc3QuY3VycmVuY3lDb2Rl
KCk7CkBAIC0yNzEsNyArMjcxLDcgQEAgYm9vbCBBcmd1bWVudENvZGVyPFBheW1lbnRSZXF1ZXN0
Pjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgUGF5bWVudFJlcXUKICAgICByZXR1
cm4gdHJ1ZTsKIH0KIAotdm9pZCBBcmd1bWVudENvZGVyPFBheW1lbnRSZXF1ZXN0OjpDb250YWN0
RmllbGRzPjo6ZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgY29uc3QgUGF5bWVudFJl
cXVlc3Q6OkNvbnRhY3RGaWVsZHMmIGNvbnRhY3RGaWVsZHMpCit2b2lkIEFyZ3VtZW50Q29kZXI8
UGF5bWVudFJlcXVlc3Q6OkNvbnRhY3RGaWVsZHM+OjplbmNvZGUoRW5jb2RlciYgZW5jb2Rlciwg
Y29uc3QgUGF5bWVudFJlcXVlc3Q6OkNvbnRhY3RGaWVsZHMmIGNvbnRhY3RGaWVsZHMpCiB7CiAg
ICAgZW5jb2RlciA8PCBjb250YWN0RmllbGRzLnBvc3RhbEFkZHJlc3M7CiAgICAgZW5jb2RlciA8
PCBjb250YWN0RmllbGRzLnBob25lOwpAQCAtMjkzLDcgKzI5Myw3IEBAIGJvb2wgQXJndW1lbnRD
b2RlcjxQYXltZW50UmVxdWVzdDo6Q29udGFjdEZpZWxkcz46OmRlY29kZShBcmd1bWVudERlY29k
ZXImIGRlY29kCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgQXJndW1lbnRDb2RlcjxQYXlt
ZW50UmVxdWVzdDo6TGluZUl0ZW0+OjplbmNvZGUoQXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBj
b25zdCBQYXltZW50UmVxdWVzdDo6TGluZUl0ZW0mIGxpbmVJdGVtKQordm9pZCBBcmd1bWVudENv
ZGVyPFBheW1lbnRSZXF1ZXN0OjpMaW5lSXRlbT46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBj
b25zdCBQYXltZW50UmVxdWVzdDo6TGluZUl0ZW0mIGxpbmVJdGVtKQogewogICAgIGVuY29kZXIu
ZW5jb2RlRW51bShsaW5lSXRlbS50eXBlKTsKICAgICBlbmNvZGVyIDw8IGxpbmVJdGVtLmxhYmVs
OwpAQCAtMzEyLDcgKzMxMiw3IEBAIGJvb2wgQXJndW1lbnRDb2RlcjxQYXltZW50UmVxdWVzdDo6
TGluZUl0ZW0+OjpkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBQCiAgICAgcmV0dXJu
IHRydWU7CiB9CiAKLXZvaWQgQXJndW1lbnRDb2RlcjxQYXltZW50UmVxdWVzdDo6TWVyY2hhbnRD
YXBhYmlsaXRpZXM+OjplbmNvZGUoQXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBQYXlt
ZW50UmVxdWVzdDo6TWVyY2hhbnRDYXBhYmlsaXRpZXMmIG1lcmNoYW50Q2FwYWJpbGl0aWVzKQor
dm9pZCBBcmd1bWVudENvZGVyPFBheW1lbnRSZXF1ZXN0OjpNZXJjaGFudENhcGFiaWxpdGllcz46
OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBQYXltZW50UmVxdWVzdDo6TWVyY2hhbnRD
YXBhYmlsaXRpZXMmIG1lcmNoYW50Q2FwYWJpbGl0aWVzKQogewogICAgIGVuY29kZXIgPDwgbWVy
Y2hhbnRDYXBhYmlsaXRpZXMuc3VwcG9ydHMzRFM7CiAgICAgZW5jb2RlciA8PCBtZXJjaGFudENh
cGFiaWxpdGllcy5zdXBwb3J0c0VNVjsKQEAgLTMzNCw3ICszMzQsNyBAQCBib29sIEFyZ3VtZW50
Q29kZXI8UGF5bWVudFJlcXVlc3Q6Ok1lcmNoYW50Q2FwYWJpbGl0aWVzPjo6ZGVjb2RlKEFyZ3Vt
ZW50RGVjb2RlcgogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIEFyZ3VtZW50Q29kZXI8UGF5
bWVudFJlcXVlc3Q6OlNoaXBwaW5nTWV0aG9kPjo6ZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYgZW5j
b2RlciwgY29uc3QgUGF5bWVudFJlcXVlc3Q6OlNoaXBwaW5nTWV0aG9kJiBzaGlwcGluZ01ldGhv
ZCkKK3ZvaWQgQXJndW1lbnRDb2RlcjxQYXltZW50UmVxdWVzdDo6U2hpcHBpbmdNZXRob2Q+Ojpl
bmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgUGF5bWVudFJlcXVlc3Q6OlNoaXBwaW5nTWV0
aG9kJiBzaGlwcGluZ01ldGhvZCkKIHsKICAgICBlbmNvZGVyIDw8IHNoaXBwaW5nTWV0aG9kLmxh
YmVsOwogICAgIGVuY29kZXIgPDwgc2hpcHBpbmdNZXRob2QuZGV0YWlsOwpAQCAtMzU1LDcgKzM1
NSw3IEBAIGJvb2wgQXJndW1lbnRDb2RlcjxQYXltZW50UmVxdWVzdDo6U2hpcHBpbmdNZXRob2Q+
OjpkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNvCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZv
aWQgQXJndW1lbnRDb2RlcjxQYXltZW50UmVxdWVzdDo6VG90YWxBbmRMaW5lSXRlbXM+OjplbmNv
ZGUoQXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBQYXltZW50UmVxdWVzdDo6VG90YWxB
bmRMaW5lSXRlbXMmIHRvdGFsQW5kTGluZUl0ZW1zKQordm9pZCBBcmd1bWVudENvZGVyPFBheW1l
bnRSZXF1ZXN0OjpUb3RhbEFuZExpbmVJdGVtcz46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBj
b25zdCBQYXltZW50UmVxdWVzdDo6VG90YWxBbmRMaW5lSXRlbXMmIHRvdGFsQW5kTGluZUl0ZW1z
KQogewogICAgIGVuY29kZXIgPDwgdG90YWxBbmRMaW5lSXRlbXMudG90YWw7CiAgICAgZW5jb2Rl
ciA8PCB0b3RhbEFuZExpbmVJdGVtcy5saW5lSXRlbXM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvQ29udGV4dE1lbnVDb250ZXh0RGF0YS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvQ29udGV4dE1lbnVDb250ZXh0RGF0YS5jcHAKaW5kZXggYjU0NTRmNDcyZjQwNjQzMDI2
ZGVkZTcyZTk3MTZiODI2YjY3MWQxMi4uMWJiZmQ2NWZlYWZlMDM2ZDJhMjBmYjBiN2RjOGQ0ZTBh
MTYyNGUyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0NvbnRleHRNZW51Q29u
dGV4dERhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db250ZXh0TWVudUNvbnRl
eHREYXRhLmNwcApAQCAtNzAsNyArNzAsNyBAQCBDb250ZXh0TWVudUNvbnRleHREYXRhOjpDb250
ZXh0TWVudUNvbnRleHREYXRhKGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBtZW51TG9jYQogI2Vu
ZGlmCiB9CiAKLXZvaWQgQ29udGV4dE1lbnVDb250ZXh0RGF0YTo6ZW5jb2RlKElQQzo6QXJndW1l
bnRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAordm9pZCBDb250ZXh0TWVudUNvbnRleHREYXRhOjpl
bmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewogICAgIGVuY29kZXIuZW5jb2Rl
RW51bShtX3R5cGUpOwogICAgIGVuY29kZXIgPDwgbV9tZW51TG9jYXRpb247CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29udGV4dE1lbnVDb250ZXh0RGF0YS5oIGIvU291cmNl
L1dlYktpdDIvU2hhcmVkL0NvbnRleHRNZW51Q29udGV4dERhdGEuaAppbmRleCBiMzQ3NDc3ODI3
ODE4NzUzZDQzOTVmNGQ5OWVlNjcwYThiNzIxNDQzLi5hMWI2YWZjODZjMzAxMDI2NmNiZTRhYWZk
NDQzYzU4NjAyOGRmYTc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29udGV4
dE1lbnVDb250ZXh0RGF0YS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db250ZXh0TWVu
dUNvbnRleHREYXRhLmgKQEAgLTM1LDcgKzM1LDcgQEAKIAogbmFtZXNwYWNlIElQQyB7CiBjbGFz
cyBBcmd1bWVudERlY29kZXI7Ci1jbGFzcyBBcmd1bWVudEVuY29kZXI7CitjbGFzcyBFbmNvZGVy
OwogfQogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC03OSw3ICs3OSw3IEBAIHB1YmxpYzoKICAg
ICBib29sIGNvbnRyb2xsZWREYXRhSXNFZGl0YWJsZSgpIGNvbnN0OwogI2VuZGlmCiAKLSAgICB2
b2lkIGVuY29kZShJUEM6OkFyZ3VtZW50RW5jb2RlciYpIGNvbnN0OworICAgIHZvaWQgZW5jb2Rl
KElQQzo6RW5jb2RlciYpIGNvbnN0OwogICAgIHN0YXRpYyBib29sIGRlY29kZShJUEM6OkFyZ3Vt
ZW50RGVjb2RlciYsIENvbnRleHRNZW51Q29udGV4dERhdGEmKTsKIAogcHJpdmF0ZToKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9EYXRhYmFzZXMvRGF0YWJhc2VQcm9jZXNzQ3Jl
YXRpb25QYXJhbWV0ZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9EYXRhYmFzZXMvRGF0
YWJhc2VQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAppbmRleCAyYWFmMmMyZDI5NGFjZjgy
ZTA0MGE2ZDEzYjhkZmU1NDQ2NmI5YzkwLi5jNGJmNDI3OWFjYjQ3ZjMyY2I2ZWUzZGNmNzViMWYy
NjRkZmYxY2I5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRGF0YWJhc2VzL0Rh
dGFiYXNlUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
U2hhcmVkL0RhdGFiYXNlcy9EYXRhYmFzZVByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCkBA
IC0zNiw3ICszNiw3IEBAIERhdGFiYXNlUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6RGF0YWJh
c2VQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzKCkKIHsKIH0KIAotdm9pZCBEYXRhYmFzZVByb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZShJUEM6OkFyZ3VtZW50RW5jb2RlciYgZW5jb2Rl
cikgY29uc3QKK3ZvaWQgRGF0YWJhc2VQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUo
SVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFC
QVNFKQogICAgIGVuY29kZXIgPDwgaW5kZXhlZERhdGFiYXNlRGlyZWN0b3J5OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0RhdGFiYXNlcy9EYXRhYmFzZVByb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9EYXRhYmFzZXMvRGF0YWJhc2VQ
cm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKaW5kZXggMGFjNGEzNmU2ZjkxNzJkYTBmY2Y0NGQx
NzhmMWM2NDAwODZkZWRkZS4uOTg4ZWU1ZDhiN2U5YzMyMTE4NzdjMDVhMWQ2YzJmYTZmOWE3Yjg3
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0RhdGFiYXNlcy9EYXRhYmFzZVBy
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRGF0
YWJhc2VzL0RhdGFiYXNlUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCkBAIC0zNCw3ICszNCw3
IEBACiAKIG5hbWVzcGFjZSBJUEMgewogY2xhc3MgQXJndW1lbnREZWNvZGVyOwotY2xhc3MgQXJn
dW1lbnRFbmNvZGVyOworY2xhc3MgRW5jb2RlcjsKIH0KIAogbmFtZXNwYWNlIFdlYktpdCB7CkBA
IC00Miw3ICs0Miw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogc3RydWN0IERhdGFiYXNlUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVycyB7CiAgICAgRGF0YWJhc2VQcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzKCk7CiAKLSAgICB2b2lkIGVuY29kZShJUEM6OkFyZ3VtZW50RW5jb2RlciYpIGNvbnN0Owor
ICAgIHZvaWQgZW5jb2RlKElQQzo6RW5jb2RlciYpIGNvbnN0OwogICAgIHN0YXRpYyBib29sIGRl
Y29kZShJUEM6OkFyZ3VtZW50RGVjb2RlciYsIERhdGFiYXNlUHJvY2Vzc0NyZWF0aW9uUGFyYW1l
dGVycyYpOwogCiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJSZXN1bHQuY3BwIGIv
U291cmNlL1dlYktpdDIvU2hhcmVkL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCUmVzdWx0LmNw
cAppbmRleCBhMzI1NTZlZTllNGExYjgyN2NmNzU3NzFiNzQ2NWRmZjBkMjc0MmMxLi5iMmQyYjY1
NTBlYjlkODA4NzRkYzcwMTRmNjY3MmU1NTUwYTYwYzM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJSZXN1bHQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQlJlc3VsdC5jcHAK
QEAgLTMyLDcgKzMyLDcgQEAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLXZvaWQgV2ViSURCUmVz
dWx0OjplbmNvZGUoSVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit2b2lkIFdl
YklEQlJlc3VsdDo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKIHsKICAgICBt
X3Jlc3VsdERhdGEuZW5jb2RlKGVuY29kZXIpOwogICAgIG1faGFuZGxlcy5lbmNvZGUoZW5jb2Rl
cik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRGF0YWJhc2VzL0luZGV4ZWRE
Qi9XZWJJREJSZXN1bHQuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9EYXRhYmFzZXMvSW5kZXhl
ZERCL1dlYklEQlJlc3VsdC5oCmluZGV4IGE5M2RiN2Y0ZDViZjRmZDQwYWExMDcxMDYxMWIzMTk4
NzY0OTBlMGYuLjdmMmI0NTUzYmZjNTQwNmM1Njc2MWZiNjIzODQwOWQxM2MzNzM5MWEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQlJl
c3VsdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9EYXRhYmFzZXMvSW5kZXhlZERCL1dl
YklEQlJlc3VsdC5oCkBAIC01NCw3ICs1NCw3IEBAIHB1YmxpYzoKICAgICBjb25zdCBXZWJDb3Jl
OjpJREJSZXN1bHREYXRhJiByZXN1bHREYXRhKCkgY29uc3QgeyByZXR1cm4gbV9yZXN1bHREYXRh
OyB9CiAgICAgY29uc3QgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlQXJyYXkmIGhhbmRsZXMoKSBj
b25zdCB7IHJldHVybiBtX2hhbmRsZXM7IH0KIAotICAgIHZvaWQgZW5jb2RlKElQQzo6QXJndW1l
bnRFbmNvZGVyJikgY29uc3Q7CisgICAgdm9pZCBlbmNvZGUoSVBDOjpFbmNvZGVyJikgY29uc3Q7
CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKElQQzo6QXJndW1lbnREZWNvZGVyJiwgV2ViSURCUmVz
dWx0Jik7CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRWRp
dG9yU3RhdGUuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0VkaXRvclN0YXRlLmNwcAppbmRl
eCA1N2U1ZGNkYTBhMjBjMGYyMjJlYjllNWIwNDViZTljNmQzOTMwZjY3Li44NGFiZTgwNDliYjky
NGE4YmZmYzMzMTk4Nzk0MWMzMTQ4ZTY3MDNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvRWRpdG9yU3RhdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9FZGl0b3JT
dGF0ZS5jcHAKQEAgLTMxLDcgKzMxLDcgQEAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLXZvaWQg
RWRpdG9yU3RhdGU6OmVuY29kZShJUEM6OkFyZ3VtZW50RW5jb2RlciYgZW5jb2RlcikgY29uc3QK
K3ZvaWQgRWRpdG9yU3RhdGU6OmVuY29kZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB7
CiAgICAgZW5jb2RlciA8PCBzaG91bGRJZ25vcmVDb21wb3NpdGlvblNlbGVjdGlvbkNoYW5nZTsK
ICAgICBlbmNvZGVyIDw8IHNlbGVjdGlvbklzTm9uZTsKQEAgLTEwNCw3ICsxMDQsNyBAQCBib29s
IEVkaXRvclN0YXRlOjpkZWNvZGUoSVBDOjpBcmd1bWVudERlY29kZXImIGRlY29kZXIsIEVkaXRv
clN0YXRlJiByZXN1bHQpCiB9CiAKICNpZiBQTEFURk9STShJT1MpIHx8IFBMQVRGT1JNKEdUSykg
fHwgUExBVEZPUk0oTUFDKQotdm9pZCBFZGl0b3JTdGF0ZTo6UG9zdExheW91dERhdGE6OmVuY29k
ZShJUEM6OkFyZ3VtZW50RW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3ZvaWQgRWRpdG9yU3RhdGU6
OlBvc3RMYXlvdXREYXRhOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewog
ICAgIGVuY29kZXIgPDwgdHlwaW5nQXR0cmlidXRlczsKICNpZiBQTEFURk9STShJT1MpIHx8IFBM
QVRGT1JNKEdUSykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9FZGl0b3JTdGF0
ZS5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0VkaXRvclN0YXRlLmgKaW5kZXggNTU3MTc2Yjgz
MmJiYzAyZThjZWVhMjJlNmIxN2Q0MDg4MjA4MjgxMy4uOTkzY2E0YTE0YTFkZTlhODU5ZjZjZGRj
MWQwMDE4YTAxMzQ2YTdiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0VkaXRv
clN0YXRlLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0VkaXRvclN0YXRlLmgKQEAgLTEw
Niw3ICsxMDYsNyBAQCBzdHJ1Y3QgRWRpdG9yU3RhdGUgewogICAgICAgICBTdHJpbmcgc3RyaW5n
Rm9yQ2FuZGlkYXRlUmVxdWVzdDsKICNlbmRpZgogCi0gICAgICAgIHZvaWQgZW5jb2RlKElQQzo6
QXJndW1lbnRFbmNvZGVyJikgY29uc3Q7CisgICAgICAgIHZvaWQgZW5jb2RlKElQQzo6RW5jb2Rl
ciYpIGNvbnN0OwogICAgICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoSVBDOjpBcmd1bWVudERlY29k
ZXImLCBQb3N0TGF5b3V0RGF0YSYpOwogICAgIH07CiAKQEAgLTExNCw3ICsxMTQsNyBAQCBzdHJ1
Y3QgRWRpdG9yU3RhdGUgewogICAgIFBvc3RMYXlvdXREYXRhJiBwb3N0TGF5b3V0RGF0YSgpOwog
I2VuZGlmIC8vIFBMQVRGT1JNKElPUykgfHwgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShNQUMp
CiAKLSAgICB2b2lkIGVuY29kZShJUEM6OkFyZ3VtZW50RW5jb2RlciYpIGNvbnN0OworICAgIHZv
aWQgZW5jb2RlKElQQzo6RW5jb2RlciYpIGNvbnN0OwogICAgIHN0YXRpYyBib29sIGRlY29kZShJ
UEM6OkFyZ3VtZW50RGVjb2RlciYsIEVkaXRvclN0YXRlJik7CiAKICNpZiBQTEFURk9STShJT1Mp
IHx8IFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oTUFDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL0ZvbnRJbmZvLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Gb250SW5m
by5jcHAKaW5kZXggZWZkN2YzNjVlODU4NTY4OGZjYmQ5YWM3ZDQ4YTg1ZDRiMmYwNzJmNy4uNGFk
YTdhNWI2MzE3NjhmZTU0ZWQ5MDAwOTdmODA1NGQ1ZWZlYmZkMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL0ZvbnRJbmZvLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
Rm9udEluZm8uY3BwCkBAIC0zNCw3ICszNCw3IEBACiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi12
b2lkIEZvbnRJbmZvOjplbmNvZGUoSVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0
Cit2b2lkIEZvbnRJbmZvOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewog
I2lmIFBMQVRGT1JNKENPQ09BKQogICAgIGVuY29kZXIgPDwgc3RhdGljX2Nhc3Q8Ym9vbD4oZm9u
dEF0dHJpYnV0ZURpY3Rpb25hcnkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVk
L0ZvbnRJbmZvLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRm9udEluZm8uaAppbmRleCAxN2Zk
NGExOGQ4MjY1MTQ4ZGMyZmRhYjRlMjBiNTk2M2QyNWQ0NjA1Li4wODAzYWRmMDI0NmFlZDA1NzU1
NjAxZGViODZlMTYxYjU4YzFmYWY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
Rm9udEluZm8uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRm9udEluZm8uaApAQCAtMzIs
MTMgKzMyLDEzIEBACiAKIG5hbWVzcGFjZSBJUEMgewogICAgIGNsYXNzIEFyZ3VtZW50RGVjb2Rl
cjsKLSAgICBjbGFzcyBBcmd1bWVudEVuY29kZXI7CisgICAgY2xhc3MgRW5jb2RlcjsKIH0KIAog
bmFtZXNwYWNlIFdlYktpdCB7CiAgICAgCiBzdHJ1Y3QgRm9udEluZm8gewotICAgIHZvaWQgZW5j
b2RlKElQQzo6QXJndW1lbnRFbmNvZGVyJikgY29uc3Q7CisgICAgdm9pZCBlbmNvZGUoSVBDOjpF
bmNvZGVyJikgY29uc3Q7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKElQQzo6QXJndW1lbnREZWNv
ZGVyJiwgRm9udEluZm8mKTsKICAgICAKICNpZiBQTEFURk9STShDT0NPQSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9HYW1lcGFkL0dhbWVwYWREYXRhLmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9HYW1lcGFkL0dhbWVwYWREYXRhLmNwcAppbmRleCBhMWIyYjRjYTFhNzc5
NjRkMzlmMmNlNzgxOGJmZDAyNDk4MzM5NjliLi42YTFiMDAzZjFlMjcwNWYzMDM2MWY1ZTdhYjJi
MzE1ODA2NDBiOWIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvR2FtZXBhZC9H
YW1lcGFkRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0dhbWVwYWQvR2FtZXBh
ZERhdGEuY3BwCkBAIC0zMyw3ICszMyw3IEBACiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi12b2lk
IEdhbWVwYWREYXRhOjplbmNvZGUoSVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0
Cit2b2lkIEdhbWVwYWREYXRhOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAog
ewogICAgIGVuY29kZXIgPDwgaW5kZXggPDwgYXhpc1ZhbHVlcyA8PCBidXR0b25WYWx1ZXM7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvR2FtZXBhZC9HYW1lcGFkRGF0YS5o
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0dhbWVwYWQvR2FtZXBhZERhdGEuaAppbmRleCBjNmFi
YTE2ZjJkM2ZlOThlZTM3MmVkYjQxOGYyZGQ4YWZkMGFiZTg0Li5kNzQ2NDM1MWI0ODUwZTgwZDQy
NDU1MzY0ZjkzNmM1ODEyYzgzNjQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
R2FtZXBhZC9HYW1lcGFkRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9HYW1lcGFk
L0dhbWVwYWREYXRhLmgKQEAgLTMyLDEzICszMiwxMyBAQAogCiBuYW1lc3BhY2UgSVBDIHsKIGNs
YXNzIEFyZ3VtZW50RGVjb2RlcjsKLWNsYXNzIEFyZ3VtZW50RW5jb2RlcjsKK2NsYXNzIEVuY29k
ZXI7CiB9CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBzdHJ1Y3QgR2FtZXBhZERhdGEgewotICAg
IHZvaWQgZW5jb2RlKElQQzo6QXJndW1lbnRFbmNvZGVyJikgY29uc3Q7CisgICAgdm9pZCBlbmNv
ZGUoSVBDOjpFbmNvZGVyJikgY29uc3Q7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKElQQzo6QXJn
dW1lbnREZWNvZGVyJiwgR2FtZXBhZERhdGEmKTsKIAogICAgIGJvb2wgaXNOdWxsKCkgY29uc3Q7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTGF5ZXJUcmVlQ29udGV4dC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTGF5ZXJUcmVlQ29udGV4dC5jcHAKaW5kZXggNWVjOGM2
MjgzN2ZmNjlhYzA3N2E1ZTFjOTE5ODgwMGM5MWY4NzkxMC4uODQzMTNkZThmY2RhZmM2NTgyOTAz
Mjg4N2JhNTIwYWZkMmJmNDE3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0xh
eWVyVHJlZUNvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9MYXllclRyZWVD
b250ZXh0LmNwcApAQCAtMjcsNyArMjcsNyBAQAogI2luY2x1ZGUgIkxheWVyVHJlZUNvbnRleHQu
aCIKIAogI2luY2x1ZGUgIkFyZ3VtZW50RGVjb2Rlci5oIgotI2luY2x1ZGUgIkFyZ3VtZW50RW5j
b2Rlci5oIgorI2luY2x1ZGUgIkVuY29kZXIuaCIKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKQEAg
LTQwLDcgKzQwLDcgQEAgTGF5ZXJUcmVlQ29udGV4dDo6fkxheWVyVHJlZUNvbnRleHQoKQogewog
fQogCi12b2lkIExheWVyVHJlZUNvbnRleHQ6OmVuY29kZShJUEM6OkFyZ3VtZW50RW5jb2RlciYg
ZW5jb2RlcikgY29uc3QKK3ZvaWQgTGF5ZXJUcmVlQ29udGV4dDo6ZW5jb2RlKElQQzo6RW5jb2Rl
ciYgZW5jb2RlcikgY29uc3QKIHsKICAgICBlbmNvZGVyIDw8IGNvbnRleHRJRDsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9MYXllclRyZWVDb250ZXh0LmggYi9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvTGF5ZXJUcmVlQ29udGV4dC5oCmluZGV4IDQzMzE0YzIxNWU4NTQzOWI4
YjNmOWJjZWYzZWVlMzRmNjNjYTBkYjQuLmQ2NTRlNDE5MjkzYTIwZjJjMzU5MTkzNGE3YzZkNDMw
ODU3ZTNjNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9MYXllclRyZWVDb250
ZXh0LmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0xheWVyVHJlZUNvbnRleHQuaApAQCAt
MzAsNyArMzAsNyBAQAogCiBuYW1lc3BhY2UgSVBDIHsKIGNsYXNzIEFyZ3VtZW50RGVjb2RlcjsK
LWNsYXNzIEFyZ3VtZW50RW5jb2RlcjsKK2NsYXNzIEVuY29kZXI7CiB9CiAKIG5hbWVzcGFjZSBX
ZWJLaXQgewpAQCAtNDcsNyArNDcsNyBAQCBwdWJsaWM6CiAgICAgTGF5ZXJUcmVlQ29udGV4dCgp
OwogICAgIH5MYXllclRyZWVDb250ZXh0KCk7CiAKLSAgICB2b2lkIGVuY29kZShJUEM6OkFyZ3Vt
ZW50RW5jb2RlciYpIGNvbnN0OworICAgIHZvaWQgZW5jb2RlKElQQzo6RW5jb2RlciYpIGNvbnN0
OwogICAgIHN0YXRpYyBib29sIGRlY29kZShJUEM6OkFyZ3VtZW50RGVjb2RlciYsIExheWVyVHJl
ZUNvbnRleHQmKTsKIAogICAgIGJvb2wgaXNFbXB0eSgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvU2hhcmVkL0xvYWRQYXJhbWV0ZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9Mb2FkUGFyYW1ldGVycy5jcHAKaW5kZXggMDEwZjEzNDVmOGQ1NmNkYzg1OWYxOWUyNjVh
ZWU4M2Y5ZWFkMmQzMS4uOWYwN2E0N2IzNmIzOGE0MDk2ZDYzMjJkZjY2NzY0OTNmNTc1NWFlNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0xvYWRQYXJhbWV0ZXJzLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTG9hZFBhcmFtZXRlcnMuY3BwCkBAIC0zMCw3ICszMCw3
IEBACiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi12b2lkIExvYWRQYXJhbWV0ZXJzOjplbmNvZGUo
SVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit2b2lkIExvYWRQYXJhbWV0ZXJz
OjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewogICAgIGVuY29kZXIgPDwg
bmF2aWdhdGlvbklEOwogICAgIGVuY29kZXIgPDwgcmVxdWVzdDsKQEAgLTk0LDcgKzk0LDcgQEAg
Ym9vbCBMb2FkUGFyYW1ldGVyczo6ZGVjb2RlKElQQzo6QXJndW1lbnREZWNvZGVyJiBkZWNvZGVy
LCBMb2FkUGFyYW1ldGVycyYgZGF0YSkKIAogI2lmICFQTEFURk9STShDT0NPQSkKIAotdm9pZCBM
b2FkUGFyYW1ldGVyczo6cGxhdGZvcm1FbmNvZGUoSVBDOjpBcmd1bWVudEVuY29kZXImKSBjb25z
dAordm9pZCBMb2FkUGFyYW1ldGVyczo6cGxhdGZvcm1FbmNvZGUoSVBDOjpFbmNvZGVyJikgY29u
c3QKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0xvYWRQYXJhbWV0
ZXJzLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTG9hZFBhcmFtZXRlcnMuaAppbmRleCA2OTlk
MTVjZTA3YWU4ZmI3OTczNDcyNjI2MWJkOTkwODc5M2Q5MTAyLi40N2JmM2M5Njg5MWUyNzU2NWZk
ZDQ5NTBkMDhkMGRlYWUxMzk0OTI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
TG9hZFBhcmFtZXRlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTG9hZFBhcmFtZXRl
cnMuaApAQCAtMzUsMTYgKzM1LDE2IEBAIE9CSkNfQ0xBU1MgTlNEaWN0aW9uYXJ5OwogCiBuYW1l
c3BhY2UgSVBDIHsKIGNsYXNzIEFyZ3VtZW50RGVjb2RlcjsKLWNsYXNzIEFyZ3VtZW50RW5jb2Rl
cjsKK2NsYXNzIEVuY29kZXI7CiB9CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBzdHJ1Y3QgTG9h
ZFBhcmFtZXRlcnMgewotICAgIHZvaWQgZW5jb2RlKElQQzo6QXJndW1lbnRFbmNvZGVyJikgY29u
c3Q7CisgICAgdm9pZCBlbmNvZGUoSVBDOjpFbmNvZGVyJikgY29uc3Q7CiAgICAgc3RhdGljIGJv
b2wgZGVjb2RlKElQQzo6QXJndW1lbnREZWNvZGVyJiwgTG9hZFBhcmFtZXRlcnMmKTsKIAotICAg
IHZvaWQgcGxhdGZvcm1FbmNvZGUoSVBDOjpBcmd1bWVudEVuY29kZXImKSBjb25zdDsKKyAgICB2
b2lkIHBsYXRmb3JtRW5jb2RlKElQQzo6RW5jb2RlciYpIGNvbnN0OwogICAgIHN0YXRpYyBib29s
IHBsYXRmb3JtRGVjb2RlKElQQzo6QXJndW1lbnREZWNvZGVyJiwgTG9hZFBhcmFtZXRlcnMmKTsK
IAogICAgIHVpbnQ2NF90IG5hdmlnYXRpb25JRDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9OYXZpZ2F0aW9uQWN0aW9uRGF0YS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
TmF2aWdhdGlvbkFjdGlvbkRhdGEuY3BwCmluZGV4IGRmNTY0ZjU2M2MyZjc2ZjdhOGQyOWUyMTY1
MGMzZDdiYjBlNGY0OGMuLmVkNWM3ZWVlOGRiMDQ3NmNiM2E0MDQ1MjhiODVlNzdhMWEwNDRlMjgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9OYXZpZ2F0aW9uQWN0aW9uRGF0YS5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL05hdmlnYXRpb25BY3Rpb25EYXRhLmNwcApA
QCAtMjgsMTMgKzI4LDEzIEBACiAKICNpbmNsdWRlICJBcmd1bWVudENvZGVycy5oIgogI2luY2x1
ZGUgIkFyZ3VtZW50RGVjb2Rlci5oIgotI2luY2x1ZGUgIkFyZ3VtZW50RW5jb2Rlci5oIgorI2lu
Y2x1ZGUgIkVuY29kZXIuaCIKIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFj
ZSBXZWJLaXQgewogCi12b2lkIE5hdmlnYXRpb25BY3Rpb25EYXRhOjplbmNvZGUoSVBDOjpBcmd1
bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit2b2lkIE5hdmlnYXRpb25BY3Rpb25EYXRhOjpl
bmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewogICAgIGVuY29kZXIuZW5jb2Rl
RW51bShuYXZpZ2F0aW9uVHlwZSk7CiAgICAgZW5jb2Rlci5lbmNvZGVFbnVtKG1vZGlmaWVycyk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmF2aWdhdGlvbkFjdGlvbkRhdGEu
aCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9OYXZpZ2F0aW9uQWN0aW9uRGF0YS5oCmluZGV4IDM4
YzJhZTFlYWUwOTZjNTNkMGUxM2IxNjI5ZjRkY2Y0ZDNjZThmOTIuLjY0YzkzOTEyYjAyMWM5M2Mz
YjE5YzU5ZDA3MGRkYTVkNDBmZDI0NDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9OYXZpZ2F0aW9uQWN0aW9uRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9OYXZp
Z2F0aW9uQWN0aW9uRGF0YS5oCkBAIC0zMSwxMyArMzEsMTMgQEAKIAogbmFtZXNwYWNlIElQQyB7
CiBjbGFzcyBBcmd1bWVudERlY29kZXI7Ci1jbGFzcyBBcmd1bWVudEVuY29kZXI7CitjbGFzcyBF
bmNvZGVyOwogfQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogc3RydWN0IE5hdmlnYXRpb25BY3Rp
b25EYXRhIHsKLSAgICB2b2lkIGVuY29kZShJUEM6OkFyZ3VtZW50RW5jb2RlciYpIGNvbnN0Owor
ICAgIHZvaWQgZW5jb2RlKElQQzo6RW5jb2RlciYpIGNvbnN0OwogICAgIHN0YXRpYyBib29sIGRl
Y29kZShJUEM6OkFyZ3VtZW50RGVjb2RlciYsIE5hdmlnYXRpb25BY3Rpb25EYXRhJik7CiAKICAg
ICBXZWJDb3JlOjpOYXZpZ2F0aW9uVHlwZSBuYXZpZ2F0aW9uVHlwZSB7IFdlYkNvcmU6Ok5hdmln
YXRpb25UeXBlOjpPdGhlciB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1Bs
YXRmb3JtUG9wdXBNZW51RGF0YS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGxhdGZvcm1Q
b3B1cE1lbnVEYXRhLmNwcAppbmRleCAzYWQwNmEzMDBmZDgyOGZkNzExZjMwYjYzYjBhNWY1MDY4
MGZiYzJmLi41YmVlMWY3OGIyYmMxYmI0ZjExZDg0MjA4YTU4MzI5YzBjNGMzZTY4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGxhdGZvcm1Qb3B1cE1lbnVEYXRhLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGxhdGZvcm1Qb3B1cE1lbnVEYXRhLmNwcApAQCAtMzQs
NyArMzQsNyBAQCBQbGF0Zm9ybVBvcHVwTWVudURhdGE6OlBsYXRmb3JtUG9wdXBNZW51RGF0YSgp
CiB7CiB9CiAKLXZvaWQgUGxhdGZvcm1Qb3B1cE1lbnVEYXRhOjplbmNvZGUoSVBDOjpBcmd1bWVu
dEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit2b2lkIFBsYXRmb3JtUG9wdXBNZW51RGF0YTo6ZW5j
b2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKIHsKICNpZiBQTEFURk9STShDT0NPQSkK
ICAgICBlbmNvZGVyIDw8IGZvbnRJbmZvOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hh
cmVkL1BsYXRmb3JtUG9wdXBNZW51RGF0YS5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1BsYXRm
b3JtUG9wdXBNZW51RGF0YS5oCmluZGV4IDMxYTlkMWJhMTdjMGM0YmZkNTk0MmJkOTkzYmU4YjFi
OTk0Njk4NjYuLjdiOTk2OTg4MzYwNTU2YmExMDZjYTM5MDI1ZGNlZWM5ZDkzM2YwZjggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9QbGF0Zm9ybVBvcHVwTWVudURhdGEuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGxhdGZvcm1Qb3B1cE1lbnVEYXRhLmgKQEAgLTMzLDcg
KzMzLDcgQEAKIAogbmFtZXNwYWNlIElQQyB7CiAgICAgY2xhc3MgQXJndW1lbnREZWNvZGVyOwot
ICAgIGNsYXNzIEFyZ3VtZW50RW5jb2RlcjsKKyAgICBjbGFzcyBFbmNvZGVyOwogfQogCiBuYW1l
c3BhY2UgV2ViS2l0IHsKQEAgLTQxLDcgKzQxLDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiBzdHJ1
Y3QgUGxhdGZvcm1Qb3B1cE1lbnVEYXRhIHsKICAgICBQbGF0Zm9ybVBvcHVwTWVudURhdGEoKTsK
IAotICAgIHZvaWQgZW5jb2RlKElQQzo6QXJndW1lbnRFbmNvZGVyJikgY29uc3Q7CisgICAgdm9p
ZCBlbmNvZGUoSVBDOjpFbmNvZGVyJikgY29uc3Q7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKElQ
Qzo6QXJndW1lbnREZWNvZGVyJiwgUGxhdGZvcm1Qb3B1cE1lbnVEYXRhJik7CiAKICNpZiBQTEFU
Rk9STShDT0NPQSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9QbHVnaW5zL05Q
SWRlbnRpZmllckRhdGEuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvTlBJZGVu
dGlmaWVyRGF0YS5jcHAKaW5kZXggMDI5ZTZhYmQ4MWNjMGRhN2I1N2Q1NjA5Zjc3NDExMDczNzc1
YmZlZi4uMTAxNmYyNjdkNzJmMTE0YWQxYjdmYWExMDg3YjU4MjRhNjZiMjBlNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvTlBJZGVudGlmaWVyRGF0YS5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvTlBJZGVudGlmaWVyRGF0YS5jcHAKQEAg
LTI5LDcgKzI5LDcgQEAKICNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKIAogI2luY2x1
ZGUgIkFyZ3VtZW50RGVjb2Rlci5oIgotI2luY2x1ZGUgIkFyZ3VtZW50RW5jb2Rlci5oIgorI2lu
Y2x1ZGUgIkVuY29kZXIuaCIKICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKICNp
bmNsdWRlIDxXZWJDb3JlL0lkZW50aWZpZXJSZXAuaD4KIApAQCAtNjcsNyArNjcsNyBAQCBOUElk
ZW50aWZpZXIgTlBJZGVudGlmaWVyRGF0YTo6Y3JlYXRlTlBJZGVudGlmaWVyKCkgY29uc3QKICAg
ICByZXR1cm4gc3RhdGljX2Nhc3Q8TlBJZGVudGlmaWVyPihJZGVudGlmaWVyUmVwOjpnZXQobV9u
dW1iZXIpKTsKIH0KIAotdm9pZCBOUElkZW50aWZpZXJEYXRhOjplbmNvZGUoSVBDOjpBcmd1bWVu
dEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit2b2lkIE5QSWRlbnRpZmllckRhdGE6OmVuY29kZShJ
UEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB7CiAgICAgZW5jb2RlciA8PCBtX2lzU3RyaW5n
OwogICAgIGlmIChtX2lzU3RyaW5nKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVk
L1BsdWdpbnMvTlBJZGVudGlmaWVyRGF0YS5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdp
bnMvTlBJZGVudGlmaWVyRGF0YS5oCmluZGV4IDViNTE3OTMzNzIwZTNiMWEzMGQ3OGU5OGMyNDU4
N2RjNTEwOTRhMWIuLjI0YWFmNmZlYzdiZGY4MGM1MzJmODhhYTUzNzVmYTgxMTIzY2FiN2YgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9QbHVnaW5zL05QSWRlbnRpZmllckRhdGEu
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9OUElkZW50aWZpZXJEYXRhLmgK
QEAgLTMzLDcgKzMzLDcgQEAKIAogbmFtZXNwYWNlIElQQyB7CiAgICAgY2xhc3MgQXJndW1lbnRE
ZWNvZGVyOwotICAgIGNsYXNzIEFyZ3VtZW50RW5jb2RlcjsKKyAgICBjbGFzcyBFbmNvZGVyOwog
fQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTQ1LDcgKzQ1LDcgQEAgcHVibGljOgogICAgIHN0
YXRpYyBOUElkZW50aWZpZXJEYXRhIGZyb21OUElkZW50aWZpZXIoTlBJZGVudGlmaWVyKTsKICAg
ICBOUElkZW50aWZpZXIgY3JlYXRlTlBJZGVudGlmaWVyKCkgY29uc3Q7CiAKLSAgICB2b2lkIGVu
Y29kZShJUEM6OkFyZ3VtZW50RW5jb2RlciYpIGNvbnN0OworICAgIHZvaWQgZW5jb2RlKElQQzo6
RW5jb2RlciYpIGNvbnN0OwogICAgIHN0YXRpYyBib29sIGRlY29kZShJUEM6OkFyZ3VtZW50RGVj
b2RlciYsIE5QSWRlbnRpZmllckRhdGEmKTsKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9QbHVnaW5zL05QT2JqZWN0TWVzc2FnZVJlY2VpdmVyLmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9OUE9iamVjdE1lc3NhZ2VSZWNlaXZlci5oCmluZGV4
IDRlM2ZkZWQ2YTJjYjUyMzlmYzdkZDM5MjYwZjRlOWM5NWY4MTYyNzUuLjUxOGU2YTM4MTJiNDVh
ZjBlMjc4MTJmMmRmYWI4YzhlZTIzNmNmMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9QbHVnaW5zL05QT2JqZWN0TWVzc2FnZVJlY2VpdmVyLmgKKysrIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL1BsdWdpbnMvTlBPYmplY3RNZXNzYWdlUmVjZWl2ZXIuaApAQCAtNDYsNyArNDYs
NyBAQCBwdWJsaWM6CiAgICAgTlBPYmplY3RNZXNzYWdlUmVjZWl2ZXIoTlBSZW1vdGVPYmplY3RN
YXAqLCBQbHVnaW4qLCB1aW50NjRfdCBucE9iamVjdElELCBOUE9iamVjdCopOwogICAgIH5OUE9i
amVjdE1lc3NhZ2VSZWNlaXZlcigpOwogCi0gICAgdm9pZCBkaWRSZWNlaXZlU3luY05QT2JqZWN0
TWVzc2FnZVJlY2VpdmVyTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6Ok1lc3NhZ2VEZWNv
ZGVyJiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6TWVzc2FnZUVuY29kZXI+Jik7CisgICAgdm9pZCBk
aWRSZWNlaXZlU3luY05QT2JqZWN0TWVzc2FnZVJlY2VpdmVyTWVzc2FnZShJUEM6OkNvbm5lY3Rp
b24mLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4m
KTsKIAogICAgIFBsdWdpbiogcGx1Z2luKCkgY29uc3QgeyByZXR1cm4gbV9wbHVnaW47IH0KICAg
ICBOUE9iamVjdCogbnBPYmplY3QoKSBjb25zdCB7IHJldHVybiBtX25wT2JqZWN0OyB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9OUFJlbW90ZU9iamVjdE1hcC5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9OUFJlbW90ZU9iamVjdE1hcC5jcHAK
aW5kZXggOGRjZDc5ZTRlNGI4MWIzN2E5ODA0NDFjODAxZTk2ZjUwYmM2MzI5NS4uOTBkOTkwODdj
NWZlOGI0ZjRhNzMxMGQ5NDM3NTZkZmY1OWRjNTFjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvU2hhcmVkL1BsdWdpbnMvTlBSZW1vdGVPYmplY3RNYXAuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9QbHVnaW5zL05QUmVtb3RlT2JqZWN0TWFwLmNwcApAQCAtMjE3LDcgKzIxNyw3
IEBAIHZvaWQgTlBSZW1vdGVPYmplY3RNYXA6OnBsdWdpbkRlc3Ryb3llZChQbHVnaW4qIHBsdWdp
bikKICAgICB9CiB9CiAKLXZvaWQgTlBSZW1vdGVPYmplY3RNYXA6OmRpZFJlY2VpdmVTeW5jTWVz
c2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6TWVzc2FnZURlY29kZXImIGRl
Y29kZXIsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6Ok1lc3NhZ2VFbmNvZGVyPiYgcmVwbHlFbmNvZGVy
KQordm9pZCBOUFJlbW90ZU9iamVjdE1hcDo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29u
bmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2Rlciwgc3RkOjp1
bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4mIHJlcGx5RW5jb2RlcikKIHsKICAgICBOUE9iamVjdE1l
c3NhZ2VSZWNlaXZlciogbWVzc2FnZVJlY2VpdmVyID0gbV9yZWdpc3RlcmVkTlBPYmplY3RzLmdl
dChkZWNvZGVyLmRlc3RpbmF0aW9uSUQoKSk7CiAgICAgaWYgKCFtZXNzYWdlUmVjZWl2ZXIpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9OUFJlbW90ZU9iamVjdE1h
cC5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvTlBSZW1vdGVPYmplY3RNYXAuaApp
bmRleCA0YjhkYTg1OTRlYmY4OGUyOTg5NWFiYTJhNDc5MzZkYTZjNDA2NGIzLi4xMjdlNGI2MDVi
NTFlM2IwZWE5NzI4ZGQ5ODM4MjFhOWFiODBkOWMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvUGx1Z2lucy9OUFJlbW90ZU9iamVjdE1hcC5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9QbHVnaW5zL05QUmVtb3RlT2JqZWN0TWFwLmgKQEAgLTYxLDcgKzYxLDcgQEAgcHVi
bGljOgogCiAgICAgdm9pZCBwbHVnaW5EZXN0cm95ZWQoUGx1Z2luKik7CiAKLSAgICB2b2lkIGRp
ZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6Ok1lc3NhZ2VEZWNvZGVy
Jiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6TWVzc2FnZUVuY29kZXI+Jik7CisgICAgdm9pZCBkaWRS
ZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpNZXNzYWdlRGVjb2RlciYs
IHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+Jik7CiAKIHByaXZhdGU6CiAgICAgZXhwbGlj
aXQgTlBSZW1vdGVPYmplY3RNYXAoSVBDOjpDb25uZWN0aW9uKik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9OUFZhcmlhbnREYXRhLmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9QbHVnaW5zL05QVmFyaWFudERhdGEuY3BwCmluZGV4IGI0NjBkMDk3MjNjMDlj
YmZmMzkwMTk5M2YyYTlkNTg0YTlhM2Q0NmYuLmUzNzNkYWFjNWRmNGQ2MWI5ODg5NTBhMzk2YmFh
ZTk5NzA2YzFmYmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9QbHVnaW5zL05Q
VmFyaWFudERhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9QbHVnaW5zL05QVmFy
aWFudERhdGEuY3BwCkBAIC0yOSw3ICsyOSw3IEBACiAjaWYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJ
Tl9BUEkpCiAKICNpbmNsdWRlICJBcmd1bWVudERlY29kZXIuaCIKLSNpbmNsdWRlICJBcmd1bWVu
dEVuY29kZXIuaCIKKyNpbmNsdWRlICJFbmNvZGVyLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3Vt
ZW50Q29kZXJzLmgiCiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtMTE4LDcgKzExOCw3IEBAIE5Q
VmFyaWFudERhdGEgTlBWYXJpYW50RGF0YTo6bWFrZVJlbW90ZU5QT2JqZWN0SUQodWludDY0X3Qg
dmFsdWUpCiAgICAgcmV0dXJuIG5wVmFyaWFudERhdGE7CiB9CiAKLXZvaWQgTlBWYXJpYW50RGF0
YTo6ZW5jb2RlKElQQzo6QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAordm9pZCBOUFZh
cmlhbnREYXRhOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewogICAgIGVu
Y29kZXIgPDwgbV90eXBlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGx1
Z2lucy9OUFZhcmlhbnREYXRhLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9OUFZh
cmlhbnREYXRhLmgKaW5kZXggZGEwNTZhOTRjNTlmMTFiYTg2N2EyOWJiN2E2NGI4ODAwMmM5MWYz
Ni4uM2JjNTkzMjU4YjFlZTMxMWYyNWVmN2QyZjkyN2Q5MzAwODdlYzQ1OCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvTlBWYXJpYW50RGF0YS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9QbHVnaW5zL05QVmFyaWFudERhdGEuaApAQCAtMzIsNyArMzIsNyBA
QAogCiBuYW1lc3BhY2UgSVBDIHsKICAgICBjbGFzcyBBcmd1bWVudERlY29kZXI7Ci0gICAgY2xh
c3MgQXJndW1lbnRFbmNvZGVyOworICAgIGNsYXNzIEVuY29kZXI7CiB9CiAKIG5hbWVzcGFjZSBX
ZWJLaXQgewpAQCAtOTgsNyArOTgsNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBtX3JlbW90
ZU5QT2JqZWN0SURWYWx1ZTsKICAgICB9CiAKLSAgICB2b2lkIGVuY29kZShJUEM6OkFyZ3VtZW50
RW5jb2RlciYpIGNvbnN0OworICAgIHZvaWQgZW5jb2RlKElQQzo6RW5jb2RlciYpIGNvbnN0Owog
ICAgIHN0YXRpYyBib29sIGRlY29kZShJUEM6OkFyZ3VtZW50RGVjb2RlciYsIE5QVmFyaWFudERh
dGEmKTsKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9QbHVn
aW5zL1BsdWdpblByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwIGIvU291cmNlL1dlYktpdDIv
U2hhcmVkL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKaW5kZXgg
MzAxNTRjNzljMzU0MGQzNWVmNWY1ZThjNmFiOTFhMzIzODVmZTQ5YS4uYTNjZDRjMzE3ZmMyN2M4
MTA0ZjRiOGIzNDdlZTBkNzcwMzJkZDdiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hh
cmVkL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVy
cy5jcHAKQEAgLTM5LDcgKzM5LDcgQEAgUGx1Z2luUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6
UGx1Z2luUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycygpCiB7CiB9CiAKLXZvaWQgUGx1Z2luUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlKElQQzo6QXJndW1lbnRFbmNvZGVyJiBlbmNv
ZGVyKSBjb25zdAordm9pZCBQbHVnaW5Qcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUo
SVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewogICAgIGVuY29kZXIuZW5jb2RlRW51bShw
cm9jZXNzVHlwZSk7CiAgICAgZW5jb2RlciA8PCBzdXBwb3J0c0FzeW5jaHJvbm91c1BsdWdpbklu
aXRpYWxpemF0aW9uOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMv
UGx1Z2luUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVk
L1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCmluZGV4IGQ2MTcxMzkw
NDM5YmZlYjQwZTA4ODU5NWUzODE0MzQyMDZmYmE0YjIuLmEzMjcwYjc4MWJlN2RhMjc2ZTJmOThm
MTUxYmVhMWU2ZTc5NWUzZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9QbHVn
aW5zL1BsdWdpblByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKQEAgLTM3
LDcgKzM3LDcgQEAKIAogbmFtZXNwYWNlIElQQyB7CiBjbGFzcyBBcmd1bWVudERlY29kZXI7Ci1j
bGFzcyBBcmd1bWVudEVuY29kZXI7CitjbGFzcyBFbmNvZGVyOwogfQogCiBuYW1lc3BhY2UgV2Vi
S2l0IHsKQEAgLTQ1LDcgKzQ1LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiBzdHJ1Y3QgUGx1Z2lu
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyB7CiAgICAgUGx1Z2luUHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVycygpOwogCi0gICAgdm9pZCBlbmNvZGUoSVBDOjpBcmd1bWVudEVuY29kZXImKSBjb25z
dDsKKyAgICB2b2lkIGVuY29kZShJUEM6OkVuY29kZXImKSBjb25zdDsKICAgICBzdGF0aWMgYm9v
bCBkZWNvZGUoSVBDOjpBcmd1bWVudERlY29kZXImLCBQbHVnaW5Qcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzJik7CiAKICAgICBQbHVnaW5Qcm9jZXNzVHlwZSBwcm9jZXNzVHlwZTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9QcmludEluZm8uY3BwIGIvU291cmNlL1dlYktpdDIv
U2hhcmVkL1ByaW50SW5mby5jcHAKaW5kZXggYmJkY2JhNzZhZGMzOTljMDZiMmYxMDNhOGRjNThl
MWRiOWEwNTE5MS4uYTZiNzcxZjhiOGZjMGRhOGUyMWEyNWQ5ZGRiNjE4NmIzYjE5YzYyNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1ByaW50SW5mby5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvU2hhcmVkL1ByaW50SW5mby5jcHAKQEAgLTI3LDggKzI3LDggQEAKICNpbmNsdWRl
ICJQcmludEluZm8uaCIKIAogI2luY2x1ZGUgIkFyZ3VtZW50RGVjb2Rlci5oIgotI2luY2x1ZGUg
IkFyZ3VtZW50RW5jb2Rlci5oIgogI2luY2x1ZGUgIkFyZ3VtZW50cy5oIgorI2luY2x1ZGUgIkVu
Y29kZXIuaCIKIAogI2lmIFBMQVRGT1JNKEdUSykKICNpbmNsdWRlICJBcmd1bWVudENvZGVyc0d0
ay5oIgpAQCAtNDMsNyArNDMsNyBAQCBQcmludEluZm86OlByaW50SW5mbygpCiB7CiB9CiAKLXZv
aWQgUHJpbnRJbmZvOjplbmNvZGUoSVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0
Cit2b2lkIFByaW50SW5mbzo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKIHsK
ICAgICBlbmNvZGVyIDw8IHBhZ2VTZXR1cFNjYWxlRmFjdG9yOwogICAgIGVuY29kZXIgPDwgYXZh
aWxhYmxlUGFwZXJXaWR0aDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Qcmlu
dEluZm8uaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9QcmludEluZm8uaAppbmRleCBiY2IyYmUx
OGNkMTIzM2QwODQ3NDUzMzY1NWZiM2U2NjM4N2IzMzRiLi5iOGYwNDIyZWI1ZTgwODBhOWRiY2Y3
NjBiNzQ4ZjQ5YWU2YTFjNDljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUHJp
bnRJbmZvLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1ByaW50SW5mby5oCkBAIC0zOSw3
ICszOSw3IEBAIGNsYXNzIE5TUHJpbnRJbmZvOwogCiBuYW1lc3BhY2UgSVBDIHsKICAgICBjbGFz
cyBBcmd1bWVudERlY29kZXI7Ci0gICAgY2xhc3MgQXJndW1lbnRFbmNvZGVyOworICAgIGNsYXNz
IEVuY29kZXI7CiB9CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtNjcsNyArNjcsNyBAQCBzdHJ1
Y3QgUHJpbnRJbmZvIHsKICAgICBQcmludE1vZGUgcHJpbnRNb2RlOwogI2VuZGlmCiAKLSAgICB2
b2lkIGVuY29kZShJUEM6OkFyZ3VtZW50RW5jb2RlciYpIGNvbnN0OworICAgIHZvaWQgZW5jb2Rl
KElQQzo6RW5jb2RlciYpIGNvbnN0OwogICAgIHN0YXRpYyBib29sIGRlY29kZShJUEM6OkFyZ3Vt
ZW50RGVjb2RlciYsIFByaW50SW5mbyYpOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvU2hhcmVkL1NhbmRib3hFeHRlbnNpb24uaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TYW5k
Ym94RXh0ZW5zaW9uLmgKaW5kZXggM2ZhNmM3NTc3YTBkNWU4NjdhYjE2OTkzMDVlN2JmMGE5MTRh
MGZjNS4uY2IxMjUzMWU5Zjk2NThiOTJlNmU0YjhmYzFmNGY5Y2E2ODJmMGMzYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1NhbmRib3hFeHRlbnNpb24uaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvU2FuZGJveEV4dGVuc2lvbi5oCkBAIC0zNyw4ICszNyw4IEBAIHR5cGVk
ZWYgc3RydWN0IF9fV0tTYW5kYm94RXh0ZW5zaW9uKiBXS1NhbmRib3hFeHRlbnNpb25SZWY7CiAj
ZW5kaWYKIAogbmFtZXNwYWNlIElQQyB7Ci0gICAgY2xhc3MgQXJndW1lbnRFbmNvZGVyOwotICAg
IGNsYXNzIEFyZ3VtZW50RGVjb2RlcjsKK2NsYXNzIEVuY29kZXI7CitjbGFzcyBBcmd1bWVudERl
Y29kZXI7CiB9CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtNTcsNyArNTcsNyBAQCBwdWJsaWM6
CiAgICAgICAgIEhhbmRsZShIYW5kbGUmJikgPSBkZWZhdWx0OwogICAgICAgICB+SGFuZGxlKCk7
CiAKLSAgICAgICAgdm9pZCBlbmNvZGUoSVBDOjpBcmd1bWVudEVuY29kZXImKSBjb25zdDsKKyAg
ICAgICAgdm9pZCBlbmNvZGUoSVBDOjpFbmNvZGVyJikgY29uc3Q7CiAgICAgICAgIHN0YXRpYyBi
b29sIGRlY29kZShJUEM6OkFyZ3VtZW50RGVjb2RlciYsIEhhbmRsZSYpOwogCiAgICAgcHJpdmF0
ZToKQEAgLTc3LDcgKzc3LDcgQEAgcHVibGljOgogICAgICAgICBIYW5kbGUmIG9wZXJhdG9yW10o
c2l6ZV90IGkpOwogICAgICAgICBjb25zdCBIYW5kbGUmIG9wZXJhdG9yW10oc2l6ZV90IGkpIGNv
bnN0OwogICAgICAgICBzaXplX3Qgc2l6ZSgpIGNvbnN0OwotICAgICAgICB2b2lkIGVuY29kZShJ
UEM6OkFyZ3VtZW50RW5jb2RlciYpIGNvbnN0OworICAgICAgICB2b2lkIGVuY29kZShJUEM6OkVu
Y29kZXImKSBjb25zdDsKICAgICAgICAgc3RhdGljIGJvb2wgZGVjb2RlKElQQzo6QXJndW1lbnRE
ZWNvZGVyJiwgSGFuZGxlQXJyYXkmKTsKICAgICAgICAKICAgICBwcml2YXRlOgpAQCAtMTEzLDcg
KzExMyw3IEBAIHByaXZhdGU6CiAjaWYgIUVOQUJMRShTQU5EQk9YX0VYVEVOU0lPTlMpCiBpbmxp
bmUgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlOjpIYW5kbGUoKSB7IH0KIGlubGluZSBTYW5kYm94
RXh0ZW5zaW9uOjpIYW5kbGU6On5IYW5kbGUoKSB7IH0KLWlubGluZSB2b2lkIFNhbmRib3hFeHRl
bnNpb246OkhhbmRsZTo6ZW5jb2RlKElQQzo6QXJndW1lbnRFbmNvZGVyJikgY29uc3QgeyB9Citp
bmxpbmUgdm9pZCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGU6OmVuY29kZShJUEM6OkVuY29kZXIm
KSBjb25zdCB7IH0KIGlubGluZSBib29sIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZTo6ZGVjb2Rl
KElQQzo6QXJndW1lbnREZWNvZGVyJiwgSGFuZGxlJikgeyByZXR1cm4gdHJ1ZTsgfQogaW5saW5l
IFNhbmRib3hFeHRlbnNpb246OkhhbmRsZUFycmF5OjpIYW5kbGVBcnJheSgpIHsgfQogaW5saW5l
IFNhbmRib3hFeHRlbnNpb246OkhhbmRsZUFycmF5Ojp+SGFuZGxlQXJyYXkoKSB7IH0KQEAgLTEy
MSw3ICsxMjEsNyBAQCBpbmxpbmUgdm9pZCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGVBcnJheTo6
YWxsb2NhdGUoc2l6ZV90KSB7IH0KIGlubGluZSBzaXplX3QgU2FuZGJveEV4dGVuc2lvbjo6SGFu
ZGxlQXJyYXk6OnNpemUoKSBjb25zdCB7IHJldHVybiAwOyB9ICAgIAogaW5saW5lIGNvbnN0IFNh
bmRib3hFeHRlbnNpb246OkhhbmRsZSYgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlQXJyYXk6Om9w
ZXJhdG9yW10oc2l6ZV90KSBjb25zdCB7IHJldHVybiBtX2VtcHR5SGFuZGxlOyB9CiBpbmxpbmUg
U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJiBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGVBcnJheTo6
b3BlcmF0b3JbXShzaXplX3QpIHsgcmV0dXJuIG1fZW1wdHlIYW5kbGU7IH0KLWlubGluZSB2b2lk
IFNhbmRib3hFeHRlbnNpb246OkhhbmRsZUFycmF5OjplbmNvZGUoSVBDOjpBcmd1bWVudEVuY29k
ZXImKSBjb25zdCB7IH0KK2lubGluZSB2b2lkIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZUFycmF5
OjplbmNvZGUoSVBDOjpFbmNvZGVyJikgY29uc3QgeyB9CiBpbmxpbmUgYm9vbCBTYW5kYm94RXh0
ZW5zaW9uOjpIYW5kbGVBcnJheTo6ZGVjb2RlKElQQzo6QXJndW1lbnREZWNvZGVyJiwgSGFuZGxl
QXJyYXkmKSB7IHJldHVybiB0cnVlOyB9CiBpbmxpbmUgUmVmUHRyPFNhbmRib3hFeHRlbnNpb24+
IFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZShjb25zdCBIYW5kbGUmKSB7IHJldHVybiBudWxscHRy
OyB9CiBpbmxpbmUgYm9vbCBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGUoY29uc3QgU3Ry
aW5nJiwgVHlwZSwgSGFuZGxlJikgeyByZXR1cm4gdHJ1ZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL1Njcm9sbGluZy9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclRyYW5z
YWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TY3JvbGxpbmcvUmVtb3RlU2Nyb2xs
aW5nQ29vcmRpbmF0b3JUcmFuc2FjdGlvbi5jcHAKaW5kZXggYjQwNDQ5NzBmMjVkZGRmOWRkNGI0
Yjc3NjVlOWZmYjdmOGRmMzA3ZS4uOGRjM2Y4YmJjMTdhMGUyYmNhOTNiN2E2NWVlZWUzZjQ5NmU3
ZGQ0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1Njcm9sbGluZy9SZW1vdGVT
Y3JvbGxpbmdDb29yZGluYXRvclRyYW5zYWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvU2Nyb2xsaW5nL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yVHJhbnNhY3Rpb24uY3Bw
CkBAIC0yOCw3ICsyOCw2IEBACiAKICNpbmNsdWRlICJBcmd1bWVudENvZGVycy5oIgogI2luY2x1
ZGUgIk1lc3NhZ2VEZWNvZGVyLmgiCi0jaW5jbHVkZSAiTWVzc2FnZUVuY29kZXIuaCIKICNpbmNs
dWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0dyYXBoaWNz
TGF5ZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Njcm9sbGluZ1N0YXRlRml4ZWROb2RlLmg+CkBA
IC00NywzMiArNDYsMzIgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiBuYW1lc3BhY2UgSVBD
IHsKIAogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxTY3JvbGxpbmdTdGF0ZU5vZGU+
IHsKLSAgICBzdGF0aWMgdm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyJiwgY29uc3QgU2Nyb2xs
aW5nU3RhdGVOb2RlJik7CisgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBT
Y3JvbGxpbmdTdGF0ZU5vZGUmKTsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNv
ZGVyJiwgU2Nyb2xsaW5nU3RhdGVOb2RlJik7CiB9OwogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1
bWVudENvZGVyPFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZT4gewotICAgIHN0YXRpYyB2b2lk
IGVuY29kZShBcmd1bWVudEVuY29kZXImLCBjb25zdCBTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05v
ZGUmKTsKKyAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFNjcm9sbGluZ1N0
YXRlU2Nyb2xsaW5nTm9kZSYpOwogICAgIHN0YXRpYyBib29sIGRlY29kZShBcmd1bWVudERlY29k
ZXImLCBTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUmKTsKIH07CiAgICAgCiB0ZW1wbGF0ZTw+
IHN0cnVjdCBBcmd1bWVudENvZGVyPFNjcm9sbGluZ1N0YXRlRnJhbWVTY3JvbGxpbmdOb2RlPiB7
Ci0gICAgc3RhdGljIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYsIGNvbnN0IFNjcm9sbGlu
Z1N0YXRlRnJhbWVTY3JvbGxpbmdOb2RlJik7CisgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29k
ZXImLCBjb25zdCBTY3JvbGxpbmdTdGF0ZUZyYW1lU2Nyb2xsaW5nTm9kZSYpOwogICAgIHN0YXRp
YyBib29sIGRlY29kZShBcmd1bWVudERlY29kZXImLCBTY3JvbGxpbmdTdGF0ZUZyYW1lU2Nyb2xs
aW5nTm9kZSYpOwogfTsKICAgICAKIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8U2Ny
b2xsaW5nU3RhdGVPdmVyZmxvd1Njcm9sbGluZ05vZGU+IHsKLSAgICBzdGF0aWMgdm9pZCBlbmNv
ZGUoQXJndW1lbnRFbmNvZGVyJiwgY29uc3QgU2Nyb2xsaW5nU3RhdGVPdmVyZmxvd1Njcm9sbGlu
Z05vZGUmKTsKKyAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFNjcm9sbGlu
Z1N0YXRlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlJik7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKEFy
Z3VtZW50RGVjb2RlciYsIFNjcm9sbGluZ1N0YXRlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlJik7CiB9
OwogICAgIAogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxTY3JvbGxpbmdTdGF0ZUZp
eGVkTm9kZT4gewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXImLCBjb25z
dCBTY3JvbGxpbmdTdGF0ZUZpeGVkTm9kZSYpOworICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNv
ZGVyJiwgY29uc3QgU2Nyb2xsaW5nU3RhdGVGaXhlZE5vZGUmKTsKICAgICBzdGF0aWMgYm9vbCBk
ZWNvZGUoQXJndW1lbnREZWNvZGVyJiwgU2Nyb2xsaW5nU3RhdGVGaXhlZE5vZGUmKTsKIH07CiAK
IHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8U2Nyb2xsaW5nU3RhdGVTdGlja3lOb2Rl
PiB7Ci0gICAgc3RhdGljIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYsIGNvbnN0IFNjcm9s
bGluZ1N0YXRlU3RpY2t5Tm9kZSYpOworICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwg
Y29uc3QgU2Nyb2xsaW5nU3RhdGVTdGlja3lOb2RlJik7CiAgICAgc3RhdGljIGJvb2wgZGVjb2Rl
KEFyZ3VtZW50RGVjb2RlciYsIFNjcm9sbGluZ1N0YXRlU3RpY2t5Tm9kZSYpOwogfTsKIApAQCAt
ODAsNyArNzksNyBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFNjcm9sbGluZ1N0
YXRlU3RpY2t5Tm9kZT4gewogCiB1c2luZyBuYW1lc3BhY2UgSVBDOwogCi12b2lkIEFyZ3VtZW50
Q29kZXI8U2Nyb2xsaW5nU3RhdGVOb2RlPjo6ZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2Rl
ciwgY29uc3QgU2Nyb2xsaW5nU3RhdGVOb2RlJiBub2RlKQordm9pZCBBcmd1bWVudENvZGVyPFNj
cm9sbGluZ1N0YXRlTm9kZT46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBTY3JvbGxp
bmdTdGF0ZU5vZGUmIG5vZGUpCiB7CiAgICAgZW5jb2Rlci5lbmNvZGVFbnVtKG5vZGUubm9kZVR5
cGUoKSk7CiAgICAgZW5jb2RlciA8PCBub2RlLnNjcm9sbGluZ05vZGVJRCgpOwpAQCAtMTE3LDcg
KzExNiw3IEBAIGJvb2wgQXJndW1lbnRDb2RlcjxTY3JvbGxpbmdTdGF0ZU5vZGU+OjpkZWNvZGUo
QXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBTY3JvbGxpCiAgICAgaWYgKG5vZGUuaGFzQ2hhbmdl
ZFByb3BlcnR5KHByb3BlcnR5KSkgXAogICAgICAgICBlbmNvZGVyLmVuY29kZUVudW0obm9kZS5n
ZXR0ZXIoKSk7CiAKLXZvaWQgQXJndW1lbnRDb2RlcjxTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05v
ZGU+OjplbmNvZGUoQXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBTY3JvbGxpbmdTdGF0
ZVNjcm9sbGluZ05vZGUmIG5vZGUpCit2b2lkIEFyZ3VtZW50Q29kZXI8U2Nyb2xsaW5nU3RhdGVT
Y3JvbGxpbmdOb2RlPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFNjcm9sbGluZ1N0
YXRlU2Nyb2xsaW5nTm9kZSYgbm9kZSkKIHsKICAgICBlbmNvZGVyIDw8IHN0YXRpY19jYXN0PGNv
bnN0IFNjcm9sbGluZ1N0YXRlTm9kZSY+KG5vZGUpOwogICAgIApAQCAtMTM3LDcgKzEzNiw3IEBA
IHZvaWQgQXJndW1lbnRDb2RlcjxTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU+OjplbmNvZGUo
QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyCiAgICAgU0NST0xMSU5HX05PREVfRU5DT0RFKFNjcm9s
bGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6UmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24sIHJlcXVlc3Rl
ZFNjcm9sbFBvc2l0aW9uUmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCkKIH0KIAotdm9pZCBB
cmd1bWVudENvZGVyPFNjcm9sbGluZ1N0YXRlRnJhbWVTY3JvbGxpbmdOb2RlPjo6ZW5jb2RlKEFy
Z3VtZW50RW5jb2RlciYgZW5jb2RlciwgY29uc3QgU2Nyb2xsaW5nU3RhdGVGcmFtZVNjcm9sbGlu
Z05vZGUmIG5vZGUpCit2b2lkIEFyZ3VtZW50Q29kZXI8U2Nyb2xsaW5nU3RhdGVGcmFtZVNjcm9s
bGluZ05vZGU+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgU2Nyb2xsaW5nU3RhdGVG
cmFtZVNjcm9sbGluZ05vZGUmIG5vZGUpCiB7CiAgICAgZW5jb2RlciA8PCBzdGF0aWNfY2FzdDxj
b25zdCBTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUmPihub2RlKTsKICAgICAKQEAgLTE2Myw3
ICsxNjIsNyBAQCB2b2lkIEFyZ3VtZW50Q29kZXI8U2Nyb2xsaW5nU3RhdGVGcmFtZVNjcm9sbGlu
Z05vZGU+OjplbmNvZGUoQXJndW1lbnRFbmNvZGVyJiBlbgogICAgICAgICBlbmNvZGVyIDw8IHN0
YXRpY19jYXN0PEdyYXBoaWNzTGF5ZXI6OlBsYXRmb3JtTGF5ZXJJRD4obm9kZS5jb250ZW50U2hh
ZG93TGF5ZXIoKSk7CiB9CiAKLXZvaWQgQXJndW1lbnRDb2RlcjxTY3JvbGxpbmdTdGF0ZU92ZXJm
bG93U2Nyb2xsaW5nTm9kZT46OmVuY29kZShBcmd1bWVudEVuY29kZXImIGVuY29kZXIsIGNvbnN0
IFNjcm9sbGluZ1N0YXRlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlJiBub2RlKQordm9pZCBBcmd1bWVu
dENvZGVyPFNjcm9sbGluZ1N0YXRlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlPjo6ZW5jb2RlKEVuY29k
ZXImIGVuY29kZXIsIGNvbnN0IFNjcm9sbGluZ1N0YXRlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlJiBu
b2RlKQogewogICAgIGVuY29kZXIgPDwgc3RhdGljX2Nhc3Q8Y29uc3QgU2Nyb2xsaW5nU3RhdGVT
Y3JvbGxpbmdOb2RlJj4obm9kZSk7CiAgICAgCkBAIC0yODEsNyArMjgwLDcgQEAgYm9vbCBBcmd1
bWVudENvZGVyPFNjcm9sbGluZ1N0YXRlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlPjo6ZGVjb2RlKEFy
Z3VtZW50RGVjb2RlciYKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBBcmd1bWVudENvZGVy
PFNjcm9sbGluZ1N0YXRlRml4ZWROb2RlPjo6ZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2Rl
ciwgY29uc3QgU2Nyb2xsaW5nU3RhdGVGaXhlZE5vZGUmIG5vZGUpCit2b2lkIEFyZ3VtZW50Q29k
ZXI8U2Nyb2xsaW5nU3RhdGVGaXhlZE5vZGU+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29u
c3QgU2Nyb2xsaW5nU3RhdGVGaXhlZE5vZGUmIG5vZGUpCiB7CiAgICAgZW5jb2RlciA8PCBzdGF0
aWNfY2FzdDxjb25zdCBTY3JvbGxpbmdTdGF0ZU5vZGUmPihub2RlKTsKICAgICAKQEAgLTMwNCw3
ICszMDMsNyBAQCBib29sIEFyZ3VtZW50Q29kZXI8U2Nyb2xsaW5nU3RhdGVGaXhlZE5vZGU+Ojpk
ZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBTYwogICAgIHJldHVybiB0cnVlOwogfQog
Ci12b2lkIEFyZ3VtZW50Q29kZXI8U2Nyb2xsaW5nU3RhdGVTdGlja3lOb2RlPjo6ZW5jb2RlKEFy
Z3VtZW50RW5jb2RlciYgZW5jb2RlciwgY29uc3QgU2Nyb2xsaW5nU3RhdGVTdGlja3lOb2RlJiBu
b2RlKQordm9pZCBBcmd1bWVudENvZGVyPFNjcm9sbGluZ1N0YXRlU3RpY2t5Tm9kZT46OmVuY29k
ZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBTY3JvbGxpbmdTdGF0ZVN0aWNreU5vZGUmIG5vZGUp
CiB7CiAgICAgZW5jb2RlciA8PCBzdGF0aWNfY2FzdDxjb25zdCBTY3JvbGxpbmdTdGF0ZU5vZGUm
Pihub2RlKTsKICAgICAKQEAgLTMyOSw3ICszMjgsNyBAQCBib29sIEFyZ3VtZW50Q29kZXI8U2Ny
b2xsaW5nU3RhdGVTdGlja3lOb2RlPjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2Rlciwg
UwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotc3RhdGljIHZvaWQgZW5jb2RlTm9kZUFuZERlc2Nl
bmRhbnRzKElQQzo6QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBTY3JvbGxpbmdTdGF0
ZU5vZGUmIHN0YXRlTm9kZSwgaW50JiBlbmNvZGVkTm9kZUNvdW50KQorc3RhdGljIHZvaWQgZW5j
b2RlTm9kZUFuZERlc2NlbmRhbnRzKElQQzo6RW5jb2RlciYgZW5jb2RlciwgY29uc3QgU2Nyb2xs
aW5nU3RhdGVOb2RlJiBzdGF0ZU5vZGUsIGludCYgZW5jb2RlZE5vZGVDb3VudCkKIHsKICAgICAr
K2VuY29kZWROb2RlQ291bnQ7CiAKQEAgLTM1NSw3ICszNTQsNyBAQCBzdGF0aWMgdm9pZCBlbmNv
ZGVOb2RlQW5kRGVzY2VuZGFudHMoSVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIsIGNvbnN0
IFNjcm9sbAogICAgICAgICBlbmNvZGVOb2RlQW5kRGVzY2VuZGFudHMoZW5jb2RlciwgKmNoaWxk
LmdldCgpLCBlbmNvZGVkTm9kZUNvdW50KTsKIH0KIAotdm9pZCBSZW1vdGVTY3JvbGxpbmdDb29y
ZGluYXRvclRyYW5zYWN0aW9uOjplbmNvZGUoSVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIp
IGNvbnN0Cit2b2lkIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yVHJhbnNhY3Rpb246OmVuY29k
ZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB7CiAgICAgaW50IG51bU5vZGVzID0gbV9z
Y3JvbGxpbmdTdGF0ZVRyZWUgPyBtX3Njcm9sbGluZ1N0YXRlVHJlZS0+bm9kZUNvdW50KCkgOiAw
OwogICAgIGVuY29kZXIgPDwgbnVtTm9kZXM7CkBAIC02NDEsNyArNjQwLDcgQEAgdm9pZCBSZW1v
dGVTY3JvbGxpbmdDb29yZGluYXRvclRyYW5zYWN0aW9uOjpkdW1wKCkgY29uc3QKIAogbmFtZXNw
YWNlIFdlYktpdCB7CiAKLXZvaWQgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JUcmFuc2FjdGlv
bjo6ZW5jb2RlKElQQzo6QXJndW1lbnRFbmNvZGVyJikgY29uc3QKK3ZvaWQgUmVtb3RlU2Nyb2xs
aW5nQ29vcmRpbmF0b3JUcmFuc2FjdGlvbjo6ZW5jb2RlKElQQzo6RW5jb2RlciYpIGNvbnN0CiB7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TY3JvbGxpbmcvUmVtb3Rl
U2Nyb2xsaW5nQ29vcmRpbmF0b3JUcmFuc2FjdGlvbi5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVk
L1Njcm9sbGluZy9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclRyYW5zYWN0aW9uLmgKaW5kZXgg
MGQ4MWUxOGMzNDQxMWJlZWRkNWU4ZDcyMDAxZWJhZTQ5ZjczODc0Ny4uNTMwZDFmMTVjY2U2ZWQ0
ZTA3Zjg0ODJiNDc0YmU1MzM5MWUyNmZkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hh
cmVkL1Njcm9sbGluZy9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclRyYW5zYWN0aW9uLmgKKysr
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1Njcm9sbGluZy9SZW1vdGVTY3JvbGxpbmdDb29yZGlu
YXRvclRyYW5zYWN0aW9uLmgKQEAgLTMwLDcgKzMwLDcgQEAKIAogbmFtZXNwYWNlIElQQyB7CiBj
bGFzcyBBcmd1bWVudERlY29kZXI7Ci1jbGFzcyBBcmd1bWVudEVuY29kZXI7CitjbGFzcyBFbmNv
ZGVyOwogfQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTQyLDcgKzQyLDcgQEAgcHVibGljOgog
ICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpTY3JvbGxpbmdTdGF0ZVRyZWU+JiBzY3JvbGxp
bmdTdGF0ZVRyZWUoKSB7IHJldHVybiBtX3Njcm9sbGluZ1N0YXRlVHJlZTsgfQogI2VuZGlmIC8v
IEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpCiAKLSAgICB2b2lkIGVuY29kZShJUEM6OkFyZ3VtZW50
RW5jb2RlciYpIGNvbnN0OworICAgIHZvaWQgZW5jb2RlKElQQzo6RW5jb2RlciYpIGNvbnN0Owog
ICAgIHN0YXRpYyBib29sIGRlY29kZShJUEM6OkFyZ3VtZW50RGVjb2RlciYsIFJlbW90ZVNjcm9s
bGluZ0Nvb3JkaW5hdG9yVHJhbnNhY3Rpb24mKTsKIAogI2lmICFkZWZpbmVkKE5ERUJVRykgfHwg
IUxPR19ESVNBQkxFRApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1Nlc3Npb25T
dGF0ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2Vzc2lvblN0YXRlLmNwcAppbmRleCA0
ZTE2OWZlZGU4YWZjMzFkMTVkMzJmNzk5YjU2ZmEyNWM1MzEyMDgzLi44M2Y4OGNlNDM0NDA2NTdh
Y2Q3ZTA0ZWIzNDc2N2Q1ODc5ZWRkNWVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvU2Vzc2lvblN0YXRlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2Vzc2lvblN0
YXRlLmNwcApAQCAtNDEsNyArNDEsNyBAQCBib29sIGlzVmFsaWRFbnVtKFdlYkNvcmU6OlNob3Vs
ZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kgcG9saWN5KQogICAgIHJldHVybiBmYWxzZTsKIH0KIAot
dm9pZCBIVFRQQm9keTo6RWxlbWVudDo6ZW5jb2RlKElQQzo6QXJndW1lbnRFbmNvZGVyJiBlbmNv
ZGVyKSBjb25zdAordm9pZCBIVFRQQm9keTo6RWxlbWVudDo6ZW5jb2RlKElQQzo6RW5jb2RlciYg
ZW5jb2RlcikgY29uc3QKIHsKICAgICBlbmNvZGVyLmVuY29kZUVudW0odHlwZSk7CiAgICAgZW5j
b2RlciA8PCBkYXRhOwpAQCAtODQsNyArODQsNyBAQCBib29sIEhUVFBCb2R5OjpFbGVtZW50Ojpk
ZWNvZGUoSVBDOjpBcmd1bWVudERlY29kZXImIGRlY29kZXIsIEVsZW1lbnQmIHJlc3VsdCkKICAg
ICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBIVFRQQm9keTo6ZW5jb2RlKElQQzo6QXJndW1lbnRF
bmNvZGVyJiBlbmNvZGVyKSBjb25zdAordm9pZCBIVFRQQm9keTo6ZW5jb2RlKElQQzo6RW5jb2Rl
ciYgZW5jb2RlcikgY29uc3QKIHsKICAgICBlbmNvZGVyIDw8IGNvbnRlbnRUeXBlOwogICAgIGVu
Y29kZXIgPDwgZWxlbWVudHM7CkBAIC0xMDAsNyArMTAwLDcgQEAgYm9vbCBIVFRQQm9keTo6ZGVj
b2RlKElQQzo6QXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBIVFRQQm9keSYgcmVzdWx0KQogICAg
IHJldHVybiB0cnVlOwogfQogCi12b2lkIEZyYW1lU3RhdGU6OmVuY29kZShJUEM6OkFyZ3VtZW50
RW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3ZvaWQgRnJhbWVTdGF0ZTo6ZW5jb2RlKElQQzo6RW5j
b2RlciYgZW5jb2RlcikgY29uc3QKIHsKICAgICBlbmNvZGVyIDw8IHVybFN0cmluZzsKICAgICBl
bmNvZGVyIDw8IG9yaWdpbmFsVVJMU3RyaW5nOwpAQCAtMTc3LDcgKzE3Nyw3IEBAIGJvb2wgRnJh
bWVTdGF0ZTo6ZGVjb2RlKElQQzo6QXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBGcmFtZVN0YXRl
JiByZXN1bHQpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgUGFnZVN0YXRlOjplbmNvZGUo
SVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit2b2lkIFBhZ2VTdGF0ZTo6ZW5j
b2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKIHsKICAgICBlbmNvZGVyIDw8IHRpdGxl
OwogICAgIGVuY29kZXIgPDwgbWFpbkZyYW1lU3RhdGU7CkBAIC0xOTYsNyArMTk2LDcgQEAgYm9v
bCBQYWdlU3RhdGU6OmRlY29kZShJUEM6OkFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgUGFnZVN0
YXRlJiByZXN1bHQpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgQmFja0ZvcndhcmRMaXN0
SXRlbVN0YXRlOjplbmNvZGUoSVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit2
b2lkIEJhY2tGb3J3YXJkTGlzdEl0ZW1TdGF0ZTo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2Rl
cikgY29uc3QKIHsKICAgICBlbmNvZGVyIDw8IGlkZW50aWZpZXI7CiAgICAgZW5jb2RlciA8PCBw
YWdlU3RhdGU7CkBAIC0yMTMsNyArMjEzLDcgQEAgYm9vbCBCYWNrRm9yd2FyZExpc3RJdGVtU3Rh
dGU6OmRlY29kZShJUEM6OkFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgQmFja0ZvcndhcmQKICAg
ICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBCYWNrRm9yd2FyZExpc3RTdGF0ZTo6ZW5jb2RlKElQ
Qzo6QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAordm9pZCBCYWNrRm9yd2FyZExpc3RT
dGF0ZTo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKIHsKICAgICBlbmNvZGVy
IDw8IGl0ZW1zOwogICAgIGVuY29kZXIgPDwgY3VycmVudEluZGV4OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvU2hhcmVkL1Nlc3Npb25TdGF0ZS5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVk
L1Nlc3Npb25TdGF0ZS5oCmluZGV4IDQ4YWQ2ZmQ5NWEyZTUyZjcwMmEzODY5MjE3MGY3MjNhZjAw
Zjc0ZjAuLmQ1NzdlZTY3NDc2ZTM5MTMyZTEzNjA3NDc5Y2IxYTE4MTM0Yjg5OWIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TZXNzaW9uU3RhdGUuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvU2Vzc2lvblN0YXRlLmgKQEAgLTQwLDcgKzQwLDcgQEAKIAogbmFtZXNwYWNl
IElQQyB7CiBjbGFzcyBBcmd1bWVudERlY29kZXI7Ci1jbGFzcyBBcmd1bWVudEVuY29kZXI7Citj
bGFzcyBFbmNvZGVyOwogfQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTQ5LDcgKzQ5LDcgQEAg
Ym9vbCBpc1ZhbGlkRW51bShXZWJDb3JlOjpTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5KTsK
IAogc3RydWN0IEhUVFBCb2R5IHsKICAgICBzdHJ1Y3QgRWxlbWVudCB7Ci0gICAgICAgIHZvaWQg
ZW5jb2RlKElQQzo6QXJndW1lbnRFbmNvZGVyJikgY29uc3Q7CisgICAgICAgIHZvaWQgZW5jb2Rl
KElQQzo6RW5jb2RlciYpIGNvbnN0OwogICAgICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoSVBDOjpB
cmd1bWVudERlY29kZXImLCBFbGVtZW50Jik7CiAKICAgICAgICAgZW51bSBjbGFzcyBUeXBlIHsK
QEAgLTczLDcgKzczLDcgQEAgc3RydWN0IEhUVFBCb2R5IHsKICAgICAgICAgU3RyaW5nIGJsb2JV
UkxTdHJpbmc7CiAgICAgfTsKIAotICAgIHZvaWQgZW5jb2RlKElQQzo6QXJndW1lbnRFbmNvZGVy
JikgY29uc3Q7CisgICAgdm9pZCBlbmNvZGUoSVBDOjpFbmNvZGVyJikgY29uc3Q7CiAgICAgc3Rh
dGljIGJvb2wgZGVjb2RlKElQQzo6QXJndW1lbnREZWNvZGVyJiwgSFRUUEJvZHkmKTsKIAogICAg
IFN0cmluZyBjb250ZW50VHlwZTsKQEAgLTgxLDcgKzgxLDcgQEAgc3RydWN0IEhUVFBCb2R5IHsK
IH07CiAKIHN0cnVjdCBGcmFtZVN0YXRlIHsKLSAgICB2b2lkIGVuY29kZShJUEM6OkFyZ3VtZW50
RW5jb2RlciYpIGNvbnN0OworICAgIHZvaWQgZW5jb2RlKElQQzo6RW5jb2RlciYpIGNvbnN0Owog
ICAgIHN0YXRpYyBib29sIGRlY29kZShJUEM6OkFyZ3VtZW50RGVjb2RlciYsIEZyYW1lU3RhdGUm
KTsKIAogICAgIFN0cmluZyB1cmxTdHJpbmc7CkBAIC0xMTMsNyArMTEzLDcgQEAgc3RydWN0IEZy
YW1lU3RhdGUgewogfTsKIAogc3RydWN0IFBhZ2VTdGF0ZSB7Ci0gICAgdm9pZCBlbmNvZGUoSVBD
OjpBcmd1bWVudEVuY29kZXImKSBjb25zdDsKKyAgICB2b2lkIGVuY29kZShJUEM6OkVuY29kZXIm
KSBjb25zdDsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoSVBDOjpBcmd1bWVudERlY29kZXImLCBQ
YWdlU3RhdGUmKTsKIAogICAgIFN0cmluZyB0aXRsZTsKQEAgLTEyMiw3ICsxMjIsNyBAQCBzdHJ1
Y3QgUGFnZVN0YXRlIHsKIH07CiAKIHN0cnVjdCBCYWNrRm9yd2FyZExpc3RJdGVtU3RhdGUgewot
ICAgIHZvaWQgZW5jb2RlKElQQzo6QXJndW1lbnRFbmNvZGVyJikgY29uc3Q7CisgICAgdm9pZCBl
bmNvZGUoSVBDOjpFbmNvZGVyJikgY29uc3Q7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKElQQzo6
QXJndW1lbnREZWNvZGVyJiwgQmFja0ZvcndhcmRMaXN0SXRlbVN0YXRlJik7CiAKICAgICB1aW50
NjRfdCBpZGVudGlmaWVyOwpAQCAtMTM1LDcgKzEzNSw3IEBAIHN0cnVjdCBCYWNrRm9yd2FyZExp
c3RJdGVtU3RhdGUgewogfTsKIAogc3RydWN0IEJhY2tGb3J3YXJkTGlzdFN0YXRlIHsKLSAgICB2
b2lkIGVuY29kZShJUEM6OkFyZ3VtZW50RW5jb2RlciYpIGNvbnN0OworICAgIHZvaWQgZW5jb2Rl
KElQQzo6RW5jb2RlciYpIGNvbnN0OwogICAgIHN0YXRpYyBib29sIGRlY29kZShJUEM6OkFyZ3Vt
ZW50RGVjb2RlciYsIEJhY2tGb3J3YXJkTGlzdFN0YXRlJik7CiAKICAgICBWZWN0b3I8QmFja0Zv
cndhcmRMaXN0SXRlbVN0YXRlPiBpdGVtczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9TaGFyZWFibGVCaXRtYXAuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1NoYXJlYWJs
ZUJpdG1hcC5jcHAKaW5kZXggN2UwZGNiNjM1MTEzMDViZGJiMGI1MDU1MjM4ODAwNDAxZjIzMTE3
Zi4uNTc4MGY2OWM1MmIzNDAzOWZlMjYyYjhmYzMwODY3MjU5YmQzMDNhYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvU2hhcmVkL1NoYXJlYWJsZUJpdG1hcC5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL1NoYXJlYWJsZUJpdG1hcC5jcHAKQEAgLTM5LDcgKzM5LDcgQEAgU2hhcmVh
YmxlQml0bWFwOjpIYW5kbGU6OkhhbmRsZSgpCiB7CiB9CiAKLXZvaWQgU2hhcmVhYmxlQml0bWFw
OjpIYW5kbGU6OmVuY29kZShJUEM6OkFyZ3VtZW50RW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3Zv
aWQgU2hhcmVhYmxlQml0bWFwOjpIYW5kbGU6OmVuY29kZShJUEM6OkVuY29kZXImIGVuY29kZXIp
IGNvbnN0CiB7CiAgICAgZW5jb2RlciA8PCBtX2hhbmRsZTsKICAgICBlbmNvZGVyIDw8IG1fc2l6
ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TaGFyZWFibGVCaXRtYXAuaCBi
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TaGFyZWFibGVCaXRtYXAuaAppbmRleCA0NTA5M2E0NTli
MGQ2NjdmM2EyNGI4ZDdlMWZjZjU4YzJiODJlOWY5Li43YzljZWFiZGUwOWRkMTkwNGQzY2ExNWZk
N2ZiMTY3ZWQwNjQ1ZTljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2hhcmVh
YmxlQml0bWFwLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1NoYXJlYWJsZUJpdG1hcC5o
CkBAIC02Myw3ICs2Myw3IEBAIHB1YmxpYzoKIAogICAgICAgICB2b2lkIGNsZWFyKCk7CiAKLSAg
ICAgICAgdm9pZCBlbmNvZGUoSVBDOjpBcmd1bWVudEVuY29kZXImKSBjb25zdDsKKyAgICAgICAg
dm9pZCBlbmNvZGUoSVBDOjpFbmNvZGVyJikgY29uc3Q7CiAgICAgICAgIHN0YXRpYyBib29sIGRl
Y29kZShJUEM6OkFyZ3VtZW50RGVjb2RlciYsIEhhbmRsZSYpOwogCiAgICAgcHJpdmF0ZToKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TaGFyZWFibGVSZXNvdXJjZS5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2hhcmVhYmxlUmVzb3VyY2UuY3BwCmluZGV4IGQ2NzczMmZh
ZTMyNTFhNTYwZTMyZTIxZWRiOWM1MzMxMzVmOTViMDUuLmM0ODYwMWVhMTc1MTQ5NmJlZWRkMDA1
YzI1ZDM0ZDc0YTU0NWYzOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TaGFy
ZWFibGVSZXNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1NoYXJlYWJsZVJl
c291cmNlLmNwcApAQCAtMzksNyArMzksNyBAQCBTaGFyZWFibGVSZXNvdXJjZTo6SGFuZGxlOjpI
YW5kbGUoKQogewogfQogCi12b2lkIFNoYXJlYWJsZVJlc291cmNlOjpIYW5kbGU6OmVuY29kZShJ
UEM6OkFyZ3VtZW50RW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3ZvaWQgU2hhcmVhYmxlUmVzb3Vy
Y2U6OkhhbmRsZTo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKIHsKICAgICBl
bmNvZGVyIDw8IG1faGFuZGxlOwogICAgIGVuY29kZXIgPDwgbV9vZmZzZXQ7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2hhcmVhYmxlUmVzb3VyY2UuaCBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9TaGFyZWFibGVSZXNvdXJjZS5oCmluZGV4IDgwZGYwZjNiOGMzZDgzZTgzYzgx
MDM2YjMzYmNiZWNmYmRjODhiZjEuLjI3ZTA3MTMyZjE5YzA3ZmU0ZTYxMjkwNGNlMmZhNWFhNjAx
ZjAxMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TaGFyZWFibGVSZXNvdXJj
ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TaGFyZWFibGVSZXNvdXJjZS5oCkBAIC00
OSw3ICs0OSw3IEBAIHB1YmxpYzoKICAgICAgICAgYm9vbCBpc051bGwoKSBjb25zdCB7IHJldHVy
biBtX2hhbmRsZS5pc051bGwoKTsgfQogICAgICAgICB1bnNpZ25lZCBzaXplKCkgY29uc3QgeyBy
ZXR1cm4gbV9zaXplOyB9CiAKLSAgICAgICAgdm9pZCBlbmNvZGUoSVBDOjpBcmd1bWVudEVuY29k
ZXImKSBjb25zdDsKKyAgICAgICAgdm9pZCBlbmNvZGUoSVBDOjpFbmNvZGVyJikgY29uc3Q7CiAg
ICAgICAgIHN0YXRpYyBib29sIGRlY29kZShJUEM6OkFyZ3VtZW50RGVjb2RlciYsIEhhbmRsZSYp
OwogCiAgICAgICAgIFJlZlB0cjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+IHRyeVdyYXBJblNoYXJl
ZEJ1ZmZlcigpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1N0YXRp
c3RpY3NEYXRhLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TdGF0aXN0aWNzRGF0YS5jcHAK
aW5kZXggNjE5OWU4Yzg5OGZmYjliN2EwMTZmODc5ODljMjE5ZjcyZjdlYjc0NS4uYjI1ODljZTMz
YzE0NTMwOTEyZTRmZGNmNGQ0YjY0ZjkwOWI1ZDNlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvU2hhcmVkL1N0YXRpc3RpY3NEYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
U3RhdGlzdGljc0RhdGEuY3BwCkBAIC0zMCw3ICszMCw3IEBACiAKIG5hbWVzcGFjZSBXZWJLaXQg
ewogCi12b2lkIFN0YXRpc3RpY3NEYXRhOjplbmNvZGUoSVBDOjpBcmd1bWVudEVuY29kZXImIGVu
Y29kZXIpIGNvbnN0Cit2b2lkIFN0YXRpc3RpY3NEYXRhOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBl
bmNvZGVyKSBjb25zdAogewogICAgIGVuY29kZXIgPDwgc3RhdGlzdGljc051bWJlcnM7CiAgICAg
ZW5jb2RlciA8PCBqYXZhU2NyaXB0UHJvdGVjdGVkT2JqZWN0VHlwZUNvdW50czsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TdGF0aXN0aWNzRGF0YS5oIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL1N0YXRpc3RpY3NEYXRhLmgKaW5kZXggMTQ5NGIyYTc0ZjkwM2ZhYWU5NDhkNWQ2
NTljMmE0MDdjOTJkZDMxNC4uMzM3MGI1Yjg1MjlmMWRlNjVjMTkwMzhmMDM1YzUxMjBmZDAzZDI1
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1N0YXRpc3RpY3NEYXRhLmgKKysr
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1N0YXRpc3RpY3NEYXRhLmgKQEAgLTI3LDcgKzI3LDcg
QEAKICNkZWZpbmUgU3RhdGlzdGljc0RhdGFfaAogCiAjaW5jbHVkZSAiQXJndW1lbnREZWNvZGVy
LmgiCi0jaW5jbHVkZSAiQXJndW1lbnRFbmNvZGVyLmgiCisjaW5jbHVkZSAiRW5jb2Rlci5oIgog
I2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogI2luY2x1
ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KQEAgLTM2LDcgKzM2LDcgQEAKIG5hbWVzcGFjZSBX
ZWJLaXQgewogCiBzdHJ1Y3QgU3RhdGlzdGljc0RhdGEgewotICAgIHZvaWQgZW5jb2RlKElQQzo6
QXJndW1lbnRFbmNvZGVyJikgY29uc3Q7CisgICAgdm9pZCBlbmNvZGUoSVBDOjpFbmNvZGVyJikg
Y29uc3Q7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKElQQzo6QXJndW1lbnREZWNvZGVyJiwgU3Rh
dGlzdGljc0RhdGEmKTsKICAgICAKICAgICBIYXNoTWFwPFN0cmluZywgdWludDY0X3Q+IHN0YXRp
c3RpY3NOdW1iZXJzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1VwZGF0ZUlu
Zm8uY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1VwZGF0ZUluZm8uY3BwCmluZGV4IDhhNzk4
NTc5OGMyNDdhYjNiNDIxNTA1OGExODY4NDMwZTU2NWQ4MWMuLmUxODg2MzEzYzZiYTcyNGE0YTk0
YjJlMmNjZWRjMjU3NzlmMmQyYTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9V
cGRhdGVJbmZvLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvVXBkYXRlSW5mby5jcHAK
QEAgLTMwLDcgKzMwLDcgQEAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLXZvaWQgVXBkYXRlSW5m
bzo6ZW5jb2RlKElQQzo6QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAordm9pZCBVcGRh
dGVJbmZvOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewogICAgIGVuY29k
ZXIgPDwgdmlld1NpemU7CiAgICAgZW5jb2RlciA8PCBkZXZpY2VTY2FsZUZhY3RvcjsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9VcGRhdGVJbmZvLmggYi9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvVXBkYXRlSW5mby5oCmluZGV4IGUwMGFmODM0ZWMwNTVmZmY4Yjk2OWE0MzQ0OGQ1
OTUzODUxNzg5NTguLmU5YjBjNmZlNTNjMTE4YTQ0YWQ3YjIwY2IyYmZjZDc0ZmQ5YTY5MmIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9VcGRhdGVJbmZvLmgKKysrIGIvU291cmNl
L1dlYktpdDIvU2hhcmVkL1VwZGF0ZUluZm8uaApAQCAtMzMsNyArMzMsNyBAQAogCiBuYW1lc3Bh
Y2UgSVBDIHsKICAgICBjbGFzcyBBcmd1bWVudERlY29kZXI7Ci0gICAgY2xhc3MgQXJndW1lbnRF
bmNvZGVyOworICAgIGNsYXNzIEVuY29kZXI7CiB9CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAt
NDQsNyArNDQsNyBAQCBjbGFzcyBVcGRhdGVJbmZvIHsKIHB1YmxpYzoKICAgICBVcGRhdGVJbmZv
KCkgeyB9CiAKLSAgICB2b2lkIGVuY29kZShJUEM6OkFyZ3VtZW50RW5jb2RlciYpIGNvbnN0Owor
ICAgIHZvaWQgZW5jb2RlKElQQzo6RW5jb2RlciYpIGNvbnN0OwogICAgIHN0YXRpYyBib29sIGRl
Y29kZShJUEM6OkFyZ3VtZW50RGVjb2RlciYsIFVwZGF0ZUluZm8mKTsKIAogICAgIC8vIFRoZSBz
aXplIG9mIHRoZSB3ZWIgdmlldy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9V
c2VyRGF0YS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvVXNlckRhdGEuY3BwCmluZGV4IDY1
M2M0OGM5YjBiMTU0NjZiOGMyMTE2OWE5NjViZjNjZmI2ODBmNjQuLjQwZGMxZGEzYzA0NWY2Njc4
OWJmYjk0ZTk2ZGYzNzc2ZGUxYmFhOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9Vc2VyRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1VzZXJEYXRhLmNwcApA
QCAtNDIsNyArNDIsNyBAQAogI2luY2x1ZGUgIkFQSVVSTFJlc3BvbnNlLmgiCiAjaW5jbHVkZSAi
QVBJVXNlckNvbnRlbnRVUkxQYXR0ZXJuLmgiCiAjaW5jbHVkZSAiQXJndW1lbnRDb2RlcnMuaCIK
LSNpbmNsdWRlICJBcmd1bWVudEVuY29kZXIuaCIKKyNpbmNsdWRlICJFbmNvZGVyLmgiCiAjaW5j
bHVkZSAiU2hhcmVhYmxlQml0bWFwLmgiCiAjaW5jbHVkZSAiV2ViQ2VydGlmaWNhdGVJbmZvLmgi
CiAjaW5jbHVkZSAiV2ViSW1hZ2UuaCIKQEAgLTE0MSw3ICsxNDEsNyBAQCBSZWZQdHI8QVBJOjpP
YmplY3Q+IFVzZXJEYXRhOjp0cmFuc2Zvcm0oQVBJOjpPYmplY3QqIG9iamVjdCwgY29uc3QgVHJh
bnNmb3JtZXImCiAgICAgcmV0dXJuIHRyYW5zZm9ybUdyYXBoKCpvYmplY3QsIHRyYW5zZm9ybWVy
KTsKIH0KIAotdm9pZCBVc2VyRGF0YTo6ZW5jb2RlKElQQzo6QXJndW1lbnRFbmNvZGVyJiBlbmNv
ZGVyKSBjb25zdAordm9pZCBVc2VyRGF0YTo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2Rlcikg
Y29uc3QKIHsKICAgICBlbmNvZGUoZW5jb2RlciwgbV9vYmplY3QuZ2V0KCkpOwogfQpAQCAtMTUx
LDcgKzE1MSw3IEBAIGJvb2wgVXNlckRhdGE6OmRlY29kZShJUEM6OkFyZ3VtZW50RGVjb2RlciYg
ZGVjb2RlciwgVXNlckRhdGEmIHVzZXJEYXRhKQogICAgIHJldHVybiBkZWNvZGUoZGVjb2Rlciwg
dXNlckRhdGEubV9vYmplY3QpOwogfQogCi12b2lkIFVzZXJEYXRhOjplbmNvZGUoSVBDOjpBcmd1
bWVudEVuY29kZXImIGVuY29kZXIsIGNvbnN0IEFQSTo6T2JqZWN0KiBvYmplY3QpCit2b2lkIFVz
ZXJEYXRhOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBBUEk6Ok9iamVjdCog
b2JqZWN0KQogewogICAgIGlmICghb2JqZWN0KSB7CiAgICAgICAgIGVuY29kZXIuZW5jb2RlRW51
bShBUEk6Ok9iamVjdDo6VHlwZTo6TnVsbCk7CkBAIC0xNjEsNyArMTYxLDcgQEAgdm9pZCBVc2Vy
RGF0YTo6ZW5jb2RlKElQQzo6QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBBUEk6Ok9i
amVjdCogb2JqZWN0KQogICAgIGVuY29kZShlbmNvZGVyLCAqb2JqZWN0KTsKIH0KIAotdm9pZCBV
c2VyRGF0YTo6ZW5jb2RlKElQQzo6QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBBUEk6
Ok9iamVjdCYgb2JqZWN0KQordm9pZCBVc2VyRGF0YTo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5j
b2RlciwgY29uc3QgQVBJOjpPYmplY3QmIG9iamVjdCkKIHsKICAgICBBUEk6Ok9iamVjdDo6VHlw
ZSB0eXBlID0gb2JqZWN0LnR5cGUoKTsKICAgICBlbmNvZGVyLmVuY29kZUVudW0odHlwZSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvVXNlckRhdGEuaCBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9Vc2VyRGF0YS5oCmluZGV4IDVkMGExMDg1NTBhNGNiZDNjODU2OWNmODE2YWI1
NGZiZDBmNWZiM2EuLmQzNDMwY2I5OWY3NGM1ZDcwZmU2YmFlMjFkMGVkMTIxOGQxZDJiZGQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Vc2VyRGF0YS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9Vc2VyRGF0YS5oCkBAIC0zMCw3ICszMCw3IEBACiAjaW5jbHVkZSA8d3Rm
L1JlZlB0ci5oPgogCiBuYW1lc3BhY2UgSVBDIHsKLWNsYXNzIEFyZ3VtZW50RW5jb2RlcjsKK2Ns
YXNzIEVuY29kZXI7CiBjbGFzcyBBcmd1bWVudERlY29kZXI7CiB9CiAKQEAgLTUxLDE0ICs1MSwx
NCBAQCBwdWJsaWM6CiAKICAgICBBUEk6Ok9iamVjdCogb2JqZWN0KCkgY29uc3QgeyByZXR1cm4g
bV9vYmplY3QuZ2V0KCk7IH0KIAotICAgIHZvaWQgZW5jb2RlKElQQzo6QXJndW1lbnRFbmNvZGVy
JikgY29uc3Q7CisgICAgdm9pZCBlbmNvZGUoSVBDOjpFbmNvZGVyJikgY29uc3Q7CiAgICAgc3Rh
dGljIGJvb2wgZGVjb2RlKElQQzo6QXJndW1lbnREZWNvZGVyJiwgVXNlckRhdGEmKTsKIAotICAg
IHN0YXRpYyB2b2lkIGVuY29kZShJUEM6OkFyZ3VtZW50RW5jb2RlciYsIGNvbnN0IEFQSTo6T2Jq
ZWN0Kik7CisgICAgc3RhdGljIHZvaWQgZW5jb2RlKElQQzo6RW5jb2RlciYsIGNvbnN0IEFQSTo6
T2JqZWN0Kik7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKElQQzo6QXJndW1lbnREZWNvZGVyJiwg
UmVmUHRyPEFQSTo6T2JqZWN0PiYpOwogCiBwcml2YXRlOgotICAgIHN0YXRpYyB2b2lkIGVuY29k
ZShJUEM6OkFyZ3VtZW50RW5jb2RlciYsIGNvbnN0IEFQSTo6T2JqZWN0Jik7CisgICAgc3RhdGlj
IHZvaWQgZW5jb2RlKElQQzo6RW5jb2RlciYsIGNvbnN0IEFQSTo6T2JqZWN0Jik7CiAKICAgICBS
ZWZQdHI8QVBJOjpPYmplY3Q+IG1fb2JqZWN0OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9WaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvLmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9WaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvLmNwcAppbmRleCBlOTNlYjZi
YTc2YjA5MWUxYWI3MzUzNGRiZDU3M2FmNDA2YWM0NjY5Li4zZWQyMzI0NTIzYWQxZTRkZTI3Zjg4
ZTA3YWQzMzgwMmJlY2VkNWI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvVmlz
aWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mby5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVk
L1Zpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8uY3BwCkBAIC0zMCw3ICszMCw3IEBACiAKIG5h
bWVzcGFjZSBXZWJLaXQgewogCi12b2lkIFZpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm86OmVu
Y29kZShJUEM6OkFyZ3VtZW50RW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3ZvaWQgVmlzaWJsZUNv
bnRlbnRSZWN0VXBkYXRlSW5mbzo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QK
IHsKICAgICBlbmNvZGVyIDw8IG1fZXhwb3NlZENvbnRlbnRSZWN0OwogICAgIGVuY29kZXIgPDwg
bV91bm9ic2N1cmVkQ29udGVudFJlY3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvVmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mby5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVk
L1Zpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8uaAppbmRleCBkNTlkM2NhZGY2MTkxNjhkZDZk
MTE2MjhhMDRiN2FjOThkODI4ZTc0Li4yODdiZjNiODA4YmQ0YzFkZWYyZDk0NDM0ZDNiYTMyNTEx
MTcwZDU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvVmlzaWJsZUNvbnRlbnRS
ZWN0VXBkYXRlSW5mby5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9WaXNpYmxlQ29udGVu
dFJlY3RVcGRhdGVJbmZvLmgKQEAgLTMwLDcgKzMwLDcgQEAKIAogbmFtZXNwYWNlIElQQyB7CiBj
bGFzcyBBcmd1bWVudERlY29kZXI7Ci1jbGFzcyBBcmd1bWVudEVuY29kZXI7CitjbGFzcyBFbmNv
ZGVyOwogfQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTgwLDcgKzgwLDcgQEAgcHVibGljOgog
CiAgICAgdWludDY0X3QgbGFzdExheWVyVHJlZVRyYW5zYWN0aW9uSUQoKSBjb25zdCB7IHJldHVy
biBtX2xhc3RMYXllclRyZWVUcmFuc2FjdGlvbklEOyB9CiAKLSAgICB2b2lkIGVuY29kZShJUEM6
OkFyZ3VtZW50RW5jb2RlciYpIGNvbnN0OworICAgIHZvaWQgZW5jb2RlKElQQzo6RW5jb2RlciYp
IGNvbnN0OwogICAgIHN0YXRpYyBib29sIGRlY29kZShJUEM6OkFyZ3VtZW50RGVjb2RlciYsIFZp
c2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8mKTsKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJCYWNrRm9yd2FyZExpc3RJdGVtLmggYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvV2ViQmFja0ZvcndhcmRMaXN0SXRlbS5oCmluZGV4IDgxMDE4NjVmOTc0N2Y4
OWM5OTFiNzgyNGUzOWNhZDJlNGU1MjkwZDEuLmRlNzU2ZTAxYWZmYzk5ZDdhYzlkODA0Nzk1NTRi
NjhmYTM4ZTg4MzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJCYWNrRm9y
d2FyZExpc3RJdGVtLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkJhY2tGb3J3YXJk
TGlzdEl0ZW0uaApAQCAtMzcsNyArMzcsNyBAQCBjbGFzcyBEYXRhOwogCiBuYW1lc3BhY2UgSVBD
IHsKIGNsYXNzIEFyZ3VtZW50RGVjb2RlcjsKLWNsYXNzIEFyZ3VtZW50RW5jb2RlcjsKK2NsYXNz
IEVuY29kZXI7CiB9CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL1dlYkNvbXBpbGVkQ29udGVudEV4dGVuc2lvbkRhdGEuY3BwIGIvU291cmNl
L1dlYktpdDIvU2hhcmVkL1dlYkNvbXBpbGVkQ29udGVudEV4dGVuc2lvbkRhdGEuY3BwCmluZGV4
IGY0ZmE0NDZiN2FmY2FmYTc0ZDMyY2YyZjc3ODU2MjU3OGFmYzRiOWEuLjgxYTMxYTIwYzA3NGU1
OTJkM2ExNjdkNmJlNTg2Y2YxNTE1M2ExNDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9XZWJDb21waWxlZENvbnRlbnRFeHRlbnNpb25EYXRhLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvV2ViQ29tcGlsZWRDb250ZW50RXh0ZW5zaW9uRGF0YS5jcHAKQEAgLTMyLDcg
KzMyLDcgQEAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLXZvaWQgV2ViQ29tcGlsZWRDb250ZW50
RXh0ZW5zaW9uRGF0YTo6ZW5jb2RlKElQQzo6QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBjb25z
dAordm9pZCBXZWJDb21waWxlZENvbnRlbnRFeHRlbnNpb25EYXRhOjplbmNvZGUoSVBDOjpFbmNv
ZGVyJiBlbmNvZGVyKSBjb25zdAogewogICAgIFNoYXJlZE1lbW9yeTo6SGFuZGxlIGhhbmRsZTsK
ICAgICBkYXRhLT5jcmVhdGVIYW5kbGUoaGFuZGxlLCBTaGFyZWRNZW1vcnk6OlByb3RlY3Rpb246
OlJlYWRPbmx5KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb21waWxl
ZENvbnRlbnRFeHRlbnNpb25EYXRhLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29tcGls
ZWRDb250ZW50RXh0ZW5zaW9uRGF0YS5oCmluZGV4IGMwN2ExZGEwZjc4YzNmMGIwMGM4ZGYyOWZj
MDFiYmYyMWQ4M2Q0ZTUuLjU5Y2Q4MjRhOGYzNTI3NjFlNGMyMzE2ZGM4ZjZhYWE0YzgzZWI2ZjUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb21waWxlZENvbnRlbnRFeHRl
bnNpb25EYXRhLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvbXBpbGVkQ29udGVu
dEV4dGVuc2lvbkRhdGEuaApAQCAtMzQsNyArMzQsNyBAQAogCiBuYW1lc3BhY2UgSVBDIHsKIGNs
YXNzIEFyZ3VtZW50RGVjb2RlcjsKLWNsYXNzIEFyZ3VtZW50RW5jb2RlcjsKK2NsYXNzIEVuY29k
ZXI7CiB9CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtNTksNyArNTksNyBAQCBwdWJsaWM6CiAg
ICAgewogICAgIH0KIAotICAgIHZvaWQgZW5jb2RlKElQQzo6QXJndW1lbnRFbmNvZGVyJikgY29u
c3Q7CisgICAgdm9pZCBlbmNvZGUoSVBDOjpFbmNvZGVyJikgY29uc3Q7CiAgICAgc3RhdGljIGJv
b2wgZGVjb2RlKElQQzo6QXJndW1lbnREZWNvZGVyJiwgV2ViQ29tcGlsZWRDb250ZW50RXh0ZW5z
aW9uRGF0YSYpOwogCiAgICAgUmVmUHRyPFNoYXJlZE1lbW9yeT4gZGF0YTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb250ZXh0TWVudUl0ZW1EYXRhLmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9XZWJDb250ZXh0TWVudUl0ZW1EYXRhLmNwcAppbmRleCBhOWM5NmMw
MGUwOGMyYzViODVmNDM3NTJiYmMwNGIyOWE3OGRhYWQxLi5lMDkwOGQ0MWRmN2MwNTkyYmFmMDgz
MTJmNGNjNGY3MjE2N2Y2MjRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2Vi
Q29udGV4dE1lbnVJdGVtRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNv
bnRleHRNZW51SXRlbURhdGEuY3BwCkBAIC0xMDAsNyArMTAwLDcgQEAgdm9pZCBXZWJDb250ZXh0
TWVudUl0ZW1EYXRhOjpzZXRVc2VyRGF0YShBUEk6Ok9iamVjdCogdXNlckRhdGEpCiAgICAgbV91
c2VyRGF0YSA9IHVzZXJEYXRhOwogfQogICAgIAotdm9pZCBXZWJDb250ZXh0TWVudUl0ZW1EYXRh
OjplbmNvZGUoSVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit2b2lkIFdlYkNv
bnRleHRNZW51SXRlbURhdGE6OmVuY29kZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB7
CiAgICAgZW5jb2Rlci5lbmNvZGVFbnVtKG1fdHlwZSk7CiAgICAgZW5jb2Rlci5lbmNvZGVFbnVt
KG1fYWN0aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb250ZXh0
TWVudUl0ZW1EYXRhLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29udGV4dE1lbnVJdGVt
RGF0YS5oCmluZGV4IDgzY2E0ODE5MTY5YzA3M2ZmYTFiYmU2ZmVhNTEzNjUxNzFhODkxMzMuLmVh
MzFmNWQ2MGFjMDhhNjQzOTE3OWIxZDM3NGZkYTgwMjNhYTZhNTEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9XZWJDb250ZXh0TWVudUl0ZW1EYXRhLmgKKysrIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL1dlYkNvbnRleHRNZW51SXRlbURhdGEuaApAQCAtMzgsNyArMzgsNyBAQCBj
bGFzcyBPYmplY3Q7CiAKIG5hbWVzcGFjZSBJUEMgewogY2xhc3MgQXJndW1lbnREZWNvZGVyOwot
Y2xhc3MgQXJndW1lbnRFbmNvZGVyOworY2xhc3MgRW5jb2RlcjsKIH0KIAogbmFtZXNwYWNlIFdl
YktpdCB7CkBAIC02Miw3ICs2Miw3IEBAIHB1YmxpYzoKICAgICBBUEk6Ok9iamVjdCogdXNlckRh
dGEoKSBjb25zdDsKICAgICB2b2lkIHNldFVzZXJEYXRhKEFQSTo6T2JqZWN0Kik7CiAgICAgCi0g
ICAgdm9pZCBlbmNvZGUoSVBDOjpBcmd1bWVudEVuY29kZXImKSBjb25zdDsKKyAgICB2b2lkIGVu
Y29kZShJUEM6OkVuY29kZXImKSBjb25zdDsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoSVBDOjpB
cmd1bWVudERlY29kZXImLCBXZWJDb250ZXh0TWVudUl0ZW1EYXRhJik7CiAKIHByaXZhdGU6CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCmluZGV4
IDA1NWNkN2UwZjBkMWM2YjU1YmZlM2FlZTE1MWIyNjFiNWE4NDhlYmYuLjkyNGFlZTdlZGI5NDZi
YmNhMTBjZmRmZjVlZWI2ODdjNjM1MDc3ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCkBAIC05OCw3ICs5OCw3IEBAIHVzaW5nIG5hbWVz
cGFjZSBXZWJLaXQ7CiAKIG5hbWVzcGFjZSBJUEMgewogCi12b2lkIEFyZ3VtZW50Q29kZXI8QWZm
aW5lVHJhbnNmb3JtPjo6ZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgY29uc3QgQWZm
aW5lVHJhbnNmb3JtJiBhZmZpbmVUcmFuc2Zvcm0pCit2b2lkIEFyZ3VtZW50Q29kZXI8QWZmaW5l
VHJhbnNmb3JtPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IEFmZmluZVRyYW5zZm9y
bSYgYWZmaW5lVHJhbnNmb3JtKQogewogICAgIFNpbXBsZUFyZ3VtZW50Q29kZXI8QWZmaW5lVHJh
bnNmb3JtPjo6ZW5jb2RlKGVuY29kZXIsIGFmZmluZVRyYW5zZm9ybSk7CiB9CkBAIC0xMDgsNyAr
MTA4LDcgQEAgYm9vbCBBcmd1bWVudENvZGVyPEFmZmluZVRyYW5zZm9ybT46OmRlY29kZShBcmd1
bWVudERlY29kZXImIGRlY29kZXIsIEFmZmluZVRyYW4KICAgICByZXR1cm4gU2ltcGxlQXJndW1l
bnRDb2RlcjxBZmZpbmVUcmFuc2Zvcm0+OjpkZWNvZGUoZGVjb2RlciwgYWZmaW5lVHJhbnNmb3Jt
KTsKIH0KIAotdm9pZCBBcmd1bWVudENvZGVyPEV2ZW50VHJhY2tpbmdSZWdpb25zPjo6ZW5jb2Rl
KEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgY29uc3QgRXZlbnRUcmFja2luZ1JlZ2lvbnMmIGV2
ZW50VHJhY2tpbmdSZWdpb25zKQordm9pZCBBcmd1bWVudENvZGVyPEV2ZW50VHJhY2tpbmdSZWdp
b25zPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IEV2ZW50VHJhY2tpbmdSZWdpb25z
JiBldmVudFRyYWNraW5nUmVnaW9ucykKIHsKICAgICBlbmNvZGVyIDw8IGV2ZW50VHJhY2tpbmdS
ZWdpb25zLmFzeW5jaHJvbm91c0Rpc3BhdGNoUmVnaW9uOwogICAgIGVuY29kZXIgPDwgZXZlbnRU
cmFja2luZ1JlZ2lvbnMuZXZlbnRTcGVjaWZpY1N5bmNocm9ub3VzRGlzcGF0Y2hSZWdpb25zOwpA
QCAtMTI3LDcgKzEyNyw3IEBAIGJvb2wgQXJndW1lbnRDb2RlcjxFdmVudFRyYWNraW5nUmVnaW9u
cz46OmRlY29kZShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIEV2ZW50CiAgICAgcmV0dXJuIHRy
dWU7CiB9CiAKLXZvaWQgQXJndW1lbnRDb2RlcjxUcmFuc2Zvcm1hdGlvbk1hdHJpeD46OmVuY29k
ZShBcmd1bWVudEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiB0
cmFuc2Zvcm1hdGlvbk1hdHJpeCkKK3ZvaWQgQXJndW1lbnRDb2RlcjxUcmFuc2Zvcm1hdGlvbk1h
dHJpeD46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJp
eCYgdHJhbnNmb3JtYXRpb25NYXRyaXgpCiB7CiAgICAgZW5jb2RlciA8PCB0cmFuc2Zvcm1hdGlv
bk1hdHJpeC5tMTEoKTsKICAgICBlbmNvZGVyIDw8IHRyYW5zZm9ybWF0aW9uTWF0cml4Lm0xMigp
OwpAQCAtMjA4LDcgKzIwOCw3IEBAIGJvb2wgQXJndW1lbnRDb2RlcjxUcmFuc2Zvcm1hdGlvbk1h
dHJpeD46OmRlY29kZShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIFRyYW5zCiAgICAgcmV0dXJu
IHRydWU7CiB9CiAKLXZvaWQgQXJndW1lbnRDb2RlcjxMaW5lYXJUaW1pbmdGdW5jdGlvbj46OmVu
Y29kZShBcmd1bWVudEVuY29kZXImIGVuY29kZXIsIGNvbnN0IExpbmVhclRpbWluZ0Z1bmN0aW9u
JiB0aW1pbmdGdW5jdGlvbikKK3ZvaWQgQXJndW1lbnRDb2RlcjxMaW5lYXJUaW1pbmdGdW5jdGlv
bj46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBMaW5lYXJUaW1pbmdGdW5jdGlvbiYg
dGltaW5nRnVuY3Rpb24pCiB7CiAgICAgZW5jb2Rlci5lbmNvZGVFbnVtKHRpbWluZ0Z1bmN0aW9u
LnR5cGUoKSk7CiB9CkBAIC0yMTksNyArMjE5LDcgQEAgYm9vbCBBcmd1bWVudENvZGVyPExpbmVh
clRpbWluZ0Z1bmN0aW9uPjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYsIExpbmVhclRpbWluZ0YK
ICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBBcmd1bWVudENvZGVyPEN1YmljQmV6aWVyVGlt
aW5nRnVuY3Rpb24+OjplbmNvZGUoQXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBDdWJp
Y0JlemllclRpbWluZ0Z1bmN0aW9uJiB0aW1pbmdGdW5jdGlvbikKK3ZvaWQgQXJndW1lbnRDb2Rl
cjxDdWJpY0JlemllclRpbWluZ0Z1bmN0aW9uPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNv
bnN0IEN1YmljQmV6aWVyVGltaW5nRnVuY3Rpb24mIHRpbWluZ0Z1bmN0aW9uKQogewogICAgIGVu
Y29kZXIuZW5jb2RlRW51bSh0aW1pbmdGdW5jdGlvbi50eXBlKCkpOwogICAgIApAQCAtMjYwLDcg
KzI2MCw3IEBAIGJvb2wgQXJndW1lbnRDb2RlcjxDdWJpY0JlemllclRpbWluZ0Z1bmN0aW9uPjo6
ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAot
dm9pZCBBcmd1bWVudENvZGVyPFN0ZXBzVGltaW5nRnVuY3Rpb24+OjplbmNvZGUoQXJndW1lbnRF
bmNvZGVyJiBlbmNvZGVyLCBjb25zdCBTdGVwc1RpbWluZ0Z1bmN0aW9uJiB0aW1pbmdGdW5jdGlv
bikKK3ZvaWQgQXJndW1lbnRDb2RlcjxTdGVwc1RpbWluZ0Z1bmN0aW9uPjo6ZW5jb2RlKEVuY29k
ZXImIGVuY29kZXIsIGNvbnN0IFN0ZXBzVGltaW5nRnVuY3Rpb24mIHRpbWluZ0Z1bmN0aW9uKQog
ewogICAgIGVuY29kZXIuZW5jb2RlRW51bSh0aW1pbmdGdW5jdGlvbi50eXBlKCkpOwogICAgIApA
QCAtMjg1LDcgKzI4NSw3IEBAIGJvb2wgQXJndW1lbnRDb2RlcjxTdGVwc1RpbWluZ0Z1bmN0aW9u
Pjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgU3RlcHNUCiAgICAgcmV0dXJuIHRy
dWU7CiB9CiAKLXZvaWQgQXJndW1lbnRDb2RlcjxTcHJpbmdUaW1pbmdGdW5jdGlvbj46OmVuY29k
ZShBcmd1bWVudEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFNwcmluZ1RpbWluZ0Z1bmN0aW9uJiB0
aW1pbmdGdW5jdGlvbikKK3ZvaWQgQXJndW1lbnRDb2RlcjxTcHJpbmdUaW1pbmdGdW5jdGlvbj46
OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBTcHJpbmdUaW1pbmdGdW5jdGlvbiYgdGlt
aW5nRnVuY3Rpb24pCiB7CiAgICAgZW5jb2Rlci5lbmNvZGVFbnVtKHRpbWluZ0Z1bmN0aW9uLnR5
cGUoKSk7CiAgICAgCkBAIC0zMTksNyArMzE5LDcgQEAgYm9vbCBBcmd1bWVudENvZGVyPFNwcmlu
Z1RpbWluZ0Z1bmN0aW9uPjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgU3ByaW4K
ICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBBcmd1bWVudENvZGVyPEZsb2F0UG9pbnQ+Ojpl
bmNvZGUoQXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBGbG9hdFBvaW50JiBmbG9hdFBv
aW50KQordm9pZCBBcmd1bWVudENvZGVyPEZsb2F0UG9pbnQ+OjplbmNvZGUoRW5jb2RlciYgZW5j
b2RlciwgY29uc3QgRmxvYXRQb2ludCYgZmxvYXRQb2ludCkKIHsKICAgICBTaW1wbGVBcmd1bWVu
dENvZGVyPEZsb2F0UG9pbnQ+OjplbmNvZGUoZW5jb2RlciwgZmxvYXRQb2ludCk7CiB9CkBAIC0z
MzAsNyArMzMwLDcgQEAgYm9vbCBBcmd1bWVudENvZGVyPEZsb2F0UG9pbnQ+OjpkZWNvZGUoQXJn
dW1lbnREZWNvZGVyJiBkZWNvZGVyLCBGbG9hdFBvaW50JiBmbG8KIH0KIAogCi12b2lkIEFyZ3Vt
ZW50Q29kZXI8RmxvYXRQb2ludDNEPjo6ZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2Rlciwg
Y29uc3QgRmxvYXRQb2ludDNEJiBmbG9hdFBvaW50KQordm9pZCBBcmd1bWVudENvZGVyPEZsb2F0
UG9pbnQzRD46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBGbG9hdFBvaW50M0QmIGZs
b2F0UG9pbnQpCiB7CiAgICAgU2ltcGxlQXJndW1lbnRDb2RlcjxGbG9hdFBvaW50M0Q+OjplbmNv
ZGUoZW5jb2RlciwgZmxvYXRQb2ludCk7CiB9CkBAIC0zNDEsNyArMzQxLDcgQEAgYm9vbCBBcmd1
bWVudENvZGVyPEZsb2F0UG9pbnQzRD46OmRlY29kZShBcmd1bWVudERlY29kZXImIGRlY29kZXIs
IEZsb2F0UG9pbnQzRCYKIH0KIAogCi12b2lkIEFyZ3VtZW50Q29kZXI8RmxvYXRSZWN0Pjo6ZW5j
b2RlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgY29uc3QgRmxvYXRSZWN0JiBmbG9hdFJlY3Qp
Cit2b2lkIEFyZ3VtZW50Q29kZXI8RmxvYXRSZWN0Pjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIs
IGNvbnN0IEZsb2F0UmVjdCYgZmxvYXRSZWN0KQogewogICAgIFNpbXBsZUFyZ3VtZW50Q29kZXI8
RmxvYXRSZWN0Pjo6ZW5jb2RlKGVuY29kZXIsIGZsb2F0UmVjdCk7CiB9CkBAIC0zNTIsNyArMzUy
LDcgQEAgYm9vbCBBcmd1bWVudENvZGVyPEZsb2F0UmVjdD46OmRlY29kZShBcmd1bWVudERlY29k
ZXImIGRlY29kZXIsIEZsb2F0UmVjdCYgZmxvYXQKIH0KIAogCi12b2lkIEFyZ3VtZW50Q29kZXI8
RmxvYXRTaXplPjo6ZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgY29uc3QgRmxvYXRT
aXplJiBmbG9hdFNpemUpCit2b2lkIEFyZ3VtZW50Q29kZXI8RmxvYXRTaXplPjo6ZW5jb2RlKEVu
Y29kZXImIGVuY29kZXIsIGNvbnN0IEZsb2F0U2l6ZSYgZmxvYXRTaXplKQogewogICAgIFNpbXBs
ZUFyZ3VtZW50Q29kZXI8RmxvYXRTaXplPjo6ZW5jb2RlKGVuY29kZXIsIGZsb2F0U2l6ZSk7CiB9
CkBAIC0zNjMsNyArMzYzLDcgQEAgYm9vbCBBcmd1bWVudENvZGVyPEZsb2F0U2l6ZT46OmRlY29k
ZShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIEZsb2F0U2l6ZSYgZmxvYXQKIH0KIAogCi12b2lk
IEFyZ3VtZW50Q29kZXI8RmxvYXRSb3VuZGVkUmVjdD46OmVuY29kZShBcmd1bWVudEVuY29kZXIm
IGVuY29kZXIsIGNvbnN0IEZsb2F0Um91bmRlZFJlY3QmIHJvdW5kZWRSZWN0KQordm9pZCBBcmd1
bWVudENvZGVyPEZsb2F0Um91bmRlZFJlY3Q+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29u
c3QgRmxvYXRSb3VuZGVkUmVjdCYgcm91bmRlZFJlY3QpCiB7CiAgICAgU2ltcGxlQXJndW1lbnRD
b2RlcjxGbG9hdFJvdW5kZWRSZWN0Pjo6ZW5jb2RlKGVuY29kZXIsIHJvdW5kZWRSZWN0KTsKIH0K
QEAgLTM3NCw3ICszNzQsNyBAQCBib29sIEFyZ3VtZW50Q29kZXI8RmxvYXRSb3VuZGVkUmVjdD46
OmRlY29kZShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIEZsb2F0Um91bgogfQogCiAjaWYgUExB
VEZPUk0oSU9TKQotdm9pZCBBcmd1bWVudENvZGVyPEZsb2F0UXVhZD46OmVuY29kZShBcmd1bWVu
dEVuY29kZXImIGVuY29kZXIsIGNvbnN0IEZsb2F0UXVhZCYgZmxvYXRRdWFkKQordm9pZCBBcmd1
bWVudENvZGVyPEZsb2F0UXVhZD46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBGbG9h
dFF1YWQmIGZsb2F0UXVhZCkKIHsKICAgICBTaW1wbGVBcmd1bWVudENvZGVyPEZsb2F0UXVhZD46
OmVuY29kZShlbmNvZGVyLCBmbG9hdFF1YWQpOwogfQpAQCAtMzg0LDcgKzM4NCw3IEBAIGJvb2wg
QXJndW1lbnRDb2RlcjxGbG9hdFF1YWQ+OjpkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVy
LCBGbG9hdFF1YWQmIGZsb2F0CiAgICAgcmV0dXJuIFNpbXBsZUFyZ3VtZW50Q29kZXI8RmxvYXRR
dWFkPjo6ZGVjb2RlKGRlY29kZXIsIGZsb2F0UXVhZCk7CiB9CiAKLXZvaWQgQXJndW1lbnRDb2Rl
cjxWaWV3cG9ydEFyZ3VtZW50cz46OmVuY29kZShBcmd1bWVudEVuY29kZXImIGVuY29kZXIsIGNv
bnN0IFZpZXdwb3J0QXJndW1lbnRzJiB2aWV3cG9ydEFyZ3VtZW50cykKK3ZvaWQgQXJndW1lbnRD
b2RlcjxWaWV3cG9ydEFyZ3VtZW50cz46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBW
aWV3cG9ydEFyZ3VtZW50cyYgdmlld3BvcnRBcmd1bWVudHMpCiB7CiAgICAgU2ltcGxlQXJndW1l
bnRDb2RlcjxWaWV3cG9ydEFyZ3VtZW50cz46OmVuY29kZShlbmNvZGVyLCB2aWV3cG9ydEFyZ3Vt
ZW50cyk7CiB9CkBAIC0zOTYsNyArMzk2LDcgQEAgYm9vbCBBcmd1bWVudENvZGVyPFZpZXdwb3J0
QXJndW1lbnRzPjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgVmlld3BvcnQKICNl
bmRpZiAvLyBQTEFURk9STShJT1MpCiAKIAotdm9pZCBBcmd1bWVudENvZGVyPEludFBvaW50Pjo6
ZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgY29uc3QgSW50UG9pbnQmIGludFBvaW50
KQordm9pZCBBcmd1bWVudENvZGVyPEludFBvaW50Pjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIs
IGNvbnN0IEludFBvaW50JiBpbnRQb2ludCkKIHsKICAgICBTaW1wbGVBcmd1bWVudENvZGVyPElu
dFBvaW50Pjo6ZW5jb2RlKGVuY29kZXIsIGludFBvaW50KTsKIH0KQEAgLTQwNyw3ICs0MDcsNyBA
QCBib29sIEFyZ3VtZW50Q29kZXI8SW50UG9pbnQ+OjpkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBk
ZWNvZGVyLCBJbnRQb2ludCYgaW50UG9pbgogfQogCiAKLXZvaWQgQXJndW1lbnRDb2RlcjxJbnRS
ZWN0Pjo6ZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgY29uc3QgSW50UmVjdCYgaW50
UmVjdCkKK3ZvaWQgQXJndW1lbnRDb2RlcjxJbnRSZWN0Pjo6ZW5jb2RlKEVuY29kZXImIGVuY29k
ZXIsIGNvbnN0IEludFJlY3QmIGludFJlY3QpCiB7CiAgICAgU2ltcGxlQXJndW1lbnRDb2RlcjxJ
bnRSZWN0Pjo6ZW5jb2RlKGVuY29kZXIsIGludFJlY3QpOwogfQpAQCAtNDE4LDcgKzQxOCw3IEBA
IGJvb2wgQXJndW1lbnRDb2RlcjxJbnRSZWN0Pjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVj
b2RlciwgSW50UmVjdCYgaW50UmVjdCkKIH0KIAogCi12b2lkIEFyZ3VtZW50Q29kZXI8SW50U2l6
ZT46OmVuY29kZShBcmd1bWVudEVuY29kZXImIGVuY29kZXIsIGNvbnN0IEludFNpemUmIGludFNp
emUpCit2b2lkIEFyZ3VtZW50Q29kZXI8SW50U2l6ZT46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVy
LCBjb25zdCBJbnRTaXplJiBpbnRTaXplKQogewogICAgIFNpbXBsZUFyZ3VtZW50Q29kZXI8SW50
U2l6ZT46OmVuY29kZShlbmNvZGVyLCBpbnRTaXplKTsKIH0KQEAgLTQyOCw3ICs0MjgsNyBAQCBi
b29sIEFyZ3VtZW50Q29kZXI8SW50U2l6ZT46OmRlY29kZShBcmd1bWVudERlY29kZXImIGRlY29k
ZXIsIEludFNpemUmIGludFNpemUpCiAgICAgcmV0dXJuIFNpbXBsZUFyZ3VtZW50Q29kZXI8SW50
U2l6ZT46OmRlY29kZShkZWNvZGVyLCBpbnRTaXplKTsKIH0KIAotc3RhdGljIHZvaWQgcGF0aEVu
Y29kZUFwcGxpZXJGdW5jdGlvbihBcmd1bWVudEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFBhdGhF
bGVtZW50JiBlbGVtZW50KQorc3RhdGljIHZvaWQgcGF0aEVuY29kZUFwcGxpZXJGdW5jdGlvbihF
bmNvZGVyJiBlbmNvZGVyLCBjb25zdCBQYXRoRWxlbWVudCYgZWxlbWVudCkKIHsKICAgICBlbmNv
ZGVyLmVuY29kZUVudW0oZWxlbWVudC50eXBlKTsKIApAQCAtNDUzLDcgKzQ1Myw3IEBAIHN0YXRp
YyB2b2lkIHBhdGhFbmNvZGVBcHBsaWVyRnVuY3Rpb24oQXJndW1lbnRFbmNvZGVyJiBlbmNvZGVy
LCBjb25zdCBQYXRoRWxlbWVuCiAgICAgfQogfQogCi12b2lkIEFyZ3VtZW50Q29kZXI8UGF0aD46
OmVuY29kZShBcmd1bWVudEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFBhdGgmIHBhdGgpCit2b2lk
IEFyZ3VtZW50Q29kZXI8UGF0aD46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBQYXRo
JiBwYXRoKQogewogICAgIHVpbnQ2NF90IG51bVBvaW50cyA9IDA7CiAgICAgcGF0aC5hcHBseShb
Jm51bVBvaW50c10oY29uc3QgUGF0aEVsZW1lbnQmKSB7CkBAIC01MzMsNyArNTMzLDcgQEAgYm9v
bCBBcmd1bWVudENvZGVyPFBhdGg+OjpkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBQ
YXRoJiBwYXRoKQogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIEFyZ3VtZW50Q29kZXI8UmVj
ZW50U2VhcmNoPjo6ZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgY29uc3QgUmVjZW50
U2VhcmNoJiByZWNlbnRTZWFyY2gpCit2b2lkIEFyZ3VtZW50Q29kZXI8UmVjZW50U2VhcmNoPjo6
ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFJlY2VudFNlYXJjaCYgcmVjZW50U2VhcmNo
KQogewogICAgIGVuY29kZXIgPDwgcmVjZW50U2VhcmNoLnN0cmluZyA8PCByZWNlbnRTZWFyY2gu
dGltZTsKIH0KQEAgLTU1MCwxMSArNTUwLDExIEBAIGJvb2wgQXJndW1lbnRDb2RlcjxSZWNlbnRT
ZWFyY2g+OjpkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBSZWNlbnRTZWFyY2gmCiB9
CiAKIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8UmVnaW9uOjpTcGFuPiB7Ci0gICAg
c3RhdGljIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYsIGNvbnN0IFJlZ2lvbjo6U3BhbiYp
OworICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgUmVnaW9uOjpTcGFuJik7
CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYsIFJlZ2lvbjo6U3BhbiYp
OwogfTsKIAotdm9pZCBBcmd1bWVudENvZGVyPFJlZ2lvbjo6U3Bhbj46OmVuY29kZShBcmd1bWVu
dEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFJlZ2lvbjo6U3BhbiYgc3BhbikKK3ZvaWQgQXJndW1l
bnRDb2RlcjxSZWdpb246OlNwYW4+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgUmVn
aW9uOjpTcGFuJiBzcGFuKQogewogICAgIGVuY29kZXIgPDwgc3Bhbi55OwogICAgIGVuY29kZXIg
PDwgKHVpbnQ2NF90KXNwYW4uc2VnbWVudEluZGV4OwpAQCAtNTczLDcgKzU3Myw3IEBAIGJvb2wg
QXJndW1lbnRDb2RlcjxSZWdpb246OlNwYW4+OjpkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNv
ZGVyLCBSZWdpb246OlNwYW4mCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgQXJndW1lbnRD
b2RlcjxSZWdpb24+OjplbmNvZGUoQXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBSZWdp
b24mIHJlZ2lvbikKK3ZvaWQgQXJndW1lbnRDb2RlcjxSZWdpb24+OjplbmNvZGUoRW5jb2RlciYg
ZW5jb2RlciwgY29uc3QgUmVnaW9uJiByZWdpb24pCiB7CiAgICAgZW5jb2Rlci5lbmNvZGUocmVn
aW9uLnNoYXBlU2VnbWVudHMoKSk7CiAgICAgZW5jb2Rlci5lbmNvZGUocmVnaW9uLnNoYXBlU3Bh
bnMoKSk7CkBAIC01OTksNyArNTk5LDcgQEAgYm9vbCBBcmd1bWVudENvZGVyPFJlZ2lvbj46OmRl
Y29kZShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIFJlZ2lvbiYgcmVnaW9uKQogICAgIHJldHVy
biB0cnVlOwogfQogCi12b2lkIEFyZ3VtZW50Q29kZXI8TGVuZ3RoPjo6ZW5jb2RlKEFyZ3VtZW50
RW5jb2RlciYgZW5jb2RlciwgY29uc3QgTGVuZ3RoJiBsZW5ndGgpCit2b2lkIEFyZ3VtZW50Q29k
ZXI8TGVuZ3RoPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IExlbmd0aCYgbGVuZ3Ro
KQogewogICAgIFNpbXBsZUFyZ3VtZW50Q29kZXI8TGVuZ3RoPjo6ZW5jb2RlKGVuY29kZXIsIGxl
bmd0aCk7CiB9CkBAIC02MTAsNyArNjEwLDcgQEAgYm9vbCBBcmd1bWVudENvZGVyPExlbmd0aD46
OmRlY29kZShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIExlbmd0aCYgbGVuZ3RoKQogfQogCiAK
LXZvaWQgQXJndW1lbnRDb2RlcjxWaWV3cG9ydEF0dHJpYnV0ZXM+OjplbmNvZGUoQXJndW1lbnRF
bmNvZGVyJiBlbmNvZGVyLCBjb25zdCBWaWV3cG9ydEF0dHJpYnV0ZXMmIHZpZXdwb3J0QXR0cmli
dXRlcykKK3ZvaWQgQXJndW1lbnRDb2RlcjxWaWV3cG9ydEF0dHJpYnV0ZXM+OjplbmNvZGUoRW5j
b2RlciYgZW5jb2RlciwgY29uc3QgVmlld3BvcnRBdHRyaWJ1dGVzJiB2aWV3cG9ydEF0dHJpYnV0
ZXMpCiB7CiAgICAgU2ltcGxlQXJndW1lbnRDb2RlcjxWaWV3cG9ydEF0dHJpYnV0ZXM+OjplbmNv
ZGUoZW5jb2Rlciwgdmlld3BvcnRBdHRyaWJ1dGVzKTsKIH0KQEAgLTYyMSw3ICs2MjEsNyBAQCBi
b29sIEFyZ3VtZW50Q29kZXI8Vmlld3BvcnRBdHRyaWJ1dGVzPjo6ZGVjb2RlKEFyZ3VtZW50RGVj
b2RlciYgZGVjb2RlciwgVmlld3BvcgogfQogCiAKLXZvaWQgQXJndW1lbnRDb2RlcjxNaW1lQ2xh
c3NJbmZvPjo6ZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgY29uc3QgTWltZUNsYXNz
SW5mbyYgbWltZUNsYXNzSW5mbykKK3ZvaWQgQXJndW1lbnRDb2RlcjxNaW1lQ2xhc3NJbmZvPjo6
ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IE1pbWVDbGFzc0luZm8mIG1pbWVDbGFzc0lu
Zm8pCiB7CiAgICAgZW5jb2RlciA8PCBtaW1lQ2xhc3NJbmZvLnR5cGUgPDwgbWltZUNsYXNzSW5m
by5kZXNjIDw8IG1pbWVDbGFzc0luZm8uZXh0ZW5zaW9uczsKIH0KQEAgLTYzOSw3ICs2MzksNyBA
QCBib29sIEFyZ3VtZW50Q29kZXI8TWltZUNsYXNzSW5mbz46OmRlY29kZShBcmd1bWVudERlY29k
ZXImIGRlY29kZXIsIE1pbWVDbGFzc0luZgogfQogCiAKLXZvaWQgQXJndW1lbnRDb2RlcjxQbHVn
aW5JbmZvPjo6ZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgY29uc3QgUGx1Z2luSW5m
byYgcGx1Z2luSW5mbykKK3ZvaWQgQXJndW1lbnRDb2RlcjxQbHVnaW5JbmZvPjo6ZW5jb2RlKEVu
Y29kZXImIGVuY29kZXIsIGNvbnN0IFBsdWdpbkluZm8mIHBsdWdpbkluZm8pCiB7CiAgICAgZW5j
b2RlciA8PCBwbHVnaW5JbmZvLm5hbWU7CiAgICAgZW5jb2RlciA8PCBwbHVnaW5JbmZvLmZpbGU7
CkBAIC02NzcsNyArNjc3LDcgQEAgYm9vbCBBcmd1bWVudENvZGVyPFBsdWdpbkluZm8+OjpkZWNv
ZGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBQbHVnaW5JbmZvJiBwbHUKICAgICByZXR1cm4g
dHJ1ZTsKIH0KIAotdm9pZCBBcmd1bWVudENvZGVyPEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlPjo6
ZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgY29uc3QgQXV0aGVudGljYXRpb25DaGFs
bGVuZ2UmIGNoYWxsZW5nZSkKK3ZvaWQgQXJndW1lbnRDb2RlcjxBdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZT46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZSYgY2hhbGxlbmdlKQogewogICAgIGVuY29kZXIgPDwgY2hhbGxlbmdlLnByb3RlY3Rpb25T
cGFjZSgpIDw8IGNoYWxsZW5nZS5wcm9wb3NlZENyZWRlbnRpYWwoKSA8PCBjaGFsbGVuZ2UucHJl
dmlvdXNGYWlsdXJlQ291bnQoKSA8PCBjaGFsbGVuZ2UuZmFpbHVyZVJlc3BvbnNlKCkgPDwgY2hh
bGxlbmdlLmVycm9yKCk7CiB9CkBAIC03MDksNyArNzA5LDcgQEAgYm9vbCBBcmd1bWVudENvZGVy
PEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlPjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2Rl
ciwgQXUKIH0KIAogCi12b2lkIEFyZ3VtZW50Q29kZXI8UHJvdGVjdGlvblNwYWNlPjo6ZW5jb2Rl
KEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgY29uc3QgUHJvdGVjdGlvblNwYWNlJiBzcGFjZSkK
K3ZvaWQgQXJndW1lbnRDb2RlcjxQcm90ZWN0aW9uU3BhY2U+OjplbmNvZGUoRW5jb2RlciYgZW5j
b2RlciwgY29uc3QgUHJvdGVjdGlvblNwYWNlJiBzcGFjZSkKIHsKICAgICBpZiAoc3BhY2UuZW5j
b2RpbmdSZXF1aXJlc1BsYXRmb3JtRGF0YSgpKSB7CiAgICAgICAgIGVuY29kZXIgPDwgdHJ1ZTsK
QEAgLTc1Niw3ICs3NTYsNyBAQCBib29sIEFyZ3VtZW50Q29kZXI8UHJvdGVjdGlvblNwYWNlPjo6
ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgUHJvdGVjdGlvbgogICAgIHJldHVybiB0
cnVlOwogfQogCi12b2lkIEFyZ3VtZW50Q29kZXI8Q3JlZGVudGlhbD46OmVuY29kZShBcmd1bWVu
dEVuY29kZXImIGVuY29kZXIsIGNvbnN0IENyZWRlbnRpYWwmIGNyZWRlbnRpYWwpCit2b2lkIEFy
Z3VtZW50Q29kZXI8Q3JlZGVudGlhbD46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBD
cmVkZW50aWFsJiBjcmVkZW50aWFsKQogewogICAgIGlmIChjcmVkZW50aWFsLmVuY29kaW5nUmVx
dWlyZXNQbGF0Zm9ybURhdGEoKSkgewogICAgICAgICBlbmNvZGVyIDw8IHRydWU7CkBAIC03OTQs
NyArNzk0LDcgQEAgYm9vbCBBcmd1bWVudENvZGVyPENyZWRlbnRpYWw+OjpkZWNvZGUoQXJndW1l
bnREZWNvZGVyJiBkZWNvZGVyLCBDcmVkZW50aWFsJiBjcmUKICAgICByZXR1cm4gdHJ1ZTsKIH0K
IAotc3RhdGljIHZvaWQgZW5jb2RlSW1hZ2UoQXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBJbWFn
ZSYgaW1hZ2UpCitzdGF0aWMgdm9pZCBlbmNvZGVJbWFnZShFbmNvZGVyJiBlbmNvZGVyLCBJbWFn
ZSYgaW1hZ2UpCiB7CiAgICAgUmVmUHRyPFNoYXJlYWJsZUJpdG1hcD4gYml0bWFwID0gU2hhcmVh
YmxlQml0bWFwOjpjcmVhdGVTaGFyZWFibGUoSW50U2l6ZShpbWFnZS5zaXplKCkpLCBTaGFyZWFi
bGVCaXRtYXA6OlN1cHBvcnRzQWxwaGEpOwogICAgIGJpdG1hcC0+Y3JlYXRlR3JhcGhpY3NDb250
ZXh0KCktPmRyYXdJbWFnZShpbWFnZSwgSW50UG9pbnQoKSk7CkBAIC04MjAsNyArODIwLDcgQEAg
c3RhdGljIGJvb2wgZGVjb2RlSW1hZ2UoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBSZWZQdHI8
SW1hZ2U+JiBpbWFnZSkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotc3RhdGljIHZvaWQgZW5jb2Rl
T3B0aW9uYWxJbWFnZShBcmd1bWVudEVuY29kZXImIGVuY29kZXIsIEltYWdlKiBpbWFnZSkKK3N0
YXRpYyB2b2lkIGVuY29kZU9wdGlvbmFsSW1hZ2UoRW5jb2RlciYgZW5jb2RlciwgSW1hZ2UqIGlt
YWdlKQogewogICAgIGJvb2wgaGFzSW1hZ2UgPSAhIWltYWdlOwogICAgIGVuY29kZXIgPDwgaGFz
SW1hZ2U7CkBAIC04NDQsNyArODQ0LDcgQEAgc3RhdGljIGJvb2wgZGVjb2RlT3B0aW9uYWxJbWFn
ZShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIFJlZlB0cjxJbWFnZT4mIGltYWdlKQogfQogCiAj
aWYgIVBMQVRGT1JNKElPUykKLXZvaWQgQXJndW1lbnRDb2RlcjxDdXJzb3I+OjplbmNvZGUoQXJn
dW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBDdXJzb3ImIGN1cnNvcikKK3ZvaWQgQXJndW1l
bnRDb2RlcjxDdXJzb3I+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgQ3Vyc29yJiBj
dXJzb3IpCiB7CiAgICAgZW5jb2Rlci5lbmNvZGVFbnVtKGN1cnNvci50eXBlKCkpOwogICAgICAg
ICAKQEAgLTkxNiw3ICs5MTYsNyBAQCBib29sIEFyZ3VtZW50Q29kZXI8Q3Vyc29yPjo6ZGVjb2Rl
KEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgQ3Vyc29yJiBjdXJzb3IpCiB9CiAjZW5kaWYKIAot
dm9pZCBBcmd1bWVudENvZGVyPFJlc291cmNlUmVxdWVzdD46OmVuY29kZShBcmd1bWVudEVuY29k
ZXImIGVuY29kZXIsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVzb3VyY2VSZXF1ZXN0KQordm9p
ZCBBcmd1bWVudENvZGVyPFJlc291cmNlUmVxdWVzdD46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVy
LCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlc291cmNlUmVxdWVzdCkKIHsKICNpZiBFTkFCTEUo
Q0FDSEVfUEFSVElUSU9OSU5HKQogICAgIGVuY29kZXIgPDwgcmVzb3VyY2VSZXF1ZXN0LmNhY2hl
UGFydGl0aW9uKCk7CkBAIC05NTYsNyArOTU2LDcgQEAgYm9vbCBBcmd1bWVudENvZGVyPFJlc291
cmNlUmVxdWVzdD46OmRlY29kZShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIFJlc291cmNlUmUK
ICAgICByZXR1cm4gcmVzb3VyY2VSZXF1ZXN0LmRlY29kZVdpdGhvdXRQbGF0Zm9ybURhdGEoZGVj
b2Rlcik7CiB9CiAKLXZvaWQgQXJndW1lbnRDb2RlcjxSZXNvdXJjZUVycm9yPjo6ZW5jb2RlKEFy
Z3VtZW50RW5jb2RlciYgZW5jb2RlciwgY29uc3QgUmVzb3VyY2VFcnJvciYgcmVzb3VyY2VFcnJv
cikKK3ZvaWQgQXJndW1lbnRDb2RlcjxSZXNvdXJjZUVycm9yPjo6ZW5jb2RlKEVuY29kZXImIGVu
Y29kZXIsIGNvbnN0IFJlc291cmNlRXJyb3ImIHJlc291cmNlRXJyb3IpCiB7CiAgICAgZW5jb2Rl
UGxhdGZvcm1EYXRhKGVuY29kZXIsIHJlc291cmNlRXJyb3IpOwogfQpAQCAtOTY4LDcgKzk2OCw3
IEBAIGJvb2wgQXJndW1lbnRDb2RlcjxSZXNvdXJjZUVycm9yPjo6ZGVjb2RlKEFyZ3VtZW50RGVj
b2RlciYgZGVjb2RlciwgUmVzb3VyY2VFcnJvCiAKICNpZiBQTEFURk9STShJT1MpCiAKLXZvaWQg
QXJndW1lbnRDb2RlcjxTZWxlY3Rpb25SZWN0Pjo6ZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYgZW5j
b2RlciwgY29uc3QgU2VsZWN0aW9uUmVjdCYgc2VsZWN0aW9uUmVjdCkKK3ZvaWQgQXJndW1lbnRD
b2RlcjxTZWxlY3Rpb25SZWN0Pjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFNlbGVj
dGlvblJlY3QmIHNlbGVjdGlvblJlY3QpCiB7CiAgICAgZW5jb2RlciA8PCBzZWxlY3Rpb25SZWN0
LnJlY3QoKTsKICAgICBlbmNvZGVyIDw8IHN0YXRpY19jYXN0PHVpbnQzMl90PihzZWxlY3Rpb25S
ZWN0LmRpcmVjdGlvbigpKTsKQEAgLTEwNDMsNyArMTA0Myw3IEBAIGJvb2wgQXJndW1lbnRDb2Rl
cjxTZWxlY3Rpb25SZWN0Pjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgU2VsZWN0
aW9uUmVjCiAKICNlbmRpZgogCi12b2lkIEFyZ3VtZW50Q29kZXI8V2luZG93RmVhdHVyZXM+Ojpl
bmNvZGUoQXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBXaW5kb3dGZWF0dXJlcyYgd2lu
ZG93RmVhdHVyZXMpCit2b2lkIEFyZ3VtZW50Q29kZXI8V2luZG93RmVhdHVyZXM+OjplbmNvZGUo
RW5jb2RlciYgZW5jb2RlciwgY29uc3QgV2luZG93RmVhdHVyZXMmIHdpbmRvd0ZlYXR1cmVzKQog
ewogICAgIGVuY29kZXIgPDwgd2luZG93RmVhdHVyZXMueDsKICAgICBlbmNvZGVyIDw8IHdpbmRv
d0ZlYXR1cmVzLnk7CkBAIC0xMDg5LDcgKzEwODksNyBAQCBib29sIEFyZ3VtZW50Q29kZXI8V2lu
ZG93RmVhdHVyZXM+OjpkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBXaW5kb3dGZWF0
dQogfQogCiAKLXZvaWQgQXJndW1lbnRDb2RlcjxDb2xvcj46OmVuY29kZShBcmd1bWVudEVuY29k
ZXImIGVuY29kZXIsIGNvbnN0IENvbG9yJiBjb2xvcikKK3ZvaWQgQXJndW1lbnRDb2RlcjxDb2xv
cj46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBDb2xvciYgY29sb3IpCiB7CiAgICAg
aWYgKCFjb2xvci5pc1ZhbGlkKCkpIHsKICAgICAgICAgZW5jb2RlciA8PCBmYWxzZTsKQEAgLTEx
MjAsNyArMTEyMCw3IEBAIGJvb2wgQXJndW1lbnRDb2RlcjxDb2xvcj46OmRlY29kZShBcmd1bWVu
dERlY29kZXImIGRlY29kZXIsIENvbG9yJiBjb2xvcikKIH0KIAogCi12b2lkIEFyZ3VtZW50Q29k
ZXI8Q29tcG9zaXRpb25VbmRlcmxpbmU+OjplbmNvZGUoQXJndW1lbnRFbmNvZGVyJiBlbmNvZGVy
LCBjb25zdCBDb21wb3NpdGlvblVuZGVybGluZSYgdW5kZXJsaW5lKQordm9pZCBBcmd1bWVudENv
ZGVyPENvbXBvc2l0aW9uVW5kZXJsaW5lPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0
IENvbXBvc2l0aW9uVW5kZXJsaW5lJiB1bmRlcmxpbmUpCiB7CiAgICAgZW5jb2RlciA8PCB1bmRl
cmxpbmUuc3RhcnRPZmZzZXQ7CiAgICAgZW5jb2RlciA8PCB1bmRlcmxpbmUuZW5kT2Zmc2V0OwpA
QCAtMTE0Myw3ICsxMTQzLDcgQEAgYm9vbCBBcmd1bWVudENvZGVyPENvbXBvc2l0aW9uVW5kZXJs
aW5lPjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgQ29tcG8KIH0KIAogCi12b2lk
IEFyZ3VtZW50Q29kZXI8Q29va2llPjo6ZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2Rlciwg
Y29uc3QgQ29va2llJiBjb29raWUpCit2b2lkIEFyZ3VtZW50Q29kZXI8Q29va2llPjo6ZW5jb2Rl
KEVuY29kZXImIGVuY29kZXIsIGNvbnN0IENvb2tpZSYgY29va2llKQogewogICAgIGVuY29kZXIg
PDwgY29va2llLm5hbWU7CiAgICAgZW5jb2RlciA8PCBjb29raWUudmFsdWU7CkBAIC0xMTc3LDcg
KzExNzcsNyBAQCBib29sIEFyZ3VtZW50Q29kZXI8Q29va2llPjo6ZGVjb2RlKEFyZ3VtZW50RGVj
b2RlciYgZGVjb2RlciwgQ29va2llJiBjb29raWUpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZv
aWQgQXJndW1lbnRDb2RlcjxEYXRhYmFzZURldGFpbHM+OjplbmNvZGUoQXJndW1lbnRFbmNvZGVy
JiBlbmNvZGVyLCBjb25zdCBEYXRhYmFzZURldGFpbHMmIGRldGFpbHMpCit2b2lkIEFyZ3VtZW50
Q29kZXI8RGF0YWJhc2VEZXRhaWxzPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IERh
dGFiYXNlRGV0YWlscyYgZGV0YWlscykKIHsKICAgICBlbmNvZGVyIDw8IGRldGFpbHMubmFtZSgp
OwogICAgIGVuY29kZXIgPDwgZGV0YWlscy5kaXNwbGF5TmFtZSgpOwpAQCAtMTIxOSw3ICsxMjE5
LDcgQEAgYm9vbCBBcmd1bWVudENvZGVyPERhdGFiYXNlRGV0YWlscz46OmRlY29kZShBcmd1bWVu
dERlY29kZXImIGRlY29kZXIsIERhdGFiYXNlRGUKIAogI2lmIFBMQVRGT1JNKElPUykKIAotdm9p
ZCBBcmd1bWVudENvZGVyPEhpZ2hsaWdodD46OmVuY29kZShBcmd1bWVudEVuY29kZXImIGVuY29k
ZXIsIGNvbnN0IEhpZ2hsaWdodCYgaGlnaGxpZ2h0KQordm9pZCBBcmd1bWVudENvZGVyPEhpZ2hs
aWdodD46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBIaWdobGlnaHQmIGhpZ2hsaWdo
dCkKIHsKICAgICBlbmNvZGVyIDw8IHN0YXRpY19jYXN0PHVpbnQzMl90PihoaWdobGlnaHQudHlw
ZSk7CiAgICAgZW5jb2RlciA8PCBoaWdobGlnaHQudXNlUGFnZUNvb3JkaW5hdGVzOwpAQCAtMTI1
NSw3ICsxMjU1LDcgQEAgYm9vbCBBcmd1bWVudENvZGVyPEhpZ2hsaWdodD46OmRlY29kZShBcmd1
bWVudERlY29kZXImIGRlY29kZXIsIEhpZ2hsaWdodCYgaGlnaGwKICAgICByZXR1cm4gdHJ1ZTsK
IH0KIAotc3RhdGljIHZvaWQgZW5jb2RlU2hhcmVkQnVmZmVyKEFyZ3VtZW50RW5jb2RlciYgZW5j
b2RlciwgU2hhcmVkQnVmZmVyKiBidWZmZXIpCitzdGF0aWMgdm9pZCBlbmNvZGVTaGFyZWRCdWZm
ZXIoRW5jb2RlciYgZW5jb2RlciwgU2hhcmVkQnVmZmVyKiBidWZmZXIpCiB7CiAgICAgU2hhcmVk
TWVtb3J5OjpIYW5kbGUgaGFuZGxlOwogICAgIGVuY29kZXIgPDwgKGJ1ZmZlciA/IHN0YXRpY19j
YXN0PHVpbnQ2NF90PihidWZmZXItPnNpemUoKSk6IDApOwpAQCAtMTI4NSw3ICsxMjg1LDcgQEAg
c3RhdGljIGJvb2wgZGVjb2RlU2hhcmVkQnVmZmVyKEFyZ3VtZW50RGVjb2RlciYgZGVjb2Rlciwg
UmVmUHRyPFNoYXJlZEJ1ZmZlcj4mIGIKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBBcmd1
bWVudENvZGVyPFBhc3RlYm9hcmRXZWJDb250ZW50Pjo6ZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYg
ZW5jb2RlciwgY29uc3QgUGFzdGVib2FyZFdlYkNvbnRlbnQmIGNvbnRlbnQpCit2b2lkIEFyZ3Vt
ZW50Q29kZXI8UGFzdGVib2FyZFdlYkNvbnRlbnQ+OjplbmNvZGUoRW5jb2RlciYgZW5jb2Rlciwg
Y29uc3QgUGFzdGVib2FyZFdlYkNvbnRlbnQmIGNvbnRlbnQpCiB7CiAgICAgZW5jb2RlciA8PCBj
b250ZW50LmNhblNtYXJ0Q29weU9yRGVsZXRlOwogICAgIGVuY29kZXIgPDwgY29udGVudC5kYXRh
SW5TdHJpbmdGb3JtYXQ7CkBAIC0xMzI0LDcgKzEzMjQsNyBAQCBib29sIEFyZ3VtZW50Q29kZXI8
UGFzdGVib2FyZFdlYkNvbnRlbnQ+OjpkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBQ
YXN0ZQogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIEFyZ3VtZW50Q29kZXI8UGFzdGVib2Fy
ZEltYWdlPjo6ZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgY29uc3QgUGFzdGVib2Fy
ZEltYWdlJiBwYXN0ZWJvYXJkSW1hZ2UpCit2b2lkIEFyZ3VtZW50Q29kZXI8UGFzdGVib2FyZElt
YWdlPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFBhc3RlYm9hcmRJbWFnZSYgcGFz
dGVib2FyZEltYWdlKQogewogICAgIGVuY29kZU9wdGlvbmFsSW1hZ2UoZW5jb2RlciwgcGFzdGVi
b2FyZEltYWdlLmltYWdlLmdldCgpKTsKICAgICBlbmNvZGVyIDw8IHBhc3RlYm9hcmRJbWFnZS51
cmwudXJsOwpAQCAtMTM1MSw3ICsxMzUxLDcgQEAgYm9vbCBBcmd1bWVudENvZGVyPFBhc3RlYm9h
cmRJbWFnZT46OmRlY29kZShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIFBhc3RlYm9hcmQKIAog
I2VuZGlmCiAKLXZvaWQgQXJndW1lbnRDb2RlcjxEaWN0YXRpb25BbHRlcm5hdGl2ZT46OmVuY29k
ZShBcmd1bWVudEVuY29kZXImIGVuY29kZXIsIGNvbnN0IERpY3RhdGlvbkFsdGVybmF0aXZlJiBk
aWN0YXRpb25BbHRlcm5hdGl2ZSkKK3ZvaWQgQXJndW1lbnRDb2RlcjxEaWN0YXRpb25BbHRlcm5h
dGl2ZT46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBEaWN0YXRpb25BbHRlcm5hdGl2
ZSYgZGljdGF0aW9uQWx0ZXJuYXRpdmUpCiB7CiAgICAgZW5jb2RlciA8PCBkaWN0YXRpb25BbHRl
cm5hdGl2ZS5yYW5nZVN0YXJ0OwogICAgIGVuY29kZXIgPDwgZGljdGF0aW9uQWx0ZXJuYXRpdmUu
cmFuZ2VMZW5ndGg7CkBAIC0xMzcwLDcgKzEzNzAsNyBAQCBib29sIEFyZ3VtZW50Q29kZXI8RGlj
dGF0aW9uQWx0ZXJuYXRpdmU+OjpkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBEaWN0
YQogfQogCiAKLXZvaWQgQXJndW1lbnRDb2RlcjxGaWxlQ2hvb3NlclNldHRpbmdzPjo6ZW5jb2Rl
KEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgY29uc3QgRmlsZUNob29zZXJTZXR0aW5ncyYgc2V0
dGluZ3MpCit2b2lkIEFyZ3VtZW50Q29kZXI8RmlsZUNob29zZXJTZXR0aW5ncz46OmVuY29kZShF
bmNvZGVyJiBlbmNvZGVyLCBjb25zdCBGaWxlQ2hvb3NlclNldHRpbmdzJiBzZXR0aW5ncykKIHsK
ICAgICBlbmNvZGVyIDw8IHNldHRpbmdzLmFsbG93c011bHRpcGxlRmlsZXM7CiAgICAgZW5jb2Rl
ciA8PCBzZXR0aW5ncy5hY2NlcHRNSU1FVHlwZXM7CkBAIC0xMzk3LDcgKzEzOTcsNyBAQCBib29s
IEFyZ3VtZW50Q29kZXI8RmlsZUNob29zZXJTZXR0aW5ncz46OmRlY29kZShBcmd1bWVudERlY29k
ZXImIGRlY29kZXIsIEZpbGVDaAogfQogCiAKLXZvaWQgQXJndW1lbnRDb2RlcjxHcmFtbWFyRGV0
YWlsPjo6ZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgY29uc3QgR3JhbW1hckRldGFp
bCYgZGV0YWlsKQordm9pZCBBcmd1bWVudENvZGVyPEdyYW1tYXJEZXRhaWw+OjplbmNvZGUoRW5j
b2RlciYgZW5jb2RlciwgY29uc3QgR3JhbW1hckRldGFpbCYgZGV0YWlsKQogewogICAgIGVuY29k
ZXIgPDwgZGV0YWlsLmxvY2F0aW9uOwogICAgIGVuY29kZXIgPDwgZGV0YWlsLmxlbmd0aDsKQEAg
LTE0MTksNyArMTQxOSw3IEBAIGJvb2wgQXJndW1lbnRDb2RlcjxHcmFtbWFyRGV0YWlsPjo6ZGVj
b2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgR3JhbW1hckRldGFpCiAgICAgcmV0dXJuIHRy
dWU7CiB9CiAKLXZvaWQgQXJndW1lbnRDb2RlcjxUZXh0Q2hlY2tpbmdSZXF1ZXN0RGF0YT46OmVu
Y29kZShBcmd1bWVudEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFRleHRDaGVja2luZ1JlcXVlc3RE
YXRhJiByZXF1ZXN0KQordm9pZCBBcmd1bWVudENvZGVyPFRleHRDaGVja2luZ1JlcXVlc3REYXRh
Pjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFRleHRDaGVja2luZ1JlcXVlc3REYXRh
JiByZXF1ZXN0KQogewogICAgIGVuY29kZXIgPDwgcmVxdWVzdC5zZXF1ZW5jZSgpOwogICAgIGVu
Y29kZXIgPDwgcmVxdWVzdC50ZXh0KCk7CkBAIC0xNDQ5LDcgKzE0NDksNyBAQCBib29sIEFyZ3Vt
ZW50Q29kZXI8VGV4dENoZWNraW5nUmVxdWVzdERhdGE+OjpkZWNvZGUoQXJndW1lbnREZWNvZGVy
JiBkZWNvZGVyLCBUZQogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIEFyZ3VtZW50Q29kZXI8
VGV4dENoZWNraW5nUmVzdWx0Pjo6ZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgY29u
c3QgVGV4dENoZWNraW5nUmVzdWx0JiByZXN1bHQpCit2b2lkIEFyZ3VtZW50Q29kZXI8VGV4dENo
ZWNraW5nUmVzdWx0Pjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFRleHRDaGVja2lu
Z1Jlc3VsdCYgcmVzdWx0KQogewogICAgIGVuY29kZXIuZW5jb2RlRW51bShyZXN1bHQudHlwZSk7
CiAgICAgZW5jb2RlciA8PCByZXN1bHQubG9jYXRpb247CkBAIC0xNDczLDcgKzE0NzMsNyBAQCBi
b29sIEFyZ3VtZW50Q29kZXI8VGV4dENoZWNraW5nUmVzdWx0Pjo6ZGVjb2RlKEFyZ3VtZW50RGVj
b2RlciYgZGVjb2RlciwgVGV4dENoZQogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIEFyZ3Vt
ZW50Q29kZXI8VVJMPjo6ZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgY29uc3QgVVJM
JiByZXN1bHQpCit2b2lkIEFyZ3VtZW50Q29kZXI8VVJMPjo6ZW5jb2RlKEVuY29kZXImIGVuY29k
ZXIsIGNvbnN0IFVSTCYgcmVzdWx0KQogewogICAgIGVuY29kZXIgPDwgcmVzdWx0LnN0cmluZygp
OwogfQpAQCAtMTQ4Nyw3ICsxNDg3LDcgQEAgYm9vbCBBcmd1bWVudENvZGVyPFVSTD46OmRlY29k
ZShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIFVSTCYgcmVzdWx0KQogICAgIHJldHVybiB0cnVl
OwogfQogCi12b2lkIEFyZ3VtZW50Q29kZXI8VXNlclN0eWxlU2hlZXQ+OjplbmNvZGUoQXJndW1l
bnRFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBVc2VyU3R5bGVTaGVldCYgdXNlclN0eWxlU2hlZXQp
Cit2b2lkIEFyZ3VtZW50Q29kZXI8VXNlclN0eWxlU2hlZXQ+OjplbmNvZGUoRW5jb2RlciYgZW5j
b2RlciwgY29uc3QgVXNlclN0eWxlU2hlZXQmIHVzZXJTdHlsZVNoZWV0KQogewogICAgIGVuY29k
ZXIgPDwgdXNlclN0eWxlU2hlZXQuc291cmNlKCk7CiAgICAgZW5jb2RlciA8PCB1c2VyU3R5bGVT
aGVldC51cmwoKTsKQEAgLTE1MjgsNyArMTUyOCw3IEBAIGJvb2wgQXJndW1lbnRDb2RlcjxVc2Vy
U3R5bGVTaGVldD46OmRlY29kZShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIFVzZXJTdHlsZVNo
CiB9CiAKICNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTikKLXZvaWQgQXJndW1lbnRDb2RlcjxNZWRp
YVNlc3Npb25NZXRhZGF0YT46OmVuY29kZShBcmd1bWVudEVuY29kZXImIGVuY29kZXIsIGNvbnN0
IE1lZGlhU2Vzc2lvbk1ldGFkYXRhJiByZXN1bHQpCit2b2lkIEFyZ3VtZW50Q29kZXI8TWVkaWFT
ZXNzaW9uTWV0YWRhdGE+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgTWVkaWFTZXNz
aW9uTWV0YWRhdGEmIHJlc3VsdCkKIHsKICAgICBlbmNvZGVyIDw8IHJlc3VsdC5hcnRpc3QoKTsK
ICAgICBlbmNvZGVyIDw8IHJlc3VsdC5hbGJ1bSgpOwpAQCAtMTU1Myw3ICsxNTUzLDcgQEAgYm9v
bCBBcmd1bWVudENvZGVyPE1lZGlhU2Vzc2lvbk1ldGFkYXRhPjo6ZGVjb2RlKEFyZ3VtZW50RGVj
b2RlciYgZGVjb2RlciwgTWVkaWEKIH0KICNlbmRpZgogCi12b2lkIEFyZ3VtZW50Q29kZXI8VXNl
clNjcmlwdD46OmVuY29kZShBcmd1bWVudEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFVzZXJTY3Jp
cHQmIHVzZXJTY3JpcHQpCit2b2lkIEFyZ3VtZW50Q29kZXI8VXNlclNjcmlwdD46OmVuY29kZShF
bmNvZGVyJiBlbmNvZGVyLCBjb25zdCBVc2VyU2NyaXB0JiB1c2VyU2NyaXB0KQogewogICAgIGVu
Y29kZXIgPDwgdXNlclNjcmlwdC5zb3VyY2UoKTsKICAgICBlbmNvZGVyIDw8IHVzZXJTY3JpcHQu
dXJsKCk7CkBAIC0xNTkzLDcgKzE1OTMsNyBAQCBib29sIEFyZ3VtZW50Q29kZXI8VXNlclNjcmlw
dD46OmRlY29kZShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIFVzZXJTY3JpcHQmIHVzZQogICAg
IHJldHVybiB0cnVlOwogfQogCi12b2lkIEFyZ3VtZW50Q29kZXI8U2Nyb2xsYWJsZUFyZWFQYXJh
bWV0ZXJzPjo6ZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgY29uc3QgU2Nyb2xsYWJs
ZUFyZWFQYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQordm9pZCBBcmd1bWVudENvZGVyPFNjcm9sbGFi
bGVBcmVhUGFyYW1ldGVycz46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBTY3JvbGxh
YmxlQXJlYVBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCiB7CiAgICAgZW5jb2Rlci5lbmNvZGVFbnVt
KHBhcmFtZXRlcnMuaG9yaXpvbnRhbFNjcm9sbEVsYXN0aWNpdHkpOwogICAgIGVuY29kZXIuZW5j
b2RlRW51bShwYXJhbWV0ZXJzLnZlcnRpY2FsU2Nyb2xsRWxhc3RpY2l0eSk7CkBAIC0xNjI1LDcg
KzE2MjUsNyBAQCBib29sIEFyZ3VtZW50Q29kZXI8U2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzPjo6
ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgUwogICAgIHJldHVybiB0cnVlOwogfQog
Ci12b2lkIEFyZ3VtZW50Q29kZXI8Rml4ZWRQb3NpdGlvblZpZXdwb3J0Q29uc3RyYWludHM+Ojpl
bmNvZGUoQXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBGaXhlZFBvc2l0aW9uVmlld3Bv
cnRDb25zdHJhaW50cyYgdmlld3BvcnRDb25zdHJhaW50cykKK3ZvaWQgQXJndW1lbnRDb2RlcjxG
aXhlZFBvc2l0aW9uVmlld3BvcnRDb25zdHJhaW50cz46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVy
LCBjb25zdCBGaXhlZFBvc2l0aW9uVmlld3BvcnRDb25zdHJhaW50cyYgdmlld3BvcnRDb25zdHJh
aW50cykKIHsKICAgICBlbmNvZGVyIDw8IHZpZXdwb3J0Q29uc3RyYWludHMuYWxpZ25tZW50T2Zm
c2V0KCk7CiAgICAgZW5jb2RlciA8PCB2aWV3cG9ydENvbnN0cmFpbnRzLmFuY2hvckVkZ2VzKCk7
CkBAIC0xNjYyLDcgKzE2NjIsNyBAQCBib29sIEFyZ3VtZW50Q29kZXI8Rml4ZWRQb3NpdGlvblZp
ZXdwb3J0Q29uc3RyYWludHM+OjpkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZQogICAgIHJldHVy
biB0cnVlOwogfQogCi12b2lkIEFyZ3VtZW50Q29kZXI8U3RpY2t5UG9zaXRpb25WaWV3cG9ydENv
bnN0cmFpbnRzPjo6ZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgY29uc3QgU3RpY2t5
UG9zaXRpb25WaWV3cG9ydENvbnN0cmFpbnRzJiB2aWV3cG9ydENvbnN0cmFpbnRzKQordm9pZCBB
cmd1bWVudENvZGVyPFN0aWNreVBvc2l0aW9uVmlld3BvcnRDb25zdHJhaW50cz46OmVuY29kZShF
bmNvZGVyJiBlbmNvZGVyLCBjb25zdCBTdGlja3lQb3NpdGlvblZpZXdwb3J0Q29uc3RyYWludHMm
IHZpZXdwb3J0Q29uc3RyYWludHMpCiB7CiAgICAgZW5jb2RlciA8PCB2aWV3cG9ydENvbnN0cmFp
bnRzLmFsaWdubWVudE9mZnNldCgpOwogICAgIGVuY29kZXIgPDwgdmlld3BvcnRDb25zdHJhaW50
cy5hbmNob3JFZGdlcygpOwpAQCAtMTc0Niw3ICsxNzQ2LDcgQEAgYm9vbCBBcmd1bWVudENvZGVy
PFN0aWNreVBvc2l0aW9uVmlld3BvcnRDb25zdHJhaW50cz46OmRlY29kZShBcmd1bWVudERlY29k
ZXImIGQKIH0KIAogI2lmICFVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpCi12b2lkIEFyZ3VtZW50
Q29kZXI8RmlsdGVyT3BlcmF0aW9uPjo6ZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2Rlciwg
Y29uc3QgRmlsdGVyT3BlcmF0aW9uJiBmaWx0ZXIpCit2b2lkIEFyZ3VtZW50Q29kZXI8RmlsdGVy
T3BlcmF0aW9uPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IEZpbHRlck9wZXJhdGlv
biYgZmlsdGVyKQogewogICAgIGVuY29kZXIuZW5jb2RlRW51bShmaWx0ZXIudHlwZSgpKTsKIApA
QCAtMTg1Myw3ICsxODUzLDcgQEAgYm9vbCBkZWNvZGVGaWx0ZXJPcGVyYXRpb24oQXJndW1lbnRE
ZWNvZGVyJiBkZWNvZGVyLCBSZWZQdHI8RmlsdGVyT3BlcmF0aW9uPiYgZmkKIH0KIAogCi12b2lk
IEFyZ3VtZW50Q29kZXI8RmlsdGVyT3BlcmF0aW9ucz46OmVuY29kZShBcmd1bWVudEVuY29kZXIm
IGVuY29kZXIsIGNvbnN0IEZpbHRlck9wZXJhdGlvbnMmIGZpbHRlcnMpCit2b2lkIEFyZ3VtZW50
Q29kZXI8RmlsdGVyT3BlcmF0aW9ucz46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBG
aWx0ZXJPcGVyYXRpb25zJiBmaWx0ZXJzKQogewogICAgIGVuY29kZXIgPDwgc3RhdGljX2Nhc3Q8
dWludDY0X3Q+KGZpbHRlcnMuc2l6ZSgpKTsKIApAQCAtMTg3OCw3ICsxODc4LDcgQEAgYm9vbCBB
cmd1bWVudENvZGVyPEZpbHRlck9wZXJhdGlvbnM+OjpkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBk
ZWNvZGVyLCBGaWx0ZXJPcGUKIH0KICNlbmRpZiAvLyAhVVNFKENPT1JESU5BVEVEX0dSQVBISUNT
KQogCi12b2lkIEFyZ3VtZW50Q29kZXI8U2Vzc2lvbklEPjo6ZW5jb2RlKEFyZ3VtZW50RW5jb2Rl
ciYgZW5jb2RlciwgY29uc3QgU2Vzc2lvbklEJiBzZXNzaW9uSUQpCit2b2lkIEFyZ3VtZW50Q29k
ZXI8U2Vzc2lvbklEPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFNlc3Npb25JRCYg
c2Vzc2lvbklEKQogewogICAgIGVuY29kZXIgPDwgc2Vzc2lvbklELnNlc3Npb25JRCgpOwogfQpA
QCAtMTg5NCw3ICsxODk0LDcgQEAgYm9vbCBBcmd1bWVudENvZGVyPFNlc3Npb25JRD46OmRlY29k
ZShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIFNlc3Npb25JRCYgc2Vzc2kKICAgICByZXR1cm4g
dHJ1ZTsKIH0KIAotdm9pZCBBcmd1bWVudENvZGVyPEJsb2JQYXJ0Pjo6ZW5jb2RlKEFyZ3VtZW50
RW5jb2RlciYgZW5jb2RlciwgY29uc3QgQmxvYlBhcnQmIGJsb2JQYXJ0KQordm9pZCBBcmd1bWVu
dENvZGVyPEJsb2JQYXJ0Pjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IEJsb2JQYXJ0
JiBibG9iUGFydCkKIHsKICAgICBlbmNvZGVyIDw8IHN0YXRpY19jYXN0PHVpbnQzMl90PihibG9i
UGFydC50eXBlKCkpOwogICAgIHN3aXRjaCAoYmxvYlBhcnQudHlwZSgpKSB7CkBAIC0xOTM1LDcg
KzE5MzUsNyBAQCBib29sIEFyZ3VtZW50Q29kZXI8QmxvYlBhcnQ+OjpkZWNvZGUoQXJndW1lbnRE
ZWNvZGVyJiBkZWNvZGVyLCBCbG9iUGFydCYgYmxvYlBhcgogICAgIHJldHVybiB0cnVlOwogfQog
Ci12b2lkIEFyZ3VtZW50Q29kZXI8VGV4dEluZGljYXRvckRhdGE+OjplbmNvZGUoQXJndW1lbnRF
bmNvZGVyJiBlbmNvZGVyLCBjb25zdCBUZXh0SW5kaWNhdG9yRGF0YSYgdGV4dEluZGljYXRvckRh
dGEpCit2b2lkIEFyZ3VtZW50Q29kZXI8VGV4dEluZGljYXRvckRhdGE+OjplbmNvZGUoRW5jb2Rl
ciYgZW5jb2RlciwgY29uc3QgVGV4dEluZGljYXRvckRhdGEmIHRleHRJbmRpY2F0b3JEYXRhKQog
ewogICAgIGVuY29kZXIgPDwgdGV4dEluZGljYXRvckRhdGEuc2VsZWN0aW9uUmVjdEluUm9vdFZp
ZXdDb29yZGluYXRlczsKICAgICBlbmNvZGVyIDw8IHRleHRJbmRpY2F0b3JEYXRhLnRleHRCb3Vu
ZGluZ1JlY3RJblJvb3RWaWV3Q29vcmRpbmF0ZXM7CkBAIC0xOTgwLDcgKzE5ODAsNyBAQCBib29s
IEFyZ3VtZW50Q29kZXI8VGV4dEluZGljYXRvckRhdGE+OjpkZWNvZGUoQXJndW1lbnREZWNvZGVy
JiBkZWNvZGVyLCBUZXh0SW5kaQogfQogCiAjaWYgRU5BQkxFKFdJUkVMRVNTX1BMQVlCQUNLX1RB
UkdFVCkKLXZvaWQgQXJndW1lbnRDb2RlcjxNZWRpYVBsYXliYWNrVGFyZ2V0Q29udGV4dD46OmVu
Y29kZShBcmd1bWVudEVuY29kZXImIGVuY29kZXIsIGNvbnN0IE1lZGlhUGxheWJhY2tUYXJnZXRD
b250ZXh0JiB0YXJnZXQpCit2b2lkIEFyZ3VtZW50Q29kZXI8TWVkaWFQbGF5YmFja1RhcmdldENv
bnRleHQ+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgTWVkaWFQbGF5YmFja1Rhcmdl
dENvbnRleHQmIHRhcmdldCkKIHsKICAgICBib29sIGhhc1BsYXRmb3JtRGF0YSA9IHRhcmdldC5l
bmNvZGluZ1JlcXVpcmVzUGxhdGZvcm1EYXRhKCk7CiAgICAgZW5jb2RlciA8PCBoYXNQbGF0Zm9y
bURhdGE7CkBAIC0yMDI2LDcgKzIwMjYsNyBAQCBib29sIEFyZ3VtZW50Q29kZXI8TWVkaWFQbGF5
YmFja1RhcmdldENvbnRleHQ+OjpkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLAogfQog
I2VuZGlmCiAKLXZvaWQgQXJndW1lbnRDb2RlcjxEaWN0aW9uYXJ5UG9wdXBJbmZvPjo6ZW5jb2Rl
KElQQzo6QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBEaWN0aW9uYXJ5UG9wdXBJbmZv
JiBpbmZvKQordm9pZCBBcmd1bWVudENvZGVyPERpY3Rpb25hcnlQb3B1cEluZm8+OjplbmNvZGUo
SVBDOjpFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBEaWN0aW9uYXJ5UG9wdXBJbmZvJiBpbmZvKQog
ewogICAgIGVuY29kZXIgPDwgaW5mby5vcmlnaW47CiAgICAgZW5jb2RlciA8PCBpbmZvLnRleHRJ
bmRpY2F0b3I7CkBAIC0yMDc0LDcgKzIwNzQsNyBAQCBib29sIEFyZ3VtZW50Q29kZXI8RGljdGlv
bmFyeVBvcHVwSW5mbz46OmRlY29kZShJUEM6OkFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgRAog
ICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIEFyZ3VtZW50Q29kZXI8RXhjZXB0aW9uRGV0YWls
cz46OmVuY29kZShJUEM6OkFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgY29uc3QgRXhjZXB0aW9u
RGV0YWlscyYgaW5mbykKK3ZvaWQgQXJndW1lbnRDb2RlcjxFeGNlcHRpb25EZXRhaWxzPjo6ZW5j
b2RlKElQQzo6RW5jb2RlciYgZW5jb2RlciwgY29uc3QgRXhjZXB0aW9uRGV0YWlscyYgaW5mbykK
IHsKICAgICBlbmNvZGVyIDw8IGluZm8ubWVzc2FnZTsKICAgICBlbmNvZGVyIDw8IGluZm8ubGlu
ZU51bWJlcjsKQEAgLTIwOTksNyArMjA5OSw3IEBAIGJvb2wgQXJndW1lbnRDb2RlcjxFeGNlcHRp
b25EZXRhaWxzPjo6ZGVjb2RlKElQQzo6QXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBFeGNlCiAg
ICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgQXJndW1lbnRDb2RlcjxSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzPjo6ZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgY29uc3QgV2ViQ29yZTo6
UmVzb3VyY2VMb2FkU3RhdGlzdGljcyYgc3RhdGlzdGljcykKK3ZvaWQgQXJndW1lbnRDb2RlcjxS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlTG9hZFN0YXRpc3RpY3MmIHN0YXRpc3RpY3MpCiB7CiAgICAgZW5jb2Rl
ciA8PCBzdGF0aXN0aWNzLmhpZ2hMZXZlbERvbWFpbjsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaCBiL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaAppbmRleCBjNDVhNGE1YzE3NGM0YmVhZDJm
NWI1M2YzYzM5ZDMxNmE0NGZlNGJjLi43MjI2ZGJmNTBkMjUyMDc2ZmQ1ZTBkM2EyYWIwZGJhOTFk
NTI3MDJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50
Q29kZXJzLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVy
cy5oCkBAIC0xMzAsMzk5ICsxMzAsMzk5IEBAIGNsYXNzIE1lZGlhU2Vzc2lvbk1ldGFkYXRhOwog
bmFtZXNwYWNlIElQQyB7CiAKIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29y
ZTo6QWZmaW5lVHJhbnNmb3JtPiB7Ci0gICAgc3RhdGljIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5j
b2RlciYsIGNvbnN0IFdlYkNvcmU6OkFmZmluZVRyYW5zZm9ybSYpOworICAgIHN0YXRpYyB2b2lk
IGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6QWZmaW5lVHJhbnNmb3JtJik7CiAgICAg
c3RhdGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYsIFdlYkNvcmU6OkFmZmluZVRyYW5z
Zm9ybSYpOwogfTsKIAogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpF
dmVudFRyYWNraW5nUmVnaW9ucz4gewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShBcmd1bWVudEVu
Y29kZXImLCBjb25zdCBXZWJDb3JlOjpFdmVudFRyYWNraW5nUmVnaW9ucyYpOworICAgIHN0YXRp
YyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6RXZlbnRUcmFja2luZ1JlZ2lv
bnMmKTsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiwgV2ViQ29yZTo6
RXZlbnRUcmFja2luZ1JlZ2lvbnMmKTsKIH07CiAKIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50
Q29kZXI8V2ViQ29yZTo6VHJhbnNmb3JtYXRpb25NYXRyaXg+IHsKLSAgICBzdGF0aWMgdm9pZCBl
bmNvZGUoQXJndW1lbnRFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6VHJhbnNmb3JtYXRpb25NYXRy
aXgmKTsKKyAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OlRy
YW5zZm9ybWF0aW9uTWF0cml4Jik7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVj
b2RlciYsIFdlYkNvcmU6OlRyYW5zZm9ybWF0aW9uTWF0cml4Jik7CiB9OwogCiB0ZW1wbGF0ZTw+
IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkxpbmVhclRpbWluZ0Z1bmN0aW9uPiB7Ci0g
ICAgc3RhdGljIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6Okxp
bmVhclRpbWluZ0Z1bmN0aW9uJik7CisgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBj
b25zdCBXZWJDb3JlOjpMaW5lYXJUaW1pbmdGdW5jdGlvbiYpOwogICAgIHN0YXRpYyBib29sIGRl
Y29kZShBcmd1bWVudERlY29kZXImLCBXZWJDb3JlOjpMaW5lYXJUaW1pbmdGdW5jdGlvbiYpOwog
fTsKIAogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpDdWJpY0Jlemll
clRpbWluZ0Z1bmN0aW9uPiB7Ci0gICAgc3RhdGljIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2Rl
ciYsIGNvbnN0IFdlYkNvcmU6OkN1YmljQmV6aWVyVGltaW5nRnVuY3Rpb24mKTsKKyAgICBzdGF0
aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkN1YmljQmV6aWVyVGltaW5n
RnVuY3Rpb24mKTsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiwgV2Vi
Q29yZTo6Q3ViaWNCZXppZXJUaW1pbmdGdW5jdGlvbiYpOwogfTsKIAogdGVtcGxhdGU8PiBzdHJ1
Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpTdGVwc1RpbWluZ0Z1bmN0aW9uPiB7Ci0gICAgc3Rh
dGljIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OlN0ZXBzVGlt
aW5nRnVuY3Rpb24mKTsKKyAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdl
YkNvcmU6OlN0ZXBzVGltaW5nRnVuY3Rpb24mKTsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQXJn
dW1lbnREZWNvZGVyJiwgV2ViQ29yZTo6U3RlcHNUaW1pbmdGdW5jdGlvbiYpOwogfTsKIAogdGVt
cGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpTcHJpbmdUaW1pbmdGdW5jdGlv
bj4gewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXImLCBjb25zdCBXZWJD
b3JlOjpTcHJpbmdUaW1pbmdGdW5jdGlvbiYpOworICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNv
ZGVyJiwgY29uc3QgV2ViQ29yZTo6U3ByaW5nVGltaW5nRnVuY3Rpb24mKTsKICAgICBzdGF0aWMg
Ym9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiwgV2ViQ29yZTo6U3ByaW5nVGltaW5nRnVuY3Rp
b24mKTsKIH07CiAKIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6Q2Vy
dGlmaWNhdGVJbmZvPiB7Ci0gICAgc3RhdGljIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYs
IGNvbnN0IFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbyYpOworICAgIHN0YXRpYyB2b2lkIGVuY29k
ZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvJik7CiAgICAgc3RhdGlj
IGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYsIFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbyYp
OwogfTsKIAogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpGbG9hdFBv
aW50PiB7Ci0gICAgc3RhdGljIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYsIGNvbnN0IFdl
YkNvcmU6OkZsb2F0UG9pbnQmKTsKKyAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNv
bnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmKTsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQXJndW1l
bnREZWNvZGVyJiwgV2ViQ29yZTo6RmxvYXRQb2ludCYpOwogfTsKIAogdGVtcGxhdGU8PiBzdHJ1
Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpGbG9hdFBvaW50M0Q+IHsKLSAgICBzdGF0aWMgdm9p
ZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludDNEJik7
CisgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpGbG9hdFBv
aW50M0QmKTsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiwgV2ViQ29y
ZTo6RmxvYXRQb2ludDNEJik7CiB9OwogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVy
PFdlYkNvcmU6OkZsb2F0UmVjdD4gewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShBcmd1bWVudEVu
Y29kZXImLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmKTsKKyAgICBzdGF0aWMgdm9pZCBlbmNv
ZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpOwogICAgIHN0YXRpYyBib29s
IGRlY29kZShBcmd1bWVudERlY29kZXImLCBXZWJDb3JlOjpGbG9hdFJlY3QmKTsKIH07CiAKIHRl
bXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6RmxvYXRTaXplPiB7Ci0gICAg
c3RhdGljIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0
U2l6ZSYpOworICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6
RmxvYXRTaXplJik7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYsIFdl
YkNvcmU6OkZsb2F0U2l6ZSYpOwogfTsKIAogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2Rl
cjxXZWJDb3JlOjpGbG9hdFJvdW5kZWRSZWN0PiB7Ci0gICAgc3RhdGljIHZvaWQgZW5jb2RlKEFy
Z3VtZW50RW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0Um91bmRlZFJlY3QmKTsKKyAgICBz
dGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0Um91bmRlZFJl
Y3QmKTsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiwgV2ViQ29yZTo6
RmxvYXRSb3VuZGVkUmVjdCYpOwogfTsKIAogI2lmIFBMQVRGT1JNKElPUykKIHRlbXBsYXRlPD4g
c3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6RmxvYXRRdWFkPiB7Ci0gICAgc3RhdGljIHZv
aWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UXVhZCYpOwor
ICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6RmxvYXRRdWFk
Jik7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYsIFdlYkNvcmU6OkZs
b2F0UXVhZCYpOwogfTsKIAogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3Jl
OjpWaWV3cG9ydEFyZ3VtZW50cz4gewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShBcmd1bWVudEVu
Y29kZXImLCBjb25zdCBXZWJDb3JlOjpWaWV3cG9ydEFyZ3VtZW50cyYpOworICAgIHN0YXRpYyB2
b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6Vmlld3BvcnRBcmd1bWVudHMmKTsK
ICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiwgV2ViQ29yZTo6Vmlld3Bv
cnRBcmd1bWVudHMmKTsKIH07CiAjZW5kaWYgLy8gUExBVEZPUk0oSU9TKQogCiB0ZW1wbGF0ZTw+
IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkludFBvaW50PiB7Ci0gICAgc3RhdGljIHZv
aWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50Jik7Cisg
ICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYp
OwogICAgIHN0YXRpYyBib29sIGRlY29kZShBcmd1bWVudERlY29kZXImLCBXZWJDb3JlOjpJbnRQ
b2ludCYpOwogfTsKIAogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpJ
bnRSZWN0PiB7Ci0gICAgc3RhdGljIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYsIGNvbnN0
IFdlYkNvcmU6OkludFJlY3QmKTsKKyAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNv
bnN0IFdlYkNvcmU6OkludFJlY3QmKTsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQXJndW1lbnRE
ZWNvZGVyJiwgV2ViQ29yZTo6SW50UmVjdCYpOwogfTsKIAogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJn
dW1lbnRDb2RlcjxXZWJDb3JlOjpJbnRTaXplPiB7Ci0gICAgc3RhdGljIHZvaWQgZW5jb2RlKEFy
Z3VtZW50RW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmKTsKKyAgICBzdGF0aWMgdm9p
ZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmKTsKICAgICBzdGF0aWMg
Ym9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiwgV2ViQ29yZTo6SW50U2l6ZSYpOwogfTsKIAog
dGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpQYXRoPiB7Ci0gICAgc3Rh
dGljIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OlBhdGgmKTsK
KyAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OlBhdGgmKTsK
ICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiwgV2ViQ29yZTo6UGF0aCYp
OwogfTsKIAogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpSZWdpb24+
IHsKLSAgICBzdGF0aWMgdm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyJiwgY29uc3QgV2ViQ29y
ZTo6UmVnaW9uJik7CisgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJD
b3JlOjpSZWdpb24mKTsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiwg
V2ViQ29yZTo6UmVnaW9uJik7CiB9OwogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVy
PFdlYkNvcmU6Okxlbmd0aD4gewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShBcmd1bWVudEVuY29k
ZXImLCBjb25zdCBXZWJDb3JlOjpMZW5ndGgmKTsKKyAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5j
b2RlciYsIGNvbnN0IFdlYkNvcmU6Okxlbmd0aCYpOwogICAgIHN0YXRpYyBib29sIGRlY29kZShB
cmd1bWVudERlY29kZXImLCBXZWJDb3JlOjpMZW5ndGgmKTsKIH07CiAKIHRlbXBsYXRlPD4gc3Ry
dWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6Vmlld3BvcnRBdHRyaWJ1dGVzPiB7Ci0gICAgc3Rh
dGljIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OlZpZXdwb3J0
QXR0cmlidXRlcyYpOworICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2Vi
Q29yZTo6Vmlld3BvcnRBdHRyaWJ1dGVzJik7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3Vt
ZW50RGVjb2RlciYsIFdlYkNvcmU6OlZpZXdwb3J0QXR0cmlidXRlcyYpOwogfTsKIAogdGVtcGxh
dGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpNaW1lQ2xhc3NJbmZvPiB7Ci0gICAg
c3RhdGljIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6Ok1pbWVD
bGFzc0luZm8mKTsKKyAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNv
cmU6Ok1pbWVDbGFzc0luZm8mKTsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNv
ZGVyJiwgV2ViQ29yZTo6TWltZUNsYXNzSW5mbyYpOwogfTsKIAogdGVtcGxhdGU8PiBzdHJ1Y3Qg
QXJndW1lbnRDb2RlcjxXZWJDb3JlOjpQbHVnaW5JbmZvPiB7Ci0gICAgc3RhdGljIHZvaWQgZW5j
b2RlKEFyZ3VtZW50RW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OlBsdWdpbkluZm8mKTsKKyAgICBz
dGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OlBsdWdpbkluZm8mKTsK
ICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiwgV2ViQ29yZTo6UGx1Z2lu
SW5mbyYpOwogfTsKIAogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpB
dXRoZW50aWNhdGlvbkNoYWxsZW5nZT4gewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShBcmd1bWVu
dEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYpOworICAg
IHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6QXV0aGVudGljYXRp
b25DaGFsbGVuZ2UmKTsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiwg
V2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2UmKTsKIH07CiAKIHRlbXBsYXRlPD4gc3Ry
dWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlPiB7Ci0gICAgc3RhdGlj
IHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OlByb3RlY3Rpb25T
cGFjZSYpOworICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6
UHJvdGVjdGlvblNwYWNlJik7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2Rl
ciYsIFdlYkNvcmU6OlByb3RlY3Rpb25TcGFjZSYpOwotICAgIHN0YXRpYyB2b2lkIGVuY29kZVBs
YXRmb3JtRGF0YShBcmd1bWVudEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpQcm90ZWN0aW9uU3Bh
Y2UmKTsKKyAgICBzdGF0aWMgdm9pZCBlbmNvZGVQbGF0Zm9ybURhdGEoRW5jb2RlciYsIGNvbnN0
IFdlYkNvcmU6OlByb3RlY3Rpb25TcGFjZSYpOwogICAgIHN0YXRpYyBib29sIGRlY29kZVBsYXRm
b3JtRGF0YShBcmd1bWVudERlY29kZXImLCBXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2UmKTsKIH07
CiAKIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6Q3JlZGVudGlhbD4g
ewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXImLCBjb25zdCBXZWJDb3Jl
OjpDcmVkZW50aWFsJik7CisgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBX
ZWJDb3JlOjpDcmVkZW50aWFsJik7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVj
b2RlciYsIFdlYkNvcmU6OkNyZWRlbnRpYWwmKTsKLSAgICBzdGF0aWMgdm9pZCBlbmNvZGVQbGF0
Zm9ybURhdGEoQXJndW1lbnRFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6Q3JlZGVudGlhbCYpOwor
ICAgIHN0YXRpYyB2b2lkIGVuY29kZVBsYXRmb3JtRGF0YShFbmNvZGVyJiwgY29uc3QgV2ViQ29y
ZTo6Q3JlZGVudGlhbCYpOwogICAgIHN0YXRpYyBib29sIGRlY29kZVBsYXRmb3JtRGF0YShBcmd1
bWVudERlY29kZXImLCBXZWJDb3JlOjpDcmVkZW50aWFsJik7CiB9OwogCiB0ZW1wbGF0ZTw+IHN0
cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkN1cnNvcj4gewotICAgIHN0YXRpYyB2b2lkIGVu
Y29kZShBcmd1bWVudEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpDdXJzb3ImKTsKKyAgICBzdGF0
aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkN1cnNvciYpOwogICAgIHN0
YXRpYyBib29sIGRlY29kZShBcmd1bWVudERlY29kZXImLCBXZWJDb3JlOjpDdXJzb3ImKTsKIH07
CiAKIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0PiB7Ci0gICAgc3RhdGljIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYsIGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdCYpOworICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVy
JiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jik7CiAgICAgc3RhdGljIGJvb2wgZGVj
b2RlKEFyZ3VtZW50RGVjb2RlciYsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYpOwotICAgIHN0
YXRpYyB2b2lkIGVuY29kZVBsYXRmb3JtRGF0YShBcmd1bWVudEVuY29kZXImLCBjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QmKTsKKyAgICBzdGF0aWMgdm9pZCBlbmNvZGVQbGF0Zm9ybURh
dGEoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYpOwogICAgIHN0YXRp
YyBib29sIGRlY29kZVBsYXRmb3JtRGF0YShBcmd1bWVudERlY29kZXImLCBXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QmKTsKIH07CiAKIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2Vi
Q29yZTo6UmVzb3VyY2VFcnJvcj4gewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShBcmd1bWVudEVu
Y29kZXImLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJik7CisgICAgc3RhdGljIHZvaWQg
ZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJik7CiAgICAgc3Rh
dGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYsIFdlYkNvcmU6OlJlc291cmNlRXJyb3Im
KTsKLSAgICBzdGF0aWMgdm9pZCBlbmNvZGVQbGF0Zm9ybURhdGEoQXJndW1lbnRFbmNvZGVyJiwg
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYpOworICAgIHN0YXRpYyB2b2lkIGVuY29kZVBs
YXRmb3JtRGF0YShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYpOwogICAg
IHN0YXRpYyBib29sIGRlY29kZVBsYXRmb3JtRGF0YShBcmd1bWVudERlY29kZXImLCBXZWJDb3Jl
OjpSZXNvdXJjZUVycm9yJik7CiB9OwogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVy
PFdlYkNvcmU6OldpbmRvd0ZlYXR1cmVzPiB7Ci0gICAgc3RhdGljIHZvaWQgZW5jb2RlKEFyZ3Vt
ZW50RW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OldpbmRvd0ZlYXR1cmVzJik7CisgICAgc3RhdGlj
IHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpXaW5kb3dGZWF0dXJlcyYpOwog
ICAgIHN0YXRpYyBib29sIGRlY29kZShBcmd1bWVudERlY29kZXImLCBXZWJDb3JlOjpXaW5kb3dG
ZWF0dXJlcyYpOwogfTsKIAogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3Jl
OjpDb2xvcj4gewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXImLCBjb25z
dCBXZWJDb3JlOjpDb2xvciYpOworICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29u
c3QgV2ViQ29yZTo6Q29sb3ImKTsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNv
ZGVyJiwgV2ViQ29yZTo6Q29sb3ImKTsKIH07CiAKICNpZiBQTEFURk9STShDT0NPQSkKIHRlbXBs
YXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6TWFjaFNlbmRSaWdodD4gewotICAg
IHN0YXRpYyB2b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpNYWNo
U2VuZFJpZ2h0Jik7Ci0gICAgc3RhdGljIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYsIFdl
YkNvcmU6Ok1hY2hTZW5kUmlnaHQmJik7CisgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXIm
LCBjb25zdCBXZWJDb3JlOjpNYWNoU2VuZFJpZ2h0Jik7CisgICAgc3RhdGljIHZvaWQgZW5jb2Rl
KEVuY29kZXImLCBXZWJDb3JlOjpNYWNoU2VuZFJpZ2h0JiYpOwogICAgIHN0YXRpYyBib29sIGRl
Y29kZShBcmd1bWVudERlY29kZXImLCBXZWJDb3JlOjpNYWNoU2VuZFJpZ2h0Jik7CiB9OwogCiB0
ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OktleXByZXNzQ29tbWFuZD4g
ewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXImLCBjb25zdCBXZWJDb3Jl
OjpLZXlwcmVzc0NvbW1hbmQmKTsKKyAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNv
bnN0IFdlYkNvcmU6OktleXByZXNzQ29tbWFuZCYpOwogICAgIHN0YXRpYyBib29sIGRlY29kZShB
cmd1bWVudERlY29kZXImLCBXZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQmKTsKIH07CiAjZW5kaWYK
IAogI2lmIFBMQVRGT1JNKElPUykKIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2Vi
Q29yZTo6U2VsZWN0aW9uUmVjdD4gewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShBcmd1bWVudEVu
Y29kZXImLCBjb25zdCBXZWJDb3JlOjpTZWxlY3Rpb25SZWN0Jik7CisgICAgc3RhdGljIHZvaWQg
ZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpTZWxlY3Rpb25SZWN0Jik7CiAgICAgc3Rh
dGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYsIFdlYkNvcmU6OlNlbGVjdGlvblJlY3Qm
KTsKIH07CiAKIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6SGlnaGxp
Z2h0PiB7Ci0gICAgc3RhdGljIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYsIGNvbnN0IFdl
YkNvcmU6OkhpZ2hsaWdodCYpOworICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29u
c3QgV2ViQ29yZTo6SGlnaGxpZ2h0Jik7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50
RGVjb2RlciYsIFdlYkNvcmU6OkhpZ2hsaWdodCYpOwogfTsKIAogdGVtcGxhdGU8PiBzdHJ1Y3Qg
QXJndW1lbnRDb2RlcjxXZWJDb3JlOjpQYXN0ZWJvYXJkV2ViQ29udGVudD4gewotICAgIHN0YXRp
YyB2b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpQYXN0ZWJvYXJk
V2ViQ29udGVudCYpOworICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2Vi
Q29yZTo6UGFzdGVib2FyZFdlYkNvbnRlbnQmKTsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQXJn
dW1lbnREZWNvZGVyJiwgV2ViQ29yZTo6UGFzdGVib2FyZFdlYkNvbnRlbnQmKTsKIH07CiAKIHRl
bXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6UGFzdGVib2FyZEltYWdlPiB7
Ci0gICAgc3RhdGljIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6
OlBhc3RlYm9hcmRJbWFnZSYpOworICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29u
c3QgV2ViQ29yZTo6UGFzdGVib2FyZEltYWdlJik7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKEFy
Z3VtZW50RGVjb2RlciYsIFdlYkNvcmU6OlBhc3RlYm9hcmRJbWFnZSYpOwogfTsKICNlbmRpZgog
CiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkNvbXBvc2l0aW9uVW5k
ZXJsaW5lPiB7Ci0gICAgc3RhdGljIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYsIGNvbnN0
IFdlYkNvcmU6OkNvbXBvc2l0aW9uVW5kZXJsaW5lJik7CisgICAgc3RhdGljIHZvaWQgZW5jb2Rl
KEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpDb21wb3NpdGlvblVuZGVybGluZSYpOwogICAgIHN0
YXRpYyBib29sIGRlY29kZShBcmd1bWVudERlY29kZXImLCBXZWJDb3JlOjpDb21wb3NpdGlvblVu
ZGVybGluZSYpOwogfTsKIAogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3Jl
OjpDb29raWU+IHsKLSAgICBzdGF0aWMgdm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyJiwgY29u
c3QgV2ViQ29yZTo6Q29va2llJik7CisgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBj
b25zdCBXZWJDb3JlOjpDb29raWUmKTsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQXJndW1lbnRE
ZWNvZGVyJiwgV2ViQ29yZTo6Q29va2llJik7CiB9OwogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1
bWVudENvZGVyPFdlYkNvcmU6OkRhdGFiYXNlRGV0YWlscz4gewotICAgIHN0YXRpYyB2b2lkIGVu
Y29kZShBcmd1bWVudEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpEYXRhYmFzZURldGFpbHMmKTsK
KyAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkRhdGFiYXNl
RGV0YWlscyYpOwogICAgIHN0YXRpYyBib29sIGRlY29kZShBcmd1bWVudERlY29kZXImLCBXZWJD
b3JlOjpEYXRhYmFzZURldGFpbHMmKTsKIH07CiAKIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50
Q29kZXI8V2ViQ29yZTo6RGljdGF0aW9uQWx0ZXJuYXRpdmU+IHsKLSAgICBzdGF0aWMgdm9pZCBl
bmNvZGUoQXJndW1lbnRFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6RGljdGF0aW9uQWx0ZXJuYXRp
dmUmKTsKKyAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkRp
Y3RhdGlvbkFsdGVybmF0aXZlJik7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVj
b2RlciYsIFdlYkNvcmU6OkRpY3RhdGlvbkFsdGVybmF0aXZlJik7CiB9OwogCiB0ZW1wbGF0ZTw+
IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkZpbGVDaG9vc2VyU2V0dGluZ3M+IHsKLSAg
ICBzdGF0aWMgdm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6Rmls
ZUNob29zZXJTZXR0aW5ncyYpOworICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29u
c3QgV2ViQ29yZTo6RmlsZUNob29zZXJTZXR0aW5ncyYpOwogICAgIHN0YXRpYyBib29sIGRlY29k
ZShBcmd1bWVudERlY29kZXImLCBXZWJDb3JlOjpGaWxlQ2hvb3NlclNldHRpbmdzJik7CiB9Owog
CiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkdyYW1tYXJEZXRhaWw+
IHsKLSAgICBzdGF0aWMgdm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyJiwgY29uc3QgV2ViQ29y
ZTo6R3JhbW1hckRldGFpbCYpOworICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29u
c3QgV2ViQ29yZTo6R3JhbW1hckRldGFpbCYpOwogICAgIHN0YXRpYyBib29sIGRlY29kZShBcmd1
bWVudERlY29kZXImLCBXZWJDb3JlOjpHcmFtbWFyRGV0YWlsJik7CiB9OwogCiB0ZW1wbGF0ZTw+
IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlRleHRDaGVja2luZ1JlcXVlc3REYXRhPiB7
Ci0gICAgc3RhdGljIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6
OlRleHRDaGVja2luZ1JlcXVlc3REYXRhJik7CisgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29k
ZXImLCBjb25zdCBXZWJDb3JlOjpUZXh0Q2hlY2tpbmdSZXF1ZXN0RGF0YSYpOwogICAgIHN0YXRp
YyBib29sIGRlY29kZShBcmd1bWVudERlY29kZXImLCBXZWJDb3JlOjpUZXh0Q2hlY2tpbmdSZXF1
ZXN0RGF0YSYpOwogfTsKIAogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3Jl
OjpUZXh0Q2hlY2tpbmdSZXN1bHQ+IHsKLSAgICBzdGF0aWMgdm9pZCBlbmNvZGUoQXJndW1lbnRF
bmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6VGV4dENoZWNraW5nUmVzdWx0Jik7CisgICAgc3RhdGlj
IHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpUZXh0Q2hlY2tpbmdSZXN1bHQm
KTsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiwgV2ViQ29yZTo6VGV4
dENoZWNraW5nUmVzdWx0Jik7CiB9OwogICAgIAogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRD
b2RlcjxXZWJDb3JlOjpVUkw+IHsKLSAgICBzdGF0aWMgdm9pZCBlbmNvZGUoQXJndW1lbnRFbmNv
ZGVyJiwgY29uc3QgV2ViQ29yZTo6VVJMJik7CisgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29k
ZXImLCBjb25zdCBXZWJDb3JlOjpVUkwmKTsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQXJndW1l
bnREZWNvZGVyJiwgV2ViQ29yZTo6VVJMJik7CiB9OwogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1
bWVudENvZGVyPFdlYkNvcmU6OlVzZXJTdHlsZVNoZWV0PiB7Ci0gICAgc3RhdGljIHZvaWQgZW5j
b2RlKEFyZ3VtZW50RW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OlVzZXJTdHlsZVNoZWV0Jik7Cisg
ICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpVc2VyU3R5bGVT
aGVldCYpOwogICAgIHN0YXRpYyBib29sIGRlY29kZShBcmd1bWVudERlY29kZXImLCBXZWJDb3Jl
OjpVc2VyU3R5bGVTaGVldCYpOwogfTsKIAogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2Rl
cjxXZWJDb3JlOjpVc2VyU2NyaXB0PiB7Ci0gICAgc3RhdGljIHZvaWQgZW5jb2RlKEFyZ3VtZW50
RW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OlVzZXJTY3JpcHQmKTsKKyAgICBzdGF0aWMgdm9pZCBl
bmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OlVzZXJTY3JpcHQmKTsKICAgICBzdGF0aWMg
Ym9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiwgV2ViQ29yZTo6VXNlclNjcmlwdCYpOwogfTsK
IAogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpTY3JvbGxhYmxlQXJl
YVBhcmFtZXRlcnM+IHsKLSAgICBzdGF0aWMgdm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyJiwg
Y29uc3QgV2ViQ29yZTo6U2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzJik7CisgICAgc3RhdGljIHZv
aWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpTY3JvbGxhYmxlQXJlYVBhcmFtZXRl
cnMmKTsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiwgV2ViQ29yZTo6
U2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzJik7CiB9OwogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1
bWVudENvZGVyPFdlYkNvcmU6OkZpeGVkUG9zaXRpb25WaWV3cG9ydENvbnN0cmFpbnRzPiB7Ci0g
ICAgc3RhdGljIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkZp
eGVkUG9zaXRpb25WaWV3cG9ydENvbnN0cmFpbnRzJik7CisgICAgc3RhdGljIHZvaWQgZW5jb2Rl
KEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpGaXhlZFBvc2l0aW9uVmlld3BvcnRDb25zdHJhaW50
cyYpOwogICAgIHN0YXRpYyBib29sIGRlY29kZShBcmd1bWVudERlY29kZXImLCBXZWJDb3JlOjpG
aXhlZFBvc2l0aW9uVmlld3BvcnRDb25zdHJhaW50cyYpOwogfTsKIAogdGVtcGxhdGU8PiBzdHJ1
Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpTdGlja3lQb3NpdGlvblZpZXdwb3J0Q29uc3RyYWlu
dHM+IHsKLSAgICBzdGF0aWMgdm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyJiwgY29uc3QgV2Vi
Q29yZTo6U3RpY2t5UG9zaXRpb25WaWV3cG9ydENvbnN0cmFpbnRzJik7CisgICAgc3RhdGljIHZv
aWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpTdGlja3lQb3NpdGlvblZpZXdwb3J0
Q29uc3RyYWludHMmKTsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiwg
V2ViQ29yZTo6U3RpY2t5UG9zaXRpb25WaWV3cG9ydENvbnN0cmFpbnRzJik7CiB9OwogCiAjaWYg
IVVTRShDT09SRElOQVRFRF9HUkFQSElDUykKIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29k
ZXI8V2ViQ29yZTo6RmlsdGVyT3BlcmF0aW9ucz4gewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShB
cmd1bWVudEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpGaWx0ZXJPcGVyYXRpb25zJik7CisgICAg
c3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpGaWx0ZXJPcGVyYXRp
b25zJik7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYsIFdlYkNvcmU6
OkZpbHRlck9wZXJhdGlvbnMmKTsKIH07CiAgICAgCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVu
dENvZGVyPFdlYkNvcmU6OkZpbHRlck9wZXJhdGlvbj4gewotICAgIHN0YXRpYyB2b2lkIGVuY29k
ZShBcmd1bWVudEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpGaWx0ZXJPcGVyYXRpb24mKTsKKyAg
ICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkZpbHRlck9wZXJh
dGlvbiYpOwogfTsKIGJvb2wgZGVjb2RlRmlsdGVyT3BlcmF0aW9uKEFyZ3VtZW50RGVjb2RlciYs
IFJlZlB0cjxXZWJDb3JlOjpGaWx0ZXJPcGVyYXRpb24+Jik7CiAjZW5kaWYKIAogdGVtcGxhdGU8
PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpTZXNzaW9uSUQ+IHsKLSAgICBzdGF0aWMg
dm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6U2Vzc2lvbklEJik7
CisgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpTZXNzaW9u
SUQmKTsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiwgV2ViQ29yZTo6
U2Vzc2lvbklEJik7CiB9OwogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNv
cmU6OkJsb2JQYXJ0PiB7Ci0gICAgc3RhdGljIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYs
IGNvbnN0IFdlYkNvcmU6OkJsb2JQYXJ0Jik7CisgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29k
ZXImLCBjb25zdCBXZWJDb3JlOjpCbG9iUGFydCYpOwogICAgIHN0YXRpYyBib29sIGRlY29kZShB
cmd1bWVudERlY29kZXImLCBXZWJDb3JlOjpCbG9iUGFydCYpOwogfTsKIAogI2lmIEVOQUJMRShD
T05URU5UX0ZJTFRFUklORykKIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29y
ZTo6Q29udGVudEZpbHRlclVuYmxvY2tIYW5kbGVyPiB7Ci0gICAgc3RhdGljIHZvaWQgZW5jb2Rl
KEFyZ3VtZW50RW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkNvbnRlbnRGaWx0ZXJVbmJsb2NrSGFu
ZGxlciYpOworICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6
Q29udGVudEZpbHRlclVuYmxvY2tIYW5kbGVyJik7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKEFy
Z3VtZW50RGVjb2RlciYsIFdlYkNvcmU6OkNvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlciYpOwog
fTsKICNlbmRpZgogCiAjaWYgRU5BQkxFKE1FRElBX1NFU1NJT04pCiB0ZW1wbGF0ZTw+IHN0cnVj
dCBBcmd1bWVudENvZGVyPFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbk1ldGFkYXRhPiB7Ci0gICAgc3Rh
dGljIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhU2Vz
c2lvbk1ldGFkYXRhJik7CisgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBX
ZWJDb3JlOjpNZWRpYVNlc3Npb25NZXRhZGF0YSYpOwogICAgIHN0YXRpYyBib29sIGRlY29kZShB
cmd1bWVudERlY29kZXImLCBXZWJDb3JlOjpNZWRpYVNlc3Npb25NZXRhZGF0YSYpOwogfTsKICNl
bmRpZgogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlRleHRJbmRp
Y2F0b3JEYXRhPiB7Ci0gICAgc3RhdGljIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYsIGNv
bnN0IFdlYkNvcmU6OlRleHRJbmRpY2F0b3JEYXRhJik7CisgICAgc3RhdGljIHZvaWQgZW5jb2Rl
KEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGF0YSYpOwogICAgIHN0YXRp
YyBib29sIGRlY29kZShBcmd1bWVudERlY29kZXImLCBXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGF0
YSYpOwogfTsKIAogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpEaWN0
aW9uYXJ5UG9wdXBJbmZvPiB7Ci0gICAgc3RhdGljIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2Rl
ciYsIGNvbnN0IFdlYkNvcmU6OkRpY3Rpb25hcnlQb3B1cEluZm8mKTsKKyAgICBzdGF0aWMgdm9p
ZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkRpY3Rpb25hcnlQb3B1cEluZm8mKTsK
ICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiwgV2ViQ29yZTo6RGljdGlv
bmFyeVBvcHVwSW5mbyYpOwogfTsKIAogI2lmIEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19UQVJH
RVQpCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6Ok1lZGlhUGxheWJh
Y2tUYXJnZXRDb250ZXh0PiB7Ci0gICAgc3RhdGljIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2Rl
ciYsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhUGxheWJhY2tUYXJnZXRDb250ZXh0Jik7CisgICAgc3Rh
dGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpNZWRpYVBsYXliYWNrVGFy
Z2V0Q29udGV4dCYpOwogICAgIHN0YXRpYyBib29sIGRlY29kZShBcmd1bWVudERlY29kZXImLCBX
ZWJDb3JlOjpNZWRpYVBsYXliYWNrVGFyZ2V0Q29udGV4dCYpOwotICAgIHN0YXRpYyB2b2lkIGVu
Y29kZVBsYXRmb3JtRGF0YShBcmd1bWVudEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpNZWRpYVBs
YXliYWNrVGFyZ2V0Q29udGV4dCYpOworICAgIHN0YXRpYyB2b2lkIGVuY29kZVBsYXRmb3JtRGF0
YShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6TWVkaWFQbGF5YmFja1RhcmdldENvbnRleHQmKTsK
ICAgICBzdGF0aWMgYm9vbCBkZWNvZGVQbGF0Zm9ybURhdGEoQXJndW1lbnREZWNvZGVyJiwgV2Vi
Q29yZTo6TWVkaWFQbGF5YmFja1RhcmdldENvbnRleHQmKTsKIH07CiAjZW5kaWYKIAogdGVtcGxh
dGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpSZWNlbnRTZWFyY2g+IHsKLSAgICBz
dGF0aWMgdm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6UmVjZW50
U2VhcmNoJik7CisgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3Jl
OjpSZWNlbnRTZWFyY2gmKTsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVy
JiwgV2ViQ29yZTo6UmVjZW50U2VhcmNoJik7CiB9OwogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1
bWVudENvZGVyPFdlYkNvcmU6OkV4Y2VwdGlvbkRldGFpbHM+IHsKLSAgICBzdGF0aWMgdm9pZCBl
bmNvZGUoQXJndW1lbnRFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6RXhjZXB0aW9uRGV0YWlscyYp
OworICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6RXhjZXB0
aW9uRGV0YWlscyYpOwogICAgIHN0YXRpYyBib29sIGRlY29kZShBcmd1bWVudERlY29kZXImLCBX
ZWJDb3JlOjpFeGNlcHRpb25EZXRhaWxzJik7CiB9OwogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1
bWVudENvZGVyPFdlYkNvcmU6OlJlc291cmNlTG9hZFN0YXRpc3RpY3M+IHsKLSAgICBzdGF0aWMg
dm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VMb2Fk
U3RhdGlzdGljcyYpOworICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2Vi
Q29yZTo6UmVzb3VyY2VMb2FkU3RhdGlzdGljcyYpOwogICAgIHN0YXRpYyBib29sIGRlY29kZShB
cmd1bWVudERlY29kZXImLCBXZWJDb3JlOjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzJik7CiB9Owog
CiAjaWYgRU5BQkxFKEFQUExFX1BBWSkKIAogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2Rl
cjxXZWJDb3JlOjpQYXltZW50PiB7Ci0gICAgc3RhdGljIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5j
b2RlciYsIGNvbnN0IFdlYkNvcmU6OlBheW1lbnQmKTsKKyAgICBzdGF0aWMgdm9pZCBlbmNvZGUo
RW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OlBheW1lbnQmKTsKICAgICBzdGF0aWMgYm9vbCBkZWNv
ZGUoQXJndW1lbnREZWNvZGVyJiwgV2ViQ29yZTo6UGF5bWVudCYpOwogfTsKIAogdGVtcGxhdGU8
PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpQYXltZW50Q29udGFjdD4gewotICAgIHN0
YXRpYyB2b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpQYXltZW50
Q29udGFjdCYpOworICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29y
ZTo6UGF5bWVudENvbnRhY3QmKTsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNv
ZGVyJiwgV2ViQ29yZTo6UGF5bWVudENvbnRhY3QmKTsKIH07CiAKIHRlbXBsYXRlPD4gc3RydWN0
IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6UGF5bWVudE1lcmNoYW50U2Vzc2lvbj4gewotICAgIHN0
YXRpYyB2b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpQYXltZW50
TWVyY2hhbnRTZXNzaW9uJik7CisgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25z
dCBXZWJDb3JlOjpQYXltZW50TWVyY2hhbnRTZXNzaW9uJik7CiAgICAgc3RhdGljIGJvb2wgZGVj
b2RlKEFyZ3VtZW50RGVjb2RlciYsIFdlYkNvcmU6OlBheW1lbnRNZXJjaGFudFNlc3Npb24mKTsK
IH07CiAKIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6UGF5bWVudE1l
dGhvZD4gewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXImLCBjb25zdCBX
ZWJDb3JlOjpQYXltZW50TWV0aG9kJik7CisgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXIm
LCBjb25zdCBXZWJDb3JlOjpQYXltZW50TWV0aG9kJik7CiAgICAgc3RhdGljIGJvb2wgZGVjb2Rl
KEFyZ3VtZW50RGVjb2RlciYsIFdlYkNvcmU6OlBheW1lbnRNZXRob2QmKTsKIH07CiAKIHRlbXBs
YXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6UGF5bWVudFJlcXVlc3Q+IHsKLSAg
ICBzdGF0aWMgdm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6UGF5
bWVudFJlcXVlc3QmKTsKKyAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdl
YkNvcmU6OlBheW1lbnRSZXF1ZXN0Jik7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50
RGVjb2RlciYsIFdlYkNvcmU6OlBheW1lbnRSZXF1ZXN0Jik7CiB9OwogCiB0ZW1wbGF0ZTw+IHN0
cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlBheW1lbnRSZXF1ZXN0OjpDb250YWN0RmllbGRz
PiB7Ci0gICAgc3RhdGljIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYsIGNvbnN0IFdlYkNv
cmU6OlBheW1lbnRSZXF1ZXN0OjpDb250YWN0RmllbGRzJik7CisgICAgc3RhdGljIHZvaWQgZW5j
b2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpQYXltZW50UmVxdWVzdDo6Q29udGFjdEZpZWxk
cyYpOwogICAgIHN0YXRpYyBib29sIGRlY29kZShBcmd1bWVudERlY29kZXImLCBXZWJDb3JlOjpQ
YXltZW50UmVxdWVzdDo6Q29udGFjdEZpZWxkcyYpOwogfTsKIAogdGVtcGxhdGU8PiBzdHJ1Y3Qg
QXJndW1lbnRDb2RlcjxXZWJDb3JlOjpQYXltZW50UmVxdWVzdDo6TGluZUl0ZW0+IHsKLSAgICBz
dGF0aWMgdm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6UGF5bWVu
dFJlcXVlc3Q6OkxpbmVJdGVtJik7CisgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBj
b25zdCBXZWJDb3JlOjpQYXltZW50UmVxdWVzdDo6TGluZUl0ZW0mKTsKICAgICBzdGF0aWMgYm9v
bCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiwgV2ViQ29yZTo6UGF5bWVudFJlcXVlc3Q6OkxpbmVJ
dGVtJik7CiB9OwogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlBh
eW1lbnRSZXF1ZXN0OjpNZXJjaGFudENhcGFiaWxpdGllcz4gewotICAgIHN0YXRpYyB2b2lkIGVu
Y29kZShBcmd1bWVudEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpQYXltZW50UmVxdWVzdDo6TWVy
Y2hhbnRDYXBhYmlsaXRpZXMmKTsKKyAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNv
bnN0IFdlYkNvcmU6OlBheW1lbnRSZXF1ZXN0OjpNZXJjaGFudENhcGFiaWxpdGllcyYpOwogICAg
IHN0YXRpYyBib29sIGRlY29kZShBcmd1bWVudERlY29kZXImLCBXZWJDb3JlOjpQYXltZW50UmVx
dWVzdDo6TWVyY2hhbnRDYXBhYmlsaXRpZXMmKTsKIH07CiAKIHRlbXBsYXRlPD4gc3RydWN0IEFy
Z3VtZW50Q29kZXI8V2ViQ29yZTo6UGF5bWVudFJlcXVlc3Q6OlNoaXBwaW5nTWV0aG9kPiB7Ci0g
ICAgc3RhdGljIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OlBh
eW1lbnRSZXF1ZXN0OjpTaGlwcGluZ01ldGhvZCYpOworICAgIHN0YXRpYyB2b2lkIGVuY29kZShF
bmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6UGF5bWVudFJlcXVlc3Q6OlNoaXBwaW5nTWV0aG9kJik7
CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYsIFdlYkNvcmU6OlBheW1l
bnRSZXF1ZXN0OjpTaGlwcGluZ01ldGhvZCYpOwogfTsKIAogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJn
dW1lbnRDb2RlcjxXZWJDb3JlOjpQYXltZW50UmVxdWVzdDo6VG90YWxBbmRMaW5lSXRlbXM+IHsK
LSAgICBzdGF0aWMgdm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6
UGF5bWVudFJlcXVlc3Q6OlRvdGFsQW5kTGluZUl0ZW1zJik7CisgICAgc3RhdGljIHZvaWQgZW5j
b2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpQYXltZW50UmVxdWVzdDo6VG90YWxBbmRMaW5l
SXRlbXMmKTsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiwgV2ViQ29y
ZTo6UGF5bWVudFJlcXVlc3Q6OlRvdGFsQW5kTGluZUl0ZW1zJik7CiB9OwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViRXZlbnQuY3BwIGIvU291cmNlL1dlYktpdDIvU2hh
cmVkL1dlYkV2ZW50LmNwcAppbmRleCBhMzZjNDhlNDc2OTRhNTZlNTI4YWM2ZjdlYmZhOGZmOGIw
NDRkZjA0Li43YjQ0ZmZkOTA2OTY2ZmU0NDBmOTY0MmRlMGM0OWIzYThlM2UyNmQ3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViRXZlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9XZWJFdmVudC5jcHAKQEAgLTI3LDggKzI3LDggQEAKICNpbmNsdWRlICJXZWJF
dmVudC5oIgogCiAjaW5jbHVkZSAiQXJndW1lbnREZWNvZGVyLmgiCi0jaW5jbHVkZSAiQXJndW1l
bnRFbmNvZGVyLmgiCiAjaW5jbHVkZSAiQXJndW1lbnRzLmgiCisjaW5jbHVkZSAiRW5jb2Rlci5o
IgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIApAQCAtNDYsNyArNDYsNyBAQCBXZWJFdmVudDo6V2Vi
RXZlbnQoVHlwZSB0eXBlLCBNb2RpZmllcnMgbW9kaWZpZXJzLCBkb3VibGUgdGltZXN0YW1wKQog
ewogfQogCi12b2lkIFdlYkV2ZW50OjplbmNvZGUoSVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29k
ZXIpIGNvbnN0Cit2b2lkIFdlYkV2ZW50OjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBj
b25zdAogewogICAgIGVuY29kZXIgPDwgbV90eXBlOwogICAgIGVuY29kZXIgPDwgbV9tb2RpZmll
cnM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViRXZlbnQuaCBiL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9XZWJFdmVudC5oCmluZGV4IDJhOTlmZGE0ZTA1NWI1MDcyM2UyYzgw
MjJjYjk5YmE3M2Q0NTUxY2MuLmM2MGVjNGMwYzI4ZDg3NDY5ZDIzYTk5MjFmYjQ1YjMwMjU0YWRk
ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJFdmVudC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJFdmVudC5oCkBAIC0zOCw3ICszOCw3IEBACiAKIG5hbWVz
cGFjZSBJUEMgewogICAgIGNsYXNzIEFyZ3VtZW50RGVjb2RlcjsKLSAgICBjbGFzcyBBcmd1bWVu
dEVuY29kZXI7CisgICAgY2xhc3MgRW5jb2RlcjsKIH0KIAogI2lmIFVTRShBUFBLSVQpCkBAIC0x
MTEsNyArMTExLDcgQEAgcHJvdGVjdGVkOgogCiAgICAgV2ViRXZlbnQoVHlwZSwgTW9kaWZpZXJz
LCBkb3VibGUgdGltZXN0YW1wKTsKIAotICAgIHZvaWQgZW5jb2RlKElQQzo6QXJndW1lbnRFbmNv
ZGVyJikgY29uc3Q7CisgICAgdm9pZCBlbmNvZGUoSVBDOjpFbmNvZGVyJikgY29uc3Q7CiAgICAg
c3RhdGljIGJvb2wgZGVjb2RlKElQQzo6QXJndW1lbnREZWNvZGVyJiwgV2ViRXZlbnQmKTsKIAog
cHJpdmF0ZToKQEAgLTE1NCw3ICsxNTQsNyBAQCBwdWJsaWM6CiAgICAgZG91YmxlIGZvcmNlKCkg
Y29uc3QgeyByZXR1cm4gbV9mb3JjZTsgfQogICAgIFN5bnRoZXRpY0NsaWNrVHlwZSBzeW50aGV0
aWNDbGlja1R5cGUoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxTeW50aGV0aWNDbGlja1R5
cGU+KG1fc3ludGhldGljQ2xpY2tUeXBlKTsgfQogCi0gICAgdm9pZCBlbmNvZGUoSVBDOjpBcmd1
bWVudEVuY29kZXImKSBjb25zdDsKKyAgICB2b2lkIGVuY29kZShJUEM6OkVuY29kZXImKSBjb25z
dDsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoSVBDOjpBcmd1bWVudERlY29kZXImLCBXZWJNb3Vz
ZUV2ZW50Jik7CiAKIHByaXZhdGU6CkBAIC0yMTYsNyArMjE2LDcgQEAgcHVibGljOgogICAgIGNv
bnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgdW5hY2NlbGVyYXRlZFNjcm9sbGluZ0RlbHRhKCkgY29u
c3QgeyByZXR1cm4gbV91bmFjY2VsZXJhdGVkU2Nyb2xsaW5nRGVsdGE7IH0KICNlbmRpZgogCi0g
ICAgdm9pZCBlbmNvZGUoSVBDOjpBcmd1bWVudEVuY29kZXImKSBjb25zdDsKKyAgICB2b2lkIGVu
Y29kZShJUEM6OkVuY29kZXImKSBjb25zdDsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoSVBDOjpB
cmd1bWVudERlY29kZXImLCBXZWJXaGVlbEV2ZW50Jik7CiAKIHByaXZhdGU6CkBAIC0yNjksNyAr
MjY5LDcgQEAgcHVibGljOgogICAgIGJvb2wgaXNLZXlwYWQoKSBjb25zdCB7IHJldHVybiBtX2lz
S2V5cGFkOyB9CiAgICAgYm9vbCBpc1N5c3RlbUtleSgpIGNvbnN0IHsgcmV0dXJuIG1faXNTeXN0
ZW1LZXk7IH0KIAotICAgIHZvaWQgZW5jb2RlKElQQzo6QXJndW1lbnRFbmNvZGVyJikgY29uc3Q7
CisgICAgdm9pZCBlbmNvZGUoSVBDOjpFbmNvZGVyJikgY29uc3Q7CiAgICAgc3RhdGljIGJvb2wg
ZGVjb2RlKElQQzo6QXJndW1lbnREZWNvZGVyJiwgV2ViS2V5Ym9hcmRFdmVudCYpOwogCiAgICAg
c3RhdGljIGJvb2wgaXNLZXlib2FyZEV2ZW50VHlwZShUeXBlKTsKQEAgLTMyNCw3ICszMjQsNyBA
QCBwdWJsaWM6CiAgICAgZG91YmxlIGZvcmNlKCkgY29uc3QgeyByZXR1cm4gbV9mb3JjZTsgfQog
I2VuZGlmCiAKLSAgICB2b2lkIGVuY29kZShJUEM6OkFyZ3VtZW50RW5jb2RlciYpIGNvbnN0Owor
ICAgIHZvaWQgZW5jb2RlKElQQzo6RW5jb2RlciYpIGNvbnN0OwogICAgIHN0YXRpYyBib29sIGRl
Y29kZShJUEM6OkFyZ3VtZW50RGVjb2RlciYsIFdlYlBsYXRmb3JtVG91Y2hQb2ludCYpOwogCiBw
cml2YXRlOgpAQCAtMzY3LDcgKzM2Nyw3IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgYWxsVG91Y2hQ
b2ludHNBcmVSZWxlYXNlZCgpIGNvbnN0OwogCi0gICAgdm9pZCBlbmNvZGUoSVBDOjpBcmd1bWVu
dEVuY29kZXImKSBjb25zdDsKKyAgICB2b2lkIGVuY29kZShJUEM6OkVuY29kZXImKSBjb25zdDsK
ICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoSVBDOjpBcmd1bWVudERlY29kZXImLCBXZWJUb3VjaEV2
ZW50Jik7CiAgICAgCiBwcml2YXRlOgpAQCAtNDExLDcgKzQxMSw3IEBAIHB1YmxpYzoKIAogICAg
IHZvaWQgc2V0U3RhdGUoVG91Y2hQb2ludFN0YXRlIHN0YXRlKSB7IG1fc3RhdGUgPSBzdGF0ZTsg
fQogCi0gICAgdm9pZCBlbmNvZGUoSVBDOjpBcmd1bWVudEVuY29kZXImKSBjb25zdDsKKyAgICB2
b2lkIGVuY29kZShJUEM6OkVuY29kZXImKSBjb25zdDsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUo
SVBDOjpBcmd1bWVudERlY29kZXImLCBXZWJQbGF0Zm9ybVRvdWNoUG9pbnQmKTsKIAogcHJpdmF0
ZToKQEAgLTQzNCw3ICs0MzQsNyBAQCBwdWJsaWM6CiAKICAgICBib29sIGFsbFRvdWNoUG9pbnRz
QXJlUmVsZWFzZWQoKSBjb25zdDsKIAotICAgIHZvaWQgZW5jb2RlKElQQzo6QXJndW1lbnRFbmNv
ZGVyJikgY29uc3Q7CisgICAgdm9pZCBlbmNvZGUoSVBDOjpFbmNvZGVyJikgY29uc3Q7CiAgICAg
c3RhdGljIGJvb2wgZGVjb2RlKElQQzo6QXJndW1lbnREZWNvZGVyJiwgV2ViVG91Y2hFdmVudCYp
OwogICAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViR2Vv
bG9jYXRpb25Qb3NpdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViR2VvbG9jYXRp
b25Qb3NpdGlvbi5jcHAKaW5kZXggMTRiMDM0NWNmZDRlNDcxZjJmMzBmYmE5Y2FjMDJlNDVmZjRl
NzNhMS4uY2Q5OWNjMTZlNTMyODdhY2MzYmVlYzI2MWNjY2E4OTJkOTAxMzFlOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkdlb2xvY2F0aW9uUG9zaXRpb24uY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJHZW9sb2NhdGlvblBvc2l0aW9uLmNwcApAQCAtMjcs
NyArMjcsNiBAQAogI2luY2x1ZGUgIldlYkdlb2xvY2F0aW9uUG9zaXRpb24uaCIKIAogI2luY2x1
ZGUgIkFyZ3VtZW50Q29kZXJzLmgiCi0jaW5jbHVkZSAiQXJndW1lbnRzLmgiCiAKIG5hbWVzcGFj
ZSBXZWJLaXQgewogCkBAIC01MSw3ICs1MCw3IEBAIFdlYkdlb2xvY2F0aW9uUG9zaXRpb246On5X
ZWJHZW9sb2NhdGlvblBvc2l0aW9uKCkKIHsKIH0KIAotdm9pZCBXZWJHZW9sb2NhdGlvblBvc2l0
aW9uOjpEYXRhOjplbmNvZGUoSVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit2
b2lkIFdlYkdlb2xvY2F0aW9uUG9zaXRpb246OkRhdGE6OmVuY29kZShJUEM6OkVuY29kZXImIGVu
Y29kZXIpIGNvbnN0CiB7CiAgICAgSVBDOjpTaW1wbGVBcmd1bWVudENvZGVyPFdlYkdlb2xvY2F0
aW9uUG9zaXRpb246OkRhdGE+OjplbmNvZGUoZW5jb2RlciwgKnRoaXMpOwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkdlb2xvY2F0aW9uUG9zaXRpb24uaCBiL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9XZWJHZW9sb2NhdGlvblBvc2l0aW9uLmgKaW5kZXggMzExMDVmYjAw
NGVmYzY5MzQ3MzhmZTJhZjE4NDMwZGQzODYyMzc5Ni4uNDNjMTJjYjMxMjRmODQ0ZWUxNWZhODVi
YjY3NDhmZTkzNTY4MDY0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkdl
b2xvY2F0aW9uUG9zaXRpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViR2VvbG9j
YXRpb25Qb3NpdGlvbi5oCkBAIC0yNywxNiArMjcsMTkgQEAKICNkZWZpbmUgV2ViR2VvbG9jYXRp
b25Qb3NpdGlvbl9oCiAKICNpbmNsdWRlICJBUElPYmplY3QuaCIKLSNpbmNsdWRlICJBcmd1bWVu
dEVuY29kZXIuaCIKLSNpbmNsdWRlICJBcmd1bWVudERlY29kZXIuaCIKICNpbmNsdWRlIDx3dGYv
UGFzc1JlZlB0ci5oPgogCituYW1lc3BhY2UgSVBDIHsKK2NsYXNzIEFyZ3VtZW50RGVjb2RlcjsK
K2NsYXNzIEVuY29kZXI7Cit9CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBXZWJHZW9s
b2NhdGlvblBvc2l0aW9uIDogcHVibGljIEFQSTo6T2JqZWN0SW1wbDxBUEk6Ok9iamVjdDo6VHlw
ZTo6R2VvbG9jYXRpb25Qb3NpdGlvbj4gewogcHVibGljOgogICAgIHN0cnVjdCBEYXRhIHsKLSAg
ICAgICAgdm9pZCBlbmNvZGUoSVBDOjpBcmd1bWVudEVuY29kZXImKSBjb25zdDsKKyAgICAgICAg
dm9pZCBlbmNvZGUoSVBDOjpFbmNvZGVyJikgY29uc3Q7CiAgICAgICAgIHN0YXRpYyBib29sIGRl
Y29kZShJUEM6OkFyZ3VtZW50RGVjb2RlciYsIERhdGEmKTsKIAogICAgICAgICBkb3VibGUgdGlt
ZXN0YW1wOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkhpdFRlc3RSZXN1
bHREYXRhLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJIaXRUZXN0UmVzdWx0RGF0YS5j
cHAKaW5kZXggNmI1ODVjYThiNDMyNmU0NTYxNTkxZjkzM2VlZjNkOGU0MzIwMTI2NS4uYTVkMmJi
ZjZjZTRiYTgzZmJkZjRhODMxNDQ5YzE4NjJjZDQ5OTI1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL1dlYkhpdFRlc3RSZXN1bHREYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvV2ViSGl0VGVzdFJlc3VsdERhdGEuY3BwCkBAIC05Miw3ICs5Miw3IEBAIFdlYkhp
dFRlc3RSZXN1bHREYXRhOjp+V2ViSGl0VGVzdFJlc3VsdERhdGEoKQogewogfQogCi12b2lkIFdl
YkhpdFRlc3RSZXN1bHREYXRhOjplbmNvZGUoSVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIp
IGNvbnN0Cit2b2lkIFdlYkhpdFRlc3RSZXN1bHREYXRhOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBl
bmNvZGVyKSBjb25zdAogewogICAgIGVuY29kZXIgPDwgYWJzb2x1dGVJbWFnZVVSTDsKICAgICBl
bmNvZGVyIDw8IGFic29sdXRlUERGVVJMOwpAQCAtMTcxLDcgKzE3MSw3IEBAIGJvb2wgV2ViSGl0
VGVzdFJlc3VsdERhdGE6OmRlY29kZShJUEM6OkFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgV2Vi
SGl0VGVzdFJlc3VsCiB9CiAKICNpZiAhUExBVEZPUk0oTUFDKQotdm9pZCBXZWJIaXRUZXN0UmVz
dWx0RGF0YTo6cGxhdGZvcm1FbmNvZGUoSVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNv
bnN0Cit2b2lkIFdlYkhpdFRlc3RSZXN1bHREYXRhOjpwbGF0Zm9ybUVuY29kZShJUEM6OkVuY29k
ZXImIGVuY29kZXIpIGNvbnN0CiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9XZWJIaXRUZXN0UmVzdWx0RGF0YS5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkhp
dFRlc3RSZXN1bHREYXRhLmgKaW5kZXggMTIyY2JjZjhmNzRmNmNjNWJkN2Y1NTcyODkyZTg5ZGQ2
OWRlM2EyMy4uYjEyYTRkMmNhZTUxYmIzMjY1Nzk5MDYxZGU4NzI3YzQyODQ1NTVjZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkhpdFRlc3RSZXN1bHREYXRhLmgKKysrIGIv
U291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkhpdFRlc3RSZXN1bHREYXRhLmgKQEAgLTM0LDcgKzM0
LDcgQEAgT0JKQ19DTEFTUyBEREFjdGlvbkNvbnRleHQ7CiAKIG5hbWVzcGFjZSBJUEMgewogY2xh
c3MgQXJndW1lbnREZWNvZGVyOwotY2xhc3MgQXJndW1lbnRFbmNvZGVyOworY2xhc3MgRW5jb2Rl
cjsKIH0KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNzksOCArNzksOCBAQCBzdHJ1Y3QgV2Vi
SGl0VGVzdFJlc3VsdERhdGEgewogICAgIFdlYkhpdFRlc3RSZXN1bHREYXRhKGNvbnN0IFdlYkNv
cmU6OkhpdFRlc3RSZXN1bHQmLCBib29sIGluY2x1ZGVJbWFnZSk7CiAgICAgfldlYkhpdFRlc3RS
ZXN1bHREYXRhKCk7CiAKLSAgICB2b2lkIGVuY29kZShJUEM6OkFyZ3VtZW50RW5jb2RlciYpIGNv
bnN0OwotICAgIHZvaWQgcGxhdGZvcm1FbmNvZGUoSVBDOjpBcmd1bWVudEVuY29kZXImKSBjb25z
dDsKKyAgICB2b2lkIGVuY29kZShJUEM6OkVuY29kZXImKSBjb25zdDsKKyAgICB2b2lkIHBsYXRm
b3JtRW5jb2RlKElQQzo6RW5jb2RlciYpIGNvbnN0OwogICAgIHN0YXRpYyBib29sIGRlY29kZShJ
UEM6OkFyZ3VtZW50RGVjb2RlciYsIFdlYkhpdFRlc3RSZXN1bHREYXRhJik7CiAgICAgc3RhdGlj
IGJvb2wgcGxhdGZvcm1EZWNvZGUoSVBDOjpBcmd1bWVudERlY29kZXImLCBXZWJIaXRUZXN0UmVz
dWx0RGF0YSYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViS2V5Ym9h
cmRFdmVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViS2V5Ym9hcmRFdmVudC5jcHAK
aW5kZXggNDhiMjIyNDM0YzQxYjE4M2UzZjFhMTBjOTI5MTZmNjY1M2UyNTFlNi4uNTE2MTRiNTI4
OWZlMTNjYjRhNDk3Njg5Y2QzY2RkOTJiZjllYmQ0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvU2hhcmVkL1dlYktleWJvYXJkRXZlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9XZWJLZXlib2FyZEV2ZW50LmNwcApAQCAtOTYsNyArOTYsNyBAQCBXZWJLZXlib2FyZEV2ZW50
Ojp+V2ViS2V5Ym9hcmRFdmVudCgpCiB7CiB9CiAKLXZvaWQgV2ViS2V5Ym9hcmRFdmVudDo6ZW5j
b2RlKElQQzo6QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAordm9pZCBXZWJLZXlib2Fy
ZEV2ZW50OjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewogICAgIFdlYkV2
ZW50OjplbmNvZGUoZW5jb2Rlcik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9XZWJNb3VzZUV2ZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJNb3VzZUV2ZW50
LmNwcAppbmRleCAwZTBkMTAzZjE5ZGVjYWE2OTljODQ4NTI5MzVlM2NiODEyMGExMDQxLi44ZmMx
ZTU5YTc0NzdiOTc2OWUyMjhmYzUxZTQ0YmNhMzBhYjE3ODAxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvV2ViTW91c2VFdmVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hh
cmVkL1dlYk1vdXNlRXZlbnQuY3BwCkBAIC03MCw3ICs3MCw3IEBAIFdlYk1vdXNlRXZlbnQ6Oldl
Yk1vdXNlRXZlbnQoVHlwZSB0eXBlLCBCdXR0b24gYnV0dG9uLCBjb25zdCBJbnRQb2ludCYgcG9z
aXRpb24sCiAgICAgQVNTRVJUKGlzTW91c2VFdmVudFR5cGUodHlwZSkpOwogfQogCi12b2lkIFdl
Yk1vdXNlRXZlbnQ6OmVuY29kZShJUEM6OkFyZ3VtZW50RW5jb2RlciYgZW5jb2RlcikgY29uc3QK
K3ZvaWQgV2ViTW91c2VFdmVudDo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QK
IHsKICAgICBXZWJFdmVudDo6ZW5jb2RlKGVuY29kZXIpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvV2ViTmF2aWdhdGlvbkRhdGFTdG9yZS5oIGIvU291cmNlL1dlYktpdDIv
U2hhcmVkL1dlYk5hdmlnYXRpb25EYXRhU3RvcmUuaAppbmRleCBhMzMxMDk1YWEzYzVlM2NmNTFl
YWVkMmQ2ZmY2MzU5YjU5NTk4NTlmLi4zMzc2OGYxYjhmYzZlZTFkZTA2N2VhNTI3MTU4MzQ3NzQ0
YjE3ZWE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViTmF2aWdhdGlvbkRh
dGFTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJOYXZpZ2F0aW9uRGF0YVN0
b3JlLmgKQEAgLTI3LDcgKzI3LDcgQEAKICNkZWZpbmUgV2ViTmF2aWdhdGlvbkRhdGFTdG9yZV9o
CiAKICNpbmNsdWRlICJBcmd1bWVudERlY29kZXIuaCIKLSNpbmNsdWRlICJBcmd1bWVudEVuY29k
ZXIuaCIKKyNpbmNsdWRlICJFbmNvZGVyLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29k
ZXJzLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlcXVlc3QuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL1Jlc291cmNlUmVzcG9uc2UuaD4KQEAgLTM2LDcgKzM2LDcgQEAKIG5hbWVzcGFjZSBX
ZWJLaXQgewogCiBzdHJ1Y3QgV2ViTmF2aWdhdGlvbkRhdGFTdG9yZSB7Ci0gICAgdm9pZCBlbmNv
ZGUoSVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0CisgICAgdm9pZCBlbmNvZGUo
SVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIHsKICAgICAgICAgZW5jb2RlciA8PCB1
cmw7CiAgICAgICAgIGVuY29kZXIgPDwgdGl0bGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5jcHAKaW5kZXggMTdmNTY0MTljYTJjMmU2
NTBjNTEwZjc0OGExNmIzMzFhOTYyYTc2MS4uOTIyOTlmMjU3NWNiMGUyYjAyZjcyMTcyODJlMGU0
MTRiMzkyYjkzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBhZ2VDcmVh
dGlvblBhcmFtZXRlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQYWdlQ3Jl
YXRpb25QYXJhbWV0ZXJzLmNwcApAQCAtMzAsNyArMzAsNyBAQAogCiBuYW1lc3BhY2UgV2ViS2l0
IHsKIAotdm9pZCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUoSVBDOjpBcmd1bWVu
dEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit2b2lkIFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM6
OmVuY29kZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB7CiAgICAgZW5jb2RlciA8PCB2
aWV3U2l6ZTsKICAgICBlbmNvZGVyIDw8IHZpZXdTdGF0ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oCmluZGV4IGQzMzZkYTg2YWEwZGY2
ZmRhM2JlMWJhZDMzNTJkY2RmZDMzN2EwMzkuLmQ3NDM4OGYxNWUyYWIwYWRkMjliNWZhODBiYTU3
ODM3NmI5ZWFiMDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQYWdlQ3Jl
YXRpb25QYXJhbWV0ZXJzLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBhZ2VDcmVh
dGlvblBhcmFtZXRlcnMuaApAQCAtNDgsMTMgKzQ4LDEzIEBACiAKIG5hbWVzcGFjZSBJUEMgewog
ICAgIGNsYXNzIEFyZ3VtZW50RGVjb2RlcjsKLSAgICBjbGFzcyBBcmd1bWVudEVuY29kZXI7Cisg
ICAgY2xhc3MgRW5jb2RlcjsKIH0KIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKIHN0cnVjdCBXZWJQ
YWdlQ3JlYXRpb25QYXJhbWV0ZXJzIHsKLSAgICB2b2lkIGVuY29kZShJUEM6OkFyZ3VtZW50RW5j
b2RlciYpIGNvbnN0OworICAgIHZvaWQgZW5jb2RlKElQQzo6RW5jb2RlciYpIGNvbnN0OwogICAg
IHN0YXRpYyBib29sIGRlY29kZShJUEM6OkFyZ3VtZW50RGVjb2RlciYsIFdlYlBhZ2VDcmVhdGlv
blBhcmFtZXRlcnMmKTsKIAogICAgIFdlYkNvcmU6OkludFNpemUgdmlld1NpemU7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUGFnZUdyb3VwRGF0YS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvV2ViUGFnZUdyb3VwRGF0YS5jcHAKaW5kZXggOWZjMWUzZTFiZmJhODFm
NzNhZDBkOWI1ZDVmMzZjNjIwZDcxMTUwZC4uYTMwNTc4MTAyMDhhZTNhZGVjNjc0MGQ1ODgyODcz
ZmJmNzUzNDJjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBhZ2VHcm91
cERhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQYWdlR3JvdXBEYXRhLmNw
cApAQCAtMzAsNyArMzAsNyBAQAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotdm9pZCBXZWJQYWdl
R3JvdXBEYXRhOjplbmNvZGUoSVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit2
b2lkIFdlYlBhZ2VHcm91cERhdGE6OmVuY29kZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0
CiB7CiAgICAgZW5jb2RlciA8PCBpZGVudGlmaWVyOwogICAgIGVuY29kZXIgPDwgcGFnZUdyb3Vw
SUQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUGFnZUdyb3VwRGF0YS5o
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBhZ2VHcm91cERhdGEuaAppbmRleCBmZmRhNWJh
NzE5MzcyM2E3NmM1ODFiOGFhZTY0ZmIwZWE5NTkyNTY5Li5hYmY2ZmQwZDI2YjhmMmVhYWMyZjQ0
OGJiOGQ3MDJkMTg2MjE4YjhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2Vi
UGFnZUdyb3VwRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQYWdlR3JvdXBE
YXRhLmgKQEAgLTMwLDEzICszMCwxMyBAQAogCiBuYW1lc3BhY2UgSVBDIHsKIGNsYXNzIEFyZ3Vt
ZW50RGVjb2RlcjsKLWNsYXNzIEFyZ3VtZW50RW5jb2RlcjsKK2NsYXNzIEVuY29kZXI7CiB9CiAK
IG5hbWVzcGFjZSBXZWJLaXQgewogCiBzdHJ1Y3QgV2ViUGFnZUdyb3VwRGF0YSB7Ci0gICAgdm9p
ZCBlbmNvZGUoSVBDOjpBcmd1bWVudEVuY29kZXImKSBjb25zdDsKKyAgICB2b2lkIGVuY29kZShJ
UEM6OkVuY29kZXImKSBjb25zdDsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoSVBDOjpBcmd1bWVu
dERlY29kZXImLCBXZWJQYWdlR3JvdXBEYXRhJik7CiAKICAgICBTdHJpbmcgaWRlbnRpZmllcjsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQbGF0Zm9ybVRvdWNoUG9pbnQu
Y3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBsYXRmb3JtVG91Y2hQb2ludC5jcHAKaW5k
ZXggNmViZjRmNTNjNjNkM2RkYjg3ODY1MDAwZTg1NWYwMTg0N2QyMmMxYi4uMDU5NWUzNjA1NjU0
NzNjOGIyNDlkODQyOTkzODJmY2I1ODIzNTY5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
U2hhcmVkL1dlYlBsYXRmb3JtVG91Y2hQb2ludC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hh
cmVkL1dlYlBsYXRmb3JtVG91Y2hQb2ludC5jcHAKQEAgLTU3LDcgKzU3LDcgQEAgV2ViUGxhdGZv
cm1Ub3VjaFBvaW50OjpXZWJQbGF0Zm9ybVRvdWNoUG9pbnQodW5zaWduZWQgaWQsIFRvdWNoUG9p
bnRTdGF0ZSBzdGF0ZSwKIHsKIH0KIAotdm9pZCBXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6OmVuY29k
ZShJUEM6OkFyZ3VtZW50RW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3ZvaWQgV2ViUGxhdGZvcm1U
b3VjaFBvaW50OjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewogICAgIGVu
Y29kZXIgPDwgbV9pZDsKICAgICBlbmNvZGVyIDw8IG1fc3RhdGU7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvV2ViUG9wdXBJdGVtLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9XZWJQb3B1cEl0ZW0uY3BwCmluZGV4IDIyYzEzYzVlOGQxOTk4YjBkMzQxOWYzNmQwMjU4OGRj
MTg4YjlmOWMuLjZiM2I1MmE5ODg5YmQ3MTZhZmZiZDk3NGRhZTE4MjNjOTM1ZWJjOWMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQb3B1cEl0ZW0uY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9XZWJQb3B1cEl0ZW0uY3BwCkBAIC02Niw3ICs2Niw3IEBAIFdlYlBv
cHVwSXRlbTo6V2ViUG9wdXBJdGVtKFR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBUZXh0
RGlyZWN0aW9uIHRleHREaXJlCiB7CiB9CiAKLXZvaWQgV2ViUG9wdXBJdGVtOjplbmNvZGUoSVBD
OjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit2b2lkIFdlYlBvcHVwSXRlbTo6ZW5j
b2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKIHsKICAgICBlbmNvZGVyLmVuY29kZUVu
dW0obV90eXBlKTsKICAgICBlbmNvZGVyIDw8IG1fdGV4dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9XZWJQb3B1cEl0ZW0uaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQ
b3B1cEl0ZW0uaAppbmRleCBjMTBmNzZhM2RmNDQyMTc4NWQwNjAwMTlmMmY1M2Y5NDc3M2ZmMzc2
Li5iMmZjZjdhYWI5NWU1NTQ5NDcyMDY0NjlmMmU2YzA0YjQ5YjI4ZmUzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUG9wdXBJdGVtLmgKKysrIGIvU291cmNlL1dlYktpdDIv
U2hhcmVkL1dlYlBvcHVwSXRlbS5oCkBAIC0zMSw3ICszMSw3IEBACiAKIG5hbWVzcGFjZSBJUEMg
ewogICAgIGNsYXNzIEFyZ3VtZW50RGVjb2RlcjsKLSAgICBjbGFzcyBBcmd1bWVudEVuY29kZXI7
CisgICAgY2xhc3MgRW5jb2RlcjsKIH0KIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC00Niw3ICs0
Niw3IEBAIHN0cnVjdCBXZWJQb3B1cEl0ZW0gewogICAgIFdlYlBvcHVwSXRlbShUeXBlKTsKICAg
ICBXZWJQb3B1cEl0ZW0oVHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBXZWJDb3JlOjpUZXh0RGly
ZWN0aW9uLCBib29sIGhhc1RleHREaXJlY3Rpb25PdmVycmlkZSwgY29uc3QgU3RyaW5nJiB0b29s
VGlwLCBjb25zdCBTdHJpbmcmIGFjY2Vzc2liaWxpdHlUZXh0LCBib29sIGlzRW5hYmxlZCwgYm9v
bCBpc0xhYmVsLCBib29sIGlzU2VsZWN0ZWQpOwogCi0gICAgdm9pZCBlbmNvZGUoSVBDOjpBcmd1
bWVudEVuY29kZXImKSBjb25zdDsKKyAgICB2b2lkIGVuY29kZShJUEM6OkVuY29kZXImKSBjb25z
dDsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoSVBDOjpBcmd1bWVudERlY29kZXImLCBXZWJQb3B1
cEl0ZW0mKTsKIAogICAgIFR5cGUgbV90eXBlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
U2hhcmVkL1dlYlByZWZlcmVuY2VzU3RvcmUuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dl
YlByZWZlcmVuY2VzU3RvcmUuY3BwCmluZGV4IGNlNTRkMmVkMTI4YTBkZTk3OTdhYjQxNmQ3Y2I2
ZmE4NjdlMWY3ZWMuLjMwYjY2ZDgzYjcwNzc3OTliMjJjYzc0ZWRhNzNhMWM4NTZjODdkNDIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcmVmZXJlbmNlc1N0b3JlLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5jZXNTdG9yZS5jcHAKQEAgLTQ1
LDcgKzQ1LDcgQEAgc3RhdGljIEJvb2xPdmVycmlkZXNNYXAmIGJvb2xUZXN0UnVubmVyT3ZlcnJp
ZGVzTWFwKCkKICAgICByZXR1cm4gbWFwOwogfQogCi12b2lkIFdlYlByZWZlcmVuY2VzU3RvcmU6
OlZhbHVlOjplbmNvZGUoSVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit2b2lk
IFdlYlByZWZlcmVuY2VzU3RvcmU6OlZhbHVlOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVy
KSBjb25zdAogewogICAgIGVuY29kZXIuZW5jb2RlRW51bShtX3R5cGUpOwogICAgIApAQCAtMTE1
LDcgKzExNSw3IEBAIFdlYlByZWZlcmVuY2VzU3RvcmU6OldlYlByZWZlcmVuY2VzU3RvcmUoKQog
ewogfQogCi12b2lkIFdlYlByZWZlcmVuY2VzU3RvcmU6OmVuY29kZShJUEM6OkFyZ3VtZW50RW5j
b2RlciYgZW5jb2RlcikgY29uc3QKK3ZvaWQgV2ViUHJlZmVyZW5jZXNTdG9yZTo6ZW5jb2RlKElQ
Qzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKIHsKICAgICBlbmNvZGVyIDw8IG1fdmFsdWVzOwog
ICAgIGVuY29kZXIgPDwgbV9vdmVycmlkZW5EZWZhdWx0czsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9XZWJQcmVmZXJlbmNlc1N0b3JlLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvV2ViUHJlZmVyZW5jZXNTdG9yZS5oCmluZGV4IDhiNDZlNzE0ODhhOGJiMTNmM2UxNDM4MzUy
YWU2ZjVjYTQ3OGI4NjQuLjIxMTM1ZDVlNTYyYTBmNTE5MmNhZjM1NjJmZjNmNzExMTBhNGNmMTUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcmVmZXJlbmNlc1N0b3JlLmgK
KysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByZWZlcmVuY2VzU3RvcmUuaApAQCAtMjcs
NyArMjcsNyBAQAogI2RlZmluZSBXZWJQcmVmZXJlbmNlc1N0b3JlX2gKIAogI2luY2x1ZGUgIkFy
Z3VtZW50RGVjb2Rlci5oIgotI2luY2x1ZGUgIkFyZ3VtZW50RW5jb2Rlci5oIgorI2luY2x1ZGUg
IkVuY29kZXIuaCIKICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0
L1N0cmluZ0hhc2guaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KQEAgLTM3LDcg
KzM3LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiBzdHJ1Y3QgV2ViUHJlZmVyZW5jZXNTdG9yZSB7
CiAgICAgV2ViUHJlZmVyZW5jZXNTdG9yZSgpOwogCi0gICAgdm9pZCBlbmNvZGUoSVBDOjpBcmd1
bWVudEVuY29kZXImKSBjb25zdDsKKyAgICB2b2lkIGVuY29kZShJUEM6OkVuY29kZXImKSBjb25z
dDsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoSVBDOjpBcmd1bWVudERlY29kZXImLCBXZWJQcmVm
ZXJlbmNlc1N0b3JlJik7CiAKICAgICAvLyBOT1RFOiBUaGUgZ2V0dGVycyBpbiB0aGlzIGNsYXNz
IGhhdmUgbm9uLXN0YW5kYXJkIG5hbWVzIHRvIGFpZCBpbiB0aGUgdXNlIG9mIHRoZSBwcmVmZXJl
bmNlIG1hY3Jvcy4KQEAgLTcyLDcgKzcyLDcgQEAgc3RydWN0IFdlYlByZWZlcmVuY2VzU3RvcmUg
ewogICAgICAgICAgICAgRG91YmxlLAogICAgICAgICB9OwogCi0gICAgICAgIHZvaWQgZW5jb2Rl
KElQQzo6QXJndW1lbnRFbmNvZGVyJikgY29uc3Q7CisgICAgICAgIHZvaWQgZW5jb2RlKElQQzo6
RW5jb2RlciYpIGNvbnN0OwogICAgICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoSVBDOjpBcmd1bWVu
dERlY29kZXImLCBWYWx1ZSYpOwogCiAgICAgICAgIGV4cGxpY2l0IFZhbHVlKCkgOiBtX3R5cGUo
VHlwZTo6Tm9uZSkgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKaW5kZXggMWEyYjBkNTcyNGMyYmZlMTJlNTYwYTcy
MGViYjNhNWU1MDAxZDA0ZS4uNTU5NDE2NjFhMmQ4ZDFjZmEzM2VmMzE1MGYzMDJmNjhmYmUxMDM0
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzLmNwcApAQCAtNTYsNyArNTYsNyBAQCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzOjp+V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycygpCiB7CiB9CiAKLXZvaWQgV2Vi
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlKElQQzo6QXJndW1lbnRFbmNvZGVyJiBl
bmNvZGVyKSBjb25zdAordm9pZCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUo
SVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewogICAgIGVuY29kZXIgPDwgaW5qZWN0ZWRC
dW5kbGVQYXRoOwogICAgIGVuY29kZXIgPDwgaW5qZWN0ZWRCdW5kbGVQYXRoRXh0ZW5zaW9uSGFu
ZGxlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzLmgKaW5kZXggYzlhYTJjOTg1ZjQ3MmZmYmUwZGNhZmJmZGJlMzcyOTBhMzgyZmZm
Ni4uOTk5ZDEzNDdiNTE2ZWEzYmYzMTNkYTk2ZDY5NWNmMThhYTcyNDAzZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCkBA
IC01MSw3ICs1MSw3IEBAIGNsYXNzIERhdGE7CiAKIG5hbWVzcGFjZSBJUEMgewogY2xhc3MgQXJn
dW1lbnREZWNvZGVyOwotY2xhc3MgQXJndW1lbnRFbmNvZGVyOworY2xhc3MgRW5jb2RlcjsKIH0K
IAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC02MCw3ICs2MCw3IEBAIHN0cnVjdCBXZWJQcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzIHsKICAgICBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzKCk7
CiAgICAgfldlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMoKTsKIAotICAgIHZvaWQgZW5jb2Rl
KElQQzo6QXJndW1lbnRFbmNvZGVyJikgY29uc3Q7CisgICAgdm9pZCBlbmNvZGUoSVBDOjpFbmNv
ZGVyJikgY29uc3Q7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKElQQzo6QXJndW1lbnREZWNvZGVy
JiwgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYpOwogCiAgICAgU3RyaW5nIGluamVjdGVk
QnVuZGxlUGF0aDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJUb3VjaEV2
ZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJUb3VjaEV2ZW50LmNwcAppbmRleCA0
MDIzYTE4MTVjNDE5NmE2MDIzMjkxZjEzODg1M2MyMjdjYjQ5YWY1Li4xNTYxODE0OTM2NjNjMDYy
YTNkZmQ3NzZmY2JkYzE4NDMzOTFiOWZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvV2ViVG91Y2hFdmVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlRvdWNo
RXZlbnQuY3BwCkBAIC00MCw3ICs0MCw3IEBAIFdlYlRvdWNoRXZlbnQ6OldlYlRvdWNoRXZlbnQo
V2ViRXZlbnQ6OlR5cGUgdHlwZSwgVmVjdG9yPFdlYlBsYXRmb3JtVG91Y2hQb2ludD4mCiAgICAg
QVNTRVJUKGlzVG91Y2hFdmVudFR5cGUodHlwZSkpOwogfQogCi12b2lkIFdlYlRvdWNoRXZlbnQ6
OmVuY29kZShJUEM6OkFyZ3VtZW50RW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3ZvaWQgV2ViVG91
Y2hFdmVudDo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKIHsKICAgICBXZWJF
dmVudDo6ZW5jb2RlKGVuY29kZXIpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVyRGF0YVR5cGVzLmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXJEYXRhVHlwZXMuY3BwCmluZGV4IGY2NTQy
YmI3YzkxNWZkMDBkMGY5NWI3MjFiMzFkMzIxZTBmOTIzYmQuLjZkMzFjOTU0NTE2YmQ2YzRlMmUw
ZDQ5NzQzZjBhNWE4ZWQ5YjljNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9X
ZWJVc2VyQ29udGVudENvbnRyb2xsZXJEYXRhVHlwZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXJEYXRhVHlwZXMuY3BwCkBAIC0zMCw3ICsz
MCw3IEBACiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi12b2lkIFdlYlVzZXJTY3JpcHREYXRhOjpl
bmNvZGUoSVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit2b2lkIFdlYlVzZXJT
Y3JpcHREYXRhOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewogICAgIGVu
Y29kZXIgPDwgaWRlbnRpZmllcjsKICAgICBlbmNvZGVyIDw8IHdvcmxkSWRlbnRpZmllcjsKQEAg
LTQ4LDcgKzQ4LDcgQEAgYm9vbCBXZWJVc2VyU2NyaXB0RGF0YTo6ZGVjb2RlKElQQzo6QXJndW1l
bnREZWNvZGVyJiBkZWNvZGVyLCBXZWJVc2VyU2NyaXB0RGF0YSYKICAgICByZXR1cm4gdHJ1ZTsK
IH0KIAotdm9pZCBXZWJVc2VyU3R5bGVTaGVldERhdGE6OmVuY29kZShJUEM6OkFyZ3VtZW50RW5j
b2RlciYgZW5jb2RlcikgY29uc3QKK3ZvaWQgV2ViVXNlclN0eWxlU2hlZXREYXRhOjplbmNvZGUo
SVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewogICAgIGVuY29kZXIgPDwgaWRlbnRpZmll
cjsKICAgICBlbmNvZGVyIDw8IHdvcmxkSWRlbnRpZmllcjsKQEAgLTY3LDcgKzY3LDcgQEAgYm9v
bCBXZWJVc2VyU3R5bGVTaGVldERhdGE6OmRlY29kZShJUEM6OkFyZ3VtZW50RGVjb2RlciYgZGVj
b2RlciwgV2ViVXNlclN0eWxlU2gKIH0KIAogCi12b2lkIFdlYlNjcmlwdE1lc3NhZ2VIYW5kbGVy
RGF0YTo6ZW5jb2RlKElQQzo6QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAordm9pZCBX
ZWJTY3JpcHRNZXNzYWdlSGFuZGxlckRhdGE6OmVuY29kZShJUEM6OkVuY29kZXImIGVuY29kZXIp
IGNvbnN0CiB7CiAgICAgZW5jb2RlciA8PCBpZGVudGlmaWVyOwogICAgIGVuY29kZXIgPDwgd29y
bGRJZGVudGlmaWVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlVzZXJD
b250ZW50Q29udHJvbGxlckRhdGFUeXBlcy5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlVz
ZXJDb250ZW50Q29udHJvbGxlckRhdGFUeXBlcy5oCmluZGV4IDBiNzU0MTliNGQ1MDY3ODdlNTYw
NmEwMDhkMjk2MzgwZmRmZGUwMTIuLjU1ZGQ4MGY1OWNkZmJjZDkxZmRlYTYxNTQzNjg0YjdkZmNj
Y2M2ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJVc2VyQ29udGVudENv
bnRyb2xsZXJEYXRhVHlwZXMuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViVXNlckNv
bnRlbnRDb250cm9sbGVyRGF0YVR5cGVzLmgKQEAgLTMxLDEzICszMSwxMyBAQAogCiBuYW1lc3Bh
Y2UgSVBDIHsKIGNsYXNzIEFyZ3VtZW50RGVjb2RlcjsKLWNsYXNzIEFyZ3VtZW50RW5jb2RlcjsK
K2NsYXNzIEVuY29kZXI7CiB9CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBzdHJ1Y3QgV2ViVXNl
clNjcmlwdERhdGEgewotICAgIHZvaWQgZW5jb2RlKElQQzo6QXJndW1lbnRFbmNvZGVyJikgY29u
c3Q7CisgICAgdm9pZCBlbmNvZGUoSVBDOjpFbmNvZGVyJikgY29uc3Q7CiAgICAgc3RhdGljIGJv
b2wgZGVjb2RlKElQQzo6QXJndW1lbnREZWNvZGVyJiwgV2ViVXNlclNjcmlwdERhdGEmKTsKIAog
ICAgIHVpbnQ2NF90IGlkZW50aWZpZXI7CkBAIC00Niw3ICs0Niw3IEBAIHN0cnVjdCBXZWJVc2Vy
U2NyaXB0RGF0YSB7CiB9OwogCiBzdHJ1Y3QgV2ViVXNlclN0eWxlU2hlZXREYXRhIHsKLSAgICB2
b2lkIGVuY29kZShJUEM6OkFyZ3VtZW50RW5jb2RlciYpIGNvbnN0OworICAgIHZvaWQgZW5jb2Rl
KElQQzo6RW5jb2RlciYpIGNvbnN0OwogICAgIHN0YXRpYyBib29sIGRlY29kZShJUEM6OkFyZ3Vt
ZW50RGVjb2RlciYsIFdlYlVzZXJTdHlsZVNoZWV0RGF0YSYpOwogCiAgICAgdWludDY0X3QgaWRl
bnRpZmllcjsKQEAgLTU1LDcgKzU1LDcgQEAgc3RydWN0IFdlYlVzZXJTdHlsZVNoZWV0RGF0YSB7
CiB9OwogCiBzdHJ1Y3QgV2ViU2NyaXB0TWVzc2FnZUhhbmRsZXJEYXRhIHsKLSAgICB2b2lkIGVu
Y29kZShJUEM6OkFyZ3VtZW50RW5jb2RlciYpIGNvbnN0OworICAgIHZvaWQgZW5jb2RlKElQQzo6
RW5jb2RlciYpIGNvbnN0OwogICAgIHN0YXRpYyBib29sIGRlY29kZShJUEM6OkFyZ3VtZW50RGVj
b2RlciYsIFdlYlNjcmlwdE1lc3NhZ2VIYW5kbGVyRGF0YSYpOwogCiAgICAgdWludDY0X3QgaWRl
bnRpZmllcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJXaGVlbEV2ZW50
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJXaGVlbEV2ZW50LmNwcAppbmRleCBkMjUw
YTE0NWI5NzAyNTU5MjIwNTY2YTMwMDNmMDIyYzZjZTNiNTBiLi4wNWExNWNmMmNmZTgxZjZmZGJm
NzFiZTE0YTA4NjlmMTA3N2RjZWVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
V2ViV2hlZWxFdmVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYldoZWVsRXZl
bnQuY3BwCkBAIC02OSw3ICs2OSw3IEBAIFdlYldoZWVsRXZlbnQ6OldlYldoZWVsRXZlbnQoVHlw
ZSB0eXBlLCBjb25zdCBJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IEludFBvaW50CiB9CiAjZW5k
aWYKIAotdm9pZCBXZWJXaGVlbEV2ZW50OjplbmNvZGUoSVBDOjpBcmd1bWVudEVuY29kZXImIGVu
Y29kZXIpIGNvbnN0Cit2b2lkIFdlYldoZWVsRXZlbnQ6OmVuY29kZShJUEM6OkVuY29kZXImIGVu
Y29kZXIpIGNvbnN0CiB7CiAgICAgV2ViRXZlbnQ6OmVuY29kZShlbmNvZGVyKTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhLmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YS5jcHAKaW5kZXgg
YTQ0NjQ3MTlhOWIxMDYyYzdlYjRmMjk4MjA1NWY0YWU4NjkzYTE3NS4uNjhjMTY3YjMzNWJkYTUz
NjFmNTVhODNiM2FjMTlkNTBmZWEzZTIyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hh
cmVkL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGEuY3BwCkBAIC0zMiw3ICszMiw3IEBACiAKIG5hbWVz
cGFjZSBXZWJLaXQgewogCi12b2lkIFdlYnNpdGVEYXRhOjpFbnRyeTo6ZW5jb2RlKElQQzo6QXJn
dW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAordm9pZCBXZWJzaXRlRGF0YTo6RW50cnk6OmVu
Y29kZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB7CiAgICAgZW5jb2RlciA8PCBXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbkRhdGE6OmZyb21TZWN1cml0eU9yaWdpbigqb3JpZ2luKTsKICAg
ICBlbmNvZGVyLmVuY29kZUVudW0odHlwZSk7CkBAIC01NSw3ICs1NSw3IEBAIGJvb2wgV2Vic2l0
ZURhdGE6OkVudHJ5OjpkZWNvZGUoSVBDOjpBcmd1bWVudERlY29kZXImIGRlY29kZXIsIFdlYnNp
dGVEYXRhOjpFbnRyCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgV2Vic2l0ZURhdGE6OmVu
Y29kZShJUEM6OkFyZ3VtZW50RW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3ZvaWQgV2Vic2l0ZURh
dGE6OmVuY29kZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB7CiAgICAgZW5jb2RlciA8
PCBlbnRyaWVzOwogICAgIGVuY29kZXIgPDwgaG9zdE5hbWVzV2l0aENvb2tpZXM7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGEuaCBiL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YS5oCmluZGV4IGU2OWQw
OWZmNDg4NGRkN2E1OTBiOGQ0NjlhZTI0Y2RjM2I5NGRiZTguLmVjYTg3Y2FmNzJjOWEwMjg3ZmU0
NzYzYzAzNWJkNjVhMTVhNjdkZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9X
ZWJzaXRlRGF0YS9XZWJzaXRlRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJz
aXRlRGF0YS9XZWJzaXRlRGF0YS5oCkBAIC0zMyw3ICszMyw3IEBACiAKIG5hbWVzcGFjZSBJUEMg
ewogY2xhc3MgQXJndW1lbnREZWNvZGVyOwotY2xhc3MgQXJndW1lbnRFbmNvZGVyOworY2xhc3Mg
RW5jb2RlcjsKIH0KIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC00Niw3ICs0Niw3IEBAIHN0cnVj
dCBXZWJzaXRlRGF0YSB7CiAgICAgICAgIFdlYnNpdGVEYXRhVHlwZSB0eXBlOwogICAgICAgICB1
aW50NjRfdCBzaXplOwogCi0gICAgICAgIHZvaWQgZW5jb2RlKElQQzo6QXJndW1lbnRFbmNvZGVy
JikgY29uc3Q7CisgICAgICAgIHZvaWQgZW5jb2RlKElQQzo6RW5jb2RlciYpIGNvbnN0OwogICAg
ICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoSVBDOjpBcmd1bWVudERlY29kZXImLCBXZWJzaXRlRGF0
YTo6RW50cnkmKTsKICAgICB9OwogCkBAIC01Nyw3ICs1Nyw3IEBAIHN0cnVjdCBXZWJzaXRlRGF0
YSB7CiAgICAgSGFzaFNldDxTdHJpbmc+IGhvc3ROYW1lc1dpdGhQbHVnaW5EYXRhOwogI2VuZGlm
CiAKLSAgICB2b2lkIGVuY29kZShJUEM6OkFyZ3VtZW50RW5jb2RlciYpIGNvbnN0OworICAgIHZv
aWQgZW5jb2RlKElQQzo6RW5jb2RlciYpIGNvbnN0OwogICAgIHN0YXRpYyBib29sIGRlY29kZShJ
UEM6OkFyZ3VtZW50RGVjb2RlciYsIFdlYnNpdGVEYXRhJik7CiB9OwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvY2YvQXJndW1lbnRDb2RlcnNDRi5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvY2YvQXJndW1lbnRDb2RlcnNDRi5jcHAKaW5kZXggYjJlYjBhNGE0MTAxYjdl
OWM2MWZlYjdkMmM0ZWJiMjk4M2RlZDhkOS4uN2U1MjFlYmZlNmEyNzlkYzFlZDllZjY0ODc5Zjc1
OTQxNTRmM2E3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL2NmL0FyZ3VtZW50
Q29kZXJzQ0YuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9jZi9Bcmd1bWVudENvZGVy
c0NGLmNwcApAQCAtMjcsOCArMjcsOCBAQAogI2luY2x1ZGUgIkFyZ3VtZW50Q29kZXJzQ0YuaCIK
IAogI2luY2x1ZGUgIkFyZ3VtZW50RGVjb2Rlci5oIgotI2luY2x1ZGUgIkFyZ3VtZW50RW5jb2Rl
ci5oIgogI2luY2x1ZGUgIkRhdGFSZWZlcmVuY2UuaCIKKyNpbmNsdWRlICJFbmNvZGVyLmgiCiAj
aW5jbHVkZSA8V2ViQ29yZS9DRlVSTEV4dHJhcy5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4K
ICNpbmNsdWRlIDx3dGYvc3BpL2NvY29hL1NlY3VyaXR5U1BJLmg+CkBAIC0xNDIsNyArMTQyLDcg
QEAgc3RhdGljIENGVHlwZSB0eXBlRnJvbUNGVHlwZVJlZihDRlR5cGVSZWYgdHlwZSkKICAgICBy
ZXR1cm4gVW5rbm93bjsKIH0KIAotdm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyJiBlbmNvZGVy
LCBDRlR5cGVSZWYgdHlwZVJlZikKK3ZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIENGVHlw
ZVJlZiB0eXBlUmVmKQogewogICAgIENGVHlwZSB0eXBlID0gdHlwZUZyb21DRlR5cGVSZWYodHlw
ZVJlZik7CiAgICAgZW5jb2Rlci5lbmNvZGVFbnVtKHR5cGUpOwpAQCAtMzIyLDcgKzMyMiw3IEBA
IGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgUmV0YWluUHRyPENGVHlwZVJl
Zj4mIHJlc3VsdCkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXZvaWQgZW5jb2RlKEFyZ3VtZW50
RW5jb2RlciYgZW5jb2RlciwgQ0ZBcnJheVJlZiBhcnJheSkKK3ZvaWQgZW5jb2RlKEVuY29kZXIm
IGVuY29kZXIsIENGQXJyYXlSZWYgYXJyYXkpCiB7CiAgICAgQ0ZJbmRleCBzaXplID0gQ0ZBcnJh
eUdldENvdW50KGFycmF5KTsKICAgICBWZWN0b3I8Q0ZUeXBlUmVmLCAzMj4gdmFsdWVzKHNpemUp
OwpAQCAtMzU4LDcgKzM1OCw3IEBAIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2Rl
ciwgUmV0YWluUHRyPENGQXJyYXlSZWY+JiByZXN1bHQpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAK
LXZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgQ0ZCb29sZWFuUmVmIGJvb2xl
YW4pCit2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBDRkJvb2xlYW5SZWYgYm9vbGVhbikK
IHsKICAgICBlbmNvZGVyIDw8IHN0YXRpY19jYXN0PGJvb2w+KENGQm9vbGVhbkdldFZhbHVlKGJv
b2xlYW4pKTsKIH0KQEAgLTM3Myw3ICszNzMsNyBAQCBib29sIGRlY29kZShBcmd1bWVudERlY29k
ZXImIGRlY29kZXIsIFJldGFpblB0cjxDRkJvb2xlYW5SZWY+JiByZXN1bHQpCiAgICAgcmV0dXJu
IHRydWU7CiB9CiAKLXZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgQ0ZEYXRh
UmVmIGRhdGEpCit2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBDRkRhdGFSZWYgZGF0YSkK
IHsKICAgICBDRkluZGV4IGxlbmd0aCA9IENGRGF0YUdldExlbmd0aChkYXRhKTsKICAgICBjb25z
dCBVSW50OCogYnl0ZVB0ciA9IENGRGF0YUdldEJ5dGVQdHIoZGF0YSk7CkBAIC0zOTEsNyArMzkx
LDcgQEAgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBSZXRhaW5QdHI8Q0ZE
YXRhUmVmPiYgcmVzdWx0KQogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIGVuY29kZShBcmd1
bWVudEVuY29kZXImIGVuY29kZXIsIENGRGF0ZVJlZiBkYXRlKQordm9pZCBlbmNvZGUoRW5jb2Rl
ciYgZW5jb2RlciwgQ0ZEYXRlUmVmIGRhdGUpCiB7CiAgICAgZW5jb2RlciA8PCBzdGF0aWNfY2Fz
dDxkb3VibGU+KENGRGF0ZUdldEFic29sdXRlVGltZShkYXRlKSk7CiB9CkBAIC00MDYsNyArNDA2
LDcgQEAgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBSZXRhaW5QdHI8Q0ZE
YXRlUmVmPiYgcmVzdWx0KQogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIGVuY29kZShBcmd1
bWVudEVuY29kZXImIGVuY29kZXIsIENGRGljdGlvbmFyeVJlZiBkaWN0aW9uYXJ5KQordm9pZCBl
bmNvZGUoRW5jb2RlciYgZW5jb2RlciwgQ0ZEaWN0aW9uYXJ5UmVmIGRpY3Rpb25hcnkpCiB7CiAg
ICAgQ0ZJbmRleCBzaXplID0gQ0ZEaWN0aW9uYXJ5R2V0Q291bnQoZGljdGlvbmFyeSk7CiAgICAg
VmVjdG9yPENGVHlwZVJlZiwgMzI+IGtleXMoc2l6ZSk7CkBAIC00NTQsNyArNDU0LDcgQEAgYm9v
bCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBSZXRhaW5QdHI8Q0ZEaWN0aW9uYXJ5
UmVmPiYgcmVzdWx0KQogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIGVuY29kZShBcmd1bWVu
dEVuY29kZXImIGVuY29kZXIsIENGTnVtYmVyUmVmIG51bWJlcikKK3ZvaWQgZW5jb2RlKEVuY29k
ZXImIGVuY29kZXIsIENGTnVtYmVyUmVmIG51bWJlcikKIHsKICAgICBDRk51bWJlclR5cGUgbnVt
YmVyVHlwZSA9IENGTnVtYmVyR2V0VHlwZShudW1iZXIpOwogCkBAIC01MzUsNyArNTM1LDcgQEAg
Ym9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBSZXRhaW5QdHI8Q0ZOdW1iZXJS
ZWY+JiByZXN1bHQpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgZW5jb2RlKEFyZ3VtZW50
RW5jb2RlciYgZW5jb2RlciwgQ0ZTdHJpbmdSZWYgc3RyaW5nKQordm9pZCBlbmNvZGUoRW5jb2Rl
ciYgZW5jb2RlciwgQ0ZTdHJpbmdSZWYgc3RyaW5nKQogewogICAgIENGSW5kZXggbGVuZ3RoID0g
Q0ZTdHJpbmdHZXRMZW5ndGgoc3RyaW5nKTsKICAgICBDRlN0cmluZ0VuY29kaW5nIGVuY29kaW5n
ID0gQ0ZTdHJpbmdHZXRGYXN0ZXN0RW5jb2Rpbmcoc3RyaW5nKTsKQEAgLTU3NSw3ICs1NzUsNyBA
QCBib29sIGRlY29kZShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIFJldGFpblB0cjxDRlN0cmlu
Z1JlZj4mIHJlc3VsdCkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBlbmNvZGUoQXJndW1l
bnRFbmNvZGVyJiBlbmNvZGVyLCBDRlVSTFJlZiB1cmwpCit2b2lkIGVuY29kZShFbmNvZGVyJiBl
bmNvZGVyLCBDRlVSTFJlZiB1cmwpCiB7CiAgICAgQ0ZVUkxSZWYgYmFzZVVSTCA9IENGVVJMR2V0
QmFzZVVSTCh1cmwpOwogICAgIGVuY29kZXIgPDwgc3RhdGljX2Nhc3Q8Ym9vbD4oYmFzZVVSTCk7
CkBAIC02MTgsNyArNjE4LDcgQEAgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVy
LCBSZXRhaW5QdHI8Q0ZVUkxSZWY+JiByZXN1bHQpCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAot
dm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBTZWNDZXJ0aWZpY2F0ZVJlZiBj
ZXJ0aWZpY2F0ZSkKK3ZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIFNlY0NlcnRpZmljYXRl
UmVmIGNlcnRpZmljYXRlKQogewogICAgIFJldGFpblB0cjxDRkRhdGFSZWY+IGRhdGEgPSBhZG9w
dENGKFNlY0NlcnRpZmljYXRlQ29weURhdGEoY2VydGlmaWNhdGUpKTsKICAgICBlbmNvZGUoZW5j
b2RlciwgZGF0YS5nZXQoKSk7CkBAIC02NTksNyArNjU5LDcgQEAgc3RhdGljIENGRGF0YVJlZiBj
b3B5UGVyc2lzdGVudFJlZihTZWNLZXlSZWYga2V5KQogfQogI2VuZGlmCiAKLXZvaWQgZW5jb2Rl
KEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgU2VjSWRlbnRpdHlSZWYgaWRlbnRpdHkpCit2b2lk
IGVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBTZWNJZGVudGl0eVJlZiBpZGVudGl0eSkKIHsKICAg
ICBTZWNDZXJ0aWZpY2F0ZVJlZiBjZXJ0aWZpY2F0ZSA9IG51bGxwdHI7CiAgICAgU2VjSWRlbnRp
dHlDb3B5Q2VydGlmaWNhdGUoaWRlbnRpdHksICZjZXJ0aWZpY2F0ZSk7CkBAIC03MTksNyArNzE5
LDcgQEAgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBSZXRhaW5QdHI8U2Vj
SWRlbnRpdHlSZWY+JiByZXN1bHQpCiB9CiAKICNpZiBIQVZFKFNFQ19LRVlDSEFJTikKLXZvaWQg
ZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgU2VjS2V5Y2hhaW5JdGVtUmVmIGtleWNo
YWluSXRlbSkKK3ZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIFNlY0tleWNoYWluSXRlbVJl
ZiBrZXljaGFpbkl0ZW0pCiB7CiAgICAgQ0ZEYXRhUmVmIGRhdGE7CiAgICAgaWYgKFNlY0tleWNo
YWluSXRlbUNyZWF0ZVBlcnNpc3RlbnRSZWZlcmVuY2Uoa2V5Y2hhaW5JdGVtLCAmZGF0YSkgPT0g
ZXJyU2VjU3VjY2VzcykgewpAQCAtNzQ0LDcgKzc0NCw3IEBAIGJvb2wgZGVjb2RlKEFyZ3VtZW50
RGVjb2RlciYgZGVjb2RlciwgUmV0YWluUHRyPFNlY0tleWNoYWluSXRlbVJlZj4mIHJlc3VsdCkK
ICNlbmRpZgogCiAjaWYgSEFWRShTRUNfQUNDRVNTX0NPTlRST0wpCi12b2lkIGVuY29kZShBcmd1
bWVudEVuY29kZXImIGVuY29kZXIsIFNlY0FjY2Vzc0NvbnRyb2xSZWYgYWNjZXNzQ29udHJvbCkK
K3ZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIFNlY0FjY2Vzc0NvbnRyb2xSZWYgYWNjZXNz
Q29udHJvbCkKIHsKICAgICBSZXRhaW5QdHI8Q0ZEYXRhUmVmPiBkYXRhID0gYWRvcHRDRihTZWNB
Y2Nlc3NDb250cm9sQ29weURhdGEoYWNjZXNzQ29udHJvbCkpOwogICAgIGlmIChkYXRhKQpAQCAt
NzY2LDcgKzc2Niw3IEBAIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgUmV0
YWluUHRyPFNlY0FjY2Vzc0NvbnRyb2xSZWY+JiByZXN1bHQpCiAjZW5kaWYKIAogI2lmIEhBVkUo
U0VDX1RSVVNUX1NFUklBTElaQVRJT04pCi12b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXImIGVu
Y29kZXIsIFNlY1RydXN0UmVmIHRydXN0KQordm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2Rlciwg
U2VjVHJ1c3RSZWYgdHJ1c3QpCiB7CiAgICAgYXV0byBkYXRhID0gYWRvcHRDRihTZWNUcnVzdFNl
cmlhbGl6ZSh0cnVzdCwgbnVsbHB0cikpOwogICAgIGlmICghZGF0YSkgewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvU2hhcmVkL2NmL0FyZ3VtZW50Q29kZXJzQ0YuaCBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9jZi9Bcmd1bWVudENvZGVyc0NGLmgKaW5kZXggMmJhY2ZkNzgyMWNkZGFjOTZl
MDNmNDllMGZmN2I0NTg4ZTVhZWQ2ZS4uMDA2MzNmMjY0OTVmOWZjNTMzZTM1ZDE1MDdjZjA1NTA1
MjA5YjQ2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL2NmL0FyZ3VtZW50Q29k
ZXJzQ0YuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvY2YvQXJndW1lbnRDb2RlcnNDRi5o
CkBAIC0zNiw2OCArMzYsNjggQEAKIAogbmFtZXNwYWNlIElQQyB7CiAKLWNsYXNzIEFyZ3VtZW50
RW5jb2RlcjsKK2NsYXNzIEVuY29kZXI7CiBjbGFzcyBBcmd1bWVudERlY29kZXI7CiAKIC8vIENG
QXJyYXlSZWYKLXZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYsIENGQXJyYXlSZWYpOwordm9p
ZCBlbmNvZGUoRW5jb2RlciYsIENGQXJyYXlSZWYpOwogYm9vbCBkZWNvZGUoQXJndW1lbnREZWNv
ZGVyJiwgUmV0YWluUHRyPENGQXJyYXlSZWY+JiByZXN1bHQpOwogCiAvLyBDRkJvb2xlYW5SZWYK
LXZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYsIENGQm9vbGVhblJlZik7Cit2b2lkIGVuY29k
ZShFbmNvZGVyJiwgQ0ZCb29sZWFuUmVmKTsKIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYs
IFJldGFpblB0cjxDRkJvb2xlYW5SZWY+JiByZXN1bHQpOwogCiAvLyBDRkRhdGFSZWYKLXZvaWQg
ZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYsIENGRGF0YVJlZik7Cit2b2lkIGVuY29kZShFbmNvZGVy
JiwgQ0ZEYXRhUmVmKTsKIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYsIFJldGFpblB0cjxD
RkRhdGFSZWY+JiByZXN1bHQpOwogCiAvLyBDRkRhdGVSZWYKLXZvaWQgZW5jb2RlKEFyZ3VtZW50
RW5jb2RlciYsIENGRGF0ZVJlZik7Cit2b2lkIGVuY29kZShFbmNvZGVyJiwgQ0ZEYXRlUmVmKTsK
IGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYsIFJldGFpblB0cjxDRkRhdGVSZWY+JiByZXN1
bHQpOwogCiAvLyBDRkRpY3Rpb25hcnlSZWYKLXZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYs
IENGRGljdGlvbmFyeVJlZik7Cit2b2lkIGVuY29kZShFbmNvZGVyJiwgQ0ZEaWN0aW9uYXJ5UmVm
KTsKIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYsIFJldGFpblB0cjxDRkRpY3Rpb25hcnlS
ZWY+JiByZXN1bHQpOwogCiAvLyBDRk51bWJlclJlZgotdm9pZCBlbmNvZGUoQXJndW1lbnRFbmNv
ZGVyJiwgQ0ZOdW1iZXJSZWYpOwordm9pZCBlbmNvZGUoRW5jb2RlciYsIENGTnVtYmVyUmVmKTsK
IGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYsIFJldGFpblB0cjxDRk51bWJlclJlZj4mIHJl
c3VsdCk7CiAKIC8vIENGU3RyaW5nUmVmCi12b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXImLCBD
RlN0cmluZ1JlZik7Cit2b2lkIGVuY29kZShFbmNvZGVyJiwgQ0ZTdHJpbmdSZWYpOwogYm9vbCBk
ZWNvZGUoQXJndW1lbnREZWNvZGVyJiwgUmV0YWluUHRyPENGU3RyaW5nUmVmPiYgcmVzdWx0KTsK
IAogLy8gQ0ZUeXBlUmVmCi12b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXImLCBDRlR5cGVSZWYp
Owordm9pZCBlbmNvZGUoRW5jb2RlciYsIENGVHlwZVJlZik7CiBib29sIGRlY29kZShBcmd1bWVu
dERlY29kZXImLCBSZXRhaW5QdHI8Q0ZUeXBlUmVmPiYgcmVzdWx0KTsKIAogLy8gQ0ZVUkxSZWYK
LXZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYsIENGVVJMUmVmKTsKK3ZvaWQgZW5jb2RlKEVu
Y29kZXImLCBDRlVSTFJlZik7CiBib29sIGRlY29kZShBcmd1bWVudERlY29kZXImLCBSZXRhaW5Q
dHI8Q0ZVUkxSZWY+JiByZXN1bHQpOwogCiAvLyBTZWNDZXJ0aWZpY2F0ZVJlZgotdm9pZCBlbmNv
ZGUoQXJndW1lbnRFbmNvZGVyJiwgU2VjQ2VydGlmaWNhdGVSZWYpOwordm9pZCBlbmNvZGUoRW5j
b2RlciYsIFNlY0NlcnRpZmljYXRlUmVmKTsKIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYs
IFJldGFpblB0cjxTZWNDZXJ0aWZpY2F0ZVJlZj4mIHJlc3VsdCk7CiAKIC8vIFNlY0lkZW50aXR5
UmVmCi12b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXImLCBTZWNJZGVudGl0eVJlZik7Cit2b2lk
IGVuY29kZShFbmNvZGVyJiwgU2VjSWRlbnRpdHlSZWYpOwogYm9vbCBkZWNvZGUoQXJndW1lbnRE
ZWNvZGVyJiwgUmV0YWluUHRyPFNlY0lkZW50aXR5UmVmPiYgcmVzdWx0KTsKIAogI2lmIEhBVkUo
U0VDX0tFWUNIQUlOKQogLy8gU2VjS2V5Y2hhaW5JdGVtUmVmCi12b2lkIGVuY29kZShBcmd1bWVu
dEVuY29kZXImLCBTZWNLZXljaGFpbkl0ZW1SZWYpOwordm9pZCBlbmNvZGUoRW5jb2RlciYsIFNl
Y0tleWNoYWluSXRlbVJlZik7CiBib29sIGRlY29kZShBcmd1bWVudERlY29kZXImLCBSZXRhaW5Q
dHI8U2VjS2V5Y2hhaW5JdGVtUmVmPiYgcmVzdWx0KTsKICNlbmRpZgogCiAjaWYgSEFWRShTRUNf
QUNDRVNTX0NPTlRST0wpCiAvLyBTZWNBY2Nlc3NDb250cm9sUmVmCi12b2lkIGVuY29kZShBcmd1
bWVudEVuY29kZXImLCBTZWNBY2Nlc3NDb250cm9sUmVmKTsKK3ZvaWQgZW5jb2RlKEVuY29kZXIm
LCBTZWNBY2Nlc3NDb250cm9sUmVmKTsKIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYsIFJl
dGFpblB0cjxTZWNBY2Nlc3NDb250cm9sUmVmPiYgcmVzdWx0KTsKICNlbmRpZgogCiAjaWYgSEFW
RShTRUNfVFJVU1RfU0VSSUFMSVpBVElPTikKIC8vIFNlY1RydXN0UmVmCi12b2lkIGVuY29kZShB
cmd1bWVudEVuY29kZXImLCBTZWNUcnVzdFJlZik7Cit2b2lkIGVuY29kZShFbmNvZGVyJiwgU2Vj
VHJ1c3RSZWYpOwogYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiwgUmV0YWluUHRyPFNlY1Ry
dXN0UmVmPiYpOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9p
b3MvSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24uaCBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9pb3MvSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24uaAppbmRleCA3NGJjNzcz
YWUxOTMwNTJjOTkxZjk5YmQyMTgwM2FhNzMyZDE2YzdiLi4zZmQ2NmRhNGU1YmU2OTgzMjAzZjg3
ODhlMjQ4OWIxNjRjYzUyNmU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvaW9z
L0ludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdDIv
U2hhcmVkL2lvcy9JbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbi5oCkBAIC02Niw3ICs2
Niw3IEBAIHN0cnVjdCBJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbiB7CiAgICAgUmV0
YWluUHRyPE5TQXJyYXk+IGRhdGFEZXRlY3RvclJlc3VsdHM7CiAjZW5kaWYKIAotICAgIHZvaWQg
ZW5jb2RlKElQQzo6QXJndW1lbnRFbmNvZGVyJikgY29uc3Q7CisgICAgdm9pZCBlbmNvZGUoSVBD
OjpFbmNvZGVyJikgY29uc3Q7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKElQQzo6QXJndW1lbnRE
ZWNvZGVyJiwgSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24mKTsKIH07CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9pb3MvSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0
UG9zaXRpb24ubW0gYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvaW9zL0ludGVyYWN0aW9uSW5mb3Jt
YXRpb25BdFBvc2l0aW9uLm1tCmluZGV4IGUyZmUyM2M0ZmRhNDU4OGRhZWU1NzhkOGU0NzNiN2Vm
NTk3MjA5N2QuLjdiZmE2OWY0ZGE4MGQ2OTM5YmNkM2EwMTYwMjhiYzlhM2FjNTZjZmIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9pb3MvSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0
UG9zaXRpb24ubW0KKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL2lvcy9JbnRlcmFjdGlvbklu
Zm9ybWF0aW9uQXRQb3NpdGlvbi5tbQpAQCAtMzksNyArMzksNyBAQCBuYW1lc3BhY2UgV2ViS2l0
IHsKIAogI2lmIFBMQVRGT1JNKElPUykKIAotdm9pZCBJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQ
b3NpdGlvbjo6ZW5jb2RlKElQQzo6QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAordm9p
ZCBJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbjo6ZW5jb2RlKElQQzo6RW5jb2RlciYg
ZW5jb2RlcikgY29uc3QKIHsKICAgICBlbmNvZGVyIDw8IHBvaW50OwogICAgIGVuY29kZXIgPDwg
bm9kZUF0UG9zaXRpb25Jc0Fzc2lzdGVkTm9kZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9pb3MvUXVpY2tMb29rRG9jdW1lbnREYXRhLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9pb3MvUXVpY2tMb29rRG9jdW1lbnREYXRhLmNwcAppbmRleCBiMjU2YzM4YzJkOTU0NWZk
MDc2OTVjZGYzMDIzODA1NDg5ZDQwNDg0Li5kNjU5N2ExMDA0Njc2NWJkZDIyMjU5OTM4YWFmMGNj
YWY5Zjg0NGIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvaW9zL1F1aWNrTG9v
a0RvY3VtZW50RGF0YS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL2lvcy9RdWlja0xv
b2tEb2N1bWVudERhdGEuY3BwCkBAIC0yOSw3ICsyOSw3IEBACiAjaWYgVVNFKFFVSUNLX0xPT0sp
CiAKICNpbmNsdWRlICJBcmd1bWVudERlY29kZXIuaCIKLSNpbmNsdWRlICJBcmd1bWVudEVuY29k
ZXIuaCIKKyNpbmNsdWRlICJFbmNvZGVyLmgiCiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCkBAIC01
MSw3ICs1MSw3IEBAIHZvaWQgUXVpY2tMb29rRG9jdW1lbnREYXRhOjpjbGVhcigpCiAgICAgbV9k
YXRhLmNsZWFyKCk7CiB9CiAKLXZvaWQgUXVpY2tMb29rRG9jdW1lbnREYXRhOjplbmNvZGUoSVBD
OjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit2b2lkIFF1aWNrTG9va0RvY3VtZW50
RGF0YTo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKIHsKICAgICB1aW50NjRf
dCBzaXplID0gMDsKICAgICBmb3IgKGNvbnN0IGF1dG8mIGRhdGEgOiBtX2RhdGEpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvaW9zL1F1aWNrTG9va0RvY3VtZW50RGF0YS5oIGIv
U291cmNlL1dlYktpdDIvU2hhcmVkL2lvcy9RdWlja0xvb2tEb2N1bWVudERhdGEuaAppbmRleCA2
ZTcxNTVjZjA0NWI4OTcxOTY0MjAzMjAzZTQ1ZWFjY2NiZTZmMDBkLi5lNzJmNWY5MGE0YWMwNjBi
ZWRjYTQ5YjNjMTEwYmQ2MDBkYWFiYWQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvaW9zL1F1aWNrTG9va0RvY3VtZW50RGF0YS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9pb3MvUXVpY2tMb29rRG9jdW1lbnREYXRhLmgKQEAgLTMxLDcgKzMxLDcgQEAKIAogbmFtZXNw
YWNlIElQQyB7CiBjbGFzcyBBcmd1bWVudERlY29kZXI7Ci1jbGFzcyBBcmd1bWVudEVuY29kZXI7
CitjbGFzcyBFbmNvZGVyOwogfQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTQxLDcgKzQxLDcg
QEAgcHVibGljOgogICAgIHZvaWQgYXBwZW5kKENGRGF0YVJlZik7CiAgICAgQ0ZEYXRhUmVmIGRl
Y29kZWREYXRhKCkgY29uc3Q7CiAgICAgdm9pZCBjbGVhcigpOwotICAgIHZvaWQgZW5jb2RlKElQ
Qzo6QXJndW1lbnRFbmNvZGVyJikgY29uc3Q7CisgICAgdm9pZCBlbmNvZGUoSVBDOjpFbmNvZGVy
JikgY29uc3Q7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKElQQzo6QXJndW1lbnREZWNvZGVyJiwg
UXVpY2tMb29rRG9jdW1lbnREYXRhJik7CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvaW9zL1dlYlBsYXRmb3JtVG91Y2hQb2ludElPUy5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvaW9zL1dlYlBsYXRmb3JtVG91Y2hQb2ludElPUy5jcHAKaW5kZXggYzU5
ODE3NzA5MWRiYWUzNzBkNWE1ZWMyNDQzZTM2ZWNmNzdhNzc3My4uMTNiODExMTdjMjU1ZGFmMmM4
Mzk1NWU1YzA4OThlZjllYWVlMWU3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVk
L2lvcy9XZWJQbGF0Zm9ybVRvdWNoUG9pbnRJT1MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9pb3MvV2ViUGxhdGZvcm1Ub3VjaFBvaW50SU9TLmNwcApAQCAtMzUsNyArMzUsNyBAQCB1
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLXZvaWQgV2Vi
UGxhdGZvcm1Ub3VjaFBvaW50OjplbmNvZGUoSVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIp
IGNvbnN0Cit2b2lkIFdlYlBsYXRmb3JtVG91Y2hQb2ludDo6ZW5jb2RlKElQQzo6RW5jb2RlciYg
ZW5jb2RlcikgY29uc3QKIHsKICAgICBlbmNvZGVyIDw8IG1faWRlbnRpZmllcjsKICAgICBlbmNv
ZGVyIDw8IG1fbG9jYXRpb247CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvaW9z
L1dlYlRvdWNoRXZlbnRJT1MuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL2lvcy9XZWJUb3Vj
aEV2ZW50SU9TLmNwcAppbmRleCAyMTQ5MzY3ZWMyMzRkODc3MDQ5OTQ5MTFkNmNmZTQyZjk3ZTkz
ZWU4Li4wNzkxZTMxOGFlZjhhNTAzYjU2NTUyMjEyNWFkNDNkZDM3NjQwZjgzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvaW9zL1dlYlRvdWNoRXZlbnRJT1MuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9pb3MvV2ViVG91Y2hFdmVudElPUy5jcHAKQEAgLTM0LDcgKzM0
LDcgQEAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLXZvaWQgV2ViVG91Y2hFdmVudDo6ZW5jb2Rl
KElQQzo6QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAordm9pZCBXZWJUb3VjaEV2ZW50
OjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewogICAgIFdlYkV2ZW50Ojpl
bmNvZGUoZW5jb2Rlcik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMv
QXJndW1lbnRDb2RlcnNNYWMuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvQXJndW1lbnRD
b2RlcnNNYWMuaAppbmRleCBjZWE1ZjAxZDg4YTQ3M2FkNjA2ZDQ0NjEyODQ3MTkxY2NkNjJkZDI2
Li5kNzE1M2M2YjBlM2U3NTFkYmE3ODMxN2QxMzQ4NzE5NzIwMGUwN2FmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL0FyZ3VtZW50Q29kZXJzTWFjLmgKKysrIGIvU291cmNl
L1dlYktpdDIvU2hhcmVkL21hYy9Bcmd1bWVudENvZGVyc01hYy5oCkBAIC00MSw1NSArNDEsNTUg
QEAgT0JKQ19DTEFTUyBOU1VSTDsKIAogbmFtZXNwYWNlIElQQyB7CiAKLWNsYXNzIEFyZ3VtZW50
RW5jb2RlcjsKK2NsYXNzIEVuY29kZXI7CiBjbGFzcyBBcmd1bWVudERlY29kZXI7CiAKIC8vIGlk
Ci12b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXImLCBpZCk7Cit2b2lkIGVuY29kZShFbmNvZGVy
JiwgaWQpOwogYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiwgUmV0YWluUHRyPGlkPiYpOwog
CiAvLyBOU0F0dHJpYnV0ZWRTdHJpbmcKLXZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYsIE5T
QXR0cmlidXRlZFN0cmluZyAqKTsKK3ZvaWQgZW5jb2RlKEVuY29kZXImLCBOU0F0dHJpYnV0ZWRT
dHJpbmcgKik7CiBib29sIGRlY29kZShBcmd1bWVudERlY29kZXImLCBSZXRhaW5QdHI8TlNBdHRy
aWJ1dGVkU3RyaW5nPiYpOwogCiAjaWYgVVNFKEFQUEtJVCkKIC8vIE5TQ29sb3IKLXZvaWQgZW5j
b2RlKEFyZ3VtZW50RW5jb2RlciYsIE5TQ29sb3IgKik7Cit2b2lkIGVuY29kZShFbmNvZGVyJiwg
TlNDb2xvciAqKTsKIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYsIFJldGFpblB0cjxOU0Nv
bG9yPiYpOwogI2VuZGlmCiAKIC8vIE5TRGljdGlvbmFyeQotdm9pZCBlbmNvZGUoQXJndW1lbnRF
bmNvZGVyJiwgTlNEaWN0aW9uYXJ5ICopOwordm9pZCBlbmNvZGUoRW5jb2RlciYsIE5TRGljdGlv
bmFyeSAqKTsKIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYsIFJldGFpblB0cjxOU0RpY3Rp
b25hcnk+Jik7CiAKIC8vIE5TQXJyYXkKLXZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYsIE5T
QXJyYXkgKik7Cit2b2lkIGVuY29kZShFbmNvZGVyJiwgTlNBcnJheSAqKTsKIGJvb2wgZGVjb2Rl
KEFyZ3VtZW50RGVjb2RlciYsIFJldGFpblB0cjxOU0FycmF5PiYpOwogCiAjaWYgVVNFKEFQUEtJ
VCkKIC8vIE5TRm9udAotdm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyJiwgTlNGb250ICopOwor
dm9pZCBlbmNvZGUoRW5jb2RlciYsIE5TRm9udCAqKTsKIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVj
b2RlciYsIFJldGFpblB0cjxOU0ZvbnQ+Jik7CiAjZW5kaWYKIAogLy8gTlNOdW1iZXIKLXZvaWQg
ZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYsIE5TTnVtYmVyICopOwordm9pZCBlbmNvZGUoRW5jb2Rl
ciYsIE5TTnVtYmVyICopOwogYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiwgUmV0YWluUHRy
PE5TTnVtYmVyPiYpOwogCiAvLyBOU1N0cmluZwotdm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVy
JiwgTlNTdHJpbmcgKik7Cit2b2lkIGVuY29kZShFbmNvZGVyJiwgTlNTdHJpbmcgKik7CiBib29s
IGRlY29kZShBcmd1bWVudERlY29kZXImLCBSZXRhaW5QdHI8TlNTdHJpbmc+Jik7CiAKIC8vIE5T
RGF0ZQotdm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyJiwgTlNEYXRlICopOwordm9pZCBlbmNv
ZGUoRW5jb2RlciYsIE5TRGF0ZSAqKTsKIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYsIFJl
dGFpblB0cjxOU0RhdGU+Jik7CiAKIC8vIE5TRGF0YQotdm9pZCBlbmNvZGUoQXJndW1lbnRFbmNv
ZGVyJiwgTlNEYXRhICopOwordm9pZCBlbmNvZGUoRW5jb2RlciYsIE5TRGF0YSAqKTsKIGJvb2wg
ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYsIFJldGFpblB0cjxOU0RhdGE+Jik7CiAKIC8vIE5TVVJM
Ci12b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXImLCBOU1VSTCAqKTsKK3ZvaWQgZW5jb2RlKEVu
Y29kZXImLCBOU1VSTCAqKTsKIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYsIFJldGFpblB0
cjxOU1VSTD4mKTsKIAogfSAvLyBuYW1lc3BhY2UgSVBDCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvbWFjL0FyZ3VtZW50Q29kZXJzTWFjLm1tIGIvU291cmNlL1dlYktpdDIvU2hh
cmVkL21hYy9Bcmd1bWVudENvZGVyc01hYy5tbQppbmRleCAyNTU4YjQxODMzZTY1NDBhNGUzZjFi
YzE0ZjYwYmRiOGMyOTBjMmU3Li40ZmFjNzRhZmRlOGRhMzk4YTQzYjA3MzE3MjMzNGIyODkyNjFh
NWQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL0FyZ3VtZW50Q29kZXJz
TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvQXJndW1lbnRDb2RlcnNNYWMu
bW0KQEAgLTMzLDcgKzMzLDcgQEAKIAogI2ltcG9ydCAiQXJndW1lbnRDb2RlcnNDRi5oIgogI2lt
cG9ydCAiQXJndW1lbnREZWNvZGVyLmgiCi0jaW1wb3J0ICJBcmd1bWVudEVuY29kZXIuaCIKKyNp
bXBvcnQgIkVuY29kZXIuaCIKICNpbXBvcnQgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgogI2lt
cG9ydCA8V2ViQ29yZS9Db2xvck1hYy5oPgogCkBAIC05Miw3ICs5Miw3IEBAIHN0YXRpYyBOU1R5
cGUgdHlwZUZyb21PYmplY3QoaWQgb2JqZWN0KQogICAgIHJldHVybiBVbmtub3duOwogfQogCi12
b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXImIGVuY29kZXIsIGlkIG9iamVjdCkKK3ZvaWQgZW5j
b2RlKEVuY29kZXImIGVuY29kZXIsIGlkIG9iamVjdCkKIHsKICAgICBOU1R5cGUgdHlwZSA9IHR5
cGVGcm9tT2JqZWN0KG9iamVjdCk7CiAgICAgZW5jb2Rlci5lbmNvZGVFbnVtKHR5cGUpOwpAQCAt
MjYzLDcgKzI2Myw3IEBAIHN0YXRpYyBpbmxpbmUgUmV0YWluUHRyPE5TRGljdGlvbmFyeT4gZmls
dGVyVW5zZXJpYWxpemFibGVWYWx1ZXMoTlNEaWN0aW9uYXJ5ICpkCiAgICAgcmV0dXJuIHJlc3Vs
dDsKIH0KIAotdm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBOU0F0dHJpYnV0
ZWRTdHJpbmcgKnN0cmluZykKK3ZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIE5TQXR0cmli
dXRlZFN0cmluZyAqc3RyaW5nKQogewogICAgIC8vIEV2ZW4gdGhvdWdoIE5TQXR0cmlidXRlZFN0
cmluZyBpcyB0b2xsIGZyZWUgYnJpZGdlZCB3aXRoIENGQXR0cmlidXRlZFN0cmluZ1JlZiwgYXR0
cmlidXRlcycgdmFsdWVzIG1heSBiZSBub3QsIHNvIHdlIHNob3VsZCBzdGF5IHdpdGhpbiB0aGlz
IGZpbGUncyBjb2RlLgogCkBAIC0zMzQsNyArMzM0LDcgQEAgYm9vbCBkZWNvZGUoQXJndW1lbnRE
ZWNvZGVyJiBkZWNvZGVyLCBSZXRhaW5QdHI8TlNBdHRyaWJ1dGVkU3RyaW5nPiYgcmVzdWx0KQog
fQogCiAjaWYgVVNFKEFQUEtJVCkKLXZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2Rl
ciwgTlNDb2xvciAqY29sb3IpCit2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBOU0NvbG9y
ICpjb2xvcikKIHsKICAgICBlbmNvZGVyIDw8IGNvbG9yRnJvbU5TQ29sb3IoY29sb3IpOwogfQpA
QCAtMzUwLDcgKzM1MCw3IEBAIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2Rlciwg
UmV0YWluUHRyPE5TQ29sb3I+JiByZXN1bHQpCiB9CiAjZW5kaWYKIAotdm9pZCBlbmNvZGUoQXJn
dW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBOU0RpY3Rpb25hcnkgKmRpY3Rpb25hcnkpCit2b2lkIGVu
Y29kZShFbmNvZGVyJiBlbmNvZGVyLCBOU0RpY3Rpb25hcnkgKmRpY3Rpb25hcnkpCiB7CiAgICAg
Ly8gRXZlbiB0aG91Z2ggTlNEaWN0aW9uYXJ5IGlzIHRvbGwgZnJlZSBicmlkZ2VkIHdpdGggQ0ZE
aWN0aW9uYXJ5UmVmLCB2YWx1ZXMgbWF5IGJlIG5vdCwgc28gd2Ugc2hvdWxkIHN0YXkgd2l0aGlu
IHRoaXMgZmlsZSdzIGNvZGUuCiAKQEAgLTQwMiw3ICs0MDIsNyBAQCBib29sIGRlY29kZShBcmd1
bWVudERlY29kZXImIGRlY29kZXIsIFJldGFpblB0cjxOU0RpY3Rpb25hcnk+JiByZXN1bHQpCiB9
CiAKICNpZiBVU0UoQVBQS0lUKQotdm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyJiBlbmNvZGVy
LCBOU0ZvbnQgKmZvbnQpCit2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBOU0ZvbnQgKmZv
bnQpCiB7CiAgICAgLy8gTlNGb250IGNvdWxkIHVzZSBDVEZvbnRSZWYgY29kZSBpZiB3ZSBoYWQg
aXQgaW4gQXJndW1lbnRDb2RlcnNDRi4KICAgICBlbmNvZGUoZW5jb2RlciwgW1tmb250IGZvbnRE
ZXNjcmlwdG9yXSBmb250QXR0cmlidXRlc10pOwpAQCAtNDIxLDcgKzQyMSw3IEBAIGJvb2wgZGVj
b2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgUmV0YWluUHRyPE5TRm9udD4mIHJlc3VsdCkK
IH0KICNlbmRpZgogCi12b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXImIGVuY29kZXIsIE5TTnVt
YmVyICpudW1iZXIpCit2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBOU051bWJlciAqbnVt
YmVyKQogewogICAgIGVuY29kZShlbmNvZGVyLCAoQ0ZOdW1iZXJSZWYpbnVtYmVyKTsKIH0KQEAg
LTQzNiw3ICs0MzYsNyBAQCBib29sIGRlY29kZShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIFJl
dGFpblB0cjxOU051bWJlcj4mIHJlc3VsdCkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBl
bmNvZGUoQXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBOU1N0cmluZyAqc3RyaW5nKQordm9pZCBl
bmNvZGUoRW5jb2RlciYgZW5jb2RlciwgTlNTdHJpbmcgKnN0cmluZykKIHsKICAgICBlbmNvZGUo
ZW5jb2RlciwgKENGU3RyaW5nUmVmKXN0cmluZyk7CiB9CkBAIC00NTEsNyArNDUxLDcgQEAgYm9v
bCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBSZXRhaW5QdHI8TlNTdHJpbmc+JiBy
ZXN1bHQpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2Rl
ciYgZW5jb2RlciwgTlNBcnJheSAqYXJyYXkpCit2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVy
LCBOU0FycmF5ICphcnJheSkKIHsKICAgICBOU1VJbnRlZ2VyIHNpemUgPSBbYXJyYXkgY291bnRd
OwogICAgIGVuY29kZXIgPDwgc3RhdGljX2Nhc3Q8dWludDY0X3Q+KHNpemUpOwpAQCAtNDg4LDcg
KzQ4OCw3IEBAIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgUmV0YWluUHRy
PE5TQXJyYXk+JiByZXN1bHQpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgZW5jb2RlKEFy
Z3VtZW50RW5jb2RlciYgZW5jb2RlciwgTlNEYXRlICpkYXRlKQordm9pZCBlbmNvZGUoRW5jb2Rl
ciYgZW5jb2RlciwgTlNEYXRlICpkYXRlKQogewogICAgIGVuY29kZShlbmNvZGVyLCAoQ0ZEYXRl
UmVmKWRhdGUpOwogfQpAQCAtNTAzLDcgKzUwMyw3IEBAIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVj
b2RlciYgZGVjb2RlciwgUmV0YWluUHRyPE5TRGF0ZT4mIHJlc3VsdCkKICAgICByZXR1cm4gdHJ1
ZTsKIH0KIAotdm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBOU0RhdGEgKmRh
dGEpCit2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBOU0RhdGEgKmRhdGEpCiB7CiAgICAg
ZW5jb2RlKGVuY29kZXIsIChDRkRhdGFSZWYpZGF0YSk7CiB9CkBAIC01MTgsNyArNTE4LDcgQEAg
Ym9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBSZXRhaW5QdHI8TlNEYXRhPiYg
cmVzdWx0KQogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIGVuY29kZShBcmd1bWVudEVuY29k
ZXImIGVuY29kZXIsIE5TVVJMICpVUkwpCit2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBO
U1VSTCAqVVJMKQogewogICAgIGVuY29kZShlbmNvZGVyLCAoQ0ZVUkxSZWYpVVJMKTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvQXR0cmlidXRlZFN0cmluZy5oIGIv
U291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9BdHRyaWJ1dGVkU3RyaW5nLmgKaW5kZXggNzAzYzll
NDhhYTFhYTA0MGE1MGUxYjVlMGEyOGFiNTBmNzRlNTE4NS4uM2NlMjViMTBlOTgyNjM0NTBlMjBm
NmQzMzY2ZjZhY2I3MTcxNjk5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21h
Yy9BdHRyaWJ1dGVkU3RyaW5nLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9BdHRy
aWJ1dGVkU3RyaW5nLmgKQEAgLTMyLDEzICszMiwxMyBAQCBPQkpDX0NMQVNTIE5TQXR0cmlidXRl
ZFN0cmluZzsKIAogbmFtZXNwYWNlIElQQyB7CiAgICAgY2xhc3MgQXJndW1lbnREZWNvZGVyOwot
ICAgIGNsYXNzIEFyZ3VtZW50RW5jb2RlcjsKKyAgICBjbGFzcyBFbmNvZGVyOwogfQogCiBuYW1l
c3BhY2UgV2ViS2l0IHsKIAogc3RydWN0IEF0dHJpYnV0ZWRTdHJpbmcgewotICAgIHZvaWQgZW5j
b2RlKElQQzo6QXJndW1lbnRFbmNvZGVyJikgY29uc3Q7CisgICAgdm9pZCBlbmNvZGUoSVBDOjpF
bmNvZGVyJikgY29uc3Q7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKElQQzo6QXJndW1lbnREZWNv
ZGVyJiwgQXR0cmlidXRlZFN0cmluZyYpOwogICAgIAogICAgIFJldGFpblB0cjxOU0F0dHJpYnV0
ZWRTdHJpbmc+IHN0cmluZzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMv
QXR0cmlidXRlZFN0cmluZy5tbSBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvQXR0cmlidXRl
ZFN0cmluZy5tbQppbmRleCBiM2Y0NjIwY2FiZmVjODczMWNjODNhMDdlZGZmNGZmOWViNzRmMGNi
Li4xMWE0ODM3Yjk4NTY5ODY1OGE4ZjE4ZTM5YjFkNmExMGVhZDVhOGYwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL0F0dHJpYnV0ZWRTdHJpbmcubW0KKysrIGIvU291cmNl
L1dlYktpdDIvU2hhcmVkL21hYy9BdHRyaWJ1dGVkU3RyaW5nLm1tCkBAIC0yOCwxMSArMjgsMTEg
QEAKIAogI2ltcG9ydCAiQXJndW1lbnRDb2RlcnNNYWMuaCIKICNpbXBvcnQgIkFyZ3VtZW50RGVj
b2Rlci5oIgotI2ltcG9ydCAiQXJndW1lbnRFbmNvZGVyLmgiCisjaW1wb3J0ICJFbmNvZGVyLmgi
CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi12b2lkIEF0dHJpYnV0ZWRTdHJpbmc6OmVuY29kZShJ
UEM6OkFyZ3VtZW50RW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3ZvaWQgQXR0cmlidXRlZFN0cmlu
Zzo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKIHsKICAgICBlbmNvZGVyIDw8
IHN0YXRpY19jYXN0PGJvb2w+KCFzdHJpbmcpOwogICAgIGlmICghc3RyaW5nKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9Db2xvclNwYWNlRGF0YS5oIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL21hYy9Db2xvclNwYWNlRGF0YS5oCmluZGV4IDkxYTUxYWYxYjg5YzM4MTFh
YmU1YzZkZTI1ZDdlMDg5ZDVhMzNjNDYuLmI5MTFlMDlhYjI4MTk3NDk5MmNjZGM2MGFjZGM4MTFi
ZjRhNTgxMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvQ29sb3JTcGFj
ZURhdGEuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL0NvbG9yU3BhY2VEYXRhLmgK
QEAgLTMwLDEzICszMCwxMyBAQAogCiBuYW1lc3BhY2UgSVBDIHsKICAgICBjbGFzcyBBcmd1bWVu
dERlY29kZXI7Ci0gICAgY2xhc3MgQXJndW1lbnRFbmNvZGVyOworICAgIGNsYXNzIEVuY29kZXI7
CiB9CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBzdHJ1Y3QgQ29sb3JTcGFjZURhdGEgewotICAg
IHZvaWQgZW5jb2RlKElQQzo6QXJndW1lbnRFbmNvZGVyJikgY29uc3Q7CisgICAgdm9pZCBlbmNv
ZGUoSVBDOjpFbmNvZGVyJikgY29uc3Q7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKElQQzo6QXJn
dW1lbnREZWNvZGVyJiwgQ29sb3JTcGFjZURhdGEmKTsKIAogICAgIFJldGFpblB0cjxDR0NvbG9y
U3BhY2VSZWY+IGNnQ29sb3JTcGFjZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9tYWMvQ29sb3JTcGFjZURhdGEubW0gYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL0NvbG9y
U3BhY2VEYXRhLm1tCmluZGV4IDk5Yzg3ZjQ4N2VhY2ExNTE0MGY4ZDlkY2M2OGE2MWU2ZjVhZGY2
MmEuLjE3ZjZmZjQwYmVmNGYxY2ZiODQ0NGE2NTI3NmJmYjBjYTAyZTU2ZWEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvQ29sb3JTcGFjZURhdGEubW0KKysrIGIvU291cmNl
L1dlYktpdDIvU2hhcmVkL21hYy9Db2xvclNwYWNlRGF0YS5tbQpAQCAtMjgsNyArMjgsNyBAQAog
CiAjaW5jbHVkZSAiQXJndW1lbnRDb2RlcnNDRi5oIgogI2luY2x1ZGUgIkFyZ3VtZW50RGVjb2Rl
ci5oIgotI2luY2x1ZGUgIkFyZ3VtZW50RW5jb2Rlci5oIgorI2luY2x1ZGUgIkVuY29kZXIuaCIK
IAogbmFtZXNwYWNlIFdlYktpdCB7CiAKQEAgLTM4LDcgKzM4LDcgQEAgZW51bSBFbmNvZGVkRGF0
YVR5cGUgewogICAgIERhdGEsCiB9OwogCi12b2lkIENvbG9yU3BhY2VEYXRhOjplbmNvZGUoSVBD
OjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit2b2lkIENvbG9yU3BhY2VEYXRhOjpl
bmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewogI2lmICFQTEFURk9STShJT1Mp
CiAgICAgaWYgKGNnQ29sb3JTcGFjZSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hh
cmVkL21hYy9PYmpDT2JqZWN0R3JhcGguaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvT2Jq
Q09iamVjdEdyYXBoLmgKaW5kZXggNjI5M2JkM2Q5YWUyZTdjOTdlOWY0ZDBhMTEwN2M2YTdkMTdj
YmZhZi4uNjIzYzdhMGY1NDQwMGYxNDc5YWFkYjc2ODRmYWQzNjk5YTEzNDAxOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9PYmpDT2JqZWN0R3JhcGguaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvbWFjL09iakNPYmplY3RHcmFwaC5oCkBAIC0zMSw3ICszMSw3IEBA
CiAKIG5hbWVzcGFjZSBJUEMgewogY2xhc3MgQXJndW1lbnREZWNvZGVyOwotY2xhc3MgQXJndW1l
bnRFbmNvZGVyOworY2xhc3MgRW5jb2RlcjsKIH0KIAogdHlwZWRlZiBzdHJ1Y3Qgb2JqY19vYmpl
Y3QqIGlkOwpAQCAtNTQsMTEgKzU0LDExIEBAIHB1YmxpYzoKICAgICB9OwogICAgIHN0YXRpYyBS
ZXRhaW5QdHI8aWQ+IHRyYW5zZm9ybShpZCwgY29uc3QgVHJhbnNmb3JtZXImKTsKIAotICAgIHZv
aWQgZW5jb2RlKElQQzo6QXJndW1lbnRFbmNvZGVyJikgY29uc3Q7CisgICAgdm9pZCBlbmNvZGUo
SVBDOjpFbmNvZGVyJikgY29uc3Q7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKElQQzo6QXJndW1l
bnREZWNvZGVyJiwgUmVmUHRyPEFQSTo6T2JqZWN0PiYpOwogCiBwcml2YXRlOgotICAgIHN0YXRp
YyB2b2lkIGVuY29kZShJUEM6OkFyZ3VtZW50RW5jb2RlciYsIGlkKTsKKyAgICBzdGF0aWMgdm9p
ZCBlbmNvZGUoSVBDOjpFbmNvZGVyJiwgaWQpOwogICAgIHN0YXRpYyBib29sIGRlY29kZShJUEM6
OkFyZ3VtZW50RGVjb2RlciYsIFJldGFpblB0cjxpZD4mKTsKIAogICAgIGV4cGxpY2l0IE9iakNP
YmplY3RHcmFwaChpZCByb290T2JqZWN0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hh
cmVkL21hYy9PYmpDT2JqZWN0R3JhcGgubW0gYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL09i
akNPYmplY3RHcmFwaC5tbQppbmRleCA0ZDRjMmI2NTgyNjY4YjZjYzdhZTY4Nzg4NTJhYzU4MDE3
ZjUzZGM1Li40OTBjMDYyN2U5YjQ0OTZkODUzYmQ1NDYwMGU1ZjE4NzA1N2UwYjljIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL09iakNPYmplY3RHcmFwaC5tbQorKysgYi9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL09iakNPYmplY3RHcmFwaC5tbQpAQCAtMjgsNyArMjgs
NyBAQAogCiAjaW1wb3J0ICJBcmd1bWVudENvZGVyc01hYy5oIgogI2ltcG9ydCAiQXJndW1lbnRE
ZWNvZGVyLmgiCi0jaW1wb3J0ICJBcmd1bWVudEVuY29kZXIuaCIKKyNpbXBvcnQgIkVuY29kZXIu
aCIKICNpbXBvcnQgPHd0Zi9PcHRpb25hbC5oPgogCiAjaWYgV0tfQVBJX0VOQUJMRUQKQEAgLTE0
MCw3ICsxNDAsNyBAQCBzdGF0aWMgT3B0aW9uYWw8T2JqQ1R5cGU+IHR5cGVGcm9tT2JqZWN0KGlk
IG9iamVjdCkKICAgICByZXR1cm4gTnVsbG9wdDsKIH0KIAotdm9pZCBPYmpDT2JqZWN0R3JhcGg6
OmVuY29kZShJUEM6OkFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgaWQgb2JqZWN0KQordm9pZCBP
YmpDT2JqZWN0R3JhcGg6OmVuY29kZShJUEM6OkVuY29kZXImIGVuY29kZXIsIGlkIG9iamVjdCkK
IHsKICAgICBpZiAoIW9iamVjdCkgewogICAgICAgICBlbmNvZGVyIDw8IHN0YXRpY19jYXN0PHVp
bnQzMl90PihPYmpDVHlwZTo6TnVsbCk7CkBAIC0yMDUsNyArMjA1LDcgQEAgdm9pZCBPYmpDT2Jq
ZWN0R3JhcGg6OmVuY29kZShJUEM6OkFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgaWQgb2JqZWN0
KQogICAgIH0KIH0KIAotdm9pZCBPYmpDT2JqZWN0R3JhcGg6OmVuY29kZShJUEM6OkFyZ3VtZW50
RW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3ZvaWQgT2JqQ09iamVjdEdyYXBoOjplbmNvZGUoSVBD
OjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewogICAgIGVuY29kZShlbmNvZGVyLCBtX3Jvb3RP
YmplY3QuZ2V0KCkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9S
ZW1vdGVMYXllckJhY2tpbmdTdG9yZS5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9SZW1v
dGVMYXllckJhY2tpbmdTdG9yZS5oCmluZGV4IDcxMWRjOWY3ODBkYWRiYWJhMjEzNjE1YjYwNzFl
NDUxM2JkZGQxMzIuLjFiYTM4ODc0ZTQwNGYyMGYwYzY4MTA1YmMwM2JiMzY4OGQ0YjZkNTEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvUmVtb3RlTGF5ZXJCYWNraW5nU3Rv
cmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1JlbW90ZUxheWVyQmFja2luZ1N0
b3JlLmgKQEAgLTY3LDcgKzY3LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBhcHBseUJhY2tpbmdT
dG9yZVRvTGF5ZXIoQ0FMYXllciAqKTsKIAotICAgIHZvaWQgZW5jb2RlKElQQzo6QXJndW1lbnRF
bmNvZGVyJikgY29uc3Q7CisgICAgdm9pZCBlbmNvZGUoSVBDOjpFbmNvZGVyJikgY29uc3Q7CiAg
ICAgc3RhdGljIGJvb2wgZGVjb2RlKElQQzo6QXJndW1lbnREZWNvZGVyJiwgUmVtb3RlTGF5ZXJC
YWNraW5nU3RvcmUmKTsKIAogICAgIHZvaWQgZW51bWVyYXRlUmVjdHNCZWluZ0RyYXduKENHQ29u
dGV4dFJlZiwgdm9pZCAoXikoQ0dSZWN0KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvbWFjL1JlbW90ZUxheWVyQmFja2luZ1N0b3JlLm1tIGIvU291cmNlL1dlYktpdDIvU2hh
cmVkL21hYy9SZW1vdGVMYXllckJhY2tpbmdTdG9yZS5tbQppbmRleCBlZTE5MGUzNWFmZWJlOTg3
OWUyM2M4ZmY2ZGM2Y2EwMmI5NTRjY2ZlLi4zYjIxNmQ2ZDMyZWIxM2Y5MjE4ZGNjNzUyMjgwZjVl
OGI5YWExMWNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1JlbW90ZUxh
eWVyQmFja2luZ1N0b3JlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvUmVtb3Rl
TGF5ZXJCYWNraW5nU3RvcmUubW0KQEAgLTExMCw3ICsxMTAsNyBAQCB2b2lkIFJlbW90ZUxheWVy
QmFja2luZ1N0b3JlOjpjbGVhckJhY2tpbmdTdG9yZSgpCiAjZW5kaWYKIH0KIAotdm9pZCBSZW1v
dGVMYXllckJhY2tpbmdTdG9yZTo6ZW5jb2RlKElQQzo6QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVy
KSBjb25zdAordm9pZCBSZW1vdGVMYXllckJhY2tpbmdTdG9yZTo6ZW5jb2RlKElQQzo6RW5jb2Rl
ciYgZW5jb2RlcikgY29uc3QKIHsKICAgICBlbmNvZGVyIDw8IG1fc2l6ZTsKICAgICBlbmNvZGVy
IDw8IG1fc2NhbGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1JlbW90
ZUxheWVyVHJlZVRyYW5zYWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1JlbW90
ZUxheWVyVHJlZVRyYW5zYWN0aW9uLmgKaW5kZXggYzdlOWEwOGU3MjFjYzA5YjUzYmJkNjAxYWZh
YTIzY2MzZjg0ODAwMy4uMWVlM2M2N2NjNzU0OGU3ZDRjNWRhMzk0ZjYzZWQ2NTRjN2ZhOTg0OSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9SZW1vdGVMYXllclRyZWVUcmFu
c2FjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvUmVtb3RlTGF5ZXJUcmVl
VHJhbnNhY3Rpb24uaApAQCAtNDIsNyArNDIsNyBAQAogCiBuYW1lc3BhY2UgSVBDIHsKIGNsYXNz
IEFyZ3VtZW50RGVjb2RlcjsKLWNsYXNzIEFyZ3VtZW50RW5jb2RlcjsKK2NsYXNzIEVuY29kZXI7
CiB9CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtOTYsNyArOTYsNyBAQCBwdWJsaWM6CiAgICAg
c3RydWN0IExheWVyQ3JlYXRpb25Qcm9wZXJ0aWVzIHsKICAgICAgICAgTGF5ZXJDcmVhdGlvblBy
b3BlcnRpZXMoKTsKIAotICAgICAgICB2b2lkIGVuY29kZShJUEM6OkFyZ3VtZW50RW5jb2RlciYp
IGNvbnN0OworICAgICAgICB2b2lkIGVuY29kZShJUEM6OkVuY29kZXImKSBjb25zdDsKICAgICAg
ICAgc3RhdGljIGJvb2wgZGVjb2RlKElQQzo6QXJndW1lbnREZWNvZGVyJiwgTGF5ZXJDcmVhdGlv
blByb3BlcnRpZXMmKTsKIAogICAgICAgICBXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpQbGF0Zm9y
bUxheWVySUQgbGF5ZXJJRDsKQEAgLTExMCw3ICsxMTAsNyBAQCBwdWJsaWM6CiAgICAgICAgIExh
eWVyUHJvcGVydGllcygpOwogICAgICAgICBMYXllclByb3BlcnRpZXMoY29uc3QgTGF5ZXJQcm9w
ZXJ0aWVzJiBvdGhlcik7CiAKLSAgICAgICAgdm9pZCBlbmNvZGUoSVBDOjpBcmd1bWVudEVuY29k
ZXImKSBjb25zdDsKKyAgICAgICAgdm9pZCBlbmNvZGUoSVBDOjpFbmNvZGVyJikgY29uc3Q7CiAg
ICAgICAgIHN0YXRpYyBib29sIGRlY29kZShJUEM6OkFyZ3VtZW50RGVjb2RlciYsIExheWVyUHJv
cGVydGllcyYpOwogCiAgICAgICAgIHZvaWQgbm90ZVByb3BlcnRpZXNDaGFuZ2VkKExheWVyQ2hh
bmdlIGNoYW5nZUZsYWdzKQpAQCAtMTczLDcgKzE3Myw3IEBAIHB1YmxpYzoKICAgICBleHBsaWNp
dCBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbigpOwogICAgIH5SZW1vdGVMYXllclRyZWVUcmFu
c2FjdGlvbigpOwogCi0gICAgdm9pZCBlbmNvZGUoSVBDOjpBcmd1bWVudEVuY29kZXImKSBjb25z
dDsKKyAgICB2b2lkIGVuY29kZShJUEM6OkVuY29kZXImKSBjb25zdDsKICAgICBzdGF0aWMgYm9v
bCBkZWNvZGUoSVBDOjpBcmd1bWVudERlY29kZXImLCBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlv
biYpOwogCiAgICAgV2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6UGxhdGZvcm1MYXllcklEIHJvb3RM
YXllcklEKCkgY29uc3QgeyByZXR1cm4gbV9yb290TGF5ZXJJRDsgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvU2hhcmVkL21hYy9SZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbi5tbSBiL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24ubW0KaW5k
ZXggNmI0MTY3YjZjOTkxN2Q5YjMyZTU1Y2QxN2ZiNDBjMjJlOGVkMGQ0My4uZmYwZjAwZmI5ZDJm
YWNkMTNlOTRjMjYwMzcxZmU5MmYwM2Q4NWI5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
U2hhcmVkL21hYy9SZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbi5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvbWFjL1JlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uLm1tCkBAIC0yNyw4ICsy
Nyw4IEBACiAjaW1wb3J0ICJSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbi5oIgogCiAjaW1wb3J0
ICJBcmd1bWVudENvZGVycy5oIgorI2ltcG9ydCAiRW5jb2Rlci5oIgogI2ltcG9ydCAiTWVzc2Fn
ZURlY29kZXIuaCIKLSNpbXBvcnQgIk1lc3NhZ2VFbmNvZGVyLmgiCiAjaW1wb3J0ICJQbGF0Zm9y
bUNBQW5pbWF0aW9uUmVtb3RlLmgiCiAjaW1wb3J0ICJQbGF0Zm9ybUNBTGF5ZXJSZW1vdGUuaCIK
ICNpbXBvcnQgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgpAQCAtNTAsNyArNTAsNyBAQCBSZW1v
dGVMYXllclRyZWVUcmFuc2FjdGlvbjo6TGF5ZXJDcmVhdGlvblByb3BlcnRpZXM6OkxheWVyQ3Jl
YXRpb25Qcm9wZXJ0aWVzKCkKIHsKIH0KIAotdm9pZCBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlv
bjo6TGF5ZXJDcmVhdGlvblByb3BlcnRpZXM6OmVuY29kZShJUEM6OkFyZ3VtZW50RW5jb2RlciYg
ZW5jb2RlcikgY29uc3QKK3ZvaWQgUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OkxheWVyQ3Jl
YXRpb25Qcm9wZXJ0aWVzOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewog
ICAgIGVuY29kZXIgPDwgbGF5ZXJJRDsKICAgICBlbmNvZGVyLmVuY29kZUVudW0odHlwZSk7CkBA
IC0xNTcsNyArMTU3LDcgQEAgUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OkxheWVyUHJvcGVy
dGllczo6TGF5ZXJQcm9wZXJ0aWVzKGNvbnN0IExheWVyUHJvcGVydGkKICAgICAgICAgZmlsdGVy
cyA9IHN0ZDo6bWFrZV91bmlxdWU8RmlsdGVyT3BlcmF0aW9ucz4oKm90aGVyLmZpbHRlcnMpOwog
fQogCi12b2lkIFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpMYXllclByb3BlcnRpZXM6OmVu
Y29kZShJUEM6OkFyZ3VtZW50RW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3ZvaWQgUmVtb3RlTGF5
ZXJUcmVlVHJhbnNhY3Rpb246OkxheWVyUHJvcGVydGllczo6ZW5jb2RlKElQQzo6RW5jb2RlciYg
ZW5jb2RlcikgY29uc3QKIHsKICAgICBlbmNvZGVyLmVuY29kZUVudW0oY2hhbmdlZFByb3BlcnRp
ZXMpOwogCkBAIC01MTEsNyArNTExLDcgQEAgUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246On5S
ZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbigpCiB7CiB9CiAKLXZvaWQgUmVtb3RlTGF5ZXJUcmVl
VHJhbnNhY3Rpb246OmVuY29kZShJUEM6OkFyZ3VtZW50RW5jb2RlciYgZW5jb2RlcikgY29uc3QK
K3ZvaWQgUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OmVuY29kZShJUEM6OkVuY29kZXImIGVu
Y29kZXIpIGNvbnN0CiB7CiAgICAgZW5jb2RlciA8PCBtX3Jvb3RMYXllcklEOwogICAgIGVuY29k
ZXIgPDwgbV9jcmVhdGVkTGF5ZXJzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVk
L21hYy9TYW5kYm94RXh0ZW5zaW9uTWFjLm1tIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9T
YW5kYm94RXh0ZW5zaW9uTWFjLm1tCmluZGV4IDE4NDI1NDA0YWU2MTZiMDRlYTRjYTY3NDFkNWQ2
YWE1ZTJmNmMxYmUuLmMzNWUwYzJhYjkwODk1OWI0MmJlOTliOWQ2MWRkNmFiY2UwYWE4YjEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvU2FuZGJveEV4dGVuc2lvbk1hYy5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1NhbmRib3hFeHRlbnNpb25NYWMubW0K
QEAgLTI5LDggKzI5LDggQEAKICNpZiBFTkFCTEUoU0FOREJPWF9FWFRFTlNJT05TKQogCiAjaW1w
b3J0ICJBcmd1bWVudERlY29kZXIuaCIKLSNpbXBvcnQgIkFyZ3VtZW50RW5jb2Rlci5oIgogI2lt
cG9ydCAiRGF0YVJlZmVyZW5jZS5oIgorI2ltcG9ydCAiRW5jb2Rlci5oIgogI2ltcG9ydCAiV2Vi
S2l0U3lzdGVtSW50ZXJmYWNlLmgiCiAjaW1wb3J0IDxXZWJDb3JlL0ZpbGVTeXN0ZW0uaD4KICNp
bXBvcnQgPHN5cy9zdGF0Lmg+CkBAIC01Myw3ICs1Myw3IEBAIFNhbmRib3hFeHRlbnNpb246Okhh
bmRsZTo6fkhhbmRsZSgpCiAgICAgfQogfQogCi12b2lkIFNhbmRib3hFeHRlbnNpb246OkhhbmRs
ZTo6ZW5jb2RlKElQQzo6QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAordm9pZCBTYW5k
Ym94RXh0ZW5zaW9uOjpIYW5kbGU6OmVuY29kZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0
CiB7CiAgICAgaWYgKCFtX3NhbmRib3hFeHRlbnNpb24pIHsKICAgICAgICAgZW5jb2RlciA8PCBJ
UEM6OkRhdGFSZWZlcmVuY2UoKTsKQEAgLTEyMyw3ICsxMjMsNyBAQCBzaXplX3QgU2FuZGJveEV4
dGVuc2lvbjo6SGFuZGxlQXJyYXk6OnNpemUoKSBjb25zdAogICAgIHJldHVybiBtX3NpemU7CiB9
CiAKLXZvaWQgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlQXJyYXk6OmVuY29kZShJUEM6OkFyZ3Vt
ZW50RW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3ZvaWQgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxl
QXJyYXk6OmVuY29kZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB7CiAgICAgZW5jb2Rl
ciA8PCBzdGF0aWNfY2FzdDx1aW50NjRfdD4oc2l6ZSgpKTsKICAgICBmb3IgKHNpemVfdCBpID0g
MDsgaSA8IG1fc2l6ZTsgKytpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21h
Yy9TZWNJdGVtUmVxdWVzdERhdGEuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9TZWNJ
dGVtUmVxdWVzdERhdGEuY3BwCmluZGV4IGU4Y2ZkOGRkMmFiYWZiMzc5MDQ3NjRhNTI1NGJlMzM0
MTc4MWMyYzYuLjE4N2UwZDU5NzExZjA4OTZlNWVkZjdiMmYzZGVhNGRlMzc3M2QyZWEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvU2VjSXRlbVJlcXVlc3REYXRhLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1NlY0l0ZW1SZXF1ZXN0RGF0YS5jcHAKQEAg
LTQ5LDcgKzQ5LDcgQEAgU2VjSXRlbVJlcXVlc3REYXRhOjpTZWNJdGVtUmVxdWVzdERhdGEoVHlw
ZSB0eXBlLCBDRkRpY3Rpb25hcnlSZWYgcXVlcnksIENGRGljdGkKIHsKIH0KIAotdm9pZCBTZWNJ
dGVtUmVxdWVzdERhdGE6OmVuY29kZShJUEM6OkFyZ3VtZW50RW5jb2RlciYgZW5jb2RlcikgY29u
c3QKK3ZvaWQgU2VjSXRlbVJlcXVlc3REYXRhOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVy
KSBjb25zdAogewogICAgIGVuY29kZXIuZW5jb2RlRW51bShtX3R5cGUpOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1NlY0l0ZW1SZXF1ZXN0RGF0YS5oIGIvU291cmNl
L1dlYktpdDIvU2hhcmVkL21hYy9TZWNJdGVtUmVxdWVzdERhdGEuaAppbmRleCA4ZmQwMWQ3MmE2
NjEzYzk2NzY0YTMxOTE0ZjA5OTdiYjZlYjQ4N2Q4Li5mYzM2NDUwZjQ4MGMwZjE2YmQ5NzA2NmYw
MmQ2MjhjNTNhM2UyMjg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1Nl
Y0l0ZW1SZXF1ZXN0RGF0YS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvU2VjSXRl
bVJlcXVlc3REYXRhLmgKQEAgLTMwLDcgKzMwLDcgQEAKIAogbmFtZXNwYWNlIElQQyB7CiAgICAg
Y2xhc3MgQXJndW1lbnREZWNvZGVyOwotICAgIGNsYXNzIEFyZ3VtZW50RW5jb2RlcjsKKyAgICBj
bGFzcyBFbmNvZGVyOwogfQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTQ5LDcgKzQ5LDcgQEAg
cHVibGljOgogICAgIFNlY0l0ZW1SZXF1ZXN0RGF0YShUeXBlLCBDRkRpY3Rpb25hcnlSZWYgcXVl
cnkpOwogICAgIFNlY0l0ZW1SZXF1ZXN0RGF0YShUeXBlLCBDRkRpY3Rpb25hcnlSZWYgcXVlcnks
IENGRGljdGlvbmFyeVJlZiBhdHRyaWJ1dGVzVG9NYXRjaCk7CiAKLSAgICB2b2lkIGVuY29kZShJ
UEM6OkFyZ3VtZW50RW5jb2RlciYpIGNvbnN0OworICAgIHZvaWQgZW5jb2RlKElQQzo6RW5jb2Rl
ciYpIGNvbnN0OwogICAgIHN0YXRpYyBib29sIGRlY29kZShJUEM6OkFyZ3VtZW50RGVjb2RlciYs
IFNlY0l0ZW1SZXF1ZXN0RGF0YSYpOwogCiAgICAgVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4g
bV90eXBlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1NlY0l0ZW1S
ZXNwb25zZURhdGEuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9TZWNJdGVtUmVzcG9u
c2VEYXRhLmNwcAppbmRleCA0YjNhYWE3Yjg0ODY4N2RmMzUwN2Y4NTNhMGIzNDFiNTY3YmYyNGVl
Li4xMTJiMGI1ZDE3NmJlODdiYzUxNDk3YmRiODRiZTBjNGZkOGEwNWJhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1NlY0l0ZW1SZXNwb25zZURhdGEuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvU2VjSXRlbVJlc3BvbnNlRGF0YS5jcHAKQEAgLTQxLDcg
KzQxLDcgQEAgU2VjSXRlbVJlc3BvbnNlRGF0YTo6U2VjSXRlbVJlc3BvbnNlRGF0YShPU1N0YXR1
cyByZXN1bHRDb2RlLCBDRlR5cGVSZWYgcmVzdWx0T2IKIHsKIH0KIAotdm9pZCBTZWNJdGVtUmVz
cG9uc2VEYXRhOjplbmNvZGUoSVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit2
b2lkIFNlY0l0ZW1SZXNwb25zZURhdGE6OmVuY29kZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNv
bnN0CiB7CiAgICAgZW5jb2RlciA8PCBzdGF0aWNfY2FzdDxpbnQ2NF90PihtX3Jlc3VsdENvZGUp
OwogICAgIGVuY29kZXIgPDwgc3RhdGljX2Nhc3Q8Ym9vbD4obV9yZXN1bHRPYmplY3QuZ2V0KCkp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9TZWNJdGVtUmVzcG9uc2VE
YXRhLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1NlY0l0ZW1SZXNwb25zZURhdGEuaApp
bmRleCAzMDVmNTg5NDMzZWIzMmUwZjBhODE2NzAxNWNjOWI4ZDYxMjkzOGQ1Li4wY2Q5YmIwYmEy
MjYxMmQ1MTRlYzUxZDcxNTVkMTc4NWU1NzY3MzNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvbWFjL1NlY0l0ZW1SZXNwb25zZURhdGEuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvbWFjL1NlY0l0ZW1SZXNwb25zZURhdGEuaApAQCAtMzAsNyArMzAsNyBAQAogCiBuYW1l
c3BhY2UgSVBDIHsKICAgICBjbGFzcyBBcmd1bWVudERlY29kZXI7Ci0gICAgY2xhc3MgQXJndW1l
bnRFbmNvZGVyOworICAgIGNsYXNzIEVuY29kZXI7CiB9CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpA
QCAtNDAsNyArNDAsNyBAQCBwdWJsaWM6CiAgICAgU2VjSXRlbVJlc3BvbnNlRGF0YSgpOwogICAg
IFNlY0l0ZW1SZXNwb25zZURhdGEoT1NTdGF0dXMsIENGVHlwZVJlZiByZXN1bHQpOwogCi0gICAg
dm9pZCBlbmNvZGUoSVBDOjpBcmd1bWVudEVuY29kZXImKSBjb25zdDsKKyAgICB2b2lkIGVuY29k
ZShJUEM6OkVuY29kZXImKSBjb25zdDsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoSVBDOjpBcmd1
bWVudERlY29kZXImLCBTZWNJdGVtUmVzcG9uc2VEYXRhJik7CiAKICAgICBSZXRhaW5QdHI8Q0ZU
eXBlUmVmPiYgcmVzdWx0T2JqZWN0KCkgeyByZXR1cm4gbV9yZXN1bHRPYmplY3Q7IH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvV2ViQ29yZUFyZ3VtZW50Q29kZXJzTWFj
Lm1tIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9XZWJDb3JlQXJndW1lbnRDb2RlcnNNYWMu
bW0KaW5kZXggMzAyMzdmZDBlYjQ3ZmY4MjVmZTg0NGM1YWM4NGM2MzA4ZWVhMGY2NS4uNzlkMzk2
ODE0YzAwNDdkYjljNDE5OWI4M2VlMDI3NDUwOWI3ZmU2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL21hYy9XZWJDb3JlQXJndW1lbnRDb2RlcnNNYWMubW0KKysrIGIvU291cmNl
L1dlYktpdDIvU2hhcmVkL21hYy9XZWJDb3JlQXJndW1lbnRDb2RlcnNNYWMubW0KQEAgLTU4LDcg
KzU4LDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiBuYW1lc3BhY2UgSVBDIHsKIAogI2lm
IFVTRShDRk5FVFdPUkspCi12b2lkIEFyZ3VtZW50Q29kZXI8UmVzb3VyY2VSZXF1ZXN0Pjo6ZW5j
b2RlUGxhdGZvcm1EYXRhKEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgY29uc3QgUmVzb3VyY2VS
ZXF1ZXN0JiByZXNvdXJjZVJlcXVlc3QpCit2b2lkIEFyZ3VtZW50Q29kZXI8UmVzb3VyY2VSZXF1
ZXN0Pjo6ZW5jb2RlUGxhdGZvcm1EYXRhKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFJlc291cmNl
UmVxdWVzdCYgcmVzb3VyY2VSZXF1ZXN0KQogewogICAgIFJldGFpblB0cjxDRlVSTFJlcXVlc3RS
ZWY+IHJlcXVlc3RUb1NlcmlhbGl6ZSA9IHJlc291cmNlUmVxdWVzdC5jZlVSTFJlcXVlc3QoRG9O
b3RVcGRhdGVIVFRQQm9keSk7CiAKQEAgLTg3LDcgKzg3LDcgQEAgdm9pZCBBcmd1bWVudENvZGVy
PFJlc291cmNlUmVxdWVzdD46OmVuY29kZVBsYXRmb3JtRGF0YShBcmd1bWVudEVuY29kZXImIGVu
Y29kZXIKICAgICBlbmNvZGVyLmVuY29kZUVudW0ocmVzb3VyY2VSZXF1ZXN0LnJlcXVlc3Rlcigp
KTsKIH0KICNlbHNlCi12b2lkIEFyZ3VtZW50Q29kZXI8UmVzb3VyY2VSZXF1ZXN0Pjo6ZW5jb2Rl
UGxhdGZvcm1EYXRhKEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgY29uc3QgUmVzb3VyY2VSZXF1
ZXN0JiByZXNvdXJjZVJlcXVlc3QpCit2b2lkIEFyZ3VtZW50Q29kZXI8UmVzb3VyY2VSZXF1ZXN0
Pjo6ZW5jb2RlUGxhdGZvcm1EYXRhKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFJlc291cmNlUmVx
dWVzdCYgcmVzb3VyY2VSZXF1ZXN0KQogewogICAgIFJldGFpblB0cjxOU1VSTFJlcXVlc3Q+IHJl
cXVlc3RUb1NlcmlhbGl6ZSA9IHJlc291cmNlUmVxdWVzdC5uc1VSTFJlcXVlc3QoRG9Ob3RVcGRh
dGVIVFRQQm9keSk7CiAKQEAgLTE2MSw3ICsxNjEsNyBAQCBib29sIEFyZ3VtZW50Q29kZXI8UmVz
b3VyY2VSZXF1ZXN0Pjo6ZGVjb2RlUGxhdGZvcm1EYXRhKEFyZ3VtZW50RGVjb2RlciYgZGVjb2Rl
cgogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIEFyZ3VtZW50Q29kZXI8Q2VydGlmaWNhdGVJ
bmZvPjo6ZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgY29uc3QgQ2VydGlmaWNhdGVJ
bmZvJiBjZXJ0aWZpY2F0ZUluZm8pCit2b2lkIEFyZ3VtZW50Q29kZXI8Q2VydGlmaWNhdGVJbmZv
Pjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IENlcnRpZmljYXRlSW5mbyYgY2VydGlm
aWNhdGVJbmZvKQogewogICAgIGVuY29kZXIuZW5jb2RlRW51bShjZXJ0aWZpY2F0ZUluZm8udHlw
ZSgpKTsKIApAQCAtMjEzLDcgKzIxMyw3IEBAIGJvb2wgQXJndW1lbnRDb2RlcjxDZXJ0aWZpY2F0
ZUluZm8+OjpkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBDZXJ0aWZpY2F0CiAgICAg
cmV0dXJuIHRydWU7CiB9CiAKLXN0YXRpYyB2b2lkIGVuY29kZU5TRXJyb3IoQXJndW1lbnRFbmNv
ZGVyJiBlbmNvZGVyLCBOU0Vycm9yICpuc0Vycm9yKQorc3RhdGljIHZvaWQgZW5jb2RlTlNFcnJv
cihFbmNvZGVyJiBlbmNvZGVyLCBOU0Vycm9yICpuc0Vycm9yKQogewogICAgIFN0cmluZyBkb21h
aW4gPSBbbnNFcnJvciBkb21haW5dOwogICAgIGVuY29kZXIgPDwgZG9tYWluOwpAQCAtMjcxLDcg
KzI3MSw3IEBAIHN0YXRpYyB2b2lkIGVuY29kZU5TRXJyb3IoQXJndW1lbnRFbmNvZGVyJiBlbmNv
ZGVyLCBOU0Vycm9yICpuc0Vycm9yKQogICAgICAgICBlbmNvZGVyIDw8IGZhbHNlOwogfQogCi12
b2lkIEFyZ3VtZW50Q29kZXI8UmVzb3VyY2VFcnJvcj46OmVuY29kZVBsYXRmb3JtRGF0YShBcmd1
bWVudEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFJlc291cmNlRXJyb3ImIHJlc291cmNlRXJyb3Ip
Cit2b2lkIEFyZ3VtZW50Q29kZXI8UmVzb3VyY2VFcnJvcj46OmVuY29kZVBsYXRmb3JtRGF0YShF
bmNvZGVyJiBlbmNvZGVyLCBjb25zdCBSZXNvdXJjZUVycm9yJiByZXNvdXJjZUVycm9yKQogewog
ICAgIGJvb2wgZXJyb3JJc051bGwgPSByZXNvdXJjZUVycm9yLmlzTnVsbCgpOwogICAgIGVuY29k
ZXIgPDwgZXJyb3JJc051bGw7CkBAIC0zMzMsNyArMzMzLDcgQEAgYm9vbCBBcmd1bWVudENvZGVy
PFJlc291cmNlRXJyb3I+OjpkZWNvZGVQbGF0Zm9ybURhdGEoQXJndW1lbnREZWNvZGVyJiBkZWNv
ZGVyLAogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIEFyZ3VtZW50Q29kZXI8UHJvdGVjdGlv
blNwYWNlPjo6ZW5jb2RlUGxhdGZvcm1EYXRhKEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgY29u
c3QgUHJvdGVjdGlvblNwYWNlJiBzcGFjZSkKK3ZvaWQgQXJndW1lbnRDb2RlcjxQcm90ZWN0aW9u
U3BhY2U+OjplbmNvZGVQbGF0Zm9ybURhdGEoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgUHJvdGVj
dGlvblNwYWNlJiBzcGFjZSkKIHsKICAgICBSZXRhaW5QdHI8TlNNdXRhYmxlRGF0YT4gZGF0YSA9
IGFkb3B0TlMoW1tOU011dGFibGVEYXRhIGFsbG9jXSBpbml0XSk7CiAgICAgUmV0YWluUHRyPE5T
S2V5ZWRBcmNoaXZlcj4gYXJjaGl2ZXIgPSBhZG9wdE5TKFtbTlNLZXllZEFyY2hpdmVyIGFsbG9j
XSBpbml0Rm9yV3JpdGluZ1dpdGhNdXRhYmxlRGF0YTpkYXRhLmdldCgpXSk7CkBAIC0zNjIsNyAr
MzYyLDcgQEAgYm9vbCBBcmd1bWVudENvZGVyPFByb3RlY3Rpb25TcGFjZT46OmRlY29kZVBsYXRm
b3JtRGF0YShBcmd1bWVudERlY29kZXImIGRlY29kZXIKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAot
dm9pZCBBcmd1bWVudENvZGVyPENyZWRlbnRpYWw+OjplbmNvZGVQbGF0Zm9ybURhdGEoQXJndW1l
bnRFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBDcmVkZW50aWFsJiBjcmVkZW50aWFsKQordm9pZCBB
cmd1bWVudENvZGVyPENyZWRlbnRpYWw+OjplbmNvZGVQbGF0Zm9ybURhdGEoRW5jb2RlciYgZW5j
b2RlciwgY29uc3QgQ3JlZGVudGlhbCYgY3JlZGVudGlhbCkKIHsKICAgICBOU1VSTENyZWRlbnRp
YWwgKm5zQ3JlZGVudGlhbCA9IGNyZWRlbnRpYWwubnNDcmVkZW50aWFsKCk7CiAgICAgLy8gTlNV
UkxDcmVkZW50aWFsIGRvZXNuJ3Qgc2VyaWFsaXplIGlkZW50aXRpZXMgY29ycmVjdGx5LCBzbyB3
ZSBlbmNvZGUgdGhlIHBpZWNlcyBpbmRpdmlkdWFsbHkKQEAgLTQzNiwxMiArNDM2LDEyIEBAIGJv
b2wgQXJndW1lbnRDb2RlcjxDcmVkZW50aWFsPjo6ZGVjb2RlUGxhdGZvcm1EYXRhKEFyZ3VtZW50
RGVjb2RlciYgZGVjb2RlciwgQ3JlCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgQXJndW1l
bnRDb2RlcjxNYWNoU2VuZFJpZ2h0Pjo6ZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2Rlciwg
Y29uc3QgTWFjaFNlbmRSaWdodCYgc2VuZFJpZ2h0KQordm9pZCBBcmd1bWVudENvZGVyPE1hY2hT
ZW5kUmlnaHQ+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgTWFjaFNlbmRSaWdodCYg
c2VuZFJpZ2h0KQogewogICAgIGVuY29kZXIgPDwgQXR0YWNobWVudChzZW5kUmlnaHQuY29weVNl
bmRSaWdodCgpLmxlYWtTZW5kUmlnaHQoKSwgTUFDSF9NU0dfVFlQRV9NT1ZFX1NFTkQpOwogfQog
Ci12b2lkIEFyZ3VtZW50Q29kZXI8TWFjaFNlbmRSaWdodD46OmVuY29kZShBcmd1bWVudEVuY29k
ZXImIGVuY29kZXIsIE1hY2hTZW5kUmlnaHQmJiBzZW5kUmlnaHQpCit2b2lkIEFyZ3VtZW50Q29k
ZXI8TWFjaFNlbmRSaWdodD46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBNYWNoU2VuZFJpZ2h0
JiYgc2VuZFJpZ2h0KQogewogICAgIGVuY29kZXIgPDwgQXR0YWNobWVudChzZW5kUmlnaHQubGVh
a1NlbmRSaWdodCgpLCBNQUNIX01TR19UWVBFX01PVkVfU0VORCk7CiB9CkBAIC00NTksNyArNDU5
LDcgQEAgYm9vbCBBcmd1bWVudENvZGVyPE1hY2hTZW5kUmlnaHQ+OjpkZWNvZGUoQXJndW1lbnRE
ZWNvZGVyJiBkZWNvZGVyLCBNYWNoU2VuZFJpZ2gKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9p
ZCBBcmd1bWVudENvZGVyPEtleXByZXNzQ29tbWFuZD46OmVuY29kZShBcmd1bWVudEVuY29kZXIm
IGVuY29kZXIsIGNvbnN0IEtleXByZXNzQ29tbWFuZCYga2V5cHJlc3NDb21tYW5kKQordm9pZCBB
cmd1bWVudENvZGVyPEtleXByZXNzQ29tbWFuZD46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBj
b25zdCBLZXlwcmVzc0NvbW1hbmQmIGtleXByZXNzQ29tbWFuZCkKIHsKICAgICBlbmNvZGVyIDw8
IGtleXByZXNzQ29tbWFuZC5jb21tYW5kTmFtZSA8PCBrZXlwcmVzc0NvbW1hbmQudGV4dDsKIH0K
QEAgLTQ3Niw3ICs0NzYsNyBAQCBib29sIEFyZ3VtZW50Q29kZXI8S2V5cHJlc3NDb21tYW5kPjo6
ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgS2V5cHJlc3NDbwogfQogCiAjaWYgRU5B
QkxFKENPTlRFTlRfRklMVEVSSU5HKQotdm9pZCBBcmd1bWVudENvZGVyPENvbnRlbnRGaWx0ZXJV
bmJsb2NrSGFuZGxlcj46OmVuY29kZShBcmd1bWVudEVuY29kZXImIGVuY29kZXIsIGNvbnN0IENv
bnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlciYgY29udGVudEZpbHRlclVuYmxvY2tIYW5kbGVyKQor
dm9pZCBBcmd1bWVudENvZGVyPENvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlcj46OmVuY29kZShF
bmNvZGVyJiBlbmNvZGVyLCBjb25zdCBDb250ZW50RmlsdGVyVW5ibG9ja0hhbmRsZXImIGNvbnRl
bnRGaWx0ZXJVbmJsb2NrSGFuZGxlcikKIHsKICAgICBSZXRhaW5QdHI8TlNNdXRhYmxlRGF0YT4g
ZGF0YSA9IGFkb3B0TlMoW1tOU011dGFibGVEYXRhIGFsbG9jXSBpbml0XSk7CiAgICAgUmV0YWlu
UHRyPE5TS2V5ZWRBcmNoaXZlcj4gYXJjaGl2ZXIgPSBhZG9wdE5TKFtbTlNLZXllZEFyY2hpdmVy
IGFsbG9jXSBpbml0Rm9yV3JpdGluZ1dpdGhNdXRhYmxlRGF0YTpkYXRhLmdldCgpXSk7CkBAIC01
MTAsNyArNTEwLDcgQEAgc3RhdGljIE5TU3RyaW5nICpkZXZpY2VDb250ZXh0S2V5KCkKICAgICBy
ZXR1cm4ga2V5OwogfQogCi12b2lkIEFyZ3VtZW50Q29kZXI8TWVkaWFQbGF5YmFja1RhcmdldENv
bnRleHQ+OjplbmNvZGVQbGF0Zm9ybURhdGEoQXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBjb25z
dCBNZWRpYVBsYXliYWNrVGFyZ2V0Q29udGV4dCYgdGFyZ2V0KQordm9pZCBBcmd1bWVudENvZGVy
PE1lZGlhUGxheWJhY2tUYXJnZXRDb250ZXh0Pjo6ZW5jb2RlUGxhdGZvcm1EYXRhKEVuY29kZXIm
IGVuY29kZXIsIGNvbnN0IE1lZGlhUGxheWJhY2tUYXJnZXRDb250ZXh0JiB0YXJnZXQpCiB7CiAg
ICAgUmV0YWluUHRyPE5TTXV0YWJsZURhdGE+IGRhdGEgPSBhZG9wdE5TKFtbTlNNdXRhYmxlRGF0
YSBhbGxvY10gaW5pdF0pOwogICAgIFJldGFpblB0cjxOU0tleWVkQXJjaGl2ZXI+IGFyY2hpdmVy
ID0gYWRvcHROUyhbW05TS2V5ZWRBcmNoaXZlciBhbGxvY10gaW5pdEZvcldyaXRpbmdXaXRoTXV0
YWJsZURhdGE6ZGF0YS5nZXQoKV0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVk
L21hYy9XZWJHZXN0dXJlRXZlbnQuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9XZWJH
ZXN0dXJlRXZlbnQuY3BwCmluZGV4IDg3Mjg4ZmE5YmI1Y2ExMTUxYTVhYzFlZTZkODA0ZjYyNTc1
Yzk5YWYuLjVkYzcwYmFmNDc1NjYxYmU2NDZjYTc4MmQ5ZDg3YmJhODVjZjIxNTQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvV2ViR2VzdHVyZUV2ZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1dlYkdlc3R1cmVFdmVudC5jcHAKQEAgLTM0LDcgKzM0
LDcgQEAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLXZvaWQgV2ViR2VzdHVyZUV2ZW50OjplbmNv
ZGUoSVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit2b2lkIFdlYkdlc3R1cmVF
dmVudDo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKIHsKICAgICBXZWJFdmVu
dDo6ZW5jb2RlKGVuY29kZXIpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
bWFjL1dlYkdlc3R1cmVFdmVudC5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9XZWJHZXN0
dXJlRXZlbnQuaAppbmRleCBiMzYyYjVhZDcxYmE3Yzg5NWQ2NThjODQzNWI5NjA4MWQyZDAxZTcz
Li45ZmFiZjQxZWJkZGQ2MDk4MGRlNjFlMTU4OWU3NmY2NzgxYTFhNWFhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1dlYkdlc3R1cmVFdmVudC5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9tYWMvV2ViR2VzdHVyZUV2ZW50LmgKQEAgLTM3LDcgKzM3LDcgQEAKIAog
bmFtZXNwYWNlIElQQyB7CiBjbGFzcyBBcmd1bWVudERlY29kZXI7Ci1jbGFzcyBBcmd1bWVudEVu
Y29kZXI7CitjbGFzcyBFbmNvZGVyOwogfQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTU5LDcg
KzU5LDcgQEAgcHVibGljOgogICAgIGZsb2F0IGdlc3R1cmVTY2FsZSgpIGNvbnN0IHsgcmV0dXJu
IG1fZ2VzdHVyZVNjYWxlOyB9CiAgICAgZmxvYXQgZ2VzdHVyZVJvdGF0aW9uKCkgY29uc3QgeyBy
ZXR1cm4gbV9nZXN0dXJlUm90YXRpb247IH0KIAotICAgIHZvaWQgZW5jb2RlKElQQzo6QXJndW1l
bnRFbmNvZGVyJikgY29uc3Q7CisgICAgdm9pZCBlbmNvZGUoSVBDOjpFbmNvZGVyJikgY29uc3Q7
CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKElQQzo6QXJndW1lbnREZWNvZGVyJiwgV2ViR2VzdHVy
ZUV2ZW50Jik7CiAgICAgCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hh
cmVkL21hYy9XZWJIaXRUZXN0UmVzdWx0RGF0YS5tbSBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9t
YWMvV2ViSGl0VGVzdFJlc3VsdERhdGEubW0KaW5kZXggODRiOWQ5OWFjN2VlNGFhNWFkMmYxNDgz
NjRkMjFiZmY2MjE4Y2JhMy4uMDFmNWZjODhhODRmMjBjODY1OWExYzc4NDQzNTM2OWYwNTFlOWU3
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9XZWJIaXRUZXN0UmVzdWx0
RGF0YS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1dlYkhpdFRlc3RSZXN1bHRE
YXRhLm1tCkBAIC0zMCwxNCArMzAsMTQgQEAKIAogI2ltcG9ydCAiQXJndW1lbnRDb2RlcnNDRi5o
IgogI2ltcG9ydCAiQXJndW1lbnREZWNvZGVyLmgiCi0jaW1wb3J0ICJBcmd1bWVudEVuY29kZXIu
aCIKKyNpbXBvcnQgIkVuY29kZXIuaCIKICNpbXBvcnQgIldlYkNvcmVBcmd1bWVudENvZGVycy5o
IgogI2ltcG9ydCA8V2ViQ29yZS9EYXRhRGV0ZWN0b3JzU1BJLmg+CiAjaW1wb3J0IDxXZWJDb3Jl
L1RleHRJbmRpY2F0b3IuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLXZvaWQgV2ViSGl0VGVz
dFJlc3VsdERhdGE6OnBsYXRmb3JtRW5jb2RlKElQQzo6QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVy
KSBjb25zdAordm9pZCBXZWJIaXRUZXN0UmVzdWx0RGF0YTo6cGxhdGZvcm1FbmNvZGUoSVBDOjpF
bmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewogICAgIGJvb2wgaGFzQWN0aW9uQ29udGV4dCA9IGRl
dGVjdGVkRGF0YUFjdGlvbkNvbnRleHQ7CiAgICAgZW5jb2RlciA8PCBoYXNBY3Rpb25Db250ZXh0
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9BUElIaXRUZXN0UmVz
dWx0LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0FQSUhpdFRlc3RSZXN1bHQuaApp
bmRleCA3MDk1NzlhNmI0MTNlZjA1YzdmZTlhOTMxZjZiYjk5OTA5NWNkODkyLi40NTljYjJkZjRl
YzdkZTJiZGY3ZWM0NzQ2ZTZhN2ViZjYxZmY1NjI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0FQSUhpdFRlc3RSZXN1bHQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0FQSUhpdFRlc3RSZXN1bHQuaApAQCAtMzYsNyArMzYsNyBAQCBPQkpDX0NM
QVNTIEREQWN0aW9uQ29udGV4dDsKIAogbmFtZXNwYWNlIElQQyB7CiBjbGFzcyBBcmd1bWVudERl
Y29kZXI7Ci1jbGFzcyBBcmd1bWVudEVuY29kZXI7CitjbGFzcyBFbmNvZGVyOwogfQogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQXBw
bGVQYXkvV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BcHBsZVBheS9XZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eS5oCmluZGV4IGRkMjU5ZmI0
MmM0ZjZhNzA3YzE0YmM3MDRkOTk3MTFlOTc1N2I2YWUuLmEwY2U1ZTBmMzdjMzg5MTE0YzIxZTM2
YmJiNGRhYzQ3ZjUyMjIxOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
cHBsZVBheS9XZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BcHBsZVBheS9XZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eS5oCkBAIC03Miw3
ICs3Miw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgLy8gSVBDOjpNZXNzYWdlUmVjZWl2ZXIu
CiAgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6Ok1lc3Nh
Z2VEZWNvZGVyJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBkaWRSZWNlaXZlU3luY01lc3NhZ2UoSVBD
OjpDb25uZWN0aW9uJiwgSVBDOjpNZXNzYWdlRGVjb2RlciYsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6
Ok1lc3NhZ2VFbmNvZGVyPiYpIG92ZXJyaWRlOworICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNz
YWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6TWVzc2FnZURlY29kZXImLCBzdGQ6OnVuaXF1ZV9w
dHI8SVBDOjpFbmNvZGVyPiYpIG92ZXJyaWRlOwogCiAgICAgLy8gTWVzc2FnZSBoYW5kbGVycy4K
ICAgICB2b2lkIGNhbk1ha2VQYXltZW50cyhib29sJiByZXBseSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ2hpbGRQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0NoaWxkUHJvY2Vzc1Byb3h5LmNwcAppbmRleCBiMzlhNTIyYzM2ZmQ0NDJi
NGUxYmFjMjg1NDUwNjBiMWM5YWRjZDEwLi4yM2YyYzI3MjM1YjNjMDc1M2MwZjg4ZGViYTg3MDBh
ZTAyNzgzN2NlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ2hpbGRQcm9j
ZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9DaGlsZFByb2Nlc3NQ
cm94eS5jcHAKQEAgLTExOSw3ICsxMTksNyBAQCBDaGlsZFByb2Nlc3NQcm94eTo6U3RhdGUgQ2hp
bGRQcm9jZXNzUHJveHk6OnN0YXRlKCkgY29uc3QKICAgICByZXR1cm4gQ2hpbGRQcm9jZXNzUHJv
eHk6OlN0YXRlOjpSdW5uaW5nOwogfQogCi1ib29sIENoaWxkUHJvY2Vzc1Byb3h5OjpzZW5kTWVz
c2FnZShzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpNZXNzYWdlRW5jb2Rlcj4gZW5jb2RlciwgdW5zaWdu
ZWQgbWVzc2FnZVNlbmRGbGFncykKK2Jvb2wgQ2hpbGRQcm9jZXNzUHJveHk6OnNlbmRNZXNzYWdl
KHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+IGVuY29kZXIsIHVuc2lnbmVkIG1lc3NhZ2VT
ZW5kRmxhZ3MpCiB7CiAgICAgc3dpdGNoIChzdGF0ZSgpKSB7CiAgICAgY2FzZSBTdGF0ZTo6TGF1
bmNoaW5nOgpAQCAtMTYyLDcgKzE2Miw3IEBAIGJvb2wgQ2hpbGRQcm9jZXNzUHJveHk6OmRpc3Bh
dGNoTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6TWVzc2FnCiAgICAg
cmV0dXJuIG1fbWVzc2FnZVJlY2VpdmVyTWFwLmRpc3BhdGNoTWVzc2FnZShjb25uZWN0aW9uLCBk
ZWNvZGVyKTsKIH0KIAotYm9vbCBDaGlsZFByb2Nlc3NQcm94eTo6ZGlzcGF0Y2hTeW5jTWVzc2Fn
ZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6TWVzc2FnZURlY29kZXImIGRlY29k
ZXIsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6Ok1lc3NhZ2VFbmNvZGVyPiYgcmVwbHlFbmNvZGVyKQor
Ym9vbCBDaGlsZFByb2Nlc3NQcm94eTo6ZGlzcGF0Y2hTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rp
b24mIGNvbm5lY3Rpb24sIElQQzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIsIHN0ZDo6dW5pcXVl
X3B0cjxJUEM6OkVuY29kZXI+JiByZXBseUVuY29kZXIpCiB7CiAgICAgcmV0dXJuIG1fbWVzc2Fn
ZVJlY2VpdmVyTWFwLmRpc3BhdGNoU3luY01lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2RlciwgcmVw
bHlFbmNvZGVyKTsKIH0KQEAgLTE4Myw3ICsxODMsNyBAQCB2b2lkIENoaWxkUHJvY2Vzc1Byb3h5
OjpkaWRGaW5pc2hMYXVuY2hpbmcoUHJvY2Vzc0xhdW5jaGVyKiwgSVBDOjpDb25uZWN0aW9uOjpJ
ZAogICAgIG1fY29ubmVjdGlvbi0+b3BlbigpOwogCiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkg
PCBtX3BlbmRpbmdNZXNzYWdlcy5zaXplKCk7ICsraSkgewotICAgICAgICBzdGQ6OnVuaXF1ZV9w
dHI8SVBDOjpNZXNzYWdlRW5jb2Rlcj4gbWVzc2FnZSA9IFdURk1vdmUobV9wZW5kaW5nTWVzc2Fn
ZXNbaV0uZmlyc3QpOworICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiBtZXNz
YWdlID0gV1RGTW92ZShtX3BlbmRpbmdNZXNzYWdlc1tpXS5maXJzdCk7CiAgICAgICAgIHVuc2ln
bmVkIG1lc3NhZ2VTZW5kRmxhZ3MgPSBtX3BlbmRpbmdNZXNzYWdlc1tpXS5zZWNvbmQ7CiAgICAg
ICAgIG1fY29ubmVjdGlvbi0+c2VuZE1lc3NhZ2UoV1RGTW92ZShtZXNzYWdlKSwgbWVzc2FnZVNl
bmRGbGFncyk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0No
aWxkUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ2hpbGRQcm9jZXNz
UHJveHkuaAppbmRleCBhMmMzN2E3MjBhZjhmNDI3M2JhYzk1Y2UwMDdhZjdmYzU0NzkyMzEyLi5l
ZDhlMTA3MTI5M2MyMDY0ZTg1YmQ2OTJkZjgzYWVjMmRhM2NhMWY2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ2hpbGRQcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQ2hpbGRQcm9jZXNzUHJveHkuaApAQCAtNzEsNyArNzEsNyBAQCBwdWJs
aWM6CiAgICAgcGlkX3QgcHJvY2Vzc0lkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX3Byb2Nl
c3NMYXVuY2hlci0+cHJvY2Vzc0lkZW50aWZpZXIoKTsgfQogCiAgICAgYm9vbCBjYW5TZW5kTWVz
c2FnZSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRlKCkgIT0gU3RhdGU6OlRlcm1pbmF0ZWQ7fQotICAg
IGJvb2wgc2VuZE1lc3NhZ2Uoc3RkOjp1bmlxdWVfcHRyPElQQzo6TWVzc2FnZUVuY29kZXI+LCB1
bnNpZ25lZCBtZXNzYWdlU2VuZEZsYWdzKTsKKyAgICBib29sIHNlbmRNZXNzYWdlKHN0ZDo6dW5p
cXVlX3B0cjxJUEM6OkVuY29kZXI+LCB1bnNpZ25lZCBtZXNzYWdlU2VuZEZsYWdzKTsKIAogICAg
IHZvaWQgc2h1dERvd25Qcm9jZXNzKCk7CiAKQEAgLTgwLDcgKzgwLDcgQEAgcHJvdGVjdGVkOgog
ICAgIHZvaWQgZGlkRmluaXNoTGF1bmNoaW5nKFByb2Nlc3NMYXVuY2hlciosIElQQzo6Q29ubmVj
dGlvbjo6SWRlbnRpZmllcikgb3ZlcnJpZGU7CiAKICAgICBib29sIGRpc3BhdGNoTWVzc2FnZShJ
UEM6OkNvbm5lY3Rpb24mLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7Ci0gICAgYm9vbCBkaXNwYXRj
aFN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6TWVzc2FnZURlY29kZXImLCBzdGQ6
OnVuaXF1ZV9wdHI8SVBDOjpNZXNzYWdlRW5jb2Rlcj4mKTsKKyAgICBib29sIGRpc3BhdGNoU3lu
Y01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpNZXNzYWdlRGVjb2RlciYsIHN0ZDo6dW5p
cXVlX3B0cjxJUEM6OkVuY29kZXI+Jik7CiAgICAgCiAgICAgdmlydHVhbCB2b2lkIGdldExhdW5j
aE9wdGlvbnMoUHJvY2Vzc0xhdW5jaGVyOjpMYXVuY2hPcHRpb25zJik7CiAKQEAgLTg4LDcgKzg4
LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgY29ubmVjdGlvbldpbGxPcGVuKElQQzo6
Q29ubmVjdGlvbiYpOwogICAgIHZpcnR1YWwgdm9pZCBwcm9jZXNzV2lsbFNodXREb3duKElQQzo6
Q29ubmVjdGlvbiYpID0gMDsKIAotICAgIFZlY3RvcjxzdGQ6OnBhaXI8c3RkOjp1bmlxdWVfcHRy
PElQQzo6TWVzc2FnZUVuY29kZXI+LCB1bnNpZ25lZD4+IG1fcGVuZGluZ01lc3NhZ2VzOworICAg
IFZlY3RvcjxzdGQ6OnBhaXI8c3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4sIHVuc2lnbmVk
Pj4gbV9wZW5kaW5nTWVzc2FnZXM7CiAgICAgUmVmUHRyPFByb2Nlc3NMYXVuY2hlcj4gbV9wcm9j
ZXNzTGF1bmNoZXI7CiAgICAgUmVmUHRyPElQQzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOwog
ICAgIElQQzo6TWVzc2FnZVJlY2VpdmVyTWFwIG1fbWVzc2FnZVJlY2VpdmVyTWFwOwpAQCAtOTks
NyArOTksNyBAQCBib29sIENoaWxkUHJvY2Vzc1Byb3h5OjpzZW5kKFQmJiBtZXNzYWdlLCB1aW50
NjRfdCBkZXN0aW5hdGlvbklELCB1bnNpZ25lZCBtZXNzYQogewogICAgIENPTVBJTEVfQVNTRVJU
KCFUOjppc1N5bmMsIEFzeW5jTWVzc2FnZUV4cGVjdGVkKTsKIAotICAgIGF1dG8gZW5jb2RlciA9
IHN0ZDo6bWFrZV91bmlxdWU8SVBDOjpNZXNzYWdlRW5jb2Rlcj4oVDo6cmVjZWl2ZXJOYW1lKCks
IFQ6Om5hbWUoKSwgZGVzdGluYXRpb25JRCk7CisgICAgYXV0byBlbmNvZGVyID0gc3RkOjptYWtl
X3VuaXF1ZTxJUEM6OkVuY29kZXI+KFQ6OnJlY2VpdmVyTmFtZSgpLCBUOjpuYW1lKCksIGRlc3Rp
bmF0aW9uSUQpOwogICAgIGVuY29kZXItPmVuY29kZShtZXNzYWdlLmFyZ3VtZW50cygpKTsKIAog
ICAgIHJldHVybiBzZW5kTWVzc2FnZShXVEZNb3ZlKGVuY29kZXIpLCBtZXNzYWdlU2VuZEZsYWdz
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxv
YWRQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZFBy
b3h5LmgKaW5kZXggM2YxMjA0N2UzYWVlZTI0MzQ0MTU5MTQ4NTVlZWQwMmZmYzg0ZTRlMC4uMWJj
OWQ3ZmY4OTQ3ZTVhYjhiNjdlNzE1NmEyMjY1OTI0MWZmYzZkYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZFByb3h5LmgKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZFByb3h5LmgKQEAgLTY3LDE0ICs2
NywxNCBAQCBwdWJsaWM6CiAgICAgdm9pZCBwcm9jZXNzRGlkQ2xvc2UoKTsKIAogICAgIHZvaWQg
ZGlkUmVjZWl2ZURvd25sb2FkUHJveHlNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6TWVz
c2FnZURlY29kZXImKTsKLSAgICB2b2lkIGRpZFJlY2VpdmVTeW5jRG93bmxvYWRQcm94eU1lc3Nh
Z2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpNZXNzYWdlRGVjb2RlciYsIHN0ZDo6dW5pcXVlX3B0
cjxJUEM6Ok1lc3NhZ2VFbmNvZGVyPiYpOworICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNEb3dubG9h
ZFByb3h5TWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJiwgc3Rk
Ojp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4mKTsKIAogcHJpdmF0ZToKICAgICBleHBsaWNpdCBE
b3dubG9hZFByb3h5KERvd25sb2FkUHJveHlNYXAmLCBXZWJQcm9jZXNzUG9vbCYsIGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdCYpOwogCiAgICAgLy8gSVBDOjpNZXNzYWdlUmVjZWl2ZXIK
ICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6TWVzc2Fn
ZURlY29kZXImKSBvdmVycmlkZTsKLSAgICB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6
OkNvbm5lY3Rpb24mLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6
TWVzc2FnZUVuY29kZXI+Jikgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRSZWNlaXZlU3luY01lc3Nh
Z2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpNZXNzYWdlRGVjb2RlciYsIHN0ZDo6dW5pcXVlX3B0
cjxJUEM6OkVuY29kZXI+Jikgb3ZlcnJpZGU7CiAKICAgICAvLyBNZXNzYWdlIGhhbmRsZXJzLgog
ICAgIHZvaWQgZGlkU3RhcnQoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3Qg
QXRvbWljU3RyaW5nJiBzdWdnZXN0ZWRGaWxlbmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCmluZGV4IGEz
Y2E4YzBmMjU4MmM2NzgzYTllNjk5MDBiN2NiMjc2NzRjZTZiNDguLmFjYTU3ODJjMzZhMjZiZTMz
NWZhMDZjMjBlYjBiYmEwYWI0NmQ4M2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCkBAIC0yMTAsNyArMjEw
LDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNv
bm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6TWUKICAgICBkaWRSZWNlaXZlTmV0d29ya1Byb2Nl
c3NQcm94eU1lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7CiB9CiAKLXZvaWQgTmV0d29ya1By
b2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVj
dGlvbiwgSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2Rlciwgc3RkOjp1bmlxdWVfcHRyPElQQzo6
TWVzc2FnZUVuY29kZXI+JiByZXBseUVuY29kZXIpCit2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6
OmRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6
TWVzc2FnZURlY29kZXImIGRlY29kZXIsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+JiBy
ZXBseUVuY29kZXIpCiB7CiAgICAgaWYgKGRpc3BhdGNoU3luY01lc3NhZ2UoY29ubmVjdGlvbiwg
ZGVjb2RlciwgcmVwbHlFbmNvZGVyKSkKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oCmluZGV4
IGE3N2Y2Y2ZkNDUwZDBhMDA5NTE4ZWUwZjNlYmIwN2NkNjI0MGQ5NDAuLjMwZjExY2IyOTIwMjVk
ZTY5OTAzNTdlODY1ZTI2YzVkN2JmMzQxYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKQEAgLTk0LDcgKzk0LDcg
QEAgcHJpdmF0ZToKIAogICAgIC8vIElQQzo6Q29ubmVjdGlvbjo6Q2xpZW50CiAgICAgdm9pZCBk
aWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJikg
b3ZlcnJpZGU7Ci0gICAgdm9pZCBkaWRSZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9u
JiwgSVBDOjpNZXNzYWdlRGVjb2RlciYsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6Ok1lc3NhZ2VFbmNv
ZGVyPiYpIG92ZXJyaWRlOworICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29u
bmVjdGlvbiYsIElQQzo6TWVzc2FnZURlY29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNv
ZGVyPiYpIG92ZXJyaWRlOwogICAgIHZvaWQgZGlkQ2xvc2UoSVBDOjpDb25uZWN0aW9uJikgb3Zl
cnJpZGU7CiAgICAgdm9pZCBkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9u
JiwgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFtZSwgSVBDOjpTdHJpbmdS
ZWZlcmVuY2UgbWVzc2FnZU5hbWUpIG92ZXJyaWRlOwogICAgIElQQzo6UHJvY2Vzc1R5cGUgbG9j
YWxQcm9jZXNzVHlwZSgpIG92ZXJyaWRlIHsgcmV0dXJuIElQQzo6UHJvY2Vzc1R5cGU6OlVJOyB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJO
b3RpZmljYXRpb24uY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMv
V2ViTm90aWZpY2F0aW9uLmNwcAppbmRleCAzZDdiYzAwZmViZGY5OTY1OGFiNmNjOGJjM2EyN2Qz
MWUwNWI4ZGYzLi4wYTY3MzZhYTNlYzNlOTBjZTBhMzdhMmVhZDAwNzQxNzZlNDRiMWY4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmlj
YXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dl
Yk5vdGlmaWNhdGlvbi5jcHAKQEAgLTI2LDExICsyNiw2IEBACiAjaW5jbHVkZSAiY29uZmlnLmgi
CiAjaW5jbHVkZSAiV2ViTm90aWZpY2F0aW9uLmgiCiAKLSNpbmNsdWRlICJBcmd1bWVudENvZGVy
cy5oIgotI2luY2x1ZGUgIkFyZ3VtZW50RGVjb2Rlci5oIgotI2luY2x1ZGUgIkFyZ3VtZW50RW5j
b2Rlci5oIgotI2luY2x1ZGUgIkFyZ3VtZW50cy5oIgotCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAog
V2ViTm90aWZpY2F0aW9uOjpXZWJOb3RpZmljYXRpb24oY29uc3QgU3RyaW5nJiB0aXRsZSwgY29u
c3QgU3RyaW5nJiBib2R5LCBjb25zdCBTdHJpbmcmIGljb25VUkwsIGNvbnN0IFN0cmluZyYgdGFn
LCBjb25zdCBTdHJpbmcmIGxhbmcsIGNvbnN0IFN0cmluZyYgZGlyLCBjb25zdCBTdHJpbmcmIG9y
aWdpblN0cmluZywgdWludDY0X3Qgbm90aWZpY2F0aW9uSUQpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb24uaCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbi5oCmluZGV4
IDQ3NzE4ZjI1YjVlZjdkNDFiNGM2MTRmY2JmZDgzMTMzNTRlYmRhMGEuLmZhNGM0OTRkMTZiMjk0
ZDgyZmZmZDQ2YmY5YmQ4NjZkOGVmYTBjZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbi5oCkBAIC0zMSwxMyAr
MzEsNiBAQAogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZT
dHJpbmcuaD4KIAotbmFtZXNwYWNlIElQQyB7Ci0KLWNsYXNzIEFyZ3VtZW50RGVjb2RlcjsKLWNs
YXNzIEFyZ3VtZW50RW5jb2RlcjsKLQotfSAvLyBuYW1lc3BhY2UgSVBDCi0KIG5hbWVzcGFjZSBX
ZWJLaXQgewogCiBjbGFzcyBXZWJOb3RpZmljYXRpb24gOiBwdWJsaWMgQVBJOjpPYmplY3RJbXBs
PEFQSTo6T2JqZWN0OjpUeXBlOjpOb3RpZmljYXRpb24+IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NNYW5hZ2VyLmggYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzTWFuYWdlci5oCmluZGV4IDM5
NDEwZDg3ZWExZjg5OTBmZTg1ZGMyNDE1MDgzZDgwOTg2NTNjY2YuLjgxZTQzNDMzYjA5MDE2NDg4
YTRkYjFlZmRiMmNlZTI3ZDRhNmNhODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc01hbmFnZXIuaApAQCAtNDEsNyArNDEsNyBA
QAogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAogbmFtZXNwYWNlIElQQyB7Ci0gICAgY2xhc3Mg
QXJndW1lbnRFbmNvZGVyOworY2xhc3MgRW5jb2RlcjsKIH0KIAogbmFtZXNwYWNlIFdlYktpdCB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9j
ZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nl
c3NQcm94eS5oCmluZGV4IDExMjJmZjNlYjNhM2Y4YmIwZDgxOTliZDRjZWMyNmFhNWIwODFiNzAu
LmNjOWM1ODMwYzExODFmYzJmMDg5NTBmMjYxZGRlZTAyYmQ3YTU1MGIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5oCkBA
IC0xMDksNyArMTA5LDcgQEAgcHJpdmF0ZToKIAogICAgIC8vIElQQzo6Q29ubmVjdGlvbjo6Q2xp
ZW50CiAgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6Ok1l
c3NhZ2VEZWNvZGVyJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBkaWRSZWNlaXZlU3luY01lc3NhZ2Uo
SVBDOjpDb25uZWN0aW9uJiwgSVBDOjpNZXNzYWdlRGVjb2RlciYsIHN0ZDo6dW5pcXVlX3B0cjxJ
UEM6Ok1lc3NhZ2VFbmNvZGVyPiYpIG92ZXJyaWRlOworICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNN
ZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6TWVzc2FnZURlY29kZXImLCBzdGQ6OnVuaXF1
ZV9wdHI8SVBDOjpFbmNvZGVyPiYpIG92ZXJyaWRlOwogCiAgICAgdm9pZCBkaWRDbG9zZShJUEM6
OkNvbm5lY3Rpb24mKSBvdmVycmlkZTsKICAgICB2b2lkIGRpZFJlY2VpdmVJbnZhbGlkTWVzc2Fn
ZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlUmVjZWl2ZXJO
YW1lLCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlTmFtZSkgb3ZlcnJpZGU7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvU2Nyb2xsaW5nL1JlbW90ZVNjcm9sbGluZ0Nv
b3JkaW5hdG9yUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Njcm9sbGluZy9S
ZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmNwcAppbmRleCBhYzk4YzY0ODA5NjkxMWEz
MDNlYTQ5ZTQ3MGM3YWE1NjMyZDhjNTEyLi4yYTFkMmZkNTZkMzkyYjZkZWNkMDg2OWEwZTkyZDM4
YzYzN2E4ZTgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvU2Nyb2xsaW5n
L1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9TY3JvbGxpbmcvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5jcHAK
QEAgLTMwLDcgKzMwLDYgQEAKIAogI2luY2x1ZGUgIkFyZ3VtZW50Q29kZXJzLmgiCiAjaW5jbHVk
ZSAiTWVzc2FnZURlY29kZXIuaCIKLSNpbmNsdWRlICJNZXNzYWdlRW5jb2Rlci5oIgogI2luY2x1
ZGUgIlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkuaCIKICNpbmNsdWRlICJSZW1vdGVT
Y3JvbGxpbmdDb29yZGluYXRvci5oIgogI2luY2x1ZGUgIlJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5h
dG9yTWVzc2FnZXMuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TdG9y
YWdlL1N0b3JhZ2VNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvU3RvcmFnZS9T
dG9yYWdlTWFuYWdlci5oCmluZGV4IGFhYjE4ZmM2Yjc5NTZlNmIyMzgwOTk4YTgzNTY5YTc5YTI4
MTZlODcuLmRhOTRhZGIxMjA4ZjEzMGIyNWYwMWMzMWY4MzBmYjA2ZDFjNjkwNjIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TdG9yYWdlL1N0b3JhZ2VNYW5hZ2VyLmgKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1N0b3JhZ2UvU3RvcmFnZU1hbmFnZXIuaApAQCAt
NzYsNyArNzYsNyBAQCBwcml2YXRlOgogCiAgICAgLy8gSVBDOjpDb25uZWN0aW9uOjpXb3JrUXVl
dWVNZXNzYWdlUmVjZWl2ZXIuCiAgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5l
Y3Rpb24mLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBkaWRSZWNl
aXZlU3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpNZXNzYWdlRGVjb2RlciYsIHN0
ZDo6dW5pcXVlX3B0cjxJUEM6Ok1lc3NhZ2VFbmNvZGVyPiYgcmVwbHlFbmNvZGVyKSBvdmVycmlk
ZTsKKyAgICB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6
Ok1lc3NhZ2VEZWNvZGVyJiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4mIHJlcGx5RW5j
b2Rlcikgb3ZlcnJpZGU7CiAKICAgICAvLyBNZXNzYWdlIGhhbmRsZXJzLgogICAgIHZvaWQgY3Jl
YXRlTG9jYWxTdG9yYWdlTWFwKElQQzo6Q29ubmVjdGlvbiYsIHVpbnQ2NF90IHN0b3JhZ2VNYXBJ
RCwgdWludDY0X3Qgc3RvcmFnZU5hbWVzcGFjZUlELCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9y
aWdpbkRhdGEmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJGdWxs
U2NyZWVuTWFuYWdlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRnVsbFNj
cmVlbk1hbmFnZXJQcm94eS5oCmluZGV4IDUzNzJiMTViOTc4NTQwZmFkOTQ5YTkzYjI2NjcwY2Zm
ZDBiNGZjMDMuLjM2MGZlYTUwMjEwNGY1ZDNiMDc5MDU4YjdjNTA4Y2Y4NjA3MTg4ZTQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5
LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJv
eHkuaApAQCAtODIsNyArODIsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgYmVnYW5FeGl0RnVsbFNj
cmVlbihjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBpbml0aWFsRnJhbWUsIGNvbnN0IFdlYkNvcmU6
OkludFJlY3QmIGZpbmFsRnJhbWUpOwogCiAgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6
OkNvbm5lY3Rpb24mLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBk
aWRSZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpNZXNzYWdlRGVjb2Rl
ciYsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6Ok1lc3NhZ2VFbmNvZGVyPiYpIG92ZXJyaWRlOworICAg
IHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6TWVzc2Fn
ZURlY29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYpIG92ZXJyaWRlOwogCiAg
ICAgV2ViUGFnZVByb3h5KiBtX3BhZ2U7CiAgICAgV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eUNs
aWVudCogbV9jbGllbnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
SWNvbkRhdGFiYXNlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViSWNvbkRhdGFiYXNl
LmgKaW5kZXggY2ZmNTQ5OTY4OWUzNzg5MzRmMjc1ZTU3NWFmMTdjYjY3NGQ0MTQ0Yy4uNDMxMDUw
MWEwYzk4ZTcwNTFlNGM2MTA0MTlmMzUyMmZlNmYxNmYyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYkljb25EYXRhYmFzZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJJY29uRGF0YWJhc2UuaApAQCAtMTAyLDcgKzEwMiw3IEBAIHByaXZhdGU6CiAK
ICAgICAvLyBJUEM6Ok1lc3NhZ2VSZWNlaXZlcgogICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2Uo
SVBDOjpDb25uZWN0aW9uJiwgSVBDOjpNZXNzYWdlRGVjb2RlciYpIG92ZXJyaWRlOwotICAgIHZv
aWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6TWVzc2FnZURl
Y29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpNZXNzYWdlRW5jb2Rlcj4mKSBvdmVycmlkZTsK
KyAgICB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6Ok1l
c3NhZ2VEZWNvZGVyJiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4mKSBvdmVycmlkZTsK
IAogICAgIHZvaWQgbm90aWZ5SWNvbkRhdGFSZWFkeUZvclBhZ2VVUkwoY29uc3QgU3RyaW5nJik7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3Bw
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggODlkYzRl
OTY3OTg3MzlkNjViODM5ZWEyZWJiZjg1OGI5MjE5NjI2Zi4uMDExZmU4NGZjZGZlYTcxNWJiMTJm
NjA3NDRmYzI2ODhjNTY3MWNiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5jcHAKQEAgLTQzODgsNyArNDM4OCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRGYWls
VG9GaW5kU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKQogICAgIG1fZmluZENsaWVudC0+ZGlk
RmFpbFRvRmluZFN0cmluZyh0aGlzLCBzdHJpbmcpOwogfQogCi1ib29sIFdlYlBhZ2VQcm94eTo6
c2VuZE1lc3NhZ2Uoc3RkOjp1bmlxdWVfcHRyPElQQzo6TWVzc2FnZUVuY29kZXI+IGVuY29kZXIs
IHVuc2lnbmVkIG1lc3NhZ2VTZW5kRmxhZ3MpCitib29sIFdlYlBhZ2VQcm94eTo6c2VuZE1lc3Nh
Z2Uoc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4gZW5jb2RlciwgdW5zaWduZWQgbWVzc2Fn
ZVNlbmRGbGFncykKIHsKICAgICByZXR1cm4gbV9wcm9jZXNzLT5zZW5kTWVzc2FnZShXVEZNb3Zl
KGVuY29kZXIpLCBtZXNzYWdlU2VuZEZsYWdzKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuaAppbmRleCA1NGNjZmFlY2ZkZTY5NTllMTVhYjJlYWNhMmFjYzc3MDEyMDgz
YjVmLi5iZDE0Njk4Njk2ZWVkZDU1MjA4MTEzNTQ2MTYxNDk1MWIyOTIyNTUyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0xMTQ1LDEwICsxMTQ1LDEwIEBAIHBy
aXZhdGU6CiAgICAgLy8gSVBDOjpNZXNzYWdlUmVjZWl2ZXIKICAgICAvLyBJbXBsZW1lbnRlZCBp
biBnZW5lcmF0ZWQgV2ViUGFnZVByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAogICAgIHZvaWQgZGlk
UmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpNZXNzYWdlRGVjb2RlciYpIG92
ZXJyaWRlOwotICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYs
IElQQzo6TWVzc2FnZURlY29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpNZXNzYWdlRW5jb2Rl
cj4mKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5l
Y3Rpb24mLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rl
cj4mKSBvdmVycmlkZTsKIAogICAgIC8vIElQQzo6TWVzc2FnZVNlbmRlcgotICAgIGJvb2wgc2Vu
ZE1lc3NhZ2Uoc3RkOjp1bmlxdWVfcHRyPElQQzo6TWVzc2FnZUVuY29kZXI+LCB1bnNpZ25lZCBt
ZXNzYWdlU2VuZEZsYWdzKSBvdmVycmlkZTsKKyAgICBib29sIHNlbmRNZXNzYWdlKHN0ZDo6dW5p
cXVlX3B0cjxJUEM6OkVuY29kZXI+LCB1bnNpZ25lZCBtZXNzYWdlU2VuZEZsYWdzKSBvdmVycmlk
ZTsKICAgICBJUEM6OkNvbm5lY3Rpb24qIG1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uKCkgb3ZlcnJp
ZGU7CiAgICAgdWludDY0X3QgbWVzc2FnZVNlbmRlckRlc3RpbmF0aW9uSUQoKSBvdmVycmlkZTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhc3RlYm9hcmRQcm94
eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhc3RlYm9hcmRQcm94eS5oCmluZGV4
IGRmYzcxMTVhN2NiZWJmMWM5NWU1N2M3MGZkZGNhMjNiN2QwM2QxOTEuLjcwMWRiZmE3YmFjMDk4
OGI0MWU0YWRlODNjNWUzZTZhYWJiODI4ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJQYXN0ZWJvYXJkUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViUGFzdGVib2FyZFByb3h5LmgKQEAgLTU0LDcgKzU0LDcgQEAgcHJpdmF0ZToKICAgICBX
ZWJQYXN0ZWJvYXJkUHJveHkoKTsKIAogICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpD
b25uZWN0aW9uJiwgSVBDOjpNZXNzYWdlRGVjb2RlciYpIG92ZXJyaWRlOwotICAgIHZvaWQgZGlk
UmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6TWVzc2FnZURlY29kZXIm
LCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpNZXNzYWdlRW5jb2Rlcj4mKSBvdmVycmlkZTsKKyAgICB2
b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6Ok1lc3NhZ2VE
ZWNvZGVyJiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4mKSBvdmVycmlkZTsKIAogI2lm
IFBMQVRGT1JNKElPUykKICAgICB2b2lkIHdyaXRlV2ViQ29udGVudFRvUGFzdGVib2FyZChjb25z
dCBXZWJDb3JlOjpQYXN0ZWJvYXJkV2ViQ29udGVudCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKaW5kZXggYWVhYWY0YjAyZmJiMjNkMzQ4MGU0MWUyZTJm
NjNhNzAyNTRjY2FmZi4uYTM4ZWJhNWJmMDg3YzllMGM5ZGZjNThmMmUyMDJkNGZmM2M1YjIwOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCkBAIC0xMDM1
LDcgKzEwMzUsNyBAQCBib29sIFdlYlByb2Nlc3NQb29sOjpkaXNwYXRjaE1lc3NhZ2UoSVBDOjpD
b25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6Ok1lc3NhZ2VEZQogICAgIHJldHVybiBtX21lc3Nh
Z2VSZWNlaXZlck1hcC5kaXNwYXRjaE1lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7CiB9CiAK
LWJvb2wgV2ViUHJvY2Vzc1Bvb2w6OmRpc3BhdGNoU3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9u
JiBjb25uZWN0aW9uLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyLCBzdGQ6OnVuaXF1ZV9w
dHI8SVBDOjpNZXNzYWdlRW5jb2Rlcj4mIHJlcGx5RW5jb2RlcikKK2Jvb2wgV2ViUHJvY2Vzc1Bv
b2w6OmRpc3BhdGNoU3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6
Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYg
cmVwbHlFbmNvZGVyKQogewogICAgIHJldHVybiBtX21lc3NhZ2VSZWNlaXZlck1hcC5kaXNwYXRj
aFN5bmNNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIsIHJlcGx5RW5jb2Rlcik7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCmluZGV4IDRlMDY1OGZhMjk0NTZh
NTFkMDhjMzNiN2YxZjk3MzEzOTc3MzllZDkuLjViNWZlMTEyN2EyNzE1MTU4NGFkZTgxODgzYzVm
ZmI2OGI2MTMyNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9j
ZXNzUG9vbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5o
CkBAIC0xMjcsNyArMTI3LDcgQEAgcHVibGljOgogICAgIHZvaWQgcmVtb3ZlTWVzc2FnZVJlY2Vp
dmVyKElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VSZWNlaXZlck5hbWUsIHVpbnQ2NF90IGRl
c3RpbmF0aW9uSUQpOwogCiAgICAgYm9vbCBkaXNwYXRjaE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9u
JiwgSVBDOjpNZXNzYWdlRGVjb2RlciYpOwotICAgIGJvb2wgZGlzcGF0Y2hTeW5jTWVzc2FnZShJ
UEM6OkNvbm5lY3Rpb24mLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJiwgc3RkOjp1bmlxdWVfcHRyPElQ
Qzo6TWVzc2FnZUVuY29kZXI+Jik7CisgICAgYm9vbCBkaXNwYXRjaFN5bmNNZXNzYWdlKElQQzo6
Q29ubmVjdGlvbiYsIElQQzo6TWVzc2FnZURlY29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpF
bmNvZGVyPiYpOwogCiAgICAgdm9pZCBpbml0aWFsaXplQ2xpZW50KGNvbnN0IFdLQ29udGV4dENs
aWVudEJhc2UqKTsKICAgICB2b2lkIGluaXRpYWxpemVJbmplY3RlZEJ1bmRsZUNsaWVudChjb25z
dCBXS0NvbnRleHRJbmplY3RlZEJ1bmRsZUNsaWVudEJhc2UqKTsKQEAgLTQwNiw3ICs0MDYsNyBA
QCBwcml2YXRlOgogICAgIC8vIElQQzo6TWVzc2FnZVJlY2VpdmVyLgogICAgIC8vIEltcGxlbWVu
dGVkIGluIGdlbmVyYXRlZCBXZWJQcm9jZXNzUG9vbE1lc3NhZ2VSZWNlaXZlci5jcHAKICAgICB2
b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6TWVzc2FnZURlY29k
ZXImKSBvdmVycmlkZTsKLSAgICB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5l
Y3Rpb24mLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6TWVzc2Fn
ZUVuY29kZXI+Jikgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRSZWNlaXZlU3luY01lc3NhZ2UoSVBD
OjpDb25uZWN0aW9uJiwgSVBDOjpNZXNzYWdlRGVjb2RlciYsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6
OkVuY29kZXI+Jikgb3ZlcnJpZGU7CiAKICAgICBzdGF0aWMgdm9pZCBsYW5ndWFnZUNoYW5nZWQo
dm9pZCogY29udGV4dCk7CiAgICAgdm9pZCBsYW5ndWFnZUNoYW5nZWQoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKaW5kZXggNWY1NTRjMjRiZDhkZTg4
N2E5OTQ2YmQwYmFmZjdlNmExYWIzNjE1MC4uMTE1NTc3NGY3ZWNiZWFiNTY3MTk5MmVlNGZiZjFk
Zjg2N2Q4MWUxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94
eS5jcHAKQEAgLTUwOCw3ICs1MDgsNyBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6ZGlkUmVjZWl2
ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6Ok1lc3NhZwogICAgIC8v
IEZJWE1FOiBBZGQgdW5oYW5kbGVkIG1lc3NhZ2UgbG9nZ2luZy4KIH0KIAotdm9pZCBXZWJQcm9j
ZXNzUHJveHk6OmRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rp
b24sIElQQzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6Ok1l
c3NhZ2VFbmNvZGVyPiYgcmVwbHlFbmNvZGVyKQordm9pZCBXZWJQcm9jZXNzUHJveHk6OmRpZFJl
Y2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6TWVzc2Fn
ZURlY29kZXImIGRlY29kZXIsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+JiByZXBseUVu
Y29kZXIpCiB7CiAgICAgaWYgKGRpc3BhdGNoU3luY01lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rl
ciwgcmVwbHlFbmNvZGVyKSkKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQcm94eS5oCmluZGV4IGQzOGQwMDRkNWU4ZjcxN2U4NjNhYzFhOTljOWVj
YWEyZjEyOWFiNDUuLmI2ZDlmYzUwOGNhN2I3ODFmMGZmZGMwMGM0MWU3YTk3OTE5MjkxYTQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKQEAgLTE5OSw3ICsx
OTksNyBAQCBwcml2YXRlOgogICAgIC8vIElQQzo6Q29ubmVjdGlvbjo6Q2xpZW50CiAgICAgZnJp
ZW5kIGNsYXNzIFdlYkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M7CiAgICAgdm9pZCBkaWRSZWNlaXZl
TWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJikgb3ZlcnJpZGU7
Ci0gICAgdm9pZCBkaWRSZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpN
ZXNzYWdlRGVjb2RlciYsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6Ok1lc3NhZ2VFbmNvZGVyPiYpIG92
ZXJyaWRlOworICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYs
IElQQzo6TWVzc2FnZURlY29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYpIG92
ZXJyaWRlOwogICAgIHZvaWQgZGlkQ2xvc2UoSVBDOjpDb25uZWN0aW9uJikgb3ZlcnJpZGU7CiAg
ICAgdm9pZCBkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpT
dHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFtZSwgSVBDOjpTdHJpbmdSZWZlcmVuY2Ug
bWVzc2FnZU5hbWUpIG92ZXJyaWRlOwogICAgIElQQzo6UHJvY2Vzc1R5cGUgbG9jYWxQcm9jZXNz
VHlwZSgpIG92ZXJyaWRlIHsgcmV0dXJuIElQQzo6UHJvY2Vzc1R5cGU6OlVJOyB9CkBAIC0yMjMs
NyArMjIzLDcgQEAgcHJpdmF0ZToKIAogICAgIC8vIEltcGxlbWVudGVkIGluIGdlbmVyYXRlZCBX
ZWJQcm9jZXNzUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwCiAgICAgdm9pZCBkaWRSZWNlaXZlV2Vi
UHJvY2Vzc1Byb3h5TWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6Ok1lc3NhZ2VEZWNvZGVy
Jik7Ci0gICAgdm9pZCBkaWRSZWNlaXZlU3luY1dlYlByb2Nlc3NQcm94eU1lc3NhZ2UoSVBDOjpD
b25uZWN0aW9uJiwgSVBDOjpNZXNzYWdlRGVjb2RlciYsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6Ok1l
c3NhZ2VFbmNvZGVyPiYpOworICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNXZWJQcm9jZXNzUHJveHlN
ZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6TWVzc2FnZURlY29kZXImLCBzdGQ6OnVuaXF1
ZV9wdHI8SVBDOjpFbmNvZGVyPiYpOwogCiAgICAgYm9vbCBjYW5UZXJtaW5hdGVDaGlsZFByb2Nl
c3MoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCmluZGV4IDZjN2JkZDIyMzQ1Y2E1ZmM4N2FkYjMxZmJiYTNjZjYwZTg4YTE0YmUuLjI5
MTllNjdjNTU2NjJkMjI5N2NkZGRkNzk4MTNmYjg3ZTA5ZDAxOTAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE3MSw4ICsxNzEs
NiBAQAogCQkxQTIxNjFCMTExRjM3NjY0MDA4QUQwRjUgLyogTlBSdW50aW1lT2JqZWN0TWFwLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBMjE2MUFG
MTFGMzc2NjQwMDhBRDBGNSAvKiBOUFJ1bnRpbWVPYmplY3RNYXAuY3BwICovOyB9OwogCQkxQTIx
NjJCMDExRjM4OTcxMDA4QUQwRjUgLyogTlBSdW50aW1lVXRpbGl0aWVzLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBMjE2MkFFMTFGMzg5NzEwMDhB
RDBGNSAvKiBOUFJ1bnRpbWVVdGlsaXRpZXMuY3BwICovOyB9OwogCQkxQTIxNjJCMTExRjM4OTcx
MDA4QUQwRjUgLyogTlBSdW50aW1lVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQTIxNjJBRjExRjM4OTcxMDA4QUQwRjUgLyogTlBSdW50
aW1lVXRpbGl0aWVzLmggKi87IH07Ci0JCTFBMjMyOEZFMTYyQzg2NkEwMEQ4MkY3QSAvKiBNZXNz
YWdlRW5jb2Rlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAxQTIzMjhGQzE2MkM4NjZBMDBEODJGN0EgLyogTWVzc2FnZUVuY29kZXIuY3BwICovOyB9
OwotCQkxQTIzMjhGRjE2MkM4NjZBMDBEODJGN0EgLyogTWVzc2FnZUVuY29kZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBMjMyOEZEMTYyQzg2NkEw
MEQ4MkY3QSAvKiBNZXNzYWdlRW5jb2Rlci5oICovOyB9OwogCQkxQTIzMjkwMjE2MkM4NjczMDBE
ODJGN0EgLyogTWVzc2FnZURlY29kZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMUEyMzI5MDAxNjJDODY3MzAwRDgyRjdBIC8qIE1lc3NhZ2VEZWNv
ZGVyLmNwcCAqLzsgfTsKIAkJMUEyMzI5MDMxNjJDODY3MzAwRDgyRjdBIC8qIE1lc3NhZ2VEZWNv
ZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQTIz
MjkwMTE2MkM4NjczMDBEODJGN0EgLyogTWVzc2FnZURlY29kZXIuaCAqLzsgfTsKIAkJMUEyNDY0
RjMxODkxRTQ1MTAwMjM0QzVCIC8qIEFQSUxvYWRlckNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUEyNDY0RjIxODkxRTQ1MTAwMjM0QzVCIC8q
IEFQSUxvYWRlckNsaWVudC5oICovOyB9OwpAQCAtMTM0Miw4ICsxMzQwLDggQEAKIAkJQkMwMzJE
OTcxMEY0MzdBRjAwNThDMTVBIC8qIFdlYlByb2Nlc3MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMDMyRDkxMTBGNDM3QUYwMDU4QzE1QSAvKiBXZWJQ
cm9jZXNzLmggKi87IH07CiAJCUJDMDMyREE1MTBGNDM3RDEwMDU4QzE1QSAvKiBBcmd1bWVudERl
Y29kZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QkMwMzJEOUQxMEY0MzdEMTAwNThDMTVBIC8qIEFyZ3VtZW50RGVjb2Rlci5jcHAgKi87IH07CiAJ
CUJDMDMyREE2MTBGNDM3RDEwMDU4QzE1QSAvKiBBcmd1bWVudERlY29kZXIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMDMyRDlFMTBGNDM3RDEwMDU4
QzE1QSAvKiBBcmd1bWVudERlY29kZXIuaCAqLzsgfTsKLQkJQkMwMzJEQTcxMEY0MzdEMTAwNThD
MTVBIC8qIEFyZ3VtZW50RW5jb2Rlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBCQzAzMkQ5RjEwRjQzN0QxMDA1OEMxNUEgLyogQXJndW1lbnRFbmNv
ZGVyLmNwcCAqLzsgfTsKLQkJQkMwMzJEQTgxMEY0MzdEMTAwNThDMTVBIC8qIEFyZ3VtZW50RW5j
b2Rlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMw
MzJEQTAxMEY0MzdEMTAwNThDMTVBIC8qIEFyZ3VtZW50RW5jb2Rlci5oICovOyB9OworCQlCQzAz
MkRBNzEwRjQzN0QxMDA1OEMxNUEgLyogRW5jb2Rlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzAzMkQ5RjEwRjQzN0QxMDA1OEMxNUEgLyogRW5j
b2Rlci5jcHAgKi87IH07CisJCUJDMDMyREE4MTBGNDM3RDEwMDU4QzE1QSAvKiBFbmNvZGVyLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzAzMkRBMDEw
RjQzN0QxMDA1OEMxNUEgLyogRW5jb2Rlci5oICovOyB9OwogCQlCQzAzMkRBOTEwRjQzN0QxMDA1
OEMxNUEgLyogQXJndW1lbnRzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBCQzAzMkRBMTEwRjQzN0QxMDA1OEMxNUEgLyogQXJndW1lbnRzLmggKi87IH07
CiAJCUJDMDMyREFBMTBGNDM3RDEwMDU4QzE1QSAvKiBDb25uZWN0aW9uLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMDMyREEyMTBGNDM3RDEwMDU4
QzE1QSAvKiBDb25uZWN0aW9uLmNwcCAqLzsgfTsKIAkJQkMwMzJEQUIxMEY0MzdEMTAwNThDMTVB
IC8qIENvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEJDMDMyREEzMTBGNDM3RDEwMDU4QzE1QSAvKiBDb25uZWN0aW9uLmggKi87IH07CkBA
IC0zNDM3LDggKzM0MzUsOCBAQAogCQlCQzAzMkQ5MTEwRjQzN0FGMDA1OEMxNUEgLyogV2ViUHJv
Y2Vzcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJQcm9jZXNzLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDMDMyRDlEMTBGNDM3RDEwMDU4QzE1QSAvKiBB
cmd1bWVudERlY29kZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
QXJndW1lbnREZWNvZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkMwMzJE
OUUxMEY0MzdEMTAwNThDMTVBIC8qIEFyZ3VtZW50RGVjb2Rlci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBBcmd1bWVudERlY29kZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJQkMwMzJEOUYxMEY0MzdEMTAwNThDMTVBIC8qIEFyZ3VtZW50RW5jb2Rlci5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBcmd1bWVudEVuY29kZXIuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlCQzAzMkRBMDEwRjQzN0QxMDA1OEMxNUEg
LyogQXJndW1lbnRFbmNvZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFy
Z3VtZW50RW5jb2Rlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCQzAzMkQ5RjEw
RjQzN0QxMDA1OEMxNUEgLyogRW5jb2Rlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBFbmNvZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQkMw
MzJEQTAxMEY0MzdEMTAwNThDMTVBIC8qIEVuY29kZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gRW5jb2Rlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzAz
MkRBMTEwRjQzN0QxMDA1OEMxNUEgLyogQXJndW1lbnRzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEFyZ3VtZW50cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlC
QzAzMkRBMjEwRjQzN0QxMDA1OEMxNUEgLyogQ29ubmVjdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDb25uZWN0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQkMwMzJEQTMxMEY0MzdEMTAwNThDMTVBIC8qIENvbm5lY3Rpb24uaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ29ubmVjdGlvbi5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtNDgyMiw4ICs0ODIwLDggQEAKIAkJCQkxQUVGRDJGNjExRDE4MDdC
MDA4MjE5RDMgLyogQXJndW1lbnRDb2RlcnMuaCAqLywKIAkJCQlCQzAzMkQ5RDEwRjQzN0QxMDA1
OEMxNUEgLyogQXJndW1lbnREZWNvZGVyLmNwcCAqLywKIAkJCQlCQzAzMkQ5RTEwRjQzN0QxMDA1
OEMxNUEgLyogQXJndW1lbnREZWNvZGVyLmggKi8sCi0JCQkJQkMwMzJEOUYxMEY0MzdEMTAwNThD
MTVBIC8qIEFyZ3VtZW50RW5jb2Rlci5jcHAgKi8sCi0JCQkJQkMwMzJEQTAxMEY0MzdEMTAwNThD
MTVBIC8qIEFyZ3VtZW50RW5jb2Rlci5oICovLAorCQkJCUJDMDMyRDlGMTBGNDM3RDEwMDU4QzE1
QSAvKiBFbmNvZGVyLmNwcCAqLywKKwkJCQlCQzAzMkRBMDEwRjQzN0QxMDA1OEMxNUEgLyogRW5j
b2Rlci5oICovLAogCQkJCUJDMDMyREExMTBGNDM3RDEwMDU4QzE1QSAvKiBBcmd1bWVudHMuaCAq
LywKIAkJCQlCQ0VFOTY2QTExMkZBRjU3MDA2QkNDMjQgLyogQXR0YWNobWVudC5jcHAgKi8sCiAJ
CQkJQkNFRTk2NkIxMTJGQUY1NzAwNkJDQzI0IC8qIEF0dGFjaG1lbnQuaCAqLywKQEAgLTc1MjYs
NyArNzUyNCw3IEBACiAJCQkJMUFBRjBDNEExMkIxNjMzNDAwOEU0OUUyIC8qIEFyZ3VtZW50Q29k
ZXJzQ0YuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxNzlGRDlDMTM0RDM4MDYwMDE1Qjg4MyAvKiBB
cmd1bWVudENvZGVyc01hYy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMwMzJEQTYxMEY0MzdEMTAw
NThDMTVBIC8qIEFyZ3VtZW50RGVjb2Rlci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQkMwMzJEQTgx
MEY0MzdEMTAwNThDMTVBIC8qIEFyZ3VtZW50RW5jb2Rlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
QkMwMzJEQTgxMEY0MzdEMTAwNThDMTVBIC8qIEVuY29kZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUJDMDMyREE5MTBGNDM3RDEwMDU4QzE1QSAvKiBBcmd1bWVudHMuaCBpbiBIZWFkZXJzICovLAog
CQkJCUNFMUEwQkQyMUE0OEU2QzYwMDU0RUY3NCAvKiBBc3NlcnRpb25TZXJ2aWNlc1NQSS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQzU5QzRBNTkxOEI4MTE3NDAwN0JEQ0I2IC8qIEFzc2lzdGVkTm9k
ZUluZm9ybWF0aW9uLmggaW4gSGVhZGVycyAqLywKQEAgLTc2NDQsNyArNzY0Miw2IEBACiAJCQkJ
Q0UxQTBCRDUxQTQ4RTZDNjAwNTRFRjc0IC8qIE1hbmFnZWRDb25maWd1cmF0aW9uU1BJLmggaW4g
SGVhZGVycyAqLywKIAkJCQk1MTkzM0RFRjE5NjVFQjMxMDA4QUMzRUEgLyogTWVudVV0aWxpdGll
cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUEyMzI5MDMxNjJDODY3MzAwRDgyRjdBIC8qIE1lc3Nh
Z2VEZWNvZGVyLmggaW4gSGVhZGVycyAqLywKLQkJCQkxQTIzMjhGRjE2MkM4NjZBMDBEODJGN0Eg
LyogTWVzc2FnZUVuY29kZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBQzRDODI5MTZCODc2QTkw
MDY5RENDRCAvKiBNZXNzYWdlRmxhZ3MuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBM0VFRDEyMTYx
QTUzRDYwMEFFQjRGNSAvKiBNZXNzYWdlUmVjZWl2ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTFB
M0VFRDBGMTYxQTUzNTQwMEFFQjRGNSAvKiBNZXNzYWdlUmVjZWl2ZXJNYXAuaCBpbiBIZWFkZXJz
ICovLApAQCAtODk5Miw3ICs4OTg5LDcgQEAKIAkJCQkxQUFGMEM0QjEyQjE2MzM0MDA4RTQ5RTIg
LyogQXJndW1lbnRDb2RlcnNDRi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFMTc5RkQ5RjEzNEQz
ODI1MDAxNUI4ODMgLyogQXJndW1lbnRDb2RlcnNNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQlC
QzAzMkRBNTEwRjQzN0QxMDA1OEMxNUEgLyogQXJndW1lbnREZWNvZGVyLmNwcCBpbiBTb3VyY2Vz
ICovLAotCQkJCUJDMDMyREE3MTBGNDM3RDEwMDU4QzE1QSAvKiBBcmd1bWVudEVuY29kZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCisJCQkJQkMwMzJEQTcxMEY0MzdEMTAwNThDMTVBIC8qIEVuY29kZXIu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQzU5QzRBNTgxOEI4MTE3NDAwN0JEQ0I2IC8qIEFzc2lz
dGVkTm9kZUluZm9ybWF0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxNUU3NzI3MTgzREQ2
RjYwMDA3MjAzRiAvKiBBc3luY1JlcXVlc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNFRTk2
NkMxMTJGQUY1NzAwNkJDQzI0IC8qIEF0dGFjaG1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC05
MTEwLDcgKzkxMDcsNiBAQAogCQkJCTFBMjRCNUYyMTFGNTMxRTgwMEMzODI2OSAvKiBNYWNoVXRp
bGl0aWVzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxOTMzREYwMTk2NUVCMzEwMDhBQzNFQSAv
KiBNZW51VXRpbGl0aWVzLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMUEyMzI5MDIxNjJDODY3MzAw
RDgyRjdBIC8qIE1lc3NhZ2VEZWNvZGVyLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTFBMjMyOEZF
MTYyQzg2NkEwMEQ4MkY3QSAvKiBNZXNzYWdlRW5jb2Rlci5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkxQTNFRUQwRTE2MUE1MzU0MDBBRUI0RjUgLyogTWVzc2FnZVJlY2VpdmVyTWFwLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTJENUFCNjJGMUE2OUQ2RkIwMDE0QTlDQiAvKiBNZXNzYWdlUmVjb3Jk
ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQ1QUI2MzAxQTY5RDZGQjAwMTRBOUNCIC8qIE1l
c3NhZ2VSZWNvcmRlclByb2Jlcy5kIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rp
b24uY3BwCmluZGV4IDIxMzZjZjgwOGMxYjI3MWYzY2JkYjM1N2QxMjM3NTZhZmFiMzY0NDEuLjkz
ZThlMGMwNWM2MWI3MzEwZGJhMjg3NmQ3NmNiZjcxMTFjOTFiODcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nv
bm5lY3Rpb24uY3BwCkBAIC02Myw3ICs2Myw3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NDb25uZWN0
aW9uOjpkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQCiAg
ICAgZGlkUmVjZWl2ZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2UoY29ubmVjdGlvbiwg
ZGVjb2Rlcik7CiB9CiAKLXZvaWQgTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpkaWRSZWNlaXZl
U3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpNZXNzYWdlRGVjb2RlciYsIHN0ZDo6
dW5pcXVlX3B0cjxJUEM6Ok1lc3NhZ2VFbmNvZGVyPiYpCit2b2lkIE5ldHdvcmtQcm9jZXNzQ29u
bmVjdGlvbjo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6TWVz
c2FnZURlY29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYpCiB7CiAgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmgKaW5kZXggODhkMzll
MzVhMWNhY2IwNjMzMTU2YTA4NTY5ZjM5NWNmZDI0NThhMC4uZWFlMzM4MWUxM2JlMTdlYjg0ZWVk
Y2IzZWU3MzIzNDkxOTdhN2JjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uaApAQCAtNjUsNyAr
NjUsNyBAQCBwcml2YXRlOgogCiAgICAgLy8gSVBDOjpDb25uZWN0aW9uOjpDbGllbnQKICAgICB2
b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6TWVzc2FnZURlY29k
ZXImKSBvdmVycmlkZTsKLSAgICB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5l
Y3Rpb24mLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6TWVzc2Fn
ZUVuY29kZXI+Jikgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRSZWNlaXZlU3luY01lc3NhZ2UoSVBD
OjpDb25uZWN0aW9uJiwgSVBDOjpNZXNzYWdlRGVjb2RlciYsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6
OkVuY29kZXI+Jikgb3ZlcnJpZGU7CiAgICAgdm9pZCBkaWRDbG9zZShJUEM6OkNvbm5lY3Rpb24m
KSBvdmVycmlkZTsKICAgICB2b2lkIGRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShJUEM6OkNvbm5l
Y3Rpb24mLCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlUmVjZWl2ZXJOYW1lLCBJUEM6OlN0
cmluZ1JlZmVyZW5jZSBtZXNzYWdlTmFtZSkgb3ZlcnJpZGU7CiAgICAgSVBDOjpQcm9jZXNzVHlw
ZSBsb2NhbFByb2Nlc3NUeXBlKCkgb3ZlcnJpZGUgeyByZXR1cm4gSVBDOjpQcm9jZXNzVHlwZTo6
V2ViOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1
Z2luLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW4uY3BwCmlu
ZGV4IDE1NDkzZjg2YTE3MzBiMDcxMzhkNmFmNDI0N2M2NGI0ZDIwOWMxMjkuLjhlMmNlMjQ3MWVh
ODVkOWNiMDM3YjI4OGFhMDRmYTllNzczOTRlZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvUGx1Z2lucy9QbHVnaW4uY3BwCkBAIC0zMyw3ICszMyw3IEBAIHVzaW5nIG5hbWVzcGFj
ZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotdm9pZCBQbHVnaW46OlBhcmFtZXRl
cnM6OmVuY29kZShJUEM6OkFyZ3VtZW50RW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3ZvaWQgUGx1
Z2luOjpQYXJhbWV0ZXJzOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewog
ICAgIGVuY29kZXIgPDwgdXJsLnN0cmluZygpOwogICAgIGVuY29kZXIgPDwgbmFtZXM7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luLmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luLmgKaW5kZXggNmUwY2I5YzA5YWNi
NzI1MTY3ZjIyOTJkOTIzNWEwOGU3ZTAxMDNlOS4uMTU0Zjc4YTUwNDhjNDA0ZGExMTgwZGFiZjZi
MzUzZTc2MTY5NzVjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVn
aW5zL1BsdWdpbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVn
aW4uaApAQCAtNDgsOCArNDgsOCBAQCBPQkpDX0NMQVNTIFBERlNlbGVjdGlvbjsKIHN0cnVjdCBO
UE9iamVjdDsKIAogbmFtZXNwYWNlIElQQyB7Ci0gICAgY2xhc3MgQXJndW1lbnRFbmNvZGVyOwot
ICAgIGNsYXNzIEFyZ3VtZW50RGVjb2RlcjsKK2NsYXNzIEVuY29kZXI7CitjbGFzcyBBcmd1bWVu
dERlY29kZXI7CiB9CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTkyLDcgKzkyLDcgQEAgcHVi
bGljOgogICAgICAgICBMYXllckhvc3RpbmdNb2RlIGxheWVySG9zdGluZ01vZGU7CiAjZW5kaWYK
IAotICAgICAgICB2b2lkIGVuY29kZShJUEM6OkFyZ3VtZW50RW5jb2RlciYpIGNvbnN0OworICAg
ICAgICB2b2lkIGVuY29kZShJUEM6OkVuY29kZXImKSBjb25zdDsKICAgICAgICAgc3RhdGljIGJv
b2wgZGVjb2RlKElQQzo6QXJndW1lbnREZWNvZGVyJiwgUGFyYW1ldGVycyYpOwogICAgIH07CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9j
ZXNzQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1
Z2luUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCmluZGV4IDFkOTAzZDAxNmQzYWI5NWYwMzU2ZWRiYWQ4
ZTMyZjM0NWQ4MDMxMGQuLjEwNjM3OGQwZDY0M2Q3NGY2ZDE0NjYxOGMwYThlMzY2NGVjMzFmMDEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9j
ZXNzQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5z
L1BsdWdpblByb2Nlc3NDb25uZWN0aW9uLmNwcApAQCAtMTA1LDcgKzEwNSw3IEBAIHZvaWQgUGx1
Z2luUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYg
Y29ubmVjdGlvbiwgSVBDCiAgICAgcGx1Z2luUHJveHktPmRpZFJlY2VpdmVQbHVnaW5Qcm94eU1l
c3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7CiB9CiAKLXZvaWQgUGx1Z2luUHJvY2Vzc0Nvbm5l
Y3Rpb246OmRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24s
IElQQzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6Ok1lc3Nh
Z2VFbmNvZGVyPiYgcmVwbHlFbmNvZGVyKQordm9pZCBQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbjo6
ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpN
ZXNzYWdlRGVjb2RlciYgZGVjb2Rlciwgc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4mIHJl
cGx5RW5jb2RlcikKIHsKICAgICBpZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0g
TWVzc2FnZXM6Ok5QT2JqZWN0TWVzc2FnZVJlY2VpdmVyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkp
IHsKICAgICAgICAgbV9ucFJlbW90ZU9iamVjdE1hcC0+ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKGNv
bm5lY3Rpb24sIGRlY29kZXIsIHJlcGx5RW5jb2Rlcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24uaCBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbi5oCmlu
ZGV4IGZlZDYwNWEyYmM1ZDkyZTkyNDcyNWQzZjZiMTRhNzFjNDk1YWQxMmMuLmZkMjgxMTAwMzZi
MDVlNzc4YjQ5ZmI2NmNjYWI2MmEyY2I4ZjlhMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbi5oCkBA
IC02NSw3ICs2NSw3IEBAIHByaXZhdGU6CiAKICAgICAvLyBJUEM6OkNvbm5lY3Rpb246OkNsaWVu
dAogICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpNZXNz
YWdlRGVjb2RlciYpIG92ZXJyaWRlOwotICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQ
Qzo6Q29ubmVjdGlvbiYsIElQQzo6TWVzc2FnZURlY29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBD
OjpNZXNzYWdlRW5jb2Rlcj4mKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpZFJlY2VpdmVTeW5jTWVz
c2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJiwgc3RkOjp1bmlxdWVf
cHRyPElQQzo6RW5jb2Rlcj4mKSBvdmVycmlkZTsKICAgICB2b2lkIGRpZENsb3NlKElQQzo6Q29u
bmVjdGlvbiYpIG92ZXJyaWRlOwogICAgIHZvaWQgZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKElQ
Qzo6Q29ubmVjdGlvbiYsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VSZWNlaXZlck5hbWUs
IElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VOYW1lKSBvdmVycmlkZTsKICAgICBJUEM6OlBy
b2Nlc3NUeXBlIGxvY2FsUHJvY2Vzc1R5cGUoKSBvdmVycmlkZSB7IHJldHVybiBJUEM6OlByb2Nl
c3NUeXBlOjpXZWI7IH0KQEAgLTczLDcgKzczLDcgQEAgcHJpdmF0ZToKIAogICAgIC8vIE1lc3Nh
Z2UgaGFuZGxlcnMuCiAgICAgdm9pZCBkaWRSZWNlaXZlUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25N
ZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6TWVzc2FnZURlY29kZXImKTsKLSAgICB2b2lk
IGRpZFJlY2VpdmVTeW5jUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlKElQQzo6Q29ubmVj
dGlvbiYsIElQQzo6TWVzc2FnZURlY29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpNZXNzYWdl
RW5jb2Rlcj4mKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVTeW5jUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rp
b25NZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6TWVzc2FnZURlY29kZXImLCBzdGQ6OnVu
aXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYpOwogICAgIHZvaWQgc2V0RXhjZXB0aW9uKGNvbnN0IFN0
cmluZyYpOwogICAgIHZvaWQgYXVkaW9IYXJkd2FyZURpZEJlY29tZUFjdGl2ZSgpOwogICAgIHZv
aWQgYXVkaW9IYXJkd2FyZURpZEJlY29tZUluYWN0aXZlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2Vy
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29u
bmVjdGlvbk1hbmFnZXIuY3BwCmluZGV4IDRhZmQxMDZhYzAzNzQzZTlkODE4Y2Y5YTIxYmViMjZk
ODE3YmU5NDUuLjhmMzFkMmQ5ZDM4MGQzZjZjZDY5ZWVkMzQwOGYyZmY5MGZjNDQ1NDcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29u
bmVjdGlvbk1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lu
cy9QbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXIuY3BwCkBAIC0yOSw3ICsyOSw3IEBACiAj
aWYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCiAKICNpbmNsdWRlICJBcmd1bWVudERlY29k
ZXIuaCIKLSNpbmNsdWRlICJBcmd1bWVudEVuY29kZXIuaCIKKyNpbmNsdWRlICJFbmNvZGVyLmgi
CiAjaW5jbHVkZSAiUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJQbHVnaW5Q
cm9jZXNzQ29ubmVjdGlvbk1hbmFnZXJNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYkNvcmVBcmd1
bWVudENvZGVycy5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVn
aW5zL1BsdWdpblByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1
Z2luUHJveHkuaAppbmRleCA3MmRhOTdhMjFmMzYwYTVkMDMwZjMyODdjODFkNWZlOTA5MjM4MzIz
Li5lZGE5NjI0ZmJhYjQ5N2U0NDQxOTVhODA3NjY2ZDQ0N2UyZDg0YmQzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJveHkuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJveHkuaApAQCAtNjQsNyArNjQs
NyBAQCBwdWJsaWM6CiAgICAgdm9pZCBwbHVnaW5Qcm9jZXNzQ3Jhc2hlZCgpOwogCiAgICAgdm9p
ZCBkaWRSZWNlaXZlUGx1Z2luUHJveHlNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6TWVz
c2FnZURlY29kZXImKTsKLSAgICB2b2lkIGRpZFJlY2VpdmVTeW5jUGx1Z2luUHJveHlNZXNzYWdl
KElQQzo6Q29ubmVjdGlvbiYsIElQQzo6TWVzc2FnZURlY29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8
SVBDOjpNZXNzYWdlRW5jb2Rlcj4mKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVTeW5jUGx1Z2luUHJv
eHlNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6TWVzc2FnZURlY29kZXImLCBzdGQ6OnVu
aXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYpOwogCiAgICAgYm9vbCBpc0JlaW5nQXN5bmNocm9ub3Vz
bHlJbml0aWFsaXplZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fd2FpdGluZ09uQXN5bmNo
cm9ub3VzSW5pdGlhbGl6YXRpb247IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9TY3JvbGxpbmcvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaCBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvU2Nyb2xsaW5nL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yLmgK
aW5kZXggNWYwZDA3NzBkYzVmNjg4ZWI0NGE4ZTJlZDE4NmRjYTdiM2YxMGZjZi4uYjZmNjJmZWNh
MWM5NWMyZWRjNTg4OGMzOTJjNDI2ZTUyZWYzYjBhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9TY3JvbGxpbmcvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1Njcm9sbGluZy9SZW1vdGVTY3JvbGxpbmdDb29y
ZGluYXRvci5oCkBAIC0zNiw3ICszNiw3IEBACiAKIG5hbWVzcGFjZSBJUEMgewogY2xhc3MgQXJn
dW1lbnREZWNvZGVyOwotY2xhc3MgQXJndW1lbnRFbmNvZGVyOworY2xhc3MgRW5jb2RlcjsKIH0K
IAogbmFtZXNwYWNlIFdlYktpdCB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1Njcm9sbGluZy9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvci5tbSBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvU2Nyb2xsaW5nL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yLm1tCmlu
ZGV4IDIwODRiOGM4NjI0OWFlMjY2YmUzY2Y2MTMxMzIxNmFhY2Y0OWQwZDcuLmFiZDJlOGExZmYy
NjA1ZWRkNDE4YjZmNzhjYTQ4NTA2NDZhNDIyMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvU2Nyb2xsaW5nL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvU2Nyb2xsaW5nL1JlbW90ZVNjcm9sbGluZ0Nvb3Jk
aW5hdG9yLm1tCkBAIC0zMSw3ICszMSw2IEBACiAjaW1wb3J0ICJBcmd1bWVudENvZGVycy5oIgog
I2ltcG9ydCAiR3JhcGhpY3NMYXllckNBUmVtb3RlLmgiCiAjaW1wb3J0ICJNZXNzYWdlRGVjb2Rl
ci5oIgotI2ltcG9ydCAiTWVzc2FnZUVuY29kZXIuaCIKICNpbXBvcnQgIlJlbW90ZUxheWVyVHJl
ZURyYXdpbmdBcmVhLmgiCiAjaW1wb3J0ICJSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvck1lc3Nh
Z2VzLmgiCiAjaW1wb3J0ICJSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclRyYW5zYWN0aW9uLmgi
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0Fy
ZWEuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5oCmlu
ZGV4IDhhMzcxMGRiYTkxODliYWZlNTdkYjIyMzkwMTk0NmMyNDYxNWIwY2QuLjc4ZjU1N2Y0ZmRk
ZTg3ZDdlZWIxMjdiODA3MjE4NGQzNzJhZjc1N2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5oCkBAIC0xNTMsNyArMTUzLDcgQEAgcHJvdGVj
dGVkOgogcHJpdmF0ZToKICAgICAvLyBJUEM6Ok1lc3NhZ2VSZWNlaXZlci4KICAgICB2b2lkIGRp
ZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6TWVzc2FnZURlY29kZXImKSBv
dmVycmlkZTsKLSAgICB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24m
LCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6TWVzc2FnZUVuY29k
ZXI+Jikgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRSZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpDb25u
ZWN0aW9uJiwgSVBDOjpNZXNzYWdlRGVjb2RlciYsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29k
ZXI+Jikgb3ZlcnJpZGU7CiAKICAgICAvLyBNZXNzYWdlIGhhbmRsZXJzLgogICAgIC8vIEZJWE1F
OiBUaGVzZSBzaG91bGQgYmUgcHVyZSB2aXJ0dWFsLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IGY3NmFmZWZjN2Q4Y2YzOTk0MGRiYmM4NjRm
MzA4Mzg1M2FkYzdkZTguLmU2MzljM2QxZmNhNWIwZDU1MGY4NWI0ODg0NTZjOGEyZGI4NTJlMGIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAg
LTM5MTAsNyArMzkxMCw3IEBAIHZvaWQgV2ViUGFnZTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpD
b25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyCiAgICAgZGlkUmVjZWl2
ZVdlYlBhZ2VNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpOwogfQogCi12b2lkIFdlYlBhZ2U6
OmRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6
TWVzc2FnZURlY29kZXImIGRlY29kZXIsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6Ok1lc3NhZ2VFbmNv
ZGVyPiYgcmVwbHlFbmNvZGVyKQordm9pZCBXZWJQYWdlOjpkaWRSZWNlaXZlU3luY01lc3NhZ2Uo
SVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVy
LCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYgcmVwbHlFbmNvZGVyKQogeyAgIAogICAg
IGRpZFJlY2VpdmVTeW5jV2ViUGFnZU1lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2RlciwgcmVwbHlF
bmNvZGVyKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5o
CmluZGV4IDZlNGEyMWVhMGQwOGU0ZjY4MWJhNTdlZDY4YmYzMjJlYzA2M2E5MDkuLjE5YmQ0NGZi
MTYwNjkyYTRiZWQzOTg4NzM4OTQ0OGUyNTEwYzFmMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtMzExLDcgKzMxMSw3IEBAIHB1YmxpYzoKICAg
ICB2b2lkIHNldEFjdGl2ZU9wZW5QYW5lbFJlc3VsdExpc3RlbmVyKFBhc3NSZWZQdHI8V2ViT3Bl
blBhbmVsUmVzdWx0TGlzdGVuZXI+KTsKIAogICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBD
OjpDb25uZWN0aW9uJiwgSVBDOjpNZXNzYWdlRGVjb2RlciYpIG92ZXJyaWRlOwotICAgIHZvaWQg
ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6TWVzc2FnZURlY29k
ZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpNZXNzYWdlRW5jb2Rlcj4mKSBvdmVycmlkZTsKKyAg
ICB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6Ok1lc3Nh
Z2VEZWNvZGVyJiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4mKSBvdmVycmlkZTsKIAog
ICAgIC8vIC0tIEluamVjdGVkQnVuZGxlIG1ldGhvZHMKICNpZiBFTkFCTEUoQ09OVEVYVF9NRU5V
UykKQEAgLTk2Niw3ICs5NjYsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgcGxhdGZvcm1FZGl0b3JT
dGF0ZShXZWJDb3JlOjpGcmFtZSYsIEVkaXRvclN0YXRlJiByZXN1bHQsIEluY2x1ZGVQb3N0TGF5
b3V0RGF0YUhpbnQpIGNvbnN0OwogCiAgICAgdm9pZCBkaWRSZWNlaXZlV2ViUGFnZU1lc3NhZ2Uo
SVBDOjpDb25uZWN0aW9uJiwgSVBDOjpNZXNzYWdlRGVjb2RlciYpOwotICAgIHZvaWQgZGlkUmVj
ZWl2ZVN5bmNXZWJQYWdlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6Ok1lc3NhZ2VEZWNv
ZGVyJiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6TWVzc2FnZUVuY29kZXI+Jik7CisgICAgdm9pZCBk
aWRSZWNlaXZlU3luY1dlYlBhZ2VNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6TWVzc2Fn
ZURlY29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYpOwogCiAjaWYgUExBVEZP
Uk0oSU9TKQogICAgIHZvaWQgcmVzZXRWaWV3cG9ydERlZmF1bHRDb25maWd1cmF0aW9uKFdlYkZy
YW1lKiBtYWluRnJhbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL21hYy9QbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlLmggYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGUuaAppbmRleCBm
NGYwMTZjMmM2NmIzMmMxMzUxNWIxYmI2NGUzNzZkMDk5NGQwMmI5Li4zMTdmNThhNTZjZGQwZGM1
OTg1ZDYwZmQ5ZDU2NTQ0MWU0YWI2MDA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGUuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FBbmltYXRpb25SZW1v
dGUuaApAQCAtMzEsNyArMzEsNyBAQAogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAKIG5hbWVz
cGFjZSBJUEMgewotY2xhc3MgQXJndW1lbnRFbmNvZGVyOworY2xhc3MgRW5jb2RlcjsKIGNsYXNz
IEFyZ3VtZW50RGVjb2RlcjsKIH07CiAKQEAgLTIzMCw3ICsyMzAsNyBAQCBwdWJsaWM6CiAgICAg
ICAgICAgICByZXR1cm4gZmlsdGVyLmdldCgpOwogICAgICAgICB9CiAKLSAgICAgICAgdm9pZCBl
bmNvZGUoSVBDOjpBcmd1bWVudEVuY29kZXImKSBjb25zdDsKKyAgICAgICAgdm9pZCBlbmNvZGUo
SVBDOjpFbmNvZGVyJikgY29uc3Q7CiAgICAgICAgIHN0YXRpYyBib29sIGRlY29kZShJUEM6OkFy
Z3VtZW50RGVjb2RlciYsIEtleWZyYW1lVmFsdWUmKTsKIAogICAgIHByaXZhdGU6CkBAIC0yNjIs
NyArMjYyLDcgQEAgcHVibGljOgogICAgICAgICB7CiAgICAgICAgIH0KIAotICAgICAgICB2b2lk
IGVuY29kZShJUEM6OkFyZ3VtZW50RW5jb2RlciYpIGNvbnN0OworICAgICAgICB2b2lkIGVuY29k
ZShJUEM6OkVuY29kZXImKSBjb25zdDsKICAgICAgICAgc3RhdGljIGJvb2wgZGVjb2RlKElQQzo6
QXJndW1lbnREZWNvZGVyJiwgUHJvcGVydGllcyYpOwogCiAgICAgICAgIFN0cmluZyBrZXlQYXRo
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0
Zm9ybUNBQW5pbWF0aW9uUmVtb3RlLm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL21hYy9QbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlLm1tCmluZGV4IDU4MTVjZmU2MTBmZGQ0
NmMwNDA1ZGViZDQ0YmFjOGEwZTE4MzkxNTcuLmMyNjE2MmI3OGMwNDBhOTE1NzFiNzlkM2I3YWVm
OTg1MmMwZWJlMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9tYWMvUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGUubW0KQEAgLTEw
NSw3ICsxMDUsNyBAQCBzdGF0aWMgTlNTdHJpbmcgKiBjb25zdCBXS0V4cGxpY2l0QmVnaW5UaW1l
RmxhZyA9IEAiV0tQbGF0Zm9ybUNBQW5pbWF0aW9uRXhwbGljaQogCiBuYW1lc3BhY2UgV2ViS2l0
IHsKIAotdm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlOjpLZXlmcmFtZVZhbHVlOjplbmNv
ZGUoSVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit2b2lkIFBsYXRmb3JtQ0FB
bmltYXRpb25SZW1vdGU6OktleWZyYW1lVmFsdWU6OmVuY29kZShJUEM6OkVuY29kZXImIGVuY29k
ZXIpIGNvbnN0CiB7CiAgICAgZW5jb2Rlci5lbmNvZGVFbnVtKGtleVR5cGUpOwogCkBAIC0xNTks
NyArMTU5LDcgQEAgYm9vbCBQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlOjpLZXlmcmFtZVZhbHVl
OjpkZWNvZGUoSVBDOjpBcmd1bWVudERlY29kZXImIGRlY28KICAgICByZXR1cm4gdHJ1ZTsKIH0K
IAotdm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlOjpQcm9wZXJ0aWVzOjplbmNvZGUoSVBD
OjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit2b2lkIFBsYXRmb3JtQ0FBbmltYXRp
b25SZW1vdGU6OlByb3BlcnRpZXM6OmVuY29kZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0
CiB7CiAgICAgZW5jb2RlciA8PCBrZXlQYXRoOwogICAgIGVuY29kZXIuZW5jb2RlRW51bShhbmlt
YXRpb25UeXBlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEuaAppbmRleCBlZTg5
OTk0YTAwMmQ1MTU4NzRiYjNjYmNlMGZkY2NkOTE5OWFkZTcxLi4zMzJjYzhhOWQwZjc1NmM1ZmVk
YTg4M2NlNGVhMzYyNmMzODAzOGMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLmgKKysrIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJl
YS5oCkBAIC0zOSwxMCArMzksNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBQbGF0Zm9y
bUNBTGF5ZXI7CiB9CiAKLW5hbWVzcGFjZSBJUEMgewotY2xhc3MgTWVzc2FnZUVuY29kZXI7Ci19
Ci0KIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBSZW1vdGVMYXllclRyZWVDb250ZXh0OwpA
QCAtMTI1LDE2ICsxMjEsMTYgQEAgcHJpdmF0ZToKIAogICAgIGNsYXNzIEJhY2tpbmdTdG9yZUZs
dXNoZXIgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8QmFja2luZ1N0b3JlRmx1c2hlcj4g
ewogICAgIHB1YmxpYzoKLSAgICAgICAgc3RhdGljIFJlZjxCYWNraW5nU3RvcmVGbHVzaGVyPiBj
cmVhdGUoSVBDOjpDb25uZWN0aW9uKiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6TWVzc2FnZUVuY29k
ZXI+LCBWZWN0b3I8UmV0YWluUHRyPENHQ29udGV4dFJlZj4+KTsKKyAgICAgICAgc3RhdGljIFJl
ZjxCYWNraW5nU3RvcmVGbHVzaGVyPiBjcmVhdGUoSVBDOjpDb25uZWN0aW9uKiwgc3RkOjp1bmlx
dWVfcHRyPElQQzo6RW5jb2Rlcj4sIFZlY3RvcjxSZXRhaW5QdHI8Q0dDb250ZXh0UmVmPj4pOwog
CiAgICAgICAgIHZvaWQgZmx1c2goKTsKICAgICAgICAgYm9vbCBoYXNGbHVzaGVkKCkgY29uc3Qg
eyByZXR1cm4gbV9oYXNGbHVzaGVkOyB9CiAKICAgICBwcml2YXRlOgotICAgICAgICBCYWNraW5n
U3RvcmVGbHVzaGVyKElQQzo6Q29ubmVjdGlvbiosIHN0ZDo6dW5pcXVlX3B0cjxJUEM6Ok1lc3Nh
Z2VFbmNvZGVyPiwgVmVjdG9yPFJldGFpblB0cjxDR0NvbnRleHRSZWY+Pik7CisgICAgICAgIEJh
Y2tpbmdTdG9yZUZsdXNoZXIoSVBDOjpDb25uZWN0aW9uKiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6
RW5jb2Rlcj4sIFZlY3RvcjxSZXRhaW5QdHI8Q0dDb250ZXh0UmVmPj4pOwogCiAgICAgICAgIFJl
ZlB0cjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKLSAgICAgICAgc3RkOjp1bmlxdWVf
cHRyPElQQzo6TWVzc2FnZUVuY29kZXI+IG1fY29tbWl0RW5jb2RlcjsKKyAgICAgICAgc3RkOjp1
bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4gbV9jb21taXRFbmNvZGVyOwogICAgICAgICBWZWN0b3I8
UmV0YWluUHRyPENHQ29udGV4dFJlZj4+IG1fY29udGV4dHNUb0ZsdXNoOwogCiAgICAgICAgIHN0
ZDo6YXRvbWljPGJvb2w+IG1faGFzRmx1c2hlZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEubW0gYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdp
bmdBcmVhLm1tCmluZGV4IGY2ZDBiMDY4ZWExNGQ5NWFmOGIyY2JiMmQ1ZjdjMjM3Y2ZhNzhiYzku
LjNjMmQ2NTYzNzBkZmVmOTliMzdjZWUyZWYwNTllY2U1ZTNiZWE5YjkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2lu
Z0FyZWEubW0KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1v
dGVMYXllclRyZWVEcmF3aW5nQXJlYS5tbQpAQCAtMzk3LDcgKzM5Nyw3IEBAIHZvaWQgUmVtb3Rl
TGF5ZXJUcmVlRHJhd2luZ0FyZWE6OmZsdXNoTGF5ZXJzKCkKICAgICBtX3dlYlBhZ2Uuc2VuZChN
ZXNzYWdlczo6UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eTo6V2lsbENvbW1pdExheWVy
VHJlZShsYXllclRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSUQoKSkpOwogCiAgICAgTWVzc2FnZXM6
OlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHk6OkNvbW1pdExheWVyVHJlZSBtZXNzYWdl
KGxheWVyVHJhbnNhY3Rpb24sIHNjcm9sbGluZ1RyYW5zYWN0aW9uKTsKLSAgICBhdXRvIGNvbW1p
dEVuY29kZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPElQQzo6TWVzc2FnZUVuY29kZXI+KE1lc3NhZ2Vz
OjpSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5OjpDb21taXRMYXllclRyZWU6OnJlY2Vp
dmVyTmFtZSgpLCBNZXNzYWdlczo6UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eTo6Q29t
bWl0TGF5ZXJUcmVlOjpuYW1lKCksIG1fd2ViUGFnZS5wYWdlSUQoKSk7CisgICAgYXV0byBjb21t
aXRFbmNvZGVyID0gc3RkOjptYWtlX3VuaXF1ZTxJUEM6OkVuY29kZXI+KE1lc3NhZ2VzOjpSZW1v
dGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5OjpDb21taXRMYXllclRyZWU6OnJlY2VpdmVyTmFt
ZSgpLCBNZXNzYWdlczo6UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eTo6Q29tbWl0TGF5
ZXJUcmVlOjpuYW1lKCksIG1fd2ViUGFnZS5wYWdlSUQoKSk7CiAgICAgY29tbWl0RW5jb2Rlci0+
ZW5jb2RlKG1lc3NhZ2UuYXJndW1lbnRzKCkpOwogCiAgICAgLy8gRklYTUU6IE1vdmUgYWxsIGJh
Y2tpbmcgc3RvcmUgZmx1c2hpbmcgbWFuYWdlbWVudCB0byBSZW1vdGVMYXllckJhY2tpbmdTdG9y
ZUNvbGxlY3Rpb24uCkBAIC00NzEsMTIgKzQ3MSwxMiBAQCBib29sIFJlbW90ZUxheWVyVHJlZURy
YXdpbmdBcmVhOjptYXJrTGF5ZXJzVm9sYXRpbGVJbW1lZGlhdGVseUlmUG9zc2libGUoKQogICAg
IHJldHVybiBtX3JlbW90ZUxheWVyVHJlZUNvbnRleHQtPmJhY2tpbmdTdG9yZUNvbGxlY3Rpb24o
KS5tYXJrQWxsQmFja2luZ1N0b3JlVm9sYXRpbGVJbW1lZGlhdGVseUlmUG9zc2libGUoKTsKIH0K
IAotUmVmPFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjpCYWNraW5nU3RvcmVGbHVzaGVyPiBS
ZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYTo6QmFja2luZ1N0b3JlRmx1c2hlcjo6Y3JlYXRlKElQ
Qzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6TWVzc2FnZUVu
Y29kZXI+IGVuY29kZXIsIFZlY3RvcjxSZXRhaW5QdHI8Q0dDb250ZXh0UmVmPj4gY29udGV4dHNU
b0ZsdXNoKQorUmVmPFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjpCYWNraW5nU3RvcmVGbHVz
aGVyPiBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYTo6QmFja2luZ1N0b3JlRmx1c2hlcjo6Y3Jl
YXRlKElQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5j
b2Rlcj4gZW5jb2RlciwgVmVjdG9yPFJldGFpblB0cjxDR0NvbnRleHRSZWY+PiBjb250ZXh0c1Rv
Rmx1c2gpCiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVtb3RlTGF5ZXJUcmVlRHJhd2lu
Z0FyZWE6OkJhY2tpbmdTdG9yZUZsdXNoZXIoY29ubmVjdGlvbiwgV1RGTW92ZShlbmNvZGVyKSwg
V1RGTW92ZShjb250ZXh0c1RvRmx1c2gpKSk7CiB9CiAKLVJlbW90ZUxheWVyVHJlZURyYXdpbmdB
cmVhOjpCYWNraW5nU3RvcmVGbHVzaGVyOjpCYWNraW5nU3RvcmVGbHVzaGVyKElQQzo6Q29ubmVj
dGlvbiogY29ubmVjdGlvbiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6TWVzc2FnZUVuY29kZXI+IGVu
Y29kZXIsIFZlY3RvcjxSZXRhaW5QdHI8Q0dDb250ZXh0UmVmPj4gY29udGV4dHNUb0ZsdXNoKQor
UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6OkJhY2tpbmdTdG9yZUZsdXNoZXI6OkJhY2tpbmdT
dG9yZUZsdXNoZXIoSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBzdGQ6OnVuaXF1ZV9wdHI8
SVBDOjpFbmNvZGVyPiBlbmNvZGVyLCBWZWN0b3I8UmV0YWluUHRyPENHQ29udGV4dFJlZj4+IGNv
bnRleHRzVG9GbHVzaCkKICAgICA6IG1fY29ubmVjdGlvbihjb25uZWN0aW9uKQogICAgICwgbV9j
b21taXRFbmNvZGVyKFdURk1vdmUoZW5jb2RlcikpCiAgICAgLCBtX2NvbnRleHRzVG9GbHVzaChX
VEZNb3ZlKGNvbnRleHRzVG9GbHVzaCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9j
ZXNzLmNwcAppbmRleCAyMDhiNmU2Nzk5NzNmYjgxYTcwM2QzNjhkODdiMTI4YzMwM2Q5ZTg0Li4y
NzJmYmVjYzZhMGRmMDhjNjgzNmJjMDBmZjJlNTlkZGJmNDBlYzcyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKQEAgLTYzMiw3ICs2MzIsNyBAQCB2b2lkIFdlYlBy
b2Nlc3M6OnRlcm1pbmF0ZSgpCiAgICAgQ2hpbGRQcm9jZXNzOjp0ZXJtaW5hdGUoKTsKIH0KIAot
dm9pZCBXZWJQcm9jZXNzOjpkaWRSZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBj
b25uZWN0aW9uLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyLCBzdGQ6OnVuaXF1ZV9wdHI8
SVBDOjpNZXNzYWdlRW5jb2Rlcj4mIHJlcGx5RW5jb2RlcikKK3ZvaWQgV2ViUHJvY2Vzczo6ZGlk
UmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpNZXNz
YWdlRGVjb2RlciYgZGVjb2Rlciwgc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4mIHJlcGx5
RW5jb2RlcikKIHsKICAgICBpZiAobWVzc2FnZVJlY2VpdmVyTWFwKCkuZGlzcGF0Y2hTeW5jTWVz
c2FnZShjb25uZWN0aW9uLCBkZWNvZGVyLCByZXBseUVuY29kZXIpKQogICAgICAgICByZXR1cm47
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaCBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCmluZGV4IGJiODg3ODI5YjhiMWZl
ZGVlNzU4YTdmOWU4OTg0MzJmM2Y4NDFjMjUuLmM2YjVmODdiOWNiNTg0YTcwMDBkYTg3NDVhZmNl
ZTllZjhiNjZkODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJv
Y2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCkBAIC0z
MjAsNyArMzIwLDcgQEAgcHJpdmF0ZToKICAgICAvLyBJUEM6OkNvbm5lY3Rpb246OkNsaWVudAog
ICAgIGZyaWVuZCBjbGFzcyBXZWJDb25uZWN0aW9uVG9VSVByb2Nlc3M7CiAgICAgdm9pZCBkaWRS
ZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJikgb3Zl
cnJpZGU7Ci0gICAgdm9pZCBkaWRSZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwg
SVBDOjpNZXNzYWdlRGVjb2RlciYsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6Ok1lc3NhZ2VFbmNvZGVy
PiYpIG92ZXJyaWRlOworICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVj
dGlvbiYsIElQQzo6TWVzc2FnZURlY29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVy
PiYpIG92ZXJyaWRlOwogICAgIHZvaWQgZGlkQ2xvc2UoSVBDOjpDb25uZWN0aW9uJikgb3ZlcnJp
ZGU7CiAgICAgdm9pZCBkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwg
SVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFtZSwgSVBDOjpTdHJpbmdSZWZl
cmVuY2UgbWVzc2FnZU5hbWUpIG92ZXJyaWRlOwogICAgIElQQzo6UHJvY2Vzc1R5cGUgbG9jYWxQ
cm9jZXNzVHlwZSgpIG92ZXJyaWRlIHsgcmV0dXJuIElQQzo6UHJvY2Vzc1R5cGU6OldlYjsgfQpA
QCAtMzI4LDcgKzMyOCw3IEBAIHByaXZhdGU6CiAKICAgICAvLyBJbXBsZW1lbnRlZCBpbiBnZW5l
cmF0ZWQgV2ViUHJvY2Vzc01lc3NhZ2VSZWNlaXZlci5jcHAKICAgICB2b2lkIGRpZFJlY2VpdmVX
ZWJQcm9jZXNzTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7
Ci0gICAgdm9pZCBkaWRSZWNlaXZlU3luY1dlYlByb2Nlc3NNZXNzYWdlKElQQzo6Q29ubmVjdGlv
biYsIElQQzo6TWVzc2FnZURlY29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpNZXNzYWdlRW5j
b2Rlcj4mKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVTeW5jV2ViUHJvY2Vzc01lc3NhZ2UoSVBDOjpD
b25uZWN0aW9uJiwgSVBDOjpNZXNzYWdlRGVjb2RlciYsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVu
Y29kZXI+Jik7CiAKICAgICBSZWZQdHI8V2ViQ29ubmVjdGlvblRvVUlQcm9jZXNzPiBtX3dlYkNv
bm5lY3Rpb247CiAK
</data>
<flag name="review"
          id="310030"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
      

    </bug>

</bugzilla>