<?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>187905</bug_id>
          
          <creation_ts>2018-07-23 07:12:43 -0700</creation_ts>
          <short_desc>[MediaStream] Restructure getDisplayMedia classes</short_desc>
          <delta_ts>2018-07-24 12:31:12 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebRTC</component>
          <version>Other</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Carlson">eric.carlson</reporter>
          <assigned_to name="Eric Carlson">eric.carlson</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>dino</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>1444248</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2018-07-23 07:12:43 -0700</bug_when>
    <thetext>Move code that can be shared to the base classes, clean up existing code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1444260</commentid>
    <comment_count>1</comment_count>
      <attachid>345574</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2018-07-23 08:09:23 -0700</bug_when>
    <thetext>Created attachment 345574
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1444261</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-07-23 08:10:17 -0700</bug_when>
    <thetext>&lt;rdar://problem/42500215&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1444647</commentid>
    <comment_count>3</comment_count>
      <attachid>345666</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2018-07-24 06:09:04 -0700</bug_when>
    <thetext>Created attachment 345666
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1444659</commentid>
    <comment_count>4</comment_count>
      <attachid>345671</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2018-07-24 07:08:56 -0700</bug_when>
    <thetext>Created attachment 345671
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1444681</commentid>
    <comment_count>5</comment_count>
      <attachid>345671</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-07-24 08:04:50 -0700</bug_when>
    <thetext>Comment on attachment 345671
Patch for landing

Clearing flags on attachment: 345671

Committed r234146: &lt;https://trac.webkit.org/changeset/234146&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1444769</commentid>
    <comment_count>6</comment_count>
      <attachid>345696</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2018-07-24 11:52:04 -0700</bug_when>
    <thetext>Created attachment 345696
Build fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1444785</commentid>
    <comment_count>7</comment_count>
      <attachid>345696</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-07-24 12:31:11 -0700</bug_when>
    <thetext>Comment on attachment 345696
Build fix

Clearing flags on attachment: 345696

Committed r234164: &lt;https://trac.webkit.org/changeset/234164&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1444786</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-07-24 12:31:12 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>345574</attachid>
            <date>2018-07-23 08:09:23 -0700</date>
            <delta_ts>2018-07-24 12:02:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-187905-20180723080923.patch</filename>
            <type>text/plain</type>
            <size>27534</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMzNTE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmMyNzdlNGNmZDJkODFm
