<?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>192542</bug_id>
          
          <creation_ts>2018-12-09 10:19:50 -0800</creation_ts>
          <short_desc>Move capture manager from RealtimeMediaSourceCenter to capture factory</short_desc>
          <delta_ts>2018-12-09 21:31:33 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>
          
          <blocked>192544</blocked>
    
    <blocked>192546</blocked>
          <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>jer.noble</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1486443</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-12-09 10:19:50 -0800</bug_when>
    <thetext>This refactoring will allow enabling mock capture in the process that real capture devices operate (WebProcess or UIProcess).
This will allow using UserMediaCaptureManager jointly with mock sources.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1486444</commentid>
    <comment_count>1</comment_count>
      <attachid>356925</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-12-09 10:29:02 -0800</bug_when>
    <thetext>Created attachment 356925
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1486455</commentid>
    <comment_count>2</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-12-09 14:38:53 -0800</bug_when>
    <thetext>Thanks for the review.
I did some more testing and with this patch, switching off mock media capture will currently make fail audio capture in Mac since it makes the realtime media source center use the default capture which is the in process audio capturer and not the out-of-process capturer.

I can add a temporary fix for it and add some more comments in change log.

Ideally, switching on/off the mock should only switch the capture where it happens (in web process for camera, in ui process for audio on Mac).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1486482</commentid>
    <comment_count>3</comment_count>
      <attachid>356941</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-12-09 20:52:09 -0800</bug_when>
    <thetext>Created attachment 356941
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1486490</commentid>
    <comment_count>4</comment_count>
      <attachid>356941</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-12-09 21:30:32 -0800</bug_when>
    <thetext>Comment on attachment 356941
Patch for landing

Clearing flags on attachment: 356941

Committed r239024: &lt;https://trac.webkit.org/changeset/239024&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1486491</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-12-09 21:30:33 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1486492</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-12-09 21:31:33 -0800</bug_when>
    <thetext>&lt;rdar://problem/46584865&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>356925</attachid>
            <date>2018-12-09 10:29:02 -0800</date>
            <delta_ts>2018-12-09 20:52:07 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-192542-20181209102901.patch</filename>
            <type>text/plain</type>
            <size>40181</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM5MDEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmY3M2YyMTdmMTI1NjJl
