<?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>208816</bug_id>
          
          <creation_ts>2020-03-09 08:53:20 -0700</creation_ts>
          <short_desc>Remove sync IPC when creating a remote capture source</short_desc>
          <delta_ts>2020-03-10 05:54:17 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebRTC</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>hta</cc>
    
    <cc>jer.noble</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>tommyw</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1627788</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-03-09 08:53:20 -0700</bug_when>
    <thetext>Remove sync IPC when creating a remote capture source</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1627792</commentid>
    <comment_count>1</comment_count>
      <attachid>393040</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-03-09 09:03:37 -0700</bug_when>
    <thetext>Created attachment 393040
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1627793</commentid>
    <comment_count>2</comment_count>
      <attachid>393041</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-03-09 09:04:32 -0700</bug_when>
    <thetext>Created attachment 393041
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1627794</commentid>
    <comment_count>3</comment_count>
      <attachid>393042</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-03-09 09:07:22 -0700</bug_when>
    <thetext>Created attachment 393042
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1627796</commentid>
    <comment_count>4</comment_count>
      <attachid>393043</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-03-09 09:12:12 -0700</bug_when>
    <thetext>Created attachment 393043
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1627854</commentid>
    <comment_count>5</comment_count>
      <attachid>393043</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2020-03-09 11:11:15 -0700</bug_when>
    <thetext>Comment on attachment 393043
Patch

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

