<?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>48555</bug_id>
          
          <creation_ts>2010-10-28 13:23:03 -0700</creation_ts>
          <short_desc>ASSERT when SVGAnimatedProperty instance is assigned to multiple elements.</short_desc>
          <delta_ts>2010-10-29 13:33:42 -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>SVG</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</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="Justin Schuh">jschuh</reporter>
          <assigned_to name="Nikolas Zimmermann">zimmermann</assigned_to>
          <cc>krit</cc>
    
    <cc>mdelaney7</cc>
    
    <cc>zimmermann</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>301279</commentid>
    <comment_count>0</comment_count>
    <who name="Justin Schuh">jschuh</who>
    <bug_when>2010-10-28 13:23:03 -0700</bug_when>
    <thetext>Here&apos;s the repro:

&lt;script&gt;
  var oFEConvolveMatrix = document.createElementNS(&quot;http://www.w3.org/2000/svg&quot;, &quot;feConvolveMatrix&quot;);
  document.createElementNS(&quot;http://www.w3.org/2000/svg&quot;, &quot;altGlyph&quot;).x.baseVal.insertItemBefore(oFEConvolveMatrix.width.baseVal);
&lt;/script&gt;



Inside SVGListPropertyTearOff::insertItemBefore we fail to remove the supplied item from its owning element before assigning it to a new element. The result is that the proprty ends up shared by two elements at once. The following ASSERT in SVGAnimatedProperty::removeItemFromList gets triggered when the property should be removed from the original owner:

    virtual int removeItemFromList(SVGProperty*, bool)
    {
        ASSERT_NOT_REACHED();
        return -1;
    }

Originally reported here: http://code.google.com/p/chromium/issues/detail?id=61064</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>301598</commentid>
    <comment_count>1</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2010-10-28 23:31:08 -0700</bug_when>
    <thetext>Thanks for the report, very glad to have it!
Will look into this today, it&apos;s completly new code, and there may be a new bug..</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>301729</commentid>
    <comment_count>2</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2010-10-29 06:47:24 -0700</bug_when>
    <thetext>Heh, I didn&apos;t think about calling insertItemBefore on a SVGLengthList with a SVGLength parameter that is not in a list, but just associated with a SVGAnimatedLength object.
The fix is easy, my tree is just not clean yet:


        int removedIndex = animatedPropertyOfItem-&gt;removeItemFromList(newItem, livesInOtherList);
        ASSERT(removedIndex != -1);

Replace that assertion by

        // If the item is not present in a list, we don&apos;t need to remove it.
        if (removedIndex == -1)
            return;

And remove the ASSERT_NOT_REACHED() in SVGAnimatedProperty.h.
We could add a &quot;virtual bool isSVGAnimatedListProperty&quot; method to SVGAnimatedProperty, to stop &quot;abusing&quot; removedIndex = -1 as indicator for &quot;item is not member of a list&quot;. But I&apos;ll come to that in a later patch.

As soon as my tree is clean, I&apos;ll prepare a patch, or if you&apos;re faster just go ahead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>301750</commentid>
    <comment_count>3</comment_count>
      <attachid>72333</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2010-10-29 07:29:24 -0700</bug_when>
    <thetext>Created attachment 72333
Patch

Safe fix for the assertion, don&apos;t rely on the workaround I described before. Let&apos;s wait for EWS results from V8, as I can&apos;t test that at the moment (Snow Leopard laptop not with me).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>301759</commentid>
    <comment_count>4</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2010-10-29 08:00:24 -0700</bug_when>
    <thetext>EFL shows a build error:

In file included from /mnt/eflews/git/webkit/WebKitBuild/Release/DerivedSources/JSSVGLengthList.h:29,
                 from /mnt/eflews/git/webkit/WebKitBuild/Release/DerivedSources/JSSVGLengthList.cpp:25:
/mnt/eflews/git/webkit/WebCore/svg/properties/SVGListPropertyTearOff.h: In member function ‘void WebCore::SVGListPropertyTearOff&lt;PropertyType&gt;::removeItemFromListIfNeeded(WebCore::SVGPropertyTearOff&lt;typename WebCore::SVGPropertyTraits&lt;PropertyType&gt;::ListItemType&gt;*, unsigned int*) [with PropertyType = WebCore::SVGLengthList]’:
...

JSSVGLengthList.cpp:25 includes &quot;JSSVGLengthList.h&quot;
JSSVGLengthList.h:29 should include &quot;SVGLengthList.h&quot; and SVGAnimatedListPropertyTearOff.h should have been included already.

It builds fine here on my mac machine, I suspect it did not regenerate the bindings properly?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>301961</commentid>
    <comment_count>5</comment_count>
      <attachid>72333</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2010-10-29 12:26:27 -0700</bug_when>
    <thetext>Comment on attachment 72333
Patch

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

r=me

&gt; WebCore/svg/properties/SVGAnimatedProperty.h:46
&gt; +    virtual bool isAnimatedListTearOff() const { return false; }

Didn&apos;t we discussed about adding a boolean instead of the virtual removeItemFromList on the first patch that implemented it? ;-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>301995</commentid>
    <comment_count>6</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2010-10-29 13:18:27 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 72333 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=72333&amp;action=review
&gt; 
&gt; r=me
&gt; 
&gt; &gt; WebCore/svg/properties/SVGAnimatedProperty.h:46
&gt; &gt; +    virtual bool isAnimatedListTearOff() const { return false; }
&gt; 
&gt; Didn&apos;t we discussed about adding a boolean instead of the virtual removeItemFromList on the first patch that implemented it? ;-)

Yes, we did. I didn&apos;t want two virtual function calls, but forgot about the fact that I could just devirtualize removeItemFromList, and cast from SVGAnimatedPropertyTearOff to SVGAnimatedListPropertyTearOff, this way we still have just one virtual function call.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>302010</commentid>
    <comment_count>7</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2010-10-29 13:33:42 -0700</bug_when>
    <thetext>Landed in r70918.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>72333</attachid>
            <date>2010-10-29 07:29:24 -0700</date>
            <delta_ts>2010-10-29 12:26:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>AnimAssertion.diff</filename>
            <type>text/plain</type>
            <size>8988</size>
            <attacher name="Nikolas Zimmermann">zimmermann</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA3MDg3NCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjMgQEAKKzIwMTAtMTAtMjkgIE5pa29sYXMgWmltbWVybWFubiAgPG56aW1tZXJt
YW5uQHJpbS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQVNTRVJUIHdoZW4gU1ZHQW5pbWF0ZWRQcm9wZXJ0eSBpbnN0YW5jZSBpcyBhc3NpZ25l
ZCB0byBtdWx0aXBsZSBlbGVtZW50cy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTQ4NTU1CisKKyAgICAgICAgVGVzdDogc3ZnL2N1c3RvbS9pbnNlcnRJ
dGVtQmVmb3JlLWZyb20tbm9uLWxpc3Qtb3JpZ2luLnN2ZworCisgICAgICAgICogYmluZGluZ3Mv
c2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06IEluY2x1ZGUgU1ZHQW5pbWF0ZWRQcm9wZXJ0eVRl
YXJPZmYuaCBpbnN0ZWFkIG9mIFNWR1Byb3BlcnR5VGVhck9mZi5oCisgICAgICAgICogYmluZGlu
Z3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yT2JqQy5wbTogRGl0dG8uCisgICAgICAgICogYmluZGlu
Z3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG06IERpdHRvLgorICAgICAgICAqIHN2Zy9wcm9w
ZXJ0aWVzL1NWR0FuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZi5oOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmOjppc0FuaW1hdGVkTGlzdFRlYXJPZmYp
OiBSZXR1cm4gdHJ1ZS4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkTGlzdFByb3BlcnR5
VGVhck9mZjo6cmVtb3ZlSXRlbUZyb21MaXN0KTogRGV2aXJ0dWFsaXplIGZ1bmN0aW9uLgorICAg
ICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJvcGVydHkuaDoKKyAgICAgICAgKFdl
YkNvcmU6OlNWR0FuaW1hdGVkUHJvcGVydHk6OmlzQW5pbWF0ZWRMaXN0VGVhck9mZik6IFJldHVy
biBmYWxzZS4KKyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdMaXN0UHJvcGVydHlUZWFyT2Zm
Lmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdMaXN0UHJvcGVydHlUZWFyT2ZmOjpyZW1vdmVJdGVt
RnJvbUxpc3RJZk5lZWRlZCk6IE9ubHkgdHJ5IHRvIHJlbW92ZSB0aGUgcGFzc2VkIGl0ZW0gZnJv
bSBpdHMgbGlzdCwgaWYgaXRzIGFjdHVhbGx5IGEgbGlzdCBhbmQgbm90IGp1c3QgYSBTVkdBbmlt
YXRlZFByb3BlcnR5LgorCiAyMDEwLTEwLTI5ICBOaWtvbGFzIFppbW1lcm1hbm4gIDxuemltbWVy
bWFubkByaW0uY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERpcmsgU2NodWx6ZS4KSW5kZXg6
IFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQkocmV2aXNpb24g
NzA4NTgpCisrKyBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCSh3
b3JraW5nIGNvcHkpCkBAIC0yNTAzLDExICsyNTAzLDExIEBAIHN1YiBHZXRTVkdQcm9wZXJ0eVR5
cGVzCiAgICAgaWYgKCRzdmdOYXRpdmVUeXBlID1+IC9TVkdQcm9wZXJ0eVRlYXJPZmYvKSB7CiAg
ICAgICAgICRzdmdQcm9wZXJ0eVR5cGUgPSAkc3ZnV3JhcHBlZE5hdGl2ZVR5cGU7CiAgICAgICAg
ICRoZWFkZXJJbmNsdWRlc3siJHN2Z1dyYXBwZWROYXRpdmVUeXBlLmgifSA9IDE7Ci0gICAgICAg
ICRoZWFkZXJJbmNsdWRlc3siU1ZHUHJvcGVydHlUZWFyT2ZmLmgifSA9IDE7CisgICAgICAgICRo
ZWFkZXJJbmNsdWRlc3siU1ZHQW5pbWF0ZWRQcm9wZXJ0eVRlYXJPZmYuaCJ9ID0gMTsKICAgICB9
IGVsc2lmICgkc3ZnTmF0aXZlVHlwZSA9fiAvU1ZHTGlzdFByb3BlcnR5VGVhck9mZi8pIHsKICAg
ICAgICAgJHN2Z0xpc3RQcm9wZXJ0eVR5cGUgPSAkc3ZnV3JhcHBlZE5hdGl2ZVR5cGU7CiAgICAg
ICAgICRoZWFkZXJJbmNsdWRlc3siJHN2Z1dyYXBwZWROYXRpdmVUeXBlLmgifSA9IDE7Ci0gICAg
ICAgICRoZWFkZXJJbmNsdWRlc3siU1ZHTGlzdFByb3BlcnR5VGVhck9mZi5oIn0gPSAxOworICAg
ICAgICAkaGVhZGVySW5jbHVkZXN7IlNWR0FuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZi5oIn0g
PSAxOwogICAgIH0KIAogICAgIHJldHVybiAoJHN2Z1Byb3BlcnR5VHlwZSwgJHN2Z0xpc3RQcm9w
ZXJ0eVR5cGUsICRzdmdOYXRpdmVUeXBlKTsKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy9Db2RlR2VuZXJhdG9yT2JqQy5wbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvck9iakMucG0JKHJldmlzaW9uIDcwODcyKQorKysgV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JPYmpDLnBtCSh3b3JraW5nIGNvcHkpCkBAIC0x
MDEzLDkgKzEwMTMsOCBAQCBzdWIgR2VuZXJhdGVIZWFkZXIKICAgICAgICAgQGludGVybmFsSGVh
ZGVyQ29udGVudCA9IHNwbGl0KCJcciIsICRpbXBsZW1lbnRhdGlvbkxpY2Vuc2VUZW1wbGF0ZSk7
CiAKICAgICAgICAgcHVzaChAaW50ZXJuYWxIZWFkZXJDb250ZW50LCAiXG4jaW1wb3J0IDxXZWJD
b3JlLyRjbGFzc05hbWUuaD5cblxuIik7Ci0gICAgICAgIHB1c2goQGludGVybmFsSGVhZGVyQ29u
dGVudCwgIiNpbXBvcnQgPFdlYkNvcmUvU1ZHQW5pbWF0ZWRQcm9wZXJ0eS5oPlxuXG4iKSBpZiAk
c3ZnUHJvcGVydHlUeXBlIG9yICRzdmdMaXN0UHJvcGVydHlUeXBlOwotICAgICAgICBwdXNoKEBp
bnRlcm5hbEhlYWRlckNvbnRlbnQsICIjaW1wb3J0IDxXZWJDb3JlL1NWR1Byb3BlcnR5VGVhck9m
Zi5oPlxuXG4iKSBpZiAkc3ZnUHJvcGVydHlUeXBlOwotICAgICAgICBwdXNoKEBpbnRlcm5hbEhl
YWRlckNvbnRlbnQsICIjaW1wb3J0IDxXZWJDb3JlL1NWR0xpc3RQcm9wZXJ0eVRlYXJPZmYuaD5c
blxuIikgaWYgJHN2Z0xpc3RQcm9wZXJ0eVR5cGU7CisgICAgICAgIHB1c2goQGludGVybmFsSGVh
ZGVyQ29udGVudCwgIiNpbXBvcnQgPFdlYkNvcmUvU1ZHQW5pbWF0ZWRQcm9wZXJ0eVRlYXJPZmYu
aD5cblxuIikgaWYgJHN2Z1Byb3BlcnR5VHlwZTsKKyAgICAgICAgcHVzaChAaW50ZXJuYWxIZWFk
ZXJDb250ZW50LCAiI2ltcG9ydCA8V2ViQ29yZS9TVkdBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJP
ZmYuaD5cblxuIikgaWYgJHN2Z0xpc3RQcm9wZXJ0eVR5cGU7CiAgICAgICAgIHB1c2goQGludGVy
bmFsSGVhZGVyQ29udGVudCwgJGludGVyZmFjZUF2YWlsYWJpbGl0eVZlcnNpb25DaGVjaykgaWYg
bGVuZ3RoICRpbnRlcmZhY2VBdmFpbGFiaWxpdHlWZXJzaW9uOwogCiAgICAgICAgIGlmICgkaW50
ZXJmYWNlTmFtZSBlcSAiTm9kZSIpIHsKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9D
b2RlR2VuZXJhdG9yVjgucG0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L0NvZGVHZW5lcmF0b3JWOC5wbQkocmV2aXNpb24gNzA4NTgpCisrKyBXZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCSh3b3JraW5nIGNvcHkpCkBAIC0yMzEsMTAgKzIz
MSwxMCBAQCBzdWIgR2V0U1ZHUHJvcGVydHlUeXBlcwogICAgIG15ICRzdmdXcmFwcGVkTmF0aXZl
VHlwZSA9ICRjb2RlR2VuZXJhdG9yLT5HZXRTVkdXcmFwcGVkVHlwZU5lZWRpbmdUZWFyT2ZmKCRp
bXBsVHlwZSk7CiAgICAgaWYgKCRzdmdOYXRpdmVUeXBlID1+IC9TVkdQcm9wZXJ0eVRlYXJPZmYv
KSB7CiAgICAgICAgICRzdmdQcm9wZXJ0eVR5cGUgPSAkc3ZnV3JhcHBlZE5hdGl2ZVR5cGU7Ci0g
ICAgICAgICRpbXBsSW5jbHVkZXN7IlNWR1Byb3BlcnR5VGVhck9mZi5oIn0gPSAxLAorICAgICAg
ICAkaW1wbEluY2x1ZGVzeyJTVkdBbmltYXRlZFByb3BlcnR5VGVhck9mZi5oIn0gPSAxLAogICAg
IH0gZWxzaWYgKCRzdmdOYXRpdmVUeXBlID1+IC9TVkdMaXN0UHJvcGVydHlUZWFyT2ZmLykgewog
ICAgICAgICAkc3ZnTGlzdFByb3BlcnR5VHlwZSA9ICRzdmdXcmFwcGVkTmF0aXZlVHlwZTsKLSAg
ICAgICAgJGltcGxJbmNsdWRlc3siU1ZHTGlzdFByb3BlcnR5VGVhck9mZi5oIn0gPSAxLAorICAg
ICAgICAkaW1wbEluY2x1ZGVzeyJTVkdBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYuaCJ9ID0g
MSwKICAgICB9CiAKICAgICByZXR1cm4gKCRzdmdQcm9wZXJ0eVR5cGUsICRzdmdMaXN0UHJvcGVy
dHlUeXBlLCAkc3ZnTmF0aXZlVHlwZSk7CkluZGV4OiBXZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NW
R0FuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3Zn
L3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmLmgJKHJldmlzaW9uIDcw
ODU4KQorKysgV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZExpc3RQcm9wZXJ0eVRl
YXJPZmYuaAkod29ya2luZyBjb3B5KQpAQCAtNDYsNyArNDYsOSBAQCBwdWJsaWM6CiAgICAgICAg
IHJldHVybiBtX2FuaW1WYWwuZ2V0KCk7CiAgICAgfQogCi0gICAgdmlydHVhbCBpbnQgcmVtb3Zl
SXRlbUZyb21MaXN0KFNWR1Byb3BlcnR5KiBwcm9wZXJ0eSwgYm9vbCBzaG91bGRTeW5jaHJvbml6
ZVdyYXBwZXJzKQorICAgIHZpcnR1YWwgYm9vbCBpc0FuaW1hdGVkTGlzdFRlYXJPZmYoKSBjb25z
dCB7IHJldHVybiB0cnVlOyB9CisKKyAgICBpbnQgcmVtb3ZlSXRlbUZyb21MaXN0KFNWR1Byb3Bl
cnR5KiBwcm9wZXJ0eSwgYm9vbCBzaG91bGRTeW5jaHJvbml6ZVdyYXBwZXJzKQogICAgIHsKICAg
ICAgICAgLy8gRklYTUU6IE5vIGFuaW1WYWwgc3VwcG9ydC4KICAgICAgICAgaWYgKCFtX2Jhc2VW
YWwpCkluZGV4OiBXZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJvcGVydHkuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJvcGVydHku
aAkocmV2aXNpb24gNzA4NTgpCisrKyBXZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVk
UHJvcGVydHkuaAkod29ya2luZyBjb3B5KQpAQCAtNDMsMTEgKzQzLDcgQEAgcHVibGljOgogICAg
ICAgICBtX2NvbnRleHRFbGVtZW50LT5zdmdBdHRyaWJ1dGVDaGFuZ2VkKG1fYXR0cmlidXRlTmFt
ZSk7CiAgICAgfQogCi0gICAgdmlydHVhbCBpbnQgcmVtb3ZlSXRlbUZyb21MaXN0KFNWR1Byb3Bl
cnR5KiwgYm9vbCkKLSAgICB7Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAg
ICByZXR1cm4gLTE7Ci0gICAgfQorICAgIHZpcnR1YWwgYm9vbCBpc0FuaW1hdGVkTGlzdFRlYXJP
ZmYoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogCiAgICAgLy8gQ2FjaGluZyBmYWNpbGl0aWVz
LgogICAgIHR5cGVkZWYgSGFzaE1hcDxTVkdBbmltYXRlZFByb3BlcnR5RGVzY3JpcHRpb24sIFJl
ZlB0cjxTVkdBbmltYXRlZFByb3BlcnR5PiwgU1ZHQW5pbWF0ZWRQcm9wZXJ0eURlc2NyaXB0aW9u
SGFzaCwgU1ZHQW5pbWF0ZWRQcm9wZXJ0eURlc2NyaXB0aW9uSGFzaFRyYWl0cz4gQ2FjaGU7Cklu
ZGV4OiBXZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0xpc3RQcm9wZXJ0eVRlYXJPZmYuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0xpc3RQcm9wZXJ0eVRlYXJPZmYu
aAkocmV2aXNpb24gNzA4NTgpCisrKyBXZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0xpc3RQcm9w
ZXJ0eVRlYXJPZmYuaAkod29ya2luZyBjb3B5KQpAQCAtMzQwLDEyICszNDAsMTIgQEAgcHJpdmF0
ZToKICAgICB7CiAgICAgICAgIC8vIFNwZWM6IElmIG5ld0l0ZW0gaXMgYWxyZWFkeSBpbiBhIGxp
c3QsIGl0IGlzIHJlbW92ZWQgZnJvbSBpdHMgcHJldmlvdXMgbGlzdCBiZWZvcmUgaXQgaXMgaW5z
ZXJ0ZWQgaW50byB0aGlzIGxpc3QuCiAgICAgICAgIFNWR0FuaW1hdGVkUHJvcGVydHkqIGFuaW1h
dGVkUHJvcGVydHlPZkl0ZW0gPSBuZXdJdGVtLT5hbmltYXRlZFByb3BlcnR5KCk7Ci0gICAgICAg
IGlmICghYW5pbWF0ZWRQcm9wZXJ0eU9mSXRlbSkKKyAgICAgICAgaWYgKCFhbmltYXRlZFByb3Bl
cnR5T2ZJdGVtIHx8ICFhbmltYXRlZFByb3BlcnR5T2ZJdGVtLT5pc0FuaW1hdGVkTGlzdFRlYXJP
ZmYoKSkKICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICAvLyAnbmV3SXRlbScgaXMgYWxy
ZWFkeSBsaXZpbmcgaW4gYW5vdGhlciBsaXN0LiBJZiBpdCdzIG5vdCBvdXIgbGlzdCwgc3luY2hy
b25pemUgdGhlIG90aGVyIGxpc3RzIHdyYXBwZXJzIGFmdGVyIHRoZSByZW1vdmFsLgogICAgICAg
ICBib29sIGxpdmVzSW5PdGhlckxpc3QgPSBhbmltYXRlZFByb3BlcnR5T2ZJdGVtICE9IG1fYW5p
bWF0ZWRQcm9wZXJ0eTsKLSAgICAgICAgaW50IHJlbW92ZWRJbmRleCA9IGFuaW1hdGVkUHJvcGVy
dHlPZkl0ZW0tPnJlbW92ZUl0ZW1Gcm9tTGlzdChuZXdJdGVtLCBsaXZlc0luT3RoZXJMaXN0KTsK
KyAgICAgICAgaW50IHJlbW92ZWRJbmRleCA9IHN0YXRpY19jYXN0PFNWR0FuaW1hdGVkTGlzdFBy
b3BlcnR5VGVhck9mZjxQcm9wZXJ0eVR5cGU+Kj4oYW5pbWF0ZWRQcm9wZXJ0eU9mSXRlbSktPnJl
bW92ZUl0ZW1Gcm9tTGlzdChuZXdJdGVtLCBsaXZlc0luT3RoZXJMaXN0KTsKICAgICAgICAgQVNT
RVJUKHJlbW92ZWRJbmRleCAhPSAtMSk7CiAKICAgICAgICAgaWYgKCFpbmRleFRvTW9kaWZ5KQpJ
bmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0No
YW5nZUxvZwkocmV2aXNpb24gNzA4NzQpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtp
bmcgY29weSkKQEAgLTEsMyArMSwxMyBAQAorMjAxMC0xMC0yOSAgTmlrb2xhcyBaaW1tZXJtYW5u
ICA8bnppbW1lcm1hbm5AcmltLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBBU1NFUlQgd2hlbiBTVkdBbmltYXRlZFByb3BlcnR5IGluc3RhbmNl
IGlzIGFzc2lnbmVkIHRvIG11bHRpcGxlIGVsZW1lbnRzLgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDg1NTUKKworICAgICAgICAqIHN2Zy9jdXN0b20v
aW5zZXJ0SXRlbUJlZm9yZS1mcm9tLW5vbi1saXN0LW9yaWdpbi1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIHN2Zy9jdXN0b20vaW5zZXJ0SXRlbUJlZm9yZS1mcm9tLW5vbi1saXN0LW9y
aWdpbi5zdmc6IEFkZGVkLgorCiAyMDEwLTEwLTI5ICBNaWtoYWlsIE5hZ2Fub3YgIDxtbmFnYW5v
dkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW0Nocm9taXVtXSBVbnJldmlld2VkLCBkaXNhYmxl
IHRlc3RzLgpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9pbnNlcnRJdGVtQmVmb3JlLWZy
b20tbm9uLWxpc3Qtb3JpZ2luLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9zdmcvY3VzdG9tL2luc2VydEl0ZW1CZWZvcmUtZnJvbS1ub24tbGlzdC1vcmlnaW4tZXhwZWN0
ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9pbnNlcnRJdGVt
QmVmb3JlLWZyb20tbm9uLWxpc3Qtb3JpZ2luLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSBAQAorVGhpcyB0ZXN0IHBhc3NlZCwgaWYgaXQgZG9lc24ndCBjcmFzaCBpbiBhIGRl
YnVnIGJ1aWxkIChmaXJlcyBhc3NlcnRpb24pLgpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2N1c3Rv
bS9pbnNlcnRJdGVtQmVmb3JlLWZyb20tbm9uLWxpc3Qtb3JpZ2luLnN2Zwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9zdmcvY3VzdG9tL2luc2VydEl0ZW1CZWZvcmUtZnJvbS1ub24tbGlzdC1v
cmlnaW4uc3ZnCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9pbnNlcnRJ
dGVtQmVmb3JlLWZyb20tbm9uLWxpc3Qtb3JpZ2luLnN2ZwkocmV2aXNpb24gMCkKQEAgLTAsMCAr
MSwxMSBAQAorPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgorPHRleHQg
eD0iMTAiIHk9IjUwIj5UaGlzIHRlc3QgcGFzc2VkLCBpZiBpdCBkb2Vzbid0IGNyYXNoIGluIGEg
ZGVidWcgYnVpbGQgKGZpcmVzIGFzc2VydGlvbikuPC90ZXh0PgorPHNjcmlwdD4KK2lmICh3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1w
QXNUZXh0KCk7Cit9CisKK3ZhciBvRkVDb252b2x2ZU1hdHJpeCA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLCAiZmVDb252b2x2ZU1hdHJpeCIp
OworZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIs
ICJhbHRHbHlwaCIpLnguYmFzZVZhbC5pbnNlcnRJdGVtQmVmb3JlKG9GRUNvbnZvbHZlTWF0cml4
LndpZHRoLmJhc2VWYWwsIDApOworPC9zY3JpcHQ+Cis8L3N2Zz4K
</data>
<flag name="review"
          id="62565"
          type_id="1"
          status="+"
          setter="krit"
    />
          </attachment>
      

    </bug>

</bugzilla>