<?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>34915</bug_id>
          
          <creation_ts>2010-02-12 18:06:20 -0800</creation_ts>
          <short_desc>Chromium: Need to be able to get the bounds of selection rectangle(s)</short_desc>
          <delta_ts>2010-02-23 02:54:00 -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>WebKit Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</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>P3</priority>
          <bug_severity>Enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Dmitriy Belenko">dbelenko</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>dbelenko</cc>
    
    <cc>dglazkov</cc>
    
    <cc>dimich</cc>
    
    <cc>fishd</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>190223</commentid>
    <comment_count>0</comment_count>
    <who name="Dmitriy Belenko">dbelenko</who>
    <bug_when>2010-02-12 18:06:20 -0800</bug_when>
    <thetext>This change is necessary to fix Chromium bug 28646 (which in turn will fix 23481 and 23481	). The gist of that bug is that a red rectangle needs to be drawn around the selection, including the case where selection is transformed.
The change will be in WebKit/chromium and is Chromium-specific. I already have a fix (diff is attached).

The bug is caused by not having a way to retrieve the bounding rectangle coordinates for the selection rectangle(s). WebKit tests do this by calling an Objective-C selector dynamically and retrieving the corresponding rect. In order to accomplish the same in C++ a trivial helper method is introduced in the interface.

I am creating this bug to have a vehicle to get the patch in.

The corresponding Chromium bug can be found here: http://code.google.com/p/chromium/issues/detail?id=28646&amp;q=dbelenko&amp;colspec=ID%20Stars%20Pri%20Area%20Type%20Status%20Summary%20Modified%20Owner%20Mstone%20OS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>190224</commentid>
    <comment_count>1</comment_count>
      <attachid>48686</attachid>
    <who name="Dmitriy Belenko">dbelenko</who>
    <bug_when>2010-02-12 18:08:04 -0800</bug_when>
    <thetext>Created attachment 48686
Patch that fixes the issue.

Proposed patch. I will follow up with the proper submission for review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>190236</commentid>
    <comment_count>2</comment_count>
      <attachid>48691</attachid>
    <who name="Dmitriy Belenko">dbelenko</who>
    <bug_when>2010-02-12 19:20:37 -0800</bug_when>
    <thetext>Created attachment 48691
This patch includes the changelog and stylistic changes as per style guide. It obsoletes the previously attached patch.

Attaching a patch which includes the changelog and stylistic changes as per style guide. It obsoletes the previously attached patch.

This patch adds a selectionBoundsRect method. This method returns false if there is no selection. In case there is a selection, it sets the coordinates of the rectangle passed into it by reference to the absolute bounds enclosing all selections. I have verified that the boundary is identical to the one shown in Apple&apos;s &quot;expected&quot; images.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>190237</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-02-12 19:23:55 -0800</bug_when>
    <thetext>Attachment 48691 did not pass style-queue:

Failed to run &quot;WebKitTools/Scripts/check-webkit-style&quot; exit_code: 1
WebKit/chromium/ChangeLog:13:  Line contains tab character.  [whitespace/tab] [5]
Total errors found: 1


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>190260</commentid>
    <comment_count>4</comment_count>
      <attachid>48700</attachid>
    <who name="Dmitriy Belenko">dbelenko</who>
    <bug_when>2010-02-13 00:32:21 -0800</bug_when>
    <thetext>Created attachment 48700
Fixed the spurious tab chars in Changelog

Fixed the spurious tab chars in Changelog</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>190751</commentid>
    <comment_count>5</comment_count>
    <who name="Dmitriy Belenko">dbelenko</who>
    <bug_when>2010-02-16 14:18:03 -0800</bug_when>
    <thetext>See http://code.google.com/p/chromium/issues/detail?id=28646&amp;q=lttf&amp;colspec=ID%20Stars%20Pri%20Area%20Type%20Status%20Summary%20Modified%20Owner%20Mstone%20OS

This is the corresponding Chromium bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>190778</commentid>
    <comment_count>6</comment_count>
      <attachid>48700</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-02-16 15:02:52 -0800</bug_when>
    <thetext>Comment on attachment 48700
Fixed the spurious tab chars in Changelog


&gt; +        Reviewed by NOBODY (OOPS!).
&gt; +
&gt; +        This change will enable 30 layout pixel tests to pass. The change
&gt; +        simply exposes a helper function to return a bounding rectangle for the
&gt; +        current (possibly transformed) selection rectangles. The displayed
&gt; +        rectangle is not transformed, but it does adjust itself to completely
&gt; +        enclose the transformed selection. In WebKit Apple makes this test work
&gt; +        by using dynamic dispatch in Objective C, but here I had to introduce a
&gt; +        method.
&gt; +
&gt; +        This change does not require new test cases.
&gt; +
&gt; +        Chromium: Need to be able to get the bounds of selection rectangle(s)
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=34915

^^^ please move these two lines to the top, just below the Reviewed by line.  That
way tools that just show a snippet of the ChangeLog will show those lines.


&gt; +++ b/WebKit/chromium/public/WebFrame.h
&gt; @@ -478,6 +478,12 @@ public:
&gt;      // Returns a text representation of the render tree.  This method is used
&gt;      // to support layout tests.
&gt;      virtual WebString renderTreeAsText() const = 0;
&gt; +  
&gt; +    // Returns bool true if there is a selection and false if there&apos;s none.
&gt; +    // In case there is a selection, sets the rect to the &quot;straight&quot; bounding 
&gt; +    // rect of the (possibly transformed) selection rect.
&gt; +    // This method is used to support layout tests.
&gt; +    virtual bool selectionBoundsRect(WebRect&amp;) const = 0;

This should just return WebRect.  If the WebRect is empty, then it can mean
that there was no selection.


