<?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>208325</bug_id>
          
          <creation_ts>2020-02-27 09:57:20 -0800</creation_ts>
          <short_desc>Convert frame address in logging statements to pageID+frameID</short_desc>
          <delta_ts>2020-02-28 11:43:41 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Keith Rollin">krollin</reporter>
          <assigned_to name="Keith Rollin">krollin</assigned_to>
          <cc>achristensen</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>japhet</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1623535</commentid>
    <comment_count>0</comment_count>
    <who name="Keith Rollin">krollin</who>
    <bug_when>2020-02-27 09:57:20 -0800</bug_when>
    <thetext>Some old logging prints the address of the associated frame object. Annotating logging statements this way makes it difficult to match up that logging with other logging that uses pageID+frameID. Update the logging to consistently use the latter format.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1623536</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-02-27 09:57:37 -0800</bug_when>
    <thetext>&lt;rdar://problem/59850768&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1623547</commentid>
    <comment_count>2</comment_count>
      <attachid>391887</attachid>
    <who name="Keith Rollin">krollin</who>
    <bug_when>2020-02-27 10:08:30 -0800</bug_when>
    <thetext>Created attachment 391887
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1624051</commentid>
    <comment_count>3</comment_count>
      <attachid>391887</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-02-28 11:43:39 -0800</bug_when>
    <thetext>Comment on attachment 391887
Patch

Clearing flags on attachment: 391887

Committed r257648: &lt;https://trac.webkit.org/changeset/257648&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1624052</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-02-28 11:43:41 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>391887</attachid>
            <date>2020-02-27 10:08:30 -0800</date>
            <delta_ts>2020-02-28 11:43:39 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208325-20200227100830.patch</filename>
            <type>text/plain</type>
            <size>37822</size>
            <attacher name="Keith Rollin">krollin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU3NTA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2RmYzczODA3MGMwZmUw
