<?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>22357</bug_id>
          
          <creation_ts>2008-11-19 09:25:15 -0800</creation_ts>
          <short_desc>Crash when setting className via SVG className.baseVal</short_desc>
          <delta_ts>2010-07-07 05:44:02 -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>Mac (Intel)</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>P1</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>41761</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Dmitry Stadnik">dimzzy</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>eric</cc>
    
    <cc>rwlbuis</cc>
    
    <cc>zimmermann</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>99318</commentid>
    <comment_count>0</comment_count>
    <who name="Dmitry Stadnik">dimzzy</who>
    <bug_when>2008-11-19 09:25:15 -0800</bug_when>
    <thetext>I call e.className.baseVal = &quot;bum&quot; where e is SVG ellipse element and browser crashes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>99320</commentid>
    <comment_count>1</comment_count>
      <attachid>25276</attachid>
    <who name="Dmitry Stadnik">dimzzy</who>
    <bug_when>2008-11-19 09:26:06 -0800</bug_when>
    <thetext>Created attachment 25276
Test Page</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>99323</commentid>
    <comment_count>2</comment_count>
    <who name="Dmitry Stadnik">dimzzy</who>
    <bug_when>2008-11-19 09:35:55 -0800</bug_when>
    <thetext>May be related to https://bugs.webkit.org/show_bug.cgi?id=20651</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>99450</commentid>
    <comment_count>3</comment_count>
    <who name="Dmitry Stadnik">dimzzy</who>
    <bug_when>2008-11-20 03:22:35 -0800</bug_when>
    <thetext>Process:         Safari [3694]
Path:            /Applications/WebKit.app/Contents/MacOS/WebKit
Identifier:      org.webkit.nightly.WebKit
Version:         r38592 (38592)
Code Type:       X86 (Native)
Parent Process:  launchd [188]

Date/Time:       2008-11-19 18:28:01.882 +0100
OS Version:      Mac OS X 10.5.5 (9F33)
Report Version:  6

Exception Type:  EXC_BAD_ACCESS (SIGBUS)
Exception Codes: KERN_PROTECTION_FAILURE at 0x000000000000001c
Crashed Thread:  0

Thread 0 Crashed:
0   com.apple.WebCore             	0x00ddcd64 WebCore::CSSStyleSelector::matchRules(WebCore::CSSRuleSet*, int&amp;, int&amp;) + 100
1   com.apple.WebCore             	0x00ddd054 WebCore::CSSStyleSelector::matchUARules(int&amp;, int&amp;) + 84
2   com.apple.WebCore             	0x00df94f9 WebCore::CSSStyleSelector::styleForElement(WebCore::Element*, WebCore::RenderStyle*, bool, bool) + 345
3   com.apple.WebCore             	0x00f2b789 WebCore::Element::recalcStyle(WebCore::Node::StyleChange) + 313
4   com.apple.WebCore             	0x00f2b8e2 WebCore::Element::recalcStyle(WebCore::Node::StyleChange) + 658
5   com.apple.WebCore             	0x00f2b8e2 WebCore::Element::recalcStyle(WebCore::Node::StyleChange) + 658
6   com.apple.WebCore             	0x00f2b8e2 WebCore::Element::recalcStyle(WebCore::Node::StyleChange) + 658
7   com.apple.WebCore             	0x00f2b8e2 WebCore::Element::recalcStyle(WebCore::Node::StyleChange) + 658
8   com.apple.WebCore             	0x00f00892 WebCore::Document::recalcStyle(WebCore::Node::StyleChange) + 162
9   com.apple.WebCore             	0x00ef311f WebCore::Document::updateRendering() + 79
10  com.apple.WebCore             	0x00ef36c6 WebCore::Document::updateDocumentsRendering() + 86
11  com.apple.WebCore             	0x0135b661 WebCore::JSAbstractEventListener::handleEvent(WebCore::Event*, bool) + 1201
12  com.apple.WebCore             	0x00ef345d WebCore::Document::handleWindowEvent(WebCore::Event*, bool) + 173
13  com.apple.WebCore             	0x00f3b3a9 WebCore::EventTargetNode::dispatchWindowEvent(WTF::PassRefPtr&lt;WebCore::Event&gt;) + 121
14  com.apple.WebCore             	0x00f3d2a7 WebCore::EventTargetNode::dispatchWindowEvent(WebCore::AtomicString const&amp;, bool, bool) + 103
15  com.apple.WebCore             	0x00efccf8 WebCore::Document::implicitClose() + 312
16  com.apple.WebCore             	0x00f78da9 WebCore::FrameLoader::checkCompleted() + 169
17  com.apple.WebCore             	0x00f7a740 WebCore::FrameLoader::finishedParsing() + 64
18  com.apple.WebCore             	0x00ef62bd WebCore::Document::finishedParsing() + 173
19  com.apple.WebCore             	0x00f7c7d8 WebCore::FrameLoader::endIfNotLoadingMainResource() + 120
20  com.apple.WebCore             	0x00f70282 WebCore::FrameLoader::finishedLoading() + 50
21  com.apple.WebCore             	0x011921cc WebCore::MainResourceLoader::didFinishLoading() + 44
22  com.apple.Foundation          	0x93d61097 -[NSURLConnection(NSURLConnectionReallyInternal) sendDidFinishLoading] + 87
23  com.apple.Foundation          	0x93d61003 _NSURLConnectionDidFinishLoading + 147
24  com.apple.CFNetwork           	0x95f0f209 sendDidFinishLoadingCallback + 148
25  com.apple.CFNetwork           	0x95f0c180 _CFURLConnectionSendCallbacks + 1759
26  com.apple.CFNetwork           	0x95f0ba25 muxerSourcePerform + 283
27  com.apple.CoreFoundation      	0x91350615 CFRunLoopRunSpecific + 3141
28  com.apple.CoreFoundation      	0x91350cf8 CFRunLoopRunInMode + 88
29  com.apple.HIToolbox           	0x93841480 RunCurrentEventLoopInMode + 283
30  com.apple.HIToolbox           	0x93841299 ReceiveNextEventCommon + 374
31  com.apple.HIToolbox           	0x9384110d BlockUntilNextEventMatchingListInMode + 106
32  com.apple.AppKit              	0x9609a3ed _DPSNextEvent + 657
33  com.apple.AppKit              	0x96099ca0 -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 128
34  com.apple.Safari              	0x000080be 0x1000 + 28862
35  com.apple.AppKit              	0x96092cdb -[NSApplication run] + 795
36  com.apple.AppKit              	0x9605ff14 NSApplicationMain + 574
37  com.apple.Safari              	0x000b9b46 0x1000 + 756550</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>99460</commentid>
    <comment_count>4</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2008-11-20 05:42:36 -0800</bug_when>
    <thetext>Confirmed with r38590.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>102182</commentid>
    <comment_count>5</comment_count>
      <attachid>25932</attachid>
    <who name="Glenn Wilson">gwilson</who>
    <bug_when>2008-12-10 17:39:42 -0800</bug_when>
    <thetext>Created attachment 25932
