<?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>177424</bug_id>
          
          <creation_ts>2017-09-25 00:16:36 -0700</creation_ts>
          <short_desc>Remove ENABLE_NETWORK_CACHE</short_desc>
          <delta_ts>2017-10-11 08:54:09 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yoshiaki Jitsukawa">yoshiaki.jitsukawa</reporter>
          <assigned_to name="Don Olmstead">don.olmstead</assigned_to>
          <cc>achristensen</cc>
    
    <cc>cdumez</cc>
    
    <cc>cgarcia</cc>
    
    <cc>commit-queue</cc>
    
    <cc>don.olmstead</cc>
    
    <cc>ggaren</cc>
    
    <cc>koivisto</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1352142</commentid>
    <comment_count>0</comment_count>
    <who name="Yoshiaki Jitsukawa">yoshiaki.jitsukawa</who>
    <bug_when>2017-09-25 00:16:36 -0700</bug_when>
    <thetext>https://trac.webkit.org/changeset/221942/webkit introduced NetworkCache::Key and other things in NetworkCache namespace
into WebKit/NetworkProcess/cache/CacheStorageEngineCache, but NetworkCache::* is not defined unless ENABLE(NETWORK_CACHE) is true
and this causes WebKit to fail to build.

The definition in WebKit/config.h is 
#ifndef ENABLE_NETWORK_CACHE
#if PLATFORM(COCOA) || USE(SOUP)
#define ENABLE_NETWORK_CACHE 1
#else
#define ENABLE_NETWORK_CACHE 0
#endif
#endif

and it seems like all webkit(2) port enable it today.