&gt; Source/WebCore/platform/mediastream/RealtimeMediaSourceCenter.cpp:98
&gt; +    CompletionHandler&lt;void(String&amp;&amp;)&gt; waitForAudioSource = [audioSource, videoSource = WTFMove(videoSource), logger = WTFMove(logger), completionHandler = WTFMove(completionHandler)](auto&amp;&amp; errorMessage) mutable {

Shouldn&apos;t this be called &apos;waitForVideoSource&apos;?

Why do you WTFMove() videoSource but not audioSource?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1628182</commentid>
    <comment_count>6</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-03-10 04:45:46 -0700</bug_when>
    <thetext>(In reply to Eric Carlson from comment #5)
&gt; Comment on attachment 393043 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=393043&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/mediastream/RealtimeMediaSourceCenter.cpp:98
&gt; &gt; +    CompletionHandler&lt;void(String&amp;&amp;)&gt; waitForAudioSource = [audioSource, videoSource = WTFMove(videoSource), logger = WTFMove(logger), completionHandler = WTFMove(completionHandler)](auto&amp;&amp; errorMessage) mutable {
&gt; 
&gt; Shouldn&apos;t this be called &apos;waitForVideoSource&apos;?

I will rename it to onceAudioSourceReady.

&gt; Why do you WTFMove() videoSource but not audioSource?

We are using audioSource below so cannot do that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1628188</commentid>
    <comment_count>7</comment_count>
      <attachid>393136</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-03-10 05:04:53 -0700</bug_when>
    <thetext>Created attachment 393136
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1628199</commentid>
    <comment_count>8</comment_count>
      <attachid>393136</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-03-10 05:53:45 -0700</bug_when>
    <thetext>Comment on attachment 393136
Patch for landing

Clearing flags on attachment: 393136

Committed r258201: &lt;https://trac.webkit.org/changeset/258201&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1628200</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-03-10 05:53:47 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1628201</commentid>
    <comment_count>10</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-03-10 05:54:17 -0700</bug_when>
    <thetext>&lt;rdar://problem/60270112&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>393040</attachid>
            <date>2020-03-09 09:03:37 -0700</date>
            <delta_ts>2020-03-09 09:04:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208816-20200309170335.patch</filename>
            <type>text/plain</type>
            <size>23907</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU4MTMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzc0YjBkZDNkMDUxYzk3
NTQ2YzQxMjZmMjE3YmQzZjYzYjU5NWZjYS4uMGViNzI4NDBhYzRlNmM4OGQ2OGQxZGNjYTY3NDI5
OWRkMmFmYWU4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDIwLTAzLTA5ICB5b3Vl
bm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgc3luYyBJUEMg
d2hlbiBjcmVhdGluZyBhIHJlbW90ZSBjYXB0dXJlIHNvdXJjZQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA4ODE2CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgd2hlbkluaXRpYWxpemVkIG1ldGhv
ZCB0byBhbGxvdyBmb3IgYXN5bmMgY3JlYXRpb24gb2YgcmVhbHRpbWUgbWVkaWEgc291cmNlLgor
ICAgICAgICBVc2UgdGhpcyBtZXRob2Qgd2hlbiBjcmVhdGluZyBhIE1lZGlhU3RyZWFtIGZvciBn
ZXRVc2VyTWVkaWEvZ2V0RGlzcGxheU1lZGlhLgorICAgICAgICBDb3ZlcmVkIGJ5IGV4aXN0aW5n
IHRlc3RzLgorCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Qcml2
YXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtUHJpdmF0ZTo6Y3JlYXRlKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUuaDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmg6CisgICAg
ICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpjcmVhdGVNZWRp
YVN0cmVhbSk6CisKIDIwMjAtMDMtMDkgIHlvdWVubiBmYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29t
PgogCiAgICAgICAgIE1vdmUgQXVkaW9TZXNzaW9uIGludGVycnVwdGlvbiBsaXN0ZW5lciBjb2Rl
IHRvIEF1ZGlvU2Vzc2lvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA3YWZlOGMzYTA4ZThjYjQ0ZGYzMzkwNThkOGMw
NmUzOTljNWI3NTJiLi5mNzJkNTMzY2I4NjI0ODJlZjU3NzE1NDgxYmZjODgzNWQwMTBlZTBjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDIwLTAzLTA5ICB5b3Vlbm4gZmFibGV0ICA8eW91
ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgc3luYyBJUEMgd2hlbiBjcmVhdGluZyBh
IHJlbW90ZSBjYXB0dXJlIHNvdXJjZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjA4ODE2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVXNlIHdoZW5Jbml0aWFsaXplZCB0byB3YWl0IGZvciB0aGUgYXN5bmMg
SVBDIHRoYXQgdGVsbHMgd2hldGhlciB0aGUgcmVtb3RlIHNvdXJjZSB3YXMgY3JlYXRlZCBzdWNj
ZXNzZnVsbHkuCisgICAgICAgIFVzZSB0aGUgYXN5bmMgcmVzcG9uc2UgdG8gZ2F0aGVyIHRoZSBj
YXBhYmlsaXRpZXMgc28gYXMgdG8gcmVtb3ZlIHRoZSBjb3JyZXNwb25kaW5nIHN5bmMgSVBDLgor
CisgICAgICAgICogUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uaDoKKyAgICAgICAgKElQQzo6QXN5
bmNSZXBseUVycm9yOjpjcmVhdGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVk
aWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXJQcm94eTo6Y3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENv
bnN0cmFpbnRzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXJQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJl
TWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvVXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0
dXJlTWFuYWdlcjo6U291cmNlOjpkaWRGYWlsKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXI6OlNvdXJjZTo6c2V0QXNSZWFkeSk6CisgICAgICAgIChXZWJLaXQ6OlVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpTb3VyY2U6OnNldENhcGFiaWxpdGllcyk6CisgICAgICAg
IChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpjcmVhdGVDYXB0dXJlU291cmNlKToK
KyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OlNvdXJjZTo6Y2FwYWJp
bGl0aWVzKToKKwogMjAyMC0wMy0wOSAgeW91ZW5uIGZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+
CiAKICAgICAgICAgTW92ZSBBdWRpb1Nlc3Npb24gaW50ZXJydXB0aW9uIGxpc3RlbmVyIGNvZGUg
dG8gQXVkaW9TZXNzaW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Qcml2YXRlLmNwcAppbmRleCBmYzE5OWQxYTBlZTNhYzNh
YjViNWRkYzBjMThiN2U1YWNmMTYyYjY2Li5hZGNmMTJiMDFlZTdhZTg2Y2EzZGY0NWIyNzgxNzZj
YWFkMDRmMzY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9NZWRpYVN0cmVhbVByaXZhdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL01lZGlhU3RyZWFtUHJpdmF0ZS5jcHAKQEAgLTUxLDE2ICs1MSwxNSBAQCBSZWY8
TWVkaWFTdHJlYW1Qcml2YXRlPiBNZWRpYVN0cmVhbVByaXZhdGU6OmNyZWF0ZShSZWY8Y29uc3Qg
TG9nZ2VyPiYmIGxvZ2dlciwgUgogICAgIHJldHVybiBNZWRpYVN0cmVhbVByaXZhdGU6OmNyZWF0
ZShXVEZNb3ZlKGxvZ2dlciksIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlVmVjdG9yOjpmcm9tKE1l
ZGlhU3RyZWFtVHJhY2tQcml2YXRlOjpjcmVhdGUoV1RGTW92ZShsb2dnZXJDb3B5KSwgV1RGTW92
ZShzb3VyY2UpKSkpOwogfQogCi1SZWY8TWVkaWFTdHJlYW1Qcml2YXRlPiBNZWRpYVN0cmVhbVBy
aXZhdGU6OmNyZWF0ZShSZWY8Y29uc3QgTG9nZ2VyPiYmIGxvZ2dlciwgY29uc3QgVmVjdG9yPFJl
ZjxSZWFsdGltZU1lZGlhU291cmNlPj4mIGF1ZGlvU291cmNlcywgY29uc3QgVmVjdG9yPFJlZjxS
ZWFsdGltZU1lZGlhU291cmNlPj4mIHZpZGVvU291cmNlcykKK1JlZjxNZWRpYVN0cmVhbVByaXZh
dGU+IE1lZGlhU3RyZWFtUHJpdmF0ZTo6Y3JlYXRlKFJlZjxjb25zdCBMb2dnZXI+JiYgbG9nZ2Vy
LCBSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZT4mJiBhdWRpb1NvdXJjZSwgUmVmUHRyPFJlYWx0
aW1lTWVkaWFTb3VyY2U+JiYgdmlkZW9Tb3VyY2UpCiB7CiAgICAgTWVkaWFTdHJlYW1UcmFja1By
aXZhdGVWZWN0b3IgdHJhY2tzOwotICAgIHRyYWNrcy5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KGF1
ZGlvU291cmNlcy5zaXplKCkgKyB2aWRlb1NvdXJjZXMuc2l6ZSgpKTsKKyAgICB0cmFja3MucmVz
ZXJ2ZUluaXRpYWxDYXBhY2l0eSgyKTsKIAotICAgIGZvciAoYXV0byYgc291cmNlIDogYXVkaW9T
b3VyY2VzKQotICAgICAgICB0cmFja3MudW5jaGVja2VkQXBwZW5kKE1lZGlhU3RyZWFtVHJhY2tQ
cml2YXRlOjpjcmVhdGUobG9nZ2VyLmNvcHlSZWYoKSwgc291cmNlLmNvcHlSZWYoKSkpOwotCi0g
ICAgZm9yIChhdXRvJiBzb3VyY2UgOiB2aWRlb1NvdXJjZXMpCi0gICAgICAgIHRyYWNrcy51bmNo
ZWNrZWRBcHBlbmQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6OmNyZWF0ZShsb2dnZXIuY29weVJl
ZigpLCBzb3VyY2UuY29weVJlZigpKSk7CisgICAgaWYgKGF1ZGlvU291cmNlKQorICAgICAgICB0
cmFja3MudW5jaGVja2VkQXBwZW5kKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlOjpjcmVhdGUobG9n
Z2VyLmNvcHlSZWYoKSwgYXVkaW9Tb3VyY2UucmVsZWFzZU5vbk51bGwoKSkpOworICAgIGlmICh2
aWRlb1NvdXJjZSkKKyAgICAgICAgdHJhY2tzLnVuY2hlY2tlZEFwcGVuZChNZWRpYVN0cmVhbVRy
YWNrUHJpdmF0ZTo6Y3JlYXRlKGxvZ2dlci5jb3B5UmVmKCksIHZpZGVvU291cmNlLnJlbGVhc2VO
b25OdWxsKCkpKTsKIAogICAgIHJldHVybiBNZWRpYVN0cmVhbVByaXZhdGU6OmNyZWF0ZShXVEZN
b3ZlKGxvZ2dlciksIHRyYWNrcyk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtUHJpdmF0ZS5oCmluZGV4IDQ3MDQ2M2NmMmNl
ZTViMDlmZTczMGI5OTczNzcwOTEwNDBkMzQ2ZmIuLmNlNmI3MTA4NjUxMWVmMjkzYjg5ODY1MDk2
NDYyOGZkNzY4ZDIzYWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL01lZGlhU3RyZWFtUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtUHJpdmF0ZS5oCkBAIC02OSw3ICs2OSw3IEBAIHB1Ymxp
YzoKICAgICB9OwogCiAgICAgc3RhdGljIFJlZjxNZWRpYVN0cmVhbVByaXZhdGU+IGNyZWF0ZShS
ZWY8Y29uc3QgTG9nZ2VyPiYmLCBSZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4mJik7Ci0gICAgc3Rh
dGljIFJlZjxNZWRpYVN0cmVhbVByaXZhdGU+IGNyZWF0ZShSZWY8Y29uc3QgTG9nZ2VyPiYmLCBj
b25zdCBWZWN0b3I8UmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+PiYgYXVkaW9Tb3VyY2VzLCBjb25z
dCBWZWN0b3I8UmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+PiYgdmlkZW9Tb3VyY2VzKTsKKyAgICBz
dGF0aWMgUmVmPE1lZGlhU3RyZWFtUHJpdmF0ZT4gY3JlYXRlKFJlZjxjb25zdCBMb2dnZXI+JiYs
IFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlPiYmIGF1ZGlvU291cmNlLCBSZWZQdHI8UmVhbHRp
bWVNZWRpYVNvdXJjZT4mJiB2aWRlb1NvdXJjZSk7CiAgICAgc3RhdGljIFJlZjxNZWRpYVN0cmVh
bVByaXZhdGU+IGNyZWF0ZShSZWY8Y29uc3QgTG9nZ2VyPiYmIGxvZ2dlciwgY29uc3QgTWVkaWFT
dHJlYW1UcmFja1ByaXZhdGVWZWN0b3ImIHRyYWNrcywgU3RyaW5nJiYgaWQgPSBjcmVhdGVDYW5v
bmljYWxVVUlEU3RyaW5nKCkpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTWVkaWFTdHJlYW1Qcml2
YXRlKFdURk1vdmUobG9nZ2VyKSwgdHJhY2tzLCBXVEZNb3ZlKGlkKSkpOyB9CiAKICAgICB2aXJ0
dWFsIH5NZWRpYVN0cmVhbVByaXZhdGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaAppbmRleCA5ZmFmMDkw
NWRkNGFhNThhNjJhMmJmZGU0MDE5NmQ1MTNlMTQ0OTA0Li40ZWVkMGNmMzJiMzliMTI1ZTMyYTNm
YzFhNWY2YWY5NDc4YTQ1ZDVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oCkBAIC00Miw2ICs0Miw3IEBA
CiAjaW5jbHVkZSAiUGxhdGZvcm1MYXllci5oIgogI2luY2x1ZGUgIlJlYWx0aW1lTWVkaWFTb3Vy
Y2VDYXBhYmlsaXRpZXMuaCIKICNpbmNsdWRlICJSZWFsdGltZU1lZGlhU291cmNlRmFjdG9yeS5o
IgorI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgogI2luY2x1ZGUgPHd0Zi9Mb2dn
ZXJIZWxwZXIuaD4KICNpbmNsdWRlIDx3dGYvUmVjdXJzaXZlTG9ja0FkYXB0ZXIuaD4KICNpbmNs
dWRlIDx3dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaD4KQEAgLTEwNyw2ICsxMDgsOCBAQCBwdWJs
aWM6CiAgICAgZW51bSBjbGFzcyBUeXBlIHsgTm9uZSwgQXVkaW8sIFZpZGVvIH07CiAgICAgVHlw
ZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gbV90eXBlOyB9CiAKKyAgICB2aXJ0dWFsIHZvaWQgd2hl
blJlYWR5KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nKT4mJik7CisKICAgICBib29sIGlz
UHJvZHVjaW5nRGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1faXNQcm9kdWNpbmdEYXRhOyB9CiAgICAg
dm9pZCBzdGFydCgpOwogICAgIHZvaWQgc3RvcCgpOwpAQCAtMjgzLDYgKzI4NiwxMSBAQCBzdHJ1
Y3QgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgewogCiBTdHJpbmcgY29udmVydEVudW1lcmF0aW9uVG9T
dHJpbmcoUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZSk7CiAKK3ZvaWQgUmVhbHRpbWVNZWRpYVNv
dXJjZTo6d2hlblJlYWR5KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nKT4mJiBjYWxsYmFj
aykKK3sKKyAgICBjYWxsYmFjayh7IH0pOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAK
IG5hbWVzcGFjZSBXVEYgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcAppbmRleCA3
N2Q5ODdhYzMxZGM0NzcxODk4M2VhOGM2YThjYWUxZDI5MDU0N2M1Li5hNmY5ZmNlMTI0ZTg4ZjA2
YmM1ZTZlOTM1MjdkMmIxMzAyYjg0M2JhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVy
LmNwcApAQCAtNzAsNDAgKzcwLDQ2IEBAIHZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6
Y3JlYXRlTWVkaWFTdHJlYW0oUmVmPGNvbnN0IExvZ2dlcj4mJiBsb2dnZXIsIE5lCiAgICAgVmVj
dG9yPFJlZjxSZWFsdGltZU1lZGlhU291cmNlPj4gdmlkZW9Tb3VyY2VzOwogICAgIFN0cmluZyBp
bnZhbGlkQ29uc3RyYWludDsKIAorICAgIFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlPiBhdWRp
b1NvdXJjZTsKICAgICBpZiAoYXVkaW9EZXZpY2UpIHsKLSAgICAgICAgYXV0byBhdWRpb1NvdXJj
ZSA9IGF1ZGlvQ2FwdHVyZUZhY3RvcnkoKS5jcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoV1RGTW92
ZShhdWRpb0RldmljZSksIFN0cmluZyB7IGhhc2hTYWx0IH0sICZyZXF1ZXN0LmF1ZGlvQ29uc3Ry
YWludHMpOwotICAgICAgICBpZiAoYXVkaW9Tb3VyY2UpCi0gICAgICAgICAgICBhdWRpb1NvdXJj
ZXMuYXBwZW5kKGF1ZGlvU291cmNlLnNvdXJjZSgpKTsKLSAgICAgICAgZWxzZSB7Ci0jaWYgIUxP
R19ESVNBQkxFRAotICAgICAgICAgICAgaWYgKCFhdWRpb1NvdXJjZS5lcnJvck1lc3NhZ2UuaXNF
bXB0eSgpKQotICAgICAgICAgICAgICAgIExPRyhNZWRpYSwgIlJlYWx0aW1lTWVkaWFTb3VyY2VD
ZW50ZXI6OmNyZWF0ZU1lZGlhU3RyZWFtKCVwKSwgYXVkaW8gY29uc3RyYWludHMgZmFpbGVkIHRv
IGFwcGx5OiAlcyIsIHRoaXMsIGF1ZGlvU291cmNlLmVycm9yTWVzc2FnZS51dGY4KCkuZGF0YSgp
KTsKLSNlbmRpZgotICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIobWFrZVVuZXhwZWN0ZWQo
bWFrZVN0cmluZygiRmFpbGVkIHRvIGNyZWF0ZSBNZWRpYVN0cmVhbSBhdWRpbyBzb3VyY2U6ICIs
IGF1ZGlvU291cmNlLmVycm9yTWVzc2FnZSkpKTsKKyAgICAgICAgYXV0byBzb3VyY2UgPSBhdWRp
b0NhcHR1cmVGYWN0b3J5KCkuY3JlYXRlQXVkaW9DYXB0dXJlU291cmNlKFdURk1vdmUoYXVkaW9E
ZXZpY2UpLCBTdHJpbmcgeyBoYXNoU2FsdCB9LCAmcmVxdWVzdC5hdWRpb0NvbnN0cmFpbnRzKTsK
KyAgICAgICAgaWYgKCFzb3VyY2UpIHsKKyAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKG1h
a2VVbmV4cGVjdGVkKG1ha2VTdHJpbmcoIkZhaWxlZCB0byBjcmVhdGUgTWVkaWFTdHJlYW0gYXVk
aW8gc291cmNlOiAiLCBzb3VyY2UuZXJyb3JNZXNzYWdlKSkpOwogICAgICAgICAgICAgcmV0dXJu
OwogICAgICAgICB9CisgICAgICAgIGF1ZGlvU291cmNlID0gc291cmNlLnNvdXJjZSgpOwogICAg
IH0KIAorICAgIFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlPiB2aWRlb1NvdXJjZTsKICAgICBp
ZiAodmlkZW9EZXZpY2UpIHsKLSAgICAgICAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgdmlkZW9Tb3Vy
Y2U7CisgICAgICAgIENhcHR1cmVTb3VyY2VPckVycm9yIHNvdXJjZTsKICAgICAgICAgaWYgKHZp
ZGVvRGV2aWNlLnR5cGUoKSA9PSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpDYW1lcmEpCi0g
ICAgICAgICAgICB2aWRlb1NvdXJjZSA9IHZpZGVvQ2FwdHVyZUZhY3RvcnkoKS5jcmVhdGVWaWRl
b0NhcHR1cmVTb3VyY2UoV1RGTW92ZSh2aWRlb0RldmljZSksIFdURk1vdmUoaGFzaFNhbHQpLCAm
cmVxdWVzdC52aWRlb0NvbnN0cmFpbnRzKTsKKyAgICAgICAgICAgIHNvdXJjZSA9IHZpZGVvQ2Fw
dHVyZUZhY3RvcnkoKS5jcmVhdGVWaWRlb0NhcHR1cmVTb3VyY2UoV1RGTW92ZSh2aWRlb0Rldmlj
ZSksIFdURk1vdmUoaGFzaFNhbHQpLCAmcmVxdWVzdC52aWRlb0NvbnN0cmFpbnRzKTsKICAgICAg
ICAgZWxzZQotICAgICAgICAgICAgdmlkZW9Tb3VyY2UgPSBkaXNwbGF5Q2FwdHVyZUZhY3Rvcnko
KS5jcmVhdGVEaXNwbGF5Q2FwdHVyZVNvdXJjZShXVEZNb3ZlKHZpZGVvRGV2aWNlKSwgJnJlcXVl
c3QudmlkZW9Db25zdHJhaW50cyk7Ci0KLSAgICAgICAgaWYgKHZpZGVvU291cmNlKQotICAgICAg
ICAgICAgdmlkZW9Tb3VyY2VzLmFwcGVuZCh2aWRlb1NvdXJjZS5zb3VyY2UoKSk7Ci0gICAgICAg
IGVsc2UgewotI2lmICFMT0dfRElTQUJMRUQKLSAgICAgICAgICAgIGlmICghdmlkZW9Tb3VyY2Uu
ZXJyb3JNZXNzYWdlLmlzRW1wdHkoKSkKLSAgICAgICAgICAgICAgICBMT0coTWVkaWEsICJSZWFs
dGltZU1lZGlhU291cmNlQ2VudGVyOjpjcmVhdGVNZWRpYVN0cmVhbSglcCksIHZpZGVvIGNvbnN0
cmFpbnRzIGZhaWxlZCB0byBhcHBseTogJXMiLCB0aGlzLCB2aWRlb1NvdXJjZS5lcnJvck1lc3Nh
Z2UudXRmOCgpLmRhdGEoKSk7Ci0jZW5kaWYKLSAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVy
KG1ha2VVbmV4cGVjdGVkKG1ha2VTdHJpbmcoIkZhaWxlZCB0byBjcmVhdGUgTWVkaWFTdHJlYW0g
dmlkZW8gc291cmNlOiAiLCB2aWRlb1NvdXJjZS5lcnJvck1lc3NhZ2UpKSk7CisgICAgICAgICAg
ICBzb3VyY2UgPSBkaXNwbGF5Q2FwdHVyZUZhY3RvcnkoKS5jcmVhdGVEaXNwbGF5Q2FwdHVyZVNv
dXJjZShXVEZNb3ZlKHZpZGVvRGV2aWNlKSwgJnJlcXVlc3QudmlkZW9Db25zdHJhaW50cyk7CisK
KyAgICAgICAgaWYgKCFzb3VyY2UpIHsKKyAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKG1h
a2VVbmV4cGVjdGVkKG1ha2VTdHJpbmcoIkZhaWxlZCB0byBjcmVhdGUgTWVkaWFTdHJlYW0gdmlk
ZW8gc291cmNlOiAiLCBzb3VyY2UuZXJyb3JNZXNzYWdlKSkpOwogICAgICAgICAgICAgcmV0dXJu
OwogICAgICAgICB9CisgICAgICAgIHZpZGVvU291cmNlID0gc291cmNlLnNvdXJjZSgpOwogICAg
IH0KIAotICAgIGNvbXBsZXRpb25IYW5kbGVyKE1lZGlhU3RyZWFtUHJpdmF0ZTo6Y3JlYXRlKFdU
Rk1vdmUobG9nZ2VyKSwgYXVkaW9Tb3VyY2VzLCB2aWRlb1NvdXJjZXMpKTsKKyAgICBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKFN0cmluZyYmKT4gd2FpdEZvckF1ZGlvU291cmNlID0gW2F1ZGlvU291
cmNlLCB2aWRlb1NvdXJjZSA9IFdURk1vdmUodmlkZW9Tb3VyY2UpLCBsb2dnZXIgPSBXVEZNb3Zl
KGxvZ2dlciksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcild
KGF1dG8mJiBlcnJvck1lc3NhZ2UpIG11dGFibGUgeworICAgICAgICBpZiAoIWVycm9yTWVzc2Fn
ZS5pc0VtcHR5KCkpCisgICAgICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIobWFrZVVu
ZXhwZWN0ZWQobWFrZVN0cmluZygiRmFpbGVkIHRvIGNyZWF0ZSBNZWRpYVN0cmVhbSBhdWRpbyBz
b3VyY2U6ICIsIGVycm9yTWVzc2FnZSkpKTsKKyAgICAgICAgaWYgKCF2aWRlb1NvdXJjZSkKKyAg
ICAgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihNZWRpYVN0cmVhbVByaXZhdGU6OmNy
ZWF0ZShXVEZNb3ZlKGxvZ2dlciksIFdURk1vdmUoYXVkaW9Tb3VyY2UpLCBXVEZNb3ZlKHZpZGVv
U291cmNlKSkpOworCisgICAgICAgIHZpZGVvU291cmNlLT53aGVuUmVhZHkoW2F1ZGlvU291cmNl
ID0gV1RGTW92ZShhdWRpb1NvdXJjZSksIHZpZGVvU291cmNlLCBsb2dnZXIgPSBXVEZNb3ZlKGxv
Z2dlciksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKGF1
dG8mJiBlcnJvck1lc3NhZ2UpIG11dGFibGUgeworICAgICAgICAgICAgaWYgKCFlcnJvck1lc3Nh
Z2UuaXNFbXB0eSgpKQorICAgICAgICAgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlciht
YWtlVW5leHBlY3RlZChtYWtlU3RyaW5nKCJGYWlsZWQgdG8gY3JlYXRlIE1lZGlhU3RyZWFtIHZp
ZGVvIHNvdXJjZTogIiwgZXJyb3JNZXNzYWdlKSkpOworICAgICAgICAgICAgY29tcGxldGlvbkhh
bmRsZXIoTWVkaWFTdHJlYW1Qcml2YXRlOjpjcmVhdGUoV1RGTW92ZShsb2dnZXIpLCBXVEZNb3Zl
KGF1ZGlvU291cmNlKSwgV1RGTW92ZSh2aWRlb1NvdXJjZSkpKTsKKyAgICAgICAgfSk7CisgICAg
fTsKKyAgICBpZiAoIWF1ZGlvU291cmNlKQorICAgICAgICByZXR1cm4gd2FpdEZvckF1ZGlvU291
cmNlKHsgfSk7CisgICAgYXVkaW9Tb3VyY2UtPndoZW5SZWFkeShXVEZNb3ZlKHdhaXRGb3JBdWRp
b1NvdXJjZSkpOwogfQogCiBWZWN0b3I8Q2FwdHVyZURldmljZT4gUmVhbHRpbWVNZWRpYVNvdXJj
ZUNlbnRlcjo6Z2V0TWVkaWFTdHJlYW1EZXZpY2VzKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAppbmRleCA2ZjdiNmZi
M2RiNTRjNWFiMmRkNjRmMzE1Nzk2ZWM2YmJiYWEyMDA1Li4yMWI1NDQwN2Y3ZDQwNDQ1MmQ3MGI1
MGY0ZWEzZjdkNmQ4NTkwNDcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCkBAIC00MzEsMTIgKzQzMSw2IEBAIGJv
b2wgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZGlzcGF0Y2hTeW5jTWVzc2FnZShJUEM6OkNv
bm5lY3Rpb24mIGNvbm5lY3Rpb24sCiAgICAgICAgIHJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclBy
b3h5KCkuZGlkUmVjZWl2ZVN5bmNQbGF5ZXJNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIsIHJl
cGx5RW5jb2Rlcik7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KLSNpZiBFTkFCTEUoTUVE
SUFfU1RSRUFNKQotICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBNZXNz
YWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgp
KSB7Ci0gICAgICAgIHVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkoKS5kaWRSZWNlaXZlU3lu
Y01lc3NhZ2VGcm9tR1BVUHJvY2Vzcyhjb25uZWN0aW9uLCBkZWNvZGVyLCByZXBseUVuY29kZXIp
OwotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0jZW5kaWYKICNpZiBFTkFCTEUoRU5DUllQ
VEVEX01FRElBKQogICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBNZXNz
YWdlczo6UmVtb3RlQ0RNRmFjdG9yeVByb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpIHsKICAg
ICAgICAgY2RtRmFjdG9yeVByb3h5KCkuZGlkUmVjZWl2ZVN5bmNNZXNzYWdlRnJvbVdlYlByb2Nl
c3MoY29ubmVjdGlvbiwgZGVjb2RlciwgcmVwbHlFbmNvZGVyKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZv
cm0vSVBDL0Nvbm5lY3Rpb24uaAppbmRleCAwODRiYjk3ZjEzZTM3Mzg5NTBjY2MyMDA3MGU3NWRh
YTlhZWUwMjk1Li41N2QwYTFkODkzY2NhODIxNzk5MzI3ZGYwMmY1MWQ1YzlhNzA5ZWE4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmgKKysrIGIvU291
cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQ29ubmVjdGlvbi5oCkBAIC04NSw3ICs4NSw3IEBAIGVu
dW0gY2xhc3MgV2FpdEZvck9wdGlvbiB7CiB3aGlsZSAoMCkKIAogdGVtcGxhdGU8dHlwZW5hbWUg
QXN5bmNSZXBseVJlc3VsdD4gc3RydWN0IEFzeW5jUmVwbHlFcnJvciB7Ci0gICAgc3RhdGljIEFz
eW5jUmVwbHlSZXN1bHQgY3JlYXRlKCkgeyByZXR1cm4geyB9OyB9OworICAgIHN0YXRpYyBBc3lu
Y1JlcGx5UmVzdWx0IGNyZWF0ZSgpIHsgcmV0dXJuIEFzeW5jUmVwbHlSZXN1bHQgeyB9OyB9Owog
fTsKIAogY2xhc3MgTWFjaE1lc3NhZ2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwCmluZGV4
IGU2MWM2YjJiNTI0NjA3OWE2YjE3ODMwOGIyZTA0ZjIzNWFiODM2NWYuLmQxZTZiOTllZGZlOTAx
YjE4OTAzNzY4M2QxNGEwNDRmNDA3MGE1MmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3Bw
CkBAIC0xNzcsNyArMTc3LDcgQEAgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6flVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkoKQogICAgIG1fY29ubmVjdGlvblByb3h5LT5yZW1vdmVN
ZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6Om1l
c3NhZ2VSZWNlaXZlck5hbWUoKSk7CiB9CiAKLXZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQ
cm94eTo6Y3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKFJl
YWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkLCBjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZp
Y2UsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzJiBjb25zdHJhaW50
cywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sIHN1Y2NlZWRlZCwgU3RyaW5nIGludmFsaWRD
b25zdHJhaW50cywgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiYpPiYmIGNv
bXBsZXRpb25IYW5kbGVyKQordm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpjcmVh
dGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHMoUmVhbHRpbWVNZWRp
YVNvdXJjZUlkZW50aWZpZXIgaWQsIGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5n
JiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMmIGNvbnN0cmFpbnRzLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKGJvb2wgc3VjY2VlZGVkLCBTdHJpbmcgaW52YWxpZENvbnN0cmFpbnRz
LCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmJiwgV2ViQ29yZTo6UmVhbHRp
bWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAg
ICBDYXB0dXJlU291cmNlT3JFcnJvciBzb3VyY2VPckVycm9yOwogICAgIHN3aXRjaCAoZGV2aWNl
LnR5cGUoKSkgewpAQCAtMjAzLDE3ICsyMDMsMTkgQEAgdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFu
YWdlclByb3h5OjpjcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWkK
ICAgICBib29sIHN1Y2NlZWRlZCA9ICEhc291cmNlT3JFcnJvcjsKICAgICBTdHJpbmcgaW52YWxp
ZENvbnN0cmFpbnRzOwogICAgIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyBz
ZXR0aW5nczsKKyAgICBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzIGNh
cGFiaWxpdGllczsKICAgICBpZiAoc291cmNlT3JFcnJvcikgewogICAgICAgICBhdXRvIHNvdXJj
ZSA9IHNvdXJjZU9yRXJyb3Iuc291cmNlKCk7CiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAg
ICAgICAgIHNvdXJjZS0+c2V0TG9nZ2VyKG1fY29ubmVjdGlvblByb3h5LT5sb2dnZXIoKSwgTG9n
Z2VySGVscGVyOjp1bmlxdWVMb2dJZGVudGlmaWVyKCkpOwogI2VuZGlmCiAgICAgICAgIHNldHRp
bmdzID0gc291cmNlLT5zZXR0aW5ncygpOworICAgICAgICBjYXBhYmlsaXRpZXMgPSBzb3VyY2Ut
PmNhcGFiaWxpdGllcygpOwogICAgICAgICBBU1NFUlQoIW1fcHJveGllcy5jb250YWlucyhpZCkp
OwogICAgICAgICBtX3Byb3hpZXMuYWRkKGlkLCBtYWtlVW5pcXVlPFNvdXJjZVByb3h5PihpZCwg
bV9jb25uZWN0aW9uUHJveHktPmNvbm5lY3Rpb24oKSwgV1RGTW92ZShzb3VyY2UpKSk7CiAgICAg
fSBlbHNlCiAgICAgICAgIGludmFsaWRDb25zdHJhaW50cyA9IFdURk1vdmUoc291cmNlT3JFcnJv
ci5lcnJvck1lc3NhZ2UpOwotICAgIGNvbXBsZXRpb25IYW5kbGVyKHN1Y2NlZWRlZCwgaW52YWxp
ZENvbnN0cmFpbnRzLCBXVEZNb3ZlKHNldHRpbmdzKSk7CisgICAgY29tcGxldGlvbkhhbmRsZXIo
c3VjY2VlZGVkLCBpbnZhbGlkQ29uc3RyYWludHMsIFdURk1vdmUoc2V0dGluZ3MpLCBXVEZNb3Zl
KGNhcGFiaWxpdGllcykpOwogfQogCiB2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6
OnN0YXJ0UHJvZHVjaW5nRGF0YShSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyUHJveHkuaAppbmRleCBkOWNjYzhmMzYwMDU3OWE0OTUzY2Y5Y2UzZDFiZmYx
NDg3OGE3YzI4Li4yY2QxMDI3MTA1OWY2MzY2OWMwOWMyZWM5YTIxYTcwZGFkYzI0NGFiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFu
YWdlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXJQcm94eS5oCkBAIC02NCwxNCArNjQsMTIgQEAgcHVibGljOgogICAgIHZv
aWQgc2V0T3JpZW50YXRpb24odWludDY0X3QpOwogCiAgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2Fn
ZUZyb21HUFVQcm9jZXNzKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNvZGVy
JiBkZWNvZGVyKSB7IGRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpOyB9Ci0g
ICAgdm9pZCBkaWRSZWNlaXZlU3luY01lc3NhZ2VGcm9tR1BVUHJvY2VzcyhJUEM6OkNvbm5lY3Rp
b24mIGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGVjb2Rlciwgc3RkOjp1bmlxdWVfcHRyPElQ
Qzo6RW5jb2Rlcj4mIGVuY29kZXIpIHsgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKGNvbm5lY3Rpb24s
IGRlY29kZXIsIGVuY29kZXIpOyB9CiAKIHByaXZhdGU6CiAgICAgLy8gSVBDOjpNZXNzYWdlUmVj
ZWl2ZXIKICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6
RGVjb2RlciYpIGZpbmFsOwotICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29u
bmVjdGlvbiYsIElQQzo6RGVjb2RlciYsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+Jikg
ZmluYWw7CiAKLSAgICB2b2lkIGNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhD
b25zdHJhaW50cyhXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciwgY29uc3Qg
V2ViQ29yZTo6Q2FwdHVyZURldmljZSYgZGV2aWNlSUQsIFN0cmluZyYmLCBjb25zdCBXZWJDb3Jl
OjpNZWRpYUNvbnN0cmFpbnRzJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sIHN1Y2NlZWRl
ZCwgU3RyaW5nIGludmFsaWRDb25zdHJhaW50cywgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJj
ZVNldHRpbmdzJiYpPiYmKTsKKyAgICB2b2lkIGNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURl
dmljZVdpdGhDb25zdHJhaW50cyhXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmll
ciwgY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYgZGV2aWNlSUQsIFN0cmluZyYmLCBjb25z
dCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29s
IHN1Y2NlZWRlZCwgU3RyaW5nIGludmFsaWRDb25zdHJhaW50cywgV2ViQ29yZTo6UmVhbHRpbWVN
ZWRpYVNvdXJjZVNldHRpbmdzJiYsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmls
aXRpZXMmJik+JiYpOwogICAgIHZvaWQgc3RhcnRQcm9kdWNpbmdEYXRhKFdlYkNvcmU6OlJlYWx0
aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyKTsKICAgICB2b2lkIHN0b3BQcm9kdWNpbmdEYXRhKFdl
YkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyKTsKICAgICB2b2lkIGVuZChXZWJD
b3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllcik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Lm1lc3Nh
Z2VzLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXJQcm94eS5tZXNzYWdlcy5pbgppbmRleCBiY2E1OTVlYzU0OTI4MTUxMWMyOTgyZjgxNzJm
YzI4NDZiMGJlMzBhLi5jNGQ1ZGI2OTU2NzkwMGMyMzM5Y2MwZmU3OWEwNjBmNjFiMzcxNTE1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJl
TWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Nv
Y29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KQEAgLTI0LDExICsy
NCwxMCBAQAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAKIG1lc3NhZ2VzIC0+IFVzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyUHJveHkgTm90UmVmQ291bnRlZCB7Ci0gICAgQ3JlYXRlTWVkaWFTb3Vy
Y2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFT
b3VyY2VJZGVudGlmaWVyIGlkLCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlIGRldmljZSwgU3RyaW5n
IGhhc2hTYWx0LCBzdHJ1Y3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyBjb25zdHJhaW50cykg
LT4gKGJvb2wgc3VjY2VzcywgU3RyaW5nIGludmFsaWRDb25zdHJhaW50cywgV2ViQ29yZTo6UmVh
bHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzIHNldHRpbmdzKSBTeW5jaHJvbm91cworICAgIENyZWF0
ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50cyhXZWJDb3JlOjpSZWFs
dGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZCwgV2ViQ29yZTo6Q2FwdHVyZURldmljZSBkZXZp
Y2UsIFN0cmluZyBoYXNoU2FsdCwgc3RydWN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMgY29u
c3RyYWludHMpIC0+IChib29sIHN1Y2Nlc3MsIFN0cmluZyBpbnZhbGlkQ29uc3RyYWludHMsIFdl
YkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyBzZXR0aW5ncywgV2ViQ29yZTo6UmVh
bHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyBjYXBhYmlsaXRpZXMpIEFzeW5jCiAgICAgU3Rh
cnRQcm9kdWNpbmdEYXRhKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlk
KQogICAgIFN0b3BQcm9kdWNpbmdEYXRhKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVu
dGlmaWVyIGlkKQogICAgIEVuZChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmll
ciBpZCkKLSAgICBDYXBhYmlsaXRpZXMoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50
aWZpZXIgaWQpIC0+IChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzIGNh
cGFiaWxpdGllcykgU3luY2hyb25vdXMKICAgICBTZXRNdXRlZChXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlSWRlbnRpZmllciBpZCwgYm9vbCBtdXRlZCkKICAgICBBcHBseUNvbnN0cmFpbnRz
KFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkLCBzdHJ1Y3QgV2ViQ29y
ZTo6TWVkaWFDb25zdHJhaW50cyBjb25zdHJhaW50cykKICAgICBDbG9uZShXZWJDb3JlOjpSZWFs
dGltZU1lZGlhU291cmNlSWRlbnRpZmllciBjbG9uZWRJRCwgV2ViQ29yZTo6UmVhbHRpbWVNZWRp
YVNvdXJjZUlkZW50aWZpZXIgY2xvbmVJRCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwCmluZGV4IDIyMTU5
MTg0MGEyMWZlYzMzZGRiMWViNTJiNjJhYzlkNWZmNjkwOGQuLjg5NGUyYTFkMzJhNDIzMzFlOGIx
Y2FmZWZlYjYyNDE4MTMxMjUxZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcApAQCAtMTAxLDYgKzEw
MSwyOCBAQCBwdWJsaWM6CiAgICAgICAgIH0KICAgICB9CiAKKyAgICB2b2lkIHdoZW5SZWFkeShD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0cmluZyk+JiYgY2FsbGJhY2spIGZpbmFsCisgICAgewor
ICAgICAgICBpZiAobV9pc1JlYWR5KQorICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKFdURk1v
dmUobV9lcnJvck1lc3NhZ2UpKTsKKyAgICAgICAgbV9jYWxsYmFjayA9IFdURk1vdmUoY2FsbGJh
Y2spOworICAgIH0KKworICAgIHZvaWQgZGlkRmFpbChTdHJpbmcmJiBlcnJvck1lc3NhZ2UpCisg
ICAgeworICAgICAgICBtX2lzUmVhZHkgPSB0cnVlOworICAgICAgICBtX2Vycm9yTWVzc2FnZSA9
IFdURk1vdmUoZXJyb3JNZXNzYWdlKTsKKyAgICAgICAgaWYgKG1fY2FsbGJhY2spCisgICAgICAg
ICAgICBtX2NhbGxiYWNrKFN0cmluZyhlcnJvck1lc3NhZ2UpKTsKKyAgICB9CisKKyAgICB2b2lk
IHNldEFzUmVhZHkoKQorICAgIHsKKyAgICAgICAgbV9pc1JlYWR5ID0gdHJ1ZTsKKyAgICAgICAg
aWYgKG1fY2FsbGJhY2spCisgICAgICAgICAgICBtX2NhbGxiYWNrKHsgfSk7CisgICAgfQorCiAg
ICAgU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UmIHN0b3JhZ2UoKQogICAgIHsKICAgICAgICAgQVNT
RVJUKHR5cGUoKSA9PSBUeXBlOjpBdWRpbyk7CkBAIC0xMjMsNiArMTQ1LDEwIEBAIHB1YmxpYzoK
ICAgICB9CiAKICAgICBjb25zdCBSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzJiBjYXBh
YmlsaXRpZXMoKSBmaW5hbDsKKyAgICB2b2lkIHNldENhcGFiaWxpdGllcyhSZWFsdGltZU1lZGlh
U291cmNlQ2FwYWJpbGl0aWVzJiYgY2FwYWJpbGl0aWVzKQorICAgIHsKKyAgICAgICAgbV9jYXBh
YmlsaXRpZXMgPSBXVEZNb3ZlKGNhcGFiaWxpdGllcyk7CisgICAgfQogCiAgICAgY29uc3QgUmVh
bHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiBzZXR0aW5ncygpIGZpbmFsIHsgcmV0dXJuIG1fc2V0
dGluZ3M7IH0KICAgICB2b2lkIHNldFNldHRpbmdzKFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5n
cyYmIHNldHRpbmdzKQpAQCAtMjMxLDcgKzI1Nyw3IEBAIHByaXZhdGU6CiAKICAgICBSZWFsdGlt
ZU1lZGlhU291cmNlSWRlbnRpZmllciBtX2lkOwogICAgIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
JiBtX21hbmFnZXI7Ci0gICAgbXV0YWJsZSBPcHRpb25hbDxSZWFsdGltZU1lZGlhU291cmNlQ2Fw
YWJpbGl0aWVzPiBtX2NhcGFiaWxpdGllczsKKyAgICBSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJp
bGl0aWVzIG1fY2FwYWJpbGl0aWVzOwogICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyBt
X3NldHRpbmdzOwogCiAgICAgQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uIG1fZGVzY3JpcHRpb247
CkBAIC0yNDIsNiArMjY4LDkgQEAgcHJpdmF0ZToKIAogICAgIERlcXVlPEFwcGx5Q29uc3RyYWlu
dHNIYW5kbGVyPiBtX3BlbmRpbmdBcHBseUNvbnN0cmFpbnRzQ2FsbGJhY2tzOwogICAgIGJvb2wg
bV9zaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzIHsgZmFsc2UgfTsKKyAgICBib29sIG1faXNSZWFk
eSB7IGZhbHNlIH07CisgICAgU3RyaW5nIG1fZXJyb3JNZXNzYWdlOworICAgIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoU3RyaW5nKT4gbV9jYWxsYmFjazsKIH07CiAKIFVzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcihXZWJQcm9jZXNzJiBwcm9jZXNzKQpAQCAt
MjkyLDI3ICszMjEsMzEgQEAgV2ViQ29yZTo6Q2FwdHVyZVNvdXJjZU9yRXJyb3IgVXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXI6OmNyZWF0ZUNhcHR1cmVTb3VyY2UoY29uc3QKICAgICAgICAgcmV0dXJu
IHsgfTsKIAogICAgIGF1dG8gaWQgPSBSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllcjo6Z2Vu
ZXJhdGUoKTsKLSAgICBSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3Mgc2V0dGluZ3M7Ci0gICAg
U3RyaW5nIGVycm9yTWVzc2FnZTsKLSAgICBib29sIHN1Y2NlZWRlZDsKKwogI2lmIEVOQUJMRShH
UFVfUFJPQ0VTUykKICAgICBhdXRvKiBjb25uZWN0aW9uID0gc2hvdWxkQ2FwdHVyZUluR1BVUHJv
Y2VzcyA/ICZtX3Byb2Nlc3MuZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9u
KCkgOiBtX3Byb2Nlc3MucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKTsKICNlbHNlCiAgICAgQVNT
RVJUKCFzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKTsKICAgICBhdXRvKiBjb25uZWN0aW9uID0g
bV9wcm9jZXNzLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCk7CiAjZW5kaWYKLSAgICBpZiAoIWNv
bm5lY3Rpb24tPnNlbmRTeW5jKE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5
OjpDcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHMoaWQsIGRl
dmljZSwgaGFzaFNhbHQsICpjb25zdHJhaW50cyksIE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJl
TWFuYWdlclByb3h5OjpDcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3Ry
YWludHM6OlJlcGx5KHN1Y2NlZWRlZCwgZXJyb3JNZXNzYWdlLCBzZXR0aW5ncyksIDApKQotICAg
ICAgICByZXR1cm4gV1RGTW92ZShlcnJvck1lc3NhZ2UpOwotCi0gICAgaWYgKCFzdWNjZWVkZWQp
Ci0gICAgICAgIHJldHVybiBXVEZNb3ZlKGVycm9yTWVzc2FnZSk7Ci0KKyAgICAKICAgICBhdXRv
IHR5cGUgPSBkZXZpY2UudHlwZSgpID09IENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6Ok1pY3Jv
cGhvbmUgPyBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbyA6IFdlYkNv
cmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OlZpZGVvOwotICAgIGF1dG8gc291cmNlID0g
YWRvcHRSZWYoKm5ldyBTb3VyY2UoU3RyaW5nOjpudW1iZXIoaWQudG9VSW50NjQoKSksIHR5cGUs
IGRldmljZS50eXBlKCksIFN0cmluZyB7IHNldHRpbmdzLmxhYmVsKCkuc3RyaW5nKCkgfSwgV1RG
TW92ZShoYXNoU2FsdCksIGlkLCAqdGhpcykpOworICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYo
Km5ldyBTb3VyY2UoU3RyaW5nOjpudW1iZXIoaWQudG9VSW50NjQoKSksIHR5cGUsIGRldmljZS50
eXBlKCksIFN0cmluZyB7IH0sIFN0cmluZyB7IGhhc2hTYWx0IH0sIGlkLCAqdGhpcykpOwogICAg
IGlmIChzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKQogICAgICAgICBzb3VyY2UtPnNldFNob3Vs
ZENhcHR1cmVJbkdQVVByb2Nlc3Moc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2Vzcyk7Ci0gICAgc291
cmNlLT5zZXRTZXR0aW5ncyhXVEZNb3ZlKHNldHRpbmdzKSk7CiAgICAgbV9zb3VyY2VzLmFkZChp
ZCwgc291cmNlLmNvcHlSZWYoKSk7CisKKyAgICBjb25uZWN0aW9uLT5zZW5kV2l0aEFzeW5jUmVw
bHkoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OkNyZWF0ZU1lZGlhU291
cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50cyhpZCwgZGV2aWNlLCBoYXNoU2FsdCwg
KmNvbnN0cmFpbnRzKSwgW3NvdXJjZSA9IHNvdXJjZS5jb3B5UmVmKCldKGJvb2wgc3VjY2VlZGVk
LCBhdXRvJiYgZXJyb3JNZXNzYWdlLCBhdXRvJiYgc2V0dGluZ3MsIGF1dG8mJiBjYXBhYmlsaXRp
ZXMpIHsKKyAgICAgICAgaWYgKCFzdWNjZWVkZWQpIHsKKyAgICAgICAgICAgIHNvdXJjZS0+ZGlk
RmFpbChXVEZNb3ZlKGVycm9yTWVzc2FnZSkpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICB9CisgICAgICAgIHNvdXJjZS0+c2V0TmFtZShTdHJpbmcgeyBzZXR0aW5ncy5sYWJlbCgpLnN0
cmluZygpIH0pOworICAgICAgICBzb3VyY2UtPnNldFNldHRpbmdzKFdURk1vdmUoc2V0dGluZ3Mp
KTsKKyAgICAgICAgc291cmNlLT5zZXRDYXBhYmlsaXRpZXMoV1RGTW92ZShjYXBhYmlsaXRpZXMp
KTsKKyAgICAgICAgc291cmNlLT5zZXRBc1JlYWR5KCk7CisgICAgfSk7CisKICAgICByZXR1cm4g
V2ViQ29yZTo6Q2FwdHVyZVNvdXJjZU9yRXJyb3IoV1RGTW92ZShzb3VyY2UpKTsKIH0KIApAQCAt
Mzk4LDEzICs0MzEsNyBAQCB2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpTb3VyY2U6OnN0
b3BQcm9kdWNpbmdEYXRhKCkKIAogY29uc3QgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNh
cGFiaWxpdGllcyYgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OlNvdXJjZTo6Y2FwYWJpbGl0aWVz
KCkKIHsKLSAgICBpZiAoIW1fY2FwYWJpbGl0aWVzKSB7Ci0gICAgICAgIFJlYWx0aW1lTWVkaWFT
b3VyY2VDYXBhYmlsaXRpZXMgY2FwYWJpbGl0aWVzOwotICAgICAgICBjb25uZWN0aW9uKCktPnNl
bmRTeW5jKE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpDYXBhYmlsaXRp
ZXMgeyBtX2lkIH0sIE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpDYXBh
YmlsaXRpZXM6OlJlcGx5KGNhcGFiaWxpdGllcyksIDApOwotICAgICAgICBtX2NhcGFiaWxpdGll
cyA9IFdURk1vdmUoY2FwYWJpbGl0aWVzKTsKLSAgICB9Ci0KLSAgICByZXR1cm4gbV9jYXBhYmls
aXRpZXMudmFsdWUoKTsKKyAgICByZXR1cm4gbV9jYXBhYmlsaXRpZXM7CiB9CiAKIHZvaWQgVXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXI6OlNvdXJjZTo6YXBwbHlDb25zdHJhaW50cyhjb25zdCBXZWJD
b3JlOjpNZWRpYUNvbnN0cmFpbnRzJiBjb25zdHJhaW50cywgQXBwbHlDb25zdHJhaW50c0hhbmRs
ZXImJiBjb21wbGV0aW9uSGFuZGxlcikK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>393041</attachid>
            <date>2020-03-09 09:04:32 -0700</date>
            <delta_ts>2020-03-09 09:07:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208816-20200309170430.patch</filename>
            <type>text/plain</type>
            <size>23914</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU4MTMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzc0YjBkZDNkMDUxYzk3
NTQ2YzQxMjZmMjE3YmQzZjYzYjU5NWZjYS4uMGViNzI4NDBhYzRlNmM4OGQ2OGQxZGNjYTY3NDI5
OWRkMmFmYWU4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDIwLTAzLTA5ICB5b3Vl
bm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgc3luYyBJUEMg
d2hlbiBjcmVhdGluZyBhIHJlbW90ZSBjYXB0dXJlIHNvdXJjZQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA4ODE2CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgd2hlbkluaXRpYWxpemVkIG1ldGhv
ZCB0byBhbGxvdyBmb3IgYXN5bmMgY3JlYXRpb24gb2YgcmVhbHRpbWUgbWVkaWEgc291cmNlLgor
ICAgICAgICBVc2UgdGhpcyBtZXRob2Qgd2hlbiBjcmVhdGluZyBhIE1lZGlhU3RyZWFtIGZvciBn
ZXRVc2VyTWVkaWEvZ2V0RGlzcGxheU1lZGlhLgorICAgICAgICBDb3ZlcmVkIGJ5IGV4aXN0aW5n
IHRlc3RzLgorCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Qcml2
YXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtUHJpdmF0ZTo6Y3JlYXRlKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUuaDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmg6CisgICAg
ICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpjcmVhdGVNZWRp
YVN0cmVhbSk6CisKIDIwMjAtMDMtMDkgIHlvdWVubiBmYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29t
PgogCiAgICAgICAgIE1vdmUgQXVkaW9TZXNzaW9uIGludGVycnVwdGlvbiBsaXN0ZW5lciBjb2Rl
IHRvIEF1ZGlvU2Vzc2lvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA3YWZlOGMzYTA4ZThjYjQ0ZGYzMzkwNThkOGMw
NmUzOTljNWI3NTJiLi5mNzJkNTMzY2I4NjI0ODJlZjU3NzE1NDgxYmZjODgzNWQwMTBlZTBjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDIwLTAzLTA5ICB5b3Vlbm4gZmFibGV0ICA8eW91
ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgc3luYyBJUEMgd2hlbiBjcmVhdGluZyBh
IHJlbW90ZSBjYXB0dXJlIHNvdXJjZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjA4ODE2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVXNlIHdoZW5Jbml0aWFsaXplZCB0byB3YWl0IGZvciB0aGUgYXN5bmMg
SVBDIHRoYXQgdGVsbHMgd2hldGhlciB0aGUgcmVtb3RlIHNvdXJjZSB3YXMgY3JlYXRlZCBzdWNj
ZXNzZnVsbHkuCisgICAgICAgIFVzZSB0aGUgYXN5bmMgcmVzcG9uc2UgdG8gZ2F0aGVyIHRoZSBj
YXBhYmlsaXRpZXMgc28gYXMgdG8gcmVtb3ZlIHRoZSBjb3JyZXNwb25kaW5nIHN5bmMgSVBDLgor
CisgICAgICAgICogUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uaDoKKyAgICAgICAgKElQQzo6QXN5
bmNSZXBseUVycm9yOjpjcmVhdGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVk
aWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXJQcm94eTo6Y3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENv
bnN0cmFpbnRzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXJQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJl
TWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvVXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0
dXJlTWFuYWdlcjo6U291cmNlOjpkaWRGYWlsKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXI6OlNvdXJjZTo6c2V0QXNSZWFkeSk6CisgICAgICAgIChXZWJLaXQ6OlVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpTb3VyY2U6OnNldENhcGFiaWxpdGllcyk6CisgICAgICAg
IChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpjcmVhdGVDYXB0dXJlU291cmNlKToK
KyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OlNvdXJjZTo6Y2FwYWJp
bGl0aWVzKToKKwogMjAyMC0wMy0wOSAgeW91ZW5uIGZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+
CiAKICAgICAgICAgTW92ZSBBdWRpb1Nlc3Npb24gaW50ZXJydXB0aW9uIGxpc3RlbmVyIGNvZGUg
dG8gQXVkaW9TZXNzaW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Qcml2YXRlLmNwcAppbmRleCBmYzE5OWQxYTBlZTNhYzNh
YjViNWRkYzBjMThiN2U1YWNmMTYyYjY2Li5hZGNmMTJiMDFlZTdhZTg2Y2EzZGY0NWIyNzgxNzZj
YWFkMDRmMzY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9NZWRpYVN0cmVhbVByaXZhdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL01lZGlhU3RyZWFtUHJpdmF0ZS5jcHAKQEAgLTUxLDE2ICs1MSwxNSBAQCBSZWY8
TWVkaWFTdHJlYW1Qcml2YXRlPiBNZWRpYVN0cmVhbVByaXZhdGU6OmNyZWF0ZShSZWY8Y29uc3Qg
TG9nZ2VyPiYmIGxvZ2dlciwgUgogICAgIHJldHVybiBNZWRpYVN0cmVhbVByaXZhdGU6OmNyZWF0
ZShXVEZNb3ZlKGxvZ2dlciksIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlVmVjdG9yOjpmcm9tKE1l
ZGlhU3RyZWFtVHJhY2tQcml2YXRlOjpjcmVhdGUoV1RGTW92ZShsb2dnZXJDb3B5KSwgV1RGTW92
ZShzb3VyY2UpKSkpOwogfQogCi1SZWY8TWVkaWFTdHJlYW1Qcml2YXRlPiBNZWRpYVN0cmVhbVBy
aXZhdGU6OmNyZWF0ZShSZWY8Y29uc3QgTG9nZ2VyPiYmIGxvZ2dlciwgY29uc3QgVmVjdG9yPFJl
ZjxSZWFsdGltZU1lZGlhU291cmNlPj4mIGF1ZGlvU291cmNlcywgY29uc3QgVmVjdG9yPFJlZjxS
ZWFsdGltZU1lZGlhU291cmNlPj4mIHZpZGVvU291cmNlcykKK1JlZjxNZWRpYVN0cmVhbVByaXZh
dGU+IE1lZGlhU3RyZWFtUHJpdmF0ZTo6Y3JlYXRlKFJlZjxjb25zdCBMb2dnZXI+JiYgbG9nZ2Vy
LCBSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZT4mJiBhdWRpb1NvdXJjZSwgUmVmUHRyPFJlYWx0
aW1lTWVkaWFTb3VyY2U+JiYgdmlkZW9Tb3VyY2UpCiB7CiAgICAgTWVkaWFTdHJlYW1UcmFja1By
aXZhdGVWZWN0b3IgdHJhY2tzOwotICAgIHRyYWNrcy5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KGF1
ZGlvU291cmNlcy5zaXplKCkgKyB2aWRlb1NvdXJjZXMuc2l6ZSgpKTsKKyAgICB0cmFja3MucmVz
ZXJ2ZUluaXRpYWxDYXBhY2l0eSgyKTsKIAotICAgIGZvciAoYXV0byYgc291cmNlIDogYXVkaW9T
b3VyY2VzKQotICAgICAgICB0cmFja3MudW5jaGVja2VkQXBwZW5kKE1lZGlhU3RyZWFtVHJhY2tQ
cml2YXRlOjpjcmVhdGUobG9nZ2VyLmNvcHlSZWYoKSwgc291cmNlLmNvcHlSZWYoKSkpOwotCi0g
ICAgZm9yIChhdXRvJiBzb3VyY2UgOiB2aWRlb1NvdXJjZXMpCi0gICAgICAgIHRyYWNrcy51bmNo
ZWNrZWRBcHBlbmQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6OmNyZWF0ZShsb2dnZXIuY29weVJl
ZigpLCBzb3VyY2UuY29weVJlZigpKSk7CisgICAgaWYgKGF1ZGlvU291cmNlKQorICAgICAgICB0
cmFja3MudW5jaGVja2VkQXBwZW5kKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlOjpjcmVhdGUobG9n
Z2VyLmNvcHlSZWYoKSwgYXVkaW9Tb3VyY2UucmVsZWFzZU5vbk51bGwoKSkpOworICAgIGlmICh2
aWRlb1NvdXJjZSkKKyAgICAgICAgdHJhY2tzLnVuY2hlY2tlZEFwcGVuZChNZWRpYVN0cmVhbVRy
YWNrUHJpdmF0ZTo6Y3JlYXRlKGxvZ2dlci5jb3B5UmVmKCksIHZpZGVvU291cmNlLnJlbGVhc2VO
b25OdWxsKCkpKTsKIAogICAgIHJldHVybiBNZWRpYVN0cmVhbVByaXZhdGU6OmNyZWF0ZShXVEZN
b3ZlKGxvZ2dlciksIHRyYWNrcyk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtUHJpdmF0ZS5oCmluZGV4IDQ3MDQ2M2NmMmNl
ZTViMDlmZTczMGI5OTczNzcwOTEwNDBkMzQ2ZmIuLmNlNmI3MTA4NjUxMWVmMjkzYjg5ODY1MDk2
NDYyOGZkNzY4ZDIzYWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL01lZGlhU3RyZWFtUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtUHJpdmF0ZS5oCkBAIC02OSw3ICs2OSw3IEBAIHB1Ymxp
YzoKICAgICB9OwogCiAgICAgc3RhdGljIFJlZjxNZWRpYVN0cmVhbVByaXZhdGU+IGNyZWF0ZShS
ZWY8Y29uc3QgTG9nZ2VyPiYmLCBSZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4mJik7Ci0gICAgc3Rh
dGljIFJlZjxNZWRpYVN0cmVhbVByaXZhdGU+IGNyZWF0ZShSZWY8Y29uc3QgTG9nZ2VyPiYmLCBj
b25zdCBWZWN0b3I8UmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+PiYgYXVkaW9Tb3VyY2VzLCBjb25z
dCBWZWN0b3I8UmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+PiYgdmlkZW9Tb3VyY2VzKTsKKyAgICBz
dGF0aWMgUmVmPE1lZGlhU3RyZWFtUHJpdmF0ZT4gY3JlYXRlKFJlZjxjb25zdCBMb2dnZXI+JiYs
IFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlPiYmIGF1ZGlvU291cmNlLCBSZWZQdHI8UmVhbHRp
bWVNZWRpYVNvdXJjZT4mJiB2aWRlb1NvdXJjZSk7CiAgICAgc3RhdGljIFJlZjxNZWRpYVN0cmVh
bVByaXZhdGU+IGNyZWF0ZShSZWY8Y29uc3QgTG9nZ2VyPiYmIGxvZ2dlciwgY29uc3QgTWVkaWFT
dHJlYW1UcmFja1ByaXZhdGVWZWN0b3ImIHRyYWNrcywgU3RyaW5nJiYgaWQgPSBjcmVhdGVDYW5v
bmljYWxVVUlEU3RyaW5nKCkpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTWVkaWFTdHJlYW1Qcml2
YXRlKFdURk1vdmUobG9nZ2VyKSwgdHJhY2tzLCBXVEZNb3ZlKGlkKSkpOyB9CiAKICAgICB2aXJ0
dWFsIH5NZWRpYVN0cmVhbVByaXZhdGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaAppbmRleCA5ZmFmMDkw
NWRkNGFhNThhNjJhMmJmZGU0MDE5NmQ1MTNlMTQ0OTA0Li4zOWI5OTc2MWZiNDFlZTE2ZDQ4ZDM4
NWNlMWUzYmQ0NDQ2MDE0YTJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oCkBAIC00Miw2ICs0Miw3IEBA
CiAjaW5jbHVkZSAiUGxhdGZvcm1MYXllci5oIgogI2luY2x1ZGUgIlJlYWx0aW1lTWVkaWFTb3Vy
Y2VDYXBhYmlsaXRpZXMuaCIKICNpbmNsdWRlICJSZWFsdGltZU1lZGlhU291cmNlRmFjdG9yeS5o
IgorI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgogI2luY2x1ZGUgPHd0Zi9Mb2dn
ZXJIZWxwZXIuaD4KICNpbmNsdWRlIDx3dGYvUmVjdXJzaXZlTG9ja0FkYXB0ZXIuaD4KICNpbmNs
dWRlIDx3dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaD4KQEAgLTEwNyw2ICsxMDgsOCBAQCBwdWJs
aWM6CiAgICAgZW51bSBjbGFzcyBUeXBlIHsgTm9uZSwgQXVkaW8sIFZpZGVvIH07CiAgICAgVHlw
ZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gbV90eXBlOyB9CiAKKyAgICB2aXJ0dWFsIHZvaWQgd2hl
blJlYWR5KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nKT4mJik7CisKICAgICBib29sIGlz
UHJvZHVjaW5nRGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1faXNQcm9kdWNpbmdEYXRhOyB9CiAgICAg
dm9pZCBzdGFydCgpOwogICAgIHZvaWQgc3RvcCgpOwpAQCAtMjgzLDYgKzI4NiwxMSBAQCBzdHJ1
Y3QgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgewogCiBTdHJpbmcgY29udmVydEVudW1lcmF0aW9uVG9T
dHJpbmcoUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZSk7CiAKK2lubGluZSB2b2lkIFJlYWx0aW1l
TWVkaWFTb3VyY2U6OndoZW5SZWFkeShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0cmluZyk+JiYg
Y2FsbGJhY2spCit7CisgICAgY2FsbGJhY2soeyB9KTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQogCiBuYW1lc3BhY2UgV1RGIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5jcHAK
aW5kZXggNzdkOTg3YWMzMWRjNDc3MTg5ODNlYThjNmE4Y2FlMWQyOTA1NDdjNS4uYTZmOWZjZTEy
NGU4OGYwNmJjNWU2ZTkzNTI3ZDJiMTMwMmI4NDNiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJj
ZUNlbnRlci5jcHAKQEAgLTcwLDQwICs3MCw0NiBAQCB2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2VD
ZW50ZXI6OmNyZWF0ZU1lZGlhU3RyZWFtKFJlZjxjb25zdCBMb2dnZXI+JiYgbG9nZ2VyLCBOZQog
ICAgIFZlY3RvcjxSZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4+IHZpZGVvU291cmNlczsKICAgICBT
dHJpbmcgaW52YWxpZENvbnN0cmFpbnQ7CiAKKyAgICBSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJj
ZT4gYXVkaW9Tb3VyY2U7CiAgICAgaWYgKGF1ZGlvRGV2aWNlKSB7Ci0gICAgICAgIGF1dG8gYXVk
aW9Tb3VyY2UgPSBhdWRpb0NhcHR1cmVGYWN0b3J5KCkuY3JlYXRlQXVkaW9DYXB0dXJlU291cmNl
KFdURk1vdmUoYXVkaW9EZXZpY2UpLCBTdHJpbmcgeyBoYXNoU2FsdCB9LCAmcmVxdWVzdC5hdWRp
b0NvbnN0cmFpbnRzKTsKLSAgICAgICAgaWYgKGF1ZGlvU291cmNlKQotICAgICAgICAgICAgYXVk
aW9Tb3VyY2VzLmFwcGVuZChhdWRpb1NvdXJjZS5zb3VyY2UoKSk7Ci0gICAgICAgIGVsc2Ugewot
I2lmICFMT0dfRElTQUJMRUQKLSAgICAgICAgICAgIGlmICghYXVkaW9Tb3VyY2UuZXJyb3JNZXNz
YWdlLmlzRW1wdHkoKSkKLSAgICAgICAgICAgICAgICBMT0coTWVkaWEsICJSZWFsdGltZU1lZGlh
U291cmNlQ2VudGVyOjpjcmVhdGVNZWRpYVN0cmVhbSglcCksIGF1ZGlvIGNvbnN0cmFpbnRzIGZh
aWxlZCB0byBhcHBseTogJXMiLCB0aGlzLCBhdWRpb1NvdXJjZS5lcnJvck1lc3NhZ2UudXRmOCgp
LmRhdGEoKSk7Ci0jZW5kaWYKLSAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKG1ha2VVbmV4
cGVjdGVkKG1ha2VTdHJpbmcoIkZhaWxlZCB0byBjcmVhdGUgTWVkaWFTdHJlYW0gYXVkaW8gc291
cmNlOiAiLCBhdWRpb1NvdXJjZS5lcnJvck1lc3NhZ2UpKSk7CisgICAgICAgIGF1dG8gc291cmNl
ID0gYXVkaW9DYXB0dXJlRmFjdG9yeSgpLmNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZShXVEZNb3Zl
KGF1ZGlvRGV2aWNlKSwgU3RyaW5nIHsgaGFzaFNhbHQgfSwgJnJlcXVlc3QuYXVkaW9Db25zdHJh
aW50cyk7CisgICAgICAgIGlmICghc291cmNlKSB7CisgICAgICAgICAgICBjb21wbGV0aW9uSGFu
ZGxlcihtYWtlVW5leHBlY3RlZChtYWtlU3RyaW5nKCJGYWlsZWQgdG8gY3JlYXRlIE1lZGlhU3Ry
ZWFtIGF1ZGlvIHNvdXJjZTogIiwgc291cmNlLmVycm9yTWVzc2FnZSkpKTsKICAgICAgICAgICAg
IHJldHVybjsKICAgICAgICAgfQorICAgICAgICBhdWRpb1NvdXJjZSA9IHNvdXJjZS5zb3VyY2Uo
KTsKICAgICB9CiAKKyAgICBSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZT4gdmlkZW9Tb3VyY2U7
CiAgICAgaWYgKHZpZGVvRGV2aWNlKSB7Ci0gICAgICAgIENhcHR1cmVTb3VyY2VPckVycm9yIHZp
ZGVvU291cmNlOworICAgICAgICBDYXB0dXJlU291cmNlT3JFcnJvciBzb3VyY2U7CiAgICAgICAg
IGlmICh2aWRlb0RldmljZS50eXBlKCkgPT0gQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6Q2Ft
ZXJhKQotICAgICAgICAgICAgdmlkZW9Tb3VyY2UgPSB2aWRlb0NhcHR1cmVGYWN0b3J5KCkuY3Jl
YXRlVmlkZW9DYXB0dXJlU291cmNlKFdURk1vdmUodmlkZW9EZXZpY2UpLCBXVEZNb3ZlKGhhc2hT
YWx0KSwgJnJlcXVlc3QudmlkZW9Db25zdHJhaW50cyk7CisgICAgICAgICAgICBzb3VyY2UgPSB2
aWRlb0NhcHR1cmVGYWN0b3J5KCkuY3JlYXRlVmlkZW9DYXB0dXJlU291cmNlKFdURk1vdmUodmlk
ZW9EZXZpY2UpLCBXVEZNb3ZlKGhhc2hTYWx0KSwgJnJlcXVlc3QudmlkZW9Db25zdHJhaW50cyk7
CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIHZpZGVvU291cmNlID0gZGlzcGxheUNhcHR1cmVG
YWN0b3J5KCkuY3JlYXRlRGlzcGxheUNhcHR1cmVTb3VyY2UoV1RGTW92ZSh2aWRlb0RldmljZSks
ICZyZXF1ZXN0LnZpZGVvQ29uc3RyYWludHMpOwotCi0gICAgICAgIGlmICh2aWRlb1NvdXJjZSkK
LSAgICAgICAgICAgIHZpZGVvU291cmNlcy5hcHBlbmQodmlkZW9Tb3VyY2Uuc291cmNlKCkpOwot
ICAgICAgICBlbHNlIHsKLSNpZiAhTE9HX0RJU0FCTEVECi0gICAgICAgICAgICBpZiAoIXZpZGVv
U291cmNlLmVycm9yTWVzc2FnZS5pc0VtcHR5KCkpCi0gICAgICAgICAgICAgICAgTE9HKE1lZGlh
LCAiUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6Y3JlYXRlTWVkaWFTdHJlYW0oJXApLCB2aWRl
byBjb25zdHJhaW50cyBmYWlsZWQgdG8gYXBwbHk6ICVzIiwgdGhpcywgdmlkZW9Tb3VyY2UuZXJy
b3JNZXNzYWdlLnV0ZjgoKS5kYXRhKCkpOwotI2VuZGlmCi0gICAgICAgICAgICBjb21wbGV0aW9u
SGFuZGxlcihtYWtlVW5leHBlY3RlZChtYWtlU3RyaW5nKCJGYWlsZWQgdG8gY3JlYXRlIE1lZGlh
U3RyZWFtIHZpZGVvIHNvdXJjZTogIiwgdmlkZW9Tb3VyY2UuZXJyb3JNZXNzYWdlKSkpOworICAg
ICAgICAgICAgc291cmNlID0gZGlzcGxheUNhcHR1cmVGYWN0b3J5KCkuY3JlYXRlRGlzcGxheUNh
cHR1cmVTb3VyY2UoV1RGTW92ZSh2aWRlb0RldmljZSksICZyZXF1ZXN0LnZpZGVvQ29uc3RyYWlu
dHMpOworCisgICAgICAgIGlmICghc291cmNlKSB7CisgICAgICAgICAgICBjb21wbGV0aW9uSGFu
ZGxlcihtYWtlVW5leHBlY3RlZChtYWtlU3RyaW5nKCJGYWlsZWQgdG8gY3JlYXRlIE1lZGlhU3Ry
ZWFtIHZpZGVvIHNvdXJjZTogIiwgc291cmNlLmVycm9yTWVzc2FnZSkpKTsKICAgICAgICAgICAg
IHJldHVybjsKICAgICAgICAgfQorICAgICAgICB2aWRlb1NvdXJjZSA9IHNvdXJjZS5zb3VyY2Uo
KTsKICAgICB9CiAKLSAgICBjb21wbGV0aW9uSGFuZGxlcihNZWRpYVN0cmVhbVByaXZhdGU6OmNy
ZWF0ZShXVEZNb3ZlKGxvZ2dlciksIGF1ZGlvU291cmNlcywgdmlkZW9Tb3VyY2VzKSk7CisgICAg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChTdHJpbmcmJik+IHdhaXRGb3JBdWRpb1NvdXJjZSA9IFth
dWRpb1NvdXJjZSwgdmlkZW9Tb3VyY2UgPSBXVEZNb3ZlKHZpZGVvU291cmNlKSwgbG9nZ2VyID0g
V1RGTW92ZShsb2dnZXIpLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhh
bmRsZXIpXShhdXRvJiYgZXJyb3JNZXNzYWdlKSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKCFlcnJv
ck1lc3NhZ2UuaXNFbXB0eSgpKQorICAgICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVy
KG1ha2VVbmV4cGVjdGVkKG1ha2VTdHJpbmcoIkZhaWxlZCB0byBjcmVhdGUgTWVkaWFTdHJlYW0g
YXVkaW8gc291cmNlOiAiLCBlcnJvck1lc3NhZ2UpKSk7CisgICAgICAgIGlmICghdmlkZW9Tb3Vy
Y2UpCisgICAgICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoTWVkaWFTdHJlYW1Qcml2
YXRlOjpjcmVhdGUoV1RGTW92ZShsb2dnZXIpLCBXVEZNb3ZlKGF1ZGlvU291cmNlKSwgV1RGTW92
ZSh2aWRlb1NvdXJjZSkpKTsKKworICAgICAgICB2aWRlb1NvdXJjZS0+d2hlblJlYWR5KFthdWRp
b1NvdXJjZSA9IFdURk1vdmUoYXVkaW9Tb3VyY2UpLCB2aWRlb1NvdXJjZSwgbG9nZ2VyID0gV1RG
TW92ZShsb2dnZXIpLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRs
ZXIpXShhdXRvJiYgZXJyb3JNZXNzYWdlKSBtdXRhYmxlIHsKKyAgICAgICAgICAgIGlmICghZXJy
b3JNZXNzYWdlLmlzRW1wdHkoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gY29tcGxldGlvbkhh
bmRsZXIobWFrZVVuZXhwZWN0ZWQobWFrZVN0cmluZygiRmFpbGVkIHRvIGNyZWF0ZSBNZWRpYVN0
cmVhbSB2aWRlbyBzb3VyY2U6ICIsIGVycm9yTWVzc2FnZSkpKTsKKyAgICAgICAgICAgIGNvbXBs
ZXRpb25IYW5kbGVyKE1lZGlhU3RyZWFtUHJpdmF0ZTo6Y3JlYXRlKFdURk1vdmUobG9nZ2VyKSwg
V1RGTW92ZShhdWRpb1NvdXJjZSksIFdURk1vdmUodmlkZW9Tb3VyY2UpKSk7CisgICAgICAgIH0p
OworICAgIH07CisgICAgaWYgKCFhdWRpb1NvdXJjZSkKKyAgICAgICAgcmV0dXJuIHdhaXRGb3JB
dWRpb1NvdXJjZSh7IH0pOworICAgIGF1ZGlvU291cmNlLT53aGVuUmVhZHkoV1RGTW92ZSh3YWl0
Rm9yQXVkaW9Tb3VyY2UpKTsKIH0KIAogVmVjdG9yPENhcHR1cmVEZXZpY2U+IFJlYWx0aW1lTWVk
aWFTb3VyY2VDZW50ZXI6OmdldE1lZGlhU3RyZWFtRGV2aWNlcygpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKaW5kZXgg
NmY3YjZmYjNkYjU0YzVhYjJkZDY0ZjMxNTc5NmVjNmJiYmFhMjAwNS4uMjFiNTQ0MDdmN2Q0MDQ0
NTJkNzBiNTBmNGVhM2Y3ZDZkODU5MDQ3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcApAQCAtNDMxLDEyICs0MzEs
NiBAQCBib29sIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRpc3BhdGNoU3luY01lc3NhZ2Uo
SVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLAogICAgICAgICByZW1vdGVNZWRpYVBsYXllck1h
bmFnZXJQcm94eSgpLmRpZFJlY2VpdmVTeW5jUGxheWVyTWVzc2FnZShjb25uZWN0aW9uLCBkZWNv
ZGVyLCByZXBseUVuY29kZXIpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9Ci0jaWYgRU5B
QkxFKE1FRElBX1NUUkVBTSkKLSAgICBpZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkg
PT0gTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6Om1lc3NhZ2VSZWNlaXZl
ck5hbWUoKSkgewotICAgICAgICB1c2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5KCkuZGlkUmVj
ZWl2ZVN5bmNNZXNzYWdlRnJvbUdQVVByb2Nlc3MoY29ubmVjdGlvbiwgZGVjb2RlciwgcmVwbHlF
bmNvZGVyKTsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotI2VuZGlmCiAjaWYgRU5BQkxF
KEVOQ1JZUFRFRF9NRURJQSkKICAgICBpZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkg
PT0gTWVzc2FnZXM6OlJlbW90ZUNETUZhY3RvcnlQcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgp
KSB7CiAgICAgICAgIGNkbUZhY3RvcnlQcm94eSgpLmRpZFJlY2VpdmVTeW5jTWVzc2FnZUZyb21X
ZWJQcm9jZXNzKGNvbm5lY3Rpb24sIGRlY29kZXIsIHJlcGx5RW5jb2Rlcik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0
L1BsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmgKaW5kZXggMDg0YmI5N2YxM2UzNzM4OTUwY2NjMjAw
NzBlNzVkYWE5YWVlMDI5NS4uNTdkMGExZDg5M2NjYTgyMTc5OTMyN2RmMDJmNTFkNWM5YTcwOWVh
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQ29ubmVjdGlvbi5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uaApAQCAtODUsNyArODUs
NyBAQCBlbnVtIGNsYXNzIFdhaXRGb3JPcHRpb24gewogd2hpbGUgKDApCiAKIHRlbXBsYXRlPHR5
cGVuYW1lIEFzeW5jUmVwbHlSZXN1bHQ+IHN0cnVjdCBBc3luY1JlcGx5RXJyb3IgewotICAgIHN0
YXRpYyBBc3luY1JlcGx5UmVzdWx0IGNyZWF0ZSgpIHsgcmV0dXJuIHsgfTsgfTsKKyAgICBzdGF0
aWMgQXN5bmNSZXBseVJlc3VsdCBjcmVhdGUoKSB7IHJldHVybiBBc3luY1JlcGx5UmVzdWx0IHsg
fTsgfTsKIH07CiAKIGNsYXNzIE1hY2hNZXNzYWdlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNw
cAppbmRleCBlNjFjNmIyYjUyNDYwNzlhNmIxNzgzMDhiMmUwNGYyMzVhYjgzNjVmLi5kMWU2Yjk5
ZWRmZTkwMWIxODkwMzc2ODNkMTRhMDQ0ZjQwNzBhNTJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclBy
b3h5LmNwcApAQCAtMTc3LDcgKzE3Nyw3IEBAIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6
On5Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5KCkKICAgICBtX2Nvbm5lY3Rpb25Qcm94eS0+
cmVtb3ZlTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclBy
b3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpOwogfQogCi12b2lkIFVzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyUHJveHk6OmNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJh
aW50cyhSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZCwgY29uc3QgQ2FwdHVyZURldmlj
ZSYgZGV2aWNlLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyYgY29u
c3RyYWludHMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCBzdWNjZWVkZWQsIFN0cmluZyBp
bnZhbGlkQ29uc3RyYWludHMsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYm
KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94
eTo6Y3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKFJlYWx0
aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkLCBjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2Us
IFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzJiBjb25zdHJhaW50cywg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sIHN1Y2NlZWRlZCwgU3RyaW5nIGludmFsaWRDb25z
dHJhaW50cywgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiYsIFdlYkNvcmU6
OlJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMmJik+JiYgY29tcGxldGlvbkhhbmRsZXIp
CiB7CiAgICAgQ2FwdHVyZVNvdXJjZU9yRXJyb3Igc291cmNlT3JFcnJvcjsKICAgICBzd2l0Y2gg
KGRldmljZS50eXBlKCkpIHsKQEAgLTIwMywxNyArMjAzLDE5IEBAIHZvaWQgVXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXJQcm94eTo6Y3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENv
bnN0cmFpCiAgICAgYm9vbCBzdWNjZWVkZWQgPSAhIXNvdXJjZU9yRXJyb3I7CiAgICAgU3RyaW5n
IGludmFsaWRDb25zdHJhaW50czsKICAgICBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0
dGluZ3Mgc2V0dGluZ3M7CisgICAgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxp
dGllcyBjYXBhYmlsaXRpZXM7CiAgICAgaWYgKHNvdXJjZU9yRXJyb3IpIHsKICAgICAgICAgYXV0
byBzb3VyY2UgPSBzb3VyY2VPckVycm9yLnNvdXJjZSgpOwogI2lmICFSRUxFQVNFX0xPR19ESVNB
QkxFRAogICAgICAgICBzb3VyY2UtPnNldExvZ2dlcihtX2Nvbm5lY3Rpb25Qcm94eS0+bG9nZ2Vy
KCksIExvZ2dlckhlbHBlcjo6dW5pcXVlTG9nSWRlbnRpZmllcigpKTsKICNlbmRpZgogICAgICAg
ICBzZXR0aW5ncyA9IHNvdXJjZS0+c2V0dGluZ3MoKTsKKyAgICAgICAgY2FwYWJpbGl0aWVzID0g
c291cmNlLT5jYXBhYmlsaXRpZXMoKTsKICAgICAgICAgQVNTRVJUKCFtX3Byb3hpZXMuY29udGFp
bnMoaWQpKTsKICAgICAgICAgbV9wcm94aWVzLmFkZChpZCwgbWFrZVVuaXF1ZTxTb3VyY2VQcm94
eT4oaWQsIG1fY29ubmVjdGlvblByb3h5LT5jb25uZWN0aW9uKCksIFdURk1vdmUoc291cmNlKSkp
OwogICAgIH0gZWxzZQogICAgICAgICBpbnZhbGlkQ29uc3RyYWludHMgPSBXVEZNb3ZlKHNvdXJj
ZU9yRXJyb3IuZXJyb3JNZXNzYWdlKTsKLSAgICBjb21wbGV0aW9uSGFuZGxlcihzdWNjZWVkZWQs
IGludmFsaWRDb25zdHJhaW50cywgV1RGTW92ZShzZXR0aW5ncykpOworICAgIGNvbXBsZXRpb25I
YW5kbGVyKHN1Y2NlZWRlZCwgaW52YWxpZENvbnN0cmFpbnRzLCBXVEZNb3ZlKHNldHRpbmdzKSwg
V1RGTW92ZShjYXBhYmlsaXRpZXMpKTsKIH0KIAogdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdl
clByb3h5OjpzdGFydFByb2R1Y2luZ0RhdGEoUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIg
aWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFD
YXB0dXJlTWFuYWdlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmgKaW5kZXggZDljY2M4ZjM2MDA1NzlhNDk1M2NmOWNl
M2QxYmZmMTQ4NzhhN2MyOC4uMmNkMTAyNzEwNTlmNjM2NjljMDljMmVjOWEyMWE3MGRhZGMyNDRh
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1Vz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaApAQCAtNjQsMTQgKzY0LDEyIEBAIHB1YmxpYzoK
ICAgICB2b2lkIHNldE9yaWVudGF0aW9uKHVpbnQ2NF90KTsKIAogICAgIHZvaWQgZGlkUmVjZWl2
ZU1lc3NhZ2VGcm9tR1BVUHJvY2VzcyhJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6
RGVjb2RlciYgZGVjb2RlcikgeyBkaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVy
KTsgfQotICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlRnJvbUdQVVByb2Nlc3MoSVBDOjpD
b25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY29kZXImIGRlY29kZXIsIHN0ZDo6dW5pcXVl
X3B0cjxJUEM6OkVuY29kZXI+JiBlbmNvZGVyKSB7IGRpZFJlY2VpdmVTeW5jTWVzc2FnZShjb25u
ZWN0aW9uLCBkZWNvZGVyLCBlbmNvZGVyKTsgfQogCiBwcml2YXRlOgogICAgIC8vIElQQzo6TWVz
c2FnZVJlY2VpdmVyCiAgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24m
LCBJUEM6OkRlY29kZXImKSBmaW5hbDsKLSAgICB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShJ
UEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNv
ZGVyPiYpIGZpbmFsOwogCi0gICAgdm9pZCBjcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZp
Y2VXaXRoQ29uc3RyYWludHMoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIs
IGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmIGRldmljZUlELCBTdHJpbmcmJiwgY29uc3Qg
V2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCBz
dWNjZWVkZWQsIFN0cmluZyBpbnZhbGlkQ29uc3RyYWludHMsIFdlYkNvcmU6OlJlYWx0aW1lTWVk
aWFTb3VyY2VTZXR0aW5ncyYmKT4mJik7CisgICAgdm9pZCBjcmVhdGVNZWRpYVNvdXJjZUZvckNh
cHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHMoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlk
ZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmIGRldmljZUlELCBTdHJpbmcm
JiwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyYsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoYm9vbCBzdWNjZWVkZWQsIFN0cmluZyBpbnZhbGlkQ29uc3RyYWludHMsIFdlYkNvcmU6OlJl
YWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYmLCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNl
Q2FwYWJpbGl0aWVzJiYpPiYmKTsKICAgICB2b2lkIHN0YXJ0UHJvZHVjaW5nRGF0YShXZWJDb3Jl
OjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllcik7CiAgICAgdm9pZCBzdG9wUHJvZHVjaW5n
RGF0YShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllcik7CiAgICAgdm9pZCBl
bmQoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94
eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KaW5kZXggYmNhNTk1ZWM1NDkyODE1MTFjMjk4
MmY4MTcyZmMyODQ2YjBiZTMwYS4uYzRkNWRiNjk1Njc5MDBjMjMzOWNjMGZlNzlhMDYwZjYxYjM3
MTUxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCkBAIC0y
NCwxMSArMjQsMTAgQEAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogCiBtZXNzYWdlcyAtPiBV
c2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5IE5vdFJlZkNvdW50ZWQgewotICAgIENyZWF0ZU1l
ZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50cyhXZWJDb3JlOjpSZWFsdGlt
ZU1lZGlhU291cmNlSWRlbnRpZmllciBpZCwgV2ViQ29yZTo6Q2FwdHVyZURldmljZSBkZXZpY2Us
IFN0cmluZyBoYXNoU2FsdCwgc3RydWN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMgY29uc3Ry
YWludHMpIC0+IChib29sIHN1Y2Nlc3MsIFN0cmluZyBpbnZhbGlkQ29uc3RyYWludHMsIFdlYkNv
cmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyBzZXR0aW5ncykgU3luY2hyb25vdXMKKyAg
ICBDcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHMoV2ViQ29y
ZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWQsIFdlYkNvcmU6OkNhcHR1cmVEZXZp
Y2UgZGV2aWNlLCBTdHJpbmcgaGFzaFNhbHQsIHN0cnVjdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFp
bnRzIGNvbnN0cmFpbnRzKSAtPiAoYm9vbCBzdWNjZXNzLCBTdHJpbmcgaW52YWxpZENvbnN0cmFp
bnRzLCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3Mgc2V0dGluZ3MsIFdlYkNv
cmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMgY2FwYWJpbGl0aWVzKSBBc3luYwog
ICAgIFN0YXJ0UHJvZHVjaW5nRGF0YShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRp
ZmllciBpZCkKICAgICBTdG9wUHJvZHVjaW5nRGF0YShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291
cmNlSWRlbnRpZmllciBpZCkKICAgICBFbmQoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlk
ZW50aWZpZXIgaWQpCi0gICAgQ2FwYWJpbGl0aWVzKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3Vy
Y2VJZGVudGlmaWVyIGlkKSAtPiAoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxp
dGllcyBjYXBhYmlsaXRpZXMpIFN5bmNocm9ub3VzCiAgICAgU2V0TXV0ZWQoV2ViQ29yZTo6UmVh
bHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWQsIGJvb2wgbXV0ZWQpCiAgICAgQXBwbHlDb25z
dHJhaW50cyhXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZCwgc3RydWN0
IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMgY29uc3RyYWludHMpCiAgICAgQ2xvbmUoV2ViQ29y
ZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgY2xvbmVkSUQsIFdlYkNvcmU6OlJlYWx0
aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGNsb25lSUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcAppbmRl
eCAyMjE1OTE4NDBhMjFmZWMzM2RkYjFlYjUyYjYyYWM5ZDVmZjY5MDhkLi44OTRlMmExZDMyYTQy
MzMxZThiMWNhZmVmZWI2MjQxODEzMTI1MWQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAKQEAgLTEw
MSw2ICsxMDEsMjggQEAgcHVibGljOgogICAgICAgICB9CiAgICAgfQogCisgICAgdm9pZCB3aGVu
UmVhZHkoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdHJpbmcpPiYmIGNhbGxiYWNrKSBmaW5hbAor
ICAgIHsKKyAgICAgICAgaWYgKG1faXNSZWFkeSkKKyAgICAgICAgICAgIHJldHVybiBjYWxsYmFj
ayhXVEZNb3ZlKG1fZXJyb3JNZXNzYWdlKSk7CisgICAgICAgIG1fY2FsbGJhY2sgPSBXVEZNb3Zl
KGNhbGxiYWNrKTsKKyAgICB9CisKKyAgICB2b2lkIGRpZEZhaWwoU3RyaW5nJiYgZXJyb3JNZXNz
YWdlKQorICAgIHsKKyAgICAgICAgbV9pc1JlYWR5ID0gdHJ1ZTsKKyAgICAgICAgbV9lcnJvck1l
c3NhZ2UgPSBXVEZNb3ZlKGVycm9yTWVzc2FnZSk7CisgICAgICAgIGlmIChtX2NhbGxiYWNrKQor
ICAgICAgICAgICAgbV9jYWxsYmFjayhTdHJpbmcoZXJyb3JNZXNzYWdlKSk7CisgICAgfQorCisg
ICAgdm9pZCBzZXRBc1JlYWR5KCkKKyAgICB7CisgICAgICAgIG1faXNSZWFkeSA9IHRydWU7Cisg
ICAgICAgIGlmIChtX2NhbGxiYWNrKQorICAgICAgICAgICAgbV9jYWxsYmFjayh7IH0pOworICAg
IH0KKwogICAgIFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlJiBzdG9yYWdlKCkKICAgICB7CiAgICAg
ICAgIEFTU0VSVCh0eXBlKCkgPT0gVHlwZTo6QXVkaW8pOwpAQCAtMTIzLDYgKzE0NSwxMCBAQCBw
dWJsaWM6CiAgICAgfQogCiAgICAgY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGll
cyYgY2FwYWJpbGl0aWVzKCkgZmluYWw7CisgICAgdm9pZCBzZXRDYXBhYmlsaXRpZXMoUmVhbHRp
bWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyYmIGNhcGFiaWxpdGllcykKKyAgICB7CisgICAgICAg
IG1fY2FwYWJpbGl0aWVzID0gV1RGTW92ZShjYXBhYmlsaXRpZXMpOworICAgIH0KIAogICAgIGNv
bnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYgc2V0dGluZ3MoKSBmaW5hbCB7IHJldHVy
biBtX3NldHRpbmdzOyB9CiAgICAgdm9pZCBzZXRTZXR0aW5ncyhSZWFsdGltZU1lZGlhU291cmNl
U2V0dGluZ3MmJiBzZXR0aW5ncykKQEAgLTIzMSw3ICsyNTcsNyBAQCBwcml2YXRlOgogCiAgICAg
UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgbV9pZDsKICAgICBVc2VyTWVkaWFDYXB0dXJl
TWFuYWdlciYgbV9tYW5hZ2VyOwotICAgIG11dGFibGUgT3B0aW9uYWw8UmVhbHRpbWVNZWRpYVNv
dXJjZUNhcGFiaWxpdGllcz4gbV9jYXBhYmlsaXRpZXM7CisgICAgUmVhbHRpbWVNZWRpYVNvdXJj
ZUNhcGFiaWxpdGllcyBtX2NhcGFiaWxpdGllczsKICAgICBSZWFsdGltZU1lZGlhU291cmNlU2V0
dGluZ3MgbV9zZXR0aW5nczsKIAogICAgIENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiBtX2Rlc2Ny
aXB0aW9uOwpAQCAtMjQyLDYgKzI2OCw5IEBAIHByaXZhdGU6CiAKICAgICBEZXF1ZTxBcHBseUNv
bnN0cmFpbnRzSGFuZGxlcj4gbV9wZW5kaW5nQXBwbHlDb25zdHJhaW50c0NhbGxiYWNrczsKICAg
ICBib29sIG1fc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcyB7IGZhbHNlIH07CisgICAgYm9vbCBt
X2lzUmVhZHkgeyBmYWxzZSB9OworICAgIFN0cmluZyBtX2Vycm9yTWVzc2FnZTsKKyAgICBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKFN0cmluZyk+IG1fY2FsbGJhY2s7CiB9OwogCiBVc2VyTWVkaWFD
YXB0dXJlTWFuYWdlcjo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIoV2ViUHJvY2VzcyYgcHJvY2Vz
cykKQEAgLTI5MiwyNyArMzIxLDMxIEBAIFdlYkNvcmU6OkNhcHR1cmVTb3VyY2VPckVycm9yIFVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpjcmVhdGVDYXB0dXJlU291cmNlKGNvbnN0CiAgICAgICAg
IHJldHVybiB7IH07CiAKICAgICBhdXRvIGlkID0gUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZp
ZXI6OmdlbmVyYXRlKCk7Ci0gICAgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzIHNldHRpbmdz
OwotICAgIFN0cmluZyBlcnJvck1lc3NhZ2U7Ci0gICAgYm9vbCBzdWNjZWVkZWQ7CisKICNpZiBF
TkFCTEUoR1BVX1BST0NFU1MpCiAgICAgYXV0byogY29ubmVjdGlvbiA9IHNob3VsZENhcHR1cmVJ
bkdQVVByb2Nlc3MgPyAmbV9wcm9jZXNzLmVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9uKCkuY29u
bmVjdGlvbigpIDogbV9wcm9jZXNzLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCk7CiAjZWxzZQog
ICAgIEFTU0VSVCghc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2Vzcyk7CiAgICAgYXV0byogY29ubmVj
dGlvbiA9IG1fcHJvY2Vzcy5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpOwogI2VuZGlmCi0gICAg
aWYgKCFjb25uZWN0aW9uLT5zZW5kU3luYyhNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXJQcm94eTo6Q3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRz
KGlkLCBkZXZpY2UsIGhhc2hTYWx0LCAqY29uc3RyYWludHMpLCBNZXNzYWdlczo6VXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXJQcm94eTo6Q3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0
aENvbnN0cmFpbnRzOjpSZXBseShzdWNjZWVkZWQsIGVycm9yTWVzc2FnZSwgc2V0dGluZ3MpLCAw
KSkKLSAgICAgICAgcmV0dXJuIFdURk1vdmUoZXJyb3JNZXNzYWdlKTsKLQotICAgIGlmICghc3Vj
Y2VlZGVkKQotICAgICAgICByZXR1cm4gV1RGTW92ZShlcnJvck1lc3NhZ2UpOwotCisgICAgCiAg
ICAgYXV0byB0eXBlID0gZGV2aWNlLnR5cGUoKSA9PSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBl
OjpNaWNyb3Bob25lID8gV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW8g
OiBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpWaWRlbzsKLSAgICBhdXRvIHNv
dXJjZSA9IGFkb3B0UmVmKCpuZXcgU291cmNlKFN0cmluZzo6bnVtYmVyKGlkLnRvVUludDY0KCkp
LCB0eXBlLCBkZXZpY2UudHlwZSgpLCBTdHJpbmcgeyBzZXR0aW5ncy5sYWJlbCgpLnN0cmluZygp
IH0sIFdURk1vdmUoaGFzaFNhbHQpLCBpZCwgKnRoaXMpKTsKKyAgICBhdXRvIHNvdXJjZSA9IGFk
b3B0UmVmKCpuZXcgU291cmNlKFN0cmluZzo6bnVtYmVyKGlkLnRvVUludDY0KCkpLCB0eXBlLCBk
ZXZpY2UudHlwZSgpLCBTdHJpbmcgeyB9LCBTdHJpbmcgeyBoYXNoU2FsdCB9LCBpZCwgKnRoaXMp
KTsKICAgICBpZiAoc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcykKICAgICAgICAgc291cmNlLT5z
ZXRTaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpOwot
ICAgIHNvdXJjZS0+c2V0U2V0dGluZ3MoV1RGTW92ZShzZXR0aW5ncykpOwogICAgIG1fc291cmNl
cy5hZGQoaWQsIHNvdXJjZS5jb3B5UmVmKCkpOworCisgICAgY29ubmVjdGlvbi0+c2VuZFdpdGhB
c3luY1JlcGx5KE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpDcmVhdGVN
ZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHMoaWQsIGRldmljZSwgaGFz
aFNhbHQsICpjb25zdHJhaW50cyksIFtzb3VyY2UgPSBzb3VyY2UuY29weVJlZigpXShib29sIHN1
Y2NlZWRlZCwgYXV0byYmIGVycm9yTWVzc2FnZSwgYXV0byYmIHNldHRpbmdzLCBhdXRvJiYgY2Fw
YWJpbGl0aWVzKSB7CisgICAgICAgIGlmICghc3VjY2VlZGVkKSB7CisgICAgICAgICAgICBzb3Vy
Y2UtPmRpZEZhaWwoV1RGTW92ZShlcnJvck1lc3NhZ2UpKTsKKyAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgfQorICAgICAgICBzb3VyY2UtPnNldE5hbWUoU3RyaW5nIHsgc2V0dGluZ3MubGFi
ZWwoKS5zdHJpbmcoKSB9KTsKKyAgICAgICAgc291cmNlLT5zZXRTZXR0aW5ncyhXVEZNb3ZlKHNl
dHRpbmdzKSk7CisgICAgICAgIHNvdXJjZS0+c2V0Q2FwYWJpbGl0aWVzKFdURk1vdmUoY2FwYWJp
bGl0aWVzKSk7CisgICAgICAgIHNvdXJjZS0+c2V0QXNSZWFkeSgpOworICAgIH0pOworCiAgICAg
cmV0dXJuIFdlYkNvcmU6OkNhcHR1cmVTb3VyY2VPckVycm9yKFdURk1vdmUoc291cmNlKSk7CiB9
CiAKQEAgLTM5OCwxMyArNDMxLDcgQEAgdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6U291
cmNlOjpzdG9wUHJvZHVjaW5nRGF0YSgpCiAKIGNvbnN0IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFT
b3VyY2VDYXBhYmlsaXRpZXMmIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpTb3VyY2U6OmNhcGFi
aWxpdGllcygpCiB7Ci0gICAgaWYgKCFtX2NhcGFiaWxpdGllcykgewotICAgICAgICBSZWFsdGlt
ZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzIGNhcGFiaWxpdGllczsKLSAgICAgICAgY29ubmVjdGlv
bigpLT5zZW5kU3luYyhNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Q2Fw
YWJpbGl0aWVzIHsgbV9pZCB9LCBNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94
eTo6Q2FwYWJpbGl0aWVzOjpSZXBseShjYXBhYmlsaXRpZXMpLCAwKTsKLSAgICAgICAgbV9jYXBh
YmlsaXRpZXMgPSBXVEZNb3ZlKGNhcGFiaWxpdGllcyk7Ci0gICAgfQotCi0gICAgcmV0dXJuIG1f
Y2FwYWJpbGl0aWVzLnZhbHVlKCk7CisgICAgcmV0dXJuIG1fY2FwYWJpbGl0aWVzOwogfQogCiB2
b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpTb3VyY2U6OmFwcGx5Q29uc3RyYWludHMoY29u
c3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyYgY29uc3RyYWludHMsIEFwcGx5Q29uc3RyYWlu
dHNIYW5kbGVyJiYgY29tcGxldGlvbkhhbmRsZXIpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>393042</attachid>
            <date>2020-03-09 09:07:22 -0700</date>
            <delta_ts>2020-03-09 09:12:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208816-20200309170719.patch</filename>
            <type>text/plain</type>
            <size>23931</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU4MTMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2EyYzZiNzJmYjY5NThm
ZTk5MThhYjdhNjQ0NWI0ODE1MGYzNmYxOC4uMmEwYjhmYWQ1YzA2YmE0NTAwMGJmNGVkZWVlMGNk
NDRhMTc1ZmY5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDIwLTAzLTA5ICB5b3Vl
bm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgc3luYyBJUEMg
d2hlbiBjcmVhdGluZyBhIHJlbW90ZSBjYXB0dXJlIHNvdXJjZQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA4ODE2CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgd2hlbkluaXRpYWxpemVkIG1ldGhv
ZCB0byBhbGxvdyBmb3IgYXN5bmMgY3JlYXRpb24gb2YgcmVhbHRpbWUgbWVkaWEgc291cmNlLgor
ICAgICAgICBVc2UgdGhpcyBtZXRob2Qgd2hlbiBjcmVhdGluZyBhIE1lZGlhU3RyZWFtIGZvciBn
ZXRVc2VyTWVkaWEvZ2V0RGlzcGxheU1lZGlhLgorICAgICAgICBDb3ZlcmVkIGJ5IGV4aXN0aW5n
IHRlc3RzLgorCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Qcml2
YXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtUHJpdmF0ZTo6Y3JlYXRlKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUuaDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmg6CisgICAg
ICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpjcmVhdGVNZWRp
YVN0cmVhbSk6CisKIDIwMjAtMDMtMDcgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgog
CiAgICAgICAgIEJlZ2luIG1vdmluZyBvZmYgb2YgbGl2ZSByYW5nZXMgZm9yIFdlYktpdCBpbnRl
cm5hbHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKaW5kZXggZjZjNGQzNmMzYzVlYTA1ODU5OGJiZmU3Y2MyMTQ4MDg2NWUyNjQ0
Mi4uNGJkYWUwMGM4ODFlNzNhZWZiODdmNzRjNWI4OGJmZjNjN2JjYjRmNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwyNiBAQAorMjAyMC0wMy0wOSAgeW91ZW5uIGZhYmxldCAgPHlvdWVubkBhcHBsZS5j
b20+CisKKyAgICAgICAgUmVtb3ZlIHN5bmMgSVBDIHdoZW4gY3JlYXRpbmcgYSByZW1vdGUgY2Fw
dHVyZSBzb3VyY2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIwODgxNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFVzZSB3aGVuSW5pdGlhbGl6ZWQgdG8gd2FpdCBmb3IgdGhlIGFzeW5jIElQQyB0aGF0IHRl
bGxzIHdoZXRoZXIgdGhlIHJlbW90ZSBzb3VyY2Ugd2FzIGNyZWF0ZWQgc3VjY2Vzc2Z1bGx5Lgor
ICAgICAgICBVc2UgdGhlIGFzeW5jIHJlc3BvbnNlIHRvIGdhdGhlciB0aGUgY2FwYWJpbGl0aWVz
IHNvIGFzIHRvIHJlbW92ZSB0aGUgY29ycmVzcG9uZGluZyBzeW5jIElQQy4KKworICAgICAgICAq
IFBsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmg6CisgICAgICAgIChJUEM6OkFzeW5jUmVwbHlFcnJv
cjo6Y3JlYXRlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXJQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
UHJveHk6OmNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50cyk6
CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHku
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94
eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6
OlNvdXJjZTo6ZGlkRmFpbCk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyOjpTb3VyY2U6OnNldEFzUmVhZHkpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0
dXJlTWFuYWdlcjo6U291cmNlOjpzZXRDYXBhYmlsaXRpZXMpOgorICAgICAgICAoV2ViS2l0OjpV
c2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6Y3JlYXRlQ2FwdHVyZVNvdXJjZSk6CisgICAgICAgIChX
ZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpTb3VyY2U6OmNhcGFiaWxpdGllcyk6CisK
IDIwMjAtMDMtMDcgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAgIEJl
Z2luIG1vdmluZyBvZmYgb2YgbGl2ZSByYW5nZXMgZm9yIFdlYktpdCBpbnRlcm5hbHMKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtUHJp
dmF0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVh
bVByaXZhdGUuY3BwCmluZGV4IGZjMTk5ZDFhMGVlM2FjM2FiNWI1ZGRjMGMxOGI3ZTVhY2YxNjJi
NjYuLmFkY2YxMmIwMWVlN2FlODZjYTNkZjQ1YjI3ODE3NmNhYWQwNGYzNjQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtUHJpdmF0ZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Q
cml2YXRlLmNwcApAQCAtNTEsMTYgKzUxLDE1IEBAIFJlZjxNZWRpYVN0cmVhbVByaXZhdGU+IE1l
ZGlhU3RyZWFtUHJpdmF0ZTo6Y3JlYXRlKFJlZjxjb25zdCBMb2dnZXI+JiYgbG9nZ2VyLCBSCiAg
ICAgcmV0dXJuIE1lZGlhU3RyZWFtUHJpdmF0ZTo6Y3JlYXRlKFdURk1vdmUobG9nZ2VyKSwgTWVk
aWFTdHJlYW1UcmFja1ByaXZhdGVWZWN0b3I6OmZyb20oTWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6
OmNyZWF0ZShXVEZNb3ZlKGxvZ2dlckNvcHkpLCBXVEZNb3ZlKHNvdXJjZSkpKSk7CiB9CiAKLVJl
ZjxNZWRpYVN0cmVhbVByaXZhdGU+IE1lZGlhU3RyZWFtUHJpdmF0ZTo6Y3JlYXRlKFJlZjxjb25z
dCBMb2dnZXI+JiYgbG9nZ2VyLCBjb25zdCBWZWN0b3I8UmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+
PiYgYXVkaW9Tb3VyY2VzLCBjb25zdCBWZWN0b3I8UmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+PiYg
dmlkZW9Tb3VyY2VzKQorUmVmPE1lZGlhU3RyZWFtUHJpdmF0ZT4gTWVkaWFTdHJlYW1Qcml2YXRl
OjpjcmVhdGUoUmVmPGNvbnN0IExvZ2dlcj4mJiBsb2dnZXIsIFJlZlB0cjxSZWFsdGltZU1lZGlh
U291cmNlPiYmIGF1ZGlvU291cmNlLCBSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZT4mJiB2aWRl
b1NvdXJjZSkKIHsKICAgICBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZVZlY3RvciB0cmFja3M7Ci0g
ICAgdHJhY2tzLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkoYXVkaW9Tb3VyY2VzLnNpemUoKSArIHZp
ZGVvU291cmNlcy5zaXplKCkpOworICAgIHRyYWNrcy5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KDIp
OwogCi0gICAgZm9yIChhdXRvJiBzb3VyY2UgOiBhdWRpb1NvdXJjZXMpCi0gICAgICAgIHRyYWNr
cy51bmNoZWNrZWRBcHBlbmQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6OmNyZWF0ZShsb2dnZXIu
Y29weVJlZigpLCBzb3VyY2UuY29weVJlZigpKSk7Ci0KLSAgICBmb3IgKGF1dG8mIHNvdXJjZSA6
IHZpZGVvU291cmNlcykKLSAgICAgICAgdHJhY2tzLnVuY2hlY2tlZEFwcGVuZChNZWRpYVN0cmVh
bVRyYWNrUHJpdmF0ZTo6Y3JlYXRlKGxvZ2dlci5jb3B5UmVmKCksIHNvdXJjZS5jb3B5UmVmKCkp
KTsKKyAgICBpZiAoYXVkaW9Tb3VyY2UpCisgICAgICAgIHRyYWNrcy51bmNoZWNrZWRBcHBlbmQo
TWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6OmNyZWF0ZShsb2dnZXIuY29weVJlZigpLCBhdWRpb1Nv
dXJjZS5yZWxlYXNlTm9uTnVsbCgpKSk7CisgICAgaWYgKHZpZGVvU291cmNlKQorICAgICAgICB0
cmFja3MudW5jaGVja2VkQXBwZW5kKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlOjpjcmVhdGUobG9n
Z2VyLmNvcHlSZWYoKSwgdmlkZW9Tb3VyY2UucmVsZWFzZU5vbk51bGwoKSkpOwogCiAgICAgcmV0
dXJuIE1lZGlhU3RyZWFtUHJpdmF0ZTo6Y3JlYXRlKFdURk1vdmUobG9nZ2VyKSwgdHJhY2tzKTsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlh
U3RyZWFtUHJpdmF0ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVk
aWFTdHJlYW1Qcml2YXRlLmgKaW5kZXggNDcwNDYzY2YyY2VlNWIwOWZlNzMwYjk5NzM3NzA5MTA0
MGQzNDZmYi4uY2U2YjcxMDg2NTExZWYyOTNiODk4NjUwOTY0NjI4ZmQ3NjhkMjNhZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Qcml2
YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJl
YW1Qcml2YXRlLmgKQEAgLTY5LDcgKzY5LDcgQEAgcHVibGljOgogICAgIH07CiAKICAgICBzdGF0
aWMgUmVmPE1lZGlhU3RyZWFtUHJpdmF0ZT4gY3JlYXRlKFJlZjxjb25zdCBMb2dnZXI+JiYsIFJl
ZjxSZWFsdGltZU1lZGlhU291cmNlPiYmKTsKLSAgICBzdGF0aWMgUmVmPE1lZGlhU3RyZWFtUHJp
dmF0ZT4gY3JlYXRlKFJlZjxjb25zdCBMb2dnZXI+JiYsIGNvbnN0IFZlY3RvcjxSZWY8UmVhbHRp
bWVNZWRpYVNvdXJjZT4+JiBhdWRpb1NvdXJjZXMsIGNvbnN0IFZlY3RvcjxSZWY8UmVhbHRpbWVN
ZWRpYVNvdXJjZT4+JiB2aWRlb1NvdXJjZXMpOworICAgIHN0YXRpYyBSZWY8TWVkaWFTdHJlYW1Q
cml2YXRlPiBjcmVhdGUoUmVmPGNvbnN0IExvZ2dlcj4mJiwgUmVmUHRyPFJlYWx0aW1lTWVkaWFT
b3VyY2U+JiYgYXVkaW9Tb3VyY2UsIFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlPiYmIHZpZGVv
U291cmNlKTsKICAgICBzdGF0aWMgUmVmPE1lZGlhU3RyZWFtUHJpdmF0ZT4gY3JlYXRlKFJlZjxj
b25zdCBMb2dnZXI+JiYgbG9nZ2VyLCBjb25zdCBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZVZlY3Rv
ciYgdHJhY2tzLCBTdHJpbmcmJiBpZCA9IGNyZWF0ZUNhbm9uaWNhbFVVSURTdHJpbmcoKSkgeyBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBNZWRpYVN0cmVhbVByaXZhdGUoV1RGTW92ZShsb2dnZXIpLCB0
cmFja3MsIFdURk1vdmUoaWQpKSk7IH0KIAogICAgIHZpcnR1YWwgfk1lZGlhU3RyZWFtUHJpdmF0
ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVh
bHRpbWVNZWRpYVNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
UmVhbHRpbWVNZWRpYVNvdXJjZS5oCmluZGV4IDlmYWYwOTA1ZGQ0YWE1OGE2MmEyYmZkZTQwMTk2
ZDUxM2UxNDQ5MDQuLjM5Yjk5NzYxZmI0MWVlMTZkNDhkMzg1Y2UxZTNiZDQ0NDYwMTRhMmQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVk
aWFTb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFs
dGltZU1lZGlhU291cmNlLmgKQEAgLTQyLDYgKzQyLDcgQEAKICNpbmNsdWRlICJQbGF0Zm9ybUxh
eWVyLmgiCiAjaW5jbHVkZSAiUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcy5oIgogI2lu
Y2x1ZGUgIlJlYWx0aW1lTWVkaWFTb3VyY2VGYWN0b3J5LmgiCisjaW5jbHVkZSA8d3RmL0NvbXBs
ZXRpb25IYW5kbGVyLmg+CiAjaW5jbHVkZSA8d3RmL0xvZ2dlckhlbHBlci5oPgogI2luY2x1ZGUg
PHd0Zi9SZWN1cnNpdmVMb2NrQWRhcHRlci5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZlUmVm
Q291bnRlZC5oPgpAQCAtMTA3LDYgKzEwOCw4IEBAIHB1YmxpYzoKICAgICBlbnVtIGNsYXNzIFR5
cGUgeyBOb25lLCBBdWRpbywgVmlkZW8gfTsKICAgICBUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVy
biBtX3R5cGU7IH0KIAorICAgIHZpcnR1YWwgdm9pZCB3aGVuUmVhZHkoQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChTdHJpbmcpPiYmKTsKKwogICAgIGJvb2wgaXNQcm9kdWNpbmdEYXRhKCkgY29uc3Qg
eyByZXR1cm4gbV9pc1Byb2R1Y2luZ0RhdGE7IH0KICAgICB2b2lkIHN0YXJ0KCk7CiAgICAgdm9p
ZCBzdG9wKCk7CkBAIC0yODMsNiArMjg2LDExIEBAIHN0cnVjdCBDYXB0dXJlU291cmNlT3JFcnJv
ciB7CiAKIFN0cmluZyBjb252ZXJ0RW51bWVyYXRpb25Ub1N0cmluZyhSZWFsdGltZU1lZGlhU291
cmNlOjpUeXBlKTsKIAoraW5saW5lIHZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZTo6d2hlblJlYWR5
KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nKT4mJiBjYWxsYmFjaykKK3sKKyAgICBjYWxs
YmFjayh7IH0pOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKIG5hbWVzcGFjZSBXVEYg
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRp
bWVNZWRpYVNvdXJjZUNlbnRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcAppbmRleCA3N2Q5ODdhYzMxZGM0Nzcx
ODk4M2VhOGM2YThjYWUxZDI5MDU0N2M1Li5hNmY5ZmNlMTI0ZTg4ZjA2YmM1ZTZlOTM1MjdkMmIx
MzAyYjg0M2JhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcApAQCAtNzAsNDAg
KzcwLDQ2IEBAIHZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6Y3JlYXRlTWVkaWFTdHJl
YW0oUmVmPGNvbnN0IExvZ2dlcj4mJiBsb2dnZXIsIE5lCiAgICAgVmVjdG9yPFJlZjxSZWFsdGlt
ZU1lZGlhU291cmNlPj4gdmlkZW9Tb3VyY2VzOwogICAgIFN0cmluZyBpbnZhbGlkQ29uc3RyYWlu
dDsKIAorICAgIFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlPiBhdWRpb1NvdXJjZTsKICAgICBp
ZiAoYXVkaW9EZXZpY2UpIHsKLSAgICAgICAgYXV0byBhdWRpb1NvdXJjZSA9IGF1ZGlvQ2FwdHVy
ZUZhY3RvcnkoKS5jcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoV1RGTW92ZShhdWRpb0RldmljZSks
IFN0cmluZyB7IGhhc2hTYWx0IH0sICZyZXF1ZXN0LmF1ZGlvQ29uc3RyYWludHMpOwotICAgICAg
ICBpZiAoYXVkaW9Tb3VyY2UpCi0gICAgICAgICAgICBhdWRpb1NvdXJjZXMuYXBwZW5kKGF1ZGlv
U291cmNlLnNvdXJjZSgpKTsKLSAgICAgICAgZWxzZSB7Ci0jaWYgIUxPR19ESVNBQkxFRAotICAg
ICAgICAgICAgaWYgKCFhdWRpb1NvdXJjZS5lcnJvck1lc3NhZ2UuaXNFbXB0eSgpKQotICAgICAg
ICAgICAgICAgIExPRyhNZWRpYSwgIlJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OmNyZWF0ZU1l
ZGlhU3RyZWFtKCVwKSwgYXVkaW8gY29uc3RyYWludHMgZmFpbGVkIHRvIGFwcGx5OiAlcyIsIHRo
aXMsIGF1ZGlvU291cmNlLmVycm9yTWVzc2FnZS51dGY4KCkuZGF0YSgpKTsKLSNlbmRpZgotICAg
ICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIobWFrZVVuZXhwZWN0ZWQobWFrZVN0cmluZygiRmFp
bGVkIHRvIGNyZWF0ZSBNZWRpYVN0cmVhbSBhdWRpbyBzb3VyY2U6ICIsIGF1ZGlvU291cmNlLmVy
cm9yTWVzc2FnZSkpKTsKKyAgICAgICAgYXV0byBzb3VyY2UgPSBhdWRpb0NhcHR1cmVGYWN0b3J5
KCkuY3JlYXRlQXVkaW9DYXB0dXJlU291cmNlKFdURk1vdmUoYXVkaW9EZXZpY2UpLCBTdHJpbmcg
eyBoYXNoU2FsdCB9LCAmcmVxdWVzdC5hdWRpb0NvbnN0cmFpbnRzKTsKKyAgICAgICAgaWYgKCFz
b3VyY2UpIHsKKyAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKG1ha2VVbmV4cGVjdGVkKG1h
a2VTdHJpbmcoIkZhaWxlZCB0byBjcmVhdGUgTWVkaWFTdHJlYW0gYXVkaW8gc291cmNlOiAiLCBz
b3VyY2UuZXJyb3JNZXNzYWdlKSkpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9Cisg
ICAgICAgIGF1ZGlvU291cmNlID0gc291cmNlLnNvdXJjZSgpOwogICAgIH0KIAorICAgIFJlZlB0
cjxSZWFsdGltZU1lZGlhU291cmNlPiB2aWRlb1NvdXJjZTsKICAgICBpZiAodmlkZW9EZXZpY2Up
IHsKLSAgICAgICAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgdmlkZW9Tb3VyY2U7CisgICAgICAgIENh
cHR1cmVTb3VyY2VPckVycm9yIHNvdXJjZTsKICAgICAgICAgaWYgKHZpZGVvRGV2aWNlLnR5cGUo
KSA9PSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpDYW1lcmEpCi0gICAgICAgICAgICB2aWRl
b1NvdXJjZSA9IHZpZGVvQ2FwdHVyZUZhY3RvcnkoKS5jcmVhdGVWaWRlb0NhcHR1cmVTb3VyY2Uo
V1RGTW92ZSh2aWRlb0RldmljZSksIFdURk1vdmUoaGFzaFNhbHQpLCAmcmVxdWVzdC52aWRlb0Nv
bnN0cmFpbnRzKTsKKyAgICAgICAgICAgIHNvdXJjZSA9IHZpZGVvQ2FwdHVyZUZhY3RvcnkoKS5j
cmVhdGVWaWRlb0NhcHR1cmVTb3VyY2UoV1RGTW92ZSh2aWRlb0RldmljZSksIFdURk1vdmUoaGFz
aFNhbHQpLCAmcmVxdWVzdC52aWRlb0NvbnN0cmFpbnRzKTsKICAgICAgICAgZWxzZQotICAgICAg
ICAgICAgdmlkZW9Tb3VyY2UgPSBkaXNwbGF5Q2FwdHVyZUZhY3RvcnkoKS5jcmVhdGVEaXNwbGF5
Q2FwdHVyZVNvdXJjZShXVEZNb3ZlKHZpZGVvRGV2aWNlKSwgJnJlcXVlc3QudmlkZW9Db25zdHJh
aW50cyk7Ci0KLSAgICAgICAgaWYgKHZpZGVvU291cmNlKQotICAgICAgICAgICAgdmlkZW9Tb3Vy
Y2VzLmFwcGVuZCh2aWRlb1NvdXJjZS5zb3VyY2UoKSk7Ci0gICAgICAgIGVsc2UgewotI2lmICFM
T0dfRElTQUJMRUQKLSAgICAgICAgICAgIGlmICghdmlkZW9Tb3VyY2UuZXJyb3JNZXNzYWdlLmlz
RW1wdHkoKSkKLSAgICAgICAgICAgICAgICBMT0coTWVkaWEsICJSZWFsdGltZU1lZGlhU291cmNl
Q2VudGVyOjpjcmVhdGVNZWRpYVN0cmVhbSglcCksIHZpZGVvIGNvbnN0cmFpbnRzIGZhaWxlZCB0
byBhcHBseTogJXMiLCB0aGlzLCB2aWRlb1NvdXJjZS5lcnJvck1lc3NhZ2UudXRmOCgpLmRhdGEo
KSk7Ci0jZW5kaWYKLSAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKG1ha2VVbmV4cGVjdGVk
KG1ha2VTdHJpbmcoIkZhaWxlZCB0byBjcmVhdGUgTWVkaWFTdHJlYW0gdmlkZW8gc291cmNlOiAi
LCB2aWRlb1NvdXJjZS5lcnJvck1lc3NhZ2UpKSk7CisgICAgICAgICAgICBzb3VyY2UgPSBkaXNw
bGF5Q2FwdHVyZUZhY3RvcnkoKS5jcmVhdGVEaXNwbGF5Q2FwdHVyZVNvdXJjZShXVEZNb3ZlKHZp
ZGVvRGV2aWNlKSwgJnJlcXVlc3QudmlkZW9Db25zdHJhaW50cyk7CisKKyAgICAgICAgaWYgKCFz
b3VyY2UpIHsKKyAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKG1ha2VVbmV4cGVjdGVkKG1h
a2VTdHJpbmcoIkZhaWxlZCB0byBjcmVhdGUgTWVkaWFTdHJlYW0gdmlkZW8gc291cmNlOiAiLCBz
b3VyY2UuZXJyb3JNZXNzYWdlKSkpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9Cisg
ICAgICAgIHZpZGVvU291cmNlID0gc291cmNlLnNvdXJjZSgpOwogICAgIH0KIAotICAgIGNvbXBs
ZXRpb25IYW5kbGVyKE1lZGlhU3RyZWFtUHJpdmF0ZTo6Y3JlYXRlKFdURk1vdmUobG9nZ2VyKSwg
YXVkaW9Tb3VyY2VzLCB2aWRlb1NvdXJjZXMpKTsKKyAgICBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KFN0cmluZyYmKT4gd2FpdEZvckF1ZGlvU291cmNlID0gW2F1ZGlvU291cmNlLCB2aWRlb1NvdXJj
ZSA9IFdURk1vdmUodmlkZW9Tb3VyY2UpLCBsb2dnZXIgPSBXVEZNb3ZlKGxvZ2dlciksIGNvbXBs
ZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKGF1dG8mJiBlcnJvck1l
c3NhZ2UpIG11dGFibGUgeworICAgICAgICBpZiAoIWVycm9yTWVzc2FnZS5pc0VtcHR5KCkpCisg
ICAgICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIobWFrZVVuZXhwZWN0ZWQobWFrZVN0
cmluZygiRmFpbGVkIHRvIGNyZWF0ZSBNZWRpYVN0cmVhbSBhdWRpbyBzb3VyY2U6ICIsIGVycm9y
TWVzc2FnZSkpKTsKKyAgICAgICAgaWYgKCF2aWRlb1NvdXJjZSkKKyAgICAgICAgICAgIHJldHVy
biBjb21wbGV0aW9uSGFuZGxlcihNZWRpYVN0cmVhbVByaXZhdGU6OmNyZWF0ZShXVEZNb3ZlKGxv
Z2dlciksIFdURk1vdmUoYXVkaW9Tb3VyY2UpLCBXVEZNb3ZlKHZpZGVvU291cmNlKSkpOworCisg
ICAgICAgIHZpZGVvU291cmNlLT53aGVuUmVhZHkoW2F1ZGlvU291cmNlID0gV1RGTW92ZShhdWRp
b1NvdXJjZSksIHZpZGVvU291cmNlLCBsb2dnZXIgPSBXVEZNb3ZlKGxvZ2dlciksIGNvbXBsZXRp
b25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKGF1dG8mJiBlcnJvck1lc3Nh
Z2UpIG11dGFibGUgeworICAgICAgICAgICAgaWYgKCFlcnJvck1lc3NhZ2UuaXNFbXB0eSgpKQor
ICAgICAgICAgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihtYWtlVW5leHBlY3RlZCht
YWtlU3RyaW5nKCJGYWlsZWQgdG8gY3JlYXRlIE1lZGlhU3RyZWFtIHZpZGVvIHNvdXJjZTogIiwg
ZXJyb3JNZXNzYWdlKSkpOworICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoTWVkaWFTdHJl
YW1Qcml2YXRlOjpjcmVhdGUoV1RGTW92ZShsb2dnZXIpLCBXVEZNb3ZlKGF1ZGlvU291cmNlKSwg
V1RGTW92ZSh2aWRlb1NvdXJjZSkpKTsKKyAgICAgICAgfSk7CisgICAgfTsKKyAgICBpZiAoIWF1
ZGlvU291cmNlKQorICAgICAgICByZXR1cm4gd2FpdEZvckF1ZGlvU291cmNlKHsgfSk7CisgICAg
YXVkaW9Tb3VyY2UtPndoZW5SZWFkeShXVEZNb3ZlKHdhaXRGb3JBdWRpb1NvdXJjZSkpOwogfQog
CiBWZWN0b3I8Q2FwdHVyZURldmljZT4gUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6Z2V0TWVk
aWFTdHJlYW1EZXZpY2VzKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9H
UFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9H
UFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAppbmRleCBiZDdkMDdmMGQzNTY5YzlmMDNhZWVl
YTU2NjYyOTI4ZjI2YjAwNjllLi44MWIwMGE3ODJlYjBjODVjMzNkMjljZmNkZWNjOGFlYWE5ZThm
MjFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRv
V2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MuY3BwCkBAIC00MzEsMTEgKzQzMSw2IEBAIGJvb2wgR1BVQ29ubmVjdGlv
blRvV2ViUHJvY2Vzczo6ZGlzcGF0Y2hTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5l
Y3Rpb24sCiAgICAgICAgIHJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5KCkuZGlkUmVjZWl2
ZVN5bmNQbGF5ZXJNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIsIHJlcGx5RW5jb2Rlcik7CiAg
ICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KLSNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQotICAg
IGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6VXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXJQcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7Ci0gICAgICAgIHVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkoKS5kaWRSZWNlaXZlU3luY01lc3NhZ2VGcm9tR1BV
UHJvY2Vzcyhjb25uZWN0aW9uLCBkZWNvZGVyLCByZXBseUVuY29kZXIpOwotICAgICAgICByZXR1
cm4gdHJ1ZTsKLSAgICB9CiAjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShWSURFT19UUkFD
SykKICAgICBpZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OlJl
bW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUo
KSkgewogICAgICAgICBzYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyKCkuZGlkUmVjZWl2
ZVN5bmNNZXNzYWdlRnJvbVdlYlByb2Nlc3MoY29ubmVjdGlvbiwgZGVjb2RlciwgcmVwbHlFbmNv
ZGVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24u
aCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uaAppbmRleCAwODRiYjk3
ZjEzZTM3Mzg5NTBjY2MyMDA3MGU3NWRhYTlhZWUwMjk1Li41N2QwYTFkODkzY2NhODIxNzk5MzI3
ZGYwMmY1MWQ1YzlhNzA5ZWE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQ
Qy9Db25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQ29ubmVjdGlv
bi5oCkBAIC04NSw3ICs4NSw3IEBAIGVudW0gY2xhc3MgV2FpdEZvck9wdGlvbiB7CiB3aGlsZSAo
MCkKIAogdGVtcGxhdGU8dHlwZW5hbWUgQXN5bmNSZXBseVJlc3VsdD4gc3RydWN0IEFzeW5jUmVw
bHlFcnJvciB7Ci0gICAgc3RhdGljIEFzeW5jUmVwbHlSZXN1bHQgY3JlYXRlKCkgeyByZXR1cm4g
eyB9OyB9OworICAgIHN0YXRpYyBBc3luY1JlcGx5UmVzdWx0IGNyZWF0ZSgpIHsgcmV0dXJuIEFz
eW5jUmVwbHlSZXN1bHQgeyB9OyB9OwogfTsKIAogY2xhc3MgTWFjaE1lc3NhZ2U7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdl
clByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyUHJveHkuY3BwCmluZGV4IGU2MWM2YjJiNTI0NjA3OWE2YjE3ODMwOGIyZTA0ZjIz
NWFiODM2NWYuLmQxZTZiOTllZGZlOTAxYjE4OTAzNzY4M2QxNGEwNDRmNDA3MGE1MmYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwCkBAIC0xNzcsNyArMTc3LDcgQEAgVXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXJQcm94eTo6flVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkoKQogICAgIG1f
Y29ubmVjdGlvblByb3h5LT5yZW1vdmVNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlVzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSk7CiB9CiAKLXZvaWQg
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Y3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJl
RGV2aWNlV2l0aENvbnN0cmFpbnRzKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkLCBj
b25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRp
YUNvbnN0cmFpbnRzJiBjb25zdHJhaW50cywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sIHN1
Y2NlZWRlZCwgU3RyaW5nIGludmFsaWRDb25zdHJhaW50cywgV2ViQ29yZTo6UmVhbHRpbWVNZWRp
YVNvdXJjZVNldHRpbmdzJiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBVc2VyTWVkaWFD
YXB0dXJlTWFuYWdlclByb3h5OjpjcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRo
Q29uc3RyYWludHMoUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWQsIGNvbnN0IENhcHR1
cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWlu
dHMmIGNvbnN0cmFpbnRzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wgc3VjY2VlZGVkLCBT
dHJpbmcgaW52YWxpZENvbnN0cmFpbnRzLCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0
dGluZ3MmJiwgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyYmKT4mJiBj
b21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBDYXB0dXJlU291cmNlT3JFcnJvciBzb3VyY2VPckVy
cm9yOwogICAgIHN3aXRjaCAoZGV2aWNlLnR5cGUoKSkgewpAQCAtMjAzLDE3ICsyMDMsMTkgQEAg
dm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpjcmVhdGVNZWRpYVNvdXJjZUZvckNh
cHR1cmVEZXZpY2VXaXRoQ29uc3RyYWkKICAgICBib29sIHN1Y2NlZWRlZCA9ICEhc291cmNlT3JF
cnJvcjsKICAgICBTdHJpbmcgaW52YWxpZENvbnN0cmFpbnRzOwogICAgIFdlYkNvcmU6OlJlYWx0
aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyBzZXR0aW5nczsKKyAgICBXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlQ2FwYWJpbGl0aWVzIGNhcGFiaWxpdGllczsKICAgICBpZiAoc291cmNlT3JFcnJv
cikgewogICAgICAgICBhdXRvIHNvdXJjZSA9IHNvdXJjZU9yRXJyb3Iuc291cmNlKCk7CiAjaWYg
IVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgICAgIHNvdXJjZS0+c2V0TG9nZ2VyKG1fY29ubmVj
dGlvblByb3h5LT5sb2dnZXIoKSwgTG9nZ2VySGVscGVyOjp1bmlxdWVMb2dJZGVudGlmaWVyKCkp
OwogI2VuZGlmCiAgICAgICAgIHNldHRpbmdzID0gc291cmNlLT5zZXR0aW5ncygpOworICAgICAg
ICBjYXBhYmlsaXRpZXMgPSBzb3VyY2UtPmNhcGFiaWxpdGllcygpOwogICAgICAgICBBU1NFUlQo
IW1fcHJveGllcy5jb250YWlucyhpZCkpOwogICAgICAgICBtX3Byb3hpZXMuYWRkKGlkLCBtYWtl
VW5pcXVlPFNvdXJjZVByb3h5PihpZCwgbV9jb25uZWN0aW9uUHJveHktPmNvbm5lY3Rpb24oKSwg
V1RGTW92ZShzb3VyY2UpKSk7CiAgICAgfSBlbHNlCiAgICAgICAgIGludmFsaWRDb25zdHJhaW50
cyA9IFdURk1vdmUoc291cmNlT3JFcnJvci5lcnJvck1lc3NhZ2UpOwotICAgIGNvbXBsZXRpb25I
YW5kbGVyKHN1Y2NlZWRlZCwgaW52YWxpZENvbnN0cmFpbnRzLCBXVEZNb3ZlKHNldHRpbmdzKSk7
CisgICAgY29tcGxldGlvbkhhbmRsZXIoc3VjY2VlZGVkLCBpbnZhbGlkQ29uc3RyYWludHMsIFdU
Rk1vdmUoc2V0dGluZ3MpLCBXVEZNb3ZlKGNhcGFiaWxpdGllcykpOwogfQogCiB2b2lkIFVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OnN0YXJ0UHJvZHVjaW5nRGF0YShSZWFsdGltZU1lZGlh
U291cmNlSWRlbnRpZmllciBpZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaAppbmRleCBkOWNjYzhm
MzYwMDU3OWE0OTUzY2Y5Y2UzZDFiZmYxNDg3OGE3YzI4Li4yY2QxMDI3MTA1OWY2MzY2OWMwOWMy
ZWM5YTIxYTcwZGFkYzI0NGFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9D
b2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oCkBAIC02NCwxNCAr
NjQsMTIgQEAgcHVibGljOgogICAgIHZvaWQgc2V0T3JpZW50YXRpb24odWludDY0X3QpOwogCiAg
ICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZUZyb21HUFVQcm9jZXNzKElQQzo6Q29ubmVjdGlvbiYg
Y29ubmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBkZWNvZGVyKSB7IGRpZFJlY2VpdmVNZXNzYWdlKGNv
bm5lY3Rpb24sIGRlY29kZXIpOyB9Ci0gICAgdm9pZCBkaWRSZWNlaXZlU3luY01lc3NhZ2VGcm9t
R1BVUHJvY2VzcyhJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGVj
b2Rlciwgc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4mIGVuY29kZXIpIHsgZGlkUmVjZWl2
ZVN5bmNNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIsIGVuY29kZXIpOyB9CiAKIHByaXZhdGU6
CiAgICAgLy8gSVBDOjpNZXNzYWdlUmVjZWl2ZXIKICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdl
KElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIGZpbmFsOwotICAgIHZvaWQgZGlkUmVj
ZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYsIHN0ZDo6dW5p
cXVlX3B0cjxJUEM6OkVuY29kZXI+JikgZmluYWw7CiAKLSAgICB2b2lkIGNyZWF0ZU1lZGlhU291
cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50cyhXZWJDb3JlOjpSZWFsdGltZU1lZGlh
U291cmNlSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYgZGV2aWNlSUQs
IFN0cmluZyYmLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzJiwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChib29sIHN1Y2NlZWRlZCwgU3RyaW5nIGludmFsaWRDb25zdHJhaW50cywgV2Vi
Q29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiYpPiYmKTsKKyAgICB2b2lkIGNyZWF0
ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50cyhXZWJDb3JlOjpSZWFs
dGltZU1lZGlhU291cmNlSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYg
ZGV2aWNlSUQsIFN0cmluZyYmLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzJiwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChib29sIHN1Y2NlZWRlZCwgU3RyaW5nIGludmFsaWRDb25zdHJh
aW50cywgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiYsIFdlYkNvcmU6OlJl
YWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMmJik+JiYpOwogICAgIHZvaWQgc3RhcnRQcm9k
dWNpbmdEYXRhKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyKTsKICAgICB2
b2lkIHN0b3BQcm9kdWNpbmdEYXRhKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlm
aWVyKTsKICAgICB2b2lkIGVuZChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmll
cik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFD
YXB0dXJlTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Q29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgppbmRleCBiY2E1
OTVlYzU0OTI4MTUxMWMyOTgyZjgxNzJmYzI4NDZiMGJlMzBhLi5jNGQ1ZGI2OTU2NzkwMGMyMzM5
Y2MwZmU3OWEwNjBmNjFiMzcxNTE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHku
bWVzc2FnZXMuaW4KQEAgLTI0LDExICsyNCwxMCBAQAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0p
CiAKIG1lc3NhZ2VzIC0+IFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkgTm90UmVmQ291bnRl
ZCB7Ci0gICAgQ3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRz
KFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkLCBXZWJDb3JlOjpDYXB0
dXJlRGV2aWNlIGRldmljZSwgU3RyaW5nIGhhc2hTYWx0LCBzdHJ1Y3QgV2ViQ29yZTo6TWVkaWFD
b25zdHJhaW50cyBjb25zdHJhaW50cykgLT4gKGJvb2wgc3VjY2VzcywgU3RyaW5nIGludmFsaWRD
b25zdHJhaW50cywgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzIHNldHRpbmdz
KSBTeW5jaHJvbm91cworICAgIENyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhD
b25zdHJhaW50cyhXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZCwgV2Vi
Q29yZTo6Q2FwdHVyZURldmljZSBkZXZpY2UsIFN0cmluZyBoYXNoU2FsdCwgc3RydWN0IFdlYkNv
cmU6Ok1lZGlhQ29uc3RyYWludHMgY29uc3RyYWludHMpIC0+IChib29sIHN1Y2Nlc3MsIFN0cmlu
ZyBpbnZhbGlkQ29uc3RyYWludHMsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5n
cyBzZXR0aW5ncywgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyBjYXBh
YmlsaXRpZXMpIEFzeW5jCiAgICAgU3RhcnRQcm9kdWNpbmdEYXRhKFdlYkNvcmU6OlJlYWx0aW1l
TWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkKQogICAgIFN0b3BQcm9kdWNpbmdEYXRhKFdlYkNvcmU6
OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkKQogICAgIEVuZChXZWJDb3JlOjpSZWFs
dGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZCkKLSAgICBDYXBhYmlsaXRpZXMoV2ViQ29yZTo6
UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWQpIC0+IChXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlQ2FwYWJpbGl0aWVzIGNhcGFiaWxpdGllcykgU3luY2hyb25vdXMKICAgICBTZXRN
dXRlZChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZCwgYm9vbCBtdXRl
ZCkKICAgICBBcHBseUNvbnN0cmFpbnRzKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVu
dGlmaWVyIGlkLCBzdHJ1Y3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyBjb25zdHJhaW50cykK
ICAgICBDbG9uZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBjbG9uZWRJ
RCwgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgY2xvbmVJRCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFu
YWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXIuY3BwCmluZGV4IDIyMTU5MTg0MGEyMWZlYzMzZGRiMWViNTJiNjJhYzlkNWZmNjkw
OGQuLjg5NGUyYTFkMzJhNDIzMzFlOGIxY2FmZWZlYjYyNDE4MTMxMjUxZDEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyLmNwcApAQCAtMTAxLDYgKzEwMSwyOCBAQCBwdWJsaWM6CiAgICAgICAgIH0KICAgICB9
CiAKKyAgICB2b2lkIHdoZW5SZWFkeShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0cmluZyk+JiYg
Y2FsbGJhY2spIGZpbmFsCisgICAgeworICAgICAgICBpZiAobV9pc1JlYWR5KQorICAgICAgICAg
ICAgcmV0dXJuIGNhbGxiYWNrKFdURk1vdmUobV9lcnJvck1lc3NhZ2UpKTsKKyAgICAgICAgbV9j
YWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spOworICAgIH0KKworICAgIHZvaWQgZGlkRmFpbChT
dHJpbmcmJiBlcnJvck1lc3NhZ2UpCisgICAgeworICAgICAgICBtX2lzUmVhZHkgPSB0cnVlOwor
ICAgICAgICBtX2Vycm9yTWVzc2FnZSA9IFdURk1vdmUoZXJyb3JNZXNzYWdlKTsKKyAgICAgICAg
aWYgKG1fY2FsbGJhY2spCisgICAgICAgICAgICBtX2NhbGxiYWNrKFN0cmluZyhlcnJvck1lc3Nh
Z2UpKTsKKyAgICB9CisKKyAgICB2b2lkIHNldEFzUmVhZHkoKQorICAgIHsKKyAgICAgICAgbV9p
c1JlYWR5ID0gdHJ1ZTsKKyAgICAgICAgaWYgKG1fY2FsbGJhY2spCisgICAgICAgICAgICBtX2Nh
bGxiYWNrKHsgfSk7CisgICAgfQorCiAgICAgU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UmIHN0b3Jh
Z2UoKQogICAgIHsKICAgICAgICAgQVNTRVJUKHR5cGUoKSA9PSBUeXBlOjpBdWRpbyk7CkBAIC0x
MjMsNiArMTQ1LDEwIEBAIHB1YmxpYzoKICAgICB9CiAKICAgICBjb25zdCBSZWFsdGltZU1lZGlh
U291cmNlQ2FwYWJpbGl0aWVzJiBjYXBhYmlsaXRpZXMoKSBmaW5hbDsKKyAgICB2b2lkIHNldENh
cGFiaWxpdGllcyhSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzJiYgY2FwYWJpbGl0aWVz
KQorICAgIHsKKyAgICAgICAgbV9jYXBhYmlsaXRpZXMgPSBXVEZNb3ZlKGNhcGFiaWxpdGllcyk7
CisgICAgfQogCiAgICAgY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiBzZXR0aW5n
cygpIGZpbmFsIHsgcmV0dXJuIG1fc2V0dGluZ3M7IH0KICAgICB2b2lkIHNldFNldHRpbmdzKFJl
YWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYmIHNldHRpbmdzKQpAQCAtMjMxLDcgKzI1Nyw3IEBA
IHByaXZhdGU6CiAKICAgICBSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBtX2lkOwogICAg
IFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiBtX21hbmFnZXI7Ci0gICAgbXV0YWJsZSBPcHRpb25h
bDxSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzPiBtX2NhcGFiaWxpdGllczsKKyAgICBS
ZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzIG1fY2FwYWJpbGl0aWVzOwogICAgIFJlYWx0
aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyBtX3NldHRpbmdzOwogCiAgICAgQ0FBdWRpb1N0cmVhbURl
c2NyaXB0aW9uIG1fZGVzY3JpcHRpb247CkBAIC0yNDIsNiArMjY4LDkgQEAgcHJpdmF0ZToKIAog
ICAgIERlcXVlPEFwcGx5Q29uc3RyYWludHNIYW5kbGVyPiBtX3BlbmRpbmdBcHBseUNvbnN0cmFp
bnRzQ2FsbGJhY2tzOwogICAgIGJvb2wgbV9zaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzIHsgZmFs
c2UgfTsKKyAgICBib29sIG1faXNSZWFkeSB7IGZhbHNlIH07CisgICAgU3RyaW5nIG1fZXJyb3JN
ZXNzYWdlOworICAgIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nKT4gbV9jYWxsYmFjazsK
IH07CiAKIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcihX
ZWJQcm9jZXNzJiBwcm9jZXNzKQpAQCAtMjkyLDI3ICszMjEsMzEgQEAgV2ViQ29yZTo6Q2FwdHVy
ZVNvdXJjZU9yRXJyb3IgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OmNyZWF0ZUNhcHR1cmVTb3Vy
Y2UoY29uc3QKICAgICAgICAgcmV0dXJuIHsgfTsKIAogICAgIGF1dG8gaWQgPSBSZWFsdGltZU1l
ZGlhU291cmNlSWRlbnRpZmllcjo6Z2VuZXJhdGUoKTsKLSAgICBSZWFsdGltZU1lZGlhU291cmNl
U2V0dGluZ3Mgc2V0dGluZ3M7Ci0gICAgU3RyaW5nIGVycm9yTWVzc2FnZTsKLSAgICBib29sIHN1
Y2NlZWRlZDsKKwogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKICAgICBhdXRvKiBjb25uZWN0aW9u
ID0gc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcyA/ICZtX3Byb2Nlc3MuZW5zdXJlR1BVUHJvY2Vz
c0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkgOiBtX3Byb2Nlc3MucGFyZW50UHJvY2Vzc0Nvbm5l
Y3Rpb24oKTsKICNlbHNlCiAgICAgQVNTRVJUKCFzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKTsK
ICAgICBhdXRvKiBjb25uZWN0aW9uID0gbV9wcm9jZXNzLnBhcmVudFByb2Nlc3NDb25uZWN0aW9u
KCk7CiAjZW5kaWYKLSAgICBpZiAoIWNvbm5lY3Rpb24tPnNlbmRTeW5jKE1lc3NhZ2VzOjpVc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpDcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZp
Y2VXaXRoQ29uc3RyYWludHMoaWQsIGRldmljZSwgaGFzaFNhbHQsICpjb25zdHJhaW50cyksIE1l
c3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpDcmVhdGVNZWRpYVNvdXJjZUZv
ckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHM6OlJlcGx5KHN1Y2NlZWRlZCwgZXJyb3JNZXNz
YWdlLCBzZXR0aW5ncyksIDApKQotICAgICAgICByZXR1cm4gV1RGTW92ZShlcnJvck1lc3NhZ2Up
OwotCi0gICAgaWYgKCFzdWNjZWVkZWQpCi0gICAgICAgIHJldHVybiBXVEZNb3ZlKGVycm9yTWVz
c2FnZSk7Ci0KKyAgICAKICAgICBhdXRvIHR5cGUgPSBkZXZpY2UudHlwZSgpID09IENhcHR1cmVE
ZXZpY2U6OkRldmljZVR5cGU6Ok1pY3JvcGhvbmUgPyBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291
cmNlOjpUeXBlOjpBdWRpbyA6IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OlZp
ZGVvOwotICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYoKm5ldyBTb3VyY2UoU3RyaW5nOjpudW1i
ZXIoaWQudG9VSW50NjQoKSksIHR5cGUsIGRldmljZS50eXBlKCksIFN0cmluZyB7IHNldHRpbmdz
LmxhYmVsKCkuc3RyaW5nKCkgfSwgV1RGTW92ZShoYXNoU2FsdCksIGlkLCAqdGhpcykpOworICAg
IGF1dG8gc291cmNlID0gYWRvcHRSZWYoKm5ldyBTb3VyY2UoU3RyaW5nOjpudW1iZXIoaWQudG9V
SW50NjQoKSksIHR5cGUsIGRldmljZS50eXBlKCksIFN0cmluZyB7IH0sIFN0cmluZyB7IGhhc2hT
YWx0IH0sIGlkLCAqdGhpcykpOwogICAgIGlmIChzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKQog
ICAgICAgICBzb3VyY2UtPnNldFNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3Moc2hvdWxkQ2FwdHVy
ZUluR1BVUHJvY2Vzcyk7Ci0gICAgc291cmNlLT5zZXRTZXR0aW5ncyhXVEZNb3ZlKHNldHRpbmdz
KSk7CiAgICAgbV9zb3VyY2VzLmFkZChpZCwgc291cmNlLmNvcHlSZWYoKSk7CisKKyAgICBjb25u
ZWN0aW9uLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyUHJveHk6OkNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50
cyhpZCwgZGV2aWNlLCBoYXNoU2FsdCwgKmNvbnN0cmFpbnRzKSwgW3NvdXJjZSA9IHNvdXJjZS5j
b3B5UmVmKCldKGJvb2wgc3VjY2VlZGVkLCBhdXRvJiYgZXJyb3JNZXNzYWdlLCBhdXRvJiYgc2V0
dGluZ3MsIGF1dG8mJiBjYXBhYmlsaXRpZXMpIHsKKyAgICAgICAgaWYgKCFzdWNjZWVkZWQpIHsK
KyAgICAgICAgICAgIHNvdXJjZS0+ZGlkRmFpbChXVEZNb3ZlKGVycm9yTWVzc2FnZSkpOworICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIHNvdXJjZS0+c2V0TmFtZShTdHJp
bmcgeyBzZXR0aW5ncy5sYWJlbCgpLnN0cmluZygpIH0pOworICAgICAgICBzb3VyY2UtPnNldFNl
dHRpbmdzKFdURk1vdmUoc2V0dGluZ3MpKTsKKyAgICAgICAgc291cmNlLT5zZXRDYXBhYmlsaXRp
ZXMoV1RGTW92ZShjYXBhYmlsaXRpZXMpKTsKKyAgICAgICAgc291cmNlLT5zZXRBc1JlYWR5KCk7
CisgICAgfSk7CisKICAgICByZXR1cm4gV2ViQ29yZTo6Q2FwdHVyZVNvdXJjZU9yRXJyb3IoV1RG
TW92ZShzb3VyY2UpKTsKIH0KIApAQCAtMzk4LDEzICs0MzEsNyBAQCB2b2lkIFVzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyOjpTb3VyY2U6OnN0b3BQcm9kdWNpbmdEYXRhKCkKIAogY29uc3QgV2ViQ29y
ZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyYgVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXI6OlNvdXJjZTo6Y2FwYWJpbGl0aWVzKCkKIHsKLSAgICBpZiAoIW1fY2FwYWJpbGl0aWVzKSB7
Ci0gICAgICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMgY2FwYWJpbGl0aWVzOwot
ICAgICAgICBjb25uZWN0aW9uKCktPnNlbmRTeW5jKE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJl
TWFuYWdlclByb3h5OjpDYXBhYmlsaXRpZXMgeyBtX2lkIH0sIE1lc3NhZ2VzOjpVc2VyTWVkaWFD
YXB0dXJlTWFuYWdlclByb3h5OjpDYXBhYmlsaXRpZXM6OlJlcGx5KGNhcGFiaWxpdGllcyksIDAp
OwotICAgICAgICBtX2NhcGFiaWxpdGllcyA9IFdURk1vdmUoY2FwYWJpbGl0aWVzKTsKLSAgICB9
Ci0KLSAgICByZXR1cm4gbV9jYXBhYmlsaXRpZXMudmFsdWUoKTsKKyAgICByZXR1cm4gbV9jYXBh
YmlsaXRpZXM7CiB9CiAKIHZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OlNvdXJjZTo6YXBw
bHlDb25zdHJhaW50cyhjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzJiBjb25zdHJhaW50
cywgQXBwbHlDb25zdHJhaW50c0hhbmRsZXImJiBjb21wbGV0aW9uSGFuZGxlcikK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>393043</attachid>
            <date>2020-03-09 09:12:12 -0700</date>
            <delta_ts>2020-03-10 05:04:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208816-20200309171211.patch</filename>
            <type>text/plain</type>
            <size>24205</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU4MTMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2EyYzZiNzJmYjY5NThm
ZTk5MThhYjdhNjQ0NWI0ODE1MGYzNmYxOC4uMmEwYjhmYWQ1YzA2YmE0NTAwMGJmNGVkZWVlMGNk
NDRhMTc1ZmY5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDIwLTAzLTA5ICB5b3Vl
bm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgc3luYyBJUEMg
d2hlbiBjcmVhdGluZyBhIHJlbW90ZSBjYXB0dXJlIHNvdXJjZQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA4ODE2CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgd2hlbkluaXRpYWxpemVkIG1ldGhv
ZCB0byBhbGxvdyBmb3IgYXN5bmMgY3JlYXRpb24gb2YgcmVhbHRpbWUgbWVkaWEgc291cmNlLgor
ICAgICAgICBVc2UgdGhpcyBtZXRob2Qgd2hlbiBjcmVhdGluZyBhIE1lZGlhU3RyZWFtIGZvciBn
ZXRVc2VyTWVkaWEvZ2V0RGlzcGxheU1lZGlhLgorICAgICAgICBDb3ZlcmVkIGJ5IGV4aXN0aW5n
IHRlc3RzLgorCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Qcml2
YXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtUHJpdmF0ZTo6Y3JlYXRlKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUuaDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmg6CisgICAg
ICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpjcmVhdGVNZWRp
YVN0cmVhbSk6CisKIDIwMjAtMDMtMDcgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgog
CiAgICAgICAgIEJlZ2luIG1vdmluZyBvZmYgb2YgbGl2ZSByYW5nZXMgZm9yIFdlYktpdCBpbnRl
cm5hbHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKaW5kZXggZjZjNGQzNmMzYzVlYTA1ODU5OGJiZmU3Y2MyMTQ4MDg2NWUyNjQ0
Mi4uNGJkYWUwMGM4ODFlNzNhZWZiODdmNzRjNWI4OGJmZjNjN2JjYjRmNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwyNiBAQAorMjAyMC0wMy0wOSAgeW91ZW5uIGZhYmxldCAgPHlvdWVubkBhcHBsZS5j
b20+CisKKyAgICAgICAgUmVtb3ZlIHN5bmMgSVBDIHdoZW4gY3JlYXRpbmcgYSByZW1vdGUgY2Fw
dHVyZSBzb3VyY2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIwODgxNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFVzZSB3aGVuSW5pdGlhbGl6ZWQgdG8gd2FpdCBmb3IgdGhlIGFzeW5jIElQQyB0aGF0IHRl
bGxzIHdoZXRoZXIgdGhlIHJlbW90ZSBzb3VyY2Ugd2FzIGNyZWF0ZWQgc3VjY2Vzc2Z1bGx5Lgor
ICAgICAgICBVc2UgdGhlIGFzeW5jIHJlc3BvbnNlIHRvIGdhdGhlciB0aGUgY2FwYWJpbGl0aWVz
IHNvIGFzIHRvIHJlbW92ZSB0aGUgY29ycmVzcG9uZGluZyBzeW5jIElQQy4KKworICAgICAgICAq
IFBsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmg6CisgICAgICAgIChJUEM6OkFzeW5jUmVwbHlFcnJv
cjo6Y3JlYXRlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXJQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
UHJveHk6OmNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50cyk6
CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHku
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94
eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6
OlNvdXJjZTo6ZGlkRmFpbCk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyOjpTb3VyY2U6OnNldEFzUmVhZHkpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0
dXJlTWFuYWdlcjo6U291cmNlOjpzZXRDYXBhYmlsaXRpZXMpOgorICAgICAgICAoV2ViS2l0OjpV
c2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6Y3JlYXRlQ2FwdHVyZVNvdXJjZSk6CisgICAgICAgIChX
ZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpTb3VyY2U6OmNhcGFiaWxpdGllcyk6CisK
IDIwMjAtMDMtMDcgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAgIEJl
Z2luIG1vdmluZyBvZmYgb2YgbGl2ZSByYW5nZXMgZm9yIFdlYktpdCBpbnRlcm5hbHMKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtUHJp
dmF0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVh
bVByaXZhdGUuY3BwCmluZGV4IGZjMTk5ZDFhMGVlM2FjM2FiNWI1ZGRjMGMxOGI3ZTVhY2YxNjJi
NjYuLmFkY2YxMmIwMWVlN2FlODZjYTNkZjQ1YjI3ODE3NmNhYWQwNGYzNjQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtUHJpdmF0ZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Q
cml2YXRlLmNwcApAQCAtNTEsMTYgKzUxLDE1IEBAIFJlZjxNZWRpYVN0cmVhbVByaXZhdGU+IE1l
ZGlhU3RyZWFtUHJpdmF0ZTo6Y3JlYXRlKFJlZjxjb25zdCBMb2dnZXI+JiYgbG9nZ2VyLCBSCiAg
ICAgcmV0dXJuIE1lZGlhU3RyZWFtUHJpdmF0ZTo6Y3JlYXRlKFdURk1vdmUobG9nZ2VyKSwgTWVk
aWFTdHJlYW1UcmFja1ByaXZhdGVWZWN0b3I6OmZyb20oTWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6
OmNyZWF0ZShXVEZNb3ZlKGxvZ2dlckNvcHkpLCBXVEZNb3ZlKHNvdXJjZSkpKSk7CiB9CiAKLVJl
ZjxNZWRpYVN0cmVhbVByaXZhdGU+IE1lZGlhU3RyZWFtUHJpdmF0ZTo6Y3JlYXRlKFJlZjxjb25z
dCBMb2dnZXI+JiYgbG9nZ2VyLCBjb25zdCBWZWN0b3I8UmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+
PiYgYXVkaW9Tb3VyY2VzLCBjb25zdCBWZWN0b3I8UmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+PiYg
dmlkZW9Tb3VyY2VzKQorUmVmPE1lZGlhU3RyZWFtUHJpdmF0ZT4gTWVkaWFTdHJlYW1Qcml2YXRl
OjpjcmVhdGUoUmVmPGNvbnN0IExvZ2dlcj4mJiBsb2dnZXIsIFJlZlB0cjxSZWFsdGltZU1lZGlh
U291cmNlPiYmIGF1ZGlvU291cmNlLCBSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZT4mJiB2aWRl
b1NvdXJjZSkKIHsKICAgICBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZVZlY3RvciB0cmFja3M7Ci0g
ICAgdHJhY2tzLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkoYXVkaW9Tb3VyY2VzLnNpemUoKSArIHZp
ZGVvU291cmNlcy5zaXplKCkpOworICAgIHRyYWNrcy5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KDIp
OwogCi0gICAgZm9yIChhdXRvJiBzb3VyY2UgOiBhdWRpb1NvdXJjZXMpCi0gICAgICAgIHRyYWNr
cy51bmNoZWNrZWRBcHBlbmQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6OmNyZWF0ZShsb2dnZXIu
Y29weVJlZigpLCBzb3VyY2UuY29weVJlZigpKSk7Ci0KLSAgICBmb3IgKGF1dG8mIHNvdXJjZSA6
IHZpZGVvU291cmNlcykKLSAgICAgICAgdHJhY2tzLnVuY2hlY2tlZEFwcGVuZChNZWRpYVN0cmVh
bVRyYWNrUHJpdmF0ZTo6Y3JlYXRlKGxvZ2dlci5jb3B5UmVmKCksIHNvdXJjZS5jb3B5UmVmKCkp
KTsKKyAgICBpZiAoYXVkaW9Tb3VyY2UpCisgICAgICAgIHRyYWNrcy51bmNoZWNrZWRBcHBlbmQo
TWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6OmNyZWF0ZShsb2dnZXIuY29weVJlZigpLCBhdWRpb1Nv
dXJjZS5yZWxlYXNlTm9uTnVsbCgpKSk7CisgICAgaWYgKHZpZGVvU291cmNlKQorICAgICAgICB0
cmFja3MudW5jaGVja2VkQXBwZW5kKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlOjpjcmVhdGUobG9n
Z2VyLmNvcHlSZWYoKSwgdmlkZW9Tb3VyY2UucmVsZWFzZU5vbk51bGwoKSkpOwogCiAgICAgcmV0
dXJuIE1lZGlhU3RyZWFtUHJpdmF0ZTo6Y3JlYXRlKFdURk1vdmUobG9nZ2VyKSwgdHJhY2tzKTsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlh
U3RyZWFtUHJpdmF0ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVk
aWFTdHJlYW1Qcml2YXRlLmgKaW5kZXggNDcwNDYzY2YyY2VlNWIwOWZlNzMwYjk5NzM3NzA5MTA0
MGQzNDZmYi4uY2U2YjcxMDg2NTExZWYyOTNiODk4NjUwOTY0NjI4ZmQ3NjhkMjNhZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Qcml2
YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJl
YW1Qcml2YXRlLmgKQEAgLTY5LDcgKzY5LDcgQEAgcHVibGljOgogICAgIH07CiAKICAgICBzdGF0
aWMgUmVmPE1lZGlhU3RyZWFtUHJpdmF0ZT4gY3JlYXRlKFJlZjxjb25zdCBMb2dnZXI+JiYsIFJl
ZjxSZWFsdGltZU1lZGlhU291cmNlPiYmKTsKLSAgICBzdGF0aWMgUmVmPE1lZGlhU3RyZWFtUHJp
dmF0ZT4gY3JlYXRlKFJlZjxjb25zdCBMb2dnZXI+JiYsIGNvbnN0IFZlY3RvcjxSZWY8UmVhbHRp
bWVNZWRpYVNvdXJjZT4+JiBhdWRpb1NvdXJjZXMsIGNvbnN0IFZlY3RvcjxSZWY8UmVhbHRpbWVN
ZWRpYVNvdXJjZT4+JiB2aWRlb1NvdXJjZXMpOworICAgIHN0YXRpYyBSZWY8TWVkaWFTdHJlYW1Q
cml2YXRlPiBjcmVhdGUoUmVmPGNvbnN0IExvZ2dlcj4mJiwgUmVmUHRyPFJlYWx0aW1lTWVkaWFT
b3VyY2U+JiYgYXVkaW9Tb3VyY2UsIFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlPiYmIHZpZGVv
U291cmNlKTsKICAgICBzdGF0aWMgUmVmPE1lZGlhU3RyZWFtUHJpdmF0ZT4gY3JlYXRlKFJlZjxj
b25zdCBMb2dnZXI+JiYgbG9nZ2VyLCBjb25zdCBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZVZlY3Rv
ciYgdHJhY2tzLCBTdHJpbmcmJiBpZCA9IGNyZWF0ZUNhbm9uaWNhbFVVSURTdHJpbmcoKSkgeyBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBNZWRpYVN0cmVhbVByaXZhdGUoV1RGTW92ZShsb2dnZXIpLCB0
cmFja3MsIFdURk1vdmUoaWQpKSk7IH0KIAogICAgIHZpcnR1YWwgfk1lZGlhU3RyZWFtUHJpdmF0
ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVh
bHRpbWVNZWRpYVNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
UmVhbHRpbWVNZWRpYVNvdXJjZS5oCmluZGV4IDlmYWYwOTA1ZGQ0YWE1OGE2MmEyYmZkZTQwMTk2
ZDUxM2UxNDQ5MDQuLjM5Yjk5NzYxZmI0MWVlMTZkNDhkMzg1Y2UxZTNiZDQ0NDYwMTRhMmQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVk
aWFTb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFs
dGltZU1lZGlhU291cmNlLmgKQEAgLTQyLDYgKzQyLDcgQEAKICNpbmNsdWRlICJQbGF0Zm9ybUxh
eWVyLmgiCiAjaW5jbHVkZSAiUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcy5oIgogI2lu
Y2x1ZGUgIlJlYWx0aW1lTWVkaWFTb3VyY2VGYWN0b3J5LmgiCisjaW5jbHVkZSA8d3RmL0NvbXBs
ZXRpb25IYW5kbGVyLmg+CiAjaW5jbHVkZSA8d3RmL0xvZ2dlckhlbHBlci5oPgogI2luY2x1ZGUg
PHd0Zi9SZWN1cnNpdmVMb2NrQWRhcHRlci5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZlUmVm
Q291bnRlZC5oPgpAQCAtMTA3LDYgKzEwOCw4IEBAIHB1YmxpYzoKICAgICBlbnVtIGNsYXNzIFR5
cGUgeyBOb25lLCBBdWRpbywgVmlkZW8gfTsKICAgICBUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVy
biBtX3R5cGU7IH0KIAorICAgIHZpcnR1YWwgdm9pZCB3aGVuUmVhZHkoQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChTdHJpbmcpPiYmKTsKKwogICAgIGJvb2wgaXNQcm9kdWNpbmdEYXRhKCkgY29uc3Qg
eyByZXR1cm4gbV9pc1Byb2R1Y2luZ0RhdGE7IH0KICAgICB2b2lkIHN0YXJ0KCk7CiAgICAgdm9p
ZCBzdG9wKCk7CkBAIC0yODMsNiArMjg2LDExIEBAIHN0cnVjdCBDYXB0dXJlU291cmNlT3JFcnJv
ciB7CiAKIFN0cmluZyBjb252ZXJ0RW51bWVyYXRpb25Ub1N0cmluZyhSZWFsdGltZU1lZGlhU291
cmNlOjpUeXBlKTsKIAoraW5saW5lIHZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZTo6d2hlblJlYWR5
KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nKT4mJiBjYWxsYmFjaykKK3sKKyAgICBjYWxs
YmFjayh7IH0pOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKIG5hbWVzcGFjZSBXVEYg
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRp
bWVNZWRpYVNvdXJjZUNlbnRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcAppbmRleCA3N2Q5ODdhYzMxZGM0Nzcx
ODk4M2VhOGM2YThjYWUxZDI5MDU0N2M1Li5hNmY5ZmNlMTI0ZTg4ZjA2YmM1ZTZlOTM1MjdkMmIx
MzAyYjg0M2JhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcApAQCAtNzAsNDAg
KzcwLDQ2IEBAIHZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6Y3JlYXRlTWVkaWFTdHJl
YW0oUmVmPGNvbnN0IExvZ2dlcj4mJiBsb2dnZXIsIE5lCiAgICAgVmVjdG9yPFJlZjxSZWFsdGlt
ZU1lZGlhU291cmNlPj4gdmlkZW9Tb3VyY2VzOwogICAgIFN0cmluZyBpbnZhbGlkQ29uc3RyYWlu
dDsKIAorICAgIFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlPiBhdWRpb1NvdXJjZTsKICAgICBp
ZiAoYXVkaW9EZXZpY2UpIHsKLSAgICAgICAgYXV0byBhdWRpb1NvdXJjZSA9IGF1ZGlvQ2FwdHVy
ZUZhY3RvcnkoKS5jcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoV1RGTW92ZShhdWRpb0RldmljZSks
IFN0cmluZyB7IGhhc2hTYWx0IH0sICZyZXF1ZXN0LmF1ZGlvQ29uc3RyYWludHMpOwotICAgICAg
ICBpZiAoYXVkaW9Tb3VyY2UpCi0gICAgICAgICAgICBhdWRpb1NvdXJjZXMuYXBwZW5kKGF1ZGlv
U291cmNlLnNvdXJjZSgpKTsKLSAgICAgICAgZWxzZSB7Ci0jaWYgIUxPR19ESVNBQkxFRAotICAg
ICAgICAgICAgaWYgKCFhdWRpb1NvdXJjZS5lcnJvck1lc3NhZ2UuaXNFbXB0eSgpKQotICAgICAg
ICAgICAgICAgIExPRyhNZWRpYSwgIlJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OmNyZWF0ZU1l
ZGlhU3RyZWFtKCVwKSwgYXVkaW8gY29uc3RyYWludHMgZmFpbGVkIHRvIGFwcGx5OiAlcyIsIHRo
aXMsIGF1ZGlvU291cmNlLmVycm9yTWVzc2FnZS51dGY4KCkuZGF0YSgpKTsKLSNlbmRpZgotICAg
ICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIobWFrZVVuZXhwZWN0ZWQobWFrZVN0cmluZygiRmFp
bGVkIHRvIGNyZWF0ZSBNZWRpYVN0cmVhbSBhdWRpbyBzb3VyY2U6ICIsIGF1ZGlvU291cmNlLmVy
cm9yTWVzc2FnZSkpKTsKKyAgICAgICAgYXV0byBzb3VyY2UgPSBhdWRpb0NhcHR1cmVGYWN0b3J5
KCkuY3JlYXRlQXVkaW9DYXB0dXJlU291cmNlKFdURk1vdmUoYXVkaW9EZXZpY2UpLCBTdHJpbmcg
eyBoYXNoU2FsdCB9LCAmcmVxdWVzdC5hdWRpb0NvbnN0cmFpbnRzKTsKKyAgICAgICAgaWYgKCFz
b3VyY2UpIHsKKyAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKG1ha2VVbmV4cGVjdGVkKG1h
a2VTdHJpbmcoIkZhaWxlZCB0byBjcmVhdGUgTWVkaWFTdHJlYW0gYXVkaW8gc291cmNlOiAiLCBz
b3VyY2UuZXJyb3JNZXNzYWdlKSkpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9Cisg
ICAgICAgIGF1ZGlvU291cmNlID0gc291cmNlLnNvdXJjZSgpOwogICAgIH0KIAorICAgIFJlZlB0
cjxSZWFsdGltZU1lZGlhU291cmNlPiB2aWRlb1NvdXJjZTsKICAgICBpZiAodmlkZW9EZXZpY2Up
IHsKLSAgICAgICAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgdmlkZW9Tb3VyY2U7CisgICAgICAgIENh
cHR1cmVTb3VyY2VPckVycm9yIHNvdXJjZTsKICAgICAgICAgaWYgKHZpZGVvRGV2aWNlLnR5cGUo
KSA9PSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpDYW1lcmEpCi0gICAgICAgICAgICB2aWRl
b1NvdXJjZSA9IHZpZGVvQ2FwdHVyZUZhY3RvcnkoKS5jcmVhdGVWaWRlb0NhcHR1cmVTb3VyY2Uo
V1RGTW92ZSh2aWRlb0RldmljZSksIFdURk1vdmUoaGFzaFNhbHQpLCAmcmVxdWVzdC52aWRlb0Nv
bnN0cmFpbnRzKTsKKyAgICAgICAgICAgIHNvdXJjZSA9IHZpZGVvQ2FwdHVyZUZhY3RvcnkoKS5j
cmVhdGVWaWRlb0NhcHR1cmVTb3VyY2UoV1RGTW92ZSh2aWRlb0RldmljZSksIFdURk1vdmUoaGFz
aFNhbHQpLCAmcmVxdWVzdC52aWRlb0NvbnN0cmFpbnRzKTsKICAgICAgICAgZWxzZQotICAgICAg
ICAgICAgdmlkZW9Tb3VyY2UgPSBkaXNwbGF5Q2FwdHVyZUZhY3RvcnkoKS5jcmVhdGVEaXNwbGF5
Q2FwdHVyZVNvdXJjZShXVEZNb3ZlKHZpZGVvRGV2aWNlKSwgJnJlcXVlc3QudmlkZW9Db25zdHJh
aW50cyk7Ci0KLSAgICAgICAgaWYgKHZpZGVvU291cmNlKQotICAgICAgICAgICAgdmlkZW9Tb3Vy
Y2VzLmFwcGVuZCh2aWRlb1NvdXJjZS5zb3VyY2UoKSk7Ci0gICAgICAgIGVsc2UgewotI2lmICFM
T0dfRElTQUJMRUQKLSAgICAgICAgICAgIGlmICghdmlkZW9Tb3VyY2UuZXJyb3JNZXNzYWdlLmlz
RW1wdHkoKSkKLSAgICAgICAgICAgICAgICBMT0coTWVkaWEsICJSZWFsdGltZU1lZGlhU291cmNl
Q2VudGVyOjpjcmVhdGVNZWRpYVN0cmVhbSglcCksIHZpZGVvIGNvbnN0cmFpbnRzIGZhaWxlZCB0
byBhcHBseTogJXMiLCB0aGlzLCB2aWRlb1NvdXJjZS5lcnJvck1lc3NhZ2UudXRmOCgpLmRhdGEo
KSk7Ci0jZW5kaWYKLSAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKG1ha2VVbmV4cGVjdGVk
KG1ha2VTdHJpbmcoIkZhaWxlZCB0byBjcmVhdGUgTWVkaWFTdHJlYW0gdmlkZW8gc291cmNlOiAi
LCB2aWRlb1NvdXJjZS5lcnJvck1lc3NhZ2UpKSk7CisgICAgICAgICAgICBzb3VyY2UgPSBkaXNw
bGF5Q2FwdHVyZUZhY3RvcnkoKS5jcmVhdGVEaXNwbGF5Q2FwdHVyZVNvdXJjZShXVEZNb3ZlKHZp
ZGVvRGV2aWNlKSwgJnJlcXVlc3QudmlkZW9Db25zdHJhaW50cyk7CisKKyAgICAgICAgaWYgKCFz
b3VyY2UpIHsKKyAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKG1ha2VVbmV4cGVjdGVkKG1h
a2VTdHJpbmcoIkZhaWxlZCB0byBjcmVhdGUgTWVkaWFTdHJlYW0gdmlkZW8gc291cmNlOiAiLCBz
b3VyY2UuZXJyb3JNZXNzYWdlKSkpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9Cisg
ICAgICAgIHZpZGVvU291cmNlID0gc291cmNlLnNvdXJjZSgpOwogICAgIH0KIAotICAgIGNvbXBs
ZXRpb25IYW5kbGVyKE1lZGlhU3RyZWFtUHJpdmF0ZTo6Y3JlYXRlKFdURk1vdmUobG9nZ2VyKSwg
YXVkaW9Tb3VyY2VzLCB2aWRlb1NvdXJjZXMpKTsKKyAgICBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KFN0cmluZyYmKT4gd2FpdEZvckF1ZGlvU291cmNlID0gW2F1ZGlvU291cmNlLCB2aWRlb1NvdXJj
ZSA9IFdURk1vdmUodmlkZW9Tb3VyY2UpLCBsb2dnZXIgPSBXVEZNb3ZlKGxvZ2dlciksIGNvbXBs
ZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKGF1dG8mJiBlcnJvck1l
c3NhZ2UpIG11dGFibGUgeworICAgICAgICBpZiAoIWVycm9yTWVzc2FnZS5pc0VtcHR5KCkpCisg
ICAgICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIobWFrZVVuZXhwZWN0ZWQobWFrZVN0
cmluZygiRmFpbGVkIHRvIGNyZWF0ZSBNZWRpYVN0cmVhbSBhdWRpbyBzb3VyY2U6ICIsIGVycm9y
TWVzc2FnZSkpKTsKKyAgICAgICAgaWYgKCF2aWRlb1NvdXJjZSkKKyAgICAgICAgICAgIHJldHVy
biBjb21wbGV0aW9uSGFuZGxlcihNZWRpYVN0cmVhbVByaXZhdGU6OmNyZWF0ZShXVEZNb3ZlKGxv
Z2dlciksIFdURk1vdmUoYXVkaW9Tb3VyY2UpLCBXVEZNb3ZlKHZpZGVvU291cmNlKSkpOworCisg
ICAgICAgIHZpZGVvU291cmNlLT53aGVuUmVhZHkoW2F1ZGlvU291cmNlID0gV1RGTW92ZShhdWRp
b1NvdXJjZSksIHZpZGVvU291cmNlLCBsb2dnZXIgPSBXVEZNb3ZlKGxvZ2dlciksIGNvbXBsZXRp
b25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKGF1dG8mJiBlcnJvck1lc3Nh
Z2UpIG11dGFibGUgeworICAgICAgICAgICAgaWYgKCFlcnJvck1lc3NhZ2UuaXNFbXB0eSgpKQor
ICAgICAgICAgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihtYWtlVW5leHBlY3RlZCht
YWtlU3RyaW5nKCJGYWlsZWQgdG8gY3JlYXRlIE1lZGlhU3RyZWFtIHZpZGVvIHNvdXJjZTogIiwg
ZXJyb3JNZXNzYWdlKSkpOworICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoTWVkaWFTdHJl
YW1Qcml2YXRlOjpjcmVhdGUoV1RGTW92ZShsb2dnZXIpLCBXVEZNb3ZlKGF1ZGlvU291cmNlKSwg
V1RGTW92ZSh2aWRlb1NvdXJjZSkpKTsKKyAgICAgICAgfSk7CisgICAgfTsKKyAgICBpZiAoIWF1
ZGlvU291cmNlKQorICAgICAgICByZXR1cm4gd2FpdEZvckF1ZGlvU291cmNlKHsgfSk7CisgICAg
YXVkaW9Tb3VyY2UtPndoZW5SZWFkeShXVEZNb3ZlKHdhaXRGb3JBdWRpb1NvdXJjZSkpOwogfQog
CiBWZWN0b3I8Q2FwdHVyZURldmljZT4gUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6Z2V0TWVk
aWFTdHJlYW1EZXZpY2VzKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9H
UFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9H
UFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAppbmRleCBiZDdkMDdmMGQzNTY5YzlmMDNhZWVl
YTU2NjYyOTI4ZjI2YjAwNjllLi5jMTA4ZGVhNTU5NWQwOTVlOWM3ODQ0YTNiY2Q0NzExMzUxYTQ4
ZjJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRv
V2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MuY3BwCkBAIC00MzEsMTggKzQzMSwxMiBAQCBib29sIEdQVUNvbm5lY3Rp
b25Ub1dlYlByb2Nlc3M6OmRpc3BhdGNoU3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25u
ZWN0aW9uLAogICAgICAgICByZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eSgpLmRpZFJlY2Vp
dmVTeW5jUGxheWVyTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyLCByZXBseUVuY29kZXIpOwog
ICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9Ci0jaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKLSAg
ICBpZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OlVzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSkgewotICAgICAgICB1
c2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5KCkuZGlkUmVjZWl2ZVN5bmNNZXNzYWdlRnJvbUdQ
VVByb2Nlc3MoY29ubmVjdGlvbiwgZGVjb2RlciwgcmVwbHlFbmNvZGVyKTsKLSAgICAgICAgcmV0
dXJuIHRydWU7Ci0gICAgfQogI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoVklERU9fVFJB
Q0spCiAgICAgaWYgKGRlY29kZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgpID09IE1lc3NhZ2VzOjpS
ZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyOjptZXNzYWdlUmVjZWl2ZXJOYW1l
KCkpIHsKICAgICAgICAgc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlcigpLmRpZFJlY2Vp
dmVTeW5jTWVzc2FnZUZyb21XZWJQcm9jZXNzKGNvbm5lY3Rpb24sIGRlY29kZXIsIHJlcGx5RW5j
b2Rlcik7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KICNlbmRpZgotI2VuZGlmCiAjaWYg
RU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKICAgICBpZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJO
YW1lKCkgPT0gTWVzc2FnZXM6OlJlbW90ZUNETUZhY3RvcnlQcm94eTo6bWVzc2FnZVJlY2VpdmVy
TmFtZSgpKSB7CiAgICAgICAgIGNkbUZhY3RvcnlQcm94eSgpLmRpZFJlY2VpdmVTeW5jTWVzc2Fn
ZUZyb21XZWJQcm9jZXNzKGNvbm5lY3Rpb24sIGRlY29kZXIsIHJlcGx5RW5jb2Rlcik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmggYi9Tb3VyY2Uv
V2ViS2l0L1BsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmgKaW5kZXggMDg0YmI5N2YxM2UzNzM4OTUw
Y2NjMjAwNzBlNzVkYWE5YWVlMDI5NS4uNTdkMGExZDg5M2NjYTgyMTc5OTMyN2RmMDJmNTFkNWM5
YTcwOWVhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQ29ubmVjdGlv
bi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uaApAQCAtODUs
NyArODUsNyBAQCBlbnVtIGNsYXNzIFdhaXRGb3JPcHRpb24gewogd2hpbGUgKDApCiAKIHRlbXBs
YXRlPHR5cGVuYW1lIEFzeW5jUmVwbHlSZXN1bHQ+IHN0cnVjdCBBc3luY1JlcGx5RXJyb3Igewot
ICAgIHN0YXRpYyBBc3luY1JlcGx5UmVzdWx0IGNyZWF0ZSgpIHsgcmV0dXJuIHsgfTsgfTsKKyAg
ICBzdGF0aWMgQXN5bmNSZXBseVJlc3VsdCBjcmVhdGUoKSB7IHJldHVybiBBc3luY1JlcGx5UmVz
dWx0IHsgfTsgfTsKIH07CiAKIGNsYXNzIE1hY2hNZXNzYWdlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclBy
b3h5LmNwcAppbmRleCBlNjFjNmIyYjUyNDYwNzlhNmIxNzgzMDhiMmUwNGYyMzVhYjgzNjVmLi5k
MWU2Yjk5ZWRmZTkwMWIxODkwMzc2ODNkMTRhMDQ0ZjQwNzBhNTJmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFu
YWdlclByb3h5LmNwcApAQCAtMTc3LDcgKzE3Nyw3IEBAIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
UHJveHk6On5Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5KCkKICAgICBtX2Nvbm5lY3Rpb25Q
cm94eS0+cmVtb3ZlTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFu
YWdlclByb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpOwogfQogCi12b2lkIFVzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyUHJveHk6OmNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhD
b25zdHJhaW50cyhSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZCwgY29uc3QgQ2FwdHVy
ZURldmljZSYgZGV2aWNlLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50
cyYgY29uc3RyYWludHMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCBzdWNjZWVkZWQsIFN0
cmluZyBpbnZhbGlkQ29uc3RyYWludHMsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0
aW5ncyYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXJQcm94eTo6Y3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRz
KFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkLCBjb25zdCBDYXB0dXJlRGV2aWNlJiBk
ZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzJiBjb25zdHJh
aW50cywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sIHN1Y2NlZWRlZCwgU3RyaW5nIGludmFs
aWRDb25zdHJhaW50cywgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiYsIFdl
YkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMmJik+JiYgY29tcGxldGlvbkhh
bmRsZXIpCiB7CiAgICAgQ2FwdHVyZVNvdXJjZU9yRXJyb3Igc291cmNlT3JFcnJvcjsKICAgICBz
d2l0Y2ggKGRldmljZS50eXBlKCkpIHsKQEAgLTIwMywxNyArMjAzLDE5IEBAIHZvaWQgVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Y3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNl
V2l0aENvbnN0cmFpCiAgICAgYm9vbCBzdWNjZWVkZWQgPSAhIXNvdXJjZU9yRXJyb3I7CiAgICAg
U3RyaW5nIGludmFsaWRDb25zdHJhaW50czsKICAgICBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291
cmNlU2V0dGluZ3Mgc2V0dGluZ3M7CisgICAgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNh
cGFiaWxpdGllcyBjYXBhYmlsaXRpZXM7CiAgICAgaWYgKHNvdXJjZU9yRXJyb3IpIHsKICAgICAg
ICAgYXV0byBzb3VyY2UgPSBzb3VyY2VPckVycm9yLnNvdXJjZSgpOwogI2lmICFSRUxFQVNFX0xP
R19ESVNBQkxFRAogICAgICAgICBzb3VyY2UtPnNldExvZ2dlcihtX2Nvbm5lY3Rpb25Qcm94eS0+
bG9nZ2VyKCksIExvZ2dlckhlbHBlcjo6dW5pcXVlTG9nSWRlbnRpZmllcigpKTsKICNlbmRpZgog
ICAgICAgICBzZXR0aW5ncyA9IHNvdXJjZS0+c2V0dGluZ3MoKTsKKyAgICAgICAgY2FwYWJpbGl0
aWVzID0gc291cmNlLT5jYXBhYmlsaXRpZXMoKTsKICAgICAgICAgQVNTRVJUKCFtX3Byb3hpZXMu
Y29udGFpbnMoaWQpKTsKICAgICAgICAgbV9wcm94aWVzLmFkZChpZCwgbWFrZVVuaXF1ZTxTb3Vy
Y2VQcm94eT4oaWQsIG1fY29ubmVjdGlvblByb3h5LT5jb25uZWN0aW9uKCksIFdURk1vdmUoc291
cmNlKSkpOwogICAgIH0gZWxzZQogICAgICAgICBpbnZhbGlkQ29uc3RyYWludHMgPSBXVEZNb3Zl
KHNvdXJjZU9yRXJyb3IuZXJyb3JNZXNzYWdlKTsKLSAgICBjb21wbGV0aW9uSGFuZGxlcihzdWNj
ZWVkZWQsIGludmFsaWRDb25zdHJhaW50cywgV1RGTW92ZShzZXR0aW5ncykpOworICAgIGNvbXBs
ZXRpb25IYW5kbGVyKHN1Y2NlZWRlZCwgaW52YWxpZENvbnN0cmFpbnRzLCBXVEZNb3ZlKHNldHRp
bmdzKSwgV1RGTW92ZShjYXBhYmlsaXRpZXMpKTsKIH0KIAogdm9pZCBVc2VyTWVkaWFDYXB0dXJl
TWFuYWdlclByb3h5OjpzdGFydFByb2R1Y2luZ0RhdGEoUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50
aWZpZXIgaWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2Nv
YS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmgKaW5kZXggZDljY2M4ZjM2MDA1NzlhNDk1
M2NmOWNlM2QxYmZmMTQ4NzhhN2MyOC4uMmNkMTAyNzEwNTlmNjM2NjljMDljMmVjOWEyMWE3MGRh
ZGMyNDRhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Nv
Y29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaApAQCAtNjQsMTQgKzY0LDEyIEBAIHB1
YmxpYzoKICAgICB2b2lkIHNldE9yaWVudGF0aW9uKHVpbnQ2NF90KTsKIAogICAgIHZvaWQgZGlk
UmVjZWl2ZU1lc3NhZ2VGcm9tR1BVUHJvY2VzcyhJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24s
IElQQzo6RGVjb2RlciYgZGVjb2RlcikgeyBkaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBk
ZWNvZGVyKTsgfQotICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlRnJvbUdQVVByb2Nlc3Mo
SVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY29kZXImIGRlY29kZXIsIHN0ZDo6
dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+JiBlbmNvZGVyKSB7IGRpZFJlY2VpdmVTeW5jTWVzc2Fn
ZShjb25uZWN0aW9uLCBkZWNvZGVyLCBlbmNvZGVyKTsgfQogCiBwcml2YXRlOgogICAgIC8vIElQ
Qzo6TWVzc2FnZVJlY2VpdmVyCiAgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5l
Y3Rpb24mLCBJUEM6OkRlY29kZXImKSBmaW5hbDsKLSAgICB2b2lkIGRpZFJlY2VpdmVTeW5jTWVz
c2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBD
OjpFbmNvZGVyPiYpIGZpbmFsOwogCi0gICAgdm9pZCBjcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1
cmVEZXZpY2VXaXRoQ29uc3RyYWludHMoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50
aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmIGRldmljZUlELCBTdHJpbmcmJiwg
Y29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
Ym9vbCBzdWNjZWVkZWQsIFN0cmluZyBpbnZhbGlkQ29uc3RyYWludHMsIFdlYkNvcmU6OlJlYWx0
aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYmKT4mJik7CisgICAgdm9pZCBjcmVhdGVNZWRpYVNvdXJj
ZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHMoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNv
dXJjZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmIGRldmljZUlELCBT
dHJpbmcmJiwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyYsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoYm9vbCBzdWNjZWVkZWQsIFN0cmluZyBpbnZhbGlkQ29uc3RyYWludHMsIFdlYkNv
cmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYmLCBXZWJDb3JlOjpSZWFsdGltZU1lZGlh
U291cmNlQ2FwYWJpbGl0aWVzJiYpPiYmKTsKICAgICB2b2lkIHN0YXJ0UHJvZHVjaW5nRGF0YShX
ZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllcik7CiAgICAgdm9pZCBzdG9wUHJv
ZHVjaW5nRGF0YShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllcik7CiAgICAg
dm9pZCBlbmQoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXJQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KaW5kZXggYmNhNTk1ZWM1NDkyODE1
MTFjMjk4MmY4MTcyZmMyODQ2YjBiZTMwYS4uYzRkNWRiNjk1Njc5MDBjMjMzOWNjMGZlNzlhMDYw
ZjYxYjM3MTUxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmlu
CkBAIC0yNCwxMSArMjQsMTAgQEAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogCiBtZXNzYWdl
cyAtPiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5IE5vdFJlZkNvdW50ZWQgewotICAgIENy
ZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50cyhXZWJDb3JlOjpS
ZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZCwgV2ViQ29yZTo6Q2FwdHVyZURldmljZSBk
ZXZpY2UsIFN0cmluZyBoYXNoU2FsdCwgc3RydWN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMg
Y29uc3RyYWludHMpIC0+IChib29sIHN1Y2Nlc3MsIFN0cmluZyBpbnZhbGlkQ29uc3RyYWludHMs
IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyBzZXR0aW5ncykgU3luY2hyb25v
dXMKKyAgICBDcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHMo
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWQsIFdlYkNvcmU6OkNhcHR1
cmVEZXZpY2UgZGV2aWNlLCBTdHJpbmcgaGFzaFNhbHQsIHN0cnVjdCBXZWJDb3JlOjpNZWRpYUNv
bnN0cmFpbnRzIGNvbnN0cmFpbnRzKSAtPiAoYm9vbCBzdWNjZXNzLCBTdHJpbmcgaW52YWxpZENv
bnN0cmFpbnRzLCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3Mgc2V0dGluZ3Ms
IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMgY2FwYWJpbGl0aWVzKSBB
c3luYwogICAgIFN0YXJ0UHJvZHVjaW5nRGF0YShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNl
SWRlbnRpZmllciBpZCkKICAgICBTdG9wUHJvZHVjaW5nRGF0YShXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlSWRlbnRpZmllciBpZCkKICAgICBFbmQoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNv
dXJjZUlkZW50aWZpZXIgaWQpCi0gICAgQ2FwYWJpbGl0aWVzKFdlYkNvcmU6OlJlYWx0aW1lTWVk
aWFTb3VyY2VJZGVudGlmaWVyIGlkKSAtPiAoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNh
cGFiaWxpdGllcyBjYXBhYmlsaXRpZXMpIFN5bmNocm9ub3VzCiAgICAgU2V0TXV0ZWQoV2ViQ29y
ZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWQsIGJvb2wgbXV0ZWQpCiAgICAgQXBw
bHlDb25zdHJhaW50cyhXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZCwg
c3RydWN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMgY29uc3RyYWludHMpCiAgICAgQ2xvbmUo
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgY2xvbmVkSUQsIFdlYkNvcmU6
OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGNsb25lSUQpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNw
cAppbmRleCAyMjE1OTE4NDBhMjFmZWMzM2RkYjFlYjUyYjYyYWM5ZDVmZjY5MDhkLi44OTRlMmEx
ZDMyYTQyMzMxZThiMWNhZmVmZWI2MjQxODEzMTI1MWQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAK
QEAgLTEwMSw2ICsxMDEsMjggQEAgcHVibGljOgogICAgICAgICB9CiAgICAgfQogCisgICAgdm9p
ZCB3aGVuUmVhZHkoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdHJpbmcpPiYmIGNhbGxiYWNrKSBm
aW5hbAorICAgIHsKKyAgICAgICAgaWYgKG1faXNSZWFkeSkKKyAgICAgICAgICAgIHJldHVybiBj
YWxsYmFjayhXVEZNb3ZlKG1fZXJyb3JNZXNzYWdlKSk7CisgICAgICAgIG1fY2FsbGJhY2sgPSBX
VEZNb3ZlKGNhbGxiYWNrKTsKKyAgICB9CisKKyAgICB2b2lkIGRpZEZhaWwoU3RyaW5nJiYgZXJy
b3JNZXNzYWdlKQorICAgIHsKKyAgICAgICAgbV9pc1JlYWR5ID0gdHJ1ZTsKKyAgICAgICAgbV9l
cnJvck1lc3NhZ2UgPSBXVEZNb3ZlKGVycm9yTWVzc2FnZSk7CisgICAgICAgIGlmIChtX2NhbGxi
YWNrKQorICAgICAgICAgICAgbV9jYWxsYmFjayhTdHJpbmcoZXJyb3JNZXNzYWdlKSk7CisgICAg
fQorCisgICAgdm9pZCBzZXRBc1JlYWR5KCkKKyAgICB7CisgICAgICAgIG1faXNSZWFkeSA9IHRy
dWU7CisgICAgICAgIGlmIChtX2NhbGxiYWNrKQorICAgICAgICAgICAgbV9jYWxsYmFjayh7IH0p
OworICAgIH0KKwogICAgIFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlJiBzdG9yYWdlKCkKICAgICB7
CiAgICAgICAgIEFTU0VSVCh0eXBlKCkgPT0gVHlwZTo6QXVkaW8pOwpAQCAtMTIzLDYgKzE0NSwx
MCBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFi
aWxpdGllcyYgY2FwYWJpbGl0aWVzKCkgZmluYWw7CisgICAgdm9pZCBzZXRDYXBhYmlsaXRpZXMo
UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyYmIGNhcGFiaWxpdGllcykKKyAgICB7Cisg
ICAgICAgIG1fY2FwYWJpbGl0aWVzID0gV1RGTW92ZShjYXBhYmlsaXRpZXMpOworICAgIH0KIAog
ICAgIGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYgc2V0dGluZ3MoKSBmaW5hbCB7
IHJldHVybiBtX3NldHRpbmdzOyB9CiAgICAgdm9pZCBzZXRTZXR0aW5ncyhSZWFsdGltZU1lZGlh
U291cmNlU2V0dGluZ3MmJiBzZXR0aW5ncykKQEAgLTIzMSw3ICsyNTcsNyBAQCBwcml2YXRlOgog
CiAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgbV9pZDsKICAgICBVc2VyTWVkaWFD
YXB0dXJlTWFuYWdlciYgbV9tYW5hZ2VyOwotICAgIG11dGFibGUgT3B0aW9uYWw8UmVhbHRpbWVN
ZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gbV9jYXBhYmlsaXRpZXM7CisgICAgUmVhbHRpbWVNZWRp
YVNvdXJjZUNhcGFiaWxpdGllcyBtX2NhcGFiaWxpdGllczsKICAgICBSZWFsdGltZU1lZGlhU291
cmNlU2V0dGluZ3MgbV9zZXR0aW5nczsKIAogICAgIENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiBt
X2Rlc2NyaXB0aW9uOwpAQCAtMjQyLDYgKzI2OCw5IEBAIHByaXZhdGU6CiAKICAgICBEZXF1ZTxB
cHBseUNvbnN0cmFpbnRzSGFuZGxlcj4gbV9wZW5kaW5nQXBwbHlDb25zdHJhaW50c0NhbGxiYWNr
czsKICAgICBib29sIG1fc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcyB7IGZhbHNlIH07CisgICAg
Ym9vbCBtX2lzUmVhZHkgeyBmYWxzZSB9OworICAgIFN0cmluZyBtX2Vycm9yTWVzc2FnZTsKKyAg
ICBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0cmluZyk+IG1fY2FsbGJhY2s7CiB9OwogCiBVc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlcjo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIoV2ViUHJvY2VzcyYg
cHJvY2VzcykKQEAgLTI5MiwyNyArMzIxLDMxIEBAIFdlYkNvcmU6OkNhcHR1cmVTb3VyY2VPckVy
cm9yIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpjcmVhdGVDYXB0dXJlU291cmNlKGNvbnN0CiAg
ICAgICAgIHJldHVybiB7IH07CiAKICAgICBhdXRvIGlkID0gUmVhbHRpbWVNZWRpYVNvdXJjZUlk
ZW50aWZpZXI6OmdlbmVyYXRlKCk7Ci0gICAgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzIHNl
dHRpbmdzOwotICAgIFN0cmluZyBlcnJvck1lc3NhZ2U7Ci0gICAgYm9vbCBzdWNjZWVkZWQ7CisK
ICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCiAgICAgYXV0byogY29ubmVjdGlvbiA9IHNob3VsZENh
cHR1cmVJbkdQVVByb2Nlc3MgPyAmbV9wcm9jZXNzLmVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9u
KCkuY29ubmVjdGlvbigpIDogbV9wcm9jZXNzLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCk7CiAj
ZWxzZQogICAgIEFTU0VSVCghc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2Vzcyk7CiAgICAgYXV0byog
Y29ubmVjdGlvbiA9IG1fcHJvY2Vzcy5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpOwogI2VuZGlm
Ci0gICAgaWYgKCFjb25uZWN0aW9uLT5zZW5kU3luYyhNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXJQcm94eTo6Q3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0
cmFpbnRzKGlkLCBkZXZpY2UsIGhhc2hTYWx0LCAqY29uc3RyYWludHMpLCBNZXNzYWdlczo6VXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Q3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2
aWNlV2l0aENvbnN0cmFpbnRzOjpSZXBseShzdWNjZWVkZWQsIGVycm9yTWVzc2FnZSwgc2V0dGlu
Z3MpLCAwKSkKLSAgICAgICAgcmV0dXJuIFdURk1vdmUoZXJyb3JNZXNzYWdlKTsKLQotICAgIGlm
ICghc3VjY2VlZGVkKQotICAgICAgICByZXR1cm4gV1RGTW92ZShlcnJvck1lc3NhZ2UpOwotCisg
ICAgCiAgICAgYXV0byB0eXBlID0gZGV2aWNlLnR5cGUoKSA9PSBDYXB0dXJlRGV2aWNlOjpEZXZp
Y2VUeXBlOjpNaWNyb3Bob25lID8gV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6
QXVkaW8gOiBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpWaWRlbzsKLSAgICBh
dXRvIHNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgU291cmNlKFN0cmluZzo6bnVtYmVyKGlkLnRvVUlu
dDY0KCkpLCB0eXBlLCBkZXZpY2UudHlwZSgpLCBTdHJpbmcgeyBzZXR0aW5ncy5sYWJlbCgpLnN0
cmluZygpIH0sIFdURk1vdmUoaGFzaFNhbHQpLCBpZCwgKnRoaXMpKTsKKyAgICBhdXRvIHNvdXJj
ZSA9IGFkb3B0UmVmKCpuZXcgU291cmNlKFN0cmluZzo6bnVtYmVyKGlkLnRvVUludDY0KCkpLCB0
eXBlLCBkZXZpY2UudHlwZSgpLCBTdHJpbmcgeyB9LCBTdHJpbmcgeyBoYXNoU2FsdCB9LCBpZCwg
KnRoaXMpKTsKICAgICBpZiAoc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcykKICAgICAgICAgc291
cmNlLT5zZXRTaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKHNob3VsZENhcHR1cmVJbkdQVVByb2Nl
c3MpOwotICAgIHNvdXJjZS0+c2V0U2V0dGluZ3MoV1RGTW92ZShzZXR0aW5ncykpOwogICAgIG1f
c291cmNlcy5hZGQoaWQsIHNvdXJjZS5jb3B5UmVmKCkpOworCisgICAgY29ubmVjdGlvbi0+c2Vu
ZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpD
cmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHMoaWQsIGRldmlj
ZSwgaGFzaFNhbHQsICpjb25zdHJhaW50cyksIFtzb3VyY2UgPSBzb3VyY2UuY29weVJlZigpXShi
b29sIHN1Y2NlZWRlZCwgYXV0byYmIGVycm9yTWVzc2FnZSwgYXV0byYmIHNldHRpbmdzLCBhdXRv
JiYgY2FwYWJpbGl0aWVzKSB7CisgICAgICAgIGlmICghc3VjY2VlZGVkKSB7CisgICAgICAgICAg
ICBzb3VyY2UtPmRpZEZhaWwoV1RGTW92ZShlcnJvck1lc3NhZ2UpKTsKKyAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICAgfQorICAgICAgICBzb3VyY2UtPnNldE5hbWUoU3RyaW5nIHsgc2V0dGlu
Z3MubGFiZWwoKS5zdHJpbmcoKSB9KTsKKyAgICAgICAgc291cmNlLT5zZXRTZXR0aW5ncyhXVEZN
b3ZlKHNldHRpbmdzKSk7CisgICAgICAgIHNvdXJjZS0+c2V0Q2FwYWJpbGl0aWVzKFdURk1vdmUo
Y2FwYWJpbGl0aWVzKSk7CisgICAgICAgIHNvdXJjZS0+c2V0QXNSZWFkeSgpOworICAgIH0pOwor
CiAgICAgcmV0dXJuIFdlYkNvcmU6OkNhcHR1cmVTb3VyY2VPckVycm9yKFdURk1vdmUoc291cmNl
KSk7CiB9CiAKQEAgLTM5OCwxMyArNDMxLDcgQEAgdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdl
cjo6U291cmNlOjpzdG9wUHJvZHVjaW5nRGF0YSgpCiAKIGNvbnN0IFdlYkNvcmU6OlJlYWx0aW1l
TWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMmIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpTb3VyY2U6
OmNhcGFiaWxpdGllcygpCiB7Ci0gICAgaWYgKCFtX2NhcGFiaWxpdGllcykgewotICAgICAgICBS
ZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzIGNhcGFiaWxpdGllczsKLSAgICAgICAgY29u
bmVjdGlvbigpLT5zZW5kU3luYyhNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94
eTo6Q2FwYWJpbGl0aWVzIHsgbV9pZCB9LCBNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXJQcm94eTo6Q2FwYWJpbGl0aWVzOjpSZXBseShjYXBhYmlsaXRpZXMpLCAwKTsKLSAgICAgICAg
bV9jYXBhYmlsaXRpZXMgPSBXVEZNb3ZlKGNhcGFiaWxpdGllcyk7Ci0gICAgfQotCi0gICAgcmV0
dXJuIG1fY2FwYWJpbGl0aWVzLnZhbHVlKCk7CisgICAgcmV0dXJuIG1fY2FwYWJpbGl0aWVzOwog
fQogCiB2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpTb3VyY2U6OmFwcGx5Q29uc3RyYWlu
dHMoY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyYgY29uc3RyYWludHMsIEFwcGx5Q29u
c3RyYWludHNIYW5kbGVyJiYgY29tcGxldGlvbkhhbmRsZXIpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>393136</attachid>
            <date>2020-03-10 05:04:53 -0700</date>
            <delta_ts>2020-03-10 05:53:45 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-208816-20200310130451.patch</filename>
            <type>text/plain</type>
            <size>24314</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU4MTk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTBhZmQyZTA3MGFkZjQ2
OTdiYmY5YTI4MGQzN2EyNjU0YmMwODgxYy4uOGYyOGNiM2RjOWFmMjViNGQ3ZTQ3NTRjNmViYzZl
OTNkMTJmZmFhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDIwLTAzLTEwICB5b3Vl
bm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgc3luYyBJUEMg
d2hlbiBjcmVhdGluZyBhIHJlbW90ZSBjYXB0dXJlIHNvdXJjZQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA4ODE2CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgRXJpYyBDYXJsc29uLgorCisgICAgICAgIEFkZCBhIHdoZW5Jbml0aWFsaXplZCBtZXRob2Qg
dG8gYWxsb3cgZm9yIGFzeW5jIGNyZWF0aW9uIG9mIHJlYWx0aW1lIG1lZGlhIHNvdXJjZS4KKyAg
ICAgICAgVXNlIHRoaXMgbWV0aG9kIHdoZW4gY3JlYXRpbmcgYSBNZWRpYVN0cmVhbSBmb3IgZ2V0
VXNlck1lZGlhL2dldERpc3BsYXlNZWRpYS4KKyAgICAgICAgQ292ZXJlZCBieSBleGlzdGluZyB0
ZXN0cy4KKworICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtUHJpdmF0
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVByaXZhdGU6OmNyZWF0ZSk6Cisg
ICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Qcml2YXRlLmg6CisgICAg
ICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oOgorICAgICAg
ICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6Y3JlYXRlTWVkaWFT
dHJlYW0pOgorCiAyMDIwLTAzLTEwICBSb2IgQnVpcyAgPHJidWlzQGlnYWxpYS5jb20+CiAKICAg
ICAgICAgQWxpZ24gd2l0aCBPcmlnaW4gaGVhZGVyIGNoYW5nZXMKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggYjcyN2Uw
M2ExZTYzZjNiMzZkY2QyZTM0NTZkYjAyMjZjYzFmZWM1Yy4uMzYzZDFkMjA2OTNmODkyZWYyMzMw
MDc1MzM3OWExYzNmNTI2ODdkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNiBAQAorMjAyMC0wMy0x
MCAgeW91ZW5uIGZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIHN5
bmMgSVBDIHdoZW4gY3JlYXRpbmcgYSByZW1vdGUgY2FwdHVyZSBzb3VyY2UKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODgxNgorCisgICAgICAgIFJl
dmlld2VkIGJ5IEVyaWMgQ2FybHNvbi4KKworICAgICAgICBVc2Ugd2hlbkluaXRpYWxpemVkIHRv
IHdhaXQgZm9yIHRoZSBhc3luYyBJUEMgdGhhdCB0ZWxscyB3aGV0aGVyIHRoZSByZW1vdGUgc291
cmNlIHdhcyBjcmVhdGVkIHN1Y2Nlc3NmdWxseS4KKyAgICAgICAgVXNlIHRoZSBhc3luYyByZXNw
b25zZSB0byBnYXRoZXIgdGhlIGNhcGFiaWxpdGllcyBzbyBhcyB0byByZW1vdmUgdGhlIGNvcnJl
c3BvbmRpbmcgc3luYyBJUEMuCisKKyAgICAgICAgKiBQbGF0Zm9ybS9JUEMvQ29ubmVjdGlvbi5o
OgorICAgICAgICAoSVBDOjpBc3luY1JlcGx5RXJyb3I6OmNyZWF0ZSk6CisgICAgICAgICogVUlQ
cm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwOgorICAgICAgICAo
V2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpjcmVhdGVNZWRpYVNvdXJjZUZv
ckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2Nv
YS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0Nv
Y29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICog
V2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpTb3VyY2U6OmRpZEZhaWwpOgorICAgICAg
ICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6U291cmNlOjpzZXRBc1JlYWR5KToK
KyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OlNvdXJjZTo6c2V0Q2Fw
YWJpbGl0aWVzKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OmNy
ZWF0ZUNhcHR1cmVTb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFu
YWdlcjo6U291cmNlOjpjYXBhYmlsaXRpZXMpOgorCiAyMDIwLTAzLTEwICBDaHJpcyBEdW1leiAg
PGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgRHJvcCB1bnVzZWQgRGlzYWJsZUlDRUNhbmRp
ZGF0ZUZpbHRlcmluZyAvIEVuYWJsZUlDRUNhbmRpZGF0ZUZpbHRlcmluZyBJUEMgbWVzc2FnZXMK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3Ry
ZWFtUHJpdmF0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRp
YVN0cmVhbVByaXZhdGUuY3BwCmluZGV4IGZjMTk5ZDFhMGVlM2FjM2FiNWI1ZGRjMGMxOGI3ZTVh
Y2YxNjJiNjYuLmFkY2YxMmIwMWVlN2FlODZjYTNkZjQ1YjI3ODE3NmNhYWQwNGYzNjQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtUHJp
dmF0ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFT
dHJlYW1Qcml2YXRlLmNwcApAQCAtNTEsMTYgKzUxLDE1IEBAIFJlZjxNZWRpYVN0cmVhbVByaXZh
dGU+IE1lZGlhU3RyZWFtUHJpdmF0ZTo6Y3JlYXRlKFJlZjxjb25zdCBMb2dnZXI+JiYgbG9nZ2Vy
LCBSCiAgICAgcmV0dXJuIE1lZGlhU3RyZWFtUHJpdmF0ZTo6Y3JlYXRlKFdURk1vdmUobG9nZ2Vy
KSwgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGVWZWN0b3I6OmZyb20oTWVkaWFTdHJlYW1UcmFja1By
aXZhdGU6OmNyZWF0ZShXVEZNb3ZlKGxvZ2dlckNvcHkpLCBXVEZNb3ZlKHNvdXJjZSkpKSk7CiB9
CiAKLVJlZjxNZWRpYVN0cmVhbVByaXZhdGU+IE1lZGlhU3RyZWFtUHJpdmF0ZTo6Y3JlYXRlKFJl
Zjxjb25zdCBMb2dnZXI+JiYgbG9nZ2VyLCBjb25zdCBWZWN0b3I8UmVmPFJlYWx0aW1lTWVkaWFT
b3VyY2U+PiYgYXVkaW9Tb3VyY2VzLCBjb25zdCBWZWN0b3I8UmVmPFJlYWx0aW1lTWVkaWFTb3Vy
Y2U+PiYgdmlkZW9Tb3VyY2VzKQorUmVmPE1lZGlhU3RyZWFtUHJpdmF0ZT4gTWVkaWFTdHJlYW1Q
cml2YXRlOjpjcmVhdGUoUmVmPGNvbnN0IExvZ2dlcj4mJiBsb2dnZXIsIFJlZlB0cjxSZWFsdGlt
ZU1lZGlhU291cmNlPiYmIGF1ZGlvU291cmNlLCBSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZT4m
JiB2aWRlb1NvdXJjZSkKIHsKICAgICBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZVZlY3RvciB0cmFj
a3M7Ci0gICAgdHJhY2tzLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkoYXVkaW9Tb3VyY2VzLnNpemUo
KSArIHZpZGVvU291cmNlcy5zaXplKCkpOworICAgIHRyYWNrcy5yZXNlcnZlSW5pdGlhbENhcGFj
aXR5KDIpOwogCi0gICAgZm9yIChhdXRvJiBzb3VyY2UgOiBhdWRpb1NvdXJjZXMpCi0gICAgICAg
IHRyYWNrcy51bmNoZWNrZWRBcHBlbmQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6OmNyZWF0ZShs
b2dnZXIuY29weVJlZigpLCBzb3VyY2UuY29weVJlZigpKSk7Ci0KLSAgICBmb3IgKGF1dG8mIHNv
dXJjZSA6IHZpZGVvU291cmNlcykKLSAgICAgICAgdHJhY2tzLnVuY2hlY2tlZEFwcGVuZChNZWRp
YVN0cmVhbVRyYWNrUHJpdmF0ZTo6Y3JlYXRlKGxvZ2dlci5jb3B5UmVmKCksIHNvdXJjZS5jb3B5
UmVmKCkpKTsKKyAgICBpZiAoYXVkaW9Tb3VyY2UpCisgICAgICAgIHRyYWNrcy51bmNoZWNrZWRB
cHBlbmQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6OmNyZWF0ZShsb2dnZXIuY29weVJlZigpLCBh
dWRpb1NvdXJjZS5yZWxlYXNlTm9uTnVsbCgpKSk7CisgICAgaWYgKHZpZGVvU291cmNlKQorICAg
ICAgICB0cmFja3MudW5jaGVja2VkQXBwZW5kKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlOjpjcmVh
dGUobG9nZ2VyLmNvcHlSZWYoKSwgdmlkZW9Tb3VyY2UucmVsZWFzZU5vbk51bGwoKSkpOwogCiAg
ICAgcmV0dXJuIE1lZGlhU3RyZWFtUHJpdmF0ZTo6Y3JlYXRlKFdURk1vdmUobG9nZ2VyKSwgdHJh
Y2tzKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L01lZGlhU3RyZWFtUHJpdmF0ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vTWVkaWFTdHJlYW1Qcml2YXRlLmgKaW5kZXggNDcwNDYzY2YyY2VlNWIwOWZlNzMwYjk5NzM3
NzA5MTA0MGQzNDZmYi4uY2U2YjcxMDg2NTExZWYyOTNiODk4NjUwOTY0NjI4ZmQ3NjhkMjNhZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJl
YW1Qcml2YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVk
aWFTdHJlYW1Qcml2YXRlLmgKQEAgLTY5LDcgKzY5LDcgQEAgcHVibGljOgogICAgIH07CiAKICAg
ICBzdGF0aWMgUmVmPE1lZGlhU3RyZWFtUHJpdmF0ZT4gY3JlYXRlKFJlZjxjb25zdCBMb2dnZXI+
JiYsIFJlZjxSZWFsdGltZU1lZGlhU291cmNlPiYmKTsKLSAgICBzdGF0aWMgUmVmPE1lZGlhU3Ry
ZWFtUHJpdmF0ZT4gY3JlYXRlKFJlZjxjb25zdCBMb2dnZXI+JiYsIGNvbnN0IFZlY3RvcjxSZWY8
UmVhbHRpbWVNZWRpYVNvdXJjZT4+JiBhdWRpb1NvdXJjZXMsIGNvbnN0IFZlY3RvcjxSZWY8UmVh
bHRpbWVNZWRpYVNvdXJjZT4+JiB2aWRlb1NvdXJjZXMpOworICAgIHN0YXRpYyBSZWY8TWVkaWFT
dHJlYW1Qcml2YXRlPiBjcmVhdGUoUmVmPGNvbnN0IExvZ2dlcj4mJiwgUmVmUHRyPFJlYWx0aW1l
TWVkaWFTb3VyY2U+JiYgYXVkaW9Tb3VyY2UsIFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlPiYm
IHZpZGVvU291cmNlKTsKICAgICBzdGF0aWMgUmVmPE1lZGlhU3RyZWFtUHJpdmF0ZT4gY3JlYXRl
KFJlZjxjb25zdCBMb2dnZXI+JiYgbG9nZ2VyLCBjb25zdCBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0
ZVZlY3RvciYgdHJhY2tzLCBTdHJpbmcmJiBpZCA9IGNyZWF0ZUNhbm9uaWNhbFVVSURTdHJpbmco
KSkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBNZWRpYVN0cmVhbVByaXZhdGUoV1RGTW92ZShsb2dn
ZXIpLCB0cmFja3MsIFdURk1vdmUoaWQpKSk7IH0KIAogICAgIHZpcnR1YWwgfk1lZGlhU3RyZWFt
UHJpdmF0ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oCmluZGV4IDlmYWYwOTA1ZGQ0YWE1OGE2MmEyYmZk
ZTQwMTk2ZDUxM2UxNDQ5MDQuLjM5Yjk5NzYxZmI0MWVlMTZkNDhkMzg1Y2UxZTNiZDQ0NDYwMTRh
MmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0
aW1lTWVkaWFTb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9SZWFsdGltZU1lZGlhU291cmNlLmgKQEAgLTQyLDYgKzQyLDcgQEAKICNpbmNsdWRlICJQbGF0
Zm9ybUxheWVyLmgiCiAjaW5jbHVkZSAiUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcy5o
IgogI2luY2x1ZGUgIlJlYWx0aW1lTWVkaWFTb3VyY2VGYWN0b3J5LmgiCisjaW5jbHVkZSA8d3Rm
L0NvbXBsZXRpb25IYW5kbGVyLmg+CiAjaW5jbHVkZSA8d3RmL0xvZ2dlckhlbHBlci5oPgogI2lu
Y2x1ZGUgPHd0Zi9SZWN1cnNpdmVMb2NrQWRhcHRlci5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRT
YWZlUmVmQ291bnRlZC5oPgpAQCAtMTA3LDYgKzEwOCw4IEBAIHB1YmxpYzoKICAgICBlbnVtIGNs
YXNzIFR5cGUgeyBOb25lLCBBdWRpbywgVmlkZW8gfTsKICAgICBUeXBlIHR5cGUoKSBjb25zdCB7
IHJldHVybiBtX3R5cGU7IH0KIAorICAgIHZpcnR1YWwgdm9pZCB3aGVuUmVhZHkoQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChTdHJpbmcpPiYmKTsKKwogICAgIGJvb2wgaXNQcm9kdWNpbmdEYXRhKCkg
Y29uc3QgeyByZXR1cm4gbV9pc1Byb2R1Y2luZ0RhdGE7IH0KICAgICB2b2lkIHN0YXJ0KCk7CiAg
ICAgdm9pZCBzdG9wKCk7CkBAIC0yODMsNiArMjg2LDExIEBAIHN0cnVjdCBDYXB0dXJlU291cmNl
T3JFcnJvciB7CiAKIFN0cmluZyBjb252ZXJ0RW51bWVyYXRpb25Ub1N0cmluZyhSZWFsdGltZU1l
ZGlhU291cmNlOjpUeXBlKTsKIAoraW5saW5lIHZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZTo6d2hl
blJlYWR5KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nKT4mJiBjYWxsYmFjaykKK3sKKyAg
ICBjYWxsYmFjayh7IH0pOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKIG5hbWVzcGFj
ZSBXVEYgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcAppbmRleCA3N2Q5ODdhYzMx
ZGM0NzcxODk4M2VhOGM2YThjYWUxZDI5MDU0N2M1Li5kYzQ4YTc1NmY3Y2FjOWZmY2Q4ZjVmZWE0
ODExZDYyYzUxNjBiYmU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcApAQCAt
NzAsNDAgKzcwLDQ3IEBAIHZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6Y3JlYXRlTWVk
aWFTdHJlYW0oUmVmPGNvbnN0IExvZ2dlcj4mJiBsb2dnZXIsIE5lCiAgICAgVmVjdG9yPFJlZjxS
ZWFsdGltZU1lZGlhU291cmNlPj4gdmlkZW9Tb3VyY2VzOwogICAgIFN0cmluZyBpbnZhbGlkQ29u
c3RyYWludDsKIAorICAgIFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlPiBhdWRpb1NvdXJjZTsK
ICAgICBpZiAoYXVkaW9EZXZpY2UpIHsKLSAgICAgICAgYXV0byBhdWRpb1NvdXJjZSA9IGF1ZGlv
Q2FwdHVyZUZhY3RvcnkoKS5jcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoV1RGTW92ZShhdWRpb0Rl
dmljZSksIFN0cmluZyB7IGhhc2hTYWx0IH0sICZyZXF1ZXN0LmF1ZGlvQ29uc3RyYWludHMpOwot
ICAgICAgICBpZiAoYXVkaW9Tb3VyY2UpCi0gICAgICAgICAgICBhdWRpb1NvdXJjZXMuYXBwZW5k
KGF1ZGlvU291cmNlLnNvdXJjZSgpKTsKLSAgICAgICAgZWxzZSB7Ci0jaWYgIUxPR19ESVNBQkxF
RAotICAgICAgICAgICAgaWYgKCFhdWRpb1NvdXJjZS5lcnJvck1lc3NhZ2UuaXNFbXB0eSgpKQot
ICAgICAgICAgICAgICAgIExPRyhNZWRpYSwgIlJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OmNy
ZWF0ZU1lZGlhU3RyZWFtKCVwKSwgYXVkaW8gY29uc3RyYWludHMgZmFpbGVkIHRvIGFwcGx5OiAl
cyIsIHRoaXMsIGF1ZGlvU291cmNlLmVycm9yTWVzc2FnZS51dGY4KCkuZGF0YSgpKTsKLSNlbmRp
ZgotICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIobWFrZVVuZXhwZWN0ZWQobWFrZVN0cmlu
ZygiRmFpbGVkIHRvIGNyZWF0ZSBNZWRpYVN0cmVhbSBhdWRpbyBzb3VyY2U6ICIsIGF1ZGlvU291
cmNlLmVycm9yTWVzc2FnZSkpKTsKKyAgICAgICAgYXV0byBzb3VyY2UgPSBhdWRpb0NhcHR1cmVG
YWN0b3J5KCkuY3JlYXRlQXVkaW9DYXB0dXJlU291cmNlKFdURk1vdmUoYXVkaW9EZXZpY2UpLCBT
dHJpbmcgeyBoYXNoU2FsdCB9LCAmcmVxdWVzdC5hdWRpb0NvbnN0cmFpbnRzKTsKKyAgICAgICAg
aWYgKCFzb3VyY2UpIHsKKyAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKG1ha2VVbmV4cGVj
dGVkKG1ha2VTdHJpbmcoIkZhaWxlZCB0byBjcmVhdGUgTWVkaWFTdHJlYW0gYXVkaW8gc291cmNl
OiAiLCBzb3VyY2UuZXJyb3JNZXNzYWdlKSkpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAg
ICB9CisgICAgICAgIGF1ZGlvU291cmNlID0gc291cmNlLnNvdXJjZSgpOwogICAgIH0KIAorICAg
IFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlPiB2aWRlb1NvdXJjZTsKICAgICBpZiAodmlkZW9E
ZXZpY2UpIHsKLSAgICAgICAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgdmlkZW9Tb3VyY2U7CisgICAg
ICAgIENhcHR1cmVTb3VyY2VPckVycm9yIHNvdXJjZTsKICAgICAgICAgaWYgKHZpZGVvRGV2aWNl
LnR5cGUoKSA9PSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpDYW1lcmEpCi0gICAgICAgICAg
ICB2aWRlb1NvdXJjZSA9IHZpZGVvQ2FwdHVyZUZhY3RvcnkoKS5jcmVhdGVWaWRlb0NhcHR1cmVT
b3VyY2UoV1RGTW92ZSh2aWRlb0RldmljZSksIFdURk1vdmUoaGFzaFNhbHQpLCAmcmVxdWVzdC52
aWRlb0NvbnN0cmFpbnRzKTsKKyAgICAgICAgICAgIHNvdXJjZSA9IHZpZGVvQ2FwdHVyZUZhY3Rv
cnkoKS5jcmVhdGVWaWRlb0NhcHR1cmVTb3VyY2UoV1RGTW92ZSh2aWRlb0RldmljZSksIFdURk1v
dmUoaGFzaFNhbHQpLCAmcmVxdWVzdC52aWRlb0NvbnN0cmFpbnRzKTsKICAgICAgICAgZWxzZQot
ICAgICAgICAgICAgdmlkZW9Tb3VyY2UgPSBkaXNwbGF5Q2FwdHVyZUZhY3RvcnkoKS5jcmVhdGVE
aXNwbGF5Q2FwdHVyZVNvdXJjZShXVEZNb3ZlKHZpZGVvRGV2aWNlKSwgJnJlcXVlc3QudmlkZW9D
b25zdHJhaW50cyk7Ci0KLSAgICAgICAgaWYgKHZpZGVvU291cmNlKQotICAgICAgICAgICAgdmlk
ZW9Tb3VyY2VzLmFwcGVuZCh2aWRlb1NvdXJjZS5zb3VyY2UoKSk7Ci0gICAgICAgIGVsc2Ugewot
I2lmICFMT0dfRElTQUJMRUQKLSAgICAgICAgICAgIGlmICghdmlkZW9Tb3VyY2UuZXJyb3JNZXNz
YWdlLmlzRW1wdHkoKSkKLSAgICAgICAgICAgICAgICBMT0coTWVkaWEsICJSZWFsdGltZU1lZGlh
U291cmNlQ2VudGVyOjpjcmVhdGVNZWRpYVN0cmVhbSglcCksIHZpZGVvIGNvbnN0cmFpbnRzIGZh
aWxlZCB0byBhcHBseTogJXMiLCB0aGlzLCB2aWRlb1NvdXJjZS5lcnJvck1lc3NhZ2UudXRmOCgp
LmRhdGEoKSk7Ci0jZW5kaWYKLSAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKG1ha2VVbmV4
cGVjdGVkKG1ha2VTdHJpbmcoIkZhaWxlZCB0byBjcmVhdGUgTWVkaWFTdHJlYW0gdmlkZW8gc291
cmNlOiAiLCB2aWRlb1NvdXJjZS5lcnJvck1lc3NhZ2UpKSk7CisgICAgICAgICAgICBzb3VyY2Ug
PSBkaXNwbGF5Q2FwdHVyZUZhY3RvcnkoKS5jcmVhdGVEaXNwbGF5Q2FwdHVyZVNvdXJjZShXVEZN
b3ZlKHZpZGVvRGV2aWNlKSwgJnJlcXVlc3QudmlkZW9Db25zdHJhaW50cyk7CisKKyAgICAgICAg
aWYgKCFzb3VyY2UpIHsKKyAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKG1ha2VVbmV4cGVj
dGVkKG1ha2VTdHJpbmcoIkZhaWxlZCB0byBjcmVhdGUgTWVkaWFTdHJlYW0gdmlkZW8gc291cmNl
OiAiLCBzb3VyY2UuZXJyb3JNZXNzYWdlKSkpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAg
ICB9CisgICAgICAgIHZpZGVvU291cmNlID0gc291cmNlLnNvdXJjZSgpOwogICAgIH0KIAotICAg
IGNvbXBsZXRpb25IYW5kbGVyKE1lZGlhU3RyZWFtUHJpdmF0ZTo6Y3JlYXRlKFdURk1vdmUobG9n
Z2VyKSwgYXVkaW9Tb3VyY2VzLCB2aWRlb1NvdXJjZXMpKTsKKyAgICBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKFN0cmluZyYmKT4gd2hlbkF1ZGlvU291cmNlUmVhZHkgPSBbYXVkaW9Tb3VyY2UsIHZp
ZGVvU291cmNlID0gV1RGTW92ZSh2aWRlb1NvdXJjZSksIGxvZ2dlciA9IFdURk1vdmUobG9nZ2Vy
KSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oYXV0byYm
IGVycm9yTWVzc2FnZSkgbXV0YWJsZSB7CisgICAgICAgIGlmICghZXJyb3JNZXNzYWdlLmlzRW1w
dHkoKSkKKyAgICAgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihtYWtlVW5leHBlY3Rl
ZChtYWtlU3RyaW5nKCJGYWlsZWQgdG8gY3JlYXRlIE1lZGlhU3RyZWFtIGF1ZGlvIHNvdXJjZTog
IiwgZXJyb3JNZXNzYWdlKSkpOworICAgICAgICBpZiAoIXZpZGVvU291cmNlKQorICAgICAgICAg
ICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKE1lZGlhU3RyZWFtUHJpdmF0ZTo6Y3JlYXRlKFdU
Rk1vdmUobG9nZ2VyKSwgV1RGTW92ZShhdWRpb1NvdXJjZSksIFdURk1vdmUodmlkZW9Tb3VyY2Up
KSk7CisKKyAgICAgICAgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdHJpbmcmJik+IHdoZW5WaWRl
b1NvdXJjZVJlYWR5ID0gW2F1ZGlvU291cmNlID0gV1RGTW92ZShhdWRpb1NvdXJjZSksIHZpZGVv
U291cmNlLCBsb2dnZXIgPSBXVEZNb3ZlKGxvZ2dlciksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RG
TW92ZShjb21wbGV0aW9uSGFuZGxlcildKGF1dG8mJiBlcnJvck1lc3NhZ2UpIG11dGFibGUgewor
ICAgICAgICAgICAgaWYgKCFlcnJvck1lc3NhZ2UuaXNFbXB0eSgpKQorICAgICAgICAgICAgICAg
IHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihtYWtlVW5leHBlY3RlZChtYWtlU3RyaW5nKCJGYWls
ZWQgdG8gY3JlYXRlIE1lZGlhU3RyZWFtIHZpZGVvIHNvdXJjZTogIiwgZXJyb3JNZXNzYWdlKSkp
OworICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoTWVkaWFTdHJlYW1Qcml2YXRlOjpjcmVh
dGUoV1RGTW92ZShsb2dnZXIpLCBXVEZNb3ZlKGF1ZGlvU291cmNlKSwgV1RGTW92ZSh2aWRlb1Nv
dXJjZSkpKTsKKyAgICAgICAgfTsKKyAgICAgICAgdmlkZW9Tb3VyY2UtPndoZW5SZWFkeShXVEZN
b3ZlKHdoZW5WaWRlb1NvdXJjZVJlYWR5KSk7CisgICAgfTsKKyAgICBpZiAoIWF1ZGlvU291cmNl
KQorICAgICAgICByZXR1cm4gd2hlbkF1ZGlvU291cmNlUmVhZHkoeyB9KTsKKyAgICBhdWRpb1Nv
dXJjZS0+d2hlblJlYWR5KFdURk1vdmUod2hlbkF1ZGlvU291cmNlUmVhZHkpKTsKIH0KIAogVmVj
dG9yPENhcHR1cmVEZXZpY2U+IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OmdldE1lZGlhU3Ry
ZWFtRGV2aWNlcygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29u
bmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29u
bmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKaW5kZXggYmQ3ZDA3ZjBkMzU2OWM5ZjAzYWVlZWE1NjY2
MjkyOGYyNmIwMDY5ZS4uYzEwOGRlYTU1OTVkMDk1ZTljNzg0NGEzYmNkNDcxMTM1MWE0OGYyYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzLmNwcApAQCAtNDMxLDE4ICs0MzEsMTIgQEAgYm9vbCBHUFVDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzOjpkaXNwYXRjaFN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlv
biwKICAgICAgICAgcmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkoKS5kaWRSZWNlaXZlU3lu
Y1BsYXllck1lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2RlciwgcmVwbHlFbmNvZGVyKTsKICAgICAg
ICAgcmV0dXJuIHRydWU7CiAgICAgfQotI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCi0gICAgaWYg
KGRlY29kZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgpID09IE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0
dXJlTWFuYWdlclByb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpIHsKLSAgICAgICAgdXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXJQcm94eSgpLmRpZFJlY2VpdmVTeW5jTWVzc2FnZUZyb21HUFVQcm9j
ZXNzKGNvbm5lY3Rpb24sIGRlY29kZXIsIHJlcGx5RW5jb2Rlcik7Ci0gICAgICAgIHJldHVybiB0
cnVlOwotICAgIH0KICNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKFZJREVPX1RSQUNLKQog
ICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6UmVtb3Rl
U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7
CiAgICAgICAgIHNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIoKS5kaWRSZWNlaXZlU3lu
Y01lc3NhZ2VGcm9tV2ViUHJvY2Vzcyhjb25uZWN0aW9uLCBkZWNvZGVyLCByZXBseUVuY29kZXIp
OwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAjZW5kaWYKLSNlbmRpZgogI2lmIEVOQUJM
RShFTkNSWVBURURfTUVESUEpCiAgICAgaWYgKGRlY29kZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgp
ID09IE1lc3NhZ2VzOjpSZW1vdGVDRE1GYWN0b3J5UHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUo
KSkgewogICAgICAgICBjZG1GYWN0b3J5UHJveHkoKS5kaWRSZWNlaXZlU3luY01lc3NhZ2VGcm9t
V2ViUHJvY2Vzcyhjb25uZWN0aW9uLCBkZWNvZGVyLCByZXBseUVuY29kZXIpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktp
dC9QbGF0Zm9ybS9JUEMvQ29ubmVjdGlvbi5oCmluZGV4IDA4NGJiOTdmMTNlMzczODk1MGNjYzIw
MDcwZTc1ZGFhOWFlZTAyOTUuLjU3ZDBhMWQ4OTNjY2E4MjE3OTkzMjdkZjAyZjUxZDVjOWE3MDll
YTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmgKQEAgLTg1LDcgKzg1
LDcgQEAgZW51bSBjbGFzcyBXYWl0Rm9yT3B0aW9uIHsKIHdoaWxlICgwKQogCiB0ZW1wbGF0ZTx0
eXBlbmFtZSBBc3luY1JlcGx5UmVzdWx0PiBzdHJ1Y3QgQXN5bmNSZXBseUVycm9yIHsKLSAgICBz
dGF0aWMgQXN5bmNSZXBseVJlc3VsdCBjcmVhdGUoKSB7IHJldHVybiB7IH07IH07CisgICAgc3Rh
dGljIEFzeW5jUmVwbHlSZXN1bHQgY3JlYXRlKCkgeyByZXR1cm4gQXN5bmNSZXBseVJlc3VsdCB7
IH07IH07CiB9OwogCiBjbGFzcyBNYWNoTWVzc2FnZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5j
cHAKaW5kZXggZTYxYzZiMmI1MjQ2MDc5YTZiMTc4MzA4YjJlMDRmMjM1YWI4MzY1Zi4uZDFlNmI5
OWVkZmU5MDFiMTg5MDM3NjgzZDE0YTA0NGY0MDcwYTUyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQ
cm94eS5jcHAKQEAgLTE3Nyw3ICsxNzcsNyBAQCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5
Ojp+VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eSgpCiAgICAgbV9jb25uZWN0aW9uUHJveHkt
PnJlbW92ZU1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQ
cm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKTsKIH0KIAotdm9pZCBVc2VyTWVkaWFDYXB0dXJl
TWFuYWdlclByb3h5OjpjcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3Ry
YWludHMoUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWQsIGNvbnN0IENhcHR1cmVEZXZp
Y2UmIGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMmIGNv
bnN0cmFpbnRzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wgc3VjY2VlZGVkLCBTdHJpbmcg
aW52YWxpZENvbnN0cmFpbnRzLCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3Mm
Jik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJv
eHk6OmNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50cyhSZWFs
dGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZCwgY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNl
LCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyYgY29uc3RyYWludHMs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCBzdWNjZWVkZWQsIFN0cmluZyBpbnZhbGlkQ29u
c3RyYWludHMsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYmLCBXZWJDb3Jl
OjpSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzJiYpPiYmIGNvbXBsZXRpb25IYW5kbGVy
KQogewogICAgIENhcHR1cmVTb3VyY2VPckVycm9yIHNvdXJjZU9yRXJyb3I7CiAgICAgc3dpdGNo
IChkZXZpY2UudHlwZSgpKSB7CkBAIC0yMDMsMTcgKzIwMywxOSBAQCB2b2lkIFVzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyUHJveHk6OmNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhD
b25zdHJhaQogICAgIGJvb2wgc3VjY2VlZGVkID0gISFzb3VyY2VPckVycm9yOwogICAgIFN0cmlu
ZyBpbnZhbGlkQ29uc3RyYWludHM7CiAgICAgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNl
dHRpbmdzIHNldHRpbmdzOworICAgIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmls
aXRpZXMgY2FwYWJpbGl0aWVzOwogICAgIGlmIChzb3VyY2VPckVycm9yKSB7CiAgICAgICAgIGF1
dG8gc291cmNlID0gc291cmNlT3JFcnJvci5zb3VyY2UoKTsKICNpZiAhUkVMRUFTRV9MT0dfRElT
QUJMRUQKICAgICAgICAgc291cmNlLT5zZXRMb2dnZXIobV9jb25uZWN0aW9uUHJveHktPmxvZ2dl
cigpLCBMb2dnZXJIZWxwZXI6OnVuaXF1ZUxvZ0lkZW50aWZpZXIoKSk7CiAjZW5kaWYKICAgICAg
ICAgc2V0dGluZ3MgPSBzb3VyY2UtPnNldHRpbmdzKCk7CisgICAgICAgIGNhcGFiaWxpdGllcyA9
IHNvdXJjZS0+Y2FwYWJpbGl0aWVzKCk7CiAgICAgICAgIEFTU0VSVCghbV9wcm94aWVzLmNvbnRh
aW5zKGlkKSk7CiAgICAgICAgIG1fcHJveGllcy5hZGQoaWQsIG1ha2VVbmlxdWU8U291cmNlUHJv
eHk+KGlkLCBtX2Nvbm5lY3Rpb25Qcm94eS0+Y29ubmVjdGlvbigpLCBXVEZNb3ZlKHNvdXJjZSkp
KTsKICAgICB9IGVsc2UKICAgICAgICAgaW52YWxpZENvbnN0cmFpbnRzID0gV1RGTW92ZShzb3Vy
Y2VPckVycm9yLmVycm9yTWVzc2FnZSk7Ci0gICAgY29tcGxldGlvbkhhbmRsZXIoc3VjY2VlZGVk
LCBpbnZhbGlkQ29uc3RyYWludHMsIFdURk1vdmUoc2V0dGluZ3MpKTsKKyAgICBjb21wbGV0aW9u
SGFuZGxlcihzdWNjZWVkZWQsIGludmFsaWRDb25zdHJhaW50cywgV1RGTW92ZShzZXR0aW5ncyks
IFdURk1vdmUoY2FwYWJpbGl0aWVzKSk7CiB9CiAKIHZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXJQcm94eTo6c3RhcnRQcm9kdWNpbmdEYXRhKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVy
IGlkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oCmluZGV4IGQ5Y2NjOGYzNjAwNTc5YTQ5NTNjZjlj
ZTNkMWJmZjE0ODc4YTdjMjguLjJjZDEwMjcxMDU5ZjYzNjY5YzA5YzJlYzlhMjFhNzBkYWRjMjQ0
YWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9V
c2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmgKQEAgLTY0LDE0ICs2NCwxMiBAQCBwdWJsaWM6
CiAgICAgdm9pZCBzZXRPcmllbnRhdGlvbih1aW50NjRfdCk7CiAKICAgICB2b2lkIGRpZFJlY2Vp
dmVNZXNzYWdlRnJvbUdQVVByb2Nlc3MoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6
OkRlY29kZXImIGRlY29kZXIpIHsgZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rl
cik7IH0KLSAgICB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZUZyb21HUFVQcm9jZXNzKElQQzo6
Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBzdGQ6OnVuaXF1
ZV9wdHI8SVBDOjpFbmNvZGVyPiYgZW5jb2RlcikgeyBkaWRSZWNlaXZlU3luY01lc3NhZ2UoY29u
bmVjdGlvbiwgZGVjb2RlciwgZW5jb2Rlcik7IH0KIAogcHJpdmF0ZToKICAgICAvLyBJUEM6Ok1l
c3NhZ2VSZWNlaXZlcgogICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9u
JiwgSVBDOjpEZWNvZGVyJikgZmluYWw7Ci0gICAgdm9pZCBkaWRSZWNlaXZlU3luY01lc3NhZ2Uo
SVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5j
b2Rlcj4mKSBmaW5hbDsKIAotICAgIHZvaWQgY3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2
aWNlV2l0aENvbnN0cmFpbnRzKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVy
LCBjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiBkZXZpY2VJRCwgU3RyaW5nJiYsIGNvbnN0
IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wg
c3VjY2VlZGVkLCBTdHJpbmcgaW52YWxpZENvbnN0cmFpbnRzLCBXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlU2V0dGluZ3MmJik+JiYpOworICAgIHZvaWQgY3JlYXRlTWVkaWFTb3VyY2VGb3JD
YXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJ
ZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiBkZXZpY2VJRCwgU3RyaW5n
JiYsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMmLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKGJvb2wgc3VjY2VlZGVkLCBTdHJpbmcgaW52YWxpZENvbnN0cmFpbnRzLCBXZWJDb3JlOjpS
ZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmJiwgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJj
ZUNhcGFiaWxpdGllcyYmKT4mJik7CiAgICAgdm9pZCBzdGFydFByb2R1Y2luZ0RhdGEoV2ViQ29y
ZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIpOwogICAgIHZvaWQgc3RvcFByb2R1Y2lu
Z0RhdGEoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIpOwogICAgIHZvaWQg
ZW5kKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJv
eHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFD
YXB0dXJlTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IGJjYTU5NWVjNTQ5MjgxNTExYzI5
ODJmODE3MmZjMjg0NmIwYmUzMGEuLmM0ZDVkYjY5NTY3OTAwYzIzMzljYzBmZTc5YTA2MGY2MWIz
NzE1MTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgpAQCAt
MjQsMTEgKzI0LDEwIEBACiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKIAogbWVzc2FnZXMgLT4g
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eSBOb3RSZWZDb3VudGVkIHsKLSAgICBDcmVhdGVN
ZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHMoV2ViQ29yZTo6UmVhbHRp
bWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWQsIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UgZGV2aWNl
LCBTdHJpbmcgaGFzaFNhbHQsIHN0cnVjdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzIGNvbnN0
cmFpbnRzKSAtPiAoYm9vbCBzdWNjZXNzLCBTdHJpbmcgaW52YWxpZENvbnN0cmFpbnRzLCBXZWJD
b3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3Mgc2V0dGluZ3MpIFN5bmNocm9ub3VzCisg
ICAgQ3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKFdlYkNv
cmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkLCBXZWJDb3JlOjpDYXB0dXJlRGV2
aWNlIGRldmljZSwgU3RyaW5nIGhhc2hTYWx0LCBzdHJ1Y3QgV2ViQ29yZTo6TWVkaWFDb25zdHJh
aW50cyBjb25zdHJhaW50cykgLT4gKGJvb2wgc3VjY2VzcywgU3RyaW5nIGludmFsaWRDb25zdHJh
aW50cywgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzIHNldHRpbmdzLCBXZWJD
b3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzIGNhcGFiaWxpdGllcykgQXN5bmMK
ICAgICBTdGFydFByb2R1Y2luZ0RhdGEoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50
aWZpZXIgaWQpCiAgICAgU3RvcFByb2R1Y2luZ0RhdGEoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNv
dXJjZUlkZW50aWZpZXIgaWQpCiAgICAgRW5kKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJ
ZGVudGlmaWVyIGlkKQotICAgIENhcGFiaWxpdGllcyhXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291
cmNlSWRlbnRpZmllciBpZCkgLT4gKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmls
aXRpZXMgY2FwYWJpbGl0aWVzKSBTeW5jaHJvbm91cwogICAgIFNldE11dGVkKFdlYkNvcmU6OlJl
YWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkLCBib29sIG11dGVkKQogICAgIEFwcGx5Q29u
c3RyYWludHMoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWQsIHN0cnVj
dCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzIGNvbnN0cmFpbnRzKQogICAgIENsb25lKFdlYkNv
cmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGNsb25lZElELCBXZWJDb3JlOjpSZWFs
dGltZU1lZGlhU291cmNlSWRlbnRpZmllciBjbG9uZUlEKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAKaW5k
ZXggMjIxNTkxODQwYTIxZmVjMzNkZGIxZWI1MmI2MmFjOWQ1ZmY2OTA4ZC4uODk0ZTJhMWQzMmE0
MjMzMWU4YjFjYWZlZmViNjI0MTgxMzEyNTFkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwCkBAIC0x
MDEsNiArMTAxLDI4IEBAIHB1YmxpYzoKICAgICAgICAgfQogICAgIH0KIAorICAgIHZvaWQgd2hl
blJlYWR5KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nKT4mJiBjYWxsYmFjaykgZmluYWwK
KyAgICB7CisgICAgICAgIGlmIChtX2lzUmVhZHkpCisgICAgICAgICAgICByZXR1cm4gY2FsbGJh
Y2soV1RGTW92ZShtX2Vycm9yTWVzc2FnZSkpOworICAgICAgICBtX2NhbGxiYWNrID0gV1RGTW92
ZShjYWxsYmFjayk7CisgICAgfQorCisgICAgdm9pZCBkaWRGYWlsKFN0cmluZyYmIGVycm9yTWVz
c2FnZSkKKyAgICB7CisgICAgICAgIG1faXNSZWFkeSA9IHRydWU7CisgICAgICAgIG1fZXJyb3JN
ZXNzYWdlID0gV1RGTW92ZShlcnJvck1lc3NhZ2UpOworICAgICAgICBpZiAobV9jYWxsYmFjaykK
KyAgICAgICAgICAgIG1fY2FsbGJhY2soU3RyaW5nKGVycm9yTWVzc2FnZSkpOworICAgIH0KKwor
ICAgIHZvaWQgc2V0QXNSZWFkeSgpCisgICAgeworICAgICAgICBtX2lzUmVhZHkgPSB0cnVlOwor
ICAgICAgICBpZiAobV9jYWxsYmFjaykKKyAgICAgICAgICAgIG1fY2FsbGJhY2soeyB9KTsKKyAg
ICB9CisKICAgICBTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZSYgc3RvcmFnZSgpCiAgICAgewogICAg
ICAgICBBU1NFUlQodHlwZSgpID09IFR5cGU6OkF1ZGlvKTsKQEAgLTEyMyw2ICsxNDUsMTAgQEAg
cHVibGljOgogICAgIH0KIAogICAgIGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRp
ZXMmIGNhcGFiaWxpdGllcygpIGZpbmFsOworICAgIHZvaWQgc2V0Q2FwYWJpbGl0aWVzKFJlYWx0
aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMmJiBjYXBhYmlsaXRpZXMpCisgICAgeworICAgICAg
ICBtX2NhcGFiaWxpdGllcyA9IFdURk1vdmUoY2FwYWJpbGl0aWVzKTsKKyAgICB9CiAKICAgICBj
b25zdCBSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmIHNldHRpbmdzKCkgZmluYWwgeyByZXR1
cm4gbV9zZXR0aW5nczsgfQogICAgIHZvaWQgc2V0U2V0dGluZ3MoUmVhbHRpbWVNZWRpYVNvdXJj
ZVNldHRpbmdzJiYgc2V0dGluZ3MpCkBAIC0yMzEsNyArMjU3LDcgQEAgcHJpdmF0ZToKIAogICAg
IFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIG1faWQ7CiAgICAgVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXImIG1fbWFuYWdlcjsKLSAgICBtdXRhYmxlIE9wdGlvbmFsPFJlYWx0aW1lTWVkaWFT
b3VyY2VDYXBhYmlsaXRpZXM+IG1fY2FwYWJpbGl0aWVzOworICAgIFJlYWx0aW1lTWVkaWFTb3Vy
Y2VDYXBhYmlsaXRpZXMgbV9jYXBhYmlsaXRpZXM7CiAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZVNl
dHRpbmdzIG1fc2V0dGluZ3M7CiAKICAgICBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24gbV9kZXNj
cmlwdGlvbjsKQEAgLTI0Miw2ICsyNjgsOSBAQCBwcml2YXRlOgogCiAgICAgRGVxdWU8QXBwbHlD
b25zdHJhaW50c0hhbmRsZXI+IG1fcGVuZGluZ0FwcGx5Q29uc3RyYWludHNDYWxsYmFja3M7CiAg
ICAgYm9vbCBtX3Nob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MgeyBmYWxzZSB9OworICAgIGJvb2wg
bV9pc1JlYWR5IHsgZmFsc2UgfTsKKyAgICBTdHJpbmcgbV9lcnJvck1lc3NhZ2U7CisgICAgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChTdHJpbmcpPiBtX2NhbGxiYWNrOwogfTsKIAogVXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXI6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyKFdlYlByb2Nlc3MmIHByb2Nl
c3MpCkBAIC0yOTIsMjcgKzMyMSwzMSBAQCBXZWJDb3JlOjpDYXB0dXJlU291cmNlT3JFcnJvciBV
c2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6Y3JlYXRlQ2FwdHVyZVNvdXJjZShjb25zdAogICAgICAg
ICByZXR1cm4geyB9OwogCiAgICAgYXV0byBpZCA9IFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlm
aWVyOjpnZW5lcmF0ZSgpOwotICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyBzZXR0aW5n
czsKLSAgICBTdHJpbmcgZXJyb3JNZXNzYWdlOwotICAgIGJvb2wgc3VjY2VlZGVkOworCiAjaWYg
RU5BQkxFKEdQVV9QUk9DRVNTKQogICAgIGF1dG8qIGNvbm5lY3Rpb24gPSBzaG91bGRDYXB0dXJl
SW5HUFVQcm9jZXNzID8gJm1fcHJvY2Vzcy5lbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbigpLmNv
bm5lY3Rpb24oKSA6IG1fcHJvY2Vzcy5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpOwogI2Vsc2UK
ICAgICBBU1NFUlQoIXNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpOwogICAgIGF1dG8qIGNvbm5l
Y3Rpb24gPSBtX3Byb2Nlc3MucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKTsKICNlbmRpZgotICAg
IGlmICghY29ubmVjdGlvbi0+c2VuZFN5bmMoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyUHJveHk6OkNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50
cyhpZCwgZGV2aWNlLCBoYXNoU2FsdCwgKmNvbnN0cmFpbnRzKSwgTWVzc2FnZXM6OlVzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyUHJveHk6OkNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdp
dGhDb25zdHJhaW50czo6UmVwbHkoc3VjY2VlZGVkLCBlcnJvck1lc3NhZ2UsIHNldHRpbmdzKSwg
MCkpCi0gICAgICAgIHJldHVybiBXVEZNb3ZlKGVycm9yTWVzc2FnZSk7Ci0KLSAgICBpZiAoIXN1
Y2NlZWRlZCkKLSAgICAgICAgcmV0dXJuIFdURk1vdmUoZXJyb3JNZXNzYWdlKTsKLQorICAgIAog
ICAgIGF1dG8gdHlwZSA9IGRldmljZS50eXBlKCkgPT0gQ2FwdHVyZURldmljZTo6RGV2aWNlVHlw
ZTo6TWljcm9waG9uZSA/IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlv
IDogV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW87Ci0gICAgYXV0byBz
b3VyY2UgPSBhZG9wdFJlZigqbmV3IFNvdXJjZShTdHJpbmc6Om51bWJlcihpZC50b1VJbnQ2NCgp
KSwgdHlwZSwgZGV2aWNlLnR5cGUoKSwgU3RyaW5nIHsgc2V0dGluZ3MubGFiZWwoKS5zdHJpbmco
KSB9LCBXVEZNb3ZlKGhhc2hTYWx0KSwgaWQsICp0aGlzKSk7CisgICAgYXV0byBzb3VyY2UgPSBh
ZG9wdFJlZigqbmV3IFNvdXJjZShTdHJpbmc6Om51bWJlcihpZC50b1VJbnQ2NCgpKSwgdHlwZSwg
ZGV2aWNlLnR5cGUoKSwgU3RyaW5nIHsgfSwgU3RyaW5nIHsgaGFzaFNhbHQgfSwgaWQsICp0aGlz
KSk7CiAgICAgaWYgKHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpCiAgICAgICAgIHNvdXJjZS0+
c2V0U2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcyhzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKTsK
LSAgICBzb3VyY2UtPnNldFNldHRpbmdzKFdURk1vdmUoc2V0dGluZ3MpKTsKICAgICBtX3NvdXJj
ZXMuYWRkKGlkLCBzb3VyY2UuY29weVJlZigpKTsKKworICAgIGNvbm5lY3Rpb24tPnNlbmRXaXRo
QXN5bmNSZXBseShNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Q3JlYXRl
TWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKGlkLCBkZXZpY2UsIGhh
c2hTYWx0LCAqY29uc3RyYWludHMpLCBbc291cmNlID0gc291cmNlLmNvcHlSZWYoKV0oYm9vbCBz
dWNjZWVkZWQsIGF1dG8mJiBlcnJvck1lc3NhZ2UsIGF1dG8mJiBzZXR0aW5ncywgYXV0byYmIGNh
cGFiaWxpdGllcykgeworICAgICAgICBpZiAoIXN1Y2NlZWRlZCkgeworICAgICAgICAgICAgc291
cmNlLT5kaWRGYWlsKFdURk1vdmUoZXJyb3JNZXNzYWdlKSk7CisgICAgICAgICAgICByZXR1cm47
CisgICAgICAgIH0KKyAgICAgICAgc291cmNlLT5zZXROYW1lKFN0cmluZyB7IHNldHRpbmdzLmxh
YmVsKCkuc3RyaW5nKCkgfSk7CisgICAgICAgIHNvdXJjZS0+c2V0U2V0dGluZ3MoV1RGTW92ZShz
ZXR0aW5ncykpOworICAgICAgICBzb3VyY2UtPnNldENhcGFiaWxpdGllcyhXVEZNb3ZlKGNhcGFi
aWxpdGllcykpOworICAgICAgICBzb3VyY2UtPnNldEFzUmVhZHkoKTsKKyAgICB9KTsKKwogICAg
IHJldHVybiBXZWJDb3JlOjpDYXB0dXJlU291cmNlT3JFcnJvcihXVEZNb3ZlKHNvdXJjZSkpOwog
fQogCkBAIC0zOTgsMTMgKzQzMSw3IEBAIHZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OlNv
dXJjZTo6c3RvcFByb2R1Y2luZ0RhdGEoKQogCiBjb25zdCBXZWJDb3JlOjpSZWFsdGltZU1lZGlh
U291cmNlQ2FwYWJpbGl0aWVzJiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6U291cmNlOjpjYXBh
YmlsaXRpZXMoKQogewotICAgIGlmICghbV9jYXBhYmlsaXRpZXMpIHsKLSAgICAgICAgUmVhbHRp
bWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyBjYXBhYmlsaXRpZXM7Ci0gICAgICAgIGNvbm5lY3Rp
b24oKS0+c2VuZFN5bmMoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OkNh
cGFiaWxpdGllcyB7IG1faWQgfSwgTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJv
eHk6OkNhcGFiaWxpdGllczo6UmVwbHkoY2FwYWJpbGl0aWVzKSwgMCk7Ci0gICAgICAgIG1fY2Fw
YWJpbGl0aWVzID0gV1RGTW92ZShjYXBhYmlsaXRpZXMpOwotICAgIH0KLQotICAgIHJldHVybiBt
X2NhcGFiaWxpdGllcy52YWx1ZSgpOworICAgIHJldHVybiBtX2NhcGFiaWxpdGllczsKIH0KIAog
dm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6U291cmNlOjphcHBseUNvbnN0cmFpbnRzKGNv
bnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMmIGNvbnN0cmFpbnRzLCBBcHBseUNvbnN0cmFp
bnRzSGFuZGxlciYmIGNvbXBsZXRpb25IYW5kbGVyKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>