OGIzZmI5NjNkMzkyYjNjMDQwNjk2YTEzNS4uMDg4OTJhZGM1M2IyYjg2MzgzYmMxM2E0YmNmYWM5
MWE0YjE0NWNiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYyIEBACisyMDE4LTEyLTA5ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBNb3ZlIGNhcHR1cmUgbWFu
YWdlciBmcm9tIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIgdG8gY2FwdHVyZSBmYWN0b3J5Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTI1NDIKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZSBzaG91bGQg
YmUgYWJsZSB0byBydW4gbW9jayBjYXB0dXJlcyBpbiB3aXRoZXIgVUlQcm9jZXNzIG9yIFdlYlBy
b2Nlc3MuCisgICAgICAgIEN1cnJldG5seSwgbW9jayBjYXB0dXJlIGlzIG9ubHkgZG9uZSBpbiBX
ZWJQcm9jZXNzLgorICAgICAgICBUaGlzIHBhdGNoIGlzIGEgZmlyc3Qgc3RlcCB0b3dhcmRzIHRo
YXQgZ29hbC4KKworICAgICAgICBJdCBhbHNvIHNpbXBsaWZpZXMgUmVhbHRpbWVNZWRpYVNvdXJj
ZUNlbnRlciBpbXBsZW1lbnRhdGlvbiBieSBzdGFydGluZworICAgICAgICB0byByZW1vdmUgdmly
dHVhbCBtZXRob2RzLgorICAgICAgICBGdXJ0aGVyIHJlZmFjdG9yaW5nIHdpbGwgcmVtb3ZlIHRo
ZSBuZWVkIHRvIHN1YmNsYXNzIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuCisgICAgICAgIElu
c3RlYWQsIHJlbWFpbmluZyB2aXJ0dWFsIG1ldGhvZHMgd2lsbCBiZWNvbWUgbm9uIHZpcnR1YWwg
YW5kIHRoZWlyCisgICAgICAgIGltcGxlbWVudGF0aW9uIHdpbGwgYmVjb21lIHBvcnQgc3BlY2lm
aWMuCisKKyAgICAgICAgTm8gdmlzaWJsZSBjaG5hZ2Ugb2YgYmVoYXZpb3IuCisgICAgICAgIENv
dmVyZWQgYnkgZXhpc3RpbmcgdGVzdHMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVh
bS9DYXB0dXJlRGV2aWNlTWFuYWdlci5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFt
L1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRp
bWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0
aW1lTWVkaWFTb3VyY2VDZW50ZXI6OmdldE1lZGlhU3RyZWFtRGV2aWNlcyk6CisgICAgICAgIChX
ZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpnZXREaXNwbGF5TWVkaWFEZXZpY2Vz
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OmdldFVzZXJN
ZWRpYURldmljZXMpOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRl
cjo6Y2FwdHVyZURldmljZVdpdGhQZXJzaXN0ZW50SUQpOgorICAgICAgICAoV2ViQ29yZTo6UmVh
bHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6dW5zZXRBdWRpb0ZhY3RvcnkpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6dW5zZXRWaWRlb0ZhY3RvcnkpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6dW5zZXREaXNwbGF5Q2Fw
dHVyZUZhY3RvcnkpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVk
aWFTb3VyY2VDZW50ZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGlt
ZU1lZGlhU291cmNlRmFjdG9yeS5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL2dz
dHJlYW1lci9HU3RyZWFtZXJBdWRpb0NhcHR1cmVTb3VyY2UuY3BwOgorICAgICAgICAqIHBsYXRm
b3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2UuY3Bw
OgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9SZWFsdGltZU1lZGlh
U291cmNlQ2VudGVyTGliV2ViUlRDLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVh
bS9nc3RyZWFtZXIvUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlckxpYldlYlJUQy5oOgorICAgICAg
ICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlU291cmNlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkNvcmVBdWRpb0NhcHR1cmVTb3VyY2VGYWN0b3J5OjphdWRpb0Nh
cHR1cmVEZXZpY2VNYW5hZ2VyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMv
Q29yZUF1ZGlvQ2FwdHVyZVNvdXJjZS5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFt
L21hYy9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyTWFjLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck1hYy5oOgorICAgICAg
ICAqIHBsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6TW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNldE1vY2tSZWFs
dGltZU1lZGlhU291cmNlQ2VudGVyRW5hYmxlZCk6CisgICAgICAgIChXZWJDb3JlOjpNb2NrUmVh
bHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6YXVkaW9GYWN0b3J5KToKKyAgICAgICAgKFdlYkNvcmU6
Ok1vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjp2aWRlb0ZhY3RvcnkpOgorICAgICAgICAo
V2ViQ29yZTo6TW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OmRpc3BsYXlDYXB0dXJlRmFj
dG9yeSk6CisgICAgICAgICogcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNl
bnRlci5oOgorICAgICAgICAoV2ViQ29yZTo6TW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6
OmF1ZGlvQ2FwdHVyZURldmljZU1hbmFnZXIpOgorICAgICAgICAoV2ViQ29yZTo6TW9ja1JlYWx0
aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnZpZGVvQ2FwdHVyZURldmljZU1hbmFnZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6TW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OmRpc3BsYXlDYXB0dXJl
RGV2aWNlTWFuYWdlcik6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAgICAg
ICAqIHRlc3RpbmcvSW50ZXJuYWxzLmg6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaWRs
OgorICAgICAgICAqIHRlc3RpbmcvTW9ja0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OnVzZU1vY2tSVENQZWVyQ29ubmVjdGlvbkZhY3RvcnkpOgorICAgICAg
ICAoV2ViQ29yZTo6TW9ja0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uRmFjdG9yeTo6TW9ja0xpYldl
YlJUQ1BlZXJDb25uZWN0aW9uRmFjdG9yeSk6CisgICAgICAgICogdGVzdGluZy9Nb2NrTGliV2Vi
UlRDUGVlckNvbm5lY3Rpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tMaWJXZWJSVENQZWVy
Q29ubmVjdGlvbkZhY3Rvcnk6OmNyZWF0ZSk6CisKIDIwMTgtMTItMDggIEZyZWRlcmljIFdhbmcg
IDxmd2FuZ0BpZ2FsaWEuY29tPgogCiAgICAgICAgIEFsbG93IGNvbnRyb2wgb3ZlciBjaGlsZCBv
cmRlciB3aGVuIGFkZGluZyBub2RlcyB0byB0aGUgc2Nyb2xsaW5nIHRyZWUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXgg
OTliY2FjNWY5NTgzNmQ3OGE2YjYzMWFhOGQwZTVlNzg0Yjk1OGEwZi4uNTQ5OTBjZTAyM2NiMWY3
MDNmZjM1NTgzNzk4ZTg3ZTM2MjdjYTVjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAx
OC0xMi0wOSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgTW92
ZSBjYXB0dXJlIG1hbmFnZXIgZnJvbSBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyIHRvIGNhcHR1
cmUgZmFjdG9yeQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTkyNTQyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgTWFrZSBzdXJlIHRvIHVucmVnaXN0ZXIgZm9yIHZpZGVvIGNhcHR1cmUgYXMgZG9uZSBmb3Ig
b3RoZXIgY2FwdHVyZSB0eXBlcy4KKyAgICAgICAgSW1wbGVtZW50IG1hbmFnZXIgd2hpY2ggc2hv
dWxkIGJlIGRvaW5nIG5vdGhpbmcgYXMgdGhlIG1hbmFnZXIgaXMgdXNlZCBmb3IgZW51bWVyYXRp
b24gb2YgZGV2aWNlcworICAgICAgICB3aGljaCBzaG91bGQgb25seSBoYXBwZW4gaW4gVUlQcm9j
ZXNzLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdl
ci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjp+VXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXIuaDoKKwogMjAxOC0xMi0wOCAgRnJlZGVyaWMgV2FuZyAgPGZ3YW5nQGln
YWxpYS5jb20+CiAKICAgICAgICAgQWxsb3cgY29udHJvbCBvdmVyIGNoaWxkIG9yZGVyIHdoZW4g
YWRkaW5nIG5vZGVzIHRvIHRoZSBzY3JvbGxpbmcgdHJlZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vQ2FwdHVyZURldmljZU1hbmFnZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL0NhcHR1cmVEZXZpY2VNYW5hZ2VyLmgKaW5k
ZXggNTczMmRlMDNkZWViNGZjMDk4NWExYjFhNzRiY2JiMTQ2MGZlYzViZC4uZTkxYjQ3Y2VkNmQ2
MDc4NzQxOGU0NTEwNzVjMmJkNDk1N2FjNTVkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vQ2FwdHVyZURldmljZU1hbmFnZXIuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9DYXB0dXJlRGV2aWNlTWFuYWdlci5oCkBAIC0z
Myw3ICszMyw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgQ2FwdHVyZURldmlj
ZU1hbmFnZXIgOiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8Q2FwdHVyZURldmljZU1hbmFnZXI+IHsK
K2NsYXNzIFdFQkNPUkVfRVhQT1JUIENhcHR1cmVEZXZpY2VNYW5hZ2VyIDogcHVibGljIENhbk1h
a2VXZWFrUHRyPENhcHR1cmVEZXZpY2VNYW5hZ2VyPiB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCBj
b25zdCBWZWN0b3I8Q2FwdHVyZURldmljZT4mIGNhcHR1cmVEZXZpY2VzKCkgPSAwOwogICAgIHZp
cnR1YWwgc3RkOjpvcHRpb25hbDxDYXB0dXJlRGV2aWNlPiBjYXB0dXJlRGV2aWNlV2l0aFBlcnNp
c3RlbnRJRChDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlLCBjb25zdCBTdHJpbmcmKSB7IHJldHVy
biBzdGQ6Om51bGxvcHQ7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5jcHAKaW5kZXgg
MGJmZTg1ZDIyNDBlZWUyZDNlNWQzNzMyZjA4NTUzMGE2MTI2MjNkYy4uZDY3ZTEyNzc0NGJmNWNi
MzRjNTJkOTVhMGU2ZGU5MGU1NGZiMjcxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRl
ci5jcHAKQEAgLTM1LDExICszNSw2IEBACiAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogCi0v
LyBGSVhNRTogR1RLIHRvIGltcGxlbWVudCBpdHMgb3duIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50
ZXIuCi0jaWYgUExBVEZPUk0oR1RLKQotI2luY2x1ZGUgIk1vY2tSZWFsdGltZU1lZGlhU291cmNl
Q2VudGVyLmgiCi0jZW5kaWYKLQogI2luY2x1ZGUgIkNhcHR1cmVEZXZpY2VNYW5hZ2VyLmgiCiAj
aW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIk1lZGlhU3RyZWFtUHJpdmF0ZS5oIgpAQCAt
NDcsMjUgKzQyLDEyIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotc3RhdGljIFJlYWx0aW1l
TWVkaWFTb3VyY2VDZW50ZXIqJiBtZWRpYVN0cmVhbUNlbnRlck92ZXJyaWRlKCkKLXsKLSAgICBz
dGF0aWMgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlciogb3ZlcnJpZGU7Ci0gICAgcmV0dXJuIG92
ZXJyaWRlOwotfQogCiBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyJiBSZWFsdGltZU1lZGlhU291
cmNlQ2VudGVyOjpzaW5nbGV0b24oKQogewotICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIq
IG92ZXJyaWRlID0gbWVkaWFTdHJlYW1DZW50ZXJPdmVycmlkZSgpOwotICAgIGlmIChvdmVycmlk
ZSkKLSAgICAgICAgcmV0dXJuICpvdmVycmlkZTsKICAgICByZXR1cm4gUmVhbHRpbWVNZWRpYVNv
dXJjZUNlbnRlcjo6cGxhdGZvcm1DZW50ZXIoKTsKIH0KIAotdm9pZCBSZWFsdGltZU1lZGlhU291
cmNlQ2VudGVyOjpzZXRTaGFyZWRTdHJlYW1DZW50ZXJPdmVycmlkZShSZWFsdGltZU1lZGlhU291
cmNlQ2VudGVyKiBjZW50ZXIpCi17Ci0gICAgbWVkaWFTdHJlYW1DZW50ZXJPdmVycmlkZSgpID0g
Y2VudGVyOwotfQotCiBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpSZWFsdGltZU1lZGlhU291
cmNlQ2VudGVyKCkKIHsKICAgICBtX3N1cHBvcnRlZENvbnN0cmFpbnRzLnNldFN1cHBvcnRzV2lk
dGgodHJ1ZSk7CkBAIC0xMjQsMTUgKzEwNiwxNSBAQCB2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2VD
ZW50ZXI6OmNyZWF0ZU1lZGlhU3RyZWFtKE5ld01lZGlhU3RyZWFtSGFuZGxlciYmIGNvbXBsZQog
VmVjdG9yPENhcHR1cmVEZXZpY2U+IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OmdldE1lZGlh
U3RyZWFtRGV2aWNlcygpCiB7CiAgICAgVmVjdG9yPENhcHR1cmVEZXZpY2U+IHJlc3VsdDsKLSAg
ICBmb3IgKGF1dG8mIGRldmljZSA6IGF1ZGlvQ2FwdHVyZURldmljZU1hbmFnZXIoKS5jYXB0dXJl
RGV2aWNlcygpKSB7CisgICAgZm9yIChhdXRvJiBkZXZpY2UgOiBhdWRpb0ZhY3RvcnkoKS5hdWRp
b0NhcHR1cmVEZXZpY2VNYW5hZ2VyKCkuY2FwdHVyZURldmljZXMoKSkgewogICAgICAgICBpZiAo
ZGV2aWNlLmVuYWJsZWQoKSkKICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoZGV2aWNlKTsKICAg
ICB9Ci0gICAgZm9yIChhdXRvJiBkZXZpY2UgOiB2aWRlb0NhcHR1cmVEZXZpY2VNYW5hZ2VyKCku
Y2FwdHVyZURldmljZXMoKSkgeworICAgIGZvciAoYXV0byYgZGV2aWNlIDogdmlkZW9GYWN0b3J5
KCkudmlkZW9DYXB0dXJlRGV2aWNlTWFuYWdlcigpLmNhcHR1cmVEZXZpY2VzKCkpIHsKICAgICAg
ICAgaWYgKGRldmljZS5lbmFibGVkKCkpCiAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKGRldmlj
ZSk7CiAgICAgfQotICAgIGZvciAoYXV0byYgZGV2aWNlIDogZGlzcGxheUNhcHR1cmVEZXZpY2VN
YW5hZ2VyKCkuY2FwdHVyZURldmljZXMoKSkgeworICAgIGZvciAoYXV0byYgZGV2aWNlIDogZGlz
cGxheUNhcHR1cmVGYWN0b3J5KCkuZGlzcGxheUNhcHR1cmVEZXZpY2VNYW5hZ2VyKCkuY2FwdHVy
ZURldmljZXMoKSkgewogICAgICAgICBpZiAoZGV2aWNlLmVuYWJsZWQoKSkKICAgICAgICAgICAg
IHJlc3VsdC5hcHBlbmQoZGV2aWNlKTsKICAgICB9CkBAIC0xNzIsMzIgKzE1NCw2IEBAIFN0cmlu
ZyBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpoYXNoU3RyaW5nV2l0aFNhbHQoY29uc3QgU3Ry
aW5nJiBpZCwgY29uc3QgU3RyCiAgICAgcmV0dXJuIFNIQTE6OmhleERpZ2VzdChkaWdlc3QpLmRh
dGEoKTsKIH0KIAotQ2FwdHVyZURldmljZSBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpjYXB0
dXJlRGV2aWNlV2l0aFVuaXF1ZUlEKGNvbnN0IFN0cmluZyYgdW5pcXVlSUQsIGNvbnN0IFN0cmlu
ZyYgaWRIYXNoU2FsdCkKLXsKLSAgICBmb3IgKGF1dG8mIGRldmljZSA6IGdldE1lZGlhU3RyZWFt
RGV2aWNlcygpKSB7Ci0gICAgICAgIGlmICh1bmlxdWVJRCA9PSBoYXNoU3RyaW5nV2l0aFNhbHQo
ZGV2aWNlLnBlcnNpc3RlbnRJZCgpLCBpZEhhc2hTYWx0KSkKLSAgICAgICAgICAgIHJldHVybiBk
ZXZpY2U7Ci0gICAgfQotCi0gICAgcmV0dXJuIHsgfTsKLX0KLQotRXhjZXB0aW9uT3I8dm9pZD4g
UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2V0RGV2aWNlRW5hYmxlZChjb25zdCBTdHJpbmcm
IGlkLCBib29sIGVuYWJsZWQpCi17Ci0gICAgZm9yIChhdXRvJiBjYXB0dXJlRGV2aWNlIDogZ2V0
TWVkaWFTdHJlYW1EZXZpY2VzKCkpIHsKLSAgICAgICAgaWYgKGlkID09IGNhcHR1cmVEZXZpY2Uu
cGVyc2lzdGVudElkKCkpIHsKLSAgICAgICAgICAgIGlmIChlbmFibGVkICE9IGNhcHR1cmVEZXZp
Y2UuZW5hYmxlZCgpKSB7Ci0gICAgICAgICAgICAgICAgY2FwdHVyZURldmljZS5zZXRFbmFibGVk
KGVuYWJsZWQpOwotICAgICAgICAgICAgICAgIGNhcHR1cmVEZXZpY2VzQ2hhbmdlZCgpOwotICAg
ICAgICAgICAgfQotCi0gICAgICAgICAgICByZXR1cm4geyB9OwotICAgICAgICB9Ci0gICAgfQot
Ci0gICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vdEZvdW5kRXJyb3IgfTsKLX0KLQogdm9pZCBSZWFs
dGltZU1lZGlhU291cmNlQ2VudGVyOjpzZXREZXZpY2VzQ2hhbmdlZE9ic2VydmVyKHN0ZDo6ZnVu
Y3Rpb248dm9pZCgpPiYmIG9ic2VydmVyKQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7
CkBAIC0yMTgsNyArMTc0LDcgQEAgdm9pZCBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpnZXRE
aXNwbGF5TWVkaWFEZXZpY2VzKGNvbnN0IE1lZGlhU3RyZWFtUmVxdWVzdCYKICAgICAgICAgcmV0
dXJuOwogCiAgICAgU3RyaW5nIGludmFsaWRDb25zdHJhaW50OwotICAgIGZvciAoYXV0byYgZGV2
aWNlIDogZGlzcGxheUNhcHR1cmVEZXZpY2VNYW5hZ2VyKCkuY2FwdHVyZURldmljZXMoKSkgewor
ICAgIGZvciAoYXV0byYgZGV2aWNlIDogZGlzcGxheUNhcHR1cmVGYWN0b3J5KCkuZGlzcGxheUNh
cHR1cmVEZXZpY2VNYW5hZ2VyKCkuY2FwdHVyZURldmljZXMoKSkgewogICAgICAgICBpZiAoIWRl
dmljZS5lbmFibGVkKCkpCiAgICAgICAgICAgICByZXR1cm47CiAKQEAgLTIzNSw3ICsxOTEsNyBA
QCB2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OmdldFVzZXJNZWRpYURldmljZXMoY29u
c3QgTWVkaWFTdHJlYW1SZXF1ZXN0JiByZQogewogICAgIFN0cmluZyBpbnZhbGlkQ29uc3RyYWlu
dDsKICAgICBpZiAocmVxdWVzdC5hdWRpb0NvbnN0cmFpbnRzLmlzVmFsaWQpIHsKLSAgICAgICAg
Zm9yIChhdXRvJiBkZXZpY2UgOiBhdWRpb0NhcHR1cmVEZXZpY2VNYW5hZ2VyKCkuY2FwdHVyZURl
dmljZXMoKSkgeworICAgICAgICBmb3IgKGF1dG8mIGRldmljZSA6IGF1ZGlvRmFjdG9yeSgpLmF1
ZGlvQ2FwdHVyZURldmljZU1hbmFnZXIoKS5jYXB0dXJlRGV2aWNlcygpKSB7CiAgICAgICAgICAg
ICBpZiAoIWRldmljZS5lbmFibGVkKCkpCiAgICAgICAgICAgICAgICAgY29udGludWU7CiAKQEAg
LTI0OSw3ICsyMDUsNyBAQCB2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OmdldFVzZXJN
ZWRpYURldmljZXMoY29uc3QgTWVkaWFTdHJlYW1SZXF1ZXN0JiByZQogICAgIH0KIAogICAgIGlm
IChyZXF1ZXN0LnZpZGVvQ29uc3RyYWludHMuaXNWYWxpZCkgewotICAgICAgICBmb3IgKGF1dG8m
IGRldmljZSA6IHZpZGVvQ2FwdHVyZURldmljZU1hbmFnZXIoKS5jYXB0dXJlRGV2aWNlcygpKSB7
CisgICAgICAgIGZvciAoYXV0byYgZGV2aWNlIDogdmlkZW9GYWN0b3J5KCkudmlkZW9DYXB0dXJl
RGV2aWNlTWFuYWdlcigpLmNhcHR1cmVEZXZpY2VzKCkpIHsKICAgICAgICAgICAgIGlmICghZGV2
aWNlLmVuYWJsZWQoKSkKICAgICAgICAgICAgICAgICBjb250aW51ZTsKIApAQCAtMzE0LDE2ICsy
NzAsMTYgQEAgc3RkOjpvcHRpb25hbDxDYXB0dXJlRGV2aWNlPiBSZWFsdGltZU1lZGlhU291cmNl
Q2VudGVyOjpjYXB0dXJlRGV2aWNlV2l0aFBlcnNpc3QKIHsKICAgICBzd2l0Y2ggKHR5cGUpIHsK
ICAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OkNhbWVyYToKLSAgICAgICAgcmV0
dXJuIHZpZGVvQ2FwdHVyZURldmljZU1hbmFnZXIoKS5jYXB0dXJlRGV2aWNlV2l0aFBlcnNpc3Rl
bnRJRCh0eXBlLCBpZCk7CisgICAgICAgIHJldHVybiB2aWRlb0ZhY3RvcnkoKS52aWRlb0NhcHR1
cmVEZXZpY2VNYW5hZ2VyKCkuY2FwdHVyZURldmljZVdpdGhQZXJzaXN0ZW50SUQodHlwZSwgaWQp
OwogICAgICAgICBicmVhazsKICAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6Ok1p
Y3JvcGhvbmU6Ci0gICAgICAgIHJldHVybiBhdWRpb0NhcHR1cmVEZXZpY2VNYW5hZ2VyKCkuY2Fw
dHVyZURldmljZVdpdGhQZXJzaXN0ZW50SUQodHlwZSwgaWQpOworICAgICAgICByZXR1cm4gYXVk
aW9GYWN0b3J5KCkuYXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlcigpLmNhcHR1cmVEZXZpY2VXaXRo
UGVyc2lzdGVudElEKHR5cGUsIGlkKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDYXB0dXJl
RGV2aWNlOjpEZXZpY2VUeXBlOjpTY3JlZW46CiAgICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZp
Y2VUeXBlOjpBcHBsaWNhdGlvbjoKICAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6
OldpbmRvdzoKICAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OkJyb3dzZXI6Ci0g
ICAgICAgIHJldHVybiBkaXNwbGF5Q2FwdHVyZURldmljZU1hbmFnZXIoKS5jYXB0dXJlRGV2aWNl
V2l0aFBlcnNpc3RlbnRJRCh0eXBlLCBpZCk7CisgICAgICAgIHJldHVybiBkaXNwbGF5Q2FwdHVy
ZUZhY3RvcnkoKS5kaXNwbGF5Q2FwdHVyZURldmljZU1hbmFnZXIoKS5jYXB0dXJlRGV2aWNlV2l0
aFBlcnNpc3RlbnRJRCh0eXBlLCBpZCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ2FwdHVy
ZURldmljZTo6RGV2aWNlVHlwZTo6VW5rbm93bjoKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CkBAIC0zNDEsNyArMjk3LDggQEAgdm9pZCBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpz
ZXRBdWRpb0ZhY3RvcnkoQXVkaW9DYXB0dXJlRmFjdG9yeSYgZmFjdG9yeSkKIHZvaWQgUmVhbHRp
bWVNZWRpYVNvdXJjZUNlbnRlcjo6dW5zZXRBdWRpb0ZhY3RvcnkoQXVkaW9DYXB0dXJlRmFjdG9y
eSYgb2xkT3ZlcnJpZGUpCiB7CiAgICAgQVNTRVJUX1VOVVNFRChvbGRPdmVycmlkZSwgYXVkaW9G
YWN0b3J5T3ZlcnJpZGUgPT0gJm9sZE92ZXJyaWRlKTsKLSAgICBhdWRpb0ZhY3RvcnlPdmVycmlk
ZSA9IG51bGxwdHI7CisgICAgaWYgKCZvbGRPdmVycmlkZSA9PSBhdWRpb0ZhY3RvcnlPdmVycmlk
ZSkKKyAgICAgICAgYXVkaW9GYWN0b3J5T3ZlcnJpZGUgPSBudWxscHRyOwogfQogCiBBdWRpb0Nh
cHR1cmVGYWN0b3J5JiBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjphdWRpb0ZhY3RvcnkoKQpA
QCAtMzU3LDcgKzMxNCw4IEBAIHZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2V0Vmlk
ZW9GYWN0b3J5KFZpZGVvQ2FwdHVyZUZhY3RvcnkmIGZhY3RvcnkpCiB2b2lkIFJlYWx0aW1lTWVk
aWFTb3VyY2VDZW50ZXI6OnVuc2V0VmlkZW9GYWN0b3J5KFZpZGVvQ2FwdHVyZUZhY3RvcnkmIG9s
ZE92ZXJyaWRlKQogewogICAgIEFTU0VSVF9VTlVTRUQob2xkT3ZlcnJpZGUsIHZpZGVvRmFjdG9y
eU92ZXJyaWRlID09ICZvbGRPdmVycmlkZSk7Ci0gICAgdmlkZW9GYWN0b3J5T3ZlcnJpZGUgPSBu
dWxscHRyOworICAgIGlmICgmb2xkT3ZlcnJpZGUgPT0gdmlkZW9GYWN0b3J5T3ZlcnJpZGUpCisg
ICAgICAgIHZpZGVvRmFjdG9yeU92ZXJyaWRlID0gbnVsbHB0cjsKIH0KIAogVmlkZW9DYXB0dXJl
RmFjdG9yeSYgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6dmlkZW9GYWN0b3J5KCkKQEAgLTM3
Myw3ICszMzEsOCBAQCB2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNldERpc3BsYXlD
YXB0dXJlRmFjdG9yeShEaXNwbGF5Q2FwdHVyZUZhY3RvcnkmCiB2b2lkIFJlYWx0aW1lTWVkaWFT
b3VyY2VDZW50ZXI6OnVuc2V0RGlzcGxheUNhcHR1cmVGYWN0b3J5KERpc3BsYXlDYXB0dXJlRmFj
dG9yeSYgb2xkT3ZlcnJpZGUpCiB7CiAgICAgQVNTRVJUX1VOVVNFRChvbGRPdmVycmlkZSwgZGlz
cGxheUNhcHR1cmVGYWN0b3J5T3ZlcnJpZGUgPT0gJm9sZE92ZXJyaWRlKTsKLSAgICBkaXNwbGF5
Q2FwdHVyZUZhY3RvcnlPdmVycmlkZSA9IG51bGxwdHI7CisgICAgaWYgKCZvbGRPdmVycmlkZSA9
PSBkaXNwbGF5Q2FwdHVyZUZhY3RvcnlPdmVycmlkZSkKKyAgICAgICAgZGlzcGxheUNhcHR1cmVG
YWN0b3J5T3ZlcnJpZGUgPSBudWxscHRyOwogfQogCiBEaXNwbGF5Q2FwdHVyZUZhY3RvcnkmIFJl
YWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OmRpc3BsYXlDYXB0dXJlRmFjdG9yeSgpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291
cmNlQ2VudGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGlt
ZU1lZGlhU291cmNlQ2VudGVyLmgKaW5kZXggOTM0ODEyNDk4NDlmYjk4YmM5M2JjMDg1ZDc4ZmNm
ODRhNzA3ZDViMS4uYmIwZGVmMmU1ZWYzNGE1ZGUyNWRkMjRlODZiMzBkM2Q4YzBkMzNkZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRp
YVNvdXJjZUNlbnRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuaApAQCAtNTUsMTAgKzU1LDEwIEBAIHN0cnVjdCBN
ZWRpYUNvbnN0cmFpbnRzOwogICAgIAogY2xhc3MgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlciB7
CiBwdWJsaWM6CisgICAgc3RhdGljIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXImIHBsYXRmb3Jt
Q2VudGVyKCk7CiAgICAgdmlydHVhbCB+UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcigpOwogCiAg
ICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXImIHNpbmds
ZXRvbigpOwotICAgIHN0YXRpYyB2b2lkIHNldFNoYXJlZFN0cmVhbUNlbnRlck92ZXJyaWRlKFJl
YWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIqKTsKIAogICAgIHVzaW5nIFZhbGlkQ29uc3RyYWludHNI
YW5kbGVyID0gV1RGOjpGdW5jdGlvbjx2b2lkKFZlY3RvcjxDYXB0dXJlRGV2aWNlPiYmIGF1ZGlv
RGV2aWNlVUlEcywgVmVjdG9yPENhcHR1cmVEZXZpY2U+JiYgdmlkZW9EZXZpY2VVSURzLCBTdHJp
bmcmJik+OwogICAgIHVzaW5nIEludmFsaWRDb25zdHJhaW50c0hhbmRsZXIgPSBXVEY6OkZ1bmN0
aW9uPHZvaWQoY29uc3QgU3RyaW5nJiBpbnZhbGlkQ29uc3RyYWludCk+OwpAQCAtNjcsNyArNjcs
NyBAQCBwdWJsaWM6CiAgICAgdXNpbmcgTmV3TWVkaWFTdHJlYW1IYW5kbGVyID0gV1RGOjpGdW5j
dGlvbjx2b2lkKFJlZlB0cjxNZWRpYVN0cmVhbVByaXZhdGU+JiYpPjsKICAgICB2aXJ0dWFsIHZv
aWQgY3JlYXRlTWVkaWFTdHJlYW0oTmV3TWVkaWFTdHJlYW1IYW5kbGVyJiYsIFN0cmluZyYmLCBD
YXB0dXJlRGV2aWNlJiYgYXVkaW9EZXZpY2UsIENhcHR1cmVEZXZpY2UmJiB2aWRlb0RldmljZSwg
Y29uc3QgTWVkaWFTdHJlYW1SZXF1ZXN0Jik7CiAKLSAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFs
IFZlY3RvcjxDYXB0dXJlRGV2aWNlPiBnZXRNZWRpYVN0cmVhbURldmljZXMoKTsKKyAgICBXRUJD
T1JFX0VYUE9SVCBWZWN0b3I8Q2FwdHVyZURldmljZT4gZ2V0TWVkaWFTdHJlYW1EZXZpY2VzKCk7
CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RkOjpvcHRpb25hbDxDYXB0dXJlRGV2aWNlPiBjYXB0dXJl
RGV2aWNlV2l0aFBlcnNpc3RlbnRJRChDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlLCBjb25zdCBT
dHJpbmcmKTsKICAgICAKICAgICBjb25zdCBSZWFsdGltZU1lZGlhU291cmNlU3VwcG9ydGVkQ29u
c3RyYWludHMmIHN1cHBvcnRlZENvbnN0cmFpbnRzKCkgeyByZXR1cm4gbV9zdXBwb3J0ZWRDb25z
dHJhaW50czsgfQpAQCAtODQsMTMgKzg0LDcgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JU
IHN0YXRpYyB2b2lkIHNldERpc3BsYXlDYXB0dXJlRmFjdG9yeShEaXNwbGF5Q2FwdHVyZUZhY3Rv
cnkmKTsKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgdm9pZCB1bnNldERpc3BsYXlDYXB0dXJl
RmFjdG9yeShEaXNwbGF5Q2FwdHVyZUZhY3RvcnkmKTsKIAotICAgIHZpcnR1YWwgQ2FwdHVyZURl
dmljZU1hbmFnZXImIGF1ZGlvQ2FwdHVyZURldmljZU1hbmFnZXIoKSA9IDA7Ci0gICAgdmlydHVh
bCBDYXB0dXJlRGV2aWNlTWFuYWdlciYgdmlkZW9DYXB0dXJlRGV2aWNlTWFuYWdlcigpID0gMDsK
LSAgICB2aXJ0dWFsIENhcHR1cmVEZXZpY2VNYW5hZ2VyJiBkaXNwbGF5Q2FwdHVyZURldmljZU1h
bmFnZXIoKSA9IDA7Ci0KICAgICBXRUJDT1JFX0VYUE9SVCBTdHJpbmcgaGFzaFN0cmluZ1dpdGhT
YWx0KGNvbnN0IFN0cmluZyYgaWQsIGNvbnN0IFN0cmluZyYgaGFzaFNhbHQpOwotICAgIFdFQkNP
UkVfRVhQT1JUIENhcHR1cmVEZXZpY2UgY2FwdHVyZURldmljZVdpdGhVbmlxdWVJRChjb25zdCBT
dHJpbmcmIGlkLCBjb25zdCBTdHJpbmcmIGhhc2hTYWx0KTsKLSAgICBXRUJDT1JFX0VYUE9SVCBF
eGNlcHRpb25Pcjx2b2lkPiBzZXREZXZpY2VFbmFibGVkKGNvbnN0IFN0cmluZyYsIGJvb2wpOwog
CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXREZXZpY2VzQ2hhbmdlZE9ic2VydmVyKHN0ZDo6
ZnVuY3Rpb248dm9pZCgpPiYmKTsKIApAQCAtMTAxLDcgKzk1LDYgQEAgcHVibGljOgogcHJvdGVj
dGVkOgogICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIoKTsKIAotICAgIHN0YXRpYyBSZWFs
dGltZU1lZGlhU291cmNlQ2VudGVyJiBwbGF0Zm9ybUNlbnRlcigpOwogICAgIFJlYWx0aW1lTWVk
aWFTb3VyY2VTdXBwb3J0ZWRDb25zdHJhaW50cyBtX3N1cHBvcnRlZENvbnN0cmFpbnRzOwogCiAg
ICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCBBdWRpb0NhcHR1cmVGYWN0b3J5JiBhdWRpb0ZhY3Rv
cnlQcml2YXRlKCkgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUZhY3RvcnkuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VGYWN0b3J5LmgKaW5kZXggOTcy
ZmFhZTFlN2YzZmFlODdjODUzNTVkM2JlODA3Y2FmNmM4ZGYyOC4uNDg5N2M2NGU5MzcyYzJhNmJj
ODE5Mzg1NTRjOTgyNTYxZTIwZjc4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUZhY3RvcnkuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlRmFjdG9yeS5o
CkBAIC0zMiw2ICszMiw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIENhcHR1cmVE
ZXZpY2U7CitjbGFzcyBDYXB0dXJlRGV2aWNlTWFuYWdlcjsKIGNsYXNzIFJlYWx0aW1lTWVkaWFT
b3VyY2U7CiAKIHN0cnVjdCBDYXB0dXJlU291cmNlT3JFcnJvcjsKQEAgLTU1LDYgKzU2LDcgQEAg
Y2xhc3MgQXVkaW9DYXB0dXJlRmFjdG9yeQogcHVibGljOgogICAgIHZpcnR1YWwgfkF1ZGlvQ2Fw
dHVyZUZhY3RvcnkoKSA9IGRlZmF1bHQ7CiAgICAgdmlydHVhbCBDYXB0dXJlU291cmNlT3JFcnJv
ciBjcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYsIFN0cmluZyYm
LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKikgPSAwOworICAgIHZpcnR1YWwgQ2FwdHVyZURldmlj
ZU1hbmFnZXImIGF1ZGlvQ2FwdHVyZURldmljZU1hbmFnZXIoKSA9IDA7CiAKIHByb3RlY3RlZDoK
ICAgICBBdWRpb0NhcHR1cmVGYWN0b3J5KCkgPSBkZWZhdWx0OwpAQCAtNjgsNiArNzAsNyBAQCBj
bGFzcyBWaWRlb0NhcHR1cmVGYWN0b3J5CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+VmlkZW9DYXB0
dXJlRmFjdG9yeSgpID0gZGVmYXVsdDsKICAgICB2aXJ0dWFsIENhcHR1cmVTb3VyY2VPckVycm9y
IGNyZWF0ZVZpZGVvQ2FwdHVyZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiwgU3RyaW5nJiYs
IGNvbnN0IE1lZGlhQ29uc3RyYWludHMqKSA9IDA7CisgICAgdmlydHVhbCBDYXB0dXJlRGV2aWNl
TWFuYWdlciYgdmlkZW9DYXB0dXJlRGV2aWNlTWFuYWdlcigpID0gMDsKICAgICB2aXJ0dWFsIHZv
aWQgc2V0VmlkZW9DYXB0dXJlUGFnZVN0YXRlKGJvb2wsIGJvb2wpIHsgfQogCiBwcm90ZWN0ZWQ6
CkBAIC03OCw2ICs4MSw3IEBAIGNsYXNzIERpc3BsYXlDYXB0dXJlRmFjdG9yeSB7CiBwdWJsaWM6
CiAgICAgdmlydHVhbCB+RGlzcGxheUNhcHR1cmVGYWN0b3J5KCkgPSBkZWZhdWx0OwogICAgIHZp
cnR1YWwgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlRGlzcGxheUNhcHR1cmVTb3VyY2UoY29u
c3QgQ2FwdHVyZURldmljZSYsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqKSA9IDA7CisgICAgdmly
dHVhbCBDYXB0dXJlRGV2aWNlTWFuYWdlciYgZGlzcGxheUNhcHR1cmVEZXZpY2VNYW5hZ2VyKCkg
PSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXREaXNwbGF5Q2FwdHVyZVBhZ2VTdGF0ZShib29sICwg
Ym9vbCkgeyB9CiAKIHByb3RlY3RlZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJBdWRpb0NhcHR1cmVTb3VyY2UuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1l
ckF1ZGlvQ2FwdHVyZVNvdXJjZS5jcHAKaW5kZXggMmI3NTRkN2M0ZDY5ODNjYjU4NTQ0ZjU2M2Fj
OGE0NDgyYjFhODBmMy4uOTZlZmI5YTc2ZDg2YjdmOGU1MTNiZThiNDZhZTQ3NTJmNTUwNWI4MiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVy
L0dTdHJlYW1lckF1ZGlvQ2FwdHVyZVNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckF1ZGlvQ2FwdHVyZVNvdXJjZS5j
cHAKQEAgLTU3LDYgKzU3LDggQEAgcHVibGljOgogICAgIHsKICAgICAgICAgcmV0dXJuIEdTdHJl
YW1lckF1ZGlvQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlKFN0cmluZyB7IGRldmljZS5wZXJzaXN0ZW50
SWQoKSB9LCBXVEZNb3ZlKGhhc2hTYWx0KSwgY29uc3RyYWludHMpOwogICAgIH0KK3ByaXZhdGU6
CisgICAgQ2FwdHVyZURldmljZU1hbmFnZXImIGF1ZGlvQ2FwdHVyZURldmljZU1hbmFnZXIoKSBm
aW5hbCB7IHJldHVybiBHU3RyZWFtZXJBdWRpb0NhcHR1cmVEZXZpY2VNYW5hZ2VyOjpzaW5nbGV0
b24oKTsgfQogfTsKIAogc3RhdGljIEdTdHJlYW1lckF1ZGlvQ2FwdHVyZVNvdXJjZUZhY3Rvcnkm
IGxpYldlYlJUQ0F1ZGlvQ2FwdHVyZVNvdXJjZUZhY3RvcnkoKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lclZpZGVvQ2Fw
dHVyZVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3Ry
ZWFtZXIvR1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlLmNwcAppbmRleCA3YTBkMzBkNWU3ZDA4
NzkyYjNlOGM5MmViZDQ0YjU4OGVjYjcxZGZmLi4wMmYyZjVlMTUwYjA2Mjc4YmZlNDg2OTI5Y2Ix
ZWY4MGRjNTkwNDAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyVmlkZW9D
YXB0dXJlU291cmNlLmNwcApAQCAtNzEsNiArNzEsOCBAQCBwdWJsaWM6CiAgICAgewogICAgICAg
ICByZXR1cm4gR1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlOjpjcmVhdGUoU3RyaW5nIHsgZGV2
aWNlLnBlcnNpc3RlbnRJZCgpIH0sIFdURk1vdmUoaGFzaFNhbHQpLCBjb25zdHJhaW50cyk7CiAg
ICAgfQorcHJpdmF0ZToKKyAgICBDYXB0dXJlRGV2aWNlTWFuYWdlciYgdmlkZW9DYXB0dXJlRGV2
aWNlTWFuYWdlcigpIGZpbmFsIHsgcmV0dXJuIEdTdHJlYW1lclZpZGVvQ2FwdHVyZURldmljZU1h
bmFnZXI6OnNpbmdsZXRvbigpOyB9CiB9OwogCiBWaWRlb0NhcHR1cmVGYWN0b3J5JiBsaWJXZWJS
VENWaWRlb0NhcHR1cmVTb3VyY2VGYWN0b3J5KCkKQEAgLTg2LDYgKzg4LDggQEAgcHVibGljOgog
ICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRoaXMuCiAgICAgICAgIHJldHVybiB7IH07CiAg
ICAgfQorcHJpdmF0ZToKKyAgICBDYXB0dXJlRGV2aWNlTWFuYWdlciYgZGlzcGxheUNhcHR1cmVE
ZXZpY2VNYW5hZ2VyKCkgZmluYWwgeyByZXR1cm4gR1N0cmVhbWVyRGlzcGxheUNhcHR1cmVEZXZp
Y2VNYW5hZ2VyOjpzaW5nbGV0b24oKTsgfQogfTsKIAogRGlzcGxheUNhcHR1cmVGYWN0b3J5JiBs
aWJXZWJSVENEaXNwbGF5Q2FwdHVyZVNvdXJjZUZhY3RvcnkoKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL1JlYWx0aW1lTWVkaWFTb3Vy
Y2VDZW50ZXJMaWJXZWJSVEMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vZ3N0cmVhbWVyL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJMaWJXZWJSVEMuY3BwCmluZGV4
IDZjYWVjMTMwYzgxNDVlYTA3ZTEwNjM3OTFkNzE4NjA0MDk1NThhZGQuLjgxNmJhMTE0Yzk3MjA2
NmEzNTg5ZjFkNjk2YjlkOGQxMTRhYzZmMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyTGli
V2ViUlRDLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3Ry
ZWFtZXIvUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlckxpYldlYlJUQy5jcHAKQEAgLTI2LDcgKzI2
LDYgQEAKIAogI2luY2x1ZGUgIkdTdHJlYW1lckF1ZGlvQ2FwdHVyZVNvdXJjZS5oIgogI2luY2x1
ZGUgIkdTdHJlYW1lckNhcHR1cmVEZXZpY2UuaCIKLSNpbmNsdWRlICJHU3RyZWFtZXJDYXB0dXJl
RGV2aWNlTWFuYWdlci5oIgogI2luY2x1ZGUgIkdTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZS5o
IgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAKQEAgLTY3LDIxICs2Niw2IEBAIERpc3Bs
YXlDYXB0dXJlRmFjdG9yeSYgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlckxpYldlYlJUQzo6ZGlz
cGxheUNhcHR1cmVGYWN0b3J5CiAgICAgcmV0dXJuIEdTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJj
ZTo6ZGlzcGxheUZhY3RvcnkoKTsKIH0KIAotQ2FwdHVyZURldmljZU1hbmFnZXImIFJlYWx0aW1l
TWVkaWFTb3VyY2VDZW50ZXJMaWJXZWJSVEM6OmF1ZGlvQ2FwdHVyZURldmljZU1hbmFnZXIoKQot
ewotICAgIHJldHVybiBHU3RyZWFtZXJBdWRpb0NhcHR1cmVEZXZpY2VNYW5hZ2VyOjpzaW5nbGV0
b24oKTsKLX0KLQotQ2FwdHVyZURldmljZU1hbmFnZXImIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50
ZXJMaWJXZWJSVEM6OnZpZGVvQ2FwdHVyZURldmljZU1hbmFnZXIoKQotewotICAgIHJldHVybiBH
U3RyZWFtZXJWaWRlb0NhcHR1cmVEZXZpY2VNYW5hZ2VyOjpzaW5nbGV0b24oKTsKLX0KLQotQ2Fw
dHVyZURldmljZU1hbmFnZXImIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJMaWJXZWJSVEM6OmRp
c3BsYXlDYXB0dXJlRGV2aWNlTWFuYWdlcigpCi17Ci0gICAgcmV0dXJuIEdTdHJlYW1lckRpc3Bs
YXlDYXB0dXJlRGV2aWNlTWFuYWdlcjo6c2luZ2xldG9uKCk7Ci19Ci0KIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pICYmIFVTRShMSUJXRUJS
VEMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3Ry
ZWFtZXIvUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlckxpYldlYlJUQy5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50
ZXJMaWJXZWJSVEMuaAppbmRleCAxMGU0ZmI4MTZmMDYyMTg5YTgyODdkMGNkNzI3OGIyNTI1NzA5
ZmY2Li5jNWNjNjIyNGJhOWIwMmYxMGZmMDliZWU1YzE5M2RiZmY2MTQ5MDcwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvUmVhbHRpbWVN
ZWRpYVNvdXJjZUNlbnRlckxpYldlYlJUQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL2dzdHJlYW1lci9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyTGliV2ViUlRD
LmgKQEAgLTQ2LDEyICs0Niw2IEBAIHByaXZhdGU6CiAgICAgQXVkaW9DYXB0dXJlRmFjdG9yeSYg
YXVkaW9GYWN0b3J5UHJpdmF0ZSgpIGZpbmFsOwogICAgIFZpZGVvQ2FwdHVyZUZhY3RvcnkmIHZp
ZGVvRmFjdG9yeVByaXZhdGUoKSBmaW5hbDsKICAgICBEaXNwbGF5Q2FwdHVyZUZhY3RvcnkmIGRp
c3BsYXlDYXB0dXJlRmFjdG9yeVByaXZhdGUoKSBmaW5hbDsKLQotICAgIENhcHR1cmVEZXZpY2VN
YW5hZ2VyJiBhdWRpb0NhcHR1cmVEZXZpY2VNYW5hZ2VyKCkgZmluYWw7Ci0gICAgQ2FwdHVyZURl
dmljZU1hbmFnZXImIHZpZGVvQ2FwdHVyZURldmljZU1hbmFnZXIoKSBmaW5hbDsKLSAgICBDYXB0
dXJlRGV2aWNlTWFuYWdlciYgZGlzcGxheUNhcHR1cmVEZXZpY2VNYW5hZ2VyKCkgZmluYWw7Ci0K
LSAgICBBdWRpb0NhcHR1cmVGYWN0b3J5KiBtX2F1ZGlvRmFjdG9yeU92ZXJyaWRlIHsgbnVsbHB0
ciB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2UuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1
cmVTb3VyY2UuY3BwCmluZGV4IDAxYjVhYzk1ZWE2MDRlN2FjNjA3MmY3OTQ3ZGYzZDYyMjBlOTMx
NmQuLjcyYmU3MzA3YmFiMTljNzE4ZWY0MWExNTM1YzBkMzJkZWM3MjhhYTcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJl
U291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMv
Q29yZUF1ZGlvQ2FwdHVyZVNvdXJjZS5jcHAKQEAgLTc3NCw2ICs3NzQsMTUgQEAgQXVkaW9DYXB0
dXJlRmFjdG9yeSYgQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZTo6ZmFjdG9yeSgpCiAgICAgcmV0dXJu
IENvcmVBdWRpb0NhcHR1cmVTb3VyY2VGYWN0b3J5OjpzaW5nbGV0b24oKTsKIH0KIAorQ2FwdHVy
ZURldmljZU1hbmFnZXImIENvcmVBdWRpb0NhcHR1cmVTb3VyY2VGYWN0b3J5OjphdWRpb0NhcHR1
cmVEZXZpY2VNYW5hZ2VyKCkKK3sKKyNpZiBQTEFURk9STShNQUMpCisgICAgcmV0dXJuIENvcmVB
dWRpb0NhcHR1cmVEZXZpY2VNYW5hZ2VyOjpzaW5nbGV0b24oKTsKKyNlbHNlCisgICAgcmV0dXJu
IEFWQXVkaW9TZXNzaW9uQ2FwdHVyZURldmljZU1hbmFnZXI6OnNpbmdsZXRvbigpOworI2VuZGlm
Cit9CisKIENvcmVBdWRpb0NhcHR1cmVTb3VyY2U6OkNvcmVBdWRpb0NhcHR1cmVTb3VyY2UoU3Ry
aW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIGxhYmVsLCBTdHJpbmcmJiBoYXNoU2FsdCwgdWludDMy
X3QgcGVyc2lzdGVudElEKQogICAgIDogUmVhbHRpbWVNZWRpYVNvdXJjZShSZWFsdGltZU1lZGlh
U291cmNlOjpUeXBlOjpBdWRpbywgV1RGTW92ZShsYWJlbCksIFdURk1vdmUoZGV2aWNlSUQpLCBX
VEZNb3ZlKGhhc2hTYWx0KSkKICAgICAsIG1fY2FwdHVyZURldmljZUlEKHBlcnNpc3RlbnRJRCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3Jl
QXVkaW9DYXB0dXJlU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZS5oCmluZGV4IDlkZmJmYmEyNDAzNTE5OTZjMGQy
NWQwYjE5N2U1ZDBkYjE5MDYxZmMuLjg0YTYzNGZkYmFlZThjZTE5YTc0NDUzZGY1YmVlYmY4NzQ1
MGNiMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21h
Yy9Db3JlQXVkaW9DYXB0dXJlU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2UuaApAQCAtMTMwLDYgKzEzMCw4
IEBAIHByaXZhdGU6CiAgICAgewogICAgICAgICByZXR1cm4gQ29yZUF1ZGlvQ2FwdHVyZVNvdXJj
ZTo6Y3JlYXRlKFN0cmluZyB7IGRldmljZS5wZXJzaXN0ZW50SWQoKSB9LCBXVEZNb3ZlKGhhc2hT
YWx0KSwgY29uc3RyYWludHMpOwogICAgIH0KKworICAgIENhcHR1cmVEZXZpY2VNYW5hZ2VyJiBh
dWRpb0NhcHR1cmVEZXZpY2VNYW5hZ2VyKCkgZmluYWw7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9t
YWMvUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck1hYy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck1hYy5jcHAKaW5k
ZXggY2E0YjQ2MWI4MTY3OTcxNDU4MDU5NDRiZGMzNjYzM2VkZDNmMmM5MS4uOWQzY2ZjMWZmNmE0
ODAzYjI1MWQwMTFhOGNiMWY3ZjNlNTNlNDBiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJNYWMuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU1l
ZGlhU291cmNlQ2VudGVyTWFjLmNwcApAQCAtMzMsMTAgKzMzLDggQEAKICNpZiBFTkFCTEUoTUVE
SUFfU1RSRUFNKQogI2luY2x1ZGUgIlJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJNYWMuaCIKIAot
I2luY2x1ZGUgIkFWQXVkaW9TZXNzaW9uQ2FwdHVyZURldmljZU1hbmFnZXIuaCIKICNpbmNsdWRl
ICJBVkNhcHR1cmVEZXZpY2VNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiQVZWaWRlb0NhcHR1cmVTb3Vy
Y2UuaCIKLSNpbmNsdWRlICJDb3JlQXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlci5oIgogI2luY2x1
ZGUgIkNvcmVBdWRpb0NhcHR1cmVTb3VyY2UuaCIKICNpbmNsdWRlICJEaXNwbGF5Q2FwdHVyZU1h
bmFnZXJDb2NvYS5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKQEAgLTU1LDE0ICs1MywxNiBAQCBw
dWJsaWM6CiAgICAgICAgIHJldHVybiBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlKFN0cmlu
ZyB7IGRldmljZS5wZXJzaXN0ZW50SWQoKSB9LCBXVEZNb3ZlKGhhc2hTYWx0KSwgY29uc3RyYWlu
dHMpOwogICAgIH0KIAotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiBwcml2YXRlOgorI2lmIFBM
QVRGT1JNKElPU19GQU1JTFkpCiAgICAgdm9pZCBzZXRWaWRlb0NhcHR1cmVQYWdlU3RhdGUoYm9v
bCBpbnRlcnJ1cHRlZCwgYm9vbCBwYWdlTXV0ZWQpCiAgICAgewogICAgICAgICBpZiAoYWN0aXZl
U291cmNlKCkpCiAgICAgICAgICAgICBhY3RpdmVTb3VyY2UoKS0+c2V0SW50ZXJydXB0ZWQoaW50
ZXJydXB0ZWQsIHBhZ2VNdXRlZCk7CiAgICAgfQogI2VuZGlmCisKKyAgICBDYXB0dXJlRGV2aWNl
TWFuYWdlciYgdmlkZW9DYXB0dXJlRGV2aWNlTWFuYWdlcigpIHsgcmV0dXJuIEFWQ2FwdHVyZURl
dmljZU1hbmFnZXI6OnNpbmdsZXRvbigpOyB9CiB9OwogCiBjbGFzcyBEaXNwbGF5Q2FwdHVyZVNv
dXJjZUZhY3RvcnlNYWMgZmluYWwgOiBwdWJsaWMgRGlzcGxheUNhcHR1cmVGYWN0b3J5IHsKQEAg
LTkzLDYgKzkzLDggQEAgcHVibGljOgogCiAgICAgICAgIHJldHVybiB7IH07CiAgICAgfQorcHJp
dmF0ZToKKyAgICBDYXB0dXJlRGV2aWNlTWFuYWdlciYgZGlzcGxheUNhcHR1cmVEZXZpY2VNYW5h
Z2VyKCkgeyByZXR1cm4gRGlzcGxheUNhcHR1cmVNYW5hZ2VyQ29jb2E6OnNpbmdsZXRvbigpOyB9
CiB9OwogCiBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyTWFjJiBSZWFsdGltZU1lZGlhU291cmNl
Q2VudGVyTWFjOjpzaW5nbGV0b24oKQpAQCAtMTI5LDI1ICsxMzEsNiBAQCBEaXNwbGF5Q2FwdHVy
ZUZhY3RvcnkmIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJNYWM6OmRpc3BsYXlDYXB0dXJlRmFj
dG9yeVByaXZhdAogICAgIHJldHVybiBmYWN0b3J5LmdldCgpOwogfQogCi1DYXB0dXJlRGV2aWNl
TWFuYWdlciYgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck1hYzo6YXVkaW9DYXB0dXJlRGV2aWNl
TWFuYWdlcigpCi17Ci0jaWYgUExBVEZPUk0oTUFDKQotICAgIHJldHVybiBDb3JlQXVkaW9DYXB0
dXJlRGV2aWNlTWFuYWdlcjo6c2luZ2xldG9uKCk7Ci0jZWxzZQotICAgIHJldHVybiBBVkF1ZGlv
U2Vzc2lvbkNhcHR1cmVEZXZpY2VNYW5hZ2VyOjpzaW5nbGV0b24oKTsKLSNlbmRpZgotfQotCi1D
YXB0dXJlRGV2aWNlTWFuYWdlciYgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck1hYzo6dmlkZW9D
YXB0dXJlRGV2aWNlTWFuYWdlcigpCi17Ci0gICAgcmV0dXJuIEFWQ2FwdHVyZURldmljZU1hbmFn
ZXI6OnNpbmdsZXRvbigpOwotfQotCi1DYXB0dXJlRGV2aWNlTWFuYWdlciYgUmVhbHRpbWVNZWRp
YVNvdXJjZUNlbnRlck1hYzo6ZGlzcGxheUNhcHR1cmVEZXZpY2VNYW5hZ2VyKCkKLXsKLSAgICBy
ZXR1cm4gRGlzcGxheUNhcHR1cmVNYW5hZ2VyQ29jb2E6OnNpbmdsZXRvbigpOwotfQotCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1l
TWVkaWFTb3VyY2VDZW50ZXJNYWMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL21hYy9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyTWFjLmgKaW5kZXggYzI2ZWM3M2E3YzIw
YWIxNzI1N2QzNjFlZTA0ZDRiZjc1NzJmNGUxMy4uZWIwNzA5MjJkMjdlYjNmOWM0N2QwZDcxN2Rj
MzI2OGM5MGE3ODIwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vbWFjL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJNYWMuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck1h
Yy5oCkBAIC01MiwxMiArNTIsNiBAQCBwcml2YXRlOgogICAgIEF1ZGlvQ2FwdHVyZUZhY3Rvcnkm
IGF1ZGlvRmFjdG9yeVByaXZhdGUoKSBmaW5hbDsKICAgICBWaWRlb0NhcHR1cmVGYWN0b3J5JiB2
aWRlb0ZhY3RvcnlQcml2YXRlKCkgZmluYWw7CiAgICAgRGlzcGxheUNhcHR1cmVGYWN0b3J5JiBk
aXNwbGF5Q2FwdHVyZUZhY3RvcnlQcml2YXRlKCkgZmluYWw7Ci0KLSAgICBDYXB0dXJlRGV2aWNl
TWFuYWdlciYgYXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlcigpIGZpbmFsOwotICAgIENhcHR1cmVE
ZXZpY2VNYW5hZ2VyJiB2aWRlb0NhcHR1cmVEZXZpY2VNYW5hZ2VyKCkgZmluYWw7Ci0gICAgQ2Fw
dHVyZURldmljZU1hbmFnZXImIGRpc3BsYXlDYXB0dXJlRGV2aWNlTWFuYWdlcigpIGZpbmFsOwot
Ci0gICAgQXVkaW9DYXB0dXJlRmFjdG9yeSogbV9hdWRpb0ZhY3RvcnlPdmVycmlkZSB7IG51bGxw
dHIgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRl
ci5jcHAKaW5kZXggY2ZmYjkxNWFmMmI3MDNhZjhkYTZhYTFjNmE3YmIyNTNjNzZjOGQwNC4uNDBh
NTJiZGZlYjA5ZmMyNzY0Zjc2ZTRkMTcxNDEzM2Y4ZDA0OWFmOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVNZWRpYVNvdXJj
ZUNlbnRlci5jcHAKQEAgLTk0LDE0ICs5NCwxNSBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBN
b2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlKFN0cmluZyB7IGRldmljZS5wZXJzaXN0ZW50
SWQoKSB9LCBTdHJpbmcgeyBkZXZpY2UubGFiZWwoKSB9LCBXVEZNb3ZlKGhhc2hTYWx0KSwgY29u
c3RyYWludHMpOwogICAgIH0KIAotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiBwcml2YXRlOgor
I2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgdm9pZCBzZXRWaWRlb0NhcHR1cmVQYWdlU3Rh
dGUoYm9vbCBpbnRlcnJ1cHRlZCwgYm9vbCBwYWdlTXV0ZWQpCiAgICAgewogICAgICAgICBpZiAo
YWN0aXZlU291cmNlKCkpCiAgICAgICAgICAgICBhY3RpdmVTb3VyY2UoKS0+c2V0SW50ZXJydXB0
ZWQoaW50ZXJydXB0ZWQsIHBhZ2VNdXRlZCk7CiAgICAgfQogI2VuZGlmCisgICAgQ2FwdHVyZURl
dmljZU1hbmFnZXImIHZpZGVvQ2FwdHVyZURldmljZU1hbmFnZXIoKSBmaW5hbCB7IHJldHVybiBN
b2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkudmlkZW9DYXB0dXJlRGV2
aWNlTWFuYWdlcigpOyB9CiB9OwogCiBjbGFzcyBNb2NrUmVhbHRpbWVEaXNwbGF5U291cmNlRmFj
dG9yeSA6IHB1YmxpYyBEaXNwbGF5Q2FwdHVyZUZhY3RvcnkgewpAQCAtMTI2LDYgKzEyNyw4IEBA
IHB1YmxpYzoKIAogICAgICAgICByZXR1cm4geyB9OwogICAgIH0KK3ByaXZhdGU6CisgICAgQ2Fw
dHVyZURldmljZU1hbmFnZXImIGRpc3BsYXlDYXB0dXJlRGV2aWNlTWFuYWdlcigpIGZpbmFsIHsg
cmV0dXJuIE1vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5kaXNwbGF5
Q2FwdHVyZURldmljZU1hbmFnZXIoKTsgfQogfTsKIAogY2xhc3MgTW9ja1JlYWx0aW1lQXVkaW9T
b3VyY2VGYWN0b3J5IDogcHVibGljIEF1ZGlvQ2FwdHVyZUZhY3RvcnkgewpAQCAtMTM3LDYgKzE0
MCw4IEBAIHB1YmxpYzoKIAogICAgICAgICByZXR1cm4gTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6
OmNyZWF0ZShTdHJpbmcgeyBkZXZpY2UucGVyc2lzdGVudElkKCkgfSwgU3RyaW5nIHsgZGV2aWNl
LmxhYmVsKCkgfSwgV1RGTW92ZShoYXNoU2FsdCksIGNvbnN0cmFpbnRzKTsKICAgICB9Citwcml2
YXRlOgorICAgIENhcHR1cmVEZXZpY2VNYW5hZ2VyJiBhdWRpb0NhcHR1cmVEZXZpY2VNYW5hZ2Vy
KCkgZmluYWwgeyByZXR1cm4gTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRv
bigpLmF1ZGlvQ2FwdHVyZURldmljZU1hbmFnZXIoKTsgfQogfTsKIAogc3RhdGljIFZlY3RvcjxN
b2NrTWVkaWFEZXZpY2U+JiBkZXZpY2VzKCkKQEAgLTE3OSwxMCArMTg0LDI0IEBAIE1vY2tSZWFs
dGltZU1lZGlhU291cmNlQ2VudGVyJiBNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2lu
Z2xldG9uKCkKIHZvaWQgTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNldE1vY2tSZWFs
dGltZU1lZGlhU291cmNlQ2VudGVyRW5hYmxlZChib29sIGVuYWJsZWQpCiB7CiAgICAgc3RhdGlj
IGJvb2wgYWN0aXZlID0gZmFsc2U7Ci0gICAgaWYgKGFjdGl2ZSAhPSBlbmFibGVkKSB7Ci0gICAg
ICAgIGFjdGl2ZSA9IGVuYWJsZWQ7Ci0gICAgICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6
OnNldFNoYXJlZFN0cmVhbUNlbnRlck92ZXJyaWRlKGVuYWJsZWQgPyAmc2luZ2xldG9uKCkgOiBu
dWxscHRyKTsKKyAgICBpZiAoYWN0aXZlID09IGVuYWJsZWQpCisgICAgICAgIHJldHVybjsKKwor
ICAgIGFjdGl2ZSA9IGVuYWJsZWQ7CisKKyAgICBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyJiBj
ZW50ZXIgPSBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKTsKKyAgICBNb2Nr
UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlciYgbW9jayA9IHNpbmdsZXRvbigpOworCisgICAgaWYg
KGFjdGl2ZSkgeworICAgICAgICBjZW50ZXIuc2V0QXVkaW9GYWN0b3J5KG1vY2suYXVkaW9GYWN0
b3J5KCkpOworICAgICAgICBjZW50ZXIuc2V0VmlkZW9GYWN0b3J5KG1vY2sudmlkZW9GYWN0b3J5
KCkpOworICAgICAgICBjZW50ZXIuc2V0RGlzcGxheUNhcHR1cmVGYWN0b3J5KG1vY2suZGlzcGxh
eUNhcHR1cmVGYWN0b3J5KCkpOworICAgICAgICByZXR1cm47CiAgICAgfQorCisgICAgY2VudGVy
LnVuc2V0QXVkaW9GYWN0b3J5KG1vY2suYXVkaW9GYWN0b3J5KCkpOworICAgIGNlbnRlci51bnNl
dFZpZGVvRmFjdG9yeShtb2NrLnZpZGVvRmFjdG9yeSgpKTsKKyAgICBjZW50ZXIudW5zZXREaXNw
bGF5Q2FwdHVyZUZhY3RvcnkobW9jay5kaXNwbGF5Q2FwdHVyZUZhY3RvcnkoKSk7CiB9CiAKIHN0
YXRpYyB2b2lkIGNyZWF0ZUNhcHR1cmVEZXZpY2UoY29uc3QgTW9ja01lZGlhRGV2aWNlJiBkZXZp
Y2UpCkBAIC0zMTAsMTkgKzMyOSwxOSBAQCBWZWN0b3I8Q2FwdHVyZURldmljZT4mIE1vY2tSZWFs
dGltZU1lZGlhU291cmNlQ2VudGVyOjpkaXNwbGF5RGV2aWNlcygpCiAgICAgcmV0dXJuIGRpc3Bs
YXlEZXZpY2VzOwogfQogCi1BdWRpb0NhcHR1cmVGYWN0b3J5JiBNb2NrUmVhbHRpbWVNZWRpYVNv
dXJjZUNlbnRlcjo6YXVkaW9GYWN0b3J5UHJpdmF0ZSgpCitBdWRpb0NhcHR1cmVGYWN0b3J5JiBN
b2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6YXVkaW9GYWN0b3J5KCkKIHsKICAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8TW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2VGYWN0b3J5PiBmYWN0b3J5
OwogICAgIHJldHVybiBmYWN0b3J5LmdldCgpOwogfQogCi1WaWRlb0NhcHR1cmVGYWN0b3J5JiBN
b2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6dmlkZW9GYWN0b3J5UHJpdmF0ZSgpCitWaWRl
b0NhcHR1cmVGYWN0b3J5JiBNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6dmlkZW9GYWN0
b3J5KCkKIHsKICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8TW9ja1JlYWx0aW1lVmlkZW9Tb3Vy
Y2VGYWN0b3J5PiBmYWN0b3J5OwogICAgIHJldHVybiBmYWN0b3J5LmdldCgpOwogfQogCi1EaXNw
bGF5Q2FwdHVyZUZhY3RvcnkmIE1vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpkaXNwbGF5
Q2FwdHVyZUZhY3RvcnlQcml2YXRlKCkKK0Rpc3BsYXlDYXB0dXJlRmFjdG9yeSYgTW9ja1JlYWx0
aW1lTWVkaWFTb3VyY2VDZW50ZXI6OmRpc3BsYXlDYXB0dXJlRmFjdG9yeSgpCiB7CiAgICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPE1vY2tSZWFsdGltZURpc3BsYXlTb3VyY2VGYWN0b3J5PiBmYWN0
b3J5OwogICAgIHJldHVybiBmYWN0b3J5LmdldCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oCmlu
ZGV4IGY0OTExNDA4ODQ0MTI0ZmQ3ZTZjMDFmZTc3NGMyNjg3YTUyMTI3NTQuLjQ0ZjkzOGI1MjIw
YzNjOTUyOGUxZDVjMGEyNTU3YmY2YjA1N2ZkMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmgK
QEAgLTM2LDggKzM2LDEwIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgTW9ja1Jl
YWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIgZmluYWwgOiBwdWJsaWMgUmVhbHRpbWVNZWRpYVNvdXJj
ZUNlbnRlciB7CitjbGFzcyBNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlciB7CiBwdWJsaWM6
CisgICAgc3RhdGljIE1vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyJiBzaW5nbGV0b24oKTsK
KwogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyB2b2lkIHNldE1vY2tSZWFsdGltZU1lZGlhU291
cmNlQ2VudGVyRW5hYmxlZChib29sKTsKIAogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyB2b2lk
IHNldERldmljZXMoVmVjdG9yPE1vY2tNZWRpYURldmljZT4mJik7CkBAIC01MiwxOSArNTQsMTcg
QEAgcHVibGljOgogICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPE1vY2tNZWRpYURldmljZT4gbW9j
a0RldmljZVdpdGhQZXJzaXN0ZW50SUQoY29uc3QgU3RyaW5nJik7CiAgICAgc3RhdGljIHN0ZDo6
b3B0aW9uYWw8Q2FwdHVyZURldmljZT4gY2FwdHVyZURldmljZVdpdGhQZXJzaXN0ZW50SUQoQ2Fw
dHVyZURldmljZTo6RGV2aWNlVHlwZSwgY29uc3QgU3RyaW5nJik7CiAKKyAgICBDYXB0dXJlRGV2
aWNlTWFuYWdlciYgYXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlcigpIHsgcmV0dXJuIG1fYXVkaW9D
YXB0dXJlRGV2aWNlTWFuYWdlcjsgfQorICAgIENhcHR1cmVEZXZpY2VNYW5hZ2VyJiB2aWRlb0Nh
cHR1cmVEZXZpY2VNYW5hZ2VyKCkgeyByZXR1cm4gbV92aWRlb0NhcHR1cmVEZXZpY2VNYW5hZ2Vy
OyB9CisgICAgQ2FwdHVyZURldmljZU1hbmFnZXImIGRpc3BsYXlDYXB0dXJlRGV2aWNlTWFuYWdl
cigpIHsgcmV0dXJuIG1fZGlzcGxheUNhcHR1cmVEZXZpY2VNYW5hZ2VyOyB9CisKIHByaXZhdGU6
CiAgICAgTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIoKSA9IGRlZmF1bHQ7CiAgICAgZnJp
ZW5kIE5ldmVyRGVzdHJveWVkPE1vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyPjsKIAotICAg
IHN0YXRpYyBNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlciYgc2luZ2xldG9uKCk7Ci0KLSAg
ICBBdWRpb0NhcHR1cmVGYWN0b3J5JiBhdWRpb0ZhY3RvcnlQcml2YXRlKCkgZmluYWw7Ci0gICAg
VmlkZW9DYXB0dXJlRmFjdG9yeSYgdmlkZW9GYWN0b3J5UHJpdmF0ZSgpIGZpbmFsOwotICAgIERp
c3BsYXlDYXB0dXJlRmFjdG9yeSYgZGlzcGxheUNhcHR1cmVGYWN0b3J5UHJpdmF0ZSgpIGZpbmFs
OwotCi0gICAgQ2FwdHVyZURldmljZU1hbmFnZXImIGF1ZGlvQ2FwdHVyZURldmljZU1hbmFnZXIo
KSBmaW5hbCB7IHJldHVybiBtX2F1ZGlvQ2FwdHVyZURldmljZU1hbmFnZXI7IH0KLSAgICBDYXB0
dXJlRGV2aWNlTWFuYWdlciYgdmlkZW9DYXB0dXJlRGV2aWNlTWFuYWdlcigpIGZpbmFsIHsgcmV0
dXJuIG1fdmlkZW9DYXB0dXJlRGV2aWNlTWFuYWdlcjsgfQotICAgIENhcHR1cmVEZXZpY2VNYW5h
Z2VyJiBkaXNwbGF5Q2FwdHVyZURldmljZU1hbmFnZXIoKSBmaW5hbCB7IHJldHVybiBtX2Rpc3Bs
YXlDYXB0dXJlRGV2aWNlTWFuYWdlcjsgfQorICAgIEF1ZGlvQ2FwdHVyZUZhY3RvcnkmIGF1ZGlv
RmFjdG9yeSgpOworICAgIFZpZGVvQ2FwdHVyZUZhY3RvcnkmIHZpZGVvRmFjdG9yeSgpOworICAg
IERpc3BsYXlDYXB0dXJlRmFjdG9yeSYgZGlzcGxheUNhcHR1cmVGYWN0b3J5KCk7CiAKICAgICBj
bGFzcyBNb2NrQXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlciBmaW5hbCA6IHB1YmxpYyBDYXB0dXJl
RGV2aWNlTWFuYWdlciB7CiAgICAgcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxz
LmNwcAppbmRleCA3N2JmYzk4MjFhNWRjZjA1NDQwOGIyOGU3MTBjMWIzYWRmMjM2NDkyLi4xMjI3
NGExMTZkNDM5YWUwMjI5NGI1M2M0M2JiMWZhZDRiMjc0N2U3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbHMuY3BwCkBAIC00NTMzLDI3ICs0NTMzLDYgQEAgdm9pZCBJbnRlcm5hbHM6OnZp
ZGVvU2FtcGxlQXZhaWxhYmxlKE1lZGlhU2FtcGxlJiBzYW1wbGUpCiAgICAgbV9uZXh0VHJhY2tG
cmFtZVByb21pc2UgPSBzdGQ6Om51bGxvcHQ7CiB9CiAKLUV4Y2VwdGlvbk9yPHZvaWQ+IEludGVy
bmFsczo6c2V0TWVkaWFEZXZpY2VTdGF0ZShjb25zdCBTdHJpbmcmIGlkLCBjb25zdCBTdHJpbmcm
IHByb3BlcnR5LCBib29sIHZhbHVlKQotewotICAgIGF1dG8qIGRvY3VtZW50ID0gY29udGV4dERv
Y3VtZW50KCk7Ci0gICAgaWYgKCFkb2N1bWVudCkKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7
IEludmFsaWRBY2Nlc3NFcnJvciwgIk5vIGNvbnRleHQgZG9jdW1lbnQiX3MgfTsKLQotICAgIGlm
ICghZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UocHJvcGVydHksICJlbmFibGVkIikpCi0g
ICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkQWNjZXNzRXJyb3IsIG1ha2VTdHJpbmco
IlwiIiArIHByb3BlcnR5LCAiXCIgaXMgbm90IGEgdmFsaWQgcHJvcGVydHkgZm9yIHRoaXMgbWV0
aG9kLiIpIH07Ci0KLSAgICBhdXRvIHNhbHQgPSBkb2N1bWVudC0+ZGV2aWNlSURIYXNoU2FsdCgp
OwotICAgIENhcHR1cmVEZXZpY2UgZGV2aWNlID0gUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6
c2luZ2xldG9uKCkuY2FwdHVyZURldmljZVdpdGhVbmlxdWVJRChpZCwgc2FsdCk7Ci0gICAgaWYg
KCFkZXZpY2UpCi0gICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkQWNjZXNzRXJyb3Is
IG1ha2VTdHJpbmcoImRldmljZSB3aXRoIElEIFwiIiArIGlkLCAiXCIgbm90IGZvdW5kLiIpIH07
Ci0KLSAgICBhdXRvIHJlc3VsdCA9IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRv
bigpLnNldERldmljZUVuYWJsZWQoZGV2aWNlLnBlcnNpc3RlbnRJZCgpLCB2YWx1ZSk7Ci0gICAg
aWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkKLSAgICAgICAgcmV0dXJuIHJlc3VsdC5yZWxlYXNl
RXhjZXB0aW9uKCk7Ci0KLSAgICByZXR1cm4geyB9OwotfQotCiB2b2lkIEludGVybmFsczo6ZGVs
YXlNZWRpYVN0cmVhbVRyYWNrU2FtcGxlcyhNZWRpYVN0cmVhbVRyYWNrJiB0cmFjaywgZmxvYXQg
ZGVsYXkpCiB7CiAgICAgdHJhY2suc291cmNlKCkuZGVsYXlTYW1wbGVzKFNlY29uZHMgeyBkZWxh
eSB9KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmggYi9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCmluZGV4IDhhZTM0NDNiYjEwYWRiZDUx
ZmEwMWNhNTI2MjMyMGJjMGU1YzhmMzguLjg2NDcwODhlZDg1YmU1Yzk0ZTEzMGZjNDRhYTg5NjI0
NzYyYzVlZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaApAQCAtNjc3LDcgKzY3Nyw2
IEBAIHB1YmxpYzoKIAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgdm9pZCBzZXRDYW1l
cmFNZWRpYVN0cmVhbVRyYWNrT3JpZW50YXRpb24oTWVkaWFTdHJlYW1UcmFjayYsIGludCBvcmll
bnRhdGlvbik7Ci0gICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0TWVkaWFEZXZpY2VTdGF0ZShjb25z
dCBTdHJpbmcmIGlkLCBjb25zdCBTdHJpbmcmIHByb3BlcnR5LCBib29sIHZhbHVlKTsKICAgICB1
bnNpZ25lZCBsb25nIHRyYWNrQXVkaW9TYW1wbGVDb3VudCgpIGNvbnN0IHsgcmV0dXJuIG1fdHJh
Y2tBdWRpb1NhbXBsZUNvdW50OyB9CiAgICAgdW5zaWduZWQgbG9uZyB0cmFja1ZpZGVvU2FtcGxl
Q291bnQoKSBjb25zdCB7IHJldHVybiBtX3RyYWNrVmlkZW9TYW1wbGVDb3VudDsgfQogICAgIHZv
aWQgb2JzZXJ2ZU1lZGlhU3RyZWFtVHJhY2soTWVkaWFTdHJlYW1UcmFjayYpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsIGIvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbHMuaWRsCmluZGV4IDI3MTkzNDYxMTRiZDBjYmIxNmUwMTQ1MjA2MmYx
ZmU0ZjYyY2Y5NjUuLmI3NmMyYTlkN2E5NWQzM2QwNDg5MDcwYTNjZDk3ZmU1YmM3MDRkY2EgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKQEAgLTY2NCw3ICs2NjQsNiBAQCBlbnVt
IENvbXBvc2l0aW5nUG9saWN5IHsKICAgICBbQ29uZGl0aW9uYWw9TUVESUFfU1RSRUFNXSBQcm9t
aXNlPEltYWdlRGF0YT4gZ3JhYk5leHRNZWRpYVN0cmVhbVRyYWNrRnJhbWUoKTsKICAgICBbQ29u
ZGl0aW9uYWw9TUVESUFfU1RSRUFNXSByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyB0
cmFja0F1ZGlvU2FtcGxlQ291bnQ7CiAgICAgW0NvbmRpdGlvbmFsPU1FRElBX1NUUkVBTV0gcmVh
ZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgdHJhY2tWaWRlb1NhbXBsZUNvdW50OwotICAg
IFtDb25kaXRpb25hbD1NRURJQV9TVFJFQU0sIE1heVRocm93RXhjZXB0aW9uXSB2b2lkIHNldE1l
ZGlhRGV2aWNlU3RhdGUoRE9NU3RyaW5nIGRldmljZUlELCBET01TdHJpbmcgcHJvcGVydHksIGJv
b2xlYW4gdmFsdWUpOwogICAgIFtDb25kaXRpb25hbD1NRURJQV9TVFJFQU1dIHZvaWQgZGVsYXlN
ZWRpYVN0cmVhbVRyYWNrU2FtcGxlcyhNZWRpYVN0cmVhbVRyYWNrIHRyYWNrLCBmbG9hdCBkZWxh
eSk7CiAgICAgW0NvbmRpdGlvbmFsPU1FRElBX1NUUkVBTV0gdm9pZCBzZXRNZWRpYVN0cmVhbVRy
YWNrTXV0ZWQoTWVkaWFTdHJlYW1UcmFjayB0cmFjaywgYm9vbGVhbiBtdXRlZCk7CiAgICAgW0Nv
bmRpdGlvbmFsPU1FRElBX1NUUkVBTV0gdm9pZCByZW1vdmVNZWRpYVN0cmVhbVRyYWNrKE1lZGlh
U3RyZWFtIHN0cmVhbSwgTWVkaWFTdHJlYW1UcmFjayB0cmFjayk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL01vY2tMaWJXZWJSVENQZWVyQ29ubmVjdGlvbi5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL01vY2tMaWJXZWJSVENQZWVyQ29ubmVjdGlvbi5jcHAKaW5kZXgg
MTU5N2ViNzFlZGQ1ZjdjMDNiZTg2YjY1YjhkOTE0Y2YwMmU2MmU5Yy4uMjE5MmI5M2MyNzlhMGYz
MjhiZDQxOWUxYTVjMzk1NjZjYzlmMzJkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9Nb2NrTGliV2ViUlRDUGVlckNvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvTW9ja0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uLmNwcApAQCAtNjYsNyArNjYsNyBA
QCB2b2lkIHVzZU1vY2tSVENQZWVyQ29ubmVjdGlvbkZhY3RvcnkoTGliV2ViUlRDUHJvdmlkZXIq
IHByb3ZpZGVyLCBjb25zdCBTdHJpbmcmCiAgICAgICAgIGF1dG8mIGZhY3RvcnkgPSBnZXRSZWFs
UGVlckNvbm5lY3Rpb25GYWN0b3J5KCk7CiAgICAgICAgIGZhY3RvcnkgPSBwcm92aWRlci0+ZmFj
dG9yeSgpOwogICAgIH0KLSAgICBwcm92aWRlci0+c2V0UGVlckNvbm5lY3Rpb25GYWN0b3J5KE1v
Y2tMaWJXZWJSVENQZWVyQ29ubmVjdGlvbkZhY3Rvcnk6OmNyZWF0ZShTdHJpbmcodGVzdENhc2Up
KSk7CisgICAgcHJvdmlkZXItPnNldFBlZXJDb25uZWN0aW9uRmFjdG9yeShNb2NrTGliV2ViUlRD
UGVlckNvbm5lY3Rpb25GYWN0b3J5OjpjcmVhdGUodGVzdENhc2UpKTsKIH0KIAogTW9ja0xpYldl
YlJUQ1BlZXJDb25uZWN0aW9uOjp+TW9ja0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uKCkKQEAgLTE2
Nyw4ICsxNjcsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgU2V0TG9jYWxEZXNjcmlwdGlvbih3ZWJy
dGM6OlNldFNlc3Npb25EZXNjcmlwdGlvbk9ic2VydmVyKiBvYnNlcnZlciwgd2VicnRjOjpTZXNz
aW9uRGVzY3JpcHRpb25JbnRlcmZhY2UqKSBmaW5hbCB7IHJlbGVhc2VJbk5ldHdvcmtUaHJlYWQo
KnRoaXMsICpvYnNlcnZlcik7IH0KIH07CiAKLU1vY2tMaWJXZWJSVENQZWVyQ29ubmVjdGlvbkZh
Y3Rvcnk6Ok1vY2tMaWJXZWJSVENQZWVyQ29ubmVjdGlvbkZhY3RvcnkoU3RyaW5nJiYgdGVzdENh
c2UpCi0gICAgOiBtX3Rlc3RDYXNlKFdURk1vdmUodGVzdENhc2UpKQorTW9ja0xpYldlYlJUQ1Bl
ZXJDb25uZWN0aW9uRmFjdG9yeTo6TW9ja0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uRmFjdG9yeShj
b25zdCBTdHJpbmcmIHRlc3RDYXNlKQorICAgIDogbV90ZXN0Q2FzZSh0ZXN0Q2FzZS5pc29sYXRl
ZENvcHkoKSkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2Nr
TGliV2ViUlRDUGVlckNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja0xp
YldlYlJUQ1BlZXJDb25uZWN0aW9uLmgKaW5kZXggNzdhMjE3MGUzMTcxMDllYjA1NDAwNDQ1YjQ5
MzU2MDE1NDg0YzdlZC4uYmUzYzYzZjBmZjlmNWIwMmI4Y2RlYjBjYjMxM2I5ZTE2Mzg0MmY1YyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrTGliV2ViUlRDUGVlckNvbm5l
Y3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tMaWJXZWJSVENQZWVyQ29u
bmVjdGlvbi5oCkBAIC0yMzUsMTAgKzIzNSwxMCBAQCBwcml2YXRlOgogICAgIAogY2xhc3MgTW9j
a0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uRmFjdG9yeSA6IHB1YmxpYyB3ZWJydGM6OlBlZXJDb25u
ZWN0aW9uRmFjdG9yeUludGVyZmFjZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIHJ0Yzo6c2NvcGVk
X3JlZnB0cjx3ZWJydGM6OlBlZXJDb25uZWN0aW9uRmFjdG9yeUludGVyZmFjZT4gY3JlYXRlKFN0
cmluZyYmIHRlc3RDYXNlKSB7IHJldHVybiBuZXcgcnRjOjpSZWZDb3VudGVkT2JqZWN0PE1vY2tM
aWJXZWJSVENQZWVyQ29ubmVjdGlvbkZhY3Rvcnk+KFdURk1vdmUodGVzdENhc2UpKTsgfQorICAg
IHN0YXRpYyBydGM6OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpQZWVyQ29ubmVjdGlvbkZhY3RvcnlJ
bnRlcmZhY2U+IGNyZWF0ZShjb25zdCBTdHJpbmcmIHRlc3RDYXNlKSB7IHJldHVybiBuZXcgcnRj
OjpSZWZDb3VudGVkT2JqZWN0PE1vY2tMaWJXZWJSVENQZWVyQ29ubmVjdGlvbkZhY3Rvcnk+KHRl
c3RDYXNlKTsgfQogCiBwcm90ZWN0ZWQ6Ci0gICAgTW9ja0xpYldlYlJUQ1BlZXJDb25uZWN0aW9u
RmFjdG9yeShTdHJpbmcmJik7CisgICAgZXhwbGljaXQgTW9ja0xpYldlYlJUQ1BlZXJDb25uZWN0
aW9uRmFjdG9yeShjb25zdCBTdHJpbmcmKTsKIAogcHJpdmF0ZToKICAgICBydGM6OnNjb3BlZF9y
ZWZwdHI8d2VicnRjOjpQZWVyQ29ubmVjdGlvbkludGVyZmFjZT4gQ3JlYXRlUGVlckNvbm5lY3Rp
b24oY29uc3Qgd2VicnRjOjpQZWVyQ29ubmVjdGlvbkludGVyZmFjZTo6UlRDQ29uZmlndXJhdGlv
biYsIHdlYnJ0Yzo6UGVlckNvbm5lY3Rpb25EZXBlbmRlbmNpZXMpIGZpbmFsOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFu
YWdlci5jcHAKaW5kZXggOTYwOGU2ODNmMzc4YjMwYzA5NmQxZmQyYzNjMDljNmMyNzVkNjFhMS4u
ODI3MWZkMDdiNjcyZjhkZjU0Zjg2MzVlNmIyMzc4NjMzOGRkOGExNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXIuY3BwCkBAIC0yMDcsNiArMjA3LDcgQEAgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6On5Vc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlcigpCiB7CiAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6
dW5zZXRBdWRpb0ZhY3RvcnkoKnRoaXMpOwogICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6
OnVuc2V0RGlzcGxheUNhcHR1cmVGYWN0b3J5KCp0aGlzKTsKKyAgICBSZWFsdGltZU1lZGlhU291
cmNlQ2VudGVyOjp1bnNldFZpZGVvRmFjdG9yeSgqdGhpcyk7CiAgICAgbV9wcm9jZXNzLnJlbW92
ZU1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6Om1lc3Nh
Z2VSZWNlaXZlck5hbWUoKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmgKaW5kZXggOGVhYjAxNzBkMDdl
ODUzZWY5NmQyNjgzNzYxOWQ4OWQxMDk3YWJlNy4uYWQxYmU3Y2NlZGQ2YWU0MzA4ZmM0ZmVmMDI4
YzM3N2I0YTllMGJkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29h
L1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmgKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNs
dWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKICNpbmNsdWRlICJTaGFyZWRNZW1vcnkuaCIKICNpbmNs
dWRlICJXZWJQcm9jZXNzU3VwcGxlbWVudC5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQ2FwdHVyZURl
dmljZU1hbmFnZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3VyY2UuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3VyY2VGYWN0b3J5Lmg+CiAjaW5jbHVk
ZSA8d3RmL0hhc2hNYXAuaD4KQEAgLTYxLDYgKzYyLDIzIEBAIHByaXZhdGU6CiAgICAgV2ViQ29y
ZTo6Q2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlRGlzcGxheUNhcHR1cmVTb3VyY2UoY29uc3Qg
V2ViQ29yZTo6Q2FwdHVyZURldmljZSYgZGV2aWNlLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0
cmFpbnRzKiBjb25zdHJhaW50cykgZmluYWwgIHsgcmV0dXJuIGNyZWF0ZUNhcHR1cmVTb3VyY2Uo
ZGV2aWNlLCB7IH0sIGNvbnN0cmFpbnRzKTsgfQogICAgIFdlYkNvcmU6OkNhcHR1cmVTb3VyY2VP
ckVycm9yIGNyZWF0ZUNhcHR1cmVTb3VyY2UoY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYs
IFN0cmluZyYmLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzKik7CiAKKyAgICBjbGFz
cyBOb09wQ2FwdHVyZURldmljZU1hbmFnZXIgOiBwdWJsaWMgV2ViQ29yZTo6Q2FwdHVyZURldmlj
ZU1hbmFnZXIgeworICAgIHB1YmxpYzoKKyAgICAgICAgTm9PcENhcHR1cmVEZXZpY2VNYW5hZ2Vy
KCkgPSBkZWZhdWx0OworCisgICAgcHJpdmF0ZToKKyAgICAgICAgY29uc3QgVmVjdG9yPFdlYkNv
cmU6OkNhcHR1cmVEZXZpY2U+JiBjYXB0dXJlRGV2aWNlcygpIGZpbmFsCisgICAgICAgIHsKKyAg
ICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgcmV0dXJuIG1fZW1w
dHlEZXZpY2VzOworICAgICAgICB9CisgICAgICAgIFZlY3RvcjxXZWJDb3JlOjpDYXB0dXJlRGV2
aWNlPiBtX2VtcHR5RGV2aWNlczsKKyAgICB9OworCisgICAgV2ViQ29yZTo6Q2FwdHVyZURldmlj
ZU1hbmFnZXImIGF1ZGlvQ2FwdHVyZURldmljZU1hbmFnZXIoKSBmaW5hbCB7IHJldHVybiBtX25v
T3BDYXB0dXJlRGV2aWNlTWFuYWdlcjsgfQorICAgIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2VNYW5h
Z2VyJiB2aWRlb0NhcHR1cmVEZXZpY2VNYW5hZ2VyKCkgZmluYWwgeyByZXR1cm4gbV9ub09wQ2Fw
dHVyZURldmljZU1hbmFnZXI7IH0KKyAgICBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlTWFuYWdlciYg
ZGlzcGxheUNhcHR1cmVEZXZpY2VNYW5hZ2VyKCkgZmluYWwgeyByZXR1cm4gbV9ub09wQ2FwdHVy
ZURldmljZU1hbmFnZXI7IH0KKwogICAgIC8vIElQQzo6TWVzc2FnZVJlY2VpdmVyCiAgICAgdm9p
ZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBmaW5h
bDsKIApAQCAtODYsNiArMTA0LDcgQEAgcHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3MgU291cmNl
OwogICAgIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxTb3VyY2U+PiBtX3NvdXJjZXM7CiAgICAg
V2ViUHJvY2VzcyYgbV9wcm9jZXNzOworICAgIE5vT3BDYXB0dXJlRGV2aWNlTWFuYWdlciBtX25v
T3BDYXB0dXJlRGV2aWNlTWFuYWdlcjsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>356941</attachid>
            <date>2018-12-09 20:52:09 -0800</date>
            <delta_ts>2018-12-09 21:30:32 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-192542-20181209205206.patch</filename>
            <type>text/plain</type>
            <size>37799</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM5MDEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmY3M2YyMTdmMTI1NjJl
