<?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>152463</bug_id>
          
          <creation_ts>2015-12-19 19:42:21 -0800</creation_ts>
          <short_desc>[CF] Replace CFNetwork-related WebKitSystemInterface calls with SPI</short_desc>
          <delta_ts>2016-01-04 11:52:07 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <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="Andy Estes">aestes</reporter>
          <assigned_to name="Andy Estes">aestes</assigned_to>
          <cc>achristensen</cc>
    
    <cc>ap</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>dbates</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>mitz</cc>
    
    <cc>mjs</cc>
    
    <cc>ossy</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1150595</commentid>
    <comment_count>0</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2015-12-19 19:42:21 -0800</bug_when>
    <thetext>[CF] Replace CFNetwork-related WebKitSystemInterface calls with SPI</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1150597</commentid>
    <comment_count>1</comment_count>
      <attachid>267707</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2015-12-19 20:22:34 -0800</bug_when>
    <thetext>Created attachment 267707
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1150598</commentid>
    <comment_count>2</comment_count>
      <attachid>267707</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2015-12-19 20:32:59 -0800</bug_when>
    <thetext>Comment on attachment 267707
Patch

Looks good, although fixing all the builds may be challenging.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1150604</commentid>
    <comment_count>3</comment_count>
      <attachid>267707</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-12-19 21:24:37 -0800</bug_when>
    <thetext>Comment on attachment 267707
Patch

Rejecting attachment 267707 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.webkit.org&apos;, &apos;--bot-id=webkit-cq-01&apos;, &apos;build&apos;, &apos;--no-clean&apos;, &apos;--no-update&apos;, &apos;--build-style=release&apos;, &apos;--port=mac&apos;]&quot; exit_code: 2 cwd: /Volumes/Data/EWS/WebKit

Last 500 characters of output:
/spi/cf/CFNetworkSPI.h:134:36: note: &apos;CFURLCredentialStorageCreate&apos; declared here
EXTERN_C CFURLCredentialStorageRef CFURLCredentialStorageCreate(CFAllocatorRef);
                                   ^

** BUILD FAILED **


The following build commands failed:
	CompileC /Volumes/Data/EWS/WebKit/WebKitBuild/WebCore.build/Release/WebCore.build/Objects-normal/x86_64/CookieJarMac.o platform/network/mac/CookieJarMac.mm normal x86_64 objective-c++ com.apple.compilers.llvm.clang.1_0.compiler
(1 failure)

Full output: http://webkit-queues.webkit.org/results/582707</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1150607</commentid>
    <comment_count>4</comment_count>
      <attachid>267708</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2015-12-19 21:58:25 -0800</bug_when>
    <thetext>Created attachment 267708
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1150608</commentid>
    <comment_count>5</comment_count>
      <attachid>267709</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2015-12-19 22:01:07 -0800</bug_when>
    <thetext>Created attachment 267709
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1150942</commentid>
    <comment_count>6</comment_count>
      <attachid>267797</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2015-12-22 12:41:38 -0800</bug_when>
    <thetext>Created attachment 267797
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1150970</commentid>
    <comment_count>7</comment_count>
      <attachid>267806</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2015-12-22 14:16:16 -0800</bug_when>
    <thetext>Created attachment 267806
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1150986</commentid>
    <comment_count>8</comment_count>
      <attachid>267806</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-12-22 15:52:25 -0800</bug_when>
    <thetext>Comment on attachment 267806
Patch

Clearing flags on attachment: 267806

Committed r194378: &lt;http://trac.webkit.org/changeset/194378&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1150987</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-12-22 15:52:30 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1151056</commentid>
    <comment_count>10</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2015-12-23 04:34:10 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; Comment on attachment 267806 [details]
&gt; Patch
&gt; 
&gt; Clearing flags on attachment: 267806
&gt; 
&gt; Committed r194378: &lt;http://trac.webkit.org/changeset/194378&gt;

It broke the Apple Mac cmake build:
https://build.webkit.org/builders/Apple%20El%20Capitan%20CMake%20Debug%20%28Build%29/builds/1224</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1151320</commentid>
    <comment_count>11</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2015-12-25 00:09:58 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; (In reply to comment #8)
&gt; &gt; Comment on attachment 267806 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; Clearing flags on attachment: 267806
&gt; &gt; 
&gt; &gt; Committed r194378: &lt;http://trac.webkit.org/changeset/194378&gt;
&gt; 
&gt; It broke the Apple Mac cmake build:
&gt; https://build.webkit.org/builders/
&gt; Apple%20El%20Capitan%20CMake%20Debug%20%28Build%29/builds/1224

I&apos;m not sure how to fix this. I noticed that the WebCore.framework created by CMake is missing the Headers or PrivateHeaders directories, so I&apos;m not sure how WebKit is supposed to find WebCore external headers.

Alex, can you help?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1152428</commentid>
    <comment_count>12</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-01-04 11:52:07 -0800</bug_when>
    <thetext>r194545 should fix that.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>267707</attachid>
            <date>2015-12-19 20:22:34 -0800</date>
            <delta_ts>2015-12-22 12:41:32 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-152463-20151219202156.patch</filename>
            <type>text/plain</type>
            <size>100480</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk0MjkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWQ0NmRlN2M0NGMxZWYx
ZGQ0NjdiMzNjYmNhN2Q4ZDgwNWFkM2E3Ny4uNjk4M2ZjZmFjOTNhZmY0YjZlYTUzOTFlNTIwOTk5
YjU5NDQzOWJjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY2IEBACisyMDE1LTEyLTE5ICBBbmR5
IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBbQ0ZdIFJlcGxhY2UgQ0ZOZXR3
b3JrLXJlbGF0ZWQgV2ViS2l0U3lzdGVtSW50ZXJmYWNlIGNhbGxzIHdpdGggU1BJCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTI0NjMKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZXBsYWNlZCBXZWJraXRT
eXN0ZW1JbnRlcmZhY2UgY2FsbHMgdGhhdCB3cmFwcGVkIENGTmV0d29yayBTUEkgd2l0aCBkaXJl
Y3QgY2FsbHMgdG8gU1BJIHRoYXQgaXMgbm93IGZvcndhcmQKKyAgICAgICAgZGVjbGFyZWQgaW4g
Q0ZOZXR3b3JrU1BJLmguCisKKyAgICAgICAgQWxzbyByZW1vdmVkIHNvbWUgdW51c2VkIGRlY2xh
cmF0aW9ucywgcmVuYW1lZCBSZXNvdXJjZVJlc3BvbnNlTWFjLm1tIHRvCisgICAgICAgIFJlc291
cmNlUmVzcG9uc2VDb2NvYS5tbSwgYW5kIGNvbnNvbG9kYXRlZCBDRk5ldHdvcmtDb25uZWN0aW9u
Q2FjaGVTUEkuaCBpbnRvIENGTmV0d29ya1NQSS5oLgorCisgICAgICAgICogUGxhdGZvcm1NYWMu
Y21ha2U6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAg
ICAgICAqIHBsYXRmb3JtL2lvcy9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlSU9TLm1tOgorICAgICAg
ICAqIHBsYXRmb3JtL21hYy9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmg6CisgICAgICAgICogcGxh
dGZvcm0vbWFjL1dlYkNvcmVTeXN0ZW1JbnRlcmZhY2UubW06CisgICAgICAgICogcGxhdGZvcm0v
bmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3
b3JrL2NmL0NyZWRlbnRpYWxTdG9yYWdlQ0ZOZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y29w
eUNyZWRlbnRpYWxGcm9tUHJvdGVjdGlvblNwYWNlKToKKyAgICAgICAgKFdlYkNvcmU6OkNyZWRl
bnRpYWxTdG9yYWdlOjpnZXRGcm9tUGVyc2lzdGVudFN0b3JhZ2UpOgorICAgICAgICAqIHBsYXRm
b3JtL25ldHdvcmsvY2YvTmV0d29ya1N0b3JhZ2VTZXNzaW9uQ0ZOZXQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpjb29raWVTdG9yYWdlKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZOZXQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OmNyZWF0ZUNGVVJMQ29ubmVjdGlvbik6CisgICAgICAg
ICogcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVn
YXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9u
RGVsZWdhdGU6OmNyZWF0ZVJlc291cmNlUmVxdWVzdCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0
d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlV2l0aE9wZXJhdGlv
blF1ZXVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0
aW9uRGVsZWdhdGVXaXRoT3BlcmF0aW9uUXVldWU6OmRpZFJlY2VpdmVSZXNwb25zZSk6CisgICAg
ICAgICogcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZVJlcXVlc3RDRk5ldC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Q6OmRvVXBkYXRlUGxhdGZvcm1SZXF1ZXN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdDo6ZG9VcGRhdGVSZXNvdXJjZVJlcXVl
c3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0OjpzZXRTdG9yYWdlU2Vzc2lv
bik6CisgICAgICAgIChXZWJDb3JlOjppbml0aWFsaXplTWF4aW11bUhUVFBDb25uZWN0aW9uQ291
bnRQZXJIb3N0KToKKyAgICAgICAgKFdlYkNvcmU6OmluaXRpYWxpemVIVFRQQ29ubmVjdGlvblNl
dHRpbmdzT25TdGFydHVwKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNl
UmVxdWVzdENGTmV0Lmg6CisgICAgICAgIChXZWJDb3JlOjp0b1Jlc291cmNlTG9hZFByaW9yaXR5
KToKKyAgICAgICAgKFdlYkNvcmU6OnRvUGxhdGZvcm1SZXF1ZXN0UHJpb3JpdHkpOgorICAgICAg
ICAqIHBsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VSZXNwb25zZS5oOgorICAgICAgICAqIHBs
YXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VSZXNwb25zZUNGTmV0LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlc291cmNlUmVzcG9uc2U6OnBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2NmL1N5bmNocm9ub3VzUmVzb3VyY2VIYW5kbGVDRlVSTENv
bm5lY3Rpb25EZWxlZ2F0ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTeW5jaHJvbm91c1Jlc291
cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGU6OmRpZFJlY2VpdmVSZXNwb25zZSk6Cisg
ICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jb2NvYS9SZXNvdXJjZVJlcXVlc3RDb2NvYS5tbToK
KyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdDo6ZG9VcGRhdGVSZXNvdXJjZVJlcXVl
c3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Ojpkb1VwZGF0ZVBsYXRmb3Jt
UmVxdWVzdCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jb2NvYS9SZXNvdXJjZVJlc3Bv
bnNlQ29jb2EubW06IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L21hYy9SZXNvdXJjZVJlc3BvbnNlTWFjLm1tLgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VS
ZXNwb25zZTo6cGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8pOgorICAgICAgICAoV2ViQ29yZTo6Y29w
eU5TVVJMUmVzcG9uc2VTdGF0dXNMaW5lKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlUmVz
cG9uc2U6OnBsYXRmb3JtTGF6eUluaXQpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvaW9z
L1F1aWNrTG9vay5oOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvaW9zL1F1aWNrTG9vay5t
bToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2lvcy9XZWJDb3JlVVJMUmVzcG9uc2VJT1Mu
bW06CisgICAgICAgIChXZWJDb3JlOjphZGp1c3RNSU1FVHlwZUlmTmVjZXNzYXJ5KToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbToKKyAgICAgICAg
KFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpjcmVhdGVOU1VSTENvbm5lY3Rpb24pOgorICAgICAg
ICAqIHBsYXRmb3JtL25ldHdvcmsvbWFjL1dlYkNvcmVVUkxSZXNwb25zZS5oOgorICAgICAgICAq
IHBsYXRmb3JtL25ldHdvcmsvbWFjL1dlYkNvcmVVUkxSZXNwb25zZS5tbToKKyAgICAgICAgKFdl
YkNvcmU6OmFkanVzdE1JTUVUeXBlSWZOZWNlc3NhcnkpOgorICAgICAgICAqIHBsYXRmb3JtL3Nw
aS9jZi9DRk5ldHdvcmtDb25uZWN0aW9uQ2FjaGVTUEkuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBw
bGF0Zm9ybS9zcGkvY2YvQ0ZOZXR3b3JrU1BJLmg6CisKIDIwMTUtMTItMTggIEJyZW50IEZ1bGdo
YW0gIDxiZnVsZ2hhbUBhcHBsZS5jb20+CiAKICAgICAgICAgUGxhY2UgYW4gdXBwZXIgYm91bmQg
b24gY2FudmFzIHBpeGVsIGNvdW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggNTI1MGUwMmJjMTU2Nzc3
MDQxODA2YzUwZjAzZDllNzA5NmFlM2ZkMi4uMjgxZmU2ODgwZjZkZmIyMmJjYjBhY2RiYzc3NTQz
ODhlOWJmYzI0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDE1LTEyLTE5
ICBBbmR5IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBbQ0ZdIFJlcGxhY2Ug
Q0ZOZXR3b3JrLXJlbGF0ZWQgV2ViS2l0U3lzdGVtSW50ZXJmYWNlIGNhbGxzIHdpdGggU1BJCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTI0NjMKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZXBsYWNlZCBX
ZWJraXRTeXN0ZW1JbnRlcmZhY2UgY2FsbHMgdGhhdCB3cmFwcGVkIENGTmV0d29yayBTUEkgd2l0
aCBkaXJlY3QgY2FsbHMgdG8gU1BJIHRoYXQgaXMgbm93IGZvcndhcmQKKyAgICAgICAgZGVjbGFy
ZWQgaW4gQ0ZOZXR3b3JrU1BJLmguCisKKyAgICAgICAgKiBQbHVnaW5zL0hvc3RlZC9Ib3N0ZWRO
ZXRzY2FwZVBsdWdpblN0cmVhbS5tbToKKyAgICAgICAgKFdlYktpdDo6SG9zdGVkTmV0c2NhcGVQ
bHVnaW5TdHJlYW06OmRpZFJlY2VpdmVSZXNwb25zZSk6CisgICAgICAgICogUGx1Z2lucy9XZWJO
ZXRzY2FwZVBsdWdpblN0cmVhbS5tbToKKyAgICAgICAgKFdlYk5ldHNjYXBlUGx1Z2luU3RyZWFt
OjpkaWRSZWNlaXZlUmVzcG9uc2UpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYlN5c3Rl
bUludGVyZmFjZS5tbToKKyAgICAgICAgKEluaXRXZWJDb3JlU3lzdGVtSW50ZXJmYWNlKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBXZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tOgorICAgICAgICAoK1tX
ZWJQcmVmZXJlbmNlcyBfc2V0Q3VycmVudE5ldHdvcmtMb2FkZXJTZXNzaW9uQ29va2llQWNjZXB0
UG9saWN5Ol0pOgorCiAyMDE1LTEyLTE3ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBw
bGUuY29tPgogCiAgICAgICAgIERhdGEgZGV0ZWN0b3IgeWVsbG93IGhpZ2hsaWdodCBsb2NhdGlv
biBpcyB2ZXJ0aWNhbGx5IG1pcnJvcmVkIGluIFdlYktpdDEKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA2MzBhOTQy
ZDk4ZjFjZTlhNjQ0ZGY0YWIzNjMwMGRlY2RhNGZmYTkxLi4zMzkwOTAxODhmZTA2MzJjYjM0NTlh
YzU5MWM3NWY3OGIzZDdjMmFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTUtMTIt
MTkgIEFuZHkgRXN0ZXMgIDxhZXN0ZXNAYXBwbGUuY29tPgorCisgICAgICAgIFtDRl0gUmVwbGFj
ZSBDRk5ldHdvcmstcmVsYXRlZCBXZWJLaXRTeXN0ZW1JbnRlcmZhY2UgY2FsbHMgd2l0aCBTUEkK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MjQ2Mwor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlcGxhY2Vk
IFdlYmtpdFN5c3RlbUludGVyZmFjZSBjYWxscyB0aGF0IHdyYXBwZWQgQ0ZOZXR3b3JrIFNQSSB3
aXRoIGRpcmVjdCBjYWxscyB0byBTUEkgdGhhdCBpcyBub3cgZm9yd2FyZAorICAgICAgICBkZWNs
YXJlZCBpbiBDRk5ldHdvcmtTUEkuaC4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NvY29h
L05ldHdvcmtQcm9jZXNzQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OmluaXRpYWxpemVOZXR3
b3JrU2V0dGluZ3MpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL21hYy9OZXR3b3JrUHJvY2Vz
c01hYy5tbToKKyAgICAgICAgKFdlYktpdDo6b3ZlcnJpZGVTeXN0ZW1Qcm94aWVzKToKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJGcmFtZU5ldHdvcmtpbmdDb250
ZXh0Lm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpzZXRD
b29raWVBY2NlcHRQb2xpY3lGb3JBbGxDb250ZXh0cyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9tYWMvV2ViU3lzdGVtSW50ZXJmYWNlLm1tOgorICAgICAgICAoSW5pdFdl
YkNvcmVTeXN0ZW1JbnRlcmZhY2UpOgorCiAyMDE1LTEyLTE4ICBNaWNoYWVsIENhdGFuemFybyAg
PG1jYXRhbnphcm9AaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXSBVbnJldmlld2VkLCBmaXgg
R3RrRG9jIGFmdGVyIHIxOTM2MjAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3Jt
TWFjLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1NYWMuY21ha2UKaW5kZXggMDhmYzBi
NjI1N2U0YzU5ZDcwMmY1YjJkYWZlYzM4MzQ0ZWNlODFiYy4uZGY1OGQyNTIyZDJiOTM5NzllNjlk
YjRiNmJkMDExNDdiODMwYzkxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1N
YWMuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1NYWMuY21ha2UKQEAgLTUyMCw2
ICs1MjAsNyBAQCBsaXN0KEFQUEVORCBXZWJDb3JlX1NPVVJDRVMKICAgICBwbGF0Zm9ybS9uZXR3
b3JrL2NvY29hL0NyZWRlbnRpYWxDb2NvYS5tbQogICAgIHBsYXRmb3JtL25ldHdvcmsvY29jb2Ev
UHJvdGVjdGlvblNwYWNlQ29jb2EubW0KICAgICBwbGF0Zm9ybS9uZXR3b3JrL2NvY29hL1Jlc291
cmNlUmVxdWVzdENvY29hLm1tCisgICAgcGxhdGZvcm0vbmV0d29yay9jb2NvYS9SZXNvdXJjZVJl
c3BvbnNlQ29jb2EubW0KIAogICAgIHBsYXRmb3JtL25ldHdvcmsvbWFjL0F1dGhlbnRpY2F0aW9u
TWFjLm1tCiAgICAgcGxhdGZvcm0vbmV0d29yay9tYWMvQmxvYkRhdGFGaWxlUmVmZXJlbmNlTWFj
Lm1tCkBAIC01MzIsNyArNTMzLDYgQEAgbGlzdChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCiAgICAg
cGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VFcnJvck1hYy5tbQogICAgIHBsYXRmb3JtL25l
dHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1tCiAgICAgcGxhdGZvcm0vbmV0d29yay9tYWMv
UmVzb3VyY2VSZXF1ZXN0TWFjLm1tCi0gICAgcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VS
ZXNwb25zZU1hYy5tbQogICAgIHBsYXRmb3JtL25ldHdvcmsvbWFjL1N5bmNocm9ub3VzTG9hZGVy
Q2xpZW50Lm1tCiAgICAgcGxhdGZvcm0vbmV0d29yay9tYWMvVVRJVXRpbGl0aWVzLm1tCiAgICAg
cGxhdGZvcm0vbmV0d29yay9tYWMvV2ViQ29yZVJlc291cmNlSGFuZGxlQXNEZWxlZ2F0ZS5tbQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmlu
ZGV4IGMwOWQzZDk0ZjMxYTY5YzY4ODdkMjc1NDAyNDg1MjY5OTFiYThjY2QuLjQ2ZmYxZjVmYzVm
YmM2ZGE5ODY3ZWNjYzM3MjA1OTE5ZTkxYjIwNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE5NzcsNyArMTk3Nyw2IEBACiAJ
CTUxNEM3NjUwMENFOTIzNEUwMDdFRjNDRCAvKiBSZXNvdXJjZUVycm9yTWFjLm1tIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE0Qzc2NDYwQ0U5MjM0RTAw
N0VGM0NEIC8qIFJlc291cmNlRXJyb3JNYWMubW0gKi87IH07CiAJCTUxNEM3NjUxMENFOTIzNEUw
MDdFRjNDRCAvKiBSZXNvdXJjZUhhbmRsZU1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxNEM3NjQ3MENFOTIzNEUwMDdFRjNDRCAvKiBSZXNvdXJj
ZUhhbmRsZU1hYy5tbSAqLzsgfTsKIAkJNTE0Qzc2NTMwQ0U5MjM0RTAwN0VGM0NEIC8qIFJlc291
cmNlUmVxdWVzdE1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDUxNEM3NjQ5MENFOTIzNEUwMDdFRjNDRCAvKiBSZXNvdXJjZVJlcXVlc3RNYWMubW0g
Ki87IH07Ci0JCTUxNEM3NjU1MENFOTIzNEYwMDdFRjNDRCAvKiBSZXNvdXJjZVJlc3BvbnNlTWFj
Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE0Qzc2
NEIwQ0U5MjM0RTAwN0VGM0NEIC8qIFJlc291cmNlUmVzcG9uc2VNYWMubW0gKi87IH07CiAJCTUx
NEM3NjZEMENFOTIzQTEwMDdFRjNDRCAvKiBDcmVkZW50aWFsQmFzZS5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTRDNzY1ODBDRTkyM0ExMDA3RUYz
Q0QgLyogQ3JlZGVudGlhbEJhc2UuY3BwICovOyB9OwogCQk1MTRDNzY2RTBDRTkyM0ExMDA3RUYz
Q0QgLyogQ3JlZGVudGlhbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNTE0Qzc2NTkwQ0U5MjNBMTAwN0VGM0NEIC8qIENyZWRlbnRpYWwuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1MTRDNzY2RjBDRTky
M0ExMDA3RUYzQ0QgLyogRm9ybURhdGEuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNTE0Qzc2NUEwQ0U5MjNBMTAwN0VGM0NEIC8qIEZvcm1EYXRhLmNw
cCAqLzsgfTsKQEAgLTQwOTYsNiArNDA5NSw3IEBACiAJCUExRUQ3NzhDMUJFMzI5NDAwMERDMTc5
MSAvKiBEZXZpY2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQTFFRDc3OEExQkUzMjkzRjAwREMxNzkxIC8qIERldmljZS5jcHAgKi87IH07CiAJCUEx
RUQ3NzhEMUJFMzI5NDAwMERDMTc5MSAvKiBEZXZpY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExRUQ3NzhCMUJFMzI5NDAwMERDMTc5MSAvKiBEZXZp
Y2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlB
MUVENzc4RjFCRTQyOTE4MDBEQzE3OTEgLyogVUlLaXRTUEkuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExRUQ3NzhFMUJFNDI5MTgwMERDMTc5MSAvKiBV
SUtpdFNQSS5oICovOyB9OworCQlBMUY3OEQwQzFDMjU0MjRDMDAyNDU0NDYgLyogUmVzb3VyY2VS
ZXNwb25zZUNvY29hLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQTFGNzhEMEIxQzI1NDIyQzAwMjQ1NDQ2IC8qIFJlc291cmNlUmVzcG9uc2VDb2NvYS5t
bSAqLzsgfTsKIAkJQTJCOTIxNzMxNkM1Q0M0MjAwNDFEQ0Q5IC8qIEludFJlY3RFeHRlbnQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEEyQjkyMTcyMTZD
NUNDNDIwMDQxRENEOSAvKiBJbnRSZWN0RXh0ZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQTMxQzRFNEQxNkUwMkFBNjAwMkY3OTU3IC8qIE9F
U1RleHR1cmVIYWxmRmxvYXQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQTMxQzRFNEMxNkUwMkFBNjAwMkY3OTU3IC8qIE9FU1RleHR1cmVIYWxmRmxv
YXQuY3BwICovOyB9OwogCQlBMzFDNEU0RjE2RTAyQUI0MDAyRjc5NTcgLyogT0VTVGV4dHVyZUhh
bGZGbG9hdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QTMxQzRFNEUxNkUwMkFCNDAwMkY3OTU3IC8qIE9FU1RleHR1cmVIYWxmRmxvYXQuaCAqLzsgfTsK
QEAgLTYxMjQsNyArNjEyNCw2IEBACiAJCUNFN0IyREI0MTU4NkFCQUQwMDk4QjNGQSAvKiBBbHRl
cm5hdGl2ZVRleHRVSUNvbnRyb2xsZXIubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBDRTdCMkRCMDE1ODZBQkFEMDA5OEIzRkEgLyogQWx0ZXJuYXRpdmVU
ZXh0VUlDb250cm9sbGVyLm1tICovOyB9OwogCQlDRTdCMkRCNTE1ODZBQkFEMDA5OEIzRkEgLyog
VGV4dEFsdGVybmF0aXZlV2l0aFJhbmdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBDRTdCMkRCMTE1ODZBQkFEMDA5OEIzRkEgLyogVGV4dEFsdGVybmF0
aXZlV2l0aFJhbmdlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJQ0U3QjJEQjYxNTg2QUJBRDAwOThCM0ZBIC8qIFRleHRBbHRlcm5hdGl2ZVdpdGhS
YW5nZS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENF
N0IyREIyMTU4NkFCQUQwMDk4QjNGQSAvKiBUZXh0QWx0ZXJuYXRpdmVXaXRoUmFuZ2UubW0gKi87
IH07Ci0JCUNFODI0NUYwMTlCNjcxQkEwMEFDMDEyMiAvKiBDRk5ldHdvcmtDb25uZWN0aW9uQ2Fj
aGVTUEkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENF
ODI0NUVGMTlCNjcxQkEwMEFDMDEyMiAvKiBDRk5ldHdvcmtDb25uZWN0aW9uQ2FjaGVTUEkuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlDRTk1MjA4
QTE4MTFCNDc1MDA3QTUzOTIgLyogV2ViU2FmZUluY3JlbWVudGFsU3dlZXBlcklPUy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzJDNENCMUQxNjFBMTMx
MjAwRDIxNERBIC8qIFdlYlNhZmVJbmNyZW1lbnRhbFN3ZWVwZXJJT1MuaCAqLzsgfTsKIAkJQ0VD
MzM3QUQxQTQ2MDcxRjAwOUI4NTIzIC8qIFNlcnZlcnNTUEkuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENFQzMzN0FDMUE0NjA3MUYwMDlCODUyMyAvKiBT
ZXJ2ZXJzU1BJLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJQ0VDMzM3QUYxQTQ2MDg2RDAwOUI4NTIzIC8qIEdyYXBoaWNzU2VydmljZXNTUEkuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENFQzMzN0FFMUE0
NjA4NkQwMDlCODUyMyAvKiBHcmFwaGljc1NlcnZpY2VzU1BJLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTk0MDEsNyArOTQwMCw2IEBACiAJCTUx
NEM3NjQ2MENFOTIzNEUwMDdFRjNDRCAvKiBSZXNvdXJjZUVycm9yTWFjLm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUmVzb3VyY2VFcnJvck1hYy5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTE0Qzc2NDcwQ0U5MjM0RTAwN0VGM0NEIC8qIFJlc291
cmNlSGFuZGxlTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
UmVzb3VyY2VIYW5kbGVNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxNEM3
NjQ5MENFOTIzNEUwMDdFRjNDRCAvKiBSZXNvdXJjZVJlcXVlc3RNYWMubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBSZXNvdXJjZVJlcXVlc3RNYWMubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTUxNEM3NjRCMENFOTIzNEUwMDdFRjNDRCAvKiBSZXNv
dXJjZVJlc3BvbnNlTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRo
ID0gUmVzb3VyY2VSZXNwb25zZU1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NTE0Qzc2NTgwQ0U5MjNBMTAwN0VGM0NEIC8qIENyZWRlbnRpYWxCYXNlLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENyZWRlbnRpYWxCYXNlLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTE0Qzc2NTkwQ0U5MjNBMTAwN0VGM0NEIC8qIENyZWRlbnRp
YWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ3JlZGVudGlhbC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTRDNzY1QTBDRTkyM0ExMDA3RUYzQ0QgLyogRm9y
bURhdGEuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRm9ybURhdGEu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTE2NTYsNiArMTE2NTQsNyBAQAog
CQlBMUVENzc4QTFCRTMyOTNGMDBEQzE3OTEgLyogRGV2aWNlLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERldmljZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUExRUQ3NzhCMUJFMzI5NDAwMERDMTc5MSAvKiBEZXZpY2UuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gRGV2aWNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUExRUQ3NzhFMUJFNDI5MTgwMERDMTc5MSAvKiBVSUtpdFNQSS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBVSUtpdFNQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlBMUY3OEQwQjFDMjU0MjJDMDAyNDU0NDYgLyogUmVzb3VyY2VSZXNwb25zZUNvY29hLm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUmVzb3VyY2VSZXNwb25z
ZUNvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMjA4RTIyMkE1NkEwQzc1
NzVGMkE3MkUgLyogUmVuZGVyTWF0aE1MTWVuY2xvc2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gUmVuZGVyTWF0aE1MTWVuY2xvc2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQTJCOTIxNzIxNkM1Q0M0MjAwNDFEQ0Q5IC8qIEludFJlY3RFeHRlbnQuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW50UmVjdEV4dGVudC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlBMzFDNEU0QzE2RTAyQUE2MDAyRjc5NTcgLyogT0VTVGV4dHVy
ZUhhbGZGbG9hdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBPRVNU
ZXh0dXJlSGFsZkZsb2F0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEzOTk5
LDcgKzEzOTk4LDYgQEAKIAkJQ0U3QjJEQjAxNTg2QUJBRDAwOThCM0ZBIC8qIEFsdGVybmF0aXZl
VGV4dFVJQ29udHJvbGxlci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IEFsdGVybmF0aXZlVGV4dFVJQ29udHJvbGxlci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQ0U3QjJEQjExNTg2QUJBRDAwOThCM0ZBIC8qIFRleHRBbHRlcm5hdGl2ZVdpdGhS
YW5nZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUZXh0QWx0ZXJuYXRpdmVX
aXRoUmFuZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0U3QjJEQjIxNTg2QUJB
RDAwOThCM0ZBIC8qIFRleHRBbHRlcm5hdGl2ZVdpdGhSYW5nZS5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFRleHRBbHRlcm5hdGl2ZVdpdGhSYW5nZS5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQ0U4MjQ1RUYxOUI2NzFCQTAwQUMwMTIyIC8qIENG
TmV0d29ya0Nvbm5lY3Rpb25DYWNoZVNQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBDRk5ldHdvcmtDb25uZWN0aW9uQ2FjaGVTUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQ0VDMzM3QUMxQTQ2MDcxRjAwOUI4NTIzIC8qIFNlcnZlcnNTUEkuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2VydmVyc1NQSS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlDRUMzMzdBRTFBNDYwODZEMDA5Qjg1MjMgLyogR3JhcGhpY3NTZXJ2aWNl
c1NQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHcmFwaGljc1NlcnZpY2Vz
U1BJLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNFQ0FERkMyMTUzNzc4RkYwMEUz
NzA2OCAvKiBEaWN0YXRpb25BbHRlcm5hdGl2ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBEaWN0YXRpb25BbHRlcm5hdGl2ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC0xNzIyNyw3ICsxNzIyNSw2IEBACiAJCQljaGlsZHJlbiA9ICgKIAkJCQlF
MTBBMzlFMTFBRTg0RTcxMDBBMjlBRTMgLyogQ0ZCdW5kbGVTUEkuaCAqLywKIAkJCQk2NTA4NkRB
NzE5QUMxNzE5MDA5QUY0NkIgLyogQ0ZMb2NhbGVTUEkuaCAqLywKLQkJCQlDRTgyNDVFRjE5QjY3
MUJBMDBBQzAxMjIgLyogQ0ZOZXR3b3JrQ29ubmVjdGlvbkNhY2hlU1BJLmggKi8sCiAJCQkJQ0Ux
MjUyNUExQTFDMDE4MjAwODY0NDgwIC8qIENGTmV0d29ya1NQSS5oICovLAogCQkJCTQ0NDlBNDA0
MUE5NjRCMDAwMEI2NEFENSAvKiBDb3JlTWVkaWFTUEkuaCAqLywKIAkJCSk7CkBAIC0xNzQ5Miw3
ICsxNzQ4OSw2IEBACiAJCQkJNTE0Qzc2NDYwQ0U5MjM0RTAwN0VGM0NEIC8qIFJlc291cmNlRXJy
b3JNYWMubW0gKi8sCiAJCQkJNTE0Qzc2NDcwQ0U5MjM0RTAwN0VGM0NEIC8qIFJlc291cmNlSGFu
ZGxlTWFjLm1tICovLAogCQkJCTUxNEM3NjQ5MENFOTIzNEUwMDdFRjNDRCAvKiBSZXNvdXJjZVJl
cXVlc3RNYWMubW0gKi8sCi0JCQkJNTE0Qzc2NEIwQ0U5MjM0RTAwN0VGM0NEIC8qIFJlc291cmNl
UmVzcG9uc2VNYWMubW0gKi8sCiAJCQkJRTE4MDgxMTQxNkZDRjlDQjAwQjgwRDA3IC8qIFN5bmNo
cm9ub3VzTG9hZGVyQ2xpZW50Lm1tICovLAogCQkJCTFGQUZCRjE2MTVBNUZBNTIwMDA4M0EyMCAv
KiBVVElVdGlsaXRpZXMuaCAqLywKIAkJCQkxRkFGQkYxNzE1QTVGQTUyMDAwODNBMjAgLyogVVRJ
VXRpbGl0aWVzLm1tICovLApAQCAtMTc4NjcsNiArMTc4NjMsNyBAQAogCQkJCTM3MkFEQTM3MTk3
RjQ3QjkwMEZDNTAxRSAvKiBQcm90ZWN0aW9uU3BhY2VDb2NvYS5oICovLAogCQkJCTM3MkFEQTM5
MTk3RjY4NzYwMEZDNTAxRSAvKiBQcm90ZWN0aW9uU3BhY2VDb2NvYS5tbSAqLywKIAkJCQk3RTdE
RTFGQzE5NUNFRjI2MDAzNTM2M0IgLyogUmVzb3VyY2VSZXF1ZXN0Q29jb2EubW0gKi8sCisJCQkJ
QTFGNzhEMEIxQzI1NDIyQzAwMjQ1NDQ2IC8qIFJlc291cmNlUmVzcG9uc2VDb2NvYS5tbSAqLywK
IAkJCSk7CiAJCQlwYXRoID0gY29jb2E7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAt
MjQ3NTIsNyArMjQ3NDksNiBAQAogCQkJCUNERThCNUYxMUE2OTc3OEIwMEI0QjY2QSAvKiBDRE1T
ZXNzaW9uQ2xlYXJLZXkuaCBpbiBIZWFkZXJzICovLAogCQkJCTVGQTkwNENBMTc4RTYxRjUwMDRD
OEEyRCAvKiBDZXJ0aWZpY2F0ZUluZm8uaCBpbiBIZWFkZXJzICovLAogCQkJCUUxMEEzOUUyMUFF
ODRFNzEwMEEyOUFFMyAvKiBDRkJ1bmRsZVNQSS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQ0U4MjQ1
RjAxOUI2NzFCQTAwQUMwMTIyIC8qIENGTmV0d29ya0Nvbm5lY3Rpb25DYWNoZVNQSS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQ0UxMjUyNUIxQTFDMDE4MjAwODY0NDgwIC8qIENGTmV0d29ya1NQSS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJRTFBOEU1NjcxNzU1MkIyQTAwNzQ4OEU3IC8qIENGVVJMRXh0
cmFzLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRTM2RkQxNTE2Qzc4MjY1MDBGODg3QzEgLyogQ2hh
bmdlVmVyc2lvbkRhdGEuaCBpbiBIZWFkZXJzICovLApAQCAtMjkwNjcsNiArMjkwNjMsNyBAQAog
CQkJCTg1MDY1NzAxMEFBQjQ3NjMwMDJEMTVDMCAvKiBET01TdHlsZVNoZWV0Lm1tIGluIFNvdXJj
ZXMgKi8sCiAJCQkJODUwNjU3MDMwQUFCNDc2MzAwMkQxNUMwIC8qIERPTVN0eWxlU2hlZXRMaXN0
Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJODVBQ0E5OUQwQTlCNTc1OTAwNjcxRTkwIC8qIERPTVRl
eHQubW0gaW4gU291cmNlcyAqLywKKwkJCQlBMUY3OEQwQzFDMjU0MjRDMDAyNDU0NDYgLyogUmVz
b3VyY2VSZXNwb25zZUNvY29hLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJOTMzQTE0QUEwQjdEMUQw
OTAwQTUzRkZEIC8qIERPTVRleHRFdmVudC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTE4ODYwNEIz
MEYyRTY1NEEwMDBCNjQ0MyAvKiBET01UaW1lci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3NkZD
MkIwQjEyMzcwREEwMDA2QTk5MUEgLyogRE9NVG9rZW5MaXN0LmNwcCBpbiBTb3VyY2VzICovLApA
QCAtMzA3ODgsNyArMzA3ODUsNiBAQAogCQkJCTUxNEM3NjUzMENFOTIzNEUwMDdFRjNDRCAvKiBS
ZXNvdXJjZVJlcXVlc3RNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQk1MTRDNzY3RTBDRTkyM0Ex
MDA3RUYzQ0QgLyogUmVzb3VyY2VSZXNwb25zZUJhc2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
N0VFNjg0NzExMkQyNkUzODAwRTc5NDE1IC8qIFJlc291cmNlUmVzcG9uc2VDRk5ldC5jcHAgaW4g
U291cmNlcyAqLywKLQkJCQk1MTRDNzY1NTBDRTkyMzRGMDA3RUYzQ0QgLyogUmVzb3VyY2VSZXNw
b25zZU1hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUFEQkFENkVFMUJDREQ5NTUwMDM4MTMyNSAv
KiBSZXNvdXJjZVVzYWdlT3ZlcmxheS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBREZFMkI1NTFC
RDVGNjEyMDBEQUI0NTcgLyogUmVzb3VyY2VVc2FnZU92ZXJsYXlDb2NvYS5tbSBpbiBTb3VyY2Vz
ICovLAogCQkJCUZEMzE2MEE0MTJCMDI2RjcwMEMxQTM1OSAvKiBSZXZlcmIuY3BwIGluIFNvdXJj
ZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViQ29yZVN5
c3RlbUludGVyZmFjZUlPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJDb3Jl
U3lzdGVtSW50ZXJmYWNlSU9TLm1tCmluZGV4IDRlMzAzNjZkNGViN2ZhYjE4OGRlNGNhZTkwZjlk
NTUxMWY5MDZkYWIuLjM1Yzc0ZjU3NzRlNzcxYjY1MDUxMjc0NGY0N2YwOGVmMmFkMGE0MDIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJDb3JlU3lzdGVtSW50ZXJm
YWNlSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJDb3JlU3lzdGVt
SW50ZXJmYWNlSU9TLm1tCkBAIC0yNyw1NCArMjcsMjcgQEAKICNpbXBvcnQgIldlYkNvcmVTeXN0
ZW1JbnRlcmZhY2UuaCIKIAogV0VCQ09SRV9FWFBPUlQgdm9pZCAoKndrQ0FMYXllckVudW1lcmF0
ZVJlY3RzQmVpbmdEcmF3bldpdGhCbG9jaykoQ0FMYXllciAqLCBDR0NvbnRleHRSZWYgY29udGV4
dCwgdm9pZCAoXmJsb2NrKShDR1JlY3QgcmVjdCkpOwotV0VCQ09SRV9FWFBPUlQgQk9PTCAoKndr
Q0dDb250ZXh0R2V0U2hvdWxkU21vb3RoRm9udHMpKENHQ29udGV4dFJlZik7CiBXRUJDT1JFX0VY
UE9SVCBDR1BhdHRlcm5SZWYgKCp3a0NHUGF0dGVybkNyZWF0ZVdpdGhJbWFnZUFuZFRyYW5zZm9y
bSkoQ0dJbWFnZVJlZiwgQ0dBZmZpbmVUcmFuc2Zvcm0sIGludCk7CiBXRUJDT1JFX0VYUE9SVCB2
b2lkICgqd2tDbGVhckdseXBoVmVjdG9yKSh2b2lkKiBnbHlwaHMpOwogV0VCQ09SRV9FWFBPUlQg
T1NTdGF0dXMgKCp3a0NvbnZlcnRDaGFyVG9HbHlwaHMpKHZvaWQqIHN0eWxlR3JvdXAsIGNvbnN0
IFVuaUNoYXIqLCB1bnNpZ25lZCBudW1DaGFyYWN0ZXJzLCB2b2lkKiBnbHlwaHMpOwotV0VCQ09S
RV9FWFBPUlQgTlNEYXRlICooKndrR2V0TlNVUkxSZXNwb25zZUxhc3RNb2RpZmllZERhdGUpKE5T
VVJMUmVzcG9uc2UgKnJlc3BvbnNlKTsKIFdFQkNPUkVfRVhQT1JUIGJvb2wgKCp3a0NHQ29udGV4
dElzUERGQ29udGV4dCkoQ0dDb250ZXh0UmVmKTsKLVdFQkNPUkVfRVhQT1JUIE5TU3RyaW5nKiAo
KndrQ29weU5TVVJMUmVzcG9uc2VTdGF0dXNMaW5lKShOU1VSTFJlc3BvbnNlKik7Ci1XRUJDT1JF
X0VYUE9SVCB2b2lkICgqd2tTZXROU1VSTFJlcXVlc3RTaG91bGRDb250ZW50U25pZmYpKE5TTXV0
YWJsZVVSTFJlcXVlc3QgKiwgQk9PTCk7CiBXRUJDT1JFX0VYUE9SVCBpZCAoKndrQ3JlYXRlTlNV
UkxDb25uZWN0aW9uRGVsZWdhdGVQcm94eSkodm9pZCk7Ci1XRUJDT1JFX0VYUE9SVCB1bnNpZ25l
ZCAoKndrSW5pdGlhbGl6ZU1heGltdW1IVFRQQ29ubmVjdGlvbkNvdW50UGVySG9zdCkodW5zaWdu
ZWQgcHJlZmVycmVkQ29ubmVjdGlvbkNvdW50KTsKLVdFQkNPUkVfRVhQT1JUIGludCAoKndrR2V0
SFRUUFJlcXVlc3RQcmlvcml0eSkoQ0ZVUkxSZXF1ZXN0UmVmKTsKLVdFQkNPUkVfRVhQT1JUIHZv
aWQgKCp3a1NldEhUVFBSZXF1ZXN0TWF4aW11bVByaW9yaXR5KShpbnQgcHJpb3JpdHkpOwotV0VC
Q09SRV9FWFBPUlQgdm9pZCAoKndrU2V0SFRUUFJlcXVlc3RQcmlvcml0eSkoQ0ZVUkxSZXF1ZXN0
UmVmLCBpbnQgcHJpb3JpdHkpOwotV0VCQ09SRV9FWFBPUlQgdm9pZCAoKndrU2V0SFRUUFJlcXVl
c3RNaW5pbXVtRmFzdExhbmVQcmlvcml0eSkoaW50IHByaW9yaXR5KTsKLVdFQkNPUkVfRVhQT1JU
IHZvaWQgKCp3a0hUVFBSZXF1ZXN0RW5hYmxlUGlwZWxpbmluZykoQ0ZVUkxSZXF1ZXN0UmVmKTsK
IFdFQkNPUkVfRVhQT1JUIHZvaWQgKCp3a1NldENPTk5FQ1RQcm94eUZvclN0cmVhbSkoQ0ZSZWFk
U3RyZWFtUmVmLCBDRlN0cmluZ1JlZiBwcm94eUhvc3QsIENGTnVtYmVyUmVmIHByb3h5UG9ydCk7
CiBXRUJDT1JFX0VYUE9SVCB2b2lkICgqd2tTZXRDT05ORUNUUHJveHlBdXRob3JpemF0aW9uRm9y
U3RyZWFtKShDRlJlYWRTdHJlYW1SZWYsIENGU3RyaW5nUmVmIHByb3h5QXV0aG9yaXphdGlvblN0
cmluZyk7CiBXRUJDT1JFX0VYUE9SVCB2b2lkICgqd2tTZXRDb29raWVTdG9yYWdlUHJpdmF0ZUJy
b3dzaW5nRW5hYmxlZCkoQk9PTCk7CiBXRUJDT1JFX0VYUE9SVCBDRkhUVFBNZXNzYWdlUmVmICgq
d2tDb3B5Q09OTkVDVFByb3h5UmVzcG9uc2UpKENGUmVhZFN0cmVhbVJlZiwgQ0ZVUkxSZWYgcmVz
cG9uc2VVUkwsIENGU3RyaW5nUmVmIHByb3h5SG9zdCwgQ0ZOdW1iZXJSZWYgcHJveHlQb3J0KTsK
IFdFQkNPUkVfRVhQT1JUIHZvaWQgKCp3a1NldExheWVyQ29udGVudHNTY2FsZSkoQ0FMYXllciAq
KTsKLVdFQkNPUkVfRVhQT1JUIHZvaWQgKCp3a0NGVVJMUmVxdWVzdEFsbG93QWxsUG9zdENhY2hp
bmcpKENGVVJMUmVxdWVzdFJlZik7Ci1XRUJDT1JFX0VYUE9SVCBDRkFycmF5UmVmICgqd2tDb3B5
TlNVUkxSZXNwb25zZUNlcnRpZmljYXRlQ2hhaW4pKE5TVVJMUmVzcG9uc2UqKTsKIFdFQkNPUkVf
RVhQT1JUIENGU3RyaW5nRW5jb2RpbmcgKCp3a0dldFdlYkRlZmF1bHRDRlN0cmluZ0VuY29kaW5n
KSh2b2lkKTsKIAotI2lmIFVTRShDRk5FVFdPUkspCi1XRUJDT1JFX0VYUE9SVCBDRkhUVFBDb29r
aWVTdG9yYWdlUmVmICgqd2tHZXREZWZhdWx0SFRUUENvb2tpZVN0b3JhZ2UpKCk7Ci1XRUJDT1JF
X0VYUE9SVCBXS0NGVVJMQ3JlZGVudGlhbFJlZiAoKndrQ29weUNyZWRlbnRpYWxGcm9tQ0ZQZXJz
aXN0ZW50U3RvcmFnZSkoQ0ZVUkxQcm90ZWN0aW9uU3BhY2VSZWYgcHJvdGVjdGlvblNwYWNlKTsK
LVdFQkNPUkVfRVhQT1JUIHZvaWQgKCp3a1NldENGVVJMUmVxdWVzdFNob3VsZENvbnRlbnRTbmlm
ZikoQ0ZNdXRhYmxlVVJMUmVxdWVzdFJlZiwgYm9vbCk7Ci1XRUJDT1JFX0VYUE9SVCB2b2lkICgq
d2tTZXRSZXF1ZXN0U3RvcmFnZVNlc3Npb24pKENGVVJMU3RvcmFnZVNlc3Npb25SZWYsIENGTXV0
YWJsZVVSTFJlcXVlc3RSZWYpOwotI2VuZGlmCi0KIFdFQkNPUkVfRVhQT1JUIENGVVJMU3RvcmFn
ZVNlc3Npb25SZWYgKCp3a0NyZWF0ZVByaXZhdGVTdG9yYWdlU2Vzc2lvbikoQ0ZTdHJpbmdSZWYp
OwogV0VCQ09SRV9FWFBPUlQgTlNVUkxSZXF1ZXN0KiAoKndrQ29weVJlcXVlc3RXaXRoU3RvcmFn
ZVNlc3Npb24pKENGVVJMU3RvcmFnZVNlc3Npb25SZWYsIE5TVVJMUmVxdWVzdCopOwotV0VCQ09S
RV9FWFBPUlQgQ0ZIVFRQQ29va2llU3RvcmFnZVJlZiAoKndrQ29weUhUVFBDb29raWVTdG9yYWdl
KShDRlVSTFN0b3JhZ2VTZXNzaW9uUmVmKTsKIFdFQkNPUkVfRVhQT1JUIHVuc2lnbmVkICgqd2tH
ZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KShDRkhUVFBDb29raWVTdG9yYWdlUmVmKTsKLVdFQkNP
UkVfRVhQT1JUIHZvaWQgKCp3a1NldEhUVFBDb29raWVBY2NlcHRQb2xpY3kpKENGSFRUUENvb2tp
ZVN0b3JhZ2VSZWYsIHVuc2lnbmVkKTsKIFdFQkNPUkVfRVhQT1JUIE5TQXJyYXkgKigqd2tIVFRQ
Q29va2llcykoQ0ZIVFRQQ29va2llU3RvcmFnZVJlZik7CiBXRUJDT1JFX0VYUE9SVCBOU0FycmF5
ICooKndrSFRUUENvb2tpZXNGb3JVUkwpKENGSFRUUENvb2tpZVN0b3JhZ2VSZWYsIE5TVVJMICos
IE5TVVJMICopOwogV0VCQ09SRV9FWFBPUlQgdm9pZCAoKndrU2V0SFRUUENvb2tpZXNGb3JVUkwp
KENGSFRUUENvb2tpZVN0b3JhZ2VSZWYsIE5TQXJyYXkgKiwgTlNVUkwgKiwgTlNVUkwgKik7CiBX
RUJDT1JFX0VYUE9SVCB2b2lkICgqd2tEZWxldGVBbGxIVFRQQ29va2llcykoQ0ZIVFRQQ29va2ll
U3RvcmFnZVJlZik7CiBXRUJDT1JFX0VYUE9SVCB2b2lkICgqd2tEZWxldGVIVFRQQ29va2llKShD
RkhUVFBDb29raWVTdG9yYWdlUmVmLCBOU0hUVFBDb29raWUgKik7CiAKLVdFQkNPUkVfRVhQT1JU
IENGU3RyaW5nUmVmICgqd2tHZXRDRlVSTFJlc3BvbnNlTUlNRVR5cGUpKENGVVJMUmVzcG9uc2VS
ZWYpOwotV0VCQ09SRV9FWFBPUlQgQ0ZVUkxSZWYgKCp3a0dldENGVVJMUmVzcG9uc2VVUkwpKENG
VVJMUmVzcG9uc2VSZWYpOwotV0VCQ09SRV9FWFBPUlQgQ0ZIVFRQTWVzc2FnZVJlZiAoKndrR2V0
Q0ZVUkxSZXNwb25zZUhUVFBSZXNwb25zZSkoQ0ZVUkxSZXNwb25zZVJlZik7Ci1XRUJDT1JFX0VY
UE9SVCBDRlN0cmluZ1JlZiAoKndrQ29weUNGVVJMUmVzcG9uc2VTdWdnZXN0ZWRGaWxlbmFtZSko
Q0ZVUkxSZXNwb25zZVJlZik7Ci1XRUJDT1JFX0VYUE9SVCB2b2lkICgqd2tTZXRDRlVSTFJlc3Bv
bnNlTUlNRVR5cGUpKENGVVJMUmVzcG9uc2VSZWYsIENGU3RyaW5nUmVmIG1pbWVUeXBlKTsKLQog
V0VCQ09SRV9FWFBPUlQgdm9pZCgqd2tEZXN0cm95UmVuZGVyaW5nUmVzb3VyY2VzKSh2b2lkKTsK
IAogV0VCQ09SRV9FWFBPUlQgYm9vbCAoKndrQ2FwdGlvbkFwcGVhcmFuY2VIYXNVc2VyUHJlZmVy
ZW5jZXMpKHZvaWQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dl
YkNvcmVTeXN0ZW1JbnRlcmZhY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJD
b3JlU3lzdGVtSW50ZXJmYWNlLmgKaW5kZXggNjBiNDg5MDU3M2FkNmE4NWQzYjBhMzczY2M4Y2Ey
NWZmMzlmMDIxMS4uYTlmYWNiNGYyYTkzNjViOWVkMGZlZDVlOTZhMTljOTcwYTVhOGRhNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYkNvcmVTeXN0ZW1JbnRlcmZh
Y2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViQ29yZVN5c3RlbUludGVy
ZmFjZS5oCkBAIC0xMjEsNyArMTIxLDYgQEAgZXh0ZXJuICJDIiB7CiBleHRlcm4gdm9pZCAoKndr
QWR2YW5jZURlZmF1bHRCdXR0b25QdWxzZUFuaW1hdGlvbikoTlNCdXR0b25DZWxsICopOwogZXh0
ZXJuIHZvaWQgKCp3a0NBTGF5ZXJFbnVtZXJhdGVSZWN0c0JlaW5nRHJhd25XaXRoQmxvY2spKENB
TGF5ZXIgKiwgQ0dDb250ZXh0UmVmLCB2b2lkICheYmxvY2spKENHUmVjdCByZWN0KSk7CiAKLWV4
dGVybiBCT09MICgqd2tDR0NvbnRleHRHZXRTaG91bGRTbW9vdGhGb250cykoQ0dDb250ZXh0UmVm
KTsKIHR5cGVkZWYgZW51bSB7CiAgICAgd2tQYXR0ZXJuVGlsaW5nTm9EaXN0b3J0aW9uLAogICAg
IHdrUGF0dGVyblRpbGluZ0NvbnN0YW50U3BhY2luZ01pbmltYWxEaXN0b3J0aW9uLApAQCAtMTMx
LDI3ICsxMzAsMTcgQEAgdHlwZWRlZiBlbnVtIHsKIGV4dGVybiBib29sICgqd2tDR0NvbnRleHRE
cmF3c1dpdGhDb3JyZWN0U2hhZG93T2Zmc2V0cykoQ0dDb250ZXh0UmVmKTsKICNlbmRpZgogZXh0
ZXJuIENHUGF0dGVyblJlZiAoKndrQ0dQYXR0ZXJuQ3JlYXRlV2l0aEltYWdlQW5kVHJhbnNmb3Jt
KShDR0ltYWdlUmVmLCBDR0FmZmluZVRyYW5zZm9ybSwgaW50KTsKLWV4dGVybiBOU1N0cmluZyog
KCp3a0NvcHlOU1VSTFJlc3BvbnNlU3RhdHVzTGluZSkoTlNVUkxSZXNwb25zZSopOwotZXh0ZXJu
IENGQXJyYXlSZWYgKCp3a0NvcHlOU1VSTFJlc3BvbnNlQ2VydGlmaWNhdGVDaGFpbikoTlNVUkxS
ZXNwb25zZSopOwogZXh0ZXJuIENGU3RyaW5nRW5jb2RpbmcgKCp3a0dldFdlYkRlZmF1bHRDRlN0
cmluZ0VuY29kaW5nKSh2b2lkKTsKICNpZiAhUExBVEZPUk0oSU9TKQotZXh0ZXJuIHZvaWQgKCp3
a0RyYXdDYXBzTG9ja0luZGljYXRvcikoQ0dDb250ZXh0UmVmLCBDR1JlY3QpOwogZXh0ZXJuIHZv
aWQgKCp3a0RyYXdCZXplbGVkVGV4dEFyZWEpKE5TUmVjdCwgQk9PTCBlbmFibGVkKTsKIGV4dGVy
biB2b2lkICgqd2tEcmF3Rm9jdXNSaW5nKShDR0NvbnRleHRSZWYsIENHQ29sb3JSZWYsIGludCk7
CiBleHRlcm4gYm9vbCAoKndrRHJhd0ZvY3VzUmluZ0F0VGltZSkoQ0dDb250ZXh0UmVmLCBOU1Rp
bWVJbnRlcnZhbCB0aW1lKTsKIGV4dGVybiBib29sICgqd2tEcmF3Q2VsbEZvY3VzUmluZ1dpdGhG
cmFtZUF0VGltZSkoTlNDZWxsICpjZWxsLCBOU1JlY3QgY2VsbEZyYW1lLCBOU1ZpZXcgKmNvbnRy
b2xWaWV3LCBOU1RpbWVJbnRlcnZhbCB0aW1lKTsKLSNlbmRpZgotI2lmICFQTEFURk9STShJT1Mp
CiBleHRlcm4gdm9pZCAoKndrRHJhd01lZGlhU2xpZGVyVHJhY2spKENHQ29udGV4dFJlZiBjb250
ZXh0LCBDR1JlY3QgcmVjdCwgZmxvYXQgdGltZUxvYWRlZCwgZmxvYXQgY3VycmVudFRpbWUsCiAg
ICAgZmxvYXQgZHVyYXRpb24sIHVuc2lnbmVkIHN0YXRlKTsKIGV4dGVybiB2b2lkICgqd2tEcmF3
TWVkaWFVSVBhcnQpKGludCBwYXJ0LCBDR0NvbnRleHRSZWYgY29udGV4dCwgQ0dSZWN0IHJlY3Qs
IHVuc2lnbmVkIHN0YXRlKTsKIGV4dGVybiBDRlN0cmluZ1JlZiAoKndrU2lnbmVkUHVibGljS2V5
QW5kQ2hhbGxlbmdlU3RyaW5nKSh1bnNpZ25lZCBrZXlTaXplLCBDRlN0cmluZ1JlZiBjaGFsbGVu
Z2UsIENGU3RyaW5nUmVmIGtleURlc2NyaXB0aW9uKTsKLSNlbmRpZgotI2lmICFQTEFURk9STShJ
T1MpCiBleHRlcm4gZG91YmxlICgqd2tHZXROU1VSTFJlc3BvbnNlQ2FsY3VsYXRlZEV4cGlyYXRp
b24pKE5TVVJMUmVzcG9uc2UgKnJlc3BvbnNlKTsKLSNlbmRpZgotZXh0ZXJuIE5TRGF0ZSAqKCp3
a0dldE5TVVJMUmVzcG9uc2VMYXN0TW9kaWZpZWREYXRlKShOU1VSTFJlc3BvbnNlICpyZXNwb25z
ZSk7Ci0jaWYgIVBMQVRGT1JNKElPUykKIGV4dGVybiBCT09MICgqd2tHZXROU1VSTFJlc3BvbnNl
TXVzdFJldmFsaWRhdGUpKE5TVVJMUmVzcG9uc2UgKnJlc3BvbnNlKTsKIGV4dGVybiB2b2lkICgq
d2tHZXRXaGVlbEV2ZW50RGVsdGFzKShOU0V2ZW50KiwgZmxvYXQqIGRlbHRhWCwgZmxvYXQqIGRl
bHRhWSwgQk9PTCogY29udGludW91cyk7CiBleHRlcm4gVUludDggKCp3a0dldE5TRXZlbnRLZXlD
aGFyKShOU0V2ZW50ICopOwpAQCAtMTc4LDI4ICsxNjcsMTggQEAgZXh0ZXJuIHVuc2lnbmVkICgq
d2tRVEluY2x1ZGVPbmx5TW9kZXJuTWVkaWFGaWxlVHlwZXMpKHZvaWQpOwogZXh0ZXJuIHZvaWQg
KCp3a1FUTW92aWVEaXNhYmxlQ29tcG9uZW50KSh1aW50MzJfdFs1XSk7CiBleHRlcm4gZmxvYXQg
KCp3a1FUTW92aWVNYXhUaW1lTG9hZGVkKShRVE1vdmllKik7CiBleHRlcm4gTlNTdHJpbmcgKigq
d2tRVE1vdmllTWF4VGltZUxvYWRlZENoYW5nZU5vdGlmaWNhdGlvbikodm9pZCk7Ci1leHRlcm4g
ZmxvYXQgKCp3a1FUTW92aWVNYXhUaW1lU2Vla2FibGUpKFFUTW92aWUqKTsKIGV4dGVybiBpbnQg
KCp3a1FUTW92aWVHZXRUeXBlKShRVE1vdmllKik7CiBleHRlcm4gQk9PTCAoKndrUVRNb3ZpZUhh
c0Nsb3NlZENhcHRpb25zKShRVE1vdmllKik7CiBleHRlcm4gTlNVUkwgKigqd2tRVE1vdmllUmVz
b2x2ZWRVUkwpKFFUTW92aWUqKTsKIGV4dGVybiB2b2lkICgqd2tRVE1vdmllU2V0U2hvd0Nsb3Nl
ZENhcHRpb25zKShRVE1vdmllKiwgQk9PTCk7CiBleHRlcm4gdm9pZCAoKndrUVRNb3ZpZVNlbGVj
dFByZWZlcnJlZEFsdGVybmF0ZXMpKFFUTW92aWUqKTsKLWV4dGVybiB2b2lkICgqd2tRVE1vdmll
Vmlld1NldERyYXdTeW5jaHJvbm91c2x5KShRVE1vdmllVmlldyosIEJPT0wpOwogZXh0ZXJuIE5T
QXJyYXkgKigqd2tRVEdldFNpdGVzSW5NZWRpYURvd25sb2FkQ2FjaGUpKCk7CiBleHRlcm4gdm9p
ZCAoKndrUVRDbGVhck1lZGlhRG93bmxvYWRDYWNoZUZvclNpdGUpKE5TU3RyaW5nICpzaXRlKTsK
IGV4dGVybiB2b2lkICgqd2tRVENsZWFyTWVkaWFEb3dubG9hZENhY2hlKSgpOwotZXh0ZXJuIHZv
aWQgKCp3a1NldENHRm9udFJlbmRlcmluZ01vZGUpKENHQ29udGV4dFJlZiwgTlNGb250KiwgQk9P
TCk7CiBleHRlcm4gdm9pZCAoKndrU2V0Q29va2llU3RvcmFnZVByaXZhdGVCcm93c2luZ0VuYWJs
ZWQpKEJPT0wpOwogZXh0ZXJuIHZvaWQgKCp3a1NldERyYWdJbWFnZSkoTlNJbWFnZSosIE5TUG9p
bnQgb2Zmc2V0KTsKICNlbmRpZgotZXh0ZXJuIHZvaWQgKCp3a1NldE5TVVJMUmVxdWVzdFNob3Vs
ZENvbnRlbnRTbmlmZikoTlNNdXRhYmxlVVJMUmVxdWVzdCAqLCBCT09MKTsKIGV4dGVybiBib29s
ICgqd2tDR0NvbnRleHRJc1BERkNvbnRleHQpKENHQ29udGV4dFJlZik7Ci1leHRlcm4gdW5zaWdu
ZWQgKCp3a0luaXRpYWxpemVNYXhpbXVtSFRUUENvbm5lY3Rpb25Db3VudFBlckhvc3QpKHVuc2ln
bmVkIHByZWZlcnJlZENvbm5lY3Rpb25Db3VudCk7Ci1leHRlcm4gaW50ICgqd2tHZXRIVFRQUmVx
dWVzdFByaW9yaXR5KShDRlVSTFJlcXVlc3RSZWYpOwotZXh0ZXJuIHZvaWQgKCp3a1NldEhUVFBS
ZXF1ZXN0TWF4aW11bVByaW9yaXR5KShpbnQgbWF4aW11bVByaW9yaXR5KTsKLWV4dGVybiB2b2lk
ICgqd2tTZXRIVFRQUmVxdWVzdFByaW9yaXR5KShDRlVSTFJlcXVlc3RSZWYsIGludCBwcmlvcml0
eSk7Ci1leHRlcm4gdm9pZCAoKndrU2V0SFRUUFJlcXVlc3RNaW5pbXVtRmFzdExhbmVQcmlvcml0
eSkoaW50IHByaW9yaXR5KTsKLWV4dGVybiB2b2lkICgqd2tIVFRQUmVxdWVzdEVuYWJsZVBpcGVs
aW5pbmcpKENGVVJMUmVxdWVzdFJlZik7CiBleHRlcm4gdm9pZCAoKndrU2V0Q09OTkVDVFByb3h5
Rm9yU3RyZWFtKShDRlJlYWRTdHJlYW1SZWYsIENGU3RyaW5nUmVmIHByb3h5SG9zdCwgQ0ZOdW1i
ZXJSZWYgcHJveHlQb3J0KTsKIGV4dGVybiB2b2lkICgqd2tTZXRDT05ORUNUUHJveHlBdXRob3Jp
emF0aW9uRm9yU3RyZWFtKShDRlJlYWRTdHJlYW1SZWYsIENGU3RyaW5nUmVmIHByb3h5QXV0aG9y
aXphdGlvblN0cmluZyk7CiBleHRlcm4gQ0ZIVFRQTWVzc2FnZVJlZiAoKndrQ29weUNPTk5FQ1RQ
cm94eVJlc3BvbnNlKShDRlJlYWRTdHJlYW1SZWYsIENGVVJMUmVmIHJlc3BvbnNlVVJMLCBDRlN0
cmluZ1JlZiBwcm94eUhvc3QsIENGTnVtYmVyUmVmIHByb3h5UG9ydCk7CkBAIC0yNDEsMzQgKzIy
MCwxNSBAQCBleHRlcm4gQ0ZVUkxTdG9yYWdlU2Vzc2lvblJlZiAoKndrQ3JlYXRlUHJpdmF0ZVN0
b3JhZ2VTZXNzaW9uKShDRlN0cmluZ1JlZik7CiBleHRlcm4gTlNVUkxSZXF1ZXN0KiAoKndrQ29w
eVJlcXVlc3RXaXRoU3RvcmFnZVNlc3Npb24pKENGVVJMU3RvcmFnZVNlc3Npb25SZWYsIE5TVVJM
UmVxdWVzdCopOwogCiB0eXBlZGVmIHN0cnVjdCBPcGFxdWVDRkhUVFBDb29raWVTdG9yYWdlKiBD
RkhUVFBDb29raWVTdG9yYWdlUmVmOwotZXh0ZXJuIENGSFRUUENvb2tpZVN0b3JhZ2VSZWYgKCp3
a0NvcHlIVFRQQ29va2llU3RvcmFnZSkoQ0ZVUkxTdG9yYWdlU2Vzc2lvblJlZik7CiBleHRlcm4g
dW5zaWduZWQgKCp3a0dldEhUVFBDb29raWVBY2NlcHRQb2xpY3kpKENGSFRUUENvb2tpZVN0b3Jh
Z2VSZWYpOwotZXh0ZXJuIHZvaWQgKCp3a1NldEhUVFBDb29raWVBY2NlcHRQb2xpY3kpKENGSFRU
UENvb2tpZVN0b3JhZ2VSZWYsIHVuc2lnbmVkKTsKIGV4dGVybiBOU0FycmF5ICooKndrSFRUUENv
b2tpZXMpKENGSFRUUENvb2tpZVN0b3JhZ2VSZWYpOwogZXh0ZXJuIE5TQXJyYXkgKigqd2tIVFRQ
Q29va2llc0ZvclVSTCkoQ0ZIVFRQQ29va2llU3RvcmFnZVJlZiwgTlNVUkwgKiwgTlNVUkwgKik7
CiBleHRlcm4gdm9pZCAoKndrU2V0SFRUUENvb2tpZXNGb3JVUkwpKENGSFRUUENvb2tpZVN0b3Jh
Z2VSZWYsIE5TQXJyYXkgKiwgTlNVUkwgKiwgTlNVUkwgKik7CiBleHRlcm4gdm9pZCAoKndrRGVs
ZXRlSFRUUENvb2tpZSkoQ0ZIVFRQQ29va2llU3RvcmFnZVJlZiwgTlNIVFRQQ29va2llICopOwog
ZXh0ZXJuIHZvaWQgKCp3a0RlbGV0ZUFsbEhUVFBDb29raWVzKShDRkhUVFBDb29raWVTdG9yYWdl
UmVmKTsKIAotZXh0ZXJuIENGU3RyaW5nUmVmICgqd2tHZXRDRlVSTFJlc3BvbnNlTUlNRVR5cGUp
KENGVVJMUmVzcG9uc2VSZWYpOwotZXh0ZXJuIENGVVJMUmVmICgqd2tHZXRDRlVSTFJlc3BvbnNl
VVJMKShDRlVSTFJlc3BvbnNlUmVmKTsKLWV4dGVybiBDRkhUVFBNZXNzYWdlUmVmICgqd2tHZXRD
RlVSTFJlc3BvbnNlSFRUUFJlc3BvbnNlKShDRlVSTFJlc3BvbnNlUmVmKTsKLWV4dGVybiBDRlN0
cmluZ1JlZiAoKndrQ29weUNGVVJMUmVzcG9uc2VTdWdnZXN0ZWRGaWxlbmFtZSkoQ0ZVUkxSZXNw
b25zZVJlZik7Ci1leHRlcm4gdm9pZCAoKndrU2V0Q0ZVUkxSZXNwb25zZU1JTUVUeXBlKShDRlVS
TFJlc3BvbnNlUmVmLCBDRlN0cmluZ1JlZiBtaW1lVHlwZSk7Ci0KLSNpZiBVU0UoQ0ZORVRXT1JL
KQotZXh0ZXJuIENGSFRUUENvb2tpZVN0b3JhZ2VSZWYgKCp3a0dldERlZmF1bHRIVFRQQ29va2ll
U3RvcmFnZSkoKTsKLWV4dGVybiBXS0NGVVJMQ3JlZGVudGlhbFJlZiAoKndrQ29weUNyZWRlbnRp
YWxGcm9tQ0ZQZXJzaXN0ZW50U3RvcmFnZSkoQ0ZVUkxQcm90ZWN0aW9uU3BhY2VSZWYgcHJvdGVj
dGlvblNwYWNlKTsKLWV4dGVybiB2b2lkICgqd2tTZXRDRlVSTFJlcXVlc3RTaG91bGRDb250ZW50
U25pZmYpKENGTXV0YWJsZVVSTFJlcXVlc3RSZWYsIGJvb2wpOwotZXh0ZXJuIHZvaWQgKCp3a1Nl
dFJlcXVlc3RTdG9yYWdlU2Vzc2lvbikoQ0ZVUkxTdG9yYWdlU2Vzc2lvblJlZiwgQ0ZNdXRhYmxl
VVJMUmVxdWVzdFJlZik7Ci0jZW5kaWYKICNpZiAhUExBVEZPUk0oSU9TKQogZXh0ZXJuIHZvaWQg
KCp3a1NldE1ldGFkYXRhVVJMKShOU1N0cmluZyAqdXJsU3RyaW5nLCBOU1N0cmluZyAqcmVmZXJy
ZXIsIE5TU3RyaW5nICpwYXRoKTsKLSNlbmRpZgotCi1leHRlcm4gdm9pZCAoKndrQ0ZVUkxSZXF1
ZXN0QWxsb3dBbGxQb3N0Q2FjaGluZykoQ0ZVUkxSZXF1ZXN0UmVmKTsKLQotI2lmICFQTEFURk9S
TShJT1MpCiBleHRlcm4gQ0dGbG9hdCAoKndrTlNFbGFzdGljRGVsdGFGb3JUaW1lRGVsdGEpKENH
RmxvYXQgaW5pdGlhbFBvc2l0aW9uLCBDR0Zsb2F0IGluaXRpYWxWZWxvY2l0eSwgQ0dGbG9hdCBl
bGFwc2VkVGltZSk7CiBleHRlcm4gQ0dGbG9hdCAoKndrTlNFbGFzdGljRGVsdGFGb3JSZWJvdW5k
RGVsdGEpKENHRmxvYXQgZGVsdGEpOwogZXh0ZXJuIENHRmxvYXQgKCp3a05TUmVib3VuZERlbHRh
Rm9yRWxhc3RpY0RlbHRhKShDR0Zsb2F0IGRlbHRhKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21hYy9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlLm1tIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWFjL1dlYkNvcmVTeXN0ZW1JbnRlcmZhY2UubW0KaW5kZXggMTg4ZjQxMjgx
MjNhOTYwOGFkYmZmY2NiZjY5YjhkYWYzMDAxY2JjNy4uYzM5Y2M5ZTI4NTJiZTU5ZmUyODc4M2Fm
NjYyM2JkNzE4MDM0ZjU3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFj
L1dlYkNvcmVTeXN0ZW1JbnRlcmZhY2UubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWFjL1dlYkNvcmVTeXN0ZW1JbnRlcmZhY2UubW0KQEAgLTMyLDEzICszMiw5IEBACiAKIHZvaWQg
KCp3a0FkdmFuY2VEZWZhdWx0QnV0dG9uUHVsc2VBbmltYXRpb24pKE5TQnV0dG9uQ2VsbCAqKTsK
IHZvaWQgKCp3a0NBTGF5ZXJFbnVtZXJhdGVSZWN0c0JlaW5nRHJhd25XaXRoQmxvY2spKENBTGF5
ZXIgKiwgQ0dDb250ZXh0UmVmIGNvbnRleHQsIHZvaWQgKF5ibG9jaykoQ0dSZWN0IHJlY3QpKTsK
LUJPT0wgKCp3a0NHQ29udGV4dEdldFNob3VsZFNtb290aEZvbnRzKShDR0NvbnRleHRSZWYpOwog
Ym9vbCAoKndrQ0dDb250ZXh0RHJhd3NXaXRoQ29ycmVjdFNoYWRvd09mZnNldHMpKENHQ29udGV4
dFJlZik7CiBDR1BhdHRlcm5SZWYgKCp3a0NHUGF0dGVybkNyZWF0ZVdpdGhJbWFnZUFuZFRyYW5z
Zm9ybSkoQ0dJbWFnZVJlZiwgQ0dBZmZpbmVUcmFuc2Zvcm0sIGludCk7Ci1OU1N0cmluZyogKCp3
a0NvcHlOU1VSTFJlc3BvbnNlU3RhdHVzTGluZSkoTlNVUkxSZXNwb25zZSopOwotQ0ZBcnJheVJl
ZiAoKndrQ29weU5TVVJMUmVzcG9uc2VDZXJ0aWZpY2F0ZUNoYWluKShOU1VSTFJlc3BvbnNlKik7
CiBDRlN0cmluZ0VuY29kaW5nICgqd2tHZXRXZWJEZWZhdWx0Q0ZTdHJpbmdFbmNvZGluZykodm9p
ZCk7Ci12b2lkICgqd2tEcmF3Q2Fwc0xvY2tJbmRpY2F0b3IpKENHQ29udGV4dFJlZiwgQ0dSZWN0
KTsKIHZvaWQgKCp3a0RyYXdCZXplbGVkVGV4dEFyZWEpKE5TUmVjdCwgQk9PTCBlbmFibGVkKTsK
IHZvaWQgKCp3a0RyYXdGb2N1c1JpbmcpKENHQ29udGV4dFJlZiwgQ0dDb2xvclJlZiwgaW50KTsK
IGJvb2wgKCp3a0RyYXdGb2N1c1JpbmdBdFRpbWUpKENHQ29udGV4dFJlZiwgTlNUaW1lSW50ZXJ2
YWwpOwpAQCAtNTQsNyArNTAsNiBAQCB2b2lkICgqd2tXaW5kb3dTZXRBbHBoYSkoTlNXaW5kb3cg
KiwgZmxvYXQpOwogdm9pZCAoKndrV2luZG93U2V0U2NhbGVkRnJhbWUpKE5TV2luZG93ICosIE5T
UmVjdCwgTlNSZWN0KTsKIENGU3RyaW5nUmVmICgqd2tTaWduZWRQdWJsaWNLZXlBbmRDaGFsbGVu
Z2VTdHJpbmcpKHVuc2lnbmVkIGtleVNpemUsIENGU3RyaW5nUmVmIGNoYWxsZW5nZSwgQ0ZTdHJp
bmdSZWYga2V5RGVzY3JpcHRpb24pOwogTlNUaW1lSW50ZXJ2YWwgKCp3a0dldE5TVVJMUmVzcG9u
c2VDYWxjdWxhdGVkRXhwaXJhdGlvbikoTlNVUkxSZXNwb25zZSAqcmVzcG9uc2UpOwotTlNEYXRl
ICooKndrR2V0TlNVUkxSZXNwb25zZUxhc3RNb2RpZmllZERhdGUpKE5TVVJMUmVzcG9uc2UgKnJl
c3BvbnNlKTsKIEJPT0wgKCp3a0dldE5TVVJMUmVzcG9uc2VNdXN0UmV2YWxpZGF0ZSkoTlNVUkxS
ZXNwb25zZSAqcmVzcG9uc2UpOwogdm9pZCAoKndrR2V0V2hlZWxFdmVudERlbHRhcykoTlNFdmVu
dCosIGZsb2F0KiBkZWx0YVgsIGZsb2F0KiBkZWx0YVksIEJPT0wqIGNvbnRpbnVvdXMpOwogVUlu
dDggKCp3a0dldE5TRXZlbnRLZXlDaGFyKShOU0V2ZW50ICopOwpAQCAtNjMsMzggKzU4LDIxIEBA
IHVuc2lnbmVkICgqd2tRVEluY2x1ZGVPbmx5TW9kZXJuTWVkaWFGaWxlVHlwZXMpKHZvaWQpOwog
dm9pZCAoKndrUVRNb3ZpZURpc2FibGVDb21wb25lbnQpKHVpbnQzMl90WzVdKTsKIGZsb2F0ICgq
d2tRVE1vdmllTWF4VGltZUxvYWRlZCkoUVRNb3ZpZSopOwogTlNTdHJpbmcgKigqd2tRVE1vdmll
TWF4VGltZUxvYWRlZENoYW5nZU5vdGlmaWNhdGlvbikodm9pZCk7Ci1mbG9hdCAoKndrUVRNb3Zp
ZU1heFRpbWVTZWVrYWJsZSkoUVRNb3ZpZSopOwogaW50ICgqd2tRVE1vdmllR2V0VHlwZSkoUVRN
b3ZpZSopOwogQk9PTCAoKndrUVRNb3ZpZUhhc0Nsb3NlZENhcHRpb25zKShRVE1vdmllKik7CiBO
U1VSTCAqKCp3a1FUTW92aWVSZXNvbHZlZFVSTCkoUVRNb3ZpZSopOwogdm9pZCAoKndrUVRNb3Zp
ZVNldFNob3dDbG9zZWRDYXB0aW9ucykoUVRNb3ZpZSosIEJPT0wpOwogdm9pZCAoKndrUVRNb3Zp
ZVNlbGVjdFByZWZlcnJlZEFsdGVybmF0ZXMpKFFUTW92aWUqKTsKLXZvaWQgKCp3a1FUTW92aWVW
aWV3U2V0RHJhd1N5bmNocm9ub3VzbHkpKFFUTW92aWVWaWV3KiwgQk9PTCk7CiBOU0FycmF5ICoo
KndrUVRHZXRTaXRlc0luTWVkaWFEb3dubG9hZENhY2hlKSgpOwogdm9pZCAoKndrUVRDbGVhck1l
ZGlhRG93bmxvYWRDYWNoZUZvclNpdGUpKE5TU3RyaW5nICpzaXRlKTsKIHZvaWQgKCp3a1FUQ2xl
YXJNZWRpYURvd25sb2FkQ2FjaGUpKCk7CiAKLXZvaWQgKCp3a1NldENHRm9udFJlbmRlcmluZ01v
ZGUpKENHQ29udGV4dFJlZiwgTlNGb250KiwgQk9PTCk7CiB2b2lkICgqd2tTZXREcmFnSW1hZ2Up
KE5TSW1hZ2UqLCBOU1BvaW50IG9mZnNldCk7CiBib29sICgqd2tDR0NvbnRleHRJc1BERkNvbnRl
eHQpKENHQ29udGV4dFJlZik7Ci12b2lkICgqd2tTZXROU1VSTFJlcXVlc3RTaG91bGRDb250ZW50
U25pZmYpKE5TTXV0YWJsZVVSTFJlcXVlc3QgKiwgQk9PTCk7Ci11bnNpZ25lZCAoKndrSW5pdGlh
bGl6ZU1heGltdW1IVFRQQ29ubmVjdGlvbkNvdW50UGVySG9zdCkodW5zaWduZWQgcHJlZmVycmVk
Q29ubmVjdGlvbkNvdW50KTsKLWludCAoKndrR2V0SFRUUFJlcXVlc3RQcmlvcml0eSkoQ0ZVUkxS
ZXF1ZXN0UmVmKTsKLXZvaWQgKCp3a1NldEhUVFBSZXF1ZXN0TWF4aW11bVByaW9yaXR5KShpbnQg
cHJpb3JpdHkpOwotdm9pZCAoKndrU2V0SFRUUFJlcXVlc3RQcmlvcml0eSkoQ0ZVUkxSZXF1ZXN0
UmVmLCBpbnQgcHJpb3JpdHkpOwotdm9pZCAoKndrU2V0SFRUUFJlcXVlc3RNaW5pbXVtRmFzdExh
bmVQcmlvcml0eSkoaW50IHByaW9yaXR5KTsKLXZvaWQgKCp3a0hUVFBSZXF1ZXN0RW5hYmxlUGlw
ZWxpbmluZykoQ0ZVUkxSZXF1ZXN0UmVmKTsKIHZvaWQgKCp3a1NldENPTk5FQ1RQcm94eUZvclN0
cmVhbSkoQ0ZSZWFkU3RyZWFtUmVmLCBDRlN0cmluZ1JlZiBwcm94eUhvc3QsIENGTnVtYmVyUmVm
IHByb3h5UG9ydCk7CiB2b2lkICgqd2tTZXRDT05ORUNUUHJveHlBdXRob3JpemF0aW9uRm9yU3Ry
ZWFtKShDRlJlYWRTdHJlYW1SZWYsIENGU3RyaW5nUmVmIHByb3h5QXV0aG9yaXphdGlvblN0cmlu
Zyk7CiBDRkhUVFBNZXNzYWdlUmVmICgqd2tDb3B5Q09OTkVDVFByb3h5UmVzcG9uc2UpKENGUmVh
ZFN0cmVhbVJlZiwgQ0ZVUkxSZWYgcmVzcG9uc2VVUkwsIENGU3RyaW5nUmVmIHByb3h5SG9zdCwg
Q0ZOdW1iZXJSZWYgcHJveHlQb3J0KTsKIAotI2lmIFVTRShDRk5FVFdPUkspCi1DRkhUVFBDb29r
aWVTdG9yYWdlUmVmICgqd2tHZXREZWZhdWx0SFRUUENvb2tpZVN0b3JhZ2UpKCk7Ci1XS0NGVVJM
Q3JlZGVudGlhbFJlZiAoKndrQ29weUNyZWRlbnRpYWxGcm9tQ0ZQZXJzaXN0ZW50U3RvcmFnZSko
Q0ZVUkxQcm90ZWN0aW9uU3BhY2VSZWYgcHJvdGVjdGlvblNwYWNlKTsKLXZvaWQgKCp3a1NldENG
VVJMUmVxdWVzdFNob3VsZENvbnRlbnRTbmlmZikoQ0ZNdXRhYmxlVVJMUmVxdWVzdFJlZiwgYm9v
bCk7Ci12b2lkICgqd2tTZXRSZXF1ZXN0U3RvcmFnZVNlc3Npb24pKENGVVJMU3RvcmFnZVNlc3Np
b25SZWYsIENGTXV0YWJsZVVSTFJlcXVlc3RSZWYpOwotI2VuZGlmCi0KIHZvaWQqIHdrR2V0SHlw
aGVuYXRpb25Mb2NhdGlvbkJlZm9yZUluZGV4OwogCiBib29sICgqd2tFeGVjdXRhYmxlV2FzTGlu
a2VkT25PckJlZm9yZVNub3dMZW9wYXJkKSh2b2lkKTsKQEAgLTExOSwyNCArOTcsMTUgQEAgQVhV
SUVsZW1lbnRSZWYgKCp3a0NyZWF0ZUFYVUlFbGVtZW50UmVmKShpZCBlbGVtZW50KTsKIAogQ0ZV
UkxTdG9yYWdlU2Vzc2lvblJlZiAoKndrQ3JlYXRlUHJpdmF0ZVN0b3JhZ2VTZXNzaW9uKShDRlN0
cmluZ1JlZik7CiBOU1VSTFJlcXVlc3QqICgqd2tDb3B5UmVxdWVzdFdpdGhTdG9yYWdlU2Vzc2lv
bikoQ0ZVUkxTdG9yYWdlU2Vzc2lvblJlZiwgTlNVUkxSZXF1ZXN0Kik7Ci1DRkhUVFBDb29raWVT
dG9yYWdlUmVmICgqd2tDb3B5SFRUUENvb2tpZVN0b3JhZ2UpKENGVVJMU3RvcmFnZVNlc3Npb25S
ZWYpOwogdW5zaWduZWQgKCp3a0dldEhUVFBDb29raWVBY2NlcHRQb2xpY3kpKENGSFRUUENvb2tp
ZVN0b3JhZ2VSZWYpOwotdm9pZCAoKndrU2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeSkoQ0ZIVFRQ
Q29va2llU3RvcmFnZVJlZiwgdW5zaWduZWQpOwogTlNBcnJheSAqKCp3a0hUVFBDb29raWVzKShD
RkhUVFBDb29raWVTdG9yYWdlUmVmKTsKIE5TQXJyYXkgKigqd2tIVFRQQ29va2llc0ZvclVSTCko
Q0ZIVFRQQ29va2llU3RvcmFnZVJlZiwgTlNVUkwgKiwgTlNVUkwgKik7CiB2b2lkICgqd2tTZXRI
VFRQQ29va2llc0ZvclVSTCkoQ0ZIVFRQQ29va2llU3RvcmFnZVJlZiwgTlNBcnJheSAqLCBOU1VS
TCAqLCBOU1VSTCAqKTsKIHZvaWQgKCp3a0RlbGV0ZUFsbEhUVFBDb29raWVzKShDRkhUVFBDb29r
aWVTdG9yYWdlUmVmKTsKIHZvaWQgKCp3a0RlbGV0ZUhUVFBDb29raWUpKENGSFRUUENvb2tpZVN0
b3JhZ2VSZWYsIE5TSFRUUENvb2tpZSAqKTsKIAotQ0ZTdHJpbmdSZWYgKCp3a0dldENGVVJMUmVz
cG9uc2VNSU1FVHlwZSkoQ0ZVUkxSZXNwb25zZVJlZik7Ci1DRlVSTFJlZiAoKndrR2V0Q0ZVUkxS
ZXNwb25zZVVSTCkoQ0ZVUkxSZXNwb25zZVJlZik7Ci1DRkhUVFBNZXNzYWdlUmVmICgqd2tHZXRD
RlVSTFJlc3BvbnNlSFRUUFJlc3BvbnNlKShDRlVSTFJlc3BvbnNlUmVmKTsKLUNGU3RyaW5nUmVm
ICgqd2tDb3B5Q0ZVUkxSZXNwb25zZVN1Z2dlc3RlZEZpbGVuYW1lKShDRlVSTFJlc3BvbnNlUmVm
KTsKLXZvaWQgKCp3a1NldENGVVJMUmVzcG9uc2VNSU1FVHlwZSkoQ0ZVUkxSZXNwb25zZVJlZiwg
Q0ZTdHJpbmdSZWYgbWltZVR5cGUpOwogdm9pZCAoKndrU2V0TWV0YWRhdGFVUkwpKE5TU3RyaW5n
ICp1cmxTdHJpbmcsIE5TU3RyaW5nICpyZWZlcnJlciwgTlNTdHJpbmcgKnBhdGgpOwogCi12b2lk
ICgqd2tDRlVSTFJlcXVlc3RBbGxvd0FsbFBvc3RDYWNoaW5nKShDRlVSTFJlcXVlc3RSZWYpOwot
CiAjaWYgIVBMQVRGT1JNKElPUykKIENHRmxvYXQgKCp3a05TRWxhc3RpY0RlbHRhRm9yVGltZURl
bHRhKShDR0Zsb2F0IGluaXRpYWxQb3NpdGlvbiwgQ0dGbG9hdCBpbml0aWFsVmVsb2NpdHksIENH
RmxvYXQgZWxhcHNlZFRpbWUpOwogQ0dGbG9hdCAoKndrTlNFbGFzdGljRGVsdGFGb3JSZWJvdW5k
RGVsdGEpKENHRmxvYXQgZGVsdGEpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmgKaW5kZXggOWJmZmQwYTBiMGQ5MDNl
YzIxZmE0ZmIyYThhMWY0ZWRlNGJmNDI1YS4uZDllMzhkMDEzYzJmM2JkOWRjZTczMjFjODdhZjc3
YjNiZjViZDNjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9O
ZXR3b3JrU3RvcmFnZVNlc3Npb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oCkBAIC0zMiw4ICszMiw3IEBACiAjaW5jbHVkZSA8
d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKICNpZiBQTEFURk9STShDT0NPQSkgfHwgVVNFKENGTkVU
V09SSykKLXR5cGVkZWYgY29uc3Qgc3RydWN0IF9fQ0ZVUkxTdG9yYWdlU2Vzc2lvbiogQ0ZVUkxT
dG9yYWdlU2Vzc2lvblJlZjsKLXR5cGVkZWYgc3RydWN0IE9wYXF1ZUNGSFRUUENvb2tpZVN0b3Jh
Z2UqICBDRkhUVFBDb29raWVTdG9yYWdlUmVmOworI2luY2x1ZGUgIkNGTmV0d29ya1NQSS5oIgog
I2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvY2YvQ3JlZGVudGlhbFN0b3JhZ2VDRk5ldC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL0NyZWRlbnRpYWxTdG9yYWdlQ0ZOZXQuY3BwCmlu
ZGV4IDU2MDkyNTk3YWFjY2QyNzczZjY5OGIzNWJkNGZjNzE1ODcyYzQwZTQuLjU5ZmVhNTNjNTNl
NDk2N2QwZWE4OTNiOTI1ZDcwNjE1MGNhNWVlZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvY2YvQ3JlZGVudGlhbFN0b3JhZ2VDRk5ldC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9DcmVkZW50aWFsU3RvcmFnZUNGTmV0LmNw
cApAQCAtMjksNiArMjksNyBAQAogI2lmIFVTRShDRk5FVFdPUkspCiAKICNpbmNsdWRlICJBdXRo
ZW50aWNhdGlvbkNGLmgiCisjaW5jbHVkZSAiQ0ZOZXR3b3JrU1BJLmgiCiAjaW5jbHVkZSAiQ3Jl
ZGVudGlhbC5oIgogI2luY2x1ZGUgIlByb3RlY3Rpb25TcGFjZS5oIgogI2luY2x1ZGUgPHd0Zi9S
ZXRhaW5QdHIuaD4KQEAgLTQ0LDE1ICs0NSwyMSBAQAogI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKKyAgICAKK3N0YXRpYyBpbmxpbmUgQ0ZVUkxDcmVkZW50aWFsUmVmIGNvcHlDcmVkZW50
aWFsRnJvbVByb3RlY3Rpb25TcGFjZShDRlVSTFByb3RlY3Rpb25TcGFjZVJlZiBwcm90ZWN0aW9u
U3BhY2UpCit7CisgICAgYXV0byBzdG9yYWdlID0gYWRvcHRDRihDRlVSTENyZWRlbnRpYWxTdG9y
YWdlQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQpKTsKKyAgICByZXR1cm4gQ0ZVUkxDcmVkZW50
aWFsU3RvcmFnZUNvcHlEZWZhdWx0Q3JlZGVudGlhbEZvclByb3RlY3Rpb25TcGFjZShzdG9yYWdl
LmdldCgpLCBwcm90ZWN0aW9uU3BhY2UpOworfQogCiBDcmVkZW50aWFsIENyZWRlbnRpYWxTdG9y
YWdlOjpnZXRGcm9tUGVyc2lzdGVudFN0b3JhZ2UoY29uc3QgUHJvdGVjdGlvblNwYWNlJiBwcm90
ZWN0aW9uU3BhY2UpCiB7CiAjaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgUmV0YWluUHRyPENGVVJM
Q3JlZGVudGlhbFJlZj4gY3JlZGVudGlhbENGID0gYWRvcHRDRih3a0NvcHlDcmVkZW50aWFsRnJv
bUNGUGVyc2lzdGVudFN0b3JhZ2UocHJvdGVjdGlvblNwYWNlLmNmU3BhY2UoKSkpOworICAgIGF1
dG8gY3JlZGVudGlhbENGID0gYWRvcHRDRihjb3B5Q3JlZGVudGlhbEZyb21Qcm90ZWN0aW9uU3Bh
Y2UocHJvdGVjdGlvblNwYWNlLmNmU3BhY2UoKSkpOwogICAgIHJldHVybiBDcmVkZW50aWFsKGNy
ZWRlbnRpYWxDRi5nZXQoKSk7CiAjZWxzZQotICAgIFJldGFpblB0cjxDRlVSTFByb3RlY3Rpb25T
cGFjZVJlZj4gcHJvdGVjdGlvblNwYWNlQ0YgPSBhZG9wdENGKGNyZWF0ZUNGKHByb3RlY3Rpb25T
cGFjZSkpOwotICAgIFJldGFpblB0cjxDRlVSTENyZWRlbnRpYWxSZWY+IGNyZWRlbnRpYWxDRiA9
IGFkb3B0Q0Yod2tDb3B5Q3JlZGVudGlhbEZyb21DRlBlcnNpc3RlbnRTdG9yYWdlKHByb3RlY3Rp
b25TcGFjZUNGLmdldCgpKSk7CisgICAgYXV0byBwcm90ZWN0aW9uU3BhY2VDRiA9IGFkb3B0Q0Yo
Y3JlYXRlQ0YocHJvdGVjdGlvblNwYWNlKSk7CisgICAgYXV0byBjcmVkZW50aWFsQ0YgPSBhZG9w
dENGKGNvcHlDcmVkZW50aWFsRnJvbVByb3RlY3Rpb25TcGFjZShwcm90ZWN0aW9uU3BhY2VDRi5n
ZXQoKSkpOwogICAgIHJldHVybiBjb3JlKGNyZWRlbnRpYWxDRi5nZXQoKSk7CiAjZW5kaWYKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvTmV0d29ya1N0
b3JhZ2VTZXNzaW9uQ0ZOZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9j
Zi9OZXR3b3JrU3RvcmFnZVNlc3Npb25DRk5ldC5jcHAKaW5kZXggNGVmZGY3MmEzZDE3ZWNmNTM4
N2E1MzI4ZDMwY2QyYzZmNGY0MjRjNi4uNjc2N2FkMjMwMDAxZWNiNDE1ZDAyODY1NjcwZjAyZDBi
YTM1MDg0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9O
ZXR3b3JrU3RvcmFnZVNlc3Npb25DRk5ldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9jZi9OZXR3b3JrU3RvcmFnZVNlc3Npb25DRk5ldC5jcHAKQEAgLTg0LDEwICs4
NCwxMCBAQCBzdGQ6OnVuaXF1ZV9wdHI8TmV0d29ya1N0b3JhZ2VTZXNzaW9uPiBOZXR3b3JrU3Rv
cmFnZVNlc3Npb246OmNyZWF0ZVByaXZhdGVCcm93cwogUmV0YWluUHRyPENGSFRUUENvb2tpZVN0
b3JhZ2VSZWY+IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Y29va2llU3RvcmFnZSgpIGNvbnN0CiB7
CiAgICAgaWYgKG1fcGxhdGZvcm1TZXNzaW9uKQotICAgICAgICByZXR1cm4gYWRvcHRDRih3a0Nv
cHlIVFRQQ29va2llU3RvcmFnZShtX3BsYXRmb3JtU2Vzc2lvbi5nZXQoKSkpOworICAgICAgICBy
ZXR1cm4gYWRvcHRDRihfQ0ZVUkxTdG9yYWdlU2Vzc2lvbkNvcHlDb29raWVTdG9yYWdlKGtDRkFs
bG9jYXRvckRlZmF1bHQsIG1fcGxhdGZvcm1TZXNzaW9uLmdldCgpKSk7CiAKICNpZiBVU0UoQ0ZO
RVRXT1JLKQotICAgIHJldHVybiB3a0dldERlZmF1bHRIVFRQQ29va2llU3RvcmFnZSgpOworICAg
IHJldHVybiBfQ0ZIVFRQQ29va2llU3RvcmFnZUdldERlZmF1bHQoa0NGQWxsb2NhdG9yRGVmYXVs
dCk7CiAjZWxzZQogICAgIC8vIFdoZW4gdXNpbmcgTlNVUkxDb25uZWN0aW9uLCB3ZSBhbHNvIHVz
ZSBpdHMgc2hhcmVkIGNvb2tpZSBzdG9yYWdlLgogICAgIHJldHVybiAwOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGTmV0LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVDRk5l
dC5jcHAKaW5kZXggNWMxNDIwN2Q0MWFhMzZmNzkwYmVlYzdjMzNmNDdiZjJhN2M3ZDI1MS4uY2Uz
YjFmM2I4ZWRjNDFmMTM2OWI1MzdhNzQyZWU5MTk4M2U5YWY3YSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGTmV0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZOZXQu
Y3BwCkBAIC0xNDcsMTEgKzE0NywxMiBAQCB2b2lkIFJlc291cmNlSGFuZGxlOjpjcmVhdGVDRlVS
TENvbm5lY3Rpb24oYm9vbCBzaG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZSwgYm9vbAogICAgICAg
ICBhcHBseUJhc2ljQXV0aG9yaXphdGlvbkhlYWRlcihmaXJzdFJlcXVlc3QoKSwgZC0+bV9pbml0
aWFsQ3JlZGVudGlhbCk7CiAgICAgfQogCi0gICAgUmV0YWluUHRyPENGTXV0YWJsZVVSTFJlcXVl
c3RSZWY+IHJlcXVlc3QgPSBhZG9wdENGKENGVVJMUmVxdWVzdENyZWF0ZU11dGFibGVDb3B5KGtD
RkFsbG9jYXRvckRlZmF1bHQsIGZpcnN0UmVxdWVzdCgpLmNmVVJMUmVxdWVzdChVcGRhdGVIVFRQ
Qm9keSkpKTsKLSAgICB3a1NldFJlcXVlc3RTdG9yYWdlU2Vzc2lvbihkLT5tX3N0b3JhZ2VTZXNz
aW9uLmdldCgpLCByZXF1ZXN0LmdldCgpKTsKKyAgICBhdXRvIHJlcXVlc3QgPSBhZG9wdENGKENG
VVJMUmVxdWVzdENyZWF0ZU11dGFibGVDb3B5KGtDRkFsbG9jYXRvckRlZmF1bHQsIGZpcnN0UmVx
dWVzdCgpLmNmVVJMUmVxdWVzdChVcGRhdGVIVFRQQm9keSkpKTsKKyAgICBpZiAoYXV0byBzdG9y
YWdlU2Vzc2lvbiA9IGQtPm1fc3RvcmFnZVNlc3Npb24uZ2V0KCkpCisgICAgICAgIF9DRlVSTFJl
cXVlc3RTZXRTdG9yYWdlU2Vzc2lvbihyZXF1ZXN0LmdldCgpLCBzdG9yYWdlU2Vzc2lvbik7CiAg
ICAgCiAgICAgaWYgKCFzaG91bGRDb250ZW50U25pZmYpCi0gICAgICAgIHdrU2V0Q0ZVUkxSZXF1
ZXN0U2hvdWxkQ29udGVudFNuaWZmKHJlcXVlc3QuZ2V0KCksIGZhbHNlKTsKKyAgICAgICAgX0NG
VVJMUmVxdWVzdFNldFByb3RvY29sUHJvcGVydHkocmVxdWVzdC5nZXQoKSwgX2tDRlVSTENvbm5l
Y3Rpb25Qcm9wZXJ0eVNob3VsZFNuaWZmLCBrQ0ZCb29sZWFuRmFsc2UpOwogCiAgICAgUmV0YWlu
UHRyPENGTXV0YWJsZURpY3Rpb25hcnlSZWY+IHNzbFByb3BzOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0
aW9uRGVsZWdhdGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNv
dXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlLmNwcAppbmRleCA0ZjdhNzkyOWYxYjEx
ZDg4NGQ4ZDA0NzY4MjExMmFkYjY2ZTliYmQ1Li4yODFhN2I2MmViZDk2MmY5MDUyYjM0MzczZjg4
YmZjZWJiZjlkZmU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L2NmL1Jlc291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rp
b25EZWxlZ2F0ZS5jcHAKQEAgLTE1OCw4ICsxNTgsOSBAQCBSZXNvdXJjZVJlcXVlc3QgUmVzb3Vy
Y2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZTo6Y3JlYXRlUmVzb3VyY2VSZXF1ZXN0KENG
VQogICAgICAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IGxhc3RIVFRQTWV0aG9kID0gbV9oYW5k
bGUtPmxhc3RIVFRQTWV0aG9kKCkuY3JlYXRlQ0ZTdHJpbmcoKTsKICAgICAgICAgUmV0YWluUHRy
PENGU3RyaW5nUmVmPiBuZXdNZXRob2QgPSBhZG9wdENGKENGVVJMUmVxdWVzdENvcHlIVFRQUmVx
dWVzdE1ldGhvZChjZlJlcXVlc3QpKTsKICAgICAgICAgaWYgKENGU3RyaW5nQ29tcGFyZVdpdGhP
cHRpb25zKGxhc3RIVFRQTWV0aG9kLmdldCgpLCBuZXdNZXRob2QuZ2V0KCksIENGUmFuZ2VNYWtl
KDAsIENGU3RyaW5nR2V0TGVuZ3RoKGxhc3RIVFRQTWV0aG9kLmdldCgpKSksIGtDRkNvbXBhcmVD
YXNlSW5zZW5zaXRpdmUpKSB7Ci0gICAgICAgICAgICBSZXRhaW5QdHI8Q0ZNdXRhYmxlVVJMUmVx
dWVzdFJlZj4gbXV0YWJsZVJlcXVlc3QgPSBhZG9wdENGKENGVVJMUmVxdWVzdENyZWF0ZU11dGFi
bGVDb3B5KDAsIGNmUmVxdWVzdCkpOwotICAgICAgICAgICAgd2tTZXRSZXF1ZXN0U3RvcmFnZVNl
c3Npb24obV9oYW5kbGUtPnN0b3JhZ2VTZXNzaW9uKCksIG11dGFibGVSZXF1ZXN0LmdldCgpKTsK
KyAgICAgICAgICAgIGF1dG8gbXV0YWJsZVJlcXVlc3QgPSBhZG9wdENGKENGVVJMUmVxdWVzdENy
ZWF0ZU11dGFibGVDb3B5KGtDRkFsbG9jYXRvckRlZmF1bHQsIGNmUmVxdWVzdCkpOworICAgICAg
ICAgICAgaWYgKGF1dG8gc3RvcmFnZVNlc3Npb24gPSBtX2hhbmRsZS0+c3RvcmFnZVNlc3Npb24o
KSkKKyAgICAgICAgICAgICAgICBfQ0ZVUkxSZXF1ZXN0U2V0U3RvcmFnZVNlc3Npb24obXV0YWJs
ZVJlcXVlc3QuZ2V0KCksIHN0b3JhZ2VTZXNzaW9uKTsKICAgICAgICAgICAgIENGVVJMUmVxdWVz
dFNldEhUVFBSZXF1ZXN0TWV0aG9kKG11dGFibGVSZXF1ZXN0LmdldCgpLCBsYXN0SFRUUE1ldGhv
ZC5nZXQoKSk7CiAKICAgICAgICAgICAgIEZvcm1EYXRhKiBib2R5ID0gbV9oYW5kbGUtPmZpcnN0
UmVxdWVzdCgpLmh0dHBCb2R5KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGVXaXRoT3Bl
cmF0aW9uUXVldWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNv
dXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlV2l0aE9wZXJhdGlvblF1ZXVlLmNwcApp
bmRleCBkMDYyYTU0OGQ3MTZkOGVkOGE5Y2FkNzYyNzAyYjVlOTM3NzJlMzQxLi45ZjBkNmFmYzk4
NDdmZTJhYzU0ZDdmNmRlMDRhZWJhNGM5MjZlMWVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdh
dGVXaXRoT3BlcmF0aW9uUXVldWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZVdpdGhPcGVyYXRp
b25RdWV1ZS5jcHAKQEAgLTMwLDEyICszMCwxMiBAQAogCiAjaW5jbHVkZSAiQXV0aGVudGljYXRp
b25DRi5oIgogI2luY2x1ZGUgIkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLmgiCisjaW5jbHVkZSAi
Q0ZOZXR3b3JrU1BJLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIlJlc291cmNl
SGFuZGxlLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VIYW5kbGVDbGllbnQuaCIKICNpbmNsdWRlICJS
ZXNvdXJjZVJlc3BvbnNlLmgiCiAjaW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgiCi0jaW5jbHVkZSAi
V2ViQ29yZVN5c3RlbUludGVyZmFjZS5oIgogI2luY2x1ZGUgIldlYkNvcmVVUkxSZXNwb25zZS5o
IgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmlu
Zy5oPgpAQCAtMTQwLDcgKzE0MCw3IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rp
b25EZWxlZ2F0ZVdpdGhPcGVyYXRpb25RdWV1ZTo6ZGlkUmVjZWl2ZVJlc3BvbnNlCiAgICAgICAg
IExPRyhOZXR3b3JrLCAiQ0ZOZXQgLSBSZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVn
YXRlV2l0aE9wZXJhdGlvblF1ZXVlOjpkaWRSZWNlaXZlUmVzcG9uc2UoaGFuZGxlPSVwKSAoJXMp
IiwgbV9oYW5kbGUsIG1faGFuZGxlLT5maXJzdFJlcXVlc3QoKS51cmwoKS5zdHJpbmcoKS51dGY4
KCkuZGF0YSgpKTsKIAogICAgICAgICAvLyBBdm9pZCBNSU1FIHR5cGUgc25pZmZpbmcgaWYgdGhl
IHJlc3BvbnNlIGNvbWVzIGJhY2sgYXMgMzA0IE5vdCBNb2RpZmllZC4KLSAgICAgICAgQ0ZIVFRQ
TWVzc2FnZVJlZiBtc2cgPSB3a0dldENGVVJMUmVzcG9uc2VIVFRQUmVzcG9uc2UoY2ZSZXNwb25z
ZSk7CisgICAgICAgIGF1dG8gbXNnID0gQ0ZVUkxSZXNwb25zZUdldEhUVFBSZXNwb25zZShjZlJl
c3BvbnNlKTsKICAgICAgICAgaW50IHN0YXR1c0NvZGUgPSBtc2cgPyBDRkhUVFBNZXNzYWdlR2V0
UmVzcG9uc2VTdGF0dXNDb2RlKG1zZykgOiAwOwogCiAgICAgICAgIGlmIChzdGF0dXNDb2RlICE9
IDMwNCkKQEAgLTE0OCw3ICsxNDgsNyBAQCB2b2lkIFJlc291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0
aW9uRGVsZWdhdGVXaXRoT3BlcmF0aW9uUXVldWU6OmRpZFJlY2VpdmVSZXNwb25zZQogCiAjaWYg
IVBMQVRGT1JNKElPUykKICAgICAgICAgaWYgKF9DRlVSTFJlcXVlc3RDb3B5UHJvdG9jb2xQcm9w
ZXJ0eUZvcktleShtX2hhbmRsZS0+Zmlyc3RSZXF1ZXN0KCkuY2ZVUkxSZXF1ZXN0KERvTm90VXBk
YXRlSFRUUEJvZHkpLCBDRlNUUigiRm9yY2VIVE1MTUlNRVR5cGUiKSkpCi0gICAgICAgICAgICB3
a1NldENGVVJMUmVzcG9uc2VNSU1FVHlwZShjZlJlc3BvbnNlLCBDRlNUUigidGV4dC9odG1sIikp
OworICAgICAgICAgICAgQ0ZVUkxSZXNwb25zZVNldE1JTUVUeXBlKGNmUmVzcG9uc2UsIENGU1RS
KCJ0ZXh0L2h0bWwiKSk7CiAjZW5kaWYgLy8gIVBMQVRGT1JNKElPUykKICAgICAgICAgCiAgICAg
ICAgIFJlc291cmNlUmVzcG9uc2UgcmVzb3VyY2VSZXNwb25zZShjZlJlc3BvbnNlKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VSZXF1ZXN0
Q0ZOZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZVJl
cXVlc3RDRk5ldC5jcHAKaW5kZXggYTRkNDNkZjNjMGE0MjhmMTcwNjE4MmU4YThhYWJjMDVkZGEy
M2E5ZS4uMTk0NTUyNWQ4YTBjM2Q1ZDBmYjFhYzgyZjMzZGIzMTczZTAyMjI3MSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZVJlcXVlc3RDRk5l
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZVJl
cXVlc3RDRk5ldC5jcHAKQEAgLTI2LDYgKzI2LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNp
bmNsdWRlICJSZXNvdXJjZVJlcXVlc3RDRk5ldC5oIgogCisjaW5jbHVkZSAiQ0ZOZXR3b3JrU1BJ
LmgiCiAjaW5jbHVkZSAiSFRUUEhlYWRlck5hbWVzLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VSZXF1
ZXN0LmgiCiAKQEAgLTM5LDEwICs0MCw2IEBACiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5o
PgogI2VuZGlmCiAKLSNpZiBQTEFURk9STShJT1MpCi0jaW5jbHVkZSAiQ0ZOZXR3b3JrQ29ubmVj
dGlvbkNhY2hlU1BJLmgiCi0jZW5kaWYKLQogI2lmIFBMQVRGT1JNKENPQ09BKQogI2luY2x1ZGUg
IlJlc291cmNlTG9hZFByaW9yaXR5LmgiCiAjaW5jbHVkZSAiV2ViQ29yZVN5c3RlbUludGVyZmFj
ZS5oIgpAQCAtMTU0LDEzICsxNTEsMTMgQEAgdm9pZCBSZXNvdXJjZVJlcXVlc3Q6OmRvVXBkYXRl
UGxhdGZvcm1SZXF1ZXN0KCkKICAgICBDRlVSTFJlcXVlc3RTZXRIVFRQUmVxdWVzdE1ldGhvZChj
ZlJlcXVlc3QsIGh0dHBNZXRob2QoKS5jcmVhdGVDRlN0cmluZygpLmdldCgpKTsKIAogICAgIGlm
IChodHRwUGlwZWxpbmluZ0VuYWJsZWQoKSkKLSAgICAgICAgd2tIVFRQUmVxdWVzdEVuYWJsZVBp
cGVsaW5pbmcoY2ZSZXF1ZXN0KTsKKyAgICAgICAgQ0ZVUkxSZXF1ZXN0U2V0U2hvdWxkUGlwZWxp
bmVIVFRQKGNmUmVxdWVzdCwgdHJ1ZSwgdHJ1ZSk7CiAKICAgICBpZiAocmVzb3VyY2VQcmlvcml0
aWVzRW5hYmxlZCgpKQotICAgICAgICB3a1NldEhUVFBSZXF1ZXN0UHJpb3JpdHkoY2ZSZXF1ZXN0
LCB0b1BsYXRmb3JtUmVxdWVzdFByaW9yaXR5KHByaW9yaXR5KCkpKTsKKyAgICAgICAgQ0ZVUkxS
ZXF1ZXN0U2V0UmVxdWVzdFByaW9yaXR5KGNmUmVxdWVzdCwgdG9QbGF0Zm9ybVJlcXVlc3RQcmlv
cml0eShwcmlvcml0eSgpKSk7CiAKICNpZiAhUExBVEZPUk0oV0lOKQotICAgIHdrQ0ZVUkxSZXF1
ZXN0QWxsb3dBbGxQb3N0Q2FjaGluZyhjZlJlcXVlc3QpOworICAgIF9DRlVSTFJlcXVlc3RTZXRQ
cm90b2NvbFByb3BlcnR5KGNmUmVxdWVzdCwga0NGVVJMUmVxdWVzdEFsbG93QWxsUE9TVENhY2hp
bmcsIGtDRkJvb2xlYW5UcnVlKTsKICNlbmRpZgogCiAgICAgc2V0SGVhZGVyRmllbGRzKGNmUmVx
dWVzdCwgaHR0cEhlYWRlckZpZWxkcygpKTsKQEAgLTI2MSw3ICsyNTgsNyBAQCB2b2lkIFJlc291
cmNlUmVxdWVzdDo6ZG9VcGRhdGVSZXNvdXJjZVJlcXVlc3QoKQogICAgIG1fYWxsb3dDb29raWVz
ID0gQ0ZVUkxSZXF1ZXN0U2hvdWxkSGFuZGxlSFRUUENvb2tpZXMobV9jZlJlcXVlc3QuZ2V0KCkp
OwogCiAgICAgaWYgKHJlc291cmNlUHJpb3JpdGllc0VuYWJsZWQoKSkKLSAgICAgICAgbV9wcmlv
cml0eSA9IHRvUmVzb3VyY2VMb2FkUHJpb3JpdHkod2tHZXRIVFRQUmVxdWVzdFByaW9yaXR5KG1f
Y2ZSZXF1ZXN0LmdldCgpKSk7CisgICAgICAgIG1fcHJpb3JpdHkgPSB0b1Jlc291cmNlTG9hZFBy
aW9yaXR5KENGVVJMUmVxdWVzdEdldFJlcXVlc3RQcmlvcml0eShtX2NmUmVxdWVzdC5nZXQoKSkp
OwogCiAgICAgbV9odHRwSGVhZGVyRmllbGRzLmNsZWFyKCk7CiAgICAgaWYgKENGRGljdGlvbmFy
eVJlZiBoZWFkZXJzID0gQ0ZVUkxSZXF1ZXN0Q29weUFsbEhUVFBIZWFkZXJGaWVsZHMobV9jZlJl
cXVlc3QuZ2V0KCkpKSB7CkBAIC0zMTYsOCArMzEzLDkgQEAgdm9pZCBSZXNvdXJjZVJlcXVlc3Q6
OnNldFN0b3JhZ2VTZXNzaW9uKENGVVJMU3RvcmFnZVNlc3Npb25SZWYgc3RvcmFnZVNlc3Npb24p
CiB7CiAgICAgdXBkYXRlUGxhdGZvcm1SZXF1ZXN0KCk7CiAKLSAgICBDRk11dGFibGVVUkxSZXF1
ZXN0UmVmIGNmUmVxdWVzdCA9IENGVVJMUmVxdWVzdENyZWF0ZU11dGFibGVDb3B5KDAsIG1fY2ZS
ZXF1ZXN0LmdldCgpKTsKLSAgICB3a1NldFJlcXVlc3RTdG9yYWdlU2Vzc2lvbihzdG9yYWdlU2Vz
c2lvbiwgY2ZSZXF1ZXN0KTsKKyAgICBhdXRvIGNmUmVxdWVzdCA9IENGVVJMUmVxdWVzdENyZWF0
ZU11dGFibGVDb3B5KDAsIG1fY2ZSZXF1ZXN0LmdldCgpKTsKKyAgICBpZiAoc3RvcmFnZVNlc3Np
b24pCisgICAgICAgIF9DRlVSTFJlcXVlc3RTZXRTdG9yYWdlU2Vzc2lvbihjZlJlcXVlc3QsIHN0
b3JhZ2VTZXNzaW9uKTsKICAgICBtX2NmUmVxdWVzdCA9IGFkb3B0Q0YoY2ZSZXF1ZXN0KTsKICNp
ZiBQTEFURk9STShDT0NPQSkKICAgICBjbGVhck9yVXBkYXRlTlNVUkxSZXF1ZXN0KCk7CkBAIC0z
OTEsNyArMzg5LDggQEAgdW5zaWduZWQgaW5pdGlhbGl6ZU1heGltdW1IVFRQQ29ubmVjdGlvbkNv
dW50UGVySG9zdCgpCiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIHByZWZlcnJlZENvbm5lY3Rp
b25Db3VudCA9IDY7CiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIHVubGltaXRlZFJlcXVlc3RD
b3VudCA9IDEwMDAwOwogCi0gICAgdW5zaWduZWQgbWF4aW11bUhUVFBDb25uZWN0aW9uQ291bnRQ
ZXJIb3N0ID0gd2tJbml0aWFsaXplTWF4aW11bUhUVFBDb25uZWN0aW9uQ291bnRQZXJIb3N0KHBy
ZWZlcnJlZENvbm5lY3Rpb25Db3VudCk7CisgICAgX0NGTmV0d29ya0hUVFBDb25uZWN0aW9uQ2Fj
aGVTZXRMaW1pdChrSFRUUExvYWRXaWR0aCwgcHJlZmVycmVkQ29ubmVjdGlvbkNvdW50KTsKKyAg
ICB1bnNpZ25lZCBtYXhpbXVtSFRUUENvbm5lY3Rpb25Db3VudFBlckhvc3QgPSBfQ0ZOZXR3b3Jr
SFRUUENvbm5lY3Rpb25DYWNoZUdldExpbWl0KGtIVFRQTG9hZFdpZHRoKTsKIAogICAgIEJvb2xl
YW4ga2V5RXhpc3RzQW5kSGFzVmFsaWRGb3JtYXQgPSBmYWxzZTsKICAgICBCb29sZWFuIHByZWZW
YWx1ZSA9IENGUHJlZmVyZW5jZXNHZXRBcHBCb29sZWFuVmFsdWUoQ0ZTVFIoIldlYktpdEVuYWJs
ZUhUVFBQaXBlbGluaW5nIiksIGtDRlByZWZlcmVuY2VzQ3VycmVudEFwcGxpY2F0aW9uLCAma2V5
RXhpc3RzQW5kSGFzVmFsaWRGb3JtYXQpOwpAQCAtNDAyLDEwICs0MDEsMTAgQEAgdW5zaWduZWQg
aW5pdGlhbGl6ZU1heGltdW1IVFRQQ29ubmVjdGlvbkNvdW50UGVySG9zdCgpCiAgICAgaWYgKCFS
ZXNvdXJjZVJlcXVlc3Q6OnJlc291cmNlUHJpb3JpdGllc0VuYWJsZWQoKSkKICAgICAgICAgcmV0
dXJuIG1heGltdW1IVFRQQ29ubmVjdGlvbkNvdW50UGVySG9zdDsKIAotICAgIHdrU2V0SFRUUFJl
cXVlc3RNYXhpbXVtUHJpb3JpdHkodG9QbGF0Zm9ybVJlcXVlc3RQcmlvcml0eShSZXNvdXJjZUxv
YWRQcmlvcml0eTo6SGlnaGVzdCkpOworICAgIF9DRk5ldHdvcmtIVFRQQ29ubmVjdGlvbkNhY2hl
U2V0TGltaXQoa0hUVFBQcmlvcml0eU51bUxldmVscywgdG9QbGF0Zm9ybVJlcXVlc3RQcmlvcml0
eShSZXNvdXJjZUxvYWRQcmlvcml0eTo6SGlnaGVzdCkpOwogI2lmICFQTEFURk9STShXSU4pCiAg
ICAgLy8gRklYTUU6IDxyZGFyOi8vcHJvYmxlbS85Mzc1NjA5PiBJbXBsZW1lbnQgbWluaW11bSBm
YXN0IGxhbmUgcHJpb3JpdHkgc2V0dGluZyBvbiBXaW5kb3dzCi0gICAgd2tTZXRIVFRQUmVxdWVz
dE1pbmltdW1GYXN0TGFuZVByaW9yaXR5KHRvUGxhdGZvcm1SZXF1ZXN0UHJpb3JpdHkoUmVzb3Vy
Y2VMb2FkUHJpb3JpdHk6Ok1lZGl1bSkpOworICAgIF9DRk5ldHdvcmtIVFRQQ29ubmVjdGlvbkNh
Y2hlU2V0TGltaXQoa0hUVFBNaW5pbXVtRmFzdExhbmVQcmlvcml0eSwgdG9QbGF0Zm9ybVJlcXVl
c3RQcmlvcml0eShSZXNvdXJjZUxvYWRQcmlvcml0eTo6TWVkaXVtKSk7CiAjZW5kaWYKIAogICAg
IHJldHVybiB1bmxpbWl0ZWRSZXF1ZXN0Q291bnQ7CkBAIC00MjAsOSArNDE5LDkgQEAgdm9pZCBp
bml0aWFsaXplSFRUUENvbm5lY3Rpb25TZXR0aW5nc09uU3RhcnR1cCgpCiAgICAgLy8gV2UgY2Fu
J3QgcmVhZCBzZXR0aW5ncyBoZXJlIGFzIHRoaXMgaXMgY2FsbGVkIHRvbyBlYXJseSBmb3IgdGhh
dC4gQWxsIHZhbHVlcyBuZWVkIHRvIGJlIGNvbnN0YW50cy4KICAgICBzdGF0aWMgY29uc3QgdW5z
aWduZWQgcHJlZmVycmVkQ29ubmVjdGlvbkNvdW50ID0gNjsKICAgICBzdGF0aWMgY29uc3QgdW5z
aWduZWQgZmFzdExhbmVDb25uZWN0aW9uQ291bnQgPSAxOwotICAgIHdrSW5pdGlhbGl6ZU1heGlt
dW1IVFRQQ29ubmVjdGlvbkNvdW50UGVySG9zdChwcmVmZXJyZWRDb25uZWN0aW9uQ291bnQpOwot
ICAgIHdrU2V0SFRUUFJlcXVlc3RNYXhpbXVtUHJpb3JpdHkodG9QbGF0Zm9ybVJlcXVlc3RQcmlv
cml0eShSZXNvdXJjZUxvYWRQcmlvcml0eTo6SGlnaGVzdCkpOwotICAgIHdrU2V0SFRUUFJlcXVl
c3RNaW5pbXVtRmFzdExhbmVQcmlvcml0eSh0b1BsYXRmb3JtUmVxdWVzdFByaW9yaXR5KFJlc291
cmNlTG9hZFByaW9yaXR5OjpNZWRpdW0pKTsKKyAgICBfQ0ZOZXR3b3JrSFRUUENvbm5lY3Rpb25D
YWNoZVNldExpbWl0KGtIVFRQTG9hZFdpZHRoLCBwcmVmZXJyZWRDb25uZWN0aW9uQ291bnQpOwor
ICAgIF9DRk5ldHdvcmtIVFRQQ29ubmVjdGlvbkNhY2hlU2V0TGltaXQoa0hUVFBQcmlvcml0eU51
bUxldmVscywgdG9QbGF0Zm9ybVJlcXVlc3RQcmlvcml0eShSZXNvdXJjZUxvYWRQcmlvcml0eTo6
SGlnaGVzdCkpOworICAgIF9DRk5ldHdvcmtIVFRQQ29ubmVjdGlvbkNhY2hlU2V0TGltaXQoa0hU
VFBNaW5pbXVtRmFzdExhbmVQcmlvcml0eSwgdG9QbGF0Zm9ybVJlcXVlc3RQcmlvcml0eShSZXNv
dXJjZUxvYWRQcmlvcml0eTo6TWVkaXVtKSk7CiAgICAgX0NGTmV0d29ya0hUVFBDb25uZWN0aW9u
Q2FjaGVTZXRMaW1pdChrSFRUUE51bUZhc3RMYW5lcywgZmFzdExhbmVDb25uZWN0aW9uQ291bnQp
OwogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L2NmL1Jlc291cmNlUmVxdWVzdENGTmV0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL2NmL1Jlc291cmNlUmVxdWVzdENGTmV0LmgKaW5kZXggMDM1MjljOTJiOWI0NzhiMzAzNDU5
NzhiZTkxODc0MjEyZmU3MWQyNC4uY2JjNDllMTdlNzA5MzQ1MjI1YWM5OWMzOGM0ZDdiZTk3ZTc5
ZGIxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNv
dXJjZVJlcXVlc3RDRk5ldC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
Y2YvUmVzb3VyY2VSZXF1ZXN0Q0ZOZXQuaApAQCAtMjYsMTIgKzI2LDkgQEAKICNpZm5kZWYgUmVz
b3VyY2VSZXF1ZXN0Q0ZOZXRfaAogI2RlZmluZSBSZXNvdXJjZVJlcXVlc3RDRk5ldF9oCiAKKyNp
bmNsdWRlICJDRk5ldHdvcmtTUEkuaCIKICNpbmNsdWRlICJSZXNvdXJjZUxvYWRQcmlvcml0eS5o
IgogCi0jaWYgVVNFKENGTkVUV09SSykKLXR5cGVkZWYgY29uc3Qgc3RydWN0IF9DRlVSTFJlcXVl
c3QqIENGVVJMUmVxdWVzdFJlZjsKLSNlbmRpZgotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNs
YXNzIFJlc291cmNlUmVxdWVzdDsKQEAgLTQxLDcgKzM4LDcgQEAgdm9pZCBnZXRSZXNvdXJjZVJl
cXVlc3QoUmVzb3VyY2VSZXF1ZXN0JiwgQ0ZVUkxSZXF1ZXN0UmVmKTsKIENGVVJMUmVxdWVzdFJl
ZiBjZlVSTFJlcXVlc3QoY29uc3QgUmVzb3VyY2VSZXF1ZXN0Jik7CiAjZW5kaWYKIAotaW5saW5l
IFJlc291cmNlTG9hZFByaW9yaXR5IHRvUmVzb3VyY2VMb2FkUHJpb3JpdHkoaW50IHByaW9yaXR5
KQoraW5saW5lIFJlc291cmNlTG9hZFByaW9yaXR5IHRvUmVzb3VyY2VMb2FkUHJpb3JpdHkoQ0ZV
UkxSZXF1ZXN0UHJpb3JpdHkgcHJpb3JpdHkpCiB7CiAgICAgc3dpdGNoIChwcmlvcml0eSkgewog
ICAgIGNhc2UgLTE6CkBAIC02MSw3ICs1OCw3IEBAIGlubGluZSBSZXNvdXJjZUxvYWRQcmlvcml0
eSB0b1Jlc291cmNlTG9hZFByaW9yaXR5KGludCBwcmlvcml0eSkKICAgICB9CiB9CiAKLWlubGlu
ZSBpbnQgdG9QbGF0Zm9ybVJlcXVlc3RQcmlvcml0eShSZXNvdXJjZUxvYWRQcmlvcml0eSBwcmlv
cml0eSkKK2lubGluZSBDRlVSTFJlcXVlc3RQcmlvcml0eSB0b1BsYXRmb3JtUmVxdWVzdFByaW9y
aXR5KFJlc291cmNlTG9hZFByaW9yaXR5IHByaW9yaXR5KQogewogICAgIHN3aXRjaCAocHJpb3Jp
dHkpIHsKICAgICBjYXNlIFJlc291cmNlTG9hZFByaW9yaXR5OjpWZXJ5TG93OgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZVJlc3BvbnNlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlUmVzcG9uc2UuaApp
bmRleCBhY2MxZDQ1Njk3NWNjMTJmMzlhMzM4ZGJiMjQzOTQxZTU3YzI2ZDFhLi5jOGU0NjY1YmY5
MWQ2NDllYzAwMGViYzA3YzUwZWZkZWYzOTk5Y2QwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlUmVzcG9uc2UuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlUmVzcG9uc2UuaApAQCAtMzAsNyArMzAs
NyBAQAogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KIAogI2lmIFVTRShDRk5FVFdPUkspCi10
eXBlZGVmIHN0cnVjdCBfQ0ZVUkxSZXNwb25zZSogQ0ZVUkxSZXNwb25zZVJlZjsKKyNpbmNsdWRl
ICJDRk5ldHdvcmtTUEkuaCIKICNlbmRpZgogCiBPQkpDX0NMQVNTIE5TVVJMUmVzcG9uc2U7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlUmVz
cG9uc2VDRk5ldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291
cmNlUmVzcG9uc2VDRk5ldC5jcHAKaW5kZXggNGJhZTc0ZTgzODE2YzE5NGVkYzE1NGQ4NGMyZGU4
ZjZkZDE2ZmM5NS4uYjAxMWE1N2ZmNGU0Y2MyZTA3ODM2Njg0YThjNzM4NDQwMmIzOGNlNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZVJlc3Bv
bnNlQ0ZOZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVz
b3VyY2VSZXNwb25zZUNGTmV0LmNwcApAQCAtMTEzLDEzICsxMTMsMTIgQEAgdm9pZCBSZXNvdXJj
ZVJlc3BvbnNlOjpwbGF0Zm9ybUxhenlJbml0KEluaXRMZXZlbCBpbml0TGV2ZWwpCiAgICAgbV9p
bml0TGV2ZWwgPSBpbml0TGV2ZWw7CiB9CiAKKyNpZiAhUExBVEZPUk0oQ09DT0EpCiBDZXJ0aWZp
Y2F0ZUluZm8gUmVzb3VyY2VSZXNwb25zZTo6cGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8oKSBjb25z
dAogewotI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIHJldHVybiBDZXJ0aWZpY2F0ZUluZm8oYWRv
cHRDRih3a0NvcHlOU1VSTFJlc3BvbnNlQ2VydGlmaWNhdGVDaGFpbihuc1VSTFJlc3BvbnNlKCkp
KSk7Ci0jZW5kaWYKLSAgICByZXR1cm4gQ2VydGlmaWNhdGVJbmZvKCk7CisgICAgcmV0dXJuIHsg
fTsKIH0KKyNlbmRpZgogCiBTdHJpbmcgUmVzb3VyY2VSZXNwb25zZTo6cGxhdGZvcm1TdWdnZXN0
ZWRGaWxlbmFtZSgpIGNvbnN0CiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL2NmL1N5bmNocm9ub3VzUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxl
Z2F0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1N5bmNocm9ub3Vz
UmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZS5jcHAKaW5kZXggNTc4OTZkZTJi
NjMzZTE2NjQ1YjFjN2VhZDZmZDkwMjBmYmRjNWM5OC4uOTI2NDNkOTdjOTc4NDNjN2UyNmM0OWZh
ZDkwYjJjZTQ3MjBhN2EwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9jZi9TeW5jaHJvbm91c1Jlc291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvU3luY2hyb25vdXNS
ZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlLmNwcApAQCAtNDEsNiArNDEsNyBA
QAogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiAjaWYgUExBVEZPUk0oQ09DT0Ep
CisjaW5jbHVkZSAiQ0ZOZXR3b3JrU1BJLmgiCiAjaW5jbHVkZSAiV2ViQ29yZVN5c3RlbUludGVy
ZmFjZS5oIgogI2luY2x1ZGUgIldlYkNvcmVVUkxSZXNwb25zZS5oIgogI2VuZGlmIC8vIFBMQVRG
T1JNKENPQ09BKQpAQCAtMTQzLDcgKzE0NCw3IEBAIHZvaWQgU3luY2hyb25vdXNSZXNvdXJjZUhh
bmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlOjpkaWRSZWNlaXZlUmVzcG9uc2UoQ0ZVUkxDCiAK
ICNpZiBQTEFURk9STShDT0NPQSkKICAgICAvLyBBdm9pZCBNSU1FIHR5cGUgc25pZmZpbmcgaWYg
dGhlIHJlc3BvbnNlIGNvbWVzIGJhY2sgYXMgMzA0IE5vdCBNb2RpZmllZC4KLSAgICBDRkhUVFBN
ZXNzYWdlUmVmIG1zZyA9IHdrR2V0Q0ZVUkxSZXNwb25zZUhUVFBSZXNwb25zZShjZlJlc3BvbnNl
KTsKKyAgICBhdXRvIG1zZyA9IENGVVJMUmVzcG9uc2VHZXRIVFRQUmVzcG9uc2UoY2ZSZXNwb25z
ZSk7CiAgICAgaW50IHN0YXR1c0NvZGUgPSBtc2cgPyBDRkhUVFBNZXNzYWdlR2V0UmVzcG9uc2VT
dGF0dXNDb2RlKG1zZykgOiAwOwogCiAgICAgaWYgKHN0YXR1c0NvZGUgIT0gMzA0KQpAQCAtMTUx
LDcgKzE1Miw3IEBAIHZvaWQgU3luY2hyb25vdXNSZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlv
bkRlbGVnYXRlOjpkaWRSZWNlaXZlUmVzcG9uc2UoQ0ZVUkxDCiAKICNpZiAhUExBVEZPUk0oSU9T
KQogICAgIGlmIChfQ0ZVUkxSZXF1ZXN0Q29weVByb3RvY29sUHJvcGVydHlGb3JLZXkobV9oYW5k
bGUtPmZpcnN0UmVxdWVzdCgpLmNmVVJMUmVxdWVzdChEb05vdFVwZGF0ZUhUVFBCb2R5KSwgQ0ZT
VFIoIkZvcmNlSFRNTE1JTUVUeXBlIikpKQotICAgICAgICB3a1NldENGVVJMUmVzcG9uc2VNSU1F
VHlwZShjZlJlc3BvbnNlLCBDRlNUUigidGV4dC9odG1sIikpOworICAgICAgICBDRlVSTFJlc3Bv
bnNlU2V0TUlNRVR5cGUoY2ZSZXNwb25zZSwgQ0ZTVFIoInRleHQvaHRtbCIpKTsKICNlbmRpZiAv
LyAhUExBVEZPUk0oSU9TKQogI2Vsc2UKICAgICBpZiAoIUNGVVJMUmVzcG9uc2VHZXRNSU1FVHlw
ZShjZlJlc3BvbnNlKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvY29jb2EvUmVzb3VyY2VSZXF1ZXN0Q29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL2NvY29hL1Jlc291cmNlUmVxdWVzdENvY29hLm1tCmluZGV4IDNiMWIwYTJmODc0
NzQ3YjM4YTJjODM4MGZiNjU1OTg2YmRlYjllY2MuLmZjZjQ5MzdjMzYwYjIyYWY4ZTFiZmM5YTQ1
MzBiYjkxYzE3MWJiNWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvY29jb2EvUmVzb3VyY2VSZXF1ZXN0Q29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9jb2NvYS9SZXNvdXJjZVJlcXVlc3RDb2NvYS5tbQpAQCAtNzksNyArNzks
NyBAQCB2b2lkIFJlc291cmNlUmVxdWVzdDo6ZG9VcGRhdGVSZXNvdXJjZVJlcXVlc3QoKQogICAg
IG1fYWxsb3dDb29raWVzID0gW21fbnNSZXF1ZXN0LmdldCgpIEhUVFBTaG91bGRIYW5kbGVDb29r
aWVzXTsKIAogICAgIGlmIChyZXNvdXJjZVByaW9yaXRpZXNFbmFibGVkKCkpCi0gICAgICAgIG1f
cHJpb3JpdHkgPSB0b1Jlc291cmNlTG9hZFByaW9yaXR5KHdrR2V0SFRUUFJlcXVlc3RQcmlvcml0
eShbbV9uc1JlcXVlc3QuZ2V0KCkgX0NGVVJMUmVxdWVzdF0pKTsKKyAgICAgICAgbV9wcmlvcml0
eSA9IHRvUmVzb3VyY2VMb2FkUHJpb3JpdHkobV9uc1JlcXVlc3QgPyBDRlVSTFJlcXVlc3RHZXRS
ZXF1ZXN0UHJpb3JpdHkoW21fbnNSZXF1ZXN0IF9DRlVSTFJlcXVlc3RdKSA6IDApOwogCiAgICAg
bV9odHRwSGVhZGVyRmllbGRzLmNsZWFyKCk7CiAgICAgW1ttX25zUmVxdWVzdCBhbGxIVFRQSGVh
ZGVyRmllbGRzXSBlbnVtZXJhdGVLZXlzQW5kT2JqZWN0c1VzaW5nQmxvY2s6IF4oTlNTdHJpbmcg
Km5hbWUsIE5TU3RyaW5nICp2YWx1ZSwgQk9PTCAqKSB7CkBAIC0xMzMsMTMgKzEzMywxMyBAQCB2
b2lkIFJlc291cmNlUmVxdWVzdDo6ZG9VcGRhdGVQbGF0Zm9ybVJlcXVlc3QoKQogICAgICAgICBu
c1JlcXVlc3QgPSBbW05TTXV0YWJsZVVSTFJlcXVlc3QgYWxsb2NdIGluaXRXaXRoVVJMOnVybCgp
XTsKIAogICAgIGlmIChSZXNvdXJjZVJlcXVlc3Q6Omh0dHBQaXBlbGluaW5nRW5hYmxlZCgpKQot
ICAgICAgICB3a0hUVFBSZXF1ZXN0RW5hYmxlUGlwZWxpbmluZyhbbnNSZXF1ZXN0IF9DRlVSTFJl
cXVlc3RdKTsKKyAgICAgICAgQ0ZVUkxSZXF1ZXN0U2V0U2hvdWxkUGlwZWxpbmVIVFRQKFtuc1Jl
cXVlc3QgX0NGVVJMUmVxdWVzdF0sIHRydWUsIHRydWUpOwogCiAgICAgaWYgKFJlc291cmNlUmVx
dWVzdDo6cmVzb3VyY2VQcmlvcml0aWVzRW5hYmxlZCgpKQotICAgICAgICB3a1NldEhUVFBSZXF1
ZXN0UHJpb3JpdHkoW25zUmVxdWVzdCBfQ0ZVUkxSZXF1ZXN0XSwgdG9QbGF0Zm9ybVJlcXVlc3RQ
cmlvcml0eShwcmlvcml0eSgpKSk7CisgICAgICAgIENGVVJMUmVxdWVzdFNldFJlcXVlc3RQcmlv
cml0eShbbnNSZXF1ZXN0IF9DRlVSTFJlcXVlc3RdLCB0b1BsYXRmb3JtUmVxdWVzdFByaW9yaXR5
KHByaW9yaXR5KCkpKTsKIAogICAgIFtuc1JlcXVlc3Qgc2V0Q2FjaGVQb2xpY3k6KE5TVVJMUmVx
dWVzdENhY2hlUG9saWN5KWNhY2hlUG9saWN5KCldOwotICAgIHdrQ0ZVUkxSZXF1ZXN0QWxsb3dB
bGxQb3N0Q2FjaGluZyhbbnNSZXF1ZXN0IF9DRlVSTFJlcXVlc3RdKTsKKyAgICBfQ0ZVUkxSZXF1
ZXN0U2V0UHJvdG9jb2xQcm9wZXJ0eShbbnNSZXF1ZXN0IF9DRlVSTFJlcXVlc3RdLCBrQ0ZVUkxS
ZXF1ZXN0QWxsb3dBbGxQT1NUQ2FjaGluZywga0NGQm9vbGVhblRydWUpOwogCiAgICAgZG91Ymxl
IHRpbWVvdXRJbnRlcnZhbCA9IFJlc291cmNlUmVxdWVzdEJhc2U6OnRpbWVvdXRJbnRlcnZhbCgp
OwogICAgIGlmICh0aW1lb3V0SW50ZXJ2YWwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL2NvY29hL1Jlc291cmNlUmVzcG9uc2VDb2NvYS5tbSBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY29jb2EvUmVzb3VyY2VSZXNwb25zZUNvY29hLm1tCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjFkNzljZGNjNzI0MDgxMTUxZWE4NzBlMWI0NzRmNzhhMGExNjgxNGIKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29hL1Jlc291
cmNlUmVzcG9uc2VDb2NvYS5tbQpAQCAtMCwwICsxLDIzMyBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAwNiBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0
ICJSZXNvdXJjZVJlc3BvbnNlLmgiCisKKyNpZiBQTEFURk9STShDT0NPQSkKKworI2ltcG9ydCAi
Q0ZOZXR3b3JrU1BJLmgiCisjaW1wb3J0ICJIVFRQUGFyc2Vycy5oIgorI2ltcG9ydCAiV2ViQ29y
ZVVSTFJlc3BvbnNlLmgiCisjaW1wb3J0IDxGb3VuZGF0aW9uL0ZvdW5kYXRpb24uaD4KKyNpbXBv
cnQgPGxpbWl0cz4KKyNpbXBvcnQgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCit2b2lkIFJlc291cmNlUmVzcG9uc2U6OmluaXROU1VSTFJlc3BvbnNlKCkgY29u
c3QKK3sKKyAgICBpZiAoIW1faHR0cFN0YXR1c0NvZGUgfHwgIW1fdXJsLnByb3RvY29sSXNJbkhU
VFBGYW1pbHkoKSkgeworICAgICAgICAvLyBXb3JrIGFyb3VuZCBhIG1pc3Rha2UgaW4gdGhlIE5T
VVJMUmVzcG9uc2UgY2xhc3MgLSA8cmRhcjovL3Byb2JsZW0vNjg3NTIxOT4uCisgICAgICAgIC8v
IFRoZSBpbml0IGZ1bmN0aW9uIHRha2VzIGFuIE5TSW50ZWdlciwgZXZlbiB0aG91Z2ggdGhlIGFj
Y2Vzc29yIHJldHVybnMgYSBsb25nIGxvbmcuCisgICAgICAgIC8vIEZvciB2YWx1ZXMgdGhhdCB3
b24ndCBmaXQgaW4gYW4gTlNJbnRlZ2VyLCBwYXNzIC0xIGluc3RlYWQuCisgICAgICAgIE5TSW50
ZWdlciBleHBlY3RlZENvbnRlbnRMZW5ndGg7CisgICAgICAgIGlmIChtX2V4cGVjdGVkQ29udGVu
dExlbmd0aCA8IDAgfHwgbV9leHBlY3RlZENvbnRlbnRMZW5ndGggPiBzdGQ6Om51bWVyaWNfbGlt
aXRzPE5TSW50ZWdlcj46Om1heCgpKQorICAgICAgICAgICAgZXhwZWN0ZWRDb250ZW50TGVuZ3Ro
ID0gLTE7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGV4cGVjdGVkQ29udGVudExlbmd0aCA9
IHN0YXRpY19jYXN0PE5TSW50ZWdlcj4obV9leHBlY3RlZENvbnRlbnRMZW5ndGgpOworCisgICAg
ICAgIE5TU3RyaW5nKiBlbmNvZGluZ05TU3RyaW5nID0gbnNTdHJpbmdOaWxJZkVtcHR5KG1fdGV4
dEVuY29kaW5nTmFtZSk7CisgICAgICAgIG1fbnNSZXNwb25zZSA9IGFkb3B0TlMoW1tOU1VSTFJl
c3BvbnNlIGFsbG9jXSBpbml0V2l0aFVSTDptX3VybCBNSU1FVHlwZTptX21pbWVUeXBlIGV4cGVj
dGVkQ29udGVudExlbmd0aDpleHBlY3RlZENvbnRlbnRMZW5ndGggdGV4dEVuY29kaW5nTmFtZTpl
bmNvZGluZ05TU3RyaW5nXSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvLyBGSVhN
RTogV2UgbG9zZSB0aGUgc3RhdHVzIHRleHQgYW5kIHRoZSBIVFRQIHZlcnNpb24gaGVyZS4KKyAg
ICBOU011dGFibGVEaWN0aW9uYXJ5KiBoZWFkZXJEaWN0aW9uYXJ5ID0gW05TTXV0YWJsZURpY3Rp
b25hcnkgZGljdGlvbmFyeV07CisgICAgZm9yIChhdXRvJiBoZWFkZXIgOiBtX2h0dHBIZWFkZXJG
aWVsZHMpCisgICAgICAgIFtoZWFkZXJEaWN0aW9uYXJ5IHNldE9iamVjdDooTlNTdHJpbmcgKilo
ZWFkZXIudmFsdWUgZm9yS2V5OihOU1N0cmluZyAqKWhlYWRlci5rZXldOworCisgICAgbV9uc1Jl
c3BvbnNlID0gYWRvcHROUyhbW05TSFRUUFVSTFJlc3BvbnNlIGFsbG9jXSBpbml0V2l0aFVSTDpt
X3VybCBzdGF0dXNDb2RlOm1faHR0cFN0YXR1c0NvZGUgSFRUUFZlcnNpb246KE5TU3RyaW5nKilr
Q0ZIVFRQVmVyc2lvbjFfMSBoZWFkZXJGaWVsZHM6aGVhZGVyRGljdGlvbmFyeV0pOworCisgICAg
Ly8gTWltZSB0eXBlIHNuaWZmaW5nIGRvZXNuJ3Qgd29yayB3aXRoIGEgc3ludGhlc2l6ZWQgcmVz
cG9uc2UuCisgICAgW21fbnNSZXNwb25zZS5nZXQoKSBfc2V0TUlNRVR5cGU6KE5TU3RyaW5nICop
bV9taW1lVHlwZV07Cit9CisKK0NlcnRpZmljYXRlSW5mbyBSZXNvdXJjZVJlc3BvbnNlOjpwbGF0
Zm9ybUNlcnRpZmljYXRlSW5mbygpIGNvbnN0Cit7CisgICAgQVNTRVJUKG1fbnNSZXNwb25zZSk7
CisgICAgYXV0byBjZlJlc3BvbnNlID0gW21fbnNSZXNwb25zZSBfQ0ZVUkxSZXNwb25zZV07Cisg
ICAgaWYgKCFjZlJlc3BvbnNlKQorICAgICAgICByZXR1cm4geyB9OworCisgICAgQ0ZEaWN0aW9u
YXJ5UmVmIGNvbnRleHQgPSBfQ0ZVUkxSZXNwb25zZUdldFNTTENlcnRpZmljYXRlQ29udGV4dChj
ZlJlc3BvbnNlKTsKKyAgICBpZiAoIWNvbnRleHQpCisgICAgICAgIHJldHVybiB7IH07CisKKyAg
ICBhdXRvIHRydXN0VmFsdWUgPSBDRkRpY3Rpb25hcnlHZXRWYWx1ZShjb250ZXh0LCBrQ0ZTdHJl
YW1Qcm9wZXJ0eVNTTFBlZXJUcnVzdCk7CisgICAgaWYgKCF0cnVzdFZhbHVlKQorICAgICAgICBy
ZXR1cm4geyB9OworICAgIEFTU0VSVChDRkdldFR5cGVJRCh0cnVzdFZhbHVlKSA9PSBTZWNUcnVz
dEdldFR5cGVJRCgpKTsKKyAgICBhdXRvIHRydXN0ID0gKFNlY1RydXN0UmVmKXRydXN0VmFsdWU7
CisKKyAgICBTZWNUcnVzdFJlc3VsdFR5cGUgdHJ1c3RSZXN1bHRUeXBlOworICAgIE9TU3RhdHVz
IHJlc3VsdCA9IFNlY1RydXN0R2V0VHJ1c3RSZXN1bHQodHJ1c3QsICZ0cnVzdFJlc3VsdFR5cGUp
OworICAgIGlmIChyZXN1bHQgIT0gZXJyU2VjU3VjY2VzcykKKyAgICAgICAgcmV0dXJuIHsgfTsK
KworICAgIGlmICh0cnVzdFJlc3VsdFR5cGUgPT0ga1NlY1RydXN0UmVzdWx0SW52YWxpZCkgewor
ICAgICAgICByZXN1bHQgPSBTZWNUcnVzdEV2YWx1YXRlKHRydXN0LCAmdHJ1c3RSZXN1bHRUeXBl
KTsKKyAgICAgICAgaWYgKHJlc3VsdCAhPSBlcnJTZWNTdWNjZXNzKQorICAgICAgICAgICAgcmV0
dXJuIHsgfTsKKyAgICB9CisKKyAgICBDRkluZGV4IGNvdW50ID0gU2VjVHJ1c3RHZXRDZXJ0aWZp
Y2F0ZUNvdW50KHRydXN0KTsKKyAgICBhdXRvIGNlcnRpZmljYXRlQ2hhaW4gPSBDRkFycmF5Q3Jl
YXRlTXV0YWJsZSgwLCBjb3VudCwgJmtDRlR5cGVBcnJheUNhbGxCYWNrcyk7CisgICAgZm9yIChD
RkluZGV4IGkgPSAwOyBpIDwgY291bnQ7IGkrKykKKyAgICAgICAgQ0ZBcnJheUFwcGVuZFZhbHVl
KGNlcnRpZmljYXRlQ2hhaW4sIFNlY1RydXN0R2V0Q2VydGlmaWNhdGVBdEluZGV4KHRydXN0LCBp
KSk7CisKKyAgICByZXR1cm4gQ2VydGlmaWNhdGVJbmZvKGFkb3B0Q0YoY2VydGlmaWNhdGVDaGFp
bikpOworfQorCisjaWYgVVNFKENGTkVUV09SSykKKworTlNVUkxSZXNwb25zZSAqUmVzb3VyY2VS
ZXNwb25zZTo6bnNVUkxSZXNwb25zZSgpIGNvbnN0Cit7CisgICAgaWYgKCFtX25zUmVzcG9uc2Ug
JiYgIW1fY2ZSZXNwb25zZSAmJiAhbV9pc051bGwpIHsKKyAgICAgICAgaW5pdE5TVVJMUmVzcG9u
c2UoKTsKKyAgICAgICAgbV9jZlJlc3BvbnNlID0gW21fbnNSZXNwb25zZS5nZXQoKSBfQ0ZVUkxS
ZXNwb25zZV07CisgICAgICAgIHJldHVybiBtX25zUmVzcG9uc2UuZ2V0KCk7CisgICAgfQorCisg
ICAgaWYgKCFtX2NmUmVzcG9uc2UpCisgICAgICAgIHJldHVybiBuaWw7CisKKyAgICBpZiAoIW1f
bnNSZXNwb25zZSkKKyAgICAgICAgbV9uc1Jlc3BvbnNlID0gW05TVVJMUmVzcG9uc2UgX3Jlc3Bv
bnNlV2l0aENGVVJMUmVzcG9uc2U6bV9jZlJlc3BvbnNlLmdldCgpXTsKKworICAgIHJldHVybiBt
X25zUmVzcG9uc2UuZ2V0KCk7Cit9CisKK1Jlc291cmNlUmVzcG9uc2U6OlJlc291cmNlUmVzcG9u
c2UoTlNVUkxSZXNwb25zZSogbnNSZXNwb25zZSkKKyAgICA6IG1faW5pdExldmVsKFVuaW5pdGlh
bGl6ZWQpCisgICAgLCBtX3BsYXRmb3JtUmVzcG9uc2VJc1VwVG9EYXRlKHRydWUpCisgICAgLCBt
X2NmUmVzcG9uc2UoW25zUmVzcG9uc2UgX0NGVVJMUmVzcG9uc2VdKQorICAgICwgbV9uc1Jlc3Bv
bnNlKG5zUmVzcG9uc2UpCit7CisgICAgbV9pc051bGwgPSAhbnNSZXNwb25zZTsKK30KKworI2Vs
c2UKKworc3RhdGljIE5TU3RyaW5nKiBjb25zdCBjb21tb25IZWFkZXJGaWVsZHNbXSA9IHsKKyAg
ICBAIkFnZSIsIEAiQ2FjaGUtQ29udHJvbCIsIEAiQ29udGVudC1UeXBlIiwgQCJEYXRlIiwgQCJF
dGFnIiwgQCJFeHBpcmVzIiwgQCJMYXN0LU1vZGlmaWVkIiwgQCJQcmFnbWEiCit9OworCitOU1VS
TFJlc3BvbnNlICpSZXNvdXJjZVJlc3BvbnNlOjpuc1VSTFJlc3BvbnNlKCkgY29uc3QKK3sKKyAg
ICBpZiAoIW1fbnNSZXNwb25zZSAmJiAhbV9pc051bGwpCisgICAgICAgIGluaXROU1VSTFJlc3Bv
bnNlKCk7CisgICAgcmV0dXJuIG1fbnNSZXNwb25zZS5nZXQoKTsKK30KKyAgICAKK3N0YXRpYyBO
U1N0cmluZyAqY29weU5TVVJMUmVzcG9uc2VTdGF0dXNMaW5lKE5TVVJMUmVzcG9uc2UgKnJlc3Bv
bnNlKQoreworICAgIENGVVJMUmVzcG9uc2VSZWYgY2ZSZXNwb25zZSA9IFtyZXNwb25zZSBfQ0ZV
UkxSZXNwb25zZV07CisgICAgaWYgKCFjZlJlc3BvbnNlKQorICAgICAgICByZXR1cm4gbmlsOwor
CisgICAgQ0ZIVFRQTWVzc2FnZVJlZiBjZkhUVFBNZXNzYWdlID0gQ0ZVUkxSZXNwb25zZUdldEhU
VFBSZXNwb25zZShjZlJlc3BvbnNlKTsKKyAgICBpZiAoIWNmSFRUUE1lc3NhZ2UpCisgICAgICAg
IHJldHVybiBuaWw7CisKKyAgICByZXR1cm4gKE5TU3RyaW5nICopQ0ZIVFRQTWVzc2FnZUNvcHlS
ZXNwb25zZVN0YXR1c0xpbmUoY2ZIVFRQTWVzc2FnZSk7Cit9CisKK3ZvaWQgUmVzb3VyY2VSZXNw
b25zZTo6cGxhdGZvcm1MYXp5SW5pdChJbml0TGV2ZWwgaW5pdExldmVsKQoreworICAgIGlmICht
X2luaXRMZXZlbCA+PSBpbml0TGV2ZWwpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChtX2lz
TnVsbCB8fCAhbV9uc1Jlc3BvbnNlKQorICAgICAgICByZXR1cm47CisgICAgCisgICAgaWYgKG1f
aW5pdExldmVsIDwgQ29tbW9uRmllbGRzT25seSAmJiBpbml0TGV2ZWwgPj0gQ29tbW9uRmllbGRz
T25seSkgeworICAgICAgICBOU0F1dG9yZWxlYXNlUG9vbCogcG9vbCA9IFtbTlNBdXRvcmVsZWFz
ZVBvb2wgYWxsb2NdIGluaXRdOworCisgICAgICAgIG1faHR0cEhlYWRlckZpZWxkcy5jbGVhcigp
OworICAgICAgICBtX3VybCA9IFttX25zUmVzcG9uc2UuZ2V0KCkgVVJMXTsKKyAgICAgICAgbV9t
aW1lVHlwZSA9IFttX25zUmVzcG9uc2UuZ2V0KCkgTUlNRVR5cGVdOworICAgICAgICBtX2V4cGVj
dGVkQ29udGVudExlbmd0aCA9IFttX25zUmVzcG9uc2UuZ2V0KCkgZXhwZWN0ZWRDb250ZW50TGVu
Z3RoXTsKKyAgICAgICAgbV90ZXh0RW5jb2RpbmdOYW1lID0gW21fbnNSZXNwb25zZS5nZXQoKSB0
ZXh0RW5jb2RpbmdOYW1lXTsKKworICAgICAgICAvLyBXb3JrYXJvdW5kIGZvciA8cmRhcjovL3By
b2JsZW0vODc1NzA4OD4sIGNhbiBiZSByZW1vdmVkIG9uY2UgdGhhdCBpcyBmaXhlZC4KKyAgICAg
ICAgdW5zaWduZWQgdGV4dEVuY29kaW5nTmFtZUxlbmd0aCA9IG1fdGV4dEVuY29kaW5nTmFtZS5s
ZW5ndGgoKTsKKyAgICAgICAgaWYgKHRleHRFbmNvZGluZ05hbWVMZW5ndGggPj0gMiAmJiBtX3Rl
eHRFbmNvZGluZ05hbWVbMFVdID09ICciJyAmJiBtX3RleHRFbmNvZGluZ05hbWVbdGV4dEVuY29k
aW5nTmFtZUxlbmd0aCAtIDFdID09ICciJykKKyAgICAgICAgICAgIG1fdGV4dEVuY29kaW5nTmFt
ZSA9IG1fdGV4dEVuY29kaW5nTmFtZS5zdHJpbmcoKS5zdWJzdHJpbmcoMSwgdGV4dEVuY29kaW5n
TmFtZUxlbmd0aCAtIDIpOworCisgICAgICAgIGlmIChbbV9uc1Jlc3BvbnNlLmdldCgpIGlzS2lu
ZE9mQ2xhc3M6W05TSFRUUFVSTFJlc3BvbnNlIGNsYXNzXV0pIHsKKyAgICAgICAgICAgIE5TSFRU
UFVSTFJlc3BvbnNlICpodHRwUmVzcG9uc2UgPSAoTlNIVFRQVVJMUmVzcG9uc2UgKiltX25zUmVz
cG9uc2UuZ2V0KCk7CisKKyAgICAgICAgICAgIG1faHR0cFN0YXR1c0NvZGUgPSBbaHR0cFJlc3Bv
bnNlIHN0YXR1c0NvZGVdOworICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAoaW5pdExldmVs
IDwgQWxsRmllbGRzKSB7CisgICAgICAgICAgICAgICAgTlNEaWN0aW9uYXJ5ICpoZWFkZXJzID0g
W2h0dHBSZXNwb25zZSBhbGxIZWFkZXJGaWVsZHNdOworICAgICAgICAgICAgICAgIGZvciAoTlNT
dHJpbmcgKm5hbWUgOiBjb21tb25IZWFkZXJGaWVsZHMpIHsKKyAgICAgICAgICAgICAgICAgICAg
aWYgKE5TU3RyaW5nKiBoZWFkZXJWYWx1ZSA9IFtoZWFkZXJzIG9iamVjdEZvcktleTpuYW1lXSkK
KyAgICAgICAgICAgICAgICAgICAgICAgIG1faHR0cEhlYWRlckZpZWxkcy5zZXQobmFtZSwgaGVh
ZGVyVmFsdWUpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBl
bHNlCisgICAgICAgICAgICBtX2h0dHBTdGF0dXNDb2RlID0gMDsKKyAgICAgICAgCisgICAgICAg
IFtwb29sIGRyYWluXTsKKyAgICB9CisKKyAgICBpZiAobV9pbml0TGV2ZWwgPCBBbGxGaWVsZHMg
JiYgaW5pdExldmVsID09IEFsbEZpZWxkcykgeworICAgICAgICBpZiAoW21fbnNSZXNwb25zZS5n
ZXQoKSBpc0tpbmRPZkNsYXNzOltOU0hUVFBVUkxSZXNwb25zZSBjbGFzc11dKSB7CisgICAgICAg
ICAgICBOU0F1dG9yZWxlYXNlUG9vbCogcG9vbCA9IFtbTlNBdXRvcmVsZWFzZVBvb2wgYWxsb2Nd
IGluaXRdOworCisgICAgICAgICAgICBOU0hUVFBVUkxSZXNwb25zZSAqaHR0cFJlc3BvbnNlID0g
KE5TSFRUUFVSTFJlc3BvbnNlICopbV9uc1Jlc3BvbnNlLmdldCgpOworICAgICAgICAgICAgaWYg
KFJldGFpblB0cjxOU1N0cmluZz4gaHR0cFN0YXR1c0xpbmUgPSBhZG9wdE5TKGNvcHlOU1VSTFJl
c3BvbnNlU3RhdHVzTGluZShodHRwUmVzcG9uc2UpKSkKKyAgICAgICAgICAgICAgICBtX2h0dHBT
dGF0dXNUZXh0ID0gZXh0cmFjdFJlYXNvblBocmFzZUZyb21IVFRQU3RhdHVzTGluZShodHRwU3Rh
dHVzTGluZS5nZXQoKSk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgbV9odHRw
U3RhdHVzVGV4dCA9IEF0b21pY1N0cmluZygiT0siLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKTsKKworICAgICAgICAgICAgTlNEaWN0aW9uYXJ5ICpoZWFkZXJzID0gW2h0dHBS
ZXNwb25zZSBhbGxIZWFkZXJGaWVsZHNdOworICAgICAgICAgICAgZm9yIChOU1N0cmluZyAqbmFt
ZSBpbiBoZWFkZXJzKQorICAgICAgICAgICAgICAgIG1faHR0cEhlYWRlckZpZWxkcy5zZXQobmFt
ZSwgW2hlYWRlcnMgb2JqZWN0Rm9yS2V5Om5hbWVdKTsKKyAgICAgICAgICAgIAorICAgICAgICAg
ICAgW3Bvb2wgZHJhaW5dOworICAgICAgICB9CisgICAgfQorCisgICAgbV9pbml0TGV2ZWwgPSBp
bml0TGV2ZWw7Cit9CisKK1N0cmluZyBSZXNvdXJjZVJlc3BvbnNlOjpwbGF0Zm9ybVN1Z2dlc3Rl
ZEZpbGVuYW1lKCkgY29uc3QKK3sKKyAgICByZXR1cm4gW25zVVJMUmVzcG9uc2UoKSBzdWdnZXN0
ZWRGaWxlbmFtZV07Cit9CisKK2Jvb2wgUmVzb3VyY2VSZXNwb25zZTo6cGxhdGZvcm1Db21wYXJl
KGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIGEsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIGIpCit7
CisgICAgcmV0dXJuIGEubnNVUkxSZXNwb25zZSgpID09IGIubnNVUkxSZXNwb25zZSgpOworfQor
CisjZW5kaWYgLy8gVVNFKENGTkVUV09SSykKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisj
ZW5kaWYgLy8gUExBVEZPUk0oQ09DT0EpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL2lvcy9RdWlja0xvb2suaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvaW9zL1F1aWNrTG9vay5oCmluZGV4IDBkN2U4MjVlZjJiMTE4ODZiMzhkYmIzY2I5M2Uw
MDBiOGJkMmVlZTUuLjQ0ODI0ZGEwMjU4ZGNjMTc0YmRlOWJlNzU3NmE1ZmNmMjE2YzA1OTYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvaW9zL1F1aWNrTG9vay5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvaW9zL1F1aWNrTG9vay5oCkBA
IC0zMyw2ICszMywxMCBAQAogI2ltcG9ydCA8b2JqYy9vYmpjLXJ1bnRpbWUuaD4KICNpbXBvcnQg
PHd0Zi9SZWZQdHIuaD4KIAorI2lmIFVTRShDRk5FVFdPUkspCisjaW5jbHVkZSAiQ0ZOZXR3b3Jr
U1BJLmgiCisjZW5kaWYKKwogT0JKQ19DTEFTUyBOU0RhdGE7CiBPQkpDX0NMQVNTIE5TRGljdGlv
bmFyeTsKIE9CSkNfQ0xBU1MgTlNGaWxlSGFuZGxlOwpAQCAtNDQsMTEgKzQ4LDYgQEAgT0JKQ19D
TEFTUyBOU1VSTFJlcXVlc3Q7CiBPQkpDX0NMQVNTIE5TVVJMUmVzcG9uc2U7CiBPQkpDX0NMQVNT
IFFMUHJldmlld0NvbnZlcnRlcjsKIAotI2lmIFVTRShDRk5FVFdPUkspCi10eXBlZGVmIHN0cnVj
dCBfQ0ZVUkxSZXNwb25zZSogQ0ZVUkxSZXNwb25zZVJlZjsKLXR5cGVkZWYgc3RydWN0IF9DRlVS
TENvbm5lY3Rpb24qIENGVVJMQ29ubmVjdGlvblJlZjsKLSNlbmRpZgotCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIGNsYXNzIFF1aWNrTG9va0hhbmRsZUNsaWVudDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvaW9zL1F1aWNrTG9vay5tbSBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvaW9zL1F1aWNrTG9vay5tbQppbmRleCAxN2VkODY0NmE1OTQ0
YTBmMDFlZDU2ODcwOTdkOTdjYWM3MjA4NGY0Li45NmY1MGRmMDc0MDE4NDY0MGE4ZjNlYTYwNDI0
NTkyZjZhNWE5NmEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L2lvcy9RdWlja0xvb2subW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9p
b3MvUXVpY2tMb29rLm1tCkBAIC00NiwxNSArNDYsNiBAQAogI2ltcG9ydCA8d3RmL1ZlY3Rvci5o
PgogI2ltcG9ydCA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKLSNpZiBVU0UoQ0ZORVRXT1JLKQot
I2ltcG9ydCA8Q0ZOZXR3b3JrL0NGVVJMQ29ubmVjdGlvbi5oPgotCi1AaW50ZXJmYWNlIE5TVVJM
UmVzcG9uc2UgKFF1aWNrTG9va0RldGFpbHMpCi0rKE5TVVJMUmVzcG9uc2UgKilfcmVzcG9uc2VX
aXRoQ0ZVUkxSZXNwb25zZTooQ0ZVUkxSZXNwb25zZVJlZilyZXNwb25zZTsKLS0oQ0ZVUkxSZXNw
b25zZVJlZilfQ0ZVUkxSZXNwb25zZTsKLUBlbmQKLSNlbmRpZgotCiB1c2luZyBuYW1lc3BhY2Ug
V2ViQ29yZTsKIAogTlNTZXQgKldlYkNvcmU6OlFMUHJldmlld0dldFN1cHBvcnRlZE1JTUVUeXBl
c1NldCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2lvcy9X
ZWJDb3JlVVJMUmVzcG9uc2VJT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L2lvcy9XZWJDb3JlVVJMUmVzcG9uc2VJT1MubW0KaW5kZXggYTYyZDFiNzI5ZTExODRlZWQwMDQy
YzM5MDU0MmRiNzNmOTU5OGIxZC4uZDA2OGY5MTdlMmRkYzc3ZTEyNGI5YTAwMDA0YjRiY2U2MjU3
NWYyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9pb3MvV2Vi
Q29yZVVSTFJlc3BvbnNlSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvaW9zL1dlYkNvcmVVUkxSZXNwb25zZUlPUy5tbQpAQCAtNDgsNyArNDgsNyBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIHZvaWQgYWRqdXN0TUlNRVR5cGVJZk5lY2Vzc2FyeShDRlVSTFJlc3Bv
bnNlUmVmIGNmUmVzcG9uc2UpCiB7Ci0gICAgUmV0YWluUHRyPENGU3RyaW5nUmVmPiBtaW1lVHlw
ZSA9IHdrR2V0Q0ZVUkxSZXNwb25zZU1JTUVUeXBlKGNmUmVzcG9uc2UpOworICAgIFJldGFpblB0
cjxDRlN0cmluZ1JlZj4gbWltZVR5cGUgPSBDRlVSTFJlc3BvbnNlR2V0TUlNRVR5cGUoY2ZSZXNw
b25zZSk7CiAgICAgUmV0YWluUHRyPENGU3RyaW5nUmVmPiB1cGRhdGVkTUlNRVR5cGUgPSBtaW1l
VHlwZTsKICAgICBpZiAoIXVwZGF0ZWRNSU1FVHlwZSkKICAgICAgICAgdXBkYXRlZE1JTUVUeXBl
ID0gZGVmYXVsdE1JTUVUeXBlKCkuY3JlYXRlQ0ZTdHJpbmcoKTsKQEAgLTU3LDEyICs1NywxMSBA
QCB2b2lkIGFkanVzdE1JTUVUeXBlSWZOZWNlc3NhcnkoQ0ZVUkxSZXNwb25zZVJlZiBjZlJlc3Bv
bnNlKQogICAgIC8vIFdlIG11c3QgZW5zdXJlIHRoYXQgdGhlIE1JTUUgdHlwZSBpcyBjb3JyZWN0
LCBzbyB0aGF0IFF1aWNrTG9vaydzIHdlYiBwbHVnaW4gaXMgY2FsbGVkIHdoZW4gbmVlZGVkLgog
ICAgIC8vIFdlIGZpbHRlciB0aGUgYmFzaWMgTUlNRSB0eXBlcyBzbyB0aGF0IHdlIGRvbid0IGRv
IHVubmVjZXNzYXJ5IHdvcmsgaW4gc3RhbmRhcmQgYnJvd3Npbmcgc2l0dWF0aW9ucy4KICAgICBp
ZiAoc2hvdWxkVXNlUXVpY2tMb29rRm9yTUlNRVR5cGUoKE5TU3RyaW5nICopdXBkYXRlZE1JTUVU
eXBlLmdldCgpKSkgewotICAgICAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IHN1Z2dlc3RlZEZp
bGVuYW1lID0gYWRvcHRDRih3a0NvcHlDRlVSTFJlc3BvbnNlU3VnZ2VzdGVkRmlsZW5hbWUoY2ZS
ZXNwb25zZSkpOworICAgICAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IHN1Z2dlc3RlZEZpbGVu
YW1lID0gYWRvcHRDRihDRlVSTFJlc3BvbnNlQ29weVN1Z2dlc3RlZEZpbGVuYW1lKGNmUmVzcG9u
c2UpKTsKICAgICAgICAgUmV0YWluUHRyPENGU3RyaW5nUmVmPiBxdWlja0xvb2tNSU1FVHlwZSA9
IGFkb3B0Q0YoKENGU3RyaW5nUmVmKVFMVHlwZUNvcHlCZXN0TWltZVR5cGVGb3JGaWxlTmFtZUFu
ZE1pbWVUeXBlKChOU1N0cmluZyAqKXN1Z2dlc3RlZEZpbGVuYW1lLmdldCgpLCAoTlNTdHJpbmcg
KiltaW1lVHlwZS5nZXQoKSkpOwogICAgICAgICBpZiAoIXF1aWNrTG9va01JTUVUeXBlKSB7Ci0g
ICAgICAgICAgICBDRlVSTFJlZiB1cmwgPSB3a0dldENGVVJMUmVzcG9uc2VVUkwoY2ZSZXNwb25z
ZSk7Ci0gICAgICAgICAgICBOU1VSTCAqbnNVUkwgPSAoTlNVUkwgKil1cmw7Ci0gICAgICAgICAg
ICBpZiAoW25zVVJMIGlzRmlsZVVSTF0pIHsKKyAgICAgICAgICAgIGF1dG8gdXJsID0gQ0ZVUkxS
ZXNwb25zZUdldFVSTChjZlJlc3BvbnNlKTsKKyAgICAgICAgICAgIGlmIChbKE5TVVJMICopdXJs
IGlzRmlsZVVSTF0pIHsKICAgICAgICAgICAgICAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IGV4
dGVuc2lvbiA9IGFkb3B0Q0YoQ0ZVUkxDb3B5UGF0aEV4dGVuc2lvbih1cmwpKTsKICAgICAgICAg
ICAgICAgICBpZiAoZXh0ZW5zaW9uKSB7CiAgICAgICAgICAgICAgICAgICAgIFJldGFpblB0cjxD
RlN0cmluZ1JlZj4gdXRpID0gYWRvcHRDRihVVFR5cGVDcmVhdGVQcmVmZXJyZWRJZGVudGlmaWVy
Rm9yVGFnKGtVVFRhZ0NsYXNzRmlsZW5hbWVFeHRlbnNpb24sIGV4dGVuc2lvbi5nZXQoKSwgbnVs
bHB0cikpOwpAQCAtNzYsNyArNzUsNyBAQCB2b2lkIGFkanVzdE1JTUVUeXBlSWZOZWNlc3Nhcnko
Q0ZVUkxSZXNwb25zZVJlZiBjZlJlc3BvbnNlKQogICAgIH0KICNlbmRpZiAvLyBVU0UoUVVJQ0tf
TE9PSykKICAgICBpZiAoIW1pbWVUeXBlIHx8IENGU3RyaW5nQ29tcGFyZShtaW1lVHlwZS5nZXQo
KSwgdXBkYXRlZE1JTUVUeXBlLmdldCgpLCBrQ0ZDb21wYXJlQ2FzZUluc2Vuc2l0aXZlKSAhPSBr
Q0ZDb21wYXJlRXF1YWxUbykKLSAgICAgICAgd2tTZXRDRlVSTFJlc3BvbnNlTUlNRVR5cGUoY2ZS
ZXNwb25zZSwgdXBkYXRlZE1JTUVUeXBlLmdldCgpKTsKKyAgICAgICAgQ0ZVUkxSZXNwb25zZVNl
dE1JTUVUeXBlKGNmUmVzcG9uc2UsIHVwZGF0ZWRNSU1FVHlwZS5nZXQoKSk7CiB9CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9tYWMvUmVzb3VyY2VIYW5kbGVNYWMubW0KaW5kZXggY2RiZTAyNThkNDAxMjFmMzE0
MGI0ZjQ3OTQwY2ZiOTNmZTc3MTk2NC4uN2M5N2IyYWFlMGZkMjg4MWVjZjhiYzVhM2U3OTlkNGQ1
YTA5YmUxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMv
UmVzb3VyY2VIYW5kbGVNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9tYWMvUmVzb3VyY2VIYW5kbGVNYWMubW0KQEAgLTE2OCw3ICsxNjgsNyBAQCB2b2lkIFJlc291
cmNlSGFuZGxlOjpjcmVhdGVOU1VSTENvbm5lY3Rpb24oaWQgZGVsZWdhdGUsIGJvb2wgc2hvdWxk
VXNlQ3JlZGVudGlhbAogICAgIE5TVVJMUmVxdWVzdCAqbnNSZXF1ZXN0ID0gZmlyc3RSZXF1ZXN0
KCkubnNVUkxSZXF1ZXN0KFVwZGF0ZUhUVFBCb2R5KTsKICAgICBpZiAoIXNob3VsZENvbnRlbnRT
bmlmZikgewogICAgICAgICBOU011dGFibGVVUkxSZXF1ZXN0ICptdXRhYmxlUmVxdWVzdCA9IFtb
bnNSZXF1ZXN0IG11dGFibGVDb3B5XSBhdXRvcmVsZWFzZV07Ci0gICAgICAgIHdrU2V0TlNVUkxS
ZXF1ZXN0U2hvdWxkQ29udGVudFNuaWZmKG11dGFibGVSZXF1ZXN0LCBOTyk7CisgICAgICAgIFtt
dXRhYmxlUmVxdWVzdCBfc2V0UHJvcGVydHk6QChOTykgZm9yS2V5OihOU1N0cmluZyAqKV9rQ0ZV
UkxDb25uZWN0aW9uUHJvcGVydHlTaG91bGRTbmlmZl07CiAgICAgICAgIG5zUmVxdWVzdCA9IG11
dGFibGVSZXF1ZXN0OwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9tYWMvUmVzb3VyY2VSZXNwb25zZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlUmVzcG9uc2VNYWMubW0KZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDZmYTAwZTI0MzVlODNlNzlmOTdkNDMwODYyZGIwYjQxZDM2NjUzN2Iu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VSZXNwb25zZU1hYy5tbQorKysgL2Rl
di9udWxsCkBAIC0xLDE5NSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA2IEFwcGxl
IEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLiAKLSAqLwotCi0jaW1wb3J0ICJjb25maWcuaCIKLSNpbXBvcnQgIlJlc291cmNlUmVz
cG9uc2UuaCIKLQotI2ltcG9ydCAiSFRUUFBhcnNlcnMuaCIKLSNpbXBvcnQgIldlYkNvcmVVUkxS
ZXNwb25zZS5oIgotI2ltcG9ydCAiV2ViQ29yZVN5c3RlbUludGVyZmFjZS5oIgotI2ltcG9ydCA8
Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+Ci0jaW1wb3J0IDxsaW1pdHM+Ci0jaW1wb3J0IDx3dGYv
U3RkTGliRXh0cmFzLmg+Ci0KLUBpbnRlcmZhY2UgTlNVUkxSZXNwb25zZSAoV2ViTlNVUkxSZXNw
b25zZURldGFpbHMpCi0tIChOU1RpbWVJbnRlcnZhbClfY2FsY3VsYXRlZEV4cGlyYXRpb247Ci0t
IChpZClfaW5pdFdpdGhDRlVSTFJlc3BvbnNlOihDRlVSTFJlc3BvbnNlUmVmKXJlc3BvbnNlOwot
LSAoQ0ZVUkxSZXNwb25zZVJlZikgX0NGVVJMUmVzcG9uc2U7Ci0rIChpZClfcmVzcG9uc2VXaXRo
Q0ZVUkxSZXNwb25zZTooQ0ZVUkxSZXNwb25zZVJlZilyZXNwb25zZTsKLUBlbmQKLQotCi1uYW1l
c3BhY2UgV2ViQ29yZSB7Ci0KLXZvaWQgUmVzb3VyY2VSZXNwb25zZTo6aW5pdE5TVVJMUmVzcG9u
c2UoKSBjb25zdAotewotICAgIGlmICghbV9odHRwU3RhdHVzQ29kZSB8fCAhbV91cmwucHJvdG9j
b2xJc0luSFRUUEZhbWlseSgpKSB7Ci0gICAgICAgIC8vIFdvcmsgYXJvdW5kIGEgbWlzdGFrZSBp
biB0aGUgTlNVUkxSZXNwb25zZSBjbGFzcyAtIDxyZGFyOi8vcHJvYmxlbS82ODc1MjE5Pi4KLSAg
ICAgICAgLy8gVGhlIGluaXQgZnVuY3Rpb24gdGFrZXMgYW4gTlNJbnRlZ2VyLCBldmVuIHRob3Vn
aCB0aGUgYWNjZXNzb3IgcmV0dXJucyBhIGxvbmcgbG9uZy4KLSAgICAgICAgLy8gRm9yIHZhbHVl
cyB0aGF0IHdvbid0IGZpdCBpbiBhbiBOU0ludGVnZXIsIHBhc3MgLTEgaW5zdGVhZC4KLSAgICAg
ICAgTlNJbnRlZ2VyIGV4cGVjdGVkQ29udGVudExlbmd0aDsKLSAgICAgICAgaWYgKG1fZXhwZWN0
ZWRDb250ZW50TGVuZ3RoIDwgMCB8fCBtX2V4cGVjdGVkQ29udGVudExlbmd0aCA+IHN0ZDo6bnVt
ZXJpY19saW1pdHM8TlNJbnRlZ2VyPjo6bWF4KCkpCi0gICAgICAgICAgICBleHBlY3RlZENvbnRl
bnRMZW5ndGggPSAtMTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgZXhwZWN0ZWRDb250ZW50
TGVuZ3RoID0gc3RhdGljX2Nhc3Q8TlNJbnRlZ2VyPihtX2V4cGVjdGVkQ29udGVudExlbmd0aCk7
Ci0KLSAgICAgICAgTlNTdHJpbmcqIGVuY29kaW5nTlNTdHJpbmcgPSBuc1N0cmluZ05pbElmRW1w
dHkobV90ZXh0RW5jb2RpbmdOYW1lKTsKLSAgICAgICAgbV9uc1Jlc3BvbnNlID0gYWRvcHROUyhb
W05TVVJMUmVzcG9uc2UgYWxsb2NdIGluaXRXaXRoVVJMOm1fdXJsIE1JTUVUeXBlOm1fbWltZVR5
cGUgZXhwZWN0ZWRDb250ZW50TGVuZ3RoOmV4cGVjdGVkQ29udGVudExlbmd0aCB0ZXh0RW5jb2Rp
bmdOYW1lOmVuY29kaW5nTlNTdHJpbmddKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAg
IC8vIEZJWE1FOiBXZSBsb3NlIHRoZSBzdGF0dXMgdGV4dCBhbmQgdGhlIEhUVFAgdmVyc2lvbiBo
ZXJlLgotICAgIE5TTXV0YWJsZURpY3Rpb25hcnkqIGhlYWRlckRpY3Rpb25hcnkgPSBbTlNNdXRh
YmxlRGljdGlvbmFyeSBkaWN0aW9uYXJ5XTsKLSAgICBmb3IgKGF1dG8mIGhlYWRlciA6IG1faHR0
cEhlYWRlckZpZWxkcykKLSAgICAgICAgW2hlYWRlckRpY3Rpb25hcnkgc2V0T2JqZWN0OihOU1N0
cmluZyAqKWhlYWRlci52YWx1ZSBmb3JLZXk6KE5TU3RyaW5nICopaGVhZGVyLmtleV07Ci0KLSAg
ICBtX25zUmVzcG9uc2UgPSBhZG9wdE5TKFtbTlNIVFRQVVJMUmVzcG9uc2UgYWxsb2NdIGluaXRX
aXRoVVJMOm1fdXJsIHN0YXR1c0NvZGU6bV9odHRwU3RhdHVzQ29kZSBIVFRQVmVyc2lvbjooTlNT
dHJpbmcqKWtDRkhUVFBWZXJzaW9uMV8xIGhlYWRlckZpZWxkczpoZWFkZXJEaWN0aW9uYXJ5XSk7
Ci0KLSAgICAvLyBNaW1lIHR5cGUgc25pZmZpbmcgZG9lc24ndCB3b3JrIHdpdGggYSBzeW50aGVz
aXplZCByZXNwb25zZS4KLSAgICBbbV9uc1Jlc3BvbnNlLmdldCgpIF9zZXRNSU1FVHlwZTooTlNT
dHJpbmcgKiltX21pbWVUeXBlXTsKLX0KLQotI2lmIFVTRShDRk5FVFdPUkspCi0KLU5TVVJMUmVz
cG9uc2UgKlJlc291cmNlUmVzcG9uc2U6Om5zVVJMUmVzcG9uc2UoKSBjb25zdAotewotICAgIGlm
ICghbV9uc1Jlc3BvbnNlICYmICFtX2NmUmVzcG9uc2UgJiYgIW1faXNOdWxsKSB7Ci0gICAgICAg
IGluaXROU1VSTFJlc3BvbnNlKCk7Ci0gICAgICAgIG1fY2ZSZXNwb25zZSA9IFttX25zUmVzcG9u
c2UuZ2V0KCkgX0NGVVJMUmVzcG9uc2VdOwotICAgICAgICByZXR1cm4gbV9uc1Jlc3BvbnNlLmdl
dCgpOwotICAgIH0KLQotICAgIGlmICghbV9jZlJlc3BvbnNlKQotICAgICAgICByZXR1cm4gbmls
OwotCi0gICAgaWYgKCFtX25zUmVzcG9uc2UpCi0gICAgICAgIG1fbnNSZXNwb25zZSA9IFtOU1VS
TFJlc3BvbnNlIF9yZXNwb25zZVdpdGhDRlVSTFJlc3BvbnNlOm1fY2ZSZXNwb25zZS5nZXQoKV07
Ci0KLSAgICByZXR1cm4gbV9uc1Jlc3BvbnNlLmdldCgpOwotfQotCi1SZXNvdXJjZVJlc3BvbnNl
OjpSZXNvdXJjZVJlc3BvbnNlKE5TVVJMUmVzcG9uc2UqIG5zUmVzcG9uc2UpCi0gICAgOiBtX2lu
aXRMZXZlbChVbmluaXRpYWxpemVkKQotICAgICwgbV9wbGF0Zm9ybVJlc3BvbnNlSXNVcFRvRGF0
ZSh0cnVlKQotICAgICwgbV9jZlJlc3BvbnNlKFtuc1Jlc3BvbnNlIF9DRlVSTFJlc3BvbnNlXSkK
LSAgICAsIG1fbnNSZXNwb25zZShuc1Jlc3BvbnNlKQotewotICAgIG1faXNOdWxsID0gIW5zUmVz
cG9uc2U7Ci19Ci0KLSNlbHNlCi0KLXN0YXRpYyBOU1N0cmluZyogY29uc3QgY29tbW9uSGVhZGVy
RmllbGRzW10gPSB7Ci0gICAgQCJBZ2UiLCBAIkNhY2hlLUNvbnRyb2wiLCBAIkNvbnRlbnQtVHlw
ZSIsIEAiRGF0ZSIsIEAiRXRhZyIsIEAiRXhwaXJlcyIsIEAiTGFzdC1Nb2RpZmllZCIsIEAiUHJh
Z21hIgotfTsKLQotTlNVUkxSZXNwb25zZSAqUmVzb3VyY2VSZXNwb25zZTo6bnNVUkxSZXNwb25z
ZSgpIGNvbnN0Ci17Ci0gICAgaWYgKCFtX25zUmVzcG9uc2UgJiYgIW1faXNOdWxsKQotICAgICAg
ICBpbml0TlNVUkxSZXNwb25zZSgpOwotICAgIHJldHVybiBtX25zUmVzcG9uc2UuZ2V0KCk7Ci19
Ci0KLXZvaWQgUmVzb3VyY2VSZXNwb25zZTo6cGxhdGZvcm1MYXp5SW5pdChJbml0TGV2ZWwgaW5p
dExldmVsKQotewotICAgIGlmIChtX2luaXRMZXZlbCA+PSBpbml0TGV2ZWwpCi0gICAgICAgIHJl
dHVybjsKLQotICAgIGlmIChtX2lzTnVsbCB8fCAhbV9uc1Jlc3BvbnNlKQotICAgICAgICByZXR1
cm47Ci0gICAgCi0gICAgaWYgKG1faW5pdExldmVsIDwgQ29tbW9uRmllbGRzT25seSAmJiBpbml0
TGV2ZWwgPj0gQ29tbW9uRmllbGRzT25seSkgewotICAgICAgICBOU0F1dG9yZWxlYXNlUG9vbCog
cG9vbCA9IFtbTlNBdXRvcmVsZWFzZVBvb2wgYWxsb2NdIGluaXRdOwotCi0gICAgICAgIG1faHR0
cEhlYWRlckZpZWxkcy5jbGVhcigpOwotICAgICAgICBtX3VybCA9IFttX25zUmVzcG9uc2UuZ2V0
KCkgVVJMXTsKLSAgICAgICAgbV9taW1lVHlwZSA9IFttX25zUmVzcG9uc2UuZ2V0KCkgTUlNRVR5
cGVdOwotICAgICAgICBtX2V4cGVjdGVkQ29udGVudExlbmd0aCA9IFttX25zUmVzcG9uc2UuZ2V0
KCkgZXhwZWN0ZWRDb250ZW50TGVuZ3RoXTsKLSAgICAgICAgbV90ZXh0RW5jb2RpbmdOYW1lID0g
W21fbnNSZXNwb25zZS5nZXQoKSB0ZXh0RW5jb2RpbmdOYW1lXTsKLQotICAgICAgICAvLyBXb3Jr
YXJvdW5kIGZvciA8cmRhcjovL3Byb2JsZW0vODc1NzA4OD4sIGNhbiBiZSByZW1vdmVkIG9uY2Ug
dGhhdCBpcyBmaXhlZC4KLSAgICAgICAgdW5zaWduZWQgdGV4dEVuY29kaW5nTmFtZUxlbmd0aCA9
IG1fdGV4dEVuY29kaW5nTmFtZS5sZW5ndGgoKTsKLSAgICAgICAgaWYgKHRleHRFbmNvZGluZ05h
bWVMZW5ndGggPj0gMiAmJiBtX3RleHRFbmNvZGluZ05hbWVbMFVdID09ICciJyAmJiBtX3RleHRF
bmNvZGluZ05hbWVbdGV4dEVuY29kaW5nTmFtZUxlbmd0aCAtIDFdID09ICciJykKLSAgICAgICAg
ICAgIG1fdGV4dEVuY29kaW5nTmFtZSA9IG1fdGV4dEVuY29kaW5nTmFtZS5zdHJpbmcoKS5zdWJz
dHJpbmcoMSwgdGV4dEVuY29kaW5nTmFtZUxlbmd0aCAtIDIpOwotCi0gICAgICAgIGlmIChbbV9u
c1Jlc3BvbnNlLmdldCgpIGlzS2luZE9mQ2xhc3M6W05TSFRUUFVSTFJlc3BvbnNlIGNsYXNzXV0p
IHsKLSAgICAgICAgICAgIE5TSFRUUFVSTFJlc3BvbnNlICpodHRwUmVzcG9uc2UgPSAoTlNIVFRQ
VVJMUmVzcG9uc2UgKiltX25zUmVzcG9uc2UuZ2V0KCk7Ci0KLSAgICAgICAgICAgIG1faHR0cFN0
YXR1c0NvZGUgPSBbaHR0cFJlc3BvbnNlIHN0YXR1c0NvZGVdOwotICAgICAgICAgICAgCi0gICAg
ICAgICAgICBpZiAoaW5pdExldmVsIDwgQWxsRmllbGRzKSB7Ci0gICAgICAgICAgICAgICAgTlNE
aWN0aW9uYXJ5ICpoZWFkZXJzID0gW2h0dHBSZXNwb25zZSBhbGxIZWFkZXJGaWVsZHNdOwotICAg
ICAgICAgICAgICAgIGZvciAoTlNTdHJpbmcgKm5hbWUgOiBjb21tb25IZWFkZXJGaWVsZHMpIHsK
LSAgICAgICAgICAgICAgICAgICAgaWYgKE5TU3RyaW5nKiBoZWFkZXJWYWx1ZSA9IFtoZWFkZXJz
IG9iamVjdEZvcktleTpuYW1lXSkKLSAgICAgICAgICAgICAgICAgICAgICAgIG1faHR0cEhlYWRl
ckZpZWxkcy5zZXQobmFtZSwgaGVhZGVyVmFsdWUpOwotICAgICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgIH0KLSAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICBtX2h0dHBTdGF0dXNDb2RlID0g
MDsKLSAgICAgICAgCi0gICAgICAgIFtwb29sIGRyYWluXTsKLSAgICB9Ci0KLSAgICBpZiAobV9p
bml0TGV2ZWwgPCBBbGxGaWVsZHMgJiYgaW5pdExldmVsID09IEFsbEZpZWxkcykgewotICAgICAg
ICBpZiAoW21fbnNSZXNwb25zZS5nZXQoKSBpc0tpbmRPZkNsYXNzOltOU0hUVFBVUkxSZXNwb25z
ZSBjbGFzc11dKSB7Ci0gICAgICAgICAgICBOU0F1dG9yZWxlYXNlUG9vbCogcG9vbCA9IFtbTlNB
dXRvcmVsZWFzZVBvb2wgYWxsb2NdIGluaXRdOwotCi0gICAgICAgICAgICBOU0hUVFBVUkxSZXNw
b25zZSAqaHR0cFJlc3BvbnNlID0gKE5TSFRUUFVSTFJlc3BvbnNlICopbV9uc1Jlc3BvbnNlLmdl
dCgpOwotICAgICAgICAgICAgaWYgKFJldGFpblB0cjxOU1N0cmluZz4gaHR0cFN0YXR1c0xpbmUg
PSBhZG9wdE5TKHdrQ29weU5TVVJMUmVzcG9uc2VTdGF0dXNMaW5lKGh0dHBSZXNwb25zZSkpKQot
ICAgICAgICAgICAgICAgIG1faHR0cFN0YXR1c1RleHQgPSBleHRyYWN0UmVhc29uUGhyYXNlRnJv
bUhUVFBTdGF0dXNMaW5lKGh0dHBTdGF0dXNMaW5lLmdldCgpKTsKLSAgICAgICAgICAgIGVsc2UK
LSAgICAgICAgICAgICAgICBtX2h0dHBTdGF0dXNUZXh0ID0gQXRvbWljU3RyaW5nKCJPSyIsIEF0
b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotCi0gICAgICAgICAgICBOU0RpY3Rp
b25hcnkgKmhlYWRlcnMgPSBbaHR0cFJlc3BvbnNlIGFsbEhlYWRlckZpZWxkc107Ci0gICAgICAg
ICAgICBmb3IgKE5TU3RyaW5nICpuYW1lIGluIGhlYWRlcnMpCi0gICAgICAgICAgICAgICAgbV9o
dHRwSGVhZGVyRmllbGRzLnNldChuYW1lLCBbaGVhZGVycyBvYmplY3RGb3JLZXk6bmFtZV0pOwot
ICAgICAgICAgICAgCi0gICAgICAgICAgICBbcG9vbCBkcmFpbl07Ci0gICAgICAgIH0KLSAgICB9
Ci0KLSAgICBtX2luaXRMZXZlbCA9IGluaXRMZXZlbDsKLX0KLQotQ2VydGlmaWNhdGVJbmZvIFJl
c291cmNlUmVzcG9uc2U6OnBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvKCkgY29uc3QKLXsKLSAgICBB
U1NFUlQobV9uc1Jlc3BvbnNlKTsKLSAgICByZXR1cm4gQ2VydGlmaWNhdGVJbmZvKGFkb3B0Q0Yo
d2tDb3B5TlNVUkxSZXNwb25zZUNlcnRpZmljYXRlQ2hhaW4obV9uc1Jlc3BvbnNlLmdldCgpKSkp
OwotfQotCi1TdHJpbmcgUmVzb3VyY2VSZXNwb25zZTo6cGxhdGZvcm1TdWdnZXN0ZWRGaWxlbmFt
ZSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIFtuc1VSTFJlc3BvbnNlKCkgc3VnZ2VzdGVkRmlsZW5h
bWVdOwotfQotCi1ib29sIFJlc291cmNlUmVzcG9uc2U6OnBsYXRmb3JtQ29tcGFyZShjb25zdCBS
ZXNvdXJjZVJlc3BvbnNlJiBhLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiBiKQotewotICAgIHJl
dHVybiBhLm5zVVJMUmVzcG9uc2UoKSA9PSBiLm5zVVJMUmVzcG9uc2UoKTsKLX0KLQotI2VuZGlm
IC8vIFVTRShDRk5FVFdPUkspCi0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvV2ViQ29yZVVSTFJlc3BvbnNl
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9XZWJDb3JlVVJMUmVzcG9u
c2UuaAppbmRleCAyYmUwYWUzMmZlNGZjY2I1NjM4YjQ5ZDk0Yjg0NDcwN2U3OGYzNWNkLi4wMzNi
NjA4ZmIzZjk2ZjAxY2VhZTIzNzQ1MDc3MzA4OWM0MGRkNTViIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9XZWJDb3JlVVJMUmVzcG9uc2UuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9XZWJDb3JlVVJMUmVzcG9uc2UuaApA
QCAtMjYsMTEgKzI2LDEwIEBACiAgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLXR5cGVkZWYgc3RydWN0IF9D
RlVSTFJlc3BvbnNlKiBDRlVSTFJlc3BvbnNlUmVmOworI2luY2x1ZGUgIkNGTmV0d29ya1NQSS5o
IgogCiAjaWZkZWYgX19PQkpDX18KIEBpbnRlcmZhY2UgTlNVUkxSZXNwb25zZSAoRGV0YWlscykK
LS0gKENGVVJMUmVzcG9uc2VSZWYpX0NGVVJMUmVzcG9uc2U7CiAtICh2b2lkKV9zZXRNSU1FVHlw
ZTooTlNTdHJpbmcgKil0eXBlOwogQGVuZAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL21hYy9XZWJDb3JlVVJMUmVzcG9uc2UubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9XZWJDb3JlVVJMUmVzcG9uc2UubW0KaW5kZXggMGZhYmY5
Mzk4OTM2YjMxMjkzOTIyMTEwYzk3MjVhY2E0NjkzMmRlZS4uNWUzZGI3MDMyZGM3OWVkYjUxZDk2
ZWJhYzM0NThkMjJhNjAzZjMzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9tYWMvV2ViQ29yZVVSTFJlc3BvbnNlLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvbWFjL1dlYkNvcmVVUkxSZXNwb25zZS5tbQpAQCAtMjg4LDEzICsyODgs
MTIgQEAgc3RhdGljIENGRGljdGlvbmFyeVJlZiBjcmVhdGVFeHRlbnNpb25Ub01JTUVUeXBlTWFw
KCkKIAogdm9pZCBhZGp1c3RNSU1FVHlwZUlmTmVjZXNzYXJ5KENGVVJMUmVzcG9uc2VSZWYgY2ZS
ZXNwb25zZSkKIHsKLSAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IHJlc3VsdCA9IHdrR2V0Q0ZV
UkxSZXNwb25zZU1JTUVUeXBlKGNmUmVzcG9uc2UpOworICAgIFJldGFpblB0cjxDRlN0cmluZ1Jl
Zj4gcmVzdWx0ID0gQ0ZVUkxSZXNwb25zZUdldE1JTUVUeXBlKGNmUmVzcG9uc2UpOwogICAgIFJl
dGFpblB0cjxDRlN0cmluZ1JlZj4gb3JpZ2luYWxSZXN1bHQgPSByZXN1bHQ7CiAKICAgICBpZiAo
IXJlc3VsdCkgewotICAgICAgICBDRlVSTFJlZiB1cmwgPSB3a0dldENGVVJMUmVzcG9uc2VVUkwo
Y2ZSZXNwb25zZSk7Ci0gICAgICAgIE5TVVJMICpuc1VSTCA9IChOU1VSTCAqKXVybDsKLSAgICAg
ICAgaWYgKFtuc1VSTCBpc0ZpbGVVUkxdKSB7CisgICAgICAgIGF1dG8gdXJsID0gQ0ZVUkxSZXNw
b25zZUdldFVSTChjZlJlc3BvbnNlKTsKKyAgICAgICAgaWYgKFsoTlNVUkwgKil1cmwgaXNGaWxl
VVJMXSkgewogICAgICAgICAgICAgUmV0YWluUHRyPENGU3RyaW5nUmVmPiBleHRlbnNpb24gPSBh
ZG9wdENGKENGVVJMQ29weVBhdGhFeHRlbnNpb24odXJsKSk7CiAgICAgICAgICAgICBpZiAoZXh0
ZW5zaW9uKSB7CiAgICAgICAgICAgICAgICAgLy8gPHJkYXI6Ly9wcm9ibGVtLzcwMDczODk+IENv
cmVUeXBlcyBVVEkgbWFwIGlzIG1pc3NpbmcgMTAwKyBmaWxlIGV4dGVuc2lvbnMgdGhhdCBHYXRl
S2VlcGVyIGtuZXcgYWJvdXQKQEAgLTMyMSw3ICszMjAsNyBAQCB2b2lkIGFkanVzdE1JTUVUeXBl
SWZOZWNlc3NhcnkoQ0ZVUkxSZXNwb25zZVJlZiBjZlJlc3BvbnNlKQogICAgIH0KIAogICAgIGlm
IChyZXN1bHQgIT0gb3JpZ2luYWxSZXN1bHQpCi0gICAgICAgIHdrU2V0Q0ZVUkxSZXNwb25zZU1J
TUVUeXBlKGNmUmVzcG9uc2UsIHJlc3VsdC5nZXQoKSk7CisgICAgICAgIENGVVJMUmVzcG9uc2VT
ZXRNSU1FVHlwZShjZlJlc3BvbnNlLCByZXN1bHQuZ2V0KCkpOwogfQogI2VuZGlmCiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NwaS9jZi9DRk5ldHdvcmtDb25uZWN0aW9u
Q2FjaGVTUEkuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NwaS9jZi9DRk5ldHdvcmtDb25u
ZWN0aW9uQ2FjaGVTUEkuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2UyOTEzNTE3
YmYwODgzMmM3NDhiOTgzODA2YjI4NzRkMmIwYzY3OC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcGkvY2YvQ0ZO
ZXR3b3JrQ29ubmVjdGlvbkNhY2hlU1BJLmgKKysrIC9kZXYvbnVsbApAQCAtMSwzOSArMCwwIEBA
Ci0vKgotICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
LSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jaWZuZGVm
IENGTmV0d29ya0Nvbm5lY3Rpb25DYWNoZVNQSV9oCi0jZGVmaW5lIENGTmV0d29ya0Nvbm5lY3Rp
b25DYWNoZVNQSV9oCi0KLSNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQotI2luY2x1ZGUgPENG
TmV0d29yay9DRk5ldHdvcmtDb25uZWN0aW9uQ2FjaGVQcml2Lmg+Ci0jZWxzZQotZW51bSBIVFRQ
Q29ubmVjdGlvbkNhY2hlTGltaXRLZXlzIHsKLSAgICBrSFRUUE51bUZhc3RMYW5lcyA9IDQsCi19
OwotI2VuZGlmCi0KLWV4dGVybiAiQyIgdm9pZCBfQ0ZOZXR3b3JrSFRUUENvbm5lY3Rpb25DYWNo
ZVNldExpbWl0KEhUVFBDb25uZWN0aW9uQ2FjaGVMaW1pdEtleXMsIGludCk7Ci0KLSNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3BpL2NmL0NGTmV0d29ya1NQSS5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3BpL2NmL0NGTmV0d29ya1NQSS5oCmluZGV4IGVl
YTUyMGE5MjNkODdjZjhkOTQ0OWI4NTA2ODg4Nzk4ZTAzMTBiNzkuLmRjMjRkZmIzNGY0N2RiOTI5
MjY1OGQ2ZjMwOGEyODg0YTNjN2Q4MzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3NwaS9jZi9DRk5ldHdvcmtTUEkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9z
cGkvY2YvQ0ZOZXR3b3JrU1BJLmgKQEAgLTMwLDExICszMCwxNiBAQAogCiAjaWYgUExBVEZPUk0o
V0lOKSB8fCBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQogCi0jaW5jbHVkZSA8Q0ZOZXR3b3JrL0NG
SFRUUENvb2tpZXMuaD4KICNpbmNsdWRlIDxDRk5ldHdvcmsvQ0ZIVFRQQ29va2llc1ByaXYuaD4K
KyNpbmNsdWRlIDxDRk5ldHdvcmsvQ0ZOZXR3b3JrQ29ubmVjdGlvbkNhY2hlUHJpdi5oPgorI2lu
Y2x1ZGUgPENGTmV0d29yay9DRlByb3h5U3VwcG9ydFByaXYuaD4KICNpbmNsdWRlIDxDRk5ldHdv
cmsvQ0ZVUkxDYWNoZVByaXYuaD4KKyNpbmNsdWRlIDxDRk5ldHdvcmsvQ0ZVUkxDb25uZWN0aW9u
UHJpdi5oPgorI2luY2x1ZGUgPENGTmV0d29yay9DRlVSTENyZWRlbnRpYWxTdG9yYWdlLmg+CiAj
aW5jbHVkZSA8Q0ZOZXR3b3JrL0NGVVJMUHJvdG9jb2xQcml2Lmg+Ci0jaW5jbHVkZSA8Q0ZOZXR3
b3JrL0NGVVJMUmVxdWVzdC5oPgorI2luY2x1ZGUgPENGTmV0d29yay9DRlVSTFJlcXVlc3RQcml2
Lmg+CisjaW5jbHVkZSA8Q0ZOZXR3b3JrL0NGVVJMUmVzcG9uc2VQcml2Lmg+CisjaW5jbHVkZSA8
Q0ZOZXR3b3JrL0NGVVJMU3RvcmFnZVNlc3Npb24uaD4KIAogLy8gRklYTUU6IFJlbW92ZSB0aGUg
ZGVmaW5lZChfX09CSkNfXyktZ3VhcmQgb25uY2Ugd2UgZml4IDxyZGFyOi8vcHJvYmxlbS8xOTAz
MzYxMD4uCiAjaWYgZGVmaW5lZChfX09CSkNfXykgJiYgKFBMQVRGT1JNKElPUykgfHwgX19NQUNf
T1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEwMDApCkBAIC01NCw2ICs1OSwxMiBAQCBl
eHRlcm4gIkMiIHsKICNlbHNlIC8vIFBMQVRGT1JNKFdJTikgfHwgVVNFKEFQUExFX0lOVEVSTkFM
X1NESykKIAogI2lmIGRlZmluZWQoX19PQkpDX18pCitAaW50ZXJmYWNlIE5TVVJMUmVzcG9uc2Ug
KCkKKysgKE5TVVJMUmVzcG9uc2UgKilfcmVzcG9uc2VXaXRoQ0ZVUkxSZXNwb25zZTooQ0ZVUkxS
ZXNwb25zZVJlZilyZXNwb25zZTsKKy0gKENGVVJMUmVzcG9uc2VSZWYpX0NGVVJMUmVzcG9uc2U7
CistIChOU0RhdGUgKilfbGFzdE1vZGlmaWVkRGF0ZTsKK0BlbmQKKwogQGludGVyZmFjZSBOU1VS
TFNlc3Npb25UYXNrIChUaW1pbmdEYXRhKQogLSAoTlNEaWN0aW9uYXJ5ICopX3RpbWluZ0RhdGE7
CiBAZW5kCkBAIC02NCwxMiArNzUsMjIgQEAgdHlwZWRlZiBDRl9FTlVNKGludDY0X3QsIF9UaW1p
bmdEYXRhT3B0aW9ucykKICAgICBfVGltaW5nRGF0YU9wdGlvbnNFbmFibGVXM0NOYXZpZ2F0aW9u
VGltaW5nID0gKDEgPDwgMCkKIH07CiAKLXR5cGVkZWYgc3RydWN0IE9wYXF1ZUNGSFRUUENvb2tp
ZVN0b3JhZ2UqIENGSFRUUENvb2tpZVN0b3JhZ2VSZWY7CitlbnVtIEhUVFBDb25uZWN0aW9uQ2Fj
aGVMaW1pdEtleXMgeworICAgIGtIVFRQTG9hZFdpZHRoID0gMCwKKyAgICBrSFRUUFByaW9yaXR5
TnVtTGV2ZWxzID0gMywKKyAgICBrSFRUUE51bUZhc3RMYW5lcyA9IDQsCisgICAga0hUVFBNaW5p
bXVtRmFzdExhbmVQcmlvcml0eSA9IDUsCit9OworCiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBfQ0ZD
YWNoZWRVUkxSZXNwb25zZSogQ0ZDYWNoZWRVUkxSZXNwb25zZVJlZjsKIHR5cGVkZWYgY29uc3Qg
c3RydWN0IF9DRlVSTENhY2hlKiBDRlVSTENhY2hlUmVmOwotdHlwZWRlZiBjb25zdCBzdHJ1Y3Qg
X0NGVVJMUmVxdWVzdCAqQ0ZVUkxSZXF1ZXN0UmVmOwordHlwZWRlZiBjb25zdCBzdHJ1Y3QgX0NG
VVJMUmVxdWVzdCogQ0ZVUkxSZXF1ZXN0UmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgX19DRlVS
TFN0b3JhZ2VTZXNzaW9uKiBDRlVSTFN0b3JhZ2VTZXNzaW9uUmVmOwotdHlwZWRlZiBjb25zdCBz
dHJ1Y3QgX19DRkRhdGEgKkNGRGF0YVJlZjsKK3R5cGVkZWYgY29uc3Qgc3RydWN0IF9fQ0ZEYXRh
KiBDRkRhdGFSZWY7Cit0eXBlZGVmIHN0cnVjdCBfQ0ZVUkxDb25uZWN0aW9uKiBDRlVSTENvbm5l
Y3Rpb25SZWY7Cit0eXBlZGVmIHN0cnVjdCBfQ0ZVUkxSZXNwb25zZSogQ0ZVUkxSZXNwb25zZVJl
ZjsKK3R5cGVkZWYgc3RydWN0IE9wYXF1ZUNGSFRUUENvb2tpZVN0b3JhZ2UqIENGSFRUUENvb2tp
ZVN0b3JhZ2VSZWY7Cit0eXBlZGVmIENGSW5kZXggQ0ZVUkxSZXF1ZXN0UHJpb3JpdHk7CiAKICNp
ZmRlZiBfX0JMT0NLU19fCiB0eXBlZGVmIHZvaWQgKF5DRkNhY2hlZFVSTFJlc3BvbnNlQ2FsbEJh
Y2tCbG9jaykoQ0ZDYWNoZWRVUkxSZXNwb25zZVJlZik7CkBAIC0xMDIsNiArMTIzLDI4IEBAIEVY
VEVSTl9DIHZvaWQgX0NGQ2FjaGVkVVJMUmVzcG9uc2VTZXRCZWNhbWVGaWxlQmFja2VkQ2FsbEJh
Y2tCbG9jayhDRkNhY2hlZFVSTFJlCiBFWFRFUk5fQyB2b2lkIENGVVJMQ29ubmVjdGlvbkludmFs
aWRhdGVDb25uZWN0aW9uQ2FjaGUoKTsKIAogRVhURVJOX0MgQ0ZTdHJpbmdSZWYgY29uc3Qga0NG
SFRUUENvb2tpZUxvY2FsRmlsZURvbWFpbjsKK0VYVEVSTl9DIGNvbnN0IENGU3RyaW5nUmVmIF9r
Q0ZVUkxDb25uZWN0aW9uUHJvcGVydHlTaG91bGRTbmlmZjsKK0VYVEVSTl9DIGNvbnN0IENGU3Ry
aW5nUmVmIGtDRlVSTFJlcXVlc3RBbGxvd0FsbFBPU1RDYWNoaW5nOworCitFWFRFUk5fQyBDRkhU
VFBDb29raWVTdG9yYWdlUmVmIF9DRkhUVFBDb29raWVTdG9yYWdlR2V0RGVmYXVsdChDRkFsbG9j
YXRvclJlZik7CitFWFRFUk5fQyB2b2lkIENGSFRUUENvb2tpZVN0b3JhZ2VTZXRDb29raWVBY2Nl
cHRQb2xpY3koQ0ZIVFRQQ29va2llU3RvcmFnZVJlZiwgQ0ZIVFRQQ29va2llU3RvcmFnZUFjY2Vw
dFBvbGljeSk7CitFWFRFUk5fQyBpbnQgX0NGTmV0d29ya0hUVFBDb25uZWN0aW9uQ2FjaGVHZXRM
aW1pdChIVFRQQ29ubmVjdGlvbkNhY2hlTGltaXRLZXlzKTsKK0VYVEVSTl9DIHZvaWQgX0NGTmV0
d29ya0hUVFBDb25uZWN0aW9uQ2FjaGVTZXRMaW1pdChIVFRQQ29ubmVjdGlvbkNhY2hlTGltaXRL
ZXlzLCBpbnQpOworRVhURVJOX0Mgdm9pZCBfQ0ZOZXR3b3JrU2V0T3ZlcnJpZGVTeXN0ZW1Qcm94
eVNldHRpbmdzKENGRGljdGlvbmFyeVJlZik7CitFWFRFUk5fQyBDRlVSTENyZWRlbnRpYWxTdG9y
YWdlUmVmIENGVVJMQ3JlZGVudGlhbFN0b3JhZ2VDcmVhdGUoQ0ZBbGxvY2F0b3JSZWYpOworRVhU
RVJOX0MgQ0ZVUkxDcmVkZW50aWFsUmVmIENGVVJMQ3JlZGVudGlhbFN0b3JhZ2VDb3B5RGVmYXVs
dENyZWRlbnRpYWxGb3JQcm90ZWN0aW9uU3BhY2UoQ0ZVUkxDcmVkZW50aWFsU3RvcmFnZVJlZiwg
Q0ZVUkxQcm90ZWN0aW9uU3BhY2VSZWYpOworRVhURVJOX0MgQ0ZVUkxSZXF1ZXN0UHJpb3JpdHkg
Q0ZVUkxSZXF1ZXN0R2V0UmVxdWVzdFByaW9yaXR5KENGVVJMUmVxdWVzdFJlZik7CitFWFRFUk5f
QyB2b2lkIF9DRlVSTFJlcXVlc3RTZXRQcm90b2NvbFByb3BlcnR5KENGVVJMUmVxdWVzdFJlZiwg
Q0ZTdHJpbmdSZWYsIENGVHlwZVJlZik7CitFWFRFUk5fQyB2b2lkIENGVVJMUmVxdWVzdFNldFJl
cXVlc3RQcmlvcml0eShDRlVSTFJlcXVlc3RSZWYsIENGVVJMUmVxdWVzdFByaW9yaXR5KTsKK0VY
VEVSTl9DIHZvaWQgQ0ZVUkxSZXF1ZXN0U2V0U2hvdWxkUGlwZWxpbmVIVFRQKENGVVJMUmVxdWVz
dFJlZiwgQm9vbGVhbiwgQm9vbGVhbik7CitFWFRFUk5fQyB2b2lkIF9DRlVSTFJlcXVlc3RTZXRT
dG9yYWdlU2Vzc2lvbihDRk11dGFibGVVUkxSZXF1ZXN0UmVmLCBDRlVSTFN0b3JhZ2VTZXNzaW9u
UmVmKTsKK0VYVEVSTl9DIENGU3RyaW5nUmVmIENGVVJMUmVzcG9uc2VDb3B5U3VnZ2VzdGVkRmls
ZW5hbWUoQ0ZVUkxSZXNwb25zZVJlZik7CitFWFRFUk5fQyBDRkhUVFBNZXNzYWdlUmVmIENGVVJM
UmVzcG9uc2VHZXRIVFRQUmVzcG9uc2UoQ0ZVUkxSZXNwb25zZVJlZik7CitFWFRFUk5fQyBDRlN0
cmluZ1JlZiBDRlVSTFJlc3BvbnNlR2V0TUlNRVR5cGUoQ0ZVUkxSZXNwb25zZVJlZik7CitFWFRF
Uk5fQyBDRkRpY3Rpb25hcnlSZWYgX0NGVVJMUmVzcG9uc2VHZXRTU0xDZXJ0aWZpY2F0ZUNvbnRl
eHQoQ0ZVUkxSZXNwb25zZVJlZik7CitFWFRFUk5fQyBDRlVSTFJlZiBDRlVSTFJlc3BvbnNlR2V0
VVJMKENGVVJMUmVzcG9uc2VSZWYpOworRVhURVJOX0Mgdm9pZCBDRlVSTFJlc3BvbnNlU2V0TUlN
RVR5cGUoQ0ZVUkxSZXNwb25zZVJlZiwgQ0ZTdHJpbmdSZWYpOworRVhURVJOX0MgQ0ZIVFRQQ29v
a2llU3RvcmFnZVJlZiBfQ0ZVUkxTdG9yYWdlU2Vzc2lvbkNvcHlDb29raWVTdG9yYWdlKENGQWxs
b2NhdG9yUmVmLCBDRlVSTFN0b3JhZ2VTZXNzaW9uUmVmKTsKIAogLy8gRklYTUU6IFdlIHNob3Vs
ZCBvbmx5IGZvcndhcmQgZGVjbGFyZSB0aGlzIFNQSSB3aGVuIGJ1aWxkaW5nIGZvciBpT1Mgd2l0
aG91dCB0aGUgQXBwbGUgSW50ZXJuYWwgU0RLLgogLy8gQXMgYSB3b3JrYXJvdW5kIGZvciA8cmRh
cjovL3Byb2JsZW0vMTkwMjUwMTY+LCB3ZSBtdXN0IGZvcndhcmQgZGVjbGFyZSB0aGlzIFNQSSBy
ZWdhcmRsZXNzIG9mIHdoZXRoZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdp
bnMvSG9zdGVkL0hvc3RlZE5ldHNjYXBlUGx1Z2luU3RyZWFtLm1tIGIvU291cmNlL1dlYktpdC9t
YWMvUGx1Z2lucy9Ib3N0ZWQvSG9zdGVkTmV0c2NhcGVQbHVnaW5TdHJlYW0ubW0KaW5kZXggYzZm
YmI3MWU1ZmIwZjdkNTM2ZGQ3NzVhZGZkYTFhNmMwYzcwODkwMC4uYzE2NmVkMDAyMzI2ZjI3MGE4
MTk3NThhNDJiYjg5NzkzZTMxZjFiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvUGx1
Z2lucy9Ib3N0ZWQvSG9zdGVkTmV0c2NhcGVQbHVnaW5TdHJlYW0ubW0KKysrIGIvU291cmNlL1dl
YktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvSG9zdGVkTmV0c2NhcGVQbHVnaW5TdHJlYW0ubW0KQEAg
LTM3LDYgKzM3LDcgQEAKICNpbXBvcnQgIldlYk5TVVJMRXh0cmFzLmgiCiAjaW1wb3J0ICJXZWJO
U1VSTFJlcXVlc3RFeHRyYXMuaCIKICNpbXBvcnQgIldlYlJlc291cmNlTG9hZFNjaGVkdWxlci5o
IgorI2ltcG9ydCA8V2ViQ29yZS9DRk5ldHdvcmtTUEkuaD4KICNpbXBvcnQgPFdlYkNvcmUvRG9j
dW1lbnQuaD4KICNpbXBvcnQgPFdlYkNvcmUvRG9jdW1lbnRMb2FkZXIuaD4KICNpbXBvcnQgPFdl
YkNvcmUvRnJhbWUuaD4KQEAgLTE4OSw3ICsxOTAsNyBAQCB2b2lkIEhvc3RlZE5ldHNjYXBlUGx1
Z2luU3RyZWFtOjpkaWRSZWNlaXZlUmVzcG9uc2UoTmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXIq
LAogICAgICAgICBbdGhlSGVhZGVycyBhcHBlbmRCeXRlczoiXDAiIGxlbmd0aDoxXTsKICAgICB9
CiAgICAgCi0gICAgc3RhcnRTdHJlYW0oW3IgVVJMXSwgZXhwZWN0ZWRDb250ZW50TGVuZ3RoLCBX
S0dldE5TVVJMUmVzcG9uc2VMYXN0TW9kaWZpZWREYXRlKHIpLCBbciBNSU1FVHlwZV0sIHRoZUhl
YWRlcnMpOworICAgIHN0YXJ0U3RyZWFtKFtyIFVSTF0sIGV4cGVjdGVkQ29udGVudExlbmd0aCwg
W3IgX2xhc3RNb2RpZmllZERhdGVdLCBbciBNSU1FVHlwZV0sIHRoZUhlYWRlcnMpOwogfQogCiBO
UFJlYXNvbiBIb3N0ZWROZXRzY2FwZVBsdWdpblN0cmVhbTo6cmVhc29uRm9yRXJyb3IoTlNFcnJv
ciAqZXJyb3IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL1dlYk5ldHNj
YXBlUGx1Z2luU3RyZWFtLm1tIGIvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9XZWJOZXRzY2Fw
ZVBsdWdpblN0cmVhbS5tbQppbmRleCBlYzE3NmFlY2ZlMWEzZTE1MjJiYjcxMGQzNzFlM2NjNGM0
ZDYyYzRkLi40MWI0ODE3YTBlY2VjYWYyNjJhMmFmNDAzMTE2NTVlZjRjOTFkZjU2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2luU3RyZWFtLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5TdHJlYW0u
bW0KQEAgLTM5LDYgKzM5LDcgQEAKICNpbXBvcnQgIldlYk5ldHNjYXBlUGx1Z2luVmlldy5oIgog
I2ltcG9ydCAiV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmgiCiAjaW1wb3J0IDxGb3VuZGF0aW9u
L05TVVJMUmVzcG9uc2UuaD4KKyNpbXBvcnQgPFdlYkNvcmUvQ0ZOZXR3b3JrU1BJLmg+CiAjaW1w
b3J0IDxXZWJDb3JlL0RvY3VtZW50Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0RvY3VtZW50TG9hZGVy
Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0ZyYW1lLmg+CkBAIC0zNTgsNyArMzU5LDcgQEAgdm9pZCBX
ZWJOZXRzY2FwZVBsdWdpblN0cmVhbTo6ZGlkUmVjZWl2ZVJlc3BvbnNlKE5ldHNjYXBlUGx1Z0lu
U3RyZWFtTG9hZGVyKiwgY28KICAgICAgICAgLy8gc3RhcnRTdHJlYW1SZXNwb25zZVVSTDouLi4g
d2lsbCBudWxsLXRlcm1pbmF0ZS4KICAgICB9CiAgICAgCi0gICAgc3RhcnRTdHJlYW0oW3IgVVJM
XSwgZXhwZWN0ZWRDb250ZW50TGVuZ3RoLCBXS0dldE5TVVJMUmVzcG9uc2VMYXN0TW9kaWZpZWRE
YXRlKHIpLCByZXNwb25zZS5taW1lVHlwZSgpLCB0aGVIZWFkZXJzKTsKKyAgICBzdGFydFN0cmVh
bShbciBVUkxdLCBleHBlY3RlZENvbnRlbnRMZW5ndGgsIFtyIF9sYXN0TW9kaWZpZWREYXRlXSwg
cmVzcG9uc2UubWltZVR5cGUoKSwgdGhlSGVhZGVycyk7CiB9CiAKIHZvaWQgV2ViTmV0c2NhcGVQ
bHVnaW5TdHJlYW06OnN0YXJ0U3RyZWFtV2l0aFJlc3BvbnNlKE5TVVJMUmVzcG9uc2UgKnJlc3Bv
bnNlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViU3lz
dGVtSW50ZXJmYWNlLm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViU3lz
dGVtSW50ZXJmYWNlLm1tCmluZGV4IDE0YzFiYzZjNmI2MWVlNWM2Y2M4NDY2MTVjNDg5ZDNhZDRl
NGMxMzIuLmE4OGRjMzU2M2RjNzhjNTdlMWM4ZjYzNGQ5MGNiYmI5OTllYmU2YTkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlN5c3RlbUludGVyZmFjZS5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJTeXN0ZW1JbnRlcmZh
Y2UubW0KQEAgLTQ2LDE4ICs0NiwxMiBAQCB2b2lkIEluaXRXZWJDb3JlU3lzdGVtSW50ZXJmYWNl
KHZvaWQpCiAgICAgSU5JVChBZHZhbmNlRGVmYXVsdEJ1dHRvblB1bHNlQW5pbWF0aW9uKTsKICNl
bmRpZgogICAgIElOSVQoQ0FMYXllckVudW1lcmF0ZVJlY3RzQmVpbmdEcmF3bldpdGhCbG9jayk7
Ci0jaWYgIVBMQVRGT1JNKElPUykKLSAgICBJTklUKENHQ29udGV4dEdldFNob3VsZFNtb290aEZv
bnRzKTsKLSNlbmRpZgogICAgIElOSVQoQ0dQYXR0ZXJuQ3JlYXRlV2l0aEltYWdlQW5kVHJhbnNm
b3JtKTsKICNpZiAhUExBVEZPUk0oSU9TKQogICAgIElOSVQoQ0dDb250ZXh0RHJhd3NXaXRoQ29y
cmVjdFNoYWRvd09mZnNldHMpOwogI2VuZGlmCiAgICAgSU5JVChDb3B5Q09OTkVDVFByb3h5UmVz
cG9uc2UpOwotICAgIElOSVQoQ29weU5TVVJMUmVzcG9uc2VTdGF0dXNMaW5lKTsKLSAgICBJTklU
KENvcHlOU1VSTFJlc3BvbnNlQ2VydGlmaWNhdGVDaGFpbik7CiAjaWYgIVBMQVRGT1JNKElPUykK
LSAgICBJTklUKERyYXdDYXBzTG9ja0luZGljYXRvcik7CiAgICAgSU5JVChEcmF3QmV6ZWxlZFRl
eHRBcmVhKTsKICAgICBJTklUKERyYXdGb2N1c1JpbmcpOwogICAgIElOSVQoRHJhd0ZvY3VzUmlu
Z0F0VGltZSk7CkBAIC02NSw0NyArNTksMzQgQEAgdm9pZCBJbml0V2ViQ29yZVN5c3RlbUludGVy
ZmFjZSh2b2lkKQogICAgIElOSVQoRHJhd01lZGlhVUlQYXJ0KTsKICAgICBJTklUKERyYXdNZWRp
YVNsaWRlclRyYWNrKTsKICNlbmRpZgotICAgIElOSVQoR2V0SFRUUFJlcXVlc3RQcmlvcml0eSk7
Ci0gICAgSU5JVChHZXROU1VSTFJlc3BvbnNlTGFzdE1vZGlmaWVkRGF0ZSk7CiAgICAgSU5JVChH
ZXRXZWJEZWZhdWx0Q0ZTdHJpbmdFbmNvZGluZyk7CiAjaWYgIVBMQVRGT1JNKElPUykKICAgICBJ
TklUKFNpZ25lZFB1YmxpY0tleUFuZENoYWxsZW5nZVN0cmluZyk7CiAgICAgSU5JVChHZXRXaGVl
bEV2ZW50RGVsdGFzKTsKICAgICBJTklUKEdldE5TRXZlbnRLZXlDaGFyKTsKICAgICBJTklUKEhp
dFRlc3RNZWRpYVVJUGFydCk7Ci0jZW5kaWYKLSAgICBJTklUKEluaXRpYWxpemVNYXhpbXVtSFRU
UENvbm5lY3Rpb25Db3VudFBlckhvc3QpOwotI2lmICFQTEFURk9STShJT1MpCiAgICAgSU5JVChN
ZWFzdXJlTWVkaWFVSVBhcnQpOwogICAgIElOSVQoQ3JlYXRlTWVkaWFVSUJhY2tncm91bmRWaWV3
KTsKICAgICBJTklUKENyZWF0ZU1lZGlhVUlDb250cm9sKTsKICAgICBJTklUKFdpbmRvd1NldEFs
cGhhKTsKICAgICBJTklUKFdpbmRvd1NldFNjYWxlZEZyYW1lKTsKLSAgICBJTklUKFNldENHRm9u
dFJlbmRlcmluZ01vZGUpOwogI2VuZGlmCiAgICAgSU5JVChTZXRDT05ORUNUUHJveHlBdXRob3Jp
emF0aW9uRm9yU3RyZWFtKTsKICAgICBJTklUKFNldENPTk5FQ1RQcm94eUZvclN0cmVhbSk7CiAj
aWYgIVBMQVRGT1JNKElPUykKICAgICBJTklUKFNldERyYWdJbWFnZSk7CiAjZW5kaWYKLSAgICBJ
TklUKFNldEhUVFBSZXF1ZXN0TWF4aW11bVByaW9yaXR5KTsKLSAgICBJTklUKFNldEhUVFBSZXF1
ZXN0UHJpb3JpdHkpOwotICAgIElOSVQoU2V0SFRUUFJlcXVlc3RNaW5pbXVtRmFzdExhbmVQcmlv
cml0eSk7Ci0gICAgSU5JVChIVFRQUmVxdWVzdEVuYWJsZVBpcGVsaW5pbmcpOwotICAgIElOSVQo
U2V0TlNVUkxSZXF1ZXN0U2hvdWxkQ29udGVudFNuaWZmKTsKICAgICBJTklUKENHQ29udGV4dElz
UERGQ29udGV4dCk7CiAjaWYgRU5BQkxFKFZJREVPKSAmJiAhUExBVEZPUk0oSU9TKQogICAgIElO
SVQoUVRJbmNsdWRlT25seU1vZGVybk1lZGlhRmlsZVR5cGVzKTsKICAgICBJTklUKFFUTW92aWVE
aXNhYmxlQ29tcG9uZW50KTsKICAgICBJTklUKFFUTW92aWVNYXhUaW1lTG9hZGVkKTsKICAgICBJ
TklUKFFUTW92aWVNYXhUaW1lTG9hZGVkQ2hhbmdlTm90aWZpY2F0aW9uKTsKLSAgICBJTklUKFFU
TW92aWVNYXhUaW1lU2Vla2FibGUpOwogICAgIElOSVQoUVRNb3ZpZUdldFR5cGUpOwogICAgIElO
SVQoUVRNb3ZpZUhhc0Nsb3NlZENhcHRpb25zKTsKICAgICBJTklUKFFUTW92aWVSZXNvbHZlZFVS
TCk7CiAgICAgSU5JVChRVE1vdmllU2V0U2hvd0Nsb3NlZENhcHRpb25zKTsKICAgICBJTklUKFFU
TW92aWVTZWxlY3RQcmVmZXJyZWRBbHRlcm5hdGVzKTsKLSAgICBJTklUKFFUTW92aWVWaWV3U2V0
RHJhd1N5bmNocm9ub3VzbHkpOwogICAgIElOSVQoUVRHZXRTaXRlc0luTWVkaWFEb3dubG9hZENh
Y2hlKTsKICAgICBJTklUKFFUQ2xlYXJNZWRpYURvd25sb2FkQ2FjaGVGb3JTaXRlKTsKICAgICBJ
TklUKFFUQ2xlYXJNZWRpYURvd25sb2FkQ2FjaGUpOwpAQCAtMTE1LDE2ICs5Niw2IEBAIHZvaWQg
SW5pdFdlYkNvcmVTeXN0ZW1JbnRlcmZhY2Uodm9pZCkKICAgICBJTklUKEV4ZWN1dGFibGVXYXNM
aW5rZWRPbk9yQmVmb3JlU25vd0xlb3BhcmQpOwogICAgIElOSVQoQ29weURlZmF1bHRTZWFyY2hQ
cm92aWRlckRpc3BsYXlOYW1lKTsKICAgICBJTklUKEN1cnNvcik7Ci0jZW5kaWYKLQotI2lmIFVT
RShDRk5FVFdPUkspCi0gICAgSU5JVChHZXREZWZhdWx0SFRUUENvb2tpZVN0b3JhZ2UpOwotICAg
IElOSVQoQ29weUNyZWRlbnRpYWxGcm9tQ0ZQZXJzaXN0ZW50U3RvcmFnZSk7Ci0gICAgSU5JVChT
ZXRDRlVSTFJlcXVlc3RTaG91bGRDb250ZW50U25pZmYpOwotICAgIElOSVQoU2V0UmVxdWVzdFN0
b3JhZ2VTZXNzaW9uKTsKLSNlbmRpZgotCi0jaWYgIVBMQVRGT1JNKElPUykKICAgICBJTklUKFNw
ZWVjaFN5bnRoZXNpc0dldFZvaWNlSWRlbnRpZmllcnMpOwogICAgIElOSVQoU3BlZWNoU3ludGhl
c2lzR2V0RGVmYXVsdFZvaWNlSWRlbnRpZmllckZvckxvY2FsZSk7CiAgICAgSU5JVChHZXRBWFRl
eHRNYXJrZXJUeXBlSUQpOwpAQCAtMTQwLDcgKzExMSw2IEBAIHZvaWQgSW5pdFdlYkNvcmVTeXN0
ZW1JbnRlcmZhY2Uodm9pZCkKICNlbmRpZgogICAgIElOSVQoQ3JlYXRlUHJpdmF0ZVN0b3JhZ2VT
ZXNzaW9uKTsKICAgICBJTklUKENvcHlSZXF1ZXN0V2l0aFN0b3JhZ2VTZXNzaW9uKTsKLSAgICBJ
TklUKENvcHlIVFRQQ29va2llU3RvcmFnZSk7CiAgICAgSU5JVChHZXRIVFRQQ29va2llQWNjZXB0
UG9saWN5KTsKICAgICBJTklUKEhUVFBDb29raWVzKTsKICAgICBJTklUKEhUVFBDb29raWVzRm9y
VVJMKTsKQEAgLTE0OCwxOSArMTE4LDggQEAgdm9pZCBJbml0V2ViQ29yZVN5c3RlbUludGVyZmFj
ZSh2b2lkKQogICAgIElOSVQoRGVsZXRlQWxsSFRUUENvb2tpZXMpOwogICAgIElOSVQoRGVsZXRl
SFRUUENvb2tpZSk7CiAKLSAgICBJTklUKEdldENGVVJMUmVzcG9uc2VNSU1FVHlwZSk7Ci0gICAg
SU5JVChHZXRDRlVSTFJlc3BvbnNlVVJMKTsKLSAgICBJTklUKEdldENGVVJMUmVzcG9uc2VIVFRQ
UmVzcG9uc2UpOwotICAgIElOSVQoQ29weUNGVVJMUmVzcG9uc2VTdWdnZXN0ZWRGaWxlbmFtZSk7
Ci0gICAgSU5JVChTZXRDRlVSTFJlc3BvbnNlTUlNRVR5cGUpOwotCiAjaWYgIVBMQVRGT1JNKElP
UykKICAgICBJTklUKFNldE1ldGFkYXRhVVJMKTsKLSNlbmRpZgotCi0gICAgSU5JVChDRlVSTFJl
cXVlc3RBbGxvd0FsbFBvc3RDYWNoaW5nKTsKLQotI2lmICFQTEFURk9STShJT1MpCiAgICAgSU5J
VChOU0VsYXN0aWNEZWx0YUZvclRpbWVEZWx0YSk7CiAgICAgSU5JVChOU0VsYXN0aWNEZWx0YUZv
clJlYm91bmREZWx0YSk7CiAgICAgSU5JVChOU1JlYm91bmREZWx0YUZvckVsYXN0aWNEZWx0YSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1t
IGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbQppbmRleCAwMTBm
YThiNzc3MjlkMGM0ZWFlNmI0OWY5MzFkZTA0OTI2ZDNjYjI3Li41ZDhiZWU3NzQwNDMxYzMxMDAy
Mjc2NDQ5MGIwMmEzZDJkNjg4ODlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJW
aWV3L1dlYlByZWZlcmVuY2VzLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2Vi
UHJlZmVyZW5jZXMubW0KQEAgLTQxLDYgKzQxLDcgQEAKICNpbXBvcnQgIldlYlN5c3RlbUludGVy
ZmFjZS5oIgogI2ltcG9ydCA8V2ViQ29yZS9BcHBsaWNhdGlvbkNhY2hlU3RvcmFnZS5oPgogI2lt
cG9ydCA8V2ViQ29yZS9BdWRpb1Nlc3Npb24uaD4KKyNpbXBvcnQgPFdlYkNvcmUvQ0ZOZXR3b3Jr
U1BJLmg+CiAjaW1wb3J0IDxXZWJDb3JlL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oPgogI2ltcG9y
dCA8V2ViQ29yZS9QbGF0Zm9ybUNvb2tpZUphci5oPgogI2ltcG9ydCA8V2ViQ29yZS9SZXNvdXJj
ZUhhbmRsZS5oPgpAQCAtNTEsMTAgKzUyLDYgQEAKICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4K
ICNpbXBvcnQgPHd0Zi9SdW5Mb29wLmg+CiAKLWVudW0gewotICAgIE5TSFRUUENvb2tpZUFjY2Vw
dFBvbGljeUV4Y2x1c2l2ZWx5RnJvbU1haW5Eb2N1bWVudERvbWFpbiA9IDMKLX07Ci0KIHVzaW5n
IG5hbWVzcGFjZSBXZWJDb3JlOwogCiAjaWYgUExBVEZPUk0oSU9TKQpAQCAtMTc2Nyw3ICsxNzY0
LDcgQEAgKyAodm9pZClfc2V0Q3VycmVudE5ldHdvcmtMb2FkZXJTZXNzaW9uQ29va2llQWNjZXB0
UG9saWN5OihOU0hUVFBDb29raWVBY2NlcHRQb2wKIHsKICAgICBSZXRhaW5QdHI8Q0ZIVFRQQ29v
a2llU3RvcmFnZVJlZj4gY29va2llU3RvcmFnZSA9IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6ZGVm
YXVsdFN0b3JhZ2VTZXNzaW9uKCkuY29va2llU3RvcmFnZSgpOwogICAgIEFTU0VSVChjb29raWVT
dG9yYWdlKTsgLy8gV2lsbCBmYWlsIHdoZW4gYnVpbGRpbmcgd2l0aG91dCBVU0UoQ0ZORVRXT1JL
KSBhbmQgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzd2l0Y2hUb05ld1Rlc3RpbmdTZXNzaW9uKCkg
d2FzIG5vdCBjYWxsZWQgYmVmb3JlaGFuZC4KLSAgICBXS1NldEhUVFBDb29raWVBY2NlcHRQb2xp
Y3koY29va2llU3RvcmFnZS5nZXQoKSwgcG9saWN5KTsKKyAgICBDRkhUVFBDb29raWVTdG9yYWdl
U2V0Q29va2llQWNjZXB0UG9saWN5KGNvb2tpZVN0b3JhZ2UuZ2V0KCksIHBvbGljeSk7CiB9CiAK
IC0gKEJPT0wpaXNET01QYXN0ZUFsbG93ZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05l
dHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtQcm9jZXNzQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0
Mi9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrUHJvY2Vzc0NvY29hLm1tCmluZGV4IDNhYmNm
NjkzODRmNzRiNjA5YzZmZjRmMzdlZTdlZTk2ZWM3NjAzMDUuLmYyODUzYmM0YjYxNzM3NmQ2NjI5
MzljMWY2ZTFkMjgxNzdkOTA5YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQ
cm9jZXNzL2NvY29hL05ldHdvcmtQcm9jZXNzQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdDIv
TmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Byb2Nlc3NDb2NvYS5tbQpAQCAtNTEsNyArNTEs
NyBAQCBzdGF0aWMgdm9pZCBpbml0aWFsaXplTmV0d29ya1NldHRpbmdzKCkKIHsKICAgICBzdGF0
aWMgY29uc3QgdW5zaWduZWQgcHJlZmVycmVkQ29ubmVjdGlvbkNvdW50ID0gNjsKIAotICAgIFdL
SW5pdGlhbGl6ZU1heGltdW1IVFRQQ29ubmVjdGlvbkNvdW50UGVySG9zdChwcmVmZXJyZWRDb25u
ZWN0aW9uQ291bnQpOworICAgIF9DRk5ldHdvcmtIVFRQQ29ubmVjdGlvbkNhY2hlU2V0TGltaXQo
a0hUVFBMb2FkV2lkdGgsIHByZWZlcnJlZENvbm5lY3Rpb25Db3VudCk7CiAKICAgICBCb29sZWFu
IGtleUV4aXN0c0FuZEhhc1ZhbGlkRm9ybWF0ID0gZmFsc2U7CiAgICAgQm9vbGVhbiBwcmVmVmFs
dWUgPSBDRlByZWZlcmVuY2VzR2V0QXBwQm9vbGVhblZhbHVlKENGU1RSKCJXZWJLaXRFbmFibGVI
VFRQUGlwZWxpbmluZyIpLCBrQ0ZQcmVmZXJlbmNlc0N1cnJlbnRBcHBsaWNhdGlvbiwgJmtleUV4
aXN0c0FuZEhhc1ZhbGlkRm9ybWF0KTsKQEAgLTU5LDggKzU5LDEwIEBAIHN0YXRpYyB2b2lkIGlu
aXRpYWxpemVOZXR3b3JrU2V0dGluZ3MoKQogICAgICAgICBXZWJDb3JlOjpSZXNvdXJjZVJlcXVl
c3Q6OnNldEhUVFBQaXBlbGluaW5nRW5hYmxlZChwcmVmVmFsdWUpOwogCiAgICAgaWYgKFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdDo6cmVzb3VyY2VQcmlvcml0aWVzRW5hYmxlZCgpKSB7Ci0gICAg
ICAgIFdLU2V0SFRUUFJlcXVlc3RNYXhpbXVtUHJpb3JpdHkodG9QbGF0Zm9ybVJlcXVlc3RQcmlv
cml0eShXZWJDb3JlOjpSZXNvdXJjZUxvYWRQcmlvcml0eTo6SGlnaGVzdCkpOwotICAgICAgICBX
S1NldEhUVFBSZXF1ZXN0TWluaW11bUZhc3RMYW5lUHJpb3JpdHkodG9QbGF0Zm9ybVJlcXVlc3RQ
cmlvcml0eShXZWJDb3JlOjpSZXNvdXJjZUxvYWRQcmlvcml0eTo6TWVkaXVtKSk7CisgICAgICAg
IF9DRk5ldHdvcmtIVFRQQ29ubmVjdGlvbkNhY2hlU2V0TGltaXQoa0hUVFBQcmlvcml0eU51bUxl
dmVscywgdG9QbGF0Zm9ybVJlcXVlc3RQcmlvcml0eShXZWJDb3JlOjpSZXNvdXJjZUxvYWRQcmlv
cml0eTo6SGlnaGVzdCkpOworI2lmIFBMQVRGT1JNKElPUykKKyAgICAgICAgX0NGTmV0d29ya0hU
VFBDb25uZWN0aW9uQ2FjaGVTZXRMaW1pdChrSFRUUE1pbmltdW1GYXN0TGFuZVByaW9yaXR5LCB0
b1BsYXRmb3JtUmVxdWVzdFByaW9yaXR5KFdlYkNvcmU6OlJlc291cmNlTG9hZFByaW9yaXR5OjpN
ZWRpdW0pKTsKKyNlbmRpZgogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
TmV0d29ya1Byb2Nlc3MvbWFjL05ldHdvcmtQcm9jZXNzTWFjLm1tIGIvU291cmNlL1dlYktpdDIv
TmV0d29ya1Byb2Nlc3MvbWFjL05ldHdvcmtQcm9jZXNzTWFjLm1tCmluZGV4IDI4NGU1Yjc4ODYx
Y2U4N2Y0YjVmYzVmMWE4NmMwOTcwOTZlYTE0YzAuLmRkNTc5YTUxMGE5ZTc1N2NlMzIwNGM2NGEw
OWE3ZTFlN2NkY2VjNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNz
L21hYy9OZXR3b3JrUHJvY2Vzc01hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJv
Y2Vzcy9tYWMvTmV0d29ya1Byb2Nlc3NNYWMubW0KQEAgLTM2LDYgKzM2LDcgQEAKICNpbXBvcnQg
IlNhbmRib3hJbml0aWFsaXphdGlvblBhcmFtZXRlcnMuaCIKICNpbXBvcnQgIlNlY0l0ZW1TaGlt
LmgiCiAjaW1wb3J0ICJTdHJpbmdVdGlsaXRpZXMuaCIKKyNpbXBvcnQgPFdlYkNvcmUvQ0ZOZXR3
b3JrU1BJLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0NlcnRpZmljYXRlSW5mby5oPgogI2ltcG9ydCA8
V2ViQ29yZS9GaWxlU3lzdGVtLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0xvY2FsaXplZFN0cmluZ3Mu
aD4KQEAgLTk1LDcgKzk2LDcgQEAgc3RhdGljIHZvaWQgb3ZlcnJpZGVTeXN0ZW1Qcm94aWVzKGNv
bnN0IFN0cmluZyYgaHR0cFByb3h5LCBjb25zdCBTdHJpbmcmIGh0dHBzUHIKICAgICB9CiAKICAg
ICBpZiAoW3Byb3h5U2V0dGluZ3MgY291bnRdID4gMCkKLSAgICAgICAgV0tDRk5ldHdvcmtTZXRP
dmVycmlkZVN5c3RlbVByb3h5U2V0dGluZ3MoKENGRGljdGlvbmFyeVJlZilwcm94eVNldHRpbmdz
KTsKKyAgICAgICAgX0NGTmV0d29ya1NldE92ZXJyaWRlU3lzdGVtUHJveHlTZXR0aW5ncygoQ0ZE
aWN0aW9uYXJ5UmVmKXByb3h5U2V0dGluZ3MpOwogfQogCiB2b2lkIE5ldHdvcmtQcm9jZXNzOjpw
bGF0Zm9ybUluaXRpYWxpemVOZXR3b3JrUHJvY2Vzcyhjb25zdCBOZXR3b3JrUHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQubW0g
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJGcmFtZU5l
dHdvcmtpbmdDb250ZXh0Lm1tCmluZGV4IDdiMTMyOGRlY2MyYTNjMDhiMGEzOGIzN2U5YzNiMWM1
ZjYzNTVjZWQuLjJlNjcxODI5OTA3MTE2OTQ3NGFhZTI3M2QzZjY3YjEwNGNjYjRlMzggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkZy
YW1lTmV0d29ya2luZ0NvbnRleHQubW0KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9tYWMvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5tbQpAQCAtMzEsNiAr
MzEsNyBAQAogI2luY2x1ZGUgIldlYkNvb2tpZU1hbmFnZXIuaCIKICNpbmNsdWRlICJXZWJQYWdl
LmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQ0ZOZXR3b3Jr
U1BJLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRnJh
bWVMb2FkZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lTG9hZGVyQ2xpZW50Lmg+CkBAIC02
OSwxMSArNzAsMTEgQEAgdm9pZCBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpzZXRDb29raWVB
Y2NlcHRQb2xpY3lGb3JBbGxDb250ZXh0cyhIVFRQQ29va2llQWMKICAgICBbW05TSFRUUENvb2tp
ZVN0b3JhZ2Ugc2hhcmVkSFRUUENvb2tpZVN0b3JhZ2VdIHNldENvb2tpZUFjY2VwdFBvbGljeTpz
dGF0aWNfY2FzdDxOU0hUVFBDb29raWVBY2NlcHRQb2xpY3k+KHBvbGljeSldOwogCiAgICAgaWYg
KFJldGFpblB0cjxDRkhUVFBDb29raWVTdG9yYWdlUmVmPiBjb29raWVTdG9yYWdlID0gTmV0d29y
a1N0b3JhZ2VTZXNzaW9uOjpkZWZhdWx0U3RvcmFnZVNlc3Npb24oKS5jb29raWVTdG9yYWdlKCkp
Ci0gICAgICAgIFdLU2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShjb29raWVTdG9yYWdlLmdldCgp
LCBwb2xpY3kpOworICAgICAgICBDRkhUVFBDb29raWVTdG9yYWdlU2V0Q29va2llQWNjZXB0UG9s
aWN5KGNvb2tpZVN0b3JhZ2UuZ2V0KCksIHBvbGljeSk7CiAKICAgICBmb3IgKGNvbnN0IGF1dG8m
IHNlc3Npb24gOiBTZXNzaW9uVHJhY2tlcjo6c3RvcmFnZVNlc3Npb25NYXAoKS52YWx1ZXMoKSkg
ewogICAgICAgICBpZiAoc2Vzc2lvbikKLSAgICAgICAgICAgIFdLU2V0SFRUUENvb2tpZUFjY2Vw
dFBvbGljeShzZXNzaW9uLT5jb29raWVTdG9yYWdlKCkuZ2V0KCksIHBvbGljeSk7CisgICAgICAg
ICAgICBDRkhUVFBDb29raWVTdG9yYWdlU2V0Q29va2llQWNjZXB0UG9saWN5KHNlc3Npb24tPmNv
b2tpZVN0b3JhZ2UoKS5nZXQoKSwgcG9saWN5KTsKICAgICB9CiB9CiAgICAgCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJTeXN0ZW1J
bnRlcmZhY2UubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21h
Yy9XZWJTeXN0ZW1JbnRlcmZhY2UubW0KaW5kZXggMDNmMjg4MjMwMjExMzZmZTA4ZGQyZjczYzU0
YWJiMzVmMzNiOGU4Zi4uM2FiNTkwZDMwNGFhZDg5YzUxZjQwZDJlZWUxMDQxOGFhOTYyMGI3YSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMv
V2ViU3lzdGVtSW50ZXJmYWNlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvbWFjL1dlYlN5c3RlbUludGVyZmFjZS5tbQpAQCAtNDAsMjYgKzQwLDE4IEBA
IHZvaWQgSW5pdFdlYkNvcmVTeXN0ZW1JbnRlcmZhY2Uodm9pZCkKICAgICAgICAgSU5JVChBZHZh
bmNlRGVmYXVsdEJ1dHRvblB1bHNlQW5pbWF0aW9uKTsKICNlbmRpZgogICAgICAgICBJTklUKENB
TGF5ZXJFbnVtZXJhdGVSZWN0c0JlaW5nRHJhd25XaXRoQmxvY2spOwotICAgICAgICBJTklUKENH
Q29udGV4dEdldFNob3VsZFNtb290aEZvbnRzKTsKICAgICAgICAgSU5JVChDR1BhdHRlcm5DcmVh
dGVXaXRoSW1hZ2VBbmRUcmFuc2Zvcm0pOwogI2lmICFQTEFURk9STShJT1MpCiAgICAgICAgIElO
SVQoQ0dDb250ZXh0RHJhd3NXaXRoQ29ycmVjdFNoYWRvd09mZnNldHMpOwogI2VuZGlmCiAgICAg
ICAgIElOSVQoQ29weUNPTk5FQ1RQcm94eVJlc3BvbnNlKTsKLSAgICAgICAgSU5JVChDb3B5TlNV
UkxSZXNwb25zZVN0YXR1c0xpbmUpOwotICAgICAgICBJTklUKENvcHlOU1VSTFJlc3BvbnNlQ2Vy
dGlmaWNhdGVDaGFpbik7CiAjaWYgIVBMQVRGT1JNKElPUykKICAgICAgICAgSU5JVChEcmF3QmV6
ZWxlZFRleHRBcmVhKTsKLSAgICAgICAgSU5JVChEcmF3Q2Fwc0xvY2tJbmRpY2F0b3IpOwogICAg
ICAgICBJTklUKERyYXdGb2N1c1JpbmcpOwogICAgICAgICBJTklUKERyYXdGb2N1c1JpbmdBdFRp
bWUpOwogICAgICAgICBJTklUKERyYXdDZWxsRm9jdXNSaW5nV2l0aEZyYW1lQXRUaW1lKTsKICAg
ICAgICAgSU5JVChEcmF3TWVkaWFTbGlkZXJUcmFjayk7CiAgICAgICAgIElOSVQoRHJhd01lZGlh
VUlQYXJ0KTsKLSNlbmRpZgotICAgICAgICBJTklUKEdldEhUVFBSZXF1ZXN0UHJpb3JpdHkpOwot
ICAgICAgICBJTklUKEdldE5TVVJMUmVzcG9uc2VMYXN0TW9kaWZpZWREYXRlKTsKLSNpZiAhUExB
VEZPUk0oSU9TKQogICAgICAgICBJTklUKFNpZ25lZFB1YmxpY0tleUFuZENoYWxsZW5nZVN0cmlu
Zyk7CiAjZW5kaWYKICAgICAgICAgSU5JVChHZXRXZWJEZWZhdWx0Q0ZTdHJpbmdFbmNvZGluZyk7
CkBAIC02OCwxMCArNjAsNiBAQCB2b2lkIEluaXRXZWJDb3JlU3lzdGVtSW50ZXJmYWNlKHZvaWQp
CiAgICAgICAgIElOSVQoR2V0V2hlZWxFdmVudERlbHRhcyk7CiAgICAgICAgIElOSVQoR2V0TlNF
dmVudEtleUNoYXIpOwogICAgICAgICBJTklUKEhpdFRlc3RNZWRpYVVJUGFydCk7Ci0jZW5kaWYK
LSAgICAgICAgSU5JVChJbml0aWFsaXplTWF4aW11bUhUVFBDb25uZWN0aW9uQ291bnRQZXJIb3N0
KTsKLSAgICAgICAgSU5JVChIVFRQUmVxdWVzdEVuYWJsZVBpcGVsaW5pbmcpOwotI2lmICFQTEFU
Rk9STShJT1MpCiAgICAgICAgIElOSVQoTWVhc3VyZU1lZGlhVUlQYXJ0KTsKICAgICAgICAgSU5J
VChRVEluY2x1ZGVPbmx5TW9kZXJuTWVkaWFGaWxlVHlwZXMpOwogICAgICAgICBJTklUKFFUTW92
aWVEaXNhYmxlQ29tcG9uZW50KTsKQEAgLTc5LDMwICs2NywyMSBAQCB2b2lkIEluaXRXZWJDb3Jl
U3lzdGVtSW50ZXJmYWNlKHZvaWQpCiAgICAgICAgIElOSVQoUVRNb3ZpZUhhc0Nsb3NlZENhcHRp
b25zKTsKICAgICAgICAgSU5JVChRVE1vdmllTWF4VGltZUxvYWRlZCk7CiAgICAgICAgIElOSVQo
UVRNb3ZpZU1heFRpbWVMb2FkZWRDaGFuZ2VOb3RpZmljYXRpb24pOwotICAgICAgICBJTklUKFFU
TW92aWVNYXhUaW1lU2Vla2FibGUpOwogICAgICAgICBJTklUKFFUTW92aWVSZXNvbHZlZFVSTCk7
CiAgICAgICAgIElOSVQoUVRNb3ZpZVNlbGVjdFByZWZlcnJlZEFsdGVybmF0ZXMpOwogICAgICAg
ICBJTklUKFFUTW92aWVTZXRTaG93Q2xvc2VkQ2FwdGlvbnMpOwotICAgICAgICBJTklUKFFUTW92
aWVWaWV3U2V0RHJhd1N5bmNocm9ub3VzbHkpOwogICAgICAgICBJTklUKFFUR2V0U2l0ZXNJbk1l
ZGlhRG93bmxvYWRDYWNoZSk7CiAgICAgICAgIElOSVQoUVRDbGVhck1lZGlhRG93bmxvYWRDYWNo
ZUZvclNpdGUpOwogICAgICAgICBJTklUKFFUQ2xlYXJNZWRpYURvd25sb2FkQ2FjaGUpOwotICAg
ICAgICBJTklUKFNldENHRm9udFJlbmRlcmluZ01vZGUpOwogI2VuZGlmCiAgICAgICAgIElOSVQo
U2V0Q09OTkVDVFByb3h5QXV0aG9yaXphdGlvbkZvclN0cmVhbSk7CiAgICAgICAgIElOSVQoU2V0
Q09OTkVDVFByb3h5Rm9yU3RyZWFtKTsKICNpZiAhUExBVEZPUk0oSU9TKQogICAgICAgICBJTklU
KFNldERyYWdJbWFnZSk7CiAjZW5kaWYKLSAgICAgICAgSU5JVChTZXRIVFRQUmVxdWVzdE1heGlt
dW1Qcmlvcml0eSk7Ci0gICAgICAgIElOSVQoU2V0SFRUUFJlcXVlc3RQcmlvcml0eSk7Ci0gICAg
ICAgIElOSVQoU2V0SFRUUFJlcXVlc3RNaW5pbXVtRmFzdExhbmVQcmlvcml0eSk7Ci0gICAgICAg
IElOSVQoU2V0TlNVUkxSZXF1ZXN0U2hvdWxkQ29udGVudFNuaWZmKTsKICAgICAgICAgSU5JVChD
cmVhdGVQcml2YXRlU3RvcmFnZVNlc3Npb24pOwogICAgICAgICBJTklUKENvcHlSZXF1ZXN0V2l0
aFN0b3JhZ2VTZXNzaW9uKTsKLSAgICAgICAgSU5JVChDb3B5SFRUUENvb2tpZVN0b3JhZ2UpOwog
ICAgICAgICBJTklUKEdldEhUVFBDb29raWVBY2NlcHRQb2xpY3kpOwotICAgICAgICBJTklUKFNl
dEhUVFBDb29raWVBY2NlcHRQb2xpY3kpOwogICAgICAgICBJTklUKEhUVFBDb29raWVzKTsKICAg
ICAgICAgSU5JVChIVFRQQ29va2llc0ZvclVSTCk7CiAgICAgICAgIElOSVQoU2V0SFRUUENvb2tp
ZXNGb3JVUkwpOwpAQCAtMTExLDI0ICs5MCwxMSBAQCB2b2lkIEluaXRXZWJDb3JlU3lzdGVtSW50
ZXJmYWNlKHZvaWQpCiAKICNpZiAhUExBVEZPUk0oSU9TKQogICAgICAgICBJTklUKFNldE1ldGFk
YXRhVVJMKTsKLSNlbmRpZiAvLyAhUExBVEZPUk0oSU9TKQotCi0jaWYgIVBMQVRGT1JNKElPUykK
ICAgICAgICAgSU5JVChFeGVjdXRhYmxlV2FzTGlua2VkT25PckJlZm9yZVNub3dMZW9wYXJkKTsK
ICAgICAgICAgSU5JVChDb3B5RGVmYXVsdFNlYXJjaFByb3ZpZGVyRGlzcGxheU5hbWUpOwogICAg
ICAgICBJTklUKEN1cnNvcik7CiAgICAgICAgIElOSVQoV2luZG93U2V0U2NhbGVkRnJhbWUpOwog
ICAgICAgICBJTklUKFdpbmRvd1NldEFscGhhKTsKLSNlbmRpZiAvLyAhUExBVEZPUk0oSU9TKQot
Ci0jaWYgVVNFKENGTkVUV09SSykKLSAgICAgICAgSU5JVChHZXREZWZhdWx0SFRUUENvb2tpZVN0
b3JhZ2UpOwotICAgICAgICBJTklUKENvcHlDcmVkZW50aWFsRnJvbUNGUGVyc2lzdGVudFN0b3Jh
Z2UpOwotICAgICAgICBJTklUKFNldENGVVJMUmVxdWVzdFNob3VsZENvbnRlbnRTbmlmZik7Ci0g
ICAgICAgIElOSVQoU2V0UmVxdWVzdFN0b3JhZ2VTZXNzaW9uKTsKLSNlbmRpZgotCi0jaWYgIVBM
QVRGT1JNKElPUykKICAgICAgICAgSU5JVChTcGVlY2hTeW50aGVzaXNHZXRWb2ljZUlkZW50aWZp
ZXJzKTsKICAgICAgICAgSU5JVChTcGVlY2hTeW50aGVzaXNHZXREZWZhdWx0Vm9pY2VJZGVudGlm
aWVyRm9yTG9jYWxlKTsKICAgICAgICAgSU5JVChHZXRBWFRleHRNYXJrZXJUeXBlSUQpOwpAQCAt
MTQxLDE3ICsxMDcsNiBAQCB2b2lkIEluaXRXZWJDb3JlU3lzdGVtSW50ZXJmYWNlKHZvaWQpCiAg
ICAgICAgIElOSVQoQWNjZXNzaWJpbGl0eUhhbmRsZUZvY3VzQ2hhbmdlZCk7CiAgICAgICAgIElO
SVQoQ3JlYXRlQVhVSUVsZW1lbnRSZWYpOwogICAgICAgICBJTklUKFVucmVnaXN0ZXJVbmlxdWVJ
ZEZvckVsZW1lbnQpOwotI2VuZGlmCi0KLSAgICAgICAgSU5JVChHZXRDRlVSTFJlc3BvbnNlTUlN
RVR5cGUpOwotICAgICAgICBJTklUKEdldENGVVJMUmVzcG9uc2VVUkwpOwotICAgICAgICBJTklU
KEdldENGVVJMUmVzcG9uc2VIVFRQUmVzcG9uc2UpOwotICAgICAgICBJTklUKENvcHlDRlVSTFJl
c3BvbnNlU3VnZ2VzdGVkRmlsZW5hbWUpOwotICAgICAgICBJTklUKFNldENGVVJMUmVzcG9uc2VN
SU1FVHlwZSk7Ci0KLSAgICAgICAgSU5JVChDRlVSTFJlcXVlc3RBbGxvd0FsbFBvc3RDYWNoaW5n
KTsKLQotI2lmICFQTEFURk9STShJT1MpCiAgICAgICAgIElOSVQoTlNFbGFzdGljRGVsdGFGb3JU
aW1lRGVsdGEpOwogICAgICAgICBJTklUKE5TRWxhc3RpY0RlbHRhRm9yUmVib3VuZERlbHRhKTsK
ICAgICAgICAgSU5JVChOU1JlYm91bmREZWx0YUZvckVsYXN0aWNEZWx0YSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>267708</attachid>
            <date>2015-12-19 21:58:25 -0800</date>
            <delta_ts>2015-12-19 22:01:26 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-152463-20151219215747.patch</filename>
            <type>text/plain</type>
            <size>105089</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk0MjkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWQ0NmRlN2M0NGMxZWYx
ZGQ0NjdiMzNjYmNhN2Q4ZDgwNWFkM2E3Ny4uZjFjMjViMWNmNDAwZWIzNzllMjE1NmNmYTBlZTU4
YjdiMmNiMzI5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY1IEBACisyMDE1LTEyLTE5ICBBbmR5
IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBbQ0ZdIFJlcGxhY2UgQ0ZOZXR3
b3JrLXJlbGF0ZWQgV2ViS2l0U3lzdGVtSW50ZXJmYWNlIGNhbGxzIHdpdGggU1BJCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTI0NjMKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZXBsYWNlZCBXZWJraXRT
eXN0ZW1JbnRlcmZhY2UgY2FsbHMgdGhhdCB3cmFwcGVkIENGTmV0d29yayBTUEkgd2l0aCBkaXJl
Y3QgY2FsbHMgdG8gU1BJIHRoYXQgaXMgbm93IGZvcndhcmQKKyAgICAgICAgZGVjbGFyZWQgaW4g
Q0ZOZXR3b3JrU1BJLmguCisKKyAgICAgICAgQWxzbyByZW1vdmVkIHNvbWUgdW51c2VkIGRlY2xh
cmF0aW9ucyBhbmQgcmVuYW1lZCBSZXNvdXJjZVJlc3BvbnNlTWFjLm1tIHRvIFJlc291cmNlUmVz
cG9uc2VDb2NvYS5tbS4KKworICAgICAgICAqIFBsYXRmb3JtTWFjLmNtYWtlOgorICAgICAgICAq
IFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwbGF0Zm9ybS9p
b3MvV2ViQ29yZVN5c3RlbUludGVyZmFjZUlPUy5tbToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMv
V2ViQ29yZVN5c3RlbUludGVyZmFjZS5oOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9XZWJDb3Jl
U3lzdGVtSW50ZXJmYWNlLm1tOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0
b3JhZ2VTZXNzaW9uLmg6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jZi9DcmVkZW50aWFs
U3RvcmFnZUNGTmV0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNvcHlDcmVkZW50aWFsRnJvbVBy
b3RlY3Rpb25TcGFjZSk6CisgICAgICAgIChXZWJDb3JlOjpDcmVkZW50aWFsU3RvcmFnZTo6Z2V0
RnJvbVBlcnNpc3RlbnRTdG9yYWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2NmL05l
dHdvcmtTdG9yYWdlU2Vzc2lvbkNGTmV0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtT
dG9yYWdlU2Vzc2lvbjo6Y29va2llU3RvcmFnZSk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29y
ay9jZi9SZXNvdXJjZUhhbmRsZUNGTmV0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNl
SGFuZGxlOjpjcmVhdGVDRlVSTENvbm5lY3Rpb24pOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdv
cmsvY2YvUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlOjpjcmVhdGVS
ZXNvdXJjZVJlcXVlc3QpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VI
YW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZVdpdGhPcGVyYXRpb25RdWV1ZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlV2l0aE9w
ZXJhdGlvblF1ZXVlOjpkaWRSZWNlaXZlUmVzcG9uc2UpOgorICAgICAgICAqIHBsYXRmb3JtL25l
dHdvcmsvY2YvUmVzb3VyY2VSZXF1ZXN0Q0ZOZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVz
b3VyY2VSZXF1ZXN0Ojpkb1VwZGF0ZVBsYXRmb3JtUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3Q6OmRvVXBkYXRlUmVzb3VyY2VSZXF1ZXN0KToKKyAgICAgICAgKFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdDo6c2V0U3RvcmFnZVNlc3Npb24pOgorICAgICAgICAoV2Vi
Q29yZTo6aW5pdGlhbGl6ZU1heGltdW1IVFRQQ29ubmVjdGlvbkNvdW50UGVySG9zdCk6CisgICAg
ICAgIChXZWJDb3JlOjppbml0aWFsaXplSFRUUENvbm5lY3Rpb25TZXR0aW5nc09uU3RhcnR1cCk6
CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZVJlcXVlc3RDRk5ldC5oOgor
ICAgICAgICAoV2ViQ29yZTo6dG9SZXNvdXJjZUxvYWRQcmlvcml0eSk6CisgICAgICAgIChXZWJD
b3JlOjp0b1BsYXRmb3JtUmVxdWVzdFByaW9yaXR5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3
b3JrL2NmL1Jlc291cmNlUmVzcG9uc2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2Nm
L1Jlc291cmNlUmVzcG9uc2VDRk5ldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVJl
c3BvbnNlOjpwbGF0Zm9ybUNlcnRpZmljYXRlSW5mbyk6CisgICAgICAgICogcGxhdGZvcm0vbmV0
d29yay9jZi9TeW5jaHJvbm91c1Jlc291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGUu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U3luY2hyb25vdXNSZXNvdXJjZUhhbmRsZUNGVVJMQ29u
bmVjdGlvbkRlbGVnYXRlOjpkaWRSZWNlaXZlUmVzcG9uc2UpOgorICAgICAgICAqIHBsYXRmb3Jt
L25ldHdvcmsvY29jb2EvUmVzb3VyY2VSZXF1ZXN0Q29jb2EubW06CisgICAgICAgIChXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3Q6OmRvVXBkYXRlUmVzb3VyY2VSZXF1ZXN0KToKKyAgICAgICAgKFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdDo6ZG9VcGRhdGVQbGF0Zm9ybVJlcXVlc3QpOgorICAgICAg
ICAqIHBsYXRmb3JtL25ldHdvcmsvY29jb2EvUmVzb3VyY2VSZXNwb25zZUNvY29hLm1tOiBSZW5h
bWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VSZXNw
b25zZU1hYy5tbS4KKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2U6OnBsYXRmb3Jt
Q2VydGlmaWNhdGVJbmZvKToKKyAgICAgICAgKFdlYkNvcmU6OmNvcHlOU1VSTFJlc3BvbnNlU3Rh
dHVzTGluZSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlOjpwbGF0Zm9ybUxh
enlJbml0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2lvcy9RdWlja0xvb2suaDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2lvcy9RdWlja0xvb2subW06CisgICAgICAgICogcGxh
dGZvcm0vbmV0d29yay9pb3MvV2ViQ29yZVVSTFJlc3BvbnNlSU9TLm1tOgorICAgICAgICAoV2Vi
Q29yZTo6YWRqdXN0TUlNRVR5cGVJZk5lY2Vzc2FyeSk6CisgICAgICAgICogcGxhdGZvcm0vbmV0
d29yay9tYWMvUmVzb3VyY2VIYW5kbGVNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJj
ZUhhbmRsZTo6Y3JlYXRlTlNVUkxDb25uZWN0aW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3
b3JrL21hYy9XZWJDb3JlVVJMUmVzcG9uc2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3Jr
L21hYy9XZWJDb3JlVVJMUmVzcG9uc2UubW06CisgICAgICAgIChXZWJDb3JlOjphZGp1c3RNSU1F
VHlwZUlmTmVjZXNzYXJ5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9zcGkvY2YvQ0ZOZXR3b3JrQ29u
bmVjdGlvbkNhY2hlU1BJLmg6CisgICAgICAgICogcGxhdGZvcm0vc3BpL2NmL0NGTmV0d29ya1NQ
SS5oOgorCiAyMDE1LTEyLTE4ICBCcmVudCBGdWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgog
CiAgICAgICAgIFBsYWNlIGFuIHVwcGVyIGJvdW5kIG9uIGNhbnZhcyBwaXhlbCBjb3VudApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9tYWMv
Q2hhbmdlTG9nCmluZGV4IDUyNTBlMDJiYzE1Njc3NzA0MTgwNmM1MGYwM2Q5ZTcwOTZhZTNmZDIu
LjdkZWQxOThhMDg0ZTE0NmFkZDBkNzg0MjNjMGFiMjJhMDNkNjU0YzMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwyMiBAQAorMjAxNS0xMi0xOSAgQW5keSBFc3RlcyAgPGFlc3Rlc0BhcHBs
ZS5jb20+CisKKyAgICAgICAgW0NGXSBSZXBsYWNlIENGTmV0d29yay1yZWxhdGVkIFdlYktpdFN5
c3RlbUludGVyZmFjZSBjYWxscyB3aXRoIFNQSQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUyNDYzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWxleGV5
IFByb3NrdXJ5YWtvdi4KKworICAgICAgICBSZXBsYWNlZCBXZWJraXRTeXN0ZW1JbnRlcmZhY2Ug
Y2FsbHMgdGhhdCB3cmFwcGVkIENGTmV0d29yayBTUEkgd2l0aCBkaXJlY3QgY2FsbHMgdG8gU1BJ
IHRoYXQgaXMgbm93IGZvcndhcmQKKyAgICAgICAgZGVjbGFyZWQgaW4gQ0ZOZXR3b3JrU1BJLmgu
CisKKyAgICAgICAgKiBQbHVnaW5zL0hvc3RlZC9Ib3N0ZWROZXRzY2FwZVBsdWdpblN0cmVhbS5t
bToKKyAgICAgICAgKFdlYktpdDo6SG9zdGVkTmV0c2NhcGVQbHVnaW5TdHJlYW06OmRpZFJlY2Vp
dmVSZXNwb25zZSk6CisgICAgICAgICogUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdpblN0cmVhbS5t
bToKKyAgICAgICAgKFdlYk5ldHNjYXBlUGx1Z2luU3RyZWFtOjpkaWRSZWNlaXZlUmVzcG9uc2Up
OgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYlN5c3RlbUludGVyZmFjZS5tbToKKyAgICAg
ICAgKEluaXRXZWJDb3JlU3lzdGVtSW50ZXJmYWNlKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJW
aWV3L1dlYlByZWZlcmVuY2VzLm1tOgorICAgICAgICAoK1tXZWJQcmVmZXJlbmNlcyBfc2V0Q3Vy
cmVudE5ldHdvcmtMb2FkZXJTZXNzaW9uQ29va2llQWNjZXB0UG9saWN5Ol0pOgorCiAyMDE1LTEy
LTE3ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAgICAgIERh
dGEgZGV0ZWN0b3IgeWVsbG93IGhpZ2hsaWdodCBsb2NhdGlvbiBpcyB2ZXJ0aWNhbGx5IG1pcnJv
cmVkIGluIFdlYktpdDEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA2MzBhOTQyZDk4ZjFjZTlhNjQ0ZGY0YWIzNjMw
MGRlY2RhNGZmYTkxLi5mYzg1ODMzMGVmNjBjNDQ4YmQ2MjdlNjBlMWQ3OTZjZWQyNjI4ZjQwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTUtMTItMTkgIEFuZHkgRXN0ZXMgIDxhZXN0
ZXNAYXBwbGUuY29tPgorCisgICAgICAgIFtDRl0gUmVwbGFjZSBDRk5ldHdvcmstcmVsYXRlZCBX
ZWJLaXRTeXN0ZW1JbnRlcmZhY2UgY2FsbHMgd2l0aCBTUEkKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MjQ2MworCisgICAgICAgIFJldmlld2VkIGJ5
IEFsZXhleSBQcm9za3VyeWFrb3YuCisKKyAgICAgICAgUmVwbGFjZWQgV2Via2l0U3lzdGVtSW50
ZXJmYWNlIGNhbGxzIHRoYXQgd3JhcHBlZCBDRk5ldHdvcmsgU1BJIHdpdGggZGlyZWN0IGNhbGxz
IHRvIFNQSSB0aGF0IGlzIG5vdyBmb3J3YXJkCisgICAgICAgIGRlY2xhcmVkIGluIENGTmV0d29y
a1NQSS5oLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Byb2Nlc3ND
b2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6aW5pdGlhbGl6ZU5ldHdvcmtTZXR0aW5ncyk6Cisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3MvbWFjL05ldHdvcmtQcm9jZXNzTWFjLm1tOgorICAgICAg
ICAoV2ViS2l0OjpvdmVycmlkZVN5c3RlbVByb3hpZXMpOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvbWFjL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQubW06CisgICAgICAg
IChXZWJLaXQ6OldlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OnNldENvb2tpZUFjY2VwdFBvbGlj
eUZvckFsbENvbnRleHRzKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21h
Yy9XZWJTeXN0ZW1JbnRlcmZhY2UubW06CisgICAgICAgIChJbml0V2ViQ29yZVN5c3RlbUludGVy
ZmFjZSk6CisKIDIwMTUtMTItMTggIE1pY2hhZWwgQ2F0YW56YXJvICA8bWNhdGFuemFyb0BpZ2Fs
aWEuY29tPgogCiAgICAgICAgIFtHVEtdIFVucmV2aWV3ZWQsIGZpeCBHdGtEb2MgYWZ0ZXIgcjE5
MzYyMApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1NYWMuY21ha2UgYi9Tb3Vy
Y2UvV2ViQ29yZS9QbGF0Zm9ybU1hYy5jbWFrZQppbmRleCAwOGZjMGI2MjU3ZTRjNTlkNzAyZjVi
MmRhZmVjMzgzNDRlY2U4MWJjLi5kZjU4ZDI1MjJkMmI5Mzk3OWU2OWRiNGI2YmQwMTE0N2I4MzBj
OTFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybU1hYy5jbWFrZQorKysgYi9T
b3VyY2UvV2ViQ29yZS9QbGF0Zm9ybU1hYy5jbWFrZQpAQCAtNTIwLDYgKzUyMCw3IEBAIGxpc3Qo
QVBQRU5EIFdlYkNvcmVfU09VUkNFUwogICAgIHBsYXRmb3JtL25ldHdvcmsvY29jb2EvQ3JlZGVu
dGlhbENvY29hLm1tCiAgICAgcGxhdGZvcm0vbmV0d29yay9jb2NvYS9Qcm90ZWN0aW9uU3BhY2VD
b2NvYS5tbQogICAgIHBsYXRmb3JtL25ldHdvcmsvY29jb2EvUmVzb3VyY2VSZXF1ZXN0Q29jb2Eu
bW0KKyAgICBwbGF0Zm9ybS9uZXR3b3JrL2NvY29hL1Jlc291cmNlUmVzcG9uc2VDb2NvYS5tbQog
CiAgICAgcGxhdGZvcm0vbmV0d29yay9tYWMvQXV0aGVudGljYXRpb25NYWMubW0KICAgICBwbGF0
Zm9ybS9uZXR3b3JrL21hYy9CbG9iRGF0YUZpbGVSZWZlcmVuY2VNYWMubW0KQEAgLTUzMiw3ICs1
MzMsNiBAQCBsaXN0KEFQUEVORCBXZWJDb3JlX1NPVVJDRVMKICAgICBwbGF0Zm9ybS9uZXR3b3Jr
L21hYy9SZXNvdXJjZUVycm9yTWFjLm1tCiAgICAgcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3Vy
Y2VIYW5kbGVNYWMubW0KICAgICBwbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZVJlcXVlc3RN
YWMubW0KLSAgICBwbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZVJlc3BvbnNlTWFjLm1tCiAg
ICAgcGxhdGZvcm0vbmV0d29yay9tYWMvU3luY2hyb25vdXNMb2FkZXJDbGllbnQubW0KICAgICBw
bGF0Zm9ybS9uZXR3b3JrL21hYy9VVElVdGlsaXRpZXMubW0KICAgICBwbGF0Zm9ybS9uZXR3b3Jr
L21hYy9XZWJDb3JlUmVzb3VyY2VIYW5kbGVBc0RlbGVnYXRlLm1tCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYzA5ZDNkOTRmMzFh
NjljNjg4N2QyNzU0MDI0ODUyNjk5MWJhOGNjZC4uMTBhYjE2OTBlNWI4ZDNlZjRlNGQwZTFlNmYy
YTY1M2VjNjQ3NDQwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagpAQCAtMTk3Nyw3ICsxOTc3LDYgQEAKIAkJNTE0Qzc2NTAwQ0U5MjM0
RTAwN0VGM0NEIC8qIFJlc291cmNlRXJyb3JNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTRDNzY0NjBDRTkyMzRFMDA3RUYzQ0QgLyogUmVzb3Vy
Y2VFcnJvck1hYy5tbSAqLzsgfTsKIAkJNTE0Qzc2NTEwQ0U5MjM0RTAwN0VGM0NEIC8qIFJlc291
cmNlSGFuZGxlTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNTE0Qzc2NDcwQ0U5MjM0RTAwN0VGM0NEIC8qIFJlc291cmNlSGFuZGxlTWFjLm1tICov
OyB9OwogCQk1MTRDNzY1MzBDRTkyMzRFMDA3RUYzQ0QgLyogUmVzb3VyY2VSZXF1ZXN0TWFjLm1t
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE0Qzc2NDkw
Q0U5MjM0RTAwN0VGM0NEIC8qIFJlc291cmNlUmVxdWVzdE1hYy5tbSAqLzsgfTsKLQkJNTE0Qzc2
NTUwQ0U5MjM0RjAwN0VGM0NEIC8qIFJlc291cmNlUmVzcG9uc2VNYWMubW0gaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTRDNzY0QjBDRTkyMzRFMDA3RUYz
Q0QgLyogUmVzb3VyY2VSZXNwb25zZU1hYy5tbSAqLzsgfTsKIAkJNTE0Qzc2NkQwQ0U5MjNBMTAw
N0VGM0NEIC8qIENyZWRlbnRpYWxCYXNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDUxNEM3NjU4MENFOTIzQTEwMDdFRjNDRCAvKiBDcmVkZW50aWFs
QmFzZS5jcHAgKi87IH07CiAJCTUxNEM3NjZFMENFOTIzQTEwMDdFRjNDRCAvKiBDcmVkZW50aWFs
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTRDNzY1
OTBDRTkyM0ExMDA3RUYzQ0QgLyogQ3JlZGVudGlhbC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTUxNEM3NjZGMENFOTIzQTEwMDdFRjNDRCAvKiBG
b3JtRGF0YS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA1MTRDNzY1QTBDRTkyM0ExMDA3RUYzQ0QgLyogRm9ybURhdGEuY3BwICovOyB9OwpAQCAtNDAx
Myw2ICs0MDEyLDcgQEAKIAkJQTEwNEYyNDQxNEM3MUY3QTAwOUUyQzIzIC8qIENhY2hlZFNWR0Rv
Y3VtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBB
MTA0RjI0MjE0QzcxRjdBMDA5RTJDMjMgLyogQ2FjaGVkU1ZHRG9jdW1lbnQuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBMTBCQjU4NTE0ODRFM0E3
MDBCMkU4N0EgLyogUmVuZGVyU1ZHUmVjdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQTEwQkI1ODMxNDg0RTNBNzAwQjJFODdBIC8qIFJlbmRlclNWR1Jl
Y3QuaCAqLzsgfTsKIAkJQTEwQkI1OEIxNDg0RTNCMzAwQjJFODdBIC8qIFJlbmRlclNWR1NoYXBl
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTBCQjU4
OTE0ODRFM0IzMDBCMkU4N0EgLyogUmVuZGVyU1ZHU2hhcGUuaCAqLzsgfTsKKwkJQTEwRDdGRUMx
QzI2NzZEMTAwQzZDMTE1IC8qIENGTmV0d29ya0Nvbm5lY3Rpb25DYWNoZVNQSS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTEwRDdGRUIxQzI2NzZEMTAw
QzZDMTE1IC8qIENGTmV0d29ya0Nvbm5lY3Rpb25DYWNoZVNQSS5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUExMERCRjQ3MThGOTIzMTcwMDBENzBD
NiAvKiBRdWlja0xvb2tIYW5kbGVDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEExMERCRjQ2MThGOTIzMTcwMDBENzBDNiAvKiBRdWlja0xvb2tI
YW5kbGVDbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQlBMTBEQzc2QTE0NzQ3QkFCMDA1RTI0NzEgLyogU3R5bGVHcmlkRGF0YS5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTBEQzc2ODE0NzQ3
QkFCMDA1RTI0NzEgLyogU3R5bGVHcmlkRGF0YS5jcHAgKi87IH07CiAJCUExMERDNzZCMTQ3NDdC
QUIwMDVFMjQ3MSAvKiBTdHlsZUdyaWREYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBMTBEQzc2OTE0NzQ3QkFCMDA1RTI0NzEgLyogU3R5bGVHcmlk
RGF0YS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBA
IC00MDk2LDYgKzQwOTYsNyBAQAogCQlBMUVENzc4QzFCRTMyOTQwMDBEQzE3OTEgLyogRGV2aWNl
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExRUQ3
NzhBMUJFMzI5M0YwMERDMTc5MSAvKiBEZXZpY2UuY3BwICovOyB9OwogCQlBMUVENzc4RDFCRTMy
OTQwMDBEQzE3OTEgLyogRGV2aWNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBBMUVENzc4QjFCRTMyOTQwMDBEQzE3OTEgLyogRGV2aWNlLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQTFFRDc3OEYxQkU0
MjkxODAwREMxNzkxIC8qIFVJS2l0U1BJLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBBMUVENzc4RTFCRTQyOTE4MDBEQzE3OTEgLyogVUlLaXRTUEkuaCAq
LzsgfTsKKwkJQTFGNzhEMEMxQzI1NDI0QzAwMjQ1NDQ2IC8qIFJlc291cmNlUmVzcG9uc2VDb2Nv
YS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExRjc4
RDBCMUMyNTQyMkMwMDI0NTQ0NiAvKiBSZXNvdXJjZVJlc3BvbnNlQ29jb2EubW0gKi87IH07CiAJ
CUEyQjkyMTczMTZDNUNDNDIwMDQxRENEOSAvKiBJbnRSZWN0RXh0ZW50LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMkI5MjE3MjE2QzVDQzQyMDA0MURD
RDkgLyogSW50UmVjdEV4dGVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCUEzMUM0RTREMTZFMDJBQTYwMDJGNzk1NyAvKiBPRVNUZXh0dXJlSGFs
ZkZsb2F0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEEzMUM0RTRDMTZFMDJBQTYwMDJGNzk1NyAvKiBPRVNUZXh0dXJlSGFsZkZsb2F0LmNwcCAqLzsg
fTsKIAkJQTMxQzRFNEYxNkUwMkFCNDAwMkY3OTU3IC8qIE9FU1RleHR1cmVIYWxmRmxvYXQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEEzMUM0RTRFMTZF
MDJBQjQwMDJGNzk1NyAvKiBPRVNUZXh0dXJlSGFsZkZsb2F0LmggKi87IH07CkBAIC02MTI0LDcg
KzYxMjUsNiBAQAogCQlDRTdCMkRCNDE1ODZBQkFEMDA5OEIzRkEgLyogQWx0ZXJuYXRpdmVUZXh0
VUlDb250cm9sbGVyLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQ0U3QjJEQjAxNTg2QUJBRDAwOThCM0ZBIC8qIEFsdGVybmF0aXZlVGV4dFVJQ29udHJv
bGxlci5tbSAqLzsgfTsKIAkJQ0U3QjJEQjUxNTg2QUJBRDAwOThCM0ZBIC8qIFRleHRBbHRlcm5h
dGl2ZVdpdGhSYW5nZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQ0U3QjJEQjExNTg2QUJBRDAwOThCM0ZBIC8qIFRleHRBbHRlcm5hdGl2ZVdpdGhSYW5n
ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUNF
N0IyREI2MTU4NkFCQUQwMDk4QjNGQSAvKiBUZXh0QWx0ZXJuYXRpdmVXaXRoUmFuZ2UubW0gaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRTdCMkRCMjE1ODZB
QkFEMDA5OEIzRkEgLyogVGV4dEFsdGVybmF0aXZlV2l0aFJhbmdlLm1tICovOyB9OwotCQlDRTgy
NDVGMDE5QjY3MUJBMDBBQzAxMjIgLyogQ0ZOZXR3b3JrQ29ubmVjdGlvbkNhY2hlU1BJLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRTgyNDVFRjE5QjY3
MUJBMDBBQzAxMjIgLyogQ0ZOZXR3b3JrQ29ubmVjdGlvbkNhY2hlU1BJLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQ0U5NTIwOEExODExQjQ3NTAw
N0E1MzkyIC8qIFdlYlNhZmVJbmNyZW1lbnRhbFN3ZWVwZXJJT1MuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyQzRDQjFEMTYxQTEzMTIwMEQyMTREQSAv
KiBXZWJTYWZlSW5jcmVtZW50YWxTd2VlcGVySU9TLmggKi87IH07CiAJCUNFQzMzN0FEMUE0NjA3
MUYwMDlCODUyMyAvKiBTZXJ2ZXJzU1BJLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBDRUMzMzdBQzFBNDYwNzFGMDA5Qjg1MjMgLyogU2VydmVyc1NQSS5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUNFQzMz
N0FGMUE0NjA4NkQwMDlCODUyMyAvKiBHcmFwaGljc1NlcnZpY2VzU1BJLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRUMzMzdBRTFBNDYwODZEMDA5Qjg1
MjMgLyogR3JhcGhpY3NTZXJ2aWNlc1NQSS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CkBAIC05NDAxLDcgKzk0MDEsNiBAQAogCQk1MTRDNzY0NjBDRTky
MzRFMDA3RUYzQ0QgLyogUmVzb3VyY2VFcnJvck1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgcGF0aCA9IFJlc291cmNlRXJyb3JNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTUxNEM3NjQ3MENFOTIzNEUwMDdFRjNDRCAvKiBSZXNvdXJjZUhhbmRsZU1h
Yy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFJlc291cmNlSGFu
ZGxlTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTRDNzY0OTBDRTkyMzRF
MDA3RUYzQ0QgLyogUmVzb3VyY2VSZXF1ZXN0TWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBwYXRoID0gUmVzb3VyY2VSZXF1ZXN0TWFjLm1tOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQk1MTRDNzY0QjBDRTkyMzRFMDA3RUYzQ0QgLyogUmVzb3VyY2VSZXNwb25z
ZU1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFJlc291cmNl
UmVzcG9uc2VNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxNEM3NjU4MENF
OTIzQTEwMDdFRjNDRCAvKiBDcmVkZW50aWFsQmFzZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBDcmVkZW50aWFsQmFzZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTUxNEM3NjU5MENFOTIzQTEwMDdFRjNDRCAvKiBDcmVkZW50aWFsLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENyZWRlbnRpYWwuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNTE0Qzc2NUEwQ0U5MjNBMTAwN0VGM0NEIC8qIEZvcm1EYXRhLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZvcm1EYXRhLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTExNTc3LDYgKzExNTc2LDcgQEAKIAkJQTEwQkI1ODMx
NDg0RTNBNzAwQjJFODdBIC8qIFJlbmRlclNWR1JlY3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gUmVuZGVyU1ZHUmVjdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlBMTBCQjU4ODE0ODRFM0IzMDBCMkU4N0EgLyogUmVuZGVyU1ZHU2hhcGUuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVyU1ZHU2hhcGUuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlBMTBCQjU4OTE0ODRFM0IzMDBCMkU4N0EgLyogUmVuZGVy
U1ZHU2hhcGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVyU1ZHU2hh
cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTEwRDdGRUIxQzI2NzZEMTAwQzZD
MTE1IC8qIENGTmV0d29ya0Nvbm5lY3Rpb25DYWNoZVNQSS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBDRk5ldHdvcmtDb25uZWN0aW9uQ2FjaGVTUEkuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQTEwREJGNDYxOEY5MjMxNzAwMEQ3MEM2IC8qIFF1aWNrTG9va0hh
bmRsZUNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBRdWlja0xvb2tI
YW5kbGVDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTEwREM3NjgxNDc0
N0JBQjAwNUUyNDcxIC8qIFN0eWxlR3JpZERhdGEuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gU3R5bGVHcmlkRGF0YS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUExMERDNzY5MTQ3NDdCQUIwMDVFMjQ3MSAvKiBTdHlsZUdyaWREYXRhLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0eWxlR3JpZERhdGEuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTExNjU2LDYgKzExNjU2LDcgQEAKIAkJQTFFRDc3OEExQkUzMjkz
RjAwREMxNzkxIC8qIERldmljZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBEZXZpY2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMUVENzc4QjFC
RTMyOTQwMDBEQzE3OTEgLyogRGV2aWNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IERldmljZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMUVENzc4RTFCRTQy
OTE4MDBEQzE3OTEgLyogVUlLaXRTUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gVUlLaXRTUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTFGNzhEMEIxQzI1
NDIyQzAwMjQ1NDQ2IC8qIFJlc291cmNlUmVzcG9uc2VDb2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFJlc291cmNlUmVzcG9uc2VDb2NvYS5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTIwOEUyMjJBNTZBMEM3NTc1RjJBNzJFIC8qIFJlbmRl
ck1hdGhNTE1lbmNsb3NlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRl
ck1hdGhNTE1lbmNsb3NlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUEyQjkyMTcy
MTZDNUNDNDIwMDQxRENEOSAvKiBJbnRSZWN0RXh0ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEludFJlY3RFeHRlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQTMxQzRFNEMxNkUwMkFBNjAwMkY3OTU3IC8qIE9FU1RleHR1cmVIYWxmRmxvYXQuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gT0VTVGV4dHVyZUhhbGZGbG9hdC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMzk5OSw3ICsxNDAwMCw2IEBACiAJ
CUNFN0IyREIwMTU4NkFCQUQwMDk4QjNGQSAvKiBBbHRlcm5hdGl2ZVRleHRVSUNvbnRyb2xsZXIu
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBBbHRlcm5hdGl2ZVRl
eHRVSUNvbnRyb2xsZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNFN0IyREIx
MTU4NkFCQUQwMDk4QjNGQSAvKiBUZXh0QWx0ZXJuYXRpdmVXaXRoUmFuZ2UuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGV4dEFsdGVybmF0aXZlV2l0aFJhbmdlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNFN0IyREIyMTU4NkFCQUQwMDk4QjNGQSAvKiBUZXh0
QWx0ZXJuYXRpdmVXaXRoUmFuZ2UubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IHBhdGggPSBUZXh0QWx0ZXJuYXRpdmVXaXRoUmFuZ2UubW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCUNFODI0NUVGMTlCNjcxQkEwMEFDMDEyMiAvKiBDRk5ldHdvcmtDb25uZWN0aW9u
Q2FjaGVTUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ0ZOZXR3b3JrQ29u
bmVjdGlvbkNhY2hlU1BJLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNFQzMzN0FD
MUE0NjA3MUYwMDlCODUyMyAvKiBTZXJ2ZXJzU1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFNlcnZlcnNTUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0VD
MzM3QUUxQTQ2MDg2RDAwOUI4NTIzIC8qIEdyYXBoaWNzU2VydmljZXNTUEkuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR3JhcGhpY3NTZXJ2aWNlc1NQSS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlDRUNBREZDMjE1Mzc3OEZGMDBFMzcwNjggLyogRGljdGF0aW9u
QWx0ZXJuYXRpdmUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRGlj
dGF0aW9uQWx0ZXJuYXRpdmUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTcy
MjcsNyArMTcyMjcsNyBAQAogCQkJY2hpbGRyZW4gPSAoCiAJCQkJRTEwQTM5RTExQUU4NEU3MTAw
QTI5QUUzIC8qIENGQnVuZGxlU1BJLmggKi8sCiAJCQkJNjUwODZEQTcxOUFDMTcxOTAwOUFGNDZC
IC8qIENGTG9jYWxlU1BJLmggKi8sCi0JCQkJQ0U4MjQ1RUYxOUI2NzFCQTAwQUMwMTIyIC8qIENG
TmV0d29ya0Nvbm5lY3Rpb25DYWNoZVNQSS5oICovLAorCQkJCUExMEQ3RkVCMUMyNjc2RDEwMEM2
QzExNSAvKiBDRk5ldHdvcmtDb25uZWN0aW9uQ2FjaGVTUEkuaCAqLywKIAkJCQlDRTEyNTI1QTFB
MUMwMTgyMDA4NjQ0ODAgLyogQ0ZOZXR3b3JrU1BJLmggKi8sCiAJCQkJNDQ0OUE0MDQxQTk2NEIw
MDAwQjY0QUQ1IC8qIENvcmVNZWRpYVNQSS5oICovLAogCQkJKTsKQEAgLTE3NDkyLDcgKzE3NDky
LDYgQEAKIAkJCQk1MTRDNzY0NjBDRTkyMzRFMDA3RUYzQ0QgLyogUmVzb3VyY2VFcnJvck1hYy5t
bSAqLywKIAkJCQk1MTRDNzY0NzBDRTkyMzRFMDA3RUYzQ0QgLyogUmVzb3VyY2VIYW5kbGVNYWMu
bW0gKi8sCiAJCQkJNTE0Qzc2NDkwQ0U5MjM0RTAwN0VGM0NEIC8qIFJlc291cmNlUmVxdWVzdE1h
Yy5tbSAqLywKLQkJCQk1MTRDNzY0QjBDRTkyMzRFMDA3RUYzQ0QgLyogUmVzb3VyY2VSZXNwb25z
ZU1hYy5tbSAqLywKIAkJCQlFMTgwODExNDE2RkNGOUNCMDBCODBEMDcgLyogU3luY2hyb25vdXNM
b2FkZXJDbGllbnQubW0gKi8sCiAJCQkJMUZBRkJGMTYxNUE1RkE1MjAwMDgzQTIwIC8qIFVUSVV0
aWxpdGllcy5oICovLAogCQkJCTFGQUZCRjE3MTVBNUZBNTIwMDA4M0EyMCAvKiBVVElVdGlsaXRp
ZXMubW0gKi8sCkBAIC0xNzg2Nyw2ICsxNzg2Niw3IEBACiAJCQkJMzcyQURBMzcxOTdGNDdCOTAw
RkM1MDFFIC8qIFByb3RlY3Rpb25TcGFjZUNvY29hLmggKi8sCiAJCQkJMzcyQURBMzkxOTdGNjg3
NjAwRkM1MDFFIC8qIFByb3RlY3Rpb25TcGFjZUNvY29hLm1tICovLAogCQkJCTdFN0RFMUZDMTk1
Q0VGMjYwMDM1MzYzQiAvKiBSZXNvdXJjZVJlcXVlc3RDb2NvYS5tbSAqLywKKwkJCQlBMUY3OEQw
QjFDMjU0MjJDMDAyNDU0NDYgLyogUmVzb3VyY2VSZXNwb25zZUNvY29hLm1tICovLAogCQkJKTsK
IAkJCXBhdGggPSBjb2NvYTsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0yNDY3MSw2
ICsyNDY3MSw3IEBACiAJCQkJQUIyM0EzMjgwOUJCQTdEMDAwNjdDQzUzIC8qIEJlZm9yZVRleHRJ
bnNlcnRlZEV2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk4NTAzMUIzRDBBNDRFRkM3MDBGOTky
RTAgLyogQmVmb3JlVW5sb2FkRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyQzNEQTI0MEQw
MDZDMUQwMEVGNkYyNiAvKiBCaWRpQ29udGV4dC5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTEwRDdG
RUMxQzI2NzZEMTAwQzZDMTE1IC8qIENGTmV0d29ya0Nvbm5lY3Rpb25DYWNoZVNQSS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQjJDM0RBMjUwRDAwNkMxRDAwRUY2RjI2IC8qIEJpZGlSZXNvbHZlci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQkNFNzg5ODYxMTIwRTdBNjAwNjBFQ0U1IC8qIEJpZGlSdW4u
aCBpbiBIZWFkZXJzICovLAogCQkJCUE4QzQwMjkzMTM0OEIyMjIwMDYzRjFFNSAvKiBCaWRpUnVu
TGlzdC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNDc1Miw3ICsyNDc1Myw2IEBACiAJCQkJQ0RFOEI1
RjExQTY5Nzc4QjAwQjRCNjZBIC8qIENETVNlc3Npb25DbGVhcktleS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNUZBOTA0Q0ExNzhFNjFGNTAwNEM4QTJEIC8qIENlcnRpZmljYXRlSW5mby5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJRTEwQTM5RTIxQUU4NEU3MTAwQTI5QUUzIC8qIENGQnVuZGxlU1BJLmgg
aW4gSGVhZGVycyAqLywKLQkJCQlDRTgyNDVGMDE5QjY3MUJBMDBBQzAxMjIgLyogQ0ZOZXR3b3Jr
Q29ubmVjdGlvbkNhY2hlU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQlDRTEyNTI1QjFBMUMwMTgy
MDA4NjQ0ODAgLyogQ0ZOZXR3b3JrU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMUE4RTU2NzE3
NTUyQjJBMDA3NDg4RTcgLyogQ0ZVUkxFeHRyYXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUZFMzZG
RDE1MTZDNzgyNjUwMEY4ODdDMSAvKiBDaGFuZ2VWZXJzaW9uRGF0YS5oIGluIEhlYWRlcnMgKi8s
CkBAIC0yOTA2Nyw2ICsyOTA2Nyw3IEBACiAJCQkJODUwNjU3MDEwQUFCNDc2MzAwMkQxNUMwIC8q
IERPTVN0eWxlU2hlZXQubW0gaW4gU291cmNlcyAqLywKIAkJCQk4NTA2NTcwMzBBQUI0NzYzMDAy
RDE1QzAgLyogRE9NU3R5bGVTaGVldExpc3QubW0gaW4gU291cmNlcyAqLywKIAkJCQk4NUFDQTk5
RDBBOUI1NzU5MDA2NzFFOTAgLyogRE9NVGV4dC5tbSBpbiBTb3VyY2VzICovLAorCQkJCUExRjc4
RDBDMUMyNTQyNEMwMDI0NTQ0NiAvKiBSZXNvdXJjZVJlc3BvbnNlQ29jb2EubW0gaW4gU291cmNl
cyAqLywKIAkJCQk5MzNBMTRBQTBCN0QxRDA5MDBBNTNGRkQgLyogRE9NVGV4dEV2ZW50Lm1tIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMTg4NjA0QjMwRjJFNjU0QTAwMEI2NDQzIC8qIERPTVRpbWVyLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTc2RkMyQjBCMTIzNzBEQTAwMDZBOTkxQSAvKiBET01Ub2tl
bkxpc3QuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0zMDc4OCw3ICszMDc4OSw2IEBACiAJCQkJNTE0
Qzc2NTMwQ0U5MjM0RTAwN0VGM0NEIC8qIFJlc291cmNlUmVxdWVzdE1hYy5tbSBpbiBTb3VyY2Vz
ICovLAogCQkJCTUxNEM3NjdFMENFOTIzQTEwMDdFRjNDRCAvKiBSZXNvdXJjZVJlc3BvbnNlQmFz
ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3RUU2ODQ3MTEyRDI2RTM4MDBFNzk0MTUgLyogUmVz
b3VyY2VSZXNwb25zZUNGTmV0LmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTUxNEM3NjU1MENFOTIz
NEYwMDdFRjNDRCAvKiBSZXNvdXJjZVJlc3BvbnNlTWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QURCQUQ2RUUxQkNERDk1NTAwMzgxMzI1IC8qIFJlc291cmNlVXNhZ2VPdmVybGF5LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUFERkUyQjU1MUJENUY2MTIwMERBQjQ1NyAvKiBSZXNvdXJjZVVzYWdl
T3ZlcmxheUNvY29hLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJRkQzMTYwQTQxMkIwMjZGNzAwQzFB
MzU5IC8qIFJldmVyYi5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2lvcy9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlSU9TLm1tIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vaW9zL1dlYkNvcmVTeXN0ZW1JbnRlcmZhY2VJT1MubW0KaW5kZXggNGUz
MDM2NmQ0ZWI3ZmFiMTg4ZGU0Y2FlOTBmOWQ1NTExZjkwNmRhYi4uMzVjNzRmNTc3NGU3NzFiNjUw
NTEyNzQ0ZjQ3ZjA4ZWYyYWQwYTQwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vaW9zL1dlYkNvcmVTeXN0ZW1JbnRlcmZhY2VJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vaW9zL1dlYkNvcmVTeXN0ZW1JbnRlcmZhY2VJT1MubW0KQEAgLTI3LDU0ICsyNywy
NyBAQAogI2ltcG9ydCAiV2ViQ29yZVN5c3RlbUludGVyZmFjZS5oIgogCiBXRUJDT1JFX0VYUE9S
VCB2b2lkICgqd2tDQUxheWVyRW51bWVyYXRlUmVjdHNCZWluZ0RyYXduV2l0aEJsb2NrKShDQUxh
eWVyICosIENHQ29udGV4dFJlZiBjb250ZXh0LCB2b2lkICheYmxvY2spKENHUmVjdCByZWN0KSk7
Ci1XRUJDT1JFX0VYUE9SVCBCT09MICgqd2tDR0NvbnRleHRHZXRTaG91bGRTbW9vdGhGb250cyko
Q0dDb250ZXh0UmVmKTsKIFdFQkNPUkVfRVhQT1JUIENHUGF0dGVyblJlZiAoKndrQ0dQYXR0ZXJu
Q3JlYXRlV2l0aEltYWdlQW5kVHJhbnNmb3JtKShDR0ltYWdlUmVmLCBDR0FmZmluZVRyYW5zZm9y
bSwgaW50KTsKIFdFQkNPUkVfRVhQT1JUIHZvaWQgKCp3a0NsZWFyR2x5cGhWZWN0b3IpKHZvaWQq
IGdseXBocyk7CiBXRUJDT1JFX0VYUE9SVCBPU1N0YXR1cyAoKndrQ29udmVydENoYXJUb0dseXBo
cykodm9pZCogc3R5bGVHcm91cCwgY29uc3QgVW5pQ2hhciosIHVuc2lnbmVkIG51bUNoYXJhY3Rl
cnMsIHZvaWQqIGdseXBocyk7Ci1XRUJDT1JFX0VYUE9SVCBOU0RhdGUgKigqd2tHZXROU1VSTFJl
c3BvbnNlTGFzdE1vZGlmaWVkRGF0ZSkoTlNVUkxSZXNwb25zZSAqcmVzcG9uc2UpOwogV0VCQ09S
RV9FWFBPUlQgYm9vbCAoKndrQ0dDb250ZXh0SXNQREZDb250ZXh0KShDR0NvbnRleHRSZWYpOwot
V0VCQ09SRV9FWFBPUlQgTlNTdHJpbmcqICgqd2tDb3B5TlNVUkxSZXNwb25zZVN0YXR1c0xpbmUp
KE5TVVJMUmVzcG9uc2UqKTsKLVdFQkNPUkVfRVhQT1JUIHZvaWQgKCp3a1NldE5TVVJMUmVxdWVz
dFNob3VsZENvbnRlbnRTbmlmZikoTlNNdXRhYmxlVVJMUmVxdWVzdCAqLCBCT09MKTsKIFdFQkNP
UkVfRVhQT1JUIGlkICgqd2tDcmVhdGVOU1VSTENvbm5lY3Rpb25EZWxlZ2F0ZVByb3h5KSh2b2lk
KTsKLVdFQkNPUkVfRVhQT1JUIHVuc2lnbmVkICgqd2tJbml0aWFsaXplTWF4aW11bUhUVFBDb25u
ZWN0aW9uQ291bnRQZXJIb3N0KSh1bnNpZ25lZCBwcmVmZXJyZWRDb25uZWN0aW9uQ291bnQpOwot
V0VCQ09SRV9FWFBPUlQgaW50ICgqd2tHZXRIVFRQUmVxdWVzdFByaW9yaXR5KShDRlVSTFJlcXVl
c3RSZWYpOwotV0VCQ09SRV9FWFBPUlQgdm9pZCAoKndrU2V0SFRUUFJlcXVlc3RNYXhpbXVtUHJp
b3JpdHkpKGludCBwcmlvcml0eSk7Ci1XRUJDT1JFX0VYUE9SVCB2b2lkICgqd2tTZXRIVFRQUmVx
dWVzdFByaW9yaXR5KShDRlVSTFJlcXVlc3RSZWYsIGludCBwcmlvcml0eSk7Ci1XRUJDT1JFX0VY
UE9SVCB2b2lkICgqd2tTZXRIVFRQUmVxdWVzdE1pbmltdW1GYXN0TGFuZVByaW9yaXR5KShpbnQg
cHJpb3JpdHkpOwotV0VCQ09SRV9FWFBPUlQgdm9pZCAoKndrSFRUUFJlcXVlc3RFbmFibGVQaXBl
bGluaW5nKShDRlVSTFJlcXVlc3RSZWYpOwogV0VCQ09SRV9FWFBPUlQgdm9pZCAoKndrU2V0Q09O
TkVDVFByb3h5Rm9yU3RyZWFtKShDRlJlYWRTdHJlYW1SZWYsIENGU3RyaW5nUmVmIHByb3h5SG9z
dCwgQ0ZOdW1iZXJSZWYgcHJveHlQb3J0KTsKIFdFQkNPUkVfRVhQT1JUIHZvaWQgKCp3a1NldENP
Tk5FQ1RQcm94eUF1dGhvcml6YXRpb25Gb3JTdHJlYW0pKENGUmVhZFN0cmVhbVJlZiwgQ0ZTdHJp
bmdSZWYgcHJveHlBdXRob3JpemF0aW9uU3RyaW5nKTsKIFdFQkNPUkVfRVhQT1JUIHZvaWQgKCp3
a1NldENvb2tpZVN0b3JhZ2VQcml2YXRlQnJvd3NpbmdFbmFibGVkKShCT09MKTsKIFdFQkNPUkVf
RVhQT1JUIENGSFRUUE1lc3NhZ2VSZWYgKCp3a0NvcHlDT05ORUNUUHJveHlSZXNwb25zZSkoQ0ZS
ZWFkU3RyZWFtUmVmLCBDRlVSTFJlZiByZXNwb25zZVVSTCwgQ0ZTdHJpbmdSZWYgcHJveHlIb3N0
LCBDRk51bWJlclJlZiBwcm94eVBvcnQpOwogV0VCQ09SRV9FWFBPUlQgdm9pZCAoKndrU2V0TGF5
ZXJDb250ZW50c1NjYWxlKShDQUxheWVyICopOwotV0VCQ09SRV9FWFBPUlQgdm9pZCAoKndrQ0ZV
UkxSZXF1ZXN0QWxsb3dBbGxQb3N0Q2FjaGluZykoQ0ZVUkxSZXF1ZXN0UmVmKTsKLVdFQkNPUkVf
RVhQT1JUIENGQXJyYXlSZWYgKCp3a0NvcHlOU1VSTFJlc3BvbnNlQ2VydGlmaWNhdGVDaGFpbiko
TlNVUkxSZXNwb25zZSopOwogV0VCQ09SRV9FWFBPUlQgQ0ZTdHJpbmdFbmNvZGluZyAoKndrR2V0
V2ViRGVmYXVsdENGU3RyaW5nRW5jb2RpbmcpKHZvaWQpOwogCi0jaWYgVVNFKENGTkVUV09SSykK
LVdFQkNPUkVfRVhQT1JUIENGSFRUUENvb2tpZVN0b3JhZ2VSZWYgKCp3a0dldERlZmF1bHRIVFRQ
Q29va2llU3RvcmFnZSkoKTsKLVdFQkNPUkVfRVhQT1JUIFdLQ0ZVUkxDcmVkZW50aWFsUmVmICgq
d2tDb3B5Q3JlZGVudGlhbEZyb21DRlBlcnNpc3RlbnRTdG9yYWdlKShDRlVSTFByb3RlY3Rpb25T
cGFjZVJlZiBwcm90ZWN0aW9uU3BhY2UpOwotV0VCQ09SRV9FWFBPUlQgdm9pZCAoKndrU2V0Q0ZV
UkxSZXF1ZXN0U2hvdWxkQ29udGVudFNuaWZmKShDRk11dGFibGVVUkxSZXF1ZXN0UmVmLCBib29s
KTsKLVdFQkNPUkVfRVhQT1JUIHZvaWQgKCp3a1NldFJlcXVlc3RTdG9yYWdlU2Vzc2lvbikoQ0ZV
UkxTdG9yYWdlU2Vzc2lvblJlZiwgQ0ZNdXRhYmxlVVJMUmVxdWVzdFJlZik7Ci0jZW5kaWYKLQog
V0VCQ09SRV9FWFBPUlQgQ0ZVUkxTdG9yYWdlU2Vzc2lvblJlZiAoKndrQ3JlYXRlUHJpdmF0ZVN0
b3JhZ2VTZXNzaW9uKShDRlN0cmluZ1JlZik7CiBXRUJDT1JFX0VYUE9SVCBOU1VSTFJlcXVlc3Qq
ICgqd2tDb3B5UmVxdWVzdFdpdGhTdG9yYWdlU2Vzc2lvbikoQ0ZVUkxTdG9yYWdlU2Vzc2lvblJl
ZiwgTlNVUkxSZXF1ZXN0Kik7Ci1XRUJDT1JFX0VYUE9SVCBDRkhUVFBDb29raWVTdG9yYWdlUmVm
ICgqd2tDb3B5SFRUUENvb2tpZVN0b3JhZ2UpKENGVVJMU3RvcmFnZVNlc3Npb25SZWYpOwogV0VC
Q09SRV9FWFBPUlQgdW5zaWduZWQgKCp3a0dldEhUVFBDb29raWVBY2NlcHRQb2xpY3kpKENGSFRU
UENvb2tpZVN0b3JhZ2VSZWYpOwotV0VCQ09SRV9FWFBPUlQgdm9pZCAoKndrU2V0SFRUUENvb2tp
ZUFjY2VwdFBvbGljeSkoQ0ZIVFRQQ29va2llU3RvcmFnZVJlZiwgdW5zaWduZWQpOwogV0VCQ09S
RV9FWFBPUlQgTlNBcnJheSAqKCp3a0hUVFBDb29raWVzKShDRkhUVFBDb29raWVTdG9yYWdlUmVm
KTsKIFdFQkNPUkVfRVhQT1JUIE5TQXJyYXkgKigqd2tIVFRQQ29va2llc0ZvclVSTCkoQ0ZIVFRQ
Q29va2llU3RvcmFnZVJlZiwgTlNVUkwgKiwgTlNVUkwgKik7CiBXRUJDT1JFX0VYUE9SVCB2b2lk
ICgqd2tTZXRIVFRQQ29va2llc0ZvclVSTCkoQ0ZIVFRQQ29va2llU3RvcmFnZVJlZiwgTlNBcnJh
eSAqLCBOU1VSTCAqLCBOU1VSTCAqKTsKIFdFQkNPUkVfRVhQT1JUIHZvaWQgKCp3a0RlbGV0ZUFs
bEhUVFBDb29raWVzKShDRkhUVFBDb29raWVTdG9yYWdlUmVmKTsKIFdFQkNPUkVfRVhQT1JUIHZv
aWQgKCp3a0RlbGV0ZUhUVFBDb29raWUpKENGSFRUUENvb2tpZVN0b3JhZ2VSZWYsIE5TSFRUUENv
b2tpZSAqKTsKIAotV0VCQ09SRV9FWFBPUlQgQ0ZTdHJpbmdSZWYgKCp3a0dldENGVVJMUmVzcG9u
c2VNSU1FVHlwZSkoQ0ZVUkxSZXNwb25zZVJlZik7Ci1XRUJDT1JFX0VYUE9SVCBDRlVSTFJlZiAo
KndrR2V0Q0ZVUkxSZXNwb25zZVVSTCkoQ0ZVUkxSZXNwb25zZVJlZik7Ci1XRUJDT1JFX0VYUE9S
VCBDRkhUVFBNZXNzYWdlUmVmICgqd2tHZXRDRlVSTFJlc3BvbnNlSFRUUFJlc3BvbnNlKShDRlVS
TFJlc3BvbnNlUmVmKTsKLVdFQkNPUkVfRVhQT1JUIENGU3RyaW5nUmVmICgqd2tDb3B5Q0ZVUkxS
ZXNwb25zZVN1Z2dlc3RlZEZpbGVuYW1lKShDRlVSTFJlc3BvbnNlUmVmKTsKLVdFQkNPUkVfRVhQ
T1JUIHZvaWQgKCp3a1NldENGVVJMUmVzcG9uc2VNSU1FVHlwZSkoQ0ZVUkxSZXNwb25zZVJlZiwg
Q0ZTdHJpbmdSZWYgbWltZVR5cGUpOwotCiBXRUJDT1JFX0VYUE9SVCB2b2lkKCp3a0Rlc3Ryb3lS
ZW5kZXJpbmdSZXNvdXJjZXMpKHZvaWQpOwogCiBXRUJDT1JFX0VYUE9SVCBib29sICgqd2tDYXB0
aW9uQXBwZWFyYW5jZUhhc1VzZXJQcmVmZXJlbmNlcykodm9pZCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViQ29yZVN5c3RlbUludGVyZmFjZS5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYkNvcmVTeXN0ZW1JbnRlcmZhY2UuaAppbmRleCA2MGI0
ODkwNTczYWQ2YTg1ZDNiMGEzNzNjYzhjYTI1ZmYzOWYwMjExLi5hOWZhY2I0ZjJhOTM2NWI5ZWQw
ZmVkNWU5NmExOWM5NzBhNWE4ZGE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tYWMvV2ViQ29yZVN5c3RlbUludGVyZmFjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21hYy9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmgKQEAgLTEyMSw3ICsxMjEsNiBAQCBleHRl
cm4gIkMiIHsKIGV4dGVybiB2b2lkICgqd2tBZHZhbmNlRGVmYXVsdEJ1dHRvblB1bHNlQW5pbWF0
aW9uKShOU0J1dHRvbkNlbGwgKik7CiBleHRlcm4gdm9pZCAoKndrQ0FMYXllckVudW1lcmF0ZVJl
Y3RzQmVpbmdEcmF3bldpdGhCbG9jaykoQ0FMYXllciAqLCBDR0NvbnRleHRSZWYsIHZvaWQgKF5i
bG9jaykoQ0dSZWN0IHJlY3QpKTsKIAotZXh0ZXJuIEJPT0wgKCp3a0NHQ29udGV4dEdldFNob3Vs
ZFNtb290aEZvbnRzKShDR0NvbnRleHRSZWYpOwogdHlwZWRlZiBlbnVtIHsKICAgICB3a1BhdHRl
cm5UaWxpbmdOb0Rpc3RvcnRpb24sCiAgICAgd2tQYXR0ZXJuVGlsaW5nQ29uc3RhbnRTcGFjaW5n
TWluaW1hbERpc3RvcnRpb24sCkBAIC0xMzEsMjcgKzEzMCwxNyBAQCB0eXBlZGVmIGVudW0gewog
ZXh0ZXJuIGJvb2wgKCp3a0NHQ29udGV4dERyYXdzV2l0aENvcnJlY3RTaGFkb3dPZmZzZXRzKShD
R0NvbnRleHRSZWYpOwogI2VuZGlmCiBleHRlcm4gQ0dQYXR0ZXJuUmVmICgqd2tDR1BhdHRlcm5D
cmVhdGVXaXRoSW1hZ2VBbmRUcmFuc2Zvcm0pKENHSW1hZ2VSZWYsIENHQWZmaW5lVHJhbnNmb3Jt
LCBpbnQpOwotZXh0ZXJuIE5TU3RyaW5nKiAoKndrQ29weU5TVVJMUmVzcG9uc2VTdGF0dXNMaW5l
KShOU1VSTFJlc3BvbnNlKik7Ci1leHRlcm4gQ0ZBcnJheVJlZiAoKndrQ29weU5TVVJMUmVzcG9u
c2VDZXJ0aWZpY2F0ZUNoYWluKShOU1VSTFJlc3BvbnNlKik7CiBleHRlcm4gQ0ZTdHJpbmdFbmNv
ZGluZyAoKndrR2V0V2ViRGVmYXVsdENGU3RyaW5nRW5jb2RpbmcpKHZvaWQpOwogI2lmICFQTEFU
Rk9STShJT1MpCi1leHRlcm4gdm9pZCAoKndrRHJhd0NhcHNMb2NrSW5kaWNhdG9yKShDR0NvbnRl
eHRSZWYsIENHUmVjdCk7CiBleHRlcm4gdm9pZCAoKndrRHJhd0JlemVsZWRUZXh0QXJlYSkoTlNS
ZWN0LCBCT09MIGVuYWJsZWQpOwogZXh0ZXJuIHZvaWQgKCp3a0RyYXdGb2N1c1JpbmcpKENHQ29u
dGV4dFJlZiwgQ0dDb2xvclJlZiwgaW50KTsKIGV4dGVybiBib29sICgqd2tEcmF3Rm9jdXNSaW5n
QXRUaW1lKShDR0NvbnRleHRSZWYsIE5TVGltZUludGVydmFsIHRpbWUpOwogZXh0ZXJuIGJvb2wg
KCp3a0RyYXdDZWxsRm9jdXNSaW5nV2l0aEZyYW1lQXRUaW1lKShOU0NlbGwgKmNlbGwsIE5TUmVj
dCBjZWxsRnJhbWUsIE5TVmlldyAqY29udHJvbFZpZXcsIE5TVGltZUludGVydmFsIHRpbWUpOwot
I2VuZGlmCi0jaWYgIVBMQVRGT1JNKElPUykKIGV4dGVybiB2b2lkICgqd2tEcmF3TWVkaWFTbGlk
ZXJUcmFjaykoQ0dDb250ZXh0UmVmIGNvbnRleHQsIENHUmVjdCByZWN0LCBmbG9hdCB0aW1lTG9h
ZGVkLCBmbG9hdCBjdXJyZW50VGltZSwKICAgICBmbG9hdCBkdXJhdGlvbiwgdW5zaWduZWQgc3Rh
dGUpOwogZXh0ZXJuIHZvaWQgKCp3a0RyYXdNZWRpYVVJUGFydCkoaW50IHBhcnQsIENHQ29udGV4
dFJlZiBjb250ZXh0LCBDR1JlY3QgcmVjdCwgdW5zaWduZWQgc3RhdGUpOwogZXh0ZXJuIENGU3Ry
aW5nUmVmICgqd2tTaWduZWRQdWJsaWNLZXlBbmRDaGFsbGVuZ2VTdHJpbmcpKHVuc2lnbmVkIGtl
eVNpemUsIENGU3RyaW5nUmVmIGNoYWxsZW5nZSwgQ0ZTdHJpbmdSZWYga2V5RGVzY3JpcHRpb24p
OwotI2VuZGlmCi0jaWYgIVBMQVRGT1JNKElPUykKIGV4dGVybiBkb3VibGUgKCp3a0dldE5TVVJM
UmVzcG9uc2VDYWxjdWxhdGVkRXhwaXJhdGlvbikoTlNVUkxSZXNwb25zZSAqcmVzcG9uc2UpOwot
I2VuZGlmCi1leHRlcm4gTlNEYXRlICooKndrR2V0TlNVUkxSZXNwb25zZUxhc3RNb2RpZmllZERh
dGUpKE5TVVJMUmVzcG9uc2UgKnJlc3BvbnNlKTsKLSNpZiAhUExBVEZPUk0oSU9TKQogZXh0ZXJu
IEJPT0wgKCp3a0dldE5TVVJMUmVzcG9uc2VNdXN0UmV2YWxpZGF0ZSkoTlNVUkxSZXNwb25zZSAq
cmVzcG9uc2UpOwogZXh0ZXJuIHZvaWQgKCp3a0dldFdoZWVsRXZlbnREZWx0YXMpKE5TRXZlbnQq
LCBmbG9hdCogZGVsdGFYLCBmbG9hdCogZGVsdGFZLCBCT09MKiBjb250aW51b3VzKTsKIGV4dGVy
biBVSW50OCAoKndrR2V0TlNFdmVudEtleUNoYXIpKE5TRXZlbnQgKik7CkBAIC0xNzgsMjggKzE2
NywxOCBAQCBleHRlcm4gdW5zaWduZWQgKCp3a1FUSW5jbHVkZU9ubHlNb2Rlcm5NZWRpYUZpbGVU
eXBlcykodm9pZCk7CiBleHRlcm4gdm9pZCAoKndrUVRNb3ZpZURpc2FibGVDb21wb25lbnQpKHVp
bnQzMl90WzVdKTsKIGV4dGVybiBmbG9hdCAoKndrUVRNb3ZpZU1heFRpbWVMb2FkZWQpKFFUTW92
aWUqKTsKIGV4dGVybiBOU1N0cmluZyAqKCp3a1FUTW92aWVNYXhUaW1lTG9hZGVkQ2hhbmdlTm90
aWZpY2F0aW9uKSh2b2lkKTsKLWV4dGVybiBmbG9hdCAoKndrUVRNb3ZpZU1heFRpbWVTZWVrYWJs
ZSkoUVRNb3ZpZSopOwogZXh0ZXJuIGludCAoKndrUVRNb3ZpZUdldFR5cGUpKFFUTW92aWUqKTsK
IGV4dGVybiBCT09MICgqd2tRVE1vdmllSGFzQ2xvc2VkQ2FwdGlvbnMpKFFUTW92aWUqKTsKIGV4
dGVybiBOU1VSTCAqKCp3a1FUTW92aWVSZXNvbHZlZFVSTCkoUVRNb3ZpZSopOwogZXh0ZXJuIHZv
aWQgKCp3a1FUTW92aWVTZXRTaG93Q2xvc2VkQ2FwdGlvbnMpKFFUTW92aWUqLCBCT09MKTsKIGV4
dGVybiB2b2lkICgqd2tRVE1vdmllU2VsZWN0UHJlZmVycmVkQWx0ZXJuYXRlcykoUVRNb3ZpZSop
OwotZXh0ZXJuIHZvaWQgKCp3a1FUTW92aWVWaWV3U2V0RHJhd1N5bmNocm9ub3VzbHkpKFFUTW92
aWVWaWV3KiwgQk9PTCk7CiBleHRlcm4gTlNBcnJheSAqKCp3a1FUR2V0U2l0ZXNJbk1lZGlhRG93
bmxvYWRDYWNoZSkoKTsKIGV4dGVybiB2b2lkICgqd2tRVENsZWFyTWVkaWFEb3dubG9hZENhY2hl
Rm9yU2l0ZSkoTlNTdHJpbmcgKnNpdGUpOwogZXh0ZXJuIHZvaWQgKCp3a1FUQ2xlYXJNZWRpYURv
d25sb2FkQ2FjaGUpKCk7Ci1leHRlcm4gdm9pZCAoKndrU2V0Q0dGb250UmVuZGVyaW5nTW9kZSko
Q0dDb250ZXh0UmVmLCBOU0ZvbnQqLCBCT09MKTsKIGV4dGVybiB2b2lkICgqd2tTZXRDb29raWVT
dG9yYWdlUHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCkoQk9PTCk7CiBleHRlcm4gdm9pZCAoKndrU2V0
RHJhZ0ltYWdlKShOU0ltYWdlKiwgTlNQb2ludCBvZmZzZXQpOwogI2VuZGlmCi1leHRlcm4gdm9p
ZCAoKndrU2V0TlNVUkxSZXF1ZXN0U2hvdWxkQ29udGVudFNuaWZmKShOU011dGFibGVVUkxSZXF1
ZXN0ICosIEJPT0wpOwogZXh0ZXJuIGJvb2wgKCp3a0NHQ29udGV4dElzUERGQ29udGV4dCkoQ0dD
b250ZXh0UmVmKTsKLWV4dGVybiB1bnNpZ25lZCAoKndrSW5pdGlhbGl6ZU1heGltdW1IVFRQQ29u
bmVjdGlvbkNvdW50UGVySG9zdCkodW5zaWduZWQgcHJlZmVycmVkQ29ubmVjdGlvbkNvdW50KTsK
LWV4dGVybiBpbnQgKCp3a0dldEhUVFBSZXF1ZXN0UHJpb3JpdHkpKENGVVJMUmVxdWVzdFJlZik7
Ci1leHRlcm4gdm9pZCAoKndrU2V0SFRUUFJlcXVlc3RNYXhpbXVtUHJpb3JpdHkpKGludCBtYXhp
bXVtUHJpb3JpdHkpOwotZXh0ZXJuIHZvaWQgKCp3a1NldEhUVFBSZXF1ZXN0UHJpb3JpdHkpKENG
VVJMUmVxdWVzdFJlZiwgaW50IHByaW9yaXR5KTsKLWV4dGVybiB2b2lkICgqd2tTZXRIVFRQUmVx
dWVzdE1pbmltdW1GYXN0TGFuZVByaW9yaXR5KShpbnQgcHJpb3JpdHkpOwotZXh0ZXJuIHZvaWQg
KCp3a0hUVFBSZXF1ZXN0RW5hYmxlUGlwZWxpbmluZykoQ0ZVUkxSZXF1ZXN0UmVmKTsKIGV4dGVy
biB2b2lkICgqd2tTZXRDT05ORUNUUHJveHlGb3JTdHJlYW0pKENGUmVhZFN0cmVhbVJlZiwgQ0ZT
dHJpbmdSZWYgcHJveHlIb3N0LCBDRk51bWJlclJlZiBwcm94eVBvcnQpOwogZXh0ZXJuIHZvaWQg
KCp3a1NldENPTk5FQ1RQcm94eUF1dGhvcml6YXRpb25Gb3JTdHJlYW0pKENGUmVhZFN0cmVhbVJl
ZiwgQ0ZTdHJpbmdSZWYgcHJveHlBdXRob3JpemF0aW9uU3RyaW5nKTsKIGV4dGVybiBDRkhUVFBN
ZXNzYWdlUmVmICgqd2tDb3B5Q09OTkVDVFByb3h5UmVzcG9uc2UpKENGUmVhZFN0cmVhbVJlZiwg
Q0ZVUkxSZWYgcmVzcG9uc2VVUkwsIENGU3RyaW5nUmVmIHByb3h5SG9zdCwgQ0ZOdW1iZXJSZWYg
cHJveHlQb3J0KTsKQEAgLTI0MSwzNCArMjIwLDE1IEBAIGV4dGVybiBDRlVSTFN0b3JhZ2VTZXNz
aW9uUmVmICgqd2tDcmVhdGVQcml2YXRlU3RvcmFnZVNlc3Npb24pKENGU3RyaW5nUmVmKTsKIGV4
dGVybiBOU1VSTFJlcXVlc3QqICgqd2tDb3B5UmVxdWVzdFdpdGhTdG9yYWdlU2Vzc2lvbikoQ0ZV
UkxTdG9yYWdlU2Vzc2lvblJlZiwgTlNVUkxSZXF1ZXN0Kik7CiAKIHR5cGVkZWYgc3RydWN0IE9w
YXF1ZUNGSFRUUENvb2tpZVN0b3JhZ2UqIENGSFRUUENvb2tpZVN0b3JhZ2VSZWY7Ci1leHRlcm4g
Q0ZIVFRQQ29va2llU3RvcmFnZVJlZiAoKndrQ29weUhUVFBDb29raWVTdG9yYWdlKShDRlVSTFN0
b3JhZ2VTZXNzaW9uUmVmKTsKIGV4dGVybiB1bnNpZ25lZCAoKndrR2V0SFRUUENvb2tpZUFjY2Vw
dFBvbGljeSkoQ0ZIVFRQQ29va2llU3RvcmFnZVJlZik7Ci1leHRlcm4gdm9pZCAoKndrU2V0SFRU
UENvb2tpZUFjY2VwdFBvbGljeSkoQ0ZIVFRQQ29va2llU3RvcmFnZVJlZiwgdW5zaWduZWQpOwog
ZXh0ZXJuIE5TQXJyYXkgKigqd2tIVFRQQ29va2llcykoQ0ZIVFRQQ29va2llU3RvcmFnZVJlZik7
CiBleHRlcm4gTlNBcnJheSAqKCp3a0hUVFBDb29raWVzRm9yVVJMKShDRkhUVFBDb29raWVTdG9y
YWdlUmVmLCBOU1VSTCAqLCBOU1VSTCAqKTsKIGV4dGVybiB2b2lkICgqd2tTZXRIVFRQQ29va2ll
c0ZvclVSTCkoQ0ZIVFRQQ29va2llU3RvcmFnZVJlZiwgTlNBcnJheSAqLCBOU1VSTCAqLCBOU1VS
TCAqKTsKIGV4dGVybiB2b2lkICgqd2tEZWxldGVIVFRQQ29va2llKShDRkhUVFBDb29raWVTdG9y
YWdlUmVmLCBOU0hUVFBDb29raWUgKik7CiBleHRlcm4gdm9pZCAoKndrRGVsZXRlQWxsSFRUUENv
b2tpZXMpKENGSFRUUENvb2tpZVN0b3JhZ2VSZWYpOwogCi1leHRlcm4gQ0ZTdHJpbmdSZWYgKCp3
a0dldENGVVJMUmVzcG9uc2VNSU1FVHlwZSkoQ0ZVUkxSZXNwb25zZVJlZik7Ci1leHRlcm4gQ0ZV
UkxSZWYgKCp3a0dldENGVVJMUmVzcG9uc2VVUkwpKENGVVJMUmVzcG9uc2VSZWYpOwotZXh0ZXJu
IENGSFRUUE1lc3NhZ2VSZWYgKCp3a0dldENGVVJMUmVzcG9uc2VIVFRQUmVzcG9uc2UpKENGVVJM
UmVzcG9uc2VSZWYpOwotZXh0ZXJuIENGU3RyaW5nUmVmICgqd2tDb3B5Q0ZVUkxSZXNwb25zZVN1
Z2dlc3RlZEZpbGVuYW1lKShDRlVSTFJlc3BvbnNlUmVmKTsKLWV4dGVybiB2b2lkICgqd2tTZXRD
RlVSTFJlc3BvbnNlTUlNRVR5cGUpKENGVVJMUmVzcG9uc2VSZWYsIENGU3RyaW5nUmVmIG1pbWVU
eXBlKTsKLQotI2lmIFVTRShDRk5FVFdPUkspCi1leHRlcm4gQ0ZIVFRQQ29va2llU3RvcmFnZVJl
ZiAoKndrR2V0RGVmYXVsdEhUVFBDb29raWVTdG9yYWdlKSgpOwotZXh0ZXJuIFdLQ0ZVUkxDcmVk
ZW50aWFsUmVmICgqd2tDb3B5Q3JlZGVudGlhbEZyb21DRlBlcnNpc3RlbnRTdG9yYWdlKShDRlVS
TFByb3RlY3Rpb25TcGFjZVJlZiBwcm90ZWN0aW9uU3BhY2UpOwotZXh0ZXJuIHZvaWQgKCp3a1Nl
dENGVVJMUmVxdWVzdFNob3VsZENvbnRlbnRTbmlmZikoQ0ZNdXRhYmxlVVJMUmVxdWVzdFJlZiwg
Ym9vbCk7Ci1leHRlcm4gdm9pZCAoKndrU2V0UmVxdWVzdFN0b3JhZ2VTZXNzaW9uKShDRlVSTFN0
b3JhZ2VTZXNzaW9uUmVmLCBDRk11dGFibGVVUkxSZXF1ZXN0UmVmKTsKLSNlbmRpZgogI2lmICFQ
TEFURk9STShJT1MpCiBleHRlcm4gdm9pZCAoKndrU2V0TWV0YWRhdGFVUkwpKE5TU3RyaW5nICp1
cmxTdHJpbmcsIE5TU3RyaW5nICpyZWZlcnJlciwgTlNTdHJpbmcgKnBhdGgpOwotI2VuZGlmCi0K
LWV4dGVybiB2b2lkICgqd2tDRlVSTFJlcXVlc3RBbGxvd0FsbFBvc3RDYWNoaW5nKShDRlVSTFJl
cXVlc3RSZWYpOwotCi0jaWYgIVBMQVRGT1JNKElPUykKIGV4dGVybiBDR0Zsb2F0ICgqd2tOU0Vs
YXN0aWNEZWx0YUZvclRpbWVEZWx0YSkoQ0dGbG9hdCBpbml0aWFsUG9zaXRpb24sIENHRmxvYXQg
aW5pdGlhbFZlbG9jaXR5LCBDR0Zsb2F0IGVsYXBzZWRUaW1lKTsKIGV4dGVybiBDR0Zsb2F0ICgq
d2tOU0VsYXN0aWNEZWx0YUZvclJlYm91bmREZWx0YSkoQ0dGbG9hdCBkZWx0YSk7CiBleHRlcm4g
Q0dGbG9hdCAoKndrTlNSZWJvdW5kRGVsdGFGb3JFbGFzdGljRGVsdGEpKENHRmxvYXQgZGVsdGEp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYkNvcmVTeXN0ZW1J
bnRlcmZhY2UubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViQ29yZVN5c3RlbUlu
dGVyZmFjZS5tbQppbmRleCAxODhmNDEyODEyM2E5NjA4YWRiZmZjY2JmNjliOGRhZjMwMDFjYmM3
Li5jMzljYzllMjg1MmJlNTlmZTI4NzgzYWY2NjIzYmQ3MTgwMzRmNTcxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViQ29yZVN5c3RlbUludGVyZmFjZS5tbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViQ29yZVN5c3RlbUludGVyZmFjZS5tbQpA
QCAtMzIsMTMgKzMyLDkgQEAKIAogdm9pZCAoKndrQWR2YW5jZURlZmF1bHRCdXR0b25QdWxzZUFu
aW1hdGlvbikoTlNCdXR0b25DZWxsICopOwogdm9pZCAoKndrQ0FMYXllckVudW1lcmF0ZVJlY3Rz
QmVpbmdEcmF3bldpdGhCbG9jaykoQ0FMYXllciAqLCBDR0NvbnRleHRSZWYgY29udGV4dCwgdm9p
ZCAoXmJsb2NrKShDR1JlY3QgcmVjdCkpOwotQk9PTCAoKndrQ0dDb250ZXh0R2V0U2hvdWxkU21v
b3RoRm9udHMpKENHQ29udGV4dFJlZik7CiBib29sICgqd2tDR0NvbnRleHREcmF3c1dpdGhDb3Jy
ZWN0U2hhZG93T2Zmc2V0cykoQ0dDb250ZXh0UmVmKTsKIENHUGF0dGVyblJlZiAoKndrQ0dQYXR0
ZXJuQ3JlYXRlV2l0aEltYWdlQW5kVHJhbnNmb3JtKShDR0ltYWdlUmVmLCBDR0FmZmluZVRyYW5z
Zm9ybSwgaW50KTsKLU5TU3RyaW5nKiAoKndrQ29weU5TVVJMUmVzcG9uc2VTdGF0dXNMaW5lKShO
U1VSTFJlc3BvbnNlKik7Ci1DRkFycmF5UmVmICgqd2tDb3B5TlNVUkxSZXNwb25zZUNlcnRpZmlj
YXRlQ2hhaW4pKE5TVVJMUmVzcG9uc2UqKTsKIENGU3RyaW5nRW5jb2RpbmcgKCp3a0dldFdlYkRl
ZmF1bHRDRlN0cmluZ0VuY29kaW5nKSh2b2lkKTsKLXZvaWQgKCp3a0RyYXdDYXBzTG9ja0luZGlj
YXRvcikoQ0dDb250ZXh0UmVmLCBDR1JlY3QpOwogdm9pZCAoKndrRHJhd0JlemVsZWRUZXh0QXJl
YSkoTlNSZWN0LCBCT09MIGVuYWJsZWQpOwogdm9pZCAoKndrRHJhd0ZvY3VzUmluZykoQ0dDb250
ZXh0UmVmLCBDR0NvbG9yUmVmLCBpbnQpOwogYm9vbCAoKndrRHJhd0ZvY3VzUmluZ0F0VGltZSko
Q0dDb250ZXh0UmVmLCBOU1RpbWVJbnRlcnZhbCk7CkBAIC01NCw3ICs1MCw2IEBAIHZvaWQgKCp3
a1dpbmRvd1NldEFscGhhKShOU1dpbmRvdyAqLCBmbG9hdCk7CiB2b2lkICgqd2tXaW5kb3dTZXRT
Y2FsZWRGcmFtZSkoTlNXaW5kb3cgKiwgTlNSZWN0LCBOU1JlY3QpOwogQ0ZTdHJpbmdSZWYgKCp3
a1NpZ25lZFB1YmxpY0tleUFuZENoYWxsZW5nZVN0cmluZykodW5zaWduZWQga2V5U2l6ZSwgQ0ZT
dHJpbmdSZWYgY2hhbGxlbmdlLCBDRlN0cmluZ1JlZiBrZXlEZXNjcmlwdGlvbik7CiBOU1RpbWVJ
bnRlcnZhbCAoKndrR2V0TlNVUkxSZXNwb25zZUNhbGN1bGF0ZWRFeHBpcmF0aW9uKShOU1VSTFJl
c3BvbnNlICpyZXNwb25zZSk7Ci1OU0RhdGUgKigqd2tHZXROU1VSTFJlc3BvbnNlTGFzdE1vZGlm
aWVkRGF0ZSkoTlNVUkxSZXNwb25zZSAqcmVzcG9uc2UpOwogQk9PTCAoKndrR2V0TlNVUkxSZXNw
b25zZU11c3RSZXZhbGlkYXRlKShOU1VSTFJlc3BvbnNlICpyZXNwb25zZSk7CiB2b2lkICgqd2tH
ZXRXaGVlbEV2ZW50RGVsdGFzKShOU0V2ZW50KiwgZmxvYXQqIGRlbHRhWCwgZmxvYXQqIGRlbHRh
WSwgQk9PTCogY29udGludW91cyk7CiBVSW50OCAoKndrR2V0TlNFdmVudEtleUNoYXIpKE5TRXZl
bnQgKik7CkBAIC02MywzOCArNTgsMjEgQEAgdW5zaWduZWQgKCp3a1FUSW5jbHVkZU9ubHlNb2Rl
cm5NZWRpYUZpbGVUeXBlcykodm9pZCk7CiB2b2lkICgqd2tRVE1vdmllRGlzYWJsZUNvbXBvbmVu
dCkodWludDMyX3RbNV0pOwogZmxvYXQgKCp3a1FUTW92aWVNYXhUaW1lTG9hZGVkKShRVE1vdmll
Kik7CiBOU1N0cmluZyAqKCp3a1FUTW92aWVNYXhUaW1lTG9hZGVkQ2hhbmdlTm90aWZpY2F0aW9u
KSh2b2lkKTsKLWZsb2F0ICgqd2tRVE1vdmllTWF4VGltZVNlZWthYmxlKShRVE1vdmllKik7CiBp
bnQgKCp3a1FUTW92aWVHZXRUeXBlKShRVE1vdmllKik7CiBCT09MICgqd2tRVE1vdmllSGFzQ2xv
c2VkQ2FwdGlvbnMpKFFUTW92aWUqKTsKIE5TVVJMICooKndrUVRNb3ZpZVJlc29sdmVkVVJMKShR
VE1vdmllKik7CiB2b2lkICgqd2tRVE1vdmllU2V0U2hvd0Nsb3NlZENhcHRpb25zKShRVE1vdmll
KiwgQk9PTCk7CiB2b2lkICgqd2tRVE1vdmllU2VsZWN0UHJlZmVycmVkQWx0ZXJuYXRlcykoUVRN
b3ZpZSopOwotdm9pZCAoKndrUVRNb3ZpZVZpZXdTZXREcmF3U3luY2hyb25vdXNseSkoUVRNb3Zp
ZVZpZXcqLCBCT09MKTsKIE5TQXJyYXkgKigqd2tRVEdldFNpdGVzSW5NZWRpYURvd25sb2FkQ2Fj
aGUpKCk7CiB2b2lkICgqd2tRVENsZWFyTWVkaWFEb3dubG9hZENhY2hlRm9yU2l0ZSkoTlNTdHJp
bmcgKnNpdGUpOwogdm9pZCAoKndrUVRDbGVhck1lZGlhRG93bmxvYWRDYWNoZSkoKTsKIAotdm9p
ZCAoKndrU2V0Q0dGb250UmVuZGVyaW5nTW9kZSkoQ0dDb250ZXh0UmVmLCBOU0ZvbnQqLCBCT09M
KTsKIHZvaWQgKCp3a1NldERyYWdJbWFnZSkoTlNJbWFnZSosIE5TUG9pbnQgb2Zmc2V0KTsKIGJv
b2wgKCp3a0NHQ29udGV4dElzUERGQ29udGV4dCkoQ0dDb250ZXh0UmVmKTsKLXZvaWQgKCp3a1Nl
dE5TVVJMUmVxdWVzdFNob3VsZENvbnRlbnRTbmlmZikoTlNNdXRhYmxlVVJMUmVxdWVzdCAqLCBC
T09MKTsKLXVuc2lnbmVkICgqd2tJbml0aWFsaXplTWF4aW11bUhUVFBDb25uZWN0aW9uQ291bnRQ
ZXJIb3N0KSh1bnNpZ25lZCBwcmVmZXJyZWRDb25uZWN0aW9uQ291bnQpOwotaW50ICgqd2tHZXRI
VFRQUmVxdWVzdFByaW9yaXR5KShDRlVSTFJlcXVlc3RSZWYpOwotdm9pZCAoKndrU2V0SFRUUFJl
cXVlc3RNYXhpbXVtUHJpb3JpdHkpKGludCBwcmlvcml0eSk7Ci12b2lkICgqd2tTZXRIVFRQUmVx
dWVzdFByaW9yaXR5KShDRlVSTFJlcXVlc3RSZWYsIGludCBwcmlvcml0eSk7Ci12b2lkICgqd2tT
ZXRIVFRQUmVxdWVzdE1pbmltdW1GYXN0TGFuZVByaW9yaXR5KShpbnQgcHJpb3JpdHkpOwotdm9p
ZCAoKndrSFRUUFJlcXVlc3RFbmFibGVQaXBlbGluaW5nKShDRlVSTFJlcXVlc3RSZWYpOwogdm9p
ZCAoKndrU2V0Q09OTkVDVFByb3h5Rm9yU3RyZWFtKShDRlJlYWRTdHJlYW1SZWYsIENGU3RyaW5n
UmVmIHByb3h5SG9zdCwgQ0ZOdW1iZXJSZWYgcHJveHlQb3J0KTsKIHZvaWQgKCp3a1NldENPTk5F
Q1RQcm94eUF1dGhvcml6YXRpb25Gb3JTdHJlYW0pKENGUmVhZFN0cmVhbVJlZiwgQ0ZTdHJpbmdS
ZWYgcHJveHlBdXRob3JpemF0aW9uU3RyaW5nKTsKIENGSFRUUE1lc3NhZ2VSZWYgKCp3a0NvcHlD
T05ORUNUUHJveHlSZXNwb25zZSkoQ0ZSZWFkU3RyZWFtUmVmLCBDRlVSTFJlZiByZXNwb25zZVVS
TCwgQ0ZTdHJpbmdSZWYgcHJveHlIb3N0LCBDRk51bWJlclJlZiBwcm94eVBvcnQpOwogCi0jaWYg
VVNFKENGTkVUV09SSykKLUNGSFRUUENvb2tpZVN0b3JhZ2VSZWYgKCp3a0dldERlZmF1bHRIVFRQ
Q29va2llU3RvcmFnZSkoKTsKLVdLQ0ZVUkxDcmVkZW50aWFsUmVmICgqd2tDb3B5Q3JlZGVudGlh
bEZyb21DRlBlcnNpc3RlbnRTdG9yYWdlKShDRlVSTFByb3RlY3Rpb25TcGFjZVJlZiBwcm90ZWN0
aW9uU3BhY2UpOwotdm9pZCAoKndrU2V0Q0ZVUkxSZXF1ZXN0U2hvdWxkQ29udGVudFNuaWZmKShD
Rk11dGFibGVVUkxSZXF1ZXN0UmVmLCBib29sKTsKLXZvaWQgKCp3a1NldFJlcXVlc3RTdG9yYWdl
U2Vzc2lvbikoQ0ZVUkxTdG9yYWdlU2Vzc2lvblJlZiwgQ0ZNdXRhYmxlVVJMUmVxdWVzdFJlZik7
Ci0jZW5kaWYKLQogdm9pZCogd2tHZXRIeXBoZW5hdGlvbkxvY2F0aW9uQmVmb3JlSW5kZXg7CiAK
IGJvb2wgKCp3a0V4ZWN1dGFibGVXYXNMaW5rZWRPbk9yQmVmb3JlU25vd0xlb3BhcmQpKHZvaWQp
OwpAQCAtMTE5LDI0ICs5NywxNSBAQCBBWFVJRWxlbWVudFJlZiAoKndrQ3JlYXRlQVhVSUVsZW1l
bnRSZWYpKGlkIGVsZW1lbnQpOwogCiBDRlVSTFN0b3JhZ2VTZXNzaW9uUmVmICgqd2tDcmVhdGVQ
cml2YXRlU3RvcmFnZVNlc3Npb24pKENGU3RyaW5nUmVmKTsKIE5TVVJMUmVxdWVzdCogKCp3a0Nv
cHlSZXF1ZXN0V2l0aFN0b3JhZ2VTZXNzaW9uKShDRlVSTFN0b3JhZ2VTZXNzaW9uUmVmLCBOU1VS
TFJlcXVlc3QqKTsKLUNGSFRUUENvb2tpZVN0b3JhZ2VSZWYgKCp3a0NvcHlIVFRQQ29va2llU3Rv
cmFnZSkoQ0ZVUkxTdG9yYWdlU2Vzc2lvblJlZik7CiB1bnNpZ25lZCAoKndrR2V0SFRUUENvb2tp
ZUFjY2VwdFBvbGljeSkoQ0ZIVFRQQ29va2llU3RvcmFnZVJlZik7Ci12b2lkICgqd2tTZXRIVFRQ
Q29va2llQWNjZXB0UG9saWN5KShDRkhUVFBDb29raWVTdG9yYWdlUmVmLCB1bnNpZ25lZCk7CiBO
U0FycmF5ICooKndrSFRUUENvb2tpZXMpKENGSFRUUENvb2tpZVN0b3JhZ2VSZWYpOwogTlNBcnJh
eSAqKCp3a0hUVFBDb29raWVzRm9yVVJMKShDRkhUVFBDb29raWVTdG9yYWdlUmVmLCBOU1VSTCAq
LCBOU1VSTCAqKTsKIHZvaWQgKCp3a1NldEhUVFBDb29raWVzRm9yVVJMKShDRkhUVFBDb29raWVT
dG9yYWdlUmVmLCBOU0FycmF5ICosIE5TVVJMICosIE5TVVJMICopOwogdm9pZCAoKndrRGVsZXRl
QWxsSFRUUENvb2tpZXMpKENGSFRUUENvb2tpZVN0b3JhZ2VSZWYpOwogdm9pZCAoKndrRGVsZXRl
SFRUUENvb2tpZSkoQ0ZIVFRQQ29va2llU3RvcmFnZVJlZiwgTlNIVFRQQ29va2llICopOwogCi1D
RlN0cmluZ1JlZiAoKndrR2V0Q0ZVUkxSZXNwb25zZU1JTUVUeXBlKShDRlVSTFJlc3BvbnNlUmVm
KTsKLUNGVVJMUmVmICgqd2tHZXRDRlVSTFJlc3BvbnNlVVJMKShDRlVSTFJlc3BvbnNlUmVmKTsK
LUNGSFRUUE1lc3NhZ2VSZWYgKCp3a0dldENGVVJMUmVzcG9uc2VIVFRQUmVzcG9uc2UpKENGVVJM
UmVzcG9uc2VSZWYpOwotQ0ZTdHJpbmdSZWYgKCp3a0NvcHlDRlVSTFJlc3BvbnNlU3VnZ2VzdGVk
RmlsZW5hbWUpKENGVVJMUmVzcG9uc2VSZWYpOwotdm9pZCAoKndrU2V0Q0ZVUkxSZXNwb25zZU1J
TUVUeXBlKShDRlVSTFJlc3BvbnNlUmVmLCBDRlN0cmluZ1JlZiBtaW1lVHlwZSk7CiB2b2lkICgq
d2tTZXRNZXRhZGF0YVVSTCkoTlNTdHJpbmcgKnVybFN0cmluZywgTlNTdHJpbmcgKnJlZmVycmVy
LCBOU1N0cmluZyAqcGF0aCk7CiAKLXZvaWQgKCp3a0NGVVJMUmVxdWVzdEFsbG93QWxsUG9zdENh
Y2hpbmcpKENGVVJMUmVxdWVzdFJlZik7Ci0KICNpZiAhUExBVEZPUk0oSU9TKQogQ0dGbG9hdCAo
KndrTlNFbGFzdGljRGVsdGFGb3JUaW1lRGVsdGEpKENHRmxvYXQgaW5pdGlhbFBvc2l0aW9uLCBD
R0Zsb2F0IGluaXRpYWxWZWxvY2l0eSwgQ0dGbG9hdCBlbGFwc2VkVGltZSk7CiBDR0Zsb2F0ICgq
d2tOU0VsYXN0aWNEZWx0YUZvclJlYm91bmREZWx0YSkoQ0dGbG9hdCBkZWx0YSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lv
bi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Np
b24uaAppbmRleCA5YmZmZDBhMGIwZDkwM2VjMjFmYTRmYjJhOGExZjRlZGU0YmY0MjVhLi5kOWUz
OGQwMTNjMmYzYmQ5ZGNlNzMyMWM4N2FmNzdiM2JmNWJkM2M4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmgKQEAg
LTMyLDggKzMyLDcgQEAKICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogI2lmIFBM
QVRGT1JNKENPQ09BKSB8fCBVU0UoQ0ZORVRXT1JLKQotdHlwZWRlZiBjb25zdCBzdHJ1Y3QgX19D
RlVSTFN0b3JhZ2VTZXNzaW9uKiBDRlVSTFN0b3JhZ2VTZXNzaW9uUmVmOwotdHlwZWRlZiBzdHJ1
Y3QgT3BhcXVlQ0ZIVFRQQ29va2llU3RvcmFnZSogIENGSFRUUENvb2tpZVN0b3JhZ2VSZWY7Cisj
aW5jbHVkZSAiQ0ZOZXR3b3JrU1BJLmgiCiAjZW5kaWYKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9DcmVkZW50aWFs
U3RvcmFnZUNGTmV0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvQ3Jl
ZGVudGlhbFN0b3JhZ2VDRk5ldC5jcHAKaW5kZXggNTYwOTI1OTdhYWNjZDI3NzNmNjk4YjM1YmQ0
ZmM3MTU4NzJjNDBlNC4uNTlmZWE1M2M1M2U0OTY3ZDBlYTg5M2I5MjVkNzA2MTUwY2E1ZWVlNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9DcmVkZW50aWFs
U3RvcmFnZUNGTmV0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2Nm
L0NyZWRlbnRpYWxTdG9yYWdlQ0ZOZXQuY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAjaWYgVVNFKENG
TkVUV09SSykKIAogI2luY2x1ZGUgIkF1dGhlbnRpY2F0aW9uQ0YuaCIKKyNpbmNsdWRlICJDRk5l
dHdvcmtTUEkuaCIKICNpbmNsdWRlICJDcmVkZW50aWFsLmgiCiAjaW5jbHVkZSAiUHJvdGVjdGlv
blNwYWNlLmgiCiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgpAQCAtNDQsMTUgKzQ1LDIxIEBA
CiAjZW5kaWYKIAogbmFtZXNwYWNlIFdlYkNvcmUgeworICAgIAorc3RhdGljIGlubGluZSBDRlVS
TENyZWRlbnRpYWxSZWYgY29weUNyZWRlbnRpYWxGcm9tUHJvdGVjdGlvblNwYWNlKENGVVJMUHJv
dGVjdGlvblNwYWNlUmVmIHByb3RlY3Rpb25TcGFjZSkKK3sKKyAgICBhdXRvIHN0b3JhZ2UgPSBh
ZG9wdENGKENGVVJMQ3JlZGVudGlhbFN0b3JhZ2VDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCkp
OworICAgIHJldHVybiBDRlVSTENyZWRlbnRpYWxTdG9yYWdlQ29weURlZmF1bHRDcmVkZW50aWFs
Rm9yUHJvdGVjdGlvblNwYWNlKHN0b3JhZ2UuZ2V0KCksIHByb3RlY3Rpb25TcGFjZSk7Cit9CiAK
IENyZWRlbnRpYWwgQ3JlZGVudGlhbFN0b3JhZ2U6OmdldEZyb21QZXJzaXN0ZW50U3RvcmFnZShj
b25zdCBQcm90ZWN0aW9uU3BhY2UmIHByb3RlY3Rpb25TcGFjZSkKIHsKICNpZiBQTEFURk9STShD
T0NPQSkKLSAgICBSZXRhaW5QdHI8Q0ZVUkxDcmVkZW50aWFsUmVmPiBjcmVkZW50aWFsQ0YgPSBh
ZG9wdENGKHdrQ29weUNyZWRlbnRpYWxGcm9tQ0ZQZXJzaXN0ZW50U3RvcmFnZShwcm90ZWN0aW9u
U3BhY2UuY2ZTcGFjZSgpKSk7CisgICAgYXV0byBjcmVkZW50aWFsQ0YgPSBhZG9wdENGKGNvcHlD
cmVkZW50aWFsRnJvbVByb3RlY3Rpb25TcGFjZShwcm90ZWN0aW9uU3BhY2UuY2ZTcGFjZSgpKSk7
CiAgICAgcmV0dXJuIENyZWRlbnRpYWwoY3JlZGVudGlhbENGLmdldCgpKTsKICNlbHNlCi0gICAg
UmV0YWluUHRyPENGVVJMUHJvdGVjdGlvblNwYWNlUmVmPiBwcm90ZWN0aW9uU3BhY2VDRiA9IGFk
b3B0Q0YoY3JlYXRlQ0YocHJvdGVjdGlvblNwYWNlKSk7Ci0gICAgUmV0YWluUHRyPENGVVJMQ3Jl
ZGVudGlhbFJlZj4gY3JlZGVudGlhbENGID0gYWRvcHRDRih3a0NvcHlDcmVkZW50aWFsRnJvbUNG
UGVyc2lzdGVudFN0b3JhZ2UocHJvdGVjdGlvblNwYWNlQ0YuZ2V0KCkpKTsKKyAgICBhdXRvIHBy
b3RlY3Rpb25TcGFjZUNGID0gYWRvcHRDRihjcmVhdGVDRihwcm90ZWN0aW9uU3BhY2UpKTsKKyAg
ICBhdXRvIGNyZWRlbnRpYWxDRiA9IGFkb3B0Q0YoY29weUNyZWRlbnRpYWxGcm9tUHJvdGVjdGlv
blNwYWNlKHByb3RlY3Rpb25TcGFjZUNGLmdldCgpKSk7CiAgICAgcmV0dXJuIGNvcmUoY3JlZGVu
dGlhbENGLmdldCgpKTsKICNlbmRpZgogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9jZi9OZXR3b3JrU3RvcmFnZVNlc3Npb25DRk5ldC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkNGTmV0LmNw
cAppbmRleCA0ZWZkZjcyYTNkMTdlY2Y1Mzg3YTUzMjhkMzBjZDJjNmY0ZjQyNGM2Li42NzY3YWQy
MzAwMDFlY2I0MTVkMDI4NjU2NzBmMDJkMGJhMzUwODQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkNGTmV0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL05ldHdvcmtTdG9yYWdlU2Vz
c2lvbkNGTmV0LmNwcApAQCAtODQsMTAgKzg0LDEwIEBAIHN0ZDo6dW5pcXVlX3B0cjxOZXR3b3Jr
U3RvcmFnZVNlc3Npb24+IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Y3JlYXRlUHJpdmF0ZUJyb3dz
CiBSZXRhaW5QdHI8Q0ZIVFRQQ29va2llU3RvcmFnZVJlZj4gTmV0d29ya1N0b3JhZ2VTZXNzaW9u
Ojpjb29raWVTdG9yYWdlKCkgY29uc3QKIHsKICAgICBpZiAobV9wbGF0Zm9ybVNlc3Npb24pCi0g
ICAgICAgIHJldHVybiBhZG9wdENGKHdrQ29weUhUVFBDb29raWVTdG9yYWdlKG1fcGxhdGZvcm1T
ZXNzaW9uLmdldCgpKSk7CisgICAgICAgIHJldHVybiBhZG9wdENGKF9DRlVSTFN0b3JhZ2VTZXNz
aW9uQ29weUNvb2tpZVN0b3JhZ2Uoa0NGQWxsb2NhdG9yRGVmYXVsdCwgbV9wbGF0Zm9ybVNlc3Np
b24uZ2V0KCkpKTsKIAogI2lmIFVTRShDRk5FVFdPUkspCi0gICAgcmV0dXJuIHdrR2V0RGVmYXVs
dEhUVFBDb29raWVTdG9yYWdlKCk7CisgICAgcmV0dXJuIF9DRkhUVFBDb29raWVTdG9yYWdlR2V0
RGVmYXVsdChrQ0ZBbGxvY2F0b3JEZWZhdWx0KTsKICNlbHNlCiAgICAgLy8gV2hlbiB1c2luZyBO
U1VSTENvbm5lY3Rpb24sIHdlIGFsc28gdXNlIGl0cyBzaGFyZWQgY29va2llIHN0b3JhZ2UuCiAg
ICAgcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L2NmL1Jlc291cmNlSGFuZGxlQ0ZOZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGTmV0LmNwcAppbmRleCA1YzE0MjA3ZDQxYWEzNmY3OTBi
ZWVjN2MzM2Y0N2JmMmE3YzdkMjUxLi5jZTNiMWYzYjhlZGM0MWYxMzY5YjUzN2E3NDJlZTkxOTgz
ZTlhZjdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jl
c291cmNlSGFuZGxlQ0ZOZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvY2YvUmVzb3VyY2VIYW5kbGVDRk5ldC5jcHAKQEAgLTE0NywxMSArMTQ3LDEyIEBAIHZvaWQg
UmVzb3VyY2VIYW5kbGU6OmNyZWF0ZUNGVVJMQ29ubmVjdGlvbihib29sIHNob3VsZFVzZUNyZWRl
bnRpYWxTdG9yYWdlLCBib29sCiAgICAgICAgIGFwcGx5QmFzaWNBdXRob3JpemF0aW9uSGVhZGVy
KGZpcnN0UmVxdWVzdCgpLCBkLT5tX2luaXRpYWxDcmVkZW50aWFsKTsKICAgICB9CiAKLSAgICBS
ZXRhaW5QdHI8Q0ZNdXRhYmxlVVJMUmVxdWVzdFJlZj4gcmVxdWVzdCA9IGFkb3B0Q0YoQ0ZVUkxS
ZXF1ZXN0Q3JlYXRlTXV0YWJsZUNvcHkoa0NGQWxsb2NhdG9yRGVmYXVsdCwgZmlyc3RSZXF1ZXN0
KCkuY2ZVUkxSZXF1ZXN0KFVwZGF0ZUhUVFBCb2R5KSkpOwotICAgIHdrU2V0UmVxdWVzdFN0b3Jh
Z2VTZXNzaW9uKGQtPm1fc3RvcmFnZVNlc3Npb24uZ2V0KCksIHJlcXVlc3QuZ2V0KCkpOworICAg
IGF1dG8gcmVxdWVzdCA9IGFkb3B0Q0YoQ0ZVUkxSZXF1ZXN0Q3JlYXRlTXV0YWJsZUNvcHkoa0NG
QWxsb2NhdG9yRGVmYXVsdCwgZmlyc3RSZXF1ZXN0KCkuY2ZVUkxSZXF1ZXN0KFVwZGF0ZUhUVFBC
b2R5KSkpOworICAgIGlmIChhdXRvIHN0b3JhZ2VTZXNzaW9uID0gZC0+bV9zdG9yYWdlU2Vzc2lv
bi5nZXQoKSkKKyAgICAgICAgX0NGVVJMUmVxdWVzdFNldFN0b3JhZ2VTZXNzaW9uKHJlcXVlc3Qu
Z2V0KCksIHN0b3JhZ2VTZXNzaW9uKTsKICAgICAKICAgICBpZiAoIXNob3VsZENvbnRlbnRTbmlm
ZikKLSAgICAgICAgd2tTZXRDRlVSTFJlcXVlc3RTaG91bGRDb250ZW50U25pZmYocmVxdWVzdC5n
ZXQoKSwgZmFsc2UpOworICAgICAgICBfQ0ZVUkxSZXF1ZXN0U2V0UHJvdG9jb2xQcm9wZXJ0eShy
ZXF1ZXN0LmdldCgpLCBfa0NGVVJMQ29ubmVjdGlvblByb3BlcnR5U2hvdWxkU25pZmYsIGtDRkJv
b2xlYW5GYWxzZSk7CiAKICAgICBSZXRhaW5QdHI8Q0ZNdXRhYmxlRGljdGlvbmFyeVJlZj4gc3Ns
UHJvcHM7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2Yv
UmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdh
dGUuY3BwCmluZGV4IDRmN2E3OTI5ZjFiMTFkODg0ZDhkMDQ3NjgyMTEyYWRiNjZlOWJiZDUuLjI4
MWE3YjYyZWJkOTYyZjkwNTJiMzQzNzNmODhiZmNlYmJmOWRmZTcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rp
b25EZWxlZ2F0ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9S
ZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlLmNwcApAQCAtMTU4LDggKzE1OCw5
IEBAIFJlc291cmNlUmVxdWVzdCBSZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRl
OjpjcmVhdGVSZXNvdXJjZVJlcXVlc3QoQ0ZVCiAgICAgICAgIFJldGFpblB0cjxDRlN0cmluZ1Jl
Zj4gbGFzdEhUVFBNZXRob2QgPSBtX2hhbmRsZS0+bGFzdEhUVFBNZXRob2QoKS5jcmVhdGVDRlN0
cmluZygpOwogICAgICAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IG5ld01ldGhvZCA9IGFkb3B0
Q0YoQ0ZVUkxSZXF1ZXN0Q29weUhUVFBSZXF1ZXN0TWV0aG9kKGNmUmVxdWVzdCkpOwogICAgICAg
ICBpZiAoQ0ZTdHJpbmdDb21wYXJlV2l0aE9wdGlvbnMobGFzdEhUVFBNZXRob2QuZ2V0KCksIG5l
d01ldGhvZC5nZXQoKSwgQ0ZSYW5nZU1ha2UoMCwgQ0ZTdHJpbmdHZXRMZW5ndGgobGFzdEhUVFBN
ZXRob2QuZ2V0KCkpKSwga0NGQ29tcGFyZUNhc2VJbnNlbnNpdGl2ZSkpIHsKLSAgICAgICAgICAg
IFJldGFpblB0cjxDRk11dGFibGVVUkxSZXF1ZXN0UmVmPiBtdXRhYmxlUmVxdWVzdCA9IGFkb3B0
Q0YoQ0ZVUkxSZXF1ZXN0Q3JlYXRlTXV0YWJsZUNvcHkoMCwgY2ZSZXF1ZXN0KSk7Ci0gICAgICAg
ICAgICB3a1NldFJlcXVlc3RTdG9yYWdlU2Vzc2lvbihtX2hhbmRsZS0+c3RvcmFnZVNlc3Npb24o
KSwgbXV0YWJsZVJlcXVlc3QuZ2V0KCkpOworICAgICAgICAgICAgYXV0byBtdXRhYmxlUmVxdWVz
dCA9IGFkb3B0Q0YoQ0ZVUkxSZXF1ZXN0Q3JlYXRlTXV0YWJsZUNvcHkoa0NGQWxsb2NhdG9yRGVm
YXVsdCwgY2ZSZXF1ZXN0KSk7CisgICAgICAgICAgICBpZiAoYXV0byBzdG9yYWdlU2Vzc2lvbiA9
IG1faGFuZGxlLT5zdG9yYWdlU2Vzc2lvbigpKQorICAgICAgICAgICAgICAgIF9DRlVSTFJlcXVl
c3RTZXRTdG9yYWdlU2Vzc2lvbihtdXRhYmxlUmVxdWVzdC5nZXQoKSwgc3RvcmFnZVNlc3Npb24p
OwogICAgICAgICAgICAgQ0ZVUkxSZXF1ZXN0U2V0SFRUUFJlcXVlc3RNZXRob2QobXV0YWJsZVJl
cXVlc3QuZ2V0KCksIGxhc3RIVFRQTWV0aG9kLmdldCgpKTsKIAogICAgICAgICAgICAgRm9ybURh
dGEqIGJvZHkgPSBtX2hhbmRsZS0+Zmlyc3RSZXF1ZXN0KCkuaHR0cEJvZHkoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVDRlVS
TENvbm5lY3Rpb25EZWxlZ2F0ZVdpdGhPcGVyYXRpb25RdWV1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdh
dGVXaXRoT3BlcmF0aW9uUXVldWUuY3BwCmluZGV4IGQwNjJhNTQ4ZDcxNmQ4ZWQ4YTljYWQ3NjI3
MDJiNWU5Mzc3MmUzNDEuLjlmMGQ2YWZjOTg0N2ZlMmFjNTRkN2Y2ZGUwNGFlYmE0YzkyNmUxZWMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VI
YW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZVdpdGhPcGVyYXRpb25RdWV1ZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGVVJMQ29u
bmVjdGlvbkRlbGVnYXRlV2l0aE9wZXJhdGlvblF1ZXVlLmNwcApAQCAtMzAsMTIgKzMwLDEyIEBA
CiAKICNpbmNsdWRlICJBdXRoZW50aWNhdGlvbkNGLmgiCiAjaW5jbHVkZSAiQXV0aGVudGljYXRp
b25DaGFsbGVuZ2UuaCIKKyNpbmNsdWRlICJDRk5ldHdvcmtTUEkuaCIKICNpbmNsdWRlICJMb2dn
aW5nLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VIYW5kbGUuaCIKICNpbmNsdWRlICJSZXNvdXJjZUhh
bmRsZUNsaWVudC5oIgogI2luY2x1ZGUgIlJlc291cmNlUmVzcG9uc2UuaCIKICNpbmNsdWRlICJT
aGFyZWRCdWZmZXIuaCIKLSNpbmNsdWRlICJXZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmgiCiAjaW5j
bHVkZSAiV2ViQ29yZVVSTFJlc3BvbnNlLmgiCiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4K
ICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CkBAIC0xNDAsNyArMTQwLDcgQEAgdm9pZCBS
ZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlV2l0aE9wZXJhdGlvblF1ZXVlOjpk
aWRSZWNlaXZlUmVzcG9uc2UKICAgICAgICAgTE9HKE5ldHdvcmssICJDRk5ldCAtIFJlc291cmNl
SGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGVXaXRoT3BlcmF0aW9uUXVldWU6OmRpZFJlY2Vp
dmVSZXNwb25zZShoYW5kbGU9JXApICglcykiLCBtX2hhbmRsZSwgbV9oYW5kbGUtPmZpcnN0UmVx
dWVzdCgpLnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwogCiAgICAgICAgIC8vIEF2b2lk
IE1JTUUgdHlwZSBzbmlmZmluZyBpZiB0aGUgcmVzcG9uc2UgY29tZXMgYmFjayBhcyAzMDQgTm90
IE1vZGlmaWVkLgotICAgICAgICBDRkhUVFBNZXNzYWdlUmVmIG1zZyA9IHdrR2V0Q0ZVUkxSZXNw
b25zZUhUVFBSZXNwb25zZShjZlJlc3BvbnNlKTsKKyAgICAgICAgYXV0byBtc2cgPSBDRlVSTFJl
c3BvbnNlR2V0SFRUUFJlc3BvbnNlKGNmUmVzcG9uc2UpOwogICAgICAgICBpbnQgc3RhdHVzQ29k
ZSA9IG1zZyA/IENGSFRUUE1lc3NhZ2VHZXRSZXNwb25zZVN0YXR1c0NvZGUobXNnKSA6IDA7CiAK
ICAgICAgICAgaWYgKHN0YXR1c0NvZGUgIT0gMzA0KQpAQCAtMTQ4LDcgKzE0OCw3IEBAIHZvaWQg
UmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZVdpdGhPcGVyYXRpb25RdWV1ZTo6
ZGlkUmVjZWl2ZVJlc3BvbnNlCiAKICNpZiAhUExBVEZPUk0oSU9TKQogICAgICAgICBpZiAoX0NG
VVJMUmVxdWVzdENvcHlQcm90b2NvbFByb3BlcnR5Rm9yS2V5KG1faGFuZGxlLT5maXJzdFJlcXVl
c3QoKS5jZlVSTFJlcXVlc3QoRG9Ob3RVcGRhdGVIVFRQQm9keSksIENGU1RSKCJGb3JjZUhUTUxN
SU1FVHlwZSIpKSkKLSAgICAgICAgICAgIHdrU2V0Q0ZVUkxSZXNwb25zZU1JTUVUeXBlKGNmUmVz
cG9uc2UsIENGU1RSKCJ0ZXh0L2h0bWwiKSk7CisgICAgICAgICAgICBDRlVSTFJlc3BvbnNlU2V0
TUlNRVR5cGUoY2ZSZXNwb25zZSwgQ0ZTVFIoInRleHQvaHRtbCIpKTsKICNlbmRpZiAvLyAhUExB
VEZPUk0oSU9TKQogICAgICAgICAKICAgICAgICAgUmVzb3VyY2VSZXNwb25zZSByZXNvdXJjZVJl
c3BvbnNlKGNmUmVzcG9uc2UpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9jZi9SZXNvdXJjZVJlcXVlc3RDRk5ldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlUmVxdWVzdENGTmV0LmNwcAppbmRleCBhNGQ0M2RmM2Mw
YTQyOGYxNzA2MTgyZThhOGFhYmMwNWRkYTIzYTllLi4xOTQ1NTI1ZDhhMGMzZDVkMGZiMWFjODJm
MzNkYjMxNzNlMDIyMjcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL2NmL1Jlc291cmNlUmVxdWVzdENGTmV0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlUmVxdWVzdENGTmV0LmNwcApAQCAtMjYsNiArMjYsNyBA
QAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlJlc291cmNlUmVxdWVzdENGTmV0Lmgi
CiAKKyNpbmNsdWRlICJDRk5ldHdvcmtTUEkuaCIKICNpbmNsdWRlICJIVFRQSGVhZGVyTmFtZXMu
aCIKICNpbmNsdWRlICJSZXNvdXJjZVJlcXVlc3QuaCIKIApAQCAtMzksMTAgKzQwLDYgQEAKICNp
bmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKElPUykK
LSNpbmNsdWRlICJDRk5ldHdvcmtDb25uZWN0aW9uQ2FjaGVTUEkuaCIKLSNlbmRpZgotCiAjaWYg
UExBVEZPUk0oQ09DT0EpCiAjaW5jbHVkZSAiUmVzb3VyY2VMb2FkUHJpb3JpdHkuaCIKICNpbmNs
dWRlICJXZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmgiCkBAIC0xNTQsMTMgKzE1MSwxMyBAQCB2b2lk
IFJlc291cmNlUmVxdWVzdDo6ZG9VcGRhdGVQbGF0Zm9ybVJlcXVlc3QoKQogICAgIENGVVJMUmVx
dWVzdFNldEhUVFBSZXF1ZXN0TWV0aG9kKGNmUmVxdWVzdCwgaHR0cE1ldGhvZCgpLmNyZWF0ZUNG
U3RyaW5nKCkuZ2V0KCkpOwogCiAgICAgaWYgKGh0dHBQaXBlbGluaW5nRW5hYmxlZCgpKQotICAg
ICAgICB3a0hUVFBSZXF1ZXN0RW5hYmxlUGlwZWxpbmluZyhjZlJlcXVlc3QpOworICAgICAgICBD
RlVSTFJlcXVlc3RTZXRTaG91bGRQaXBlbGluZUhUVFAoY2ZSZXF1ZXN0LCB0cnVlLCB0cnVlKTsK
IAogICAgIGlmIChyZXNvdXJjZVByaW9yaXRpZXNFbmFibGVkKCkpCi0gICAgICAgIHdrU2V0SFRU
UFJlcXVlc3RQcmlvcml0eShjZlJlcXVlc3QsIHRvUGxhdGZvcm1SZXF1ZXN0UHJpb3JpdHkocHJp
b3JpdHkoKSkpOworICAgICAgICBDRlVSTFJlcXVlc3RTZXRSZXF1ZXN0UHJpb3JpdHkoY2ZSZXF1
ZXN0LCB0b1BsYXRmb3JtUmVxdWVzdFByaW9yaXR5KHByaW9yaXR5KCkpKTsKIAogI2lmICFQTEFU
Rk9STShXSU4pCi0gICAgd2tDRlVSTFJlcXVlc3RBbGxvd0FsbFBvc3RDYWNoaW5nKGNmUmVxdWVz
dCk7CisgICAgX0NGVVJMUmVxdWVzdFNldFByb3RvY29sUHJvcGVydHkoY2ZSZXF1ZXN0LCBrQ0ZV
UkxSZXF1ZXN0QWxsb3dBbGxQT1NUQ2FjaGluZywga0NGQm9vbGVhblRydWUpOwogI2VuZGlmCiAK
ICAgICBzZXRIZWFkZXJGaWVsZHMoY2ZSZXF1ZXN0LCBodHRwSGVhZGVyRmllbGRzKCkpOwpAQCAt
MjYxLDcgKzI1OCw3IEBAIHZvaWQgUmVzb3VyY2VSZXF1ZXN0Ojpkb1VwZGF0ZVJlc291cmNlUmVx
dWVzdCgpCiAgICAgbV9hbGxvd0Nvb2tpZXMgPSBDRlVSTFJlcXVlc3RTaG91bGRIYW5kbGVIVFRQ
Q29va2llcyhtX2NmUmVxdWVzdC5nZXQoKSk7CiAKICAgICBpZiAocmVzb3VyY2VQcmlvcml0aWVz
RW5hYmxlZCgpKQotICAgICAgICBtX3ByaW9yaXR5ID0gdG9SZXNvdXJjZUxvYWRQcmlvcml0eSh3
a0dldEhUVFBSZXF1ZXN0UHJpb3JpdHkobV9jZlJlcXVlc3QuZ2V0KCkpKTsKKyAgICAgICAgbV9w
cmlvcml0eSA9IHRvUmVzb3VyY2VMb2FkUHJpb3JpdHkoQ0ZVUkxSZXF1ZXN0R2V0UmVxdWVzdFBy
aW9yaXR5KG1fY2ZSZXF1ZXN0LmdldCgpKSk7CiAKICAgICBtX2h0dHBIZWFkZXJGaWVsZHMuY2xl
YXIoKTsKICAgICBpZiAoQ0ZEaWN0aW9uYXJ5UmVmIGhlYWRlcnMgPSBDRlVSTFJlcXVlc3RDb3B5
QWxsSFRUUEhlYWRlckZpZWxkcyhtX2NmUmVxdWVzdC5nZXQoKSkpIHsKQEAgLTMxNiw4ICszMTMs
OSBAQCB2b2lkIFJlc291cmNlUmVxdWVzdDo6c2V0U3RvcmFnZVNlc3Npb24oQ0ZVUkxTdG9yYWdl
U2Vzc2lvblJlZiBzdG9yYWdlU2Vzc2lvbikKIHsKICAgICB1cGRhdGVQbGF0Zm9ybVJlcXVlc3Qo
KTsKIAotICAgIENGTXV0YWJsZVVSTFJlcXVlc3RSZWYgY2ZSZXF1ZXN0ID0gQ0ZVUkxSZXF1ZXN0
Q3JlYXRlTXV0YWJsZUNvcHkoMCwgbV9jZlJlcXVlc3QuZ2V0KCkpOwotICAgIHdrU2V0UmVxdWVz
dFN0b3JhZ2VTZXNzaW9uKHN0b3JhZ2VTZXNzaW9uLCBjZlJlcXVlc3QpOworICAgIGF1dG8gY2ZS
ZXF1ZXN0ID0gQ0ZVUkxSZXF1ZXN0Q3JlYXRlTXV0YWJsZUNvcHkoMCwgbV9jZlJlcXVlc3QuZ2V0
KCkpOworICAgIGlmIChzdG9yYWdlU2Vzc2lvbikKKyAgICAgICAgX0NGVVJMUmVxdWVzdFNldFN0
b3JhZ2VTZXNzaW9uKGNmUmVxdWVzdCwgc3RvcmFnZVNlc3Npb24pOwogICAgIG1fY2ZSZXF1ZXN0
ID0gYWRvcHRDRihjZlJlcXVlc3QpOwogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIGNsZWFyT3JV
cGRhdGVOU1VSTFJlcXVlc3QoKTsKQEAgLTM5MSw3ICszODksOCBAQCB1bnNpZ25lZCBpbml0aWFs
aXplTWF4aW11bUhUVFBDb25uZWN0aW9uQ291bnRQZXJIb3N0KCkKICAgICBzdGF0aWMgY29uc3Qg
dW5zaWduZWQgcHJlZmVycmVkQ29ubmVjdGlvbkNvdW50ID0gNjsKICAgICBzdGF0aWMgY29uc3Qg
dW5zaWduZWQgdW5saW1pdGVkUmVxdWVzdENvdW50ID0gMTAwMDA7CiAKLSAgICB1bnNpZ25lZCBt
YXhpbXVtSFRUUENvbm5lY3Rpb25Db3VudFBlckhvc3QgPSB3a0luaXRpYWxpemVNYXhpbXVtSFRU
UENvbm5lY3Rpb25Db3VudFBlckhvc3QocHJlZmVycmVkQ29ubmVjdGlvbkNvdW50KTsKKyAgICBf
Q0ZOZXR3b3JrSFRUUENvbm5lY3Rpb25DYWNoZVNldExpbWl0KGtIVFRQTG9hZFdpZHRoLCBwcmVm
ZXJyZWRDb25uZWN0aW9uQ291bnQpOworICAgIHVuc2lnbmVkIG1heGltdW1IVFRQQ29ubmVjdGlv
bkNvdW50UGVySG9zdCA9IF9DRk5ldHdvcmtIVFRQQ29ubmVjdGlvbkNhY2hlR2V0TGltaXQoa0hU
VFBMb2FkV2lkdGgpOwogCiAgICAgQm9vbGVhbiBrZXlFeGlzdHNBbmRIYXNWYWxpZEZvcm1hdCA9
IGZhbHNlOwogICAgIEJvb2xlYW4gcHJlZlZhbHVlID0gQ0ZQcmVmZXJlbmNlc0dldEFwcEJvb2xl
YW5WYWx1ZShDRlNUUigiV2ViS2l0RW5hYmxlSFRUUFBpcGVsaW5pbmciKSwga0NGUHJlZmVyZW5j
ZXNDdXJyZW50QXBwbGljYXRpb24sICZrZXlFeGlzdHNBbmRIYXNWYWxpZEZvcm1hdCk7CkBAIC00
MDIsMTAgKzQwMSwxMCBAQCB1bnNpZ25lZCBpbml0aWFsaXplTWF4aW11bUhUVFBDb25uZWN0aW9u
Q291bnRQZXJIb3N0KCkKICAgICBpZiAoIVJlc291cmNlUmVxdWVzdDo6cmVzb3VyY2VQcmlvcml0
aWVzRW5hYmxlZCgpKQogICAgICAgICByZXR1cm4gbWF4aW11bUhUVFBDb25uZWN0aW9uQ291bnRQ
ZXJIb3N0OwogCi0gICAgd2tTZXRIVFRQUmVxdWVzdE1heGltdW1Qcmlvcml0eSh0b1BsYXRmb3Jt
UmVxdWVzdFByaW9yaXR5KFJlc291cmNlTG9hZFByaW9yaXR5OjpIaWdoZXN0KSk7CisgICAgX0NG
TmV0d29ya0hUVFBDb25uZWN0aW9uQ2FjaGVTZXRMaW1pdChrSFRUUFByaW9yaXR5TnVtTGV2ZWxz
LCB0b1BsYXRmb3JtUmVxdWVzdFByaW9yaXR5KFJlc291cmNlTG9hZFByaW9yaXR5OjpIaWdoZXN0
KSk7CiAjaWYgIVBMQVRGT1JNKFdJTikKICAgICAvLyBGSVhNRTogPHJkYXI6Ly9wcm9ibGVtLzkz
NzU2MDk+IEltcGxlbWVudCBtaW5pbXVtIGZhc3QgbGFuZSBwcmlvcml0eSBzZXR0aW5nIG9uIFdp
bmRvd3MKLSAgICB3a1NldEhUVFBSZXF1ZXN0TWluaW11bUZhc3RMYW5lUHJpb3JpdHkodG9QbGF0
Zm9ybVJlcXVlc3RQcmlvcml0eShSZXNvdXJjZUxvYWRQcmlvcml0eTo6TWVkaXVtKSk7CisgICAg
X0NGTmV0d29ya0hUVFBDb25uZWN0aW9uQ2FjaGVTZXRMaW1pdChrSFRUUE1pbmltdW1GYXN0TGFu
ZVByaW9yaXR5LCB0b1BsYXRmb3JtUmVxdWVzdFByaW9yaXR5KFJlc291cmNlTG9hZFByaW9yaXR5
OjpNZWRpdW0pKTsKICNlbmRpZgogCiAgICAgcmV0dXJuIHVubGltaXRlZFJlcXVlc3RDb3VudDsK
QEAgLTQyMCw5ICs0MTksOSBAQCB2b2lkIGluaXRpYWxpemVIVFRQQ29ubmVjdGlvblNldHRpbmdz
T25TdGFydHVwKCkKICAgICAvLyBXZSBjYW4ndCByZWFkIHNldHRpbmdzIGhlcmUgYXMgdGhpcyBp
cyBjYWxsZWQgdG9vIGVhcmx5IGZvciB0aGF0LiBBbGwgdmFsdWVzIG5lZWQgdG8gYmUgY29uc3Rh
bnRzLgogICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBwcmVmZXJyZWRDb25uZWN0aW9uQ291bnQg
PSA2OwogICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBmYXN0TGFuZUNvbm5lY3Rpb25Db3VudCA9
IDE7Ci0gICAgd2tJbml0aWFsaXplTWF4aW11bUhUVFBDb25uZWN0aW9uQ291bnRQZXJIb3N0KHBy
ZWZlcnJlZENvbm5lY3Rpb25Db3VudCk7Ci0gICAgd2tTZXRIVFRQUmVxdWVzdE1heGltdW1Qcmlv
cml0eSh0b1BsYXRmb3JtUmVxdWVzdFByaW9yaXR5KFJlc291cmNlTG9hZFByaW9yaXR5OjpIaWdo
ZXN0KSk7Ci0gICAgd2tTZXRIVFRQUmVxdWVzdE1pbmltdW1GYXN0TGFuZVByaW9yaXR5KHRvUGxh
dGZvcm1SZXF1ZXN0UHJpb3JpdHkoUmVzb3VyY2VMb2FkUHJpb3JpdHk6Ok1lZGl1bSkpOworICAg
IF9DRk5ldHdvcmtIVFRQQ29ubmVjdGlvbkNhY2hlU2V0TGltaXQoa0hUVFBMb2FkV2lkdGgsIHBy
ZWZlcnJlZENvbm5lY3Rpb25Db3VudCk7CisgICAgX0NGTmV0d29ya0hUVFBDb25uZWN0aW9uQ2Fj
aGVTZXRMaW1pdChrSFRUUFByaW9yaXR5TnVtTGV2ZWxzLCB0b1BsYXRmb3JtUmVxdWVzdFByaW9y
aXR5KFJlc291cmNlTG9hZFByaW9yaXR5OjpIaWdoZXN0KSk7CisgICAgX0NGTmV0d29ya0hUVFBD
b25uZWN0aW9uQ2FjaGVTZXRMaW1pdChrSFRUUE1pbmltdW1GYXN0TGFuZVByaW9yaXR5LCB0b1Bs
YXRmb3JtUmVxdWVzdFByaW9yaXR5KFJlc291cmNlTG9hZFByaW9yaXR5OjpNZWRpdW0pKTsKICAg
ICBfQ0ZOZXR3b3JrSFRUUENvbm5lY3Rpb25DYWNoZVNldExpbWl0KGtIVFRQTnVtRmFzdExhbmVz
LCBmYXN0TGFuZUNvbm5lY3Rpb25Db3VudCk7CiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VSZXF1ZXN0Q0ZOZXQuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VSZXF1ZXN0Q0ZOZXQuaApp
bmRleCAwMzUyOWM5MmI5YjQ3OGIzMDM0NTk3OGJlOTE4NzQyMTJmZTcxZDI0Li5jYmM0OWUxN2U3
MDkzNDUyMjVhYzk5YzM4YzRkN2JlOTdlNzlkYjEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlUmVxdWVzdENGTmV0LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZVJlcXVlc3RDRk5ldC5oCkBAIC0y
NiwxMiArMjYsOSBAQAogI2lmbmRlZiBSZXNvdXJjZVJlcXVlc3RDRk5ldF9oCiAjZGVmaW5lIFJl
c291cmNlUmVxdWVzdENGTmV0X2gKIAorI2luY2x1ZGUgIkNGTmV0d29ya1NQSS5oIgogI2luY2x1
ZGUgIlJlc291cmNlTG9hZFByaW9yaXR5LmgiCiAKLSNpZiBVU0UoQ0ZORVRXT1JLKQotdHlwZWRl
ZiBjb25zdCBzdHJ1Y3QgX0NGVVJMUmVxdWVzdCogQ0ZVUkxSZXF1ZXN0UmVmOwotI2VuZGlmCi0K
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgUmVzb3VyY2VSZXF1ZXN0OwpAQCAtNDEsNyAr
MzgsNyBAQCB2b2lkIGdldFJlc291cmNlUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QmLCBDRlVSTFJl
cXVlc3RSZWYpOwogQ0ZVUkxSZXF1ZXN0UmVmIGNmVVJMUmVxdWVzdChjb25zdCBSZXNvdXJjZVJl
cXVlc3QmKTsKICNlbmRpZgogCi1pbmxpbmUgUmVzb3VyY2VMb2FkUHJpb3JpdHkgdG9SZXNvdXJj
ZUxvYWRQcmlvcml0eShpbnQgcHJpb3JpdHkpCitpbmxpbmUgUmVzb3VyY2VMb2FkUHJpb3JpdHkg
dG9SZXNvdXJjZUxvYWRQcmlvcml0eShDRlVSTFJlcXVlc3RQcmlvcml0eSBwcmlvcml0eSkKIHsK
ICAgICBzd2l0Y2ggKHByaW9yaXR5KSB7CiAgICAgY2FzZSAtMToKQEAgLTYxLDcgKzU4LDcgQEAg
aW5saW5lIFJlc291cmNlTG9hZFByaW9yaXR5IHRvUmVzb3VyY2VMb2FkUHJpb3JpdHkoaW50IHBy
aW9yaXR5KQogICAgIH0KIH0KIAotaW5saW5lIGludCB0b1BsYXRmb3JtUmVxdWVzdFByaW9yaXR5
KFJlc291cmNlTG9hZFByaW9yaXR5IHByaW9yaXR5KQoraW5saW5lIENGVVJMUmVxdWVzdFByaW9y
aXR5IHRvUGxhdGZvcm1SZXF1ZXN0UHJpb3JpdHkoUmVzb3VyY2VMb2FkUHJpb3JpdHkgcHJpb3Jp
dHkpCiB7CiAgICAgc3dpdGNoIChwcmlvcml0eSkgewogICAgIGNhc2UgUmVzb3VyY2VMb2FkUHJp
b3JpdHk6OlZlcnlMb3c6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL2NmL1Jlc291cmNlUmVzcG9uc2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvY2YvUmVzb3VyY2VSZXNwb25zZS5oCmluZGV4IGFjYzFkNDU2OTc1Y2MxMmYzOWEzMzhkYmIy
NDM5NDFlNTdjMjZkMWEuLmM4ZTQ2NjViZjkxZDY0OWVjMDAwZWJjMDdjNTBlZmRlZjM5OTljZDAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VS
ZXNwb25zZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3Vy
Y2VSZXNwb25zZS5oCkBAIC0zMCw3ICszMCw3IEBACiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5o
PgogCiAjaWYgVVNFKENGTkVUV09SSykKLXR5cGVkZWYgc3RydWN0IF9DRlVSTFJlc3BvbnNlKiBD
RlVSTFJlc3BvbnNlUmVmOworI2luY2x1ZGUgIkNGTmV0d29ya1NQSS5oIgogI2VuZGlmCiAKIE9C
SkNfQ0xBU1MgTlNVUkxSZXNwb25zZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvY2YvUmVzb3VyY2VSZXNwb25zZUNGTmV0LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VSZXNwb25zZUNGTmV0LmNwcAppbmRleCA0YmFl
NzRlODM4MTZjMTk0ZWRjMTU0ZDg0YzJkZThmNmRkMTZmYzk1Li5iMDExYTU3ZmY0ZTRjYzJlMDc4
MzY2ODRhOGM3Mzg0NDAyYjM4Y2U2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL2NmL1Jlc291cmNlUmVzcG9uc2VDRk5ldC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZVJlc3BvbnNlQ0ZOZXQuY3BwCkBAIC0xMTMs
MTMgKzExMywxMiBAQCB2b2lkIFJlc291cmNlUmVzcG9uc2U6OnBsYXRmb3JtTGF6eUluaXQoSW5p
dExldmVsIGluaXRMZXZlbCkKICAgICBtX2luaXRMZXZlbCA9IGluaXRMZXZlbDsKIH0KIAorI2lm
ICFQTEFURk9STShDT0NPQSkKIENlcnRpZmljYXRlSW5mbyBSZXNvdXJjZVJlc3BvbnNlOjpwbGF0
Zm9ybUNlcnRpZmljYXRlSW5mbygpIGNvbnN0CiB7Ci0jaWYgUExBVEZPUk0oQ09DT0EpCi0gICAg
cmV0dXJuIENlcnRpZmljYXRlSW5mbyhhZG9wdENGKHdrQ29weU5TVVJMUmVzcG9uc2VDZXJ0aWZp
Y2F0ZUNoYWluKG5zVVJMUmVzcG9uc2UoKSkpKTsKLSNlbmRpZgotICAgIHJldHVybiBDZXJ0aWZp
Y2F0ZUluZm8oKTsKKyAgICByZXR1cm4geyB9OwogfQorI2VuZGlmCiAKIFN0cmluZyBSZXNvdXJj
ZVJlc3BvbnNlOjpwbGF0Zm9ybVN1Z2dlc3RlZEZpbGVuYW1lKCkgY29uc3QKIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvU3luY2hyb25vdXNSZXNvdXJj
ZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvY2YvU3luY2hyb25vdXNSZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRl
bGVnYXRlLmNwcAppbmRleCA1Nzg5NmRlMmI2MzNlMTY2NDViMWM3ZWFkNmZkOTAyMGZiZGM1Yzk4
Li45MjY0M2Q5N2M5Nzg0M2M3ZTI2YzQ5ZmFkOTBiMmNlNDcyMGE3YTA4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1N5bmNocm9ub3VzUmVzb3VyY2VIYW5k
bGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9jZi9TeW5jaHJvbm91c1Jlc291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVs
ZWdhdGUuY3BwCkBAIC00MSw2ICs0MSw3IEBACiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5n
Lmg+CiAKICNpZiBQTEFURk9STShDT0NPQSkKKyNpbmNsdWRlICJDRk5ldHdvcmtTUEkuaCIKICNp
bmNsdWRlICJXZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmgiCiAjaW5jbHVkZSAiV2ViQ29yZVVSTFJl
c3BvbnNlLmgiCiAjZW5kaWYgLy8gUExBVEZPUk0oQ09DT0EpCkBAIC0xNDMsNyArMTQ0LDcgQEAg
dm9pZCBTeW5jaHJvbm91c1Jlc291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGU6OmRp
ZFJlY2VpdmVSZXNwb25zZShDRlVSTEMKIAogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIC8vIEF2
b2lkIE1JTUUgdHlwZSBzbmlmZmluZyBpZiB0aGUgcmVzcG9uc2UgY29tZXMgYmFjayBhcyAzMDQg
Tm90IE1vZGlmaWVkLgotICAgIENGSFRUUE1lc3NhZ2VSZWYgbXNnID0gd2tHZXRDRlVSTFJlc3Bv
bnNlSFRUUFJlc3BvbnNlKGNmUmVzcG9uc2UpOworICAgIGF1dG8gbXNnID0gQ0ZVUkxSZXNwb25z
ZUdldEhUVFBSZXNwb25zZShjZlJlc3BvbnNlKTsKICAgICBpbnQgc3RhdHVzQ29kZSA9IG1zZyA/
IENGSFRUUE1lc3NhZ2VHZXRSZXNwb25zZVN0YXR1c0NvZGUobXNnKSA6IDA7CiAKICAgICBpZiAo
c3RhdHVzQ29kZSAhPSAzMDQpCkBAIC0xNTEsNyArMTUyLDcgQEAgdm9pZCBTeW5jaHJvbm91c1Jl
c291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGU6OmRpZFJlY2VpdmVSZXNwb25zZShD
RlVSTEMKIAogI2lmICFQTEFURk9STShJT1MpCiAgICAgaWYgKF9DRlVSTFJlcXVlc3RDb3B5UHJv
dG9jb2xQcm9wZXJ0eUZvcktleShtX2hhbmRsZS0+Zmlyc3RSZXF1ZXN0KCkuY2ZVUkxSZXF1ZXN0
KERvTm90VXBkYXRlSFRUUEJvZHkpLCBDRlNUUigiRm9yY2VIVE1MTUlNRVR5cGUiKSkpCi0gICAg
ICAgIHdrU2V0Q0ZVUkxSZXNwb25zZU1JTUVUeXBlKGNmUmVzcG9uc2UsIENGU1RSKCJ0ZXh0L2h0
bWwiKSk7CisgICAgICAgIENGVVJMUmVzcG9uc2VTZXRNSU1FVHlwZShjZlJlc3BvbnNlLCBDRlNU
UigidGV4dC9odG1sIikpOwogI2VuZGlmIC8vICFQTEFURk9STShJT1MpCiAjZWxzZQogICAgIGlm
ICghQ0ZVUkxSZXNwb25zZUdldE1JTUVUeXBlKGNmUmVzcG9uc2UpKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jb2NvYS9DcmVkZW50aWFsQ29jb2EuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY29jb2EvQ3JlZGVudGlhbENvY29hLmgKaW5k
ZXggZjJjZDk2MzJjMjBlNjU1NzBkYWNlOWI5YzA5MTEwNzc2ZDc2ZTMxNy4uZWM4MjJlNGViOWNm
NTA1MTFmZGVjZjBkNjk4NTljOWU1NzNmMGIxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9jb2NvYS9DcmVkZW50aWFsQ29jb2EuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29hL0NyZWRlbnRpYWxDb2NvYS5oCkBAIC0zMSw3ICsz
MSw3IEBACiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgogCiAjaWYgVVNFKENGTkVUV09SSykK
LXR5cGVkZWYgY29uc3Qgc3RydWN0IF9DRlVSTENyZWRlbnRpYWwqIENGVVJMQ3JlZGVudGlhbFJl
ZjsKKyNpbmNsdWRlICJDRk5ldHdvcmtTUEkuaCIKICNlbmRpZgogCiBPQkpDX0NMQVNTIE5TVVJM
Q3JlZGVudGlhbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
Y29jb2EvUmVzb3VyY2VSZXF1ZXN0Q29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL2NvY29hL1Jlc291cmNlUmVxdWVzdENvY29hLm1tCmluZGV4IDNiMWIwYTJmODc0NzQ3
YjM4YTJjODM4MGZiNjU1OTg2YmRlYjllY2MuLmZjZjQ5MzdjMzYwYjIyYWY4ZTFiZmM5YTQ1MzBi
YjkxYzE3MWJiNWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
Y29jb2EvUmVzb3VyY2VSZXF1ZXN0Q29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9jb2NvYS9SZXNvdXJjZVJlcXVlc3RDb2NvYS5tbQpAQCAtNzksNyArNzksNyBA
QCB2b2lkIFJlc291cmNlUmVxdWVzdDo6ZG9VcGRhdGVSZXNvdXJjZVJlcXVlc3QoKQogICAgIG1f
YWxsb3dDb29raWVzID0gW21fbnNSZXF1ZXN0LmdldCgpIEhUVFBTaG91bGRIYW5kbGVDb29raWVz
XTsKIAogICAgIGlmIChyZXNvdXJjZVByaW9yaXRpZXNFbmFibGVkKCkpCi0gICAgICAgIG1fcHJp
b3JpdHkgPSB0b1Jlc291cmNlTG9hZFByaW9yaXR5KHdrR2V0SFRUUFJlcXVlc3RQcmlvcml0eShb
bV9uc1JlcXVlc3QuZ2V0KCkgX0NGVVJMUmVxdWVzdF0pKTsKKyAgICAgICAgbV9wcmlvcml0eSA9
IHRvUmVzb3VyY2VMb2FkUHJpb3JpdHkobV9uc1JlcXVlc3QgPyBDRlVSTFJlcXVlc3RHZXRSZXF1
ZXN0UHJpb3JpdHkoW21fbnNSZXF1ZXN0IF9DRlVSTFJlcXVlc3RdKSA6IDApOwogCiAgICAgbV9o
dHRwSGVhZGVyRmllbGRzLmNsZWFyKCk7CiAgICAgW1ttX25zUmVxdWVzdCBhbGxIVFRQSGVhZGVy
RmllbGRzXSBlbnVtZXJhdGVLZXlzQW5kT2JqZWN0c1VzaW5nQmxvY2s6IF4oTlNTdHJpbmcgKm5h
bWUsIE5TU3RyaW5nICp2YWx1ZSwgQk9PTCAqKSB7CkBAIC0xMzMsMTMgKzEzMywxMyBAQCB2b2lk
IFJlc291cmNlUmVxdWVzdDo6ZG9VcGRhdGVQbGF0Zm9ybVJlcXVlc3QoKQogICAgICAgICBuc1Jl
cXVlc3QgPSBbW05TTXV0YWJsZVVSTFJlcXVlc3QgYWxsb2NdIGluaXRXaXRoVVJMOnVybCgpXTsK
IAogICAgIGlmIChSZXNvdXJjZVJlcXVlc3Q6Omh0dHBQaXBlbGluaW5nRW5hYmxlZCgpKQotICAg
ICAgICB3a0hUVFBSZXF1ZXN0RW5hYmxlUGlwZWxpbmluZyhbbnNSZXF1ZXN0IF9DRlVSTFJlcXVl
c3RdKTsKKyAgICAgICAgQ0ZVUkxSZXF1ZXN0U2V0U2hvdWxkUGlwZWxpbmVIVFRQKFtuc1JlcXVl
c3QgX0NGVVJMUmVxdWVzdF0sIHRydWUsIHRydWUpOwogCiAgICAgaWYgKFJlc291cmNlUmVxdWVz
dDo6cmVzb3VyY2VQcmlvcml0aWVzRW5hYmxlZCgpKQotICAgICAgICB3a1NldEhUVFBSZXF1ZXN0
UHJpb3JpdHkoW25zUmVxdWVzdCBfQ0ZVUkxSZXF1ZXN0XSwgdG9QbGF0Zm9ybVJlcXVlc3RQcmlv
cml0eShwcmlvcml0eSgpKSk7CisgICAgICAgIENGVVJMUmVxdWVzdFNldFJlcXVlc3RQcmlvcml0
eShbbnNSZXF1ZXN0IF9DRlVSTFJlcXVlc3RdLCB0b1BsYXRmb3JtUmVxdWVzdFByaW9yaXR5KHBy
aW9yaXR5KCkpKTsKIAogICAgIFtuc1JlcXVlc3Qgc2V0Q2FjaGVQb2xpY3k6KE5TVVJMUmVxdWVz
dENhY2hlUG9saWN5KWNhY2hlUG9saWN5KCldOwotICAgIHdrQ0ZVUkxSZXF1ZXN0QWxsb3dBbGxQ
b3N0Q2FjaGluZyhbbnNSZXF1ZXN0IF9DRlVSTFJlcXVlc3RdKTsKKyAgICBfQ0ZVUkxSZXF1ZXN0
U2V0UHJvdG9jb2xQcm9wZXJ0eShbbnNSZXF1ZXN0IF9DRlVSTFJlcXVlc3RdLCBrQ0ZVUkxSZXF1
ZXN0QWxsb3dBbGxQT1NUQ2FjaGluZywga0NGQm9vbGVhblRydWUpOwogCiAgICAgZG91YmxlIHRp
bWVvdXRJbnRlcnZhbCA9IFJlc291cmNlUmVxdWVzdEJhc2U6OnRpbWVvdXRJbnRlcnZhbCgpOwog
ICAgIGlmICh0aW1lb3V0SW50ZXJ2YWwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL2NvY29hL1Jlc291cmNlUmVzcG9uc2VDb2NvYS5tbSBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvY29jb2EvUmVzb3VyY2VSZXNwb25zZUNvY29hLm1tCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjFkNzljZGNjNzI0MDgxMTUxZWE4NzBlMWI0NzRmNzhhMGExNjgxNGIKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29hL1Jlc291cmNl
UmVzcG9uc2VDb2NvYS5tbQpAQCAtMCwwICsxLDIzMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAwNiBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJS
ZXNvdXJjZVJlc3BvbnNlLmgiCisKKyNpZiBQTEFURk9STShDT0NPQSkKKworI2ltcG9ydCAiQ0ZO
ZXR3b3JrU1BJLmgiCisjaW1wb3J0ICJIVFRQUGFyc2Vycy5oIgorI2ltcG9ydCAiV2ViQ29yZVVS
TFJlc3BvbnNlLmgiCisjaW1wb3J0IDxGb3VuZGF0aW9uL0ZvdW5kYXRpb24uaD4KKyNpbXBvcnQg
PGxpbWl0cz4KKyNpbXBvcnQgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCit2b2lkIFJlc291cmNlUmVzcG9uc2U6OmluaXROU1VSTFJlc3BvbnNlKCkgY29uc3QK
K3sKKyAgICBpZiAoIW1faHR0cFN0YXR1c0NvZGUgfHwgIW1fdXJsLnByb3RvY29sSXNJbkhUVFBG
YW1pbHkoKSkgeworICAgICAgICAvLyBXb3JrIGFyb3VuZCBhIG1pc3Rha2UgaW4gdGhlIE5TVVJM
UmVzcG9uc2UgY2xhc3MgLSA8cmRhcjovL3Byb2JsZW0vNjg3NTIxOT4uCisgICAgICAgIC8vIFRo
ZSBpbml0IGZ1bmN0aW9uIHRha2VzIGFuIE5TSW50ZWdlciwgZXZlbiB0aG91Z2ggdGhlIGFjY2Vz
c29yIHJldHVybnMgYSBsb25nIGxvbmcuCisgICAgICAgIC8vIEZvciB2YWx1ZXMgdGhhdCB3b24n
dCBmaXQgaW4gYW4gTlNJbnRlZ2VyLCBwYXNzIC0xIGluc3RlYWQuCisgICAgICAgIE5TSW50ZWdl
ciBleHBlY3RlZENvbnRlbnRMZW5ndGg7CisgICAgICAgIGlmIChtX2V4cGVjdGVkQ29udGVudExl
bmd0aCA8IDAgfHwgbV9leHBlY3RlZENvbnRlbnRMZW5ndGggPiBzdGQ6Om51bWVyaWNfbGltaXRz
PE5TSW50ZWdlcj46Om1heCgpKQorICAgICAgICAgICAgZXhwZWN0ZWRDb250ZW50TGVuZ3RoID0g
LTE7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGV4cGVjdGVkQ29udGVudExlbmd0aCA9IHN0
YXRpY19jYXN0PE5TSW50ZWdlcj4obV9leHBlY3RlZENvbnRlbnRMZW5ndGgpOworCisgICAgICAg
IE5TU3RyaW5nKiBlbmNvZGluZ05TU3RyaW5nID0gbnNTdHJpbmdOaWxJZkVtcHR5KG1fdGV4dEVu
Y29kaW5nTmFtZSk7CisgICAgICAgIG1fbnNSZXNwb25zZSA9IGFkb3B0TlMoW1tOU1VSTFJlc3Bv
bnNlIGFsbG9jXSBpbml0V2l0aFVSTDptX3VybCBNSU1FVHlwZTptX21pbWVUeXBlIGV4cGVjdGVk
Q29udGVudExlbmd0aDpleHBlY3RlZENvbnRlbnRMZW5ndGggdGV4dEVuY29kaW5nTmFtZTplbmNv
ZGluZ05TU3RyaW5nXSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvLyBGSVhNRTog
V2UgbG9zZSB0aGUgc3RhdHVzIHRleHQgYW5kIHRoZSBIVFRQIHZlcnNpb24gaGVyZS4KKyAgICBO
U011dGFibGVEaWN0aW9uYXJ5KiBoZWFkZXJEaWN0aW9uYXJ5ID0gW05TTXV0YWJsZURpY3Rpb25h
cnkgZGljdGlvbmFyeV07CisgICAgZm9yIChhdXRvJiBoZWFkZXIgOiBtX2h0dHBIZWFkZXJGaWVs
ZHMpCisgICAgICAgIFtoZWFkZXJEaWN0aW9uYXJ5IHNldE9iamVjdDooTlNTdHJpbmcgKiloZWFk
ZXIudmFsdWUgZm9yS2V5OihOU1N0cmluZyAqKWhlYWRlci5rZXldOworCisgICAgbV9uc1Jlc3Bv
bnNlID0gYWRvcHROUyhbW05TSFRUUFVSTFJlc3BvbnNlIGFsbG9jXSBpbml0V2l0aFVSTDptX3Vy
bCBzdGF0dXNDb2RlOm1faHR0cFN0YXR1c0NvZGUgSFRUUFZlcnNpb246KE5TU3RyaW5nKilrQ0ZI
VFRQVmVyc2lvbjFfMSBoZWFkZXJGaWVsZHM6aGVhZGVyRGljdGlvbmFyeV0pOworCisgICAgLy8g
TWltZSB0eXBlIHNuaWZmaW5nIGRvZXNuJ3Qgd29yayB3aXRoIGEgc3ludGhlc2l6ZWQgcmVzcG9u
c2UuCisgICAgW21fbnNSZXNwb25zZS5nZXQoKSBfc2V0TUlNRVR5cGU6KE5TU3RyaW5nICopbV9t
aW1lVHlwZV07Cit9CisKK0NlcnRpZmljYXRlSW5mbyBSZXNvdXJjZVJlc3BvbnNlOjpwbGF0Zm9y
bUNlcnRpZmljYXRlSW5mbygpIGNvbnN0Cit7CisgICAgQVNTRVJUKG1fbnNSZXNwb25zZSk7Cisg
ICAgYXV0byBjZlJlc3BvbnNlID0gW21fbnNSZXNwb25zZSBfQ0ZVUkxSZXNwb25zZV07CisgICAg
aWYgKCFjZlJlc3BvbnNlKQorICAgICAgICByZXR1cm4geyB9OworCisgICAgQ0ZEaWN0aW9uYXJ5
UmVmIGNvbnRleHQgPSBfQ0ZVUkxSZXNwb25zZUdldFNTTENlcnRpZmljYXRlQ29udGV4dChjZlJl
c3BvbnNlKTsKKyAgICBpZiAoIWNvbnRleHQpCisgICAgICAgIHJldHVybiB7IH07CisKKyAgICBh
dXRvIHRydXN0VmFsdWUgPSBDRkRpY3Rpb25hcnlHZXRWYWx1ZShjb250ZXh0LCBrQ0ZTdHJlYW1Q
cm9wZXJ0eVNTTFBlZXJUcnVzdCk7CisgICAgaWYgKCF0cnVzdFZhbHVlKQorICAgICAgICByZXR1
cm4geyB9OworICAgIEFTU0VSVChDRkdldFR5cGVJRCh0cnVzdFZhbHVlKSA9PSBTZWNUcnVzdEdl
dFR5cGVJRCgpKTsKKyAgICBhdXRvIHRydXN0ID0gKFNlY1RydXN0UmVmKXRydXN0VmFsdWU7CisK
KyAgICBTZWNUcnVzdFJlc3VsdFR5cGUgdHJ1c3RSZXN1bHRUeXBlOworICAgIE9TU3RhdHVzIHJl
c3VsdCA9IFNlY1RydXN0R2V0VHJ1c3RSZXN1bHQodHJ1c3QsICZ0cnVzdFJlc3VsdFR5cGUpOwor
ICAgIGlmIChyZXN1bHQgIT0gZXJyU2VjU3VjY2VzcykKKyAgICAgICAgcmV0dXJuIHsgfTsKKwor
ICAgIGlmICh0cnVzdFJlc3VsdFR5cGUgPT0ga1NlY1RydXN0UmVzdWx0SW52YWxpZCkgeworICAg
ICAgICByZXN1bHQgPSBTZWNUcnVzdEV2YWx1YXRlKHRydXN0LCAmdHJ1c3RSZXN1bHRUeXBlKTsK
KyAgICAgICAgaWYgKHJlc3VsdCAhPSBlcnJTZWNTdWNjZXNzKQorICAgICAgICAgICAgcmV0dXJu
IHsgfTsKKyAgICB9CisKKyAgICBDRkluZGV4IGNvdW50ID0gU2VjVHJ1c3RHZXRDZXJ0aWZpY2F0
ZUNvdW50KHRydXN0KTsKKyAgICBhdXRvIGNlcnRpZmljYXRlQ2hhaW4gPSBDRkFycmF5Q3JlYXRl
TXV0YWJsZSgwLCBjb3VudCwgJmtDRlR5cGVBcnJheUNhbGxCYWNrcyk7CisgICAgZm9yIChDRklu
ZGV4IGkgPSAwOyBpIDwgY291bnQ7IGkrKykKKyAgICAgICAgQ0ZBcnJheUFwcGVuZFZhbHVlKGNl
cnRpZmljYXRlQ2hhaW4sIFNlY1RydXN0R2V0Q2VydGlmaWNhdGVBdEluZGV4KHRydXN0LCBpKSk7
CisKKyAgICByZXR1cm4gQ2VydGlmaWNhdGVJbmZvKGFkb3B0Q0YoY2VydGlmaWNhdGVDaGFpbikp
OworfQorCisjaWYgVVNFKENGTkVUV09SSykKKworTlNVUkxSZXNwb25zZSAqUmVzb3VyY2VSZXNw
b25zZTo6bnNVUkxSZXNwb25zZSgpIGNvbnN0Cit7CisgICAgaWYgKCFtX25zUmVzcG9uc2UgJiYg
IW1fY2ZSZXNwb25zZSAmJiAhbV9pc051bGwpIHsKKyAgICAgICAgaW5pdE5TVVJMUmVzcG9uc2Uo
KTsKKyAgICAgICAgbV9jZlJlc3BvbnNlID0gW21fbnNSZXNwb25zZS5nZXQoKSBfQ0ZVUkxSZXNw
b25zZV07CisgICAgICAgIHJldHVybiBtX25zUmVzcG9uc2UuZ2V0KCk7CisgICAgfQorCisgICAg
aWYgKCFtX2NmUmVzcG9uc2UpCisgICAgICAgIHJldHVybiBuaWw7CisKKyAgICBpZiAoIW1fbnNS
ZXNwb25zZSkKKyAgICAgICAgbV9uc1Jlc3BvbnNlID0gW05TVVJMUmVzcG9uc2UgX3Jlc3BvbnNl
V2l0aENGVVJMUmVzcG9uc2U6bV9jZlJlc3BvbnNlLmdldCgpXTsKKworICAgIHJldHVybiBtX25z
UmVzcG9uc2UuZ2V0KCk7Cit9CisKK1Jlc291cmNlUmVzcG9uc2U6OlJlc291cmNlUmVzcG9uc2Uo
TlNVUkxSZXNwb25zZSogbnNSZXNwb25zZSkKKyAgICA6IG1faW5pdExldmVsKFVuaW5pdGlhbGl6
ZWQpCisgICAgLCBtX3BsYXRmb3JtUmVzcG9uc2VJc1VwVG9EYXRlKHRydWUpCisgICAgLCBtX2Nm
UmVzcG9uc2UoW25zUmVzcG9uc2UgX0NGVVJMUmVzcG9uc2VdKQorICAgICwgbV9uc1Jlc3BvbnNl
KG5zUmVzcG9uc2UpCit7CisgICAgbV9pc051bGwgPSAhbnNSZXNwb25zZTsKK30KKworI2Vsc2UK
Kworc3RhdGljIE5TU3RyaW5nKiBjb25zdCBjb21tb25IZWFkZXJGaWVsZHNbXSA9IHsKKyAgICBA
IkFnZSIsIEAiQ2FjaGUtQ29udHJvbCIsIEAiQ29udGVudC1UeXBlIiwgQCJEYXRlIiwgQCJFdGFn
IiwgQCJFeHBpcmVzIiwgQCJMYXN0LU1vZGlmaWVkIiwgQCJQcmFnbWEiCit9OworCitOU1VSTFJl
c3BvbnNlICpSZXNvdXJjZVJlc3BvbnNlOjpuc1VSTFJlc3BvbnNlKCkgY29uc3QKK3sKKyAgICBp
ZiAoIW1fbnNSZXNwb25zZSAmJiAhbV9pc051bGwpCisgICAgICAgIGluaXROU1VSTFJlc3BvbnNl
KCk7CisgICAgcmV0dXJuIG1fbnNSZXNwb25zZS5nZXQoKTsKK30KKyAgICAKK3N0YXRpYyBOU1N0
cmluZyAqY29weU5TVVJMUmVzcG9uc2VTdGF0dXNMaW5lKE5TVVJMUmVzcG9uc2UgKnJlc3BvbnNl
KQoreworICAgIENGVVJMUmVzcG9uc2VSZWYgY2ZSZXNwb25zZSA9IFtyZXNwb25zZSBfQ0ZVUkxS
ZXNwb25zZV07CisgICAgaWYgKCFjZlJlc3BvbnNlKQorICAgICAgICByZXR1cm4gbmlsOworCisg
ICAgQ0ZIVFRQTWVzc2FnZVJlZiBjZkhUVFBNZXNzYWdlID0gQ0ZVUkxSZXNwb25zZUdldEhUVFBS
ZXNwb25zZShjZlJlc3BvbnNlKTsKKyAgICBpZiAoIWNmSFRUUE1lc3NhZ2UpCisgICAgICAgIHJl
dHVybiBuaWw7CisKKyAgICByZXR1cm4gKE5TU3RyaW5nICopQ0ZIVFRQTWVzc2FnZUNvcHlSZXNw
b25zZVN0YXR1c0xpbmUoY2ZIVFRQTWVzc2FnZSk7Cit9CisKK3ZvaWQgUmVzb3VyY2VSZXNwb25z
ZTo6cGxhdGZvcm1MYXp5SW5pdChJbml0TGV2ZWwgaW5pdExldmVsKQoreworICAgIGlmIChtX2lu
aXRMZXZlbCA+PSBpbml0TGV2ZWwpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChtX2lzTnVs
bCB8fCAhbV9uc1Jlc3BvbnNlKQorICAgICAgICByZXR1cm47CisgICAgCisgICAgaWYgKG1faW5p
dExldmVsIDwgQ29tbW9uRmllbGRzT25seSAmJiBpbml0TGV2ZWwgPj0gQ29tbW9uRmllbGRzT25s
eSkgeworICAgICAgICBOU0F1dG9yZWxlYXNlUG9vbCogcG9vbCA9IFtbTlNBdXRvcmVsZWFzZVBv
b2wgYWxsb2NdIGluaXRdOworCisgICAgICAgIG1faHR0cEhlYWRlckZpZWxkcy5jbGVhcigpOwor
ICAgICAgICBtX3VybCA9IFttX25zUmVzcG9uc2UuZ2V0KCkgVVJMXTsKKyAgICAgICAgbV9taW1l
VHlwZSA9IFttX25zUmVzcG9uc2UuZ2V0KCkgTUlNRVR5cGVdOworICAgICAgICBtX2V4cGVjdGVk
Q29udGVudExlbmd0aCA9IFttX25zUmVzcG9uc2UuZ2V0KCkgZXhwZWN0ZWRDb250ZW50TGVuZ3Ro
XTsKKyAgICAgICAgbV90ZXh0RW5jb2RpbmdOYW1lID0gW21fbnNSZXNwb25zZS5nZXQoKSB0ZXh0
RW5jb2RpbmdOYW1lXTsKKworICAgICAgICAvLyBXb3JrYXJvdW5kIGZvciA8cmRhcjovL3Byb2Js
ZW0vODc1NzA4OD4sIGNhbiBiZSByZW1vdmVkIG9uY2UgdGhhdCBpcyBmaXhlZC4KKyAgICAgICAg
dW5zaWduZWQgdGV4dEVuY29kaW5nTmFtZUxlbmd0aCA9IG1fdGV4dEVuY29kaW5nTmFtZS5sZW5n
dGgoKTsKKyAgICAgICAgaWYgKHRleHRFbmNvZGluZ05hbWVMZW5ndGggPj0gMiAmJiBtX3RleHRF
bmNvZGluZ05hbWVbMFVdID09ICciJyAmJiBtX3RleHRFbmNvZGluZ05hbWVbdGV4dEVuY29kaW5n
TmFtZUxlbmd0aCAtIDFdID09ICciJykKKyAgICAgICAgICAgIG1fdGV4dEVuY29kaW5nTmFtZSA9
IG1fdGV4dEVuY29kaW5nTmFtZS5zdHJpbmcoKS5zdWJzdHJpbmcoMSwgdGV4dEVuY29kaW5nTmFt
ZUxlbmd0aCAtIDIpOworCisgICAgICAgIGlmIChbbV9uc1Jlc3BvbnNlLmdldCgpIGlzS2luZE9m
Q2xhc3M6W05TSFRUUFVSTFJlc3BvbnNlIGNsYXNzXV0pIHsKKyAgICAgICAgICAgIE5TSFRUUFVS
TFJlc3BvbnNlICpodHRwUmVzcG9uc2UgPSAoTlNIVFRQVVJMUmVzcG9uc2UgKiltX25zUmVzcG9u
c2UuZ2V0KCk7CisKKyAgICAgICAgICAgIG1faHR0cFN0YXR1c0NvZGUgPSBbaHR0cFJlc3BvbnNl
IHN0YXR1c0NvZGVdOworICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAoaW5pdExldmVsIDwg
QWxsRmllbGRzKSB7CisgICAgICAgICAgICAgICAgTlNEaWN0aW9uYXJ5ICpoZWFkZXJzID0gW2h0
dHBSZXNwb25zZSBhbGxIZWFkZXJGaWVsZHNdOworICAgICAgICAgICAgICAgIGZvciAoTlNTdHJp
bmcgKm5hbWUgOiBjb21tb25IZWFkZXJGaWVsZHMpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYg
KE5TU3RyaW5nKiBoZWFkZXJWYWx1ZSA9IFtoZWFkZXJzIG9iamVjdEZvcktleTpuYW1lXSkKKyAg
ICAgICAgICAgICAgICAgICAgICAgIG1faHR0cEhlYWRlckZpZWxkcy5zZXQobmFtZSwgaGVhZGVy
VmFsdWUpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNl
CisgICAgICAgICAgICBtX2h0dHBTdGF0dXNDb2RlID0gMDsKKyAgICAgICAgCisgICAgICAgIFtw
b29sIGRyYWluXTsKKyAgICB9CisKKyAgICBpZiAobV9pbml0TGV2ZWwgPCBBbGxGaWVsZHMgJiYg
aW5pdExldmVsID09IEFsbEZpZWxkcykgeworICAgICAgICBpZiAoW21fbnNSZXNwb25zZS5nZXQo
KSBpc0tpbmRPZkNsYXNzOltOU0hUVFBVUkxSZXNwb25zZSBjbGFzc11dKSB7CisgICAgICAgICAg
ICBOU0F1dG9yZWxlYXNlUG9vbCogcG9vbCA9IFtbTlNBdXRvcmVsZWFzZVBvb2wgYWxsb2NdIGlu
aXRdOworCisgICAgICAgICAgICBOU0hUVFBVUkxSZXNwb25zZSAqaHR0cFJlc3BvbnNlID0gKE5T
SFRUUFVSTFJlc3BvbnNlICopbV9uc1Jlc3BvbnNlLmdldCgpOworICAgICAgICAgICAgaWYgKFJl
dGFpblB0cjxOU1N0cmluZz4gaHR0cFN0YXR1c0xpbmUgPSBhZG9wdE5TKGNvcHlOU1VSTFJlc3Bv
bnNlU3RhdHVzTGluZShodHRwUmVzcG9uc2UpKSkKKyAgICAgICAgICAgICAgICBtX2h0dHBTdGF0
dXNUZXh0ID0gZXh0cmFjdFJlYXNvblBocmFzZUZyb21IVFRQU3RhdHVzTGluZShodHRwU3RhdHVz
TGluZS5nZXQoKSk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgbV9odHRwU3Rh
dHVzVGV4dCA9IEF0b21pY1N0cmluZygiT0siLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKTsKKworICAgICAgICAgICAgTlNEaWN0aW9uYXJ5ICpoZWFkZXJzID0gW2h0dHBSZXNw
b25zZSBhbGxIZWFkZXJGaWVsZHNdOworICAgICAgICAgICAgZm9yIChOU1N0cmluZyAqbmFtZSBp
biBoZWFkZXJzKQorICAgICAgICAgICAgICAgIG1faHR0cEhlYWRlckZpZWxkcy5zZXQobmFtZSwg
W2hlYWRlcnMgb2JqZWN0Rm9yS2V5Om5hbWVdKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAg
W3Bvb2wgZHJhaW5dOworICAgICAgICB9CisgICAgfQorCisgICAgbV9pbml0TGV2ZWwgPSBpbml0
TGV2ZWw7Cit9CisKK1N0cmluZyBSZXNvdXJjZVJlc3BvbnNlOjpwbGF0Zm9ybVN1Z2dlc3RlZEZp
bGVuYW1lKCkgY29uc3QKK3sKKyAgICByZXR1cm4gW25zVVJMUmVzcG9uc2UoKSBzdWdnZXN0ZWRG
aWxlbmFtZV07Cit9CisKK2Jvb2wgUmVzb3VyY2VSZXNwb25zZTo6cGxhdGZvcm1Db21wYXJlKGNv
bnN0IFJlc291cmNlUmVzcG9uc2UmIGEsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIGIpCit7Cisg
ICAgcmV0dXJuIGEubnNVUkxSZXNwb25zZSgpID09IGIubnNVUkxSZXNwb25zZSgpOworfQorCisj
ZW5kaWYgLy8gVVNFKENGTkVUV09SSykKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5k
aWYgLy8gUExBVEZPUk0oQ09DT0EpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL2lvcy9RdWlja0xvb2suaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvaW9zL1F1aWNrTG9vay5oCmluZGV4IDBkN2U4MjVlZjJiMTE4ODZiMzhkYmIzY2I5M2UwMDBi
OGJkMmVlZTUuLjQ0ODI0ZGEwMjU4ZGNjMTc0YmRlOWJlNzU3NmE1ZmNmMjE2YzA1OTYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvaW9zL1F1aWNrTG9vay5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvaW9zL1F1aWNrTG9vay5oCkBAIC0z
Myw2ICszMywxMCBAQAogI2ltcG9ydCA8b2JqYy9vYmpjLXJ1bnRpbWUuaD4KICNpbXBvcnQgPHd0
Zi9SZWZQdHIuaD4KIAorI2lmIFVTRShDRk5FVFdPUkspCisjaW5jbHVkZSAiQ0ZOZXR3b3JrU1BJ
LmgiCisjZW5kaWYKKwogT0JKQ19DTEFTUyBOU0RhdGE7CiBPQkpDX0NMQVNTIE5TRGljdGlvbmFy
eTsKIE9CSkNfQ0xBU1MgTlNGaWxlSGFuZGxlOwpAQCAtNDQsMTEgKzQ4LDYgQEAgT0JKQ19DTEFT
UyBOU1VSTFJlcXVlc3Q7CiBPQkpDX0NMQVNTIE5TVVJMUmVzcG9uc2U7CiBPQkpDX0NMQVNTIFFM
UHJldmlld0NvbnZlcnRlcjsKIAotI2lmIFVTRShDRk5FVFdPUkspCi10eXBlZGVmIHN0cnVjdCBf
Q0ZVUkxSZXNwb25zZSogQ0ZVUkxSZXNwb25zZVJlZjsKLXR5cGVkZWYgc3RydWN0IF9DRlVSTENv
bm5lY3Rpb24qIENGVVJMQ29ubmVjdGlvblJlZjsKLSNlbmRpZgotCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIGNsYXNzIFF1aWNrTG9va0hhbmRsZUNsaWVudDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvaW9zL1F1aWNrTG9vay5tbSBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvaW9zL1F1aWNrTG9vay5tbQppbmRleCAxN2VkODY0NmE1OTQ0YTBm
MDFlZDU2ODcwOTdkOTdjYWM3MjA4NGY0Li45NmY1MGRmMDc0MDE4NDY0MGE4ZjNlYTYwNDI0NTky
ZjZhNWE5NmEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2lv
cy9RdWlja0xvb2subW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9pb3Mv
UXVpY2tMb29rLm1tCkBAIC00NiwxNSArNDYsNiBAQAogI2ltcG9ydCA8d3RmL1ZlY3Rvci5oPgog
I2ltcG9ydCA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKLSNpZiBVU0UoQ0ZORVRXT1JLKQotI2lt
cG9ydCA8Q0ZOZXR3b3JrL0NGVVJMQ29ubmVjdGlvbi5oPgotCi1AaW50ZXJmYWNlIE5TVVJMUmVz
cG9uc2UgKFF1aWNrTG9va0RldGFpbHMpCi0rKE5TVVJMUmVzcG9uc2UgKilfcmVzcG9uc2VXaXRo
Q0ZVUkxSZXNwb25zZTooQ0ZVUkxSZXNwb25zZVJlZilyZXNwb25zZTsKLS0oQ0ZVUkxSZXNwb25z
ZVJlZilfQ0ZVUkxSZXNwb25zZTsKLUBlbmQKLSNlbmRpZgotCiB1c2luZyBuYW1lc3BhY2UgV2Vi
Q29yZTsKIAogTlNTZXQgKldlYkNvcmU6OlFMUHJldmlld0dldFN1cHBvcnRlZE1JTUVUeXBlc1Nl
dCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2lvcy9XZWJD
b3JlVVJMUmVzcG9uc2VJT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2lv
cy9XZWJDb3JlVVJMUmVzcG9uc2VJT1MubW0KaW5kZXggYTYyZDFiNzI5ZTExODRlZWQwMDQyYzM5
MDU0MmRiNzNmOTU5OGIxZC4uZDA2OGY5MTdlMmRkYzc3ZTEyNGI5YTAwMDA0YjRiY2U2MjU3NWYy
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9pb3MvV2ViQ29y
ZVVSTFJlc3BvbnNlSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
aW9zL1dlYkNvcmVVUkxSZXNwb25zZUlPUy5tbQpAQCAtNDgsNyArNDgsNyBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIHZvaWQgYWRqdXN0TUlNRVR5cGVJZk5lY2Vzc2FyeShDRlVSTFJlc3BvbnNl
UmVmIGNmUmVzcG9uc2UpCiB7Ci0gICAgUmV0YWluUHRyPENGU3RyaW5nUmVmPiBtaW1lVHlwZSA9
IHdrR2V0Q0ZVUkxSZXNwb25zZU1JTUVUeXBlKGNmUmVzcG9uc2UpOworICAgIFJldGFpblB0cjxD
RlN0cmluZ1JlZj4gbWltZVR5cGUgPSBDRlVSTFJlc3BvbnNlR2V0TUlNRVR5cGUoY2ZSZXNwb25z
ZSk7CiAgICAgUmV0YWluUHRyPENGU3RyaW5nUmVmPiB1cGRhdGVkTUlNRVR5cGUgPSBtaW1lVHlw
ZTsKICAgICBpZiAoIXVwZGF0ZWRNSU1FVHlwZSkKICAgICAgICAgdXBkYXRlZE1JTUVUeXBlID0g
ZGVmYXVsdE1JTUVUeXBlKCkuY3JlYXRlQ0ZTdHJpbmcoKTsKQEAgLTU3LDEyICs1NywxMSBAQCB2
b2lkIGFkanVzdE1JTUVUeXBlSWZOZWNlc3NhcnkoQ0ZVUkxSZXNwb25zZVJlZiBjZlJlc3BvbnNl
KQogICAgIC8vIFdlIG11c3QgZW5zdXJlIHRoYXQgdGhlIE1JTUUgdHlwZSBpcyBjb3JyZWN0LCBz
byB0aGF0IFF1aWNrTG9vaydzIHdlYiBwbHVnaW4gaXMgY2FsbGVkIHdoZW4gbmVlZGVkLgogICAg
IC8vIFdlIGZpbHRlciB0aGUgYmFzaWMgTUlNRSB0eXBlcyBzbyB0aGF0IHdlIGRvbid0IGRvIHVu
bmVjZXNzYXJ5IHdvcmsgaW4gc3RhbmRhcmQgYnJvd3Npbmcgc2l0dWF0aW9ucy4KICAgICBpZiAo
c2hvdWxkVXNlUXVpY2tMb29rRm9yTUlNRVR5cGUoKE5TU3RyaW5nICopdXBkYXRlZE1JTUVUeXBl
LmdldCgpKSkgewotICAgICAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IHN1Z2dlc3RlZEZpbGVu
YW1lID0gYWRvcHRDRih3a0NvcHlDRlVSTFJlc3BvbnNlU3VnZ2VzdGVkRmlsZW5hbWUoY2ZSZXNw
b25zZSkpOworICAgICAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IHN1Z2dlc3RlZEZpbGVuYW1l
ID0gYWRvcHRDRihDRlVSTFJlc3BvbnNlQ29weVN1Z2dlc3RlZEZpbGVuYW1lKGNmUmVzcG9uc2Up
KTsKICAgICAgICAgUmV0YWluUHRyPENGU3RyaW5nUmVmPiBxdWlja0xvb2tNSU1FVHlwZSA9IGFk
b3B0Q0YoKENGU3RyaW5nUmVmKVFMVHlwZUNvcHlCZXN0TWltZVR5cGVGb3JGaWxlTmFtZUFuZE1p
bWVUeXBlKChOU1N0cmluZyAqKXN1Z2dlc3RlZEZpbGVuYW1lLmdldCgpLCAoTlNTdHJpbmcgKilt
aW1lVHlwZS5nZXQoKSkpOwogICAgICAgICBpZiAoIXF1aWNrTG9va01JTUVUeXBlKSB7Ci0gICAg
ICAgICAgICBDRlVSTFJlZiB1cmwgPSB3a0dldENGVVJMUmVzcG9uc2VVUkwoY2ZSZXNwb25zZSk7
Ci0gICAgICAgICAgICBOU1VSTCAqbnNVUkwgPSAoTlNVUkwgKil1cmw7Ci0gICAgICAgICAgICBp
ZiAoW25zVVJMIGlzRmlsZVVSTF0pIHsKKyAgICAgICAgICAgIGF1dG8gdXJsID0gQ0ZVUkxSZXNw
b25zZUdldFVSTChjZlJlc3BvbnNlKTsKKyAgICAgICAgICAgIGlmIChbKE5TVVJMICopdXJsIGlz
RmlsZVVSTF0pIHsKICAgICAgICAgICAgICAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IGV4dGVu
c2lvbiA9IGFkb3B0Q0YoQ0ZVUkxDb3B5UGF0aEV4dGVuc2lvbih1cmwpKTsKICAgICAgICAgICAg
ICAgICBpZiAoZXh0ZW5zaW9uKSB7CiAgICAgICAgICAgICAgICAgICAgIFJldGFpblB0cjxDRlN0
cmluZ1JlZj4gdXRpID0gYWRvcHRDRihVVFR5cGVDcmVhdGVQcmVmZXJyZWRJZGVudGlmaWVyRm9y
VGFnKGtVVFRhZ0NsYXNzRmlsZW5hbWVFeHRlbnNpb24sIGV4dGVuc2lvbi5nZXQoKSwgbnVsbHB0
cikpOwpAQCAtNzYsNyArNzUsNyBAQCB2b2lkIGFkanVzdE1JTUVUeXBlSWZOZWNlc3NhcnkoQ0ZV
UkxSZXNwb25zZVJlZiBjZlJlc3BvbnNlKQogICAgIH0KICNlbmRpZiAvLyBVU0UoUVVJQ0tfTE9P
SykKICAgICBpZiAoIW1pbWVUeXBlIHx8IENGU3RyaW5nQ29tcGFyZShtaW1lVHlwZS5nZXQoKSwg
dXBkYXRlZE1JTUVUeXBlLmdldCgpLCBrQ0ZDb21wYXJlQ2FzZUluc2Vuc2l0aXZlKSAhPSBrQ0ZD
b21wYXJlRXF1YWxUbykKLSAgICAgICAgd2tTZXRDRlVSTFJlc3BvbnNlTUlNRVR5cGUoY2ZSZXNw
b25zZSwgdXBkYXRlZE1JTUVUeXBlLmdldCgpKTsKKyAgICAgICAgQ0ZVUkxSZXNwb25zZVNldE1J
TUVUeXBlKGNmUmVzcG9uc2UsIHVwZGF0ZWRNSU1FVHlwZS5nZXQoKSk7CiB9CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9tYWMvUmVzb3VyY2VIYW5kbGVNYWMubW0KaW5kZXggY2RiZTAyNThkNDAxMjFmMzE0MGI0
ZjQ3OTQwY2ZiOTNmZTc3MTk2NC4uN2M5N2IyYWFlMGZkMjg4MWVjZjhiYzVhM2U3OTlkNGQ1YTA5
YmUxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvUmVz
b3VyY2VIYW5kbGVNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9t
YWMvUmVzb3VyY2VIYW5kbGVNYWMubW0KQEAgLTE2OCw3ICsxNjgsNyBAQCB2b2lkIFJlc291cmNl
SGFuZGxlOjpjcmVhdGVOU1VSTENvbm5lY3Rpb24oaWQgZGVsZWdhdGUsIGJvb2wgc2hvdWxkVXNl
Q3JlZGVudGlhbAogICAgIE5TVVJMUmVxdWVzdCAqbnNSZXF1ZXN0ID0gZmlyc3RSZXF1ZXN0KCku
bnNVUkxSZXF1ZXN0KFVwZGF0ZUhUVFBCb2R5KTsKICAgICBpZiAoIXNob3VsZENvbnRlbnRTbmlm
ZikgewogICAgICAgICBOU011dGFibGVVUkxSZXF1ZXN0ICptdXRhYmxlUmVxdWVzdCA9IFtbbnNS
ZXF1ZXN0IG11dGFibGVDb3B5XSBhdXRvcmVsZWFzZV07Ci0gICAgICAgIHdrU2V0TlNVUkxSZXF1
ZXN0U2hvdWxkQ29udGVudFNuaWZmKG11dGFibGVSZXF1ZXN0LCBOTyk7CisgICAgICAgIFttdXRh
YmxlUmVxdWVzdCBfc2V0UHJvcGVydHk6QChOTykgZm9yS2V5OihOU1N0cmluZyAqKV9rQ0ZVUkxD
b25uZWN0aW9uUHJvcGVydHlTaG91bGRTbmlmZl07CiAgICAgICAgIG5zUmVxdWVzdCA9IG11dGFi
bGVSZXF1ZXN0OwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9tYWMvUmVzb3VyY2VSZXNwb25zZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvbWFjL1Jlc291cmNlUmVzcG9uc2VNYWMubW0KZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDZmYTAwZTI0MzVlODNlNzlmOTdkNDMwODYyZGIwYjQxZDM2NjUzN2IuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VSZXNwb25zZU1hYy5tbQorKysgL2Rldi9u
dWxsCkBAIC0xLDE5NSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA2IEFwcGxlIElu
Yy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
LSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQot
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLiAKLSAqLwotCi0jaW1wb3J0ICJjb25maWcuaCIKLSNpbXBvcnQgIlJlc291cmNlUmVzcG9u
c2UuaCIKLQotI2ltcG9ydCAiSFRUUFBhcnNlcnMuaCIKLSNpbXBvcnQgIldlYkNvcmVVUkxSZXNw
b25zZS5oIgotI2ltcG9ydCAiV2ViQ29yZVN5c3RlbUludGVyZmFjZS5oIgotI2ltcG9ydCA8Rm91
bmRhdGlvbi9Gb3VuZGF0aW9uLmg+Ci0jaW1wb3J0IDxsaW1pdHM+Ci0jaW1wb3J0IDx3dGYvU3Rk
TGliRXh0cmFzLmg+Ci0KLUBpbnRlcmZhY2UgTlNVUkxSZXNwb25zZSAoV2ViTlNVUkxSZXNwb25z
ZURldGFpbHMpCi0tIChOU1RpbWVJbnRlcnZhbClfY2FsY3VsYXRlZEV4cGlyYXRpb247Ci0tIChp
ZClfaW5pdFdpdGhDRlVSTFJlc3BvbnNlOihDRlVSTFJlc3BvbnNlUmVmKXJlc3BvbnNlOwotLSAo
Q0ZVUkxSZXNwb25zZVJlZikgX0NGVVJMUmVzcG9uc2U7Ci0rIChpZClfcmVzcG9uc2VXaXRoQ0ZV
UkxSZXNwb25zZTooQ0ZVUkxSZXNwb25zZVJlZilyZXNwb25zZTsKLUBlbmQKLQotCi1uYW1lc3Bh
Y2UgV2ViQ29yZSB7Ci0KLXZvaWQgUmVzb3VyY2VSZXNwb25zZTo6aW5pdE5TVVJMUmVzcG9uc2Uo
KSBjb25zdAotewotICAgIGlmICghbV9odHRwU3RhdHVzQ29kZSB8fCAhbV91cmwucHJvdG9jb2xJ
c0luSFRUUEZhbWlseSgpKSB7Ci0gICAgICAgIC8vIFdvcmsgYXJvdW5kIGEgbWlzdGFrZSBpbiB0
aGUgTlNVUkxSZXNwb25zZSBjbGFzcyAtIDxyZGFyOi8vcHJvYmxlbS82ODc1MjE5Pi4KLSAgICAg
ICAgLy8gVGhlIGluaXQgZnVuY3Rpb24gdGFrZXMgYW4gTlNJbnRlZ2VyLCBldmVuIHRob3VnaCB0
aGUgYWNjZXNzb3IgcmV0dXJucyBhIGxvbmcgbG9uZy4KLSAgICAgICAgLy8gRm9yIHZhbHVlcyB0
aGF0IHdvbid0IGZpdCBpbiBhbiBOU0ludGVnZXIsIHBhc3MgLTEgaW5zdGVhZC4KLSAgICAgICAg
TlNJbnRlZ2VyIGV4cGVjdGVkQ29udGVudExlbmd0aDsKLSAgICAgICAgaWYgKG1fZXhwZWN0ZWRD
b250ZW50TGVuZ3RoIDwgMCB8fCBtX2V4cGVjdGVkQ29udGVudExlbmd0aCA+IHN0ZDo6bnVtZXJp
Y19saW1pdHM8TlNJbnRlZ2VyPjo6bWF4KCkpCi0gICAgICAgICAgICBleHBlY3RlZENvbnRlbnRM
ZW5ndGggPSAtMTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgZXhwZWN0ZWRDb250ZW50TGVu
Z3RoID0gc3RhdGljX2Nhc3Q8TlNJbnRlZ2VyPihtX2V4cGVjdGVkQ29udGVudExlbmd0aCk7Ci0K
LSAgICAgICAgTlNTdHJpbmcqIGVuY29kaW5nTlNTdHJpbmcgPSBuc1N0cmluZ05pbElmRW1wdHko
bV90ZXh0RW5jb2RpbmdOYW1lKTsKLSAgICAgICAgbV9uc1Jlc3BvbnNlID0gYWRvcHROUyhbW05T
VVJMUmVzcG9uc2UgYWxsb2NdIGluaXRXaXRoVVJMOm1fdXJsIE1JTUVUeXBlOm1fbWltZVR5cGUg
ZXhwZWN0ZWRDb250ZW50TGVuZ3RoOmV4cGVjdGVkQ29udGVudExlbmd0aCB0ZXh0RW5jb2RpbmdO
YW1lOmVuY29kaW5nTlNTdHJpbmddKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIC8v
IEZJWE1FOiBXZSBsb3NlIHRoZSBzdGF0dXMgdGV4dCBhbmQgdGhlIEhUVFAgdmVyc2lvbiBoZXJl
LgotICAgIE5TTXV0YWJsZURpY3Rpb25hcnkqIGhlYWRlckRpY3Rpb25hcnkgPSBbTlNNdXRhYmxl
RGljdGlvbmFyeSBkaWN0aW9uYXJ5XTsKLSAgICBmb3IgKGF1dG8mIGhlYWRlciA6IG1faHR0cEhl
YWRlckZpZWxkcykKLSAgICAgICAgW2hlYWRlckRpY3Rpb25hcnkgc2V0T2JqZWN0OihOU1N0cmlu
ZyAqKWhlYWRlci52YWx1ZSBmb3JLZXk6KE5TU3RyaW5nICopaGVhZGVyLmtleV07Ci0KLSAgICBt
X25zUmVzcG9uc2UgPSBhZG9wdE5TKFtbTlNIVFRQVVJMUmVzcG9uc2UgYWxsb2NdIGluaXRXaXRo
VVJMOm1fdXJsIHN0YXR1c0NvZGU6bV9odHRwU3RhdHVzQ29kZSBIVFRQVmVyc2lvbjooTlNTdHJp
bmcqKWtDRkhUVFBWZXJzaW9uMV8xIGhlYWRlckZpZWxkczpoZWFkZXJEaWN0aW9uYXJ5XSk7Ci0K
LSAgICAvLyBNaW1lIHR5cGUgc25pZmZpbmcgZG9lc24ndCB3b3JrIHdpdGggYSBzeW50aGVzaXpl
ZCByZXNwb25zZS4KLSAgICBbbV9uc1Jlc3BvbnNlLmdldCgpIF9zZXRNSU1FVHlwZTooTlNTdHJp
bmcgKiltX21pbWVUeXBlXTsKLX0KLQotI2lmIFVTRShDRk5FVFdPUkspCi0KLU5TVVJMUmVzcG9u
c2UgKlJlc291cmNlUmVzcG9uc2U6Om5zVVJMUmVzcG9uc2UoKSBjb25zdAotewotICAgIGlmICgh
bV9uc1Jlc3BvbnNlICYmICFtX2NmUmVzcG9uc2UgJiYgIW1faXNOdWxsKSB7Ci0gICAgICAgIGlu
aXROU1VSTFJlc3BvbnNlKCk7Ci0gICAgICAgIG1fY2ZSZXNwb25zZSA9IFttX25zUmVzcG9uc2Uu
Z2V0KCkgX0NGVVJMUmVzcG9uc2VdOwotICAgICAgICByZXR1cm4gbV9uc1Jlc3BvbnNlLmdldCgp
OwotICAgIH0KLQotICAgIGlmICghbV9jZlJlc3BvbnNlKQotICAgICAgICByZXR1cm4gbmlsOwot
Ci0gICAgaWYgKCFtX25zUmVzcG9uc2UpCi0gICAgICAgIG1fbnNSZXNwb25zZSA9IFtOU1VSTFJl
c3BvbnNlIF9yZXNwb25zZVdpdGhDRlVSTFJlc3BvbnNlOm1fY2ZSZXNwb25zZS5nZXQoKV07Ci0K
LSAgICByZXR1cm4gbV9uc1Jlc3BvbnNlLmdldCgpOwotfQotCi1SZXNvdXJjZVJlc3BvbnNlOjpS
ZXNvdXJjZVJlc3BvbnNlKE5TVVJMUmVzcG9uc2UqIG5zUmVzcG9uc2UpCi0gICAgOiBtX2luaXRM
ZXZlbChVbmluaXRpYWxpemVkKQotICAgICwgbV9wbGF0Zm9ybVJlc3BvbnNlSXNVcFRvRGF0ZSh0
cnVlKQotICAgICwgbV9jZlJlc3BvbnNlKFtuc1Jlc3BvbnNlIF9DRlVSTFJlc3BvbnNlXSkKLSAg
ICAsIG1fbnNSZXNwb25zZShuc1Jlc3BvbnNlKQotewotICAgIG1faXNOdWxsID0gIW5zUmVzcG9u
c2U7Ci19Ci0KLSNlbHNlCi0KLXN0YXRpYyBOU1N0cmluZyogY29uc3QgY29tbW9uSGVhZGVyRmll
bGRzW10gPSB7Ci0gICAgQCJBZ2UiLCBAIkNhY2hlLUNvbnRyb2wiLCBAIkNvbnRlbnQtVHlwZSIs
IEAiRGF0ZSIsIEAiRXRhZyIsIEAiRXhwaXJlcyIsIEAiTGFzdC1Nb2RpZmllZCIsIEAiUHJhZ21h
IgotfTsKLQotTlNVUkxSZXNwb25zZSAqUmVzb3VyY2VSZXNwb25zZTo6bnNVUkxSZXNwb25zZSgp
IGNvbnN0Ci17Ci0gICAgaWYgKCFtX25zUmVzcG9uc2UgJiYgIW1faXNOdWxsKQotICAgICAgICBp
bml0TlNVUkxSZXNwb25zZSgpOwotICAgIHJldHVybiBtX25zUmVzcG9uc2UuZ2V0KCk7Ci19Ci0K
LXZvaWQgUmVzb3VyY2VSZXNwb25zZTo6cGxhdGZvcm1MYXp5SW5pdChJbml0TGV2ZWwgaW5pdExl
dmVsKQotewotICAgIGlmIChtX2luaXRMZXZlbCA+PSBpbml0TGV2ZWwpCi0gICAgICAgIHJldHVy
bjsKLQotICAgIGlmIChtX2lzTnVsbCB8fCAhbV9uc1Jlc3BvbnNlKQotICAgICAgICByZXR1cm47
Ci0gICAgCi0gICAgaWYgKG1faW5pdExldmVsIDwgQ29tbW9uRmllbGRzT25seSAmJiBpbml0TGV2
ZWwgPj0gQ29tbW9uRmllbGRzT25seSkgewotICAgICAgICBOU0F1dG9yZWxlYXNlUG9vbCogcG9v
bCA9IFtbTlNBdXRvcmVsZWFzZVBvb2wgYWxsb2NdIGluaXRdOwotCi0gICAgICAgIG1faHR0cEhl
YWRlckZpZWxkcy5jbGVhcigpOwotICAgICAgICBtX3VybCA9IFttX25zUmVzcG9uc2UuZ2V0KCkg
VVJMXTsKLSAgICAgICAgbV9taW1lVHlwZSA9IFttX25zUmVzcG9uc2UuZ2V0KCkgTUlNRVR5cGVd
OwotICAgICAgICBtX2V4cGVjdGVkQ29udGVudExlbmd0aCA9IFttX25zUmVzcG9uc2UuZ2V0KCkg
ZXhwZWN0ZWRDb250ZW50TGVuZ3RoXTsKLSAgICAgICAgbV90ZXh0RW5jb2RpbmdOYW1lID0gW21f
bnNSZXNwb25zZS5nZXQoKSB0ZXh0RW5jb2RpbmdOYW1lXTsKLQotICAgICAgICAvLyBXb3JrYXJv
dW5kIGZvciA8cmRhcjovL3Byb2JsZW0vODc1NzA4OD4sIGNhbiBiZSByZW1vdmVkIG9uY2UgdGhh
dCBpcyBmaXhlZC4KLSAgICAgICAgdW5zaWduZWQgdGV4dEVuY29kaW5nTmFtZUxlbmd0aCA9IG1f
dGV4dEVuY29kaW5nTmFtZS5sZW5ndGgoKTsKLSAgICAgICAgaWYgKHRleHRFbmNvZGluZ05hbWVM
ZW5ndGggPj0gMiAmJiBtX3RleHRFbmNvZGluZ05hbWVbMFVdID09ICciJyAmJiBtX3RleHRFbmNv
ZGluZ05hbWVbdGV4dEVuY29kaW5nTmFtZUxlbmd0aCAtIDFdID09ICciJykKLSAgICAgICAgICAg
IG1fdGV4dEVuY29kaW5nTmFtZSA9IG1fdGV4dEVuY29kaW5nTmFtZS5zdHJpbmcoKS5zdWJzdHJp
bmcoMSwgdGV4dEVuY29kaW5nTmFtZUxlbmd0aCAtIDIpOwotCi0gICAgICAgIGlmIChbbV9uc1Jl
c3BvbnNlLmdldCgpIGlzS2luZE9mQ2xhc3M6W05TSFRUUFVSTFJlc3BvbnNlIGNsYXNzXV0pIHsK
LSAgICAgICAgICAgIE5TSFRUUFVSTFJlc3BvbnNlICpodHRwUmVzcG9uc2UgPSAoTlNIVFRQVVJM
UmVzcG9uc2UgKiltX25zUmVzcG9uc2UuZ2V0KCk7Ci0KLSAgICAgICAgICAgIG1faHR0cFN0YXR1
c0NvZGUgPSBbaHR0cFJlc3BvbnNlIHN0YXR1c0NvZGVdOwotICAgICAgICAgICAgCi0gICAgICAg
ICAgICBpZiAoaW5pdExldmVsIDwgQWxsRmllbGRzKSB7Ci0gICAgICAgICAgICAgICAgTlNEaWN0
aW9uYXJ5ICpoZWFkZXJzID0gW2h0dHBSZXNwb25zZSBhbGxIZWFkZXJGaWVsZHNdOwotICAgICAg
ICAgICAgICAgIGZvciAoTlNTdHJpbmcgKm5hbWUgOiBjb21tb25IZWFkZXJGaWVsZHMpIHsKLSAg
ICAgICAgICAgICAgICAgICAgaWYgKE5TU3RyaW5nKiBoZWFkZXJWYWx1ZSA9IFtoZWFkZXJzIG9i
amVjdEZvcktleTpuYW1lXSkKLSAgICAgICAgICAgICAgICAgICAgICAgIG1faHR0cEhlYWRlckZp
ZWxkcy5zZXQobmFtZSwgaGVhZGVyVmFsdWUpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgIH0KLSAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICBtX2h0dHBTdGF0dXNDb2RlID0gMDsK
LSAgICAgICAgCi0gICAgICAgIFtwb29sIGRyYWluXTsKLSAgICB9Ci0KLSAgICBpZiAobV9pbml0
TGV2ZWwgPCBBbGxGaWVsZHMgJiYgaW5pdExldmVsID09IEFsbEZpZWxkcykgewotICAgICAgICBp
ZiAoW21fbnNSZXNwb25zZS5nZXQoKSBpc0tpbmRPZkNsYXNzOltOU0hUVFBVUkxSZXNwb25zZSBj
bGFzc11dKSB7Ci0gICAgICAgICAgICBOU0F1dG9yZWxlYXNlUG9vbCogcG9vbCA9IFtbTlNBdXRv
cmVsZWFzZVBvb2wgYWxsb2NdIGluaXRdOwotCi0gICAgICAgICAgICBOU0hUVFBVUkxSZXNwb25z
ZSAqaHR0cFJlc3BvbnNlID0gKE5TSFRUUFVSTFJlc3BvbnNlICopbV9uc1Jlc3BvbnNlLmdldCgp
OwotICAgICAgICAgICAgaWYgKFJldGFpblB0cjxOU1N0cmluZz4gaHR0cFN0YXR1c0xpbmUgPSBh
ZG9wdE5TKHdrQ29weU5TVVJMUmVzcG9uc2VTdGF0dXNMaW5lKGh0dHBSZXNwb25zZSkpKQotICAg
ICAgICAgICAgICAgIG1faHR0cFN0YXR1c1RleHQgPSBleHRyYWN0UmVhc29uUGhyYXNlRnJvbUhU
VFBTdGF0dXNMaW5lKGh0dHBTdGF0dXNMaW5lLmdldCgpKTsKLSAgICAgICAgICAgIGVsc2UKLSAg
ICAgICAgICAgICAgICBtX2h0dHBTdGF0dXNUZXh0ID0gQXRvbWljU3RyaW5nKCJPSyIsIEF0b21p
Y1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotCi0gICAgICAgICAgICBOU0RpY3Rpb25h
cnkgKmhlYWRlcnMgPSBbaHR0cFJlc3BvbnNlIGFsbEhlYWRlckZpZWxkc107Ci0gICAgICAgICAg
ICBmb3IgKE5TU3RyaW5nICpuYW1lIGluIGhlYWRlcnMpCi0gICAgICAgICAgICAgICAgbV9odHRw
SGVhZGVyRmllbGRzLnNldChuYW1lLCBbaGVhZGVycyBvYmplY3RGb3JLZXk6bmFtZV0pOwotICAg
ICAgICAgICAgCi0gICAgICAgICAgICBbcG9vbCBkcmFpbl07Ci0gICAgICAgIH0KLSAgICB9Ci0K
LSAgICBtX2luaXRMZXZlbCA9IGluaXRMZXZlbDsKLX0KLQotQ2VydGlmaWNhdGVJbmZvIFJlc291
cmNlUmVzcG9uc2U6OnBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvKCkgY29uc3QKLXsKLSAgICBBU1NF
UlQobV9uc1Jlc3BvbnNlKTsKLSAgICByZXR1cm4gQ2VydGlmaWNhdGVJbmZvKGFkb3B0Q0Yod2tD
b3B5TlNVUkxSZXNwb25zZUNlcnRpZmljYXRlQ2hhaW4obV9uc1Jlc3BvbnNlLmdldCgpKSkpOwot
fQotCi1TdHJpbmcgUmVzb3VyY2VSZXNwb25zZTo6cGxhdGZvcm1TdWdnZXN0ZWRGaWxlbmFtZSgp
IGNvbnN0Ci17Ci0gICAgcmV0dXJuIFtuc1VSTFJlc3BvbnNlKCkgc3VnZ2VzdGVkRmlsZW5hbWVd
OwotfQotCi1ib29sIFJlc291cmNlUmVzcG9uc2U6OnBsYXRmb3JtQ29tcGFyZShjb25zdCBSZXNv
dXJjZVJlc3BvbnNlJiBhLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiBiKQotewotICAgIHJldHVy
biBhLm5zVVJMUmVzcG9uc2UoKSA9PSBiLm5zVVJMUmVzcG9uc2UoKTsKLX0KLQotI2VuZGlmIC8v
IFVTRShDRk5FVFdPUkspCi0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvV2ViQ29yZVVSTFJlc3BvbnNlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9XZWJDb3JlVVJMUmVzcG9uc2Uu
aAppbmRleCAyYmUwYWUzMmZlNGZjY2I1NjM4YjQ5ZDk0Yjg0NDcwN2U3OGYzNWNkLi4wMzNiNjA4
ZmIzZjk2ZjAxY2VhZTIzNzQ1MDc3MzA4OWM0MGRkNTViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9XZWJDb3JlVVJMUmVzcG9uc2UuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9XZWJDb3JlVVJMUmVzcG9uc2UuaApAQCAt
MjYsMTEgKzI2LDEwIEBACiAgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLXR5cGVkZWYgc3RydWN0IF9DRlVS
TFJlc3BvbnNlKiBDRlVSTFJlc3BvbnNlUmVmOworI2luY2x1ZGUgIkNGTmV0d29ya1NQSS5oIgog
CiAjaWZkZWYgX19PQkpDX18KIEBpbnRlcmZhY2UgTlNVUkxSZXNwb25zZSAoRGV0YWlscykKLS0g
KENGVVJMUmVzcG9uc2VSZWYpX0NGVVJMUmVzcG9uc2U7CiAtICh2b2lkKV9zZXRNSU1FVHlwZToo
TlNTdHJpbmcgKil0eXBlOwogQGVuZAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL21hYy9XZWJDb3JlVVJMUmVzcG9uc2UubW0gYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL21hYy9XZWJDb3JlVVJMUmVzcG9uc2UubW0KaW5kZXggMGZhYmY5Mzk4
OTM2YjMxMjkzOTIyMTEwYzk3MjVhY2E0NjkzMmRlZS4uNWUzZGI3MDMyZGM3OWVkYjUxZDk2ZWJh
YzM0NThkMjJhNjAzZjMzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9tYWMvV2ViQ29yZVVSTFJlc3BvbnNlLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvbWFjL1dlYkNvcmVVUkxSZXNwb25zZS5tbQpAQCAtMjg4LDEzICsyODgsMTIg
QEAgc3RhdGljIENGRGljdGlvbmFyeVJlZiBjcmVhdGVFeHRlbnNpb25Ub01JTUVUeXBlTWFwKCkK
IAogdm9pZCBhZGp1c3RNSU1FVHlwZUlmTmVjZXNzYXJ5KENGVVJMUmVzcG9uc2VSZWYgY2ZSZXNw
b25zZSkKIHsKLSAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IHJlc3VsdCA9IHdrR2V0Q0ZVUkxS
ZXNwb25zZU1JTUVUeXBlKGNmUmVzcG9uc2UpOworICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4g
cmVzdWx0ID0gQ0ZVUkxSZXNwb25zZUdldE1JTUVUeXBlKGNmUmVzcG9uc2UpOwogICAgIFJldGFp
blB0cjxDRlN0cmluZ1JlZj4gb3JpZ2luYWxSZXN1bHQgPSByZXN1bHQ7CiAKICAgICBpZiAoIXJl
c3VsdCkgewotICAgICAgICBDRlVSTFJlZiB1cmwgPSB3a0dldENGVVJMUmVzcG9uc2VVUkwoY2ZS
ZXNwb25zZSk7Ci0gICAgICAgIE5TVVJMICpuc1VSTCA9IChOU1VSTCAqKXVybDsKLSAgICAgICAg
aWYgKFtuc1VSTCBpc0ZpbGVVUkxdKSB7CisgICAgICAgIGF1dG8gdXJsID0gQ0ZVUkxSZXNwb25z
ZUdldFVSTChjZlJlc3BvbnNlKTsKKyAgICAgICAgaWYgKFsoTlNVUkwgKil1cmwgaXNGaWxlVVJM
XSkgewogICAgICAgICAgICAgUmV0YWluUHRyPENGU3RyaW5nUmVmPiBleHRlbnNpb24gPSBhZG9w
dENGKENGVVJMQ29weVBhdGhFeHRlbnNpb24odXJsKSk7CiAgICAgICAgICAgICBpZiAoZXh0ZW5z
aW9uKSB7CiAgICAgICAgICAgICAgICAgLy8gPHJkYXI6Ly9wcm9ibGVtLzcwMDczODk+IENvcmVU
eXBlcyBVVEkgbWFwIGlzIG1pc3NpbmcgMTAwKyBmaWxlIGV4dGVuc2lvbnMgdGhhdCBHYXRlS2Vl
cGVyIGtuZXcgYWJvdXQKQEAgLTMyMSw3ICszMjAsNyBAQCB2b2lkIGFkanVzdE1JTUVUeXBlSWZO
ZWNlc3NhcnkoQ0ZVUkxSZXNwb25zZVJlZiBjZlJlc3BvbnNlKQogICAgIH0KIAogICAgIGlmIChy
ZXN1bHQgIT0gb3JpZ2luYWxSZXN1bHQpCi0gICAgICAgIHdrU2V0Q0ZVUkxSZXNwb25zZU1JTUVU
eXBlKGNmUmVzcG9uc2UsIHJlc3VsdC5nZXQoKSk7CisgICAgICAgIENGVVJMUmVzcG9uc2VTZXRN
SU1FVHlwZShjZlJlc3BvbnNlLCByZXN1bHQuZ2V0KCkpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NwaS9jZi9DRk5ldHdvcmtDb25uZWN0aW9uQ2Fj
aGVTUEkuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NwaS9jZi9DRk5ldHdvcmtDb25uZWN0
aW9uQ2FjaGVTUEkuaAppbmRleCBjZTI5MTM1MTdiZjA4ODMyYzc0OGI5ODM4MDZiMjg3NGQyYjBj
Njc4Li5lNzEwNGUzMmI2NTZhOTJhNzY2ZDUzM2VhMDM4Y2FjYWZiYmIxOWJhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcGkvY2YvQ0ZOZXR3b3JrQ29ubmVjdGlvbkNhY2hl
U1BJLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3BpL2NmL0NGTmV0d29ya0Nvbm5l
Y3Rpb25DYWNoZVNQSS5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
NCBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE0
LTIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAog
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCkBAIC0xMCwxNyArMTAsMTcgQEAKICAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKICAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCiAgKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
LSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCiAjaWZuZGVmIENGTmV0d29y
a0Nvbm5lY3Rpb25DYWNoZVNQSV9oCkBAIC0zMCwxMCArMzAsMTQgQEAKICNpbmNsdWRlIDxDRk5l
dHdvcmsvQ0ZOZXR3b3JrQ29ubmVjdGlvbkNhY2hlUHJpdi5oPgogI2Vsc2UKIGVudW0gSFRUUENv
bm5lY3Rpb25DYWNoZUxpbWl0S2V5cyB7CisgICAga0hUVFBMb2FkV2lkdGggPSAwLAorICAgIGtI
VFRQUHJpb3JpdHlOdW1MZXZlbHMgPSAzLAogICAgIGtIVFRQTnVtRmFzdExhbmVzID0gNCwKKyAg
ICBrSFRUUE1pbmltdW1GYXN0TGFuZVByaW9yaXR5ID0gNSwKIH07CiAjZW5kaWYKIAotZXh0ZXJu
ICJDIiB2b2lkIF9DRk5ldHdvcmtIVFRQQ29ubmVjdGlvbkNhY2hlU2V0TGltaXQoSFRUUENvbm5l
Y3Rpb25DYWNoZUxpbWl0S2V5cywgaW50KTsKK0VYVEVSTl9DIGludCBfQ0ZOZXR3b3JrSFRUUENv
bm5lY3Rpb25DYWNoZUdldExpbWl0KEhUVFBDb25uZWN0aW9uQ2FjaGVMaW1pdEtleXMpOworRVhU
RVJOX0Mgdm9pZCBfQ0ZOZXR3b3JrSFRUUENvbm5lY3Rpb25DYWNoZVNldExpbWl0KEhUVFBDb25u
ZWN0aW9uQ2FjaGVMaW1pdEtleXMsIGludCk7CiAKLSNlbmRpZgorI2VuZGlmIC8vIENGTmV0d29y
a0Nvbm5lY3Rpb25DYWNoZVNQSV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9zcGkvY2YvQ0ZOZXR3b3JrU1BJLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcGkvY2Yv
Q0ZOZXR3b3JrU1BJLmgKaW5kZXggZWVhNTIwYTkyM2Q4N2NmOGQ5NDQ5Yjg1MDY4ODg3OThlMDMx
MGI3OS4uZjEzNTE1ZWU0MTEwY2Q3NTcyMzYzOWUxYmRjYjBhNDY5M2I5ZGEzZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3BpL2NmL0NGTmV0d29ya1NQSS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NwaS9jZi9DRk5ldHdvcmtTUEkuaApAQCAtMjYsMTUgKzI2
LDIwIEBACiAjaWZuZGVmIENGTmV0d29ya1NQSV9oCiAjZGVmaW5lIENGTmV0d29ya1NQSV9oCiAK
KyNpbmNsdWRlICJDRk5ldHdvcmtDb25uZWN0aW9uQ2FjaGVTUEkuaCIKICNpbmNsdWRlIDxDRk5l
dHdvcmsvQ0ZOZXR3b3JrLmg+CiAKICNpZiBQTEFURk9STShXSU4pIHx8IFVTRShBUFBMRV9JTlRF
Uk5BTF9TREspCiAKLSNpbmNsdWRlIDxDRk5ldHdvcmsvQ0ZIVFRQQ29va2llcy5oPgogI2luY2x1
ZGUgPENGTmV0d29yay9DRkhUVFBDb29raWVzUHJpdi5oPgorI2luY2x1ZGUgPENGTmV0d29yay9D
RlByb3h5U3VwcG9ydFByaXYuaD4KICNpbmNsdWRlIDxDRk5ldHdvcmsvQ0ZVUkxDYWNoZVByaXYu
aD4KKyNpbmNsdWRlIDxDRk5ldHdvcmsvQ0ZVUkxDb25uZWN0aW9uUHJpdi5oPgorI2luY2x1ZGUg
PENGTmV0d29yay9DRlVSTENyZWRlbnRpYWxTdG9yYWdlLmg+CiAjaW5jbHVkZSA8Q0ZOZXR3b3Jr
L0NGVVJMUHJvdG9jb2xQcml2Lmg+Ci0jaW5jbHVkZSA8Q0ZOZXR3b3JrL0NGVVJMUmVxdWVzdC5o
PgorI2luY2x1ZGUgPENGTmV0d29yay9DRlVSTFJlcXVlc3RQcml2Lmg+CisjaW5jbHVkZSA8Q0ZO
ZXR3b3JrL0NGVVJMUmVzcG9uc2VQcml2Lmg+CisjaW5jbHVkZSA8Q0ZOZXR3b3JrL0NGVVJMU3Rv
cmFnZVNlc3Npb24uaD4KIAogLy8gRklYTUU6IFJlbW92ZSB0aGUgZGVmaW5lZChfX09CSkNfXykt
Z3VhcmQgb25uY2Ugd2UgZml4IDxyZGFyOi8vcHJvYmxlbS8xOTAzMzYxMD4uCiAjaWYgZGVmaW5l
ZChfX09CSkNfXykgJiYgKFBMQVRGT1JNKElPUykgfHwgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9S
RVFVSVJFRCA+PSAxMDEwMDApCkBAIC01NCw2ICs1OSwxMiBAQCBleHRlcm4gIkMiIHsKICNlbHNl
IC8vIFBMQVRGT1JNKFdJTikgfHwgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKIAogI2lmIGRlZmlu
ZWQoX19PQkpDX18pCitAaW50ZXJmYWNlIE5TVVJMUmVzcG9uc2UgKCkKKysgKE5TVVJMUmVzcG9u
c2UgKilfcmVzcG9uc2VXaXRoQ0ZVUkxSZXNwb25zZTooQ0ZVUkxSZXNwb25zZVJlZilyZXNwb25z
ZTsKKy0gKENGVVJMUmVzcG9uc2VSZWYpX0NGVVJMUmVzcG9uc2U7CistIChOU0RhdGUgKilfbGFz
dE1vZGlmaWVkRGF0ZTsKK0BlbmQKKwogQGludGVyZmFjZSBOU1VSTFNlc3Npb25UYXNrIChUaW1p
bmdEYXRhKQogLSAoTlNEaWN0aW9uYXJ5ICopX3RpbWluZ0RhdGE7CiBAZW5kCkBAIC02NCwxMiAr
NzUsMjAgQEAgdHlwZWRlZiBDRl9FTlVNKGludDY0X3QsIF9UaW1pbmdEYXRhT3B0aW9ucykKICAg
ICBfVGltaW5nRGF0YU9wdGlvbnNFbmFibGVXM0NOYXZpZ2F0aW9uVGltaW5nID0gKDEgPDwgMCkK
IH07CiAKLXR5cGVkZWYgc3RydWN0IE9wYXF1ZUNGSFRUUENvb2tpZVN0b3JhZ2UqIENGSFRUUENv
b2tpZVN0b3JhZ2VSZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBfQ0ZDYWNoZWRVUkxSZXNwb25z
ZSogQ0ZDYWNoZWRVUkxSZXNwb25zZVJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IF9DRlVSTENh
Y2hlKiBDRlVSTENhY2hlUmVmOwotdHlwZWRlZiBjb25zdCBzdHJ1Y3QgX0NGVVJMUmVxdWVzdCAq
Q0ZVUkxSZXF1ZXN0UmVmOwordHlwZWRlZiBjb25zdCBzdHJ1Y3QgX0NGVVJMQ3JlZGVudGlhbCog
Q0ZVUkxDcmVkZW50aWFsUmVmOwordHlwZWRlZiBjb25zdCBzdHJ1Y3QgX0NGVVJMUmVxdWVzdCog
Q0ZVUkxSZXF1ZXN0UmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgX19DRlVSTFN0b3JhZ2VTZXNz
aW9uKiBDRlVSTFN0b3JhZ2VTZXNzaW9uUmVmOwotdHlwZWRlZiBjb25zdCBzdHJ1Y3QgX19DRkRh
dGEgKkNGRGF0YVJlZjsKK3R5cGVkZWYgY29uc3Qgc3RydWN0IF9fQ0ZEYXRhKiBDRkRhdGFSZWY7
Cit0eXBlZGVmIHN0cnVjdCBfQ0ZVUkxDb25uZWN0aW9uKiBDRlVSTENvbm5lY3Rpb25SZWY7Cit0
eXBlZGVmIHN0cnVjdCBfQ0ZVUkxDcmVkZW50aWFsU3RvcmFnZSogQ0ZVUkxDcmVkZW50aWFsU3Rv
cmFnZVJlZjsKK3R5cGVkZWYgc3RydWN0IF9DRlVSTFByb3RlY3Rpb25TcGFjZSogQ0ZVUkxQcm90
ZWN0aW9uU3BhY2VSZWY7Cit0eXBlZGVmIHN0cnVjdCBfQ0ZVUkxSZXF1ZXN0KiBDRk11dGFibGVV
UkxSZXF1ZXN0UmVmOwordHlwZWRlZiBzdHJ1Y3QgX0NGVVJMUmVzcG9uc2UqIENGVVJMUmVzcG9u
c2VSZWY7Cit0eXBlZGVmIHN0cnVjdCBPcGFxdWVDRkhUVFBDb29raWVTdG9yYWdlKiBDRkhUVFBD
b29raWVTdG9yYWdlUmVmOwordHlwZWRlZiBDRkluZGV4IENGVVJMUmVxdWVzdFByaW9yaXR5Owor
dHlwZWRlZiBpbnQgQ0ZIVFRQQ29va2llU3RvcmFnZUFjY2VwdFBvbGljeTsKIAogI2lmZGVmIF9f
QkxPQ0tTX18KIHR5cGVkZWYgdm9pZCAoXkNGQ2FjaGVkVVJMUmVzcG9uc2VDYWxsQmFja0Jsb2Nr
KShDRkNhY2hlZFVSTFJlc3BvbnNlUmVmKTsKQEAgLTEwMiw2ICsxMjEsMjYgQEAgRVhURVJOX0Mg
dm9pZCBfQ0ZDYWNoZWRVUkxSZXNwb25zZVNldEJlY2FtZUZpbGVCYWNrZWRDYWxsQmFja0Jsb2Nr
KENGQ2FjaGVkVVJMUmUKIEVYVEVSTl9DIHZvaWQgQ0ZVUkxDb25uZWN0aW9uSW52YWxpZGF0ZUNv
bm5lY3Rpb25DYWNoZSgpOwogCiBFWFRFUk5fQyBDRlN0cmluZ1JlZiBjb25zdCBrQ0ZIVFRQQ29v
a2llTG9jYWxGaWxlRG9tYWluOworRVhURVJOX0MgY29uc3QgQ0ZTdHJpbmdSZWYgX2tDRlVSTENv
bm5lY3Rpb25Qcm9wZXJ0eVNob3VsZFNuaWZmOworRVhURVJOX0MgY29uc3QgQ0ZTdHJpbmdSZWYg
a0NGVVJMUmVxdWVzdEFsbG93QWxsUE9TVENhY2hpbmc7CisKK0VYVEVSTl9DIENGSFRUUENvb2tp
ZVN0b3JhZ2VSZWYgX0NGSFRUUENvb2tpZVN0b3JhZ2VHZXREZWZhdWx0KENGQWxsb2NhdG9yUmVm
KTsKK0VYVEVSTl9DIHZvaWQgQ0ZIVFRQQ29va2llU3RvcmFnZVNldENvb2tpZUFjY2VwdFBvbGlj
eShDRkhUVFBDb29raWVTdG9yYWdlUmVmLCBDRkhUVFBDb29raWVTdG9yYWdlQWNjZXB0UG9saWN5
KTsKK0VYVEVSTl9DIHZvaWQgX0NGTmV0d29ya1NldE92ZXJyaWRlU3lzdGVtUHJveHlTZXR0aW5n
cyhDRkRpY3Rpb25hcnlSZWYpOworRVhURVJOX0MgQ0ZVUkxDcmVkZW50aWFsU3RvcmFnZVJlZiBD
RlVSTENyZWRlbnRpYWxTdG9yYWdlQ3JlYXRlKENGQWxsb2NhdG9yUmVmKTsKK0VYVEVSTl9DIENG
VVJMQ3JlZGVudGlhbFJlZiBDRlVSTENyZWRlbnRpYWxTdG9yYWdlQ29weURlZmF1bHRDcmVkZW50
aWFsRm9yUHJvdGVjdGlvblNwYWNlKENGVVJMQ3JlZGVudGlhbFN0b3JhZ2VSZWYsIENGVVJMUHJv
dGVjdGlvblNwYWNlUmVmKTsKK0VYVEVSTl9DIENGVVJMUmVxdWVzdFByaW9yaXR5IENGVVJMUmVx
dWVzdEdldFJlcXVlc3RQcmlvcml0eShDRlVSTFJlcXVlc3RSZWYpOworRVhURVJOX0Mgdm9pZCBf
Q0ZVUkxSZXF1ZXN0U2V0UHJvdG9jb2xQcm9wZXJ0eShDRlVSTFJlcXVlc3RSZWYsIENGU3RyaW5n
UmVmLCBDRlR5cGVSZWYpOworRVhURVJOX0Mgdm9pZCBDRlVSTFJlcXVlc3RTZXRSZXF1ZXN0UHJp
b3JpdHkoQ0ZVUkxSZXF1ZXN0UmVmLCBDRlVSTFJlcXVlc3RQcmlvcml0eSk7CitFWFRFUk5fQyB2
b2lkIENGVVJMUmVxdWVzdFNldFNob3VsZFBpcGVsaW5lSFRUUChDRlVSTFJlcXVlc3RSZWYsIEJv
b2xlYW4sIEJvb2xlYW4pOworRVhURVJOX0Mgdm9pZCBfQ0ZVUkxSZXF1ZXN0U2V0U3RvcmFnZVNl
c3Npb24oQ0ZNdXRhYmxlVVJMUmVxdWVzdFJlZiwgQ0ZVUkxTdG9yYWdlU2Vzc2lvblJlZik7CitF
WFRFUk5fQyBDRlN0cmluZ1JlZiBDRlVSTFJlc3BvbnNlQ29weVN1Z2dlc3RlZEZpbGVuYW1lKENG
VVJMUmVzcG9uc2VSZWYpOworRVhURVJOX0MgQ0ZIVFRQTWVzc2FnZVJlZiBDRlVSTFJlc3BvbnNl
R2V0SFRUUFJlc3BvbnNlKENGVVJMUmVzcG9uc2VSZWYpOworRVhURVJOX0MgQ0ZTdHJpbmdSZWYg
Q0ZVUkxSZXNwb25zZUdldE1JTUVUeXBlKENGVVJMUmVzcG9uc2VSZWYpOworRVhURVJOX0MgQ0ZE
aWN0aW9uYXJ5UmVmIF9DRlVSTFJlc3BvbnNlR2V0U1NMQ2VydGlmaWNhdGVDb250ZXh0KENGVVJM
UmVzcG9uc2VSZWYpOworRVhURVJOX0MgQ0ZVUkxSZWYgQ0ZVUkxSZXNwb25zZUdldFVSTChDRlVS
TFJlc3BvbnNlUmVmKTsKK0VYVEVSTl9DIHZvaWQgQ0ZVUkxSZXNwb25zZVNldE1JTUVUeXBlKENG
VVJMUmVzcG9uc2VSZWYsIENGU3RyaW5nUmVmKTsKK0VYVEVSTl9DIENGSFRUUENvb2tpZVN0b3Jh
Z2VSZWYgX0NGVVJMU3RvcmFnZVNlc3Npb25Db3B5Q29va2llU3RvcmFnZShDRkFsbG9jYXRvclJl
ZiwgQ0ZVUkxTdG9yYWdlU2Vzc2lvblJlZik7CiAKIC8vIEZJWE1FOiBXZSBzaG91bGQgb25seSBm
b3J3YXJkIGRlY2xhcmUgdGhpcyBTUEkgd2hlbiBidWlsZGluZyBmb3IgaU9TIHdpdGhvdXQgdGhl
IEFwcGxlIEludGVybmFsIFNESy4KIC8vIEFzIGEgd29ya2Fyb3VuZCBmb3IgPHJkYXI6Ly9wcm9i
bGVtLzE5MDI1MDE2Piwgd2UgbXVzdCBmb3J3YXJkIGRlY2xhcmUgdGhpcyBTUEkgcmVnYXJkbGVz
cyBvZiB3aGV0aGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3Rl
ZC9Ib3N0ZWROZXRzY2FwZVBsdWdpblN0cmVhbS5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdp
bnMvSG9zdGVkL0hvc3RlZE5ldHNjYXBlUGx1Z2luU3RyZWFtLm1tCmluZGV4IGM2ZmJiNzFlNWZi
MGY3ZDUzNmRkNzc1YWRmZGExYTZjMGM3MDg5MDAuLmMxNjZlZDAwMjMyNmYyNzBhODE5NzU4YTQy
YmI4OTc5M2UzMWYxYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9z
dGVkL0hvc3RlZE5ldHNjYXBlUGx1Z2luU3RyZWFtLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFj
L1BsdWdpbnMvSG9zdGVkL0hvc3RlZE5ldHNjYXBlUGx1Z2luU3RyZWFtLm1tCkBAIC0zNyw2ICsz
Nyw3IEBACiAjaW1wb3J0ICJXZWJOU1VSTEV4dHJhcy5oIgogI2ltcG9ydCAiV2ViTlNVUkxSZXF1
ZXN0RXh0cmFzLmgiCiAjaW1wb3J0ICJXZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuaCIKKyNpbXBv
cnQgPFdlYkNvcmUvQ0ZOZXR3b3JrU1BJLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0RvY3VtZW50Lmg+
CiAjaW1wb3J0IDxXZWJDb3JlL0RvY3VtZW50TG9hZGVyLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0Zy
YW1lLmg+CkBAIC0xODksNyArMTkwLDcgQEAgdm9pZCBIb3N0ZWROZXRzY2FwZVBsdWdpblN0cmVh
bTo6ZGlkUmVjZWl2ZVJlc3BvbnNlKE5ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyKiwKICAgICAg
ICAgW3RoZUhlYWRlcnMgYXBwZW5kQnl0ZXM6IlwwIiBsZW5ndGg6MV07CiAgICAgfQogICAgIAot
ICAgIHN0YXJ0U3RyZWFtKFtyIFVSTF0sIGV4cGVjdGVkQ29udGVudExlbmd0aCwgV0tHZXROU1VS
TFJlc3BvbnNlTGFzdE1vZGlmaWVkRGF0ZShyKSwgW3IgTUlNRVR5cGVdLCB0aGVIZWFkZXJzKTsK
KyAgICBzdGFydFN0cmVhbShbciBVUkxdLCBleHBlY3RlZENvbnRlbnRMZW5ndGgsIFtyIF9sYXN0
TW9kaWZpZWREYXRlXSwgW3IgTUlNRVR5cGVdLCB0aGVIZWFkZXJzKTsKIH0KIAogTlBSZWFzb24g
SG9zdGVkTmV0c2NhcGVQbHVnaW5TdHJlYW06OnJlYXNvbkZvckVycm9yKE5TRXJyb3IgKmVycm9y
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdp
blN0cmVhbS5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5T
dHJlYW0ubW0KaW5kZXggZWMxNzZhZWNmZTFhM2UxNTIyYmI3MTBkMzcxZTNjYzRjNGQ2MmM0ZC4u
NDFiNDgxN2EwZWNlY2FmMjYyYTJhZjQwMzExNjU1ZWY0YzkxZGY1NiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdpblN0cmVhbS5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2luU3RyZWFtLm1tCkBAIC0z
OSw2ICszOSw3IEBACiAjaW1wb3J0ICJXZWJOZXRzY2FwZVBsdWdpblZpZXcuaCIKICNpbXBvcnQg
IldlYlJlc291cmNlTG9hZFNjaGVkdWxlci5oIgogI2ltcG9ydCA8Rm91bmRhdGlvbi9OU1VSTFJl
c3BvbnNlLmg+CisjaW1wb3J0IDxXZWJDb3JlL0NGTmV0d29ya1NQSS5oPgogI2ltcG9ydCA8V2Vi
Q29yZS9Eb2N1bWVudC5oPgogI2ltcG9ydCA8V2ViQ29yZS9Eb2N1bWVudExvYWRlci5oPgogI2lt
cG9ydCA8V2ViQ29yZS9GcmFtZS5oPgpAQCAtMzU4LDcgKzM1OSw3IEBAIHZvaWQgV2ViTmV0c2Nh
cGVQbHVnaW5TdHJlYW06OmRpZFJlY2VpdmVSZXNwb25zZShOZXRzY2FwZVBsdWdJblN0cmVhbUxv
YWRlciosIGNvCiAgICAgICAgIC8vIHN0YXJ0U3RyZWFtUmVzcG9uc2VVUkw6Li4uIHdpbGwgbnVs
bC10ZXJtaW5hdGUuCiAgICAgfQogICAgIAotICAgIHN0YXJ0U3RyZWFtKFtyIFVSTF0sIGV4cGVj
dGVkQ29udGVudExlbmd0aCwgV0tHZXROU1VSTFJlc3BvbnNlTGFzdE1vZGlmaWVkRGF0ZShyKSwg
cmVzcG9uc2UubWltZVR5cGUoKSwgdGhlSGVhZGVycyk7CisgICAgc3RhcnRTdHJlYW0oW3IgVVJM
XSwgZXhwZWN0ZWRDb250ZW50TGVuZ3RoLCBbciBfbGFzdE1vZGlmaWVkRGF0ZV0sIHJlc3BvbnNl
Lm1pbWVUeXBlKCksIHRoZUhlYWRlcnMpOwogfQogCiB2b2lkIFdlYk5ldHNjYXBlUGx1Z2luU3Ry
ZWFtOjpzdGFydFN0cmVhbVdpdGhSZXNwb25zZShOU1VSTFJlc3BvbnNlICpyZXNwb25zZSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlN5c3RlbUludGVy
ZmFjZS5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlN5c3RlbUludGVy
ZmFjZS5tbQppbmRleCAxNGMxYmM2YzZiNjFlZTVjNmNjODQ2NjE1YzQ4OWQzYWQ0ZTRjMTMyLi5h
ODhkYzM1NjNkYzc4YzU3ZTFjOGY2MzRkOTBjYmJiOTk5ZWJlNmE5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJTeXN0ZW1JbnRlcmZhY2UubW0KKysrIGIv
U291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViU3lzdGVtSW50ZXJmYWNlLm1tCkBA
IC00NiwxOCArNDYsMTIgQEAgdm9pZCBJbml0V2ViQ29yZVN5c3RlbUludGVyZmFjZSh2b2lkKQog
ICAgIElOSVQoQWR2YW5jZURlZmF1bHRCdXR0b25QdWxzZUFuaW1hdGlvbik7CiAjZW5kaWYKICAg
ICBJTklUKENBTGF5ZXJFbnVtZXJhdGVSZWN0c0JlaW5nRHJhd25XaXRoQmxvY2spOwotI2lmICFQ
TEFURk9STShJT1MpCi0gICAgSU5JVChDR0NvbnRleHRHZXRTaG91bGRTbW9vdGhGb250cyk7Ci0j
ZW5kaWYKICAgICBJTklUKENHUGF0dGVybkNyZWF0ZVdpdGhJbWFnZUFuZFRyYW5zZm9ybSk7CiAj
aWYgIVBMQVRGT1JNKElPUykKICAgICBJTklUKENHQ29udGV4dERyYXdzV2l0aENvcnJlY3RTaGFk
b3dPZmZzZXRzKTsKICNlbmRpZgogICAgIElOSVQoQ29weUNPTk5FQ1RQcm94eVJlc3BvbnNlKTsK
LSAgICBJTklUKENvcHlOU1VSTFJlc3BvbnNlU3RhdHVzTGluZSk7Ci0gICAgSU5JVChDb3B5TlNV
UkxSZXNwb25zZUNlcnRpZmljYXRlQ2hhaW4pOwogI2lmICFQTEFURk9STShJT1MpCi0gICAgSU5J
VChEcmF3Q2Fwc0xvY2tJbmRpY2F0b3IpOwogICAgIElOSVQoRHJhd0JlemVsZWRUZXh0QXJlYSk7
CiAgICAgSU5JVChEcmF3Rm9jdXNSaW5nKTsKICAgICBJTklUKERyYXdGb2N1c1JpbmdBdFRpbWUp
OwpAQCAtNjUsNDcgKzU5LDM0IEBAIHZvaWQgSW5pdFdlYkNvcmVTeXN0ZW1JbnRlcmZhY2Uodm9p
ZCkKICAgICBJTklUKERyYXdNZWRpYVVJUGFydCk7CiAgICAgSU5JVChEcmF3TWVkaWFTbGlkZXJU
cmFjayk7CiAjZW5kaWYKLSAgICBJTklUKEdldEhUVFBSZXF1ZXN0UHJpb3JpdHkpOwotICAgIElO
SVQoR2V0TlNVUkxSZXNwb25zZUxhc3RNb2RpZmllZERhdGUpOwogICAgIElOSVQoR2V0V2ViRGVm
YXVsdENGU3RyaW5nRW5jb2RpbmcpOwogI2lmICFQTEFURk9STShJT1MpCiAgICAgSU5JVChTaWdu
ZWRQdWJsaWNLZXlBbmRDaGFsbGVuZ2VTdHJpbmcpOwogICAgIElOSVQoR2V0V2hlZWxFdmVudERl
bHRhcyk7CiAgICAgSU5JVChHZXROU0V2ZW50S2V5Q2hhcik7CiAgICAgSU5JVChIaXRUZXN0TWVk
aWFVSVBhcnQpOwotI2VuZGlmCi0gICAgSU5JVChJbml0aWFsaXplTWF4aW11bUhUVFBDb25uZWN0
aW9uQ291bnRQZXJIb3N0KTsKLSNpZiAhUExBVEZPUk0oSU9TKQogICAgIElOSVQoTWVhc3VyZU1l
ZGlhVUlQYXJ0KTsKICAgICBJTklUKENyZWF0ZU1lZGlhVUlCYWNrZ3JvdW5kVmlldyk7CiAgICAg
SU5JVChDcmVhdGVNZWRpYVVJQ29udHJvbCk7CiAgICAgSU5JVChXaW5kb3dTZXRBbHBoYSk7CiAg
ICAgSU5JVChXaW5kb3dTZXRTY2FsZWRGcmFtZSk7Ci0gICAgSU5JVChTZXRDR0ZvbnRSZW5kZXJp
bmdNb2RlKTsKICNlbmRpZgogICAgIElOSVQoU2V0Q09OTkVDVFByb3h5QXV0aG9yaXphdGlvbkZv
clN0cmVhbSk7CiAgICAgSU5JVChTZXRDT05ORUNUUHJveHlGb3JTdHJlYW0pOwogI2lmICFQTEFU
Rk9STShJT1MpCiAgICAgSU5JVChTZXREcmFnSW1hZ2UpOwogI2VuZGlmCi0gICAgSU5JVChTZXRI
VFRQUmVxdWVzdE1heGltdW1Qcmlvcml0eSk7Ci0gICAgSU5JVChTZXRIVFRQUmVxdWVzdFByaW9y
aXR5KTsKLSAgICBJTklUKFNldEhUVFBSZXF1ZXN0TWluaW11bUZhc3RMYW5lUHJpb3JpdHkpOwot
ICAgIElOSVQoSFRUUFJlcXVlc3RFbmFibGVQaXBlbGluaW5nKTsKLSAgICBJTklUKFNldE5TVVJM
UmVxdWVzdFNob3VsZENvbnRlbnRTbmlmZik7CiAgICAgSU5JVChDR0NvbnRleHRJc1BERkNvbnRl
eHQpOwogI2lmIEVOQUJMRShWSURFTykgJiYgIVBMQVRGT1JNKElPUykKICAgICBJTklUKFFUSW5j
bHVkZU9ubHlNb2Rlcm5NZWRpYUZpbGVUeXBlcyk7CiAgICAgSU5JVChRVE1vdmllRGlzYWJsZUNv
bXBvbmVudCk7CiAgICAgSU5JVChRVE1vdmllTWF4VGltZUxvYWRlZCk7CiAgICAgSU5JVChRVE1v
dmllTWF4VGltZUxvYWRlZENoYW5nZU5vdGlmaWNhdGlvbik7Ci0gICAgSU5JVChRVE1vdmllTWF4
VGltZVNlZWthYmxlKTsKICAgICBJTklUKFFUTW92aWVHZXRUeXBlKTsKICAgICBJTklUKFFUTW92
aWVIYXNDbG9zZWRDYXB0aW9ucyk7CiAgICAgSU5JVChRVE1vdmllUmVzb2x2ZWRVUkwpOwogICAg
IElOSVQoUVRNb3ZpZVNldFNob3dDbG9zZWRDYXB0aW9ucyk7CiAgICAgSU5JVChRVE1vdmllU2Vs
ZWN0UHJlZmVycmVkQWx0ZXJuYXRlcyk7Ci0gICAgSU5JVChRVE1vdmllVmlld1NldERyYXdTeW5j
aHJvbm91c2x5KTsKICAgICBJTklUKFFUR2V0U2l0ZXNJbk1lZGlhRG93bmxvYWRDYWNoZSk7CiAg
ICAgSU5JVChRVENsZWFyTWVkaWFEb3dubG9hZENhY2hlRm9yU2l0ZSk7CiAgICAgSU5JVChRVENs
ZWFyTWVkaWFEb3dubG9hZENhY2hlKTsKQEAgLTExNSwxNiArOTYsNiBAQCB2b2lkIEluaXRXZWJD
b3JlU3lzdGVtSW50ZXJmYWNlKHZvaWQpCiAgICAgSU5JVChFeGVjdXRhYmxlV2FzTGlua2VkT25P
ckJlZm9yZVNub3dMZW9wYXJkKTsKICAgICBJTklUKENvcHlEZWZhdWx0U2VhcmNoUHJvdmlkZXJE
aXNwbGF5TmFtZSk7CiAgICAgSU5JVChDdXJzb3IpOwotI2VuZGlmCi0KLSNpZiBVU0UoQ0ZORVRX
T1JLKQotICAgIElOSVQoR2V0RGVmYXVsdEhUVFBDb29raWVTdG9yYWdlKTsKLSAgICBJTklUKENv
cHlDcmVkZW50aWFsRnJvbUNGUGVyc2lzdGVudFN0b3JhZ2UpOwotICAgIElOSVQoU2V0Q0ZVUkxS
ZXF1ZXN0U2hvdWxkQ29udGVudFNuaWZmKTsKLSAgICBJTklUKFNldFJlcXVlc3RTdG9yYWdlU2Vz
c2lvbik7Ci0jZW5kaWYKLQotI2lmICFQTEFURk9STShJT1MpCiAgICAgSU5JVChTcGVlY2hTeW50
aGVzaXNHZXRWb2ljZUlkZW50aWZpZXJzKTsKICAgICBJTklUKFNwZWVjaFN5bnRoZXNpc0dldERl
ZmF1bHRWb2ljZUlkZW50aWZpZXJGb3JMb2NhbGUpOwogICAgIElOSVQoR2V0QVhUZXh0TWFya2Vy
VHlwZUlEKTsKQEAgLTE0MCw3ICsxMTEsNiBAQCB2b2lkIEluaXRXZWJDb3JlU3lzdGVtSW50ZXJm
YWNlKHZvaWQpCiAjZW5kaWYKICAgICBJTklUKENyZWF0ZVByaXZhdGVTdG9yYWdlU2Vzc2lvbik7
CiAgICAgSU5JVChDb3B5UmVxdWVzdFdpdGhTdG9yYWdlU2Vzc2lvbik7Ci0gICAgSU5JVChDb3B5
SFRUUENvb2tpZVN0b3JhZ2UpOwogICAgIElOSVQoR2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeSk7
CiAgICAgSU5JVChIVFRQQ29va2llcyk7CiAgICAgSU5JVChIVFRQQ29va2llc0ZvclVSTCk7CkBA
IC0xNDgsMTkgKzExOCw4IEBAIHZvaWQgSW5pdFdlYkNvcmVTeXN0ZW1JbnRlcmZhY2Uodm9pZCkK
ICAgICBJTklUKERlbGV0ZUFsbEhUVFBDb29raWVzKTsKICAgICBJTklUKERlbGV0ZUhUVFBDb29r
aWUpOwogCi0gICAgSU5JVChHZXRDRlVSTFJlc3BvbnNlTUlNRVR5cGUpOwotICAgIElOSVQoR2V0
Q0ZVUkxSZXNwb25zZVVSTCk7Ci0gICAgSU5JVChHZXRDRlVSTFJlc3BvbnNlSFRUUFJlc3BvbnNl
KTsKLSAgICBJTklUKENvcHlDRlVSTFJlc3BvbnNlU3VnZ2VzdGVkRmlsZW5hbWUpOwotICAgIElO
SVQoU2V0Q0ZVUkxSZXNwb25zZU1JTUVUeXBlKTsKLQogI2lmICFQTEFURk9STShJT1MpCiAgICAg
SU5JVChTZXRNZXRhZGF0YVVSTCk7Ci0jZW5kaWYKLQotICAgIElOSVQoQ0ZVUkxSZXF1ZXN0QWxs
b3dBbGxQb3N0Q2FjaGluZyk7Ci0KLSNpZiAhUExBVEZPUk0oSU9TKQogICAgIElOSVQoTlNFbGFz
dGljRGVsdGFGb3JUaW1lRGVsdGEpOwogICAgIElOSVQoTlNFbGFzdGljRGVsdGFGb3JSZWJvdW5k
RGVsdGEpOwogICAgIElOSVQoTlNSZWJvdW5kRGVsdGFGb3JFbGFzdGljRGVsdGEpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbSBiL1NvdXJj
ZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0KaW5kZXggMDEwZmE4Yjc3NzI5
ZDBjNGVhZTZiNDlmOTMxZGUwNDkyNmQzY2IyNy4uNWQ4YmVlNzc0MDQzMWMzMTAwMjI3NjQ0OTBi
MDJhM2QyZDY4ODg5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQ
cmVmZXJlbmNlcy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVu
Y2VzLm1tCkBAIC00MSw2ICs0MSw3IEBACiAjaW1wb3J0ICJXZWJTeXN0ZW1JbnRlcmZhY2UuaCIK
ICNpbXBvcnQgPFdlYkNvcmUvQXBwbGljYXRpb25DYWNoZVN0b3JhZ2UuaD4KICNpbXBvcnQgPFdl
YkNvcmUvQXVkaW9TZXNzaW9uLmg+CisjaW1wb3J0IDxXZWJDb3JlL0NGTmV0d29ya1NQSS5oPgog
I2ltcG9ydCA8V2ViQ29yZS9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaD4KICNpbXBvcnQgPFdlYkNv
cmUvUGxhdGZvcm1Db29raWVKYXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvUmVzb3VyY2VIYW5kbGUu
aD4KQEAgLTUxLDEwICs1Miw2IEBACiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CiAjaW1wb3J0
IDx3dGYvUnVuTG9vcC5oPgogCi1lbnVtIHsKLSAgICBOU0hUVFBDb29raWVBY2NlcHRQb2xpY3lF
eGNsdXNpdmVseUZyb21NYWluRG9jdW1lbnREb21haW4gPSAzCi19OwotCiB1c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKIAogI2lmIFBMQVRGT1JNKElPUykKQEAgLTE3NjcsNyArMTc2NCw3IEBAICsg
KHZvaWQpX3NldEN1cnJlbnROZXR3b3JrTG9hZGVyU2Vzc2lvbkNvb2tpZUFjY2VwdFBvbGljeToo
TlNIVFRQQ29va2llQWNjZXB0UG9sCiB7CiAgICAgUmV0YWluUHRyPENGSFRUUENvb2tpZVN0b3Jh
Z2VSZWY+IGNvb2tpZVN0b3JhZ2UgPSBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmRlZmF1bHRTdG9y
YWdlU2Vzc2lvbigpLmNvb2tpZVN0b3JhZ2UoKTsKICAgICBBU1NFUlQoY29va2llU3RvcmFnZSk7
IC8vIFdpbGwgZmFpbCB3aGVuIGJ1aWxkaW5nIHdpdGhvdXQgVVNFKENGTkVUV09SSykgYW5kIE5l
dHdvcmtTdG9yYWdlU2Vzc2lvbjo6c3dpdGNoVG9OZXdUZXN0aW5nU2Vzc2lvbigpIHdhcyBub3Qg
Y2FsbGVkIGJlZm9yZWhhbmQuCi0gICAgV0tTZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KGNvb2tp
ZVN0b3JhZ2UuZ2V0KCksIHBvbGljeSk7CisgICAgQ0ZIVFRQQ29va2llU3RvcmFnZVNldENvb2tp
ZUFjY2VwdFBvbGljeShjb29raWVTdG9yYWdlLmdldCgpLCBwb2xpY3kpOwogfQogCiAtIChCT09M
KWlzRE9NUGFzdGVBbGxvd2VkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJv
Y2Vzcy9jb2NvYS9OZXR3b3JrUHJvY2Vzc0NvY29hLm1tIGIvU291cmNlL1dlYktpdDIvTmV0d29y
a1Byb2Nlc3MvY29jb2EvTmV0d29ya1Byb2Nlc3NDb2NvYS5tbQppbmRleCAzYWJjZjY5Mzg0Zjc0
YjYwOWM2ZmY0ZjM3ZWU3ZWU5NmVjNzYwMzA1Li5mMjg1M2JjNGI2MTczNzZkNjYyOTM5YzFmNmUx
ZDI4MTc3ZDkwOWM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9j
b2NvYS9OZXR3b3JrUHJvY2Vzc0NvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQ
cm9jZXNzL2NvY29hL05ldHdvcmtQcm9jZXNzQ29jb2EubW0KQEAgLTUxLDcgKzUxLDcgQEAgc3Rh
dGljIHZvaWQgaW5pdGlhbGl6ZU5ldHdvcmtTZXR0aW5ncygpCiB7CiAgICAgc3RhdGljIGNvbnN0
IHVuc2lnbmVkIHByZWZlcnJlZENvbm5lY3Rpb25Db3VudCA9IDY7CiAKLSAgICBXS0luaXRpYWxp
emVNYXhpbXVtSFRUUENvbm5lY3Rpb25Db3VudFBlckhvc3QocHJlZmVycmVkQ29ubmVjdGlvbkNv
dW50KTsKKyAgICBfQ0ZOZXR3b3JrSFRUUENvbm5lY3Rpb25DYWNoZVNldExpbWl0KGtIVFRQTG9h
ZFdpZHRoLCBwcmVmZXJyZWRDb25uZWN0aW9uQ291bnQpOwogCiAgICAgQm9vbGVhbiBrZXlFeGlz
dHNBbmRIYXNWYWxpZEZvcm1hdCA9IGZhbHNlOwogICAgIEJvb2xlYW4gcHJlZlZhbHVlID0gQ0ZQ
cmVmZXJlbmNlc0dldEFwcEJvb2xlYW5WYWx1ZShDRlNUUigiV2ViS2l0RW5hYmxlSFRUUFBpcGVs
aW5pbmciKSwga0NGUHJlZmVyZW5jZXNDdXJyZW50QXBwbGljYXRpb24sICZrZXlFeGlzdHNBbmRI
YXNWYWxpZEZvcm1hdCk7CkBAIC01OSw4ICs1OSwxMCBAQCBzdGF0aWMgdm9pZCBpbml0aWFsaXpl
TmV0d29ya1NldHRpbmdzKCkKICAgICAgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0OjpzZXRI
VFRQUGlwZWxpbmluZ0VuYWJsZWQocHJlZlZhbHVlKTsKIAogICAgIGlmIChXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3Q6OnJlc291cmNlUHJpb3JpdGllc0VuYWJsZWQoKSkgewotICAgICAgICBXS1Nl
dEhUVFBSZXF1ZXN0TWF4aW11bVByaW9yaXR5KHRvUGxhdGZvcm1SZXF1ZXN0UHJpb3JpdHkoV2Vi
Q29yZTo6UmVzb3VyY2VMb2FkUHJpb3JpdHk6OkhpZ2hlc3QpKTsKLSAgICAgICAgV0tTZXRIVFRQ
UmVxdWVzdE1pbmltdW1GYXN0TGFuZVByaW9yaXR5KHRvUGxhdGZvcm1SZXF1ZXN0UHJpb3JpdHko
V2ViQ29yZTo6UmVzb3VyY2VMb2FkUHJpb3JpdHk6Ok1lZGl1bSkpOworICAgICAgICBfQ0ZOZXR3
b3JrSFRUUENvbm5lY3Rpb25DYWNoZVNldExpbWl0KGtIVFRQUHJpb3JpdHlOdW1MZXZlbHMsIHRv
UGxhdGZvcm1SZXF1ZXN0UHJpb3JpdHkoV2ViQ29yZTo6UmVzb3VyY2VMb2FkUHJpb3JpdHk6Okhp
Z2hlc3QpKTsKKyNpZiBQTEFURk9STShJT1MpCisgICAgICAgIF9DRk5ldHdvcmtIVFRQQ29ubmVj
dGlvbkNhY2hlU2V0TGltaXQoa0hUVFBNaW5pbXVtRmFzdExhbmVQcmlvcml0eSwgdG9QbGF0Zm9y
bVJlcXVlc3RQcmlvcml0eShXZWJDb3JlOjpSZXNvdXJjZUxvYWRQcmlvcml0eTo6TWVkaXVtKSk7
CisjZW5kaWYKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQ
cm9jZXNzL21hYy9OZXR3b3JrUHJvY2Vzc01hYy5tbSBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQ
cm9jZXNzL21hYy9OZXR3b3JrUHJvY2Vzc01hYy5tbQppbmRleCAyODRlNWI3ODg2MWNlODdmNGI1
ZmM1ZjFhODZjMDk3MDk2ZWExNGMwLi5kZDU3OWE1MTBhOWU3NTdjZTMyMDRjNjRhMDlhN2UxZTdj
ZGNlYzQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvTmV0
d29ya1Byb2Nlc3NNYWMubW0KKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvbWFj
L05ldHdvcmtQcm9jZXNzTWFjLm1tCkBAIC0zNiw2ICszNiw3IEBACiAjaW1wb3J0ICJTYW5kYm94
SW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzLmgiCiAjaW1wb3J0ICJTZWNJdGVtU2hpbS5oIgogI2lt
cG9ydCAiU3RyaW5nVXRpbGl0aWVzLmgiCisjaW1wb3J0IDxXZWJDb3JlL0NGTmV0d29ya1NQSS5o
PgogI2ltcG9ydCA8V2ViQ29yZS9DZXJ0aWZpY2F0ZUluZm8uaD4KICNpbXBvcnQgPFdlYkNvcmUv
RmlsZVN5c3RlbS5oPgogI2ltcG9ydCA8V2ViQ29yZS9Mb2NhbGl6ZWRTdHJpbmdzLmg+CkBAIC05
NSw3ICs5Niw3IEBAIHN0YXRpYyB2b2lkIG92ZXJyaWRlU3lzdGVtUHJveGllcyhjb25zdCBTdHJp
bmcmIGh0dHBQcm94eSwgY29uc3QgU3RyaW5nJiBodHRwc1ByCiAgICAgfQogCiAgICAgaWYgKFtw
cm94eVNldHRpbmdzIGNvdW50XSA+IDApCi0gICAgICAgIFdLQ0ZOZXR3b3JrU2V0T3ZlcnJpZGVT
eXN0ZW1Qcm94eVNldHRpbmdzKChDRkRpY3Rpb25hcnlSZWYpcHJveHlTZXR0aW5ncyk7CisgICAg
ICAgIF9DRk5ldHdvcmtTZXRPdmVycmlkZVN5c3RlbVByb3h5U2V0dGluZ3MoKENGRGljdGlvbmFy
eVJlZilwcm94eVNldHRpbmdzKTsKIH0KIAogdm9pZCBOZXR3b3JrUHJvY2Vzczo6cGxhdGZvcm1J
bml0aWFsaXplTmV0d29ya1Byb2Nlc3MoY29uc3QgTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnMmIHBhcmFtZXRlcnMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L21hYy9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lm1tIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRnJhbWVOZXR3b3JraW5n
Q29udGV4dC5tbQppbmRleCA3YjEzMjhkZWNjMmEzYzA4YjBhMzhiMzdlOWMzYjFjNWY2MzU1Y2Vk
Li4yZTY3MTgyOTkwNzExNjk0NzRhYWUyNzNkM2Y2N2IxMDRjY2I0ZTM4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJGcmFtZU5ldHdv
cmtpbmdDb250ZXh0Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvbWFjL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQubW0KQEAgLTMxLDYgKzMxLDcgQEAK
ICNpbmNsdWRlICJXZWJDb29raWVNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiV2ViUGFnZS5oIgogI2lu
Y2x1ZGUgIldlYlByb2Nlc3MuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0NGTmV0d29ya1NQSS5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvRnJhbWUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lTG9hZGVy
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUxvYWRlckNsaWVudC5oPgpAQCAtNjksMTEgKzcw
LDExIEBAIHZvaWQgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6c2V0Q29va2llQWNjZXB0UG9s
aWN5Rm9yQWxsQ29udGV4dHMoSFRUUENvb2tpZUFjCiAgICAgW1tOU0hUVFBDb29raWVTdG9yYWdl
IHNoYXJlZEhUVFBDb29raWVTdG9yYWdlXSBzZXRDb29raWVBY2NlcHRQb2xpY3k6c3RhdGljX2Nh
c3Q8TlNIVFRQQ29va2llQWNjZXB0UG9saWN5Pihwb2xpY3kpXTsKIAogICAgIGlmIChSZXRhaW5Q
dHI8Q0ZIVFRQQ29va2llU3RvcmFnZVJlZj4gY29va2llU3RvcmFnZSA9IE5ldHdvcmtTdG9yYWdl
U2Vzc2lvbjo6ZGVmYXVsdFN0b3JhZ2VTZXNzaW9uKCkuY29va2llU3RvcmFnZSgpKQotICAgICAg
ICBXS1NldEhUVFBDb29raWVBY2NlcHRQb2xpY3koY29va2llU3RvcmFnZS5nZXQoKSwgcG9saWN5
KTsKKyAgICAgICAgQ0ZIVFRQQ29va2llU3RvcmFnZVNldENvb2tpZUFjY2VwdFBvbGljeShjb29r
aWVTdG9yYWdlLmdldCgpLCBwb2xpY3kpOwogCiAgICAgZm9yIChjb25zdCBhdXRvJiBzZXNzaW9u
IDogU2Vzc2lvblRyYWNrZXI6OnN0b3JhZ2VTZXNzaW9uTWFwKCkudmFsdWVzKCkpIHsKICAgICAg
ICAgaWYgKHNlc3Npb24pCi0gICAgICAgICAgICBXS1NldEhUVFBDb29raWVBY2NlcHRQb2xpY3ko
c2Vzc2lvbi0+Y29va2llU3RvcmFnZSgpLmdldCgpLCBwb2xpY3kpOworICAgICAgICAgICAgQ0ZI
VFRQQ29va2llU3RvcmFnZVNldENvb2tpZUFjY2VwdFBvbGljeShzZXNzaW9uLT5jb29raWVTdG9y
YWdlKCkuZ2V0KCksIHBvbGljeSk7CiAgICAgfQogfQogICAgIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViU3lzdGVtSW50ZXJmYWNl
Lm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViU3lz
dGVtSW50ZXJmYWNlLm1tCmluZGV4IDAzZjI4ODIzMDIxMTM2ZmUwOGRkMmY3M2M1NGFiYjM1ZjMz
YjhlOGYuLjNhYjU5MGQzMDRhYWQ4OWM1MWY0MGQyZWVlMTA0MThhYTk2MjBiN2EgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYlN5c3Rl
bUludGVyZmFjZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L21hYy9XZWJTeXN0ZW1JbnRlcmZhY2UubW0KQEAgLTQwLDI2ICs0MCwxOCBAQCB2b2lkIElu
aXRXZWJDb3JlU3lzdGVtSW50ZXJmYWNlKHZvaWQpCiAgICAgICAgIElOSVQoQWR2YW5jZURlZmF1
bHRCdXR0b25QdWxzZUFuaW1hdGlvbik7CiAjZW5kaWYKICAgICAgICAgSU5JVChDQUxheWVyRW51
bWVyYXRlUmVjdHNCZWluZ0RyYXduV2l0aEJsb2NrKTsKLSAgICAgICAgSU5JVChDR0NvbnRleHRH
ZXRTaG91bGRTbW9vdGhGb250cyk7CiAgICAgICAgIElOSVQoQ0dQYXR0ZXJuQ3JlYXRlV2l0aElt
YWdlQW5kVHJhbnNmb3JtKTsKICNpZiAhUExBVEZPUk0oSU9TKQogICAgICAgICBJTklUKENHQ29u
dGV4dERyYXdzV2l0aENvcnJlY3RTaGFkb3dPZmZzZXRzKTsKICNlbmRpZgogICAgICAgICBJTklU
KENvcHlDT05ORUNUUHJveHlSZXNwb25zZSk7Ci0gICAgICAgIElOSVQoQ29weU5TVVJMUmVzcG9u
c2VTdGF0dXNMaW5lKTsKLSAgICAgICAgSU5JVChDb3B5TlNVUkxSZXNwb25zZUNlcnRpZmljYXRl
Q2hhaW4pOwogI2lmICFQTEFURk9STShJT1MpCiAgICAgICAgIElOSVQoRHJhd0JlemVsZWRUZXh0
QXJlYSk7Ci0gICAgICAgIElOSVQoRHJhd0NhcHNMb2NrSW5kaWNhdG9yKTsKICAgICAgICAgSU5J
VChEcmF3Rm9jdXNSaW5nKTsKICAgICAgICAgSU5JVChEcmF3Rm9jdXNSaW5nQXRUaW1lKTsKICAg
ICAgICAgSU5JVChEcmF3Q2VsbEZvY3VzUmluZ1dpdGhGcmFtZUF0VGltZSk7CiAgICAgICAgIElO
SVQoRHJhd01lZGlhU2xpZGVyVHJhY2spOwogICAgICAgICBJTklUKERyYXdNZWRpYVVJUGFydCk7
Ci0jZW5kaWYKLSAgICAgICAgSU5JVChHZXRIVFRQUmVxdWVzdFByaW9yaXR5KTsKLSAgICAgICAg
SU5JVChHZXROU1VSTFJlc3BvbnNlTGFzdE1vZGlmaWVkRGF0ZSk7Ci0jaWYgIVBMQVRGT1JNKElP
UykKICAgICAgICAgSU5JVChTaWduZWRQdWJsaWNLZXlBbmRDaGFsbGVuZ2VTdHJpbmcpOwogI2Vu
ZGlmCiAgICAgICAgIElOSVQoR2V0V2ViRGVmYXVsdENGU3RyaW5nRW5jb2RpbmcpOwpAQCAtNjgs
MTAgKzYwLDYgQEAgdm9pZCBJbml0V2ViQ29yZVN5c3RlbUludGVyZmFjZSh2b2lkKQogICAgICAg
ICBJTklUKEdldFdoZWVsRXZlbnREZWx0YXMpOwogICAgICAgICBJTklUKEdldE5TRXZlbnRLZXlD
aGFyKTsKICAgICAgICAgSU5JVChIaXRUZXN0TWVkaWFVSVBhcnQpOwotI2VuZGlmCi0gICAgICAg
IElOSVQoSW5pdGlhbGl6ZU1heGltdW1IVFRQQ29ubmVjdGlvbkNvdW50UGVySG9zdCk7Ci0gICAg
ICAgIElOSVQoSFRUUFJlcXVlc3RFbmFibGVQaXBlbGluaW5nKTsKLSNpZiAhUExBVEZPUk0oSU9T
KQogICAgICAgICBJTklUKE1lYXN1cmVNZWRpYVVJUGFydCk7CiAgICAgICAgIElOSVQoUVRJbmNs
dWRlT25seU1vZGVybk1lZGlhRmlsZVR5cGVzKTsKICAgICAgICAgSU5JVChRVE1vdmllRGlzYWJs
ZUNvbXBvbmVudCk7CkBAIC03OSwzMCArNjcsMjEgQEAgdm9pZCBJbml0V2ViQ29yZVN5c3RlbUlu
dGVyZmFjZSh2b2lkKQogICAgICAgICBJTklUKFFUTW92aWVIYXNDbG9zZWRDYXB0aW9ucyk7CiAg
ICAgICAgIElOSVQoUVRNb3ZpZU1heFRpbWVMb2FkZWQpOwogICAgICAgICBJTklUKFFUTW92aWVN
YXhUaW1lTG9hZGVkQ2hhbmdlTm90aWZpY2F0aW9uKTsKLSAgICAgICAgSU5JVChRVE1vdmllTWF4
VGltZVNlZWthYmxlKTsKICAgICAgICAgSU5JVChRVE1vdmllUmVzb2x2ZWRVUkwpOwogICAgICAg
ICBJTklUKFFUTW92aWVTZWxlY3RQcmVmZXJyZWRBbHRlcm5hdGVzKTsKICAgICAgICAgSU5JVChR
VE1vdmllU2V0U2hvd0Nsb3NlZENhcHRpb25zKTsKLSAgICAgICAgSU5JVChRVE1vdmllVmlld1Nl
dERyYXdTeW5jaHJvbm91c2x5KTsKICAgICAgICAgSU5JVChRVEdldFNpdGVzSW5NZWRpYURvd25s
b2FkQ2FjaGUpOwogICAgICAgICBJTklUKFFUQ2xlYXJNZWRpYURvd25sb2FkQ2FjaGVGb3JTaXRl
KTsKICAgICAgICAgSU5JVChRVENsZWFyTWVkaWFEb3dubG9hZENhY2hlKTsKLSAgICAgICAgSU5J
VChTZXRDR0ZvbnRSZW5kZXJpbmdNb2RlKTsKICNlbmRpZgogICAgICAgICBJTklUKFNldENPTk5F
Q1RQcm94eUF1dGhvcml6YXRpb25Gb3JTdHJlYW0pOwogICAgICAgICBJTklUKFNldENPTk5FQ1RQ
cm94eUZvclN0cmVhbSk7CiAjaWYgIVBMQVRGT1JNKElPUykKICAgICAgICAgSU5JVChTZXREcmFn
SW1hZ2UpOwogI2VuZGlmCi0gICAgICAgIElOSVQoU2V0SFRUUFJlcXVlc3RNYXhpbXVtUHJpb3Jp
dHkpOwotICAgICAgICBJTklUKFNldEhUVFBSZXF1ZXN0UHJpb3JpdHkpOwotICAgICAgICBJTklU
KFNldEhUVFBSZXF1ZXN0TWluaW11bUZhc3RMYW5lUHJpb3JpdHkpOwotICAgICAgICBJTklUKFNl
dE5TVVJMUmVxdWVzdFNob3VsZENvbnRlbnRTbmlmZik7CiAgICAgICAgIElOSVQoQ3JlYXRlUHJp
dmF0ZVN0b3JhZ2VTZXNzaW9uKTsKICAgICAgICAgSU5JVChDb3B5UmVxdWVzdFdpdGhTdG9yYWdl
U2Vzc2lvbik7Ci0gICAgICAgIElOSVQoQ29weUhUVFBDb29raWVTdG9yYWdlKTsKICAgICAgICAg
SU5JVChHZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KTsKLSAgICAgICAgSU5JVChTZXRIVFRQQ29v
a2llQWNjZXB0UG9saWN5KTsKICAgICAgICAgSU5JVChIVFRQQ29va2llcyk7CiAgICAgICAgIElO
SVQoSFRUUENvb2tpZXNGb3JVUkwpOwogICAgICAgICBJTklUKFNldEhUVFBDb29raWVzRm9yVVJM
KTsKQEAgLTExMSwyNCArOTAsMTEgQEAgdm9pZCBJbml0V2ViQ29yZVN5c3RlbUludGVyZmFjZSh2
b2lkKQogCiAjaWYgIVBMQVRGT1JNKElPUykKICAgICAgICAgSU5JVChTZXRNZXRhZGF0YVVSTCk7
Ci0jZW5kaWYgLy8gIVBMQVRGT1JNKElPUykKLQotI2lmICFQTEFURk9STShJT1MpCiAgICAgICAg
IElOSVQoRXhlY3V0YWJsZVdhc0xpbmtlZE9uT3JCZWZvcmVTbm93TGVvcGFyZCk7CiAgICAgICAg
IElOSVQoQ29weURlZmF1bHRTZWFyY2hQcm92aWRlckRpc3BsYXlOYW1lKTsKICAgICAgICAgSU5J
VChDdXJzb3IpOwogICAgICAgICBJTklUKFdpbmRvd1NldFNjYWxlZEZyYW1lKTsKICAgICAgICAg
SU5JVChXaW5kb3dTZXRBbHBoYSk7Ci0jZW5kaWYgLy8gIVBMQVRGT1JNKElPUykKLQotI2lmIFVT
RShDRk5FVFdPUkspCi0gICAgICAgIElOSVQoR2V0RGVmYXVsdEhUVFBDb29raWVTdG9yYWdlKTsK
LSAgICAgICAgSU5JVChDb3B5Q3JlZGVudGlhbEZyb21DRlBlcnNpc3RlbnRTdG9yYWdlKTsKLSAg
ICAgICAgSU5JVChTZXRDRlVSTFJlcXVlc3RTaG91bGRDb250ZW50U25pZmYpOwotICAgICAgICBJ
TklUKFNldFJlcXVlc3RTdG9yYWdlU2Vzc2lvbik7Ci0jZW5kaWYKLQotI2lmICFQTEFURk9STShJ
T1MpCiAgICAgICAgIElOSVQoU3BlZWNoU3ludGhlc2lzR2V0Vm9pY2VJZGVudGlmaWVycyk7CiAg
ICAgICAgIElOSVQoU3BlZWNoU3ludGhlc2lzR2V0RGVmYXVsdFZvaWNlSWRlbnRpZmllckZvckxv
Y2FsZSk7CiAgICAgICAgIElOSVQoR2V0QVhUZXh0TWFya2VyVHlwZUlEKTsKQEAgLTE0MSwxNyAr
MTA3LDYgQEAgdm9pZCBJbml0V2ViQ29yZVN5c3RlbUludGVyZmFjZSh2b2lkKQogICAgICAgICBJ
TklUKEFjY2Vzc2liaWxpdHlIYW5kbGVGb2N1c0NoYW5nZWQpOwogICAgICAgICBJTklUKENyZWF0
ZUFYVUlFbGVtZW50UmVmKTsKICAgICAgICAgSU5JVChVbnJlZ2lzdGVyVW5pcXVlSWRGb3JFbGVt
ZW50KTsKLSNlbmRpZgotCi0gICAgICAgIElOSVQoR2V0Q0ZVUkxSZXNwb25zZU1JTUVUeXBlKTsK
LSAgICAgICAgSU5JVChHZXRDRlVSTFJlc3BvbnNlVVJMKTsKLSAgICAgICAgSU5JVChHZXRDRlVS
TFJlc3BvbnNlSFRUUFJlc3BvbnNlKTsKLSAgICAgICAgSU5JVChDb3B5Q0ZVUkxSZXNwb25zZVN1
Z2dlc3RlZEZpbGVuYW1lKTsKLSAgICAgICAgSU5JVChTZXRDRlVSTFJlc3BvbnNlTUlNRVR5cGUp
OwotCi0gICAgICAgIElOSVQoQ0ZVUkxSZXF1ZXN0QWxsb3dBbGxQb3N0Q2FjaGluZyk7Ci0KLSNp
ZiAhUExBVEZPUk0oSU9TKQogICAgICAgICBJTklUKE5TRWxhc3RpY0RlbHRhRm9yVGltZURlbHRh
KTsKICAgICAgICAgSU5JVChOU0VsYXN0aWNEZWx0YUZvclJlYm91bmREZWx0YSk7CiAgICAgICAg
IElOSVQoTlNSZWJvdW5kRGVsdGFGb3JFbGFzdGljRGVsdGEpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>267709</attachid>
            <date>2015-12-19 22:01:07 -0800</date>
            <delta_ts>2015-12-22 12:41:35 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-152463-20151219220029.patch</filename>
            <type>text/plain</type>
            <size>105094</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk0MjkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWQ0NmRlN2M0NGMxZWYx
ZGQ0NjdiMzNjYmNhN2Q4ZDgwNWFkM2E3Ny4uNDhlYjIwOTM2MjU0MzEwMTlhMzVjMDVmMjRlZDY3
MjcxYTkzZWU0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY1IEBACisyMDE1LTEyLTE5ICBBbmR5
IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBbQ0ZdIFJlcGxhY2UgQ0ZOZXR3
b3JrLXJlbGF0ZWQgV2ViS2l0U3lzdGVtSW50ZXJmYWNlIGNhbGxzIHdpdGggU1BJCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTI0NjMKKworICAgICAg
ICBSZXZpZXdlZCBieSBBbGV4ZXkgUHJvc2t1cnlha292LgorCisgICAgICAgIFJlcGxhY2VkIFdl
YmtpdFN5c3RlbUludGVyZmFjZSBjYWxscyB0aGF0IHdyYXBwZWQgQ0ZOZXR3b3JrIFNQSSB3aXRo
IGRpcmVjdCBjYWxscyB0byBTUEkgdGhhdCBpcyBub3cgZm9yd2FyZAorICAgICAgICBkZWNsYXJl
ZCBpbiBDRk5ldHdvcmtTUEkuaC4KKworICAgICAgICBBbHNvIHJlbW92ZWQgc29tZSB1bnVzZWQg
ZGVjbGFyYXRpb25zIGFuZCByZW5hbWVkIFJlc291cmNlUmVzcG9uc2VNYWMubW0gdG8gUmVzb3Vy
Y2VSZXNwb25zZUNvY29hLm1tLgorCisgICAgICAgICogUGxhdGZvcm1NYWMuY21ha2U6CisgICAg
ICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBsYXRm
b3JtL2lvcy9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlSU9TLm1tOgorICAgICAgICAqIHBsYXRmb3Jt
L21hYy9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmg6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1dl
YkNvcmVTeXN0ZW1JbnRlcmZhY2UubW06CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9OZXR3
b3JrU3RvcmFnZVNlc3Npb24uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2NmL0NyZWRl
bnRpYWxTdG9yYWdlQ0ZOZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y29weUNyZWRlbnRpYWxG
cm9tUHJvdGVjdGlvblNwYWNlKToKKyAgICAgICAgKFdlYkNvcmU6OkNyZWRlbnRpYWxTdG9yYWdl
OjpnZXRGcm9tUGVyc2lzdGVudFN0b3JhZ2UpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsv
Y2YvTmV0d29ya1N0b3JhZ2VTZXNzaW9uQ0ZOZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TmV0
d29ya1N0b3JhZ2VTZXNzaW9uOjpjb29raWVTdG9yYWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9u
ZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZOZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVz
b3VyY2VIYW5kbGU6OmNyZWF0ZUNGVVJMQ29ubmVjdGlvbik6CisgICAgICAgICogcGxhdGZvcm0v
bmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGU6OmNy
ZWF0ZVJlc291cmNlUmVxdWVzdCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jZi9SZXNv
dXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlV2l0aE9wZXJhdGlvblF1ZXVlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGVX
aXRoT3BlcmF0aW9uUXVldWU6OmRpZFJlY2VpdmVSZXNwb25zZSk6CisgICAgICAgICogcGxhdGZv
cm0vbmV0d29yay9jZi9SZXNvdXJjZVJlcXVlc3RDRk5ldC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3Q6OmRvVXBkYXRlUGxhdGZvcm1SZXF1ZXN0KToKKyAgICAgICAgKFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdDo6ZG9VcGRhdGVSZXNvdXJjZVJlcXVlc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0OjpzZXRTdG9yYWdlU2Vzc2lvbik6CisgICAgICAg
IChXZWJDb3JlOjppbml0aWFsaXplTWF4aW11bUhUVFBDb25uZWN0aW9uQ291bnRQZXJIb3N0KToK
KyAgICAgICAgKFdlYkNvcmU6OmluaXRpYWxpemVIVFRQQ29ubmVjdGlvblNldHRpbmdzT25TdGFy
dHVwKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlUmVxdWVzdENGTmV0
Lmg6CisgICAgICAgIChXZWJDb3JlOjp0b1Jlc291cmNlTG9hZFByaW9yaXR5KToKKyAgICAgICAg
KFdlYkNvcmU6OnRvUGxhdGZvcm1SZXF1ZXN0UHJpb3JpdHkpOgorICAgICAgICAqIHBsYXRmb3Jt
L25ldHdvcmsvY2YvUmVzb3VyY2VSZXNwb25zZS5oOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdv
cmsvY2YvUmVzb3VyY2VSZXNwb25zZUNGTmV0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291
cmNlUmVzcG9uc2U6OnBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9uZXR3b3JrL2NmL1N5bmNocm9ub3VzUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxl
Z2F0ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTeW5jaHJvbm91c1Jlc291cmNlSGFuZGxlQ0ZV
UkxDb25uZWN0aW9uRGVsZWdhdGU6OmRpZFJlY2VpdmVSZXNwb25zZSk6CisgICAgICAgICogcGxh
dGZvcm0vbmV0d29yay9jb2NvYS9SZXNvdXJjZVJlcXVlc3RDb2NvYS5tbToKKyAgICAgICAgKFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdDo6ZG9VcGRhdGVSZXNvdXJjZVJlcXVlc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Ojpkb1VwZGF0ZVBsYXRmb3JtUmVxdWVzdCk6Cisg
ICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jb2NvYS9SZXNvdXJjZVJlc3BvbnNlQ29jb2EubW06
IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJj
ZVJlc3BvbnNlTWFjLm1tLgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZTo6cGxh
dGZvcm1DZXJ0aWZpY2F0ZUluZm8pOgorICAgICAgICAoV2ViQ29yZTo6Y29weU5TVVJMUmVzcG9u
c2VTdGF0dXNMaW5lKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2U6OnBsYXRm
b3JtTGF6eUluaXQpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvaW9zL1F1aWNrTG9vay5o
OgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvaW9zL1F1aWNrTG9vay5tbToKKyAgICAgICAg
KiBwbGF0Zm9ybS9uZXR3b3JrL2lvcy9XZWJDb3JlVVJMUmVzcG9uc2VJT1MubW06CisgICAgICAg
IChXZWJDb3JlOjphZGp1c3RNSU1FVHlwZUlmTmVjZXNzYXJ5KToKKyAgICAgICAgKiBwbGF0Zm9y
bS9uZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlJl
c291cmNlSGFuZGxlOjpjcmVhdGVOU1VSTENvbm5lY3Rpb24pOgorICAgICAgICAqIHBsYXRmb3Jt
L25ldHdvcmsvbWFjL1dlYkNvcmVVUkxSZXNwb25zZS5oOgorICAgICAgICAqIHBsYXRmb3JtL25l
dHdvcmsvbWFjL1dlYkNvcmVVUkxSZXNwb25zZS5tbToKKyAgICAgICAgKFdlYkNvcmU6OmFkanVz
dE1JTUVUeXBlSWZOZWNlc3NhcnkpOgorICAgICAgICAqIHBsYXRmb3JtL3NwaS9jZi9DRk5ldHdv
cmtDb25uZWN0aW9uQ2FjaGVTUEkuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9zcGkvY2YvQ0ZOZXR3
b3JrU1BJLmg6CisKIDIwMTUtMTItMTggIEJyZW50IEZ1bGdoYW0gIDxiZnVsZ2hhbUBhcHBsZS5j
b20+CiAKICAgICAgICAgUGxhY2UgYW4gdXBwZXIgYm91bmQgb24gY2FudmFzIHBpeGVsIGNvdW50
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
L21hYy9DaGFuZ2VMb2cKaW5kZXggNTI1MGUwMmJjMTU2Nzc3MDQxODA2YzUwZjAzZDllNzA5NmFl
M2ZkMi4uN2RlZDE5OGEwODRlMTQ2YWRkMGQ3ODQyM2MwYWIyMmEwM2Q2NTRjMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0No
YW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDE1LTEyLTE5ICBBbmR5IEVzdGVzICA8YWVzdGVz
QGFwcGxlLmNvbT4KKworICAgICAgICBbQ0ZdIFJlcGxhY2UgQ0ZOZXR3b3JrLXJlbGF0ZWQgV2Vi
S2l0U3lzdGVtSW50ZXJmYWNlIGNhbGxzIHdpdGggU1BJCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTI0NjMKKworICAgICAgICBSZXZpZXdlZCBieSBB
bGV4ZXkgUHJvc2t1cnlha292LgorCisgICAgICAgIFJlcGxhY2VkIFdlYmtpdFN5c3RlbUludGVy
ZmFjZSBjYWxscyB0aGF0IHdyYXBwZWQgQ0ZOZXR3b3JrIFNQSSB3aXRoIGRpcmVjdCBjYWxscyB0
byBTUEkgdGhhdCBpcyBub3cgZm9yd2FyZAorICAgICAgICBkZWNsYXJlZCBpbiBDRk5ldHdvcmtT
UEkuaC4KKworICAgICAgICAqIFBsdWdpbnMvSG9zdGVkL0hvc3RlZE5ldHNjYXBlUGx1Z2luU3Ry
ZWFtLm1tOgorICAgICAgICAoV2ViS2l0OjpIb3N0ZWROZXRzY2FwZVBsdWdpblN0cmVhbTo6ZGlk
UmVjZWl2ZVJlc3BvbnNlKToKKyAgICAgICAgKiBQbHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2luU3Ry
ZWFtLm1tOgorICAgICAgICAoV2ViTmV0c2NhcGVQbHVnaW5TdHJlYW06OmRpZFJlY2VpdmVSZXNw
b25zZSk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViU3lzdGVtSW50ZXJmYWNlLm1tOgor
ICAgICAgICAoSW5pdFdlYkNvcmVTeXN0ZW1JbnRlcmZhY2UpOiBEZWxldGVkLgorICAgICAgICAq
IFdlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW06CisgICAgICAgICgrW1dlYlByZWZlcmVuY2VzIF9z
ZXRDdXJyZW50TmV0d29ya0xvYWRlclNlc3Npb25Db29raWVBY2NlcHRQb2xpY3k6XSk6CisKIDIw
MTUtMTItMTcgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CiAKICAgICAg
ICAgRGF0YSBkZXRlY3RvciB5ZWxsb3cgaGlnaGxpZ2h0IGxvY2F0aW9uIGlzIHZlcnRpY2FsbHkg
bWlycm9yZWQgaW4gV2ViS2l0MQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDYzMGE5NDJkOThmMWNlOWE2NDRkZjRh
YjM2MzAwZGVjZGE0ZmZhOTEuLmZjODU4MzMwZWY2MGM0NDhiZDYyN2U2MGUxZDc5NmNlZDI2Mjhm
NDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAxNS0xMi0xOSAgQW5keSBFc3RlcyAg
PGFlc3Rlc0BhcHBsZS5jb20+CisKKyAgICAgICAgW0NGXSBSZXBsYWNlIENGTmV0d29yay1yZWxh
dGVkIFdlYktpdFN5c3RlbUludGVyZmFjZSBjYWxscyB3aXRoIFNQSQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUyNDYzCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgQWxleGV5IFByb3NrdXJ5YWtvdi4KKworICAgICAgICBSZXBsYWNlZCBXZWJraXRTeXN0
ZW1JbnRlcmZhY2UgY2FsbHMgdGhhdCB3cmFwcGVkIENGTmV0d29yayBTUEkgd2l0aCBkaXJlY3Qg
Y2FsbHMgdG8gU1BJIHRoYXQgaXMgbm93IGZvcndhcmQKKyAgICAgICAgZGVjbGFyZWQgaW4gQ0ZO
ZXR3b3JrU1BJLmguCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrUHJv
Y2Vzc0NvY29hLm1tOgorICAgICAgICAoV2ViS2l0Ojppbml0aWFsaXplTmV0d29ya1NldHRpbmdz
KToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9tYWMvTmV0d29ya1Byb2Nlc3NNYWMubW06Cisg
ICAgICAgIChXZWJLaXQ6Om92ZXJyaWRlU3lzdGVtUHJveGllcyk6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5tbToKKyAg
ICAgICAgKFdlYktpdDo6V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6c2V0Q29va2llQWNjZXB0
UG9saWN5Rm9yQWxsQ29udGV4dHMpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvbWFjL1dlYlN5c3RlbUludGVyZmFjZS5tbToKKyAgICAgICAgKEluaXRXZWJDb3JlU3lzdGVt
SW50ZXJmYWNlKToKKwogMjAxNS0xMi0xOCAgTWljaGFlbCBDYXRhbnphcm8gIDxtY2F0YW56YXJv
QGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS10gVW5yZXZpZXdlZCwgZml4IEd0a0RvYyBhZnRl
ciByMTkzNjIwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybU1hYy5jbWFrZSBi
L1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtTWFjLmNtYWtlCmluZGV4IDA4ZmMwYjYyNTdlNGM1OWQ3
MDJmNWIyZGFmZWMzODM0NGVjZTgxYmMuLmRmNThkMjUyMmQyYjkzOTc5ZTY5ZGI0YjZiZDAxMTQ3
YjgzMGM5MWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtTWFjLmNtYWtlCisr
KyBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtTWFjLmNtYWtlCkBAIC01MjAsNiArNTIwLDcgQEAg
bGlzdChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCiAgICAgcGxhdGZvcm0vbmV0d29yay9jb2NvYS9D
cmVkZW50aWFsQ29jb2EubW0KICAgICBwbGF0Zm9ybS9uZXR3b3JrL2NvY29hL1Byb3RlY3Rpb25T
cGFjZUNvY29hLm1tCiAgICAgcGxhdGZvcm0vbmV0d29yay9jb2NvYS9SZXNvdXJjZVJlcXVlc3RD
b2NvYS5tbQorICAgIHBsYXRmb3JtL25ldHdvcmsvY29jb2EvUmVzb3VyY2VSZXNwb25zZUNvY29h
Lm1tCiAKICAgICBwbGF0Zm9ybS9uZXR3b3JrL21hYy9BdXRoZW50aWNhdGlvbk1hYy5tbQogICAg
IHBsYXRmb3JtL25ldHdvcmsvbWFjL0Jsb2JEYXRhRmlsZVJlZmVyZW5jZU1hYy5tbQpAQCAtNTMy
LDcgKzUzMyw2IEBAIGxpc3QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUwogICAgIHBsYXRmb3JtL25l
dHdvcmsvbWFjL1Jlc291cmNlRXJyb3JNYWMubW0KICAgICBwbGF0Zm9ybS9uZXR3b3JrL21hYy9S
ZXNvdXJjZUhhbmRsZU1hYy5tbQogICAgIHBsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlUmVx
dWVzdE1hYy5tbQotICAgIHBsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlUmVzcG9uc2VNYWMu
bW0KICAgICBwbGF0Zm9ybS9uZXR3b3JrL21hYy9TeW5jaHJvbm91c0xvYWRlckNsaWVudC5tbQog
ICAgIHBsYXRmb3JtL25ldHdvcmsvbWFjL1VUSVV0aWxpdGllcy5tbQogICAgIHBsYXRmb3JtL25l
dHdvcmsvbWFjL1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFzRGVsZWdhdGUubW0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBjMDlkM2Q5
NGYzMWE2OWM2ODg3ZDI3NTQwMjQ4NTI2OTkxYmE4Y2NkLi4xMGFiMTY5MGU1YjhkM2VmNGU0ZDBl
MWU2ZjJhNjUzZWM2NDc0NDBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xOTc3LDcgKzE5NzcsNiBAQAogCQk1MTRDNzY1MDBD
RTkyMzRFMDA3RUYzQ0QgLyogUmVzb3VyY2VFcnJvck1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxNEM3NjQ2MENFOTIzNEUwMDdFRjNDRCAvKiBS
ZXNvdXJjZUVycm9yTWFjLm1tICovOyB9OwogCQk1MTRDNzY1MTBDRTkyMzRFMDA3RUYzQ0QgLyog
UmVzb3VyY2VIYW5kbGVNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1MTRDNzY0NzBDRTkyMzRFMDA3RUYzQ0QgLyogUmVzb3VyY2VIYW5kbGVNYWMu
bW0gKi87IH07CiAJCTUxNEM3NjUzMENFOTIzNEUwMDdFRjNDRCAvKiBSZXNvdXJjZVJlcXVlc3RN
YWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTRD
NzY0OTBDRTkyMzRFMDA3RUYzQ0QgLyogUmVzb3VyY2VSZXF1ZXN0TWFjLm1tICovOyB9OwotCQk1
MTRDNzY1NTBDRTkyMzRGMDA3RUYzQ0QgLyogUmVzb3VyY2VSZXNwb25zZU1hYy5tbSBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxNEM3NjRCMENFOTIzNEUw
MDdFRjNDRCAvKiBSZXNvdXJjZVJlc3BvbnNlTWFjLm1tICovOyB9OwogCQk1MTRDNzY2RDBDRTky
M0ExMDA3RUYzQ0QgLyogQ3JlZGVudGlhbEJhc2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE0Qzc2NTgwQ0U5MjNBMTAwN0VGM0NEIC8qIENyZWRl
bnRpYWxCYXNlLmNwcCAqLzsgfTsKIAkJNTE0Qzc2NkUwQ0U5MjNBMTAwN0VGM0NEIC8qIENyZWRl
bnRpYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUx
NEM3NjU5MENFOTIzQTEwMDdFRjNDRCAvKiBDcmVkZW50aWFsLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTE0Qzc2NkYwQ0U5MjNBMTAwN0VGM0NE
IC8qIEZvcm1EYXRhLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDUxNEM3NjVBMENFOTIzQTEwMDdFRjNDRCAvKiBGb3JtRGF0YS5jcHAgKi87IH07CkBA
IC00MDEzLDYgKzQwMTIsNyBAQAogCQlBMTA0RjI0NDE0QzcxRjdBMDA5RTJDMjMgLyogQ2FjaGVk
U1ZHRG9jdW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEExMDRGMjQyMTRDNzFGN0EwMDlFMkMyMyAvKiBDYWNoZWRTVkdEb2N1bWVudC5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUExMEJCNTg1MTQ4
NEUzQTcwMEIyRTg3QSAvKiBSZW5kZXJTVkdSZWN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTBCQjU4MzE0ODRFM0E3MDBCMkU4N0EgLyogUmVuZGVy
U1ZHUmVjdC5oICovOyB9OwogCQlBMTBCQjU4QjE0ODRFM0IzMDBCMkU4N0EgLyogUmVuZGVyU1ZH
U2hhcGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEEx
MEJCNTg5MTQ4NEUzQjMwMEIyRTg3QSAvKiBSZW5kZXJTVkdTaGFwZS5oICovOyB9OworCQlBMTBE
N0ZFQzFDMjY3NkQxMDBDNkMxMTUgLyogQ0ZOZXR3b3JrQ29ubmVjdGlvbkNhY2hlU1BJLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTBEN0ZFQjFDMjY3
NkQxMDBDNkMxMTUgLyogQ0ZOZXR3b3JrQ29ubmVjdGlvbkNhY2hlU1BJLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQTEwREJGNDcxOEY5MjMxNzAw
MEQ3MEM2IC8qIFF1aWNrTG9va0hhbmRsZUNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTEwREJGNDYxOEY5MjMxNzAwMEQ3MEM2IC8qIFF1aWNr
TG9va0hhbmRsZUNsaWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCUExMERDNzZBMTQ3NDdCQUIwMDVFMjQ3MSAvKiBTdHlsZUdyaWREYXRhLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExMERDNzY4
MTQ3NDdCQUIwMDVFMjQ3MSAvKiBTdHlsZUdyaWREYXRhLmNwcCAqLzsgfTsKIAkJQTEwREM3NkIx
NDc0N0JBQjAwNUUyNDcxIC8qIFN0eWxlR3JpZERhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExMERDNzY5MTQ3NDdCQUIwMDVFMjQ3MSAvKiBTdHls
ZUdyaWREYXRhLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKQEAgLTQwOTYsNiArNDA5Niw3IEBACiAJCUExRUQ3NzhDMUJFMzI5NDAwMERDMTc5MSAvKiBE
ZXZpY2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QTFFRDc3OEExQkUzMjkzRjAwREMxNzkxIC8qIERldmljZS5jcHAgKi87IH07CiAJCUExRUQ3NzhE
MUJFMzI5NDAwMERDMTc5MSAvKiBEZXZpY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEExRUQ3NzhCMUJFMzI5NDAwMERDMTc5MSAvKiBEZXZpY2UuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBMUVENzc4
RjFCRTQyOTE4MDBEQzE3OTEgLyogVUlLaXRTUEkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExRUQ3NzhFMUJFNDI5MTgwMERDMTc5MSAvKiBVSUtpdFNQ
SS5oICovOyB9OworCQlBMUY3OEQwQzFDMjU0MjRDMDAyNDU0NDYgLyogUmVzb3VyY2VSZXNwb25z
ZUNvY29hLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QTFGNzhEMEIxQzI1NDIyQzAwMjQ1NDQ2IC8qIFJlc291cmNlUmVzcG9uc2VDb2NvYS5tbSAqLzsg
fTsKIAkJQTJCOTIxNzMxNkM1Q0M0MjAwNDFEQ0Q5IC8qIEludFJlY3RFeHRlbnQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEEyQjkyMTcyMTZDNUNDNDIw
MDQxRENEOSAvKiBJbnRSZWN0RXh0ZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJQTMxQzRFNEQxNkUwMkFBNjAwMkY3OTU3IC8qIE9FU1RleHR1
cmVIYWxmRmxvYXQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQTMxQzRFNEMxNkUwMkFBNjAwMkY3OTU3IC8qIE9FU1RleHR1cmVIYWxmRmxvYXQuY3Bw
ICovOyB9OwogCQlBMzFDNEU0RjE2RTAyQUI0MDAyRjc5NTcgLyogT0VTVGV4dHVyZUhhbGZGbG9h
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTMxQzRF
NEUxNkUwMkFCNDAwMkY3OTU3IC8qIE9FU1RleHR1cmVIYWxmRmxvYXQuaCAqLzsgfTsKQEAgLTYx
MjQsNyArNjEyNSw2IEBACiAJCUNFN0IyREI0MTU4NkFCQUQwMDk4QjNGQSAvKiBBbHRlcm5hdGl2
ZVRleHRVSUNvbnRyb2xsZXIubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBDRTdCMkRCMDE1ODZBQkFEMDA5OEIzRkEgLyogQWx0ZXJuYXRpdmVUZXh0VUlD
b250cm9sbGVyLm1tICovOyB9OwogCQlDRTdCMkRCNTE1ODZBQkFEMDA5OEIzRkEgLyogVGV4dEFs
dGVybmF0aXZlV2l0aFJhbmdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBDRTdCMkRCMTE1ODZBQkFEMDA5OEIzRkEgLyogVGV4dEFsdGVybmF0aXZlV2l0
aFJhbmdlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJQ0U3QjJEQjYxNTg2QUJBRDAwOThCM0ZBIC8qIFRleHRBbHRlcm5hdGl2ZVdpdGhSYW5nZS5t
bSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENFN0IyREIy
MTU4NkFCQUQwMDk4QjNGQSAvKiBUZXh0QWx0ZXJuYXRpdmVXaXRoUmFuZ2UubW0gKi87IH07Ci0J
CUNFODI0NUYwMTlCNjcxQkEwMEFDMDEyMiAvKiBDRk5ldHdvcmtDb25uZWN0aW9uQ2FjaGVTUEku
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENFODI0NUVG
MTlCNjcxQkEwMEFDMDEyMiAvKiBDRk5ldHdvcmtDb25uZWN0aW9uQ2FjaGVTUEkuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlDRTk1MjA4QTE4MTFC
NDc1MDA3QTUzOTIgLyogV2ViU2FmZUluY3JlbWVudGFsU3dlZXBlcklPUy5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzJDNENCMUQxNjFBMTMxMjAwRDIx
NERBIC8qIFdlYlNhZmVJbmNyZW1lbnRhbFN3ZWVwZXJJT1MuaCAqLzsgfTsKIAkJQ0VDMzM3QUQx
QTQ2MDcxRjAwOUI4NTIzIC8qIFNlcnZlcnNTUEkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENFQzMzN0FDMUE0NjA3MUYwMDlCODUyMyAvKiBTZXJ2ZXJz
U1BJLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
Q0VDMzM3QUYxQTQ2MDg2RDAwOUI4NTIzIC8qIEdyYXBoaWNzU2VydmljZXNTUEkuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENFQzMzN0FFMUE0NjA4NkQw
MDlCODUyMyAvKiBHcmFwaGljc1NlcnZpY2VzU1BJLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTk0MDEsNyArOTQwMSw2IEBACiAJCTUxNEM3NjQ2
MENFOTIzNEUwMDdFRjNDRCAvKiBSZXNvdXJjZUVycm9yTWFjLm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gUmVzb3VyY2VFcnJvck1hYy5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNTE0Qzc2NDcwQ0U5MjM0RTAwN0VGM0NEIC8qIFJlc291cmNlSGFu
ZGxlTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUmVzb3Vy
Y2VIYW5kbGVNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxNEM3NjQ5MENF
OTIzNEUwMDdFRjNDRCAvKiBSZXNvdXJjZVJlcXVlc3RNYWMubW0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5vYmpjcHA7IHBhdGggPSBSZXNvdXJjZVJlcXVlc3RNYWMubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCTUxNEM3NjRCMENFOTIzNEUwMDdFRjNDRCAvKiBSZXNvdXJjZVJl
c3BvbnNlTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUmVz
b3VyY2VSZXNwb25zZU1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTE0Qzc2
NTgwQ0U5MjNBMTAwN0VGM0NEIC8qIENyZWRlbnRpYWxCYXNlLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENyZWRlbnRpYWxCYXNlLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNTE0Qzc2NTkwQ0U5MjNBMTAwN0VGM0NEIC8qIENyZWRlbnRpYWwuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ3JlZGVudGlhbC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk1MTRDNzY1QTBDRTkyM0ExMDA3RUYzQ0QgLyogRm9ybURhdGEu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRm9ybURhdGEuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTE1NzcsNiArMTE1NzYsNyBAQAogCQlBMTBC
QjU4MzE0ODRFM0E3MDBCMkU4N0EgLyogUmVuZGVyU1ZHUmVjdC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBSZW5kZXJTVkdSZWN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUExMEJCNTg4MTQ4NEUzQjMwMEIyRTg3QSAvKiBSZW5kZXJTVkdTaGFwZS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW5kZXJTVkdTaGFwZS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUExMEJCNTg5MTQ4NEUzQjMwMEIyRTg3QSAvKiBS
ZW5kZXJTVkdTaGFwZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW5kZXJT
VkdTaGFwZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBMTBEN0ZFQjFDMjY3NkQx
MDBDNkMxMTUgLyogQ0ZOZXR3b3JrQ29ubmVjdGlvbkNhY2hlU1BJLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IENGTmV0d29ya0Nvbm5lY3Rpb25DYWNoZVNQSS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlBMTBEQkY0NjE4RjkyMzE3MDAwRDcwQzYgLyogUXVpY2tM
b29rSGFuZGxlQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFF1aWNr
TG9va0hhbmRsZUNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMTBEQzc2
ODE0NzQ3QkFCMDA1RTI0NzEgLyogU3R5bGVHcmlkRGF0YS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBTdHlsZUdyaWREYXRhLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQTEwREM3NjkxNDc0N0JBQjAwNUUyNDcxIC8qIFN0eWxlR3JpZERhdGEuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3R5bGVHcmlkRGF0YS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTE2NTYsNiArMTE2NTYsNyBAQAogCQlBMUVENzc4QTFC
RTMyOTNGMDBEQzE3OTEgLyogRGV2aWNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IERldmljZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUExRUQ3
NzhCMUJFMzI5NDAwMERDMTc5MSAvKiBEZXZpY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gRGV2aWNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUExRUQ3NzhF
MUJFNDI5MTgwMERDMTc5MSAvKiBVSUtpdFNQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBVSUtpdFNQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBMUY3OEQw
QjFDMjU0MjJDMDAyNDU0NDYgLyogUmVzb3VyY2VSZXNwb25zZUNvY29hLm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUmVzb3VyY2VSZXNwb25zZUNvY29hLm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMjA4RTIyMkE1NkEwQzc1NzVGMkE3MkUgLyog
UmVuZGVyTWF0aE1MTWVuY2xvc2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
UmVuZGVyTWF0aE1MTWVuY2xvc2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTJC
OTIxNzIxNkM1Q0M0MjAwNDFEQ0Q5IC8qIEludFJlY3RFeHRlbnQuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gSW50UmVjdEV4dGVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlBMzFDNEU0QzE2RTAyQUE2MDAyRjc5NTcgLyogT0VTVGV4dHVyZUhhbGZGbG9hdC5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBPRVNUZXh0dXJlSGFsZkZs
b2F0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEzOTk5LDcgKzE0MDAwLDYg
QEAKIAkJQ0U3QjJEQjAxNTg2QUJBRDAwOThCM0ZBIC8qIEFsdGVybmF0aXZlVGV4dFVJQ29udHJv
bGxlci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEFsdGVybmF0
aXZlVGV4dFVJQ29udHJvbGxlci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0U3
QjJEQjExNTg2QUJBRDAwOThCM0ZBIC8qIFRleHRBbHRlcm5hdGl2ZVdpdGhSYW5nZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUZXh0QWx0ZXJuYXRpdmVXaXRoUmFuZ2UuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0U3QjJEQjIxNTg2QUJBRDAwOThCM0ZBIC8q
IFRleHRBbHRlcm5hdGl2ZVdpdGhSYW5nZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgcGF0aCA9IFRleHRBbHRlcm5hdGl2ZVdpdGhSYW5nZS5tbTsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKLQkJQ0U4MjQ1RUYxOUI2NzFCQTAwQUMwMTIyIC8qIENGTmV0d29ya0Nvbm5l
Y3Rpb25DYWNoZVNQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDRk5ldHdv
cmtDb25uZWN0aW9uQ2FjaGVTUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0VD
MzM3QUMxQTQ2MDcxRjAwOUI4NTIzIC8qIFNlcnZlcnNTUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gU2VydmVyc1NQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlDRUMzMzdBRTFBNDYwODZEMDA5Qjg1MjMgLyogR3JhcGhpY3NTZXJ2aWNlc1NQSS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHcmFwaGljc1NlcnZpY2VzU1BJLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNFQ0FERkMyMTUzNzc4RkYwMEUzNzA2OCAvKiBEaWN0
YXRpb25BbHRlcm5hdGl2ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBEaWN0YXRpb25BbHRlcm5hdGl2ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0xNzIyNyw3ICsxNzIyNyw3IEBACiAJCQljaGlsZHJlbiA9ICgKIAkJCQlFMTBBMzlFMTFBRTg0
RTcxMDBBMjlBRTMgLyogQ0ZCdW5kbGVTUEkuaCAqLywKIAkJCQk2NTA4NkRBNzE5QUMxNzE5MDA5
QUY0NkIgLyogQ0ZMb2NhbGVTUEkuaCAqLywKLQkJCQlDRTgyNDVFRjE5QjY3MUJBMDBBQzAxMjIg
LyogQ0ZOZXR3b3JrQ29ubmVjdGlvbkNhY2hlU1BJLmggKi8sCisJCQkJQTEwRDdGRUIxQzI2NzZE
MTAwQzZDMTE1IC8qIENGTmV0d29ya0Nvbm5lY3Rpb25DYWNoZVNQSS5oICovLAogCQkJCUNFMTI1
MjVBMUExQzAxODIwMDg2NDQ4MCAvKiBDRk5ldHdvcmtTUEkuaCAqLywKIAkJCQk0NDQ5QTQwNDFB
OTY0QjAwMDBCNjRBRDUgLyogQ29yZU1lZGlhU1BJLmggKi8sCiAJCQkpOwpAQCAtMTc0OTIsNyAr
MTc0OTIsNiBAQAogCQkJCTUxNEM3NjQ2MENFOTIzNEUwMDdFRjNDRCAvKiBSZXNvdXJjZUVycm9y
TWFjLm1tICovLAogCQkJCTUxNEM3NjQ3MENFOTIzNEUwMDdFRjNDRCAvKiBSZXNvdXJjZUhhbmRs
ZU1hYy5tbSAqLywKIAkJCQk1MTRDNzY0OTBDRTkyMzRFMDA3RUYzQ0QgLyogUmVzb3VyY2VSZXF1
ZXN0TWFjLm1tICovLAotCQkJCTUxNEM3NjRCMENFOTIzNEUwMDdFRjNDRCAvKiBSZXNvdXJjZVJl
c3BvbnNlTWFjLm1tICovLAogCQkJCUUxODA4MTE0MTZGQ0Y5Q0IwMEI4MEQwNyAvKiBTeW5jaHJv
bm91c0xvYWRlckNsaWVudC5tbSAqLywKIAkJCQkxRkFGQkYxNjE1QTVGQTUyMDAwODNBMjAgLyog
VVRJVXRpbGl0aWVzLmggKi8sCiAJCQkJMUZBRkJGMTcxNUE1RkE1MjAwMDgzQTIwIC8qIFVUSVV0
aWxpdGllcy5tbSAqLywKQEAgLTE3ODY3LDYgKzE3ODY2LDcgQEAKIAkJCQkzNzJBREEzNzE5N0Y0
N0I5MDBGQzUwMUUgLyogUHJvdGVjdGlvblNwYWNlQ29jb2EuaCAqLywKIAkJCQkzNzJBREEzOTE5
N0Y2ODc2MDBGQzUwMUUgLyogUHJvdGVjdGlvblNwYWNlQ29jb2EubW0gKi8sCiAJCQkJN0U3REUx
RkMxOTVDRUYyNjAwMzUzNjNCIC8qIFJlc291cmNlUmVxdWVzdENvY29hLm1tICovLAorCQkJCUEx
Rjc4RDBCMUMyNTQyMkMwMDI0NTQ0NiAvKiBSZXNvdXJjZVJlc3BvbnNlQ29jb2EubW0gKi8sCiAJ
CQkpOwogCQkJcGF0aCA9IGNvY29hOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTI0
NjcxLDYgKzI0NjcxLDcgQEAKIAkJCQlBQjIzQTMyODA5QkJBN0QwMDA2N0NDNTMgLyogQmVmb3Jl
VGV4dEluc2VydGVkRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTg1MDMxQjNEMEE0NEVGQzcw
MEY5OTJFMCAvKiBCZWZvcmVVbmxvYWRFdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjJDM0RB
MjQwRDAwNkMxRDAwRUY2RjI2IC8qIEJpZGlDb250ZXh0LmggaW4gSGVhZGVycyAqLywKKwkJCQlB
MTBEN0ZFQzFDMjY3NkQxMDBDNkMxMTUgLyogQ0ZOZXR3b3JrQ29ubmVjdGlvbkNhY2hlU1BJLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlCMkMzREEyNTBEMDA2QzFEMDBFRjZGMjYgLyogQmlkaVJlc29s
dmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0U3ODk4NjExMjBFN0E2MDA2MEVDRTUgLyogQmlk
aVJ1bi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThDNDAyOTMxMzQ4QjIyMjAwNjNGMUU1IC8qIEJp
ZGlSdW5MaXN0LmggaW4gSGVhZGVycyAqLywKQEAgLTI0NzUyLDcgKzI0NzUzLDYgQEAKIAkJCQlD
REU4QjVGMTFBNjk3NzhCMDBCNEI2NkEgLyogQ0RNU2Vzc2lvbkNsZWFyS2V5LmggaW4gSGVhZGVy
cyAqLywKIAkJCQk1RkE5MDRDQTE3OEU2MUY1MDA0QzhBMkQgLyogQ2VydGlmaWNhdGVJbmZvLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlFMTBBMzlFMjFBRTg0RTcxMDBBMjlBRTMgLyogQ0ZCdW5kbGVT
UEkuaCBpbiBIZWFkZXJzICovLAotCQkJCUNFODI0NUYwMTlCNjcxQkEwMEFDMDEyMiAvKiBDRk5l
dHdvcmtDb25uZWN0aW9uQ2FjaGVTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCUNFMTI1MjVCMUEx
QzAxODIwMDg2NDQ4MCAvKiBDRk5ldHdvcmtTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxQThF
NTY3MTc1NTJCMkEwMDc0ODhFNyAvKiBDRlVSTEV4dHJhcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
RkUzNkZEMTUxNkM3ODI2NTAwRjg4N0MxIC8qIENoYW5nZVZlcnNpb25EYXRhLmggaW4gSGVhZGVy
cyAqLywKQEAgLTI5MDY3LDYgKzI5MDY3LDcgQEAKIAkJCQk4NTA2NTcwMTBBQUI0NzYzMDAyRDE1
QzAgLyogRE9NU3R5bGVTaGVldC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTg1MDY1NzAzMEFBQjQ3
NjMwMDJEMTVDMCAvKiBET01TdHlsZVNoZWV0TGlzdC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTg1
QUNBOTlEMEE5QjU3NTkwMDY3MUU5MCAvKiBET01UZXh0Lm1tIGluIFNvdXJjZXMgKi8sCisJCQkJ
QTFGNzhEMEMxQzI1NDI0QzAwMjQ1NDQ2IC8qIFJlc291cmNlUmVzcG9uc2VDb2NvYS5tbSBpbiBT
b3VyY2VzICovLAogCQkJCTkzM0ExNEFBMEI3RDFEMDkwMEE1M0ZGRCAvKiBET01UZXh0RXZlbnQu
bW0gaW4gU291cmNlcyAqLywKIAkJCQkxODg2MDRCMzBGMkU2NTRBMDAwQjY0NDMgLyogRE9NVGlt
ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNzZGQzJCMEIxMjM3MERBMDAwNkE5OTFBIC8qIERP
TVRva2VuTGlzdC5jcHAgaW4gU291cmNlcyAqLywKQEAgLTMwNzg4LDcgKzMwNzg5LDYgQEAKIAkJ
CQk1MTRDNzY1MzBDRTkyMzRFMDA3RUYzQ0QgLyogUmVzb3VyY2VSZXF1ZXN0TWFjLm1tIGluIFNv
dXJjZXMgKi8sCiAJCQkJNTE0Qzc2N0UwQ0U5MjNBMTAwN0VGM0NEIC8qIFJlc291cmNlUmVzcG9u
c2VCYXNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdFRTY4NDcxMTJEMjZFMzgwMEU3OTQxNSAv
KiBSZXNvdXJjZVJlc3BvbnNlQ0ZOZXQuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJNTE0Qzc2NTUw
Q0U5MjM0RjAwN0VGM0NEIC8qIFJlc291cmNlUmVzcG9uc2VNYWMubW0gaW4gU291cmNlcyAqLywK
IAkJCQlBREJBRDZFRTFCQ0REOTU1MDAzODEzMjUgLyogUmVzb3VyY2VVc2FnZU92ZXJsYXkuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJQURGRTJCNTUxQkQ1RjYxMjAwREFCNDU3IC8qIFJlc291cmNl
VXNhZ2VPdmVybGF5Q29jb2EubW0gaW4gU291cmNlcyAqLywKIAkJCQlGRDMxNjBBNDEyQjAyNkY3
MDBDMUEzNTkgLyogUmV2ZXJiLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYkNvcmVTeXN0ZW1JbnRlcmZhY2VJT1MubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViQ29yZVN5c3RlbUludGVyZmFjZUlPUy5tbQppbmRl
eCA0ZTMwMzY2ZDRlYjdmYWIxODhkZTRjYWU5MGY5ZDU1MTFmOTA2ZGFiLi4zNWM3NGY1Nzc0ZTc3
MWI2NTA1MTI3NDRmNDdmMDhlZjJhZDBhNDAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9pb3MvV2ViQ29yZVN5c3RlbUludGVyZmFjZUlPUy5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9pb3MvV2ViQ29yZVN5c3RlbUludGVyZmFjZUlPUy5tbQpAQCAtMjcsNTQg
KzI3LDI3IEBACiAjaW1wb3J0ICJXZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmgiCiAKIFdFQkNPUkVf
RVhQT1JUIHZvaWQgKCp3a0NBTGF5ZXJFbnVtZXJhdGVSZWN0c0JlaW5nRHJhd25XaXRoQmxvY2sp
KENBTGF5ZXIgKiwgQ0dDb250ZXh0UmVmIGNvbnRleHQsIHZvaWQgKF5ibG9jaykoQ0dSZWN0IHJl
Y3QpKTsKLVdFQkNPUkVfRVhQT1JUIEJPT0wgKCp3a0NHQ29udGV4dEdldFNob3VsZFNtb290aEZv
bnRzKShDR0NvbnRleHRSZWYpOwogV0VCQ09SRV9FWFBPUlQgQ0dQYXR0ZXJuUmVmICgqd2tDR1Bh
dHRlcm5DcmVhdGVXaXRoSW1hZ2VBbmRUcmFuc2Zvcm0pKENHSW1hZ2VSZWYsIENHQWZmaW5lVHJh
bnNmb3JtLCBpbnQpOwogV0VCQ09SRV9FWFBPUlQgdm9pZCAoKndrQ2xlYXJHbHlwaFZlY3Rvciko
dm9pZCogZ2x5cGhzKTsKIFdFQkNPUkVfRVhQT1JUIE9TU3RhdHVzICgqd2tDb252ZXJ0Q2hhclRv
R2x5cGhzKSh2b2lkKiBzdHlsZUdyb3VwLCBjb25zdCBVbmlDaGFyKiwgdW5zaWduZWQgbnVtQ2hh
cmFjdGVycywgdm9pZCogZ2x5cGhzKTsKLVdFQkNPUkVfRVhQT1JUIE5TRGF0ZSAqKCp3a0dldE5T
VVJMUmVzcG9uc2VMYXN0TW9kaWZpZWREYXRlKShOU1VSTFJlc3BvbnNlICpyZXNwb25zZSk7CiBX
RUJDT1JFX0VYUE9SVCBib29sICgqd2tDR0NvbnRleHRJc1BERkNvbnRleHQpKENHQ29udGV4dFJl
Zik7Ci1XRUJDT1JFX0VYUE9SVCBOU1N0cmluZyogKCp3a0NvcHlOU1VSTFJlc3BvbnNlU3RhdHVz
TGluZSkoTlNVUkxSZXNwb25zZSopOwotV0VCQ09SRV9FWFBPUlQgdm9pZCAoKndrU2V0TlNVUkxS
ZXF1ZXN0U2hvdWxkQ29udGVudFNuaWZmKShOU011dGFibGVVUkxSZXF1ZXN0ICosIEJPT0wpOwog
V0VCQ09SRV9FWFBPUlQgaWQgKCp3a0NyZWF0ZU5TVVJMQ29ubmVjdGlvbkRlbGVnYXRlUHJveHkp
KHZvaWQpOwotV0VCQ09SRV9FWFBPUlQgdW5zaWduZWQgKCp3a0luaXRpYWxpemVNYXhpbXVtSFRU
UENvbm5lY3Rpb25Db3VudFBlckhvc3QpKHVuc2lnbmVkIHByZWZlcnJlZENvbm5lY3Rpb25Db3Vu
dCk7Ci1XRUJDT1JFX0VYUE9SVCBpbnQgKCp3a0dldEhUVFBSZXF1ZXN0UHJpb3JpdHkpKENGVVJM
UmVxdWVzdFJlZik7Ci1XRUJDT1JFX0VYUE9SVCB2b2lkICgqd2tTZXRIVFRQUmVxdWVzdE1heGlt
dW1Qcmlvcml0eSkoaW50IHByaW9yaXR5KTsKLVdFQkNPUkVfRVhQT1JUIHZvaWQgKCp3a1NldEhU
VFBSZXF1ZXN0UHJpb3JpdHkpKENGVVJMUmVxdWVzdFJlZiwgaW50IHByaW9yaXR5KTsKLVdFQkNP
UkVfRVhQT1JUIHZvaWQgKCp3a1NldEhUVFBSZXF1ZXN0TWluaW11bUZhc3RMYW5lUHJpb3JpdHkp
KGludCBwcmlvcml0eSk7Ci1XRUJDT1JFX0VYUE9SVCB2b2lkICgqd2tIVFRQUmVxdWVzdEVuYWJs
ZVBpcGVsaW5pbmcpKENGVVJMUmVxdWVzdFJlZik7CiBXRUJDT1JFX0VYUE9SVCB2b2lkICgqd2tT
ZXRDT05ORUNUUHJveHlGb3JTdHJlYW0pKENGUmVhZFN0cmVhbVJlZiwgQ0ZTdHJpbmdSZWYgcHJv
eHlIb3N0LCBDRk51bWJlclJlZiBwcm94eVBvcnQpOwogV0VCQ09SRV9FWFBPUlQgdm9pZCAoKndr
U2V0Q09OTkVDVFByb3h5QXV0aG9yaXphdGlvbkZvclN0cmVhbSkoQ0ZSZWFkU3RyZWFtUmVmLCBD
RlN0cmluZ1JlZiBwcm94eUF1dGhvcml6YXRpb25TdHJpbmcpOwogV0VCQ09SRV9FWFBPUlQgdm9p
ZCAoKndrU2V0Q29va2llU3RvcmFnZVByaXZhdGVCcm93c2luZ0VuYWJsZWQpKEJPT0wpOwogV0VC
Q09SRV9FWFBPUlQgQ0ZIVFRQTWVzc2FnZVJlZiAoKndrQ29weUNPTk5FQ1RQcm94eVJlc3BvbnNl
KShDRlJlYWRTdHJlYW1SZWYsIENGVVJMUmVmIHJlc3BvbnNlVVJMLCBDRlN0cmluZ1JlZiBwcm94
eUhvc3QsIENGTnVtYmVyUmVmIHByb3h5UG9ydCk7CiBXRUJDT1JFX0VYUE9SVCB2b2lkICgqd2tT
ZXRMYXllckNvbnRlbnRzU2NhbGUpKENBTGF5ZXIgKik7Ci1XRUJDT1JFX0VYUE9SVCB2b2lkICgq
d2tDRlVSTFJlcXVlc3RBbGxvd0FsbFBvc3RDYWNoaW5nKShDRlVSTFJlcXVlc3RSZWYpOwotV0VC
Q09SRV9FWFBPUlQgQ0ZBcnJheVJlZiAoKndrQ29weU5TVVJMUmVzcG9uc2VDZXJ0aWZpY2F0ZUNo
YWluKShOU1VSTFJlc3BvbnNlKik7CiBXRUJDT1JFX0VYUE9SVCBDRlN0cmluZ0VuY29kaW5nICgq
d2tHZXRXZWJEZWZhdWx0Q0ZTdHJpbmdFbmNvZGluZykodm9pZCk7CiAKLSNpZiBVU0UoQ0ZORVRX
T1JLKQotV0VCQ09SRV9FWFBPUlQgQ0ZIVFRQQ29va2llU3RvcmFnZVJlZiAoKndrR2V0RGVmYXVs
dEhUVFBDb29raWVTdG9yYWdlKSgpOwotV0VCQ09SRV9FWFBPUlQgV0tDRlVSTENyZWRlbnRpYWxS
ZWYgKCp3a0NvcHlDcmVkZW50aWFsRnJvbUNGUGVyc2lzdGVudFN0b3JhZ2UpKENGVVJMUHJvdGVj
dGlvblNwYWNlUmVmIHByb3RlY3Rpb25TcGFjZSk7Ci1XRUJDT1JFX0VYUE9SVCB2b2lkICgqd2tT
ZXRDRlVSTFJlcXVlc3RTaG91bGRDb250ZW50U25pZmYpKENGTXV0YWJsZVVSTFJlcXVlc3RSZWYs
IGJvb2wpOwotV0VCQ09SRV9FWFBPUlQgdm9pZCAoKndrU2V0UmVxdWVzdFN0b3JhZ2VTZXNzaW9u
KShDRlVSTFN0b3JhZ2VTZXNzaW9uUmVmLCBDRk11dGFibGVVUkxSZXF1ZXN0UmVmKTsKLSNlbmRp
ZgotCiBXRUJDT1JFX0VYUE9SVCBDRlVSTFN0b3JhZ2VTZXNzaW9uUmVmICgqd2tDcmVhdGVQcml2
YXRlU3RvcmFnZVNlc3Npb24pKENGU3RyaW5nUmVmKTsKIFdFQkNPUkVfRVhQT1JUIE5TVVJMUmVx
dWVzdCogKCp3a0NvcHlSZXF1ZXN0V2l0aFN0b3JhZ2VTZXNzaW9uKShDRlVSTFN0b3JhZ2VTZXNz
aW9uUmVmLCBOU1VSTFJlcXVlc3QqKTsKLVdFQkNPUkVfRVhQT1JUIENGSFRUUENvb2tpZVN0b3Jh
Z2VSZWYgKCp3a0NvcHlIVFRQQ29va2llU3RvcmFnZSkoQ0ZVUkxTdG9yYWdlU2Vzc2lvblJlZik7
CiBXRUJDT1JFX0VYUE9SVCB1bnNpZ25lZCAoKndrR2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeSko
Q0ZIVFRQQ29va2llU3RvcmFnZVJlZik7Ci1XRUJDT1JFX0VYUE9SVCB2b2lkICgqd2tTZXRIVFRQ
Q29va2llQWNjZXB0UG9saWN5KShDRkhUVFBDb29raWVTdG9yYWdlUmVmLCB1bnNpZ25lZCk7CiBX
RUJDT1JFX0VYUE9SVCBOU0FycmF5ICooKndrSFRUUENvb2tpZXMpKENGSFRUUENvb2tpZVN0b3Jh
Z2VSZWYpOwogV0VCQ09SRV9FWFBPUlQgTlNBcnJheSAqKCp3a0hUVFBDb29raWVzRm9yVVJMKShD
RkhUVFBDb29raWVTdG9yYWdlUmVmLCBOU1VSTCAqLCBOU1VSTCAqKTsKIFdFQkNPUkVfRVhQT1JU
IHZvaWQgKCp3a1NldEhUVFBDb29raWVzRm9yVVJMKShDRkhUVFBDb29raWVTdG9yYWdlUmVmLCBO
U0FycmF5ICosIE5TVVJMICosIE5TVVJMICopOwogV0VCQ09SRV9FWFBPUlQgdm9pZCAoKndrRGVs
ZXRlQWxsSFRUUENvb2tpZXMpKENGSFRUUENvb2tpZVN0b3JhZ2VSZWYpOwogV0VCQ09SRV9FWFBP
UlQgdm9pZCAoKndrRGVsZXRlSFRUUENvb2tpZSkoQ0ZIVFRQQ29va2llU3RvcmFnZVJlZiwgTlNI
VFRQQ29va2llICopOwogCi1XRUJDT1JFX0VYUE9SVCBDRlN0cmluZ1JlZiAoKndrR2V0Q0ZVUkxS
ZXNwb25zZU1JTUVUeXBlKShDRlVSTFJlc3BvbnNlUmVmKTsKLVdFQkNPUkVfRVhQT1JUIENGVVJM
UmVmICgqd2tHZXRDRlVSTFJlc3BvbnNlVVJMKShDRlVSTFJlc3BvbnNlUmVmKTsKLVdFQkNPUkVf
RVhQT1JUIENGSFRUUE1lc3NhZ2VSZWYgKCp3a0dldENGVVJMUmVzcG9uc2VIVFRQUmVzcG9uc2Up
KENGVVJMUmVzcG9uc2VSZWYpOwotV0VCQ09SRV9FWFBPUlQgQ0ZTdHJpbmdSZWYgKCp3a0NvcHlD
RlVSTFJlc3BvbnNlU3VnZ2VzdGVkRmlsZW5hbWUpKENGVVJMUmVzcG9uc2VSZWYpOwotV0VCQ09S
RV9FWFBPUlQgdm9pZCAoKndrU2V0Q0ZVUkxSZXNwb25zZU1JTUVUeXBlKShDRlVSTFJlc3BvbnNl
UmVmLCBDRlN0cmluZ1JlZiBtaW1lVHlwZSk7Ci0KIFdFQkNPUkVfRVhQT1JUIHZvaWQoKndrRGVz
dHJveVJlbmRlcmluZ1Jlc291cmNlcykodm9pZCk7CiAKIFdFQkNPUkVfRVhQT1JUIGJvb2wgKCp3
a0NhcHRpb25BcHBlYXJhbmNlSGFzVXNlclByZWZlcmVuY2VzKSh2b2lkKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViQ29yZVN5c3RlbUludGVyZmFjZS5oCmluZGV4
IDYwYjQ4OTA1NzNhZDZhODVkM2IwYTM3M2NjOGNhMjVmZjM5ZjAyMTEuLmE5ZmFjYjRmMmE5MzY1
YjllZDBmZWQ1ZTk2YTE5Yzk3MGE1YThkYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21hYy9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWFjL1dlYkNvcmVTeXN0ZW1JbnRlcmZhY2UuaApAQCAtMTIxLDcgKzEyMSw2IEBA
IGV4dGVybiAiQyIgewogZXh0ZXJuIHZvaWQgKCp3a0FkdmFuY2VEZWZhdWx0QnV0dG9uUHVsc2VB
bmltYXRpb24pKE5TQnV0dG9uQ2VsbCAqKTsKIGV4dGVybiB2b2lkICgqd2tDQUxheWVyRW51bWVy
YXRlUmVjdHNCZWluZ0RyYXduV2l0aEJsb2NrKShDQUxheWVyICosIENHQ29udGV4dFJlZiwgdm9p
ZCAoXmJsb2NrKShDR1JlY3QgcmVjdCkpOwogCi1leHRlcm4gQk9PTCAoKndrQ0dDb250ZXh0R2V0
U2hvdWxkU21vb3RoRm9udHMpKENHQ29udGV4dFJlZik7CiB0eXBlZGVmIGVudW0gewogICAgIHdr
UGF0dGVyblRpbGluZ05vRGlzdG9ydGlvbiwKICAgICB3a1BhdHRlcm5UaWxpbmdDb25zdGFudFNw
YWNpbmdNaW5pbWFsRGlzdG9ydGlvbiwKQEAgLTEzMSwyNyArMTMwLDE3IEBAIHR5cGVkZWYgZW51
bSB7CiBleHRlcm4gYm9vbCAoKndrQ0dDb250ZXh0RHJhd3NXaXRoQ29ycmVjdFNoYWRvd09mZnNl
dHMpKENHQ29udGV4dFJlZik7CiAjZW5kaWYKIGV4dGVybiBDR1BhdHRlcm5SZWYgKCp3a0NHUGF0
dGVybkNyZWF0ZVdpdGhJbWFnZUFuZFRyYW5zZm9ybSkoQ0dJbWFnZVJlZiwgQ0dBZmZpbmVUcmFu
c2Zvcm0sIGludCk7Ci1leHRlcm4gTlNTdHJpbmcqICgqd2tDb3B5TlNVUkxSZXNwb25zZVN0YXR1
c0xpbmUpKE5TVVJMUmVzcG9uc2UqKTsKLWV4dGVybiBDRkFycmF5UmVmICgqd2tDb3B5TlNVUkxS
ZXNwb25zZUNlcnRpZmljYXRlQ2hhaW4pKE5TVVJMUmVzcG9uc2UqKTsKIGV4dGVybiBDRlN0cmlu
Z0VuY29kaW5nICgqd2tHZXRXZWJEZWZhdWx0Q0ZTdHJpbmdFbmNvZGluZykodm9pZCk7CiAjaWYg
IVBMQVRGT1JNKElPUykKLWV4dGVybiB2b2lkICgqd2tEcmF3Q2Fwc0xvY2tJbmRpY2F0b3IpKENH
Q29udGV4dFJlZiwgQ0dSZWN0KTsKIGV4dGVybiB2b2lkICgqd2tEcmF3QmV6ZWxlZFRleHRBcmVh
KShOU1JlY3QsIEJPT0wgZW5hYmxlZCk7CiBleHRlcm4gdm9pZCAoKndrRHJhd0ZvY3VzUmluZyko
Q0dDb250ZXh0UmVmLCBDR0NvbG9yUmVmLCBpbnQpOwogZXh0ZXJuIGJvb2wgKCp3a0RyYXdGb2N1
c1JpbmdBdFRpbWUpKENHQ29udGV4dFJlZiwgTlNUaW1lSW50ZXJ2YWwgdGltZSk7CiBleHRlcm4g
Ym9vbCAoKndrRHJhd0NlbGxGb2N1c1JpbmdXaXRoRnJhbWVBdFRpbWUpKE5TQ2VsbCAqY2VsbCwg
TlNSZWN0IGNlbGxGcmFtZSwgTlNWaWV3ICpjb250cm9sVmlldywgTlNUaW1lSW50ZXJ2YWwgdGlt
ZSk7Ci0jZW5kaWYKLSNpZiAhUExBVEZPUk0oSU9TKQogZXh0ZXJuIHZvaWQgKCp3a0RyYXdNZWRp
YVNsaWRlclRyYWNrKShDR0NvbnRleHRSZWYgY29udGV4dCwgQ0dSZWN0IHJlY3QsIGZsb2F0IHRp
bWVMb2FkZWQsIGZsb2F0IGN1cnJlbnRUaW1lLAogICAgIGZsb2F0IGR1cmF0aW9uLCB1bnNpZ25l
ZCBzdGF0ZSk7CiBleHRlcm4gdm9pZCAoKndrRHJhd01lZGlhVUlQYXJ0KShpbnQgcGFydCwgQ0dD
b250ZXh0UmVmIGNvbnRleHQsIENHUmVjdCByZWN0LCB1bnNpZ25lZCBzdGF0ZSk7CiBleHRlcm4g
Q0ZTdHJpbmdSZWYgKCp3a1NpZ25lZFB1YmxpY0tleUFuZENoYWxsZW5nZVN0cmluZykodW5zaWdu
ZWQga2V5U2l6ZSwgQ0ZTdHJpbmdSZWYgY2hhbGxlbmdlLCBDRlN0cmluZ1JlZiBrZXlEZXNjcmlw
dGlvbik7Ci0jZW5kaWYKLSNpZiAhUExBVEZPUk0oSU9TKQogZXh0ZXJuIGRvdWJsZSAoKndrR2V0
TlNVUkxSZXNwb25zZUNhbGN1bGF0ZWRFeHBpcmF0aW9uKShOU1VSTFJlc3BvbnNlICpyZXNwb25z
ZSk7Ci0jZW5kaWYKLWV4dGVybiBOU0RhdGUgKigqd2tHZXROU1VSTFJlc3BvbnNlTGFzdE1vZGlm
aWVkRGF0ZSkoTlNVUkxSZXNwb25zZSAqcmVzcG9uc2UpOwotI2lmICFQTEFURk9STShJT1MpCiBl
eHRlcm4gQk9PTCAoKndrR2V0TlNVUkxSZXNwb25zZU11c3RSZXZhbGlkYXRlKShOU1VSTFJlc3Bv
bnNlICpyZXNwb25zZSk7CiBleHRlcm4gdm9pZCAoKndrR2V0V2hlZWxFdmVudERlbHRhcykoTlNF
dmVudCosIGZsb2F0KiBkZWx0YVgsIGZsb2F0KiBkZWx0YVksIEJPT0wqIGNvbnRpbnVvdXMpOwog
ZXh0ZXJuIFVJbnQ4ICgqd2tHZXROU0V2ZW50S2V5Q2hhcikoTlNFdmVudCAqKTsKQEAgLTE3OCwy
OCArMTY3LDE4IEBAIGV4dGVybiB1bnNpZ25lZCAoKndrUVRJbmNsdWRlT25seU1vZGVybk1lZGlh
RmlsZVR5cGVzKSh2b2lkKTsKIGV4dGVybiB2b2lkICgqd2tRVE1vdmllRGlzYWJsZUNvbXBvbmVu
dCkodWludDMyX3RbNV0pOwogZXh0ZXJuIGZsb2F0ICgqd2tRVE1vdmllTWF4VGltZUxvYWRlZCko
UVRNb3ZpZSopOwogZXh0ZXJuIE5TU3RyaW5nICooKndrUVRNb3ZpZU1heFRpbWVMb2FkZWRDaGFu
Z2VOb3RpZmljYXRpb24pKHZvaWQpOwotZXh0ZXJuIGZsb2F0ICgqd2tRVE1vdmllTWF4VGltZVNl
ZWthYmxlKShRVE1vdmllKik7CiBleHRlcm4gaW50ICgqd2tRVE1vdmllR2V0VHlwZSkoUVRNb3Zp
ZSopOwogZXh0ZXJuIEJPT0wgKCp3a1FUTW92aWVIYXNDbG9zZWRDYXB0aW9ucykoUVRNb3ZpZSop
OwogZXh0ZXJuIE5TVVJMICooKndrUVRNb3ZpZVJlc29sdmVkVVJMKShRVE1vdmllKik7CiBleHRl
cm4gdm9pZCAoKndrUVRNb3ZpZVNldFNob3dDbG9zZWRDYXB0aW9ucykoUVRNb3ZpZSosIEJPT0wp
OwogZXh0ZXJuIHZvaWQgKCp3a1FUTW92aWVTZWxlY3RQcmVmZXJyZWRBbHRlcm5hdGVzKShRVE1v
dmllKik7Ci1leHRlcm4gdm9pZCAoKndrUVRNb3ZpZVZpZXdTZXREcmF3U3luY2hyb25vdXNseSko
UVRNb3ZpZVZpZXcqLCBCT09MKTsKIGV4dGVybiBOU0FycmF5ICooKndrUVRHZXRTaXRlc0luTWVk
aWFEb3dubG9hZENhY2hlKSgpOwogZXh0ZXJuIHZvaWQgKCp3a1FUQ2xlYXJNZWRpYURvd25sb2Fk
Q2FjaGVGb3JTaXRlKShOU1N0cmluZyAqc2l0ZSk7CiBleHRlcm4gdm9pZCAoKndrUVRDbGVhck1l
ZGlhRG93bmxvYWRDYWNoZSkoKTsKLWV4dGVybiB2b2lkICgqd2tTZXRDR0ZvbnRSZW5kZXJpbmdN
b2RlKShDR0NvbnRleHRSZWYsIE5TRm9udCosIEJPT0wpOwogZXh0ZXJuIHZvaWQgKCp3a1NldENv
b2tpZVN0b3JhZ2VQcml2YXRlQnJvd3NpbmdFbmFibGVkKShCT09MKTsKIGV4dGVybiB2b2lkICgq
d2tTZXREcmFnSW1hZ2UpKE5TSW1hZ2UqLCBOU1BvaW50IG9mZnNldCk7CiAjZW5kaWYKLWV4dGVy
biB2b2lkICgqd2tTZXROU1VSTFJlcXVlc3RTaG91bGRDb250ZW50U25pZmYpKE5TTXV0YWJsZVVS
TFJlcXVlc3QgKiwgQk9PTCk7CiBleHRlcm4gYm9vbCAoKndrQ0dDb250ZXh0SXNQREZDb250ZXh0
KShDR0NvbnRleHRSZWYpOwotZXh0ZXJuIHVuc2lnbmVkICgqd2tJbml0aWFsaXplTWF4aW11bUhU
VFBDb25uZWN0aW9uQ291bnRQZXJIb3N0KSh1bnNpZ25lZCBwcmVmZXJyZWRDb25uZWN0aW9uQ291
bnQpOwotZXh0ZXJuIGludCAoKndrR2V0SFRUUFJlcXVlc3RQcmlvcml0eSkoQ0ZVUkxSZXF1ZXN0
UmVmKTsKLWV4dGVybiB2b2lkICgqd2tTZXRIVFRQUmVxdWVzdE1heGltdW1Qcmlvcml0eSkoaW50
IG1heGltdW1Qcmlvcml0eSk7Ci1leHRlcm4gdm9pZCAoKndrU2V0SFRUUFJlcXVlc3RQcmlvcml0
eSkoQ0ZVUkxSZXF1ZXN0UmVmLCBpbnQgcHJpb3JpdHkpOwotZXh0ZXJuIHZvaWQgKCp3a1NldEhU
VFBSZXF1ZXN0TWluaW11bUZhc3RMYW5lUHJpb3JpdHkpKGludCBwcmlvcml0eSk7Ci1leHRlcm4g
dm9pZCAoKndrSFRUUFJlcXVlc3RFbmFibGVQaXBlbGluaW5nKShDRlVSTFJlcXVlc3RSZWYpOwog
ZXh0ZXJuIHZvaWQgKCp3a1NldENPTk5FQ1RQcm94eUZvclN0cmVhbSkoQ0ZSZWFkU3RyZWFtUmVm
LCBDRlN0cmluZ1JlZiBwcm94eUhvc3QsIENGTnVtYmVyUmVmIHByb3h5UG9ydCk7CiBleHRlcm4g
dm9pZCAoKndrU2V0Q09OTkVDVFByb3h5QXV0aG9yaXphdGlvbkZvclN0cmVhbSkoQ0ZSZWFkU3Ry
ZWFtUmVmLCBDRlN0cmluZ1JlZiBwcm94eUF1dGhvcml6YXRpb25TdHJpbmcpOwogZXh0ZXJuIENG
SFRUUE1lc3NhZ2VSZWYgKCp3a0NvcHlDT05ORUNUUHJveHlSZXNwb25zZSkoQ0ZSZWFkU3RyZWFt
UmVmLCBDRlVSTFJlZiByZXNwb25zZVVSTCwgQ0ZTdHJpbmdSZWYgcHJveHlIb3N0LCBDRk51bWJl
clJlZiBwcm94eVBvcnQpOwpAQCAtMjQxLDM0ICsyMjAsMTUgQEAgZXh0ZXJuIENGVVJMU3RvcmFn
ZVNlc3Npb25SZWYgKCp3a0NyZWF0ZVByaXZhdGVTdG9yYWdlU2Vzc2lvbikoQ0ZTdHJpbmdSZWYp
OwogZXh0ZXJuIE5TVVJMUmVxdWVzdCogKCp3a0NvcHlSZXF1ZXN0V2l0aFN0b3JhZ2VTZXNzaW9u
KShDRlVSTFN0b3JhZ2VTZXNzaW9uUmVmLCBOU1VSTFJlcXVlc3QqKTsKIAogdHlwZWRlZiBzdHJ1
Y3QgT3BhcXVlQ0ZIVFRQQ29va2llU3RvcmFnZSogQ0ZIVFRQQ29va2llU3RvcmFnZVJlZjsKLWV4
dGVybiBDRkhUVFBDb29raWVTdG9yYWdlUmVmICgqd2tDb3B5SFRUUENvb2tpZVN0b3JhZ2UpKENG
VVJMU3RvcmFnZVNlc3Npb25SZWYpOwogZXh0ZXJuIHVuc2lnbmVkICgqd2tHZXRIVFRQQ29va2ll
QWNjZXB0UG9saWN5KShDRkhUVFBDb29raWVTdG9yYWdlUmVmKTsKLWV4dGVybiB2b2lkICgqd2tT
ZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KShDRkhUVFBDb29raWVTdG9yYWdlUmVmLCB1bnNpZ25l
ZCk7CiBleHRlcm4gTlNBcnJheSAqKCp3a0hUVFBDb29raWVzKShDRkhUVFBDb29raWVTdG9yYWdl
UmVmKTsKIGV4dGVybiBOU0FycmF5ICooKndrSFRUUENvb2tpZXNGb3JVUkwpKENGSFRUUENvb2tp
ZVN0b3JhZ2VSZWYsIE5TVVJMICosIE5TVVJMICopOwogZXh0ZXJuIHZvaWQgKCp3a1NldEhUVFBD
b29raWVzRm9yVVJMKShDRkhUVFBDb29raWVTdG9yYWdlUmVmLCBOU0FycmF5ICosIE5TVVJMICos
IE5TVVJMICopOwogZXh0ZXJuIHZvaWQgKCp3a0RlbGV0ZUhUVFBDb29raWUpKENGSFRUUENvb2tp
ZVN0b3JhZ2VSZWYsIE5TSFRUUENvb2tpZSAqKTsKIGV4dGVybiB2b2lkICgqd2tEZWxldGVBbGxI
VFRQQ29va2llcykoQ0ZIVFRQQ29va2llU3RvcmFnZVJlZik7CiAKLWV4dGVybiBDRlN0cmluZ1Jl
ZiAoKndrR2V0Q0ZVUkxSZXNwb25zZU1JTUVUeXBlKShDRlVSTFJlc3BvbnNlUmVmKTsKLWV4dGVy
biBDRlVSTFJlZiAoKndrR2V0Q0ZVUkxSZXNwb25zZVVSTCkoQ0ZVUkxSZXNwb25zZVJlZik7Ci1l
eHRlcm4gQ0ZIVFRQTWVzc2FnZVJlZiAoKndrR2V0Q0ZVUkxSZXNwb25zZUhUVFBSZXNwb25zZSko
Q0ZVUkxSZXNwb25zZVJlZik7Ci1leHRlcm4gQ0ZTdHJpbmdSZWYgKCp3a0NvcHlDRlVSTFJlc3Bv
bnNlU3VnZ2VzdGVkRmlsZW5hbWUpKENGVVJMUmVzcG9uc2VSZWYpOwotZXh0ZXJuIHZvaWQgKCp3
a1NldENGVVJMUmVzcG9uc2VNSU1FVHlwZSkoQ0ZVUkxSZXNwb25zZVJlZiwgQ0ZTdHJpbmdSZWYg
bWltZVR5cGUpOwotCi0jaWYgVVNFKENGTkVUV09SSykKLWV4dGVybiBDRkhUVFBDb29raWVTdG9y
YWdlUmVmICgqd2tHZXREZWZhdWx0SFRUUENvb2tpZVN0b3JhZ2UpKCk7Ci1leHRlcm4gV0tDRlVS
TENyZWRlbnRpYWxSZWYgKCp3a0NvcHlDcmVkZW50aWFsRnJvbUNGUGVyc2lzdGVudFN0b3JhZ2Up
KENGVVJMUHJvdGVjdGlvblNwYWNlUmVmIHByb3RlY3Rpb25TcGFjZSk7Ci1leHRlcm4gdm9pZCAo
KndrU2V0Q0ZVUkxSZXF1ZXN0U2hvdWxkQ29udGVudFNuaWZmKShDRk11dGFibGVVUkxSZXF1ZXN0
UmVmLCBib29sKTsKLWV4dGVybiB2b2lkICgqd2tTZXRSZXF1ZXN0U3RvcmFnZVNlc3Npb24pKENG
VVJMU3RvcmFnZVNlc3Npb25SZWYsIENGTXV0YWJsZVVSTFJlcXVlc3RSZWYpOwotI2VuZGlmCiAj
aWYgIVBMQVRGT1JNKElPUykKIGV4dGVybiB2b2lkICgqd2tTZXRNZXRhZGF0YVVSTCkoTlNTdHJp
bmcgKnVybFN0cmluZywgTlNTdHJpbmcgKnJlZmVycmVyLCBOU1N0cmluZyAqcGF0aCk7Ci0jZW5k
aWYKLQotZXh0ZXJuIHZvaWQgKCp3a0NGVVJMUmVxdWVzdEFsbG93QWxsUG9zdENhY2hpbmcpKENG
VVJMUmVxdWVzdFJlZik7Ci0KLSNpZiAhUExBVEZPUk0oSU9TKQogZXh0ZXJuIENHRmxvYXQgKCp3
a05TRWxhc3RpY0RlbHRhRm9yVGltZURlbHRhKShDR0Zsb2F0IGluaXRpYWxQb3NpdGlvbiwgQ0dG
bG9hdCBpbml0aWFsVmVsb2NpdHksIENHRmxvYXQgZWxhcHNlZFRpbWUpOwogZXh0ZXJuIENHRmxv
YXQgKCp3a05TRWxhc3RpY0RlbHRhRm9yUmVib3VuZERlbHRhKShDR0Zsb2F0IGRlbHRhKTsKIGV4
dGVybiBDR0Zsb2F0ICgqd2tOU1JlYm91bmREZWx0YUZvckVsYXN0aWNEZWx0YSkoQ0dGbG9hdCBk
ZWx0YSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViQ29yZVN5
c3RlbUludGVyZmFjZS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJDb3JlU3lz
dGVtSW50ZXJmYWNlLm1tCmluZGV4IDE4OGY0MTI4MTIzYTk2MDhhZGJmZmNjYmY2OWI4ZGFmMzAw
MWNiYzcuLmMzOWNjOWUyODUyYmU1OWZlMjg3ODNhZjY2MjNiZDcxODAzNGY1NzEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlLm1t
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJDb3JlU3lzdGVtSW50ZXJmYWNl
Lm1tCkBAIC0zMiwxMyArMzIsOSBAQAogCiB2b2lkICgqd2tBZHZhbmNlRGVmYXVsdEJ1dHRvblB1
bHNlQW5pbWF0aW9uKShOU0J1dHRvbkNlbGwgKik7CiB2b2lkICgqd2tDQUxheWVyRW51bWVyYXRl
UmVjdHNCZWluZ0RyYXduV2l0aEJsb2NrKShDQUxheWVyICosIENHQ29udGV4dFJlZiBjb250ZXh0
LCB2b2lkICheYmxvY2spKENHUmVjdCByZWN0KSk7Ci1CT09MICgqd2tDR0NvbnRleHRHZXRTaG91
bGRTbW9vdGhGb250cykoQ0dDb250ZXh0UmVmKTsKIGJvb2wgKCp3a0NHQ29udGV4dERyYXdzV2l0
aENvcnJlY3RTaGFkb3dPZmZzZXRzKShDR0NvbnRleHRSZWYpOwogQ0dQYXR0ZXJuUmVmICgqd2tD
R1BhdHRlcm5DcmVhdGVXaXRoSW1hZ2VBbmRUcmFuc2Zvcm0pKENHSW1hZ2VSZWYsIENHQWZmaW5l
VHJhbnNmb3JtLCBpbnQpOwotTlNTdHJpbmcqICgqd2tDb3B5TlNVUkxSZXNwb25zZVN0YXR1c0xp
bmUpKE5TVVJMUmVzcG9uc2UqKTsKLUNGQXJyYXlSZWYgKCp3a0NvcHlOU1VSTFJlc3BvbnNlQ2Vy
dGlmaWNhdGVDaGFpbikoTlNVUkxSZXNwb25zZSopOwogQ0ZTdHJpbmdFbmNvZGluZyAoKndrR2V0
V2ViRGVmYXVsdENGU3RyaW5nRW5jb2RpbmcpKHZvaWQpOwotdm9pZCAoKndrRHJhd0NhcHNMb2Nr
SW5kaWNhdG9yKShDR0NvbnRleHRSZWYsIENHUmVjdCk7CiB2b2lkICgqd2tEcmF3QmV6ZWxlZFRl
eHRBcmVhKShOU1JlY3QsIEJPT0wgZW5hYmxlZCk7CiB2b2lkICgqd2tEcmF3Rm9jdXNSaW5nKShD
R0NvbnRleHRSZWYsIENHQ29sb3JSZWYsIGludCk7CiBib29sICgqd2tEcmF3Rm9jdXNSaW5nQXRU
aW1lKShDR0NvbnRleHRSZWYsIE5TVGltZUludGVydmFsKTsKQEAgLTU0LDcgKzUwLDYgQEAgdm9p
ZCAoKndrV2luZG93U2V0QWxwaGEpKE5TV2luZG93ICosIGZsb2F0KTsKIHZvaWQgKCp3a1dpbmRv
d1NldFNjYWxlZEZyYW1lKShOU1dpbmRvdyAqLCBOU1JlY3QsIE5TUmVjdCk7CiBDRlN0cmluZ1Jl
ZiAoKndrU2lnbmVkUHVibGljS2V5QW5kQ2hhbGxlbmdlU3RyaW5nKSh1bnNpZ25lZCBrZXlTaXpl
LCBDRlN0cmluZ1JlZiBjaGFsbGVuZ2UsIENGU3RyaW5nUmVmIGtleURlc2NyaXB0aW9uKTsKIE5T
VGltZUludGVydmFsICgqd2tHZXROU1VSTFJlc3BvbnNlQ2FsY3VsYXRlZEV4cGlyYXRpb24pKE5T
VVJMUmVzcG9uc2UgKnJlc3BvbnNlKTsKLU5TRGF0ZSAqKCp3a0dldE5TVVJMUmVzcG9uc2VMYXN0
TW9kaWZpZWREYXRlKShOU1VSTFJlc3BvbnNlICpyZXNwb25zZSk7CiBCT09MICgqd2tHZXROU1VS
TFJlc3BvbnNlTXVzdFJldmFsaWRhdGUpKE5TVVJMUmVzcG9uc2UgKnJlc3BvbnNlKTsKIHZvaWQg
KCp3a0dldFdoZWVsRXZlbnREZWx0YXMpKE5TRXZlbnQqLCBmbG9hdCogZGVsdGFYLCBmbG9hdCog
ZGVsdGFZLCBCT09MKiBjb250aW51b3VzKTsKIFVJbnQ4ICgqd2tHZXROU0V2ZW50S2V5Q2hhciko
TlNFdmVudCAqKTsKQEAgLTYzLDM4ICs1OCwyMSBAQCB1bnNpZ25lZCAoKndrUVRJbmNsdWRlT25s
eU1vZGVybk1lZGlhRmlsZVR5cGVzKSh2b2lkKTsKIHZvaWQgKCp3a1FUTW92aWVEaXNhYmxlQ29t
cG9uZW50KSh1aW50MzJfdFs1XSk7CiBmbG9hdCAoKndrUVRNb3ZpZU1heFRpbWVMb2FkZWQpKFFU
TW92aWUqKTsKIE5TU3RyaW5nICooKndrUVRNb3ZpZU1heFRpbWVMb2FkZWRDaGFuZ2VOb3RpZmlj
YXRpb24pKHZvaWQpOwotZmxvYXQgKCp3a1FUTW92aWVNYXhUaW1lU2Vla2FibGUpKFFUTW92aWUq
KTsKIGludCAoKndrUVRNb3ZpZUdldFR5cGUpKFFUTW92aWUqKTsKIEJPT0wgKCp3a1FUTW92aWVI
YXNDbG9zZWRDYXB0aW9ucykoUVRNb3ZpZSopOwogTlNVUkwgKigqd2tRVE1vdmllUmVzb2x2ZWRV
UkwpKFFUTW92aWUqKTsKIHZvaWQgKCp3a1FUTW92aWVTZXRTaG93Q2xvc2VkQ2FwdGlvbnMpKFFU
TW92aWUqLCBCT09MKTsKIHZvaWQgKCp3a1FUTW92aWVTZWxlY3RQcmVmZXJyZWRBbHRlcm5hdGVz
KShRVE1vdmllKik7Ci12b2lkICgqd2tRVE1vdmllVmlld1NldERyYXdTeW5jaHJvbm91c2x5KShR
VE1vdmllVmlldyosIEJPT0wpOwogTlNBcnJheSAqKCp3a1FUR2V0U2l0ZXNJbk1lZGlhRG93bmxv
YWRDYWNoZSkoKTsKIHZvaWQgKCp3a1FUQ2xlYXJNZWRpYURvd25sb2FkQ2FjaGVGb3JTaXRlKShO
U1N0cmluZyAqc2l0ZSk7CiB2b2lkICgqd2tRVENsZWFyTWVkaWFEb3dubG9hZENhY2hlKSgpOwog
Ci12b2lkICgqd2tTZXRDR0ZvbnRSZW5kZXJpbmdNb2RlKShDR0NvbnRleHRSZWYsIE5TRm9udCos
IEJPT0wpOwogdm9pZCAoKndrU2V0RHJhZ0ltYWdlKShOU0ltYWdlKiwgTlNQb2ludCBvZmZzZXQp
OwogYm9vbCAoKndrQ0dDb250ZXh0SXNQREZDb250ZXh0KShDR0NvbnRleHRSZWYpOwotdm9pZCAo
KndrU2V0TlNVUkxSZXF1ZXN0U2hvdWxkQ29udGVudFNuaWZmKShOU011dGFibGVVUkxSZXF1ZXN0
ICosIEJPT0wpOwotdW5zaWduZWQgKCp3a0luaXRpYWxpemVNYXhpbXVtSFRUUENvbm5lY3Rpb25D
b3VudFBlckhvc3QpKHVuc2lnbmVkIHByZWZlcnJlZENvbm5lY3Rpb25Db3VudCk7Ci1pbnQgKCp3
a0dldEhUVFBSZXF1ZXN0UHJpb3JpdHkpKENGVVJMUmVxdWVzdFJlZik7Ci12b2lkICgqd2tTZXRI
VFRQUmVxdWVzdE1heGltdW1Qcmlvcml0eSkoaW50IHByaW9yaXR5KTsKLXZvaWQgKCp3a1NldEhU
VFBSZXF1ZXN0UHJpb3JpdHkpKENGVVJMUmVxdWVzdFJlZiwgaW50IHByaW9yaXR5KTsKLXZvaWQg
KCp3a1NldEhUVFBSZXF1ZXN0TWluaW11bUZhc3RMYW5lUHJpb3JpdHkpKGludCBwcmlvcml0eSk7
Ci12b2lkICgqd2tIVFRQUmVxdWVzdEVuYWJsZVBpcGVsaW5pbmcpKENGVVJMUmVxdWVzdFJlZik7
CiB2b2lkICgqd2tTZXRDT05ORUNUUHJveHlGb3JTdHJlYW0pKENGUmVhZFN0cmVhbVJlZiwgQ0ZT
dHJpbmdSZWYgcHJveHlIb3N0LCBDRk51bWJlclJlZiBwcm94eVBvcnQpOwogdm9pZCAoKndrU2V0
Q09OTkVDVFByb3h5QXV0aG9yaXphdGlvbkZvclN0cmVhbSkoQ0ZSZWFkU3RyZWFtUmVmLCBDRlN0
cmluZ1JlZiBwcm94eUF1dGhvcml6YXRpb25TdHJpbmcpOwogQ0ZIVFRQTWVzc2FnZVJlZiAoKndr
Q29weUNPTk5FQ1RQcm94eVJlc3BvbnNlKShDRlJlYWRTdHJlYW1SZWYsIENGVVJMUmVmIHJlc3Bv
bnNlVVJMLCBDRlN0cmluZ1JlZiBwcm94eUhvc3QsIENGTnVtYmVyUmVmIHByb3h5UG9ydCk7CiAK
LSNpZiBVU0UoQ0ZORVRXT1JLKQotQ0ZIVFRQQ29va2llU3RvcmFnZVJlZiAoKndrR2V0RGVmYXVs
dEhUVFBDb29raWVTdG9yYWdlKSgpOwotV0tDRlVSTENyZWRlbnRpYWxSZWYgKCp3a0NvcHlDcmVk
ZW50aWFsRnJvbUNGUGVyc2lzdGVudFN0b3JhZ2UpKENGVVJMUHJvdGVjdGlvblNwYWNlUmVmIHBy
b3RlY3Rpb25TcGFjZSk7Ci12b2lkICgqd2tTZXRDRlVSTFJlcXVlc3RTaG91bGRDb250ZW50U25p
ZmYpKENGTXV0YWJsZVVSTFJlcXVlc3RSZWYsIGJvb2wpOwotdm9pZCAoKndrU2V0UmVxdWVzdFN0
b3JhZ2VTZXNzaW9uKShDRlVSTFN0b3JhZ2VTZXNzaW9uUmVmLCBDRk11dGFibGVVUkxSZXF1ZXN0
UmVmKTsKLSNlbmRpZgotCiB2b2lkKiB3a0dldEh5cGhlbmF0aW9uTG9jYXRpb25CZWZvcmVJbmRl
eDsKIAogYm9vbCAoKndrRXhlY3V0YWJsZVdhc0xpbmtlZE9uT3JCZWZvcmVTbm93TGVvcGFyZCko
dm9pZCk7CkBAIC0xMTksMjQgKzk3LDE1IEBAIEFYVUlFbGVtZW50UmVmICgqd2tDcmVhdGVBWFVJ
RWxlbWVudFJlZikoaWQgZWxlbWVudCk7CiAKIENGVVJMU3RvcmFnZVNlc3Npb25SZWYgKCp3a0Ny
ZWF0ZVByaXZhdGVTdG9yYWdlU2Vzc2lvbikoQ0ZTdHJpbmdSZWYpOwogTlNVUkxSZXF1ZXN0KiAo
KndrQ29weVJlcXVlc3RXaXRoU3RvcmFnZVNlc3Npb24pKENGVVJMU3RvcmFnZVNlc3Npb25SZWYs
IE5TVVJMUmVxdWVzdCopOwotQ0ZIVFRQQ29va2llU3RvcmFnZVJlZiAoKndrQ29weUhUVFBDb29r
aWVTdG9yYWdlKShDRlVSTFN0b3JhZ2VTZXNzaW9uUmVmKTsKIHVuc2lnbmVkICgqd2tHZXRIVFRQ
Q29va2llQWNjZXB0UG9saWN5KShDRkhUVFBDb29raWVTdG9yYWdlUmVmKTsKLXZvaWQgKCp3a1Nl
dEhUVFBDb29raWVBY2NlcHRQb2xpY3kpKENGSFRUUENvb2tpZVN0b3JhZ2VSZWYsIHVuc2lnbmVk
KTsKIE5TQXJyYXkgKigqd2tIVFRQQ29va2llcykoQ0ZIVFRQQ29va2llU3RvcmFnZVJlZik7CiBO
U0FycmF5ICooKndrSFRUUENvb2tpZXNGb3JVUkwpKENGSFRUUENvb2tpZVN0b3JhZ2VSZWYsIE5T
VVJMICosIE5TVVJMICopOwogdm9pZCAoKndrU2V0SFRUUENvb2tpZXNGb3JVUkwpKENGSFRUUENv
b2tpZVN0b3JhZ2VSZWYsIE5TQXJyYXkgKiwgTlNVUkwgKiwgTlNVUkwgKik7CiB2b2lkICgqd2tE
ZWxldGVBbGxIVFRQQ29va2llcykoQ0ZIVFRQQ29va2llU3RvcmFnZVJlZik7CiB2b2lkICgqd2tE
ZWxldGVIVFRQQ29va2llKShDRkhUVFBDb29raWVTdG9yYWdlUmVmLCBOU0hUVFBDb29raWUgKik7
CiAKLUNGU3RyaW5nUmVmICgqd2tHZXRDRlVSTFJlc3BvbnNlTUlNRVR5cGUpKENGVVJMUmVzcG9u
c2VSZWYpOwotQ0ZVUkxSZWYgKCp3a0dldENGVVJMUmVzcG9uc2VVUkwpKENGVVJMUmVzcG9uc2VS
ZWYpOwotQ0ZIVFRQTWVzc2FnZVJlZiAoKndrR2V0Q0ZVUkxSZXNwb25zZUhUVFBSZXNwb25zZSko
Q0ZVUkxSZXNwb25zZVJlZik7Ci1DRlN0cmluZ1JlZiAoKndrQ29weUNGVVJMUmVzcG9uc2VTdWdn
ZXN0ZWRGaWxlbmFtZSkoQ0ZVUkxSZXNwb25zZVJlZik7Ci12b2lkICgqd2tTZXRDRlVSTFJlc3Bv
bnNlTUlNRVR5cGUpKENGVVJMUmVzcG9uc2VSZWYsIENGU3RyaW5nUmVmIG1pbWVUeXBlKTsKIHZv
aWQgKCp3a1NldE1ldGFkYXRhVVJMKShOU1N0cmluZyAqdXJsU3RyaW5nLCBOU1N0cmluZyAqcmVm
ZXJyZXIsIE5TU3RyaW5nICpwYXRoKTsKIAotdm9pZCAoKndrQ0ZVUkxSZXF1ZXN0QWxsb3dBbGxQ
b3N0Q2FjaGluZykoQ0ZVUkxSZXF1ZXN0UmVmKTsKLQogI2lmICFQTEFURk9STShJT1MpCiBDR0Zs
b2F0ICgqd2tOU0VsYXN0aWNEZWx0YUZvclRpbWVEZWx0YSkoQ0dGbG9hdCBpbml0aWFsUG9zaXRp
b24sIENHRmxvYXQgaW5pdGlhbFZlbG9jaXR5LCBDR0Zsb2F0IGVsYXBzZWRUaW1lKTsKIENHRmxv
YXQgKCp3a05TRWxhc3RpY0RlbHRhRm9yUmVib3VuZERlbHRhKShDR0Zsb2F0IGRlbHRhKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0b3JhZ2VT
ZXNzaW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdl
U2Vzc2lvbi5oCmluZGV4IDliZmZkMGEwYjBkOTAzZWMyMWZhNGZiMmE4YTFmNGVkZTRiZjQyNWEu
LmQ5ZTM4ZDAxM2MyZjNiZDlkY2U3MzIxYzg3YWY3N2IzYmY1YmQzYzggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Npb24u
aApAQCAtMzIsOCArMzIsNyBAQAogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiAj
aWYgUExBVEZPUk0oQ09DT0EpIHx8IFVTRShDRk5FVFdPUkspCi10eXBlZGVmIGNvbnN0IHN0cnVj
dCBfX0NGVVJMU3RvcmFnZVNlc3Npb24qIENGVVJMU3RvcmFnZVNlc3Npb25SZWY7Ci10eXBlZGVm
IHN0cnVjdCBPcGFxdWVDRkhUVFBDb29raWVTdG9yYWdlKiAgQ0ZIVFRQQ29va2llU3RvcmFnZVJl
ZjsKKyNpbmNsdWRlICJDRk5ldHdvcmtTUEkuaCIKICNlbmRpZgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL0NyZWRl
bnRpYWxTdG9yYWdlQ0ZOZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9j
Zi9DcmVkZW50aWFsU3RvcmFnZUNGTmV0LmNwcAppbmRleCA1NjA5MjU5N2FhY2NkMjc3M2Y2OThi
MzViZDRmYzcxNTg3MmM0MGU0Li41OWZlYTUzYzUzZTQ5NjdkMGVhODkzYjkyNWQ3MDYxNTBjYTVl
ZWU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL0NyZWRl
bnRpYWxTdG9yYWdlQ0ZOZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvY2YvQ3JlZGVudGlhbFN0b3JhZ2VDRk5ldC5jcHAKQEAgLTI5LDYgKzI5LDcgQEAKICNpZiBV
U0UoQ0ZORVRXT1JLKQogCiAjaW5jbHVkZSAiQXV0aGVudGljYXRpb25DRi5oIgorI2luY2x1ZGUg
IkNGTmV0d29ya1NQSS5oIgogI2luY2x1ZGUgIkNyZWRlbnRpYWwuaCIKICNpbmNsdWRlICJQcm90
ZWN0aW9uU3BhY2UuaCIKICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CkBAIC00NCwxNSArNDUs
MjEgQEAKICNlbmRpZgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CisgICAgCitzdGF0aWMgaW5saW5l
IENGVVJMQ3JlZGVudGlhbFJlZiBjb3B5Q3JlZGVudGlhbEZyb21Qcm90ZWN0aW9uU3BhY2UoQ0ZV
UkxQcm90ZWN0aW9uU3BhY2VSZWYgcHJvdGVjdGlvblNwYWNlKQoreworICAgIGF1dG8gc3RvcmFn
ZSA9IGFkb3B0Q0YoQ0ZVUkxDcmVkZW50aWFsU3RvcmFnZUNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZh
dWx0KSk7CisgICAgcmV0dXJuIENGVVJMQ3JlZGVudGlhbFN0b3JhZ2VDb3B5RGVmYXVsdENyZWRl
bnRpYWxGb3JQcm90ZWN0aW9uU3BhY2Uoc3RvcmFnZS5nZXQoKSwgcHJvdGVjdGlvblNwYWNlKTsK
K30KIAogQ3JlZGVudGlhbCBDcmVkZW50aWFsU3RvcmFnZTo6Z2V0RnJvbVBlcnNpc3RlbnRTdG9y
YWdlKGNvbnN0IFByb3RlY3Rpb25TcGFjZSYgcHJvdGVjdGlvblNwYWNlKQogewogI2lmIFBMQVRG
T1JNKENPQ09BKQotICAgIFJldGFpblB0cjxDRlVSTENyZWRlbnRpYWxSZWY+IGNyZWRlbnRpYWxD
RiA9IGFkb3B0Q0Yod2tDb3B5Q3JlZGVudGlhbEZyb21DRlBlcnNpc3RlbnRTdG9yYWdlKHByb3Rl
Y3Rpb25TcGFjZS5jZlNwYWNlKCkpKTsKKyAgICBhdXRvIGNyZWRlbnRpYWxDRiA9IGFkb3B0Q0Yo
Y29weUNyZWRlbnRpYWxGcm9tUHJvdGVjdGlvblNwYWNlKHByb3RlY3Rpb25TcGFjZS5jZlNwYWNl
KCkpKTsKICAgICByZXR1cm4gQ3JlZGVudGlhbChjcmVkZW50aWFsQ0YuZ2V0KCkpOwogI2Vsc2UK
LSAgICBSZXRhaW5QdHI8Q0ZVUkxQcm90ZWN0aW9uU3BhY2VSZWY+IHByb3RlY3Rpb25TcGFjZUNG
ID0gYWRvcHRDRihjcmVhdGVDRihwcm90ZWN0aW9uU3BhY2UpKTsKLSAgICBSZXRhaW5QdHI8Q0ZV
UkxDcmVkZW50aWFsUmVmPiBjcmVkZW50aWFsQ0YgPSBhZG9wdENGKHdrQ29weUNyZWRlbnRpYWxG
cm9tQ0ZQZXJzaXN0ZW50U3RvcmFnZShwcm90ZWN0aW9uU3BhY2VDRi5nZXQoKSkpOworICAgIGF1
dG8gcHJvdGVjdGlvblNwYWNlQ0YgPSBhZG9wdENGKGNyZWF0ZUNGKHByb3RlY3Rpb25TcGFjZSkp
OworICAgIGF1dG8gY3JlZGVudGlhbENGID0gYWRvcHRDRihjb3B5Q3JlZGVudGlhbEZyb21Qcm90
ZWN0aW9uU3BhY2UocHJvdGVjdGlvblNwYWNlQ0YuZ2V0KCkpKTsKICAgICByZXR1cm4gY29yZShj
cmVkZW50aWFsQ0YuZ2V0KCkpOwogI2VuZGlmCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkNGTmV0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvTmV0d29ya1N0b3JhZ2VTZXNzaW9uQ0ZO
ZXQuY3BwCmluZGV4IDRlZmRmNzJhM2QxN2VjZjUzODdhNTMyOGQzMGNkMmM2ZjRmNDI0YzYuLjY3
NjdhZDIzMDAwMWVjYjQxNWQwMjg2NTY3MGYwMmQwYmEzNTA4NDggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvTmV0d29ya1N0b3JhZ2VTZXNzaW9uQ0ZOZXQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvTmV0d29ya1N0b3Jh
Z2VTZXNzaW9uQ0ZOZXQuY3BwCkBAIC04NCwxMCArODQsMTAgQEAgc3RkOjp1bmlxdWVfcHRyPE5l
dHdvcmtTdG9yYWdlU2Vzc2lvbj4gTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpjcmVhdGVQcml2YXRl
QnJvd3MKIFJldGFpblB0cjxDRkhUVFBDb29raWVTdG9yYWdlUmVmPiBOZXR3b3JrU3RvcmFnZVNl
c3Npb246OmNvb2tpZVN0b3JhZ2UoKSBjb25zdAogewogICAgIGlmIChtX3BsYXRmb3JtU2Vzc2lv
bikKLSAgICAgICAgcmV0dXJuIGFkb3B0Q0Yod2tDb3B5SFRUUENvb2tpZVN0b3JhZ2UobV9wbGF0
Zm9ybVNlc3Npb24uZ2V0KCkpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0Q0YoX0NGVVJMU3RvcmFn
ZVNlc3Npb25Db3B5Q29va2llU3RvcmFnZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBtX3BsYXRmb3Jt
U2Vzc2lvbi5nZXQoKSkpOwogCiAjaWYgVVNFKENGTkVUV09SSykKLSAgICByZXR1cm4gd2tHZXRE
ZWZhdWx0SFRUUENvb2tpZVN0b3JhZ2UoKTsKKyAgICByZXR1cm4gX0NGSFRUUENvb2tpZVN0b3Jh
Z2VHZXREZWZhdWx0KGtDRkFsbG9jYXRvckRlZmF1bHQpOwogI2Vsc2UKICAgICAvLyBXaGVuIHVz
aW5nIE5TVVJMQ29ubmVjdGlvbiwgd2UgYWxzbyB1c2UgaXRzIHNoYXJlZCBjb29raWUgc3RvcmFn
ZS4KICAgICByZXR1cm4gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVDRk5ldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZOZXQuY3BwCmluZGV4IDVjMTQyMDdkNDFhYTM2
Zjc5MGJlZWM3YzMzZjQ3YmYyYTdjN2QyNTEuLmNlM2IxZjNiOGVkYzQxZjEzNjliNTM3YTc0MmVl
OTE5ODNlOWFmN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
Y2YvUmVzb3VyY2VIYW5kbGVDRk5ldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGTmV0LmNwcApAQCAtMTQ3LDExICsxNDcsMTIgQEAg
dm9pZCBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlQ0ZVUkxDb25uZWN0aW9uKGJvb2wgc2hvdWxkVXNl
Q3JlZGVudGlhbFN0b3JhZ2UsIGJvb2wKICAgICAgICAgYXBwbHlCYXNpY0F1dGhvcml6YXRpb25I
ZWFkZXIoZmlyc3RSZXF1ZXN0KCksIGQtPm1faW5pdGlhbENyZWRlbnRpYWwpOwogICAgIH0KIAot
ICAgIFJldGFpblB0cjxDRk11dGFibGVVUkxSZXF1ZXN0UmVmPiByZXF1ZXN0ID0gYWRvcHRDRihD
RlVSTFJlcXVlc3RDcmVhdGVNdXRhYmxlQ29weShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBmaXJzdFJl
cXVlc3QoKS5jZlVSTFJlcXVlc3QoVXBkYXRlSFRUUEJvZHkpKSk7Ci0gICAgd2tTZXRSZXF1ZXN0
U3RvcmFnZVNlc3Npb24oZC0+bV9zdG9yYWdlU2Vzc2lvbi5nZXQoKSwgcmVxdWVzdC5nZXQoKSk7
CisgICAgYXV0byByZXF1ZXN0ID0gYWRvcHRDRihDRlVSTFJlcXVlc3RDcmVhdGVNdXRhYmxlQ29w
eShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBmaXJzdFJlcXVlc3QoKS5jZlVSTFJlcXVlc3QoVXBkYXRl
SFRUUEJvZHkpKSk7CisgICAgaWYgKGF1dG8gc3RvcmFnZVNlc3Npb24gPSBkLT5tX3N0b3JhZ2VT
ZXNzaW9uLmdldCgpKQorICAgICAgICBfQ0ZVUkxSZXF1ZXN0U2V0U3RvcmFnZVNlc3Npb24ocmVx
dWVzdC5nZXQoKSwgc3RvcmFnZVNlc3Npb24pOwogICAgIAogICAgIGlmICghc2hvdWxkQ29udGVu
dFNuaWZmKQotICAgICAgICB3a1NldENGVVJMUmVxdWVzdFNob3VsZENvbnRlbnRTbmlmZihyZXF1
ZXN0LmdldCgpLCBmYWxzZSk7CisgICAgICAgIF9DRlVSTFJlcXVlc3RTZXRQcm90b2NvbFByb3Bl
cnR5KHJlcXVlc3QuZ2V0KCksIF9rQ0ZVUkxDb25uZWN0aW9uUHJvcGVydHlTaG91bGRTbmlmZiwg
a0NGQm9vbGVhbkZhbHNlKTsKIAogICAgIFJldGFpblB0cjxDRk11dGFibGVEaWN0aW9uYXJ5UmVm
PiBzc2xQcm9wczsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9jZi9SZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25E
ZWxlZ2F0ZS5jcHAKaW5kZXggNGY3YTc5MjlmMWIxMWQ4ODRkOGQwNDc2ODIxMTJhZGI2NmU5YmJk
NS4uMjgxYTdiNjJlYmQ5NjJmOTA1MmIzNDM3M2Y4OGJmY2ViYmY5ZGZlNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGVVJMQ29u
bmVjdGlvbkRlbGVnYXRlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L2NmL1Jlc291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGUuY3BwCkBAIC0xNTgsOCAr
MTU4LDkgQEAgUmVzb3VyY2VSZXF1ZXN0IFJlc291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVs
ZWdhdGU6OmNyZWF0ZVJlc291cmNlUmVxdWVzdChDRlUKICAgICAgICAgUmV0YWluUHRyPENGU3Ry
aW5nUmVmPiBsYXN0SFRUUE1ldGhvZCA9IG1faGFuZGxlLT5sYXN0SFRUUE1ldGhvZCgpLmNyZWF0
ZUNGU3RyaW5nKCk7CiAgICAgICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gbmV3TWV0aG9kID0g
YWRvcHRDRihDRlVSTFJlcXVlc3RDb3B5SFRUUFJlcXVlc3RNZXRob2QoY2ZSZXF1ZXN0KSk7CiAg
ICAgICAgIGlmIChDRlN0cmluZ0NvbXBhcmVXaXRoT3B0aW9ucyhsYXN0SFRUUE1ldGhvZC5nZXQo
KSwgbmV3TWV0aG9kLmdldCgpLCBDRlJhbmdlTWFrZSgwLCBDRlN0cmluZ0dldExlbmd0aChsYXN0
SFRUUE1ldGhvZC5nZXQoKSkpLCBrQ0ZDb21wYXJlQ2FzZUluc2Vuc2l0aXZlKSkgewotICAgICAg
ICAgICAgUmV0YWluUHRyPENGTXV0YWJsZVVSTFJlcXVlc3RSZWY+IG11dGFibGVSZXF1ZXN0ID0g
YWRvcHRDRihDRlVSTFJlcXVlc3RDcmVhdGVNdXRhYmxlQ29weSgwLCBjZlJlcXVlc3QpKTsKLSAg
ICAgICAgICAgIHdrU2V0UmVxdWVzdFN0b3JhZ2VTZXNzaW9uKG1faGFuZGxlLT5zdG9yYWdlU2Vz
c2lvbigpLCBtdXRhYmxlUmVxdWVzdC5nZXQoKSk7CisgICAgICAgICAgICBhdXRvIG11dGFibGVS
ZXF1ZXN0ID0gYWRvcHRDRihDRlVSTFJlcXVlc3RDcmVhdGVNdXRhYmxlQ29weShrQ0ZBbGxvY2F0
b3JEZWZhdWx0LCBjZlJlcXVlc3QpKTsKKyAgICAgICAgICAgIGlmIChhdXRvIHN0b3JhZ2VTZXNz
aW9uID0gbV9oYW5kbGUtPnN0b3JhZ2VTZXNzaW9uKCkpCisgICAgICAgICAgICAgICAgX0NGVVJM
UmVxdWVzdFNldFN0b3JhZ2VTZXNzaW9uKG11dGFibGVSZXF1ZXN0LmdldCgpLCBzdG9yYWdlU2Vz
c2lvbik7CiAgICAgICAgICAgICBDRlVSTFJlcXVlc3RTZXRIVFRQUmVxdWVzdE1ldGhvZChtdXRh
YmxlUmVxdWVzdC5nZXQoKSwgbGFzdEhUVFBNZXRob2QuZ2V0KCkpOwogCiAgICAgICAgICAgICBG
b3JtRGF0YSogYm9keSA9IG1faGFuZGxlLT5maXJzdFJlcXVlc3QoKS5odHRwQm9keSgpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRs
ZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlV2l0aE9wZXJhdGlvblF1ZXVlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25E
ZWxlZ2F0ZVdpdGhPcGVyYXRpb25RdWV1ZS5jcHAKaW5kZXggZDA2MmE1NDhkNzE2ZDhlZDhhOWNh
ZDc2MjcwMmI1ZTkzNzcyZTM0MS4uOWYwZDZhZmM5ODQ3ZmUyYWM1NGQ3ZjZkZTA0YWViYTRjOTI2
ZTFlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNv
dXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlV2l0aE9wZXJhdGlvblF1ZXVlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZV
UkxDb25uZWN0aW9uRGVsZWdhdGVXaXRoT3BlcmF0aW9uUXVldWUuY3BwCkBAIC0zMCwxMiArMzAs
MTIgQEAKIAogI2luY2x1ZGUgIkF1dGhlbnRpY2F0aW9uQ0YuaCIKICNpbmNsdWRlICJBdXRoZW50
aWNhdGlvbkNoYWxsZW5nZS5oIgorI2luY2x1ZGUgIkNGTmV0d29ya1NQSS5oIgogI2luY2x1ZGUg
IkxvZ2dpbmcuaCIKICNpbmNsdWRlICJSZXNvdXJjZUhhbmRsZS5oIgogI2luY2x1ZGUgIlJlc291
cmNlSGFuZGxlQ2xpZW50LmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VSZXNwb25zZS5oIgogI2luY2x1
ZGUgIlNoYXJlZEJ1ZmZlci5oIgotI2luY2x1ZGUgIldlYkNvcmVTeXN0ZW1JbnRlcmZhY2UuaCIK
ICNpbmNsdWRlICJXZWJDb3JlVVJMUmVzcG9uc2UuaCIKICNpbmNsdWRlIDx3dGYvTWFpblRocmVh
ZC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KQEAgLTE0MCw3ICsxNDAsNyBAQCB2
b2lkIFJlc291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGVXaXRoT3BlcmF0aW9uUXVl
dWU6OmRpZFJlY2VpdmVSZXNwb25zZQogICAgICAgICBMT0coTmV0d29yaywgIkNGTmV0IC0gUmVz
b3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZVdpdGhPcGVyYXRpb25RdWV1ZTo6ZGlk
UmVjZWl2ZVJlc3BvbnNlKGhhbmRsZT0lcCkgKCVzKSIsIG1faGFuZGxlLCBtX2hhbmRsZS0+Zmly
c3RSZXF1ZXN0KCkudXJsKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CiAKICAgICAgICAgLy8g
QXZvaWQgTUlNRSB0eXBlIHNuaWZmaW5nIGlmIHRoZSByZXNwb25zZSBjb21lcyBiYWNrIGFzIDMw
NCBOb3QgTW9kaWZpZWQuCi0gICAgICAgIENGSFRUUE1lc3NhZ2VSZWYgbXNnID0gd2tHZXRDRlVS
TFJlc3BvbnNlSFRUUFJlc3BvbnNlKGNmUmVzcG9uc2UpOworICAgICAgICBhdXRvIG1zZyA9IENG
VVJMUmVzcG9uc2VHZXRIVFRQUmVzcG9uc2UoY2ZSZXNwb25zZSk7CiAgICAgICAgIGludCBzdGF0
dXNDb2RlID0gbXNnID8gQ0ZIVFRQTWVzc2FnZUdldFJlc3BvbnNlU3RhdHVzQ29kZShtc2cpIDog
MDsKIAogICAgICAgICBpZiAoc3RhdHVzQ29kZSAhPSAzMDQpCkBAIC0xNDgsNyArMTQ4LDcgQEAg
dm9pZCBSZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlV2l0aE9wZXJhdGlvblF1
ZXVlOjpkaWRSZWNlaXZlUmVzcG9uc2UKIAogI2lmICFQTEFURk9STShJT1MpCiAgICAgICAgIGlm
IChfQ0ZVUkxSZXF1ZXN0Q29weVByb3RvY29sUHJvcGVydHlGb3JLZXkobV9oYW5kbGUtPmZpcnN0
UmVxdWVzdCgpLmNmVVJMUmVxdWVzdChEb05vdFVwZGF0ZUhUVFBCb2R5KSwgQ0ZTVFIoIkZvcmNl
SFRNTE1JTUVUeXBlIikpKQotICAgICAgICAgICAgd2tTZXRDRlVSTFJlc3BvbnNlTUlNRVR5cGUo
Y2ZSZXNwb25zZSwgQ0ZTVFIoInRleHQvaHRtbCIpKTsKKyAgICAgICAgICAgIENGVVJMUmVzcG9u
c2VTZXRNSU1FVHlwZShjZlJlc3BvbnNlLCBDRlNUUigidGV4dC9odG1sIikpOwogI2VuZGlmIC8v
ICFQTEFURk9STShJT1MpCiAgICAgICAgIAogICAgICAgICBSZXNvdXJjZVJlc3BvbnNlIHJlc291
cmNlUmVzcG9uc2UoY2ZSZXNwb25zZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlUmVxdWVzdENGTmV0LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VSZXF1ZXN0Q0ZOZXQuY3BwCmluZGV4IGE0ZDQz
ZGYzYzBhNDI4ZjE3MDYxODJlOGE4YWFiYzA1ZGRhMjNhOWUuLjE5NDU1MjVkOGEwYzNkNWQwZmIx
YWM4MmYzM2RiMzE3M2UwMjIyNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvY2YvUmVzb3VyY2VSZXF1ZXN0Q0ZOZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VSZXF1ZXN0Q0ZOZXQuY3BwCkBAIC0yNiw2ICsy
Niw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VSZXF1ZXN0Q0ZO
ZXQuaCIKIAorI2luY2x1ZGUgIkNGTmV0d29ya1NQSS5oIgogI2luY2x1ZGUgIkhUVFBIZWFkZXJO
YW1lcy5oIgogI2luY2x1ZGUgIlJlc291cmNlUmVxdWVzdC5oIgogCkBAIC0zOSwxMCArNDAsNiBA
QAogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KICNlbmRpZgogCi0jaWYgUExBVEZPUk0o
SU9TKQotI2luY2x1ZGUgIkNGTmV0d29ya0Nvbm5lY3Rpb25DYWNoZVNQSS5oIgotI2VuZGlmCi0K
ICNpZiBQTEFURk9STShDT0NPQSkKICNpbmNsdWRlICJSZXNvdXJjZUxvYWRQcmlvcml0eS5oIgog
I2luY2x1ZGUgIldlYkNvcmVTeXN0ZW1JbnRlcmZhY2UuaCIKQEAgLTE1NCwxMyArMTUxLDEzIEBA
IHZvaWQgUmVzb3VyY2VSZXF1ZXN0Ojpkb1VwZGF0ZVBsYXRmb3JtUmVxdWVzdCgpCiAgICAgQ0ZV
UkxSZXF1ZXN0U2V0SFRUUFJlcXVlc3RNZXRob2QoY2ZSZXF1ZXN0LCBodHRwTWV0aG9kKCkuY3Jl
YXRlQ0ZTdHJpbmcoKS5nZXQoKSk7CiAKICAgICBpZiAoaHR0cFBpcGVsaW5pbmdFbmFibGVkKCkp
Ci0gICAgICAgIHdrSFRUUFJlcXVlc3RFbmFibGVQaXBlbGluaW5nKGNmUmVxdWVzdCk7CisgICAg
ICAgIENGVVJMUmVxdWVzdFNldFNob3VsZFBpcGVsaW5lSFRUUChjZlJlcXVlc3QsIHRydWUsIHRy
dWUpOwogCiAgICAgaWYgKHJlc291cmNlUHJpb3JpdGllc0VuYWJsZWQoKSkKLSAgICAgICAgd2tT
ZXRIVFRQUmVxdWVzdFByaW9yaXR5KGNmUmVxdWVzdCwgdG9QbGF0Zm9ybVJlcXVlc3RQcmlvcml0
eShwcmlvcml0eSgpKSk7CisgICAgICAgIENGVVJMUmVxdWVzdFNldFJlcXVlc3RQcmlvcml0eShj
ZlJlcXVlc3QsIHRvUGxhdGZvcm1SZXF1ZXN0UHJpb3JpdHkocHJpb3JpdHkoKSkpOwogCiAjaWYg
IVBMQVRGT1JNKFdJTikKLSAgICB3a0NGVVJMUmVxdWVzdEFsbG93QWxsUG9zdENhY2hpbmcoY2ZS
ZXF1ZXN0KTsKKyAgICBfQ0ZVUkxSZXF1ZXN0U2V0UHJvdG9jb2xQcm9wZXJ0eShjZlJlcXVlc3Qs
IGtDRlVSTFJlcXVlc3RBbGxvd0FsbFBPU1RDYWNoaW5nLCBrQ0ZCb29sZWFuVHJ1ZSk7CiAjZW5k
aWYKIAogICAgIHNldEhlYWRlckZpZWxkcyhjZlJlcXVlc3QsIGh0dHBIZWFkZXJGaWVsZHMoKSk7
CkBAIC0yNjEsNyArMjU4LDcgQEAgdm9pZCBSZXNvdXJjZVJlcXVlc3Q6OmRvVXBkYXRlUmVzb3Vy
Y2VSZXF1ZXN0KCkKICAgICBtX2FsbG93Q29va2llcyA9IENGVVJMUmVxdWVzdFNob3VsZEhhbmRs
ZUhUVFBDb29raWVzKG1fY2ZSZXF1ZXN0LmdldCgpKTsKIAogICAgIGlmIChyZXNvdXJjZVByaW9y
aXRpZXNFbmFibGVkKCkpCi0gICAgICAgIG1fcHJpb3JpdHkgPSB0b1Jlc291cmNlTG9hZFByaW9y
aXR5KHdrR2V0SFRUUFJlcXVlc3RQcmlvcml0eShtX2NmUmVxdWVzdC5nZXQoKSkpOworICAgICAg
ICBtX3ByaW9yaXR5ID0gdG9SZXNvdXJjZUxvYWRQcmlvcml0eShDRlVSTFJlcXVlc3RHZXRSZXF1
ZXN0UHJpb3JpdHkobV9jZlJlcXVlc3QuZ2V0KCkpKTsKIAogICAgIG1faHR0cEhlYWRlckZpZWxk
cy5jbGVhcigpOwogICAgIGlmIChDRkRpY3Rpb25hcnlSZWYgaGVhZGVycyA9IENGVVJMUmVxdWVz
dENvcHlBbGxIVFRQSGVhZGVyRmllbGRzKG1fY2ZSZXF1ZXN0LmdldCgpKSkgewpAQCAtMzE2LDgg
KzMxMyw5IEBAIHZvaWQgUmVzb3VyY2VSZXF1ZXN0OjpzZXRTdG9yYWdlU2Vzc2lvbihDRlVSTFN0
b3JhZ2VTZXNzaW9uUmVmIHN0b3JhZ2VTZXNzaW9uKQogewogICAgIHVwZGF0ZVBsYXRmb3JtUmVx
dWVzdCgpOwogCi0gICAgQ0ZNdXRhYmxlVVJMUmVxdWVzdFJlZiBjZlJlcXVlc3QgPSBDRlVSTFJl
cXVlc3RDcmVhdGVNdXRhYmxlQ29weSgwLCBtX2NmUmVxdWVzdC5nZXQoKSk7Ci0gICAgd2tTZXRS
ZXF1ZXN0U3RvcmFnZVNlc3Npb24oc3RvcmFnZVNlc3Npb24sIGNmUmVxdWVzdCk7CisgICAgYXV0
byBjZlJlcXVlc3QgPSBDRlVSTFJlcXVlc3RDcmVhdGVNdXRhYmxlQ29weSgwLCBtX2NmUmVxdWVz
dC5nZXQoKSk7CisgICAgaWYgKHN0b3JhZ2VTZXNzaW9uKQorICAgICAgICBfQ0ZVUkxSZXF1ZXN0
U2V0U3RvcmFnZVNlc3Npb24oY2ZSZXF1ZXN0LCBzdG9yYWdlU2Vzc2lvbik7CiAgICAgbV9jZlJl
cXVlc3QgPSBhZG9wdENGKGNmUmVxdWVzdCk7CiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgY2xl
YXJPclVwZGF0ZU5TVVJMUmVxdWVzdCgpOwpAQCAtMzkxLDcgKzM4OSw4IEBAIHVuc2lnbmVkIGlu
aXRpYWxpemVNYXhpbXVtSFRUUENvbm5lY3Rpb25Db3VudFBlckhvc3QoKQogICAgIHN0YXRpYyBj
b25zdCB1bnNpZ25lZCBwcmVmZXJyZWRDb25uZWN0aW9uQ291bnQgPSA2OwogICAgIHN0YXRpYyBj
b25zdCB1bnNpZ25lZCB1bmxpbWl0ZWRSZXF1ZXN0Q291bnQgPSAxMDAwMDsKIAotICAgIHVuc2ln
bmVkIG1heGltdW1IVFRQQ29ubmVjdGlvbkNvdW50UGVySG9zdCA9IHdrSW5pdGlhbGl6ZU1heGlt
dW1IVFRQQ29ubmVjdGlvbkNvdW50UGVySG9zdChwcmVmZXJyZWRDb25uZWN0aW9uQ291bnQpOwor
ICAgIF9DRk5ldHdvcmtIVFRQQ29ubmVjdGlvbkNhY2hlU2V0TGltaXQoa0hUVFBMb2FkV2lkdGgs
IHByZWZlcnJlZENvbm5lY3Rpb25Db3VudCk7CisgICAgdW5zaWduZWQgbWF4aW11bUhUVFBDb25u
ZWN0aW9uQ291bnRQZXJIb3N0ID0gX0NGTmV0d29ya0hUVFBDb25uZWN0aW9uQ2FjaGVHZXRMaW1p
dChrSFRUUExvYWRXaWR0aCk7CiAKICAgICBCb29sZWFuIGtleUV4aXN0c0FuZEhhc1ZhbGlkRm9y
bWF0ID0gZmFsc2U7CiAgICAgQm9vbGVhbiBwcmVmVmFsdWUgPSBDRlByZWZlcmVuY2VzR2V0QXBw
Qm9vbGVhblZhbHVlKENGU1RSKCJXZWJLaXRFbmFibGVIVFRQUGlwZWxpbmluZyIpLCBrQ0ZQcmVm
ZXJlbmNlc0N1cnJlbnRBcHBsaWNhdGlvbiwgJmtleUV4aXN0c0FuZEhhc1ZhbGlkRm9ybWF0KTsK
QEAgLTQwMiwxMCArNDAxLDEwIEBAIHVuc2lnbmVkIGluaXRpYWxpemVNYXhpbXVtSFRUUENvbm5l
Y3Rpb25Db3VudFBlckhvc3QoKQogICAgIGlmICghUmVzb3VyY2VSZXF1ZXN0OjpyZXNvdXJjZVBy
aW9yaXRpZXNFbmFibGVkKCkpCiAgICAgICAgIHJldHVybiBtYXhpbXVtSFRUUENvbm5lY3Rpb25D
b3VudFBlckhvc3Q7CiAKLSAgICB3a1NldEhUVFBSZXF1ZXN0TWF4aW11bVByaW9yaXR5KHRvUGxh
dGZvcm1SZXF1ZXN0UHJpb3JpdHkoUmVzb3VyY2VMb2FkUHJpb3JpdHk6OkhpZ2hlc3QpKTsKKyAg
ICBfQ0ZOZXR3b3JrSFRUUENvbm5lY3Rpb25DYWNoZVNldExpbWl0KGtIVFRQUHJpb3JpdHlOdW1M
ZXZlbHMsIHRvUGxhdGZvcm1SZXF1ZXN0UHJpb3JpdHkoUmVzb3VyY2VMb2FkUHJpb3JpdHk6Okhp
Z2hlc3QpKTsKICNpZiAhUExBVEZPUk0oV0lOKQogICAgIC8vIEZJWE1FOiA8cmRhcjovL3Byb2Js
ZW0vOTM3NTYwOT4gSW1wbGVtZW50IG1pbmltdW0gZmFzdCBsYW5lIHByaW9yaXR5IHNldHRpbmcg
b24gV2luZG93cwotICAgIHdrU2V0SFRUUFJlcXVlc3RNaW5pbXVtRmFzdExhbmVQcmlvcml0eSh0
b1BsYXRmb3JtUmVxdWVzdFByaW9yaXR5KFJlc291cmNlTG9hZFByaW9yaXR5OjpNZWRpdW0pKTsK
KyAgICBfQ0ZOZXR3b3JrSFRUUENvbm5lY3Rpb25DYWNoZVNldExpbWl0KGtIVFRQTWluaW11bUZh
c3RMYW5lUHJpb3JpdHksIHRvUGxhdGZvcm1SZXF1ZXN0UHJpb3JpdHkoUmVzb3VyY2VMb2FkUHJp
b3JpdHk6Ok1lZGl1bSkpOwogI2VuZGlmCiAKICAgICByZXR1cm4gdW5saW1pdGVkUmVxdWVzdENv
dW50OwpAQCAtNDIwLDkgKzQxOSw5IEBAIHZvaWQgaW5pdGlhbGl6ZUhUVFBDb25uZWN0aW9uU2V0
dGluZ3NPblN0YXJ0dXAoKQogICAgIC8vIFdlIGNhbid0IHJlYWQgc2V0dGluZ3MgaGVyZSBhcyB0
aGlzIGlzIGNhbGxlZCB0b28gZWFybHkgZm9yIHRoYXQuIEFsbCB2YWx1ZXMgbmVlZCB0byBiZSBj
b25zdGFudHMuCiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIHByZWZlcnJlZENvbm5lY3Rpb25D
b3VudCA9IDY7CiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIGZhc3RMYW5lQ29ubmVjdGlvbkNv
dW50ID0gMTsKLSAgICB3a0luaXRpYWxpemVNYXhpbXVtSFRUUENvbm5lY3Rpb25Db3VudFBlckhv
c3QocHJlZmVycmVkQ29ubmVjdGlvbkNvdW50KTsKLSAgICB3a1NldEhUVFBSZXF1ZXN0TWF4aW11
bVByaW9yaXR5KHRvUGxhdGZvcm1SZXF1ZXN0UHJpb3JpdHkoUmVzb3VyY2VMb2FkUHJpb3JpdHk6
OkhpZ2hlc3QpKTsKLSAgICB3a1NldEhUVFBSZXF1ZXN0TWluaW11bUZhc3RMYW5lUHJpb3JpdHko
dG9QbGF0Zm9ybVJlcXVlc3RQcmlvcml0eShSZXNvdXJjZUxvYWRQcmlvcml0eTo6TWVkaXVtKSk7
CisgICAgX0NGTmV0d29ya0hUVFBDb25uZWN0aW9uQ2FjaGVTZXRMaW1pdChrSFRUUExvYWRXaWR0
aCwgcHJlZmVycmVkQ29ubmVjdGlvbkNvdW50KTsKKyAgICBfQ0ZOZXR3b3JrSFRUUENvbm5lY3Rp
b25DYWNoZVNldExpbWl0KGtIVFRQUHJpb3JpdHlOdW1MZXZlbHMsIHRvUGxhdGZvcm1SZXF1ZXN0
UHJpb3JpdHkoUmVzb3VyY2VMb2FkUHJpb3JpdHk6OkhpZ2hlc3QpKTsKKyAgICBfQ0ZOZXR3b3Jr
SFRUUENvbm5lY3Rpb25DYWNoZVNldExpbWl0KGtIVFRQTWluaW11bUZhc3RMYW5lUHJpb3JpdHks
IHRvUGxhdGZvcm1SZXF1ZXN0UHJpb3JpdHkoUmVzb3VyY2VMb2FkUHJpb3JpdHk6Ok1lZGl1bSkp
OwogICAgIF9DRk5ldHdvcmtIVFRQQ29ubmVjdGlvbkNhY2hlU2V0TGltaXQoa0hUVFBOdW1GYXN0
TGFuZXMsIGZhc3RMYW5lQ29ubmVjdGlvbkNvdW50KTsKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZVJlcXVlc3RDRk5ldC5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZVJlcXVlc3RDRk5l
dC5oCmluZGV4IDAzNTI5YzkyYjliNDc4YjMwMzQ1OTc4YmU5MTg3NDIxMmZlNzFkMjQuLmNiYzQ5
ZTE3ZTcwOTM0NTIyNWFjOTljMzhjNGQ3YmU5N2U3OWRiMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VSZXF1ZXN0Q0ZOZXQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlUmVxdWVzdENGTmV0LmgK
QEAgLTI2LDEyICsyNiw5IEBACiAjaWZuZGVmIFJlc291cmNlUmVxdWVzdENGTmV0X2gKICNkZWZp
bmUgUmVzb3VyY2VSZXF1ZXN0Q0ZOZXRfaAogCisjaW5jbHVkZSAiQ0ZOZXR3b3JrU1BJLmgiCiAj
aW5jbHVkZSAiUmVzb3VyY2VMb2FkUHJpb3JpdHkuaCIKIAotI2lmIFVTRShDRk5FVFdPUkspCi10
eXBlZGVmIGNvbnN0IHN0cnVjdCBfQ0ZVUkxSZXF1ZXN0KiBDRlVSTFJlcXVlc3RSZWY7Ci0jZW5k
aWYKLQogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBSZXNvdXJjZVJlcXVlc3Q7CkBAIC00
MSw3ICszOCw3IEBAIHZvaWQgZ2V0UmVzb3VyY2VSZXF1ZXN0KFJlc291cmNlUmVxdWVzdCYsIENG
VVJMUmVxdWVzdFJlZik7CiBDRlVSTFJlcXVlc3RSZWYgY2ZVUkxSZXF1ZXN0KGNvbnN0IFJlc291
cmNlUmVxdWVzdCYpOwogI2VuZGlmCiAKLWlubGluZSBSZXNvdXJjZUxvYWRQcmlvcml0eSB0b1Jl
c291cmNlTG9hZFByaW9yaXR5KGludCBwcmlvcml0eSkKK2lubGluZSBSZXNvdXJjZUxvYWRQcmlv
cml0eSB0b1Jlc291cmNlTG9hZFByaW9yaXR5KENGVVJMUmVxdWVzdFByaW9yaXR5IHByaW9yaXR5
KQogewogICAgIHN3aXRjaCAocHJpb3JpdHkpIHsKICAgICBjYXNlIC0xOgpAQCAtNjEsNyArNTgs
NyBAQCBpbmxpbmUgUmVzb3VyY2VMb2FkUHJpb3JpdHkgdG9SZXNvdXJjZUxvYWRQcmlvcml0eShp
bnQgcHJpb3JpdHkpCiAgICAgfQogfQogCi1pbmxpbmUgaW50IHRvUGxhdGZvcm1SZXF1ZXN0UHJp
b3JpdHkoUmVzb3VyY2VMb2FkUHJpb3JpdHkgcHJpb3JpdHkpCitpbmxpbmUgQ0ZVUkxSZXF1ZXN0
UHJpb3JpdHkgdG9QbGF0Zm9ybVJlcXVlc3RQcmlvcml0eShSZXNvdXJjZUxvYWRQcmlvcml0eSBw
cmlvcml0eSkKIHsKICAgICBzd2l0Y2ggKHByaW9yaXR5KSB7CiAgICAgY2FzZSBSZXNvdXJjZUxv
YWRQcmlvcml0eTo6VmVyeUxvdzoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvY2YvUmVzb3VyY2VSZXNwb25zZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9jZi9SZXNvdXJjZVJlc3BvbnNlLmgKaW5kZXggYWNjMWQ0NTY5NzVjYzEyZjM5YTMz
OGRiYjI0Mzk0MWU1N2MyNmQxYS4uYzhlNDY2NWJmOTFkNjQ5ZWMwMDBlYmMwN2M1MGVmZGVmMzk5
OWNkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNv
dXJjZVJlc3BvbnNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9S
ZXNvdXJjZVJlc3BvbnNlLmgKQEAgLTMwLDcgKzMwLDcgQEAKICNpbmNsdWRlIDx3dGYvUmV0YWlu
UHRyLmg+CiAKICNpZiBVU0UoQ0ZORVRXT1JLKQotdHlwZWRlZiBzdHJ1Y3QgX0NGVVJMUmVzcG9u
c2UqIENGVVJMUmVzcG9uc2VSZWY7CisjaW5jbHVkZSAiQ0ZOZXR3b3JrU1BJLmgiCiAjZW5kaWYK
IAogT0JKQ19DTEFTUyBOU1VSTFJlc3BvbnNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZVJlc3BvbnNlQ0ZOZXQuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZVJlc3BvbnNlQ0ZOZXQuY3BwCmluZGV4
IDRiYWU3NGU4MzgxNmMxOTRlZGMxNTRkODRjMmRlOGY2ZGQxNmZjOTUuLmIwMTFhNTdmZjRlNGNj
MmUwNzgzNjY4NGE4YzczODQ0MDJiMzhjZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VSZXNwb25zZUNGTmV0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlUmVzcG9uc2VDRk5ldC5jcHAKQEAg
LTExMywxMyArMTEzLDEyIEBAIHZvaWQgUmVzb3VyY2VSZXNwb25zZTo6cGxhdGZvcm1MYXp5SW5p
dChJbml0TGV2ZWwgaW5pdExldmVsKQogICAgIG1faW5pdExldmVsID0gaW5pdExldmVsOwogfQog
CisjaWYgIVBMQVRGT1JNKENPQ09BKQogQ2VydGlmaWNhdGVJbmZvIFJlc291cmNlUmVzcG9uc2U6
OnBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvKCkgY29uc3QKIHsKLSNpZiBQTEFURk9STShDT0NPQSkK
LSAgICByZXR1cm4gQ2VydGlmaWNhdGVJbmZvKGFkb3B0Q0Yod2tDb3B5TlNVUkxSZXNwb25zZUNl
cnRpZmljYXRlQ2hhaW4obnNVUkxSZXNwb25zZSgpKSkpOwotI2VuZGlmCi0gICAgcmV0dXJuIENl
cnRpZmljYXRlSW5mbygpOworICAgIHJldHVybiB7IH07CiB9CisjZW5kaWYKIAogU3RyaW5nIFJl
c291cmNlUmVzcG9uc2U6OnBsYXRmb3JtU3VnZ2VzdGVkRmlsZW5hbWUoKSBjb25zdAogewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9TeW5jaHJvbm91c1Jl
c291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGUuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9jZi9TeW5jaHJvbm91c1Jlc291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0
aW9uRGVsZWdhdGUuY3BwCmluZGV4IDU3ODk2ZGUyYjYzM2UxNjY0NWIxYzdlYWQ2ZmQ5MDIwZmJk
YzVjOTguLjkyNjQzZDk3Yzk3ODQzYzdlMjZjNDlmYWQ5MGIyY2U0NzIwYTdhMDggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvU3luY2hyb25vdXNSZXNvdXJj
ZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL2NmL1N5bmNocm9ub3VzUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rp
b25EZWxlZ2F0ZS5jcHAKQEAgLTQxLDYgKzQxLDcgQEAKICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZT
dHJpbmcuaD4KIAogI2lmIFBMQVRGT1JNKENPQ09BKQorI2luY2x1ZGUgIkNGTmV0d29ya1NQSS5o
IgogI2luY2x1ZGUgIldlYkNvcmVTeXN0ZW1JbnRlcmZhY2UuaCIKICNpbmNsdWRlICJXZWJDb3Jl
VVJMUmVzcG9uc2UuaCIKICNlbmRpZiAvLyBQTEFURk9STShDT0NPQSkKQEAgLTE0Myw3ICsxNDQs
NyBAQCB2b2lkIFN5bmNocm9ub3VzUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0
ZTo6ZGlkUmVjZWl2ZVJlc3BvbnNlKENGVVJMQwogCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAg
Ly8gQXZvaWQgTUlNRSB0eXBlIHNuaWZmaW5nIGlmIHRoZSByZXNwb25zZSBjb21lcyBiYWNrIGFz
IDMwNCBOb3QgTW9kaWZpZWQuCi0gICAgQ0ZIVFRQTWVzc2FnZVJlZiBtc2cgPSB3a0dldENGVVJM
UmVzcG9uc2VIVFRQUmVzcG9uc2UoY2ZSZXNwb25zZSk7CisgICAgYXV0byBtc2cgPSBDRlVSTFJl
c3BvbnNlR2V0SFRUUFJlc3BvbnNlKGNmUmVzcG9uc2UpOwogICAgIGludCBzdGF0dXNDb2RlID0g
bXNnID8gQ0ZIVFRQTWVzc2FnZUdldFJlc3BvbnNlU3RhdHVzQ29kZShtc2cpIDogMDsKIAogICAg
IGlmIChzdGF0dXNDb2RlICE9IDMwNCkKQEAgLTE1MSw3ICsxNTIsNyBAQCB2b2lkIFN5bmNocm9u
b3VzUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZTo6ZGlkUmVjZWl2ZVJlc3Bv
bnNlKENGVVJMQwogCiAjaWYgIVBMQVRGT1JNKElPUykKICAgICBpZiAoX0NGVVJMUmVxdWVzdENv
cHlQcm90b2NvbFByb3BlcnR5Rm9yS2V5KG1faGFuZGxlLT5maXJzdFJlcXVlc3QoKS5jZlVSTFJl
cXVlc3QoRG9Ob3RVcGRhdGVIVFRQQm9keSksIENGU1RSKCJGb3JjZUhUTUxNSU1FVHlwZSIpKSkK
LSAgICAgICAgd2tTZXRDRlVSTFJlc3BvbnNlTUlNRVR5cGUoY2ZSZXNwb25zZSwgQ0ZTVFIoInRl
eHQvaHRtbCIpKTsKKyAgICAgICAgQ0ZVUkxSZXNwb25zZVNldE1JTUVUeXBlKGNmUmVzcG9uc2Us
IENGU1RSKCJ0ZXh0L2h0bWwiKSk7CiAjZW5kaWYgLy8gIVBMQVRGT1JNKElPUykKICNlbHNlCiAg
ICAgaWYgKCFDRlVSTFJlc3BvbnNlR2V0TUlNRVR5cGUoY2ZSZXNwb25zZSkpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29hL0NyZWRlbnRpYWxDb2NvYS5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jb2NvYS9DcmVkZW50aWFsQ29jb2Eu
aAppbmRleCBmMmNkOTYzMmMyMGU2NTU3MGRhY2U5YjljMDkxMTA3NzZkNzZlMzE3Li5lYzgyMmU0
ZWI5Y2Y1MDUxMWZkZWNmMGQ2OTg1OWM5ZTU3M2YwYjEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29hL0NyZWRlbnRpYWxDb2NvYS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY29jb2EvQ3JlZGVudGlhbENvY29hLmgKQEAgLTMx
LDcgKzMxLDcgQEAKICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiAKICNpZiBVU0UoQ0ZORVRX
T1JLKQotdHlwZWRlZiBjb25zdCBzdHJ1Y3QgX0NGVVJMQ3JlZGVudGlhbCogQ0ZVUkxDcmVkZW50
aWFsUmVmOworI2luY2x1ZGUgIkNGTmV0d29ya1NQSS5oIgogI2VuZGlmCiAKIE9CSkNfQ0xBU1Mg
TlNVUkxDcmVkZW50aWFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9jb2NvYS9SZXNvdXJjZVJlcXVlc3RDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvY29jb2EvUmVzb3VyY2VSZXF1ZXN0Q29jb2EubW0KaW5kZXggM2IxYjBhMmY4
NzQ3NDdiMzhhMmM4MzgwZmI2NTU5ODZiZGViOWVjYy4uZmNmNDkzN2MzNjBiMjJhZjhlMWJmYzlh
NDUzMGJiOTFjMTcxYmI1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9jb2NvYS9SZXNvdXJjZVJlcXVlc3RDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL2NvY29hL1Jlc291cmNlUmVxdWVzdENvY29hLm1tCkBAIC03OSw3ICs3
OSw3IEBAIHZvaWQgUmVzb3VyY2VSZXF1ZXN0Ojpkb1VwZGF0ZVJlc291cmNlUmVxdWVzdCgpCiAg
ICAgbV9hbGxvd0Nvb2tpZXMgPSBbbV9uc1JlcXVlc3QuZ2V0KCkgSFRUUFNob3VsZEhhbmRsZUNv
b2tpZXNdOwogCiAgICAgaWYgKHJlc291cmNlUHJpb3JpdGllc0VuYWJsZWQoKSkKLSAgICAgICAg
bV9wcmlvcml0eSA9IHRvUmVzb3VyY2VMb2FkUHJpb3JpdHkod2tHZXRIVFRQUmVxdWVzdFByaW9y
aXR5KFttX25zUmVxdWVzdC5nZXQoKSBfQ0ZVUkxSZXF1ZXN0XSkpOworICAgICAgICBtX3ByaW9y
aXR5ID0gdG9SZXNvdXJjZUxvYWRQcmlvcml0eShtX25zUmVxdWVzdCA/IENGVVJMUmVxdWVzdEdl
dFJlcXVlc3RQcmlvcml0eShbbV9uc1JlcXVlc3QgX0NGVVJMUmVxdWVzdF0pIDogMCk7CiAKICAg
ICBtX2h0dHBIZWFkZXJGaWVsZHMuY2xlYXIoKTsKICAgICBbW21fbnNSZXF1ZXN0IGFsbEhUVFBI
ZWFkZXJGaWVsZHNdIGVudW1lcmF0ZUtleXNBbmRPYmplY3RzVXNpbmdCbG9jazogXihOU1N0cmlu
ZyAqbmFtZSwgTlNTdHJpbmcgKnZhbHVlLCBCT09MICopIHsKQEAgLTEzMywxMyArMTMzLDEzIEBA
IHZvaWQgUmVzb3VyY2VSZXF1ZXN0Ojpkb1VwZGF0ZVBsYXRmb3JtUmVxdWVzdCgpCiAgICAgICAg
IG5zUmVxdWVzdCA9IFtbTlNNdXRhYmxlVVJMUmVxdWVzdCBhbGxvY10gaW5pdFdpdGhVUkw6dXJs
KCldOwogCiAgICAgaWYgKFJlc291cmNlUmVxdWVzdDo6aHR0cFBpcGVsaW5pbmdFbmFibGVkKCkp
Ci0gICAgICAgIHdrSFRUUFJlcXVlc3RFbmFibGVQaXBlbGluaW5nKFtuc1JlcXVlc3QgX0NGVVJM
UmVxdWVzdF0pOworICAgICAgICBDRlVSTFJlcXVlc3RTZXRTaG91bGRQaXBlbGluZUhUVFAoW25z
UmVxdWVzdCBfQ0ZVUkxSZXF1ZXN0XSwgdHJ1ZSwgdHJ1ZSk7CiAKICAgICBpZiAoUmVzb3VyY2VS
ZXF1ZXN0OjpyZXNvdXJjZVByaW9yaXRpZXNFbmFibGVkKCkpCi0gICAgICAgIHdrU2V0SFRUUFJl
cXVlc3RQcmlvcml0eShbbnNSZXF1ZXN0IF9DRlVSTFJlcXVlc3RdLCB0b1BsYXRmb3JtUmVxdWVz
dFByaW9yaXR5KHByaW9yaXR5KCkpKTsKKyAgICAgICAgQ0ZVUkxSZXF1ZXN0U2V0UmVxdWVzdFBy
aW9yaXR5KFtuc1JlcXVlc3QgX0NGVVJMUmVxdWVzdF0sIHRvUGxhdGZvcm1SZXF1ZXN0UHJpb3Jp
dHkocHJpb3JpdHkoKSkpOwogCiAgICAgW25zUmVxdWVzdCBzZXRDYWNoZVBvbGljeTooTlNVUkxS
ZXF1ZXN0Q2FjaGVQb2xpY3kpY2FjaGVQb2xpY3koKV07Ci0gICAgd2tDRlVSTFJlcXVlc3RBbGxv
d0FsbFBvc3RDYWNoaW5nKFtuc1JlcXVlc3QgX0NGVVJMUmVxdWVzdF0pOworICAgIF9DRlVSTFJl
cXVlc3RTZXRQcm90b2NvbFByb3BlcnR5KFtuc1JlcXVlc3QgX0NGVVJMUmVxdWVzdF0sIGtDRlVS
TFJlcXVlc3RBbGxvd0FsbFBPU1RDYWNoaW5nLCBrQ0ZCb29sZWFuVHJ1ZSk7CiAKICAgICBkb3Vi
bGUgdGltZW91dEludGVydmFsID0gUmVzb3VyY2VSZXF1ZXN0QmFzZTo6dGltZW91dEludGVydmFs
KCk7CiAgICAgaWYgKHRpbWVvdXRJbnRlcnZhbCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvY29jb2EvUmVzb3VyY2VSZXNwb25zZUNvY29hLm1tIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jb2NvYS9SZXNvdXJjZVJlc3BvbnNlQ29jb2EubW0K
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMWQ3OWNkY2M3MjQwODExNTFlYTg3MGUxYjQ3NGY3OGEwYTE2ODE0YgotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY29jb2EvUmVz
b3VyY2VSZXNwb25zZUNvY29hLm1tCkBAIC0wLDAgKzEsMjMzIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDA2IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBv
cnQgIlJlc291cmNlUmVzcG9uc2UuaCIKKworI2lmIFBMQVRGT1JNKENPQ09BKQorCisjaW1wb3J0
ICJDRk5ldHdvcmtTUEkuaCIKKyNpbXBvcnQgIkhUVFBQYXJzZXJzLmgiCisjaW1wb3J0ICJXZWJD
b3JlVVJMUmVzcG9uc2UuaCIKKyNpbXBvcnQgPEZvdW5kYXRpb24vRm91bmRhdGlvbi5oPgorI2lt
cG9ydCA8bGltaXRzPgorI2ltcG9ydCA8d3RmL1N0ZExpYkV4dHJhcy5oPgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK3ZvaWQgUmVzb3VyY2VSZXNwb25zZTo6aW5pdE5TVVJMUmVzcG9uc2UoKSBj
b25zdAoreworICAgIGlmICghbV9odHRwU3RhdHVzQ29kZSB8fCAhbV91cmwucHJvdG9jb2xJc0lu
SFRUUEZhbWlseSgpKSB7CisgICAgICAgIC8vIFdvcmsgYXJvdW5kIGEgbWlzdGFrZSBpbiB0aGUg
TlNVUkxSZXNwb25zZSBjbGFzcyAtIDxyZGFyOi8vcHJvYmxlbS82ODc1MjE5Pi4KKyAgICAgICAg
Ly8gVGhlIGluaXQgZnVuY3Rpb24gdGFrZXMgYW4gTlNJbnRlZ2VyLCBldmVuIHRob3VnaCB0aGUg
YWNjZXNzb3IgcmV0dXJucyBhIGxvbmcgbG9uZy4KKyAgICAgICAgLy8gRm9yIHZhbHVlcyB0aGF0
IHdvbid0IGZpdCBpbiBhbiBOU0ludGVnZXIsIHBhc3MgLTEgaW5zdGVhZC4KKyAgICAgICAgTlNJ
bnRlZ2VyIGV4cGVjdGVkQ29udGVudExlbmd0aDsKKyAgICAgICAgaWYgKG1fZXhwZWN0ZWRDb250
ZW50TGVuZ3RoIDwgMCB8fCBtX2V4cGVjdGVkQ29udGVudExlbmd0aCA+IHN0ZDo6bnVtZXJpY19s
aW1pdHM8TlNJbnRlZ2VyPjo6bWF4KCkpCisgICAgICAgICAgICBleHBlY3RlZENvbnRlbnRMZW5n
dGggPSAtMTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgZXhwZWN0ZWRDb250ZW50TGVuZ3Ro
ID0gc3RhdGljX2Nhc3Q8TlNJbnRlZ2VyPihtX2V4cGVjdGVkQ29udGVudExlbmd0aCk7CisKKyAg
ICAgICAgTlNTdHJpbmcqIGVuY29kaW5nTlNTdHJpbmcgPSBuc1N0cmluZ05pbElmRW1wdHkobV90
ZXh0RW5jb2RpbmdOYW1lKTsKKyAgICAgICAgbV9uc1Jlc3BvbnNlID0gYWRvcHROUyhbW05TVVJM
UmVzcG9uc2UgYWxsb2NdIGluaXRXaXRoVVJMOm1fdXJsIE1JTUVUeXBlOm1fbWltZVR5cGUgZXhw
ZWN0ZWRDb250ZW50TGVuZ3RoOmV4cGVjdGVkQ29udGVudExlbmd0aCB0ZXh0RW5jb2RpbmdOYW1l
OmVuY29kaW5nTlNTdHJpbmddKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIC8vIEZJ
WE1FOiBXZSBsb3NlIHRoZSBzdGF0dXMgdGV4dCBhbmQgdGhlIEhUVFAgdmVyc2lvbiBoZXJlLgor
ICAgIE5TTXV0YWJsZURpY3Rpb25hcnkqIGhlYWRlckRpY3Rpb25hcnkgPSBbTlNNdXRhYmxlRGlj
dGlvbmFyeSBkaWN0aW9uYXJ5XTsKKyAgICBmb3IgKGF1dG8mIGhlYWRlciA6IG1faHR0cEhlYWRl
ckZpZWxkcykKKyAgICAgICAgW2hlYWRlckRpY3Rpb25hcnkgc2V0T2JqZWN0OihOU1N0cmluZyAq
KWhlYWRlci52YWx1ZSBmb3JLZXk6KE5TU3RyaW5nICopaGVhZGVyLmtleV07CisKKyAgICBtX25z
UmVzcG9uc2UgPSBhZG9wdE5TKFtbTlNIVFRQVVJMUmVzcG9uc2UgYWxsb2NdIGluaXRXaXRoVVJM
Om1fdXJsIHN0YXR1c0NvZGU6bV9odHRwU3RhdHVzQ29kZSBIVFRQVmVyc2lvbjooTlNTdHJpbmcq
KWtDRkhUVFBWZXJzaW9uMV8xIGhlYWRlckZpZWxkczpoZWFkZXJEaWN0aW9uYXJ5XSk7CisKKyAg
ICAvLyBNaW1lIHR5cGUgc25pZmZpbmcgZG9lc24ndCB3b3JrIHdpdGggYSBzeW50aGVzaXplZCBy
ZXNwb25zZS4KKyAgICBbbV9uc1Jlc3BvbnNlLmdldCgpIF9zZXRNSU1FVHlwZTooTlNTdHJpbmcg
KiltX21pbWVUeXBlXTsKK30KKworQ2VydGlmaWNhdGVJbmZvIFJlc291cmNlUmVzcG9uc2U6OnBs
YXRmb3JtQ2VydGlmaWNhdGVJbmZvKCkgY29uc3QKK3sKKyAgICBBU1NFUlQobV9uc1Jlc3BvbnNl
KTsKKyAgICBhdXRvIGNmUmVzcG9uc2UgPSBbbV9uc1Jlc3BvbnNlIF9DRlVSTFJlc3BvbnNlXTsK
KyAgICBpZiAoIWNmUmVzcG9uc2UpCisgICAgICAgIHJldHVybiB7IH07CisKKyAgICBDRkRpY3Rp
b25hcnlSZWYgY29udGV4dCA9IF9DRlVSTFJlc3BvbnNlR2V0U1NMQ2VydGlmaWNhdGVDb250ZXh0
KGNmUmVzcG9uc2UpOworICAgIGlmICghY29udGV4dCkKKyAgICAgICAgcmV0dXJuIHsgfTsKKwor
ICAgIGF1dG8gdHJ1c3RWYWx1ZSA9IENGRGljdGlvbmFyeUdldFZhbHVlKGNvbnRleHQsIGtDRlN0
cmVhbVByb3BlcnR5U1NMUGVlclRydXN0KTsKKyAgICBpZiAoIXRydXN0VmFsdWUpCisgICAgICAg
IHJldHVybiB7IH07CisgICAgQVNTRVJUKENGR2V0VHlwZUlEKHRydXN0VmFsdWUpID09IFNlY1Ry
dXN0R2V0VHlwZUlEKCkpOworICAgIGF1dG8gdHJ1c3QgPSAoU2VjVHJ1c3RSZWYpdHJ1c3RWYWx1
ZTsKKworICAgIFNlY1RydXN0UmVzdWx0VHlwZSB0cnVzdFJlc3VsdFR5cGU7CisgICAgT1NTdGF0
dXMgcmVzdWx0ID0gU2VjVHJ1c3RHZXRUcnVzdFJlc3VsdCh0cnVzdCwgJnRydXN0UmVzdWx0VHlw
ZSk7CisgICAgaWYgKHJlc3VsdCAhPSBlcnJTZWNTdWNjZXNzKQorICAgICAgICByZXR1cm4geyB9
OworCisgICAgaWYgKHRydXN0UmVzdWx0VHlwZSA9PSBrU2VjVHJ1c3RSZXN1bHRJbnZhbGlkKSB7
CisgICAgICAgIHJlc3VsdCA9IFNlY1RydXN0RXZhbHVhdGUodHJ1c3QsICZ0cnVzdFJlc3VsdFR5
cGUpOworICAgICAgICBpZiAocmVzdWx0ICE9IGVyclNlY1N1Y2Nlc3MpCisgICAgICAgICAgICBy
ZXR1cm4geyB9OworICAgIH0KKworICAgIENGSW5kZXggY291bnQgPSBTZWNUcnVzdEdldENlcnRp
ZmljYXRlQ291bnQodHJ1c3QpOworICAgIGF1dG8gY2VydGlmaWNhdGVDaGFpbiA9IENGQXJyYXlD
cmVhdGVNdXRhYmxlKDAsIGNvdW50LCAma0NGVHlwZUFycmF5Q2FsbEJhY2tzKTsKKyAgICBmb3Ig
KENGSW5kZXggaSA9IDA7IGkgPCBjb3VudDsgaSsrKQorICAgICAgICBDRkFycmF5QXBwZW5kVmFs
dWUoY2VydGlmaWNhdGVDaGFpbiwgU2VjVHJ1c3RHZXRDZXJ0aWZpY2F0ZUF0SW5kZXgodHJ1c3Qs
IGkpKTsKKworICAgIHJldHVybiBDZXJ0aWZpY2F0ZUluZm8oYWRvcHRDRihjZXJ0aWZpY2F0ZUNo
YWluKSk7Cit9CisKKyNpZiBVU0UoQ0ZORVRXT1JLKQorCitOU1VSTFJlc3BvbnNlICpSZXNvdXJj
ZVJlc3BvbnNlOjpuc1VSTFJlc3BvbnNlKCkgY29uc3QKK3sKKyAgICBpZiAoIW1fbnNSZXNwb25z
ZSAmJiAhbV9jZlJlc3BvbnNlICYmICFtX2lzTnVsbCkgeworICAgICAgICBpbml0TlNVUkxSZXNw
b25zZSgpOworICAgICAgICBtX2NmUmVzcG9uc2UgPSBbbV9uc1Jlc3BvbnNlLmdldCgpIF9DRlVS
TFJlc3BvbnNlXTsKKyAgICAgICAgcmV0dXJuIG1fbnNSZXNwb25zZS5nZXQoKTsKKyAgICB9CisK
KyAgICBpZiAoIW1fY2ZSZXNwb25zZSkKKyAgICAgICAgcmV0dXJuIG5pbDsKKworICAgIGlmICgh
bV9uc1Jlc3BvbnNlKQorICAgICAgICBtX25zUmVzcG9uc2UgPSBbTlNVUkxSZXNwb25zZSBfcmVz
cG9uc2VXaXRoQ0ZVUkxSZXNwb25zZTptX2NmUmVzcG9uc2UuZ2V0KCldOworCisgICAgcmV0dXJu
IG1fbnNSZXNwb25zZS5nZXQoKTsKK30KKworUmVzb3VyY2VSZXNwb25zZTo6UmVzb3VyY2VSZXNw
b25zZShOU1VSTFJlc3BvbnNlKiBuc1Jlc3BvbnNlKQorICAgIDogbV9pbml0TGV2ZWwoVW5pbml0
aWFsaXplZCkKKyAgICAsIG1fcGxhdGZvcm1SZXNwb25zZUlzVXBUb0RhdGUodHJ1ZSkKKyAgICAs
IG1fY2ZSZXNwb25zZShbbnNSZXNwb25zZSBfQ0ZVUkxSZXNwb25zZV0pCisgICAgLCBtX25zUmVz
cG9uc2UobnNSZXNwb25zZSkKK3sKKyAgICBtX2lzTnVsbCA9ICFuc1Jlc3BvbnNlOworfQorCisj
ZWxzZQorCitzdGF0aWMgTlNTdHJpbmcqIGNvbnN0IGNvbW1vbkhlYWRlckZpZWxkc1tdID0gewor
ICAgIEAiQWdlIiwgQCJDYWNoZS1Db250cm9sIiwgQCJDb250ZW50LVR5cGUiLCBAIkRhdGUiLCBA
IkV0YWciLCBAIkV4cGlyZXMiLCBAIkxhc3QtTW9kaWZpZWQiLCBAIlByYWdtYSIKK307CisKK05T
VVJMUmVzcG9uc2UgKlJlc291cmNlUmVzcG9uc2U6Om5zVVJMUmVzcG9uc2UoKSBjb25zdAorewor
ICAgIGlmICghbV9uc1Jlc3BvbnNlICYmICFtX2lzTnVsbCkKKyAgICAgICAgaW5pdE5TVVJMUmVz
cG9uc2UoKTsKKyAgICByZXR1cm4gbV9uc1Jlc3BvbnNlLmdldCgpOworfQorICAgIAorc3RhdGlj
IE5TU3RyaW5nICpjb3B5TlNVUkxSZXNwb25zZVN0YXR1c0xpbmUoTlNVUkxSZXNwb25zZSAqcmVz
cG9uc2UpCit7CisgICAgQ0ZVUkxSZXNwb25zZVJlZiBjZlJlc3BvbnNlID0gW3Jlc3BvbnNlIF9D
RlVSTFJlc3BvbnNlXTsKKyAgICBpZiAoIWNmUmVzcG9uc2UpCisgICAgICAgIHJldHVybiBuaWw7
CisKKyAgICBDRkhUVFBNZXNzYWdlUmVmIGNmSFRUUE1lc3NhZ2UgPSBDRlVSTFJlc3BvbnNlR2V0
SFRUUFJlc3BvbnNlKGNmUmVzcG9uc2UpOworICAgIGlmICghY2ZIVFRQTWVzc2FnZSkKKyAgICAg
ICAgcmV0dXJuIG5pbDsKKworICAgIHJldHVybiAoTlNTdHJpbmcgKilDRkhUVFBNZXNzYWdlQ29w
eVJlc3BvbnNlU3RhdHVzTGluZShjZkhUVFBNZXNzYWdlKTsKK30KKwordm9pZCBSZXNvdXJjZVJl
c3BvbnNlOjpwbGF0Zm9ybUxhenlJbml0KEluaXRMZXZlbCBpbml0TGV2ZWwpCit7CisgICAgaWYg
KG1faW5pdExldmVsID49IGluaXRMZXZlbCkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKG1f
aXNOdWxsIHx8ICFtX25zUmVzcG9uc2UpCisgICAgICAgIHJldHVybjsKKyAgICAKKyAgICBpZiAo
bV9pbml0TGV2ZWwgPCBDb21tb25GaWVsZHNPbmx5ICYmIGluaXRMZXZlbCA+PSBDb21tb25GaWVs
ZHNPbmx5KSB7CisgICAgICAgIE5TQXV0b3JlbGVhc2VQb29sKiBwb29sID0gW1tOU0F1dG9yZWxl
YXNlUG9vbCBhbGxvY10gaW5pdF07CisKKyAgICAgICAgbV9odHRwSGVhZGVyRmllbGRzLmNsZWFy
KCk7CisgICAgICAgIG1fdXJsID0gW21fbnNSZXNwb25zZS5nZXQoKSBVUkxdOworICAgICAgICBt
X21pbWVUeXBlID0gW21fbnNSZXNwb25zZS5nZXQoKSBNSU1FVHlwZV07CisgICAgICAgIG1fZXhw
ZWN0ZWRDb250ZW50TGVuZ3RoID0gW21fbnNSZXNwb25zZS5nZXQoKSBleHBlY3RlZENvbnRlbnRM
ZW5ndGhdOworICAgICAgICBtX3RleHRFbmNvZGluZ05hbWUgPSBbbV9uc1Jlc3BvbnNlLmdldCgp
IHRleHRFbmNvZGluZ05hbWVdOworCisgICAgICAgIC8vIFdvcmthcm91bmQgZm9yIDxyZGFyOi8v
cHJvYmxlbS84NzU3MDg4PiwgY2FuIGJlIHJlbW92ZWQgb25jZSB0aGF0IGlzIGZpeGVkLgorICAg
ICAgICB1bnNpZ25lZCB0ZXh0RW5jb2RpbmdOYW1lTGVuZ3RoID0gbV90ZXh0RW5jb2RpbmdOYW1l
Lmxlbmd0aCgpOworICAgICAgICBpZiAodGV4dEVuY29kaW5nTmFtZUxlbmd0aCA+PSAyICYmIG1f
dGV4dEVuY29kaW5nTmFtZVswVV0gPT0gJyInICYmIG1fdGV4dEVuY29kaW5nTmFtZVt0ZXh0RW5j
b2RpbmdOYW1lTGVuZ3RoIC0gMV0gPT0gJyInKQorICAgICAgICAgICAgbV90ZXh0RW5jb2RpbmdO
YW1lID0gbV90ZXh0RW5jb2RpbmdOYW1lLnN0cmluZygpLnN1YnN0cmluZygxLCB0ZXh0RW5jb2Rp
bmdOYW1lTGVuZ3RoIC0gMik7CisKKyAgICAgICAgaWYgKFttX25zUmVzcG9uc2UuZ2V0KCkgaXNL
aW5kT2ZDbGFzczpbTlNIVFRQVVJMUmVzcG9uc2UgY2xhc3NdXSkgeworICAgICAgICAgICAgTlNI
VFRQVVJMUmVzcG9uc2UgKmh0dHBSZXNwb25zZSA9IChOU0hUVFBVUkxSZXNwb25zZSAqKW1fbnNS
ZXNwb25zZS5nZXQoKTsKKworICAgICAgICAgICAgbV9odHRwU3RhdHVzQ29kZSA9IFtodHRwUmVz
cG9uc2Ugc3RhdHVzQ29kZV07CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChpbml0TGV2
ZWwgPCBBbGxGaWVsZHMpIHsKKyAgICAgICAgICAgICAgICBOU0RpY3Rpb25hcnkgKmhlYWRlcnMg
PSBbaHR0cFJlc3BvbnNlIGFsbEhlYWRlckZpZWxkc107CisgICAgICAgICAgICAgICAgZm9yIChO
U1N0cmluZyAqbmFtZSA6IGNvbW1vbkhlYWRlckZpZWxkcykgeworICAgICAgICAgICAgICAgICAg
ICBpZiAoTlNTdHJpbmcqIGhlYWRlclZhbHVlID0gW2hlYWRlcnMgb2JqZWN0Rm9yS2V5Om5hbWVd
KQorICAgICAgICAgICAgICAgICAgICAgICAgbV9odHRwSGVhZGVyRmllbGRzLnNldChuYW1lLCBo
ZWFkZXJWYWx1ZSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9
IGVsc2UKKyAgICAgICAgICAgIG1faHR0cFN0YXR1c0NvZGUgPSAwOworICAgICAgICAKKyAgICAg
ICAgW3Bvb2wgZHJhaW5dOworICAgIH0KKworICAgIGlmIChtX2luaXRMZXZlbCA8IEFsbEZpZWxk
cyAmJiBpbml0TGV2ZWwgPT0gQWxsRmllbGRzKSB7CisgICAgICAgIGlmIChbbV9uc1Jlc3BvbnNl
LmdldCgpIGlzS2luZE9mQ2xhc3M6W05TSFRUUFVSTFJlc3BvbnNlIGNsYXNzXV0pIHsKKyAgICAg
ICAgICAgIE5TQXV0b3JlbGVhc2VQb29sKiBwb29sID0gW1tOU0F1dG9yZWxlYXNlUG9vbCBhbGxv
Y10gaW5pdF07CisKKyAgICAgICAgICAgIE5TSFRUUFVSTFJlc3BvbnNlICpodHRwUmVzcG9uc2Ug
PSAoTlNIVFRQVVJMUmVzcG9uc2UgKiltX25zUmVzcG9uc2UuZ2V0KCk7CisgICAgICAgICAgICBp
ZiAoUmV0YWluUHRyPE5TU3RyaW5nPiBodHRwU3RhdHVzTGluZSA9IGFkb3B0TlMoY29weU5TVVJM
UmVzcG9uc2VTdGF0dXNMaW5lKGh0dHBSZXNwb25zZSkpKQorICAgICAgICAgICAgICAgIG1faHR0
cFN0YXR1c1RleHQgPSBleHRyYWN0UmVhc29uUGhyYXNlRnJvbUhUVFBTdGF0dXNMaW5lKGh0dHBT
dGF0dXNMaW5lLmdldCgpKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBtX2h0
dHBTdGF0dXNUZXh0ID0gQXRvbWljU3RyaW5nKCJPSyIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0
RnJvbUxpdGVyYWwpOworCisgICAgICAgICAgICBOU0RpY3Rpb25hcnkgKmhlYWRlcnMgPSBbaHR0
cFJlc3BvbnNlIGFsbEhlYWRlckZpZWxkc107CisgICAgICAgICAgICBmb3IgKE5TU3RyaW5nICpu
YW1lIGluIGhlYWRlcnMpCisgICAgICAgICAgICAgICAgbV9odHRwSGVhZGVyRmllbGRzLnNldChu
YW1lLCBbaGVhZGVycyBvYmplY3RGb3JLZXk6bmFtZV0pOworICAgICAgICAgICAgCisgICAgICAg
ICAgICBbcG9vbCBkcmFpbl07CisgICAgICAgIH0KKyAgICB9CisKKyAgICBtX2luaXRMZXZlbCA9
IGluaXRMZXZlbDsKK30KKworU3RyaW5nIFJlc291cmNlUmVzcG9uc2U6OnBsYXRmb3JtU3VnZ2Vz
dGVkRmlsZW5hbWUoKSBjb25zdAoreworICAgIHJldHVybiBbbnNVUkxSZXNwb25zZSgpIHN1Z2dl
c3RlZEZpbGVuYW1lXTsKK30KKworYm9vbCBSZXNvdXJjZVJlc3BvbnNlOjpwbGF0Zm9ybUNvbXBh
cmUoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgYSwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgYikK
K3sKKyAgICByZXR1cm4gYS5uc1VSTFJlc3BvbnNlKCkgPT0gYi5uc1VSTFJlc3BvbnNlKCk7Cit9
CisKKyNlbmRpZiAvLyBVU0UoQ0ZORVRXT1JLKQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisK
KyNlbmRpZiAvLyBQTEFURk9STShDT0NPQSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvaW9zL1F1aWNrTG9vay5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9pb3MvUXVpY2tMb29rLmgKaW5kZXggMGQ3ZTgyNWVmMmIxMTg4NmIzOGRiYjNjYjkz
ZTAwMGI4YmQyZWVlNS4uNDQ4MjRkYTAyNThkY2MxNzRiZGU5YmU3NTc2YTVmY2YyMTZjMDU5NiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9pb3MvUXVpY2tMb29r
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9pb3MvUXVpY2tMb29rLmgK
QEAgLTMzLDYgKzMzLDEwIEBACiAjaW1wb3J0IDxvYmpjL29iamMtcnVudGltZS5oPgogI2ltcG9y
dCA8d3RmL1JlZlB0ci5oPgogCisjaWYgVVNFKENGTkVUV09SSykKKyNpbmNsdWRlICJDRk5ldHdv
cmtTUEkuaCIKKyNlbmRpZgorCiBPQkpDX0NMQVNTIE5TRGF0YTsKIE9CSkNfQ0xBU1MgTlNEaWN0
aW9uYXJ5OwogT0JKQ19DTEFTUyBOU0ZpbGVIYW5kbGU7CkBAIC00NCwxMSArNDgsNiBAQCBPQkpD
X0NMQVNTIE5TVVJMUmVxdWVzdDsKIE9CSkNfQ0xBU1MgTlNVUkxSZXNwb25zZTsKIE9CSkNfQ0xB
U1MgUUxQcmV2aWV3Q29udmVydGVyOwogCi0jaWYgVVNFKENGTkVUV09SSykKLXR5cGVkZWYgc3Ry
dWN0IF9DRlVSTFJlc3BvbnNlKiBDRlVSTFJlc3BvbnNlUmVmOwotdHlwZWRlZiBzdHJ1Y3QgX0NG
VVJMQ29ubmVjdGlvbiogQ0ZVUkxDb25uZWN0aW9uUmVmOwotI2VuZGlmCi0KIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogY2xhc3MgUXVpY2tMb29rSGFuZGxlQ2xpZW50OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9pb3MvUXVpY2tMb29rLm1tIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9pb3MvUXVpY2tMb29rLm1tCmluZGV4IDE3ZWQ4NjQ2YTU5
NDRhMGYwMWVkNTY4NzA5N2Q5N2NhYzcyMDg0ZjQuLjk2ZjUwZGYwNzQwMTg0NjQwYThmM2VhNjA0
MjQ1OTJmNmE1YTk2YTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvaW9zL1F1aWNrTG9vay5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L2lvcy9RdWlja0xvb2subW0KQEAgLTQ2LDE1ICs0Niw2IEBACiAjaW1wb3J0IDx3dGYvVmVjdG9y
Lmg+CiAjaW1wb3J0IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAotI2lmIFVTRShDRk5FVFdPUksp
Ci0jaW1wb3J0IDxDRk5ldHdvcmsvQ0ZVUkxDb25uZWN0aW9uLmg+Ci0KLUBpbnRlcmZhY2UgTlNV
UkxSZXNwb25zZSAoUXVpY2tMb29rRGV0YWlscykKLSsoTlNVUkxSZXNwb25zZSAqKV9yZXNwb25z
ZVdpdGhDRlVSTFJlc3BvbnNlOihDRlVSTFJlc3BvbnNlUmVmKXJlc3BvbnNlOwotLShDRlVSTFJl
c3BvbnNlUmVmKV9DRlVSTFJlc3BvbnNlOwotQGVuZAotI2VuZGlmCi0KIHVzaW5nIG5hbWVzcGFj
ZSBXZWJDb3JlOwogCiBOU1NldCAqV2ViQ29yZTo6UUxQcmV2aWV3R2V0U3VwcG9ydGVkTUlNRVR5
cGVzU2V0KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvaW9z
L1dlYkNvcmVVUkxSZXNwb25zZUlPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvaW9zL1dlYkNvcmVVUkxSZXNwb25zZUlPUy5tbQppbmRleCBhNjJkMWI3MjllMTE4NGVlZDAw
NDJjMzkwNTQyZGI3M2Y5NTk4YjFkLi5kMDY4ZjkxN2UyZGRjNzdlMTI0YjlhMDAwMDRiNGJjZTYy
NTc1ZjJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2lvcy9X
ZWJDb3JlVVJMUmVzcG9uc2VJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9pb3MvV2ViQ29yZVVSTFJlc3BvbnNlSU9TLm1tCkBAIC00OCw3ICs0OCw3IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogdm9pZCBhZGp1c3RNSU1FVHlwZUlmTmVjZXNzYXJ5KENGVVJMUmVz
cG9uc2VSZWYgY2ZSZXNwb25zZSkKIHsKLSAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IG1pbWVU
eXBlID0gd2tHZXRDRlVSTFJlc3BvbnNlTUlNRVR5cGUoY2ZSZXNwb25zZSk7CisgICAgUmV0YWlu
UHRyPENGU3RyaW5nUmVmPiBtaW1lVHlwZSA9IENGVVJMUmVzcG9uc2VHZXRNSU1FVHlwZShjZlJl
c3BvbnNlKTsKICAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IHVwZGF0ZWRNSU1FVHlwZSA9IG1p
bWVUeXBlOwogICAgIGlmICghdXBkYXRlZE1JTUVUeXBlKQogICAgICAgICB1cGRhdGVkTUlNRVR5
cGUgPSBkZWZhdWx0TUlNRVR5cGUoKS5jcmVhdGVDRlN0cmluZygpOwpAQCAtNTcsMTIgKzU3LDEx
IEBAIHZvaWQgYWRqdXN0TUlNRVR5cGVJZk5lY2Vzc2FyeShDRlVSTFJlc3BvbnNlUmVmIGNmUmVz
cG9uc2UpCiAgICAgLy8gV2UgbXVzdCBlbnN1cmUgdGhhdCB0aGUgTUlNRSB0eXBlIGlzIGNvcnJl
Y3QsIHNvIHRoYXQgUXVpY2tMb29rJ3Mgd2ViIHBsdWdpbiBpcyBjYWxsZWQgd2hlbiBuZWVkZWQu
CiAgICAgLy8gV2UgZmlsdGVyIHRoZSBiYXNpYyBNSU1FIHR5cGVzIHNvIHRoYXQgd2UgZG9uJ3Qg
ZG8gdW5uZWNlc3Nhcnkgd29yayBpbiBzdGFuZGFyZCBicm93c2luZyBzaXR1YXRpb25zLgogICAg
IGlmIChzaG91bGRVc2VRdWlja0xvb2tGb3JNSU1FVHlwZSgoTlNTdHJpbmcgKil1cGRhdGVkTUlN
RVR5cGUuZ2V0KCkpKSB7Ci0gICAgICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gc3VnZ2VzdGVk
RmlsZW5hbWUgPSBhZG9wdENGKHdrQ29weUNGVVJMUmVzcG9uc2VTdWdnZXN0ZWRGaWxlbmFtZShj
ZlJlc3BvbnNlKSk7CisgICAgICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gc3VnZ2VzdGVkRmls
ZW5hbWUgPSBhZG9wdENGKENGVVJMUmVzcG9uc2VDb3B5U3VnZ2VzdGVkRmlsZW5hbWUoY2ZSZXNw
b25zZSkpOwogICAgICAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IHF1aWNrTG9va01JTUVUeXBl
ID0gYWRvcHRDRigoQ0ZTdHJpbmdSZWYpUUxUeXBlQ29weUJlc3RNaW1lVHlwZUZvckZpbGVOYW1l
QW5kTWltZVR5cGUoKE5TU3RyaW5nICopc3VnZ2VzdGVkRmlsZW5hbWUuZ2V0KCksIChOU1N0cmlu
ZyAqKW1pbWVUeXBlLmdldCgpKSk7CiAgICAgICAgIGlmICghcXVpY2tMb29rTUlNRVR5cGUpIHsK
LSAgICAgICAgICAgIENGVVJMUmVmIHVybCA9IHdrR2V0Q0ZVUkxSZXNwb25zZVVSTChjZlJlc3Bv
bnNlKTsKLSAgICAgICAgICAgIE5TVVJMICpuc1VSTCA9IChOU1VSTCAqKXVybDsKLSAgICAgICAg
ICAgIGlmIChbbnNVUkwgaXNGaWxlVVJMXSkgeworICAgICAgICAgICAgYXV0byB1cmwgPSBDRlVS
TFJlc3BvbnNlR2V0VVJMKGNmUmVzcG9uc2UpOworICAgICAgICAgICAgaWYgKFsoTlNVUkwgKil1
cmwgaXNGaWxlVVJMXSkgewogICAgICAgICAgICAgICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4g
ZXh0ZW5zaW9uID0gYWRvcHRDRihDRlVSTENvcHlQYXRoRXh0ZW5zaW9uKHVybCkpOwogICAgICAg
ICAgICAgICAgIGlmIChleHRlbnNpb24pIHsKICAgICAgICAgICAgICAgICAgICAgUmV0YWluUHRy
PENGU3RyaW5nUmVmPiB1dGkgPSBhZG9wdENGKFVUVHlwZUNyZWF0ZVByZWZlcnJlZElkZW50aWZp
ZXJGb3JUYWcoa1VUVGFnQ2xhc3NGaWxlbmFtZUV4dGVuc2lvbiwgZXh0ZW5zaW9uLmdldCgpLCBu
dWxscHRyKSk7CkBAIC03Niw3ICs3NSw3IEBAIHZvaWQgYWRqdXN0TUlNRVR5cGVJZk5lY2Vzc2Fy
eShDRlVSTFJlc3BvbnNlUmVmIGNmUmVzcG9uc2UpCiAgICAgfQogI2VuZGlmIC8vIFVTRShRVUlD
S19MT09LKQogICAgIGlmICghbWltZVR5cGUgfHwgQ0ZTdHJpbmdDb21wYXJlKG1pbWVUeXBlLmdl
dCgpLCB1cGRhdGVkTUlNRVR5cGUuZ2V0KCksIGtDRkNvbXBhcmVDYXNlSW5zZW5zaXRpdmUpICE9
IGtDRkNvbXBhcmVFcXVhbFRvKQotICAgICAgICB3a1NldENGVVJMUmVzcG9uc2VNSU1FVHlwZShj
ZlJlc3BvbnNlLCB1cGRhdGVkTUlNRVR5cGUuZ2V0KCkpOworICAgICAgICBDRlVSTFJlc3BvbnNl
U2V0TUlNRVR5cGUoY2ZSZXNwb25zZSwgdXBkYXRlZE1JTUVUeXBlLmdldCgpKTsKIH0KIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9tYWMvUmVzb3VyY2VIYW5kbGVNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbQppbmRleCBjZGJlMDI1OGQ0MDEyMWYz
MTQwYjRmNDc5NDBjZmI5M2ZlNzcxOTY0Li43Yzk3YjJhYWUwZmQyODgxZWNmOGJjNWEzZTc5OWQ0
ZDVhMDliZTFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21h
Yy9SZXNvdXJjZUhhbmRsZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbQpAQCAtMTY4LDcgKzE2OCw3IEBAIHZvaWQgUmVz
b3VyY2VIYW5kbGU6OmNyZWF0ZU5TVVJMQ29ubmVjdGlvbihpZCBkZWxlZ2F0ZSwgYm9vbCBzaG91
bGRVc2VDcmVkZW50aWFsCiAgICAgTlNVUkxSZXF1ZXN0ICpuc1JlcXVlc3QgPSBmaXJzdFJlcXVl
c3QoKS5uc1VSTFJlcXVlc3QoVXBkYXRlSFRUUEJvZHkpOwogICAgIGlmICghc2hvdWxkQ29udGVu
dFNuaWZmKSB7CiAgICAgICAgIE5TTXV0YWJsZVVSTFJlcXVlc3QgKm11dGFibGVSZXF1ZXN0ID0g
W1tuc1JlcXVlc3QgbXV0YWJsZUNvcHldIGF1dG9yZWxlYXNlXTsKLSAgICAgICAgd2tTZXROU1VS
TFJlcXVlc3RTaG91bGRDb250ZW50U25pZmYobXV0YWJsZVJlcXVlc3QsIE5PKTsKKyAgICAgICAg
W211dGFibGVSZXF1ZXN0IF9zZXRQcm9wZXJ0eTpAKE5PKSBmb3JLZXk6KE5TU3RyaW5nICopX2tD
RlVSTENvbm5lY3Rpb25Qcm9wZXJ0eVNob3VsZFNuaWZmXTsKICAgICAgICAgbnNSZXF1ZXN0ID0g
bXV0YWJsZVJlcXVlc3Q7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZVJlc3BvbnNlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VSZXNwb25zZU1hYy5tbQpkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggNmZhMDBlMjQzNWU4M2U3OWY5N2Q0MzA4NjJkYjBiNDFkMzY2NTM3
Yi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZVJlc3BvbnNlTWFjLm1tCisrKyAv
ZGV2L251bGwKQEAgLTEsMTk1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYgQXBw
bGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuIAotICovCi0KLSNpbXBvcnQgImNvbmZpZy5oIgotI2ltcG9ydCAiUmVzb3VyY2VS
ZXNwb25zZS5oIgotCi0jaW1wb3J0ICJIVFRQUGFyc2Vycy5oIgotI2ltcG9ydCAiV2ViQ29yZVVS
TFJlc3BvbnNlLmgiCi0jaW1wb3J0ICJXZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmgiCi0jaW1wb3J0
IDxGb3VuZGF0aW9uL0ZvdW5kYXRpb24uaD4KLSNpbXBvcnQgPGxpbWl0cz4KLSNpbXBvcnQgPHd0
Zi9TdGRMaWJFeHRyYXMuaD4KLQotQGludGVyZmFjZSBOU1VSTFJlc3BvbnNlIChXZWJOU1VSTFJl
c3BvbnNlRGV0YWlscykKLS0gKE5TVGltZUludGVydmFsKV9jYWxjdWxhdGVkRXhwaXJhdGlvbjsK
LS0gKGlkKV9pbml0V2l0aENGVVJMUmVzcG9uc2U6KENGVVJMUmVzcG9uc2VSZWYpcmVzcG9uc2U7
Ci0tIChDRlVSTFJlc3BvbnNlUmVmKSBfQ0ZVUkxSZXNwb25zZTsKLSsgKGlkKV9yZXNwb25zZVdp
dGhDRlVSTFJlc3BvbnNlOihDRlVSTFJlc3BvbnNlUmVmKXJlc3BvbnNlOwotQGVuZAotCi0KLW5h
bWVzcGFjZSBXZWJDb3JlIHsKLQotdm9pZCBSZXNvdXJjZVJlc3BvbnNlOjppbml0TlNVUkxSZXNw
b25zZSgpIGNvbnN0Ci17Ci0gICAgaWYgKCFtX2h0dHBTdGF0dXNDb2RlIHx8ICFtX3VybC5wcm90
b2NvbElzSW5IVFRQRmFtaWx5KCkpIHsKLSAgICAgICAgLy8gV29yayBhcm91bmQgYSBtaXN0YWtl
IGluIHRoZSBOU1VSTFJlc3BvbnNlIGNsYXNzIC0gPHJkYXI6Ly9wcm9ibGVtLzY4NzUyMTk+Lgot
ICAgICAgICAvLyBUaGUgaW5pdCBmdW5jdGlvbiB0YWtlcyBhbiBOU0ludGVnZXIsIGV2ZW4gdGhv
dWdoIHRoZSBhY2Nlc3NvciByZXR1cm5zIGEgbG9uZyBsb25nLgotICAgICAgICAvLyBGb3IgdmFs
dWVzIHRoYXQgd29uJ3QgZml0IGluIGFuIE5TSW50ZWdlciwgcGFzcyAtMSBpbnN0ZWFkLgotICAg
ICAgICBOU0ludGVnZXIgZXhwZWN0ZWRDb250ZW50TGVuZ3RoOwotICAgICAgICBpZiAobV9leHBl
Y3RlZENvbnRlbnRMZW5ndGggPCAwIHx8IG1fZXhwZWN0ZWRDb250ZW50TGVuZ3RoID4gc3RkOjpu
dW1lcmljX2xpbWl0czxOU0ludGVnZXI+OjptYXgoKSkKLSAgICAgICAgICAgIGV4cGVjdGVkQ29u
dGVudExlbmd0aCA9IC0xOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBleHBlY3RlZENvbnRl
bnRMZW5ndGggPSBzdGF0aWNfY2FzdDxOU0ludGVnZXI+KG1fZXhwZWN0ZWRDb250ZW50TGVuZ3Ro
KTsKLQotICAgICAgICBOU1N0cmluZyogZW5jb2RpbmdOU1N0cmluZyA9IG5zU3RyaW5nTmlsSWZF
bXB0eShtX3RleHRFbmNvZGluZ05hbWUpOwotICAgICAgICBtX25zUmVzcG9uc2UgPSBhZG9wdE5T
KFtbTlNVUkxSZXNwb25zZSBhbGxvY10gaW5pdFdpdGhVUkw6bV91cmwgTUlNRVR5cGU6bV9taW1l
VHlwZSBleHBlY3RlZENvbnRlbnRMZW5ndGg6ZXhwZWN0ZWRDb250ZW50TGVuZ3RoIHRleHRFbmNv
ZGluZ05hbWU6ZW5jb2RpbmdOU1N0cmluZ10pOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0g
ICAgLy8gRklYTUU6IFdlIGxvc2UgdGhlIHN0YXR1cyB0ZXh0IGFuZCB0aGUgSFRUUCB2ZXJzaW9u
IGhlcmUuCi0gICAgTlNNdXRhYmxlRGljdGlvbmFyeSogaGVhZGVyRGljdGlvbmFyeSA9IFtOU011
dGFibGVEaWN0aW9uYXJ5IGRpY3Rpb25hcnldOwotICAgIGZvciAoYXV0byYgaGVhZGVyIDogbV9o
dHRwSGVhZGVyRmllbGRzKQotICAgICAgICBbaGVhZGVyRGljdGlvbmFyeSBzZXRPYmplY3Q6KE5T
U3RyaW5nICopaGVhZGVyLnZhbHVlIGZvcktleTooTlNTdHJpbmcgKiloZWFkZXIua2V5XTsKLQot
ICAgIG1fbnNSZXNwb25zZSA9IGFkb3B0TlMoW1tOU0hUVFBVUkxSZXNwb25zZSBhbGxvY10gaW5p
dFdpdGhVUkw6bV91cmwgc3RhdHVzQ29kZTptX2h0dHBTdGF0dXNDb2RlIEhUVFBWZXJzaW9uOihO
U1N0cmluZyopa0NGSFRUUFZlcnNpb24xXzEgaGVhZGVyRmllbGRzOmhlYWRlckRpY3Rpb25hcnld
KTsKLQotICAgIC8vIE1pbWUgdHlwZSBzbmlmZmluZyBkb2Vzbid0IHdvcmsgd2l0aCBhIHN5bnRo
ZXNpemVkIHJlc3BvbnNlLgotICAgIFttX25zUmVzcG9uc2UuZ2V0KCkgX3NldE1JTUVUeXBlOihO
U1N0cmluZyAqKW1fbWltZVR5cGVdOwotfQotCi0jaWYgVVNFKENGTkVUV09SSykKLQotTlNVUkxS
ZXNwb25zZSAqUmVzb3VyY2VSZXNwb25zZTo6bnNVUkxSZXNwb25zZSgpIGNvbnN0Ci17Ci0gICAg
aWYgKCFtX25zUmVzcG9uc2UgJiYgIW1fY2ZSZXNwb25zZSAmJiAhbV9pc051bGwpIHsKLSAgICAg
ICAgaW5pdE5TVVJMUmVzcG9uc2UoKTsKLSAgICAgICAgbV9jZlJlc3BvbnNlID0gW21fbnNSZXNw
b25zZS5nZXQoKSBfQ0ZVUkxSZXNwb25zZV07Ci0gICAgICAgIHJldHVybiBtX25zUmVzcG9uc2Uu
Z2V0KCk7Ci0gICAgfQotCi0gICAgaWYgKCFtX2NmUmVzcG9uc2UpCi0gICAgICAgIHJldHVybiBu
aWw7Ci0KLSAgICBpZiAoIW1fbnNSZXNwb25zZSkKLSAgICAgICAgbV9uc1Jlc3BvbnNlID0gW05T
VVJMUmVzcG9uc2UgX3Jlc3BvbnNlV2l0aENGVVJMUmVzcG9uc2U6bV9jZlJlc3BvbnNlLmdldCgp
XTsKLQotICAgIHJldHVybiBtX25zUmVzcG9uc2UuZ2V0KCk7Ci19Ci0KLVJlc291cmNlUmVzcG9u
c2U6OlJlc291cmNlUmVzcG9uc2UoTlNVUkxSZXNwb25zZSogbnNSZXNwb25zZSkKLSAgICA6IG1f
aW5pdExldmVsKFVuaW5pdGlhbGl6ZWQpCi0gICAgLCBtX3BsYXRmb3JtUmVzcG9uc2VJc1VwVG9E
YXRlKHRydWUpCi0gICAgLCBtX2NmUmVzcG9uc2UoW25zUmVzcG9uc2UgX0NGVVJMUmVzcG9uc2Vd
KQotICAgICwgbV9uc1Jlc3BvbnNlKG5zUmVzcG9uc2UpCi17Ci0gICAgbV9pc051bGwgPSAhbnNS
ZXNwb25zZTsKLX0KLQotI2Vsc2UKLQotc3RhdGljIE5TU3RyaW5nKiBjb25zdCBjb21tb25IZWFk
ZXJGaWVsZHNbXSA9IHsKLSAgICBAIkFnZSIsIEAiQ2FjaGUtQ29udHJvbCIsIEAiQ29udGVudC1U
eXBlIiwgQCJEYXRlIiwgQCJFdGFnIiwgQCJFeHBpcmVzIiwgQCJMYXN0LU1vZGlmaWVkIiwgQCJQ
cmFnbWEiCi19OwotCi1OU1VSTFJlc3BvbnNlICpSZXNvdXJjZVJlc3BvbnNlOjpuc1VSTFJlc3Bv
bnNlKCkgY29uc3QKLXsKLSAgICBpZiAoIW1fbnNSZXNwb25zZSAmJiAhbV9pc051bGwpCi0gICAg
ICAgIGluaXROU1VSTFJlc3BvbnNlKCk7Ci0gICAgcmV0dXJuIG1fbnNSZXNwb25zZS5nZXQoKTsK
LX0KLQotdm9pZCBSZXNvdXJjZVJlc3BvbnNlOjpwbGF0Zm9ybUxhenlJbml0KEluaXRMZXZlbCBp
bml0TGV2ZWwpCi17Ci0gICAgaWYgKG1faW5pdExldmVsID49IGluaXRMZXZlbCkKLSAgICAgICAg
cmV0dXJuOwotCi0gICAgaWYgKG1faXNOdWxsIHx8ICFtX25zUmVzcG9uc2UpCi0gICAgICAgIHJl
dHVybjsKLSAgICAKLSAgICBpZiAobV9pbml0TGV2ZWwgPCBDb21tb25GaWVsZHNPbmx5ICYmIGlu
aXRMZXZlbCA+PSBDb21tb25GaWVsZHNPbmx5KSB7Ci0gICAgICAgIE5TQXV0b3JlbGVhc2VQb29s
KiBwb29sID0gW1tOU0F1dG9yZWxlYXNlUG9vbCBhbGxvY10gaW5pdF07Ci0KLSAgICAgICAgbV9o
dHRwSGVhZGVyRmllbGRzLmNsZWFyKCk7Ci0gICAgICAgIG1fdXJsID0gW21fbnNSZXNwb25zZS5n
ZXQoKSBVUkxdOwotICAgICAgICBtX21pbWVUeXBlID0gW21fbnNSZXNwb25zZS5nZXQoKSBNSU1F
VHlwZV07Ci0gICAgICAgIG1fZXhwZWN0ZWRDb250ZW50TGVuZ3RoID0gW21fbnNSZXNwb25zZS5n
ZXQoKSBleHBlY3RlZENvbnRlbnRMZW5ndGhdOwotICAgICAgICBtX3RleHRFbmNvZGluZ05hbWUg
PSBbbV9uc1Jlc3BvbnNlLmdldCgpIHRleHRFbmNvZGluZ05hbWVdOwotCi0gICAgICAgIC8vIFdv
cmthcm91bmQgZm9yIDxyZGFyOi8vcHJvYmxlbS84NzU3MDg4PiwgY2FuIGJlIHJlbW92ZWQgb25j
ZSB0aGF0IGlzIGZpeGVkLgotICAgICAgICB1bnNpZ25lZCB0ZXh0RW5jb2RpbmdOYW1lTGVuZ3Ro
ID0gbV90ZXh0RW5jb2RpbmdOYW1lLmxlbmd0aCgpOwotICAgICAgICBpZiAodGV4dEVuY29kaW5n
TmFtZUxlbmd0aCA+PSAyICYmIG1fdGV4dEVuY29kaW5nTmFtZVswVV0gPT0gJyInICYmIG1fdGV4
dEVuY29kaW5nTmFtZVt0ZXh0RW5jb2RpbmdOYW1lTGVuZ3RoIC0gMV0gPT0gJyInKQotICAgICAg
ICAgICAgbV90ZXh0RW5jb2RpbmdOYW1lID0gbV90ZXh0RW5jb2RpbmdOYW1lLnN0cmluZygpLnN1
YnN0cmluZygxLCB0ZXh0RW5jb2RpbmdOYW1lTGVuZ3RoIC0gMik7Ci0KLSAgICAgICAgaWYgKFtt
X25zUmVzcG9uc2UuZ2V0KCkgaXNLaW5kT2ZDbGFzczpbTlNIVFRQVVJMUmVzcG9uc2UgY2xhc3Nd
XSkgewotICAgICAgICAgICAgTlNIVFRQVVJMUmVzcG9uc2UgKmh0dHBSZXNwb25zZSA9IChOU0hU
VFBVUkxSZXNwb25zZSAqKW1fbnNSZXNwb25zZS5nZXQoKTsKLQotICAgICAgICAgICAgbV9odHRw
U3RhdHVzQ29kZSA9IFtodHRwUmVzcG9uc2Ugc3RhdHVzQ29kZV07Ci0gICAgICAgICAgICAKLSAg
ICAgICAgICAgIGlmIChpbml0TGV2ZWwgPCBBbGxGaWVsZHMpIHsKLSAgICAgICAgICAgICAgICBO
U0RpY3Rpb25hcnkgKmhlYWRlcnMgPSBbaHR0cFJlc3BvbnNlIGFsbEhlYWRlckZpZWxkc107Ci0g
ICAgICAgICAgICAgICAgZm9yIChOU1N0cmluZyAqbmFtZSA6IGNvbW1vbkhlYWRlckZpZWxkcykg
ewotICAgICAgICAgICAgICAgICAgICBpZiAoTlNTdHJpbmcqIGhlYWRlclZhbHVlID0gW2hlYWRl
cnMgb2JqZWN0Rm9yS2V5Om5hbWVdKQotICAgICAgICAgICAgICAgICAgICAgICAgbV9odHRwSGVh
ZGVyRmllbGRzLnNldChuYW1lLCBoZWFkZXJWYWx1ZSk7Ci0gICAgICAgICAgICAgICAgfQotICAg
ICAgICAgICAgfQotICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgIG1faHR0cFN0YXR1c0NvZGUg
PSAwOwotICAgICAgICAKLSAgICAgICAgW3Bvb2wgZHJhaW5dOwotICAgIH0KLQotICAgIGlmICht
X2luaXRMZXZlbCA8IEFsbEZpZWxkcyAmJiBpbml0TGV2ZWwgPT0gQWxsRmllbGRzKSB7Ci0gICAg
ICAgIGlmIChbbV9uc1Jlc3BvbnNlLmdldCgpIGlzS2luZE9mQ2xhc3M6W05TSFRUUFVSTFJlc3Bv
bnNlIGNsYXNzXV0pIHsKLSAgICAgICAgICAgIE5TQXV0b3JlbGVhc2VQb29sKiBwb29sID0gW1tO
U0F1dG9yZWxlYXNlUG9vbCBhbGxvY10gaW5pdF07Ci0KLSAgICAgICAgICAgIE5TSFRUUFVSTFJl
c3BvbnNlICpodHRwUmVzcG9uc2UgPSAoTlNIVFRQVVJMUmVzcG9uc2UgKiltX25zUmVzcG9uc2Uu
Z2V0KCk7Ci0gICAgICAgICAgICBpZiAoUmV0YWluUHRyPE5TU3RyaW5nPiBodHRwU3RhdHVzTGlu
ZSA9IGFkb3B0TlMod2tDb3B5TlNVUkxSZXNwb25zZVN0YXR1c0xpbmUoaHR0cFJlc3BvbnNlKSkp
Ci0gICAgICAgICAgICAgICAgbV9odHRwU3RhdHVzVGV4dCA9IGV4dHJhY3RSZWFzb25QaHJhc2VG
cm9tSFRUUFN0YXR1c0xpbmUoaHR0cFN0YXR1c0xpbmUuZ2V0KCkpOwotICAgICAgICAgICAgZWxz
ZQotICAgICAgICAgICAgICAgIG1faHR0cFN0YXR1c1RleHQgPSBBdG9taWNTdHJpbmcoIk9LIiwg
QXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0KLSAgICAgICAgICAgIE5TRGlj
dGlvbmFyeSAqaGVhZGVycyA9IFtodHRwUmVzcG9uc2UgYWxsSGVhZGVyRmllbGRzXTsKLSAgICAg
ICAgICAgIGZvciAoTlNTdHJpbmcgKm5hbWUgaW4gaGVhZGVycykKLSAgICAgICAgICAgICAgICBt
X2h0dHBIZWFkZXJGaWVsZHMuc2V0KG5hbWUsIFtoZWFkZXJzIG9iamVjdEZvcktleTpuYW1lXSk7
Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIFtwb29sIGRyYWluXTsKLSAgICAgICAgfQotICAg
IH0KLQotICAgIG1faW5pdExldmVsID0gaW5pdExldmVsOwotfQotCi1DZXJ0aWZpY2F0ZUluZm8g
UmVzb3VyY2VSZXNwb25zZTo6cGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8oKSBjb25zdAotewotICAg
IEFTU0VSVChtX25zUmVzcG9uc2UpOwotICAgIHJldHVybiBDZXJ0aWZpY2F0ZUluZm8oYWRvcHRD
Rih3a0NvcHlOU1VSTFJlc3BvbnNlQ2VydGlmaWNhdGVDaGFpbihtX25zUmVzcG9uc2UuZ2V0KCkp
KSk7Ci19Ci0KLVN0cmluZyBSZXNvdXJjZVJlc3BvbnNlOjpwbGF0Zm9ybVN1Z2dlc3RlZEZpbGVu
YW1lKCkgY29uc3QKLXsKLSAgICByZXR1cm4gW25zVVJMUmVzcG9uc2UoKSBzdWdnZXN0ZWRGaWxl
bmFtZV07Ci19Ci0KLWJvb2wgUmVzb3VyY2VSZXNwb25zZTo6cGxhdGZvcm1Db21wYXJlKGNvbnN0
IFJlc291cmNlUmVzcG9uc2UmIGEsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIGIpCi17Ci0gICAg
cmV0dXJuIGEubnNVUkxSZXNwb25zZSgpID09IGIubnNVUkxSZXNwb25zZSgpOwotfQotCi0jZW5k
aWYgLy8gVVNFKENGTkVUV09SSykKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9XZWJDb3JlVVJMUmVzcG9u
c2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1dlYkNvcmVVUkxSZXNw
b25zZS5oCmluZGV4IDJiZTBhZTMyZmU0ZmNjYjU2MzhiNDlkOTRiODQ0NzA3ZTc4ZjM1Y2QuLjAz
M2I2MDhmYjNmOTZmMDFjZWFlMjM3NDUwNzczMDg5YzQwZGQ1NWIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1dlYkNvcmVVUkxSZXNwb25zZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1dlYkNvcmVVUkxSZXNwb25zZS5o
CkBAIC0yNiwxMSArMjYsMTAgQEAKICAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotdHlwZWRlZiBzdHJ1Y3Qg
X0NGVVJMUmVzcG9uc2UqIENGVVJMUmVzcG9uc2VSZWY7CisjaW5jbHVkZSAiQ0ZOZXR3b3JrU1BJ
LmgiCiAKICNpZmRlZiBfX09CSkNfXwogQGludGVyZmFjZSBOU1VSTFJlc3BvbnNlIChEZXRhaWxz
KQotLSAoQ0ZVUkxSZXNwb25zZVJlZilfQ0ZVUkxSZXNwb25zZTsKIC0gKHZvaWQpX3NldE1JTUVU
eXBlOihOU1N0cmluZyAqKXR5cGU7CiBAZW5kCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvbWFjL1dlYkNvcmVVUkxSZXNwb25zZS5tbSBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1dlYkNvcmVVUkxSZXNwb25zZS5tbQppbmRleCAwZmFi
ZjkzOTg5MzZiMzEyOTM5MjIxMTBjOTcyNWFjYTQ2OTMyZGVlLi41ZTNkYjcwMzJkYzc5ZWRiNTFk
OTZlYmFjMzQ1OGQyMmE2MDNmMzMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL21hYy9XZWJDb3JlVVJMUmVzcG9uc2UubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9tYWMvV2ViQ29yZVVSTFJlc3BvbnNlLm1tCkBAIC0yODgsMTMgKzI4
OCwxMiBAQCBzdGF0aWMgQ0ZEaWN0aW9uYXJ5UmVmIGNyZWF0ZUV4dGVuc2lvblRvTUlNRVR5cGVN
YXAoKQogCiB2b2lkIGFkanVzdE1JTUVUeXBlSWZOZWNlc3NhcnkoQ0ZVUkxSZXNwb25zZVJlZiBj
ZlJlc3BvbnNlKQogewotICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gcmVzdWx0ID0gd2tHZXRD
RlVSTFJlc3BvbnNlTUlNRVR5cGUoY2ZSZXNwb25zZSk7CisgICAgUmV0YWluUHRyPENGU3RyaW5n
UmVmPiByZXN1bHQgPSBDRlVSTFJlc3BvbnNlR2V0TUlNRVR5cGUoY2ZSZXNwb25zZSk7CiAgICAg
UmV0YWluUHRyPENGU3RyaW5nUmVmPiBvcmlnaW5hbFJlc3VsdCA9IHJlc3VsdDsKIAogICAgIGlm
ICghcmVzdWx0KSB7Ci0gICAgICAgIENGVVJMUmVmIHVybCA9IHdrR2V0Q0ZVUkxSZXNwb25zZVVS
TChjZlJlc3BvbnNlKTsKLSAgICAgICAgTlNVUkwgKm5zVVJMID0gKE5TVVJMICopdXJsOwotICAg
ICAgICBpZiAoW25zVVJMIGlzRmlsZVVSTF0pIHsKKyAgICAgICAgYXV0byB1cmwgPSBDRlVSTFJl
c3BvbnNlR2V0VVJMKGNmUmVzcG9uc2UpOworICAgICAgICBpZiAoWyhOU1VSTCAqKXVybCBpc0Zp
bGVVUkxdKSB7CiAgICAgICAgICAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IGV4dGVuc2lvbiA9
IGFkb3B0Q0YoQ0ZVUkxDb3B5UGF0aEV4dGVuc2lvbih1cmwpKTsKICAgICAgICAgICAgIGlmIChl
eHRlbnNpb24pIHsKICAgICAgICAgICAgICAgICAvLyA8cmRhcjovL3Byb2JsZW0vNzAwNzM4OT4g
Q29yZVR5cGVzIFVUSSBtYXAgaXMgbWlzc2luZyAxMDArIGZpbGUgZXh0ZW5zaW9ucyB0aGF0IEdh
dGVLZWVwZXIga25ldyBhYm91dApAQCAtMzIxLDcgKzMyMCw3IEBAIHZvaWQgYWRqdXN0TUlNRVR5
cGVJZk5lY2Vzc2FyeShDRlVSTFJlc3BvbnNlUmVmIGNmUmVzcG9uc2UpCiAgICAgfQogCiAgICAg
aWYgKHJlc3VsdCAhPSBvcmlnaW5hbFJlc3VsdCkKLSAgICAgICAgd2tTZXRDRlVSTFJlc3BvbnNl
TUlNRVR5cGUoY2ZSZXNwb25zZSwgcmVzdWx0LmdldCgpKTsKKyAgICAgICAgQ0ZVUkxSZXNwb25z
ZVNldE1JTUVUeXBlKGNmUmVzcG9uc2UsIHJlc3VsdC5nZXQoKSk7CiB9CiAjZW5kaWYKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3BpL2NmL0NGTmV0d29ya0Nvbm5lY3Rp
b25DYWNoZVNQSS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3BpL2NmL0NGTmV0d29ya0Nv
bm5lY3Rpb25DYWNoZVNQSS5oCmluZGV4IGNlMjkxMzUxN2JmMDg4MzJjNzQ4Yjk4MzgwNmIyODc0
ZDJiMGM2NzguLmU3MTA0ZTMyYjY1NmE5MmE3NjZkNTMzZWEwMzhjYWNhZmJiYjE5YmEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NwaS9jZi9DRk5ldHdvcmtDb25uZWN0aW9u
Q2FjaGVTUEkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcGkvY2YvQ0ZOZXR3b3Jr
Q29ubmVjdGlvbkNhY2hlU1BJLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChD
KSAyMDE0IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTQtMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKQEAgLTEwLDE3ICsxMCwxNyBAQAogICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQog
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KICAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
Ci0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKICNpZm5kZWYgQ0ZO
ZXR3b3JrQ29ubmVjdGlvbkNhY2hlU1BJX2gKQEAgLTMwLDEwICszMCwxNCBAQAogI2luY2x1ZGUg
PENGTmV0d29yay9DRk5ldHdvcmtDb25uZWN0aW9uQ2FjaGVQcml2Lmg+CiAjZWxzZQogZW51bSBI
VFRQQ29ubmVjdGlvbkNhY2hlTGltaXRLZXlzIHsKKyAgICBrSFRUUExvYWRXaWR0aCA9IDAsCisg
ICAga0hUVFBQcmlvcml0eU51bUxldmVscyA9IDMsCiAgICAga0hUVFBOdW1GYXN0TGFuZXMgPSA0
LAorICAgIGtIVFRQTWluaW11bUZhc3RMYW5lUHJpb3JpdHkgPSA1LAogfTsKICNlbmRpZgogCi1l
eHRlcm4gIkMiIHZvaWQgX0NGTmV0d29ya0hUVFBDb25uZWN0aW9uQ2FjaGVTZXRMaW1pdChIVFRQ
Q29ubmVjdGlvbkNhY2hlTGltaXRLZXlzLCBpbnQpOworRVhURVJOX0MgaW50IF9DRk5ldHdvcmtI
VFRQQ29ubmVjdGlvbkNhY2hlR2V0TGltaXQoSFRUUENvbm5lY3Rpb25DYWNoZUxpbWl0S2V5cyk7
CitFWFRFUk5fQyB2b2lkIF9DRk5ldHdvcmtIVFRQQ29ubmVjdGlvbkNhY2hlU2V0TGltaXQoSFRU
UENvbm5lY3Rpb25DYWNoZUxpbWl0S2V5cywgaW50KTsKIAotI2VuZGlmCisjZW5kaWYgLy8gQ0ZO
ZXR3b3JrQ29ubmVjdGlvbkNhY2hlU1BJX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3NwaS9jZi9DRk5ldHdvcmtTUEkuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3Nw
aS9jZi9DRk5ldHdvcmtTUEkuaAppbmRleCBlZWE1MjBhOTIzZDg3Y2Y4ZDk0NDliODUwNjg4ODc5
OGUwMzEwYjc5Li5mMTM1MTVlZTQxMTBjZDc1NzIzNjM5ZTFiZGNiMGE0NjkzYjlkYTNlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcGkvY2YvQ0ZOZXR3b3JrU1BJLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3BpL2NmL0NGTmV0d29ya1NQSS5oCkBAIC0yNiwx
NSArMjYsMjAgQEAKICNpZm5kZWYgQ0ZOZXR3b3JrU1BJX2gKICNkZWZpbmUgQ0ZOZXR3b3JrU1BJ
X2gKIAorI2luY2x1ZGUgIkNGTmV0d29ya0Nvbm5lY3Rpb25DYWNoZVNQSS5oIgogI2luY2x1ZGUg
PENGTmV0d29yay9DRk5ldHdvcmsuaD4KIAogI2lmIFBMQVRGT1JNKFdJTikgfHwgVVNFKEFQUExF
X0lOVEVSTkFMX1NESykKIAotI2luY2x1ZGUgPENGTmV0d29yay9DRkhUVFBDb29raWVzLmg+CiAj
aW5jbHVkZSA8Q0ZOZXR3b3JrL0NGSFRUUENvb2tpZXNQcml2Lmg+CisjaW5jbHVkZSA8Q0ZOZXR3
b3JrL0NGUHJveHlTdXBwb3J0UHJpdi5oPgogI2luY2x1ZGUgPENGTmV0d29yay9DRlVSTENhY2hl
UHJpdi5oPgorI2luY2x1ZGUgPENGTmV0d29yay9DRlVSTENvbm5lY3Rpb25Qcml2Lmg+CisjaW5j
bHVkZSA8Q0ZOZXR3b3JrL0NGVVJMQ3JlZGVudGlhbFN0b3JhZ2UuaD4KICNpbmNsdWRlIDxDRk5l
dHdvcmsvQ0ZVUkxQcm90b2NvbFByaXYuaD4KLSNpbmNsdWRlIDxDRk5ldHdvcmsvQ0ZVUkxSZXF1
ZXN0Lmg+CisjaW5jbHVkZSA8Q0ZOZXR3b3JrL0NGVVJMUmVxdWVzdFByaXYuaD4KKyNpbmNsdWRl
IDxDRk5ldHdvcmsvQ0ZVUkxSZXNwb25zZVByaXYuaD4KKyNpbmNsdWRlIDxDRk5ldHdvcmsvQ0ZV
UkxTdG9yYWdlU2Vzc2lvbi5oPgogCiAvLyBGSVhNRTogUmVtb3ZlIHRoZSBkZWZpbmVkKF9fT0JK
Q19fKS1ndWFyZCBvbm5jZSB3ZSBmaXggPHJkYXI6Ly9wcm9ibGVtLzE5MDMzNjEwPi4KICNpZiBk
ZWZpbmVkKF9fT0JKQ19fKSAmJiAoUExBVEZPUk0oSU9TKSB8fCBfX01BQ19PU19YX1ZFUlNJT05f
TUlOX1JFUVVJUkVEID49IDEwMTAwMCkKQEAgLTU0LDYgKzU5LDEyIEBAIGV4dGVybiAiQyIgewog
I2Vsc2UgLy8gUExBVEZPUk0oV0lOKSB8fCBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQogCiAjaWYg
ZGVmaW5lZChfX09CSkNfXykKK0BpbnRlcmZhY2UgTlNVUkxSZXNwb25zZSAoKQorKyAoTlNVUkxS
ZXNwb25zZSAqKV9yZXNwb25zZVdpdGhDRlVSTFJlc3BvbnNlOihDRlVSTFJlc3BvbnNlUmVmKXJl
c3BvbnNlOworLSAoQ0ZVUkxSZXNwb25zZVJlZilfQ0ZVUkxSZXNwb25zZTsKKy0gKE5TRGF0ZSAq
KV9sYXN0TW9kaWZpZWREYXRlOworQGVuZAorCiBAaW50ZXJmYWNlIE5TVVJMU2Vzc2lvblRhc2sg
KFRpbWluZ0RhdGEpCiAtIChOU0RpY3Rpb25hcnkgKilfdGltaW5nRGF0YTsKIEBlbmQKQEAgLTY0
LDEyICs3NSwyMCBAQCB0eXBlZGVmIENGX0VOVU0oaW50NjRfdCwgX1RpbWluZ0RhdGFPcHRpb25z
KQogICAgIF9UaW1pbmdEYXRhT3B0aW9uc0VuYWJsZVczQ05hdmlnYXRpb25UaW1pbmcgPSAoMSA8
PCAwKQogfTsKIAotdHlwZWRlZiBzdHJ1Y3QgT3BhcXVlQ0ZIVFRQQ29va2llU3RvcmFnZSogQ0ZI
VFRQQ29va2llU3RvcmFnZVJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IF9DRkNhY2hlZFVSTFJl
c3BvbnNlKiBDRkNhY2hlZFVSTFJlc3BvbnNlUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgX0NG
VVJMQ2FjaGUqIENGVVJMQ2FjaGVSZWY7Ci10eXBlZGVmIGNvbnN0IHN0cnVjdCBfQ0ZVUkxSZXF1
ZXN0ICpDRlVSTFJlcXVlc3RSZWY7Cit0eXBlZGVmIGNvbnN0IHN0cnVjdCBfQ0ZVUkxDcmVkZW50
aWFsKiBDRlVSTENyZWRlbnRpYWxSZWY7Cit0eXBlZGVmIGNvbnN0IHN0cnVjdCBfQ0ZVUkxSZXF1
ZXN0KiBDRlVSTFJlcXVlc3RSZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBfX0NGVVJMU3RvcmFn
ZVNlc3Npb24qIENGVVJMU3RvcmFnZVNlc3Npb25SZWY7Ci10eXBlZGVmIGNvbnN0IHN0cnVjdCBf
X0NGRGF0YSAqQ0ZEYXRhUmVmOwordHlwZWRlZiBjb25zdCBzdHJ1Y3QgX19DRkRhdGEqIENGRGF0
YVJlZjsKK3R5cGVkZWYgc3RydWN0IF9DRlVSTENvbm5lY3Rpb24qIENGVVJMQ29ubmVjdGlvblJl
ZjsKK3R5cGVkZWYgc3RydWN0IF9DRlVSTENyZWRlbnRpYWxTdG9yYWdlKiBDRlVSTENyZWRlbnRp
YWxTdG9yYWdlUmVmOwordHlwZWRlZiBzdHJ1Y3QgX0NGVVJMUHJvdGVjdGlvblNwYWNlKiBDRlVS
TFByb3RlY3Rpb25TcGFjZVJlZjsKK3R5cGVkZWYgc3RydWN0IF9DRlVSTFJlcXVlc3QqIENGTXV0
YWJsZVVSTFJlcXVlc3RSZWY7Cit0eXBlZGVmIHN0cnVjdCBfQ0ZVUkxSZXNwb25zZSogQ0ZVUkxS
ZXNwb25zZVJlZjsKK3R5cGVkZWYgc3RydWN0IE9wYXF1ZUNGSFRUUENvb2tpZVN0b3JhZ2UqIENG
SFRUUENvb2tpZVN0b3JhZ2VSZWY7Cit0eXBlZGVmIENGSW5kZXggQ0ZVUkxSZXF1ZXN0UHJpb3Jp
dHk7Cit0eXBlZGVmIGludCBDRkhUVFBDb29raWVTdG9yYWdlQWNjZXB0UG9saWN5OwogCiAjaWZk
ZWYgX19CTE9DS1NfXwogdHlwZWRlZiB2b2lkICheQ0ZDYWNoZWRVUkxSZXNwb25zZUNhbGxCYWNr
QmxvY2spKENGQ2FjaGVkVVJMUmVzcG9uc2VSZWYpOwpAQCAtMTAyLDYgKzEyMSwyNiBAQCBFWFRF
Uk5fQyB2b2lkIF9DRkNhY2hlZFVSTFJlc3BvbnNlU2V0QmVjYW1lRmlsZUJhY2tlZENhbGxCYWNr
QmxvY2soQ0ZDYWNoZWRVUkxSZQogRVhURVJOX0Mgdm9pZCBDRlVSTENvbm5lY3Rpb25JbnZhbGlk
YXRlQ29ubmVjdGlvbkNhY2hlKCk7CiAKIEVYVEVSTl9DIENGU3RyaW5nUmVmIGNvbnN0IGtDRkhU
VFBDb29raWVMb2NhbEZpbGVEb21haW47CitFWFRFUk5fQyBjb25zdCBDRlN0cmluZ1JlZiBfa0NG
VVJMQ29ubmVjdGlvblByb3BlcnR5U2hvdWxkU25pZmY7CitFWFRFUk5fQyBjb25zdCBDRlN0cmlu
Z1JlZiBrQ0ZVUkxSZXF1ZXN0QWxsb3dBbGxQT1NUQ2FjaGluZzsKKworRVhURVJOX0MgQ0ZIVFRQ
Q29va2llU3RvcmFnZVJlZiBfQ0ZIVFRQQ29va2llU3RvcmFnZUdldERlZmF1bHQoQ0ZBbGxvY2F0
b3JSZWYpOworRVhURVJOX0Mgdm9pZCBDRkhUVFBDb29raWVTdG9yYWdlU2V0Q29va2llQWNjZXB0
UG9saWN5KENGSFRUUENvb2tpZVN0b3JhZ2VSZWYsIENGSFRUUENvb2tpZVN0b3JhZ2VBY2NlcHRQ
b2xpY3kpOworRVhURVJOX0Mgdm9pZCBfQ0ZOZXR3b3JrU2V0T3ZlcnJpZGVTeXN0ZW1Qcm94eVNl
dHRpbmdzKENGRGljdGlvbmFyeVJlZik7CitFWFRFUk5fQyBDRlVSTENyZWRlbnRpYWxTdG9yYWdl
UmVmIENGVVJMQ3JlZGVudGlhbFN0b3JhZ2VDcmVhdGUoQ0ZBbGxvY2F0b3JSZWYpOworRVhURVJO
X0MgQ0ZVUkxDcmVkZW50aWFsUmVmIENGVVJMQ3JlZGVudGlhbFN0b3JhZ2VDb3B5RGVmYXVsdENy
ZWRlbnRpYWxGb3JQcm90ZWN0aW9uU3BhY2UoQ0ZVUkxDcmVkZW50aWFsU3RvcmFnZVJlZiwgQ0ZV
UkxQcm90ZWN0aW9uU3BhY2VSZWYpOworRVhURVJOX0MgQ0ZVUkxSZXF1ZXN0UHJpb3JpdHkgQ0ZV
UkxSZXF1ZXN0R2V0UmVxdWVzdFByaW9yaXR5KENGVVJMUmVxdWVzdFJlZik7CitFWFRFUk5fQyB2
b2lkIF9DRlVSTFJlcXVlc3RTZXRQcm90b2NvbFByb3BlcnR5KENGVVJMUmVxdWVzdFJlZiwgQ0ZT
dHJpbmdSZWYsIENGVHlwZVJlZik7CitFWFRFUk5fQyB2b2lkIENGVVJMUmVxdWVzdFNldFJlcXVl
c3RQcmlvcml0eShDRlVSTFJlcXVlc3RSZWYsIENGVVJMUmVxdWVzdFByaW9yaXR5KTsKK0VYVEVS
Tl9DIHZvaWQgQ0ZVUkxSZXF1ZXN0U2V0U2hvdWxkUGlwZWxpbmVIVFRQKENGVVJMUmVxdWVzdFJl
ZiwgQm9vbGVhbiwgQm9vbGVhbik7CitFWFRFUk5fQyB2b2lkIF9DRlVSTFJlcXVlc3RTZXRTdG9y
YWdlU2Vzc2lvbihDRk11dGFibGVVUkxSZXF1ZXN0UmVmLCBDRlVSTFN0b3JhZ2VTZXNzaW9uUmVm
KTsKK0VYVEVSTl9DIENGU3RyaW5nUmVmIENGVVJMUmVzcG9uc2VDb3B5U3VnZ2VzdGVkRmlsZW5h
bWUoQ0ZVUkxSZXNwb25zZVJlZik7CitFWFRFUk5fQyBDRkhUVFBNZXNzYWdlUmVmIENGVVJMUmVz
cG9uc2VHZXRIVFRQUmVzcG9uc2UoQ0ZVUkxSZXNwb25zZVJlZik7CitFWFRFUk5fQyBDRlN0cmlu
Z1JlZiBDRlVSTFJlc3BvbnNlR2V0TUlNRVR5cGUoQ0ZVUkxSZXNwb25zZVJlZik7CitFWFRFUk5f
QyBDRkRpY3Rpb25hcnlSZWYgX0NGVVJMUmVzcG9uc2VHZXRTU0xDZXJ0aWZpY2F0ZUNvbnRleHQo
Q0ZVUkxSZXNwb25zZVJlZik7CitFWFRFUk5fQyBDRlVSTFJlZiBDRlVSTFJlc3BvbnNlR2V0VVJM
KENGVVJMUmVzcG9uc2VSZWYpOworRVhURVJOX0Mgdm9pZCBDRlVSTFJlc3BvbnNlU2V0TUlNRVR5
cGUoQ0ZVUkxSZXNwb25zZVJlZiwgQ0ZTdHJpbmdSZWYpOworRVhURVJOX0MgQ0ZIVFRQQ29va2ll
U3RvcmFnZVJlZiBfQ0ZVUkxTdG9yYWdlU2Vzc2lvbkNvcHlDb29raWVTdG9yYWdlKENGQWxsb2Nh
dG9yUmVmLCBDRlVSTFN0b3JhZ2VTZXNzaW9uUmVmKTsKIAogLy8gRklYTUU6IFdlIHNob3VsZCBv
bmx5IGZvcndhcmQgZGVjbGFyZSB0aGlzIFNQSSB3aGVuIGJ1aWxkaW5nIGZvciBpT1Mgd2l0aG91
dCB0aGUgQXBwbGUgSW50ZXJuYWwgU0RLLgogLy8gQXMgYSB3b3JrYXJvdW5kIGZvciA8cmRhcjov
L3Byb2JsZW0vMTkwMjUwMTY+LCB3ZSBtdXN0IGZvcndhcmQgZGVjbGFyZSB0aGlzIFNQSSByZWdh
cmRsZXNzIG9mIHdoZXRoZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMv
SG9zdGVkL0hvc3RlZE5ldHNjYXBlUGx1Z2luU3RyZWFtLm1tIGIvU291cmNlL1dlYktpdC9tYWMv
UGx1Z2lucy9Ib3N0ZWQvSG9zdGVkTmV0c2NhcGVQbHVnaW5TdHJlYW0ubW0KaW5kZXggYzZmYmI3
MWU1ZmIwZjdkNTM2ZGQ3NzVhZGZkYTFhNmMwYzcwODkwMC4uYzE2NmVkMDAyMzI2ZjI3MGE4MTk3
NThhNDJiYjg5NzkzZTMxZjFiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lu
cy9Ib3N0ZWQvSG9zdGVkTmV0c2NhcGVQbHVnaW5TdHJlYW0ubW0KKysrIGIvU291cmNlL1dlYktp
dC9tYWMvUGx1Z2lucy9Ib3N0ZWQvSG9zdGVkTmV0c2NhcGVQbHVnaW5TdHJlYW0ubW0KQEAgLTM3
LDYgKzM3LDcgQEAKICNpbXBvcnQgIldlYk5TVVJMRXh0cmFzLmgiCiAjaW1wb3J0ICJXZWJOU1VS
TFJlcXVlc3RFeHRyYXMuaCIKICNpbXBvcnQgIldlYlJlc291cmNlTG9hZFNjaGVkdWxlci5oIgor
I2ltcG9ydCA8V2ViQ29yZS9DRk5ldHdvcmtTUEkuaD4KICNpbXBvcnQgPFdlYkNvcmUvRG9jdW1l
bnQuaD4KICNpbXBvcnQgPFdlYkNvcmUvRG9jdW1lbnRMb2FkZXIuaD4KICNpbXBvcnQgPFdlYkNv
cmUvRnJhbWUuaD4KQEAgLTE4OSw3ICsxOTAsNyBAQCB2b2lkIEhvc3RlZE5ldHNjYXBlUGx1Z2lu
U3RyZWFtOjpkaWRSZWNlaXZlUmVzcG9uc2UoTmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXIqLAog
ICAgICAgICBbdGhlSGVhZGVycyBhcHBlbmRCeXRlczoiXDAiIGxlbmd0aDoxXTsKICAgICB9CiAg
ICAgCi0gICAgc3RhcnRTdHJlYW0oW3IgVVJMXSwgZXhwZWN0ZWRDb250ZW50TGVuZ3RoLCBXS0dl
dE5TVVJMUmVzcG9uc2VMYXN0TW9kaWZpZWREYXRlKHIpLCBbciBNSU1FVHlwZV0sIHRoZUhlYWRl
cnMpOworICAgIHN0YXJ0U3RyZWFtKFtyIFVSTF0sIGV4cGVjdGVkQ29udGVudExlbmd0aCwgW3Ig
X2xhc3RNb2RpZmllZERhdGVdLCBbciBNSU1FVHlwZV0sIHRoZUhlYWRlcnMpOwogfQogCiBOUFJl
YXNvbiBIb3N0ZWROZXRzY2FwZVBsdWdpblN0cmVhbTo6cmVhc29uRm9yRXJyb3IoTlNFcnJvciAq
ZXJyb3IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL1dlYk5ldHNjYXBl
UGx1Z2luU3RyZWFtLm1tIGIvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9XZWJOZXRzY2FwZVBs
dWdpblN0cmVhbS5tbQppbmRleCBlYzE3NmFlY2ZlMWEzZTE1MjJiYjcxMGQzNzFlM2NjNGM0ZDYy
YzRkLi40MWI0ODE3YTBlY2VjYWYyNjJhMmFmNDAzMTE2NTVlZjRjOTFkZjU2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2luU3RyZWFtLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5TdHJlYW0ubW0K
QEAgLTM5LDYgKzM5LDcgQEAKICNpbXBvcnQgIldlYk5ldHNjYXBlUGx1Z2luVmlldy5oIgogI2lt
cG9ydCAiV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmgiCiAjaW1wb3J0IDxGb3VuZGF0aW9uL05T
VVJMUmVzcG9uc2UuaD4KKyNpbXBvcnQgPFdlYkNvcmUvQ0ZOZXR3b3JrU1BJLmg+CiAjaW1wb3J0
IDxXZWJDb3JlL0RvY3VtZW50Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0RvY3VtZW50TG9hZGVyLmg+
CiAjaW1wb3J0IDxXZWJDb3JlL0ZyYW1lLmg+CkBAIC0zNTgsNyArMzU5LDcgQEAgdm9pZCBXZWJO
ZXRzY2FwZVBsdWdpblN0cmVhbTo6ZGlkUmVjZWl2ZVJlc3BvbnNlKE5ldHNjYXBlUGx1Z0luU3Ry
ZWFtTG9hZGVyKiwgY28KICAgICAgICAgLy8gc3RhcnRTdHJlYW1SZXNwb25zZVVSTDouLi4gd2ls
bCBudWxsLXRlcm1pbmF0ZS4KICAgICB9CiAgICAgCi0gICAgc3RhcnRTdHJlYW0oW3IgVVJMXSwg
ZXhwZWN0ZWRDb250ZW50TGVuZ3RoLCBXS0dldE5TVVJMUmVzcG9uc2VMYXN0TW9kaWZpZWREYXRl
KHIpLCByZXNwb25zZS5taW1lVHlwZSgpLCB0aGVIZWFkZXJzKTsKKyAgICBzdGFydFN0cmVhbShb
ciBVUkxdLCBleHBlY3RlZENvbnRlbnRMZW5ndGgsIFtyIF9sYXN0TW9kaWZpZWREYXRlXSwgcmVz
cG9uc2UubWltZVR5cGUoKSwgdGhlSGVhZGVycyk7CiB9CiAKIHZvaWQgV2ViTmV0c2NhcGVQbHVn
aW5TdHJlYW06OnN0YXJ0U3RyZWFtV2l0aFJlc3BvbnNlKE5TVVJMUmVzcG9uc2UgKnJlc3BvbnNl
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViU3lzdGVt
SW50ZXJmYWNlLm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViU3lzdGVt
SW50ZXJmYWNlLm1tCmluZGV4IDE0YzFiYzZjNmI2MWVlNWM2Y2M4NDY2MTVjNDg5ZDNhZDRlNGMx
MzIuLmE4OGRjMzU2M2RjNzhjNTdlMWM4ZjYzNGQ5MGNiYmI5OTllYmU2YTkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlN5c3RlbUludGVyZmFjZS5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJTeXN0ZW1JbnRlcmZhY2Uu
bW0KQEAgLTQ2LDE4ICs0NiwxMiBAQCB2b2lkIEluaXRXZWJDb3JlU3lzdGVtSW50ZXJmYWNlKHZv
aWQpCiAgICAgSU5JVChBZHZhbmNlRGVmYXVsdEJ1dHRvblB1bHNlQW5pbWF0aW9uKTsKICNlbmRp
ZgogICAgIElOSVQoQ0FMYXllckVudW1lcmF0ZVJlY3RzQmVpbmdEcmF3bldpdGhCbG9jayk7Ci0j
aWYgIVBMQVRGT1JNKElPUykKLSAgICBJTklUKENHQ29udGV4dEdldFNob3VsZFNtb290aEZvbnRz
KTsKLSNlbmRpZgogICAgIElOSVQoQ0dQYXR0ZXJuQ3JlYXRlV2l0aEltYWdlQW5kVHJhbnNmb3Jt
KTsKICNpZiAhUExBVEZPUk0oSU9TKQogICAgIElOSVQoQ0dDb250ZXh0RHJhd3NXaXRoQ29ycmVj
dFNoYWRvd09mZnNldHMpOwogI2VuZGlmCiAgICAgSU5JVChDb3B5Q09OTkVDVFByb3h5UmVzcG9u
c2UpOwotICAgIElOSVQoQ29weU5TVVJMUmVzcG9uc2VTdGF0dXNMaW5lKTsKLSAgICBJTklUKENv
cHlOU1VSTFJlc3BvbnNlQ2VydGlmaWNhdGVDaGFpbik7CiAjaWYgIVBMQVRGT1JNKElPUykKLSAg
ICBJTklUKERyYXdDYXBzTG9ja0luZGljYXRvcik7CiAgICAgSU5JVChEcmF3QmV6ZWxlZFRleHRB
cmVhKTsKICAgICBJTklUKERyYXdGb2N1c1JpbmcpOwogICAgIElOSVQoRHJhd0ZvY3VzUmluZ0F0
VGltZSk7CkBAIC02NSw0NyArNTksMzQgQEAgdm9pZCBJbml0V2ViQ29yZVN5c3RlbUludGVyZmFj
ZSh2b2lkKQogICAgIElOSVQoRHJhd01lZGlhVUlQYXJ0KTsKICAgICBJTklUKERyYXdNZWRpYVNs
aWRlclRyYWNrKTsKICNlbmRpZgotICAgIElOSVQoR2V0SFRUUFJlcXVlc3RQcmlvcml0eSk7Ci0g
ICAgSU5JVChHZXROU1VSTFJlc3BvbnNlTGFzdE1vZGlmaWVkRGF0ZSk7CiAgICAgSU5JVChHZXRX
ZWJEZWZhdWx0Q0ZTdHJpbmdFbmNvZGluZyk7CiAjaWYgIVBMQVRGT1JNKElPUykKICAgICBJTklU
KFNpZ25lZFB1YmxpY0tleUFuZENoYWxsZW5nZVN0cmluZyk7CiAgICAgSU5JVChHZXRXaGVlbEV2
ZW50RGVsdGFzKTsKICAgICBJTklUKEdldE5TRXZlbnRLZXlDaGFyKTsKICAgICBJTklUKEhpdFRl
c3RNZWRpYVVJUGFydCk7Ci0jZW5kaWYKLSAgICBJTklUKEluaXRpYWxpemVNYXhpbXVtSFRUUENv
bm5lY3Rpb25Db3VudFBlckhvc3QpOwotI2lmICFQTEFURk9STShJT1MpCiAgICAgSU5JVChNZWFz
dXJlTWVkaWFVSVBhcnQpOwogICAgIElOSVQoQ3JlYXRlTWVkaWFVSUJhY2tncm91bmRWaWV3KTsK
ICAgICBJTklUKENyZWF0ZU1lZGlhVUlDb250cm9sKTsKICAgICBJTklUKFdpbmRvd1NldEFscGhh
KTsKICAgICBJTklUKFdpbmRvd1NldFNjYWxlZEZyYW1lKTsKLSAgICBJTklUKFNldENHRm9udFJl
bmRlcmluZ01vZGUpOwogI2VuZGlmCiAgICAgSU5JVChTZXRDT05ORUNUUHJveHlBdXRob3JpemF0
aW9uRm9yU3RyZWFtKTsKICAgICBJTklUKFNldENPTk5FQ1RQcm94eUZvclN0cmVhbSk7CiAjaWYg
IVBMQVRGT1JNKElPUykKICAgICBJTklUKFNldERyYWdJbWFnZSk7CiAjZW5kaWYKLSAgICBJTklU
KFNldEhUVFBSZXF1ZXN0TWF4aW11bVByaW9yaXR5KTsKLSAgICBJTklUKFNldEhUVFBSZXF1ZXN0
UHJpb3JpdHkpOwotICAgIElOSVQoU2V0SFRUUFJlcXVlc3RNaW5pbXVtRmFzdExhbmVQcmlvcml0
eSk7Ci0gICAgSU5JVChIVFRQUmVxdWVzdEVuYWJsZVBpcGVsaW5pbmcpOwotICAgIElOSVQoU2V0
TlNVUkxSZXF1ZXN0U2hvdWxkQ29udGVudFNuaWZmKTsKICAgICBJTklUKENHQ29udGV4dElzUERG
Q29udGV4dCk7CiAjaWYgRU5BQkxFKFZJREVPKSAmJiAhUExBVEZPUk0oSU9TKQogICAgIElOSVQo
UVRJbmNsdWRlT25seU1vZGVybk1lZGlhRmlsZVR5cGVzKTsKICAgICBJTklUKFFUTW92aWVEaXNh
YmxlQ29tcG9uZW50KTsKICAgICBJTklUKFFUTW92aWVNYXhUaW1lTG9hZGVkKTsKICAgICBJTklU
KFFUTW92aWVNYXhUaW1lTG9hZGVkQ2hhbmdlTm90aWZpY2F0aW9uKTsKLSAgICBJTklUKFFUTW92
aWVNYXhUaW1lU2Vla2FibGUpOwogICAgIElOSVQoUVRNb3ZpZUdldFR5cGUpOwogICAgIElOSVQo
UVRNb3ZpZUhhc0Nsb3NlZENhcHRpb25zKTsKICAgICBJTklUKFFUTW92aWVSZXNvbHZlZFVSTCk7
CiAgICAgSU5JVChRVE1vdmllU2V0U2hvd0Nsb3NlZENhcHRpb25zKTsKICAgICBJTklUKFFUTW92
aWVTZWxlY3RQcmVmZXJyZWRBbHRlcm5hdGVzKTsKLSAgICBJTklUKFFUTW92aWVWaWV3U2V0RHJh
d1N5bmNocm9ub3VzbHkpOwogICAgIElOSVQoUVRHZXRTaXRlc0luTWVkaWFEb3dubG9hZENhY2hl
KTsKICAgICBJTklUKFFUQ2xlYXJNZWRpYURvd25sb2FkQ2FjaGVGb3JTaXRlKTsKICAgICBJTklU
KFFUQ2xlYXJNZWRpYURvd25sb2FkQ2FjaGUpOwpAQCAtMTE1LDE2ICs5Niw2IEBAIHZvaWQgSW5p
dFdlYkNvcmVTeXN0ZW1JbnRlcmZhY2Uodm9pZCkKICAgICBJTklUKEV4ZWN1dGFibGVXYXNMaW5r
ZWRPbk9yQmVmb3JlU25vd0xlb3BhcmQpOwogICAgIElOSVQoQ29weURlZmF1bHRTZWFyY2hQcm92
aWRlckRpc3BsYXlOYW1lKTsKICAgICBJTklUKEN1cnNvcik7Ci0jZW5kaWYKLQotI2lmIFVTRShD
Rk5FVFdPUkspCi0gICAgSU5JVChHZXREZWZhdWx0SFRUUENvb2tpZVN0b3JhZ2UpOwotICAgIElO
SVQoQ29weUNyZWRlbnRpYWxGcm9tQ0ZQZXJzaXN0ZW50U3RvcmFnZSk7Ci0gICAgSU5JVChTZXRD
RlVSTFJlcXVlc3RTaG91bGRDb250ZW50U25pZmYpOwotICAgIElOSVQoU2V0UmVxdWVzdFN0b3Jh
Z2VTZXNzaW9uKTsKLSNlbmRpZgotCi0jaWYgIVBMQVRGT1JNKElPUykKICAgICBJTklUKFNwZWVj
aFN5bnRoZXNpc0dldFZvaWNlSWRlbnRpZmllcnMpOwogICAgIElOSVQoU3BlZWNoU3ludGhlc2lz
R2V0RGVmYXVsdFZvaWNlSWRlbnRpZmllckZvckxvY2FsZSk7CiAgICAgSU5JVChHZXRBWFRleHRN
YXJrZXJUeXBlSUQpOwpAQCAtMTQwLDcgKzExMSw2IEBAIHZvaWQgSW5pdFdlYkNvcmVTeXN0ZW1J
bnRlcmZhY2Uodm9pZCkKICNlbmRpZgogICAgIElOSVQoQ3JlYXRlUHJpdmF0ZVN0b3JhZ2VTZXNz
aW9uKTsKICAgICBJTklUKENvcHlSZXF1ZXN0V2l0aFN0b3JhZ2VTZXNzaW9uKTsKLSAgICBJTklU
KENvcHlIVFRQQ29va2llU3RvcmFnZSk7CiAgICAgSU5JVChHZXRIVFRQQ29va2llQWNjZXB0UG9s
aWN5KTsKICAgICBJTklUKEhUVFBDb29raWVzKTsKICAgICBJTklUKEhUVFBDb29raWVzRm9yVVJM
KTsKQEAgLTE0OCwxOSArMTE4LDggQEAgdm9pZCBJbml0V2ViQ29yZVN5c3RlbUludGVyZmFjZSh2
b2lkKQogICAgIElOSVQoRGVsZXRlQWxsSFRUUENvb2tpZXMpOwogICAgIElOSVQoRGVsZXRlSFRU
UENvb2tpZSk7CiAKLSAgICBJTklUKEdldENGVVJMUmVzcG9uc2VNSU1FVHlwZSk7Ci0gICAgSU5J
VChHZXRDRlVSTFJlc3BvbnNlVVJMKTsKLSAgICBJTklUKEdldENGVVJMUmVzcG9uc2VIVFRQUmVz
cG9uc2UpOwotICAgIElOSVQoQ29weUNGVVJMUmVzcG9uc2VTdWdnZXN0ZWRGaWxlbmFtZSk7Ci0g
ICAgSU5JVChTZXRDRlVSTFJlc3BvbnNlTUlNRVR5cGUpOwotCiAjaWYgIVBMQVRGT1JNKElPUykK
ICAgICBJTklUKFNldE1ldGFkYXRhVVJMKTsKLSNlbmRpZgotCi0gICAgSU5JVChDRlVSTFJlcXVl
c3RBbGxvd0FsbFBvc3RDYWNoaW5nKTsKLQotI2lmICFQTEFURk9STShJT1MpCiAgICAgSU5JVChO
U0VsYXN0aWNEZWx0YUZvclRpbWVEZWx0YSk7CiAgICAgSU5JVChOU0VsYXN0aWNEZWx0YUZvclJl
Ym91bmREZWx0YSk7CiAgICAgSU5JVChOU1JlYm91bmREZWx0YUZvckVsYXN0aWNEZWx0YSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tIGIv
U291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbQppbmRleCAwMTBmYThi
Nzc3MjlkMGM0ZWFlNmI0OWY5MzFkZTA0OTI2ZDNjYjI3Li41ZDhiZWU3NzQwNDMxYzMxMDAyMjc2
NDQ5MGIwMmEzZDJkNjg4ODlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3
L1dlYlByZWZlcmVuY2VzLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJl
ZmVyZW5jZXMubW0KQEAgLTQxLDYgKzQxLDcgQEAKICNpbXBvcnQgIldlYlN5c3RlbUludGVyZmFj
ZS5oIgogI2ltcG9ydCA8V2ViQ29yZS9BcHBsaWNhdGlvbkNhY2hlU3RvcmFnZS5oPgogI2ltcG9y
dCA8V2ViQ29yZS9BdWRpb1Nlc3Npb24uaD4KKyNpbXBvcnQgPFdlYkNvcmUvQ0ZOZXR3b3JrU1BJ
Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oPgogI2ltcG9ydCA8
V2ViQ29yZS9QbGF0Zm9ybUNvb2tpZUphci5oPgogI2ltcG9ydCA8V2ViQ29yZS9SZXNvdXJjZUhh
bmRsZS5oPgpAQCAtNTEsMTAgKzUyLDYgQEAKICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KICNp
bXBvcnQgPHd0Zi9SdW5Mb29wLmg+CiAKLWVudW0gewotICAgIE5TSFRUUENvb2tpZUFjY2VwdFBv
bGljeUV4Y2x1c2l2ZWx5RnJvbU1haW5Eb2N1bWVudERvbWFpbiA9IDMKLX07Ci0KIHVzaW5nIG5h
bWVzcGFjZSBXZWJDb3JlOwogCiAjaWYgUExBVEZPUk0oSU9TKQpAQCAtMTc2Nyw3ICsxNzY0LDcg
QEAgKyAodm9pZClfc2V0Q3VycmVudE5ldHdvcmtMb2FkZXJTZXNzaW9uQ29va2llQWNjZXB0UG9s
aWN5OihOU0hUVFBDb29raWVBY2NlcHRQb2wKIHsKICAgICBSZXRhaW5QdHI8Q0ZIVFRQQ29va2ll
U3RvcmFnZVJlZj4gY29va2llU3RvcmFnZSA9IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6ZGVmYXVs
dFN0b3JhZ2VTZXNzaW9uKCkuY29va2llU3RvcmFnZSgpOwogICAgIEFTU0VSVChjb29raWVTdG9y
YWdlKTsgLy8gV2lsbCBmYWlsIHdoZW4gYnVpbGRpbmcgd2l0aG91dCBVU0UoQ0ZORVRXT1JLKSBh
bmQgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzd2l0Y2hUb05ld1Rlc3RpbmdTZXNzaW9uKCkgd2Fz
IG5vdCBjYWxsZWQgYmVmb3JlaGFuZC4KLSAgICBXS1NldEhUVFBDb29raWVBY2NlcHRQb2xpY3ko
Y29va2llU3RvcmFnZS5nZXQoKSwgcG9saWN5KTsKKyAgICBDRkhUVFBDb29raWVTdG9yYWdlU2V0
Q29va2llQWNjZXB0UG9saWN5KGNvb2tpZVN0b3JhZ2UuZ2V0KCksIHBvbGljeSk7CiB9CiAKIC0g
KEJPT0wpaXNET01QYXN0ZUFsbG93ZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdv
cmtQcm9jZXNzL2NvY29hL05ldHdvcmtQcm9jZXNzQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0Mi9O
ZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrUHJvY2Vzc0NvY29hLm1tCmluZGV4IDNhYmNmNjkz
ODRmNzRiNjA5YzZmZjRmMzdlZTdlZTk2ZWM3NjAzMDUuLmYyODUzYmM0YjYxNzM3NmQ2NjI5Mzlj
MWY2ZTFkMjgxNzdkOTA5YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9j
ZXNzL2NvY29hL05ldHdvcmtQcm9jZXNzQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdDIvTmV0
d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Byb2Nlc3NDb2NvYS5tbQpAQCAtNTEsNyArNTEsNyBA
QCBzdGF0aWMgdm9pZCBpbml0aWFsaXplTmV0d29ya1NldHRpbmdzKCkKIHsKICAgICBzdGF0aWMg
Y29uc3QgdW5zaWduZWQgcHJlZmVycmVkQ29ubmVjdGlvbkNvdW50ID0gNjsKIAotICAgIFdLSW5p
dGlhbGl6ZU1heGltdW1IVFRQQ29ubmVjdGlvbkNvdW50UGVySG9zdChwcmVmZXJyZWRDb25uZWN0
aW9uQ291bnQpOworICAgIF9DRk5ldHdvcmtIVFRQQ29ubmVjdGlvbkNhY2hlU2V0TGltaXQoa0hU
VFBMb2FkV2lkdGgsIHByZWZlcnJlZENvbm5lY3Rpb25Db3VudCk7CiAKICAgICBCb29sZWFuIGtl
eUV4aXN0c0FuZEhhc1ZhbGlkRm9ybWF0ID0gZmFsc2U7CiAgICAgQm9vbGVhbiBwcmVmVmFsdWUg
PSBDRlByZWZlcmVuY2VzR2V0QXBwQm9vbGVhblZhbHVlKENGU1RSKCJXZWJLaXRFbmFibGVIVFRQ
UGlwZWxpbmluZyIpLCBrQ0ZQcmVmZXJlbmNlc0N1cnJlbnRBcHBsaWNhdGlvbiwgJmtleUV4aXN0
c0FuZEhhc1ZhbGlkRm9ybWF0KTsKQEAgLTU5LDggKzU5LDEwIEBAIHN0YXRpYyB2b2lkIGluaXRp
YWxpemVOZXR3b3JrU2V0dGluZ3MoKQogICAgICAgICBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Q6
OnNldEhUVFBQaXBlbGluaW5nRW5hYmxlZChwcmVmVmFsdWUpOwogCiAgICAgaWYgKFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdDo6cmVzb3VyY2VQcmlvcml0aWVzRW5hYmxlZCgpKSB7Ci0gICAgICAg
IFdLU2V0SFRUUFJlcXVlc3RNYXhpbXVtUHJpb3JpdHkodG9QbGF0Zm9ybVJlcXVlc3RQcmlvcml0
eShXZWJDb3JlOjpSZXNvdXJjZUxvYWRQcmlvcml0eTo6SGlnaGVzdCkpOwotICAgICAgICBXS1Nl
dEhUVFBSZXF1ZXN0TWluaW11bUZhc3RMYW5lUHJpb3JpdHkodG9QbGF0Zm9ybVJlcXVlc3RQcmlv
cml0eShXZWJDb3JlOjpSZXNvdXJjZUxvYWRQcmlvcml0eTo6TWVkaXVtKSk7CisgICAgICAgIF9D
Rk5ldHdvcmtIVFRQQ29ubmVjdGlvbkNhY2hlU2V0TGltaXQoa0hUVFBQcmlvcml0eU51bUxldmVs
cywgdG9QbGF0Zm9ybVJlcXVlc3RQcmlvcml0eShXZWJDb3JlOjpSZXNvdXJjZUxvYWRQcmlvcml0
eTo6SGlnaGVzdCkpOworI2lmIFBMQVRGT1JNKElPUykKKyAgICAgICAgX0NGTmV0d29ya0hUVFBD
b25uZWN0aW9uQ2FjaGVTZXRMaW1pdChrSFRUUE1pbmltdW1GYXN0TGFuZVByaW9yaXR5LCB0b1Bs
YXRmb3JtUmVxdWVzdFByaW9yaXR5KFdlYkNvcmU6OlJlc291cmNlTG9hZFByaW9yaXR5OjpNZWRp
dW0pKTsKKyNlbmRpZgogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0
d29ya1Byb2Nlc3MvbWFjL05ldHdvcmtQcm9jZXNzTWFjLm1tIGIvU291cmNlL1dlYktpdDIvTmV0
d29ya1Byb2Nlc3MvbWFjL05ldHdvcmtQcm9jZXNzTWFjLm1tCmluZGV4IDI4NGU1Yjc4ODYxY2U4
N2Y0YjVmYzVmMWE4NmMwOTcwOTZlYTE0YzAuLmRkNTc5YTUxMGE5ZTc1N2NlMzIwNGM2NGEwOWE3
ZTFlN2NkY2VjNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL21h
Yy9OZXR3b3JrUHJvY2Vzc01hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vz
cy9tYWMvTmV0d29ya1Byb2Nlc3NNYWMubW0KQEAgLTM2LDYgKzM2LDcgQEAKICNpbXBvcnQgIlNh
bmRib3hJbml0aWFsaXphdGlvblBhcmFtZXRlcnMuaCIKICNpbXBvcnQgIlNlY0l0ZW1TaGltLmgi
CiAjaW1wb3J0ICJTdHJpbmdVdGlsaXRpZXMuaCIKKyNpbXBvcnQgPFdlYkNvcmUvQ0ZOZXR3b3Jr
U1BJLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0NlcnRpZmljYXRlSW5mby5oPgogI2ltcG9ydCA8V2Vi
Q29yZS9GaWxlU3lzdGVtLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0xvY2FsaXplZFN0cmluZ3MuaD4K
QEAgLTk1LDcgKzk2LDcgQEAgc3RhdGljIHZvaWQgb3ZlcnJpZGVTeXN0ZW1Qcm94aWVzKGNvbnN0
IFN0cmluZyYgaHR0cFByb3h5LCBjb25zdCBTdHJpbmcmIGh0dHBzUHIKICAgICB9CiAKICAgICBp
ZiAoW3Byb3h5U2V0dGluZ3MgY291bnRdID4gMCkKLSAgICAgICAgV0tDRk5ldHdvcmtTZXRPdmVy
cmlkZVN5c3RlbVByb3h5U2V0dGluZ3MoKENGRGljdGlvbmFyeVJlZilwcm94eVNldHRpbmdzKTsK
KyAgICAgICAgX0NGTmV0d29ya1NldE92ZXJyaWRlU3lzdGVtUHJveHlTZXR0aW5ncygoQ0ZEaWN0
aW9uYXJ5UmVmKXByb3h5U2V0dGluZ3MpOwogfQogCiB2b2lkIE5ldHdvcmtQcm9jZXNzOjpwbGF0
Zm9ybUluaXRpYWxpemVOZXR3b3JrUHJvY2Vzcyhjb25zdCBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVycyYgcGFyYW1ldGVycykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQubW0gYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJGcmFtZU5ldHdv
cmtpbmdDb250ZXh0Lm1tCmluZGV4IDdiMTMyOGRlY2MyYTNjMDhiMGEzOGIzN2U5YzNiMWM1ZjYz
NTVjZWQuLjJlNjcxODI5OTA3MTE2OTQ3NGFhZTI3M2QzZjY3YjEwNGNjYjRlMzggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkZyYW1l
TmV0d29ya2luZ0NvbnRleHQubW0KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9tYWMvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5tbQpAQCAtMzEsNiArMzEs
NyBAQAogI2luY2x1ZGUgIldlYkNvb2tpZU1hbmFnZXIuaCIKICNpbmNsdWRlICJXZWJQYWdlLmgi
CiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQ0ZOZXR3b3JrU1BJ
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVM
b2FkZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lTG9hZGVyQ2xpZW50Lmg+CkBAIC02OSwx
MSArNzAsMTEgQEAgdm9pZCBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpzZXRDb29raWVBY2Nl
cHRQb2xpY3lGb3JBbGxDb250ZXh0cyhIVFRQQ29va2llQWMKICAgICBbW05TSFRUUENvb2tpZVN0
b3JhZ2Ugc2hhcmVkSFRUUENvb2tpZVN0b3JhZ2VdIHNldENvb2tpZUFjY2VwdFBvbGljeTpzdGF0
aWNfY2FzdDxOU0hUVFBDb29raWVBY2NlcHRQb2xpY3k+KHBvbGljeSldOwogCiAgICAgaWYgKFJl
dGFpblB0cjxDRkhUVFBDb29raWVTdG9yYWdlUmVmPiBjb29raWVTdG9yYWdlID0gTmV0d29ya1N0
b3JhZ2VTZXNzaW9uOjpkZWZhdWx0U3RvcmFnZVNlc3Npb24oKS5jb29raWVTdG9yYWdlKCkpCi0g
ICAgICAgIFdLU2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShjb29raWVTdG9yYWdlLmdldCgpLCBw
b2xpY3kpOworICAgICAgICBDRkhUVFBDb29raWVTdG9yYWdlU2V0Q29va2llQWNjZXB0UG9saWN5
KGNvb2tpZVN0b3JhZ2UuZ2V0KCksIHBvbGljeSk7CiAKICAgICBmb3IgKGNvbnN0IGF1dG8mIHNl
c3Npb24gOiBTZXNzaW9uVHJhY2tlcjo6c3RvcmFnZVNlc3Npb25NYXAoKS52YWx1ZXMoKSkgewog
ICAgICAgICBpZiAoc2Vzc2lvbikKLSAgICAgICAgICAgIFdLU2V0SFRUUENvb2tpZUFjY2VwdFBv
bGljeShzZXNzaW9uLT5jb29raWVTdG9yYWdlKCkuZ2V0KCksIHBvbGljeSk7CisgICAgICAgICAg
ICBDRkhUVFBDb29raWVTdG9yYWdlU2V0Q29va2llQWNjZXB0UG9saWN5KHNlc3Npb24tPmNvb2tp
ZVN0b3JhZ2UoKS5nZXQoKSwgcG9saWN5KTsKICAgICB9CiB9CiAgICAgCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJTeXN0ZW1JbnRl
cmZhY2UubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9X
ZWJTeXN0ZW1JbnRlcmZhY2UubW0KaW5kZXggMDNmMjg4MjMwMjExMzZmZTA4ZGQyZjczYzU0YWJi
MzVmMzNiOGU4Zi4uM2FiNTkwZDMwNGFhZDg5YzUxZjQwZDJlZWUxMDQxOGFhOTYyMGI3YSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2Vi
U3lzdGVtSW50ZXJmYWNlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvbWFjL1dlYlN5c3RlbUludGVyZmFjZS5tbQpAQCAtNDAsMjYgKzQwLDE4IEBAIHZv
aWQgSW5pdFdlYkNvcmVTeXN0ZW1JbnRlcmZhY2Uodm9pZCkKICAgICAgICAgSU5JVChBZHZhbmNl
RGVmYXVsdEJ1dHRvblB1bHNlQW5pbWF0aW9uKTsKICNlbmRpZgogICAgICAgICBJTklUKENBTGF5
ZXJFbnVtZXJhdGVSZWN0c0JlaW5nRHJhd25XaXRoQmxvY2spOwotICAgICAgICBJTklUKENHQ29u
dGV4dEdldFNob3VsZFNtb290aEZvbnRzKTsKICAgICAgICAgSU5JVChDR1BhdHRlcm5DcmVhdGVX
aXRoSW1hZ2VBbmRUcmFuc2Zvcm0pOwogI2lmICFQTEFURk9STShJT1MpCiAgICAgICAgIElOSVQo
Q0dDb250ZXh0RHJhd3NXaXRoQ29ycmVjdFNoYWRvd09mZnNldHMpOwogI2VuZGlmCiAgICAgICAg
IElOSVQoQ29weUNPTk5FQ1RQcm94eVJlc3BvbnNlKTsKLSAgICAgICAgSU5JVChDb3B5TlNVUkxS
ZXNwb25zZVN0YXR1c0xpbmUpOwotICAgICAgICBJTklUKENvcHlOU1VSTFJlc3BvbnNlQ2VydGlm
aWNhdGVDaGFpbik7CiAjaWYgIVBMQVRGT1JNKElPUykKICAgICAgICAgSU5JVChEcmF3QmV6ZWxl
ZFRleHRBcmVhKTsKLSAgICAgICAgSU5JVChEcmF3Q2Fwc0xvY2tJbmRpY2F0b3IpOwogICAgICAg
ICBJTklUKERyYXdGb2N1c1JpbmcpOwogICAgICAgICBJTklUKERyYXdGb2N1c1JpbmdBdFRpbWUp
OwogICAgICAgICBJTklUKERyYXdDZWxsRm9jdXNSaW5nV2l0aEZyYW1lQXRUaW1lKTsKICAgICAg
ICAgSU5JVChEcmF3TWVkaWFTbGlkZXJUcmFjayk7CiAgICAgICAgIElOSVQoRHJhd01lZGlhVUlQ
YXJ0KTsKLSNlbmRpZgotICAgICAgICBJTklUKEdldEhUVFBSZXF1ZXN0UHJpb3JpdHkpOwotICAg
ICAgICBJTklUKEdldE5TVVJMUmVzcG9uc2VMYXN0TW9kaWZpZWREYXRlKTsKLSNpZiAhUExBVEZP
Uk0oSU9TKQogICAgICAgICBJTklUKFNpZ25lZFB1YmxpY0tleUFuZENoYWxsZW5nZVN0cmluZyk7
CiAjZW5kaWYKICAgICAgICAgSU5JVChHZXRXZWJEZWZhdWx0Q0ZTdHJpbmdFbmNvZGluZyk7CkBA
IC02OCwxMCArNjAsNiBAQCB2b2lkIEluaXRXZWJDb3JlU3lzdGVtSW50ZXJmYWNlKHZvaWQpCiAg
ICAgICAgIElOSVQoR2V0V2hlZWxFdmVudERlbHRhcyk7CiAgICAgICAgIElOSVQoR2V0TlNFdmVu
dEtleUNoYXIpOwogICAgICAgICBJTklUKEhpdFRlc3RNZWRpYVVJUGFydCk7Ci0jZW5kaWYKLSAg
ICAgICAgSU5JVChJbml0aWFsaXplTWF4aW11bUhUVFBDb25uZWN0aW9uQ291bnRQZXJIb3N0KTsK
LSAgICAgICAgSU5JVChIVFRQUmVxdWVzdEVuYWJsZVBpcGVsaW5pbmcpOwotI2lmICFQTEFURk9S
TShJT1MpCiAgICAgICAgIElOSVQoTWVhc3VyZU1lZGlhVUlQYXJ0KTsKICAgICAgICAgSU5JVChR
VEluY2x1ZGVPbmx5TW9kZXJuTWVkaWFGaWxlVHlwZXMpOwogICAgICAgICBJTklUKFFUTW92aWVE
aXNhYmxlQ29tcG9uZW50KTsKQEAgLTc5LDMwICs2NywyMSBAQCB2b2lkIEluaXRXZWJDb3JlU3lz
dGVtSW50ZXJmYWNlKHZvaWQpCiAgICAgICAgIElOSVQoUVRNb3ZpZUhhc0Nsb3NlZENhcHRpb25z
KTsKICAgICAgICAgSU5JVChRVE1vdmllTWF4VGltZUxvYWRlZCk7CiAgICAgICAgIElOSVQoUVRN
b3ZpZU1heFRpbWVMb2FkZWRDaGFuZ2VOb3RpZmljYXRpb24pOwotICAgICAgICBJTklUKFFUTW92
aWVNYXhUaW1lU2Vla2FibGUpOwogICAgICAgICBJTklUKFFUTW92aWVSZXNvbHZlZFVSTCk7CiAg
ICAgICAgIElOSVQoUVRNb3ZpZVNlbGVjdFByZWZlcnJlZEFsdGVybmF0ZXMpOwogICAgICAgICBJ
TklUKFFUTW92aWVTZXRTaG93Q2xvc2VkQ2FwdGlvbnMpOwotICAgICAgICBJTklUKFFUTW92aWVW
aWV3U2V0RHJhd1N5bmNocm9ub3VzbHkpOwogICAgICAgICBJTklUKFFUR2V0U2l0ZXNJbk1lZGlh
RG93bmxvYWRDYWNoZSk7CiAgICAgICAgIElOSVQoUVRDbGVhck1lZGlhRG93bmxvYWRDYWNoZUZv
clNpdGUpOwogICAgICAgICBJTklUKFFUQ2xlYXJNZWRpYURvd25sb2FkQ2FjaGUpOwotICAgICAg
ICBJTklUKFNldENHRm9udFJlbmRlcmluZ01vZGUpOwogI2VuZGlmCiAgICAgICAgIElOSVQoU2V0
Q09OTkVDVFByb3h5QXV0aG9yaXphdGlvbkZvclN0cmVhbSk7CiAgICAgICAgIElOSVQoU2V0Q09O
TkVDVFByb3h5Rm9yU3RyZWFtKTsKICNpZiAhUExBVEZPUk0oSU9TKQogICAgICAgICBJTklUKFNl
dERyYWdJbWFnZSk7CiAjZW5kaWYKLSAgICAgICAgSU5JVChTZXRIVFRQUmVxdWVzdE1heGltdW1Q
cmlvcml0eSk7Ci0gICAgICAgIElOSVQoU2V0SFRUUFJlcXVlc3RQcmlvcml0eSk7Ci0gICAgICAg
IElOSVQoU2V0SFRUUFJlcXVlc3RNaW5pbXVtRmFzdExhbmVQcmlvcml0eSk7Ci0gICAgICAgIElO
SVQoU2V0TlNVUkxSZXF1ZXN0U2hvdWxkQ29udGVudFNuaWZmKTsKICAgICAgICAgSU5JVChDcmVh
dGVQcml2YXRlU3RvcmFnZVNlc3Npb24pOwogICAgICAgICBJTklUKENvcHlSZXF1ZXN0V2l0aFN0
b3JhZ2VTZXNzaW9uKTsKLSAgICAgICAgSU5JVChDb3B5SFRUUENvb2tpZVN0b3JhZ2UpOwogICAg
ICAgICBJTklUKEdldEhUVFBDb29raWVBY2NlcHRQb2xpY3kpOwotICAgICAgICBJTklUKFNldEhU
VFBDb29raWVBY2NlcHRQb2xpY3kpOwogICAgICAgICBJTklUKEhUVFBDb29raWVzKTsKICAgICAg
ICAgSU5JVChIVFRQQ29va2llc0ZvclVSTCk7CiAgICAgICAgIElOSVQoU2V0SFRUUENvb2tpZXNG
b3JVUkwpOwpAQCAtMTExLDI0ICs5MCwxMSBAQCB2b2lkIEluaXRXZWJDb3JlU3lzdGVtSW50ZXJm
YWNlKHZvaWQpCiAKICNpZiAhUExBVEZPUk0oSU9TKQogICAgICAgICBJTklUKFNldE1ldGFkYXRh
VVJMKTsKLSNlbmRpZiAvLyAhUExBVEZPUk0oSU9TKQotCi0jaWYgIVBMQVRGT1JNKElPUykKICAg
ICAgICAgSU5JVChFeGVjdXRhYmxlV2FzTGlua2VkT25PckJlZm9yZVNub3dMZW9wYXJkKTsKICAg
ICAgICAgSU5JVChDb3B5RGVmYXVsdFNlYXJjaFByb3ZpZGVyRGlzcGxheU5hbWUpOwogICAgICAg
ICBJTklUKEN1cnNvcik7CiAgICAgICAgIElOSVQoV2luZG93U2V0U2NhbGVkRnJhbWUpOwogICAg
ICAgICBJTklUKFdpbmRvd1NldEFscGhhKTsKLSNlbmRpZiAvLyAhUExBVEZPUk0oSU9TKQotCi0j
aWYgVVNFKENGTkVUV09SSykKLSAgICAgICAgSU5JVChHZXREZWZhdWx0SFRUUENvb2tpZVN0b3Jh
Z2UpOwotICAgICAgICBJTklUKENvcHlDcmVkZW50aWFsRnJvbUNGUGVyc2lzdGVudFN0b3JhZ2Up
OwotICAgICAgICBJTklUKFNldENGVVJMUmVxdWVzdFNob3VsZENvbnRlbnRTbmlmZik7Ci0gICAg
ICAgIElOSVQoU2V0UmVxdWVzdFN0b3JhZ2VTZXNzaW9uKTsKLSNlbmRpZgotCi0jaWYgIVBMQVRG
T1JNKElPUykKICAgICAgICAgSU5JVChTcGVlY2hTeW50aGVzaXNHZXRWb2ljZUlkZW50aWZpZXJz
KTsKICAgICAgICAgSU5JVChTcGVlY2hTeW50aGVzaXNHZXREZWZhdWx0Vm9pY2VJZGVudGlmaWVy
Rm9yTG9jYWxlKTsKICAgICAgICAgSU5JVChHZXRBWFRleHRNYXJrZXJUeXBlSUQpOwpAQCAtMTQx
LDE3ICsxMDcsNiBAQCB2b2lkIEluaXRXZWJDb3JlU3lzdGVtSW50ZXJmYWNlKHZvaWQpCiAgICAg
ICAgIElOSVQoQWNjZXNzaWJpbGl0eUhhbmRsZUZvY3VzQ2hhbmdlZCk7CiAgICAgICAgIElOSVQo
Q3JlYXRlQVhVSUVsZW1lbnRSZWYpOwogICAgICAgICBJTklUKFVucmVnaXN0ZXJVbmlxdWVJZEZv
ckVsZW1lbnQpOwotI2VuZGlmCi0KLSAgICAgICAgSU5JVChHZXRDRlVSTFJlc3BvbnNlTUlNRVR5
cGUpOwotICAgICAgICBJTklUKEdldENGVVJMUmVzcG9uc2VVUkwpOwotICAgICAgICBJTklUKEdl
dENGVVJMUmVzcG9uc2VIVFRQUmVzcG9uc2UpOwotICAgICAgICBJTklUKENvcHlDRlVSTFJlc3Bv
bnNlU3VnZ2VzdGVkRmlsZW5hbWUpOwotICAgICAgICBJTklUKFNldENGVVJMUmVzcG9uc2VNSU1F
VHlwZSk7Ci0KLSAgICAgICAgSU5JVChDRlVSTFJlcXVlc3RBbGxvd0FsbFBvc3RDYWNoaW5nKTsK
LQotI2lmICFQTEFURk9STShJT1MpCiAgICAgICAgIElOSVQoTlNFbGFzdGljRGVsdGFGb3JUaW1l
RGVsdGEpOwogICAgICAgICBJTklUKE5TRWxhc3RpY0RlbHRhRm9yUmVib3VuZERlbHRhKTsKICAg
ICAgICAgSU5JVChOU1JlYm91bmREZWx0YUZvckVsYXN0aWNEZWx0YSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>267797</attachid>
            <date>2015-12-22 12:41:38 -0800</date>
            <delta_ts>2015-12-22 14:16:14 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-152463-20151222124101.patch</filename>
            <type>text/plain</type>
            <size>105853</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk0MzcwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjk1YzRmYTEzNDlkZjFk
MTIxYzAyMDg4OGFiY2NhYzQwNWUzYjI2ZC4uMjRiYTllNTAxMTU0NzdkZWVjYWYwMDdmNTJjOTg4
MjY0NzM5NTg3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY1IEBACisyMDE1LTEyLTE5ICBBbmR5
IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBbQ0ZdIFJlcGxhY2UgQ0ZOZXR3
b3JrLXJlbGF0ZWQgV2ViS2l0U3lzdGVtSW50ZXJmYWNlIGNhbGxzIHdpdGggU1BJCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTI0NjMKKworICAgICAg
ICBSZXZpZXdlZCBieSBBbGV4ZXkgUHJvc2t1cnlha292LgorCisgICAgICAgIFJlcGxhY2VkIFdl
YmtpdFN5c3RlbUludGVyZmFjZSBjYWxscyB0aGF0IHdyYXBwZWQgQ0ZOZXR3b3JrIFNQSSB3aXRo
IGRpcmVjdCBjYWxscyB0byBTUEkgdGhhdCBpcyBub3cgZm9yd2FyZAorICAgICAgICBkZWNsYXJl
ZCBpbiBDRk5ldHdvcmtTUEkuaC4KKworICAgICAgICBBbHNvIHJlbW92ZWQgc29tZSB1bnVzZWQg
ZGVjbGFyYXRpb25zIGFuZCByZW5hbWVkIFJlc291cmNlUmVzcG9uc2VNYWMubW0gdG8gUmVzb3Vy
Y2VSZXNwb25zZUNvY29hLm1tLgorCisgICAgICAgICogUGxhdGZvcm1NYWMuY21ha2U6CisgICAg
ICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBsYXRm
b3JtL2lvcy9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlSU9TLm1tOgorICAgICAgICAqIHBsYXRmb3Jt
L21hYy9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmg6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1dl
YkNvcmVTeXN0ZW1JbnRlcmZhY2UubW06CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9OZXR3
b3JrU3RvcmFnZVNlc3Npb24uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2NmL0NyZWRl
bnRpYWxTdG9yYWdlQ0ZOZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y29weUNyZWRlbnRpYWxG
cm9tUHJvdGVjdGlvblNwYWNlKToKKyAgICAgICAgKFdlYkNvcmU6OkNyZWRlbnRpYWxTdG9yYWdl
OjpnZXRGcm9tUGVyc2lzdGVudFN0b3JhZ2UpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsv
Y2YvTmV0d29ya1N0b3JhZ2VTZXNzaW9uQ0ZOZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TmV0
d29ya1N0b3JhZ2VTZXNzaW9uOjpjb29raWVTdG9yYWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9u
ZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZOZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVz
b3VyY2VIYW5kbGU6OmNyZWF0ZUNGVVJMQ29ubmVjdGlvbik6CisgICAgICAgICogcGxhdGZvcm0v
bmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGU6OmNy
ZWF0ZVJlc291cmNlUmVxdWVzdCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jZi9SZXNv
dXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlV2l0aE9wZXJhdGlvblF1ZXVlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGVX
aXRoT3BlcmF0aW9uUXVldWU6OmRpZFJlY2VpdmVSZXNwb25zZSk6CisgICAgICAgICogcGxhdGZv
cm0vbmV0d29yay9jZi9SZXNvdXJjZVJlcXVlc3RDRk5ldC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3Q6OmRvVXBkYXRlUGxhdGZvcm1SZXF1ZXN0KToKKyAgICAgICAgKFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdDo6ZG9VcGRhdGVSZXNvdXJjZVJlcXVlc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0OjpzZXRTdG9yYWdlU2Vzc2lvbik6CisgICAgICAg
IChXZWJDb3JlOjppbml0aWFsaXplTWF4aW11bUhUVFBDb25uZWN0aW9uQ291bnRQZXJIb3N0KToK
KyAgICAgICAgKFdlYkNvcmU6OmluaXRpYWxpemVIVFRQQ29ubmVjdGlvblNldHRpbmdzT25TdGFy
dHVwKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlUmVxdWVzdENGTmV0
Lmg6CisgICAgICAgIChXZWJDb3JlOjp0b1Jlc291cmNlTG9hZFByaW9yaXR5KToKKyAgICAgICAg
KFdlYkNvcmU6OnRvUGxhdGZvcm1SZXF1ZXN0UHJpb3JpdHkpOgorICAgICAgICAqIHBsYXRmb3Jt
L25ldHdvcmsvY2YvUmVzb3VyY2VSZXNwb25zZS5oOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdv
cmsvY2YvUmVzb3VyY2VSZXNwb25zZUNGTmV0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291
cmNlUmVzcG9uc2U6OnBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9uZXR3b3JrL2NmL1N5bmNocm9ub3VzUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxl
Z2F0ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTeW5jaHJvbm91c1Jlc291cmNlSGFuZGxlQ0ZV
UkxDb25uZWN0aW9uRGVsZWdhdGU6OmRpZFJlY2VpdmVSZXNwb25zZSk6CisgICAgICAgICogcGxh
dGZvcm0vbmV0d29yay9jb2NvYS9SZXNvdXJjZVJlcXVlc3RDb2NvYS5tbToKKyAgICAgICAgKFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdDo6ZG9VcGRhdGVSZXNvdXJjZVJlcXVlc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Ojpkb1VwZGF0ZVBsYXRmb3JtUmVxdWVzdCk6Cisg
ICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jb2NvYS9SZXNvdXJjZVJlc3BvbnNlQ29jb2EubW06
IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJj
ZVJlc3BvbnNlTWFjLm1tLgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZTo6cGxh
dGZvcm1DZXJ0aWZpY2F0ZUluZm8pOgorICAgICAgICAoV2ViQ29yZTo6Y29weU5TVVJMUmVzcG9u
c2VTdGF0dXNMaW5lKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2U6OnBsYXRm
b3JtTGF6eUluaXQpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvaW9zL1F1aWNrTG9vay5o
OgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvaW9zL1F1aWNrTG9vay5tbToKKyAgICAgICAg
KiBwbGF0Zm9ybS9uZXR3b3JrL2lvcy9XZWJDb3JlVVJMUmVzcG9uc2VJT1MubW06CisgICAgICAg
IChXZWJDb3JlOjphZGp1c3RNSU1FVHlwZUlmTmVjZXNzYXJ5KToKKyAgICAgICAgKiBwbGF0Zm9y
bS9uZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlJl
c291cmNlSGFuZGxlOjpjcmVhdGVOU1VSTENvbm5lY3Rpb24pOgorICAgICAgICAqIHBsYXRmb3Jt
L25ldHdvcmsvbWFjL1dlYkNvcmVVUkxSZXNwb25zZS5oOgorICAgICAgICAqIHBsYXRmb3JtL25l
dHdvcmsvbWFjL1dlYkNvcmVVUkxSZXNwb25zZS5tbToKKyAgICAgICAgKFdlYkNvcmU6OmFkanVz
dE1JTUVUeXBlSWZOZWNlc3NhcnkpOgorICAgICAgICAqIHBsYXRmb3JtL3NwaS9jZi9DRk5ldHdv
cmtDb25uZWN0aW9uQ2FjaGVTUEkuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9zcGkvY2YvQ0ZOZXR3
b3JrU1BJLmg6CisKIDIwMTUtMTItMjIgIENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJr
aXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxOTQzNjIuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9D
aGFuZ2VMb2cKaW5kZXggZjcyNmEwMWQ3ZDgwNWY1YTJkOWY1NGY5NTYwMWJlM2ZlMjk2ZGFhNS4u
YWFlYTBkZTMyMTQ4OWEwNTI4NzM1NDQyNmM5N2EyNzk4Y2M4MGQ5ZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDIyIEBACisyMDE1LTEyLTE5ICBBbmR5IEVzdGVzICA8YWVzdGVzQGFwcGxl
LmNvbT4KKworICAgICAgICBbQ0ZdIFJlcGxhY2UgQ0ZOZXR3b3JrLXJlbGF0ZWQgV2ViS2l0U3lz
dGVtSW50ZXJmYWNlIGNhbGxzIHdpdGggU1BJCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNTI0NjMKKworICAgICAgICBSZXZpZXdlZCBieSBBbGV4ZXkg
UHJvc2t1cnlha292LgorCisgICAgICAgIFJlcGxhY2VkIFdlYmtpdFN5c3RlbUludGVyZmFjZSBj
YWxscyB0aGF0IHdyYXBwZWQgQ0ZOZXR3b3JrIFNQSSB3aXRoIGRpcmVjdCBjYWxscyB0byBTUEkg
dGhhdCBpcyBub3cgZm9yd2FyZAorICAgICAgICBkZWNsYXJlZCBpbiBDRk5ldHdvcmtTUEkuaC4K
KworICAgICAgICAqIFBsdWdpbnMvSG9zdGVkL0hvc3RlZE5ldHNjYXBlUGx1Z2luU3RyZWFtLm1t
OgorICAgICAgICAoV2ViS2l0OjpIb3N0ZWROZXRzY2FwZVBsdWdpblN0cmVhbTo6ZGlkUmVjZWl2
ZVJlc3BvbnNlKToKKyAgICAgICAgKiBQbHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2luU3RyZWFtLm1t
OgorICAgICAgICAoV2ViTmV0c2NhcGVQbHVnaW5TdHJlYW06OmRpZFJlY2VpdmVSZXNwb25zZSk6
CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViU3lzdGVtSW50ZXJmYWNlLm1tOgorICAgICAg
ICAoSW5pdFdlYkNvcmVTeXN0ZW1JbnRlcmZhY2UpOiBEZWxldGVkLgorICAgICAgICAqIFdlYlZp
ZXcvV2ViUHJlZmVyZW5jZXMubW06CisgICAgICAgICgrW1dlYlByZWZlcmVuY2VzIF9zZXRDdXJy
ZW50TmV0d29ya0xvYWRlclNlc3Npb25Db29raWVBY2NlcHRQb2xpY3k6XSk6CisKIDIwMTUtMTIt
MjAgIERhbiBCZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgdW51
c2VkIHNldFRvb2xiYXJIZWlnaHQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBlMTEzYjIyZmQ3OTZjY2UxNmUzYTA4
MGZkMzBmYzg5MGI3OWZjMmZjLi5jNmM0ZjllMmViNjc0N2IxZTQzMzdjY2IyY2U2OWE5MjZkNjI2
ZDgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTUtMTItMTkgIEFuZHkgRXN0ZXMg
IDxhZXN0ZXNAYXBwbGUuY29tPgorCisgICAgICAgIFtDRl0gUmVwbGFjZSBDRk5ldHdvcmstcmVs
YXRlZCBXZWJLaXRTeXN0ZW1JbnRlcmZhY2UgY2FsbHMgd2l0aCBTUEkKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MjQ2MworCisgICAgICAgIFJldmll
d2VkIGJ5IEFsZXhleSBQcm9za3VyeWFrb3YuCisKKyAgICAgICAgUmVwbGFjZWQgV2Via2l0U3lz
dGVtSW50ZXJmYWNlIGNhbGxzIHRoYXQgd3JhcHBlZCBDRk5ldHdvcmsgU1BJIHdpdGggZGlyZWN0
IGNhbGxzIHRvIFNQSSB0aGF0IGlzIG5vdyBmb3J3YXJkCisgICAgICAgIGRlY2xhcmVkIGluIENG
TmV0d29ya1NQSS5oLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1By
b2Nlc3NDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6aW5pdGlhbGl6ZU5ldHdvcmtTZXR0aW5n
cyk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvbWFjL05ldHdvcmtQcm9jZXNzTWFjLm1tOgor
ICAgICAgICAoV2ViS2l0OjpvdmVycmlkZVN5c3RlbVByb3hpZXMpOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQubW06Cisg
ICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OnNldENvb2tpZUFjY2Vw
dFBvbGljeUZvckFsbENvbnRleHRzKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L21hYy9XZWJTeXN0ZW1JbnRlcmZhY2UubW06CisgICAgICAgIChJbml0V2ViQ29yZVN5c3Rl
bUludGVyZmFjZSk6CisKIDIwMTUtMTItMjIgIEJyZW50IEZ1bGdoYW0gIDxiZnVsZ2hhbUBhcHBs
ZS5jb20+CiAKICAgICAgICAgQWxsb3cgSmF2YVNjcmlwdCB0byBpdGVyYXRlIG92ZXIgcGx1Z2lu
cyBmb3IgbG9jYWwgU2VjdXJpdHlPcmlnaW5zCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Q
bGF0Zm9ybU1hYy5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtTWFjLmNtYWtlCmluZGV4
IDA4ZmMwYjYyNTdlNGM1OWQ3MDJmNWIyZGFmZWMzODM0NGVjZTgxYmMuLmRmNThkMjUyMmQyYjkz
OTc5ZTY5ZGI0YjZiZDAxMTQ3YjgzMGM5MWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1Bs
YXRmb3JtTWFjLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtTWFjLmNtYWtlCkBA
IC01MjAsNiArNTIwLDcgQEAgbGlzdChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCiAgICAgcGxhdGZv
cm0vbmV0d29yay9jb2NvYS9DcmVkZW50aWFsQ29jb2EubW0KICAgICBwbGF0Zm9ybS9uZXR3b3Jr
L2NvY29hL1Byb3RlY3Rpb25TcGFjZUNvY29hLm1tCiAgICAgcGxhdGZvcm0vbmV0d29yay9jb2Nv
YS9SZXNvdXJjZVJlcXVlc3RDb2NvYS5tbQorICAgIHBsYXRmb3JtL25ldHdvcmsvY29jb2EvUmVz
b3VyY2VSZXNwb25zZUNvY29hLm1tCiAKICAgICBwbGF0Zm9ybS9uZXR3b3JrL21hYy9BdXRoZW50
aWNhdGlvbk1hYy5tbQogICAgIHBsYXRmb3JtL25ldHdvcmsvbWFjL0Jsb2JEYXRhRmlsZVJlZmVy
ZW5jZU1hYy5tbQpAQCAtNTMyLDcgKzUzMyw2IEBAIGxpc3QoQVBQRU5EIFdlYkNvcmVfU09VUkNF
UwogICAgIHBsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlRXJyb3JNYWMubW0KICAgICBwbGF0
Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbQogICAgIHBsYXRmb3JtL25ldHdv
cmsvbWFjL1Jlc291cmNlUmVxdWVzdE1hYy5tbQotICAgIHBsYXRmb3JtL25ldHdvcmsvbWFjL1Jl
c291cmNlUmVzcG9uc2VNYWMubW0KICAgICBwbGF0Zm9ybS9uZXR3b3JrL21hYy9TeW5jaHJvbm91
c0xvYWRlckNsaWVudC5tbQogICAgIHBsYXRmb3JtL25ldHdvcmsvbWFjL1VUSVV0aWxpdGllcy5t
bQogICAgIHBsYXRmb3JtL25ldHdvcmsvbWFjL1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFzRGVsZWdh
dGUubW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagppbmRleCAwODk5Y2U5YzVkMzRlNDI3MWI3MDZkMmU1Y2E5MTZkZjUwMjdkNzhiLi40YTI2
YmY5MzU0MmRiZDZmNzQ1YjdkOGRiYTE2NWM4ZjgxMzBlMDE5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xOTc2LDcgKzE5NzYs
NiBAQAogCQk1MTRDNzY1MDBDRTkyMzRFMDA3RUYzQ0QgLyogUmVzb3VyY2VFcnJvck1hYy5tbSBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxNEM3NjQ2MENF
OTIzNEUwMDdFRjNDRCAvKiBSZXNvdXJjZUVycm9yTWFjLm1tICovOyB9OwogCQk1MTRDNzY1MTBD
RTkyMzRFMDA3RUYzQ0QgLyogUmVzb3VyY2VIYW5kbGVNYWMubW0gaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTRDNzY0NzBDRTkyMzRFMDA3RUYzQ0QgLyog
UmVzb3VyY2VIYW5kbGVNYWMubW0gKi87IH07CiAJCTUxNEM3NjUzMENFOTIzNEUwMDdFRjNDRCAv
KiBSZXNvdXJjZVJlcXVlc3RNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1MTRDNzY0OTBDRTkyMzRFMDA3RUYzQ0QgLyogUmVzb3VyY2VSZXF1ZXN0
TWFjLm1tICovOyB9OwotCQk1MTRDNzY1NTBDRTkyMzRGMDA3RUYzQ0QgLyogUmVzb3VyY2VSZXNw
b25zZU1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDUxNEM3NjRCMENFOTIzNEUwMDdFRjNDRCAvKiBSZXNvdXJjZVJlc3BvbnNlTWFjLm1tICovOyB9
OwogCQk1MTRDNzY2RDBDRTkyM0ExMDA3RUYzQ0QgLyogQ3JlZGVudGlhbEJhc2UuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE0Qzc2NTgwQ0U5MjNB
MTAwN0VGM0NEIC8qIENyZWRlbnRpYWxCYXNlLmNwcCAqLzsgfTsKIAkJNTE0Qzc2NkUwQ0U5MjNB
MTAwN0VGM0NEIC8qIENyZWRlbnRpYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDUxNEM3NjU5MENFOTIzQTEwMDdFRjNDRCAvKiBDcmVkZW50aWFsLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTE0Qzc2
NkYwQ0U5MjNBMTAwN0VGM0NEIC8qIEZvcm1EYXRhLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxNEM3NjVBMENFOTIzQTEwMDdFRjNDRCAvKiBGb3Jt
RGF0YS5jcHAgKi87IH07CkBAIC00MDEyLDYgKzQwMTEsNyBAQAogCQlBMTA0RjI0NDE0QzcxRjdB
MDA5RTJDMjMgLyogQ2FjaGVkU1ZHRG9jdW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExMDRGMjQyMTRDNzFGN0EwMDlFMkMyMyAvKiBDYWNoZWRT
VkdEb2N1bWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCUExMEJCNTg1MTQ4NEUzQTcwMEIyRTg3QSAvKiBSZW5kZXJTVkdSZWN0LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTBCQjU4MzE0ODRFM0E3
MDBCMkU4N0EgLyogUmVuZGVyU1ZHUmVjdC5oICovOyB9OwogCQlBMTBCQjU4QjE0ODRFM0IzMDBC
MkU4N0EgLyogUmVuZGVyU1ZHU2hhcGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEExMEJCNTg5MTQ4NEUzQjMwMEIyRTg3QSAvKiBSZW5kZXJTVkdTaGFw
ZS5oICovOyB9OworCQlBMTBEN0ZFQzFDMjY3NkQxMDBDNkMxMTUgLyogQ0ZOZXR3b3JrQ29ubmVj
dGlvbkNhY2hlU1BJLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBBMTBEN0ZFQjFDMjY3NkQxMDBDNkMxMTUgLyogQ0ZOZXR3b3JrQ29ubmVjdGlvbkNhY2hl
U1BJLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
QTEwREJGNDcxOEY5MjMxNzAwMEQ3MEM2IC8qIFF1aWNrTG9va0hhbmRsZUNsaWVudC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTEwREJGNDYxOEY5MjMx
NzAwMEQ3MEM2IC8qIFF1aWNrTG9va0hhbmRsZUNsaWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUExMERDNzZBMTQ3NDdCQUIwMDVFMjQ3MSAv
KiBTdHlsZUdyaWREYXRhLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEExMERDNzY4MTQ3NDdCQUIwMDVFMjQ3MSAvKiBTdHlsZUdyaWREYXRhLmNwcCAq
LzsgfTsKIAkJQTEwREM3NkIxNDc0N0JBQjAwNUUyNDcxIC8qIFN0eWxlR3JpZERhdGEuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExMERDNzY5MTQ3NDdC
QUIwMDVFMjQ3MSAvKiBTdHlsZUdyaWREYXRhLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTQwOTUsNiArNDA5NSw3IEBACiAJCUExRUQ3NzhDMUJF
MzI5NDAwMERDMTc5MSAvKiBEZXZpY2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQTFFRDc3OEExQkUzMjkzRjAwREMxNzkxIC8qIERldmljZS5jcHAg
Ki87IH07CiAJCUExRUQ3NzhEMUJFMzI5NDAwMERDMTc5MSAvKiBEZXZpY2UuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExRUQ3NzhCMUJFMzI5NDAwMERD
MTc5MSAvKiBEZXZpY2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQlBMUVENzc4RjFCRTQyOTE4MDBEQzE3OTEgLyogVUlLaXRTUEkuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExRUQ3NzhFMUJFNDI5MTgw
MERDMTc5MSAvKiBVSUtpdFNQSS5oICovOyB9OworCQlBMUY3OEQwQzFDMjU0MjRDMDAyNDU0NDYg
LyogUmVzb3VyY2VSZXNwb25zZUNvY29hLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQTFGNzhEMEIxQzI1NDIyQzAwMjQ1NDQ2IC8qIFJlc291cmNlUmVz
cG9uc2VDb2NvYS5tbSAqLzsgfTsKIAkJQTJCOTIxNzMxNkM1Q0M0MjAwNDFEQ0Q5IC8qIEludFJl
Y3RFeHRlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEEyQjkyMTcyMTZDNUNDNDIwMDQxRENEOSAvKiBJbnRSZWN0RXh0ZW50LmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQTMxQzRFNEQxNkUwMkFBNjAw
MkY3OTU3IC8qIE9FU1RleHR1cmVIYWxmRmxvYXQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTMxQzRFNEMxNkUwMkFBNjAwMkY3OTU3IC8qIE9FU1Rl
eHR1cmVIYWxmRmxvYXQuY3BwICovOyB9OwogCQlBMzFDNEU0RjE2RTAyQUI0MDAyRjc5NTcgLyog
T0VTVGV4dHVyZUhhbGZGbG9hdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQTMxQzRFNEUxNkUwMkFCNDAwMkY3OTU3IC8qIE9FU1RleHR1cmVIYWxmRmxv
YXQuaCAqLzsgfTsKQEAgLTYxMjMsNyArNjEyNCw2IEBACiAJCUNFN0IyREI0MTU4NkFCQUQwMDk4
QjNGQSAvKiBBbHRlcm5hdGl2ZVRleHRVSUNvbnRyb2xsZXIubW0gaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRTdCMkRCMDE1ODZBQkFEMDA5OEIzRkEgLyog
QWx0ZXJuYXRpdmVUZXh0VUlDb250cm9sbGVyLm1tICovOyB9OwogCQlDRTdCMkRCNTE1ODZBQkFE
MDA5OEIzRkEgLyogVGV4dEFsdGVybmF0aXZlV2l0aFJhbmdlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRTdCMkRCMTE1ODZBQkFEMDA5OEIzRkEgLyog
VGV4dEFsdGVybmF0aXZlV2l0aFJhbmdlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJQ0U3QjJEQjYxNTg2QUJBRDAwOThCM0ZBIC8qIFRleHRBbHRl
cm5hdGl2ZVdpdGhSYW5nZS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IENFN0IyREIyMTU4NkFCQUQwMDk4QjNGQSAvKiBUZXh0QWx0ZXJuYXRpdmVXaXRo
UmFuZ2UubW0gKi87IH07Ci0JCUNFODI0NUYwMTlCNjcxQkEwMEFDMDEyMiAvKiBDRk5ldHdvcmtD
b25uZWN0aW9uQ2FjaGVTUEkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IENFODI0NUVGMTlCNjcxQkEwMEFDMDEyMiAvKiBDRk5ldHdvcmtDb25uZWN0aW9u
Q2FjaGVTUEkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQlDRTk1MjA4QTE4MTFCNDc1MDA3QTUzOTIgLyogV2ViU2FmZUluY3JlbWVudGFsU3dlZXBl
cklPUy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzJD
NENCMUQxNjFBMTMxMjAwRDIxNERBIC8qIFdlYlNhZmVJbmNyZW1lbnRhbFN3ZWVwZXJJT1MuaCAq
LzsgfTsKIAkJQ0VDMzM3QUQxQTQ2MDcxRjAwOUI4NTIzIC8qIFNlcnZlcnNTUEkuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENFQzMzN0FDMUE0NjA3MUYw
MDlCODUyMyAvKiBTZXJ2ZXJzU1BJLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJQ0VDMzM3QUYxQTQ2MDg2RDAwOUI4NTIzIC8qIEdyYXBoaWNzU2Vy
dmljZXNTUEkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IENFQzMzN0FFMUE0NjA4NkQwMDlCODUyMyAvKiBHcmFwaGljc1NlcnZpY2VzU1BJLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTkzOTksNyArOTM5
OSw2IEBACiAJCTUxNEM3NjQ2MENFOTIzNEUwMDdFRjNDRCAvKiBSZXNvdXJjZUVycm9yTWFjLm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUmVzb3VyY2VFcnJvck1h
Yy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTE0Qzc2NDcwQ0U5MjM0RTAwN0VG
M0NEIC8qIFJlc291cmNlSGFuZGxlTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBwYXRoID0gUmVzb3VyY2VIYW5kbGVNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTUxNEM3NjQ5MENFOTIzNEUwMDdFRjNDRCAvKiBSZXNvdXJjZVJlcXVlc3RNYWMubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBSZXNvdXJjZVJlcXVlc3RN
YWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTUxNEM3NjRCMENFOTIzNEUwMDdF
RjNDRCAvKiBSZXNvdXJjZVJlc3BvbnNlTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBwYXRoID0gUmVzb3VyY2VSZXNwb25zZU1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNTE0Qzc2NTgwQ0U5MjNBMTAwN0VGM0NEIC8qIENyZWRlbnRpYWxCYXNlLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENyZWRlbnRpYWxCYXNlLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTE0Qzc2NTkwQ0U5MjNBMTAwN0VGM0NE
IC8qIENyZWRlbnRpYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ3JlZGVu
dGlhbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTRDNzY1QTBDRTkyM0ExMDA3
RUYzQ0QgLyogRm9ybURhdGEuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gRm9ybURhdGEuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTE1NzUsNiAr
MTE1NzQsNyBAQAogCQlBMTBCQjU4MzE0ODRFM0E3MDBCMkU4N0EgLyogUmVuZGVyU1ZHUmVjdC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW5kZXJTVkdSZWN0Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUExMEJCNTg4MTQ4NEUzQjMwMEIyRTg3QSAvKiBSZW5k
ZXJTVkdTaGFwZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW5k
ZXJTVkdTaGFwZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUExMEJCNTg5MTQ4
NEUzQjMwMEIyRTg3QSAvKiBSZW5kZXJTVkdTaGFwZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBSZW5kZXJTVkdTaGFwZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlBMTBEN0ZFQjFDMjY3NkQxMDBDNkMxMTUgLyogQ0ZOZXR3b3JrQ29ubmVjdGlvbkNhY2hlU1BJ
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENGTmV0d29ya0Nvbm5lY3Rpb25D
YWNoZVNQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMTBEQkY0NjE4RjkyMzE3
MDAwRDcwQzYgLyogUXVpY2tMb29rSGFuZGxlQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFF1aWNrTG9va0hhbmRsZUNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlBMTBEQzc2ODE0NzQ3QkFCMDA1RTI0NzEgLyogU3R5bGVHcmlkRGF0YS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTdHlsZUdyaWREYXRhLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTEwREM3NjkxNDc0N0JBQjAwNUUyNDcxIC8q
IFN0eWxlR3JpZERhdGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3R5bGVH
cmlkRGF0YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTE2NTQsNiArMTE2NTQs
NyBAQAogCQlBMUVENzc4QTFCRTMyOTNGMDBEQzE3OTEgLyogRGV2aWNlLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERldmljZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUExRUQ3NzhCMUJFMzI5NDAwMERDMTc5MSAvKiBEZXZpY2UuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGV2aWNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUExRUQ3NzhFMUJFNDI5MTgwMERDMTc5MSAvKiBVSUtpdFNQSS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBVSUtpdFNQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlBMUY3OEQwQjFDMjU0MjJDMDAyNDU0NDYgLyogUmVzb3VyY2VSZXNwb25zZUNv
Y29hLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUmVzb3VyY2VS
ZXNwb25zZUNvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMjA4RTIyMkE1
NkEwQzc1NzVGMkE3MkUgLyogUmVuZGVyTWF0aE1MTWVuY2xvc2UuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVyTWF0aE1MTWVuY2xvc2UuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQTJCOTIxNzIxNkM1Q0M0MjAwNDFEQ0Q5IC8qIEludFJlY3RFeHRlbnQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW50UmVjdEV4dGVudC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMzFDNEU0QzE2RTAyQUE2MDAyRjc5NTcgLyogT0VT
VGV4dHVyZUhhbGZGbG9hdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBPRVNUZXh0dXJlSGFsZkZsb2F0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTEzOTk3LDcgKzEzOTk4LDYgQEAKIAkJQ0U3QjJEQjAxNTg2QUJBRDAwOThCM0ZBIC8qIEFsdGVy
bmF0aXZlVGV4dFVJQ29udHJvbGxlci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgcGF0aCA9IEFsdGVybmF0aXZlVGV4dFVJQ29udHJvbGxlci5tbTsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQ0U3QjJEQjExNTg2QUJBRDAwOThCM0ZBIC8qIFRleHRBbHRlcm5hdGl2
ZVdpdGhSYW5nZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUZXh0QWx0ZXJu
YXRpdmVXaXRoUmFuZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0U3QjJEQjIx
NTg2QUJBRDAwOThCM0ZBIC8qIFRleHRBbHRlcm5hdGl2ZVdpdGhSYW5nZS5tbSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFRleHRBbHRlcm5hdGl2ZVdpdGhSYW5nZS5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQ0U4MjQ1RUYxOUI2NzFCQTAwQUMwMTIy
IC8qIENGTmV0d29ya0Nvbm5lY3Rpb25DYWNoZVNQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBDRk5ldHdvcmtDb25uZWN0aW9uQ2FjaGVTUEkuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQ0VDMzM3QUMxQTQ2MDcxRjAwOUI4NTIzIC8qIFNlcnZlcnNTUEkuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2VydmVyc1NQSS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlDRUMzMzdBRTFBNDYwODZEMDA5Qjg1MjMgLyogR3JhcGhpY3NT
ZXJ2aWNlc1NQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHcmFwaGljc1Nl
cnZpY2VzU1BJLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNFQ0FERkMyMTUzNzc4
RkYwMEUzNzA2OCAvKiBEaWN0YXRpb25BbHRlcm5hdGl2ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBEaWN0YXRpb25BbHRlcm5hdGl2ZS5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC0xNzIyNSw3ICsxNzIyNSw3IEBACiAJCQljaGlsZHJlbiA9ICgK
IAkJCQlFMTBBMzlFMTFBRTg0RTcxMDBBMjlBRTMgLyogQ0ZCdW5kbGVTUEkuaCAqLywKIAkJCQk2
NTA4NkRBNzE5QUMxNzE5MDA5QUY0NkIgLyogQ0ZMb2NhbGVTUEkuaCAqLywKLQkJCQlDRTgyNDVF
RjE5QjY3MUJBMDBBQzAxMjIgLyogQ0ZOZXR3b3JrQ29ubmVjdGlvbkNhY2hlU1BJLmggKi8sCisJ
CQkJQTEwRDdGRUIxQzI2NzZEMTAwQzZDMTE1IC8qIENGTmV0d29ya0Nvbm5lY3Rpb25DYWNoZVNQ
SS5oICovLAogCQkJCUNFMTI1MjVBMUExQzAxODIwMDg2NDQ4MCAvKiBDRk5ldHdvcmtTUEkuaCAq
LywKIAkJCQk0NDQ5QTQwNDFBOTY0QjAwMDBCNjRBRDUgLyogQ29yZU1lZGlhU1BJLmggKi8sCiAJ
CQkpOwpAQCAtMTc0OTAsNyArMTc0OTAsNiBAQAogCQkJCTUxNEM3NjQ2MENFOTIzNEUwMDdFRjND
RCAvKiBSZXNvdXJjZUVycm9yTWFjLm1tICovLAogCQkJCTUxNEM3NjQ3MENFOTIzNEUwMDdFRjND
RCAvKiBSZXNvdXJjZUhhbmRsZU1hYy5tbSAqLywKIAkJCQk1MTRDNzY0OTBDRTkyMzRFMDA3RUYz
Q0QgLyogUmVzb3VyY2VSZXF1ZXN0TWFjLm1tICovLAotCQkJCTUxNEM3NjRCMENFOTIzNEUwMDdF
RjNDRCAvKiBSZXNvdXJjZVJlc3BvbnNlTWFjLm1tICovLAogCQkJCUUxODA4MTE0MTZGQ0Y5Q0Iw
MEI4MEQwNyAvKiBTeW5jaHJvbm91c0xvYWRlckNsaWVudC5tbSAqLywKIAkJCQkxRkFGQkYxNjE1
QTVGQTUyMDAwODNBMjAgLyogVVRJVXRpbGl0aWVzLmggKi8sCiAJCQkJMUZBRkJGMTcxNUE1RkE1
MjAwMDgzQTIwIC8qIFVUSVV0aWxpdGllcy5tbSAqLywKQEAgLTE3ODY1LDYgKzE3ODY0LDcgQEAK
IAkJCQkzNzJBREEzNzE5N0Y0N0I5MDBGQzUwMUUgLyogUHJvdGVjdGlvblNwYWNlQ29jb2EuaCAq
LywKIAkJCQkzNzJBREEzOTE5N0Y2ODc2MDBGQzUwMUUgLyogUHJvdGVjdGlvblNwYWNlQ29jb2Eu
bW0gKi8sCiAJCQkJN0U3REUxRkMxOTVDRUYyNjAwMzUzNjNCIC8qIFJlc291cmNlUmVxdWVzdENv
Y29hLm1tICovLAorCQkJCUExRjc4RDBCMUMyNTQyMkMwMDI0NTQ0NiAvKiBSZXNvdXJjZVJlc3Bv
bnNlQ29jb2EubW0gKi8sCiAJCQkpOwogCQkJcGF0aCA9IGNvY29hOwogCQkJc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsKQEAgLTI0NjY4LDYgKzI0NjY4LDcgQEAKIAkJCQlBQjIzQTMyODA5QkJBN0Qw
MDA2N0NDNTMgLyogQmVmb3JlVGV4dEluc2VydGVkRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTg1MDMxQjNEMEE0NEVGQzcwMEY5OTJFMCAvKiBCZWZvcmVVbmxvYWRFdmVudC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQjJDM0RBMjQwRDAwNkMxRDAwRUY2RjI2IC8qIEJpZGlDb250ZXh0LmggaW4g
SGVhZGVycyAqLywKKwkJCQlBMTBEN0ZFQzFDMjY3NkQxMDBDNkMxMTUgLyogQ0ZOZXR3b3JrQ29u
bmVjdGlvbkNhY2hlU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMkMzREEyNTBEMDA2QzFEMDBF
RjZGMjYgLyogQmlkaVJlc29sdmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0U3ODk4NjExMjBF
N0E2MDA2MEVDRTUgLyogQmlkaVJ1bi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThDNDAyOTMxMzQ4
QjIyMjAwNjNGMUU1IC8qIEJpZGlSdW5MaXN0LmggaW4gSGVhZGVycyAqLywKQEAgLTI0NzQ5LDcg
KzI0NzUwLDYgQEAKIAkJCQlDREU4QjVGMTFBNjk3NzhCMDBCNEI2NkEgLyogQ0RNU2Vzc2lvbkNs
ZWFyS2V5LmggaW4gSGVhZGVycyAqLywKIAkJCQk1RkE5MDRDQTE3OEU2MUY1MDA0QzhBMkQgLyog
Q2VydGlmaWNhdGVJbmZvLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMTBBMzlFMjFBRTg0RTcxMDBB
MjlBRTMgLyogQ0ZCdW5kbGVTUEkuaCBpbiBIZWFkZXJzICovLAotCQkJCUNFODI0NUYwMTlCNjcx
QkEwMEFDMDEyMiAvKiBDRk5ldHdvcmtDb25uZWN0aW9uQ2FjaGVTUEkuaCBpbiBIZWFkZXJzICov
LAogCQkJCUNFMTI1MjVCMUExQzAxODIwMDg2NDQ4MCAvKiBDRk5ldHdvcmtTUEkuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUUxQThFNTY3MTc1NTJCMkEwMDc0ODhFNyAvKiBDRlVSTEV4dHJhcy5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJRkUzNkZEMTUxNkM3ODI2NTAwRjg4N0MxIC8qIENoYW5nZVZlcnNp
b25EYXRhLmggaW4gSGVhZGVycyAqLywKQEAgLTI5MDY0LDYgKzI5MDY0LDcgQEAKIAkJCQk4NTA2
NTcwMTBBQUI0NzYzMDAyRDE1QzAgLyogRE9NU3R5bGVTaGVldC5tbSBpbiBTb3VyY2VzICovLAog
CQkJCTg1MDY1NzAzMEFBQjQ3NjMwMDJEMTVDMCAvKiBET01TdHlsZVNoZWV0TGlzdC5tbSBpbiBT
b3VyY2VzICovLAogCQkJCTg1QUNBOTlEMEE5QjU3NTkwMDY3MUU5MCAvKiBET01UZXh0Lm1tIGlu
IFNvdXJjZXMgKi8sCisJCQkJQTFGNzhEMEMxQzI1NDI0QzAwMjQ1NDQ2IC8qIFJlc291cmNlUmVz
cG9uc2VDb2NvYS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTkzM0ExNEFBMEI3RDFEMDkwMEE1M0ZG
RCAvKiBET01UZXh0RXZlbnQubW0gaW4gU291cmNlcyAqLywKIAkJCQkxODg2MDRCMzBGMkU2NTRB
MDAwQjY0NDMgLyogRE9NVGltZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNzZGQzJCMEIxMjM3
MERBMDAwNkE5OTFBIC8qIERPTVRva2VuTGlzdC5jcHAgaW4gU291cmNlcyAqLywKQEAgLTMwNzg1
LDcgKzMwNzg2LDYgQEAKIAkJCQk1MTRDNzY1MzBDRTkyMzRFMDA3RUYzQ0QgLyogUmVzb3VyY2VS
ZXF1ZXN0TWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNTE0Qzc2N0UwQ0U5MjNBMTAwN0VGM0NE
IC8qIFJlc291cmNlUmVzcG9uc2VCYXNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdFRTY4NDcx
MTJEMjZFMzgwMEU3OTQxNSAvKiBSZXNvdXJjZVJlc3BvbnNlQ0ZOZXQuY3BwIGluIFNvdXJjZXMg
Ki8sCi0JCQkJNTE0Qzc2NTUwQ0U5MjM0RjAwN0VGM0NEIC8qIFJlc291cmNlUmVzcG9uc2VNYWMu
bW0gaW4gU291cmNlcyAqLywKIAkJCQlBREJBRDZFRTFCQ0REOTU1MDAzODEzMjUgLyogUmVzb3Vy
Y2VVc2FnZU92ZXJsYXkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQURGRTJCNTUxQkQ1RjYxMjAw
REFCNDU3IC8qIFJlc291cmNlVXNhZ2VPdmVybGF5Q29jb2EubW0gaW4gU291cmNlcyAqLywKIAkJ
CQlGRDMxNjBBNDEyQjAyNkY3MDBDMUEzNTkgLyogUmV2ZXJiLmNwcCBpbiBTb3VyY2VzICovLApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYkNvcmVTeXN0ZW1JbnRl
cmZhY2VJT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViQ29yZVN5c3RlbUlu
dGVyZmFjZUlPUy5tbQppbmRleCA0ZTMwMzY2ZDRlYjdmYWIxODhkZTRjYWU5MGY5ZDU1MTFmOTA2
ZGFiLi4zNWM3NGY1Nzc0ZTc3MWI2NTA1MTI3NDRmNDdmMDhlZjJhZDBhNDAyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViQ29yZVN5c3RlbUludGVyZmFjZUlPUy5t
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViQ29yZVN5c3RlbUludGVyZmFj
ZUlPUy5tbQpAQCAtMjcsNTQgKzI3LDI3IEBACiAjaW1wb3J0ICJXZWJDb3JlU3lzdGVtSW50ZXJm
YWNlLmgiCiAKIFdFQkNPUkVfRVhQT1JUIHZvaWQgKCp3a0NBTGF5ZXJFbnVtZXJhdGVSZWN0c0Jl
aW5nRHJhd25XaXRoQmxvY2spKENBTGF5ZXIgKiwgQ0dDb250ZXh0UmVmIGNvbnRleHQsIHZvaWQg
KF5ibG9jaykoQ0dSZWN0IHJlY3QpKTsKLVdFQkNPUkVfRVhQT1JUIEJPT0wgKCp3a0NHQ29udGV4
dEdldFNob3VsZFNtb290aEZvbnRzKShDR0NvbnRleHRSZWYpOwogV0VCQ09SRV9FWFBPUlQgQ0dQ
YXR0ZXJuUmVmICgqd2tDR1BhdHRlcm5DcmVhdGVXaXRoSW1hZ2VBbmRUcmFuc2Zvcm0pKENHSW1h
Z2VSZWYsIENHQWZmaW5lVHJhbnNmb3JtLCBpbnQpOwogV0VCQ09SRV9FWFBPUlQgdm9pZCAoKndr
Q2xlYXJHbHlwaFZlY3Rvcikodm9pZCogZ2x5cGhzKTsKIFdFQkNPUkVfRVhQT1JUIE9TU3RhdHVz
ICgqd2tDb252ZXJ0Q2hhclRvR2x5cGhzKSh2b2lkKiBzdHlsZUdyb3VwLCBjb25zdCBVbmlDaGFy
KiwgdW5zaWduZWQgbnVtQ2hhcmFjdGVycywgdm9pZCogZ2x5cGhzKTsKLVdFQkNPUkVfRVhQT1JU
IE5TRGF0ZSAqKCp3a0dldE5TVVJMUmVzcG9uc2VMYXN0TW9kaWZpZWREYXRlKShOU1VSTFJlc3Bv
bnNlICpyZXNwb25zZSk7CiBXRUJDT1JFX0VYUE9SVCBib29sICgqd2tDR0NvbnRleHRJc1BERkNv
bnRleHQpKENHQ29udGV4dFJlZik7Ci1XRUJDT1JFX0VYUE9SVCBOU1N0cmluZyogKCp3a0NvcHlO
U1VSTFJlc3BvbnNlU3RhdHVzTGluZSkoTlNVUkxSZXNwb25zZSopOwotV0VCQ09SRV9FWFBPUlQg
dm9pZCAoKndrU2V0TlNVUkxSZXF1ZXN0U2hvdWxkQ29udGVudFNuaWZmKShOU011dGFibGVVUkxS
ZXF1ZXN0ICosIEJPT0wpOwogV0VCQ09SRV9FWFBPUlQgaWQgKCp3a0NyZWF0ZU5TVVJMQ29ubmVj
dGlvbkRlbGVnYXRlUHJveHkpKHZvaWQpOwotV0VCQ09SRV9FWFBPUlQgdW5zaWduZWQgKCp3a0lu
aXRpYWxpemVNYXhpbXVtSFRUUENvbm5lY3Rpb25Db3VudFBlckhvc3QpKHVuc2lnbmVkIHByZWZl
cnJlZENvbm5lY3Rpb25Db3VudCk7Ci1XRUJDT1JFX0VYUE9SVCBpbnQgKCp3a0dldEhUVFBSZXF1
ZXN0UHJpb3JpdHkpKENGVVJMUmVxdWVzdFJlZik7Ci1XRUJDT1JFX0VYUE9SVCB2b2lkICgqd2tT
ZXRIVFRQUmVxdWVzdE1heGltdW1Qcmlvcml0eSkoaW50IHByaW9yaXR5KTsKLVdFQkNPUkVfRVhQ
T1JUIHZvaWQgKCp3a1NldEhUVFBSZXF1ZXN0UHJpb3JpdHkpKENGVVJMUmVxdWVzdFJlZiwgaW50
IHByaW9yaXR5KTsKLVdFQkNPUkVfRVhQT1JUIHZvaWQgKCp3a1NldEhUVFBSZXF1ZXN0TWluaW11
bUZhc3RMYW5lUHJpb3JpdHkpKGludCBwcmlvcml0eSk7Ci1XRUJDT1JFX0VYUE9SVCB2b2lkICgq
d2tIVFRQUmVxdWVzdEVuYWJsZVBpcGVsaW5pbmcpKENGVVJMUmVxdWVzdFJlZik7CiBXRUJDT1JF
X0VYUE9SVCB2b2lkICgqd2tTZXRDT05ORUNUUHJveHlGb3JTdHJlYW0pKENGUmVhZFN0cmVhbVJl
ZiwgQ0ZTdHJpbmdSZWYgcHJveHlIb3N0LCBDRk51bWJlclJlZiBwcm94eVBvcnQpOwogV0VCQ09S
RV9FWFBPUlQgdm9pZCAoKndrU2V0Q09OTkVDVFByb3h5QXV0aG9yaXphdGlvbkZvclN0cmVhbSko
Q0ZSZWFkU3RyZWFtUmVmLCBDRlN0cmluZ1JlZiBwcm94eUF1dGhvcml6YXRpb25TdHJpbmcpOwog
V0VCQ09SRV9FWFBPUlQgdm9pZCAoKndrU2V0Q29va2llU3RvcmFnZVByaXZhdGVCcm93c2luZ0Vu
YWJsZWQpKEJPT0wpOwogV0VCQ09SRV9FWFBPUlQgQ0ZIVFRQTWVzc2FnZVJlZiAoKndrQ29weUNP
Tk5FQ1RQcm94eVJlc3BvbnNlKShDRlJlYWRTdHJlYW1SZWYsIENGVVJMUmVmIHJlc3BvbnNlVVJM
LCBDRlN0cmluZ1JlZiBwcm94eUhvc3QsIENGTnVtYmVyUmVmIHByb3h5UG9ydCk7CiBXRUJDT1JF
X0VYUE9SVCB2b2lkICgqd2tTZXRMYXllckNvbnRlbnRzU2NhbGUpKENBTGF5ZXIgKik7Ci1XRUJD
T1JFX0VYUE9SVCB2b2lkICgqd2tDRlVSTFJlcXVlc3RBbGxvd0FsbFBvc3RDYWNoaW5nKShDRlVS
TFJlcXVlc3RSZWYpOwotV0VCQ09SRV9FWFBPUlQgQ0ZBcnJheVJlZiAoKndrQ29weU5TVVJMUmVz
cG9uc2VDZXJ0aWZpY2F0ZUNoYWluKShOU1VSTFJlc3BvbnNlKik7CiBXRUJDT1JFX0VYUE9SVCBD
RlN0cmluZ0VuY29kaW5nICgqd2tHZXRXZWJEZWZhdWx0Q0ZTdHJpbmdFbmNvZGluZykodm9pZCk7
CiAKLSNpZiBVU0UoQ0ZORVRXT1JLKQotV0VCQ09SRV9FWFBPUlQgQ0ZIVFRQQ29va2llU3RvcmFn
ZVJlZiAoKndrR2V0RGVmYXVsdEhUVFBDb29raWVTdG9yYWdlKSgpOwotV0VCQ09SRV9FWFBPUlQg
V0tDRlVSTENyZWRlbnRpYWxSZWYgKCp3a0NvcHlDcmVkZW50aWFsRnJvbUNGUGVyc2lzdGVudFN0
b3JhZ2UpKENGVVJMUHJvdGVjdGlvblNwYWNlUmVmIHByb3RlY3Rpb25TcGFjZSk7Ci1XRUJDT1JF
X0VYUE9SVCB2b2lkICgqd2tTZXRDRlVSTFJlcXVlc3RTaG91bGRDb250ZW50U25pZmYpKENGTXV0
YWJsZVVSTFJlcXVlc3RSZWYsIGJvb2wpOwotV0VCQ09SRV9FWFBPUlQgdm9pZCAoKndrU2V0UmVx
dWVzdFN0b3JhZ2VTZXNzaW9uKShDRlVSTFN0b3JhZ2VTZXNzaW9uUmVmLCBDRk11dGFibGVVUkxS
ZXF1ZXN0UmVmKTsKLSNlbmRpZgotCiBXRUJDT1JFX0VYUE9SVCBDRlVSTFN0b3JhZ2VTZXNzaW9u
UmVmICgqd2tDcmVhdGVQcml2YXRlU3RvcmFnZVNlc3Npb24pKENGU3RyaW5nUmVmKTsKIFdFQkNP
UkVfRVhQT1JUIE5TVVJMUmVxdWVzdCogKCp3a0NvcHlSZXF1ZXN0V2l0aFN0b3JhZ2VTZXNzaW9u
KShDRlVSTFN0b3JhZ2VTZXNzaW9uUmVmLCBOU1VSTFJlcXVlc3QqKTsKLVdFQkNPUkVfRVhQT1JU
IENGSFRUUENvb2tpZVN0b3JhZ2VSZWYgKCp3a0NvcHlIVFRQQ29va2llU3RvcmFnZSkoQ0ZVUkxT
dG9yYWdlU2Vzc2lvblJlZik7CiBXRUJDT1JFX0VYUE9SVCB1bnNpZ25lZCAoKndrR2V0SFRUUENv
b2tpZUFjY2VwdFBvbGljeSkoQ0ZIVFRQQ29va2llU3RvcmFnZVJlZik7Ci1XRUJDT1JFX0VYUE9S
VCB2b2lkICgqd2tTZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KShDRkhUVFBDb29raWVTdG9yYWdl
UmVmLCB1bnNpZ25lZCk7CiBXRUJDT1JFX0VYUE9SVCBOU0FycmF5ICooKndrSFRUUENvb2tpZXMp
KENGSFRUUENvb2tpZVN0b3JhZ2VSZWYpOwogV0VCQ09SRV9FWFBPUlQgTlNBcnJheSAqKCp3a0hU
VFBDb29raWVzRm9yVVJMKShDRkhUVFBDb29raWVTdG9yYWdlUmVmLCBOU1VSTCAqLCBOU1VSTCAq
KTsKIFdFQkNPUkVfRVhQT1JUIHZvaWQgKCp3a1NldEhUVFBDb29raWVzRm9yVVJMKShDRkhUVFBD
b29raWVTdG9yYWdlUmVmLCBOU0FycmF5ICosIE5TVVJMICosIE5TVVJMICopOwogV0VCQ09SRV9F
WFBPUlQgdm9pZCAoKndrRGVsZXRlQWxsSFRUUENvb2tpZXMpKENGSFRUUENvb2tpZVN0b3JhZ2VS
ZWYpOwogV0VCQ09SRV9FWFBPUlQgdm9pZCAoKndrRGVsZXRlSFRUUENvb2tpZSkoQ0ZIVFRQQ29v
a2llU3RvcmFnZVJlZiwgTlNIVFRQQ29va2llICopOwogCi1XRUJDT1JFX0VYUE9SVCBDRlN0cmlu
Z1JlZiAoKndrR2V0Q0ZVUkxSZXNwb25zZU1JTUVUeXBlKShDRlVSTFJlc3BvbnNlUmVmKTsKLVdF
QkNPUkVfRVhQT1JUIENGVVJMUmVmICgqd2tHZXRDRlVSTFJlc3BvbnNlVVJMKShDRlVSTFJlc3Bv
bnNlUmVmKTsKLVdFQkNPUkVfRVhQT1JUIENGSFRUUE1lc3NhZ2VSZWYgKCp3a0dldENGVVJMUmVz
cG9uc2VIVFRQUmVzcG9uc2UpKENGVVJMUmVzcG9uc2VSZWYpOwotV0VCQ09SRV9FWFBPUlQgQ0ZT
dHJpbmdSZWYgKCp3a0NvcHlDRlVSTFJlc3BvbnNlU3VnZ2VzdGVkRmlsZW5hbWUpKENGVVJMUmVz
cG9uc2VSZWYpOwotV0VCQ09SRV9FWFBPUlQgdm9pZCAoKndrU2V0Q0ZVUkxSZXNwb25zZU1JTUVU
eXBlKShDRlVSTFJlc3BvbnNlUmVmLCBDRlN0cmluZ1JlZiBtaW1lVHlwZSk7Ci0KIFdFQkNPUkVf
RVhQT1JUIHZvaWQoKndrRGVzdHJveVJlbmRlcmluZ1Jlc291cmNlcykodm9pZCk7CiAKIFdFQkNP
UkVfRVhQT1JUIGJvb2wgKCp3a0NhcHRpb25BcHBlYXJhbmNlSGFzVXNlclByZWZlcmVuY2VzKSh2
b2lkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJDb3JlU3lz
dGVtSW50ZXJmYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViQ29yZVN5c3Rl
bUludGVyZmFjZS5oCmluZGV4IDYwYjQ4OTA1NzNhZDZhODVkM2IwYTM3M2NjOGNhMjVmZjM5ZjAy
MTEuLmE5ZmFjYjRmMmE5MzY1YjllZDBmZWQ1ZTk2YTE5Yzk3MGE1YThkYTYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYkNvcmVTeXN0ZW1JbnRlcmZhY2UuaApA
QCAtMTIxLDcgKzEyMSw2IEBAIGV4dGVybiAiQyIgewogZXh0ZXJuIHZvaWQgKCp3a0FkdmFuY2VE
ZWZhdWx0QnV0dG9uUHVsc2VBbmltYXRpb24pKE5TQnV0dG9uQ2VsbCAqKTsKIGV4dGVybiB2b2lk
ICgqd2tDQUxheWVyRW51bWVyYXRlUmVjdHNCZWluZ0RyYXduV2l0aEJsb2NrKShDQUxheWVyICos
IENHQ29udGV4dFJlZiwgdm9pZCAoXmJsb2NrKShDR1JlY3QgcmVjdCkpOwogCi1leHRlcm4gQk9P
TCAoKndrQ0dDb250ZXh0R2V0U2hvdWxkU21vb3RoRm9udHMpKENHQ29udGV4dFJlZik7CiB0eXBl
ZGVmIGVudW0gewogICAgIHdrUGF0dGVyblRpbGluZ05vRGlzdG9ydGlvbiwKICAgICB3a1BhdHRl
cm5UaWxpbmdDb25zdGFudFNwYWNpbmdNaW5pbWFsRGlzdG9ydGlvbiwKQEAgLTEzMSwyNyArMTMw
LDE3IEBAIHR5cGVkZWYgZW51bSB7CiBleHRlcm4gYm9vbCAoKndrQ0dDb250ZXh0RHJhd3NXaXRo
Q29ycmVjdFNoYWRvd09mZnNldHMpKENHQ29udGV4dFJlZik7CiAjZW5kaWYKIGV4dGVybiBDR1Bh
dHRlcm5SZWYgKCp3a0NHUGF0dGVybkNyZWF0ZVdpdGhJbWFnZUFuZFRyYW5zZm9ybSkoQ0dJbWFn
ZVJlZiwgQ0dBZmZpbmVUcmFuc2Zvcm0sIGludCk7Ci1leHRlcm4gTlNTdHJpbmcqICgqd2tDb3B5
TlNVUkxSZXNwb25zZVN0YXR1c0xpbmUpKE5TVVJMUmVzcG9uc2UqKTsKLWV4dGVybiBDRkFycmF5
UmVmICgqd2tDb3B5TlNVUkxSZXNwb25zZUNlcnRpZmljYXRlQ2hhaW4pKE5TVVJMUmVzcG9uc2Uq
KTsKIGV4dGVybiBDRlN0cmluZ0VuY29kaW5nICgqd2tHZXRXZWJEZWZhdWx0Q0ZTdHJpbmdFbmNv
ZGluZykodm9pZCk7CiAjaWYgIVBMQVRGT1JNKElPUykKLWV4dGVybiB2b2lkICgqd2tEcmF3Q2Fw
c0xvY2tJbmRpY2F0b3IpKENHQ29udGV4dFJlZiwgQ0dSZWN0KTsKIGV4dGVybiB2b2lkICgqd2tE
cmF3QmV6ZWxlZFRleHRBcmVhKShOU1JlY3QsIEJPT0wgZW5hYmxlZCk7CiBleHRlcm4gdm9pZCAo
KndrRHJhd0ZvY3VzUmluZykoQ0dDb250ZXh0UmVmLCBDR0NvbG9yUmVmLCBpbnQpOwogZXh0ZXJu
IGJvb2wgKCp3a0RyYXdGb2N1c1JpbmdBdFRpbWUpKENHQ29udGV4dFJlZiwgTlNUaW1lSW50ZXJ2
YWwgdGltZSk7CiBleHRlcm4gYm9vbCAoKndrRHJhd0NlbGxGb2N1c1JpbmdXaXRoRnJhbWVBdFRp
bWUpKE5TQ2VsbCAqY2VsbCwgTlNSZWN0IGNlbGxGcmFtZSwgTlNWaWV3ICpjb250cm9sVmlldywg
TlNUaW1lSW50ZXJ2YWwgdGltZSk7Ci0jZW5kaWYKLSNpZiAhUExBVEZPUk0oSU9TKQogZXh0ZXJu
IHZvaWQgKCp3a0RyYXdNZWRpYVNsaWRlclRyYWNrKShDR0NvbnRleHRSZWYgY29udGV4dCwgQ0dS
ZWN0IHJlY3QsIGZsb2F0IHRpbWVMb2FkZWQsIGZsb2F0IGN1cnJlbnRUaW1lLAogICAgIGZsb2F0
IGR1cmF0aW9uLCB1bnNpZ25lZCBzdGF0ZSk7CiBleHRlcm4gdm9pZCAoKndrRHJhd01lZGlhVUlQ
YXJ0KShpbnQgcGFydCwgQ0dDb250ZXh0UmVmIGNvbnRleHQsIENHUmVjdCByZWN0LCB1bnNpZ25l
ZCBzdGF0ZSk7CiBleHRlcm4gQ0ZTdHJpbmdSZWYgKCp3a1NpZ25lZFB1YmxpY0tleUFuZENoYWxs
ZW5nZVN0cmluZykodW5zaWduZWQga2V5U2l6ZSwgQ0ZTdHJpbmdSZWYgY2hhbGxlbmdlLCBDRlN0
cmluZ1JlZiBrZXlEZXNjcmlwdGlvbik7Ci0jZW5kaWYKLSNpZiAhUExBVEZPUk0oSU9TKQogZXh0
ZXJuIGRvdWJsZSAoKndrR2V0TlNVUkxSZXNwb25zZUNhbGN1bGF0ZWRFeHBpcmF0aW9uKShOU1VS
TFJlc3BvbnNlICpyZXNwb25zZSk7Ci0jZW5kaWYKLWV4dGVybiBOU0RhdGUgKigqd2tHZXROU1VS
TFJlc3BvbnNlTGFzdE1vZGlmaWVkRGF0ZSkoTlNVUkxSZXNwb25zZSAqcmVzcG9uc2UpOwotI2lm
ICFQTEFURk9STShJT1MpCiBleHRlcm4gQk9PTCAoKndrR2V0TlNVUkxSZXNwb25zZU11c3RSZXZh
bGlkYXRlKShOU1VSTFJlc3BvbnNlICpyZXNwb25zZSk7CiBleHRlcm4gdm9pZCAoKndrR2V0V2hl
ZWxFdmVudERlbHRhcykoTlNFdmVudCosIGZsb2F0KiBkZWx0YVgsIGZsb2F0KiBkZWx0YVksIEJP
T0wqIGNvbnRpbnVvdXMpOwogZXh0ZXJuIFVJbnQ4ICgqd2tHZXROU0V2ZW50S2V5Q2hhcikoTlNF
dmVudCAqKTsKQEAgLTE3OCwyOCArMTY3LDE4IEBAIGV4dGVybiB1bnNpZ25lZCAoKndrUVRJbmNs
dWRlT25seU1vZGVybk1lZGlhRmlsZVR5cGVzKSh2b2lkKTsKIGV4dGVybiB2b2lkICgqd2tRVE1v
dmllRGlzYWJsZUNvbXBvbmVudCkodWludDMyX3RbNV0pOwogZXh0ZXJuIGZsb2F0ICgqd2tRVE1v
dmllTWF4VGltZUxvYWRlZCkoUVRNb3ZpZSopOwogZXh0ZXJuIE5TU3RyaW5nICooKndrUVRNb3Zp
ZU1heFRpbWVMb2FkZWRDaGFuZ2VOb3RpZmljYXRpb24pKHZvaWQpOwotZXh0ZXJuIGZsb2F0ICgq
d2tRVE1vdmllTWF4VGltZVNlZWthYmxlKShRVE1vdmllKik7CiBleHRlcm4gaW50ICgqd2tRVE1v
dmllR2V0VHlwZSkoUVRNb3ZpZSopOwogZXh0ZXJuIEJPT0wgKCp3a1FUTW92aWVIYXNDbG9zZWRD
YXB0aW9ucykoUVRNb3ZpZSopOwogZXh0ZXJuIE5TVVJMICooKndrUVRNb3ZpZVJlc29sdmVkVVJM
KShRVE1vdmllKik7CiBleHRlcm4gdm9pZCAoKndrUVRNb3ZpZVNldFNob3dDbG9zZWRDYXB0aW9u
cykoUVRNb3ZpZSosIEJPT0wpOwogZXh0ZXJuIHZvaWQgKCp3a1FUTW92aWVTZWxlY3RQcmVmZXJy
ZWRBbHRlcm5hdGVzKShRVE1vdmllKik7Ci1leHRlcm4gdm9pZCAoKndrUVRNb3ZpZVZpZXdTZXRE
cmF3U3luY2hyb25vdXNseSkoUVRNb3ZpZVZpZXcqLCBCT09MKTsKIGV4dGVybiBOU0FycmF5ICoo
KndrUVRHZXRTaXRlc0luTWVkaWFEb3dubG9hZENhY2hlKSgpOwogZXh0ZXJuIHZvaWQgKCp3a1FU
Q2xlYXJNZWRpYURvd25sb2FkQ2FjaGVGb3JTaXRlKShOU1N0cmluZyAqc2l0ZSk7CiBleHRlcm4g
dm9pZCAoKndrUVRDbGVhck1lZGlhRG93bmxvYWRDYWNoZSkoKTsKLWV4dGVybiB2b2lkICgqd2tT
ZXRDR0ZvbnRSZW5kZXJpbmdNb2RlKShDR0NvbnRleHRSZWYsIE5TRm9udCosIEJPT0wpOwogZXh0
ZXJuIHZvaWQgKCp3a1NldENvb2tpZVN0b3JhZ2VQcml2YXRlQnJvd3NpbmdFbmFibGVkKShCT09M
KTsKIGV4dGVybiB2b2lkICgqd2tTZXREcmFnSW1hZ2UpKE5TSW1hZ2UqLCBOU1BvaW50IG9mZnNl
dCk7CiAjZW5kaWYKLWV4dGVybiB2b2lkICgqd2tTZXROU1VSTFJlcXVlc3RTaG91bGRDb250ZW50
U25pZmYpKE5TTXV0YWJsZVVSTFJlcXVlc3QgKiwgQk9PTCk7CiBleHRlcm4gYm9vbCAoKndrQ0dD
b250ZXh0SXNQREZDb250ZXh0KShDR0NvbnRleHRSZWYpOwotZXh0ZXJuIHVuc2lnbmVkICgqd2tJ
bml0aWFsaXplTWF4aW11bUhUVFBDb25uZWN0aW9uQ291bnRQZXJIb3N0KSh1bnNpZ25lZCBwcmVm
ZXJyZWRDb25uZWN0aW9uQ291bnQpOwotZXh0ZXJuIGludCAoKndrR2V0SFRUUFJlcXVlc3RQcmlv
cml0eSkoQ0ZVUkxSZXF1ZXN0UmVmKTsKLWV4dGVybiB2b2lkICgqd2tTZXRIVFRQUmVxdWVzdE1h
eGltdW1Qcmlvcml0eSkoaW50IG1heGltdW1Qcmlvcml0eSk7Ci1leHRlcm4gdm9pZCAoKndrU2V0
SFRUUFJlcXVlc3RQcmlvcml0eSkoQ0ZVUkxSZXF1ZXN0UmVmLCBpbnQgcHJpb3JpdHkpOwotZXh0
ZXJuIHZvaWQgKCp3a1NldEhUVFBSZXF1ZXN0TWluaW11bUZhc3RMYW5lUHJpb3JpdHkpKGludCBw
cmlvcml0eSk7Ci1leHRlcm4gdm9pZCAoKndrSFRUUFJlcXVlc3RFbmFibGVQaXBlbGluaW5nKShD
RlVSTFJlcXVlc3RSZWYpOwogZXh0ZXJuIHZvaWQgKCp3a1NldENPTk5FQ1RQcm94eUZvclN0cmVh
bSkoQ0ZSZWFkU3RyZWFtUmVmLCBDRlN0cmluZ1JlZiBwcm94eUhvc3QsIENGTnVtYmVyUmVmIHBy
b3h5UG9ydCk7CiBleHRlcm4gdm9pZCAoKndrU2V0Q09OTkVDVFByb3h5QXV0aG9yaXphdGlvbkZv
clN0cmVhbSkoQ0ZSZWFkU3RyZWFtUmVmLCBDRlN0cmluZ1JlZiBwcm94eUF1dGhvcml6YXRpb25T
dHJpbmcpOwogZXh0ZXJuIENGSFRUUE1lc3NhZ2VSZWYgKCp3a0NvcHlDT05ORUNUUHJveHlSZXNw
b25zZSkoQ0ZSZWFkU3RyZWFtUmVmLCBDRlVSTFJlZiByZXNwb25zZVVSTCwgQ0ZTdHJpbmdSZWYg
cHJveHlIb3N0LCBDRk51bWJlclJlZiBwcm94eVBvcnQpOwpAQCAtMjQxLDM0ICsyMjAsMTUgQEAg
ZXh0ZXJuIENGVVJMU3RvcmFnZVNlc3Npb25SZWYgKCp3a0NyZWF0ZVByaXZhdGVTdG9yYWdlU2Vz
c2lvbikoQ0ZTdHJpbmdSZWYpOwogZXh0ZXJuIE5TVVJMUmVxdWVzdCogKCp3a0NvcHlSZXF1ZXN0
V2l0aFN0b3JhZ2VTZXNzaW9uKShDRlVSTFN0b3JhZ2VTZXNzaW9uUmVmLCBOU1VSTFJlcXVlc3Qq
KTsKIAogdHlwZWRlZiBzdHJ1Y3QgT3BhcXVlQ0ZIVFRQQ29va2llU3RvcmFnZSogQ0ZIVFRQQ29v
a2llU3RvcmFnZVJlZjsKLWV4dGVybiBDRkhUVFBDb29raWVTdG9yYWdlUmVmICgqd2tDb3B5SFRU
UENvb2tpZVN0b3JhZ2UpKENGVVJMU3RvcmFnZVNlc3Npb25SZWYpOwogZXh0ZXJuIHVuc2lnbmVk
ICgqd2tHZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KShDRkhUVFBDb29raWVTdG9yYWdlUmVmKTsK
LWV4dGVybiB2b2lkICgqd2tTZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KShDRkhUVFBDb29raWVT
dG9yYWdlUmVmLCB1bnNpZ25lZCk7CiBleHRlcm4gTlNBcnJheSAqKCp3a0hUVFBDb29raWVzKShD
RkhUVFBDb29raWVTdG9yYWdlUmVmKTsKIGV4dGVybiBOU0FycmF5ICooKndrSFRUUENvb2tpZXNG
b3JVUkwpKENGSFRUUENvb2tpZVN0b3JhZ2VSZWYsIE5TVVJMICosIE5TVVJMICopOwogZXh0ZXJu
IHZvaWQgKCp3a1NldEhUVFBDb29raWVzRm9yVVJMKShDRkhUVFBDb29raWVTdG9yYWdlUmVmLCBO
U0FycmF5ICosIE5TVVJMICosIE5TVVJMICopOwogZXh0ZXJuIHZvaWQgKCp3a0RlbGV0ZUhUVFBD
b29raWUpKENGSFRUUENvb2tpZVN0b3JhZ2VSZWYsIE5TSFRUUENvb2tpZSAqKTsKIGV4dGVybiB2
b2lkICgqd2tEZWxldGVBbGxIVFRQQ29va2llcykoQ0ZIVFRQQ29va2llU3RvcmFnZVJlZik7CiAK
LWV4dGVybiBDRlN0cmluZ1JlZiAoKndrR2V0Q0ZVUkxSZXNwb25zZU1JTUVUeXBlKShDRlVSTFJl
c3BvbnNlUmVmKTsKLWV4dGVybiBDRlVSTFJlZiAoKndrR2V0Q0ZVUkxSZXNwb25zZVVSTCkoQ0ZV
UkxSZXNwb25zZVJlZik7Ci1leHRlcm4gQ0ZIVFRQTWVzc2FnZVJlZiAoKndrR2V0Q0ZVUkxSZXNw
b25zZUhUVFBSZXNwb25zZSkoQ0ZVUkxSZXNwb25zZVJlZik7Ci1leHRlcm4gQ0ZTdHJpbmdSZWYg
KCp3a0NvcHlDRlVSTFJlc3BvbnNlU3VnZ2VzdGVkRmlsZW5hbWUpKENGVVJMUmVzcG9uc2VSZWYp
OwotZXh0ZXJuIHZvaWQgKCp3a1NldENGVVJMUmVzcG9uc2VNSU1FVHlwZSkoQ0ZVUkxSZXNwb25z
ZVJlZiwgQ0ZTdHJpbmdSZWYgbWltZVR5cGUpOwotCi0jaWYgVVNFKENGTkVUV09SSykKLWV4dGVy
biBDRkhUVFBDb29raWVTdG9yYWdlUmVmICgqd2tHZXREZWZhdWx0SFRUUENvb2tpZVN0b3JhZ2Up
KCk7Ci1leHRlcm4gV0tDRlVSTENyZWRlbnRpYWxSZWYgKCp3a0NvcHlDcmVkZW50aWFsRnJvbUNG
UGVyc2lzdGVudFN0b3JhZ2UpKENGVVJMUHJvdGVjdGlvblNwYWNlUmVmIHByb3RlY3Rpb25TcGFj
ZSk7Ci1leHRlcm4gdm9pZCAoKndrU2V0Q0ZVUkxSZXF1ZXN0U2hvdWxkQ29udGVudFNuaWZmKShD
Rk11dGFibGVVUkxSZXF1ZXN0UmVmLCBib29sKTsKLWV4dGVybiB2b2lkICgqd2tTZXRSZXF1ZXN0
U3RvcmFnZVNlc3Npb24pKENGVVJMU3RvcmFnZVNlc3Npb25SZWYsIENGTXV0YWJsZVVSTFJlcXVl
c3RSZWYpOwotI2VuZGlmCiAjaWYgIVBMQVRGT1JNKElPUykKIGV4dGVybiB2b2lkICgqd2tTZXRN
ZXRhZGF0YVVSTCkoTlNTdHJpbmcgKnVybFN0cmluZywgTlNTdHJpbmcgKnJlZmVycmVyLCBOU1N0
cmluZyAqcGF0aCk7Ci0jZW5kaWYKLQotZXh0ZXJuIHZvaWQgKCp3a0NGVVJMUmVxdWVzdEFsbG93
QWxsUG9zdENhY2hpbmcpKENGVVJMUmVxdWVzdFJlZik7Ci0KLSNpZiAhUExBVEZPUk0oSU9TKQog
ZXh0ZXJuIENHRmxvYXQgKCp3a05TRWxhc3RpY0RlbHRhRm9yVGltZURlbHRhKShDR0Zsb2F0IGlu
aXRpYWxQb3NpdGlvbiwgQ0dGbG9hdCBpbml0aWFsVmVsb2NpdHksIENHRmxvYXQgZWxhcHNlZFRp
bWUpOwogZXh0ZXJuIENHRmxvYXQgKCp3a05TRWxhc3RpY0RlbHRhRm9yUmVib3VuZERlbHRhKShD
R0Zsb2F0IGRlbHRhKTsKIGV4dGVybiBDR0Zsb2F0ICgqd2tOU1JlYm91bmREZWx0YUZvckVsYXN0
aWNEZWx0YSkoQ0dGbG9hdCBkZWx0YSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tYWMvV2ViQ29yZVN5c3RlbUludGVyZmFjZS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21hYy9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlLm1tCmluZGV4IDE4OGY0MTI4MTIzYTk2MDhh
ZGJmZmNjYmY2OWI4ZGFmMzAwMWNiYzcuLmMzOWNjOWUyODUyYmU1OWZlMjg3ODNhZjY2MjNiZDcx
ODAzNGY1NzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJDb3Jl
U3lzdGVtSW50ZXJmYWNlLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJD
b3JlU3lzdGVtSW50ZXJmYWNlLm1tCkBAIC0zMiwxMyArMzIsOSBAQAogCiB2b2lkICgqd2tBZHZh
bmNlRGVmYXVsdEJ1dHRvblB1bHNlQW5pbWF0aW9uKShOU0J1dHRvbkNlbGwgKik7CiB2b2lkICgq
d2tDQUxheWVyRW51bWVyYXRlUmVjdHNCZWluZ0RyYXduV2l0aEJsb2NrKShDQUxheWVyICosIENH
Q29udGV4dFJlZiBjb250ZXh0LCB2b2lkICheYmxvY2spKENHUmVjdCByZWN0KSk7Ci1CT09MICgq
d2tDR0NvbnRleHRHZXRTaG91bGRTbW9vdGhGb250cykoQ0dDb250ZXh0UmVmKTsKIGJvb2wgKCp3
a0NHQ29udGV4dERyYXdzV2l0aENvcnJlY3RTaGFkb3dPZmZzZXRzKShDR0NvbnRleHRSZWYpOwog
Q0dQYXR0ZXJuUmVmICgqd2tDR1BhdHRlcm5DcmVhdGVXaXRoSW1hZ2VBbmRUcmFuc2Zvcm0pKENH
SW1hZ2VSZWYsIENHQWZmaW5lVHJhbnNmb3JtLCBpbnQpOwotTlNTdHJpbmcqICgqd2tDb3B5TlNV
UkxSZXNwb25zZVN0YXR1c0xpbmUpKE5TVVJMUmVzcG9uc2UqKTsKLUNGQXJyYXlSZWYgKCp3a0Nv
cHlOU1VSTFJlc3BvbnNlQ2VydGlmaWNhdGVDaGFpbikoTlNVUkxSZXNwb25zZSopOwogQ0ZTdHJp
bmdFbmNvZGluZyAoKndrR2V0V2ViRGVmYXVsdENGU3RyaW5nRW5jb2RpbmcpKHZvaWQpOwotdm9p
ZCAoKndrRHJhd0NhcHNMb2NrSW5kaWNhdG9yKShDR0NvbnRleHRSZWYsIENHUmVjdCk7CiB2b2lk
ICgqd2tEcmF3QmV6ZWxlZFRleHRBcmVhKShOU1JlY3QsIEJPT0wgZW5hYmxlZCk7CiB2b2lkICgq
d2tEcmF3Rm9jdXNSaW5nKShDR0NvbnRleHRSZWYsIENHQ29sb3JSZWYsIGludCk7CiBib29sICgq
d2tEcmF3Rm9jdXNSaW5nQXRUaW1lKShDR0NvbnRleHRSZWYsIE5TVGltZUludGVydmFsKTsKQEAg
LTU0LDcgKzUwLDYgQEAgdm9pZCAoKndrV2luZG93U2V0QWxwaGEpKE5TV2luZG93ICosIGZsb2F0
KTsKIHZvaWQgKCp3a1dpbmRvd1NldFNjYWxlZEZyYW1lKShOU1dpbmRvdyAqLCBOU1JlY3QsIE5T
UmVjdCk7CiBDRlN0cmluZ1JlZiAoKndrU2lnbmVkUHVibGljS2V5QW5kQ2hhbGxlbmdlU3RyaW5n
KSh1bnNpZ25lZCBrZXlTaXplLCBDRlN0cmluZ1JlZiBjaGFsbGVuZ2UsIENGU3RyaW5nUmVmIGtl
eURlc2NyaXB0aW9uKTsKIE5TVGltZUludGVydmFsICgqd2tHZXROU1VSTFJlc3BvbnNlQ2FsY3Vs
YXRlZEV4cGlyYXRpb24pKE5TVVJMUmVzcG9uc2UgKnJlc3BvbnNlKTsKLU5TRGF0ZSAqKCp3a0dl
dE5TVVJMUmVzcG9uc2VMYXN0TW9kaWZpZWREYXRlKShOU1VSTFJlc3BvbnNlICpyZXNwb25zZSk7
CiBCT09MICgqd2tHZXROU1VSTFJlc3BvbnNlTXVzdFJldmFsaWRhdGUpKE5TVVJMUmVzcG9uc2Ug
KnJlc3BvbnNlKTsKIHZvaWQgKCp3a0dldFdoZWVsRXZlbnREZWx0YXMpKE5TRXZlbnQqLCBmbG9h
dCogZGVsdGFYLCBmbG9hdCogZGVsdGFZLCBCT09MKiBjb250aW51b3VzKTsKIFVJbnQ4ICgqd2tH
ZXROU0V2ZW50S2V5Q2hhcikoTlNFdmVudCAqKTsKQEAgLTYzLDM4ICs1OCwyMSBAQCB1bnNpZ25l
ZCAoKndrUVRJbmNsdWRlT25seU1vZGVybk1lZGlhRmlsZVR5cGVzKSh2b2lkKTsKIHZvaWQgKCp3
a1FUTW92aWVEaXNhYmxlQ29tcG9uZW50KSh1aW50MzJfdFs1XSk7CiBmbG9hdCAoKndrUVRNb3Zp
ZU1heFRpbWVMb2FkZWQpKFFUTW92aWUqKTsKIE5TU3RyaW5nICooKndrUVRNb3ZpZU1heFRpbWVM
b2FkZWRDaGFuZ2VOb3RpZmljYXRpb24pKHZvaWQpOwotZmxvYXQgKCp3a1FUTW92aWVNYXhUaW1l
U2Vla2FibGUpKFFUTW92aWUqKTsKIGludCAoKndrUVRNb3ZpZUdldFR5cGUpKFFUTW92aWUqKTsK
IEJPT0wgKCp3a1FUTW92aWVIYXNDbG9zZWRDYXB0aW9ucykoUVRNb3ZpZSopOwogTlNVUkwgKigq
d2tRVE1vdmllUmVzb2x2ZWRVUkwpKFFUTW92aWUqKTsKIHZvaWQgKCp3a1FUTW92aWVTZXRTaG93
Q2xvc2VkQ2FwdGlvbnMpKFFUTW92aWUqLCBCT09MKTsKIHZvaWQgKCp3a1FUTW92aWVTZWxlY3RQ
cmVmZXJyZWRBbHRlcm5hdGVzKShRVE1vdmllKik7Ci12b2lkICgqd2tRVE1vdmllVmlld1NldERy
YXdTeW5jaHJvbm91c2x5KShRVE1vdmllVmlldyosIEJPT0wpOwogTlNBcnJheSAqKCp3a1FUR2V0
U2l0ZXNJbk1lZGlhRG93bmxvYWRDYWNoZSkoKTsKIHZvaWQgKCp3a1FUQ2xlYXJNZWRpYURvd25s
b2FkQ2FjaGVGb3JTaXRlKShOU1N0cmluZyAqc2l0ZSk7CiB2b2lkICgqd2tRVENsZWFyTWVkaWFE
b3dubG9hZENhY2hlKSgpOwogCi12b2lkICgqd2tTZXRDR0ZvbnRSZW5kZXJpbmdNb2RlKShDR0Nv
bnRleHRSZWYsIE5TRm9udCosIEJPT0wpOwogdm9pZCAoKndrU2V0RHJhZ0ltYWdlKShOU0ltYWdl
KiwgTlNQb2ludCBvZmZzZXQpOwogYm9vbCAoKndrQ0dDb250ZXh0SXNQREZDb250ZXh0KShDR0Nv
bnRleHRSZWYpOwotdm9pZCAoKndrU2V0TlNVUkxSZXF1ZXN0U2hvdWxkQ29udGVudFNuaWZmKShO
U011dGFibGVVUkxSZXF1ZXN0ICosIEJPT0wpOwotdW5zaWduZWQgKCp3a0luaXRpYWxpemVNYXhp
bXVtSFRUUENvbm5lY3Rpb25Db3VudFBlckhvc3QpKHVuc2lnbmVkIHByZWZlcnJlZENvbm5lY3Rp
b25Db3VudCk7Ci1pbnQgKCp3a0dldEhUVFBSZXF1ZXN0UHJpb3JpdHkpKENGVVJMUmVxdWVzdFJl
Zik7Ci12b2lkICgqd2tTZXRIVFRQUmVxdWVzdE1heGltdW1Qcmlvcml0eSkoaW50IHByaW9yaXR5
KTsKLXZvaWQgKCp3a1NldEhUVFBSZXF1ZXN0UHJpb3JpdHkpKENGVVJMUmVxdWVzdFJlZiwgaW50
IHByaW9yaXR5KTsKLXZvaWQgKCp3a1NldEhUVFBSZXF1ZXN0TWluaW11bUZhc3RMYW5lUHJpb3Jp
dHkpKGludCBwcmlvcml0eSk7Ci12b2lkICgqd2tIVFRQUmVxdWVzdEVuYWJsZVBpcGVsaW5pbmcp
KENGVVJMUmVxdWVzdFJlZik7CiB2b2lkICgqd2tTZXRDT05ORUNUUHJveHlGb3JTdHJlYW0pKENG
UmVhZFN0cmVhbVJlZiwgQ0ZTdHJpbmdSZWYgcHJveHlIb3N0LCBDRk51bWJlclJlZiBwcm94eVBv
cnQpOwogdm9pZCAoKndrU2V0Q09OTkVDVFByb3h5QXV0aG9yaXphdGlvbkZvclN0cmVhbSkoQ0ZS
ZWFkU3RyZWFtUmVmLCBDRlN0cmluZ1JlZiBwcm94eUF1dGhvcml6YXRpb25TdHJpbmcpOwogQ0ZI
VFRQTWVzc2FnZVJlZiAoKndrQ29weUNPTk5FQ1RQcm94eVJlc3BvbnNlKShDRlJlYWRTdHJlYW1S
ZWYsIENGVVJMUmVmIHJlc3BvbnNlVVJMLCBDRlN0cmluZ1JlZiBwcm94eUhvc3QsIENGTnVtYmVy
UmVmIHByb3h5UG9ydCk7CiAKLSNpZiBVU0UoQ0ZORVRXT1JLKQotQ0ZIVFRQQ29va2llU3RvcmFn
ZVJlZiAoKndrR2V0RGVmYXVsdEhUVFBDb29raWVTdG9yYWdlKSgpOwotV0tDRlVSTENyZWRlbnRp
YWxSZWYgKCp3a0NvcHlDcmVkZW50aWFsRnJvbUNGUGVyc2lzdGVudFN0b3JhZ2UpKENGVVJMUHJv
dGVjdGlvblNwYWNlUmVmIHByb3RlY3Rpb25TcGFjZSk7Ci12b2lkICgqd2tTZXRDRlVSTFJlcXVl
c3RTaG91bGRDb250ZW50U25pZmYpKENGTXV0YWJsZVVSTFJlcXVlc3RSZWYsIGJvb2wpOwotdm9p
ZCAoKndrU2V0UmVxdWVzdFN0b3JhZ2VTZXNzaW9uKShDRlVSTFN0b3JhZ2VTZXNzaW9uUmVmLCBD
Rk11dGFibGVVUkxSZXF1ZXN0UmVmKTsKLSNlbmRpZgotCiB2b2lkKiB3a0dldEh5cGhlbmF0aW9u
TG9jYXRpb25CZWZvcmVJbmRleDsKIAogYm9vbCAoKndrRXhlY3V0YWJsZVdhc0xpbmtlZE9uT3JC
ZWZvcmVTbm93TGVvcGFyZCkodm9pZCk7CkBAIC0xMTksMjQgKzk3LDE1IEBAIEFYVUlFbGVtZW50
UmVmICgqd2tDcmVhdGVBWFVJRWxlbWVudFJlZikoaWQgZWxlbWVudCk7CiAKIENGVVJMU3RvcmFn
ZVNlc3Npb25SZWYgKCp3a0NyZWF0ZVByaXZhdGVTdG9yYWdlU2Vzc2lvbikoQ0ZTdHJpbmdSZWYp
OwogTlNVUkxSZXF1ZXN0KiAoKndrQ29weVJlcXVlc3RXaXRoU3RvcmFnZVNlc3Npb24pKENGVVJM
U3RvcmFnZVNlc3Npb25SZWYsIE5TVVJMUmVxdWVzdCopOwotQ0ZIVFRQQ29va2llU3RvcmFnZVJl
ZiAoKndrQ29weUhUVFBDb29raWVTdG9yYWdlKShDRlVSTFN0b3JhZ2VTZXNzaW9uUmVmKTsKIHVu
c2lnbmVkICgqd2tHZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KShDRkhUVFBDb29raWVTdG9yYWdl
UmVmKTsKLXZvaWQgKCp3a1NldEhUVFBDb29raWVBY2NlcHRQb2xpY3kpKENGSFRUUENvb2tpZVN0
b3JhZ2VSZWYsIHVuc2lnbmVkKTsKIE5TQXJyYXkgKigqd2tIVFRQQ29va2llcykoQ0ZIVFRQQ29v
a2llU3RvcmFnZVJlZik7CiBOU0FycmF5ICooKndrSFRUUENvb2tpZXNGb3JVUkwpKENGSFRUUENv
b2tpZVN0b3JhZ2VSZWYsIE5TVVJMICosIE5TVVJMICopOwogdm9pZCAoKndrU2V0SFRUUENvb2tp
ZXNGb3JVUkwpKENGSFRUUENvb2tpZVN0b3JhZ2VSZWYsIE5TQXJyYXkgKiwgTlNVUkwgKiwgTlNV
UkwgKik7CiB2b2lkICgqd2tEZWxldGVBbGxIVFRQQ29va2llcykoQ0ZIVFRQQ29va2llU3RvcmFn
ZVJlZik7CiB2b2lkICgqd2tEZWxldGVIVFRQQ29va2llKShDRkhUVFBDb29raWVTdG9yYWdlUmVm
LCBOU0hUVFBDb29raWUgKik7CiAKLUNGU3RyaW5nUmVmICgqd2tHZXRDRlVSTFJlc3BvbnNlTUlN
RVR5cGUpKENGVVJMUmVzcG9uc2VSZWYpOwotQ0ZVUkxSZWYgKCp3a0dldENGVVJMUmVzcG9uc2VV
UkwpKENGVVJMUmVzcG9uc2VSZWYpOwotQ0ZIVFRQTWVzc2FnZVJlZiAoKndrR2V0Q0ZVUkxSZXNw
b25zZUhUVFBSZXNwb25zZSkoQ0ZVUkxSZXNwb25zZVJlZik7Ci1DRlN0cmluZ1JlZiAoKndrQ29w
eUNGVVJMUmVzcG9uc2VTdWdnZXN0ZWRGaWxlbmFtZSkoQ0ZVUkxSZXNwb25zZVJlZik7Ci12b2lk
ICgqd2tTZXRDRlVSTFJlc3BvbnNlTUlNRVR5cGUpKENGVVJMUmVzcG9uc2VSZWYsIENGU3RyaW5n
UmVmIG1pbWVUeXBlKTsKIHZvaWQgKCp3a1NldE1ldGFkYXRhVVJMKShOU1N0cmluZyAqdXJsU3Ry
aW5nLCBOU1N0cmluZyAqcmVmZXJyZXIsIE5TU3RyaW5nICpwYXRoKTsKIAotdm9pZCAoKndrQ0ZV
UkxSZXF1ZXN0QWxsb3dBbGxQb3N0Q2FjaGluZykoQ0ZVUkxSZXF1ZXN0UmVmKTsKLQogI2lmICFQ
TEFURk9STShJT1MpCiBDR0Zsb2F0ICgqd2tOU0VsYXN0aWNEZWx0YUZvclRpbWVEZWx0YSkoQ0dG
bG9hdCBpbml0aWFsUG9zaXRpb24sIENHRmxvYXQgaW5pdGlhbFZlbG9jaXR5LCBDR0Zsb2F0IGVs
YXBzZWRUaW1lKTsKIENHRmxvYXQgKCp3a05TRWxhc3RpY0RlbHRhRm9yUmVib3VuZERlbHRhKShD
R0Zsb2F0IGRlbHRhKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oCmluZGV4IDliZmZkMGEwYjBkOTAzZWMyMWZhNGZi
MmE4YTFmNGVkZTRiZjQyNWEuLmQ5ZTM4ZDAxM2MyZjNiZDlkY2U3MzIxYzg3YWY3N2IzYmY1YmQz
YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0
b3JhZ2VTZXNzaW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3
b3JrU3RvcmFnZVNlc3Npb24uaApAQCAtMzIsOCArMzIsNyBAQAogI2luY2x1ZGUgPHd0Zi90ZXh0
L1dURlN0cmluZy5oPgogCiAjaWYgUExBVEZPUk0oQ09DT0EpIHx8IFVTRShDRk5FVFdPUkspCi10
eXBlZGVmIGNvbnN0IHN0cnVjdCBfX0NGVVJMU3RvcmFnZVNlc3Npb24qIENGVVJMU3RvcmFnZVNl
c3Npb25SZWY7Ci10eXBlZGVmIHN0cnVjdCBPcGFxdWVDRkhUVFBDb29raWVTdG9yYWdlKiAgQ0ZI
VFRQQ29va2llU3RvcmFnZVJlZjsKKyNpbmNsdWRlICJDRk5ldHdvcmtTUEkuaCIKICNlbmRpZgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL2NmL0NyZWRlbnRpYWxTdG9yYWdlQ0ZOZXQuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9jZi9DcmVkZW50aWFsU3RvcmFnZUNGTmV0LmNwcAppbmRleCA1NjA5
MjU5N2FhY2NkMjc3M2Y2OThiMzViZDRmYzcxNTg3MmM0MGU0Li41OWZlYTUzYzUzZTQ5NjdkMGVh
ODkzYjkyNWQ3MDYxNTBjYTVlZWU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL2NmL0NyZWRlbnRpYWxTdG9yYWdlQ0ZOZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvQ3JlZGVudGlhbFN0b3JhZ2VDRk5ldC5jcHAKQEAgLTI5
LDYgKzI5LDcgQEAKICNpZiBVU0UoQ0ZORVRXT1JLKQogCiAjaW5jbHVkZSAiQXV0aGVudGljYXRp
b25DRi5oIgorI2luY2x1ZGUgIkNGTmV0d29ya1NQSS5oIgogI2luY2x1ZGUgIkNyZWRlbnRpYWwu
aCIKICNpbmNsdWRlICJQcm90ZWN0aW9uU3BhY2UuaCIKICNpbmNsdWRlIDx3dGYvUmV0YWluUHRy
Lmg+CkBAIC00NCwxNSArNDUsMjEgQEAKICNlbmRpZgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Cisg
ICAgCitzdGF0aWMgaW5saW5lIENGVVJMQ3JlZGVudGlhbFJlZiBjb3B5Q3JlZGVudGlhbEZyb21Q
cm90ZWN0aW9uU3BhY2UoQ0ZVUkxQcm90ZWN0aW9uU3BhY2VSZWYgcHJvdGVjdGlvblNwYWNlKQor
eworICAgIGF1dG8gc3RvcmFnZSA9IGFkb3B0Q0YoQ0ZVUkxDcmVkZW50aWFsU3RvcmFnZUNyZWF0
ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0KSk7CisgICAgcmV0dXJuIENGVVJMQ3JlZGVudGlhbFN0b3Jh
Z2VDb3B5RGVmYXVsdENyZWRlbnRpYWxGb3JQcm90ZWN0aW9uU3BhY2Uoc3RvcmFnZS5nZXQoKSwg
cHJvdGVjdGlvblNwYWNlKTsKK30KIAogQ3JlZGVudGlhbCBDcmVkZW50aWFsU3RvcmFnZTo6Z2V0
RnJvbVBlcnNpc3RlbnRTdG9yYWdlKGNvbnN0IFByb3RlY3Rpb25TcGFjZSYgcHJvdGVjdGlvblNw
YWNlKQogewogI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIFJldGFpblB0cjxDRlVSTENyZWRlbnRp
YWxSZWY+IGNyZWRlbnRpYWxDRiA9IGFkb3B0Q0Yod2tDb3B5Q3JlZGVudGlhbEZyb21DRlBlcnNp
c3RlbnRTdG9yYWdlKHByb3RlY3Rpb25TcGFjZS5jZlNwYWNlKCkpKTsKKyAgICBhdXRvIGNyZWRl
bnRpYWxDRiA9IGFkb3B0Q0YoY29weUNyZWRlbnRpYWxGcm9tUHJvdGVjdGlvblNwYWNlKHByb3Rl
Y3Rpb25TcGFjZS5jZlNwYWNlKCkpKTsKICAgICByZXR1cm4gQ3JlZGVudGlhbChjcmVkZW50aWFs
Q0YuZ2V0KCkpOwogI2Vsc2UKLSAgICBSZXRhaW5QdHI8Q0ZVUkxQcm90ZWN0aW9uU3BhY2VSZWY+
IHByb3RlY3Rpb25TcGFjZUNGID0gYWRvcHRDRihjcmVhdGVDRihwcm90ZWN0aW9uU3BhY2UpKTsK
LSAgICBSZXRhaW5QdHI8Q0ZVUkxDcmVkZW50aWFsUmVmPiBjcmVkZW50aWFsQ0YgPSBhZG9wdENG
KHdrQ29weUNyZWRlbnRpYWxGcm9tQ0ZQZXJzaXN0ZW50U3RvcmFnZShwcm90ZWN0aW9uU3BhY2VD
Ri5nZXQoKSkpOworICAgIGF1dG8gcHJvdGVjdGlvblNwYWNlQ0YgPSBhZG9wdENGKGNyZWF0ZUNG
KHByb3RlY3Rpb25TcGFjZSkpOworICAgIGF1dG8gY3JlZGVudGlhbENGID0gYWRvcHRDRihjb3B5
Q3JlZGVudGlhbEZyb21Qcm90ZWN0aW9uU3BhY2UocHJvdGVjdGlvblNwYWNlQ0YuZ2V0KCkpKTsK
ICAgICByZXR1cm4gY29yZShjcmVkZW50aWFsQ0YuZ2V0KCkpOwogI2VuZGlmCiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL05ldHdvcmtTdG9yYWdlU2Vz
c2lvbkNGTmV0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvTmV0d29y
a1N0b3JhZ2VTZXNzaW9uQ0ZOZXQuY3BwCmluZGV4IDRlZmRmNzJhM2QxN2VjZjUzODdhNTMyOGQz
MGNkMmM2ZjRmNDI0YzYuLjY3NjdhZDIzMDAwMWVjYjQxNWQwMjg2NTY3MGYwMmQwYmEzNTA4NDgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvTmV0d29ya1N0
b3JhZ2VTZXNzaW9uQ0ZOZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvY2YvTmV0d29ya1N0b3JhZ2VTZXNzaW9uQ0ZOZXQuY3BwCkBAIC04NCwxMCArODQsMTAgQEAg
c3RkOjp1bmlxdWVfcHRyPE5ldHdvcmtTdG9yYWdlU2Vzc2lvbj4gTmV0d29ya1N0b3JhZ2VTZXNz
aW9uOjpjcmVhdGVQcml2YXRlQnJvd3MKIFJldGFpblB0cjxDRkhUVFBDb29raWVTdG9yYWdlUmVm
PiBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmNvb2tpZVN0b3JhZ2UoKSBjb25zdAogewogICAgIGlm
IChtX3BsYXRmb3JtU2Vzc2lvbikKLSAgICAgICAgcmV0dXJuIGFkb3B0Q0Yod2tDb3B5SFRUUENv
b2tpZVN0b3JhZ2UobV9wbGF0Zm9ybVNlc3Npb24uZ2V0KCkpKTsKKyAgICAgICAgcmV0dXJuIGFk
b3B0Q0YoX0NGVVJMU3RvcmFnZVNlc3Npb25Db3B5Q29va2llU3RvcmFnZShrQ0ZBbGxvY2F0b3JE
ZWZhdWx0LCBtX3BsYXRmb3JtU2Vzc2lvbi5nZXQoKSkpOwogCiAjaWYgVVNFKENGTkVUV09SSykK
LSAgICByZXR1cm4gd2tHZXREZWZhdWx0SFRUUENvb2tpZVN0b3JhZ2UoKTsKKyAgICByZXR1cm4g
X0NGSFRUUENvb2tpZVN0b3JhZ2VHZXREZWZhdWx0KGtDRkFsbG9jYXRvckRlZmF1bHQpOwogI2Vs
c2UKICAgICAvLyBXaGVuIHVzaW5nIE5TVVJMQ29ubmVjdGlvbiwgd2UgYWxzbyB1c2UgaXRzIHNo
YXJlZCBjb29raWUgc3RvcmFnZS4KICAgICByZXR1cm4gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVDRk5ldC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZOZXQuY3BwCmlu
ZGV4IDVjMTQyMDdkNDFhYTM2Zjc5MGJlZWM3YzMzZjQ3YmYyYTdjN2QyNTEuLmRjNzliYzM5OTRi
MmM3ZTE3YmZhOWQzNWU4YjlmODUxMjY3Njc1NWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVDRk5ldC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGTmV0LmNwcApAQCAt
MTE2LDYgKzExNiwxNSBAQCBSZXNvdXJjZUhhbmRsZTo6flJlc291cmNlSGFuZGxlKCkKIHsKICAg
ICBMT0coTmV0d29yaywgIkNGTmV0IC0gRGVzdHJveWluZyBqb2IgJXAgKCVzKSIsIHRoaXMsIGQt
Pm1fZmlyc3RSZXF1ZXN0LnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwogfQorICAgIAor
c3RhdGljIGlubGluZSBDRlN0cmluZ1JlZiBzaG91bGRTbmlmZkNvbm5lY3Rpb25Qcm9wZXJ0eSgp
Cit7CisjaWYgUExBVEZPUk0oV0lOKQorICAgIHJldHVybiBDRlNUUigiX2tDRlVSTENvbm5lY3Rp
b25Qcm9wZXJ0eVNob3VsZFNuaWZmIik7CisjZWxzZQorICAgIHJldHVybiBfa0NGVVJMQ29ubmVj
dGlvblByb3BlcnR5U2hvdWxkU25pZmY7CisjZW5kaWYKK30KIAogdm9pZCBSZXNvdXJjZUhhbmRs
ZTo6Y3JlYXRlQ0ZVUkxDb25uZWN0aW9uKGJvb2wgc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2Us
IGJvb2wgc2hvdWxkQ29udGVudFNuaWZmLCBTY2hlZHVsaW5nQmVoYXZpb3Igc2NoZWR1bGluZ0Jl
aGF2aW9yLCBDRkRpY3Rpb25hcnlSZWYgY2xpZW50UHJvcGVydGllcykKIHsKQEAgLTE0NywxMSAr
MTU2LDEyIEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZUNGVVJMQ29ubmVjdGlvbihib29s
IHNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlLCBib29sCiAgICAgICAgIGFwcGx5QmFzaWNBdXRo
b3JpemF0aW9uSGVhZGVyKGZpcnN0UmVxdWVzdCgpLCBkLT5tX2luaXRpYWxDcmVkZW50aWFsKTsK
ICAgICB9CiAKLSAgICBSZXRhaW5QdHI8Q0ZNdXRhYmxlVVJMUmVxdWVzdFJlZj4gcmVxdWVzdCA9
IGFkb3B0Q0YoQ0ZVUkxSZXF1ZXN0Q3JlYXRlTXV0YWJsZUNvcHkoa0NGQWxsb2NhdG9yRGVmYXVs
dCwgZmlyc3RSZXF1ZXN0KCkuY2ZVUkxSZXF1ZXN0KFVwZGF0ZUhUVFBCb2R5KSkpOwotICAgIHdr
U2V0UmVxdWVzdFN0b3JhZ2VTZXNzaW9uKGQtPm1fc3RvcmFnZVNlc3Npb24uZ2V0KCksIHJlcXVl
c3QuZ2V0KCkpOworICAgIGF1dG8gcmVxdWVzdCA9IGFkb3B0Q0YoQ0ZVUkxSZXF1ZXN0Q3JlYXRl
TXV0YWJsZUNvcHkoa0NGQWxsb2NhdG9yRGVmYXVsdCwgZmlyc3RSZXF1ZXN0KCkuY2ZVUkxSZXF1
ZXN0KFVwZGF0ZUhUVFBCb2R5KSkpOworICAgIGlmIChhdXRvIHN0b3JhZ2VTZXNzaW9uID0gZC0+
bV9zdG9yYWdlU2Vzc2lvbi5nZXQoKSkKKyAgICAgICAgX0NGVVJMUmVxdWVzdFNldFN0b3JhZ2VT
ZXNzaW9uKHJlcXVlc3QuZ2V0KCksIHN0b3JhZ2VTZXNzaW9uKTsKICAgICAKICAgICBpZiAoIXNo
b3VsZENvbnRlbnRTbmlmZikKLSAgICAgICAgd2tTZXRDRlVSTFJlcXVlc3RTaG91bGRDb250ZW50
U25pZmYocmVxdWVzdC5nZXQoKSwgZmFsc2UpOworICAgICAgICBfQ0ZVUkxSZXF1ZXN0U2V0UHJv
dG9jb2xQcm9wZXJ0eShyZXF1ZXN0LmdldCgpLCBzaG91bGRTbmlmZkNvbm5lY3Rpb25Qcm9wZXJ0
eSgpLCBrQ0ZCb29sZWFuRmFsc2UpOwogCiAgICAgUmV0YWluUHRyPENGTXV0YWJsZURpY3Rpb25h
cnlSZWY+IHNzbFByb3BzOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGUuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVj
dGlvbkRlbGVnYXRlLmNwcAppbmRleCA0ZjdhNzkyOWYxYjExZDg4NGQ4ZDA0NzY4MjExMmFkYjY2
ZTliYmQ1Li4yODFhN2I2MmViZDk2MmY5MDUyYjM0MzczZjg4YmZjZWJiZjlkZmU3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZV
UkxDb25uZWN0aW9uRGVsZWdhdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZS5jcHAKQEAgLTE1
OCw4ICsxNTgsOSBAQCBSZXNvdXJjZVJlcXVlc3QgUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rp
b25EZWxlZ2F0ZTo6Y3JlYXRlUmVzb3VyY2VSZXF1ZXN0KENGVQogICAgICAgICBSZXRhaW5QdHI8
Q0ZTdHJpbmdSZWY+IGxhc3RIVFRQTWV0aG9kID0gbV9oYW5kbGUtPmxhc3RIVFRQTWV0aG9kKCku
Y3JlYXRlQ0ZTdHJpbmcoKTsKICAgICAgICAgUmV0YWluUHRyPENGU3RyaW5nUmVmPiBuZXdNZXRo
b2QgPSBhZG9wdENGKENGVVJMUmVxdWVzdENvcHlIVFRQUmVxdWVzdE1ldGhvZChjZlJlcXVlc3Qp
KTsKICAgICAgICAgaWYgKENGU3RyaW5nQ29tcGFyZVdpdGhPcHRpb25zKGxhc3RIVFRQTWV0aG9k
LmdldCgpLCBuZXdNZXRob2QuZ2V0KCksIENGUmFuZ2VNYWtlKDAsIENGU3RyaW5nR2V0TGVuZ3Ro
KGxhc3RIVFRQTWV0aG9kLmdldCgpKSksIGtDRkNvbXBhcmVDYXNlSW5zZW5zaXRpdmUpKSB7Ci0g
ICAgICAgICAgICBSZXRhaW5QdHI8Q0ZNdXRhYmxlVVJMUmVxdWVzdFJlZj4gbXV0YWJsZVJlcXVl
c3QgPSBhZG9wdENGKENGVVJMUmVxdWVzdENyZWF0ZU11dGFibGVDb3B5KDAsIGNmUmVxdWVzdCkp
OwotICAgICAgICAgICAgd2tTZXRSZXF1ZXN0U3RvcmFnZVNlc3Npb24obV9oYW5kbGUtPnN0b3Jh
Z2VTZXNzaW9uKCksIG11dGFibGVSZXF1ZXN0LmdldCgpKTsKKyAgICAgICAgICAgIGF1dG8gbXV0
YWJsZVJlcXVlc3QgPSBhZG9wdENGKENGVVJMUmVxdWVzdENyZWF0ZU11dGFibGVDb3B5KGtDRkFs
bG9jYXRvckRlZmF1bHQsIGNmUmVxdWVzdCkpOworICAgICAgICAgICAgaWYgKGF1dG8gc3RvcmFn
ZVNlc3Npb24gPSBtX2hhbmRsZS0+c3RvcmFnZVNlc3Npb24oKSkKKyAgICAgICAgICAgICAgICBf
Q0ZVUkxSZXF1ZXN0U2V0U3RvcmFnZVNlc3Npb24obXV0YWJsZVJlcXVlc3QuZ2V0KCksIHN0b3Jh
Z2VTZXNzaW9uKTsKICAgICAgICAgICAgIENGVVJMUmVxdWVzdFNldEhUVFBSZXF1ZXN0TWV0aG9k
KG11dGFibGVSZXF1ZXN0LmdldCgpLCBsYXN0SFRUUE1ldGhvZC5nZXQoKSk7CiAKICAgICAgICAg
ICAgIEZvcm1EYXRhKiBib2R5ID0gbV9oYW5kbGUtPmZpcnN0UmVxdWVzdCgpLmh0dHBCb2R5KCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNl
SGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGVXaXRoT3BlcmF0aW9uUXVldWUuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVj
dGlvbkRlbGVnYXRlV2l0aE9wZXJhdGlvblF1ZXVlLmNwcAppbmRleCBkMDYyYTU0OGQ3MTZkOGVk
OGE5Y2FkNzYyNzAyYjVlOTM3NzJlMzQxLi45ZjBkNmFmYzk4NDdmZTJhYzU0ZDdmNmRlMDRhZWJh
NGM5MjZlMWVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2Nm
L1Jlc291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGVXaXRoT3BlcmF0aW9uUXVldWUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5k
bGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZVdpdGhPcGVyYXRpb25RdWV1ZS5jcHAKQEAgLTMwLDEy
ICszMCwxMiBAQAogCiAjaW5jbHVkZSAiQXV0aGVudGljYXRpb25DRi5oIgogI2luY2x1ZGUgIkF1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLmgiCisjaW5jbHVkZSAiQ0ZOZXR3b3JrU1BJLmgiCiAjaW5j
bHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIlJlc291cmNlSGFuZGxlLmgiCiAjaW5jbHVkZSAi
UmVzb3VyY2VIYW5kbGVDbGllbnQuaCIKICNpbmNsdWRlICJSZXNvdXJjZVJlc3BvbnNlLmgiCiAj
aW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgiCi0jaW5jbHVkZSAiV2ViQ29yZVN5c3RlbUludGVyZmFj
ZS5oIgogI2luY2x1ZGUgIldlYkNvcmVVUkxSZXNwb25zZS5oIgogI2luY2x1ZGUgPHd0Zi9NYWlu
VGhyZWFkLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgpAQCAtMTQwLDcgKzE0MCw3
IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZVdpdGhPcGVyYXRp
b25RdWV1ZTo6ZGlkUmVjZWl2ZVJlc3BvbnNlCiAgICAgICAgIExPRyhOZXR3b3JrLCAiQ0ZOZXQg
LSBSZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlV2l0aE9wZXJhdGlvblF1ZXVl
OjpkaWRSZWNlaXZlUmVzcG9uc2UoaGFuZGxlPSVwKSAoJXMpIiwgbV9oYW5kbGUsIG1faGFuZGxl
LT5maXJzdFJlcXVlc3QoKS51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKIAogICAgICAg
ICAvLyBBdm9pZCBNSU1FIHR5cGUgc25pZmZpbmcgaWYgdGhlIHJlc3BvbnNlIGNvbWVzIGJhY2sg
YXMgMzA0IE5vdCBNb2RpZmllZC4KLSAgICAgICAgQ0ZIVFRQTWVzc2FnZVJlZiBtc2cgPSB3a0dl
dENGVVJMUmVzcG9uc2VIVFRQUmVzcG9uc2UoY2ZSZXNwb25zZSk7CisgICAgICAgIGF1dG8gbXNn
ID0gQ0ZVUkxSZXNwb25zZUdldEhUVFBSZXNwb25zZShjZlJlc3BvbnNlKTsKICAgICAgICAgaW50
IHN0YXR1c0NvZGUgPSBtc2cgPyBDRkhUVFBNZXNzYWdlR2V0UmVzcG9uc2VTdGF0dXNDb2RlKG1z
ZykgOiAwOwogCiAgICAgICAgIGlmIChzdGF0dXNDb2RlICE9IDMwNCkKQEAgLTE0OCw3ICsxNDgs
NyBAQCB2b2lkIFJlc291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGVXaXRoT3BlcmF0
aW9uUXVldWU6OmRpZFJlY2VpdmVSZXNwb25zZQogCiAjaWYgIVBMQVRGT1JNKElPUykKICAgICAg
ICAgaWYgKF9DRlVSTFJlcXVlc3RDb3B5UHJvdG9jb2xQcm9wZXJ0eUZvcktleShtX2hhbmRsZS0+
Zmlyc3RSZXF1ZXN0KCkuY2ZVUkxSZXF1ZXN0KERvTm90VXBkYXRlSFRUUEJvZHkpLCBDRlNUUigi
Rm9yY2VIVE1MTUlNRVR5cGUiKSkpCi0gICAgICAgICAgICB3a1NldENGVVJMUmVzcG9uc2VNSU1F
VHlwZShjZlJlc3BvbnNlLCBDRlNUUigidGV4dC9odG1sIikpOworICAgICAgICAgICAgQ0ZVUkxS
ZXNwb25zZVNldE1JTUVUeXBlKGNmUmVzcG9uc2UsIENGU1RSKCJ0ZXh0L2h0bWwiKSk7CiAjZW5k
aWYgLy8gIVBMQVRGT1JNKElPUykKICAgICAgICAgCiAgICAgICAgIFJlc291cmNlUmVzcG9uc2Ug
cmVzb3VyY2VSZXNwb25zZShjZlJlc3BvbnNlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VSZXF1ZXN0Q0ZOZXQuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZVJlcXVlc3RDRk5ldC5jcHAKaW5kZXgg
YTRkNDNkZjNjMGE0MjhmMTcwNjE4MmU4YThhYWJjMDVkZGEyM2E5ZS4uMTk0NTUyNWQ4YTBjM2Q1
ZDBmYjFhYzgyZjMzZGIzMTczZTAyMjI3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZVJlcXVlc3RDRk5ldC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZVJlcXVlc3RDRk5ldC5jcHAKQEAgLTI2
LDYgKzI2LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJSZXNvdXJjZVJlcXVl
c3RDRk5ldC5oIgogCisjaW5jbHVkZSAiQ0ZOZXR3b3JrU1BJLmgiCiAjaW5jbHVkZSAiSFRUUEhl
YWRlck5hbWVzLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VSZXF1ZXN0LmgiCiAKQEAgLTM5LDEwICs0
MCw2IEBACiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogI2VuZGlmCiAKLSNpZiBQTEFU
Rk9STShJT1MpCi0jaW5jbHVkZSAiQ0ZOZXR3b3JrQ29ubmVjdGlvbkNhY2hlU1BJLmgiCi0jZW5k
aWYKLQogI2lmIFBMQVRGT1JNKENPQ09BKQogI2luY2x1ZGUgIlJlc291cmNlTG9hZFByaW9yaXR5
LmgiCiAjaW5jbHVkZSAiV2ViQ29yZVN5c3RlbUludGVyZmFjZS5oIgpAQCAtMTU0LDEzICsxNTEs
MTMgQEAgdm9pZCBSZXNvdXJjZVJlcXVlc3Q6OmRvVXBkYXRlUGxhdGZvcm1SZXF1ZXN0KCkKICAg
ICBDRlVSTFJlcXVlc3RTZXRIVFRQUmVxdWVzdE1ldGhvZChjZlJlcXVlc3QsIGh0dHBNZXRob2Qo
KS5jcmVhdGVDRlN0cmluZygpLmdldCgpKTsKIAogICAgIGlmIChodHRwUGlwZWxpbmluZ0VuYWJs
ZWQoKSkKLSAgICAgICAgd2tIVFRQUmVxdWVzdEVuYWJsZVBpcGVsaW5pbmcoY2ZSZXF1ZXN0KTsK
KyAgICAgICAgQ0ZVUkxSZXF1ZXN0U2V0U2hvdWxkUGlwZWxpbmVIVFRQKGNmUmVxdWVzdCwgdHJ1
ZSwgdHJ1ZSk7CiAKICAgICBpZiAocmVzb3VyY2VQcmlvcml0aWVzRW5hYmxlZCgpKQotICAgICAg
ICB3a1NldEhUVFBSZXF1ZXN0UHJpb3JpdHkoY2ZSZXF1ZXN0LCB0b1BsYXRmb3JtUmVxdWVzdFBy
aW9yaXR5KHByaW9yaXR5KCkpKTsKKyAgICAgICAgQ0ZVUkxSZXF1ZXN0U2V0UmVxdWVzdFByaW9y
aXR5KGNmUmVxdWVzdCwgdG9QbGF0Zm9ybVJlcXVlc3RQcmlvcml0eShwcmlvcml0eSgpKSk7CiAK
ICNpZiAhUExBVEZPUk0oV0lOKQotICAgIHdrQ0ZVUkxSZXF1ZXN0QWxsb3dBbGxQb3N0Q2FjaGlu
ZyhjZlJlcXVlc3QpOworICAgIF9DRlVSTFJlcXVlc3RTZXRQcm90b2NvbFByb3BlcnR5KGNmUmVx
dWVzdCwga0NGVVJMUmVxdWVzdEFsbG93QWxsUE9TVENhY2hpbmcsIGtDRkJvb2xlYW5UcnVlKTsK
ICNlbmRpZgogCiAgICAgc2V0SGVhZGVyRmllbGRzKGNmUmVxdWVzdCwgaHR0cEhlYWRlckZpZWxk
cygpKTsKQEAgLTI2MSw3ICsyNTgsNyBAQCB2b2lkIFJlc291cmNlUmVxdWVzdDo6ZG9VcGRhdGVS
ZXNvdXJjZVJlcXVlc3QoKQogICAgIG1fYWxsb3dDb29raWVzID0gQ0ZVUkxSZXF1ZXN0U2hvdWxk
SGFuZGxlSFRUUENvb2tpZXMobV9jZlJlcXVlc3QuZ2V0KCkpOwogCiAgICAgaWYgKHJlc291cmNl
UHJpb3JpdGllc0VuYWJsZWQoKSkKLSAgICAgICAgbV9wcmlvcml0eSA9IHRvUmVzb3VyY2VMb2Fk
UHJpb3JpdHkod2tHZXRIVFRQUmVxdWVzdFByaW9yaXR5KG1fY2ZSZXF1ZXN0LmdldCgpKSk7Cisg
ICAgICAgIG1fcHJpb3JpdHkgPSB0b1Jlc291cmNlTG9hZFByaW9yaXR5KENGVVJMUmVxdWVzdEdl
dFJlcXVlc3RQcmlvcml0eShtX2NmUmVxdWVzdC5nZXQoKSkpOwogCiAgICAgbV9odHRwSGVhZGVy
RmllbGRzLmNsZWFyKCk7CiAgICAgaWYgKENGRGljdGlvbmFyeVJlZiBoZWFkZXJzID0gQ0ZVUkxS
ZXF1ZXN0Q29weUFsbEhUVFBIZWFkZXJGaWVsZHMobV9jZlJlcXVlc3QuZ2V0KCkpKSB7CkBAIC0z
MTYsOCArMzEzLDkgQEAgdm9pZCBSZXNvdXJjZVJlcXVlc3Q6OnNldFN0b3JhZ2VTZXNzaW9uKENG
VVJMU3RvcmFnZVNlc3Npb25SZWYgc3RvcmFnZVNlc3Npb24pCiB7CiAgICAgdXBkYXRlUGxhdGZv
cm1SZXF1ZXN0KCk7CiAKLSAgICBDRk11dGFibGVVUkxSZXF1ZXN0UmVmIGNmUmVxdWVzdCA9IENG
VVJMUmVxdWVzdENyZWF0ZU11dGFibGVDb3B5KDAsIG1fY2ZSZXF1ZXN0LmdldCgpKTsKLSAgICB3
a1NldFJlcXVlc3RTdG9yYWdlU2Vzc2lvbihzdG9yYWdlU2Vzc2lvbiwgY2ZSZXF1ZXN0KTsKKyAg
ICBhdXRvIGNmUmVxdWVzdCA9IENGVVJMUmVxdWVzdENyZWF0ZU11dGFibGVDb3B5KDAsIG1fY2ZS
ZXF1ZXN0LmdldCgpKTsKKyAgICBpZiAoc3RvcmFnZVNlc3Npb24pCisgICAgICAgIF9DRlVSTFJl
cXVlc3RTZXRTdG9yYWdlU2Vzc2lvbihjZlJlcXVlc3QsIHN0b3JhZ2VTZXNzaW9uKTsKICAgICBt
X2NmUmVxdWVzdCA9IGFkb3B0Q0YoY2ZSZXF1ZXN0KTsKICNpZiBQTEFURk9STShDT0NPQSkKICAg
ICBjbGVhck9yVXBkYXRlTlNVUkxSZXF1ZXN0KCk7CkBAIC0zOTEsNyArMzg5LDggQEAgdW5zaWdu
ZWQgaW5pdGlhbGl6ZU1heGltdW1IVFRQQ29ubmVjdGlvbkNvdW50UGVySG9zdCgpCiAgICAgc3Rh
dGljIGNvbnN0IHVuc2lnbmVkIHByZWZlcnJlZENvbm5lY3Rpb25Db3VudCA9IDY7CiAgICAgc3Rh
dGljIGNvbnN0IHVuc2lnbmVkIHVubGltaXRlZFJlcXVlc3RDb3VudCA9IDEwMDAwOwogCi0gICAg
dW5zaWduZWQgbWF4aW11bUhUVFBDb25uZWN0aW9uQ291bnRQZXJIb3N0ID0gd2tJbml0aWFsaXpl
TWF4aW11bUhUVFBDb25uZWN0aW9uQ291bnRQZXJIb3N0KHByZWZlcnJlZENvbm5lY3Rpb25Db3Vu
dCk7CisgICAgX0NGTmV0d29ya0hUVFBDb25uZWN0aW9uQ2FjaGVTZXRMaW1pdChrSFRUUExvYWRX
aWR0aCwgcHJlZmVycmVkQ29ubmVjdGlvbkNvdW50KTsKKyAgICB1bnNpZ25lZCBtYXhpbXVtSFRU
UENvbm5lY3Rpb25Db3VudFBlckhvc3QgPSBfQ0ZOZXR3b3JrSFRUUENvbm5lY3Rpb25DYWNoZUdl
dExpbWl0KGtIVFRQTG9hZFdpZHRoKTsKIAogICAgIEJvb2xlYW4ga2V5RXhpc3RzQW5kSGFzVmFs
aWRGb3JtYXQgPSBmYWxzZTsKICAgICBCb29sZWFuIHByZWZWYWx1ZSA9IENGUHJlZmVyZW5jZXNH
ZXRBcHBCb29sZWFuVmFsdWUoQ0ZTVFIoIldlYktpdEVuYWJsZUhUVFBQaXBlbGluaW5nIiksIGtD
RlByZWZlcmVuY2VzQ3VycmVudEFwcGxpY2F0aW9uLCAma2V5RXhpc3RzQW5kSGFzVmFsaWRGb3Jt
YXQpOwpAQCAtNDAyLDEwICs0MDEsMTAgQEAgdW5zaWduZWQgaW5pdGlhbGl6ZU1heGltdW1IVFRQ
Q29ubmVjdGlvbkNvdW50UGVySG9zdCgpCiAgICAgaWYgKCFSZXNvdXJjZVJlcXVlc3Q6OnJlc291
cmNlUHJpb3JpdGllc0VuYWJsZWQoKSkKICAgICAgICAgcmV0dXJuIG1heGltdW1IVFRQQ29ubmVj
dGlvbkNvdW50UGVySG9zdDsKIAotICAgIHdrU2V0SFRUUFJlcXVlc3RNYXhpbXVtUHJpb3JpdHko
dG9QbGF0Zm9ybVJlcXVlc3RQcmlvcml0eShSZXNvdXJjZUxvYWRQcmlvcml0eTo6SGlnaGVzdCkp
OworICAgIF9DRk5ldHdvcmtIVFRQQ29ubmVjdGlvbkNhY2hlU2V0TGltaXQoa0hUVFBQcmlvcml0
eU51bUxldmVscywgdG9QbGF0Zm9ybVJlcXVlc3RQcmlvcml0eShSZXNvdXJjZUxvYWRQcmlvcml0
eTo6SGlnaGVzdCkpOwogI2lmICFQTEFURk9STShXSU4pCiAgICAgLy8gRklYTUU6IDxyZGFyOi8v
cHJvYmxlbS85Mzc1NjA5PiBJbXBsZW1lbnQgbWluaW11bSBmYXN0IGxhbmUgcHJpb3JpdHkgc2V0
dGluZyBvbiBXaW5kb3dzCi0gICAgd2tTZXRIVFRQUmVxdWVzdE1pbmltdW1GYXN0TGFuZVByaW9y
aXR5KHRvUGxhdGZvcm1SZXF1ZXN0UHJpb3JpdHkoUmVzb3VyY2VMb2FkUHJpb3JpdHk6Ok1lZGl1
bSkpOworICAgIF9DRk5ldHdvcmtIVFRQQ29ubmVjdGlvbkNhY2hlU2V0TGltaXQoa0hUVFBNaW5p
bXVtRmFzdExhbmVQcmlvcml0eSwgdG9QbGF0Zm9ybVJlcXVlc3RQcmlvcml0eShSZXNvdXJjZUxv
YWRQcmlvcml0eTo6TWVkaXVtKSk7CiAjZW5kaWYKIAogICAgIHJldHVybiB1bmxpbWl0ZWRSZXF1
ZXN0Q291bnQ7CkBAIC00MjAsOSArNDE5LDkgQEAgdm9pZCBpbml0aWFsaXplSFRUUENvbm5lY3Rp
b25TZXR0aW5nc09uU3RhcnR1cCgpCiAgICAgLy8gV2UgY2FuJ3QgcmVhZCBzZXR0aW5ncyBoZXJl
IGFzIHRoaXMgaXMgY2FsbGVkIHRvbyBlYXJseSBmb3IgdGhhdC4gQWxsIHZhbHVlcyBuZWVkIHRv
IGJlIGNvbnN0YW50cy4KICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgcHJlZmVycmVkQ29ubmVj
dGlvbkNvdW50ID0gNjsKICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgZmFzdExhbmVDb25uZWN0
aW9uQ291bnQgPSAxOwotICAgIHdrSW5pdGlhbGl6ZU1heGltdW1IVFRQQ29ubmVjdGlvbkNvdW50
UGVySG9zdChwcmVmZXJyZWRDb25uZWN0aW9uQ291bnQpOwotICAgIHdrU2V0SFRUUFJlcXVlc3RN
YXhpbXVtUHJpb3JpdHkodG9QbGF0Zm9ybVJlcXVlc3RQcmlvcml0eShSZXNvdXJjZUxvYWRQcmlv
cml0eTo6SGlnaGVzdCkpOwotICAgIHdrU2V0SFRUUFJlcXVlc3RNaW5pbXVtRmFzdExhbmVQcmlv
cml0eSh0b1BsYXRmb3JtUmVxdWVzdFByaW9yaXR5KFJlc291cmNlTG9hZFByaW9yaXR5OjpNZWRp
dW0pKTsKKyAgICBfQ0ZOZXR3b3JrSFRUUENvbm5lY3Rpb25DYWNoZVNldExpbWl0KGtIVFRQTG9h
ZFdpZHRoLCBwcmVmZXJyZWRDb25uZWN0aW9uQ291bnQpOworICAgIF9DRk5ldHdvcmtIVFRQQ29u
bmVjdGlvbkNhY2hlU2V0TGltaXQoa0hUVFBQcmlvcml0eU51bUxldmVscywgdG9QbGF0Zm9ybVJl
cXVlc3RQcmlvcml0eShSZXNvdXJjZUxvYWRQcmlvcml0eTo6SGlnaGVzdCkpOworICAgIF9DRk5l
dHdvcmtIVFRQQ29ubmVjdGlvbkNhY2hlU2V0TGltaXQoa0hUVFBNaW5pbXVtRmFzdExhbmVQcmlv
cml0eSwgdG9QbGF0Zm9ybVJlcXVlc3RQcmlvcml0eShSZXNvdXJjZUxvYWRQcmlvcml0eTo6TWVk
aXVtKSk7CiAgICAgX0NGTmV0d29ya0hUVFBDb25uZWN0aW9uQ2FjaGVTZXRMaW1pdChrSFRUUE51
bUZhc3RMYW5lcywgZmFzdExhbmVDb25uZWN0aW9uQ291bnQpOwogfQogI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlUmVxdWVzdENG
TmV0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlUmVxdWVz
dENGTmV0LmgKaW5kZXggMDM1MjljOTJiOWI0NzhiMzAzNDU5NzhiZTkxODc0MjEyZmU3MWQyNC4u
Y2JjNDllMTdlNzA5MzQ1MjI1YWM5OWMzOGM0ZDdiZTk3ZTc5ZGIxMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZVJlcXVlc3RDRk5ldC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VSZXF1ZXN0Q0ZO
ZXQuaApAQCAtMjYsMTIgKzI2LDkgQEAKICNpZm5kZWYgUmVzb3VyY2VSZXF1ZXN0Q0ZOZXRfaAog
I2RlZmluZSBSZXNvdXJjZVJlcXVlc3RDRk5ldF9oCiAKKyNpbmNsdWRlICJDRk5ldHdvcmtTUEku
aCIKICNpbmNsdWRlICJSZXNvdXJjZUxvYWRQcmlvcml0eS5oIgogCi0jaWYgVVNFKENGTkVUV09S
SykKLXR5cGVkZWYgY29uc3Qgc3RydWN0IF9DRlVSTFJlcXVlc3QqIENGVVJMUmVxdWVzdFJlZjsK
LSNlbmRpZgotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFJlc291cmNlUmVxdWVzdDsK
QEAgLTQxLDcgKzM4LDcgQEAgdm9pZCBnZXRSZXNvdXJjZVJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0
JiwgQ0ZVUkxSZXF1ZXN0UmVmKTsKIENGVVJMUmVxdWVzdFJlZiBjZlVSTFJlcXVlc3QoY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0Jik7CiAjZW5kaWYKIAotaW5saW5lIFJlc291cmNlTG9hZFByaW9yaXR5
IHRvUmVzb3VyY2VMb2FkUHJpb3JpdHkoaW50IHByaW9yaXR5KQoraW5saW5lIFJlc291cmNlTG9h
ZFByaW9yaXR5IHRvUmVzb3VyY2VMb2FkUHJpb3JpdHkoQ0ZVUkxSZXF1ZXN0UHJpb3JpdHkgcHJp
b3JpdHkpCiB7CiAgICAgc3dpdGNoIChwcmlvcml0eSkgewogICAgIGNhc2UgLTE6CkBAIC02MSw3
ICs1OCw3IEBAIGlubGluZSBSZXNvdXJjZUxvYWRQcmlvcml0eSB0b1Jlc291cmNlTG9hZFByaW9y
aXR5KGludCBwcmlvcml0eSkKICAgICB9CiB9CiAKLWlubGluZSBpbnQgdG9QbGF0Zm9ybVJlcXVl
c3RQcmlvcml0eShSZXNvdXJjZUxvYWRQcmlvcml0eSBwcmlvcml0eSkKK2lubGluZSBDRlVSTFJl
cXVlc3RQcmlvcml0eSB0b1BsYXRmb3JtUmVxdWVzdFByaW9yaXR5KFJlc291cmNlTG9hZFByaW9y
aXR5IHByaW9yaXR5KQogewogICAgIHN3aXRjaCAocHJpb3JpdHkpIHsKICAgICBjYXNlIFJlc291
cmNlTG9hZFByaW9yaXR5OjpWZXJ5TG93OgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZVJlc3BvbnNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlUmVzcG9uc2UuaAppbmRleCBhY2MxZDQ1Njk3NWNjMTJm
MzlhMzM4ZGJiMjQzOTQxZTU3YzI2ZDFhLi5jOGU0NjY1YmY5MWQ2NDllYzAwMGViYzA3YzUwZWZk
ZWYzOTk5Y2QwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2Nm
L1Jlc291cmNlUmVzcG9uc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L2NmL1Jlc291cmNlUmVzcG9uc2UuaApAQCAtMzAsNyArMzAsNyBAQAogI2luY2x1ZGUgPHd0Zi9S
ZXRhaW5QdHIuaD4KIAogI2lmIFVTRShDRk5FVFdPUkspCi10eXBlZGVmIHN0cnVjdCBfQ0ZVUkxS
ZXNwb25zZSogQ0ZVUkxSZXNwb25zZVJlZjsKKyNpbmNsdWRlICJDRk5ldHdvcmtTUEkuaCIKICNl
bmRpZgogCiBPQkpDX0NMQVNTIE5TVVJMUmVzcG9uc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlUmVzcG9uc2VDRk5ldC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlUmVzcG9uc2VDRk5ldC5jcHAK
aW5kZXggNGJhZTc0ZTgzODE2YzE5NGVkYzE1NGQ4NGMyZGU4ZjZkZDE2ZmM5NS4uYjAxMWE1N2Zm
NGU0Y2MyZTA3ODM2Njg0YThjNzM4NDQwMmIzOGNlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZVJlc3BvbnNlQ0ZOZXQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VSZXNwb25zZUNGTmV0LmNw
cApAQCAtMTEzLDEzICsxMTMsMTIgQEAgdm9pZCBSZXNvdXJjZVJlc3BvbnNlOjpwbGF0Zm9ybUxh
enlJbml0KEluaXRMZXZlbCBpbml0TGV2ZWwpCiAgICAgbV9pbml0TGV2ZWwgPSBpbml0TGV2ZWw7
CiB9CiAKKyNpZiAhUExBVEZPUk0oQ09DT0EpCiBDZXJ0aWZpY2F0ZUluZm8gUmVzb3VyY2VSZXNw
b25zZTo6cGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8oKSBjb25zdAogewotI2lmIFBMQVRGT1JNKENP
Q09BKQotICAgIHJldHVybiBDZXJ0aWZpY2F0ZUluZm8oYWRvcHRDRih3a0NvcHlOU1VSTFJlc3Bv
bnNlQ2VydGlmaWNhdGVDaGFpbihuc1VSTFJlc3BvbnNlKCkpKSk7Ci0jZW5kaWYKLSAgICByZXR1
cm4gQ2VydGlmaWNhdGVJbmZvKCk7CisgICAgcmV0dXJuIHsgfTsKIH0KKyNlbmRpZgogCiBTdHJp
bmcgUmVzb3VyY2VSZXNwb25zZTo6cGxhdGZvcm1TdWdnZXN0ZWRGaWxlbmFtZSgpIGNvbnN0CiB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1N5bmNocm9u
b3VzUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1N5bmNocm9ub3VzUmVzb3VyY2VIYW5kbGVDRlVSTENv
bm5lY3Rpb25EZWxlZ2F0ZS5jcHAKaW5kZXggNTc4OTZkZTJiNjMzZTE2NjQ1YjFjN2VhZDZmZDkw
MjBmYmRjNWM5OC4uOTI2NDNkOTdjOTc4NDNjN2UyNmM0OWZhZDkwYjJjZTQ3MjBhN2EwOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9TeW5jaHJvbm91c1Jl
c291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvU3luY2hyb25vdXNSZXNvdXJjZUhhbmRsZUNGVVJMQ29u
bmVjdGlvbkRlbGVnYXRlLmNwcApAQCAtNDEsNiArNDEsNyBAQAogI2luY2x1ZGUgPHd0Zi90ZXh0
L1dURlN0cmluZy5oPgogCiAjaWYgUExBVEZPUk0oQ09DT0EpCisjaW5jbHVkZSAiQ0ZOZXR3b3Jr
U1BJLmgiCiAjaW5jbHVkZSAiV2ViQ29yZVN5c3RlbUludGVyZmFjZS5oIgogI2luY2x1ZGUgIldl
YkNvcmVVUkxSZXNwb25zZS5oIgogI2VuZGlmIC8vIFBMQVRGT1JNKENPQ09BKQpAQCAtMTQzLDcg
KzE0NCw3IEBAIHZvaWQgU3luY2hyb25vdXNSZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRl
bGVnYXRlOjpkaWRSZWNlaXZlUmVzcG9uc2UoQ0ZVUkxDCiAKICNpZiBQTEFURk9STShDT0NPQSkK
ICAgICAvLyBBdm9pZCBNSU1FIHR5cGUgc25pZmZpbmcgaWYgdGhlIHJlc3BvbnNlIGNvbWVzIGJh
Y2sgYXMgMzA0IE5vdCBNb2RpZmllZC4KLSAgICBDRkhUVFBNZXNzYWdlUmVmIG1zZyA9IHdrR2V0
Q0ZVUkxSZXNwb25zZUhUVFBSZXNwb25zZShjZlJlc3BvbnNlKTsKKyAgICBhdXRvIG1zZyA9IENG
VVJMUmVzcG9uc2VHZXRIVFRQUmVzcG9uc2UoY2ZSZXNwb25zZSk7CiAgICAgaW50IHN0YXR1c0Nv
ZGUgPSBtc2cgPyBDRkhUVFBNZXNzYWdlR2V0UmVzcG9uc2VTdGF0dXNDb2RlKG1zZykgOiAwOwog
CiAgICAgaWYgKHN0YXR1c0NvZGUgIT0gMzA0KQpAQCAtMTUxLDcgKzE1Miw3IEBAIHZvaWQgU3lu
Y2hyb25vdXNSZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlOjpkaWRSZWNlaXZl
UmVzcG9uc2UoQ0ZVUkxDCiAKICNpZiAhUExBVEZPUk0oSU9TKQogICAgIGlmIChfQ0ZVUkxSZXF1
ZXN0Q29weVByb3RvY29sUHJvcGVydHlGb3JLZXkobV9oYW5kbGUtPmZpcnN0UmVxdWVzdCgpLmNm
VVJMUmVxdWVzdChEb05vdFVwZGF0ZUhUVFBCb2R5KSwgQ0ZTVFIoIkZvcmNlSFRNTE1JTUVUeXBl
IikpKQotICAgICAgICB3a1NldENGVVJMUmVzcG9uc2VNSU1FVHlwZShjZlJlc3BvbnNlLCBDRlNU
UigidGV4dC9odG1sIikpOworICAgICAgICBDRlVSTFJlc3BvbnNlU2V0TUlNRVR5cGUoY2ZSZXNw
b25zZSwgQ0ZTVFIoInRleHQvaHRtbCIpKTsKICNlbmRpZiAvLyAhUExBVEZPUk0oSU9TKQogI2Vs
c2UKICAgICBpZiAoIUNGVVJMUmVzcG9uc2VHZXRNSU1FVHlwZShjZlJlc3BvbnNlKSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY29jb2EvQ3JlZGVudGlhbENv
Y29hLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29hL0NyZWRlbnRpYWxD
b2NvYS5oCmluZGV4IGYyY2Q5NjMyYzIwZTY1NTcwZGFjZTliOWMwOTExMDc3NmQ3NmUzMTcuLmVj
ODIyZTRlYjljZjUwNTExZmRlY2YwZDY5ODU5YzllNTczZjBiMTAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY29jb2EvQ3JlZGVudGlhbENvY29hLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jb2NvYS9DcmVkZW50aWFsQ29jb2EuaApA
QCAtMzEsNyArMzEsNyBAQAogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KIAogI2lmIFVTRShD
Rk5FVFdPUkspCi10eXBlZGVmIGNvbnN0IHN0cnVjdCBfQ0ZVUkxDcmVkZW50aWFsKiBDRlVSTENy
ZWRlbnRpYWxSZWY7CisjaW5jbHVkZSAiQ0ZOZXR3b3JrU1BJLmgiCiAjZW5kaWYKIAogT0JKQ19D
TEFTUyBOU1VSTENyZWRlbnRpYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL2NvY29hL1Jlc291cmNlUmVxdWVzdENvY29hLm1tIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9jb2NvYS9SZXNvdXJjZVJlcXVlc3RDb2NvYS5tbQppbmRleCAzYjFi
MGEyZjg3NDc0N2IzOGEyYzgzODBmYjY1NTk4NmJkZWI5ZWNjLi5mY2Y0OTM3YzM2MGIyMmFmOGUx
YmZjOWE0NTMwYmI5MWMxNzFiYjVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL2NvY29hL1Jlc291cmNlUmVxdWVzdENvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvY29jb2EvUmVzb3VyY2VSZXF1ZXN0Q29jb2EubW0KQEAgLTc5
LDcgKzc5LDcgQEAgdm9pZCBSZXNvdXJjZVJlcXVlc3Q6OmRvVXBkYXRlUmVzb3VyY2VSZXF1ZXN0
KCkKICAgICBtX2FsbG93Q29va2llcyA9IFttX25zUmVxdWVzdC5nZXQoKSBIVFRQU2hvdWxkSGFu
ZGxlQ29va2llc107CiAKICAgICBpZiAocmVzb3VyY2VQcmlvcml0aWVzRW5hYmxlZCgpKQotICAg
ICAgICBtX3ByaW9yaXR5ID0gdG9SZXNvdXJjZUxvYWRQcmlvcml0eSh3a0dldEhUVFBSZXF1ZXN0
UHJpb3JpdHkoW21fbnNSZXF1ZXN0LmdldCgpIF9DRlVSTFJlcXVlc3RdKSk7CisgICAgICAgIG1f
cHJpb3JpdHkgPSB0b1Jlc291cmNlTG9hZFByaW9yaXR5KG1fbnNSZXF1ZXN0ID8gQ0ZVUkxSZXF1
ZXN0R2V0UmVxdWVzdFByaW9yaXR5KFttX25zUmVxdWVzdCBfQ0ZVUkxSZXF1ZXN0XSkgOiAwKTsK
IAogICAgIG1faHR0cEhlYWRlckZpZWxkcy5jbGVhcigpOwogICAgIFtbbV9uc1JlcXVlc3QgYWxs
SFRUUEhlYWRlckZpZWxkc10gZW51bWVyYXRlS2V5c0FuZE9iamVjdHNVc2luZ0Jsb2NrOiBeKE5T
U3RyaW5nICpuYW1lLCBOU1N0cmluZyAqdmFsdWUsIEJPT0wgKikgewpAQCAtMTMzLDEzICsxMzMs
MTMgQEAgdm9pZCBSZXNvdXJjZVJlcXVlc3Q6OmRvVXBkYXRlUGxhdGZvcm1SZXF1ZXN0KCkKICAg
ICAgICAgbnNSZXF1ZXN0ID0gW1tOU011dGFibGVVUkxSZXF1ZXN0IGFsbG9jXSBpbml0V2l0aFVS
TDp1cmwoKV07CiAKICAgICBpZiAoUmVzb3VyY2VSZXF1ZXN0OjpodHRwUGlwZWxpbmluZ0VuYWJs
ZWQoKSkKLSAgICAgICAgd2tIVFRQUmVxdWVzdEVuYWJsZVBpcGVsaW5pbmcoW25zUmVxdWVzdCBf
Q0ZVUkxSZXF1ZXN0XSk7CisgICAgICAgIENGVVJMUmVxdWVzdFNldFNob3VsZFBpcGVsaW5lSFRU
UChbbnNSZXF1ZXN0IF9DRlVSTFJlcXVlc3RdLCB0cnVlLCB0cnVlKTsKIAogICAgIGlmIChSZXNv
dXJjZVJlcXVlc3Q6OnJlc291cmNlUHJpb3JpdGllc0VuYWJsZWQoKSkKLSAgICAgICAgd2tTZXRI
VFRQUmVxdWVzdFByaW9yaXR5KFtuc1JlcXVlc3QgX0NGVVJMUmVxdWVzdF0sIHRvUGxhdGZvcm1S
ZXF1ZXN0UHJpb3JpdHkocHJpb3JpdHkoKSkpOworICAgICAgICBDRlVSTFJlcXVlc3RTZXRSZXF1
ZXN0UHJpb3JpdHkoW25zUmVxdWVzdCBfQ0ZVUkxSZXF1ZXN0XSwgdG9QbGF0Zm9ybVJlcXVlc3RQ
cmlvcml0eShwcmlvcml0eSgpKSk7CiAKICAgICBbbnNSZXF1ZXN0IHNldENhY2hlUG9saWN5OihO
U1VSTFJlcXVlc3RDYWNoZVBvbGljeSljYWNoZVBvbGljeSgpXTsKLSAgICB3a0NGVVJMUmVxdWVz
dEFsbG93QWxsUG9zdENhY2hpbmcoW25zUmVxdWVzdCBfQ0ZVUkxSZXF1ZXN0XSk7CisgICAgX0NG
VVJMUmVxdWVzdFNldFByb3RvY29sUHJvcGVydHkoW25zUmVxdWVzdCBfQ0ZVUkxSZXF1ZXN0XSwg
a0NGVVJMUmVxdWVzdEFsbG93QWxsUE9TVENhY2hpbmcsIGtDRkJvb2xlYW5UcnVlKTsKIAogICAg
IGRvdWJsZSB0aW1lb3V0SW50ZXJ2YWwgPSBSZXNvdXJjZVJlcXVlc3RCYXNlOjp0aW1lb3V0SW50
ZXJ2YWwoKTsKICAgICBpZiAodGltZW91dEludGVydmFsKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9jb2NvYS9SZXNvdXJjZVJlc3BvbnNlQ29jb2EubW0gYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29hL1Jlc291cmNlUmVzcG9uc2VDb2Nv
YS5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4xZDc5Y2RjYzcyNDA4MTE1MWVhODcwZTFiNDc0Zjc4YTBhMTY4MTRi
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jb2Nv
YS9SZXNvdXJjZVJlc3BvbnNlQ29jb2EubW0KQEAgLTAsMCArMSwyMzMgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMDYgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycn
IEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
KyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgor
I2ltcG9ydCAiUmVzb3VyY2VSZXNwb25zZS5oIgorCisjaWYgUExBVEZPUk0oQ09DT0EpCisKKyNp
bXBvcnQgIkNGTmV0d29ya1NQSS5oIgorI2ltcG9ydCAiSFRUUFBhcnNlcnMuaCIKKyNpbXBvcnQg
IldlYkNvcmVVUkxSZXNwb25zZS5oIgorI2ltcG9ydCA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+
CisjaW1wb3J0IDxsaW1pdHM+CisjaW1wb3J0IDx3dGYvU3RkTGliRXh0cmFzLmg+CisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKwordm9pZCBSZXNvdXJjZVJlc3BvbnNlOjppbml0TlNVUkxSZXNwb25z
ZSgpIGNvbnN0Cit7CisgICAgaWYgKCFtX2h0dHBTdGF0dXNDb2RlIHx8ICFtX3VybC5wcm90b2Nv
bElzSW5IVFRQRmFtaWx5KCkpIHsKKyAgICAgICAgLy8gV29yayBhcm91bmQgYSBtaXN0YWtlIGlu
IHRoZSBOU1VSTFJlc3BvbnNlIGNsYXNzIC0gPHJkYXI6Ly9wcm9ibGVtLzY4NzUyMTk+LgorICAg
ICAgICAvLyBUaGUgaW5pdCBmdW5jdGlvbiB0YWtlcyBhbiBOU0ludGVnZXIsIGV2ZW4gdGhvdWdo
IHRoZSBhY2Nlc3NvciByZXR1cm5zIGEgbG9uZyBsb25nLgorICAgICAgICAvLyBGb3IgdmFsdWVz
IHRoYXQgd29uJ3QgZml0IGluIGFuIE5TSW50ZWdlciwgcGFzcyAtMSBpbnN0ZWFkLgorICAgICAg
ICBOU0ludGVnZXIgZXhwZWN0ZWRDb250ZW50TGVuZ3RoOworICAgICAgICBpZiAobV9leHBlY3Rl
ZENvbnRlbnRMZW5ndGggPCAwIHx8IG1fZXhwZWN0ZWRDb250ZW50TGVuZ3RoID4gc3RkOjpudW1l
cmljX2xpbWl0czxOU0ludGVnZXI+OjptYXgoKSkKKyAgICAgICAgICAgIGV4cGVjdGVkQ29udGVu
dExlbmd0aCA9IC0xOworICAgICAgICBlbHNlCisgICAgICAgICAgICBleHBlY3RlZENvbnRlbnRM
ZW5ndGggPSBzdGF0aWNfY2FzdDxOU0ludGVnZXI+KG1fZXhwZWN0ZWRDb250ZW50TGVuZ3RoKTsK
KworICAgICAgICBOU1N0cmluZyogZW5jb2RpbmdOU1N0cmluZyA9IG5zU3RyaW5nTmlsSWZFbXB0
eShtX3RleHRFbmNvZGluZ05hbWUpOworICAgICAgICBtX25zUmVzcG9uc2UgPSBhZG9wdE5TKFtb
TlNVUkxSZXNwb25zZSBhbGxvY10gaW5pdFdpdGhVUkw6bV91cmwgTUlNRVR5cGU6bV9taW1lVHlw
ZSBleHBlY3RlZENvbnRlbnRMZW5ndGg6ZXhwZWN0ZWRDb250ZW50TGVuZ3RoIHRleHRFbmNvZGlu
Z05hbWU6ZW5jb2RpbmdOU1N0cmluZ10pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAg
Ly8gRklYTUU6IFdlIGxvc2UgdGhlIHN0YXR1cyB0ZXh0IGFuZCB0aGUgSFRUUCB2ZXJzaW9uIGhl
cmUuCisgICAgTlNNdXRhYmxlRGljdGlvbmFyeSogaGVhZGVyRGljdGlvbmFyeSA9IFtOU011dGFi
bGVEaWN0aW9uYXJ5IGRpY3Rpb25hcnldOworICAgIGZvciAoYXV0byYgaGVhZGVyIDogbV9odHRw
SGVhZGVyRmllbGRzKQorICAgICAgICBbaGVhZGVyRGljdGlvbmFyeSBzZXRPYmplY3Q6KE5TU3Ry
aW5nICopaGVhZGVyLnZhbHVlIGZvcktleTooTlNTdHJpbmcgKiloZWFkZXIua2V5XTsKKworICAg
IG1fbnNSZXNwb25zZSA9IGFkb3B0TlMoW1tOU0hUVFBVUkxSZXNwb25zZSBhbGxvY10gaW5pdFdp
dGhVUkw6bV91cmwgc3RhdHVzQ29kZTptX2h0dHBTdGF0dXNDb2RlIEhUVFBWZXJzaW9uOihOU1N0
cmluZyopa0NGSFRUUFZlcnNpb24xXzEgaGVhZGVyRmllbGRzOmhlYWRlckRpY3Rpb25hcnldKTsK
KworICAgIC8vIE1pbWUgdHlwZSBzbmlmZmluZyBkb2Vzbid0IHdvcmsgd2l0aCBhIHN5bnRoZXNp
emVkIHJlc3BvbnNlLgorICAgIFttX25zUmVzcG9uc2UuZ2V0KCkgX3NldE1JTUVUeXBlOihOU1N0
cmluZyAqKW1fbWltZVR5cGVdOworfQorCitDZXJ0aWZpY2F0ZUluZm8gUmVzb3VyY2VSZXNwb25z
ZTo6cGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8oKSBjb25zdAoreworICAgIEFTU0VSVChtX25zUmVz
cG9uc2UpOworICAgIGF1dG8gY2ZSZXNwb25zZSA9IFttX25zUmVzcG9uc2UgX0NGVVJMUmVzcG9u
c2VdOworICAgIGlmICghY2ZSZXNwb25zZSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKworICAgIENG
RGljdGlvbmFyeVJlZiBjb250ZXh0ID0gX0NGVVJMUmVzcG9uc2VHZXRTU0xDZXJ0aWZpY2F0ZUNv
bnRleHQoY2ZSZXNwb25zZSk7CisgICAgaWYgKCFjb250ZXh0KQorICAgICAgICByZXR1cm4geyB9
OworCisgICAgYXV0byB0cnVzdFZhbHVlID0gQ0ZEaWN0aW9uYXJ5R2V0VmFsdWUoY29udGV4dCwg
a0NGU3RyZWFtUHJvcGVydHlTU0xQZWVyVHJ1c3QpOworICAgIGlmICghdHJ1c3RWYWx1ZSkKKyAg
ICAgICAgcmV0dXJuIHsgfTsKKyAgICBBU1NFUlQoQ0ZHZXRUeXBlSUQodHJ1c3RWYWx1ZSkgPT0g
U2VjVHJ1c3RHZXRUeXBlSUQoKSk7CisgICAgYXV0byB0cnVzdCA9IChTZWNUcnVzdFJlZil0cnVz
dFZhbHVlOworCisgICAgU2VjVHJ1c3RSZXN1bHRUeXBlIHRydXN0UmVzdWx0VHlwZTsKKyAgICBP
U1N0YXR1cyByZXN1bHQgPSBTZWNUcnVzdEdldFRydXN0UmVzdWx0KHRydXN0LCAmdHJ1c3RSZXN1
bHRUeXBlKTsKKyAgICBpZiAocmVzdWx0ICE9IGVyclNlY1N1Y2Nlc3MpCisgICAgICAgIHJldHVy
biB7IH07CisKKyAgICBpZiAodHJ1c3RSZXN1bHRUeXBlID09IGtTZWNUcnVzdFJlc3VsdEludmFs
aWQpIHsKKyAgICAgICAgcmVzdWx0ID0gU2VjVHJ1c3RFdmFsdWF0ZSh0cnVzdCwgJnRydXN0UmVz
dWx0VHlwZSk7CisgICAgICAgIGlmIChyZXN1bHQgIT0gZXJyU2VjU3VjY2VzcykKKyAgICAgICAg
ICAgIHJldHVybiB7IH07CisgICAgfQorCisgICAgQ0ZJbmRleCBjb3VudCA9IFNlY1RydXN0R2V0
Q2VydGlmaWNhdGVDb3VudCh0cnVzdCk7CisgICAgYXV0byBjZXJ0aWZpY2F0ZUNoYWluID0gQ0ZB
cnJheUNyZWF0ZU11dGFibGUoMCwgY291bnQsICZrQ0ZUeXBlQXJyYXlDYWxsQmFja3MpOworICAg
IGZvciAoQ0ZJbmRleCBpID0gMDsgaSA8IGNvdW50OyBpKyspCisgICAgICAgIENGQXJyYXlBcHBl
bmRWYWx1ZShjZXJ0aWZpY2F0ZUNoYWluLCBTZWNUcnVzdEdldENlcnRpZmljYXRlQXRJbmRleCh0
cnVzdCwgaSkpOworCisgICAgcmV0dXJuIENlcnRpZmljYXRlSW5mbyhhZG9wdENGKGNlcnRpZmlj
YXRlQ2hhaW4pKTsKK30KKworI2lmIFVTRShDRk5FVFdPUkspCisKK05TVVJMUmVzcG9uc2UgKlJl
c291cmNlUmVzcG9uc2U6Om5zVVJMUmVzcG9uc2UoKSBjb25zdAoreworICAgIGlmICghbV9uc1Jl
c3BvbnNlICYmICFtX2NmUmVzcG9uc2UgJiYgIW1faXNOdWxsKSB7CisgICAgICAgIGluaXROU1VS
TFJlc3BvbnNlKCk7CisgICAgICAgIG1fY2ZSZXNwb25zZSA9IFttX25zUmVzcG9uc2UuZ2V0KCkg
X0NGVVJMUmVzcG9uc2VdOworICAgICAgICByZXR1cm4gbV9uc1Jlc3BvbnNlLmdldCgpOworICAg
IH0KKworICAgIGlmICghbV9jZlJlc3BvbnNlKQorICAgICAgICByZXR1cm4gbmlsOworCisgICAg
aWYgKCFtX25zUmVzcG9uc2UpCisgICAgICAgIG1fbnNSZXNwb25zZSA9IFtOU1VSTFJlc3BvbnNl
IF9yZXNwb25zZVdpdGhDRlVSTFJlc3BvbnNlOm1fY2ZSZXNwb25zZS5nZXQoKV07CisKKyAgICBy
ZXR1cm4gbV9uc1Jlc3BvbnNlLmdldCgpOworfQorCitSZXNvdXJjZVJlc3BvbnNlOjpSZXNvdXJj
ZVJlc3BvbnNlKE5TVVJMUmVzcG9uc2UqIG5zUmVzcG9uc2UpCisgICAgOiBtX2luaXRMZXZlbChV
bmluaXRpYWxpemVkKQorICAgICwgbV9wbGF0Zm9ybVJlc3BvbnNlSXNVcFRvRGF0ZSh0cnVlKQor
ICAgICwgbV9jZlJlc3BvbnNlKFtuc1Jlc3BvbnNlIF9DRlVSTFJlc3BvbnNlXSkKKyAgICAsIG1f
bnNSZXNwb25zZShuc1Jlc3BvbnNlKQoreworICAgIG1faXNOdWxsID0gIW5zUmVzcG9uc2U7Cit9
CisKKyNlbHNlCisKK3N0YXRpYyBOU1N0cmluZyogY29uc3QgY29tbW9uSGVhZGVyRmllbGRzW10g
PSB7CisgICAgQCJBZ2UiLCBAIkNhY2hlLUNvbnRyb2wiLCBAIkNvbnRlbnQtVHlwZSIsIEAiRGF0
ZSIsIEAiRXRhZyIsIEAiRXhwaXJlcyIsIEAiTGFzdC1Nb2RpZmllZCIsIEAiUHJhZ21hIgorfTsK
KworTlNVUkxSZXNwb25zZSAqUmVzb3VyY2VSZXNwb25zZTo6bnNVUkxSZXNwb25zZSgpIGNvbnN0
Cit7CisgICAgaWYgKCFtX25zUmVzcG9uc2UgJiYgIW1faXNOdWxsKQorICAgICAgICBpbml0TlNV
UkxSZXNwb25zZSgpOworICAgIHJldHVybiBtX25zUmVzcG9uc2UuZ2V0KCk7Cit9CisgICAgCitz
dGF0aWMgTlNTdHJpbmcgKmNvcHlOU1VSTFJlc3BvbnNlU3RhdHVzTGluZShOU1VSTFJlc3BvbnNl
ICpyZXNwb25zZSkKK3sKKyAgICBDRlVSTFJlc3BvbnNlUmVmIGNmUmVzcG9uc2UgPSBbcmVzcG9u
c2UgX0NGVVJMUmVzcG9uc2VdOworICAgIGlmICghY2ZSZXNwb25zZSkKKyAgICAgICAgcmV0dXJu
IG5pbDsKKworICAgIENGSFRUUE1lc3NhZ2VSZWYgY2ZIVFRQTWVzc2FnZSA9IENGVVJMUmVzcG9u
c2VHZXRIVFRQUmVzcG9uc2UoY2ZSZXNwb25zZSk7CisgICAgaWYgKCFjZkhUVFBNZXNzYWdlKQor
ICAgICAgICByZXR1cm4gbmlsOworCisgICAgcmV0dXJuIChOU1N0cmluZyAqKUNGSFRUUE1lc3Nh
Z2VDb3B5UmVzcG9uc2VTdGF0dXNMaW5lKGNmSFRUUE1lc3NhZ2UpOworfQorCit2b2lkIFJlc291
cmNlUmVzcG9uc2U6OnBsYXRmb3JtTGF6eUluaXQoSW5pdExldmVsIGluaXRMZXZlbCkKK3sKKyAg
ICBpZiAobV9pbml0TGV2ZWwgPj0gaW5pdExldmVsKQorICAgICAgICByZXR1cm47CisKKyAgICBp
ZiAobV9pc051bGwgfHwgIW1fbnNSZXNwb25zZSkKKyAgICAgICAgcmV0dXJuOworICAgIAorICAg
IGlmIChtX2luaXRMZXZlbCA8IENvbW1vbkZpZWxkc09ubHkgJiYgaW5pdExldmVsID49IENvbW1v
bkZpZWxkc09ubHkpIHsKKyAgICAgICAgTlNBdXRvcmVsZWFzZVBvb2wqIHBvb2wgPSBbW05TQXV0
b3JlbGVhc2VQb29sIGFsbG9jXSBpbml0XTsKKworICAgICAgICBtX2h0dHBIZWFkZXJGaWVsZHMu
Y2xlYXIoKTsKKyAgICAgICAgbV91cmwgPSBbbV9uc1Jlc3BvbnNlLmdldCgpIFVSTF07CisgICAg
ICAgIG1fbWltZVR5cGUgPSBbbV9uc1Jlc3BvbnNlLmdldCgpIE1JTUVUeXBlXTsKKyAgICAgICAg
bV9leHBlY3RlZENvbnRlbnRMZW5ndGggPSBbbV9uc1Jlc3BvbnNlLmdldCgpIGV4cGVjdGVkQ29u
dGVudExlbmd0aF07CisgICAgICAgIG1fdGV4dEVuY29kaW5nTmFtZSA9IFttX25zUmVzcG9uc2Uu
Z2V0KCkgdGV4dEVuY29kaW5nTmFtZV07CisKKyAgICAgICAgLy8gV29ya2Fyb3VuZCBmb3IgPHJk
YXI6Ly9wcm9ibGVtLzg3NTcwODg+LCBjYW4gYmUgcmVtb3ZlZCBvbmNlIHRoYXQgaXMgZml4ZWQu
CisgICAgICAgIHVuc2lnbmVkIHRleHRFbmNvZGluZ05hbWVMZW5ndGggPSBtX3RleHRFbmNvZGlu
Z05hbWUubGVuZ3RoKCk7CisgICAgICAgIGlmICh0ZXh0RW5jb2RpbmdOYW1lTGVuZ3RoID49IDIg
JiYgbV90ZXh0RW5jb2RpbmdOYW1lWzBVXSA9PSAnIicgJiYgbV90ZXh0RW5jb2RpbmdOYW1lW3Rl
eHRFbmNvZGluZ05hbWVMZW5ndGggLSAxXSA9PSAnIicpCisgICAgICAgICAgICBtX3RleHRFbmNv
ZGluZ05hbWUgPSBtX3RleHRFbmNvZGluZ05hbWUuc3RyaW5nKCkuc3Vic3RyaW5nKDEsIHRleHRF
bmNvZGluZ05hbWVMZW5ndGggLSAyKTsKKworICAgICAgICBpZiAoW21fbnNSZXNwb25zZS5nZXQo
KSBpc0tpbmRPZkNsYXNzOltOU0hUVFBVUkxSZXNwb25zZSBjbGFzc11dKSB7CisgICAgICAgICAg
ICBOU0hUVFBVUkxSZXNwb25zZSAqaHR0cFJlc3BvbnNlID0gKE5TSFRUUFVSTFJlc3BvbnNlICop
bV9uc1Jlc3BvbnNlLmdldCgpOworCisgICAgICAgICAgICBtX2h0dHBTdGF0dXNDb2RlID0gW2h0
dHBSZXNwb25zZSBzdGF0dXNDb2RlXTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKGlu
aXRMZXZlbCA8IEFsbEZpZWxkcykgeworICAgICAgICAgICAgICAgIE5TRGljdGlvbmFyeSAqaGVh
ZGVycyA9IFtodHRwUmVzcG9uc2UgYWxsSGVhZGVyRmllbGRzXTsKKyAgICAgICAgICAgICAgICBm
b3IgKE5TU3RyaW5nICpuYW1lIDogY29tbW9uSGVhZGVyRmllbGRzKSB7CisgICAgICAgICAgICAg
ICAgICAgIGlmIChOU1N0cmluZyogaGVhZGVyVmFsdWUgPSBbaGVhZGVycyBvYmplY3RGb3JLZXk6
bmFtZV0pCisgICAgICAgICAgICAgICAgICAgICAgICBtX2h0dHBIZWFkZXJGaWVsZHMuc2V0KG5h
bWUsIGhlYWRlclZhbHVlKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAg
ICAgIH0gZWxzZQorICAgICAgICAgICAgbV9odHRwU3RhdHVzQ29kZSA9IDA7CisgICAgICAgIAor
ICAgICAgICBbcG9vbCBkcmFpbl07CisgICAgfQorCisgICAgaWYgKG1faW5pdExldmVsIDwgQWxs
RmllbGRzICYmIGluaXRMZXZlbCA9PSBBbGxGaWVsZHMpIHsKKyAgICAgICAgaWYgKFttX25zUmVz
cG9uc2UuZ2V0KCkgaXNLaW5kT2ZDbGFzczpbTlNIVFRQVVJMUmVzcG9uc2UgY2xhc3NdXSkgewor
ICAgICAgICAgICAgTlNBdXRvcmVsZWFzZVBvb2wqIHBvb2wgPSBbW05TQXV0b3JlbGVhc2VQb29s
IGFsbG9jXSBpbml0XTsKKworICAgICAgICAgICAgTlNIVFRQVVJMUmVzcG9uc2UgKmh0dHBSZXNw
b25zZSA9IChOU0hUVFBVUkxSZXNwb25zZSAqKW1fbnNSZXNwb25zZS5nZXQoKTsKKyAgICAgICAg
ICAgIGlmIChSZXRhaW5QdHI8TlNTdHJpbmc+IGh0dHBTdGF0dXNMaW5lID0gYWRvcHROUyhjb3B5
TlNVUkxSZXNwb25zZVN0YXR1c0xpbmUoaHR0cFJlc3BvbnNlKSkpCisgICAgICAgICAgICAgICAg
bV9odHRwU3RhdHVzVGV4dCA9IGV4dHJhY3RSZWFzb25QaHJhc2VGcm9tSFRUUFN0YXR1c0xpbmUo
aHR0cFN0YXR1c0xpbmUuZ2V0KCkpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAg
IG1faHR0cFN0YXR1c1RleHQgPSBBdG9taWNTdHJpbmcoIk9LIiwgQXRvbWljU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCk7CisKKyAgICAgICAgICAgIE5TRGljdGlvbmFyeSAqaGVhZGVycyA9
IFtodHRwUmVzcG9uc2UgYWxsSGVhZGVyRmllbGRzXTsKKyAgICAgICAgICAgIGZvciAoTlNTdHJp
bmcgKm5hbWUgaW4gaGVhZGVycykKKyAgICAgICAgICAgICAgICBtX2h0dHBIZWFkZXJGaWVsZHMu
c2V0KG5hbWUsIFtoZWFkZXJzIG9iamVjdEZvcktleTpuYW1lXSk7CisgICAgICAgICAgICAKKyAg
ICAgICAgICAgIFtwb29sIGRyYWluXTsKKyAgICAgICAgfQorICAgIH0KKworICAgIG1faW5pdExl
dmVsID0gaW5pdExldmVsOworfQorCitTdHJpbmcgUmVzb3VyY2VSZXNwb25zZTo6cGxhdGZvcm1T
dWdnZXN0ZWRGaWxlbmFtZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIFtuc1VSTFJlc3BvbnNlKCkg
c3VnZ2VzdGVkRmlsZW5hbWVdOworfQorCitib29sIFJlc291cmNlUmVzcG9uc2U6OnBsYXRmb3Jt
Q29tcGFyZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiBhLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNl
JiBiKQoreworICAgIHJldHVybiBhLm5zVVJMUmVzcG9uc2UoKSA9PSBiLm5zVVJMUmVzcG9uc2Uo
KTsKK30KKworI2VuZGlmIC8vIFVTRShDRk5FVFdPUkspCisKK30gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKKworI2VuZGlmIC8vIFBMQVRGT1JNKENPQ09BKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9pb3MvUXVpY2tMb29rLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL2lvcy9RdWlja0xvb2suaAppbmRleCAwZDdlODI1ZWYyYjExODg2YjM4ZGJi
M2NiOTNlMDAwYjhiZDJlZWU1Li40NDgyNGRhMDI1OGRjYzE3NGJkZTliZTc1NzZhNWZjZjIxNmMw
NTk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2lvcy9RdWlj
a0xvb2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2lvcy9RdWlja0xv
b2suaApAQCAtMzMsNiArMzMsMTAgQEAKICNpbXBvcnQgPG9iamMvb2JqYy1ydW50aW1lLmg+CiAj
aW1wb3J0IDx3dGYvUmVmUHRyLmg+CiAKKyNpZiBVU0UoQ0ZORVRXT1JLKQorI2luY2x1ZGUgIkNG
TmV0d29ya1NQSS5oIgorI2VuZGlmCisKIE9CSkNfQ0xBU1MgTlNEYXRhOwogT0JKQ19DTEFTUyBO
U0RpY3Rpb25hcnk7CiBPQkpDX0NMQVNTIE5TRmlsZUhhbmRsZTsKQEAgLTQ0LDExICs0OCw2IEBA
IE9CSkNfQ0xBU1MgTlNVUkxSZXF1ZXN0OwogT0JKQ19DTEFTUyBOU1VSTFJlc3BvbnNlOwogT0JK
Q19DTEFTUyBRTFByZXZpZXdDb252ZXJ0ZXI7CiAKLSNpZiBVU0UoQ0ZORVRXT1JLKQotdHlwZWRl
ZiBzdHJ1Y3QgX0NGVVJMUmVzcG9uc2UqIENGVVJMUmVzcG9uc2VSZWY7Ci10eXBlZGVmIHN0cnVj
dCBfQ0ZVUkxDb25uZWN0aW9uKiBDRlVSTENvbm5lY3Rpb25SZWY7Ci0jZW5kaWYKLQogbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBjbGFzcyBRdWlja0xvb2tIYW5kbGVDbGllbnQ7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2lvcy9RdWlja0xvb2subW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2lvcy9RdWlja0xvb2subW0KaW5kZXggMTdlZDg2
NDZhNTk0NGEwZjAxZWQ1Njg3MDk3ZDk3Y2FjNzIwODRmNC4uOTZmNTBkZjA3NDAxODQ2NDBhOGYz
ZWE2MDQyNDU5MmY2YTVhOTZhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9pb3MvUXVpY2tMb29rLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvaW9zL1F1aWNrTG9vay5tbQpAQCAtNDYsMTUgKzQ2LDYgQEAKICNpbXBvcnQgPHd0Zi9W
ZWN0b3IuaD4KICNpbXBvcnQgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCi0jaWYgVVNFKENGTkVU
V09SSykKLSNpbXBvcnQgPENGTmV0d29yay9DRlVSTENvbm5lY3Rpb24uaD4KLQotQGludGVyZmFj
ZSBOU1VSTFJlc3BvbnNlIChRdWlja0xvb2tEZXRhaWxzKQotKyhOU1VSTFJlc3BvbnNlICopX3Jl
c3BvbnNlV2l0aENGVVJMUmVzcG9uc2U6KENGVVJMUmVzcG9uc2VSZWYpcmVzcG9uc2U7Ci0tKENG
VVJMUmVzcG9uc2VSZWYpX0NGVVJMUmVzcG9uc2U7Ci1AZW5kCi0jZW5kaWYKLQogdXNpbmcgbmFt
ZXNwYWNlIFdlYkNvcmU7CiAKIE5TU2V0ICpXZWJDb3JlOjpRTFByZXZpZXdHZXRTdXBwb3J0ZWRN
SU1FVHlwZXNTZXQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9pb3MvV2ViQ29yZVVSTFJlc3BvbnNlSU9TLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9pb3MvV2ViQ29yZVVSTFJlc3BvbnNlSU9TLm1tCmluZGV4IGE2MmQxYjcyOWUxMTg0
ZWVkMDA0MmMzOTA1NDJkYjczZjk1OThiMWQuLmQwNjhmOTE3ZTJkZGM3N2UxMjRiOWEwMDAwNGI0
YmNlNjI1NzVmMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
aW9zL1dlYkNvcmVVUkxSZXNwb25zZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL2lvcy9XZWJDb3JlVVJMUmVzcG9uc2VJT1MubW0KQEAgLTQ4LDcgKzQ4LDcgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogCiB2b2lkIGFkanVzdE1JTUVUeXBlSWZOZWNlc3NhcnkoQ0ZV
UkxSZXNwb25zZVJlZiBjZlJlc3BvbnNlKQogewotICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4g
bWltZVR5cGUgPSB3a0dldENGVVJMUmVzcG9uc2VNSU1FVHlwZShjZlJlc3BvbnNlKTsKKyAgICBS
ZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IG1pbWVUeXBlID0gQ0ZVUkxSZXNwb25zZUdldE1JTUVUeXBl
KGNmUmVzcG9uc2UpOwogICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gdXBkYXRlZE1JTUVUeXBl
ID0gbWltZVR5cGU7CiAgICAgaWYgKCF1cGRhdGVkTUlNRVR5cGUpCiAgICAgICAgIHVwZGF0ZWRN
SU1FVHlwZSA9IGRlZmF1bHRNSU1FVHlwZSgpLmNyZWF0ZUNGU3RyaW5nKCk7CkBAIC01NywxMiAr
NTcsMTEgQEAgdm9pZCBhZGp1c3RNSU1FVHlwZUlmTmVjZXNzYXJ5KENGVVJMUmVzcG9uc2VSZWYg
Y2ZSZXNwb25zZSkKICAgICAvLyBXZSBtdXN0IGVuc3VyZSB0aGF0IHRoZSBNSU1FIHR5cGUgaXMg
Y29ycmVjdCwgc28gdGhhdCBRdWlja0xvb2sncyB3ZWIgcGx1Z2luIGlzIGNhbGxlZCB3aGVuIG5l
ZWRlZC4KICAgICAvLyBXZSBmaWx0ZXIgdGhlIGJhc2ljIE1JTUUgdHlwZXMgc28gdGhhdCB3ZSBk
b24ndCBkbyB1bm5lY2Vzc2FyeSB3b3JrIGluIHN0YW5kYXJkIGJyb3dzaW5nIHNpdHVhdGlvbnMu
CiAgICAgaWYgKHNob3VsZFVzZVF1aWNrTG9va0Zvck1JTUVUeXBlKChOU1N0cmluZyAqKXVwZGF0
ZWRNSU1FVHlwZS5nZXQoKSkpIHsKLSAgICAgICAgUmV0YWluUHRyPENGU3RyaW5nUmVmPiBzdWdn
ZXN0ZWRGaWxlbmFtZSA9IGFkb3B0Q0Yod2tDb3B5Q0ZVUkxSZXNwb25zZVN1Z2dlc3RlZEZpbGVu
YW1lKGNmUmVzcG9uc2UpKTsKKyAgICAgICAgUmV0YWluUHRyPENGU3RyaW5nUmVmPiBzdWdnZXN0
ZWRGaWxlbmFtZSA9IGFkb3B0Q0YoQ0ZVUkxSZXNwb25zZUNvcHlTdWdnZXN0ZWRGaWxlbmFtZShj
ZlJlc3BvbnNlKSk7CiAgICAgICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gcXVpY2tMb29rTUlN
RVR5cGUgPSBhZG9wdENGKChDRlN0cmluZ1JlZilRTFR5cGVDb3B5QmVzdE1pbWVUeXBlRm9yRmls
ZU5hbWVBbmRNaW1lVHlwZSgoTlNTdHJpbmcgKilzdWdnZXN0ZWRGaWxlbmFtZS5nZXQoKSwgKE5T
U3RyaW5nICopbWltZVR5cGUuZ2V0KCkpKTsKICAgICAgICAgaWYgKCFxdWlja0xvb2tNSU1FVHlw
ZSkgewotICAgICAgICAgICAgQ0ZVUkxSZWYgdXJsID0gd2tHZXRDRlVSTFJlc3BvbnNlVVJMKGNm
UmVzcG9uc2UpOwotICAgICAgICAgICAgTlNVUkwgKm5zVVJMID0gKE5TVVJMICopdXJsOwotICAg
ICAgICAgICAgaWYgKFtuc1VSTCBpc0ZpbGVVUkxdKSB7CisgICAgICAgICAgICBhdXRvIHVybCA9
IENGVVJMUmVzcG9uc2VHZXRVUkwoY2ZSZXNwb25zZSk7CisgICAgICAgICAgICBpZiAoWyhOU1VS
TCAqKXVybCBpc0ZpbGVVUkxdKSB7CiAgICAgICAgICAgICAgICAgUmV0YWluUHRyPENGU3RyaW5n
UmVmPiBleHRlbnNpb24gPSBhZG9wdENGKENGVVJMQ29weVBhdGhFeHRlbnNpb24odXJsKSk7CiAg
ICAgICAgICAgICAgICAgaWYgKGV4dGVuc2lvbikgewogICAgICAgICAgICAgICAgICAgICBSZXRh
aW5QdHI8Q0ZTdHJpbmdSZWY+IHV0aSA9IGFkb3B0Q0YoVVRUeXBlQ3JlYXRlUHJlZmVycmVkSWRl
bnRpZmllckZvclRhZyhrVVRUYWdDbGFzc0ZpbGVuYW1lRXh0ZW5zaW9uLCBleHRlbnNpb24uZ2V0
KCksIG51bGxwdHIpKTsKQEAgLTc2LDcgKzc1LDcgQEAgdm9pZCBhZGp1c3RNSU1FVHlwZUlmTmVj
ZXNzYXJ5KENGVVJMUmVzcG9uc2VSZWYgY2ZSZXNwb25zZSkKICAgICB9CiAjZW5kaWYgLy8gVVNF
KFFVSUNLX0xPT0spCiAgICAgaWYgKCFtaW1lVHlwZSB8fCBDRlN0cmluZ0NvbXBhcmUobWltZVR5
cGUuZ2V0KCksIHVwZGF0ZWRNSU1FVHlwZS5nZXQoKSwga0NGQ29tcGFyZUNhc2VJbnNlbnNpdGl2
ZSkgIT0ga0NGQ29tcGFyZUVxdWFsVG8pCi0gICAgICAgIHdrU2V0Q0ZVUkxSZXNwb25zZU1JTUVU
eXBlKGNmUmVzcG9uc2UsIHVwZGF0ZWRNSU1FVHlwZS5nZXQoKSk7CisgICAgICAgIENGVVJMUmVz
cG9uc2VTZXRNSU1FVHlwZShjZlJlc3BvbnNlLCB1cGRhdGVkTUlNRVR5cGUuZ2V0KCkpOwogfQog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1tCmluZGV4IGNkYmUwMjU4ZDQw
MTIxZjMxNDBiNGY0Nzk0MGNmYjkzZmU3NzE5NjQuLjdjOTdiMmFhZTBmZDI4ODFlY2Y4YmM1YTNl
Nzk5ZDRkNWEwOWJlMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1tCkBAIC0xNjgsNyArMTY4LDcgQEAgdm9p
ZCBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlTlNVUkxDb25uZWN0aW9uKGlkIGRlbGVnYXRlLCBib29s
IHNob3VsZFVzZUNyZWRlbnRpYWwKICAgICBOU1VSTFJlcXVlc3QgKm5zUmVxdWVzdCA9IGZpcnN0
UmVxdWVzdCgpLm5zVVJMUmVxdWVzdChVcGRhdGVIVFRQQm9keSk7CiAgICAgaWYgKCFzaG91bGRD
b250ZW50U25pZmYpIHsKICAgICAgICAgTlNNdXRhYmxlVVJMUmVxdWVzdCAqbXV0YWJsZVJlcXVl
c3QgPSBbW25zUmVxdWVzdCBtdXRhYmxlQ29weV0gYXV0b3JlbGVhc2VdOwotICAgICAgICB3a1Nl
dE5TVVJMUmVxdWVzdFNob3VsZENvbnRlbnRTbmlmZihtdXRhYmxlUmVxdWVzdCwgTk8pOworICAg
ICAgICBbbXV0YWJsZVJlcXVlc3QgX3NldFByb3BlcnR5OkAoTk8pIGZvcktleTooTlNTdHJpbmcg
Kilfa0NGVVJMQ29ubmVjdGlvblByb3BlcnR5U2hvdWxkU25pZmZdOwogICAgICAgICBuc1JlcXVl
c3QgPSBtdXRhYmxlUmVxdWVzdDsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlUmVzcG9uc2VNYWMubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZVJlc3BvbnNlTWFjLm1tCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2ZmEwMGUyNDM1ZTgzZTc5Zjk3ZDQzMDg2MmRiMGI0MWQz
NjY1MzdiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlUmVzcG9uc2VNYWMubW0K
KysrIC9kZXYvbnVsbApAQCAtMSwxOTUgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAw
NiBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQot
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2ltcG9ydCAiY29uZmlnLmgiCi0jaW1wb3J0ICJSZXNv
dXJjZVJlc3BvbnNlLmgiCi0KLSNpbXBvcnQgIkhUVFBQYXJzZXJzLmgiCi0jaW1wb3J0ICJXZWJD
b3JlVVJMUmVzcG9uc2UuaCIKLSNpbXBvcnQgIldlYkNvcmVTeXN0ZW1JbnRlcmZhY2UuaCIKLSNp
bXBvcnQgPEZvdW5kYXRpb24vRm91bmRhdGlvbi5oPgotI2ltcG9ydCA8bGltaXRzPgotI2ltcG9y
dCA8d3RmL1N0ZExpYkV4dHJhcy5oPgotCi1AaW50ZXJmYWNlIE5TVVJMUmVzcG9uc2UgKFdlYk5T
VVJMUmVzcG9uc2VEZXRhaWxzKQotLSAoTlNUaW1lSW50ZXJ2YWwpX2NhbGN1bGF0ZWRFeHBpcmF0
aW9uOwotLSAoaWQpX2luaXRXaXRoQ0ZVUkxSZXNwb25zZTooQ0ZVUkxSZXNwb25zZVJlZilyZXNw
b25zZTsKLS0gKENGVVJMUmVzcG9uc2VSZWYpIF9DRlVSTFJlc3BvbnNlOwotKyAoaWQpX3Jlc3Bv
bnNlV2l0aENGVVJMUmVzcG9uc2U6KENGVVJMUmVzcG9uc2VSZWYpcmVzcG9uc2U7Ci1AZW5kCi0K
LQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi12b2lkIFJlc291cmNlUmVzcG9uc2U6OmluaXROU1VS
TFJlc3BvbnNlKCkgY29uc3QKLXsKLSAgICBpZiAoIW1faHR0cFN0YXR1c0NvZGUgfHwgIW1fdXJs
LnByb3RvY29sSXNJbkhUVFBGYW1pbHkoKSkgewotICAgICAgICAvLyBXb3JrIGFyb3VuZCBhIG1p
c3Rha2UgaW4gdGhlIE5TVVJMUmVzcG9uc2UgY2xhc3MgLSA8cmRhcjovL3Byb2JsZW0vNjg3NTIx
OT4uCi0gICAgICAgIC8vIFRoZSBpbml0IGZ1bmN0aW9uIHRha2VzIGFuIE5TSW50ZWdlciwgZXZl
biB0aG91Z2ggdGhlIGFjY2Vzc29yIHJldHVybnMgYSBsb25nIGxvbmcuCi0gICAgICAgIC8vIEZv
ciB2YWx1ZXMgdGhhdCB3b24ndCBmaXQgaW4gYW4gTlNJbnRlZ2VyLCBwYXNzIC0xIGluc3RlYWQu
Ci0gICAgICAgIE5TSW50ZWdlciBleHBlY3RlZENvbnRlbnRMZW5ndGg7Ci0gICAgICAgIGlmICht
X2V4cGVjdGVkQ29udGVudExlbmd0aCA8IDAgfHwgbV9leHBlY3RlZENvbnRlbnRMZW5ndGggPiBz
dGQ6Om51bWVyaWNfbGltaXRzPE5TSW50ZWdlcj46Om1heCgpKQotICAgICAgICAgICAgZXhwZWN0
ZWRDb250ZW50TGVuZ3RoID0gLTE7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGV4cGVjdGVk
Q29udGVudExlbmd0aCA9IHN0YXRpY19jYXN0PE5TSW50ZWdlcj4obV9leHBlY3RlZENvbnRlbnRM
ZW5ndGgpOwotCi0gICAgICAgIE5TU3RyaW5nKiBlbmNvZGluZ05TU3RyaW5nID0gbnNTdHJpbmdO
aWxJZkVtcHR5KG1fdGV4dEVuY29kaW5nTmFtZSk7Ci0gICAgICAgIG1fbnNSZXNwb25zZSA9IGFk
b3B0TlMoW1tOU1VSTFJlc3BvbnNlIGFsbG9jXSBpbml0V2l0aFVSTDptX3VybCBNSU1FVHlwZTpt
X21pbWVUeXBlIGV4cGVjdGVkQ29udGVudExlbmd0aDpleHBlY3RlZENvbnRlbnRMZW5ndGggdGV4
dEVuY29kaW5nTmFtZTplbmNvZGluZ05TU3RyaW5nXSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9
Ci0KLSAgICAvLyBGSVhNRTogV2UgbG9zZSB0aGUgc3RhdHVzIHRleHQgYW5kIHRoZSBIVFRQIHZl
cnNpb24gaGVyZS4KLSAgICBOU011dGFibGVEaWN0aW9uYXJ5KiBoZWFkZXJEaWN0aW9uYXJ5ID0g
W05TTXV0YWJsZURpY3Rpb25hcnkgZGljdGlvbmFyeV07Ci0gICAgZm9yIChhdXRvJiBoZWFkZXIg
OiBtX2h0dHBIZWFkZXJGaWVsZHMpCi0gICAgICAgIFtoZWFkZXJEaWN0aW9uYXJ5IHNldE9iamVj
dDooTlNTdHJpbmcgKiloZWFkZXIudmFsdWUgZm9yS2V5OihOU1N0cmluZyAqKWhlYWRlci5rZXld
OwotCi0gICAgbV9uc1Jlc3BvbnNlID0gYWRvcHROUyhbW05TSFRUUFVSTFJlc3BvbnNlIGFsbG9j
XSBpbml0V2l0aFVSTDptX3VybCBzdGF0dXNDb2RlOm1faHR0cFN0YXR1c0NvZGUgSFRUUFZlcnNp
b246KE5TU3RyaW5nKilrQ0ZIVFRQVmVyc2lvbjFfMSBoZWFkZXJGaWVsZHM6aGVhZGVyRGljdGlv
bmFyeV0pOwotCi0gICAgLy8gTWltZSB0eXBlIHNuaWZmaW5nIGRvZXNuJ3Qgd29yayB3aXRoIGEg
c3ludGhlc2l6ZWQgcmVzcG9uc2UuCi0gICAgW21fbnNSZXNwb25zZS5nZXQoKSBfc2V0TUlNRVR5
cGU6KE5TU3RyaW5nICopbV9taW1lVHlwZV07Ci19Ci0KLSNpZiBVU0UoQ0ZORVRXT1JLKQotCi1O
U1VSTFJlc3BvbnNlICpSZXNvdXJjZVJlc3BvbnNlOjpuc1VSTFJlc3BvbnNlKCkgY29uc3QKLXsK
LSAgICBpZiAoIW1fbnNSZXNwb25zZSAmJiAhbV9jZlJlc3BvbnNlICYmICFtX2lzTnVsbCkgewot
ICAgICAgICBpbml0TlNVUkxSZXNwb25zZSgpOwotICAgICAgICBtX2NmUmVzcG9uc2UgPSBbbV9u
c1Jlc3BvbnNlLmdldCgpIF9DRlVSTFJlc3BvbnNlXTsKLSAgICAgICAgcmV0dXJuIG1fbnNSZXNw
b25zZS5nZXQoKTsKLSAgICB9Ci0KLSAgICBpZiAoIW1fY2ZSZXNwb25zZSkKLSAgICAgICAgcmV0
dXJuIG5pbDsKLQotICAgIGlmICghbV9uc1Jlc3BvbnNlKQotICAgICAgICBtX25zUmVzcG9uc2Ug
PSBbTlNVUkxSZXNwb25zZSBfcmVzcG9uc2VXaXRoQ0ZVUkxSZXNwb25zZTptX2NmUmVzcG9uc2Uu
Z2V0KCldOwotCi0gICAgcmV0dXJuIG1fbnNSZXNwb25zZS5nZXQoKTsKLX0KLQotUmVzb3VyY2VS
ZXNwb25zZTo6UmVzb3VyY2VSZXNwb25zZShOU1VSTFJlc3BvbnNlKiBuc1Jlc3BvbnNlKQotICAg
IDogbV9pbml0TGV2ZWwoVW5pbml0aWFsaXplZCkKLSAgICAsIG1fcGxhdGZvcm1SZXNwb25zZUlz
VXBUb0RhdGUodHJ1ZSkKLSAgICAsIG1fY2ZSZXNwb25zZShbbnNSZXNwb25zZSBfQ0ZVUkxSZXNw
b25zZV0pCi0gICAgLCBtX25zUmVzcG9uc2UobnNSZXNwb25zZSkKLXsKLSAgICBtX2lzTnVsbCA9
ICFuc1Jlc3BvbnNlOwotfQotCi0jZWxzZQotCi1zdGF0aWMgTlNTdHJpbmcqIGNvbnN0IGNvbW1v
bkhlYWRlckZpZWxkc1tdID0gewotICAgIEAiQWdlIiwgQCJDYWNoZS1Db250cm9sIiwgQCJDb250
ZW50LVR5cGUiLCBAIkRhdGUiLCBAIkV0YWciLCBAIkV4cGlyZXMiLCBAIkxhc3QtTW9kaWZpZWQi
LCBAIlByYWdtYSIKLX07Ci0KLU5TVVJMUmVzcG9uc2UgKlJlc291cmNlUmVzcG9uc2U6Om5zVVJM
UmVzcG9uc2UoKSBjb25zdAotewotICAgIGlmICghbV9uc1Jlc3BvbnNlICYmICFtX2lzTnVsbCkK
LSAgICAgICAgaW5pdE5TVVJMUmVzcG9uc2UoKTsKLSAgICByZXR1cm4gbV9uc1Jlc3BvbnNlLmdl
dCgpOwotfQotCi12b2lkIFJlc291cmNlUmVzcG9uc2U6OnBsYXRmb3JtTGF6eUluaXQoSW5pdExl
dmVsIGluaXRMZXZlbCkKLXsKLSAgICBpZiAobV9pbml0TGV2ZWwgPj0gaW5pdExldmVsKQotICAg
ICAgICByZXR1cm47Ci0KLSAgICBpZiAobV9pc051bGwgfHwgIW1fbnNSZXNwb25zZSkKLSAgICAg
ICAgcmV0dXJuOwotICAgIAotICAgIGlmIChtX2luaXRMZXZlbCA8IENvbW1vbkZpZWxkc09ubHkg
JiYgaW5pdExldmVsID49IENvbW1vbkZpZWxkc09ubHkpIHsKLSAgICAgICAgTlNBdXRvcmVsZWFz
ZVBvb2wqIHBvb2wgPSBbW05TQXV0b3JlbGVhc2VQb29sIGFsbG9jXSBpbml0XTsKLQotICAgICAg
ICBtX2h0dHBIZWFkZXJGaWVsZHMuY2xlYXIoKTsKLSAgICAgICAgbV91cmwgPSBbbV9uc1Jlc3Bv
bnNlLmdldCgpIFVSTF07Ci0gICAgICAgIG1fbWltZVR5cGUgPSBbbV9uc1Jlc3BvbnNlLmdldCgp
IE1JTUVUeXBlXTsKLSAgICAgICAgbV9leHBlY3RlZENvbnRlbnRMZW5ndGggPSBbbV9uc1Jlc3Bv
bnNlLmdldCgpIGV4cGVjdGVkQ29udGVudExlbmd0aF07Ci0gICAgICAgIG1fdGV4dEVuY29kaW5n
TmFtZSA9IFttX25zUmVzcG9uc2UuZ2V0KCkgdGV4dEVuY29kaW5nTmFtZV07Ci0KLSAgICAgICAg
Ly8gV29ya2Fyb3VuZCBmb3IgPHJkYXI6Ly9wcm9ibGVtLzg3NTcwODg+LCBjYW4gYmUgcmVtb3Zl
ZCBvbmNlIHRoYXQgaXMgZml4ZWQuCi0gICAgICAgIHVuc2lnbmVkIHRleHRFbmNvZGluZ05hbWVM
ZW5ndGggPSBtX3RleHRFbmNvZGluZ05hbWUubGVuZ3RoKCk7Ci0gICAgICAgIGlmICh0ZXh0RW5j
b2RpbmdOYW1lTGVuZ3RoID49IDIgJiYgbV90ZXh0RW5jb2RpbmdOYW1lWzBVXSA9PSAnIicgJiYg
bV90ZXh0RW5jb2RpbmdOYW1lW3RleHRFbmNvZGluZ05hbWVMZW5ndGggLSAxXSA9PSAnIicpCi0g
ICAgICAgICAgICBtX3RleHRFbmNvZGluZ05hbWUgPSBtX3RleHRFbmNvZGluZ05hbWUuc3RyaW5n
KCkuc3Vic3RyaW5nKDEsIHRleHRFbmNvZGluZ05hbWVMZW5ndGggLSAyKTsKLQotICAgICAgICBp
ZiAoW21fbnNSZXNwb25zZS5nZXQoKSBpc0tpbmRPZkNsYXNzOltOU0hUVFBVUkxSZXNwb25zZSBj
bGFzc11dKSB7Ci0gICAgICAgICAgICBOU0hUVFBVUkxSZXNwb25zZSAqaHR0cFJlc3BvbnNlID0g
KE5TSFRUUFVSTFJlc3BvbnNlICopbV9uc1Jlc3BvbnNlLmdldCgpOwotCi0gICAgICAgICAgICBt
X2h0dHBTdGF0dXNDb2RlID0gW2h0dHBSZXNwb25zZSBzdGF0dXNDb2RlXTsKLSAgICAgICAgICAg
IAotICAgICAgICAgICAgaWYgKGluaXRMZXZlbCA8IEFsbEZpZWxkcykgewotICAgICAgICAgICAg
ICAgIE5TRGljdGlvbmFyeSAqaGVhZGVycyA9IFtodHRwUmVzcG9uc2UgYWxsSGVhZGVyRmllbGRz
XTsKLSAgICAgICAgICAgICAgICBmb3IgKE5TU3RyaW5nICpuYW1lIDogY29tbW9uSGVhZGVyRmll
bGRzKSB7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChOU1N0cmluZyogaGVhZGVyVmFsdWUgPSBb
aGVhZGVycyBvYmplY3RGb3JLZXk6bmFtZV0pCi0gICAgICAgICAgICAgICAgICAgICAgICBtX2h0
dHBIZWFkZXJGaWVsZHMuc2V0KG5hbWUsIGhlYWRlclZhbHVlKTsKLSAgICAgICAgICAgICAgICB9
Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0gZWxzZQotICAgICAgICAgICAgbV9odHRwU3RhdHVz
Q29kZSA9IDA7Ci0gICAgICAgIAotICAgICAgICBbcG9vbCBkcmFpbl07Ci0gICAgfQotCi0gICAg
aWYgKG1faW5pdExldmVsIDwgQWxsRmllbGRzICYmIGluaXRMZXZlbCA9PSBBbGxGaWVsZHMpIHsK
LSAgICAgICAgaWYgKFttX25zUmVzcG9uc2UuZ2V0KCkgaXNLaW5kT2ZDbGFzczpbTlNIVFRQVVJM
UmVzcG9uc2UgY2xhc3NdXSkgewotICAgICAgICAgICAgTlNBdXRvcmVsZWFzZVBvb2wqIHBvb2wg
PSBbW05TQXV0b3JlbGVhc2VQb29sIGFsbG9jXSBpbml0XTsKLQotICAgICAgICAgICAgTlNIVFRQ
VVJMUmVzcG9uc2UgKmh0dHBSZXNwb25zZSA9IChOU0hUVFBVUkxSZXNwb25zZSAqKW1fbnNSZXNw
b25zZS5nZXQoKTsKLSAgICAgICAgICAgIGlmIChSZXRhaW5QdHI8TlNTdHJpbmc+IGh0dHBTdGF0
dXNMaW5lID0gYWRvcHROUyh3a0NvcHlOU1VSTFJlc3BvbnNlU3RhdHVzTGluZShodHRwUmVzcG9u
c2UpKSkKLSAgICAgICAgICAgICAgICBtX2h0dHBTdGF0dXNUZXh0ID0gZXh0cmFjdFJlYXNvblBo
cmFzZUZyb21IVFRQU3RhdHVzTGluZShodHRwU3RhdHVzTGluZS5nZXQoKSk7Ci0gICAgICAgICAg
ICBlbHNlCi0gICAgICAgICAgICAgICAgbV9odHRwU3RhdHVzVGV4dCA9IEF0b21pY1N0cmluZygi
T0siLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLQotICAgICAgICAgICAg
TlNEaWN0aW9uYXJ5ICpoZWFkZXJzID0gW2h0dHBSZXNwb25zZSBhbGxIZWFkZXJGaWVsZHNdOwot
ICAgICAgICAgICAgZm9yIChOU1N0cmluZyAqbmFtZSBpbiBoZWFkZXJzKQotICAgICAgICAgICAg
ICAgIG1faHR0cEhlYWRlckZpZWxkcy5zZXQobmFtZSwgW2hlYWRlcnMgb2JqZWN0Rm9yS2V5Om5h
bWVdKTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgW3Bvb2wgZHJhaW5dOwotICAgICAgICB9
Ci0gICAgfQotCi0gICAgbV9pbml0TGV2ZWwgPSBpbml0TGV2ZWw7Ci19Ci0KLUNlcnRpZmljYXRl
SW5mbyBSZXNvdXJjZVJlc3BvbnNlOjpwbGF0Zm9ybUNlcnRpZmljYXRlSW5mbygpIGNvbnN0Ci17
Ci0gICAgQVNTRVJUKG1fbnNSZXNwb25zZSk7Ci0gICAgcmV0dXJuIENlcnRpZmljYXRlSW5mbyhh
ZG9wdENGKHdrQ29weU5TVVJMUmVzcG9uc2VDZXJ0aWZpY2F0ZUNoYWluKG1fbnNSZXNwb25zZS5n
ZXQoKSkpKTsKLX0KLQotU3RyaW5nIFJlc291cmNlUmVzcG9uc2U6OnBsYXRmb3JtU3VnZ2VzdGVk
RmlsZW5hbWUoKSBjb25zdAotewotICAgIHJldHVybiBbbnNVUkxSZXNwb25zZSgpIHN1Z2dlc3Rl
ZEZpbGVuYW1lXTsKLX0KLQotYm9vbCBSZXNvdXJjZVJlc3BvbnNlOjpwbGF0Zm9ybUNvbXBhcmUo
Y29uc3QgUmVzb3VyY2VSZXNwb25zZSYgYSwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgYikKLXsK
LSAgICByZXR1cm4gYS5uc1VSTFJlc3BvbnNlKCkgPT0gYi5uc1VSTFJlc3BvbnNlKCk7Ci19Ci0K
LSNlbmRpZiAvLyBVU0UoQ0ZORVRXT1JLKQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1dlYkNvcmVVUkxS
ZXNwb25zZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvV2ViQ29yZVVS
TFJlc3BvbnNlLmgKaW5kZXggMmJlMGFlMzJmZTRmY2NiNTYzOGI0OWQ5NGI4NDQ3MDdlNzhmMzVj
ZC4uMDMzYjYwOGZiM2Y5NmYwMWNlYWUyMzc0NTA3NzMwODljNDBkZDU1YiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvV2ViQ29yZVVSTFJlc3BvbnNlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvV2ViQ29yZVVSTFJlc3Bv
bnNlLmgKQEAgLTI2LDExICsyNiwxMCBAQAogICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi10eXBlZGVmIHN0
cnVjdCBfQ0ZVUkxSZXNwb25zZSogQ0ZVUkxSZXNwb25zZVJlZjsKKyNpbmNsdWRlICJDRk5ldHdv
cmtTUEkuaCIKIAogI2lmZGVmIF9fT0JKQ19fCiBAaW50ZXJmYWNlIE5TVVJMUmVzcG9uc2UgKERl
dGFpbHMpCi0tIChDRlVSTFJlc3BvbnNlUmVmKV9DRlVSTFJlc3BvbnNlOwogLSAodm9pZClfc2V0
TUlNRVR5cGU6KE5TU3RyaW5nICopdHlwZTsKIEBlbmQKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvV2ViQ29yZVVSTFJlc3BvbnNlLm1tIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvV2ViQ29yZVVSTFJlc3BvbnNlLm1tCmluZGV4
IDBmYWJmOTM5ODkzNmIzMTI5MzkyMjExMGM5NzI1YWNhNDY5MzJkZWUuLjVlM2RiNzAzMmRjNzll
ZGI1MWQ5NmViYWMzNDU4ZDIyYTYwM2YzMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvbWFjL1dlYkNvcmVVUkxSZXNwb25zZS5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9XZWJDb3JlVVJMUmVzcG9uc2UubW0KQEAgLTI4OCwx
MyArMjg4LDEyIEBAIHN0YXRpYyBDRkRpY3Rpb25hcnlSZWYgY3JlYXRlRXh0ZW5zaW9uVG9NSU1F
VHlwZU1hcCgpCiAKIHZvaWQgYWRqdXN0TUlNRVR5cGVJZk5lY2Vzc2FyeShDRlVSTFJlc3BvbnNl
UmVmIGNmUmVzcG9uc2UpCiB7Ci0gICAgUmV0YWluUHRyPENGU3RyaW5nUmVmPiByZXN1bHQgPSB3
a0dldENGVVJMUmVzcG9uc2VNSU1FVHlwZShjZlJlc3BvbnNlKTsKKyAgICBSZXRhaW5QdHI8Q0ZT
dHJpbmdSZWY+IHJlc3VsdCA9IENGVVJMUmVzcG9uc2VHZXRNSU1FVHlwZShjZlJlc3BvbnNlKTsK
ICAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IG9yaWdpbmFsUmVzdWx0ID0gcmVzdWx0OwogCiAg
ICAgaWYgKCFyZXN1bHQpIHsKLSAgICAgICAgQ0ZVUkxSZWYgdXJsID0gd2tHZXRDRlVSTFJlc3Bv
bnNlVVJMKGNmUmVzcG9uc2UpOwotICAgICAgICBOU1VSTCAqbnNVUkwgPSAoTlNVUkwgKil1cmw7
Ci0gICAgICAgIGlmIChbbnNVUkwgaXNGaWxlVVJMXSkgeworICAgICAgICBhdXRvIHVybCA9IENG
VVJMUmVzcG9uc2VHZXRVUkwoY2ZSZXNwb25zZSk7CisgICAgICAgIGlmIChbKE5TVVJMICopdXJs
IGlzRmlsZVVSTF0pIHsKICAgICAgICAgICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gZXh0ZW5z
aW9uID0gYWRvcHRDRihDRlVSTENvcHlQYXRoRXh0ZW5zaW9uKHVybCkpOwogICAgICAgICAgICAg
aWYgKGV4dGVuc2lvbikgewogICAgICAgICAgICAgICAgIC8vIDxyZGFyOi8vcHJvYmxlbS83MDA3
Mzg5PiBDb3JlVHlwZXMgVVRJIG1hcCBpcyBtaXNzaW5nIDEwMCsgZmlsZSBleHRlbnNpb25zIHRo
YXQgR2F0ZUtlZXBlciBrbmV3IGFib3V0CkBAIC0zMjEsNyArMzIwLDcgQEAgdm9pZCBhZGp1c3RN
SU1FVHlwZUlmTmVjZXNzYXJ5KENGVVJMUmVzcG9uc2VSZWYgY2ZSZXNwb25zZSkKICAgICB9CiAK
ICAgICBpZiAocmVzdWx0ICE9IG9yaWdpbmFsUmVzdWx0KQotICAgICAgICB3a1NldENGVVJMUmVz
cG9uc2VNSU1FVHlwZShjZlJlc3BvbnNlLCByZXN1bHQuZ2V0KCkpOworICAgICAgICBDRlVSTFJl
c3BvbnNlU2V0TUlNRVR5cGUoY2ZSZXNwb25zZSwgcmVzdWx0LmdldCgpKTsKIH0KICNlbmRpZgog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcGkvY2YvQ0ZOZXR3b3JrQ29u
bmVjdGlvbkNhY2hlU1BJLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcGkvY2YvQ0ZOZXR3
b3JrQ29ubmVjdGlvbkNhY2hlU1BJLmgKaW5kZXggY2UyOTEzNTE3YmYwODgzMmM3NDhiOTgzODA2
YjI4NzRkMmIwYzY3OC4uZTcxMDRlMzJiNjU2YTkyYTc2NmQ1MzNlYTAzOGNhY2FmYmJiMTliYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3BpL2NmL0NGTmV0d29ya0Nvbm5l
Y3Rpb25DYWNoZVNQSS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NwaS9jZi9DRk5l
dHdvcmtDb25uZWN0aW9uQ2FjaGVTUEkuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTQgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAxNC0yMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTAsMTcgKzEwLDE3IEBACiAgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCiAgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgogICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAogI2lmbmRl
ZiBDRk5ldHdvcmtDb25uZWN0aW9uQ2FjaGVTUElfaApAQCAtMzAsMTAgKzMwLDE0IEBACiAjaW5j
bHVkZSA8Q0ZOZXR3b3JrL0NGTmV0d29ya0Nvbm5lY3Rpb25DYWNoZVByaXYuaD4KICNlbHNlCiBl
bnVtIEhUVFBDb25uZWN0aW9uQ2FjaGVMaW1pdEtleXMgeworICAgIGtIVFRQTG9hZFdpZHRoID0g
MCwKKyAgICBrSFRUUFByaW9yaXR5TnVtTGV2ZWxzID0gMywKICAgICBrSFRUUE51bUZhc3RMYW5l
cyA9IDQsCisgICAga0hUVFBNaW5pbXVtRmFzdExhbmVQcmlvcml0eSA9IDUsCiB9OwogI2VuZGlm
CiAKLWV4dGVybiAiQyIgdm9pZCBfQ0ZOZXR3b3JrSFRUUENvbm5lY3Rpb25DYWNoZVNldExpbWl0
KEhUVFBDb25uZWN0aW9uQ2FjaGVMaW1pdEtleXMsIGludCk7CitFWFRFUk5fQyBpbnQgX0NGTmV0
d29ya0hUVFBDb25uZWN0aW9uQ2FjaGVHZXRMaW1pdChIVFRQQ29ubmVjdGlvbkNhY2hlTGltaXRL
ZXlzKTsKK0VYVEVSTl9DIHZvaWQgX0NGTmV0d29ya0hUVFBDb25uZWN0aW9uQ2FjaGVTZXRMaW1p
dChIVFRQQ29ubmVjdGlvbkNhY2hlTGltaXRLZXlzLCBpbnQpOwogCi0jZW5kaWYKKyNlbmRpZiAv
LyBDRk5ldHdvcmtDb25uZWN0aW9uQ2FjaGVTUElfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vc3BpL2NmL0NGTmV0d29ya1NQSS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vc3BpL2NmL0NGTmV0d29ya1NQSS5oCmluZGV4IGI4YTBjOTU1OWU1ZjNiOWJhYTJmNGRkMjk2
ZjczYzI4ZTk0M2M5ZDEuLjA5ZThlOTQ4NjljOGQ4ZmVhMGFiZDk2MWJiNWE5YWEwOTBkYTg1ZGUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NwaS9jZi9DRk5ldHdvcmtTUEku
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcGkvY2YvQ0ZOZXR3b3JrU1BJLmgKQEAg
LTI2LDE1ICsyNiwyMCBAQAogI2lmbmRlZiBDRk5ldHdvcmtTUElfaAogI2RlZmluZSBDRk5ldHdv
cmtTUElfaAogCisjaW5jbHVkZSAiQ0ZOZXR3b3JrQ29ubmVjdGlvbkNhY2hlU1BJLmgiCiAjaW5j
bHVkZSA8Q0ZOZXR3b3JrL0NGTmV0d29yay5oPgogCiAjaWYgUExBVEZPUk0oV0lOKSB8fCBVU0Uo
QVBQTEVfSU5URVJOQUxfU0RLKQogCi0jaW5jbHVkZSA8Q0ZOZXR3b3JrL0NGSFRUUENvb2tpZXMu
aD4KICNpbmNsdWRlIDxDRk5ldHdvcmsvQ0ZIVFRQQ29va2llc1ByaXYuaD4KKyNpbmNsdWRlIDxD
Rk5ldHdvcmsvQ0ZQcm94eVN1cHBvcnRQcml2Lmg+CiAjaW5jbHVkZSA8Q0ZOZXR3b3JrL0NGVVJM
Q2FjaGVQcml2Lmg+CisjaW5jbHVkZSA8Q0ZOZXR3b3JrL0NGVVJMQ29ubmVjdGlvblByaXYuaD4K
KyNpbmNsdWRlIDxDRk5ldHdvcmsvQ0ZVUkxDcmVkZW50aWFsU3RvcmFnZS5oPgogI2luY2x1ZGUg
PENGTmV0d29yay9DRlVSTFByb3RvY29sUHJpdi5oPgotI2luY2x1ZGUgPENGTmV0d29yay9DRlVS
TFJlcXVlc3QuaD4KKyNpbmNsdWRlIDxDRk5ldHdvcmsvQ0ZVUkxSZXF1ZXN0UHJpdi5oPgorI2lu
Y2x1ZGUgPENGTmV0d29yay9DRlVSTFJlc3BvbnNlUHJpdi5oPgorI2luY2x1ZGUgPENGTmV0d29y
ay9DRlVSTFN0b3JhZ2VTZXNzaW9uLmg+CiAKIC8vIEZJWE1FOiBSZW1vdmUgdGhlIGRlZmluZWQo
X19PQkpDX18pLWd1YXJkIG9ubmNlIHdlIGZpeCA8cmRhcjovL3Byb2JsZW0vMTkwMzM2MTA+Lgog
I2lmIGRlZmluZWQoX19PQkpDX18pICYmIFBMQVRGT1JNKENPQ09BKQpAQCAtNTMsMjggKzU4LDQy
IEBAIGV4dGVybiAiQyIgewogCiAjZWxzZSAvLyBQTEFURk9STShXSU4pIHx8IFVTRShBUFBMRV9J
TlRFUk5BTF9TREspCiAKLSNpZiBkZWZpbmVkKF9fT0JKQ19fKQotQGludGVyZmFjZSBOU1VSTFNl
c3Npb25UYXNrIChUaW1pbmdEYXRhKQotLSAoTlNEaWN0aW9uYXJ5ICopX3RpbWluZ0RhdGE7Ci1A
ZW5kCi0jZW5kaWYKLQogdHlwZWRlZiBDRl9FTlVNKGludDY0X3QsIF9UaW1pbmdEYXRhT3B0aW9u
cykKIHsKICAgICBfVGltaW5nRGF0YU9wdGlvbnNFbmFibGVXM0NOYXZpZ2F0aW9uVGltaW5nID0g
KDEgPDwgMCkKIH07CiAKLXR5cGVkZWYgc3RydWN0IE9wYXF1ZUNGSFRUUENvb2tpZVN0b3JhZ2Uq
IENGSFRUUENvb2tpZVN0b3JhZ2VSZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBfQ0ZDYWNoZWRV
UkxSZXNwb25zZSogQ0ZDYWNoZWRVUkxSZXNwb25zZVJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0
IF9DRlVSTENhY2hlKiBDRlVSTENhY2hlUmVmOwotdHlwZWRlZiBjb25zdCBzdHJ1Y3QgX0NGVVJM
UmVxdWVzdCAqQ0ZVUkxSZXF1ZXN0UmVmOwordHlwZWRlZiBjb25zdCBzdHJ1Y3QgX0NGVVJMQ3Jl
ZGVudGlhbCogQ0ZVUkxDcmVkZW50aWFsUmVmOwordHlwZWRlZiBjb25zdCBzdHJ1Y3QgX0NGVVJM
UmVxdWVzdCogQ0ZVUkxSZXF1ZXN0UmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgX19DRlVSTFN0
b3JhZ2VTZXNzaW9uKiBDRlVSTFN0b3JhZ2VTZXNzaW9uUmVmOwotdHlwZWRlZiBjb25zdCBzdHJ1
Y3QgX19DRkRhdGEgKkNGRGF0YVJlZjsKK3R5cGVkZWYgY29uc3Qgc3RydWN0IF9fQ0ZEYXRhKiBD
RkRhdGFSZWY7Cit0eXBlZGVmIHN0cnVjdCBfQ0ZVUkxDb25uZWN0aW9uKiBDRlVSTENvbm5lY3Rp
b25SZWY7Cit0eXBlZGVmIHN0cnVjdCBfQ0ZVUkxDcmVkZW50aWFsU3RvcmFnZSogQ0ZVUkxDcmVk
ZW50aWFsU3RvcmFnZVJlZjsKK3R5cGVkZWYgc3RydWN0IF9DRlVSTFByb3RlY3Rpb25TcGFjZSog
Q0ZVUkxQcm90ZWN0aW9uU3BhY2VSZWY7Cit0eXBlZGVmIHN0cnVjdCBfQ0ZVUkxSZXF1ZXN0KiBD
Rk11dGFibGVVUkxSZXF1ZXN0UmVmOwordHlwZWRlZiBzdHJ1Y3QgX0NGVVJMUmVzcG9uc2UqIENG
VVJMUmVzcG9uc2VSZWY7Cit0eXBlZGVmIHN0cnVjdCBPcGFxdWVDRkhUVFBDb29raWVTdG9yYWdl
KiBDRkhUVFBDb29raWVTdG9yYWdlUmVmOwordHlwZWRlZiBDRkluZGV4IENGVVJMUmVxdWVzdFBy
aW9yaXR5OwordHlwZWRlZiBpbnQgQ0ZIVFRQQ29va2llU3RvcmFnZUFjY2VwdFBvbGljeTsKIAog
I2lmZGVmIF9fQkxPQ0tTX18KIHR5cGVkZWYgdm9pZCAoXkNGQ2FjaGVkVVJMUmVzcG9uc2VDYWxs
QmFja0Jsb2NrKShDRkNhY2hlZFVSTFJlc3BvbnNlUmVmKTsKICNlbmRpZgogCisjaWYgZGVmaW5l
ZChfX09CSkNfXykKK0BpbnRlcmZhY2UgTlNVUkxSZXNwb25zZSAoKQorKyAoTlNVUkxSZXNwb25z
ZSAqKV9yZXNwb25zZVdpdGhDRlVSTFJlc3BvbnNlOihDRlVSTFJlc3BvbnNlUmVmKXJlc3BvbnNl
OworLSAoQ0ZVUkxSZXNwb25zZVJlZilfQ0ZVUkxSZXNwb25zZTsKKy0gKE5TRGF0ZSAqKV9sYXN0
TW9kaWZpZWREYXRlOworQGVuZAorCitAaW50ZXJmYWNlIE5TVVJMU2Vzc2lvblRhc2sgKFRpbWlu
Z0RhdGEpCistIChOU0RpY3Rpb25hcnkgKilfdGltaW5nRGF0YTsKK0BlbmQKKyNlbmRpZgorCiAj
ZW5kaWYgLy8gUExBVEZPUk0oV0lOKSB8fCBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQogCiBFWFRF
Uk5fQyB2b2lkIENGVVJMUmVxdWVzdFNldFNob3VsZFN0YXJ0U3luY2hyb25vdXNseShDRlVSTFJl
cXVlc3RSZWYsIEJvb2xlYW4pOwpAQCAtMTAyLDYgKzEyMSwyOSBAQCBFWFRFUk5fQyB2b2lkIF9D
RkNhY2hlZFVSTFJlc3BvbnNlU2V0QmVjYW1lRmlsZUJhY2tlZENhbGxCYWNrQmxvY2soQ0ZDYWNo
ZWRVUkxSZQogRVhURVJOX0Mgdm9pZCBDRlVSTENvbm5lY3Rpb25JbnZhbGlkYXRlQ29ubmVjdGlv
bkNhY2hlKCk7CiAKIEVYVEVSTl9DIENGU3RyaW5nUmVmIGNvbnN0IGtDRkhUVFBDb29raWVMb2Nh
bEZpbGVEb21haW47CitFWFRFUk5fQyBjb25zdCBDRlN0cmluZ1JlZiBrQ0ZVUkxSZXF1ZXN0QWxs
b3dBbGxQT1NUQ2FjaGluZzsKKworI2lmICFQTEFURk9STShXSU4pCitFWFRFUk5fQyBjb25zdCBD
RlN0cmluZ1JlZiBfa0NGVVJMQ29ubmVjdGlvblByb3BlcnR5U2hvdWxkU25pZmY7CisjZW5kaWYK
KworRVhURVJOX0MgQ0ZIVFRQQ29va2llU3RvcmFnZVJlZiBfQ0ZIVFRQQ29va2llU3RvcmFnZUdl
dERlZmF1bHQoQ0ZBbGxvY2F0b3JSZWYpOworRVhURVJOX0Mgdm9pZCBDRkhUVFBDb29raWVTdG9y
YWdlU2V0Q29va2llQWNjZXB0UG9saWN5KENGSFRUUENvb2tpZVN0b3JhZ2VSZWYsIENGSFRUUENv
b2tpZVN0b3JhZ2VBY2NlcHRQb2xpY3kpOworRVhURVJOX0Mgdm9pZCBfQ0ZOZXR3b3JrU2V0T3Zl
cnJpZGVTeXN0ZW1Qcm94eVNldHRpbmdzKENGRGljdGlvbmFyeVJlZik7CitFWFRFUk5fQyBDRlVS
TENyZWRlbnRpYWxTdG9yYWdlUmVmIENGVVJMQ3JlZGVudGlhbFN0b3JhZ2VDcmVhdGUoQ0ZBbGxv
Y2F0b3JSZWYpOworRVhURVJOX0MgQ0ZVUkxDcmVkZW50aWFsUmVmIENGVVJMQ3JlZGVudGlhbFN0
b3JhZ2VDb3B5RGVmYXVsdENyZWRlbnRpYWxGb3JQcm90ZWN0aW9uU3BhY2UoQ0ZVUkxDcmVkZW50
aWFsU3RvcmFnZVJlZiwgQ0ZVUkxQcm90ZWN0aW9uU3BhY2VSZWYpOworRVhURVJOX0MgQ0ZVUkxS
ZXF1ZXN0UHJpb3JpdHkgQ0ZVUkxSZXF1ZXN0R2V0UmVxdWVzdFByaW9yaXR5KENGVVJMUmVxdWVz
dFJlZik7CitFWFRFUk5fQyB2b2lkIF9DRlVSTFJlcXVlc3RTZXRQcm90b2NvbFByb3BlcnR5KENG
VVJMUmVxdWVzdFJlZiwgQ0ZTdHJpbmdSZWYsIENGVHlwZVJlZik7CitFWFRFUk5fQyB2b2lkIENG
VVJMUmVxdWVzdFNldFJlcXVlc3RQcmlvcml0eShDRlVSTFJlcXVlc3RSZWYsIENGVVJMUmVxdWVz
dFByaW9yaXR5KTsKK0VYVEVSTl9DIHZvaWQgQ0ZVUkxSZXF1ZXN0U2V0U2hvdWxkUGlwZWxpbmVI
VFRQKENGVVJMUmVxdWVzdFJlZiwgQm9vbGVhbiwgQm9vbGVhbik7CitFWFRFUk5fQyB2b2lkIF9D
RlVSTFJlcXVlc3RTZXRTdG9yYWdlU2Vzc2lvbihDRk11dGFibGVVUkxSZXF1ZXN0UmVmLCBDRlVS
TFN0b3JhZ2VTZXNzaW9uUmVmKTsKK0VYVEVSTl9DIENGU3RyaW5nUmVmIENGVVJMUmVzcG9uc2VD
b3B5U3VnZ2VzdGVkRmlsZW5hbWUoQ0ZVUkxSZXNwb25zZVJlZik7CitFWFRFUk5fQyBDRkhUVFBN
ZXNzYWdlUmVmIENGVVJMUmVzcG9uc2VHZXRIVFRQUmVzcG9uc2UoQ0ZVUkxSZXNwb25zZVJlZik7
CitFWFRFUk5fQyBDRlN0cmluZ1JlZiBDRlVSTFJlc3BvbnNlR2V0TUlNRVR5cGUoQ0ZVUkxSZXNw
b25zZVJlZik7CitFWFRFUk5fQyBDRkRpY3Rpb25hcnlSZWYgX0NGVVJMUmVzcG9uc2VHZXRTU0xD
ZXJ0aWZpY2F0ZUNvbnRleHQoQ0ZVUkxSZXNwb25zZVJlZik7CitFWFRFUk5fQyBDRlVSTFJlZiBD
RlVSTFJlc3BvbnNlR2V0VVJMKENGVVJMUmVzcG9uc2VSZWYpOworRVhURVJOX0Mgdm9pZCBDRlVS
TFJlc3BvbnNlU2V0TUlNRVR5cGUoQ0ZVUkxSZXNwb25zZVJlZiwgQ0ZTdHJpbmdSZWYpOworRVhU
RVJOX0MgQ0ZIVFRQQ29va2llU3RvcmFnZVJlZiBfQ0ZVUkxTdG9yYWdlU2Vzc2lvbkNvcHlDb29r
aWVTdG9yYWdlKENGQWxsb2NhdG9yUmVmLCBDRlVSTFN0b3JhZ2VTZXNzaW9uUmVmKTsKIAogLy8g
RklYTUU6IFdlIHNob3VsZCBvbmx5IGZvcndhcmQgZGVjbGFyZSB0aGlzIFNQSSB3aGVuIGJ1aWxk
aW5nIGZvciBpT1Mgd2l0aG91dCB0aGUgQXBwbGUgSW50ZXJuYWwgU0RLLgogLy8gQXMgYSB3b3Jr
YXJvdW5kIGZvciA8cmRhcjovL3Byb2JsZW0vMTkwMjUwMTY+LCB3ZSBtdXN0IGZvcndhcmQgZGVj
bGFyZSB0aGlzIFNQSSByZWdhcmRsZXNzIG9mIHdoZXRoZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL0hvc3RlZE5ldHNjYXBlUGx1Z2luU3RyZWFtLm1tIGIv
U291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvSG9zdGVkTmV0c2NhcGVQbHVnaW5TdHJl
YW0ubW0KaW5kZXggYzZmYmI3MWU1ZmIwZjdkNTM2ZGQ3NzVhZGZkYTFhNmMwYzcwODkwMC4uYzE2
NmVkMDAyMzI2ZjI3MGE4MTk3NThhNDJiYjg5NzkzZTMxZjFiNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvSG9zdGVkTmV0c2NhcGVQbHVnaW5TdHJlYW0ubW0K
KysrIGIvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvSG9zdGVkTmV0c2NhcGVQbHVn
aW5TdHJlYW0ubW0KQEAgLTM3LDYgKzM3LDcgQEAKICNpbXBvcnQgIldlYk5TVVJMRXh0cmFzLmgi
CiAjaW1wb3J0ICJXZWJOU1VSTFJlcXVlc3RFeHRyYXMuaCIKICNpbXBvcnQgIldlYlJlc291cmNl
TG9hZFNjaGVkdWxlci5oIgorI2ltcG9ydCA8V2ViQ29yZS9DRk5ldHdvcmtTUEkuaD4KICNpbXBv
cnQgPFdlYkNvcmUvRG9jdW1lbnQuaD4KICNpbXBvcnQgPFdlYkNvcmUvRG9jdW1lbnRMb2FkZXIu
aD4KICNpbXBvcnQgPFdlYkNvcmUvRnJhbWUuaD4KQEAgLTE4OSw3ICsxOTAsNyBAQCB2b2lkIEhv
c3RlZE5ldHNjYXBlUGx1Z2luU3RyZWFtOjpkaWRSZWNlaXZlUmVzcG9uc2UoTmV0c2NhcGVQbHVn
SW5TdHJlYW1Mb2FkZXIqLAogICAgICAgICBbdGhlSGVhZGVycyBhcHBlbmRCeXRlczoiXDAiIGxl
bmd0aDoxXTsKICAgICB9CiAgICAgCi0gICAgc3RhcnRTdHJlYW0oW3IgVVJMXSwgZXhwZWN0ZWRD
b250ZW50TGVuZ3RoLCBXS0dldE5TVVJMUmVzcG9uc2VMYXN0TW9kaWZpZWREYXRlKHIpLCBbciBN
SU1FVHlwZV0sIHRoZUhlYWRlcnMpOworICAgIHN0YXJ0U3RyZWFtKFtyIFVSTF0sIGV4cGVjdGVk
Q29udGVudExlbmd0aCwgW3IgX2xhc3RNb2RpZmllZERhdGVdLCBbciBNSU1FVHlwZV0sIHRoZUhl
YWRlcnMpOwogfQogCiBOUFJlYXNvbiBIb3N0ZWROZXRzY2FwZVBsdWdpblN0cmVhbTo6cmVhc29u
Rm9yRXJyb3IoTlNFcnJvciAqZXJyb3IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9Q
bHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2luU3RyZWFtLm1tIGIvU291cmNlL1dlYktpdC9tYWMvUGx1
Z2lucy9XZWJOZXRzY2FwZVBsdWdpblN0cmVhbS5tbQppbmRleCBlYzE3NmFlY2ZlMWEzZTE1MjJi
YjcxMGQzNzFlM2NjNGM0ZDYyYzRkLi40MWI0ODE3YTBlY2VjYWYyNjJhMmFmNDAzMTE2NTVlZjRj
OTFkZjU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL1dlYk5ldHNjYXBl
UGx1Z2luU3RyZWFtLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvV2ViTmV0c2Nh
cGVQbHVnaW5TdHJlYW0ubW0KQEAgLTM5LDYgKzM5LDcgQEAKICNpbXBvcnQgIldlYk5ldHNjYXBl
UGx1Z2luVmlldy5oIgogI2ltcG9ydCAiV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmgiCiAjaW1w
b3J0IDxGb3VuZGF0aW9uL05TVVJMUmVzcG9uc2UuaD4KKyNpbXBvcnQgPFdlYkNvcmUvQ0ZOZXR3
b3JrU1BJLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0RvY3VtZW50Lmg+CiAjaW1wb3J0IDxXZWJDb3Jl
L0RvY3VtZW50TG9hZGVyLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0ZyYW1lLmg+CkBAIC0zNTgsNyAr
MzU5LDcgQEAgdm9pZCBXZWJOZXRzY2FwZVBsdWdpblN0cmVhbTo6ZGlkUmVjZWl2ZVJlc3BvbnNl
KE5ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyKiwgY28KICAgICAgICAgLy8gc3RhcnRTdHJlYW1S
ZXNwb25zZVVSTDouLi4gd2lsbCBudWxsLXRlcm1pbmF0ZS4KICAgICB9CiAgICAgCi0gICAgc3Rh
cnRTdHJlYW0oW3IgVVJMXSwgZXhwZWN0ZWRDb250ZW50TGVuZ3RoLCBXS0dldE5TVVJMUmVzcG9u
c2VMYXN0TW9kaWZpZWREYXRlKHIpLCByZXNwb25zZS5taW1lVHlwZSgpLCB0aGVIZWFkZXJzKTsK
KyAgICBzdGFydFN0cmVhbShbciBVUkxdLCBleHBlY3RlZENvbnRlbnRMZW5ndGgsIFtyIF9sYXN0
TW9kaWZpZWREYXRlXSwgcmVzcG9uc2UubWltZVR5cGUoKSwgdGhlSGVhZGVycyk7CiB9CiAKIHZv
aWQgV2ViTmV0c2NhcGVQbHVnaW5TdHJlYW06OnN0YXJ0U3RyZWFtV2l0aFJlc3BvbnNlKE5TVVJM
UmVzcG9uc2UgKnJlc3BvbnNlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29y
ZVN1cHBvcnQvV2ViU3lzdGVtSW50ZXJmYWNlLm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29y
ZVN1cHBvcnQvV2ViU3lzdGVtSW50ZXJmYWNlLm1tCmluZGV4IDE0YzFiYzZjNmI2MWVlNWM2Y2M4
NDY2MTVjNDg5ZDNhZDRlNGMxMzIuLmE4OGRjMzU2M2RjNzhjNTdlMWM4ZjYzNGQ5MGNiYmI5OTll
YmU2YTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlN5
c3RlbUludGVyZmFjZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9X
ZWJTeXN0ZW1JbnRlcmZhY2UubW0KQEAgLTQ2LDE4ICs0NiwxMiBAQCB2b2lkIEluaXRXZWJDb3Jl
U3lzdGVtSW50ZXJmYWNlKHZvaWQpCiAgICAgSU5JVChBZHZhbmNlRGVmYXVsdEJ1dHRvblB1bHNl
QW5pbWF0aW9uKTsKICNlbmRpZgogICAgIElOSVQoQ0FMYXllckVudW1lcmF0ZVJlY3RzQmVpbmdE
cmF3bldpdGhCbG9jayk7Ci0jaWYgIVBMQVRGT1JNKElPUykKLSAgICBJTklUKENHQ29udGV4dEdl
dFNob3VsZFNtb290aEZvbnRzKTsKLSNlbmRpZgogICAgIElOSVQoQ0dQYXR0ZXJuQ3JlYXRlV2l0
aEltYWdlQW5kVHJhbnNmb3JtKTsKICNpZiAhUExBVEZPUk0oSU9TKQogICAgIElOSVQoQ0dDb250
ZXh0RHJhd3NXaXRoQ29ycmVjdFNoYWRvd09mZnNldHMpOwogI2VuZGlmCiAgICAgSU5JVChDb3B5
Q09OTkVDVFByb3h5UmVzcG9uc2UpOwotICAgIElOSVQoQ29weU5TVVJMUmVzcG9uc2VTdGF0dXNM
aW5lKTsKLSAgICBJTklUKENvcHlOU1VSTFJlc3BvbnNlQ2VydGlmaWNhdGVDaGFpbik7CiAjaWYg
IVBMQVRGT1JNKElPUykKLSAgICBJTklUKERyYXdDYXBzTG9ja0luZGljYXRvcik7CiAgICAgSU5J
VChEcmF3QmV6ZWxlZFRleHRBcmVhKTsKICAgICBJTklUKERyYXdGb2N1c1JpbmcpOwogICAgIElO
SVQoRHJhd0ZvY3VzUmluZ0F0VGltZSk7CkBAIC02NSw0NyArNTksMzQgQEAgdm9pZCBJbml0V2Vi
Q29yZVN5c3RlbUludGVyZmFjZSh2b2lkKQogICAgIElOSVQoRHJhd01lZGlhVUlQYXJ0KTsKICAg
ICBJTklUKERyYXdNZWRpYVNsaWRlclRyYWNrKTsKICNlbmRpZgotICAgIElOSVQoR2V0SFRUUFJl
cXVlc3RQcmlvcml0eSk7Ci0gICAgSU5JVChHZXROU1VSTFJlc3BvbnNlTGFzdE1vZGlmaWVkRGF0
ZSk7CiAgICAgSU5JVChHZXRXZWJEZWZhdWx0Q0ZTdHJpbmdFbmNvZGluZyk7CiAjaWYgIVBMQVRG
T1JNKElPUykKICAgICBJTklUKFNpZ25lZFB1YmxpY0tleUFuZENoYWxsZW5nZVN0cmluZyk7CiAg
ICAgSU5JVChHZXRXaGVlbEV2ZW50RGVsdGFzKTsKICAgICBJTklUKEdldE5TRXZlbnRLZXlDaGFy
KTsKICAgICBJTklUKEhpdFRlc3RNZWRpYVVJUGFydCk7Ci0jZW5kaWYKLSAgICBJTklUKEluaXRp
YWxpemVNYXhpbXVtSFRUUENvbm5lY3Rpb25Db3VudFBlckhvc3QpOwotI2lmICFQTEFURk9STShJ
T1MpCiAgICAgSU5JVChNZWFzdXJlTWVkaWFVSVBhcnQpOwogICAgIElOSVQoQ3JlYXRlTWVkaWFV
SUJhY2tncm91bmRWaWV3KTsKICAgICBJTklUKENyZWF0ZU1lZGlhVUlDb250cm9sKTsKICAgICBJ
TklUKFdpbmRvd1NldEFscGhhKTsKICAgICBJTklUKFdpbmRvd1NldFNjYWxlZEZyYW1lKTsKLSAg
ICBJTklUKFNldENHRm9udFJlbmRlcmluZ01vZGUpOwogI2VuZGlmCiAgICAgSU5JVChTZXRDT05O
RUNUUHJveHlBdXRob3JpemF0aW9uRm9yU3RyZWFtKTsKICAgICBJTklUKFNldENPTk5FQ1RQcm94
eUZvclN0cmVhbSk7CiAjaWYgIVBMQVRGT1JNKElPUykKICAgICBJTklUKFNldERyYWdJbWFnZSk7
CiAjZW5kaWYKLSAgICBJTklUKFNldEhUVFBSZXF1ZXN0TWF4aW11bVByaW9yaXR5KTsKLSAgICBJ
TklUKFNldEhUVFBSZXF1ZXN0UHJpb3JpdHkpOwotICAgIElOSVQoU2V0SFRUUFJlcXVlc3RNaW5p
bXVtRmFzdExhbmVQcmlvcml0eSk7Ci0gICAgSU5JVChIVFRQUmVxdWVzdEVuYWJsZVBpcGVsaW5p
bmcpOwotICAgIElOSVQoU2V0TlNVUkxSZXF1ZXN0U2hvdWxkQ29udGVudFNuaWZmKTsKICAgICBJ
TklUKENHQ29udGV4dElzUERGQ29udGV4dCk7CiAjaWYgRU5BQkxFKFZJREVPKSAmJiAhUExBVEZP
Uk0oSU9TKQogICAgIElOSVQoUVRJbmNsdWRlT25seU1vZGVybk1lZGlhRmlsZVR5cGVzKTsKICAg
ICBJTklUKFFUTW92aWVEaXNhYmxlQ29tcG9uZW50KTsKICAgICBJTklUKFFUTW92aWVNYXhUaW1l
TG9hZGVkKTsKICAgICBJTklUKFFUTW92aWVNYXhUaW1lTG9hZGVkQ2hhbmdlTm90aWZpY2F0aW9u
KTsKLSAgICBJTklUKFFUTW92aWVNYXhUaW1lU2Vla2FibGUpOwogICAgIElOSVQoUVRNb3ZpZUdl
dFR5cGUpOwogICAgIElOSVQoUVRNb3ZpZUhhc0Nsb3NlZENhcHRpb25zKTsKICAgICBJTklUKFFU
TW92aWVSZXNvbHZlZFVSTCk7CiAgICAgSU5JVChRVE1vdmllU2V0U2hvd0Nsb3NlZENhcHRpb25z
KTsKICAgICBJTklUKFFUTW92aWVTZWxlY3RQcmVmZXJyZWRBbHRlcm5hdGVzKTsKLSAgICBJTklU
KFFUTW92aWVWaWV3U2V0RHJhd1N5bmNocm9ub3VzbHkpOwogICAgIElOSVQoUVRHZXRTaXRlc0lu
TWVkaWFEb3dubG9hZENhY2hlKTsKICAgICBJTklUKFFUQ2xlYXJNZWRpYURvd25sb2FkQ2FjaGVG
b3JTaXRlKTsKICAgICBJTklUKFFUQ2xlYXJNZWRpYURvd25sb2FkQ2FjaGUpOwpAQCAtMTE1LDE2
ICs5Niw2IEBAIHZvaWQgSW5pdFdlYkNvcmVTeXN0ZW1JbnRlcmZhY2Uodm9pZCkKICAgICBJTklU
KEV4ZWN1dGFibGVXYXNMaW5rZWRPbk9yQmVmb3JlU25vd0xlb3BhcmQpOwogICAgIElOSVQoQ29w
eURlZmF1bHRTZWFyY2hQcm92aWRlckRpc3BsYXlOYW1lKTsKICAgICBJTklUKEN1cnNvcik7Ci0j
ZW5kaWYKLQotI2lmIFVTRShDRk5FVFdPUkspCi0gICAgSU5JVChHZXREZWZhdWx0SFRUUENvb2tp
ZVN0b3JhZ2UpOwotICAgIElOSVQoQ29weUNyZWRlbnRpYWxGcm9tQ0ZQZXJzaXN0ZW50U3RvcmFn
ZSk7Ci0gICAgSU5JVChTZXRDRlVSTFJlcXVlc3RTaG91bGRDb250ZW50U25pZmYpOwotICAgIElO
SVQoU2V0UmVxdWVzdFN0b3JhZ2VTZXNzaW9uKTsKLSNlbmRpZgotCi0jaWYgIVBMQVRGT1JNKElP
UykKICAgICBJTklUKFNwZWVjaFN5bnRoZXNpc0dldFZvaWNlSWRlbnRpZmllcnMpOwogICAgIElO
SVQoU3BlZWNoU3ludGhlc2lzR2V0RGVmYXVsdFZvaWNlSWRlbnRpZmllckZvckxvY2FsZSk7CiAg
ICAgSU5JVChHZXRBWFRleHRNYXJrZXJUeXBlSUQpOwpAQCAtMTQwLDcgKzExMSw2IEBAIHZvaWQg
SW5pdFdlYkNvcmVTeXN0ZW1JbnRlcmZhY2Uodm9pZCkKICNlbmRpZgogICAgIElOSVQoQ3JlYXRl
UHJpdmF0ZVN0b3JhZ2VTZXNzaW9uKTsKICAgICBJTklUKENvcHlSZXF1ZXN0V2l0aFN0b3JhZ2VT
ZXNzaW9uKTsKLSAgICBJTklUKENvcHlIVFRQQ29va2llU3RvcmFnZSk7CiAgICAgSU5JVChHZXRI
VFRQQ29va2llQWNjZXB0UG9saWN5KTsKICAgICBJTklUKEhUVFBDb29raWVzKTsKICAgICBJTklU
KEhUVFBDb29raWVzRm9yVVJMKTsKQEAgLTE0OCwxOSArMTE4LDggQEAgdm9pZCBJbml0V2ViQ29y
ZVN5c3RlbUludGVyZmFjZSh2b2lkKQogICAgIElOSVQoRGVsZXRlQWxsSFRUUENvb2tpZXMpOwog
ICAgIElOSVQoRGVsZXRlSFRUUENvb2tpZSk7CiAKLSAgICBJTklUKEdldENGVVJMUmVzcG9uc2VN
SU1FVHlwZSk7Ci0gICAgSU5JVChHZXRDRlVSTFJlc3BvbnNlVVJMKTsKLSAgICBJTklUKEdldENG
VVJMUmVzcG9uc2VIVFRQUmVzcG9uc2UpOwotICAgIElOSVQoQ29weUNGVVJMUmVzcG9uc2VTdWdn
ZXN0ZWRGaWxlbmFtZSk7Ci0gICAgSU5JVChTZXRDRlVSTFJlc3BvbnNlTUlNRVR5cGUpOwotCiAj
aWYgIVBMQVRGT1JNKElPUykKICAgICBJTklUKFNldE1ldGFkYXRhVVJMKTsKLSNlbmRpZgotCi0g
ICAgSU5JVChDRlVSTFJlcXVlc3RBbGxvd0FsbFBvc3RDYWNoaW5nKTsKLQotI2lmICFQTEFURk9S
TShJT1MpCiAgICAgSU5JVChOU0VsYXN0aWNEZWx0YUZvclRpbWVEZWx0YSk7CiAgICAgSU5JVChO
U0VsYXN0aWNEZWx0YUZvclJlYm91bmREZWx0YSk7CiAgICAgSU5JVChOU1JlYm91bmREZWx0YUZv
ckVsYXN0aWNEZWx0YSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dl
YlByZWZlcmVuY2VzLm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNl
cy5tbQppbmRleCAwMTBmYThiNzc3MjlkMGM0ZWFlNmI0OWY5MzFkZTA0OTI2ZDNjYjI3Li41ZDhi
ZWU3NzQwNDMxYzMxMDAyMjc2NDQ5MGIwMmEzZDJkNjg4ODlkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
bWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0KQEAgLTQxLDYgKzQxLDcgQEAKICNpbXBvcnQg
IldlYlN5c3RlbUludGVyZmFjZS5oIgogI2ltcG9ydCA8V2ViQ29yZS9BcHBsaWNhdGlvbkNhY2hl
U3RvcmFnZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9BdWRpb1Nlc3Npb24uaD4KKyNpbXBvcnQgPFdl
YkNvcmUvQ0ZOZXR3b3JrU1BJLmg+CiAjaW1wb3J0IDxXZWJDb3JlL05ldHdvcmtTdG9yYWdlU2Vz
c2lvbi5oPgogI2ltcG9ydCA8V2ViQ29yZS9QbGF0Zm9ybUNvb2tpZUphci5oPgogI2ltcG9ydCA8
V2ViQ29yZS9SZXNvdXJjZUhhbmRsZS5oPgpAQCAtNTEsMTAgKzUyLDYgQEAKICNpbXBvcnQgPHd0
Zi9SZXRhaW5QdHIuaD4KICNpbXBvcnQgPHd0Zi9SdW5Mb29wLmg+CiAKLWVudW0gewotICAgIE5T
SFRUUENvb2tpZUFjY2VwdFBvbGljeUV4Y2x1c2l2ZWx5RnJvbU1haW5Eb2N1bWVudERvbWFpbiA9
IDMKLX07Ci0KIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiAjaWYgUExBVEZPUk0oSU9TKQpA
QCAtMTc2Nyw3ICsxNzY0LDcgQEAgKyAodm9pZClfc2V0Q3VycmVudE5ldHdvcmtMb2FkZXJTZXNz
aW9uQ29va2llQWNjZXB0UG9saWN5OihOU0hUVFBDb29raWVBY2NlcHRQb2wKIHsKICAgICBSZXRh
aW5QdHI8Q0ZIVFRQQ29va2llU3RvcmFnZVJlZj4gY29va2llU3RvcmFnZSA9IE5ldHdvcmtTdG9y
YWdlU2Vzc2lvbjo6ZGVmYXVsdFN0b3JhZ2VTZXNzaW9uKCkuY29va2llU3RvcmFnZSgpOwogICAg
IEFTU0VSVChjb29raWVTdG9yYWdlKTsgLy8gV2lsbCBmYWlsIHdoZW4gYnVpbGRpbmcgd2l0aG91
dCBVU0UoQ0ZORVRXT1JLKSBhbmQgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzd2l0Y2hUb05ld1Rl
c3RpbmdTZXNzaW9uKCkgd2FzIG5vdCBjYWxsZWQgYmVmb3JlaGFuZC4KLSAgICBXS1NldEhUVFBD
b29raWVBY2NlcHRQb2xpY3koY29va2llU3RvcmFnZS5nZXQoKSwgcG9saWN5KTsKKyAgICBDRkhU
VFBDb29raWVTdG9yYWdlU2V0Q29va2llQWNjZXB0UG9saWN5KGNvb2tpZVN0b3JhZ2UuZ2V0KCks
IHBvbGljeSk7CiB9CiAKIC0gKEJPT0wpaXNET01QYXN0ZUFsbG93ZWQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtQcm9jZXNzQ29jb2EubW0g
Yi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrUHJvY2Vzc0NvY29h
Lm1tCmluZGV4IGY0NTljNTkxNDFmNTNkZWY3NzgyZDVlZmY3ZWRlY2VhOGI2ZGUyYzQuLjU3YmZl
NmQ5N2JhY2I0MTRmZjA3OGJmNTA1NGU3ZTc4YTU5YjUyODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtQcm9jZXNzQ29jb2EubW0KKysrIGIv
U291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Byb2Nlc3NDb2NvYS5t
bQpAQCAtNTEsNyArNTEsNyBAQCBzdGF0aWMgdm9pZCBpbml0aWFsaXplTmV0d29ya1NldHRpbmdz
KCkKIHsKICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgcHJlZmVycmVkQ29ubmVjdGlvbkNvdW50
ID0gNjsKIAotICAgIFdLSW5pdGlhbGl6ZU1heGltdW1IVFRQQ29ubmVjdGlvbkNvdW50UGVySG9z
dChwcmVmZXJyZWRDb25uZWN0aW9uQ291bnQpOworICAgIF9DRk5ldHdvcmtIVFRQQ29ubmVjdGlv
bkNhY2hlU2V0TGltaXQoa0hUVFBMb2FkV2lkdGgsIHByZWZlcnJlZENvbm5lY3Rpb25Db3VudCk7
CiAKICAgICBCb29sZWFuIGtleUV4aXN0c0FuZEhhc1ZhbGlkRm9ybWF0ID0gZmFsc2U7CiAgICAg
Qm9vbGVhbiBwcmVmVmFsdWUgPSBDRlByZWZlcmVuY2VzR2V0QXBwQm9vbGVhblZhbHVlKENGU1RS
KCJXZWJLaXRFbmFibGVIVFRQUGlwZWxpbmluZyIpLCBrQ0ZQcmVmZXJlbmNlc0N1cnJlbnRBcHBs
aWNhdGlvbiwgJmtleUV4aXN0c0FuZEhhc1ZhbGlkRm9ybWF0KTsKQEAgLTU5LDggKzU5LDEwIEBA
IHN0YXRpYyB2b2lkIGluaXRpYWxpemVOZXR3b3JrU2V0dGluZ3MoKQogICAgICAgICBXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3Q6OnNldEhUVFBQaXBlbGluaW5nRW5hYmxlZChwcmVmVmFsdWUpOwog
CiAgICAgaWYgKFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdDo6cmVzb3VyY2VQcmlvcml0aWVzRW5h
YmxlZCgpKSB7Ci0gICAgICAgIFdLU2V0SFRUUFJlcXVlc3RNYXhpbXVtUHJpb3JpdHkodG9QbGF0
Zm9ybVJlcXVlc3RQcmlvcml0eShXZWJDb3JlOjpSZXNvdXJjZUxvYWRQcmlvcml0eTo6SGlnaGVz
dCkpOwotICAgICAgICBXS1NldEhUVFBSZXF1ZXN0TWluaW11bUZhc3RMYW5lUHJpb3JpdHkodG9Q
bGF0Zm9ybVJlcXVlc3RQcmlvcml0eShXZWJDb3JlOjpSZXNvdXJjZUxvYWRQcmlvcml0eTo6TWVk
aXVtKSk7CisgICAgICAgIF9DRk5ldHdvcmtIVFRQQ29ubmVjdGlvbkNhY2hlU2V0TGltaXQoa0hU
VFBQcmlvcml0eU51bUxldmVscywgdG9QbGF0Zm9ybVJlcXVlc3RQcmlvcml0eShXZWJDb3JlOjpS
ZXNvdXJjZUxvYWRQcmlvcml0eTo6SGlnaGVzdCkpOworI2lmIFBMQVRGT1JNKElPUykKKyAgICAg
ICAgX0NGTmV0d29ya0hUVFBDb25uZWN0aW9uQ2FjaGVTZXRMaW1pdChrSFRUUE1pbmltdW1GYXN0
TGFuZVByaW9yaXR5LCB0b1BsYXRmb3JtUmVxdWVzdFByaW9yaXR5KFdlYkNvcmU6OlJlc291cmNl
TG9hZFByaW9yaXR5OjpNZWRpdW0pKTsKKyNlbmRpZgogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvbWFjL05ldHdvcmtQcm9jZXNzTWFjLm1tIGIv
U291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvbWFjL05ldHdvcmtQcm9jZXNzTWFjLm1tCmlu
ZGV4IDI4NGU1Yjc4ODYxY2U4N2Y0YjVmYzVmMWE4NmMwOTcwOTZlYTE0YzAuLmRkNTc5YTUxMGE5
ZTc1N2NlMzIwNGM2NGEwOWE3ZTFlN2NkY2VjNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L05ldHdvcmtQcm9jZXNzL21hYy9OZXR3b3JrUHJvY2Vzc01hYy5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvTmV0d29ya1Byb2Nlc3NNYWMubW0KQEAgLTM2LDYgKzM2
LDcgQEAKICNpbXBvcnQgIlNhbmRib3hJbml0aWFsaXphdGlvblBhcmFtZXRlcnMuaCIKICNpbXBv
cnQgIlNlY0l0ZW1TaGltLmgiCiAjaW1wb3J0ICJTdHJpbmdVdGlsaXRpZXMuaCIKKyNpbXBvcnQg
PFdlYkNvcmUvQ0ZOZXR3b3JrU1BJLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0NlcnRpZmljYXRlSW5m
by5oPgogI2ltcG9ydCA8V2ViQ29yZS9GaWxlU3lzdGVtLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0xv
Y2FsaXplZFN0cmluZ3MuaD4KQEAgLTk1LDcgKzk2LDcgQEAgc3RhdGljIHZvaWQgb3ZlcnJpZGVT
eXN0ZW1Qcm94aWVzKGNvbnN0IFN0cmluZyYgaHR0cFByb3h5LCBjb25zdCBTdHJpbmcmIGh0dHBz
UHIKICAgICB9CiAKICAgICBpZiAoW3Byb3h5U2V0dGluZ3MgY291bnRdID4gMCkKLSAgICAgICAg
V0tDRk5ldHdvcmtTZXRPdmVycmlkZVN5c3RlbVByb3h5U2V0dGluZ3MoKENGRGljdGlvbmFyeVJl
Zilwcm94eVNldHRpbmdzKTsKKyAgICAgICAgX0NGTmV0d29ya1NldE92ZXJyaWRlU3lzdGVtUHJv
eHlTZXR0aW5ncygoQ0ZEaWN0aW9uYXJ5UmVmKXByb3h5U2V0dGluZ3MpOwogfQogCiB2b2lkIE5l
dHdvcmtQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVOZXR3b3JrUHJvY2Vzcyhjb25zdCBOZXR3
b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkZyYW1lTmV0d29y
a2luZ0NvbnRleHQubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L21hYy9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lm1tCmluZGV4IDdiMTMyOGRlY2MyYTNjMDhi
MGEzOGIzN2U5YzNiMWM1ZjYzNTVjZWQuLjJlNjcxODI5OTA3MTE2OTQ3NGFhZTI3M2QzZjY3YjEw
NGNjYjRlMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvbWFjL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQubW0KKysrIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4
dC5tbQpAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIldlYkNvb2tpZU1hbmFnZXIuaCIKICNp
bmNsdWRlICJXZWJQYWdlLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgorI2luY2x1ZGUgPFdl
YkNvcmUvQ0ZOZXR3b3JrU1BJLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZS5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvRnJhbWVMb2FkZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lTG9hZGVy
Q2xpZW50Lmg+CkBAIC02OSwxMSArNzAsMTEgQEAgdm9pZCBXZWJGcmFtZU5ldHdvcmtpbmdDb250
ZXh0OjpzZXRDb29raWVBY2NlcHRQb2xpY3lGb3JBbGxDb250ZXh0cyhIVFRQQ29va2llQWMKICAg
ICBbW05TSFRUUENvb2tpZVN0b3JhZ2Ugc2hhcmVkSFRUUENvb2tpZVN0b3JhZ2VdIHNldENvb2tp
ZUFjY2VwdFBvbGljeTpzdGF0aWNfY2FzdDxOU0hUVFBDb29raWVBY2NlcHRQb2xpY3k+KHBvbGlj
eSldOwogCiAgICAgaWYgKFJldGFpblB0cjxDRkhUVFBDb29raWVTdG9yYWdlUmVmPiBjb29raWVT
dG9yYWdlID0gTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpkZWZhdWx0U3RvcmFnZVNlc3Npb24oKS5j
b29raWVTdG9yYWdlKCkpCi0gICAgICAgIFdLU2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShjb29r
aWVTdG9yYWdlLmdldCgpLCBwb2xpY3kpOworICAgICAgICBDRkhUVFBDb29raWVTdG9yYWdlU2V0
Q29va2llQWNjZXB0UG9saWN5KGNvb2tpZVN0b3JhZ2UuZ2V0KCksIHBvbGljeSk7CiAKICAgICBm
b3IgKGNvbnN0IGF1dG8mIHNlc3Npb24gOiBTZXNzaW9uVHJhY2tlcjo6c3RvcmFnZVNlc3Npb25N
YXAoKS52YWx1ZXMoKSkgewogICAgICAgICBpZiAoc2Vzc2lvbikKLSAgICAgICAgICAgIFdLU2V0
SFRUUENvb2tpZUFjY2VwdFBvbGljeShzZXNzaW9uLT5jb29raWVTdG9yYWdlKCkuZ2V0KCksIHBv
bGljeSk7CisgICAgICAgICAgICBDRkhUVFBDb29raWVTdG9yYWdlU2V0Q29va2llQWNjZXB0UG9s
aWN5KHNlc3Npb24tPmNvb2tpZVN0b3JhZ2UoKS5nZXQoKSwgcG9saWN5KTsKICAgICB9CiB9CiAg
ICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L21hYy9XZWJTeXN0ZW1JbnRlcmZhY2UubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L21hYy9XZWJTeXN0ZW1JbnRlcmZhY2UubW0KaW5kZXggMDNmMjg4MjMwMjEx
MzZmZTA4ZGQyZjczYzU0YWJiMzVmMzNiOGU4Zi4uM2FiNTkwZDMwNGFhZDg5YzUxZjQwZDJlZWUx
MDQxOGFhOTYyMGI3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9tYWMvV2ViU3lzdGVtSW50ZXJmYWNlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYlN5c3RlbUludGVyZmFjZS5tbQpAQCAt
NDAsMjYgKzQwLDE4IEBAIHZvaWQgSW5pdFdlYkNvcmVTeXN0ZW1JbnRlcmZhY2Uodm9pZCkKICAg
ICAgICAgSU5JVChBZHZhbmNlRGVmYXVsdEJ1dHRvblB1bHNlQW5pbWF0aW9uKTsKICNlbmRpZgog
ICAgICAgICBJTklUKENBTGF5ZXJFbnVtZXJhdGVSZWN0c0JlaW5nRHJhd25XaXRoQmxvY2spOwot
ICAgICAgICBJTklUKENHQ29udGV4dEdldFNob3VsZFNtb290aEZvbnRzKTsKICAgICAgICAgSU5J
VChDR1BhdHRlcm5DcmVhdGVXaXRoSW1hZ2VBbmRUcmFuc2Zvcm0pOwogI2lmICFQTEFURk9STShJ
T1MpCiAgICAgICAgIElOSVQoQ0dDb250ZXh0RHJhd3NXaXRoQ29ycmVjdFNoYWRvd09mZnNldHMp
OwogI2VuZGlmCiAgICAgICAgIElOSVQoQ29weUNPTk5FQ1RQcm94eVJlc3BvbnNlKTsKLSAgICAg
ICAgSU5JVChDb3B5TlNVUkxSZXNwb25zZVN0YXR1c0xpbmUpOwotICAgICAgICBJTklUKENvcHlO
U1VSTFJlc3BvbnNlQ2VydGlmaWNhdGVDaGFpbik7CiAjaWYgIVBMQVRGT1JNKElPUykKICAgICAg
ICAgSU5JVChEcmF3QmV6ZWxlZFRleHRBcmVhKTsKLSAgICAgICAgSU5JVChEcmF3Q2Fwc0xvY2tJ
bmRpY2F0b3IpOwogICAgICAgICBJTklUKERyYXdGb2N1c1JpbmcpOwogICAgICAgICBJTklUKERy
YXdGb2N1c1JpbmdBdFRpbWUpOwogICAgICAgICBJTklUKERyYXdDZWxsRm9jdXNSaW5nV2l0aEZy
YW1lQXRUaW1lKTsKICAgICAgICAgSU5JVChEcmF3TWVkaWFTbGlkZXJUcmFjayk7CiAgICAgICAg
IElOSVQoRHJhd01lZGlhVUlQYXJ0KTsKLSNlbmRpZgotICAgICAgICBJTklUKEdldEhUVFBSZXF1
ZXN0UHJpb3JpdHkpOwotICAgICAgICBJTklUKEdldE5TVVJMUmVzcG9uc2VMYXN0TW9kaWZpZWRE
YXRlKTsKLSNpZiAhUExBVEZPUk0oSU9TKQogICAgICAgICBJTklUKFNpZ25lZFB1YmxpY0tleUFu
ZENoYWxsZW5nZVN0cmluZyk7CiAjZW5kaWYKICAgICAgICAgSU5JVChHZXRXZWJEZWZhdWx0Q0ZT
dHJpbmdFbmNvZGluZyk7CkBAIC02OCwxMCArNjAsNiBAQCB2b2lkIEluaXRXZWJDb3JlU3lzdGVt
SW50ZXJmYWNlKHZvaWQpCiAgICAgICAgIElOSVQoR2V0V2hlZWxFdmVudERlbHRhcyk7CiAgICAg
ICAgIElOSVQoR2V0TlNFdmVudEtleUNoYXIpOwogICAgICAgICBJTklUKEhpdFRlc3RNZWRpYVVJ
UGFydCk7Ci0jZW5kaWYKLSAgICAgICAgSU5JVChJbml0aWFsaXplTWF4aW11bUhUVFBDb25uZWN0
aW9uQ291bnRQZXJIb3N0KTsKLSAgICAgICAgSU5JVChIVFRQUmVxdWVzdEVuYWJsZVBpcGVsaW5p
bmcpOwotI2lmICFQTEFURk9STShJT1MpCiAgICAgICAgIElOSVQoTWVhc3VyZU1lZGlhVUlQYXJ0
KTsKICAgICAgICAgSU5JVChRVEluY2x1ZGVPbmx5TW9kZXJuTWVkaWFGaWxlVHlwZXMpOwogICAg
ICAgICBJTklUKFFUTW92aWVEaXNhYmxlQ29tcG9uZW50KTsKQEAgLTc5LDMwICs2NywyMSBAQCB2
b2lkIEluaXRXZWJDb3JlU3lzdGVtSW50ZXJmYWNlKHZvaWQpCiAgICAgICAgIElOSVQoUVRNb3Zp
ZUhhc0Nsb3NlZENhcHRpb25zKTsKICAgICAgICAgSU5JVChRVE1vdmllTWF4VGltZUxvYWRlZCk7
CiAgICAgICAgIElOSVQoUVRNb3ZpZU1heFRpbWVMb2FkZWRDaGFuZ2VOb3RpZmljYXRpb24pOwot
ICAgICAgICBJTklUKFFUTW92aWVNYXhUaW1lU2Vla2FibGUpOwogICAgICAgICBJTklUKFFUTW92
aWVSZXNvbHZlZFVSTCk7CiAgICAgICAgIElOSVQoUVRNb3ZpZVNlbGVjdFByZWZlcnJlZEFsdGVy
bmF0ZXMpOwogICAgICAgICBJTklUKFFUTW92aWVTZXRTaG93Q2xvc2VkQ2FwdGlvbnMpOwotICAg
ICAgICBJTklUKFFUTW92aWVWaWV3U2V0RHJhd1N5bmNocm9ub3VzbHkpOwogICAgICAgICBJTklU
KFFUR2V0U2l0ZXNJbk1lZGlhRG93bmxvYWRDYWNoZSk7CiAgICAgICAgIElOSVQoUVRDbGVhck1l
ZGlhRG93bmxvYWRDYWNoZUZvclNpdGUpOwogICAgICAgICBJTklUKFFUQ2xlYXJNZWRpYURvd25s
b2FkQ2FjaGUpOwotICAgICAgICBJTklUKFNldENHRm9udFJlbmRlcmluZ01vZGUpOwogI2VuZGlm
CiAgICAgICAgIElOSVQoU2V0Q09OTkVDVFByb3h5QXV0aG9yaXphdGlvbkZvclN0cmVhbSk7CiAg
ICAgICAgIElOSVQoU2V0Q09OTkVDVFByb3h5Rm9yU3RyZWFtKTsKICNpZiAhUExBVEZPUk0oSU9T
KQogICAgICAgICBJTklUKFNldERyYWdJbWFnZSk7CiAjZW5kaWYKLSAgICAgICAgSU5JVChTZXRI
VFRQUmVxdWVzdE1heGltdW1Qcmlvcml0eSk7Ci0gICAgICAgIElOSVQoU2V0SFRUUFJlcXVlc3RQ
cmlvcml0eSk7Ci0gICAgICAgIElOSVQoU2V0SFRUUFJlcXVlc3RNaW5pbXVtRmFzdExhbmVQcmlv
cml0eSk7Ci0gICAgICAgIElOSVQoU2V0TlNVUkxSZXF1ZXN0U2hvdWxkQ29udGVudFNuaWZmKTsK
ICAgICAgICAgSU5JVChDcmVhdGVQcml2YXRlU3RvcmFnZVNlc3Npb24pOwogICAgICAgICBJTklU
KENvcHlSZXF1ZXN0V2l0aFN0b3JhZ2VTZXNzaW9uKTsKLSAgICAgICAgSU5JVChDb3B5SFRUUENv
b2tpZVN0b3JhZ2UpOwogICAgICAgICBJTklUKEdldEhUVFBDb29raWVBY2NlcHRQb2xpY3kpOwot
ICAgICAgICBJTklUKFNldEhUVFBDb29raWVBY2NlcHRQb2xpY3kpOwogICAgICAgICBJTklUKEhU
VFBDb29raWVzKTsKICAgICAgICAgSU5JVChIVFRQQ29va2llc0ZvclVSTCk7CiAgICAgICAgIElO
SVQoU2V0SFRUUENvb2tpZXNGb3JVUkwpOwpAQCAtMTExLDI0ICs5MCwxMSBAQCB2b2lkIEluaXRX
ZWJDb3JlU3lzdGVtSW50ZXJmYWNlKHZvaWQpCiAKICNpZiAhUExBVEZPUk0oSU9TKQogICAgICAg
ICBJTklUKFNldE1ldGFkYXRhVVJMKTsKLSNlbmRpZiAvLyAhUExBVEZPUk0oSU9TKQotCi0jaWYg
IVBMQVRGT1JNKElPUykKICAgICAgICAgSU5JVChFeGVjdXRhYmxlV2FzTGlua2VkT25PckJlZm9y
ZVNub3dMZW9wYXJkKTsKICAgICAgICAgSU5JVChDb3B5RGVmYXVsdFNlYXJjaFByb3ZpZGVyRGlz
cGxheU5hbWUpOwogICAgICAgICBJTklUKEN1cnNvcik7CiAgICAgICAgIElOSVQoV2luZG93U2V0
U2NhbGVkRnJhbWUpOwogICAgICAgICBJTklUKFdpbmRvd1NldEFscGhhKTsKLSNlbmRpZiAvLyAh
UExBVEZPUk0oSU9TKQotCi0jaWYgVVNFKENGTkVUV09SSykKLSAgICAgICAgSU5JVChHZXREZWZh
dWx0SFRUUENvb2tpZVN0b3JhZ2UpOwotICAgICAgICBJTklUKENvcHlDcmVkZW50aWFsRnJvbUNG
UGVyc2lzdGVudFN0b3JhZ2UpOwotICAgICAgICBJTklUKFNldENGVVJMUmVxdWVzdFNob3VsZENv
bnRlbnRTbmlmZik7Ci0gICAgICAgIElOSVQoU2V0UmVxdWVzdFN0b3JhZ2VTZXNzaW9uKTsKLSNl
bmRpZgotCi0jaWYgIVBMQVRGT1JNKElPUykKICAgICAgICAgSU5JVChTcGVlY2hTeW50aGVzaXNH
ZXRWb2ljZUlkZW50aWZpZXJzKTsKICAgICAgICAgSU5JVChTcGVlY2hTeW50aGVzaXNHZXREZWZh
dWx0Vm9pY2VJZGVudGlmaWVyRm9yTG9jYWxlKTsKICAgICAgICAgSU5JVChHZXRBWFRleHRNYXJr
ZXJUeXBlSUQpOwpAQCAtMTQxLDE3ICsxMDcsNiBAQCB2b2lkIEluaXRXZWJDb3JlU3lzdGVtSW50
ZXJmYWNlKHZvaWQpCiAgICAgICAgIElOSVQoQWNjZXNzaWJpbGl0eUhhbmRsZUZvY3VzQ2hhbmdl
ZCk7CiAgICAgICAgIElOSVQoQ3JlYXRlQVhVSUVsZW1lbnRSZWYpOwogICAgICAgICBJTklUKFVu
cmVnaXN0ZXJVbmlxdWVJZEZvckVsZW1lbnQpOwotI2VuZGlmCi0KLSAgICAgICAgSU5JVChHZXRD
RlVSTFJlc3BvbnNlTUlNRVR5cGUpOwotICAgICAgICBJTklUKEdldENGVVJMUmVzcG9uc2VVUkwp
OwotICAgICAgICBJTklUKEdldENGVVJMUmVzcG9uc2VIVFRQUmVzcG9uc2UpOwotICAgICAgICBJ
TklUKENvcHlDRlVSTFJlc3BvbnNlU3VnZ2VzdGVkRmlsZW5hbWUpOwotICAgICAgICBJTklUKFNl
dENGVVJMUmVzcG9uc2VNSU1FVHlwZSk7Ci0KLSAgICAgICAgSU5JVChDRlVSTFJlcXVlc3RBbGxv
d0FsbFBvc3RDYWNoaW5nKTsKLQotI2lmICFQTEFURk9STShJT1MpCiAgICAgICAgIElOSVQoTlNF
bGFzdGljRGVsdGFGb3JUaW1lRGVsdGEpOwogICAgICAgICBJTklUKE5TRWxhc3RpY0RlbHRhRm9y
UmVib3VuZERlbHRhKTsKICAgICAgICAgSU5JVChOU1JlYm91bmREZWx0YUZvckVsYXN0aWNEZWx0
YSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>267806</attachid>
            <date>2015-12-22 14:16:16 -0800</date>
            <delta_ts>2015-12-22 15:52:25 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-152463-20151222141540.patch</filename>
            <type>text/plain</type>
            <size>105945</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk0MzcwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjk1YzRmYTEzNDlkZjFk
MTIxYzAyMDg4OGFiY2NhYzQwNWUzYjI2ZC4uMjRiYTllNTAxMTU0NzdkZWVjYWYwMDdmNTJjOTg4
MjY0NzM5NTg3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY1IEBACisyMDE1LTEyLTE5ICBBbmR5
IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBbQ0ZdIFJlcGxhY2UgQ0ZOZXR3
b3JrLXJlbGF0ZWQgV2ViS2l0U3lzdGVtSW50ZXJmYWNlIGNhbGxzIHdpdGggU1BJCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTI0NjMKKworICAgICAg
ICBSZXZpZXdlZCBieSBBbGV4ZXkgUHJvc2t1cnlha292LgorCisgICAgICAgIFJlcGxhY2VkIFdl
YmtpdFN5c3RlbUludGVyZmFjZSBjYWxscyB0aGF0IHdyYXBwZWQgQ0ZOZXR3b3JrIFNQSSB3aXRo
IGRpcmVjdCBjYWxscyB0byBTUEkgdGhhdCBpcyBub3cgZm9yd2FyZAorICAgICAgICBkZWNsYXJl
ZCBpbiBDRk5ldHdvcmtTUEkuaC4KKworICAgICAgICBBbHNvIHJlbW92ZWQgc29tZSB1bnVzZWQg
ZGVjbGFyYXRpb25zIGFuZCByZW5hbWVkIFJlc291cmNlUmVzcG9uc2VNYWMubW0gdG8gUmVzb3Vy
Y2VSZXNwb25zZUNvY29hLm1tLgorCisgICAgICAgICogUGxhdGZvcm1NYWMuY21ha2U6CisgICAg
ICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBsYXRm
b3JtL2lvcy9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlSU9TLm1tOgorICAgICAgICAqIHBsYXRmb3Jt
L21hYy9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmg6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1dl
YkNvcmVTeXN0ZW1JbnRlcmZhY2UubW06CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9OZXR3
b3JrU3RvcmFnZVNlc3Npb24uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2NmL0NyZWRl
bnRpYWxTdG9yYWdlQ0ZOZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y29weUNyZWRlbnRpYWxG
cm9tUHJvdGVjdGlvblNwYWNlKToKKyAgICAgICAgKFdlYkNvcmU6OkNyZWRlbnRpYWxTdG9yYWdl
OjpnZXRGcm9tUGVyc2lzdGVudFN0b3JhZ2UpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsv
Y2YvTmV0d29ya1N0b3JhZ2VTZXNzaW9uQ0ZOZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TmV0
d29ya1N0b3JhZ2VTZXNzaW9uOjpjb29raWVTdG9yYWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9u
ZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZOZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVz
b3VyY2VIYW5kbGU6OmNyZWF0ZUNGVVJMQ29ubmVjdGlvbik6CisgICAgICAgICogcGxhdGZvcm0v
bmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGU6OmNy
ZWF0ZVJlc291cmNlUmVxdWVzdCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jZi9SZXNv
dXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlV2l0aE9wZXJhdGlvblF1ZXVlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGVX
aXRoT3BlcmF0aW9uUXVldWU6OmRpZFJlY2VpdmVSZXNwb25zZSk6CisgICAgICAgICogcGxhdGZv
cm0vbmV0d29yay9jZi9SZXNvdXJjZVJlcXVlc3RDRk5ldC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3Q6OmRvVXBkYXRlUGxhdGZvcm1SZXF1ZXN0KToKKyAgICAgICAgKFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdDo6ZG9VcGRhdGVSZXNvdXJjZVJlcXVlc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0OjpzZXRTdG9yYWdlU2Vzc2lvbik6CisgICAgICAg
IChXZWJDb3JlOjppbml0aWFsaXplTWF4aW11bUhUVFBDb25uZWN0aW9uQ291bnRQZXJIb3N0KToK
KyAgICAgICAgKFdlYkNvcmU6OmluaXRpYWxpemVIVFRQQ29ubmVjdGlvblNldHRpbmdzT25TdGFy
dHVwKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlUmVxdWVzdENGTmV0
Lmg6CisgICAgICAgIChXZWJDb3JlOjp0b1Jlc291cmNlTG9hZFByaW9yaXR5KToKKyAgICAgICAg
KFdlYkNvcmU6OnRvUGxhdGZvcm1SZXF1ZXN0UHJpb3JpdHkpOgorICAgICAgICAqIHBsYXRmb3Jt
L25ldHdvcmsvY2YvUmVzb3VyY2VSZXNwb25zZS5oOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdv
cmsvY2YvUmVzb3VyY2VSZXNwb25zZUNGTmV0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291
cmNlUmVzcG9uc2U6OnBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9uZXR3b3JrL2NmL1N5bmNocm9ub3VzUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxl
Z2F0ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTeW5jaHJvbm91c1Jlc291cmNlSGFuZGxlQ0ZV
UkxDb25uZWN0aW9uRGVsZWdhdGU6OmRpZFJlY2VpdmVSZXNwb25zZSk6CisgICAgICAgICogcGxh
dGZvcm0vbmV0d29yay9jb2NvYS9SZXNvdXJjZVJlcXVlc3RDb2NvYS5tbToKKyAgICAgICAgKFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdDo6ZG9VcGRhdGVSZXNvdXJjZVJlcXVlc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Ojpkb1VwZGF0ZVBsYXRmb3JtUmVxdWVzdCk6Cisg
ICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jb2NvYS9SZXNvdXJjZVJlc3BvbnNlQ29jb2EubW06
IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJj
ZVJlc3BvbnNlTWFjLm1tLgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZTo6cGxh
dGZvcm1DZXJ0aWZpY2F0ZUluZm8pOgorICAgICAgICAoV2ViQ29yZTo6Y29weU5TVVJMUmVzcG9u
c2VTdGF0dXNMaW5lKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2U6OnBsYXRm
b3JtTGF6eUluaXQpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvaW9zL1F1aWNrTG9vay5o
OgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvaW9zL1F1aWNrTG9vay5tbToKKyAgICAgICAg
KiBwbGF0Zm9ybS9uZXR3b3JrL2lvcy9XZWJDb3JlVVJMUmVzcG9uc2VJT1MubW06CisgICAgICAg
IChXZWJDb3JlOjphZGp1c3RNSU1FVHlwZUlmTmVjZXNzYXJ5KToKKyAgICAgICAgKiBwbGF0Zm9y
bS9uZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlJl
c291cmNlSGFuZGxlOjpjcmVhdGVOU1VSTENvbm5lY3Rpb24pOgorICAgICAgICAqIHBsYXRmb3Jt
L25ldHdvcmsvbWFjL1dlYkNvcmVVUkxSZXNwb25zZS5oOgorICAgICAgICAqIHBsYXRmb3JtL25l
dHdvcmsvbWFjL1dlYkNvcmVVUkxSZXNwb25zZS5tbToKKyAgICAgICAgKFdlYkNvcmU6OmFkanVz
dE1JTUVUeXBlSWZOZWNlc3NhcnkpOgorICAgICAgICAqIHBsYXRmb3JtL3NwaS9jZi9DRk5ldHdv
cmtDb25uZWN0aW9uQ2FjaGVTUEkuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9zcGkvY2YvQ0ZOZXR3
b3JrU1BJLmg6CisKIDIwMTUtMTItMjIgIENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJr
aXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxOTQzNjIuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9D
aGFuZ2VMb2cKaW5kZXggZjcyNmEwMWQ3ZDgwNWY1YTJkOWY1NGY5NTYwMWJlM2ZlMjk2ZGFhNS4u
YWFlYTBkZTMyMTQ4OWEwNTI4NzM1NDQyNmM5N2EyNzk4Y2M4MGQ5ZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDIyIEBACisyMDE1LTEyLTE5ICBBbmR5IEVzdGVzICA8YWVzdGVzQGFwcGxl
LmNvbT4KKworICAgICAgICBbQ0ZdIFJlcGxhY2UgQ0ZOZXR3b3JrLXJlbGF0ZWQgV2ViS2l0U3lz
dGVtSW50ZXJmYWNlIGNhbGxzIHdpdGggU1BJCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNTI0NjMKKworICAgICAgICBSZXZpZXdlZCBieSBBbGV4ZXkg
UHJvc2t1cnlha292LgorCisgICAgICAgIFJlcGxhY2VkIFdlYmtpdFN5c3RlbUludGVyZmFjZSBj
YWxscyB0aGF0IHdyYXBwZWQgQ0ZOZXR3b3JrIFNQSSB3aXRoIGRpcmVjdCBjYWxscyB0byBTUEkg
dGhhdCBpcyBub3cgZm9yd2FyZAorICAgICAgICBkZWNsYXJlZCBpbiBDRk5ldHdvcmtTUEkuaC4K
KworICAgICAgICAqIFBsdWdpbnMvSG9zdGVkL0hvc3RlZE5ldHNjYXBlUGx1Z2luU3RyZWFtLm1t
OgorICAgICAgICAoV2ViS2l0OjpIb3N0ZWROZXRzY2FwZVBsdWdpblN0cmVhbTo6ZGlkUmVjZWl2
ZVJlc3BvbnNlKToKKyAgICAgICAgKiBQbHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2luU3RyZWFtLm1t
OgorICAgICAgICAoV2ViTmV0c2NhcGVQbHVnaW5TdHJlYW06OmRpZFJlY2VpdmVSZXNwb25zZSk6
CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViU3lzdGVtSW50ZXJmYWNlLm1tOgorICAgICAg
ICAoSW5pdFdlYkNvcmVTeXN0ZW1JbnRlcmZhY2UpOiBEZWxldGVkLgorICAgICAgICAqIFdlYlZp
ZXcvV2ViUHJlZmVyZW5jZXMubW06CisgICAgICAgICgrW1dlYlByZWZlcmVuY2VzIF9zZXRDdXJy
ZW50TmV0d29ya0xvYWRlclNlc3Npb25Db29raWVBY2NlcHRQb2xpY3k6XSk6CisKIDIwMTUtMTIt
MjAgIERhbiBCZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgdW51
c2VkIHNldFRvb2xiYXJIZWlnaHQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBlMTEzYjIyZmQ3OTZjY2UxNmUzYTA4
MGZkMzBmYzg5MGI3OWZjMmZjLi5jNmM0ZjllMmViNjc0N2IxZTQzMzdjY2IyY2U2OWE5MjZkNjI2
ZDgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTUtMTItMTkgIEFuZHkgRXN0ZXMg
IDxhZXN0ZXNAYXBwbGUuY29tPgorCisgICAgICAgIFtDRl0gUmVwbGFjZSBDRk5ldHdvcmstcmVs
YXRlZCBXZWJLaXRTeXN0ZW1JbnRlcmZhY2UgY2FsbHMgd2l0aCBTUEkKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MjQ2MworCisgICAgICAgIFJldmll
d2VkIGJ5IEFsZXhleSBQcm9za3VyeWFrb3YuCisKKyAgICAgICAgUmVwbGFjZWQgV2Via2l0U3lz
dGVtSW50ZXJmYWNlIGNhbGxzIHRoYXQgd3JhcHBlZCBDRk5ldHdvcmsgU1BJIHdpdGggZGlyZWN0
IGNhbGxzIHRvIFNQSSB0aGF0IGlzIG5vdyBmb3J3YXJkCisgICAgICAgIGRlY2xhcmVkIGluIENG
TmV0d29ya1NQSS5oLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1By
b2Nlc3NDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6aW5pdGlhbGl6ZU5ldHdvcmtTZXR0aW5n
cyk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvbWFjL05ldHdvcmtQcm9jZXNzTWFjLm1tOgor
ICAgICAgICAoV2ViS2l0OjpvdmVycmlkZVN5c3RlbVByb3hpZXMpOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQubW06Cisg
ICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OnNldENvb2tpZUFjY2Vw
dFBvbGljeUZvckFsbENvbnRleHRzKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L21hYy9XZWJTeXN0ZW1JbnRlcmZhY2UubW06CisgICAgICAgIChJbml0V2ViQ29yZVN5c3Rl
bUludGVyZmFjZSk6CisKIDIwMTUtMTItMjIgIEJyZW50IEZ1bGdoYW0gIDxiZnVsZ2hhbUBhcHBs
ZS5jb20+CiAKICAgICAgICAgQWxsb3cgSmF2YVNjcmlwdCB0byBpdGVyYXRlIG92ZXIgcGx1Z2lu
cyBmb3IgbG9jYWwgU2VjdXJpdHlPcmlnaW5zCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Q
bGF0Zm9ybU1hYy5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtTWFjLmNtYWtlCmluZGV4
IDA4ZmMwYjYyNTdlNGM1OWQ3MDJmNWIyZGFmZWMzODM0NGVjZTgxYmMuLmRmNThkMjUyMmQyYjkz
OTc5ZTY5ZGI0YjZiZDAxMTQ3YjgzMGM5MWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1Bs
YXRmb3JtTWFjLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtTWFjLmNtYWtlCkBA
IC01MjAsNiArNTIwLDcgQEAgbGlzdChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCiAgICAgcGxhdGZv
cm0vbmV0d29yay9jb2NvYS9DcmVkZW50aWFsQ29jb2EubW0KICAgICBwbGF0Zm9ybS9uZXR3b3Jr
L2NvY29hL1Byb3RlY3Rpb25TcGFjZUNvY29hLm1tCiAgICAgcGxhdGZvcm0vbmV0d29yay9jb2Nv
YS9SZXNvdXJjZVJlcXVlc3RDb2NvYS5tbQorICAgIHBsYXRmb3JtL25ldHdvcmsvY29jb2EvUmVz
b3VyY2VSZXNwb25zZUNvY29hLm1tCiAKICAgICBwbGF0Zm9ybS9uZXR3b3JrL21hYy9BdXRoZW50
aWNhdGlvbk1hYy5tbQogICAgIHBsYXRmb3JtL25ldHdvcmsvbWFjL0Jsb2JEYXRhRmlsZVJlZmVy
ZW5jZU1hYy5tbQpAQCAtNTMyLDcgKzUzMyw2IEBAIGxpc3QoQVBQRU5EIFdlYkNvcmVfU09VUkNF
UwogICAgIHBsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlRXJyb3JNYWMubW0KICAgICBwbGF0
Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbQogICAgIHBsYXRmb3JtL25ldHdv
cmsvbWFjL1Jlc291cmNlUmVxdWVzdE1hYy5tbQotICAgIHBsYXRmb3JtL25ldHdvcmsvbWFjL1Jl
c291cmNlUmVzcG9uc2VNYWMubW0KICAgICBwbGF0Zm9ybS9uZXR3b3JrL21hYy9TeW5jaHJvbm91
c0xvYWRlckNsaWVudC5tbQogICAgIHBsYXRmb3JtL25ldHdvcmsvbWFjL1VUSVV0aWxpdGllcy5t
bQogICAgIHBsYXRmb3JtL25ldHdvcmsvbWFjL1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFzRGVsZWdh
dGUubW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagppbmRleCAwODk5Y2U5YzVkMzRlNDI3MWI3MDZkMmU1Y2E5MTZkZjUwMjdkNzhiLi40YTI2
YmY5MzU0MmRiZDZmNzQ1YjdkOGRiYTE2NWM4ZjgxMzBlMDE5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xOTc2LDcgKzE5NzYs
NiBAQAogCQk1MTRDNzY1MDBDRTkyMzRFMDA3RUYzQ0QgLyogUmVzb3VyY2VFcnJvck1hYy5tbSBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxNEM3NjQ2MENF
OTIzNEUwMDdFRjNDRCAvKiBSZXNvdXJjZUVycm9yTWFjLm1tICovOyB9OwogCQk1MTRDNzY1MTBD
RTkyMzRFMDA3RUYzQ0QgLyogUmVzb3VyY2VIYW5kbGVNYWMubW0gaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTRDNzY0NzBDRTkyMzRFMDA3RUYzQ0QgLyog
UmVzb3VyY2VIYW5kbGVNYWMubW0gKi87IH07CiAJCTUxNEM3NjUzMENFOTIzNEUwMDdFRjNDRCAv
KiBSZXNvdXJjZVJlcXVlc3RNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1MTRDNzY0OTBDRTkyMzRFMDA3RUYzQ0QgLyogUmVzb3VyY2VSZXF1ZXN0
TWFjLm1tICovOyB9OwotCQk1MTRDNzY1NTBDRTkyMzRGMDA3RUYzQ0QgLyogUmVzb3VyY2VSZXNw
b25zZU1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDUxNEM3NjRCMENFOTIzNEUwMDdFRjNDRCAvKiBSZXNvdXJjZVJlc3BvbnNlTWFjLm1tICovOyB9
OwogCQk1MTRDNzY2RDBDRTkyM0ExMDA3RUYzQ0QgLyogQ3JlZGVudGlhbEJhc2UuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE0Qzc2NTgwQ0U5MjNB
MTAwN0VGM0NEIC8qIENyZWRlbnRpYWxCYXNlLmNwcCAqLzsgfTsKIAkJNTE0Qzc2NkUwQ0U5MjNB
MTAwN0VGM0NEIC8qIENyZWRlbnRpYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDUxNEM3NjU5MENFOTIzQTEwMDdFRjNDRCAvKiBDcmVkZW50aWFsLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTE0Qzc2
NkYwQ0U5MjNBMTAwN0VGM0NEIC8qIEZvcm1EYXRhLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxNEM3NjVBMENFOTIzQTEwMDdFRjNDRCAvKiBGb3Jt
RGF0YS5jcHAgKi87IH07CkBAIC00MDEyLDYgKzQwMTEsNyBAQAogCQlBMTA0RjI0NDE0QzcxRjdB
MDA5RTJDMjMgLyogQ2FjaGVkU1ZHRG9jdW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExMDRGMjQyMTRDNzFGN0EwMDlFMkMyMyAvKiBDYWNoZWRT
VkdEb2N1bWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCUExMEJCNTg1MTQ4NEUzQTcwMEIyRTg3QSAvKiBSZW5kZXJTVkdSZWN0LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTBCQjU4MzE0ODRFM0E3
MDBCMkU4N0EgLyogUmVuZGVyU1ZHUmVjdC5oICovOyB9OwogCQlBMTBCQjU4QjE0ODRFM0IzMDBC
MkU4N0EgLyogUmVuZGVyU1ZHU2hhcGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEExMEJCNTg5MTQ4NEUzQjMwMEIyRTg3QSAvKiBSZW5kZXJTVkdTaGFw
ZS5oICovOyB9OworCQlBMTBEN0ZFQzFDMjY3NkQxMDBDNkMxMTUgLyogQ0ZOZXR3b3JrQ29ubmVj
dGlvbkNhY2hlU1BJLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBBMTBEN0ZFQjFDMjY3NkQxMDBDNkMxMTUgLyogQ0ZOZXR3b3JrQ29ubmVjdGlvbkNhY2hl
U1BJLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
QTEwREJGNDcxOEY5MjMxNzAwMEQ3MEM2IC8qIFF1aWNrTG9va0hhbmRsZUNsaWVudC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTEwREJGNDYxOEY5MjMx
NzAwMEQ3MEM2IC8qIFF1aWNrTG9va0hhbmRsZUNsaWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUExMERDNzZBMTQ3NDdCQUIwMDVFMjQ3MSAv
KiBTdHlsZUdyaWREYXRhLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEExMERDNzY4MTQ3NDdCQUIwMDVFMjQ3MSAvKiBTdHlsZUdyaWREYXRhLmNwcCAq
LzsgfTsKIAkJQTEwREM3NkIxNDc0N0JBQjAwNUUyNDcxIC8qIFN0eWxlR3JpZERhdGEuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExMERDNzY5MTQ3NDdC
QUIwMDVFMjQ3MSAvKiBTdHlsZUdyaWREYXRhLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTQwOTUsNiArNDA5NSw3IEBACiAJCUExRUQ3NzhDMUJF
MzI5NDAwMERDMTc5MSAvKiBEZXZpY2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQTFFRDc3OEExQkUzMjkzRjAwREMxNzkxIC8qIERldmljZS5jcHAg
Ki87IH07CiAJCUExRUQ3NzhEMUJFMzI5NDAwMERDMTc5MSAvKiBEZXZpY2UuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExRUQ3NzhCMUJFMzI5NDAwMERD
MTc5MSAvKiBEZXZpY2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQlBMUVENzc4RjFCRTQyOTE4MDBEQzE3OTEgLyogVUlLaXRTUEkuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExRUQ3NzhFMUJFNDI5MTgw
MERDMTc5MSAvKiBVSUtpdFNQSS5oICovOyB9OworCQlBMUY3OEQwQzFDMjU0MjRDMDAyNDU0NDYg
LyogUmVzb3VyY2VSZXNwb25zZUNvY29hLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQTFGNzhEMEIxQzI1NDIyQzAwMjQ1NDQ2IC8qIFJlc291cmNlUmVz
cG9uc2VDb2NvYS5tbSAqLzsgfTsKIAkJQTJCOTIxNzMxNkM1Q0M0MjAwNDFEQ0Q5IC8qIEludFJl
Y3RFeHRlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEEyQjkyMTcyMTZDNUNDNDIwMDQxRENEOSAvKiBJbnRSZWN0RXh0ZW50LmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQTMxQzRFNEQxNkUwMkFBNjAw
MkY3OTU3IC8qIE9FU1RleHR1cmVIYWxmRmxvYXQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTMxQzRFNEMxNkUwMkFBNjAwMkY3OTU3IC8qIE9FU1Rl
eHR1cmVIYWxmRmxvYXQuY3BwICovOyB9OwogCQlBMzFDNEU0RjE2RTAyQUI0MDAyRjc5NTcgLyog
T0VTVGV4dHVyZUhhbGZGbG9hdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQTMxQzRFNEUxNkUwMkFCNDAwMkY3OTU3IC8qIE9FU1RleHR1cmVIYWxmRmxv
YXQuaCAqLzsgfTsKQEAgLTYxMjMsNyArNjEyNCw2IEBACiAJCUNFN0IyREI0MTU4NkFCQUQwMDk4
QjNGQSAvKiBBbHRlcm5hdGl2ZVRleHRVSUNvbnRyb2xsZXIubW0gaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRTdCMkRCMDE1ODZBQkFEMDA5OEIzRkEgLyog
QWx0ZXJuYXRpdmVUZXh0VUlDb250cm9sbGVyLm1tICovOyB9OwogCQlDRTdCMkRCNTE1ODZBQkFE
MDA5OEIzRkEgLyogVGV4dEFsdGVybmF0aXZlV2l0aFJhbmdlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRTdCMkRCMTE1ODZBQkFEMDA5OEIzRkEgLyog
VGV4dEFsdGVybmF0aXZlV2l0aFJhbmdlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJQ0U3QjJEQjYxNTg2QUJBRDAwOThCM0ZBIC8qIFRleHRBbHRl
cm5hdGl2ZVdpdGhSYW5nZS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IENFN0IyREIyMTU4NkFCQUQwMDk4QjNGQSAvKiBUZXh0QWx0ZXJuYXRpdmVXaXRo
UmFuZ2UubW0gKi87IH07Ci0JCUNFODI0NUYwMTlCNjcxQkEwMEFDMDEyMiAvKiBDRk5ldHdvcmtD
b25uZWN0aW9uQ2FjaGVTUEkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IENFODI0NUVGMTlCNjcxQkEwMEFDMDEyMiAvKiBDRk5ldHdvcmtDb25uZWN0aW9u
Q2FjaGVTUEkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQlDRTk1MjA4QTE4MTFCNDc1MDA3QTUzOTIgLyogV2ViU2FmZUluY3JlbWVudGFsU3dlZXBl
cklPUy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzJD
NENCMUQxNjFBMTMxMjAwRDIxNERBIC8qIFdlYlNhZmVJbmNyZW1lbnRhbFN3ZWVwZXJJT1MuaCAq
LzsgfTsKIAkJQ0VDMzM3QUQxQTQ2MDcxRjAwOUI4NTIzIC8qIFNlcnZlcnNTUEkuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENFQzMzN0FDMUE0NjA3MUYw
MDlCODUyMyAvKiBTZXJ2ZXJzU1BJLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJQ0VDMzM3QUYxQTQ2MDg2RDAwOUI4NTIzIC8qIEdyYXBoaWNzU2Vy
dmljZXNTUEkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IENFQzMzN0FFMUE0NjA4NkQwMDlCODUyMyAvKiBHcmFwaGljc1NlcnZpY2VzU1BJLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTkzOTksNyArOTM5
OSw2IEBACiAJCTUxNEM3NjQ2MENFOTIzNEUwMDdFRjNDRCAvKiBSZXNvdXJjZUVycm9yTWFjLm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUmVzb3VyY2VFcnJvck1h
Yy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTE0Qzc2NDcwQ0U5MjM0RTAwN0VG
M0NEIC8qIFJlc291cmNlSGFuZGxlTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBwYXRoID0gUmVzb3VyY2VIYW5kbGVNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTUxNEM3NjQ5MENFOTIzNEUwMDdFRjNDRCAvKiBSZXNvdXJjZVJlcXVlc3RNYWMubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBSZXNvdXJjZVJlcXVlc3RN
YWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTUxNEM3NjRCMENFOTIzNEUwMDdF
RjNDRCAvKiBSZXNvdXJjZVJlc3BvbnNlTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBwYXRoID0gUmVzb3VyY2VSZXNwb25zZU1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNTE0Qzc2NTgwQ0U5MjNBMTAwN0VGM0NEIC8qIENyZWRlbnRpYWxCYXNlLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENyZWRlbnRpYWxCYXNlLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTE0Qzc2NTkwQ0U5MjNBMTAwN0VGM0NE
IC8qIENyZWRlbnRpYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ3JlZGVu
dGlhbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTRDNzY1QTBDRTkyM0ExMDA3
RUYzQ0QgLyogRm9ybURhdGEuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gRm9ybURhdGEuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTE1NzUsNiAr
MTE1NzQsNyBAQAogCQlBMTBCQjU4MzE0ODRFM0E3MDBCMkU4N0EgLyogUmVuZGVyU1ZHUmVjdC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW5kZXJTVkdSZWN0Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUExMEJCNTg4MTQ4NEUzQjMwMEIyRTg3QSAvKiBSZW5k
ZXJTVkdTaGFwZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW5k
ZXJTVkdTaGFwZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUExMEJCNTg5MTQ4
NEUzQjMwMEIyRTg3QSAvKiBSZW5kZXJTVkdTaGFwZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBSZW5kZXJTVkdTaGFwZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlBMTBEN0ZFQjFDMjY3NkQxMDBDNkMxMTUgLyogQ0ZOZXR3b3JrQ29ubmVjdGlvbkNhY2hlU1BJ
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENGTmV0d29ya0Nvbm5lY3Rpb25D
YWNoZVNQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMTBEQkY0NjE4RjkyMzE3
MDAwRDcwQzYgLyogUXVpY2tMb29rSGFuZGxlQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFF1aWNrTG9va0hhbmRsZUNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlBMTBEQzc2ODE0NzQ3QkFCMDA1RTI0NzEgLyogU3R5bGVHcmlkRGF0YS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTdHlsZUdyaWREYXRhLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTEwREM3NjkxNDc0N0JBQjAwNUUyNDcxIC8q
IFN0eWxlR3JpZERhdGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3R5bGVH
cmlkRGF0YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTE2NTQsNiArMTE2NTQs
NyBAQAogCQlBMUVENzc4QTFCRTMyOTNGMDBEQzE3OTEgLyogRGV2aWNlLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERldmljZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUExRUQ3NzhCMUJFMzI5NDAwMERDMTc5MSAvKiBEZXZpY2UuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGV2aWNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUExRUQ3NzhFMUJFNDI5MTgwMERDMTc5MSAvKiBVSUtpdFNQSS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBVSUtpdFNQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlBMUY3OEQwQjFDMjU0MjJDMDAyNDU0NDYgLyogUmVzb3VyY2VSZXNwb25zZUNv
Y29hLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUmVzb3VyY2VS
ZXNwb25zZUNvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMjA4RTIyMkE1
NkEwQzc1NzVGMkE3MkUgLyogUmVuZGVyTWF0aE1MTWVuY2xvc2UuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVyTWF0aE1MTWVuY2xvc2UuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQTJCOTIxNzIxNkM1Q0M0MjAwNDFEQ0Q5IC8qIEludFJlY3RFeHRlbnQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW50UmVjdEV4dGVudC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMzFDNEU0QzE2RTAyQUE2MDAyRjc5NTcgLyogT0VT
VGV4dHVyZUhhbGZGbG9hdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBPRVNUZXh0dXJlSGFsZkZsb2F0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTEzOTk3LDcgKzEzOTk4LDYgQEAKIAkJQ0U3QjJEQjAxNTg2QUJBRDAwOThCM0ZBIC8qIEFsdGVy
bmF0aXZlVGV4dFVJQ29udHJvbGxlci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgcGF0aCA9IEFsdGVybmF0aXZlVGV4dFVJQ29udHJvbGxlci5tbTsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQ0U3QjJEQjExNTg2QUJBRDAwOThCM0ZBIC8qIFRleHRBbHRlcm5hdGl2
ZVdpdGhSYW5nZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUZXh0QWx0ZXJu
YXRpdmVXaXRoUmFuZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0U3QjJEQjIx
NTg2QUJBRDAwOThCM0ZBIC8qIFRleHRBbHRlcm5hdGl2ZVdpdGhSYW5nZS5tbSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFRleHRBbHRlcm5hdGl2ZVdpdGhSYW5nZS5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQ0U4MjQ1RUYxOUI2NzFCQTAwQUMwMTIy
IC8qIENGTmV0d29ya0Nvbm5lY3Rpb25DYWNoZVNQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBDRk5ldHdvcmtDb25uZWN0aW9uQ2FjaGVTUEkuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQ0VDMzM3QUMxQTQ2MDcxRjAwOUI4NTIzIC8qIFNlcnZlcnNTUEkuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2VydmVyc1NQSS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlDRUMzMzdBRTFBNDYwODZEMDA5Qjg1MjMgLyogR3JhcGhpY3NT
ZXJ2aWNlc1NQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHcmFwaGljc1Nl
cnZpY2VzU1BJLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNFQ0FERkMyMTUzNzc4
RkYwMEUzNzA2OCAvKiBEaWN0YXRpb25BbHRlcm5hdGl2ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBEaWN0YXRpb25BbHRlcm5hdGl2ZS5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC0xNzIyNSw3ICsxNzIyNSw3IEBACiAJCQljaGlsZHJlbiA9ICgK
IAkJCQlFMTBBMzlFMTFBRTg0RTcxMDBBMjlBRTMgLyogQ0ZCdW5kbGVTUEkuaCAqLywKIAkJCQk2
NTA4NkRBNzE5QUMxNzE5MDA5QUY0NkIgLyogQ0ZMb2NhbGVTUEkuaCAqLywKLQkJCQlDRTgyNDVF
RjE5QjY3MUJBMDBBQzAxMjIgLyogQ0ZOZXR3b3JrQ29ubmVjdGlvbkNhY2hlU1BJLmggKi8sCisJ
CQkJQTEwRDdGRUIxQzI2NzZEMTAwQzZDMTE1IC8qIENGTmV0d29ya0Nvbm5lY3Rpb25DYWNoZVNQ
SS5oICovLAogCQkJCUNFMTI1MjVBMUExQzAxODIwMDg2NDQ4MCAvKiBDRk5ldHdvcmtTUEkuaCAq
LywKIAkJCQk0NDQ5QTQwNDFBOTY0QjAwMDBCNjRBRDUgLyogQ29yZU1lZGlhU1BJLmggKi8sCiAJ
CQkpOwpAQCAtMTc0OTAsNyArMTc0OTAsNiBAQAogCQkJCTUxNEM3NjQ2MENFOTIzNEUwMDdFRjND
RCAvKiBSZXNvdXJjZUVycm9yTWFjLm1tICovLAogCQkJCTUxNEM3NjQ3MENFOTIzNEUwMDdFRjND
RCAvKiBSZXNvdXJjZUhhbmRsZU1hYy5tbSAqLywKIAkJCQk1MTRDNzY0OTBDRTkyMzRFMDA3RUYz
Q0QgLyogUmVzb3VyY2VSZXF1ZXN0TWFjLm1tICovLAotCQkJCTUxNEM3NjRCMENFOTIzNEUwMDdF
RjNDRCAvKiBSZXNvdXJjZVJlc3BvbnNlTWFjLm1tICovLAogCQkJCUUxODA4MTE0MTZGQ0Y5Q0Iw
MEI4MEQwNyAvKiBTeW5jaHJvbm91c0xvYWRlckNsaWVudC5tbSAqLywKIAkJCQkxRkFGQkYxNjE1
QTVGQTUyMDAwODNBMjAgLyogVVRJVXRpbGl0aWVzLmggKi8sCiAJCQkJMUZBRkJGMTcxNUE1RkE1
MjAwMDgzQTIwIC8qIFVUSVV0aWxpdGllcy5tbSAqLywKQEAgLTE3ODY1LDYgKzE3ODY0LDcgQEAK
IAkJCQkzNzJBREEzNzE5N0Y0N0I5MDBGQzUwMUUgLyogUHJvdGVjdGlvblNwYWNlQ29jb2EuaCAq
LywKIAkJCQkzNzJBREEzOTE5N0Y2ODc2MDBGQzUwMUUgLyogUHJvdGVjdGlvblNwYWNlQ29jb2Eu
bW0gKi8sCiAJCQkJN0U3REUxRkMxOTVDRUYyNjAwMzUzNjNCIC8qIFJlc291cmNlUmVxdWVzdENv
Y29hLm1tICovLAorCQkJCUExRjc4RDBCMUMyNTQyMkMwMDI0NTQ0NiAvKiBSZXNvdXJjZVJlc3Bv
bnNlQ29jb2EubW0gKi8sCiAJCQkpOwogCQkJcGF0aCA9IGNvY29hOwogCQkJc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsKQEAgLTI0NjY4LDYgKzI0NjY4LDcgQEAKIAkJCQlBQjIzQTMyODA5QkJBN0Qw
MDA2N0NDNTMgLyogQmVmb3JlVGV4dEluc2VydGVkRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTg1MDMxQjNEMEE0NEVGQzcwMEY5OTJFMCAvKiBCZWZvcmVVbmxvYWRFdmVudC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQjJDM0RBMjQwRDAwNkMxRDAwRUY2RjI2IC8qIEJpZGlDb250ZXh0LmggaW4g
SGVhZGVycyAqLywKKwkJCQlBMTBEN0ZFQzFDMjY3NkQxMDBDNkMxMTUgLyogQ0ZOZXR3b3JrQ29u
bmVjdGlvbkNhY2hlU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMkMzREEyNTBEMDA2QzFEMDBF
RjZGMjYgLyogQmlkaVJlc29sdmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0U3ODk4NjExMjBF
N0E2MDA2MEVDRTUgLyogQmlkaVJ1bi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThDNDAyOTMxMzQ4
QjIyMjAwNjNGMUU1IC8qIEJpZGlSdW5MaXN0LmggaW4gSGVhZGVycyAqLywKQEAgLTI0NzQ5LDcg
KzI0NzUwLDYgQEAKIAkJCQlDREU4QjVGMTFBNjk3NzhCMDBCNEI2NkEgLyogQ0RNU2Vzc2lvbkNs
ZWFyS2V5LmggaW4gSGVhZGVycyAqLywKIAkJCQk1RkE5MDRDQTE3OEU2MUY1MDA0QzhBMkQgLyog
Q2VydGlmaWNhdGVJbmZvLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMTBBMzlFMjFBRTg0RTcxMDBB
MjlBRTMgLyogQ0ZCdW5kbGVTUEkuaCBpbiBIZWFkZXJzICovLAotCQkJCUNFODI0NUYwMTlCNjcx
QkEwMEFDMDEyMiAvKiBDRk5ldHdvcmtDb25uZWN0aW9uQ2FjaGVTUEkuaCBpbiBIZWFkZXJzICov
LAogCQkJCUNFMTI1MjVCMUExQzAxODIwMDg2NDQ4MCAvKiBDRk5ldHdvcmtTUEkuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUUxQThFNTY3MTc1NTJCMkEwMDc0ODhFNyAvKiBDRlVSTEV4dHJhcy5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJRkUzNkZEMTUxNkM3ODI2NTAwRjg4N0MxIC8qIENoYW5nZVZlcnNp
b25EYXRhLmggaW4gSGVhZGVycyAqLywKQEAgLTI5MDY0LDYgKzI5MDY0LDcgQEAKIAkJCQk4NTA2
NTcwMTBBQUI0NzYzMDAyRDE1QzAgLyogRE9NU3R5bGVTaGVldC5tbSBpbiBTb3VyY2VzICovLAog
CQkJCTg1MDY1NzAzMEFBQjQ3NjMwMDJEMTVDMCAvKiBET01TdHlsZVNoZWV0TGlzdC5tbSBpbiBT
b3VyY2VzICovLAogCQkJCTg1QUNBOTlEMEE5QjU3NTkwMDY3MUU5MCAvKiBET01UZXh0Lm1tIGlu
IFNvdXJjZXMgKi8sCisJCQkJQTFGNzhEMEMxQzI1NDI0QzAwMjQ1NDQ2IC8qIFJlc291cmNlUmVz
cG9uc2VDb2NvYS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTkzM0ExNEFBMEI3RDFEMDkwMEE1M0ZG
RCAvKiBET01UZXh0RXZlbnQubW0gaW4gU291cmNlcyAqLywKIAkJCQkxODg2MDRCMzBGMkU2NTRB
MDAwQjY0NDMgLyogRE9NVGltZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNzZGQzJCMEIxMjM3
MERBMDAwNkE5OTFBIC8qIERPTVRva2VuTGlzdC5jcHAgaW4gU291cmNlcyAqLywKQEAgLTMwNzg1
LDcgKzMwNzg2LDYgQEAKIAkJCQk1MTRDNzY1MzBDRTkyMzRFMDA3RUYzQ0QgLyogUmVzb3VyY2VS
ZXF1ZXN0TWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNTE0Qzc2N0UwQ0U5MjNBMTAwN0VGM0NE
IC8qIFJlc291cmNlUmVzcG9uc2VCYXNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdFRTY4NDcx
MTJEMjZFMzgwMEU3OTQxNSAvKiBSZXNvdXJjZVJlc3BvbnNlQ0ZOZXQuY3BwIGluIFNvdXJjZXMg
Ki8sCi0JCQkJNTE0Qzc2NTUwQ0U5MjM0RjAwN0VGM0NEIC8qIFJlc291cmNlUmVzcG9uc2VNYWMu
bW0gaW4gU291cmNlcyAqLywKIAkJCQlBREJBRDZFRTFCQ0REOTU1MDAzODEzMjUgLyogUmVzb3Vy
Y2VVc2FnZU92ZXJsYXkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQURGRTJCNTUxQkQ1RjYxMjAw
REFCNDU3IC8qIFJlc291cmNlVXNhZ2VPdmVybGF5Q29jb2EubW0gaW4gU291cmNlcyAqLywKIAkJ
CQlGRDMxNjBBNDEyQjAyNkY3MDBDMUEzNTkgLyogUmV2ZXJiLmNwcCBpbiBTb3VyY2VzICovLApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYkNvcmVTeXN0ZW1JbnRl
cmZhY2VJT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViQ29yZVN5c3RlbUlu
dGVyZmFjZUlPUy5tbQppbmRleCA0ZTMwMzY2ZDRlYjdmYWIxODhkZTRjYWU5MGY5ZDU1MTFmOTA2
ZGFiLi4zNWM3NGY1Nzc0ZTc3MWI2NTA1MTI3NDRmNDdmMDhlZjJhZDBhNDAyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViQ29yZVN5c3RlbUludGVyZmFjZUlPUy5t
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViQ29yZVN5c3RlbUludGVyZmFj
ZUlPUy5tbQpAQCAtMjcsNTQgKzI3LDI3IEBACiAjaW1wb3J0ICJXZWJDb3JlU3lzdGVtSW50ZXJm
YWNlLmgiCiAKIFdFQkNPUkVfRVhQT1JUIHZvaWQgKCp3a0NBTGF5ZXJFbnVtZXJhdGVSZWN0c0Jl
aW5nRHJhd25XaXRoQmxvY2spKENBTGF5ZXIgKiwgQ0dDb250ZXh0UmVmIGNvbnRleHQsIHZvaWQg
KF5ibG9jaykoQ0dSZWN0IHJlY3QpKTsKLVdFQkNPUkVfRVhQT1JUIEJPT0wgKCp3a0NHQ29udGV4
dEdldFNob3VsZFNtb290aEZvbnRzKShDR0NvbnRleHRSZWYpOwogV0VCQ09SRV9FWFBPUlQgQ0dQ
YXR0ZXJuUmVmICgqd2tDR1BhdHRlcm5DcmVhdGVXaXRoSW1hZ2VBbmRUcmFuc2Zvcm0pKENHSW1h
Z2VSZWYsIENHQWZmaW5lVHJhbnNmb3JtLCBpbnQpOwogV0VCQ09SRV9FWFBPUlQgdm9pZCAoKndr
Q2xlYXJHbHlwaFZlY3Rvcikodm9pZCogZ2x5cGhzKTsKIFdFQkNPUkVfRVhQT1JUIE9TU3RhdHVz
ICgqd2tDb252ZXJ0Q2hhclRvR2x5cGhzKSh2b2lkKiBzdHlsZUdyb3VwLCBjb25zdCBVbmlDaGFy
KiwgdW5zaWduZWQgbnVtQ2hhcmFjdGVycywgdm9pZCogZ2x5cGhzKTsKLVdFQkNPUkVfRVhQT1JU
IE5TRGF0ZSAqKCp3a0dldE5TVVJMUmVzcG9uc2VMYXN0TW9kaWZpZWREYXRlKShOU1VSTFJlc3Bv
bnNlICpyZXNwb25zZSk7CiBXRUJDT1JFX0VYUE9SVCBib29sICgqd2tDR0NvbnRleHRJc1BERkNv
bnRleHQpKENHQ29udGV4dFJlZik7Ci1XRUJDT1JFX0VYUE9SVCBOU1N0cmluZyogKCp3a0NvcHlO
U1VSTFJlc3BvbnNlU3RhdHVzTGluZSkoTlNVUkxSZXNwb25zZSopOwotV0VCQ09SRV9FWFBPUlQg
dm9pZCAoKndrU2V0TlNVUkxSZXF1ZXN0U2hvdWxkQ29udGVudFNuaWZmKShOU011dGFibGVVUkxS
ZXF1ZXN0ICosIEJPT0wpOwogV0VCQ09SRV9FWFBPUlQgaWQgKCp3a0NyZWF0ZU5TVVJMQ29ubmVj
dGlvbkRlbGVnYXRlUHJveHkpKHZvaWQpOwotV0VCQ09SRV9FWFBPUlQgdW5zaWduZWQgKCp3a0lu
aXRpYWxpemVNYXhpbXVtSFRUUENvbm5lY3Rpb25Db3VudFBlckhvc3QpKHVuc2lnbmVkIHByZWZl
cnJlZENvbm5lY3Rpb25Db3VudCk7Ci1XRUJDT1JFX0VYUE9SVCBpbnQgKCp3a0dldEhUVFBSZXF1
ZXN0UHJpb3JpdHkpKENGVVJMUmVxdWVzdFJlZik7Ci1XRUJDT1JFX0VYUE9SVCB2b2lkICgqd2tT
ZXRIVFRQUmVxdWVzdE1heGltdW1Qcmlvcml0eSkoaW50IHByaW9yaXR5KTsKLVdFQkNPUkVfRVhQ
T1JUIHZvaWQgKCp3a1NldEhUVFBSZXF1ZXN0UHJpb3JpdHkpKENGVVJMUmVxdWVzdFJlZiwgaW50
IHByaW9yaXR5KTsKLVdFQkNPUkVfRVhQT1JUIHZvaWQgKCp3a1NldEhUVFBSZXF1ZXN0TWluaW11
bUZhc3RMYW5lUHJpb3JpdHkpKGludCBwcmlvcml0eSk7Ci1XRUJDT1JFX0VYUE9SVCB2b2lkICgq
d2tIVFRQUmVxdWVzdEVuYWJsZVBpcGVsaW5pbmcpKENGVVJMUmVxdWVzdFJlZik7CiBXRUJDT1JF
X0VYUE9SVCB2b2lkICgqd2tTZXRDT05ORUNUUHJveHlGb3JTdHJlYW0pKENGUmVhZFN0cmVhbVJl
ZiwgQ0ZTdHJpbmdSZWYgcHJveHlIb3N0LCBDRk51bWJlclJlZiBwcm94eVBvcnQpOwogV0VCQ09S
RV9FWFBPUlQgdm9pZCAoKndrU2V0Q09OTkVDVFByb3h5QXV0aG9yaXphdGlvbkZvclN0cmVhbSko
Q0ZSZWFkU3RyZWFtUmVmLCBDRlN0cmluZ1JlZiBwcm94eUF1dGhvcml6YXRpb25TdHJpbmcpOwog
V0VCQ09SRV9FWFBPUlQgdm9pZCAoKndrU2V0Q29va2llU3RvcmFnZVByaXZhdGVCcm93c2luZ0Vu
YWJsZWQpKEJPT0wpOwogV0VCQ09SRV9FWFBPUlQgQ0ZIVFRQTWVzc2FnZVJlZiAoKndrQ29weUNP
Tk5FQ1RQcm94eVJlc3BvbnNlKShDRlJlYWRTdHJlYW1SZWYsIENGVVJMUmVmIHJlc3BvbnNlVVJM
LCBDRlN0cmluZ1JlZiBwcm94eUhvc3QsIENGTnVtYmVyUmVmIHByb3h5UG9ydCk7CiBXRUJDT1JF
X0VYUE9SVCB2b2lkICgqd2tTZXRMYXllckNvbnRlbnRzU2NhbGUpKENBTGF5ZXIgKik7Ci1XRUJD
T1JFX0VYUE9SVCB2b2lkICgqd2tDRlVSTFJlcXVlc3RBbGxvd0FsbFBvc3RDYWNoaW5nKShDRlVS
TFJlcXVlc3RSZWYpOwotV0VCQ09SRV9FWFBPUlQgQ0ZBcnJheVJlZiAoKndrQ29weU5TVVJMUmVz
cG9uc2VDZXJ0aWZpY2F0ZUNoYWluKShOU1VSTFJlc3BvbnNlKik7CiBXRUJDT1JFX0VYUE9SVCBD
RlN0cmluZ0VuY29kaW5nICgqd2tHZXRXZWJEZWZhdWx0Q0ZTdHJpbmdFbmNvZGluZykodm9pZCk7
CiAKLSNpZiBVU0UoQ0ZORVRXT1JLKQotV0VCQ09SRV9FWFBPUlQgQ0ZIVFRQQ29va2llU3RvcmFn
ZVJlZiAoKndrR2V0RGVmYXVsdEhUVFBDb29raWVTdG9yYWdlKSgpOwotV0VCQ09SRV9FWFBPUlQg
V0tDRlVSTENyZWRlbnRpYWxSZWYgKCp3a0NvcHlDcmVkZW50aWFsRnJvbUNGUGVyc2lzdGVudFN0
b3JhZ2UpKENGVVJMUHJvdGVjdGlvblNwYWNlUmVmIHByb3RlY3Rpb25TcGFjZSk7Ci1XRUJDT1JF
X0VYUE9SVCB2b2lkICgqd2tTZXRDRlVSTFJlcXVlc3RTaG91bGRDb250ZW50U25pZmYpKENGTXV0
YWJsZVVSTFJlcXVlc3RSZWYsIGJvb2wpOwotV0VCQ09SRV9FWFBPUlQgdm9pZCAoKndrU2V0UmVx
dWVzdFN0b3JhZ2VTZXNzaW9uKShDRlVSTFN0b3JhZ2VTZXNzaW9uUmVmLCBDRk11dGFibGVVUkxS
ZXF1ZXN0UmVmKTsKLSNlbmRpZgotCiBXRUJDT1JFX0VYUE9SVCBDRlVSTFN0b3JhZ2VTZXNzaW9u
UmVmICgqd2tDcmVhdGVQcml2YXRlU3RvcmFnZVNlc3Npb24pKENGU3RyaW5nUmVmKTsKIFdFQkNP
UkVfRVhQT1JUIE5TVVJMUmVxdWVzdCogKCp3a0NvcHlSZXF1ZXN0V2l0aFN0b3JhZ2VTZXNzaW9u
KShDRlVSTFN0b3JhZ2VTZXNzaW9uUmVmLCBOU1VSTFJlcXVlc3QqKTsKLVdFQkNPUkVfRVhQT1JU
IENGSFRUUENvb2tpZVN0b3JhZ2VSZWYgKCp3a0NvcHlIVFRQQ29va2llU3RvcmFnZSkoQ0ZVUkxT
dG9yYWdlU2Vzc2lvblJlZik7CiBXRUJDT1JFX0VYUE9SVCB1bnNpZ25lZCAoKndrR2V0SFRUUENv
b2tpZUFjY2VwdFBvbGljeSkoQ0ZIVFRQQ29va2llU3RvcmFnZVJlZik7Ci1XRUJDT1JFX0VYUE9S
VCB2b2lkICgqd2tTZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KShDRkhUVFBDb29raWVTdG9yYWdl
UmVmLCB1bnNpZ25lZCk7CiBXRUJDT1JFX0VYUE9SVCBOU0FycmF5ICooKndrSFRUUENvb2tpZXMp
KENGSFRUUENvb2tpZVN0b3JhZ2VSZWYpOwogV0VCQ09SRV9FWFBPUlQgTlNBcnJheSAqKCp3a0hU
VFBDb29raWVzRm9yVVJMKShDRkhUVFBDb29raWVTdG9yYWdlUmVmLCBOU1VSTCAqLCBOU1VSTCAq
KTsKIFdFQkNPUkVfRVhQT1JUIHZvaWQgKCp3a1NldEhUVFBDb29raWVzRm9yVVJMKShDRkhUVFBD
b29raWVTdG9yYWdlUmVmLCBOU0FycmF5ICosIE5TVVJMICosIE5TVVJMICopOwogV0VCQ09SRV9F
WFBPUlQgdm9pZCAoKndrRGVsZXRlQWxsSFRUUENvb2tpZXMpKENGSFRUUENvb2tpZVN0b3JhZ2VS
ZWYpOwogV0VCQ09SRV9FWFBPUlQgdm9pZCAoKndrRGVsZXRlSFRUUENvb2tpZSkoQ0ZIVFRQQ29v
a2llU3RvcmFnZVJlZiwgTlNIVFRQQ29va2llICopOwogCi1XRUJDT1JFX0VYUE9SVCBDRlN0cmlu
Z1JlZiAoKndrR2V0Q0ZVUkxSZXNwb25zZU1JTUVUeXBlKShDRlVSTFJlc3BvbnNlUmVmKTsKLVdF
QkNPUkVfRVhQT1JUIENGVVJMUmVmICgqd2tHZXRDRlVSTFJlc3BvbnNlVVJMKShDRlVSTFJlc3Bv
bnNlUmVmKTsKLVdFQkNPUkVfRVhQT1JUIENGSFRUUE1lc3NhZ2VSZWYgKCp3a0dldENGVVJMUmVz
cG9uc2VIVFRQUmVzcG9uc2UpKENGVVJMUmVzcG9uc2VSZWYpOwotV0VCQ09SRV9FWFBPUlQgQ0ZT
dHJpbmdSZWYgKCp3a0NvcHlDRlVSTFJlc3BvbnNlU3VnZ2VzdGVkRmlsZW5hbWUpKENGVVJMUmVz
cG9uc2VSZWYpOwotV0VCQ09SRV9FWFBPUlQgdm9pZCAoKndrU2V0Q0ZVUkxSZXNwb25zZU1JTUVU
eXBlKShDRlVSTFJlc3BvbnNlUmVmLCBDRlN0cmluZ1JlZiBtaW1lVHlwZSk7Ci0KIFdFQkNPUkVf
RVhQT1JUIHZvaWQoKndrRGVzdHJveVJlbmRlcmluZ1Jlc291cmNlcykodm9pZCk7CiAKIFdFQkNP
UkVfRVhQT1JUIGJvb2wgKCp3a0NhcHRpb25BcHBlYXJhbmNlSGFzVXNlclByZWZlcmVuY2VzKSh2
b2lkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJDb3JlU3lz
dGVtSW50ZXJmYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViQ29yZVN5c3Rl
bUludGVyZmFjZS5oCmluZGV4IDYwYjQ4OTA1NzNhZDZhODVkM2IwYTM3M2NjOGNhMjVmZjM5ZjAy
MTEuLmE5ZmFjYjRmMmE5MzY1YjllZDBmZWQ1ZTk2YTE5Yzk3MGE1YThkYTYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYkNvcmVTeXN0ZW1JbnRlcmZhY2UuaApA
QCAtMTIxLDcgKzEyMSw2IEBAIGV4dGVybiAiQyIgewogZXh0ZXJuIHZvaWQgKCp3a0FkdmFuY2VE
ZWZhdWx0QnV0dG9uUHVsc2VBbmltYXRpb24pKE5TQnV0dG9uQ2VsbCAqKTsKIGV4dGVybiB2b2lk
ICgqd2tDQUxheWVyRW51bWVyYXRlUmVjdHNCZWluZ0RyYXduV2l0aEJsb2NrKShDQUxheWVyICos
IENHQ29udGV4dFJlZiwgdm9pZCAoXmJsb2NrKShDR1JlY3QgcmVjdCkpOwogCi1leHRlcm4gQk9P
TCAoKndrQ0dDb250ZXh0R2V0U2hvdWxkU21vb3RoRm9udHMpKENHQ29udGV4dFJlZik7CiB0eXBl
ZGVmIGVudW0gewogICAgIHdrUGF0dGVyblRpbGluZ05vRGlzdG9ydGlvbiwKICAgICB3a1BhdHRl
cm5UaWxpbmdDb25zdGFudFNwYWNpbmdNaW5pbWFsRGlzdG9ydGlvbiwKQEAgLTEzMSwyNyArMTMw
LDE3IEBAIHR5cGVkZWYgZW51bSB7CiBleHRlcm4gYm9vbCAoKndrQ0dDb250ZXh0RHJhd3NXaXRo
Q29ycmVjdFNoYWRvd09mZnNldHMpKENHQ29udGV4dFJlZik7CiAjZW5kaWYKIGV4dGVybiBDR1Bh
dHRlcm5SZWYgKCp3a0NHUGF0dGVybkNyZWF0ZVdpdGhJbWFnZUFuZFRyYW5zZm9ybSkoQ0dJbWFn
ZVJlZiwgQ0dBZmZpbmVUcmFuc2Zvcm0sIGludCk7Ci1leHRlcm4gTlNTdHJpbmcqICgqd2tDb3B5
TlNVUkxSZXNwb25zZVN0YXR1c0xpbmUpKE5TVVJMUmVzcG9uc2UqKTsKLWV4dGVybiBDRkFycmF5
UmVmICgqd2tDb3B5TlNVUkxSZXNwb25zZUNlcnRpZmljYXRlQ2hhaW4pKE5TVVJMUmVzcG9uc2Uq
KTsKIGV4dGVybiBDRlN0cmluZ0VuY29kaW5nICgqd2tHZXRXZWJEZWZhdWx0Q0ZTdHJpbmdFbmNv
ZGluZykodm9pZCk7CiAjaWYgIVBMQVRGT1JNKElPUykKLWV4dGVybiB2b2lkICgqd2tEcmF3Q2Fw
c0xvY2tJbmRpY2F0b3IpKENHQ29udGV4dFJlZiwgQ0dSZWN0KTsKIGV4dGVybiB2b2lkICgqd2tE
cmF3QmV6ZWxlZFRleHRBcmVhKShOU1JlY3QsIEJPT0wgZW5hYmxlZCk7CiBleHRlcm4gdm9pZCAo
KndrRHJhd0ZvY3VzUmluZykoQ0dDb250ZXh0UmVmLCBDR0NvbG9yUmVmLCBpbnQpOwogZXh0ZXJu
IGJvb2wgKCp3a0RyYXdGb2N1c1JpbmdBdFRpbWUpKENHQ29udGV4dFJlZiwgTlNUaW1lSW50ZXJ2
YWwgdGltZSk7CiBleHRlcm4gYm9vbCAoKndrRHJhd0NlbGxGb2N1c1JpbmdXaXRoRnJhbWVBdFRp
bWUpKE5TQ2VsbCAqY2VsbCwgTlNSZWN0IGNlbGxGcmFtZSwgTlNWaWV3ICpjb250cm9sVmlldywg
TlNUaW1lSW50ZXJ2YWwgdGltZSk7Ci0jZW5kaWYKLSNpZiAhUExBVEZPUk0oSU9TKQogZXh0ZXJu
IHZvaWQgKCp3a0RyYXdNZWRpYVNsaWRlclRyYWNrKShDR0NvbnRleHRSZWYgY29udGV4dCwgQ0dS
ZWN0IHJlY3QsIGZsb2F0IHRpbWVMb2FkZWQsIGZsb2F0IGN1cnJlbnRUaW1lLAogICAgIGZsb2F0
IGR1cmF0aW9uLCB1bnNpZ25lZCBzdGF0ZSk7CiBleHRlcm4gdm9pZCAoKndrRHJhd01lZGlhVUlQ
YXJ0KShpbnQgcGFydCwgQ0dDb250ZXh0UmVmIGNvbnRleHQsIENHUmVjdCByZWN0LCB1bnNpZ25l
ZCBzdGF0ZSk7CiBleHRlcm4gQ0ZTdHJpbmdSZWYgKCp3a1NpZ25lZFB1YmxpY0tleUFuZENoYWxs
ZW5nZVN0cmluZykodW5zaWduZWQga2V5U2l6ZSwgQ0ZTdHJpbmdSZWYgY2hhbGxlbmdlLCBDRlN0
cmluZ1JlZiBrZXlEZXNjcmlwdGlvbik7Ci0jZW5kaWYKLSNpZiAhUExBVEZPUk0oSU9TKQogZXh0
ZXJuIGRvdWJsZSAoKndrR2V0TlNVUkxSZXNwb25zZUNhbGN1bGF0ZWRFeHBpcmF0aW9uKShOU1VS
TFJlc3BvbnNlICpyZXNwb25zZSk7Ci0jZW5kaWYKLWV4dGVybiBOU0RhdGUgKigqd2tHZXROU1VS
TFJlc3BvbnNlTGFzdE1vZGlmaWVkRGF0ZSkoTlNVUkxSZXNwb25zZSAqcmVzcG9uc2UpOwotI2lm
ICFQTEFURk9STShJT1MpCiBleHRlcm4gQk9PTCAoKndrR2V0TlNVUkxSZXNwb25zZU11c3RSZXZh
bGlkYXRlKShOU1VSTFJlc3BvbnNlICpyZXNwb25zZSk7CiBleHRlcm4gdm9pZCAoKndrR2V0V2hl
ZWxFdmVudERlbHRhcykoTlNFdmVudCosIGZsb2F0KiBkZWx0YVgsIGZsb2F0KiBkZWx0YVksIEJP
T0wqIGNvbnRpbnVvdXMpOwogZXh0ZXJuIFVJbnQ4ICgqd2tHZXROU0V2ZW50S2V5Q2hhcikoTlNF
dmVudCAqKTsKQEAgLTE3OCwyOCArMTY3LDE4IEBAIGV4dGVybiB1bnNpZ25lZCAoKndrUVRJbmNs
dWRlT25seU1vZGVybk1lZGlhRmlsZVR5cGVzKSh2b2lkKTsKIGV4dGVybiB2b2lkICgqd2tRVE1v
dmllRGlzYWJsZUNvbXBvbmVudCkodWludDMyX3RbNV0pOwogZXh0ZXJuIGZsb2F0ICgqd2tRVE1v
dmllTWF4VGltZUxvYWRlZCkoUVRNb3ZpZSopOwogZXh0ZXJuIE5TU3RyaW5nICooKndrUVRNb3Zp
ZU1heFRpbWVMb2FkZWRDaGFuZ2VOb3RpZmljYXRpb24pKHZvaWQpOwotZXh0ZXJuIGZsb2F0ICgq
d2tRVE1vdmllTWF4VGltZVNlZWthYmxlKShRVE1vdmllKik7CiBleHRlcm4gaW50ICgqd2tRVE1v
dmllR2V0VHlwZSkoUVRNb3ZpZSopOwogZXh0ZXJuIEJPT0wgKCp3a1FUTW92aWVIYXNDbG9zZWRD
YXB0aW9ucykoUVRNb3ZpZSopOwogZXh0ZXJuIE5TVVJMICooKndrUVRNb3ZpZVJlc29sdmVkVVJM
KShRVE1vdmllKik7CiBleHRlcm4gdm9pZCAoKndrUVRNb3ZpZVNldFNob3dDbG9zZWRDYXB0aW9u
cykoUVRNb3ZpZSosIEJPT0wpOwogZXh0ZXJuIHZvaWQgKCp3a1FUTW92aWVTZWxlY3RQcmVmZXJy
ZWRBbHRlcm5hdGVzKShRVE1vdmllKik7Ci1leHRlcm4gdm9pZCAoKndrUVRNb3ZpZVZpZXdTZXRE
cmF3U3luY2hyb25vdXNseSkoUVRNb3ZpZVZpZXcqLCBCT09MKTsKIGV4dGVybiBOU0FycmF5ICoo
KndrUVRHZXRTaXRlc0luTWVkaWFEb3dubG9hZENhY2hlKSgpOwogZXh0ZXJuIHZvaWQgKCp3a1FU
Q2xlYXJNZWRpYURvd25sb2FkQ2FjaGVGb3JTaXRlKShOU1N0cmluZyAqc2l0ZSk7CiBleHRlcm4g
dm9pZCAoKndrUVRDbGVhck1lZGlhRG93bmxvYWRDYWNoZSkoKTsKLWV4dGVybiB2b2lkICgqd2tT
ZXRDR0ZvbnRSZW5kZXJpbmdNb2RlKShDR0NvbnRleHRSZWYsIE5TRm9udCosIEJPT0wpOwogZXh0
ZXJuIHZvaWQgKCp3a1NldENvb2tpZVN0b3JhZ2VQcml2YXRlQnJvd3NpbmdFbmFibGVkKShCT09M
KTsKIGV4dGVybiB2b2lkICgqd2tTZXREcmFnSW1hZ2UpKE5TSW1hZ2UqLCBOU1BvaW50IG9mZnNl
dCk7CiAjZW5kaWYKLWV4dGVybiB2b2lkICgqd2tTZXROU1VSTFJlcXVlc3RTaG91bGRDb250ZW50
U25pZmYpKE5TTXV0YWJsZVVSTFJlcXVlc3QgKiwgQk9PTCk7CiBleHRlcm4gYm9vbCAoKndrQ0dD
b250ZXh0SXNQREZDb250ZXh0KShDR0NvbnRleHRSZWYpOwotZXh0ZXJuIHVuc2lnbmVkICgqd2tJ
bml0aWFsaXplTWF4aW11bUhUVFBDb25uZWN0aW9uQ291bnRQZXJIb3N0KSh1bnNpZ25lZCBwcmVm
ZXJyZWRDb25uZWN0aW9uQ291bnQpOwotZXh0ZXJuIGludCAoKndrR2V0SFRUUFJlcXVlc3RQcmlv
cml0eSkoQ0ZVUkxSZXF1ZXN0UmVmKTsKLWV4dGVybiB2b2lkICgqd2tTZXRIVFRQUmVxdWVzdE1h
eGltdW1Qcmlvcml0eSkoaW50IG1heGltdW1Qcmlvcml0eSk7Ci1leHRlcm4gdm9pZCAoKndrU2V0
SFRUUFJlcXVlc3RQcmlvcml0eSkoQ0ZVUkxSZXF1ZXN0UmVmLCBpbnQgcHJpb3JpdHkpOwotZXh0
ZXJuIHZvaWQgKCp3a1NldEhUVFBSZXF1ZXN0TWluaW11bUZhc3RMYW5lUHJpb3JpdHkpKGludCBw
cmlvcml0eSk7Ci1leHRlcm4gdm9pZCAoKndrSFRUUFJlcXVlc3RFbmFibGVQaXBlbGluaW5nKShD
RlVSTFJlcXVlc3RSZWYpOwogZXh0ZXJuIHZvaWQgKCp3a1NldENPTk5FQ1RQcm94eUZvclN0cmVh
bSkoQ0ZSZWFkU3RyZWFtUmVmLCBDRlN0cmluZ1JlZiBwcm94eUhvc3QsIENGTnVtYmVyUmVmIHBy
b3h5UG9ydCk7CiBleHRlcm4gdm9pZCAoKndrU2V0Q09OTkVDVFByb3h5QXV0aG9yaXphdGlvbkZv
clN0cmVhbSkoQ0ZSZWFkU3RyZWFtUmVmLCBDRlN0cmluZ1JlZiBwcm94eUF1dGhvcml6YXRpb25T
dHJpbmcpOwogZXh0ZXJuIENGSFRUUE1lc3NhZ2VSZWYgKCp3a0NvcHlDT05ORUNUUHJveHlSZXNw
b25zZSkoQ0ZSZWFkU3RyZWFtUmVmLCBDRlVSTFJlZiByZXNwb25zZVVSTCwgQ0ZTdHJpbmdSZWYg
cHJveHlIb3N0LCBDRk51bWJlclJlZiBwcm94eVBvcnQpOwpAQCAtMjQxLDM0ICsyMjAsMTUgQEAg
ZXh0ZXJuIENGVVJMU3RvcmFnZVNlc3Npb25SZWYgKCp3a0NyZWF0ZVByaXZhdGVTdG9yYWdlU2Vz
c2lvbikoQ0ZTdHJpbmdSZWYpOwogZXh0ZXJuIE5TVVJMUmVxdWVzdCogKCp3a0NvcHlSZXF1ZXN0
V2l0aFN0b3JhZ2VTZXNzaW9uKShDRlVSTFN0b3JhZ2VTZXNzaW9uUmVmLCBOU1VSTFJlcXVlc3Qq
KTsKIAogdHlwZWRlZiBzdHJ1Y3QgT3BhcXVlQ0ZIVFRQQ29va2llU3RvcmFnZSogQ0ZIVFRQQ29v
a2llU3RvcmFnZVJlZjsKLWV4dGVybiBDRkhUVFBDb29raWVTdG9yYWdlUmVmICgqd2tDb3B5SFRU
UENvb2tpZVN0b3JhZ2UpKENGVVJMU3RvcmFnZVNlc3Npb25SZWYpOwogZXh0ZXJuIHVuc2lnbmVk
ICgqd2tHZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KShDRkhUVFBDb29raWVTdG9yYWdlUmVmKTsK
LWV4dGVybiB2b2lkICgqd2tTZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KShDRkhUVFBDb29raWVT
dG9yYWdlUmVmLCB1bnNpZ25lZCk7CiBleHRlcm4gTlNBcnJheSAqKCp3a0hUVFBDb29raWVzKShD
RkhUVFBDb29raWVTdG9yYWdlUmVmKTsKIGV4dGVybiBOU0FycmF5ICooKndrSFRUUENvb2tpZXNG
b3JVUkwpKENGSFRUUENvb2tpZVN0b3JhZ2VSZWYsIE5TVVJMICosIE5TVVJMICopOwogZXh0ZXJu
IHZvaWQgKCp3a1NldEhUVFBDb29raWVzRm9yVVJMKShDRkhUVFBDb29raWVTdG9yYWdlUmVmLCBO
U0FycmF5ICosIE5TVVJMICosIE5TVVJMICopOwogZXh0ZXJuIHZvaWQgKCp3a0RlbGV0ZUhUVFBD
b29raWUpKENGSFRUUENvb2tpZVN0b3JhZ2VSZWYsIE5TSFRUUENvb2tpZSAqKTsKIGV4dGVybiB2
b2lkICgqd2tEZWxldGVBbGxIVFRQQ29va2llcykoQ0ZIVFRQQ29va2llU3RvcmFnZVJlZik7CiAK
LWV4dGVybiBDRlN0cmluZ1JlZiAoKndrR2V0Q0ZVUkxSZXNwb25zZU1JTUVUeXBlKShDRlVSTFJl
c3BvbnNlUmVmKTsKLWV4dGVybiBDRlVSTFJlZiAoKndrR2V0Q0ZVUkxSZXNwb25zZVVSTCkoQ0ZV
UkxSZXNwb25zZVJlZik7Ci1leHRlcm4gQ0ZIVFRQTWVzc2FnZVJlZiAoKndrR2V0Q0ZVUkxSZXNw
b25zZUhUVFBSZXNwb25zZSkoQ0ZVUkxSZXNwb25zZVJlZik7Ci1leHRlcm4gQ0ZTdHJpbmdSZWYg
KCp3a0NvcHlDRlVSTFJlc3BvbnNlU3VnZ2VzdGVkRmlsZW5hbWUpKENGVVJMUmVzcG9uc2VSZWYp
OwotZXh0ZXJuIHZvaWQgKCp3a1NldENGVVJMUmVzcG9uc2VNSU1FVHlwZSkoQ0ZVUkxSZXNwb25z
ZVJlZiwgQ0ZTdHJpbmdSZWYgbWltZVR5cGUpOwotCi0jaWYgVVNFKENGTkVUV09SSykKLWV4dGVy
biBDRkhUVFBDb29raWVTdG9yYWdlUmVmICgqd2tHZXREZWZhdWx0SFRUUENvb2tpZVN0b3JhZ2Up
KCk7Ci1leHRlcm4gV0tDRlVSTENyZWRlbnRpYWxSZWYgKCp3a0NvcHlDcmVkZW50aWFsRnJvbUNG
UGVyc2lzdGVudFN0b3JhZ2UpKENGVVJMUHJvdGVjdGlvblNwYWNlUmVmIHByb3RlY3Rpb25TcGFj
ZSk7Ci1leHRlcm4gdm9pZCAoKndrU2V0Q0ZVUkxSZXF1ZXN0U2hvdWxkQ29udGVudFNuaWZmKShD
Rk11dGFibGVVUkxSZXF1ZXN0UmVmLCBib29sKTsKLWV4dGVybiB2b2lkICgqd2tTZXRSZXF1ZXN0
U3RvcmFnZVNlc3Npb24pKENGVVJMU3RvcmFnZVNlc3Npb25SZWYsIENGTXV0YWJsZVVSTFJlcXVl
c3RSZWYpOwotI2VuZGlmCiAjaWYgIVBMQVRGT1JNKElPUykKIGV4dGVybiB2b2lkICgqd2tTZXRN
ZXRhZGF0YVVSTCkoTlNTdHJpbmcgKnVybFN0cmluZywgTlNTdHJpbmcgKnJlZmVycmVyLCBOU1N0
cmluZyAqcGF0aCk7Ci0jZW5kaWYKLQotZXh0ZXJuIHZvaWQgKCp3a0NGVVJMUmVxdWVzdEFsbG93
QWxsUG9zdENhY2hpbmcpKENGVVJMUmVxdWVzdFJlZik7Ci0KLSNpZiAhUExBVEZPUk0oSU9TKQog
ZXh0ZXJuIENHRmxvYXQgKCp3a05TRWxhc3RpY0RlbHRhRm9yVGltZURlbHRhKShDR0Zsb2F0IGlu
aXRpYWxQb3NpdGlvbiwgQ0dGbG9hdCBpbml0aWFsVmVsb2NpdHksIENHRmxvYXQgZWxhcHNlZFRp
bWUpOwogZXh0ZXJuIENHRmxvYXQgKCp3a05TRWxhc3RpY0RlbHRhRm9yUmVib3VuZERlbHRhKShD
R0Zsb2F0IGRlbHRhKTsKIGV4dGVybiBDR0Zsb2F0ICgqd2tOU1JlYm91bmREZWx0YUZvckVsYXN0
aWNEZWx0YSkoQ0dGbG9hdCBkZWx0YSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tYWMvV2ViQ29yZVN5c3RlbUludGVyZmFjZS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21hYy9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlLm1tCmluZGV4IDE4OGY0MTI4MTIzYTk2MDhh
ZGJmZmNjYmY2OWI4ZGFmMzAwMWNiYzcuLmMzOWNjOWUyODUyYmU1OWZlMjg3ODNhZjY2MjNiZDcx
ODAzNGY1NzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJDb3Jl
U3lzdGVtSW50ZXJmYWNlLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJD
b3JlU3lzdGVtSW50ZXJmYWNlLm1tCkBAIC0zMiwxMyArMzIsOSBAQAogCiB2b2lkICgqd2tBZHZh
bmNlRGVmYXVsdEJ1dHRvblB1bHNlQW5pbWF0aW9uKShOU0J1dHRvbkNlbGwgKik7CiB2b2lkICgq
d2tDQUxheWVyRW51bWVyYXRlUmVjdHNCZWluZ0RyYXduV2l0aEJsb2NrKShDQUxheWVyICosIENH
Q29udGV4dFJlZiBjb250ZXh0LCB2b2lkICheYmxvY2spKENHUmVjdCByZWN0KSk7Ci1CT09MICgq
d2tDR0NvbnRleHRHZXRTaG91bGRTbW9vdGhGb250cykoQ0dDb250ZXh0UmVmKTsKIGJvb2wgKCp3
a0NHQ29udGV4dERyYXdzV2l0aENvcnJlY3RTaGFkb3dPZmZzZXRzKShDR0NvbnRleHRSZWYpOwog
Q0dQYXR0ZXJuUmVmICgqd2tDR1BhdHRlcm5DcmVhdGVXaXRoSW1hZ2VBbmRUcmFuc2Zvcm0pKENH
SW1hZ2VSZWYsIENHQWZmaW5lVHJhbnNmb3JtLCBpbnQpOwotTlNTdHJpbmcqICgqd2tDb3B5TlNV
UkxSZXNwb25zZVN0YXR1c0xpbmUpKE5TVVJMUmVzcG9uc2UqKTsKLUNGQXJyYXlSZWYgKCp3a0Nv
cHlOU1VSTFJlc3BvbnNlQ2VydGlmaWNhdGVDaGFpbikoTlNVUkxSZXNwb25zZSopOwogQ0ZTdHJp
bmdFbmNvZGluZyAoKndrR2V0V2ViRGVmYXVsdENGU3RyaW5nRW5jb2RpbmcpKHZvaWQpOwotdm9p
ZCAoKndrRHJhd0NhcHNMb2NrSW5kaWNhdG9yKShDR0NvbnRleHRSZWYsIENHUmVjdCk7CiB2b2lk
ICgqd2tEcmF3QmV6ZWxlZFRleHRBcmVhKShOU1JlY3QsIEJPT0wgZW5hYmxlZCk7CiB2b2lkICgq
d2tEcmF3Rm9jdXNSaW5nKShDR0NvbnRleHRSZWYsIENHQ29sb3JSZWYsIGludCk7CiBib29sICgq
d2tEcmF3Rm9jdXNSaW5nQXRUaW1lKShDR0NvbnRleHRSZWYsIE5TVGltZUludGVydmFsKTsKQEAg
LTU0LDcgKzUwLDYgQEAgdm9pZCAoKndrV2luZG93U2V0QWxwaGEpKE5TV2luZG93ICosIGZsb2F0
KTsKIHZvaWQgKCp3a1dpbmRvd1NldFNjYWxlZEZyYW1lKShOU1dpbmRvdyAqLCBOU1JlY3QsIE5T
UmVjdCk7CiBDRlN0cmluZ1JlZiAoKndrU2lnbmVkUHVibGljS2V5QW5kQ2hhbGxlbmdlU3RyaW5n
KSh1bnNpZ25lZCBrZXlTaXplLCBDRlN0cmluZ1JlZiBjaGFsbGVuZ2UsIENGU3RyaW5nUmVmIGtl
eURlc2NyaXB0aW9uKTsKIE5TVGltZUludGVydmFsICgqd2tHZXROU1VSTFJlc3BvbnNlQ2FsY3Vs
YXRlZEV4cGlyYXRpb24pKE5TVVJMUmVzcG9uc2UgKnJlc3BvbnNlKTsKLU5TRGF0ZSAqKCp3a0dl
dE5TVVJMUmVzcG9uc2VMYXN0TW9kaWZpZWREYXRlKShOU1VSTFJlc3BvbnNlICpyZXNwb25zZSk7
CiBCT09MICgqd2tHZXROU1VSTFJlc3BvbnNlTXVzdFJldmFsaWRhdGUpKE5TVVJMUmVzcG9uc2Ug
KnJlc3BvbnNlKTsKIHZvaWQgKCp3a0dldFdoZWVsRXZlbnREZWx0YXMpKE5TRXZlbnQqLCBmbG9h
dCogZGVsdGFYLCBmbG9hdCogZGVsdGFZLCBCT09MKiBjb250aW51b3VzKTsKIFVJbnQ4ICgqd2tH
ZXROU0V2ZW50S2V5Q2hhcikoTlNFdmVudCAqKTsKQEAgLTYzLDM4ICs1OCwyMSBAQCB1bnNpZ25l
ZCAoKndrUVRJbmNsdWRlT25seU1vZGVybk1lZGlhRmlsZVR5cGVzKSh2b2lkKTsKIHZvaWQgKCp3
a1FUTW92aWVEaXNhYmxlQ29tcG9uZW50KSh1aW50MzJfdFs1XSk7CiBmbG9hdCAoKndrUVRNb3Zp
ZU1heFRpbWVMb2FkZWQpKFFUTW92aWUqKTsKIE5TU3RyaW5nICooKndrUVRNb3ZpZU1heFRpbWVM
b2FkZWRDaGFuZ2VOb3RpZmljYXRpb24pKHZvaWQpOwotZmxvYXQgKCp3a1FUTW92aWVNYXhUaW1l
U2Vla2FibGUpKFFUTW92aWUqKTsKIGludCAoKndrUVRNb3ZpZUdldFR5cGUpKFFUTW92aWUqKTsK
IEJPT0wgKCp3a1FUTW92aWVIYXNDbG9zZWRDYXB0aW9ucykoUVRNb3ZpZSopOwogTlNVUkwgKigq
d2tRVE1vdmllUmVzb2x2ZWRVUkwpKFFUTW92aWUqKTsKIHZvaWQgKCp3a1FUTW92aWVTZXRTaG93
Q2xvc2VkQ2FwdGlvbnMpKFFUTW92aWUqLCBCT09MKTsKIHZvaWQgKCp3a1FUTW92aWVTZWxlY3RQ
cmVmZXJyZWRBbHRlcm5hdGVzKShRVE1vdmllKik7Ci12b2lkICgqd2tRVE1vdmllVmlld1NldERy
YXdTeW5jaHJvbm91c2x5KShRVE1vdmllVmlldyosIEJPT0wpOwogTlNBcnJheSAqKCp3a1FUR2V0
U2l0ZXNJbk1lZGlhRG93bmxvYWRDYWNoZSkoKTsKIHZvaWQgKCp3a1FUQ2xlYXJNZWRpYURvd25s
b2FkQ2FjaGVGb3JTaXRlKShOU1N0cmluZyAqc2l0ZSk7CiB2b2lkICgqd2tRVENsZWFyTWVkaWFE
b3dubG9hZENhY2hlKSgpOwogCi12b2lkICgqd2tTZXRDR0ZvbnRSZW5kZXJpbmdNb2RlKShDR0Nv
bnRleHRSZWYsIE5TRm9udCosIEJPT0wpOwogdm9pZCAoKndrU2V0RHJhZ0ltYWdlKShOU0ltYWdl
KiwgTlNQb2ludCBvZmZzZXQpOwogYm9vbCAoKndrQ0dDb250ZXh0SXNQREZDb250ZXh0KShDR0Nv
bnRleHRSZWYpOwotdm9pZCAoKndrU2V0TlNVUkxSZXF1ZXN0U2hvdWxkQ29udGVudFNuaWZmKShO
U011dGFibGVVUkxSZXF1ZXN0ICosIEJPT0wpOwotdW5zaWduZWQgKCp3a0luaXRpYWxpemVNYXhp
bXVtSFRUUENvbm5lY3Rpb25Db3VudFBlckhvc3QpKHVuc2lnbmVkIHByZWZlcnJlZENvbm5lY3Rp
b25Db3VudCk7Ci1pbnQgKCp3a0dldEhUVFBSZXF1ZXN0UHJpb3JpdHkpKENGVVJMUmVxdWVzdFJl
Zik7Ci12b2lkICgqd2tTZXRIVFRQUmVxdWVzdE1heGltdW1Qcmlvcml0eSkoaW50IHByaW9yaXR5
KTsKLXZvaWQgKCp3a1NldEhUVFBSZXF1ZXN0UHJpb3JpdHkpKENGVVJMUmVxdWVzdFJlZiwgaW50
IHByaW9yaXR5KTsKLXZvaWQgKCp3a1NldEhUVFBSZXF1ZXN0TWluaW11bUZhc3RMYW5lUHJpb3Jp
dHkpKGludCBwcmlvcml0eSk7Ci12b2lkICgqd2tIVFRQUmVxdWVzdEVuYWJsZVBpcGVsaW5pbmcp
KENGVVJMUmVxdWVzdFJlZik7CiB2b2lkICgqd2tTZXRDT05ORUNUUHJveHlGb3JTdHJlYW0pKENG
UmVhZFN0cmVhbVJlZiwgQ0ZTdHJpbmdSZWYgcHJveHlIb3N0LCBDRk51bWJlclJlZiBwcm94eVBv
cnQpOwogdm9pZCAoKndrU2V0Q09OTkVDVFByb3h5QXV0aG9yaXphdGlvbkZvclN0cmVhbSkoQ0ZS
ZWFkU3RyZWFtUmVmLCBDRlN0cmluZ1JlZiBwcm94eUF1dGhvcml6YXRpb25TdHJpbmcpOwogQ0ZI
VFRQTWVzc2FnZVJlZiAoKndrQ29weUNPTk5FQ1RQcm94eVJlc3BvbnNlKShDRlJlYWRTdHJlYW1S
ZWYsIENGVVJMUmVmIHJlc3BvbnNlVVJMLCBDRlN0cmluZ1JlZiBwcm94eUhvc3QsIENGTnVtYmVy
UmVmIHByb3h5UG9ydCk7CiAKLSNpZiBVU0UoQ0ZORVRXT1JLKQotQ0ZIVFRQQ29va2llU3RvcmFn
ZVJlZiAoKndrR2V0RGVmYXVsdEhUVFBDb29raWVTdG9yYWdlKSgpOwotV0tDRlVSTENyZWRlbnRp
YWxSZWYgKCp3a0NvcHlDcmVkZW50aWFsRnJvbUNGUGVyc2lzdGVudFN0b3JhZ2UpKENGVVJMUHJv
dGVjdGlvblNwYWNlUmVmIHByb3RlY3Rpb25TcGFjZSk7Ci12b2lkICgqd2tTZXRDRlVSTFJlcXVl
c3RTaG91bGRDb250ZW50U25pZmYpKENGTXV0YWJsZVVSTFJlcXVlc3RSZWYsIGJvb2wpOwotdm9p
ZCAoKndrU2V0UmVxdWVzdFN0b3JhZ2VTZXNzaW9uKShDRlVSTFN0b3JhZ2VTZXNzaW9uUmVmLCBD
Rk11dGFibGVVUkxSZXF1ZXN0UmVmKTsKLSNlbmRpZgotCiB2b2lkKiB3a0dldEh5cGhlbmF0aW9u
TG9jYXRpb25CZWZvcmVJbmRleDsKIAogYm9vbCAoKndrRXhlY3V0YWJsZVdhc0xpbmtlZE9uT3JC
ZWZvcmVTbm93TGVvcGFyZCkodm9pZCk7CkBAIC0xMTksMjQgKzk3LDE1IEBAIEFYVUlFbGVtZW50
UmVmICgqd2tDcmVhdGVBWFVJRWxlbWVudFJlZikoaWQgZWxlbWVudCk7CiAKIENGVVJMU3RvcmFn
ZVNlc3Npb25SZWYgKCp3a0NyZWF0ZVByaXZhdGVTdG9yYWdlU2Vzc2lvbikoQ0ZTdHJpbmdSZWYp
OwogTlNVUkxSZXF1ZXN0KiAoKndrQ29weVJlcXVlc3RXaXRoU3RvcmFnZVNlc3Npb24pKENGVVJM
U3RvcmFnZVNlc3Npb25SZWYsIE5TVVJMUmVxdWVzdCopOwotQ0ZIVFRQQ29va2llU3RvcmFnZVJl
ZiAoKndrQ29weUhUVFBDb29raWVTdG9yYWdlKShDRlVSTFN0b3JhZ2VTZXNzaW9uUmVmKTsKIHVu
c2lnbmVkICgqd2tHZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KShDRkhUVFBDb29raWVTdG9yYWdl
UmVmKTsKLXZvaWQgKCp3a1NldEhUVFBDb29raWVBY2NlcHRQb2xpY3kpKENGSFRUUENvb2tpZVN0
b3JhZ2VSZWYsIHVuc2lnbmVkKTsKIE5TQXJyYXkgKigqd2tIVFRQQ29va2llcykoQ0ZIVFRQQ29v
a2llU3RvcmFnZVJlZik7CiBOU0FycmF5ICooKndrSFRUUENvb2tpZXNGb3JVUkwpKENGSFRUUENv
b2tpZVN0b3JhZ2VSZWYsIE5TVVJMICosIE5TVVJMICopOwogdm9pZCAoKndrU2V0SFRUUENvb2tp
ZXNGb3JVUkwpKENGSFRUUENvb2tpZVN0b3JhZ2VSZWYsIE5TQXJyYXkgKiwgTlNVUkwgKiwgTlNV
UkwgKik7CiB2b2lkICgqd2tEZWxldGVBbGxIVFRQQ29va2llcykoQ0ZIVFRQQ29va2llU3RvcmFn
ZVJlZik7CiB2b2lkICgqd2tEZWxldGVIVFRQQ29va2llKShDRkhUVFBDb29raWVTdG9yYWdlUmVm
LCBOU0hUVFBDb29raWUgKik7CiAKLUNGU3RyaW5nUmVmICgqd2tHZXRDRlVSTFJlc3BvbnNlTUlN
RVR5cGUpKENGVVJMUmVzcG9uc2VSZWYpOwotQ0ZVUkxSZWYgKCp3a0dldENGVVJMUmVzcG9uc2VV
UkwpKENGVVJMUmVzcG9uc2VSZWYpOwotQ0ZIVFRQTWVzc2FnZVJlZiAoKndrR2V0Q0ZVUkxSZXNw
b25zZUhUVFBSZXNwb25zZSkoQ0ZVUkxSZXNwb25zZVJlZik7Ci1DRlN0cmluZ1JlZiAoKndrQ29w
eUNGVVJMUmVzcG9uc2VTdWdnZXN0ZWRGaWxlbmFtZSkoQ0ZVUkxSZXNwb25zZVJlZik7Ci12b2lk
ICgqd2tTZXRDRlVSTFJlc3BvbnNlTUlNRVR5cGUpKENGVVJMUmVzcG9uc2VSZWYsIENGU3RyaW5n
UmVmIG1pbWVUeXBlKTsKIHZvaWQgKCp3a1NldE1ldGFkYXRhVVJMKShOU1N0cmluZyAqdXJsU3Ry
aW5nLCBOU1N0cmluZyAqcmVmZXJyZXIsIE5TU3RyaW5nICpwYXRoKTsKIAotdm9pZCAoKndrQ0ZV
UkxSZXF1ZXN0QWxsb3dBbGxQb3N0Q2FjaGluZykoQ0ZVUkxSZXF1ZXN0UmVmKTsKLQogI2lmICFQ
TEFURk9STShJT1MpCiBDR0Zsb2F0ICgqd2tOU0VsYXN0aWNEZWx0YUZvclRpbWVEZWx0YSkoQ0dG
bG9hdCBpbml0aWFsUG9zaXRpb24sIENHRmxvYXQgaW5pdGlhbFZlbG9jaXR5LCBDR0Zsb2F0IGVs
YXBzZWRUaW1lKTsKIENHRmxvYXQgKCp3a05TRWxhc3RpY0RlbHRhRm9yUmVib3VuZERlbHRhKShD
R0Zsb2F0IGRlbHRhKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oCmluZGV4IDliZmZkMGEwYjBkOTAzZWMyMWZhNGZi
MmE4YTFmNGVkZTRiZjQyNWEuLmQ5ZTM4ZDAxM2MyZjNiZDlkY2U3MzIxYzg3YWY3N2IzYmY1YmQz
YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0
b3JhZ2VTZXNzaW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3
b3JrU3RvcmFnZVNlc3Npb24uaApAQCAtMzIsOCArMzIsNyBAQAogI2luY2x1ZGUgPHd0Zi90ZXh0
L1dURlN0cmluZy5oPgogCiAjaWYgUExBVEZPUk0oQ09DT0EpIHx8IFVTRShDRk5FVFdPUkspCi10
eXBlZGVmIGNvbnN0IHN0cnVjdCBfX0NGVVJMU3RvcmFnZVNlc3Npb24qIENGVVJMU3RvcmFnZVNl
c3Npb25SZWY7Ci10eXBlZGVmIHN0cnVjdCBPcGFxdWVDRkhUVFBDb29raWVTdG9yYWdlKiAgQ0ZI
VFRQQ29va2llU3RvcmFnZVJlZjsKKyNpbmNsdWRlICJDRk5ldHdvcmtTUEkuaCIKICNlbmRpZgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL2NmL0NyZWRlbnRpYWxTdG9yYWdlQ0ZOZXQuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9jZi9DcmVkZW50aWFsU3RvcmFnZUNGTmV0LmNwcAppbmRleCA1NjA5
MjU5N2FhY2NkMjc3M2Y2OThiMzViZDRmYzcxNTg3MmM0MGU0Li41OWZlYTUzYzUzZTQ5NjdkMGVh
ODkzYjkyNWQ3MDYxNTBjYTVlZWU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL2NmL0NyZWRlbnRpYWxTdG9yYWdlQ0ZOZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvQ3JlZGVudGlhbFN0b3JhZ2VDRk5ldC5jcHAKQEAgLTI5
LDYgKzI5LDcgQEAKICNpZiBVU0UoQ0ZORVRXT1JLKQogCiAjaW5jbHVkZSAiQXV0aGVudGljYXRp
b25DRi5oIgorI2luY2x1ZGUgIkNGTmV0d29ya1NQSS5oIgogI2luY2x1ZGUgIkNyZWRlbnRpYWwu
aCIKICNpbmNsdWRlICJQcm90ZWN0aW9uU3BhY2UuaCIKICNpbmNsdWRlIDx3dGYvUmV0YWluUHRy
Lmg+CkBAIC00NCwxNSArNDUsMjEgQEAKICNlbmRpZgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Cisg
ICAgCitzdGF0aWMgaW5saW5lIENGVVJMQ3JlZGVudGlhbFJlZiBjb3B5Q3JlZGVudGlhbEZyb21Q
cm90ZWN0aW9uU3BhY2UoQ0ZVUkxQcm90ZWN0aW9uU3BhY2VSZWYgcHJvdGVjdGlvblNwYWNlKQor
eworICAgIGF1dG8gc3RvcmFnZSA9IGFkb3B0Q0YoQ0ZVUkxDcmVkZW50aWFsU3RvcmFnZUNyZWF0
ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0KSk7CisgICAgcmV0dXJuIENGVVJMQ3JlZGVudGlhbFN0b3Jh
Z2VDb3B5RGVmYXVsdENyZWRlbnRpYWxGb3JQcm90ZWN0aW9uU3BhY2Uoc3RvcmFnZS5nZXQoKSwg
cHJvdGVjdGlvblNwYWNlKTsKK30KIAogQ3JlZGVudGlhbCBDcmVkZW50aWFsU3RvcmFnZTo6Z2V0
RnJvbVBlcnNpc3RlbnRTdG9yYWdlKGNvbnN0IFByb3RlY3Rpb25TcGFjZSYgcHJvdGVjdGlvblNw
YWNlKQogewogI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIFJldGFpblB0cjxDRlVSTENyZWRlbnRp
YWxSZWY+IGNyZWRlbnRpYWxDRiA9IGFkb3B0Q0Yod2tDb3B5Q3JlZGVudGlhbEZyb21DRlBlcnNp
c3RlbnRTdG9yYWdlKHByb3RlY3Rpb25TcGFjZS5jZlNwYWNlKCkpKTsKKyAgICBhdXRvIGNyZWRl
bnRpYWxDRiA9IGFkb3B0Q0YoY29weUNyZWRlbnRpYWxGcm9tUHJvdGVjdGlvblNwYWNlKHByb3Rl
Y3Rpb25TcGFjZS5jZlNwYWNlKCkpKTsKICAgICByZXR1cm4gQ3JlZGVudGlhbChjcmVkZW50aWFs
Q0YuZ2V0KCkpOwogI2Vsc2UKLSAgICBSZXRhaW5QdHI8Q0ZVUkxQcm90ZWN0aW9uU3BhY2VSZWY+
IHByb3RlY3Rpb25TcGFjZUNGID0gYWRvcHRDRihjcmVhdGVDRihwcm90ZWN0aW9uU3BhY2UpKTsK
LSAgICBSZXRhaW5QdHI8Q0ZVUkxDcmVkZW50aWFsUmVmPiBjcmVkZW50aWFsQ0YgPSBhZG9wdENG
KHdrQ29weUNyZWRlbnRpYWxGcm9tQ0ZQZXJzaXN0ZW50U3RvcmFnZShwcm90ZWN0aW9uU3BhY2VD
Ri5nZXQoKSkpOworICAgIGF1dG8gcHJvdGVjdGlvblNwYWNlQ0YgPSBhZG9wdENGKGNyZWF0ZUNG
KHByb3RlY3Rpb25TcGFjZSkpOworICAgIGF1dG8gY3JlZGVudGlhbENGID0gYWRvcHRDRihjb3B5
Q3JlZGVudGlhbEZyb21Qcm90ZWN0aW9uU3BhY2UocHJvdGVjdGlvblNwYWNlQ0YuZ2V0KCkpKTsK
ICAgICByZXR1cm4gY29yZShjcmVkZW50aWFsQ0YuZ2V0KCkpOwogI2VuZGlmCiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL05ldHdvcmtTdG9yYWdlU2Vz
c2lvbkNGTmV0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvTmV0d29y
a1N0b3JhZ2VTZXNzaW9uQ0ZOZXQuY3BwCmluZGV4IDRlZmRmNzJhM2QxN2VjZjUzODdhNTMyOGQz
MGNkMmM2ZjRmNDI0YzYuLjY3NjdhZDIzMDAwMWVjYjQxNWQwMjg2NTY3MGYwMmQwYmEzNTA4NDgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvTmV0d29ya1N0
b3JhZ2VTZXNzaW9uQ0ZOZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvY2YvTmV0d29ya1N0b3JhZ2VTZXNzaW9uQ0ZOZXQuY3BwCkBAIC04NCwxMCArODQsMTAgQEAg
c3RkOjp1bmlxdWVfcHRyPE5ldHdvcmtTdG9yYWdlU2Vzc2lvbj4gTmV0d29ya1N0b3JhZ2VTZXNz
aW9uOjpjcmVhdGVQcml2YXRlQnJvd3MKIFJldGFpblB0cjxDRkhUVFBDb29raWVTdG9yYWdlUmVm
PiBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmNvb2tpZVN0b3JhZ2UoKSBjb25zdAogewogICAgIGlm
IChtX3BsYXRmb3JtU2Vzc2lvbikKLSAgICAgICAgcmV0dXJuIGFkb3B0Q0Yod2tDb3B5SFRUUENv
b2tpZVN0b3JhZ2UobV9wbGF0Zm9ybVNlc3Npb24uZ2V0KCkpKTsKKyAgICAgICAgcmV0dXJuIGFk
b3B0Q0YoX0NGVVJMU3RvcmFnZVNlc3Npb25Db3B5Q29va2llU3RvcmFnZShrQ0ZBbGxvY2F0b3JE
ZWZhdWx0LCBtX3BsYXRmb3JtU2Vzc2lvbi5nZXQoKSkpOwogCiAjaWYgVVNFKENGTkVUV09SSykK
LSAgICByZXR1cm4gd2tHZXREZWZhdWx0SFRUUENvb2tpZVN0b3JhZ2UoKTsKKyAgICByZXR1cm4g
X0NGSFRUUENvb2tpZVN0b3JhZ2VHZXREZWZhdWx0KGtDRkFsbG9jYXRvckRlZmF1bHQpOwogI2Vs
c2UKICAgICAvLyBXaGVuIHVzaW5nIE5TVVJMQ29ubmVjdGlvbiwgd2UgYWxzbyB1c2UgaXRzIHNo
YXJlZCBjb29raWUgc3RvcmFnZS4KICAgICByZXR1cm4gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVDRk5ldC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZOZXQuY3BwCmlu
ZGV4IDVjMTQyMDdkNDFhYTM2Zjc5MGJlZWM3YzMzZjQ3YmYyYTdjN2QyNTEuLmRjNzliYzM5OTRi
MmM3ZTE3YmZhOWQzNWU4YjlmODUxMjY3Njc1NWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVDRk5ldC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGTmV0LmNwcApAQCAt
MTE2LDYgKzExNiwxNSBAQCBSZXNvdXJjZUhhbmRsZTo6flJlc291cmNlSGFuZGxlKCkKIHsKICAg
ICBMT0coTmV0d29yaywgIkNGTmV0IC0gRGVzdHJveWluZyBqb2IgJXAgKCVzKSIsIHRoaXMsIGQt
Pm1fZmlyc3RSZXF1ZXN0LnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwogfQorICAgIAor
c3RhdGljIGlubGluZSBDRlN0cmluZ1JlZiBzaG91bGRTbmlmZkNvbm5lY3Rpb25Qcm9wZXJ0eSgp
Cit7CisjaWYgUExBVEZPUk0oV0lOKQorICAgIHJldHVybiBDRlNUUigiX2tDRlVSTENvbm5lY3Rp
b25Qcm9wZXJ0eVNob3VsZFNuaWZmIik7CisjZWxzZQorICAgIHJldHVybiBfa0NGVVJMQ29ubmVj
dGlvblByb3BlcnR5U2hvdWxkU25pZmY7CisjZW5kaWYKK30KIAogdm9pZCBSZXNvdXJjZUhhbmRs
ZTo6Y3JlYXRlQ0ZVUkxDb25uZWN0aW9uKGJvb2wgc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2Us
IGJvb2wgc2hvdWxkQ29udGVudFNuaWZmLCBTY2hlZHVsaW5nQmVoYXZpb3Igc2NoZWR1bGluZ0Jl
aGF2aW9yLCBDRkRpY3Rpb25hcnlSZWYgY2xpZW50UHJvcGVydGllcykKIHsKQEAgLTE0NywxMSAr
MTU2LDEyIEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZUNGVVJMQ29ubmVjdGlvbihib29s
IHNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlLCBib29sCiAgICAgICAgIGFwcGx5QmFzaWNBdXRo
b3JpemF0aW9uSGVhZGVyKGZpcnN0UmVxdWVzdCgpLCBkLT5tX2luaXRpYWxDcmVkZW50aWFsKTsK
ICAgICB9CiAKLSAgICBSZXRhaW5QdHI8Q0ZNdXRhYmxlVVJMUmVxdWVzdFJlZj4gcmVxdWVzdCA9
IGFkb3B0Q0YoQ0ZVUkxSZXF1ZXN0Q3JlYXRlTXV0YWJsZUNvcHkoa0NGQWxsb2NhdG9yRGVmYXVs
dCwgZmlyc3RSZXF1ZXN0KCkuY2ZVUkxSZXF1ZXN0KFVwZGF0ZUhUVFBCb2R5KSkpOwotICAgIHdr
U2V0UmVxdWVzdFN0b3JhZ2VTZXNzaW9uKGQtPm1fc3RvcmFnZVNlc3Npb24uZ2V0KCksIHJlcXVl
c3QuZ2V0KCkpOworICAgIGF1dG8gcmVxdWVzdCA9IGFkb3B0Q0YoQ0ZVUkxSZXF1ZXN0Q3JlYXRl
TXV0YWJsZUNvcHkoa0NGQWxsb2NhdG9yRGVmYXVsdCwgZmlyc3RSZXF1ZXN0KCkuY2ZVUkxSZXF1
ZXN0KFVwZGF0ZUhUVFBCb2R5KSkpOworICAgIGlmIChhdXRvIHN0b3JhZ2VTZXNzaW9uID0gZC0+
bV9zdG9yYWdlU2Vzc2lvbi5nZXQoKSkKKyAgICAgICAgX0NGVVJMUmVxdWVzdFNldFN0b3JhZ2VT
ZXNzaW9uKHJlcXVlc3QuZ2V0KCksIHN0b3JhZ2VTZXNzaW9uKTsKICAgICAKICAgICBpZiAoIXNo
b3VsZENvbnRlbnRTbmlmZikKLSAgICAgICAgd2tTZXRDRlVSTFJlcXVlc3RTaG91bGRDb250ZW50
U25pZmYocmVxdWVzdC5nZXQoKSwgZmFsc2UpOworICAgICAgICBfQ0ZVUkxSZXF1ZXN0U2V0UHJv
dG9jb2xQcm9wZXJ0eShyZXF1ZXN0LmdldCgpLCBzaG91bGRTbmlmZkNvbm5lY3Rpb25Qcm9wZXJ0
eSgpLCBrQ0ZCb29sZWFuRmFsc2UpOwogCiAgICAgUmV0YWluUHRyPENGTXV0YWJsZURpY3Rpb25h
cnlSZWY+IHNzbFByb3BzOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGUuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVj
dGlvbkRlbGVnYXRlLmNwcAppbmRleCA0ZjdhNzkyOWYxYjExZDg4NGQ4ZDA0NzY4MjExMmFkYjY2
ZTliYmQ1Li4yODFhN2I2MmViZDk2MmY5MDUyYjM0MzczZjg4YmZjZWJiZjlkZmU3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZV
UkxDb25uZWN0aW9uRGVsZWdhdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZS5jcHAKQEAgLTE1
OCw4ICsxNTgsOSBAQCBSZXNvdXJjZVJlcXVlc3QgUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rp
b25EZWxlZ2F0ZTo6Y3JlYXRlUmVzb3VyY2VSZXF1ZXN0KENGVQogICAgICAgICBSZXRhaW5QdHI8
Q0ZTdHJpbmdSZWY+IGxhc3RIVFRQTWV0aG9kID0gbV9oYW5kbGUtPmxhc3RIVFRQTWV0aG9kKCku
Y3JlYXRlQ0ZTdHJpbmcoKTsKICAgICAgICAgUmV0YWluUHRyPENGU3RyaW5nUmVmPiBuZXdNZXRo
b2QgPSBhZG9wdENGKENGVVJMUmVxdWVzdENvcHlIVFRQUmVxdWVzdE1ldGhvZChjZlJlcXVlc3Qp
KTsKICAgICAgICAgaWYgKENGU3RyaW5nQ29tcGFyZVdpdGhPcHRpb25zKGxhc3RIVFRQTWV0aG9k
LmdldCgpLCBuZXdNZXRob2QuZ2V0KCksIENGUmFuZ2VNYWtlKDAsIENGU3RyaW5nR2V0TGVuZ3Ro
KGxhc3RIVFRQTWV0aG9kLmdldCgpKSksIGtDRkNvbXBhcmVDYXNlSW5zZW5zaXRpdmUpKSB7Ci0g
ICAgICAgICAgICBSZXRhaW5QdHI8Q0ZNdXRhYmxlVVJMUmVxdWVzdFJlZj4gbXV0YWJsZVJlcXVl
c3QgPSBhZG9wdENGKENGVVJMUmVxdWVzdENyZWF0ZU11dGFibGVDb3B5KDAsIGNmUmVxdWVzdCkp
OwotICAgICAgICAgICAgd2tTZXRSZXF1ZXN0U3RvcmFnZVNlc3Npb24obV9oYW5kbGUtPnN0b3Jh
Z2VTZXNzaW9uKCksIG11dGFibGVSZXF1ZXN0LmdldCgpKTsKKyAgICAgICAgICAgIGF1dG8gbXV0
YWJsZVJlcXVlc3QgPSBhZG9wdENGKENGVVJMUmVxdWVzdENyZWF0ZU11dGFibGVDb3B5KGtDRkFs
bG9jYXRvckRlZmF1bHQsIGNmUmVxdWVzdCkpOworICAgICAgICAgICAgaWYgKGF1dG8gc3RvcmFn
ZVNlc3Npb24gPSBtX2hhbmRsZS0+c3RvcmFnZVNlc3Npb24oKSkKKyAgICAgICAgICAgICAgICBf
Q0ZVUkxSZXF1ZXN0U2V0U3RvcmFnZVNlc3Npb24obXV0YWJsZVJlcXVlc3QuZ2V0KCksIHN0b3Jh
Z2VTZXNzaW9uKTsKICAgICAgICAgICAgIENGVVJMUmVxdWVzdFNldEhUVFBSZXF1ZXN0TWV0aG9k
KG11dGFibGVSZXF1ZXN0LmdldCgpLCBsYXN0SFRUUE1ldGhvZC5nZXQoKSk7CiAKICAgICAgICAg
ICAgIEZvcm1EYXRhKiBib2R5ID0gbV9oYW5kbGUtPmZpcnN0UmVxdWVzdCgpLmh0dHBCb2R5KCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNl
SGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGVXaXRoT3BlcmF0aW9uUXVldWUuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVj
dGlvbkRlbGVnYXRlV2l0aE9wZXJhdGlvblF1ZXVlLmNwcAppbmRleCBkMDYyYTU0OGQ3MTZkOGVk
OGE5Y2FkNzYyNzAyYjVlOTM3NzJlMzQxLi45ZjBkNmFmYzk4NDdmZTJhYzU0ZDdmNmRlMDRhZWJh
NGM5MjZlMWVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2Nm
L1Jlc291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGVXaXRoT3BlcmF0aW9uUXVldWUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5k
bGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZVdpdGhPcGVyYXRpb25RdWV1ZS5jcHAKQEAgLTMwLDEy
ICszMCwxMiBAQAogCiAjaW5jbHVkZSAiQXV0aGVudGljYXRpb25DRi5oIgogI2luY2x1ZGUgIkF1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLmgiCisjaW5jbHVkZSAiQ0ZOZXR3b3JrU1BJLmgiCiAjaW5j
bHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIlJlc291cmNlSGFuZGxlLmgiCiAjaW5jbHVkZSAi
UmVzb3VyY2VIYW5kbGVDbGllbnQuaCIKICNpbmNsdWRlICJSZXNvdXJjZVJlc3BvbnNlLmgiCiAj
aW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgiCi0jaW5jbHVkZSAiV2ViQ29yZVN5c3RlbUludGVyZmFj
ZS5oIgogI2luY2x1ZGUgIldlYkNvcmVVUkxSZXNwb25zZS5oIgogI2luY2x1ZGUgPHd0Zi9NYWlu
VGhyZWFkLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgpAQCAtMTQwLDcgKzE0MCw3
IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZVdpdGhPcGVyYXRp
b25RdWV1ZTo6ZGlkUmVjZWl2ZVJlc3BvbnNlCiAgICAgICAgIExPRyhOZXR3b3JrLCAiQ0ZOZXQg
LSBSZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlV2l0aE9wZXJhdGlvblF1ZXVl
OjpkaWRSZWNlaXZlUmVzcG9uc2UoaGFuZGxlPSVwKSAoJXMpIiwgbV9oYW5kbGUsIG1faGFuZGxl
LT5maXJzdFJlcXVlc3QoKS51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKIAogICAgICAg
ICAvLyBBdm9pZCBNSU1FIHR5cGUgc25pZmZpbmcgaWYgdGhlIHJlc3BvbnNlIGNvbWVzIGJhY2sg
YXMgMzA0IE5vdCBNb2RpZmllZC4KLSAgICAgICAgQ0ZIVFRQTWVzc2FnZVJlZiBtc2cgPSB3a0dl
dENGVVJMUmVzcG9uc2VIVFRQUmVzcG9uc2UoY2ZSZXNwb25zZSk7CisgICAgICAgIGF1dG8gbXNn
ID0gQ0ZVUkxSZXNwb25zZUdldEhUVFBSZXNwb25zZShjZlJlc3BvbnNlKTsKICAgICAgICAgaW50
IHN0YXR1c0NvZGUgPSBtc2cgPyBDRkhUVFBNZXNzYWdlR2V0UmVzcG9uc2VTdGF0dXNDb2RlKG1z
ZykgOiAwOwogCiAgICAgICAgIGlmIChzdGF0dXNDb2RlICE9IDMwNCkKQEAgLTE0OCw3ICsxNDgs
NyBAQCB2b2lkIFJlc291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGVXaXRoT3BlcmF0
aW9uUXVldWU6OmRpZFJlY2VpdmVSZXNwb25zZQogCiAjaWYgIVBMQVRGT1JNKElPUykKICAgICAg
ICAgaWYgKF9DRlVSTFJlcXVlc3RDb3B5UHJvdG9jb2xQcm9wZXJ0eUZvcktleShtX2hhbmRsZS0+
Zmlyc3RSZXF1ZXN0KCkuY2ZVUkxSZXF1ZXN0KERvTm90VXBkYXRlSFRUUEJvZHkpLCBDRlNUUigi
Rm9yY2VIVE1MTUlNRVR5cGUiKSkpCi0gICAgICAgICAgICB3a1NldENGVVJMUmVzcG9uc2VNSU1F
VHlwZShjZlJlc3BvbnNlLCBDRlNUUigidGV4dC9odG1sIikpOworICAgICAgICAgICAgQ0ZVUkxS
ZXNwb25zZVNldE1JTUVUeXBlKGNmUmVzcG9uc2UsIENGU1RSKCJ0ZXh0L2h0bWwiKSk7CiAjZW5k
aWYgLy8gIVBMQVRGT1JNKElPUykKICAgICAgICAgCiAgICAgICAgIFJlc291cmNlUmVzcG9uc2Ug
cmVzb3VyY2VSZXNwb25zZShjZlJlc3BvbnNlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VSZXF1ZXN0Q0ZOZXQuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZVJlcXVlc3RDRk5ldC5jcHAKaW5kZXgg
YTRkNDNkZjNjMGE0MjhmMTcwNjE4MmU4YThhYWJjMDVkZGEyM2E5ZS4uMTk0NTUyNWQ4YTBjM2Q1
ZDBmYjFhYzgyZjMzZGIzMTczZTAyMjI3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZVJlcXVlc3RDRk5ldC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZVJlcXVlc3RDRk5ldC5jcHAKQEAgLTI2
LDYgKzI2LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJSZXNvdXJjZVJlcXVl
c3RDRk5ldC5oIgogCisjaW5jbHVkZSAiQ0ZOZXR3b3JrU1BJLmgiCiAjaW5jbHVkZSAiSFRUUEhl
YWRlck5hbWVzLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VSZXF1ZXN0LmgiCiAKQEAgLTM5LDEwICs0
MCw2IEBACiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogI2VuZGlmCiAKLSNpZiBQTEFU
Rk9STShJT1MpCi0jaW5jbHVkZSAiQ0ZOZXR3b3JrQ29ubmVjdGlvbkNhY2hlU1BJLmgiCi0jZW5k
aWYKLQogI2lmIFBMQVRGT1JNKENPQ09BKQogI2luY2x1ZGUgIlJlc291cmNlTG9hZFByaW9yaXR5
LmgiCiAjaW5jbHVkZSAiV2ViQ29yZVN5c3RlbUludGVyZmFjZS5oIgpAQCAtMTU0LDEzICsxNTEs
MTMgQEAgdm9pZCBSZXNvdXJjZVJlcXVlc3Q6OmRvVXBkYXRlUGxhdGZvcm1SZXF1ZXN0KCkKICAg
ICBDRlVSTFJlcXVlc3RTZXRIVFRQUmVxdWVzdE1ldGhvZChjZlJlcXVlc3QsIGh0dHBNZXRob2Qo
KS5jcmVhdGVDRlN0cmluZygpLmdldCgpKTsKIAogICAgIGlmIChodHRwUGlwZWxpbmluZ0VuYWJs
ZWQoKSkKLSAgICAgICAgd2tIVFRQUmVxdWVzdEVuYWJsZVBpcGVsaW5pbmcoY2ZSZXF1ZXN0KTsK
KyAgICAgICAgQ0ZVUkxSZXF1ZXN0U2V0U2hvdWxkUGlwZWxpbmVIVFRQKGNmUmVxdWVzdCwgdHJ1
ZSwgdHJ1ZSk7CiAKICAgICBpZiAocmVzb3VyY2VQcmlvcml0aWVzRW5hYmxlZCgpKQotICAgICAg
ICB3a1NldEhUVFBSZXF1ZXN0UHJpb3JpdHkoY2ZSZXF1ZXN0LCB0b1BsYXRmb3JtUmVxdWVzdFBy
aW9yaXR5KHByaW9yaXR5KCkpKTsKKyAgICAgICAgQ0ZVUkxSZXF1ZXN0U2V0UmVxdWVzdFByaW9y
aXR5KGNmUmVxdWVzdCwgdG9QbGF0Zm9ybVJlcXVlc3RQcmlvcml0eShwcmlvcml0eSgpKSk7CiAK
ICNpZiAhUExBVEZPUk0oV0lOKQotICAgIHdrQ0ZVUkxSZXF1ZXN0QWxsb3dBbGxQb3N0Q2FjaGlu
ZyhjZlJlcXVlc3QpOworICAgIF9DRlVSTFJlcXVlc3RTZXRQcm90b2NvbFByb3BlcnR5KGNmUmVx
dWVzdCwga0NGVVJMUmVxdWVzdEFsbG93QWxsUE9TVENhY2hpbmcsIGtDRkJvb2xlYW5UcnVlKTsK
ICNlbmRpZgogCiAgICAgc2V0SGVhZGVyRmllbGRzKGNmUmVxdWVzdCwgaHR0cEhlYWRlckZpZWxk
cygpKTsKQEAgLTI2MSw3ICsyNTgsNyBAQCB2b2lkIFJlc291cmNlUmVxdWVzdDo6ZG9VcGRhdGVS
ZXNvdXJjZVJlcXVlc3QoKQogICAgIG1fYWxsb3dDb29raWVzID0gQ0ZVUkxSZXF1ZXN0U2hvdWxk
SGFuZGxlSFRUUENvb2tpZXMobV9jZlJlcXVlc3QuZ2V0KCkpOwogCiAgICAgaWYgKHJlc291cmNl
UHJpb3JpdGllc0VuYWJsZWQoKSkKLSAgICAgICAgbV9wcmlvcml0eSA9IHRvUmVzb3VyY2VMb2Fk
UHJpb3JpdHkod2tHZXRIVFRQUmVxdWVzdFByaW9yaXR5KG1fY2ZSZXF1ZXN0LmdldCgpKSk7Cisg
ICAgICAgIG1fcHJpb3JpdHkgPSB0b1Jlc291cmNlTG9hZFByaW9yaXR5KENGVVJMUmVxdWVzdEdl
dFJlcXVlc3RQcmlvcml0eShtX2NmUmVxdWVzdC5nZXQoKSkpOwogCiAgICAgbV9odHRwSGVhZGVy
RmllbGRzLmNsZWFyKCk7CiAgICAgaWYgKENGRGljdGlvbmFyeVJlZiBoZWFkZXJzID0gQ0ZVUkxS
ZXF1ZXN0Q29weUFsbEhUVFBIZWFkZXJGaWVsZHMobV9jZlJlcXVlc3QuZ2V0KCkpKSB7CkBAIC0z
MTYsOCArMzEzLDkgQEAgdm9pZCBSZXNvdXJjZVJlcXVlc3Q6OnNldFN0b3JhZ2VTZXNzaW9uKENG
VVJMU3RvcmFnZVNlc3Npb25SZWYgc3RvcmFnZVNlc3Npb24pCiB7CiAgICAgdXBkYXRlUGxhdGZv
cm1SZXF1ZXN0KCk7CiAKLSAgICBDRk11dGFibGVVUkxSZXF1ZXN0UmVmIGNmUmVxdWVzdCA9IENG
VVJMUmVxdWVzdENyZWF0ZU11dGFibGVDb3B5KDAsIG1fY2ZSZXF1ZXN0LmdldCgpKTsKLSAgICB3
a1NldFJlcXVlc3RTdG9yYWdlU2Vzc2lvbihzdG9yYWdlU2Vzc2lvbiwgY2ZSZXF1ZXN0KTsKKyAg
ICBhdXRvIGNmUmVxdWVzdCA9IENGVVJMUmVxdWVzdENyZWF0ZU11dGFibGVDb3B5KDAsIG1fY2ZS
ZXF1ZXN0LmdldCgpKTsKKyAgICBpZiAoc3RvcmFnZVNlc3Npb24pCisgICAgICAgIF9DRlVSTFJl
cXVlc3RTZXRTdG9yYWdlU2Vzc2lvbihjZlJlcXVlc3QsIHN0b3JhZ2VTZXNzaW9uKTsKICAgICBt
X2NmUmVxdWVzdCA9IGFkb3B0Q0YoY2ZSZXF1ZXN0KTsKICNpZiBQTEFURk9STShDT0NPQSkKICAg
ICBjbGVhck9yVXBkYXRlTlNVUkxSZXF1ZXN0KCk7CkBAIC0zOTEsNyArMzg5LDggQEAgdW5zaWdu
ZWQgaW5pdGlhbGl6ZU1heGltdW1IVFRQQ29ubmVjdGlvbkNvdW50UGVySG9zdCgpCiAgICAgc3Rh
dGljIGNvbnN0IHVuc2lnbmVkIHByZWZlcnJlZENvbm5lY3Rpb25Db3VudCA9IDY7CiAgICAgc3Rh
dGljIGNvbnN0IHVuc2lnbmVkIHVubGltaXRlZFJlcXVlc3RDb3VudCA9IDEwMDAwOwogCi0gICAg
dW5zaWduZWQgbWF4aW11bUhUVFBDb25uZWN0aW9uQ291bnRQZXJIb3N0ID0gd2tJbml0aWFsaXpl
TWF4aW11bUhUVFBDb25uZWN0aW9uQ291bnRQZXJIb3N0KHByZWZlcnJlZENvbm5lY3Rpb25Db3Vu
dCk7CisgICAgX0NGTmV0d29ya0hUVFBDb25uZWN0aW9uQ2FjaGVTZXRMaW1pdChrSFRUUExvYWRX
aWR0aCwgcHJlZmVycmVkQ29ubmVjdGlvbkNvdW50KTsKKyAgICB1bnNpZ25lZCBtYXhpbXVtSFRU
UENvbm5lY3Rpb25Db3VudFBlckhvc3QgPSBfQ0ZOZXR3b3JrSFRUUENvbm5lY3Rpb25DYWNoZUdl
dExpbWl0KGtIVFRQTG9hZFdpZHRoKTsKIAogICAgIEJvb2xlYW4ga2V5RXhpc3RzQW5kSGFzVmFs
aWRGb3JtYXQgPSBmYWxzZTsKICAgICBCb29sZWFuIHByZWZWYWx1ZSA9IENGUHJlZmVyZW5jZXNH
ZXRBcHBCb29sZWFuVmFsdWUoQ0ZTVFIoIldlYktpdEVuYWJsZUhUVFBQaXBlbGluaW5nIiksIGtD
RlByZWZlcmVuY2VzQ3VycmVudEFwcGxpY2F0aW9uLCAma2V5RXhpc3RzQW5kSGFzVmFsaWRGb3Jt
YXQpOwpAQCAtNDAyLDEwICs0MDEsMTAgQEAgdW5zaWduZWQgaW5pdGlhbGl6ZU1heGltdW1IVFRQ
Q29ubmVjdGlvbkNvdW50UGVySG9zdCgpCiAgICAgaWYgKCFSZXNvdXJjZVJlcXVlc3Q6OnJlc291
cmNlUHJpb3JpdGllc0VuYWJsZWQoKSkKICAgICAgICAgcmV0dXJuIG1heGltdW1IVFRQQ29ubmVj
dGlvbkNvdW50UGVySG9zdDsKIAotICAgIHdrU2V0SFRUUFJlcXVlc3RNYXhpbXVtUHJpb3JpdHko
dG9QbGF0Zm9ybVJlcXVlc3RQcmlvcml0eShSZXNvdXJjZUxvYWRQcmlvcml0eTo6SGlnaGVzdCkp
OworICAgIF9DRk5ldHdvcmtIVFRQQ29ubmVjdGlvbkNhY2hlU2V0TGltaXQoa0hUVFBQcmlvcml0
eU51bUxldmVscywgdG9QbGF0Zm9ybVJlcXVlc3RQcmlvcml0eShSZXNvdXJjZUxvYWRQcmlvcml0
eTo6SGlnaGVzdCkpOwogI2lmICFQTEFURk9STShXSU4pCiAgICAgLy8gRklYTUU6IDxyZGFyOi8v
cHJvYmxlbS85Mzc1NjA5PiBJbXBsZW1lbnQgbWluaW11bSBmYXN0IGxhbmUgcHJpb3JpdHkgc2V0
dGluZyBvbiBXaW5kb3dzCi0gICAgd2tTZXRIVFRQUmVxdWVzdE1pbmltdW1GYXN0TGFuZVByaW9y
aXR5KHRvUGxhdGZvcm1SZXF1ZXN0UHJpb3JpdHkoUmVzb3VyY2VMb2FkUHJpb3JpdHk6Ok1lZGl1
bSkpOworICAgIF9DRk5ldHdvcmtIVFRQQ29ubmVjdGlvbkNhY2hlU2V0TGltaXQoa0hUVFBNaW5p
bXVtRmFzdExhbmVQcmlvcml0eSwgdG9QbGF0Zm9ybVJlcXVlc3RQcmlvcml0eShSZXNvdXJjZUxv
YWRQcmlvcml0eTo6TWVkaXVtKSk7CiAjZW5kaWYKIAogICAgIHJldHVybiB1bmxpbWl0ZWRSZXF1
ZXN0Q291bnQ7CkBAIC00MjAsOSArNDE5LDkgQEAgdm9pZCBpbml0aWFsaXplSFRUUENvbm5lY3Rp
b25TZXR0aW5nc09uU3RhcnR1cCgpCiAgICAgLy8gV2UgY2FuJ3QgcmVhZCBzZXR0aW5ncyBoZXJl
IGFzIHRoaXMgaXMgY2FsbGVkIHRvbyBlYXJseSBmb3IgdGhhdC4gQWxsIHZhbHVlcyBuZWVkIHRv
IGJlIGNvbnN0YW50cy4KICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgcHJlZmVycmVkQ29ubmVj
dGlvbkNvdW50ID0gNjsKICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgZmFzdExhbmVDb25uZWN0
aW9uQ291bnQgPSAxOwotICAgIHdrSW5pdGlhbGl6ZU1heGltdW1IVFRQQ29ubmVjdGlvbkNvdW50
UGVySG9zdChwcmVmZXJyZWRDb25uZWN0aW9uQ291bnQpOwotICAgIHdrU2V0SFRUUFJlcXVlc3RN
YXhpbXVtUHJpb3JpdHkodG9QbGF0Zm9ybVJlcXVlc3RQcmlvcml0eShSZXNvdXJjZUxvYWRQcmlv
cml0eTo6SGlnaGVzdCkpOwotICAgIHdrU2V0SFRUUFJlcXVlc3RNaW5pbXVtRmFzdExhbmVQcmlv
cml0eSh0b1BsYXRmb3JtUmVxdWVzdFByaW9yaXR5KFJlc291cmNlTG9hZFByaW9yaXR5OjpNZWRp
dW0pKTsKKyAgICBfQ0ZOZXR3b3JrSFRUUENvbm5lY3Rpb25DYWNoZVNldExpbWl0KGtIVFRQTG9h
ZFdpZHRoLCBwcmVmZXJyZWRDb25uZWN0aW9uQ291bnQpOworICAgIF9DRk5ldHdvcmtIVFRQQ29u
bmVjdGlvbkNhY2hlU2V0TGltaXQoa0hUVFBQcmlvcml0eU51bUxldmVscywgdG9QbGF0Zm9ybVJl
cXVlc3RQcmlvcml0eShSZXNvdXJjZUxvYWRQcmlvcml0eTo6SGlnaGVzdCkpOworICAgIF9DRk5l
dHdvcmtIVFRQQ29ubmVjdGlvbkNhY2hlU2V0TGltaXQoa0hUVFBNaW5pbXVtRmFzdExhbmVQcmlv
cml0eSwgdG9QbGF0Zm9ybVJlcXVlc3RQcmlvcml0eShSZXNvdXJjZUxvYWRQcmlvcml0eTo6TWVk
aXVtKSk7CiAgICAgX0NGTmV0d29ya0hUVFBDb25uZWN0aW9uQ2FjaGVTZXRMaW1pdChrSFRUUE51
bUZhc3RMYW5lcywgZmFzdExhbmVDb25uZWN0aW9uQ291bnQpOwogfQogI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlUmVxdWVzdENG
TmV0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlUmVxdWVz
dENGTmV0LmgKaW5kZXggMDM1MjljOTJiOWI0NzhiMzAzNDU5NzhiZTkxODc0MjEyZmU3MWQyNC4u
Y2JjNDllMTdlNzA5MzQ1MjI1YWM5OWMzOGM0ZDdiZTk3ZTc5ZGIxMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZVJlcXVlc3RDRk5ldC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VSZXF1ZXN0Q0ZO
ZXQuaApAQCAtMjYsMTIgKzI2LDkgQEAKICNpZm5kZWYgUmVzb3VyY2VSZXF1ZXN0Q0ZOZXRfaAog
I2RlZmluZSBSZXNvdXJjZVJlcXVlc3RDRk5ldF9oCiAKKyNpbmNsdWRlICJDRk5ldHdvcmtTUEku
aCIKICNpbmNsdWRlICJSZXNvdXJjZUxvYWRQcmlvcml0eS5oIgogCi0jaWYgVVNFKENGTkVUV09S
SykKLXR5cGVkZWYgY29uc3Qgc3RydWN0IF9DRlVSTFJlcXVlc3QqIENGVVJMUmVxdWVzdFJlZjsK
LSNlbmRpZgotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFJlc291cmNlUmVxdWVzdDsK
QEAgLTQxLDcgKzM4LDcgQEAgdm9pZCBnZXRSZXNvdXJjZVJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0
JiwgQ0ZVUkxSZXF1ZXN0UmVmKTsKIENGVVJMUmVxdWVzdFJlZiBjZlVSTFJlcXVlc3QoY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0Jik7CiAjZW5kaWYKIAotaW5saW5lIFJlc291cmNlTG9hZFByaW9yaXR5
IHRvUmVzb3VyY2VMb2FkUHJpb3JpdHkoaW50IHByaW9yaXR5KQoraW5saW5lIFJlc291cmNlTG9h
ZFByaW9yaXR5IHRvUmVzb3VyY2VMb2FkUHJpb3JpdHkoQ0ZVUkxSZXF1ZXN0UHJpb3JpdHkgcHJp
b3JpdHkpCiB7CiAgICAgc3dpdGNoIChwcmlvcml0eSkgewogICAgIGNhc2UgLTE6CkBAIC02MSw3
ICs1OCw3IEBAIGlubGluZSBSZXNvdXJjZUxvYWRQcmlvcml0eSB0b1Jlc291cmNlTG9hZFByaW9y
aXR5KGludCBwcmlvcml0eSkKICAgICB9CiB9CiAKLWlubGluZSBpbnQgdG9QbGF0Zm9ybVJlcXVl
c3RQcmlvcml0eShSZXNvdXJjZUxvYWRQcmlvcml0eSBwcmlvcml0eSkKK2lubGluZSBDRlVSTFJl
cXVlc3RQcmlvcml0eSB0b1BsYXRmb3JtUmVxdWVzdFByaW9yaXR5KFJlc291cmNlTG9hZFByaW9y
aXR5IHByaW9yaXR5KQogewogICAgIHN3aXRjaCAocHJpb3JpdHkpIHsKICAgICBjYXNlIFJlc291
cmNlTG9hZFByaW9yaXR5OjpWZXJ5TG93OgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZVJlc3BvbnNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlUmVzcG9uc2UuaAppbmRleCBhY2MxZDQ1Njk3NWNjMTJm
MzlhMzM4ZGJiMjQzOTQxZTU3YzI2ZDFhLi5jOGU0NjY1YmY5MWQ2NDllYzAwMGViYzA3YzUwZWZk
ZWYzOTk5Y2QwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2Nm
L1Jlc291cmNlUmVzcG9uc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L2NmL1Jlc291cmNlUmVzcG9uc2UuaApAQCAtMzAsNyArMzAsNyBAQAogI2luY2x1ZGUgPHd0Zi9S
ZXRhaW5QdHIuaD4KIAogI2lmIFVTRShDRk5FVFdPUkspCi10eXBlZGVmIHN0cnVjdCBfQ0ZVUkxS
ZXNwb25zZSogQ0ZVUkxSZXNwb25zZVJlZjsKKyNpbmNsdWRlICJDRk5ldHdvcmtTUEkuaCIKICNl
bmRpZgogCiBPQkpDX0NMQVNTIE5TVVJMUmVzcG9uc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlUmVzcG9uc2VDRk5ldC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlUmVzcG9uc2VDRk5ldC5jcHAK
aW5kZXggNGJhZTc0ZTgzODE2YzE5NGVkYzE1NGQ4NGMyZGU4ZjZkZDE2ZmM5NS4uYjAxMWE1N2Zm
NGU0Y2MyZTA3ODM2Njg0YThjNzM4NDQwMmIzOGNlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZVJlc3BvbnNlQ0ZOZXQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VSZXNwb25zZUNGTmV0LmNw
cApAQCAtMTEzLDEzICsxMTMsMTIgQEAgdm9pZCBSZXNvdXJjZVJlc3BvbnNlOjpwbGF0Zm9ybUxh
enlJbml0KEluaXRMZXZlbCBpbml0TGV2ZWwpCiAgICAgbV9pbml0TGV2ZWwgPSBpbml0TGV2ZWw7
CiB9CiAKKyNpZiAhUExBVEZPUk0oQ09DT0EpCiBDZXJ0aWZpY2F0ZUluZm8gUmVzb3VyY2VSZXNw
b25zZTo6cGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8oKSBjb25zdAogewotI2lmIFBMQVRGT1JNKENP
Q09BKQotICAgIHJldHVybiBDZXJ0aWZpY2F0ZUluZm8oYWRvcHRDRih3a0NvcHlOU1VSTFJlc3Bv
bnNlQ2VydGlmaWNhdGVDaGFpbihuc1VSTFJlc3BvbnNlKCkpKSk7Ci0jZW5kaWYKLSAgICByZXR1
cm4gQ2VydGlmaWNhdGVJbmZvKCk7CisgICAgcmV0dXJuIHsgfTsKIH0KKyNlbmRpZgogCiBTdHJp
bmcgUmVzb3VyY2VSZXNwb25zZTo6cGxhdGZvcm1TdWdnZXN0ZWRGaWxlbmFtZSgpIGNvbnN0CiB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1N5bmNocm9u
b3VzUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1N5bmNocm9ub3VzUmVzb3VyY2VIYW5kbGVDRlVSTENv
bm5lY3Rpb25EZWxlZ2F0ZS5jcHAKaW5kZXggNTc4OTZkZTJiNjMzZTE2NjQ1YjFjN2VhZDZmZDkw
MjBmYmRjNWM5OC4uOTI2NDNkOTdjOTc4NDNjN2UyNmM0OWZhZDkwYjJjZTQ3MjBhN2EwOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9TeW5jaHJvbm91c1Jl
c291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvU3luY2hyb25vdXNSZXNvdXJjZUhhbmRsZUNGVVJMQ29u
bmVjdGlvbkRlbGVnYXRlLmNwcApAQCAtNDEsNiArNDEsNyBAQAogI2luY2x1ZGUgPHd0Zi90ZXh0
L1dURlN0cmluZy5oPgogCiAjaWYgUExBVEZPUk0oQ09DT0EpCisjaW5jbHVkZSAiQ0ZOZXR3b3Jr
U1BJLmgiCiAjaW5jbHVkZSAiV2ViQ29yZVN5c3RlbUludGVyZmFjZS5oIgogI2luY2x1ZGUgIldl
YkNvcmVVUkxSZXNwb25zZS5oIgogI2VuZGlmIC8vIFBMQVRGT1JNKENPQ09BKQpAQCAtMTQzLDcg
KzE0NCw3IEBAIHZvaWQgU3luY2hyb25vdXNSZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRl
bGVnYXRlOjpkaWRSZWNlaXZlUmVzcG9uc2UoQ0ZVUkxDCiAKICNpZiBQTEFURk9STShDT0NPQSkK
ICAgICAvLyBBdm9pZCBNSU1FIHR5cGUgc25pZmZpbmcgaWYgdGhlIHJlc3BvbnNlIGNvbWVzIGJh
Y2sgYXMgMzA0IE5vdCBNb2RpZmllZC4KLSAgICBDRkhUVFBNZXNzYWdlUmVmIG1zZyA9IHdrR2V0
Q0ZVUkxSZXNwb25zZUhUVFBSZXNwb25zZShjZlJlc3BvbnNlKTsKKyAgICBhdXRvIG1zZyA9IENG
VVJMUmVzcG9uc2VHZXRIVFRQUmVzcG9uc2UoY2ZSZXNwb25zZSk7CiAgICAgaW50IHN0YXR1c0Nv
ZGUgPSBtc2cgPyBDRkhUVFBNZXNzYWdlR2V0UmVzcG9uc2VTdGF0dXNDb2RlKG1zZykgOiAwOwog
CiAgICAgaWYgKHN0YXR1c0NvZGUgIT0gMzA0KQpAQCAtMTUxLDcgKzE1Miw3IEBAIHZvaWQgU3lu
Y2hyb25vdXNSZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlOjpkaWRSZWNlaXZl
UmVzcG9uc2UoQ0ZVUkxDCiAKICNpZiAhUExBVEZPUk0oSU9TKQogICAgIGlmIChfQ0ZVUkxSZXF1
ZXN0Q29weVByb3RvY29sUHJvcGVydHlGb3JLZXkobV9oYW5kbGUtPmZpcnN0UmVxdWVzdCgpLmNm
VVJMUmVxdWVzdChEb05vdFVwZGF0ZUhUVFBCb2R5KSwgQ0ZTVFIoIkZvcmNlSFRNTE1JTUVUeXBl
IikpKQotICAgICAgICB3a1NldENGVVJMUmVzcG9uc2VNSU1FVHlwZShjZlJlc3BvbnNlLCBDRlNU
UigidGV4dC9odG1sIikpOworICAgICAgICBDRlVSTFJlc3BvbnNlU2V0TUlNRVR5cGUoY2ZSZXNw
b25zZSwgQ0ZTVFIoInRleHQvaHRtbCIpKTsKICNlbmRpZiAvLyAhUExBVEZPUk0oSU9TKQogI2Vs
c2UKICAgICBpZiAoIUNGVVJMUmVzcG9uc2VHZXRNSU1FVHlwZShjZlJlc3BvbnNlKSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY29jb2EvQ3JlZGVudGlhbENv
Y29hLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29hL0NyZWRlbnRpYWxD
b2NvYS5oCmluZGV4IGYyY2Q5NjMyYzIwZTY1NTcwZGFjZTliOWMwOTExMDc3NmQ3NmUzMTcuLmVj
ODIyZTRlYjljZjUwNTExZmRlY2YwZDY5ODU5YzllNTczZjBiMTAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY29jb2EvQ3JlZGVudGlhbENvY29hLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jb2NvYS9DcmVkZW50aWFsQ29jb2EuaApA
QCAtMzEsNyArMzEsNyBAQAogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KIAogI2lmIFVTRShD
Rk5FVFdPUkspCi10eXBlZGVmIGNvbnN0IHN0cnVjdCBfQ0ZVUkxDcmVkZW50aWFsKiBDRlVSTENy
ZWRlbnRpYWxSZWY7CisjaW5jbHVkZSAiQ0ZOZXR3b3JrU1BJLmgiCiAjZW5kaWYKIAogT0JKQ19D
TEFTUyBOU1VSTENyZWRlbnRpYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL2NvY29hL1Jlc291cmNlUmVxdWVzdENvY29hLm1tIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9jb2NvYS9SZXNvdXJjZVJlcXVlc3RDb2NvYS5tbQppbmRleCAzYjFi
MGEyZjg3NDc0N2IzOGEyYzgzODBmYjY1NTk4NmJkZWI5ZWNjLi5mY2Y0OTM3YzM2MGIyMmFmOGUx
YmZjOWE0NTMwYmI5MWMxNzFiYjVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL2NvY29hL1Jlc291cmNlUmVxdWVzdENvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvY29jb2EvUmVzb3VyY2VSZXF1ZXN0Q29jb2EubW0KQEAgLTc5
LDcgKzc5LDcgQEAgdm9pZCBSZXNvdXJjZVJlcXVlc3Q6OmRvVXBkYXRlUmVzb3VyY2VSZXF1ZXN0
KCkKICAgICBtX2FsbG93Q29va2llcyA9IFttX25zUmVxdWVzdC5nZXQoKSBIVFRQU2hvdWxkSGFu
ZGxlQ29va2llc107CiAKICAgICBpZiAocmVzb3VyY2VQcmlvcml0aWVzRW5hYmxlZCgpKQotICAg
ICAgICBtX3ByaW9yaXR5ID0gdG9SZXNvdXJjZUxvYWRQcmlvcml0eSh3a0dldEhUVFBSZXF1ZXN0
UHJpb3JpdHkoW21fbnNSZXF1ZXN0LmdldCgpIF9DRlVSTFJlcXVlc3RdKSk7CisgICAgICAgIG1f
cHJpb3JpdHkgPSB0b1Jlc291cmNlTG9hZFByaW9yaXR5KG1fbnNSZXF1ZXN0ID8gQ0ZVUkxSZXF1
ZXN0R2V0UmVxdWVzdFByaW9yaXR5KFttX25zUmVxdWVzdCBfQ0ZVUkxSZXF1ZXN0XSkgOiAwKTsK
IAogICAgIG1faHR0cEhlYWRlckZpZWxkcy5jbGVhcigpOwogICAgIFtbbV9uc1JlcXVlc3QgYWxs
SFRUUEhlYWRlckZpZWxkc10gZW51bWVyYXRlS2V5c0FuZE9iamVjdHNVc2luZ0Jsb2NrOiBeKE5T
U3RyaW5nICpuYW1lLCBOU1N0cmluZyAqdmFsdWUsIEJPT0wgKikgewpAQCAtMTMzLDEzICsxMzMs
MTMgQEAgdm9pZCBSZXNvdXJjZVJlcXVlc3Q6OmRvVXBkYXRlUGxhdGZvcm1SZXF1ZXN0KCkKICAg
ICAgICAgbnNSZXF1ZXN0ID0gW1tOU011dGFibGVVUkxSZXF1ZXN0IGFsbG9jXSBpbml0V2l0aFVS
TDp1cmwoKV07CiAKICAgICBpZiAoUmVzb3VyY2VSZXF1ZXN0OjpodHRwUGlwZWxpbmluZ0VuYWJs
ZWQoKSkKLSAgICAgICAgd2tIVFRQUmVxdWVzdEVuYWJsZVBpcGVsaW5pbmcoW25zUmVxdWVzdCBf
Q0ZVUkxSZXF1ZXN0XSk7CisgICAgICAgIENGVVJMUmVxdWVzdFNldFNob3VsZFBpcGVsaW5lSFRU
UChbbnNSZXF1ZXN0IF9DRlVSTFJlcXVlc3RdLCB0cnVlLCB0cnVlKTsKIAogICAgIGlmIChSZXNv
dXJjZVJlcXVlc3Q6OnJlc291cmNlUHJpb3JpdGllc0VuYWJsZWQoKSkKLSAgICAgICAgd2tTZXRI
VFRQUmVxdWVzdFByaW9yaXR5KFtuc1JlcXVlc3QgX0NGVVJMUmVxdWVzdF0sIHRvUGxhdGZvcm1S
ZXF1ZXN0UHJpb3JpdHkocHJpb3JpdHkoKSkpOworICAgICAgICBDRlVSTFJlcXVlc3RTZXRSZXF1
ZXN0UHJpb3JpdHkoW25zUmVxdWVzdCBfQ0ZVUkxSZXF1ZXN0XSwgdG9QbGF0Zm9ybVJlcXVlc3RQ
cmlvcml0eShwcmlvcml0eSgpKSk7CiAKICAgICBbbnNSZXF1ZXN0IHNldENhY2hlUG9saWN5OihO
U1VSTFJlcXVlc3RDYWNoZVBvbGljeSljYWNoZVBvbGljeSgpXTsKLSAgICB3a0NGVVJMUmVxdWVz
dEFsbG93QWxsUG9zdENhY2hpbmcoW25zUmVxdWVzdCBfQ0ZVUkxSZXF1ZXN0XSk7CisgICAgX0NG
VVJMUmVxdWVzdFNldFByb3RvY29sUHJvcGVydHkoW25zUmVxdWVzdCBfQ0ZVUkxSZXF1ZXN0XSwg
a0NGVVJMUmVxdWVzdEFsbG93QWxsUE9TVENhY2hpbmcsIGtDRkJvb2xlYW5UcnVlKTsKIAogICAg
IGRvdWJsZSB0aW1lb3V0SW50ZXJ2YWwgPSBSZXNvdXJjZVJlcXVlc3RCYXNlOjp0aW1lb3V0SW50
ZXJ2YWwoKTsKICAgICBpZiAodGltZW91dEludGVydmFsKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9jb2NvYS9SZXNvdXJjZVJlc3BvbnNlQ29jb2EubW0gYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29hL1Jlc291cmNlUmVzcG9uc2VDb2Nv
YS5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4xZDc5Y2RjYzcyNDA4MTE1MWVhODcwZTFiNDc0Zjc4YTBhMTY4MTRi
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jb2Nv
YS9SZXNvdXJjZVJlc3BvbnNlQ29jb2EubW0KQEAgLTAsMCArMSwyMzMgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMDYgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycn
IEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
KyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgor
I2ltcG9ydCAiUmVzb3VyY2VSZXNwb25zZS5oIgorCisjaWYgUExBVEZPUk0oQ09DT0EpCisKKyNp
bXBvcnQgIkNGTmV0d29ya1NQSS5oIgorI2ltcG9ydCAiSFRUUFBhcnNlcnMuaCIKKyNpbXBvcnQg
IldlYkNvcmVVUkxSZXNwb25zZS5oIgorI2ltcG9ydCA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+
CisjaW1wb3J0IDxsaW1pdHM+CisjaW1wb3J0IDx3dGYvU3RkTGliRXh0cmFzLmg+CisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKwordm9pZCBSZXNvdXJjZVJlc3BvbnNlOjppbml0TlNVUkxSZXNwb25z
ZSgpIGNvbnN0Cit7CisgICAgaWYgKCFtX2h0dHBTdGF0dXNDb2RlIHx8ICFtX3VybC5wcm90b2Nv
bElzSW5IVFRQRmFtaWx5KCkpIHsKKyAgICAgICAgLy8gV29yayBhcm91bmQgYSBtaXN0YWtlIGlu
IHRoZSBOU1VSTFJlc3BvbnNlIGNsYXNzIC0gPHJkYXI6Ly9wcm9ibGVtLzY4NzUyMTk+LgorICAg
ICAgICAvLyBUaGUgaW5pdCBmdW5jdGlvbiB0YWtlcyBhbiBOU0ludGVnZXIsIGV2ZW4gdGhvdWdo
IHRoZSBhY2Nlc3NvciByZXR1cm5zIGEgbG9uZyBsb25nLgorICAgICAgICAvLyBGb3IgdmFsdWVz
IHRoYXQgd29uJ3QgZml0IGluIGFuIE5TSW50ZWdlciwgcGFzcyAtMSBpbnN0ZWFkLgorICAgICAg
ICBOU0ludGVnZXIgZXhwZWN0ZWRDb250ZW50TGVuZ3RoOworICAgICAgICBpZiAobV9leHBlY3Rl
ZENvbnRlbnRMZW5ndGggPCAwIHx8IG1fZXhwZWN0ZWRDb250ZW50TGVuZ3RoID4gc3RkOjpudW1l
cmljX2xpbWl0czxOU0ludGVnZXI+OjptYXgoKSkKKyAgICAgICAgICAgIGV4cGVjdGVkQ29udGVu
dExlbmd0aCA9IC0xOworICAgICAgICBlbHNlCisgICAgICAgICAgICBleHBlY3RlZENvbnRlbnRM
ZW5ndGggPSBzdGF0aWNfY2FzdDxOU0ludGVnZXI+KG1fZXhwZWN0ZWRDb250ZW50TGVuZ3RoKTsK
KworICAgICAgICBOU1N0cmluZyogZW5jb2RpbmdOU1N0cmluZyA9IG5zU3RyaW5nTmlsSWZFbXB0
eShtX3RleHRFbmNvZGluZ05hbWUpOworICAgICAgICBtX25zUmVzcG9uc2UgPSBhZG9wdE5TKFtb
TlNVUkxSZXNwb25zZSBhbGxvY10gaW5pdFdpdGhVUkw6bV91cmwgTUlNRVR5cGU6bV9taW1lVHlw
ZSBleHBlY3RlZENvbnRlbnRMZW5ndGg6ZXhwZWN0ZWRDb250ZW50TGVuZ3RoIHRleHRFbmNvZGlu
Z05hbWU6ZW5jb2RpbmdOU1N0cmluZ10pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAg
Ly8gRklYTUU6IFdlIGxvc2UgdGhlIHN0YXR1cyB0ZXh0IGFuZCB0aGUgSFRUUCB2ZXJzaW9uIGhl
cmUuCisgICAgTlNNdXRhYmxlRGljdGlvbmFyeSogaGVhZGVyRGljdGlvbmFyeSA9IFtOU011dGFi
bGVEaWN0aW9uYXJ5IGRpY3Rpb25hcnldOworICAgIGZvciAoYXV0byYgaGVhZGVyIDogbV9odHRw
SGVhZGVyRmllbGRzKQorICAgICAgICBbaGVhZGVyRGljdGlvbmFyeSBzZXRPYmplY3Q6KE5TU3Ry
aW5nICopaGVhZGVyLnZhbHVlIGZvcktleTooTlNTdHJpbmcgKiloZWFkZXIua2V5XTsKKworICAg
IG1fbnNSZXNwb25zZSA9IGFkb3B0TlMoW1tOU0hUVFBVUkxSZXNwb25zZSBhbGxvY10gaW5pdFdp
dGhVUkw6bV91cmwgc3RhdHVzQ29kZTptX2h0dHBTdGF0dXNDb2RlIEhUVFBWZXJzaW9uOihOU1N0
cmluZyopa0NGSFRUUFZlcnNpb24xXzEgaGVhZGVyRmllbGRzOmhlYWRlckRpY3Rpb25hcnldKTsK
KworICAgIC8vIE1pbWUgdHlwZSBzbmlmZmluZyBkb2Vzbid0IHdvcmsgd2l0aCBhIHN5bnRoZXNp
emVkIHJlc3BvbnNlLgorICAgIFttX25zUmVzcG9uc2UuZ2V0KCkgX3NldE1JTUVUeXBlOihOU1N0
cmluZyAqKW1fbWltZVR5cGVdOworfQorCitDZXJ0aWZpY2F0ZUluZm8gUmVzb3VyY2VSZXNwb25z
ZTo6cGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8oKSBjb25zdAoreworICAgIEFTU0VSVChtX25zUmVz
cG9uc2UpOworICAgIGF1dG8gY2ZSZXNwb25zZSA9IFttX25zUmVzcG9uc2UgX0NGVVJMUmVzcG9u
c2VdOworICAgIGlmICghY2ZSZXNwb25zZSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKworICAgIENG
RGljdGlvbmFyeVJlZiBjb250ZXh0ID0gX0NGVVJMUmVzcG9uc2VHZXRTU0xDZXJ0aWZpY2F0ZUNv
bnRleHQoY2ZSZXNwb25zZSk7CisgICAgaWYgKCFjb250ZXh0KQorICAgICAgICByZXR1cm4geyB9
OworCisgICAgYXV0byB0cnVzdFZhbHVlID0gQ0ZEaWN0aW9uYXJ5R2V0VmFsdWUoY29udGV4dCwg
a0NGU3RyZWFtUHJvcGVydHlTU0xQZWVyVHJ1c3QpOworICAgIGlmICghdHJ1c3RWYWx1ZSkKKyAg
ICAgICAgcmV0dXJuIHsgfTsKKyAgICBBU1NFUlQoQ0ZHZXRUeXBlSUQodHJ1c3RWYWx1ZSkgPT0g
U2VjVHJ1c3RHZXRUeXBlSUQoKSk7CisgICAgYXV0byB0cnVzdCA9IChTZWNUcnVzdFJlZil0cnVz
dFZhbHVlOworCisgICAgU2VjVHJ1c3RSZXN1bHRUeXBlIHRydXN0UmVzdWx0VHlwZTsKKyAgICBP
U1N0YXR1cyByZXN1bHQgPSBTZWNUcnVzdEdldFRydXN0UmVzdWx0KHRydXN0LCAmdHJ1c3RSZXN1
bHRUeXBlKTsKKyAgICBpZiAocmVzdWx0ICE9IGVyclNlY1N1Y2Nlc3MpCisgICAgICAgIHJldHVy
biB7IH07CisKKyAgICBpZiAodHJ1c3RSZXN1bHRUeXBlID09IGtTZWNUcnVzdFJlc3VsdEludmFs
aWQpIHsKKyAgICAgICAgcmVzdWx0ID0gU2VjVHJ1c3RFdmFsdWF0ZSh0cnVzdCwgJnRydXN0UmVz
dWx0VHlwZSk7CisgICAgICAgIGlmIChyZXN1bHQgIT0gZXJyU2VjU3VjY2VzcykKKyAgICAgICAg
ICAgIHJldHVybiB7IH07CisgICAgfQorCisgICAgQ0ZJbmRleCBjb3VudCA9IFNlY1RydXN0R2V0
Q2VydGlmaWNhdGVDb3VudCh0cnVzdCk7CisgICAgYXV0byBjZXJ0aWZpY2F0ZUNoYWluID0gQ0ZB
cnJheUNyZWF0ZU11dGFibGUoMCwgY291bnQsICZrQ0ZUeXBlQXJyYXlDYWxsQmFja3MpOworICAg
IGZvciAoQ0ZJbmRleCBpID0gMDsgaSA8IGNvdW50OyBpKyspCisgICAgICAgIENGQXJyYXlBcHBl
bmRWYWx1ZShjZXJ0aWZpY2F0ZUNoYWluLCBTZWNUcnVzdEdldENlcnRpZmljYXRlQXRJbmRleCh0
cnVzdCwgaSkpOworCisgICAgcmV0dXJuIENlcnRpZmljYXRlSW5mbyhhZG9wdENGKGNlcnRpZmlj
YXRlQ2hhaW4pKTsKK30KKworI2lmIFVTRShDRk5FVFdPUkspCisKK05TVVJMUmVzcG9uc2UgKlJl
c291cmNlUmVzcG9uc2U6Om5zVVJMUmVzcG9uc2UoKSBjb25zdAoreworICAgIGlmICghbV9uc1Jl
c3BvbnNlICYmICFtX2NmUmVzcG9uc2UgJiYgIW1faXNOdWxsKSB7CisgICAgICAgIGluaXROU1VS
TFJlc3BvbnNlKCk7CisgICAgICAgIG1fY2ZSZXNwb25zZSA9IFttX25zUmVzcG9uc2UuZ2V0KCkg
X0NGVVJMUmVzcG9uc2VdOworICAgICAgICByZXR1cm4gbV9uc1Jlc3BvbnNlLmdldCgpOworICAg
IH0KKworICAgIGlmICghbV9jZlJlc3BvbnNlKQorICAgICAgICByZXR1cm4gbmlsOworCisgICAg
aWYgKCFtX25zUmVzcG9uc2UpCisgICAgICAgIG1fbnNSZXNwb25zZSA9IFtOU1VSTFJlc3BvbnNl
IF9yZXNwb25zZVdpdGhDRlVSTFJlc3BvbnNlOm1fY2ZSZXNwb25zZS5nZXQoKV07CisKKyAgICBy
ZXR1cm4gbV9uc1Jlc3BvbnNlLmdldCgpOworfQorCitSZXNvdXJjZVJlc3BvbnNlOjpSZXNvdXJj
ZVJlc3BvbnNlKE5TVVJMUmVzcG9uc2UqIG5zUmVzcG9uc2UpCisgICAgOiBtX2luaXRMZXZlbChV
bmluaXRpYWxpemVkKQorICAgICwgbV9wbGF0Zm9ybVJlc3BvbnNlSXNVcFRvRGF0ZSh0cnVlKQor
ICAgICwgbV9jZlJlc3BvbnNlKFtuc1Jlc3BvbnNlIF9DRlVSTFJlc3BvbnNlXSkKKyAgICAsIG1f
bnNSZXNwb25zZShuc1Jlc3BvbnNlKQoreworICAgIG1faXNOdWxsID0gIW5zUmVzcG9uc2U7Cit9
CisKKyNlbHNlCisKK3N0YXRpYyBOU1N0cmluZyogY29uc3QgY29tbW9uSGVhZGVyRmllbGRzW10g
PSB7CisgICAgQCJBZ2UiLCBAIkNhY2hlLUNvbnRyb2wiLCBAIkNvbnRlbnQtVHlwZSIsIEAiRGF0
ZSIsIEAiRXRhZyIsIEAiRXhwaXJlcyIsIEAiTGFzdC1Nb2RpZmllZCIsIEAiUHJhZ21hIgorfTsK
KworTlNVUkxSZXNwb25zZSAqUmVzb3VyY2VSZXNwb25zZTo6bnNVUkxSZXNwb25zZSgpIGNvbnN0
Cit7CisgICAgaWYgKCFtX25zUmVzcG9uc2UgJiYgIW1faXNOdWxsKQorICAgICAgICBpbml0TlNV
UkxSZXNwb25zZSgpOworICAgIHJldHVybiBtX25zUmVzcG9uc2UuZ2V0KCk7Cit9CisgICAgCitz
dGF0aWMgTlNTdHJpbmcgKmNvcHlOU1VSTFJlc3BvbnNlU3RhdHVzTGluZShOU1VSTFJlc3BvbnNl
ICpyZXNwb25zZSkKK3sKKyAgICBDRlVSTFJlc3BvbnNlUmVmIGNmUmVzcG9uc2UgPSBbcmVzcG9u
c2UgX0NGVVJMUmVzcG9uc2VdOworICAgIGlmICghY2ZSZXNwb25zZSkKKyAgICAgICAgcmV0dXJu
IG5pbDsKKworICAgIENGSFRUUE1lc3NhZ2VSZWYgY2ZIVFRQTWVzc2FnZSA9IENGVVJMUmVzcG9u
c2VHZXRIVFRQUmVzcG9uc2UoY2ZSZXNwb25zZSk7CisgICAgaWYgKCFjZkhUVFBNZXNzYWdlKQor
ICAgICAgICByZXR1cm4gbmlsOworCisgICAgcmV0dXJuIChOU1N0cmluZyAqKUNGSFRUUE1lc3Nh
Z2VDb3B5UmVzcG9uc2VTdGF0dXNMaW5lKGNmSFRUUE1lc3NhZ2UpOworfQorCit2b2lkIFJlc291
cmNlUmVzcG9uc2U6OnBsYXRmb3JtTGF6eUluaXQoSW5pdExldmVsIGluaXRMZXZlbCkKK3sKKyAg
ICBpZiAobV9pbml0TGV2ZWwgPj0gaW5pdExldmVsKQorICAgICAgICByZXR1cm47CisKKyAgICBp
ZiAobV9pc051bGwgfHwgIW1fbnNSZXNwb25zZSkKKyAgICAgICAgcmV0dXJuOworICAgIAorICAg
IGlmIChtX2luaXRMZXZlbCA8IENvbW1vbkZpZWxkc09ubHkgJiYgaW5pdExldmVsID49IENvbW1v
bkZpZWxkc09ubHkpIHsKKyAgICAgICAgTlNBdXRvcmVsZWFzZVBvb2wqIHBvb2wgPSBbW05TQXV0
b3JlbGVhc2VQb29sIGFsbG9jXSBpbml0XTsKKworICAgICAgICBtX2h0dHBIZWFkZXJGaWVsZHMu
Y2xlYXIoKTsKKyAgICAgICAgbV91cmwgPSBbbV9uc1Jlc3BvbnNlLmdldCgpIFVSTF07CisgICAg
ICAgIG1fbWltZVR5cGUgPSBbbV9uc1Jlc3BvbnNlLmdldCgpIE1JTUVUeXBlXTsKKyAgICAgICAg
bV9leHBlY3RlZENvbnRlbnRMZW5ndGggPSBbbV9uc1Jlc3BvbnNlLmdldCgpIGV4cGVjdGVkQ29u
dGVudExlbmd0aF07CisgICAgICAgIG1fdGV4dEVuY29kaW5nTmFtZSA9IFttX25zUmVzcG9uc2Uu
Z2V0KCkgdGV4dEVuY29kaW5nTmFtZV07CisKKyAgICAgICAgLy8gV29ya2Fyb3VuZCBmb3IgPHJk
YXI6Ly9wcm9ibGVtLzg3NTcwODg+LCBjYW4gYmUgcmVtb3ZlZCBvbmNlIHRoYXQgaXMgZml4ZWQu
CisgICAgICAgIHVuc2lnbmVkIHRleHRFbmNvZGluZ05hbWVMZW5ndGggPSBtX3RleHRFbmNvZGlu
Z05hbWUubGVuZ3RoKCk7CisgICAgICAgIGlmICh0ZXh0RW5jb2RpbmdOYW1lTGVuZ3RoID49IDIg
JiYgbV90ZXh0RW5jb2RpbmdOYW1lWzBVXSA9PSAnIicgJiYgbV90ZXh0RW5jb2RpbmdOYW1lW3Rl
eHRFbmNvZGluZ05hbWVMZW5ndGggLSAxXSA9PSAnIicpCisgICAgICAgICAgICBtX3RleHRFbmNv
ZGluZ05hbWUgPSBtX3RleHRFbmNvZGluZ05hbWUuc3RyaW5nKCkuc3Vic3RyaW5nKDEsIHRleHRF
bmNvZGluZ05hbWVMZW5ndGggLSAyKTsKKworICAgICAgICBpZiAoW21fbnNSZXNwb25zZS5nZXQo
KSBpc0tpbmRPZkNsYXNzOltOU0hUVFBVUkxSZXNwb25zZSBjbGFzc11dKSB7CisgICAgICAgICAg
ICBOU0hUVFBVUkxSZXNwb25zZSAqaHR0cFJlc3BvbnNlID0gKE5TSFRUUFVSTFJlc3BvbnNlICop
bV9uc1Jlc3BvbnNlLmdldCgpOworCisgICAgICAgICAgICBtX2h0dHBTdGF0dXNDb2RlID0gW2h0
dHBSZXNwb25zZSBzdGF0dXNDb2RlXTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKGlu
aXRMZXZlbCA8IEFsbEZpZWxkcykgeworICAgICAgICAgICAgICAgIE5TRGljdGlvbmFyeSAqaGVh
ZGVycyA9IFtodHRwUmVzcG9uc2UgYWxsSGVhZGVyRmllbGRzXTsKKyAgICAgICAgICAgICAgICBm
b3IgKE5TU3RyaW5nICpuYW1lIDogY29tbW9uSGVhZGVyRmllbGRzKSB7CisgICAgICAgICAgICAg
ICAgICAgIGlmIChOU1N0cmluZyogaGVhZGVyVmFsdWUgPSBbaGVhZGVycyBvYmplY3RGb3JLZXk6
bmFtZV0pCisgICAgICAgICAgICAgICAgICAgICAgICBtX2h0dHBIZWFkZXJGaWVsZHMuc2V0KG5h
bWUsIGhlYWRlclZhbHVlKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAg
ICAgIH0gZWxzZQorICAgICAgICAgICAgbV9odHRwU3RhdHVzQ29kZSA9IDA7CisgICAgICAgIAor
ICAgICAgICBbcG9vbCBkcmFpbl07CisgICAgfQorCisgICAgaWYgKG1faW5pdExldmVsIDwgQWxs
RmllbGRzICYmIGluaXRMZXZlbCA9PSBBbGxGaWVsZHMpIHsKKyAgICAgICAgaWYgKFttX25zUmVz
cG9uc2UuZ2V0KCkgaXNLaW5kT2ZDbGFzczpbTlNIVFRQVVJMUmVzcG9uc2UgY2xhc3NdXSkgewor
ICAgICAgICAgICAgTlNBdXRvcmVsZWFzZVBvb2wqIHBvb2wgPSBbW05TQXV0b3JlbGVhc2VQb29s
IGFsbG9jXSBpbml0XTsKKworICAgICAgICAgICAgTlNIVFRQVVJMUmVzcG9uc2UgKmh0dHBSZXNw
b25zZSA9IChOU0hUVFBVUkxSZXNwb25zZSAqKW1fbnNSZXNwb25zZS5nZXQoKTsKKyAgICAgICAg
ICAgIGlmIChSZXRhaW5QdHI8TlNTdHJpbmc+IGh0dHBTdGF0dXNMaW5lID0gYWRvcHROUyhjb3B5
TlNVUkxSZXNwb25zZVN0YXR1c0xpbmUoaHR0cFJlc3BvbnNlKSkpCisgICAgICAgICAgICAgICAg
bV9odHRwU3RhdHVzVGV4dCA9IGV4dHJhY3RSZWFzb25QaHJhc2VGcm9tSFRUUFN0YXR1c0xpbmUo
aHR0cFN0YXR1c0xpbmUuZ2V0KCkpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAg
IG1faHR0cFN0YXR1c1RleHQgPSBBdG9taWNTdHJpbmcoIk9LIiwgQXRvbWljU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCk7CisKKyAgICAgICAgICAgIE5TRGljdGlvbmFyeSAqaGVhZGVycyA9
IFtodHRwUmVzcG9uc2UgYWxsSGVhZGVyRmllbGRzXTsKKyAgICAgICAgICAgIGZvciAoTlNTdHJp
bmcgKm5hbWUgaW4gaGVhZGVycykKKyAgICAgICAgICAgICAgICBtX2h0dHBIZWFkZXJGaWVsZHMu
c2V0KG5hbWUsIFtoZWFkZXJzIG9iamVjdEZvcktleTpuYW1lXSk7CisgICAgICAgICAgICAKKyAg
ICAgICAgICAgIFtwb29sIGRyYWluXTsKKyAgICAgICAgfQorICAgIH0KKworICAgIG1faW5pdExl
dmVsID0gaW5pdExldmVsOworfQorCitTdHJpbmcgUmVzb3VyY2VSZXNwb25zZTo6cGxhdGZvcm1T
dWdnZXN0ZWRGaWxlbmFtZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIFtuc1VSTFJlc3BvbnNlKCkg
c3VnZ2VzdGVkRmlsZW5hbWVdOworfQorCitib29sIFJlc291cmNlUmVzcG9uc2U6OnBsYXRmb3Jt
Q29tcGFyZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiBhLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNl
JiBiKQoreworICAgIHJldHVybiBhLm5zVVJMUmVzcG9uc2UoKSA9PSBiLm5zVVJMUmVzcG9uc2Uo
KTsKK30KKworI2VuZGlmIC8vIFVTRShDRk5FVFdPUkspCisKK30gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKKworI2VuZGlmIC8vIFBMQVRGT1JNKENPQ09BKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9pb3MvUXVpY2tMb29rLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL2lvcy9RdWlja0xvb2suaAppbmRleCAwZDdlODI1ZWYyYjExODg2YjM4ZGJi
M2NiOTNlMDAwYjhiZDJlZWU1Li40NDgyNGRhMDI1OGRjYzE3NGJkZTliZTc1NzZhNWZjZjIxNmMw
NTk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2lvcy9RdWlj
a0xvb2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2lvcy9RdWlja0xv
b2suaApAQCAtMzMsNiArMzMsMTAgQEAKICNpbXBvcnQgPG9iamMvb2JqYy1ydW50aW1lLmg+CiAj
aW1wb3J0IDx3dGYvUmVmUHRyLmg+CiAKKyNpZiBVU0UoQ0ZORVRXT1JLKQorI2luY2x1ZGUgIkNG
TmV0d29ya1NQSS5oIgorI2VuZGlmCisKIE9CSkNfQ0xBU1MgTlNEYXRhOwogT0JKQ19DTEFTUyBO
U0RpY3Rpb25hcnk7CiBPQkpDX0NMQVNTIE5TRmlsZUhhbmRsZTsKQEAgLTQ0LDExICs0OCw2IEBA
IE9CSkNfQ0xBU1MgTlNVUkxSZXF1ZXN0OwogT0JKQ19DTEFTUyBOU1VSTFJlc3BvbnNlOwogT0JK
Q19DTEFTUyBRTFByZXZpZXdDb252ZXJ0ZXI7CiAKLSNpZiBVU0UoQ0ZORVRXT1JLKQotdHlwZWRl
ZiBzdHJ1Y3QgX0NGVVJMUmVzcG9uc2UqIENGVVJMUmVzcG9uc2VSZWY7Ci10eXBlZGVmIHN0cnVj
dCBfQ0ZVUkxDb25uZWN0aW9uKiBDRlVSTENvbm5lY3Rpb25SZWY7Ci0jZW5kaWYKLQogbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBjbGFzcyBRdWlja0xvb2tIYW5kbGVDbGllbnQ7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2lvcy9RdWlja0xvb2subW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2lvcy9RdWlja0xvb2subW0KaW5kZXggMTdlZDg2
NDZhNTk0NGEwZjAxZWQ1Njg3MDk3ZDk3Y2FjNzIwODRmNC4uOTZmNTBkZjA3NDAxODQ2NDBhOGYz
ZWE2MDQyNDU5MmY2YTVhOTZhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9pb3MvUXVpY2tMb29rLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvaW9zL1F1aWNrTG9vay5tbQpAQCAtNDYsMTUgKzQ2LDYgQEAKICNpbXBvcnQgPHd0Zi9W
ZWN0b3IuaD4KICNpbXBvcnQgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCi0jaWYgVVNFKENGTkVU
V09SSykKLSNpbXBvcnQgPENGTmV0d29yay9DRlVSTENvbm5lY3Rpb24uaD4KLQotQGludGVyZmFj
ZSBOU1VSTFJlc3BvbnNlIChRdWlja0xvb2tEZXRhaWxzKQotKyhOU1VSTFJlc3BvbnNlICopX3Jl
c3BvbnNlV2l0aENGVVJMUmVzcG9uc2U6KENGVVJMUmVzcG9uc2VSZWYpcmVzcG9uc2U7Ci0tKENG
VVJMUmVzcG9uc2VSZWYpX0NGVVJMUmVzcG9uc2U7Ci1AZW5kCi0jZW5kaWYKLQogdXNpbmcgbmFt
ZXNwYWNlIFdlYkNvcmU7CiAKIE5TU2V0ICpXZWJDb3JlOjpRTFByZXZpZXdHZXRTdXBwb3J0ZWRN
SU1FVHlwZXNTZXQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9pb3MvV2ViQ29yZVVSTFJlc3BvbnNlSU9TLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9pb3MvV2ViQ29yZVVSTFJlc3BvbnNlSU9TLm1tCmluZGV4IGE2MmQxYjcyOWUxMTg0
ZWVkMDA0MmMzOTA1NDJkYjczZjk1OThiMWQuLmQwNjhmOTE3ZTJkZGM3N2UxMjRiOWEwMDAwNGI0
YmNlNjI1NzVmMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
aW9zL1dlYkNvcmVVUkxSZXNwb25zZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL2lvcy9XZWJDb3JlVVJMUmVzcG9uc2VJT1MubW0KQEAgLTQ4LDcgKzQ4LDcgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogCiB2b2lkIGFkanVzdE1JTUVUeXBlSWZOZWNlc3NhcnkoQ0ZV
UkxSZXNwb25zZVJlZiBjZlJlc3BvbnNlKQogewotICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4g
bWltZVR5cGUgPSB3a0dldENGVVJMUmVzcG9uc2VNSU1FVHlwZShjZlJlc3BvbnNlKTsKKyAgICBS
ZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IG1pbWVUeXBlID0gQ0ZVUkxSZXNwb25zZUdldE1JTUVUeXBl
KGNmUmVzcG9uc2UpOwogICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gdXBkYXRlZE1JTUVUeXBl
ID0gbWltZVR5cGU7CiAgICAgaWYgKCF1cGRhdGVkTUlNRVR5cGUpCiAgICAgICAgIHVwZGF0ZWRN
SU1FVHlwZSA9IGRlZmF1bHRNSU1FVHlwZSgpLmNyZWF0ZUNGU3RyaW5nKCk7CkBAIC01NywxMiAr
NTcsMTEgQEAgdm9pZCBhZGp1c3RNSU1FVHlwZUlmTmVjZXNzYXJ5KENGVVJMUmVzcG9uc2VSZWYg
Y2ZSZXNwb25zZSkKICAgICAvLyBXZSBtdXN0IGVuc3VyZSB0aGF0IHRoZSBNSU1FIHR5cGUgaXMg
Y29ycmVjdCwgc28gdGhhdCBRdWlja0xvb2sncyB3ZWIgcGx1Z2luIGlzIGNhbGxlZCB3aGVuIG5l
ZWRlZC4KICAgICAvLyBXZSBmaWx0ZXIgdGhlIGJhc2ljIE1JTUUgdHlwZXMgc28gdGhhdCB3ZSBk
b24ndCBkbyB1bm5lY2Vzc2FyeSB3b3JrIGluIHN0YW5kYXJkIGJyb3dzaW5nIHNpdHVhdGlvbnMu
CiAgICAgaWYgKHNob3VsZFVzZVF1aWNrTG9va0Zvck1JTUVUeXBlKChOU1N0cmluZyAqKXVwZGF0
ZWRNSU1FVHlwZS5nZXQoKSkpIHsKLSAgICAgICAgUmV0YWluUHRyPENGU3RyaW5nUmVmPiBzdWdn
ZXN0ZWRGaWxlbmFtZSA9IGFkb3B0Q0Yod2tDb3B5Q0ZVUkxSZXNwb25zZVN1Z2dlc3RlZEZpbGVu
YW1lKGNmUmVzcG9uc2UpKTsKKyAgICAgICAgUmV0YWluUHRyPENGU3RyaW5nUmVmPiBzdWdnZXN0
ZWRGaWxlbmFtZSA9IGFkb3B0Q0YoQ0ZVUkxSZXNwb25zZUNvcHlTdWdnZXN0ZWRGaWxlbmFtZShj
ZlJlc3BvbnNlKSk7CiAgICAgICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gcXVpY2tMb29rTUlN
RVR5cGUgPSBhZG9wdENGKChDRlN0cmluZ1JlZilRTFR5cGVDb3B5QmVzdE1pbWVUeXBlRm9yRmls
ZU5hbWVBbmRNaW1lVHlwZSgoTlNTdHJpbmcgKilzdWdnZXN0ZWRGaWxlbmFtZS5nZXQoKSwgKE5T
U3RyaW5nICopbWltZVR5cGUuZ2V0KCkpKTsKICAgICAgICAgaWYgKCFxdWlja0xvb2tNSU1FVHlw
ZSkgewotICAgICAgICAgICAgQ0ZVUkxSZWYgdXJsID0gd2tHZXRDRlVSTFJlc3BvbnNlVVJMKGNm
UmVzcG9uc2UpOwotICAgICAgICAgICAgTlNVUkwgKm5zVVJMID0gKE5TVVJMICopdXJsOwotICAg
ICAgICAgICAgaWYgKFtuc1VSTCBpc0ZpbGVVUkxdKSB7CisgICAgICAgICAgICBhdXRvIHVybCA9
IENGVVJMUmVzcG9uc2VHZXRVUkwoY2ZSZXNwb25zZSk7CisgICAgICAgICAgICBpZiAoWyhOU1VS
TCAqKXVybCBpc0ZpbGVVUkxdKSB7CiAgICAgICAgICAgICAgICAgUmV0YWluUHRyPENGU3RyaW5n
UmVmPiBleHRlbnNpb24gPSBhZG9wdENGKENGVVJMQ29weVBhdGhFeHRlbnNpb24odXJsKSk7CiAg
ICAgICAgICAgICAgICAgaWYgKGV4dGVuc2lvbikgewogICAgICAgICAgICAgICAgICAgICBSZXRh
aW5QdHI8Q0ZTdHJpbmdSZWY+IHV0aSA9IGFkb3B0Q0YoVVRUeXBlQ3JlYXRlUHJlZmVycmVkSWRl
bnRpZmllckZvclRhZyhrVVRUYWdDbGFzc0ZpbGVuYW1lRXh0ZW5zaW9uLCBleHRlbnNpb24uZ2V0
KCksIG51bGxwdHIpKTsKQEAgLTc2LDcgKzc1LDcgQEAgdm9pZCBhZGp1c3RNSU1FVHlwZUlmTmVj
ZXNzYXJ5KENGVVJMUmVzcG9uc2VSZWYgY2ZSZXNwb25zZSkKICAgICB9CiAjZW5kaWYgLy8gVVNF
KFFVSUNLX0xPT0spCiAgICAgaWYgKCFtaW1lVHlwZSB8fCBDRlN0cmluZ0NvbXBhcmUobWltZVR5
cGUuZ2V0KCksIHVwZGF0ZWRNSU1FVHlwZS5nZXQoKSwga0NGQ29tcGFyZUNhc2VJbnNlbnNpdGl2
ZSkgIT0ga0NGQ29tcGFyZUVxdWFsVG8pCi0gICAgICAgIHdrU2V0Q0ZVUkxSZXNwb25zZU1JTUVU
eXBlKGNmUmVzcG9uc2UsIHVwZGF0ZWRNSU1FVHlwZS5nZXQoKSk7CisgICAgICAgIENGVVJMUmVz
cG9uc2VTZXRNSU1FVHlwZShjZlJlc3BvbnNlLCB1cGRhdGVkTUlNRVR5cGUuZ2V0KCkpOwogfQog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1tCmluZGV4IGNkYmUwMjU4ZDQw
MTIxZjMxNDBiNGY0Nzk0MGNmYjkzZmU3NzE5NjQuLjdjOTdiMmFhZTBmZDI4ODFlY2Y4YmM1YTNl
Nzk5ZDRkNWEwOWJlMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1tCkBAIC0xNjgsNyArMTY4LDcgQEAgdm9p
ZCBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlTlNVUkxDb25uZWN0aW9uKGlkIGRlbGVnYXRlLCBib29s
IHNob3VsZFVzZUNyZWRlbnRpYWwKICAgICBOU1VSTFJlcXVlc3QgKm5zUmVxdWVzdCA9IGZpcnN0
UmVxdWVzdCgpLm5zVVJMUmVxdWVzdChVcGRhdGVIVFRQQm9keSk7CiAgICAgaWYgKCFzaG91bGRD
b250ZW50U25pZmYpIHsKICAgICAgICAgTlNNdXRhYmxlVVJMUmVxdWVzdCAqbXV0YWJsZVJlcXVl
c3QgPSBbW25zUmVxdWVzdCBtdXRhYmxlQ29weV0gYXV0b3JlbGVhc2VdOwotICAgICAgICB3a1Nl
dE5TVVJMUmVxdWVzdFNob3VsZENvbnRlbnRTbmlmZihtdXRhYmxlUmVxdWVzdCwgTk8pOworICAg
ICAgICBbbXV0YWJsZVJlcXVlc3QgX3NldFByb3BlcnR5OkAoTk8pIGZvcktleTooTlNTdHJpbmcg
Kilfa0NGVVJMQ29ubmVjdGlvblByb3BlcnR5U2hvdWxkU25pZmZdOwogICAgICAgICBuc1JlcXVl
c3QgPSBtdXRhYmxlUmVxdWVzdDsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlUmVzcG9uc2VNYWMubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZVJlc3BvbnNlTWFjLm1tCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2ZmEwMGUyNDM1ZTgzZTc5Zjk3ZDQzMDg2MmRiMGI0MWQz
NjY1MzdiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlUmVzcG9uc2VNYWMubW0K
KysrIC9kZXYvbnVsbApAQCAtMSwxOTUgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAw
NiBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQot
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2ltcG9ydCAiY29uZmlnLmgiCi0jaW1wb3J0ICJSZXNv
dXJjZVJlc3BvbnNlLmgiCi0KLSNpbXBvcnQgIkhUVFBQYXJzZXJzLmgiCi0jaW1wb3J0ICJXZWJD
b3JlVVJMUmVzcG9uc2UuaCIKLSNpbXBvcnQgIldlYkNvcmVTeXN0ZW1JbnRlcmZhY2UuaCIKLSNp
bXBvcnQgPEZvdW5kYXRpb24vRm91bmRhdGlvbi5oPgotI2ltcG9ydCA8bGltaXRzPgotI2ltcG9y
dCA8d3RmL1N0ZExpYkV4dHJhcy5oPgotCi1AaW50ZXJmYWNlIE5TVVJMUmVzcG9uc2UgKFdlYk5T
VVJMUmVzcG9uc2VEZXRhaWxzKQotLSAoTlNUaW1lSW50ZXJ2YWwpX2NhbGN1bGF0ZWRFeHBpcmF0
aW9uOwotLSAoaWQpX2luaXRXaXRoQ0ZVUkxSZXNwb25zZTooQ0ZVUkxSZXNwb25zZVJlZilyZXNw
b25zZTsKLS0gKENGVVJMUmVzcG9uc2VSZWYpIF9DRlVSTFJlc3BvbnNlOwotKyAoaWQpX3Jlc3Bv
bnNlV2l0aENGVVJMUmVzcG9uc2U6KENGVVJMUmVzcG9uc2VSZWYpcmVzcG9uc2U7Ci1AZW5kCi0K
LQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi12b2lkIFJlc291cmNlUmVzcG9uc2U6OmluaXROU1VS
TFJlc3BvbnNlKCkgY29uc3QKLXsKLSAgICBpZiAoIW1faHR0cFN0YXR1c0NvZGUgfHwgIW1fdXJs
LnByb3RvY29sSXNJbkhUVFBGYW1pbHkoKSkgewotICAgICAgICAvLyBXb3JrIGFyb3VuZCBhIG1p
c3Rha2UgaW4gdGhlIE5TVVJMUmVzcG9uc2UgY2xhc3MgLSA8cmRhcjovL3Byb2JsZW0vNjg3NTIx
OT4uCi0gICAgICAgIC8vIFRoZSBpbml0IGZ1bmN0aW9uIHRha2VzIGFuIE5TSW50ZWdlciwgZXZl
biB0aG91Z2ggdGhlIGFjY2Vzc29yIHJldHVybnMgYSBsb25nIGxvbmcuCi0gICAgICAgIC8vIEZv
ciB2YWx1ZXMgdGhhdCB3b24ndCBmaXQgaW4gYW4gTlNJbnRlZ2VyLCBwYXNzIC0xIGluc3RlYWQu
Ci0gICAgICAgIE5TSW50ZWdlciBleHBlY3RlZENvbnRlbnRMZW5ndGg7Ci0gICAgICAgIGlmICht
X2V4cGVjdGVkQ29udGVudExlbmd0aCA8IDAgfHwgbV9leHBlY3RlZENvbnRlbnRMZW5ndGggPiBz
dGQ6Om51bWVyaWNfbGltaXRzPE5TSW50ZWdlcj46Om1heCgpKQotICAgICAgICAgICAgZXhwZWN0
ZWRDb250ZW50TGVuZ3RoID0gLTE7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGV4cGVjdGVk
Q29udGVudExlbmd0aCA9IHN0YXRpY19jYXN0PE5TSW50ZWdlcj4obV9leHBlY3RlZENvbnRlbnRM
ZW5ndGgpOwotCi0gICAgICAgIE5TU3RyaW5nKiBlbmNvZGluZ05TU3RyaW5nID0gbnNTdHJpbmdO
aWxJZkVtcHR5KG1fdGV4dEVuY29kaW5nTmFtZSk7Ci0gICAgICAgIG1fbnNSZXNwb25zZSA9IGFk
b3B0TlMoW1tOU1VSTFJlc3BvbnNlIGFsbG9jXSBpbml0V2l0aFVSTDptX3VybCBNSU1FVHlwZTpt
X21pbWVUeXBlIGV4cGVjdGVkQ29udGVudExlbmd0aDpleHBlY3RlZENvbnRlbnRMZW5ndGggdGV4
dEVuY29kaW5nTmFtZTplbmNvZGluZ05TU3RyaW5nXSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9
Ci0KLSAgICAvLyBGSVhNRTogV2UgbG9zZSB0aGUgc3RhdHVzIHRleHQgYW5kIHRoZSBIVFRQIHZl
cnNpb24gaGVyZS4KLSAgICBOU011dGFibGVEaWN0aW9uYXJ5KiBoZWFkZXJEaWN0aW9uYXJ5ID0g
W05TTXV0YWJsZURpY3Rpb25hcnkgZGljdGlvbmFyeV07Ci0gICAgZm9yIChhdXRvJiBoZWFkZXIg
OiBtX2h0dHBIZWFkZXJGaWVsZHMpCi0gICAgICAgIFtoZWFkZXJEaWN0aW9uYXJ5IHNldE9iamVj
dDooTlNTdHJpbmcgKiloZWFkZXIudmFsdWUgZm9yS2V5OihOU1N0cmluZyAqKWhlYWRlci5rZXld
OwotCi0gICAgbV9uc1Jlc3BvbnNlID0gYWRvcHROUyhbW05TSFRUUFVSTFJlc3BvbnNlIGFsbG9j
XSBpbml0V2l0aFVSTDptX3VybCBzdGF0dXNDb2RlOm1faHR0cFN0YXR1c0NvZGUgSFRUUFZlcnNp
b246KE5TU3RyaW5nKilrQ0ZIVFRQVmVyc2lvbjFfMSBoZWFkZXJGaWVsZHM6aGVhZGVyRGljdGlv
bmFyeV0pOwotCi0gICAgLy8gTWltZSB0eXBlIHNuaWZmaW5nIGRvZXNuJ3Qgd29yayB3aXRoIGEg
c3ludGhlc2l6ZWQgcmVzcG9uc2UuCi0gICAgW21fbnNSZXNwb25zZS5nZXQoKSBfc2V0TUlNRVR5
cGU6KE5TU3RyaW5nICopbV9taW1lVHlwZV07Ci19Ci0KLSNpZiBVU0UoQ0ZORVRXT1JLKQotCi1O
U1VSTFJlc3BvbnNlICpSZXNvdXJjZVJlc3BvbnNlOjpuc1VSTFJlc3BvbnNlKCkgY29uc3QKLXsK
LSAgICBpZiAoIW1fbnNSZXNwb25zZSAmJiAhbV9jZlJlc3BvbnNlICYmICFtX2lzTnVsbCkgewot
ICAgICAgICBpbml0TlNVUkxSZXNwb25zZSgpOwotICAgICAgICBtX2NmUmVzcG9uc2UgPSBbbV9u
c1Jlc3BvbnNlLmdldCgpIF9DRlVSTFJlc3BvbnNlXTsKLSAgICAgICAgcmV0dXJuIG1fbnNSZXNw
b25zZS5nZXQoKTsKLSAgICB9Ci0KLSAgICBpZiAoIW1fY2ZSZXNwb25zZSkKLSAgICAgICAgcmV0
dXJuIG5pbDsKLQotICAgIGlmICghbV9uc1Jlc3BvbnNlKQotICAgICAgICBtX25zUmVzcG9uc2Ug
PSBbTlNVUkxSZXNwb25zZSBfcmVzcG9uc2VXaXRoQ0ZVUkxSZXNwb25zZTptX2NmUmVzcG9uc2Uu
Z2V0KCldOwotCi0gICAgcmV0dXJuIG1fbnNSZXNwb25zZS5nZXQoKTsKLX0KLQotUmVzb3VyY2VS
ZXNwb25zZTo6UmVzb3VyY2VSZXNwb25zZShOU1VSTFJlc3BvbnNlKiBuc1Jlc3BvbnNlKQotICAg
IDogbV9pbml0TGV2ZWwoVW5pbml0aWFsaXplZCkKLSAgICAsIG1fcGxhdGZvcm1SZXNwb25zZUlz
VXBUb0RhdGUodHJ1ZSkKLSAgICAsIG1fY2ZSZXNwb25zZShbbnNSZXNwb25zZSBfQ0ZVUkxSZXNw
b25zZV0pCi0gICAgLCBtX25zUmVzcG9uc2UobnNSZXNwb25zZSkKLXsKLSAgICBtX2lzTnVsbCA9
ICFuc1Jlc3BvbnNlOwotfQotCi0jZWxzZQotCi1zdGF0aWMgTlNTdHJpbmcqIGNvbnN0IGNvbW1v
bkhlYWRlckZpZWxkc1tdID0gewotICAgIEAiQWdlIiwgQCJDYWNoZS1Db250cm9sIiwgQCJDb250
ZW50LVR5cGUiLCBAIkRhdGUiLCBAIkV0YWciLCBAIkV4cGlyZXMiLCBAIkxhc3QtTW9kaWZpZWQi
LCBAIlByYWdtYSIKLX07Ci0KLU5TVVJMUmVzcG9uc2UgKlJlc291cmNlUmVzcG9uc2U6Om5zVVJM
UmVzcG9uc2UoKSBjb25zdAotewotICAgIGlmICghbV9uc1Jlc3BvbnNlICYmICFtX2lzTnVsbCkK
LSAgICAgICAgaW5pdE5TVVJMUmVzcG9uc2UoKTsKLSAgICByZXR1cm4gbV9uc1Jlc3BvbnNlLmdl
dCgpOwotfQotCi12b2lkIFJlc291cmNlUmVzcG9uc2U6OnBsYXRmb3JtTGF6eUluaXQoSW5pdExl
dmVsIGluaXRMZXZlbCkKLXsKLSAgICBpZiAobV9pbml0TGV2ZWwgPj0gaW5pdExldmVsKQotICAg
ICAgICByZXR1cm47Ci0KLSAgICBpZiAobV9pc051bGwgfHwgIW1fbnNSZXNwb25zZSkKLSAgICAg
ICAgcmV0dXJuOwotICAgIAotICAgIGlmIChtX2luaXRMZXZlbCA8IENvbW1vbkZpZWxkc09ubHkg
JiYgaW5pdExldmVsID49IENvbW1vbkZpZWxkc09ubHkpIHsKLSAgICAgICAgTlNBdXRvcmVsZWFz
ZVBvb2wqIHBvb2wgPSBbW05TQXV0b3JlbGVhc2VQb29sIGFsbG9jXSBpbml0XTsKLQotICAgICAg
ICBtX2h0dHBIZWFkZXJGaWVsZHMuY2xlYXIoKTsKLSAgICAgICAgbV91cmwgPSBbbV9uc1Jlc3Bv
bnNlLmdldCgpIFVSTF07Ci0gICAgICAgIG1fbWltZVR5cGUgPSBbbV9uc1Jlc3BvbnNlLmdldCgp
IE1JTUVUeXBlXTsKLSAgICAgICAgbV9leHBlY3RlZENvbnRlbnRMZW5ndGggPSBbbV9uc1Jlc3Bv
bnNlLmdldCgpIGV4cGVjdGVkQ29udGVudExlbmd0aF07Ci0gICAgICAgIG1fdGV4dEVuY29kaW5n
TmFtZSA9IFttX25zUmVzcG9uc2UuZ2V0KCkgdGV4dEVuY29kaW5nTmFtZV07Ci0KLSAgICAgICAg
Ly8gV29ya2Fyb3VuZCBmb3IgPHJkYXI6Ly9wcm9ibGVtLzg3NTcwODg+LCBjYW4gYmUgcmVtb3Zl
ZCBvbmNlIHRoYXQgaXMgZml4ZWQuCi0gICAgICAgIHVuc2lnbmVkIHRleHRFbmNvZGluZ05hbWVM
ZW5ndGggPSBtX3RleHRFbmNvZGluZ05hbWUubGVuZ3RoKCk7Ci0gICAgICAgIGlmICh0ZXh0RW5j
b2RpbmdOYW1lTGVuZ3RoID49IDIgJiYgbV90ZXh0RW5jb2RpbmdOYW1lWzBVXSA9PSAnIicgJiYg
bV90ZXh0RW5jb2RpbmdOYW1lW3RleHRFbmNvZGluZ05hbWVMZW5ndGggLSAxXSA9PSAnIicpCi0g
ICAgICAgICAgICBtX3RleHRFbmNvZGluZ05hbWUgPSBtX3RleHRFbmNvZGluZ05hbWUuc3RyaW5n
KCkuc3Vic3RyaW5nKDEsIHRleHRFbmNvZGluZ05hbWVMZW5ndGggLSAyKTsKLQotICAgICAgICBp
ZiAoW21fbnNSZXNwb25zZS5nZXQoKSBpc0tpbmRPZkNsYXNzOltOU0hUVFBVUkxSZXNwb25zZSBj
bGFzc11dKSB7Ci0gICAgICAgICAgICBOU0hUVFBVUkxSZXNwb25zZSAqaHR0cFJlc3BvbnNlID0g
KE5TSFRUUFVSTFJlc3BvbnNlICopbV9uc1Jlc3BvbnNlLmdldCgpOwotCi0gICAgICAgICAgICBt
X2h0dHBTdGF0dXNDb2RlID0gW2h0dHBSZXNwb25zZSBzdGF0dXNDb2RlXTsKLSAgICAgICAgICAg
IAotICAgICAgICAgICAgaWYgKGluaXRMZXZlbCA8IEFsbEZpZWxkcykgewotICAgICAgICAgICAg
ICAgIE5TRGljdGlvbmFyeSAqaGVhZGVycyA9IFtodHRwUmVzcG9uc2UgYWxsSGVhZGVyRmllbGRz
XTsKLSAgICAgICAgICAgICAgICBmb3IgKE5TU3RyaW5nICpuYW1lIDogY29tbW9uSGVhZGVyRmll
bGRzKSB7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChOU1N0cmluZyogaGVhZGVyVmFsdWUgPSBb
aGVhZGVycyBvYmplY3RGb3JLZXk6bmFtZV0pCi0gICAgICAgICAgICAgICAgICAgICAgICBtX2h0
dHBIZWFkZXJGaWVsZHMuc2V0KG5hbWUsIGhlYWRlclZhbHVlKTsKLSAgICAgICAgICAgICAgICB9
Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0gZWxzZQotICAgICAgICAgICAgbV9odHRwU3RhdHVz
Q29kZSA9IDA7Ci0gICAgICAgIAotICAgICAgICBbcG9vbCBkcmFpbl07Ci0gICAgfQotCi0gICAg
aWYgKG1faW5pdExldmVsIDwgQWxsRmllbGRzICYmIGluaXRMZXZlbCA9PSBBbGxGaWVsZHMpIHsK
LSAgICAgICAgaWYgKFttX25zUmVzcG9uc2UuZ2V0KCkgaXNLaW5kT2ZDbGFzczpbTlNIVFRQVVJM
UmVzcG9uc2UgY2xhc3NdXSkgewotICAgICAgICAgICAgTlNBdXRvcmVsZWFzZVBvb2wqIHBvb2wg
PSBbW05TQXV0b3JlbGVhc2VQb29sIGFsbG9jXSBpbml0XTsKLQotICAgICAgICAgICAgTlNIVFRQ
VVJMUmVzcG9uc2UgKmh0dHBSZXNwb25zZSA9IChOU0hUVFBVUkxSZXNwb25zZSAqKW1fbnNSZXNw
b25zZS5nZXQoKTsKLSAgICAgICAgICAgIGlmIChSZXRhaW5QdHI8TlNTdHJpbmc+IGh0dHBTdGF0
dXNMaW5lID0gYWRvcHROUyh3a0NvcHlOU1VSTFJlc3BvbnNlU3RhdHVzTGluZShodHRwUmVzcG9u
c2UpKSkKLSAgICAgICAgICAgICAgICBtX2h0dHBTdGF0dXNUZXh0ID0gZXh0cmFjdFJlYXNvblBo
cmFzZUZyb21IVFRQU3RhdHVzTGluZShodHRwU3RhdHVzTGluZS5nZXQoKSk7Ci0gICAgICAgICAg
ICBlbHNlCi0gICAgICAgICAgICAgICAgbV9odHRwU3RhdHVzVGV4dCA9IEF0b21pY1N0cmluZygi
T0siLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLQotICAgICAgICAgICAg
TlNEaWN0aW9uYXJ5ICpoZWFkZXJzID0gW2h0dHBSZXNwb25zZSBhbGxIZWFkZXJGaWVsZHNdOwot
ICAgICAgICAgICAgZm9yIChOU1N0cmluZyAqbmFtZSBpbiBoZWFkZXJzKQotICAgICAgICAgICAg
ICAgIG1faHR0cEhlYWRlckZpZWxkcy5zZXQobmFtZSwgW2hlYWRlcnMgb2JqZWN0Rm9yS2V5Om5h
bWVdKTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgW3Bvb2wgZHJhaW5dOwotICAgICAgICB9
Ci0gICAgfQotCi0gICAgbV9pbml0TGV2ZWwgPSBpbml0TGV2ZWw7Ci19Ci0KLUNlcnRpZmljYXRl
SW5mbyBSZXNvdXJjZVJlc3BvbnNlOjpwbGF0Zm9ybUNlcnRpZmljYXRlSW5mbygpIGNvbnN0Ci17
Ci0gICAgQVNTRVJUKG1fbnNSZXNwb25zZSk7Ci0gICAgcmV0dXJuIENlcnRpZmljYXRlSW5mbyhh
ZG9wdENGKHdrQ29weU5TVVJMUmVzcG9uc2VDZXJ0aWZpY2F0ZUNoYWluKG1fbnNSZXNwb25zZS5n
ZXQoKSkpKTsKLX0KLQotU3RyaW5nIFJlc291cmNlUmVzcG9uc2U6OnBsYXRmb3JtU3VnZ2VzdGVk
RmlsZW5hbWUoKSBjb25zdAotewotICAgIHJldHVybiBbbnNVUkxSZXNwb25zZSgpIHN1Z2dlc3Rl
ZEZpbGVuYW1lXTsKLX0KLQotYm9vbCBSZXNvdXJjZVJlc3BvbnNlOjpwbGF0Zm9ybUNvbXBhcmUo
Y29uc3QgUmVzb3VyY2VSZXNwb25zZSYgYSwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgYikKLXsK
LSAgICByZXR1cm4gYS5uc1VSTFJlc3BvbnNlKCkgPT0gYi5uc1VSTFJlc3BvbnNlKCk7Ci19Ci0K
LSNlbmRpZiAvLyBVU0UoQ0ZORVRXT1JLKQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1dlYkNvcmVVUkxS
ZXNwb25zZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvV2ViQ29yZVVS
TFJlc3BvbnNlLmgKaW5kZXggMmJlMGFlMzJmZTRmY2NiNTYzOGI0OWQ5NGI4NDQ3MDdlNzhmMzVj
ZC4uMDMzYjYwOGZiM2Y5NmYwMWNlYWUyMzc0NTA3NzMwODljNDBkZDU1YiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvV2ViQ29yZVVSTFJlc3BvbnNlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvV2ViQ29yZVVSTFJlc3Bv
bnNlLmgKQEAgLTI2LDExICsyNiwxMCBAQAogICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi10eXBlZGVmIHN0
cnVjdCBfQ0ZVUkxSZXNwb25zZSogQ0ZVUkxSZXNwb25zZVJlZjsKKyNpbmNsdWRlICJDRk5ldHdv
cmtTUEkuaCIKIAogI2lmZGVmIF9fT0JKQ19fCiBAaW50ZXJmYWNlIE5TVVJMUmVzcG9uc2UgKERl
dGFpbHMpCi0tIChDRlVSTFJlc3BvbnNlUmVmKV9DRlVSTFJlc3BvbnNlOwogLSAodm9pZClfc2V0
TUlNRVR5cGU6KE5TU3RyaW5nICopdHlwZTsKIEBlbmQKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvV2ViQ29yZVVSTFJlc3BvbnNlLm1tIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvV2ViQ29yZVVSTFJlc3BvbnNlLm1tCmluZGV4
IDBmYWJmOTM5ODkzNmIzMTI5MzkyMjExMGM5NzI1YWNhNDY5MzJkZWUuLjVlM2RiNzAzMmRjNzll
ZGI1MWQ5NmViYWMzNDU4ZDIyYTYwM2YzMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvbWFjL1dlYkNvcmVVUkxSZXNwb25zZS5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9XZWJDb3JlVVJMUmVzcG9uc2UubW0KQEAgLTI4OCwx
MyArMjg4LDEyIEBAIHN0YXRpYyBDRkRpY3Rpb25hcnlSZWYgY3JlYXRlRXh0ZW5zaW9uVG9NSU1F
VHlwZU1hcCgpCiAKIHZvaWQgYWRqdXN0TUlNRVR5cGVJZk5lY2Vzc2FyeShDRlVSTFJlc3BvbnNl
UmVmIGNmUmVzcG9uc2UpCiB7Ci0gICAgUmV0YWluUHRyPENGU3RyaW5nUmVmPiByZXN1bHQgPSB3
a0dldENGVVJMUmVzcG9uc2VNSU1FVHlwZShjZlJlc3BvbnNlKTsKKyAgICBSZXRhaW5QdHI8Q0ZT
dHJpbmdSZWY+IHJlc3VsdCA9IENGVVJMUmVzcG9uc2VHZXRNSU1FVHlwZShjZlJlc3BvbnNlKTsK
ICAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IG9yaWdpbmFsUmVzdWx0ID0gcmVzdWx0OwogCiAg
ICAgaWYgKCFyZXN1bHQpIHsKLSAgICAgICAgQ0ZVUkxSZWYgdXJsID0gd2tHZXRDRlVSTFJlc3Bv
bnNlVVJMKGNmUmVzcG9uc2UpOwotICAgICAgICBOU1VSTCAqbnNVUkwgPSAoTlNVUkwgKil1cmw7
Ci0gICAgICAgIGlmIChbbnNVUkwgaXNGaWxlVVJMXSkgeworICAgICAgICBhdXRvIHVybCA9IENG
VVJMUmVzcG9uc2VHZXRVUkwoY2ZSZXNwb25zZSk7CisgICAgICAgIGlmIChbKE5TVVJMICopdXJs
IGlzRmlsZVVSTF0pIHsKICAgICAgICAgICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gZXh0ZW5z
aW9uID0gYWRvcHRDRihDRlVSTENvcHlQYXRoRXh0ZW5zaW9uKHVybCkpOwogICAgICAgICAgICAg
aWYgKGV4dGVuc2lvbikgewogICAgICAgICAgICAgICAgIC8vIDxyZGFyOi8vcHJvYmxlbS83MDA3
Mzg5PiBDb3JlVHlwZXMgVVRJIG1hcCBpcyBtaXNzaW5nIDEwMCsgZmlsZSBleHRlbnNpb25zIHRo
YXQgR2F0ZUtlZXBlciBrbmV3IGFib3V0CkBAIC0zMjEsNyArMzIwLDcgQEAgdm9pZCBhZGp1c3RN
SU1FVHlwZUlmTmVjZXNzYXJ5KENGVVJMUmVzcG9uc2VSZWYgY2ZSZXNwb25zZSkKICAgICB9CiAK
ICAgICBpZiAocmVzdWx0ICE9IG9yaWdpbmFsUmVzdWx0KQotICAgICAgICB3a1NldENGVVJMUmVz
cG9uc2VNSU1FVHlwZShjZlJlc3BvbnNlLCByZXN1bHQuZ2V0KCkpOworICAgICAgICBDRlVSTFJl
c3BvbnNlU2V0TUlNRVR5cGUoY2ZSZXNwb25zZSwgcmVzdWx0LmdldCgpKTsKIH0KICNlbmRpZgog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcGkvY2YvQ0ZOZXR3b3JrQ29u
bmVjdGlvbkNhY2hlU1BJLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcGkvY2YvQ0ZOZXR3
b3JrQ29ubmVjdGlvbkNhY2hlU1BJLmgKaW5kZXggY2UyOTEzNTE3YmYwODgzMmM3NDhiOTgzODA2
YjI4NzRkMmIwYzY3OC4uZTcxMDRlMzJiNjU2YTkyYTc2NmQ1MzNlYTAzOGNhY2FmYmJiMTliYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3BpL2NmL0NGTmV0d29ya0Nvbm5l
Y3Rpb25DYWNoZVNQSS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NwaS9jZi9DRk5l
dHdvcmtDb25uZWN0aW9uQ2FjaGVTUEkuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTQgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAxNC0yMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTAsMTcgKzEwLDE3IEBACiAgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCiAgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgogICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAogI2lmbmRl
ZiBDRk5ldHdvcmtDb25uZWN0aW9uQ2FjaGVTUElfaApAQCAtMzAsMTAgKzMwLDE0IEBACiAjaW5j
bHVkZSA8Q0ZOZXR3b3JrL0NGTmV0d29ya0Nvbm5lY3Rpb25DYWNoZVByaXYuaD4KICNlbHNlCiBl
bnVtIEhUVFBDb25uZWN0aW9uQ2FjaGVMaW1pdEtleXMgeworICAgIGtIVFRQTG9hZFdpZHRoID0g
MCwKKyAgICBrSFRUUFByaW9yaXR5TnVtTGV2ZWxzID0gMywKICAgICBrSFRUUE51bUZhc3RMYW5l
cyA9IDQsCisgICAga0hUVFBNaW5pbXVtRmFzdExhbmVQcmlvcml0eSA9IDUsCiB9OwogI2VuZGlm
CiAKLWV4dGVybiAiQyIgdm9pZCBfQ0ZOZXR3b3JrSFRUUENvbm5lY3Rpb25DYWNoZVNldExpbWl0
KEhUVFBDb25uZWN0aW9uQ2FjaGVMaW1pdEtleXMsIGludCk7CitFWFRFUk5fQyBpbnQgX0NGTmV0
d29ya0hUVFBDb25uZWN0aW9uQ2FjaGVHZXRMaW1pdChIVFRQQ29ubmVjdGlvbkNhY2hlTGltaXRL
ZXlzKTsKK0VYVEVSTl9DIHZvaWQgX0NGTmV0d29ya0hUVFBDb25uZWN0aW9uQ2FjaGVTZXRMaW1p
dChIVFRQQ29ubmVjdGlvbkNhY2hlTGltaXRLZXlzLCBpbnQpOwogCi0jZW5kaWYKKyNlbmRpZiAv
LyBDRk5ldHdvcmtDb25uZWN0aW9uQ2FjaGVTUElfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vc3BpL2NmL0NGTmV0d29ya1NQSS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vc3BpL2NmL0NGTmV0d29ya1NQSS5oCmluZGV4IGI4YTBjOTU1OWU1ZjNiOWJhYTJmNGRkMjk2
ZjczYzI4ZTk0M2M5ZDEuLjUzOWYwMjg1MTE5MGU1Y2YwYWIyMzVlMzlmODliZTQ4NjI4YjU5M2Mg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NwaS9jZi9DRk5ldHdvcmtTUEku
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcGkvY2YvQ0ZOZXR3b3JrU1BJLmgKQEAg
LTI2LDE1ICsyNiwyMCBAQAogI2lmbmRlZiBDRk5ldHdvcmtTUElfaAogI2RlZmluZSBDRk5ldHdv
cmtTUElfaAogCisjaW5jbHVkZSAiQ0ZOZXR3b3JrQ29ubmVjdGlvbkNhY2hlU1BJLmgiCiAjaW5j
bHVkZSA8Q0ZOZXR3b3JrL0NGTmV0d29yay5oPgogCiAjaWYgUExBVEZPUk0oV0lOKSB8fCBVU0Uo
QVBQTEVfSU5URVJOQUxfU0RLKQogCi0jaW5jbHVkZSA8Q0ZOZXR3b3JrL0NGSFRUUENvb2tpZXMu
aD4KICNpbmNsdWRlIDxDRk5ldHdvcmsvQ0ZIVFRQQ29va2llc1ByaXYuaD4KKyNpbmNsdWRlIDxD
Rk5ldHdvcmsvQ0ZQcm94eVN1cHBvcnRQcml2Lmg+CiAjaW5jbHVkZSA8Q0ZOZXR3b3JrL0NGVVJM
Q2FjaGVQcml2Lmg+CisjaW5jbHVkZSA8Q0ZOZXR3b3JrL0NGVVJMQ29ubmVjdGlvblByaXYuaD4K
KyNpbmNsdWRlIDxDRk5ldHdvcmsvQ0ZVUkxDcmVkZW50aWFsU3RvcmFnZS5oPgogI2luY2x1ZGUg
PENGTmV0d29yay9DRlVSTFByb3RvY29sUHJpdi5oPgotI2luY2x1ZGUgPENGTmV0d29yay9DRlVS
TFJlcXVlc3QuaD4KKyNpbmNsdWRlIDxDRk5ldHdvcmsvQ0ZVUkxSZXF1ZXN0UHJpdi5oPgorI2lu
Y2x1ZGUgPENGTmV0d29yay9DRlVSTFJlc3BvbnNlUHJpdi5oPgorI2luY2x1ZGUgPENGTmV0d29y
ay9DRlVSTFN0b3JhZ2VTZXNzaW9uLmg+CiAKIC8vIEZJWE1FOiBSZW1vdmUgdGhlIGRlZmluZWQo
X19PQkpDX18pLWd1YXJkIG9ubmNlIHdlIGZpeCA8cmRhcjovL3Byb2JsZW0vMTkwMzM2MTA+Lgog
I2lmIGRlZmluZWQoX19PQkpDX18pICYmIFBMQVRGT1JNKENPQ09BKQpAQCAtNTMsMjggKzU4LDQ2
IEBAIGV4dGVybiAiQyIgewogCiAjZWxzZSAvLyBQTEFURk9STShXSU4pIHx8IFVTRShBUFBMRV9J
TlRFUk5BTF9TREspCiAKLSNpZiBkZWZpbmVkKF9fT0JKQ19fKQotQGludGVyZmFjZSBOU1VSTFNl
c3Npb25UYXNrIChUaW1pbmdEYXRhKQotLSAoTlNEaWN0aW9uYXJ5ICopX3RpbWluZ0RhdGE7Ci1A
ZW5kCi0jZW5kaWYKLQogdHlwZWRlZiBDRl9FTlVNKGludDY0X3QsIF9UaW1pbmdEYXRhT3B0aW9u
cykKIHsKICAgICBfVGltaW5nRGF0YU9wdGlvbnNFbmFibGVXM0NOYXZpZ2F0aW9uVGltaW5nID0g
KDEgPDwgMCkKIH07CiAKLXR5cGVkZWYgc3RydWN0IE9wYXF1ZUNGSFRUUENvb2tpZVN0b3JhZ2Uq
IENGSFRUUENvb2tpZVN0b3JhZ2VSZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBfQ0ZDYWNoZWRV
UkxSZXNwb25zZSogQ0ZDYWNoZWRVUkxSZXNwb25zZVJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0
IF9DRlVSTENhY2hlKiBDRlVSTENhY2hlUmVmOwotdHlwZWRlZiBjb25zdCBzdHJ1Y3QgX0NGVVJM
UmVxdWVzdCAqQ0ZVUkxSZXF1ZXN0UmVmOwordHlwZWRlZiBjb25zdCBzdHJ1Y3QgX0NGVVJMQ3Jl
ZGVudGlhbCogQ0ZVUkxDcmVkZW50aWFsUmVmOwordHlwZWRlZiBjb25zdCBzdHJ1Y3QgX0NGVVJM
UmVxdWVzdCogQ0ZVUkxSZXF1ZXN0UmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgX19DRlVSTFN0
b3JhZ2VTZXNzaW9uKiBDRlVSTFN0b3JhZ2VTZXNzaW9uUmVmOwotdHlwZWRlZiBjb25zdCBzdHJ1
Y3QgX19DRkRhdGEgKkNGRGF0YVJlZjsKK3R5cGVkZWYgY29uc3Qgc3RydWN0IF9fQ0ZEYXRhKiBD
RkRhdGFSZWY7Cit0eXBlZGVmIHN0cnVjdCBfQ0ZVUkxDb25uZWN0aW9uKiBDRlVSTENvbm5lY3Rp
b25SZWY7Cit0eXBlZGVmIHN0cnVjdCBfQ0ZVUkxDcmVkZW50aWFsU3RvcmFnZSogQ0ZVUkxDcmVk
ZW50aWFsU3RvcmFnZVJlZjsKK3R5cGVkZWYgc3RydWN0IF9DRlVSTFByb3RlY3Rpb25TcGFjZSog
Q0ZVUkxQcm90ZWN0aW9uU3BhY2VSZWY7Cit0eXBlZGVmIHN0cnVjdCBfQ0ZVUkxSZXF1ZXN0KiBD
Rk11dGFibGVVUkxSZXF1ZXN0UmVmOwordHlwZWRlZiBzdHJ1Y3QgX0NGVVJMUmVzcG9uc2UqIENG
VVJMUmVzcG9uc2VSZWY7Cit0eXBlZGVmIHN0cnVjdCBPcGFxdWVDRkhUVFBDb29raWVTdG9yYWdl
KiBDRkhUVFBDb29raWVTdG9yYWdlUmVmOwordHlwZWRlZiBDRkluZGV4IENGVVJMUmVxdWVzdFBy
aW9yaXR5OwordHlwZWRlZiBpbnQgQ0ZIVFRQQ29va2llU3RvcmFnZUFjY2VwdFBvbGljeTsKIAog
I2lmZGVmIF9fQkxPQ0tTX18KIHR5cGVkZWYgdm9pZCAoXkNGQ2FjaGVkVVJMUmVzcG9uc2VDYWxs
QmFja0Jsb2NrKShDRkNhY2hlZFVSTFJlc3BvbnNlUmVmKTsKICNlbmRpZgogCisjaWYgZGVmaW5l
ZChfX09CSkNfXykKK0BpbnRlcmZhY2UgTlNVUkxSZXF1ZXN0ICgpCistICh2b2lkKV9zZXRQcm9w
ZXJ0eTooaWQpdmFsdWUgZm9yS2V5OihOU1N0cmluZyAqKWtleTsKK0BlbmQKKworQGludGVyZmFj
ZSBOU1VSTFJlc3BvbnNlICgpCisrIChOU1VSTFJlc3BvbnNlICopX3Jlc3BvbnNlV2l0aENGVVJM
UmVzcG9uc2U6KENGVVJMUmVzcG9uc2VSZWYpcmVzcG9uc2U7CistIChDRlVSTFJlc3BvbnNlUmVm
KV9DRlVSTFJlc3BvbnNlOworLSAoTlNEYXRlICopX2xhc3RNb2RpZmllZERhdGU7CitAZW5kCisK
K0BpbnRlcmZhY2UgTlNVUkxTZXNzaW9uVGFzayAoVGltaW5nRGF0YSkKKy0gKE5TRGljdGlvbmFy
eSAqKV90aW1pbmdEYXRhOworQGVuZAorI2VuZGlmCisKICNlbmRpZiAvLyBQTEFURk9STShXSU4p
IHx8IFVTRShBUFBMRV9JTlRFUk5BTF9TREspCiAKIEVYVEVSTl9DIHZvaWQgQ0ZVUkxSZXF1ZXN0
U2V0U2hvdWxkU3RhcnRTeW5jaHJvbm91c2x5KENGVVJMUmVxdWVzdFJlZiwgQm9vbGVhbik7CkBA
IC0xMDIsNiArMTI1LDI5IEBAIEVYVEVSTl9DIHZvaWQgX0NGQ2FjaGVkVVJMUmVzcG9uc2VTZXRC
ZWNhbWVGaWxlQmFja2VkQ2FsbEJhY2tCbG9jayhDRkNhY2hlZFVSTFJlCiBFWFRFUk5fQyB2b2lk
IENGVVJMQ29ubmVjdGlvbkludmFsaWRhdGVDb25uZWN0aW9uQ2FjaGUoKTsKIAogRVhURVJOX0Mg
Q0ZTdHJpbmdSZWYgY29uc3Qga0NGSFRUUENvb2tpZUxvY2FsRmlsZURvbWFpbjsKK0VYVEVSTl9D
IGNvbnN0IENGU3RyaW5nUmVmIGtDRlVSTFJlcXVlc3RBbGxvd0FsbFBPU1RDYWNoaW5nOworCisj
aWYgIVBMQVRGT1JNKFdJTikKK0VYVEVSTl9DIGNvbnN0IENGU3RyaW5nUmVmIF9rQ0ZVUkxDb25u
ZWN0aW9uUHJvcGVydHlTaG91bGRTbmlmZjsKKyNlbmRpZgorCitFWFRFUk5fQyBDRkhUVFBDb29r
aWVTdG9yYWdlUmVmIF9DRkhUVFBDb29raWVTdG9yYWdlR2V0RGVmYXVsdChDRkFsbG9jYXRvclJl
Zik7CitFWFRFUk5fQyB2b2lkIENGSFRUUENvb2tpZVN0b3JhZ2VTZXRDb29raWVBY2NlcHRQb2xp
Y3koQ0ZIVFRQQ29va2llU3RvcmFnZVJlZiwgQ0ZIVFRQQ29va2llU3RvcmFnZUFjY2VwdFBvbGlj
eSk7CitFWFRFUk5fQyB2b2lkIF9DRk5ldHdvcmtTZXRPdmVycmlkZVN5c3RlbVByb3h5U2V0dGlu
Z3MoQ0ZEaWN0aW9uYXJ5UmVmKTsKK0VYVEVSTl9DIENGVVJMQ3JlZGVudGlhbFN0b3JhZ2VSZWYg
Q0ZVUkxDcmVkZW50aWFsU3RvcmFnZUNyZWF0ZShDRkFsbG9jYXRvclJlZik7CitFWFRFUk5fQyBD
RlVSTENyZWRlbnRpYWxSZWYgQ0ZVUkxDcmVkZW50aWFsU3RvcmFnZUNvcHlEZWZhdWx0Q3JlZGVu
dGlhbEZvclByb3RlY3Rpb25TcGFjZShDRlVSTENyZWRlbnRpYWxTdG9yYWdlUmVmLCBDRlVSTFBy
b3RlY3Rpb25TcGFjZVJlZik7CitFWFRFUk5fQyBDRlVSTFJlcXVlc3RQcmlvcml0eSBDRlVSTFJl
cXVlc3RHZXRSZXF1ZXN0UHJpb3JpdHkoQ0ZVUkxSZXF1ZXN0UmVmKTsKK0VYVEVSTl9DIHZvaWQg
X0NGVVJMUmVxdWVzdFNldFByb3RvY29sUHJvcGVydHkoQ0ZVUkxSZXF1ZXN0UmVmLCBDRlN0cmlu
Z1JlZiwgQ0ZUeXBlUmVmKTsKK0VYVEVSTl9DIHZvaWQgQ0ZVUkxSZXF1ZXN0U2V0UmVxdWVzdFBy
aW9yaXR5KENGVVJMUmVxdWVzdFJlZiwgQ0ZVUkxSZXF1ZXN0UHJpb3JpdHkpOworRVhURVJOX0Mg
dm9pZCBDRlVSTFJlcXVlc3RTZXRTaG91bGRQaXBlbGluZUhUVFAoQ0ZVUkxSZXF1ZXN0UmVmLCBC
b29sZWFuLCBCb29sZWFuKTsKK0VYVEVSTl9DIHZvaWQgX0NGVVJMUmVxdWVzdFNldFN0b3JhZ2VT
ZXNzaW9uKENGTXV0YWJsZVVSTFJlcXVlc3RSZWYsIENGVVJMU3RvcmFnZVNlc3Npb25SZWYpOwor
RVhURVJOX0MgQ0ZTdHJpbmdSZWYgQ0ZVUkxSZXNwb25zZUNvcHlTdWdnZXN0ZWRGaWxlbmFtZShD
RlVSTFJlc3BvbnNlUmVmKTsKK0VYVEVSTl9DIENGSFRUUE1lc3NhZ2VSZWYgQ0ZVUkxSZXNwb25z
ZUdldEhUVFBSZXNwb25zZShDRlVSTFJlc3BvbnNlUmVmKTsKK0VYVEVSTl9DIENGU3RyaW5nUmVm
IENGVVJMUmVzcG9uc2VHZXRNSU1FVHlwZShDRlVSTFJlc3BvbnNlUmVmKTsKK0VYVEVSTl9DIENG
RGljdGlvbmFyeVJlZiBfQ0ZVUkxSZXNwb25zZUdldFNTTENlcnRpZmljYXRlQ29udGV4dChDRlVS
TFJlc3BvbnNlUmVmKTsKK0VYVEVSTl9DIENGVVJMUmVmIENGVVJMUmVzcG9uc2VHZXRVUkwoQ0ZV
UkxSZXNwb25zZVJlZik7CitFWFRFUk5fQyB2b2lkIENGVVJMUmVzcG9uc2VTZXRNSU1FVHlwZShD
RlVSTFJlc3BvbnNlUmVmLCBDRlN0cmluZ1JlZik7CitFWFRFUk5fQyBDRkhUVFBDb29raWVTdG9y
YWdlUmVmIF9DRlVSTFN0b3JhZ2VTZXNzaW9uQ29weUNvb2tpZVN0b3JhZ2UoQ0ZBbGxvY2F0b3JS
ZWYsIENGVVJMU3RvcmFnZVNlc3Npb25SZWYpOwogCiAvLyBGSVhNRTogV2Ugc2hvdWxkIG9ubHkg
Zm9yd2FyZCBkZWNsYXJlIHRoaXMgU1BJIHdoZW4gYnVpbGRpbmcgZm9yIGlPUyB3aXRob3V0IHRo
ZSBBcHBsZSBJbnRlcm5hbCBTREsuCiAvLyBBcyBhIHdvcmthcm91bmQgZm9yIDxyZGFyOi8vcHJv
YmxlbS8xOTAyNTAxNj4sIHdlIG11c3QgZm9yd2FyZCBkZWNsYXJlIHRoaXMgU1BJIHJlZ2FyZGxl
c3Mgb2Ygd2hldGhlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0
ZWQvSG9zdGVkTmV0c2NhcGVQbHVnaW5TdHJlYW0ubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVn
aW5zL0hvc3RlZC9Ib3N0ZWROZXRzY2FwZVBsdWdpblN0cmVhbS5tbQppbmRleCBjNmZiYjcxZTVm
YjBmN2Q1MzZkZDc3NWFkZmRhMWE2YzBjNzA4OTAwLi5jMTY2ZWQwMDIzMjZmMjcwYTgxOTc1OGE0
MmJiODk3OTNlMzFmMWI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hv
c3RlZC9Ib3N0ZWROZXRzY2FwZVBsdWdpblN0cmVhbS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21h
Yy9QbHVnaW5zL0hvc3RlZC9Ib3N0ZWROZXRzY2FwZVBsdWdpblN0cmVhbS5tbQpAQCAtMzcsNiAr
MzcsNyBAQAogI2ltcG9ydCAiV2ViTlNVUkxFeHRyYXMuaCIKICNpbXBvcnQgIldlYk5TVVJMUmVx
dWVzdEV4dHJhcy5oIgogI2ltcG9ydCAiV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmgiCisjaW1w
b3J0IDxXZWJDb3JlL0NGTmV0d29ya1NQSS5oPgogI2ltcG9ydCA8V2ViQ29yZS9Eb2N1bWVudC5o
PgogI2ltcG9ydCA8V2ViQ29yZS9Eb2N1bWVudExvYWRlci5oPgogI2ltcG9ydCA8V2ViQ29yZS9G
cmFtZS5oPgpAQCAtMTg5LDcgKzE5MCw3IEBAIHZvaWQgSG9zdGVkTmV0c2NhcGVQbHVnaW5TdHJl
YW06OmRpZFJlY2VpdmVSZXNwb25zZShOZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlciosCiAgICAg
ICAgIFt0aGVIZWFkZXJzIGFwcGVuZEJ5dGVzOiJcMCIgbGVuZ3RoOjFdOwogICAgIH0KICAgICAK
LSAgICBzdGFydFN0cmVhbShbciBVUkxdLCBleHBlY3RlZENvbnRlbnRMZW5ndGgsIFdLR2V0TlNV
UkxSZXNwb25zZUxhc3RNb2RpZmllZERhdGUociksIFtyIE1JTUVUeXBlXSwgdGhlSGVhZGVycyk7
CisgICAgc3RhcnRTdHJlYW0oW3IgVVJMXSwgZXhwZWN0ZWRDb250ZW50TGVuZ3RoLCBbciBfbGFz
dE1vZGlmaWVkRGF0ZV0sIFtyIE1JTUVUeXBlXSwgdGhlSGVhZGVycyk7CiB9CiAKIE5QUmVhc29u
IEhvc3RlZE5ldHNjYXBlUGx1Z2luU3RyZWFtOjpyZWFzb25Gb3JFcnJvcihOU0Vycm9yICplcnJv
cikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvV2ViTmV0c2NhcGVQbHVn
aW5TdHJlYW0ubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2lu
U3RyZWFtLm1tCmluZGV4IGVjMTc2YWVjZmUxYTNlMTUyMmJiNzEwZDM3MWUzY2M0YzRkNjJjNGQu
LjQxYjQ4MTdhMGVjZWNhZjI2MmEyYWY0MDMxMTY1NWVmNGM5MWRmNTYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5TdHJlYW0ubW0KKysrIGIv
U291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdpblN0cmVhbS5tbQpAQCAt
MzksNiArMzksNyBAQAogI2ltcG9ydCAiV2ViTmV0c2NhcGVQbHVnaW5WaWV3LmgiCiAjaW1wb3J0
ICJXZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuaCIKICNpbXBvcnQgPEZvdW5kYXRpb24vTlNVUkxS
ZXNwb25zZS5oPgorI2ltcG9ydCA8V2ViQ29yZS9DRk5ldHdvcmtTUEkuaD4KICNpbXBvcnQgPFdl
YkNvcmUvRG9jdW1lbnQuaD4KICNpbXBvcnQgPFdlYkNvcmUvRG9jdW1lbnRMb2FkZXIuaD4KICNp
bXBvcnQgPFdlYkNvcmUvRnJhbWUuaD4KQEAgLTM1OCw3ICszNTksNyBAQCB2b2lkIFdlYk5ldHNj
YXBlUGx1Z2luU3RyZWFtOjpkaWRSZWNlaXZlUmVzcG9uc2UoTmV0c2NhcGVQbHVnSW5TdHJlYW1M
b2FkZXIqLCBjbwogICAgICAgICAvLyBzdGFydFN0cmVhbVJlc3BvbnNlVVJMOi4uLiB3aWxsIG51
bGwtdGVybWluYXRlLgogICAgIH0KICAgICAKLSAgICBzdGFydFN0cmVhbShbciBVUkxdLCBleHBl
Y3RlZENvbnRlbnRMZW5ndGgsIFdLR2V0TlNVUkxSZXNwb25zZUxhc3RNb2RpZmllZERhdGUociks
IHJlc3BvbnNlLm1pbWVUeXBlKCksIHRoZUhlYWRlcnMpOworICAgIHN0YXJ0U3RyZWFtKFtyIFVS
TF0sIGV4cGVjdGVkQ29udGVudExlbmd0aCwgW3IgX2xhc3RNb2RpZmllZERhdGVdLCByZXNwb25z
ZS5taW1lVHlwZSgpLCB0aGVIZWFkZXJzKTsKIH0KIAogdm9pZCBXZWJOZXRzY2FwZVBsdWdpblN0
cmVhbTo6c3RhcnRTdHJlYW1XaXRoUmVzcG9uc2UoTlNVUkxSZXNwb25zZSAqcmVzcG9uc2UpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJTeXN0ZW1JbnRl
cmZhY2UubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJTeXN0ZW1JbnRl
cmZhY2UubW0KaW5kZXggMTRjMWJjNmM2YjYxZWU1YzZjYzg0NjYxNWM0ODlkM2FkNGU0YzEzMi4u
YTg4ZGMzNTYzZGM3OGM1N2UxYzhmNjM0ZDkwY2JiYjk5OWViZTZhOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViU3lzdGVtSW50ZXJmYWNlLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlN5c3RlbUludGVyZmFjZS5tbQpA
QCAtNDYsMTggKzQ2LDEyIEBAIHZvaWQgSW5pdFdlYkNvcmVTeXN0ZW1JbnRlcmZhY2Uodm9pZCkK
ICAgICBJTklUKEFkdmFuY2VEZWZhdWx0QnV0dG9uUHVsc2VBbmltYXRpb24pOwogI2VuZGlmCiAg
ICAgSU5JVChDQUxheWVyRW51bWVyYXRlUmVjdHNCZWluZ0RyYXduV2l0aEJsb2NrKTsKLSNpZiAh
UExBVEZPUk0oSU9TKQotICAgIElOSVQoQ0dDb250ZXh0R2V0U2hvdWxkU21vb3RoRm9udHMpOwot
I2VuZGlmCiAgICAgSU5JVChDR1BhdHRlcm5DcmVhdGVXaXRoSW1hZ2VBbmRUcmFuc2Zvcm0pOwog
I2lmICFQTEFURk9STShJT1MpCiAgICAgSU5JVChDR0NvbnRleHREcmF3c1dpdGhDb3JyZWN0U2hh
ZG93T2Zmc2V0cyk7CiAjZW5kaWYKICAgICBJTklUKENvcHlDT05ORUNUUHJveHlSZXNwb25zZSk7
Ci0gICAgSU5JVChDb3B5TlNVUkxSZXNwb25zZVN0YXR1c0xpbmUpOwotICAgIElOSVQoQ29weU5T
VVJMUmVzcG9uc2VDZXJ0aWZpY2F0ZUNoYWluKTsKICNpZiAhUExBVEZPUk0oSU9TKQotICAgIElO
SVQoRHJhd0NhcHNMb2NrSW5kaWNhdG9yKTsKICAgICBJTklUKERyYXdCZXplbGVkVGV4dEFyZWEp
OwogICAgIElOSVQoRHJhd0ZvY3VzUmluZyk7CiAgICAgSU5JVChEcmF3Rm9jdXNSaW5nQXRUaW1l
KTsKQEAgLTY1LDQ3ICs1OSwzNCBAQCB2b2lkIEluaXRXZWJDb3JlU3lzdGVtSW50ZXJmYWNlKHZv
aWQpCiAgICAgSU5JVChEcmF3TWVkaWFVSVBhcnQpOwogICAgIElOSVQoRHJhd01lZGlhU2xpZGVy
VHJhY2spOwogI2VuZGlmCi0gICAgSU5JVChHZXRIVFRQUmVxdWVzdFByaW9yaXR5KTsKLSAgICBJ
TklUKEdldE5TVVJMUmVzcG9uc2VMYXN0TW9kaWZpZWREYXRlKTsKICAgICBJTklUKEdldFdlYkRl
ZmF1bHRDRlN0cmluZ0VuY29kaW5nKTsKICNpZiAhUExBVEZPUk0oSU9TKQogICAgIElOSVQoU2ln
bmVkUHVibGljS2V5QW5kQ2hhbGxlbmdlU3RyaW5nKTsKICAgICBJTklUKEdldFdoZWVsRXZlbnRE
ZWx0YXMpOwogICAgIElOSVQoR2V0TlNFdmVudEtleUNoYXIpOwogICAgIElOSVQoSGl0VGVzdE1l
ZGlhVUlQYXJ0KTsKLSNlbmRpZgotICAgIElOSVQoSW5pdGlhbGl6ZU1heGltdW1IVFRQQ29ubmVj
dGlvbkNvdW50UGVySG9zdCk7Ci0jaWYgIVBMQVRGT1JNKElPUykKICAgICBJTklUKE1lYXN1cmVN
ZWRpYVVJUGFydCk7CiAgICAgSU5JVChDcmVhdGVNZWRpYVVJQmFja2dyb3VuZFZpZXcpOwogICAg
IElOSVQoQ3JlYXRlTWVkaWFVSUNvbnRyb2wpOwogICAgIElOSVQoV2luZG93U2V0QWxwaGEpOwog
ICAgIElOSVQoV2luZG93U2V0U2NhbGVkRnJhbWUpOwotICAgIElOSVQoU2V0Q0dGb250UmVuZGVy
aW5nTW9kZSk7CiAjZW5kaWYKICAgICBJTklUKFNldENPTk5FQ1RQcm94eUF1dGhvcml6YXRpb25G
b3JTdHJlYW0pOwogICAgIElOSVQoU2V0Q09OTkVDVFByb3h5Rm9yU3RyZWFtKTsKICNpZiAhUExB
VEZPUk0oSU9TKQogICAgIElOSVQoU2V0RHJhZ0ltYWdlKTsKICNlbmRpZgotICAgIElOSVQoU2V0
SFRUUFJlcXVlc3RNYXhpbXVtUHJpb3JpdHkpOwotICAgIElOSVQoU2V0SFRUUFJlcXVlc3RQcmlv
cml0eSk7Ci0gICAgSU5JVChTZXRIVFRQUmVxdWVzdE1pbmltdW1GYXN0TGFuZVByaW9yaXR5KTsK
LSAgICBJTklUKEhUVFBSZXF1ZXN0RW5hYmxlUGlwZWxpbmluZyk7Ci0gICAgSU5JVChTZXROU1VS
TFJlcXVlc3RTaG91bGRDb250ZW50U25pZmYpOwogICAgIElOSVQoQ0dDb250ZXh0SXNQREZDb250
ZXh0KTsKICNpZiBFTkFCTEUoVklERU8pICYmICFQTEFURk9STShJT1MpCiAgICAgSU5JVChRVElu
Y2x1ZGVPbmx5TW9kZXJuTWVkaWFGaWxlVHlwZXMpOwogICAgIElOSVQoUVRNb3ZpZURpc2FibGVD
b21wb25lbnQpOwogICAgIElOSVQoUVRNb3ZpZU1heFRpbWVMb2FkZWQpOwogICAgIElOSVQoUVRN
b3ZpZU1heFRpbWVMb2FkZWRDaGFuZ2VOb3RpZmljYXRpb24pOwotICAgIElOSVQoUVRNb3ZpZU1h
eFRpbWVTZWVrYWJsZSk7CiAgICAgSU5JVChRVE1vdmllR2V0VHlwZSk7CiAgICAgSU5JVChRVE1v
dmllSGFzQ2xvc2VkQ2FwdGlvbnMpOwogICAgIElOSVQoUVRNb3ZpZVJlc29sdmVkVVJMKTsKICAg
ICBJTklUKFFUTW92aWVTZXRTaG93Q2xvc2VkQ2FwdGlvbnMpOwogICAgIElOSVQoUVRNb3ZpZVNl
bGVjdFByZWZlcnJlZEFsdGVybmF0ZXMpOwotICAgIElOSVQoUVRNb3ZpZVZpZXdTZXREcmF3U3lu
Y2hyb25vdXNseSk7CiAgICAgSU5JVChRVEdldFNpdGVzSW5NZWRpYURvd25sb2FkQ2FjaGUpOwog
ICAgIElOSVQoUVRDbGVhck1lZGlhRG93bmxvYWRDYWNoZUZvclNpdGUpOwogICAgIElOSVQoUVRD
bGVhck1lZGlhRG93bmxvYWRDYWNoZSk7CkBAIC0xMTUsMTYgKzk2LDYgQEAgdm9pZCBJbml0V2Vi
Q29yZVN5c3RlbUludGVyZmFjZSh2b2lkKQogICAgIElOSVQoRXhlY3V0YWJsZVdhc0xpbmtlZE9u
T3JCZWZvcmVTbm93TGVvcGFyZCk7CiAgICAgSU5JVChDb3B5RGVmYXVsdFNlYXJjaFByb3ZpZGVy
RGlzcGxheU5hbWUpOwogICAgIElOSVQoQ3Vyc29yKTsKLSNlbmRpZgotCi0jaWYgVVNFKENGTkVU
V09SSykKLSAgICBJTklUKEdldERlZmF1bHRIVFRQQ29va2llU3RvcmFnZSk7Ci0gICAgSU5JVChD
b3B5Q3JlZGVudGlhbEZyb21DRlBlcnNpc3RlbnRTdG9yYWdlKTsKLSAgICBJTklUKFNldENGVVJM
UmVxdWVzdFNob3VsZENvbnRlbnRTbmlmZik7Ci0gICAgSU5JVChTZXRSZXF1ZXN0U3RvcmFnZVNl
c3Npb24pOwotI2VuZGlmCi0KLSNpZiAhUExBVEZPUk0oSU9TKQogICAgIElOSVQoU3BlZWNoU3lu
dGhlc2lzR2V0Vm9pY2VJZGVudGlmaWVycyk7CiAgICAgSU5JVChTcGVlY2hTeW50aGVzaXNHZXRE
ZWZhdWx0Vm9pY2VJZGVudGlmaWVyRm9yTG9jYWxlKTsKICAgICBJTklUKEdldEFYVGV4dE1hcmtl
clR5cGVJRCk7CkBAIC0xNDAsNyArMTExLDYgQEAgdm9pZCBJbml0V2ViQ29yZVN5c3RlbUludGVy
ZmFjZSh2b2lkKQogI2VuZGlmCiAgICAgSU5JVChDcmVhdGVQcml2YXRlU3RvcmFnZVNlc3Npb24p
OwogICAgIElOSVQoQ29weVJlcXVlc3RXaXRoU3RvcmFnZVNlc3Npb24pOwotICAgIElOSVQoQ29w
eUhUVFBDb29raWVTdG9yYWdlKTsKICAgICBJTklUKEdldEhUVFBDb29raWVBY2NlcHRQb2xpY3kp
OwogICAgIElOSVQoSFRUUENvb2tpZXMpOwogICAgIElOSVQoSFRUUENvb2tpZXNGb3JVUkwpOwpA
QCAtMTQ4LDE5ICsxMTgsOCBAQCB2b2lkIEluaXRXZWJDb3JlU3lzdGVtSW50ZXJmYWNlKHZvaWQp
CiAgICAgSU5JVChEZWxldGVBbGxIVFRQQ29va2llcyk7CiAgICAgSU5JVChEZWxldGVIVFRQQ29v
a2llKTsKIAotICAgIElOSVQoR2V0Q0ZVUkxSZXNwb25zZU1JTUVUeXBlKTsKLSAgICBJTklUKEdl
dENGVVJMUmVzcG9uc2VVUkwpOwotICAgIElOSVQoR2V0Q0ZVUkxSZXNwb25zZUhUVFBSZXNwb25z
ZSk7Ci0gICAgSU5JVChDb3B5Q0ZVUkxSZXNwb25zZVN1Z2dlc3RlZEZpbGVuYW1lKTsKLSAgICBJ
TklUKFNldENGVVJMUmVzcG9uc2VNSU1FVHlwZSk7Ci0KICNpZiAhUExBVEZPUk0oSU9TKQogICAg
IElOSVQoU2V0TWV0YWRhdGFVUkwpOwotI2VuZGlmCi0KLSAgICBJTklUKENGVVJMUmVxdWVzdEFs
bG93QWxsUG9zdENhY2hpbmcpOwotCi0jaWYgIVBMQVRGT1JNKElPUykKICAgICBJTklUKE5TRWxh
c3RpY0RlbHRhRm9yVGltZURlbHRhKTsKICAgICBJTklUKE5TRWxhc3RpY0RlbHRhRm9yUmVib3Vu
ZERlbHRhKTsKICAgICBJTklUKE5TUmVib3VuZERlbHRhRm9yRWxhc3RpY0RlbHRhKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0gYi9Tb3Vy
Y2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tCmluZGV4IDAxMGZhOGI3Nzcy
OWQwYzRlYWU2YjQ5ZjkzMWRlMDQ5MjZkM2NiMjcuLjVkOGJlZTc3NDA0MzFjMzEwMDIyNzY0NDkw
YjAyYTNkMmQ2ODg4OWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2Vi
UHJlZmVyZW5jZXMubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJl
bmNlcy5tbQpAQCAtNDEsNiArNDEsNyBAQAogI2ltcG9ydCAiV2ViU3lzdGVtSW50ZXJmYWNlLmgi
CiAjaW1wb3J0IDxXZWJDb3JlL0FwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlLmg+CiAjaW1wb3J0IDxX
ZWJDb3JlL0F1ZGlvU2Vzc2lvbi5oPgorI2ltcG9ydCA8V2ViQ29yZS9DRk5ldHdvcmtTUEkuaD4K
ICNpbXBvcnQgPFdlYkNvcmUvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmg+CiAjaW1wb3J0IDxXZWJD
b3JlL1BsYXRmb3JtQ29va2llSmFyLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1Jlc291cmNlSGFuZGxl
Lmg+CkBAIC01MSwxMCArNTIsNiBAQAogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgogI2ltcG9y
dCA8d3RmL1J1bkxvb3AuaD4KIAotZW51bSB7Ci0gICAgTlNIVFRQQ29va2llQWNjZXB0UG9saWN5
RXhjbHVzaXZlbHlGcm9tTWFpbkRvY3VtZW50RG9tYWluID0gMwotfTsKLQogdXNpbmcgbmFtZXNw
YWNlIFdlYkNvcmU7CiAKICNpZiBQTEFURk9STShJT1MpCkBAIC0xNzY3LDcgKzE3NjQsNyBAQCAr
ICh2b2lkKV9zZXRDdXJyZW50TmV0d29ya0xvYWRlclNlc3Npb25Db29raWVBY2NlcHRQb2xpY3k6
KE5TSFRUUENvb2tpZUFjY2VwdFBvbAogewogICAgIFJldGFpblB0cjxDRkhUVFBDb29raWVTdG9y
YWdlUmVmPiBjb29raWVTdG9yYWdlID0gTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpkZWZhdWx0U3Rv
cmFnZVNlc3Npb24oKS5jb29raWVTdG9yYWdlKCk7CiAgICAgQVNTRVJUKGNvb2tpZVN0b3JhZ2Up
OyAvLyBXaWxsIGZhaWwgd2hlbiBidWlsZGluZyB3aXRob3V0IFVTRShDRk5FVFdPUkspIGFuZCBO
ZXR3b3JrU3RvcmFnZVNlc3Npb246OnN3aXRjaFRvTmV3VGVzdGluZ1Nlc3Npb24oKSB3YXMgbm90
IGNhbGxlZCBiZWZvcmVoYW5kLgotICAgIFdLU2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShjb29r
aWVTdG9yYWdlLmdldCgpLCBwb2xpY3kpOworICAgIENGSFRUUENvb2tpZVN0b3JhZ2VTZXRDb29r
aWVBY2NlcHRQb2xpY3koY29va2llU3RvcmFnZS5nZXQoKSwgcG9saWN5KTsKIH0KIAogLSAoQk9P
TClpc0RPTVBhc3RlQWxsb3dlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1By
b2Nlc3MvY29jb2EvTmV0d29ya1Byb2Nlc3NDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQyL05ldHdv
cmtQcm9jZXNzL2NvY29hL05ldHdvcmtQcm9jZXNzQ29jb2EubW0KaW5kZXggZjQ1OWM1OTE0MWY1
M2RlZjc3ODJkNWVmZjdlZGVjZWE4YjZkZTJjNC4uNTdiZmU2ZDk3YmFjYjQxNGZmMDc4YmY1MDU0
ZTdlNzhhNTliNTI4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mv
Y29jb2EvTmV0d29ya1Byb2Nlc3NDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3Jr
UHJvY2Vzcy9jb2NvYS9OZXR3b3JrUHJvY2Vzc0NvY29hLm1tCkBAIC01MSw3ICs1MSw3IEBAIHN0
YXRpYyB2b2lkIGluaXRpYWxpemVOZXR3b3JrU2V0dGluZ3MoKQogewogICAgIHN0YXRpYyBjb25z
dCB1bnNpZ25lZCBwcmVmZXJyZWRDb25uZWN0aW9uQ291bnQgPSA2OwogCi0gICAgV0tJbml0aWFs
aXplTWF4aW11bUhUVFBDb25uZWN0aW9uQ291bnRQZXJIb3N0KHByZWZlcnJlZENvbm5lY3Rpb25D
b3VudCk7CisgICAgX0NGTmV0d29ya0hUVFBDb25uZWN0aW9uQ2FjaGVTZXRMaW1pdChrSFRUUExv
YWRXaWR0aCwgcHJlZmVycmVkQ29ubmVjdGlvbkNvdW50KTsKIAogICAgIEJvb2xlYW4ga2V5RXhp
c3RzQW5kSGFzVmFsaWRGb3JtYXQgPSBmYWxzZTsKICAgICBCb29sZWFuIHByZWZWYWx1ZSA9IENG
UHJlZmVyZW5jZXNHZXRBcHBCb29sZWFuVmFsdWUoQ0ZTVFIoIldlYktpdEVuYWJsZUhUVFBQaXBl
bGluaW5nIiksIGtDRlByZWZlcmVuY2VzQ3VycmVudEFwcGxpY2F0aW9uLCAma2V5RXhpc3RzQW5k
SGFzVmFsaWRGb3JtYXQpOwpAQCAtNTksOCArNTksMTAgQEAgc3RhdGljIHZvaWQgaW5pdGlhbGl6
ZU5ldHdvcmtTZXR0aW5ncygpCiAgICAgICAgIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdDo6c2V0
SFRUUFBpcGVsaW5pbmdFbmFibGVkKHByZWZWYWx1ZSk7CiAKICAgICBpZiAoV2ViQ29yZTo6UmVz
b3VyY2VSZXF1ZXN0OjpyZXNvdXJjZVByaW9yaXRpZXNFbmFibGVkKCkpIHsKLSAgICAgICAgV0tT
ZXRIVFRQUmVxdWVzdE1heGltdW1Qcmlvcml0eSh0b1BsYXRmb3JtUmVxdWVzdFByaW9yaXR5KFdl
YkNvcmU6OlJlc291cmNlTG9hZFByaW9yaXR5OjpIaWdoZXN0KSk7Ci0gICAgICAgIFdLU2V0SFRU
UFJlcXVlc3RNaW5pbXVtRmFzdExhbmVQcmlvcml0eSh0b1BsYXRmb3JtUmVxdWVzdFByaW9yaXR5
KFdlYkNvcmU6OlJlc291cmNlTG9hZFByaW9yaXR5OjpNZWRpdW0pKTsKKyAgICAgICAgX0NGTmV0
d29ya0hUVFBDb25uZWN0aW9uQ2FjaGVTZXRMaW1pdChrSFRUUFByaW9yaXR5TnVtTGV2ZWxzLCB0
b1BsYXRmb3JtUmVxdWVzdFByaW9yaXR5KFdlYkNvcmU6OlJlc291cmNlTG9hZFByaW9yaXR5OjpI
aWdoZXN0KSk7CisjaWYgUExBVEZPUk0oSU9TKQorICAgICAgICBfQ0ZOZXR3b3JrSFRUUENvbm5l
Y3Rpb25DYWNoZVNldExpbWl0KGtIVFRQTWluaW11bUZhc3RMYW5lUHJpb3JpdHksIHRvUGxhdGZv
cm1SZXF1ZXN0UHJpb3JpdHkoV2ViQ29yZTo6UmVzb3VyY2VMb2FkUHJpb3JpdHk6Ok1lZGl1bSkp
OworI2VuZGlmCiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3Jr
UHJvY2Vzcy9tYWMvTmV0d29ya1Byb2Nlc3NNYWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3Jr
UHJvY2Vzcy9tYWMvTmV0d29ya1Byb2Nlc3NNYWMubW0KaW5kZXggMjg0ZTViNzg4NjFjZTg3ZjRi
NWZjNWYxYTg2YzA5NzA5NmVhMTRjMC4uZGQ1NzlhNTEwYTllNzU3Y2UzMjA0YzY0YTA5YTdlMWU3
Y2RjZWM0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvbWFjL05l
dHdvcmtQcm9jZXNzTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL21h
Yy9OZXR3b3JrUHJvY2Vzc01hYy5tbQpAQCAtMzYsNiArMzYsNyBAQAogI2ltcG9ydCAiU2FuZGJv
eEluaXRpYWxpemF0aW9uUGFyYW1ldGVycy5oIgogI2ltcG9ydCAiU2VjSXRlbVNoaW0uaCIKICNp
bXBvcnQgIlN0cmluZ1V0aWxpdGllcy5oIgorI2ltcG9ydCA8V2ViQ29yZS9DRk5ldHdvcmtTUEku
aD4KICNpbXBvcnQgPFdlYkNvcmUvQ2VydGlmaWNhdGVJbmZvLmg+CiAjaW1wb3J0IDxXZWJDb3Jl
L0ZpbGVTeXN0ZW0uaD4KICNpbXBvcnQgPFdlYkNvcmUvTG9jYWxpemVkU3RyaW5ncy5oPgpAQCAt
OTUsNyArOTYsNyBAQCBzdGF0aWMgdm9pZCBvdmVycmlkZVN5c3RlbVByb3hpZXMoY29uc3QgU3Ry
aW5nJiBodHRwUHJveHksIGNvbnN0IFN0cmluZyYgaHR0cHNQcgogICAgIH0KIAogICAgIGlmIChb
cHJveHlTZXR0aW5ncyBjb3VudF0gPiAwKQotICAgICAgICBXS0NGTmV0d29ya1NldE92ZXJyaWRl
U3lzdGVtUHJveHlTZXR0aW5ncygoQ0ZEaWN0aW9uYXJ5UmVmKXByb3h5U2V0dGluZ3MpOworICAg
ICAgICBfQ0ZOZXR3b3JrU2V0T3ZlcnJpZGVTeXN0ZW1Qcm94eVNldHRpbmdzKChDRkRpY3Rpb25h
cnlSZWYpcHJveHlTZXR0aW5ncyk7CiB9CiAKIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnBsYXRmb3Jt
SW5pdGlhbGl6ZU5ldHdvcmtQcm9jZXNzKGNvbnN0IE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzJiBwYXJhbWV0ZXJzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5tbSBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkZyYW1lTmV0d29ya2lu
Z0NvbnRleHQubW0KaW5kZXggN2IxMzI4ZGVjYzJhM2MwOGIwYTM4YjM3ZTljM2IxYzVmNjM1NWNl
ZC4uMmU2NzE4Mjk5MDcxMTY5NDc0YWFlMjczZDNmNjdiMTA0Y2NiNGUzOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRnJhbWVOZXR3
b3JraW5nQ29udGV4dC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L21hYy9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lm1tCkBAIC0zMSw2ICszMSw3IEBA
CiAjaW5jbHVkZSAiV2ViQ29va2llTWFuYWdlci5oIgogI2luY2x1ZGUgIldlYlBhZ2UuaCIKICNp
bmNsdWRlICJXZWJQcm9jZXNzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9DRk5ldHdvcmtTUEkuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUxvYWRl
ci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVMb2FkZXJDbGllbnQuaD4KQEAgLTY5LDExICs3
MCwxMSBAQCB2b2lkIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OnNldENvb2tpZUFjY2VwdFBv
bGljeUZvckFsbENvbnRleHRzKEhUVFBDb29raWVBYwogICAgIFtbTlNIVFRQQ29va2llU3RvcmFn
ZSBzaGFyZWRIVFRQQ29va2llU3RvcmFnZV0gc2V0Q29va2llQWNjZXB0UG9saWN5OnN0YXRpY19j
YXN0PE5TSFRUUENvb2tpZUFjY2VwdFBvbGljeT4ocG9saWN5KV07CiAKICAgICBpZiAoUmV0YWlu
UHRyPENGSFRUUENvb2tpZVN0b3JhZ2VSZWY+IGNvb2tpZVN0b3JhZ2UgPSBOZXR3b3JrU3RvcmFn
ZVNlc3Npb246OmRlZmF1bHRTdG9yYWdlU2Vzc2lvbigpLmNvb2tpZVN0b3JhZ2UoKSkKLSAgICAg
ICAgV0tTZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KGNvb2tpZVN0b3JhZ2UuZ2V0KCksIHBvbGlj
eSk7CisgICAgICAgIENGSFRUUENvb2tpZVN0b3JhZ2VTZXRDb29raWVBY2NlcHRQb2xpY3koY29v
a2llU3RvcmFnZS5nZXQoKSwgcG9saWN5KTsKIAogICAgIGZvciAoY29uc3QgYXV0byYgc2Vzc2lv
biA6IFNlc3Npb25UcmFja2VyOjpzdG9yYWdlU2Vzc2lvbk1hcCgpLnZhbHVlcygpKSB7CiAgICAg
ICAgIGlmIChzZXNzaW9uKQotICAgICAgICAgICAgV0tTZXRIVFRQQ29va2llQWNjZXB0UG9saWN5
KHNlc3Npb24tPmNvb2tpZVN0b3JhZ2UoKS5nZXQoKSwgcG9saWN5KTsKKyAgICAgICAgICAgIENG
SFRUUENvb2tpZVN0b3JhZ2VTZXRDb29raWVBY2NlcHRQb2xpY3koc2Vzc2lvbi0+Y29va2llU3Rv
cmFnZSgpLmdldCgpLCBwb2xpY3kpOwogICAgIH0KIH0KICAgICAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYlN5c3RlbUludGVyZmFj
ZS5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYlN5
c3RlbUludGVyZmFjZS5tbQppbmRleCAwM2YyODgyMzAyMTEzNmZlMDhkZDJmNzNjNTRhYmIzNWYz
M2I4ZThmLi4zYWI1OTBkMzA0YWFkODljNTFmNDBkMmVlZTEwNDE4YWE5NjIwYjdhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJTeXN0
ZW1JbnRlcmZhY2UubW0KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9tYWMvV2ViU3lzdGVtSW50ZXJmYWNlLm1tCkBAIC00MCwyNiArNDAsMTggQEAgdm9pZCBJ
bml0V2ViQ29yZVN5c3RlbUludGVyZmFjZSh2b2lkKQogICAgICAgICBJTklUKEFkdmFuY2VEZWZh
dWx0QnV0dG9uUHVsc2VBbmltYXRpb24pOwogI2VuZGlmCiAgICAgICAgIElOSVQoQ0FMYXllckVu
dW1lcmF0ZVJlY3RzQmVpbmdEcmF3bldpdGhCbG9jayk7Ci0gICAgICAgIElOSVQoQ0dDb250ZXh0
R2V0U2hvdWxkU21vb3RoRm9udHMpOwogICAgICAgICBJTklUKENHUGF0dGVybkNyZWF0ZVdpdGhJ
bWFnZUFuZFRyYW5zZm9ybSk7CiAjaWYgIVBMQVRGT1JNKElPUykKICAgICAgICAgSU5JVChDR0Nv
bnRleHREcmF3c1dpdGhDb3JyZWN0U2hhZG93T2Zmc2V0cyk7CiAjZW5kaWYKICAgICAgICAgSU5J
VChDb3B5Q09OTkVDVFByb3h5UmVzcG9uc2UpOwotICAgICAgICBJTklUKENvcHlOU1VSTFJlc3Bv
bnNlU3RhdHVzTGluZSk7Ci0gICAgICAgIElOSVQoQ29weU5TVVJMUmVzcG9uc2VDZXJ0aWZpY2F0
ZUNoYWluKTsKICNpZiAhUExBVEZPUk0oSU9TKQogICAgICAgICBJTklUKERyYXdCZXplbGVkVGV4
dEFyZWEpOwotICAgICAgICBJTklUKERyYXdDYXBzTG9ja0luZGljYXRvcik7CiAgICAgICAgIElO
SVQoRHJhd0ZvY3VzUmluZyk7CiAgICAgICAgIElOSVQoRHJhd0ZvY3VzUmluZ0F0VGltZSk7CiAg
ICAgICAgIElOSVQoRHJhd0NlbGxGb2N1c1JpbmdXaXRoRnJhbWVBdFRpbWUpOwogICAgICAgICBJ
TklUKERyYXdNZWRpYVNsaWRlclRyYWNrKTsKICAgICAgICAgSU5JVChEcmF3TWVkaWFVSVBhcnQp
OwotI2VuZGlmCi0gICAgICAgIElOSVQoR2V0SFRUUFJlcXVlc3RQcmlvcml0eSk7Ci0gICAgICAg
IElOSVQoR2V0TlNVUkxSZXNwb25zZUxhc3RNb2RpZmllZERhdGUpOwotI2lmICFQTEFURk9STShJ
T1MpCiAgICAgICAgIElOSVQoU2lnbmVkUHVibGljS2V5QW5kQ2hhbGxlbmdlU3RyaW5nKTsKICNl
bmRpZgogICAgICAgICBJTklUKEdldFdlYkRlZmF1bHRDRlN0cmluZ0VuY29kaW5nKTsKQEAgLTY4
LDEwICs2MCw2IEBAIHZvaWQgSW5pdFdlYkNvcmVTeXN0ZW1JbnRlcmZhY2Uodm9pZCkKICAgICAg
ICAgSU5JVChHZXRXaGVlbEV2ZW50RGVsdGFzKTsKICAgICAgICAgSU5JVChHZXROU0V2ZW50S2V5
Q2hhcik7CiAgICAgICAgIElOSVQoSGl0VGVzdE1lZGlhVUlQYXJ0KTsKLSNlbmRpZgotICAgICAg
ICBJTklUKEluaXRpYWxpemVNYXhpbXVtSFRUUENvbm5lY3Rpb25Db3VudFBlckhvc3QpOwotICAg
ICAgICBJTklUKEhUVFBSZXF1ZXN0RW5hYmxlUGlwZWxpbmluZyk7Ci0jaWYgIVBMQVRGT1JNKElP
UykKICAgICAgICAgSU5JVChNZWFzdXJlTWVkaWFVSVBhcnQpOwogICAgICAgICBJTklUKFFUSW5j
bHVkZU9ubHlNb2Rlcm5NZWRpYUZpbGVUeXBlcyk7CiAgICAgICAgIElOSVQoUVRNb3ZpZURpc2Fi
bGVDb21wb25lbnQpOwpAQCAtNzksMzAgKzY3LDIxIEBAIHZvaWQgSW5pdFdlYkNvcmVTeXN0ZW1J
bnRlcmZhY2Uodm9pZCkKICAgICAgICAgSU5JVChRVE1vdmllSGFzQ2xvc2VkQ2FwdGlvbnMpOwog
ICAgICAgICBJTklUKFFUTW92aWVNYXhUaW1lTG9hZGVkKTsKICAgICAgICAgSU5JVChRVE1vdmll
TWF4VGltZUxvYWRlZENoYW5nZU5vdGlmaWNhdGlvbik7Ci0gICAgICAgIElOSVQoUVRNb3ZpZU1h
eFRpbWVTZWVrYWJsZSk7CiAgICAgICAgIElOSVQoUVRNb3ZpZVJlc29sdmVkVVJMKTsKICAgICAg
ICAgSU5JVChRVE1vdmllU2VsZWN0UHJlZmVycmVkQWx0ZXJuYXRlcyk7CiAgICAgICAgIElOSVQo
UVRNb3ZpZVNldFNob3dDbG9zZWRDYXB0aW9ucyk7Ci0gICAgICAgIElOSVQoUVRNb3ZpZVZpZXdT
ZXREcmF3U3luY2hyb25vdXNseSk7CiAgICAgICAgIElOSVQoUVRHZXRTaXRlc0luTWVkaWFEb3du
bG9hZENhY2hlKTsKICAgICAgICAgSU5JVChRVENsZWFyTWVkaWFEb3dubG9hZENhY2hlRm9yU2l0
ZSk7CiAgICAgICAgIElOSVQoUVRDbGVhck1lZGlhRG93bmxvYWRDYWNoZSk7Ci0gICAgICAgIElO
SVQoU2V0Q0dGb250UmVuZGVyaW5nTW9kZSk7CiAjZW5kaWYKICAgICAgICAgSU5JVChTZXRDT05O
RUNUUHJveHlBdXRob3JpemF0aW9uRm9yU3RyZWFtKTsKICAgICAgICAgSU5JVChTZXRDT05ORUNU
UHJveHlGb3JTdHJlYW0pOwogI2lmICFQTEFURk9STShJT1MpCiAgICAgICAgIElOSVQoU2V0RHJh
Z0ltYWdlKTsKICNlbmRpZgotICAgICAgICBJTklUKFNldEhUVFBSZXF1ZXN0TWF4aW11bVByaW9y
aXR5KTsKLSAgICAgICAgSU5JVChTZXRIVFRQUmVxdWVzdFByaW9yaXR5KTsKLSAgICAgICAgSU5J
VChTZXRIVFRQUmVxdWVzdE1pbmltdW1GYXN0TGFuZVByaW9yaXR5KTsKLSAgICAgICAgSU5JVChT
ZXROU1VSTFJlcXVlc3RTaG91bGRDb250ZW50U25pZmYpOwogICAgICAgICBJTklUKENyZWF0ZVBy
aXZhdGVTdG9yYWdlU2Vzc2lvbik7CiAgICAgICAgIElOSVQoQ29weVJlcXVlc3RXaXRoU3RvcmFn
ZVNlc3Npb24pOwotICAgICAgICBJTklUKENvcHlIVFRQQ29va2llU3RvcmFnZSk7CiAgICAgICAg
IElOSVQoR2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeSk7Ci0gICAgICAgIElOSVQoU2V0SFRUUENv
b2tpZUFjY2VwdFBvbGljeSk7CiAgICAgICAgIElOSVQoSFRUUENvb2tpZXMpOwogICAgICAgICBJ
TklUKEhUVFBDb29raWVzRm9yVVJMKTsKICAgICAgICAgSU5JVChTZXRIVFRQQ29va2llc0ZvclVS
TCk7CkBAIC0xMTEsMjQgKzkwLDExIEBAIHZvaWQgSW5pdFdlYkNvcmVTeXN0ZW1JbnRlcmZhY2Uo
dm9pZCkKIAogI2lmICFQTEFURk9STShJT1MpCiAgICAgICAgIElOSVQoU2V0TWV0YWRhdGFVUkwp
OwotI2VuZGlmIC8vICFQTEFURk9STShJT1MpCi0KLSNpZiAhUExBVEZPUk0oSU9TKQogICAgICAg
ICBJTklUKEV4ZWN1dGFibGVXYXNMaW5rZWRPbk9yQmVmb3JlU25vd0xlb3BhcmQpOwogICAgICAg
ICBJTklUKENvcHlEZWZhdWx0U2VhcmNoUHJvdmlkZXJEaXNwbGF5TmFtZSk7CiAgICAgICAgIElO
SVQoQ3Vyc29yKTsKICAgICAgICAgSU5JVChXaW5kb3dTZXRTY2FsZWRGcmFtZSk7CiAgICAgICAg
IElOSVQoV2luZG93U2V0QWxwaGEpOwotI2VuZGlmIC8vICFQTEFURk9STShJT1MpCi0KLSNpZiBV
U0UoQ0ZORVRXT1JLKQotICAgICAgICBJTklUKEdldERlZmF1bHRIVFRQQ29va2llU3RvcmFnZSk7
Ci0gICAgICAgIElOSVQoQ29weUNyZWRlbnRpYWxGcm9tQ0ZQZXJzaXN0ZW50U3RvcmFnZSk7Ci0g
ICAgICAgIElOSVQoU2V0Q0ZVUkxSZXF1ZXN0U2hvdWxkQ29udGVudFNuaWZmKTsKLSAgICAgICAg
SU5JVChTZXRSZXF1ZXN0U3RvcmFnZVNlc3Npb24pOwotI2VuZGlmCi0KLSNpZiAhUExBVEZPUk0o
SU9TKQogICAgICAgICBJTklUKFNwZWVjaFN5bnRoZXNpc0dldFZvaWNlSWRlbnRpZmllcnMpOwog
ICAgICAgICBJTklUKFNwZWVjaFN5bnRoZXNpc0dldERlZmF1bHRWb2ljZUlkZW50aWZpZXJGb3JM
b2NhbGUpOwogICAgICAgICBJTklUKEdldEFYVGV4dE1hcmtlclR5cGVJRCk7CkBAIC0xNDEsMTcg
KzEwNyw2IEBAIHZvaWQgSW5pdFdlYkNvcmVTeXN0ZW1JbnRlcmZhY2Uodm9pZCkKICAgICAgICAg
SU5JVChBY2Nlc3NpYmlsaXR5SGFuZGxlRm9jdXNDaGFuZ2VkKTsKICAgICAgICAgSU5JVChDcmVh
dGVBWFVJRWxlbWVudFJlZik7CiAgICAgICAgIElOSVQoVW5yZWdpc3RlclVuaXF1ZUlkRm9yRWxl
bWVudCk7Ci0jZW5kaWYKLQotICAgICAgICBJTklUKEdldENGVVJMUmVzcG9uc2VNSU1FVHlwZSk7
Ci0gICAgICAgIElOSVQoR2V0Q0ZVUkxSZXNwb25zZVVSTCk7Ci0gICAgICAgIElOSVQoR2V0Q0ZV
UkxSZXNwb25zZUhUVFBSZXNwb25zZSk7Ci0gICAgICAgIElOSVQoQ29weUNGVVJMUmVzcG9uc2VT
dWdnZXN0ZWRGaWxlbmFtZSk7Ci0gICAgICAgIElOSVQoU2V0Q0ZVUkxSZXNwb25zZU1JTUVUeXBl
KTsKLQotICAgICAgICBJTklUKENGVVJMUmVxdWVzdEFsbG93QWxsUG9zdENhY2hpbmcpOwotCi0j
aWYgIVBMQVRGT1JNKElPUykKICAgICAgICAgSU5JVChOU0VsYXN0aWNEZWx0YUZvclRpbWVEZWx0
YSk7CiAgICAgICAgIElOSVQoTlNFbGFzdGljRGVsdGFGb3JSZWJvdW5kRGVsdGEpOwogICAgICAg
ICBJTklUKE5TUmVib3VuZERlbHRhRm9yRWxhc3RpY0RlbHRhKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>