NGQzMjM0NjU5NWEyMmM0ODI4ZTNkMmI3Yi4uNGQ0Yjk2NGQzZGI4N2ZkMmFiMTQ4YTYyZGMwM2I3
MThkMTVlMmRlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDIwLTAyLTI3ICBLZWl0
aCBSb2xsaW4gIDxrcm9sbGluQGFwcGxlLmNvbT4KKworICAgICAgICBDb252ZXJ0IGZyYW1lIGFk
ZHJlc3MgaW4gbG9nZ2luZyBzdGF0ZW1lbnRzIHRvIHBhZ2VJRCtmcmFtZUlECisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDgzMjUKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzU5ODUwNzY4PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFNvbWUgb2xkIGxvZ2dpbmcgcHJpbnRzIHRoZSBhZGRyZXNzIG9mIHRo
ZSBhc3NvY2lhdGVkIGZyYW1lIG9iamVjdC4KKyAgICAgICAgQW5ub3RhdGluZyBsb2dnaW5nIHN0
YXRlbWVudHMgdGhpcyB3YXkgbWFrZXMgaXQgZGlmZmljdWx0IHRvIG1hdGNoIHVwCisgICAgICAg
IHRoYXQgbG9nZ2luZyB3aXRoIG90aGVyIGxvZ2dpbmcgdGhhdCB1c2VzIHBhZ2VJRCtmcmFtZUlE
LiBVcGRhdGUgdGhlCisgICAgICAgIGxvZ2dpbmcgdG8gY29uc2lzdGVudGx5IHVzZSB0aGUgbGF0
dGVyIGZvcm1hdC4KKworICAgICAgICBObyBuZXcgdGVzdHMgLS0gbm8gbmV3IG9yIGNoYW5nZWQg
ZnVuY3Rpb25hbGl0eS4KKworICAgICAgICAqIGxvYWRlci9Eb2N1bWVudExvYWRlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpEb2N1bWVudExvYWRlcjo6c2V0UmVxdWVzdCk6CisgICAgICAgIChX
ZWJDb3JlOjpEb2N1bWVudExvYWRlcjo6c2V0TWFpbkRvY3VtZW50RXJyb3IpOgorICAgICAgICAo
V2ViQ29yZTo6RG9jdW1lbnRMb2FkZXI6Om1haW5SZWNlaXZlZEVycm9yKToKKyAgICAgICAgKFdl
YkNvcmU6OkRvY3VtZW50TG9hZGVyOjpzdG9wTG9hZGluZyk6CisgICAgICAgIChXZWJDb3JlOjpE
b2N1bWVudExvYWRlcjo6bm90aWZ5RmluaXNoZWQpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1l
bnRMb2FkZXI6OndpbGxTZW5kUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudExv
YWRlcjo6dHJ5TG9hZGluZ1N1YnN0aXR1dGVEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3Vt
ZW50TG9hZGVyOjpkaXNhbGxvd0RhdGFSZXF1ZXN0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkRvY3VtZW50TG9hZGVyOjpjb250aW51ZUFmdGVyQ29udGVudFBvbGljeSk6CisgICAgICAgIChX
ZWJDb3JlOjpEb2N1bWVudExvYWRlcjo6c3RhcnRMb2FkaW5nTWFpblJlc291cmNlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyOjpsb2FkTWFpblJlc291cmNlKToKKyAgICAgICAg
KFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyOjpjYW5jZWxNYWluUmVzb3VyY2VMb2FkKToKKyAgICAg
ICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2Fk
ZXI6OnBhZ2VJRCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6ZnJhbWVJ
RCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6cmV0cnlBZnRlckZhaWxl
ZENhY2hlT25seU1haW5SZXNvdXJjZUxvYWQpOgorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRl
ci5oOgorICAgICAgICAqIGxvYWRlci9SZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgICogbG9h
ZGVyL1N1YnJlc291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVk
UmVzb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2U6OmxvYWQpOgor
ICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFJlc291cmNlKToKKyAgICAg
ICAgKiBwYWdlL0ZyYW1lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lOjpwYWdlSUQgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWU6OmZyYW1lSUQgY29uc3QpOgorICAgICAgICAq
IHBhZ2UvRnJhbWUuaDoKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6CisKIDIwMjAtMDIt
MjYgIEtlaXRoIFJvbGxpbiAgPGtyb2xsaW5AYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBsb2dn
aW5nIHRvIGhlbHAgZGlhZ25vc2UgcmVkaXJlY3QgaXNzdWUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggN2VjNzBkNmNl
MmRiY2Y1YWY5OWI1Zjg3MzMwN2NkZmEyNTE5MGRmZC4uYWRhMDc5ODMzNzNmODU4MDhiNzc3ZGY3
OWIzZTcxOGU2ZjJlOWZhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAyMC0wMi0yNyAg
S2VpdGggUm9sbGluICA8a3JvbGxpbkBhcHBsZS5jb20+CisKKyAgICAgICAgQ29udmVydCBmcmFt
ZSBhZGRyZXNzIGluIGxvZ2dpbmcgc3RhdGVtZW50cyB0byBwYWdlSUQrZnJhbWVJRAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA4MzI1CisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS81OTg1MDc2OD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBTb21lIG9sZCBsb2dnaW5nIHByaW50cyB0aGUgYWRkcmVzcyBv
ZiB0aGUgYXNzb2NpYXRlZCBmcmFtZSBvYmplY3QuCisgICAgICAgIEFubm90YXRpbmcgbG9nZ2lu
ZyBzdGF0ZW1lbnRzIHRoaXMgd2F5IG1ha2VzIGl0IGRpZmZpY3VsdCB0byBtYXRjaCB1cAorICAg
ICAgICB0aGF0IGxvZ2dpbmcgd2l0aCBvdGhlciBsb2dnaW5nIHRoYXQgdXNlcyBwYWdlSUQrZnJh
bWVJRC4gVXBkYXRlIHRoZQorICAgICAgICBsb2dnaW5nIHRvIGNvbnNpc3RlbnRseSB1c2UgdGhl
IGxhdHRlciBmb3JtYXQuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVy
U3RyYXRlZ3kuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJMb2FkZXJTdHJhdGVneTo6bG9hZFJl
c291cmNlKToKKwogMjAyMC0wMi0yNiAgS2VpdGggUm9sbGluICA8a3JvbGxpbkBhcHBsZS5jb20+
CiAKICAgICAgICAgQWRkIGxvZ2dpbmcgdG8gaGVscCBkaWFnbm9zZSByZWRpcmVjdCBpc3N1ZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAKaW5kZXggZGE1MDMxNWQyMTYw
ODMzZTAyYWIxOWIyNTBlYTE5YWI2NTIyNDZhOS4uMTUxMWY1YTdkNGIwMzhlN2E4ZDJkZGM0YWUz
ZTUwNjA0ODZmZDc5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50
TG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3Bw
CkBAIC0xMTEsNyArMTExLDEwIEBACiAjaW5jbHVkZSAiUXVpY2tMb29rLmgiCiAjZW5kaWYKIAot
I2RlZmluZSBSRUxFQVNFX0xPR19JRl9BTExPV0VEKGZtdCwgLi4uKSBSRUxFQVNFX0xPR19JRihp
c0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKSwgTmV0d29yaywgIiVwIC0gRG9jdW1lbnRMb2FkZXI6
OiIgZm10LCB0aGlzLCAjI19fVkFfQVJHU19fKQorI2RlZmluZSBQQUdFX0lEICgobV9mcmFtZSA/
IG1fZnJhbWUtPnBhZ2VJRCgpLnZhbHVlT3IoUGFnZUlkZW50aWZpZXIoKSkgOiBQYWdlSWRlbnRp
ZmllcigpKS50b1VJbnQ2NCgpKQorI2RlZmluZSBGUkFNRV9JRCAoKG1fZnJhbWUgPyBtX2ZyYW1l
LT5mcmFtZUlEKCkudmFsdWVPcihGcmFtZUlkZW50aWZpZXIoKSkgOiBGcmFtZUlkZW50aWZpZXIo
KSkudG9VSW50NjQoKSkKKyNkZWZpbmUgSVNfTUFJTl9GUkFNRSAobV9mcmFtZSA/IG1fZnJhbWUt
PmlzTWFpbkZyYW1lKCkgOiBmYWxzZSkKKyNkZWZpbmUgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChm
bXQsIC4uLikgUkVMRUFTRV9MT0dfSUYoaXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCksIE5ldHdv
cmssICIlcCAtIFtwYWdlSUQ9JSIgUFJJdTY0ICIsIGZyYW1lSUQ9JSIgUFJJdTY0ICIsIG1haW49
JWRdIERvY3VtZW50TG9hZGVyOjoiIGZtdCwgdGhpcywgUEFHRV9JRCwgRlJBTUVfSUQsIElTX01B
SU5fRlJBTUUsICMjX19WQV9BUkdTX18pCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMjMw
LDcgKzIzMyw3IEBAIHZvaWQgRG9jdW1lbnRMb2FkZXI6OnNldFJlcXVlc3QoY29uc3QgUmVzb3Vy
Y2VSZXF1ZXN0JiByZXEpCiAgICAgaWYgKHNob3VsZE5vdGlmeUFib3V0UHJvdmlzaW9uYWxVUkxD
aGFuZ2UpIHsKICAgICAgICAgLy8gTG9nZ2luZyBmb3IgPHJkYXI6Ly9wcm9ibGVtLzU0ODMwMjMz
Pi4KICAgICAgICAgaWYgKCFmcmFtZUxvYWRlcigpLT5wcm92aXNpb25hbERvY3VtZW50TG9hZGVy
KCkpCi0gICAgICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJEb2N1bWVudExvYWRlcjo6
c2V0UmVxdWVzdDogV2l0aCBubyBwcm92aXNpb25hbCBkb2N1bWVudCBsb2FkZXIgKGZyYW1lID0g
JXAsIG1haW4gPSAlZCkiLCBtX2ZyYW1lLCBtX2ZyYW1lID8gbV9mcmFtZS0+aXNNYWluRnJhbWUo
KSA6IGZhbHNlKTsKKyAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoIkRvY3VtZW50
TG9hZGVyOjpzZXRSZXF1ZXN0OiBXaXRoIG5vIHByb3Zpc2lvbmFsIGRvY3VtZW50IGxvYWRlciIp
OwogICAgICAgICBmcmFtZUxvYWRlcigpLT5jbGllbnQoKS5kaXNwYXRjaERpZENoYW5nZVByb3Zp
c2lvbmFsVVJMKCk7CiAgICAgfQogfQpAQCAtMjM4LDcgKzI0MSw3IEBAIHZvaWQgRG9jdW1lbnRM
b2FkZXI6OnNldFJlcXVlc3QoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXEpCiB2b2lkIERvY3Vt
ZW50TG9hZGVyOjpzZXRNYWluRG9jdW1lbnRFcnJvcihjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJv
cikKIHsKICAgICBpZiAoIWVycm9yLmlzTnVsbCgpKQotICAgICAgICBSRUxFQVNFX0xPR19JRl9B
TExPV0VEKCJzZXRNYWluRG9jdW1lbnRFcnJvcjogKGZyYW1lID0gJXAsIG1haW4gPSAlZCwgdHlw
ZSA9ICVkLCBjb2RlID0gJWQpIiwgbV9mcmFtZSwgbV9mcmFtZS0+aXNNYWluRnJhbWUoKSwgc3Rh
dGljX2Nhc3Q8aW50PihlcnJvci50eXBlKCkpLCBlcnJvci5lcnJvckNvZGUoKSk7CisgICAgICAg
IFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoInNldE1haW5Eb2N1bWVudEVycm9yOiAodHlwZSA9ICVk
LCBjb2RlID0gJWQpIiwgc3RhdGljX2Nhc3Q8aW50PihlcnJvci50eXBlKCkpLCBlcnJvci5lcnJv
ckNvZGUoKSk7CiAKICAgICBtX21haW5Eb2N1bWVudEVycm9yID0gZXJyb3I7ICAgIAogICAgIGZy
YW1lTG9hZGVyKCktPmNsaWVudCgpLnNldE1haW5Eb2N1bWVudEVycm9yKHRoaXMsIGVycm9yKTsK
QEAgLTI1Miw3ICsyNTUsNyBAQCB2b2lkIERvY3VtZW50TG9hZGVyOjptYWluUmVjZWl2ZWRFcnJv
cihjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYg
KCFlcnJvci5pc051bGwoKSkKLSAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgibWFpblJl
Y2VpdmVkRXJyb3I6IChmcmFtZSA9ICVwLCBtYWluID0gJWQsIHR5cGUgPSAlZCwgY29kZSA9ICVk
KSIsIG1fZnJhbWUsIG1fZnJhbWUtPmlzTWFpbkZyYW1lKCksIHN0YXRpY19jYXN0PGludD4oZXJy
b3IudHlwZSgpKSwgZXJyb3IuZXJyb3JDb2RlKCkpOworICAgICAgICBSRUxFQVNFX0xPR19JRl9B
TExPV0VEKCJtYWluUmVjZWl2ZWRFcnJvcjogKHR5cGUgPSAlZCwgY29kZSA9ICVkKSIsIHN0YXRp
Y19jYXN0PGludD4oZXJyb3IudHlwZSgpKSwgZXJyb3IuZXJyb3JDb2RlKCkpOwogCiAgICAgaWYg
KG1faWRlbnRpZmllckZvckxvYWRXaXRob3V0UmVzb3VyY2VMb2FkZXIpIHsKICAgICAgICAgQVNT
RVJUKCFtYWluUmVzb3VyY2VMb2FkZXIoKSk7CkBAIC0zMzMsNyArMzM2LDcgQEAgdm9pZCBEb2N1
bWVudExvYWRlcjo6c3RvcExvYWRpbmcoKQogCiAgICAgLy8gVGhlIGZyYW1lIG1heSBoYXZlIGJl
ZW4gZGV0YWNoZWQgZnJvbSB0aGlzIGRvY3VtZW50IGJ5IHRoZSBvbnVubG9hZCBoYW5kbGVyCiAg
ICAgaWYgKGF1dG8qIGZyYW1lTG9hZGVyID0gRG9jdW1lbnRMb2FkZXI6OmZyYW1lTG9hZGVyKCkp
IHsKLSAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgic3RvcExvYWRpbmc6IGNhbmNlbGlu
ZyBsb2FkIChmcmFtZSA9ICVwLCBtYWluID0gJWQpIiwgbV9mcmFtZSwgbV9mcmFtZS0+aXNNYWlu
RnJhbWUoKSk7CisgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoInN0b3BMb2FkaW5nOiBj
YW5jZWxpbmcgbG9hZCIpOwogICAgICAgICBpZiAoaXNMb2FkaW5nTWFpblJlc291cmNlKCkpIHsK
ICAgICAgICAgICAgIC8vIFN0b3AgdGhlIG1haW4gcmVzb3VyY2UgbG9hZGVyIGFuZCBsZXQgaXQg
c2VuZCB0aGUgY2FuY2VsbGVkIG1lc3NhZ2UuCiAgICAgICAgICAgICBjYW5jZWxNYWluUmVzb3Vy
Y2VMb2FkKGZyYW1lTG9hZGVyLT5jYW5jZWxsZWRFcnJvcihtX3JlcXVlc3QpKTsKQEAgLTQwMCw3
ICs0MDMsNyBAQCB2b2lkIERvY3VtZW50TG9hZGVyOjpub3RpZnlGaW5pc2hlZChDYWNoZWRSZXNv
dXJjZSYgcmVzb3VyY2UpCiAgICAgfQogCiAgICAgaWYgKCFtX21haW5SZXNvdXJjZS0+cmVzb3Vy
Y2VFcnJvcigpLmlzTnVsbCgpKQotICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJub3Rp
ZnlGaW5pc2hlZDogY2FuY2VsaW5nIGxvYWQgKGZyYW1lID0gJXAsIG1haW4gPSAlZCkiLCBtX2Zy
YW1lLCBtX2ZyYW1lLT5pc01haW5GcmFtZSgpKTsKKyAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxM
T1dFRCgibm90aWZ5RmluaXNoZWQ6IGNhbmNlbGluZyBsb2FkICh0eXBlID0gJWQsIGNvZGUgPSAl
ZCkiLCBzdGF0aWNfY2FzdDxpbnQ+KG1fbWFpblJlc291cmNlLT5yZXNvdXJjZUVycm9yKCkudHlw
ZSgpKSwgbV9tYWluUmVzb3VyY2UtPnJlc291cmNlRXJyb3IoKS5lcnJvckNvZGUoKSk7CiAKICAg
ICBtYWluUmVjZWl2ZWRFcnJvcihtX21haW5SZXNvdXJjZS0+cmVzb3VyY2VFcnJvcigpKTsKIH0K
QEAgLTU4MCwxMSArNTgzLDExIEBAIHZvaWQgRG9jdW1lbnRMb2FkZXI6OndpbGxTZW5kUmVxdWVz
dChSZXNvdXJjZVJlcXVlc3QmJiBuZXdSZXF1ZXN0LCBjb25zdCBSZXNvdXJjCiAKICAgICAvLyBM
b2dnaW5nIGZvciA8cmRhcjovL3Byb2JsZW0vNTQ4MzAyMzM+LgogICAgIGlmICghZnJhbWVMb2Fk
ZXIoKSB8fCAhZnJhbWVMb2FkZXIoKS0+cHJvdmlzaW9uYWxEb2N1bWVudExvYWRlcigpKQotICAg
ICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJ3aWxsU2VuZFJlcXVlc3Q6IFdpdGggbm8gcHJv
dmlzaW9uYWwgZG9jdW1lbnQgbG9hZGVyIChmcmFtZSA9ICVwLCBtYWluID0gJWQpIiwgbV9mcmFt
ZSwgbV9mcmFtZSA/IG1fZnJhbWUtPmlzTWFpbkZyYW1lKCkgOiBmYWxzZSk7CisgICAgICAgIFJF
TEVBU0VfTE9HX0lGX0FMTE9XRUQoIndpbGxTZW5kUmVxdWVzdDogV2l0aCBubyBwcm92aXNpb25h
bCBkb2N1bWVudCBsb2FkZXIiKTsKIAogICAgIGJvb2wgZGlkUmVjZWl2ZVJlZGlyZWN0UmVzcG9u
c2UgPSAhcmVkaXJlY3RSZXNwb25zZS5pc051bGwoKTsKICAgICBpZiAoIWZyYW1lTG9hZGVyKCkt
PmNoZWNrSWZGb3JtQWN0aW9uQWxsb3dlZEJ5Q1NQKG5ld1JlcXVlc3QudXJsKCksIGRpZFJlY2Vp
dmVSZWRpcmVjdFJlc3BvbnNlKSkgewotICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJ3
aWxsU2VuZFJlcXVlc3Q6IGNhbmNlbGluZyAtIGZvcm0gYWN0aW9uIG5vdCBhbGxvd2VkIGJ5IENT
UCAoZnJhbWUgPSAlcCwgbWFpbiA9ICVkKSIsIG1fZnJhbWUsIG1fZnJhbWUtPmlzTWFpbkZyYW1l
KCkpOworICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJ3aWxsU2VuZFJlcXVlc3Q6IGNh
bmNlbGluZyAtIGZvcm0gYWN0aW9uIG5vdCBhbGxvd2VkIGJ5IENTUCIpOwogICAgICAgICBjYW5j
ZWxNYWluUmVzb3VyY2VMb2FkKGZyYW1lTG9hZGVyKCktPmNhbmNlbGxlZEVycm9yKG5ld1JlcXVl
c3QpKTsKICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUobmV3UmVxdWVz
dCkpOwogICAgIH0KQEAgLTU5NSwxMyArNTk4LDEzIEBAIHZvaWQgRG9jdW1lbnRMb2FkZXI6Ondp
bGxTZW5kUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QmJiBuZXdSZXF1ZXN0LCBjb25zdCBSZXNvdXJj
CiAgICAgICAgIC8vIHRoZW4gYmxvY2sgdGhlIHJlZGlyZWN0LgogICAgICAgICBSZWY8U2VjdXJp
dHlPcmlnaW4+IHJlZGlyZWN0aW5nT3JpZ2luKFNlY3VyaXR5T3JpZ2luOjpjcmVhdGUocmVkaXJl
Y3RSZXNwb25zZS51cmwoKSkpOwogICAgICAgICBpZiAoIXJlZGlyZWN0aW5nT3JpZ2luLmdldCgp
LmNhbkRpc3BsYXkobmV3UmVxdWVzdC51cmwoKSkpIHsKLSAgICAgICAgICAgIFJFTEVBU0VfTE9H
X0lGX0FMTE9XRUQoIndpbGxTZW5kUmVxdWVzdDogY2FuY2VsaW5nIC0gcmVkaXJlY3RpbmcgVVJM
IG5vdCBhbGxvd2VkIHRvIGRpc3BsYXkgY29udGVudCBmcm9tIHRhcmdldChmcmFtZSA9ICVwLCBt
YWluID0gJWQpIiwgbV9mcmFtZSwgbV9mcmFtZS0+aXNNYWluRnJhbWUoKSk7CisgICAgICAgICAg
ICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJ3aWxsU2VuZFJlcXVlc3Q6IGNhbmNlbGluZyAtIHJl
ZGlyZWN0aW5nIFVSTCBub3QgYWxsb3dlZCB0byBkaXNwbGF5IGNvbnRlbnQgZnJvbSB0YXJnZXQi
KTsKICAgICAgICAgICAgIEZyYW1lTG9hZGVyOjpyZXBvcnRMb2NhbExvYWRGYWlsZWQobV9mcmFt
ZSwgbmV3UmVxdWVzdC51cmwoKS5zdHJpbmcoKSk7CiAgICAgICAgICAgICBjYW5jZWxNYWluUmVz
b3VyY2VMb2FkKGZyYW1lTG9hZGVyKCktPmNhbmNlbGxlZEVycm9yKG5ld1JlcXVlc3QpKTsKICAg
ICAgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKG5ld1JlcXVlc3QpKTsK
ICAgICAgICAgfQogICAgICAgICBpZiAoIXBvcnRBbGxvd2VkKG5ld1JlcXVlc3QudXJsKCkpKSB7
Ci0gICAgICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJ3aWxsU2VuZFJlcXVlc3Q6IGNh
bmNlbGluZyAtIHBvcnQgbm90IGFsbG93ZWQgKGZyYW1lID0gJXAsIG1haW4gPSAlZCkiLCBtX2Zy
YW1lLCBtX2ZyYW1lLT5pc01haW5GcmFtZSgpKTsKKyAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lG
X0FMTE9XRUQoIndpbGxTZW5kUmVxdWVzdDogY2FuY2VsaW5nIC0gcG9ydCBub3QgYWxsb3dlZCIp
OwogICAgICAgICAgICAgRnJhbWVMb2FkZXI6OnJlcG9ydEJsb2NrZWRQb3J0RmFpbGVkKG1fZnJh
bWUsIG5ld1JlcXVlc3QudXJsKCkuc3RyaW5nKCkpOwogICAgICAgICAgICAgY2FuY2VsTWFpblJl
c291cmNlTG9hZChmcmFtZUxvYWRlcigpLT5ibG9ja2VkRXJyb3IobmV3UmVxdWVzdCkpOwogICAg
ICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUobmV3UmVxdWVzdCkpOwpA
QCAtNjg4LDcgKzY5MSw3IEBAIGJvb2wgRG9jdW1lbnRMb2FkZXI6OnRyeUxvYWRpbmdTdWJzdGl0
dXRlRGF0YSgpCiAgICAgaWYgKCFtX3N1YnN0aXR1dGVEYXRhLmlzVmFsaWQoKSB8fCAhbV9mcmFt
ZS0+cGFnZSgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBSRUxFQVNFX0xPR19JRl9B
TExPV0VEKCJzdGFydExvYWRpbmdNYWluUmVzb3VyY2U6IFJldHVybmluZyBzdWJzdGl0dXRlIGRh
dGEgKGZyYW1lID0gJXAsIG1haW4gPSAlZCkiLCBtX2ZyYW1lLCBtX2ZyYW1lLT5pc01haW5GcmFt
ZSgpKTsKKyAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJzdGFydExvYWRpbmdNYWluUmVzb3Vy
Y2U6IFJldHVybmluZyBzdWJzdGl0dXRlIGRhdGEiKTsKICAgICBtX2lkZW50aWZpZXJGb3JMb2Fk
V2l0aG91dFJlc291cmNlTG9hZGVyID0gbV9mcmFtZS0+cGFnZSgpLT5wcm9ncmVzcygpLmNyZWF0
ZVVuaXF1ZUlkZW50aWZpZXIoKTsKICAgICBmcmFtZUxvYWRlcigpLT5ub3RpZmllcigpLmFzc2ln
bklkZW50aWZpZXJUb0luaXRpYWxSZXF1ZXN0KG1faWRlbnRpZmllckZvckxvYWRXaXRob3V0UmVz
b3VyY2VMb2FkZXIsIHRoaXMsIG1fcmVxdWVzdCk7CiAgICAgZnJhbWVMb2FkZXIoKS0+bm90aWZp
ZXIoKS5kaXNwYXRjaFdpbGxTZW5kUmVxdWVzdCh0aGlzLCBtX2lkZW50aWZpZXJGb3JMb2FkV2l0
aG91dFJlc291cmNlTG9hZGVyLCBtX3JlcXVlc3QsIFJlc291cmNlUmVzcG9uc2UoKSk7CkBAIC05
MjMsNyArOTI2LDcgQEAgYm9vbCBEb2N1bWVudExvYWRlcjo6ZGlzYWxsb3dEYXRhUmVxdWVzdCgp
IGNvbnN0CiAKICAgICAgICAgY3VycmVudERvY3VtZW50LT5hZGRDb25zb2xlTWVzc2FnZShNZXNz
YWdlU291cmNlOjpTZWN1cml0eSwgTWVzc2FnZUxldmVsOjpFcnJvciwgbWFrZVN0cmluZygiTm90
IGFsbG93ZWQgdG8gbmF2aWdhdGUgdG9wIGZyYW1lIHRvIGRhdGEgVVJMICciLCBtX3Jlc3BvbnNl
LnVybCgpLnN0cmluZ0NlbnRlckVsbGlwc2l6ZWRUb0xlbmd0aCgpLCAiJy4iKSwgaWRlbnRpZmll
cik7CiAgICAgfQotICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImNvbnRpbnVlQWZ0ZXJDb250
ZW50UG9saWN5OiBjYW5ub3Qgc2hvdyBVUkwgKGZyYW1lID0gJXAsIG1haW4gPSAlZCkiLCBtX2Zy
YW1lLCBtX2ZyYW1lLT5pc01haW5GcmFtZSgpKTsKKyAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VE
KCJjb250aW51ZUFmdGVyQ29udGVudFBvbGljeTogY2Fubm90IHNob3cgVVJMIik7CiAKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KQEAgLTk1NCw3ICs5NTcsNyBAQCB2b2lkIERvY3VtZW50TG9hZGVyOjpj
b250aW51ZUFmdGVyQ29udGVudFBvbGljeShQb2xpY3lBY3Rpb24gcG9saWN5KQogICAgIGNhc2Ug
UG9saWN5QWN0aW9uOjpEb3dubG9hZDogewogICAgICAgICAvLyBtX21haW5SZXNvdXJjZSBjYW4g
YmUgbnVsbCwgZS5nLiB3aGVuIGxvYWRpbmcgYSBzdWJzdGl0dXRlIHJlc291cmNlIGZyb20gYXBw
bGljYXRpb24gY2FjaGUuCiAgICAgICAgIGlmICghbV9tYWluUmVzb3VyY2UpIHsKLSAgICAgICAg
ICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImNvbnRpbnVlQWZ0ZXJDb250ZW50UG9saWN5OiBj
YW5ub3Qgc2hvdyBVUkwgKGZyYW1lID0gJXAsIG1haW4gPSAlZCkiLCBtX2ZyYW1lLCBtX2ZyYW1l
LT5pc01haW5GcmFtZSgpKTsKKyAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImNv
bnRpbnVlQWZ0ZXJDb250ZW50UG9saWN5OiBjYW5ub3Qgc2hvdyBVUkwiKTsKICAgICAgICAgICAg
IG1haW5SZWNlaXZlZEVycm9yKGZyYW1lTG9hZGVyKCktPmNsaWVudCgpLmNhbm5vdFNob3dVUkxF
cnJvcihtX3JlcXVlc3QpKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQpAQCAtMTgw
Miw3ICsxODA1LDcgQEAgdm9pZCBEb2N1bWVudExvYWRlcjo6c3RhcnRMb2FkaW5nTWFpblJlc291
cmNlKCkKICAgICBSZWY8RG9jdW1lbnRMb2FkZXI+IHByb3RlY3RlZFRoaXMoKnRoaXMpOwogCiAg
ICAgaWYgKG1heWJlTG9hZEVtcHR5KCkpIHsKLSAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dF
RCgic3RhcnRMb2FkaW5nTWFpblJlc291cmNlOiBSZXR1cm5pbmcgZW1wdHkgZG9jdW1lbnQgKGZy
YW1lID0gJXAsIG1haW4gPSAlZCkiLCBtX2ZyYW1lLCBtX2ZyYW1lID8gbV9mcmFtZS0+aXNNYWlu
RnJhbWUoKSA6IGZhbHNlKTsKKyAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgic3RhcnRM
b2FkaW5nTWFpblJlc291cmNlOiBSZXR1cm5pbmcgZW1wdHkgZG9jdW1lbnQiKTsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KIApAQCAtMTgyNCw3ICsxODI3LDcgQEAgdm9pZCBEb2N1bWVudExvYWRl
cjo6c3RhcnRMb2FkaW5nTWFpblJlc291cmNlKCkKIAogICAgICAgICAvLyB3aWxsU2VuZFJlcXVl
c3QoKSBtYXkgbGVhZCB0byBvdXIgRnJhbWUgYmVpbmcgZGV0YWNoZWQgb3IgY2FuY2VsbGluZyB0
aGUgbG9hZCB2aWEgbnVsbGluZyB0aGUgUmVzb3VyY2VSZXF1ZXN0LgogICAgICAgICBpZiAoIW1f
ZnJhbWUgfHwgbV9yZXF1ZXN0LmlzTnVsbCgpKSB7Ci0gICAgICAgICAgICBSRUxFQVNFX0xPR19J
Rl9BTExPV0VEKCJzdGFydExvYWRpbmdNYWluUmVzb3VyY2U6IExvYWQgY2FuY2VsZWQgYWZ0ZXIg
d2lsbFNlbmRSZXF1ZXN0IChmcmFtZSA9ICVwLCBtYWluID0gJWQpIiwgbV9mcmFtZSwgbV9mcmFt
ZSA/IG1fZnJhbWUtPmlzTWFpbkZyYW1lKCkgOiBmYWxzZSk7CisgICAgICAgICAgICBSRUxFQVNF
X0xPR19JRl9BTExPV0VEKCJzdGFydExvYWRpbmdNYWluUmVzb3VyY2U6IExvYWQgY2FuY2VsZWQg
YWZ0ZXIgd2lsbFNlbmRSZXF1ZXN0Iik7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0K
IApAQCAtMTgzMiwyNiArMTgzNSwzMCBAQCB2b2lkIERvY3VtZW50TG9hZGVyOjpzdGFydExvYWRp
bmdNYWluUmVzb3VyY2UoKQogICAgICAgICAvLyBJZiB0aGlzIGlzIGEgcmVsb2FkIHRoZSBjYWNo
ZSBsYXllciBtaWdodCBoYXZlIG1hZGUgdGhlIHByZXZpb3VzIHJlcXVlc3QgY29uZGl0aW9uYWwu
IERvY3VtZW50TG9hZGVyIGNhbid0IGhhbmRsZSAzMDQgcmVzcG9uc2VzIGl0c2VsZi4KICAgICAg
ICAgcmVxdWVzdC5tYWtlVW5jb25kaXRpb25hbCgpOwogCi0gICAgICAgIFJFTEVBU0VfTE9HX0lG
X0FMTE9XRUQoInN0YXJ0TG9hZGluZ01haW5SZXNvdXJjZTogU3RhcnRpbmcgbG9hZCAoZnJhbWUg
PSAlcCwgbWFpbiA9ICVkKSIsIG1fZnJhbWUsIG1fZnJhbWUtPmlzTWFpbkZyYW1lKCkpOworICAg
ICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJzdGFydExvYWRpbmdNYWluUmVzb3VyY2U6IFN0
YXJ0aW5nIGxvYWQiKTsKIAogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKICAgICAgICAgaWYg
KG1fYXBwbGljYXRpb25DYWNoZUhvc3QtPmNhbkxvYWRNYWluUmVzb3VyY2UocmVxdWVzdCkgfHwg
bV9zdWJzdGl0dXRlRGF0YS5pc1ZhbGlkKCkpIHsKICAgICAgICAgICAgIGF1dG8gdXJsID0gcmVx
dWVzdC51cmwoKTsKICAgICAgICAgICAgIG1hdGNoUmVnaXN0cmF0aW9uKHVybCwgW3JlcXVlc3Qg
PSBXVEZNb3ZlKHJlcXVlc3QpLCBwcm90ZWN0ZWRUaGlzID0gV1RGTW92ZShwcm90ZWN0ZWRUaGlz
KSwgdGhpc10gKGF1dG8mJiByZWdpc3RyYXRpb25EYXRhKSBtdXRhYmxlIHsKLSAgICAgICAgICAg
ICAgICBpZiAoIW1fbWFpbkRvY3VtZW50RXJyb3IuaXNOdWxsKCkgfHwgIW1fZnJhbWUpIHsKLSAg
ICAgICAgICAgICAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgic3RhcnRMb2FkaW5nTWFp
blJlc291cmNlIGNhbGxiYWNrOiBMb2FkIGNhbmNlbGVkIGJlY2F1c2Ugb2YgbWFpbiBkb2N1bWVu
dCBlcnJvciAoZnJhbWUgPSAlcCwgbWFpbiA9ICVkKSIsIG1fZnJhbWUsIG1fZnJhbWUgPyBtX2Zy
YW1lLT5pc01haW5GcmFtZSgpIDogZmFsc2UpOworICAgICAgICAgICAgICAgIGlmICghbV9tYWlu
RG9jdW1lbnRFcnJvci5pc051bGwoKSkgeworICAgICAgICAgICAgICAgICAgICBSRUxFQVNFX0xP
R19JRl9BTExPV0VEKCJzdGFydExvYWRpbmdNYWluUmVzb3VyY2UgY2FsbGJhY2s6IExvYWQgY2Fu
Y2VsZWQgYmVjYXVzZSBvZiBtYWluIGRvY3VtZW50IGVycm9yICh0eXBlID0gJWQsIGNvZGUgPSAl
ZCkiLCBzdGF0aWNfY2FzdDxpbnQ+KG1fbWFpbkRvY3VtZW50RXJyb3IudHlwZSgpKSwgbV9tYWlu
RG9jdW1lbnRFcnJvci5lcnJvckNvZGUoKSk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKCFtX2ZyYW1lKSB7CisgICAg
ICAgICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoInN0YXJ0TG9hZGluZ01haW5S
ZXNvdXJjZSBjYWxsYmFjazogTG9hZCBjYW5jZWxlZCBiZWNhdXNlIG5vIGZyYW1lIik7CiAgICAg
ICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgICB9CiAKICAgICAgICAgICAg
ICAgICBtX3NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EYXRhID0gV1RGTW92ZShyZWdpc3RyYXRp
b25EYXRhKTsKICAgICAgICAgICAgICAgICAvLyBQcmVmZXIgZXhpc3Rpbmcgc3Vic3RpdHV0ZSBk
YXRhIChmcm9tIFdLV2ViVmlldy5sb2FkRGF0YSBldGMpIG92ZXIgc2VydmljZSB3b3JrZXIgZmV0
Y2guCiAgICAgICAgICAgICAgICAgaWYgKHRoaXMtPnRyeUxvYWRpbmdTdWJzdGl0dXRlRGF0YSgp
KSB7Ci0gICAgICAgICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoInN0YXJ0TG9h
ZGluZ01haW5SZXNvdXJjZSBjYWxsYmFjazogTG9hZCBjYW5jZWxlZCBiZWNhdXNlIG9mIHN1YnN0
aXR1dGUgZGF0YSAoZnJhbWUgPSAlcCwgbWFpbiA9ICVkKSIsIG1fZnJhbWUsIG1fZnJhbWUgPyBt
X2ZyYW1lLT5pc01haW5GcmFtZSgpIDogZmFsc2UpOworICAgICAgICAgICAgICAgICAgICBSRUxF
QVNFX0xPR19JRl9BTExPV0VEKCJzdGFydExvYWRpbmdNYWluUmVzb3VyY2UgY2FsbGJhY2s6IExv
YWQgY2FuY2VsZWQgYmVjYXVzZSBvZiBzdWJzdGl0dXRlIGRhdGEiKTsKICAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgICAgIGlmICgh
bV9zZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0YSAmJiB0aGlzLT50cnlMb2FkaW5nUmVxdWVz
dEZyb21BcHBsaWNhdGlvbkNhY2hlKCkpIHsKLSAgICAgICAgICAgICAgICAgICAgUkVMRUFTRV9M
T0dfSUZfQUxMT1dFRCgic3RhcnRMb2FkaW5nTWFpblJlc291cmNlIGNhbGxiYWNrOiBMb2FkZWQg
ZnJvbSBBcHBsaWNhdGlvbiBDYWNoZSAoZnJhbWUgPSAlcCwgbWFpbiA9ICVkKSIsIG1fZnJhbWUs
IG1fZnJhbWUtPmlzTWFpbkZyYW1lKCkpOworICAgICAgICAgICAgICAgICAgICBSRUxFQVNFX0xP
R19JRl9BTExPV0VEKCJzdGFydExvYWRpbmdNYWluUmVzb3VyY2UgY2FsbGJhY2s6IExvYWRlZCBm
cm9tIEFwcGxpY2F0aW9uIENhY2hlIik7CiAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKICAg
ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgdGhpcy0+bG9hZE1haW5SZXNvdXJjZShX
VEZNb3ZlKHJlcXVlc3QpKTsKQEAgLTE4NjAsNyArMTg2Nyw3IEBAIHZvaWQgRG9jdW1lbnRMb2Fk
ZXI6OnN0YXJ0TG9hZGluZ01haW5SZXNvdXJjZSgpCiAgICAgICAgIH0KICNlbHNlCiAgICAgICAg
IGlmICh0cnlMb2FkaW5nUmVxdWVzdEZyb21BcHBsaWNhdGlvbkNhY2hlKCkpIHsKLSAgICAgICAg
ICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoInN0YXJ0TG9hZGluZ01haW5SZXNvdXJjZTogTG9h
ZGVkIGZyb20gQXBwbGljYXRpb24gQ2FjaGUgKGZyYW1lID0gJXAsIG1haW4gPSAlZCkiLCBtX2Zy
YW1lLCBtX2ZyYW1lLT5pc01haW5GcmFtZSgpKTsKKyAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lG
X0FMTE9XRUQoInN0YXJ0TG9hZGluZ01haW5SZXNvdXJjZTogTG9hZGVkIGZyb20gQXBwbGljYXRp
b24gQ2FjaGUiKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogI2VuZGlmCkBAIC0x
OTE5LDE3ICsxOTI2LDE3IEBAIHZvaWQgRG9jdW1lbnRMb2FkZXI6OmxvYWRNYWluUmVzb3VyY2Uo
UmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCkKICAgICAgICAgLy8gVGhlIGZyYW1lIG1heSBoYXZl
IGdvbmUgYXdheSBpZiB0aGlzIGxvYWQgd2FzIGNhbmNlbGxlZCBzeW5jaHJvbm91c2x5IGFuZCB0
aGlzIHdhcyB0aGUgbGFzdCBwZW5kaW5nIGxvYWQuCiAgICAgICAgIC8vIFRoaXMgaXMgYmVjYXVz
ZSB3ZSBtYXkgaGF2ZSBmaXJlZCB0aGUgbG9hZCBldmVudCBpbiBhIHBhcmVudCBmcmFtZS4KICAg
ICAgICAgaWYgKCFtX2ZyYW1lKSB7Ci0gICAgICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VE
KCJsb2FkTWFpblJlc291cmNlOiBVbmFibGUgdG8gbG9hZCBtYWluIHJlc291cmNlLCBmcmFtZSBo
YXMgZ29uZSBhd2F5IChmcmFtZSA9ICVwLCBtYWluID0gJWQpIiwgbV9mcmFtZSwgbV9mcmFtZS0+
aXNNYWluRnJhbWUoKSk7CisgICAgICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJsb2Fk
TWFpblJlc291cmNlOiBVbmFibGUgdG8gbG9hZCBtYWluIHJlc291cmNlLCBmcmFtZSBoYXMgZ29u
ZSBhd2F5Iik7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIAogICAgICAgICBpZiAo
IW1fcmVxdWVzdC51cmwoKS5pc1ZhbGlkKCkpIHsKLSAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lG
X0FMTE9XRUQoImxvYWRNYWluUmVzb3VyY2U6IFVuYWJsZSB0byBsb2FkIG1haW4gcmVzb3VyY2Us
IFVSTCBpcyBpbnZhbGlkIChmcmFtZSA9ICVwLCBtYWluID0gJWQpIiwgbV9mcmFtZSwgbV9mcmFt
ZS0+aXNNYWluRnJhbWUoKSk7CisgICAgICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJs
b2FkTWFpblJlc291cmNlOiBVbmFibGUgdG8gbG9hZCBtYWluIHJlc291cmNlLCBVUkwgaXMgaW52
YWxpZCIpOwogICAgICAgICAgICAgY2FuY2VsTWFpblJlc291cmNlTG9hZChmcmFtZUxvYWRlcigp
LT5jbGllbnQoKS5jYW5ub3RTaG93VVJMRXJyb3IobV9yZXF1ZXN0KSk7CiAgICAgICAgICAgICBy
ZXR1cm47CiAgICAgICAgIH0KIAotICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJsb2Fk
TWFpblJlc291cmNlOiBVbmFibGUgdG8gbG9hZCBtYWluIHJlc291cmNlLCByZXR1cm5pbmcgZW1w
dHkgZG9jdW1lbnQgKGZyYW1lID0gJXAsIG1haW4gPSAlZCkiLCBtX2ZyYW1lLCBtX2ZyYW1lLT5p
c01haW5GcmFtZSgpKTsKKyAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgibG9hZE1haW5S
ZXNvdXJjZTogVW5hYmxlIHRvIGxvYWQgbWFpbiByZXNvdXJjZSwgcmV0dXJuaW5nIGVtcHR5IGRv
Y3VtZW50Iik7CiAKICAgICAgICAgc2V0UmVxdWVzdChSZXNvdXJjZVJlcXVlc3QoKSk7CiAgICAg
ICAgIC8vIElmIHRoZSBsb2FkIHdhcyBhYm9ydGVkIGJ5IGNsZWFyaW5nIG1fcmVxdWVzdCwgaXQn
cyBwb3NzaWJsZSB0aGUgQXBwbGljYXRpb25DYWNoZUhvc3QKQEAgLTE5NDQsNyArMTk1MSw3IEBA
IHZvaWQgRG9jdW1lbnRMb2FkZXI6OmxvYWRNYWluUmVzb3VyY2UoUmVzb3VyY2VSZXF1ZXN0JiYg
cmVxdWVzdCkKIAogI2lmIEVOQUJMRShDT05URU5UX0VYVEVOU0lPTlMpCiAgICAgaWYgKG1fbWFp
blJlc291cmNlLT5lcnJvck9jY3VycmVkKCkgJiYgbV9mcmFtZS0+cGFnZSgpICYmIG1fbWFpblJl
c291cmNlLT5yZXNvdXJjZUVycm9yKCkuZG9tYWluKCkgPT0gQ29udGVudEV4dGVuc2lvbnM6Oldl
YktpdENvbnRlbnRCbG9ja2VyRG9tYWluKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9X
RUQoImxvYWRNYWluUmVzb3VyY2U6IEJsb2NrZWQgYnkgY29udGVudCBibG9ja2VyIGVycm9yIChm
cmFtZSA9ICVwLCBtYWluID0gJWQpIiwgbV9mcmFtZSwgbV9mcmFtZS0+aXNNYWluRnJhbWUoKSk7
CisgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImxvYWRNYWluUmVzb3VyY2U6IEJsb2Nr
ZWQgYnkgY29udGVudCBibG9ja2VyIGVycm9yIik7CiAgICAgICAgIGNhbmNlbE1haW5SZXNvdXJj
ZUxvYWQoZnJhbWVMb2FkZXIoKS0+YmxvY2tlZEJ5Q29udGVudEJsb2NrZXJFcnJvcihtX3JlcXVl
c3QpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTE5ODIsNyArMTk4OSw3IEBAIHZvaWQg
RG9jdW1lbnRMb2FkZXI6OmNhbmNlbE1haW5SZXNvdXJjZUxvYWQoY29uc3QgUmVzb3VyY2VFcnJv
ciYgcmVzb3VyY2VFcnJvcikKICAgICBSZWY8RG9jdW1lbnRMb2FkZXI+IHByb3RlY3RlZFRoaXMo
KnRoaXMpOwogICAgIFJlc291cmNlRXJyb3IgZXJyb3IgPSByZXNvdXJjZUVycm9yLmlzTnVsbCgp
ID8gZnJhbWVMb2FkZXIoKS0+Y2FuY2VsbGVkRXJyb3IobV9yZXF1ZXN0KSA6IHJlc291cmNlRXJy
b3I7CiAKLSAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJjYW5jZWxNYWluUmVzb3VyY2VMb2Fk
OiAoZnJhbWUgPSAlcCwgbWFpbiA9ICVkLCB0eXBlID0gJWQsIGNvZGUgPSAlZCkiLCBtX2ZyYW1l
LCBtX2ZyYW1lLT5pc01haW5GcmFtZSgpLCBzdGF0aWNfY2FzdDxpbnQ+KGVycm9yLnR5cGUoKSks
IGVycm9yLmVycm9yQ29kZSgpKTsKKyAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJjYW5jZWxN
YWluUmVzb3VyY2VMb2FkOiAodHlwZSA9ICVkLCBjb2RlID0gJWQpIiwgc3RhdGljX2Nhc3Q8aW50
PihlcnJvci50eXBlKCkpLCBlcnJvci5lcnJvckNvZGUoKSk7CiAKICAgICBtX2RhdGFMb2FkVGlt
ZXIuc3RvcCgpOwogCkBAIC0yMjQwLDMgKzIyNDcsNyBAQCBSZXNvdXJjZUVycm9yIERvY3VtZW50
TG9hZGVyOjpjb250ZW50RmlsdGVyRGlkQmxvY2soQ29udGVudEZpbHRlclVuYmxvY2tIYW5kbGVy
CiAjZW5kaWYgLy8gRU5BQkxFKENPTlRFTlRfRklMVEVSSU5HKQogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCisKKyN1bmRlZiBQQUdFX0lECisjdW5kZWYgRlJBTUVfSUQKKyN1bmRlZiBJU19NQUlO
X0ZSQU1FCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAppbmRleCAzMWE0ZmQ4ZmQ5
NWU0YzQ4YmY4NmQ3ZmFiODg4MDU2OTdhODYxNmEyLi4wYjhiNTIwODZhZjNkNmQyOWQ2NzMzNmJi
ZGUyNzgxZGZkNTc5ODQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVM
b2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKQEAg
LTE1MSwxMCArMTUxLDEwIEBACiAjaW5jbHVkZSAiUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmgi
CiAjZW5kaWYKIAotI2RlZmluZSBGUkFNRUxPQURFUl9SRUxFQVNFX0xPRyhjaGFubmVsLCBmbXQs
IC4uLikgUkVMRUFTRV9MT0coY2hhbm5lbCwgIiVwIC0gW2ZyYW1lPSVwLCBtYWluPSVkXSBGcmFt
ZUxvYWRlcjo6IiBmbXQsIHRoaXMsICZtX2ZyYW1lLCBtX2ZyYW1lLmlzTWFpbkZyYW1lKCksICMj
X19WQV9BUkdTX18pCi0jZGVmaW5lIEZSQU1FTE9BREVSX1JFTEVBU0VfTE9HX0VSUk9SKGNoYW5u
ZWwsIGZtdCwgLi4uKSBSRUxFQVNFX0xPRyhjaGFubmVsLCAiJXAgLSBbZnJhbWU9JXAsIG1haW49
JWRdIEZyYW1lTG9hZGVyOjoiIGZtdCwgdGhpcywgJm1fZnJhbWUsIG1fZnJhbWUuaXNNYWluRnJh
bWUoKSwgIyNfX1ZBX0FSR1NfXykKLSNkZWZpbmUgRlJBTUVMT0FERVJfUkVMRUFTRV9MT0dfSUZf
QUxMT1dFRChjaGFubmVsLCBmbXQsIC4uLikgUkVMRUFTRV9MT0dfSUYoaXNBbHdheXNPbkxvZ2dp
bmdBbGxvd2VkKCksIGNoYW5uZWwsICIlcCAtIFtmcmFtZT0lcCwgbWFpbj0lZF0gRnJhbWVMb2Fk
ZXI6OiIgZm10LCB0aGlzLCAmbV9mcmFtZSwgbV9mcmFtZS5pc01haW5GcmFtZSgpLCAjI19fVkFf
QVJHU19fKQotI2RlZmluZSBGUkFNRUxPQURFUl9SRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VE
KGNoYW5uZWwsIGZtdCwgLi4uKSBSRUxFQVNFX0xPR19JRihpc0Fsd2F5c09uTG9nZ2luZ0FsbG93
ZWQoKSwgY2hhbm5lbCwgIiVwIC0gW2ZyYW1lPSVwLCBtYWluPSVkXSBGcmFtZUxvYWRlcjo6IiBm
bXQsIHRoaXMsICZtX2ZyYW1lLCBtX2ZyYW1lLmlzTWFpbkZyYW1lKCksICMjX19WQV9BUkdTX18p
CisjZGVmaW5lIFBBR0VfSUQgKChwYWdlSUQoKS52YWx1ZU9yKFBhZ2VJZGVudGlmaWVyKCkpKS50
b1VJbnQ2NCgpKQorI2RlZmluZSBGUkFNRV9JRCAoKGZyYW1lSUQoKS52YWx1ZU9yKEZyYW1lSWRl
bnRpZmllcigpKSkudG9VSW50NjQoKSkKKyNkZWZpbmUgRlJBTUVMT0FERVJfUkVMRUFTRV9MT0df
SUZfQUxMT1dFRChjaGFubmVsLCBmbXQsIC4uLikgUkVMRUFTRV9MT0dfSUYoaXNBbHdheXNPbkxv
Z2dpbmdBbGxvd2VkKCksIGNoYW5uZWwsICIlcCAtIFtwYWdlSUQ9JSIgUFJJdTY0ICIsIGZyYW1l
SUQ9JSIgUFJJdTY0ICIsIG1haW49JWRdIEZyYW1lTG9hZGVyOjoiIGZtdCwgdGhpcywgUEFHRV9J
RCwgRlJBTUVfSUQsIG1fZnJhbWUuaXNNYWluRnJhbWUoKSwgIyNfX1ZBX0FSR1NfXykKKyNkZWZp
bmUgRlJBTUVMT0FERVJfUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRChjaGFubmVsLCBmbXQs
IC4uLikgUkVMRUFTRV9MT0dfSUYoaXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCksIGNoYW5uZWws
ICIlcCAtIFtwYWdlSUQ9JSIgUFJJdTY0ICIsIGZyYW1lSUQ9JSIgUFJJdTY0ICIsIG1haW49JWRd
IEZyYW1lTG9hZGVyOjoiIGZtdCwgdGhpcywgUEFHRV9JRCwgRlJBTUVfSUQsIG1fZnJhbWUuaXNN
YWluRnJhbWUoKSwgIyNfX1ZBX0FSR1NfXykKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0z
NzgsNiArMzc4LDE2IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmluaXRGb3JTeW50aGVzaXplZERvY3Vt
ZW50KGNvbnN0IFVSTCYpCiAgICAgbV9wcm9ncmVzc1RyYWNrZXIgPSBtYWtlVW5pcXVlPEZyYW1l
UHJvZ3Jlc3NUcmFja2VyPihtX2ZyYW1lKTsKIH0KIAorT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+
IEZyYW1lTG9hZGVyOjpwYWdlSUQoKSBjb25zdAoreworICAgIHJldHVybiBjbGllbnQoKS5wYWdl
SUQoKTsKK30KKworT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBGcmFtZUxvYWRlcjo6ZnJhbWVJ
RCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGNsaWVudCgpLmZyYW1lSUQoKTsKK30KKwogdm9pZCBG
cmFtZUxvYWRlcjo6c2V0RGVmZXJzTG9hZGluZyhib29sIGRlZmVycykKIHsKICAgICBpZiAobV9k
b2N1bWVudExvYWRlcikKQEAgLTM4OTEsNyArMzkwMSw3IEBAIHZvaWQgRnJhbWVMb2FkZXI6OnJl
dHJ5QWZ0ZXJGYWlsZWRDYWNoZU9ubHlNYWluUmVzb3VyY2VMb2FkKCkKICAgICAgICAgbG9hZERp
ZmZlcmVudERvY3VtZW50SXRlbSgqaXRlbSwgaGlzdG9yeSgpLmN1cnJlbnRJdGVtKCksIGxvYWRU
eXBlLCBNYXlOb3RBdHRlbXB0Q2FjaGVPbmx5TG9hZEZvckZvcm1TdWJtaXNzaW9uSXRlbSwgU2hv
dWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkOjpObyk7CiAgICAgZWxzZSB7CiAgICAgICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICBGUkFNRUxPQURFUl9SRUxFQVNFX0xPR19FUlJPUihS
ZXNvdXJjZUxvYWRpbmcsICJyZXRyeUFmdGVyRmFpbGVkQ2FjaGVPbmx5TWFpblJlc291cmNlTG9h
ZDogUmV0cnlpbmcgbG9hZCBhZnRlciBmYWlsZWQgY2FjaGUtb25seSBtYWluIHJlc291cmNlIGxv
YWQgZmFpbGVkIGJlY2F1c2UgdGhlcmUgaXMgbm8gcHJvdmlzaW9uYWwgaGlzdG9yeSBpdGVtLiIp
OworICAgICAgICBGUkFNRUxPQURFUl9SRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKFJlc291
cmNlTG9hZGluZywgInJldHJ5QWZ0ZXJGYWlsZWRDYWNoZU9ubHlNYWluUmVzb3VyY2VMb2FkOiBS
ZXRyeWluZyBsb2FkIGFmdGVyIGZhaWxlZCBjYWNoZS1vbmx5IG1haW4gcmVzb3VyY2UgbG9hZCBm
YWlsZWQgYmVjYXVzZSB0aGVyZSBpcyBubyBwcm92aXNpb25hbCBoaXN0b3J5IGl0ZW0uIik7CiAg
ICAgfQogfQogCkBAIC00MjA0LDMgKzQyMTQsNiBAQCBib29sIEZyYW1lTG9hZGVyOjpzaG91bGRT
dXBwcmVzc1RleHRJbnB1dEZyb21FZGl0aW5nKCkgY29uc3QKIH0KIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQorCisjdW5kZWYgUEFHRV9JRAorI3VuZGVmIEZSQU1FX0lECmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9GcmFtZUxvYWRlci5oCmluZGV4IGVjYzhhNGUxYmEyZjg1MzNlMmE3OGNlNjY0YWUxNjViYzkz
YmYwMmUuLjBhMDI4YjlhZDU1YWI2YzU3MGNjYTc5OWI1YjdiNGI1Y2RjYjg1YzkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9GcmFtZUxvYWRlci5oCkBAIC0zMywxMCArMzMsMTIgQEAKIAogI2luY2x1ZGUg
IkFkQ2xpY2tBdHRyaWJ1dGlvbi5oIgogI2luY2x1ZGUgIkNhY2hlUG9saWN5LmgiCisjaW5jbHVk
ZSAiRnJhbWVJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJTdGF0ZU1hY2hpbmUu
aCIKICNpbmNsdWRlICJGcmFtZUxvYWRlclR5cGVzLmgiCiAjaW5jbHVkZSAiTGF5b3V0TWlsZXN0
b25lLmgiCiAjaW5jbHVkZSAiTWl4ZWRDb250ZW50Q2hlY2tlci5oIgorI2luY2x1ZGUgIlBhZ2VJ
ZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiUG9saWN5Q2hlY2tlci5oIgogI2luY2x1ZGUgIlJlZmVy
cmVyUG9saWN5LmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VMb2FkTm90aWZpZXIuaCIKQEAgLTIyNiw2
ICsyMjgsOSBAQCBwdWJsaWM6CiAKICAgICBGcmFtZUxvYWRlckNsaWVudCYgY2xpZW50KCkgY29u
c3QgeyByZXR1cm4gbV9jbGllbnQ7IH0KIAorICAgIFdFQkNPUkVfRVhQT1JUIE9wdGlvbmFsPFBh
Z2VJZGVudGlmaWVyPiBwYWdlSUQoKSBjb25zdDsKKyAgICBXRUJDT1JFX0VYUE9SVCBPcHRpb25h
bDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQoKSBjb25zdDsKKwogICAgIHZvaWQgc2V0RGVmZXJz
TG9hZGluZyhib29sKTsKIAogICAgIHZvaWQgY2hlY2tDb250ZW50UG9saWN5KGNvbnN0IFJlc291
cmNlUmVzcG9uc2UmLCBQb2xpY3lDaGVja0lkZW50aWZpZXIsIENvbnRlbnRQb2xpY3lEZWNpc2lv
bkZ1bmN0aW9uJiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNl
TG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5jcHAKaW5k
ZXggYTM1NzI3NTBlY2JhZTRiMzdkYmUwYWJhYzNjMDM2Y2YxOGQ5NjA0Yy4uODc2YzlkNTg1Nzdj
NzY0ZTMzNTU2ZjM2OTJlZWJmY2MwODhkMTJkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL1Jlc291cmNlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVz
b3VyY2VMb2FkZXIuY3BwCkBAIC02NCw3ICs2NCw5IEBACiAjZW5kaWYKIAogI3VuZGVmIFJFTEVB
U0VfTE9HX0lGX0FMTE9XRUQKLSNkZWZpbmUgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChmbXQsIC4u
LikgUkVMRUFTRV9MT0dfSUYoaXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCksIE5ldHdvcmssICIl
cCAtIFtmcmFtZT0lcCwgZnJhbWVMb2FkZXI9JXAsIHJlc291cmNlSUQ9JWx1XSBSZXNvdXJjZUxv
YWRlcjo6IiBmbXQsIHRoaXMsIGZyYW1lKCksIGZyYW1lTG9hZGVyKCksIGlkZW50aWZpZXIoKSwg
IyNfX1ZBX0FSR1NfXykKKyNkZWZpbmUgUEFHRV9JRCAoKGZyYW1lKCkgPyBmcmFtZSgpLT5wYWdl
SUQoKS52YWx1ZU9yKFBhZ2VJZGVudGlmaWVyKCkpIDogUGFnZUlkZW50aWZpZXIoKSkudG9VSW50
NjQoKSkKKyNkZWZpbmUgRlJBTUVfSUQgKChmcmFtZSgpID8gZnJhbWUoKS0+ZnJhbWVJRCgpLnZh
bHVlT3IoRnJhbWVJZGVudGlmaWVyKCkpIDogRnJhbWVJZGVudGlmaWVyKCkpLnRvVUludDY0KCkp
CisjZGVmaW5lIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoZm10LCAuLi4pIFJFTEVBU0VfTE9HX0lG
KGlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpLCBOZXR3b3JrLCAiJXAgLSBbcGFnZUlEPSUiIFBS
SXU2NCAiLCBmcmFtZUlEPSUiIFBSSXU2NCAiLCBmcmFtZUxvYWRlcj0lcCwgcmVzb3VyY2VJRD0l
bHVdIFJlc291cmNlTG9hZGVyOjoiIGZtdCwgdGhpcywgUEFHRV9JRCwgRlJBTUVfSUQsIGZyYW1l
TG9hZGVyKCksIGlkZW50aWZpZXIoKSwgIyNfX1ZBX0FSR1NfXykKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCkBAIC04MzEsNCArODMzLDcgQEAgYm9vbCBSZXNvdXJjZUxvYWRlcjo6aXNBbHdheXNP
bkxvZ2dpbmdBbGxvd2VkKCkgY29uc3QKICAgICByZXR1cm4gZnJhbWVMb2FkZXIoKSAmJiBmcmFt
ZUxvYWRlcigpLT5pc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKTsKIH0KIAotfQorfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQorCisjdW5kZWYgUEFHRV9JRAorI3VuZGVmIEZSQU1FX0lECmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3VicmVzb3VyY2VMb2FkZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL1N1YnJlc291cmNlTG9hZGVyLmNwcAppbmRleCAwNjAwZmYzNWQyNDky
MWU3NTA4MzcwZTA5YmIwYzk3ODFlMmUzYzRhLi44YTVlMTk2ZTFjZDI5NDYzMWEwNTA4NjFiYTFi
OTVjMzYxYzNhYjc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3VicmVzb3Vy
Y2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJyZXNvdXJjZUxvYWRl
ci5jcHAKQEAgLTcwLDggKzcwLDEwIEBACiAKICN1bmRlZiBSRUxFQVNFX0xPR19JRl9BTExPV0VE
CiAjdW5kZWYgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRAotI2RlZmluZSBSRUxFQVNFX0xP
R19JRl9BTExPV0VEKGZtdCwgLi4uKSBSRUxFQVNFX0xPR19JRihpc0Fsd2F5c09uTG9nZ2luZ0Fs
bG93ZWQoKSwgUmVzb3VyY2VMb2FkaW5nLCAiJXAgLSBbZnJhbWU9JXAsIGZyYW1lTG9hZGVyPSVw
LCByZXNvdXJjZUlEPSVsdV0gU3VicmVzb3VyY2VMb2FkZXI6OiIgZm10LCB0aGlzLCBmcmFtZSgp
LCBmcmFtZUxvYWRlcigpLCBpZGVudGlmaWVyKCksICMjX19WQV9BUkdTX18pCi0jZGVmaW5lIFJF
TEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQoZm10LCAuLi4pIFJFTEVBU0VfTE9HX0VSUk9SX0lG
KGlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpLCBSZXNvdXJjZUxvYWRpbmcsICIlcCAtIFtmcmFt
ZT0lcCwgZnJhbWVMb2FkZXI9JXAsIHJlc291cmNlSUQ9JWx1XSBTdWJyZXNvdXJjZUxvYWRlcjo6
IiBmbXQsIHRoaXMsIGZyYW1lKCksIGZyYW1lTG9hZGVyKCksIGlkZW50aWZpZXIoKSwgIyNfX1ZB
X0FSR1NfXykKKyNkZWZpbmUgUEFHRV9JRCAoKGZyYW1lKCkgPyBmcmFtZSgpLT5wYWdlSUQoKS52
YWx1ZU9yKFBhZ2VJZGVudGlmaWVyKCkpIDogUGFnZUlkZW50aWZpZXIoKSkudG9VSW50NjQoKSkK
KyNkZWZpbmUgRlJBTUVfSUQgKChmcmFtZSgpID8gZnJhbWUoKS0+ZnJhbWVJRCgpLnZhbHVlT3Io
RnJhbWVJZGVudGlmaWVyKCkpIDogRnJhbWVJZGVudGlmaWVyKCkpLnRvVUludDY0KCkpCisjZGVm
aW5lIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoZm10LCAuLi4pIFJFTEVBU0VfTE9HX0lGKGlzQWx3
YXlzT25Mb2dnaW5nQWxsb3dlZCgpLCBSZXNvdXJjZUxvYWRpbmcsICIlcCAtIFtwYWdlSUQ9JSIg
UFJJdTY0ICIsIGZyYW1lSUQ9JSIgUFJJdTY0ICIsIGZyYW1lTG9hZGVyPSVwLCByZXNvdXJjZUlE
PSVsdV0gU3VicmVzb3VyY2VMb2FkZXI6OiIgZm10LCB0aGlzLCBQQUdFX0lELCBGUkFNRV9JRCwg
ZnJhbWVMb2FkZXIoKSwgaWRlbnRpZmllcigpLCAjI19fVkFfQVJHU19fKQorI2RlZmluZSBSRUxF
QVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKGZtdCwgLi4uKSBSRUxFQVNFX0xPR19FUlJPUl9JRihp
c0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKSwgUmVzb3VyY2VMb2FkaW5nLCAiJXAgLSBbcGFnZUlE
PSUiIFBSSXU2NCAiLCBmcmFtZUlEPSUiIFBSSXU2NCAiLCBmcmFtZUxvYWRlcj0lcCwgcmVzb3Vy
Y2VJRD0lbHVdIFN1YnJlc291cmNlTG9hZGVyOjoiIGZtdCwgdGhpcywgUEFHRV9JRCwgRlJBTUVf
SUQsIGZyYW1lTG9hZGVyKCksIGlkZW50aWZpZXIoKSwgIyNfX1ZBX0FSR1NfXykKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCkBAIC04NzgsNyArODgwLDkgQEAgY29uc3QgSFRUUEhlYWRlck1hcCog
U3VicmVzb3VyY2VMb2FkZXI6Om9yaWdpbmFsSGVhZGVycygpIGNvbnN0CiAgICAgcmV0dXJuICht
X3Jlc291cmNlICAmJiBtX3Jlc291cmNlLT5vcmlnaW5hbFJlcXVlc3QoKSkgPyAmbV9yZXNvdXJj
ZS0+b3JpZ2luYWxSZXF1ZXN0KCktPmh0dHBIZWFkZXJGaWVsZHMoKSA6IG51bGxwdHI7CiB9CiAK
LX0KK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAorI3VuZGVmIFBBR0VfSUQKKyN1bmRlZiBGUkFN
RV9JRAogI3VuZGVmIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQKICN1bmRlZiBSRUxFQVNFX0xPR19F
UlJPUl9JRl9BTExPV0VECmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUv
Q2FjaGVkUmVzb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJl
c291cmNlLmNwcAppbmRleCA2ZjE1N2EwMTAwYzliMTVkOTQ3ZTk4NjE4NzZiNjQzMzEyNzAzNTJj
Li4xNmE1MzUxNWE2Njk5ZWQ3ZGFhMGE4MDZmZDBkNjY1Mzg4MmFmODAyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHAKQEAgLTYzLDcgKzYzLDEw
IEBACiAKICN1bmRlZiBSRUxFQVNFX0xPR19JRl9BTExPV0VECiAjdW5kZWYgUkVMRUFTRV9MT0df
QUxXQVlTCisjZGVmaW5lIFBBR0VfSUQoZnJhbWUpIChmcmFtZS5wYWdlSUQoKS52YWx1ZU9yKFBh
Z2VJZGVudGlmaWVyKCkpLnRvVUludDY0KCkpCisjZGVmaW5lIEZSQU1FX0lEKGZyYW1lKSAoZnJh
bWUuZnJhbWVJRCgpLnZhbHVlT3IoRnJhbWVJZGVudGlmaWVyKCkpLnRvVUludDY0KCkpCiAjZGVm
aW5lIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoZm10LCAuLi4pIFJFTEVBU0VfTE9HX0lGKGNhY2hl
ZFJlc291cmNlTG9hZGVyLmlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpLCBOZXR3b3JrLCAiJXAg
LSBDYWNoZWRSZXNvdXJjZTo6IiBmbXQsIHRoaXMsICMjX19WQV9BUkdTX18pCisjZGVmaW5lIFJF
TEVBU0VfTE9HX0lGX0FMTE9XRURfV0lUSF9GUkFNRShmbXQsIGZyYW1lLCAuLi4pIFJFTEVBU0Vf
TE9HX0lGKGNhY2hlZFJlc291cmNlTG9hZGVyLmlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpLCBO
ZXR3b3JrLCAiJXAgLSBbcGFnZUlEPSUiIFBSSXU2NCAiLCBmcmFtZUlEPSUiIFBSSXU2NCAiXSBD
YWNoZWRSZXNvdXJjZTo6IiBmbXQsIHRoaXMsIFBBR0VfSUQoZnJhbWUpLCBGUkFNRV9JRChmcmFt
ZSksICMjX19WQV9BUkdTX18pCiAjZGVmaW5lIFJFTEVBU0VfTE9HX0FMV0FZUyhmbXQsIC4uLikg
UkVMRUFTRV9MT0coTmV0d29yaywgIiVwIC0gQ2FjaGVkUmVzb3VyY2U6OiIgZm10LCB0aGlzLCAj
I19fVkFfQVJHU19fKQogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0yMjksMTEgKzIzMiwxMSBA
QCB2b2lkIENhY2hlZFJlc291cmNlOjpsb2FkKENhY2hlZFJlc291cmNlTG9hZGVyJiBjYWNoZWRS
ZXNvdXJjZUxvYWRlcikKICAgICAgICAgICAgIC8vIEJlYWNvbnMgYXJlIGFsbG93ZWQgdG8gZ28g
dGhyb3VnaCBpbiAncGFnZWhpZGUnIGV2ZW50IGhhbmRsZXJzLgogICAgICAgICAgICAgaWYgKHNo
b3VsZFVzZVBpbmdMb2FkKHR5cGUoKSkpCiAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAg
ICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJsb2FkOiBBYm91dCB0byBlbnRlciBiYWNrL2Zv
cndhcmQgY2FjaGUgKGZyYW1lID0gJXApIiwgJmZyYW1lKTsKKyAgICAgICAgICAgIFJFTEVBU0Vf
TE9HX0lGX0FMTE9XRURfV0lUSF9GUkFNRSgibG9hZDogQWJvdXQgdG8gZW50ZXIgYmFjay9mb3J3
YXJkIGNhY2hlIiwgZnJhbWUpOwogICAgICAgICAgICAgZmFpbEJlZm9yZVN0YXJ0aW5nKCk7CiAg
ICAgICAgICAgICByZXR1cm47CiAgICAgICAgIGNhc2UgRG9jdW1lbnQ6OkluQmFja0ZvcndhcmRD
YWNoZToKLSAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImxvYWQ6IEFscmVhZHkg
aW4gYmFjay9mb3J3YXJkIGNhY2hlIChmcmFtZSA9ICVwKSIsICZmcmFtZSk7CisgICAgICAgICAg
ICBSRUxFQVNFX0xPR19JRl9BTExPV0VEX1dJVEhfRlJBTUUoImxvYWQ6IEFscmVhZHkgaW4gYmFj
ay9mb3J3YXJkIGNhY2hlIiwgZnJhbWUpOwogICAgICAgICAgICAgZmFpbEJlZm9yZVN0YXJ0aW5n
KCk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KQEAgLTI0MywxMSArMjQ2LDExIEBA
IHZvaWQgQ2FjaGVkUmVzb3VyY2U6OmxvYWQoQ2FjaGVkUmVzb3VyY2VMb2FkZXImIGNhY2hlZFJl
c291cmNlTG9hZGVyKQogICAgIGlmIChtX29wdGlvbnMuc2VjdXJpdHlDaGVjayA9PSBTZWN1cml0
eUNoZWNrUG9saWN5OjpEb1NlY3VyaXR5Q2hlY2sgJiYgIXNob3VsZFVzZVBpbmdMb2FkKHR5cGUo
KSkpIHsKICAgICAgICAgd2hpbGUgKHRydWUpIHsKICAgICAgICAgICAgIGlmIChmcmFtZUxvYWRl
ci5zdGF0ZSgpID09IEZyYW1lU3RhdGVQcm92aXNpb25hbCkKLSAgICAgICAgICAgICAgICBSRUxF
QVNFX0xPR19JRl9BTExPV0VEKCJsb2FkOiBGYWlsZWQgc2VjdXJpdHkgY2hlY2sgLS0gc3RhdGUg
aXMgcHJvdmlzaW9uYWwgKGZyYW1lID0gJXApIiwgJmZyYW1lKTsKKyAgICAgICAgICAgICAgICBS
RUxFQVNFX0xPR19JRl9BTExPV0VEX1dJVEhfRlJBTUUoImxvYWQ6IEZhaWxlZCBzZWN1cml0eSBj
aGVjayAtLSBzdGF0ZSBpcyBwcm92aXNpb25hbCIsIGZyYW1lKTsKICAgICAgICAgICAgIGVsc2Ug
aWYgKCFmcmFtZUxvYWRlci5hY3RpdmVEb2N1bWVudExvYWRlcigpKQotICAgICAgICAgICAgICAg
IFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImxvYWQ6IEZhaWxlZCBzZWN1cml0eSBjaGVjayAtLSBu
b3QgYWN0aXZlIGRvY3VtZW50IChmcmFtZSA9ICVwKSIsICZmcmFtZSk7CisgICAgICAgICAgICAg
ICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRF9XSVRIX0ZSQU1FKCJsb2FkOiBGYWlsZWQgc2VjdXJp
dHkgY2hlY2sgLS0gbm90IGFjdGl2ZSBkb2N1bWVudCIsIGZyYW1lKTsKICAgICAgICAgICAgIGVs
c2UgaWYgKGZyYW1lTG9hZGVyLmFjdGl2ZURvY3VtZW50TG9hZGVyKCktPmlzU3RvcHBpbmcoKSkK
LSAgICAgICAgICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJsb2FkOiBGYWlsZWQgc2Vj
dXJpdHkgY2hlY2sgLS0gYWN0aXZlIGxvYWRlciBpcyBzdG9wcGluZyAoZnJhbWUgPSAlcCkiLCAm
ZnJhbWUpOworICAgICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRURfV0lUSF9GUkFN
RSgibG9hZDogRmFpbGVkIHNlY3VyaXR5IGNoZWNrIC0tIGFjdGl2ZSBsb2FkZXIgaXMgc3RvcHBp
bmciLCBmcmFtZSk7CiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgICAgICBmYWlsQmVmb3JlU3RhcnRpbmcoKTsKQEAgLTMyNCwxMCArMzI3LDExIEBAIHZv
aWQgQ2FjaGVkUmVzb3VyY2U6OmxvYWQoQ2FjaGVkUmVzb3VyY2VMb2FkZXImIGNhY2hlZFJlc291
cmNlTG9hZGVyKQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgcGxhdGZvcm1TdHJhdGVn
aWVzKCktPmxvYWRlclN0cmF0ZWd5KCktPmxvYWRSZXNvdXJjZShmcmFtZSwgKnRoaXMsIFdURk1v
dmUocmVxdWVzdCksIG1fb3B0aW9ucywgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBDYWNoZWRSZXNv
dXJjZUhhbmRsZTxDYWNoZWRSZXNvdXJjZT4odGhpcyksIGZyYW1lID0gbWFrZVJlZihmcmFtZSks
IGxvZ2dpbmdBbGxvd2VkID0gY2FjaGVkUmVzb3VyY2VMb2FkZXIuaXNBbHdheXNPbkxvZ2dpbmdB
bGxvd2VkKCldIChSZWZQdHI8U3VicmVzb3VyY2VMb2FkZXI+JiYgbG9hZGVyKSB7CisgICAgcGxh
dGZvcm1TdHJhdGVnaWVzKCktPmxvYWRlclN0cmF0ZWd5KCktPmxvYWRSZXNvdXJjZShmcmFtZSwg
KnRoaXMsIFdURk1vdmUocmVxdWVzdCksIG1fb3B0aW9ucywgW3RoaXMsIHByb3RlY3RlZFRoaXMg
PSBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRSZXNvdXJjZT4odGhpcyksIGZyYW1lUmVmID0g
bWFrZVJlZihmcmFtZSksIGxvZ2dpbmdBbGxvd2VkID0gY2FjaGVkUmVzb3VyY2VMb2FkZXIuaXNB
bHdheXNPbkxvZ2dpbmdBbGxvd2VkKCldIChSZWZQdHI8U3VicmVzb3VyY2VMb2FkZXI+JiYgbG9h
ZGVyKSB7CiAgICAgICAgIG1fbG9hZGVyID0gV1RGTW92ZShsb2FkZXIpOwogICAgICAgICBpZiAo
IW1fbG9hZGVyKSB7Ci0gICAgICAgICAgICBSRUxFQVNFX0xPR19JRihsb2dnaW5nQWxsb3dlZCwg
TmV0d29yaywgIiVwIC0gQ2FjaGVkUmVzb3VyY2U6OmxvYWQ6IFVuYWJsZSB0byBjcmVhdGUgU3Vi
cmVzb3VyY2VMb2FkZXIgKGZyYW1lID0gJXApIiwgdGhpcywgZnJhbWUucHRyKCkpOworICAgICAg
ICAgICAgYXV0byYgZnJhbWUgPSBmcmFtZVJlZi5nZXQoKTsKKyAgICAgICAgICAgIFJFTEVBU0Vf
TE9HX0lGKGxvZ2dpbmdBbGxvd2VkLCBOZXR3b3JrLCAiJXAgLSBbcGFnZUlEPSUiIFBSSXU2NCAi
LCBmcmFtZUlEPSUiIFBSSXU2NCAiXSBDYWNoZWRSZXNvdXJjZTo6bG9hZDogVW5hYmxlIHRvIGNy
ZWF0ZSBTdWJyZXNvdXJjZUxvYWRlciIsIHRoaXMsIFBBR0VfSUQoZnJhbWUpLCBGUkFNRV9JRChm
cmFtZSkpOwogICAgICAgICAgICAgZmFpbEJlZm9yZVN0YXJ0aW5nKCk7CiAgICAgICAgICAgICBy
ZXR1cm47CiAgICAgICAgIH0KQEAgLTk1NiwzICs5NjAsOSBAQCB2b2lkIENhY2hlZFJlc291cmNl
OjpwcmV2aWV3UmVzcG9uc2VSZWNlaXZlZChjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25z
ZSkKICNlbmRpZgogCiB9CisKKyN1bmRlZiBQQUdFX0lECisjdW5kZWYgRlJBTUVfSUQKKyN1bmRl
ZiBSRUxFQVNFX0xPR19JRl9BTExPV0VECisjdW5kZWYgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRF9X
SVRIX0ZSQU1FCisjdW5kZWYgUkVMRUFTRV9MT0dfQUxXQVlTCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcAppbmRleCBmMTYyYzg1
MTBjNGEyYjRmZjc0MTE2YzU2NDNkOTg2Njc4M2JjM2QwLi41YWRjN2RlMzJiMTQ5NjFjNWExMzlh
MDcyNDQyNzZlNTdjYjA1NWJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2Fj
aGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9j
YWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAKQEAgLTk1LDcgKzk1LDEwIEBACiAjZW5kaWYK
IAogI3VuZGVmIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQKKyNkZWZpbmUgUEFHRV9JRChmcmFtZSkg
KGZyYW1lLnBhZ2VJRCgpLnZhbHVlT3IoUGFnZUlkZW50aWZpZXIoKSkudG9VSW50NjQoKSkKKyNk
ZWZpbmUgRlJBTUVfSUQoZnJhbWUpIChmcmFtZS5mcmFtZUlEKCkudmFsdWVPcihGcmFtZUlkZW50
aWZpZXIoKSkudG9VSW50NjQoKSkKICNkZWZpbmUgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChmbXQs
IC4uLikgUkVMRUFTRV9MT0dfSUYoaXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCksIE5ldHdvcmss
ICIlcCAtIENhY2hlZFJlc291cmNlTG9hZGVyOjoiIGZtdCwgdGhpcywgIyNfX1ZBX0FSR1NfXykK
KyNkZWZpbmUgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRF9XSVRIX0ZSQU1FKGZtdCwgZnJhbWUsIC4u
LikgUkVMRUFTRV9MT0dfSUYoaXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCksIE5ldHdvcmssICIl
cCAtIFtwYWdlSUQ9JSIgUFJJdTY0ICIsIGZyYW1lSUQ9JSIgUFJJdTY0ICJdIENhY2hlZFJlc291
cmNlTG9hZGVyOjoiIGZtdCwgdGhpcywgUEFHRV9JRChmcmFtZSksIEZSQU1FX0lEKGZyYW1lKSwg
IyNfX1ZBX0FSR1NfXykKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC04MTksNyArODIyLDcg
QEAgUmVzb3VyY2VFcnJvck9yPENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPj4g
Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXUKICAgICBMT0coUmVzb3VyY2VMb2FkaW5nLCAiQ2Fj
aGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RSZXNvdXJjZSAnJS4yNTVzJywgY2hhcnNldCAnJXMn
LCBwcmlvcml0eT0lZCwgZm9yUHJlbG9hZD0ldSIsIHVybC5zdHJpbmdDZW50ZXJFbGxpcHNpemVk
VG9MZW5ndGgoKS5sYXRpbjEoKS5kYXRhKCksIHJlcXVlc3QuY2hhcnNldCgpLmxhdGluMSgpLmRh
dGEoKSwgcmVxdWVzdC5wcmlvcml0eSgpID8gc3RhdGljX2Nhc3Q8aW50PihyZXF1ZXN0LnByaW9y
aXR5KCkudmFsdWUoKSkgOiAtMSwgZm9yUHJlbG9hZCA9PSBGb3JQcmVsb2FkOjpZZXMpOwogCiAg
ICAgaWYgKCF1cmwuaXNWYWxpZCgpKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQo
InJlcXVlc3RSZXNvdXJjZTogVVJMIGlzIGludmFsaWQgKGZyYW1lID0gJXApIiwgJmZyYW1lKTsK
KyAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRF9XSVRIX0ZSQU1FKCJyZXF1ZXN0UmVzb3Vy
Y2U6IFVSTCBpcyBpbnZhbGlkIiwgZnJhbWUpOwogICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0
ZWQoUmVzb3VyY2VFcnJvciB7IGVycm9yRG9tYWluV2ViS2l0SW50ZXJuYWwsIDAsIHVybCwgIlVS
TCBpcyBpbnZhbGlkIl9zIH0pOwogICAgIH0KIApAQCAtODI3LDcgKzgzMCw3IEBAIFJlc291cmNl
RXJyb3JPcjxDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRSZXNvdXJjZT4+IENhY2hlZFJlc291
cmNlTG9hZGVyOjpyZXF1CiAKICAgICAvLyBXZSBhcmUgcGFzc2luZyB1cmwgYXMgd2VsbCBhcyBy
ZXF1ZXN0LCBhcyByZXF1ZXN0IHVybCBtYXkgY29udGFpbiBhIGZyYWdtZW50IGlkZW50aWZpZXIu
CiAgICAgaWYgKCFjYW5SZXF1ZXN0KHR5cGUsIHVybCwgcmVxdWVzdCwgZm9yUHJlbG9hZCkpIHsK
LSAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgicmVxdWVzdFJlc291cmNlOiBOb3QgYWxs
b3dlZCB0byByZXF1ZXN0IHJlc291cmNlIChmcmFtZSA9ICVwKSIsICZmcmFtZSk7CisgICAgICAg
IFJFTEVBU0VfTE9HX0lGX0FMTE9XRURfV0lUSF9GUkFNRSgicmVxdWVzdFJlc291cmNlOiBOb3Qg
YWxsb3dlZCB0byByZXF1ZXN0IHJlc291cmNlIiwgZnJhbWUpOwogICAgICAgICByZXR1cm4gbWFr
ZVVuZXhwZWN0ZWQoUmVzb3VyY2VFcnJvciB7IGVycm9yRG9tYWluV2ViS2l0SW50ZXJuYWwsIDAs
IHVybCwgIk5vdCBhbGxvd2VkIHRvIHJlcXVlc3QgcmVzb3VyY2UiX3MsIFJlc291cmNlRXJyb3I6
OlR5cGU6OkFjY2Vzc0NvbnRyb2wgfSk7CiAgICAgfQogCkBAIC04MzksNyArODQyLDcgQEAgUmVz
b3VyY2VFcnJvck9yPENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPj4gQ2FjaGVk
UmVzb3VyY2VMb2FkZXI6OnJlcXUKICAgICAgICAgYm9vbCBtYWRlSFRUUFMgPSByZXN1bHRzLnN1
bW1hcnkubWFkZUhUVFBTOwogICAgICAgICByZXF1ZXN0LmFwcGx5UmVzdWx0cyhXVEZNb3ZlKHJl
c3VsdHMpLCAmcGFnZSk7CiAgICAgICAgIGlmIChibG9ja2VkTG9hZCkgewotICAgICAgICAgICAg
UkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgicmVxdWVzdFJlc291cmNlOiBSZXNvdXJjZSBibG9ja2Vk
IGJ5IGNvbnRlbnQgYmxvY2tlciAoZnJhbWUgPSAlcCkiLCAmZnJhbWUpOworICAgICAgICAgICAg
UkVMRUFTRV9MT0dfSUZfQUxMT1dFRF9XSVRIX0ZSQU1FKCJyZXF1ZXN0UmVzb3VyY2U6IFJlc291
cmNlIGJsb2NrZWQgYnkgY29udGVudCBibG9ja2VyIiwgZnJhbWUpOwogICAgICAgICAgICAgaWYg
KHR5cGUgPT0gQ2FjaGVkUmVzb3VyY2U6OlR5cGU6Ok1haW5SZXNvdXJjZSkgewogICAgICAgICAg
ICAgICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPiByZXNvdXJjZSA9IGNy
ZWF0ZVJlc291cmNlKHR5cGUsIFdURk1vdmUocmVxdWVzdCksIHBhZ2Uuc2Vzc2lvbklEKCksICZw
YWdlLmNvb2tpZUphcigpKTsKICAgICAgICAgICAgICAgICBBU1NFUlQocmVzb3VyY2UpOwpAQCAt
MTQ5MCwzICsxNDkzLDggQEAgYm9vbCBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6aXNBbHdheXNPbkxv
Z2dpbmdBbGxvd2VkKCkgY29uc3QKIH0KIAogfQorCisjdW5kZWYgUEFHRV9JRAorI3VuZGVmIEZS
QU1FX0lECisjdW5kZWYgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRAorI3VuZGVmIFJFTEVBU0VfTE9H
X0lGX0FMTE9XRURfV0lUSF9GUkFNRQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9G
cmFtZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAppbmRleCAxNjdmN2ViMzAz
OGUzZGRiZGU3NTdjMGFkZjU2OTA3MzY1MGVkODU5Li5mODUxOTYxNzIxZjE4ZWY1MjhjYWNhMjQ3
Y2QyNmE0MzEyNTA2YjFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcApAQCAtNjM3LDYgKzYzNywxNiBA
QCB2b2lkIEZyYW1lOjppbmplY3RVc2VyU2NyaXB0SW1tZWRpYXRlbHkoRE9NV3JhcHBlcldvcmxk
JiB3b3JsZCwgY29uc3QgVXNlclNjcmlwdAogICAgIG1fc2NyaXB0LT5ldmFsdWF0ZUluV29ybGRJ
Z25vcmluZ0V4Y2VwdGlvbihTY3JpcHRTb3VyY2VDb2RlKHNjcmlwdC5zb3VyY2UoKSwgVVJMKHNj
cmlwdC51cmwoKSkpLCB3b3JsZCk7CiB9CiAKK09wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBGcmFt
ZTo6cGFnZUlEKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbG9hZGVyKCkucGFnZUlEKCk7Cit9CisK
K09wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gRnJhbWU6OmZyYW1lSUQoKSBjb25zdAoreworICAg
IHJldHVybiBsb2FkZXIoKS5mcmFtZUlEKCk7Cit9CisKIFJlbmRlclZpZXcqIEZyYW1lOjpjb250
ZW50UmVuZGVyZXIoKSBjb25zdAogewogICAgIHJldHVybiBkb2N1bWVudCgpID8gZG9jdW1lbnQo
KS0+cmVuZGVyVmlldygpIDogbnVsbHB0cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRnJhbWUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuaAppbmRleCBkZDk4MDJjMDFj
YmJlMmY5NGM5ZTY3ZTlkNjRlYWVlNDAwOTg5MjcyLi45YTRjZmQ5YTBjYzY2OTc5YmIxMjIyMzIy
MWM1ZTBkY2JjNWNiY2E1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5oCkBAIC0yOSw3ICsyOSw5IEBACiAKICNp
bmNsdWRlICJBYnN0cmFjdEZyYW1lLmgiCiAjaW5jbHVkZSAiQWRqdXN0Vmlld1NpemVPck5vdC5o
IgorI2luY2x1ZGUgIkZyYW1lSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIkZyYW1lVHJlZS5oIgor
I2luY2x1ZGUgIlBhZ2VJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiU2Nyb2xsVHlwZXMuaCIKICNp
bmNsdWRlICJVc2VyU2NyaXB0VHlwZXMuaCIKICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgpAQCAt
MTcwLDcgKzE3MiwxMCBAQCBwdWJsaWM6CiAgICAgY29uc3QgQ1NTQW5pbWF0aW9uQ29udHJvbGxl
ciYgYW5pbWF0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9hbmltYXRpb25Db250cm9sbGVyOyB9CiAg
ICAgU2NyaXB0Q29udHJvbGxlciYgc2NyaXB0KCkgeyByZXR1cm4gbV9zY3JpcHQ7IH0KICAgICBj
b25zdCBTY3JpcHRDb250cm9sbGVyJiBzY3JpcHQoKSBjb25zdCB7IHJldHVybiBtX3NjcmlwdDsg
fQotICAgIAorCisgICAgV0VCQ09SRV9FWFBPUlQgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBh
Z2VJRCgpIGNvbnN0OworICAgIFdFQkNPUkVfRVhQT1JUIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmll
cj4gZnJhbWVJRCgpIGNvbnN0OworCiAgICAgV0VCQ09SRV9FWFBPUlQgUmVuZGVyVmlldyogY29u
dGVudFJlbmRlcmVyKCkgY29uc3Q7IC8vIFJvb3Qgb2YgdGhlIHJlbmRlciB0cmVlIGZvciB0aGUg
ZG9jdW1lbnQgY29udGFpbmVkIGluIHRoaXMgZnJhbWUuCiAgICAgV0VCQ09SRV9FWFBPUlQgUmVu
ZGVyV2lkZ2V0KiBvd25lclJlbmRlcmVyKCkgY29uc3Q7IC8vIFJlbmRlcmVyIGZvciB0aGUgZWxl
bWVudCB0aGF0IGNvbnRhaW5zIHRoaXMgZnJhbWUuCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRnJhbWVWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNw
cAppbmRleCBmNGY4ZTdkNDdhY2ZkOGM2NTg1N2U4N2I0YmZkM2Q2N2I0MTE3ZmE1Li43OWQ0ZDJl
N2U1NGFmOTBjMDQ1MzU4MzU3NDQxY2MxMGZhMmMxYmIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZp
ZXcuY3BwCkBAIC0xMzIsNyArMTMyLDkgQEAKICNpbmNsdWRlICJMYXlvdXRDb250ZXh0LmgiCiAj
ZW5kaWYKIAotI2RlZmluZSBGUkFNRVZJRVdfUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChjaGFubmVs
LCBmbXQsIC4uLikgUkVMRUFTRV9MT0dfSUYoZnJhbWUoKS5wYWdlKCkgJiYgZnJhbWUoKS5wYWdl
KCktPmlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpLCBjaGFubmVsLCAiJXAgLSBbZnJhbWU9JXAs
IG1haW49JWRdIEZyYW1lVmlldzo6IiBmbXQsIHRoaXMsICZmcmFtZSgpLCBmcmFtZSgpLmlzTWFp
bkZyYW1lKCksICMjX19WQV9BUkdTX18pCisjZGVmaW5lIFBBR0VfSUQgZnJhbWUoKS5wYWdlSUQo
KS52YWx1ZU9yKFBhZ2VJZGVudGlmaWVyKCkpLnRvVUludDY0KCkKKyNkZWZpbmUgRlJBTUVfSUQg
ZnJhbWUoKS5mcmFtZUlEKCkudmFsdWVPcihGcmFtZUlkZW50aWZpZXIoKSkudG9VSW50NjQoKQor
I2RlZmluZSBGUkFNRVZJRVdfUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChjaGFubmVsLCBmbXQsIC4u
LikgUkVMRUFTRV9MT0dfSUYoZnJhbWUoKS5wYWdlKCkgJiYgZnJhbWUoKS5wYWdlKCktPmlzQWx3
YXlzT25Mb2dnaW5nQWxsb3dlZCgpLCBjaGFubmVsLCAiJXAgLSBbcGFnZUlEPSUiIFBSSXU2NCAi
LCBmcmFtZUlEPSUiIFBSSXU2NCAiLCBtYWluPSVkXSBGcmFtZVZpZXc6OiIgZm10LCB0aGlzLCBQ
QUdFX0lELCBGUkFNRV9JRCwgZnJhbWUoKS5pc01haW5GcmFtZSgpLCAjI19fVkFfQVJHU19fKQog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTUzMTksMyArNTMyMSw2IEBAIGJvb2wgRnJhbWVW
aWV3OjpzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkgY29uc3QKIH0K
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjdW5kZWYgUEFHRV9JRAorI3VuZGVmIEZSQU1F
X0lECmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2Fk
ZXJTdHJhdGVneS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2Fk
ZXJTdHJhdGVneS5jcHAKaW5kZXggNDRmMzUwOWI5YzIzOWIxZjBjOTY0MmMyZjhlNGNjMTNiMzM3
Y2NjMi4uMzUzMjcwMjM1ZmM2NDYzOTE4MTQyYmRhYWNmOWEwZjFhMmVlZDM1MCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5
LmNwcApAQCAtMTExLDcgKzExMSw3IEBAIHZvaWQgV2ViTG9hZGVyU3RyYXRlZ3k6OmxvYWRSZXNv
dXJjZShGcmFtZSYgZnJhbWUsIENhY2hlZFJlc291cmNlJiByZXNvdXJjZSwgUmVzCiAgICAgICAg
IGlmIChsb2FkZXIpCiAgICAgICAgICAgICBzY2hlZHVsZUxvYWQoKmxvYWRlciwgcmVzb3VyY2Uu
Z2V0KCksIHJlZmVycmVyUG9saWN5ID09IFJlZmVycmVyUG9saWN5OjpOb1JlZmVycmVyV2hlbkRv
d25ncmFkZSk7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9X
RUQoImxvYWRSZXNvdXJjZTogVW5hYmxlIHRvIGNyZWF0ZSBTdWJyZXNvdXJjZUxvYWRlciAoZnJh
bWU9JXAiLCAmZnJhbWUpOworICAgICAgICAgICAgUkVMRUFTRV9MT0dfSUYoUkVMRUFTRV9MT0df
SVNfQUxMT1dFRCwgTmV0d29yaywgIiVwIC0gW3dlYlBhZ2VJRD0lIiBQUkl1NjQgIiwgZnJhbWVJ
RD0lIiBQUkl1NjQgIl0gV2ViTG9hZGVyU3RyYXRlZ3k6OmxvYWRSZXNvdXJjZTogVW5hYmxlIHRv
IGNyZWF0ZSBTdWJyZXNvdXJjZUxvYWRlciIsIHRoaXMsIGZyYW1lLT5wYWdlSUQoKS52YWx1ZU9y
KFBhZ2VJZGVudGlmaWVyKCkpLnRvVUludDY0KCksIGZyYW1lLT5mcmFtZUlEKCkudmFsdWVPcihG
cmFtZUlkZW50aWZpZXIoKSkudG9VSW50NjQoKSk7CiAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVy
KFdURk1vdmUobG9hZGVyKSk7CiAgICAgfSk7CiB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>