Should we support the case ENABLE_NETWORK_CACHE==0 or should all webkit(2) port (including upcoming windows one) enable network cache?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1352231</commentid>
    <comment_count>1</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2017-09-25 09:52:29 -0700</bug_when>
    <thetext>We should just remove ENABLE_NETWORK_CACHE define and always compile in the code. Cache can still be disabled dynamically.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1352443</commentid>
    <comment_count>2</comment_count>
    <who name="Yoshiaki Jitsukawa">yoshiaki.jitsukawa</who>
    <bug_when>2017-09-25 14:54:53 -0700</bug_when>
    <thetext>(In reply to Antti Koivisto from comment #1)
&gt; We should just remove ENABLE_NETWORK_CACHE define and always compile in the
&gt; code. Cache can still be disabled dynamically.

I understand. Thank you for the clarification :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1358906</commentid>
    <comment_count>3</comment_count>
      <attachid>323349</attachid>
    <who name="Don Olmstead">don.olmstead</who>
    <bug_when>2017-10-10 14:22:00 -0700</bug_when>
    <thetext>Created attachment 323349
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1358929</commentid>
    <comment_count>4</comment_count>
      <attachid>323349</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2017-10-10 15:02:13 -0700</bug_when>
    <thetext>Comment on attachment 323349
Patch

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

&gt; Source/WebKit/NetworkProcess/NetworkResourceLoader.cpp:320
&gt;      bool shouldSendDidReceiveResponse = true;

This line can be removed

&gt; Source/WebKit/NetworkProcess/NetworkResourceLoader.cpp:334
&gt;      shouldSendDidReceiveResponse = !m_cacheEntryForValidation;

... and this turned into

bool shouldSendDidReceiveResponse = !m_cacheEntryForValidation

&gt; Source/WebKit/NetworkProcess/NetworkResourceLoader.cpp:-362
&gt;      // For main resources, the web process is responsible for sending back a NetworkResourceLoader::ContinueDidReceiveResponse message.
&gt;      bool shouldContinueDidReceiveResponse = !shouldWaitContinueDidReceiveResponse;
&gt; -#if ENABLE(NETWORK_CACHE)
&gt;      shouldContinueDidReceiveResponse = shouldContinueDidReceiveResponse || m_cacheEntryForValidation;
&gt; -#endif

This can be reduced to

bool shouldContinueDidReceiveResponse = !shouldWaitContinueDidReceiveResponse || m_cacheEntryForValidation;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1358983</commentid>
    <comment_count>5</comment_count>
      <attachid>323365</attachid>
    <who name="Don Olmstead">don.olmstead</who>
    <bug_when>2017-10-10 17:36:32 -0700</bug_when>
    <thetext>Created attachment 323365
Patch

Fixing review comments</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1359071</commentid>
    <comment_count>6</comment_count>
      <attachid>323365</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2017-10-11 00:01:59 -0700</bug_when>
    <thetext>Comment on attachment 323365
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1359191</commentid>
    <comment_count>7</comment_count>
      <attachid>323365</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-10-11 08:53:25 -0700</bug_when>
    <thetext>Comment on attachment 323365
Patch

Clearing flags on attachment: 323365

Committed r223179: &lt;https://trac.webkit.org/changeset/223179&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1359192</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-10-11 08:53:27 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1359193</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-10-11 08:54:09 -0700</bug_when>
    <thetext>&lt;rdar://problem/34934064&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>323349</attachid>
            <date>2017-10-10 14:22:00 -0700</date>
            <delta_ts>2017-10-10 17:36:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-177424.diff</filename>
            <type>text/plain</type>
            <size>47369</size>
            <attacher name="Don Olmstead">don.olmstead</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKaW5kZXggYjNiMDlmYTM0YTQuLjk2YmYxMjhhYzdhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsx
LDgzIEBACisyMDE3LTEwLTEwICBEb24gT2xtc3RlYWQgIDxkb24ub2xtc3RlYWRAc29ueS5jb20+
CisKKyAgICAgICAgUmVtb3ZlIEVOQUJMRV9ORVRXT1JLX0NBQ0hFCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzc0MjQKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3M6OnN0b3JlRGVyaXZlZERhdGFUb0NhY2hlKToKKyAgICAgICAgKiBO
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oOgorICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmlu
OgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6ZmV0Y2hEaXNrQ2FjaGVFbnRyaWVzKToKKyAgICAgICAgKFdlYktpdDo6Y2xlYXJE
aXNrQ2FjaGVFbnRyaWVzKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OnNldENh
Y2hlTW9kZWwpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmg6Cisg
ICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpjYWNoZSk6CisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwOgorICAgICAgICAo
V2ViS2l0OjpOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlIGNvbnN0KToK
KyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29k
ZSk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnMuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6Ok5ldHdvcmtSZXNv
dXJjZUxvYWRlcik6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6Y2Fu
VXNlQ2FjaGVkUmVkaXJlY3QgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3Vy
Y2VMb2FkZXI6OnN0YXJ0KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZGVy
OjpyZXRyaWV2ZUNhY2hlRW50cnkpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VM
b2FkZXI6OnN0YXJ0TmV0d29ya0xvYWQpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3Vy
Y2VMb2FkZXI6OmFib3J0KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZGVy
OjpkaWRSZWNlaXZlUmVzcG9uc2UpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VM
b2FkZXI6OmRpZFJlY2VpdmVCdWZmZXIpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3Vy
Y2VMb2FkZXI6OmRpZEZpbmlzaExvYWRpbmcpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVz
b3VyY2VMb2FkZXI6OmRpZEZhaWxMb2FkaW5nKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Jl
c291cmNlTG9hZGVyOjp3aWxsU2VuZFJlZGlyZWN0ZWRSZXF1ZXN0KToKKyAgICAgICAgKFdlYktp
dDo6TmV0d29ya1Jlc291cmNlTG9hZGVyOjpjb250aW51ZVdpbGxTZW5kUmVxdWVzdCk6CisgICAg
ICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6ZGlzcGF0Y2hXaWxsU2VuZFJlcXVl
c3RGb3JDYWNoZUVudHJ5KToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3Vy
Y2VMb2FkZXIuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGUu
Y3BwOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5oOgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUJsb2JTdG9yYWdlLmNwcDoK
KyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVCbG9iU3RvcmFnZS5o
OgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUNvZGVycy5jcHA6
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlQ29kZXJzLmg6Cisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlQ29kZXJzQ29jb2EuY3Bw
OgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUNvZGVyc1NvdXAu
Y3BwOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZURhdGEuY3Bw
OgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZURhdGEuaDoKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVEYXRhQ29jb2EubW06Cisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlRGF0YVNvdXAuY3BwOgor
ICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUVudHJ5LmNwcDoKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVFbnRyeS5oOgorICAgICAg
ICAqIE5ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUZpbGVTeXN0ZW0uY3BwOgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUZpbGVTeXN0ZW0uaDoKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVJT0NoYW5uZWwuaDoKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVJT0NoYW5uZWxDb2NvYS5t
bToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVJT0NoYW5uZWxT
b3VwLmNwcDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVLZXku
Y3BwOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUtleS5oOgor
ICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZVN0YXRpc3RpY3MuY3Bw
OgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZVN0YXRpc3RpY3Mu
aDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTdG9yYWdlLmNw
cDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTdG9yYWdlLmg6
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Byb2Nlc3NDb2NvYS5tbToK
KyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZU5ldHdv
cmtQcm9jZXNzQ29jb2EpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6Y2xlYXJE
aXNrQ2FjaGUpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2lvcy9OZXR3b3JrUHJvY2Vzc0lP
Uy5tbToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmNsZWFyQ2FjaGVGb3JBbGxP
cmlnaW5zKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtQcm9jZXNzU291
cC5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxp
emVOZXR3b3JrUHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpjbGVh
ckRpc2tDYWNoZSk6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29j
b2EubW06CisgICAgICAgIChXZWJLaXQ6OnJlZ2lzdGVyVXNlckRlZmF1bHRzSWZOZWVkZWQpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXplTmV0d29y
a1Byb2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6bGVnYWN5UGxhdGZv
cm1EZWZhdWx0TmV0d29ya0NhY2hlRGlyZWN0b3J5KToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJv
Y2Vzc1Bvb2w6OmlzTmV0d29ya0NhY2hlRW5hYmxlZCk6CisgICAgICAgICogVUlQcm9jZXNzL3Nv
dXAvV2ViUHJvY2Vzc1Bvb2xTb3VwLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bv
b2w6OnBsYXRmb3JtSW5pdGlhbGl6ZU5ldHdvcmtQcm9jZXNzKToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJM
b2FkZXJTdHJhdGVneTo6c3RvcmVEZXJpdmVkRGF0YVRvQ2FjaGUpOgorICAgICAgICAqIGNvbmZp
Zy5oOgorCiAyMDE3LTEwLTEwICBNaWNoYWVsIENhdGFuemFybyAgPG1jYXRhbnphcm9AaWdhbGlh
LmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMjIzMTM2LgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzLmNwcAppbmRleCA5NDgxOWE4ODMwZi4uYzVjODU0OGZmODEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCkBAIC00NTYsMTMgKzQ1NiwxMSBAQCB2b2lkIE5ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjp3cml0ZUJsb2JzVG9UZW1wb3JhcnlGaWxlcyhjb25z
dCBWZWN0b3I8U3RyaQogICAgIH0pOwogfQogCi0jaWYgRU5BQkxFKE5FVFdPUktfQ0FDSEUpCiB2
b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpzdG9yZURlcml2ZWREYXRhVG9DYWNo
ZShjb25zdCBXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6RGF0YUtleSYgZGF0YUtleSwgY29uc3QgSVBD
OjpEYXRhUmVmZXJlbmNlJiBkYXRhKQogewogICAgIGlmIChhdXRvKiBjYWNoZSA9IE5ldHdvcmtQ
cm9jZXNzOjpzaW5nbGV0b24oKS5jYWNoZSgpKQogICAgICAgICBjYWNoZS0+c3RvcmVEYXRhKGRh
dGFLZXksIGRhdGEuZGF0YSgpLCBkYXRhLnNpemUoKSk7CiB9Ci0jZW5kaWYKIAogdm9pZCBOZXR3
b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6c2V0Q2FwdHVyZUV4dHJhTmV0d29ya0xvYWRNZXRy
aWNzRW5hYmxlZChib29sIGVuYWJsZWQpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKaW5kZXgg
ZWIyN2U5YzZmNzMuLjVhZjI5NDk5NzljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKKysrIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCkBAIC0x
MTgsOSArMTE4LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHVucmVnaXN0ZXJCbG9iVVJMKGNvbnN0
IFdlYkNvcmU6OlVSTCYpOwogICAgIHZvaWQgd3JpdGVCbG9ic1RvVGVtcG9yYXJ5RmlsZXMoY29u
c3QgVmVjdG9yPFN0cmluZz4mIGJsb2JVUkxzLCB1aW50NjRfdCByZXF1ZXN0SWRlbnRpZmllcik7
CiAKLSNpZiBFTkFCTEUoTkVUV09SS19DQUNIRSkKICAgICB2b2lkIHN0b3JlRGVyaXZlZERhdGFU
b0NhY2hlKGNvbnN0IFdlYktpdDo6TmV0d29ya0NhY2hlOjpEYXRhS2V5JiwgY29uc3QgSVBDOjpE
YXRhUmVmZXJlbmNlJik7Ci0jZW5kaWYKIAogICAgIHZvaWQgc2V0Q2FwdHVyZUV4dHJhTmV0d29y
a0xvYWRNZXRyaWNzRW5hYmxlZChib29sKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbiBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MubWVzc2FnZXMuaW4KaW5kZXggZTUzMTNiOWMzMTkuLjdiOGFiMDU2MGY1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KQEAgLTUwLDkgKzUwLDcgQEAgbWVz
c2FnZXMgLT4gTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgewog
ICAgIEJsb2JTaXplKFdlYkNvcmU6OlVSTCB1cmwpIC0+ICh1aW50NjRfdCByZXN1bHRTaXplKQog
ICAgIFdyaXRlQmxvYnNUb1RlbXBvcmFyeUZpbGVzKFZlY3RvcjxTdHJpbmc+IGJsb2JVUkxzLCB1
aW50NjRfdCByZXF1ZXN0SWRlbnRpZmllcikKIAotI2lmIEVOQUJMRShORVRXT1JLX0NBQ0hFKQog
ICAgIFN0b3JlRGVyaXZlZERhdGFUb0NhY2hlKFdlYktpdDo6TmV0d29ya0NhY2hlOjpEYXRhS2V5
IGtleSwgSVBDOjpEYXRhUmVmZXJlbmNlIGRhdGEpCi0jZW5kaWYKIAogICAgIFNldENhcHR1cmVF
eHRyYU5ldHdvcmtMb2FkTWV0cmljc0VuYWJsZWQoYm9vbCBlbmFibGVkKQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCmluZGV4IDQ5NzU0MmJh
NzRmLi5kZDk3NDRjYmFkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrUHJvY2Vzcy5jcHAKQEAgLTc0LDEwICs3NCw4IEBACiAjaW5jbHVkZSAiU2VjSXRlbVNo
aW0uaCIKICNlbmRpZgogCi0jaWYgRU5BQkxFKE5FVFdPUktfQ0FDSEUpCiAjaW5jbHVkZSAiTmV0
d29ya0NhY2hlLmgiCiAjaW5jbHVkZSAiTmV0d29ya0NhY2hlQ29kZXJzLmgiCi0jZW5kaWYKIAog
I2lmIEVOQUJMRShORVRXT1JLX0NBUFRVUkUpCiAjaW5jbHVkZSAiTmV0d29ya0NhcHR1cmVNYW5h
Z2VyLmgiCkBAIC0zMzcsNyArMzM1LDYgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6cmVtb3ZlUHJl
dmFsZW50RG9tYWlucyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFZlY3QKIAogc3Rh
dGljIHZvaWQgZmV0Y2hEaXNrQ2FjaGVFbnRyaWVzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwg
T3B0aW9uU2V0PFdlYnNpdGVEYXRhRmV0Y2hPcHRpb24+IGZldGNoT3B0aW9ucywgRnVuY3Rpb248
dm9pZCAoVmVjdG9yPFdlYnNpdGVEYXRhOjpFbnRyeT4pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQog
ewotI2lmIEVOQUJMRShORVRXT1JLX0NBQ0hFKQogICAgIGlmIChhdXRvKiBjYWNoZSA9IE5ldHdv
cmtQcm9jZXNzOjpzaW5nbGV0b24oKS5jYWNoZSgpKSB7CiAgICAgICAgIEhhc2hNYXA8U2VjdXJp
dHlPcmlnaW5EYXRhLCB1aW50NjRfdD4gb3JpZ2luc0FuZFNpemVzOwogICAgICAgICBjYWNoZS0+
dHJhdmVyc2UoW2ZldGNoT3B0aW9ucywgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBs
ZXRpb25IYW5kbGVyKSwgb3JpZ2luc0FuZFNpemVzID0gV1RGTW92ZShvcmlnaW5zQW5kU2l6ZXMp
XShhdXRvKiB0cmF2ZXJzYWxFbnRyeSkgbXV0YWJsZSB7CkBAIC0zNjMsNyArMzYwLDYgQEAgc3Rh
dGljIHZvaWQgZmV0Y2hEaXNrQ2FjaGVFbnRyaWVzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwg
T3B0aW9uU2V0PFdlYnNpdGVEYXQKIAogICAgICAgICByZXR1cm47CiAgICAgfQotI2VuZGlmCiAK
ICAgICBSdW5Mb29wOjptYWluKCkuZGlzcGF0Y2goW2NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92
ZShjb21wbGV0aW9uSGFuZGxlcildIHsKICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoeyB9KTsK
QEAgLTQ0NSw3ICs0NDEsNiBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpkZWxldGVXZWJzaXRlRGF0
YShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaQogCiBzdGF0aWMgdm9p
ZCBjbGVhckRpc2tDYWNoZUVudHJpZXMoY29uc3QgVmVjdG9yPFNlY3VyaXR5T3JpZ2luRGF0YT4m
IG9yaWdpbnMsIEZ1bmN0aW9uPHZvaWQgKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0jaWYg
RU5BQkxFKE5FVFdPUktfQ0FDSEUpCiAgICAgaWYgKGF1dG8qIGNhY2hlID0gTmV0d29ya1Byb2Nl
c3M6OnNpbmdsZXRvbigpLmNhY2hlKCkpIHsKICAgICAgICAgSGFzaFNldDxSZWZQdHI8U2VjdXJp
dHlPcmlnaW4+PiBvcmlnaW5zVG9EZWxldGU7CiAgICAgICAgIGZvciAoYXV0byYgb3JpZ2luIDog
b3JpZ2lucykKQEAgLTQ2NSw3ICs0NjAsNiBAQCBzdGF0aWMgdm9pZCBjbGVhckRpc2tDYWNoZUVu
dHJpZXMoY29uc3QgVmVjdG9yPFNlY3VyaXR5T3JpZ2luRGF0YT4mIG9yaWdpbnMsIEZ1bgogCiAg
ICAgICAgIHJldHVybjsKICAgICB9Ci0jZW5kaWYKIAogICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNw
YXRjaChXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CkBAIC02MDgsMTIgKzYwMiwxMCBA
QCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpzZXRDYWNoZU1vZGVsKHVpbnQzMl90IGNtKQogICAgIGlm
IChtX2Rpc2tDYWNoZVNpemVPdmVycmlkZSA+PSAwKQogICAgICAgICB1cmxDYWNoZURpc2tDYXBh
Y2l0eSA9IG1fZGlza0NhY2hlU2l6ZU92ZXJyaWRlOwogCi0jaWYgRU5BQkxFKE5FVFdPUktfQ0FD
SEUpCiAgICAgaWYgKG1fY2FjaGUpIHsKICAgICAgICAgbV9jYWNoZS0+c2V0Q2FwYWNpdHkodXJs
Q2FjaGVEaXNrQ2FwYWNpdHkpOwogICAgICAgICByZXR1cm47CiAgICAgfQotI2VuZGlmCiAKICAg
ICBwbGF0Zm9ybVNldFVSTENhY2hlU2l6ZSh1cmxDYWNoZU1lbW9yeUNhcGFjaXR5LCB1cmxDYWNo
ZURpc2tDYXBhY2l0eSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtQcm9jZXNzLmgKaW5kZXggZTA3MmRkMmFlZmIuLmMyYjA4YmU1YmNhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKKysrIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCkBAIC0xMDAsOSArMTAwLDcg
QEAgcHVibGljOgogICAgIEF1dGhlbnRpY2F0aW9uTWFuYWdlciYgYXV0aGVudGljYXRpb25NYW5h
Z2VyKCk7CiAgICAgRG93bmxvYWRNYW5hZ2VyJiBkb3dubG9hZE1hbmFnZXIoKTsKIAotI2lmIEVO
QUJMRShORVRXT1JLX0NBQ0hFKQogICAgIE5ldHdvcmtDYWNoZTo6Q2FjaGUqIGNhY2hlKCkgeyBy
ZXR1cm4gbV9jYWNoZS5nZXQoKTsgfQotI2VuZGlmCiAKICAgICBib29sIGNhbkhhbmRsZUhUVFBT
U2VydmVyVHJ1c3RFdmFsdWF0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9jYW5IYW5kbGVIVFRQU1Nl
cnZlclRydXN0RXZhbHVhdGlvbjsgfQogCkBAIC0yNDgsOSArMjQ2LDcgQEAgcHJpdmF0ZToKICAg
ICBib29sIG1fY2FuSGFuZGxlSFRUUFNTZXJ2ZXJUcnVzdEV2YWx1YXRpb247CiAgICAgU2Vjb25k
cyBtX2xvYWRUaHJvdHRsZUxhdGVuY3k7CiAKLSNpZiBFTkFCTEUoTkVUV09SS19DQUNIRSkKICAg
ICBSZWZQdHI8TmV0d29ya0NhY2hlOjpDYWNoZT4gbV9jYWNoZTsKLSNlbmRpZgogCiAgICAgdHlw
ZWRlZiBIYXNoTWFwPGNvbnN0IGNoYXIqLCBzdGQ6OnVuaXF1ZV9wdHI8TmV0d29ya1Byb2Nlc3NT
dXBwbGVtZW50PiwgUHRySGFzaDxjb25zdCBjaGFyKj4+IE5ldHdvcmtQcm9jZXNzU3VwcGxlbWVu
dE1hcDsKICAgICBOZXR3b3JrUHJvY2Vzc1N1cHBsZW1lbnRNYXAgbV9zdXBwbGVtZW50czsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnMuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKaW5kZXggZDY4YWUxYTE2MGMuLmNmZTgzNWVh
MmQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcApAQCAtNTAsMTMgKzUwLDEx
IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZShJUEM6OkVu
Y29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAgZW5jb2RlciA8PCBjYWNoZVN0b3JhZ2VEaXJlY3Rv
cnlFeHRlbnNpb25IYW5kbGU7CiAgICAgZW5jb2RlciA8PCBkaXNrQ2FjaGVEaXJlY3Rvcnk7CiAg
ICAgZW5jb2RlciA8PCBkaXNrQ2FjaGVEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGU7Ci0jaWYgRU5B
QkxFKE5FVFdPUktfQ0FDSEUpCiAgICAgZW5jb2RlciA8PCBzaG91bGRFbmFibGVOZXR3b3JrQ2Fj
aGU7CiAgICAgZW5jb2RlciA8PCBzaG91bGRFbmFibGVOZXR3b3JrQ2FjaGVFZmZpY2FjeUxvZ2dp
bmc7CiAjaWYgRU5BQkxFKE5FVFdPUktfQ0FDSEVfU1BFQ1VMQVRJVkVfUkVWQUxJREFUSU9OKQog
ICAgIGVuY29kZXIgPDwgc2hvdWxkRW5hYmxlTmV0d29ya0NhY2hlU3BlY3VsYXRpdmVSZXZhbGlk
YXRpb247CiAjZW5kaWYKLSNlbmRpZgogI2lmIFBMQVRGT1JNKE1BQykKICAgICBlbmNvZGVyIDw8
IHVpUHJvY2Vzc0Nvb2tpZVN0b3JhZ2VJZGVudGlmaWVyOwogI2VuZGlmCkBAIC0xMjUsNyArMTIz
LDYgQEAgYm9vbCBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKElQQzo6
RGVjb2RlciYgZGVjb2RlciwgTmV0d29ya1Byb2MKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAg
IGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LmRpc2tDYWNoZURpcmVjdG9yeUV4dGVuc2lvbkhh
bmRsZSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSNpZiBFTkFCTEUoTkVUV09SS19DQUNIRSkK
ICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5zaG91bGRFbmFibGVOZXR3b3JrQ2FjaGUp
KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQu
c2hvdWxkRW5hYmxlTmV0d29ya0NhY2hlRWZmaWNhY3lMb2dnaW5nKSkKQEAgLTEzNCw3ICsxMzEs
NiBAQCBib29sIE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUoSVBDOjpE
ZWNvZGVyJiBkZWNvZGVyLCBOZXR3b3JrUHJvYwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVz
dWx0LnNob3VsZEVuYWJsZU5ldHdvcmtDYWNoZVNwZWN1bGF0aXZlUmV2YWxpZGF0aW9uKSkKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogI2VuZGlmCi0jZW5kaWYKICNpZiBQTEFURk9STShNQUMpCiAg
ICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQudWlQcm9jZXNzQ29va2llU3RvcmFnZUlkZW50
aWZpZXIpKQogICAgICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmggYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
LmgKaW5kZXggYzJmZGM4MWJmZWYuLjAyOTE3MWI1OTlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKKysr
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVycy5oCkBAIC02MCwxMyArNjAsMTEgQEAgc3RydWN0IE5ldHdvcmtQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzIHsKICAgICBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgY2FjaGVTdG9yYWdl
RGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlOwogICAgIFN0cmluZyBkaXNrQ2FjaGVEaXJlY3Rvcnk7
CiAgICAgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIGRpc2tDYWNoZURpcmVjdG9yeUV4dGVuc2lv
bkhhbmRsZTsKLSNpZiBFTkFCTEUoTkVUV09SS19DQUNIRSkKICAgICBib29sIHNob3VsZEVuYWJs
ZU5ldHdvcmtDYWNoZSB7IGZhbHNlIH07CiAgICAgYm9vbCBzaG91bGRFbmFibGVOZXR3b3JrQ2Fj
aGVFZmZpY2FjeUxvZ2dpbmcgeyBmYWxzZSB9OwogI2lmIEVOQUJMRShORVRXT1JLX0NBQ0hFX1NQ
RUNVTEFUSVZFX1JFVkFMSURBVElPTikKICAgICBib29sIHNob3VsZEVuYWJsZU5ldHdvcmtDYWNo
ZVNwZWN1bGF0aXZlUmV2YWxpZGF0aW9uIHsgZmFsc2UgfTsKICNlbmRpZgotI2VuZGlmCiAjaWYg
UExBVEZPUk0oTUFDKQogICAgIFZlY3Rvcjx1aW50OF90PiB1aVByb2Nlc3NDb29raWVTdG9yYWdl
SWRlbnRpZmllcjsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4IDE4NzQyNjAzMmQyLi43NmQ5NDg0
NzNmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVz
b3VyY2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Jlc291cmNlTG9hZGVyLmNwcApAQCAtODYsOSArODYsNyBAQCBOZXR3b3JrUmVzb3VyY2VMb2Fk
ZXI6Ok5ldHdvcmtSZXNvdXJjZUxvYWRlcihjb25zdCBOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1l
dGVycwogICAgICwgbV9jb25uZWN0aW9uKGNvbm5lY3Rpb24pCiAgICAgLCBtX2RlZmVyc0xvYWRp
bmcocGFyYW1ldGVycy5kZWZlcnNMb2FkaW5nKQogICAgICwgbV9idWZmZXJpbmdUaW1lcigqdGhp
cywgJk5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6YnVmZmVyaW5nVGltZXJGaXJlZCkKLSNpZiBFTkFC
TEUoTkVUV09SS19DQUNIRSkKICAgICAsIG1fY2FjaGUoc2Vzc2lvbklEKCkuaXNFcGhlbWVyYWwo
KSA/IG51bGxwdHIgOiBOZXR3b3JrUHJvY2Vzczo6c2luZ2xldG9uKCkuY2FjaGUoKSkKLSNlbmRp
ZgogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAgICAgLy8gRklYTUU6IFRoaXMg
aXMgbmVjZXNzYXJ5IGJlY2F1c2Ugb2YgdGhlIGV4aXN0ZW5jZSBvZiBFbXB0eUZyYW1lTG9hZGVy
Q2xpZW50IGluIFdlYkNvcmUuCkBAIC0xMjEsNyArMTE5LDYgQEAgTmV0d29ya1Jlc291cmNlTG9h
ZGVyOjp+TmV0d29ya1Jlc291cmNlTG9hZGVyKCkKICAgICBBU1NFUlQoIWlzU3luY2hyb25vdXMo
KSB8fCAhbV9zeW5jaHJvbm91c0xvYWREYXRhLT5kZWxheWVkUmVwbHkpOwogfQogCi0jaWYgRU5B
QkxFKE5FVFdPUktfQ0FDSEUpCiBib29sIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6Y2FuVXNlQ2Fj
aGUoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KSBjb25zdAogewogICAgIGlmICghbV9j
YWNoZSkKQEAgLTE0OCw3ICsxNDUsNiBAQCBib29sIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6Y2Fu
VXNlQ2FjaGVkUmVkaXJlY3QoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQogCiAgICAg
cmV0dXJuIHRydWU7CiB9Ci0jZW5kaWYKIAogYm9vbCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6Omlz
U3luY2hyb25vdXMoKSBjb25zdAogewpAQCAtMTY3LDE4ICsxNjMsMTUgQEAgdm9pZCBOZXR3b3Jr
UmVzb3VyY2VMb2FkZXI6OnN0YXJ0KCkKICAgICBBU1NFUlQoIW1fd2FzU3RhcnRlZCk7CiAgICAg
bV93YXNTdGFydGVkID0gdHJ1ZTsKIAotI2lmIEVOQUJMRShORVRXT1JLX0NBQ0hFKQogICAgIGlm
IChjYW5Vc2VDYWNoZShvcmlnaW5hbFJlcXVlc3QoKSkpIHsKICAgICAgICAgUkVMRUFTRV9MT0df
SUZfQUxMT1dFRCgic3RhcnQ6IENoZWNraW5nIGNhY2hlIGZvciByZXNvdXJjZSAocGFnZUlEID0g
JSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2
NCAiLCBpc01haW5SZXNvdXJjZSA9ICVkLCBpc1N5bmNocm9ub3VzID0gJWQpIiwgbV9wYXJhbWV0
ZXJzLndlYlBhZ2VJRCwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQsIG1fcGFyYW1ldGVycy5pZGVu
dGlmaWVyLCBpc01haW5SZXNvdXJjZSgpLCBpc1N5bmNocm9ub3VzKCkpOwogICAgICAgICByZXRy
aWV2ZUNhY2hlRW50cnkob3JpZ2luYWxSZXF1ZXN0KCkpOwogICAgICAgICByZXR1cm47CiAgICAg
fQotI2VuZGlmCiAKICAgICBzdGFydE5ldHdvcmtMb2FkKG9yaWdpbmFsUmVxdWVzdCgpKTsKIH0K
IAotI2lmIEVOQUJMRShORVRXT1JLX0NBQ0hFKQogdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6
OnJldHJpZXZlQ2FjaGVFbnRyeShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCiB7CiAg
ICAgQVNTRVJUKGNhblVzZUNhY2hlKHJlcXVlc3QpKTsKQEAgLTIxMyw3ICsyMDYsNiBAQCB2b2lk
IE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6cmV0cmlldmVDYWNoZUVudHJ5KGNvbnN0IFJlc291cmNl
UmVxdWVzdCYgcmVxdWVzdCkKICAgICAgICAgbG9hZGVyLT5kaWRSZXRyaWV2ZUNhY2hlRW50cnko
V1RGTW92ZShlbnRyeSkpOwogICAgIH0pOwogfQotI2VuZGlmCiAKIHZvaWQgTmV0d29ya1Jlc291
cmNlTG9hZGVyOjpzdGFydE5ldHdvcmtMb2FkKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVz
dCkKIHsKQEAgLTIyNCwxMCArMjE2LDggQEAgdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OnN0
YXJ0TmV0d29ya0xvYWQoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQogICAgIGlmIChp
c1N5bmNocm9ub3VzKCkgfHwgbV9wYXJhbWV0ZXJzLm1heGltdW1CdWZmZXJpbmdUaW1lID4gMF9z
KQogICAgICAgICBtX2J1ZmZlcmVkRGF0YSA9IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKCk7CiAKLSNp
ZiBFTkFCTEUoTkVUV09SS19DQUNIRSkKICAgICBpZiAoY2FuVXNlQ2FjaGUocmVxdWVzdCkpCiAg
ICAgICAgIG1fYnVmZmVyZWREYXRhRm9yQ2FjaGUgPSBTaGFyZWRCdWZmZXI6OmNyZWF0ZSgpOwot
I2VuZGlmCiAKICAgICBOZXR3b3JrTG9hZFBhcmFtZXRlcnMgcGFyYW1ldGVycyA9IG1fcGFyYW1l
dGVyczsKICAgICBwYXJhbWV0ZXJzLmRlZmVyc0xvYWRpbmcgPSBtX2RlZmVyc0xvYWRpbmc7CkBA
IC0zMDYsMTMgKzI5NiwxMSBAQCB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6YWJvcnQoKQog
ICAgICAgICBtX3BhcmFtZXRlcnMud2ViUGFnZUlELCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRCwg
bV9wYXJhbWV0ZXJzLmlkZW50aWZpZXIpOwogCiAgICAgaWYgKG1fbmV0d29ya0xvYWQpIHsKLSNp
ZiBFTkFCTEUoTkVUV09SS19DQUNIRSkKICAgICAgICAgaWYgKGNhblVzZUNhY2hlKG1fbmV0d29y
a0xvYWQtPmN1cnJlbnRSZXF1ZXN0KCkpKSB7CiAgICAgICAgICAgICAvLyBXZSBtaWdodCBhbHJl
YWR5IGhhdmUgdXNlZCBkYXRhIGZyb20gdGhpcyBpbmNvbXBsZXRlIGxvYWQuIEVuc3VyZSBvbGRl
ciB2ZXJzaW9ucyBkb24ndCByZW1haW4gaW4gdGhlIGNhY2hlIGFmdGVyIGNhbmNlbC4KICAgICAg
ICAgICAgIGlmICghbV9yZXNwb25zZS5pc051bGwoKSkKICAgICAgICAgICAgICAgICBtX2NhY2hl
LT5yZW1vdmUobV9uZXR3b3JrTG9hZC0+Y3VycmVudFJlcXVlc3QoKSk7CiAgICAgICAgIH0KLSNl
bmRpZgogICAgICAgICBtX25ldHdvcmtMb2FkLT5jYW5jZWwoKTsKICAgICB9CiAKQEAgLTMzMCw3
ICszMTgsNiBAQCBhdXRvIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNl
KFJlc291cmNlUmVzcG9uc2UmJiByZWNlaXZlZFJlc3BvbgogICAgICAgICBtX2J1ZmZlcmVkRGF0
YSA9IG51bGxwdHI7CiAKICAgICBib29sIHNob3VsZFNlbmREaWRSZWNlaXZlUmVzcG9uc2UgPSB0
cnVlOwotI2lmIEVOQUJMRShORVRXT1JLX0NBQ0hFKQogICAgIGlmIChtX3Jlc3BvbnNlLmlzTXVs
dGlwYXJ0KCkpCiAgICAgICAgIG1fYnVmZmVyZWREYXRhRm9yQ2FjaGUgPSBudWxscHRyOwogCkBA
IC0zNDUsNyArMzMyLDYgQEAgYXV0byBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVS
ZXNwb25zZShSZXNvdXJjZVJlc3BvbnNlJiYgcmVjZWl2ZWRSZXNwb24KICAgICAgICAgICAgIG1f
Y2FjaGVFbnRyeUZvclZhbGlkYXRpb24gPSBudWxscHRyOwogICAgIH0KICAgICBzaG91bGRTZW5k
RGlkUmVjZWl2ZVJlc3BvbnNlID0gIW1fY2FjaGVFbnRyeUZvclZhbGlkYXRpb247Ci0jZW5kaWYK
IAogICAgIGJvb2wgc2hvdWxkV2FpdENvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlID0gaXNNYWlu
UmVzb3VyY2UoKTsKICAgICBpZiAoc2hvdWxkU2VuZERpZFJlY2VpdmVSZXNwb25zZSkgewpAQCAt
MzU3LDkgKzM0Myw3IEBAIGF1dG8gTmV0d29ya1Jlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVz
cG9uc2UoUmVzb3VyY2VSZXNwb25zZSYmIHJlY2VpdmVkUmVzcG9uCiAKICAgICAvLyBGb3IgbWFp
biByZXNvdXJjZXMsIHRoZSB3ZWIgcHJvY2VzcyBpcyByZXNwb25zaWJsZSBmb3Igc2VuZGluZyBi
YWNrIGEgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpDb250aW51ZURpZFJlY2VpdmVSZXNwb25zZSBt
ZXNzYWdlLgogICAgIGJvb2wgc2hvdWxkQ29udGludWVEaWRSZWNlaXZlUmVzcG9uc2UgPSAhc2hv
dWxkV2FpdENvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlOwotI2lmIEVOQUJMRShORVRXT1JLX0NB
Q0hFKQogICAgIHNob3VsZENvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlID0gc2hvdWxkQ29udGlu
dWVEaWRSZWNlaXZlUmVzcG9uc2UgfHwgbV9jYWNoZUVudHJ5Rm9yVmFsaWRhdGlvbjsKLSNlbmRp
ZgogCiAgICAgaWYgKHNob3VsZENvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlKSB7CiAgICAgICAg
IFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImRpZFJlY2VpdmVSZXNwb25zZTogU2hvdWxkIG5vdCB3
YWl0IGZvciBtZXNzYWdlIGZyb20gV2ViQ29udGVudCBwcm9jZXNzIGJlZm9yZSBjb250aW51aW5n
IHJlc291cmNlIGxvYWQgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0
ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCBtX3BhcmFtZXRlcnMud2ViUGFnZUlELCBt
X3BhcmFtZXRlcnMud2ViRnJhbWVJRCwgbV9wYXJhbWV0ZXJzLmlkZW50aWZpZXIpOwpAQCAtMzc3
LDcgKzM2MSw2IEBAIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlQnVmZmVy
KFJlZjxTaGFyZWRCdWZmZXI+JiYgYnVmZmVyLCBpbnQgcmVwCiAgICAgfQogICAgIG1fbnVtQnl0
ZXNSZWNlaXZlZCArPSBidWZmZXItPnNpemUoKTsKIAotI2lmIEVOQUJMRShORVRXT1JLX0NBQ0hF
KQogICAgIEFTU0VSVCghbV9jYWNoZUVudHJ5Rm9yVmFsaWRhdGlvbik7CiAKICAgICBpZiAobV9i
dWZmZXJlZERhdGFGb3JDYWNoZSkgewpAQCAtMzg4LDcgKzM3MSw2IEBAIHZvaWQgTmV0d29ya1Jl
c291cmNlTG9hZGVyOjpkaWRSZWNlaXZlQnVmZmVyKFJlZjxTaGFyZWRCdWZmZXI+JiYgYnVmZmVy
LCBpbnQgcmVwCiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIG1fYnVmZmVyZWREYXRhRm9yQ2Fj
aGUgPSBudWxscHRyOwogICAgIH0KLSNlbmRpZgogICAgIC8vIEZJWE1FOiBBdCBsZWFzdCBvbiBP
UyBYIFlvc2VtaXRlIHdlIGFsd2F5cyBnZXQgLTEgZnJvbSB0aGUgcmVzb3VyY2UgaGFuZGxlLgog
ICAgIHVuc2lnbmVkIGVuY29kZWREYXRhTGVuZ3RoID0gcmVwb3J0ZWRFbmNvZGVkRGF0YUxlbmd0
aCA+PSAwID8gcmVwb3J0ZWRFbmNvZGVkRGF0YUxlbmd0aCA6IGJ1ZmZlci0+c2l6ZSgpOwogCkBA
IC00MDYsNyArMzg4LDYgQEAgdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmRpZEZpbmlzaExv
YWRpbmcoY29uc3QgTmV0d29ya0xvYWRNZXRyaWNzJiBuZXR3b3JrTG8KIHsKICAgICBSRUxFQVNF
X0xPR19JRl9BTExPV0VEKCJkaWRGaW5pc2hMb2FkaW5nOiAocGFnZUlEID0gJSIgUFJJdTY0ICIs
IGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiLCBsZW5ndGgg
PSAlemQpIiwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRCwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQs
IG1fcGFyYW1ldGVycy5pZGVudGlmaWVyLCBtX251bUJ5dGVzUmVjZWl2ZWQpOwogCi0jaWYgRU5B
QkxFKE5FVFdPUktfQ0FDSEUpCiAgICAgaWYgKG1fY2FjaGVFbnRyeUZvclZhbGlkYXRpb24pIHsK
ICAgICAgICAgLy8gMzA0IE5vdCBNb2RpZmllZAogICAgICAgICBBU1NFUlQobV9yZXNwb25zZS5o
dHRwU3RhdHVzQ29kZSgpID09IDMwNCk7CkBAIC00MTQsNyArMzk1LDYgQEAgdm9pZCBOZXR3b3Jr
UmVzb3VyY2VMb2FkZXI6OmRpZEZpbmlzaExvYWRpbmcoY29uc3QgTmV0d29ya0xvYWRNZXRyaWNz
JiBuZXR3b3JrTG8KICAgICAgICAgZGlkUmV0cmlldmVDYWNoZUVudHJ5KFdURk1vdmUobV9jYWNo
ZUVudHJ5Rm9yVmFsaWRhdGlvbikpOwogICAgICAgICByZXR1cm47CiAgICAgfQotI2VuZGlmCiAK
ICAgICBpZiAoaXNTeW5jaHJvbm91cygpKQogICAgICAgICBzZW5kUmVwbHlUb1N5bmNocm9ub3Vz
UmVxdWVzdCgqbV9zeW5jaHJvbm91c0xvYWREYXRhLCBtX2J1ZmZlcmVkRGF0YS5nZXQoKSk7CkBA
IC00MjYsOSArNDA2LDcgQEAgdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmRpZEZpbmlzaExv
YWRpbmcoY29uc3QgTmV0d29ya0xvYWRNZXRyaWNzJiBuZXR3b3JrTG8KICAgICAgICAgc2VuZChN
ZXNzYWdlczo6V2ViUmVzb3VyY2VMb2FkZXI6OkRpZEZpbmlzaFJlc291cmNlTG9hZChuZXR3b3Jr
TG9hZE1ldHJpY3MpKTsKICAgICB9CiAKLSNpZiBFTkFCTEUoTkVUV09SS19DQUNIRSkKICAgICB0
cnlTdG9yZUFzQ2FjaGVFbnRyeSgpOwotI2VuZGlmCiAKICAgICBjbGVhbnVwKCk7CiB9CkBAIC00
MzksOSArNDE3LDcgQEAgdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmRpZEZhaWxMb2FkaW5n
KGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQogCiAgICAgQVNTRVJUKCFlcnJvci5pc051bGwo
KSk7CiAKLSNpZiBFTkFCTEUoTkVUV09SS19DQUNIRSkKICAgICBtX2NhY2hlRW50cnlGb3JWYWxp
ZGF0aW9uID0gbnVsbHB0cjsKLSNlbmRpZgogCiAgICAgaWYgKGlzU3luY2hyb25vdXMoKSkgewog
ICAgICAgICBtX3N5bmNocm9ub3VzTG9hZERhdGEtPmVycm9yID0gZXJyb3I7CkBAIC00NzEsMTIg
KzQ0Nyw4IEBAIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjp3aWxsU2VuZFJlZGlyZWN0ZWRS
ZXF1ZXN0KFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsCiAgICAgfQogICAgIHNlbmQoTWVzc2Fn
ZXM6OldlYlJlc291cmNlTG9hZGVyOjpXaWxsU2VuZFJlcXVlc3QocmVkaXJlY3RSZXF1ZXN0LCBy
ZWRpcmVjdFJlc3BvbnNlKSk7CiAKLSNpZiBFTkFCTEUoTkVUV09SS19DQUNIRSkKICAgICBpZiAo
Y2FuVXNlQ2FjaGVkUmVkaXJlY3QocmVxdWVzdCkpCiAgICAgICAgIG1fY2FjaGUtPnN0b3JlUmVk
aXJlY3QocmVxdWVzdCwgcmVkaXJlY3RSZXNwb25zZSwgcmVkaXJlY3RSZXF1ZXN0KTsKLSNlbHNl
Ci0gICAgVU5VU0VEX1BBUkFNKHJlcXVlc3QpOwotI2VuZGlmCiB9CiAKIHZvaWQgTmV0d29ya1Jl
c291cmNlTG9hZGVyOjpjb250aW51ZVdpbGxTZW5kUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QmJiBu
ZXdSZXF1ZXN0KQpAQCAtNDg3LDcgKzQ1OSw2IEBAIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVy
Ojpjb250aW51ZVdpbGxTZW5kUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QmJiBuZXdSZXF1ZXN0CiAg
ICAgbmV3UmVxdWVzdC5zZXRDYWNoZVBvbGljeShvcmlnaW5hbFJlcXVlc3QoKS5jYWNoZVBvbGlj
eSgpKTsKICAgICBuZXdSZXF1ZXN0LnNldENhY2hlUGFydGl0aW9uKG9yaWdpbmFsUmVxdWVzdCgp
LmNhY2hlUGFydGl0aW9uKCkpOwogCi0jaWYgRU5BQkxFKE5FVFdPUktfQ0FDSEUpCiAgICAgaWYg
KG1faXNXYWl0aW5nQ29udGludWVXaWxsU2VuZFJlcXVlc3RGb3JDYWNoZWRSZWRpcmVjdCkgewog
ICAgICAgICBtX2lzV2FpdGluZ0NvbnRpbnVlV2lsbFNlbmRSZXF1ZXN0Rm9yQ2FjaGVkUmVkaXJl
Y3QgPSBmYWxzZTsKIApAQCAtNTAwLDcgKzQ3MSw2IEBAIHZvaWQgTmV0d29ya1Jlc291cmNlTG9h
ZGVyOjpjb250aW51ZVdpbGxTZW5kUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QmJiBuZXdSZXF1ZXN0
CiAKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSNlbmRpZgogCiAgICAgaWYgKG1fbmV0d29ya0xv
YWQpCiAgICAgICAgIG1fbmV0d29ya0xvYWQtPmNvbnRpbnVlV2lsbFNlbmRSZXF1ZXN0KFdURk1v
dmUobmV3UmVxdWVzdCkpOwpAQCAtNTU0LDcgKzUyNCw2IEBAIHZvaWQgTmV0d29ya1Jlc291cmNl
TG9hZGVyOjpzZW5kQnVmZmVyKFNoYXJlZEJ1ZmZlciYgYnVmZmVyLCBzaXplX3QgZW5jb2RlZERh
dGFMCiAgICAgc2VuZChNZXNzYWdlczo6V2ViUmVzb3VyY2VMb2FkZXI6OkRpZFJlY2VpdmVEYXRh
KGRhdGFSZWZlcmVuY2UsIGVuY29kZWREYXRhTGVuZ3RoKSk7CiB9CiAKLSNpZiBFTkFCTEUoTkVU
V09SS19DQUNIRSkKIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjp0cnlTdG9yZUFzQ2FjaGVF
bnRyeSgpCiB7CiAgICAgaWYgKCFjYW5Vc2VDYWNoZShtX25ldHdvcmtMb2FkLT5jdXJyZW50UmVx
dWVzdCgpKSkKQEAgLTY2OCw3ICs2MzcsNiBAQCB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6
ZGlzcGF0Y2hXaWxsU2VuZFJlcXVlc3RGb3JDYWNoZUVudHJ5KHN0ZDo6dW5pcXVlX3B0cgogICAg
IHNlbmQoTWVzc2FnZXM6OldlYlJlc291cmNlTG9hZGVyOjpXaWxsU2VuZFJlcXVlc3QoKmVudHJ5
LT5yZWRpcmVjdFJlcXVlc3QoKSwgZW50cnktPnJlc3BvbnNlKCkpKTsKICAgICBtX2lzV2FpdGlu
Z0NvbnRpbnVlV2lsbFNlbmRSZXF1ZXN0Rm9yQ2FjaGVkUmVkaXJlY3QgPSB0cnVlOwogfQotI2Vu
ZGlmCiAKIElQQzo6Q29ubmVjdGlvbiogTmV0d29ya1Jlc291cmNlTG9hZGVyOjptZXNzYWdlU2Vu
ZGVyQ29ubmVjdGlvbigpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuaAppbmRleCBkYmU1MTljNDI3YS4uMTk2M2EyYWU1MGEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNl
TG9hZGVyLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3Vy
Y2VMb2FkZXIuaApAQCAtMTA5LDcgKzEwOSw2IEBAIHByaXZhdGU6CiAgICAgSVBDOjpDb25uZWN0
aW9uKiBtZXNzYWdlU2VuZGVyQ29ubmVjdGlvbigpIG92ZXJyaWRlOwogICAgIHVpbnQ2NF90IG1l
c3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEKCkgb3ZlcnJpZGUgeyByZXR1cm4gbV9wYXJhbWV0ZXJz
LmlkZW50aWZpZXI7IH0KIAotI2lmIEVOQUJMRShORVRXT1JLX0NBQ0hFKQogICAgIGJvb2wgY2Fu
VXNlQ2FjaGUoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JikgY29uc3Q7CiAgICAgYm9v
bCBjYW5Vc2VDYWNoZWRSZWRpcmVjdChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKSBj
b25zdDsKIApAQCAtMTE5LDcgKzExOCw2IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzZW5kUmVzdWx0
Rm9yQ2FjaGVFbnRyeShzdGQ6OnVuaXF1ZV9wdHI8TmV0d29ya0NhY2hlOjpFbnRyeT4pOwogICAg
IHZvaWQgdmFsaWRhdGVDYWNoZUVudHJ5KHN0ZDo6dW5pcXVlX3B0cjxOZXR3b3JrQ2FjaGU6OkVu
dHJ5Pik7CiAgICAgdm9pZCBkaXNwYXRjaFdpbGxTZW5kUmVxdWVzdEZvckNhY2hlRW50cnkoc3Rk
Ojp1bmlxdWVfcHRyPE5ldHdvcmtDYWNoZTo6RW50cnk+KTsKLSNlbmRpZgogCiAgICAgdm9pZCBz
dGFydE5ldHdvcmtMb2FkKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYpOwogICAgIHZv
aWQgY29udGludWVEaWRSZWNlaXZlUmVzcG9uc2UoKTsKQEAgLTE1OSwxMiArMTU3LDEwIEBAIHBy
aXZhdGU6CiAgICAgdW5zaWduZWQgbV9yZXRyaWV2ZWREZXJpdmVkRGF0YUNvdW50IHsgMCB9Owog
CiAgICAgV2ViQ29yZTo6VGltZXIgbV9idWZmZXJpbmdUaW1lcjsKLSNpZiBFTkFCTEUoTkVUV09S
S19DQUNIRSkKICAgICBSZWZQdHI8TmV0d29ya0NhY2hlOjpDYWNoZT4gbV9jYWNoZTsKICAgICBS
ZWZQdHI8V2ViQ29yZTo6U2hhcmVkQnVmZmVyPiBtX2J1ZmZlcmVkRGF0YUZvckNhY2hlOwogICAg
IHN0ZDo6dW5pcXVlX3B0cjxOZXR3b3JrQ2FjaGU6OkVudHJ5PiBtX2NhY2hlRW50cnlGb3JWYWxp
ZGF0aW9uOwogICAgIGJvb2wgbV9pc1dhaXRpbmdDb250aW51ZVdpbGxTZW5kUmVxdWVzdEZvckNh
Y2hlZFJlZGlyZWN0IHsgZmFsc2UgfTsKLSNlbmRpZgogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdv
cmtDYWNoZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtD
YWNoZS5jcHAKaW5kZXggNzlhYmI0ZjAxNzkuLjU3MDRmODU2NzQ0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGUuY3BwCkBAIC0yNiw4
ICsyNiw2IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiTmV0d29ya0NhY2hlLmgi
CiAKLSNpZiBFTkFCTEUoTkVUV09SS19DQUNIRSkKLQogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNp
bmNsdWRlICJOZXR3b3JrQ2FjaGVTcGVjdWxhdGl2ZUxvYWRNYW5hZ2VyLmgiCiAjaW5jbHVkZSAi
TmV0d29ya0NhY2hlU3RhdGlzdGljcy5oIgpAQCAtNjQ4LDUgKzY0NiwzIEBAIHZvaWQgQ2FjaGU6
OnN0b3JlRGF0YShjb25zdCBEYXRhS2V5JiBkYXRhS2V5LCBjb25zdCB1aW50OF90KiBkYXRhLCBz
aXplX3Qgc2l6ZSkKIAogfQogfQotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5oCmluZGV4IGMwM2ViMzFiYmM2Li42NWExYjdi
ZWI1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3
b3JrQ2FjaGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdv
cmtDYWNoZS5oCkBAIC0yNSw4ICsyNSw2IEBACiAKICNwcmFnbWEgb25jZQogCi0jaWYgRU5BQkxF
KE5FVFdPUktfQ0FDSEUpCi0KICNpbmNsdWRlICJOZXR3b3JrQ2FjaGVFbnRyeS5oIgogI2luY2x1
ZGUgIk5ldHdvcmtDYWNoZVN0b3JhZ2UuaCIKICNpbmNsdWRlICJTaGFyZWFibGVSZXNvdXJjZS5o
IgpAQCAtMTU5LDQgKzE1NywzIEBAIHByaXZhdGU6CiAKIH0KIH0KLSNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVCbG9iU3Rv
cmFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNo
ZUJsb2JTdG9yYWdlLmNwcAppbmRleCAyNjdjYWY2YTA4OC4uZjZiMzY0ZmE5ZWQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlQmxvYlN0
b3JhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29y
a0NhY2hlQmxvYlN0b3JhZ2UuY3BwCkBAIC0yNiw4ICsyNiw2IEBACiAjaW5jbHVkZSAiY29uZmln
LmgiCiAjaW5jbHVkZSAiTmV0d29ya0NhY2hlQmxvYlN0b3JhZ2UuaCIKIAotI2lmIEVOQUJMRShO
RVRXT1JLX0NBQ0hFKQotCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIk5ldHdvcmtD
YWNoZUZpbGVTeXN0ZW0uaCIKICNpbmNsdWRlIDxXZWJDb3JlL0ZpbGVTeXN0ZW0uaD4KQEAgLTE0
OSw1ICsxNDcsMyBAQCB1bnNpZ25lZCBCbG9iU3RvcmFnZTo6c2hhcmVDb3VudChjb25zdCBTdHJp
bmcmIHBhdGgpCiAKIH0KIH0KLQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUJsb2JTdG9yYWdlLmggYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUJsb2JTdG9yYWdlLmgKaW5kZXgg
YWRmMGIwODVlMDMuLjk2MTNhY2MxYWQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUJsb2JTdG9yYWdlLmgKKysrIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVCbG9iU3RvcmFnZS5oCkBAIC0y
Niw4ICsyNiw2IEBACiAjaWZuZGVmIE5ldHdvcmtDYWNoZUJsb2JTdG9yYWdlX2gKICNkZWZpbmUg
TmV0d29ya0NhY2hlQmxvYlN0b3JhZ2VfaAogCi0jaWYgRU5BQkxFKE5FVFdPUktfQ0FDSEUpCi0K
ICNpbmNsdWRlICJOZXR3b3JrQ2FjaGVEYXRhLmgiCiAjaW5jbHVkZSAiTmV0d29ya0NhY2hlS2V5
LmgiCiAjaW5jbHVkZSA8d3RmL1NIQTEuaD4KQEAgLTcyLDQgKzcwLDMgQEAgcHJpdmF0ZToKIH0K
IAogI2VuZGlmCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvY2FjaGUvTmV0d29ya0NhY2hlQ29kZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlQ29kZXJzLmNwcAppbmRleCA4NDIzYjMxZTZjZi4uNzg5
YjRiNDdmZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUv
TmV0d29ya0NhY2hlQ29kZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L2NhY2hlL05ldHdvcmtDYWNoZUNvZGVycy5jcHAKQEAgLTI2LDggKzI2LDYgQEAKICNpbmNsdWRl
ICJjb25maWcuaCIKICNpbmNsdWRlICJOZXR3b3JrQ2FjaGVDb2RlcnMuaCIKIAotI2lmIEVOQUJM
RShORVRXT1JLX0NBQ0hFKQotCiBuYW1lc3BhY2UgV1RGIHsKIG5hbWVzcGFjZSBQZXJzaXN0ZW5j
ZSB7CiAKQEAgLTYxLDUgKzU5LDMgQEAgYm9vbCBDb2RlcjxXZWJDb3JlOjpIVFRQSGVhZGVyTWFw
Pjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFdlYkNvcmU6OkhUVFBIZWFkZXIKIAogfQogfQot
Ci0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUv
TmV0d29ya0NhY2hlQ29kZXJzLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hl
L05ldHdvcmtDYWNoZUNvZGVycy5oCmluZGV4IDM2ZWIyNmNlZjc4Li44MzEwNjI2NTE1YyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVD
b2RlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtD
YWNoZUNvZGVycy5oCkBAIC0yNSw4ICsyNSw2IEBACiAKICNwcmFnbWEgb25jZQogCi0jaWYgRU5B
QkxFKE5FVFdPUktfQ0FDSEUpCi0KICNpbmNsdWRlIDxXZWJDb3JlL0NlcnRpZmljYXRlSW5mby5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvSFRUUEhlYWRlck1hcC5oPgogI2luY2x1ZGUgPHV0aWxpdHk+
CkBAIC01NCw0ICs1MiwzIEBAIHRlbXBsYXRlPD4gc3RydWN0IENvZGVyPFdlYkNvcmU6OkhUVFBI
ZWFkZXJNYXA+IHsKIAogfQogfQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUNvZGVyc0NvY29hLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlQ29kZXJzQ29jb2EuY3BwCmlu
ZGV4IDVkZTUwOTVkM2FhLi5jNjZjYzNiMzk4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVDb2RlcnNDb2NvYS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVDb2RlcnNDb2NvYS5j
cHAKQEAgLTI2LDggKzI2LDYgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJOZXR3
b3JrQ2FjaGVDb2RlcnMuaCIKIAotI2lmIEVOQUJMRShORVRXT1JLX0NBQ0hFKQotCiAjaWYgUExB
VEZPUk0oQ09DT0EpCiAjaW5jbHVkZSA8U2VjdXJpdHkvU2VjQ2VydGlmaWNhdGUuaD4KICNpbmNs
dWRlIDxTZWN1cml0eS9TZWNUcnVzdC5oPgpAQCAtMTkwLDUgKzE4OCwzIEBAIGJvb2wgQ29kZXI8
V2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFdlYkNv
cmU6OkNlcnRpZmljCiAKIH0KIH0KLQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUNvZGVyc1NvdXAuY3BwIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVDb2RlcnNTb3VwLmNwcApp
bmRleCAwY2VmNmFlMDNkZS4uNzc4MWZjMDc5MWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlQ29kZXJzU291cC5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVDb2RlcnNTb3VwLmNw
cApAQCAtMjYsOCArMjYsNiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIk5ldHdv
cmtDYWNoZUNvZGVycy5oIgogCi0jaWYgRU5BQkxFKE5FVFdPUktfQ0FDSEUpCi0KIG5hbWVzcGFj
ZSBXVEYgewogbmFtZXNwYWNlIFBlcnNpc3RlbmNlIHsKIApAQCAtOTAsNSArODgsMyBAQCBib29s
IENvZGVyPFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbz46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVy
LCBXZWJDb3JlOjpDZXJ0aWZpYwogCiB9CiB9Ci0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVEYXRhLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlRGF0YS5jcHAKaW5kZXgg
MzFhZTQ4ZmU1YWQuLjhhYzc5N2Y3OGEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZURhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlRGF0YS5jcHAKQEAgLTI2LDggKzI2LDYg
QEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJOZXR3b3JrQ2FjaGVEYXRhLmgiCiAK
LSNpZiBFTkFCTEUoTkVUV09SS19DQUNIRSkKLQogI2luY2x1ZGUgPFdlYkNvcmUvRmlsZVN5c3Rl
bS5oPgogI2luY2x1ZGUgPGZjbnRsLmg+CiAjaW5jbHVkZSA8c3lzL21tYW4uaD4KQEAgLTE1OSw1
ICsxNTcsMyBAQCBzdGQ6Om9wdGlvbmFsPFNhbHQ+IHJlYWRPck1ha2VTYWx0KGNvbnN0IFN0cmlu
ZyYgcGF0aCkKIAogfSAvLyBuYW1lc3BhY2UgTmV0d29ya0NhY2hlCiB9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKLQotI2VuZGlmIC8vICNpZiBFTkFCTEUoTkVUV09SS19DQUNIRSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlRGF0YS5oIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVEYXRhLmgKaW5k
ZXggNjAwYjVlNDU4MDEuLmVjZjZkOThhZjY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZURhdGEuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZURhdGEuaApAQCAtMjYsOCArMjYsNiBA
QAogI2lmbmRlZiBOZXR3b3JrQ2FjaGVEYXRhX2gKICNkZWZpbmUgTmV0d29ya0NhY2hlRGF0YV9o
CiAKLSNpZiBFTkFCTEUoTkVUV09SS19DQUNIRSkKLQogI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbkRp
c3BhdGNoZXIuaD4KICNpbmNsdWRlIDx3dGYvU0hBMS5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRT
YWZlUmVmQ291bnRlZC5oPgpAQCAtMTEyLDQgKzExMCwzIEBAIFNIQTE6OkRpZ2VzdCBjb21wdXRl
U0hBMShjb25zdCBEYXRhJiwgY29uc3QgU2FsdCYpOwogfQogCiAjZW5kaWYKLSNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVE
YXRhQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtD
YWNoZURhdGFDb2NvYS5tbQppbmRleCAzZDk3YzNiOWUzOS4uMWYzYjRiOTZiYWQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlRGF0YUNv
Y29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0Nh
Y2hlRGF0YUNvY29hLm1tCkBAIC0yNiw4ICsyNiw2IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAj
aW5jbHVkZSAiTmV0d29ya0NhY2hlRGF0YS5oIgogCi0jaWYgRU5BQkxFKE5FVFdPUktfQ0FDSEUp
Ci0KICNpbmNsdWRlICJTaGFyZWRNZW1vcnkuaCIKICNpbmNsdWRlIDxkaXNwYXRjaC9kaXNwYXRj
aC5oPgogI2luY2x1ZGUgPHN5cy9tbWFuLmg+CkBAIC0xMTQsNSArMTEyLDMgQEAgUmVmUHRyPFNo
YXJlZE1lbW9yeT4gRGF0YTo6dHJ5Q3JlYXRlU2hhcmVkTWVtb3J5KCkgY29uc3QKIAogfQogfQot
Ci0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUv
TmV0d29ya0NhY2hlRGF0YVNvdXAuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9j
YWNoZS9OZXR3b3JrQ2FjaGVEYXRhU291cC5jcHAKaW5kZXggMjFiNThmYTdlNjkuLjNhZThhNmZh
OTBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdv
cmtDYWNoZURhdGFTb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2Nh
Y2hlL05ldHdvcmtDYWNoZURhdGFTb3VwLmNwcApAQCAtMjYsOCArMjYsNiBAQAogI2luY2x1ZGUg
ImNvbmZpZy5oIgogI2luY2x1ZGUgIk5ldHdvcmtDYWNoZURhdGEuaCIKIAotI2lmIEVOQUJMRShO
RVRXT1JLX0NBQ0hFKQotCiAjaW5jbHVkZSAiU2hhcmVkTWVtb3J5LmgiCiAjaW5jbHVkZSA8ZmNu
dGwuaD4KICNpbmNsdWRlIDxzeXMvbW1hbi5oPgpAQCAtMTM4LDUgKzEzNiwzIEBAIFJlZlB0cjxT
aGFyZWRNZW1vcnk+IERhdGE6OnRyeUNyZWF0ZVNoYXJlZE1lbW9yeSgpIGNvbnN0CiAKIH0gLy8g
bmFtZXNwYWNlIE5ldHdvcmtDYWNoZQogfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2Fj
aGVFbnRyeS5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtD
YWNoZUVudHJ5LmNwcAppbmRleCAyM2E2ZDdhMTQ2ZC4uNzJkYjYxODJlMzMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlRW50cnkuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlRW50
cnkuY3BwCkBAIC0zMyw4ICszMyw2IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9TaGFyZWRCdWZmZXIu
aD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAKLSNpZiBFTkFCTEUoTkVU
V09SS19DQUNIRSkKLQogbmFtZXNwYWNlIFdlYktpdCB7CiBuYW1lc3BhY2UgTmV0d29ya0NhY2hl
IHsKIApAQCAtMjQ0LDUgKzI0MiwzIEBAIHZvaWQgRW50cnk6OmFzSlNPTihTdHJpbmdCdWlsZGVy
JiBqc29uLCBjb25zdCBTdG9yYWdlOjpSZWNvcmRJbmZvJiBpbmZvKSBjb25zdAogCiB9CiB9Ci0K
LSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9O
ZXR3b3JrQ2FjaGVFbnRyeS5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9O
ZXR3b3JrQ2FjaGVFbnRyeS5oCmluZGV4IGMwMzkxMDg5NGYwLi44MmVkODg5OTBhMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVFbnRy
eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hl
RW50cnkuaApAQCAtMjYsOCArMjYsNiBAQAogI2lmbmRlZiBOZXR3b3JrQ2FjaGVFbnRyeV9oCiAj
ZGVmaW5lIE5ldHdvcmtDYWNoZUVudHJ5X2gKIAotI2lmIEVOQUJMRShORVRXT1JLX0NBQ0hFKQot
CiAjaW5jbHVkZSAiTmV0d29ya0NhY2hlU3RvcmFnZS5oIgogI2luY2x1ZGUgIlNoYXJlYWJsZVJl
c291cmNlLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlcXVlc3QuaD4KQEAgLTk2LDQg
Kzk0LDMgQEAgcHJpdmF0ZToKIH0KIAogI2VuZGlmCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlRmlsZVN5c3RlbS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUZpbGVTeXN0
ZW0uY3BwCmluZGV4IDUyYWM1NjY5NmNhLi44MmQ3MzU1MTg5NiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVGaWxlU3lzdGVtLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUZpbGVT
eXN0ZW0uY3BwCkBAIC0yNiw4ICsyNiw2IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVk
ZSAiTmV0d29ya0NhY2hlRmlsZVN5c3RlbS5oIgogCi0jaWYgRU5BQkxFKE5FVFdPUktfQ0FDSEUp
Ci0KICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9GaWxlU3lzdGVtLmg+
CiAjaW5jbHVkZSA8ZGlyZW50Lmg+CkBAIC0xNjYsNSArMTY0LDMgQEAgYm9vbCBjYW5Vc2VTaGFy
ZWRNZW1vcnlGb3JQYXRoKGNvbnN0IFN0cmluZyYgcGF0aCkKIAogfQogfQotCi0jZW5kaWYgLy8g
RU5BQkxFKE5FVFdPUktfQ0FDSEUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUZpbGVTeXN0ZW0uaCBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlRmlsZVN5c3RlbS5oCmluZGV4IDQ1MDNmZWZm
YjlmLi4xM2U5NmNmOWE1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9jYWNoZS9OZXR3b3JrQ2FjaGVGaWxlU3lzdGVtLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVGaWxlU3lzdGVtLmgKQEAgLTI1LDggKzI1LDYg
QEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpZiBFTkFCTEUoTkVUV09SS19DQUNIRSkKLQogI2luY2x1
ZGUgPFdlYkNvcmUvRmlsZVN5c3RlbS5oPgogI2luY2x1ZGUgPGNocm9ubz4KIApAQCAtNDksNSAr
NDcsMyBAQCBib29sIGNhblVzZVNoYXJlZE1lbW9yeUZvclBhdGgoY29uc3QgU3RyaW5nJiBwYXRo
KTsKIAogfQogfQotCi0jZW5kaWYgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUlPQ2hhbm5lbC5oIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVJT0NoYW5uZWwuaAppbmRleCAyMDRjZWZkNGQw
Ny4uYjEzN2ZlOTgyZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
Y2FjaGUvTmV0d29ya0NhY2hlSU9DaGFubmVsLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVJT0NoYW5uZWwuaApAQCAtMjYsOCArMjYsNiBAQAog
I2lmbmRlZiBOZXR3b3JrQ2FjaGVJT0NoYW5uZWxfaAogI2RlZmluZSBOZXR3b3JrQ2FjaGVJT0No
YW5uZWxfaAogCi0jaWYgRU5BQkxFKE5FVFdPUktfQ0FDSEUpCi0KICNpbmNsdWRlICJOZXR3b3Jr
Q2FjaGVEYXRhLmgiCiAjaW5jbHVkZSA8d3RmL0Z1bmN0aW9uLmg+CiAjaW5jbHVkZSA8d3RmL1Ro
cmVhZFNhZmVSZWZDb3VudGVkLmg+CkBAIC04NCw0ICs4MiwzIEBAIHByaXZhdGU6CiB9CiAKICNl
bmRpZgotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2Nh
Y2hlL05ldHdvcmtDYWNoZUlPQ2hhbm5lbENvY29hLm1tIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVJT0NoYW5uZWxDb2NvYS5tbQppbmRleCBlOTcxMWJm
MjQ0MC4uZWZkNzc5OWRhMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvY2FjaGUvTmV0d29ya0NhY2hlSU9DaGFubmVsQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVJT0NoYW5uZWxDb2NvYS5tbQpAQCAt
MjYsOCArMjYsNiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIk5ldHdvcmtDYWNo
ZUlPQ2hhbm5lbC5oIgogCi0jaWYgRU5BQkxFKE5FVFdPUktfQ0FDSEUpCi0KICNpbmNsdWRlICJO
ZXR3b3JrQ2FjaGVGaWxlU3lzdGVtLmgiCiAjaW5jbHVkZSA8ZGlzcGF0Y2gvZGlzcGF0Y2guaD4K
ICNpbmNsdWRlIDxtYWNoL3ZtX3BhcmFtLmg+CkBAIC0xMjIsNSArMTIwLDMgQEAgdm9pZCBJT0No
YW5uZWw6OndyaXRlKHNpemVfdCBvZmZzZXQsIGNvbnN0IERhdGEmIGRhdGEsIFdvcmtRdWV1ZSog
cXVldWUsIEZ1bmN0aW8KIAogfQogfQotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlSU9DaGFubmVsU291cC5jcHAgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUlPQ2hhbm5lbFNv
dXAuY3BwCmluZGV4IDBlMTllYWE0ZGI0Li4wMTYxMjA4MGM3OSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVJT0NoYW5uZWxTb3VwLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUlP
Q2hhbm5lbFNvdXAuY3BwCkBAIC0yNiw4ICsyNiw2IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAj
aW5jbHVkZSAiTmV0d29ya0NhY2hlSU9DaGFubmVsLmgiCiAKLSNpZiBFTkFCTEUoTkVUV09SS19D
QUNIRSkKLQogI2luY2x1ZGUgIk5ldHdvcmtDYWNoZUZpbGVTeXN0ZW0uaCIKICNpbmNsdWRlIDx3
dGYvTWFpblRocmVhZC5oPgogI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CkBAIC0yODIsNSArMjgw
LDMgQEAgdm9pZCBJT0NoYW5uZWw6OndyaXRlKHNpemVfdCBvZmZzZXQsIGNvbnN0IERhdGEmIGRh
dGEsIFdvcmtRdWV1ZSogcXVldWUsIEZ1bmN0aW8KIAogfSAvLyBuYW1lc3BhY2UgTmV0d29ya0Nh
Y2hlCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUtleS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUtleS5jcHAKaW5kZXggNTA3
ZWMxZjFiMGMuLjNjNDk5MWNjNzU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUtleS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVLZXkuY3BwCkBAIC0yNiw4ICsyNiw2IEBACiAj
aW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiTmV0d29ya0NhY2hlS2V5LmgiCiAKLSNpZiBF
TkFCTEUoTkVUV09SS19DQUNIRSkKLQogI2luY2x1ZGUgIk5ldHdvcmtDYWNoZUNvZGVycy5oIgog
I2luY2x1ZGUgPHd0Zi9BU0NJSUNUeXBlLmg+CiAjaW5jbHVkZSA8d3RmL3BlcnNpc3RlbmNlL1Bl
cnNpc3RlbnREZWNvZGVyLmg+CkBAIC0xODIsNSArMTgwLDMgQEAgYm9vbCBLZXk6OmRlY29kZShX
VEY6OlBlcnNpc3RlbmNlOjpEZWNvZGVyJiBkZWNvZGVyLCBLZXkmIGtleSkKIAogfQogfQotCi0j
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0
d29ya0NhY2hlS2V5LmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdv
cmtDYWNoZUtleS5oCmluZGV4IDdkZWQ5NDdmYTkyLi4yOTE1YjIxNGIzMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVLZXkuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUtleS5oCkBA
IC0yNiw4ICsyNiw2IEBACiAjaWZuZGVmIE5ldHdvcmtDYWNoZUtleV9oCiAjZGVmaW5lIE5ldHdv
cmtDYWNoZUtleV9oCiAKLSNpZiBFTkFCTEUoTkVUV09SS19DQUNIRSkKLQogI2luY2x1ZGUgIk5l
dHdvcmtDYWNoZURhdGEuaCIKICNpbmNsdWRlIDx3dGYvU0hBMS5oPgogI2luY2x1ZGUgPHd0Zi9w
ZXJzaXN0ZW5jZS9QZXJzaXN0ZW50Q29kZXIuaD4KQEAgLTEzOCw0ICsxMzYsMyBAQCB0ZW1wbGF0
ZTw+IHN0cnVjdCBIYXNoVHJhaXRzPFdlYktpdDo6TmV0d29ya0NhY2hlOjpLZXk+IDogU2ltcGxl
Q2xhc3NIYXNoVHJhaXRzPAogfSAvLyBuYW1lc3BhY2UgV1RGCiAKICNlbmRpZgotI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNo
ZVN0YXRpc3RpY3MuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3
b3JrQ2FjaGVTdGF0aXN0aWNzLmNwcAppbmRleCA2OWQyNWJhYjRiNi4uNjkzMzQxN2ZkOGMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hl
U3RhdGlzdGljcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9O
ZXR3b3JrQ2FjaGVTdGF0aXN0aWNzLmNwcApAQCAtMjUsNyArMjUsNiBAQAogCiAjaW5jbHVkZSAi
Y29uZmlnLmgiCiAKLSNpZiBFTkFCTEUoTkVUV09SS19DQUNIRSkKICNpbmNsdWRlICJOZXR3b3Jr
Q2FjaGVTdGF0aXN0aWNzLmgiCiAKICNpbmNsdWRlICJMb2dnaW5nLmgiCkBAIC00NTIsNSArNDUx
LDMgQEAgdm9pZCBTdGF0aXN0aWNzOjphZGRTdG9yZURlY2lzaW9uc1RvRGF0YWJhc2UoY29uc3Qg
SGFzaE1hcDxTdHJpbmcsIE5ldHdvcmtDYWNoZToKIAogfQogfQotCi0jZW5kaWYgLy8gRU5BQkxF
KE5FVFdPUktfQ0FDSEUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L2NhY2hlL05ldHdvcmtDYWNoZVN0YXRpc3RpY3MuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlU3RhdGlzdGljcy5oCmluZGV4IDVjNTI3Zjc3M2MwLi43
NzcxYmZmNDM1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNo
ZS9OZXR3b3JrQ2FjaGVTdGF0aXN0aWNzLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTdGF0aXN0aWNzLmgKQEAgLTI2LDggKzI2LDYgQEAKICNp
Zm5kZWYgTmV0d29ya0NhY2hlU3RhdGlzdGljc19oCiAjZGVmaW5lIE5ldHdvcmtDYWNoZVN0YXRp
c3RpY3NfaAogCi0jaWYgRU5BQkxFKE5FVFdPUktfQ0FDSEUpCi0KICNpbmNsdWRlICJOZXR3b3Jr
Q2FjaGUuaCIKICNpbmNsdWRlICJOZXR3b3JrQ2FjaGVLZXkuaCIKICNpbmNsdWRlIDxXZWJDb3Jl
L1NRTGl0ZURhdGFiYXNlLmg+CkBAIC05Miw2ICs5MCw0IEBAIHByaXZhdGU6CiB9CiB9CiAKLSNl
bmRpZiAvLyBFTkFCTEUoTkVUV09SS19DQUNIRSkKLQogI2VuZGlmIC8vIE5ldHdvcmtDYWNoZVN0
YXRpc3RpY3NfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNo
ZS9OZXR3b3JrQ2FjaGVTdG9yYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
Y2FjaGUvTmV0d29ya0NhY2hlU3RvcmFnZS5jcHAKaW5kZXggYzFiMWVlNTM2OGUuLmU0YWRiMTli
YzhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdv
cmtDYWNoZVN0b3JhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2Fj
aGUvTmV0d29ya0NhY2hlU3RvcmFnZS5jcHAKQEAgLTI2LDggKzI2LDYgQEAKICNpbmNsdWRlICJj
b25maWcuaCIKICNpbmNsdWRlICJOZXR3b3JrQ2FjaGVTdG9yYWdlLmgiCiAKLSNpZiBFTkFCTEUo
TkVUV09SS19DQUNIRSkKLQogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJOZXR3b3Jr
Q2FjaGVDb2RlcnMuaCIKICNpbmNsdWRlICJOZXR3b3JrQ2FjaGVGaWxlU3lzdGVtLmgiCkBAIC0x
MTAwLDUgKzEwOTgsMyBAQCB2b2lkIFN0b3JhZ2U6OmRlbGV0ZU9sZFZlcnNpb25zKCkKIAogfQog
fQotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2Fj
aGUvTmV0d29ya0NhY2hlU3RvcmFnZS5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9j
YWNoZS9OZXR3b3JrQ2FjaGVTdG9yYWdlLmgKaW5kZXggYjY4OGRjZDRlMGEuLjQ1YmE4YjBiYjc0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtD
YWNoZVN0b3JhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05l
dHdvcmtDYWNoZVN0b3JhZ2UuaApAQCAtMjUsOCArMjUsNiBAQAogCiAjcHJhZ21hIG9uY2UKIAot
I2lmIEVOQUJMRShORVRXT1JLX0NBQ0hFKQotCiAjaW5jbHVkZSAiTmV0d29ya0NhY2hlQmxvYlN0
b3JhZ2UuaCIKICNpbmNsdWRlICJOZXR3b3JrQ2FjaGVEYXRhLmgiCiAjaW5jbHVkZSAiTmV0d29y
a0NhY2hlS2V5LmgiCkBAIC0xOTYsNCArMTk0LDMgQEAgdm9pZCB0cmF2ZXJzZVJlY29yZHNGaWxl
cyhjb25zdCBTdHJpbmcmIHJlY29yZHNQYXRoLCBjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IFIK
IAogfQogfQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L2NvY29hL05ldHdvcmtQcm9jZXNzQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL2NvY29hL05ldHdvcmtQcm9jZXNzQ29jb2EubW0KaW5kZXggYTJhMWJhOGYyM2UuLmEzZjIw
NTVkMmYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05l
dHdvcmtQcm9jZXNzQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9j
b2NvYS9OZXR3b3JrUHJvY2Vzc0NvY29hLm1tCkBAIC0xMTMsNyArMTEzLDYgQEAgdm9pZCBOZXR3
b3JrUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplTmV0d29ya1Byb2Nlc3NDb2NvYShjb25zdCBO
ZXR3b3JrUHJvY2Vzc0MKIAogICAgIGlmICghbV9kaXNrQ2FjaGVEaXJlY3RvcnkuaXNOdWxsKCkp
IHsKICAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y29uc3VtZVBlcm1hbmVudGx5KHBhcmFtZXRl
cnMuZGlza0NhY2hlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKTsKLSNpZiBFTkFCTEUoTkVUV09S
S19DQUNIRSkKICAgICAgICAgaWYgKHBhcmFtZXRlcnMuc2hvdWxkRW5hYmxlTmV0d29ya0NhY2hl
KSB7CiAgICAgICAgICAgICBPcHRpb25TZXQ8TmV0d29ya0NhY2hlOjpDYWNoZTo6T3B0aW9uPiBj
YWNoZU9wdGlvbnMgeyBOZXR3b3JrQ2FjaGU6OkNhY2hlOjpPcHRpb246OlJlZ2lzdGVyTm90aWZ5
IH07CiAgICAgICAgICAgICBpZiAocGFyYW1ldGVycy5zaG91bGRFbmFibGVOZXR3b3JrQ2FjaGVF
ZmZpY2FjeUxvZ2dpbmcpCkBAIC0xMzMsNyArMTMyLDYgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6
cGxhdGZvcm1Jbml0aWFsaXplTmV0d29ya1Byb2Nlc3NDb2NvYShjb25zdCBOZXR3b3JrUHJvY2Vz
c0MKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KLSNl
bmRpZgogICAgICAgICBTdHJpbmcgbnNVUkxDYWNoZURpcmVjdG9yeSA9IG1fZGlza0NhY2hlRGly
ZWN0b3J5OwogI2lmIFBMQVRGT1JNKElPUykKICAgICAgICAgLy8gTlNVUkxDYWNoZSBwYXRoIGlz
IHJlbGF0aXZlIHRvIG5ldHdvcmsgcHJvY2VzcyBjYWNoZSBkaXJlY3RvcnkuCkBAIC0xOTYsNyAr
MTk0LDYgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6Y2xlYXJEaXNrQ2FjaGUoc3RkOjpjaHJvbm86
OnN5c3RlbV9jbG9jazo6dGltZV9wb2ludCBtb2RpZmkKICAgICBpZiAoIW1fY2xlYXJDYWNoZURp
c3BhdGNoR3JvdXApCiAgICAgICAgIG1fY2xlYXJDYWNoZURpc3BhdGNoR3JvdXAgPSBkaXNwYXRj
aF9ncm91cF9jcmVhdGUoKTsKIAotI2lmIEVOQUJMRShORVRXT1JLX0NBQ0hFKQogICAgIGlmIChh
dXRvKiBjYWNoZSA9IE5ldHdvcmtQcm9jZXNzOjpzaW5nbGV0b24oKS5jYWNoZSgpKSB7CiAgICAg
ICAgIGF1dG8gZ3JvdXAgPSBtX2NsZWFyQ2FjaGVEaXNwYXRjaEdyb3VwOwogICAgICAgICBkaXNw
YXRjaF9ncm91cF9hc3luYyhncm91cCwgZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSwgQmxvY2tQ
dHI8dm9pZCgpPjo6ZnJvbUNhbGxhYmxlKFtjYWNoZSwgZ3JvdXAsIG1vZGlmaWVkU2luY2UsIGNv
bXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildICgpIG11dGFibGUg
ewpAQCAtMjA3LDcgKzIwNCw2IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmNsZWFyRGlza0NhY2hl
KHN0ZDo6Y2hyb25vOjpzeXN0ZW1fY2xvY2s6OnRpbWVfcG9pbnQgbW9kaWZpCiAgICAgICAgIH0p
LmdldCgpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSNlbmRpZgogICAgIGNsZWFyTlNVUkxD
YWNoZShtX2NsZWFyQ2FjaGVEaXNwYXRjaEdyb3VwLCBtb2RpZmllZFNpbmNlLCBXVEZNb3ZlKGNv
bXBsZXRpb25IYW5kbGVyKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvaW9zL05ldHdvcmtQcm9jZXNzSU9TLm1tIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9pb3MvTmV0d29ya1Byb2Nlc3NJT1MubW0KaW5kZXggMWZjN2Q5YmExY2MuLmEyMjY2
Mzk2YTk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2lvcy9OZXR3
b3JrUHJvY2Vzc0lPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2lvcy9O
ZXR3b3JrUHJvY2Vzc0lPUy5tbQpAQCAtNzgsMTAgKzc4LDggQEAgdm9pZCBOZXR3b3JrUHJvY2Vz
czo6Y2xlYXJDYWNoZUZvckFsbE9yaWdpbnModWludDMyX3QgY2FjaGVzVG9DbGVhcikKICAgICBS
ZXNvdXJjZUNhY2hlc1RvQ2xlYXIgcmVzb3VyY2VDYWNoZXNUb0NsZWFyID0gc3RhdGljX2Nhc3Q8
UmVzb3VyY2VDYWNoZXNUb0NsZWFyPihjYWNoZXNUb0NsZWFyKTsKICAgICBpZiAocmVzb3VyY2VD
YWNoZXNUb0NsZWFyID09IEluTWVtb3J5UmVzb3VyY2VDYWNoZXNPbmx5KQogICAgICAgICByZXR1
cm47Ci0jaWYgRU5BQkxFKE5FVFdPUktfQ0FDSEUpCiAgICAgaWYgKG1fY2FjaGUpCiAgICAgICAg
IG1fY2FjaGUtPmNsZWFyKCk7Ci0jZW5kaWYKIH0KIAogdm9pZCBOZXR3b3JrUHJvY2Vzczo6cGxh
dGZvcm1Jbml0aWFsaXplTmV0d29ya1Byb2Nlc3MoY29uc3QgTmV0d29ya1Byb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL3NvdXAvTmV0d29ya1Byb2Nlc3NTb3VwLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrUHJvY2Vzc1NvdXAuY3BwCmluZGV4IDc4NTdmYzdiYzFj
Li5iZDRmNjI5MTkzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9z
b3VwL05ldHdvcmtQcm9jZXNzU291cC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9zb3VwL05ldHdvcmtQcm9jZXNzU291cC5jcHAKQEAgLTExMiw3ICsxMTIsNiBAQCB2b2lk
IE5ldHdvcmtQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVOZXR3b3JrUHJvY2Vzcyhjb25zdCBO
ZXR3b3JrUHJvY2Vzc0NyZWF0aQogCiAgICAgU291cE5ldHdvcmtTZXNzaW9uOjpjbGVhck9sZFNv
dXBDYWNoZShXZWJDb3JlOjpkaXJlY3RvcnlOYW1lKG1fZGlza0NhY2hlRGlyZWN0b3J5KSk7CiAK
LSNpZiBFTkFCTEUoTkVUV09SS19DQUNIRSkKICAgICBPcHRpb25TZXQ8TmV0d29ya0NhY2hlOjpD
YWNoZTo6T3B0aW9uPiBjYWNoZU9wdGlvbnMgeyBOZXR3b3JrQ2FjaGU6OkNhY2hlOjpPcHRpb246
OlJlZ2lzdGVyTm90aWZ5IH07CiAgICAgaWYgKHBhcmFtZXRlcnMuc2hvdWxkRW5hYmxlTmV0d29y
a0NhY2hlRWZmaWNhY3lMb2dnaW5nKQogICAgICAgICBjYWNoZU9wdGlvbnMgfD0gTmV0d29ya0Nh
Y2hlOjpDYWNoZTo6T3B0aW9uOjpFZmZpY2FjeUxvZ2dpbmc7CkBAIC0xMjIsNyArMTIxLDYgQEAg
dm9pZCBOZXR3b3JrUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplTmV0d29ya1Byb2Nlc3MoY29u
c3QgTmV0d29ya1Byb2Nlc3NDcmVhdGkKICNlbmRpZgogCiAgICAgbV9jYWNoZSA9IE5ldHdvcmtD
YWNoZTo6Q2FjaGU6Om9wZW4obV9kaXNrQ2FjaGVEaXJlY3RvcnksIGNhY2hlT3B0aW9ucyk7Ci0j
ZW5kaWYKIAogICAgIGlmICghcGFyYW1ldGVycy5jb29raWVQZXJzaXN0ZW50U3RvcmFnZVBhdGgu
aXNFbXB0eSgpKSB7CiAgICAgICAgIHN1cHBsZW1lbnQ8V2ViQ29va2llTWFuYWdlcj4oKS0+c2V0
Q29va2llUGVyc2lzdGVudFN0b3JhZ2UocGFyYW1ldGVycy5jb29raWVQZXJzaXN0ZW50U3RvcmFn
ZVBhdGgsCkBAIC0xNjAsMTQgKzE1OCw5IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmNsZWFyQ2Fj
aGVGb3JBbGxPcmlnaW5zKHVpbnQzMl90IGNhY2hlc1RvQ2xlYXIpCiAKIHZvaWQgTmV0d29ya1By
b2Nlc3M6OmNsZWFyRGlza0NhY2hlKHN0ZDo6Y2hyb25vOjpzeXN0ZW1fY2xvY2s6OnRpbWVfcG9p
bnQgbW9kaWZpZWRTaW5jZSwgRnVuY3Rpb248dm9pZCAoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikK
IHsKLSNpZiBFTkFCTEUoTkVUV09SS19DQUNIRSkKICAgICBpZiAoIW1fY2FjaGUpCiAgICAgICAg
IHJldHVybjsKICAgICBtX2NhY2hlLT5jbGVhcihtb2RpZmllZFNpbmNlLCBXVEZNb3ZlKGNvbXBs
ZXRpb25IYW5kbGVyKSk7Ci0jZWxzZQotICAgIFVOVVNFRF9QQVJBTShtb2RpZmllZFNpbmNlKTsK
LSAgICBVTlVTRURfUEFSQU0oY29tcGxldGlvbkhhbmRsZXIpOwotI2VuZGlmCiB9CiAKIHZvaWQg
TmV0d29ya1Byb2Nlc3M6OnBsYXRmb3JtVGVybWluYXRlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0gYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tCmluZGV4IDdjYWU5MDMx
MTQwLi5kMmVmZWI4OTg2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9D
b2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tCkBAIC03OCwxMCArNzgsOCBAQCBOU1N0cmluZyAq
V2ViSWNvbkRhdGFiYXNlRGlyZWN0b3J5RGVmYXVsdHNLZXkgPSBAIldlYkljb25EYXRhYmFzZURp
cmVjdG9yeURlZmF1bAogc3RhdGljIE5TU3RyaW5nICogY29uc3QgV2ViS2l0MkhUVFBQcm94eURl
ZmF1bHRzS2V5ID0gQCJXZWJLaXQySFRUUFByb3h5IjsKIHN0YXRpYyBOU1N0cmluZyAqIGNvbnN0
IFdlYktpdDJIVFRQU1Byb3h5RGVmYXVsdHNLZXkgPSBAIldlYktpdDJIVFRQU1Byb3h5IjsKIAot
I2lmIEVOQUJMRShORVRXT1JLX0NBQ0hFKQogc3RhdGljIE5TU3RyaW5nICogY29uc3QgV2ViS2l0
TmV0d29ya0NhY2hlRW5hYmxlZERlZmF1bHRzS2V5ID0gQCJXZWJLaXROZXR3b3JrQ2FjaGVFbmFi
bGVkIjsKIHN0YXRpYyBOU1N0cmluZyAqIGNvbnN0IFdlYktpdE5ldHdvcmtDYWNoZUVmZmljYWN5
TG9nZ2luZ0VuYWJsZWREZWZhdWx0c0tleSA9IEAiV2ViS2l0TmV0d29ya0NhY2hlRWZmaWNhY3lM
b2dnaW5nRW5hYmxlZCI7Ci0jZW5kaWYKIAogc3RhdGljIE5TU3RyaW5nICogY29uc3QgV2ViS2l0
U3VwcHJlc3NNZW1vcnlQcmVzc3VyZUhhbmRsZXJEZWZhdWx0c0tleSA9IEAiV2ViS2l0U3VwcHJl
c3NNZW1vcnlQcmVzc3VyZUhhbmRsZXIiOwogc3RhdGljIE5TU3RyaW5nICogY29uc3QgV2ViS2l0
TmV0d29ya0xvYWRUaHJvdHRsZUxhdGVuY3lNaWxsaXNlY29uZHNEZWZhdWx0c0tleSA9IEAiV2Vi
S2l0TmV0d29ya0xvYWRUaHJvdHRsZUxhdGVuY3lNaWxsaXNlY29uZHMiOwpAQCAtMTA4LDEwICsx
MDYsOCBAQCBzdGF0aWMgdm9pZCByZWdpc3RlclVzZXJEZWZhdWx0c0lmTmVlZGVkKCkKICAgICBb
cmVnaXN0cmF0aW9uRGljdGlvbmFyeSBzZXRPYmplY3Q6QFlFUyBmb3JLZXk6V2ViS2l0SlNDSklU
RW5hYmxlZERlZmF1bHRzS2V5XTsKICAgICBbcmVnaXN0cmF0aW9uRGljdGlvbmFyeSBzZXRPYmpl
Y3Q6QFlFUyBmb3JLZXk6V2ViS2l0SlNDRlRMSklURW5hYmxlZERlZmF1bHRzS2V5XTsKIAotI2lm
IEVOQUJMRShORVRXT1JLX0NBQ0hFKQogICAgIFtyZWdpc3RyYXRpb25EaWN0aW9uYXJ5IHNldE9i
amVjdDpAWUVTIGZvcktleTpXZWJLaXROZXR3b3JrQ2FjaGVFbmFibGVkRGVmYXVsdHNLZXldOwog
ICAgIFtyZWdpc3RyYXRpb25EaWN0aW9uYXJ5IHNldE9iamVjdDpATk8gZm9yS2V5OldlYktpdE5l
dHdvcmtDYWNoZUVmZmljYWN5TG9nZ2luZ0VuYWJsZWREZWZhdWx0c0tleV07Ci0jZW5kaWYKIAog
ICAgIFtbTlNVc2VyRGVmYXVsdHMgc3RhbmRhcmRVc2VyRGVmYXVsdHNdIHJlZ2lzdGVyRGVmYXVs
dHM6cmVnaXN0cmF0aW9uRGljdGlvbmFyeV07CiB9CkBAIC0yODEsMTAgKzI3Nyw4IEBAIHZvaWQg
V2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6ZU5ldHdvcmtQcm9jZXNzKE5ldHdvcmtQ
cm9jZXNzQ3JlYXRpb25QYXJhCiAgICAgcGFyYW1ldGVycy5odHRwc1Byb3h5ID0gW2RlZmF1bHRz
IHN0cmluZ0ZvcktleTpXZWJLaXQySFRUUFNQcm94eURlZmF1bHRzS2V5XTsKICAgICBwYXJhbWV0
ZXJzLm5ldHdvcmtBVFNDb250ZXh0ID0gYWRvcHRDRihfQ0ZOZXR3b3JrQ29weUFUU0NvbnRleHQo
KSk7CiAKLSNpZiBFTkFCTEUoTkVUV09SS19DQUNIRSkKICAgICBwYXJhbWV0ZXJzLnNob3VsZEVu
YWJsZU5ldHdvcmtDYWNoZSA9IGlzTmV0d29ya0NhY2hlRW5hYmxlZCgpOwogICAgIHBhcmFtZXRl
cnMuc2hvdWxkRW5hYmxlTmV0d29ya0NhY2hlRWZmaWNhY3lMb2dnaW5nID0gW2RlZmF1bHRzIGJv
b2xGb3JLZXk6V2ViS2l0TmV0d29ya0NhY2hlRWZmaWNhY3lMb2dnaW5nRW5hYmxlZERlZmF1bHRz
S2V5XTsKLSNlbmRpZgogCiAgICAgcGFyYW1ldGVycy5zb3VyY2VBcHBsaWNhdGlvbkJ1bmRsZUlk
ZW50aWZpZXIgPSBtX2NvbmZpZ3VyYXRpb24tPnNvdXJjZUFwcGxpY2F0aW9uQnVuZGxlSWRlbnRp
ZmllcigpOwogICAgIHBhcmFtZXRlcnMuc291cmNlQXBwbGljYXRpb25TZWNvbmRhcnlJZGVudGlm
aWVyID0gbV9jb25maWd1cmF0aW9uLT5zb3VyY2VBcHBsaWNhdGlvblNlY29uZGFyeUlkZW50aWZp
ZXIoKTsKQEAgLTQ2NywxMCArNDYxLDggQEAgU3RyaW5nIFdlYlByb2Nlc3NQb29sOjpsZWdhY3lQ
bGF0Zm9ybURlZmF1bHROZXR3b3JrQ2FjaGVEaXJlY3RvcnkoKQogICAgIGlmICghY2FjaGVQYXRo
KQogICAgICAgICBjYWNoZVBhdGggPSBAIn4vTGlicmFyeS9DYWNoZXMvY29tLmFwcGxlLldlYktp
dC5XZWJQcm9jZXNzIjsKIAotI2lmIEVOQUJMRShORVRXT1JLX0NBQ0hFKQogICAgIGlmIChpc05l
dHdvcmtDYWNoZUVuYWJsZWQoKSkKICAgICAgICAgY2FjaGVQYXRoID0gW2NhY2hlUGF0aCBzdHJp
bmdCeUFwcGVuZGluZ1BhdGhDb21wb25lbnQ6QCJXZWJLaXRDYWNoZSJdOwotI2VuZGlmCiAKICAg
ICByZXR1cm4gc3RyaW5nQnlSZXNvbHZpbmdTeW1saW5rc0luUGF0aChbY2FjaGVQYXRoIHN0cmlu
Z0J5U3RhbmRhcmRpemluZ1BhdGhdKTsKIH0KQEAgLTUwNCw3ICs0OTYsNiBAQCB2b2lkIFdlYlBy
b2Nlc3NQb29sOjpzZXRKYXZhU2NyaXB0Q29uZmlndXJhdGlvbkZpbGVFbmFibGVkRnJvbURlZmF1
bHRzKCkKIAogYm9vbCBXZWJQcm9jZXNzUG9vbDo6aXNOZXR3b3JrQ2FjaGVFbmFibGVkKCkKIHsK
LSNpZiBFTkFCTEUoTkVUV09SS19DQUNIRSkKICAgICByZWdpc3RlclVzZXJEZWZhdWx0c0lmTmVl
ZGVkKCk7CiAKICAgICBOU1VzZXJEZWZhdWx0cyAqZGVmYXVsdHMgPSBbTlNVc2VyRGVmYXVsdHMg
c3RhbmRhcmRVc2VyRGVmYXVsdHNdOwpAQCAtNTEyLDkgKzUwMyw2IEBAIGJvb2wgV2ViUHJvY2Vz
c1Bvb2w6OmlzTmV0d29ya0NhY2hlRW5hYmxlZCgpCiAgICAgYm9vbCBuZXR3b3JrQ2FjaGVFbmFi
bGVkQnlEZWZhdWx0cyA9IFtkZWZhdWx0cyBib29sRm9yS2V5OldlYktpdE5ldHdvcmtDYWNoZUVu
YWJsZWREZWZhdWx0c0tleV07CiAKICAgICByZXR1cm4gbmV0d29ya0NhY2hlRW5hYmxlZEJ5RGVm
YXVsdHMgJiYgbGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZpcnN0V2l0aE5ldHdvcmtDYWNo
ZSk7Ci0jZWxzZQotICAgIHJldHVybiBmYWxzZTsKLSNlbmRpZgogfQogCiBib29sIFdlYlByb2Nl
c3NQb29sOjpvbWl0UERGU3VwcG9ydCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9zb3VwL1dlYlByb2Nlc3NQb29sU291cC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9zb3VwL1dlYlByb2Nlc3NQb29sU291cC5jcHAKaW5kZXggYzczMmExOTE5ZTEuLjQ3MWVlMTY2
MjIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9zb3VwL1dlYlByb2Nlc3NQ
b29sU291cC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mvc291cC9XZWJQcm9jZXNz
UG9vbFNvdXAuY3BwCkBAIC00Miw5ICs0Miw3IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnBsYXRm
b3JtSW5pdGlhbGl6ZU5ldHdvcmtQcm9jZXNzKE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhCiAg
ICAgcGFyYW1ldGVycy5jb29raWVBY2NlcHRQb2xpY3kgPSBtX2luaXRpYWxIVFRQQ29va2llQWNj
ZXB0UG9saWN5OwogICAgIHBhcmFtZXRlcnMuaWdub3JlVExTRXJyb3JzID0gbV9pZ25vcmVUTFNF
cnJvcnM7CiAgICAgcGFyYW1ldGVycy5sYW5ndWFnZXMgPSB1c2VyUHJlZmVycmVkTGFuZ3VhZ2Vz
KCk7Ci0jaWYgRU5BQkxFKE5FVFdPUktfQ0FDSEUpCiAgICAgcGFyYW1ldGVycy5zaG91bGRFbmFi
bGVOZXR3b3JrQ2FjaGVFZmZpY2FjeUxvZ2dpbmcgPSBmYWxzZTsKLSNlbmRpZgogICAgIHBhcmFt
ZXRlcnMucHJveHlTZXR0aW5ncyA9IG1fbmV0d29ya1Byb3h5U2V0dGluZ3M7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5
LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5
LmNwcAppbmRleCAwOTIzZTcwM2FiNC4uYTM4MTdkYzk0MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAKQEAgLTUw
NSwxNiArNTA1LDkgQEAgdm9pZCBXZWJMb2FkZXJTdHJhdGVneTo6ZGlkRmluaXNoUHJlY29ubmVj
dGlvbih1aW50NjRfdCBwcmVjb25uZWN0aW9uSWRlbnRpZmllciwKIAogdm9pZCBXZWJMb2FkZXJT
dHJhdGVneTo6c3RvcmVEZXJpdmVkRGF0YVRvQ2FjaGUoY29uc3QgU0hBMTo6RGlnZXN0JiBib2R5
SGFzaCwgY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIHBhcnRpdGlvbiwgV2ViQ29y
ZTo6U2hhcmVkQnVmZmVyJiBkYXRhKQogewotI2lmIEVOQUJMRShORVRXT1JLX0NBQ0hFKQogICAg
IE5ldHdvcmtDYWNoZTo6RGF0YUtleSBrZXkgeyBwYXJ0aXRpb24sIHR5cGUsIGJvZHlIYXNoIH07
CiAgICAgSVBDOjpTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlIGRhdGFSZWZlcmVuY2UgeyAmZGF0
YSB9OwogICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLm5ldHdvcmtDb25uZWN0aW9uKCkuY29u
bmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpT
dG9yZURlcml2ZWREYXRhVG9DYWNoZShrZXksIGRhdGFSZWZlcmVuY2UpLCAwKTsKLSNlbHNlCi0g
ICAgVU5VU0VEX1BBUkFNKGJvZHlIYXNoKTsKLSAgICBVTlVTRURfUEFSQU0odHlwZSk7Ci0gICAg
VU5VU0VEX1BBUkFNKHBhcnRpdGlvbik7Ci0gICAgVU5VU0VEX1BBUkFNKGRhdGEpOwotI2VuZGlm
CiB9CiAKIHZvaWQgV2ViTG9hZGVyU3RyYXRlZ3k6OnNldENhcHR1cmVFeHRyYU5ldHdvcmtMb2Fk
TWV0cmljc0VuYWJsZWQoYm9vbCBlbmFibGVkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9j
b25maWcuaCBiL1NvdXJjZS9XZWJLaXQvY29uZmlnLmgKaW5kZXggMjliOTRhMjA4YmEuLmI5MDNi
MmY2ZDUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2NvbmZpZy5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvY29uZmlnLmgKQEAgLTExNywxNCArMTE3LDYgQEAKICNlbmRpZgogI2VuZGlmCiAKLSNp
Zm5kZWYgRU5BQkxFX05FVFdPUktfQ0FDSEUKLSNpZiBQTEFURk9STShDT0NPQSkgfHwgVVNFKFNP
VVApCi0jZGVmaW5lIEVOQUJMRV9ORVRXT1JLX0NBQ0hFIDEKLSNlbHNlCi0jZGVmaW5lIEVOQUJM
RV9ORVRXT1JLX0NBQ0hFIDAKLSNlbmRpZgotI2VuZGlmCi0KICNpZm5kZWYgRU5BQkxFX05FVFdP
UktfQ0FQVFVSRQogI2lmIFVTRShORVRXT1JLX1NFU1NJT04pICYmIFBMQVRGT1JNKENPQ09BKQog
I2RlZmluZSBFTkFCTEVfTkVUV09SS19DQVBUVVJFIDEKQEAgLTEzMiw3ICsxMjQsNyBAQAogI2Vu
ZGlmCiAKICNpZm5kZWYgRU5BQkxFX05FVFdPUktfQ0FDSEVfU1BFQ1VMQVRJVkVfUkVWQUxJREFU
SU9OCi0jaWYgRU5BQkxFKE5FVFdPUktfQ0FDSEUpICYmIChQTEFURk9STShDT0NPQSkgfHwgUExB
VEZPUk0oR1RLKSkKKyNpZiAoUExBVEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKEdUSykpCiAjZGVm
aW5lIEVOQUJMRV9ORVRXT1JLX0NBQ0hFX1NQRUNVTEFUSVZFX1JFVkFMSURBVElPTiAxCiAjZWxz
ZQogI2RlZmluZSBFTkFCTEVfTkVUV09SS19DQUNIRV9TUEVDVUxBVElWRV9SRVZBTElEQVRJT04g
MAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>323365</attachid>
            <date>2017-10-10 17:36:32 -0700</date>
            <delta_ts>2017-10-11 08:53:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-177424.diff</filename>
            <type>text/plain</type>
            <size>47638</size>
            <attacher name="Don Olmstead">don.olmstead</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKaW5kZXggOTAyNGRiOWJjN2EuLjlmNDhlNjg3OTRmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsx
LDgzIEBACisyMDE3LTEwLTEwICBEb24gT2xtc3RlYWQgIDxkb24ub2xtc3RlYWRAc29ueS5jb20+
CisKKyAgICAgICAgUmVtb3ZlIEVOQUJMRV9ORVRXT1JLX0NBQ0hFCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzc0MjQKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3M6OnN0b3JlRGVyaXZlZERhdGFUb0NhY2hlKToKKyAgICAgICAgKiBO
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oOgorICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmlu
OgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6ZmV0Y2hEaXNrQ2FjaGVFbnRyaWVzKToKKyAgICAgICAgKFdlYktpdDo6Y2xlYXJE
aXNrQ2FjaGVFbnRyaWVzKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OnNldENh
Y2hlTW9kZWwpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmg6Cisg
ICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpjYWNoZSk6CisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwOgorICAgICAgICAo
V2ViS2l0OjpOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlIGNvbnN0KToK
KyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29k
ZSk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnMuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6Ok5ldHdvcmtSZXNv
dXJjZUxvYWRlcik6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6Y2Fu
VXNlQ2FjaGVkUmVkaXJlY3QgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3Vy
Y2VMb2FkZXI6OnN0YXJ0KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZGVy
OjpyZXRyaWV2ZUNhY2hlRW50cnkpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VM
b2FkZXI6OnN0YXJ0TmV0d29ya0xvYWQpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3Vy
Y2VMb2FkZXI6OmFib3J0KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZGVy
OjpkaWRSZWNlaXZlUmVzcG9uc2UpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VM
b2FkZXI6OmRpZFJlY2VpdmVCdWZmZXIpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3Vy
Y2VMb2FkZXI6OmRpZEZpbmlzaExvYWRpbmcpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVz
b3VyY2VMb2FkZXI6OmRpZEZhaWxMb2FkaW5nKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Jl
c291cmNlTG9hZGVyOjp3aWxsU2VuZFJlZGlyZWN0ZWRSZXF1ZXN0KToKKyAgICAgICAgKFdlYktp
dDo6TmV0d29ya1Jlc291cmNlTG9hZGVyOjpjb250aW51ZVdpbGxTZW5kUmVxdWVzdCk6CisgICAg
ICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6ZGlzcGF0Y2hXaWxsU2VuZFJlcXVl
c3RGb3JDYWNoZUVudHJ5KToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3Vy
Y2VMb2FkZXIuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGUu
Y3BwOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5oOgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUJsb2JTdG9yYWdlLmNwcDoK
KyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVCbG9iU3RvcmFnZS5o
OgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUNvZGVycy5jcHA6
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlQ29kZXJzLmg6Cisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlQ29kZXJzQ29jb2EuY3Bw
OgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUNvZGVyc1NvdXAu
Y3BwOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZURhdGEuY3Bw
OgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZURhdGEuaDoKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVEYXRhQ29jb2EubW06Cisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlRGF0YVNvdXAuY3BwOgor
ICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUVudHJ5LmNwcDoKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVFbnRyeS5oOgorICAgICAg
ICAqIE5ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUZpbGVTeXN0ZW0uY3BwOgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUZpbGVTeXN0ZW0uaDoKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVJT0NoYW5uZWwuaDoKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVJT0NoYW5uZWxDb2NvYS5t
bToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVJT0NoYW5uZWxT
b3VwLmNwcDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVLZXku
Y3BwOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUtleS5oOgor
ICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZVN0YXRpc3RpY3MuY3Bw
OgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZVN0YXRpc3RpY3Mu
aDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTdG9yYWdlLmNw
cDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTdG9yYWdlLmg6
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Byb2Nlc3NDb2NvYS5tbToK
KyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZU5ldHdv
cmtQcm9jZXNzQ29jb2EpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6Y2xlYXJE
aXNrQ2FjaGUpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2lvcy9OZXR3b3JrUHJvY2Vzc0lP
Uy5tbToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmNsZWFyQ2FjaGVGb3JBbGxP
cmlnaW5zKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtQcm9jZXNzU291
cC5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxp
emVOZXR3b3JrUHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpjbGVh
ckRpc2tDYWNoZSk6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29j
b2EubW06CisgICAgICAgIChXZWJLaXQ6OnJlZ2lzdGVyVXNlckRlZmF1bHRzSWZOZWVkZWQpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXplTmV0d29y
a1Byb2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6bGVnYWN5UGxhdGZv
cm1EZWZhdWx0TmV0d29ya0NhY2hlRGlyZWN0b3J5KToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJv
Y2Vzc1Bvb2w6OmlzTmV0d29ya0NhY2hlRW5hYmxlZCk6CisgICAgICAgICogVUlQcm9jZXNzL3Nv
dXAvV2ViUHJvY2Vzc1Bvb2xTb3VwLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bv
b2w6OnBsYXRmb3JtSW5pdGlhbGl6ZU5ldHdvcmtQcm9jZXNzKToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJM
b2FkZXJTdHJhdGVneTo6c3RvcmVEZXJpdmVkRGF0YVRvQ2FjaGUpOgorICAgICAgICAqIGNvbmZp
Zy5oOgorCiAyMDE3LTEwLTEwICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAg
ICAgICAgW1dLMl0gQWRkIEFQSSB0byBjbGVhciBzZXJ2aWNlIHdvcmtlciByZWdpc3RyYXRpb25z
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCmluZGV4IDFiZjVmZjA3NTQzLi5lZDcxM2M1MWU5
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVj
dGlvblRvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKQEAgLTQ1NCwxMyArNDU0LDExIEBAIHZv
aWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OndyaXRlQmxvYnNUb1RlbXBvcmFyeUZp
bGVzKGNvbnN0IFZlY3RvcjxTdHJpCiAgICAgfSk7CiB9CiAKLSNpZiBFTkFCTEUoTkVUV09SS19D
QUNIRSkKIHZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnN0b3JlRGVyaXZlZERh
dGFUb0NhY2hlKGNvbnN0IFdlYktpdDo6TmV0d29ya0NhY2hlOjpEYXRhS2V5JiBkYXRhS2V5LCBj
b25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIGRhdGEpCiB7CiAgICAgaWYgKGF1dG8qIGNhY2hlID0g
TmV0d29ya1Byb2Nlc3M6OnNpbmdsZXRvbigpLmNhY2hlKCkpCiAgICAgICAgIGNhY2hlLT5zdG9y
ZURhdGEoZGF0YUtleSwgZGF0YS5kYXRhKCksIGRhdGEuc2l6ZSgpKTsKIH0KLSNlbmRpZgogCiB2
b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpzZXRDYXB0dXJlRXh0cmFOZXR3b3Jr
TG9hZE1ldHJpY3NFbmFibGVkKGJvb2wgZW5hYmxlZCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mu
aAppbmRleCBlYjI3ZTljNmY3My4uNWFmMjk0OTk3OWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAorKysgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNz
LmgKQEAgLTExOCw5ICsxMTgsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgdW5yZWdpc3RlckJsb2JV
UkwoY29uc3QgV2ViQ29yZTo6VVJMJik7CiAgICAgdm9pZCB3cml0ZUJsb2JzVG9UZW1wb3JhcnlG
aWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgYmxvYlVSTHMsIHVpbnQ2NF90IHJlcXVlc3RJZGVu
dGlmaWVyKTsKIAotI2lmIEVOQUJMRShORVRXT1JLX0NBQ0hFKQogICAgIHZvaWQgc3RvcmVEZXJp
dmVkRGF0YVRvQ2FjaGUoY29uc3QgV2ViS2l0OjpOZXR3b3JrQ2FjaGU6OkRhdGFLZXkmLCBjb25z
dCBJUEM6OkRhdGFSZWZlcmVuY2UmKTsKLSNlbmRpZgogCiAgICAgdm9pZCBzZXRDYXB0dXJlRXh0
cmFOZXR3b3JrTG9hZE1ldHJpY3NFbmFibGVkKGJvb2wpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3Nh
Z2VzLmluIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRv
V2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgppbmRleCBlNTMxM2I5YzMxOS4uN2I4YWIwNTYwZjUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgpAQCAtNTAsOSArNTAs
NyBAQCBtZXNzYWdlcyAtPiBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyBMZWdhY3lSZWNl
aXZlciB7CiAgICAgQmxvYlNpemUoV2ViQ29yZTo6VVJMIHVybCkgLT4gKHVpbnQ2NF90IHJlc3Vs
dFNpemUpCiAgICAgV3JpdGVCbG9ic1RvVGVtcG9yYXJ5RmlsZXMoVmVjdG9yPFN0cmluZz4gYmxv
YlVSTHMsIHVpbnQ2NF90IHJlcXVlc3RJZGVudGlmaWVyKQogCi0jaWYgRU5BQkxFKE5FVFdPUktf
Q0FDSEUpCiAgICAgU3RvcmVEZXJpdmVkRGF0YVRvQ2FjaGUoV2ViS2l0OjpOZXR3b3JrQ2FjaGU6
OkRhdGFLZXkga2V5LCBJUEM6OkRhdGFSZWZlcmVuY2UgZGF0YSkKLSNlbmRpZgogCiAgICAgU2V0
Q2FwdHVyZUV4dHJhTmV0d29ya0xvYWRNZXRyaWNzRW5hYmxlZChib29sIGVuYWJsZWQpCiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3Bw
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKaW5kZXgg
NDk3NTQyYmE3NGYuLmRkOTc0NGNiYWQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcApAQCAtNzQsMTAgKzc0LDggQEAKICNpbmNsdWRlICJT
ZWNJdGVtU2hpbS5oIgogI2VuZGlmCiAKLSNpZiBFTkFCTEUoTkVUV09SS19DQUNIRSkKICNpbmNs
dWRlICJOZXR3b3JrQ2FjaGUuaCIKICNpbmNsdWRlICJOZXR3b3JrQ2FjaGVDb2RlcnMuaCIKLSNl
bmRpZgogCiAjaWYgRU5BQkxFKE5FVFdPUktfQ0FQVFVSRSkKICNpbmNsdWRlICJOZXR3b3JrQ2Fw
dHVyZU1hbmFnZXIuaCIKQEAgLTMzNyw3ICszMzUsNiBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpy
ZW1vdmVQcmV2YWxlbnREb21haW5zKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgVmVj
dAogCiBzdGF0aWMgdm9pZCBmZXRjaERpc2tDYWNoZUVudHJpZXMoUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFGZXRjaE9wdGlvbj4gZmV0Y2hPcHRpb25zLCBG
dW5jdGlvbjx2b2lkIChWZWN0b3I8V2Vic2l0ZURhdGE6OkVudHJ5Pik+JiYgY29tcGxldGlvbkhh
bmRsZXIpCiB7Ci0jaWYgRU5BQkxFKE5FVFdPUktfQ0FDSEUpCiAgICAgaWYgKGF1dG8qIGNhY2hl
ID0gTmV0d29ya1Byb2Nlc3M6OnNpbmdsZXRvbigpLmNhY2hlKCkpIHsKICAgICAgICAgSGFzaE1h
cDxTZWN1cml0eU9yaWdpbkRhdGEsIHVpbnQ2NF90PiBvcmlnaW5zQW5kU2l6ZXM7CiAgICAgICAg
IGNhY2hlLT50cmF2ZXJzZShbZmV0Y2hPcHRpb25zLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1v
dmUoY29tcGxldGlvbkhhbmRsZXIpLCBvcmlnaW5zQW5kU2l6ZXMgPSBXVEZNb3ZlKG9yaWdpbnNB
bmRTaXplcyldKGF1dG8qIHRyYXZlcnNhbEVudHJ5KSBtdXRhYmxlIHsKQEAgLTM2Myw3ICszNjAs
NiBAQCBzdGF0aWMgdm9pZCBmZXRjaERpc2tDYWNoZUVudHJpZXMoUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdAogCiAgICAgICAgIHJldHVybjsKICAgICB9Ci0j
ZW5kaWYKIAogICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChbY29tcGxldGlvbkhhbmRsZXIg
PSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0gewogICAgICAgICBjb21wbGV0aW9uSGFuZGxl
cih7IH0pOwpAQCAtNDQ1LDcgKzQ0MSw2IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmRlbGV0ZVdl
YnNpdGVEYXRhKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpCiAKIHN0
YXRpYyB2b2lkIGNsZWFyRGlza0NhY2hlRW50cmllcyhjb25zdCBWZWN0b3I8U2VjdXJpdHlPcmln
aW5EYXRhPiYgb3JpZ2lucywgRnVuY3Rpb248dm9pZCAoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikK
IHsKLSNpZiBFTkFCTEUoTkVUV09SS19DQUNIRSkKICAgICBpZiAoYXV0byogY2FjaGUgPSBOZXR3
b3JrUHJvY2Vzczo6c2luZ2xldG9uKCkuY2FjaGUoKSkgewogICAgICAgICBIYXNoU2V0PFJlZlB0
cjxTZWN1cml0eU9yaWdpbj4+IG9yaWdpbnNUb0RlbGV0ZTsKICAgICAgICAgZm9yIChhdXRvJiBv
cmlnaW4gOiBvcmlnaW5zKQpAQCAtNDY1LDcgKzQ2MCw2IEBAIHN0YXRpYyB2b2lkIGNsZWFyRGlz
a0NhY2hlRW50cmllcyhjb25zdCBWZWN0b3I8U2VjdXJpdHlPcmlnaW5EYXRhPiYgb3JpZ2lucywg
RnVuCiAKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSNlbmRpZgogCiAgICAgUnVuTG9vcDo6bWFp
bigpLmRpc3BhdGNoKFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KQEAgLTYwOCwxMiAr
NjAyLDEwIEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnNldENhY2hlTW9kZWwodWludDMyX3QgY20p
CiAgICAgaWYgKG1fZGlza0NhY2hlU2l6ZU92ZXJyaWRlID49IDApCiAgICAgICAgIHVybENhY2hl
RGlza0NhcGFjaXR5ID0gbV9kaXNrQ2FjaGVTaXplT3ZlcnJpZGU7CiAKLSNpZiBFTkFCTEUoTkVU
V09SS19DQUNIRSkKICAgICBpZiAobV9jYWNoZSkgewogICAgICAgICBtX2NhY2hlLT5zZXRDYXBh
Y2l0eSh1cmxDYWNoZURpc2tDYXBhY2l0eSk7CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0jZW5k
aWYKIAogICAgIHBsYXRmb3JtU2V0VVJMQ2FjaGVTaXplKHVybENhY2hlTWVtb3J5Q2FwYWNpdHks
IHVybENhY2hlRGlza0NhcGFjaXR5KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Byb2Nlc3MuaAppbmRleCBlMDcyZGQyYWVmYi4uYzJiMDhiZTViY2EgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKQEAgLTEwMCw5
ICsxMDAsNyBAQCBwdWJsaWM6CiAgICAgQXV0aGVudGljYXRpb25NYW5hZ2VyJiBhdXRoZW50aWNh
dGlvbk1hbmFnZXIoKTsKICAgICBEb3dubG9hZE1hbmFnZXImIGRvd25sb2FkTWFuYWdlcigpOwog
Ci0jaWYgRU5BQkxFKE5FVFdPUktfQ0FDSEUpCiAgICAgTmV0d29ya0NhY2hlOjpDYWNoZSogY2Fj
aGUoKSB7IHJldHVybiBtX2NhY2hlLmdldCgpOyB9Ci0jZW5kaWYKIAogICAgIGJvb2wgY2FuSGFu
ZGxlSFRUUFNTZXJ2ZXJUcnVzdEV2YWx1YXRpb24oKSBjb25zdCB7IHJldHVybiBtX2NhbkhhbmRs
ZUhUVFBTU2VydmVyVHJ1c3RFdmFsdWF0aW9uOyB9CiAKQEAgLTI0OCw5ICsyNDYsNyBAQCBwcml2
YXRlOgogICAgIGJvb2wgbV9jYW5IYW5kbGVIVFRQU1NlcnZlclRydXN0RXZhbHVhdGlvbjsKICAg
ICBTZWNvbmRzIG1fbG9hZFRocm90dGxlTGF0ZW5jeTsKIAotI2lmIEVOQUJMRShORVRXT1JLX0NB
Q0hFKQogICAgIFJlZlB0cjxOZXR3b3JrQ2FjaGU6OkNhY2hlPiBtX2NhY2hlOwotI2VuZGlmCiAK
ICAgICB0eXBlZGVmIEhhc2hNYXA8Y29uc3QgY2hhciosIHN0ZDo6dW5pcXVlX3B0cjxOZXR3b3Jr
UHJvY2Vzc1N1cHBsZW1lbnQ+LCBQdHJIYXNoPGNvbnN0IGNoYXIqPj4gTmV0d29ya1Byb2Nlc3NT
dXBwbGVtZW50TWFwOwogICAgIE5ldHdvcmtQcm9jZXNzU3VwcGxlbWVudE1hcCBtX3N1cHBsZW1l
bnRzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAppbmRleCBkNjhhZTFhMTYwYy4u
Y2ZlODM1ZWEyZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCkBAIC01MCwx
MyArNTAsMTEgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2Rl
KElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICBlbmNvZGVyIDw8IGNhY2hlU3RvcmFn
ZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZTsKICAgICBlbmNvZGVyIDw8IGRpc2tDYWNoZURpcmVj
dG9yeTsKICAgICBlbmNvZGVyIDw8IGRpc2tDYWNoZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZTsK
LSNpZiBFTkFCTEUoTkVUV09SS19DQUNIRSkKICAgICBlbmNvZGVyIDw8IHNob3VsZEVuYWJsZU5l
dHdvcmtDYWNoZTsKICAgICBlbmNvZGVyIDw8IHNob3VsZEVuYWJsZU5ldHdvcmtDYWNoZUVmZmlj
YWN5TG9nZ2luZzsKICNpZiBFTkFCTEUoTkVUV09SS19DQUNIRV9TUEVDVUxBVElWRV9SRVZBTElE
QVRJT04pCiAgICAgZW5jb2RlciA8PCBzaG91bGRFbmFibGVOZXR3b3JrQ2FjaGVTcGVjdWxhdGl2
ZVJldmFsaWRhdGlvbjsKICNlbmRpZgotI2VuZGlmCiAjaWYgUExBVEZPUk0oTUFDKQogICAgIGVu
Y29kZXIgPDwgdWlQcm9jZXNzQ29va2llU3RvcmFnZUlkZW50aWZpZXI7CiAjZW5kaWYKQEAgLTEy
NSw3ICsxMjMsNiBAQCBib29sIE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNv
ZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBOZXR3b3JrUHJvYwogICAgICAgICByZXR1cm4gZmFs
c2U7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQuZGlza0NhY2hlRGlyZWN0b3J5RXh0
ZW5zaW9uSGFuZGxlKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotI2lmIEVOQUJMRShORVRXT1JL
X0NBQ0hFKQogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LnNob3VsZEVuYWJsZU5ldHdv
cmtDYWNoZSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBpZiAoIWRlY29kZXIuZGVjb2Rl
KHJlc3VsdC5zaG91bGRFbmFibGVOZXR3b3JrQ2FjaGVFZmZpY2FjeUxvZ2dpbmcpKQpAQCAtMTM0
LDcgKzEzMSw2IEBAIGJvb2wgTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29k
ZShJUEM6OkRlY29kZXImIGRlY29kZXIsIE5ldHdvcmtQcm9jCiAgICAgaWYgKCFkZWNvZGVyLmRl
Y29kZShyZXN1bHQuc2hvdWxkRW5hYmxlTmV0d29ya0NhY2hlU3BlY3VsYXRpdmVSZXZhbGlkYXRp
b24pKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAjZW5kaWYKLSNlbmRpZgogI2lmIFBMQVRGT1JN
KE1BQykKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC51aVByb2Nlc3NDb29raWVTdG9y
YWdlSWRlbnRpZmllcikpCiAgICAgICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMu
aCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnMuaAppbmRleCBjMmZkYzgxYmZlZi4uMDI5MTcxYjU5OWYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzQ3Jl
YXRpb25QYXJhbWV0ZXJzLmgKQEAgLTYwLDEzICs2MCwxMSBAQCBzdHJ1Y3QgTmV0d29ya1Byb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnMgewogICAgIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBjYWNo
ZVN0b3JhZ2VEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGU7CiAgICAgU3RyaW5nIGRpc2tDYWNoZURp
cmVjdG9yeTsKICAgICBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgZGlza0NhY2hlRGlyZWN0b3J5
RXh0ZW5zaW9uSGFuZGxlOwotI2lmIEVOQUJMRShORVRXT1JLX0NBQ0hFKQogICAgIGJvb2wgc2hv
dWxkRW5hYmxlTmV0d29ya0NhY2hlIHsgZmFsc2UgfTsKICAgICBib29sIHNob3VsZEVuYWJsZU5l
dHdvcmtDYWNoZUVmZmljYWN5TG9nZ2luZyB7IGZhbHNlIH07CiAjaWYgRU5BQkxFKE5FVFdPUktf
Q0FDSEVfU1BFQ1VMQVRJVkVfUkVWQUxJREFUSU9OKQogICAgIGJvb2wgc2hvdWxkRW5hYmxlTmV0
d29ya0NhY2hlU3BlY3VsYXRpdmVSZXZhbGlkYXRpb24geyBmYWxzZSB9OwogI2VuZGlmCi0jZW5k
aWYKICNpZiBQTEFURk9STShNQUMpCiAgICAgVmVjdG9yPHVpbnQ4X3Q+IHVpUHJvY2Vzc0Nvb2tp
ZVN0b3JhZ2VJZGVudGlmaWVyOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAKaW5kZXggMTg3NDI2MDMyZDIu
LjFkMDg3NTk1MjJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtSZXNvdXJjZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwCkBAIC04Niw5ICs4Niw3IEBAIE5ldHdvcmtSZXNv
dXJjZUxvYWRlcjo6TmV0d29ya1Jlc291cmNlTG9hZGVyKGNvbnN0IE5ldHdvcmtSZXNvdXJjZUxv
YWRQYXJhbWV0ZXJzCiAgICAgLCBtX2Nvbm5lY3Rpb24oY29ubmVjdGlvbikKICAgICAsIG1fZGVm
ZXJzTG9hZGluZyhwYXJhbWV0ZXJzLmRlZmVyc0xvYWRpbmcpCiAgICAgLCBtX2J1ZmZlcmluZ1Rp
bWVyKCp0aGlzLCAmTmV0d29ya1Jlc291cmNlTG9hZGVyOjpidWZmZXJpbmdUaW1lckZpcmVkKQot
I2lmIEVOQUJMRShORVRXT1JLX0NBQ0hFKQogICAgICwgbV9jYWNoZShzZXNzaW9uSUQoKS5pc0Vw
aGVtZXJhbCgpID8gbnVsbHB0ciA6IE5ldHdvcmtQcm9jZXNzOjpzaW5nbGV0b24oKS5jYWNoZSgp
KQotI2VuZGlmCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKICAgICAvLyBGSVhN
RTogVGhpcyBpcyBuZWNlc3NhcnkgYmVjYXVzZSBvZiB0aGUgZXhpc3RlbmNlIG9mIEVtcHR5RnJh
bWVMb2FkZXJDbGllbnQgaW4gV2ViQ29yZS4KQEAgLTEyMSw3ICsxMTksNiBAQCBOZXR3b3JrUmVz
b3VyY2VMb2FkZXI6On5OZXR3b3JrUmVzb3VyY2VMb2FkZXIoKQogICAgIEFTU0VSVCghaXNTeW5j
aHJvbm91cygpIHx8ICFtX3N5bmNocm9ub3VzTG9hZERhdGEtPmRlbGF5ZWRSZXBseSk7CiB9CiAK
LSNpZiBFTkFCTEUoTkVUV09SS19DQUNIRSkKIGJvb2wgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpj
YW5Vc2VDYWNoZShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpIGNvbnN0CiB7CiAgICAg
aWYgKCFtX2NhY2hlKQpAQCAtMTQ4LDcgKzE0NSw2IEBAIGJvb2wgTmV0d29ya1Jlc291cmNlTG9h
ZGVyOjpjYW5Vc2VDYWNoZWRSZWRpcmVjdChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3Qp
CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KLSNlbmRpZgogCiBib29sIE5ldHdvcmtSZXNvdXJjZUxv
YWRlcjo6aXNTeW5jaHJvbm91cygpIGNvbnN0CiB7CkBAIC0xNjcsMTggKzE2MywxNSBAQCB2b2lk
IE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6c3RhcnQoKQogICAgIEFTU0VSVCghbV93YXNTdGFydGVk
KTsKICAgICBtX3dhc1N0YXJ0ZWQgPSB0cnVlOwogCi0jaWYgRU5BQkxFKE5FVFdPUktfQ0FDSEUp
CiAgICAgaWYgKGNhblVzZUNhY2hlKG9yaWdpbmFsUmVxdWVzdCgpKSkgewogICAgICAgICBSRUxF
QVNFX0xPR19JRl9BTExPV0VEKCJzdGFydDogQ2hlY2tpbmcgY2FjaGUgZm9yIHJlc291cmNlIChw
YWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0g
JSIgUFJJdTY0ICIsIGlzTWFpblJlc291cmNlID0gJWQsIGlzU3luY2hyb25vdXMgPSAlZCkiLCBt
X3BhcmFtZXRlcnMud2ViUGFnZUlELCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRCwgbV9wYXJhbWV0
ZXJzLmlkZW50aWZpZXIsIGlzTWFpblJlc291cmNlKCksIGlzU3luY2hyb25vdXMoKSk7CiAgICAg
ICAgIHJldHJpZXZlQ2FjaGVFbnRyeShvcmlnaW5hbFJlcXVlc3QoKSk7CiAgICAgICAgIHJldHVy
bjsKICAgICB9Ci0jZW5kaWYKIAogICAgIHN0YXJ0TmV0d29ya0xvYWQob3JpZ2luYWxSZXF1ZXN0
KCkpOwogfQogCi0jaWYgRU5BQkxFKE5FVFdPUktfQ0FDSEUpCiB2b2lkIE5ldHdvcmtSZXNvdXJj
ZUxvYWRlcjo6cmV0cmlldmVDYWNoZUVudHJ5KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVz
dCkKIHsKICAgICBBU1NFUlQoY2FuVXNlQ2FjaGUocmVxdWVzdCkpOwpAQCAtMjEzLDcgKzIwNiw2
IEBAIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpyZXRyaWV2ZUNhY2hlRW50cnkoY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQogICAgICAgICBsb2FkZXItPmRpZFJldHJpZXZlQ2Fj
aGVFbnRyeShXVEZNb3ZlKGVudHJ5KSk7CiAgICAgfSk7CiB9Ci0jZW5kaWYKIAogdm9pZCBOZXR3
b3JrUmVzb3VyY2VMb2FkZXI6OnN0YXJ0TmV0d29ya0xvYWQoY29uc3QgUmVzb3VyY2VSZXF1ZXN0
JiByZXF1ZXN0KQogewpAQCAtMjI0LDEwICsyMTYsOCBAQCB2b2lkIE5ldHdvcmtSZXNvdXJjZUxv
YWRlcjo6c3RhcnROZXR3b3JrTG9hZChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCiAg
ICAgaWYgKGlzU3luY2hyb25vdXMoKSB8fCBtX3BhcmFtZXRlcnMubWF4aW11bUJ1ZmZlcmluZ1Rp
bWUgPiAwX3MpCiAgICAgICAgIG1fYnVmZmVyZWREYXRhID0gU2hhcmVkQnVmZmVyOjpjcmVhdGUo
KTsKIAotI2lmIEVOQUJMRShORVRXT1JLX0NBQ0hFKQogICAgIGlmIChjYW5Vc2VDYWNoZShyZXF1
ZXN0KSkKICAgICAgICAgbV9idWZmZXJlZERhdGFGb3JDYWNoZSA9IFNoYXJlZEJ1ZmZlcjo6Y3Jl
YXRlKCk7Ci0jZW5kaWYKIAogICAgIE5ldHdvcmtMb2FkUGFyYW1ldGVycyBwYXJhbWV0ZXJzID0g
bV9wYXJhbWV0ZXJzOwogICAgIHBhcmFtZXRlcnMuZGVmZXJzTG9hZGluZyA9IG1fZGVmZXJzTG9h
ZGluZzsKQEAgLTMwNiwxMyArMjk2LDExIEBAIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjph
Ym9ydCgpCiAgICAgICAgIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQsIG1fcGFyYW1ldGVycy53ZWJG
cmFtZUlELCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllcik7CiAKICAgICBpZiAobV9uZXR3b3JrTG9h
ZCkgewotI2lmIEVOQUJMRShORVRXT1JLX0NBQ0hFKQogICAgICAgICBpZiAoY2FuVXNlQ2FjaGUo
bV9uZXR3b3JrTG9hZC0+Y3VycmVudFJlcXVlc3QoKSkpIHsKICAgICAgICAgICAgIC8vIFdlIG1p
Z2h0IGFscmVhZHkgaGF2ZSB1c2VkIGRhdGEgZnJvbSB0aGlzIGluY29tcGxldGUgbG9hZC4gRW5z
dXJlIG9sZGVyIHZlcnNpb25zIGRvbid0IHJlbWFpbiBpbiB0aGUgY2FjaGUgYWZ0ZXIgY2FuY2Vs
LgogICAgICAgICAgICAgaWYgKCFtX3Jlc3BvbnNlLmlzTnVsbCgpKQogICAgICAgICAgICAgICAg
IG1fY2FjaGUtPnJlbW92ZShtX25ldHdvcmtMb2FkLT5jdXJyZW50UmVxdWVzdCgpKTsKICAgICAg
ICAgfQotI2VuZGlmCiAgICAgICAgIG1fbmV0d29ya0xvYWQtPmNhbmNlbCgpOwogICAgIH0KIApA
QCAtMzI5LDggKzMxNyw2IEBAIGF1dG8gTmV0d29ya1Jlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZl
UmVzcG9uc2UoUmVzb3VyY2VSZXNwb25zZSYmIHJlY2VpdmVkUmVzcG9uCiAgICAgaWYgKCFpc1N5
bmNocm9ub3VzKCkgJiYgbV9yZXNwb25zZS5pc011bHRpcGFydCgpKQogICAgICAgICBtX2J1ZmZl
cmVkRGF0YSA9IG51bGxwdHI7CiAKLSAgICBib29sIHNob3VsZFNlbmREaWRSZWNlaXZlUmVzcG9u
c2UgPSB0cnVlOwotI2lmIEVOQUJMRShORVRXT1JLX0NBQ0hFKQogICAgIGlmIChtX3Jlc3BvbnNl
LmlzTXVsdGlwYXJ0KCkpCiAgICAgICAgIG1fYnVmZmVyZWREYXRhRm9yQ2FjaGUgPSBudWxscHRy
OwogCkBAIC0zNDQsOCArMzMwLDcgQEAgYXV0byBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmRpZFJl
Y2VpdmVSZXNwb25zZShSZXNvdXJjZVJlc3BvbnNlJiYgcmVjZWl2ZWRSZXNwb24KICAgICAgICAg
fSBlbHNlCiAgICAgICAgICAgICBtX2NhY2hlRW50cnlGb3JWYWxpZGF0aW9uID0gbnVsbHB0cjsK
ICAgICB9Ci0gICAgc2hvdWxkU2VuZERpZFJlY2VpdmVSZXNwb25zZSA9ICFtX2NhY2hlRW50cnlG
b3JWYWxpZGF0aW9uOwotI2VuZGlmCisgICAgYm9vbCBzaG91bGRTZW5kRGlkUmVjZWl2ZVJlc3Bv
bnNlID0gIW1fY2FjaGVFbnRyeUZvclZhbGlkYXRpb247CiAKICAgICBib29sIHNob3VsZFdhaXRD
b250aW51ZURpZFJlY2VpdmVSZXNwb25zZSA9IGlzTWFpblJlc291cmNlKCk7CiAgICAgaWYgKHNo
b3VsZFNlbmREaWRSZWNlaXZlUmVzcG9uc2UpIHsKQEAgLTM1NiwxMCArMzQxLDcgQEAgYXV0byBO
ZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVSZXNwb25zZShSZXNvdXJjZVJlc3BvbnNl
JiYgcmVjZWl2ZWRSZXNwb24KICAgICB9CiAKICAgICAvLyBGb3IgbWFpbiByZXNvdXJjZXMsIHRo
ZSB3ZWIgcHJvY2VzcyBpcyByZXNwb25zaWJsZSBmb3Igc2VuZGluZyBiYWNrIGEgTmV0d29ya1Jl
c291cmNlTG9hZGVyOjpDb250aW51ZURpZFJlY2VpdmVSZXNwb25zZSBtZXNzYWdlLgotICAgIGJv
b2wgc2hvdWxkQ29udGludWVEaWRSZWNlaXZlUmVzcG9uc2UgPSAhc2hvdWxkV2FpdENvbnRpbnVl
RGlkUmVjZWl2ZVJlc3BvbnNlOwotI2lmIEVOQUJMRShORVRXT1JLX0NBQ0hFKQotICAgIHNob3Vs
ZENvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlID0gc2hvdWxkQ29udGludWVEaWRSZWNlaXZlUmVz
cG9uc2UgfHwgbV9jYWNoZUVudHJ5Rm9yVmFsaWRhdGlvbjsKLSNlbmRpZgorICAgIGJvb2wgc2hv
dWxkQ29udGludWVEaWRSZWNlaXZlUmVzcG9uc2UgPSAhc2hvdWxkV2FpdENvbnRpbnVlRGlkUmVj
ZWl2ZVJlc3BvbnNlIHx8IG1fY2FjaGVFbnRyeUZvclZhbGlkYXRpb247CiAKICAgICBpZiAoc2hv
dWxkQ29udGludWVEaWRSZWNlaXZlUmVzcG9uc2UpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfSUZf
QUxMT1dFRCgiZGlkUmVjZWl2ZVJlc3BvbnNlOiBTaG91bGQgbm90IHdhaXQgZm9yIG1lc3NhZ2Ug
ZnJvbSBXZWJDb250ZW50IHByb2Nlc3MgYmVmb3JlIGNvbnRpbnVpbmcgcmVzb3VyY2UgbG9hZCAo
cGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9
ICUiIFBSSXU2NCAiKSIsIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQsIG1fcGFyYW1ldGVycy53ZWJG
cmFtZUlELCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllcik7CkBAIC0zNzcsNyArMzU5LDYgQEAgdm9p
ZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVCdWZmZXIoUmVmPFNoYXJlZEJ1ZmZl
cj4mJiBidWZmZXIsIGludCByZXAKICAgICB9CiAgICAgbV9udW1CeXRlc1JlY2VpdmVkICs9IGJ1
ZmZlci0+c2l6ZSgpOwogCi0jaWYgRU5BQkxFKE5FVFdPUktfQ0FDSEUpCiAgICAgQVNTRVJUKCFt
X2NhY2hlRW50cnlGb3JWYWxpZGF0aW9uKTsKIAogICAgIGlmIChtX2J1ZmZlcmVkRGF0YUZvckNh
Y2hlKSB7CkBAIC0zODgsNyArMzY5LDYgQEAgdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmRp
ZFJlY2VpdmVCdWZmZXIoUmVmPFNoYXJlZEJ1ZmZlcj4mJiBidWZmZXIsIGludCByZXAKICAgICAg
ICAgZWxzZQogICAgICAgICAgICAgbV9idWZmZXJlZERhdGFGb3JDYWNoZSA9IG51bGxwdHI7CiAg
ICAgfQotI2VuZGlmCiAgICAgLy8gRklYTUU6IEF0IGxlYXN0IG9uIE9TIFggWW9zZW1pdGUgd2Ug
YWx3YXlzIGdldCAtMSBmcm9tIHRoZSByZXNvdXJjZSBoYW5kbGUuCiAgICAgdW5zaWduZWQgZW5j
b2RlZERhdGFMZW5ndGggPSByZXBvcnRlZEVuY29kZWREYXRhTGVuZ3RoID49IDAgPyByZXBvcnRl
ZEVuY29kZWREYXRhTGVuZ3RoIDogYnVmZmVyLT5zaXplKCk7CiAKQEAgLTQwNiw3ICszODYsNiBA
QCB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6ZGlkRmluaXNoTG9hZGluZyhjb25zdCBOZXR3
b3JrTG9hZE1ldHJpY3MmIG5ldHdvcmtMbwogewogICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQo
ImRpZEZpbmlzaExvYWRpbmc6IChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBS
SXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIsIGxlbmd0aCA9ICV6ZCkiLCBtX3BhcmFt
ZXRlcnMud2ViUGFnZUlELCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRCwgbV9wYXJhbWV0ZXJzLmlk
ZW50aWZpZXIsIG1fbnVtQnl0ZXNSZWNlaXZlZCk7CiAKLSNpZiBFTkFCTEUoTkVUV09SS19DQUNI
RSkKICAgICBpZiAobV9jYWNoZUVudHJ5Rm9yVmFsaWRhdGlvbikgewogICAgICAgICAvLyAzMDQg
Tm90IE1vZGlmaWVkCiAgICAgICAgIEFTU0VSVChtX3Jlc3BvbnNlLmh0dHBTdGF0dXNDb2RlKCkg
PT0gMzA0KTsKQEAgLTQxNCw3ICszOTMsNiBAQCB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6
ZGlkRmluaXNoTG9hZGluZyhjb25zdCBOZXR3b3JrTG9hZE1ldHJpY3MmIG5ldHdvcmtMbwogICAg
ICAgICBkaWRSZXRyaWV2ZUNhY2hlRW50cnkoV1RGTW92ZShtX2NhY2hlRW50cnlGb3JWYWxpZGF0
aW9uKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0jZW5kaWYKIAogICAgIGlmIChpc1N5bmNo
cm9ub3VzKCkpCiAgICAgICAgIHNlbmRSZXBseVRvU3luY2hyb25vdXNSZXF1ZXN0KCptX3N5bmNo
cm9ub3VzTG9hZERhdGEsIG1fYnVmZmVyZWREYXRhLmdldCgpKTsKQEAgLTQyNiw5ICs0MDQsNyBA
QCB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6ZGlkRmluaXNoTG9hZGluZyhjb25zdCBOZXR3
b3JrTG9hZE1ldHJpY3MmIG5ldHdvcmtMbwogICAgICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJSZXNv
dXJjZUxvYWRlcjo6RGlkRmluaXNoUmVzb3VyY2VMb2FkKG5ldHdvcmtMb2FkTWV0cmljcykpOwog
ICAgIH0KIAotI2lmIEVOQUJMRShORVRXT1JLX0NBQ0hFKQogICAgIHRyeVN0b3JlQXNDYWNoZUVu
dHJ5KCk7Ci0jZW5kaWYKIAogICAgIGNsZWFudXAoKTsKIH0KQEAgLTQzOSw5ICs0MTUsNyBAQCB2
b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6ZGlkRmFpbExvYWRpbmcoY29uc3QgUmVzb3VyY2VF
cnJvciYgZXJyb3IpCiAKICAgICBBU1NFUlQoIWVycm9yLmlzTnVsbCgpKTsKIAotI2lmIEVOQUJM
RShORVRXT1JLX0NBQ0hFKQogICAgIG1fY2FjaGVFbnRyeUZvclZhbGlkYXRpb24gPSBudWxscHRy
OwotI2VuZGlmCiAKICAgICBpZiAoaXNTeW5jaHJvbm91cygpKSB7CiAgICAgICAgIG1fc3luY2hy
b25vdXNMb2FkRGF0YS0+ZXJyb3IgPSBlcnJvcjsKQEAgLTQ3MSwxMiArNDQ1LDggQEAgdm9pZCBO
ZXR3b3JrUmVzb3VyY2VMb2FkZXI6OndpbGxTZW5kUmVkaXJlY3RlZFJlcXVlc3QoUmVzb3VyY2VS
ZXF1ZXN0JiYgcmVxdWVzdCwKICAgICB9CiAgICAgc2VuZChNZXNzYWdlczo6V2ViUmVzb3VyY2VM
b2FkZXI6OldpbGxTZW5kUmVxdWVzdChyZWRpcmVjdFJlcXVlc3QsIHJlZGlyZWN0UmVzcG9uc2Up
KTsKIAotI2lmIEVOQUJMRShORVRXT1JLX0NBQ0hFKQogICAgIGlmIChjYW5Vc2VDYWNoZWRSZWRp
cmVjdChyZXF1ZXN0KSkKICAgICAgICAgbV9jYWNoZS0+c3RvcmVSZWRpcmVjdChyZXF1ZXN0LCBy
ZWRpcmVjdFJlc3BvbnNlLCByZWRpcmVjdFJlcXVlc3QpOwotI2Vsc2UKLSAgICBVTlVTRURfUEFS
QU0ocmVxdWVzdCk7Ci0jZW5kaWYKIH0KIAogdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmNv
bnRpbnVlV2lsbFNlbmRSZXF1ZXN0KFJlc291cmNlUmVxdWVzdCYmIG5ld1JlcXVlc3QpCkBAIC00
ODcsNyArNDU3LDYgQEAgdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmNvbnRpbnVlV2lsbFNl
bmRSZXF1ZXN0KFJlc291cmNlUmVxdWVzdCYmIG5ld1JlcXVlc3QKICAgICBuZXdSZXF1ZXN0LnNl
dENhY2hlUG9saWN5KG9yaWdpbmFsUmVxdWVzdCgpLmNhY2hlUG9saWN5KCkpOwogICAgIG5ld1Jl
cXVlc3Quc2V0Q2FjaGVQYXJ0aXRpb24ob3JpZ2luYWxSZXF1ZXN0KCkuY2FjaGVQYXJ0aXRpb24o
KSk7CiAKLSNpZiBFTkFCTEUoTkVUV09SS19DQUNIRSkKICAgICBpZiAobV9pc1dhaXRpbmdDb250
aW51ZVdpbGxTZW5kUmVxdWVzdEZvckNhY2hlZFJlZGlyZWN0KSB7CiAgICAgICAgIG1faXNXYWl0
aW5nQ29udGludWVXaWxsU2VuZFJlcXVlc3RGb3JDYWNoZWRSZWRpcmVjdCA9IGZhbHNlOwogCkBA
IC01MDAsNyArNDY5LDYgQEAgdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmNvbnRpbnVlV2ls
bFNlbmRSZXF1ZXN0KFJlc291cmNlUmVxdWVzdCYmIG5ld1JlcXVlc3QKIAogICAgICAgICByZXR1
cm47CiAgICAgfQotI2VuZGlmCiAKICAgICBpZiAobV9uZXR3b3JrTG9hZCkKICAgICAgICAgbV9u
ZXR3b3JrTG9hZC0+Y29udGludWVXaWxsU2VuZFJlcXVlc3QoV1RGTW92ZShuZXdSZXF1ZXN0KSk7
CkBAIC01NTQsNyArNTIyLDYgQEAgdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OnNlbmRCdWZm
ZXIoU2hhcmVkQnVmZmVyJiBidWZmZXIsIHNpemVfdCBlbmNvZGVkRGF0YUwKICAgICBzZW5kKE1l
c3NhZ2VzOjpXZWJSZXNvdXJjZUxvYWRlcjo6RGlkUmVjZWl2ZURhdGEoZGF0YVJlZmVyZW5jZSwg
ZW5jb2RlZERhdGFMZW5ndGgpKTsKIH0KIAotI2lmIEVOQUJMRShORVRXT1JLX0NBQ0hFKQogdm9p
ZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OnRyeVN0b3JlQXNDYWNoZUVudHJ5KCkKIHsKICAgICBp
ZiAoIWNhblVzZUNhY2hlKG1fbmV0d29ya0xvYWQtPmN1cnJlbnRSZXF1ZXN0KCkpKQpAQCAtNjY4
LDcgKzYzNSw2IEBAIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpkaXNwYXRjaFdpbGxTZW5k
UmVxdWVzdEZvckNhY2hlRW50cnkoc3RkOjp1bmlxdWVfcHRyCiAgICAgc2VuZChNZXNzYWdlczo6
V2ViUmVzb3VyY2VMb2FkZXI6OldpbGxTZW5kUmVxdWVzdCgqZW50cnktPnJlZGlyZWN0UmVxdWVz
dCgpLCBlbnRyeS0+cmVzcG9uc2UoKSkpOwogICAgIG1faXNXYWl0aW5nQ29udGludWVXaWxsU2Vu
ZFJlcXVlc3RGb3JDYWNoZWRSZWRpcmVjdCA9IHRydWU7CiB9Ci0jZW5kaWYKIAogSVBDOjpDb25u
ZWN0aW9uKiBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6Om1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uKCkK
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291
cmNlTG9hZGVyLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJj
ZUxvYWRlci5oCmluZGV4IGRiZTUxOWM0MjdhLi4xOTYzYTJhZTUwYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuaAorKysgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5oCkBAIC0x
MDksNyArMTA5LDYgQEAgcHJpdmF0ZToKICAgICBJUEM6OkNvbm5lY3Rpb24qIG1lc3NhZ2VTZW5k
ZXJDb25uZWN0aW9uKCkgb3ZlcnJpZGU7CiAgICAgdWludDY0X3QgbWVzc2FnZVNlbmRlckRlc3Rp
bmF0aW9uSUQoKSBvdmVycmlkZSB7IHJldHVybiBtX3BhcmFtZXRlcnMuaWRlbnRpZmllcjsgfQog
Ci0jaWYgRU5BQkxFKE5FVFdPUktfQ0FDSEUpCiAgICAgYm9vbCBjYW5Vc2VDYWNoZShjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKSBjb25zdDsKICAgICBib29sIGNhblVzZUNhY2hlZFJl
ZGlyZWN0KGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYpIGNvbnN0OwogCkBAIC0xMTks
NyArMTE4LDYgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNlbmRSZXN1bHRGb3JDYWNoZUVudHJ5KHN0
ZDo6dW5pcXVlX3B0cjxOZXR3b3JrQ2FjaGU6OkVudHJ5Pik7CiAgICAgdm9pZCB2YWxpZGF0ZUNh
Y2hlRW50cnkoc3RkOjp1bmlxdWVfcHRyPE5ldHdvcmtDYWNoZTo6RW50cnk+KTsKICAgICB2b2lk
IGRpc3BhdGNoV2lsbFNlbmRSZXF1ZXN0Rm9yQ2FjaGVFbnRyeShzdGQ6OnVuaXF1ZV9wdHI8TmV0
d29ya0NhY2hlOjpFbnRyeT4pOwotI2VuZGlmCiAKICAgICB2b2lkIHN0YXJ0TmV0d29ya0xvYWQo
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jik7CiAgICAgdm9pZCBjb250aW51ZURpZFJl
Y2VpdmVSZXNwb25zZSgpOwpAQCAtMTU5LDEyICsxNTcsMTAgQEAgcHJpdmF0ZToKICAgICB1bnNp
Z25lZCBtX3JldHJpZXZlZERlcml2ZWREYXRhQ291bnQgeyAwIH07CiAKICAgICBXZWJDb3JlOjpU
aW1lciBtX2J1ZmZlcmluZ1RpbWVyOwotI2lmIEVOQUJMRShORVRXT1JLX0NBQ0hFKQogICAgIFJl
ZlB0cjxOZXR3b3JrQ2FjaGU6OkNhY2hlPiBtX2NhY2hlOwogICAgIFJlZlB0cjxXZWJDb3JlOjpT
aGFyZWRCdWZmZXI+IG1fYnVmZmVyZWREYXRhRm9yQ2FjaGU7CiAgICAgc3RkOjp1bmlxdWVfcHRy
PE5ldHdvcmtDYWNoZTo6RW50cnk+IG1fY2FjaGVFbnRyeUZvclZhbGlkYXRpb247CiAgICAgYm9v
bCBtX2lzV2FpdGluZ0NvbnRpbnVlV2lsbFNlbmRSZXF1ZXN0Rm9yQ2FjaGVkUmVkaXJlY3QgeyBm
YWxzZSB9OwotI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmNwcAppbmRleCA3
OWFiYjRmMDE3OS4uNTcwNGY4NTY3NDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5jcHAKQEAgLTI2LDggKzI2LDYgQEAKICNpbmNs
dWRlICJjb25maWcuaCIKICNpbmNsdWRlICJOZXR3b3JrQ2FjaGUuaCIKIAotI2lmIEVOQUJMRShO
RVRXT1JLX0NBQ0hFKQotCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIk5ldHdvcmtD
YWNoZVNwZWN1bGF0aXZlTG9hZE1hbmFnZXIuaCIKICNpbmNsdWRlICJOZXR3b3JrQ2FjaGVTdGF0
aXN0aWNzLmgiCkBAIC02NDgsNSArNjQ2LDMgQEAgdm9pZCBDYWNoZTo6c3RvcmVEYXRhKGNvbnN0
IERhdGFLZXkmIGRhdGFLZXksIGNvbnN0IHVpbnQ4X3QqIGRhdGEsIHNpemVfdCBzaXplKQogCiB9
CiB9Ci0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9j
YWNoZS9OZXR3b3JrQ2FjaGUuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUv
TmV0d29ya0NhY2hlLmgKaW5kZXggYzAzZWIzMWJiYzYuLjY1YTFiN2JlYjU2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmgKQEAgLTI1
LDggKzI1LDYgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpZiBFTkFCTEUoTkVUV09SS19DQUNIRSkK
LQogI2luY2x1ZGUgIk5ldHdvcmtDYWNoZUVudHJ5LmgiCiAjaW5jbHVkZSAiTmV0d29ya0NhY2hl
U3RvcmFnZS5oIgogI2luY2x1ZGUgIlNoYXJlYWJsZVJlc291cmNlLmgiCkBAIC0xNTksNCArMTU3
LDMgQEAgcHJpdmF0ZToKIAogfQogfQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUJsb2JTdG9yYWdlLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlQmxvYlN0b3JhZ2UuY3Bw
CmluZGV4IDI2N2NhZjZhMDg4Li5mNmIzNjRmYTllZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVCbG9iU3RvcmFnZS5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVCbG9iU3RvcmFn
ZS5jcHAKQEAgLTI2LDggKzI2LDYgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJO
ZXR3b3JrQ2FjaGVCbG9iU3RvcmFnZS5oIgogCi0jaWYgRU5BQkxFKE5FVFdPUktfQ0FDSEUpCi0K
ICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTmV0d29ya0NhY2hlRmlsZVN5c3RlbS5o
IgogI2luY2x1ZGUgPFdlYkNvcmUvRmlsZVN5c3RlbS5oPgpAQCAtMTQ5LDUgKzE0NywzIEBAIHVu
c2lnbmVkIEJsb2JTdG9yYWdlOjpzaGFyZUNvdW50KGNvbnN0IFN0cmluZyYgcGF0aCkKIAogfQog
fQotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2Fj
aGUvTmV0d29ya0NhY2hlQmxvYlN0b3JhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvY2FjaGUvTmV0d29ya0NhY2hlQmxvYlN0b3JhZ2UuaAppbmRleCBhZGYwYjA4NWUwMy4uOTYx
M2FjYzFhZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUv
TmV0d29ya0NhY2hlQmxvYlN0b3JhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL2NhY2hlL05ldHdvcmtDYWNoZUJsb2JTdG9yYWdlLmgKQEAgLTI2LDggKzI2LDYgQEAKICNp
Zm5kZWYgTmV0d29ya0NhY2hlQmxvYlN0b3JhZ2VfaAogI2RlZmluZSBOZXR3b3JrQ2FjaGVCbG9i
U3RvcmFnZV9oCiAKLSNpZiBFTkFCTEUoTkVUV09SS19DQUNIRSkKLQogI2luY2x1ZGUgIk5ldHdv
cmtDYWNoZURhdGEuaCIKICNpbmNsdWRlICJOZXR3b3JrQ2FjaGVLZXkuaCIKICNpbmNsdWRlIDx3
dGYvU0hBMS5oPgpAQCAtNzIsNCArNzAsMyBAQCBwcml2YXRlOgogfQogCiAjZW5kaWYKLSNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3Jr
Q2FjaGVDb2RlcnMuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3
b3JrQ2FjaGVDb2RlcnMuY3BwCmluZGV4IDg0MjNiMzFlNmNmLi43ODliNGI0N2ZmMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVDb2Rl
cnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0Nh
Y2hlQ29kZXJzLmNwcApAQCAtMjYsOCArMjYsNiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2lu
Y2x1ZGUgIk5ldHdvcmtDYWNoZUNvZGVycy5oIgogCi0jaWYgRU5BQkxFKE5FVFdPUktfQ0FDSEUp
Ci0KIG5hbWVzcGFjZSBXVEYgewogbmFtZXNwYWNlIFBlcnNpc3RlbmNlIHsKIApAQCAtNjEsNSAr
NTksMyBAQCBib29sIENvZGVyPFdlYkNvcmU6OkhUVFBIZWFkZXJNYXA+OjpkZWNvZGUoRGVjb2Rl
ciYgZGVjb2RlciwgV2ViQ29yZTo6SFRUUEhlYWRlcgogCiB9CiB9Ci0KLSNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVDb2Rl
cnMuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlQ29k
ZXJzLmgKaW5kZXggMzZlYjI2Y2VmNzguLjgzMTA2MjY1MTVjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUNvZGVycy5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlQ29kZXJzLmgKQEAg
LTI1LDggKzI1LDYgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpZiBFTkFCTEUoTkVUV09SS19DQUNI
RSkKLQogI2luY2x1ZGUgPFdlYkNvcmUvQ2VydGlmaWNhdGVJbmZvLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9IVFRQSGVhZGVyTWFwLmg+CiAjaW5jbHVkZSA8dXRpbGl0eT4KQEAgLTU0LDQgKzUyLDMg
QEAgdGVtcGxhdGU8PiBzdHJ1Y3QgQ29kZXI8V2ViQ29yZTo6SFRUUEhlYWRlck1hcD4gewogCiB9
CiB9Ci0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2Fj
aGUvTmV0d29ya0NhY2hlQ29kZXJzQ29jb2EuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVDb2RlcnNDb2NvYS5jcHAKaW5kZXggNWRlNTA5NWQzYWEu
LmM2NmNjM2IzOTg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2Nh
Y2hlL05ldHdvcmtDYWNoZUNvZGVyc0NvY29hLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUNvZGVyc0NvY29hLmNwcApAQCAtMjYsOCArMjYs
NiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIk5ldHdvcmtDYWNoZUNvZGVycy5o
IgogCi0jaWYgRU5BQkxFKE5FVFdPUktfQ0FDSEUpCi0KICNpZiBQTEFURk9STShDT0NPQSkKICNp
bmNsdWRlIDxTZWN1cml0eS9TZWNDZXJ0aWZpY2F0ZS5oPgogI2luY2x1ZGUgPFNlY3VyaXR5L1Nl
Y1RydXN0Lmg+CkBAIC0xOTAsNSArMTg4LDMgQEAgYm9vbCBDb2RlcjxXZWJDb3JlOjpDZXJ0aWZp
Y2F0ZUluZm8+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgV2ViQ29yZTo6Q2VydGlmaWMKIAog
fQogfQotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
Y2FjaGUvTmV0d29ya0NhY2hlQ29kZXJzU291cC5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUNvZGVyc1NvdXAuY3BwCmluZGV4IDBjZWY2YWUwM2Rl
Li43NzgxZmMwNzkxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9j
YWNoZS9OZXR3b3JrQ2FjaGVDb2RlcnNTb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUNvZGVyc1NvdXAuY3BwCkBAIC0yNiw4ICsyNiw2
IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiTmV0d29ya0NhY2hlQ29kZXJzLmgi
CiAKLSNpZiBFTkFCTEUoTkVUV09SS19DQUNIRSkKLQogbmFtZXNwYWNlIFdURiB7CiBuYW1lc3Bh
Y2UgUGVyc2lzdGVuY2UgewogCkBAIC05MCw1ICs4OCwzIEBAIGJvb2wgQ29kZXI8V2ViQ29yZTo6
Q2VydGlmaWNhdGVJbmZvPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFdlYkNvcmU6OkNlcnRp
ZmljCiAKIH0KIH0KLQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZURhdGEuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVEYXRhLmNwcAppbmRleCAzMWFlNDhmZTVhZC4uOGFj
Nzk3Zjc4YTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUv
TmV0d29ya0NhY2hlRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9j
YWNoZS9OZXR3b3JrQ2FjaGVEYXRhLmNwcApAQCAtMjYsOCArMjYsNiBAQAogI2luY2x1ZGUgImNv
bmZpZy5oIgogI2luY2x1ZGUgIk5ldHdvcmtDYWNoZURhdGEuaCIKIAotI2lmIEVOQUJMRShORVRX
T1JLX0NBQ0hFKQotCiAjaW5jbHVkZSA8V2ViQ29yZS9GaWxlU3lzdGVtLmg+CiAjaW5jbHVkZSA8
ZmNudGwuaD4KICNpbmNsdWRlIDxzeXMvbW1hbi5oPgpAQCAtMTU5LDUgKzE1NywzIEBAIHN0ZDo6
b3B0aW9uYWw8U2FsdD4gcmVhZE9yTWFrZVNhbHQoY29uc3QgU3RyaW5nJiBwYXRoKQogCiB9IC8v
IG5hbWVzcGFjZSBOZXR3b3JrQ2FjaGUKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAotCi0jZW5kaWYg
Ly8gI2lmIEVOQUJMRShORVRXT1JLX0NBQ0hFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVEYXRhLmggYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZURhdGEuaAppbmRleCA2MDBiNWU0NTgwMS4u
ZWNmNmQ5OGFmNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2Fj
aGUvTmV0d29ya0NhY2hlRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
Y2FjaGUvTmV0d29ya0NhY2hlRGF0YS5oCkBAIC0yNiw4ICsyNiw2IEBACiAjaWZuZGVmIE5ldHdv
cmtDYWNoZURhdGFfaAogI2RlZmluZSBOZXR3b3JrQ2FjaGVEYXRhX2gKIAotI2lmIEVOQUJMRShO
RVRXT1JLX0NBQ0hFKQotCiAjaW5jbHVkZSA8d3RmL0Z1bmN0aW9uRGlzcGF0Y2hlci5oPgogI2lu
Y2x1ZGUgPHd0Zi9TSEExLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZFNhZmVSZWZDb3VudGVkLmg+
CkBAIC0xMTIsNCArMTEwLDMgQEAgU0hBMTo6RGlnZXN0IGNvbXB1dGVTSEExKGNvbnN0IERhdGEm
LCBjb25zdCBTYWx0Jik7CiB9CiAKICNlbmRpZgotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZURhdGFDb2NvYS5tbSBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlRGF0YUNvY29hLm1t
CmluZGV4IDNkOTdjM2I5ZTM5Li4xZjNiNGI5NmJhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVEYXRhQ29jb2EubW0KKysrIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVEYXRhQ29jb2EubW0K
QEAgLTI2LDggKzI2LDYgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJOZXR3b3Jr
Q2FjaGVEYXRhLmgiCiAKLSNpZiBFTkFCTEUoTkVUV09SS19DQUNIRSkKLQogI2luY2x1ZGUgIlNo
YXJlZE1lbW9yeS5oIgogI2luY2x1ZGUgPGRpc3BhdGNoL2Rpc3BhdGNoLmg+CiAjaW5jbHVkZSA8
c3lzL21tYW4uaD4KQEAgLTExNCw1ICsxMTIsMyBAQCBSZWZQdHI8U2hhcmVkTWVtb3J5PiBEYXRh
Ojp0cnlDcmVhdGVTaGFyZWRNZW1vcnkoKSBjb25zdAogCiB9CiB9Ci0KLSNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVEYXRh
U291cC5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNo
ZURhdGFTb3VwLmNwcAppbmRleCAyMWI1OGZhN2U2OS4uM2FlOGE2ZmE5MGMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlRGF0YVNvdXAu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hl
RGF0YVNvdXAuY3BwCkBAIC0yNiw4ICsyNiw2IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5j
bHVkZSAiTmV0d29ya0NhY2hlRGF0YS5oIgogCi0jaWYgRU5BQkxFKE5FVFdPUktfQ0FDSEUpCi0K
ICNpbmNsdWRlICJTaGFyZWRNZW1vcnkuaCIKICNpbmNsdWRlIDxmY250bC5oPgogI2luY2x1ZGUg
PHN5cy9tbWFuLmg+CkBAIC0xMzgsNSArMTM2LDMgQEAgUmVmUHRyPFNoYXJlZE1lbW9yeT4gRGF0
YTo6dHJ5Q3JlYXRlU2hhcmVkTWVtb3J5KCkgY29uc3QKIAogfSAvLyBuYW1lc3BhY2UgTmV0d29y
a0NhY2hlCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUVudHJ5LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlRW50cnkuY3BwCmlu
ZGV4IDIzYTZkN2ExNDZkLi43MmRiNjE4MmUzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVFbnRyeS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVFbnRyeS5jcHAKQEAgLTMzLDgg
KzMzLDYgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1NoYXJlZEJ1ZmZlci5oPgogI2luY2x1ZGUgPHd0
Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KIAotI2lmIEVOQUJMRShORVRXT1JLX0NBQ0hFKQotCiBu
YW1lc3BhY2UgV2ViS2l0IHsKIG5hbWVzcGFjZSBOZXR3b3JrQ2FjaGUgewogCkBAIC0yNDQsNSAr
MjQyLDMgQEAgdm9pZCBFbnRyeTo6YXNKU09OKFN0cmluZ0J1aWxkZXImIGpzb24sIGNvbnN0IFN0
b3JhZ2U6OlJlY29yZEluZm8mIGluZm8pIGNvbnN0CiAKIH0KIH0KLQotI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUVudHJ5
LmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUVudHJ5
LmgKaW5kZXggYzAzOTEwODk0ZjAuLjgyZWQ4ODk5MGEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUVudHJ5LmgKKysrIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVFbnRyeS5oCkBAIC0yNiw4
ICsyNiw2IEBACiAjaWZuZGVmIE5ldHdvcmtDYWNoZUVudHJ5X2gKICNkZWZpbmUgTmV0d29ya0Nh
Y2hlRW50cnlfaAogCi0jaWYgRU5BQkxFKE5FVFdPUktfQ0FDSEUpCi0KICNpbmNsdWRlICJOZXR3
b3JrQ2FjaGVTdG9yYWdlLmgiCiAjaW5jbHVkZSAiU2hhcmVhYmxlUmVzb3VyY2UuaCIKICNpbmNs
dWRlIDxXZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5oPgpAQCAtOTYsNCArOTQsMyBAQCBwcml2YXRl
OgogfQogCiAjZW5kaWYKLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVGaWxlU3lzdGVtLmNwcCBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlRmlsZVN5c3RlbS5jcHAKaW5kZXggNTJh
YzU2Njk2Y2EuLjgyZDczNTUxODk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUZpbGVTeXN0ZW0uY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlRmlsZVN5c3RlbS5jcHAKQEAgLTI2
LDggKzI2LDYgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJOZXR3b3JrQ2FjaGVG
aWxlU3lzdGVtLmgiCiAKLSNpZiBFTkFCTEUoTkVUV09SS19DQUNIRSkKLQogI2luY2x1ZGUgIkxv
Z2dpbmcuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0ZpbGVTeXN0ZW0uaD4KICNpbmNsdWRlIDxkaXJl
bnQuaD4KQEAgLTE2Niw1ICsxNjQsMyBAQCBib29sIGNhblVzZVNoYXJlZE1lbW9yeUZvclBhdGgo
Y29uc3QgU3RyaW5nJiBwYXRoKQogCiB9CiB9Ci0KLSNlbmRpZiAvLyBFTkFCTEUoTkVUV09SS19D
QUNIRSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0
d29ya0NhY2hlRmlsZVN5c3RlbS5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNo
ZS9OZXR3b3JrQ2FjaGVGaWxlU3lzdGVtLmgKaW5kZXggNDUwM2ZlZmZiOWYuLjEzZTk2Y2Y5YTVi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtD
YWNoZUZpbGVTeXN0ZW0uaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hl
L05ldHdvcmtDYWNoZUZpbGVTeXN0ZW0uaApAQCAtMjUsOCArMjUsNiBAQAogCiAjcHJhZ21hIG9u
Y2UKIAotI2lmIEVOQUJMRShORVRXT1JLX0NBQ0hFKQotCiAjaW5jbHVkZSA8V2ViQ29yZS9GaWxl
U3lzdGVtLmg+CiAjaW5jbHVkZSA8Y2hyb25vPgogCkBAIC00OSw1ICs0NywzIEBAIGJvb2wgY2Fu
VXNlU2hhcmVkTWVtb3J5Rm9yUGF0aChjb25zdCBTdHJpbmcmIHBhdGgpOwogCiB9CiB9Ci0KLSNl
bmRpZiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0
d29ya0NhY2hlSU9DaGFubmVsLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hl
L05ldHdvcmtDYWNoZUlPQ2hhbm5lbC5oCmluZGV4IDIwNGNlZmQ0ZDA3Li5iMTM3ZmU5ODJmYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2Fj
aGVJT0NoYW5uZWwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05l
dHdvcmtDYWNoZUlPQ2hhbm5lbC5oCkBAIC0yNiw4ICsyNiw2IEBACiAjaWZuZGVmIE5ldHdvcmtD
YWNoZUlPQ2hhbm5lbF9oCiAjZGVmaW5lIE5ldHdvcmtDYWNoZUlPQ2hhbm5lbF9oCiAKLSNpZiBF
TkFCTEUoTkVUV09SS19DQUNIRSkKLQogI2luY2x1ZGUgIk5ldHdvcmtDYWNoZURhdGEuaCIKICNp
bmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkU2FmZVJlZkNvdW50
ZWQuaD4KQEAgLTg0LDQgKzgyLDMgQEAgcHJpdmF0ZToKIH0KIAogI2VuZGlmCi0jZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hl
SU9DaGFubmVsQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05l
dHdvcmtDYWNoZUlPQ2hhbm5lbENvY29hLm1tCmluZGV4IGU5NzExYmYyNDQwLi5lZmQ3Nzk5ZGEy
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3Jr
Q2FjaGVJT0NoYW5uZWxDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L2NhY2hlL05ldHdvcmtDYWNoZUlPQ2hhbm5lbENvY29hLm1tCkBAIC0yNiw4ICsyNiw2IEBACiAj
aW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiTmV0d29ya0NhY2hlSU9DaGFubmVsLmgiCiAK
LSNpZiBFTkFCTEUoTkVUV09SS19DQUNIRSkKLQogI2luY2x1ZGUgIk5ldHdvcmtDYWNoZUZpbGVT
eXN0ZW0uaCIKICNpbmNsdWRlIDxkaXNwYXRjaC9kaXNwYXRjaC5oPgogI2luY2x1ZGUgPG1hY2gv
dm1fcGFyYW0uaD4KQEAgLTEyMiw1ICsxMjAsMyBAQCB2b2lkIElPQ2hhbm5lbDo6d3JpdGUoc2l6
ZV90IG9mZnNldCwgY29uc3QgRGF0YSYgZGF0YSwgV29ya1F1ZXVlKiBxdWV1ZSwgRnVuY3Rpbwog
CiB9CiB9Ci0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9jYWNoZS9OZXR3b3JrQ2FjaGVJT0NoYW5uZWxTb3VwLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlSU9DaGFubmVsU291cC5jcHAKaW5kZXggMGUx
OWVhYTRkYjQuLjAxNjEyMDgwYzc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUlPQ2hhbm5lbFNvdXAuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlSU9DaGFubmVsU291cC5jcHAK
QEAgLTI2LDggKzI2LDYgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJOZXR3b3Jr
Q2FjaGVJT0NoYW5uZWwuaCIKIAotI2lmIEVOQUJMRShORVRXT1JLX0NBQ0hFKQotCiAjaW5jbHVk
ZSAiTmV0d29ya0NhY2hlRmlsZVN5c3RlbS5oIgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+
CiAjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KQEAgLTI4Miw1ICsyODAsMyBAQCB2b2lkIElPQ2hh
bm5lbDo6d3JpdGUoc2l6ZV90IG9mZnNldCwgY29uc3QgRGF0YSYgZGF0YSwgV29ya1F1ZXVlKiBx
dWV1ZSwgRnVuY3RpbwogCiB9IC8vIG5hbWVzcGFjZSBOZXR3b3JrQ2FjaGUKIH0gLy8gbmFtZXNw
YWNlIFdlYktpdAotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlS2V5LmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlS2V5LmNwcAppbmRleCA1MDdlYzFmMWIwYy4uM2M0OTkx
Y2M3NTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0
d29ya0NhY2hlS2V5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hl
L05ldHdvcmtDYWNoZUtleS5jcHAKQEAgLTI2LDggKzI2LDYgQEAKICNpbmNsdWRlICJjb25maWcu
aCIKICNpbmNsdWRlICJOZXR3b3JrQ2FjaGVLZXkuaCIKIAotI2lmIEVOQUJMRShORVRXT1JLX0NB
Q0hFKQotCiAjaW5jbHVkZSAiTmV0d29ya0NhY2hlQ29kZXJzLmgiCiAjaW5jbHVkZSA8d3RmL0FT
Q0lJQ1R5cGUuaD4KICNpbmNsdWRlIDx3dGYvcGVyc2lzdGVuY2UvUGVyc2lzdGVudERlY29kZXIu
aD4KQEAgLTE4Miw1ICsxODAsMyBAQCBib29sIEtleTo6ZGVjb2RlKFdURjo6UGVyc2lzdGVuY2U6
OkRlY29kZXImIGRlY29kZXIsIEtleSYga2V5KQogCiB9CiB9Ci0KLSNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVLZXkuaCBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlS2V5LmgKaW5k
ZXggN2RlZDk0N2ZhOTIuLjI5MTViMjE0YjMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUtleS5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlS2V5LmgKQEAgLTI2LDggKzI2LDYgQEAK
ICNpZm5kZWYgTmV0d29ya0NhY2hlS2V5X2gKICNkZWZpbmUgTmV0d29ya0NhY2hlS2V5X2gKIAot
I2lmIEVOQUJMRShORVRXT1JLX0NBQ0hFKQotCiAjaW5jbHVkZSAiTmV0d29ya0NhY2hlRGF0YS5o
IgogI2luY2x1ZGUgPHd0Zi9TSEExLmg+CiAjaW5jbHVkZSA8d3RmL3BlcnNpc3RlbmNlL1BlcnNp
c3RlbnRDb2Rlci5oPgpAQCAtMTM4LDQgKzEzNiwzIEBAIHRlbXBsYXRlPD4gc3RydWN0IEhhc2hU
cmFpdHM8V2ViS2l0OjpOZXR3b3JrQ2FjaGU6OktleT4gOiBTaW1wbGVDbGFzc0hhc2hUcmFpdHM8
CiB9IC8vIG5hbWVzcGFjZSBXVEYKIAogI2VuZGlmCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlU3RhdGlzdGljcy5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZVN0YXRpc3Rp
Y3MuY3BwCmluZGV4IDY5ZDI1YmFiNGI2Li42OTMzNDE3ZmQ4YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTdGF0aXN0aWNzLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZVN0YXRp
c3RpY3MuY3BwCkBAIC0yNSw3ICsyNSw2IEBACiAKICNpbmNsdWRlICJjb25maWcuaCIKIAotI2lm
IEVOQUJMRShORVRXT1JLX0NBQ0hFKQogI2luY2x1ZGUgIk5ldHdvcmtDYWNoZVN0YXRpc3RpY3Mu
aCIKIAogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKQEAgLTQ1Miw1ICs0NTEsMyBAQCB2b2lkIFN0YXRp
c3RpY3M6OmFkZFN0b3JlRGVjaXNpb25zVG9EYXRhYmFzZShjb25zdCBIYXNoTWFwPFN0cmluZywg
TmV0d29ya0NhY2hlOgogCiB9CiB9Ci0KLSNlbmRpZiAvLyBFTkFCTEUoTkVUV09SS19DQUNIRSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0Nh
Y2hlU3RhdGlzdGljcy5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3
b3JrQ2FjaGVTdGF0aXN0aWNzLmgKaW5kZXggNWM1MjdmNzczYzAuLjc3NzFiZmY0MzU0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZVN0
YXRpc3RpY3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdv
cmtDYWNoZVN0YXRpc3RpY3MuaApAQCAtMjYsOCArMjYsNiBAQAogI2lmbmRlZiBOZXR3b3JrQ2Fj
aGVTdGF0aXN0aWNzX2gKICNkZWZpbmUgTmV0d29ya0NhY2hlU3RhdGlzdGljc19oCiAKLSNpZiBF
TkFCTEUoTkVUV09SS19DQUNIRSkKLQogI2luY2x1ZGUgIk5ldHdvcmtDYWNoZS5oIgogI2luY2x1
ZGUgIk5ldHdvcmtDYWNoZUtleS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvU1FMaXRlRGF0YWJhc2Uu
aD4KQEAgLTkyLDYgKzkwLDQgQEAgcHJpdmF0ZToKIH0KIH0KIAotI2VuZGlmIC8vIEVOQUJMRShO
RVRXT1JLX0NBQ0hFKQotCiAjZW5kaWYgLy8gTmV0d29ya0NhY2hlU3RhdGlzdGljc19oCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZVN0
b3JhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2Fj
aGVTdG9yYWdlLmNwcAppbmRleCBjMWIxZWU1MzY4ZS4uZTRhZGIxOWJjOGMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlU3RvcmFnZS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVT
dG9yYWdlLmNwcApAQCAtMjYsOCArMjYsNiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1
ZGUgIk5ldHdvcmtDYWNoZVN0b3JhZ2UuaCIKIAotI2lmIEVOQUJMRShORVRXT1JLX0NBQ0hFKQot
CiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIk5ldHdvcmtDYWNoZUNvZGVycy5oIgog
I2luY2x1ZGUgIk5ldHdvcmtDYWNoZUZpbGVTeXN0ZW0uaCIKQEAgLTExMDAsNSArMTA5OCwzIEBA
IHZvaWQgU3RvcmFnZTo6ZGVsZXRlT2xkVmVyc2lvbnMoKQogCiB9CiB9Ci0KLSNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVT
dG9yYWdlLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNo
ZVN0b3JhZ2UuaAppbmRleCBiNjg4ZGNkNGUwYS4uNDViYThiMGJiNzQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlU3RvcmFnZS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlU3RvcmFn
ZS5oCkBAIC0yNSw4ICsyNSw2IEBACiAKICNwcmFnbWEgb25jZQogCi0jaWYgRU5BQkxFKE5FVFdP
UktfQ0FDSEUpCi0KICNpbmNsdWRlICJOZXR3b3JrQ2FjaGVCbG9iU3RvcmFnZS5oIgogI2luY2x1
ZGUgIk5ldHdvcmtDYWNoZURhdGEuaCIKICNpbmNsdWRlICJOZXR3b3JrQ2FjaGVLZXkuaCIKQEAg
LTE5Niw0ICsxOTQsMyBAQCB2b2lkIHRyYXZlcnNlUmVjb3Jkc0ZpbGVzKGNvbnN0IFN0cmluZyYg
cmVjb3Jkc1BhdGgsIGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3QgUgogCiB9CiB9Ci0jZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1By
b2Nlc3NDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29y
a1Byb2Nlc3NDb2NvYS5tbQppbmRleCBhMmExYmE4ZjIzZS4uYTNmMjA1NWQyZjIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Byb2Nlc3NDb2Nv
YS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtQcm9j
ZXNzQ29jb2EubW0KQEAgLTExMyw3ICsxMTMsNiBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpwbGF0
Zm9ybUluaXRpYWxpemVOZXR3b3JrUHJvY2Vzc0NvY29hKGNvbnN0IE5ldHdvcmtQcm9jZXNzQwog
CiAgICAgaWYgKCFtX2Rpc2tDYWNoZURpcmVjdG9yeS5pc051bGwoKSkgewogICAgICAgICBTYW5k
Ym94RXh0ZW5zaW9uOjpjb25zdW1lUGVybWFuZW50bHkocGFyYW1ldGVycy5kaXNrQ2FjaGVEaXJl
Y3RvcnlFeHRlbnNpb25IYW5kbGUpOwotI2lmIEVOQUJMRShORVRXT1JLX0NBQ0hFKQogICAgICAg
ICBpZiAocGFyYW1ldGVycy5zaG91bGRFbmFibGVOZXR3b3JrQ2FjaGUpIHsKICAgICAgICAgICAg
IE9wdGlvblNldDxOZXR3b3JrQ2FjaGU6OkNhY2hlOjpPcHRpb24+IGNhY2hlT3B0aW9ucyB7IE5l
dHdvcmtDYWNoZTo6Q2FjaGU6Ok9wdGlvbjo6UmVnaXN0ZXJOb3RpZnkgfTsKICAgICAgICAgICAg
IGlmIChwYXJhbWV0ZXJzLnNob3VsZEVuYWJsZU5ldHdvcmtDYWNoZUVmZmljYWN5TG9nZ2luZykK
QEAgLTEzMyw3ICsxMzIsNiBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxp
emVOZXR3b3JrUHJvY2Vzc0NvY29hKGNvbnN0IE5ldHdvcmtQcm9jZXNzQwogICAgICAgICAgICAg
ICAgIHJldHVybjsKICAgICAgICAgICAgIH0KICAgICAgICAgfQotI2VuZGlmCiAgICAgICAgIFN0
cmluZyBuc1VSTENhY2hlRGlyZWN0b3J5ID0gbV9kaXNrQ2FjaGVEaXJlY3Rvcnk7CiAjaWYgUExB
VEZPUk0oSU9TKQogICAgICAgICAvLyBOU1VSTENhY2hlIHBhdGggaXMgcmVsYXRpdmUgdG8gbmV0
d29yayBwcm9jZXNzIGNhY2hlIGRpcmVjdG9yeS4KQEAgLTE5Niw3ICsxOTQsNiBAQCB2b2lkIE5l
dHdvcmtQcm9jZXNzOjpjbGVhckRpc2tDYWNoZShzdGQ6OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjp0
aW1lX3BvaW50IG1vZGlmaQogICAgIGlmICghbV9jbGVhckNhY2hlRGlzcGF0Y2hHcm91cCkKICAg
ICAgICAgbV9jbGVhckNhY2hlRGlzcGF0Y2hHcm91cCA9IGRpc3BhdGNoX2dyb3VwX2NyZWF0ZSgp
OwogCi0jaWYgRU5BQkxFKE5FVFdPUktfQ0FDSEUpCiAgICAgaWYgKGF1dG8qIGNhY2hlID0gTmV0
d29ya1Byb2Nlc3M6OnNpbmdsZXRvbigpLmNhY2hlKCkpIHsKICAgICAgICAgYXV0byBncm91cCA9
IG1fY2xlYXJDYWNoZURpc3BhdGNoR3JvdXA7CiAgICAgICAgIGRpc3BhdGNoX2dyb3VwX2FzeW5j
KGdyb3VwLCBkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCBCbG9ja1B0cjx2b2lkKCk+Ojpmcm9t
Q2FsbGFibGUoW2NhY2hlLCBncm91cCwgbW9kaWZpZWRTaW5jZSwgY29tcGxldGlvbkhhbmRsZXIg
PSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0gKCkgbXV0YWJsZSB7CkBAIC0yMDcsNyArMjA0
LDYgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6Y2xlYXJEaXNrQ2FjaGUoc3RkOjpjaHJvbm86OnN5
c3RlbV9jbG9jazo6dGltZV9wb2ludCBtb2RpZmkKICAgICAgICAgfSkuZ2V0KCkpOwogICAgICAg
ICByZXR1cm47CiAgICAgfQotI2VuZGlmCiAgICAgY2xlYXJOU1VSTENhY2hlKG1fY2xlYXJDYWNo
ZURpc3BhdGNoR3JvdXAsIG1vZGlmaWVkU2luY2UsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIp
KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9pb3MvTmV0
d29ya1Byb2Nlc3NJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2lvcy9OZXR3
b3JrUHJvY2Vzc0lPUy5tbQppbmRleCAxZmM3ZDliYTFjYy4uYTIyNjYzOTZhOTQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvaW9zL05ldHdvcmtQcm9jZXNzSU9TLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvaW9zL05ldHdvcmtQcm9jZXNzSU9T
Lm1tCkBAIC03OCwxMCArNzgsOCBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpjbGVhckNhY2hlRm9y
QWxsT3JpZ2lucyh1aW50MzJfdCBjYWNoZXNUb0NsZWFyKQogICAgIFJlc291cmNlQ2FjaGVzVG9D
bGVhciByZXNvdXJjZUNhY2hlc1RvQ2xlYXIgPSBzdGF0aWNfY2FzdDxSZXNvdXJjZUNhY2hlc1Rv
Q2xlYXI+KGNhY2hlc1RvQ2xlYXIpOwogICAgIGlmIChyZXNvdXJjZUNhY2hlc1RvQ2xlYXIgPT0g
SW5NZW1vcnlSZXNvdXJjZUNhY2hlc09ubHkpCiAgICAgICAgIHJldHVybjsKLSNpZiBFTkFCTEUo
TkVUV09SS19DQUNIRSkKICAgICBpZiAobV9jYWNoZSkKICAgICAgICAgbV9jYWNoZS0+Y2xlYXIo
KTsKLSNlbmRpZgogfQogCiB2b2lkIE5ldHdvcmtQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVO
ZXR3b3JrUHJvY2Vzcyhjb25zdCBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYgcGFy
YW1ldGVycykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291cC9O
ZXR3b3JrUHJvY2Vzc1NvdXAuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zb3Vw
L05ldHdvcmtQcm9jZXNzU291cC5jcHAKaW5kZXggNzg1N2ZjN2JjMWMuLmJkNGY2MjkxOTNmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya1Byb2Nl
c3NTb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29y
a1Byb2Nlc3NTb3VwLmNwcApAQCAtMTEyLDcgKzExMiw2IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6
OnBsYXRmb3JtSW5pdGlhbGl6ZU5ldHdvcmtQcm9jZXNzKGNvbnN0IE5ldHdvcmtQcm9jZXNzQ3Jl
YXRpCiAKICAgICBTb3VwTmV0d29ya1Nlc3Npb246OmNsZWFyT2xkU291cENhY2hlKFdlYkNvcmU6
OmRpcmVjdG9yeU5hbWUobV9kaXNrQ2FjaGVEaXJlY3RvcnkpKTsKIAotI2lmIEVOQUJMRShORVRX
T1JLX0NBQ0hFKQogICAgIE9wdGlvblNldDxOZXR3b3JrQ2FjaGU6OkNhY2hlOjpPcHRpb24+IGNh
Y2hlT3B0aW9ucyB7IE5ldHdvcmtDYWNoZTo6Q2FjaGU6Ok9wdGlvbjo6UmVnaXN0ZXJOb3RpZnkg
fTsKICAgICBpZiAocGFyYW1ldGVycy5zaG91bGRFbmFibGVOZXR3b3JrQ2FjaGVFZmZpY2FjeUxv
Z2dpbmcpCiAgICAgICAgIGNhY2hlT3B0aW9ucyB8PSBOZXR3b3JrQ2FjaGU6OkNhY2hlOjpPcHRp
b246OkVmZmljYWN5TG9nZ2luZzsKQEAgLTEyMiw3ICsxMjEsNiBAQCB2b2lkIE5ldHdvcmtQcm9j
ZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVOZXR3b3JrUHJvY2Vzcyhjb25zdCBOZXR3b3JrUHJvY2Vz
c0NyZWF0aQogI2VuZGlmCiAKICAgICBtX2NhY2hlID0gTmV0d29ya0NhY2hlOjpDYWNoZTo6b3Bl
bihtX2Rpc2tDYWNoZURpcmVjdG9yeSwgY2FjaGVPcHRpb25zKTsKLSNlbmRpZgogCiAgICAgaWYg
KCFwYXJhbWV0ZXJzLmNvb2tpZVBlcnNpc3RlbnRTdG9yYWdlUGF0aC5pc0VtcHR5KCkpIHsKICAg
ICAgICAgc3VwcGxlbWVudDxXZWJDb29raWVNYW5hZ2VyPigpLT5zZXRDb29raWVQZXJzaXN0ZW50
U3RvcmFnZShwYXJhbWV0ZXJzLmNvb2tpZVBlcnNpc3RlbnRTdG9yYWdlUGF0aCwKQEAgLTE2MCwx
NCArMTU4LDkgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6Y2xlYXJDYWNoZUZvckFsbE9yaWdpbnMo
dWludDMyX3QgY2FjaGVzVG9DbGVhcikKIAogdm9pZCBOZXR3b3JrUHJvY2Vzczo6Y2xlYXJEaXNr
Q2FjaGUoc3RkOjpjaHJvbm86OnN5c3RlbV9jbG9jazo6dGltZV9wb2ludCBtb2RpZmllZFNpbmNl
LCBGdW5jdGlvbjx2b2lkICgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewotI2lmIEVOQUJMRShO
RVRXT1JLX0NBQ0hFKQogICAgIGlmICghbV9jYWNoZSkKICAgICAgICAgcmV0dXJuOwogICAgIG1f
Y2FjaGUtPmNsZWFyKG1vZGlmaWVkU2luY2UsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsK
LSNlbHNlCi0gICAgVU5VU0VEX1BBUkFNKG1vZGlmaWVkU2luY2UpOwotICAgIFVOVVNFRF9QQVJB
TShjb21wbGV0aW9uSGFuZGxlcik7Ci0jZW5kaWYKIH0KIAogdm9pZCBOZXR3b3JrUHJvY2Vzczo6
cGxhdGZvcm1UZXJtaW5hdGUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Q29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Nv
Y29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0KaW5kZXggN2NhZTkwMzExNDAuLmQyZWZlYjg5ODZm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9v
bENvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQ
b29sQ29jb2EubW0KQEAgLTc4LDEwICs3OCw4IEBAIE5TU3RyaW5nICpXZWJJY29uRGF0YWJhc2VE
aXJlY3RvcnlEZWZhdWx0c0tleSA9IEAiV2ViSWNvbkRhdGFiYXNlRGlyZWN0b3J5RGVmYXVsCiBz
dGF0aWMgTlNTdHJpbmcgKiBjb25zdCBXZWJLaXQySFRUUFByb3h5RGVmYXVsdHNLZXkgPSBAIldl
YktpdDJIVFRQUHJveHkiOwogc3RhdGljIE5TU3RyaW5nICogY29uc3QgV2ViS2l0MkhUVFBTUHJv
eHlEZWZhdWx0c0tleSA9IEAiV2ViS2l0MkhUVFBTUHJveHkiOwogCi0jaWYgRU5BQkxFKE5FVFdP
UktfQ0FDSEUpCiBzdGF0aWMgTlNTdHJpbmcgKiBjb25zdCBXZWJLaXROZXR3b3JrQ2FjaGVFbmFi
bGVkRGVmYXVsdHNLZXkgPSBAIldlYktpdE5ldHdvcmtDYWNoZUVuYWJsZWQiOwogc3RhdGljIE5T
U3RyaW5nICogY29uc3QgV2ViS2l0TmV0d29ya0NhY2hlRWZmaWNhY3lMb2dnaW5nRW5hYmxlZERl
ZmF1bHRzS2V5ID0gQCJXZWJLaXROZXR3b3JrQ2FjaGVFZmZpY2FjeUxvZ2dpbmdFbmFibGVkIjsK
LSNlbmRpZgogCiBzdGF0aWMgTlNTdHJpbmcgKiBjb25zdCBXZWJLaXRTdXBwcmVzc01lbW9yeVBy
ZXNzdXJlSGFuZGxlckRlZmF1bHRzS2V5ID0gQCJXZWJLaXRTdXBwcmVzc01lbW9yeVByZXNzdXJl
SGFuZGxlciI7CiBzdGF0aWMgTlNTdHJpbmcgKiBjb25zdCBXZWJLaXROZXR3b3JrTG9hZFRocm90
dGxlTGF0ZW5jeU1pbGxpc2Vjb25kc0RlZmF1bHRzS2V5ID0gQCJXZWJLaXROZXR3b3JrTG9hZFRo
cm90dGxlTGF0ZW5jeU1pbGxpc2Vjb25kcyI7CkBAIC0xMDgsMTAgKzEwNiw4IEBAIHN0YXRpYyB2
b2lkIHJlZ2lzdGVyVXNlckRlZmF1bHRzSWZOZWVkZWQoKQogICAgIFtyZWdpc3RyYXRpb25EaWN0
aW9uYXJ5IHNldE9iamVjdDpAWUVTIGZvcktleTpXZWJLaXRKU0NKSVRFbmFibGVkRGVmYXVsdHNL
ZXldOwogICAgIFtyZWdpc3RyYXRpb25EaWN0aW9uYXJ5IHNldE9iamVjdDpAWUVTIGZvcktleTpX
ZWJLaXRKU0NGVExKSVRFbmFibGVkRGVmYXVsdHNLZXldOwogCi0jaWYgRU5BQkxFKE5FVFdPUktf
Q0FDSEUpCiAgICAgW3JlZ2lzdHJhdGlvbkRpY3Rpb25hcnkgc2V0T2JqZWN0OkBZRVMgZm9yS2V5
OldlYktpdE5ldHdvcmtDYWNoZUVuYWJsZWREZWZhdWx0c0tleV07CiAgICAgW3JlZ2lzdHJhdGlv
bkRpY3Rpb25hcnkgc2V0T2JqZWN0OkBOTyBmb3JLZXk6V2ViS2l0TmV0d29ya0NhY2hlRWZmaWNh
Y3lMb2dnaW5nRW5hYmxlZERlZmF1bHRzS2V5XTsKLSNlbmRpZgogCiAgICAgW1tOU1VzZXJEZWZh
dWx0cyBzdGFuZGFyZFVzZXJEZWZhdWx0c10gcmVnaXN0ZXJEZWZhdWx0czpyZWdpc3RyYXRpb25E
aWN0aW9uYXJ5XTsKIH0KQEAgLTI4MSwxMCArMjc3LDggQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6
cGxhdGZvcm1Jbml0aWFsaXplTmV0d29ya1Byb2Nlc3MoTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBh
cmEKICAgICBwYXJhbWV0ZXJzLmh0dHBzUHJveHkgPSBbZGVmYXVsdHMgc3RyaW5nRm9yS2V5Oldl
YktpdDJIVFRQU1Byb3h5RGVmYXVsdHNLZXldOwogICAgIHBhcmFtZXRlcnMubmV0d29ya0FUU0Nv
bnRleHQgPSBhZG9wdENGKF9DRk5ldHdvcmtDb3B5QVRTQ29udGV4dCgpKTsKIAotI2lmIEVOQUJM
RShORVRXT1JLX0NBQ0hFKQogICAgIHBhcmFtZXRlcnMuc2hvdWxkRW5hYmxlTmV0d29ya0NhY2hl
ID0gaXNOZXR3b3JrQ2FjaGVFbmFibGVkKCk7CiAgICAgcGFyYW1ldGVycy5zaG91bGRFbmFibGVO
ZXR3b3JrQ2FjaGVFZmZpY2FjeUxvZ2dpbmcgPSBbZGVmYXVsdHMgYm9vbEZvcktleTpXZWJLaXRO
ZXR3b3JrQ2FjaGVFZmZpY2FjeUxvZ2dpbmdFbmFibGVkRGVmYXVsdHNLZXldOwotI2VuZGlmCiAK
ICAgICBwYXJhbWV0ZXJzLnNvdXJjZUFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllciA9IG1fY29u
ZmlndXJhdGlvbi0+c291cmNlQXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyKCk7CiAgICAgcGFy
YW1ldGVycy5zb3VyY2VBcHBsaWNhdGlvblNlY29uZGFyeUlkZW50aWZpZXIgPSBtX2NvbmZpZ3Vy
YXRpb24tPnNvdXJjZUFwcGxpY2F0aW9uU2Vjb25kYXJ5SWRlbnRpZmllcigpOwpAQCAtNDY3LDEw
ICs0NjEsOCBAQCBTdHJpbmcgV2ViUHJvY2Vzc1Bvb2w6OmxlZ2FjeVBsYXRmb3JtRGVmYXVsdE5l
dHdvcmtDYWNoZURpcmVjdG9yeSgpCiAgICAgaWYgKCFjYWNoZVBhdGgpCiAgICAgICAgIGNhY2hl
UGF0aCA9IEAifi9MaWJyYXJ5L0NhY2hlcy9jb20uYXBwbGUuV2ViS2l0LldlYlByb2Nlc3MiOwog
Ci0jaWYgRU5BQkxFKE5FVFdPUktfQ0FDSEUpCiAgICAgaWYgKGlzTmV0d29ya0NhY2hlRW5hYmxl
ZCgpKQogICAgICAgICBjYWNoZVBhdGggPSBbY2FjaGVQYXRoIHN0cmluZ0J5QXBwZW5kaW5nUGF0
aENvbXBvbmVudDpAIldlYktpdENhY2hlIl07Ci0jZW5kaWYKIAogICAgIHJldHVybiBzdHJpbmdC
eVJlc29sdmluZ1N5bWxpbmtzSW5QYXRoKFtjYWNoZVBhdGggc3RyaW5nQnlTdGFuZGFyZGl6aW5n
UGF0aF0pOwogfQpAQCAtNTA0LDcgKzQ5Niw2IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnNldEph
dmFTY3JpcHRDb25maWd1cmF0aW9uRmlsZUVuYWJsZWRGcm9tRGVmYXVsdHMoKQogCiBib29sIFdl
YlByb2Nlc3NQb29sOjppc05ldHdvcmtDYWNoZUVuYWJsZWQoKQogewotI2lmIEVOQUJMRShORVRX
T1JLX0NBQ0hFKQogICAgIHJlZ2lzdGVyVXNlckRlZmF1bHRzSWZOZWVkZWQoKTsKIAogICAgIE5T
VXNlckRlZmF1bHRzICpkZWZhdWx0cyA9IFtOU1VzZXJEZWZhdWx0cyBzdGFuZGFyZFVzZXJEZWZh
dWx0c107CkBAIC01MTIsOSArNTAzLDYgQEAgYm9vbCBXZWJQcm9jZXNzUG9vbDo6aXNOZXR3b3Jr
Q2FjaGVFbmFibGVkKCkKICAgICBib29sIG5ldHdvcmtDYWNoZUVuYWJsZWRCeURlZmF1bHRzID0g
W2RlZmF1bHRzIGJvb2xGb3JLZXk6V2ViS2l0TmV0d29ya0NhY2hlRW5hYmxlZERlZmF1bHRzS2V5
XTsKIAogICAgIHJldHVybiBuZXR3b3JrQ2FjaGVFbmFibGVkQnlEZWZhdWx0cyAmJiBsaW5rZWRP
bk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RXaXRoTmV0d29ya0NhY2hlKTsKLSNlbHNlCi0gICAg
cmV0dXJuIGZhbHNlOwotI2VuZGlmCiB9CiAKIGJvb2wgV2ViUHJvY2Vzc1Bvb2w6Om9taXRQREZT
dXBwb3J0KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL3NvdXAvV2ViUHJv
Y2Vzc1Bvb2xTb3VwLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL3NvdXAvV2ViUHJvY2Vz
c1Bvb2xTb3VwLmNwcAppbmRleCBjNzMyYTE5MTllMS4uNDcxZWUxNjYyMjEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL3NvdXAvV2ViUHJvY2Vzc1Bvb2xTb3VwLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9zb3VwL1dlYlByb2Nlc3NQb29sU291cC5jcHAKQEAg
LTQyLDkgKzQyLDcgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXplTmV0
d29ya1Byb2Nlc3MoTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmEKICAgICBwYXJhbWV0ZXJzLmNv
b2tpZUFjY2VwdFBvbGljeSA9IG1faW5pdGlhbEhUVFBDb29raWVBY2NlcHRQb2xpY3k7CiAgICAg
cGFyYW1ldGVycy5pZ25vcmVUTFNFcnJvcnMgPSBtX2lnbm9yZVRMU0Vycm9yczsKICAgICBwYXJh
bWV0ZXJzLmxhbmd1YWdlcyA9IHVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoKTsKLSNpZiBFTkFCTEUo
TkVUV09SS19DQUNIRSkKICAgICBwYXJhbWV0ZXJzLnNob3VsZEVuYWJsZU5ldHdvcmtDYWNoZUVm
ZmljYWN5TG9nZ2luZyA9IGZhbHNlOwotI2VuZGlmCiAgICAgcGFyYW1ldGVycy5wcm94eVNldHRp
bmdzID0gbV9uZXR3b3JrUHJveHlTZXR0aW5nczsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwCmluZGV4IDA5MjNl
NzAzYWI0Li5hMzgxN2RjOTQzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcApAQCAtNTA1LDE2ICs1MDUsOSBAQCB2
b2lkIFdlYkxvYWRlclN0cmF0ZWd5OjpkaWRGaW5pc2hQcmVjb25uZWN0aW9uKHVpbnQ2NF90IHBy
ZWNvbm5lY3Rpb25JZGVudGlmaWVyLAogCiB2b2lkIFdlYkxvYWRlclN0cmF0ZWd5OjpzdG9yZURl
cml2ZWREYXRhVG9DYWNoZShjb25zdCBTSEExOjpEaWdlc3QmIGJvZHlIYXNoLCBjb25zdCBTdHJp
bmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgcGFydGl0aW9uLCBXZWJDb3JlOjpTaGFyZWRCdWZmZXIm
IGRhdGEpCiB7Ci0jaWYgRU5BQkxFKE5FVFdPUktfQ0FDSEUpCiAgICAgTmV0d29ya0NhY2hlOjpE
YXRhS2V5IGtleSB7IHBhcnRpdGlvbiwgdHlwZSwgYm9keUhhc2ggfTsKICAgICBJUEM6OlNoYXJl
ZEJ1ZmZlckRhdGFSZWZlcmVuY2UgZGF0YVJlZmVyZW5jZSB7ICZkYXRhIH07CiAgICAgV2ViUHJv
Y2Vzczo6c2luZ2xldG9uKCkubmV0d29ya0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZChN
ZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OlN0b3JlRGVyaXZlZERhdGFU
b0NhY2hlKGtleSwgZGF0YVJlZmVyZW5jZSksIDApOwotI2Vsc2UKLSAgICBVTlVTRURfUEFSQU0o
Ym9keUhhc2gpOwotICAgIFVOVVNFRF9QQVJBTSh0eXBlKTsKLSAgICBVTlVTRURfUEFSQU0ocGFy
dGl0aW9uKTsKLSAgICBVTlVTRURfUEFSQU0oZGF0YSk7Ci0jZW5kaWYKIH0KIAogdm9pZCBXZWJM
b2FkZXJTdHJhdGVneTo6c2V0Q2FwdHVyZUV4dHJhTmV0d29ya0xvYWRNZXRyaWNzRW5hYmxlZChi
b29sIGVuYWJsZWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2NvbmZpZy5oIGIvU291cmNl
L1dlYktpdC9jb25maWcuaAppbmRleCAyOWI5NGEyMDhiYS4uYjkwM2IyZjZkNTAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvY29uZmlnLmgKKysrIGIvU291cmNlL1dlYktpdC9jb25maWcuaApA
QCAtMTE3LDE0ICsxMTcsNiBAQAogI2VuZGlmCiAjZW5kaWYKIAotI2lmbmRlZiBFTkFCTEVfTkVU
V09SS19DQUNIRQotI2lmIFBMQVRGT1JNKENPQ09BKSB8fCBVU0UoU09VUCkKLSNkZWZpbmUgRU5B
QkxFX05FVFdPUktfQ0FDSEUgMQotI2Vsc2UKLSNkZWZpbmUgRU5BQkxFX05FVFdPUktfQ0FDSEUg
MAotI2VuZGlmCi0jZW5kaWYKLQogI2lmbmRlZiBFTkFCTEVfTkVUV09SS19DQVBUVVJFCiAjaWYg
VVNFKE5FVFdPUktfU0VTU0lPTikgJiYgUExBVEZPUk0oQ09DT0EpCiAjZGVmaW5lIEVOQUJMRV9O
RVRXT1JLX0NBUFRVUkUgMQpAQCAtMTMyLDcgKzEyNCw3IEBACiAjZW5kaWYKIAogI2lmbmRlZiBF
TkFCTEVfTkVUV09SS19DQUNIRV9TUEVDVUxBVElWRV9SRVZBTElEQVRJT04KLSNpZiBFTkFCTEUo
TkVUV09SS19DQUNIRSkgJiYgKFBMQVRGT1JNKENPQ09BKSB8fCBQTEFURk9STShHVEspKQorI2lm
IChQTEFURk9STShDT0NPQSkgfHwgUExBVEZPUk0oR1RLKSkKICNkZWZpbmUgRU5BQkxFX05FVFdP
UktfQ0FDSEVfU1BFQ1VMQVRJVkVfUkVWQUxJREFUSU9OIDEKICNlbHNlCiAjZGVmaW5lIEVOQUJM
RV9ORVRXT1JLX0NBQ0hFX1NQRUNVTEFUSVZFX1JFVkFMSURBVElPTiAwCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>