<?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>66094</bug_id>
          
          <creation_ts>2011-08-11 13:55:29 -0700</creation_ts>
          <short_desc>[chromium] Expose &quot;min/max scroll size&quot;, &quot;has horizontal/vertical scrollbar&quot;, &quot;number of wheel handlers&quot; to clients</short_desc>
          <delta_ts>2011-08-11 17:19:18 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Nico Weber">thakis</reporter>
          <assigned_to name="Nico Weber">thakis</assigned_to>
          <cc>fishd</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>450015</commentid>
    <comment_count>0</comment_count>
    <who name="Nico Weber">thakis</who>
    <bug_when>2011-08-11 13:55:29 -0700</bug_when>
    <thetext>[chromium] Expose &quot;is pinned to left/right&quot;, &quot;has horizontal/vertical scrollbar&quot;, &quot;number of wheel handlers&quot; to clients</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>450017</commentid>
    <comment_count>1</comment_count>
      <attachid>103665</attachid>
    <who name="Nico Weber">thakis</who>
    <bug_when>2011-08-11 13:59:22 -0700</bug_when>
    <thetext>Created attachment 103665
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>450041</commentid>
    <comment_count>2</comment_count>
      <attachid>103665</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2011-08-11 14:37:54 -0700</bug_when>
    <thetext>Comment on attachment 103665
Patch

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

&gt; Source/WebKit/chromium/public/WebFrame.h:169
&gt; +    // Returns true if the frme is scrolled all the way to the right or left.

nit: frme -&gt; frame

&gt; Source/WebKit/chromium/public/WebFrame.h:170
&gt; +    virtual bool isPinnedToLeft() const = 0;

nit: these function names should be spell out more.  the names don&apos;t suggest anything having to do with scrolling.  they should as WebFrame is a big interface.

also, do we have to worry about how these are interpreted for RTL versus LTR?

&gt; Source/WebKit/chromium/public/WebFrame.h:171
&gt; +    virtual bool isPinnedToRight() const = 0;

nit: please preserve the two new lines between sections formatting

&gt; Source/WebKit/chromium/public/WebViewClient.h:252
&gt; +    virtual void numWheelEventHandlersChanged(unsigned) { }

nit: we usually do not use abbreviations like &quot;num&quot;

numberOfWheelEventHandlersChanged would be better, e.g.:

public&gt; grep numberOf *.h
WebAnimationController.h:    virtual unsigned numberOfActiveAnimations() const = 0;
WebAudioBus.h:    WEBKIT_EXPORT void initialize(unsigned numberOfChannels, size_t length, double sampleRate);
WebAudioBus.h:    WEBKIT_EXPORT unsigned numberOfChannels() const;
WebAudioDevice.h:        virtual void render(const WebVector&lt;float*&gt;&amp; audioData, size_t numberOfFrames) = 0;
WebGeolocationClientMock.h:    WEBKIT_EXPORT int numberOfPendingPermissionRequests() const;
WebKitClient.h:    virtual WebAudioDevice* createAudioDevice(size_t bufferSize, unsigned numberOfChannels, double sampleRate, WebAudioDevice::RenderCallback*) { return 0; }

Using &quot;Count&quot; as a suffix is also very common, so you might consider:

wheelEventHandlersCountChanged

My vote is for the numberOf variant.

&gt; Source/WebKit/chromium/public/WebViewClient.h:253
&gt;  

nit: please preserve the two new lines between sections formatting

&gt; Source/WebKit/chromium/src/WebFrameImpl.cpp:598
&gt; +    IntPoint minimumScrollPosition = m_frame-&gt;view()-&gt;minimumScrollPosition();

perhaps it would be better to just reveal the minimum and maximum scroll positions?
we already expose WebFrame::scrollOffset().  we often just expose the primitives
that WebCore gives us since they allow for greater flexibility.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>450052</commentid>
    <comment_count>3</comment_count>
      <attachid>103665</attachid>
    <who name="Nico Weber">thakis</who>
    <bug_when>2011-08-11 14:52:16 -0700</bug_when>
    <thetext>Comment on attachment 103665
Patch

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

&gt;&gt; Source/WebKit/chromium/public/WebFrame.h:169
&gt;&gt; +    // Returns true if the frme is scrolled all the way to the right or left.
&gt; 
&gt; nit: frme -&gt; frame

Done

&gt;&gt; Source/WebKit/chromium/public/WebFrame.h:170
&gt;&gt; +    virtual bool isPinnedToLeft() const = 0;
&gt; 
&gt; nit: these function names should be spell out more.  the names don&apos;t suggest anything having to do with scrolling.  they should as WebFrame is a big interface.
&gt; 
&gt; also, do we have to worry about how these are interpreted for RTL versus LTR?

RTL should be fine (chrome/mac UI doesn&apos;t do RTL yet since the OS didn&apos;t support that pre 10.7, and WK2 has some reassuring comment about RTL wrt these functions somewhere)

&gt;&gt; Source/WebKit/chromium/public/WebFrame.h:171
&gt;&gt; +    virtual bool isPinnedToRight() const = 0;
&gt; 
&gt; nit: please preserve the two new lines between sections formatting

Done

&gt;&gt; Source/WebKit/chromium/public/WebViewClient.h:252
&gt;&gt; +    virtual void numWheelEventHandlersChanged(unsigned) { }
&gt; 
&gt; nit: we usually do not use abbreviations like &quot;num&quot;
&gt; 
&gt; numberOfWheelEventHandlersChanged would be better, e.g.:
&gt; 
&gt; public&gt; grep numberOf *.h
&gt; WebAnimationController.h:    virtual unsigned numberOfActiveAnimations() const = 0;
&gt; WebAudioBus.h:    WEBKIT_EXPORT void initialize(unsigned numberOfChannels, size_t length, double sampleRate);
&gt; WebAudioBus.h:    WEBKIT_EXPORT unsigned numberOfChannels() const;
&gt; WebAudioDevice.h:        virtual void render(const WebVector&lt;float*&gt;&amp; audioData, size_t numberOfFrames) = 0;
&gt; WebGeolocationClientMock.h:    WEBKIT_EXPORT int numberOfPendingPermissionRequests() const;
&gt; WebKitClient.h:    virtual WebAudioDevice* createAudioDevice(size_t bufferSize, unsigned numberOfChannels, double sampleRate, WebAudioDevice::RenderCallback*) { return 0; }
&gt; 
&gt; Using &quot;Count&quot; as a suffix is also very common, so you might consider:
&gt; 
&gt; wheelEventHandlersCountChanged
&gt; 
&gt; My vote is for the numberOf variant.

It&apos;s called numWheelEventHandlersChanged() in ChromeClient. Since this is just the forwarded version of that, I figured it should have the same name.

&gt;&gt; Source/WebKit/chromium/src/WebFrameImpl.cpp:598
&gt;&gt; +    IntPoint minimumScrollPosition = m_frame-&gt;view()-&gt;minimumScrollPosition();
&gt; 
&gt; perhaps it would be better to just reveal the minimum and maximum scroll positions?
&gt; we already expose WebFrame::scrollOffset().  we often just expose the primitives
&gt; that WebCore gives us since they allow for greater flexibility.

a) That produces more IPC traffic than necessary if a page&apos;s js makes a page wider and scrolls to the right. That doesn&apos;t change the pinned state, but both scroll pos and max scroll pos
b) This matches WK2, which is nice in a way</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>450055</commentid>
    <comment_count>4</comment_count>
      <attachid>103678</attachid>
    <who name="Nico Weber">thakis</who>
    <bug_when>2011-08-11 14:53:31 -0700</bug_when>
    <thetext>Created attachment 103678
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>450067</commentid>
    <comment_count>5</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2011-08-11 15:04:04 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; &gt; also, do we have to worry about how these are interpreted for RTL versus LTR?
&gt; 
&gt; RTL should be fine (chrome/mac UI doesn&apos;t do RTL yet since the OS didn&apos;t support that pre 10.7, and WK2 has some reassuring comment about RTL wrt these functions somewhere)

OK

&gt; &gt;&gt; Source/WebKit/chromium/public/WebViewClient.h:252
&gt; &gt;&gt; +    virtual void numWheelEventHandlersChanged(unsigned) { }
&gt; &gt; 
&gt; &gt; nit: we usually do not use abbreviations like &quot;num&quot;
&gt; &gt; 
&gt; &gt; numberOfWheelEventHandlersChanged would be better, e.g.:
...
&gt; It&apos;s called numWheelEventHandlersChanged() in ChromeClient. Since this is just the forwarded version of that, I figured it should have the same name.

That&apos;s not a good reason.  The ChromeClient name is probably wrong too.  We can at least try to make the WebKit API consistent.


&gt; &gt;&gt; Source/WebKit/chromium/src/WebFrameImpl.cpp:598
&gt; &gt;&gt; +    IntPoint minimumScrollPosition = m_frame-&gt;view()-&gt;minimumScrollPosition();
&gt; &gt; 
&gt; &gt; perhaps it would be better to just reveal the minimum and maximum scroll positions?
&gt; &gt; we already expose WebFrame::scrollOffset().  we often just expose the primitives
&gt; &gt; that WebCore gives us since they allow for greater flexibility.
&gt; 
&gt; a) That produces more IPC traffic than necessary if a page&apos;s js makes a page wider and scrolls to the right. That doesn&apos;t change the pinned state, but both scroll pos and max scroll pos

I don&apos;t understand.  I was suggesting that you move the code you are adding here to the Chrome renderer process.  You can compute whether you are pinned to the left or the right if you had access to the minimum and maximum scroll offsets.  Obviously, this is true since you have shown how to do it in WebFrameImpl.cpp.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>450068</commentid>
    <comment_count>6</comment_count>
      <attachid>103678</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2011-08-11 15:04:40 -0700</bug_when>
    <thetext>Comment on attachment 103678
Patch

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

&gt; Source/WebKit/chromium/public/WebFrame.h:170
&gt; +    virtual bool isScrollPositionPinnedToLeft() const = 0;

nit: we use the term &quot;scroll offset&quot; not &quot;scroll position&quot; in the WebKit API.  See WebFrame::scrollOffset.  Please do not add additional names for the same thing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>450088</commentid>
    <comment_count>7</comment_count>
    <who name="Nico Weber">thakis</who>
    <bug_when>2011-08-11 15:29:56 -0700</bug_when>
    <thetext>&gt; &gt; It&apos;s called numWheelEventHandlersChanged() in ChromeClient. Since this is just the forwarded version of that, I figured it should have the same name.
&gt; 
&gt; That&apos;s not a good reason.  The ChromeClient name is probably wrong too.  We can at least try to make the WebKit API consistent.

Done.

&gt; &gt; a) That produces more IPC traffic than necessary if a page&apos;s js makes a page wider and scrolls to the right. That doesn&apos;t change the pinned state, but both scroll pos and max scroll pos
&gt; 
&gt; I don&apos;t understand.  I was suggesting that you move the code you are adding here to the Chrome renderer process.  You can compute whether you are pinned to the left or the right if you had access to the minimum and maximum scroll offsets.  Obviously, this is true since you have shown how to do it in WebFrameImpl.cpp.

Ah, that makes a lot of sense! Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>450090</commentid>
    <comment_count>8</comment_count>
      <attachid>103685</attachid>
    <who name="Nico Weber">thakis</who>
    <bug_when>2011-08-11 15:31:23 -0700</bug_when>
    <thetext>Created attachment 103685
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>450127</commentid>
    <comment_count>9</comment_count>
      <attachid>103685</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-08-11 16:16:15 -0700</bug_when>
    <thetext>Comment on attachment 103685
Patch

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

&gt; Source/WebKit/chromium/src/ChromeClientImpl.cpp:971
&gt; +void ChromeClientImpl::numWheelEventHandlersChanged(unsigned numWheelHandlers)

we don&apos;t abbreviate - this should be &apos;numberOfWheelHandlers&apos;

&gt; Source/WebKit/chromium/src/ChromeClientImpl.h:202
&gt; +    virtual void numWheelEventHandlersChanged(unsigned);