N2Y0OWViMTVmMmE4ZjMyNDgxMmRjOTE5MC4uYjFlZjYyNGNlMTIxMGQwOGYyZGRjNWUwMGQ4MTNh
ZGI3MTcxZTMxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDE4LTA3LTIzICBFcmlj
IENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtNZWRpYVN0cmVh
bV0gUmVzdHJ1Y3R1cmUgZ2V0RGlzcGxheU1lZGlhIGNsYXNzZXMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NzkwNQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgbm8gZnVuY3Rpb25h
bCBjaGFuZ2VzLgorCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vQ2FwdHVyZURldmlj
ZU1hbmFnZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNhcHR1cmVEZXZpY2VNYW5hZ2VyOjpyZWZy
ZXNoQ2FwdHVyZURldmljZXMpOiBEZWxldGVkLCBubyBuZWVkIGZvciBpdCB0byBiZSBhIAorICAg
ICAgICB2aXJ0dWFsIG1ldGhvZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMv
QVZDYXB0dXJlRGV2aWNlTWFuYWdlci5oOgorCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbWFjL0Rpc3BsYXlDYXB0dXJlTWFuYWdlckNvY29hLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkRpc3BsYXlDYXB0dXJlTWFuYWdlckNvY29hOjpjYXB0dXJlRGV2aWNlcyk6CisgICAgICAgIChX
ZWJDb3JlOjpEaXNwbGF5Q2FwdHVyZU1hbmFnZXJDb2NvYTo6dXBkYXRlRGlzcGxheUNhcHR1cmVE
ZXZpY2VzKTogTW92ZWQgZnVuY3Rpb25hbGl0eSAKKyAgICAgICAgdG8gU2NyZWVuRGlzcGxheUNh
cHR1cmVTb3VyY2VNYWMuCisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5Q2FwdHVyZU1hbmFnZXJD
b2NvYTo6c2NyZWVuQ2FwdHVyZURldmljZVdpdGhQZXJzaXN0ZW50SUQpOiBEaXR0by4KKyAgICAg
ICAgKFdlYkNvcmU6OmRpc3BsYXlSZWNvbmZpZ3VyYXRpb25DYWxsQmFjayk6IERlbGV0ZWQsIG1v
dmVkIHRvIFNjcmVlbkRpc3BsYXlDYXB0dXJlU291cmNlTWFjLgorICAgICAgICAoV2ViQ29yZTo6
RGlzcGxheUNhcHR1cmVNYW5hZ2VyQ29jb2E6On5EaXNwbGF5Q2FwdHVyZU1hbmFnZXJDb2NvYSk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5Q2FwdHVyZU1hbmFnZXJDb2NvYTo6
cmVmcmVzaENhcHR1cmVEZXZpY2VzKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRp
YXN0cmVhbS9tYWMvRGlzcGxheUNhcHR1cmVNYW5hZ2VyQ29jb2EuaDoKKworICAgICAgICAqIHBs
YXRmb3JtL21lZGlhc3RyZWFtL21hYy9EaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OnJvdW5kVXBUb01hY3JvYmxvY2tNdWx0aXBsZSk6IE1vdmVkIGZyb20g
U2NyZWVuRGlzcGxheUNhcHR1cmVTb3VyY2VNYWMuCisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5
Q2FwdHVyZVNvdXJjZUNvY29hOjphcHBseVNpemUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6
OkRpc3BsYXlDYXB0dXJlU291cmNlQ29jb2E6OnNhbXBsZUJ1ZmZlckZyb21QaXhlbEJ1ZmZlcik6
IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYTo6cGl4
ZWxCdWZmZXJGcm9tSU9TdXJmYWNlKTogRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFz
dHJlYW0vbWFjL0Rpc3BsYXlDYXB0dXJlU291cmNlQ29jb2EuaDoKKworICAgICAgICAqIHBsYXRm
b3JtL21lZGlhc3RyZWFtL21hYy9TY3JlZW5EaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYy5oOgorICAg
ICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9TY3JlZW5EaXNwbGF5Q2FwdHVyZVNvdXJj
ZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OnVwZGF0ZURpc3BsYXlJRCk6CisgICAgICAgIChX
ZWJDb3JlOjpTY3JlZW5EaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYzo6Y3JlYXRlRGlzcGxheVN0cmVh
bSk6IEZpeCBsb2cgbWVzc2FnZS4KKyAgICAgICAgKFdlYkNvcmU6OlNjcmVlbkRpc3BsYXlDYXB0
dXJlU291cmNlTWFjOjpzdGFydERpc3BsYXlTdHJlYW0pOiBEaXR0by4KKyAgICAgICAgKFdlYkNv
cmU6OlNjcmVlbkRpc3BsYXlDYXB0dXJlU291cmNlTWFjOjphcHBseVNpemUpOiBVcGRhdGUgZm9y
IGJhc2UgY2xhc3MgY2hhbmdlcy4KKyAgICAgICAgKFdlYkNvcmU6OlNjcmVlbkRpc3BsYXlDYXB0
dXJlU291cmNlTWFjOjphcHBseUZyYW1lUmF0ZSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6
U2NyZWVuRGlzcGxheUNhcHR1cmVTb3VyY2VNYWM6OmZyYW1lQXZhaWxhYmxlKTogRGl0dG8uCisg
ICAgICAgIChXZWJDb3JlOjpTY3JlZW5EaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYzo6c2NyZWVuQ2Fw
dHVyZURldmljZVdpdGhQZXJzaXN0ZW50SUQpOiBNb3ZlZCBmcm9tCisgICAgICAgIERpc3BsYXlD
YXB0dXJlTWFuYWdlckNvY29hLgorICAgICAgICAoV2ViQ29yZTo6U2NyZWVuRGlzcGxheUNhcHR1
cmVTb3VyY2VNYWM6OnNjcmVlbkNhcHR1cmVEZXZpY2VzKTogRGl0dG8uCisgICAgICAgIChXZWJD
b3JlOjpyb3VuZFVwVG9NYWNyb2Jsb2NrTXVsdGlwbGUpOiBNb3ZlZCB0byBEaXNwbGF5Q2FwdHVy
ZVNvdXJjZUNvY29hLgorICAgICAgICAoV2ViQ29yZTo6U2NyZWVuRGlzcGxheUNhcHR1cmVTb3Vy
Y2VNYWM6OnVwZGF0ZURpc3BsYXlJRCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6U2NyZWVu
RGlzcGxheUNhcHR1cmVTb3VyY2VNYWM6OnNhbXBsZUJ1ZmZlckZyb21QaXhlbEJ1ZmZlcik6IERp
dHRvLgorICAgICAgICAoV2ViQ29yZTo6U2NyZWVuRGlzcGxheUNhcHR1cmVTb3VyY2VNYWM6OnBp
eGVsQnVmZmVyRnJvbUlPU3VyZmFjZSk6IERpdHRvLgorCiAyMDE4LTA3LTA1ICBTZXJnaW8gVmls
bGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtXZWJWUl0gRml4IFZS
RGlzcGxheUV2ZW50IGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9DYXB0dXJlRGV2aWNlTWFuYWdlci5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vQ2FwdHVyZURldmljZU1hbmFnZXIuaAppbmRleCA1ZTZi
ZjlmZWE2MGMyODA2OTUxZmU3NWJiNzAxNTQwODdlYTY4MzhiLi40NWVkYjMwMGMzYjcyZTg3NzM0
NWM5ZjAwMjM2ZmQwNmQzNTQ5Y2RlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9DYXB0dXJlRGV2aWNlTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL0NhcHR1cmVEZXZpY2VNYW5hZ2VyLmgKQEAgLTQyLDggKzQy
LDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgY29uc3QgVmVjdG9yPENhcHR1cmVEZXZpY2U+JiBj
YXB0dXJlRGV2aWNlcygpID0gMDsKICAgICB2aXJ0dWFsIHN0ZDo6b3B0aW9uYWw8Q2FwdHVyZURl
dmljZT4gY2FwdHVyZURldmljZVdpdGhQZXJzaXN0ZW50SUQoQ2FwdHVyZURldmljZTo6RGV2aWNl
VHlwZSwgY29uc3QgU3RyaW5nJikgeyByZXR1cm4gc3RkOjpudWxsb3B0OyB9CiAKLSAgICB2aXJ0
dWFsIHZvaWQgcmVmcmVzaENhcHR1cmVEZXZpY2VzKCkgeyB9Ci0KIHByb3RlY3RlZDoKICAgICB2
aXJ0dWFsIH5DYXB0dXJlRGV2aWNlTWFuYWdlcigpOwogICAgIENhcHR1cmVEZXZpY2UgY2FwdHVy
ZURldmljZUZyb21QZXJzaXN0ZW50SUQoY29uc3QgU3RyaW5nJiBjYXB0dXJlRGV2aWNlSUQpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWQ2Fw
dHVyZURldmljZU1hbmFnZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L21hYy9BVkNhcHR1cmVEZXZpY2VNYW5hZ2VyLmgKaW5kZXggN2YwN2RmM2QxNzBkODdlZjYxNTBk
NzNjODVmNzkzOGYwMWQ0OTgyYS4uYjIxY2E5YjkyYTI2NGQ4ODBhNGQyN2E0NjgzNzg0NTFkMzcy
ZTMwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFj
L0FWQ2FwdHVyZURldmljZU1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9tYWMvQVZDYXB0dXJlRGV2aWNlTWFuYWdlci5oCkBAIC01OCw3ICs1OCw3IEBA
IHByb3RlY3RlZDoKICAgICBBVkNhcHR1cmVEZXZpY2VNYW5hZ2VyKCk7CiAgICAgfkFWQ2FwdHVy
ZURldmljZU1hbmFnZXIoKSBmaW5hbDsKIAotICAgIHZvaWQgcmVmcmVzaENhcHR1cmVEZXZpY2Vz
KCkgZmluYWw7CisgICAgdm9pZCByZWZyZXNoQ2FwdHVyZURldmljZXMoKTsKICAgICB2b2lkIHJl
Z2lzdGVyRm9yRGV2aWNlTm90aWZpY2F0aW9ucygpOwogICAgIHZvaWQgcmVmcmVzaEFWQ2FwdHVy
ZURldmljZXNPZlR5cGUoQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZSk7CiAgICAgVmVjdG9yPENh
cHR1cmVEZXZpY2U+JiBjYXB0dXJlRGV2aWNlc0ludGVybmFsKCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvRGlzcGxheUNhcHR1cmVNYW5hZ2Vy
Q29jb2EuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0Rpc3Bs
YXlDYXB0dXJlTWFuYWdlckNvY29hLmNwcAppbmRleCBhYjVmYjA0ZTE3OWRhMmU1YjExMDFjODVk
OGU2ZWRmOTRkYmM3MTg5Li41YzJhOWQyNDE5OGExM2U0OGM0ZjczZTlkZTYxZGQzN2FkZTkyNTUx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvRGlz
cGxheUNhcHR1cmVNYW5hZ2VyQ29jb2EuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL21hYy9EaXNwbGF5Q2FwdHVyZU1hbmFnZXJDb2NvYS5jcHAKQEAgLTI5LDYg
KzI5LDcgQEAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogCiAjaW5jbHVkZSAiTG9nZ2luZy5o
IgorI2luY2x1ZGUgPHd0Zi9BbGdvcml0aG1zLmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJv
eWVkLmg+CiAKICNpZiBQTEFURk9STShNQUMpCkBAIC0zOCwxMTQgKzM5LDMyIEBACiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAotI2lmIFBMQVRGT1JNKE1BQykKLXN0YXRpYyB2b2lkIGRpc3BsYXlS
ZWNvbmZpZ3VyYXRpb25DYWxsQmFjayhDR0RpcmVjdERpc3BsYXlJRCwgQ0dEaXNwbGF5Q2hhbmdl
U3VtbWFyeUZsYWdzLCB2b2lkKiB1c2VySW5mbykKLXsKLSAgICBpZiAodXNlckluZm8pCi0gICAg
ICAgIHJlaW50ZXJwcmV0X2Nhc3Q8RGlzcGxheUNhcHR1cmVNYW5hZ2VyQ29jb2EqPih1c2VySW5m
byktPnJlZnJlc2hDYXB0dXJlRGV2aWNlcygpOwotfQotI2VuZGlmCi0KIERpc3BsYXlDYXB0dXJl
TWFuYWdlckNvY29hJiBEaXNwbGF5Q2FwdHVyZU1hbmFnZXJDb2NvYTo6c2luZ2xldG9uKCkKIHsK
ICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8RGlzcGxheUNhcHR1cmVNYW5hZ2VyQ29jb2E+IG1h
bmFnZXI7CiAgICAgcmV0dXJuIG1hbmFnZXIuZ2V0KCk7CiB9CiAKLURpc3BsYXlDYXB0dXJlTWFu
YWdlckNvY29hOjp+RGlzcGxheUNhcHR1cmVNYW5hZ2VyQ29jb2EoKQotewotI2lmIFBMQVRGT1JN
KE1BQykKLSAgICBpZiAobV9vYnNlcnZpbmdEaXNwbGF5Q2hhbmdlcykKLSAgICAgICAgQ0dEaXNw
bGF5UmVtb3ZlUmVjb25maWd1cmF0aW9uQ2FsbGJhY2soZGlzcGxheVJlY29uZmlndXJhdGlvbkNh
bGxCYWNrLCB0aGlzKTsKLSNlbmRpZgotfQotCiBjb25zdCBWZWN0b3I8Q2FwdHVyZURldmljZT4m
IERpc3BsYXlDYXB0dXJlTWFuYWdlckNvY29hOjpjYXB0dXJlRGV2aWNlcygpCiB7Ci0gICAgc3Rh
dGljIGJvb2wgaW5pdGlhbGl6ZWQ7Ci0gICAgaWYgKCFpbml0aWFsaXplZCkgewotICAgICAgICBy
ZWZyZXNoQ2FwdHVyZURldmljZXMoKTsKKyAgICBtX2RldmljZXMuY2xlYXIoKTsKIAotI2lmIFBM
QVRGT1JNKE1BQykKLSAgICAgICAgQ0dEaXNwbGF5UmVnaXN0ZXJSZWNvbmZpZ3VyYXRpb25DYWxs
YmFjayhkaXNwbGF5UmVjb25maWd1cmF0aW9uQ2FsbEJhY2ssIHRoaXMpOwotI2VuZGlmCisgICAg
dXBkYXRlRGlzcGxheUNhcHR1cmVEZXZpY2VzKCk7CiAKLSAgICAgICAgbV9vYnNlcnZpbmdEaXNw
bGF5Q2hhbmdlcyA9IHRydWU7Ci0gICAgICAgIGluaXRpYWxpemVkID0gdHJ1ZTsKLSAgICB9Owot
ICAgIAotICAgIHJldHVybiBtX2Rpc3BsYXlzOworICAgIHJldHVybiBtX2RldmljZXM7CiB9CiAK
LXZvaWQgRGlzcGxheUNhcHR1cmVNYW5hZ2VyQ29jb2E6OnJlZnJlc2hDYXB0dXJlRGV2aWNlcygp
Cit2b2lkIERpc3BsYXlDYXB0dXJlTWFuYWdlckNvY29hOjp1cGRhdGVEaXNwbGF5Q2FwdHVyZURl
dmljZXMoKQogewogI2lmIFBMQVRGT1JNKE1BQykKLSAgICB1aW50MzJfdCBkaXNwbGF5Q291bnQg
PSAwOwotICAgIGF1dG8gZXJyID0gQ0dHZXRBY3RpdmVEaXNwbGF5TGlzdCgwLCBudWxscHRyLCAm
ZGlzcGxheUNvdW50KTsKLSAgICBpZiAoZXJyKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HKE1lZGlh
LCAiQ0dHZXRBY3RpdmVEaXNwbGF5TGlzdCgpIHJldHVybmVkIGVycm9yICVkIHdoZW4gdHJ5aW5n
IHRvIGdldCBkaXNwbGF5IGNvdW50IiwgKGludCllcnIpOwotICAgICAgICByZXR1cm47Ci0gICAg
fQotCi0gICAgaWYgKCFkaXNwbGF5Q291bnQpIHsKLSAgICAgICAgUkVMRUFTRV9MT0coTWVkaWEs
ICJDR0dldEFjdGl2ZURpc3BsYXlMaXN0KCkgcmV0dXJuZWQgYSBkaXNwbGF5IGNvdW50IG9mIDAi
KTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIENHRGlyZWN0RGlzcGxheUlEIGFjdGl2
ZURpc3BsYXlzW2Rpc3BsYXlDb3VudF07Ci0gICAgZXJyID0gQ0dHZXRBY3RpdmVEaXNwbGF5TGlz
dChkaXNwbGF5Q291bnQsICYoYWN0aXZlRGlzcGxheXNbMF0pLCAmZGlzcGxheUNvdW50KTsKLSAg
ICBpZiAoZXJyKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HKE1lZGlhLCAiQ0dHZXRBY3RpdmVEaXNw
bGF5TGlzdCgpIHJldHVybmVkIGVycm9yICVkIHdoZW4gdHJ5aW5nIHRvIGdldCB0aGUgYWN0aXZl
IGRpc3BsYXkgbGlzdCIsIChpbnQpZXJyKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAg
IGJvb2wgaGF2ZURldmljZUNoYW5nZXMgPSBmYWxzZTsKLSAgICBmb3IgKGF1dG8gZGlzcGxheUlE
IDogYWN0aXZlRGlzcGxheXMpIHsKLSAgICAgICAgaWYgKHN0ZDo6YW55X29mKG1fZGlzcGxheXNJ
bnRlcm5hbC5iZWdpbigpLCBtX2Rpc3BsYXlzSW50ZXJuYWwuZW5kKCksIFtkaXNwbGF5SURdKGF1
dG8mIGRldmljZSkgeyByZXR1cm4gZGV2aWNlLmNnRGlyZWN0RGlzcGxheUlEID09IGRpc3BsYXlJ
RDsgfSkpCi0gICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgaGF2ZURldmljZUNoYW5nZXMg
PSB0cnVlOwotICAgICAgICBtX2Rpc3BsYXlzSW50ZXJuYWwuYXBwZW5kKHsgZGlzcGxheUlELCBD
R0Rpc3BsYXlJRFRvT3BlbkdMRGlzcGxheU1hc2soZGlzcGxheUlEKSB9KTsKLSAgICB9Ci0KLSAg
ICBmb3IgKGF1dG8mIGRpc3BsYXkgOiBtX2Rpc3BsYXlzSW50ZXJuYWwpIHsKLSAgICAgICAgYXV0
byBkaXNwbGF5TWFzayA9IENHRGlzcGxheUlEVG9PcGVuR0xEaXNwbGF5TWFzayhkaXNwbGF5LmNn
RGlyZWN0RGlzcGxheUlEKTsKLSAgICAgICAgaWYgKGRpc3BsYXkuY2dPcGVuR0xEaXNwbGF5TWFz
ayAhPSBkaXNwbGF5TWFzaykgewotICAgICAgICAgICAgZGlzcGxheS5jZ09wZW5HTERpc3BsYXlN
YXNrID0gZGlzcGxheU1hc2s7Ci0gICAgICAgICAgICBoYXZlRGV2aWNlQ2hhbmdlcyA9IHRydWU7
Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBpZiAoIWhhdmVEZXZpY2VDaGFuZ2VzKQotICAgICAg
ICByZXR1cm47Ci0KLSAgICBpbnQgY291bnQgPSAwOwotICAgIG1fZGlzcGxheXMgPSBWZWN0b3I8
Q2FwdHVyZURldmljZT4oKTsKLSAgICBmb3IgKGF1dG8mIGRldmljZSA6IG1fZGlzcGxheXNJbnRl
cm5hbCkgewotICAgICAgICBDYXB0dXJlRGV2aWNlIGRpc3BsYXlEZXZpY2UoU3RyaW5nOjpudW1i
ZXIoZGV2aWNlLmNnRGlyZWN0RGlzcGxheUlEKSwgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6
U2NyZWVuLCBtYWtlU3RyaW5nKCJTY3JlZW4gIiwgU3RyaW5nOjpudW1iZXIoY291bnQrKykpKTsK
LSAgICAgICAgZGlzcGxheURldmljZS5zZXRFbmFibGVkKGRldmljZS5jZ09wZW5HTERpc3BsYXlN
YXNrKTsKLSAgICAgICAgbV9kaXNwbGF5cy5hcHBlbmQoV1RGTW92ZShkaXNwbGF5RGV2aWNlKSk7
Ci0gICAgfQorICAgIFNjcmVlbkRpc3BsYXlDYXB0dXJlU291cmNlTWFjOjpzY3JlZW5DYXB0dXJl
RGV2aWNlcyhtX2RldmljZXMpOwogI2VuZGlmCiB9CiAKIHN0ZDo6b3B0aW9uYWw8Q2FwdHVyZURl
dmljZT4gRGlzcGxheUNhcHR1cmVNYW5hZ2VyQ29jb2E6OnNjcmVlbkNhcHR1cmVEZXZpY2VXaXRo
UGVyc2lzdGVudElEKGNvbnN0IFN0cmluZyYgZGV2aWNlSUQpCiB7CiAjaWYgUExBVEZPUk0oTUFD
KQotICAgIGJvb2wgb2s7Ci0gICAgYXV0byBkaXNwbGF5SUQgPSBkZXZpY2VJRC50b1VJbnRTdHJp
Y3QoJm9rKTsKLSAgICBpZiAoIW9rKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HKE1lZGlhLCAiRGlz
cGxheSBJRCBkb2VzIG5vdCBjb252ZXJ0IHRvIDMyLWJpdCBpbnRlZ2VyIik7Ci0gICAgICAgIHJl
dHVybiBzdGQ6Om51bGxvcHQ7Ci0gICAgfQotCi0gICAgYXV0byBhY3R1YWxEaXNwbGF5SUQgPSBT
Y3JlZW5EaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYzo6dXBkYXRlRGlzcGxheUlEKGRpc3BsYXlJRCk7
Ci0gICAgaWYgKCFhY3R1YWxEaXNwbGF5SUQpCi0gICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7
Ci0KLSAgICBhdXRvIGRldmljZSA9IENhcHR1cmVEZXZpY2UoU3RyaW5nOjpudW1iZXIoYWN0dWFs
RGlzcGxheUlELnZhbHVlKCkpLCBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpTY3JlZW4sICJT
Y3JlZW5DYXB0dXJlRGV2aWNlIl9zKTsKLSAgICBkZXZpY2Uuc2V0RW5hYmxlZCh0cnVlKTsKLQot
ICAgIHJldHVybiBkZXZpY2U7CisgICAgcmV0dXJuIFNjcmVlbkRpc3BsYXlDYXB0dXJlU291cmNl
TWFjOjpzY3JlZW5DYXB0dXJlRGV2aWNlV2l0aFBlcnNpc3RlbnRJRChkZXZpY2VJRCk7CiAjZWxz
ZQogICAgIFVOVVNFRF9QQVJBTShkZXZpY2VJRCk7CiAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9EaXNw
bGF5Q2FwdHVyZU1hbmFnZXJDb2NvYS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vbWFjL0Rpc3BsYXlDYXB0dXJlTWFuYWdlckNvY29hLmgKaW5kZXggZDc2Mjg2NGYyZTQy
NGY3ZmY1OWM4YjVlMjVmYTYzYzRjNmE0ZTU0Zi4uNjhjZWU2MDdmYTNjNjg3Y2E5NmUwZWFjYTZj
NTk3MDBmODRhMTNiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vbWFjL0Rpc3BsYXlDYXB0dXJlTWFuYWdlckNvY29hLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0Rpc3BsYXlDYXB0dXJlTWFuYWdlckNvY29hLmgK
QEAgLTM0LDI0ICszNCwyMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBEaXNwbGF5Q2Fw
dHVyZU1hbmFnZXJDb2NvYSBmaW5hbCA6IHB1YmxpYyBDYXB0dXJlRGV2aWNlTWFuYWdlciB7CiBw
dWJsaWM6CiAgICAgc3RhdGljIERpc3BsYXlDYXB0dXJlTWFuYWdlckNvY29hJiBzaW5nbGV0b24o
KTsKLSAgICBEaXNwbGF5Q2FwdHVyZU1hbmFnZXJDb2NvYSgpID0gZGVmYXVsdDsKIAotICAgIHZv
aWQgcmVmcmVzaENhcHR1cmVEZXZpY2VzKCkgZmluYWw7CisgICAgRGlzcGxheUNhcHR1cmVNYW5h
Z2VyQ29jb2EoKSA9IGRlZmF1bHQ7CiAKIHByaXZhdGU6Ci0gICAgdmlydHVhbCB+RGlzcGxheUNh
cHR1cmVNYW5hZ2VyQ29jb2EoKTsKKyAgICB2aXJ0dWFsIH5EaXNwbGF5Q2FwdHVyZU1hbmFnZXJD
b2NvYSgpID0gZGVmYXVsdDsKKworICAgIHZvaWQgdXBkYXRlRGlzcGxheUNhcHR1cmVEZXZpY2Vz
KCk7CiAKICAgICBjb25zdCBWZWN0b3I8Q2FwdHVyZURldmljZT4mIGNhcHR1cmVEZXZpY2VzKCkg
ZmluYWw7CisKICAgICBzdGQ6Om9wdGlvbmFsPENhcHR1cmVEZXZpY2U+IGNhcHR1cmVEZXZpY2VX
aXRoUGVyc2lzdGVudElEKENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGUsIGNvbnN0IFN0cmluZyYp
IGZpbmFsOwogICAgIHN0ZDo6b3B0aW9uYWw8Q2FwdHVyZURldmljZT4gc2NyZWVuQ2FwdHVyZURl
dmljZVdpdGhQZXJzaXN0ZW50SUQoY29uc3QgU3RyaW5nJik7CiAKLSAgICBzdHJ1Y3QgQ0dEaXNw
bGF5Q2FwdHVyZURldmljZSB7Ci0gICAgICAgIHVpbnQzMl90IGNnRGlyZWN0RGlzcGxheUlEOwot
ICAgICAgICB1aW50MzJfdCBjZ09wZW5HTERpc3BsYXlNYXNrOwotICAgIH07Ci0gICAgVmVjdG9y
PENHRGlzcGxheUNhcHR1cmVEZXZpY2U+IG1fZGlzcGxheXNJbnRlcm5hbDsKLSAgICBWZWN0b3I8
Q2FwdHVyZURldmljZT4gbV9kaXNwbGF5czsKLSAgICBib29sIG1fb2JzZXJ2aW5nRGlzcGxheUNo
YW5nZXMgeyBmYWxzZSB9OworICAgIFZlY3RvcjxDYXB0dXJlRGV2aWNlPiBtX2RldmljZXM7CiB9
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvRGlzcGxheUNhcHR1cmVTb3Vy
Y2VDb2NvYS5jcHAKaW5kZXggYzYzNjBhNWI1YmM5MWY4NWM1ZWI4NjlkMTYwYzA1NjcwYWQzYmIy
Ni4uNzk1N2VjYTM2YTU5ZjY1NWQxYTk5YzZiYTgwM2I4NWQzZWZhYWM1YiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0Rpc3BsYXlDYXB0dXJlU291
cmNlQ29jb2EuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21h
Yy9EaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hLmNwcApAQCAtNDUsNiArNDUsMTEgQEAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIHVzaW5nIG5hbWVzcGFjZSBQQUw7CiAKK3N0YXRpYyBpbnQzMl90IHJv
dW5kVXBUb01hY3JvYmxvY2tNdWx0aXBsZShpbnQzMl90IHNpemUpCit7CisgICAgcmV0dXJuIChz
aXplICsgMTUpICYgfjE1OworfQorCiBEaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hOjpEaXNwbGF5
Q2FwdHVyZVNvdXJjZUNvY29hKGNvbnN0IFN0cmluZyYgbmFtZSkKICAgICA6IFJlYWx0aW1lTWVk
aWFTb3VyY2UoIiIsIFR5cGU6OlZpZGVvLCBuYW1lKQogICAgICwgbV90aW1lcihSdW5Mb29wOjpj
dXJyZW50KCksIHRoaXMsICZEaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hOjplbWl0RnJhbWUpCkBA
IC0xMjcsNiArMTMyLDE1IEBAIFNlY29uZHMgRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYTo6ZWxh
cHNlZFRpbWUoKQogICAgIHJldHVybiBtX2VsYXBzZWRUaW1lICsgKE1vbm90b25pY1RpbWU6Om5v
dygpIC0gbV9zdGFydFRpbWUpOwogfQogCitib29sIERpc3BsYXlDYXB0dXJlU291cmNlQ29jb2E6
OmFwcGx5U2l6ZShjb25zdCBJbnRTaXplJiBuZXdTaXplKQoreworICAgIGlmIChzaXplKCkgPT0g
bmV3U2l6ZSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICBtX2J1ZmZlckF0dHJpYnV0ZXMg
PSBudWxscHRyOworICAgIHJldHVybiB0cnVlOworfQorCiBib29sIERpc3BsYXlDYXB0dXJlU291
cmNlQ29jb2E6OmFwcGx5RnJhbWVSYXRlKGRvdWJsZSByYXRlKQogewogICAgIGlmIChtX3RpbWVy
LmlzQWN0aXZlKCkpCkBAIC0xNDMsNiArMTU3LDY5IEBAIHZvaWQgRGlzcGxheUNhcHR1cmVTb3Vy
Y2VDb2NvYTo6ZW1pdEZyYW1lKCkKICAgICBnZW5lcmF0ZUZyYW1lKCk7CiB9CiAKK1JldGFpblB0
cjxDTVNhbXBsZUJ1ZmZlclJlZj4gRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYTo6c2FtcGxlQnVm
ZmVyRnJvbVBpeGVsQnVmZmVyKENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIpCit7CisgICAg
aWYgKCFwaXhlbEJ1ZmZlcikKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBDTVRpbWUg
c2FtcGxlVGltZSA9IENNVGltZU1ha2UoKChlbGFwc2VkVGltZSgpICsgMTAwX21zKSAqIDEwMCku
c2Vjb25kcygpLCAxMDApOworICAgIENNU2FtcGxlVGltaW5nSW5mbyB0aW1pbmdJbmZvID0geyBr
Q01UaW1lSW52YWxpZCwgc2FtcGxlVGltZSwgc2FtcGxlVGltZSB9OworCisgICAgQ01WaWRlb0Zv
cm1hdERlc2NyaXB0aW9uUmVmIGZvcm1hdERlc2NyaXB0aW9uID0gbnVsbHB0cjsKKyAgICBhdXRv
IHN0YXR1cyA9IENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbkNyZWF0ZUZvckltYWdlQnVmZmVyKGtD
RkFsbG9jYXRvckRlZmF1bHQsIChDVkltYWdlQnVmZmVyUmVmKXBpeGVsQnVmZmVyLCAmZm9ybWF0
RGVzY3JpcHRpb24pOworICAgIGlmIChzdGF0dXMpIHsKKyAgICAgICAgUkVMRUFTRV9MT0coTWVk
aWEsICJGYWlsZWQgdG8gaW5pdGlhbGl6ZSBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb24gd2l0aCBl
cnJvciBjb2RlOiAlZCIsIHN0YXRpY19jYXN0PGludD4oc3RhdHVzKSk7CisgICAgICAgIHJldHVy
biBudWxscHRyOworICAgIH0KKworICAgIENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZUJ1ZmZlcjsK
KyAgICBzdGF0dXMgPSBDTVNhbXBsZUJ1ZmZlckNyZWF0ZVJlYWR5V2l0aEltYWdlQnVmZmVyKGtD
RkFsbG9jYXRvckRlZmF1bHQsIChDVkltYWdlQnVmZmVyUmVmKXBpeGVsQnVmZmVyLCBmb3JtYXRE
ZXNjcmlwdGlvbiwgJnRpbWluZ0luZm8sICZzYW1wbGVCdWZmZXIpOworICAgIENGUmVsZWFzZShm
b3JtYXREZXNjcmlwdGlvbik7CisgICAgaWYgKHN0YXR1cykgeworICAgICAgICBSRUxFQVNFX0xP
RyhNZWRpYSwgIkZhaWxlZCB0byBpbml0aWFsaXplIENNU2FtcGxlQnVmZmVyIHdpdGggZXJyb3Ig
Y29kZTogJWQiLCBzdGF0aWNfY2FzdDxpbnQ+KHN0YXR1cykpOworICAgICAgICByZXR1cm4gbnVs
bHB0cjsKKyAgICB9CisKKyAgICByZXR1cm4gYWRvcHRDRihzYW1wbGVCdWZmZXIpOworfQorCitS
ZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYTo6cGl4
ZWxCdWZmZXJGcm9tSU9TdXJmYWNlKElPU3VyZmFjZVJlZiBzdXJmYWNlKQoreworICAgIGlmICgh
bV9idWZmZXJBdHRyaWJ1dGVzKSB7CisgICAgICAgIG1fYnVmZmVyQXR0cmlidXRlcyA9IGFkb3B0
Q0YoQ0ZEaWN0aW9uYXJ5Q3JlYXRlTXV0YWJsZShudWxscHRyLCAwLCAma0NGVHlwZURpY3Rpb25h
cnlLZXlDYWxsQmFja3MsICZrQ0ZUeXBlRGljdGlvbmFyeVZhbHVlQ2FsbEJhY2tzKSk7CisKKyAg
ICAgICAgYXV0byBmb3JtYXQgPSBJT1N1cmZhY2VHZXRQaXhlbEZvcm1hdChzdXJmYWNlKTsKKyAg
ICAgICAgaWYgKGZvcm1hdCA9PSBrQ1ZQaXhlbEZvcm1hdFR5cGVfNDIwWXBDYkNyOEJpUGxhbmFy
VmlkZW9SYW5nZSB8fCBmb3JtYXQgPT0ga0NWUGl4ZWxGb3JtYXRUeXBlXzQyMFlwQ2JDcjhCaVBs
YW5hckZ1bGxSYW5nZSkgeworCisgICAgICAgICAgICAvLyBJZiB0aGUgd2lkdGggeCBoZWlnaHQg
aXNuJ3QgYSBtdWx0aXBsZSBvZiAxNiB4IDE2IGFuZCB0aGUgc3VyZmFjZSBoYXMgZXh0cmEgbWVt
b3J5IGluIHRoZSBwbGFuZXMsIHNldCBwaXhlbCBidWZmZXIgYXR0cmlidXRlcyB0byByZWZsZWN0
IGl0LgorICAgICAgICAgICAgYXV0byB3aWR0aCA9IElPU3VyZmFjZUdldFdpZHRoKHN1cmZhY2Up
OworICAgICAgICAgICAgYXV0byBoZWlnaHQgPSBJT1N1cmZhY2VHZXRIZWlnaHQoc3VyZmFjZSk7
CisgICAgICAgICAgICBpbnQzMl90IGV4dGVuZGVkUmlnaHQgPSByb3VuZFVwVG9NYWNyb2Jsb2Nr
TXVsdGlwbGUod2lkdGgpIC0gd2lkdGg7CisgICAgICAgICAgICBpbnQzMl90IGV4dGVuZGVkQm90
dG9tID0gcm91bmRVcFRvTWFjcm9ibG9ja011bHRpcGxlKGhlaWdodCkgLSBoZWlnaHQ7CisKKyAg
ICAgICAgICAgIGlmICgoSU9TdXJmYWNlR2V0Qnl0ZXNQZXJSb3dPZlBsYW5lKHN1cmZhY2UsIDAp
ID49IHdpZHRoICsgZXh0ZW5kZWRSaWdodCkKKyAgICAgICAgICAgICAgICAmJiAoSU9TdXJmYWNl
R2V0Qnl0ZXNQZXJSb3dPZlBsYW5lKHN1cmZhY2UsIDEpID49IHdpZHRoICsgZXh0ZW5kZWRSaWdo
dCkKKyAgICAgICAgICAgICAgICAmJiAoSU9TdXJmYWNlR2V0QWxsb2NTaXplKHN1cmZhY2UpID49
IChoZWlnaHQgKyBleHRlbmRlZEJvdHRvbSkgKiBJT1N1cmZhY2VHZXRCeXRlc1BlclJvd09mUGxh
bmUoc3VyZmFjZSwgMCkgKiAzIC8gMikpIHsKKyAgICAgICAgICAgICAgICBhdXRvIGNmSW50ID0g
YWRvcHRDRihDRk51bWJlckNyZWF0ZShudWxscHRyLCAga0NGTnVtYmVySW50VHlwZSwgICZleHRl
bmRlZFJpZ2h0KSk7CisgICAgICAgICAgICAgICAgQ0ZEaWN0aW9uYXJ5U2V0VmFsdWUobV9idWZm
ZXJBdHRyaWJ1dGVzLmdldCgpLCBrQ1ZQaXhlbEJ1ZmZlckV4dGVuZGVkUGl4ZWxzUmlnaHRLZXks
IGNmSW50LmdldCgpKTsKKyAgICAgICAgICAgICAgICBjZkludCA9IGFkb3B0Q0YoQ0ZOdW1iZXJD
cmVhdGUobnVsbHB0ciwgIGtDRk51bWJlckludFR5cGUsICAmZXh0ZW5kZWRCb3R0b20pKTsKKyAg
ICAgICAgICAgICAgICBDRkRpY3Rpb25hcnlTZXRWYWx1ZShtX2J1ZmZlckF0dHJpYnV0ZXMuZ2V0
KCksIGtDVlBpeGVsQnVmZmVyRXh0ZW5kZWRQaXhlbHNCb3R0b21LZXksIGNmSW50LmdldCgpKTsK
KyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIENGRGljdGlvbmFyeVNldFZhbHVl
KG1fYnVmZmVyQXR0cmlidXRlcy5nZXQoKSwga0NWUGl4ZWxCdWZmZXJPcGVuR0xDb21wYXRpYmls
aXR5S2V5LCBrQ0ZCb29sZWFuVHJ1ZSk7CisgICAgfQorCisgICAgQ1ZQaXhlbEJ1ZmZlclJlZiBw
aXhlbEJ1ZmZlcjsKKyAgICBhdXRvIHN0YXR1cyA9IENWUGl4ZWxCdWZmZXJDcmVhdGVXaXRoSU9T
dXJmYWNlKGtDRkFsbG9jYXRvckRlZmF1bHQsIHN1cmZhY2UsIG1fYnVmZmVyQXR0cmlidXRlcy5n
ZXQoKSwgJnBpeGVsQnVmZmVyKTsKKyAgICBpZiAoc3RhdHVzKSB7CisgICAgICAgIFJFTEVBU0Vf
TE9HKE1lZGlhLCAiQ1ZQaXhlbEJ1ZmZlckNyZWF0ZVdpdGhJT1N1cmZhY2UgZmFpbGVkIHdpdGgg
ZXJyb3IgY29kZTogJWQiLCBzdGF0aWNfY2FzdDxpbnQ+KHN0YXR1cykpOworICAgICAgICByZXR1
cm4gbnVsbHB0cjsKKyAgICB9CisKKyAgICByZXR1cm4gYWRvcHRDRihwaXhlbEJ1ZmZlcik7Cit9
CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJF
QU0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMv
RGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vbWFjL0Rpc3BsYXlDYXB0dXJlU291cmNlQ29jb2EuaAppbmRleCA4YjJiY2VmZmU5
NmZiODVlMTYxNGY5OWNkMjZlMjJlYzYyYzJiMDEzLi44NTNjODFhZGU2OGU4OGEyNWJkNGExOGYx
YjM2MzgxODk2ZGRhMmQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9tYWMvRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9EaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hLmgK
QEAgLTU1LDYgKzU1LDEwIEBAIHByb3RlY3RlZDoKIAogICAgIFNlY29uZHMgZWxhcHNlZFRpbWUo
KTsKICAgICBib29sIGFwcGx5RnJhbWVSYXRlKGRvdWJsZSkgb3ZlcnJpZGU7CisgICAgYm9vbCBh
cHBseVNpemUoY29uc3QgSW50U2l6ZSYpIG92ZXJyaWRlOworCisgICAgUmV0YWluUHRyPENNU2Ft
cGxlQnVmZmVyUmVmPiBzYW1wbGVCdWZmZXJGcm9tUGl4ZWxCdWZmZXIoQ1ZQaXhlbEJ1ZmZlclJl
Zik7CisgICAgUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IHBpeGVsQnVmZmVyRnJvbUlPU3Vy
ZmFjZShJT1N1cmZhY2VSZWYpOwogCiBwcml2YXRlOgogCkBAIC03Myw2ICs3Nyw3IEBAIHByaXZh
dGU6CiAgICAgTW9ub3RvbmljVGltZSBtX3N0YXJ0VGltZSB7IE1vbm90b25pY1RpbWU6Om5hbigp
IH07CiAgICAgU2Vjb25kcyBtX2VsYXBzZWRUaW1lIHsgMF9zIH07CiAKKyAgICBSZXRhaW5QdHI8
Q0ZNdXRhYmxlRGljdGlvbmFyeVJlZj4gbV9idWZmZXJBdHRyaWJ1dGVzOwogICAgIFJ1bkxvb3A6
OlRpbWVyPERpc3BsYXlDYXB0dXJlU291cmNlQ29jb2E+IG1fdGltZXI7CiB9OwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvU2NyZWVuRGlzcGxh
eUNhcHR1cmVTb3VyY2VNYWMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L21hYy9TY3JlZW5EaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYy5oCmluZGV4IDNkYjI3MGZlYTQ0MWVj
NTczNmZkN2Y5MDczMjdjY2IzZWQ5NDUxMzcuLmQyNmEyOTRlMzZlNzllOGEzYTExOTUwZTJhZjE4
ODdjODEyNzQ3OWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL21hYy9TY3JlZW5EaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYy5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9TY3JlZW5EaXNwbGF5Q2FwdHVyZVNvdXJjZU1h
Yy5oCkBAIC0zMyw3ICszMyw2IEBACiAjaW5jbHVkZSA8Q29yZUdyYXBoaWNzL0NHRGlzcGxheVN0
cmVhbS5oPgogI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CiAjaW5jbHVkZSA8d3RmL09TT2JqZWN0UHRy
Lmg+Ci0jaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KIAogdHlwZWRlZiBzdHJ1Y3QgX19DVkJ1ZmZl
ciAqQ1ZQaXhlbEJ1ZmZlclJlZjsKIHR5cGVkZWYgc3RydWN0IG9wYXF1ZUNNU2FtcGxlQnVmZmVy
ICpDTVNhbXBsZUJ1ZmZlclJlZjsKQEAgLTQ0LDkgKzQzLDggQEAgY2xhc3MgU2NyZWVuRGlzcGxh
eUNhcHR1cmVTb3VyY2VNYWMgOiBwdWJsaWMgRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYSB7CiBw
dWJsaWM6CiAgICAgc3RhdGljIENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZShjb25zdCBTdHJp
bmcmLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKik7CiAKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0
aWMgVmlkZW9DYXB0dXJlRmFjdG9yeSYgZmFjdG9yeSgpOwotCi0gICAgV0VCQ09SRV9FWFBPUlQg
c3RhdGljIHN0ZDo6b3B0aW9uYWw8Q0dEaXJlY3REaXNwbGF5SUQ+IHVwZGF0ZURpc3BsYXlJRChD
R0RpcmVjdERpc3BsYXlJRCk7CisgICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8Q2FwdHVyZURldmlj
ZT4gc2NyZWVuQ2FwdHVyZURldmljZVdpdGhQZXJzaXN0ZW50SUQoY29uc3QgU3RyaW5nJik7Cisg
ICAgc3RhdGljIHZvaWQgc2NyZWVuQ2FwdHVyZURldmljZXMoVmVjdG9yPENhcHR1cmVEZXZpY2U+
Jik7CiAKIHByaXZhdGU6CiAgICAgU2NyZWVuRGlzcGxheUNhcHR1cmVTb3VyY2VNYWModWludDMy
X3QpOwpAQCAtNjUsOCArNjMsNiBAQCBwcml2YXRlOgogICAgIGJvb2wgYXBwbHlGcmFtZVJhdGUo
ZG91YmxlKSBmaW5hbDsKICAgICB2b2lkIGNvbW1pdENvbmZpZ3VyYXRpb24oKSBmaW5hbDsKIAot
ICAgIFJldGFpblB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4gc2FtcGxlQnVmZmVyRnJvbVBpeGVsQnVm
ZmVyKENWUGl4ZWxCdWZmZXJSZWYpOwotICAgIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBw
aXhlbEJ1ZmZlckZyb21JT1N1cmZhY2UoSU9TdXJmYWNlUmVmKTsKICAgICBib29sIGNyZWF0ZURp
c3BsYXlTdHJlYW0oKTsKICAgICB2b2lkIHN0YXJ0RGlzcGxheVN0cmVhbSgpOwogICAgIApAQCAt
OTgsMTQgKzk0LDEwIEBAIHByaXZhdGU6CiAgICAgbXV0YWJsZSBMb2NrIG1fY3VycmVudEZyYW1l
TXV0ZXg7CiAgICAgRGlzcGxheVN1cmZhY2UgbV9jdXJyZW50RnJhbWU7CiAgICAgUmV0YWluUHRy
PENHRGlzcGxheVN0cmVhbVJlZj4gbV9kaXNwbGF5U3RyZWFtOwotICAgIFJldGFpblB0cjxDRk11
dGFibGVEaWN0aW9uYXJ5UmVmPiBtX2J1ZmZlckF0dHJpYnV0ZXM7CiAgICAgQ0dEaXNwbGF5U3Ry
ZWFtRnJhbWVBdmFpbGFibGVIYW5kbGVyIG1fZnJhbWVBdmFpbGFibGVCbG9jazsKLSAgICBNZWRp
YVRpbWUgbV9wcmVzZW50YXRpb25UaW1lU3RhbXA7Ci0gICAgTWVkaWFUaW1lIG1fZnJhbWVEdXJh
dGlvbjsKIAogICAgIE9TT2JqZWN0UHRyPGRpc3BhdGNoX3F1ZXVlX3Q+IG1fY2FwdHVyZVF1ZXVl
OwogCi0gICAgTW9ub3RvbmljVGltZSBtX2xhc3RGcmFtZVRpbWUgeyBNb25vdG9uaWNUaW1lOjpu
YW4oKSB9OwogICAgIHVpbnQzMl90IG1fZGlzcGxheUlEIHsgMCB9OwogICAgIGJvb2wgbV9pc1J1
bm5pbmcgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9vYnNlcnZpbmdEaXNwbGF5Q2hhbmdlcyB7IGZh
bHNlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9t
YWMvU2NyZWVuRGlzcGxheUNhcHR1cmVTb3VyY2VNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9tYWMvU2NyZWVuRGlzcGxheUNhcHR1cmVTb3VyY2VNYWMubW0KaW5k
ZXggMzZkMWU4NGFhYmJiMmZmY2YzYWFkZmMxZGZiNGM2MDFkNWI0MWJlYS4uYjE3ZTdjMmI0NWUw
ZDkwNTIzYTJjNDIyYzZlOGNjZTc3NzFiYjJkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1NjcmVlbkRpc3BsYXlDYXB0dXJlU291cmNlTWFjLm1t
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9TY3JlZW5EaXNw
bGF5Q2FwdHVyZVNvdXJjZU1hYy5tbQpAQCAtNDYsMTIgKzQ2LDcgQEAgc2l6ZV90IENHRGlzcGxh
eU1vZGVHZXRQaXhlbHNIaWdoKENHRGlzcGxheU1vZGVSZWYpOwogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLXN0YXRpYyBpbnQzMl90IHJvdW5kVXBUb01hY3JvYmxvY2tNdWx0aXBsZShpbnQzMl90
IHNpemUpCi17Ci0gICAgcmV0dXJuIChzaXplICsgMTUpICYgfjE1OwotfQotCi1zdGQ6Om9wdGlv
bmFsPENHRGlyZWN0RGlzcGxheUlEPiBTY3JlZW5EaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYzo6dXBk
YXRlRGlzcGxheUlEKENHRGlyZWN0RGlzcGxheUlEIGRpc3BsYXlJRCkKK3N0YXRpYyBzdGQ6Om9w
dGlvbmFsPENHRGlyZWN0RGlzcGxheUlEPiB1cGRhdGVEaXNwbGF5SUQoQ0dEaXJlY3REaXNwbGF5
SUQgZGlzcGxheUlEKQogewogICAgIHVpbnQzMl90IGRpc3BsYXlDb3VudCA9IDA7CiAgICAgYXV0
byBlcnIgPSBDR0dldEFjdGl2ZURpc3BsYXlMaXN0KDAsIG51bGxwdHIsICZkaXNwbGF5Q291bnQp
OwpAQCAtMTI3LDExICsxMjIsMTAgQEAgYm9vbCBTY3JlZW5EaXNwbGF5Q2FwdHVyZVNvdXJjZU1h
Yzo6Y3JlYXRlRGlzcGxheVN0cmVhbSgpCiAKICAgICBpZiAobV9kaXNwbGF5SUQgIT0gYWN0dWFs
RGlzcGxheUlELnZhbHVlKCkpIHsKICAgICAgICAgbV9kaXNwbGF5SUQgPSBhY3R1YWxEaXNwbGF5
SUQudmFsdWUoKTsKLSAgICAgICAgUkVMRUFTRV9MT0coTWVkaWEsICJTY3JlZW5EaXNwbGF5Q2Fw
dHVyZVNvdXJjZU1hYzo6Y3JlYXRlKCVwKSwgZGlzcGxheSBJRCBjaGFuZ2VkIHRvICVkIiwgdGhp
cywgc3RhdGljX2Nhc3Q8aW50PihtX2Rpc3BsYXlJRCkpOworICAgICAgICBSRUxFQVNFX0xPRyhN
ZWRpYSwgIlNjcmVlbkRpc3BsYXlDYXB0dXJlU291cmNlTWFjOjpjcmVhdGVEaXNwbGF5U3RyZWFt
KCVwKSwgZGlzcGxheSBJRCBjaGFuZ2VkIHRvICVkIiwgdGhpcywgc3RhdGljX2Nhc3Q8aW50Piht
X2Rpc3BsYXlJRCkpOwogICAgIH0KIAogICAgIGlmICghbV9kaXNwbGF5U3RyZWFtKSB7Ci0KICAg
ICAgICAgaWYgKHNpemUoKS5pc0VtcHR5KCkpIHsKICAgICAgICAgICAgIFJldGFpblB0cjxDR0Rp
c3BsYXlNb2RlUmVmPiBkaXNwbGF5TW9kZSA9IGFkb3B0Q0YoQ0dEaXNwbGF5Q29weURpc3BsYXlN
b2RlKG1fZGlzcGxheUlEKSk7CiAgICAgICAgICAgICBhdXRvIHNjcmVlbldpZHRoID0gQ0dEaXNw
bGF5TW9kZUdldFBpeGVsc1dpZGUoZGlzcGxheU1vZGUuZ2V0KCkpOwpAQCAtMjEzLDY5ICsyMDcs
NiBAQCB2b2lkIFNjcmVlbkRpc3BsYXlDYXB0dXJlU291cmNlTWFjOjpzdG9wUHJvZHVjaW5nRGF0
YSgpCiAgICAgbV9pc1J1bm5pbmcgPSBmYWxzZTsKIH0KIAotUmV0YWluUHRyPENNU2FtcGxlQnVm
ZmVyUmVmPiBTY3JlZW5EaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYzo6c2FtcGxlQnVmZmVyRnJvbVBp
eGVsQnVmZmVyKENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIpCi17Ci0gICAgaWYgKCFwaXhl
bEJ1ZmZlcikKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0KLSAgICBDTVRpbWUgc2FtcGxlVGlt
ZSA9IENNVGltZU1ha2UoKChlbGFwc2VkVGltZSgpICsgMTAwX21zKSAqIDEwMCkuc2Vjb25kcygp
LCAxMDApOwotICAgIENNU2FtcGxlVGltaW5nSW5mbyB0aW1pbmdJbmZvID0geyBrQ01UaW1lSW52
YWxpZCwgc2FtcGxlVGltZSwgc2FtcGxlVGltZSB9OwotCi0gICAgQ01WaWRlb0Zvcm1hdERlc2Ny
aXB0aW9uUmVmIGZvcm1hdERlc2NyaXB0aW9uID0gbnVsbHB0cjsKLSAgICBhdXRvIHN0YXR1cyA9
IENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbkNyZWF0ZUZvckltYWdlQnVmZmVyKGtDRkFsbG9jYXRv
ckRlZmF1bHQsIChDVkltYWdlQnVmZmVyUmVmKXBpeGVsQnVmZmVyLCAmZm9ybWF0RGVzY3JpcHRp
b24pOwotICAgIGlmIChzdGF0dXMpIHsKLSAgICAgICAgUkVMRUFTRV9MT0coTWVkaWEsICJGYWls
ZWQgdG8gaW5pdGlhbGl6ZSBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb24gd2l0aCBlcnJvciBjb2Rl
OiAlZCIsIHN0YXRpY19jYXN0PGludD4oc3RhdHVzKSk7Ci0gICAgICAgIHJldHVybiBudWxscHRy
OwotICAgIH0KLQotICAgIENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZUJ1ZmZlcjsKLSAgICBzdGF0
dXMgPSBDTVNhbXBsZUJ1ZmZlckNyZWF0ZVJlYWR5V2l0aEltYWdlQnVmZmVyKGtDRkFsbG9jYXRv
ckRlZmF1bHQsIChDVkltYWdlQnVmZmVyUmVmKXBpeGVsQnVmZmVyLCBmb3JtYXREZXNjcmlwdGlv
biwgJnRpbWluZ0luZm8sICZzYW1wbGVCdWZmZXIpOwotICAgIENGUmVsZWFzZShmb3JtYXREZXNj
cmlwdGlvbik7Ci0gICAgaWYgKHN0YXR1cykgewotICAgICAgICBSRUxFQVNFX0xPRyhNZWRpYSwg
IkZhaWxlZCB0byBpbml0aWFsaXplIENNU2FtcGxlQnVmZmVyIHdpdGggZXJyb3IgY29kZTogJWQi
LCBzdGF0aWNfY2FzdDxpbnQ+KHN0YXR1cykpOwotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAg
ICB9Ci0KLSAgICByZXR1cm4gYWRvcHRDRihzYW1wbGVCdWZmZXIpOwotfQotCi1SZXRhaW5QdHI8
Q1ZQaXhlbEJ1ZmZlclJlZj4gU2NyZWVuRGlzcGxheUNhcHR1cmVTb3VyY2VNYWM6OnBpeGVsQnVm
ZmVyRnJvbUlPU3VyZmFjZShJT1N1cmZhY2VSZWYgc3VyZmFjZSkKLXsKLSAgICBpZiAoIW1fYnVm
ZmVyQXR0cmlidXRlcykgewotICAgICAgICBtX2J1ZmZlckF0dHJpYnV0ZXMgPSBhZG9wdENGKENG
RGljdGlvbmFyeUNyZWF0ZU11dGFibGUobnVsbHB0ciwgMCwgJmtDRlR5cGVEaWN0aW9uYXJ5S2V5
Q2FsbEJhY2tzLCAma0NGVHlwZURpY3Rpb25hcnlWYWx1ZUNhbGxCYWNrcykpOwotCi0gICAgICAg
IGF1dG8gZm9ybWF0ID0gSU9TdXJmYWNlR2V0UGl4ZWxGb3JtYXQoc3VyZmFjZSk7Ci0gICAgICAg
IGlmIChmb3JtYXQgPT0ga0NWUGl4ZWxGb3JtYXRUeXBlXzQyMFlwQ2JDcjhCaVBsYW5hclZpZGVv
UmFuZ2UgfHwgZm9ybWF0ID09IGtDVlBpeGVsRm9ybWF0VHlwZV80MjBZcENiQ3I4QmlQbGFuYXJG
dWxsUmFuZ2UpIHsKLQotICAgICAgICAgICAgLy8gSWYgdGhlIHdpZHRoIHggaGVpZ2h0IGlzbid0
IGEgbXVsdGlwbGUgb2YgMTYgeCAxNiBhbmQgdGhlIHN1cmZhY2UgaGFzIGV4dHJhIG1lbW9yeSBp
biB0aGUgcGxhbmVzLCBzZXQgcGl4ZWwgYnVmZmVyIGF0dHJpYnV0ZXMgdG8gcmVmbGVjdCBpdC4K
LSAgICAgICAgICAgIGF1dG8gd2lkdGggPSBJT1N1cmZhY2VHZXRXaWR0aChzdXJmYWNlKTsKLSAg
ICAgICAgICAgIGF1dG8gaGVpZ2h0ID0gSU9TdXJmYWNlR2V0SGVpZ2h0KHN1cmZhY2UpOwotICAg
ICAgICAgICAgaW50MzJfdCBleHRlbmRlZFJpZ2h0ID0gcm91bmRVcFRvTWFjcm9ibG9ja011bHRp
cGxlKHdpZHRoKSAtIHdpZHRoOwotICAgICAgICAgICAgaW50MzJfdCBleHRlbmRlZEJvdHRvbSA9
IHJvdW5kVXBUb01hY3JvYmxvY2tNdWx0aXBsZShoZWlnaHQpIC0gaGVpZ2h0OwotCi0gICAgICAg
ICAgICBpZiAoKElPU3VyZmFjZUdldEJ5dGVzUGVyUm93T2ZQbGFuZShzdXJmYWNlLCAwKSA+PSB3
aWR0aCArIGV4dGVuZGVkUmlnaHQpCi0gICAgICAgICAgICAgICAgJiYgKElPU3VyZmFjZUdldEJ5
dGVzUGVyUm93T2ZQbGFuZShzdXJmYWNlLCAxKSA+PSB3aWR0aCArIGV4dGVuZGVkUmlnaHQpCi0g
ICAgICAgICAgICAgICAgJiYgKElPU3VyZmFjZUdldEFsbG9jU2l6ZShzdXJmYWNlKSA+PSAoaGVp
Z2h0ICsgZXh0ZW5kZWRCb3R0b20pICogSU9TdXJmYWNlR2V0Qnl0ZXNQZXJSb3dPZlBsYW5lKHN1
cmZhY2UsIDApICogMyAvIDIpKSB7Ci0gICAgICAgICAgICAgICAgICAgIGF1dG8gY2ZJbnQgPSBh
ZG9wdENGKENGTnVtYmVyQ3JlYXRlKG51bGxwdHIsICBrQ0ZOdW1iZXJJbnRUeXBlLCAgJmV4dGVu
ZGVkUmlnaHQpKTsKLSAgICAgICAgICAgICAgICAgICAgQ0ZEaWN0aW9uYXJ5U2V0VmFsdWUobV9i
dWZmZXJBdHRyaWJ1dGVzLmdldCgpLCBrQ1ZQaXhlbEJ1ZmZlckV4dGVuZGVkUGl4ZWxzUmlnaHRL
ZXksIGNmSW50LmdldCgpKTsKLSAgICAgICAgICAgICAgICAgICAgY2ZJbnQgPSBhZG9wdENGKENG
TnVtYmVyQ3JlYXRlKG51bGxwdHIsICBrQ0ZOdW1iZXJJbnRUeXBlLCAgJmV4dGVuZGVkQm90dG9t
KSk7Ci0gICAgICAgICAgICAgICAgICAgIENGRGljdGlvbmFyeVNldFZhbHVlKG1fYnVmZmVyQXR0
cmlidXRlcy5nZXQoKSwga0NWUGl4ZWxCdWZmZXJFeHRlbmRlZFBpeGVsc0JvdHRvbUtleSwgY2ZJ
bnQuZ2V0KCkpOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0KLSAgICAgICAgQ0ZEaWN0aW9u
YXJ5U2V0VmFsdWUobV9idWZmZXJBdHRyaWJ1dGVzLmdldCgpLCBrQ1ZQaXhlbEJ1ZmZlck9wZW5H
TENvbXBhdGliaWxpdHlLZXksIGtDRkJvb2xlYW5UcnVlKTsKLSAgICB9Ci0KLSAgICBDVlBpeGVs
QnVmZmVyUmVmIHBpeGVsQnVmZmVyOwotICAgIGF1dG8gc3RhdHVzID0gQ1ZQaXhlbEJ1ZmZlckNy
ZWF0ZVdpdGhJT1N1cmZhY2Uoa0NGQWxsb2NhdG9yRGVmYXVsdCwgc3VyZmFjZSwgbV9idWZmZXJB
dHRyaWJ1dGVzLmdldCgpLCAmcGl4ZWxCdWZmZXIpOwotICAgIGlmIChzdGF0dXMpIHsKLSAgICAg
ICAgUkVMRUFTRV9MT0coTWVkaWEsICJGYWlsZWQgdG8gaW5pdGlhbGl6ZSBDTVZpZGVvRm9ybWF0
RGVzY3JpcHRpb24gd2l0aCBlcnJvciBjb2RlOiAlZCIsIHN0YXRpY19jYXN0PGludD4oc3RhdHVz
KSk7Ci0gICAgICAgIHJldHVybiBudWxscHRyOwotICAgIH0KLQotICAgIHJldHVybiBhZG9wdENG
KHBpeGVsQnVmZmVyKTsKLX0KLQogdm9pZCBTY3JlZW5EaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYzo6
Z2VuZXJhdGVGcmFtZSgpCiB7CiAgICAgaWYgKCFtX2N1cnJlbnRGcmFtZS5pb1N1cmZhY2UoKSkK
QEAgLTMwNiw3ICsyMzcsNyBAQCB2b2lkIFNjcmVlbkRpc3BsYXlDYXB0dXJlU291cmNlTWFjOjpz
dGFydERpc3BsYXlTdHJlYW0oKQogCiAgICAgaWYgKG1fZGlzcGxheUlEICE9IGFjdHVhbERpc3Bs
YXlJRC52YWx1ZSgpKSB7CiAgICAgICAgIG1fZGlzcGxheUlEID0gYWN0dWFsRGlzcGxheUlELnZh
bHVlKCk7Ci0gICAgICAgIFJFTEVBU0VfTE9HKE1lZGlhLCAiU2NyZWVuRGlzcGxheUNhcHR1cmVT
b3VyY2VNYWM6OmNyZWF0ZSglcCksIGRpc3BsYXkgSUQgY2hhbmdlZCB0byAlZCIsIHRoaXMsIHN0
YXRpY19jYXN0PGludD4obV9kaXNwbGF5SUQpKTsKKyAgICAgICAgUkVMRUFTRV9MT0coTWVkaWEs
ICJTY3JlZW5EaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYzo6c3RhcnREaXNwbGF5U3RyZWFtKCVwKSwg
ZGlzcGxheSBJRCBjaGFuZ2VkIHRvICVkIiwgdGhpcywgc3RhdGljX2Nhc3Q8aW50PihtX2Rpc3Bs
YXlJRCkpOwogICAgIH0KIAogICAgIGlmICghbV9kaXNwbGF5U3RyZWFtICYmICFjcmVhdGVEaXNw
bGF5U3RyZWFtKCkpCkBAIC0zMTQsNyArMjQ1LDcgQEAgdm9pZCBTY3JlZW5EaXNwbGF5Q2FwdHVy
ZVNvdXJjZU1hYzo6c3RhcnREaXNwbGF5U3RyZWFtKCkKIAogICAgIGF1dG8gZXJyID0gQ0dEaXNw
bGF5U3RyZWFtU3RhcnQobV9kaXNwbGF5U3RyZWFtLmdldCgpKTsKICAgICBpZiAoZXJyKSB7Ci0g
ICAgICAgIFJFTEVBU0VfTE9HKE1lZGlhLCAiU2NyZWVuRGlzcGxheUNhcHR1cmVTb3VyY2VNYWM6
OnN0YXJ0UHJvZHVjaW5nRGF0YSglcCksIENHRGlzcGxheVN0cmVhbVN0YXJ0IGZhaWxlZCB3aXRo
IGVycm9yICVkIiwgdGhpcywgc3RhdGljX2Nhc3Q8aW50PihlcnIpKTsKKyAgICAgICAgUkVMRUFT
RV9MT0coTWVkaWEsICJTY3JlZW5EaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYzo6c3RhcnREaXNwbGF5
U3RyZWFtKCVwKSwgQ0dEaXNwbGF5U3RyZWFtU3RhcnQgZmFpbGVkIHdpdGggZXJyb3IgJWQiLCB0
aGlzLCBzdGF0aWNfY2FzdDxpbnQ+KGVycikpOwogICAgICAgICBjYXB0dXJlRmFpbGVkKCk7CiAg
ICAgICAgIHJldHVybjsKICAgICB9CkBAIC0zMjQsMjAgKzI1NSwxNyBAQCB2b2lkIFNjcmVlbkRp
c3BsYXlDYXB0dXJlU291cmNlTWFjOjpzdGFydERpc3BsYXlTdHJlYW0oKQogCiBib29sIFNjcmVl
bkRpc3BsYXlDYXB0dXJlU291cmNlTWFjOjphcHBseVNpemUoY29uc3QgSW50U2l6ZSYgbmV3U2l6
ZSkKIHsKLSAgICBpZiAoc2l6ZSgpID09IG5ld1NpemUpCi0gICAgICAgIHJldHVybiB0cnVlOwor
ICAgIGlmICghRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYTo6YXBwbHlTaXplKG5ld1NpemUpKQor
ICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBtX2J1ZmZlckF0dHJpYnV0ZXMgPSBudWxscHRy
OwogICAgIG1fZGlzcGxheVN0cmVhbSA9IG51bGxwdHI7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAK
IGJvb2wgU2NyZWVuRGlzcGxheUNhcHR1cmVTb3VyY2VNYWM6OmFwcGx5RnJhbWVSYXRlKGRvdWJs
ZSByYXRlKQogewotICAgIGlmIChmcmFtZVJhdGUoKSAhPSByYXRlKSB7Ci0gICAgICAgIG1fYnVm
ZmVyQXR0cmlidXRlcyA9IG51bGxwdHI7CisgICAgaWYgKGZyYW1lUmF0ZSgpICE9IHJhdGUpCiAg
ICAgICAgIG1fZGlzcGxheVN0cmVhbSA9IG51bGxwdHI7Ci0gICAgfQogCiAgICAgcmV0dXJuIERp
c3BsYXlDYXB0dXJlU291cmNlQ29jb2E6OmFwcGx5RnJhbWVSYXRlKHJhdGUpOwogfQpAQCAtMzg2
LDEwICszMTQsNTcgQEAgdm9pZCBTY3JlZW5EaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYzo6ZnJhbWVB
dmFpbGFibGUoQ0dEaXNwbGF5U3RyZWFtRnJhbWVTdGF0dXMgc3QKICAgICAgICAgcmV0dXJuOwog
CiAgICAgTG9ja0hvbGRlciBsb2NrKG1fY3VycmVudEZyYW1lTXV0ZXgpOwotICAgIG1fbGFzdEZy
YW1lVGltZSA9IE1vbm90b25pY1RpbWU6Om5vdygpOwogICAgIG1fY3VycmVudEZyYW1lID0gZnJh
bWVTdXJmYWNlOwogfQogCitzdGQ6Om9wdGlvbmFsPENhcHR1cmVEZXZpY2U+IFNjcmVlbkRpc3Bs
YXlDYXB0dXJlU291cmNlTWFjOjpzY3JlZW5DYXB0dXJlRGV2aWNlV2l0aFBlcnNpc3RlbnRJRChj
b25zdCBTdHJpbmcmIGRldmljZUlEKQoreworICAgIGJvb2wgb2s7CisgICAgYXV0byBkaXNwbGF5
SUQgPSBkZXZpY2VJRC50b1VJbnRTdHJpY3QoJm9rKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAg
IFJFTEVBU0VfTE9HKE1lZGlhLCAiU2NyZWVuRGlzcGxheUNhcHR1cmVTb3VyY2VNYWM6OnNjcmVl
bkNhcHR1cmVEZXZpY2VXaXRoUGVyc2lzdGVudElEOiBkaXNwbGF5IElEIGRvZXMgbm90IGNvbnZl
cnQgdG8gMzItYml0IGludGVnZXIiKTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAg
ICB9CisKKyAgICBhdXRvIGFjdHVhbERpc3BsYXlJRCA9IHVwZGF0ZURpc3BsYXlJRChkaXNwbGF5
SUQpOworICAgIGlmICghYWN0dWFsRGlzcGxheUlEKQorICAgICAgICByZXR1cm4gc3RkOjpudWxs
b3B0OworCisgICAgYXV0byBkZXZpY2UgPSBDYXB0dXJlRGV2aWNlKFN0cmluZzo6bnVtYmVyKGFj
dHVhbERpc3BsYXlJRC52YWx1ZSgpKSwgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6U2NyZWVu
LCAiU2NyZWVuQ2FwdHVyZURldmljZSJfcyk7CisgICAgZGV2aWNlLnNldEVuYWJsZWQodHJ1ZSk7
CisKKyAgICByZXR1cm4gZGV2aWNlOworfQorCit2b2lkIFNjcmVlbkRpc3BsYXlDYXB0dXJlU291
cmNlTWFjOjpzY3JlZW5DYXB0dXJlRGV2aWNlcyhWZWN0b3I8Q2FwdHVyZURldmljZT4mIGRpc3Bs
YXlzKQoreworICAgIHVpbnQzMl90IGRpc3BsYXlDb3VudCA9IDA7CisgICAgYXV0byBlcnIgPSBD
R0dldEFjdGl2ZURpc3BsYXlMaXN0KDAsIG51bGxwdHIsICZkaXNwbGF5Q291bnQpOworICAgIGlm
IChlcnIpIHsKKyAgICAgICAgUkVMRUFTRV9MT0coTWVkaWEsICJDR0dldEFjdGl2ZURpc3BsYXlM
aXN0KCkgcmV0dXJuZWQgZXJyb3IgJWQgd2hlbiB0cnlpbmcgdG8gZ2V0IGRpc3BsYXkgY291bnQi
LCAoaW50KWVycik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAoIWRpc3BsYXlD
b3VudCkgeworICAgICAgICBSRUxFQVNFX0xPRyhNZWRpYSwgIkNHR2V0QWN0aXZlRGlzcGxheUxp
c3QoKSByZXR1cm5lZCBhIGRpc3BsYXkgY291bnQgb2YgMCIpOworICAgICAgICByZXR1cm47Cisg
ICAgfQorCisgICAgQ0dEaXJlY3REaXNwbGF5SUQgYWN0aXZlRGlzcGxheXNbZGlzcGxheUNvdW50
XTsKKyAgICBlcnIgPSBDR0dldEFjdGl2ZURpc3BsYXlMaXN0KGRpc3BsYXlDb3VudCwgJihhY3Rp
dmVEaXNwbGF5c1swXSksICZkaXNwbGF5Q291bnQpOworICAgIGlmIChlcnIpIHsKKyAgICAgICAg
UkVMRUFTRV9MT0coTWVkaWEsICJDR0dldEFjdGl2ZURpc3BsYXlMaXN0KCkgcmV0dXJuZWQgZXJy
b3IgJWQgd2hlbiB0cnlpbmcgdG8gZ2V0IHRoZSBhY3RpdmUgZGlzcGxheSBsaXN0IiwgKGludCll
cnIpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaW50IGNvdW50ID0gMDsKKyAgICBm
b3IgKGF1dG8gZGlzcGxheUlEIDogYWN0aXZlRGlzcGxheXMpIHsKKyAgICAgICAgQ2FwdHVyZURl
dmljZSBkaXNwbGF5RGV2aWNlKFN0cmluZzo6bnVtYmVyKGRpc3BsYXlJRCksIENhcHR1cmVEZXZp
Y2U6OkRldmljZVR5cGU6OlNjcmVlbiwgbWFrZVN0cmluZygiU2NyZWVuICIsIFN0cmluZzo6bnVt
YmVyKGNvdW50KyspKSk7CisgICAgICAgIGRpc3BsYXlEZXZpY2Uuc2V0RW5hYmxlZChDR0Rpc3Bs
YXlJRFRvT3BlbkdMRGlzcGxheU1hc2soZGlzcGxheUlEKSk7CisgICAgICAgIGRpc3BsYXlzLmFw
cGVuZChXVEZNb3ZlKGRpc3BsYXlEZXZpY2UpKTsKKyAgICB9Cit9CisKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pICYmIFBMQVRGT1JNKE1B
QykK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>345666</attachid>
            <date>2018-07-24 06:09:04 -0700</date>
            <delta_ts>2018-07-24 07:09:10 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-187905-20180724060903.patch</filename>
            <type>text/plain</type>
            <size>28690</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMzNTE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmMyNzdlNGNmZDJkODFm
N2Y0OWViMTVmMmE4ZjMyNDgxMmRjOTE5MC4uNTZhZGFkYzk3MDY4YWY5ZTVmMWViZDUzNzc0OTEz
YzBkNWVjYTRjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUzIEBACisyMDE4LTA3LTIzICBFcmlj
IENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtNZWRpYVN0cmVh
bV0gUmVzdHJ1Y3R1cmUgZ2V0RGlzcGxheU1lZGlhIGNsYXNzZXMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NzkwNQorCisgICAgICAgIFJldmlld2Vk
IGJ5IERlYW4gSmFja3Nvbi4KKworICAgICAgICBObyBuZXcgdGVzdHMsIG5vIGZ1bmN0aW9uYWwg
Y2hhbmdlcy4KKworICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL0NhcHR1cmVEZXZpY2VN
YW5hZ2VyLmg6CisgICAgICAgIChXZWJDb3JlOjpDYXB0dXJlRGV2aWNlTWFuYWdlcjo6cmVmcmVz
aENhcHR1cmVEZXZpY2VzKTogRGVsZXRlZCwgbm8gbmVlZCBmb3IgaXQgdG8gYmUgYSAKKyAgICAg
ICAgdmlydHVhbCBtZXRob2QuCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FW
Q2FwdHVyZURldmljZU1hbmFnZXIuaDoKKworICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFt
L2dzdHJlYW1lci9HU3RyZWFtZXJDYXB0dXJlRGV2aWNlTWFuYWdlci5oOiByZWZyZXNoQ2FwdHVy
ZURldmljZXMgaXMKKyAgICAgICAgbm8gbG9uZ2VyIHZpcnR1YWwuCisKKyAgICAgICAgKiBwbGF0
Zm9ybS9tZWRpYXN0cmVhbS9tYWMvRGlzcGxheUNhcHR1cmVNYW5hZ2VyQ29jb2EuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RGlzcGxheUNhcHR1cmVNYW5hZ2VyQ29jb2E6OmNhcHR1cmVEZXZpY2Vz
KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlDYXB0dXJlTWFuYWdlckNvY29hOjp1cGRhdGVE
aXNwbGF5Q2FwdHVyZURldmljZXMpOiBNb3ZlZCBmdW5jdGlvbmFsaXR5IAorICAgICAgICB0byBT
Y3JlZW5EaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYy4KKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlD
YXB0dXJlTWFuYWdlckNvY29hOjpzY3JlZW5DYXB0dXJlRGV2aWNlV2l0aFBlcnNpc3RlbnRJRCk6
IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6ZGlzcGxheVJlY29uZmlndXJhdGlvbkNhbGxCYWNr
KTogRGVsZXRlZCwgbW92ZWQgdG8gU2NyZWVuRGlzcGxheUNhcHR1cmVTb3VyY2VNYWMuCisgICAg
ICAgIChXZWJDb3JlOjpEaXNwbGF5Q2FwdHVyZU1hbmFnZXJDb2NvYTo6fkRpc3BsYXlDYXB0dXJl
TWFuYWdlckNvY29hKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlDYXB0dXJl
TWFuYWdlckNvY29hOjpyZWZyZXNoQ2FwdHVyZURldmljZXMpOiBEZWxldGVkLgorICAgICAgICAq
IHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9EaXNwbGF5Q2FwdHVyZU1hbmFnZXJDb2NvYS5oOgor
CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0Rpc3BsYXlDYXB0dXJlU291cmNl
Q29jb2EuY3BwOgorICAgICAgICAoV2ViQ29yZTo6cm91bmRVcFRvTWFjcm9ibG9ja011bHRpcGxl
KTogTW92ZWQgZnJvbSBTY3JlZW5EaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYy4KKyAgICAgICAgKFdl
YkNvcmU6OkRpc3BsYXlDYXB0dXJlU291cmNlQ29jb2E6OmFwcGx5U2l6ZSk6IERpdHRvLgorICAg
ICAgICAoV2ViQ29yZTo6RGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYTo6c2FtcGxlQnVmZmVyRnJv
bVBpeGVsQnVmZmVyKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5Q2FwdHVyZVNv
dXJjZUNvY29hOjpwaXhlbEJ1ZmZlckZyb21JT1N1cmZhY2UpOiBEaXR0by4KKyAgICAgICAgKiBw
bGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYS5oOgorCisg
ICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1NjcmVlbkRpc3BsYXlDYXB0dXJlU291
cmNlTWFjLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1NjcmVlbkRpc3Bs
YXlDYXB0dXJlU291cmNlTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6dXBkYXRlRGlzcGxheUlE
KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmVlbkRpc3BsYXlDYXB0dXJlU291cmNlTWFjOjpjcmVh
dGVEaXNwbGF5U3RyZWFtKTogRml4IGxvZyBtZXNzYWdlLgorICAgICAgICAoV2ViQ29yZTo6U2Ny
ZWVuRGlzcGxheUNhcHR1cmVTb3VyY2VNYWM6OnN0YXJ0RGlzcGxheVN0cmVhbSk6IERpdHRvLgor
ICAgICAgICAoV2ViQ29yZTo6U2NyZWVuRGlzcGxheUNhcHR1cmVTb3VyY2VNYWM6OmFwcGx5U2l6
ZSk6IFVwZGF0ZSBmb3IgYmFzZSBjbGFzcyBjaGFuZ2VzLgorICAgICAgICAoV2ViQ29yZTo6U2Ny
ZWVuRGlzcGxheUNhcHR1cmVTb3VyY2VNYWM6OmFwcGx5RnJhbWVSYXRlKTogRGl0dG8uCisgICAg
ICAgIChXZWJDb3JlOjpTY3JlZW5EaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYzo6ZnJhbWVBdmFpbGFi
bGUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlNjcmVlbkRpc3BsYXlDYXB0dXJlU291cmNl
TWFjOjpzY3JlZW5DYXB0dXJlRGV2aWNlV2l0aFBlcnNpc3RlbnRJRCk6IE1vdmVkIGZyb20KKyAg
ICAgICAgRGlzcGxheUNhcHR1cmVNYW5hZ2VyQ29jb2EuCisgICAgICAgIChXZWJDb3JlOjpTY3Jl
ZW5EaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYzo6c2NyZWVuQ2FwdHVyZURldmljZXMpOiBEaXR0by4K
KyAgICAgICAgKFdlYkNvcmU6OnJvdW5kVXBUb01hY3JvYmxvY2tNdWx0aXBsZSk6IE1vdmVkIHRv
IERpc3BsYXlDYXB0dXJlU291cmNlQ29jb2EuCisgICAgICAgIChXZWJDb3JlOjpTY3JlZW5EaXNw
bGF5Q2FwdHVyZVNvdXJjZU1hYzo6dXBkYXRlRGlzcGxheUlEKTogRGl0dG8uCisgICAgICAgIChX
ZWJDb3JlOjpTY3JlZW5EaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYzo6c2FtcGxlQnVmZmVyRnJvbVBp
eGVsQnVmZmVyKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpTY3JlZW5EaXNwbGF5Q2FwdHVy
ZVNvdXJjZU1hYzo6cGl4ZWxCdWZmZXJGcm9tSU9TdXJmYWNlKTogRGl0dG8uCisKIDIwMTgtMDct
MDUgIFNlcmdpbyBWaWxsYXIgU2VuaW4gIDxzdmlsbGFyQGlnYWxpYS5jb20+CiAKICAgICAgICAg
W1dlYlZSXSBGaXggVlJEaXNwbGF5RXZlbnQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL0NhcHR1cmVEZXZpY2VNYW5hZ2VyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9DYXB0dXJlRGV2aWNlTWFuYWdl
ci5oCmluZGV4IDVlNmJmOWZlYTYwYzI4MDY5NTFmZTc1YmI3MDE1NDA4N2VhNjgzOGIuLjQ1ZWRi
MzAwYzNiNzJlODc3MzQ1YzlmMDAyMzZmZDA2ZDM1NDljZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL0NhcHR1cmVEZXZpY2VNYW5hZ2VyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vQ2FwdHVyZURldmljZU1hbmFnZXIu
aApAQCAtNDIsOCArNDIsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBjb25zdCBWZWN0b3I8Q2Fw
dHVyZURldmljZT4mIGNhcHR1cmVEZXZpY2VzKCkgPSAwOwogICAgIHZpcnR1YWwgc3RkOjpvcHRp
b25hbDxDYXB0dXJlRGV2aWNlPiBjYXB0dXJlRGV2aWNlV2l0aFBlcnNpc3RlbnRJRChDYXB0dXJl
RGV2aWNlOjpEZXZpY2VUeXBlLCBjb25zdCBTdHJpbmcmKSB7IHJldHVybiBzdGQ6Om51bGxvcHQ7
IH0KIAotICAgIHZpcnR1YWwgdm9pZCByZWZyZXNoQ2FwdHVyZURldmljZXMoKSB7IH0KLQogcHJv
dGVjdGVkOgogICAgIHZpcnR1YWwgfkNhcHR1cmVEZXZpY2VNYW5hZ2VyKCk7CiAgICAgQ2FwdHVy
ZURldmljZSBjYXB0dXJlRGV2aWNlRnJvbVBlcnNpc3RlbnRJRChjb25zdCBTdHJpbmcmIGNhcHR1
cmVEZXZpY2VJRCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyQ2FwdHVyZURldmljZU1hbmFnZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJDYXB0dXJlRGV2
aWNlTWFuYWdlci5oCmluZGV4IDg2MzkyNDE0ZDAxMTY0ZTFkNmU4ODU0NTcwMDcwYjAxMGIxNTFk
ZjkuLmIxZmQ3ODI4ZDQxZmY2MzcyYWZmZTI5NTE1NTE1YmEzYTI5OTdmMTkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJD
YXB0dXJlRGV2aWNlTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJDYXB0dXJlRGV2aWNlTWFuYWdlci5oCkBAIC0zMywx
MiArMzMsMTIgQEAgY2xhc3MgR1N0cmVhbWVyQ2FwdHVyZURldmljZU1hbmFnZXIgOiBwdWJsaWMg
Q2FwdHVyZURldmljZU1hbmFnZXIgewogcHVibGljOgogICAgIHN0ZDo6b3B0aW9uYWw8R1N0cmVh
bWVyQ2FwdHVyZURldmljZT4gZ3N0cmVhbWVyRGV2aWNlV2l0aFVJRChjb25zdCBTdHJpbmcmKTsK
IAotICAgIHZvaWQgcmVmcmVzaENhcHR1cmVEZXZpY2VzKCkgZmluYWw7CiAgICAgY29uc3QgVmVj
dG9yPENhcHR1cmVEZXZpY2U+JiBjYXB0dXJlRGV2aWNlcygpIGZpbmFsOwogICAgIHZpcnR1YWwg
Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZSBkZXZpY2VUeXBlKCkgPSAwOwogCiBwcml2YXRlOgog
ICAgIHZvaWQgZGV2aWNlQWRkZWQoR1JlZlB0cjxHc3REZXZpY2U+JiYpOworICAgIHZvaWQgcmVm
cmVzaENhcHR1cmVEZXZpY2VzKCk7CiAKICAgICBHUmVmUHRyPEdzdERldmljZU1vbml0b3I+IG1f
ZGV2aWNlTW9uaXRvcjsKICAgICBWZWN0b3I8R1N0cmVhbWVyQ2FwdHVyZURldmljZT4gbV9nc3Ry
ZWFtZXJEZXZpY2VzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vbWFjL0FWQ2FwdHVyZURldmljZU1hbmFnZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL21hYy9BVkNhcHR1cmVEZXZpY2VNYW5hZ2VyLmgKaW5kZXggN2YwN2Rm
M2QxNzBkODdlZjYxNTBkNzNjODVmNzkzOGYwMWQ0OTgyYS4uYjIxY2E5YjkyYTI2NGQ4ODBhNGQy
N2E0NjgzNzg0NTFkMzcyZTMwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbWFjL0FWQ2FwdHVyZURldmljZU1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZDYXB0dXJlRGV2aWNlTWFuYWdlci5oCkBA
IC01OCw3ICs1OCw3IEBAIHByb3RlY3RlZDoKICAgICBBVkNhcHR1cmVEZXZpY2VNYW5hZ2VyKCk7
CiAgICAgfkFWQ2FwdHVyZURldmljZU1hbmFnZXIoKSBmaW5hbDsKIAotICAgIHZvaWQgcmVmcmVz
aENhcHR1cmVEZXZpY2VzKCkgZmluYWw7CisgICAgdm9pZCByZWZyZXNoQ2FwdHVyZURldmljZXMo
KTsKICAgICB2b2lkIHJlZ2lzdGVyRm9yRGV2aWNlTm90aWZpY2F0aW9ucygpOwogICAgIHZvaWQg
cmVmcmVzaEFWQ2FwdHVyZURldmljZXNPZlR5cGUoQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZSk7
CiAgICAgVmVjdG9yPENhcHR1cmVEZXZpY2U+JiBjYXB0dXJlRGV2aWNlc0ludGVybmFsKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvRGlzcGxh
eUNhcHR1cmVNYW5hZ2VyQ29jb2EuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vbWFjL0Rpc3BsYXlDYXB0dXJlTWFuYWdlckNvY29hLmNwcAppbmRleCBhYjVmYjA0ZTE3
OWRhMmU1YjExMDFjODVkOGU2ZWRmOTRkYmM3MTg5Li41YzJhOWQyNDE5OGExM2U0OGM0ZjczZTlk
ZTYxZGQzN2FkZTkyNTUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9tYWMvRGlzcGxheUNhcHR1cmVNYW5hZ2VyQ29jb2EuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9EaXNwbGF5Q2FwdHVyZU1hbmFnZXJDb2Nv
YS5jcHAKQEAgLTI5LDYgKzI5LDcgQEAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogCiAjaW5j
bHVkZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUgPHd0Zi9BbGdvcml0aG1zLmg+CiAjaW5jbHVkZSA8
d3RmL05ldmVyRGVzdHJveWVkLmg+CiAKICNpZiBQTEFURk9STShNQUMpCkBAIC0zOCwxMTQgKzM5
LDMyIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotI2lmIFBMQVRGT1JNKE1BQykKLXN0YXRp
YyB2b2lkIGRpc3BsYXlSZWNvbmZpZ3VyYXRpb25DYWxsQmFjayhDR0RpcmVjdERpc3BsYXlJRCwg
Q0dEaXNwbGF5Q2hhbmdlU3VtbWFyeUZsYWdzLCB2b2lkKiB1c2VySW5mbykKLXsKLSAgICBpZiAo
dXNlckluZm8pCi0gICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8RGlzcGxheUNhcHR1cmVNYW5hZ2Vy
Q29jb2EqPih1c2VySW5mbyktPnJlZnJlc2hDYXB0dXJlRGV2aWNlcygpOwotfQotI2VuZGlmCi0K
IERpc3BsYXlDYXB0dXJlTWFuYWdlckNvY29hJiBEaXNwbGF5Q2FwdHVyZU1hbmFnZXJDb2NvYTo6
c2luZ2xldG9uKCkKIHsKICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8RGlzcGxheUNhcHR1cmVN
YW5hZ2VyQ29jb2E+IG1hbmFnZXI7CiAgICAgcmV0dXJuIG1hbmFnZXIuZ2V0KCk7CiB9CiAKLURp
c3BsYXlDYXB0dXJlTWFuYWdlckNvY29hOjp+RGlzcGxheUNhcHR1cmVNYW5hZ2VyQ29jb2EoKQot
ewotI2lmIFBMQVRGT1JNKE1BQykKLSAgICBpZiAobV9vYnNlcnZpbmdEaXNwbGF5Q2hhbmdlcykK
LSAgICAgICAgQ0dEaXNwbGF5UmVtb3ZlUmVjb25maWd1cmF0aW9uQ2FsbGJhY2soZGlzcGxheVJl
Y29uZmlndXJhdGlvbkNhbGxCYWNrLCB0aGlzKTsKLSNlbmRpZgotfQotCiBjb25zdCBWZWN0b3I8
Q2FwdHVyZURldmljZT4mIERpc3BsYXlDYXB0dXJlTWFuYWdlckNvY29hOjpjYXB0dXJlRGV2aWNl
cygpCiB7Ci0gICAgc3RhdGljIGJvb2wgaW5pdGlhbGl6ZWQ7Ci0gICAgaWYgKCFpbml0aWFsaXpl
ZCkgewotICAgICAgICByZWZyZXNoQ2FwdHVyZURldmljZXMoKTsKKyAgICBtX2RldmljZXMuY2xl
YXIoKTsKIAotI2lmIFBMQVRGT1JNKE1BQykKLSAgICAgICAgQ0dEaXNwbGF5UmVnaXN0ZXJSZWNv
bmZpZ3VyYXRpb25DYWxsYmFjayhkaXNwbGF5UmVjb25maWd1cmF0aW9uQ2FsbEJhY2ssIHRoaXMp
OwotI2VuZGlmCisgICAgdXBkYXRlRGlzcGxheUNhcHR1cmVEZXZpY2VzKCk7CiAKLSAgICAgICAg
bV9vYnNlcnZpbmdEaXNwbGF5Q2hhbmdlcyA9IHRydWU7Ci0gICAgICAgIGluaXRpYWxpemVkID0g
dHJ1ZTsKLSAgICB9OwotICAgIAotICAgIHJldHVybiBtX2Rpc3BsYXlzOworICAgIHJldHVybiBt
X2RldmljZXM7CiB9CiAKLXZvaWQgRGlzcGxheUNhcHR1cmVNYW5hZ2VyQ29jb2E6OnJlZnJlc2hD
YXB0dXJlRGV2aWNlcygpCit2b2lkIERpc3BsYXlDYXB0dXJlTWFuYWdlckNvY29hOjp1cGRhdGVE
aXNwbGF5Q2FwdHVyZURldmljZXMoKQogewogI2lmIFBMQVRGT1JNKE1BQykKLSAgICB1aW50MzJf
dCBkaXNwbGF5Q291bnQgPSAwOwotICAgIGF1dG8gZXJyID0gQ0dHZXRBY3RpdmVEaXNwbGF5TGlz
dCgwLCBudWxscHRyLCAmZGlzcGxheUNvdW50KTsKLSAgICBpZiAoZXJyKSB7Ci0gICAgICAgIFJF
TEVBU0VfTE9HKE1lZGlhLCAiQ0dHZXRBY3RpdmVEaXNwbGF5TGlzdCgpIHJldHVybmVkIGVycm9y
ICVkIHdoZW4gdHJ5aW5nIHRvIGdldCBkaXNwbGF5IGNvdW50IiwgKGludCllcnIpOwotICAgICAg
ICByZXR1cm47Ci0gICAgfQotCi0gICAgaWYgKCFkaXNwbGF5Q291bnQpIHsKLSAgICAgICAgUkVM
RUFTRV9MT0coTWVkaWEsICJDR0dldEFjdGl2ZURpc3BsYXlMaXN0KCkgcmV0dXJuZWQgYSBkaXNw
bGF5IGNvdW50IG9mIDAiKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIENHRGlyZWN0
RGlzcGxheUlEIGFjdGl2ZURpc3BsYXlzW2Rpc3BsYXlDb3VudF07Ci0gICAgZXJyID0gQ0dHZXRB
Y3RpdmVEaXNwbGF5TGlzdChkaXNwbGF5Q291bnQsICYoYWN0aXZlRGlzcGxheXNbMF0pLCAmZGlz
cGxheUNvdW50KTsKLSAgICBpZiAoZXJyKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HKE1lZGlhLCAi
Q0dHZXRBY3RpdmVEaXNwbGF5TGlzdCgpIHJldHVybmVkIGVycm9yICVkIHdoZW4gdHJ5aW5nIHRv
IGdldCB0aGUgYWN0aXZlIGRpc3BsYXkgbGlzdCIsIChpbnQpZXJyKTsKLSAgICAgICAgcmV0dXJu
OwotICAgIH0KLQotICAgIGJvb2wgaGF2ZURldmljZUNoYW5nZXMgPSBmYWxzZTsKLSAgICBmb3Ig
KGF1dG8gZGlzcGxheUlEIDogYWN0aXZlRGlzcGxheXMpIHsKLSAgICAgICAgaWYgKHN0ZDo6YW55
X29mKG1fZGlzcGxheXNJbnRlcm5hbC5iZWdpbigpLCBtX2Rpc3BsYXlzSW50ZXJuYWwuZW5kKCks
IFtkaXNwbGF5SURdKGF1dG8mIGRldmljZSkgeyByZXR1cm4gZGV2aWNlLmNnRGlyZWN0RGlzcGxh
eUlEID09IGRpc3BsYXlJRDsgfSkpCi0gICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgaGF2
ZURldmljZUNoYW5nZXMgPSB0cnVlOwotICAgICAgICBtX2Rpc3BsYXlzSW50ZXJuYWwuYXBwZW5k
KHsgZGlzcGxheUlELCBDR0Rpc3BsYXlJRFRvT3BlbkdMRGlzcGxheU1hc2soZGlzcGxheUlEKSB9
KTsKLSAgICB9Ci0KLSAgICBmb3IgKGF1dG8mIGRpc3BsYXkgOiBtX2Rpc3BsYXlzSW50ZXJuYWwp
IHsKLSAgICAgICAgYXV0byBkaXNwbGF5TWFzayA9IENHRGlzcGxheUlEVG9PcGVuR0xEaXNwbGF5
TWFzayhkaXNwbGF5LmNnRGlyZWN0RGlzcGxheUlEKTsKLSAgICAgICAgaWYgKGRpc3BsYXkuY2dP
cGVuR0xEaXNwbGF5TWFzayAhPSBkaXNwbGF5TWFzaykgewotICAgICAgICAgICAgZGlzcGxheS5j
Z09wZW5HTERpc3BsYXlNYXNrID0gZGlzcGxheU1hc2s7Ci0gICAgICAgICAgICBoYXZlRGV2aWNl
Q2hhbmdlcyA9IHRydWU7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBpZiAoIWhhdmVEZXZpY2VD
aGFuZ2VzKQotICAgICAgICByZXR1cm47Ci0KLSAgICBpbnQgY291bnQgPSAwOwotICAgIG1fZGlz
cGxheXMgPSBWZWN0b3I8Q2FwdHVyZURldmljZT4oKTsKLSAgICBmb3IgKGF1dG8mIGRldmljZSA6
IG1fZGlzcGxheXNJbnRlcm5hbCkgewotICAgICAgICBDYXB0dXJlRGV2aWNlIGRpc3BsYXlEZXZp
Y2UoU3RyaW5nOjpudW1iZXIoZGV2aWNlLmNnRGlyZWN0RGlzcGxheUlEKSwgQ2FwdHVyZURldmlj
ZTo6RGV2aWNlVHlwZTo6U2NyZWVuLCBtYWtlU3RyaW5nKCJTY3JlZW4gIiwgU3RyaW5nOjpudW1i
ZXIoY291bnQrKykpKTsKLSAgICAgICAgZGlzcGxheURldmljZS5zZXRFbmFibGVkKGRldmljZS5j
Z09wZW5HTERpc3BsYXlNYXNrKTsKLSAgICAgICAgbV9kaXNwbGF5cy5hcHBlbmQoV1RGTW92ZShk
aXNwbGF5RGV2aWNlKSk7Ci0gICAgfQorICAgIFNjcmVlbkRpc3BsYXlDYXB0dXJlU291cmNlTWFj
OjpzY3JlZW5DYXB0dXJlRGV2aWNlcyhtX2RldmljZXMpOwogI2VuZGlmCiB9CiAKIHN0ZDo6b3B0
aW9uYWw8Q2FwdHVyZURldmljZT4gRGlzcGxheUNhcHR1cmVNYW5hZ2VyQ29jb2E6OnNjcmVlbkNh
cHR1cmVEZXZpY2VXaXRoUGVyc2lzdGVudElEKGNvbnN0IFN0cmluZyYgZGV2aWNlSUQpCiB7CiAj
aWYgUExBVEZPUk0oTUFDKQotICAgIGJvb2wgb2s7Ci0gICAgYXV0byBkaXNwbGF5SUQgPSBkZXZp
Y2VJRC50b1VJbnRTdHJpY3QoJm9rKTsKLSAgICBpZiAoIW9rKSB7Ci0gICAgICAgIFJFTEVBU0Vf
TE9HKE1lZGlhLCAiRGlzcGxheSBJRCBkb2VzIG5vdCBjb252ZXJ0IHRvIDMyLWJpdCBpbnRlZ2Vy
Iik7Ci0gICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0gICAgfQotCi0gICAgYXV0byBhY3R1
YWxEaXNwbGF5SUQgPSBTY3JlZW5EaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYzo6dXBkYXRlRGlzcGxh
eUlEKGRpc3BsYXlJRCk7Ci0gICAgaWYgKCFhY3R1YWxEaXNwbGF5SUQpCi0gICAgICAgIHJldHVy
biBzdGQ6Om51bGxvcHQ7Ci0KLSAgICBhdXRvIGRldmljZSA9IENhcHR1cmVEZXZpY2UoU3RyaW5n
OjpudW1iZXIoYWN0dWFsRGlzcGxheUlELnZhbHVlKCkpLCBDYXB0dXJlRGV2aWNlOjpEZXZpY2VU
eXBlOjpTY3JlZW4sICJTY3JlZW5DYXB0dXJlRGV2aWNlIl9zKTsKLSAgICBkZXZpY2Uuc2V0RW5h
YmxlZCh0cnVlKTsKLQotICAgIHJldHVybiBkZXZpY2U7CisgICAgcmV0dXJuIFNjcmVlbkRpc3Bs
YXlDYXB0dXJlU291cmNlTWFjOjpzY3JlZW5DYXB0dXJlRGV2aWNlV2l0aFBlcnNpc3RlbnRJRChk
ZXZpY2VJRCk7CiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTShkZXZpY2VJRCk7CiAgICAgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL21hYy9EaXNwbGF5Q2FwdHVyZU1hbmFnZXJDb2NvYS5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0Rpc3BsYXlDYXB0dXJlTWFuYWdlckNvY29hLmgKaW5k
ZXggZDc2Mjg2NGYyZTQyNGY3ZmY1OWM4YjVlMjVmYTYzYzRjNmE0ZTU0Zi4uNjhjZWU2MDdmYTNj
Njg3Y2E5NmUwZWFjYTZjNTk3MDBmODRhMTNiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0Rpc3BsYXlDYXB0dXJlTWFuYWdlckNvY29hLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0Rpc3BsYXlDYXB0dXJl
TWFuYWdlckNvY29hLmgKQEAgLTM0LDI0ICszNCwyMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBj
bGFzcyBEaXNwbGF5Q2FwdHVyZU1hbmFnZXJDb2NvYSBmaW5hbCA6IHB1YmxpYyBDYXB0dXJlRGV2
aWNlTWFuYWdlciB7CiBwdWJsaWM6CiAgICAgc3RhdGljIERpc3BsYXlDYXB0dXJlTWFuYWdlckNv
Y29hJiBzaW5nbGV0b24oKTsKLSAgICBEaXNwbGF5Q2FwdHVyZU1hbmFnZXJDb2NvYSgpID0gZGVm
YXVsdDsKIAotICAgIHZvaWQgcmVmcmVzaENhcHR1cmVEZXZpY2VzKCkgZmluYWw7CisgICAgRGlz
cGxheUNhcHR1cmVNYW5hZ2VyQ29jb2EoKSA9IGRlZmF1bHQ7CiAKIHByaXZhdGU6Ci0gICAgdmly
dHVhbCB+RGlzcGxheUNhcHR1cmVNYW5hZ2VyQ29jb2EoKTsKKyAgICB2aXJ0dWFsIH5EaXNwbGF5
Q2FwdHVyZU1hbmFnZXJDb2NvYSgpID0gZGVmYXVsdDsKKworICAgIHZvaWQgdXBkYXRlRGlzcGxh
eUNhcHR1cmVEZXZpY2VzKCk7CiAKICAgICBjb25zdCBWZWN0b3I8Q2FwdHVyZURldmljZT4mIGNh
cHR1cmVEZXZpY2VzKCkgZmluYWw7CisKICAgICBzdGQ6Om9wdGlvbmFsPENhcHR1cmVEZXZpY2U+
IGNhcHR1cmVEZXZpY2VXaXRoUGVyc2lzdGVudElEKENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGUs
IGNvbnN0IFN0cmluZyYpIGZpbmFsOwogICAgIHN0ZDo6b3B0aW9uYWw8Q2FwdHVyZURldmljZT4g
c2NyZWVuQ2FwdHVyZURldmljZVdpdGhQZXJzaXN0ZW50SUQoY29uc3QgU3RyaW5nJik7CiAKLSAg
ICBzdHJ1Y3QgQ0dEaXNwbGF5Q2FwdHVyZURldmljZSB7Ci0gICAgICAgIHVpbnQzMl90IGNnRGly
ZWN0RGlzcGxheUlEOwotICAgICAgICB1aW50MzJfdCBjZ09wZW5HTERpc3BsYXlNYXNrOwotICAg
IH07Ci0gICAgVmVjdG9yPENHRGlzcGxheUNhcHR1cmVEZXZpY2U+IG1fZGlzcGxheXNJbnRlcm5h
bDsKLSAgICBWZWN0b3I8Q2FwdHVyZURldmljZT4gbV9kaXNwbGF5czsKLSAgICBib29sIG1fb2Jz
ZXJ2aW5nRGlzcGxheUNoYW5nZXMgeyBmYWxzZSB9OworICAgIFZlY3RvcjxDYXB0dXJlRGV2aWNl
PiBtX2RldmljZXM7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvRGlzcGxheUNhcHR1cmVTb3Vy
Y2VDb2NvYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvRGlz
cGxheUNhcHR1cmVTb3VyY2VDb2NvYS5jcHAKaW5kZXggYzYzNjBhNWI1YmM5MWY4NWM1ZWI4Njlk
MTYwYzA1NjcwYWQzYmIyNi4uOWVjZmY4MmRlNDliNjY3ZjliMjJmYWZhOGEyNGM0Y2E3NmZiZDEx
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0Rp
c3BsYXlDYXB0dXJlU291cmNlQ29jb2EuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL21hYy9EaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hLmNwcApAQCAtNDUsNiAr
NDUsMTEgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHVzaW5nIG5hbWVzcGFjZSBQQUw7CiAKK3N0
YXRpYyBpbnQzMl90IHJvdW5kVXBUb01hY3JvYmxvY2tNdWx0aXBsZShpbnQzMl90IHNpemUpCit7
CisgICAgcmV0dXJuIChzaXplICsgMTUpICYgfjE1OworfQorCiBEaXNwbGF5Q2FwdHVyZVNvdXJj
ZUNvY29hOjpEaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hKGNvbnN0IFN0cmluZyYgbmFtZSkKICAg
ICA6IFJlYWx0aW1lTWVkaWFTb3VyY2UoIiIsIFR5cGU6OlZpZGVvLCBuYW1lKQogICAgICwgbV90
aW1lcihSdW5Mb29wOjpjdXJyZW50KCksIHRoaXMsICZEaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29h
OjplbWl0RnJhbWUpCkBAIC0xMjcsNiArMTMyLDE1IEBAIFNlY29uZHMgRGlzcGxheUNhcHR1cmVT
b3VyY2VDb2NvYTo6ZWxhcHNlZFRpbWUoKQogICAgIHJldHVybiBtX2VsYXBzZWRUaW1lICsgKE1v
bm90b25pY1RpbWU6Om5vdygpIC0gbV9zdGFydFRpbWUpOwogfQogCitib29sIERpc3BsYXlDYXB0
dXJlU291cmNlQ29jb2E6OmFwcGx5U2l6ZShjb25zdCBJbnRTaXplJiBuZXdTaXplKQoreworICAg
IGlmIChzaXplKCkgPT0gbmV3U2l6ZSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICBtX2J1
ZmZlckF0dHJpYnV0ZXMgPSBudWxscHRyOworICAgIHJldHVybiB0cnVlOworfQorCiBib29sIERp
c3BsYXlDYXB0dXJlU291cmNlQ29jb2E6OmFwcGx5RnJhbWVSYXRlKGRvdWJsZSByYXRlKQogewog
ICAgIGlmIChtX3RpbWVyLmlzQWN0aXZlKCkpCkBAIC0xNDMsNiArMTU3LDcxIEBAIHZvaWQgRGlz
cGxheUNhcHR1cmVTb3VyY2VDb2NvYTo6ZW1pdEZyYW1lKCkKICAgICBnZW5lcmF0ZUZyYW1lKCk7
CiB9CiAKK1JldGFpblB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4gRGlzcGxheUNhcHR1cmVTb3VyY2VD
b2NvYTo6c2FtcGxlQnVmZmVyRnJvbVBpeGVsQnVmZmVyKENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxC
dWZmZXIpCit7CisgICAgaWYgKCFwaXhlbEJ1ZmZlcikKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7
CisKKyAgICBDTVRpbWUgc2FtcGxlVGltZSA9IENNVGltZU1ha2UoKChlbGFwc2VkVGltZSgpICsg
MTAwX21zKSAqIDEwMCkuc2Vjb25kcygpLCAxMDApOworICAgIENNU2FtcGxlVGltaW5nSW5mbyB0
aW1pbmdJbmZvID0geyBrQ01UaW1lSW52YWxpZCwgc2FtcGxlVGltZSwgc2FtcGxlVGltZSB9Owor
CisgICAgQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uUmVmIGZvcm1hdERlc2NyaXB0aW9uID0gbnVs
bHB0cjsKKyAgICBhdXRvIHN0YXR1cyA9IENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbkNyZWF0ZUZv
ckltYWdlQnVmZmVyKGtDRkFsbG9jYXRvckRlZmF1bHQsIChDVkltYWdlQnVmZmVyUmVmKXBpeGVs
QnVmZmVyLCAmZm9ybWF0RGVzY3JpcHRpb24pOworICAgIGlmIChzdGF0dXMpIHsKKyAgICAgICAg
UkVMRUFTRV9MT0coTWVkaWEsICJGYWlsZWQgdG8gaW5pdGlhbGl6ZSBDTVZpZGVvRm9ybWF0RGVz
Y3JpcHRpb24gd2l0aCBlcnJvciBjb2RlOiAlZCIsIHN0YXRpY19jYXN0PGludD4oc3RhdHVzKSk7
CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKworICAgIENNU2FtcGxlQnVmZmVyUmVm
IHNhbXBsZUJ1ZmZlcjsKKyAgICBzdGF0dXMgPSBDTVNhbXBsZUJ1ZmZlckNyZWF0ZVJlYWR5V2l0
aEltYWdlQnVmZmVyKGtDRkFsbG9jYXRvckRlZmF1bHQsIChDVkltYWdlQnVmZmVyUmVmKXBpeGVs
QnVmZmVyLCBmb3JtYXREZXNjcmlwdGlvbiwgJnRpbWluZ0luZm8sICZzYW1wbGVCdWZmZXIpOwor
ICAgIENGUmVsZWFzZShmb3JtYXREZXNjcmlwdGlvbik7CisgICAgaWYgKHN0YXR1cykgeworICAg
ICAgICBSRUxFQVNFX0xPRyhNZWRpYSwgIkZhaWxlZCB0byBpbml0aWFsaXplIENNU2FtcGxlQnVm
ZmVyIHdpdGggZXJyb3IgY29kZTogJWQiLCBzdGF0aWNfY2FzdDxpbnQ+KHN0YXR1cykpOworICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisKKyAgICByZXR1cm4gYWRvcHRDRihzYW1wbGVC
dWZmZXIpOworfQorCisjaWYgSEFWRShJT1NVUkZBQ0UpCitSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZl
clJlZj4gRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYTo6cGl4ZWxCdWZmZXJGcm9tSU9TdXJmYWNl
KElPU3VyZmFjZVJlZiBzdXJmYWNlKQoreworICAgIGlmICghbV9idWZmZXJBdHRyaWJ1dGVzKSB7
CisgICAgICAgIG1fYnVmZmVyQXR0cmlidXRlcyA9IGFkb3B0Q0YoQ0ZEaWN0aW9uYXJ5Q3JlYXRl
TXV0YWJsZShudWxscHRyLCAwLCAma0NGVHlwZURpY3Rpb25hcnlLZXlDYWxsQmFja3MsICZrQ0ZU
eXBlRGljdGlvbmFyeVZhbHVlQ2FsbEJhY2tzKSk7CisKKyAgICAgICAgYXV0byBmb3JtYXQgPSBJ
T1N1cmZhY2VHZXRQaXhlbEZvcm1hdChzdXJmYWNlKTsKKyAgICAgICAgaWYgKGZvcm1hdCA9PSBr
Q1ZQaXhlbEZvcm1hdFR5cGVfNDIwWXBDYkNyOEJpUGxhbmFyVmlkZW9SYW5nZSB8fCBmb3JtYXQg
PT0ga0NWUGl4ZWxGb3JtYXRUeXBlXzQyMFlwQ2JDcjhCaVBsYW5hckZ1bGxSYW5nZSkgeworCisg
ICAgICAgICAgICAvLyBJZiB0aGUgd2lkdGggeCBoZWlnaHQgaXNuJ3QgYSBtdWx0aXBsZSBvZiAx
NiB4IDE2IGFuZCB0aGUgc3VyZmFjZSBoYXMgZXh0cmEgbWVtb3J5IGluIHRoZSBwbGFuZXMsIHNl
dCBwaXhlbCBidWZmZXIgYXR0cmlidXRlcyB0byByZWZsZWN0IGl0LgorICAgICAgICAgICAgYXV0
byB3aWR0aCA9IElPU3VyZmFjZUdldFdpZHRoKHN1cmZhY2UpOworICAgICAgICAgICAgYXV0byBo
ZWlnaHQgPSBJT1N1cmZhY2VHZXRIZWlnaHQoc3VyZmFjZSk7CisgICAgICAgICAgICBpbnQzMl90
IGV4dGVuZGVkUmlnaHQgPSByb3VuZFVwVG9NYWNyb2Jsb2NrTXVsdGlwbGUod2lkdGgpIC0gd2lk
dGg7CisgICAgICAgICAgICBpbnQzMl90IGV4dGVuZGVkQm90dG9tID0gcm91bmRVcFRvTWFjcm9i
bG9ja011bHRpcGxlKGhlaWdodCkgLSBoZWlnaHQ7CisKKyAgICAgICAgICAgIGlmICgoSU9TdXJm
YWNlR2V0Qnl0ZXNQZXJSb3dPZlBsYW5lKHN1cmZhY2UsIDApID49IHdpZHRoICsgZXh0ZW5kZWRS
aWdodCkKKyAgICAgICAgICAgICAgICAmJiAoSU9TdXJmYWNlR2V0Qnl0ZXNQZXJSb3dPZlBsYW5l
KHN1cmZhY2UsIDEpID49IHdpZHRoICsgZXh0ZW5kZWRSaWdodCkKKyAgICAgICAgICAgICAgICAm
JiAoSU9TdXJmYWNlR2V0QWxsb2NTaXplKHN1cmZhY2UpID49IChoZWlnaHQgKyBleHRlbmRlZEJv
dHRvbSkgKiBJT1N1cmZhY2VHZXRCeXRlc1BlclJvd09mUGxhbmUoc3VyZmFjZSwgMCkgKiAzIC8g
MikpIHsKKyAgICAgICAgICAgICAgICBhdXRvIGNmSW50ID0gYWRvcHRDRihDRk51bWJlckNyZWF0
ZShudWxscHRyLCAga0NGTnVtYmVySW50VHlwZSwgICZleHRlbmRlZFJpZ2h0KSk7CisgICAgICAg
ICAgICAgICAgQ0ZEaWN0aW9uYXJ5U2V0VmFsdWUobV9idWZmZXJBdHRyaWJ1dGVzLmdldCgpLCBr
Q1ZQaXhlbEJ1ZmZlckV4dGVuZGVkUGl4ZWxzUmlnaHRLZXksIGNmSW50LmdldCgpKTsKKyAgICAg
ICAgICAgICAgICBjZkludCA9IGFkb3B0Q0YoQ0ZOdW1iZXJDcmVhdGUobnVsbHB0ciwgIGtDRk51
bWJlckludFR5cGUsICAmZXh0ZW5kZWRCb3R0b20pKTsKKyAgICAgICAgICAgICAgICBDRkRpY3Rp
b25hcnlTZXRWYWx1ZShtX2J1ZmZlckF0dHJpYnV0ZXMuZ2V0KCksIGtDVlBpeGVsQnVmZmVyRXh0
ZW5kZWRQaXhlbHNCb3R0b21LZXksIGNmSW50LmdldCgpKTsKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgfQorCisgICAgICAgIENGRGljdGlvbmFyeVNldFZhbHVlKG1fYnVmZmVyQXR0cmlidXRlcy5n
ZXQoKSwga0NWUGl4ZWxCdWZmZXJPcGVuR0xDb21wYXRpYmlsaXR5S2V5LCBrQ0ZCb29sZWFuVHJ1
ZSk7CisgICAgfQorCisgICAgQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlcjsKKyAgICBhdXRv
IHN0YXR1cyA9IENWUGl4ZWxCdWZmZXJDcmVhdGVXaXRoSU9TdXJmYWNlKGtDRkFsbG9jYXRvckRl
ZmF1bHQsIHN1cmZhY2UsIG1fYnVmZmVyQXR0cmlidXRlcy5nZXQoKSwgJnBpeGVsQnVmZmVyKTsK
KyAgICBpZiAoc3RhdHVzKSB7CisgICAgICAgIFJFTEVBU0VfTE9HKE1lZGlhLCAiQ1ZQaXhlbEJ1
ZmZlckNyZWF0ZVdpdGhJT1N1cmZhY2UgZmFpbGVkIHdpdGggZXJyb3IgY29kZTogJWQiLCBzdGF0
aWNfY2FzdDxpbnQ+KHN0YXR1cykpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisK
KyAgICByZXR1cm4gYWRvcHRDRihwaXhlbEJ1ZmZlcik7Cit9CisjZW5kaWYKKwogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9EaXNwbGF5Q2FwdHVy
ZVNvdXJjZUNvY29hLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMv
RGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYS5oCmluZGV4IDhiMmJjZWZmZTk2ZmI4NWUxNjE0Zjk5
Y2QyNmUyMmVjNjJjMmIwMTMuLjc4NzdlMGJhYzQ5MGNiMGRmMzJkZTE5MWVjODViNTk1NTNlZjJh
MTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9E
aXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbWFjL0Rpc3BsYXlDYXB0dXJlU291cmNlQ29jb2EuaApAQCAtNTUsNiArNTUs
MTIgQEAgcHJvdGVjdGVkOgogCiAgICAgU2Vjb25kcyBlbGFwc2VkVGltZSgpOwogICAgIGJvb2wg
YXBwbHlGcmFtZVJhdGUoZG91YmxlKSBvdmVycmlkZTsKKyAgICBib29sIGFwcGx5U2l6ZShjb25z
dCBJbnRTaXplJikgb3ZlcnJpZGU7CisKKyAgICBSZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJSZWY+
IHNhbXBsZUJ1ZmZlckZyb21QaXhlbEJ1ZmZlcihDVlBpeGVsQnVmZmVyUmVmKTsKKyNpZiBIQVZF
KElPU1VSRkFDRSkKKyAgICBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gcGl4ZWxCdWZmZXJG
cm9tSU9TdXJmYWNlKElPU3VyZmFjZVJlZik7CisjZW5kaWYKIAogcHJpdmF0ZToKIApAQCAtNzMs
NiArNzksNyBAQCBwcml2YXRlOgogICAgIE1vbm90b25pY1RpbWUgbV9zdGFydFRpbWUgeyBNb25v
dG9uaWNUaW1lOjpuYW4oKSB9OwogICAgIFNlY29uZHMgbV9lbGFwc2VkVGltZSB7IDBfcyB9Owog
CisgICAgUmV0YWluUHRyPENGTXV0YWJsZURpY3Rpb25hcnlSZWY+IG1fYnVmZmVyQXR0cmlidXRl
czsKICAgICBSdW5Mb29wOjpUaW1lcjxEaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hPiBtX3RpbWVy
OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
bWFjL1NjcmVlbkRpc3BsYXlDYXB0dXJlU291cmNlTWFjLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9tYWMvU2NyZWVuRGlzcGxheUNhcHR1cmVTb3VyY2VNYWMuaAppbmRl
eCAzZGIyNzBmZWE0NDFlYzU3MzZmZDdmOTA3MzI3Y2NiM2VkOTQ1MTM3Li5kMjZhMjk0ZTM2ZTc5
ZThhM2ExMTk1MGUyYWYxODg3YzgxMjc0NzlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvU2NyZWVuRGlzcGxheUNhcHR1cmVTb3VyY2VNYWMuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvU2NyZWVuRGlzcGxh
eUNhcHR1cmVTb3VyY2VNYWMuaApAQCAtMzMsNyArMzMsNiBAQAogI2luY2x1ZGUgPENvcmVHcmFw
aGljcy9DR0Rpc3BsYXlTdHJlYW0uaD4KICNpbmNsdWRlIDx3dGYvTG9jay5oPgogI2luY2x1ZGUg
PHd0Zi9PU09iamVjdFB0ci5oPgotI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKIHR5cGVkZWYg
c3RydWN0IF9fQ1ZCdWZmZXIgKkNWUGl4ZWxCdWZmZXJSZWY7CiB0eXBlZGVmIHN0cnVjdCBvcGFx
dWVDTVNhbXBsZUJ1ZmZlciAqQ01TYW1wbGVCdWZmZXJSZWY7CkBAIC00NCw5ICs0Myw4IEBAIGNs
YXNzIFNjcmVlbkRpc3BsYXlDYXB0dXJlU291cmNlTWFjIDogcHVibGljIERpc3BsYXlDYXB0dXJl
U291cmNlQ29jb2EgewogcHVibGljOgogICAgIHN0YXRpYyBDYXB0dXJlU291cmNlT3JFcnJvciBj
cmVhdGUoY29uc3QgU3RyaW5nJiwgY29uc3QgTWVkaWFDb25zdHJhaW50cyopOwogCi0gICAgV0VC
Q09SRV9FWFBPUlQgc3RhdGljIFZpZGVvQ2FwdHVyZUZhY3RvcnkmIGZhY3RvcnkoKTsKLQotICAg
IFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPENHRGlyZWN0RGlzcGxheUlEPiB1
cGRhdGVEaXNwbGF5SUQoQ0dEaXJlY3REaXNwbGF5SUQpOworICAgIHN0YXRpYyBzdGQ6Om9wdGlv
bmFsPENhcHR1cmVEZXZpY2U+IHNjcmVlbkNhcHR1cmVEZXZpY2VXaXRoUGVyc2lzdGVudElEKGNv
bnN0IFN0cmluZyYpOworICAgIHN0YXRpYyB2b2lkIHNjcmVlbkNhcHR1cmVEZXZpY2VzKFZlY3Rv
cjxDYXB0dXJlRGV2aWNlPiYpOwogCiBwcml2YXRlOgogICAgIFNjcmVlbkRpc3BsYXlDYXB0dXJl
U291cmNlTWFjKHVpbnQzMl90KTsKQEAgLTY1LDggKzYzLDYgQEAgcHJpdmF0ZToKICAgICBib29s
IGFwcGx5RnJhbWVSYXRlKGRvdWJsZSkgZmluYWw7CiAgICAgdm9pZCBjb21taXRDb25maWd1cmF0
aW9uKCkgZmluYWw7CiAKLSAgICBSZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJSZWY+IHNhbXBsZUJ1
ZmZlckZyb21QaXhlbEJ1ZmZlcihDVlBpeGVsQnVmZmVyUmVmKTsKLSAgICBSZXRhaW5QdHI8Q1ZQ
aXhlbEJ1ZmZlclJlZj4gcGl4ZWxCdWZmZXJGcm9tSU9TdXJmYWNlKElPU3VyZmFjZVJlZik7CiAg
ICAgYm9vbCBjcmVhdGVEaXNwbGF5U3RyZWFtKCk7CiAgICAgdm9pZCBzdGFydERpc3BsYXlTdHJl
YW0oKTsKICAgICAKQEAgLTk4LDE0ICs5NCwxMCBAQCBwcml2YXRlOgogICAgIG11dGFibGUgTG9j
ayBtX2N1cnJlbnRGcmFtZU11dGV4OwogICAgIERpc3BsYXlTdXJmYWNlIG1fY3VycmVudEZyYW1l
OwogICAgIFJldGFpblB0cjxDR0Rpc3BsYXlTdHJlYW1SZWY+IG1fZGlzcGxheVN0cmVhbTsKLSAg
ICBSZXRhaW5QdHI8Q0ZNdXRhYmxlRGljdGlvbmFyeVJlZj4gbV9idWZmZXJBdHRyaWJ1dGVzOwog
ICAgIENHRGlzcGxheVN0cmVhbUZyYW1lQXZhaWxhYmxlSGFuZGxlciBtX2ZyYW1lQXZhaWxhYmxl
QmxvY2s7Ci0gICAgTWVkaWFUaW1lIG1fcHJlc2VudGF0aW9uVGltZVN0YW1wOwotICAgIE1lZGlh
VGltZSBtX2ZyYW1lRHVyYXRpb247CiAKICAgICBPU09iamVjdFB0cjxkaXNwYXRjaF9xdWV1ZV90
PiBtX2NhcHR1cmVRdWV1ZTsKIAotICAgIE1vbm90b25pY1RpbWUgbV9sYXN0RnJhbWVUaW1lIHsg
TW9ub3RvbmljVGltZTo6bmFuKCkgfTsKICAgICB1aW50MzJfdCBtX2Rpc3BsYXlJRCB7IDAgfTsK
ICAgICBib29sIG1faXNSdW5uaW5nIHsgZmFsc2UgfTsKICAgICBib29sIG1fb2JzZXJ2aW5nRGlz
cGxheUNoYW5nZXMgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vbWFjL1NjcmVlbkRpc3BsYXlDYXB0dXJlU291cmNlTWFjLm1tIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1NjcmVlbkRpc3BsYXlDYXB0dXJl
U291cmNlTWFjLm1tCmluZGV4IDM2ZDFlODRhYWJiYjJmZmNmM2FhZGZjMWRmYjRjNjAxZDViNDFi
ZWEuLmIxN2U3YzJiNDVlMGQ5MDUyM2EyYzQyMmM2ZThjY2U3NzcxYmIyZDggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9TY3JlZW5EaXNwbGF5Q2Fw
dHVyZVNvdXJjZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9tYWMvU2NyZWVuRGlzcGxheUNhcHR1cmVTb3VyY2VNYWMubW0KQEAgLTQ2LDEyICs0Niw3IEBA
IHNpemVfdCBDR0Rpc3BsYXlNb2RlR2V0UGl4ZWxzSGlnaChDR0Rpc3BsYXlNb2RlUmVmKTsKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCi1zdGF0aWMgaW50MzJfdCByb3VuZFVwVG9NYWNyb2Jsb2Nr
TXVsdGlwbGUoaW50MzJfdCBzaXplKQotewotICAgIHJldHVybiAoc2l6ZSArIDE1KSAmIH4xNTsK
LX0KLQotc3RkOjpvcHRpb25hbDxDR0RpcmVjdERpc3BsYXlJRD4gU2NyZWVuRGlzcGxheUNhcHR1
cmVTb3VyY2VNYWM6OnVwZGF0ZURpc3BsYXlJRChDR0RpcmVjdERpc3BsYXlJRCBkaXNwbGF5SUQp
CitzdGF0aWMgc3RkOjpvcHRpb25hbDxDR0RpcmVjdERpc3BsYXlJRD4gdXBkYXRlRGlzcGxheUlE
KENHRGlyZWN0RGlzcGxheUlEIGRpc3BsYXlJRCkKIHsKICAgICB1aW50MzJfdCBkaXNwbGF5Q291
bnQgPSAwOwogICAgIGF1dG8gZXJyID0gQ0dHZXRBY3RpdmVEaXNwbGF5TGlzdCgwLCBudWxscHRy
LCAmZGlzcGxheUNvdW50KTsKQEAgLTEyNywxMSArMTIyLDEwIEBAIGJvb2wgU2NyZWVuRGlzcGxh
eUNhcHR1cmVTb3VyY2VNYWM6OmNyZWF0ZURpc3BsYXlTdHJlYW0oKQogCiAgICAgaWYgKG1fZGlz
cGxheUlEICE9IGFjdHVhbERpc3BsYXlJRC52YWx1ZSgpKSB7CiAgICAgICAgIG1fZGlzcGxheUlE
ID0gYWN0dWFsRGlzcGxheUlELnZhbHVlKCk7Ci0gICAgICAgIFJFTEVBU0VfTE9HKE1lZGlhLCAi
U2NyZWVuRGlzcGxheUNhcHR1cmVTb3VyY2VNYWM6OmNyZWF0ZSglcCksIGRpc3BsYXkgSUQgY2hh
bmdlZCB0byAlZCIsIHRoaXMsIHN0YXRpY19jYXN0PGludD4obV9kaXNwbGF5SUQpKTsKKyAgICAg
ICAgUkVMRUFTRV9MT0coTWVkaWEsICJTY3JlZW5EaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYzo6Y3Jl
YXRlRGlzcGxheVN0cmVhbSglcCksIGRpc3BsYXkgSUQgY2hhbmdlZCB0byAlZCIsIHRoaXMsIHN0
YXRpY19jYXN0PGludD4obV9kaXNwbGF5SUQpKTsKICAgICB9CiAKICAgICBpZiAoIW1fZGlzcGxh
eVN0cmVhbSkgewotCiAgICAgICAgIGlmIChzaXplKCkuaXNFbXB0eSgpKSB7CiAgICAgICAgICAg
ICBSZXRhaW5QdHI8Q0dEaXNwbGF5TW9kZVJlZj4gZGlzcGxheU1vZGUgPSBhZG9wdENGKENHRGlz
cGxheUNvcHlEaXNwbGF5TW9kZShtX2Rpc3BsYXlJRCkpOwogICAgICAgICAgICAgYXV0byBzY3Jl
ZW5XaWR0aCA9IENHRGlzcGxheU1vZGVHZXRQaXhlbHNXaWRlKGRpc3BsYXlNb2RlLmdldCgpKTsK
QEAgLTIxMyw2OSArMjA3LDYgQEAgdm9pZCBTY3JlZW5EaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYzo6
c3RvcFByb2R1Y2luZ0RhdGEoKQogICAgIG1faXNSdW5uaW5nID0gZmFsc2U7CiB9CiAKLVJldGFp
blB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4gU2NyZWVuRGlzcGxheUNhcHR1cmVTb3VyY2VNYWM6OnNh
bXBsZUJ1ZmZlckZyb21QaXhlbEJ1ZmZlcihDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyKQot
ewotICAgIGlmICghcGl4ZWxCdWZmZXIpCi0gICAgICAgIHJldHVybiBudWxscHRyOwotCi0gICAg
Q01UaW1lIHNhbXBsZVRpbWUgPSBDTVRpbWVNYWtlKCgoZWxhcHNlZFRpbWUoKSArIDEwMF9tcykg
KiAxMDApLnNlY29uZHMoKSwgMTAwKTsKLSAgICBDTVNhbXBsZVRpbWluZ0luZm8gdGltaW5nSW5m
byA9IHsga0NNVGltZUludmFsaWQsIHNhbXBsZVRpbWUsIHNhbXBsZVRpbWUgfTsKLQotICAgIENN
VmlkZW9Gb3JtYXREZXNjcmlwdGlvblJlZiBmb3JtYXREZXNjcmlwdGlvbiA9IG51bGxwdHI7Ci0g
ICAgYXV0byBzdGF0dXMgPSBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25DcmVhdGVGb3JJbWFnZUJ1
ZmZlcihrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAoQ1ZJbWFnZUJ1ZmZlclJlZilwaXhlbEJ1ZmZlciwg
JmZvcm1hdERlc2NyaXB0aW9uKTsKLSAgICBpZiAoc3RhdHVzKSB7Ci0gICAgICAgIFJFTEVBU0Vf
TE9HKE1lZGlhLCAiRmFpbGVkIHRvIGluaXRpYWxpemUgQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9u
IHdpdGggZXJyb3IgY29kZTogJWQiLCBzdGF0aWNfY2FzdDxpbnQ+KHN0YXR1cykpOwotICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKLSAgICB9Ci0KLSAgICBDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGVC
dWZmZXI7Ci0gICAgc3RhdHVzID0gQ01TYW1wbGVCdWZmZXJDcmVhdGVSZWFkeVdpdGhJbWFnZUJ1
ZmZlcihrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAoQ1ZJbWFnZUJ1ZmZlclJlZilwaXhlbEJ1ZmZlciwg
Zm9ybWF0RGVzY3JpcHRpb24sICZ0aW1pbmdJbmZvLCAmc2FtcGxlQnVmZmVyKTsKLSAgICBDRlJl
bGVhc2UoZm9ybWF0RGVzY3JpcHRpb24pOwotICAgIGlmIChzdGF0dXMpIHsKLSAgICAgICAgUkVM
RUFTRV9MT0coTWVkaWEsICJGYWlsZWQgdG8gaW5pdGlhbGl6ZSBDTVNhbXBsZUJ1ZmZlciB3aXRo
IGVycm9yIGNvZGU6ICVkIiwgc3RhdGljX2Nhc3Q8aW50PihzdGF0dXMpKTsKLSAgICAgICAgcmV0
dXJuIG51bGxwdHI7Ci0gICAgfQotCi0gICAgcmV0dXJuIGFkb3B0Q0Yoc2FtcGxlQnVmZmVyKTsK
LX0KLQotUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IFNjcmVlbkRpc3BsYXlDYXB0dXJlU291
cmNlTWFjOjpwaXhlbEJ1ZmZlckZyb21JT1N1cmZhY2UoSU9TdXJmYWNlUmVmIHN1cmZhY2UpCi17
Ci0gICAgaWYgKCFtX2J1ZmZlckF0dHJpYnV0ZXMpIHsKLSAgICAgICAgbV9idWZmZXJBdHRyaWJ1
dGVzID0gYWRvcHRDRihDRkRpY3Rpb25hcnlDcmVhdGVNdXRhYmxlKG51bGxwdHIsIDAsICZrQ0ZU
eXBlRGljdGlvbmFyeUtleUNhbGxCYWNrcywgJmtDRlR5cGVEaWN0aW9uYXJ5VmFsdWVDYWxsQmFj
a3MpKTsKLQotICAgICAgICBhdXRvIGZvcm1hdCA9IElPU3VyZmFjZUdldFBpeGVsRm9ybWF0KHN1
cmZhY2UpOwotICAgICAgICBpZiAoZm9ybWF0ID09IGtDVlBpeGVsRm9ybWF0VHlwZV80MjBZcENi
Q3I4QmlQbGFuYXJWaWRlb1JhbmdlIHx8IGZvcm1hdCA9PSBrQ1ZQaXhlbEZvcm1hdFR5cGVfNDIw
WXBDYkNyOEJpUGxhbmFyRnVsbFJhbmdlKSB7Ci0KLSAgICAgICAgICAgIC8vIElmIHRoZSB3aWR0
aCB4IGhlaWdodCBpc24ndCBhIG11bHRpcGxlIG9mIDE2IHggMTYgYW5kIHRoZSBzdXJmYWNlIGhh
cyBleHRyYSBtZW1vcnkgaW4gdGhlIHBsYW5lcywgc2V0IHBpeGVsIGJ1ZmZlciBhdHRyaWJ1dGVz
IHRvIHJlZmxlY3QgaXQuCi0gICAgICAgICAgICBhdXRvIHdpZHRoID0gSU9TdXJmYWNlR2V0V2lk
dGgoc3VyZmFjZSk7Ci0gICAgICAgICAgICBhdXRvIGhlaWdodCA9IElPU3VyZmFjZUdldEhlaWdo
dChzdXJmYWNlKTsKLSAgICAgICAgICAgIGludDMyX3QgZXh0ZW5kZWRSaWdodCA9IHJvdW5kVXBU
b01hY3JvYmxvY2tNdWx0aXBsZSh3aWR0aCkgLSB3aWR0aDsKLSAgICAgICAgICAgIGludDMyX3Qg
ZXh0ZW5kZWRCb3R0b20gPSByb3VuZFVwVG9NYWNyb2Jsb2NrTXVsdGlwbGUoaGVpZ2h0KSAtIGhl
aWdodDsKLQotICAgICAgICAgICAgaWYgKChJT1N1cmZhY2VHZXRCeXRlc1BlclJvd09mUGxhbmUo
c3VyZmFjZSwgMCkgPj0gd2lkdGggKyBleHRlbmRlZFJpZ2h0KQotICAgICAgICAgICAgICAgICYm
IChJT1N1cmZhY2VHZXRCeXRlc1BlclJvd09mUGxhbmUoc3VyZmFjZSwgMSkgPj0gd2lkdGggKyBl
eHRlbmRlZFJpZ2h0KQotICAgICAgICAgICAgICAgICYmIChJT1N1cmZhY2VHZXRBbGxvY1NpemUo
c3VyZmFjZSkgPj0gKGhlaWdodCArIGV4dGVuZGVkQm90dG9tKSAqIElPU3VyZmFjZUdldEJ5dGVz
UGVyUm93T2ZQbGFuZShzdXJmYWNlLCAwKSAqIDMgLyAyKSkgewotICAgICAgICAgICAgICAgICAg
ICBhdXRvIGNmSW50ID0gYWRvcHRDRihDRk51bWJlckNyZWF0ZShudWxscHRyLCAga0NGTnVtYmVy
SW50VHlwZSwgICZleHRlbmRlZFJpZ2h0KSk7Ci0gICAgICAgICAgICAgICAgICAgIENGRGljdGlv
bmFyeVNldFZhbHVlKG1fYnVmZmVyQXR0cmlidXRlcy5nZXQoKSwga0NWUGl4ZWxCdWZmZXJFeHRl
bmRlZFBpeGVsc1JpZ2h0S2V5LCBjZkludC5nZXQoKSk7Ci0gICAgICAgICAgICAgICAgICAgIGNm
SW50ID0gYWRvcHRDRihDRk51bWJlckNyZWF0ZShudWxscHRyLCAga0NGTnVtYmVySW50VHlwZSwg
ICZleHRlbmRlZEJvdHRvbSkpOwotICAgICAgICAgICAgICAgICAgICBDRkRpY3Rpb25hcnlTZXRW
YWx1ZShtX2J1ZmZlckF0dHJpYnV0ZXMuZ2V0KCksIGtDVlBpeGVsQnVmZmVyRXh0ZW5kZWRQaXhl
bHNCb3R0b21LZXksIGNmSW50LmdldCgpKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotCi0g
ICAgICAgIENGRGljdGlvbmFyeVNldFZhbHVlKG1fYnVmZmVyQXR0cmlidXRlcy5nZXQoKSwga0NW
UGl4ZWxCdWZmZXJPcGVuR0xDb21wYXRpYmlsaXR5S2V5LCBrQ0ZCb29sZWFuVHJ1ZSk7Ci0gICAg
fQotCi0gICAgQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlcjsKLSAgICBhdXRvIHN0YXR1cyA9
IENWUGl4ZWxCdWZmZXJDcmVhdGVXaXRoSU9TdXJmYWNlKGtDRkFsbG9jYXRvckRlZmF1bHQsIHN1
cmZhY2UsIG1fYnVmZmVyQXR0cmlidXRlcy5nZXQoKSwgJnBpeGVsQnVmZmVyKTsKLSAgICBpZiAo
c3RhdHVzKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HKE1lZGlhLCAiRmFpbGVkIHRvIGluaXRpYWxp
emUgQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uIHdpdGggZXJyb3IgY29kZTogJWQiLCBzdGF0aWNf
Y2FzdDxpbnQ+KHN0YXR1cykpOwotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICB9Ci0KLSAg
ICByZXR1cm4gYWRvcHRDRihwaXhlbEJ1ZmZlcik7Ci19Ci0KIHZvaWQgU2NyZWVuRGlzcGxheUNh
cHR1cmVTb3VyY2VNYWM6OmdlbmVyYXRlRnJhbWUoKQogewogICAgIGlmICghbV9jdXJyZW50RnJh
bWUuaW9TdXJmYWNlKCkpCkBAIC0zMDYsNyArMjM3LDcgQEAgdm9pZCBTY3JlZW5EaXNwbGF5Q2Fw
dHVyZVNvdXJjZU1hYzo6c3RhcnREaXNwbGF5U3RyZWFtKCkKIAogICAgIGlmIChtX2Rpc3BsYXlJ
RCAhPSBhY3R1YWxEaXNwbGF5SUQudmFsdWUoKSkgewogICAgICAgICBtX2Rpc3BsYXlJRCA9IGFj
dHVhbERpc3BsYXlJRC52YWx1ZSgpOwotICAgICAgICBSRUxFQVNFX0xPRyhNZWRpYSwgIlNjcmVl
bkRpc3BsYXlDYXB0dXJlU291cmNlTWFjOjpjcmVhdGUoJXApLCBkaXNwbGF5IElEIGNoYW5nZWQg
dG8gJWQiLCB0aGlzLCBzdGF0aWNfY2FzdDxpbnQ+KG1fZGlzcGxheUlEKSk7CisgICAgICAgIFJF
TEVBU0VfTE9HKE1lZGlhLCAiU2NyZWVuRGlzcGxheUNhcHR1cmVTb3VyY2VNYWM6OnN0YXJ0RGlz
cGxheVN0cmVhbSglcCksIGRpc3BsYXkgSUQgY2hhbmdlZCB0byAlZCIsIHRoaXMsIHN0YXRpY19j
YXN0PGludD4obV9kaXNwbGF5SUQpKTsKICAgICB9CiAKICAgICBpZiAoIW1fZGlzcGxheVN0cmVh
bSAmJiAhY3JlYXRlRGlzcGxheVN0cmVhbSgpKQpAQCAtMzE0LDcgKzI0NSw3IEBAIHZvaWQgU2Ny
ZWVuRGlzcGxheUNhcHR1cmVTb3VyY2VNYWM6OnN0YXJ0RGlzcGxheVN0cmVhbSgpCiAKICAgICBh
dXRvIGVyciA9IENHRGlzcGxheVN0cmVhbVN0YXJ0KG1fZGlzcGxheVN0cmVhbS5nZXQoKSk7CiAg
ICAgaWYgKGVycikgewotICAgICAgICBSRUxFQVNFX0xPRyhNZWRpYSwgIlNjcmVlbkRpc3BsYXlD
YXB0dXJlU291cmNlTWFjOjpzdGFydFByb2R1Y2luZ0RhdGEoJXApLCBDR0Rpc3BsYXlTdHJlYW1T
dGFydCBmYWlsZWQgd2l0aCBlcnJvciAlZCIsIHRoaXMsIHN0YXRpY19jYXN0PGludD4oZXJyKSk7
CisgICAgICAgIFJFTEVBU0VfTE9HKE1lZGlhLCAiU2NyZWVuRGlzcGxheUNhcHR1cmVTb3VyY2VN
YWM6OnN0YXJ0RGlzcGxheVN0cmVhbSglcCksIENHRGlzcGxheVN0cmVhbVN0YXJ0IGZhaWxlZCB3
aXRoIGVycm9yICVkIiwgdGhpcywgc3RhdGljX2Nhc3Q8aW50PihlcnIpKTsKICAgICAgICAgY2Fw
dHVyZUZhaWxlZCgpOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMzI0LDIwICsyNTUsMTcg
QEAgdm9pZCBTY3JlZW5EaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYzo6c3RhcnREaXNwbGF5U3RyZWFt
KCkKIAogYm9vbCBTY3JlZW5EaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYzo6YXBwbHlTaXplKGNvbnN0
IEludFNpemUmIG5ld1NpemUpCiB7Ci0gICAgaWYgKHNpemUoKSA9PSBuZXdTaXplKQotICAgICAg
ICByZXR1cm4gdHJ1ZTsKKyAgICBpZiAoIURpc3BsYXlDYXB0dXJlU291cmNlQ29jb2E6OmFwcGx5
U2l6ZShuZXdTaXplKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgbV9idWZmZXJBdHRy
aWJ1dGVzID0gbnVsbHB0cjsKICAgICBtX2Rpc3BsYXlTdHJlYW0gPSBudWxscHRyOwogICAgIHJl
dHVybiB0cnVlOwogfQogCiBib29sIFNjcmVlbkRpc3BsYXlDYXB0dXJlU291cmNlTWFjOjphcHBs
eUZyYW1lUmF0ZShkb3VibGUgcmF0ZSkKIHsKLSAgICBpZiAoZnJhbWVSYXRlKCkgIT0gcmF0ZSkg
ewotICAgICAgICBtX2J1ZmZlckF0dHJpYnV0ZXMgPSBudWxscHRyOworICAgIGlmIChmcmFtZVJh
dGUoKSAhPSByYXRlKQogICAgICAgICBtX2Rpc3BsYXlTdHJlYW0gPSBudWxscHRyOwotICAgIH0K
IAogICAgIHJldHVybiBEaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hOjphcHBseUZyYW1lUmF0ZShy
YXRlKTsKIH0KQEAgLTM4NiwxMCArMzE0LDU3IEBAIHZvaWQgU2NyZWVuRGlzcGxheUNhcHR1cmVT
b3VyY2VNYWM6OmZyYW1lQXZhaWxhYmxlKENHRGlzcGxheVN0cmVhbUZyYW1lU3RhdHVzIHN0CiAg
ICAgICAgIHJldHVybjsKIAogICAgIExvY2tIb2xkZXIgbG9jayhtX2N1cnJlbnRGcmFtZU11dGV4
KTsKLSAgICBtX2xhc3RGcmFtZVRpbWUgPSBNb25vdG9uaWNUaW1lOjpub3coKTsKICAgICBtX2N1
cnJlbnRGcmFtZSA9IGZyYW1lU3VyZmFjZTsKIH0KIAorc3RkOjpvcHRpb25hbDxDYXB0dXJlRGV2
aWNlPiBTY3JlZW5EaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYzo6c2NyZWVuQ2FwdHVyZURldmljZVdp
dGhQZXJzaXN0ZW50SUQoY29uc3QgU3RyaW5nJiBkZXZpY2VJRCkKK3sKKyAgICBib29sIG9rOwor
ICAgIGF1dG8gZGlzcGxheUlEID0gZGV2aWNlSUQudG9VSW50U3RyaWN0KCZvayk7CisgICAgaWYg
KCFvaykgeworICAgICAgICBSRUxFQVNFX0xPRyhNZWRpYSwgIlNjcmVlbkRpc3BsYXlDYXB0dXJl
U291cmNlTWFjOjpzY3JlZW5DYXB0dXJlRGV2aWNlV2l0aFBlcnNpc3RlbnRJRDogZGlzcGxheSBJ
RCBkb2VzIG5vdCBjb252ZXJ0IHRvIDMyLWJpdCBpbnRlZ2VyIik7CisgICAgICAgIHJldHVybiBz
dGQ6Om51bGxvcHQ7CisgICAgfQorCisgICAgYXV0byBhY3R1YWxEaXNwbGF5SUQgPSB1cGRhdGVE
aXNwbGF5SUQoZGlzcGxheUlEKTsKKyAgICBpZiAoIWFjdHVhbERpc3BsYXlJRCkKKyAgICAgICAg
cmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIGF1dG8gZGV2aWNlID0gQ2FwdHVyZURldmljZShT
dHJpbmc6Om51bWJlcihhY3R1YWxEaXNwbGF5SUQudmFsdWUoKSksIENhcHR1cmVEZXZpY2U6OkRl
dmljZVR5cGU6OlNjcmVlbiwgIlNjcmVlbkNhcHR1cmVEZXZpY2UiX3MpOworICAgIGRldmljZS5z
ZXRFbmFibGVkKHRydWUpOworCisgICAgcmV0dXJuIGRldmljZTsKK30KKwordm9pZCBTY3JlZW5E
aXNwbGF5Q2FwdHVyZVNvdXJjZU1hYzo6c2NyZWVuQ2FwdHVyZURldmljZXMoVmVjdG9yPENhcHR1
cmVEZXZpY2U+JiBkaXNwbGF5cykKK3sKKyAgICB1aW50MzJfdCBkaXNwbGF5Q291bnQgPSAwOwor
ICAgIGF1dG8gZXJyID0gQ0dHZXRBY3RpdmVEaXNwbGF5TGlzdCgwLCBudWxscHRyLCAmZGlzcGxh
eUNvdW50KTsKKyAgICBpZiAoZXJyKSB7CisgICAgICAgIFJFTEVBU0VfTE9HKE1lZGlhLCAiQ0dH
ZXRBY3RpdmVEaXNwbGF5TGlzdCgpIHJldHVybmVkIGVycm9yICVkIHdoZW4gdHJ5aW5nIHRvIGdl
dCBkaXNwbGF5IGNvdW50IiwgKGludCllcnIpOworICAgICAgICByZXR1cm47CisgICAgfQorCisg
ICAgaWYgKCFkaXNwbGF5Q291bnQpIHsKKyAgICAgICAgUkVMRUFTRV9MT0coTWVkaWEsICJDR0dl
dEFjdGl2ZURpc3BsYXlMaXN0KCkgcmV0dXJuZWQgYSBkaXNwbGF5IGNvdW50IG9mIDAiKTsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKworICAgIENHRGlyZWN0RGlzcGxheUlEIGFjdGl2ZURpc3Bs
YXlzW2Rpc3BsYXlDb3VudF07CisgICAgZXJyID0gQ0dHZXRBY3RpdmVEaXNwbGF5TGlzdChkaXNw
bGF5Q291bnQsICYoYWN0aXZlRGlzcGxheXNbMF0pLCAmZGlzcGxheUNvdW50KTsKKyAgICBpZiAo
ZXJyKSB7CisgICAgICAgIFJFTEVBU0VfTE9HKE1lZGlhLCAiQ0dHZXRBY3RpdmVEaXNwbGF5TGlz
dCgpIHJldHVybmVkIGVycm9yICVkIHdoZW4gdHJ5aW5nIHRvIGdldCB0aGUgYWN0aXZlIGRpc3Bs
YXkgbGlzdCIsIChpbnQpZXJyKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGludCBj
b3VudCA9IDA7CisgICAgZm9yIChhdXRvIGRpc3BsYXlJRCA6IGFjdGl2ZURpc3BsYXlzKSB7Cisg
ICAgICAgIENhcHR1cmVEZXZpY2UgZGlzcGxheURldmljZShTdHJpbmc6Om51bWJlcihkaXNwbGF5
SUQpLCBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpTY3JlZW4sIG1ha2VTdHJpbmcoIlNjcmVl
biAiLCBTdHJpbmc6Om51bWJlcihjb3VudCsrKSkpOworICAgICAgICBkaXNwbGF5RGV2aWNlLnNl
dEVuYWJsZWQoQ0dEaXNwbGF5SURUb09wZW5HTERpc3BsYXlNYXNrKGRpc3BsYXlJRCkpOworICAg
ICAgICBkaXNwbGF5cy5hcHBlbmQoV1RGTW92ZShkaXNwbGF5RGV2aWNlKSk7CisgICAgfQorfQor
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFN
KSAmJiBQTEFURk9STShNQUMpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>345671</attachid>
            <date>2018-07-24 07:08:56 -0700</date>
            <delta_ts>2018-07-24 08:04:50 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-187905-20180724070855.patch</filename>
            <type>text/plain</type>
            <size>28422</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMzNTE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmMyNzdlNGNmZDJkODFm
N2Y0OWViMTVmMmE4ZjMyNDgxMmRjOTE5MC4uNTZhZGFkYzk3MDY4YWY5ZTVmMWViZDUzNzc0OTEz
YzBkNWVjYTRjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUzIEBACisyMDE4LTA3LTIzICBFcmlj
IENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtNZWRpYVN0cmVh
bV0gUmVzdHJ1Y3R1cmUgZ2V0RGlzcGxheU1lZGlhIGNsYXNzZXMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NzkwNQorCisgICAgICAgIFJldmlld2Vk
IGJ5IERlYW4gSmFja3Nvbi4KKworICAgICAgICBObyBuZXcgdGVzdHMsIG5vIGZ1bmN0aW9uYWwg
Y2hhbmdlcy4KKworICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL0NhcHR1cmVEZXZpY2VN
YW5hZ2VyLmg6CisgICAgICAgIChXZWJDb3JlOjpDYXB0dXJlRGV2aWNlTWFuYWdlcjo6cmVmcmVz
aENhcHR1cmVEZXZpY2VzKTogRGVsZXRlZCwgbm8gbmVlZCBmb3IgaXQgdG8gYmUgYSAKKyAgICAg
ICAgdmlydHVhbCBtZXRob2QuCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FW
Q2FwdHVyZURldmljZU1hbmFnZXIuaDoKKworICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFt
L2dzdHJlYW1lci9HU3RyZWFtZXJDYXB0dXJlRGV2aWNlTWFuYWdlci5oOiByZWZyZXNoQ2FwdHVy
ZURldmljZXMgaXMKKyAgICAgICAgbm8gbG9uZ2VyIHZpcnR1YWwuCisKKyAgICAgICAgKiBwbGF0
Zm9ybS9tZWRpYXN0cmVhbS9tYWMvRGlzcGxheUNhcHR1cmVNYW5hZ2VyQ29jb2EuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RGlzcGxheUNhcHR1cmVNYW5hZ2VyQ29jb2E6OmNhcHR1cmVEZXZpY2Vz
KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlDYXB0dXJlTWFuYWdlckNvY29hOjp1cGRhdGVE
aXNwbGF5Q2FwdHVyZURldmljZXMpOiBNb3ZlZCBmdW5jdGlvbmFsaXR5IAorICAgICAgICB0byBT
Y3JlZW5EaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYy4KKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlD
YXB0dXJlTWFuYWdlckNvY29hOjpzY3JlZW5DYXB0dXJlRGV2aWNlV2l0aFBlcnNpc3RlbnRJRCk6
IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6ZGlzcGxheVJlY29uZmlndXJhdGlvbkNhbGxCYWNr
KTogRGVsZXRlZCwgbW92ZWQgdG8gU2NyZWVuRGlzcGxheUNhcHR1cmVTb3VyY2VNYWMuCisgICAg
ICAgIChXZWJDb3JlOjpEaXNwbGF5Q2FwdHVyZU1hbmFnZXJDb2NvYTo6fkRpc3BsYXlDYXB0dXJl
TWFuYWdlckNvY29hKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlDYXB0dXJl
TWFuYWdlckNvY29hOjpyZWZyZXNoQ2FwdHVyZURldmljZXMpOiBEZWxldGVkLgorICAgICAgICAq
IHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9EaXNwbGF5Q2FwdHVyZU1hbmFnZXJDb2NvYS5oOgor
CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0Rpc3BsYXlDYXB0dXJlU291cmNl
Q29jb2EuY3BwOgorICAgICAgICAoV2ViQ29yZTo6cm91bmRVcFRvTWFjcm9ibG9ja011bHRpcGxl
KTogTW92ZWQgZnJvbSBTY3JlZW5EaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYy4KKyAgICAgICAgKFdl
YkNvcmU6OkRpc3BsYXlDYXB0dXJlU291cmNlQ29jb2E6OmFwcGx5U2l6ZSk6IERpdHRvLgorICAg
ICAgICAoV2ViQ29yZTo6RGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYTo6c2FtcGxlQnVmZmVyRnJv
bVBpeGVsQnVmZmVyKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5Q2FwdHVyZVNv
dXJjZUNvY29hOjpwaXhlbEJ1ZmZlckZyb21JT1N1cmZhY2UpOiBEaXR0by4KKyAgICAgICAgKiBw
bGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYS5oOgorCisg
ICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1NjcmVlbkRpc3BsYXlDYXB0dXJlU291
cmNlTWFjLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1NjcmVlbkRpc3Bs
YXlDYXB0dXJlU291cmNlTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6dXBkYXRlRGlzcGxheUlE
KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmVlbkRpc3BsYXlDYXB0dXJlU291cmNlTWFjOjpjcmVh
dGVEaXNwbGF5U3RyZWFtKTogRml4IGxvZyBtZXNzYWdlLgorICAgICAgICAoV2ViQ29yZTo6U2Ny
ZWVuRGlzcGxheUNhcHR1cmVTb3VyY2VNYWM6OnN0YXJ0RGlzcGxheVN0cmVhbSk6IERpdHRvLgor
ICAgICAgICAoV2ViQ29yZTo6U2NyZWVuRGlzcGxheUNhcHR1cmVTb3VyY2VNYWM6OmFwcGx5U2l6
ZSk6IFVwZGF0ZSBmb3IgYmFzZSBjbGFzcyBjaGFuZ2VzLgorICAgICAgICAoV2ViQ29yZTo6U2Ny
ZWVuRGlzcGxheUNhcHR1cmVTb3VyY2VNYWM6OmFwcGx5RnJhbWVSYXRlKTogRGl0dG8uCisgICAg
ICAgIChXZWJDb3JlOjpTY3JlZW5EaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYzo6ZnJhbWVBdmFpbGFi
bGUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlNjcmVlbkRpc3BsYXlDYXB0dXJlU291cmNl
TWFjOjpzY3JlZW5DYXB0dXJlRGV2aWNlV2l0aFBlcnNpc3RlbnRJRCk6IE1vdmVkIGZyb20KKyAg
ICAgICAgRGlzcGxheUNhcHR1cmVNYW5hZ2VyQ29jb2EuCisgICAgICAgIChXZWJDb3JlOjpTY3Jl
ZW5EaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYzo6c2NyZWVuQ2FwdHVyZURldmljZXMpOiBEaXR0by4K
KyAgICAgICAgKFdlYkNvcmU6OnJvdW5kVXBUb01hY3JvYmxvY2tNdWx0aXBsZSk6IE1vdmVkIHRv
IERpc3BsYXlDYXB0dXJlU291cmNlQ29jb2EuCisgICAgICAgIChXZWJDb3JlOjpTY3JlZW5EaXNw
bGF5Q2FwdHVyZVNvdXJjZU1hYzo6dXBkYXRlRGlzcGxheUlEKTogRGl0dG8uCisgICAgICAgIChX
ZWJDb3JlOjpTY3JlZW5EaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYzo6c2FtcGxlQnVmZmVyRnJvbVBp
eGVsQnVmZmVyKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpTY3JlZW5EaXNwbGF5Q2FwdHVy
ZVNvdXJjZU1hYzo6cGl4ZWxCdWZmZXJGcm9tSU9TdXJmYWNlKTogRGl0dG8uCisKIDIwMTgtMDct
MDUgIFNlcmdpbyBWaWxsYXIgU2VuaW4gIDxzdmlsbGFyQGlnYWxpYS5jb20+CiAKICAgICAgICAg
W1dlYlZSXSBGaXggVlJEaXNwbGF5RXZlbnQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL0NhcHR1cmVEZXZpY2VNYW5hZ2VyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9DYXB0dXJlRGV2aWNlTWFuYWdl
ci5oCmluZGV4IDVlNmJmOWZlYTYwYzI4MDY5NTFmZTc1YmI3MDE1NDA4N2VhNjgzOGIuLjQ1ZWRi
MzAwYzNiNzJlODc3MzQ1YzlmMDAyMzZmZDA2ZDM1NDljZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL0NhcHR1cmVEZXZpY2VNYW5hZ2VyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vQ2FwdHVyZURldmljZU1hbmFnZXIu
aApAQCAtNDIsOCArNDIsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBjb25zdCBWZWN0b3I8Q2Fw
dHVyZURldmljZT4mIGNhcHR1cmVEZXZpY2VzKCkgPSAwOwogICAgIHZpcnR1YWwgc3RkOjpvcHRp
b25hbDxDYXB0dXJlRGV2aWNlPiBjYXB0dXJlRGV2aWNlV2l0aFBlcnNpc3RlbnRJRChDYXB0dXJl
RGV2aWNlOjpEZXZpY2VUeXBlLCBjb25zdCBTdHJpbmcmKSB7IHJldHVybiBzdGQ6Om51bGxvcHQ7
IH0KIAotICAgIHZpcnR1YWwgdm9pZCByZWZyZXNoQ2FwdHVyZURldmljZXMoKSB7IH0KLQogcHJv
dGVjdGVkOgogICAgIHZpcnR1YWwgfkNhcHR1cmVEZXZpY2VNYW5hZ2VyKCk7CiAgICAgQ2FwdHVy
ZURldmljZSBjYXB0dXJlRGV2aWNlRnJvbVBlcnNpc3RlbnRJRChjb25zdCBTdHJpbmcmIGNhcHR1
cmVEZXZpY2VJRCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyQ2FwdHVyZURldmljZU1hbmFnZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJDYXB0dXJlRGV2
aWNlTWFuYWdlci5oCmluZGV4IDg2MzkyNDE0ZDAxMTY0ZTFkNmU4ODU0NTcwMDcwYjAxMGIxNTFk
ZjkuLmIxZmQ3ODI4ZDQxZmY2MzcyYWZmZTI5NTE1NTE1YmEzYTI5OTdmMTkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJD
YXB0dXJlRGV2aWNlTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJDYXB0dXJlRGV2aWNlTWFuYWdlci5oCkBAIC0zMywx
MiArMzMsMTIgQEAgY2xhc3MgR1N0cmVhbWVyQ2FwdHVyZURldmljZU1hbmFnZXIgOiBwdWJsaWMg
Q2FwdHVyZURldmljZU1hbmFnZXIgewogcHVibGljOgogICAgIHN0ZDo6b3B0aW9uYWw8R1N0cmVh
bWVyQ2FwdHVyZURldmljZT4gZ3N0cmVhbWVyRGV2aWNlV2l0aFVJRChjb25zdCBTdHJpbmcmKTsK
IAotICAgIHZvaWQgcmVmcmVzaENhcHR1cmVEZXZpY2VzKCkgZmluYWw7CiAgICAgY29uc3QgVmVj
dG9yPENhcHR1cmVEZXZpY2U+JiBjYXB0dXJlRGV2aWNlcygpIGZpbmFsOwogICAgIHZpcnR1YWwg
Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZSBkZXZpY2VUeXBlKCkgPSAwOwogCiBwcml2YXRlOgog
ICAgIHZvaWQgZGV2aWNlQWRkZWQoR1JlZlB0cjxHc3REZXZpY2U+JiYpOworICAgIHZvaWQgcmVm
cmVzaENhcHR1cmVEZXZpY2VzKCk7CiAKICAgICBHUmVmUHRyPEdzdERldmljZU1vbml0b3I+IG1f
ZGV2aWNlTW9uaXRvcjsKICAgICBWZWN0b3I8R1N0cmVhbWVyQ2FwdHVyZURldmljZT4gbV9nc3Ry
ZWFtZXJEZXZpY2VzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vbWFjL0FWQ2FwdHVyZURldmljZU1hbmFnZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL21hYy9BVkNhcHR1cmVEZXZpY2VNYW5hZ2VyLmgKaW5kZXggN2YwN2Rm
M2QxNzBkODdlZjYxNTBkNzNjODVmNzkzOGYwMWQ0OTgyYS4uYjIxY2E5YjkyYTI2NGQ4ODBhNGQy
N2E0NjgzNzg0NTFkMzcyZTMwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbWFjL0FWQ2FwdHVyZURldmljZU1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZDYXB0dXJlRGV2aWNlTWFuYWdlci5oCkBA
IC01OCw3ICs1OCw3IEBAIHByb3RlY3RlZDoKICAgICBBVkNhcHR1cmVEZXZpY2VNYW5hZ2VyKCk7
CiAgICAgfkFWQ2FwdHVyZURldmljZU1hbmFnZXIoKSBmaW5hbDsKIAotICAgIHZvaWQgcmVmcmVz
aENhcHR1cmVEZXZpY2VzKCkgZmluYWw7CisgICAgdm9pZCByZWZyZXNoQ2FwdHVyZURldmljZXMo
KTsKICAgICB2b2lkIHJlZ2lzdGVyRm9yRGV2aWNlTm90aWZpY2F0aW9ucygpOwogICAgIHZvaWQg
cmVmcmVzaEFWQ2FwdHVyZURldmljZXNPZlR5cGUoQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZSk7
CiAgICAgVmVjdG9yPENhcHR1cmVEZXZpY2U+JiBjYXB0dXJlRGV2aWNlc0ludGVybmFsKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvRGlzcGxh
eUNhcHR1cmVNYW5hZ2VyQ29jb2EuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vbWFjL0Rpc3BsYXlDYXB0dXJlTWFuYWdlckNvY29hLmNwcAppbmRleCBhYjVmYjA0ZTE3
OWRhMmU1YjExMDFjODVkOGU2ZWRmOTRkYmM3MTg5Li41YzJhOWQyNDE5OGExM2U0OGM0ZjczZTlk
ZTYxZGQzN2FkZTkyNTUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9tYWMvRGlzcGxheUNhcHR1cmVNYW5hZ2VyQ29jb2EuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9EaXNwbGF5Q2FwdHVyZU1hbmFnZXJDb2Nv
YS5jcHAKQEAgLTI5LDYgKzI5LDcgQEAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogCiAjaW5j
bHVkZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUgPHd0Zi9BbGdvcml0aG1zLmg+CiAjaW5jbHVkZSA8
d3RmL05ldmVyRGVzdHJveWVkLmg+CiAKICNpZiBQTEFURk9STShNQUMpCkBAIC0zOCwxMTQgKzM5
LDMyIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotI2lmIFBMQVRGT1JNKE1BQykKLXN0YXRp
YyB2b2lkIGRpc3BsYXlSZWNvbmZpZ3VyYXRpb25DYWxsQmFjayhDR0RpcmVjdERpc3BsYXlJRCwg
Q0dEaXNwbGF5Q2hhbmdlU3VtbWFyeUZsYWdzLCB2b2lkKiB1c2VySW5mbykKLXsKLSAgICBpZiAo
dXNlckluZm8pCi0gICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8RGlzcGxheUNhcHR1cmVNYW5hZ2Vy
Q29jb2EqPih1c2VySW5mbyktPnJlZnJlc2hDYXB0dXJlRGV2aWNlcygpOwotfQotI2VuZGlmCi0K
IERpc3BsYXlDYXB0dXJlTWFuYWdlckNvY29hJiBEaXNwbGF5Q2FwdHVyZU1hbmFnZXJDb2NvYTo6
c2luZ2xldG9uKCkKIHsKICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8RGlzcGxheUNhcHR1cmVN
YW5hZ2VyQ29jb2E+IG1hbmFnZXI7CiAgICAgcmV0dXJuIG1hbmFnZXIuZ2V0KCk7CiB9CiAKLURp
c3BsYXlDYXB0dXJlTWFuYWdlckNvY29hOjp+RGlzcGxheUNhcHR1cmVNYW5hZ2VyQ29jb2EoKQot
ewotI2lmIFBMQVRGT1JNKE1BQykKLSAgICBpZiAobV9vYnNlcnZpbmdEaXNwbGF5Q2hhbmdlcykK
LSAgICAgICAgQ0dEaXNwbGF5UmVtb3ZlUmVjb25maWd1cmF0aW9uQ2FsbGJhY2soZGlzcGxheVJl
Y29uZmlndXJhdGlvbkNhbGxCYWNrLCB0aGlzKTsKLSNlbmRpZgotfQotCiBjb25zdCBWZWN0b3I8
Q2FwdHVyZURldmljZT4mIERpc3BsYXlDYXB0dXJlTWFuYWdlckNvY29hOjpjYXB0dXJlRGV2aWNl
cygpCiB7Ci0gICAgc3RhdGljIGJvb2wgaW5pdGlhbGl6ZWQ7Ci0gICAgaWYgKCFpbml0aWFsaXpl
ZCkgewotICAgICAgICByZWZyZXNoQ2FwdHVyZURldmljZXMoKTsKKyAgICBtX2RldmljZXMuY2xl
YXIoKTsKIAotI2lmIFBMQVRGT1JNKE1BQykKLSAgICAgICAgQ0dEaXNwbGF5UmVnaXN0ZXJSZWNv
bmZpZ3VyYXRpb25DYWxsYmFjayhkaXNwbGF5UmVjb25maWd1cmF0aW9uQ2FsbEJhY2ssIHRoaXMp
OwotI2VuZGlmCisgICAgdXBkYXRlRGlzcGxheUNhcHR1cmVEZXZpY2VzKCk7CiAKLSAgICAgICAg
bV9vYnNlcnZpbmdEaXNwbGF5Q2hhbmdlcyA9IHRydWU7Ci0gICAgICAgIGluaXRpYWxpemVkID0g
dHJ1ZTsKLSAgICB9OwotICAgIAotICAgIHJldHVybiBtX2Rpc3BsYXlzOworICAgIHJldHVybiBt
X2RldmljZXM7CiB9CiAKLXZvaWQgRGlzcGxheUNhcHR1cmVNYW5hZ2VyQ29jb2E6OnJlZnJlc2hD
YXB0dXJlRGV2aWNlcygpCit2b2lkIERpc3BsYXlDYXB0dXJlTWFuYWdlckNvY29hOjp1cGRhdGVE
aXNwbGF5Q2FwdHVyZURldmljZXMoKQogewogI2lmIFBMQVRGT1JNKE1BQykKLSAgICB1aW50MzJf
dCBkaXNwbGF5Q291bnQgPSAwOwotICAgIGF1dG8gZXJyID0gQ0dHZXRBY3RpdmVEaXNwbGF5TGlz
dCgwLCBudWxscHRyLCAmZGlzcGxheUNvdW50KTsKLSAgICBpZiAoZXJyKSB7Ci0gICAgICAgIFJF
TEVBU0VfTE9HKE1lZGlhLCAiQ0dHZXRBY3RpdmVEaXNwbGF5TGlzdCgpIHJldHVybmVkIGVycm9y
ICVkIHdoZW4gdHJ5aW5nIHRvIGdldCBkaXNwbGF5IGNvdW50IiwgKGludCllcnIpOwotICAgICAg
ICByZXR1cm47Ci0gICAgfQotCi0gICAgaWYgKCFkaXNwbGF5Q291bnQpIHsKLSAgICAgICAgUkVM
RUFTRV9MT0coTWVkaWEsICJDR0dldEFjdGl2ZURpc3BsYXlMaXN0KCkgcmV0dXJuZWQgYSBkaXNw
bGF5IGNvdW50IG9mIDAiKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIENHRGlyZWN0
RGlzcGxheUlEIGFjdGl2ZURpc3BsYXlzW2Rpc3BsYXlDb3VudF07Ci0gICAgZXJyID0gQ0dHZXRB
Y3RpdmVEaXNwbGF5TGlzdChkaXNwbGF5Q291bnQsICYoYWN0aXZlRGlzcGxheXNbMF0pLCAmZGlz
cGxheUNvdW50KTsKLSAgICBpZiAoZXJyKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HKE1lZGlhLCAi
Q0dHZXRBY3RpdmVEaXNwbGF5TGlzdCgpIHJldHVybmVkIGVycm9yICVkIHdoZW4gdHJ5aW5nIHRv
IGdldCB0aGUgYWN0aXZlIGRpc3BsYXkgbGlzdCIsIChpbnQpZXJyKTsKLSAgICAgICAgcmV0dXJu
OwotICAgIH0KLQotICAgIGJvb2wgaGF2ZURldmljZUNoYW5nZXMgPSBmYWxzZTsKLSAgICBmb3Ig
KGF1dG8gZGlzcGxheUlEIDogYWN0aXZlRGlzcGxheXMpIHsKLSAgICAgICAgaWYgKHN0ZDo6YW55
X29mKG1fZGlzcGxheXNJbnRlcm5hbC5iZWdpbigpLCBtX2Rpc3BsYXlzSW50ZXJuYWwuZW5kKCks
IFtkaXNwbGF5SURdKGF1dG8mIGRldmljZSkgeyByZXR1cm4gZGV2aWNlLmNnRGlyZWN0RGlzcGxh
eUlEID09IGRpc3BsYXlJRDsgfSkpCi0gICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgaGF2
ZURldmljZUNoYW5nZXMgPSB0cnVlOwotICAgICAgICBtX2Rpc3BsYXlzSW50ZXJuYWwuYXBwZW5k
KHsgZGlzcGxheUlELCBDR0Rpc3BsYXlJRFRvT3BlbkdMRGlzcGxheU1hc2soZGlzcGxheUlEKSB9
KTsKLSAgICB9Ci0KLSAgICBmb3IgKGF1dG8mIGRpc3BsYXkgOiBtX2Rpc3BsYXlzSW50ZXJuYWwp
IHsKLSAgICAgICAgYXV0byBkaXNwbGF5TWFzayA9IENHRGlzcGxheUlEVG9PcGVuR0xEaXNwbGF5
TWFzayhkaXNwbGF5LmNnRGlyZWN0RGlzcGxheUlEKTsKLSAgICAgICAgaWYgKGRpc3BsYXkuY2dP
cGVuR0xEaXNwbGF5TWFzayAhPSBkaXNwbGF5TWFzaykgewotICAgICAgICAgICAgZGlzcGxheS5j
Z09wZW5HTERpc3BsYXlNYXNrID0gZGlzcGxheU1hc2s7Ci0gICAgICAgICAgICBoYXZlRGV2aWNl
Q2hhbmdlcyA9IHRydWU7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBpZiAoIWhhdmVEZXZpY2VD
aGFuZ2VzKQotICAgICAgICByZXR1cm47Ci0KLSAgICBpbnQgY291bnQgPSAwOwotICAgIG1fZGlz
cGxheXMgPSBWZWN0b3I8Q2FwdHVyZURldmljZT4oKTsKLSAgICBmb3IgKGF1dG8mIGRldmljZSA6
IG1fZGlzcGxheXNJbnRlcm5hbCkgewotICAgICAgICBDYXB0dXJlRGV2aWNlIGRpc3BsYXlEZXZp
Y2UoU3RyaW5nOjpudW1iZXIoZGV2aWNlLmNnRGlyZWN0RGlzcGxheUlEKSwgQ2FwdHVyZURldmlj
ZTo6RGV2aWNlVHlwZTo6U2NyZWVuLCBtYWtlU3RyaW5nKCJTY3JlZW4gIiwgU3RyaW5nOjpudW1i
ZXIoY291bnQrKykpKTsKLSAgICAgICAgZGlzcGxheURldmljZS5zZXRFbmFibGVkKGRldmljZS5j
Z09wZW5HTERpc3BsYXlNYXNrKTsKLSAgICAgICAgbV9kaXNwbGF5cy5hcHBlbmQoV1RGTW92ZShk
aXNwbGF5RGV2aWNlKSk7Ci0gICAgfQorICAgIFNjcmVlbkRpc3BsYXlDYXB0dXJlU291cmNlTWFj
OjpzY3JlZW5DYXB0dXJlRGV2aWNlcyhtX2RldmljZXMpOwogI2VuZGlmCiB9CiAKIHN0ZDo6b3B0
aW9uYWw8Q2FwdHVyZURldmljZT4gRGlzcGxheUNhcHR1cmVNYW5hZ2VyQ29jb2E6OnNjcmVlbkNh
cHR1cmVEZXZpY2VXaXRoUGVyc2lzdGVudElEKGNvbnN0IFN0cmluZyYgZGV2aWNlSUQpCiB7CiAj
aWYgUExBVEZPUk0oTUFDKQotICAgIGJvb2wgb2s7Ci0gICAgYXV0byBkaXNwbGF5SUQgPSBkZXZp
Y2VJRC50b1VJbnRTdHJpY3QoJm9rKTsKLSAgICBpZiAoIW9rKSB7Ci0gICAgICAgIFJFTEVBU0Vf
TE9HKE1lZGlhLCAiRGlzcGxheSBJRCBkb2VzIG5vdCBjb252ZXJ0IHRvIDMyLWJpdCBpbnRlZ2Vy
Iik7Ci0gICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0gICAgfQotCi0gICAgYXV0byBhY3R1
YWxEaXNwbGF5SUQgPSBTY3JlZW5EaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYzo6dXBkYXRlRGlzcGxh
eUlEKGRpc3BsYXlJRCk7Ci0gICAgaWYgKCFhY3R1YWxEaXNwbGF5SUQpCi0gICAgICAgIHJldHVy
biBzdGQ6Om51bGxvcHQ7Ci0KLSAgICBhdXRvIGRldmljZSA9IENhcHR1cmVEZXZpY2UoU3RyaW5n
OjpudW1iZXIoYWN0dWFsRGlzcGxheUlELnZhbHVlKCkpLCBDYXB0dXJlRGV2aWNlOjpEZXZpY2VU
eXBlOjpTY3JlZW4sICJTY3JlZW5DYXB0dXJlRGV2aWNlIl9zKTsKLSAgICBkZXZpY2Uuc2V0RW5h
YmxlZCh0cnVlKTsKLQotICAgIHJldHVybiBkZXZpY2U7CisgICAgcmV0dXJuIFNjcmVlbkRpc3Bs
YXlDYXB0dXJlU291cmNlTWFjOjpzY3JlZW5DYXB0dXJlRGV2aWNlV2l0aFBlcnNpc3RlbnRJRChk
ZXZpY2VJRCk7CiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTShkZXZpY2VJRCk7CiAgICAgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL21hYy9EaXNwbGF5Q2FwdHVyZU1hbmFnZXJDb2NvYS5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0Rpc3BsYXlDYXB0dXJlTWFuYWdlckNvY29hLmgKaW5k
ZXggZDc2Mjg2NGYyZTQyNGY3ZmY1OWM4YjVlMjVmYTYzYzRjNmE0ZTU0Zi4uNjhjZWU2MDdmYTNj
Njg3Y2E5NmUwZWFjYTZjNTk3MDBmODRhMTNiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0Rpc3BsYXlDYXB0dXJlTWFuYWdlckNvY29hLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0Rpc3BsYXlDYXB0dXJl
TWFuYWdlckNvY29hLmgKQEAgLTM0LDI0ICszNCwyMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBj
bGFzcyBEaXNwbGF5Q2FwdHVyZU1hbmFnZXJDb2NvYSBmaW5hbCA6IHB1YmxpYyBDYXB0dXJlRGV2
aWNlTWFuYWdlciB7CiBwdWJsaWM6CiAgICAgc3RhdGljIERpc3BsYXlDYXB0dXJlTWFuYWdlckNv
Y29hJiBzaW5nbGV0b24oKTsKLSAgICBEaXNwbGF5Q2FwdHVyZU1hbmFnZXJDb2NvYSgpID0gZGVm
YXVsdDsKIAotICAgIHZvaWQgcmVmcmVzaENhcHR1cmVEZXZpY2VzKCkgZmluYWw7CisgICAgRGlz
cGxheUNhcHR1cmVNYW5hZ2VyQ29jb2EoKSA9IGRlZmF1bHQ7CiAKIHByaXZhdGU6Ci0gICAgdmly
dHVhbCB+RGlzcGxheUNhcHR1cmVNYW5hZ2VyQ29jb2EoKTsKKyAgICB2aXJ0dWFsIH5EaXNwbGF5
Q2FwdHVyZU1hbmFnZXJDb2NvYSgpID0gZGVmYXVsdDsKKworICAgIHZvaWQgdXBkYXRlRGlzcGxh
eUNhcHR1cmVEZXZpY2VzKCk7CiAKICAgICBjb25zdCBWZWN0b3I8Q2FwdHVyZURldmljZT4mIGNh
cHR1cmVEZXZpY2VzKCkgZmluYWw7CisKICAgICBzdGQ6Om9wdGlvbmFsPENhcHR1cmVEZXZpY2U+
IGNhcHR1cmVEZXZpY2VXaXRoUGVyc2lzdGVudElEKENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGUs
IGNvbnN0IFN0cmluZyYpIGZpbmFsOwogICAgIHN0ZDo6b3B0aW9uYWw8Q2FwdHVyZURldmljZT4g
c2NyZWVuQ2FwdHVyZURldmljZVdpdGhQZXJzaXN0ZW50SUQoY29uc3QgU3RyaW5nJik7CiAKLSAg
ICBzdHJ1Y3QgQ0dEaXNwbGF5Q2FwdHVyZURldmljZSB7Ci0gICAgICAgIHVpbnQzMl90IGNnRGly
ZWN0RGlzcGxheUlEOwotICAgICAgICB1aW50MzJfdCBjZ09wZW5HTERpc3BsYXlNYXNrOwotICAg
IH07Ci0gICAgVmVjdG9yPENHRGlzcGxheUNhcHR1cmVEZXZpY2U+IG1fZGlzcGxheXNJbnRlcm5h
bDsKLSAgICBWZWN0b3I8Q2FwdHVyZURldmljZT4gbV9kaXNwbGF5czsKLSAgICBib29sIG1fb2Jz
ZXJ2aW5nRGlzcGxheUNoYW5nZXMgeyBmYWxzZSB9OworICAgIFZlY3RvcjxDYXB0dXJlRGV2aWNl
PiBtX2RldmljZXM7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvRGlzcGxheUNhcHR1cmVTb3Vy
Y2VDb2NvYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvRGlz
cGxheUNhcHR1cmVTb3VyY2VDb2NvYS5jcHAKaW5kZXggYzYzNjBhNWI1YmM5MWY4NWM1ZWI4Njlk
MTYwYzA1NjcwYWQzYmIyNi4uNWYwMzNmMzhmYWZhZTk1NDhiZDU5OTVlZTFhMmIyNDQ1NGFhODVm
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0Rp
c3BsYXlDYXB0dXJlU291cmNlQ29jb2EuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL21hYy9EaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hLmNwcApAQCAtMTI3LDYg
KzEyNywxNSBAQCBTZWNvbmRzIERpc3BsYXlDYXB0dXJlU291cmNlQ29jb2E6OmVsYXBzZWRUaW1l
KCkKICAgICByZXR1cm4gbV9lbGFwc2VkVGltZSArIChNb25vdG9uaWNUaW1lOjpub3coKSAtIG1f
c3RhcnRUaW1lKTsKIH0KIAorYm9vbCBEaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hOjphcHBseVNp
emUoY29uc3QgSW50U2l6ZSYgbmV3U2l6ZSkKK3sKKyAgICBpZiAoc2l6ZSgpID09IG5ld1NpemUp
CisgICAgICAgIHJldHVybiB0cnVlOworCisgICAgbV9idWZmZXJBdHRyaWJ1dGVzID0gbnVsbHB0
cjsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogYm9vbCBEaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29h
OjphcHBseUZyYW1lUmF0ZShkb3VibGUgcmF0ZSkKIHsKICAgICBpZiAobV90aW1lci5pc0FjdGl2
ZSgpKQpAQCAtMTQzLDYgKzE1Miw3NiBAQCB2b2lkIERpc3BsYXlDYXB0dXJlU291cmNlQ29jb2E6
OmVtaXRGcmFtZSgpCiAgICAgZ2VuZXJhdGVGcmFtZSgpOwogfQogCitSZXRhaW5QdHI8Q01TYW1w
bGVCdWZmZXJSZWY+IERpc3BsYXlDYXB0dXJlU291cmNlQ29jb2E6OnNhbXBsZUJ1ZmZlckZyb21Q
aXhlbEJ1ZmZlcihDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyKQoreworICAgIGlmICghcGl4
ZWxCdWZmZXIpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgQ01UaW1lIHNhbXBsZVRp
bWUgPSBDTVRpbWVNYWtlKCgoZWxhcHNlZFRpbWUoKSArIDEwMF9tcykgKiAxMDApLnNlY29uZHMo
KSwgMTAwKTsKKyAgICBDTVNhbXBsZVRpbWluZ0luZm8gdGltaW5nSW5mbyA9IHsga0NNVGltZUlu
dmFsaWQsIHNhbXBsZVRpbWUsIHNhbXBsZVRpbWUgfTsKKworICAgIENNVmlkZW9Gb3JtYXREZXNj
cmlwdGlvblJlZiBmb3JtYXREZXNjcmlwdGlvbiA9IG51bGxwdHI7CisgICAgYXV0byBzdGF0dXMg
PSBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25DcmVhdGVGb3JJbWFnZUJ1ZmZlcihrQ0ZBbGxvY2F0
b3JEZWZhdWx0LCAoQ1ZJbWFnZUJ1ZmZlclJlZilwaXhlbEJ1ZmZlciwgJmZvcm1hdERlc2NyaXB0
aW9uKTsKKyAgICBpZiAoc3RhdHVzKSB7CisgICAgICAgIFJFTEVBU0VfTE9HKE1lZGlhLCAiRmFp
bGVkIHRvIGluaXRpYWxpemUgQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uIHdpdGggZXJyb3IgY29k
ZTogJWQiLCBzdGF0aWNfY2FzdDxpbnQ+KHN0YXR1cykpOworICAgICAgICByZXR1cm4gbnVsbHB0
cjsKKyAgICB9CisKKyAgICBDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGVCdWZmZXI7CisgICAgc3Rh
dHVzID0gQ01TYW1wbGVCdWZmZXJDcmVhdGVSZWFkeVdpdGhJbWFnZUJ1ZmZlcihrQ0ZBbGxvY2F0
b3JEZWZhdWx0LCAoQ1ZJbWFnZUJ1ZmZlclJlZilwaXhlbEJ1ZmZlciwgZm9ybWF0RGVzY3JpcHRp
b24sICZ0aW1pbmdJbmZvLCAmc2FtcGxlQnVmZmVyKTsKKyAgICBDRlJlbGVhc2UoZm9ybWF0RGVz
Y3JpcHRpb24pOworICAgIGlmIChzdGF0dXMpIHsKKyAgICAgICAgUkVMRUFTRV9MT0coTWVkaWEs
ICJGYWlsZWQgdG8gaW5pdGlhbGl6ZSBDTVNhbXBsZUJ1ZmZlciB3aXRoIGVycm9yIGNvZGU6ICVk
Iiwgc3RhdGljX2Nhc3Q8aW50PihzdGF0dXMpKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7Cisg
ICAgfQorCisgICAgcmV0dXJuIGFkb3B0Q0Yoc2FtcGxlQnVmZmVyKTsKK30KKworI2lmIEhBVkUo
SU9TVVJGQUNFKQorc3RhdGljIGludDMyX3Qgcm91bmRVcFRvTWFjcm9ibG9ja011bHRpcGxlKGlu
dDMyX3Qgc2l6ZSkKK3sKKyAgICByZXR1cm4gKHNpemUgKyAxNSkgJiB+MTU7Cit9CisKK1JldGFp
blB0cjxDVlBpeGVsQnVmZmVyUmVmPiBEaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hOjpwaXhlbEJ1
ZmZlckZyb21JT1N1cmZhY2UoSU9TdXJmYWNlUmVmIHN1cmZhY2UpCit7CisgICAgaWYgKCFtX2J1
ZmZlckF0dHJpYnV0ZXMpIHsKKyAgICAgICAgbV9idWZmZXJBdHRyaWJ1dGVzID0gYWRvcHRDRihD
RkRpY3Rpb25hcnlDcmVhdGVNdXRhYmxlKG51bGxwdHIsIDAsICZrQ0ZUeXBlRGljdGlvbmFyeUtl
eUNhbGxCYWNrcywgJmtDRlR5cGVEaWN0aW9uYXJ5VmFsdWVDYWxsQmFja3MpKTsKKworICAgICAg
ICBhdXRvIGZvcm1hdCA9IElPU3VyZmFjZUdldFBpeGVsRm9ybWF0KHN1cmZhY2UpOworICAgICAg
ICBpZiAoZm9ybWF0ID09IGtDVlBpeGVsRm9ybWF0VHlwZV80MjBZcENiQ3I4QmlQbGFuYXJWaWRl
b1JhbmdlIHx8IGZvcm1hdCA9PSBrQ1ZQaXhlbEZvcm1hdFR5cGVfNDIwWXBDYkNyOEJpUGxhbmFy
RnVsbFJhbmdlKSB7CisKKyAgICAgICAgICAgIC8vIElmIHRoZSB3aWR0aCB4IGhlaWdodCBpc24n
dCBhIG11bHRpcGxlIG9mIDE2IHggMTYgYW5kIHRoZSBzdXJmYWNlIGhhcyBleHRyYSBtZW1vcnkg
aW4gdGhlIHBsYW5lcywgc2V0IHBpeGVsIGJ1ZmZlciBhdHRyaWJ1dGVzIHRvIHJlZmxlY3QgaXQu
CisgICAgICAgICAgICBhdXRvIHdpZHRoID0gSU9TdXJmYWNlR2V0V2lkdGgoc3VyZmFjZSk7Cisg
ICAgICAgICAgICBhdXRvIGhlaWdodCA9IElPU3VyZmFjZUdldEhlaWdodChzdXJmYWNlKTsKKyAg
ICAgICAgICAgIGludDMyX3QgZXh0ZW5kZWRSaWdodCA9IHJvdW5kVXBUb01hY3JvYmxvY2tNdWx0
aXBsZSh3aWR0aCkgLSB3aWR0aDsKKyAgICAgICAgICAgIGludDMyX3QgZXh0ZW5kZWRCb3R0b20g
PSByb3VuZFVwVG9NYWNyb2Jsb2NrTXVsdGlwbGUoaGVpZ2h0KSAtIGhlaWdodDsKKworICAgICAg
ICAgICAgaWYgKChJT1N1cmZhY2VHZXRCeXRlc1BlclJvd09mUGxhbmUoc3VyZmFjZSwgMCkgPj0g
d2lkdGggKyBleHRlbmRlZFJpZ2h0KQorICAgICAgICAgICAgICAgICYmIChJT1N1cmZhY2VHZXRC
eXRlc1BlclJvd09mUGxhbmUoc3VyZmFjZSwgMSkgPj0gd2lkdGggKyBleHRlbmRlZFJpZ2h0KQor
ICAgICAgICAgICAgICAgICYmIChJT1N1cmZhY2VHZXRBbGxvY1NpemUoc3VyZmFjZSkgPj0gKGhl
aWdodCArIGV4dGVuZGVkQm90dG9tKSAqIElPU3VyZmFjZUdldEJ5dGVzUGVyUm93T2ZQbGFuZShz
dXJmYWNlLCAwKSAqIDMgLyAyKSkgeworICAgICAgICAgICAgICAgIGF1dG8gY2ZJbnQgPSBhZG9w
dENGKENGTnVtYmVyQ3JlYXRlKG51bGxwdHIsICBrQ0ZOdW1iZXJJbnRUeXBlLCAgJmV4dGVuZGVk
UmlnaHQpKTsKKyAgICAgICAgICAgICAgICBDRkRpY3Rpb25hcnlTZXRWYWx1ZShtX2J1ZmZlckF0
dHJpYnV0ZXMuZ2V0KCksIGtDVlBpeGVsQnVmZmVyRXh0ZW5kZWRQaXhlbHNSaWdodEtleSwgY2ZJ
bnQuZ2V0KCkpOworICAgICAgICAgICAgICAgIGNmSW50ID0gYWRvcHRDRihDRk51bWJlckNyZWF0
ZShudWxscHRyLCAga0NGTnVtYmVySW50VHlwZSwgICZleHRlbmRlZEJvdHRvbSkpOworICAgICAg
ICAgICAgICAgIENGRGljdGlvbmFyeVNldFZhbHVlKG1fYnVmZmVyQXR0cmlidXRlcy5nZXQoKSwg
a0NWUGl4ZWxCdWZmZXJFeHRlbmRlZFBpeGVsc0JvdHRvbUtleSwgY2ZJbnQuZ2V0KCkpOworICAg
ICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgQ0ZEaWN0aW9uYXJ5U2V0VmFsdWUobV9i
dWZmZXJBdHRyaWJ1dGVzLmdldCgpLCBrQ1ZQaXhlbEJ1ZmZlck9wZW5HTENvbXBhdGliaWxpdHlL
ZXksIGtDRkJvb2xlYW5UcnVlKTsKKyAgICB9CisKKyAgICBDVlBpeGVsQnVmZmVyUmVmIHBpeGVs
QnVmZmVyOworICAgIGF1dG8gc3RhdHVzID0gQ1ZQaXhlbEJ1ZmZlckNyZWF0ZVdpdGhJT1N1cmZh
Y2Uoa0NGQWxsb2NhdG9yRGVmYXVsdCwgc3VyZmFjZSwgbV9idWZmZXJBdHRyaWJ1dGVzLmdldCgp
LCAmcGl4ZWxCdWZmZXIpOworICAgIGlmIChzdGF0dXMpIHsKKyAgICAgICAgUkVMRUFTRV9MT0co
TWVkaWEsICJDVlBpeGVsQnVmZmVyQ3JlYXRlV2l0aElPU3VyZmFjZSBmYWlsZWQgd2l0aCBlcnJv
ciBjb2RlOiAlZCIsIHN0YXRpY19jYXN0PGludD4oc3RhdHVzKSk7CisgICAgICAgIHJldHVybiBu
dWxscHRyOworICAgIH0KKworICAgIHJldHVybiBhZG9wdENGKHBpeGVsQnVmZmVyKTsKK30KKyNl
bmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoTUVESUFf
U1RSRUFNKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
bWFjL0Rpc3BsYXlDYXB0dXJlU291cmNlQ29jb2EuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL21hYy9EaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hLmgKaW5kZXggOGIyYmNl
ZmZlOTZmYjg1ZTE2MTRmOTljZDI2ZTIyZWM2MmMyYjAxMy4uNzg3N2UwYmFjNDkwY2IwZGYzMmRl
MTkxZWM4NWI1OTU1M2VmMmExNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbWFjL0Rpc3BsYXlDYXB0dXJlU291cmNlQ29jb2EuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvRGlzcGxheUNhcHR1cmVTb3VyY2VDb2Nv
YS5oCkBAIC01NSw2ICs1NSwxMiBAQCBwcm90ZWN0ZWQ6CiAKICAgICBTZWNvbmRzIGVsYXBzZWRU
aW1lKCk7CiAgICAgYm9vbCBhcHBseUZyYW1lUmF0ZShkb3VibGUpIG92ZXJyaWRlOworICAgIGJv
b2wgYXBwbHlTaXplKGNvbnN0IEludFNpemUmKSBvdmVycmlkZTsKKworICAgIFJldGFpblB0cjxD
TVNhbXBsZUJ1ZmZlclJlZj4gc2FtcGxlQnVmZmVyRnJvbVBpeGVsQnVmZmVyKENWUGl4ZWxCdWZm
ZXJSZWYpOworI2lmIEhBVkUoSU9TVVJGQUNFKQorICAgIFJldGFpblB0cjxDVlBpeGVsQnVmZmVy
UmVmPiBwaXhlbEJ1ZmZlckZyb21JT1N1cmZhY2UoSU9TdXJmYWNlUmVmKTsKKyNlbmRpZgogCiBw
cml2YXRlOgogCkBAIC03Myw2ICs3OSw3IEBAIHByaXZhdGU6CiAgICAgTW9ub3RvbmljVGltZSBt
X3N0YXJ0VGltZSB7IE1vbm90b25pY1RpbWU6Om5hbigpIH07CiAgICAgU2Vjb25kcyBtX2VsYXBz
ZWRUaW1lIHsgMF9zIH07CiAKKyAgICBSZXRhaW5QdHI8Q0ZNdXRhYmxlRGljdGlvbmFyeVJlZj4g
bV9idWZmZXJBdHRyaWJ1dGVzOwogICAgIFJ1bkxvb3A6OlRpbWVyPERpc3BsYXlDYXB0dXJlU291
cmNlQ29jb2E+IG1fdGltZXI7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9tYWMvU2NyZWVuRGlzcGxheUNhcHR1cmVTb3VyY2VNYWMuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9TY3JlZW5EaXNwbGF5Q2FwdHVy
ZVNvdXJjZU1hYy5oCmluZGV4IDNkYjI3MGZlYTQ0MWVjNTczNmZkN2Y5MDczMjdjY2IzZWQ5NDUx
MzcuLmQyNmEyOTRlMzZlNzllOGEzYTExOTUwZTJhZjE4ODdjODEyNzQ3OWYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9TY3JlZW5EaXNwbGF5Q2Fw
dHVyZVNvdXJjZU1hYy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L21hYy9TY3JlZW5EaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYy5oCkBAIC0zMyw3ICszMyw2IEBACiAj
aW5jbHVkZSA8Q29yZUdyYXBoaWNzL0NHRGlzcGxheVN0cmVhbS5oPgogI2luY2x1ZGUgPHd0Zi9M
b2NrLmg+CiAjaW5jbHVkZSA8d3RmL09TT2JqZWN0UHRyLmg+Ci0jaW5jbHVkZSA8d3RmL1dlYWtQ
dHIuaD4KIAogdHlwZWRlZiBzdHJ1Y3QgX19DVkJ1ZmZlciAqQ1ZQaXhlbEJ1ZmZlclJlZjsKIHR5
cGVkZWYgc3RydWN0IG9wYXF1ZUNNU2FtcGxlQnVmZmVyICpDTVNhbXBsZUJ1ZmZlclJlZjsKQEAg
LTQ0LDkgKzQzLDggQEAgY2xhc3MgU2NyZWVuRGlzcGxheUNhcHR1cmVTb3VyY2VNYWMgOiBwdWJs
aWMgRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYSB7CiBwdWJsaWM6CiAgICAgc3RhdGljIENhcHR1
cmVTb3VyY2VPckVycm9yIGNyZWF0ZShjb25zdCBTdHJpbmcmLCBjb25zdCBNZWRpYUNvbnN0cmFp
bnRzKik7CiAKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgVmlkZW9DYXB0dXJlRmFjdG9yeSYg
ZmFjdG9yeSgpOwotCi0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHN0ZDo6b3B0aW9uYWw8Q0dE
aXJlY3REaXNwbGF5SUQ+IHVwZGF0ZURpc3BsYXlJRChDR0RpcmVjdERpc3BsYXlJRCk7CisgICAg
c3RhdGljIHN0ZDo6b3B0aW9uYWw8Q2FwdHVyZURldmljZT4gc2NyZWVuQ2FwdHVyZURldmljZVdp
dGhQZXJzaXN0ZW50SUQoY29uc3QgU3RyaW5nJik7CisgICAgc3RhdGljIHZvaWQgc2NyZWVuQ2Fw
dHVyZURldmljZXMoVmVjdG9yPENhcHR1cmVEZXZpY2U+Jik7CiAKIHByaXZhdGU6CiAgICAgU2Ny
ZWVuRGlzcGxheUNhcHR1cmVTb3VyY2VNYWModWludDMyX3QpOwpAQCAtNjUsOCArNjMsNiBAQCBw
cml2YXRlOgogICAgIGJvb2wgYXBwbHlGcmFtZVJhdGUoZG91YmxlKSBmaW5hbDsKICAgICB2b2lk
IGNvbW1pdENvbmZpZ3VyYXRpb24oKSBmaW5hbDsKIAotICAgIFJldGFpblB0cjxDTVNhbXBsZUJ1
ZmZlclJlZj4gc2FtcGxlQnVmZmVyRnJvbVBpeGVsQnVmZmVyKENWUGl4ZWxCdWZmZXJSZWYpOwot
ICAgIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBwaXhlbEJ1ZmZlckZyb21JT1N1cmZhY2Uo
SU9TdXJmYWNlUmVmKTsKICAgICBib29sIGNyZWF0ZURpc3BsYXlTdHJlYW0oKTsKICAgICB2b2lk
IHN0YXJ0RGlzcGxheVN0cmVhbSgpOwogICAgIApAQCAtOTgsMTQgKzk0LDEwIEBAIHByaXZhdGU6
CiAgICAgbXV0YWJsZSBMb2NrIG1fY3VycmVudEZyYW1lTXV0ZXg7CiAgICAgRGlzcGxheVN1cmZh
Y2UgbV9jdXJyZW50RnJhbWU7CiAgICAgUmV0YWluUHRyPENHRGlzcGxheVN0cmVhbVJlZj4gbV9k
aXNwbGF5U3RyZWFtOwotICAgIFJldGFpblB0cjxDRk11dGFibGVEaWN0aW9uYXJ5UmVmPiBtX2J1
ZmZlckF0dHJpYnV0ZXM7CiAgICAgQ0dEaXNwbGF5U3RyZWFtRnJhbWVBdmFpbGFibGVIYW5kbGVy
IG1fZnJhbWVBdmFpbGFibGVCbG9jazsKLSAgICBNZWRpYVRpbWUgbV9wcmVzZW50YXRpb25UaW1l
U3RhbXA7Ci0gICAgTWVkaWFUaW1lIG1fZnJhbWVEdXJhdGlvbjsKIAogICAgIE9TT2JqZWN0UHRy
PGRpc3BhdGNoX3F1ZXVlX3Q+IG1fY2FwdHVyZVF1ZXVlOwogCi0gICAgTW9ub3RvbmljVGltZSBt
X2xhc3RGcmFtZVRpbWUgeyBNb25vdG9uaWNUaW1lOjpuYW4oKSB9OwogICAgIHVpbnQzMl90IG1f
ZGlzcGxheUlEIHsgMCB9OwogICAgIGJvb2wgbV9pc1J1bm5pbmcgeyBmYWxzZSB9OwogICAgIGJv
b2wgbV9vYnNlcnZpbmdEaXNwbGF5Q2hhbmdlcyB7IGZhbHNlIH07CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvU2NyZWVuRGlzcGxheUNhcHR1cmVT
b3VyY2VNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvU2Ny
ZWVuRGlzcGxheUNhcHR1cmVTb3VyY2VNYWMubW0KaW5kZXggMzZkMWU4NGFhYmJiMmZmY2YzYWFk
ZmMxZGZiNGM2MDFkNWI0MWJlYS4uYjE3ZTdjMmI0NWUwZDkwNTIzYTJjNDIyYzZlOGNjZTc3NzFi
YjJkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFj
L1NjcmVlbkRpc3BsYXlDYXB0dXJlU291cmNlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL21hYy9TY3JlZW5EaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYy5tbQpA
QCAtNDYsMTIgKzQ2LDcgQEAgc2l6ZV90IENHRGlzcGxheU1vZGVHZXRQaXhlbHNIaWdoKENHRGlz
cGxheU1vZGVSZWYpOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0YXRpYyBpbnQzMl90IHJv
dW5kVXBUb01hY3JvYmxvY2tNdWx0aXBsZShpbnQzMl90IHNpemUpCi17Ci0gICAgcmV0dXJuIChz
aXplICsgMTUpICYgfjE1OwotfQotCi1zdGQ6Om9wdGlvbmFsPENHRGlyZWN0RGlzcGxheUlEPiBT
Y3JlZW5EaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYzo6dXBkYXRlRGlzcGxheUlEKENHRGlyZWN0RGlz
cGxheUlEIGRpc3BsYXlJRCkKK3N0YXRpYyBzdGQ6Om9wdGlvbmFsPENHRGlyZWN0RGlzcGxheUlE
PiB1cGRhdGVEaXNwbGF5SUQoQ0dEaXJlY3REaXNwbGF5SUQgZGlzcGxheUlEKQogewogICAgIHVp
bnQzMl90IGRpc3BsYXlDb3VudCA9IDA7CiAgICAgYXV0byBlcnIgPSBDR0dldEFjdGl2ZURpc3Bs
YXlMaXN0KDAsIG51bGxwdHIsICZkaXNwbGF5Q291bnQpOwpAQCAtMTI3LDExICsxMjIsMTAgQEAg
Ym9vbCBTY3JlZW5EaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYzo6Y3JlYXRlRGlzcGxheVN0cmVhbSgp
CiAKICAgICBpZiAobV9kaXNwbGF5SUQgIT0gYWN0dWFsRGlzcGxheUlELnZhbHVlKCkpIHsKICAg
ICAgICAgbV9kaXNwbGF5SUQgPSBhY3R1YWxEaXNwbGF5SUQudmFsdWUoKTsKLSAgICAgICAgUkVM
RUFTRV9MT0coTWVkaWEsICJTY3JlZW5EaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYzo6Y3JlYXRlKCVw
KSwgZGlzcGxheSBJRCBjaGFuZ2VkIHRvICVkIiwgdGhpcywgc3RhdGljX2Nhc3Q8aW50PihtX2Rp
c3BsYXlJRCkpOworICAgICAgICBSRUxFQVNFX0xPRyhNZWRpYSwgIlNjcmVlbkRpc3BsYXlDYXB0
dXJlU291cmNlTWFjOjpjcmVhdGVEaXNwbGF5U3RyZWFtKCVwKSwgZGlzcGxheSBJRCBjaGFuZ2Vk
IHRvICVkIiwgdGhpcywgc3RhdGljX2Nhc3Q8aW50PihtX2Rpc3BsYXlJRCkpOwogICAgIH0KIAog
ICAgIGlmICghbV9kaXNwbGF5U3RyZWFtKSB7Ci0KICAgICAgICAgaWYgKHNpemUoKS5pc0VtcHR5
KCkpIHsKICAgICAgICAgICAgIFJldGFpblB0cjxDR0Rpc3BsYXlNb2RlUmVmPiBkaXNwbGF5TW9k
ZSA9IGFkb3B0Q0YoQ0dEaXNwbGF5Q29weURpc3BsYXlNb2RlKG1fZGlzcGxheUlEKSk7CiAgICAg
ICAgICAgICBhdXRvIHNjcmVlbldpZHRoID0gQ0dEaXNwbGF5TW9kZUdldFBpeGVsc1dpZGUoZGlz
cGxheU1vZGUuZ2V0KCkpOwpAQCAtMjEzLDY5ICsyMDcsNiBAQCB2b2lkIFNjcmVlbkRpc3BsYXlD
YXB0dXJlU291cmNlTWFjOjpzdG9wUHJvZHVjaW5nRGF0YSgpCiAgICAgbV9pc1J1bm5pbmcgPSBm
YWxzZTsKIH0KIAotUmV0YWluUHRyPENNU2FtcGxlQnVmZmVyUmVmPiBTY3JlZW5EaXNwbGF5Q2Fw
dHVyZVNvdXJjZU1hYzo6c2FtcGxlQnVmZmVyRnJvbVBpeGVsQnVmZmVyKENWUGl4ZWxCdWZmZXJS
ZWYgcGl4ZWxCdWZmZXIpCi17Ci0gICAgaWYgKCFwaXhlbEJ1ZmZlcikKLSAgICAgICAgcmV0dXJu
IG51bGxwdHI7Ci0KLSAgICBDTVRpbWUgc2FtcGxlVGltZSA9IENNVGltZU1ha2UoKChlbGFwc2Vk
VGltZSgpICsgMTAwX21zKSAqIDEwMCkuc2Vjb25kcygpLCAxMDApOwotICAgIENNU2FtcGxlVGlt
aW5nSW5mbyB0aW1pbmdJbmZvID0geyBrQ01UaW1lSW52YWxpZCwgc2FtcGxlVGltZSwgc2FtcGxl
VGltZSB9OwotCi0gICAgQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uUmVmIGZvcm1hdERlc2NyaXB0
aW9uID0gbnVsbHB0cjsKLSAgICBhdXRvIHN0YXR1cyA9IENNVmlkZW9Gb3JtYXREZXNjcmlwdGlv
bkNyZWF0ZUZvckltYWdlQnVmZmVyKGtDRkFsbG9jYXRvckRlZmF1bHQsIChDVkltYWdlQnVmZmVy
UmVmKXBpeGVsQnVmZmVyLCAmZm9ybWF0RGVzY3JpcHRpb24pOwotICAgIGlmIChzdGF0dXMpIHsK
LSAgICAgICAgUkVMRUFTRV9MT0coTWVkaWEsICJGYWlsZWQgdG8gaW5pdGlhbGl6ZSBDTVZpZGVv
Rm9ybWF0RGVzY3JpcHRpb24gd2l0aCBlcnJvciBjb2RlOiAlZCIsIHN0YXRpY19jYXN0PGludD4o
c3RhdHVzKSk7Ci0gICAgICAgIHJldHVybiBudWxscHRyOwotICAgIH0KLQotICAgIENNU2FtcGxl
QnVmZmVyUmVmIHNhbXBsZUJ1ZmZlcjsKLSAgICBzdGF0dXMgPSBDTVNhbXBsZUJ1ZmZlckNyZWF0
ZVJlYWR5V2l0aEltYWdlQnVmZmVyKGtDRkFsbG9jYXRvckRlZmF1bHQsIChDVkltYWdlQnVmZmVy
UmVmKXBpeGVsQnVmZmVyLCBmb3JtYXREZXNjcmlwdGlvbiwgJnRpbWluZ0luZm8sICZzYW1wbGVC
dWZmZXIpOwotICAgIENGUmVsZWFzZShmb3JtYXREZXNjcmlwdGlvbik7Ci0gICAgaWYgKHN0YXR1
cykgewotICAgICAgICBSRUxFQVNFX0xPRyhNZWRpYSwgIkZhaWxlZCB0byBpbml0aWFsaXplIENN
U2FtcGxlQnVmZmVyIHdpdGggZXJyb3IgY29kZTogJWQiLCBzdGF0aWNfY2FzdDxpbnQ+KHN0YXR1
cykpOwotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICB9Ci0KLSAgICByZXR1cm4gYWRvcHRD
RihzYW1wbGVCdWZmZXIpOwotfQotCi1SZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gU2NyZWVu
RGlzcGxheUNhcHR1cmVTb3VyY2VNYWM6OnBpeGVsQnVmZmVyRnJvbUlPU3VyZmFjZShJT1N1cmZh
Y2VSZWYgc3VyZmFjZSkKLXsKLSAgICBpZiAoIW1fYnVmZmVyQXR0cmlidXRlcykgewotICAgICAg
ICBtX2J1ZmZlckF0dHJpYnV0ZXMgPSBhZG9wdENGKENGRGljdGlvbmFyeUNyZWF0ZU11dGFibGUo
bnVsbHB0ciwgMCwgJmtDRlR5cGVEaWN0aW9uYXJ5S2V5Q2FsbEJhY2tzLCAma0NGVHlwZURpY3Rp
b25hcnlWYWx1ZUNhbGxCYWNrcykpOwotCi0gICAgICAgIGF1dG8gZm9ybWF0ID0gSU9TdXJmYWNl
R2V0UGl4ZWxGb3JtYXQoc3VyZmFjZSk7Ci0gICAgICAgIGlmIChmb3JtYXQgPT0ga0NWUGl4ZWxG
b3JtYXRUeXBlXzQyMFlwQ2JDcjhCaVBsYW5hclZpZGVvUmFuZ2UgfHwgZm9ybWF0ID09IGtDVlBp
eGVsRm9ybWF0VHlwZV80MjBZcENiQ3I4QmlQbGFuYXJGdWxsUmFuZ2UpIHsKLQotICAgICAgICAg
ICAgLy8gSWYgdGhlIHdpZHRoIHggaGVpZ2h0IGlzbid0IGEgbXVsdGlwbGUgb2YgMTYgeCAxNiBh
bmQgdGhlIHN1cmZhY2UgaGFzIGV4dHJhIG1lbW9yeSBpbiB0aGUgcGxhbmVzLCBzZXQgcGl4ZWwg
YnVmZmVyIGF0dHJpYnV0ZXMgdG8gcmVmbGVjdCBpdC4KLSAgICAgICAgICAgIGF1dG8gd2lkdGgg
PSBJT1N1cmZhY2VHZXRXaWR0aChzdXJmYWNlKTsKLSAgICAgICAgICAgIGF1dG8gaGVpZ2h0ID0g
SU9TdXJmYWNlR2V0SGVpZ2h0KHN1cmZhY2UpOwotICAgICAgICAgICAgaW50MzJfdCBleHRlbmRl
ZFJpZ2h0ID0gcm91bmRVcFRvTWFjcm9ibG9ja011bHRpcGxlKHdpZHRoKSAtIHdpZHRoOwotICAg
ICAgICAgICAgaW50MzJfdCBleHRlbmRlZEJvdHRvbSA9IHJvdW5kVXBUb01hY3JvYmxvY2tNdWx0
aXBsZShoZWlnaHQpIC0gaGVpZ2h0OwotCi0gICAgICAgICAgICBpZiAoKElPU3VyZmFjZUdldEJ5
dGVzUGVyUm93T2ZQbGFuZShzdXJmYWNlLCAwKSA+PSB3aWR0aCArIGV4dGVuZGVkUmlnaHQpCi0g
ICAgICAgICAgICAgICAgJiYgKElPU3VyZmFjZUdldEJ5dGVzUGVyUm93T2ZQbGFuZShzdXJmYWNl
LCAxKSA+PSB3aWR0aCArIGV4dGVuZGVkUmlnaHQpCi0gICAgICAgICAgICAgICAgJiYgKElPU3Vy
ZmFjZUdldEFsbG9jU2l6ZShzdXJmYWNlKSA+PSAoaGVpZ2h0ICsgZXh0ZW5kZWRCb3R0b20pICog
SU9TdXJmYWNlR2V0Qnl0ZXNQZXJSb3dPZlBsYW5lKHN1cmZhY2UsIDApICogMyAvIDIpKSB7Ci0g
ICAgICAgICAgICAgICAgICAgIGF1dG8gY2ZJbnQgPSBhZG9wdENGKENGTnVtYmVyQ3JlYXRlKG51
bGxwdHIsICBrQ0ZOdW1iZXJJbnRUeXBlLCAgJmV4dGVuZGVkUmlnaHQpKTsKLSAgICAgICAgICAg
ICAgICAgICAgQ0ZEaWN0aW9uYXJ5U2V0VmFsdWUobV9idWZmZXJBdHRyaWJ1dGVzLmdldCgpLCBr
Q1ZQaXhlbEJ1ZmZlckV4dGVuZGVkUGl4ZWxzUmlnaHRLZXksIGNmSW50LmdldCgpKTsKLSAgICAg
ICAgICAgICAgICAgICAgY2ZJbnQgPSBhZG9wdENGKENGTnVtYmVyQ3JlYXRlKG51bGxwdHIsICBr
Q0ZOdW1iZXJJbnRUeXBlLCAgJmV4dGVuZGVkQm90dG9tKSk7Ci0gICAgICAgICAgICAgICAgICAg
IENGRGljdGlvbmFyeVNldFZhbHVlKG1fYnVmZmVyQXR0cmlidXRlcy5nZXQoKSwga0NWUGl4ZWxC
dWZmZXJFeHRlbmRlZFBpeGVsc0JvdHRvbUtleSwgY2ZJbnQuZ2V0KCkpOwotICAgICAgICAgICAg
fQotICAgICAgICB9Ci0KLSAgICAgICAgQ0ZEaWN0aW9uYXJ5U2V0VmFsdWUobV9idWZmZXJBdHRy
aWJ1dGVzLmdldCgpLCBrQ1ZQaXhlbEJ1ZmZlck9wZW5HTENvbXBhdGliaWxpdHlLZXksIGtDRkJv
b2xlYW5UcnVlKTsKLSAgICB9Ci0KLSAgICBDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyOwot
ICAgIGF1dG8gc3RhdHVzID0gQ1ZQaXhlbEJ1ZmZlckNyZWF0ZVdpdGhJT1N1cmZhY2Uoa0NGQWxs
b2NhdG9yRGVmYXVsdCwgc3VyZmFjZSwgbV9idWZmZXJBdHRyaWJ1dGVzLmdldCgpLCAmcGl4ZWxC
dWZmZXIpOwotICAgIGlmIChzdGF0dXMpIHsKLSAgICAgICAgUkVMRUFTRV9MT0coTWVkaWEsICJG
YWlsZWQgdG8gaW5pdGlhbGl6ZSBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb24gd2l0aCBlcnJvciBj
b2RlOiAlZCIsIHN0YXRpY19jYXN0PGludD4oc3RhdHVzKSk7Ci0gICAgICAgIHJldHVybiBudWxs
cHRyOwotICAgIH0KLQotICAgIHJldHVybiBhZG9wdENGKHBpeGVsQnVmZmVyKTsKLX0KLQogdm9p
ZCBTY3JlZW5EaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYzo6Z2VuZXJhdGVGcmFtZSgpCiB7CiAgICAg
aWYgKCFtX2N1cnJlbnRGcmFtZS5pb1N1cmZhY2UoKSkKQEAgLTMwNiw3ICsyMzcsNyBAQCB2b2lk
IFNjcmVlbkRpc3BsYXlDYXB0dXJlU291cmNlTWFjOjpzdGFydERpc3BsYXlTdHJlYW0oKQogCiAg
ICAgaWYgKG1fZGlzcGxheUlEICE9IGFjdHVhbERpc3BsYXlJRC52YWx1ZSgpKSB7CiAgICAgICAg
IG1fZGlzcGxheUlEID0gYWN0dWFsRGlzcGxheUlELnZhbHVlKCk7Ci0gICAgICAgIFJFTEVBU0Vf
TE9HKE1lZGlhLCAiU2NyZWVuRGlzcGxheUNhcHR1cmVTb3VyY2VNYWM6OmNyZWF0ZSglcCksIGRp
c3BsYXkgSUQgY2hhbmdlZCB0byAlZCIsIHRoaXMsIHN0YXRpY19jYXN0PGludD4obV9kaXNwbGF5
SUQpKTsKKyAgICAgICAgUkVMRUFTRV9MT0coTWVkaWEsICJTY3JlZW5EaXNwbGF5Q2FwdHVyZVNv
dXJjZU1hYzo6c3RhcnREaXNwbGF5U3RyZWFtKCVwKSwgZGlzcGxheSBJRCBjaGFuZ2VkIHRvICVk
IiwgdGhpcywgc3RhdGljX2Nhc3Q8aW50PihtX2Rpc3BsYXlJRCkpOwogICAgIH0KIAogICAgIGlm
ICghbV9kaXNwbGF5U3RyZWFtICYmICFjcmVhdGVEaXNwbGF5U3RyZWFtKCkpCkBAIC0zMTQsNyAr
MjQ1LDcgQEAgdm9pZCBTY3JlZW5EaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYzo6c3RhcnREaXNwbGF5
U3RyZWFtKCkKIAogICAgIGF1dG8gZXJyID0gQ0dEaXNwbGF5U3RyZWFtU3RhcnQobV9kaXNwbGF5
U3RyZWFtLmdldCgpKTsKICAgICBpZiAoZXJyKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HKE1lZGlh
LCAiU2NyZWVuRGlzcGxheUNhcHR1cmVTb3VyY2VNYWM6OnN0YXJ0UHJvZHVjaW5nRGF0YSglcCks
IENHRGlzcGxheVN0cmVhbVN0YXJ0IGZhaWxlZCB3aXRoIGVycm9yICVkIiwgdGhpcywgc3RhdGlj
X2Nhc3Q8aW50PihlcnIpKTsKKyAgICAgICAgUkVMRUFTRV9MT0coTWVkaWEsICJTY3JlZW5EaXNw
bGF5Q2FwdHVyZVNvdXJjZU1hYzo6c3RhcnREaXNwbGF5U3RyZWFtKCVwKSwgQ0dEaXNwbGF5U3Ry
ZWFtU3RhcnQgZmFpbGVkIHdpdGggZXJyb3IgJWQiLCB0aGlzLCBzdGF0aWNfY2FzdDxpbnQ+KGVy
cikpOwogICAgICAgICBjYXB0dXJlRmFpbGVkKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBA
IC0zMjQsMjAgKzI1NSwxNyBAQCB2b2lkIFNjcmVlbkRpc3BsYXlDYXB0dXJlU291cmNlTWFjOjpz
dGFydERpc3BsYXlTdHJlYW0oKQogCiBib29sIFNjcmVlbkRpc3BsYXlDYXB0dXJlU291cmNlTWFj
OjphcHBseVNpemUoY29uc3QgSW50U2l6ZSYgbmV3U2l6ZSkKIHsKLSAgICBpZiAoc2l6ZSgpID09
IG5ld1NpemUpCi0gICAgICAgIHJldHVybiB0cnVlOworICAgIGlmICghRGlzcGxheUNhcHR1cmVT
b3VyY2VDb2NvYTo6YXBwbHlTaXplKG5ld1NpemUpKQorICAgICAgICByZXR1cm4gZmFsc2U7CiAK
LSAgICBtX2J1ZmZlckF0dHJpYnV0ZXMgPSBudWxscHRyOwogICAgIG1fZGlzcGxheVN0cmVhbSA9
IG51bGxwdHI7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKIGJvb2wgU2NyZWVuRGlzcGxheUNhcHR1
cmVTb3VyY2VNYWM6OmFwcGx5RnJhbWVSYXRlKGRvdWJsZSByYXRlKQogewotICAgIGlmIChmcmFt
ZVJhdGUoKSAhPSByYXRlKSB7Ci0gICAgICAgIG1fYnVmZmVyQXR0cmlidXRlcyA9IG51bGxwdHI7
CisgICAgaWYgKGZyYW1lUmF0ZSgpICE9IHJhdGUpCiAgICAgICAgIG1fZGlzcGxheVN0cmVhbSA9
IG51bGxwdHI7Ci0gICAgfQogCiAgICAgcmV0dXJuIERpc3BsYXlDYXB0dXJlU291cmNlQ29jb2E6
OmFwcGx5RnJhbWVSYXRlKHJhdGUpOwogfQpAQCAtMzg2LDEwICszMTQsNTcgQEAgdm9pZCBTY3Jl
ZW5EaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYzo6ZnJhbWVBdmFpbGFibGUoQ0dEaXNwbGF5U3RyZWFt
RnJhbWVTdGF0dXMgc3QKICAgICAgICAgcmV0dXJuOwogCiAgICAgTG9ja0hvbGRlciBsb2NrKG1f
Y3VycmVudEZyYW1lTXV0ZXgpOwotICAgIG1fbGFzdEZyYW1lVGltZSA9IE1vbm90b25pY1RpbWU6
Om5vdygpOwogICAgIG1fY3VycmVudEZyYW1lID0gZnJhbWVTdXJmYWNlOwogfQogCitzdGQ6Om9w
dGlvbmFsPENhcHR1cmVEZXZpY2U+IFNjcmVlbkRpc3BsYXlDYXB0dXJlU291cmNlTWFjOjpzY3Jl
ZW5DYXB0dXJlRGV2aWNlV2l0aFBlcnNpc3RlbnRJRChjb25zdCBTdHJpbmcmIGRldmljZUlEKQor
eworICAgIGJvb2wgb2s7CisgICAgYXV0byBkaXNwbGF5SUQgPSBkZXZpY2VJRC50b1VJbnRTdHJp
Y3QoJm9rKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIFJFTEVBU0VfTE9HKE1lZGlhLCAiU2Ny
ZWVuRGlzcGxheUNhcHR1cmVTb3VyY2VNYWM6OnNjcmVlbkNhcHR1cmVEZXZpY2VXaXRoUGVyc2lz
dGVudElEOiBkaXNwbGF5IElEIGRvZXMgbm90IGNvbnZlcnQgdG8gMzItYml0IGludGVnZXIiKTsK
KyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICB9CisKKyAgICBhdXRvIGFjdHVhbERp
c3BsYXlJRCA9IHVwZGF0ZURpc3BsYXlJRChkaXNwbGF5SUQpOworICAgIGlmICghYWN0dWFsRGlz
cGxheUlEKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgYXV0byBkZXZpY2Ug
PSBDYXB0dXJlRGV2aWNlKFN0cmluZzo6bnVtYmVyKGFjdHVhbERpc3BsYXlJRC52YWx1ZSgpKSwg
Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6U2NyZWVuLCAiU2NyZWVuQ2FwdHVyZURldmljZSJf
cyk7CisgICAgZGV2aWNlLnNldEVuYWJsZWQodHJ1ZSk7CisKKyAgICByZXR1cm4gZGV2aWNlOwor
fQorCit2b2lkIFNjcmVlbkRpc3BsYXlDYXB0dXJlU291cmNlTWFjOjpzY3JlZW5DYXB0dXJlRGV2
aWNlcyhWZWN0b3I8Q2FwdHVyZURldmljZT4mIGRpc3BsYXlzKQoreworICAgIHVpbnQzMl90IGRp
c3BsYXlDb3VudCA9IDA7CisgICAgYXV0byBlcnIgPSBDR0dldEFjdGl2ZURpc3BsYXlMaXN0KDAs
IG51bGxwdHIsICZkaXNwbGF5Q291bnQpOworICAgIGlmIChlcnIpIHsKKyAgICAgICAgUkVMRUFT
RV9MT0coTWVkaWEsICJDR0dldEFjdGl2ZURpc3BsYXlMaXN0KCkgcmV0dXJuZWQgZXJyb3IgJWQg
d2hlbiB0cnlpbmcgdG8gZ2V0IGRpc3BsYXkgY291bnQiLCAoaW50KWVycik7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisKKyAgICBpZiAoIWRpc3BsYXlDb3VudCkgeworICAgICAgICBSRUxFQVNF
X0xPRyhNZWRpYSwgIkNHR2V0QWN0aXZlRGlzcGxheUxpc3QoKSByZXR1cm5lZCBhIGRpc3BsYXkg
Y291bnQgb2YgMCIpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgQ0dEaXJlY3REaXNw
bGF5SUQgYWN0aXZlRGlzcGxheXNbZGlzcGxheUNvdW50XTsKKyAgICBlcnIgPSBDR0dldEFjdGl2
ZURpc3BsYXlMaXN0KGRpc3BsYXlDb3VudCwgJihhY3RpdmVEaXNwbGF5c1swXSksICZkaXNwbGF5
Q291bnQpOworICAgIGlmIChlcnIpIHsKKyAgICAgICAgUkVMRUFTRV9MT0coTWVkaWEsICJDR0dl
dEFjdGl2ZURpc3BsYXlMaXN0KCkgcmV0dXJuZWQgZXJyb3IgJWQgd2hlbiB0cnlpbmcgdG8gZ2V0
IHRoZSBhY3RpdmUgZGlzcGxheSBsaXN0IiwgKGludCllcnIpOworICAgICAgICByZXR1cm47Cisg
ICAgfQorCisgICAgaW50IGNvdW50ID0gMDsKKyAgICBmb3IgKGF1dG8gZGlzcGxheUlEIDogYWN0
aXZlRGlzcGxheXMpIHsKKyAgICAgICAgQ2FwdHVyZURldmljZSBkaXNwbGF5RGV2aWNlKFN0cmlu
Zzo6bnVtYmVyKGRpc3BsYXlJRCksIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlNjcmVlbiwg
bWFrZVN0cmluZygiU2NyZWVuICIsIFN0cmluZzo6bnVtYmVyKGNvdW50KyspKSk7CisgICAgICAg
IGRpc3BsYXlEZXZpY2Uuc2V0RW5hYmxlZChDR0Rpc3BsYXlJRFRvT3BlbkdMRGlzcGxheU1hc2so
ZGlzcGxheUlEKSk7CisgICAgICAgIGRpc3BsYXlzLmFwcGVuZChXVEZNb3ZlKGRpc3BsYXlEZXZp
Y2UpKTsKKyAgICB9Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVO
QUJMRShNRURJQV9TVFJFQU0pICYmIFBMQVRGT1JNKE1BQykK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>345696</attachid>
            <date>2018-07-24 11:52:04 -0700</date>
            <delta_ts>2018-07-24 12:31:11 -0700</delta_ts>
            <desc>Build fix</desc>
            <filename>bug-187905-20180724115203.patch</filename>
            <type>text/plain</type>
            <size>1595</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM0MTU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDNkZGE4MWQ3OTkxN2U0
