<?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>88596</bug_id>
          
          <creation_ts>2012-06-07 17:27:56 -0700</creation_ts>
          <short_desc>[chromium/mac] Improve deviceDPI, rect, and availableRect computation</short_desc>
          <delta_ts>2012-06-08 12:15:02 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>abarth</cc>
    
    <cc>danakj</cc>
    
    <cc>fishd</cc>
    
    <cc>fsamuel</cc>
    
    <cc>johnme</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>644112</commentid>
    <comment_count>0</comment_count>
    <who name="Nico Weber">thakis</who>
    <bug_when>2012-06-07 17:27:56 -0700</bug_when>
    <thetext>[chromium/mac] Improve deviceDPI, rect, and availableRect computation</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>644116</commentid>
    <comment_count>1</comment_count>
      <attachid>146427</attachid>
    <who name="Nico Weber">thakis</who>
    <bug_when>2012-06-07 17:30:03 -0700</bug_when>
    <thetext>Created attachment 146427
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>644120</commentid>
    <comment_count>2</comment_count>
      <attachid>146428</attachid>
    <who name="Nico Weber">thakis</who>
    <bug_when>2012-06-07 17:31:49 -0700</bug_when>
    <thetext>Created attachment 146428
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>644127</commentid>
    <comment_count>3</comment_count>
      <attachid>146428</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-06-07 17:38:20 -0700</bug_when>
    <thetext>Comment on attachment 146428
Patch

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

&gt; Source/WebKit/chromium/src/mac/WebScreenInfoFactory.mm:87
&gt; +    float deviceDPI = 160 * deviceScaleFactor(view);

We have this 160 constant in ViewportArguments.cpp.  Should we move it to a header where it can be shared?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>644131</commentid>
    <comment_count>4</comment_count>
      <attachid>146428</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-06-07 17:41:35 -0700</bug_when>
    <thetext>Comment on attachment 146428
Patch

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

This looks reasonable to me, but you might want to wait for input from fsamuel.