this function seems badly named, shouldn&apos;t it be &apos;numberOfWheelHandlersChanged&apos;?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>450130</commentid>
    <comment_count>10</comment_count>
    <who name="Nico Weber">thakis</who>
    <bug_when>2011-08-11 16:18:28 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; (From update of attachment 103685 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=103685&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/chromium/src/ChromeClientImpl.cpp:971
&gt; &gt; +void ChromeClientImpl::numWheelEventHandlersChanged(unsigned numWheelHandlers)
&gt; 
&gt; we don&apos;t abbreviate - this should be &apos;numberOfWheelHandlers&apos;
&gt; 
&gt; &gt; Source/WebKit/chromium/src/ChromeClientImpl.h:202
&gt; &gt; +    virtual void numWheelEventHandlersChanged(unsigned);
&gt; 
&gt; this function seems badly named, shouldn&apos;t it be &apos;numberOfWheelHandlersChanged&apos;?

This overrides a function. If I rename it here, it won&apos;t override the parent method any longer, and my code will be buggy. (And renaming the parent function too means I&apos;ll break 2 ports where I forget to rename their override). I did rename the variable name though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>450132</commentid>
    <comment_count>11</comment_count>
      <attachid>103697</attachid>
    <who name="Nico Weber">thakis</who>
    <bug_when>2011-08-11 16:18:51 -0700</bug_when>
    <thetext>Created attachment 103697
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>450141</commentid>
    <comment_count>12</comment_count>
      <attachid>103701</attachid>
    <who name="Nico Weber">thakis</who>
    <bug_when>2011-08-11 16:31:57 -0700</bug_when>
    <thetext>Created attachment 103701
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>450177</commentid>
    <comment_count>13</comment_count>
      <attachid>103701</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-08-11 17:19:13 -0700</bug_when>
    <thetext>Comment on attachment 103701
Patch

Clearing flags on attachment: 103701

Committed r92893: &lt;http://trac.webkit.org/changeset/92893&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>450178</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-08-11 17:19:18 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>103665</attachid>
            <date>2011-08-11 13:59:22 -0700</date>
            <delta_ts>2011-08-11 14:53:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-66094-20110811135921.patch</filename>
            <type>text/plain</type>
            <size>6833</size>
            <attacher name="Nico Weber">thakis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTI4NDYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXgg
NDNkNDI1MDBmZjc3NDk0MGM2YmFhNjgwZjQzMTZjNDA5YTM5N2MyOS4uODNhNzkzZTA3NjQwNWQ2
YWQ2NjYzM2JlYTBkMmQ0NjU1MzU1MTY3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwzNCBAQAorMjAxMS0wOC0xMSAgTmljbyBXZWJlciAgPHRoYWtpc0BjaHJvbWl1bS5v
cmc+CisKKyAgICAgICAgW2Nocm9taXVtXSBFeHBvc2UgImlzIHBpbm5lZCB0byBsZWZ0L3JpZ2h0
IiwgImhhcyBob3Jpem9udGFsL3ZlcnRpY2FsIHNjcm9sbGJhciIsICJudW1iZXIgb2Ygd2hlZWwg
aGFuZGxlcnMiIHRvIGNsaWVudHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTY2MDk0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgV2Ugd2FudCB0byBpbXBsZW1lbnQgdHdvLWZpbmdlci1zd2lwZSBmb3IgaGlz
dG9yeSBsaWtlIHNhZmFyaSBkb2VzIG9uCisgICAgICAgIG9zIHggbGlvbi4gVGhlIHdheSB0aGlz
IHdvcmtzIGlzOgorICAgICAgICAqIElmIGEgcGFnZSBoYXMgbm8gaG9yaXpvbnRhbCBzY3JvbGxi
YXJzLCBvciB0aGUgcGFnZSBpcyBhbGwgdGhlIHdheQorICAgICAgICAgIHRvIHRoZSBsZWZ0LCBz
Y3JvbGxpbmcgdG8gdGhlIGxlZnQgd2lsbCBnbyBiYWNrIGluIGhpc3RvcnkgaW5zdGVhZC4KKyAg
ICAgICAgKiBTYW1lIGZvciByaWdodC9mb3J3YXJkLgorCisgICAgICAgIFRoaXMgaXMgbW9kZWxs
ZWQgYWZ0ZXIgdGhlIFdlYktpdDIgZnVuY3Rpb25zCisgICAgICAgIFdLUGFnZUlzUGlubmVkVG9M
ZWZ0U2lkZSgpLCBXS1BhZ2VJc1Bpbm5lZFRvUmlnaHRTaWRlKCksCisgICAgICAgIFdLUGFnZUhh
c0hvcml6b250YWxTY3JvbGxiYXIoKSwgYW5kCisgICAgICAgIHdlYlBhZ2VQcm94eTo6d2lsbEhh
bmRsZUhvcml6b250YWxTY3JvbGxFdmVudHMoKS4KKworICAgICAgICAqIHB1YmxpYy9XZWJGcmFt
ZS5oOgorICAgICAgICAqIHB1YmxpYy9XZWJWaWV3Q2xpZW50Lmg6CisgICAgICAgIChXZWJLaXQ6
OldlYlZpZXdDbGllbnQ6Om51bVdoZWVsRXZlbnRIYW5kbGVyc0NoYW5nZWQpOgorICAgICAgICAq
IHNyYy9DaHJvbWVDbGllbnRJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50
SW1wbDo6bnVtV2hlZWxFdmVudEhhbmRsZXJzQ2hhbmdlZCk6CisgICAgICAgICogc3JjL0Nocm9t
ZUNsaWVudEltcGwuaDoKKyAgICAgICAgKiBzcmMvV2ViRnJhbWVJbXBsLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViRnJhbWVJbXBsOjpoYXNIb3Jpem9udGFsU2Nyb2xsYmFyKToKKyAgICAgICAg
KFdlYktpdDo6V2ViRnJhbWVJbXBsOjpoYXNWZXJ0aWNhbFNjcm9sbGJhcik6CisgICAgICAgIChX
ZWJLaXQ6OldlYkZyYW1lSW1wbDo6aXNQaW5uZWRUb0xlZnQpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJGcmFtZUltcGw6OmlzUGlubmVkVG9SaWdodCk6CisgICAgICAgICogc3JjL1dlYkZyYW1lSW1w
bC5oOgorCiAyMDExLTA4LTEwICBKb2huIEFiZC1FbC1NYWxlayAgPGphbUBjaHJvbWl1bS5vcmc+
CiAKICAgICAgICAgW2Nocm9taXVtXSBVcGRhdGUgV2ViU2Nyb2xsYmFyIHNvIHRoYXQgaXQgd29y
a3Mgd2l0aCBvdmVybGF5IHNjcm9sbGJhcnMgb24gTGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViRnJhbWUuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
cHVibGljL1dlYkZyYW1lLmgKaW5kZXggNzYyYzMzNTc5NzI2Zjk4YjdkODA4MjM5MGVhYTRmOGMw
NGM4NWJmZS4uNTkzYmRjNjU1YjFhMWRhMTEyZDRkYjdkNzk0ZjNkNDQ5NTEwOTVmZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViRnJhbWUuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJGcmFtZS5oCkBAIC0xNjMsNiArMTYzLDEyIEBA
IHB1YmxpYzoKICAgICAvLyBSZXR1cm5zIHRydWUgaWYgdGhlIGNvbnRlbnRzIChtaW51cyBzY3Jv
bGxiYXJzKSBoYXMgbm9uLXplcm8gYXJlYS4KICAgICB2aXJ0dWFsIGJvb2wgaGFzVmlzaWJsZUNv
bnRlbnQoKSBjb25zdCA9IDA7CiAKKyAgICB2aXJ0dWFsIGJvb2wgaGFzSG9yaXpvbnRhbFNjcm9s
bGJhcigpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgaGFzVmVydGljYWxTY3JvbGxiYXIo
KSBjb25zdCA9IDA7CisKKyAgICAvLyBSZXR1cm5zIHRydWUgaWYgdGhlIGZybWUgaXMgc2Nyb2xs
ZWQgYWxsIHRoZSB3YXkgdG8gdGhlIHJpZ2h0IG9yIGxlZnQuCisgICAgdmlydHVhbCBib29sIGlz
UGlubmVkVG9MZWZ0KCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgYm9vbCBpc1Bpbm5lZFRvUmln
aHQoKSBjb25zdCA9IDA7CiAKICAgICAvLyBIaWVyYXJjaHkgLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3Q2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3Q2xpZW50LmgKaW5kZXggODk5ODZiMmY3ODlkM2Y0MWU3
NjZlMGRmOGViMTRiZDBhMTRlMDFhZC4uY2EyNDkwOTZmZWYwY2NiOTc5MWViZTBiZGZmOGViNmIy
NDg0Mzc0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmll
d0NsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXdDbGll
bnQuaApAQCAtMjQ3LDYgKzI0Nyw5IEBAIHB1YmxpYzoKICAgICAvLyBDYWxsZWQgd2hlbiBhIG5l
dyBub2RlIGdldHMgZm9jdXNlZC4KICAgICB2aXJ0dWFsIHZvaWQgZm9jdXNlZE5vZGVDaGFuZ2Vk
KGNvbnN0IFdlYk5vZGUmKSB7IH0KIAorICAgIC8vIFRoaXMgYWdncmVnYXRlZCBjb3VudCBvZiB3
aGVlbCBoYW5kbGVycyBvbmx5IGluY2x1ZGVzIGhvcml6b250YWwKKyAgICAvLyBzY3JvbGxiYXJz
IGFuZCBKUyB3aGVlbCBldmVudCBoYW5kbGVycy4KKyAgICB2aXJ0dWFsIHZvaWQgbnVtV2hlZWxF
dmVudEhhbmRsZXJzQ2hhbmdlZCh1bnNpZ25lZCkgeyB9CiAKICAgICAvLyBTZXNzaW9uIGhpc3Rv
cnkgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1w
bC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcApp
bmRleCBhM2U5YjBmZDkzYmI4YzBlNjM2YTliNmIzMWEzYjE1YTY3ODVjZjhmLi45M2Y1M2UyODE5
ZmZhYWQxZDRhNjZmZjg4NGQ1YTkzNGQ3NzdmYTljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcApAQCAtOTY4LDQgKzk2OCwxMCBAQCBib29s
IENocm9tZUNsaWVudEltcGw6OnNob3VsZFJ1bk1vZGFsRGlhbG9nRHVyaW5nUGFnZURpc21pc3Nh
bChjb25zdCBEaWFsb2dUeXBlJgogICAgIHJldHVybiBmYWxzZTsKIH0KIAordm9pZCBDaHJvbWVD
bGllbnRJbXBsOjpudW1XaGVlbEV2ZW50SGFuZGxlcnNDaGFuZ2VkKHVuc2lnbmVkIG51bVdoZWVs
SGFuZGxlcnMpCit7CisgICAgaWYgKG1fd2ViVmlldy0+Y2xpZW50KCkpCisgICAgICAgIG1fd2Vi
Vmlldy0+Y2xpZW50KCktPm51bVdoZWVsRXZlbnRIYW5kbGVyc0NoYW5nZWQobnVtV2hlZWxIYW5k
bGVycyk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5oCmluZGV4IDUyMzRlNDM2Nzk0NTA1ZmYxZWY5NDIz
ZjUyNjA3MTVkODk3MmYyMTkuLjcxMTFjNGY1ZjhhNDgwMDMyOGVjMWU2MTE1NWY1YjQ4ODc3N2I3
OTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudElt
cGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmgK
QEAgLTE5OSw3ICsxOTksNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIHNob3VsZFJ1bk1v
ZGFsRGlhbG9nRHVyaW5nUGFnZURpc21pc3NhbChjb25zdCBEaWFsb2dUeXBlJiwgY29uc3QgU3Ry
aW5nJiBkaWFsb2dNZXNzYWdlLCBXZWJDb3JlOjpGcmFtZUxvYWRlcjo6UGFnZURpc21pc3NhbFR5
cGUpIGNvbnN0OwogCiAgICAgdmlydHVhbCBib29sIHNob3VsZFJ1YmJlckJhbmRJbkRpcmVjdGlv
bihXZWJDb3JlOjpTY3JvbGxEaXJlY3Rpb24pIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KLSAgICB2
aXJ0dWFsIHZvaWQgbnVtV2hlZWxFdmVudEhhbmRsZXJzQ2hhbmdlZCh1bnNpZ25lZCkgeyB9Cisg
ICAgdmlydHVhbCB2b2lkIG51bVdoZWVsRXZlbnRIYW5kbGVyc0NoYW5nZWQodW5zaWduZWQpOwog
CiBwcml2YXRlOgogICAgIHZvaWQgZ2V0UG9wdXBNZW51SW5mbyhXZWJDb3JlOjpQb3B1cENvbnRh
aW5lciosIFdlYlBvcHVwTWVudUluZm8qKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYkZyYW1lSW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJGcmFtZUltcGwuY3BwCmluZGV4IDQ0OGY0OWFiNTlmYmE1ZWFmZGNjNDcxMDlmYzY0ZGQ1YWRj
MTA0NmEuLmVhMDUzNzg3Njg4YTAzMGZjODdhM2FiOWQyODIwMTZiNmZlZjBjOTYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmNwcApAQCAtNTgyLDYgKzU4Miwz
MCBAQCBib29sIFdlYkZyYW1lSW1wbDo6aGFzVmlzaWJsZUNvbnRlbnQoKSBjb25zdAogICAgIHJl
dHVybiBmcmFtZSgpLT52aWV3KCktPnZpc2libGVXaWR0aCgpID4gMCAmJiBmcmFtZSgpLT52aWV3
KCktPnZpc2libGVIZWlnaHQoKSA+IDA7CiB9CiAKK2Jvb2wgV2ViRnJhbWVJbXBsOjpoYXNIb3Jp
em9udGFsU2Nyb2xsYmFyKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9mcmFtZSAmJiBtX2ZyYW1l
LT52aWV3KCkgJiYgbV9mcmFtZS0+dmlldygpLT5ob3Jpem9udGFsU2Nyb2xsYmFyKCk7Cit9CisK
K2Jvb2wgV2ViRnJhbWVJbXBsOjpoYXNWZXJ0aWNhbFNjcm9sbGJhcigpIGNvbnN0Cit7CisgICAg
cmV0dXJuIG1fZnJhbWUgJiYgbV9mcmFtZS0+dmlldygpICYmIG1fZnJhbWUtPnZpZXcoKS0+dmVy
dGljYWxTY3JvbGxiYXIoKTsKK30KKworYm9vbCBXZWJGcmFtZUltcGw6OmlzUGlubmVkVG9MZWZ0
KCkgY29uc3QKK3sKKyAgICBJbnRQb2ludCBzY3JvbGxQb3NpdGlvbiA9IG1fZnJhbWUtPnZpZXco
KS0+c2Nyb2xsUG9zaXRpb24oKTsKKyAgICBJbnRQb2ludCBtaW5pbXVtU2Nyb2xsUG9zaXRpb24g
PSBtX2ZyYW1lLT52aWV3KCktPm1pbmltdW1TY3JvbGxQb3NpdGlvbigpOworICAgIHJldHVybiBz
Y3JvbGxQb3NpdGlvbi54KCkgPD0gbWluaW11bVNjcm9sbFBvc2l0aW9uLngoKTsKK30KKworYm9v
bCBXZWJGcmFtZUltcGw6OmlzUGlubmVkVG9SaWdodCgpIGNvbnN0Cit7CisgICAgSW50UG9pbnQg
c2Nyb2xsUG9zaXRpb24gPSBtX2ZyYW1lLT52aWV3KCktPnNjcm9sbFBvc2l0aW9uKCk7CisgICAg
SW50UG9pbnQgbWF4aW11bVNjcm9sbFBvc2l0aW9uID0gbV9mcmFtZS0+dmlldygpLT5tYXhpbXVt
U2Nyb2xsUG9zaXRpb24oKTsKKyAgICByZXR1cm4gc2Nyb2xsUG9zaXRpb24ueCgpID49IG1heGlt
dW1TY3JvbGxQb3NpdGlvbi54KCk7Cit9CisKIFdlYlZpZXcqIFdlYkZyYW1lSW1wbDo6dmlldygp
IGNvbnN0CiB7CiAgICAgcmV0dXJuIHZpZXdJbXBsKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYkZyYW1lSW1wbC5oCmluZGV4IDFmMGI0YWE2YmI4YjBkNTZjZDE5OGExNmUzZGFiOTUx
ZWIzYjMyYmUuLjMyYzY5MmFjMjhhMmViOGQ5YTY4ODlkMDFmMzFlZmNlOGUwMTc5NzcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5oCkBAIC03Niw2ICs3NiwxMCBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCBpbnQgY29udGVudHNQcmVmZXJyZWRXaWR0aCgpIGNvbnN0
OwogICAgIHZpcnR1YWwgaW50IGRvY3VtZW50RWxlbWVudFNjcm9sbEhlaWdodCgpIGNvbnN0Owog
ICAgIHZpcnR1YWwgYm9vbCBoYXNWaXNpYmxlQ29udGVudCgpIGNvbnN0OworICAgIHZpcnR1YWwg
Ym9vbCBoYXNIb3Jpem9udGFsU2Nyb2xsYmFyKCkgY29uc3Q7CisgICAgdmlydHVhbCBib29sIGhh
c1ZlcnRpY2FsU2Nyb2xsYmFyKCkgY29uc3Q7CisgICAgdmlydHVhbCBib29sIGlzUGlubmVkVG9M
ZWZ0KCkgY29uc3Q7CisgICAgdmlydHVhbCBib29sIGlzUGlubmVkVG9SaWdodCgpIGNvbnN0Owog
ICAgIHZpcnR1YWwgV2ViVmlldyogdmlldygpIGNvbnN0OwogICAgIHZpcnR1YWwgV2ViRnJhbWUq
IG9wZW5lcigpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCBjbGVhck9wZW5lcigpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>103678</attachid>
            <date>2011-08-11 14:53:31 -0700</date>
            <delta_ts>2011-08-11 15:31:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-66094-20110811145330.patch</filename>
            <type>text/plain</type>
            <size>6920</size>
            <attacher name="Nico Weber">thakis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTI4NDYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXgg
NDNkNDI1MDBmZjc3NDk0MGM2YmFhNjgwZjQzMTZjNDA5YTM5N2MyOS4uODNhNzkzZTA3NjQwNWQ2
YWQ2NjYzM2JlYTBkMmQ0NjU1MzU1MTY3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwzNCBAQAorMjAxMS0wOC0xMSAgTmljbyBXZWJlciAgPHRoYWtpc0BjaHJvbWl1bS5v
cmc+CisKKyAgICAgICAgW2Nocm9taXVtXSBFeHBvc2UgImlzIHBpbm5lZCB0byBsZWZ0L3JpZ2h0
IiwgImhhcyBob3Jpem9udGFsL3ZlcnRpY2FsIHNjcm9sbGJhciIsICJudW1iZXIgb2Ygd2hlZWwg
aGFuZGxlcnMiIHRvIGNsaWVudHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTY2MDk0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgV2Ugd2FudCB0byBpbXBsZW1lbnQgdHdvLWZpbmdlci1zd2lwZSBmb3IgaGlz
dG9yeSBsaWtlIHNhZmFyaSBkb2VzIG9uCisgICAgICAgIG9zIHggbGlvbi4gVGhlIHdheSB0aGlz
IHdvcmtzIGlzOgorICAgICAgICAqIElmIGEgcGFnZSBoYXMgbm8gaG9yaXpvbnRhbCBzY3JvbGxi
YXJzLCBvciB0aGUgcGFnZSBpcyBhbGwgdGhlIHdheQorICAgICAgICAgIHRvIHRoZSBsZWZ0LCBz
Y3JvbGxpbmcgdG8gdGhlIGxlZnQgd2lsbCBnbyBiYWNrIGluIGhpc3RvcnkgaW5zdGVhZC4KKyAg
ICAgICAgKiBTYW1lIGZvciByaWdodC9mb3J3YXJkLgorCisgICAgICAgIFRoaXMgaXMgbW9kZWxs
ZWQgYWZ0ZXIgdGhlIFdlYktpdDIgZnVuY3Rpb25zCisgICAgICAgIFdLUGFnZUlzUGlubmVkVG9M
ZWZ0U2lkZSgpLCBXS1BhZ2VJc1Bpbm5lZFRvUmlnaHRTaWRlKCksCisgICAgICAgIFdLUGFnZUhh
c0hvcml6b250YWxTY3JvbGxiYXIoKSwgYW5kCisgICAgICAgIHdlYlBhZ2VQcm94eTo6d2lsbEhh
bmRsZUhvcml6b250YWxTY3JvbGxFdmVudHMoKS4KKworICAgICAgICAqIHB1YmxpYy9XZWJGcmFt
ZS5oOgorICAgICAgICAqIHB1YmxpYy9XZWJWaWV3Q2xpZW50Lmg6CisgICAgICAgIChXZWJLaXQ6
OldlYlZpZXdDbGllbnQ6Om51bVdoZWVsRXZlbnRIYW5kbGVyc0NoYW5nZWQpOgorICAgICAgICAq
IHNyYy9DaHJvbWVDbGllbnRJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50
SW1wbDo6bnVtV2hlZWxFdmVudEhhbmRsZXJzQ2hhbmdlZCk6CisgICAgICAgICogc3JjL0Nocm9t
ZUNsaWVudEltcGwuaDoKKyAgICAgICAgKiBzcmMvV2ViRnJhbWVJbXBsLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViRnJhbWVJbXBsOjpoYXNIb3Jpem9udGFsU2Nyb2xsYmFyKToKKyAgICAgICAg
KFdlYktpdDo6V2ViRnJhbWVJbXBsOjpoYXNWZXJ0aWNhbFNjcm9sbGJhcik6CisgICAgICAgIChX
ZWJLaXQ6OldlYkZyYW1lSW1wbDo6aXNQaW5uZWRUb0xlZnQpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJGcmFtZUltcGw6OmlzUGlubmVkVG9SaWdodCk6CisgICAgICAgICogc3JjL1dlYkZyYW1lSW1w
bC5oOgorCiAyMDExLTA4LTEwICBKb2huIEFiZC1FbC1NYWxlayAgPGphbUBjaHJvbWl1bS5vcmc+
CiAKICAgICAgICAgW2Nocm9taXVtXSBVcGRhdGUgV2ViU2Nyb2xsYmFyIHNvIHRoYXQgaXQgd29y
a3Mgd2l0aCBvdmVybGF5IHNjcm9sbGJhcnMgb24gTGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViRnJhbWUuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
cHVibGljL1dlYkZyYW1lLmgKaW5kZXggNzYyYzMzNTc5NzI2Zjk4YjdkODA4MjM5MGVhYTRmOGMw
NGM4NWJmZS4uNmI3Zjg4Y2ExZWM2NmQ1M2UzYTI2NDdmNTZmYmVjMGNkMDIxOTJmMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViRnJhbWUuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJGcmFtZS5oCkBAIC0xNjMsNiArMTYzLDEzIEBA
IHB1YmxpYzoKICAgICAvLyBSZXR1cm5zIHRydWUgaWYgdGhlIGNvbnRlbnRzIChtaW51cyBzY3Jv
bGxiYXJzKSBoYXMgbm9uLXplcm8gYXJlYS4KICAgICB2aXJ0dWFsIGJvb2wgaGFzVmlzaWJsZUNv
bnRlbnQoKSBjb25zdCA9IDA7CiAKKyAgICB2aXJ0dWFsIGJvb2wgaGFzSG9yaXpvbnRhbFNjcm9s
bGJhcigpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgaGFzVmVydGljYWxTY3JvbGxiYXIo
KSBjb25zdCA9IDA7CisKKyAgICAvLyBSZXR1cm5zIHRydWUgaWYgdGhlIGZyYW1lIGlzIHNjcm9s
bGVkIGFsbCB0aGUgd2F5IHRvIHRoZSByaWdodCBvciBsZWZ0LgorICAgIHZpcnR1YWwgYm9vbCBp
c1Njcm9sbFBvc2l0aW9uUGlubmVkVG9MZWZ0KCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgYm9v
bCBpc1Njcm9sbFBvc2l0aW9uUGlubmVkVG9SaWdodCgpIGNvbnN0ID0gMDsKKwogCiAgICAgLy8g
SGllcmFyY2h5IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMv
V2ViVmlld0NsaWVudC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlld0Ns
aWVudC5oCmluZGV4IDg5OTg2YjJmNzg5ZDNmNDFlNzY2ZTBkZjhlYjE0YmQwYTE0ZTAxYWQuLmNh
MjQ5MDk2ZmVmMGNjYjk3OTFlYmUwYmRmZjhlYjZiMjQ4NDM3NDkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXdDbGllbnQuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3Q2xpZW50LmgKQEAgLTI0Nyw2ICsyNDcsOSBAQCBw
dWJsaWM6CiAgICAgLy8gQ2FsbGVkIHdoZW4gYSBuZXcgbm9kZSBnZXRzIGZvY3VzZWQuCiAgICAg
dmlydHVhbCB2b2lkIGZvY3VzZWROb2RlQ2hhbmdlZChjb25zdCBXZWJOb2RlJikgeyB9CiAKKyAg
ICAvLyBUaGlzIGFnZ3JlZ2F0ZWQgY291bnQgb2Ygd2hlZWwgaGFuZGxlcnMgb25seSBpbmNsdWRl
cyBob3Jpem9udGFsCisgICAgLy8gc2Nyb2xsYmFycyBhbmQgSlMgd2hlZWwgZXZlbnQgaGFuZGxl
cnMuCisgICAgdmlydHVhbCB2b2lkIG51bVdoZWVsRXZlbnRIYW5kbGVyc0NoYW5nZWQodW5zaWdu
ZWQpIHsgfQogCiAgICAgLy8gU2Vzc2lvbiBoaXN0b3J5IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAKaW5kZXggYTNlOWIwZmQ5M2JiOGMwZTYzNmE5
YjZiMzFhM2IxNWE2Nzg1Y2Y4Zi4uOTNmNTNlMjgxOWZmYWFkMWQ0YTY2ZmY4ODRkNWE5MzRkNzc3
ZmE5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50
SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1w
bC5jcHAKQEAgLTk2OCw0ICs5NjgsMTAgQEAgYm9vbCBDaHJvbWVDbGllbnRJbXBsOjpzaG91bGRS
dW5Nb2RhbERpYWxvZ0R1cmluZ1BhZ2VEaXNtaXNzYWwoY29uc3QgRGlhbG9nVHlwZSYKICAgICBy
ZXR1cm4gZmFsc2U7CiB9CiAKK3ZvaWQgQ2hyb21lQ2xpZW50SW1wbDo6bnVtV2hlZWxFdmVudEhh
bmRsZXJzQ2hhbmdlZCh1bnNpZ25lZCBudW1XaGVlbEhhbmRsZXJzKQoreworICAgIGlmIChtX3dl
YlZpZXctPmNsaWVudCgpKQorICAgICAgICBtX3dlYlZpZXctPmNsaWVudCgpLT5udW1XaGVlbEV2
ZW50SGFuZGxlcnNDaGFuZ2VkKG51bVdoZWVsSGFuZGxlcnMpOworfQorCiB9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNs
aWVudEltcGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwu
aAppbmRleCA1MjM0ZTQzNjc5NDUwNWZmMWVmOTQyM2Y1MjYwNzE1ZDg5NzJmMjE5Li43MTExYzRm
NWY4YTQ4MDAzMjhlYzFlNjExNTVmNWI0ODg3NzdiNzkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5oCkBAIC0xOTksNyArMTk5LDcgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRSdW5Nb2RhbERpYWxvZ0R1cmluZ1BhZ2VEaXNtaXNz
YWwoY29uc3QgRGlhbG9nVHlwZSYsIGNvbnN0IFN0cmluZyYgZGlhbG9nTWVzc2FnZSwgV2ViQ29y
ZTo6RnJhbWVMb2FkZXI6OlBhZ2VEaXNtaXNzYWxUeXBlKSBjb25zdDsKIAogICAgIHZpcnR1YWwg
Ym9vbCBzaG91bGRSdWJiZXJCYW5kSW5EaXJlY3Rpb24oV2ViQ29yZTo6U2Nyb2xsRGlyZWN0aW9u
KSBjb25zdCB7IHJldHVybiB0cnVlOyB9Ci0gICAgdmlydHVhbCB2b2lkIG51bVdoZWVsRXZlbnRI
YW5kbGVyc0NoYW5nZWQodW5zaWduZWQpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBudW1XaGVlbEV2
ZW50SGFuZGxlcnNDaGFuZ2VkKHVuc2lnbmVkKTsKIAogcHJpdmF0ZToKICAgICB2b2lkIGdldFBv
cHVwTWVudUluZm8oV2ViQ29yZTo6UG9wdXBDb250YWluZXIqLCBXZWJQb3B1cE1lbnVJbmZvKik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuY3Bw
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmNwcAppbmRleCA0NDhm
NDlhYjU5ZmJhNWVhZmRjYzQ3MTA5ZmM2NGRkNWFkYzEwNDZhLi5hNzE4OGI3NzNiMmU5Y2Y5MmM5
ZTE0ZmYwMWU3ODE4MDZlM2UxZTY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJGcmFtZUltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YkZyYW1lSW1wbC5jcHAKQEAgLTU4Miw2ICs1ODIsMzAgQEAgYm9vbCBXZWJGcmFtZUltcGw6Omhh
c1Zpc2libGVDb250ZW50KCkgY29uc3QKICAgICByZXR1cm4gZnJhbWUoKS0+dmlldygpLT52aXNp
YmxlV2lkdGgoKSA+IDAgJiYgZnJhbWUoKS0+dmlldygpLT52aXNpYmxlSGVpZ2h0KCkgPiAwOwog
fQogCitib29sIFdlYkZyYW1lSW1wbDo6aGFzSG9yaXpvbnRhbFNjcm9sbGJhcigpIGNvbnN0Cit7
CisgICAgcmV0dXJuIG1fZnJhbWUgJiYgbV9mcmFtZS0+dmlldygpICYmIG1fZnJhbWUtPnZpZXco
KS0+aG9yaXpvbnRhbFNjcm9sbGJhcigpOworfQorCitib29sIFdlYkZyYW1lSW1wbDo6aGFzVmVy
dGljYWxTY3JvbGxiYXIoKSBjb25zdAoreworICAgIHJldHVybiBtX2ZyYW1lICYmIG1fZnJhbWUt
PnZpZXcoKSAmJiBtX2ZyYW1lLT52aWV3KCktPnZlcnRpY2FsU2Nyb2xsYmFyKCk7Cit9CisKK2Jv
b2wgV2ViRnJhbWVJbXBsOjppc1Njcm9sbFBvc2l0aW9uUGlubmVkVG9MZWZ0KCkgY29uc3QKK3sK
KyAgICBJbnRQb2ludCBzY3JvbGxQb3NpdGlvbiA9IG1fZnJhbWUtPnZpZXcoKS0+c2Nyb2xsUG9z
aXRpb24oKTsKKyAgICBJbnRQb2ludCBtaW5pbXVtU2Nyb2xsUG9zaXRpb24gPSBtX2ZyYW1lLT52
aWV3KCktPm1pbmltdW1TY3JvbGxQb3NpdGlvbigpOworICAgIHJldHVybiBzY3JvbGxQb3NpdGlv
bi54KCkgPD0gbWluaW11bVNjcm9sbFBvc2l0aW9uLngoKTsKK30KKworYm9vbCBXZWJGcmFtZUlt
cGw6OmlzU2Nyb2xsUG9zaXRpb25QaW5uZWRUb1JpZ2h0KCkgY29uc3QKK3sKKyAgICBJbnRQb2lu
dCBzY3JvbGxQb3NpdGlvbiA9IG1fZnJhbWUtPnZpZXcoKS0+c2Nyb2xsUG9zaXRpb24oKTsKKyAg
ICBJbnRQb2ludCBtYXhpbXVtU2Nyb2xsUG9zaXRpb24gPSBtX2ZyYW1lLT52aWV3KCktPm1heGlt
dW1TY3JvbGxQb3NpdGlvbigpOworICAgIHJldHVybiBzY3JvbGxQb3NpdGlvbi54KCkgPj0gbWF4
aW11bVNjcm9sbFBvc2l0aW9uLngoKTsKK30KKwogV2ViVmlldyogV2ViRnJhbWVJbXBsOjp2aWV3
KCkgY29uc3QKIHsKICAgICByZXR1cm4gdmlld0ltcGwoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViRnJhbWVJbXBsLmgKaW5kZXggMWYwYjRhYTZiYjhiMGQ1NmNkMTk4YTE2ZTNkYWI5
NTFlYjNiMzJiZS4uMWZkN2RiM2IyNTM4ZjE5MzA3NjJiMmM1MWExMDJlYmQwY2EwZTZlNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmgKKysrIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmgKQEAgLTc2LDYgKzc2LDEw
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGludCBjb250ZW50c1ByZWZlcnJlZFdpZHRoKCkgY29u
c3Q7CiAgICAgdmlydHVhbCBpbnQgZG9jdW1lbnRFbGVtZW50U2Nyb2xsSGVpZ2h0KCkgY29uc3Q7
CiAgICAgdmlydHVhbCBib29sIGhhc1Zpc2libGVDb250ZW50KCkgY29uc3Q7CisgICAgdmlydHVh
bCBib29sIGhhc0hvcml6b250YWxTY3JvbGxiYXIoKSBjb25zdDsKKyAgICB2aXJ0dWFsIGJvb2wg
aGFzVmVydGljYWxTY3JvbGxiYXIoKSBjb25zdDsKKyAgICB2aXJ0dWFsIGJvb2wgaXNTY3JvbGxQ
b3NpdGlvblBpbm5lZFRvTGVmdCgpIGNvbnN0OworICAgIHZpcnR1YWwgYm9vbCBpc1Njcm9sbFBv
c2l0aW9uUGlubmVkVG9SaWdodCgpIGNvbnN0OwogICAgIHZpcnR1YWwgV2ViVmlldyogdmlldygp
IGNvbnN0OwogICAgIHZpcnR1YWwgV2ViRnJhbWUqIG9wZW5lcigpIGNvbnN0OwogICAgIHZpcnR1
YWwgdm9pZCBjbGVhck9wZW5lcigpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>103685</attachid>
            <date>2011-08-11 15:31:23 -0700</date>
            <delta_ts>2011-08-11 16:18:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-66094-20110811153122.patch</filename>
            <type>text/plain</type>
            <size>7343</size>
            <attacher name="Nico Weber">thakis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTI4NDYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXgg
NDNkNDI1MDBmZjc3NDk0MGM2YmFhNjgwZjQzMTZjNDA5YTM5N2MyOS4uYjhlMjIwYWU1MWNiMzgw
N2FmMzk2MzlkNzZmOGUzZGZmM2U3ZWYzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwzNCBAQAorMjAxMS0wOC0xMSAgTmljbyBXZWJlciAgPHRoYWtpc0BjaHJvbWl1bS5v
cmc+CisKKyAgICAgICAgW2Nocm9taXVtXSBFeHBvc2UgIm1pbi9tYXggc2Nyb2xsIHNpemUiLCAi
aGFzIGhvcml6b250YWwvdmVydGljYWwgc2Nyb2xsYmFyIiwgIm51bWJlciBvZiB3aGVlbCBoYW5k
bGVycyIgdG8gY2xpZW50cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NjYwOTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBXZSB3YW50IHRvIGltcGxlbWVudCB0d28tZmluZ2VyLXN3aXBlIGZvciBoaXN0b3J5
IGxpa2Ugc2FmYXJpIGRvZXMgb24KKyAgICAgICAgb3MgeCBsaW9uLiBUaGUgd2F5IHRoaXMgd29y
a3MgaXM6CisgICAgICAgICogSWYgYSBwYWdlIGhhcyBubyBob3Jpem9udGFsIHNjcm9sbGJhcnMs
IG9yIHRoZSBwYWdlIGlzIGFsbCB0aGUgd2F5CisgICAgICAgICAgdG8gdGhlIGxlZnQsIHNjcm9s
bGluZyB0byB0aGUgbGVmdCB3aWxsIGdvIGJhY2sgaW4gaGlzdG9yeSBpbnN0ZWFkLgorICAgICAg
ICAqIFNhbWUgZm9yIHJpZ2h0L2ZvcndhcmQuCisKKyAgICAgICAgVGhpcyBpcyBtb2RlbGxlZCBh
ZnRlciB0aGUgV2ViS2l0MiBmdW5jdGlvbnMKKyAgICAgICAgV0tQYWdlSXNQaW5uZWRUb0xlZnRT
aWRlKCksIFdLUGFnZUlzUGlubmVkVG9SaWdodFNpZGUoKSwKKyAgICAgICAgV0tQYWdlSGFzSG9y
aXpvbnRhbFNjcm9sbGJhcigpLCBhbmQKKyAgICAgICAgd2ViUGFnZVByb3h5Ojp3aWxsSGFuZGxl
SG9yaXpvbnRhbFNjcm9sbEV2ZW50cygpLgorCisgICAgICAgICogcHVibGljL1dlYkZyYW1lLmg6
CisgICAgICAgICogcHVibGljL1dlYlZpZXdDbGllbnQuaDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
Vmlld0NsaWVudDo6bnVtV2hlZWxFdmVudEhhbmRsZXJzQ2hhbmdlZCk6CisgICAgICAgICogc3Jj
L0Nocm9tZUNsaWVudEltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnRJbXBs
OjpudW1XaGVlbEV2ZW50SGFuZGxlcnNDaGFuZ2VkKToKKyAgICAgICAgKiBzcmMvQ2hyb21lQ2xp
ZW50SW1wbC5oOgorICAgICAgICAqIHNyYy9XZWJGcmFtZUltcGwuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJGcmFtZUltcGw6Omhhc0hvcml6b250YWxTY3JvbGxiYXIpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJGcmFtZUltcGw6Omhhc1ZlcnRpY2FsU2Nyb2xsYmFyKToKKyAgICAgICAgKFdlYktp
dDo6V2ViRnJhbWVJbXBsOjppc1Bpbm5lZFRvTGVmdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkZy
YW1lSW1wbDo6aXNQaW5uZWRUb1JpZ2h0KToKKyAgICAgICAgKiBzcmMvV2ViRnJhbWVJbXBsLmg6
CisKIDIwMTEtMDgtMTAgIEpvaG4gQWJkLUVsLU1hbGVrICA8amFtQGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBbY2hyb21pdW1dIFVwZGF0ZSBXZWJTY3JvbGxiYXIgc28gdGhhdCBpdCB3b3JrcyB3
aXRoIG92ZXJsYXkgc2Nyb2xsYmFycyBvbiBMaW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3B1YmxpYy9XZWJGcmFtZS5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJs
aWMvV2ViRnJhbWUuaAppbmRleCA3NjJjMzM1Nzk3MjZmOThiN2Q4MDgyMzkwZWFhNGY4YzA0Yzg1
YmZlLi4wY2U1OGZlMjNjYWI0ZTBlOTk4NGE0OGY0YjIwZGEyMjMxZjlmM2FkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJGcmFtZS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkZyYW1lLmgKQEAgLTE0OCw2ICsxNDgsMTAgQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgV2ViU2l6ZSBzY3JvbGxPZmZzZXQoKSBjb25zdCA9IDA7CiAgICAg
dmlydHVhbCB2b2lkIHNldFNjcm9sbE9mZnNldChjb25zdCBXZWJTaXplJikgPSAwOwogCisgICAg
Ly8gVGhlIG1pbmltdW0gYW5kIG1heGl1bSBzY3JvbGwgcG9zaXRpb25zIGluIHBpeGVscy4KKyAg
ICB2aXJ0dWFsIFdlYlNpemUgbWluaW11bVNjcm9sbE9mZnNldCgpIGNvbnN0ID0gMDsKKyAgICB2
aXJ0dWFsIFdlYlNpemUgbWF4aW11bVNjcm9sbE9mZnNldCgpIGNvbnN0ID0gMDsKKyAKICAgICAv
LyBUaGUgc2l6ZSBvZiB0aGUgY29udGVudHMgYXJlYS4KICAgICB2aXJ0dWFsIFdlYlNpemUgY29u
dGVudHNTaXplKCkgY29uc3QgPSAwOwogCkBAIC0xNjMsNiArMTY3LDkgQEAgcHVibGljOgogICAg
IC8vIFJldHVybnMgdHJ1ZSBpZiB0aGUgY29udGVudHMgKG1pbnVzIHNjcm9sbGJhcnMpIGhhcyBu
b24temVybyBhcmVhLgogICAgIHZpcnR1YWwgYm9vbCBoYXNWaXNpYmxlQ29udGVudCgpIGNvbnN0
ID0gMDsKIAorICAgIHZpcnR1YWwgYm9vbCBoYXNIb3Jpem9udGFsU2Nyb2xsYmFyKCkgY29uc3Qg
PSAwOworICAgIHZpcnR1YWwgYm9vbCBoYXNWZXJ0aWNhbFNjcm9sbGJhcigpIGNvbnN0ID0gMDsK
KwogCiAgICAgLy8gSGllcmFyY2h5IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9wdWJsaWMvV2ViVmlld0NsaWVudC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJs
aWMvV2ViVmlld0NsaWVudC5oCmluZGV4IDg5OTg2YjJmNzg5ZDNmNDFlNzY2ZTBkZjhlYjE0YmQw
YTE0ZTAxYWQuLmRiYjA4MjVmZjlkOTgwYWNlNjgzMDAwMDljNWVmMzE2OTFmZDRjNGMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXdDbGllbnQuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3Q2xpZW50LmgKQEAgLTI0Nyw2
ICsyNDcsOSBAQCBwdWJsaWM6CiAgICAgLy8gQ2FsbGVkIHdoZW4gYSBuZXcgbm9kZSBnZXRzIGZv
Y3VzZWQuCiAgICAgdmlydHVhbCB2b2lkIGZvY3VzZWROb2RlQ2hhbmdlZChjb25zdCBXZWJOb2Rl
JikgeyB9CiAKKyAgICAvLyBUaGlzIGFnZ3JlZ2F0ZWQgY291bnQgb2Ygd2hlZWwgaGFuZGxlcnMg
b25seSBpbmNsdWRlcyBob3Jpem9udGFsCisgICAgLy8gc2Nyb2xsYmFycyBhbmQgSlMgd2hlZWwg
ZXZlbnQgaGFuZGxlcnMuCisgICAgdmlydHVhbCB2b2lkIG51bWJlck9mV2hlZWxFdmVudEhhbmRs
ZXJzQ2hhbmdlZCh1bnNpZ25lZCkgeyB9CiAKICAgICAvLyBTZXNzaW9uIGhpc3RvcnkgLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcAppbmRleCBhM2U5
YjBmZDkzYmI4YzBlNjM2YTliNmIzMWEzYjE1YTY3ODVjZjhmLi40NGUzMTkzYjExZDJjNjQzNWQ1
Y2VhNjE0MDNjMTk1N2Q2YWU1ODIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9DaHJvbWVDbGllbnRJbXBsLmNwcApAQCAtOTY4LDQgKzk2OCwxMCBAQCBib29sIENocm9tZUNs
aWVudEltcGw6OnNob3VsZFJ1bk1vZGFsRGlhbG9nRHVyaW5nUGFnZURpc21pc3NhbChjb25zdCBE
aWFsb2dUeXBlJgogICAgIHJldHVybiBmYWxzZTsKIH0KIAordm9pZCBDaHJvbWVDbGllbnRJbXBs
OjpudW1XaGVlbEV2ZW50SGFuZGxlcnNDaGFuZ2VkKHVuc2lnbmVkIG51bVdoZWVsSGFuZGxlcnMp
Cit7CisgICAgaWYgKG1fd2ViVmlldy0+Y2xpZW50KCkpCisgICAgICAgIG1fd2ViVmlldy0+Y2xp
ZW50KCktPm51bWJlck9mV2hlZWxFdmVudEhhbmRsZXJzQ2hhbmdlZChudW1XaGVlbEhhbmRsZXJz
KTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9DaHJvbWVDbGllbnRJbXBsLmgKaW5kZXggNTIzNGU0MzY3OTQ1MDVmZjFlZjk0MjNmNTI2
MDcxNWQ4OTcyZjIxOS4uNzExMWM0ZjVmOGE0ODAwMzI4ZWMxZTYxMTU1ZjViNDg4Nzc3Yjc5MiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuaApAQCAt
MTk5LDcgKzE5OSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkUnVuTW9kYWxE
aWFsb2dEdXJpbmdQYWdlRGlzbWlzc2FsKGNvbnN0IERpYWxvZ1R5cGUmLCBjb25zdCBTdHJpbmcm
IGRpYWxvZ01lc3NhZ2UsIFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpQYWdlRGlzbWlzc2FsVHlwZSkg
Y29uc3Q7CiAKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkUnViYmVyQmFuZEluRGlyZWN0aW9uKFdl
YkNvcmU6OlNjcm9sbERpcmVjdGlvbikgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQotICAgIHZpcnR1
YWwgdm9pZCBudW1XaGVlbEV2ZW50SGFuZGxlcnNDaGFuZ2VkKHVuc2lnbmVkKSB7IH0KKyAgICB2
aXJ0dWFsIHZvaWQgbnVtV2hlZWxFdmVudEhhbmRsZXJzQ2hhbmdlZCh1bnNpZ25lZCk7CiAKIHBy
aXZhdGU6CiAgICAgdm9pZCBnZXRQb3B1cE1lbnVJbmZvKFdlYkNvcmU6OlBvcHVwQ29udGFpbmVy
KiwgV2ViUG9wdXBNZW51SW5mbyopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViRnJhbWVJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZy
YW1lSW1wbC5jcHAKaW5kZXggNDQ4ZjQ5YWI1OWZiYTVlYWZkY2M0NzEwOWZjNjRkZDVhZGMxMDQ2
YS4uNDIxNmFhNGRjZTI1MjZjYTU1NzYyOTg5MmI0MjI4MTJlNmRhNjUyYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuY3BwCkBAIC01NTIsNiArNTUyLDI0IEBA
IFdlYlNpemUgV2ViRnJhbWVJbXBsOjpzY3JvbGxPZmZzZXQoKSBjb25zdAogICAgIHJldHVybiBX
ZWJTaXplKCk7CiB9CiAKK1dlYlNpemUgV2ViRnJhbWVJbXBsOjptaW5pbXVtU2Nyb2xsT2Zmc2V0
KCkgY29uc3QKK3sKKyAgICBGcmFtZVZpZXcqIHZpZXcgPSBmcmFtZVZpZXcoKTsKKyAgICBpZiAo
dmlldykKKyAgICAgICAgcmV0dXJuIHZpZXctPm1pbmltdW1TY3JvbGxQb3NpdGlvbigpIC0gSW50
UG9pbnQoKTsKKworICAgIHJldHVybiBXZWJTaXplKCk7Cit9CisKK1dlYlNpemUgV2ViRnJhbWVJ
bXBsOjptYXhpbXVtU2Nyb2xsT2Zmc2V0KCkgY29uc3QKK3sKKyAgICBGcmFtZVZpZXcqIHZpZXcg
PSBmcmFtZVZpZXcoKTsKKyAgICBpZiAodmlldykKKyAgICAgICAgcmV0dXJuIHZpZXctPm1heGlt
dW1TY3JvbGxQb3NpdGlvbigpIC0gSW50UG9pbnQoKTsKKworICAgIHJldHVybiBXZWJTaXplKCk7
Cit9CisKIHZvaWQgV2ViRnJhbWVJbXBsOjpzZXRTY3JvbGxPZmZzZXQoY29uc3QgV2ViU2l6ZSYg
b2Zmc2V0KQogewogICAgIGlmIChGcmFtZVZpZXcqIHZpZXcgPSBmcmFtZVZpZXcoKSkKQEAgLTU4
Miw2ICs2MDAsMTYgQEAgYm9vbCBXZWJGcmFtZUltcGw6Omhhc1Zpc2libGVDb250ZW50KCkgY29u
c3QKICAgICByZXR1cm4gZnJhbWUoKS0+dmlldygpLT52aXNpYmxlV2lkdGgoKSA+IDAgJiYgZnJh
bWUoKS0+dmlldygpLT52aXNpYmxlSGVpZ2h0KCkgPiAwOwogfQogCitib29sIFdlYkZyYW1lSW1w
bDo6aGFzSG9yaXpvbnRhbFNjcm9sbGJhcigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fZnJhbWUg
JiYgbV9mcmFtZS0+dmlldygpICYmIG1fZnJhbWUtPnZpZXcoKS0+aG9yaXpvbnRhbFNjcm9sbGJh
cigpOworfQorCitib29sIFdlYkZyYW1lSW1wbDo6aGFzVmVydGljYWxTY3JvbGxiYXIoKSBjb25z
dAoreworICAgIHJldHVybiBtX2ZyYW1lICYmIG1fZnJhbWUtPnZpZXcoKSAmJiBtX2ZyYW1lLT52
aWV3KCktPnZlcnRpY2FsU2Nyb2xsYmFyKCk7Cit9CisKIFdlYlZpZXcqIFdlYkZyYW1lSW1wbDo6
dmlldygpIGNvbnN0CiB7CiAgICAgcmV0dXJuIHZpZXdJbXBsKCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYkZyYW1lSW1wbC5oCmluZGV4IDFmMGI0YWE2YmI4YjBkNTZjZDE5OGExNmUz
ZGFiOTUxZWIzYjMyYmUuLjkwNTAzMzA5YWE2M2Q4NGJmNGM5ODIxMTRhMzhmMjk0NWZhNDU1MzYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5oCkBAIC03MiwxMCAr
NzIsMTQgQEAgcHVibGljOgogICAgIHZpcnR1YWwgV2ViVmVjdG9yPFdlYkljb25VUkw+IGljb25V
UkxzKGludCBpY29uVHlwZXMpIGNvbnN0OwogICAgIHZpcnR1YWwgV2ViU2l6ZSBzY3JvbGxPZmZz
ZXQoKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0U2Nyb2xsT2Zmc2V0KGNvbnN0IFdlYlNp
emUmKTsKKyAgICB2aXJ0dWFsIFdlYlNpemUgbWluaW11bVNjcm9sbE9mZnNldCgpIGNvbnN0Owor
ICAgIHZpcnR1YWwgV2ViU2l6ZSBtYXhpbXVtU2Nyb2xsT2Zmc2V0KCkgY29uc3Q7CiAgICAgdmly
dHVhbCBXZWJTaXplIGNvbnRlbnRzU2l6ZSgpIGNvbnN0OwogICAgIHZpcnR1YWwgaW50IGNvbnRl
bnRzUHJlZmVycmVkV2lkdGgoKSBjb25zdDsKICAgICB2aXJ0dWFsIGludCBkb2N1bWVudEVsZW1l
bnRTY3JvbGxIZWlnaHQoKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgaGFzVmlzaWJsZUNvbnRl
bnQoKSBjb25zdDsKKyAgICB2aXJ0dWFsIGJvb2wgaGFzSG9yaXpvbnRhbFNjcm9sbGJhcigpIGNv
bnN0OworICAgIHZpcnR1YWwgYm9vbCBoYXNWZXJ0aWNhbFNjcm9sbGJhcigpIGNvbnN0OwogICAg
IHZpcnR1YWwgV2ViVmlldyogdmlldygpIGNvbnN0OwogICAgIHZpcnR1YWwgV2ViRnJhbWUqIG9w
ZW5lcigpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCBjbGVhck9wZW5lcigpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>103697</attachid>
            <date>2011-08-11 16:18:51 -0700</date>
            <delta_ts>2011-08-11 16:31:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-66094-20110811161850.patch</filename>
            <type>text/plain</type>
            <size>7353</size>
            <attacher name="Nico Weber">thakis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTI4NDYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXgg
NDNkNDI1MDBmZjc3NDk0MGM2YmFhNjgwZjQzMTZjNDA5YTM5N2MyOS4uYjhlMjIwYWU1MWNiMzgw
N2FmMzk2MzlkNzZmOGUzZGZmM2U3ZWYzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwzNCBAQAorMjAxMS0wOC0xMSAgTmljbyBXZWJlciAgPHRoYWtpc0BjaHJvbWl1bS5v
cmc+CisKKyAgICAgICAgW2Nocm9taXVtXSBFeHBvc2UgIm1pbi9tYXggc2Nyb2xsIHNpemUiLCAi
aGFzIGhvcml6b250YWwvdmVydGljYWwgc2Nyb2xsYmFyIiwgIm51bWJlciBvZiB3aGVlbCBoYW5k
bGVycyIgdG8gY2xpZW50cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NjYwOTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBXZSB3YW50IHRvIGltcGxlbWVudCB0d28tZmluZ2VyLXN3aXBlIGZvciBoaXN0b3J5
IGxpa2Ugc2FmYXJpIGRvZXMgb24KKyAgICAgICAgb3MgeCBsaW9uLiBUaGUgd2F5IHRoaXMgd29y
a3MgaXM6CisgICAgICAgICogSWYgYSBwYWdlIGhhcyBubyBob3Jpem9udGFsIHNjcm9sbGJhcnMs
IG9yIHRoZSBwYWdlIGlzIGFsbCB0aGUgd2F5CisgICAgICAgICAgdG8gdGhlIGxlZnQsIHNjcm9s
bGluZyB0byB0aGUgbGVmdCB3aWxsIGdvIGJhY2sgaW4gaGlzdG9yeSBpbnN0ZWFkLgorICAgICAg
ICAqIFNhbWUgZm9yIHJpZ2h0L2ZvcndhcmQuCisKKyAgICAgICAgVGhpcyBpcyBtb2RlbGxlZCBh
ZnRlciB0aGUgV2ViS2l0MiBmdW5jdGlvbnMKKyAgICAgICAgV0tQYWdlSXNQaW5uZWRUb0xlZnRT
aWRlKCksIFdLUGFnZUlzUGlubmVkVG9SaWdodFNpZGUoKSwKKyAgICAgICAgV0tQYWdlSGFzSG9y
aXpvbnRhbFNjcm9sbGJhcigpLCBhbmQKKyAgICAgICAgd2ViUGFnZVByb3h5Ojp3aWxsSGFuZGxl
SG9yaXpvbnRhbFNjcm9sbEV2ZW50cygpLgorCisgICAgICAgICogcHVibGljL1dlYkZyYW1lLmg6
CisgICAgICAgICogcHVibGljL1dlYlZpZXdDbGllbnQuaDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
Vmlld0NsaWVudDo6bnVtV2hlZWxFdmVudEhhbmRsZXJzQ2hhbmdlZCk6CisgICAgICAgICogc3Jj
L0Nocm9tZUNsaWVudEltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnRJbXBs
OjpudW1XaGVlbEV2ZW50SGFuZGxlcnNDaGFuZ2VkKToKKyAgICAgICAgKiBzcmMvQ2hyb21lQ2xp
ZW50SW1wbC5oOgorICAgICAgICAqIHNyYy9XZWJGcmFtZUltcGwuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJGcmFtZUltcGw6Omhhc0hvcml6b250YWxTY3JvbGxiYXIpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJGcmFtZUltcGw6Omhhc1ZlcnRpY2FsU2Nyb2xsYmFyKToKKyAgICAgICAgKFdlYktp
dDo6V2ViRnJhbWVJbXBsOjppc1Bpbm5lZFRvTGVmdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkZy
YW1lSW1wbDo6aXNQaW5uZWRUb1JpZ2h0KToKKyAgICAgICAgKiBzcmMvV2ViRnJhbWVJbXBsLmg6
CisKIDIwMTEtMDgtMTAgIEpvaG4gQWJkLUVsLU1hbGVrICA8amFtQGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBbY2hyb21pdW1dIFVwZGF0ZSBXZWJTY3JvbGxiYXIgc28gdGhhdCBpdCB3b3JrcyB3
aXRoIG92ZXJsYXkgc2Nyb2xsYmFycyBvbiBMaW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3B1YmxpYy9XZWJGcmFtZS5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJs
aWMvV2ViRnJhbWUuaAppbmRleCA3NjJjMzM1Nzk3MjZmOThiN2Q4MDgyMzkwZWFhNGY4YzA0Yzg1
YmZlLi4wY2U1OGZlMjNjYWI0ZTBlOTk4NGE0OGY0YjIwZGEyMjMxZjlmM2FkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJGcmFtZS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkZyYW1lLmgKQEAgLTE0OCw2ICsxNDgsMTAgQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgV2ViU2l6ZSBzY3JvbGxPZmZzZXQoKSBjb25zdCA9IDA7CiAgICAg
dmlydHVhbCB2b2lkIHNldFNjcm9sbE9mZnNldChjb25zdCBXZWJTaXplJikgPSAwOwogCisgICAg
Ly8gVGhlIG1pbmltdW0gYW5kIG1heGl1bSBzY3JvbGwgcG9zaXRpb25zIGluIHBpeGVscy4KKyAg
ICB2aXJ0dWFsIFdlYlNpemUgbWluaW11bVNjcm9sbE9mZnNldCgpIGNvbnN0ID0gMDsKKyAgICB2
aXJ0dWFsIFdlYlNpemUgbWF4aW11bVNjcm9sbE9mZnNldCgpIGNvbnN0ID0gMDsKKyAKICAgICAv
LyBUaGUgc2l6ZSBvZiB0aGUgY29udGVudHMgYXJlYS4KICAgICB2aXJ0dWFsIFdlYlNpemUgY29u
dGVudHNTaXplKCkgY29uc3QgPSAwOwogCkBAIC0xNjMsNiArMTY3LDkgQEAgcHVibGljOgogICAg
IC8vIFJldHVybnMgdHJ1ZSBpZiB0aGUgY29udGVudHMgKG1pbnVzIHNjcm9sbGJhcnMpIGhhcyBu
b24temVybyBhcmVhLgogICAgIHZpcnR1YWwgYm9vbCBoYXNWaXNpYmxlQ29udGVudCgpIGNvbnN0
ID0gMDsKIAorICAgIHZpcnR1YWwgYm9vbCBoYXNIb3Jpem9udGFsU2Nyb2xsYmFyKCkgY29uc3Qg
PSAwOworICAgIHZpcnR1YWwgYm9vbCBoYXNWZXJ0aWNhbFNjcm9sbGJhcigpIGNvbnN0ID0gMDsK
KwogCiAgICAgLy8gSGllcmFyY2h5IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9wdWJsaWMvV2ViVmlld0NsaWVudC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJs
aWMvV2ViVmlld0NsaWVudC5oCmluZGV4IDg5OTg2YjJmNzg5ZDNmNDFlNzY2ZTBkZjhlYjE0YmQw
YTE0ZTAxYWQuLmRiYjA4MjVmZjlkOTgwYWNlNjgzMDAwMDljNWVmMzE2OTFmZDRjNGMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXdDbGllbnQuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3Q2xpZW50LmgKQEAgLTI0Nyw2
ICsyNDcsOSBAQCBwdWJsaWM6CiAgICAgLy8gQ2FsbGVkIHdoZW4gYSBuZXcgbm9kZSBnZXRzIGZv
Y3VzZWQuCiAgICAgdmlydHVhbCB2b2lkIGZvY3VzZWROb2RlQ2hhbmdlZChjb25zdCBXZWJOb2Rl
JikgeyB9CiAKKyAgICAvLyBUaGlzIGFnZ3JlZ2F0ZWQgY291bnQgb2Ygd2hlZWwgaGFuZGxlcnMg
b25seSBpbmNsdWRlcyBob3Jpem9udGFsCisgICAgLy8gc2Nyb2xsYmFycyBhbmQgSlMgd2hlZWwg
ZXZlbnQgaGFuZGxlcnMuCisgICAgdmlydHVhbCB2b2lkIG51bWJlck9mV2hlZWxFdmVudEhhbmRs
ZXJzQ2hhbmdlZCh1bnNpZ25lZCkgeyB9CiAKICAgICAvLyBTZXNzaW9uIGhpc3RvcnkgLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcAppbmRleCBhM2U5
YjBmZDkzYmI4YzBlNjM2YTliNmIzMWEzYjE1YTY3ODVjZjhmLi4yMGJiNWE0Y2NlOGQ2ZTBlOTY0
NDVmOGVhY2I4MTI4MzYyZTczYjM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9DaHJvbWVDbGllbnRJbXBsLmNwcApAQCAtOTY4LDQgKzk2OCwxMCBAQCBib29sIENocm9tZUNs
aWVudEltcGw6OnNob3VsZFJ1bk1vZGFsRGlhbG9nRHVyaW5nUGFnZURpc21pc3NhbChjb25zdCBE
aWFsb2dUeXBlJgogICAgIHJldHVybiBmYWxzZTsKIH0KIAordm9pZCBDaHJvbWVDbGllbnRJbXBs
OjpudW1XaGVlbEV2ZW50SGFuZGxlcnNDaGFuZ2VkKHVuc2lnbmVkIG51bWJlck9mV2hlZWxIYW5k
bGVycykKK3sKKyAgICBpZiAobV93ZWJWaWV3LT5jbGllbnQoKSkKKyAgICAgICAgbV93ZWJWaWV3
LT5jbGllbnQoKS0+bnVtYmVyT2ZXaGVlbEV2ZW50SGFuZGxlcnNDaGFuZ2VkKG51bWJlck9mV2hl
ZWxIYW5kbGVycyk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5oIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5oCmluZGV4IDUyMzRlNDM2Nzk0NTA1ZmYx
ZWY5NDIzZjUyNjA3MTVkODk3MmYyMTkuLjcxMTFjNGY1ZjhhNDgwMDMyOGVjMWU2MTE1NWY1YjQ4
ODc3N2I3OTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNs
aWVudEltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJ
bXBsLmgKQEAgLTE5OSw3ICsxOTksNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIHNob3Vs
ZFJ1bk1vZGFsRGlhbG9nRHVyaW5nUGFnZURpc21pc3NhbChjb25zdCBEaWFsb2dUeXBlJiwgY29u
c3QgU3RyaW5nJiBkaWFsb2dNZXNzYWdlLCBXZWJDb3JlOjpGcmFtZUxvYWRlcjo6UGFnZURpc21p
c3NhbFR5cGUpIGNvbnN0OwogCiAgICAgdmlydHVhbCBib29sIHNob3VsZFJ1YmJlckJhbmRJbkRp
cmVjdGlvbihXZWJDb3JlOjpTY3JvbGxEaXJlY3Rpb24pIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0K
LSAgICB2aXJ0dWFsIHZvaWQgbnVtV2hlZWxFdmVudEhhbmRsZXJzQ2hhbmdlZCh1bnNpZ25lZCkg
eyB9CisgICAgdmlydHVhbCB2b2lkIG51bVdoZWVsRXZlbnRIYW5kbGVyc0NoYW5nZWQodW5zaWdu
ZWQpOwogCiBwcml2YXRlOgogICAgIHZvaWQgZ2V0UG9wdXBNZW51SW5mbyhXZWJDb3JlOjpQb3B1
cENvbnRhaW5lciosIFdlYlBvcHVwTWVudUluZm8qKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJGcmFtZUltcGwuY3BwCmluZGV4IDQ0OGY0OWFiNTlmYmE1ZWFmZGNjNDcxMDlmYzY0
ZGQ1YWRjMTA0NmEuLjQyMTZhYTRkY2UyNTI2Y2E1NTc2Mjk4OTJiNDIyODEyZTZkYTY1MmEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmNwcApAQCAtNTUyLDYg
KzU1MiwyNCBAQCBXZWJTaXplIFdlYkZyYW1lSW1wbDo6c2Nyb2xsT2Zmc2V0KCkgY29uc3QKICAg
ICByZXR1cm4gV2ViU2l6ZSgpOwogfQogCitXZWJTaXplIFdlYkZyYW1lSW1wbDo6bWluaW11bVNj
cm9sbE9mZnNldCgpIGNvbnN0Cit7CisgICAgRnJhbWVWaWV3KiB2aWV3ID0gZnJhbWVWaWV3KCk7
CisgICAgaWYgKHZpZXcpCisgICAgICAgIHJldHVybiB2aWV3LT5taW5pbXVtU2Nyb2xsUG9zaXRp
b24oKSAtIEludFBvaW50KCk7CisKKyAgICByZXR1cm4gV2ViU2l6ZSgpOworfQorCitXZWJTaXpl
IFdlYkZyYW1lSW1wbDo6bWF4aW11bVNjcm9sbE9mZnNldCgpIGNvbnN0Cit7CisgICAgRnJhbWVW
aWV3KiB2aWV3ID0gZnJhbWVWaWV3KCk7CisgICAgaWYgKHZpZXcpCisgICAgICAgIHJldHVybiB2
aWV3LT5tYXhpbXVtU2Nyb2xsUG9zaXRpb24oKSAtIEludFBvaW50KCk7CisKKyAgICByZXR1cm4g
V2ViU2l6ZSgpOworfQorCiB2b2lkIFdlYkZyYW1lSW1wbDo6c2V0U2Nyb2xsT2Zmc2V0KGNvbnN0
IFdlYlNpemUmIG9mZnNldCkKIHsKICAgICBpZiAoRnJhbWVWaWV3KiB2aWV3ID0gZnJhbWVWaWV3
KCkpCkBAIC01ODIsNiArNjAwLDE2IEBAIGJvb2wgV2ViRnJhbWVJbXBsOjpoYXNWaXNpYmxlQ29u
dGVudCgpIGNvbnN0CiAgICAgcmV0dXJuIGZyYW1lKCktPnZpZXcoKS0+dmlzaWJsZVdpZHRoKCkg
PiAwICYmIGZyYW1lKCktPnZpZXcoKS0+dmlzaWJsZUhlaWdodCgpID4gMDsKIH0KIAorYm9vbCBX
ZWJGcmFtZUltcGw6Omhhc0hvcml6b250YWxTY3JvbGxiYXIoKSBjb25zdAoreworICAgIHJldHVy
biBtX2ZyYW1lICYmIG1fZnJhbWUtPnZpZXcoKSAmJiBtX2ZyYW1lLT52aWV3KCktPmhvcml6b250
YWxTY3JvbGxiYXIoKTsKK30KKworYm9vbCBXZWJGcmFtZUltcGw6Omhhc1ZlcnRpY2FsU2Nyb2xs
YmFyKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9mcmFtZSAmJiBtX2ZyYW1lLT52aWV3KCkgJiYg
bV9mcmFtZS0+dmlldygpLT52ZXJ0aWNhbFNjcm9sbGJhcigpOworfQorCiBXZWJWaWV3KiBXZWJG
cmFtZUltcGw6OnZpZXcoKSBjb25zdAogewogICAgIHJldHVybiB2aWV3SW1wbCgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmggYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuaAppbmRleCAxZjBiNGFhNmJiOGIwZDU2
Y2QxOThhMTZlM2RhYjk1MWViM2IzMmJlLi45MDUwMzMwOWFhNjNkODRiZjRjOTgyMTE0YTM4ZjI5
NDVmYTQ1NTM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFt
ZUltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuaApA
QCAtNzIsMTAgKzcyLDE0IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFdlYlZlY3RvcjxXZWJJY29u
VVJMPiBpY29uVVJMcyhpbnQgaWNvblR5cGVzKSBjb25zdDsKICAgICB2aXJ0dWFsIFdlYlNpemUg
c2Nyb2xsT2Zmc2V0KCkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIHNldFNjcm9sbE9mZnNldChj
b25zdCBXZWJTaXplJik7CisgICAgdmlydHVhbCBXZWJTaXplIG1pbmltdW1TY3JvbGxPZmZzZXQo
KSBjb25zdDsKKyAgICB2aXJ0dWFsIFdlYlNpemUgbWF4aW11bVNjcm9sbE9mZnNldCgpIGNvbnN0
OwogICAgIHZpcnR1YWwgV2ViU2l6ZSBjb250ZW50c1NpemUoKSBjb25zdDsKICAgICB2aXJ0dWFs
IGludCBjb250ZW50c1ByZWZlcnJlZFdpZHRoKCkgY29uc3Q7CiAgICAgdmlydHVhbCBpbnQgZG9j
dW1lbnRFbGVtZW50U2Nyb2xsSGVpZ2h0KCkgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIGhhc1Zp
c2libGVDb250ZW50KCkgY29uc3Q7CisgICAgdmlydHVhbCBib29sIGhhc0hvcml6b250YWxTY3Jv
bGxiYXIoKSBjb25zdDsKKyAgICB2aXJ0dWFsIGJvb2wgaGFzVmVydGljYWxTY3JvbGxiYXIoKSBj
b25zdDsKICAgICB2aXJ0dWFsIFdlYlZpZXcqIHZpZXcoKSBjb25zdDsKICAgICB2aXJ0dWFsIFdl
YkZyYW1lKiBvcGVuZXIoKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgY2xlYXJPcGVuZXIoKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>103701</attachid>
            <date>2011-08-11 16:31:57 -0700</date>
            <delta_ts>2011-08-11 17:19:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-66094-20110811163156.patch</filename>
            <type>text/plain</type>
            <size>7232</size>
            <attacher name="Nico Weber">thakis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTI4NDYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXgg
NDNkNDI1MDBmZjc3NDk0MGM2YmFhNjgwZjQzMTZjNDA5YTM5N2MyOS4uYjhlMjIwYWU1MWNiMzgw
N2FmMzk2MzlkNzZmOGUzZGZmM2U3ZWYzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwzNCBAQAorMjAxMS0wOC0xMSAgTmljbyBXZWJlciAgPHRoYWtpc0BjaHJvbWl1bS5v
cmc+CisKKyAgICAgICAgW2Nocm9taXVtXSBFeHBvc2UgIm1pbi9tYXggc2Nyb2xsIHNpemUiLCAi
aGFzIGhvcml6b250YWwvdmVydGljYWwgc2Nyb2xsYmFyIiwgIm51bWJlciBvZiB3aGVlbCBoYW5k
bGVycyIgdG8gY2xpZW50cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NjYwOTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBXZSB3YW50IHRvIGltcGxlbWVudCB0d28tZmluZ2VyLXN3aXBlIGZvciBoaXN0b3J5
IGxpa2Ugc2FmYXJpIGRvZXMgb24KKyAgICAgICAgb3MgeCBsaW9uLiBUaGUgd2F5IHRoaXMgd29y
a3MgaXM6CisgICAgICAgICogSWYgYSBwYWdlIGhhcyBubyBob3Jpem9udGFsIHNjcm9sbGJhcnMs
IG9yIHRoZSBwYWdlIGlzIGFsbCB0aGUgd2F5CisgICAgICAgICAgdG8gdGhlIGxlZnQsIHNjcm9s
bGluZyB0byB0aGUgbGVmdCB3aWxsIGdvIGJhY2sgaW4gaGlzdG9yeSBpbnN0ZWFkLgorICAgICAg
ICAqIFNhbWUgZm9yIHJpZ2h0L2ZvcndhcmQuCisKKyAgICAgICAgVGhpcyBpcyBtb2RlbGxlZCBh
ZnRlciB0aGUgV2ViS2l0MiBmdW5jdGlvbnMKKyAgICAgICAgV0tQYWdlSXNQaW5uZWRUb0xlZnRT
aWRlKCksIFdLUGFnZUlzUGlubmVkVG9SaWdodFNpZGUoKSwKKyAgICAgICAgV0tQYWdlSGFzSG9y
aXpvbnRhbFNjcm9sbGJhcigpLCBhbmQKKyAgICAgICAgd2ViUGFnZVByb3h5Ojp3aWxsSGFuZGxl
SG9yaXpvbnRhbFNjcm9sbEV2ZW50cygpLgorCisgICAgICAgICogcHVibGljL1dlYkZyYW1lLmg6
CisgICAgICAgICogcHVibGljL1dlYlZpZXdDbGllbnQuaDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
Vmlld0NsaWVudDo6bnVtV2hlZWxFdmVudEhhbmRsZXJzQ2hhbmdlZCk6CisgICAgICAgICogc3Jj
L0Nocm9tZUNsaWVudEltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnRJbXBs
OjpudW1XaGVlbEV2ZW50SGFuZGxlcnNDaGFuZ2VkKToKKyAgICAgICAgKiBzcmMvQ2hyb21lQ2xp
ZW50SW1wbC5oOgorICAgICAgICAqIHNyYy9XZWJGcmFtZUltcGwuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJGcmFtZUltcGw6Omhhc0hvcml6b250YWxTY3JvbGxiYXIpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJGcmFtZUltcGw6Omhhc1ZlcnRpY2FsU2Nyb2xsYmFyKToKKyAgICAgICAgKFdlYktp
dDo6V2ViRnJhbWVJbXBsOjppc1Bpbm5lZFRvTGVmdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkZy
YW1lSW1wbDo6aXNQaW5uZWRUb1JpZ2h0KToKKyAgICAgICAgKiBzcmMvV2ViRnJhbWVJbXBsLmg6
CisKIDIwMTEtMDgtMTAgIEpvaG4gQWJkLUVsLU1hbGVrICA8amFtQGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBbY2hyb21pdW1dIFVwZGF0ZSBXZWJTY3JvbGxiYXIgc28gdGhhdCBpdCB3b3JrcyB3
aXRoIG92ZXJsYXkgc2Nyb2xsYmFycyBvbiBMaW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3B1YmxpYy9XZWJGcmFtZS5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJs
aWMvV2ViRnJhbWUuaAppbmRleCA3NjJjMzM1Nzk3MjZmOThiN2Q4MDgyMzkwZWFhNGY4YzA0Yzg1
YmZlLi4wY2U1OGZlMjNjYWI0ZTBlOTk4NGE0OGY0YjIwZGEyMjMxZjlmM2FkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJGcmFtZS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkZyYW1lLmgKQEAgLTE0OCw2ICsxNDgsMTAgQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgV2ViU2l6ZSBzY3JvbGxPZmZzZXQoKSBjb25zdCA9IDA7CiAgICAg
dmlydHVhbCB2b2lkIHNldFNjcm9sbE9mZnNldChjb25zdCBXZWJTaXplJikgPSAwOwogCisgICAg
Ly8gVGhlIG1pbmltdW0gYW5kIG1heGl1bSBzY3JvbGwgcG9zaXRpb25zIGluIHBpeGVscy4KKyAg
ICB2aXJ0dWFsIFdlYlNpemUgbWluaW11bVNjcm9sbE9mZnNldCgpIGNvbnN0ID0gMDsKKyAgICB2
aXJ0dWFsIFdlYlNpemUgbWF4aW11bVNjcm9sbE9mZnNldCgpIGNvbnN0ID0gMDsKKyAKICAgICAv
LyBUaGUgc2l6ZSBvZiB0aGUgY29udGVudHMgYXJlYS4KICAgICB2aXJ0dWFsIFdlYlNpemUgY29u
dGVudHNTaXplKCkgY29uc3QgPSAwOwogCkBAIC0xNjMsNiArMTY3LDkgQEAgcHVibGljOgogICAg
IC8vIFJldHVybnMgdHJ1ZSBpZiB0aGUgY29udGVudHMgKG1pbnVzIHNjcm9sbGJhcnMpIGhhcyBu
b24temVybyBhcmVhLgogICAgIHZpcnR1YWwgYm9vbCBoYXNWaXNpYmxlQ29udGVudCgpIGNvbnN0
ID0gMDsKIAorICAgIHZpcnR1YWwgYm9vbCBoYXNIb3Jpem9udGFsU2Nyb2xsYmFyKCkgY29uc3Qg
PSAwOworICAgIHZpcnR1YWwgYm9vbCBoYXNWZXJ0aWNhbFNjcm9sbGJhcigpIGNvbnN0ID0gMDsK
KwogCiAgICAgLy8gSGllcmFyY2h5IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9wdWJsaWMvV2ViVmlld0NsaWVudC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJs
aWMvV2ViVmlld0NsaWVudC5oCmluZGV4IDg5OTg2YjJmNzg5ZDNmNDFlNzY2ZTBkZjhlYjE0YmQw
YTE0ZTAxYWQuLmM1YTdjZjI5NzEzYWNhNTU5ZjZhYjVmMzdlY2FiODAxY2U1YzFiM2MgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXdDbGllbnQuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3Q2xpZW50LmgKQEAgLTI0Nyw2
ICsyNDcsNyBAQCBwdWJsaWM6CiAgICAgLy8gQ2FsbGVkIHdoZW4gYSBuZXcgbm9kZSBnZXRzIGZv
Y3VzZWQuCiAgICAgdmlydHVhbCB2b2lkIGZvY3VzZWROb2RlQ2hhbmdlZChjb25zdCBXZWJOb2Rl
JikgeyB9CiAKKyAgICB2aXJ0dWFsIHZvaWQgbnVtYmVyT2ZXaGVlbEV2ZW50SGFuZGxlcnNDaGFu
Z2VkKHVuc2lnbmVkKSB7IH0KIAogICAgIC8vIFNlc3Npb24gaGlzdG9yeSAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuY3BwCmluZGV4IGEzZTliMGZkOTNi
YjhjMGU2MzZhOWI2YjMxYTNiMTVhNjc4NWNmOGYuLjIwYmI1YTRjY2U4ZDZlMGU5NjQ0NWY4ZWFj
YjgxMjgzNjJlNzNiMzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0No
cm9tZUNsaWVudEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9t
ZUNsaWVudEltcGwuY3BwCkBAIC05NjgsNCArOTY4LDEwIEBAIGJvb2wgQ2hyb21lQ2xpZW50SW1w
bDo6c2hvdWxkUnVuTW9kYWxEaWFsb2dEdXJpbmdQYWdlRGlzbWlzc2FsKGNvbnN0IERpYWxvZ1R5
cGUmCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCit2b2lkIENocm9tZUNsaWVudEltcGw6Om51bVdo
ZWVsRXZlbnRIYW5kbGVyc0NoYW5nZWQodW5zaWduZWQgbnVtYmVyT2ZXaGVlbEhhbmRsZXJzKQor
eworICAgIGlmIChtX3dlYlZpZXctPmNsaWVudCgpKQorICAgICAgICBtX3dlYlZpZXctPmNsaWVu
dCgpLT5udW1iZXJPZldoZWVsRXZlbnRIYW5kbGVyc0NoYW5nZWQobnVtYmVyT2ZXaGVlbEhhbmRs
ZXJzKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmgKaW5kZXggNTIzNGU0MzY3OTQ1MDVmZjFlZjk0MjNm
NTI2MDcxNWQ4OTcyZjIxOS4uNzExMWM0ZjVmOGE0ODAwMzI4ZWMxZTYxMTU1ZjViNDg4Nzc3Yjc5
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1w
bC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuaApA
QCAtMTk5LDcgKzE5OSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkUnVuTW9k
YWxEaWFsb2dEdXJpbmdQYWdlRGlzbWlzc2FsKGNvbnN0IERpYWxvZ1R5cGUmLCBjb25zdCBTdHJp
bmcmIGRpYWxvZ01lc3NhZ2UsIFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpQYWdlRGlzbWlzc2FsVHlw
ZSkgY29uc3Q7CiAKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkUnViYmVyQmFuZEluRGlyZWN0aW9u
KFdlYkNvcmU6OlNjcm9sbERpcmVjdGlvbikgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQotICAgIHZp
cnR1YWwgdm9pZCBudW1XaGVlbEV2ZW50SGFuZGxlcnNDaGFuZ2VkKHVuc2lnbmVkKSB7IH0KKyAg
ICB2aXJ0dWFsIHZvaWQgbnVtV2hlZWxFdmVudEhhbmRsZXJzQ2hhbmdlZCh1bnNpZ25lZCk7CiAK
IHByaXZhdGU6CiAgICAgdm9pZCBnZXRQb3B1cE1lbnVJbmZvKFdlYkNvcmU6OlBvcHVwQ29udGFp
bmVyKiwgV2ViUG9wdXBNZW51SW5mbyopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViRnJhbWVJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YkZyYW1lSW1wbC5jcHAKaW5kZXggNDQ4ZjQ5YWI1OWZiYTVlYWZkY2M0NzEwOWZjNjRkZDVhZGMx
MDQ2YS4uNDIxNmFhNGRjZTI1MjZjYTU1NzYyOTg5MmI0MjI4MTJlNmRhNjUyYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuY3BwCkBAIC01NTIsNiArNTUyLDI0
IEBAIFdlYlNpemUgV2ViRnJhbWVJbXBsOjpzY3JvbGxPZmZzZXQoKSBjb25zdAogICAgIHJldHVy
biBXZWJTaXplKCk7CiB9CiAKK1dlYlNpemUgV2ViRnJhbWVJbXBsOjptaW5pbXVtU2Nyb2xsT2Zm
c2V0KCkgY29uc3QKK3sKKyAgICBGcmFtZVZpZXcqIHZpZXcgPSBmcmFtZVZpZXcoKTsKKyAgICBp
ZiAodmlldykKKyAgICAgICAgcmV0dXJuIHZpZXctPm1pbmltdW1TY3JvbGxQb3NpdGlvbigpIC0g
SW50UG9pbnQoKTsKKworICAgIHJldHVybiBXZWJTaXplKCk7Cit9CisKK1dlYlNpemUgV2ViRnJh
bWVJbXBsOjptYXhpbXVtU2Nyb2xsT2Zmc2V0KCkgY29uc3QKK3sKKyAgICBGcmFtZVZpZXcqIHZp
ZXcgPSBmcmFtZVZpZXcoKTsKKyAgICBpZiAodmlldykKKyAgICAgICAgcmV0dXJuIHZpZXctPm1h
eGltdW1TY3JvbGxQb3NpdGlvbigpIC0gSW50UG9pbnQoKTsKKworICAgIHJldHVybiBXZWJTaXpl
KCk7Cit9CisKIHZvaWQgV2ViRnJhbWVJbXBsOjpzZXRTY3JvbGxPZmZzZXQoY29uc3QgV2ViU2l6
ZSYgb2Zmc2V0KQogewogICAgIGlmIChGcmFtZVZpZXcqIHZpZXcgPSBmcmFtZVZpZXcoKSkKQEAg
LTU4Miw2ICs2MDAsMTYgQEAgYm9vbCBXZWJGcmFtZUltcGw6Omhhc1Zpc2libGVDb250ZW50KCkg
Y29uc3QKICAgICByZXR1cm4gZnJhbWUoKS0+dmlldygpLT52aXNpYmxlV2lkdGgoKSA+IDAgJiYg
ZnJhbWUoKS0+dmlldygpLT52aXNpYmxlSGVpZ2h0KCkgPiAwOwogfQogCitib29sIFdlYkZyYW1l
SW1wbDo6aGFzSG9yaXpvbnRhbFNjcm9sbGJhcigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fZnJh
bWUgJiYgbV9mcmFtZS0+dmlldygpICYmIG1fZnJhbWUtPnZpZXcoKS0+aG9yaXpvbnRhbFNjcm9s
bGJhcigpOworfQorCitib29sIFdlYkZyYW1lSW1wbDo6aGFzVmVydGljYWxTY3JvbGxiYXIoKSBj
b25zdAoreworICAgIHJldHVybiBtX2ZyYW1lICYmIG1fZnJhbWUtPnZpZXcoKSAmJiBtX2ZyYW1l
LT52aWV3KCktPnZlcnRpY2FsU2Nyb2xsYmFyKCk7Cit9CisKIFdlYlZpZXcqIFdlYkZyYW1lSW1w
bDo6dmlldygpIGNvbnN0CiB7CiAgICAgcmV0dXJuIHZpZXdJbXBsKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuaCBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5oCmluZGV4IDFmMGI0YWE2YmI4YjBkNTZjZDE5OGEx
NmUzZGFiOTUxZWIzYjMyYmUuLjkwNTAzMzA5YWE2M2Q4NGJmNGM5ODIxMTRhMzhmMjk0NWZhNDU1
MzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5oCkBAIC03Miwx
MCArNzIsMTQgQEAgcHVibGljOgogICAgIHZpcnR1YWwgV2ViVmVjdG9yPFdlYkljb25VUkw+IGlj
b25VUkxzKGludCBpY29uVHlwZXMpIGNvbnN0OwogICAgIHZpcnR1YWwgV2ViU2l6ZSBzY3JvbGxP
ZmZzZXQoKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0U2Nyb2xsT2Zmc2V0KGNvbnN0IFdl
YlNpemUmKTsKKyAgICB2aXJ0dWFsIFdlYlNpemUgbWluaW11bVNjcm9sbE9mZnNldCgpIGNvbnN0
OworICAgIHZpcnR1YWwgV2ViU2l6ZSBtYXhpbXVtU2Nyb2xsT2Zmc2V0KCkgY29uc3Q7CiAgICAg
dmlydHVhbCBXZWJTaXplIGNvbnRlbnRzU2l6ZSgpIGNvbnN0OwogICAgIHZpcnR1YWwgaW50IGNv
bnRlbnRzUHJlZmVycmVkV2lkdGgoKSBjb25zdDsKICAgICB2aXJ0dWFsIGludCBkb2N1bWVudEVs
ZW1lbnRTY3JvbGxIZWlnaHQoKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgaGFzVmlzaWJsZUNv
bnRlbnQoKSBjb25zdDsKKyAgICB2aXJ0dWFsIGJvb2wgaGFzSG9yaXpvbnRhbFNjcm9sbGJhcigp
IGNvbnN0OworICAgIHZpcnR1YWwgYm9vbCBoYXNWZXJ0aWNhbFNjcm9sbGJhcigpIGNvbnN0Owog
ICAgIHZpcnR1YWwgV2ViVmlldyogdmlldygpIGNvbnN0OwogICAgIHZpcnR1YWwgV2ViRnJhbWUq
IG9wZW5lcigpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCBjbGVhck9wZW5lcigpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>