<?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>311142</bug_id>
          
          <creation_ts>2026-03-30 15:47:24 -0700</creation_ts>
          <short_desc>REGRESSION(309460@main): Introduced ~0.6% Speedometer regression</short_desc>
          <delta_ts>2026-03-30 19:28: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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>309932</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>m.jason.liu</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>2195319</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2026-03-30 15:47:24 -0700</bug_when>
    <thetext>https://commits.webkit.org/309460@main introduced a regression:
Introduced ~0.6% Speedometer regression

This is an automatic bug report generated by webkitbot. If this bug
report was created because of a flaky test, please file a bug for the flaky
test (if we don&apos;t already have one on file) and dup this bug against that bug
so that we can track how often these flaky tests fail.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2195321</commentid>
    <comment_count>1</comment_count>
      <attachid>478850</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2026-03-30 15:47:30 -0700</bug_when>
    <thetext>Created attachment 478850
REVERT of 309460@main

Any committer can land this patch automatically by marking it commit-queue+.  The commit-queue will build and test the patch before landing to ensure that the revert will be successful.  This process takes approximately 15 minutes.

If you would like to land the revert faster, you can use the following command:

  webkit-patch land-attachment ATTACHMENT_ID

where ATTACHMENT_ID is the ID of this attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2195392</commentid>
    <comment_count>2</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2026-03-30 19:27:57 -0700</bug_when>
    <thetext>Committed 310275@main (1fee39fec8cf): &lt;https://commits.webkit.org/310275@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 478850.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2195393</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2026-03-30 19:28:12 -0700</bug_when>
    <thetext>&lt;rdar://problem/173742699&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>478850</attachid>
            <date>2026-03-30 15:47:30 -0700</date>
            <delta_ts>2026-03-30 19:27:58 -0700</delta_ts>
            <desc>REVERT of 309460@main</desc>
            <filename>bug-311142-20260330224730.patch</filename>
            <type>text/plain</type>
            <size>20223</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">RnJvbSA2MjMwNmM4YjIzYjM0ZjJiM2ViMzU1NzI4YTU4OWI5MDAxYzFjOTU0IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBDb21taXQgUXVldWUgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3Jn