NjQwZTQzYjViZWFhNGVlNTYyNzVjNWI3Ny4uNTA2YWU2YWIzMjczZjBmYzM5ZmVjMzQzYjUzMDA4
Njk5NzFkNTUyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDE4LTA3LTI0ICBFcmlj
IENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtNZWRpYVN0cmVh
bV0gUmVzdHJ1Y3R1cmUgZ2V0RGlzcGxheU1lZGlhIGNsYXNzZXMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NzkwNQorICAgICAgICA8cmRhcjovL3By
b2JsZW0vNDI1MDAyMTU+CisKKyAgICAgICAgVW5yZXZpZXdlZCBidWlsZCBmaXguCisKKyAgICAg
ICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYS5j
cHA6IAorCiAyMDE4LTA3LTI0ICBEYW5pZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KIAog
ICAgICAgICBDYW5ub3QgdmlldyBQREYncyBvbiBteS5nb3YuYXU6ICJSZWZ1c2VkIHRvIGxvYWQg
aHR0cHM6Ly9teS5nb3YuYXUvYXR0YWNobWVudC92aWV3QXR0YWNobWVudCBiZWNhdXNlIGl0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvRGlzcGxh
eUNhcHR1cmVTb3VyY2VDb2NvYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9tYWMvRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYS5jcHAKaW5kZXggNWYwMzNmMzhmYWZh
ZTk1NDhiZDU5OTVlZTFhMmIyNDQ1NGFhODVmNC4uZTc0Y2JlZTc5MmVmZTVkYTk0MjQxN2Q3ZjRl
Mjk1YzdlZTg1MjA3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vbWFjL0Rpc3BsYXlDYXB0dXJlU291cmNlQ29jb2EuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9EaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hLmNw
cApAQCAtNDIsNiArNDIsOCBAQAogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAjaW5jbHVk
ZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAKKyNpbmNsdWRlICJDb3JlVmlkZW9Tb2Z0TGluay5o
IgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiB1c2luZyBuYW1lc3BhY2UgUEFMOwogCkBAIC0xNzgs
NyArMTgwLDcgQEAgUmV0YWluUHRyPENNU2FtcGxlQnVmZmVyUmVmPiBEaXNwbGF5Q2FwdHVyZVNv
dXJjZUNvY29hOjpzYW1wbGVCdWZmZXJGcm9tUGl4ZWxCdWYKICAgICByZXR1cm4gYWRvcHRDRihz
YW1wbGVCdWZmZXIpOwogfQogCi0jaWYgSEFWRShJT1NVUkZBQ0UpCisjaWYgSEFWRShJT1NVUkZB
Q0UpICYmIFBMQVRGT1JNKE1BQykKIHN0YXRpYyBpbnQzMl90IHJvdW5kVXBUb01hY3JvYmxvY2tN
dWx0aXBsZShpbnQzMl90IHNpemUpCiB7CiAgICAgcmV0dXJuIChzaXplICsgMTUpICYgfjE1Owo=
</data>

          </attachment>
      

    </bug>

</bugzilla>