<?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>111130</bug_id>
          
          <creation_ts>2013-02-28 16:57:33 -0800</creation_ts>
          <short_desc>The threaded HTML parser shouldn&apos;t need to invalidate the speculation buffer on every document.write</short_desc>
          <delta_ts>2013-02-28 22:08:38 -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>New Bugs</component>
          <version>528+ (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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>106127</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Adam Barth">abarth</reporter>
          <assigned_to name="Adam Barth">abarth</assigned_to>
          <cc>eric</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>mjs</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>tonyg</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>844632</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-02-28 16:57:33 -0800</bug_when>
    <thetext>The threaded HTML parser shouldn&apos;t need to invalidate the speculation buffer on every document.write</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>844640</commentid>
    <comment_count>1</comment_count>
      <attachid>190851</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-02-28 17:12:01 -0800</bug_when>
    <thetext>Created attachment 190851
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>844643</commentid>
    <comment_count>2</comment_count>
      <attachid>190851</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-02-28 17:15:22 -0800</bug_when>
    <thetext>Comment on attachment 190851
Patch

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

Looks amazing.

&gt; Source/WebCore/html/parser/HTMLDocumentParser.cpp:337
&gt; +    if (m_currentChunk-&gt;tokenizerState == HTMLTokenizer::DataState &amp;&amp; m_tokenizer-&gt;state() == HTMLTokenizer::DataState &amp;&amp; m_input.current().isEmpty()) {

I would split this off into a nicely named funtion.  isSafeToContinueSpeculation()?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>844647</commentid>
    <comment_count>3</comment_count>
      <attachid>190854</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-02-28 17:21:35 -0800</bug_when>
    <thetext>Created attachment 190854
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>844664</commentid>
    <comment_count>4</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-02-28 17:42:17 -0800</bug_when>
    <thetext>&gt; I would split this off into a nicely named funtion.  isSafeToContinueSpeculation()?

We talked about this in person and decided to add a detailed comment instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>844694</commentid>
    <comment_count>5</comment_count>
      <attachid>190854</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-28 18:14:50 -0800</bug_when>
    <thetext>Comment on attachment 190854
Patch for landing

Clearing flags on attachment: 190854

Committed r144407: &lt;http://trac.webkit.org/changeset/144407&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>844695</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-28 18:14:53 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>844720</commentid>
    <comment_count>7</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-02-28 19:10:49 -0800</bug_when>
    <thetext>To give some more color to this bug, I wrote this patch based on running the threaded parser through the moz PLT dataset.  One page in the data set (voodooextreme.com) showed a 200% regression with the threaded parser.  This patch is meant to address that regression by improving our ability to re-use the speculation buffer.

I don&apos;t have the ability to run the moz PLT locally, but I did run the Voodoo Extreme page from the moz dataset through DumpRenderTree in three configurations: (1) main thread, (2) old threaded parser, (3) the threaded parser after this patch.  Here are the results for the average of six runs (after a warm-up run for each configuration):

Main thread: 0.33s
Old threaded parser: 0.47s
New threaded parser: 0.33s

These numbers have the old threaded parser being a 30.36% slowdown and the new threaded parser being a 0.46% slowdown (the latter seems likely to be noise).

I also instrumented checkForSpeculationFailure.  Before the patch, we dumped the speculation buffer many times (roughly once for each document.write).  After the patch, we fail only once (at the end when the page document.writes &quot;&lt;!--&quot; to simulate a noscript tag).

Ideally I would have put this information into the ChangeLog entry rather than the bug.  :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>844812</commentid>
    <comment_count>8</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2013-02-28 22:08:38 -0800</bug_when>
    <thetext>It wouldn&apos;t be completely wrong to add some of this to the ChangeLog after the fact. :-)

I believe that pages generated with lots of document.write() are far less common these days than when the Mozilla Base test dataset was collected, but it&apos;s still good not to massively regress them.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>190851</attachid>
            <date>2013-02-28 17:12:01 -0800</date>
            <delta_ts>2013-02-28 17:21:30 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-111130-20130228170817.patch</filename>
            <type>text/plain</type>
            <size>4817</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0MzIwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYThmMjNkZGU5ZjdmNzk0
YmE3MDIxYjgxYTc4MTk3MGRiODk0Y2RkOS4uNDlhNmMyNTk1YWZkNzdkNzMyY2YzZTc2MmE0MGI5
OThhOTJlNmMwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDEzLTAyLTI4ICBBZGFt
IEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CisKKyAgICAgICAgVGhlIHRocmVhZGVkIEhUTUwg
cGFyc2VyIHNob3VsZG4ndCBuZWVkIHRvIGludmFsaWRhdGUgdGhlIHNwZWN1bGF0aW9uIGJ1ZmZl
ciBvbiBldmVyeSBkb2N1bWVudC53cml0ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTExMTMwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgUHJldmlvdXNseSwgdGhlIHRocmVhZGVkIEhUTUwgcGFyc2VyIGFs
d2F5cyBpbnZhbGlkYXRlZCBpdHMgc3BlY3VsYXRpb24KKyAgICAgICAgYnVmZmVyIHdoZW4gaXQg
cmVjZWl2ZWQgYSBkb2N1bWVudC53cml0ZS4gIFRoYXQgbWVhbnMgd2UgcGVyZm9ybWVkCisgICAg
ICAgIHBvb3JseSBvbiB3ZWIgc2l0ZXMgdGhhdCBjb250YWluZWQgZG9jdW1lbnQud3JpdGUgY2Fs
bHMgZWFybHkgaW4gdGhlCisgICAgICAgIHBhZ2UuCisKKyAgICAgICAgVGhpcyBwYXRjaCB0ZWFj
aGVzIHRoZSBIVE1MRG9jdW1lbnRQYXJzZXIgdGhhdCB3ZSBkb24ndCBuZWVkIHRvIGRpc2NhcmQK
KyAgICAgICAgdGhlIHNwZWN1bGF0aW9uIGJ1ZmZlciBpbiB0aGUgY29tbW9uIGNhc2Ugb2Ygc3Rh
cnRpbmcgYW5kIGVuZGluZyBpbiB0aGUKKyAgICAgICAgRGF0YVN0YXRlLgorCisgICAgICAgICog
aHRtbC9wYXJzZXIvQmFja2dyb3VuZEhUTUxQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
QmFja2dyb3VuZEhUTUxQYXJzZXI6OnNlbmRUb2tlbnNUb01haW5UaHJlYWQpOgorICAgICAgICAq
IGh0bWwvcGFyc2VyL0hUTUxEb2N1bWVudFBhcnNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpI
VE1MRG9jdW1lbnRQYXJzZXI6OmNoZWNrRm9yU3BlY3VsYXRpb25GYWlsdXJlKToKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxEb2N1bWVudFBhcnNlcjo6ZGlkRmFpbFNwZWN1bGF0aW9uKToKKyAgICAg
ICAgKiBodG1sL3BhcnNlci9IVE1MRG9jdW1lbnRQYXJzZXIuaDoKKyAgICAgICAgKFdlYkNvcmUp
OgorICAgICAgICAoUGFyc2VkQ2h1bmspOgorCiAyMDEzLTAyLTI2ICBEYXZpZCBIeWF0dCAgPGh5
YXR0QGFwcGxlLmNvbT4KIAogICAgICAgICBbTmV3IE11bHRpY29sdW1uXSBSZXdyaXRlIHRoZSBw
YWludGluZy9zdGFja2luZyBtb2RlbCB0byBiZSBzcGVjIGNvbXBsaWFudC4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0JhY2tncm91bmRIVE1MUGFyc2VyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0JhY2tncm91bmRIVE1MUGFyc2VyLmNwcAppbmRleCA1
NmU0N2ZjZGMzNjAyZjlhYjE0MzU5NjMzMjI3NDFhZGYyMGVkM2UwLi42NDNmODA2ZDUwM2M1MWJl
NDM4ZGJiNWNkYmJlOTc3ZGJmM2YyYjQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L3BhcnNlci9CYWNrZ3JvdW5kSFRNTFBhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9wYXJzZXIvQmFja2dyb3VuZEhUTUxQYXJzZXIuY3BwCkBAIC0yNzksNiArMjc5LDcgQEAgdm9p
ZCBCYWNrZ3JvdW5kSFRNTFBhcnNlcjo6c2VuZFRva2Vuc1RvTWFpblRocmVhZCgpCiAgICAgT3du
UHRyPEhUTUxEb2N1bWVudFBhcnNlcjo6UGFyc2VkQ2h1bms+IGNodW5rID0gYWRvcHRQdHIobmV3
IEhUTUxEb2N1bWVudFBhcnNlcjo6UGFyc2VkQ2h1bmspOwogICAgIGNodW5rLT50b2tlbnMgPSBt
X3BlbmRpbmdUb2tlbnMucmVsZWFzZSgpOwogICAgIGNodW5rLT5wcmVsb2Fkcy5zd2FwKG1fcGVu
ZGluZ1ByZWxvYWRzKTsKKyAgICBjaHVuay0+dG9rZW5pemVyU3RhdGUgPSBtX3Rva2VuaXplci0+
c3RhdGUoKTsKICAgICBjaHVuay0+aW5wdXRDaGVja3BvaW50ID0gbV9pbnB1dC5jcmVhdGVDaGVj
a3BvaW50KCk7CiAgICAgY2h1bmstPnByZWxvYWRTY2FubmVyQ2hlY2twb2ludCA9IG1fcHJlbG9h
ZFNjYW5uZXItPmNyZWF0ZUNoZWNrcG9pbnQoKTsKICAgICBjYWxsT25NYWluVGhyZWFkKGJpbmQo
JkhUTUxEb2N1bWVudFBhcnNlcjo6ZGlkUmVjZWl2ZVBhcnNlZENodW5rRnJvbUJhY2tncm91bmRQ
YXJzZXIsIG1fcGFyc2VyLCBjaHVuay5yZWxlYXNlKCkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxEb2N1bWVudFBhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3BhcnNlci9IVE1MRG9jdW1lbnRQYXJzZXIuY3BwCmluZGV4IGJkNDhlM2U2NzdhMzJj
YWQ2YmZhZTcxYjJlZGIwYWNmYThjNGM0MjAuLjEzNjA2ZDQ0Nzg5MWJjMGJhZGUzOTg1MTBkY2Mx
NWI1NGY5ZWE4ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxE
b2N1bWVudFBhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTERv
Y3VtZW50UGFyc2VyLmNwcApAQCAtMzMyLDE2ICszMzIsMjEgQEAgdm9pZCBIVE1MRG9jdW1lbnRQ
YXJzZXI6OmNoZWNrRm9yU3BlY3VsYXRpb25GYWlsdXJlKCkKIHsKICAgICBpZiAoIW1fdG9rZW5p
emVyKQogICAgICAgICByZXR1cm47Ci0gICAgLy8gRklYTUU6IElmIHRoZSB0b2tlbml6ZXIgaXMg
aW4gdGhlIHNhbWUgc3RhdGUgYXMgd2hlbiB3ZSBzdGFydGVkIHRoaXMgZnVuY3Rpb24sCi0gICAg
Ly8gdGhlbiB3ZSBoYXZlbid0IG5lY2Vzc2FyaWx5IGZhaWxlZCBvdXIgc3BlY3VsYXRpb24uCisg
ICAgaWYgKCFtX2N1cnJlbnRDaHVuaykKKyAgICAgICAgcmV0dXJuOworICAgIGlmIChtX2N1cnJl
bnRDaHVuay0+dG9rZW5pemVyU3RhdGUgPT0gSFRNTFRva2VuaXplcjo6RGF0YVN0YXRlICYmIG1f
dG9rZW5pemVyLT5zdGF0ZSgpID09IEhUTUxUb2tlbml6ZXI6OkRhdGFTdGF0ZSAmJiBtX2lucHV0
LmN1cnJlbnQoKS5pc0VtcHR5KCkpIHsKKyAgICAgICAgQVNTRVJUKG1fdG9rZW4tPmlzVW5pbml0
aWFsaXplZCgpKTsKKyAgICAgICAgLy8gV2UgZG9uJ3QgbmVlZCB0byBhY3R1YWxseSBmYWlsIHNw
ZWN1bGF0aW9uIGluIHRoaXMgY2FzZSBiZWNhdXNlIGJvdGggdG9rZW5pemVycyBhcmUgaW4gdGhl
IERhdGFTdGF0ZS4KKyAgICAgICAgbV90b2tlbml6ZXIuY2xlYXIoKTsKKyAgICAgICAgbV90b2tl
bi5jbGVhcigpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIC8vIEZJWE1FOiBXZSBjb3Vs
ZCBhdm9pZCBmYWlsaW5nIHNwZWN1bGF0aW9uIGluIG1vcmUgc2l0dWF0aW9ucyAKICAgICBkaWRG
YWlsU3BlY3VsYXRpb24obV90b2tlbi5yZWxlYXNlKCksIG1fdG9rZW5pemVyLnJlbGVhc2UoKSk7
CiB9CiAKIHZvaWQgSFRNTERvY3VtZW50UGFyc2VyOjpkaWRGYWlsU3BlY3VsYXRpb24oUGFzc093
blB0cjxIVE1MVG9rZW4+IHRva2VuLCBQYXNzT3duUHRyPEhUTUxUb2tlbml6ZXI+IHRva2VuaXpl
cikKIHsKLSAgICBpZiAoIW1fY3VycmVudENodW5rKQotICAgICAgICByZXR1cm47Ci0KICAgICBt
X3dlYWtGYWN0b3J5LnJldm9rZUFsbCgpOwogICAgIG1fc3BlY3VsYXRpb25zLmNsZWFyKCk7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxEb2N1bWVudFBhcnNl
ci5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTERvY3VtZW50UGFyc2VyLmgKaW5k
ZXggMWJiZjc3MWNiODE0NWY2NzlmMTBjYjFmZTQ1NmIzMjA2YjdmYWZjZS4uZjIzNzE3NzM5Y2E2
MGRkZDRiMWZiYTU4MGFhMmI5MGRiNjU0ZDIzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9wYXJzZXIvSFRNTERvY3VtZW50UGFyc2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9wYXJzZXIvSFRNTERvY3VtZW50UGFyc2VyLmgKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRl
ICJIVE1MU2NyaXB0UnVubmVySG9zdC5oIgogI2luY2x1ZGUgIkhUTUxTb3VyY2VUcmFja2VyLmgi
CiAjaW5jbHVkZSAiSFRNTFRva2VuLmgiCisjaW5jbHVkZSAiSFRNTFRva2VuaXplci5oIgogI2lu
Y2x1ZGUgIlNjcmlwdGFibGVEb2N1bWVudFBhcnNlci5oIgogI2luY2x1ZGUgIlNlZ21lbnRlZFN0
cmluZy5oIgogI2luY2x1ZGUgIlRpbWVyLmgiCkBAIC01NCw3ICs1NSw2IEBAIGNsYXNzIERvY3Vt
ZW50OwogY2xhc3MgRG9jdW1lbnRGcmFnbWVudDsKIGNsYXNzIEhUTUxEb2N1bWVudDsKIGNsYXNz
IEhUTUxQYXJzZXJTY2hlZHVsZXI7Ci1jbGFzcyBIVE1MVG9rZW5pemVyOwogY2xhc3MgSFRNTFNj
cmlwdFJ1bm5lcjsKIGNsYXNzIEhUTUxUcmVlQnVpbGRlcjsKIGNsYXNzIEhUTUxSZXNvdXJjZVBy
ZWxvYWRlcjsKQEAgLTg5LDYgKzg5LDcgQEAgcHVibGljOgogICAgIHN0cnVjdCBQYXJzZWRDaHVu
ayB7CiAgICAgICAgIE93blB0cjxDb21wYWN0SFRNTFRva2VuU3RyZWFtPiB0b2tlbnM7CiAgICAg
ICAgIFByZWxvYWRSZXF1ZXN0U3RyZWFtIHByZWxvYWRzOworICAgICAgICBIVE1MVG9rZW5pemVy
OjpTdGF0ZSB0b2tlbml6ZXJTdGF0ZTsKICAgICAgICAgSFRNTElucHV0Q2hlY2twb2ludCBpbnB1
dENoZWNrcG9pbnQ7CiAgICAgICAgIFRva2VuUHJlbG9hZFNjYW5uZXJDaGVja3BvaW50IHByZWxv
YWRTY2FubmVyQ2hlY2twb2ludDsKICAgICB9Owo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>190854</attachid>
            <date>2013-02-28 17:21:35 -0800</date>
            <delta_ts>2013-02-28 18:14:50 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-111130-20130228171751.patch</filename>
            <type>text/plain</type>
            <size>5031</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0MzIwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYThmMjNkZGU5ZjdmNzk0
YmE3MDIxYjgxYTc4MTk3MGRiODk0Y2RkOS4uOWQxNGRjOWYzZTExYjNmNWQ4MDI5ODY1ZWM5YjUz
MTUwODAxYWNjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDEzLTAyLTI4ICBBZGFt
IEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CisKKyAgICAgICAgVGhlIHRocmVhZGVkIEhUTUwg
cGFyc2VyIHNob3VsZG4ndCBuZWVkIHRvIGludmFsaWRhdGUgdGhlIHNwZWN1bGF0aW9uIGJ1ZmZl
ciBvbiBldmVyeSBkb2N1bWVudC53cml0ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTExMTMwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlk
ZWwuCisKKyAgICAgICAgUHJldmlvdXNseSwgdGhlIHRocmVhZGVkIEhUTUwgcGFyc2VyIGFsd2F5
cyBpbnZhbGlkYXRlZCBpdHMgc3BlY3VsYXRpb24KKyAgICAgICAgYnVmZmVyIHdoZW4gaXQgcmVj
ZWl2ZWQgYSBkb2N1bWVudC53cml0ZS4gIFRoYXQgbWVhbnMgd2UgcGVyZm9ybWVkCisgICAgICAg
IHBvb3JseSBvbiB3ZWIgc2l0ZXMgdGhhdCBjb250YWluZWQgZG9jdW1lbnQud3JpdGUgY2FsbHMg
ZWFybHkgaW4gdGhlCisgICAgICAgIHBhZ2UuCisKKyAgICAgICAgVGhpcyBwYXRjaCB0ZWFjaGVz
IHRoZSBIVE1MRG9jdW1lbnRQYXJzZXIgdGhhdCB3ZSBkb24ndCBuZWVkIHRvIGRpc2NhcmQKKyAg
ICAgICAgdGhlIHNwZWN1bGF0aW9uIGJ1ZmZlciBpbiB0aGUgY29tbW9uIGNhc2Ugb2Ygc3RhcnRp
bmcgYW5kIGVuZGluZyBpbiB0aGUKKyAgICAgICAgRGF0YVN0YXRlLgorCisgICAgICAgICogaHRt
bC9wYXJzZXIvQmFja2dyb3VuZEhUTUxQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QmFj
a2dyb3VuZEhUTUxQYXJzZXI6OnNlbmRUb2tlbnNUb01haW5UaHJlYWQpOgorICAgICAgICAqIGh0
bWwvcGFyc2VyL0hUTUxEb2N1bWVudFBhcnNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1M
RG9jdW1lbnRQYXJzZXI6OmNoZWNrRm9yU3BlY3VsYXRpb25GYWlsdXJlKToKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxEb2N1bWVudFBhcnNlcjo6ZGlkRmFpbFNwZWN1bGF0aW9uKToKKyAgICAgICAg
KiBodG1sL3BhcnNlci9IVE1MRG9jdW1lbnRQYXJzZXIuaDoKKyAgICAgICAgKFdlYkNvcmUpOgor
ICAgICAgICAoUGFyc2VkQ2h1bmspOgorCiAyMDEzLTAyLTI2ICBEYXZpZCBIeWF0dCAgPGh5YXR0
QGFwcGxlLmNvbT4KIAogICAgICAgICBbTmV3IE11bHRpY29sdW1uXSBSZXdyaXRlIHRoZSBwYWlu
dGluZy9zdGFja2luZyBtb2RlbCB0byBiZSBzcGVjIGNvbXBsaWFudC4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0JhY2tncm91bmRIVE1MUGFyc2VyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0JhY2tncm91bmRIVE1MUGFyc2VyLmNwcAppbmRleCA1NmU0
N2ZjZGMzNjAyZjlhYjE0MzU5NjMzMjI3NDFhZGYyMGVkM2UwLi42NDNmODA2ZDUwM2M1MWJlNDM4
ZGJiNWNkYmJlOTc3ZGJmM2YyYjQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3Bh
cnNlci9CYWNrZ3JvdW5kSFRNTFBhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9w
YXJzZXIvQmFja2dyb3VuZEhUTUxQYXJzZXIuY3BwCkBAIC0yNzksNiArMjc5LDcgQEAgdm9pZCBC
YWNrZ3JvdW5kSFRNTFBhcnNlcjo6c2VuZFRva2Vuc1RvTWFpblRocmVhZCgpCiAgICAgT3duUHRy
PEhUTUxEb2N1bWVudFBhcnNlcjo6UGFyc2VkQ2h1bms+IGNodW5rID0gYWRvcHRQdHIobmV3IEhU
TUxEb2N1bWVudFBhcnNlcjo6UGFyc2VkQ2h1bmspOwogICAgIGNodW5rLT50b2tlbnMgPSBtX3Bl
bmRpbmdUb2tlbnMucmVsZWFzZSgpOwogICAgIGNodW5rLT5wcmVsb2Fkcy5zd2FwKG1fcGVuZGlu
Z1ByZWxvYWRzKTsKKyAgICBjaHVuay0+dG9rZW5pemVyU3RhdGUgPSBtX3Rva2VuaXplci0+c3Rh
dGUoKTsKICAgICBjaHVuay0+aW5wdXRDaGVja3BvaW50ID0gbV9pbnB1dC5jcmVhdGVDaGVja3Bv
aW50KCk7CiAgICAgY2h1bmstPnByZWxvYWRTY2FubmVyQ2hlY2twb2ludCA9IG1fcHJlbG9hZFNj
YW5uZXItPmNyZWF0ZUNoZWNrcG9pbnQoKTsKICAgICBjYWxsT25NYWluVGhyZWFkKGJpbmQoJkhU
TUxEb2N1bWVudFBhcnNlcjo6ZGlkUmVjZWl2ZVBhcnNlZENodW5rRnJvbUJhY2tncm91bmRQYXJz
ZXIsIG1fcGFyc2VyLCBjaHVuay5yZWxlYXNlKCkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvcGFyc2VyL0hUTUxEb2N1bWVudFBhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3BhcnNlci9IVE1MRG9jdW1lbnRQYXJzZXIuY3BwCmluZGV4IGJkNDhlM2U2NzdhMzJjYWQ2
YmZhZTcxYjJlZGIwYWNmYThjNGM0MjAuLmNkZDAzNWFjNzk4ODk0NTlmZjFjMzc1MGNhMmFkZTk2
NGFjYmYxMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxEb2N1
bWVudFBhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTERvY3Vt
ZW50UGFyc2VyLmNwcApAQCAtMzMyLDE2ICszMzIsMjQgQEAgdm9pZCBIVE1MRG9jdW1lbnRQYXJz
ZXI6OmNoZWNrRm9yU3BlY3VsYXRpb25GYWlsdXJlKCkKIHsKICAgICBpZiAoIW1fdG9rZW5pemVy
KQogICAgICAgICByZXR1cm47Ci0gICAgLy8gRklYTUU6IElmIHRoZSB0b2tlbml6ZXIgaXMgaW4g
dGhlIHNhbWUgc3RhdGUgYXMgd2hlbiB3ZSBzdGFydGVkIHRoaXMgZnVuY3Rpb24sCi0gICAgLy8g
dGhlbiB3ZSBoYXZlbid0IG5lY2Vzc2FyaWx5IGZhaWxlZCBvdXIgc3BlY3VsYXRpb24uCisgICAg
aWYgKCFtX2N1cnJlbnRDaHVuaykKKyAgICAgICAgcmV0dXJuOworICAgIC8vIEN1cnJlbnRseSB3
ZSdyZSBvbmx5IHNtYXJ0IGVub3VnaCB0byByZXVzZSB0aGUgc3BlY3VsYXRpb24gYnVmZmVyIGlm
IHRoZSB0b2tlbml6ZXIKKyAgICAvLyBib3RoIHN0YXJ0cyBhbmQgZW5kcyBpbiB0aGUgRGF0YVN0
YXRlLiBUaGF0IHN0YXRlIGlzIHNpbXBsZXN0IGJlY2F1c2UgdGhlIEhUTUxUb2tlbgorICAgIC8v
IGlzIGFsd2F5cyBpbiB0aGUgVW5pbml0aWFsaXplZCBzdGF0ZS4gV2Ugc2hvdWxkIGNvbnNpZGVy
IHdoZXRoZXIgd2UgY2FuIHJldXNlIHRoZQorICAgIC8vIHNwZWN1bGF0aW9uIGJ1ZmZlciBpbiBv
dGhlciBzdGF0ZXMsIGJ1dCB3ZSdkIGxpa2VseSBuZWVkIHRvIGRvIHNvbWV0aGluZyBtb3JlCisg
ICAgLy8gc29waGlzdGljYXRlZCB3aXRoIHRoZSBIVE1MVG9rZW4uCisgICAgaWYgKG1fY3VycmVu
dENodW5rLT50b2tlbml6ZXJTdGF0ZSA9PSBIVE1MVG9rZW5pemVyOjpEYXRhU3RhdGUgJiYgbV90
b2tlbml6ZXItPnN0YXRlKCkgPT0gSFRNTFRva2VuaXplcjo6RGF0YVN0YXRlICYmIG1faW5wdXQu
Y3VycmVudCgpLmlzRW1wdHkoKSkgeworICAgICAgICBBU1NFUlQobV90b2tlbi0+aXNVbmluaXRp
YWxpemVkKCkpOworICAgICAgICBtX3Rva2VuaXplci5jbGVhcigpOworICAgICAgICBtX3Rva2Vu
LmNsZWFyKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CiAgICAgZGlkRmFpbFNwZWN1bGF0aW9u
KG1fdG9rZW4ucmVsZWFzZSgpLCBtX3Rva2VuaXplci5yZWxlYXNlKCkpOwogfQogCiB2b2lkIEhU
TUxEb2N1bWVudFBhcnNlcjo6ZGlkRmFpbFNwZWN1bGF0aW9uKFBhc3NPd25QdHI8SFRNTFRva2Vu
PiB0b2tlbiwgUGFzc093blB0cjxIVE1MVG9rZW5pemVyPiB0b2tlbml6ZXIpCiB7Ci0gICAgaWYg
KCFtX2N1cnJlbnRDaHVuaykKLSAgICAgICAgcmV0dXJuOwotCiAgICAgbV93ZWFrRmFjdG9yeS5y
ZXZva2VBbGwoKTsKICAgICBtX3NwZWN1bGF0aW9ucy5jbGVhcigpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRG9jdW1lbnRQYXJzZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxEb2N1bWVudFBhcnNlci5oCmluZGV4IDFiYmY3NzFjYjgx
NDVmNjc5ZjEwY2IxZmU0NTZiMzIwNmI3ZmFmY2UuLmYyMzcxNzczOWNhNjBkZGQ0YjFmYmE1ODBh
YTJiOTBkYjY1NGQyMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hU
TUxEb2N1bWVudFBhcnNlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxE
b2N1bWVudFBhcnNlci5oCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSAiSFRNTFNjcmlwdFJ1
bm5lckhvc3QuaCIKICNpbmNsdWRlICJIVE1MU291cmNlVHJhY2tlci5oIgogI2luY2x1ZGUgIkhU
TUxUb2tlbi5oIgorI2luY2x1ZGUgIkhUTUxUb2tlbml6ZXIuaCIKICNpbmNsdWRlICJTY3JpcHRh
YmxlRG9jdW1lbnRQYXJzZXIuaCIKICNpbmNsdWRlICJTZWdtZW50ZWRTdHJpbmcuaCIKICNpbmNs
dWRlICJUaW1lci5oIgpAQCAtNTQsNyArNTUsNiBAQCBjbGFzcyBEb2N1bWVudDsKIGNsYXNzIERv
Y3VtZW50RnJhZ21lbnQ7CiBjbGFzcyBIVE1MRG9jdW1lbnQ7CiBjbGFzcyBIVE1MUGFyc2VyU2No
ZWR1bGVyOwotY2xhc3MgSFRNTFRva2VuaXplcjsKIGNsYXNzIEhUTUxTY3JpcHRSdW5uZXI7CiBj
bGFzcyBIVE1MVHJlZUJ1aWxkZXI7CiBjbGFzcyBIVE1MUmVzb3VyY2VQcmVsb2FkZXI7CkBAIC04
OSw2ICs4OSw3IEBAIHB1YmxpYzoKICAgICBzdHJ1Y3QgUGFyc2VkQ2h1bmsgewogICAgICAgICBP
d25QdHI8Q29tcGFjdEhUTUxUb2tlblN0cmVhbT4gdG9rZW5zOwogICAgICAgICBQcmVsb2FkUmVx
dWVzdFN0cmVhbSBwcmVsb2FkczsKKyAgICAgICAgSFRNTFRva2VuaXplcjo6U3RhdGUgdG9rZW5p
emVyU3RhdGU7CiAgICAgICAgIEhUTUxJbnB1dENoZWNrcG9pbnQgaW5wdXRDaGVja3BvaW50Owog
ICAgICAgICBUb2tlblByZWxvYWRTY2FubmVyQ2hlY2twb2ludCBwcmVsb2FkU2Nhbm5lckNoZWNr
cG9pbnQ7CiAgICAgfTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>