PgpEYXRlOiBNb24sIDMwIE1hciAyMDI2IDIyOjQ3OjI4ICswMDAwClN1YmplY3Q6IFtQQVRDSF0g
VW5yZXZpZXdlZCwgcmV2ZXJ0aW5nIDMwOTQ2MEBtYWluLgogaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTMxMTE0MgoKSW50cm9kdWNlZCB+MC42JSBTcGVlZG9tZXRlciBy
ZWdyZXNzaW9uCgpSZXZlcnRlZCBjaGFuZ2VzZXQ6CgoiW1NhZmVyQ1BQXSBSZXBsYWNlIHJhdyBw
b2ludGVycyBhbmQgbGVha2luZyByZWZlcmVuY2VzIHdpdGggc21hcnQgcG9pbnRlcnMgaW4gc3R5
bGUvRWxlbWVudFJ1bGVDb2xsZWN0b3IuY3BwIgpodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MzA5OTMyCmh0dHBzOi8vY29tbWl0cy53ZWJraXQub3JnLzMwOTQ2MEBtYWlu
Ci0tLQogLi4uL1VuY291bnRlZExvY2FsVmFyc0NoZWNrZXJFeHBlY3RhdGlvbnMgICAgIHwgICAx
ICsKIFNvdXJjZS9XZWJDb3JlL3N0eWxlL0VsZW1lbnRSdWxlQ29sbGVjdG9yLmNwcCB8IDEyMyAr
KysrKysrKystLS0tLS0tLS0KIDIgZmlsZXMgY2hhbmdlZCwgNjUgaW5zZXJ0aW9ucygrKSwgNTkg
ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU2FmZXJDUFBFeHBlY3Rh
dGlvbnMvVW5jb3VudGVkTG9jYWxWYXJzQ2hlY2tlckV4cGVjdGF0aW9ucyBiL1NvdXJjZS9XZWJD
b3JlL1NhZmVyQ1BQRXhwZWN0YXRpb25zL1VuY291bnRlZExvY2FsVmFyc0NoZWNrZXJFeHBlY3Rh
dGlvbnMKaW5kZXggM2I2Y2M5MWE1MzJlLi40MGZmOTM0ZDdmZDMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1NhZmVyQ1BQRXhwZWN0YXRpb25zL1VuY291bnRlZExvY2FsVmFyc0NoZWNrZXJF
eHBlY3RhdGlvbnMKKysrIGIvU291cmNlL1dlYkNvcmUvU2FmZXJDUFBFeHBlY3RhdGlvbnMvVW5j
b3VudGVkTG9jYWxWYXJzQ2hlY2tlckV4cGVjdGF0aW9ucwpAQCAtMTA2LDYgKzEwNiw3IEBAIHJl
bmRlcmluZy9SZW5kZXJUcmVlQXNUZXh0LmNwcAogcmVuZGVyaW5nL2NvY29hL1JlbmRlclRoZW1l
Q29jb2EubW0KIFsgaU9TIF0gcmVuZGVyaW5nL2lvcy9SZW5kZXJUaGVtZUlPUy5tbQogcmVuZGVy
aW5nL3N2Zy9sZWdhY3kvTGVnYWN5UmVuZGVyU1ZHVHJhbnNmb3JtYWJsZUNvbnRhaW5lci5jcHAK
K3N0eWxlL0VsZW1lbnRSdWxlQ29sbGVjdG9yLmNwcAogc3R5bGUvTWF0Y2hSZXN1bHRDYWNoZS5j
cHAKIHN0eWxlL1BhZ2VSdWxlQ29sbGVjdG9yLmNwcAogc3R5bGUvUnVsZVNldEJ1aWxkZXIuY3Bw
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9FbGVtZW50UnVsZUNvbGxlY3Rvci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9FbGVtZW50UnVsZUNvbGxlY3Rvci5jcHAKaW5kZXgg
ZDBhOWYzNWVkY2NlLi45OGZhNmZjNGVmY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0
eWxlL0VsZW1lbnRSdWxlQ29sbGVjdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9F
bGVtZW50UnVsZUNvbGxlY3Rvci5jcHAKQEAgLTU4LDI5ICs1OCwzMyBAQAogI2luY2x1ZGUgIlN0
eWxlZEVsZW1lbnQuaCIKICNpbmNsdWRlICJVc2VyQWdlbnRTdHlsZS5oIgogI2luY2x1ZGUgPHJh
bmdlcz4KLSNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KKyNpbmNsdWRlIDx3dGYvU2V0
Rm9yU2NvcGUuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogbmFtZXNwYWNlIFN0eWxlIHsKIAog
c3RhdGljIGNvbnN0IFN0eWxlUHJvcGVydGllcyYgbGVmdFRvUmlnaHREZWNsYXJhdGlvbigpCiB7
Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFJlZjxNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzPj4g
cHJvcGVydGllcyA9IFtdIHsKLSAgICAgICAgYXV0byBwID0gTXV0YWJsZVN0eWxlUHJvcGVydGll
czo6Y3JlYXRlKCk7Ci0gICAgICAgIHAtPnNldFByb3BlcnR5KENTU1Byb3BlcnR5RGlyZWN0aW9u
LCBDU1NWYWx1ZUx0cik7Ci0gICAgICAgIHJldHVybiBwOworSUdOT1JFX0dDQ19XQVJOSU5HU19C
RUdJTigiZGFuZ2xpbmctcmVmZXJlbmNlIikKKyAgICBzdGF0aWMgYXV0byYgZGVjbGFyYXRpb24g
PSBbXSAoKSAtPiBjb25zdCBTdHlsZVByb3BlcnRpZXMmIHsKKyAgICAgICAgYXV0byBwcm9wZXJ0
aWVzID0gTXV0YWJsZVN0eWxlUHJvcGVydGllczo6Y3JlYXRlKCk7CisgICAgICAgIHByb3BlcnRp
ZXMtPnNldFByb3BlcnR5KENTU1Byb3BlcnR5RGlyZWN0aW9uLCBDU1NWYWx1ZUx0cik7CisgICAg
ICAgIHJldHVybiBwcm9wZXJ0aWVzLmxlYWtSZWYoKTsKICAgICB9KCk7Ci0gICAgcmV0dXJuIHBy
b3BlcnRpZXMuZ2V0KCkuZ2V0KCk7CitJR05PUkVfR0NDX1dBUk5JTkdTX0VORAorICAgIHJldHVy
biBkZWNsYXJhdGlvbjsKIH0KIAogc3RhdGljIGNvbnN0IFN0eWxlUHJvcGVydGllcyYgcmlnaHRU
b0xlZnREZWNsYXJhdGlvbigpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFJlZjxNdXRh
YmxlU3R5bGVQcm9wZXJ0aWVzPj4gcHJvcGVydGllcyA9IFtdIHsKLSAgICAgICAgYXV0byBwID0g
TXV0YWJsZVN0eWxlUHJvcGVydGllczo6Y3JlYXRlKCk7Ci0gICAgICAgIHAtPnNldFByb3BlcnR5
KENTU1Byb3BlcnR5RGlyZWN0aW9uLCBDU1NWYWx1ZVJ0bCk7Ci0gICAgICAgIHJldHVybiBwOwor
SUdOT1JFX0dDQ19XQVJOSU5HU19CRUdJTigiZGFuZ2xpbmctcmVmZXJlbmNlIikKKyAgICBzdGF0
aWMgYXV0byYgZGVjbGFyYXRpb24gPSBbXSAoKSAtPiBjb25zdCBTdHlsZVByb3BlcnRpZXMmIHsK
KyAgICAgICAgYXV0byBwcm9wZXJ0aWVzID0gTXV0YWJsZVN0eWxlUHJvcGVydGllczo6Y3JlYXRl
KCk7CisgICAgICAgIHByb3BlcnRpZXMtPnNldFByb3BlcnR5KENTU1Byb3BlcnR5RGlyZWN0aW9u
LCBDU1NWYWx1ZVJ0bCk7CisgICAgICAgIHJldHVybiBwcm9wZXJ0aWVzLmxlYWtSZWYoKTsKICAg
ICB9KCk7Ci0gICAgcmV0dXJuIHByb3BlcnRpZXMuZ2V0KCkuZ2V0KCk7CitJR05PUkVfR0NDX1dB
Uk5JTkdTX0VORAorICAgIHJldHVybiBkZWNsYXJhdGlvbjsKIH0KIAogc3RydWN0IE1hdGNoUmVx
dWVzdCB7CkBAIC0xODgsNyArMTkyLDcgQEAgdm9pZCBFbGVtZW50UnVsZUNvbGxlY3Rvcjo6Y29s
bGVjdE1hdGNoaW5nUnVsZXMoRGVjbGFyYXRpb25PcmlnaW4gb3JpZ2luKQogICAgICAgICByZXR1
cm47CiAgICAgfQogCi0gICAgUmVmUHRyIHBhcmVudCA9IGVsZW1lbnQoKS5wYXJlbnRFbGVtZW50
KCk7CisgICAgYXV0byogcGFyZW50ID0gZWxlbWVudCgpLnBhcmVudEVsZW1lbnQoKTsKICAgICBp
ZiAocGFyZW50ICYmIHBhcmVudC0+c2hhZG93Um9vdCgpKSB7CiAgICAgICAgIG1hdGNoU2xvdHRl
ZFBzZXVkb0VsZW1lbnRSdWxlcyhvcmlnaW4pOwogICAgICAgICBpZiAoaXNGaXJzdE1hdGNoTW9k
ZUFuZEhhc01hdGNoZWRBbnlSdWxlcygpKQpAQCAtMjE3LDI3ICsyMjEsMjcgQEAgdm9pZCBFbGVt
ZW50UnVsZUNvbGxlY3Rvcjo6Y29sbGVjdE1hdGNoaW5nUnVsZXMoY29uc3QgTWF0Y2hSZXF1ZXN0
JiBtYXRjaFJlcXVlc3QKICAgICBBU1NFUlRfV0lUSF9NRVNTQUdFKCEobV9tb2RlID09IFNlbGVj
dG9yQ2hlY2tlcjo6TW9kZTo6U3R5bGVJbnZhbGlkYXRpb24gJiYgbV9wc2V1ZG9FbGVtZW50UmVx
dWVzdCksICJXaGVuIGluIFN0eWxlSW52YWxpZGF0aW9uIG9yIFNoYXJpbmdSdWxlcywgU2VsZWN0
b3JDaGVja2VyIGRvZXMgbm90IHRyeSB0byBtYXRjaCB0aGUgcHNldWRvIElELiBXaGlsZSBFbGVt
ZW50UnVsZUNvbGxlY3RvciBzdXBwb3J0cyBtYXRjaGluZyBhIHBhcnRpY3VsYXIgcHNldWRvSWQg
aW4gdGhpcyBjYXNlLCB0aGlzIHdvdWxkIGluZGljYXRlIGEgZXJyb3IgYXQgdGhlIGNhbGwgc2l0
ZSBzaW5jZSBtYXRjaGluZyBhIHBhcnRpY3VsYXIgZWxlbWVudCBzaG91bGQgYmUgdW5uZWNlc3Nh
cnkuIik7CiAKICAgICBhdXRvJiBlbGVtZW50ID0gdGhpcy0+ZWxlbWVudCgpOwotICAgIFJlZlB0
ciBzaGFkb3dSb290ID0gZWxlbWVudC5jb250YWluaW5nU2hhZG93Um9vdCgpOworICAgIGF1dG8q
IHNoYWRvd1Jvb3QgPSBlbGVtZW50LmNvbnRhaW5pbmdTaGFkb3dSb290KCk7CiAgICAgaWYgKHNo
YWRvd1Jvb3QgJiYgc2hhZG93Um9vdC0+bW9kZSgpID09IFNoYWRvd1Jvb3RNb2RlOjpVc2VyQWdl
bnQpCiAgICAgICAgIGNvbGxlY3RNYXRjaGluZ1VzZXJBZ2VudFBhcnRSdWxlcyhtYXRjaFJlcXVl
c3QpOwogCiAgICAgYm9vbCBpc0hUTUxFbGVtZW50ID0gZWxlbWVudC5pc0hUTUxFbGVtZW50KCk7
CiAgICAgYm9vbCBpc0Nhc2VJbnNlbnNpdGl2ZUZvckhUTUwgPSBpc0hUTUxFbGVtZW50ICYmIGVs
ZW1lbnQuZG9jdW1lbnQoKS5pc0hUTUxEb2N1bWVudCgpOwotICAgIFJlZiBydWxlU2V0ID0gbWF0
Y2hSZXF1ZXN0LnJ1bGVTZXQ7CisgICAgYXV0byYgcnVsZVNldCA9IG1hdGNoUmVxdWVzdC5ydWxl
U2V0OwogCiAgICAgLy8gV2UgbmVlZCB0byBjb2xsZWN0IHRoZSBydWxlcyBmb3IgaWQsIGNsYXNz
LCB0YWcsIGFuZCBldmVyeXRoaW5nIGVsc2UgaW50byBhIGJ1ZmZlciBhbmQKICAgICAvLyB0aGVu
IHNvcnQgdGhlIGJ1ZmZlci4KICAgICBhdXRvJiBpZCA9IGVsZW1lbnQuaWRGb3JTdHlsZVJlc29s
dXRpb24oKTsKICAgICBpZiAoIWlkLmlzTnVsbCgpKQotICAgICAgICBjb2xsZWN0TWF0Y2hpbmdS
dWxlc0Zvckxpc3QocnVsZVNldC0+aWRSdWxlcyhpZCksIG1hdGNoUmVxdWVzdCk7CisgICAgICAg
IGNvbGxlY3RNYXRjaGluZ1J1bGVzRm9yTGlzdChydWxlU2V0LmlkUnVsZXMoaWQpLCBtYXRjaFJl
cXVlc3QpOwogICAgIGlmIChlbGVtZW50Lmhhc0NsYXNzKCkpIHsKICAgICAgICAgZm9yIChhdXRv
JiBjbGFzc05hbWUgOiBlbGVtZW50LmNsYXNzTmFtZXMoKSkKLSAgICAgICAgICAgIGNvbGxlY3RN
YXRjaGluZ1J1bGVzRm9yTGlzdChydWxlU2V0LT5jbGFzc1J1bGVzKGNsYXNzTmFtZSksIG1hdGNo
UmVxdWVzdCk7CisgICAgICAgICAgICBjb2xsZWN0TWF0Y2hpbmdSdWxlc0Zvckxpc3QocnVsZVNl
dC5jbGFzc1J1bGVzKGNsYXNzTmFtZSksIG1hdGNoUmVxdWVzdCk7CiAgICAgfQotICAgIGlmIChl
bGVtZW50Lmhhc0F0dHJpYnV0ZXNXaXRob3V0VXBkYXRlKCkgJiYgcnVsZVNldC0+aGFzQXR0cmli
dXRlUnVsZXMoKSkgeworICAgIGlmIChlbGVtZW50Lmhhc0F0dHJpYnV0ZXNXaXRob3V0VXBkYXRl
KCkgJiYgcnVsZVNldC5oYXNBdHRyaWJ1dGVSdWxlcygpKSB7CiAgICAgICAgIFZlY3Rvcjxjb25z
dCBSdWxlU2V0OjpSdWxlRGF0YVZlY3RvciosIDQ+IHJ1bGVWZWN0b3JzOwogICAgICAgICBmb3Ig
KGF1dG8mIGF0dHJpYnV0ZSA6IGVsZW1lbnQuYXR0cmlidXRlcygpKSB7Ci0gICAgICAgICAgICBp
ZiAoYXV0byogcnVsZXMgPSBydWxlU2V0LT5hdHRyaWJ1dGVSdWxlcyhhdHRyaWJ1dGUubG9jYWxO
YW1lKCksIGlzQ2FzZUluc2Vuc2l0aXZlRm9ySFRNTCkpCisgICAgICAgICAgICBpZiAoYXV0byog
cnVsZXMgPSBydWxlU2V0LmF0dHJpYnV0ZVJ1bGVzKGF0dHJpYnV0ZS5sb2NhbE5hbWUoKSwgaXND
YXNlSW5zZW5zaXRpdmVGb3JIVE1MKSkKICAgICAgICAgICAgICAgICBydWxlVmVjdG9ycy5hcHBl
bmQocnVsZXMpOwogICAgICAgICB9CiAgICAgICAgIGZvciAoYXV0byogcnVsZXMgOiBydWxlVmVj
dG9ycykKQEAgLTI0NiwzMSArMjUwLDMxIEBAIHZvaWQgRWxlbWVudFJ1bGVDb2xsZWN0b3I6OmNv
bGxlY3RNYXRjaGluZ1J1bGVzKGNvbnN0IE1hdGNoUmVxdWVzdCYgbWF0Y2hSZXF1ZXN0CiAKICAg
ICBpZiAobV9wc2V1ZG9FbGVtZW50UmVxdWVzdCkgewogICAgICAgICBpZiAobV9wc2V1ZG9FbGVt
ZW50UmVxdWVzdC0+dHlwZSgpID09IFBzZXVkb0VsZW1lbnRUeXBlOjpVc2VyQWdlbnRQYXJ0RmFs
bGJhY2spCi0gICAgICAgICAgICBjb2xsZWN0TWF0Y2hpbmdSdWxlc0Zvckxpc3QocnVsZVNldC0+
dXNlckFnZW50UGFydFJ1bGVzKG1fcHNldWRvRWxlbWVudFJlcXVlc3QtPm5hbWVPclBhcnQoKSks
IG1hdGNoUmVxdWVzdCk7CisgICAgICAgICAgICBjb2xsZWN0TWF0Y2hpbmdSdWxlc0Zvckxpc3Qo
cnVsZVNldC51c2VyQWdlbnRQYXJ0UnVsZXMobV9wc2V1ZG9FbGVtZW50UmVxdWVzdC0+bmFtZU9y
UGFydCgpKSwgbWF0Y2hSZXF1ZXN0KTsKICAgICAgICAgZWxzZSBpZiAoIW1fcHNldWRvRWxlbWVu
dFJlcXVlc3QtPm5hbWVPclBhcnQoKS5pc051bGwoKSkKLSAgICAgICAgICAgIGNvbGxlY3RNYXRj
aGluZ1J1bGVzRm9yTGlzdChydWxlU2V0LT5uYW1lZFBzZXVkb0VsZW1lbnRSdWxlcyhtX3BzZXVk
b0VsZW1lbnRSZXF1ZXN0LT5uYW1lT3JQYXJ0KCkpLCBtYXRjaFJlcXVlc3QpOworICAgICAgICAg
ICAgY29sbGVjdE1hdGNoaW5nUnVsZXNGb3JMaXN0KHJ1bGVTZXQubmFtZWRQc2V1ZG9FbGVtZW50
UnVsZXMobV9wc2V1ZG9FbGVtZW50UmVxdWVzdC0+bmFtZU9yUGFydCgpKSwgbWF0Y2hSZXF1ZXN0
KTsKICAgICB9CiAKICAgICBpZiAoZWxlbWVudC5pc0xpbmsoKSkKLSAgICAgICAgY29sbGVjdE1h
dGNoaW5nUnVsZXNGb3JMaXN0KHJ1bGVTZXQtPmxpbmtQc2V1ZG9DbGFzc1J1bGVzKCksIG1hdGNo
UmVxdWVzdCk7CisgICAgICAgIGNvbGxlY3RNYXRjaGluZ1J1bGVzRm9yTGlzdChydWxlU2V0Lmxp
bmtQc2V1ZG9DbGFzc1J1bGVzKCksIG1hdGNoUmVxdWVzdCk7CiAgICAgaWYgKG1hdGNoZXNGb2N1
c1BzZXVkb0NsYXNzKGVsZW1lbnQpKQotICAgICAgICBjb2xsZWN0TWF0Y2hpbmdSdWxlc0Zvckxp
c3QocnVsZVNldC0+Zm9jdXNQc2V1ZG9DbGFzc1J1bGVzKCksIG1hdGNoUmVxdWVzdCk7CisgICAg
ICAgIGNvbGxlY3RNYXRjaGluZ1J1bGVzRm9yTGlzdChydWxlU2V0LmZvY3VzUHNldWRvQ2xhc3NS
dWxlcygpLCBtYXRjaFJlcXVlc3QpOwogICAgIGlmIChtYXRjaGVzRm9jdXNWaXNpYmxlUHNldWRv
Q2xhc3MoZWxlbWVudCkpCi0gICAgICAgIGNvbGxlY3RNYXRjaGluZ1J1bGVzRm9yTGlzdChydWxl
U2V0LT5mb2N1c1Zpc2libGVQc2V1ZG9DbGFzc1J1bGVzKCksIG1hdGNoUmVxdWVzdCk7CisgICAg
ICAgIGNvbGxlY3RNYXRjaGluZ1J1bGVzRm9yTGlzdChydWxlU2V0LmZvY3VzVmlzaWJsZVBzZXVk
b0NsYXNzUnVsZXMoKSwgbWF0Y2hSZXF1ZXN0KTsKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkp
CiAgICAgaWYgKGF1dG8qIGZ1bGxzY3JlZW4gPSBlbGVtZW50LmRvY3VtZW50KCkuZnVsbHNjcmVl
bklmRXhpc3RzKCk7IGZ1bGxzY3JlZW4gJiYgZnVsbHNjcmVlbi0+aXNGdWxsc2NyZWVuKCkpCi0g
ICAgICAgIGNvbGxlY3RNYXRjaGluZ1J1bGVzRm9yTGlzdChydWxlU2V0LT5mdWxsc2NyZWVuUHNl
dWRvQ2xhc3NSdWxlcygpLCBtYXRjaFJlcXVlc3QpOworICAgICAgICBjb2xsZWN0TWF0Y2hpbmdS
dWxlc0Zvckxpc3QocnVsZVNldC5mdWxsc2NyZWVuUHNldWRvQ2xhc3NSdWxlcygpLCBtYXRjaFJl
cXVlc3QpOwogI2VuZGlmCiAgICAgaWYgKCZlbGVtZW50ID09IGVsZW1lbnQuZG9jdW1lbnQoKS5k
b2N1bWVudEVsZW1lbnQoKSkKLSAgICAgICAgY29sbGVjdE1hdGNoaW5nUnVsZXNGb3JMaXN0KHJ1
bGVTZXQtPnJvb3RFbGVtZW50UnVsZXMoKSwgbWF0Y2hSZXF1ZXN0KTsKLSAgICBjb2xsZWN0TWF0
Y2hpbmdSdWxlc0Zvckxpc3QocnVsZVNldC0+dGFnUnVsZXMoZWxlbWVudC5sb2NhbE5hbWUoKSwg
aXNDYXNlSW5zZW5zaXRpdmVGb3JIVE1MKSwgbWF0Y2hSZXF1ZXN0KTsKLSAgICBjb2xsZWN0TWF0
Y2hpbmdSdWxlc0Zvckxpc3QocnVsZVNldC0+dW5pdmVyc2FsUnVsZXMoKSwgbWF0Y2hSZXF1ZXN0
KTsKKyAgICAgICAgY29sbGVjdE1hdGNoaW5nUnVsZXNGb3JMaXN0KHJ1bGVTZXQucm9vdEVsZW1l
bnRSdWxlcygpLCBtYXRjaFJlcXVlc3QpOworICAgIGNvbGxlY3RNYXRjaGluZ1J1bGVzRm9yTGlz
dChydWxlU2V0LnRhZ1J1bGVzKGVsZW1lbnQubG9jYWxOYW1lKCksIGlzQ2FzZUluc2Vuc2l0aXZl
Rm9ySFRNTCksIG1hdGNoUmVxdWVzdCk7CisgICAgY29sbGVjdE1hdGNoaW5nUnVsZXNGb3JMaXN0
KHJ1bGVTZXQudW5pdmVyc2FsUnVsZXMoKSwgbWF0Y2hSZXF1ZXN0KTsKIAogICAgIC8vIFNob3J0
Y3V0IHNlbGVjdG9ycyBsaWtlICI6Om1hcmtlciIgZm9yIEhUTUwgZWxlbWVudHMuCi0gICAgYXV0
byBwc2V1ZG9FbGVtZW50VHlwZXMgPSBpc0hUTUxFbGVtZW50ID8gcnVsZVNldC0+dW5pdmVyc2Fs
SFRNTFBzZXVkb0VsZW1lbnRUeXBlcygpIDogcnVsZVNldC0+dW5pdmVyc2FsUHNldWRvRWxlbWVu
dFR5cGVzKCk7CisgICAgYXV0byBwc2V1ZG9FbGVtZW50VHlwZXMgPSBpc0hUTUxFbGVtZW50ID8g
cnVsZVNldC51bml2ZXJzYWxIVE1MUHNldWRvRWxlbWVudFR5cGVzKCkgOiBydWxlU2V0LnVuaXZl
cnNhbFBzZXVkb0VsZW1lbnRUeXBlcygpOwogICAgIGlmIChtX3BzZXVkb0VsZW1lbnRSZXF1ZXN0
KSB7CiAgICAgICAgIGlmIChwc2V1ZG9FbGVtZW50VHlwZXMuY29udGFpbnMobV9wc2V1ZG9FbGVt
ZW50UmVxdWVzdC0+dHlwZSgpKSkKLSAgICAgICAgICAgIGNvbGxlY3RNYXRjaGluZ1J1bGVzRm9y
TGlzdChydWxlU2V0LT51bml2ZXJzYWxQc2V1ZG9FbGVtZW50UnVsZXMoKSwgbWF0Y2hSZXF1ZXN0
KTsKKyAgICAgICAgICAgIGNvbGxlY3RNYXRjaGluZ1J1bGVzRm9yTGlzdChydWxlU2V0LnVuaXZl
cnNhbFBzZXVkb0VsZW1lbnRSdWxlcygpLCBtYXRjaFJlcXVlc3QpOwogICAgIH0gZWxzZSB7CiAg
ICAgICAgIC8vIElmIHBzZXVkby1lbGVtZW50IGlzIG5vdCByZXF1ZXN0ZWQgdGhlbiBqdXN0IG1h
cmsgdGhlIGJpdHMgdGhhdCB0ZWxsIHRoYXQgdGhpcyBlbGVtZW50IGhhcyB0aGVzZS4KICAgICAg
ICAgbV9tYXRjaGVkUHNldWRvRWxlbWVudHMuYWRkKHBzZXVkb0VsZW1lbnRUeXBlcyAmIGFsbFB1
YmxpY1BzZXVkb0VsZW1lbnRUeXBlcyk7CkBAIC0zNTAsMTIgKzM1NCwxMiBAQCBib29sIEVsZW1l
bnRSdWxlQ29sbGVjdG9yOjptYXRjaGVzQW55QXV0aG9yUnVsZXMoKQogdm9pZCBFbGVtZW50UnVs
ZUNvbGxlY3Rvcjo6bWF0Y2hVc2VyQWdlbnRQYXJ0UnVsZXMoRGVjbGFyYXRpb25PcmlnaW4gb3Jp
Z2luKQogewogICAgIEFTU0VSVChlbGVtZW50KCkuaXNJblNoYWRvd1RyZWUoKSk7Ci0gICAgUmVm
UHRyIHNoYWRvd1Jvb3QgPSBlbGVtZW50KCkuY29udGFpbmluZ1NoYWRvd1Jvb3QoKTsKKyAgICBh
dXRvKiBzaGFkb3dSb290ID0gZWxlbWVudCgpLmNvbnRhaW5pbmdTaGFkb3dSb290KCk7CiAgICAg
aWYgKCFzaGFkb3dSb290IHx8IHNoYWRvd1Jvb3QtPm1vZGUoKSAhPSBTaGFkb3dSb290TW9kZTo6
VXNlckFnZW50KQogICAgICAgICByZXR1cm47CiAKICAgICAvLyBMb29rIHVwIHVzZXIgYWdlbnQg
cGFydHMgYWxzbyBmcm9tIHRoZSBob3N0IHNjb3BlIHN0eWxlIGFzIHRoZXkgYXJlIHdlYi1leHBv
c2VkLgotICAgIFJlZlB0ciBob3N0UnVsZXMgPSBTY29wZTo6Zm9yTm9kZSgqc2hhZG93Um9vdC0+
aG9zdCgpKS5yZXNvbHZlcigpLnJ1bGVTZXRzKCkuc3R5bGVGb3JEZWNsYXJhdGlvbk9yaWdpbihv
cmlnaW4pOworICAgIGF1dG8qIGhvc3RSdWxlcyA9IFNjb3BlOjpmb3JOb2RlKCpzaGFkb3dSb290
LT5ob3N0KCkpLnJlc29sdmVyKCkucnVsZVNldHMoKS5zdHlsZUZvckRlY2xhcmF0aW9uT3JpZ2lu
KG9yaWdpbik7CiAgICAgaWYgKCFob3N0UnVsZXMpCiAgICAgICAgIHJldHVybjsKIApAQCAtMzY3
LDcgKzM3MSw3IEBAIHZvaWQgRWxlbWVudFJ1bGVDb2xsZWN0b3I6Om1hdGNoSG9zdFBzZXVkb0Ns
YXNzUnVsZXMoRGVjbGFyYXRpb25PcmlnaW4gb3JpZ2luKQogewogICAgIEFTU0VSVChlbGVtZW50
KCkuc2hhZG93Um9vdCgpKTsKIAotICAgIFJlZlB0ciBzaGFkb3dSdWxlcyA9IGVsZW1lbnQoKS5z
aGFkb3dSb290KCktPnN0eWxlU2NvcGUoKS5yZXNvbHZlcigpLnJ1bGVTZXRzKCkuc3R5bGVGb3JE
ZWNsYXJhdGlvbk9yaWdpbihvcmlnaW4pOworICAgIGF1dG8qIHNoYWRvd1J1bGVzID0gZWxlbWVu
dCgpLnNoYWRvd1Jvb3QoKS0+c3R5bGVTY29wZSgpLnJlc29sdmVyKCkucnVsZVNldHMoKS5zdHls
ZUZvckRlY2xhcmF0aW9uT3JpZ2luKG9yaWdpbik7CiAgICAgaWYgKCFzaGFkb3dSdWxlcykKICAg
ICAgICAgcmV0dXJuOwogCkBAIC0zODcsNyArMzkxLDcgQEAgdm9pZCBFbGVtZW50UnVsZUNvbGxl
Y3Rvcjo6bWF0Y2hIb3N0UHNldWRvQ2xhc3NSdWxlcyhEZWNsYXJhdGlvbk9yaWdpbiBvcmlnaW4p
CiAKIHZvaWQgRWxlbWVudFJ1bGVDb2xsZWN0b3I6Om1hdGNoU2xvdHRlZFBzZXVkb0VsZW1lbnRS
dWxlcyhEZWNsYXJhdGlvbk9yaWdpbiBvcmlnaW4pCiB7Ci0gICAgUmVmUHRyIHNsb3QgPSBlbGVt
ZW50KCkuYXNzaWduZWRTbG90KCk7CisgICAgYXV0byogc2xvdCA9IGVsZW1lbnQoKS5hc3NpZ25l
ZFNsb3QoKTsKICAgICBhdXRvIHN0eWxlU2NvcGVPcmRpbmFsID0gU2NvcGVPcmRpbmFsOjpGaXJz
dFNsb3Q7CiAKICAgICBmb3IgKDsgc2xvdDsgc2xvdCA9IHNsb3QtPmFzc2lnbmVkU2xvdCgpLCAr
K3N0eWxlU2NvcGVPcmRpbmFsKSB7CkBAIC0zOTUsNyArMzk5LDcgQEAgdm9pZCBFbGVtZW50UnVs
ZUNvbGxlY3Rvcjo6bWF0Y2hTbG90dGVkUHNldWRvRWxlbWVudFJ1bGVzKERlY2xhcmF0aW9uT3Jp
Z2luIG9yaWcKICAgICAgICAgaWYgKCFzdHlsZVNjb3BlLnJlc29sdmVyKCkucnVsZVNldHMoKS5p
c0F1dGhvclN0eWxlRGVmaW5lZCgpKQogICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAg
UmVmUHRyIHNjb3BlUnVsZXMgPSBzdHlsZVNjb3BlLnJlc29sdmVyKCkucnVsZVNldHMoKS5zdHls
ZUZvckRlY2xhcmF0aW9uT3JpZ2luKG9yaWdpbik7CisgICAgICAgIGF1dG8qIHNjb3BlUnVsZXMg
PSBzdHlsZVNjb3BlLnJlc29sdmVyKCkucnVsZVNldHMoKS5zdHlsZUZvckRlY2xhcmF0aW9uT3Jp
Z2luKG9yaWdpbik7CiAgICAgICAgIGlmICghc2NvcGVSdWxlcykKICAgICAgICAgICAgIGNvbnRp
bnVlOwogCkBAIC00MTUsOCArNDE5LDggQEAgdm9pZCBFbGVtZW50UnVsZUNvbGxlY3Rvcjo6bWF0
Y2hQYXJ0UHNldWRvRWxlbWVudFJ1bGVzKERlY2xhcmF0aW9uT3JpZ2luIG9yaWdpbikKIAogICAg
IGJvb2wgaXNVc2VyQWdlbnRQYXJ0ID0gZWxlbWVudCgpLmNvbnRhaW5pbmdTaGFkb3dSb290KCkt
Pm1vZGUoKSA9PSBTaGFkb3dSb290TW9kZTo6VXNlckFnZW50ICYmICFlbGVtZW50KCkudXNlckFn
ZW50UGFydCgpLmlzTnVsbCgpOwogCi0gICAgUmVmPGNvbnN0IEVsZW1lbnQ+IHBhcnRNYXRjaGlu
Z0VsZW1lbnQgPSBpc1VzZXJBZ2VudFBhcnQgPyAqZWxlbWVudCgpLnNoYWRvd0hvc3QoKSA6IGVs
ZW1lbnQoKTsKLSAgICBpZiAocGFydE1hdGNoaW5nRWxlbWVudC0+cGFydE5hbWVzKCkuaXNFbXB0
eSgpIHx8ICFwYXJ0TWF0Y2hpbmdFbGVtZW50LT5pc0luU2hhZG93VHJlZSgpKQorICAgIGF1dG8m
IHBhcnRNYXRjaGluZ0VsZW1lbnQgPSBpc1VzZXJBZ2VudFBhcnQgPyAqZWxlbWVudCgpLnNoYWRv
d0hvc3QoKSA6IGVsZW1lbnQoKTsKKyAgICBpZiAocGFydE1hdGNoaW5nRWxlbWVudC5wYXJ0TmFt
ZXMoKS5pc0VtcHR5KCkgfHwgIXBhcnRNYXRjaGluZ0VsZW1lbnQuaXNJblNoYWRvd1RyZWUoKSkK
ICAgICAgICAgcmV0dXJuOwogCiAgICAgbWF0Y2hQYXJ0UHNldWRvRWxlbWVudFJ1bGVzRm9yU2Nv
cGUocGFydE1hdGNoaW5nRWxlbWVudCwgb3JpZ2luKTsKQEAgLTQyNCw3ICs0MjgsNyBAQCB2b2lk
IEVsZW1lbnRSdWxlQ29sbGVjdG9yOjptYXRjaFBhcnRQc2V1ZG9FbGVtZW50UnVsZXMoRGVjbGFy
YXRpb25PcmlnaW4gb3JpZ2luKQogCiB2b2lkIEVsZW1lbnRSdWxlQ29sbGVjdG9yOjptYXRjaFBh
cnRQc2V1ZG9FbGVtZW50UnVsZXNGb3JTY29wZShjb25zdCBFbGVtZW50JiBwYXJ0TWF0Y2hpbmdF
bGVtZW50LCBEZWNsYXJhdGlvbk9yaWdpbiBvcmlnaW4pCiB7Ci0gICAgUmVmUHRyPGNvbnN0IEVs
ZW1lbnQ+IGVsZW1lbnQgPSAmcGFydE1hdGNoaW5nRWxlbWVudDsKKyAgICBhdXRvKiBlbGVtZW50
ID0gJnBhcnRNYXRjaGluZ0VsZW1lbnQ7CiAgICAgYXV0byBzdHlsZVNjb3BlT3JkaW5hbCA9IFNj
b3BlT3JkaW5hbDo6RWxlbWVudDsKIAogICAgIGZvciAoOyBlbGVtZW50OyBlbGVtZW50ID0gZWxl
bWVudC0+c2hhZG93SG9zdCgpLCAtLXN0eWxlU2NvcGVPcmRpbmFsKSB7CkBAIC00MzIsNyArNDM2
LDcgQEAgdm9pZCBFbGVtZW50UnVsZUNvbGxlY3Rvcjo6bWF0Y2hQYXJ0UHNldWRvRWxlbWVudFJ1
bGVzRm9yU2NvcGUoY29uc3QgRWxlbWVudCYgcGEKICAgICAgICAgaWYgKCFzdHlsZVNjb3BlLnJl
c29sdmVyKCkucnVsZVNldHMoKS5pc0F1dGhvclN0eWxlRGVmaW5lZCgpKQogICAgICAgICAgICAg
Y29udGludWU7CiAKLSAgICAgICAgUmVmUHRyIGhvc3RSdWxlcyA9IHN0eWxlU2NvcGUucmVzb2x2
ZXIoKS5ydWxlU2V0cygpLnN0eWxlRm9yRGVjbGFyYXRpb25PcmlnaW4ob3JpZ2luKTsKKyAgICAg
ICAgYXV0byogaG9zdFJ1bGVzID0gc3R5bGVTY29wZS5yZXNvbHZlcigpLnJ1bGVTZXRzKCkuc3R5
bGVGb3JEZWNsYXJhdGlvbk9yaWdpbihvcmlnaW4pOwogICAgICAgICBpZiAoIWhvc3RSdWxlcykK
ICAgICAgICAgICAgIGNvbnRpbnVlOwogCkBAIC00NTMsMTUgKzQ1NywxNSBAQCB2b2lkIEVsZW1l
bnRSdWxlQ29sbGVjdG9yOjptYXRjaFBhcnRQc2V1ZG9FbGVtZW50UnVsZXNGb3JTY29wZShjb25z
dCBFbGVtZW50JiBwYQogdm9pZCBFbGVtZW50UnVsZUNvbGxlY3Rvcjo6bWF0Y2hTbG90dGVkUHNl
dWRvRWxlbWVudFJ1bGVzSW5Vc2VyQWdlbnRTaGFkb3dUcmVlKERlY2xhcmF0aW9uT3JpZ2luIG9y
aWdpbikKIHsKICAgICBBU1NFUlQoZWxlbWVudCgpLmlzSW5TaGFkb3dUcmVlKCkpOwotICAgIFJl
ZlB0ciBzaGFkb3dSb290ID0gZWxlbWVudCgpLmNvbnRhaW5pbmdTaGFkb3dSb290KCk7CisgICAg
YXV0byogc2hhZG93Um9vdCA9IGVsZW1lbnQoKS5jb250YWluaW5nU2hhZG93Um9vdCgpOwogICAg
IGlmICghc2hhZG93Um9vdCB8fCBzaGFkb3dSb290LT5tb2RlKCkgIT0gU2hhZG93Um9vdE1vZGU6
OlVzZXJBZ2VudCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgUmVmUHRyIGhvc3QgPSBzaGFkb3dS
b290LT5ob3N0KCk7CisgICAgYXV0byogaG9zdCA9IHNoYWRvd1Jvb3QtPmhvc3QoKTsKICAgICBp
ZiAoIWhvc3QpCiAgICAgICAgIHJldHVybjsKIAotICAgIFJlZlB0ciBzbG90ID0gaG9zdC0+YXNz
aWduZWRTbG90KCk7CisgICAgYXV0byogc2xvdCA9IGhvc3QtPmFzc2lnbmVkU2xvdCgpOwogICAg
IGF1dG8gc3R5bGVTY29wZU9yZGluYWwgPSBTY29wZU9yZGluYWw6OkZpcnN0U2xvdDsKIAogICAg
IGZvciAoOyBzbG90OyBzbG90ID0gc2xvdC0+YXNzaWduZWRTbG90KCksICsrc3R5bGVTY29wZU9y
ZGluYWwpIHsKQEAgLTQ2OSw3ICs0NzMsNyBAQCB2b2lkIEVsZW1lbnRSdWxlQ29sbGVjdG9yOjpt
YXRjaFNsb3R0ZWRQc2V1ZG9FbGVtZW50UnVsZXNJblVzZXJBZ2VudFNoYWRvd1RyZWUoRAogICAg
ICAgICBpZiAoIXN0eWxlU2NvcGUucmVzb2x2ZXIoKS5ydWxlU2V0cygpLmlzQXV0aG9yU3R5bGVE
ZWZpbmVkKCkpCiAgICAgICAgICAgICBjb250aW51ZTsKIAotICAgICAgICBSZWZQdHIgc2NvcGVS
dWxlcyA9IHN0eWxlU2NvcGUucmVzb2x2ZXIoKS5ydWxlU2V0cygpLnN0eWxlRm9yRGVjbGFyYXRp
b25PcmlnaW4ob3JpZ2luKTsKKyAgICAgICAgYXV0byogc2NvcGVSdWxlcyA9IHN0eWxlU2NvcGUu
cmVzb2x2ZXIoKS5ydWxlU2V0cygpLnN0eWxlRm9yRGVjbGFyYXRpb25PcmlnaW4ob3JpZ2luKTsK
ICAgICAgICAgaWYgKCFzY29wZVJ1bGVzKQogICAgICAgICAgICAgY29udGludWU7CiAKQEAgLTQ4
NSwxMyArNDg5LDEzIEBAIHZvaWQgRWxlbWVudFJ1bGVDb2xsZWN0b3I6OmNvbGxlY3RNYXRjaGlu
Z1VzZXJBZ2VudFBhcnRSdWxlcyhjb25zdCBNYXRjaFJlcXVlc3QmCiB7CiAgICAgQVNTRVJUKGVs
ZW1lbnQoKS5pc0luVXNlckFnZW50U2hhZG93VHJlZSgpKTsKIAotICAgIFJlZiBydWxlcyA9IG1h
dGNoUmVxdWVzdC5ydWxlU2V0OworICAgIGF1dG8mIHJ1bGVzID0gbWF0Y2hSZXF1ZXN0LnJ1bGVT
ZXQ7CiAjaWYgRU5BQkxFKFZJREVPKQogICAgIGlmIChlbGVtZW50KCkuaXNXZWJWVFRFbGVtZW50
KCkpCi0gICAgICAgIGNvbGxlY3RNYXRjaGluZ1J1bGVzRm9yTGlzdCgmcnVsZXMtPmN1ZVBzZXVk
b1J1bGVzKCksIG1hdGNoUmVxdWVzdCk7CisgICAgICAgIGNvbGxlY3RNYXRjaGluZ1J1bGVzRm9y
TGlzdCgmcnVsZXMuY3VlUHNldWRvUnVsZXMoKSwgbWF0Y2hSZXF1ZXN0KTsKICNlbmRpZgogICAg
IGlmIChhdXRvJiBwYXJ0ID0gZWxlbWVudCgpLnVzZXJBZ2VudFBhcnQoKTsgIXBhcnQuaXNFbXB0
eSgpKQotICAgICAgICBjb2xsZWN0TWF0Y2hpbmdSdWxlc0Zvckxpc3QocnVsZXMtPnVzZXJBZ2Vu
dFBhcnRSdWxlcyhwYXJ0KSwgbWF0Y2hSZXF1ZXN0KTsKKyAgICAgICAgY29sbGVjdE1hdGNoaW5n
UnVsZXNGb3JMaXN0KHJ1bGVzLnVzZXJBZ2VudFBhcnRSdWxlcyhwYXJ0KSwgbWF0Y2hSZXF1ZXN0
KTsKIH0KIAogdm9pZCBFbGVtZW50UnVsZUNvbGxlY3Rvcjo6bWF0Y2hVc2VyUnVsZXMoKQpAQCAt
NTA2LDcgKzUxMCw3IEBAIHZvaWQgRWxlbWVudFJ1bGVDb2xsZWN0b3I6Om1hdGNoVXNlclJ1bGVz
KCkKIHZvaWQgRWxlbWVudFJ1bGVDb2xsZWN0b3I6Om1hdGNoVUFSdWxlcygpCiB7CiAgICAgLy8g
Rmlyc3Qgd2UgbWF0Y2ggcnVsZXMgZnJvbSB0aGUgdXNlciBhZ2VudCBzaGVldC4KLSAgICBSZWZQ
dHIgdXNlckFnZW50U3R5bGVTaGVldCA9IG1faXNQcmludFN0eWxlCisgICAgYXV0byogdXNlckFn
ZW50U3R5bGVTaGVldCA9IG1faXNQcmludFN0eWxlCiAgICAgICAgID8gVXNlckFnZW50U3R5bGU6
OmRlZmF1bHRQcmludFN0eWxlIDogVXNlckFnZW50U3R5bGU6OmRlZmF1bHRTdHlsZTsKICAgICBt
YXRjaFVBUnVsZXMoKnVzZXJBZ2VudFN0eWxlU2hlZXQpOwogCkBAIC01MzIsNyArNTM2LDcgQEAg
dm9pZCBFbGVtZW50UnVsZUNvbGxlY3Rvcjo6bWF0Y2hVQVJ1bGVzKGNvbnN0IFJ1bGVTZXQmIHJ1
bGVzKQogCiBzdGF0aWMgVmVjdG9yPEF0b21TdHJpbmc+IGNsYXNzTGlzdEZvck5hbWVkVmlld1Ry
YW5zaXRpb25Qc2V1ZG9FbGVtZW50KGNvbnN0IERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgQXRv
bVN0cmluZyYgbmFtZSkKIHsKLSAgICBSZWZQdHIgYWN0aXZlVmlld1RyYW5zaXRpb24gPSBkb2N1
bWVudC5hY3RpdmVWaWV3VHJhbnNpdGlvbigpOworICAgIGF1dG8qIGFjdGl2ZVZpZXdUcmFuc2l0
aW9uID0gZG9jdW1lbnQuYWN0aXZlVmlld1RyYW5zaXRpb24oKTsKICAgICBpZiAoIWFjdGl2ZVZp
ZXdUcmFuc2l0aW9uKQogICAgICAgICByZXR1cm4geyB9OwogCkBAIC02NTUsMTAgKzY1OSwxMCBA
QCB2b2lkIEVsZW1lbnRSdWxlQ29sbGVjdG9yOjpjb2xsZWN0TWF0Y2hpbmdSdWxlc0Zvckxpc3RT
bG93KGNvbnN0IFJ1bGVTZXQ6OlJ1bGVEYQogICAgICAgICAgICAgc2NvcGluZ1Jvb3RzID0gV1RG
Ojptb3ZlKHJvb3RzKTsKICAgICAgICAgfQogCi0gICAgICAgIFJlZiBydWxlID0gcnVsZURhdGEu
c3R5bGVSdWxlKCk7CisgICAgICAgIGF1dG8mIHJ1bGUgPSBydWxlRGF0YS5zdHlsZVJ1bGUoKTsK
IAogICAgICAgICAvLyBJZiB0aGUgcnVsZSBoYXMgbm8gcHJvcGVydGllcyB0byBhcHBseSwgdGhl
biBpZ25vcmUgaXQgaW4gdGhlIG5vbi1kZWJ1ZyBtb2RlLgotICAgICAgICBpZiAocnVsZS0+cHJv
cGVydGllcygpLmlzRW1wdHkoKSAmJiAhbV9zaG91bGRJbmNsdWRlRW1wdHlSdWxlcykKKyAgICAg
ICAgaWYgKHJ1bGUucHJvcGVydGllcygpLmlzRW1wdHkoKSAmJiAhbV9zaG91bGRJbmNsdWRlRW1w
dHlSdWxlcykKICAgICAgICAgICAgIGNvbnRpbnVlOwogCiAgICAgICAgIGF1dG8gYWRkUnVsZUlm
TWF0Y2hlcyA9IFsmXSAoY29uc3QgU2NvcGluZ1Jvb3RXaXRoRGlzdGFuY2UmIHNjb3BpbmdSb290
V2l0aERpc3RhbmNlID0geyB9KSB7CkBAIC03NjUsNyArNzY5LDcgQEAgc3RkOjpwYWlyPGJvb2ws
IHN0ZDo6b3B0aW9uYWw8VmVjdG9yPEVsZW1lbnRSdWxlQ29sbGVjdG9yOjpTY29waW5nUm9vdFdp
dGhEaXN0YW4KICAgICAgICAgICAgIGF1dG8gbWF0Y2ggPSBbJl0gKGNvbnN0IGF1dG8qIHNjb3Bp
bmdSb290LCBjb25zdCBhdXRvJiBzZWxlY3RvcikgewogICAgICAgICAgICAgICAgIGF1dG8gc3Vi
Q29udGV4dCA9IGNvbnRleHQ7CiAgICAgICAgICAgICAgICAgc3ViQ29udGV4dC5zY29wZSA9IHNj
b3BpbmdSb290OwotICAgICAgICAgICAgICAgIFJlZlB0cjxjb25zdCBFbGVtZW50PiBhbmNlc3Rv
ciA9ICZlbGVtZW50KCk7CisgICAgICAgICAgICAgICAgY29uc3QgYXV0byogYW5jZXN0b3IgPSAm
ZWxlbWVudCgpOwogICAgICAgICAgICAgICAgIHdoaWxlIChhbmNlc3RvcikgewogICAgICAgICAg
ICAgICAgICAgICBhdXRvIG1hdGNoID0gY2hlY2tlci5tYXRjaChzZWxlY3RvciwgKmFuY2VzdG9y
LCBzdWJDb250ZXh0KTsKICAgICAgICAgICAgICAgICAgICAgaWYgKG1hdGNoKQpAQCAtODEzLDcg
KzgxNyw3IEBAIHN0ZDo6cGFpcjxib29sLCBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxFbGVtZW50UnVs
ZUNvbGxlY3Rvcjo6U2NvcGluZ1Jvb3RXaXRoRGlzdGFuCiAgICAgICAgICAgICBhdXRvIGFwcGVu
ZEltcGxpY2l0U2NvcGluZ1Jvb3QgPSBbJl0oY29uc3QgYXV0byogY2xpZW50KSB7CiAKICAgICAg
ICAgICAgICAgICBhdXRvIGFkZFNjb3BpbmdSb290V2l0aERpc3RhbmNlID0gWyZdKGF1dG8qIHNj
b3BpbmdSb290KSB7Ci0gICAgICAgICAgICAgICAgICAgIFJlZlB0cjxjb25zdCBFbGVtZW50PiBh
bmNlc3RvciA9ICZlbGVtZW50KCk7CisgICAgICAgICAgICAgICAgICAgIGNvbnN0IGF1dG8qIGFu
Y2VzdG9yID0gJmVsZW1lbnQoKTsKICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgZGlzdGFu
Y2UgPSAwOwogICAgICAgICAgICAgICAgICAgICB3aGlsZSAoYW5jZXN0b3IpIHsKICAgICAgICAg
ICAgICAgICAgICAgICAgIGlmIChhbmNlc3RvciA9PSBzY29waW5nUm9vdCkKQEAgLTkwMiw4ICs5
MDYsOCBAQCB2b2lkIEVsZW1lbnRSdWxlQ29sbGVjdG9yOjptYXRjaEFsbFJ1bGVzKGJvb2wgbWF0
Y2hBdXRob3JBbmRVc2VyU3R5bGVzLCBib29sIGluYwogICAgIGlmIChtYXRjaEF1dGhvckFuZFVz
ZXJTdHlsZXMpCiAgICAgICAgIG1hdGNoVXNlclJ1bGVzKCk7CiAKLSAgICBpZiAoUmVmUHRyIHN0
eWxlZEVsZW1lbnQgPSBkeW5hbWljRG93bmNhc3Q8U3R5bGVkRWxlbWVudD4oZWxlbWVudCgpKSkg
ewotICAgICAgICBpZiAoUmVmUHRyIHByZXNlbnRhdGlvbmFsSGludFN0eWxlID0gc3R5bGVkRWxl
bWVudC0+cHJlc2VudGF0aW9uYWxIaW50U3R5bGUoKSkgeworICAgIGlmIChhdXRvKiBzdHlsZWRF
bGVtZW50ID0gZHluYW1pY0Rvd25jYXN0PFN0eWxlZEVsZW1lbnQ+KGVsZW1lbnQoKSkpIHsKKyAg
ICAgICAgaWYgKGF1dG8qIHByZXNlbnRhdGlvbmFsSGludFN0eWxlID0gc3R5bGVkRWxlbWVudC0+
cHJlc2VudGF0aW9uYWxIaW50U3R5bGUoKSkgewogICAgICAgICAgICAgLy8gaHR0cHM6Ly9odG1s
LnNwZWMud2hhdHdnLm9yZy8jcHJlc2VudGF0aW9uYWwtaGludHMKIAogICAgICAgICAgICAgLy8g
UHJlc2VudGF0aW9uIGF0dHJpYnV0ZXMgaW4gU1ZHIGVsZW1lbnRzIHRlbmQgdG8gYmUgdW5pcXVl
IGFuZCBub3QgcmVzdHlsZWQgb2Z0ZW4uIEF2b2lkIGJsb2F0aW5nIHRoZSBjYWNoZS4KQEAgLTkx
MiwxNiArOTE2LDE3IEBAIHZvaWQgRWxlbWVudFJ1bGVDb2xsZWN0b3I6Om1hdGNoQWxsUnVsZXMo
Ym9vbCBtYXRjaEF1dGhvckFuZFVzZXJTdHlsZXMsIGJvb2wgaW5jCiAgICAgICAgICAgICBib29s
IGFsbG93RnVsbENhY2hpbmcgPSAhc3R5bGVkRWxlbWVudC0+aXNTVkdFbGVtZW50KCkgfHwgcHJl
c2VudGF0aW9uYWxIaW50U3R5bGUtPnJlZkNvdW50KCkgPiBtYXRjaGVkRGVjbGFyYXRpb25zQ2Fj
aGVTaGFyaW5nVGhyZXNob2xkOwogCiAgICAgICAgICAgICBhdXRvIGlzQ2FjaGVhYmxlID0gYWxs
b3dGdWxsQ2FjaGluZyA/IElzQ2FjaGVhYmxlOjpZZXMgOiBJc0NhY2hlYWJsZTo6UGFydGlhbGx5
OwotICAgICAgICAgICAgYWRkRWxlbWVudFN0eWxlUHJvcGVydGllcyhwcmVzZW50YXRpb25hbEhp
bnRTdHlsZS5nZXQoKSwgUnVsZVNldDo6Y2FzY2FkZUxheWVyUHJpb3JpdHlGb3JQcmVzZW50YXRp
b25hbEhpbnRzLCBpc0NhY2hlYWJsZSk7CisgICAgICAgICAgICBhZGRFbGVtZW50U3R5bGVQcm9w
ZXJ0aWVzKHByZXNlbnRhdGlvbmFsSGludFN0eWxlLCBSdWxlU2V0OjpjYXNjYWRlTGF5ZXJQcmlv
cml0eUZvclByZXNlbnRhdGlvbmFsSGludHMsIGlzQ2FjaGVhYmxlKTsKICAgICAgICAgfQogCiAg
ICAgICAgIC8vIFRhYmxlcyBhbmQgdGFibGUgY2VsbHMgc2hhcmUgYW4gYWRkaXRpb25hbCBwcmVz
ZW50YXRpb24gc3R5bGUgdGhhdCBtdXN0IGJlIGFwcGxpZWQKICAgICAgICAgLy8gYWZ0ZXIgYWxs
IGF0dHJpYnV0ZXMsIHNpbmNlIHRoZWlyIHN0eWxlIGRlcGVuZHMgb24gdGhlIHZhbHVlcyBvZiBt
dWx0aXBsZSBhdHRyaWJ1dGVzLgogICAgICAgICBhZGRFbGVtZW50U3R5bGVQcm9wZXJ0aWVzKHN0
eWxlZEVsZW1lbnQtPmFkZGl0aW9uYWxQcmVzZW50YXRpb25hbEhpbnRTdHlsZSgpLCBSdWxlU2V0
OjpjYXNjYWRlTGF5ZXJQcmlvcml0eUZvclByZXNlbnRhdGlvbmFsSGludHMpOwogCi0gICAgICAg
IGlmIChSZWZQdHIgaHRtbEVsZW1lbnQgPSBkeW5hbWljRG93bmNhc3Q8SFRNTEVsZW1lbnQ+KCpz
dHlsZWRFbGVtZW50KSkgeworICAgICAgICBpZiAoYXV0byogaHRtbEVsZW1lbnQgPSBkeW5hbWlj
RG93bmNhc3Q8SFRNTEVsZW1lbnQ+KCpzdHlsZWRFbGVtZW50KSkgewogICAgICAgICAgICAgaWYg
KGF1dG8gdGV4dERpcmVjdGlvbiA9IGNvbXB1dGVUZXh0RGlyZWN0aW9uSWZEaXJJc0F1dG8oKmh0
bWxFbGVtZW50KSkgewotICAgICAgICAgICAgICAgIGFkZE1hdGNoZWRQcm9wZXJ0aWVzKHsgKnRl
eHREaXJlY3Rpb24gPT0gVGV4dERpcmVjdGlvbjo6TFRSID8gbGVmdFRvUmlnaHREZWNsYXJhdGlv
bigpIDogcmlnaHRUb0xlZnREZWNsYXJhdGlvbigpIH0sIERlY2xhcmF0aW9uT3JpZ2luOjpBdXRo
b3IpOworICAgICAgICAgICAgICAgIGF1dG8mIHByb3BlcnRpZXMgPSAqdGV4dERpcmVjdGlvbiA9
PSBUZXh0RGlyZWN0aW9uOjpMVFIgPyBsZWZ0VG9SaWdodERlY2xhcmF0aW9uKCkgOiByaWdodFRv
TGVmdERlY2xhcmF0aW9uKCk7CisgICAgICAgICAgICAgICAgYWRkTWF0Y2hlZFByb3BlcnRpZXMo
eyBwcm9wZXJ0aWVzIH0sIERlY2xhcmF0aW9uT3JpZ2luOjpBdXRob3IpOwogICAgICAgICAgICAg
fQogICAgICAgICB9CiAgICAgfQpAQCAtOTQ0LDEzICs5NDksMTMgQEAgdm9pZCBFbGVtZW50UnVs
ZUNvbGxlY3Rvcjo6bWF0Y2hBbGxSdWxlcyhib29sIG1hdGNoQXV0aG9yQW5kVXNlclN0eWxlcywg
Ym9vbCBpbmMKIAogdm9pZCBFbGVtZW50UnVsZUNvbGxlY3Rvcjo6YWRkRWxlbWVudElubGluZVN0
eWxlUHJvcGVydGllcyhib29sIGluY2x1ZGVTTUlMUHJvcGVydGllcykKIHsKLSAgICBSZWZQdHIg
c3R5bGVkRWxlbWVudCA9IGR5bmFtaWNEb3duY2FzdDxTdHlsZWRFbGVtZW50PihlbGVtZW50KCkp
OworICAgIGF1dG8qIHN0eWxlZEVsZW1lbnQgPSBkeW5hbWljRG93bmNhc3Q8U3R5bGVkRWxlbWVu
dD4oZWxlbWVudCgpKTsKICAgICBpZiAoIXN0eWxlZEVsZW1lbnQpCiAgICAgICAgIHJldHVybjsK
IAotICAgIGlmIChSZWZQdHIgaW5saW5lU3R5bGUgPSBzdHlsZWRFbGVtZW50LT5pbmxpbmVTdHls
ZSgpKSB7CisgICAgaWYgKGF1dG8qIGlubGluZVN0eWxlID0gc3R5bGVkRWxlbWVudC0+aW5saW5l
U3R5bGUoKSkgewogICAgICAgICBhdXRvIGlzSW5saW5lU3R5bGVDYWNoZWFibGUgPSBpbmxpbmVT
dHlsZS0+aXNNdXRhYmxlKCkgPyBJc0NhY2hlYWJsZTo6Tm8gOiBJc0NhY2hlYWJsZTo6WWVzOwot
ICAgICAgICBhZGRFbGVtZW50U3R5bGVQcm9wZXJ0aWVzKGlubGluZVN0eWxlLmdldCgpLCBSdWxl
U2V0OjpjYXNjYWRlTGF5ZXJQcmlvcml0eUZvclVubGF5ZXJlZCwgaXNJbmxpbmVTdHlsZUNhY2hl
YWJsZSwgRnJvbVN0eWxlQXR0cmlidXRlOjpZZXMpOworICAgICAgICBhZGRFbGVtZW50U3R5bGVQ
cm9wZXJ0aWVzKGlubGluZVN0eWxlLCBSdWxlU2V0OjpjYXNjYWRlTGF5ZXJQcmlvcml0eUZvclVu
bGF5ZXJlZCwgaXNJbmxpbmVTdHlsZUNhY2hlYWJsZSwgRnJvbVN0eWxlQXR0cmlidXRlOjpZZXMp
OwogICAgIH0KIAogICAgIGlmIChpbmNsdWRlU01JTFByb3BlcnRpZXMpIHsK
</data>

          </attachment>
      

    </bug>

</bugzilla>