&gt; +bool WebFrameImpl::selectionBoundsRect(WebRect&amp; boundsRect) const 
&gt; +{
&gt; +    if (hasSelection()) {
&gt; +        FloatRect r = frame()-&gt;selectionBounds(false);
&gt; +        boundsRect.x = r.x();
&gt; +        boundsRect.y = r.y();
&gt; +        boundsRect.width = r.width();
&gt; +        boundsRect.height = r.height();

Is the loss of precision from float to int okay?

-Darin</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>191652</commentid>
    <comment_count>7</comment_count>
      <attachid>49029</attachid>
    <who name="Dmitriy Belenko">dbelenko</who>
    <bug_when>2010-02-18 10:37:13 -0800</bug_when>
    <thetext>Created attachment 49029
Changed patch to address reviewer feedback.

Code now simply returns a WebRect, and uses rounding (as opposed to truncation) to convert coordinates to integer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>191994</commentid>
    <comment_count>8</comment_count>
      <attachid>49029</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-02-19 11:27:31 -0800</bug_when>
    <thetext>Comment on attachment 49029
Changed patch to address reviewer feedback.

&gt; diff --git a/WebKit/chromium/ChangeLog b/WebKit/chromium/ChangeLog
&gt; index 4e8a629..0d90fd0 100644
&gt; --- a/WebKit/chromium/ChangeLog
&gt; +++ b/WebKit/chromium/ChangeLog
&gt; @@ -1,3 +1,20 @@
&gt; +2010-02-18  Dmitriy Belenko  &lt;dbelenko@google.com&gt;
&gt; +
&gt; +        Reviewed by NOBODY (OOPS!).
&gt; +
&gt; +        This change will enable about 30 test cases to pass in Chromium.
&gt; +        All of these test cases are related to selection rect boundaries.
&gt; +        The three issues that this will solve can be found here:
&gt; +
&gt; +        http://code.google.com/p/chromium/issues/detail?id=28646
&gt; +        http://code.google.com/p/chromium/issues/detail?id=23481
&gt; +        http://code.google.com/p/chromium/issues/detail?id=23482

I&apos;m sorry to nit-pick, but you should really just reference the WebKit
bug number in the WebKit ChangeLog.  (The bug can have references to these
Chromium bug reports.)


&gt; +++ b/WebKit/chromium/public/WebFrame.h
&gt; @@ -492,6 +492,11 @@ public:
&gt;                                           float pageWidthInPixels,
&gt;                                           float pageHeightInPixels) const = 0;
&gt;  
&gt; +    // Returns the bounds rect for current selection. If selection is performed
&gt; +    // on transformed text, the rect will still bound the selection, but will
&gt; +    // not be transformed itself. If no selection is present the rect will be
&gt; +    // empty ((0,0), (0,0))
&gt; +    virtual WebRect selectionBoundsRect() const = 0;
&gt;  protected:

nit: please preserve the new line above the &quot;protected:&quot; line.


&gt; +++ b/WebKit/chromium/src/WebFrameImpl.cpp
...
&gt; +WebRect WebFrameImpl::selectionBoundsRect() const
&gt; +{
&gt; +    if (hasSelection()) {
&gt; +        FloatRect fr = frame()-&gt;selectionBounds(false);
&gt; +        return WebRect(roundf(fr.x()), roundf(fr.y()),
&gt; +                       roundf(fr.width()), roundf(fr.height()));

Are you sure we want to round like this?  IntRect(const FloatRect&amp;) just rounds
down.


&gt; +    }
&gt; +
&gt; +    return WebRect(0, 0, 0, 0);

nit:  Just do &quot;return WebRect();&quot; since the default constructor does the same thing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>192081</commentid>
    <comment_count>9</comment_count>
      <attachid>49107</attachid>
    <who name="Dmitriy Belenko">dbelenko</who>
    <bug_when>2010-02-19 15:23:40 -0800</bug_when>
    <thetext>Created attachment 49107
Incorporated review feedback.

Third time&apos;s a charm?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>192089</commentid>
    <comment_count>10</comment_count>
      <attachid>49107</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-02-19 16:10:17 -0800</bug_when>
    <thetext>Comment on attachment 49107
Incorporated review feedback.

&gt; +++ b/WebKit/chromium/src/WebFrameImpl.cpp
&gt; @@ -1534,6 +1534,16 @@ int WebFrameImpl::pageNumberForElementById(const WebString&amp; id,
&gt;      return PrintContext::pageNumberForElement(element, pageSize);
&gt;  }
&gt;  
&gt; +WebRect WebFrameImpl::selectionBoundsRect() const
&gt; +{
&gt; +    if (hasSelection()) {
&gt; +        FloatRect fr = frame()-&gt;selectionBounds(false);
&gt; +        return WebRect(fr.x(), fr.y(), fr.width(), fr.height());

if (hasSelection())
    return WebRect(frame()-&gt;selectionBounds(false));

^^^ that should also compile, right?  the FloatRect gets implicitly converted
to IntRect, which matches a WebRect constructor.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>192130</commentid>
    <comment_count>11</comment_count>
      <attachid>49116</attachid>
    <who name="Dmitriy Belenko">dbelenko</who>
    <bug_when>2010-02-19 18:25:06 -0800</bug_when>
    <thetext>Created attachment 49116
Made things more concise</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>192360</commentid>
    <comment_count>12</comment_count>
      <attachid>49185</attachid>
    <who name="Dmitriy Belenko">dbelenko</who>
    <bug_when>2010-02-21 23:34:48 -0800</bug_when>
    <thetext>Created attachment 49185
Using implicit conversion per Darin&apos;s request.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>192723</commentid>
    <comment_count>13</comment_count>
      <attachid>49185</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2010-02-22 17:31:40 -0800</bug_when>
    <thetext>Comment on attachment 49185
Using implicit conversion per Darin&apos;s request.

Some trivial nits to fix and then I&apos;d be willing to r+, cq+ (based on this plus past reviews).

&gt; diff --git a/WebKit/chromium/ChangeLog b/WebKit/chromium/ChangeLog
&gt; @@ -1,3 +1,21 @@
&gt; +2010-02-21  Dmitriy Belenko  &lt;dbelenko@google.com&gt;
&gt; +
&gt; +        Reviewed by NOBODY (OOPS!).
&gt; +
Typically one does: 

Bug title
Bug link

Description.

Like this:
&gt; +        Chromium: Need to be able to get the bounds of selection rectangle(s) 
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=34915
&gt; +
&gt; +        This change will enable about 30 test cases to pass in Chromium.
&gt; +        All of these test cases are related to selection rect boundaries.
&gt; +        This change will enable the test cases to retrieve the selection
&gt; +        rect boundary rectangle for the current selection.
&gt; +
&gt; +
&gt; +        * public/WebFrame.h:
&gt; +        * src/WebFrameImpl.cpp:
&gt; +        (WebKit::WebFrameImpl::selectionBoundsRect):
&gt; +        * src/WebFrameImpl.h:
&gt; +

&gt; diff --git a/WebKit/chromium/public/WebFrame.h b/WebKit/chromium/public/WebFrame.h
&gt; +    // Returns the bounds rect for current selection. If selection is performed
&gt; +    // on transformed text, the rect will still bound the selection, but will

no comma before the but (since the phrase after but isn&apos;t a complete sentence.


&gt; +    // not be transformed itself. If no selection is present the rect will be

Add a comma after present.

&gt; +    // empty ((0,0), (0,0))

Add a period to the end of the sentence.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>192780</commentid>
    <comment_count>14</comment_count>
      <attachid>49264</attachid>
    <who name="Dmitriy Belenko">dbelenko</who>
    <bug_when>2010-02-22 21:27:02 -0800</bug_when>
    <thetext>Created attachment 49264
Fixed punctuation issues per David&apos;s feedback.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>192855</commentid>
    <comment_count>15</comment_count>
      <attachid>49264</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-02-23 02:53:54 -0800</bug_when>
    <thetext>Comment on attachment 49264
Fixed punctuation issues per David&apos;s feedback.

Clearing flags on attachment: 49264

Committed r55137: &lt;http://trac.webkit.org/changeset/55137&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>192856</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-02-23 02:54:00 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>48686</attachid>
            <date>2010-02-12 18:08:04 -0800</date>
            <delta_ts>2010-02-12 19:20:37 -0800</delta_ts>
            <desc>Patch that fixes the issue.</desc>
            <filename>diff2.diff</filename>
            <type>text/plain</type>
            <size>2237</size>
            <attacher name="Dmitriy Belenko">dbelenko</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViRnJhbWUuaCBiL1dlYktpdC9j
aHJvbWl1bS9wdWJsaWMvV2ViRnJhbWUuaAppbmRleCBhNTZlNmNiLi45ZjgzZGUyIDEwMDY0NAot
LS0gYS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkZyYW1lLmgKKysrIGIvV2ViS2l0L2Nocm9t
aXVtL3B1YmxpYy9XZWJGcmFtZS5oCkBAIC00NzgsNiArNDc4LDEyIEBAIHB1YmxpYzoKICAgICAv
LyBSZXR1cm5zIGEgdGV4dCByZXByZXNlbnRhdGlvbiBvZiB0aGUgcmVuZGVyIHRyZWUuICBUaGlz
IG1ldGhvZCBpcyB1c2VkCiAgICAgLy8gdG8gc3VwcG9ydCBsYXlvdXQgdGVzdHMuCiAgICAgdmly
dHVhbCBXZWJTdHJpbmcgcmVuZGVyVHJlZUFzVGV4dCgpIGNvbnN0ID0gMDsKKyAgCisgICAgLy8g
UmV0dXJucyBib29sIHRydWUgaWYgdGhlcmUgaXMgYSBzZWxlY3Rpb24gYW5kIGZhbHNlIGlmIHRo
ZXJlJ3Mgbm9uZS4KKyAgICAvLyBJbiBjYXNlIHRoZXJlIGlzIGEgc2VsZWN0aW9uLCBzZXRzIHRo
ZSByZWN0IHRvIHRoZSAic3RyYWlnaHQiIGJvdW5kaW5nIAorICAgIC8vIHJlY3Qgb2YgdGhlIChw
b3NzaWJseSB0cmFuc2Zvcm1lZCkgc2VsZWN0aW9uIHJlY3QuCisgICAgLy8gVGhpcyBtZXRob2Qg
aXMgdXNlZCB0byBzdXBwb3J0IGxheW91dCB0ZXN0cy4KKyAgICB2aXJ0dWFsIGJvb2wgc2VsZWN0
aW9uQm91bmRzUmVjdChXZWJSZWN0JiByZWN0KSBjb25zdCA9IDA7CiAKICAgICAvLyBSZXR1cm5z
IHRoZSBjb3VudGVyIHZhbHVlIGZvciB0aGUgc3BlY2lmaWVkIGVsZW1lbnQuICBUaGlzIG1ldGhv
ZCBpcwogICAgIC8vIHVzZWQgdG8gc3VwcG9ydCBsYXlvdXQgdGVzdHMuCmRpZmYgLS1naXQgYS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5jcHAgYi9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYkZyYW1lSW1wbC5jcHAKaW5kZXggMmY5MTFmMS4uZjQ0OTQyMyAxMDA2NDQKLS0tIGEvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuY3BwCisrKyBiL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViRnJhbWVJbXBsLmNwcApAQCAtMTUzMiw2ICsxNTMyLDE5IEBAIGludCBXZWJGcmFtZUlt
cGw6OnBhZ2VOdW1iZXJGb3JFbGVtZW50QnlJZChjb25zdCBXZWJTdHJpbmcmIGlkLAogICAgIEZs
b2F0U2l6ZSBwYWdlU2l6ZShwYWdlV2lkdGhJblBpeGVscywgcGFnZUhlaWdodEluUGl4ZWxzKTsK
ICAgICByZXR1cm4gUHJpbnRDb250ZXh0OjpwYWdlTnVtYmVyRm9yRWxlbWVudChlbGVtZW50LCBw
YWdlU2l6ZSk7CiB9CisJCitib29sIFdlYkZyYW1lSW1wbDo6c2VsZWN0aW9uQm91bmRzUmVjdChX
ZWJSZWN0JiByZWN0KSBjb25zdCB7CisgIGlmKGhhc1NlbGVjdGlvbigpKSB7CisgICAgRmxvYXRS
ZWN0IHIgPSBmcmFtZSgpLT5zZWxlY3Rpb25Cb3VuZHMoZmFsc2UpOworICAgIHJlY3QueCA9IHIu
eCgpOworICAgIHJlY3QueSA9IHIueSgpOworICAgIHJlY3Qud2lkdGggPSByLndpZHRoKCk7Cisg
ICAgcmVjdC5oZWlnaHQgPSByLmhlaWdodCgpOworICAgIHJldHVybiB0cnVlOworICB9IGVsc2Ug
eworICAgIHJldHVybiBmYWxzZTsKKyAgfQorfQogCiAvLyBXZWJGcmFtZUltcGwgcHVibGljIC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQog
CmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5oIGIvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuaAppbmRleCBjY2JhNmQ0Li40MjJkMDU1IDEwMDY0
NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5oCisrKyBiL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmgKQEAgLTE2Nyw2ICsxNjcsNyBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCBpbnQgcGFnZU51bWJlckZvckVsZW1lbnRCeUlkKGNvbnN0IFdlYlN0cmluZyYg
aWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsb2F0IHBhZ2VX
aWR0aEluUGl4ZWxzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBm
bG9hdCBwYWdlSGVpZ2h0SW5QaXhlbHMpIGNvbnN0OworICAgIHZpcnR1YWwgYm9vbCBzZWxlY3Rp
b25Cb3VuZHNSZWN0KFdlYlJlY3QmIHJlY3QpIGNvbnN0OwogCiAgICAgc3RhdGljIFBhc3NSZWZQ
dHI8V2ViRnJhbWVJbXBsPiBjcmVhdGUoV2ViRnJhbWVDbGllbnQqIGNsaWVudCk7CiAgICAgfldl
YkZyYW1lSW1wbCgpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>48691</attachid>
            <date>2010-02-12 19:20:37 -0800</date>
            <delta_ts>2010-02-13 00:32:21 -0800</delta_ts>
            <desc>This patch includes the changelog and stylistic changes as per style guide. It obsoletes the previously attached patch.</desc>
            <filename>diff2.diff</filename>
            <type>text/plain</type>
            <size>3481</size>
            <attacher name="Dmitriy Belenko">dbelenko</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCmluZGV4IGUwMmYyMTYuLjQxYjE1NjMgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDI1IEBACisyMDEwLTAyLTEyICBEbWl0cml5IEJlbGVua28gIDxkYmVsZW5rb0Bnb29nbGUuY29t
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMg
Y2hhbmdlIHdpbGwgZW5hYmxlIDMwIGxheW91dCBwaXhlbCB0ZXN0cyB0byBwYXNzLiBUaGUgY2hh
bmdlCisgICAgICAgIHNpbXBseSBleHBvc2VzIGEgaGVscGVyIGZ1bmN0aW9uIHRvIHJldHVybiBh
IGJvdW5kaW5nIHJlY3RhbmdsZSBmb3IgdGhlCisgICAgICAgIGN1cnJlbnQgKHBvc3NpYmx5IHRy
YW5zZm9ybWVkKSBzZWxlY3Rpb24gcmVjdGFuZ2xlcy4gVGhlIGRpc3BsYXllZAorICAgICAgICBy
ZWN0YW5nbGUgaXMgbm90IHRyYW5zZm9ybWVkLCBidXQgaXQgZG9lcyBhZGp1c3QgaXRzZWxmIHRv
IGNvbXBsZXRlbHkKKyAgICAgICAgZW5jbG9zZSB0aGUgdHJhbnNmb3JtZWQgc2VsZWN0aW9uLiBJ
biBXZWJLaXQgQXBwbGUgbWFrZXMgdGhpcyB0ZXN0IHdvcmsKKyAgICAgICAgYnkgdXNpbmcgZHlu
YW1pYyBkaXNwYXRjaCBpbiBPYmplY3RpdmUgQywgYnV0IGhlcmUgSSBoYWQgdG8gaW50cm9kdWNl
IGEKKyAgICAgICAgbWV0aG9kLgorCisJCVRoaXMgY2hhbmdlIGRvZXMgbm90IHJlcXVpcmUgbmV3
IHRlc3QgY2FzZXMuCisKKyAgICAgICAgQ2hyb21pdW06IE5lZWQgdG8gYmUgYWJsZSB0byBnZXQg
dGhlIGJvdW5kcyBvZiBzZWxlY3Rpb24gcmVjdGFuZ2xlKHMpCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNDkxNQorCisgICAgICAgICogcHVibGljL1dl
YkZyYW1lLmg6CisgICAgICAgICogc3JjL1dlYkZyYW1lSW1wbC5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYkZyYW1lSW1wbDo6c2VsZWN0aW9uQm91bmRzUmVjdCk6CisgICAgICAgICogc3JjL1dl
YkZyYW1lSW1wbC5oOgorCiAyMDEwLTAyLTExICBNaWtoYWlsIE5hZ2Fub3YgIDxtbmFnYW5vdkBj
aHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgUGF2ZWwgRmVsZG1hbi4KZGlmZiAt
LWdpdCBhL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViRnJhbWUuaCBiL1dlYktpdC9jaHJvbWl1
bS9wdWJsaWMvV2ViRnJhbWUuaAppbmRleCBhNTZlNmNiLi5kMWFiOWQwIDEwMDY0NAotLS0gYS9X
ZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkZyYW1lLmgKKysrIGIvV2ViS2l0L2Nocm9taXVtL3B1
YmxpYy9XZWJGcmFtZS5oCkBAIC00NzgsNiArNDc4LDEyIEBAIHB1YmxpYzoKICAgICAvLyBSZXR1
cm5zIGEgdGV4dCByZXByZXNlbnRhdGlvbiBvZiB0aGUgcmVuZGVyIHRyZWUuICBUaGlzIG1ldGhv
ZCBpcyB1c2VkCiAgICAgLy8gdG8gc3VwcG9ydCBsYXlvdXQgdGVzdHMuCiAgICAgdmlydHVhbCBX
ZWJTdHJpbmcgcmVuZGVyVHJlZUFzVGV4dCgpIGNvbnN0ID0gMDsKKyAgCisgICAgLy8gUmV0dXJu
cyBib29sIHRydWUgaWYgdGhlcmUgaXMgYSBzZWxlY3Rpb24gYW5kIGZhbHNlIGlmIHRoZXJlJ3Mg
bm9uZS4KKyAgICAvLyBJbiBjYXNlIHRoZXJlIGlzIGEgc2VsZWN0aW9uLCBzZXRzIHRoZSByZWN0
IHRvIHRoZSAic3RyYWlnaHQiIGJvdW5kaW5nIAorICAgIC8vIHJlY3Qgb2YgdGhlIChwb3NzaWJs
eSB0cmFuc2Zvcm1lZCkgc2VsZWN0aW9uIHJlY3QuCisgICAgLy8gVGhpcyBtZXRob2QgaXMgdXNl
ZCB0byBzdXBwb3J0IGxheW91dCB0ZXN0cy4KKyAgICB2aXJ0dWFsIGJvb2wgc2VsZWN0aW9uQm91
bmRzUmVjdChXZWJSZWN0JikgY29uc3QgPSAwOwogCiAgICAgLy8gUmV0dXJucyB0aGUgY291bnRl
ciB2YWx1ZSBmb3IgdGhlIHNwZWNpZmllZCBlbGVtZW50LiAgVGhpcyBtZXRob2QgaXMKICAgICAv
LyB1c2VkIHRvIHN1cHBvcnQgbGF5b3V0IHRlc3RzLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJGcmFtZUltcGwuY3BwIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUlt
cGwuY3BwCmluZGV4IDJmOTExZjEuLjNjN2RlYWYgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViRnJhbWVJbXBsLmNwcAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1l
SW1wbC5jcHAKQEAgLTE1MzMsNiArMTUzMywyMCBAQCBpbnQgV2ViRnJhbWVJbXBsOjpwYWdlTnVt
YmVyRm9yRWxlbWVudEJ5SWQoY29uc3QgV2ViU3RyaW5nJiBpZCwKICAgICByZXR1cm4gUHJpbnRD
b250ZXh0OjpwYWdlTnVtYmVyRm9yRWxlbWVudChlbGVtZW50LCBwYWdlU2l6ZSk7CiB9CiAKK2Jv
b2wgV2ViRnJhbWVJbXBsOjpzZWxlY3Rpb25Cb3VuZHNSZWN0KFdlYlJlY3QmIGJvdW5kc1JlY3Qp
IGNvbnN0IAoreworICAgIGlmIChoYXNTZWxlY3Rpb24oKSkgeworICAgICAgICBGbG9hdFJlY3Qg
ciA9IGZyYW1lKCktPnNlbGVjdGlvbkJvdW5kcyhmYWxzZSk7CisgICAgICAgIGJvdW5kc1JlY3Qu
eCA9IHIueCgpOworICAgICAgICBib3VuZHNSZWN0LnkgPSByLnkoKTsKKyAgICAgICAgYm91bmRz
UmVjdC53aWR0aCA9IHIud2lkdGgoKTsKKyAgICAgICAgYm91bmRzUmVjdC5oZWlnaHQgPSByLmhl
aWdodCgpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9ICAKKyAgICAKKyAgICByZXR1cm4g
ZmFsc2U7Cit9CisKIC8vIFdlYkZyYW1lSW1wbCBwdWJsaWMgLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKIFBhc3NSZWZQdHI8V2ViRnJh
bWVJbXBsPiBXZWJGcmFtZUltcGw6OmNyZWF0ZShXZWJGcmFtZUNsaWVudCogY2xpZW50KQpkaWZm
IC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuaCBiL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViRnJhbWVJbXBsLmgKaW5kZXggY2NiYTZkNC4uZDYzMzk1MyAxMDA2NDQKLS0t
IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuaAorKysgYi9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYkZyYW1lSW1wbC5oCkBAIC0xNjcsNiArMTY3LDcgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgaW50IHBhZ2VOdW1iZXJGb3JFbGVtZW50QnlJZChjb25zdCBXZWJTdHJpbmcmIGlkLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbG9hdCBwYWdlV2lkdGhJ
blBpeGVscywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxvYXQg
cGFnZUhlaWdodEluUGl4ZWxzKSBjb25zdDsKKyAgICB2aXJ0dWFsIGJvb2wgc2VsZWN0aW9uQm91
bmRzUmVjdChXZWJSZWN0JikgY29uc3Q7CiAKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJGcmFt
ZUltcGw+IGNyZWF0ZShXZWJGcmFtZUNsaWVudCogY2xpZW50KTsKICAgICB+V2ViRnJhbWVJbXBs
KCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>48700</attachid>
            <date>2010-02-13 00:32:21 -0800</date>
            <delta_ts>2010-02-18 10:37:13 -0800</delta_ts>
            <desc>Fixed the spurious tab chars in Changelog</desc>
            <filename>diff2.diff</filename>
            <type>text/plain</type>
            <size>3487</size>
            <attacher name="Dmitriy Belenko">dbelenko</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCmluZGV4IGUwMmYyMTYuLjQxYjE1NjMgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDI1IEBACisyMDEwLTAyLTEyICBEbWl0cml5IEJlbGVua28gIDxkYmVsZW5rb0Bnb29nbGUuY29t
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMg
Y2hhbmdlIHdpbGwgZW5hYmxlIDMwIGxheW91dCBwaXhlbCB0ZXN0cyB0byBwYXNzLiBUaGUgY2hh
bmdlCisgICAgICAgIHNpbXBseSBleHBvc2VzIGEgaGVscGVyIGZ1bmN0aW9uIHRvIHJldHVybiBh
IGJvdW5kaW5nIHJlY3RhbmdsZSBmb3IgdGhlCisgICAgICAgIGN1cnJlbnQgKHBvc3NpYmx5IHRy
YW5zZm9ybWVkKSBzZWxlY3Rpb24gcmVjdGFuZ2xlcy4gVGhlIGRpc3BsYXllZAorICAgICAgICBy
ZWN0YW5nbGUgaXMgbm90IHRyYW5zZm9ybWVkLCBidXQgaXQgZG9lcyBhZGp1c3QgaXRzZWxmIHRv
IGNvbXBsZXRlbHkKKyAgICAgICAgZW5jbG9zZSB0aGUgdHJhbnNmb3JtZWQgc2VsZWN0aW9uLiBJ
biBXZWJLaXQgQXBwbGUgbWFrZXMgdGhpcyB0ZXN0IHdvcmsKKyAgICAgICAgYnkgdXNpbmcgZHlu
YW1pYyBkaXNwYXRjaCBpbiBPYmplY3RpdmUgQywgYnV0IGhlcmUgSSBoYWQgdG8gaW50cm9kdWNl
IGEKKyAgICAgICAgbWV0aG9kLgorCisgICAgICAgIFRoaXMgY2hhbmdlIGRvZXMgbm90IHJlcXVp
cmUgbmV3IHRlc3QgY2FzZXMuCisKKyAgICAgICAgQ2hyb21pdW06IE5lZWQgdG8gYmUgYWJsZSB0
byBnZXQgdGhlIGJvdW5kcyBvZiBzZWxlY3Rpb24gcmVjdGFuZ2xlKHMpCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNDkxNQorCisgICAgICAgICogcHVi
bGljL1dlYkZyYW1lLmg6CisgICAgICAgICogc3JjL1dlYkZyYW1lSW1wbC5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYkZyYW1lSW1wbDo6c2VsZWN0aW9uQm91bmRzUmVjdCk6CisgICAgICAgICog
c3JjL1dlYkZyYW1lSW1wbC5oOgorCiAyMDEwLTAyLTExICBNaWtoYWlsIE5hZ2Fub3YgIDxtbmFn
YW5vdkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgUGF2ZWwgRmVsZG1hbi4K
ZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViRnJhbWUuaCBiL1dlYktpdC9j
aHJvbWl1bS9wdWJsaWMvV2ViRnJhbWUuaAppbmRleCBhNTZlNmNiLi5kMWFiOWQwIDEwMDY0NAot
LS0gYS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkZyYW1lLmgKKysrIGIvV2ViS2l0L2Nocm9t
aXVtL3B1YmxpYy9XZWJGcmFtZS5oCkBAIC00NzgsNiArNDc4LDEyIEBAIHB1YmxpYzoKICAgICAv
LyBSZXR1cm5zIGEgdGV4dCByZXByZXNlbnRhdGlvbiBvZiB0aGUgcmVuZGVyIHRyZWUuICBUaGlz
IG1ldGhvZCBpcyB1c2VkCiAgICAgLy8gdG8gc3VwcG9ydCBsYXlvdXQgdGVzdHMuCiAgICAgdmly
dHVhbCBXZWJTdHJpbmcgcmVuZGVyVHJlZUFzVGV4dCgpIGNvbnN0ID0gMDsKKyAgCisgICAgLy8g
UmV0dXJucyBib29sIHRydWUgaWYgdGhlcmUgaXMgYSBzZWxlY3Rpb24gYW5kIGZhbHNlIGlmIHRo
ZXJlJ3Mgbm9uZS4KKyAgICAvLyBJbiBjYXNlIHRoZXJlIGlzIGEgc2VsZWN0aW9uLCBzZXRzIHRo
ZSByZWN0IHRvIHRoZSAic3RyYWlnaHQiIGJvdW5kaW5nIAorICAgIC8vIHJlY3Qgb2YgdGhlIChw
b3NzaWJseSB0cmFuc2Zvcm1lZCkgc2VsZWN0aW9uIHJlY3QuCisgICAgLy8gVGhpcyBtZXRob2Qg
aXMgdXNlZCB0byBzdXBwb3J0IGxheW91dCB0ZXN0cy4KKyAgICB2aXJ0dWFsIGJvb2wgc2VsZWN0
aW9uQm91bmRzUmVjdChXZWJSZWN0JikgY29uc3QgPSAwOwogCiAgICAgLy8gUmV0dXJucyB0aGUg
Y291bnRlciB2YWx1ZSBmb3IgdGhlIHNwZWNpZmllZCBlbGVtZW50LiAgVGhpcyBtZXRob2QgaXMK
ICAgICAvLyB1c2VkIHRvIHN1cHBvcnQgbGF5b3V0IHRlc3RzLgpkaWZmIC0tZ2l0IGEvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuY3BwIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJG
cmFtZUltcGwuY3BwCmluZGV4IDJmOTExZjEuLjNjN2RlYWYgMTAwNjQ0Ci0tLSBhL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmNwcAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YkZyYW1lSW1wbC5jcHAKQEAgLTE1MzMsNiArMTUzMywyMCBAQCBpbnQgV2ViRnJhbWVJbXBsOjpw
YWdlTnVtYmVyRm9yRWxlbWVudEJ5SWQoY29uc3QgV2ViU3RyaW5nJiBpZCwKICAgICByZXR1cm4g
UHJpbnRDb250ZXh0OjpwYWdlTnVtYmVyRm9yRWxlbWVudChlbGVtZW50LCBwYWdlU2l6ZSk7CiB9
CiAKK2Jvb2wgV2ViRnJhbWVJbXBsOjpzZWxlY3Rpb25Cb3VuZHNSZWN0KFdlYlJlY3QmIGJvdW5k
c1JlY3QpIGNvbnN0IAoreworICAgIGlmIChoYXNTZWxlY3Rpb24oKSkgeworICAgICAgICBGbG9h
dFJlY3QgciA9IGZyYW1lKCktPnNlbGVjdGlvbkJvdW5kcyhmYWxzZSk7CisgICAgICAgIGJvdW5k
c1JlY3QueCA9IHIueCgpOworICAgICAgICBib3VuZHNSZWN0LnkgPSByLnkoKTsKKyAgICAgICAg
Ym91bmRzUmVjdC53aWR0aCA9IHIud2lkdGgoKTsKKyAgICAgICAgYm91bmRzUmVjdC5oZWlnaHQg
PSByLmhlaWdodCgpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9ICAKKyAgICAKKyAgICBy
ZXR1cm4gZmFsc2U7Cit9CisKIC8vIFdlYkZyYW1lSW1wbCBwdWJsaWMgLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKIFBhc3NSZWZQdHI8
V2ViRnJhbWVJbXBsPiBXZWJGcmFtZUltcGw6OmNyZWF0ZShXZWJGcmFtZUNsaWVudCogY2xpZW50
KQpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuaCBiL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmgKaW5kZXggY2NiYTZkNC4uZDYzMzk1MyAxMDA2
NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuaAorKysgYi9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5oCkBAIC0xNjcsNiArMTY3LDcgQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgaW50IHBhZ2VOdW1iZXJGb3JFbGVtZW50QnlJZChjb25zdCBXZWJTdHJpbmcm
IGlkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbG9hdCBwYWdl
V2lkdGhJblBpeGVscywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ZmxvYXQgcGFnZUhlaWdodEluUGl4ZWxzKSBjb25zdDsKKyAgICB2aXJ0dWFsIGJvb2wgc2VsZWN0
aW9uQm91bmRzUmVjdChXZWJSZWN0JikgY29uc3Q7CiAKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxX
ZWJGcmFtZUltcGw+IGNyZWF0ZShXZWJGcmFtZUNsaWVudCogY2xpZW50KTsKICAgICB+V2ViRnJh
bWVJbXBsKCk7Cg==
</data>
<flag name="review"
          id="31419"
          type_id="1"
          status="-"
          setter="fishd"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>49029</attachid>
            <date>2010-02-18 10:37:13 -0800</date>
            <delta_ts>2010-02-19 15:23:40 -0800</delta_ts>
            <desc>Changed patch to address reviewer feedback.</desc>
            <filename>patch34915.diff</filename>
            <type>text/plain</type>
            <size>3056</size>
            <attacher name="Dmitriy Belenko">dbelenko</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCmluZGV4IDRlOGE2MjkuLjBkOTBmZDAgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDIwIEBACisyMDEwLTAyLTE4ICBEbWl0cml5IEJlbGVua28gIDxkYmVsZW5rb0Bnb29nbGUuY29t
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMg
Y2hhbmdlIHdpbGwgZW5hYmxlIGFib3V0IDMwIHRlc3QgY2FzZXMgdG8gcGFzcyBpbiBDaHJvbWl1
bS4KKyAgICAgICAgQWxsIG9mIHRoZXNlIHRlc3QgY2FzZXMgYXJlIHJlbGF0ZWQgdG8gc2VsZWN0
aW9uIHJlY3QgYm91bmRhcmllcy4KKyAgICAgICAgVGhlIHRocmVlIGlzc3VlcyB0aGF0IHRoaXMg
d2lsbCBzb2x2ZSBjYW4gYmUgZm91bmQgaGVyZToKKworICAgICAgICBodHRwOi8vY29kZS5nb29n
bGUuY29tL3AvY2hyb21pdW0vaXNzdWVzL2RldGFpbD9pZD0yODY0NgorICAgICAgICBodHRwOi8v
Y29kZS5nb29nbGUuY29tL3AvY2hyb21pdW0vaXNzdWVzL2RldGFpbD9pZD0yMzQ4MQorICAgICAg
ICBodHRwOi8vY29kZS5nb29nbGUuY29tL3AvY2hyb21pdW0vaXNzdWVzL2RldGFpbD9pZD0yMzQ4
MgorCisgICAgICAgICogcHVibGljL1dlYkZyYW1lLmg6CisgICAgICAgICogc3JjL1dlYkZyYW1l
SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lSW1wbDo6c2VsZWN0aW9uQm91bmRz
UmVjdCk6CisgICAgICAgICogc3JjL1dlYkZyYW1lSW1wbC5oOgorCiAyMDEwLTAyLTE4ICBZdXJ5
IFNlbWlraGF0c2t5ICA8eXVyeXNAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5
IFBhdmVsIEZlbGRtYW4uCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkZy
YW1lLmggYi9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkZyYW1lLmgKaW5kZXggZjE5M2I5ZS4u
MTM4ZGQ1ZSAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJGcmFtZS5oCisr
KyBiL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViRnJhbWUuaApAQCAtNDkyLDYgKzQ5MiwxMSBA
QCBwdWJsaWM6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsb2F0
IHBhZ2VXaWR0aEluUGl4ZWxzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBmbG9hdCBwYWdlSGVpZ2h0SW5QaXhlbHMpIGNvbnN0ID0gMDsKIAorICAgIC8vIFJldHVy
bnMgdGhlIGJvdW5kcyByZWN0IGZvciBjdXJyZW50IHNlbGVjdGlvbi4gSWYgc2VsZWN0aW9uIGlz
IHBlcmZvcm1lZAorICAgIC8vIG9uIHRyYW5zZm9ybWVkIHRleHQsIHRoZSByZWN0IHdpbGwgc3Rp
bGwgYm91bmQgdGhlIHNlbGVjdGlvbiwgYnV0IHdpbGwKKyAgICAvLyBub3QgYmUgdHJhbnNmb3Jt
ZWQgaXRzZWxmLiBJZiBubyBzZWxlY3Rpb24gaXMgcHJlc2VudCB0aGUgcmVjdCB3aWxsIGJlCisg
ICAgLy8gZW1wdHkgKCgwLDApLCAoMCwwKSkKKyAgICB2aXJ0dWFsIFdlYlJlY3Qgc2VsZWN0aW9u
Qm91bmRzUmVjdCgpIGNvbnN0ID0gMDsKIHByb3RlY3RlZDoKICAgICB+V2ViRnJhbWUoKSB7IH0K
IH07CmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5jcHAgYi9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5jcHAKaW5kZXggNjY1ZjZhMy4uN2VhZDJj
NSAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuY3BwCisrKyBi
L1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmNwcApAQCAtMTUzNCw2ICsxNTM0LDE3
IEBAIGludCBXZWJGcmFtZUltcGw6OnBhZ2VOdW1iZXJGb3JFbGVtZW50QnlJZChjb25zdCBXZWJT
dHJpbmcmIGlkLAogICAgIHJldHVybiBQcmludENvbnRleHQ6OnBhZ2VOdW1iZXJGb3JFbGVtZW50
KGVsZW1lbnQsIHBhZ2VTaXplKTsKIH0KIAorV2ViUmVjdCBXZWJGcmFtZUltcGw6OnNlbGVjdGlv
bkJvdW5kc1JlY3QoKSBjb25zdAoreworICAgIGlmIChoYXNTZWxlY3Rpb24oKSkgeworICAgICAg
ICBGbG9hdFJlY3QgZnIgPSBmcmFtZSgpLT5zZWxlY3Rpb25Cb3VuZHMoZmFsc2UpOworICAgICAg
ICByZXR1cm4gV2ViUmVjdChyb3VuZGYoZnIueCgpKSwgcm91bmRmKGZyLnkoKSksCisgICAgICAg
ICAgICAgICAgICAgICAgIHJvdW5kZihmci53aWR0aCgpKSwgcm91bmRmKGZyLmhlaWdodCgpKSk7
CisgICAgfQorCisgICAgcmV0dXJuIFdlYlJlY3QoMCwgMCwgMCwgMCk7Cit9CisKIC8vIFdlYkZy
YW1lSW1wbCBwdWJsaWMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCiAKIFBhc3NSZWZQdHI8V2ViRnJhbWVJbXBsPiBXZWJGcmFtZUltcGw6
OmNyZWF0ZShXZWJGcmFtZUNsaWVudCogY2xpZW50KQpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJGcmFtZUltcGwuaCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBs
LmgKaW5kZXggZjIzMTA2Yy4uZjQxZTFmNSAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJGcmFtZUltcGwuaAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5o
CkBAIC0xNjcsNiArMTY3LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgaW50IHBhZ2VOdW1iZXJG
b3JFbGVtZW50QnlJZChjb25zdCBXZWJTdHJpbmcmIGlkLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBmbG9hdCBwYWdlV2lkdGhJblBpeGVscywKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxvYXQgcGFnZUhlaWdodEluUGl4ZWxzKSBj
b25zdDsKKyAgICB2aXJ0dWFsIFdlYlJlY3Qgc2VsZWN0aW9uQm91bmRzUmVjdCgpIGNvbnN0Owog
CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViRnJhbWVJbXBsPiBjcmVhdGUoV2ViRnJhbWVDbGll
bnQqIGNsaWVudCk7CiAgICAgfldlYkZyYW1lSW1wbCgpOwo=
</data>
<flag name="review"
          id="31783"
          type_id="1"
          status="-"
          setter="fishd"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>49107</attachid>
            <date>2010-02-19 15:23:40 -0800</date>
            <delta_ts>2010-02-19 18:25:06 -0800</delta_ts>
            <desc>Incorporated review feedback.</desc>
            <filename>patch34915.diff</filename>
            <type>text/plain</type>
            <size>2958</size>
            <attacher name="Dmitriy Belenko">dbelenko</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCmluZGV4IDA4NjkzODcuLjdjMzdiN2UgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDIxIEBACisyMDEwLTAyLTE5ICBEbWl0cml5IEJlbGVua28gIDxkYmVsZW5rb0Bnb29nbGUuY29t
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMg
Y2hhbmdlIHdpbGwgZW5hYmxlIGFib3V0IDMwIHRlc3QgY2FzZXMgdG8gcGFzcyBpbiBDaHJvbWl1
bS4KKyAgICAgICAgQWxsIG9mIHRoZXNlIHRlc3QgY2FzZXMgYXJlIHJlbGF0ZWQgdG8gc2VsZWN0
aW9uIHJlY3QgYm91bmRhcmllcy4KKyAgICAgICAgVGhpcyBjaGFuZ2Ugd2lsbCBlbmFibGUgdGhl
IHRlc3QgY2FzZXMgdG8gcmV0cmlldmUgdGhlIHNlbGVjdGlvbgorICAgICAgICByZWN0IGJvdW5k
YXJ5IHJlY3RhbmdsZSBmb3IgdGhlIGN1cnJlbnQgc2VsZWN0aW9uLgorCisgICAgICAgIFRoZSBj
b3JyZXNwb25kaW5nIFdlYktpdCBidWcgaXM6CisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTM0OTE1CisKKyAgICAgICAgKiBwdWJsaWMvV2ViRnJhbWUu
aDoKKyAgICAgICAgKiBzcmMvV2ViRnJhbWVJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
RnJhbWVJbXBsOjpzZWxlY3Rpb25Cb3VuZHNSZWN0KToKKyAgICAgICAgKiBzcmMvV2ViRnJhbWVJ
bXBsLmg6CisKIDIwMTAtMDItMTggIFBldGVyIEthc3RpbmcgIDxwa2FzdGluZ0Bnb29nbGUuY29t
PgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEZpc2hlci4KZGlmZiAtLWdpdCBhL1dlYktp
dC9jaHJvbWl1bS9wdWJsaWMvV2ViRnJhbWUuaCBiL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2Vi
RnJhbWUuaAppbmRleCBmMTkzYjllLi4xMjM3ODBiIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21p
dW0vcHVibGljL1dlYkZyYW1lLmgKKysrIGIvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJGcmFt
ZS5oCkBAIC00OTIsNiArNDkyLDEyIEBAIHB1YmxpYzoKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZmxvYXQgcGFnZVdpZHRoSW5QaXhlbHMsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsb2F0IHBhZ2VIZWlnaHRJblBpeGVscykgY29u
c3QgPSAwOwogCisgICAgLy8gUmV0dXJucyB0aGUgYm91bmRzIHJlY3QgZm9yIGN1cnJlbnQgc2Vs
ZWN0aW9uLiBJZiBzZWxlY3Rpb24gaXMgcGVyZm9ybWVkCisgICAgLy8gb24gdHJhbnNmb3JtZWQg
dGV4dCwgdGhlIHJlY3Qgd2lsbCBzdGlsbCBib3VuZCB0aGUgc2VsZWN0aW9uLCBidXQgd2lsbAor
ICAgIC8vIG5vdCBiZSB0cmFuc2Zvcm1lZCBpdHNlbGYuIElmIG5vIHNlbGVjdGlvbiBpcyBwcmVz
ZW50IHRoZSByZWN0IHdpbGwgYmUKKyAgICAvLyBlbXB0eSAoKDAsMCksICgwLDApKQorICAgIHZp
cnR1YWwgV2ViUmVjdCBzZWxlY3Rpb25Cb3VuZHNSZWN0KCkgY29uc3QgPSAwOworCiBwcm90ZWN0
ZWQ6CiAgICAgfldlYkZyYW1lKCkgeyB9CiB9OwpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJGcmFtZUltcGwuY3BwIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwu
Y3BwCmluZGV4IDY2NWY2YTMuLjQ0MTI3YTkgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViRnJhbWVJbXBsLmNwcAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1w
bC5jcHAKQEAgLTE1MzQsNiArMTUzNCwxNiBAQCBpbnQgV2ViRnJhbWVJbXBsOjpwYWdlTnVtYmVy
Rm9yRWxlbWVudEJ5SWQoY29uc3QgV2ViU3RyaW5nJiBpZCwKICAgICByZXR1cm4gUHJpbnRDb250
ZXh0OjpwYWdlTnVtYmVyRm9yRWxlbWVudChlbGVtZW50LCBwYWdlU2l6ZSk7CiB9CiAKK1dlYlJl
Y3QgV2ViRnJhbWVJbXBsOjpzZWxlY3Rpb25Cb3VuZHNSZWN0KCkgY29uc3QKK3sKKyAgICBpZiAo
aGFzU2VsZWN0aW9uKCkpIHsKKyAgICAgICAgRmxvYXRSZWN0IGZyID0gZnJhbWUoKS0+c2VsZWN0
aW9uQm91bmRzKGZhbHNlKTsKKyAgICAgICAgcmV0dXJuIFdlYlJlY3QoZnIueCgpLCBmci55KCks
IGZyLndpZHRoKCksIGZyLmhlaWdodCgpKTsKKyAgICB9CisKKyAgICByZXR1cm4gV2ViUmVjdCgp
OworfQorCiAvLyBXZWJGcmFtZUltcGwgcHVibGljIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCiBQYXNzUmVmUHRyPFdlYkZyYW1lSW1w
bD4gV2ViRnJhbWVJbXBsOjpjcmVhdGUoV2ViRnJhbWVDbGllbnQqIGNsaWVudCkKZGlmZiAtLWdp
dCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmggYi9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYkZyYW1lSW1wbC5oCmluZGV4IGYyMzEwNmMuLmY0MWUxZjUgMTAwNjQ0Ci0tLSBhL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmgKKysrIGIvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJGcmFtZUltcGwuaApAQCAtMTY3LDYgKzE2Nyw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IGludCBwYWdlTnVtYmVyRm9yRWxlbWVudEJ5SWQoY29uc3QgV2ViU3RyaW5nJiBpZCwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxvYXQgcGFnZVdpZHRoSW5QaXhl
bHMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsb2F0IHBhZ2VI
ZWlnaHRJblBpeGVscykgY29uc3Q7CisgICAgdmlydHVhbCBXZWJSZWN0IHNlbGVjdGlvbkJvdW5k
c1JlY3QoKSBjb25zdDsKIAogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYkZyYW1lSW1wbD4gY3Jl
YXRlKFdlYkZyYW1lQ2xpZW50KiBjbGllbnQpOwogICAgIH5XZWJGcmFtZUltcGwoKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>49116</attachid>
            <date>2010-02-19 18:25:06 -0800</date>
            <delta_ts>2010-02-21 23:34:48 -0800</delta_ts>
            <desc>Made things more concise</desc>
            <filename>patch34915.diff</filename>
            <type>text/plain</type>
            <size>2896</size>
            <attacher name="Dmitriy Belenko">dbelenko</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCmluZGV4IGFiYjRlZjEuLjJkYzk0MzggMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDIxIEBACisyMDEwLTAyLTE5ICBEbWl0cml5IEJlbGVua28gIDxkYmVsZW5rb0Bnb29nbGUuY29t
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMg
Y2hhbmdlIHdpbGwgZW5hYmxlIGFib3V0IDMwIHRlc3QgY2FzZXMgdG8gcGFzcyBpbiBDaHJvbWl1
bS4KKyAgICAgICAgQWxsIG9mIHRoZXNlIHRlc3QgY2FzZXMgYXJlIHJlbGF0ZWQgdG8gc2VsZWN0
aW9uIHJlY3QgYm91bmRhcmllcy4KKyAgICAgICAgVGhpcyBjaGFuZ2Ugd2lsbCBlbmFibGUgdGhl
IHRlc3QgY2FzZXMgdG8gcmV0cmlldmUgdGhlIHNlbGVjdGlvbgorICAgICAgICByZWN0IGJvdW5k
YXJ5IHJlY3RhbmdsZSBmb3IgdGhlIGN1cnJlbnQgc2VsZWN0aW9uLgorCisgICAgICAgIFRoZSBj
b3JyZXNwb25kaW5nIFdlYktpdCBidWcgaXM6CisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTM0OTE1CisKKyAgICAgICAgKiBwdWJsaWMvV2ViRnJhbWUu
aDoKKyAgICAgICAgKiBzcmMvV2ViRnJhbWVJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
RnJhbWVJbXBsOjpzZWxlY3Rpb25Cb3VuZHNSZWN0KToKKyAgICAgICAgKiBzcmMvV2ViRnJhbWVJ
bXBsLmg6CisKIDIwMTAtMDItMTkgIEphbWVzIEhhd2tpbnMgIDxqaGF3a2luc0BjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gRmlzaGVyLgpkaWZmIC0tZ2l0IGEvV2Vi
S2l0L2Nocm9taXVtL3B1YmxpYy9XZWJGcmFtZS5oIGIvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9X
ZWJGcmFtZS5oCmluZGV4IGYxOTNiOWUuLjEyMzc4MGIgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJv
bWl1bS9wdWJsaWMvV2ViRnJhbWUuaAorKysgYi9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkZy
YW1lLmgKQEAgLTQ5Miw2ICs0OTIsMTIgQEAgcHVibGljOgogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBmbG9hdCBwYWdlV2lkdGhJblBpeGVscywKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxvYXQgcGFnZUhlaWdodEluUGl4ZWxzKSBj
b25zdCA9IDA7CiAKKyAgICAvLyBSZXR1cm5zIHRoZSBib3VuZHMgcmVjdCBmb3IgY3VycmVudCBz
ZWxlY3Rpb24uIElmIHNlbGVjdGlvbiBpcyBwZXJmb3JtZWQKKyAgICAvLyBvbiB0cmFuc2Zvcm1l
ZCB0ZXh0LCB0aGUgcmVjdCB3aWxsIHN0aWxsIGJvdW5kIHRoZSBzZWxlY3Rpb24sIGJ1dCB3aWxs
CisgICAgLy8gbm90IGJlIHRyYW5zZm9ybWVkIGl0c2VsZi4gSWYgbm8gc2VsZWN0aW9uIGlzIHBy
ZXNlbnQgdGhlIHJlY3Qgd2lsbCBiZQorICAgIC8vIGVtcHR5ICgoMCwwKSwgKDAsMCkpCisgICAg
dmlydHVhbCBXZWJSZWN0IHNlbGVjdGlvbkJvdW5kc1JlY3QoKSBjb25zdCA9IDA7CisKIHByb3Rl
Y3RlZDoKICAgICB+V2ViRnJhbWUoKSB7IH0KIH07CmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYkZyYW1lSW1wbC5jcHAgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1w
bC5jcHAKaW5kZXggNjY1ZjZhMy4uMjdkM2IyOSAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJGcmFtZUltcGwuY3BwCisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJ
bXBsLmNwcApAQCAtMTUzNCw2ICsxNTM0LDE0IEBAIGludCBXZWJGcmFtZUltcGw6OnBhZ2VOdW1i
ZXJGb3JFbGVtZW50QnlJZChjb25zdCBXZWJTdHJpbmcmIGlkLAogICAgIHJldHVybiBQcmludENv
bnRleHQ6OnBhZ2VOdW1iZXJGb3JFbGVtZW50KGVsZW1lbnQsIHBhZ2VTaXplKTsKIH0KIAorV2Vi
UmVjdCBXZWJGcmFtZUltcGw6OnNlbGVjdGlvbkJvdW5kc1JlY3QoKSBjb25zdAoreworICAgIGlm
IChoYXNTZWxlY3Rpb24oKSkKKyAgICAgICAgcmV0dXJuIFdlYlJlY3QoKEludFJlY3QpIGZyYW1l
KCktPnNlbGVjdGlvbkJvdW5kcyhmYWxzZSkpOworCisgICAgcmV0dXJuIFdlYlJlY3QoKTsKK30K
KwogLy8gV2ViRnJhbWVJbXBsIHB1YmxpYyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAogUGFzc1JlZlB0cjxXZWJGcmFtZUltcGw+IFdl
YkZyYW1lSW1wbDo6Y3JlYXRlKFdlYkZyYW1lQ2xpZW50KiBjbGllbnQpCmRpZmYgLS1naXQgYS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5oIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJGcmFtZUltcGwuaAppbmRleCBmMjMxMDZjLi5mNDFlMWY1IDEwMDY0NAotLS0gYS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5oCisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
RnJhbWVJbXBsLmgKQEAgLTE2Nyw2ICsxNjcsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBpbnQg
cGFnZU51bWJlckZvckVsZW1lbnRCeUlkKGNvbnN0IFdlYlN0cmluZyYgaWQsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsb2F0IHBhZ2VXaWR0aEluUGl4ZWxzLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbG9hdCBwYWdlSGVpZ2h0
SW5QaXhlbHMpIGNvbnN0OworICAgIHZpcnR1YWwgV2ViUmVjdCBzZWxlY3Rpb25Cb3VuZHNSZWN0
KCkgY29uc3Q7CiAKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJGcmFtZUltcGw+IGNyZWF0ZShX
ZWJGcmFtZUNsaWVudCogY2xpZW50KTsKICAgICB+V2ViRnJhbWVJbXBsKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>49185</attachid>
            <date>2010-02-21 23:34:48 -0800</date>
            <delta_ts>2010-02-22 21:27:02 -0800</delta_ts>
            <desc>Using implicit conversion per Darin&apos;s request.</desc>
            <filename>patch34915.diff</filename>
            <type>text/plain</type>
            <size>2881</size>
            <attacher name="Dmitriy Belenko">dbelenko</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCmluZGV4IGQ4ZDg5YTIuLmZlNWY4ODMgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDIxIEBACisyMDEwLTAyLTIxICBEbWl0cml5IEJlbGVua28gIDxkYmVsZW5rb0Bnb29nbGUuY29t
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMg
Y2hhbmdlIHdpbGwgZW5hYmxlIGFib3V0IDMwIHRlc3QgY2FzZXMgdG8gcGFzcyBpbiBDaHJvbWl1
bS4KKyAgICAgICAgQWxsIG9mIHRoZXNlIHRlc3QgY2FzZXMgYXJlIHJlbGF0ZWQgdG8gc2VsZWN0
aW9uIHJlY3QgYm91bmRhcmllcy4KKyAgICAgICAgVGhpcyBjaGFuZ2Ugd2lsbCBlbmFibGUgdGhl
IHRlc3QgY2FzZXMgdG8gcmV0cmlldmUgdGhlIHNlbGVjdGlvbgorICAgICAgICByZWN0IGJvdW5k
YXJ5IHJlY3RhbmdsZSBmb3IgdGhlIGN1cnJlbnQgc2VsZWN0aW9uLgorCisgICAgICAgIFRoZSBj
b3JyZXNwb25kaW5nIFdlYktpdCBidWcgaXM6CisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTM0OTE1CisKKyAgICAgICAgKiBwdWJsaWMvV2ViRnJhbWUu
aDoKKyAgICAgICAgKiBzcmMvV2ViRnJhbWVJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
RnJhbWVJbXBsOjpzZWxlY3Rpb25Cb3VuZHNSZWN0KToKKyAgICAgICAgKiBzcmMvV2ViRnJhbWVJ
bXBsLmg6CisKIDIwMTAtMDItMTkgIE1hY2llaiBTdGFjaG93aWFrICA8bWpzQGFwcGxlLmNvbT4K
IAogICAgICAgICBSZXZpZXdlZCBieSBEYXZpZCBMZXZpbi4KZGlmZiAtLWdpdCBhL1dlYktpdC9j
aHJvbWl1bS9wdWJsaWMvV2ViRnJhbWUuaCBiL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViRnJh
bWUuaAppbmRleCBmMTkzYjllLi4xMjM3ODBiIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0v
cHVibGljL1dlYkZyYW1lLmgKKysrIGIvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJGcmFtZS5o
CkBAIC00OTIsNiArNDkyLDEyIEBAIHB1YmxpYzoKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZmxvYXQgcGFnZVdpZHRoSW5QaXhlbHMsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGZsb2F0IHBhZ2VIZWlnaHRJblBpeGVscykgY29uc3Qg
PSAwOwogCisgICAgLy8gUmV0dXJucyB0aGUgYm91bmRzIHJlY3QgZm9yIGN1cnJlbnQgc2VsZWN0
aW9uLiBJZiBzZWxlY3Rpb24gaXMgcGVyZm9ybWVkCisgICAgLy8gb24gdHJhbnNmb3JtZWQgdGV4
dCwgdGhlIHJlY3Qgd2lsbCBzdGlsbCBib3VuZCB0aGUgc2VsZWN0aW9uLCBidXQgd2lsbAorICAg
IC8vIG5vdCBiZSB0cmFuc2Zvcm1lZCBpdHNlbGYuIElmIG5vIHNlbGVjdGlvbiBpcyBwcmVzZW50
IHRoZSByZWN0IHdpbGwgYmUKKyAgICAvLyBlbXB0eSAoKDAsMCksICgwLDApKQorICAgIHZpcnR1
YWwgV2ViUmVjdCBzZWxlY3Rpb25Cb3VuZHNSZWN0KCkgY29uc3QgPSAwOworCiBwcm90ZWN0ZWQ6
CiAgICAgfldlYkZyYW1lKCkgeyB9CiB9OwpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJGcmFtZUltcGwuY3BwIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuY3Bw
CmluZGV4IDY2NWY2YTMuLjEyOTI2MjkgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViRnJhbWVJbXBsLmNwcAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5j
cHAKQEAgLTE1MzQsNiArMTUzNCwxNCBAQCBpbnQgV2ViRnJhbWVJbXBsOjpwYWdlTnVtYmVyRm9y
RWxlbWVudEJ5SWQoY29uc3QgV2ViU3RyaW5nJiBpZCwKICAgICByZXR1cm4gUHJpbnRDb250ZXh0
OjpwYWdlTnVtYmVyRm9yRWxlbWVudChlbGVtZW50LCBwYWdlU2l6ZSk7CiB9CiAKK1dlYlJlY3Qg
V2ViRnJhbWVJbXBsOjpzZWxlY3Rpb25Cb3VuZHNSZWN0KCkgY29uc3QKK3sKKyAgICBpZiAoaGFz
U2VsZWN0aW9uKCkpCisgICAgICAgIHJldHVybiBJbnRSZWN0KGZyYW1lKCktPnNlbGVjdGlvbkJv
dW5kcyhmYWxzZSkpOworCisgICAgcmV0dXJuIFdlYlJlY3QoKTsKK30KKwogLy8gV2ViRnJhbWVJ
bXBsIHB1YmxpYyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KIAogUGFzc1JlZlB0cjxXZWJGcmFtZUltcGw+IFdlYkZyYW1lSW1wbDo6Y3Jl
YXRlKFdlYkZyYW1lQ2xpZW50KiBjbGllbnQpCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYkZyYW1lSW1wbC5oIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuaApp
bmRleCBmMjMxMDZjLi5mNDFlMWY1IDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YkZyYW1lSW1wbC5oCisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmgKQEAg
LTE2Nyw2ICsxNjcsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBpbnQgcGFnZU51bWJlckZvckVs
ZW1lbnRCeUlkKGNvbnN0IFdlYlN0cmluZyYgaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGZsb2F0IHBhZ2VXaWR0aEluUGl4ZWxzLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBmbG9hdCBwYWdlSGVpZ2h0SW5QaXhlbHMpIGNvbnN0
OworICAgIHZpcnR1YWwgV2ViUmVjdCBzZWxlY3Rpb25Cb3VuZHNSZWN0KCkgY29uc3Q7CiAKICAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJGcmFtZUltcGw+IGNyZWF0ZShXZWJGcmFtZUNsaWVudCog
Y2xpZW50KTsKICAgICB+V2ViRnJhbWVJbXBsKCk7Cg==
</data>
<flag name="review"
          id="31967"
          type_id="1"
          status="-"
          setter="levin"
    />
    <flag name="commit-queue"
          id="31968"
          type_id="3"
          status="-"
          setter="levin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>49264</attachid>
            <date>2010-02-22 21:27:02 -0800</date>
            <delta_ts>2010-02-23 02:53:54 -0800</delta_ts>
            <desc>Fixed punctuation issues per David&apos;s feedback.</desc>
            <filename>patch34915.diff</filename>
            <type>text/plain</type>
            <size>2923</size>
            <attacher name="Dmitriy Belenko">dbelenko</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCmluZGV4IDEyYWVjYzIuLjU4ODYyMGQgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDIxIEBACisyMDEwLTAyLTIxICBEbWl0cml5IEJlbGVua28gIDxkYmVsZW5rb0Bnb29nbGUuY29t
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENocm9t
aXVtOiBOZWVkIHRvIGJlIGFibGUgdG8gZ2V0IHRoZSBib3VuZHMgb2Ygc2VsZWN0aW9uCisgICAg
ICAgIHJlY3RhbmdsZShzKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MzQ5MTUKKworICAgICAgICBUaGlzIGNoYW5nZSB3aWxsIGVuYWJsZSBhYm91dCAz
MCB0ZXN0IGNhc2VzIHRvIHBhc3MgaW4gQ2hyb21pdW0uCisgICAgICAgIEFsbCBvZiB0aGVzZSB0
ZXN0IGNhc2VzIGFyZSByZWxhdGVkIHRvIHNlbGVjdGlvbiByZWN0IGJvdW5kYXJpZXMuCisgICAg
ICAgIFRoaXMgY2hhbmdlIHdpbGwgZW5hYmxlIHRoZSB0ZXN0IGNhc2VzIHRvIHJldHJpZXZlIHRo
ZSBzZWxlY3Rpb24KKyAgICAgICAgcmVjdCBib3VuZGFyeSByZWN0YW5nbGUgZm9yIHRoZSBjdXJy
ZW50IHNlbGVjdGlvbi4KKworICAgICAgICAqIHB1YmxpYy9XZWJGcmFtZS5oOgorICAgICAgICAq
IHNyYy9XZWJGcmFtZUltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZUltcGw6OnNl
bGVjdGlvbkJvdW5kc1JlY3QpOgorICAgICAgICAqIHNyYy9XZWJGcmFtZUltcGwuaDoKKwogMjAw
OS0wMi0yMiAgQWRhbSBMYW5nbGV5ICA8YWdsQGdvb2dsZS5jb20+CiAKICAgICAgICAgUmV2aWV3
ZWQgYnkgRGFyaW4gRmlzaGVyLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9X
ZWJGcmFtZS5oIGIvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJGcmFtZS5oCmluZGV4IGYxOTNi
OWUuLjAxNzBhNGYgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViRnJhbWUu
aAorKysgYi9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkZyYW1lLmgKQEAgLTQ5Miw2ICs0OTIs
MTIgQEAgcHVibGljOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBm
bG9hdCBwYWdlV2lkdGhJblBpeGVscywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZmxvYXQgcGFnZUhlaWdodEluUGl4ZWxzKSBjb25zdCA9IDA7CiAKKyAgICAvLyBS
ZXR1cm5zIHRoZSBib3VuZHMgcmVjdCBmb3IgY3VycmVudCBzZWxlY3Rpb24uIElmIHNlbGVjdGlv
biBpcyBwZXJmb3JtZWQKKyAgICAvLyBvbiB0cmFuc2Zvcm1lZCB0ZXh0LCB0aGUgcmVjdCB3aWxs
IHN0aWxsIGJvdW5kIHRoZSBzZWxlY3Rpb24gYnV0IHdpbGwKKyAgICAvLyBub3QgYmUgdHJhbnNm
b3JtZWQgaXRzZWxmLiBJZiBubyBzZWxlY3Rpb24gaXMgcHJlc2VudCwgdGhlIHJlY3Qgd2lsbCBi
ZQorICAgIC8vIGVtcHR5ICgoMCwwKSwgKDAsMCkpLgorICAgIHZpcnR1YWwgV2ViUmVjdCBzZWxl
Y3Rpb25Cb3VuZHNSZWN0KCkgY29uc3QgPSAwOworCiBwcm90ZWN0ZWQ6CiAgICAgfldlYkZyYW1l
KCkgeyB9CiB9OwpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwu
Y3BwIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuY3BwCmluZGV4IDY2NWY2YTMu
LjEyOTI2MjkgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmNw
cAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5jcHAKQEAgLTE1MzQsNiAr
MTUzNCwxNCBAQCBpbnQgV2ViRnJhbWVJbXBsOjpwYWdlTnVtYmVyRm9yRWxlbWVudEJ5SWQoY29u
c3QgV2ViU3RyaW5nJiBpZCwKICAgICByZXR1cm4gUHJpbnRDb250ZXh0OjpwYWdlTnVtYmVyRm9y
RWxlbWVudChlbGVtZW50LCBwYWdlU2l6ZSk7CiB9CiAKK1dlYlJlY3QgV2ViRnJhbWVJbXBsOjpz
ZWxlY3Rpb25Cb3VuZHNSZWN0KCkgY29uc3QKK3sKKyAgICBpZiAoaGFzU2VsZWN0aW9uKCkpCisg
ICAgICAgIHJldHVybiBJbnRSZWN0KGZyYW1lKCktPnNlbGVjdGlvbkJvdW5kcyhmYWxzZSkpOwor
CisgICAgcmV0dXJuIFdlYlJlY3QoKTsKK30KKwogLy8gV2ViRnJhbWVJbXBsIHB1YmxpYyAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAog
UGFzc1JlZlB0cjxXZWJGcmFtZUltcGw+IFdlYkZyYW1lSW1wbDo6Y3JlYXRlKFdlYkZyYW1lQ2xp
ZW50KiBjbGllbnQpCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1w
bC5oIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuaAppbmRleCBmMjMxMDZjLi5m
NDFlMWY1IDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5oCisr
KyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmgKQEAgLTE2Nyw2ICsxNjcsNyBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCBpbnQgcGFnZU51bWJlckZvckVsZW1lbnRCeUlkKGNvbnN0
IFdlYlN0cmluZyYgaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGZsb2F0IHBhZ2VXaWR0aEluUGl4ZWxzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBmbG9hdCBwYWdlSGVpZ2h0SW5QaXhlbHMpIGNvbnN0OworICAgIHZpcnR1YWwg
V2ViUmVjdCBzZWxlY3Rpb25Cb3VuZHNSZWN0KCkgY29uc3Q7CiAKICAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxXZWJGcmFtZUltcGw+IGNyZWF0ZShXZWJGcmFtZUNsaWVudCogY2xpZW50KTsKICAgICB+
V2ViRnJhbWVJbXBsKCk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>