<?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>125279</bug_id>
          
          <creation_ts>2013-12-04 21:09:45 -0800</creation_ts>
          <short_desc>Change how the form element pointer affects parsing template elements, to reduce weirdness in templates</short_desc>
          <delta_ts>2013-12-05 11:42:33 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>DOM</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>adamk</cc>
    
    <cc>ap</cc>
    
    <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>ian</cc>
    
    <cc>jeffrey+webkit</cc>
    
    <cc>kling</cc>
    
    <cc>koivisto</cc>
    
    <cc>rafaelw</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>956768</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-12-04 21:09:45 -0800</bug_when>
    <thetext>Make HTML5 parser changes to match the HTML5 specification change: http://html5.org/tools/web-apps-tracker?from=8330&amp;to=8331

Change how the form element pointer affects parsing &lt;template&gt; elements, to reduce weirdness in templates (e.g. before you couldn&apos;t have a template that contained a form if it was itself inside a form).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>956769</commentid>
    <comment_count>1</comment_count>
      <attachid>218487</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-12-04 21:17:50 -0800</bug_when>
    <thetext>Created attachment 218487
Work in progress</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>956772</commentid>
    <comment_count>2</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-12-04 22:24:17 -0800</bug_when>
    <thetext>Filed the corresponding Gecko and Blink bugs:
https://bugzilla.mozilla.org/show_bug.cgi?id=946585
https://code.google.com/p/chromium/issues/detail?id=326058</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>956773</commentid>
    <comment_count>3</comment_count>
      <attachid>218489</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-12-04 22:40:05 -0800</bug_when>
    <thetext>Created attachment 218489
Updates the parser</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>956978</commentid>
    <comment_count>4</comment_count>
      <attachid>218489</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2013-12-05 11:30:00 -0800</bug_when>
    <thetext>Comment on attachment 218489
Updates the parser

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

&gt; Source/WebCore/html/parser/HTMLConstructionSite.cpp:416
&gt; +    if (!insideTemplateElement())
&gt; +        m_form = static_pointer_cast&lt;HTMLFormElement&gt;(element);
&gt; +    static_pointer_cast&lt;HTMLFormElement&gt;(element)-&gt;setDemoted(isDemoted);

Please do the cast only once and put it to a local

&gt; Source/WebCore/html/parser/HTMLConstructionSite.cpp:544
&gt; +inline bool HTMLConstructionSite::insideTemplateElement()
&gt; +{
&gt; +    return !ownerDocumentForCurrentNode().frame();
&gt; +}

Maybe we should just have a boolean for this state? This is bit hard to understand.

&gt; Source/WebCore/html/parser/HTMLTreeBuilder.cpp:1869
&gt; +#if ENABLE(TEMPLATE_ELEMENT)
&gt; +        if (!isParsingTemplateContents()) {
&gt; +#endif

Not a big fan of #ifs like this</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>956984</commentid>
    <comment_count>5</comment_count>
      <attachid>218489</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-12-05 11:42:11 -0800</bug_when>
    <thetext>Comment on attachment 218489
Updates the parser

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

&gt;&gt; Source/WebCore/html/parser/HTMLConstructionSite.cpp:416
&gt;&gt; +    static_pointer_cast&lt;HTMLFormElement&gt;(element)-&gt;setDemoted(isDemoted);
&gt; 
&gt; Please do the cast only once and put it to a local

Done.

&gt;&gt; Source/WebCore/html/parser/HTMLConstructionSite.cpp:544
&gt;&gt; +}
&gt; 
&gt; Maybe we should just have a boolean for this state? This is bit hard to understand.