OGIzZmI5NjNkMzkyYjNjMDQwNjk2YTEzNS4uYzNmYmQ3MzI4ZjkzYmQxMzlkZDNkMDg5NTVmODcw
NmU5NzY2MzYxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU4IEBACisyMDE4LTEyLTA5ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBNb3ZlIGNhcHR1cmUgbWFu
YWdlciBmcm9tIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIgdG8gY2FwdHVyZSBmYWN0b3J5Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTI1NDIKKwor
ICAgICAgICBSZXZpZXdlZCBieSBFcmljIENhcmxzb24uCisKKyAgICAgICAgV2Ugc2hvdWxkIGJl
IGFibGUgdG8gcnVuIG1vY2sgY2FwdHVyZXMgaW4gd2l0aGVyIFVJUHJvY2VzcyBvciBXZWJQcm9j
ZXNzLgorICAgICAgICBDdXJyZW50bHksIG1vY2sgY2FwdHVyZSBpcyBvbmx5IGRvbmUgaW4gV2Vi
UHJvY2Vzcy4KKyAgICAgICAgVGhpcyBwYXRjaCBpcyBhIGZpcnN0IHN0ZXAgdG93YXJkcyB0aGF0
IGdvYWwuCisKKyAgICAgICAgSXQgYWxzbyBzaW1wbGlmaWVzIFJlYWx0aW1lTWVkaWFTb3VyY2VD
ZW50ZXIgaW1wbGVtZW50YXRpb24gYnkgc3RhcnRpbmcgdG8gcmVtb3ZlIHZpcnR1YWwgbWV0aG9k
cy4KKyAgICAgICAgRnVydGhlciByZWZhY3RvcmluZyB3aWxsIHJlbW92ZSB0aGUgbmVlZCB0byBz
dWJjbGFzcyBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLgorICAgICAgICBJbnN0ZWFkLCByZW1h
aW5pbmcgdmlydHVhbCBtZXRob2RzIHdpbGwgYmVjb21lIG5vbiB2aXJ0dWFsIGFuZCB0aGVpcgor
ICAgICAgICBpbXBsZW1lbnRhdGlvbiB3aWxsIGJlY29tZSBwb3J0IHNwZWNpZmljLgorCisgICAg
ICAgIFJlbW92ZWQgYSBKUyBpbnRlcm5hbCBtZXRob2QgdGhhdCBpcyBub3QgbG9uZ2VyIHVzZWQg
dG8gZnVydGhlciBzaW1wbGlmeSBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLgorCisgICAgICAg
IE5vIHZpc2libGUgY2hhbmdlIG9mIGJlaGF2aW9yLgorICAgICAgICBDb3ZlcmVkIGJ5IGV4aXN0
aW5nIHRlc3RzLgorCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vQ2FwdHVyZURldmlj
ZU1hbmFnZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlh
U291cmNlQ2VudGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VD
ZW50ZXI6OnNpbmdsZXRvbik6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNl
Q2VudGVyOjpnZXRNZWRpYVN0cmVhbURldmljZXMpOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRp
bWVNZWRpYVNvdXJjZUNlbnRlcjo6Z2V0RGlzcGxheU1lZGlhRGV2aWNlcyk6CisgICAgICAgIChX
ZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpnZXRVc2VyTWVkaWFEZXZpY2VzKToK
KyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OmNhcHR1cmVEZXZp
Y2VXaXRoUGVyc2lzdGVudElEKToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3Vy
Y2VDZW50ZXI6OnVuc2V0QXVkaW9GYWN0b3J5KToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1l
TWVkaWFTb3VyY2VDZW50ZXI6OnVuc2V0VmlkZW9GYWN0b3J5KToKKyAgICAgICAgKFdlYkNvcmU6
OlJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnVuc2V0RGlzcGxheUNhcHR1cmVGYWN0b3J5KToK
KyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVy
Lmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUZh
Y3RvcnkuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVh
bWVyQXVkaW9DYXB0dXJlU291cmNlLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVh
bS9nc3RyZWFtZXIvR1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlLmNwcDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlckxp
YldlYlJUQy5jcHA6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL1Jl
YWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJMaWJXZWJSVEMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpDb3JlQXVkaW9DYXB0dXJlU291cmNlRmFjdG9yeTo6YXVkaW9DYXB0dXJlRGV2aWNlTWFu
YWdlcik6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1
cmVTb3VyY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVN
ZWRpYVNvdXJjZUNlbnRlck1hYy5jcHA6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0v
bWFjL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJNYWMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9t
b2NrL01vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
Ok1vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzZXRNb2NrUmVhbHRpbWVNZWRpYVNvdXJj
ZUNlbnRlckVuYWJsZWQpOgorICAgICAgICAoV2ViQ29yZTo6TW9ja1JlYWx0aW1lTWVkaWFTb3Vy
Y2VDZW50ZXI6OmF1ZGlvRmFjdG9yeSk6CisgICAgICAgIChXZWJDb3JlOjpNb2NrUmVhbHRpbWVN
ZWRpYVNvdXJjZUNlbnRlcjo6dmlkZW9GYWN0b3J5KToKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tS
ZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpkaXNwbGF5Q2FwdHVyZUZhY3RvcnkpOgorICAgICAg
ICAqIHBsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuaDoKKyAgICAg
ICAgKFdlYkNvcmU6Ok1vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjphdWRpb0NhcHR1cmVE
ZXZpY2VNYW5hZ2VyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tSZWFsdGltZU1lZGlhU291cmNl
Q2VudGVyOjp2aWRlb0NhcHR1cmVEZXZpY2VNYW5hZ2VyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1v
Y2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpkaXNwbGF5Q2FwdHVyZURldmljZU1hbmFnZXIp
OgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKiB0ZXN0aW5nL0lu
dGVybmFscy5oOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmlkbDoKKwogMjAxOC0xMi0w
OCAgRnJlZGVyaWMgV2FuZyAgPGZ3YW5nQGlnYWxpYS5jb20+CiAKICAgICAgICAgQWxsb3cgY29u
dHJvbCBvdmVyIGNoaWxkIG9yZGVyIHdoZW4gYWRkaW5nIG5vZGVzIHRvIHRoZSBzY3JvbGxpbmcg
dHJlZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwppbmRleCA5OWJjYWM1Zjk1ODM2ZDc4YTZiNjMxYWE4ZDBlNWU3ODRiOTU4YTBm
Li41ZmMyOGVmYWViMTYzNTQ1N2Q0YTFhMTA4YTY2M2Q3MjFjOGU1MzgxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAt
MSwzICsxLDIzIEBACisyMDE4LTEyLTA5ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNv
bT4KKworICAgICAgICBNb3ZlIGNhcHR1cmUgbWFuYWdlciBmcm9tIFJlYWx0aW1lTWVkaWFTb3Vy
Y2VDZW50ZXIgdG8gY2FwdHVyZSBmYWN0b3J5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xOTI1NDIKKworICAgICAgICBSZXZpZXdlZCBieSBFcmljIENh
cmxzb24uCisKKyAgICAgICAgTWFrZSBzdXJlIHRvIHVucmVnaXN0ZXIgZm9yIHZpZGVvIGNhcHR1
cmUgYXMgZG9uZSBmb3Igb3RoZXIgY2FwdHVyZSB0eXBlcy4KKyAgICAgICAgSW1wbGVtZW50IG1h
bmFnZXIgd2hpY2ggc2hvdWxkIGJlIGRvaW5nIG5vdGhpbmcgYXMgdGhlIG1hbmFnZXIgaXMgdXNl
ZCBmb3IgZW51bWVyYXRpb24gb2YgZGV2aWNlcworICAgICAgICB3aGljaCBzaG91bGQgb25seSBo
YXBwZW4gaW4gVUlQcm9jZXNzLgorCisgICAgICAgIEdpdmVuIHRoYXQgbW9jayBjYXB0dXJlIGlz
IGludGVyZmVyaW5nIHdpdGggVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIsCisgICAgICAgIHN3aXRj
aGluZyBvbi9vZmYgbW9jayBjYXB0dXJlIHdpbGwgcmVxdWlyZSBjcmVhdGluZyBhIG5ldyBwcm9j
ZXNzLgorICAgICAgICBUaGlzIHNob3J0Y29taW5nIHNob3VsZCBiZSBmaXhlZCBvbmNlIG1vY2sg
Y2FwdHVyZSB3aWxsIGJlIGZ1bGx5IGhhcHBlbmluZyBpbgorICAgICAgICB0aGUgc2FtZSBwcm9j
ZXNzIGFzIHJlZ3VsYXIgY2FwdHVyZS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvVXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0
dXJlTWFuYWdlcjo6flVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyKToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmg6CisKIDIwMTgtMTItMDggIEZyZWRl
cmljIFdhbmcgIDxmd2FuZ0BpZ2FsaWEuY29tPgogCiAgICAgICAgIEFsbG93IGNvbnRyb2wgb3Zl
ciBjaGlsZCBvcmRlciB3aGVuIGFkZGluZyBub2RlcyB0byB0aGUgc2Nyb2xsaW5nIHRyZWUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL0NhcHR1cmVEZXZp
Y2VNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9DYXB0dXJl
RGV2aWNlTWFuYWdlci5oCmluZGV4IDU3MzJkZTAzZGVlYjRmYzA5ODVhMWIxYTc0YmNiYjE0NjBm
ZWM1YmQuLmU5MWI0N2NlZDZkNjA3ODc0MThlNDUxMDc1YzJiZDQ5NTdhYzU1ZGIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL0NhcHR1cmVEZXZpY2VNYW5h
Z2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vQ2FwdHVyZURl
dmljZU1hbmFnZXIuaApAQCAtMzMsNyArMzMsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
LWNsYXNzIENhcHR1cmVEZXZpY2VNYW5hZ2VyIDogcHVibGljIENhbk1ha2VXZWFrUHRyPENhcHR1
cmVEZXZpY2VNYW5hZ2VyPiB7CitjbGFzcyBXRUJDT1JFX0VYUE9SVCBDYXB0dXJlRGV2aWNlTWFu
YWdlciA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxDYXB0dXJlRGV2aWNlTWFuYWdlcj4gewogcHVi
bGljOgogICAgIHZpcnR1YWwgY29uc3QgVmVjdG9yPENhcHR1cmVEZXZpY2U+JiBjYXB0dXJlRGV2
aWNlcygpID0gMDsKICAgICB2aXJ0dWFsIHN0ZDo6b3B0aW9uYWw8Q2FwdHVyZURldmljZT4gY2Fw
dHVyZURldmljZVdpdGhQZXJzaXN0ZW50SUQoQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZSwgY29u
c3QgU3RyaW5nJikgeyByZXR1cm4gc3RkOjpudWxsb3B0OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3Vy
Y2VDZW50ZXIuY3BwCmluZGV4IDBiZmU4NWQyMjQwZWVlMmQzZTVkMzczMmYwODU1MzBhNjEyNjIz
ZGMuLmQ2N2UxMjc3NDRiZjVjYjM0YzUyZDk1YTBlNmRlOTBlNTRmYjI3MWMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VD
ZW50ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0
aW1lTWVkaWFTb3VyY2VDZW50ZXIuY3BwCkBAIC0zNSwxMSArMzUsNiBAQAogCiAjaWYgRU5BQkxF
KE1FRElBX1NUUkVBTSkKIAotLy8gRklYTUU6IEdUSyB0byBpbXBsZW1lbnQgaXRzIG93biBSZWFs
dGltZU1lZGlhU291cmNlQ2VudGVyLgotI2lmIFBMQVRGT1JNKEdUSykKLSNpbmNsdWRlICJNb2Nr
UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oIgotI2VuZGlmCi0KICNpbmNsdWRlICJDYXB0dXJl
RGV2aWNlTWFuYWdlci5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJNZWRpYVN0
cmVhbVByaXZhdGUuaCIKQEAgLTQ3LDI1ICs0MiwxMiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKLXN0YXRpYyBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyKiYgbWVkaWFTdHJlYW1DZW50ZXJP
dmVycmlkZSgpCi17Ci0gICAgc3RhdGljIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIqIG92ZXJy
aWRlOwotICAgIHJldHVybiBvdmVycmlkZTsKLX0KIAogUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRl
ciYgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkKIHsKLSAgICBSZWFsdGlt
ZU1lZGlhU291cmNlQ2VudGVyKiBvdmVycmlkZSA9IG1lZGlhU3RyZWFtQ2VudGVyT3ZlcnJpZGUo
KTsKLSAgICBpZiAob3ZlcnJpZGUpCi0gICAgICAgIHJldHVybiAqb3ZlcnJpZGU7CiAgICAgcmV0
dXJuIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnBsYXRmb3JtQ2VudGVyKCk7CiB9CiAKLXZv
aWQgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2V0U2hhcmVkU3RyZWFtQ2VudGVyT3ZlcnJp
ZGUoUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlciogY2VudGVyKQotewotICAgIG1lZGlhU3RyZWFt
Q2VudGVyT3ZlcnJpZGUoKSA9IGNlbnRlcjsKLX0KLQogUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRl
cjo6UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcigpCiB7CiAgICAgbV9zdXBwb3J0ZWRDb25zdHJh
aW50cy5zZXRTdXBwb3J0c1dpZHRoKHRydWUpOwpAQCAtMTI0LDE1ICsxMDYsMTUgQEAgdm9pZCBS
ZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpjcmVhdGVNZWRpYVN0cmVhbShOZXdNZWRpYVN0cmVh
bUhhbmRsZXImJiBjb21wbGUKIFZlY3RvcjxDYXB0dXJlRGV2aWNlPiBSZWFsdGltZU1lZGlhU291
cmNlQ2VudGVyOjpnZXRNZWRpYVN0cmVhbURldmljZXMoKQogewogICAgIFZlY3RvcjxDYXB0dXJl
RGV2aWNlPiByZXN1bHQ7Ci0gICAgZm9yIChhdXRvJiBkZXZpY2UgOiBhdWRpb0NhcHR1cmVEZXZp
Y2VNYW5hZ2VyKCkuY2FwdHVyZURldmljZXMoKSkgeworICAgIGZvciAoYXV0byYgZGV2aWNlIDog
YXVkaW9GYWN0b3J5KCkuYXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlcigpLmNhcHR1cmVEZXZpY2Vz
KCkpIHsKICAgICAgICAgaWYgKGRldmljZS5lbmFibGVkKCkpCiAgICAgICAgICAgICByZXN1bHQu
YXBwZW5kKGRldmljZSk7CiAgICAgfQotICAgIGZvciAoYXV0byYgZGV2aWNlIDogdmlkZW9DYXB0
dXJlRGV2aWNlTWFuYWdlcigpLmNhcHR1cmVEZXZpY2VzKCkpIHsKKyAgICBmb3IgKGF1dG8mIGRl
dmljZSA6IHZpZGVvRmFjdG9yeSgpLnZpZGVvQ2FwdHVyZURldmljZU1hbmFnZXIoKS5jYXB0dXJl
RGV2aWNlcygpKSB7CiAgICAgICAgIGlmIChkZXZpY2UuZW5hYmxlZCgpKQogICAgICAgICAgICAg
cmVzdWx0LmFwcGVuZChkZXZpY2UpOwogICAgIH0KLSAgICBmb3IgKGF1dG8mIGRldmljZSA6IGRp
c3BsYXlDYXB0dXJlRGV2aWNlTWFuYWdlcigpLmNhcHR1cmVEZXZpY2VzKCkpIHsKKyAgICBmb3Ig
KGF1dG8mIGRldmljZSA6IGRpc3BsYXlDYXB0dXJlRmFjdG9yeSgpLmRpc3BsYXlDYXB0dXJlRGV2
aWNlTWFuYWdlcigpLmNhcHR1cmVEZXZpY2VzKCkpIHsKICAgICAgICAgaWYgKGRldmljZS5lbmFi
bGVkKCkpCiAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKGRldmljZSk7CiAgICAgfQpAQCAtMTcy
LDMyICsxNTQsNiBAQCBTdHJpbmcgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6aGFzaFN0cmlu
Z1dpdGhTYWx0KGNvbnN0IFN0cmluZyYgaWQsIGNvbnN0IFN0cgogICAgIHJldHVybiBTSEExOjpo
ZXhEaWdlc3QoZGlnZXN0KS5kYXRhKCk7CiB9CiAKLUNhcHR1cmVEZXZpY2UgUmVhbHRpbWVNZWRp
YVNvdXJjZUNlbnRlcjo6Y2FwdHVyZURldmljZVdpdGhVbmlxdWVJRChjb25zdCBTdHJpbmcmIHVu
aXF1ZUlELCBjb25zdCBTdHJpbmcmIGlkSGFzaFNhbHQpCi17Ci0gICAgZm9yIChhdXRvJiBkZXZp
Y2UgOiBnZXRNZWRpYVN0cmVhbURldmljZXMoKSkgewotICAgICAgICBpZiAodW5pcXVlSUQgPT0g
aGFzaFN0cmluZ1dpdGhTYWx0KGRldmljZS5wZXJzaXN0ZW50SWQoKSwgaWRIYXNoU2FsdCkpCi0g
ICAgICAgICAgICByZXR1cm4gZGV2aWNlOwotICAgIH0KLQotICAgIHJldHVybiB7IH07Ci19Ci0K
LUV4Y2VwdGlvbk9yPHZvaWQ+IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNldERldmljZUVu
YWJsZWQoY29uc3QgU3RyaW5nJiBpZCwgYm9vbCBlbmFibGVkKQotewotICAgIGZvciAoYXV0byYg
Y2FwdHVyZURldmljZSA6IGdldE1lZGlhU3RyZWFtRGV2aWNlcygpKSB7Ci0gICAgICAgIGlmIChp
ZCA9PSBjYXB0dXJlRGV2aWNlLnBlcnNpc3RlbnRJZCgpKSB7Ci0gICAgICAgICAgICBpZiAoZW5h
YmxlZCAhPSBjYXB0dXJlRGV2aWNlLmVuYWJsZWQoKSkgewotICAgICAgICAgICAgICAgIGNhcHR1
cmVEZXZpY2Uuc2V0RW5hYmxlZChlbmFibGVkKTsKLSAgICAgICAgICAgICAgICBjYXB0dXJlRGV2
aWNlc0NoYW5nZWQoKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgcmV0dXJuIHsgfTsK
LSAgICAgICAgfQotICAgIH0KLQotICAgIHJldHVybiBFeGNlcHRpb24geyBOb3RGb3VuZEVycm9y
IH07Ci19Ci0KIHZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2V0RGV2aWNlc0NoYW5n
ZWRPYnNlcnZlcihzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4mJiBvYnNlcnZlcikKIHsKICAgICBBU1NF
UlQoaXNNYWluVGhyZWFkKCkpOwpAQCAtMjE4LDcgKzE3NCw3IEBAIHZvaWQgUmVhbHRpbWVNZWRp
YVNvdXJjZUNlbnRlcjo6Z2V0RGlzcGxheU1lZGlhRGV2aWNlcyhjb25zdCBNZWRpYVN0cmVhbVJl
cXVlc3QmCiAgICAgICAgIHJldHVybjsKIAogICAgIFN0cmluZyBpbnZhbGlkQ29uc3RyYWludDsK
LSAgICBmb3IgKGF1dG8mIGRldmljZSA6IGRpc3BsYXlDYXB0dXJlRGV2aWNlTWFuYWdlcigpLmNh
cHR1cmVEZXZpY2VzKCkpIHsKKyAgICBmb3IgKGF1dG8mIGRldmljZSA6IGRpc3BsYXlDYXB0dXJl
RmFjdG9yeSgpLmRpc3BsYXlDYXB0dXJlRGV2aWNlTWFuYWdlcigpLmNhcHR1cmVEZXZpY2VzKCkp
IHsKICAgICAgICAgaWYgKCFkZXZpY2UuZW5hYmxlZCgpKQogICAgICAgICAgICAgcmV0dXJuOwog
CkBAIC0yMzUsNyArMTkxLDcgQEAgdm9pZCBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpnZXRV
c2VyTWVkaWFEZXZpY2VzKGNvbnN0IE1lZGlhU3RyZWFtUmVxdWVzdCYgcmUKIHsKICAgICBTdHJp
bmcgaW52YWxpZENvbnN0cmFpbnQ7CiAgICAgaWYgKHJlcXVlc3QuYXVkaW9Db25zdHJhaW50cy5p
c1ZhbGlkKSB7Ci0gICAgICAgIGZvciAoYXV0byYgZGV2aWNlIDogYXVkaW9DYXB0dXJlRGV2aWNl
TWFuYWdlcigpLmNhcHR1cmVEZXZpY2VzKCkpIHsKKyAgICAgICAgZm9yIChhdXRvJiBkZXZpY2Ug
OiBhdWRpb0ZhY3RvcnkoKS5hdWRpb0NhcHR1cmVEZXZpY2VNYW5hZ2VyKCkuY2FwdHVyZURldmlj
ZXMoKSkgewogICAgICAgICAgICAgaWYgKCFkZXZpY2UuZW5hYmxlZCgpKQogICAgICAgICAgICAg
ICAgIGNvbnRpbnVlOwogCkBAIC0yNDksNyArMjA1LDcgQEAgdm9pZCBSZWFsdGltZU1lZGlhU291
cmNlQ2VudGVyOjpnZXRVc2VyTWVkaWFEZXZpY2VzKGNvbnN0IE1lZGlhU3RyZWFtUmVxdWVzdCYg
cmUKICAgICB9CiAKICAgICBpZiAocmVxdWVzdC52aWRlb0NvbnN0cmFpbnRzLmlzVmFsaWQpIHsK
LSAgICAgICAgZm9yIChhdXRvJiBkZXZpY2UgOiB2aWRlb0NhcHR1cmVEZXZpY2VNYW5hZ2VyKCku
Y2FwdHVyZURldmljZXMoKSkgeworICAgICAgICBmb3IgKGF1dG8mIGRldmljZSA6IHZpZGVvRmFj
dG9yeSgpLnZpZGVvQ2FwdHVyZURldmljZU1hbmFnZXIoKS5jYXB0dXJlRGV2aWNlcygpKSB7CiAg
ICAgICAgICAgICBpZiAoIWRldmljZS5lbmFibGVkKCkpCiAgICAgICAgICAgICAgICAgY29udGlu
dWU7CiAKQEAgLTMxNCwxNiArMjcwLDE2IEBAIHN0ZDo6b3B0aW9uYWw8Q2FwdHVyZURldmljZT4g
UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6Y2FwdHVyZURldmljZVdpdGhQZXJzaXN0CiB7CiAg
ICAgc3dpdGNoICh0eXBlKSB7CiAgICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpD
YW1lcmE6Ci0gICAgICAgIHJldHVybiB2aWRlb0NhcHR1cmVEZXZpY2VNYW5hZ2VyKCkuY2FwdHVy
ZURldmljZVdpdGhQZXJzaXN0ZW50SUQodHlwZSwgaWQpOworICAgICAgICByZXR1cm4gdmlkZW9G
YWN0b3J5KCkudmlkZW9DYXB0dXJlRGV2aWNlTWFuYWdlcigpLmNhcHR1cmVEZXZpY2VXaXRoUGVy
c2lzdGVudElEKHR5cGUsIGlkKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDYXB0dXJlRGV2
aWNlOjpEZXZpY2VUeXBlOjpNaWNyb3Bob25lOgotICAgICAgICByZXR1cm4gYXVkaW9DYXB0dXJl
RGV2aWNlTWFuYWdlcigpLmNhcHR1cmVEZXZpY2VXaXRoUGVyc2lzdGVudElEKHR5cGUsIGlkKTsK
KyAgICAgICAgcmV0dXJuIGF1ZGlvRmFjdG9yeSgpLmF1ZGlvQ2FwdHVyZURldmljZU1hbmFnZXIo
KS5jYXB0dXJlRGV2aWNlV2l0aFBlcnNpc3RlbnRJRCh0eXBlLCBpZCk7CiAgICAgICAgIGJyZWFr
OwogICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6U2NyZWVuOgogICAgIGNhc2Ug
Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6QXBwbGljYXRpb246CiAgICAgY2FzZSBDYXB0dXJl
RGV2aWNlOjpEZXZpY2VUeXBlOjpXaW5kb3c6CiAgICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZp
Y2VUeXBlOjpCcm93c2VyOgotICAgICAgICByZXR1cm4gZGlzcGxheUNhcHR1cmVEZXZpY2VNYW5h
Z2VyKCkuY2FwdHVyZURldmljZVdpdGhQZXJzaXN0ZW50SUQodHlwZSwgaWQpOworICAgICAgICBy
ZXR1cm4gZGlzcGxheUNhcHR1cmVGYWN0b3J5KCkuZGlzcGxheUNhcHR1cmVEZXZpY2VNYW5hZ2Vy
KCkuY2FwdHVyZURldmljZVdpdGhQZXJzaXN0ZW50SUQodHlwZSwgaWQpOwogICAgICAgICBicmVh
azsKICAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlVua25vd246CiAgICAgICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtMzQxLDcgKzI5Nyw4IEBAIHZvaWQgUmVhbHRpbWVN
ZWRpYVNvdXJjZUNlbnRlcjo6c2V0QXVkaW9GYWN0b3J5KEF1ZGlvQ2FwdHVyZUZhY3RvcnkmIGZh
Y3RvcnkpCiB2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnVuc2V0QXVkaW9GYWN0b3J5
KEF1ZGlvQ2FwdHVyZUZhY3RvcnkmIG9sZE92ZXJyaWRlKQogewogICAgIEFTU0VSVF9VTlVTRUQo
b2xkT3ZlcnJpZGUsIGF1ZGlvRmFjdG9yeU92ZXJyaWRlID09ICZvbGRPdmVycmlkZSk7Ci0gICAg
YXVkaW9GYWN0b3J5T3ZlcnJpZGUgPSBudWxscHRyOworICAgIGlmICgmb2xkT3ZlcnJpZGUgPT0g
YXVkaW9GYWN0b3J5T3ZlcnJpZGUpCisgICAgICAgIGF1ZGlvRmFjdG9yeU92ZXJyaWRlID0gbnVs
bHB0cjsKIH0KIAogQXVkaW9DYXB0dXJlRmFjdG9yeSYgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRl
cjo6YXVkaW9GYWN0b3J5KCkKQEAgLTM1Nyw3ICszMTQsOCBAQCB2b2lkIFJlYWx0aW1lTWVkaWFT
b3VyY2VDZW50ZXI6OnNldFZpZGVvRmFjdG9yeShWaWRlb0NhcHR1cmVGYWN0b3J5JiBmYWN0b3J5
KQogdm9pZCBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjp1bnNldFZpZGVvRmFjdG9yeShWaWRl
b0NhcHR1cmVGYWN0b3J5JiBvbGRPdmVycmlkZSkKIHsKICAgICBBU1NFUlRfVU5VU0VEKG9sZE92
ZXJyaWRlLCB2aWRlb0ZhY3RvcnlPdmVycmlkZSA9PSAmb2xkT3ZlcnJpZGUpOwotICAgIHZpZGVv
RmFjdG9yeU92ZXJyaWRlID0gbnVsbHB0cjsKKyAgICBpZiAoJm9sZE92ZXJyaWRlID09IHZpZGVv
RmFjdG9yeU92ZXJyaWRlKQorICAgICAgICB2aWRlb0ZhY3RvcnlPdmVycmlkZSA9IG51bGxwdHI7
CiB9CiAKIFZpZGVvQ2FwdHVyZUZhY3RvcnkmIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnZp
ZGVvRmFjdG9yeSgpCkBAIC0zNzMsNyArMzMxLDggQEAgdm9pZCBSZWFsdGltZU1lZGlhU291cmNl
Q2VudGVyOjpzZXREaXNwbGF5Q2FwdHVyZUZhY3RvcnkoRGlzcGxheUNhcHR1cmVGYWN0b3J5Jgog
dm9pZCBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjp1bnNldERpc3BsYXlDYXB0dXJlRmFjdG9y
eShEaXNwbGF5Q2FwdHVyZUZhY3RvcnkmIG9sZE92ZXJyaWRlKQogewogICAgIEFTU0VSVF9VTlVT
RUQob2xkT3ZlcnJpZGUsIGRpc3BsYXlDYXB0dXJlRmFjdG9yeU92ZXJyaWRlID09ICZvbGRPdmVy
cmlkZSk7Ci0gICAgZGlzcGxheUNhcHR1cmVGYWN0b3J5T3ZlcnJpZGUgPSBudWxscHRyOworICAg
IGlmICgmb2xkT3ZlcnJpZGUgPT0gZGlzcGxheUNhcHR1cmVGYWN0b3J5T3ZlcnJpZGUpCisgICAg
ICAgIGRpc3BsYXlDYXB0dXJlRmFjdG9yeU92ZXJyaWRlID0gbnVsbHB0cjsKIH0KIAogRGlzcGxh
eUNhcHR1cmVGYWN0b3J5JiBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpkaXNwbGF5Q2FwdHVy
ZUZhY3RvcnkoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oCmluZGV4IDkzNDgxMjQ5ODQ5
ZmI5OGJjOTNiYzA4NWQ3OGZjZjg0YTcwN2Q1YjEuLmJiMGRlZjJlNWVmMzRhNWRlMjVkZDI0ZTg2
YjMwZDNkOGMwZDMzZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmgKQEAgLTU1LDEw
ICs1NSwxMCBAQCBzdHJ1Y3QgTWVkaWFDb25zdHJhaW50czsKICAgICAKIGNsYXNzIFJlYWx0aW1l
TWVkaWFTb3VyY2VDZW50ZXIgewogcHVibGljOgorICAgIHN0YXRpYyBSZWFsdGltZU1lZGlhU291
cmNlQ2VudGVyJiBwbGF0Zm9ybUNlbnRlcigpOwogICAgIHZpcnR1YWwgflJlYWx0aW1lTWVkaWFT
b3VyY2VDZW50ZXIoKTsKIAogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWFsdGltZU1lZGlh
U291cmNlQ2VudGVyJiBzaW5nbGV0b24oKTsKLSAgICBzdGF0aWMgdm9pZCBzZXRTaGFyZWRTdHJl
YW1DZW50ZXJPdmVycmlkZShSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyKik7CiAKICAgICB1c2lu
ZyBWYWxpZENvbnN0cmFpbnRzSGFuZGxlciA9IFdURjo6RnVuY3Rpb248dm9pZChWZWN0b3I8Q2Fw
dHVyZURldmljZT4mJiBhdWRpb0RldmljZVVJRHMsIFZlY3RvcjxDYXB0dXJlRGV2aWNlPiYmIHZp
ZGVvRGV2aWNlVUlEcywgU3RyaW5nJiYpPjsKICAgICB1c2luZyBJbnZhbGlkQ29uc3RyYWludHNI
YW5kbGVyID0gV1RGOjpGdW5jdGlvbjx2b2lkKGNvbnN0IFN0cmluZyYgaW52YWxpZENvbnN0cmFp
bnQpPjsKQEAgLTY3LDcgKzY3LDcgQEAgcHVibGljOgogICAgIHVzaW5nIE5ld01lZGlhU3RyZWFt
SGFuZGxlciA9IFdURjo6RnVuY3Rpb248dm9pZChSZWZQdHI8TWVkaWFTdHJlYW1Qcml2YXRlPiYm
KT47CiAgICAgdmlydHVhbCB2b2lkIGNyZWF0ZU1lZGlhU3RyZWFtKE5ld01lZGlhU3RyZWFtSGFu
ZGxlciYmLCBTdHJpbmcmJiwgQ2FwdHVyZURldmljZSYmIGF1ZGlvRGV2aWNlLCBDYXB0dXJlRGV2
aWNlJiYgdmlkZW9EZXZpY2UsIGNvbnN0IE1lZGlhU3RyZWFtUmVxdWVzdCYpOwogCi0gICAgV0VC
Q09SRV9FWFBPUlQgdmlydHVhbCBWZWN0b3I8Q2FwdHVyZURldmljZT4gZ2V0TWVkaWFTdHJlYW1E
ZXZpY2VzKCk7CisgICAgV0VCQ09SRV9FWFBPUlQgVmVjdG9yPENhcHR1cmVEZXZpY2U+IGdldE1l
ZGlhU3RyZWFtRGV2aWNlcygpOwogICAgIFdFQkNPUkVfRVhQT1JUIHN0ZDo6b3B0aW9uYWw8Q2Fw
dHVyZURldmljZT4gY2FwdHVyZURldmljZVdpdGhQZXJzaXN0ZW50SUQoQ2FwdHVyZURldmljZTo6
RGV2aWNlVHlwZSwgY29uc3QgU3RyaW5nJik7CiAgICAgCiAgICAgY29uc3QgUmVhbHRpbWVNZWRp
YVNvdXJjZVN1cHBvcnRlZENvbnN0cmFpbnRzJiBzdXBwb3J0ZWRDb25zdHJhaW50cygpIHsgcmV0
dXJuIG1fc3VwcG9ydGVkQ29uc3RyYWludHM7IH0KQEAgLTg0LDEzICs4NCw3IEBAIHB1YmxpYzoK
ICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgdm9pZCBzZXREaXNwbGF5Q2FwdHVyZUZhY3Rvcnko
RGlzcGxheUNhcHR1cmVGYWN0b3J5Jik7CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHZvaWQg
dW5zZXREaXNwbGF5Q2FwdHVyZUZhY3RvcnkoRGlzcGxheUNhcHR1cmVGYWN0b3J5Jik7CiAKLSAg
ICB2aXJ0dWFsIENhcHR1cmVEZXZpY2VNYW5hZ2VyJiBhdWRpb0NhcHR1cmVEZXZpY2VNYW5hZ2Vy
KCkgPSAwOwotICAgIHZpcnR1YWwgQ2FwdHVyZURldmljZU1hbmFnZXImIHZpZGVvQ2FwdHVyZURl
dmljZU1hbmFnZXIoKSA9IDA7Ci0gICAgdmlydHVhbCBDYXB0dXJlRGV2aWNlTWFuYWdlciYgZGlz
cGxheUNhcHR1cmVEZXZpY2VNYW5hZ2VyKCkgPSAwOwotCiAgICAgV0VCQ09SRV9FWFBPUlQgU3Ry
aW5nIGhhc2hTdHJpbmdXaXRoU2FsdChjb25zdCBTdHJpbmcmIGlkLCBjb25zdCBTdHJpbmcmIGhh
c2hTYWx0KTsKLSAgICBXRUJDT1JFX0VYUE9SVCBDYXB0dXJlRGV2aWNlIGNhcHR1cmVEZXZpY2VX
aXRoVW5pcXVlSUQoY29uc3QgU3RyaW5nJiBpZCwgY29uc3QgU3RyaW5nJiBoYXNoU2FsdCk7Ci0g
ICAgV0VCQ09SRV9FWFBPUlQgRXhjZXB0aW9uT3I8dm9pZD4gc2V0RGV2aWNlRW5hYmxlZChjb25z
dCBTdHJpbmcmLCBib29sKTsKIAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0RGV2aWNlc0No
YW5nZWRPYnNlcnZlcihzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4mJik7CiAKQEAgLTEwMSw3ICs5NSw2
IEBAIHB1YmxpYzoKIHByb3RlY3RlZDoKICAgICBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyKCk7
CiAKLSAgICBzdGF0aWMgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlciYgcGxhdGZvcm1DZW50ZXIo
KTsKICAgICBSZWFsdGltZU1lZGlhU291cmNlU3VwcG9ydGVkQ29uc3RyYWludHMgbV9zdXBwb3J0
ZWRDb25zdHJhaW50czsKIAogICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgQXVkaW9DYXB0dXJl
RmFjdG9yeSYgYXVkaW9GYWN0b3J5UHJpdmF0ZSgpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VGYWN0b3J5Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNl
RmFjdG9yeS5oCmluZGV4IDk3MmZhYWUxZTdmM2ZhZTg3Yzg1MzU1ZDNiZTgwN2NhZjZjOGRmMjgu
LjQ4OTdjNjRlOTM3MmMyYTZiYzgxOTM4NTU0Yzk4MjU2MWUyMGY3OGMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VGYWN0
b3J5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVN
ZWRpYVNvdXJjZUZhY3RvcnkuaApAQCAtMzIsNiArMzIsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBjbGFzcyBDYXB0dXJlRGV2aWNlOworY2xhc3MgQ2FwdHVyZURldmljZU1hbmFnZXI7CiBj
bGFzcyBSZWFsdGltZU1lZGlhU291cmNlOwogCiBzdHJ1Y3QgQ2FwdHVyZVNvdXJjZU9yRXJyb3I7
CkBAIC01NSw2ICs1Niw3IEBAIGNsYXNzIEF1ZGlvQ2FwdHVyZUZhY3RvcnkKIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIH5BdWRpb0NhcHR1cmVGYWN0b3J5KCkgPSBkZWZhdWx0OwogICAgIHZpcnR1YWwg
Q2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlQXVkaW9DYXB0dXJlU291cmNlKGNvbnN0IENhcHR1
cmVEZXZpY2UmLCBTdHJpbmcmJiwgY29uc3QgTWVkaWFDb25zdHJhaW50cyopID0gMDsKKyAgICB2
aXJ0dWFsIENhcHR1cmVEZXZpY2VNYW5hZ2VyJiBhdWRpb0NhcHR1cmVEZXZpY2VNYW5hZ2VyKCkg
PSAwOwogCiBwcm90ZWN0ZWQ6CiAgICAgQXVkaW9DYXB0dXJlRmFjdG9yeSgpID0gZGVmYXVsdDsK
QEAgLTY4LDYgKzcwLDcgQEAgY2xhc3MgVmlkZW9DYXB0dXJlRmFjdG9yeQogcHVibGljOgogICAg
IHZpcnR1YWwgflZpZGVvQ2FwdHVyZUZhY3RvcnkoKSA9IGRlZmF1bHQ7CiAgICAgdmlydHVhbCBD
YXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVWaWRlb0NhcHR1cmVTb3VyY2UoY29uc3QgQ2FwdHVy
ZURldmljZSYsIFN0cmluZyYmLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKikgPSAwOworICAgIHZp
cnR1YWwgQ2FwdHVyZURldmljZU1hbmFnZXImIHZpZGVvQ2FwdHVyZURldmljZU1hbmFnZXIoKSA9
IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldFZpZGVvQ2FwdHVyZVBhZ2VTdGF0ZShib29sLCBib29s
KSB7IH0KIAogcHJvdGVjdGVkOgpAQCAtNzgsNiArODEsNyBAQCBjbGFzcyBEaXNwbGF5Q2FwdHVy
ZUZhY3RvcnkgewogcHVibGljOgogICAgIHZpcnR1YWwgfkRpc3BsYXlDYXB0dXJlRmFjdG9yeSgp
ID0gZGVmYXVsdDsKICAgICB2aXJ0dWFsIENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZURpc3Bs
YXlDYXB0dXJlU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmLCBjb25zdCBNZWRpYUNvbnN0cmFp
bnRzKikgPSAwOworICAgIHZpcnR1YWwgQ2FwdHVyZURldmljZU1hbmFnZXImIGRpc3BsYXlDYXB0
dXJlRGV2aWNlTWFuYWdlcigpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0RGlzcGxheUNhcHR1
cmVQYWdlU3RhdGUoYm9vbCAsIGJvb2wpIHsgfQogCiBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyQXVk
aW9DYXB0dXJlU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L2dzdHJlYW1lci9HU3RyZWFtZXJBdWRpb0NhcHR1cmVTb3VyY2UuY3BwCmluZGV4IDJiNzU0ZDdj
NGQ2OTgzY2I1ODU0NGY1NjNhYzhhNDQ4MmIxYTgwZjMuLjk2ZWZiOWE3NmQ4NmI3ZjhlNTEzYmU4
YjQ2YWU0NzUyZjU1MDViODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJBdWRpb0NhcHR1cmVTb3VyY2UuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJB
dWRpb0NhcHR1cmVTb3VyY2UuY3BwCkBAIC01Nyw2ICs1Nyw4IEBAIHB1YmxpYzoKICAgICB7CiAg
ICAgICAgIHJldHVybiBHU3RyZWFtZXJBdWRpb0NhcHR1cmVTb3VyY2U6OmNyZWF0ZShTdHJpbmcg
eyBkZXZpY2UucGVyc2lzdGVudElkKCkgfSwgV1RGTW92ZShoYXNoU2FsdCksIGNvbnN0cmFpbnRz
KTsKICAgICB9Citwcml2YXRlOgorICAgIENhcHR1cmVEZXZpY2VNYW5hZ2VyJiBhdWRpb0NhcHR1
cmVEZXZpY2VNYW5hZ2VyKCkgZmluYWwgeyByZXR1cm4gR1N0cmVhbWVyQXVkaW9DYXB0dXJlRGV2
aWNlTWFuYWdlcjo6c2luZ2xldG9uKCk7IH0KIH07CiAKIHN0YXRpYyBHU3RyZWFtZXJBdWRpb0Nh
cHR1cmVTb3VyY2VGYWN0b3J5JiBsaWJXZWJSVENBdWRpb0NhcHR1cmVTb3VyY2VGYWN0b3J5KCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1l
ci9HU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZS5jcHAK
aW5kZXggN2EwZDMwZDVlN2QwODc5MmIzZThjOTJlYmQ0NGI1ODhlY2I3MWRmZi4uMDJmMmY1ZTE1
MGIwNjI3OGJmZTQ4NjkyOWNiMWVmODBkYzU5MDQwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lclZpZGVvQ2FwdHVyZVNv
dXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVh
bWVyL0dTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZS5jcHAKQEAgLTcxLDYgKzcxLDggQEAgcHVi
bGljOgogICAgIHsKICAgICAgICAgcmV0dXJuIEdTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZTo6
Y3JlYXRlKFN0cmluZyB7IGRldmljZS5wZXJzaXN0ZW50SWQoKSB9LCBXVEZNb3ZlKGhhc2hTYWx0
KSwgY29uc3RyYWludHMpOwogICAgIH0KK3ByaXZhdGU6CisgICAgQ2FwdHVyZURldmljZU1hbmFn
ZXImIHZpZGVvQ2FwdHVyZURldmljZU1hbmFnZXIoKSBmaW5hbCB7IHJldHVybiBHU3RyZWFtZXJW
aWRlb0NhcHR1cmVEZXZpY2VNYW5hZ2VyOjpzaW5nbGV0b24oKTsgfQogfTsKIAogVmlkZW9DYXB0
dXJlRmFjdG9yeSYgbGliV2ViUlRDVmlkZW9DYXB0dXJlU291cmNlRmFjdG9yeSgpCkBAIC04Niw2
ICs4OCw4IEBAIHB1YmxpYzoKICAgICAgICAgLy8gRklYTUU6IEltcGxlbWVudCB0aGlzLgogICAg
ICAgICByZXR1cm4geyB9OwogICAgIH0KK3ByaXZhdGU6CisgICAgQ2FwdHVyZURldmljZU1hbmFn
ZXImIGRpc3BsYXlDYXB0dXJlRGV2aWNlTWFuYWdlcigpIGZpbmFsIHsgcmV0dXJuIEdTdHJlYW1l
ckRpc3BsYXlDYXB0dXJlRGV2aWNlTWFuYWdlcjo6c2luZ2xldG9uKCk7IH0KIH07CiAKIERpc3Bs
YXlDYXB0dXJlRmFjdG9yeSYgbGliV2ViUlRDRGlzcGxheUNhcHR1cmVTb3VyY2VGYWN0b3J5KCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1l
ci9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyTGliV2ViUlRDLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVy
TGliV2ViUlRDLmNwcAppbmRleCA2Y2FlYzEzMGM4MTQ1ZWEwN2UxMDYzNzkxZDcxODYwNDA5NTU4
YWRkLi44MTZiYTExNGM5NzIwNjZhMzU4OWYxZDY5NmI5ZDhkMTE0YWM2ZjE4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvUmVhbHRpbWVN
ZWRpYVNvdXJjZUNlbnRlckxpYldlYlJUQy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJMaWJXZWJS
VEMuY3BwCkBAIC0yNiw3ICsyNiw2IEBACiAKICNpbmNsdWRlICJHU3RyZWFtZXJBdWRpb0NhcHR1
cmVTb3VyY2UuaCIKICNpbmNsdWRlICJHU3RyZWFtZXJDYXB0dXJlRGV2aWNlLmgiCi0jaW5jbHVk
ZSAiR1N0cmVhbWVyQ2FwdHVyZURldmljZU1hbmFnZXIuaCIKICNpbmNsdWRlICJHU3RyZWFtZXJW
aWRlb0NhcHR1cmVTb3VyY2UuaCIKICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgogCkBAIC02
NywyMSArNjYsNiBAQCBEaXNwbGF5Q2FwdHVyZUZhY3RvcnkmIFJlYWx0aW1lTWVkaWFTb3VyY2VD
ZW50ZXJMaWJXZWJSVEM6OmRpc3BsYXlDYXB0dXJlRmFjdG9yeQogICAgIHJldHVybiBHU3RyZWFt
ZXJWaWRlb0NhcHR1cmVTb3VyY2U6OmRpc3BsYXlGYWN0b3J5KCk7CiB9CiAKLUNhcHR1cmVEZXZp
Y2VNYW5hZ2VyJiBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyTGliV2ViUlRDOjphdWRpb0NhcHR1
cmVEZXZpY2VNYW5hZ2VyKCkKLXsKLSAgICByZXR1cm4gR1N0cmVhbWVyQXVkaW9DYXB0dXJlRGV2
aWNlTWFuYWdlcjo6c2luZ2xldG9uKCk7Ci19Ci0KLUNhcHR1cmVEZXZpY2VNYW5hZ2VyJiBSZWFs
dGltZU1lZGlhU291cmNlQ2VudGVyTGliV2ViUlRDOjp2aWRlb0NhcHR1cmVEZXZpY2VNYW5hZ2Vy
KCkKLXsKLSAgICByZXR1cm4gR1N0cmVhbWVyVmlkZW9DYXB0dXJlRGV2aWNlTWFuYWdlcjo6c2lu
Z2xldG9uKCk7Ci19Ci0KLUNhcHR1cmVEZXZpY2VNYW5hZ2VyJiBSZWFsdGltZU1lZGlhU291cmNl
Q2VudGVyTGliV2ViUlRDOjpkaXNwbGF5Q2FwdHVyZURldmljZU1hbmFnZXIoKQotewotICAgIHJl
dHVybiBHU3RyZWFtZXJEaXNwbGF5Q2FwdHVyZURldmljZU1hbmFnZXI6OnNpbmdsZXRvbigpOwot
fQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RS
RUFNKSAmJiBVU0UoTElCV0VCUlRDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJMaWJXZWJS
VEMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9SZWFs
dGltZU1lZGlhU291cmNlQ2VudGVyTGliV2ViUlRDLmgKaW5kZXggMTBlNGZiODE2ZjA2MjE4OWE4
Mjg3ZDBjZDcyNzhiMjUyNTcwOWZmNi4uYzVjYzYyMjRiYTliMDJmMTBmZjA5YmVlNWMxOTNkYmZm
NjE0OTA3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
Z3N0cmVhbWVyL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJMaWJXZWJSVEMuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvUmVhbHRpbWVNZWRpYVNv
dXJjZUNlbnRlckxpYldlYlJUQy5oCkBAIC00NiwxMiArNDYsNiBAQCBwcml2YXRlOgogICAgIEF1
ZGlvQ2FwdHVyZUZhY3RvcnkmIGF1ZGlvRmFjdG9yeVByaXZhdGUoKSBmaW5hbDsKICAgICBWaWRl
b0NhcHR1cmVGYWN0b3J5JiB2aWRlb0ZhY3RvcnlQcml2YXRlKCkgZmluYWw7CiAgICAgRGlzcGxh
eUNhcHR1cmVGYWN0b3J5JiBkaXNwbGF5Q2FwdHVyZUZhY3RvcnlQcml2YXRlKCkgZmluYWw7Ci0K
LSAgICBDYXB0dXJlRGV2aWNlTWFuYWdlciYgYXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlcigpIGZp
bmFsOwotICAgIENhcHR1cmVEZXZpY2VNYW5hZ2VyJiB2aWRlb0NhcHR1cmVEZXZpY2VNYW5hZ2Vy
KCkgZmluYWw7Ci0gICAgQ2FwdHVyZURldmljZU1hbmFnZXImIGRpc3BsYXlDYXB0dXJlRGV2aWNl
TWFuYWdlcigpIGZpbmFsOwotCi0gICAgQXVkaW9DYXB0dXJlRmFjdG9yeSogbV9hdWRpb0ZhY3Rv
cnlPdmVycmlkZSB7IG51bGxwdHIgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVk
aW9DYXB0dXJlU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L21hYy9Db3JlQXVkaW9DYXB0dXJlU291cmNlLmNwcAppbmRleCAwMWI1YWM5NWVhNjA0ZTdhYzYw
NzJmNzk0N2RmM2Q2MjIwZTkzMTZkLi43MmJlNzMwN2JhYjE5YzcxOGVmNDFhMTUzNWMwZDMyZGVj
NzI4YWE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9t
YWMvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2UuY3BwCkBAIC03NzQsNiAr
Nzc0LDE1IEBAIEF1ZGlvQ2FwdHVyZUZhY3RvcnkmIENvcmVBdWRpb0NhcHR1cmVTb3VyY2U6OmZh
Y3RvcnkoKQogICAgIHJldHVybiBDb3JlQXVkaW9DYXB0dXJlU291cmNlRmFjdG9yeTo6c2luZ2xl
dG9uKCk7CiB9CiAKK0NhcHR1cmVEZXZpY2VNYW5hZ2VyJiBDb3JlQXVkaW9DYXB0dXJlU291cmNl
RmFjdG9yeTo6YXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlcigpCit7CisjaWYgUExBVEZPUk0oTUFD
KQorICAgIHJldHVybiBDb3JlQXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlcjo6c2luZ2xldG9uKCk7
CisjZWxzZQorICAgIHJldHVybiBBVkF1ZGlvU2Vzc2lvbkNhcHR1cmVEZXZpY2VNYW5hZ2VyOjpz
aW5nbGV0b24oKTsKKyNlbmRpZgorfQorCiBDb3JlQXVkaW9DYXB0dXJlU291cmNlOjpDb3JlQXVk
aW9DYXB0dXJlU291cmNlKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBsYWJlbCwgU3RyaW5n
JiYgaGFzaFNhbHQsIHVpbnQzMl90IHBlcnNpc3RlbnRJRCkKICAgICA6IFJlYWx0aW1lTWVkaWFT
b3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW8sIFdURk1vdmUobGFiZWwpLCBX
VEZNb3ZlKGRldmljZUlEKSwgV1RGTW92ZShoYXNoU2FsdCkpCiAgICAgLCBtX2NhcHR1cmVEZXZp
Y2VJRChwZXJzaXN0ZW50SUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2UuaAppbmRleCA5
ZGZiZmJhMjQwMzUxOTk2YzBkMjVkMGIxOTdlNWQwZGIxOTA2MWZjLi44NGE2MzRmZGJhZWU4Y2Ux
OWE3NDQ1M2RmNWJlZWJmODc0NTBjYjMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlU291cmNl
LmgKQEAgLTEzMCw2ICsxMzAsOCBAQCBwcml2YXRlOgogICAgIHsKICAgICAgICAgcmV0dXJuIENv
cmVBdWRpb0NhcHR1cmVTb3VyY2U6OmNyZWF0ZShTdHJpbmcgeyBkZXZpY2UucGVyc2lzdGVudElk
KCkgfSwgV1RGTW92ZShoYXNoU2FsdCksIGNvbnN0cmFpbnRzKTsKICAgICB9CisKKyAgICBDYXB0
dXJlRGV2aWNlTWFuYWdlciYgYXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlcigpIGZpbmFsOwogfTsK
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJNYWMuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lTWVkaWFTb3Vy
Y2VDZW50ZXJNYWMuY3BwCmluZGV4IGNhNGI0NjFiODE2Nzk3MTQ1ODA1OTQ0YmRjMzY2MzNlZGQz
ZjJjOTEuLjlkM2NmYzFmZjZhNDgwM2IyNTFkMDExYThjYjFmN2YzZTUzZTQwYjAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU1lZGlh
U291cmNlQ2VudGVyTWFjLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9tYWMvUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck1hYy5jcHAKQEAgLTMzLDEwICszMyw4
IEBACiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKICNpbmNsdWRlICJSZWFsdGltZU1lZGlhU291
cmNlQ2VudGVyTWFjLmgiCiAKLSNpbmNsdWRlICJBVkF1ZGlvU2Vzc2lvbkNhcHR1cmVEZXZpY2VN
YW5hZ2VyLmgiCiAjaW5jbHVkZSAiQVZDYXB0dXJlRGV2aWNlTWFuYWdlci5oIgogI2luY2x1ZGUg
IkFWVmlkZW9DYXB0dXJlU291cmNlLmgiCi0jaW5jbHVkZSAiQ29yZUF1ZGlvQ2FwdHVyZURldmlj
ZU1hbmFnZXIuaCIKICNpbmNsdWRlICJDb3JlQXVkaW9DYXB0dXJlU291cmNlLmgiCiAjaW5jbHVk
ZSAiRGlzcGxheUNhcHR1cmVNYW5hZ2VyQ29jb2EuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCkBA
IC01NSwxNCArNTMsMTYgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gQVZWaWRlb0NhcHR1cmVT
b3VyY2U6OmNyZWF0ZShTdHJpbmcgeyBkZXZpY2UucGVyc2lzdGVudElkKCkgfSwgV1RGTW92ZSho
YXNoU2FsdCksIGNvbnN0cmFpbnRzKTsKICAgICB9CiAKLSNpZiBQTEFURk9STShJT1NfRkFNSUxZ
KQogcHJpdmF0ZToKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIHZvaWQgc2V0VmlkZW9D
YXB0dXJlUGFnZVN0YXRlKGJvb2wgaW50ZXJydXB0ZWQsIGJvb2wgcGFnZU11dGVkKQogICAgIHsK
ICAgICAgICAgaWYgKGFjdGl2ZVNvdXJjZSgpKQogICAgICAgICAgICAgYWN0aXZlU291cmNlKCkt
PnNldEludGVycnVwdGVkKGludGVycnVwdGVkLCBwYWdlTXV0ZWQpOwogICAgIH0KICNlbmRpZgor
CisgICAgQ2FwdHVyZURldmljZU1hbmFnZXImIHZpZGVvQ2FwdHVyZURldmljZU1hbmFnZXIoKSB7
IHJldHVybiBBVkNhcHR1cmVEZXZpY2VNYW5hZ2VyOjpzaW5nbGV0b24oKTsgfQogfTsKIAogY2xh
c3MgRGlzcGxheUNhcHR1cmVTb3VyY2VGYWN0b3J5TWFjIGZpbmFsIDogcHVibGljIERpc3BsYXlD
YXB0dXJlRmFjdG9yeSB7CkBAIC05Myw2ICs5Myw4IEBAIHB1YmxpYzoKIAogICAgICAgICByZXR1
cm4geyB9OwogICAgIH0KK3ByaXZhdGU6CisgICAgQ2FwdHVyZURldmljZU1hbmFnZXImIGRpc3Bs
YXlDYXB0dXJlRGV2aWNlTWFuYWdlcigpIHsgcmV0dXJuIERpc3BsYXlDYXB0dXJlTWFuYWdlckNv
Y29hOjpzaW5nbGV0b24oKTsgfQogfTsKIAogUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck1hYyYg
UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck1hYzo6c2luZ2xldG9uKCkKQEAgLTEyOSwyNSArMTMx
LDYgQEAgRGlzcGxheUNhcHR1cmVGYWN0b3J5JiBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyTWFj
OjpkaXNwbGF5Q2FwdHVyZUZhY3RvcnlQcml2YXQKICAgICByZXR1cm4gZmFjdG9yeS5nZXQoKTsK
IH0KIAotQ2FwdHVyZURldmljZU1hbmFnZXImIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJNYWM6
OmF1ZGlvQ2FwdHVyZURldmljZU1hbmFnZXIoKQotewotI2lmIFBMQVRGT1JNKE1BQykKLSAgICBy
ZXR1cm4gQ29yZUF1ZGlvQ2FwdHVyZURldmljZU1hbmFnZXI6OnNpbmdsZXRvbigpOwotI2Vsc2UK
LSAgICByZXR1cm4gQVZBdWRpb1Nlc3Npb25DYXB0dXJlRGV2aWNlTWFuYWdlcjo6c2luZ2xldG9u
KCk7Ci0jZW5kaWYKLX0KLQotQ2FwdHVyZURldmljZU1hbmFnZXImIFJlYWx0aW1lTWVkaWFTb3Vy
Y2VDZW50ZXJNYWM6OnZpZGVvQ2FwdHVyZURldmljZU1hbmFnZXIoKQotewotICAgIHJldHVybiBB
VkNhcHR1cmVEZXZpY2VNYW5hZ2VyOjpzaW5nbGV0b24oKTsKLX0KLQotQ2FwdHVyZURldmljZU1h
bmFnZXImIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJNYWM6OmRpc3BsYXlDYXB0dXJlRGV2aWNl
TWFuYWdlcigpCi17Ci0gICAgcmV0dXJuIERpc3BsYXlDYXB0dXJlTWFuYWdlckNvY29hOjpzaW5n
bGV0b24oKTsKLX0KLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxF
KE1FRElBX1NUUkVBTSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL21hYy9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyTWFjLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck1hYy5o
CmluZGV4IGMyNmVjNzNhN2MyMGFiMTcyNTdkMzYxZWUwNGQ0YmY3NTcyZjRlMTMuLmViMDcwOTIy
ZDI3ZWIzZjljNDdkMGQ3MTdkYzMyNjhjOTBhNzgyMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyTWFj
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1l
TWVkaWFTb3VyY2VDZW50ZXJNYWMuaApAQCAtNTIsMTIgKzUyLDYgQEAgcHJpdmF0ZToKICAgICBB
dWRpb0NhcHR1cmVGYWN0b3J5JiBhdWRpb0ZhY3RvcnlQcml2YXRlKCkgZmluYWw7CiAgICAgVmlk
ZW9DYXB0dXJlRmFjdG9yeSYgdmlkZW9GYWN0b3J5UHJpdmF0ZSgpIGZpbmFsOwogICAgIERpc3Bs
YXlDYXB0dXJlRmFjdG9yeSYgZGlzcGxheUNhcHR1cmVGYWN0b3J5UHJpdmF0ZSgpIGZpbmFsOwot
Ci0gICAgQ2FwdHVyZURldmljZU1hbmFnZXImIGF1ZGlvQ2FwdHVyZURldmljZU1hbmFnZXIoKSBm
aW5hbDsKLSAgICBDYXB0dXJlRGV2aWNlTWFuYWdlciYgdmlkZW9DYXB0dXJlRGV2aWNlTWFuYWdl
cigpIGZpbmFsOwotICAgIENhcHR1cmVEZXZpY2VNYW5hZ2VyJiBkaXNwbGF5Q2FwdHVyZURldmlj
ZU1hbmFnZXIoKSBmaW5hbDsKLQotICAgIEF1ZGlvQ2FwdHVyZUZhY3RvcnkqIG1fYXVkaW9GYWN0
b3J5T3ZlcnJpZGUgeyBudWxscHRyIH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1lZGlh
U291cmNlQ2VudGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0
aW1lTWVkaWFTb3VyY2VDZW50ZXIuY3BwCmluZGV4IGNmZmI5MTVhZjJiNzAzYWY4ZGE2YWExYzZh
N2JiMjUzYzc2YzhkMDQuLjQwYTUyYmRmZWIwOWZjMjc2NGY3NmU0ZDE3MTQxMzNmOGQwNDlhZjkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lTWVk
aWFTb3VyY2VDZW50ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9j
a1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuY3BwCkBAIC05NCwxNCArOTQsMTUgQEAgcHVibGlj
OgogICAgICAgICByZXR1cm4gTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6OmNyZWF0ZShTdHJpbmcg
eyBkZXZpY2UucGVyc2lzdGVudElkKCkgfSwgU3RyaW5nIHsgZGV2aWNlLmxhYmVsKCkgfSwgV1RG
TW92ZShoYXNoU2FsdCksIGNvbnN0cmFpbnRzKTsKICAgICB9CiAKLSNpZiBQTEFURk9STShJT1Nf
RkFNSUxZKQogcHJpdmF0ZToKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIHZvaWQgc2V0
VmlkZW9DYXB0dXJlUGFnZVN0YXRlKGJvb2wgaW50ZXJydXB0ZWQsIGJvb2wgcGFnZU11dGVkKQog
ICAgIHsKICAgICAgICAgaWYgKGFjdGl2ZVNvdXJjZSgpKQogICAgICAgICAgICAgYWN0aXZlU291
cmNlKCktPnNldEludGVycnVwdGVkKGludGVycnVwdGVkLCBwYWdlTXV0ZWQpOwogICAgIH0KICNl
bmRpZgorICAgIENhcHR1cmVEZXZpY2VNYW5hZ2VyJiB2aWRlb0NhcHR1cmVEZXZpY2VNYW5hZ2Vy
KCkgZmluYWwgeyByZXR1cm4gTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRv
bigpLnZpZGVvQ2FwdHVyZURldmljZU1hbmFnZXIoKTsgfQogfTsKIAogY2xhc3MgTW9ja1JlYWx0
aW1lRGlzcGxheVNvdXJjZUZhY3RvcnkgOiBwdWJsaWMgRGlzcGxheUNhcHR1cmVGYWN0b3J5IHsK
QEAgLTEyNiw2ICsxMjcsOCBAQCBwdWJsaWM6CiAKICAgICAgICAgcmV0dXJuIHsgfTsKICAgICB9
Citwcml2YXRlOgorICAgIENhcHR1cmVEZXZpY2VNYW5hZ2VyJiBkaXNwbGF5Q2FwdHVyZURldmlj
ZU1hbmFnZXIoKSBmaW5hbCB7IHJldHVybiBNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6
c2luZ2xldG9uKCkuZGlzcGxheUNhcHR1cmVEZXZpY2VNYW5hZ2VyKCk7IH0KIH07CiAKIGNsYXNz
IE1vY2tSZWFsdGltZUF1ZGlvU291cmNlRmFjdG9yeSA6IHB1YmxpYyBBdWRpb0NhcHR1cmVGYWN0
b3J5IHsKQEAgLTEzNyw2ICsxNDAsOCBAQCBwdWJsaWM6CiAKICAgICAgICAgcmV0dXJuIE1vY2tS
ZWFsdGltZUF1ZGlvU291cmNlOjpjcmVhdGUoU3RyaW5nIHsgZGV2aWNlLnBlcnNpc3RlbnRJZCgp
IH0sIFN0cmluZyB7IGRldmljZS5sYWJlbCgpIH0sIFdURk1vdmUoaGFzaFNhbHQpLCBjb25zdHJh
aW50cyk7CiAgICAgfQorcHJpdmF0ZToKKyAgICBDYXB0dXJlRGV2aWNlTWFuYWdlciYgYXVkaW9D
YXB0dXJlRGV2aWNlTWFuYWdlcigpIGZpbmFsIHsgcmV0dXJuIE1vY2tSZWFsdGltZU1lZGlhU291
cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5hdWRpb0NhcHR1cmVEZXZpY2VNYW5hZ2VyKCk7IH0KIH07
CiAKIHN0YXRpYyBWZWN0b3I8TW9ja01lZGlhRGV2aWNlPiYgZGV2aWNlcygpCkBAIC0xNzksMTAg
KzE4NCwyNCBAQCBNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlciYgTW9ja1JlYWx0aW1lTWVk
aWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpCiB2b2lkIE1vY2tSZWFsdGltZU1lZGlhU291cmNl
Q2VudGVyOjpzZXRNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlckVuYWJsZWQoYm9vbCBlbmFi
bGVkKQogewogICAgIHN0YXRpYyBib29sIGFjdGl2ZSA9IGZhbHNlOwotICAgIGlmIChhY3RpdmUg
IT0gZW5hYmxlZCkgewotICAgICAgICBhY3RpdmUgPSBlbmFibGVkOwotICAgICAgICBSZWFsdGlt
ZU1lZGlhU291cmNlQ2VudGVyOjpzZXRTaGFyZWRTdHJlYW1DZW50ZXJPdmVycmlkZShlbmFibGVk
ID8gJnNpbmdsZXRvbigpIDogbnVsbHB0cik7CisgICAgaWYgKGFjdGl2ZSA9PSBlbmFibGVkKQor
ICAgICAgICByZXR1cm47CisKKyAgICBhY3RpdmUgPSBlbmFibGVkOworCisgICAgUmVhbHRpbWVN
ZWRpYVNvdXJjZUNlbnRlciYgY2VudGVyID0gUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2lu
Z2xldG9uKCk7CisgICAgTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXImIG1vY2sgPSBzaW5n
bGV0b24oKTsKKworICAgIGlmIChhY3RpdmUpIHsKKyAgICAgICAgY2VudGVyLnNldEF1ZGlvRmFj
dG9yeShtb2NrLmF1ZGlvRmFjdG9yeSgpKTsKKyAgICAgICAgY2VudGVyLnNldFZpZGVvRmFjdG9y
eShtb2NrLnZpZGVvRmFjdG9yeSgpKTsKKyAgICAgICAgY2VudGVyLnNldERpc3BsYXlDYXB0dXJl
RmFjdG9yeShtb2NrLmRpc3BsYXlDYXB0dXJlRmFjdG9yeSgpKTsKKyAgICAgICAgcmV0dXJuOwog
ICAgIH0KKworICAgIGNlbnRlci51bnNldEF1ZGlvRmFjdG9yeShtb2NrLmF1ZGlvRmFjdG9yeSgp
KTsKKyAgICBjZW50ZXIudW5zZXRWaWRlb0ZhY3RvcnkobW9jay52aWRlb0ZhY3RvcnkoKSk7Cisg
ICAgY2VudGVyLnVuc2V0RGlzcGxheUNhcHR1cmVGYWN0b3J5KG1vY2suZGlzcGxheUNhcHR1cmVG
YWN0b3J5KCkpOwogfQogCiBzdGF0aWMgdm9pZCBjcmVhdGVDYXB0dXJlRGV2aWNlKGNvbnN0IE1v
Y2tNZWRpYURldmljZSYgZGV2aWNlKQpAQCAtMzEwLDE5ICszMjksMTkgQEAgVmVjdG9yPENhcHR1
cmVEZXZpY2U+JiBNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6ZGlzcGxheURldmljZXMo
KQogICAgIHJldHVybiBkaXNwbGF5RGV2aWNlczsKIH0KIAotQXVkaW9DYXB0dXJlRmFjdG9yeSYg
TW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OmF1ZGlvRmFjdG9yeVByaXZhdGUoKQorQXVk
aW9DYXB0dXJlRmFjdG9yeSYgTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OmF1ZGlvRmFj
dG9yeSgpCiB7CiAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPE1vY2tSZWFsdGltZUF1ZGlvU291
cmNlRmFjdG9yeT4gZmFjdG9yeTsKICAgICByZXR1cm4gZmFjdG9yeS5nZXQoKTsKIH0KIAotVmlk
ZW9DYXB0dXJlRmFjdG9yeSYgTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnZpZGVvRmFj
dG9yeVByaXZhdGUoKQorVmlkZW9DYXB0dXJlRmFjdG9yeSYgTW9ja1JlYWx0aW1lTWVkaWFTb3Vy
Y2VDZW50ZXI6OnZpZGVvRmFjdG9yeSgpCiB7CiAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPE1v
Y2tSZWFsdGltZVZpZGVvU291cmNlRmFjdG9yeT4gZmFjdG9yeTsKICAgICByZXR1cm4gZmFjdG9y
eS5nZXQoKTsKIH0KIAotRGlzcGxheUNhcHR1cmVGYWN0b3J5JiBNb2NrUmVhbHRpbWVNZWRpYVNv
dXJjZUNlbnRlcjo6ZGlzcGxheUNhcHR1cmVGYWN0b3J5UHJpdmF0ZSgpCitEaXNwbGF5Q2FwdHVy
ZUZhY3RvcnkmIE1vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpkaXNwbGF5Q2FwdHVyZUZh
Y3RvcnkoKQogewogICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxNb2NrUmVhbHRpbWVEaXNwbGF5
U291cmNlRmFjdG9yeT4gZmFjdG9yeTsKICAgICByZXR1cm4gZmFjdG9yeS5nZXQoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lTWVkaWFTb3Vy
Y2VDZW50ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lTWVk
aWFTb3VyY2VDZW50ZXIuaAppbmRleCBmNDkxMTQwODg0NDEyNGZkN2U2YzAxZmU3NzRjMjY4N2E1
MjEyNzU0Li40NGY5MzhiNTIyMGMzYzk1MjhlMWQ1YzBhMjU1N2JmNmIwNTdmZDE0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1lZGlhU291cmNl
Q2VudGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVN
ZWRpYVNvdXJjZUNlbnRlci5oCkBAIC0zNiw4ICszNiwxMCBAQAogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLWNsYXNzIE1vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyIGZpbmFsIDogcHVibGlj
IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIgeworY2xhc3MgTW9ja1JlYWx0aW1lTWVkaWFTb3Vy
Y2VDZW50ZXIgewogcHVibGljOgorICAgIHN0YXRpYyBNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNl
bnRlciYgc2luZ2xldG9uKCk7CisKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgdm9pZCBzZXRN
b2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlckVuYWJsZWQoYm9vbCk7CiAKICAgICBXRUJDT1JF
X0VYUE9SVCBzdGF0aWMgdm9pZCBzZXREZXZpY2VzKFZlY3RvcjxNb2NrTWVkaWFEZXZpY2U+JiYp
OwpAQCAtNTIsMTkgKzU0LDE3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxN
b2NrTWVkaWFEZXZpY2U+IG1vY2tEZXZpY2VXaXRoUGVyc2lzdGVudElEKGNvbnN0IFN0cmluZyYp
OwogICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPENhcHR1cmVEZXZpY2U+IGNhcHR1cmVEZXZpY2VX
aXRoUGVyc2lzdGVudElEKENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGUsIGNvbnN0IFN0cmluZyYp
OwogCisgICAgQ2FwdHVyZURldmljZU1hbmFnZXImIGF1ZGlvQ2FwdHVyZURldmljZU1hbmFnZXIo
KSB7IHJldHVybiBtX2F1ZGlvQ2FwdHVyZURldmljZU1hbmFnZXI7IH0KKyAgICBDYXB0dXJlRGV2
aWNlTWFuYWdlciYgdmlkZW9DYXB0dXJlRGV2aWNlTWFuYWdlcigpIHsgcmV0dXJuIG1fdmlkZW9D
YXB0dXJlRGV2aWNlTWFuYWdlcjsgfQorICAgIENhcHR1cmVEZXZpY2VNYW5hZ2VyJiBkaXNwbGF5
Q2FwdHVyZURldmljZU1hbmFnZXIoKSB7IHJldHVybiBtX2Rpc3BsYXlDYXB0dXJlRGV2aWNlTWFu
YWdlcjsgfQorCiBwcml2YXRlOgogICAgIE1vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyKCkg
PSBkZWZhdWx0OwogICAgIGZyaWVuZCBOZXZlckRlc3Ryb3llZDxNb2NrUmVhbHRpbWVNZWRpYVNv
dXJjZUNlbnRlcj47CiAKLSAgICBzdGF0aWMgTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIm
IHNpbmdsZXRvbigpOwotCi0gICAgQXVkaW9DYXB0dXJlRmFjdG9yeSYgYXVkaW9GYWN0b3J5UHJp
dmF0ZSgpIGZpbmFsOwotICAgIFZpZGVvQ2FwdHVyZUZhY3RvcnkmIHZpZGVvRmFjdG9yeVByaXZh
dGUoKSBmaW5hbDsKLSAgICBEaXNwbGF5Q2FwdHVyZUZhY3RvcnkmIGRpc3BsYXlDYXB0dXJlRmFj
dG9yeVByaXZhdGUoKSBmaW5hbDsKLQotICAgIENhcHR1cmVEZXZpY2VNYW5hZ2VyJiBhdWRpb0Nh
cHR1cmVEZXZpY2VNYW5hZ2VyKCkgZmluYWwgeyByZXR1cm4gbV9hdWRpb0NhcHR1cmVEZXZpY2VN
YW5hZ2VyOyB9Ci0gICAgQ2FwdHVyZURldmljZU1hbmFnZXImIHZpZGVvQ2FwdHVyZURldmljZU1h
bmFnZXIoKSBmaW5hbCB7IHJldHVybiBtX3ZpZGVvQ2FwdHVyZURldmljZU1hbmFnZXI7IH0KLSAg
ICBDYXB0dXJlRGV2aWNlTWFuYWdlciYgZGlzcGxheUNhcHR1cmVEZXZpY2VNYW5hZ2VyKCkgZmlu
YWwgeyByZXR1cm4gbV9kaXNwbGF5Q2FwdHVyZURldmljZU1hbmFnZXI7IH0KKyAgICBBdWRpb0Nh
cHR1cmVGYWN0b3J5JiBhdWRpb0ZhY3RvcnkoKTsKKyAgICBWaWRlb0NhcHR1cmVGYWN0b3J5JiB2
aWRlb0ZhY3RvcnkoKTsKKyAgICBEaXNwbGF5Q2FwdHVyZUZhY3RvcnkmIGRpc3BsYXlDYXB0dXJl
RmFjdG9yeSgpOwogCiAgICAgY2xhc3MgTW9ja0F1ZGlvQ2FwdHVyZURldmljZU1hbmFnZXIgZmlu
YWwgOiBwdWJsaWMgQ2FwdHVyZURldmljZU1hbmFnZXIgewogICAgIHByaXZhdGU6CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFscy5jcHAKaW5kZXggNzdiZmM5ODIxYTVkY2YwNTQ0MDhiMjhlNzEw
YzFiM2FkZjIzNjQ5Mi4uMTIyNzRhMTE2ZDQzOWFlMDIyOTRiNTNjNDNiYjFmYWQ0YjI3NDdlNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApAQCAtNDUzMywyNyArNDUzMyw2IEBA
IHZvaWQgSW50ZXJuYWxzOjp2aWRlb1NhbXBsZUF2YWlsYWJsZShNZWRpYVNhbXBsZSYgc2FtcGxl
KQogICAgIG1fbmV4dFRyYWNrRnJhbWVQcm9taXNlID0gc3RkOjpudWxsb3B0OwogfQogCi1FeGNl
cHRpb25Pcjx2b2lkPiBJbnRlcm5hbHM6OnNldE1lZGlhRGV2aWNlU3RhdGUoY29uc3QgU3RyaW5n
JiBpZCwgY29uc3QgU3RyaW5nJiBwcm9wZXJ0eSwgYm9vbCB2YWx1ZSkKLXsKLSAgICBhdXRvKiBk
b2N1bWVudCA9IGNvbnRleHREb2N1bWVudCgpOwotICAgIGlmICghZG9jdW1lbnQpCi0gICAgICAg
IHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkQWNjZXNzRXJyb3IsICJObyBjb250ZXh0IGRvY3Vt
ZW50Il9zIH07Ci0KLSAgICBpZiAoIWVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKHByb3Bl
cnR5LCAiZW5hYmxlZCIpKQotICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFjY2Vz
c0Vycm9yLCBtYWtlU3RyaW5nKCJcIiIgKyBwcm9wZXJ0eSwgIlwiIGlzIG5vdCBhIHZhbGlkIHBy
b3BlcnR5IGZvciB0aGlzIG1ldGhvZC4iKSB9OwotCi0gICAgYXV0byBzYWx0ID0gZG9jdW1lbnQt
PmRldmljZUlESGFzaFNhbHQoKTsKLSAgICBDYXB0dXJlRGV2aWNlIGRldmljZSA9IFJlYWx0aW1l
TWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmNhcHR1cmVEZXZpY2VXaXRoVW5pcXVlSUQo
aWQsIHNhbHQpOwotICAgIGlmICghZGV2aWNlKQotICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsg
SW52YWxpZEFjY2Vzc0Vycm9yLCBtYWtlU3RyaW5nKCJkZXZpY2Ugd2l0aCBJRCBcIiIgKyBpZCwg
IlwiIG5vdCBmb3VuZC4iKSB9OwotCi0gICAgYXV0byByZXN1bHQgPSBSZWFsdGltZU1lZGlhU291
cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5zZXREZXZpY2VFbmFibGVkKGRldmljZS5wZXJzaXN0ZW50
SWQoKSwgdmFsdWUpOwotICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpCi0gICAgICAgIHJl
dHVybiByZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpOwotCi0gICAgcmV0dXJuIHsgfTsKLX0KLQog
dm9pZCBJbnRlcm5hbHM6OmRlbGF5TWVkaWFTdHJlYW1UcmFja1NhbXBsZXMoTWVkaWFTdHJlYW1U
cmFjayYgdHJhY2ssIGZsb2F0IGRlbGF5KQogewogICAgIHRyYWNrLnNvdXJjZSgpLmRlbGF5U2Ft
cGxlcyhTZWNvbmRzIHsgZGVsYXkgfSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAppbmRl
eCA4YWUzNDQzYmIxMGFkYmQ1MWZhMDFjYTUyNjIzMjBiYzBlNWM4ZjM4Li44NjQ3MDg4ZWQ4NWJl
NWM5NGUxMzBmYzQ0YWE4OTYyNDc2MmM1ZWVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL0ludGVybmFscy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxz
LmgKQEAgLTY3Nyw3ICs2NzcsNiBAQCBwdWJsaWM6CiAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFN
KQogICAgIHZvaWQgc2V0Q2FtZXJhTWVkaWFTdHJlYW1UcmFja09yaWVudGF0aW9uKE1lZGlhU3Ry
ZWFtVHJhY2smLCBpbnQgb3JpZW50YXRpb24pOwotICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldE1l
ZGlhRGV2aWNlU3RhdGUoY29uc3QgU3RyaW5nJiBpZCwgY29uc3QgU3RyaW5nJiBwcm9wZXJ0eSwg
Ym9vbCB2YWx1ZSk7CiAgICAgdW5zaWduZWQgbG9uZyB0cmFja0F1ZGlvU2FtcGxlQ291bnQoKSBj
b25zdCB7IHJldHVybiBtX3RyYWNrQXVkaW9TYW1wbGVDb3VudDsgfQogICAgIHVuc2lnbmVkIGxv
bmcgdHJhY2tWaWRlb1NhbXBsZUNvdW50KCkgY29uc3QgeyByZXR1cm4gbV90cmFja1ZpZGVvU2Ft
cGxlQ291bnQ7IH0KICAgICB2b2lkIG9ic2VydmVNZWRpYVN0cmVhbVRyYWNrKE1lZGlhU3RyZWFt
VHJhY2smKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlk
bCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAppbmRleCAyNzE5MzQ2MTE0
YmQwY2JiMTZlMDE0NTIwNjJmMWZlNGY2MmNmOTY1Li5iNzZjMmE5ZDdhOTVkMzNkMDQ4OTA3MGEz
Y2Q5N2ZlNWJjNzA0ZGNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVy
bmFscy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCkBAIC02
NjQsNyArNjY0LDYgQEAgZW51bSBDb21wb3NpdGluZ1BvbGljeSB7CiAgICAgW0NvbmRpdGlvbmFs
PU1FRElBX1NUUkVBTV0gUHJvbWlzZTxJbWFnZURhdGE+IGdyYWJOZXh0TWVkaWFTdHJlYW1UcmFj
a0ZyYW1lKCk7CiAgICAgW0NvbmRpdGlvbmFsPU1FRElBX1NUUkVBTV0gcmVhZG9ubHkgYXR0cmli
dXRlIHVuc2lnbmVkIGxvbmcgdHJhY2tBdWRpb1NhbXBsZUNvdW50OwogICAgIFtDb25kaXRpb25h
bD1NRURJQV9TVFJFQU1dIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIHRyYWNrVmlk
ZW9TYW1wbGVDb3VudDsKLSAgICBbQ29uZGl0aW9uYWw9TUVESUFfU1RSRUFNLCBNYXlUaHJvd0V4
Y2VwdGlvbl0gdm9pZCBzZXRNZWRpYURldmljZVN0YXRlKERPTVN0cmluZyBkZXZpY2VJRCwgRE9N
U3RyaW5nIHByb3BlcnR5LCBib29sZWFuIHZhbHVlKTsKICAgICBbQ29uZGl0aW9uYWw9TUVESUFf
U1RSRUFNXSB2b2lkIGRlbGF5TWVkaWFTdHJlYW1UcmFja1NhbXBsZXMoTWVkaWFTdHJlYW1UcmFj
ayB0cmFjaywgZmxvYXQgZGVsYXkpOwogICAgIFtDb25kaXRpb25hbD1NRURJQV9TVFJFQU1dIHZv
aWQgc2V0TWVkaWFTdHJlYW1UcmFja011dGVkKE1lZGlhU3RyZWFtVHJhY2sgdHJhY2ssIGJvb2xl
YW4gbXV0ZWQpOwogICAgIFtDb25kaXRpb25hbD1NRURJQV9TVFJFQU1dIHZvaWQgcmVtb3ZlTWVk
aWFTdHJlYW1UcmFjayhNZWRpYVN0cmVhbSBzdHJlYW0sIE1lZGlhU3RyZWFtVHJhY2sgdHJhY2sp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVk
aWFDYXB0dXJlTWFuYWdlci5jcHAKaW5kZXggOTYwOGU2ODNmMzc4YjMwYzA5NmQxZmQyYzNjMDlj
NmMyNzVkNjFhMS4uODI3MWZkMDdiNjcyZjhkZjU0Zjg2MzVlNmIyMzc4NjMzOGRkOGExNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXIuY3BwCkBAIC0yMDcsNiArMjA3LDcgQEAgVXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXI6On5Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlcigpCiB7CiAgICAgUmVhbHRpbWVNZWRpYVNv
dXJjZUNlbnRlcjo6dW5zZXRBdWRpb0ZhY3RvcnkoKnRoaXMpOwogICAgIFJlYWx0aW1lTWVkaWFT
b3VyY2VDZW50ZXI6OnVuc2V0RGlzcGxheUNhcHR1cmVGYWN0b3J5KCp0aGlzKTsKKyAgICBSZWFs
dGltZU1lZGlhU291cmNlQ2VudGVyOjp1bnNldFZpZGVvRmFjdG9yeSgqdGhpcyk7CiAgICAgbV9w
cm9jZXNzLnJlbW92ZU1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmgKaW5kZXgg
OGVhYjAxNzBkMDdlODUzZWY5NmQyNjgzNzYxOWQ4OWQxMDk3YWJlNy4uYWQxYmU3Y2NlZGQ2YWU0
MzA4ZmM0ZmVmMDI4YzM3N2I0YTllMGJkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmgKQEAgLTMwLDYgKzMw
LDcgQEAKICNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKICNpbmNsdWRlICJTaGFyZWRNZW1v
cnkuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzU3VwcGxlbWVudC5oIgorI2luY2x1ZGUgPFdlYkNv
cmUvQ2FwdHVyZURldmljZU1hbmFnZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1lTWVk
aWFTb3VyY2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3VyY2VGYWN0b3J5
Lmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KQEAgLTYxLDYgKzYyLDIzIEBAIHByaXZhdGU6
CiAgICAgV2ViQ29yZTo6Q2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlRGlzcGxheUNhcHR1cmVT
b3VyY2UoY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYgZGV2aWNlLCBjb25zdCBXZWJDb3Jl
OjpNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cykgZmluYWwgIHsgcmV0dXJuIGNyZWF0ZUNh
cHR1cmVTb3VyY2UoZGV2aWNlLCB7IH0sIGNvbnN0cmFpbnRzKTsgfQogICAgIFdlYkNvcmU6OkNh
cHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZUNhcHR1cmVTb3VyY2UoY29uc3QgV2ViQ29yZTo6Q2Fw
dHVyZURldmljZSYsIFN0cmluZyYmLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzKik7
CiAKKyAgICBjbGFzcyBOb09wQ2FwdHVyZURldmljZU1hbmFnZXIgOiBwdWJsaWMgV2ViQ29yZTo6
Q2FwdHVyZURldmljZU1hbmFnZXIgeworICAgIHB1YmxpYzoKKyAgICAgICAgTm9PcENhcHR1cmVE
ZXZpY2VNYW5hZ2VyKCkgPSBkZWZhdWx0OworCisgICAgcHJpdmF0ZToKKyAgICAgICAgY29uc3Qg
VmVjdG9yPFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U+JiBjYXB0dXJlRGV2aWNlcygpIGZpbmFsCisg
ICAgICAgIHsKKyAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAg
cmV0dXJuIG1fZW1wdHlEZXZpY2VzOworICAgICAgICB9CisgICAgICAgIFZlY3RvcjxXZWJDb3Jl
OjpDYXB0dXJlRGV2aWNlPiBtX2VtcHR5RGV2aWNlczsKKyAgICB9OworCisgICAgV2ViQ29yZTo6
Q2FwdHVyZURldmljZU1hbmFnZXImIGF1ZGlvQ2FwdHVyZURldmljZU1hbmFnZXIoKSBmaW5hbCB7
IHJldHVybiBtX25vT3BDYXB0dXJlRGV2aWNlTWFuYWdlcjsgfQorICAgIFdlYkNvcmU6OkNhcHR1
cmVEZXZpY2VNYW5hZ2VyJiB2aWRlb0NhcHR1cmVEZXZpY2VNYW5hZ2VyKCkgZmluYWwgeyByZXR1
cm4gbV9ub09wQ2FwdHVyZURldmljZU1hbmFnZXI7IH0KKyAgICBXZWJDb3JlOjpDYXB0dXJlRGV2
aWNlTWFuYWdlciYgZGlzcGxheUNhcHR1cmVEZXZpY2VNYW5hZ2VyKCkgZmluYWwgeyByZXR1cm4g
bV9ub09wQ2FwdHVyZURldmljZU1hbmFnZXI7IH0KKwogICAgIC8vIElQQzo6TWVzc2FnZVJlY2Vp
dmVyCiAgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRl
Y29kZXImKSBmaW5hbDsKIApAQCAtODYsNiArMTA0LDcgQEAgcHJpdmF0ZToKICAgICBmcmllbmQg
Y2xhc3MgU291cmNlOwogICAgIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxTb3VyY2U+PiBtX3Nv
dXJjZXM7CiAgICAgV2ViUHJvY2VzcyYgbV9wcm9jZXNzOworICAgIE5vT3BDYXB0dXJlRGV2aWNl
TWFuYWdlciBtX25vT3BDYXB0dXJlRGV2aWNlTWFuYWdlcjsKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYktpdAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>