Potential patch for issue 22357

Here is a potential patch for this issue.

So it seems like this problem would arise when a css class is applied to an element that has no mappedAttributes.

From what I can tell, the issue arises in a difference in assertions between line 640 of CSSStyleSelector and StyledElement::classNames().  Specifically, when looking for styles to apply, CSSStyleSelector::matchRules checks that this element has a class applied (hasClass) without checking that it has mapped attributes set.  Typically, this isn&apos;t a problem, because the class attribute is a mapped attribute itself!

But on line 642, when StyledElement::classNames() is called, the classNames() method asserts that this element not only has a class set, but also has mappedAttributes set.  This will fail (and crash) for elements that have the class attribute set but no mappedAttributes.  In this repro case, it&apos;s an svg ellipse created on the fly with Javascript.

So, to fix this, I added one additional check on line 640 that does not enter this block if mappedAttributes is not set.  In essence, this changes CSSStyleSelector::matchRules to check on the same values that StyledElement::classNames does.

(Since m_styledElement is ASSERT&apos;ed on the next line, it must be valid anyway, so the call is being done early.  If anything, this makes the ASSERT on 641 redundant.  Let me know if this should be removed.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>102188</commentid>
    <comment_count>6</comment_count>
      <attachid>25932</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2008-12-10 17:54:02 -0800</bug_when>
    <thetext>Comment on attachment 25932
Potential patch for issue 22357

The class attribute itself is supposed to be a mapped attribute. It&apos;s not OK that we can&apos;t get class names -- that means that CSS styles that are based on class won&apos;t work! If hasClass is true, but there&apos;s no mapped attributes pointer, then something strange is going on.

Looking at the test case it looks like the key here is that the class name is being set by SVG &quot;baseValue&quot; code. I think that means that the SVG code is not setting the attribute properly, and that&apos;s resulting in the object being in a strange state. It&apos;s that animation code incorrectly setting the attribute that needs to be fixed, not the CSS selector matching code.

If the change was correct and was needed in this function, then it would also be needed in CSSStyleSelector::SelectorChecker::checkOneSelector.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>102189</commentid>
    <comment_count>7</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2008-12-10 17:55:30 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; May be related to https://bugs.webkit.org/show_bug.cgi?id=20651

Definitely related.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>102254</commentid>
    <comment_count>8</comment_count>
    <who name="Glenn Wilson">gwilson</who>
    <bug_when>2008-12-11 11:27:41 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; (In reply to comment #2)
&gt; &gt; May be related to https://bugs.webkit.org/show_bug.cgi?id=20651
&gt; 
&gt; Definitely related.
&gt; 

There&apos;s one particular behavior in StyledElement::classAttributeChanged (which was once part of parseMappedAttribute) -- it sets that it has a class first (line 222), but doesn&apos;t actually set any mapped values if namedAttrMap doesn&apos;t already exist.

(Looking in SVGEllipseElement, setting cX, cY, etc. values on baseValue doesn&apos;t create this namedAttrMap, so that&apos;s probably why it doesn&apos;t exist.)

So, I think there are a few options here:
- Not set hasClass if namedAttrMap isn&apos;t set.  This doesn&apos;t seem like the right approach because we *should* be setting both.
- Create namedAttrMap if it doesn&apos;t already exist.  This could be done via createAttributeMap().  This seems like the right way, but I don&apos;t know all of the background of namedAttrMap to know.

What&apos;s the best way to do this?

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>102308</commentid>
    <comment_count>9</comment_count>
      <attachid>25970</attachid>
    <who name="Glenn Wilson">gwilson</who>
    <bug_when>2008-12-11 17:33:10 -0800</bug_when>
    <thetext>Created attachment 25970
Possible patch for issue 22357

From what I could find, StyledElement::classAttributeChanged method would set hasClass before checking for the existence of namedAttributeMap.  So it was possible to change the class attribute (via baseVal) without the namedAttributeMap ever getting created.  Later on, when CSSStyleSelector tries to figure out which styles to apply, it finds that StyledElement says it has a class set, but it has no mapped attributes!  Barf.

This patch modifies StyledElement::classAttributeChanged to create the namedAttributeMap if it doesn&apos;t exist, rather than just checking for its existence.  After all, if a StyledElement has its class attribute set, and the class is *always* a mapped attribute, shouldn&apos;t it be guaranteed that namedAttributeMap exists and is populated correctly?

I&apos;m not sure if this is the right class to do this, since I don&apos;t know the entire life cycle of namedAttributeMap.  Should SVG elements automatically create namedAttributeMap when they are created?  Is there a better place to add this behavior other than StyledElement?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>102595</commentid>
    <comment_count>10</comment_count>
      <attachid>25970</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2008-12-15 13:55:35 -0800</bug_when>
    <thetext>Comment on attachment 25970
Possible patch for issue 22357

The only question I have left is if namedAttrMap is ever supposed to be cleared?  Or is it such that once an element ever gets a single mapped attribute, it has a map for all time?  (I would assume the later, but I&apos;m not sure).

If namedAttrMap is ever supposed to clear, then we should only be creating in the &quot;set&quot; case, not the &quot;clear&quot; case.  Otherwise looks fine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>103205</commentid>
    <comment_count>11</comment_count>
      <attachid>26211</attachid>
    <who name="Glenn Wilson">gwilson</who>
    <bug_when>2008-12-22 12:14:29 -0800</bug_when>
    <thetext>Created attachment 26211
Possible patch to issue 22357

Ah, good catch.  The previous patch would create the namedAttrMap regardless, which doesn&apos;t seem correct.  It should only create the namedAttrMap if it doesn&apos;t exist and it&apos;s not being cleared.

This new patch only creates namedAttrMap if it exists and the class name is being set, not cleared.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>103210</commentid>
    <comment_count>12</comment_count>
      <attachid>26211</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2008-12-22 13:00:38 -0800</bug_when>
    <thetext>Comment on attachment 26211
Possible patch to issue 22357

=&gt; -    if (namedAttrMap) {
&gt; -        if (i &lt; length)
&gt; -            mappedAttributes()-&gt;setClass(newClassString);
&gt; -        else
&gt; -            mappedAttributes()-&gt;clearClass();
&gt; -    }
&gt; +    if (i &lt; length) {
&gt; +        if (!namedAttrMap)
&gt; +            createAttributeMap();
&gt; +        mappedAttributes()-&gt;setClass(newClassString);
&gt; +    } else
&gt; +        mappedAttributes()-&gt;clearClass();

It&apos;s not correct to create an attribute map here. The map is supposed to be created on demand in functions like Element::attributes, and a map should not be created just because the class attribute was set on an element.

I need more information about when we&apos;re going to need the attribute map later, and we should consider putting the call to create it at that site instead of here. Or maybe when it&apos;s created the class isn&apos;t set up correctly in it? I need more info about how the test case is failing to understand what the right fix is.

This patch also introduces a null-dereferencing crash: The clearClass could dereference 0 if namedAttrMap is 0.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>247041</commentid>
    <comment_count>13</comment_count>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2010-07-06 05:51:58 -0700</bug_when>
    <thetext>The crash seems gone, I think r62514 fixed it, can anyone confirm?
Cheers,

Rob.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>247506</commentid>
    <comment_count>14</comment_count>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2010-07-07 05:44:02 -0700</bug_when>
    <thetext>As confirmed by krit, this one is fixed.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>25276</attachid>
            <date>2008-11-19 09:26:06 -0800</date>
            <delta_ts>2008-11-19 09:26:06 -0800</delta_ts>
            <desc>Test Page</desc>
            <filename>index.xhtml</filename>
            <type>application/xhtml+xml</type>
            <size>887</size>
            <attacher name="Dmitry Stadnik">dimzzy</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIg
Imh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXN0cmljdC5kdGQiPgo8aHRt
bAoJeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiCgl4bWxuczpzdmc9Imh0dHA6
Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGhlYWQ+Cgk8c3R5bGUgdHlwZT0idGV4dC9jc3MiPjwh
W0NEQVRBWwogICAgICAuYnVtIHsKICAgICAgICBmaWxsOiByZWQ7CiAgICAgICAgc3Ryb2tlOiBi
bHVlOwogICAgICAgIHN0cm9rZS13aWR0aDogMwogICAgICB9CiAgICBdXT48L3N0eWxlPgogICAg
PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCXdpbmRvdy5vbmxvYWQgPSBmdW5jdGlv
bigpIHsKCQkJdmFyIHggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2FuIik7CgkJCXZhciBl
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIs
ICJlbGxpcHNlIik7CgkJCWUuY3guYmFzZVZhbC52YWx1ZSA9IDEwMDsKCQkJZS5jeS5iYXNlVmFs
LnZhbHVlID0gMTAwOwoJCQllLnJ4LmJhc2VWYWwudmFsdWUgPSA1MDsKCQkJZS5yeS5iYXNlVmFs
LnZhbHVlID0gNjA7CgkJCXguYXBwZW5kQ2hpbGQoZSk7CgkJCWUuY2xhc3NOYW1lLmJhc2VWYWwg
PSAiYnVtIjsgLy8gY2F1c2VzIGNyYXNoCgkJfTsKCTwvc2NyaXB0Pgo8L2hlYWQ+Cjxib2R5Pgo8
c3ZnOnN2ZwoJeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgoJdmVyc2lvbj0iMS4x
IiBiYXNlUHJvZmlsZT0iZnVsbCIgd2lkdGg9IjgwMCIgaGVpZ2h0PSI2MDAiPgoJPGcgaWQ9ImNh
biIvPgo8L3N2Zzpzdmc+CjwvYm9keT4KPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>25932</attachid>
            <date>2008-12-10 17:39:42 -0800</date>
            <delta_ts>2008-12-11 17:33:10 -0800</delta_ts>
            <desc>Potential patch for issue 22357</desc>
            <filename>patch22357-1.txt</filename>
            <type>text/plain</type>
            <size>4067</size>
            <attacher name="Glenn Wilson">gwilson</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAzOTE4NCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTggQEAKKzIwMDgtMTItMTAgIEdsZW5uIFdpbHNvbiAgPGd3aWxzb25AZ29vZ2xl
LmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBG
aXhlZCBidWcgd2hlcmUgY3JlYXRpbmcgYW4gc3ZnIGVsZW1lbnQsIG9yIGFueSBzdHlsZWQgCisg
ICAgICAgIGVsZW1lbnQgd2l0aG91dCBtYXBwZWRBdHRyaWJ1dGVzIG9uIHRoZSBmbHkgYW5kIGNo
YW5naW5nCisgICAgICAgIGl0cyBjbGFzcyB2aWEgamF2YXNjcmlwdCB3b3VsZCBjYXVzZSBhIGNy
YXNoLgorCisgICAgICAgIFNlZTogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIyMzU3CisJCisgICAgICAgIFRlc3Q6IGZhc3QvanMvY2hhbmdlX2NsYXNzbmFtZV9jcmFz
aC54aHRtbAorCisgICAgICAgICogY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTU3R5bGVTZWxlY3Rvcjo6bWF0Y2hSdWxlcyk6CisKIDIwMDgtMTItMTAgIFNp
bW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgUG90ZW50aWFs
IGJ1aWxkIGZpeC4gVGhlIGZvcndhcmQgZGVjbGFyYXRpb24gb2YgRmxvYXRQb2ludCBzaG91bGQK
SW5kZXg6IFdlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCShyZXZpc2lvbiAzOTE0NykKKysrIFdlYkNv
cmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02MzcsNyArNjM3
LDcgQEAgdm9pZCBDU1NTdHlsZVNlbGVjdG9yOjptYXRjaFJ1bGVzKENTU1J1bAogICAgIC8vIHRo
ZW4gc29ydCB0aGUgYnVmZmVyLgogICAgIGlmIChtX2VsZW1lbnQtPmhhc0lEKCkpCiAgICAgICAg
IG1hdGNoUnVsZXNGb3JMaXN0KHJ1bGVzLT5nZXRJRFJ1bGVzKG1fZWxlbWVudC0+Z2V0SURBdHRy
aWJ1dGUoKS5pbXBsKCkpLCBmaXJzdFJ1bGVJbmRleCwgbGFzdFJ1bGVJbmRleCk7Ci0gICAgaWYg
KG1fZWxlbWVudC0+aGFzQ2xhc3MoKSkgeworICAgIGlmIChtX2VsZW1lbnQtPmhhc0NsYXNzKCkg
JiYgbV9zdHlsZWRFbGVtZW50LT5tYXBwZWRBdHRyaWJ1dGVzKCkpIHsKICAgICAgICAgQVNTRVJU
KG1fc3R5bGVkRWxlbWVudCk7CiAgICAgICAgIGNvbnN0IENsYXNzTmFtZXMmIGNsYXNzTmFtZXMg
PSBtX3N0eWxlZEVsZW1lbnQtPmNsYXNzTmFtZXMoKTsKICAgICAgICAgc2l6ZV90IHNpemUgPSBj
bGFzc05hbWVzLnNpemUoKTsKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDM5MTg0KQorKysgTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTYgQEAKKzIwMDgtMTItMTAg
IEdsZW5uIFdpbHNvbiAgPGd3aWxzb25AZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCBuZXcgbGF5b3V0IHRlc3RzIHRvIHZl
cmlmeSB0aGF0IGFkZGluZyBhbgorICAgICAgICBzdmcgZWxlbWVudCBvbiB0aGUgZmx5IGFuZCBj
aGFuZ2luZyBpdHMgY2xhc3Mgd2lsbCBub3QKKyAgICAgICAgY3Jhc2ggdGhlIGJyb3dzZXIuCisK
KyAgICAgICAgU2VlOiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIz
NTcKKworICAgICAgICAqIGZhc3QvanMvY2hhbmdlX2NsYXNzbmFtZV9jcmFzaC1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvanMvY2hhbmdlX2NsYXNzbmFtZV9jcmFzaC54aHRt
bDogQWRkZWQuCisKIDIwMDgtMTItMTAgIEdlb2ZmcmV5IEdhcmVuICA8Z2dhcmVuQGFwcGxlLmNv
bT4KIAogICAgICAgICBSZXZpZXdlZCBieSBTYW0gOiggV2VpbmlnLgpJbmRleDogTGF5b3V0VGVz
dHMvZmFzdC9qcy9jaGFuZ2VfY2xhc3NuYW1lX2NyYXNoLWV4cGVjdGVkLnR4dAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2pzL2NoYW5nZV9jbGFzc25hbWVfY3Jhc2gtZXhwZWN0ZWQu
dHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9qcy9jaGFuZ2VfY2xhc3NuYW1l
X2NyYXNoLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSBAQAorVGhpcyB0ZXN0
IHZlcmlmaWVzIHRoYXQgYWRkaW5nIGFuIHN2ZyBlbGVtZW50IG9uIHRoZSBmbHkgYW5kIGNoYW5n
aW5nIGl0cyBjc3MgY2xhc3Mgd2lsbCBub3QgY3Jhc2ggdGhlIGJyb3dzZXIuIFRoaXMgdGVzdCBz
aG91bGQgbm90IGNyYXNoLiAKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvanMvY2hhbmdlX2NsYXNz
bmFtZV9jcmFzaC54aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2pzL2NoYW5n
ZV9jbGFzc25hbWVfY3Jhc2gueGh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0
L2pzL2NoYW5nZV9jbGFzc25hbWVfY3Jhc2gueGh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEs
NDAgQEAKKzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmlj
dC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS1zdHJpY3QuZHRk
Ij4KKzxodG1sCit4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIKK3htbG5zOnN2
Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgorPGhlYWQ+Cis8c2NyaXB0PgorICBpZiAo
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1
bXBBc1RleHQoKTsKKzwvc2NyaXB0PgorPHN0eWxlIHR5cGU9InRleHQvY3NzIj48IVtDREFUQVsK
KyAgICAgIC5idW0geworICAgICAgICBmaWxsOiByZWQ7CisgICAgICAgIHN0cm9rZTogYmx1ZTsK
KyAgICAgICAgc3Ryb2tlLXdpZHRoOiAzCisgICAgICB9CisgICAgXV0+PC9zdHlsZT4KKyAgICA8
c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisgICAgd2luZG93Lm9ubG9hZCA9IGZ1bmN0
aW9uKCkgeworICAgIHZhciB4ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNhbiIpOworICAg
IHZhciBlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy8yMDAw
L3N2ZyIsICJlbGxpcHNlIik7CisgICAgZS5jeC5iYXNlVmFsLnZhbHVlID0gMTAwOworICAgIGUu
Y3kuYmFzZVZhbC52YWx1ZSA9IDEwMDsKKyAgICBlLnJ4LmJhc2VWYWwudmFsdWUgPSA1MDsKKyAg
ICBlLnJ5LmJhc2VWYWwudmFsdWUgPSA2MDsKKyAgICB4LmFwcGVuZENoaWxkKGUpOworICAgIGUu
Y2xhc3NOYW1lLmJhc2VWYWwgPSAiYnVtIjsKKyAgICB9OworICAgIDwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHk+CitUaGlzIHRlc3QgdmVyaWZpZXMgdGhhdCBhZGRpbmcgYW4gc3ZnIGVsZW1lbnQg
b24gdGhlIGZseSBhbmQgY2hhbmdpbmcgaXRzIGNzcyBjbGFzcyB3aWxsIG5vdCBjcmFzaCB0aGUg
YnJvd3Nlci4KKworVGhpcyB0ZXN0IHNob3VsZCBub3QgY3Jhc2guCis8c3ZnOnN2ZworeG1sbnM9
Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgordmVyc2lvbj0iMS4xIiBiYXNlUHJvZmlsZT0i
ZnVsbCIgd2lkdGg9IjgwMCIgaGVpZ2h0PSI2MDAiPgorPGcgaWQ9ImNhbiIvPgorPC9zdmc6c3Zn
PgorPC9ib2R5PgorPC9odG1sPgo=
</data>
<flag name="review"
          id="12180"
          type_id="1"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>25970</attachid>
            <date>2008-12-11 17:33:10 -0800</date>
            <delta_ts>2008-12-22 12:14:29 -0800</delta_ts>
            <desc>Possible patch for issue 22357</desc>
            <filename>patch22357-2.txt</filename>
            <type>text/plain</type>
            <size>4059</size>
            <attacher name="Glenn Wilson">gwilson</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAzOTIyMykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTggQEAKKzIwMDgtMTItMTEgIEdsZW5uIFdpbHNvbiAgPGd3aWxzb25AZ29vZ2xl
LmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBU
aGlzIGZpeGVzIGEgY3Jhc2ggdGhhdCBpcyBjYXVzZWQgd2hlbiBhIGNzcyBjbGFzcyBpcyBhcHBs
aWVkCisgICAgICAgIHRvIGEgbmV3bHktY3JlYXRlZCBTdHlsZWRFbGVtZW50IHRoYXQgZG9lc24n
dCBoYXZlIGEKKyAgICAgICAgbmFtZWRBdHRyaWJ1dGVNYXAgc2V0LgorCisgICAgICAgIFNlZTog
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMzU3CisKKyAgICAgICAg
VGVzdDogZmFzdC9qcy9jaGFuZ2VfY2xhc3NuYW1lX2NyYXNoLnhodG1sCisKKyAgICAgICAgKiBk
b20vU3R5bGVkRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZWRFbGVtZW50Ojpj
bGFzc0F0dHJpYnV0ZUNoYW5nZWQpOgorCiAyMDA4LTEyLTExICBIb2xnZXIgSGFucyBQZXRlciBG
cmV5dGhlciAgPHplY2tlQHNlbGZpc2gub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmlu
IEFkbGVyLgpJbmRleDogV2ViQ29yZS9kb20vU3R5bGVkRWxlbWVudC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9kb20vU3R5bGVkRWxlbWVudC5jcHAJKHJldmlzaW9uIDM5MjE3KQorKysgV2Vi
Q29yZS9kb20vU3R5bGVkRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIyMCwxMiArMjIw
LDEyIEBAIHZvaWQgU3R5bGVkRWxlbWVudDo6Y2xhc3NBdHRyaWJ1dGVDaGFuZ2UKICAgICAgICAg
ICAgIGJyZWFrOwogICAgIH0KICAgICBzZXRIYXNDbGFzcyhpIDwgbGVuZ3RoKTsKLSAgICBpZiAo
bmFtZWRBdHRyTWFwKSB7Ci0gICAgICAgIGlmIChpIDwgbGVuZ3RoKQotICAgICAgICAgICAgbWFw
cGVkQXR0cmlidXRlcygpLT5zZXRDbGFzcyhuZXdDbGFzc1N0cmluZyk7Ci0gICAgICAgIGVsc2UK
LSAgICAgICAgICAgIG1hcHBlZEF0dHJpYnV0ZXMoKS0+Y2xlYXJDbGFzcygpOwotICAgIH0KKyAg
ICBpZiAoIW5hbWVkQXR0ck1hcCkKKyAgICAgICAgY3JlYXRlQXR0cmlidXRlTWFwKCk7CisgICAg
aWYgKGkgPCBsZW5ndGgpCisgICAgICAgIG1hcHBlZEF0dHJpYnV0ZXMoKS0+c2V0Q2xhc3MobmV3
Q2xhc3NTdHJpbmcpOworICAgIGVsc2UKKyAgICAgICAgbWFwcGVkQXR0cmlidXRlcygpLT5jbGVh
ckNsYXNzKCk7CiAgICAgc2V0Q2hhbmdlZCgpOwogICAgIGRpc3BhdGNoU3VidHJlZU1vZGlmaWVk
RXZlbnQoKTsKIH0KSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDM5MjIzKQorKysgTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTYgQEAKKzIwMDgtMTItMTEgIEdsZW5u
IFdpbHNvbiAgPGd3aWxzb25AZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCBuZXcgbGF5b3V0IHRlc3RzIHRvIHZlcmlmeSB0
aGF0IGFkZGluZyBhbgorICAgICAgICBzdmcgZWxlbWVudCBvbiB0aGUgZmx5IGFuZCBjaGFuZ2lu
ZyBpdHMgY2xhc3Mgd2lsbCBub3QKKyAgICAgICAgY3Jhc2ggdGhlIGJyb3dzZXIuCisKKyAgICAg
ICAgU2VlOiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIzNTcKKwor
ICAgICAgICAqIGZhc3QvanMvY2hhbmdlX2NsYXNzbmFtZV9jcmFzaC1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGZhc3QvanMvY2hhbmdlX2NsYXNzbmFtZV9jcmFzaC54aHRtbDogQWRk
ZWQuCisKIDIwMDgtMTItMTAgIE9saXZlciBIdW50ICA8b2xpdmVyQGFwcGxlLmNvbT4KIAogICAg
ICAgICBSZXZpZXdlZCBieSBBZGVsZSBQZXRlcnNvbi4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qv
anMvY2hhbmdlX2NsYXNzbmFtZV9jcmFzaC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvZmFzdC9qcy9jaGFuZ2VfY2xhc3NuYW1lX2NyYXNoLWV4cGVjdGVkLnR4dAkocmV2
aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvanMvY2hhbmdlX2NsYXNzbmFtZV9jcmFzaC1l
eHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEgQEAKK1RoaXMgdGVzdCB2ZXJpZmll
cyB0aGF0IGFkZGluZyBhbiBzdmcgZWxlbWVudCBvbiB0aGUgZmx5IGFuZCBjaGFuZ2luZyBpdHMg
Y3NzIGNsYXNzIHdpbGwgbm90IGNyYXNoIHRoZSBicm93c2VyLiBUaGlzIHRlc3Qgc2hvdWxkIG5v
dCBjcmFzaC4gCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2pzL2NoYW5nZV9jbGFzc25hbWVfY3Jh
c2gueGh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9qcy9jaGFuZ2VfY2xhc3Nu
YW1lX2NyYXNoLnhodG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9qcy9jaGFu
Z2VfY2xhc3NuYW1lX2NyYXNoLnhodG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQwIEBACis8
IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIiAi
aHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtc3RyaWN0LmR0ZCI+Cis8aHRt
bAoreG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiCit4bWxuczpzdmc9Imh0dHA6
Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KKzxoZWFkPgorPHNjcmlwdD4KKyAgaWYgKHdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0
KCk7Cis8L3NjcmlwdD4KKzxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+PCFbQ0RBVEFbCisgICAgICAu
YnVtIHsKKyAgICAgICAgZmlsbDogcmVkOworICAgICAgICBzdHJva2U6IGJsdWU7CisgICAgICAg
IHN0cm9rZS13aWR0aDogMworICAgICAgfQorICAgIF1dPjwvc3R5bGU+CisgICAgPHNjcmlwdCB0
eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorICAgIHdpbmRvdy5vbmxvYWQgPSBmdW5jdGlvbigpIHsK
KyAgICB2YXIgeCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjYW4iKTsKKyAgICB2YXIgZSA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLCAi
ZWxsaXBzZSIpOworICAgIGUuY3guYmFzZVZhbC52YWx1ZSA9IDEwMDsKKyAgICBlLmN5LmJhc2VW
YWwudmFsdWUgPSAxMDA7CisgICAgZS5yeC5iYXNlVmFsLnZhbHVlID0gNTA7CisgICAgZS5yeS5i
YXNlVmFsLnZhbHVlID0gNjA7CisgICAgeC5hcHBlbmRDaGlsZChlKTsKKyAgICBlLmNsYXNzTmFt
ZS5iYXNlVmFsID0gImJ1bSI7CisgICAgfTsKKyAgICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
PgorVGhpcyB0ZXN0IHZlcmlmaWVzIHRoYXQgYWRkaW5nIGFuIHN2ZyBlbGVtZW50IG9uIHRoZSBm
bHkgYW5kIGNoYW5naW5nIGl0cyBjc3MgY2xhc3Mgd2lsbCBub3QgY3Jhc2ggdGhlIGJyb3dzZXIu
CisKK1RoaXMgdGVzdCBzaG91bGQgbm90IGNyYXNoLgorPHN2ZzpzdmcKK3htbG5zPSJodHRwOi8v
d3d3LnczLm9yZy8yMDAwL3N2ZyIKK3ZlcnNpb249IjEuMSIgYmFzZVByb2ZpbGU9ImZ1bGwiIHdp
ZHRoPSI4MDAiIGhlaWdodD0iNjAwIj4KKzxnIGlkPSJjYW4iLz4KKzwvc3ZnOnN2Zz4KKzwvYm9k
eT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>26211</attachid>
            <date>2008-12-22 12:14:29 -0800</date>
            <delta_ts>2010-06-10 19:15:43 -0700</delta_ts>
            <desc>Possible patch to issue 22357</desc>
            <filename>patch22357-3.txt</filename>
            <type>text/plain</type>
            <size>4062</size>
            <attacher name="Glenn Wilson">gwilson</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAzOTQzNykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTggQEAKKzIwMDgtMTItMjIgIEdsZW5uIFdpbHNvbiAgPGd3aWxzb25AZ29vZ2xl
LmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBU
aGlzIGZpeGVzIGEgY3Jhc2ggdGhhdCBpcyBjYXVzZWQgd2hlbiBhIGNzcyBjbGFzcyBpcyBhcHBs
aWVkCisgICAgICAgIHRvIGEgbmV3bHktY3JlYXRlZCBTdHlsZWRFbGVtZW50IHRoYXQgZG9lc24n
dCBoYXZlIGEKKyAgICAgICAgbmFtZWRBdHRyaWJ1dGVNYXAgc2V0LgorCisgICAgICAgIFNlZTog
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMzU3CisKKyAgICAgICAg
VGVzdDogZmFzdC9qcy9jaGFuZ2VfY2xhc3NuYW1lX2NyYXNoLnhodG1sCisKKyAgICAgICAgKiBk
b20vU3R5bGVkRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZWRFbGVtZW50Ojpj
bGFzc0F0dHJpYnV0ZUNoYW5nZWQpOgorCiAyMDA4LTEyLTIyICBBbGV4ZXkgUHJvc2t1cnlha292
ICA8YXBAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KSW5k
ZXg6IFdlYkNvcmUvZG9tL1N0eWxlZEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
ZG9tL1N0eWxlZEVsZW1lbnQuY3BwCShyZXZpc2lvbiAzOTIxNykKKysrIFdlYkNvcmUvZG9tL1N0
eWxlZEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMjAsMTIgKzIyMCwxMiBAQCB2b2lk
IFN0eWxlZEVsZW1lbnQ6OmNsYXNzQXR0cmlidXRlQ2hhbmdlCiAgICAgICAgICAgICBicmVhazsK
ICAgICB9CiAgICAgc2V0SGFzQ2xhc3MoaSA8IGxlbmd0aCk7Ci0gICAgaWYgKG5hbWVkQXR0ck1h
cCkgewotICAgICAgICBpZiAoaSA8IGxlbmd0aCkKLSAgICAgICAgICAgIG1hcHBlZEF0dHJpYnV0
ZXMoKS0+c2V0Q2xhc3MobmV3Q2xhc3NTdHJpbmcpOwotICAgICAgICBlbHNlCi0gICAgICAgICAg
ICBtYXBwZWRBdHRyaWJ1dGVzKCktPmNsZWFyQ2xhc3MoKTsKLSAgICB9CisgICAgaWYgKGkgPCBs
ZW5ndGgpIHsKKyAgICAgICAgaWYgKCFuYW1lZEF0dHJNYXApCisgICAgICAgICAgICBjcmVhdGVB
dHRyaWJ1dGVNYXAoKTsKKyAgICAgICAgbWFwcGVkQXR0cmlidXRlcygpLT5zZXRDbGFzcyhuZXdD
bGFzc1N0cmluZyk7CisgICAgfSBlbHNlCisgICAgICAgIG1hcHBlZEF0dHJpYnV0ZXMoKS0+Y2xl
YXJDbGFzcygpOwogICAgIHNldENoYW5nZWQoKTsKICAgICBkaXNwYXRjaFN1YnRyZWVNb2RpZmll
ZEV2ZW50KCk7CiB9CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAzOTQzNykKKysrIExheW91dFRlc3RzL0No
YW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBACisyMDA4LTEyLTIyICBHbGVu
biBXaWxzb24gIDxnd2lsc29uQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgbmV3IGxheW91dCB0ZXN0cyB0byB2ZXJpZnkg
dGhhdCBhZGRpbmcgYW4KKyAgICAgICAgc3ZnIGVsZW1lbnQgb24gdGhlIGZseSBhbmQgY2hhbmdp
bmcgaXRzIGNsYXNzIHdpbGwgbm90CisgICAgICAgIGNyYXNoIHRoZSBicm93c2VyLgorCisgICAg
ICAgIFNlZTogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMzU3CisK
KyAgICAgICAgKiBmYXN0L2pzL2NoYW5nZV9jbGFzc25hbWVfY3Jhc2gtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBmYXN0L2pzL2NoYW5nZV9jbGFzc25hbWVfY3Jhc2gueGh0bWw6IEFk
ZGVkLgorCiAyMDA4LTEyLTIyICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAd2Via2l0Lm9yZz4K
IAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KSW5kZXg6IExheW91dFRlc3RzL2Zh
c3QvanMvY2hhbmdlX2NsYXNzbmFtZV9jcmFzaC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvZmFzdC9qcy9jaGFuZ2VfY2xhc3NuYW1lX2NyYXNoLWV4cGVjdGVkLnR4dAko
cmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvanMvY2hhbmdlX2NsYXNzbmFtZV9jcmFz
aC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEgQEAKK1RoaXMgdGVzdCB2ZXJp
ZmllcyB0aGF0IGFkZGluZyBhbiBzdmcgZWxlbWVudCBvbiB0aGUgZmx5IGFuZCBjaGFuZ2luZyBp
dHMgY3NzIGNsYXNzIHdpbGwgbm90IGNyYXNoIHRoZSBicm93c2VyLiBUaGlzIHRlc3Qgc2hvdWxk
IG5vdCBjcmFzaC4gCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2pzL2NoYW5nZV9jbGFzc25hbWVf
Y3Jhc2gueGh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9qcy9jaGFuZ2VfY2xh
c3NuYW1lX2NyYXNoLnhodG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9qcy9j
aGFuZ2VfY2xhc3NuYW1lX2NyYXNoLnhodG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQwIEBA
Cis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VO
IiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtc3RyaWN0LmR0ZCI+Cis8
aHRtbAoreG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiCit4bWxuczpzdmc9Imh0
dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KKzxoZWFkPgorPHNjcmlwdD4KKyAgaWYgKHdpbmRv
dy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNU
ZXh0KCk7Cis8L3NjcmlwdD4KKzxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+PCFbQ0RBVEFbCisgICAg
ICAuYnVtIHsKKyAgICAgICAgZmlsbDogcmVkOworICAgICAgICBzdHJva2U6IGJsdWU7CisgICAg
ICAgIHN0cm9rZS13aWR0aDogMworICAgICAgfQorICAgIF1dPjwvc3R5bGU+CisgICAgPHNjcmlw
dCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorICAgIHdpbmRvdy5vbmxvYWQgPSBmdW5jdGlvbigp
IHsKKyAgICB2YXIgeCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjYW4iKTsKKyAgICB2YXIg
ZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmci
LCAiZWxsaXBzZSIpOworICAgIGUuY3guYmFzZVZhbC52YWx1ZSA9IDEwMDsKKyAgICBlLmN5LmJh
c2VWYWwudmFsdWUgPSAxMDA7CisgICAgZS5yeC5iYXNlVmFsLnZhbHVlID0gNTA7CisgICAgZS5y
eS5iYXNlVmFsLnZhbHVlID0gNjA7CisgICAgeC5hcHBlbmRDaGlsZChlKTsKKyAgICBlLmNsYXNz
TmFtZS5iYXNlVmFsID0gImJ1bSI7CisgICAgfTsKKyAgICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxi
b2R5PgorVGhpcyB0ZXN0IHZlcmlmaWVzIHRoYXQgYWRkaW5nIGFuIHN2ZyBlbGVtZW50IG9uIHRo
ZSBmbHkgYW5kIGNoYW5naW5nIGl0cyBjc3MgY2xhc3Mgd2lsbCBub3QgY3Jhc2ggdGhlIGJyb3dz
ZXIuCisKK1RoaXMgdGVzdCBzaG91bGQgbm90IGNyYXNoLgorPHN2ZzpzdmcKK3htbG5zPSJodHRw
Oi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKK3ZlcnNpb249IjEuMSIgYmFzZVByb2ZpbGU9ImZ1bGwi
IHdpZHRoPSI4MDAiIGhlaWdodD0iNjAwIj4KKzxnIGlkPSJjYW4iLz4KKzwvc3ZnOnN2Zz4KKzwv
Ym9keT4KKzwvaHRtbD4K
</data>
<flag name="review"
          id="12381"
          type_id="1"
          status="-"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>