<?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>218769</bug_id>
          
          <creation_ts>2020-11-10 12:57:19 -0800</creation_ts>
          <short_desc>GPUProcess does not properly get relaunched after crashing</short_desc>
          <delta_ts>2020-11-11 09:15:40 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=218807</see_also>
          <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="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>glenn</cc>
    
    <cc>jer.noble</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1706177</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-11-10 12:57:19 -0800</bug_when>
    <thetext>GPUProcess does not properly get relaunched after crashing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1706178</commentid>
    <comment_count>1</comment_count>
      <attachid>413726</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-11-10 13:03:53 -0800</bug_when>
    <thetext>Created attachment 413726
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1706184</commentid>
    <comment_count>2</comment_count>
      <attachid>413727</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-11-10 13:11:06 -0800</bug_when>
    <thetext>Created attachment 413727
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1706192</commentid>
    <comment_count>3</comment_count>
      <attachid>413727</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2020-11-10 13:24:05 -0800</bug_when>
    <thetext>Comment on attachment 413727
Patch

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

&gt; Source/WebKit/UIProcess/GPU/GPUProcessProxy.cpp:86
&gt;  GPUProcessProxy* GPUProcessProxy::m_singleton = nullptr;

Can we use WeakPtr for m_singleton?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1706207</commentid>
    <comment_count>4</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-11-10 13:47:38 -0800</bug_when>
    <thetext>(In reply to Geoffrey Garen from comment #3)
&gt; Comment on attachment 413727 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=413727&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/UIProcess/GPU/GPUProcessProxy.cpp:86
&gt; &gt;  GPUProcessProxy* GPUProcessProxy::m_singleton = nullptr;
&gt; 
&gt; Can we use WeakPtr for m_singleton?

In file included from /Volumes/Data/WebKit/OpenSource/WebKitBuild/Release/DerivedSources/WebKit2/unified-sources/UnifiedSource54.cpp:3:
/Volumes/Data/WebKit/OpenSource/Source/WebKit/UIProcess/GPU/GPUProcessProxy.cpp:86:43: error: declaration requires an exit-time destructor [-Werror,-Wexit-time-destructors]
WeakPtr&lt;GPUProcessProxy&gt; GPUProcessProxy::m_singleton;
/Volumes/Data/WebKit/OpenSource/Source/WebKit/UIProcess/GPU/GPUProcessProxy.cpp:86:43: error: declaration requires a global destructor [-Werror,-Wglobal-constructors]

Do you have a proposal to make it work?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1706211</commentid>
    <comment_count>5</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2020-11-10 13:53:07 -0800</bug_when>
    <thetext>I *think* NeverDestroyed&lt;WeakPtr&lt;GPUProcessProxy&gt;&gt; should work, since NeverDestroyed avoids exit time destructors and WeakPtr allows assignment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1706217</commentid>
    <comment_count>6</comment_count>
      <attachid>413739</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-11-10 14:10:09 -0800</bug_when>
    <thetext>Created attachment 413739
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1706255</commentid>
    <comment_count>7</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-11-10 15:36:35 -0800</bug_when>
    <thetext>Committed r269657: &lt;https://trac.webkit.org/changeset/269657&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 413739.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1706256</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-11-10 15:37:20 -0800</bug_when>
    <thetext>&lt;rdar://problem/71258139&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>413726</attachid>
            <date>2020-11-10 13:03:53 -0800</date>
            <delta_ts>2020-11-10 13:18:34 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218769-20201110130353.patch</filename>
            <type>text/plain</type>
            <size>29281</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5NjA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDJkMTIyMTY4NjhhMTdjNmQy
MmE0MjdiMWUxZDI1NGQ5ZmQ1YzJjN2QuLjZlZWUyZDRmODEyMWFjMzQxMGNmODg3YWI1MDMwY2Ez
YzA5N2Y3YmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDQgQEAKKzIwMjAtMTEtMTAgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBHUFVQcm9jZXNzIGRvZXMgbm90IHBy
b3Blcmx5IGdldCByZWxhdW5jaGVkIGFmdGVyIGNyYXNoaW5nCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTg3NjkKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZnRlciB0aGUgR1BVUHJvY2VzcyBjcmFzaGVz
LCB3ZSBuZWVkIHRvIG1ha2Ugc3VyZSB3ZSBjb25zdHJ1Y3QgYSBuZXcgR1BVUHJvY2Vzc1Byb3h5
CisgICAgICAgIHNvIHRoYXQgYSBuZXcgcHJvY2VzcyBnZXRzIHJlbGF1bmNoZWQuIFByZXZpb3Vz
bHksIHRoaXMgd2Fzbid0IHBvc3NpYmxlIGJlY2F1c2UKKyAgICAgICAgdGhlIEdQVVByb2Nlc3NQ
cm94eSB3YXMgYSAibmV2ZXIgZGVzdHJveWVkIiBzaW5nbGV0b24uCisKKyAgICAgICAgVGhlIEdQ
VVByb2Nlc3NQcm94eSBpcyBub3cga2VwdCBhbGl2ZSBieSB0aGUgV2ViUHJvY2Vzc1Bvb2wgb2Jq
ZWN0cyByZWZpbmcgaXQuCisgICAgICAgIFVwb24gY3Jhc2hpbmcsIGFsbCBXZWJQcm9jZXNzUG9v
bHMgY2xlYXIgdGhlaXIgR1BVUHJvY2Vzc1Byb3h5IFJlZlB0ciBzbyB0aGF0IHRoZQorICAgICAg
ICBvbGQgR1BVUHJvY2Vzc1Byb3h5IGdldHMgZGVzdHJveWVkLiBUaGUgbmV4dCB0aW1lIGEgR1BV
UHJvY2Vzc1Byb3h5IGlzIG5lZWRlZCwgYSBuZXcKKyAgICAgICAgb25lIGdldHMgY29uc3RydWN0
ZWQuIFdlIHN0aWxsIG1ha2Ugc3VyZSB0aGF0IGFsbCBXZWJQcm9jZXNzUG9vbCBvYmplY3RzIHNo
YXJlIHRoZQorICAgICAgICBzYW1lIEdQVVByb2Nlc3NQcm94eSwgYXMgYmVmb3JlIHRoaXMgcGF0
Y2guCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2wubW06Cisg
ICAgICAgICgtW1dLUHJvY2Vzc1Bvb2wgX2dwdVByb2Nlc3NJZGVudGlmaWVyXSk6CisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sUHJpdmF0ZS5oOgorICAgICAgICAq
IFVJUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6R1BV
UHJvY2Vzc1Byb3h5OjpnZXRPckNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OkdQVVByb2Nlc3NQ
cm94eTo6R1BVUHJvY2Vzc1Byb3h5KToKKyAgICAgICAgKFdlYktpdDo6R1BVUHJvY2Vzc1Byb3h5
Ojp+R1BVUHJvY2Vzc1Byb3h5KToKKyAgICAgICAgKFdlYktpdDo6R1BVUHJvY2Vzc1Byb3h5Ojpw
cm9jZXNzV2lsbFNodXREb3duKToKKyAgICAgICAgKFdlYktpdDo6R1BVUHJvY2Vzc1Byb3h5Ojpn
cHVQcm9jZXNzQ3Jhc2hlZCk6CisgICAgICAgICogVUlQcm9jZXNzL0dQVS9HUFVQcm9jZXNzUHJv
eHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXJQcm94eTo6c3luY1dpdGhXZWJDb3JlUHJlZnMgY29uc3QpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6
OndpbGxTdGFydENhcHR1cmUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnNldE9y
aWVudGF0aW9uRm9yTWVkaWFDYXB0dXJlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vz
c1Bvb2wuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6ZW5zdXJlR1BVUHJv
Y2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpncHVQcm9jZXNzQ3Jhc2hl
ZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpnZXRHUFVQcm9jZXNzQ29ubmVj
dGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjp1cGRhdGVBdWRpYmxlTWVk
aWFBc3NlcnRpb25zKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcubW06CisgICAgICAgICgtW1dLQ29u
dGVudFZpZXcgX3NldHVwVmlzaWJpbGl0eVByb3BhZ2F0aW9uVmlld0ZvckdQVVByb2Nlc3NdKToK
KwogMjAyMC0xMS0wOSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAg
IFtHUFVQcm9jZXNzXSBSZWdyZXNzaW9uKHIyNjg2MzIpIEdhcmJhZ2UgaXMgcmVuZGVyZWQgb24g
c3BlYWtlcnMgd2hlbiB1c2luZyBXZWJBdWRpbwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2wubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbC5tbQppbmRleCBlNzk1YjMzMjZjNzZkZjlkOWQ4
NDAzNDJmOGRkMTRiYmJmYTEwN2RiLi4wMzU5MWU4YThmYTkwNDIxMjA5YjkzOTBkNGYzZDhlMDc2
ODBkZjYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQ
cm9jZXNzUG9vbC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQ
cm9jZXNzUG9vbC5tbQpAQCAtNDM2LDYgKzQzNiwxNiBAQCAtIChzaXplX3QpX3dlYlByb2Nlc3ND
b3VudAogICAgIHJldHVybiBfcHJvY2Vzc1Bvb2wtPnByb2Nlc3NlcygpLnNpemUoKTsKIH0KIAor
LSAocGlkX3QpX2dwdVByb2Nlc3NJZGVudGlmaWVyCit7CisjaWYgRU5BQkxFKEdQVV9QUk9DRVNT
KQorICAgIGF1dG8qIGdwdVByb2Nlc3MgPSBfcHJvY2Vzc1Bvb2wtPmdwdVByb2Nlc3MoKTsKKyAg
ICByZXR1cm4gZ3B1UHJvY2VzcyA/IGdwdVByb2Nlc3MtPnByb2Nlc3NJZGVudGlmaWVyKCkgOiAw
OworI2Vsc2UKKyAgICByZXR1cm4gMDsKKyNlbmRpZgorfQorCiAtICh2b2lkKV9tYWtlTmV4dFdl
YlByb2Nlc3NMYXVuY2hGYWlsRm9yVGVzdGluZwogewogICAgIF9wcm9jZXNzUG9vbC0+c2V0U2hv
dWxkTWFrZU5leHRXZWJQcm9jZXNzTGF1bmNoRmFpbEZvclRlc3RpbmcodHJ1ZSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbFByaXZh
dGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sUHJp
dmF0ZS5oCmluZGV4IDIxOTQxYjJkNDYwNzBkYTFjYTk1ZmI5MDZmODgzMmY1YWYwNGQ4YWIuLjdj
NGZlNGNkOGZiOWFmZmE4Y2EwMzE5Yjk0ODkzYzFmNGU2ODk2NmMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sUHJpdmF0ZS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sUHJpdmF0ZS5o
CkBAIC0xMDYsNiArMTA2LDcgQEAKIC0gKE5TVUludGVnZXIpX3Byb2Nlc3NDYWNoZVNpemUgV0tf
QVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNSksIGlvcygxMy4wKSk7CiAtICh2b2lkKV9jbGVhcldl
YlByb2Nlc3NDYWNoZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tf
SU9TX1RCQSkpOwogLSAodm9pZClfc2V0VXNlU2VwYXJhdGVTZXJ2aWNlV29ya2VyUHJvY2Vzczoo
Qk9PTClmb3JjZVNlcnZpY2VXb3JrZXJQcm9jZXNzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tf
TUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CistIChwaWRfdClfZ3B1UHJvY2Vzc0lkZW50aWZp
ZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsK
IAogLy8gVGVzdCBvbmx5LiBSZXR1cm5zIHdlYiBwcm9jZXNzZXMgcnVubmluZyB3ZWIgcGFnZXMg
KGRvZXMgbm90IGluY2x1ZGUgd2ViIHByb2Nlc3NlcyBydW5uaW5nIHNlcnZpY2Ugd29ya2VycykK
IC0gKHNpemVfdClfd2ViUGFnZUNvbnRlbnRQcm9jZXNzQ291bnQgV0tfQVBJX0FWQUlMQUJMRSht
YWNvcygxMC4xMy40KSwgaW9zKDExLjMpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0dQVS9HUFVQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
R1BVL0dQVVByb2Nlc3NQcm94eS5jcHAKaW5kZXggMTVmZTYwYTE2NTMyODQ3ZTMzMjM5ZDM3NDhl
NDFhZDEzN2EwOThiMC4uMWY3N2JlNGEyYWM2NjIwODlhZmQ4ZTc4NzQyODU3YWUxNzQ2ZWM0YyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvR1BVL0dQVVByb2Nlc3NQcm94eS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvR1BVL0dQVVByb2Nlc3NQcm94eS5jcHAK
QEAgLTg1LDQxICs4NSwxNiBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2hvdWxkQ3JlYXRlTWljcm9w
aG9uZVNhbmRib3hFeHRlbnNpb24oKQogCiBHUFVQcm9jZXNzUHJveHkqIEdQVVByb2Nlc3NQcm94
eTo6bV9zaW5nbGV0b24gPSBudWxscHRyOwogCi1HUFVQcm9jZXNzUHJveHkmIEdQVVByb2Nlc3NQ
cm94eTo6c2luZ2xldG9uKCkKK1JlZjxHUFVQcm9jZXNzUHJveHk+IEdQVVByb2Nlc3NQcm94eTo6
Z2V0T3JDcmVhdGUoKQogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7Ci0KLSAgICBz
dGF0aWMgc3RkOjpvbmNlX2ZsYWcgb25jZUZsYWc7Ci0gICAgc3RhdGljIExhenlOZXZlckRlc3Ry
b3llZDxHUFVQcm9jZXNzUHJveHk+IGdwdVByb2Nlc3M7Ci0KLSAgICBzdGQ6OmNhbGxfb25jZShv
bmNlRmxhZywgW10gewotICAgICAgICBncHVQcm9jZXNzLmNvbnN0cnVjdCgpOwotCi0gICAgICAg
IEdQVVByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMgcGFyYW1ldGVyczsKLSNpZiBFTkFCTEUoTUVE
SUFfU1RSRUFNKQotICAgICAgICBwYXJhbWV0ZXJzLnVzZU1vY2tDYXB0dXJlRGV2aWNlcyA9IGdw
dVByb2Nlc3MtPm1fdXNlTW9ja0NhcHR1cmVEZXZpY2VzOwotCi0gICAgICAgIGJvb2wgbmVlZHND
YW1lcmFTYW5kYm94RXh0ZW5zaW9uID0gc2hvdWxkQ3JlYXRlQ2FtZXJhU2FuZGJveEV4dGVuc2lv
bigpOwotICAgICAgICBib29sIG5lZWRzTWljcm9waG9uZVNhbmRib3hFeHRlbnNpb24gPSBzaG91
bGRDcmVhdGVNaWNyb3Bob25lU2FuZGJveEV4dGVuc2lvbigpOwotICAgICAgICBpZiAobmVlZHND
YW1lcmFTYW5kYm94RXh0ZW5zaW9uKQotICAgICAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y3Jl
YXRlSGFuZGxlRm9yR2VuZXJpY0V4dGVuc2lvbigiY29tLmFwcGxlLndlYmtpdC5jYW1lcmEiX3Ms
IHBhcmFtZXRlcnMuY2FtZXJhU2FuZGJveEV4dGVuc2lvbkhhbmRsZSk7Ci0gICAgICAgIGlmIChu
ZWVkc01pY3JvcGhvbmVTYW5kYm94RXh0ZW5zaW9uKQotICAgICAgICAgICAgU2FuZGJveEV4dGVu
c2lvbjo6Y3JlYXRlSGFuZGxlRm9yR2VuZXJpY0V4dGVuc2lvbigiY29tLmFwcGxlLndlYmtpdC5t
aWNyb3Bob25lIl9zLCBwYXJhbWV0ZXJzLm1pY3JvcGhvbmVTYW5kYm94RXh0ZW5zaW9uSGFuZGxl
KTsKLSNpZiBQTEFURk9STShJT1MpCi0gICAgICAgIGlmIChuZWVkc0NhbWVyYVNhbmRib3hFeHRl
bnNpb24gfHwgbmVlZHNNaWNyb3Bob25lU2FuZGJveEV4dGVuc2lvbikKLSAgICAgICAgICAgIFNh
bmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvck1hY2hMb29rdXAoImNvbS5hcHBsZS50Y2Nk
Il9zLCBXVEY6Om51bGxvcHQsIHBhcmFtZXRlcnMudGNjU2FuZGJveEV4dGVuc2lvbkhhbmRsZSk7
Ci0jZW5kaWYKLSNlbmRpZgotICAgICAgICBwYXJhbWV0ZXJzLnBhcmVudFBJRCA9IGdldEN1cnJl
bnRQcm9jZXNzSUQoKTsKLQotICAgICAgICAvLyBJbml0aWFsaXplIHRoZSBHUFUgcHJvY2Vzcy4K
LSAgICAgICAgZ3B1UHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6R1BVUHJvY2Vzczo6SW5pdGlhbGl6
ZUdQVVByb2Nlc3MocGFyYW1ldGVycyksIDApOwotICAgICAgICBncHVQcm9jZXNzLT51cGRhdGVQ
cm9jZXNzQXNzZXJ0aW9uKCk7Ci0KLSAgICAgICAgbV9zaW5nbGV0b24gPSAmZ3B1UHJvY2Vzcy5n
ZXQoKTsKLSAgICB9KTsKLQotICAgIHJldHVybiBncHVQcm9jZXNzLmdldCgpOworICAgIGlmICht
X3NpbmdsZXRvbikgeworICAgICAgICBBU1NFUlQobV9zaW5nbGV0b24tPnN0YXRlKCkgIT0gU3Rh
dGU6OlRlcm1pbmF0ZWQpOworICAgICAgICByZXR1cm4gKm1fc2luZ2xldG9uOworICAgIH0KKyAg
ICBhdXRvIGdwdVByb2Nlc3MgPSBhZG9wdFJlZigqbmV3IEdQVVByb2Nlc3NQcm94eSk7CisgICAg
bV9zaW5nbGV0b24gPSBncHVQcm9jZXNzLnB0cigpOworICAgIHJldHVybiBncHVQcm9jZXNzOwog
fQogCiBHUFVQcm9jZXNzUHJveHk6OkdQVVByb2Nlc3NQcm94eSgpCkBAIC0xMzAsOSArMTA1LDM0
IEBAIEdQVVByb2Nlc3NQcm94eTo6R1BVUHJvY2Vzc1Byb3h5KCkKICNlbmRpZgogewogICAgIGNv
bm5lY3QoKTsKKworICAgIEdQVVByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMgcGFyYW1ldGVyczsK
KyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIHBhcmFtZXRlcnMudXNlTW9ja0NhcHR1cmVE
ZXZpY2VzID0gbV91c2VNb2NrQ2FwdHVyZURldmljZXM7CisKKyAgICBib29sIG5lZWRzQ2FtZXJh
U2FuZGJveEV4dGVuc2lvbiA9IHNob3VsZENyZWF0ZUNhbWVyYVNhbmRib3hFeHRlbnNpb24oKTsK
KyAgICBib29sIG5lZWRzTWljcm9waG9uZVNhbmRib3hFeHRlbnNpb24gPSBzaG91bGRDcmVhdGVN
aWNyb3Bob25lU2FuZGJveEV4dGVuc2lvbigpOworICAgIGlmIChuZWVkc0NhbWVyYVNhbmRib3hF
eHRlbnNpb24pCisgICAgICAgIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvckdlbmVy
aWNFeHRlbnNpb24oImNvbS5hcHBsZS53ZWJraXQuY2FtZXJhIl9zLCBwYXJhbWV0ZXJzLmNhbWVy
YVNhbmRib3hFeHRlbnNpb25IYW5kbGUpOworICAgIGlmIChuZWVkc01pY3JvcGhvbmVTYW5kYm94
RXh0ZW5zaW9uKQorICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JHZW5l
cmljRXh0ZW5zaW9uKCJjb20uYXBwbGUud2Via2l0Lm1pY3JvcGhvbmUiX3MsIHBhcmFtZXRlcnMu
bWljcm9waG9uZVNhbmRib3hFeHRlbnNpb25IYW5kbGUpOworI2lmIFBMQVRGT1JNKElPUykKKyAg
ICBpZiAobmVlZHNDYW1lcmFTYW5kYm94RXh0ZW5zaW9uIHx8IG5lZWRzTWljcm9waG9uZVNhbmRi
b3hFeHRlbnNpb24pCisgICAgICAgIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvck1h
Y2hMb29rdXAoImNvbS5hcHBsZS50Y2NkIl9zLCBXVEY6Om51bGxvcHQsIHBhcmFtZXRlcnMudGNj
U2FuZGJveEV4dGVuc2lvbkhhbmRsZSk7CisjZW5kaWYKKyNlbmRpZgorICAgIHBhcmFtZXRlcnMu
cGFyZW50UElEID0gZ2V0Q3VycmVudFByb2Nlc3NJRCgpOworCisgICAgLy8gSW5pdGlhbGl6ZSB0
aGUgR1BVIHByb2Nlc3MuCisgICAgc2VuZChNZXNzYWdlczo6R1BVUHJvY2Vzczo6SW5pdGlhbGl6
ZUdQVVByb2Nlc3MocGFyYW1ldGVycyksIDApOworICAgIHVwZGF0ZVByb2Nlc3NBc3NlcnRpb24o
KTsKIH0KIAotR1BVUHJvY2Vzc1Byb3h5Ojp+R1BVUHJvY2Vzc1Byb3h5KCkgPSBkZWZhdWx0Owor
R1BVUHJvY2Vzc1Byb3h5Ojp+R1BVUHJvY2Vzc1Byb3h5KCkKK3sKKyAgICBpZiAobV9zaW5nbGV0
b24gPT0gdGhpcykKKyAgICAgICAgbV9zaW5nbGV0b24gPSBudWxscHRyOworfQogCiAjaWYgRU5B
QkxFKE1FRElBX1NUUkVBTSkKIHZvaWQgR1BVUHJvY2Vzc1Byb3h5OjpzZXRVc2VNb2NrQ2FwdHVy
ZURldmljZXMoYm9vbCB2YWx1ZSkKQEAgLTE3MCw2ICsxNzAsOCBAQCB2b2lkIEdQVVByb2Nlc3NQ
cm94eTo6Y29ubmVjdGlvbldpbGxPcGVuKElQQzo6Q29ubmVjdGlvbiYpCiB2b2lkIEdQVVByb2Nl
c3NQcm94eTo6cHJvY2Vzc1dpbGxTaHV0RG93bihJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24p
CiB7CiAgICAgQVNTRVJUX1VOVVNFRChjb25uZWN0aW9uLCB0aGlzLT5jb25uZWN0aW9uKCkgPT0g
JmNvbm5lY3Rpb24pOworICAgIGlmIChtX3NpbmdsZXRvbiA9PSB0aGlzKQorICAgICAgICBtX3Np
bmdsZXRvbiA9IG51bGxwdHI7CiB9CiAKIHZvaWQgR1BVUHJvY2Vzc1Byb3h5OjpnZXRHUFVQcm9j
ZXNzQ29ubmVjdGlvbihXZWJQcm9jZXNzUHJveHkmIHdlYlByb2Nlc3NQcm94eSwgTWVzc2FnZXM6
OldlYlByb2Nlc3NQcm94eTo6R2V0R1BVUHJvY2Vzc0Nvbm5lY3Rpb246OkRlbGF5ZWRSZXBseSYm
IHJlcGx5KQpAQCAtMjA4LDYgKzIxMCw5IEBAIHZvaWQgR1BVUHJvY2Vzc1Byb3h5OjpnZXRHUFVQ
cm9jZXNzQ29ubmVjdGlvbihXZWJQcm9jZXNzUHJveHkmIHdlYlByb2Nlc3NQcm94eSwKIAogdm9p
ZCBHUFVQcm9jZXNzUHJveHk6OmdwdVByb2Nlc3NDcmFzaGVkKCkKIHsKKyAgICBpZiAobV9zaW5n
bGV0b24gPT0gdGhpcykKKyAgICAgICAgbV9zaW5nbGV0b24gPSBudWxscHRyOworCiAgICAgZm9y
IChhdXRvJiBwcm9jZXNzUG9vbCA6IFdlYlByb2Nlc3NQb29sOjphbGxQcm9jZXNzUG9vbHMoKSkK
ICAgICAgICAgcHJvY2Vzc1Bvb2wtPmdwdVByb2Nlc3NDcmFzaGVkKHByb2Nlc3NJZGVudGlmaWVy
KCkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvR1BVL0dQVVByb2Nl
c3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvR1BVL0dQVVByb2Nlc3NQcm94eS5o
CmluZGV4IGRiYzllNjlkNzM4MWQ4Y2RmOThhMGI2MjU2OGZjM2M2MmY2ZmIxNWMuLjQzMDU3MjA5
ZmQ0NzBiZGMyNDQ1NzA3ZTk3NDkwMzcwNTQxOGJkNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0dQVS9HUFVQcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc1Byb3h5LmgKQEAgLTQ3LDEzICs0NywxNCBAQCBjbGFzcyBX
ZWJQcm9jZXNzUHJveHk7CiBjbGFzcyBXZWJzaXRlRGF0YVN0b3JlOwogc3RydWN0IEdQVVByb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnM7CiAKLWNsYXNzIEdQVVByb2Nlc3NQcm94eSBmaW5hbCA6IHB1
YmxpYyBBdXhpbGlhcnlQcm9jZXNzUHJveHksIHByaXZhdGUgUHJvY2Vzc1Rocm90dGxlckNsaWVu
dCwgcHVibGljIENhbk1ha2VXZWFrUHRyPEdQVVByb2Nlc3NQcm94eT4geworY2xhc3MgR1BVUHJv
Y2Vzc1Byb3h5IGZpbmFsIDogcHVibGljIEF1eGlsaWFyeVByb2Nlc3NQcm94eSwgcHJpdmF0ZSBQ
cm9jZXNzVGhyb3R0bGVyQ2xpZW50LCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8R1BVUHJvY2Vzc1By
b3h5PiwgcHVibGljIFJlZkNvdW50ZWQ8R1BVUHJvY2Vzc1Byb3h5PiB7CiAgICAgV1RGX01BS0Vf
RkFTVF9BTExPQ0FURUQ7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoR1BVUHJvY2Vzc1Byb3h5
KTsKICAgICBmcmllbmQgTGF6eU5ldmVyRGVzdHJveWVkPEdQVVByb2Nlc3NQcm94eT47CiBwdWJs
aWM6Ci0gICAgc3RhdGljIEdQVVByb2Nlc3NQcm94eSYgc2luZ2xldG9uKCk7CisgICAgc3RhdGlj
IFJlZjxHUFVQcm9jZXNzUHJveHk+IGdldE9yQ3JlYXRlKCk7CiAgICAgc3RhdGljIEdQVVByb2Nl
c3NQcm94eSogc2luZ2xldG9uSWZDcmVhdGVkKCkgeyByZXR1cm4gbV9zaW5nbGV0b247IH0KKyAg
ICB+R1BVUHJvY2Vzc1Byb3h5KCk7CiAKICAgICB2b2lkIGdldEdQVVByb2Nlc3NDb25uZWN0aW9u
KFdlYlByb2Nlc3NQcm94eSYsIE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldEdQVVByb2Nl
c3NDb25uZWN0aW9uRGVsYXllZFJlcGx5JiYpOwogCkBAIC03OCw3ICs3OSw2IEBAIHB1YmxpYzoK
IAogcHJpdmF0ZToKICAgICBleHBsaWNpdCBHUFVQcm9jZXNzUHJveHkoKTsKLSAgICB+R1BVUHJv
Y2Vzc1Byb3h5KCk7CiAKICAgICB2b2lkIGFkZFNlc3Npb24oY29uc3QgV2Vic2l0ZURhdGFTdG9y
ZSYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9V
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKaW5kZXggYjVkMzhlOWZl
MjZiNGE1NmVjOGVlOTZiZGYzMTcwNzk5YzZmYzk1NS4uNzlhZjFiMjc1ZjI3YTc3ODUxZWVjNDNm
NGEyNzgxODQ1OGE1MjEyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcApA
QCAtNzY3LDcgKzc2Nyw3IEBAIHZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
UHJveHk6OnN5bmNXaXRoV2ViQ29yZVByZWZzKCkgY29uc3QKIAogI2lmIEVOQUJMRShHUFVfUFJP
Q0VTUykKICAgICBpZiAobV9wYWdlLnByZWZlcmVuY2VzKCkuY2FwdHVyZUF1ZGlvSW5HUFVQcm9j
ZXNzRW5hYmxlZCgpIHx8IG1fcGFnZS5wcmVmZXJlbmNlcygpLmNhcHR1cmVWaWRlb0luR1BVUHJv
Y2Vzc0VuYWJsZWQoKSkKLSAgICAgICAgR1BVUHJvY2Vzc1Byb3h5OjpzaW5nbGV0b24oKS5zZXRV
c2VNb2NrQ2FwdHVyZURldmljZXMobW9ja0RldmljZXNFbmFibGVkKTsKKyAgICAgICAgbV9wYWdl
LnByb2Nlc3MoKS5wcm9jZXNzUG9vbCgpLmVuc3VyZUdQVVByb2Nlc3MoKS5zZXRVc2VNb2NrQ2Fw
dHVyZURldmljZXMobW9ja0RldmljZXNFbmFibGVkKTsKICNlbmRpZgogCiAgICAgaWYgKE1vY2tS
ZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjptb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlckVu
YWJsZWQoKSA9PSBtb2NrRGV2aWNlc0VuYWJsZWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmNwcAppbmRleCBjNjYwZTU2NmIwOGRkMzY3OTEzZDIyNDUwNmJkZjFlZGYwMGQ1
ZDg3Li5lM2ZlMGIzYjczNjdhYzAyMTBlOWYyZDcyNmFmNGZlZmEwMWZlYzg3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTgwNjYsMTAgKzgwNjYsMTAgQEAg
dm9pZCBXZWJQYWdlUHJveHk6OndpbGxTdGFydENhcHR1cmUoY29uc3QgVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RQcm94eSYgcmVxdWUKICAgICBpZiAoIXByZWZlcmVuY2VzKCkuY2FwdHVyZVZp
ZGVvSW5HUFVQcm9jZXNzRW5hYmxlZCgpICYmICFwcmVmZXJlbmNlcygpLmNhcHR1cmVBdWRpb0lu
R1BVUHJvY2Vzc0VuYWJsZWQoKSkKICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKCk7CiAKLSAgICBh
dXRvJiBncHVQcm9jZXNzID0gR1BVUHJvY2Vzc1Byb3h5OjpzaW5nbGV0b24oKTsKKyAgICBhdXRv
JiBncHVQcm9jZXNzID0gcHJvY2VzcygpLnByb2Nlc3NQb29sKCkuZW5zdXJlR1BVUHJvY2Vzcygp
OwogICAgIGdwdVByb2Nlc3MudXBkYXRlQ2FwdHVyZUFjY2VzcyhyZXF1ZXN0LnJlcXVpcmVzQXVk
aW9DYXB0dXJlKCksIHJlcXVlc3QucmVxdWlyZXNWaWRlb0NhcHR1cmUoKSwgcmVxdWVzdC5yZXF1
aXJlc0Rpc3BsYXlDYXB0dXJlKCksIG1fcHJvY2Vzcy0+Y29yZVByb2Nlc3NJZGVudGlmaWVyKCks
IFdURk1vdmUoY2FsbGJhY2spKTsKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgIEdQVVBy
b2Nlc3NQcm94eTo6c2luZ2xldG9uKCkuc2V0T3JpZW50YXRpb25Gb3JNZWRpYUNhcHR1cmUobV9k
ZXZpY2VPcmllbnRhdGlvbik7CisgICAgZ3B1UHJvY2Vzcy5zZXRPcmllbnRhdGlvbkZvck1lZGlh
Q2FwdHVyZShtX2RldmljZU9yaWVudGF0aW9uKTsKICNlbmRpZgogI2Vsc2UKICAgICBjYWxsYmFj
aygpOwpAQCAtMTAxMjUsNyArMTAxMjUsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6c2V0T3JpZW50
YXRpb25Gb3JNZWRpYUNhcHR1cmUodWludDY0X3Qgb3JpZW50YXRpb24pCiAgICAgaWYgKGF1dG8q
IHByb3h5ID0gbV9wcm9jZXNzLT51c2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5KCkpCiAgICAg
ICAgIHByb3h5LT5zZXRPcmllbnRhdGlvbihvcmllbnRhdGlvbik7CiAKLSAgICBhdXRvKiBncHVQ
cm9jZXNzID0gR1BVUHJvY2Vzc1Byb3h5OjpzaW5nbGV0b25JZkNyZWF0ZWQoKTsKKyAgICBhdXRv
KiBncHVQcm9jZXNzID0gbV9wcm9jZXNzLT5wcm9jZXNzUG9vbCgpLmdwdVByb2Nlc3MoKTsKICAg
ICBpZiAoZ3B1UHJvY2VzcyAmJiBwcmVmZXJlbmNlcygpLmNhcHR1cmVWaWRlb0luR1BVUHJvY2Vz
c0VuYWJsZWQoKSkKICAgICAgICAgZ3B1UHJvY2Vzcy0+c2V0T3JpZW50YXRpb25Gb3JNZWRpYUNh
cHR1cmUob3JpZW50YXRpb24pOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
cm9jZXNzUG9vbC5jcHAKaW5kZXggZTA0NTFmYjQ4YjJkMjc3ODBhMWFkZTljZjNkMTJmNjZiNGU0
NGU0Yi4uOWQ5MmQzMDRiODVjMDFjZjc0MzA0YTE0ZjNjNmVkYTczYjY0ZjA5ZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcApAQCAtNDc5LDIxICs0NzksMzIg
QEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6c2VydmljZVdvcmtlclByb2Nlc3NDcmFzaGVkKFdlYlBy
b2Nlc3NQcm94eSYgcHJveHkpCiB9CiAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCitHUFVQcm9j
ZXNzUHJveHkmIFdlYlByb2Nlc3NQb29sOjplbnN1cmVHUFVQcm9jZXNzKCkKK3sKKyAgICBpZiAo
IW1fZ3B1UHJvY2VzcykKKyAgICAgICAgbV9ncHVQcm9jZXNzID0gR1BVUHJvY2Vzc1Byb3h5Ojpn
ZXRPckNyZWF0ZSgpOworICAgIHJldHVybiAqbV9ncHVQcm9jZXNzOworfQorCiB2b2lkIFdlYlBy
b2Nlc3NQb29sOjpncHVQcm9jZXNzQ3Jhc2hlZChQcm9jZXNzSUQgaWRlbnRpZmllcikKIHsKKyAg
ICBtX2dwdVByb2Nlc3MgPSBudWxscHRyOworCiAgICAgbV9jbGllbnQuZ3B1UHJvY2Vzc0RpZENy
YXNoKHRoaXMsIGlkZW50aWZpZXIpOwogICAgIFZlY3RvcjxSZWZQdHI8V2ViUHJvY2Vzc1Byb3h5
Pj4gcHJvY2Vzc2VzID0gbV9wcm9jZXNzZXM7CiAgICAgZm9yIChhdXRvJiBwcm9jZXNzIDogcHJv
Y2Vzc2VzKQogICAgICAgICBwcm9jZXNzLT5ncHVQcm9jZXNzQ3Jhc2hlZCgpOworCisgICAgLy8g
RklYTUU6IFdlIHNob3VsZCBhdm9pZCB0ZXJtaW5hdGluZyBhbGwgV2ViUHJvY2Vzc2VzIHdoZW5l
dmVyIHRoZSBHUFVQcm9jZXNzIGNyYXNoZXMuCiAgICAgdGVybWluYXRlQWxsV2ViQ29udGVudFBy
b2Nlc3NlcygpOwogfQogCiB2b2lkIFdlYlByb2Nlc3NQb29sOjpnZXRHUFVQcm9jZXNzQ29ubmVj
dGlvbihXZWJQcm9jZXNzUHJveHkmIHdlYlByb2Nlc3NQcm94eSwgTWVzc2FnZXM6OldlYlByb2Nl
c3NQcm94eTo6R2V0R1BVUHJvY2Vzc0Nvbm5lY3Rpb246OkRlbGF5ZWRSZXBseSYmIHJlcGx5KQog
ewotICAgIEdQVVByb2Nlc3NQcm94eTo6c2luZ2xldG9uKCkuZ2V0R1BVUHJvY2Vzc0Nvbm5lY3Rp
b24od2ViUHJvY2Vzc1Byb3h5LCBbdGhpcywgd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyks
IHdlYlByb2Nlc3NQcm94eSA9IG1ha2VXZWFrUHRyKHdlYlByb2Nlc3NQcm94eSksIHJlcGx5ID0g
V1RGTW92ZShyZXBseSldIChhdXRvJiBjb25uZWN0aW9uSW5mbykgbXV0YWJsZSB7CisgICAgZW5z
dXJlR1BVUHJvY2VzcygpLmdldEdQVVByb2Nlc3NDb25uZWN0aW9uKHdlYlByb2Nlc3NQcm94eSwg
W3RoaXMsIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpLCB3ZWJQcm9jZXNzUHJveHkgPSBt
YWtlV2Vha1B0cih3ZWJQcm9jZXNzUHJveHkpLCByZXBseSA9IFdURk1vdmUocmVwbHkpXSAoYXV0
byYgY29ubmVjdGlvbkluZm8pIG11dGFibGUgewogICAgICAgICBpZiAoVU5MSUtFTFkoIUlQQzo6
Q29ubmVjdGlvbjo6aWRlbnRpZmllcklzVmFsaWQoY29ubmVjdGlvbkluZm8uaWRlbnRpZmllcigp
KSAmJiB3ZWJQcm9jZXNzUHJveHkgJiYgd2Vha1RoaXMpKSB7CiAgICAgICAgICAgICBXRUJQUk9D
RVNTUE9PTF9SRUxFQVNFX0xPR19FUlJPUihQcm9jZXNzLCAiZ2V0R1BVUHJvY2Vzc0Nvbm5lY3Rp
b246IEZhaWxlZCBmaXJzdCBhdHRlbXB0LCByZXRyeWluZyIpOwotICAgICAgICAgICAgR1BVUHJv
Y2Vzc1Byb3h5OjpzaW5nbGV0b24oKS5nZXRHUFVQcm9jZXNzQ29ubmVjdGlvbigqd2ViUHJvY2Vz
c1Byb3h5LCBXVEZNb3ZlKHJlcGx5KSk7CisgICAgICAgICAgICBlbnN1cmVHUFVQcm9jZXNzKCku
Z2V0R1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKndlYlByb2Nlc3NQcm94eSwgV1RGTW92ZShyZXBseSkp
OwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAgIHJlcGx5KGNvbm5lY3Rp
b25JbmZvKTsKQEAgLTIwMjIsNyArMjAzMyw3IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnVwZGF0
ZUF1ZGlibGVNZWRpYUFzc2VydGlvbnMoKQogICAgIG1fYXVkaWJsZU1lZGlhQWN0aXZpdHkgPSBB
dWRpYmxlTWVkaWFBY3Rpdml0eSB7CiAgICAgICAgIG1ha2VVbmlxdWVSZWY8UHJvY2Vzc0Fzc2Vy
dGlvbj4oZ2V0Q3VycmVudFByb2Nlc3NJRCgpLCAiV2ViS2l0IE1lZGlhIFBsYXliYWNrIl9zLCBQ
cm9jZXNzQXNzZXJ0aW9uVHlwZTo6TWVkaWFQbGF5YmFjaykKICNpZiBFTkFCTEUoR1BVX1BST0NF
U1MpCi0gICAgICAgICwgR1BVUHJvY2Vzc1Byb3h5OjpzaW5nbGV0b25JZkNyZWF0ZWQoKSA/IG1h
a2VVbmlxdWU8UHJvY2Vzc0Fzc2VydGlvbj4oR1BVUHJvY2Vzc1Byb3h5OjpzaW5nbGV0b24oKS5w
cm9jZXNzSWRlbnRpZmllcigpLCAiV2ViS2l0IE1lZGlhIFBsYXliYWNrIl9zLCBQcm9jZXNzQXNz
ZXJ0aW9uVHlwZTo6TWVkaWFQbGF5YmFjaykgOiBudWxscHRyCisgICAgICAgICwgZ3B1UHJvY2Vz
cygpID8gbWFrZVVuaXF1ZTxQcm9jZXNzQXNzZXJ0aW9uPihncHVQcm9jZXNzKCktPnByb2Nlc3NJ
ZGVudGlmaWVyKCksICJXZWJLaXQgTWVkaWEgUGxheWJhY2siX3MsIFByb2Nlc3NBc3NlcnRpb25U
eXBlOjpNZWRpYVBsYXliYWNrKSA6IG51bGxwdHIKICNlbmRpZgogICAgIH07CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAppbmRleCA0ZTJlOWE1MjNlNDZlZTQ0NzQ3
Y2UzNTAyYWU5NTBlNThmOTk1MDJlLi45Y2ZlNmQ0NzBmY2FjMjBlMmRhZDAyMGQ0NDU4M2YyYTc2
NjgyNjkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9v
bC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKQEAgLTM1
Niw2ICszNTYsOSBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogICAgIHZvaWQg
Z3B1UHJvY2Vzc0NyYXNoZWQoUHJvY2Vzc0lEKTsKICAgICB2b2lkIGdldEdQVVByb2Nlc3NDb25u
ZWN0aW9uKFdlYlByb2Nlc3NQcm94eSYsIE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldEdQ
VVByb2Nlc3NDb25uZWN0aW9uRGVsYXllZFJlcGx5JiYpOworCisgICAgR1BVUHJvY2Vzc1Byb3h5
JiBlbnN1cmVHUFVQcm9jZXNzKCk7CisgICAgR1BVUHJvY2Vzc1Byb3h5KiBncHVQcm9jZXNzKCkg
Y29uc3QgeyByZXR1cm4gbV9ncHVQcm9jZXNzLmdldCgpOyB9CiAjZW5kaWYKIAogI2lmIEVOQUJM
RShXRUJfQVVUSE4pCkBAIC01OTQsNiArNTk3LDEwIEBAIHByaXZhdGU6CiAgICAgT3B0aW9uYWw8
VXNlckNvbnRlbnRDb250cm9sbGVySWRlbnRpZmllcj4gbV91c2VyQ29udGVudENvbnRyb2xsZXJJ
REZvclNlcnZpY2VXb3JrZXI7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKyAg
ICBSZWZQdHI8R1BVUHJvY2Vzc1Byb3h5PiBtX2dwdVByb2Nlc3M7CisjZW5kaWYKKwogICAgIFJl
ZjxXZWJQYWdlR3JvdXA+IG1fZGVmYXVsdFBhZ2VHcm91cDsKIAogICAgIFJlZlB0cjxBUEk6Ok9i
amVjdD4gbV9pbmplY3RlZEJ1bmRsZUluaXRpYWxpemF0aW9uVXNlckRhdGE7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlldy5tbSBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3Lm1tCmluZGV4IDhmMWZmNDA2ZDk4ZTg5
Y2Q5NDhjOGE3NDQ1MzkxNDhlZjVmYzM4YTkuLmFkZWMyNjBjZWRmYmMzYjM2OGI1MjU2ZjVkYzhj
NTdlNmY2MTM1Y2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0Nv
bnRlbnRWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRW
aWV3Lm1tCkBAIC0yMzYsMTAgKzIzNiwxMSBAQCAtICh2b2lkKV9zZXR1cFZpc2liaWxpdHlQcm9w
YWdhdGlvblZpZXcKIAogLSAodm9pZClfc2V0dXBWaXNpYmlsaXR5UHJvcGFnYXRpb25WaWV3Rm9y
R1BVUHJvY2VzcwogewotICAgIGlmICghV2ViS2l0OjpHUFVQcm9jZXNzUHJveHk6OnNpbmdsZXRv
bklmQ3JlYXRlZCgpKQorICAgIGF1dG8qIGdwdVByb2Nlc3MgPSBfcGFnZS0+cHJvY2VzcygpLnBy
b2Nlc3NQb29sKCkuZ3B1UHJvY2VzcygpCisgICAgaWYgKCFncHVQcm9jZXNzKQogICAgICAgICBy
ZXR1cm47Ci0gICAgYXV0byBwcm9jZXNzSWRlbnRpZmllciA9IFdlYktpdDo6R1BVUHJvY2Vzc1By
b3h5OjpzaW5nbGV0b24oKS5wcm9jZXNzSWRlbnRpZmllcigpOwotICAgIGF1dG8gY29udGV4dElE
ID0gV2ViS2l0OjpHUFVQcm9jZXNzUHJveHk6OnNpbmdsZXRvbigpLmNvbnRleHRJREZvclZpc2li
aWxpdHlQcm9wYWdhdGlvbigpOworICAgIGF1dG8gcHJvY2Vzc0lkZW50aWZpZXIgPSBncHVQcm9j
ZXNzLT5wcm9jZXNzSWRlbnRpZmllcigpOworICAgIGF1dG8gY29udGV4dElEID0gZ3B1UHJvY2Vz
cy0+Y29udGV4dElERm9yVmlzaWJpbGl0eVByb3BhZ2F0aW9uKCk7CiAgICAgaWYgKCFwcm9jZXNz
SWRlbnRpZmllciB8fCAhY29udGV4dElEKQogICAgICAgICByZXR1cm47CiAKZGlmZiAtLWdpdCBh
L1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBhNTc3MDQzZGQ3MGFiYmEw
MDk4NDczNDUwOTMxYjY3Mzg5MGMxZDg5Li5hZmEzYzkzZjY1M2FkY2E3OGY4NWYyNDIyYmFlNWMx
ZTNhMmYwYzQwIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMjAtMTEtMTAgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFw
cGxlLmNvbT4KKworICAgICAgICBHUFVQcm9jZXNzIGRvZXMgbm90IHByb3Blcmx5IGdldCByZWxh
dW5jaGVkIGFmdGVyIGNyYXNoaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMTg3NjkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBBZGQgQVBJIHRlc3QgY292ZXJhZ2UuCisKKyAgICAgICAgKiBUZXN0V2Vi
S2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0dQVVByb2Nlc3MubW06IEFkZGVkLgor
ICAgICAgICAoVEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9hdWRpby1jb250ZXh0LXBsYXlpbmcuaHRtbDogQWRkZWQuCisKIDIwMjAtMTEtMDkgIEFsYW4g
QnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJldmVydGlu
ZyByMjY5NjAzLgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJ
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJL
aXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAxMmM4MDEwY2VmYWMzNWYwNmU4
YzNiY2I0NzgzY2Q5MzcxNDk1ZjcyLi5hNDE5ZTAzZjVmZWQzODg1MjZhYTcwNGYyYjM1MmI5MGRh
OTlhNWVmIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJL
aXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjUwLDYgKzI1MCw3IEBACiAJCTQ2
Mzk3Qjk1MURDMkM4NTAwMDlBNzhBRSAvKiBET01Ob2RlLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDYzOTdCOTQxREMyQzg1MDAwOUE3OEFFIC8qIERP
TU5vZGUubW0gKi87IH07CiAJCTQ2NDdCMTI2MUVCQTNCODUwMDQxRDdFRiAvKiBQcm9jZXNzRGlk
VGVybWluYXRlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDQ2NDdCMTI1MUVCQTNCNzMwMDQxRDdFRiAvKiBQcm9jZXNzRGlkVGVybWluYXRlLmNwcCAq
LzsgfTsKIAkJNDY0Qzc2NEQyMzBERjg1QzAwQUZCMDIwIC8qIEJhZFNlcnZpY2VXb3JrZXJSZWdp
c3RyYXRpb25zLTQuc3FsaXRlMyBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0NjRDNzY0QzIzMERGODMyMDBBRkIwMjAgLyogQmFkU2VydmljZVdv
cmtlclJlZ2lzdHJhdGlvbnMtNC5zcWxpdGUzICovOyB9OworCQk0NjVFMjgwNzI1NUIyQTZBMDA2
M0E3ODcgLyogR1BVUHJvY2Vzcy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDQ2NUUyODA2MjU1QjJBNjkwMDYzQTc4NyAvKiBHUFVQcm9jZXNzLm1tICov
OyB9OwogCQk0NjZDMzg0MzIxMDYzN0RFMDA2QTg4REUgLyogbm90aWZ5LXJlc291cmNlTG9hZE9i
c2VydmVyLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNDY2QzM4NDIyMTA2MzdDRTAwNkE4OERFIC8qIG5vdGlmeS1yZXNvdXJjZUxvYWRP
YnNlcnZlci5odG1sICovOyB9OwogCQk0NjdDNTY1MzIxQjVFRDEzMDA1NzUxNkQgLyogR2V0U2Vz
c2lvbkNvb2tpZS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDQ2N0M1NjUxMjFCNUVDREYwMDU3NTE2RCAvKiBHZXRTZXNzaW9uQ29va2ll
Lmh0bWwgKi87IH07CiAJCTQ2N0M1NjU0MjFCNUVEMTMwMDU3NTE2RCAvKiBTZXRTZXNzaW9uQ29v
a2llLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNDY3QzU2NTIyMUI1RUNERjAwNTc1MTZEIC8qIFNldFNlc3Npb25Db29raWUuaHRtbCAq
LzsgfTsKQEAgLTI2Niw2ICsyNjcsNyBAQAogCQk0NkU2NkE5MDFGMEQ3NTU5MDAyNkQ4M0MgLyog
V0tXZWJWaWV3RGlhZ25vc3RpY0xvZ2dpbmcubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA0NkU2NkE4RjFGMEQ3NTU5MDAyNkQ4M0MgLyogV0tXZWJWaWV3
RGlhZ25vc3RpY0xvZ2dpbmcubW0gKi87IH07CiAJCTQ2RTgxNkY4MUU3OUUyOUMwMDM3NUFEQyAv
KiBSZXN0b3JlU3RhdGVBZnRlclRlcm1pbmF0aW9uLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDZFODE2RjcxRTc5RTI5MTAwMzc1QURDIC8qIFJlc3Rv
cmVTdGF0ZUFmdGVyVGVybWluYXRpb24ubW0gKi87IH07CiAJCTQ2RUJEODQ3MjM3MjMyMEYwMDIy
M0E2RSAvKiBSZXN0b3JlU2Nyb2xsUG9zaXRpb24ubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NkVCRDg0NjIzNzIzMUU2MDAyMjNBNkUgLyogUmVzdG9y
ZVNjcm9sbFBvc2l0aW9uLm1tICovOyB9OworCQk0NkYwM0MxQzI1NUIyRDVBMDBBQTUxQzUgLyog
YXVkaW8tY29udGV4dC1wbGF5aW5nLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDZGMDNDMUIyNTVCMkQzNjAwQUE1MUM1IC8qIGF1ZGlv
LWNvbnRleHQtcGxheWluZy5odG1sICovOyB9OwogCQk0NkZBMkZFRTIzODQ2Q0E1MDAwQ0NCMEMg
LyogSFRUUEhlYWRlck1hcC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA0NkZBMkZFRDIzODQ2QzlBMDAwQ0NCMEMgLyogSFRUUEhlYWRlck1hcC5jcHAg
Ki87IH07CiAJCTQ2RkFDRjc0MjNFODg0MjMwMEE5RUJDNiAvKiBiZWZvcmV1bmxvYWQtc2xvdy5o
dG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDQ2RkFDRjczMjNFODgzRUUwMEE5RUJDNiAvKiBiZWZvcmV1bmxvYWQtc2xvdy5odG1sICovOyB9
OwogCQk0OTA5RUUzQTJEMDk0ODBDODg5ODJENTYgLyogTWFya2FibGUuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRUM3OUYxNjhCRTQ1NEU1NzlFNDE3
QjA1IC8qIE1hcmthYmxlLmNwcCAqLzsgfTsKQEAgLTEyODEsNiArMTI4Myw3IEBACiAJCQlkc3RQ
YXRoID0gVGVzdFdlYktpdEFQSS5yZXNvdXJjZXM7CiAJCQlkc3RTdWJmb2xkZXJTcGVjID0gNzsK
IAkJCWZpbGVzID0gKAorCQkJCTQ2RjAzQzFDMjU1QjJENUEwMEFBNTFDNSAvKiBhdWRpby1jb250
ZXh0LXBsYXlpbmcuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQk1NUE4MTdGRjIxODEw
MjFBMDAwNEEzOUEgLyogMTAweDEwMC1yZWQudGdhIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJ
CTFBOUU1MkM5MTNFNjVFRjQwMDY5MTdGNSAvKiAxOC1jaGFyYWN0ZXJzLmh0bWwgaW4gQ29weSBS
ZXNvdXJjZXMgKi8sCiAJCQkJNTVBODE4MDAyMTgxMDIyMTAwMDRBMzlBIC8qIDQwMHg0MDAtZ3Jl
ZW4ucG5nIGluIENvcHkgUmVzb3VyY2VzICovLApAQCAtMTk3Miw2ICsxOTc1LDcgQEAKIAkJNDY0
N0IxMjUxRUJBM0I3MzAwNDFEN0VGIC8qIFByb2Nlc3NEaWRUZXJtaW5hdGUuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUHJvY2Vzc0RpZFRlcm1pbmF0ZS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2NEM3NjRDMjMwREY4MzIwMEFGQjAyMCAvKiBC
YWRTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9ucy00LnNxbGl0ZTMgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBmaWxlOyBwYXRoID0gIkJhZFNlcnZpY2VX
b3JrZXJSZWdpc3RyYXRpb25zLTQuc3FsaXRlMyI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTQ2NTZBNzU3MjBGOTA1NEYwMDAyRTIxRiAvKiBTaW1wbGVTZXJ2aWNlV29ya2VyUmVnaXN0
cmF0aW9ucy00LnNxbGl0ZTMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBmaWxlOyBwYXRoID0gIlNpbXBsZVNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25z
LTQuc3FsaXRlMyI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ2NUUyODA2MjU1QjJB
NjkwMDYzQTc4NyAvKiBHUFVQcm9jZXNzLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBwYXRoID0gR1BVUHJvY2Vzcy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NDY2QzM4NDIyMTA2MzdDRTAwNkE4OERFIC8qIG5vdGlmeS1yZXNvdXJjZUxvYWRPYnNlcnZlci5o
dG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gIm5vdGlmeS1yZXNvdXJjZUxvYWRPYnNl
cnZlci5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDY3QzU2NTEyMUI1RUNE
RjAwNTc1MTZEIC8qIEdldFNlc3Npb25Db29raWUuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsg
cGF0aCA9IEdldFNlc3Npb25Db29raWUuaHRtbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNDY3QzU2NTIyMUI1RUNERjAwNTc1MTZEIC8qIFNldFNlc3Npb25Db29raWUuaHRtbCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9IFNldFNlc3Npb25Db29raWUuaHRtbDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE5ODcsNiArMTk5MSw3IEBACiAJCTQ2RTY2QThGMUYwRDc1
NTkwMDI2RDgzQyAvKiBXS1dlYlZpZXdEaWFnbm9zdGljTG9nZ2luZy5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdLV2ViVmlld0RpYWdub3N0aWNMb2dnaW5nLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NkU4MTZGNzFFNzlFMjkxMDAzNzVBREMg
LyogUmVzdG9yZVN0YXRlQWZ0ZXJUZXJtaW5hdGlvbi5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgcGF0aCA9IFJlc3RvcmVTdGF0ZUFmdGVyVGVybWluYXRpb24ubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2RUJEODQ2MjM3MjMxRTYwMDIyM0E2RSAvKiBSZXN0
b3JlU2Nyb2xsUG9zaXRpb24ubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBh
dGggPSBSZXN0b3JlU2Nyb2xsUG9zaXRpb24ubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTQ2RjAzQzFCMjU1QjJEMzYwMEFBNTFDNSAvKiBhdWRpby1jb250ZXh0LXBsYXlpbmcuaHRt
bCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJhdWRpby1jb250ZXh0LXBsYXlpbmcuaHRt
bCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2RkEyRkVEMjM4NDZDOUEwMDBDQ0Iw
QyAvKiBIVFRQSGVhZGVyTWFwLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEhUVFBIZWFkZXJNYXAuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NkZB
Q0Y3MzIzRTg4M0VFMDBBOUVCQzYgLyogYmVmb3JldW5sb2FkLXNsb3cuaHRtbCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQuaHRtbDsgcGF0aCA9ICJiZWZvcmV1bmxvYWQtc2xvdy5odG1sIjsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNDk3MUIxMTcyNDUxRjI3ODAwOTY5OTREIC8qIGluY29ycmVjdENy
ZWF0ZVRhYmxlU2NoZW1hLmRiICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gZmlsZTsgcGF0aCA9IGluY29ycmVjdENyZWF0ZVRhYmxlU2NoZW1hLmRiOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzI2Myw2ICszMjY4LDcgQEAKIAkJCQk2MzFF
RkZGNTFFN0I1RThEMDBEMkVCQjggLyogR2VvbG9jYXRpb24ubW0gKi8sCiAJCQkJMDdFMUY2QTAx
RkZDM0EwODAwOTZDN0VDIC8qIEdldERpc3BsYXlNZWRpYS5tbSAqLywKIAkJCQkyREFERjI2MjIx
Q0I4RjMyMDAzRDNFM0EgLyogR2V0UmVzb3VyY2VEYXRhLm1tICovLAorCQkJCTQ2NUUyODA2MjU1
QjJBNjkwMDYzQTc4NyAvKiBHUFVQcm9jZXNzLm1tICovLAogCQkJCTUxQUYyM0RFMUVGMUEzNzIw
MDcyRjI4MSAvKiBJY29uTG9hZGluZ0RlbGVnYXRlLm1tICovLAogCQkJCUVCMjMwRDNFMjQ1RTcy
NjMwMEM2NkFEMSAvKiBJREJDaGVja3BvaW50V0FMLm1tICovLAogCQkJCTUxMDQ3Nzc1MUQyOThF
MDMwMDk3NDdFQiAvKiBJREJEZWxldGVSZWNvdmVyeS5tbSAqLywKQEAgLTM3MTIsNiArMzcxOCw3
IEBACiAJCQkJNUM5RTU5NDAxRDNFQjFERTAwRTNDNjJFIC8qIEFwcGxpY2F0aW9uQ2FjaGUuZGIt
d2FsICovLAogCQkJCUY0ODU2Q0EyMUU2NDk4QTgwMDlEN0VFNyAvKiBhdHRhY2htZW50LWVsZW1l
bnQuaHRtbCAqLywKIAkJCQkzNzYwQzRGMjIxMTI0QkQwMDAyMzNBQ0MgLyogQXR0clN0eWxlLmh0
bWwgKi8sCisJCQkJNDZGMDNDMUIyNTVCMkQzNjAwQUE1MUM1IC8qIGF1ZGlvLWNvbnRleHQtcGxh
eWluZy5odG1sICovLAogCQkJCUM5NDQxNUZGMjE0MzBCNjcwMEIxRUREQSAvKiBhdWRpby13aXRo
LWNvbnRyb2xzLmh0bWwgKi8sCiAJCQkJQ0Q1Nzc3OUEyMTFDRTZCNzAwMUIzNzFFIC8qIGF1ZGlv
LXdpdGgtd2ViLWF1ZGlvLmh0bWwgKi8sCiAJCQkJRjQxQUI5OTgxRUY0NjkyQzAwODNGQTA4IC8q
IGF1dG9mb2N1cy1jb250ZW50ZWRpdGFibGUuaHRtbCAqLywKQEAgLTUwNjYsNiArNTA3Myw3IEBA
CiAJCQkJN0NDRTdFQjYxQTQxMUE3RTAwNDQ3QzRDIC8qIENhbmNlbExvYWRGcm9tUmVzb3VyY2VM
b2FkRGVsZWdhdGUubW0gaW4gU291cmNlcyAqLywKIAkJCQk3QzgzRTA0MTFEMEE2M0YyMDBGRUJD
RjMgLyogQ2FuZGlkYXRlVGVzdHMubW0gaW4gU291cmNlcyAqLywKIAkJCQk3Q0NFN0VFNzFBNDEx
QUU2MDA0NDdDNEMgLyogQ2FuSGFuZGxlUmVxdWVzdC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk0
NjVFMjgwNzI1NUIyQTZBMDA2M0E3ODcgLyogR1BVUHJvY2Vzcy5tbSBpbiBTb3VyY2VzICovLAog
CQkJCTA3QzA0NkNBMUU0MjYyQTgwMDcyMDFFNyAvKiBDQVJpbmdCdWZmZXIuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJNTczMDNCQ0IyMDA4Mzc2NTAwMzU1OTY1IC8qIENCT1JSZWFkZXJUZXN0LmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTU3MzAzQkM5MjAwODI0RDMwMDM1NTk2NSAvKiBDQk9SVmFs
dWVUZXN0LmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9HUFVQcm9jZXNzLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9HUFVQcm9jZXNzLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNhMjlhNjAwYjQ1OWNl
NDNiZDAyN2M0ZjkxMWE3OTNmMDVhMjVjMTgKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0dQVVByb2Nlc3MubW0KQEAgLTAsMCArMSw2OSBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorCisjaW1wb3J0ICJQbGF0Zm9ybVV0
aWxpdGllcy5oIgorI2ltcG9ydCAiVGVzdE5hdmlnYXRpb25EZWxlZ2F0ZS5oIgorI2ltcG9ydCAi
VGVzdFdLV2ViVmlldy5oIgorI2ltcG9ydCA8V2ViS2l0L1dLUHJlZmVyZW5jZXNQcml2YXRlLmg+
CisjaW1wb3J0IDxXZWJLaXQvV0tQcm9jZXNzUG9vbFByaXZhdGUuaD4KKyNpbXBvcnQgPFdlYktp
dC9XS1dlYlZpZXdDb25maWd1cmF0aW9uLmg+CisjaW1wb3J0IDxXZWJLaXQvV0tXZWJWaWV3UHJp
dmF0ZS5oPgorI2ltcG9ydCA8V2ViS2l0L19XS0ludGVybmFsRGVidWdGZWF0dXJlLmg+CisjaW1w
b3J0IDx3dGYvUmV0YWluUHRyLmg+CisKK1RFU1QoR1BVUHJvY2VzcywgUmVsYXVuY2hPbkNyYXNo
KQoreworICAgIGF1dG8gY29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1
cmF0aW9uIGFsbG9jXSBpbml0XSk7CisgICAgZm9yIChfV0tJbnRlcm5hbERlYnVnRmVhdHVyZSAq
ZmVhdHVyZSBpbiBbV0tQcmVmZXJlbmNlcyBfaW50ZXJuYWxEZWJ1Z0ZlYXR1cmVzXSkgeworICAg
ICAgICBpZiAoW2ZlYXR1cmUua2V5IGlzRXF1YWxUb1N0cmluZzpAIlVzZUdQVVByb2Nlc3NGb3JN
ZWRpYUVuYWJsZWQiXSkgeworICAgICAgICAgICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2Vz
XSBfc2V0RW5hYmxlZDpZRVMgZm9ySW50ZXJuYWxEZWJ1Z0ZlYXR1cmU6ZmVhdHVyZV07CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKworICAgIGF1dG8gd2ViVmlldyA9IGFk
b3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwg
MCwgNDAwLCA0MDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbi5nZXQoKV0pOworICAgIFt3
ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkVGVzdFBhZ2VOYW1lZDpAImF1ZGlvLWNvbnRleHQtcGxh
eWluZyJdOworCisgICAgYXV0byogcHJvY2Vzc1Bvb2wgPSBjb25maWd1cmF0aW9uLmdldCgpLnBy
b2Nlc3NQb29sOworICAgIHVuc2lnbmVkIHRpbWVvdXQgPSAwOworICAgIHdoaWxlICghW3Byb2Nl
c3NQb29sIF9ncHVQcm9jZXNzSWRlbnRpZmllcl0gJiYgdGltZW91dCsrIDwgMTAwKQorICAgICAg
ICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpzbGVlcCgwLjEpOworCisgICAgRVhQRUNUX05FKFtwcm9j
ZXNzUG9vbCBfZ3B1UHJvY2Vzc0lkZW50aWZpZXJdLCAwKTsKKyAgICBpZiAoIVtwcm9jZXNzUG9v
bCBfZ3B1UHJvY2Vzc0lkZW50aWZpZXJdKQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRvIGlu
aXRpYWxQSUQgPSBbcHJvY2Vzc1Bvb2wgX2dwdVByb2Nlc3NJZGVudGlmaWVyXTsKKyAgICBraWxs
KGluaXRpYWxQSUQsIDkpOworCisgICAgLy8gTWFrZSBzdXJlIHRoZSBHUFUgcHJvY2VzcyBnZXRz
IHJlbGF1bmNoZWQuCisgICAgdGltZW91dCA9IDA7CisgICAgd2hpbGUgKCghW3Byb2Nlc3NQb29s
IF9ncHVQcm9jZXNzSWRlbnRpZmllcl0gfHwgW3Byb2Nlc3NQb29sIF9ncHVQcm9jZXNzSWRlbnRp
Zmllcl0gPT0gaW5pdGlhbFBJRCkgJiYgdGltZW91dCsrIDwgMTAwKQorICAgICAgICBUZXN0V2Vi
S2l0QVBJOjpVdGlsOjpzbGVlcCgwLjEpOworICAgIEVYUEVDVF9ORShbcHJvY2Vzc1Bvb2wgX2dw
dVByb2Nlc3NJZGVudGlmaWVyXSwgMCk7CisgICAgRVhQRUNUX05FKFtwcm9jZXNzUG9vbCBfZ3B1
UHJvY2Vzc0lkZW50aWZpZXJdLCBpbml0aWFsUElEKTsKK30KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvYXVkaW8tY29udGV4dC1wbGF5aW5nLmh0bWwg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL2F1ZGlvLWNvbnRleHQtcGxh
eWluZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY3ZThmNWIzM2MxNjMzZTlhMzhmODAzYmQxOTMwOTAwNjM0
MmY3OWYKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL2F1ZGlvLWNvbnRleHQtcGxheWluZy5odG1sCkBAIC0wLDAgKzEsMTEgQEAKKzwhRE9D
VFlQRSBodG1sPgorPGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQ+CitsZXQgY29udGV4dCA9IG5ldyBB
dWRpb0NvbnRleHQoKTsKK2xldCBvc2NpbGxhdG9yID0gbmV3IE9zY2lsbGF0b3JOb2RlKGNvbnRl
eHQpOworb3NjaWxsYXRvci5jb25uZWN0KGNvbnRleHQuZGVzdGluYXRpb24pOworb3NjaWxsYXRv
ci5zdGFydCgpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>
<flag name="commit-queue"
          id="430388"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>413727</attachid>
            <date>2020-11-10 13:11:06 -0800</date>
            <delta_ts>2020-11-10 14:10:08 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218769-20201110131105.patch</filename>
            <type>text/plain</type>
            <size>29494</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5NjA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDJkMTIyMTY4NjhhMTdjNmQy
MmE0MjdiMWUxZDI1NGQ5ZmQ1YzJjN2QuLjZlZWUyZDRmODEyMWFjMzQxMGNmODg3YWI1MDMwY2Ez
YzA5N2Y3YmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDQgQEAKKzIwMjAtMTEtMTAgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBHUFVQcm9jZXNzIGRvZXMgbm90IHBy
b3Blcmx5IGdldCByZWxhdW5jaGVkIGFmdGVyIGNyYXNoaW5nCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTg3NjkKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZnRlciB0aGUgR1BVUHJvY2VzcyBjcmFzaGVz
LCB3ZSBuZWVkIHRvIG1ha2Ugc3VyZSB3ZSBjb25zdHJ1Y3QgYSBuZXcgR1BVUHJvY2Vzc1Byb3h5
CisgICAgICAgIHNvIHRoYXQgYSBuZXcgcHJvY2VzcyBnZXRzIHJlbGF1bmNoZWQuIFByZXZpb3Vz
bHksIHRoaXMgd2Fzbid0IHBvc3NpYmxlIGJlY2F1c2UKKyAgICAgICAgdGhlIEdQVVByb2Nlc3NQ
cm94eSB3YXMgYSAibmV2ZXIgZGVzdHJveWVkIiBzaW5nbGV0b24uCisKKyAgICAgICAgVGhlIEdQ
VVByb2Nlc3NQcm94eSBpcyBub3cga2VwdCBhbGl2ZSBieSB0aGUgV2ViUHJvY2Vzc1Bvb2wgb2Jq
ZWN0cyByZWZpbmcgaXQuCisgICAgICAgIFVwb24gY3Jhc2hpbmcsIGFsbCBXZWJQcm9jZXNzUG9v
bHMgY2xlYXIgdGhlaXIgR1BVUHJvY2Vzc1Byb3h5IFJlZlB0ciBzbyB0aGF0IHRoZQorICAgICAg
ICBvbGQgR1BVUHJvY2Vzc1Byb3h5IGdldHMgZGVzdHJveWVkLiBUaGUgbmV4dCB0aW1lIGEgR1BV
UHJvY2Vzc1Byb3h5IGlzIG5lZWRlZCwgYSBuZXcKKyAgICAgICAgb25lIGdldHMgY29uc3RydWN0
ZWQuIFdlIHN0aWxsIG1ha2Ugc3VyZSB0aGF0IGFsbCBXZWJQcm9jZXNzUG9vbCBvYmplY3RzIHNo
YXJlIHRoZQorICAgICAgICBzYW1lIEdQVVByb2Nlc3NQcm94eSwgYXMgYmVmb3JlIHRoaXMgcGF0
Y2guCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2wubW06Cisg
ICAgICAgICgtW1dLUHJvY2Vzc1Bvb2wgX2dwdVByb2Nlc3NJZGVudGlmaWVyXSk6CisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sUHJpdmF0ZS5oOgorICAgICAgICAq
IFVJUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6R1BV
UHJvY2Vzc1Byb3h5OjpnZXRPckNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OkdQVVByb2Nlc3NQ
cm94eTo6R1BVUHJvY2Vzc1Byb3h5KToKKyAgICAgICAgKFdlYktpdDo6R1BVUHJvY2Vzc1Byb3h5
Ojp+R1BVUHJvY2Vzc1Byb3h5KToKKyAgICAgICAgKFdlYktpdDo6R1BVUHJvY2Vzc1Byb3h5Ojpw
cm9jZXNzV2lsbFNodXREb3duKToKKyAgICAgICAgKFdlYktpdDo6R1BVUHJvY2Vzc1Byb3h5Ojpn
cHVQcm9jZXNzQ3Jhc2hlZCk6CisgICAgICAgICogVUlQcm9jZXNzL0dQVS9HUFVQcm9jZXNzUHJv
eHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXJQcm94eTo6c3luY1dpdGhXZWJDb3JlUHJlZnMgY29uc3QpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6
OndpbGxTdGFydENhcHR1cmUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnNldE9y
aWVudGF0aW9uRm9yTWVkaWFDYXB0dXJlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vz
c1Bvb2wuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6ZW5zdXJlR1BVUHJv
Y2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpncHVQcm9jZXNzQ3Jhc2hl
ZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpnZXRHUFVQcm9jZXNzQ29ubmVj
dGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjp1cGRhdGVBdWRpYmxlTWVk
aWFBc3NlcnRpb25zKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcubW06CisgICAgICAgICgtW1dLQ29u
dGVudFZpZXcgX3NldHVwVmlzaWJpbGl0eVByb3BhZ2F0aW9uVmlld0ZvckdQVVByb2Nlc3NdKToK
KwogMjAyMC0xMS0wOSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAg
IFtHUFVQcm9jZXNzXSBSZWdyZXNzaW9uKHIyNjg2MzIpIEdhcmJhZ2UgaXMgcmVuZGVyZWQgb24g
c3BlYWtlcnMgd2hlbiB1c2luZyBXZWJBdWRpbwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2wubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbC5tbQppbmRleCBlNzk1YjMzMjZjNzZkZjlkOWQ4
NDAzNDJmOGRkMTRiYmJmYTEwN2RiLi4wMzU5MWU4YThmYTkwNDIxMjA5YjkzOTBkNGYzZDhlMDc2
ODBkZjYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQ
cm9jZXNzUG9vbC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQ
cm9jZXNzUG9vbC5tbQpAQCAtNDM2LDYgKzQzNiwxNiBAQCAtIChzaXplX3QpX3dlYlByb2Nlc3ND
b3VudAogICAgIHJldHVybiBfcHJvY2Vzc1Bvb2wtPnByb2Nlc3NlcygpLnNpemUoKTsKIH0KIAor
LSAocGlkX3QpX2dwdVByb2Nlc3NJZGVudGlmaWVyCit7CisjaWYgRU5BQkxFKEdQVV9QUk9DRVNT
KQorICAgIGF1dG8qIGdwdVByb2Nlc3MgPSBfcHJvY2Vzc1Bvb2wtPmdwdVByb2Nlc3MoKTsKKyAg
ICByZXR1cm4gZ3B1UHJvY2VzcyA/IGdwdVByb2Nlc3MtPnByb2Nlc3NJZGVudGlmaWVyKCkgOiAw
OworI2Vsc2UKKyAgICByZXR1cm4gMDsKKyNlbmRpZgorfQorCiAtICh2b2lkKV9tYWtlTmV4dFdl
YlByb2Nlc3NMYXVuY2hGYWlsRm9yVGVzdGluZwogewogICAgIF9wcm9jZXNzUG9vbC0+c2V0U2hv
dWxkTWFrZU5leHRXZWJQcm9jZXNzTGF1bmNoRmFpbEZvclRlc3RpbmcodHJ1ZSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbFByaXZh
dGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sUHJp
dmF0ZS5oCmluZGV4IDIxOTQxYjJkNDYwNzBkYTFjYTk1ZmI5MDZmODgzMmY1YWYwNGQ4YWIuLjdj
NGZlNGNkOGZiOWFmZmE4Y2EwMzE5Yjk0ODkzYzFmNGU2ODk2NmMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sUHJpdmF0ZS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sUHJpdmF0ZS5o
CkBAIC0xMDYsNiArMTA2LDcgQEAKIC0gKE5TVUludGVnZXIpX3Byb2Nlc3NDYWNoZVNpemUgV0tf
QVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNSksIGlvcygxMy4wKSk7CiAtICh2b2lkKV9jbGVhcldl
YlByb2Nlc3NDYWNoZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tf
SU9TX1RCQSkpOwogLSAodm9pZClfc2V0VXNlU2VwYXJhdGVTZXJ2aWNlV29ya2VyUHJvY2Vzczoo
Qk9PTClmb3JjZVNlcnZpY2VXb3JrZXJQcm9jZXNzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tf
TUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CistIChwaWRfdClfZ3B1UHJvY2Vzc0lkZW50aWZp
ZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsK
IAogLy8gVGVzdCBvbmx5LiBSZXR1cm5zIHdlYiBwcm9jZXNzZXMgcnVubmluZyB3ZWIgcGFnZXMg
KGRvZXMgbm90IGluY2x1ZGUgd2ViIHByb2Nlc3NlcyBydW5uaW5nIHNlcnZpY2Ugd29ya2VycykK
IC0gKHNpemVfdClfd2ViUGFnZUNvbnRlbnRQcm9jZXNzQ291bnQgV0tfQVBJX0FWQUlMQUJMRSht
YWNvcygxMC4xMy40KSwgaW9zKDExLjMpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0dQVS9HUFVQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
R1BVL0dQVVByb2Nlc3NQcm94eS5jcHAKaW5kZXggMTVmZTYwYTE2NTMyODQ3ZTMzMjM5ZDM3NDhl
NDFhZDEzN2EwOThiMC4uMWY3N2JlNGEyYWM2NjIwODlhZmQ4ZTc4NzQyODU3YWUxNzQ2ZWM0YyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvR1BVL0dQVVByb2Nlc3NQcm94eS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvR1BVL0dQVVByb2Nlc3NQcm94eS5jcHAK
QEAgLTg1LDQxICs4NSwxNiBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2hvdWxkQ3JlYXRlTWljcm9w
aG9uZVNhbmRib3hFeHRlbnNpb24oKQogCiBHUFVQcm9jZXNzUHJveHkqIEdQVVByb2Nlc3NQcm94
eTo6bV9zaW5nbGV0b24gPSBudWxscHRyOwogCi1HUFVQcm9jZXNzUHJveHkmIEdQVVByb2Nlc3NQ
cm94eTo6c2luZ2xldG9uKCkKK1JlZjxHUFVQcm9jZXNzUHJveHk+IEdQVVByb2Nlc3NQcm94eTo6
Z2V0T3JDcmVhdGUoKQogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7Ci0KLSAgICBz
dGF0aWMgc3RkOjpvbmNlX2ZsYWcgb25jZUZsYWc7Ci0gICAgc3RhdGljIExhenlOZXZlckRlc3Ry
b3llZDxHUFVQcm9jZXNzUHJveHk+IGdwdVByb2Nlc3M7Ci0KLSAgICBzdGQ6OmNhbGxfb25jZShv
bmNlRmxhZywgW10gewotICAgICAgICBncHVQcm9jZXNzLmNvbnN0cnVjdCgpOwotCi0gICAgICAg
IEdQVVByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMgcGFyYW1ldGVyczsKLSNpZiBFTkFCTEUoTUVE
SUFfU1RSRUFNKQotICAgICAgICBwYXJhbWV0ZXJzLnVzZU1vY2tDYXB0dXJlRGV2aWNlcyA9IGdw
dVByb2Nlc3MtPm1fdXNlTW9ja0NhcHR1cmVEZXZpY2VzOwotCi0gICAgICAgIGJvb2wgbmVlZHND
YW1lcmFTYW5kYm94RXh0ZW5zaW9uID0gc2hvdWxkQ3JlYXRlQ2FtZXJhU2FuZGJveEV4dGVuc2lv
bigpOwotICAgICAgICBib29sIG5lZWRzTWljcm9waG9uZVNhbmRib3hFeHRlbnNpb24gPSBzaG91
bGRDcmVhdGVNaWNyb3Bob25lU2FuZGJveEV4dGVuc2lvbigpOwotICAgICAgICBpZiAobmVlZHND
YW1lcmFTYW5kYm94RXh0ZW5zaW9uKQotICAgICAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y3Jl
YXRlSGFuZGxlRm9yR2VuZXJpY0V4dGVuc2lvbigiY29tLmFwcGxlLndlYmtpdC5jYW1lcmEiX3Ms
IHBhcmFtZXRlcnMuY2FtZXJhU2FuZGJveEV4dGVuc2lvbkhhbmRsZSk7Ci0gICAgICAgIGlmIChu
ZWVkc01pY3JvcGhvbmVTYW5kYm94RXh0ZW5zaW9uKQotICAgICAgICAgICAgU2FuZGJveEV4dGVu
c2lvbjo6Y3JlYXRlSGFuZGxlRm9yR2VuZXJpY0V4dGVuc2lvbigiY29tLmFwcGxlLndlYmtpdC5t
aWNyb3Bob25lIl9zLCBwYXJhbWV0ZXJzLm1pY3JvcGhvbmVTYW5kYm94RXh0ZW5zaW9uSGFuZGxl
KTsKLSNpZiBQTEFURk9STShJT1MpCi0gICAgICAgIGlmIChuZWVkc0NhbWVyYVNhbmRib3hFeHRl
bnNpb24gfHwgbmVlZHNNaWNyb3Bob25lU2FuZGJveEV4dGVuc2lvbikKLSAgICAgICAgICAgIFNh
bmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvck1hY2hMb29rdXAoImNvbS5hcHBsZS50Y2Nk
Il9zLCBXVEY6Om51bGxvcHQsIHBhcmFtZXRlcnMudGNjU2FuZGJveEV4dGVuc2lvbkhhbmRsZSk7
Ci0jZW5kaWYKLSNlbmRpZgotICAgICAgICBwYXJhbWV0ZXJzLnBhcmVudFBJRCA9IGdldEN1cnJl
bnRQcm9jZXNzSUQoKTsKLQotICAgICAgICAvLyBJbml0aWFsaXplIHRoZSBHUFUgcHJvY2Vzcy4K
LSAgICAgICAgZ3B1UHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6R1BVUHJvY2Vzczo6SW5pdGlhbGl6
ZUdQVVByb2Nlc3MocGFyYW1ldGVycyksIDApOwotICAgICAgICBncHVQcm9jZXNzLT51cGRhdGVQ
cm9jZXNzQXNzZXJ0aW9uKCk7Ci0KLSAgICAgICAgbV9zaW5nbGV0b24gPSAmZ3B1UHJvY2Vzcy5n
ZXQoKTsKLSAgICB9KTsKLQotICAgIHJldHVybiBncHVQcm9jZXNzLmdldCgpOworICAgIGlmICht
X3NpbmdsZXRvbikgeworICAgICAgICBBU1NFUlQobV9zaW5nbGV0b24tPnN0YXRlKCkgIT0gU3Rh
dGU6OlRlcm1pbmF0ZWQpOworICAgICAgICByZXR1cm4gKm1fc2luZ2xldG9uOworICAgIH0KKyAg
ICBhdXRvIGdwdVByb2Nlc3MgPSBhZG9wdFJlZigqbmV3IEdQVVByb2Nlc3NQcm94eSk7CisgICAg
bV9zaW5nbGV0b24gPSBncHVQcm9jZXNzLnB0cigpOworICAgIHJldHVybiBncHVQcm9jZXNzOwog
fQogCiBHUFVQcm9jZXNzUHJveHk6OkdQVVByb2Nlc3NQcm94eSgpCkBAIC0xMzAsOSArMTA1LDM0
IEBAIEdQVVByb2Nlc3NQcm94eTo6R1BVUHJvY2Vzc1Byb3h5KCkKICNlbmRpZgogewogICAgIGNv
bm5lY3QoKTsKKworICAgIEdQVVByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMgcGFyYW1ldGVyczsK
KyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIHBhcmFtZXRlcnMudXNlTW9ja0NhcHR1cmVE
ZXZpY2VzID0gbV91c2VNb2NrQ2FwdHVyZURldmljZXM7CisKKyAgICBib29sIG5lZWRzQ2FtZXJh
U2FuZGJveEV4dGVuc2lvbiA9IHNob3VsZENyZWF0ZUNhbWVyYVNhbmRib3hFeHRlbnNpb24oKTsK
KyAgICBib29sIG5lZWRzTWljcm9waG9uZVNhbmRib3hFeHRlbnNpb24gPSBzaG91bGRDcmVhdGVN
aWNyb3Bob25lU2FuZGJveEV4dGVuc2lvbigpOworICAgIGlmIChuZWVkc0NhbWVyYVNhbmRib3hF
eHRlbnNpb24pCisgICAgICAgIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvckdlbmVy
aWNFeHRlbnNpb24oImNvbS5hcHBsZS53ZWJraXQuY2FtZXJhIl9zLCBwYXJhbWV0ZXJzLmNhbWVy
YVNhbmRib3hFeHRlbnNpb25IYW5kbGUpOworICAgIGlmIChuZWVkc01pY3JvcGhvbmVTYW5kYm94
RXh0ZW5zaW9uKQorICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JHZW5l
cmljRXh0ZW5zaW9uKCJjb20uYXBwbGUud2Via2l0Lm1pY3JvcGhvbmUiX3MsIHBhcmFtZXRlcnMu
bWljcm9waG9uZVNhbmRib3hFeHRlbnNpb25IYW5kbGUpOworI2lmIFBMQVRGT1JNKElPUykKKyAg
ICBpZiAobmVlZHNDYW1lcmFTYW5kYm94RXh0ZW5zaW9uIHx8IG5lZWRzTWljcm9waG9uZVNhbmRi
b3hFeHRlbnNpb24pCisgICAgICAgIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvck1h
Y2hMb29rdXAoImNvbS5hcHBsZS50Y2NkIl9zLCBXVEY6Om51bGxvcHQsIHBhcmFtZXRlcnMudGNj
U2FuZGJveEV4dGVuc2lvbkhhbmRsZSk7CisjZW5kaWYKKyNlbmRpZgorICAgIHBhcmFtZXRlcnMu
cGFyZW50UElEID0gZ2V0Q3VycmVudFByb2Nlc3NJRCgpOworCisgICAgLy8gSW5pdGlhbGl6ZSB0
aGUgR1BVIHByb2Nlc3MuCisgICAgc2VuZChNZXNzYWdlczo6R1BVUHJvY2Vzczo6SW5pdGlhbGl6
ZUdQVVByb2Nlc3MocGFyYW1ldGVycyksIDApOworICAgIHVwZGF0ZVByb2Nlc3NBc3NlcnRpb24o
KTsKIH0KIAotR1BVUHJvY2Vzc1Byb3h5Ojp+R1BVUHJvY2Vzc1Byb3h5KCkgPSBkZWZhdWx0Owor
R1BVUHJvY2Vzc1Byb3h5Ojp+R1BVUHJvY2Vzc1Byb3h5KCkKK3sKKyAgICBpZiAobV9zaW5nbGV0
b24gPT0gdGhpcykKKyAgICAgICAgbV9zaW5nbGV0b24gPSBudWxscHRyOworfQogCiAjaWYgRU5B
QkxFKE1FRElBX1NUUkVBTSkKIHZvaWQgR1BVUHJvY2Vzc1Byb3h5OjpzZXRVc2VNb2NrQ2FwdHVy
ZURldmljZXMoYm9vbCB2YWx1ZSkKQEAgLTE3MCw2ICsxNzAsOCBAQCB2b2lkIEdQVVByb2Nlc3NQ
cm94eTo6Y29ubmVjdGlvbldpbGxPcGVuKElQQzo6Q29ubmVjdGlvbiYpCiB2b2lkIEdQVVByb2Nl
c3NQcm94eTo6cHJvY2Vzc1dpbGxTaHV0RG93bihJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24p
CiB7CiAgICAgQVNTRVJUX1VOVVNFRChjb25uZWN0aW9uLCB0aGlzLT5jb25uZWN0aW9uKCkgPT0g
JmNvbm5lY3Rpb24pOworICAgIGlmIChtX3NpbmdsZXRvbiA9PSB0aGlzKQorICAgICAgICBtX3Np
bmdsZXRvbiA9IG51bGxwdHI7CiB9CiAKIHZvaWQgR1BVUHJvY2Vzc1Byb3h5OjpnZXRHUFVQcm9j
ZXNzQ29ubmVjdGlvbihXZWJQcm9jZXNzUHJveHkmIHdlYlByb2Nlc3NQcm94eSwgTWVzc2FnZXM6
OldlYlByb2Nlc3NQcm94eTo6R2V0R1BVUHJvY2Vzc0Nvbm5lY3Rpb246OkRlbGF5ZWRSZXBseSYm
IHJlcGx5KQpAQCAtMjA4LDYgKzIxMCw5IEBAIHZvaWQgR1BVUHJvY2Vzc1Byb3h5OjpnZXRHUFVQ
cm9jZXNzQ29ubmVjdGlvbihXZWJQcm9jZXNzUHJveHkmIHdlYlByb2Nlc3NQcm94eSwKIAogdm9p
ZCBHUFVQcm9jZXNzUHJveHk6OmdwdVByb2Nlc3NDcmFzaGVkKCkKIHsKKyAgICBpZiAobV9zaW5n
bGV0b24gPT0gdGhpcykKKyAgICAgICAgbV9zaW5nbGV0b24gPSBudWxscHRyOworCiAgICAgZm9y
IChhdXRvJiBwcm9jZXNzUG9vbCA6IFdlYlByb2Nlc3NQb29sOjphbGxQcm9jZXNzUG9vbHMoKSkK
ICAgICAgICAgcHJvY2Vzc1Bvb2wtPmdwdVByb2Nlc3NDcmFzaGVkKHByb2Nlc3NJZGVudGlmaWVy
KCkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvR1BVL0dQVVByb2Nl
c3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvR1BVL0dQVVByb2Nlc3NQcm94eS5o
CmluZGV4IGRiYzllNjlkNzM4MWQ4Y2RmOThhMGI2MjU2OGZjM2M2MmY2ZmIxNWMuLjQzMDU3MjA5
ZmQ0NzBiZGMyNDQ1NzA3ZTk3NDkwMzcwNTQxOGJkNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0dQVS9HUFVQcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc1Byb3h5LmgKQEAgLTQ3LDEzICs0NywxNCBAQCBjbGFzcyBX
ZWJQcm9jZXNzUHJveHk7CiBjbGFzcyBXZWJzaXRlRGF0YVN0b3JlOwogc3RydWN0IEdQVVByb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnM7CiAKLWNsYXNzIEdQVVByb2Nlc3NQcm94eSBmaW5hbCA6IHB1
YmxpYyBBdXhpbGlhcnlQcm9jZXNzUHJveHksIHByaXZhdGUgUHJvY2Vzc1Rocm90dGxlckNsaWVu
dCwgcHVibGljIENhbk1ha2VXZWFrUHRyPEdQVVByb2Nlc3NQcm94eT4geworY2xhc3MgR1BVUHJv
Y2Vzc1Byb3h5IGZpbmFsIDogcHVibGljIEF1eGlsaWFyeVByb2Nlc3NQcm94eSwgcHJpdmF0ZSBQ
cm9jZXNzVGhyb3R0bGVyQ2xpZW50LCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8R1BVUHJvY2Vzc1By
b3h5PiwgcHVibGljIFJlZkNvdW50ZWQ8R1BVUHJvY2Vzc1Byb3h5PiB7CiAgICAgV1RGX01BS0Vf
RkFTVF9BTExPQ0FURUQ7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoR1BVUHJvY2Vzc1Byb3h5
KTsKICAgICBmcmllbmQgTGF6eU5ldmVyRGVzdHJveWVkPEdQVVByb2Nlc3NQcm94eT47CiBwdWJs
aWM6Ci0gICAgc3RhdGljIEdQVVByb2Nlc3NQcm94eSYgc2luZ2xldG9uKCk7CisgICAgc3RhdGlj
IFJlZjxHUFVQcm9jZXNzUHJveHk+IGdldE9yQ3JlYXRlKCk7CiAgICAgc3RhdGljIEdQVVByb2Nl
c3NQcm94eSogc2luZ2xldG9uSWZDcmVhdGVkKCkgeyByZXR1cm4gbV9zaW5nbGV0b247IH0KKyAg
ICB+R1BVUHJvY2Vzc1Byb3h5KCk7CiAKICAgICB2b2lkIGdldEdQVVByb2Nlc3NDb25uZWN0aW9u
KFdlYlByb2Nlc3NQcm94eSYsIE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldEdQVVByb2Nl
c3NDb25uZWN0aW9uRGVsYXllZFJlcGx5JiYpOwogCkBAIC03OCw3ICs3OSw2IEBAIHB1YmxpYzoK
IAogcHJpdmF0ZToKICAgICBleHBsaWNpdCBHUFVQcm9jZXNzUHJveHkoKTsKLSAgICB+R1BVUHJv
Y2Vzc1Byb3h5KCk7CiAKICAgICB2b2lkIGFkZFNlc3Npb24oY29uc3QgV2Vic2l0ZURhdGFTdG9y
ZSYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9V
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKaW5kZXggYjVkMzhlOWZl
MjZiNGE1NmVjOGVlOTZiZGYzMTcwNzk5YzZmYzk1NS4uNzlhZjFiMjc1ZjI3YTc3ODUxZWVjNDNm
NGEyNzgxODQ1OGE1MjEyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcApA
QCAtNzY3LDcgKzc2Nyw3IEBAIHZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
UHJveHk6OnN5bmNXaXRoV2ViQ29yZVByZWZzKCkgY29uc3QKIAogI2lmIEVOQUJMRShHUFVfUFJP
Q0VTUykKICAgICBpZiAobV9wYWdlLnByZWZlcmVuY2VzKCkuY2FwdHVyZUF1ZGlvSW5HUFVQcm9j
ZXNzRW5hYmxlZCgpIHx8IG1fcGFnZS5wcmVmZXJlbmNlcygpLmNhcHR1cmVWaWRlb0luR1BVUHJv
Y2Vzc0VuYWJsZWQoKSkKLSAgICAgICAgR1BVUHJvY2Vzc1Byb3h5OjpzaW5nbGV0b24oKS5zZXRV
c2VNb2NrQ2FwdHVyZURldmljZXMobW9ja0RldmljZXNFbmFibGVkKTsKKyAgICAgICAgbV9wYWdl
LnByb2Nlc3MoKS5wcm9jZXNzUG9vbCgpLmVuc3VyZUdQVVByb2Nlc3MoKS5zZXRVc2VNb2NrQ2Fw
dHVyZURldmljZXMobW9ja0RldmljZXNFbmFibGVkKTsKICNlbmRpZgogCiAgICAgaWYgKE1vY2tS
ZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjptb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlckVu
YWJsZWQoKSA9PSBtb2NrRGV2aWNlc0VuYWJsZWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmNwcAppbmRleCBjNjYwZTU2NmIwOGRkMzY3OTEzZDIyNDUwNmJkZjFlZGYwMGQ1
ZDg3Li5lM2ZlMGIzYjczNjdhYzAyMTBlOWYyZDcyNmFmNGZlZmEwMWZlYzg3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTgwNjYsMTAgKzgwNjYsMTAgQEAg
dm9pZCBXZWJQYWdlUHJveHk6OndpbGxTdGFydENhcHR1cmUoY29uc3QgVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RQcm94eSYgcmVxdWUKICAgICBpZiAoIXByZWZlcmVuY2VzKCkuY2FwdHVyZVZp
ZGVvSW5HUFVQcm9jZXNzRW5hYmxlZCgpICYmICFwcmVmZXJlbmNlcygpLmNhcHR1cmVBdWRpb0lu
R1BVUHJvY2Vzc0VuYWJsZWQoKSkKICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKCk7CiAKLSAgICBh
dXRvJiBncHVQcm9jZXNzID0gR1BVUHJvY2Vzc1Byb3h5OjpzaW5nbGV0b24oKTsKKyAgICBhdXRv
JiBncHVQcm9jZXNzID0gcHJvY2VzcygpLnByb2Nlc3NQb29sKCkuZW5zdXJlR1BVUHJvY2Vzcygp
OwogICAgIGdwdVByb2Nlc3MudXBkYXRlQ2FwdHVyZUFjY2VzcyhyZXF1ZXN0LnJlcXVpcmVzQXVk
aW9DYXB0dXJlKCksIHJlcXVlc3QucmVxdWlyZXNWaWRlb0NhcHR1cmUoKSwgcmVxdWVzdC5yZXF1
aXJlc0Rpc3BsYXlDYXB0dXJlKCksIG1fcHJvY2Vzcy0+Y29yZVByb2Nlc3NJZGVudGlmaWVyKCks
IFdURk1vdmUoY2FsbGJhY2spKTsKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgIEdQVVBy
b2Nlc3NQcm94eTo6c2luZ2xldG9uKCkuc2V0T3JpZW50YXRpb25Gb3JNZWRpYUNhcHR1cmUobV9k
ZXZpY2VPcmllbnRhdGlvbik7CisgICAgZ3B1UHJvY2Vzcy5zZXRPcmllbnRhdGlvbkZvck1lZGlh
Q2FwdHVyZShtX2RldmljZU9yaWVudGF0aW9uKTsKICNlbmRpZgogI2Vsc2UKICAgICBjYWxsYmFj
aygpOwpAQCAtMTAxMjUsNyArMTAxMjUsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6c2V0T3JpZW50
YXRpb25Gb3JNZWRpYUNhcHR1cmUodWludDY0X3Qgb3JpZW50YXRpb24pCiAgICAgaWYgKGF1dG8q
IHByb3h5ID0gbV9wcm9jZXNzLT51c2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5KCkpCiAgICAg
ICAgIHByb3h5LT5zZXRPcmllbnRhdGlvbihvcmllbnRhdGlvbik7CiAKLSAgICBhdXRvKiBncHVQ
cm9jZXNzID0gR1BVUHJvY2Vzc1Byb3h5OjpzaW5nbGV0b25JZkNyZWF0ZWQoKTsKKyAgICBhdXRv
KiBncHVQcm9jZXNzID0gbV9wcm9jZXNzLT5wcm9jZXNzUG9vbCgpLmdwdVByb2Nlc3MoKTsKICAg
ICBpZiAoZ3B1UHJvY2VzcyAmJiBwcmVmZXJlbmNlcygpLmNhcHR1cmVWaWRlb0luR1BVUHJvY2Vz
c0VuYWJsZWQoKSkKICAgICAgICAgZ3B1UHJvY2Vzcy0+c2V0T3JpZW50YXRpb25Gb3JNZWRpYUNh
cHR1cmUob3JpZW50YXRpb24pOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
cm9jZXNzUG9vbC5jcHAKaW5kZXggZTA0NTFmYjQ4YjJkMjc3ODBhMWFkZTljZjNkMTJmNjZiNGU0
NGU0Yi4uOWQ5MmQzMDRiODVjMDFjZjc0MzA0YTE0ZjNjNmVkYTczYjY0ZjA5ZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcApAQCAtNDc5LDIxICs0NzksMzIg
QEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6c2VydmljZVdvcmtlclByb2Nlc3NDcmFzaGVkKFdlYlBy
b2Nlc3NQcm94eSYgcHJveHkpCiB9CiAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCitHUFVQcm9j
ZXNzUHJveHkmIFdlYlByb2Nlc3NQb29sOjplbnN1cmVHUFVQcm9jZXNzKCkKK3sKKyAgICBpZiAo
IW1fZ3B1UHJvY2VzcykKKyAgICAgICAgbV9ncHVQcm9jZXNzID0gR1BVUHJvY2Vzc1Byb3h5Ojpn
ZXRPckNyZWF0ZSgpOworICAgIHJldHVybiAqbV9ncHVQcm9jZXNzOworfQorCiB2b2lkIFdlYlBy
b2Nlc3NQb29sOjpncHVQcm9jZXNzQ3Jhc2hlZChQcm9jZXNzSUQgaWRlbnRpZmllcikKIHsKKyAg
ICBtX2dwdVByb2Nlc3MgPSBudWxscHRyOworCiAgICAgbV9jbGllbnQuZ3B1UHJvY2Vzc0RpZENy
YXNoKHRoaXMsIGlkZW50aWZpZXIpOwogICAgIFZlY3RvcjxSZWZQdHI8V2ViUHJvY2Vzc1Byb3h5
Pj4gcHJvY2Vzc2VzID0gbV9wcm9jZXNzZXM7CiAgICAgZm9yIChhdXRvJiBwcm9jZXNzIDogcHJv
Y2Vzc2VzKQogICAgICAgICBwcm9jZXNzLT5ncHVQcm9jZXNzQ3Jhc2hlZCgpOworCisgICAgLy8g
RklYTUU6IFdlIHNob3VsZCBhdm9pZCB0ZXJtaW5hdGluZyBhbGwgV2ViUHJvY2Vzc2VzIHdoZW5l
dmVyIHRoZSBHUFVQcm9jZXNzIGNyYXNoZXMuCiAgICAgdGVybWluYXRlQWxsV2ViQ29udGVudFBy
b2Nlc3NlcygpOwogfQogCiB2b2lkIFdlYlByb2Nlc3NQb29sOjpnZXRHUFVQcm9jZXNzQ29ubmVj
dGlvbihXZWJQcm9jZXNzUHJveHkmIHdlYlByb2Nlc3NQcm94eSwgTWVzc2FnZXM6OldlYlByb2Nl
c3NQcm94eTo6R2V0R1BVUHJvY2Vzc0Nvbm5lY3Rpb246OkRlbGF5ZWRSZXBseSYmIHJlcGx5KQog
ewotICAgIEdQVVByb2Nlc3NQcm94eTo6c2luZ2xldG9uKCkuZ2V0R1BVUHJvY2Vzc0Nvbm5lY3Rp
b24od2ViUHJvY2Vzc1Byb3h5LCBbdGhpcywgd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyks
IHdlYlByb2Nlc3NQcm94eSA9IG1ha2VXZWFrUHRyKHdlYlByb2Nlc3NQcm94eSksIHJlcGx5ID0g
V1RGTW92ZShyZXBseSldIChhdXRvJiBjb25uZWN0aW9uSW5mbykgbXV0YWJsZSB7CisgICAgZW5z
dXJlR1BVUHJvY2VzcygpLmdldEdQVVByb2Nlc3NDb25uZWN0aW9uKHdlYlByb2Nlc3NQcm94eSwg
W3RoaXMsIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpLCB3ZWJQcm9jZXNzUHJveHkgPSBt
YWtlV2Vha1B0cih3ZWJQcm9jZXNzUHJveHkpLCByZXBseSA9IFdURk1vdmUocmVwbHkpXSAoYXV0
byYgY29ubmVjdGlvbkluZm8pIG11dGFibGUgewogICAgICAgICBpZiAoVU5MSUtFTFkoIUlQQzo6
Q29ubmVjdGlvbjo6aWRlbnRpZmllcklzVmFsaWQoY29ubmVjdGlvbkluZm8uaWRlbnRpZmllcigp
KSAmJiB3ZWJQcm9jZXNzUHJveHkgJiYgd2Vha1RoaXMpKSB7CiAgICAgICAgICAgICBXRUJQUk9D
RVNTUE9PTF9SRUxFQVNFX0xPR19FUlJPUihQcm9jZXNzLCAiZ2V0R1BVUHJvY2Vzc0Nvbm5lY3Rp
b246IEZhaWxlZCBmaXJzdCBhdHRlbXB0LCByZXRyeWluZyIpOwotICAgICAgICAgICAgR1BVUHJv
Y2Vzc1Byb3h5OjpzaW5nbGV0b24oKS5nZXRHUFVQcm9jZXNzQ29ubmVjdGlvbigqd2ViUHJvY2Vz
c1Byb3h5LCBXVEZNb3ZlKHJlcGx5KSk7CisgICAgICAgICAgICBlbnN1cmVHUFVQcm9jZXNzKCku
Z2V0R1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKndlYlByb2Nlc3NQcm94eSwgV1RGTW92ZShyZXBseSkp
OwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAgIHJlcGx5KGNvbm5lY3Rp
b25JbmZvKTsKQEAgLTIwMjIsNyArMjAzMyw3IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnVwZGF0
ZUF1ZGlibGVNZWRpYUFzc2VydGlvbnMoKQogICAgIG1fYXVkaWJsZU1lZGlhQWN0aXZpdHkgPSBB
dWRpYmxlTWVkaWFBY3Rpdml0eSB7CiAgICAgICAgIG1ha2VVbmlxdWVSZWY8UHJvY2Vzc0Fzc2Vy
dGlvbj4oZ2V0Q3VycmVudFByb2Nlc3NJRCgpLCAiV2ViS2l0IE1lZGlhIFBsYXliYWNrIl9zLCBQ
cm9jZXNzQXNzZXJ0aW9uVHlwZTo6TWVkaWFQbGF5YmFjaykKICNpZiBFTkFCTEUoR1BVX1BST0NF
U1MpCi0gICAgICAgICwgR1BVUHJvY2Vzc1Byb3h5OjpzaW5nbGV0b25JZkNyZWF0ZWQoKSA/IG1h
a2VVbmlxdWU8UHJvY2Vzc0Fzc2VydGlvbj4oR1BVUHJvY2Vzc1Byb3h5OjpzaW5nbGV0b24oKS5w
cm9jZXNzSWRlbnRpZmllcigpLCAiV2ViS2l0IE1lZGlhIFBsYXliYWNrIl9zLCBQcm9jZXNzQXNz
ZXJ0aW9uVHlwZTo6TWVkaWFQbGF5YmFjaykgOiBudWxscHRyCisgICAgICAgICwgZ3B1UHJvY2Vz
cygpID8gbWFrZVVuaXF1ZTxQcm9jZXNzQXNzZXJ0aW9uPihncHVQcm9jZXNzKCktPnByb2Nlc3NJ
ZGVudGlmaWVyKCksICJXZWJLaXQgTWVkaWEgUGxheWJhY2siX3MsIFByb2Nlc3NBc3NlcnRpb25U
eXBlOjpNZWRpYVBsYXliYWNrKSA6IG51bGxwdHIKICNlbmRpZgogICAgIH07CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAppbmRleCA0ZTJlOWE1MjNlNDZlZTQ0NzQ3
Y2UzNTAyYWU5NTBlNThmOTk1MDJlLi45Y2ZlNmQ0NzBmY2FjMjBlMmRhZDAyMGQ0NDU4M2YyYTc2
NjgyNjkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9v
bC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKQEAgLTM1
Niw2ICszNTYsOSBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogICAgIHZvaWQg
Z3B1UHJvY2Vzc0NyYXNoZWQoUHJvY2Vzc0lEKTsKICAgICB2b2lkIGdldEdQVVByb2Nlc3NDb25u
ZWN0aW9uKFdlYlByb2Nlc3NQcm94eSYsIE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldEdQ
VVByb2Nlc3NDb25uZWN0aW9uRGVsYXllZFJlcGx5JiYpOworCisgICAgR1BVUHJvY2Vzc1Byb3h5
JiBlbnN1cmVHUFVQcm9jZXNzKCk7CisgICAgR1BVUHJvY2Vzc1Byb3h5KiBncHVQcm9jZXNzKCkg
Y29uc3QgeyByZXR1cm4gbV9ncHVQcm9jZXNzLmdldCgpOyB9CiAjZW5kaWYKIAogI2lmIEVOQUJM
RShXRUJfQVVUSE4pCkBAIC01OTQsNiArNTk3LDEwIEBAIHByaXZhdGU6CiAgICAgT3B0aW9uYWw8
VXNlckNvbnRlbnRDb250cm9sbGVySWRlbnRpZmllcj4gbV91c2VyQ29udGVudENvbnRyb2xsZXJJ
REZvclNlcnZpY2VXb3JrZXI7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKyAg
ICBSZWZQdHI8R1BVUHJvY2Vzc1Byb3h5PiBtX2dwdVByb2Nlc3M7CisjZW5kaWYKKwogICAgIFJl
ZjxXZWJQYWdlR3JvdXA+IG1fZGVmYXVsdFBhZ2VHcm91cDsKIAogICAgIFJlZlB0cjxBUEk6Ok9i
amVjdD4gbV9pbmplY3RlZEJ1bmRsZUluaXRpYWxpemF0aW9uVXNlckRhdGE7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlldy5tbSBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3Lm1tCmluZGV4IDhmMWZmNDA2ZDk4ZTg5
Y2Q5NDhjOGE3NDQ1MzkxNDhlZjVmYzM4YTkuLmYzOTY4ZDZlNGM2ZmVlYjMwZTYyNTM0YjMyNjBm
NzdhNjFlYjEwMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0Nv
bnRlbnRWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRW
aWV3Lm1tCkBAIC0yMzYsMTAgKzIzNiwxMSBAQCAtICh2b2lkKV9zZXR1cFZpc2liaWxpdHlQcm9w
YWdhdGlvblZpZXcKIAogLSAodm9pZClfc2V0dXBWaXNpYmlsaXR5UHJvcGFnYXRpb25WaWV3Rm9y
R1BVUHJvY2VzcwogewotICAgIGlmICghV2ViS2l0OjpHUFVQcm9jZXNzUHJveHk6OnNpbmdsZXRv
bklmQ3JlYXRlZCgpKQorICAgIGF1dG8qIGdwdVByb2Nlc3MgPSBfcGFnZS0+cHJvY2VzcygpLnBy
b2Nlc3NQb29sKCkuZ3B1UHJvY2VzcygpOworICAgIGlmICghZ3B1UHJvY2VzcykKICAgICAgICAg
cmV0dXJuOwotICAgIGF1dG8gcHJvY2Vzc0lkZW50aWZpZXIgPSBXZWJLaXQ6OkdQVVByb2Nlc3NQ
cm94eTo6c2luZ2xldG9uKCkucHJvY2Vzc0lkZW50aWZpZXIoKTsKLSAgICBhdXRvIGNvbnRleHRJ
RCA9IFdlYktpdDo6R1BVUHJvY2Vzc1Byb3h5OjpzaW5nbGV0b24oKS5jb250ZXh0SURGb3JWaXNp
YmlsaXR5UHJvcGFnYXRpb24oKTsKKyAgICBhdXRvIHByb2Nlc3NJZGVudGlmaWVyID0gZ3B1UHJv
Y2Vzcy0+cHJvY2Vzc0lkZW50aWZpZXIoKTsKKyAgICBhdXRvIGNvbnRleHRJRCA9IGdwdVByb2Nl
c3MtPmNvbnRleHRJREZvclZpc2liaWxpdHlQcm9wYWdhdGlvbigpOwogICAgIGlmICghcHJvY2Vz
c0lkZW50aWZpZXIgfHwgIWNvbnRleHRJRCkKICAgICAgICAgcmV0dXJuOwogCmRpZmYgLS1naXQg
YS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYTU3NzA0M2RkNzBhYmJh
MDA5ODQ3MzQ1MDkzMWI2NzM4OTBjMWQ4OS4uYWZhM2M5M2Y2NTNhZGNhNzhmODVmMjQyMmJhZTVj
MWUzYTJmMGM0MCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIwLTExLTEwICBDaHJpcyBEdW1leiAgPGNkdW1lekBh
cHBsZS5jb20+CisKKyAgICAgICAgR1BVUHJvY2VzcyBkb2VzIG5vdCBwcm9wZXJseSBnZXQgcmVs
YXVuY2hlZCBhZnRlciBjcmFzaGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjE4NzY5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgQWRkIEFQSSB0ZXN0IGNvdmVyYWdlLgorCisgICAgICAgICogVGVzdFdl
YktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAg
ICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9HUFVQcm9jZXNzLm1tOiBBZGRlZC4K
KyAgICAgICAgKFRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvYXVkaW8tY29udGV4dC1wbGF5aW5nLmh0bWw6IEFkZGVkLgorCiAyMDIwLTExLTA5ICBBbGFu
IEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByZXZlcnRp
bmcgcjI2OTYwMy4KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQ
SS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2Vi
S2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMTJjODAxMGNlZmFjMzVmMDZl
OGMzYmNiNDc4M2NkOTM3MTQ5NWY3Mi4uMjcyOGUxMmJjMjE3YWYxMzRlNDQzZDFkOTUyYmI0ZDVk
OGU3MzQzMCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2Vi
S2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTI1MCw2ICsyNTAsNyBAQAogCQk0
NjM5N0I5NTFEQzJDODUwMDA5QTc4QUUgLyogRE9NTm9kZS5tbSBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2Mzk3Qjk0MURDMkM4NTAwMDlBNzhBRSAvKiBE
T01Ob2RlLm1tICovOyB9OwogCQk0NjQ3QjEyNjFFQkEzQjg1MDA0MUQ3RUYgLyogUHJvY2Vzc0Rp
ZFRlcm1pbmF0ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA0NjQ3QjEyNTFFQkEzQjczMDA0MUQ3RUYgLyogUHJvY2Vzc0RpZFRlcm1pbmF0ZS5jcHAg
Ki87IH07CiAJCTQ2NEM3NjREMjMwREY4NUMwMEFGQjAyMCAvKiBCYWRTZXJ2aWNlV29ya2VyUmVn
aXN0cmF0aW9ucy00LnNxbGl0ZTMgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNDY0Qzc2NEMyMzBERjgzMjAwQUZCMDIwIC8qIEJhZFNlcnZpY2VX
b3JrZXJSZWdpc3RyYXRpb25zLTQuc3FsaXRlMyAqLzsgfTsKKwkJNDY1RTI4MDcyNTVCMkE2QTAw
NjNBNzg3IC8qIEdQVVByb2Nlc3MubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA0NjVFMjgwNjI1NUIyQTY5MDA2M0E3ODcgLyogR1BVUHJvY2Vzcy5tbSAq
LzsgfTsKIAkJNDY2QzM4NDMyMTA2MzdERTAwNkE4OERFIC8qIG5vdGlmeS1yZXNvdXJjZUxvYWRP
YnNlcnZlci5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDQ2NkMzODQyMjEwNjM3Q0UwMDZBODhERSAvKiBub3RpZnktcmVzb3VyY2VMb2Fk
T2JzZXJ2ZXIuaHRtbCAqLzsgfTsKIAkJNDY3QzU2NTMyMUI1RUQxMzAwNTc1MTZEIC8qIEdldFNl
c3Npb25Db29raWUuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA0NjdDNTY1MTIxQjVFQ0RGMDA1NzUxNkQgLyogR2V0U2Vzc2lvbkNvb2tp
ZS5odG1sICovOyB9OwogCQk0NjdDNTY1NDIxQjVFRDEzMDA1NzUxNkQgLyogU2V0U2Vzc2lvbkNv
b2tpZS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDQ2N0M1NjUyMjFCNUVDREYwMDU3NTE2RCAvKiBTZXRTZXNzaW9uQ29va2llLmh0bWwg
Ki87IH07CkBAIC0yNjYsNiArMjY3LDcgQEAKIAkJNDZFNjZBOTAxRjBENzU1OTAwMjZEODNDIC8q
IFdLV2ViVmlld0RpYWdub3N0aWNMb2dnaW5nLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNDZFNjZBOEYxRjBENzU1OTAwMjZEODNDIC8qIFdLV2ViVmll
d0RpYWdub3N0aWNMb2dnaW5nLm1tICovOyB9OwogCQk0NkU4MTZGODFFNzlFMjlDMDAzNzVBREMg
LyogUmVzdG9yZVN0YXRlQWZ0ZXJUZXJtaW5hdGlvbi5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2RTgxNkY3MUU3OUUyOTEwMDM3NUFEQyAvKiBSZXN0
b3JlU3RhdGVBZnRlclRlcm1pbmF0aW9uLm1tICovOyB9OwogCQk0NkVCRDg0NzIzNzIzMjBGMDAy
MjNBNkUgLyogUmVzdG9yZVNjcm9sbFBvc2l0aW9uLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDZFQkQ4NDYyMzcyMzFFNjAwMjIzQTZFIC8qIFJlc3Rv
cmVTY3JvbGxQb3NpdGlvbi5tbSAqLzsgfTsKKwkJNDZGMDNDMUMyNTVCMkQ1QTAwQUE1MUM1IC8q
IGF1ZGlvLWNvbnRleHQtcGxheWluZy5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2RjAzQzFCMjU1QjJEMzYwMEFBNTFDNSAvKiBhdWRp
by1jb250ZXh0LXBsYXlpbmcuaHRtbCAqLzsgfTsKIAkJNDZGQTJGRUUyMzg0NkNBNTAwMENDQjBD
IC8qIEhUVFBIZWFkZXJNYXAuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNDZGQTJGRUQyMzg0NkM5QTAwMENDQjBDIC8qIEhUVFBIZWFkZXJNYXAuY3Bw
ICovOyB9OwogCQk0NkZBQ0Y3NDIzRTg4NDIzMDBBOUVCQzYgLyogYmVmb3JldW5sb2FkLXNsb3cu
aHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA0NkZBQ0Y3MzIzRTg4M0VFMDBBOUVCQzYgLyogYmVmb3JldW5sb2FkLXNsb3cuaHRtbCAqLzsg
fTsKIAkJNDkwOUVFM0EyRDA5NDgwQzg4OTgyRDU2IC8qIE1hcmthYmxlLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEVDNzlGMTY4QkU0NTRFNTc5RTQx
N0IwNSAvKiBNYXJrYWJsZS5jcHAgKi87IH07CkBAIC0xMzA5LDYgKzEzMTEsNyBAQAogCQkJCUY0
MkJEN0Q5MjQ1Q0M1MDgwMDFFMjA3QSAvKiBhdHRyaWJ1dGVkU3RyaW5nTmV3bGluZUF0RW5kT2ZE
b2N1bWVudC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTdDOUVEOThCMTdBMTlGNEIw
MEU0REMzMyAvKiBhdHRyaWJ1dGVkU3RyaW5nU3RyaWtldGhyb3VnaC5odG1sIGluIENvcHkgUmVz
b3VyY2VzICovLAogCQkJCTM3MTM3RTRCMjExMjREMDEwMDJCRUVBNCAvKiBBdHRyU3R5bGUuaHRt
bCBpbiBDb3B5IFJlc291cmNlcyAqLywKKwkJCQk0NkYwM0MxQzI1NUIyRDVBMDBBQTUxQzUgLyog
YXVkaW8tY29udGV4dC1wbGF5aW5nLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJQ0Q5
RTI5MkUxQzkwQzMzRjAwMEJCODAwIC8qIGF1ZGlvLW9ubHkuaHRtbCBpbiBDb3B5IFJlc291cmNl
cyAqLywKIAkJCQlDOTQ0MTYwMDIxNDMwRTg5MDBCMUVEREEgLyogYXVkaW8td2l0aC1jb250cm9s
cy5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCUM5QzlBOTFCMjFERUQyODcwMEZERTk2
RSAvKiBhdWRpby13aXRoLXBsYXktYnV0dG9uLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCkBA
IC0xOTcyLDYgKzE5NzUsNyBAQAogCQk0NjQ3QjEyNTFFQkEzQjczMDA0MUQ3RUYgLyogUHJvY2Vz
c0RpZFRlcm1pbmF0ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQ
cm9jZXNzRGlkVGVybWluYXRlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDY0
Qzc2NEMyMzBERjgzMjAwQUZCMDIwIC8qIEJhZFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25zLTQu
c3FsaXRlMyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IGZpbGU7IHBhdGggPSAiQmFkU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbnMtNC5zcWxpdGUzIjsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDY1NkE3NTcyMEY5MDU0RjAwMDJFMjFGIC8q
IFNpbXBsZVNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25zLTQuc3FsaXRlMyAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IGZpbGU7IHBhdGggPSAiU2ltcGxl
U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbnMtNC5zcWxpdGUzIjsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJNDY1RTI4MDYyNTVCMkE2OTAwNjNBNzg3IC8qIEdQVVByb2Nlc3MubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBHUFVQcm9jZXNzLm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NjZDMzg0MjIxMDYzN0NFMDA2QTg4REUgLyogbm90
aWZ5LXJlc291cmNlTG9hZE9ic2VydmVyLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGgg
PSAibm90aWZ5LXJlc291cmNlTG9hZE9ic2VydmVyLmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk0NjdDNTY1MTIxQjVFQ0RGMDA1NzUxNkQgLyogR2V0U2Vzc2lvbkNvb2tpZS5o
dG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gR2V0U2Vzc2lvbkNvb2tpZS5odG1sOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NjdDNTY1MjIxQjVFQ0RGMDA1NzUxNkQgLyog
U2V0U2Vzc2lvbkNvb2tpZS5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gU2V0U2Vz
c2lvbkNvb2tpZS5odG1sOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTk4Nyw2ICsx
OTkxLDcgQEAKIAkJNDZFNjZBOEYxRjBENzU1OTAwMjZEODNDIC8qIFdLV2ViVmlld0RpYWdub3N0
aWNMb2dnaW5nLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tX
ZWJWaWV3RGlhZ25vc3RpY0xvZ2dpbmcubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTQ2RTgxNkY3MUU3OUUyOTEwMDM3NUFEQyAvKiBSZXN0b3JlU3RhdGVBZnRlclRlcm1pbmF0aW9u
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUmVzdG9yZVN0YXRl
QWZ0ZXJUZXJtaW5hdGlvbi5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDZFQkQ4
NDYyMzcyMzFFNjAwMjIzQTZFIC8qIFJlc3RvcmVTY3JvbGxQb3NpdGlvbi5tbSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFJlc3RvcmVTY3JvbGxQb3NpdGlvbi5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDZGMDNDMUIyNTVCMkQzNjAwQUE1MUM1IC8q
IGF1ZGlvLWNvbnRleHQtcGxheWluZy5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0g
ImF1ZGlvLWNvbnRleHQtcGxheWluZy5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNDZGQTJGRUQyMzg0NkM5QTAwMENDQjBDIC8qIEhUVFBIZWFkZXJNYXAuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSFRUUEhlYWRlck1hcC5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2RkFDRjczMjNFODgzRUUwMEE5RUJDNiAvKiBiZWZvcmV1
bmxvYWQtc2xvdy5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gImJlZm9yZXVubG9h
ZC1zbG93Lmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0OTcxQjExNzI0NTFG
Mjc4MDA5Njk5NEQgLyogaW5jb3JyZWN0Q3JlYXRlVGFibGVTY2hlbWEuZGIgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBmaWxlOyBwYXRoID0gaW5jb3Jy
ZWN0Q3JlYXRlVGFibGVTY2hlbWEuZGI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0z
MjYzLDYgKzMyNjgsNyBAQAogCQkJCTYzMUVGRkY1MUU3QjVFOEQwMEQyRUJCOCAvKiBHZW9sb2Nh
dGlvbi5tbSAqLywKIAkJCQkwN0UxRjZBMDFGRkMzQTA4MDA5NkM3RUMgLyogR2V0RGlzcGxheU1l
ZGlhLm1tICovLAogCQkJCTJEQURGMjYyMjFDQjhGMzIwMDNEM0UzQSAvKiBHZXRSZXNvdXJjZURh
dGEubW0gKi8sCisJCQkJNDY1RTI4MDYyNTVCMkE2OTAwNjNBNzg3IC8qIEdQVVByb2Nlc3MubW0g
Ki8sCiAJCQkJNTFBRjIzREUxRUYxQTM3MjAwNzJGMjgxIC8qIEljb25Mb2FkaW5nRGVsZWdhdGUu
bW0gKi8sCiAJCQkJRUIyMzBEM0UyNDVFNzI2MzAwQzY2QUQxIC8qIElEQkNoZWNrcG9pbnRXQUwu
bW0gKi8sCiAJCQkJNTEwNDc3NzUxRDI5OEUwMzAwOTc0N0VCIC8qIElEQkRlbGV0ZVJlY292ZXJ5
Lm1tICovLApAQCAtMzcxMiw2ICszNzE4LDcgQEAKIAkJCQk1QzlFNTk0MDFEM0VCMURFMDBFM0M2
MkUgLyogQXBwbGljYXRpb25DYWNoZS5kYi13YWwgKi8sCiAJCQkJRjQ4NTZDQTIxRTY0OThBODAw
OUQ3RUU3IC8qIGF0dGFjaG1lbnQtZWxlbWVudC5odG1sICovLAogCQkJCTM3NjBDNEYyMjExMjRC
RDAwMDIzM0FDQyAvKiBBdHRyU3R5bGUuaHRtbCAqLywKKwkJCQk0NkYwM0MxQjI1NUIyRDM2MDBB
QTUxQzUgLyogYXVkaW8tY29udGV4dC1wbGF5aW5nLmh0bWwgKi8sCiAJCQkJQzk0NDE1RkYyMTQz
MEI2NzAwQjFFRERBIC8qIGF1ZGlvLXdpdGgtY29udHJvbHMuaHRtbCAqLywKIAkJCQlDRDU3Nzc5
QTIxMUNFNkI3MDAxQjM3MUUgLyogYXVkaW8td2l0aC13ZWItYXVkaW8uaHRtbCAqLywKIAkJCQlG
NDFBQjk5ODFFRjQ2OTJDMDA4M0ZBMDggLyogYXV0b2ZvY3VzLWNvbnRlbnRlZGl0YWJsZS5odG1s
ICovLApAQCAtNTIxMCw2ICs1MjE3LDcgQEAKIAkJCQkwN0NFMUNGMzFGMDZBN0UwMDBCRjg5RjUg
LyogR2V0VXNlck1lZGlhTmF2aWdhdGlvbi5tbSBpbiBTb3VyY2VzICovLAogCQkJCTA3RTQ5OTkx
MUY5RTU2REYwMDJGMUVGMyAvKiBHZXRVc2VyTWVkaWFSZXByb21wdC5tbSBpbiBTb3VyY2VzICov
LAogCQkJCTUxMEE5MjE0MjRENjE1QjQwMEJGRDg5QyAvKiBHb29nbGVTdGFkaWEubW0gaW4gU291
cmNlcyAqLywKKwkJCQk0NjVFMjgwNzI1NUIyQTZBMDA2M0E3ODcgLyogR1BVUHJvY2Vzcy5tbSBp
biBTb3VyY2VzICovLAogCQkJCUUzOTRBRTZGMjNGMjMwM0UwMDVCNDkzNiAvKiBHcmFudEFjY2Vz
c1RvTW9iaWxlQXNzZXRzLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJRTM0QTZEMTkyNDEyREUzOTAw
MTJBQjZFIC8qIEdyYW50QWNjZXNzVG9QcmVmZXJlbmNlc1NlcnZpY2UubW0gaW4gU291cmNlcyAq
LywKIAkJCQk4RTRBODUzNzFFMUQxQUIyMDBGNTNCMEYgLyogR3JpZFBvc2l0aW9uLmNwcCBpbiBT
b3VyY2VzICovLApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9HUFVQcm9jZXNzLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9HUFVQcm9jZXNzLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNhMjlhNjAwYjQ1OWNlNDNiZDAyN2M0ZjkxMWE3
OTNmMDVhMjVjMTgKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL0dQVVByb2Nlc3MubW0KQEAgLTAsMCArMSw2OSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbXBvcnQgImNvbmZpZy5oIgorCisjaW1wb3J0ICJQbGF0Zm9ybVV0aWxpdGllcy5oIgorI2lt
cG9ydCAiVGVzdE5hdmlnYXRpb25EZWxlZ2F0ZS5oIgorI2ltcG9ydCAiVGVzdFdLV2ViVmlldy5o
IgorI2ltcG9ydCA8V2ViS2l0L1dLUHJlZmVyZW5jZXNQcml2YXRlLmg+CisjaW1wb3J0IDxXZWJL
aXQvV0tQcm9jZXNzUG9vbFByaXZhdGUuaD4KKyNpbXBvcnQgPFdlYktpdC9XS1dlYlZpZXdDb25m
aWd1cmF0aW9uLmg+CisjaW1wb3J0IDxXZWJLaXQvV0tXZWJWaWV3UHJpdmF0ZS5oPgorI2ltcG9y
dCA8V2ViS2l0L19XS0ludGVybmFsRGVidWdGZWF0dXJlLmg+CisjaW1wb3J0IDx3dGYvUmV0YWlu
UHRyLmg+CisKK1RFU1QoR1BVUHJvY2VzcywgUmVsYXVuY2hPbkNyYXNoKQoreworICAgIGF1dG8g
Y29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBp
bml0XSk7CisgICAgZm9yIChfV0tJbnRlcm5hbERlYnVnRmVhdHVyZSAqZmVhdHVyZSBpbiBbV0tQ
cmVmZXJlbmNlcyBfaW50ZXJuYWxEZWJ1Z0ZlYXR1cmVzXSkgeworICAgICAgICBpZiAoW2ZlYXR1
cmUua2V5IGlzRXF1YWxUb1N0cmluZzpAIlVzZUdQVVByb2Nlc3NGb3JNZWRpYUVuYWJsZWQiXSkg
eworICAgICAgICAgICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpZ
RVMgZm9ySW50ZXJuYWxEZWJ1Z0ZlYXR1cmU6ZmVhdHVyZV07CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgfQorICAgIH0KKworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tX
ZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgNDAwLCA0MDApIGNv
bmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbi5nZXQoKV0pOworICAgIFt3ZWJWaWV3IHN5bmNocm9u
b3VzbHlMb2FkVGVzdFBhZ2VOYW1lZDpAImF1ZGlvLWNvbnRleHQtcGxheWluZyJdOworCisgICAg
YXV0byogcHJvY2Vzc1Bvb2wgPSBjb25maWd1cmF0aW9uLmdldCgpLnByb2Nlc3NQb29sOworICAg
IHVuc2lnbmVkIHRpbWVvdXQgPSAwOworICAgIHdoaWxlICghW3Byb2Nlc3NQb29sIF9ncHVQcm9j
ZXNzSWRlbnRpZmllcl0gJiYgdGltZW91dCsrIDwgMTAwKQorICAgICAgICBUZXN0V2ViS2l0QVBJ
OjpVdGlsOjpzbGVlcCgwLjEpOworCisgICAgRVhQRUNUX05FKFtwcm9jZXNzUG9vbCBfZ3B1UHJv
Y2Vzc0lkZW50aWZpZXJdLCAwKTsKKyAgICBpZiAoIVtwcm9jZXNzUG9vbCBfZ3B1UHJvY2Vzc0lk
ZW50aWZpZXJdKQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRvIGluaXRpYWxQSUQgPSBbcHJv
Y2Vzc1Bvb2wgX2dwdVByb2Nlc3NJZGVudGlmaWVyXTsKKyAgICBraWxsKGluaXRpYWxQSUQsIDkp
OworCisgICAgLy8gTWFrZSBzdXJlIHRoZSBHUFUgcHJvY2VzcyBnZXRzIHJlbGF1bmNoZWQuCisg
ICAgdGltZW91dCA9IDA7CisgICAgd2hpbGUgKCghW3Byb2Nlc3NQb29sIF9ncHVQcm9jZXNzSWRl
bnRpZmllcl0gfHwgW3Byb2Nlc3NQb29sIF9ncHVQcm9jZXNzSWRlbnRpZmllcl0gPT0gaW5pdGlh
bFBJRCkgJiYgdGltZW91dCsrIDwgMTAwKQorICAgICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpz
bGVlcCgwLjEpOworICAgIEVYUEVDVF9ORShbcHJvY2Vzc1Bvb2wgX2dwdVByb2Nlc3NJZGVudGlm
aWVyXSwgMCk7CisgICAgRVhQRUNUX05FKFtwcm9jZXNzUG9vbCBfZ3B1UHJvY2Vzc0lkZW50aWZp
ZXJdLCBpbml0aWFsUElEKTsKK30KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2EvYXVkaW8tY29udGV4dC1wbGF5aW5nLmh0bWwgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL2F1ZGlvLWNvbnRleHQtcGxheWluZy5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjY3ZThmNWIzM2MxNjMzZTlhMzhmODAzYmQxOTMwOTAwNjM0MmY3OWYKLS0tIC9kZXYv
bnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL2F1ZGlvLWNv
bnRleHQtcGxheWluZy5odG1sCkBAIC0wLDAgKzEsMTEgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0
bWw+Cis8Ym9keT4KKzxzY3JpcHQ+CitsZXQgY29udGV4dCA9IG5ldyBBdWRpb0NvbnRleHQoKTsK
K2xldCBvc2NpbGxhdG9yID0gbmV3IE9zY2lsbGF0b3JOb2RlKGNvbnRleHQpOworb3NjaWxsYXRv
ci5jb25uZWN0KGNvbnRleHQuZGVzdGluYXRpb24pOworb3NjaWxsYXRvci5zdGFydCgpOworPC9z
Y3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>413739</attachid>
            <date>2020-11-10 14:10:09 -0800</date>
            <delta_ts>2020-11-10 15:36:37 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218769-20201110141009.patch</filename>
            <type>text/plain</type>
            <size>29937</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5NjA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDJkMTIyMTY4NjhhMTdjNmQy
MmE0MjdiMWUxZDI1NGQ5ZmQ1YzJjN2QuLjk1ODI3MDI3YWM3ZDA1ZGQ0NGQwYzAzM2Y0Yjg3NWE0
ZTM2ZDc2ZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDQgQEAKKzIwMjAtMTEtMTAgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBHUFVQcm9jZXNzIGRvZXMgbm90IHBy
b3Blcmx5IGdldCByZWxhdW5jaGVkIGFmdGVyIGNyYXNoaW5nCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTg3NjkKKworICAgICAgICBSZXZpZXdlZCBi
eSBUaW0gSG9ydG9uLgorCisgICAgICAgIEFmdGVyIHRoZSBHUFVQcm9jZXNzIGNyYXNoZXMsIHdl
IG5lZWQgdG8gbWFrZSBzdXJlIHdlIGNvbnN0cnVjdCBhIG5ldyBHUFVQcm9jZXNzUHJveHkKKyAg
ICAgICAgc28gdGhhdCBhIG5ldyBwcm9jZXNzIGdldHMgcmVsYXVuY2hlZC4gUHJldmlvdXNseSwg
dGhpcyB3YXNuJ3QgcG9zc2libGUgYmVjYXVzZQorICAgICAgICB0aGUgR1BVUHJvY2Vzc1Byb3h5
IHdhcyBhICJuZXZlciBkZXN0cm95ZWQiIHNpbmdsZXRvbi4KKworICAgICAgICBUaGUgR1BVUHJv
Y2Vzc1Byb3h5IGlzIG5vdyBrZXB0IGFsaXZlIGJ5IHRoZSBXZWJQcm9jZXNzUG9vbCBvYmplY3Rz
IHJlZmluZyBpdC4KKyAgICAgICAgVXBvbiBjcmFzaGluZywgYWxsIFdlYlByb2Nlc3NQb29scyBj
bGVhciB0aGVpciBHUFVQcm9jZXNzUHJveHkgUmVmUHRyIHNvIHRoYXQgdGhlCisgICAgICAgIG9s
ZCBHUFVQcm9jZXNzUHJveHkgZ2V0cyBkZXN0cm95ZWQuIFRoZSBuZXh0IHRpbWUgYSBHUFVQcm9j
ZXNzUHJveHkgaXMgbmVlZGVkLCBhIG5ldworICAgICAgICBvbmUgZ2V0cyBjb25zdHJ1Y3RlZC4g
V2Ugc3RpbGwgbWFrZSBzdXJlIHRoYXQgYWxsIFdlYlByb2Nlc3NQb29sIG9iamVjdHMgc2hhcmUg
dGhlCisgICAgICAgIHNhbWUgR1BVUHJvY2Vzc1Byb3h5LCBhcyBiZWZvcmUgdGhpcyBwYXRjaC4K
KworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbC5tbToKKyAgICAg
ICAgKC1bV0tQcm9jZXNzUG9vbCBfZ3B1UHJvY2Vzc0lkZW50aWZpZXJdKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2xQcml2YXRlLmg6CisgICAgICAgICogVUlQ
cm9jZXNzL0dQVS9HUFVQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpHUFVQcm9j
ZXNzUHJveHk6OmdldE9yQ3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6R1BVUHJvY2Vzc1Byb3h5
OjpHUFVQcm9jZXNzUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpHUFVQcm9jZXNzUHJveHk6On5H
UFVQcm9jZXNzUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpHUFVQcm9jZXNzUHJveHk6OnByb2Nl
c3NXaWxsU2h1dERvd24pOgorICAgICAgICAoV2ViS2l0OjpHUFVQcm9jZXNzUHJveHk6OmdwdVBy
b2Nlc3NDcmFzaGVkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvR1BVL0dQVVByb2Nlc3NQcm94eS5o
OgorICAgICAgICAqIFVJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQ
cm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlclByb3h5OjpzeW5jV2l0aFdlYkNvcmVQcmVmcyBjb25zdCk6CisgICAgICAgICogVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6d2ls
bFN0YXJ0Q2FwdHVyZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6c2V0T3JpZW50
YXRpb25Gb3JNZWRpYUNhcHR1cmUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9v
bC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjplbnN1cmVHUFVQcm9jZXNz
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OmdwdVByb2Nlc3NDcmFzaGVkKToK
KyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OmdldEdQVVByb2Nlc3NDb25uZWN0aW9u
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnVwZGF0ZUF1ZGlibGVNZWRpYUFz
c2VydGlvbnMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlldy5tbToKKyAgICAgICAgKC1bV0tDb250ZW50
VmlldyBfc2V0dXBWaXNpYmlsaXR5UHJvcGFnYXRpb25WaWV3Rm9yR1BVUHJvY2Vzc10pOgorCiAy
MDIwLTExLTA5ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgW0dQ
VVByb2Nlc3NdIFJlZ3Jlc3Npb24ocjI2ODYzMikgR2FyYmFnZSBpcyByZW5kZXJlZCBvbiBzcGVh
a2VycyB3aGVuIHVzaW5nIFdlYkF1ZGlvCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbC5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1tCmluZGV4IGU3OTViMzMyNmM3NmRmOWQ5ZDg0MDM0
MmY4ZGQxNGJiYmZhMTA3ZGIuLjAzNTkxZThhOGZhOTA0MjEyMDliOTM5MGQ0ZjNkOGUwNzY4MGRm
NjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nl
c3NQb29sLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nl
c3NQb29sLm1tCkBAIC00MzYsNiArNDM2LDE2IEBAIC0gKHNpemVfdClfd2ViUHJvY2Vzc0NvdW50
CiAgICAgcmV0dXJuIF9wcm9jZXNzUG9vbC0+cHJvY2Vzc2VzKCkuc2l6ZSgpOwogfQogCistIChw
aWRfdClfZ3B1UHJvY2Vzc0lkZW50aWZpZXIKK3sKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisg
ICAgYXV0byogZ3B1UHJvY2VzcyA9IF9wcm9jZXNzUG9vbC0+Z3B1UHJvY2VzcygpOworICAgIHJl
dHVybiBncHVQcm9jZXNzID8gZ3B1UHJvY2Vzcy0+cHJvY2Vzc0lkZW50aWZpZXIoKSA6IDA7Cisj
ZWxzZQorICAgIHJldHVybiAwOworI2VuZGlmCit9CisKIC0gKHZvaWQpX21ha2VOZXh0V2ViUHJv
Y2Vzc0xhdW5jaEZhaWxGb3JUZXN0aW5nCiB7CiAgICAgX3Byb2Nlc3NQb29sLT5zZXRTaG91bGRN
YWtlTmV4dFdlYlByb2Nlc3NMYXVuY2hGYWlsRm9yVGVzdGluZyh0cnVlKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sUHJpdmF0ZS5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2xQcml2YXRl
LmgKaW5kZXggMjE5NDFiMmQ0NjA3MGRhMWNhOTVmYjkwNmY4ODMyZjVhZjA0ZDhhYi4uN2M0ZmU0
Y2Q4ZmI5YWZmYThjYTAzMTliOTQ4OTNjMWY0ZTY4OTY2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2xQcml2YXRlLmgKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2xQcml2YXRlLmgKQEAg
LTEwNiw2ICsxMDYsNyBAQAogLSAoTlNVSW50ZWdlcilfcHJvY2Vzc0NhY2hlU2l6ZSBXS19BUElf
QVZBSUxBQkxFKG1hY29zKDEwLjE1KSwgaW9zKDEzLjApKTsKIC0gKHZvaWQpX2NsZWFyV2ViUHJv
Y2Vzc0NhY2hlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1Nf
VEJBKSk7CiAtICh2b2lkKV9zZXRVc2VTZXBhcmF0ZVNlcnZpY2VXb3JrZXJQcm9jZXNzOihCT09M
KWZvcmNlU2VydmljZVdvcmtlclByb2Nlc3MgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNf
VEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKy0gKHBpZF90KV9ncHVQcm9jZXNzSWRlbnRpZmllciBX
S19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogCiAv
LyBUZXN0IG9ubHkuIFJldHVybnMgd2ViIHByb2Nlc3NlcyBydW5uaW5nIHdlYiBwYWdlcyAoZG9l
cyBub3QgaW5jbHVkZSB3ZWIgcHJvY2Vzc2VzIHJ1bm5pbmcgc2VydmljZSB3b3JrZXJzKQogLSAo
c2l6ZV90KV93ZWJQYWdlQ29udGVudFByb2Nlc3NDb3VudCBXS19BUElfQVZBSUxBQkxFKG1hY29z
KDEwLjEzLjQpLCBpb3MoMTEuMykpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvR1BVL0dQVVByb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9HUFUv
R1BVUHJvY2Vzc1Byb3h5LmNwcAppbmRleCAxNWZlNjBhMTY1MzI4NDdlMzMyMzlkMzc0OGU0MWFk
MTM3YTA5OGIwLi4yZjkzYjI3ZWRlZjM2MjFmNmY3YTExOGJlOGJiNGQ4ZWE2YTZjMzkxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc1Byb3h5LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc1Byb3h5LmNwcApAQCAt
ODMsNDMgKzgzLDI3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzaG91bGRDcmVhdGVNaWNyb3Bob25l
U2FuZGJveEV4dGVuc2lvbigpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLUdQVVByb2Nlc3NQcm94
eSogR1BVUHJvY2Vzc1Byb3h5OjptX3NpbmdsZXRvbiA9IG51bGxwdHI7CitzdGF0aWMgV2Vha1B0
cjxHUFVQcm9jZXNzUHJveHk+JiBzaW5nbGV0b24oKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ry
b3llZDxXZWFrUHRyPEdQVVByb2Nlc3NQcm94eT4+IHNpbmdsZXRvbjsKKyAgICByZXR1cm4gc2lu
Z2xldG9uOworfQogCi1HUFVQcm9jZXNzUHJveHkmIEdQVVByb2Nlc3NQcm94eTo6c2luZ2xldG9u
KCkKK1JlZjxHUFVQcm9jZXNzUHJveHk+IEdQVVByb2Nlc3NQcm94eTo6Z2V0T3JDcmVhdGUoKQog
ewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CisgICAgaWYgKGF1dG8mIGV4aXN0aW5n
R1BVUHJvY2VzcyA9IHNpbmdsZXRvbigpKSB7CisgICAgICAgIEFTU0VSVChleGlzdGluZ0dQVVBy
b2Nlc3MtPnN0YXRlKCkgIT0gU3RhdGU6OlRlcm1pbmF0ZWQpOworICAgICAgICByZXR1cm4gKmV4
aXN0aW5nR1BVUHJvY2VzczsKKyAgICB9CisgICAgYXV0byBncHVQcm9jZXNzID0gYWRvcHRSZWYo
Km5ldyBHUFVQcm9jZXNzUHJveHkpOworICAgIHNpbmdsZXRvbigpID0gbWFrZVdlYWtQdHIoZ3B1
UHJvY2Vzcy5nZXQoKSk7CisgICAgcmV0dXJuIGdwdVByb2Nlc3M7Cit9CiAKLSAgICBzdGF0aWMg
c3RkOjpvbmNlX2ZsYWcgb25jZUZsYWc7Ci0gICAgc3RhdGljIExhenlOZXZlckRlc3Ryb3llZDxH
UFVQcm9jZXNzUHJveHk+IGdwdVByb2Nlc3M7Ci0KLSAgICBzdGQ6OmNhbGxfb25jZShvbmNlRmxh
ZywgW10gewotICAgICAgICBncHVQcm9jZXNzLmNvbnN0cnVjdCgpOwotCi0gICAgICAgIEdQVVBy
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMgcGFyYW1ldGVyczsKLSNpZiBFTkFCTEUoTUVESUFfU1RS
RUFNKQotICAgICAgICBwYXJhbWV0ZXJzLnVzZU1vY2tDYXB0dXJlRGV2aWNlcyA9IGdwdVByb2Nl
c3MtPm1fdXNlTW9ja0NhcHR1cmVEZXZpY2VzOwotCi0gICAgICAgIGJvb2wgbmVlZHNDYW1lcmFT
YW5kYm94RXh0ZW5zaW9uID0gc2hvdWxkQ3JlYXRlQ2FtZXJhU2FuZGJveEV4dGVuc2lvbigpOwot
ICAgICAgICBib29sIG5lZWRzTWljcm9waG9uZVNhbmRib3hFeHRlbnNpb24gPSBzaG91bGRDcmVh
dGVNaWNyb3Bob25lU2FuZGJveEV4dGVuc2lvbigpOwotICAgICAgICBpZiAobmVlZHNDYW1lcmFT
YW5kYm94RXh0ZW5zaW9uKQotICAgICAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFu
ZGxlRm9yR2VuZXJpY0V4dGVuc2lvbigiY29tLmFwcGxlLndlYmtpdC5jYW1lcmEiX3MsIHBhcmFt
ZXRlcnMuY2FtZXJhU2FuZGJveEV4dGVuc2lvbkhhbmRsZSk7Ci0gICAgICAgIGlmIChuZWVkc01p
Y3JvcGhvbmVTYW5kYm94RXh0ZW5zaW9uKQotICAgICAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6
Y3JlYXRlSGFuZGxlRm9yR2VuZXJpY0V4dGVuc2lvbigiY29tLmFwcGxlLndlYmtpdC5taWNyb3Bo
b25lIl9zLCBwYXJhbWV0ZXJzLm1pY3JvcGhvbmVTYW5kYm94RXh0ZW5zaW9uSGFuZGxlKTsKLSNp
ZiBQTEFURk9STShJT1MpCi0gICAgICAgIGlmIChuZWVkc0NhbWVyYVNhbmRib3hFeHRlbnNpb24g
fHwgbmVlZHNNaWNyb3Bob25lU2FuZGJveEV4dGVuc2lvbikKLSAgICAgICAgICAgIFNhbmRib3hF
eHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvck1hY2hMb29rdXAoImNvbS5hcHBsZS50Y2NkIl9zLCBX
VEY6Om51bGxvcHQsIHBhcmFtZXRlcnMudGNjU2FuZGJveEV4dGVuc2lvbkhhbmRsZSk7Ci0jZW5k
aWYKLSNlbmRpZgotICAgICAgICBwYXJhbWV0ZXJzLnBhcmVudFBJRCA9IGdldEN1cnJlbnRQcm9j
ZXNzSUQoKTsKLQotICAgICAgICAvLyBJbml0aWFsaXplIHRoZSBHUFUgcHJvY2Vzcy4KLSAgICAg
ICAgZ3B1UHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6R1BVUHJvY2Vzczo6SW5pdGlhbGl6ZUdQVVBy
b2Nlc3MocGFyYW1ldGVycyksIDApOwotICAgICAgICBncHVQcm9jZXNzLT51cGRhdGVQcm9jZXNz
QXNzZXJ0aW9uKCk7Ci0KLSAgICAgICAgbV9zaW5nbGV0b24gPSAmZ3B1UHJvY2Vzcy5nZXQoKTsK
LSAgICB9KTsKLQotICAgIHJldHVybiBncHVQcm9jZXNzLmdldCgpOworR1BVUHJvY2Vzc1Byb3h5
KiBHUFVQcm9jZXNzUHJveHk6OnNpbmdsZXRvbklmQ3JlYXRlZCgpCit7CisgICAgcmV0dXJuIHNp
bmdsZXRvbigpLmdldCgpOwogfQogCiBHUFVQcm9jZXNzUHJveHk6OkdQVVByb2Nlc3NQcm94eSgp
CkBAIC0xMzAsNiArMTE0LDI3IEBAIEdQVVByb2Nlc3NQcm94eTo6R1BVUHJvY2Vzc1Byb3h5KCkK
ICNlbmRpZgogewogICAgIGNvbm5lY3QoKTsKKworICAgIEdQVVByb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnMgcGFyYW1ldGVyczsKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIHBhcmFtZXRl
cnMudXNlTW9ja0NhcHR1cmVEZXZpY2VzID0gbV91c2VNb2NrQ2FwdHVyZURldmljZXM7CisKKyAg
ICBib29sIG5lZWRzQ2FtZXJhU2FuZGJveEV4dGVuc2lvbiA9IHNob3VsZENyZWF0ZUNhbWVyYVNh
bmRib3hFeHRlbnNpb24oKTsKKyAgICBib29sIG5lZWRzTWljcm9waG9uZVNhbmRib3hFeHRlbnNp
b24gPSBzaG91bGRDcmVhdGVNaWNyb3Bob25lU2FuZGJveEV4dGVuc2lvbigpOworICAgIGlmIChu
ZWVkc0NhbWVyYVNhbmRib3hFeHRlbnNpb24pCisgICAgICAgIFNhbmRib3hFeHRlbnNpb246OmNy
ZWF0ZUhhbmRsZUZvckdlbmVyaWNFeHRlbnNpb24oImNvbS5hcHBsZS53ZWJraXQuY2FtZXJhIl9z
LCBwYXJhbWV0ZXJzLmNhbWVyYVNhbmRib3hFeHRlbnNpb25IYW5kbGUpOworICAgIGlmIChuZWVk
c01pY3JvcGhvbmVTYW5kYm94RXh0ZW5zaW9uKQorICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpj
cmVhdGVIYW5kbGVGb3JHZW5lcmljRXh0ZW5zaW9uKCJjb20uYXBwbGUud2Via2l0Lm1pY3JvcGhv
bmUiX3MsIHBhcmFtZXRlcnMubWljcm9waG9uZVNhbmRib3hFeHRlbnNpb25IYW5kbGUpOworI2lm
IFBMQVRGT1JNKElPUykKKyAgICBpZiAobmVlZHNDYW1lcmFTYW5kYm94RXh0ZW5zaW9uIHx8IG5l
ZWRzTWljcm9waG9uZVNhbmRib3hFeHRlbnNpb24pCisgICAgICAgIFNhbmRib3hFeHRlbnNpb246
OmNyZWF0ZUhhbmRsZUZvck1hY2hMb29rdXAoImNvbS5hcHBsZS50Y2NkIl9zLCBXVEY6Om51bGxv
cHQsIHBhcmFtZXRlcnMudGNjU2FuZGJveEV4dGVuc2lvbkhhbmRsZSk7CisjZW5kaWYKKyNlbmRp
ZgorICAgIHBhcmFtZXRlcnMucGFyZW50UElEID0gZ2V0Q3VycmVudFByb2Nlc3NJRCgpOworCisg
ICAgLy8gSW5pdGlhbGl6ZSB0aGUgR1BVIHByb2Nlc3MuCisgICAgc2VuZChNZXNzYWdlczo6R1BV
UHJvY2Vzczo6SW5pdGlhbGl6ZUdQVVByb2Nlc3MocGFyYW1ldGVycyksIDApOworICAgIHVwZGF0
ZVByb2Nlc3NBc3NlcnRpb24oKTsKIH0KIAogR1BVUHJvY2Vzc1Byb3h5Ojp+R1BVUHJvY2Vzc1By
b3h5KCkgPSBkZWZhdWx0OwpAQCAtMTcwLDYgKzE3NSw4IEBAIHZvaWQgR1BVUHJvY2Vzc1Byb3h5
Ojpjb25uZWN0aW9uV2lsbE9wZW4oSVBDOjpDb25uZWN0aW9uJikKIHZvaWQgR1BVUHJvY2Vzc1By
b3h5Ojpwcm9jZXNzV2lsbFNodXREb3duKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbikKIHsK
ICAgICBBU1NFUlRfVU5VU0VEKGNvbm5lY3Rpb24sIHRoaXMtPmNvbm5lY3Rpb24oKSA9PSAmY29u
bmVjdGlvbik7CisgICAgaWYgKHNpbmdsZXRvbigpID09IHRoaXMpCisgICAgICAgIHNpbmdsZXRv
bigpID0gbnVsbHB0cjsKIH0KIAogdm9pZCBHUFVQcm9jZXNzUHJveHk6OmdldEdQVVByb2Nlc3ND
b25uZWN0aW9uKFdlYlByb2Nlc3NQcm94eSYgd2ViUHJvY2Vzc1Byb3h5LCBNZXNzYWdlczo6V2Vi
UHJvY2Vzc1Byb3h5OjpHZXRHUFVQcm9jZXNzQ29ubmVjdGlvbjo6RGVsYXllZFJlcGx5JiYgcmVw
bHkpCkBAIC0yMDgsNiArMjE1LDkgQEAgdm9pZCBHUFVQcm9jZXNzUHJveHk6OmdldEdQVVByb2Nl
c3NDb25uZWN0aW9uKFdlYlByb2Nlc3NQcm94eSYgd2ViUHJvY2Vzc1Byb3h5LAogCiB2b2lkIEdQ
VVByb2Nlc3NQcm94eTo6Z3B1UHJvY2Vzc0NyYXNoZWQoKQogeworICAgIGlmIChzaW5nbGV0b24o
KSA9PSB0aGlzKQorICAgICAgICBzaW5nbGV0b24oKSA9IG51bGxwdHI7CisKICAgICBmb3IgKGF1
dG8mIHByb2Nlc3NQb29sIDogV2ViUHJvY2Vzc1Bvb2w6OmFsbFByb2Nlc3NQb29scygpKQogICAg
ICAgICBwcm9jZXNzUG9vbC0+Z3B1UHJvY2Vzc0NyYXNoZWQocHJvY2Vzc0lkZW50aWZpZXIoKSk7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc1By
b3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc1Byb3h5LmgKaW5k
ZXggZGJjOWU2OWQ3MzgxZDhjZGY5OGEwYjYyNTY4ZmMzYzYyZjZmYjE1Yy4uNDU1YzAwMmQyMWNm
YWI5NmVkZjI2YjZjN2Y3ZDE5MjVkMzllMTYzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvR1BVL0dQVVByb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0dQVS9HUFVQcm9jZXNzUHJveHkuaApAQCAtNDcsMTMgKzQ3LDE0IEBAIGNsYXNzIFdlYlBy
b2Nlc3NQcm94eTsKIGNsYXNzIFdlYnNpdGVEYXRhU3RvcmU7CiBzdHJ1Y3QgR1BVUHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVyczsKIAotY2xhc3MgR1BVUHJvY2Vzc1Byb3h5IGZpbmFsIDogcHVibGlj
IEF1eGlsaWFyeVByb2Nlc3NQcm94eSwgcHJpdmF0ZSBQcm9jZXNzVGhyb3R0bGVyQ2xpZW50LCBw
dWJsaWMgQ2FuTWFrZVdlYWtQdHI8R1BVUHJvY2Vzc1Byb3h5PiB7CitjbGFzcyBHUFVQcm9jZXNz
UHJveHkgZmluYWwgOiBwdWJsaWMgQXV4aWxpYXJ5UHJvY2Vzc1Byb3h5LCBwcml2YXRlIFByb2Nl
c3NUaHJvdHRsZXJDbGllbnQsIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxHUFVQcm9jZXNzUHJveHk+
LCBwdWJsaWMgUmVmQ291bnRlZDxHUFVQcm9jZXNzUHJveHk+IHsKICAgICBXVEZfTUFLRV9GQVNU
X0FMTE9DQVRFRDsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShHUFVQcm9jZXNzUHJveHkpOwog
ICAgIGZyaWVuZCBMYXp5TmV2ZXJEZXN0cm95ZWQ8R1BVUHJvY2Vzc1Byb3h5PjsKIHB1YmxpYzoK
LSAgICBzdGF0aWMgR1BVUHJvY2Vzc1Byb3h5JiBzaW5nbGV0b24oKTsKLSAgICBzdGF0aWMgR1BV
UHJvY2Vzc1Byb3h5KiBzaW5nbGV0b25JZkNyZWF0ZWQoKSB7IHJldHVybiBtX3NpbmdsZXRvbjsg
fQorICAgIHN0YXRpYyBSZWY8R1BVUHJvY2Vzc1Byb3h5PiBnZXRPckNyZWF0ZSgpOworICAgIHN0
YXRpYyBHUFVQcm9jZXNzUHJveHkqIHNpbmdsZXRvbklmQ3JlYXRlZCgpOworICAgIH5HUFVQcm9j
ZXNzUHJveHkoKTsKIAogICAgIHZvaWQgZ2V0R1BVUHJvY2Vzc0Nvbm5lY3Rpb24oV2ViUHJvY2Vz
c1Byb3h5JiwgTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0R1BVUHJvY2Vzc0Nvbm5lY3Rp
b25EZWxheWVkUmVwbHkmJik7CiAKQEAgLTc4LDcgKzc5LDYgQEAgcHVibGljOgogCiBwcml2YXRl
OgogICAgIGV4cGxpY2l0IEdQVVByb2Nlc3NQcm94eSgpOwotICAgIH5HUFVQcm9jZXNzUHJveHko
KTsKIAogICAgIHZvaWQgYWRkU2Vzc2lvbihjb25zdCBXZWJzaXRlRGF0YVN0b3JlJik7CiAKQEAg
LTEwNiw4ICsxMDYsNiBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlkQ3JlYXRlQ29udGV4dEZvclZp
c2liaWxpdHlQcm9wYWdhdGlvbihMYXllckhvc3RpbmdDb250ZXh0SUQpOwogI2VuZGlmCiAKLSAg
ICBzdGF0aWMgR1BVUHJvY2Vzc1Byb3h5KiBtX3NpbmdsZXRvbjsKLQogICAgIFByb2Nlc3NUaHJv
dHRsZXIgbV90aHJvdHRsZXI7CiAgICAgUHJvY2Vzc1Rocm90dGxlcjo6QWN0aXZpdHlWYXJpYW50
IG1fYWN0aXZpdHlGcm9tV2ViUHJvY2Vzc2VzOwogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKaW5kZXggYjVkMzhlOWZlMjZiNGE1NmVj
OGVlOTZiZGYzMTcwNzk5YzZmYzk1NS4uNzlhZjFiMjc1ZjI3YTc3ODUxZWVjNDNmNGEyNzgxODQ1
OGE1MjEyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcApAQCAtNzY3LDcg
Kzc2Nyw3IEBAIHZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OnN5
bmNXaXRoV2ViQ29yZVByZWZzKCkgY29uc3QKIAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKICAg
ICBpZiAobV9wYWdlLnByZWZlcmVuY2VzKCkuY2FwdHVyZUF1ZGlvSW5HUFVQcm9jZXNzRW5hYmxl
ZCgpIHx8IG1fcGFnZS5wcmVmZXJlbmNlcygpLmNhcHR1cmVWaWRlb0luR1BVUHJvY2Vzc0VuYWJs
ZWQoKSkKLSAgICAgICAgR1BVUHJvY2Vzc1Byb3h5OjpzaW5nbGV0b24oKS5zZXRVc2VNb2NrQ2Fw
dHVyZURldmljZXMobW9ja0RldmljZXNFbmFibGVkKTsKKyAgICAgICAgbV9wYWdlLnByb2Nlc3Mo
KS5wcm9jZXNzUG9vbCgpLmVuc3VyZUdQVVByb2Nlc3MoKS5zZXRVc2VNb2NrQ2FwdHVyZURldmlj
ZXMobW9ja0RldmljZXNFbmFibGVkKTsKICNlbmRpZgogCiAgICAgaWYgKE1vY2tSZWFsdGltZU1l
ZGlhU291cmNlQ2VudGVyOjptb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlckVuYWJsZWQoKSA9
PSBtb2NrRGV2aWNlc0VuYWJsZWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmNwcAppbmRleCBjNjYwZTU2NmIwOGRkMzY3OTEzZDIyNDUwNmJkZjFlZGYwMGQ1ZDg3Li5lM2Zl
MGIzYjczNjdhYzAyMTBlOWYyZDcyNmFmNGZlZmEwMWZlYzg3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTgwNjYsMTAgKzgwNjYsMTAgQEAgdm9pZCBXZWJQ
YWdlUHJveHk6OndpbGxTdGFydENhcHR1cmUoY29uc3QgVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RQcm94eSYgcmVxdWUKICAgICBpZiAoIXByZWZlcmVuY2VzKCkuY2FwdHVyZVZpZGVvSW5HUFVQ
cm9jZXNzRW5hYmxlZCgpICYmICFwcmVmZXJlbmNlcygpLmNhcHR1cmVBdWRpb0luR1BVUHJvY2Vz
c0VuYWJsZWQoKSkKICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKCk7CiAKLSAgICBhdXRvJiBncHVQ
cm9jZXNzID0gR1BVUHJvY2Vzc1Byb3h5OjpzaW5nbGV0b24oKTsKKyAgICBhdXRvJiBncHVQcm9j
ZXNzID0gcHJvY2VzcygpLnByb2Nlc3NQb29sKCkuZW5zdXJlR1BVUHJvY2VzcygpOwogICAgIGdw
dVByb2Nlc3MudXBkYXRlQ2FwdHVyZUFjY2VzcyhyZXF1ZXN0LnJlcXVpcmVzQXVkaW9DYXB0dXJl
KCksIHJlcXVlc3QucmVxdWlyZXNWaWRlb0NhcHR1cmUoKSwgcmVxdWVzdC5yZXF1aXJlc0Rpc3Bs
YXlDYXB0dXJlKCksIG1fcHJvY2Vzcy0+Y29yZVByb2Nlc3NJZGVudGlmaWVyKCksIFdURk1vdmUo
Y2FsbGJhY2spKTsKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgIEdQVVByb2Nlc3NQcm94
eTo6c2luZ2xldG9uKCkuc2V0T3JpZW50YXRpb25Gb3JNZWRpYUNhcHR1cmUobV9kZXZpY2VPcmll
bnRhdGlvbik7CisgICAgZ3B1UHJvY2Vzcy5zZXRPcmllbnRhdGlvbkZvck1lZGlhQ2FwdHVyZSht
X2RldmljZU9yaWVudGF0aW9uKTsKICNlbmRpZgogI2Vsc2UKICAgICBjYWxsYmFjaygpOwpAQCAt
MTAxMjUsNyArMTAxMjUsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6c2V0T3JpZW50YXRpb25Gb3JN
ZWRpYUNhcHR1cmUodWludDY0X3Qgb3JpZW50YXRpb24pCiAgICAgaWYgKGF1dG8qIHByb3h5ID0g
bV9wcm9jZXNzLT51c2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5KCkpCiAgICAgICAgIHByb3h5
LT5zZXRPcmllbnRhdGlvbihvcmllbnRhdGlvbik7CiAKLSAgICBhdXRvKiBncHVQcm9jZXNzID0g
R1BVUHJvY2Vzc1Byb3h5OjpzaW5nbGV0b25JZkNyZWF0ZWQoKTsKKyAgICBhdXRvKiBncHVQcm9j
ZXNzID0gbV9wcm9jZXNzLT5wcm9jZXNzUG9vbCgpLmdwdVByb2Nlc3MoKTsKICAgICBpZiAoZ3B1
UHJvY2VzcyAmJiBwcmVmZXJlbmNlcygpLmNhcHR1cmVWaWRlb0luR1BVUHJvY2Vzc0VuYWJsZWQo
KSkKICAgICAgICAgZ3B1UHJvY2Vzcy0+c2V0T3JpZW50YXRpb25Gb3JNZWRpYUNhcHR1cmUob3Jp
ZW50YXRpb24pOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQcm9jZXNzUG9vbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9v
bC5jcHAKaW5kZXggZTA0NTFmYjQ4YjJkMjc3ODBhMWFkZTljZjNkMTJmNjZiNGU0NGU0Yi4uOWQ5
MmQzMDRiODVjMDFjZjc0MzA0YTE0ZjNjNmVkYTczYjY0ZjA5ZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcApAQCAtNDc5LDIxICs0NzksMzIgQEAgdm9pZCBX
ZWJQcm9jZXNzUG9vbDo6c2VydmljZVdvcmtlclByb2Nlc3NDcmFzaGVkKFdlYlByb2Nlc3NQcm94
eSYgcHJveHkpCiB9CiAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCitHUFVQcm9jZXNzUHJveHkm
IFdlYlByb2Nlc3NQb29sOjplbnN1cmVHUFVQcm9jZXNzKCkKK3sKKyAgICBpZiAoIW1fZ3B1UHJv
Y2VzcykKKyAgICAgICAgbV9ncHVQcm9jZXNzID0gR1BVUHJvY2Vzc1Byb3h5OjpnZXRPckNyZWF0
ZSgpOworICAgIHJldHVybiAqbV9ncHVQcm9jZXNzOworfQorCiB2b2lkIFdlYlByb2Nlc3NQb29s
OjpncHVQcm9jZXNzQ3Jhc2hlZChQcm9jZXNzSUQgaWRlbnRpZmllcikKIHsKKyAgICBtX2dwdVBy
b2Nlc3MgPSBudWxscHRyOworCiAgICAgbV9jbGllbnQuZ3B1UHJvY2Vzc0RpZENyYXNoKHRoaXMs
IGlkZW50aWZpZXIpOwogICAgIFZlY3RvcjxSZWZQdHI8V2ViUHJvY2Vzc1Byb3h5Pj4gcHJvY2Vz
c2VzID0gbV9wcm9jZXNzZXM7CiAgICAgZm9yIChhdXRvJiBwcm9jZXNzIDogcHJvY2Vzc2VzKQog
ICAgICAgICBwcm9jZXNzLT5ncHVQcm9jZXNzQ3Jhc2hlZCgpOworCisgICAgLy8gRklYTUU6IFdl
IHNob3VsZCBhdm9pZCB0ZXJtaW5hdGluZyBhbGwgV2ViUHJvY2Vzc2VzIHdoZW5ldmVyIHRoZSBH
UFVQcm9jZXNzIGNyYXNoZXMuCiAgICAgdGVybWluYXRlQWxsV2ViQ29udGVudFByb2Nlc3Nlcygp
OwogfQogCiB2b2lkIFdlYlByb2Nlc3NQb29sOjpnZXRHUFVQcm9jZXNzQ29ubmVjdGlvbihXZWJQ
cm9jZXNzUHJveHkmIHdlYlByb2Nlc3NQcm94eSwgTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6
R2V0R1BVUHJvY2Vzc0Nvbm5lY3Rpb246OkRlbGF5ZWRSZXBseSYmIHJlcGx5KQogewotICAgIEdQ
VVByb2Nlc3NQcm94eTo6c2luZ2xldG9uKCkuZ2V0R1BVUHJvY2Vzc0Nvbm5lY3Rpb24od2ViUHJv
Y2Vzc1Byb3h5LCBbdGhpcywgd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyksIHdlYlByb2Nl
c3NQcm94eSA9IG1ha2VXZWFrUHRyKHdlYlByb2Nlc3NQcm94eSksIHJlcGx5ID0gV1RGTW92ZShy
ZXBseSldIChhdXRvJiBjb25uZWN0aW9uSW5mbykgbXV0YWJsZSB7CisgICAgZW5zdXJlR1BVUHJv
Y2VzcygpLmdldEdQVVByb2Nlc3NDb25uZWN0aW9uKHdlYlByb2Nlc3NQcm94eSwgW3RoaXMsIHdl
YWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpLCB3ZWJQcm9jZXNzUHJveHkgPSBtYWtlV2Vha1B0
cih3ZWJQcm9jZXNzUHJveHkpLCByZXBseSA9IFdURk1vdmUocmVwbHkpXSAoYXV0byYgY29ubmVj
dGlvbkluZm8pIG11dGFibGUgewogICAgICAgICBpZiAoVU5MSUtFTFkoIUlQQzo6Q29ubmVjdGlv
bjo6aWRlbnRpZmllcklzVmFsaWQoY29ubmVjdGlvbkluZm8uaWRlbnRpZmllcigpKSAmJiB3ZWJQ
cm9jZXNzUHJveHkgJiYgd2Vha1RoaXMpKSB7CiAgICAgICAgICAgICBXRUJQUk9DRVNTUE9PTF9S
RUxFQVNFX0xPR19FUlJPUihQcm9jZXNzLCAiZ2V0R1BVUHJvY2Vzc0Nvbm5lY3Rpb246IEZhaWxl
ZCBmaXJzdCBhdHRlbXB0LCByZXRyeWluZyIpOwotICAgICAgICAgICAgR1BVUHJvY2Vzc1Byb3h5
OjpzaW5nbGV0b24oKS5nZXRHUFVQcm9jZXNzQ29ubmVjdGlvbigqd2ViUHJvY2Vzc1Byb3h5LCBX
VEZNb3ZlKHJlcGx5KSk7CisgICAgICAgICAgICBlbnN1cmVHUFVQcm9jZXNzKCkuZ2V0R1BVUHJv
Y2Vzc0Nvbm5lY3Rpb24oKndlYlByb2Nlc3NQcm94eSwgV1RGTW92ZShyZXBseSkpOwogICAgICAg
ICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAgIHJlcGx5KGNvbm5lY3Rpb25JbmZvKTsK
QEAgLTIwMjIsNyArMjAzMyw3IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnVwZGF0ZUF1ZGlibGVN
ZWRpYUFzc2VydGlvbnMoKQogICAgIG1fYXVkaWJsZU1lZGlhQWN0aXZpdHkgPSBBdWRpYmxlTWVk
aWFBY3Rpdml0eSB7CiAgICAgICAgIG1ha2VVbmlxdWVSZWY8UHJvY2Vzc0Fzc2VydGlvbj4oZ2V0
Q3VycmVudFByb2Nlc3NJRCgpLCAiV2ViS2l0IE1lZGlhIFBsYXliYWNrIl9zLCBQcm9jZXNzQXNz
ZXJ0aW9uVHlwZTo6TWVkaWFQbGF5YmFjaykKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCi0gICAg
ICAgICwgR1BVUHJvY2Vzc1Byb3h5OjpzaW5nbGV0b25JZkNyZWF0ZWQoKSA/IG1ha2VVbmlxdWU8
UHJvY2Vzc0Fzc2VydGlvbj4oR1BVUHJvY2Vzc1Byb3h5OjpzaW5nbGV0b24oKS5wcm9jZXNzSWRl
bnRpZmllcigpLCAiV2ViS2l0IE1lZGlhIFBsYXliYWNrIl9zLCBQcm9jZXNzQXNzZXJ0aW9uVHlw
ZTo6TWVkaWFQbGF5YmFjaykgOiBudWxscHRyCisgICAgICAgICwgZ3B1UHJvY2VzcygpID8gbWFr
ZVVuaXF1ZTxQcm9jZXNzQXNzZXJ0aW9uPihncHVQcm9jZXNzKCktPnByb2Nlc3NJZGVudGlmaWVy
KCksICJXZWJLaXQgTWVkaWEgUGxheWJhY2siX3MsIFByb2Nlc3NBc3NlcnRpb25UeXBlOjpNZWRp
YVBsYXliYWNrKSA6IG51bGxwdHIKICNlbmRpZgogICAgIH07CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAppbmRleCA0ZTJlOWE1MjNlNDZlZTQ0NzQ3Y2UzNTAyYWU5
NTBlNThmOTk1MDJlLi45Y2ZlNmQ0NzBmY2FjMjBlMmRhZDAyMGQ0NDU4M2YyYTc2NjgyNjkyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKQEAgLTM1Niw2ICszNTYs
OSBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogICAgIHZvaWQgZ3B1UHJvY2Vz
c0NyYXNoZWQoUHJvY2Vzc0lEKTsKICAgICB2b2lkIGdldEdQVVByb2Nlc3NDb25uZWN0aW9uKFdl
YlByb2Nlc3NQcm94eSYsIE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldEdQVVByb2Nlc3ND
b25uZWN0aW9uRGVsYXllZFJlcGx5JiYpOworCisgICAgR1BVUHJvY2Vzc1Byb3h5JiBlbnN1cmVH
UFVQcm9jZXNzKCk7CisgICAgR1BVUHJvY2Vzc1Byb3h5KiBncHVQcm9jZXNzKCkgY29uc3QgeyBy
ZXR1cm4gbV9ncHVQcm9jZXNzLmdldCgpOyB9CiAjZW5kaWYKIAogI2lmIEVOQUJMRShXRUJfQVVU
SE4pCkBAIC01OTQsNiArNTk3LDEwIEBAIHByaXZhdGU6CiAgICAgT3B0aW9uYWw8VXNlckNvbnRl
bnRDb250cm9sbGVySWRlbnRpZmllcj4gbV91c2VyQ29udGVudENvbnRyb2xsZXJJREZvclNlcnZp
Y2VXb3JrZXI7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKyAgICBSZWZQdHI8
R1BVUHJvY2Vzc1Byb3h5PiBtX2dwdVByb2Nlc3M7CisjZW5kaWYKKwogICAgIFJlZjxXZWJQYWdl
R3JvdXA+IG1fZGVmYXVsdFBhZ2VHcm91cDsKIAogICAgIFJlZlB0cjxBUEk6Ok9iamVjdD4gbV9p
bmplY3RlZEJ1bmRsZUluaXRpYWxpemF0aW9uVXNlckRhdGE7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3Lm1tCmluZGV4IDhmMWZmNDA2ZDk4ZTg5Y2Q5NDhjOGE3
NDQ1MzkxNDhlZjVmYzM4YTkuLmYzOTY4ZDZlNGM2ZmVlYjMwZTYyNTM0YjMyNjBmNzdhNjFlYjEw
MjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3Lm1tCkBA
IC0yMzYsMTAgKzIzNiwxMSBAQCAtICh2b2lkKV9zZXR1cFZpc2liaWxpdHlQcm9wYWdhdGlvblZp
ZXcKIAogLSAodm9pZClfc2V0dXBWaXNpYmlsaXR5UHJvcGFnYXRpb25WaWV3Rm9yR1BVUHJvY2Vz
cwogewotICAgIGlmICghV2ViS2l0OjpHUFVQcm9jZXNzUHJveHk6OnNpbmdsZXRvbklmQ3JlYXRl
ZCgpKQorICAgIGF1dG8qIGdwdVByb2Nlc3MgPSBfcGFnZS0+cHJvY2VzcygpLnByb2Nlc3NQb29s
KCkuZ3B1UHJvY2VzcygpOworICAgIGlmICghZ3B1UHJvY2VzcykKICAgICAgICAgcmV0dXJuOwot
ICAgIGF1dG8gcHJvY2Vzc0lkZW50aWZpZXIgPSBXZWJLaXQ6OkdQVVByb2Nlc3NQcm94eTo6c2lu
Z2xldG9uKCkucHJvY2Vzc0lkZW50aWZpZXIoKTsKLSAgICBhdXRvIGNvbnRleHRJRCA9IFdlYktp
dDo6R1BVUHJvY2Vzc1Byb3h5OjpzaW5nbGV0b24oKS5jb250ZXh0SURGb3JWaXNpYmlsaXR5UHJv
cGFnYXRpb24oKTsKKyAgICBhdXRvIHByb2Nlc3NJZGVudGlmaWVyID0gZ3B1UHJvY2Vzcy0+cHJv
Y2Vzc0lkZW50aWZpZXIoKTsKKyAgICBhdXRvIGNvbnRleHRJRCA9IGdwdVByb2Nlc3MtPmNvbnRl
eHRJREZvclZpc2liaWxpdHlQcm9wYWdhdGlvbigpOwogICAgIGlmICghcHJvY2Vzc0lkZW50aWZp
ZXIgfHwgIWNvbnRleHRJRCkKICAgICAgICAgcmV0dXJuOwogCmRpZmYgLS1naXQgYS9Ub29scy9D
aGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYTU3NzA0M2RkNzBhYmJhMDA5ODQ3MzQ1
MDkzMWI2NzM4OTBjMWQ4OS4uYTUwZjk1ZjZjZmQ3MDFlNWIxNDQ1YWE2NTliOTk4YTEzMDk4ZDk0
YSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE3IEBACisyMDIwLTExLTEwICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+
CisKKyAgICAgICAgR1BVUHJvY2VzcyBkb2VzIG5vdCBwcm9wZXJseSBnZXQgcmVsYXVuY2hlZCBh
ZnRlciBjcmFzaGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjE4NzY5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgVGltIEhvcnRvbi4KKworICAgICAg
ICBBZGQgQVBJIHRlc3QgY292ZXJhZ2UuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RX
ZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBUZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL0dQVVByb2Nlc3MubW06IEFkZGVkLgorICAgICAgICAoVEVT
VCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9hdWRpby1jb250
ZXh0LXBsYXlpbmcuaHRtbDogQWRkZWQuCisKIDIwMjAtMTEtMDkgIEFsYW4gQnVqdGFzICA8emFs
YW5AYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJldmVydGluZyByMjY5NjAzLgpk
aWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2ogYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAxMmM4MDEwY2VmYWMzNWYwNmU4YzNiY2I0NzgzY2Q5
MzcxNDk1ZjcyLi4yNzI4ZTEyYmMyMTdhZjEzNGU0NDNkMWQ5NTJiYjRkNWQ4ZTczNDMwIDEwMDY0
NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjUwLDYgKzI1MCw3IEBACiAJCTQ2Mzk3Qjk1MURDMkM4
NTAwMDlBNzhBRSAvKiBET01Ob2RlLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNDYzOTdCOTQxREMyQzg1MDAwOUE3OEFFIC8qIERPTU5vZGUubW0gKi87
IH07CiAJCTQ2NDdCMTI2MUVCQTNCODUwMDQxRDdFRiAvKiBQcm9jZXNzRGlkVGVybWluYXRlLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2NDdCMTI1
MUVCQTNCNzMwMDQxRDdFRiAvKiBQcm9jZXNzRGlkVGVybWluYXRlLmNwcCAqLzsgfTsKIAkJNDY0
Qzc2NEQyMzBERjg1QzAwQUZCMDIwIC8qIEJhZFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25zLTQu
c3FsaXRlMyBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA0NjRDNzY0QzIzMERGODMyMDBBRkIwMjAgLyogQmFkU2VydmljZVdvcmtlclJlZ2lzdHJh
dGlvbnMtNC5zcWxpdGUzICovOyB9OworCQk0NjVFMjgwNzI1NUIyQTZBMDA2M0E3ODcgLyogR1BV
UHJvY2Vzcy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDQ2NUUyODA2MjU1QjJBNjkwMDYzQTc4NyAvKiBHUFVQcm9jZXNzLm1tICovOyB9OwogCQk0NjZD
Mzg0MzIxMDYzN0RFMDA2QTg4REUgLyogbm90aWZ5LXJlc291cmNlTG9hZE9ic2VydmVyLmh0bWwg
aW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDY2
QzM4NDIyMTA2MzdDRTAwNkE4OERFIC8qIG5vdGlmeS1yZXNvdXJjZUxvYWRPYnNlcnZlci5odG1s
ICovOyB9OwogCQk0NjdDNTY1MzIxQjVFRDEzMDA1NzUxNkQgLyogR2V0U2Vzc2lvbkNvb2tpZS5o
dG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDQ2N0M1NjUxMjFCNUVDREYwMDU3NTE2RCAvKiBHZXRTZXNzaW9uQ29va2llLmh0bWwgKi87IH07
CiAJCTQ2N0M1NjU0MjFCNUVEMTMwMDU3NTE2RCAvKiBTZXRTZXNzaW9uQ29va2llLmh0bWwgaW4g
Q29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDY3QzU2
NTIyMUI1RUNERjAwNTc1MTZEIC8qIFNldFNlc3Npb25Db29raWUuaHRtbCAqLzsgfTsKQEAgLTI2
Niw2ICsyNjcsNyBAQAogCQk0NkU2NkE5MDFGMEQ3NTU5MDAyNkQ4M0MgLyogV0tXZWJWaWV3RGlh
Z25vc3RpY0xvZ2dpbmcubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0NkU2NkE4RjFGMEQ3NTU5MDAyNkQ4M0MgLyogV0tXZWJWaWV3RGlhZ25vc3RpY0xv
Z2dpbmcubW0gKi87IH07CiAJCTQ2RTgxNkY4MUU3OUUyOUMwMDM3NUFEQyAvKiBSZXN0b3JlU3Rh
dGVBZnRlclRlcm1pbmF0aW9uLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNDZFODE2RjcxRTc5RTI5MTAwMzc1QURDIC8qIFJlc3RvcmVTdGF0ZUFmdGVy
VGVybWluYXRpb24ubW0gKi87IH07CiAJCTQ2RUJEODQ3MjM3MjMyMEYwMDIyM0E2RSAvKiBSZXN0
b3JlU2Nyb2xsUG9zaXRpb24ubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA0NkVCRDg0NjIzNzIzMUU2MDAyMjNBNkUgLyogUmVzdG9yZVNjcm9sbFBvc2l0
aW9uLm1tICovOyB9OworCQk0NkYwM0MxQzI1NUIyRDVBMDBBQTUxQzUgLyogYXVkaW8tY29udGV4
dC1wbGF5aW5nLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNDZGMDNDMUIyNTVCMkQzNjAwQUE1MUM1IC8qIGF1ZGlvLWNvbnRleHQtcGxh
eWluZy5odG1sICovOyB9OwogCQk0NkZBMkZFRTIzODQ2Q0E1MDAwQ0NCMEMgLyogSFRUUEhlYWRl
ck1hcC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
NkZBMkZFRDIzODQ2QzlBMDAwQ0NCMEMgLyogSFRUUEhlYWRlck1hcC5jcHAgKi87IH07CiAJCTQ2
RkFDRjc0MjNFODg0MjMwMEE5RUJDNiAvKiBiZWZvcmV1bmxvYWQtc2xvdy5odG1sIGluIENvcHkg
UmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2RkFDRjczMjNF
ODgzRUUwMEE5RUJDNiAvKiBiZWZvcmV1bmxvYWQtc2xvdy5odG1sICovOyB9OwogCQk0OTA5RUUz
QTJEMDk0ODBDODg5ODJENTYgLyogTWFya2FibGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRUM3OUYxNjhCRTQ1NEU1NzlFNDE3QjA1IC8qIE1hcmth
YmxlLmNwcCAqLzsgfTsKQEAgLTEzMDksNiArMTMxMSw3IEBACiAJCQkJRjQyQkQ3RDkyNDVDQzUw
ODAwMUUyMDdBIC8qIGF0dHJpYnV0ZWRTdHJpbmdOZXdsaW5lQXRFbmRPZkRvY3VtZW50Lmh0bWwg
aW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJN0M5RUQ5OEIxN0ExOUY0QjAwRTREQzMzIC8qIGF0
dHJpYnV0ZWRTdHJpbmdTdHJpa2V0aHJvdWdoLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJ
CQkJMzcxMzdFNEIyMTEyNEQwMTAwMkJFRUE0IC8qIEF0dHJTdHlsZS5odG1sIGluIENvcHkgUmVz
b3VyY2VzICovLAorCQkJCTQ2RjAzQzFDMjU1QjJENUEwMEFBNTFDNSAvKiBhdWRpby1jb250ZXh0
LXBsYXlpbmcuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQlDRDlFMjkyRTFDOTBDMzNG
MDAwQkI4MDAgLyogYXVkaW8tb25seS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCUM5
NDQxNjAwMjE0MzBFODkwMEIxRUREQSAvKiBhdWRpby13aXRoLWNvbnRyb2xzLmh0bWwgaW4gQ29w
eSBSZXNvdXJjZXMgKi8sCiAJCQkJQzlDOUE5MUIyMURFRDI4NzAwRkRFOTZFIC8qIGF1ZGlvLXdp
dGgtcGxheS1idXR0b24uaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKQEAgLTE5NzIsNiArMTk3
NSw3IEBACiAJCTQ2NDdCMTI1MUVCQTNCNzMwMDQxRDdFRiAvKiBQcm9jZXNzRGlkVGVybWluYXRl
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFByb2Nlc3NEaWRUZXJt
aW5hdGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NjRDNzY0QzIzMERGODMy
MDBBRkIwMjAgLyogQmFkU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbnMtNC5zcWxpdGUzICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gZmlsZTsgcGF0aCA9
ICJCYWRTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9ucy00LnNxbGl0ZTMiOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk0NjU2QTc1NzIwRjkwNTRGMDAwMkUyMUYgLyogU2ltcGxlU2Vydmlj
ZVdvcmtlclJlZ2lzdHJhdGlvbnMtNC5zcWxpdGUzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gZmlsZTsgcGF0aCA9ICJTaW1wbGVTZXJ2aWNlV29ya2Vy
UmVnaXN0cmF0aW9ucy00LnNxbGl0ZTMiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0
NjVFMjgwNjI1NUIyQTY5MDA2M0E3ODcgLyogR1BVUHJvY2Vzcy5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEdQVVByb2Nlc3MubW07IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTQ2NkMzODQyMjEwNjM3Q0UwMDZBODhERSAvKiBub3RpZnktcmVzb3VyY2VM
b2FkT2JzZXJ2ZXIuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJub3RpZnktcmVz
b3VyY2VMb2FkT2JzZXJ2ZXIuaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2
N0M1NjUxMjFCNUVDREYwMDU3NTE2RCAvKiBHZXRTZXNzaW9uQ29va2llLmh0bWwgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0Lmh0bWw7IHBhdGggPSBHZXRTZXNzaW9uQ29va2llLmh0bWw7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTQ2N0M1NjUyMjFCNUVDREYwMDU3NTE2RCAvKiBTZXRTZXNzaW9uQ29v
a2llLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSBTZXRTZXNzaW9uQ29va2llLmh0
bWw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xOTg3LDYgKzE5OTEsNyBAQAogCQk0
NkU2NkE4RjFGMEQ3NTU5MDAyNkQ4M0MgLyogV0tXZWJWaWV3RGlhZ25vc3RpY0xvZ2dpbmcubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXS1dlYlZpZXdEaWFnbm9z
dGljTG9nZ2luZy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDZFODE2RjcxRTc5
RTI5MTAwMzc1QURDIC8qIFJlc3RvcmVTdGF0ZUFmdGVyVGVybWluYXRpb24ubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBSZXN0b3JlU3RhdGVBZnRlclRlcm1pbmF0
aW9uLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NkVCRDg0NjIzNzIzMUU2MDAy
MjNBNkUgLyogUmVzdG9yZVNjcm9sbFBvc2l0aW9uLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBwYXRoID0gUmVzdG9yZVNjcm9sbFBvc2l0aW9uLm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk0NkYwM0MxQjI1NUIyRDM2MDBBQTUxQzUgLyogYXVkaW8tY29udGV4
dC1wbGF5aW5nLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAiYXVkaW8tY29udGV4
dC1wbGF5aW5nLmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NkZBMkZFRDIz
ODQ2QzlBMDAwQ0NCMEMgLyogSFRUUEhlYWRlck1hcC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBIVFRQSGVhZGVyTWFwLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNDZGQUNGNzMyM0U4ODNFRTAwQTlFQkM2IC8qIGJlZm9yZXVubG9hZC1zbG93Lmh0
bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAiYmVmb3JldW5sb2FkLXNsb3cuaHRtbCI7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ5NzFCMTE3MjQ1MUYyNzgwMDk2OTk0RCAv
KiBpbmNvcnJlY3RDcmVhdGVUYWJsZVNjaGVtYS5kYiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IGZpbGU7IHBhdGggPSBpbmNvcnJlY3RDcmVhdGVUYWJs
ZVNjaGVtYS5kYjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTMyNjMsNiArMzI2OCw3
IEBACiAJCQkJNjMxRUZGRjUxRTdCNUU4RDAwRDJFQkI4IC8qIEdlb2xvY2F0aW9uLm1tICovLAog
CQkJCTA3RTFGNkEwMUZGQzNBMDgwMDk2QzdFQyAvKiBHZXREaXNwbGF5TWVkaWEubW0gKi8sCiAJ
CQkJMkRBREYyNjIyMUNCOEYzMjAwM0QzRTNBIC8qIEdldFJlc291cmNlRGF0YS5tbSAqLywKKwkJ
CQk0NjVFMjgwNjI1NUIyQTY5MDA2M0E3ODcgLyogR1BVUHJvY2Vzcy5tbSAqLywKIAkJCQk1MUFG
MjNERTFFRjFBMzcyMDA3MkYyODEgLyogSWNvbkxvYWRpbmdEZWxlZ2F0ZS5tbSAqLywKIAkJCQlF
QjIzMEQzRTI0NUU3MjYzMDBDNjZBRDEgLyogSURCQ2hlY2twb2ludFdBTC5tbSAqLywKIAkJCQk1
MTA0Nzc3NTFEMjk4RTAzMDA5NzQ3RUIgLyogSURCRGVsZXRlUmVjb3ZlcnkubW0gKi8sCkBAIC0z
NzEyLDYgKzM3MTgsNyBAQAogCQkJCTVDOUU1OTQwMUQzRUIxREUwMEUzQzYyRSAvKiBBcHBsaWNh
dGlvbkNhY2hlLmRiLXdhbCAqLywKIAkJCQlGNDg1NkNBMjFFNjQ5OEE4MDA5RDdFRTcgLyogYXR0
YWNobWVudC1lbGVtZW50Lmh0bWwgKi8sCiAJCQkJMzc2MEM0RjIyMTEyNEJEMDAwMjMzQUNDIC8q
IEF0dHJTdHlsZS5odG1sICovLAorCQkJCTQ2RjAzQzFCMjU1QjJEMzYwMEFBNTFDNSAvKiBhdWRp
by1jb250ZXh0LXBsYXlpbmcuaHRtbCAqLywKIAkJCQlDOTQ0MTVGRjIxNDMwQjY3MDBCMUVEREEg
LyogYXVkaW8td2l0aC1jb250cm9scy5odG1sICovLAogCQkJCUNENTc3NzlBMjExQ0U2QjcwMDFC
MzcxRSAvKiBhdWRpby13aXRoLXdlYi1hdWRpby5odG1sICovLAogCQkJCUY0MUFCOTk4MUVGNDY5
MkMwMDgzRkEwOCAvKiBhdXRvZm9jdXMtY29udGVudGVkaXRhYmxlLmh0bWwgKi8sCkBAIC01MjEw
LDYgKzUyMTcsNyBAQAogCQkJCTA3Q0UxQ0YzMUYwNkE3RTAwMEJGODlGNSAvKiBHZXRVc2VyTWVk
aWFOYXZpZ2F0aW9uLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMDdFNDk5OTExRjlFNTZERjAwMkYx
RUYzIC8qIEdldFVzZXJNZWRpYVJlcHJvbXB0Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNTEwQTky
MTQyNEQ2MTVCNDAwQkZEODlDIC8qIEdvb2dsZVN0YWRpYS5tbSBpbiBTb3VyY2VzICovLAorCQkJ
CTQ2NUUyODA3MjU1QjJBNkEwMDYzQTc4NyAvKiBHUFVQcm9jZXNzLm1tIGluIFNvdXJjZXMgKi8s
CiAJCQkJRTM5NEFFNkYyM0YyMzAzRTAwNUI0OTM2IC8qIEdyYW50QWNjZXNzVG9Nb2JpbGVBc3Nl
dHMubW0gaW4gU291cmNlcyAqLywKIAkJCQlFMzRBNkQxOTI0MTJERTM5MDAxMkFCNkUgLyogR3Jh
bnRBY2Nlc3NUb1ByZWZlcmVuY2VzU2VydmljZS5tbSBpbiBTb3VyY2VzICovLAogCQkJCThFNEE4
NTM3MUUxRDFBQjIwMEY1M0IwRiAvKiBHcmlkUG9zaXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0dQVVByb2Nl
c3MubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0dQVVByb2Nlc3Mu
bW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uM2EyOWE2MDBiNDU5Y2U0M2JkMDI3YzRmOTExYTc5M2YwNWEyNWMxOAot
LS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
R1BVUHJvY2Vzcy5tbQpAQCAtMCwwICsxLDY5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIw
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29u
ZmlnLmgiCisKKyNpbXBvcnQgIlBsYXRmb3JtVXRpbGl0aWVzLmgiCisjaW1wb3J0ICJUZXN0TmF2
aWdhdGlvbkRlbGVnYXRlLmgiCisjaW1wb3J0ICJUZXN0V0tXZWJWaWV3LmgiCisjaW1wb3J0IDxX
ZWJLaXQvV0tQcmVmZXJlbmNlc1ByaXZhdGUuaD4KKyNpbXBvcnQgPFdlYktpdC9XS1Byb2Nlc3NQ
b29sUHJpdmF0ZS5oPgorI2ltcG9ydCA8V2ViS2l0L1dLV2ViVmlld0NvbmZpZ3VyYXRpb24uaD4K
KyNpbXBvcnQgPFdlYktpdC9XS1dlYlZpZXdQcml2YXRlLmg+CisjaW1wb3J0IDxXZWJLaXQvX1dL
SW50ZXJuYWxEZWJ1Z0ZlYXR1cmUuaD4KKyNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KKworVEVT
VChHUFVQcm9jZXNzLCBSZWxhdW5jaE9uQ3Jhc2gpCit7CisgICAgYXV0byBjb25maWd1cmF0aW9u
ID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKKyAgICBm
b3IgKF9XS0ludGVybmFsRGVidWdGZWF0dXJlICpmZWF0dXJlIGluIFtXS1ByZWZlcmVuY2VzIF9p
bnRlcm5hbERlYnVnRmVhdHVyZXNdKSB7CisgICAgICAgIGlmIChbZmVhdHVyZS5rZXkgaXNFcXVh
bFRvU3RyaW5nOkAiVXNlR1BVUHJvY2Vzc0Zvck1lZGlhRW5hYmxlZCJdKSB7CisgICAgICAgICAg
ICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOllFUyBmb3JJbnRlcm5h
bERlYnVnRmVhdHVyZTpmZWF0dXJlXTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9Cisg
ICAgfQorCisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2Nd
IGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCA0MDAsIDQwMCkgY29uZmlndXJhdGlvbjpj
b25maWd1cmF0aW9uLmdldCgpXSk7CisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRUZXN0
UGFnZU5hbWVkOkAiYXVkaW8tY29udGV4dC1wbGF5aW5nIl07CisKKyAgICBhdXRvKiBwcm9jZXNz
UG9vbCA9IGNvbmZpZ3VyYXRpb24uZ2V0KCkucHJvY2Vzc1Bvb2w7CisgICAgdW5zaWduZWQgdGlt
ZW91dCA9IDA7CisgICAgd2hpbGUgKCFbcHJvY2Vzc1Bvb2wgX2dwdVByb2Nlc3NJZGVudGlmaWVy
XSAmJiB0aW1lb3V0KysgPCAxMDApCisgICAgICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnNsZWVw
KDAuMSk7CisKKyAgICBFWFBFQ1RfTkUoW3Byb2Nlc3NQb29sIF9ncHVQcm9jZXNzSWRlbnRpZmll
cl0sIDApOworICAgIGlmICghW3Byb2Nlc3NQb29sIF9ncHVQcm9jZXNzSWRlbnRpZmllcl0pCisg
ICAgICAgIHJldHVybjsKKworICAgIGF1dG8gaW5pdGlhbFBJRCA9IFtwcm9jZXNzUG9vbCBfZ3B1
UHJvY2Vzc0lkZW50aWZpZXJdOworICAgIGtpbGwoaW5pdGlhbFBJRCwgOSk7CisKKyAgICAvLyBN
YWtlIHN1cmUgdGhlIEdQVSBwcm9jZXNzIGdldHMgcmVsYXVuY2hlZC4KKyAgICB0aW1lb3V0ID0g
MDsKKyAgICB3aGlsZSAoKCFbcHJvY2Vzc1Bvb2wgX2dwdVByb2Nlc3NJZGVudGlmaWVyXSB8fCBb
cHJvY2Vzc1Bvb2wgX2dwdVByb2Nlc3NJZGVudGlmaWVyXSA9PSBpbml0aWFsUElEKSAmJiB0aW1l
b3V0KysgPCAxMDApCisgICAgICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnNsZWVwKDAuMSk7Cisg
ICAgRVhQRUNUX05FKFtwcm9jZXNzUG9vbCBfZ3B1UHJvY2Vzc0lkZW50aWZpZXJdLCAwKTsKKyAg
ICBFWFBFQ1RfTkUoW3Byb2Nlc3NQb29sIF9ncHVQcm9jZXNzSWRlbnRpZmllcl0sIGluaXRpYWxQ
SUQpOworfQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9hdWRpby1jb250ZXh0LXBsYXlpbmcuaHRtbCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvYXVkaW8tY29udGV4dC1wbGF5aW5nLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjdlOGY1
YjMzYzE2MzNlOWEzOGY4MDNiZDE5MzA5MDA2MzQyZjc5ZgotLS0gL2Rldi9udWxsCisrKyBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvYXVkaW8tY29udGV4dC1wbGF5aW5n
Lmh0bWwKQEAgLTAsMCArMSwxMSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5Pgor
PHNjcmlwdD4KK2xldCBjb250ZXh0ID0gbmV3IEF1ZGlvQ29udGV4dCgpOworbGV0IG9zY2lsbGF0
b3IgPSBuZXcgT3NjaWxsYXRvck5vZGUoY29udGV4dCk7Citvc2NpbGxhdG9yLmNvbm5lY3QoY29u
dGV4dC5kZXN0aW5hdGlvbik7Citvc2NpbGxhdG9yLnN0YXJ0KCk7Cis8L3NjcmlwdD4KKzwvYm9k
eT4KKzwvaHRtbD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>