Yeah, I&apos;d love to. Unfortunately, it&apos;s very tricky to do in one patch :(

&gt;&gt; Source/WebCore/html/parser/HTMLTreeBuilder.cpp:1869
&gt;&gt; +#endif
&gt; 
&gt; Not a big fan of #ifs like this

Got rid of the if-def since the latter part doesn&apos;t use any template-specific code and &quot;return false&quot; is hard-coded
in isParsingTemplateContents() so that the compiler can easily eliminate the code block.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>956985</commentid>
    <comment_count>6</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-12-05 11:42:18 -0800</bug_when>
    <thetext>Thanks for the review!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>956986</commentid>
    <comment_count>7</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-12-05 11:42:33 -0800</bug_when>
    <thetext>Committed r160182: &lt;http://trac.webkit.org/changeset/160182&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>218487</attachid>
            <date>2013-12-04 21:17:50 -0800</date>
            <delta_ts>2013-12-04 22:40:01 -0800</delta_ts>
            <desc>Work in progress</desc>
            <filename>wip125279</filename>
            <type>text/plain</type>
            <size>6423</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxDb25zdHJ1Y3Rpb25TaXRlLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MQ29uc3RydWN0
aW9uU2l0ZS5jcHAJKHJldmlzaW9uIDE2MDE1NSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvcGFy
c2VyL0hUTUxDb25zdHJ1Y3Rpb25TaXRlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDExLDEwICs0
MTEsMTEgQEAKIHsKICAgICBSZWZQdHI8RWxlbWVudD4gZWxlbWVudCA9IGNyZWF0ZUhUTUxFbGVt
ZW50KHRva2VuKTsKICAgICBBU1NFUlQoaXNIVE1MRm9ybUVsZW1lbnQoZWxlbWVudC5nZXQoKSkp
OwotICAgIG1fZm9ybSA9IHN0YXRpY19wb2ludGVyX2Nhc3Q8SFRNTEZvcm1FbGVtZW50PihlbGVt
ZW50LnJlbGVhc2UoKSk7Ci0gICAgbV9mb3JtLT5zZXREZW1vdGVkKGlzRGVtb3RlZCk7Ci0gICAg
YXR0YWNoTGF0ZXIoY3VycmVudE5vZGUoKSwgbV9mb3JtKTsKLSAgICBtX29wZW5FbGVtZW50cy5w
dXNoKEhUTUxTdGFja0l0ZW06OmNyZWF0ZShtX2Zvcm0sIHRva2VuKSk7CisgICAgaWYgKCFpbnNp
ZGVUZW1wbGF0ZUVsZW1lbnQoKSkKKyAgICAgICAgbV9mb3JtID0gc3RhdGljX3BvaW50ZXJfY2Fz
dDxIVE1MRm9ybUVsZW1lbnQ+KGVsZW1lbnQpOworICAgIHN0YXRpY19wb2ludGVyX2Nhc3Q8SFRN
TEZvcm1FbGVtZW50PihlbGVtZW50KS0+c2V0RGVtb3RlZChpc0RlbW90ZWQpOworICAgIGF0dGFj
aExhdGVyKGN1cnJlbnROb2RlKCksIGVsZW1lbnQpOworICAgIG1fb3BlbkVsZW1lbnRzLnB1c2go
SFRNTFN0YWNrSXRlbTo6Y3JlYXRlKGVsZW1lbnQucmVsZWFzZSgpLCB0b2tlbikpOwogfQogCiB2
b2lkIEhUTUxDb25zdHJ1Y3Rpb25TaXRlOjppbnNlcnRIVE1MRWxlbWVudChBdG9taWNIVE1MVG9r
ZW4qIHRva2VuKQpAQCAtNTM3LDYgKzUzOCwxMSBAQAogICAgIHJldHVybiBjdXJyZW50Tm9kZSgp
LT5kb2N1bWVudCgpOwogfQogCitpbmxpbmUgYm9vbCBIVE1MQ29uc3RydWN0aW9uU2l0ZTo6aW5z
aWRlVGVtcGxhdGVFbGVtZW50KCkKK3sKKyAgICByZXR1cm4gIW93bmVyRG9jdW1lbnRGb3JDdXJy
ZW50Tm9kZSgpLmZyYW1lKCk7Cit9CisKIFBhc3NSZWZQdHI8RWxlbWVudD4gSFRNTENvbnN0cnVj
dGlvblNpdGU6OmNyZWF0ZUhUTUxFbGVtZW50KEF0b21pY0hUTUxUb2tlbiogdG9rZW4pCiB7CiAg
ICAgUXVhbGlmaWVkTmFtZSB0YWdOYW1lKG51bGxBdG9tLCB0b2tlbi0+bmFtZSgpLCB4aHRtbE5h
bWVzcGFjZVVSSSk7CkBAIC01NDUsOCArNTUxLDggQEAKICAgICAvLyB0byBvY2N1ciBhZnRlciBj
b25zdHJ1Y3Rpb24gdG8gYWxsb3cgYmV0dGVyIGNvZGUgc2hhcmluZyBoZXJlLgogICAgIC8vIGh0
dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsvbXVsdGlwYWdl
L3RyZWUtY29uc3RydWN0aW9uLmh0bWwjY3JlYXRlLWFuLWVsZW1lbnQtZm9yLXRoZS10b2tlbgog
ICAgIERvY3VtZW50JiBvd25lckRvY3VtZW50ID0gb3duZXJEb2N1bWVudEZvckN1cnJlbnROb2Rl
KCk7Ci0gICAgYm9vbCBvcGVuRWxlbWVudHNDb250YWluVGVtcGxhdGVFbGVtZW50ID0gIW93bmVy
RG9jdW1lbnQuZnJhbWUoKTsKLSAgICBSZWZQdHI8RWxlbWVudD4gZWxlbWVudCA9IEhUTUxFbGVt
ZW50RmFjdG9yeTo6Y3JlYXRlRWxlbWVudCh0YWdOYW1lLCBvd25lckRvY3VtZW50LCBvcGVuRWxl
bWVudHNDb250YWluVGVtcGxhdGVFbGVtZW50ID8gbnVsbHB0ciA6IGZvcm0oKSwgdHJ1ZSk7Cisg
ICAgYm9vbCBpbnNpZGVUZW1wbGF0ZUVsZW1lbnQgPSAhb3duZXJEb2N1bWVudC5mcmFtZSgpOwor
ICAgIFJlZlB0cjxFbGVtZW50PiBlbGVtZW50ID0gSFRNTEVsZW1lbnRGYWN0b3J5OjpjcmVhdGVF
bGVtZW50KHRhZ05hbWUsIG93bmVyRG9jdW1lbnQsIGluc2lkZVRlbXBsYXRlRWxlbWVudCA/IG51
bGxwdHIgOiBmb3JtKCksIHRydWUpOwogICAgIHNldEF0dHJpYnV0ZXMoZWxlbWVudC5nZXQoKSwg
dG9rZW4sIG1fcGFyc2VyQ29udGVudFBvbGljeSk7CiAgICAgQVNTRVJUKGVsZW1lbnQtPmlzSFRN
TEVsZW1lbnQoKSk7CiAgICAgcmV0dXJuIGVsZW1lbnQucmVsZWFzZSgpOwpJbmRleDogU291cmNl
L1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTENvbnN0cnVjdGlvblNpdGUuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MQ29uc3RydWN0aW9uU2l0ZS5oCShyZXZp
c2lvbiAxNjAxNTUpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MQ29uc3RydWN0
aW9uU2l0ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMTksNiArMTE5LDcgQEAKICAgICBIVE1MU3Rh
Y2tJdGVtKiBjdXJyZW50U3RhY2tJdGVtKCkgY29uc3QgeyByZXR1cm4gbV9vcGVuRWxlbWVudHMu
dG9wU3RhY2tJdGVtKCk7IH0KICAgICBIVE1MU3RhY2tJdGVtKiBvbmVCZWxvd1RvcCgpIGNvbnN0
IHsgcmV0dXJuIG1fb3BlbkVsZW1lbnRzLm9uZUJlbG93VG9wKCk7IH0KICAgICBEb2N1bWVudCYg
b3duZXJEb2N1bWVudEZvckN1cnJlbnROb2RlKCk7CisgICAgYm9vbCBpbnNpZGVUZW1wbGF0ZUVs
ZW1lbnQoKTsKICAgICBIVE1MRWxlbWVudFN0YWNrKiBvcGVuRWxlbWVudHMoKSBjb25zdCB7IHJl
dHVybiAmbV9vcGVuRWxlbWVudHM7IH0KICAgICBIVE1MRm9ybWF0dGluZ0VsZW1lbnRMaXN0KiBh
Y3RpdmVGb3JtYXR0aW5nRWxlbWVudHMoKSBjb25zdCB7IHJldHVybiAmbV9hY3RpdmVGb3JtYXR0
aW5nRWxlbWVudHM7IH0KICAgICBib29sIGN1cnJlbnRJc1Jvb3ROb2RlKCkgeyByZXR1cm4gbV9v
cGVuRWxlbWVudHMudG9wTm9kZSgpID09IG1fb3BlbkVsZW1lbnRzLnJvb3ROb2RlKCk7IH0KSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVyLmNwcAko
cmV2aXNpb24gMTYwMTU1KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFRyZWVC
dWlsZGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDYyLDcgKzQ2Miw3IEBACiAgICAgQVNTRVJU
KHRva2VuLT50eXBlKCkgPT0gSFRNTFRva2VuOjpTdGFydFRhZyk7CiAgICAgQVNTRVJUKHRva2Vu
LT5uYW1lKCkgPT0gaXNpbmRleFRhZyk7CiAgICAgcGFyc2VFcnJvcih0b2tlbik7Ci0gICAgaWYg
KG1fdHJlZS5mb3JtKCkpCisgICAgaWYgKG1fdHJlZS5mb3JtKCkgJiYgIWlzUGFyc2luZ1RlbXBs
YXRlQ29udGVudHMoKSkKICAgICAgICAgcmV0dXJuOwogICAgIG5vdEltcGxlbWVudGVkKCk7IC8v
IEFja25vd2xlZGdlIHNlbGYtY2xvc2luZyBmbGFnCiAgICAgcHJvY2Vzc0Zha2VTdGFydFRhZyhm
b3JtVGFnKTsKQEAgLTcwMCw3ICs3MDAsNyBAQAogICAgICAgICByZXR1cm47CiAgICAgfQogICAg
IGlmICh0b2tlbi0+bmFtZSgpID09IGZvcm1UYWcpIHsKLSAgICAgICAgaWYgKG1fdHJlZS5mb3Jt
KCkpIHsKKyAgICAgICAgaWYgKG1fdHJlZS5mb3JtKCkgJiYgIWlzUGFyc2luZ1RlbXBsYXRlQ29u
dGVudHMoKSkgewogICAgICAgICAgICAgcGFyc2VFcnJvcih0b2tlbik7CiAgICAgICAgICAgICBy
ZXR1cm47CiAgICAgICAgIH0KQEAgLTEwNTEsNyArMTA1MSw3IEBACiAgICAgfQogICAgIGlmICh0
b2tlbi0+bmFtZSgpID09IGZvcm1UYWcpIHsKICAgICAgICAgcGFyc2VFcnJvcih0b2tlbik7Ci0g
ICAgICAgIGlmIChtX3RyZWUuZm9ybSgpKQorICAgICAgICBpZiAobV90cmVlLmZvcm0oKSAmJiAh
aXNQYXJzaW5nVGVtcGxhdGVDb250ZW50cygpKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAg
ICBtX3RyZWUuaW5zZXJ0SFRNTEZvcm1FbGVtZW50KHRva2VuLCB0cnVlKTsKICAgICAgICAgbV90
cmVlLm9wZW5FbGVtZW50cygpLT5wb3AoKTsKQEAgLTE4NjQsMTUgKzE4NjQsMzAgQEAKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KICAgICBpZiAodG9rZW4tPm5hbWUoKSA9PSBmb3JtVGFnKSB7Ci0g
ICAgICAgIFJlZlB0cjxFbGVtZW50PiBub2RlID0gbV90cmVlLnRha2VGb3JtKCk7Ci0gICAgICAg
IGlmICghbm9kZSB8fCAhbV90cmVlLm9wZW5FbGVtZW50cygpLT5pblNjb3BlKG5vZGUuZ2V0KCkp
KSB7Ci0gICAgICAgICAgICBwYXJzZUVycm9yKHRva2VuKTsKLSAgICAgICAgICAgIHJldHVybjsK
KyNpZiBFTkFCTEUoVEVNUExBVEVfRUxFTUVOVCkKKyAgICAgICAgaWYgKCFpc1BhcnNpbmdUZW1w
bGF0ZUNvbnRlbnRzKCkpIHsKKyNlbmRpZgorICAgICAgICAgICAgUmVmUHRyPEVsZW1lbnQ+IG5v
ZGUgPSBtX3RyZWUudGFrZUZvcm0oKTsKKyAgICAgICAgICAgIGlmICghbm9kZSB8fCAhbV90cmVl
Lm9wZW5FbGVtZW50cygpLT5pblNjb3BlKG5vZGUuZ2V0KCkpKSB7CisgICAgICAgICAgICAgICAg
cGFyc2VFcnJvcih0b2tlbik7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAg
fQorICAgICAgICAgICAgbV90cmVlLmdlbmVyYXRlSW1wbGllZEVuZFRhZ3MoKTsKKyAgICAgICAg
ICAgIGlmIChtX3RyZWUuY3VycmVudE5vZGUoKSAhPSBub2RlLmdldCgpKQorICAgICAgICAgICAg
ICAgIHBhcnNlRXJyb3IodG9rZW4pOworICAgICAgICAgICAgbV90cmVlLm9wZW5FbGVtZW50cygp
LT5yZW1vdmUobm9kZS5nZXQoKSk7CisjaWYgRU5BQkxFKFRFTVBMQVRFX0VMRU1FTlQpCisgICAg
ICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpZiAoIW1fdHJlZS5vcGVuRWxlbWVudHMoKS0+aW5T
Y29wZSh0b2tlbi0+bmFtZSgpKSkgeworICAgICAgICAgICAgICAgIHBhcnNlRXJyb3IodG9rZW4p
OworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG1f
dHJlZS5nZW5lcmF0ZUltcGxpZWRFbmRUYWdzKCk7CisgICAgICAgICAgICBpZiAoIW1fdHJlZS5j
dXJyZW50Tm9kZSgpLT5oYXNUYWdOYW1lKGZvcm1UYWcpKQorICAgICAgICAgICAgICAgIHBhcnNl
RXJyb3IodG9rZW4pOworICAgICAgICAgICAgbV90cmVlLm9wZW5FbGVtZW50cygpLT5wb3BVbnRp
bFBvcHBlZCh0b2tlbi0+bmFtZSgpKTsKICAgICAgICAgfQotICAgICAgICBtX3RyZWUuZ2VuZXJh
dGVJbXBsaWVkRW5kVGFncygpOwotICAgICAgICBpZiAobV90cmVlLmN1cnJlbnRFbGVtZW50KCkg
IT0gbm9kZS5nZXQoKSkKLSAgICAgICAgICAgIHBhcnNlRXJyb3IodG9rZW4pOwotICAgICAgICBt
X3RyZWUub3BlbkVsZW1lbnRzKCktPnJlbW92ZShub2RlLmdldCgpKTsKKyNlbmRpZgogICAgIH0K
ICAgICBpZiAodG9rZW4tPm5hbWUoKSA9PSBwVGFnKSB7CiAgICAgICAgIGlmICghbV90cmVlLm9w
ZW5FbGVtZW50cygpLT5pbkJ1dHRvblNjb3BlKHRva2VuLT5uYW1lKCkpKSB7CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuaAkocmV2aXNpb24gMTYw
MTU1KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVyLmgJKHdv
cmtpbmcgY29weSkKQEAgLTcyLDEwICs3MiwxMCBAQAogICAgIGJvb2wgaXNQYXJzaW5nRnJhZ21l
bnQoKSBjb25zdCB7IHJldHVybiAhIW1fZnJhZ21lbnRDb250ZXh0LmZyYWdtZW50KCk7IH0KICNp
ZiBFTkFCTEUoVEVNUExBVEVfRUxFTUVOVCkKICAgICBib29sIGlzUGFyc2luZ1RlbXBsYXRlQ29u
dGVudHMoKSBjb25zdCB7IHJldHVybiBtX3RyZWUub3BlbkVsZW1lbnRzKCktPmhhc1RlbXBsYXRl
SW5IVE1MU2NvcGUoKTsgfQotICAgIGJvb2wgaXNQYXJzaW5nRnJhZ21lbnRPclRlbXBsYXRlQ29u
dGVudHMoKSBjb25zdCB7IHJldHVybiBpc1BhcnNpbmdGcmFnbWVudCgpIHx8IGlzUGFyc2luZ1Rl
bXBsYXRlQ29udGVudHMoKTsgfQogI2Vsc2UKLSAgICBib29sIGlzUGFyc2luZ0ZyYWdtZW50T3JU
ZW1wbGF0ZUNvbnRlbnRzKCkgY29uc3QgeyByZXR1cm4gaXNQYXJzaW5nRnJhZ21lbnQoKTsgfQor
ICAgIGJvb2wgaXNQYXJzaW5nVGVtcGxhdGVDb250ZW50cygpIGNvbnN0IHsgcmV0dXJuIGZhbHNl
OyB9CiAjZW5kaWYKKyAgICBib29sIGlzUGFyc2luZ0ZyYWdtZW50T3JUZW1wbGF0ZUNvbnRlbnRz
KCkgY29uc3QgeyByZXR1cm4gaXNQYXJzaW5nRnJhZ21lbnQoKSB8fCBpc1BhcnNpbmdUZW1wbGF0
ZUNvbnRlbnRzKCk7IH0KIAogICAgIHZvaWQgZGV0YWNoKCk7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>218489</attachid>
            <date>2013-12-04 22:40:05 -0800</date>
            <delta_ts>2013-12-05 11:42:11 -0800</delta_ts>
            <desc>Updates the parser</desc>
            <filename>bug-125279-20131204224004.patch</filename>
            <type>text/plain</type>
            <size>12684</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2MDE1OSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM4IEBACisyMDEzLTEyLTA0ICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIENoYW5nZSBob3cgdGhlIGZvcm0g
ZWxlbWVudCBwb2ludGVyIGFmZmVjdHMgcGFyc2luZyB0ZW1wbGF0ZSBlbGVtZW50cywgdG8gcmVk
dWNlIHdlaXJkbmVzcyBpbiB0ZW1wbGF0ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEyNTI3OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEZhaXRoZnVsbHkgdXBkYXRlIHRoZSBIVE1MNSBwYXJzZXIgYWZ0
ZXIgaHR0cDovL2h0bWw1Lm9yZy90b29scy93ZWItYXBwcy10cmFja2VyP2Zyb209ODMzMCZ0bz04
MzMxLgorCisgICAgICAgIFRlc3Q6IGZhc3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQvbm8tZm9y
bS1hc3NvY2lhdGlvbi0yLmh0bWwKKworICAgICAgICAqIGh0bWwvcGFyc2VyL0hUTUxDb25zdHJ1
Y3Rpb25TaXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDb25zdHJ1Y3Rpb25TaXRlOjpp
bnNlcnRIVE1MRm9ybUVsZW1lbnQpOiBEb24ndCB0aGUgZm9ybSBlbGVtZW50IHBvaW50ZXIgaWYg
dGhlIGNvbnRleHQKKyAgICAgICAgZWxlbWVudCBvciBpdHMgYW5jZXN0b3IgaXMgYSB0ZW1wbGF0
ZSBlbGVtZW50LgorICAgICAgICAoV2ViQ29yZTo6SFRNTENvbnN0cnVjdGlvblNpdGU6Omluc2lk
ZVRlbXBsYXRlRWxlbWVudCk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTENvbnN0cnVj
dGlvblNpdGU6OmNyZWF0ZUhUTUxFbGVtZW50KTogUmVuYW1lZCBvcGVuRWxlbWVudHNDb250YWlu
VGVtcGxhdGVFbGVtZW50IHRvCisgICAgICAgIGluc2lkZVRlbXBsYXRlRWxlbWVudCB0byByZWZs
ZWN0IHRoZSB0cnVlIHNlbWFudGljcyBvZiB0aGUgYm9vbGVhbi4KKworICAgICAgICAqIGh0bWwv
cGFyc2VyL0hUTUxDb25zdHJ1Y3Rpb25TaXRlLmg6CisKKyAgICAgICAgKiBodG1sL3BhcnNlci9I
VE1MVHJlZUJ1aWxkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRyZWVCdWlsZGVyOjpw
cm9jZXNzSXNpbmRleFN0YXJ0VGFnRm9ySW5Cb2R5KTogSWdub3JlIHRoZSBmb3JtIGVsZW1lbnQg
cG9pbnRlciBpZiB0aGVyZQorICAgICAgICBpcyBhIHRlbXBsYXRlIGVsZW1lbnQgb24gdGhlIHN0
YWNrIG9mIG9wZW4gZWxlbWVudHMuIFRoaXMgZmFpdGhmdWxseSByZWZsZWN0cyB3aGF0J3MgYmVp
bmcgc2FpZCBpbiB0aGUKKyAgICAgICAgc3BlY2lmaWNhdGlvbi4gV2Ugc2hvdWxkIHByb2JhYmx5
IG1ha2UgaXNQYXJzaW5nVGVtcGxhdGVDb250ZW50cyBtb3JlIGVmZmljaWVudCBieSBzdG9yaW5n
IGEgYm9vbGVhbgorICAgICAgICBhbmQgdGhlbiB3cmFwIGZyb20oKSBpbiBzb21lIGhlbHBlciBm
dW5jdGlvbiBidXQgdGhhdCBzaG91bGQgcHJvYmJhbHkgaGFwcGVuIGluIGEgc2VwYXJhdGUgcGF0
Y2guCisgICAgICAgIChXZWJDb3JlOjpIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NTdGFydFRhZ0Zv
ckluQm9keSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRyZWVCdWlsZGVyOjpwcm9j
ZXNzU3RhcnRUYWdGb3JJblRhYmxlKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpIVE1MVHJl
ZUJ1aWxkZXI6OnByb2Nlc3NFbmRUYWdGb3JJbkJvZHkpOiBEb24ndCB1bnNldCBvciByZWx5IG9u
IHRoZSBmb3JtIGVsZW1lbnQgcG9pbnRlcgorICAgICAgICB3aGVuIHRoZXJlIGlzIGEgdGVtcGxh
dGUgZWxlbWVudCBvbiB0aGUgc3RhY2sgb2Ygb3BlbiBlbGVtZW50cy4KKworICAgICAgICAqIGh0
bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5oOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRyZWVC
dWlsZGVyOjppc1BhcnNpbmdUZW1wbGF0ZUNvbnRlbnRzKTogQWRkZWQgYSB0cml2aWFsIGltcGxl
bWVudGF0aW9uIGZvciB3aGVuCisgICAgICAgIFRFTVBMQVRFX0VMRU1FTlQgaXMgZGlzYWJsZWQu
CisgICAgICAgIChXZWJDb3JlOjpIVE1MVHJlZUJ1aWxkZXI6OmlzUGFyc2luZ0ZyYWdtZW50T3JU
ZW1wbGF0ZUNvbnRlbnRzKTogTWVyZ2VkIHR3byBpbXBsZW1lbnRhdGlvbnMuCisKIDIwMTMtMTIt
MDQgIEd1cnByZWV0IEthdXIgIDxrLmd1cnByZWV0QHNhbXN1bmcuY29tPgogCiAgICAgICAgICUg
dW5pdCBoZWlnaHRzIGRvbid0IHdvcmsgaWYgcGFyZW50IGJsb2NrIGhlaWdodCBpcyBzZXQgaW4g
dmgKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxDb25zdHJ1Y3Rpb25TaXRl
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MQ29uc3Ry
dWN0aW9uU2l0ZS5jcHAJKHJldmlzaW9uIDE2MDE1NSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwv
cGFyc2VyL0hUTUxDb25zdHJ1Y3Rpb25TaXRlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDExLDEw
ICs0MTEsMTEgQEAgdm9pZCBIVE1MQ29uc3RydWN0aW9uU2l0ZTo6aW5zZXJ0SFRNTEZvcgogewog
ICAgIFJlZlB0cjxFbGVtZW50PiBlbGVtZW50ID0gY3JlYXRlSFRNTEVsZW1lbnQodG9rZW4pOwog
ICAgIEFTU0VSVChpc0hUTUxGb3JtRWxlbWVudChlbGVtZW50LmdldCgpKSk7Ci0gICAgbV9mb3Jt
ID0gc3RhdGljX3BvaW50ZXJfY2FzdDxIVE1MRm9ybUVsZW1lbnQ+KGVsZW1lbnQucmVsZWFzZSgp
KTsKLSAgICBtX2Zvcm0tPnNldERlbW90ZWQoaXNEZW1vdGVkKTsKLSAgICBhdHRhY2hMYXRlcihj
dXJyZW50Tm9kZSgpLCBtX2Zvcm0pOwotICAgIG1fb3BlbkVsZW1lbnRzLnB1c2goSFRNTFN0YWNr
SXRlbTo6Y3JlYXRlKG1fZm9ybSwgdG9rZW4pKTsKKyAgICBpZiAoIWluc2lkZVRlbXBsYXRlRWxl
bWVudCgpKQorICAgICAgICBtX2Zvcm0gPSBzdGF0aWNfcG9pbnRlcl9jYXN0PEhUTUxGb3JtRWxl
bWVudD4oZWxlbWVudCk7CisgICAgc3RhdGljX3BvaW50ZXJfY2FzdDxIVE1MRm9ybUVsZW1lbnQ+
KGVsZW1lbnQpLT5zZXREZW1vdGVkKGlzRGVtb3RlZCk7CisgICAgYXR0YWNoTGF0ZXIoY3VycmVu
dE5vZGUoKSwgZWxlbWVudCk7CisgICAgbV9vcGVuRWxlbWVudHMucHVzaChIVE1MU3RhY2tJdGVt
OjpjcmVhdGUoZWxlbWVudC5yZWxlYXNlKCksIHRva2VuKSk7CiB9CiAKIHZvaWQgSFRNTENvbnN0
cnVjdGlvblNpdGU6Omluc2VydEhUTUxFbGVtZW50KEF0b21pY0hUTUxUb2tlbiogdG9rZW4pCkBA
IC01MzcsNiArNTM4LDExIEBAIGlubGluZSBEb2N1bWVudCYgSFRNTENvbnN0cnVjdGlvblNpdGU6
Om8KICAgICByZXR1cm4gY3VycmVudE5vZGUoKS0+ZG9jdW1lbnQoKTsKIH0KIAoraW5saW5lIGJv
b2wgSFRNTENvbnN0cnVjdGlvblNpdGU6Omluc2lkZVRlbXBsYXRlRWxlbWVudCgpCit7CisgICAg
cmV0dXJuICFvd25lckRvY3VtZW50Rm9yQ3VycmVudE5vZGUoKS5mcmFtZSgpOworfQorCiBQYXNz
UmVmUHRyPEVsZW1lbnQ+IEhUTUxDb25zdHJ1Y3Rpb25TaXRlOjpjcmVhdGVIVE1MRWxlbWVudChB
dG9taWNIVE1MVG9rZW4qIHRva2VuKQogewogICAgIFF1YWxpZmllZE5hbWUgdGFnTmFtZShudWxs
QXRvbSwgdG9rZW4tPm5hbWUoKSwgeGh0bWxOYW1lc3BhY2VVUkkpOwpAQCAtNTQ1LDggKzU1MSw4
IEBAIFBhc3NSZWZQdHI8RWxlbWVudD4gSFRNTENvbnN0cnVjdGlvblNpdGUKICAgICAvLyB0byBv
Y2N1ciBhZnRlciBjb25zdHJ1Y3Rpb24gdG8gYWxsb3cgYmV0dGVyIGNvZGUgc2hhcmluZyBoZXJl
LgogICAgIC8vIGh0dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJyZW50LXdv
cmsvbXVsdGlwYWdlL3RyZWUtY29uc3RydWN0aW9uLmh0bWwjY3JlYXRlLWFuLWVsZW1lbnQtZm9y
LXRoZS10b2tlbgogICAgIERvY3VtZW50JiBvd25lckRvY3VtZW50ID0gb3duZXJEb2N1bWVudEZv
ckN1cnJlbnROb2RlKCk7Ci0gICAgYm9vbCBvcGVuRWxlbWVudHNDb250YWluVGVtcGxhdGVFbGVt
ZW50ID0gIW93bmVyRG9jdW1lbnQuZnJhbWUoKTsKLSAgICBSZWZQdHI8RWxlbWVudD4gZWxlbWVu
dCA9IEhUTUxFbGVtZW50RmFjdG9yeTo6Y3JlYXRlRWxlbWVudCh0YWdOYW1lLCBvd25lckRvY3Vt
ZW50LCBvcGVuRWxlbWVudHNDb250YWluVGVtcGxhdGVFbGVtZW50ID8gbnVsbHB0ciA6IGZvcm0o
KSwgdHJ1ZSk7CisgICAgYm9vbCBpbnNpZGVUZW1wbGF0ZUVsZW1lbnQgPSAhb3duZXJEb2N1bWVu
dC5mcmFtZSgpOworICAgIFJlZlB0cjxFbGVtZW50PiBlbGVtZW50ID0gSFRNTEVsZW1lbnRGYWN0
b3J5OjpjcmVhdGVFbGVtZW50KHRhZ05hbWUsIG93bmVyRG9jdW1lbnQsIGluc2lkZVRlbXBsYXRl
RWxlbWVudCA/IG51bGxwdHIgOiBmb3JtKCksIHRydWUpOwogICAgIHNldEF0dHJpYnV0ZXMoZWxl
bWVudC5nZXQoKSwgdG9rZW4sIG1fcGFyc2VyQ29udGVudFBvbGljeSk7CiAgICAgQVNTRVJUKGVs
ZW1lbnQtPmlzSFRNTEVsZW1lbnQoKSk7CiAgICAgcmV0dXJuIGVsZW1lbnQucmVsZWFzZSgpOwpJ
bmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTENvbnN0cnVjdGlvblNpdGUuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MQ29uc3RydWN0aW9u
U2l0ZS5oCShyZXZpc2lvbiAxNjAxNTUpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9I
VE1MQ29uc3RydWN0aW9uU2l0ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMTksNiArMTE5LDcgQEAg
cHVibGljOgogICAgIEhUTUxTdGFja0l0ZW0qIGN1cnJlbnRTdGFja0l0ZW0oKSBjb25zdCB7IHJl
dHVybiBtX29wZW5FbGVtZW50cy50b3BTdGFja0l0ZW0oKTsgfQogICAgIEhUTUxTdGFja0l0ZW0q
IG9uZUJlbG93VG9wKCkgY29uc3QgeyByZXR1cm4gbV9vcGVuRWxlbWVudHMub25lQmVsb3dUb3Ao
KTsgfQogICAgIERvY3VtZW50JiBvd25lckRvY3VtZW50Rm9yQ3VycmVudE5vZGUoKTsKKyAgICBi
b29sIGluc2lkZVRlbXBsYXRlRWxlbWVudCgpOwogICAgIEhUTUxFbGVtZW50U3RhY2sqIG9wZW5F
bGVtZW50cygpIGNvbnN0IHsgcmV0dXJuICZtX29wZW5FbGVtZW50czsgfQogICAgIEhUTUxGb3Jt
YXR0aW5nRWxlbWVudExpc3QqIGFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cygpIGNvbnN0IHsgcmV0
dXJuICZtX2FjdGl2ZUZvcm1hdHRpbmdFbGVtZW50czsgfQogICAgIGJvb2wgY3VycmVudElzUm9v
dE5vZGUoKSB7IHJldHVybiBtX29wZW5FbGVtZW50cy50b3BOb2RlKCkgPT0gbV9vcGVuRWxlbWVu
dHMucm9vdE5vZGUoKTsgfQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFRy
ZWVCdWlsZGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9I
VE1MVHJlZUJ1aWxkZXIuY3BwCShyZXZpc2lvbiAxNjAxNTUpCisrKyBTb3VyY2UvV2ViQ29yZS9o
dG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NjIsNyAr
NDYyLDcgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NJc2luZGV4U3RhcgogICAgIEFT
U0VSVCh0b2tlbi0+dHlwZSgpID09IEhUTUxUb2tlbjo6U3RhcnRUYWcpOwogICAgIEFTU0VSVCh0
b2tlbi0+bmFtZSgpID09IGlzaW5kZXhUYWcpOwogICAgIHBhcnNlRXJyb3IodG9rZW4pOwotICAg
IGlmIChtX3RyZWUuZm9ybSgpKQorICAgIGlmIChtX3RyZWUuZm9ybSgpICYmICFpc1BhcnNpbmdU
ZW1wbGF0ZUNvbnRlbnRzKCkpCiAgICAgICAgIHJldHVybjsKICAgICBub3RJbXBsZW1lbnRlZCgp
OyAvLyBBY2tub3dsZWRnZSBzZWxmLWNsb3NpbmcgZmxhZwogICAgIHByb2Nlc3NGYWtlU3RhcnRU
YWcoZm9ybVRhZyk7CkBAIC03MDAsNyArNzAwLDcgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnBy
b2Nlc3NTdGFydFRhZ0ZvcgogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIGlmICh0b2tlbi0+
bmFtZSgpID09IGZvcm1UYWcpIHsKLSAgICAgICAgaWYgKG1fdHJlZS5mb3JtKCkpIHsKKyAgICAg
ICAgaWYgKG1fdHJlZS5mb3JtKCkgJiYgIWlzUGFyc2luZ1RlbXBsYXRlQ29udGVudHMoKSkgewog
ICAgICAgICAgICAgcGFyc2VFcnJvcih0b2tlbik7CiAgICAgICAgICAgICByZXR1cm47CiAgICAg
ICAgIH0KQEAgLTEwNTEsNyArMTA1MSw3IEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNz
U3RhcnRUYWdGb3IKICAgICB9CiAgICAgaWYgKHRva2VuLT5uYW1lKCkgPT0gZm9ybVRhZykgewog
ICAgICAgICBwYXJzZUVycm9yKHRva2VuKTsKLSAgICAgICAgaWYgKG1fdHJlZS5mb3JtKCkpCisg
ICAgICAgIGlmIChtX3RyZWUuZm9ybSgpICYmICFpc1BhcnNpbmdUZW1wbGF0ZUNvbnRlbnRzKCkp
CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIG1fdHJlZS5pbnNlcnRIVE1MRm9ybUVsZW1l
bnQodG9rZW4sIHRydWUpOwogICAgICAgICBtX3RyZWUub3BlbkVsZW1lbnRzKCktPnBvcCgpOwpA
QCAtMTg2NCwxNSArMTg2NCwzMCBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc0VuZFRh
Z0ZvckluCiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgaWYgKHRva2VuLT5uYW1lKCkgPT0g
Zm9ybVRhZykgewotICAgICAgICBSZWZQdHI8RWxlbWVudD4gbm9kZSA9IG1fdHJlZS50YWtlRm9y
bSgpOwotICAgICAgICBpZiAoIW5vZGUgfHwgIW1fdHJlZS5vcGVuRWxlbWVudHMoKS0+aW5TY29w
ZShub2RlLmdldCgpKSkgewotICAgICAgICAgICAgcGFyc2VFcnJvcih0b2tlbik7Ci0gICAgICAg
ICAgICByZXR1cm47CisjaWYgRU5BQkxFKFRFTVBMQVRFX0VMRU1FTlQpCisgICAgICAgIGlmICgh
aXNQYXJzaW5nVGVtcGxhdGVDb250ZW50cygpKSB7CisjZW5kaWYKKyAgICAgICAgICAgIFJlZlB0
cjxFbGVtZW50PiBub2RlID0gbV90cmVlLnRha2VGb3JtKCk7CisgICAgICAgICAgICBpZiAoIW5v
ZGUgfHwgIW1fdHJlZS5vcGVuRWxlbWVudHMoKS0+aW5TY29wZShub2RlLmdldCgpKSkgeworICAg
ICAgICAgICAgICAgIHBhcnNlRXJyb3IodG9rZW4pOworICAgICAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG1fdHJlZS5nZW5lcmF0ZUltcGxpZWRFbmRUYWdz
KCk7CisgICAgICAgICAgICBpZiAobV90cmVlLmN1cnJlbnROb2RlKCkgIT0gbm9kZS5nZXQoKSkK
KyAgICAgICAgICAgICAgICBwYXJzZUVycm9yKHRva2VuKTsKKyAgICAgICAgICAgIG1fdHJlZS5v
cGVuRWxlbWVudHMoKS0+cmVtb3ZlKG5vZGUuZ2V0KCkpOworI2lmIEVOQUJMRShURU1QTEFURV9F
TEVNRU5UKQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgaWYgKCFtX3RyZWUub3BlbkVs
ZW1lbnRzKCktPmluU2NvcGUodG9rZW4tPm5hbWUoKSkpIHsKKyAgICAgICAgICAgICAgICBwYXJz
ZUVycm9yKHRva2VuKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9Cisg
ICAgICAgICAgICBtX3RyZWUuZ2VuZXJhdGVJbXBsaWVkRW5kVGFncygpOworICAgICAgICAgICAg
aWYgKCFtX3RyZWUuY3VycmVudE5vZGUoKS0+aGFzVGFnTmFtZShmb3JtVGFnKSkKKyAgICAgICAg
ICAgICAgICBwYXJzZUVycm9yKHRva2VuKTsKKyAgICAgICAgICAgIG1fdHJlZS5vcGVuRWxlbWVu
dHMoKS0+cG9wVW50aWxQb3BwZWQodG9rZW4tPm5hbWUoKSk7CiAgICAgICAgIH0KLSAgICAgICAg
bV90cmVlLmdlbmVyYXRlSW1wbGllZEVuZFRhZ3MoKTsKLSAgICAgICAgaWYgKG1fdHJlZS5jdXJy
ZW50RWxlbWVudCgpICE9IG5vZGUuZ2V0KCkpCi0gICAgICAgICAgICBwYXJzZUVycm9yKHRva2Vu
KTsKLSAgICAgICAgbV90cmVlLm9wZW5FbGVtZW50cygpLT5yZW1vdmUobm9kZS5nZXQoKSk7Cisj
ZW5kaWYKICAgICB9CiAgICAgaWYgKHRva2VuLT5uYW1lKCkgPT0gcFRhZykgewogICAgICAgICBp
ZiAoIW1fdHJlZS5vcGVuRWxlbWVudHMoKS0+aW5CdXR0b25TY29wZSh0b2tlbi0+bmFtZSgpKSkg
ewpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVyLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVyLmgJ
KHJldmlzaW9uIDE2MDE1NSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVl
QnVpbGRlci5oCSh3b3JraW5nIGNvcHkpCkBAIC03MiwxMCArNzIsMTAgQEAgcHVibGljOgogICAg
IGJvb2wgaXNQYXJzaW5nRnJhZ21lbnQoKSBjb25zdCB7IHJldHVybiAhIW1fZnJhZ21lbnRDb250
ZXh0LmZyYWdtZW50KCk7IH0KICNpZiBFTkFCTEUoVEVNUExBVEVfRUxFTUVOVCkKICAgICBib29s
IGlzUGFyc2luZ1RlbXBsYXRlQ29udGVudHMoKSBjb25zdCB7IHJldHVybiBtX3RyZWUub3BlbkVs
ZW1lbnRzKCktPmhhc1RlbXBsYXRlSW5IVE1MU2NvcGUoKTsgfQotICAgIGJvb2wgaXNQYXJzaW5n
RnJhZ21lbnRPclRlbXBsYXRlQ29udGVudHMoKSBjb25zdCB7IHJldHVybiBpc1BhcnNpbmdGcmFn
bWVudCgpIHx8IGlzUGFyc2luZ1RlbXBsYXRlQ29udGVudHMoKTsgfQogI2Vsc2UKLSAgICBib29s
IGlzUGFyc2luZ0ZyYWdtZW50T3JUZW1wbGF0ZUNvbnRlbnRzKCkgY29uc3QgeyByZXR1cm4gaXNQ
YXJzaW5nRnJhZ21lbnQoKTsgfQorICAgIGJvb2wgaXNQYXJzaW5nVGVtcGxhdGVDb250ZW50cygp
IGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAjZW5kaWYKKyAgICBib29sIGlzUGFyc2luZ0ZyYWdt
ZW50T3JUZW1wbGF0ZUNvbnRlbnRzKCkgY29uc3QgeyByZXR1cm4gaXNQYXJzaW5nRnJhZ21lbnQo
KSB8fCBpc1BhcnNpbmdUZW1wbGF0ZUNvbnRlbnRzKCk7IH0KIAogICAgIHZvaWQgZGV0YWNoKCk7
CiAKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2MDE1OSkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwko
d29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBACisyMDEzLTEyLTA0ICBSeW9zdWtlIE5pd2Eg
IDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIENoYW5nZSBob3cgdGhlIGZvcm0gZWxlbWVu
dCBwb2ludGVyIGFmZmVjdHMgcGFyc2luZyB0ZW1wbGF0ZSBlbGVtZW50cywgdG8gcmVkdWNlIHdl
aXJkbmVzcyBpbiB0ZW1wbGF0ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTEyNTI3OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEFkZGVkIGEgcmVncmVzc2lvbiB0ZXN0LiBTb21lb25lIHNob3VsZCBwb3J0
IHRoaXMgdGVzdCBpbnRvIHdlYi1wbGF0Zm9ybS10ZXN0cyBvbmNlIHRoZSBsYXRlc3Qgc3BlYy4K
KyAgICAgICAgY2hhbmdlIGhhcyBiZWVuIHJlZmVsY3RlZCB0byBhIHdvcmtpbmcgZHJhZnQgdmVy
c2lvbiBvZiB0aGUgSFRNTDUgc3BlY2lmaWNhdGlvbi4KKworICAgICAgICAqIGZhc3QvZG9tL0hU
TUxUZW1wbGF0ZUVsZW1lbnQvbm8tZm9ybS1hc3NvY2lhdGlvbi0yLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9uby1mb3JtLWFzc29j
aWF0aW9uLTIuaHRtbDogQWRkZWQuCisKIDIwMTMtMTItMDQgIEd1cnByZWV0IEthdXIgIDxrLmd1
cnByZWV0QHNhbXN1bmcuY29tPgogCiAgICAgICAgICUgdW5pdCBoZWlnaHRzIGRvbid0IHdvcmsg
aWYgcGFyZW50IGJsb2NrIGhlaWdodCBpcyBzZXQgaW4gdmgKSW5kZXg6IExheW91dFRlc3RzL2Zh
c3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQvbm8tZm9ybS1hc3NvY2lhdGlvbi0yLWV4cGVjdGVk
LnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVt
ZW50L25vLWZvcm0tYXNzb2NpYXRpb24tMi1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBM
YXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50L25vLWZvcm0tYXNzb2NpYXRp
b24tMi1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMSBAQAorUEFTUyB0
ZW1wbGF0ZVdpdGhJc2luZGV4LmlubmVySFRNTCBpcyBjb250YWluZXJXaXRoSXNpbmRleC5pbm5l
ckhUTUwKK1BBU1MgdGVtcGxhdGVXaXRoRm9ybUluc2lkZUZvcm0uaW5uZXJIVE1MIGlzICc8Zm9y
bT48aW5wdXQ+PC9mb3JtPicKK1BBU1MgZm9ybUluc2lkZVRlbXBsYXRlID0gdGVtcGxhdGVXaXRo
Rm9ybUluc2lkZUZvcm0uY29udGVudC5maXJzdENoaWxkOyBmb3JtSW5zaWRlVGVtcGxhdGUubG9j
YWxOYW1lIGlzICdmb3JtJworUEFTUyBpbnB1dEluc2lkZVRlbXBsYXRlID0gdGVtcGxhdGVXaXRo
Rm9ybUluc2lkZUZvcm0uY29udGVudC5xdWVyeVNlbGVjdG9yKCdpbnB1dCcpOyBpbnB1dEluc2lk
ZVRlbXBsYXRlLmZvcm0gaXMgZm9ybUluc2lkZVRlbXBsYXRlCitQQVNTIGZvcm1JbnNpZGVUZW1w
bGF0ZS5lbGVtZW50c1swXSBpcyBpbnB1dEluc2lkZVRlbXBsYXRlCitQQVNTIHRlbXBsYXRlV2l0
aE5lc3RlZEZvcm1zLmlubmVySFRNTCBpcyAnPGZvcm0+PGZvcm0+PC9mb3JtPjwvZm9ybT4nCitQ
QVNTIHRlbXBsYXRlV2l0aElzaW5kZXhJbnNpZGVGb3JtLmlubmVySFRNTCBpcyAnPGZvcm0+JyAr
IGNvbnRhaW5lcldpdGhJc2luZGV4LmlubmVySFRNTCArICc8L2Zvcm0+JworUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3Rz
L2Zhc3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQvbm8tZm9ybS1hc3NvY2lhdGlvbi0yLmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9u
by1mb3JtLWFzc29jaWF0aW9uLTIuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zh
c3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQvbm8tZm9ybS1hc3NvY2lhdGlvbi0yLmh0bWwJKHdv
cmtpbmcgY29weSkKQEAgLTAsMCArMSwyMyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxi
b2R5PgorPGRpdiBpZD0iY29udGFpbmVyV2l0aElzaW5kZXgiIHN0eWxlPSJkaXNwbGF5Om5vbmUi
Pjxpc2luZGV4PjwvZGl2PgorPGZvcm0+PHRlbXBsYXRlIGlkPSJ0ZW1wbGF0ZVdpdGhJc2luZGV4
Ij48aXNpbmRleD48L3RlbXBsYXRlPjwvZm9ybT4KKzxmb3JtPjx0ZW1wbGF0ZSBpZD0idGVtcGxh
dGVXaXRoRm9ybUluc2lkZUZvcm0iPjxmb3JtPjxpbnB1dD48L2Zvcm0+PC90ZW1wbGF0ZT48L2Zv
cm0+Cis8dGVtcGxhdGUgaWQ9InRlbXBsYXRlV2l0aE5lc3RlZEZvcm1zIj48Zm9ybT48Zm9ybT48
L2Zvcm0+PC9mb3JtPjwvdGVtcGxhdGU+Cis8dGVtcGxhdGUgaWQ9InRlbXBsYXRlV2l0aElzaW5k
ZXhJbnNpZGVGb3JtIj48Zm9ybT48aXNpbmRleD48L2Zvcm0+PC90ZW1wbGF0ZT4KKzxzY3JpcHQg
c3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlw
dD4KKworc2hvdWxkQmUoInRlbXBsYXRlV2l0aElzaW5kZXguaW5uZXJIVE1MIiwgImNvbnRhaW5l
cldpdGhJc2luZGV4LmlubmVySFRNTCIpOworc2hvdWxkQmUoInRlbXBsYXRlV2l0aEZvcm1JbnNp
ZGVGb3JtLmlubmVySFRNTCIsICInPGZvcm0+PGlucHV0PjwvZm9ybT4nIik7CitzaG91bGRCZSgi
Zm9ybUluc2lkZVRlbXBsYXRlID0gdGVtcGxhdGVXaXRoRm9ybUluc2lkZUZvcm0uY29udGVudC5m
aXJzdENoaWxkOyBmb3JtSW5zaWRlVGVtcGxhdGUubG9jYWxOYW1lIiwgIidmb3JtJyIpOworc2hv
dWxkQmUoImlucHV0SW5zaWRlVGVtcGxhdGUgPSB0ZW1wbGF0ZVdpdGhGb3JtSW5zaWRlRm9ybS5j
b250ZW50LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0Jyk7IGlucHV0SW5zaWRlVGVtcGxhdGUuZm9ybSIs
ICJmb3JtSW5zaWRlVGVtcGxhdGUiKTsKK3Nob3VsZEJlKCJmb3JtSW5zaWRlVGVtcGxhdGUuZWxl
bWVudHNbMF0iLCAiaW5wdXRJbnNpZGVUZW1wbGF0ZSIpOworc2hvdWxkQmUoInRlbXBsYXRlV2l0
aE5lc3RlZEZvcm1zLmlubmVySFRNTCIsICInPGZvcm0+PGZvcm0+PC9mb3JtPjwvZm9ybT4nIikK
K3Nob3VsZEJlKCJ0ZW1wbGF0ZVdpdGhJc2luZGV4SW5zaWRlRm9ybS5pbm5lckhUTUwiLCAiJzxm
b3JtPicgKyBjb250YWluZXJXaXRoSXNpbmRleC5pbm5lckhUTUwgKyAnPC9mb3JtPiciKQorCis8
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0Lmpz
Ij48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>
<flag name="review"
          id="241929"
          type_id="1"
          status="+"
          setter="koivisto"
    />
          </attachment>
      

    </bug>

</bugzilla>