<?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>34305</bug_id>
          
          <creation_ts>2010-01-28 21:18:45 -0800</creation_ts>
          <short_desc>Drag and Drop: Windows uses &quot;stop&quot; sign as cursor when dragging</short_desc>
          <delta_ts>2023-03-01 19:10:38 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>Windows XP</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="Brian Weinstein">bweinstein</reporter>
          <assigned_to name="Brian Weinstein">bweinstein</assigned_to>
          <cc>aroben</cc>
    
    <cc>eric</cc>
    
    <cc>hicovib133</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>185721</commentid>
    <comment_count>0</comment_count>
    <who name="Brian Weinstein">bweinstein</who>
    <bug_when>2010-01-28 21:18:45 -0800</bug_when>
    <thetext>Drag and Drop: Windows uses &quot;stop&quot; sign as cursor when dragging</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>185722</commentid>
    <comment_count>1</comment_count>
      <attachid>47672</attachid>
    <who name="Brian Weinstein">bweinstein</who>
    <bug_when>2010-01-28 21:30:22 -0800</bug_when>
    <thetext>Created attachment 47672
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>185913</commentid>
    <comment_count>2</comment_count>
      <attachid>47722</attachid>
    <who name="Brian Weinstein">bweinstein</who>
    <bug_when>2010-01-29 10:59:18 -0800</bug_when>
    <thetext>Created attachment 47722
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>185956</commentid>
    <comment_count>3</comment_count>
      <attachid>47722</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2010-01-29 14:14:41 -0800</bug_when>
    <thetext>Comment on attachment 47722
Patch

&gt; +    RECT webViewRect;
&gt; +    HWND viewWindow;
&gt; +    if (FAILED(m_webView-&gt;viewWindow((OLE_HANDLE*)&amp;viewWindow)))
&gt; +        return DRAGDROP_S_USEDEFAULTCURSORS;
&gt; +    ::GetWindowRect(viewWindow, &amp;webViewRect);

reinterpret_cast would be better than the C-style cast.

You should wait to declare webViewRect until just before you call GetWindowRect.

&gt; +    if (point.x() &gt; (webViewRect.right - webViewRect.left) || point.x() &lt; 0 || point.y() &gt; (webViewRect.bottom - webViewRect.top) || point.y() &lt; 0) {
&gt; +        // If our cursor is outside the bounds of the webView, we want to let Windows select the cursor.
&gt; +        return DRAGDROP_S_USEDEFAULTCURSORS;
&gt; +    }

Comparing an X coordinate to the width, and a Y coordinate to the height, only makes sense if you are assuming that the rect has its origin at 0,0. But even then you might as well compare the X coordinate to the left and right edges of the window, and the Y coordinate to the top and bottom edges of the window. Comparing to the width and height just makes the code more fragile and less clear.

In this case, the rect *does not* have its origin at 0,0, so this code is wrong. GetWindowRect returns a rect in screen coordinates. I would rewrite this like so:

RECT webViewRect;
GetWindowRect(&amp;webViewRect);

POINT point;
GetCursorPos(&amp;point);