&gt; Source/WebKit/chromium/src/mac/WebScreenInfoFactory.mm:65
&gt; +    if (window)
&gt; +    {

Is this proper style?  I&apos;m not familiar with the style for .mm files.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>644132</commentid>
    <comment_count>5</comment_count>
      <attachid>146428</attachid>
    <who name="Nico Weber">thakis</who>
    <bug_when>2012-06-07 17:42:05 -0700</bug_when>
    <thetext>Comment on attachment 146428
Patch

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

&gt;&gt; Source/WebKit/chromium/src/mac/WebScreenInfoFactory.mm:87
&gt;&gt; +    float deviceDPI = 160 * deviceScaleFactor(view);
&gt; 
&gt; We have this 160 constant in ViewportArguments.cpp.  Should we move it to a header where it can be shared?

I don&apos;t know. Basing anything off DPI seems silly to me, but then again I don&apos;t do mobile stuff. (Does mobile have useful, real DPI data? I&apos;m not sure why it would be less fake than on desktop though.)

This is already duplicated in render_widget.cc. I think longer term it&apos;s better to get rid of the DPI stuff, especially if we remove that from the viewport tag like you hinted at on webkit-dev.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>644134</commentid>
    <comment_count>6</comment_count>
    <who name="Nico Weber">thakis</who>
    <bug_when>2012-06-07 17:44:03 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 146428 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=146428&amp;action=review
&gt; 
&gt; This looks reasonable to me, but you might want to wait for input from fsamuel.
&gt; 
&gt; &gt; Source/WebKit/chromium/src/mac/WebScreenInfoFactory.mm:65
&gt; &gt; +    if (window)
&gt; &gt; +    {
&gt; 
&gt; Is this proper style?  I&apos;m not familiar with the style for .mm files.

No, it&apos;s not. Fixed, thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>644136</commentid>
    <comment_count>7</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-06-07 17:44:15 -0700</bug_when>
    <thetext>We&apos;ve already removed it from the viewport.  It seems possible that we can remove the concept of DPI from WebKit entirely.  I&apos;d need to grep the codebase to know for sure.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>644137</commentid>
    <comment_count>8</comment_count>
      <attachid>146430</attachid>
    <who name="Nico Weber">thakis</who>
    <bug_when>2012-06-07 17:44:24 -0700</bug_when>
    <thetext>Created attachment 146430
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>644138</commentid>
    <comment_count>9</comment_count>
      <attachid>146431</attachid>
    <who name="Nico Weber">thakis</who>
    <bug_when>2012-06-07 17:46:00 -0700</bug_when>
    <thetext>Created attachment 146431
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>644148</commentid>
    <comment_count>10</comment_count>
      <attachid>146435</attachid>
    <who name="Nico Weber">thakis</who>
    <bug_when>2012-06-07 17:52:14 -0700</bug_when>
    <thetext>Created attachment 146435
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>644233</commentid>
    <comment_count>11</comment_count>
      <attachid>146435</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-07 19:52:11 -0700</bug_when>
    <thetext>Comment on attachment 146435
Patch for landing

Clearing flags on attachment: 146435

Committed r119786: &lt;http://trac.webkit.org/changeset/119786&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>644234</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-07 19:52:16 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>644477</commentid>
    <comment_count>13</comment_count>
    <who name="John Mellor">johnme</who>
    <bug_when>2012-06-08 01:49:40 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; I don&apos;t know. Basing anything off DPI seems silly to me, but then again I don&apos;t do mobile stuff. (Does mobile have useful, real DPI data? I&apos;m not sure why it would be less fake than on desktop though.)

Mobile does have useful DPI data. iOS has retina vs non-retina. Android has DisplayMetrics.density[1], which is approximately equal to deviceDpi/160, though it often gets snapped to the nearest 0.25 or 0.5. Other platforms have similar ways of dealing with high dpi displays.

[1]: http://developer.android.com/reference/android/util/DisplayMetrics.html#density

&gt; 
&gt; This is already duplicated in render_widget.cc. I think longer term it&apos;s better to get rid of the DPI stuff, especially if we remove that from the viewport tag like you hinted at on webkit-dev.

(In reply to comment #7)
&gt; We&apos;ve already removed it from the viewport.  It seems possible that we can remove the concept of DPI from WebKit entirely.  I&apos;d need to grep the codebase to know for sure.

WebKit definitely needs to know about the deviceScaleFactor, which is based on device dpi (and typical viewing distance; see bug 88114). It&apos;s conceivable that we could just ask ports to provide the deviceScaleFactor directly instead of the device dpi, though it would be good to somehow make sure they calculate it correctly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>644649</commentid>
    <comment_count>14</comment_count>
    <who name="Nico Weber">thakis</who>
    <bug_when>2012-06-08 07:27:57 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; &gt; I don&apos;t know. Basing anything off DPI seems silly to me, but then again I don&apos;t do mobile stuff. (Does mobile have useful, real DPI data? I&apos;m not sure why it would be less fake than on desktop though.)
&gt; 
&gt; Mobile does have useful DPI data. iOS has retina vs non-retina.

That&apos;s not general DPI though, that&apos;s just 1 or 2.

&gt; Android has DisplayMetrics.density[1], which is approximately equal to deviceDpi/160, though it often gets snapped to the nearest 0.25 or 0.5. Other platforms have similar ways of dealing with high dpi displays.
&gt; 
&gt; [1]: http://developer.android.com/reference/android/util/DisplayMetrics.html#density

This looks like a java api (i.e. not exposed to the web). From what I can tell, the members that are computed here are currently used in 2 places (according to cs.chromium.org):

1. To compute the device scale factor, in render_widget.cc. This is done by `scale = dpi / 160;`. This is the part I need for mac, and this could be done more directly by just giving this class a deviceScale member instead.

2. For viewport-related things. Adam says that no longer needs DPI.

&gt; &gt; This is already duplicated in render_widget.cc. I think longer term it&apos;s better to get rid of the DPI stuff, especially if we remove that from the viewport tag like you hinted at on webkit-dev.
&gt; 
&gt; (In reply to comment #7)
&gt; &gt; We&apos;ve already removed it from the viewport.  It seems possible that we can remove the concept of DPI from WebKit entirely.  I&apos;d need to grep the codebase to know for sure.
&gt; 
&gt; WebKit definitely needs to know about the deviceScaleFactor, which is based on device dpi (and typical viewing distance; see bug 88114). It&apos;s conceivable that we could just ask ports to provide the deviceScaleFactor directly instead of the device dpi, though it would be good to somehow make sure they calculate it correctly.

At least on Mac, that&apos;d be a more convenient interface.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>644877</commentid>
    <comment_count>15</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-06-08 11:29:45 -0700</bug_when>
    <thetext>&gt; WebKit definitely needs to know about the deviceScaleFactor, which is based on device dpi

Oh definitely!  It&apos;s just a question of units.  I was wondering if we could get WebKit to use &quot;device scale factor&quot; units consistently rather than &quot;DPI&quot; units.  If you trace these code paths, we end up multiplying and dividing by 160 a bunch of times, which is kind of silly.  It&apos;s not a big deal either way.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>644900</commentid>
    <comment_count>16</comment_count>
    <who name="John Mellor">johnme</who>
    <bug_when>2012-06-08 11:43:47 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; This looks like a java api (i.e. not exposed to the web). From what I can tell, the members that are computed here are currently used in 2 places (according to cs.chromium.org):
&gt; 
&gt; 1. To compute the device scale factor, in render_widget.cc. This is done by `scale = dpi / 160;`. This is the part I need for mac, and this could be done more directly by just giving this class a deviceScale member instead.

Agreed. But note that the deviceScale shouldn&apos;t necessarily be 1. On desktop mac, when accurate dpi information is available it should probably be max(1, true dpi / 96) in order to support high dpi monitors (and comply with the definition of a CSS px); see bug 88114 for explanation. This assumes that deviceScaleFactor does something useful on desktop mac; ideally it would increase pageZoomFactor proportionately, so that full page zoom occurs.

For example on a theoretical &quot;retina&quot; MacBook, deviceScaleFactor would be 2 hence pageZoomFactor would be 2 and the initial containing block width would be half the width of the window in physical pixels == the width of the window in density-independent &quot;UI&quot; pixels.

(In reply to comment #15)
&gt; I was wondering if we could get WebKit to use &quot;device scale factor&quot; units consistently rather than &quot;DPI&quot; units.  If you trace these code paths, we end up multiplying and dividing by 160 a bunch of times, which is kind of silly.  It&apos;s not a big deal either way.

Yeah, sounds sensible. Certainly most of the mobile ports seem to end up doing deviceScaleFactor = (systemDeviceScaleFactor * 160) / 160, which I agree is needlessly complicated (though if we change this we should make sure to clearly comment how the deviceScaleFactor should be calculated, as it&apos;s not obvious).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>644924</commentid>
    <comment_count>17</comment_count>
    <who name="Nico Weber">thakis</who>
    <bug_when>2012-06-08 12:15:02 -0700</bug_when>
    <thetext>
&gt; Agreed. But note that the deviceScale shouldn&apos;t necessarily be 1. On desktop mac, when accurate dpi information is available it should probably be max(1, true dpi / 96)

I&apos;m close to certain that it will be always 1 or 2 on desktop macs. That&apos;s what all apps are going to assume. Macs don&apos;t try to work ok with all hardware out there, instead they try to work great with some of the hardware.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>146427</attachid>
            <date>2012-06-07 17:30:03 -0700</date>
            <delta_ts>2012-06-07 17:31:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-88596-20120607173002.patch</filename>
            <type>text/plain</type>
            <size>4612</size>
            <attacher name="Nico Weber">thakis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE5NzMzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IDA3NWU5OTZjNmRhZGQyZWU1Zjg2Mjk4OTVkZjE5YWEwOWM1ZTQxZjQuLjJiZjQ0OTZkZjgwMTQ1
MTkxZjVkMmFkNzFjMzI5MGExN2ZkMzZjOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjUgQEAKKzIwMTItMDYtMDcgIE5pY28gV2ViZXIgIDx0aGFraXNAY2hyb21pdW0u
b3JnPgorCisgICAgICAgIFtjaHJvbWl1bS9tYWNdIEltcHJvdmUgZGV2aWNlRFBJLCByZWN0LCBh
bmQgYXZhaWxhYmxlUmVjdCBjb21wdXRhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODg1OTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBTZXQgZGV2aWNlRFBJIHRvIDE2MCBmb3Igbm9ybWFsIGRpc3Bs
YXlzIGFuZCAzMjAgZm9yIEhpRFBJIGRpc3BsYXlzLgorICAgICAgICAoV2h5IDE2MD8gVGhhdCdz
IHdoYXQgY2hyb21pdW0ncyByZW5kZXJfdmlldy5jYyBhc3N1bWVzIGFzIGRlZmF1bHQKKyAgICAg
ICAgc2luZ2xlLXJlc29sdXRpb24gcmVzb2x1dGlvbiBhdCB0aGUgbW9tZW50LiBUaGUgb25seSBv
dGhlciBwbGFjZQorICAgICAgICB3aGVyZSB0aGlzIG51bWJlciBnZXRzIHVzZWQgaXMgZml4ZWQg
bGF5b3V0IG1vZGUsIHdoaWNoIGlzIGN1cnJlbnRseQorICAgICAgICBub3QgZW5hYmxlZC4pCisK
KyAgICAgICAgQWxzbyBmaXggcmVjdCBhbmQgYXZhaWxhYmxlUmVjdCBjb21wdXRhdGlvbnM6IFRo
ZXkgZ2V0IHJldHVybmVkIGluCisgICAgICAgIHVzZXIgc3BhY2UgYWxyZWFkeS4KKworICAgICAg
ICAqIHNyYy9tYWMvV2ViU2NyZWVuSW5mb0ZhY3RvcnkubW06CisgICAgICAgIChXZWJLaXQ6OnRv
VXNlclNwYWNlKToKKyAgICAgICAgKFdlYktpdDo6ZGV2aWNlU2NhbGVGYWN0b3IpOgorICAgICAg
ICAoV2ViS2l0KToKKyAgICAgICAgKFdlYktpdDo6V2ViU2NyZWVuSW5mb0ZhY3Rvcnk6OnNjcmVl
bkluZm8pOgorCiAyMDEyLTA2LTA3ICBEYW5pZWwgRXJhdCAgPGRlcmF0QGNocm9taXVtLm9yZz4K
IAogICAgICAgICBBZGQgc2V0dGluZyB0byBlbmFibGUgc3VicGl4ZWwtcG9zaXRpb25lZCB0ZXh0
IG9uIExpbnV4LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvbWFjL1dl
YlNjcmVlbkluZm9GYWN0b3J5Lm1tIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvbWFjL1dl
YlNjcmVlbkluZm9GYWN0b3J5Lm1tCmluZGV4IGI5ZmRjMTQxY2I3YmQ4Y2MxZGIzOGM2NTE2NDBi
ZmFkOWVjZTcyOGMuLmJmNDQyYTAzNDkwMGVmZGJjMDE1ZmIzMjdiM2ZlOGNiYzk3Y2FmNzggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL21hYy9XZWJTY3JlZW5JbmZvRmFj
dG9yeS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9tYWMvV2ViU2NyZWVuSW5m
b0ZhY3RvcnkubW0KQEAgLTM1LDYgKzM1LDE0IEBACiAKICNpbmNsdWRlICJXZWJTY3JlZW5JbmZv
LmgiCiAKK0BpbnRlcmZhY2UgTlNXaW5kb3cgKExpb25BUEkpCistIChDR0Zsb2F0KWJhY2tpbmdT
Y2FsZUZhY3RvcjsKK0BlbmQKKworQGludGVyZmFjZSBOU1NjcmVlbiAoTGlvbkFQSSkKKy0gKENH
RmxvYXQpYmFja2luZ1NjYWxlRmFjdG9yOworQGVuZAorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAog
c3RhdGljIE5TU2NyZWVuKiBzY3JlZW5Gb3JXaW5kb3coTlNXaW5kb3cqIHdpbmRvdykKQEAgLTUz
LDkgKzYxLDggQEAgc3RhdGljIE5TU2NyZWVuKiBzY3JlZW5Gb3JXaW5kb3coTlNXaW5kb3cqIHdp
bmRvdykKIHN0YXRpYyBXZWJSZWN0IHRvVXNlclNwYWNlKGNvbnN0IE5TUmVjdCYgcmVjdCwgTlNX
aW5kb3cqIGRlc3RpbmF0aW9uKQogewogICAgIENHUmVjdCB1c2VyUmVjdCA9IE5TUmVjdFRvQ0dS
ZWN0KHJlY3QpOwotCiAgICAgdXNlclJlY3Qub3JpZ2luLnkgPQotICAgICAgICBOU01heFkoW3Nj
cmVlbkZvcldpbmRvdyhkZXN0aW5hdGlvbikgZnJhbWVdKSAtICh1c2VyUmVjdC5vcmlnaW4ueSAr
IHVzZXJSZWN0LnNpemUuaGVpZ2h0KTsgLy8gZmxpcAorICAgICAgICBOU01heFkoW3NjcmVlbkZv
cldpbmRvdyhkZXN0aW5hdGlvbikgZnJhbWVdKSAtIE5TTWF4WShyZWN0KTsgLy8gZmxpcAogCiAg
ICAgaWYgKGRlc3RpbmF0aW9uKSB7CiAgICAgICAgIENHRmxvYXQgc2NhbGUgPSAxIC8gW2Rlc3Rp
bmF0aW9uIHVzZXJTcGFjZVNjYWxlRmFjdG9yXTsgIC8vIHNjYWxlIGRvd24KQEAgLTcxLDE5ICs3
OCwzNSBAQCBzdGF0aWMgV2ViUmVjdCB0b1VzZXJTcGFjZShjb25zdCBOU1JlY3QmIHJlY3QsIE5T
V2luZG93KiBkZXN0aW5hdGlvbikKICAgICAgICAgICAgICAgICAgICB1c2VyUmVjdC5zaXplLmhl
aWdodCk7CiB9CiAKK3N0YXRpYyBmbG9hdCBkZXZpY2VTY2FsZUZhY3RvcihOU1ZpZXcqIHZpZXcp
Cit7CisgICAgTlNXaW5kb3cqIHdpbmRvdyA9IFt2aWV3IHdpbmRvd107CisgICAgaWYgKHdpbmRv
dykKKyAgICB7CisgICAgICAgIGlmIChbd2luZG93IHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0
b3IoYmFja2luZ1NjYWxlRmFjdG9yKV0pCisgICAgICAgICAgICByZXR1cm4gW3dpbmRvdyBiYWNr
aW5nU2NhbGVGYWN0b3JdOworICAgICAgICByZXR1cm4gW3dpbmRvdyB1c2VyU3BhY2VTY2FsZUZh
Y3Rvcl07CisgICAgfQorCisgICAgTlNBcnJheSogc2NyZWVucyA9IFtOU1NjcmVlbiBzY3JlZW5z
XTsKKyAgICBpZiAoIVtzY3JlZW5zIGNvdW50XSkKKyAgICAgICAgcmV0dXJuIDE7CisKKyAgICBO
U1NjcmVlbiogc2NyZWVuID0gW3NjcmVlbnMgb2JqZWN0QXRJbmRleDowXTsKKyAgICBpZiAoW3Nj
cmVlbiByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKGJhY2tpbmdTY2FsZUZhY3RvcildKQor
ICAgICAgICByZXR1cm4gW3NjcmVlbiBiYWNraW5nU2NhbGVGYWN0b3JdOworICAgIHJldHVybiBb
c2NyZWVuIHVzZXJTcGFjZVNjYWxlRmFjdG9yXTsKK30KKwogV2ViU2NyZWVuSW5mbyBXZWJTY3Jl
ZW5JbmZvRmFjdG9yeTo6c2NyZWVuSW5mbyhOU1ZpZXcqIHZpZXcpCiB7CiAgICAgTlNTdHJpbmcg
KmNvbG9yU3BhY2UgPSBOU0NvbG9yU3BhY2VGcm9tRGVwdGgoW1tOU1NjcmVlbiBkZWVwZXN0U2Ny
ZWVuXSBkZXB0aF0pOwogCiAgICAgV2ViU2NyZWVuSW5mbyByZXN1bHRzOwogCi0gICAgLy8gRklY
TUU6IEN1cnJlbnRseSBNYWMgc2VlbXMgdG8gYWx3YXlzIHJlcG9ydCA3MmRwaS4gTmVlZCB0byBm
aW5kIGEgd2F5IHRvCi0gICAgLy8gcmVwb3J0IHRoZSB0cnVlIHNjcmVlbiBkcGkuCi0gICAgTlNX
aW5kb3cqIHdpbmRvdyA9IFt2aWV3IHdpbmRvd107Ci0gICAgTlNEaWN0aW9uYXJ5KiBkZXZpY2VE
ZXNjcmlwdGlvbiA9IFt3aW5kb3cgZGV2aWNlRGVzY3JpcHRpb25dOwotICAgIE5TU2l6ZSBkZXZp
Y2VEUEkgPSBbW2RldmljZURlc2NyaXB0aW9uIHZhbHVlRm9yS2V5Ok5TRGV2aWNlUmVzb2x1dGlv
bl0gc2l6ZVZhbHVlXTsKLSAgICByZXN1bHRzLmhvcml6b250YWxEUEkgPSBzdGF0aWNfY2FzdDxp
bnQ+KGRldmljZURQSS53aWR0aCk7Ci0gICAgcmVzdWx0cy52ZXJ0aWNhbERQSSA9IHN0YXRpY19j
YXN0PGludD4oZGV2aWNlRFBJLmhlaWdodCk7CisgICAgZmxvYXQgZGV2aWNlRFBJID0gMTYwICog
ZGV2aWNlU2NhbGVGYWN0b3Iodmlldyk7CisgICAgcmVzdWx0cy5ob3Jpem9udGFsRFBJID0gZGV2
aWNlRFBJOworICAgIHJlc3VsdHMudmVydGljYWxEUEkgPSBkZXZpY2VEUEk7CiAKICAgICByZXN1
bHRzLmRlcHRoID0KICAgICAgICAgTlNCaXRzUGVyUGl4ZWxGcm9tRGVwdGgoW1tOU1NjcmVlbiBk
ZWVwZXN0U2NyZWVuXSBkZXB0aF0pOwpAQCAtOTMsMTAgKzExNiw4IEBAIFdlYlNjcmVlbkluZm8g
V2ViU2NyZWVuSW5mb0ZhY3Rvcnk6OnNjcmVlbkluZm8oTlNWaWV3KiB2aWV3KQogICAgICAgICAg
ICAgICAgICAgICAgICAgfHwgY29sb3JTcGFjZSA9PSBOU0NhbGlicmF0ZWRCbGFja0NvbG9yU3Bh
Y2UKICAgICAgICAgICAgICAgICAgICAgICAgIHx8IGNvbG9yU3BhY2UgPT0gTlNEZXZpY2VXaGl0
ZUNvbG9yU3BhY2UKICAgICAgICAgICAgICAgICAgICAgICAgIHx8IGNvbG9yU3BhY2UgPT0gTlNE
ZXZpY2VCbGFja0NvbG9yU3BhY2U7Ci0gICAgcmVzdWx0cy5yZWN0ID0KLSAgICAgICAgdG9Vc2Vy
U3BhY2UoW3NjcmVlbkZvcldpbmRvdyhbdmlldyB3aW5kb3ddKSBmcmFtZV0sIFt2aWV3IHdpbmRv
d10pOwotICAgIHJlc3VsdHMuYXZhaWxhYmxlUmVjdCA9Ci0gICAgICAgIHRvVXNlclNwYWNlKFtz
Y3JlZW5Gb3JXaW5kb3coW3ZpZXcgd2luZG93XSkgdmlzaWJsZUZyYW1lXSwgW3ZpZXcgd2luZG93
XSk7CisgICAgcmVzdWx0cy5yZWN0ID0gW3NjcmVlbkZvcldpbmRvdyhbdmlldyB3aW5kb3ddKSBm
cmFtZV07CisgICAgcmVzdWx0cy5hdmFpbGFibGVSZWN0ID0gW3NjcmVlbkZvcldpbmRvdyhbdmll
dyB3aW5kb3ddKSB2aXNpYmxlRnJhbWVdOwogICAgIHJldHVybiByZXN1bHRzOwogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>146428</attachid>
            <date>2012-06-07 17:31:49 -0700</date>
            <delta_ts>2012-06-07 17:44:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-88596-20120607173149.patch</filename>
            <type>text/plain</type>
            <size>4769</size>
            <attacher name="Nico Weber">thakis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE5NzMzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IDA3NWU5OTZjNmRhZGQyZWU1Zjg2Mjk4OTVkZjE5YWEwOWM1ZTQxZjQuLjg0YzE3MzE1ZGJlNDAw
MjY3NjdmMzgwMjk5NTM0ZjYwNGU4ZTlhYjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjcgQEAKKzIwMTItMDYtMDcgIE5pY28gV2ViZXIgIDx0aGFraXNAY2hyb21pdW0u
b3JnPgorCisgICAgICAgIFtjaHJvbWl1bS9tYWNdIEltcHJvdmUgZGV2aWNlRFBJLCByZWN0LCBh
bmQgYXZhaWxhYmxlUmVjdCBjb21wdXRhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODg1OTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBTZXQgZGV2aWNlRFBJIHRvIDE2MCBmb3Igbm9ybWFsIGRpc3Bs
YXlzIGFuZCAzMjAgZm9yIEhpRFBJIGRpc3BsYXlzLgorICAgICAgICAoV2h5IDE2MD8gVGhhdCdz
IHdoYXQgY2hyb21pdW0ncyByZW5kZXJfdmlldy5jYyBhc3N1bWVzIGFzIGRlZmF1bHQKKyAgICAg
ICAgc2luZ2xlLXJlc29sdXRpb24gcmVzb2x1dGlvbiBhdCB0aGUgbW9tZW50LiBUaGUgb25seSBv
dGhlciBwbGFjZQorICAgICAgICB3aGVyZSB0aGlzIG51bWJlciBnZXRzIHVzZWQgaXMgZml4ZWQg
bGF5b3V0IG1vZGUsIHdoaWNoIGlzIGN1cnJlbnRseQorICAgICAgICBub3QgZW5hYmxlZC4pCisK
KyAgICAgICAgQWxzbyBmaXggcmVjdCBhbmQgYXZhaWxhYmxlUmVjdCBjb21wdXRhdGlvbnM6IFRo
ZXkgZ2V0IHJldHVybmVkIGluCisgICAgICAgIHVzZXIgc3BhY2UgYWxyZWFkeS4KKworICAgICAg
ICBOZWVkZWQgZm9yIGh0dHA6Ly9jcmJ1Zy5jb20vMzE5NjAuCisKKyAgICAgICAgKiBzcmMvbWFj
L1dlYlNjcmVlbkluZm9GYWN0b3J5Lm1tOgorICAgICAgICAoV2ViS2l0Ojp0b1VzZXJTcGFjZSk6
CisgICAgICAgIChXZWJLaXQ6OmRldmljZVNjYWxlRmFjdG9yKToKKyAgICAgICAgKFdlYktpdCk6
CisgICAgICAgIChXZWJLaXQ6OldlYlNjcmVlbkluZm9GYWN0b3J5OjpzY3JlZW5JbmZvKToKKwog
MjAxMi0wNi0wNyAgRGFuaWVsIEVyYXQgIDxkZXJhdEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAg
QWRkIHNldHRpbmcgdG8gZW5hYmxlIHN1YnBpeGVsLXBvc2l0aW9uZWQgdGV4dCBvbiBMaW51eC4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL21hYy9XZWJTY3JlZW5JbmZv
RmFjdG9yeS5tbSBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL21hYy9XZWJTY3JlZW5JbmZv
RmFjdG9yeS5tbQppbmRleCBiOWZkYzE0MWNiN2JkOGNjMWRiMzhjNjUxNjQwYmZhZDllY2U3Mjhj
Li5kM2UzZmFmMGFmMWI2OTA1NzE2MjBlMWZkNWEwZTYwMGQzYWQ3MDVhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9tYWMvV2ViU2NyZWVuSW5mb0ZhY3RvcnkubW0KKysr
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvbWFjL1dlYlNjcmVlbkluZm9GYWN0b3J5Lm1t
CkBAIC0zNSw2ICszNSwxNCBAQAogCiAjaW5jbHVkZSAiV2ViU2NyZWVuSW5mby5oIgogCitAaW50
ZXJmYWNlIE5TV2luZG93IChMaW9uQVBJKQorLSAoQ0dGbG9hdCliYWNraW5nU2NhbGVGYWN0b3I7
CitAZW5kCisKK0BpbnRlcmZhY2UgTlNTY3JlZW4gKExpb25BUEkpCistIChDR0Zsb2F0KWJhY2tp
bmdTY2FsZUZhY3RvcjsKK0BlbmQKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIHN0YXRpYyBOU1Nj
cmVlbiogc2NyZWVuRm9yV2luZG93KE5TV2luZG93KiB3aW5kb3cpCkBAIC01MCwyNSArNTgsMjQg
QEAgc3RhdGljIE5TU2NyZWVuKiBzY3JlZW5Gb3JXaW5kb3coTlNXaW5kb3cqIHdpbmRvdykKICAg
ICByZXR1cm4gbmlsOwogfQogCi1zdGF0aWMgV2ViUmVjdCB0b1VzZXJTcGFjZShjb25zdCBOU1Jl
Y3QmIHJlY3QsIE5TV2luZG93KiBkZXN0aW5hdGlvbikKK3N0YXRpYyBmbG9hdCBkZXZpY2VTY2Fs
ZUZhY3RvcihOU1ZpZXcqIHZpZXcpCiB7Ci0gICAgQ0dSZWN0IHVzZXJSZWN0ID0gTlNSZWN0VG9D
R1JlY3QocmVjdCk7Ci0KLSAgICB1c2VyUmVjdC5vcmlnaW4ueSA9Ci0gICAgICAgIE5TTWF4WShb
c2NyZWVuRm9yV2luZG93KGRlc3RpbmF0aW9uKSBmcmFtZV0pIC0gKHVzZXJSZWN0Lm9yaWdpbi55
ICsgdXNlclJlY3Quc2l6ZS5oZWlnaHQpOyAvLyBmbGlwCi0KLSAgICBpZiAoZGVzdGluYXRpb24p
IHsKLSAgICAgICAgQ0dGbG9hdCBzY2FsZSA9IDEgLyBbZGVzdGluYXRpb24gdXNlclNwYWNlU2Nh
bGVGYWN0b3JdOyAgLy8gc2NhbGUgZG93bgotICAgICAgICB1c2VyUmVjdC5vcmlnaW4ueCAqPSBz
Y2FsZTsKLSAgICAgICAgdXNlclJlY3Qub3JpZ2luLnkgKj0gc2NhbGU7Ci0gICAgICAgIHVzZXJS
ZWN0LnNpemUud2lkdGggKj0gc2NhbGU7Ci0gICAgICAgIHVzZXJSZWN0LnNpemUuaGVpZ2h0ICo9
IHNjYWxlOworICAgIE5TV2luZG93KiB3aW5kb3cgPSBbdmlldyB3aW5kb3ddOworICAgIGlmICh3
aW5kb3cpCisgICAgeworICAgICAgICBpZiAoW3dpbmRvdyByZXNwb25kc1RvU2VsZWN0b3I6QHNl
bGVjdG9yKGJhY2tpbmdTY2FsZUZhY3RvcildKQorICAgICAgICAgICAgcmV0dXJuIFt3aW5kb3cg
YmFja2luZ1NjYWxlRmFjdG9yXTsKKyAgICAgICAgcmV0dXJuIFt3aW5kb3cgdXNlclNwYWNlU2Nh
bGVGYWN0b3JdOwogICAgIH0KIAotICAgIHJldHVybiBXZWJSZWN0KHVzZXJSZWN0Lm9yaWdpbi54
LAotICAgICAgICAgICAgICAgICAgIHVzZXJSZWN0Lm9yaWdpbi55LAotICAgICAgICAgICAgICAg
ICAgIHVzZXJSZWN0LnNpemUud2lkdGgsCi0gICAgICAgICAgICAgICAgICAgdXNlclJlY3Quc2l6
ZS5oZWlnaHQpOworICAgIE5TQXJyYXkqIHNjcmVlbnMgPSBbTlNTY3JlZW4gc2NyZWVuc107Cisg
ICAgaWYgKCFbc2NyZWVucyBjb3VudF0pCisgICAgICAgIHJldHVybiAxOworCisgICAgTlNTY3Jl
ZW4qIHNjcmVlbiA9IFtzY3JlZW5zIG9iamVjdEF0SW5kZXg6MF07CisgICAgaWYgKFtzY3JlZW4g
cmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihiYWNraW5nU2NhbGVGYWN0b3IpXSkKKyAgICAg
ICAgcmV0dXJuIFtzY3JlZW4gYmFja2luZ1NjYWxlRmFjdG9yXTsKKyAgICByZXR1cm4gW3NjcmVl
biB1c2VyU3BhY2VTY2FsZUZhY3Rvcl07CiB9CiAKIFdlYlNjcmVlbkluZm8gV2ViU2NyZWVuSW5m
b0ZhY3Rvcnk6OnNjcmVlbkluZm8oTlNWaWV3KiB2aWV3KQpAQCAtNzcsMTMgKzg0LDkgQEAgV2Vi
U2NyZWVuSW5mbyBXZWJTY3JlZW5JbmZvRmFjdG9yeTo6c2NyZWVuSW5mbyhOU1ZpZXcqIHZpZXcp
CiAKICAgICBXZWJTY3JlZW5JbmZvIHJlc3VsdHM7CiAKLSAgICAvLyBGSVhNRTogQ3VycmVudGx5
IE1hYyBzZWVtcyB0byBhbHdheXMgcmVwb3J0IDcyZHBpLiBOZWVkIHRvIGZpbmQgYSB3YXkgdG8K
LSAgICAvLyByZXBvcnQgdGhlIHRydWUgc2NyZWVuIGRwaS4KLSAgICBOU1dpbmRvdyogd2luZG93
ID0gW3ZpZXcgd2luZG93XTsKLSAgICBOU0RpY3Rpb25hcnkqIGRldmljZURlc2NyaXB0aW9uID0g
W3dpbmRvdyBkZXZpY2VEZXNjcmlwdGlvbl07Ci0gICAgTlNTaXplIGRldmljZURQSSA9IFtbZGV2
aWNlRGVzY3JpcHRpb24gdmFsdWVGb3JLZXk6TlNEZXZpY2VSZXNvbHV0aW9uXSBzaXplVmFsdWVd
OwotICAgIHJlc3VsdHMuaG9yaXpvbnRhbERQSSA9IHN0YXRpY19jYXN0PGludD4oZGV2aWNlRFBJ
LndpZHRoKTsKLSAgICByZXN1bHRzLnZlcnRpY2FsRFBJID0gc3RhdGljX2Nhc3Q8aW50PihkZXZp
Y2VEUEkuaGVpZ2h0KTsKKyAgICBmbG9hdCBkZXZpY2VEUEkgPSAxNjAgKiBkZXZpY2VTY2FsZUZh
Y3Rvcih2aWV3KTsKKyAgICByZXN1bHRzLmhvcml6b250YWxEUEkgPSBkZXZpY2VEUEk7CisgICAg
cmVzdWx0cy52ZXJ0aWNhbERQSSA9IGRldmljZURQSTsKIAogICAgIHJlc3VsdHMuZGVwdGggPQog
ICAgICAgICBOU0JpdHNQZXJQaXhlbEZyb21EZXB0aChbW05TU2NyZWVuIGRlZXBlc3RTY3JlZW5d
IGRlcHRoXSk7CkBAIC05MywxMCArOTYsOCBAQCBXZWJTY3JlZW5JbmZvIFdlYlNjcmVlbkluZm9G
YWN0b3J5OjpzY3JlZW5JbmZvKE5TVmlldyogdmlldykKICAgICAgICAgICAgICAgICAgICAgICAg
IHx8IGNvbG9yU3BhY2UgPT0gTlNDYWxpYnJhdGVkQmxhY2tDb2xvclNwYWNlCiAgICAgICAgICAg
ICAgICAgICAgICAgICB8fCBjb2xvclNwYWNlID09IE5TRGV2aWNlV2hpdGVDb2xvclNwYWNlCiAg
ICAgICAgICAgICAgICAgICAgICAgICB8fCBjb2xvclNwYWNlID09IE5TRGV2aWNlQmxhY2tDb2xv
clNwYWNlOwotICAgIHJlc3VsdHMucmVjdCA9Ci0gICAgICAgIHRvVXNlclNwYWNlKFtzY3JlZW5G
b3JXaW5kb3coW3ZpZXcgd2luZG93XSkgZnJhbWVdLCBbdmlldyB3aW5kb3ddKTsKLSAgICByZXN1
bHRzLmF2YWlsYWJsZVJlY3QgPQotICAgICAgICB0b1VzZXJTcGFjZShbc2NyZWVuRm9yV2luZG93
KFt2aWV3IHdpbmRvd10pIHZpc2libGVGcmFtZV0sIFt2aWV3IHdpbmRvd10pOworICAgIHJlc3Vs
dHMucmVjdCA9IFtzY3JlZW5Gb3JXaW5kb3coW3ZpZXcgd2luZG93XSkgZnJhbWVdOworICAgIHJl
c3VsdHMuYXZhaWxhYmxlUmVjdCA9IFtzY3JlZW5Gb3JXaW5kb3coW3ZpZXcgd2luZG93XSkgdmlz
aWJsZUZyYW1lXTsKICAgICByZXR1cm4gcmVzdWx0czsKIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>146430</attachid>
            <date>2012-06-07 17:44:24 -0700</date>
            <delta_ts>2012-06-07 17:45:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-88596-20120607174424.patch</filename>
            <type>text/plain</type>
            <size>4764</size>
            <attacher name="Nico Weber">thakis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE5NzMzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IDA3NWU5OTZjNmRhZGQyZWU1Zjg2Mjk4OTVkZjE5YWEwOWM1ZTQxZjQuLjg0YzE3MzE1ZGJlNDAw
MjY3NjdmMzgwMjk5NTM0ZjYwNGU4ZTlhYjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjcgQEAKKzIwMTItMDYtMDcgIE5pY28gV2ViZXIgIDx0aGFraXNAY2hyb21pdW0u
b3JnPgorCisgICAgICAgIFtjaHJvbWl1bS9tYWNdIEltcHJvdmUgZGV2aWNlRFBJLCByZWN0LCBh
bmQgYXZhaWxhYmxlUmVjdCBjb21wdXRhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODg1OTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBTZXQgZGV2aWNlRFBJIHRvIDE2MCBmb3Igbm9ybWFsIGRpc3Bs
YXlzIGFuZCAzMjAgZm9yIEhpRFBJIGRpc3BsYXlzLgorICAgICAgICAoV2h5IDE2MD8gVGhhdCdz
IHdoYXQgY2hyb21pdW0ncyByZW5kZXJfdmlldy5jYyBhc3N1bWVzIGFzIGRlZmF1bHQKKyAgICAg
ICAgc2luZ2xlLXJlc29sdXRpb24gcmVzb2x1dGlvbiBhdCB0aGUgbW9tZW50LiBUaGUgb25seSBv
dGhlciBwbGFjZQorICAgICAgICB3aGVyZSB0aGlzIG51bWJlciBnZXRzIHVzZWQgaXMgZml4ZWQg
bGF5b3V0IG1vZGUsIHdoaWNoIGlzIGN1cnJlbnRseQorICAgICAgICBub3QgZW5hYmxlZC4pCisK
KyAgICAgICAgQWxzbyBmaXggcmVjdCBhbmQgYXZhaWxhYmxlUmVjdCBjb21wdXRhdGlvbnM6IFRo
ZXkgZ2V0IHJldHVybmVkIGluCisgICAgICAgIHVzZXIgc3BhY2UgYWxyZWFkeS4KKworICAgICAg
ICBOZWVkZWQgZm9yIGh0dHA6Ly9jcmJ1Zy5jb20vMzE5NjAuCisKKyAgICAgICAgKiBzcmMvbWFj
L1dlYlNjcmVlbkluZm9GYWN0b3J5Lm1tOgorICAgICAgICAoV2ViS2l0Ojp0b1VzZXJTcGFjZSk6
CisgICAgICAgIChXZWJLaXQ6OmRldmljZVNjYWxlRmFjdG9yKToKKyAgICAgICAgKFdlYktpdCk6
CisgICAgICAgIChXZWJLaXQ6OldlYlNjcmVlbkluZm9GYWN0b3J5OjpzY3JlZW5JbmZvKToKKwog
MjAxMi0wNi0wNyAgRGFuaWVsIEVyYXQgIDxkZXJhdEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAg
QWRkIHNldHRpbmcgdG8gZW5hYmxlIHN1YnBpeGVsLXBvc2l0aW9uZWQgdGV4dCBvbiBMaW51eC4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL21hYy9XZWJTY3JlZW5JbmZv
RmFjdG9yeS5tbSBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL21hYy9XZWJTY3JlZW5JbmZv
RmFjdG9yeS5tbQppbmRleCBiOWZkYzE0MWNiN2JkOGNjMWRiMzhjNjUxNjQwYmZhZDllY2U3Mjhj
Li4yMmQ4YWJlYmM5NzMzNmQ0NmNjNmI5MWYwMzg5MTFmYzYwNDdmM2FlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9tYWMvV2ViU2NyZWVuSW5mb0ZhY3RvcnkubW0KKysr
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvbWFjL1dlYlNjcmVlbkluZm9GYWN0b3J5Lm1t
CkBAIC0zNSw2ICszNSwxNCBAQAogCiAjaW5jbHVkZSAiV2ViU2NyZWVuSW5mby5oIgogCitAaW50
ZXJmYWNlIE5TV2luZG93IChMaW9uQVBJKQorLSAoQ0dGbG9hdCliYWNraW5nU2NhbGVGYWN0b3I7
CitAZW5kCisKK0BpbnRlcmZhY2UgTlNTY3JlZW4gKExpb25BUEkpCistIChDR0Zsb2F0KWJhY2tp
bmdTY2FsZUZhY3RvcjsKK0BlbmQKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIHN0YXRpYyBOU1Nj
cmVlbiogc2NyZWVuRm9yV2luZG93KE5TV2luZG93KiB3aW5kb3cpCkBAIC01MCwyNSArNTgsMjMg
QEAgc3RhdGljIE5TU2NyZWVuKiBzY3JlZW5Gb3JXaW5kb3coTlNXaW5kb3cqIHdpbmRvdykKICAg
ICByZXR1cm4gbmlsOwogfQogCi1zdGF0aWMgV2ViUmVjdCB0b1VzZXJTcGFjZShjb25zdCBOU1Jl
Y3QmIHJlY3QsIE5TV2luZG93KiBkZXN0aW5hdGlvbikKK3N0YXRpYyBmbG9hdCBkZXZpY2VTY2Fs
ZUZhY3RvcihOU1ZpZXcqIHZpZXcpCiB7Ci0gICAgQ0dSZWN0IHVzZXJSZWN0ID0gTlNSZWN0VG9D
R1JlY3QocmVjdCk7Ci0KLSAgICB1c2VyUmVjdC5vcmlnaW4ueSA9Ci0gICAgICAgIE5TTWF4WShb
c2NyZWVuRm9yV2luZG93KGRlc3RpbmF0aW9uKSBmcmFtZV0pIC0gKHVzZXJSZWN0Lm9yaWdpbi55
ICsgdXNlclJlY3Quc2l6ZS5oZWlnaHQpOyAvLyBmbGlwCi0KLSAgICBpZiAoZGVzdGluYXRpb24p
IHsKLSAgICAgICAgQ0dGbG9hdCBzY2FsZSA9IDEgLyBbZGVzdGluYXRpb24gdXNlclNwYWNlU2Nh
bGVGYWN0b3JdOyAgLy8gc2NhbGUgZG93bgotICAgICAgICB1c2VyUmVjdC5vcmlnaW4ueCAqPSBz
Y2FsZTsKLSAgICAgICAgdXNlclJlY3Qub3JpZ2luLnkgKj0gc2NhbGU7Ci0gICAgICAgIHVzZXJS
ZWN0LnNpemUud2lkdGggKj0gc2NhbGU7Ci0gICAgICAgIHVzZXJSZWN0LnNpemUuaGVpZ2h0ICo9
IHNjYWxlOworICAgIE5TV2luZG93KiB3aW5kb3cgPSBbdmlldyB3aW5kb3ddOworICAgIGlmICh3
aW5kb3cpIHsKKyAgICAgICAgaWYgKFt3aW5kb3cgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rv
cihiYWNraW5nU2NhbGVGYWN0b3IpXSkKKyAgICAgICAgICAgIHJldHVybiBbd2luZG93IGJhY2tp
bmdTY2FsZUZhY3Rvcl07CisgICAgICAgIHJldHVybiBbd2luZG93IHVzZXJTcGFjZVNjYWxlRmFj
dG9yXTsKICAgICB9CiAKLSAgICByZXR1cm4gV2ViUmVjdCh1c2VyUmVjdC5vcmlnaW4ueCwKLSAg
ICAgICAgICAgICAgICAgICB1c2VyUmVjdC5vcmlnaW4ueSwKLSAgICAgICAgICAgICAgICAgICB1
c2VyUmVjdC5zaXplLndpZHRoLAotICAgICAgICAgICAgICAgICAgIHVzZXJSZWN0LnNpemUuaGVp
Z2h0KTsKKyAgICBOU0FycmF5KiBzY3JlZW5zID0gW05TU2NyZWVuIHNjcmVlbnNdOworICAgIGlm
ICghW3NjcmVlbnMgY291bnRdKQorICAgICAgICByZXR1cm4gMTsKKworICAgIE5TU2NyZWVuKiBz
Y3JlZW4gPSBbc2NyZWVucyBvYmplY3RBdEluZGV4OjBdOworICAgIGlmIChbc2NyZWVuIHJlc3Bv
bmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoYmFja2luZ1NjYWxlRmFjdG9yKV0pCisgICAgICAgIHJl
dHVybiBbc2NyZWVuIGJhY2tpbmdTY2FsZUZhY3Rvcl07CisgICAgcmV0dXJuIFtzY3JlZW4gdXNl
clNwYWNlU2NhbGVGYWN0b3JdOwogfQogCiBXZWJTY3JlZW5JbmZvIFdlYlNjcmVlbkluZm9GYWN0
b3J5OjpzY3JlZW5JbmZvKE5TVmlldyogdmlldykKQEAgLTc3LDEzICs4Myw5IEBAIFdlYlNjcmVl
bkluZm8gV2ViU2NyZWVuSW5mb0ZhY3Rvcnk6OnNjcmVlbkluZm8oTlNWaWV3KiB2aWV3KQogCiAg
ICAgV2ViU2NyZWVuSW5mbyByZXN1bHRzOwogCi0gICAgLy8gRklYTUU6IEN1cnJlbnRseSBNYWMg
c2VlbXMgdG8gYWx3YXlzIHJlcG9ydCA3MmRwaS4gTmVlZCB0byBmaW5kIGEgd2F5IHRvCi0gICAg
Ly8gcmVwb3J0IHRoZSB0cnVlIHNjcmVlbiBkcGkuCi0gICAgTlNXaW5kb3cqIHdpbmRvdyA9IFt2
aWV3IHdpbmRvd107Ci0gICAgTlNEaWN0aW9uYXJ5KiBkZXZpY2VEZXNjcmlwdGlvbiA9IFt3aW5k
b3cgZGV2aWNlRGVzY3JpcHRpb25dOwotICAgIE5TU2l6ZSBkZXZpY2VEUEkgPSBbW2RldmljZURl
c2NyaXB0aW9uIHZhbHVlRm9yS2V5Ok5TRGV2aWNlUmVzb2x1dGlvbl0gc2l6ZVZhbHVlXTsKLSAg
ICByZXN1bHRzLmhvcml6b250YWxEUEkgPSBzdGF0aWNfY2FzdDxpbnQ+KGRldmljZURQSS53aWR0
aCk7Ci0gICAgcmVzdWx0cy52ZXJ0aWNhbERQSSA9IHN0YXRpY19jYXN0PGludD4oZGV2aWNlRFBJ
LmhlaWdodCk7CisgICAgZmxvYXQgZGV2aWNlRFBJID0gMTYwICogZGV2aWNlU2NhbGVGYWN0b3Io
dmlldyk7CisgICAgcmVzdWx0cy5ob3Jpem9udGFsRFBJID0gZGV2aWNlRFBJOworICAgIHJlc3Vs
dHMudmVydGljYWxEUEkgPSBkZXZpY2VEUEk7CiAKICAgICByZXN1bHRzLmRlcHRoID0KICAgICAg
ICAgTlNCaXRzUGVyUGl4ZWxGcm9tRGVwdGgoW1tOU1NjcmVlbiBkZWVwZXN0U2NyZWVuXSBkZXB0
aF0pOwpAQCAtOTMsMTAgKzk1LDggQEAgV2ViU2NyZWVuSW5mbyBXZWJTY3JlZW5JbmZvRmFjdG9y
eTo6c2NyZWVuSW5mbyhOU1ZpZXcqIHZpZXcpCiAgICAgICAgICAgICAgICAgICAgICAgICB8fCBj
b2xvclNwYWNlID09IE5TQ2FsaWJyYXRlZEJsYWNrQ29sb3JTcGFjZQogICAgICAgICAgICAgICAg
ICAgICAgICAgfHwgY29sb3JTcGFjZSA9PSBOU0RldmljZVdoaXRlQ29sb3JTcGFjZQogICAgICAg
ICAgICAgICAgICAgICAgICAgfHwgY29sb3JTcGFjZSA9PSBOU0RldmljZUJsYWNrQ29sb3JTcGFj
ZTsKLSAgICByZXN1bHRzLnJlY3QgPQotICAgICAgICB0b1VzZXJTcGFjZShbc2NyZWVuRm9yV2lu
ZG93KFt2aWV3IHdpbmRvd10pIGZyYW1lXSwgW3ZpZXcgd2luZG93XSk7Ci0gICAgcmVzdWx0cy5h
dmFpbGFibGVSZWN0ID0KLSAgICAgICAgdG9Vc2VyU3BhY2UoW3NjcmVlbkZvcldpbmRvdyhbdmll
dyB3aW5kb3ddKSB2aXNpYmxlRnJhbWVdLCBbdmlldyB3aW5kb3ddKTsKKyAgICByZXN1bHRzLnJl
Y3QgPSBbc2NyZWVuRm9yV2luZG93KFt2aWV3IHdpbmRvd10pIGZyYW1lXTsKKyAgICByZXN1bHRz
LmF2YWlsYWJsZVJlY3QgPSBbc2NyZWVuRm9yV2luZG93KFt2aWV3IHdpbmRvd10pIHZpc2libGVG
cmFtZV07CiAgICAgcmV0dXJuIHJlc3VsdHM7CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>146431</attachid>
            <date>2012-06-07 17:46:00 -0700</date>
            <delta_ts>2012-06-07 17:52:07 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-88596-20120607174600.patch</filename>
            <type>text/plain</type>
            <size>4760</size>
            <attacher name="Nico Weber">thakis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE5NzMzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IDA3NWU5OTZjNmRhZGQyZWU1Zjg2Mjk4OTVkZjE5YWEwOWM1ZTQxZjQuLjNkYTBmNGRmYjhmOWUw
ZWM1MDJjYTZkYzA3YmIzNTk5YWVjYWQ2MzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjcgQEAKKzIwMTItMDYtMDcgIE5pY28gV2ViZXIgIDx0aGFraXNAY2hyb21pdW0u
b3JnPgorCisgICAgICAgIFtjaHJvbWl1bS9tYWNdIEltcHJvdmUgZGV2aWNlRFBJLCByZWN0LCBh
bmQgYXZhaWxhYmxlUmVjdCBjb21wdXRhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODg1OTYKKworICAgICAgICBSZXZpZXdlZCBieSBBZGFtIEJh
cnRoLgorCisgICAgICAgIFNldCBkZXZpY2VEUEkgdG8gMTYwIGZvciBub3JtYWwgZGlzcGxheXMg
YW5kIDMyMCBmb3IgSGlEUEkgZGlzcGxheXMuCisgICAgICAgIChXaHkgMTYwPyBUaGF0J3Mgd2hh
dCBjaHJvbWl1bSdzIHJlbmRlcl92aWV3LmNjIGFzc3VtZXMgYXMgZGVmYXVsdAorICAgICAgICBz
aW5nbGUtcmVzb2x1dGlvbiByZXNvbHV0aW9uIGF0IHRoZSBtb21lbnQuIFRoZSBvbmx5IG90aGVy
IHBsYWNlCisgICAgICAgIHdoZXJlIHRoaXMgbnVtYmVyIGdldHMgdXNlZCBpcyBmaXhlZCBsYXlv
dXQgbW9kZSwgd2hpY2ggaXMgY3VycmVudGx5CisgICAgICAgIG5vdCBlbmFibGVkLikKKworICAg
ICAgICBBbHNvIGZpeCByZWN0IGFuZCBhdmFpbGFibGVSZWN0IGNvbXB1dGF0aW9uczogVGhleSBn
ZXQgcmV0dXJuZWQgaW4KKyAgICAgICAgdXNlciBzcGFjZSBhbHJlYWR5LgorCisgICAgICAgIE5l
ZWRlZCBmb3IgaHR0cDovL2NyYnVnLmNvbS8zMTk2MC4KKworICAgICAgICAqIHNyYy9tYWMvV2Vi
U2NyZWVuSW5mb0ZhY3RvcnkubW06CisgICAgICAgIChXZWJLaXQ6OnRvVXNlclNwYWNlKToKKyAg
ICAgICAgKFdlYktpdDo6ZGV2aWNlU2NhbGVGYWN0b3IpOgorICAgICAgICAoV2ViS2l0KToKKyAg
ICAgICAgKFdlYktpdDo6V2ViU2NyZWVuSW5mb0ZhY3Rvcnk6OnNjcmVlbkluZm8pOgorCiAyMDEy
LTA2LTA3ICBEYW5pZWwgRXJhdCAgPGRlcmF0QGNocm9taXVtLm9yZz4KIAogICAgICAgICBBZGQg
c2V0dGluZyB0byBlbmFibGUgc3VicGl4ZWwtcG9zaXRpb25lZCB0ZXh0IG9uIExpbnV4LgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvbWFjL1dlYlNjcmVlbkluZm9GYWN0
b3J5Lm1tIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvbWFjL1dlYlNjcmVlbkluZm9GYWN0
b3J5Lm1tCmluZGV4IGI5ZmRjMTQxY2I3YmQ4Y2MxZGIzOGM2NTE2NDBiZmFkOWVjZTcyOGMuLjIy
ZDhhYmViYzk3MzM2ZDQ2Y2M2YjkxZjAzODkxMWZjNjA0N2YzYWUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL21hYy9XZWJTY3JlZW5JbmZvRmFjdG9yeS5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9tYWMvV2ViU2NyZWVuSW5mb0ZhY3RvcnkubW0KQEAg
LTM1LDYgKzM1LDE0IEBACiAKICNpbmNsdWRlICJXZWJTY3JlZW5JbmZvLmgiCiAKK0BpbnRlcmZh
Y2UgTlNXaW5kb3cgKExpb25BUEkpCistIChDR0Zsb2F0KWJhY2tpbmdTY2FsZUZhY3RvcjsKK0Bl
bmQKKworQGludGVyZmFjZSBOU1NjcmVlbiAoTGlvbkFQSSkKKy0gKENHRmxvYXQpYmFja2luZ1Nj
YWxlRmFjdG9yOworQGVuZAorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogc3RhdGljIE5TU2NyZWVu
KiBzY3JlZW5Gb3JXaW5kb3coTlNXaW5kb3cqIHdpbmRvdykKQEAgLTUwLDI1ICs1OCwyMyBAQCBz
dGF0aWMgTlNTY3JlZW4qIHNjcmVlbkZvcldpbmRvdyhOU1dpbmRvdyogd2luZG93KQogICAgIHJl
dHVybiBuaWw7CiB9CiAKLXN0YXRpYyBXZWJSZWN0IHRvVXNlclNwYWNlKGNvbnN0IE5TUmVjdCYg
cmVjdCwgTlNXaW5kb3cqIGRlc3RpbmF0aW9uKQorc3RhdGljIGZsb2F0IGRldmljZVNjYWxlRmFj
dG9yKE5TVmlldyogdmlldykKIHsKLSAgICBDR1JlY3QgdXNlclJlY3QgPSBOU1JlY3RUb0NHUmVj
dChyZWN0KTsKLQotICAgIHVzZXJSZWN0Lm9yaWdpbi55ID0KLSAgICAgICAgTlNNYXhZKFtzY3Jl
ZW5Gb3JXaW5kb3coZGVzdGluYXRpb24pIGZyYW1lXSkgLSAodXNlclJlY3Qub3JpZ2luLnkgKyB1
c2VyUmVjdC5zaXplLmhlaWdodCk7IC8vIGZsaXAKLQotICAgIGlmIChkZXN0aW5hdGlvbikgewot
ICAgICAgICBDR0Zsb2F0IHNjYWxlID0gMSAvIFtkZXN0aW5hdGlvbiB1c2VyU3BhY2VTY2FsZUZh
Y3Rvcl07ICAvLyBzY2FsZSBkb3duCi0gICAgICAgIHVzZXJSZWN0Lm9yaWdpbi54ICo9IHNjYWxl
OwotICAgICAgICB1c2VyUmVjdC5vcmlnaW4ueSAqPSBzY2FsZTsKLSAgICAgICAgdXNlclJlY3Qu
c2l6ZS53aWR0aCAqPSBzY2FsZTsKLSAgICAgICAgdXNlclJlY3Quc2l6ZS5oZWlnaHQgKj0gc2Nh
bGU7CisgICAgTlNXaW5kb3cqIHdpbmRvdyA9IFt2aWV3IHdpbmRvd107CisgICAgaWYgKHdpbmRv
dykgeworICAgICAgICBpZiAoW3dpbmRvdyByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKGJh
Y2tpbmdTY2FsZUZhY3RvcildKQorICAgICAgICAgICAgcmV0dXJuIFt3aW5kb3cgYmFja2luZ1Nj
YWxlRmFjdG9yXTsKKyAgICAgICAgcmV0dXJuIFt3aW5kb3cgdXNlclNwYWNlU2NhbGVGYWN0b3Jd
OwogICAgIH0KIAotICAgIHJldHVybiBXZWJSZWN0KHVzZXJSZWN0Lm9yaWdpbi54LAotICAgICAg
ICAgICAgICAgICAgIHVzZXJSZWN0Lm9yaWdpbi55LAotICAgICAgICAgICAgICAgICAgIHVzZXJS
ZWN0LnNpemUud2lkdGgsCi0gICAgICAgICAgICAgICAgICAgdXNlclJlY3Quc2l6ZS5oZWlnaHQp
OworICAgIE5TQXJyYXkqIHNjcmVlbnMgPSBbTlNTY3JlZW4gc2NyZWVuc107CisgICAgaWYgKCFb
c2NyZWVucyBjb3VudF0pCisgICAgICAgIHJldHVybiAxOworCisgICAgTlNTY3JlZW4qIHNjcmVl
biA9IFtzY3JlZW5zIG9iamVjdEF0SW5kZXg6MF07CisgICAgaWYgKFtzY3JlZW4gcmVzcG9uZHNU
b1NlbGVjdG9yOkBzZWxlY3RvcihiYWNraW5nU2NhbGVGYWN0b3IpXSkKKyAgICAgICAgcmV0dXJu
IFtzY3JlZW4gYmFja2luZ1NjYWxlRmFjdG9yXTsKKyAgICByZXR1cm4gW3NjcmVlbiB1c2VyU3Bh
Y2VTY2FsZUZhY3Rvcl07CiB9CiAKIFdlYlNjcmVlbkluZm8gV2ViU2NyZWVuSW5mb0ZhY3Rvcnk6
OnNjcmVlbkluZm8oTlNWaWV3KiB2aWV3KQpAQCAtNzcsMTMgKzgzLDkgQEAgV2ViU2NyZWVuSW5m
byBXZWJTY3JlZW5JbmZvRmFjdG9yeTo6c2NyZWVuSW5mbyhOU1ZpZXcqIHZpZXcpCiAKICAgICBX
ZWJTY3JlZW5JbmZvIHJlc3VsdHM7CiAKLSAgICAvLyBGSVhNRTogQ3VycmVudGx5IE1hYyBzZWVt
cyB0byBhbHdheXMgcmVwb3J0IDcyZHBpLiBOZWVkIHRvIGZpbmQgYSB3YXkgdG8KLSAgICAvLyBy
ZXBvcnQgdGhlIHRydWUgc2NyZWVuIGRwaS4KLSAgICBOU1dpbmRvdyogd2luZG93ID0gW3ZpZXcg
d2luZG93XTsKLSAgICBOU0RpY3Rpb25hcnkqIGRldmljZURlc2NyaXB0aW9uID0gW3dpbmRvdyBk
ZXZpY2VEZXNjcmlwdGlvbl07Ci0gICAgTlNTaXplIGRldmljZURQSSA9IFtbZGV2aWNlRGVzY3Jp
cHRpb24gdmFsdWVGb3JLZXk6TlNEZXZpY2VSZXNvbHV0aW9uXSBzaXplVmFsdWVdOwotICAgIHJl
c3VsdHMuaG9yaXpvbnRhbERQSSA9IHN0YXRpY19jYXN0PGludD4oZGV2aWNlRFBJLndpZHRoKTsK
LSAgICByZXN1bHRzLnZlcnRpY2FsRFBJID0gc3RhdGljX2Nhc3Q8aW50PihkZXZpY2VEUEkuaGVp
Z2h0KTsKKyAgICBmbG9hdCBkZXZpY2VEUEkgPSAxNjAgKiBkZXZpY2VTY2FsZUZhY3Rvcih2aWV3
KTsKKyAgICByZXN1bHRzLmhvcml6b250YWxEUEkgPSBkZXZpY2VEUEk7CisgICAgcmVzdWx0cy52
ZXJ0aWNhbERQSSA9IGRldmljZURQSTsKIAogICAgIHJlc3VsdHMuZGVwdGggPQogICAgICAgICBO
U0JpdHNQZXJQaXhlbEZyb21EZXB0aChbW05TU2NyZWVuIGRlZXBlc3RTY3JlZW5dIGRlcHRoXSk7
CkBAIC05MywxMCArOTUsOCBAQCBXZWJTY3JlZW5JbmZvIFdlYlNjcmVlbkluZm9GYWN0b3J5Ojpz
Y3JlZW5JbmZvKE5TVmlldyogdmlldykKICAgICAgICAgICAgICAgICAgICAgICAgIHx8IGNvbG9y
U3BhY2UgPT0gTlNDYWxpYnJhdGVkQmxhY2tDb2xvclNwYWNlCiAgICAgICAgICAgICAgICAgICAg
ICAgICB8fCBjb2xvclNwYWNlID09IE5TRGV2aWNlV2hpdGVDb2xvclNwYWNlCiAgICAgICAgICAg
ICAgICAgICAgICAgICB8fCBjb2xvclNwYWNlID09IE5TRGV2aWNlQmxhY2tDb2xvclNwYWNlOwot
ICAgIHJlc3VsdHMucmVjdCA9Ci0gICAgICAgIHRvVXNlclNwYWNlKFtzY3JlZW5Gb3JXaW5kb3co
W3ZpZXcgd2luZG93XSkgZnJhbWVdLCBbdmlldyB3aW5kb3ddKTsKLSAgICByZXN1bHRzLmF2YWls
YWJsZVJlY3QgPQotICAgICAgICB0b1VzZXJTcGFjZShbc2NyZWVuRm9yV2luZG93KFt2aWV3IHdp
bmRvd10pIHZpc2libGVGcmFtZV0sIFt2aWV3IHdpbmRvd10pOworICAgIHJlc3VsdHMucmVjdCA9
IFtzY3JlZW5Gb3JXaW5kb3coW3ZpZXcgd2luZG93XSkgZnJhbWVdOworICAgIHJlc3VsdHMuYXZh
aWxhYmxlUmVjdCA9IFtzY3JlZW5Gb3JXaW5kb3coW3ZpZXcgd2luZG93XSkgdmlzaWJsZUZyYW1l
XTsKICAgICByZXR1cm4gcmVzdWx0czsKIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>146435</attachid>
            <date>2012-06-07 17:52:14 -0700</date>
            <delta_ts>2012-06-07 19:52:11 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-88596-20120607175213.patch</filename>
            <type>text/plain</type>
            <size>4976</size>
            <attacher name="Nico Weber">thakis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE5NzMzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IDA3NWU5OTZjNmRhZGQyZWU1Zjg2Mjk4OTVkZjE5YWEwOWM1ZTQxZjQuLjNkYTBmNGRmYjhmOWUw
ZWM1MDJjYTZkYzA3YmIzNTk5YWVjYWQ2MzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjcgQEAKKzIwMTItMDYtMDcgIE5pY28gV2ViZXIgIDx0aGFraXNAY2hyb21pdW0u
b3JnPgorCisgICAgICAgIFtjaHJvbWl1bS9tYWNdIEltcHJvdmUgZGV2aWNlRFBJLCByZWN0LCBh
bmQgYXZhaWxhYmxlUmVjdCBjb21wdXRhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODg1OTYKKworICAgICAgICBSZXZpZXdlZCBieSBBZGFtIEJh
cnRoLgorCisgICAgICAgIFNldCBkZXZpY2VEUEkgdG8gMTYwIGZvciBub3JtYWwgZGlzcGxheXMg
YW5kIDMyMCBmb3IgSGlEUEkgZGlzcGxheXMuCisgICAgICAgIChXaHkgMTYwPyBUaGF0J3Mgd2hh
dCBjaHJvbWl1bSdzIHJlbmRlcl92aWV3LmNjIGFzc3VtZXMgYXMgZGVmYXVsdAorICAgICAgICBz
aW5nbGUtcmVzb2x1dGlvbiByZXNvbHV0aW9uIGF0IHRoZSBtb21lbnQuIFRoZSBvbmx5IG90aGVy
IHBsYWNlCisgICAgICAgIHdoZXJlIHRoaXMgbnVtYmVyIGdldHMgdXNlZCBpcyBmaXhlZCBsYXlv
dXQgbW9kZSwgd2hpY2ggaXMgY3VycmVudGx5CisgICAgICAgIG5vdCBlbmFibGVkLikKKworICAg
ICAgICBBbHNvIGZpeCByZWN0IGFuZCBhdmFpbGFibGVSZWN0IGNvbXB1dGF0aW9uczogVGhleSBn
ZXQgcmV0dXJuZWQgaW4KKyAgICAgICAgdXNlciBzcGFjZSBhbHJlYWR5LgorCisgICAgICAgIE5l
ZWRlZCBmb3IgaHR0cDovL2NyYnVnLmNvbS8zMTk2MC4KKworICAgICAgICAqIHNyYy9tYWMvV2Vi
U2NyZWVuSW5mb0ZhY3RvcnkubW06CisgICAgICAgIChXZWJLaXQ6OnRvVXNlclNwYWNlKToKKyAg
ICAgICAgKFdlYktpdDo6ZGV2aWNlU2NhbGVGYWN0b3IpOgorICAgICAgICAoV2ViS2l0KToKKyAg
ICAgICAgKFdlYktpdDo6V2ViU2NyZWVuSW5mb0ZhY3Rvcnk6OnNjcmVlbkluZm8pOgorCiAyMDEy
LTA2LTA3ICBEYW5pZWwgRXJhdCAgPGRlcmF0QGNocm9taXVtLm9yZz4KIAogICAgICAgICBBZGQg
c2V0dGluZyB0byBlbmFibGUgc3VicGl4ZWwtcG9zaXRpb25lZCB0ZXh0IG9uIExpbnV4LgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvbWFjL1dlYlNjcmVlbkluZm9GYWN0
b3J5Lm1tIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvbWFjL1dlYlNjcmVlbkluZm9GYWN0
b3J5Lm1tCmluZGV4IGI5ZmRjMTQxY2I3YmQ4Y2MxZGIzOGM2NTE2NDBiZmFkOWVjZTcyOGMuLjg4
YzNiNzJlNTNhMDk3ZWM4MjI0MTlmMTc0YjkzZWJiNTVmMDg5NjMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL21hYy9XZWJTY3JlZW5JbmZvRmFjdG9yeS5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9tYWMvV2ViU2NyZWVuSW5mb0ZhY3RvcnkubW0KQEAg
LTM1LDYgKzM1LDE0IEBACiAKICNpbmNsdWRlICJXZWJTY3JlZW5JbmZvLmgiCiAKK0BpbnRlcmZh
Y2UgTlNXaW5kb3cgKExpb25BUEkpCistIChDR0Zsb2F0KWJhY2tpbmdTY2FsZUZhY3RvcjsKK0Bl
bmQKKworQGludGVyZmFjZSBOU1NjcmVlbiAoTGlvbkFQSSkKKy0gKENHRmxvYXQpYmFja2luZ1Nj
YWxlRmFjdG9yOworQGVuZAorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogc3RhdGljIE5TU2NyZWVu
KiBzY3JlZW5Gb3JXaW5kb3coTlNXaW5kb3cqIHdpbmRvdykKQEAgLTUwLDQwICs1OCw0NiBAQCBz
dGF0aWMgTlNTY3JlZW4qIHNjcmVlbkZvcldpbmRvdyhOU1dpbmRvdyogd2luZG93KQogICAgIHJl
dHVybiBuaWw7CiB9CiAKLXN0YXRpYyBXZWJSZWN0IHRvVXNlclNwYWNlKGNvbnN0IE5TUmVjdCYg
cmVjdCwgTlNXaW5kb3cqIGRlc3RpbmF0aW9uKQorc3RhdGljIFdlYlJlY3QgY29udmVydFJlY3Qo
Y29uc3QgTlNSZWN0JiByZWN0LCBOU1dpbmRvdyogZGVzdGluYXRpb24pCiB7CiAgICAgQ0dSZWN0
IHVzZXJSZWN0ID0gTlNSZWN0VG9DR1JlY3QocmVjdCk7Ci0KICAgICB1c2VyUmVjdC5vcmlnaW4u
eSA9Ci0gICAgICAgIE5TTWF4WShbc2NyZWVuRm9yV2luZG93KGRlc3RpbmF0aW9uKSBmcmFtZV0p
IC0gKHVzZXJSZWN0Lm9yaWdpbi55ICsgdXNlclJlY3Quc2l6ZS5oZWlnaHQpOyAvLyBmbGlwCi0K
LSAgICBpZiAoZGVzdGluYXRpb24pIHsKLSAgICAgICAgQ0dGbG9hdCBzY2FsZSA9IDEgLyBbZGVz
dGluYXRpb24gdXNlclNwYWNlU2NhbGVGYWN0b3JdOyAgLy8gc2NhbGUgZG93bgotICAgICAgICB1
c2VyUmVjdC5vcmlnaW4ueCAqPSBzY2FsZTsKLSAgICAgICAgdXNlclJlY3Qub3JpZ2luLnkgKj0g
c2NhbGU7Ci0gICAgICAgIHVzZXJSZWN0LnNpemUud2lkdGggKj0gc2NhbGU7Ci0gICAgICAgIHVz
ZXJSZWN0LnNpemUuaGVpZ2h0ICo9IHNjYWxlOwotICAgIH0KLQorICAgICAgICBOU01heFkoW3Nj
cmVlbkZvcldpbmRvdyhkZXN0aW5hdGlvbikgZnJhbWVdKSAtIE5TTWF4WShyZWN0KTsgLy8gZmxp
cAogICAgIHJldHVybiBXZWJSZWN0KHVzZXJSZWN0Lm9yaWdpbi54LAogICAgICAgICAgICAgICAg
ICAgIHVzZXJSZWN0Lm9yaWdpbi55LAogICAgICAgICAgICAgICAgICAgIHVzZXJSZWN0LnNpemUu
d2lkdGgsCiAgICAgICAgICAgICAgICAgICAgdXNlclJlY3Quc2l6ZS5oZWlnaHQpOwogfQogCitz
dGF0aWMgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IoTlNWaWV3KiB2aWV3KQoreworICAgIE5TV2lu
ZG93KiB3aW5kb3cgPSBbdmlldyB3aW5kb3ddOworICAgIGlmICh3aW5kb3cpCisgICAgeworICAg
ICAgICBpZiAoW3dpbmRvdyByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKGJhY2tpbmdTY2Fs
ZUZhY3RvcildKQorICAgICAgICAgICAgcmV0dXJuIFt3aW5kb3cgYmFja2luZ1NjYWxlRmFjdG9y
XTsKKyAgICAgICAgcmV0dXJuIFt3aW5kb3cgdXNlclNwYWNlU2NhbGVGYWN0b3JdOworICAgIH0K
KworICAgIE5TQXJyYXkqIHNjcmVlbnMgPSBbTlNTY3JlZW4gc2NyZWVuc107CisgICAgaWYgKCFb
c2NyZWVucyBjb3VudF0pCisgICAgICAgIHJldHVybiAxOworCisgICAgTlNTY3JlZW4qIHNjcmVl
biA9IFtzY3JlZW5zIG9iamVjdEF0SW5kZXg6MF07CisgICAgaWYgKFtzY3JlZW4gcmVzcG9uZHNU
b1NlbGVjdG9yOkBzZWxlY3RvcihiYWNraW5nU2NhbGVGYWN0b3IpXSkKKyAgICAgICAgcmV0dXJu
IFtzY3JlZW4gYmFja2luZ1NjYWxlRmFjdG9yXTsKKyAgICByZXR1cm4gW3NjcmVlbiB1c2VyU3Bh
Y2VTY2FsZUZhY3Rvcl07Cit9CisKIFdlYlNjcmVlbkluZm8gV2ViU2NyZWVuSW5mb0ZhY3Rvcnk6
OnNjcmVlbkluZm8oTlNWaWV3KiB2aWV3KQogewogICAgIE5TU3RyaW5nICpjb2xvclNwYWNlID0g
TlNDb2xvclNwYWNlRnJvbURlcHRoKFtbTlNTY3JlZW4gZGVlcGVzdFNjcmVlbl0gZGVwdGhdKTsK
IAogICAgIFdlYlNjcmVlbkluZm8gcmVzdWx0czsKIAotICAgIC8vIEZJWE1FOiBDdXJyZW50bHkg
TWFjIHNlZW1zIHRvIGFsd2F5cyByZXBvcnQgNzJkcGkuIE5lZWQgdG8gZmluZCBhIHdheSB0bwot
ICAgIC8vIHJlcG9ydCB0aGUgdHJ1ZSBzY3JlZW4gZHBpLgotICAgIE5TV2luZG93KiB3aW5kb3cg
PSBbdmlldyB3aW5kb3ddOwotICAgIE5TRGljdGlvbmFyeSogZGV2aWNlRGVzY3JpcHRpb24gPSBb
d2luZG93IGRldmljZURlc2NyaXB0aW9uXTsKLSAgICBOU1NpemUgZGV2aWNlRFBJID0gW1tkZXZp
Y2VEZXNjcmlwdGlvbiB2YWx1ZUZvcktleTpOU0RldmljZVJlc29sdXRpb25dIHNpemVWYWx1ZV07
Ci0gICAgcmVzdWx0cy5ob3Jpem9udGFsRFBJID0gc3RhdGljX2Nhc3Q8aW50PihkZXZpY2VEUEku
d2lkdGgpOwotICAgIHJlc3VsdHMudmVydGljYWxEUEkgPSBzdGF0aWNfY2FzdDxpbnQ+KGRldmlj
ZURQSS5oZWlnaHQpOworICAgIGZsb2F0IGRldmljZURQSSA9IDE2MCAqIGRldmljZVNjYWxlRmFj
dG9yKHZpZXcpOworICAgIHJlc3VsdHMuaG9yaXpvbnRhbERQSSA9IGRldmljZURQSTsKKyAgICBy
ZXN1bHRzLnZlcnRpY2FsRFBJID0gZGV2aWNlRFBJOwogCiAgICAgcmVzdWx0cy5kZXB0aCA9CiAg
ICAgICAgIE5TQml0c1BlclBpeGVsRnJvbURlcHRoKFtbTlNTY3JlZW4gZGVlcGVzdFNjcmVlbl0g
ZGVwdGhdKTsKQEAgLTkzLDEwICsxMDcsOSBAQCBXZWJTY3JlZW5JbmZvIFdlYlNjcmVlbkluZm9G
YWN0b3J5OjpzY3JlZW5JbmZvKE5TVmlldyogdmlldykKICAgICAgICAgICAgICAgICAgICAgICAg
IHx8IGNvbG9yU3BhY2UgPT0gTlNDYWxpYnJhdGVkQmxhY2tDb2xvclNwYWNlCiAgICAgICAgICAg
ICAgICAgICAgICAgICB8fCBjb2xvclNwYWNlID09IE5TRGV2aWNlV2hpdGVDb2xvclNwYWNlCiAg
ICAgICAgICAgICAgICAgICAgICAgICB8fCBjb2xvclNwYWNlID09IE5TRGV2aWNlQmxhY2tDb2xv
clNwYWNlOwotICAgIHJlc3VsdHMucmVjdCA9Ci0gICAgICAgIHRvVXNlclNwYWNlKFtzY3JlZW5G
b3JXaW5kb3coW3ZpZXcgd2luZG93XSkgZnJhbWVdLCBbdmlldyB3aW5kb3ddKTsKKyAgICByZXN1
bHRzLnJlY3QgPSBjb252ZXJ0UmVjdChbc2NyZWVuRm9yV2luZG93KFt2aWV3IHdpbmRvd10pIGZy
YW1lXSwgW3ZpZXcgd2luZG93XSk7CiAgICAgcmVzdWx0cy5hdmFpbGFibGVSZWN0ID0KLSAgICAg
ICAgdG9Vc2VyU3BhY2UoW3NjcmVlbkZvcldpbmRvdyhbdmlldyB3aW5kb3ddKSB2aXNpYmxlRnJh
bWVdLCBbdmlldyB3aW5kb3ddKTsKKyAgICAgICAgY29udmVydFJlY3QoW3NjcmVlbkZvcldpbmRv
dyhbdmlldyB3aW5kb3ddKSB2aXNpYmxlRnJhbWVdLCBbdmlldyB3aW5kb3ddKTsKICAgICByZXR1
cm4gcmVzdWx0czsKIH0KIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>