if (!IntRect(webViewRect).contains(point)) {

&gt; +    FrameView* view = m_webView-&gt;page()-&gt;mainFrame()-&gt;view();
&gt; +    if (view) {

You should make this an early return, just like all the other ifs in this function.

&gt; +    virtual HRESULT STDMETHODCALLTYPE setShowCustomDragCursors(BOOL);
&gt; +    virtual HRESULT STDMETHODCALLTYPE showCustomDragCursors(BOOL*);

This name makes me think that when I call setShowCustomDragCursors(TRUE), suddenly custom cursors will appear on my screen. I think putting &quot;Enabled&quot; in the name of these functions would fix this. Something like [set]CustomDragCursorsEnabled. (You should change the preference key to match.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>185958</commentid>
    <comment_count>4</comment_count>
    <who name="Brian Weinstein">bweinstein</who>
    <bug_when>2010-01-29 14:17:24 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 47722 [details])
&gt; &gt; +    RECT webViewRect;
&gt; &gt; +    HWND viewWindow;
&gt; &gt; +    if (FAILED(m_webView-&gt;viewWindow((OLE_HANDLE*)&amp;viewWindow)))
&gt; &gt; +        return DRAGDROP_S_USEDEFAULTCURSORS;
&gt; &gt; +    ::GetWindowRect(viewWindow, &amp;webViewRect);
&gt; 
&gt; reinterpret_cast would be better than the C-style cast.
&gt; 
&gt; You should wait to declare webViewRect until just before you call
&gt; GetWindowRect.
&gt; 

Will do, got this code from a combination of WebDropSource and WebView, so I&apos;ll clean it up.

&gt; &gt; +    if (point.x() &gt; (webViewRect.right - webViewRect.left) || point.x() &lt; 0 || point.y() &gt; (webViewRect.bottom - webViewRect.top) || point.y() &lt; 0) {
&gt; &gt; +        // If our cursor is outside the bounds of the webView, we want to let Windows select the cursor.
&gt; &gt; +        return DRAGDROP_S_USEDEFAULTCURSORS;
&gt; &gt; +    }
&gt; 
&gt; Comparing an X coordinate to the width, and a Y coordinate to the height, only
&gt; makes sense if you are assuming that the rect has its origin at 0,0. But even
&gt; then you might as well compare the X coordinate to the left and right edges of
&gt; the window, and the Y coordinate to the top and bottom edges of the window.
&gt; Comparing to the width and height just makes the code more fragile and less
&gt; clear.
&gt; 
&gt; In this case, the rect *does not* have its origin at 0,0, so this code is
&gt; wrong. GetWindowRect returns a rect in screen coordinates. I would rewrite this
&gt; like so:
&gt; 
&gt; RECT webViewRect;
&gt; GetWindowRect(&amp;webViewRect);
&gt; 
&gt; POINT point;
&gt; GetCursorPos(&amp;point);
&gt; 
&gt; if (!IntRect(webViewRect).contains(point)) {

That&apos;s a lot cleaner, I&apos;ll fix.

&gt; 
&gt; &gt; +    FrameView* view = m_webView-&gt;page()-&gt;mainFrame()-&gt;view();
&gt; &gt; +    if (view) {
&gt; 
&gt; You should make this an early return, just like all the other ifs in this
&gt; function.

Will do.

&gt; 
&gt; &gt; +    virtual HRESULT STDMETHODCALLTYPE setShowCustomDragCursors(BOOL);
&gt; &gt; +    virtual HRESULT STDMETHODCALLTYPE showCustomDragCursors(BOOL*);
&gt; 
&gt; This name makes me think that when I call setShowCustomDragCursors(TRUE),
&gt; suddenly custom cursors will appear on my screen. I think putting &quot;Enabled&quot; in
&gt; the name of these functions would fix this. Something like
&gt; [set]CustomDragCursorsEnabled. (You should change the preference key to match.)

I think that makes more sense. 

A new patch will be out shortly, thanks for the review!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>185984</commentid>
    <comment_count>5</comment_count>
      <attachid>47738</attachid>
    <who name="Brian Weinstein">bweinstein</who>
    <bug_when>2010-01-29 15:36:04 -0800</bug_when>
    <thetext>Created attachment 47738
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>185986</commentid>
    <comment_count>6</comment_count>
      <attachid>47738</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2010-01-29 15:42:42 -0800</bug_when>
    <thetext>Comment on attachment 47738
Patch

&gt; +    if (!IntRect(webViewRect).contains(cursorPoint)) {

You could actually use PtInRect here instead.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>186661</commentid>
    <comment_count>7</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-02-01 16:13:28 -0800</bug_when>
    <thetext>Attachment 47738 was posted by a committer and has review+, assigning to Brian Weinstein for commit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>186668</commentid>
    <comment_count>8</comment_count>
    <who name="Brian Weinstein">bweinstein</who>
    <bug_when>2010-02-01 16:14:56 -0800</bug_when>
    <thetext>Sorry, landed in r54083.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>47672</attachid>
            <date>2010-01-28 21:30:22 -0800</date>
            <delta_ts>2010-01-29 10:59:14 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-34305-20100128213020.patch</filename>
            <type>text/plain</type>
            <size>6497</size>
            <attacher name="Brian Weinstein">bweinstein</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC93aW4vQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC93aW4vQ2hh
bmdlTG9nCShyZXZpc2lvbiA1NDA0MikKKysrIFdlYktpdC93aW4vQ2hhbmdlTG9nCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDMgKzEsMjggQEAKKzIwMTAtMDEtMjggIEJyaWFuIFdlaW5zdGVpbiAgPGJ3
ZWluc3RlaW5AYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIERyYWcgYW5kIERyb3A6IFdpbmRvd3MgdXNlcyAic3RvcCIgc2lnbiBhcyBj
dXJzb3Igd2hlbiBkcmFnZ2luZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MzQzMDUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc1ODk2NzI+CisgICAg
ICAgIAorICAgICAgICBBZGQgYSBwcmVmZXJlbmNlIGluIFdlYktpdCAodGhhdCBkZWZhdWx0cyB0
byBmYWxzZSksIGZvciB3aGV0aGVyIG9yIG5vdAorICAgICAgICB3ZSBzaG91bGQgc2hvdyB0aGUg
Y3Vyc29yIHdpdGggdGhlIGxpbmUgdGhyb3VnaCBhIGNpcmNsZSB3aGVuIGEgZHJhZyBpcyAKKyAg
ICAgICAgaGFwcGVuaW5nIG9uIGEgV2ViVmlldyBhbmQgdGhlIGRyYWcgd2lsbCBub3QgYmUgYWNj
ZXB0ZWQuCisgICAgICAgIAorICAgICAgICBUaGlzIHdpbGwgYmUgb2ZmIGJ5IGRlZmF1bHQsIHNv
IG5vIGNoYW5nZSBpbiBiZWhhdmlvci4KKworICAgICAgICAqIEludGVyZmFjZXMvSVdlYlByZWZl
cmVuY2VzUHJpdmF0ZS5pZGw6IEFkZCBuZXcgcHJlZmVyZW5jZSBmdW5jdGlvbnMuCisgICAgICAg
ICogSW50ZXJmYWNlcy9XZWJLaXQuaWRsOiBUb3VjaCB0byBtYWtlIHN1cmUgSW50ZXJmYWNlcyBi
dWlsZC4KKyAgICAgICAgKiBXZWJEcm9wU291cmNlLmNwcDoKKyAgICAgICAgKFdlYkRyb3BTb3Vy
Y2U6OkdpdmVGZWVkYmFjayk6IElmIHdlIHNob3VsZCBub3Qgc2hvdyB0aGUgc3RvcCBjdXJzb3Is
IHNob3cgYSBwb2ludGVyIAorICAgICAgICAgICAgY3Vyc29yIGluc3RlYWQuCisgICAgICAgICog
V2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmg6IEFkZCBhIG5ldyBwcmVmZXJlbmNlIGtleS4KKyAg
ICAgICAgKiBXZWJQcmVmZXJlbmNlcy5jcHA6CisgICAgICAgIChXZWJQcmVmZXJlbmNlczo6c2V0
SGlkZVN0b3BJY29uV2hlbkRyYWdnaW5nKTogSW1wbGVtZW50IHByZWZlcmVuY2UgZnVuY3Rpb24u
CisgICAgICAgIChXZWJQcmVmZXJlbmNlczo6aGlkZVN0b3BJY29uV2hlbkRyYWdnaW5nKTogRGl0
dG8uCisgICAgICAgICogV2ViUHJlZmVyZW5jZXMuaDogQWRkIHByZWZlcmVuY2UgZnVuY3Rpb25z
LgorCiAyMDEwLTAxLTI3ICBBYXJvbiBCb29kbWFuICA8YWFAY2hyb21pdW0ub3JnPgogCiAgICAg
ICAgIEV4cGFuZCBOb3RpZmljYXRpb25DZW50ZXI6OmNoZWNrUGVybWlzc2lvbigpIGludGVyZmFj
ZS4KSW5kZXg6IFdlYktpdC93aW4vV2ViRHJvcFNvdXJjZS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
S2l0L3dpbi9XZWJEcm9wU291cmNlLmNwcAkocmV2aXNpb24gNTM4NjkpCisrKyBXZWJLaXQvd2lu
L1dlYkRyb3BTb3VyY2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw5ICsyOSwxMSBAQAogI2lu
Y2x1ZGUgIldlYktpdERMTC5oIgogI2luY2x1ZGUgIldlYlZpZXcuaCIKIAorI2luY2x1ZGUgPFdl
YkNvcmUvQ3Vyc29yLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9EcmFnQWN0aW9ucy5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvRXZlbnRIYW5kbGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZS5oPgor
I2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVWaWV3Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdlLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybU1vdXNlRXZlbnQuaD4KICNpbmNsdWRlIDx3dGYv
Q3VycmVudFRpbWUuaD4KQEAgLTExMiw3ICsxMTQsNDIgQEAgU1RETUVUSE9ESU1QIFdlYkRyb3BT
b3VyY2U6OlF1ZXJ5Q29udGludQogICAgIHJldHVybiBTX09LOwogfQogCi1TVERNRVRIT0RJTVAg
V2ViRHJvcFNvdXJjZTo6R2l2ZUZlZWRiYWNrKERXT1JEKQorU1RETUVUSE9ESU1QIFdlYkRyb3BT
b3VyY2U6OkdpdmVGZWVkYmFjayhEV09SRCBkd0VmZmVjdCkKIHsKKyAgICBCT09MIGhpZGVTdG9w
SWNvbjsKKyAgICBpZiAoRkFJTEVEKFdlYlByZWZlcmVuY2VzOjpzaGFyZWRTdGFuZGFyZFByZWZl
cmVuY2VzKCktPmhpZGVTdG9wSWNvbldoZW5EcmFnZ2luZygmaGlkZVN0b3BJY29uKSkpCisgICAg
ICAgIHJldHVybiBEUkFHRFJPUF9TX1VTRURFRkFVTFRDVVJTT1JTOworCisgICAgLy8gSWYgd2Ug
ZG9uJ3Qgd2FudCB0byBoaWRlIHRoZSBzdG9wIGljb24sIGxldCBXaW5kb3dzIHNlbGVjdCB0aGUg
Y3Vyc29yLgorICAgIGlmICghaGlkZVN0b3BJY29uKQorICAgICAgICByZXR1cm4gRFJBR0RST1Bf
U19VU0VERUZBVUxUQ1VSU09SUzsKKworICAgIC8vIElmIHdlIGFyZSBnb2luZyB0byBzaG93IHNv
bWV0aGluZyBvdGhlciB0aGFuIHRoZSBub3QgYWxsb3dlZCBhcnJvdywgdGhlbiBsZXQgV2luZG93
cworICAgIC8vIHNob3cgdGhlIGN1cnNvci4KKyAgICBpZiAoZHdFZmZlY3QgIT0gRFJPUEVGRkVD
VF9OT05FKQorICAgICAgICByZXR1cm4gRFJBR0RST1BfU19VU0VERUZBVUxUQ1VSU09SUzsKKwor
ICAgIEludFBvaW50IHBvaW50ID0gZ2VuZXJhdGVNb3VzZUV2ZW50KG1fd2ViVmlldy5nZXQoKSwg
dHJ1ZSkucG9zKCk7CisgICAgCisgICAgUkVDVCB3ZWJWaWV3UmVjdDsKKyAgICBIV05EIHZpZXdX
aW5kb3c7CisgICAgaWYgKEZBSUxFRChtX3dlYlZpZXctPnZpZXdXaW5kb3coKE9MRV9IQU5ETEUq
KSZ2aWV3V2luZG93KSkpCisgICAgICAgIHJldHVybiBEUkFHRFJPUF9TX1VTRURFRkFVTFRDVVJT
T1JTOworICAgIDo6R2V0V2luZG93UmVjdCh2aWV3V2luZG93LCAmd2ViVmlld1JlY3QpOworCisg
ICAgaWYgKHBvaW50LngoKSA+ICh3ZWJWaWV3UmVjdC5yaWdodCAtIHdlYlZpZXdSZWN0LmxlZnQp
IHx8IHBvaW50LngoKSA8IDAgfHwgcG9pbnQueSgpID4gKHdlYlZpZXdSZWN0LmJvdHRvbSAtIHdl
YlZpZXdSZWN0LnRvcCkgfHwgcG9pbnQueSgpIDwgMCkgeworICAgICAgICAvLyBJZiBvdXIgY3Vy
c29yIGlzIG91dHNpZGUgdGhlIGJvdW5kcyBvZiB0aGUgd2ViVmlldywgd2Ugd2FudCB0byBsZXQg
V2luZG93cyBzZWxlY3QgdGhlIGN1cnNvci4KKyAgICAgICAgcmV0dXJuIERSQUdEUk9QX1NfVVNF
REVGQVVMVENVUlNPUlM7CisgICAgfQorCisgICAgRnJhbWVWaWV3KiB2aWV3ID0gbV93ZWJWaWV3
LT5wYWdlKCktPm1haW5GcmFtZSgpLT52aWV3KCk7CisgICAgaWYgKHZpZXcpIHsKKyAgICAgICAg
Ly8gV2hlbiBkcmFnZ2luZyBpbnNpZGUgYSBXZWJWaWV3IGFuZCB0aGUgZHJhZyBpcyBub3QgYWxs
b3dlZCwgZG9uJ3Qgc2hvdyB0aGUgbm90IGFsbG93ZWQgaWNvbiwKKyAgICAgICAgLy8gaW5zdGVh
ZCwgc2hvdyB0aGUgcG9pbnRlciBjdXJzb3IuCisgICAgICAgIHZpZXctPnNldEN1cnNvcihwb2lu
dGVyQ3Vyc29yKCkpOyAKKyAgICAgICAgcmV0dXJuIFNfT0s7CisgICAgfQorCisgICAgLy8gSWYg
dGhlcmUgd2FzIG5vIEZyYW1lVmlldywgZmFsbGJhY2sgYW5kIHNob3cgdGhlIGRlZmF1bHQgY3Vy
c29yLgogICAgIHJldHVybiBEUkFHRFJPUF9TX1VTRURFRkFVTFRDVVJTT1JTOwogfQpJbmRleDog
V2ViS2l0L3dpbi9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJL
aXQvd2luL1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCShyZXZpc2lvbiA1Mzg2OSkKKysrIFdl
YktpdC93aW4vV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTEz
MSwzICsxMzEsNSBAQAogI2RlZmluZSBXZWJLaXRQbHVnaW5BbGxvd2VkUnVuVGltZVByZWZlcmVu
Y2VLZXkgIldlYktpdFBsdWdpbkFsbG93ZWRSdW5UaW1lIgogCiAjZGVmaW5lIFdlYktpdEFjY2Vs
ZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkUHJlZmVyZW5jZUtleSAiV2ViS2l0QWNjZWxlcmF0ZWRD
b21wb3NpdGluZ0VuYWJsZWQiCisKKyNkZWZpbmUgV2ViS2l0SGlkZVN0b3BJY29uV2hlbkRyYWdn
aW5nUHJlZmVyZW5jZUtleSAiV2ViS2l0SGlkZVN0b3BJY29uV2hlbkRyYWdnaW5nIgpJbmRleDog
V2ViS2l0L3dpbi9XZWJQcmVmZXJlbmNlcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3dpbi9X
ZWJQcmVmZXJlbmNlcy5jcHAJKHJldmlzaW9uIDUzODY5KQorKysgV2ViS2l0L3dpbi9XZWJQcmVm
ZXJlbmNlcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEzNzQsNiArMTM3NCwxOCBAQCBIUkVTVUxU
IFdlYlByZWZlcmVuY2VzOjphY2NlbGVyYXRlZENvbXBvCiAgICAgcmV0dXJuIFNfT0s7CiB9CiAK
K0hSRVNVTFQgV2ViUHJlZmVyZW5jZXM6OnNldEhpZGVTdG9wSWNvbldoZW5EcmFnZ2luZyhCT09M
IGVuYWJsZWQpCit7CisgICAgc2V0Qm9vbFZhbHVlKENGU1RSKFdlYktpdEhpZGVTdG9wSWNvbldo
ZW5EcmFnZ2luZ1ByZWZlcmVuY2VLZXkpLCBlbmFibGVkKTsKKyAgICByZXR1cm4gU19PSzsKK30K
KworSFJFU1VMVCBXZWJQcmVmZXJlbmNlczo6aGlkZVN0b3BJY29uV2hlbkRyYWdnaW5nKEJPT0wq
IGVuYWJsZWQpCit7CisgICAgKmVuYWJsZWQgPSBib29sVmFsdWVGb3JLZXkoQ0ZTVFIoV2ViS2l0
SGlkZVN0b3BJY29uV2hlbkRyYWdnaW5nUHJlZmVyZW5jZUtleSkpOworICAgIHJldHVybiBTX09L
OworfQorCiB2b2lkIFdlYlByZWZlcmVuY2VzOjp3aWxsQWRkVG9XZWJWaWV3KCkKIHsKICAgICAr
K21fbnVtV2ViVmlld3M7CkluZGV4OiBXZWJLaXQvd2luL1dlYlByZWZlcmVuY2VzLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViS2l0L3dpbi9XZWJQcmVmZXJlbmNlcy5oCShyZXZpc2lvbiA1Mzg2OSkKKysr
IFdlYktpdC93aW4vV2ViUHJlZmVyZW5jZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMzg3LDYgKzM4
Nyw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgc2V0
QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQoQk9PTCk7CiAgICAgdmlydHVhbCBIUkVTVUxU
IFNURE1FVEhPRENBTExUWVBFIGFjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkKEJPT0wqKTsK
IAorICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBzZXRIaWRlU3RvcEljb25X
aGVuRHJhZ2dpbmcoQk9PTCk7CisgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBF
IGhpZGVTdG9wSWNvbldoZW5EcmFnZ2luZyhCT09MKik7CisKICAgICAvLyBXZWJQcmVmZXJlbmNl
cwogCiAgICAgLy8gVGhpcyBtZXRob2QgYWNjZXNzZXMgYSBkaWZmZXJlbnQgcHJlZmVyZW5jZSBr
ZXkgdGhhbiBkZXZlbG9wZXJFeHRyYXNFbmFibGVkLgpJbmRleDogV2ViS2l0L3dpbi9JbnRlcmZh
Y2VzL0lXZWJQcmVmZXJlbmNlc1ByaXZhdGUuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC93aW4v
SW50ZXJmYWNlcy9JV2ViUHJlZmVyZW5jZXNQcml2YXRlLmlkbAkocmV2aXNpb24gNTM4NjkpCisr
KyBXZWJLaXQvd2luL0ludGVyZmFjZXMvSVdlYlByZWZlcmVuY2VzUHJpdmF0ZS5pZGwJKHdvcmtp
bmcgY29weSkKQEAgLTk0LDQgKzk0LDcgQEAgaW50ZXJmYWNlIElXZWJQcmVmZXJlbmNlc1ByaXZh
dGUgOiBJVW5rbgogCiAgICAgSFJFU1VMVCBzZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxl
ZChbaW5dIEJPT0wpOwogICAgIEhSRVNVTFQgYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQo
W291dCwgcmV0dmFsXSBCT09MKik7CisKKyAgICBIUkVTVUxUIHNldEhpZGVTdG9wSWNvbldoZW5E
cmFnZ2luZyhbaW5dIEJPT0wpOworICAgIEhSRVNVTFQgaGlkZVN0b3BJY29uV2hlbkRyYWdnaW5n
KFtvdXQsIHJldHZhbF0gQk9PTCopOwogfQpJbmRleDogV2ViS2l0L3dpbi9JbnRlcmZhY2VzL1dl
YktpdC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3dpbi9JbnRlcmZhY2VzL1dlYktpdC5pZGwJ
KHJldmlzaW9uIDUzODY5KQorKysgV2ViS2l0L3dpbi9JbnRlcmZhY2VzL1dlYktpdC5pZGwJKHdv
cmtpbmcgY29weSkKQEAgLTI5MywzICsyOTMsNCBAQCBsaWJyYXJ5IFdlYktpdAogICAgICAgICBb
ZGVmYXVsdF0gaW50ZXJmYWNlIElXZWJHZW9sb2NhdGlvblBvc2l0aW9uOwogICAgIH0KIH0KKwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>47722</attachid>
            <date>2010-01-29 10:59:18 -0800</date>
            <delta_ts>2010-01-29 15:36:01 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-34305-20100129105915.patch</filename>
            <type>text/plain</type>
            <size>8098</size>
            <attacher name="Brian Weinstein">bweinstein</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1NDA3MSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTcgQEAKKzIwMTAtMDEtMjkgIEJyaWFuIFdlaW5zdGVpbiAgPGJ3ZWluc3RlaW5A
YXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIERyYWcgYW5kIERyb3A6IFdpbmRvd3MgdXNlcyAic3RvcCIgc2lnbiBhcyBjdXJzb3Igd2hl
biBkcmFnZ2luZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MzQzMDUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc1ODk2NzI+CisKKyAgICAgICAgQWRk
IGEgRklYTUUgZm9yIHRoZSBjb2RlIHRoYXQgbmVlZHMgdG8gYmUgY2hhbmdlZCB0byBzdXBwb3J0
IGZ1bGwKKyAgICAgICAgY3VzdG9tIGN1cnNvcnMuCisKKyAgICAgICAgKiBwYWdlL0V2ZW50SGFu
ZGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmhhbmRsZURyYWcpOgor
CiAyMDEwLTAxLTI5ICBUb255IENoYW5nICA8dG9ueUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAg
UmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCkluZGV4OiBXZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVy
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAkocmV2aXNp
b24gNTM4NjkpCisrKyBXZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMjI5Miw5ICsyMjkyLDExIEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpoYW5kbGVEcmFnKGNv
bnN0IE1vdXMKICAgICAgICAgcmV0dXJuICFtb3VzZURvd25NYXlTdGFydFNlbGVjdCgpICYmICFt
X21vdXNlRG93bk1heVN0YXJ0QXV0b3Njcm9sbDsKICAgICAKICAgICAvLyBXZSBhcmUgc3RhcnRp
bmcgYSB0ZXh0L2ltYWdlL3VybCBkcmFnLCBzbyB0aGUgY3Vyc29yIHNob3VsZCBiZSBhbiBhcnJv
dwotICAgIGlmIChGcmFtZVZpZXcqIHZpZXcgPSBtX2ZyYW1lLT52aWV3KCkpCisgICAgaWYgKEZy
YW1lVmlldyogdmlldyA9IG1fZnJhbWUtPnZpZXcoKSkgeworICAgICAgICAvLyBGSVhNRSA8cmRh
cjovLzc1Nzc1OTU+OiBDdXN0b20gY3Vyc29ycyBhcmVuJ3Qgc3VwcG9ydGVkIGR1cmluZyBkcmFn
IGFuZCBkcm9wIChkZWZhdWx0IHRvIHBvaW50ZXIpLgogICAgICAgICB2aWV3LT5zZXRDdXJzb3Io
cG9pbnRlckN1cnNvcigpKTsKLSAgICAKKyAgICB9CisKICAgICBpZiAoIWRyYWdIeXN0ZXJlc2lz
RXhjZWVkZWQoZXZlbnQuZXZlbnQoKS5wb3MoKSkpIAogICAgICAgICByZXR1cm4gdHJ1ZTsKICAg
ICAKSW5kZXg6IFdlYktpdC93aW4vQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC93aW4v
Q2hhbmdlTG9nCShyZXZpc2lvbiA1NDA3MSkKKysrIFdlYktpdC93aW4vQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMjkgQEAKKzIwMTAtMDEtMjkgIEJyaWFuIFdlaW5zdGVpbiAg
PGJ3ZWluc3RlaW5AYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIERyYWcgYW5kIERyb3A6IFdpbmRvd3MgdXNlcyAic3RvcCIgc2lnbiBh
cyBjdXJzb3Igd2hlbiBkcmFnZ2luZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MzQzMDUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc1ODk2NzI+Cisg
ICAgICAgIAorICAgICAgICBBZGQgYSBwcmVmZXJlbmNlIGluIFdlYktpdCAodGhhdCBkZWZhdWx0
cyB0byBmYWxzZSksIGZvciB3aGV0aGVyIG9yIG5vdAorICAgICAgICB3ZSBzaG91bGQgc2hvdyB0
aGUgY3VzdG9tIGN1cnNvcnMgZHVyaW5nIGRyYWcgYW5kIGRyb3AuIEhvd2V2ZXIsIHRoaXMgaXMK
KyAgICAgICAgY3VycmVudGx5IG9ubHkgdXNlZCBvbiBXaW5kb3dzLCBhbmQgb25seSB1c2VkIHRv
IGhpZGUgdGhlICJkcm9wIG5vdCBhbGxvd2VkIgorICAgICAgICBpY29uIGluc2lkZSB0aGUgV2Vi
VmlldyBpcyB0aGUgcHJlZmVyZW5jZSBpcyBzZXQgdG8gdHJ1ZS4KKworICAgICAgICBUaGlzIHdp
bGwgYmUgb2ZmIGJ5IGRlZmF1bHQsIHNvIG5vIGNoYW5nZSBpbiBiZWhhdmlvci4KKworICAgICAg
ICAqIEludGVyZmFjZXMvSVdlYlByZWZlcmVuY2VzUHJpdmF0ZS5pZGw6IEFkZGVkIG5ldyBmdW5j
dGlvbnMuCisgICAgICAgICogSW50ZXJmYWNlcy9XZWJLaXQuaWRsOiBUb3VjaGVkIHRvIGZvcmNl
IEludGVyZmFjZXMgYnVpbGQuCisgICAgICAgICogV2ViRHJvcFNvdXJjZS5jcHA6CisgICAgICAg
IChXZWJEcm9wU291cmNlOjpHaXZlRmVlZGJhY2spOiBJbXBsZW1lbnRhdGlvbiBvZiBjb25kaXRp
b25hbCBzaG93aW5nIGN1cnNvcgorICAgICAgICAgICAgbG9naWMuCisgICAgICAgICogV2ViUHJl
ZmVyZW5jZUtleXNQcml2YXRlLmg6IEFkZGVkIG5ldyBwcmVmZXJlbmNlIGtleS4KKyAgICAgICAg
KiBXZWJQcmVmZXJlbmNlcy5jcHA6IEFkZGVkIG5ldyBmdW5jdGlvbnMuCisgICAgICAgIChXZWJQ
cmVmZXJlbmNlczo6c2V0U2hvd0N1c3RvbURyYWdDdXJzb3JzKToKKyAgICAgICAgKFdlYlByZWZl
cmVuY2VzOjpzaG93Q3VzdG9tRHJhZ0N1cnNvcnMpOgorICAgICAgICAqIFdlYlByZWZlcmVuY2Vz
Lmg6IEFkZGVkIG5ldyBmdW5jdGlvbnMuCisKIDIwMTAtMDEtMjcgIEFhcm9uIEJvb2RtYW4gIDxh
YUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgRXhwYW5kIE5vdGlmaWNhdGlvbkNlbnRlcjo6Y2hl
Y2tQZXJtaXNzaW9uKCkgaW50ZXJmYWNlLgpJbmRleDogV2ViS2l0L3dpbi9XZWJEcm9wU291cmNl
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvd2luL1dlYkRyb3BTb3VyY2UuY3BwCShyZXZpc2lv
biA1Mzg2OSkKKysrIFdlYktpdC93aW4vV2ViRHJvcFNvdXJjZS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTI5LDkgKzI5LDExIEBACiAjaW5jbHVkZSAiV2ViS2l0RExMLmgiCiAjaW5jbHVkZSAiV2Vi
Vmlldy5oIgogCisjaW5jbHVkZSA8V2ViQ29yZS9DdXJzb3IuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L0RyYWdBY3Rpb25zLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9FdmVudEhhbmRsZXIuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL0ZyYW1lLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZVZpZXcuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL1BhZ2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtTW91c2VF
dmVudC5oPgogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgpAQCAtMTEyLDcgKzExNCw0MyBA
QCBTVERNRVRIT0RJTVAgV2ViRHJvcFNvdXJjZTo6UXVlcnlDb250aW51CiAgICAgcmV0dXJuIFNf
T0s7CiB9CiAKLVNURE1FVEhPRElNUCBXZWJEcm9wU291cmNlOjpHaXZlRmVlZGJhY2soRFdPUkQp
CitTVERNRVRIT0RJTVAgV2ViRHJvcFNvdXJjZTo6R2l2ZUZlZWRiYWNrKERXT1JEIGR3RWZmZWN0
KQogeworICAgIEJPT0wgc2hvd0N1c3RvbUN1cnNvcnM7CisgICAgaWYgKEZBSUxFRChXZWJQcmVm
ZXJlbmNlczo6c2hhcmVkU3RhbmRhcmRQcmVmZXJlbmNlcygpLT5zaG93Q3VzdG9tRHJhZ0N1cnNv
cnMoJnNob3dDdXN0b21DdXJzb3JzKSkpCisgICAgICAgIHJldHVybiBEUkFHRFJPUF9TX1VTRURF
RkFVTFRDVVJTT1JTOworCisgICAgLy8gSWYgd2UgZG9uJ3Qgd2FudCB0byBoaWRlIHRoZSBzdG9w
IGljb24sIGxldCBXaW5kb3dzIHNlbGVjdCB0aGUgY3Vyc29yLgorICAgIGlmICghc2hvd0N1c3Rv
bUN1cnNvcnMpCisgICAgICAgIHJldHVybiBEUkFHRFJPUF9TX1VTRURFRkFVTFRDVVJTT1JTOwor
CisgICAgLy8gSWYgd2UgYXJlIGdvaW5nIHRvIHNob3cgc29tZXRoaW5nIG90aGVyIHRoYW4gdGhl
IG5vdCBhbGxvd2VkIGFycm93LCB0aGVuIGxldCBXaW5kb3dzCisgICAgLy8gc2hvdyB0aGUgY3Vy
c29yLgorICAgIGlmIChkd0VmZmVjdCAhPSBEUk9QRUZGRUNUX05PTkUpCisgICAgICAgIHJldHVy
biBEUkFHRFJPUF9TX1VTRURFRkFVTFRDVVJTT1JTOworCisgICAgSW50UG9pbnQgcG9pbnQgPSBn
ZW5lcmF0ZU1vdXNlRXZlbnQobV93ZWJWaWV3LmdldCgpLCB0cnVlKS5wb3MoKTsKKyAgICAKKyAg
ICBSRUNUIHdlYlZpZXdSZWN0OworICAgIEhXTkQgdmlld1dpbmRvdzsKKyAgICBpZiAoRkFJTEVE
KG1fd2ViVmlldy0+dmlld1dpbmRvdygoT0xFX0hBTkRMRSopJnZpZXdXaW5kb3cpKSkKKyAgICAg
ICAgcmV0dXJuIERSQUdEUk9QX1NfVVNFREVGQVVMVENVUlNPUlM7CisgICAgOjpHZXRXaW5kb3dS
ZWN0KHZpZXdXaW5kb3csICZ3ZWJWaWV3UmVjdCk7CisKKyAgICBpZiAocG9pbnQueCgpID4gKHdl
YlZpZXdSZWN0LnJpZ2h0IC0gd2ViVmlld1JlY3QubGVmdCkgfHwgcG9pbnQueCgpIDwgMCB8fCBw
b2ludC55KCkgPiAod2ViVmlld1JlY3QuYm90dG9tIC0gd2ViVmlld1JlY3QudG9wKSB8fCBwb2lu
dC55KCkgPCAwKSB7CisgICAgICAgIC8vIElmIG91ciBjdXJzb3IgaXMgb3V0c2lkZSB0aGUgYm91
bmRzIG9mIHRoZSB3ZWJWaWV3LCB3ZSB3YW50IHRvIGxldCBXaW5kb3dzIHNlbGVjdCB0aGUgY3Vy
c29yLgorICAgICAgICByZXR1cm4gRFJBR0RST1BfU19VU0VERUZBVUxUQ1VSU09SUzsKKyAgICB9
CisKKyAgICBGcmFtZVZpZXcqIHZpZXcgPSBtX3dlYlZpZXctPnBhZ2UoKS0+bWFpbkZyYW1lKCkt
PnZpZXcoKTsKKyAgICBpZiAodmlldykgeworICAgICAgICAvLyBXaGVuIGRyYWdnaW5nIGluc2lk
ZSBhIFdlYlZpZXcgYW5kIHRoZSBkcmFnIGlzIG5vdCBhbGxvd2VkLCBkb24ndCBzaG93IHRoZSBu
b3QgYWxsb3dlZCBpY29uLAorICAgICAgICAvLyBpbnN0ZWFkLCBzaG93IHRoZSBwb2ludGVyIGN1
cnNvci4gICAKKyAgICAgICAgLy8gRklYTUUgPHJkYXI6Ly83NTc3NTk1PjogQ3VzdG9tIGN1cnNv
cnMgYXJlbid0IHN1cHBvcnRlZCBkdXJpbmcgZHJhZyBhbmQgZHJvcCAoZGVmYXVsdCB0byBwb2lu
dGVyKS4KKyAgICAgICAgdmlldy0+c2V0Q3Vyc29yKHBvaW50ZXJDdXJzb3IoKSk7IAorICAgICAg
ICByZXR1cm4gU19PSzsKKyAgICB9CisKKyAgICAvLyBJZiB0aGVyZSB3YXMgbm8gRnJhbWVWaWV3
LCBmYWxsYmFjayBhbmQgc2hvdyB0aGUgZGVmYXVsdCBjdXJzb3IuCiAgICAgcmV0dXJuIERSQUdE
Uk9QX1NfVVNFREVGQVVMVENVUlNPUlM7CiB9CkluZGV4OiBXZWJLaXQvd2luL1dlYlByZWZlcmVu
Y2VLZXlzUHJpdmF0ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC93aW4vV2ViUHJlZmVyZW5jZUtl
eXNQcml2YXRlLmgJKHJldmlzaW9uIDUzODY5KQorKysgV2ViS2l0L3dpbi9XZWJQcmVmZXJlbmNl
S2V5c1ByaXZhdGUuaAkod29ya2luZyBjb3B5KQpAQCAtMTMxLDMgKzEzMSw1IEBACiAjZGVmaW5l
IFdlYktpdFBsdWdpbkFsbG93ZWRSdW5UaW1lUHJlZmVyZW5jZUtleSAiV2ViS2l0UGx1Z2luQWxs
b3dlZFJ1blRpbWUiCiAKICNkZWZpbmUgV2ViS2l0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJs
ZWRQcmVmZXJlbmNlS2V5ICJXZWJLaXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZCIKKwor
I2RlZmluZSBXZWJLaXRTaG93Q3VzdG9tRHJhZ0N1cnNvcnNQcmVmZXJlbmNlS2V5ICJXZWJLaXRT
aG93Q3VzdG9tRHJhZ0N1cnNvcnMiCkluZGV4OiBXZWJLaXQvd2luL1dlYlByZWZlcmVuY2VzLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJLaXQvd2luL1dlYlByZWZlcmVuY2VzLmNwcAkocmV2aXNpb24g
NTM4NjkpCisrKyBXZWJLaXQvd2luL1dlYlByZWZlcmVuY2VzLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMTM3NCw2ICsxMzc0LDE4IEBAIEhSRVNVTFQgV2ViUHJlZmVyZW5jZXM6OmFjY2VsZXJhdGVk
Q29tcG8KICAgICByZXR1cm4gU19PSzsKIH0KIAorSFJFU1VMVCBXZWJQcmVmZXJlbmNlczo6c2V0
U2hvd0N1c3RvbURyYWdDdXJzb3JzKEJPT0wgZW5hYmxlZCkKK3sKKyAgICBzZXRCb29sVmFsdWUo
Q0ZTVFIoV2ViS2l0U2hvd0N1c3RvbURyYWdDdXJzb3JzUHJlZmVyZW5jZUtleSksIGVuYWJsZWQp
OworICAgIHJldHVybiBTX09LOworfQorCitIUkVTVUxUIFdlYlByZWZlcmVuY2VzOjpzaG93Q3Vz
dG9tRHJhZ0N1cnNvcnMoQk9PTCogZW5hYmxlZCkKK3sKKyAgICAqZW5hYmxlZCA9IGJvb2xWYWx1
ZUZvcktleShDRlNUUihXZWJLaXRTaG93Q3VzdG9tRHJhZ0N1cnNvcnNQcmVmZXJlbmNlS2V5KSk7
CisgICAgcmV0dXJuIFNfT0s7Cit9CisKIHZvaWQgV2ViUHJlZmVyZW5jZXM6OndpbGxBZGRUb1dl
YlZpZXcoKQogewogICAgICsrbV9udW1XZWJWaWV3czsKSW5kZXg6IFdlYktpdC93aW4vV2ViUHJl
ZmVyZW5jZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvd2luL1dlYlByZWZlcmVuY2VzLmgJKHJl
dmlzaW9uIDUzODY5KQorKysgV2ViS2l0L3dpbi9XZWJQcmVmZXJlbmNlcy5oCSh3b3JraW5nIGNv
cHkpCkBAIC0zODcsNiArMzg3LDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgSFJFU1VMVCBTVERN
RVRIT0RDQUxMVFlQRSBzZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZChCT09MKTsKICAg
ICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgYWNjZWxlcmF0ZWRDb21wb3NpdGlu
Z0VuYWJsZWQoQk9PTCopOwogCisgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBF
IHNldFNob3dDdXN0b21EcmFnQ3Vyc29ycyhCT09MKTsKKyAgICB2aXJ0dWFsIEhSRVNVTFQgU1RE
TUVUSE9EQ0FMTFRZUEUgc2hvd0N1c3RvbURyYWdDdXJzb3JzKEJPT0wqKTsKKwogICAgIC8vIFdl
YlByZWZlcmVuY2VzCiAKICAgICAvLyBUaGlzIG1ldGhvZCBhY2Nlc3NlcyBhIGRpZmZlcmVudCBw
cmVmZXJlbmNlIGtleSB0aGFuIGRldmVsb3BlckV4dHJhc0VuYWJsZWQuCkluZGV4OiBXZWJLaXQv
d2luL0ludGVyZmFjZXMvSVdlYlByZWZlcmVuY2VzUHJpdmF0ZS5pZGwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViS2l0L3dpbi9JbnRlcmZhY2VzL0lXZWJQcmVmZXJlbmNlc1ByaXZhdGUuaWRsCShyZXZpc2lv
biA1Mzg2OSkKKysrIFdlYktpdC93aW4vSW50ZXJmYWNlcy9JV2ViUHJlZmVyZW5jZXNQcml2YXRl
LmlkbAkod29ya2luZyBjb3B5KQpAQCAtOTQsNCArOTQsNyBAQCBpbnRlcmZhY2UgSVdlYlByZWZl
cmVuY2VzUHJpdmF0ZSA6IElVbmtuCiAKICAgICBIUkVTVUxUIHNldEFjY2VsZXJhdGVkQ29tcG9z
aXRpbmdFbmFibGVkKFtpbl0gQk9PTCk7CiAgICAgSFJFU1VMVCBhY2NlbGVyYXRlZENvbXBvc2l0
aW5nRW5hYmxlZChbb3V0LCByZXR2YWxdIEJPT0wqKTsKKworICAgIEhSRVNVTFQgc2V0U2hvd0N1
c3RvbURyYWdDdXJzb3JzKFtpbl0gQk9PTCk7CisgICAgSFJFU1VMVCBzaG93Q3VzdG9tRHJhZ0N1
cnNvcnMoW291dCwgcmV0dmFsXSBCT09MKik7CiB9CkluZGV4OiBXZWJLaXQvd2luL0ludGVyZmFj
ZXMvV2ViS2l0LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvd2luL0ludGVyZmFjZXMvV2ViS2l0
LmlkbAkocmV2aXNpb24gNTM4NjkpCisrKyBXZWJLaXQvd2luL0ludGVyZmFjZXMvV2ViS2l0Lmlk
bAkod29ya2luZyBjb3B5KQpAQCAtMjkzLDMgKzI5Myw0IEBAIGxpYnJhcnkgV2ViS2l0CiAgICAg
ICAgIFtkZWZhdWx0XSBpbnRlcmZhY2UgSVdlYkdlb2xvY2F0aW9uUG9zaXRpb247CiAgICAgfQog
fQorCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>47738</attachid>
            <date>2010-01-29 15:36:04 -0800</date>
            <delta_ts>2010-01-29 15:42:41 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-34305-20100129153601.patch</filename>
            <type>text/plain</type>
            <size>7991</size>
            <attacher name="Brian Weinstein">bweinstein</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1NDA3MSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTcgQEAKKzIwMTAtMDEtMjkgIEJyaWFuIFdlaW5zdGVpbiAgPGJ3ZWluc3RlaW5A
YXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIERyYWcgYW5kIERyb3A6IFdpbmRvd3MgdXNlcyAic3RvcCIgc2lnbiBhcyBjdXJzb3Igd2hl
biBkcmFnZ2luZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MzQzMDUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc1ODk2NzI+CisKKyAgICAgICAgQWRk
IGEgRklYTUUgZm9yIHRoZSBjb2RlIHRoYXQgbmVlZHMgdG8gYmUgY2hhbmdlZCB0byBzdXBwb3J0
IGZ1bGwKKyAgICAgICAgY3VzdG9tIGN1cnNvcnMuCisKKyAgICAgICAgKiBwYWdlL0V2ZW50SGFu
ZGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmhhbmRsZURyYWcpOgor
CiAyMDEwLTAxLTI5ICBUb255IENoYW5nICA8dG9ueUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAg
UmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCkluZGV4OiBXZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVy
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAkocmV2aXNp
b24gNTM4NjkpCisrKyBXZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMjI5Miw5ICsyMjkyLDExIEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpoYW5kbGVEcmFnKGNv
bnN0IE1vdXMKICAgICAgICAgcmV0dXJuICFtb3VzZURvd25NYXlTdGFydFNlbGVjdCgpICYmICFt
X21vdXNlRG93bk1heVN0YXJ0QXV0b3Njcm9sbDsKICAgICAKICAgICAvLyBXZSBhcmUgc3RhcnRp
bmcgYSB0ZXh0L2ltYWdlL3VybCBkcmFnLCBzbyB0aGUgY3Vyc29yIHNob3VsZCBiZSBhbiBhcnJv
dwotICAgIGlmIChGcmFtZVZpZXcqIHZpZXcgPSBtX2ZyYW1lLT52aWV3KCkpCisgICAgaWYgKEZy
YW1lVmlldyogdmlldyA9IG1fZnJhbWUtPnZpZXcoKSkgeworICAgICAgICAvLyBGSVhNRSA8cmRh
cjovLzc1Nzc1OTU+OiBDdXN0b20gY3Vyc29ycyBhcmVuJ3Qgc3VwcG9ydGVkIGR1cmluZyBkcmFn
IGFuZCBkcm9wIChkZWZhdWx0IHRvIHBvaW50ZXIpLgogICAgICAgICB2aWV3LT5zZXRDdXJzb3Io
cG9pbnRlckN1cnNvcigpKTsKLSAgICAKKyAgICB9CisKICAgICBpZiAoIWRyYWdIeXN0ZXJlc2lz
RXhjZWVkZWQoZXZlbnQuZXZlbnQoKS5wb3MoKSkpIAogICAgICAgICByZXR1cm4gdHJ1ZTsKICAg
ICAKSW5kZXg6IFdlYktpdC93aW4vQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC93aW4v
Q2hhbmdlTG9nCShyZXZpc2lvbiA1NDA3MSkKKysrIFdlYktpdC93aW4vQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMjkgQEAKKzIwMTAtMDEtMjkgIEJyaWFuIFdlaW5zdGVpbiAg
PGJ3ZWluc3RlaW5AYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIERyYWcgYW5kIERyb3A6IFdpbmRvd3MgdXNlcyAic3RvcCIgc2lnbiBh
cyBjdXJzb3Igd2hlbiBkcmFnZ2luZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MzQzMDUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc1ODk2NzI+Cisg
ICAgICAgIAorICAgICAgICBBZGQgYSBwcmVmZXJlbmNlIGluIFdlYktpdCAodGhhdCBkZWZhdWx0
cyB0byBmYWxzZSksIGZvciB3aGV0aGVyIG9yIG5vdAorICAgICAgICB3ZSBzaG91bGQgc2hvdyB0
aGUgY3VzdG9tIGN1cnNvcnMgZHVyaW5nIGRyYWcgYW5kIGRyb3AuIEhvd2V2ZXIsIHRoaXMgaXMK
KyAgICAgICAgY3VycmVudGx5IG9ubHkgdXNlZCBvbiBXaW5kb3dzLCBhbmQgb25seSB1c2VkIHRv
IGhpZGUgdGhlICJkcm9wIG5vdCBhbGxvd2VkIgorICAgICAgICBpY29uIGluc2lkZSB0aGUgV2Vi
VmlldyBpcyB0aGUgcHJlZmVyZW5jZSBpcyBzZXQgdG8gdHJ1ZS4KKworICAgICAgICBUaGlzIHdp
bGwgYmUgb2ZmIGJ5IGRlZmF1bHQsIHNvIG5vIGNoYW5nZSBpbiBiZWhhdmlvci4KKworICAgICAg
ICAqIEludGVyZmFjZXMvSVdlYlByZWZlcmVuY2VzUHJpdmF0ZS5pZGw6IEFkZGVkIG5ldyBmdW5j
dGlvbnMuCisgICAgICAgICogSW50ZXJmYWNlcy9XZWJLaXQuaWRsOiBUb3VjaGVkIHRvIGZvcmNl
IEludGVyZmFjZXMgYnVpbGQuCisgICAgICAgICogV2ViRHJvcFNvdXJjZS5jcHA6CisgICAgICAg
IChXZWJEcm9wU291cmNlOjpHaXZlRmVlZGJhY2spOiBJbXBsZW1lbnRhdGlvbiBvZiBjb25kaXRp
b25hbCBzaG93aW5nIGN1cnNvcgorICAgICAgICAgICAgbG9naWMuCisgICAgICAgICogV2ViUHJl
ZmVyZW5jZUtleXNQcml2YXRlLmg6IEFkZGVkIG5ldyBwcmVmZXJlbmNlIGtleS4KKyAgICAgICAg
KiBXZWJQcmVmZXJlbmNlcy5jcHA6IEFkZGVkIG5ldyBmdW5jdGlvbnMuCisgICAgICAgIChXZWJQ
cmVmZXJlbmNlczo6c2V0Q3VzdG9tRHJhZ0N1cnNvcnNFbmFibGVkKToKKyAgICAgICAgKFdlYlBy
ZWZlcmVuY2VzOjpjdXN0b21EcmFnQ3Vyc29yc0VuYWJsZWQpOgorICAgICAgICAqIFdlYlByZWZl
cmVuY2VzLmg6IEFkZGVkIG5ldyBmdW5jdGlvbnMuCisKIDIwMTAtMDEtMjcgIEFhcm9uIEJvb2Rt
YW4gIDxhYUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgRXhwYW5kIE5vdGlmaWNhdGlvbkNlbnRl
cjo6Y2hlY2tQZXJtaXNzaW9uKCkgaW50ZXJmYWNlLgpJbmRleDogV2ViS2l0L3dpbi9XZWJEcm9w
U291cmNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvd2luL1dlYkRyb3BTb3VyY2UuY3BwCShy
ZXZpc2lvbiA1Mzg2OSkKKysrIFdlYktpdC93aW4vV2ViRHJvcFNvdXJjZS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTI5LDkgKzI5LDExIEBACiAjaW5jbHVkZSAiV2ViS2l0RExMLmgiCiAjaW5jbHVk
ZSAiV2ViVmlldy5oIgogCisjaW5jbHVkZSA8V2ViQ29yZS9DdXJzb3IuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL0RyYWdBY3Rpb25zLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9FdmVudEhhbmRsZXIuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZVZpZXcu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3Jt
TW91c2VFdmVudC5oPgogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgpAQCAtMTEyLDcgKzEx
NCw0MyBAQCBTVERNRVRIT0RJTVAgV2ViRHJvcFNvdXJjZTo6UXVlcnlDb250aW51CiAgICAgcmV0
dXJuIFNfT0s7CiB9CiAKLVNURE1FVEhPRElNUCBXZWJEcm9wU291cmNlOjpHaXZlRmVlZGJhY2so
RFdPUkQpCitTVERNRVRIT0RJTVAgV2ViRHJvcFNvdXJjZTo6R2l2ZUZlZWRiYWNrKERXT1JEIGR3
RWZmZWN0KQogewotICAgIHJldHVybiBEUkFHRFJPUF9TX1VTRURFRkFVTFRDVVJTT1JTOworICAg
IEJPT0wgc2hvd0N1c3RvbUN1cnNvcnM7CisgICAgaWYgKEZBSUxFRChXZWJQcmVmZXJlbmNlczo6
c2hhcmVkU3RhbmRhcmRQcmVmZXJlbmNlcygpLT5jdXN0b21EcmFnQ3Vyc29yc0VuYWJsZWQoJnNo
b3dDdXN0b21DdXJzb3JzKSkpCisgICAgICAgIHJldHVybiBEUkFHRFJPUF9TX1VTRURFRkFVTFRD
VVJTT1JTOworCisgICAgLy8gSWYgd2UgZG9uJ3Qgd2FudCB0byBoaWRlIHRoZSBzdG9wIGljb24s
IGxldCBXaW5kb3dzIHNlbGVjdCB0aGUgY3Vyc29yLgorICAgIGlmICghc2hvd0N1c3RvbUN1cnNv
cnMpCisgICAgICAgIHJldHVybiBEUkFHRFJPUF9TX1VTRURFRkFVTFRDVVJTT1JTOworCisgICAg
Ly8gSWYgd2UgYXJlIGdvaW5nIHRvIHNob3cgc29tZXRoaW5nIG90aGVyIHRoYW4gdGhlIG5vdCBh
bGxvd2VkIGFycm93LCB0aGVuIGxldCBXaW5kb3dzCisgICAgLy8gc2hvdyB0aGUgY3Vyc29yLgor
ICAgIGlmIChkd0VmZmVjdCAhPSBEUk9QRUZGRUNUX05PTkUpCisgICAgICAgIHJldHVybiBEUkFH
RFJPUF9TX1VTRURFRkFVTFRDVVJTT1JTOworICAgIAorICAgIEhXTkQgdmlld1dpbmRvdzsKKyAg
ICBpZiAoRkFJTEVEKG1fd2ViVmlldy0+dmlld1dpbmRvdyhyZWludGVycHJldF9jYXN0PE9MRV9I
QU5ETEUqPigmdmlld1dpbmRvdykpKSkKKyAgICAgICAgcmV0dXJuIERSQUdEUk9QX1NfVVNFREVG
QVVMVENVUlNPUlM7CisKKyAgICBSRUNUIHdlYlZpZXdSZWN0OworICAgIEdldFdpbmRvd1JlY3Qo
dmlld1dpbmRvdywgJndlYlZpZXdSZWN0KTsKKworICAgIFBPSU5UIGN1cnNvclBvaW50OworICAg
IEdldEN1cnNvclBvcygmY3Vyc29yUG9pbnQpOworCisgICAgaWYgKCFJbnRSZWN0KHdlYlZpZXdS
ZWN0KS5jb250YWlucyhjdXJzb3JQb2ludCkpIHsKKyAgICAgICAgLy8gSWYgb3VyIGN1cnNvciBp
cyBvdXRzaWRlIHRoZSBib3VuZHMgb2YgdGhlIHdlYlZpZXcsIHdlIHdhbnQgdG8gbGV0IFdpbmRv
d3Mgc2VsZWN0IHRoZSBjdXJzb3IuCisgICAgICAgIHJldHVybiBEUkFHRFJPUF9TX1VTRURFRkFV
TFRDVVJTT1JTOworICAgIH0KKworICAgIEZyYW1lVmlldyogdmlldyA9IG1fd2ViVmlldy0+cGFn
ZSgpLT5tYWluRnJhbWUoKS0+dmlldygpOworICAgIGlmICghdmlldykKKyAgICAgICAgcmV0dXJu
IERSQUdEUk9QX1NfVVNFREVGQVVMVENVUlNPUlM7CisKKyAgICAvLyBXaGVuIGRyYWdnaW5nIGlu
c2lkZSBhIFdlYlZpZXcgYW5kIHRoZSBkcmFnIGlzIG5vdCBhbGxvd2VkLCBkb24ndCBzaG93IHRo
ZSBub3QgYWxsb3dlZCBpY29uLAorICAgIC8vIGluc3RlYWQsIHNob3cgdGhlIHBvaW50ZXIgY3Vy
c29yLiAgIAorICAgIC8vIEZJWE1FIDxyZGFyOi8vNzU3NzU5NT46IEN1c3RvbSBjdXJzb3JzIGFy
ZW4ndCBzdXBwb3J0ZWQgZHVyaW5nIGRyYWcgYW5kIGRyb3AgKGRlZmF1bHQgdG8gcG9pbnRlciku
CisgICAgdmlldy0+c2V0Q3Vyc29yKHBvaW50ZXJDdXJzb3IoKSk7IAorICAgIHJldHVybiBTX09L
OwogfQpJbmRleDogV2ViS2l0L3dpbi9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJLaXQvd2luL1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCShyZXZpc2lvbiA1
Mzg2OSkKKysrIFdlYktpdC93aW4vV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTEzMSwzICsxMzEsNSBAQAogI2RlZmluZSBXZWJLaXRQbHVnaW5BbGxvd2VkUnVu
VGltZVByZWZlcmVuY2VLZXkgIldlYktpdFBsdWdpbkFsbG93ZWRSdW5UaW1lIgogCiAjZGVmaW5l
IFdlYktpdEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkUHJlZmVyZW5jZUtleSAiV2ViS2l0
QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQiCisKKyNkZWZpbmUgV2ViS2l0Q3VzdG9tRHJh
Z0N1cnNvcnNFbmFibGVkUHJlZmVyZW5jZUtleSAiV2ViS2l0Q3VzdG9tRHJhZ0N1cnNvcnNFbmFi
bGVkIgpJbmRleDogV2ViS2l0L3dpbi9XZWJQcmVmZXJlbmNlcy5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViS2l0L3dpbi9XZWJQcmVmZXJlbmNlcy5jcHAJKHJldmlzaW9uIDUzODY5KQorKysgV2ViS2l0
L3dpbi9XZWJQcmVmZXJlbmNlcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEzNzQsNiArMTM3NCwx
OCBAQCBIUkVTVUxUIFdlYlByZWZlcmVuY2VzOjphY2NlbGVyYXRlZENvbXBvCiAgICAgcmV0dXJu
IFNfT0s7CiB9CiAKK0hSRVNVTFQgV2ViUHJlZmVyZW5jZXM6OnNldEN1c3RvbURyYWdDdXJzb3Jz
RW5hYmxlZChCT09MIGVuYWJsZWQpCit7CisgICAgc2V0Qm9vbFZhbHVlKENGU1RSKFdlYktpdEN1
c3RvbURyYWdDdXJzb3JzRW5hYmxlZFByZWZlcmVuY2VLZXkpLCBlbmFibGVkKTsKKyAgICByZXR1
cm4gU19PSzsKK30KKworSFJFU1VMVCBXZWJQcmVmZXJlbmNlczo6Y3VzdG9tRHJhZ0N1cnNvcnNF
bmFibGVkKEJPT0wqIGVuYWJsZWQpCit7CisgICAgKmVuYWJsZWQgPSBib29sVmFsdWVGb3JLZXko
Q0ZTVFIoV2ViS2l0Q3VzdG9tRHJhZ0N1cnNvcnNFbmFibGVkUHJlZmVyZW5jZUtleSkpOworICAg
IHJldHVybiBTX09LOworfQorCiB2b2lkIFdlYlByZWZlcmVuY2VzOjp3aWxsQWRkVG9XZWJWaWV3
KCkKIHsKICAgICArK21fbnVtV2ViVmlld3M7CkluZGV4OiBXZWJLaXQvd2luL1dlYlByZWZlcmVu
Y2VzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3dpbi9XZWJQcmVmZXJlbmNlcy5oCShyZXZpc2lv
biA1Mzg2OSkKKysrIFdlYktpdC93aW4vV2ViUHJlZmVyZW5jZXMuaAkod29ya2luZyBjb3B5KQpA
QCAtMzg3LDYgKzM4Nyw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9E
Q0FMTFRZUEUgc2V0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQoQk9PTCk7CiAgICAgdmly
dHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIGFjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFi
bGVkKEJPT0wqKTsKIAorICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBzZXRD
dXN0b21EcmFnQ3Vyc29yc0VuYWJsZWQoQk9PTCk7CisgICAgdmlydHVhbCBIUkVTVUxUIFNURE1F
VEhPRENBTExUWVBFIGN1c3RvbURyYWdDdXJzb3JzRW5hYmxlZChCT09MKik7CisKICAgICAvLyBX
ZWJQcmVmZXJlbmNlcwogCiAgICAgLy8gVGhpcyBtZXRob2QgYWNjZXNzZXMgYSBkaWZmZXJlbnQg
cHJlZmVyZW5jZSBrZXkgdGhhbiBkZXZlbG9wZXJFeHRyYXNFbmFibGVkLgpJbmRleDogV2ViS2l0
L3dpbi9JbnRlcmZhY2VzL0lXZWJQcmVmZXJlbmNlc1ByaXZhdGUuaWRsCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYktpdC93aW4vSW50ZXJmYWNlcy9JV2ViUHJlZmVyZW5jZXNQcml2YXRlLmlkbAkocmV2aXNp
b24gNTM4NjkpCisrKyBXZWJLaXQvd2luL0ludGVyZmFjZXMvSVdlYlByZWZlcmVuY2VzUHJpdmF0
ZS5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTk0LDQgKzk0LDcgQEAgaW50ZXJmYWNlIElXZWJQcmVm
ZXJlbmNlc1ByaXZhdGUgOiBJVW5rbgogCiAgICAgSFJFU1VMVCBzZXRBY2NlbGVyYXRlZENvbXBv
c2l0aW5nRW5hYmxlZChbaW5dIEJPT0wpOwogICAgIEhSRVNVTFQgYWNjZWxlcmF0ZWRDb21wb3Np
dGluZ0VuYWJsZWQoW291dCwgcmV0dmFsXSBCT09MKik7CisKKyAgICBIUkVTVUxUIHNldEN1c3Rv
bURyYWdDdXJzb3JzRW5hYmxlZChbaW5dIEJPT0wpOworICAgIEhSRVNVTFQgY3VzdG9tRHJhZ0N1
cnNvcnNFbmFibGVkKFtvdXQsIHJldHZhbF0gQk9PTCopOwogfQpJbmRleDogV2ViS2l0L3dpbi9J
bnRlcmZhY2VzL1dlYktpdC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3dpbi9JbnRlcmZhY2Vz
L1dlYktpdC5pZGwJKHJldmlzaW9uIDUzODY5KQorKysgV2ViS2l0L3dpbi9JbnRlcmZhY2VzL1dl
YktpdC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTI5MywzICsyOTMsNCBAQCBsaWJyYXJ5IFdlYktp
dAogICAgICAgICBbZGVmYXVsdF0gaW50ZXJmYWNlIElXZWJHZW9sb2NhdGlvblBvc2l0aW9uOwog
ICAgIH0KIH0KKwo=
</data>
<flag name="review"
          id="30272"
          type_id="1"
          status="+"
          setter="aroben"
    />
          </attachment>
      

    </bug>

</bugzilla>