<?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>65473</bug_id>
          
          <creation_ts>2011-08-01 08:44:56 -0700</creation_ts>
          <short_desc>[Texmap][Qt] Enable TextureMapperGL in platforms where BGRA is not present</short_desc>
          <delta_ts>2011-09-26 03:51:14 -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>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</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>Qt</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Noam Rosenthal">noam</reporter>
          <assigned_to name="Noam Rosenthal">noam</assigned_to>
          <cc>benjamin</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>444705</commentid>
    <comment_count>0</comment_count>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2011-08-01 08:44:56 -0700</bug_when>
    <thetext>Right now TextureMapperGL is hard-coded to use the BGRA extension, which is:
1. not always present;
2. not always needed, if the platform has native support for BGRA.

TextureMapperGL should support both cases.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>445503</commentid>
    <comment_count>1</comment_count>
      <attachid>102693</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2011-08-02 13:57:13 -0700</bug_when>
    <thetext>Created attachment 102693
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>445506</commentid>
    <comment_count>2</comment_count>
      <attachid>102695</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2011-08-02 13:58:18 -0700</bug_when>
    <thetext>Created attachment 102695
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>445604</commentid>
    <comment_count>3</comment_count>
      <attachid>102695</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2011-08-02 16:36:17 -0700</bug_when>
    <thetext>Comment on attachment 102695
Patch

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

&gt; Source/WebCore/platform/graphics/opengl/TextureMapperGL.cpp:539
&gt; +    // FIXME: use shaders for RGBA-&gt;BGRA swap if this becomes a performance issue.
&gt; +    m_buffer-&gt;swapRGB();

I think it would be better to invert the color components direclty in a shader.
swapRGB() is doomed to be slow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>445617</commentid>
    <comment_count>4</comment_count>
      <attachid>102695</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2011-08-02 16:52:52 -0700</bug_when>
    <thetext>Comment on attachment 102695
Patch

Yep, thinking about it, that should really be done on the shader. That way we avoid adding swapRGB() at all on the texture mapper.

You still did not explain why your assign a ARGB buffer as BGRA. My guess is because you are targetting little endian so the component are inverted when assigned in 32 bits compared to passed as byte here??? But in that case you would have to check the endianess in order to check the format. Am I missing something? :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>445620</commentid>
    <comment_count>5</comment_count>
      <attachid>102716</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2011-08-02 17:00:52 -0700</bug_when>
    <thetext>Created attachment 102716
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>445624</commentid>
    <comment_count>6</comment_count>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2011-08-02 17:07:31 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 102695 [details])
&gt; Yep, thinking about it, that should really be done on the shader. That way we avoid adding swapRGB() at all on the texture mapper.
As you wish.

&gt; You still did not explain why your assign a ARGB buffer as BGRA. My guess is because you are targetting little endian so the component are inverted when assigned in 32 bits compared to passed as byte here??? But in that case you would have to check the endianess in order to check the format. Am I missing something? :)

I believe endianness is not an issue (see http://www.opengl.org/wiki/Pixel_Transfer). The problem is that both OpenGL and QImage are endian-agnostic, but in a non-compatible way. Qt is natively compatible with what OpenGL refers to as BGRA, which is not always available. 
What would really &quot;fix&quot; the problem is adding QImage::Format_ABGR32_Premultiplied, but that&apos;s far from trivial.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>472233</commentid>
    <comment_count>7</comment_count>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2011-09-23 07:53:09 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 102695 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=102695&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/opengl/TextureMapperGL.cpp:539
&gt; &gt; +    // FIXME: use shaders for RGBA-&gt;BGRA swap if this becomes a performance issue.
&gt; &gt; +    m_buffer-&gt;swapRGB();
&gt; 
&gt; I think it would be better to invert the color components direclty in a shader.
&gt; swapRGB() is doomed to be slow.

I thought about this again and I disagree. It&apos;s better to do this once in software while uploading, than to do it for every paint, albeit in hardware. That&apos;s how QtGL does it, I think it&apos;s the right choice.

I still believe that the second patch is good; Let&apos;s try to resolve this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>473033</commentid>
    <comment_count>8</comment_count>
      <attachid>102695</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2011-09-26 02:30:26 -0700</bug_when>
    <thetext>Comment on attachment 102695
Patch

r=me for correctness now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>473034</commentid>
    <comment_count>9</comment_count>
      <attachid>108648</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2011-09-26 02:34:33 -0700</bug_when>
    <thetext>Created attachment 108648
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>473040</commentid>
    <comment_count>10</comment_count>
      <attachid>108648</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-09-26 03:51:07 -0700</bug_when>
    <thetext>Comment on attachment 108648
Patch

Clearing flags on attachment: 108648

Committed r95939: &lt;http://trac.webkit.org/changeset/95939&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>473041</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-09-26 03:51:14 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>102693</attachid>
            <date>2011-08-02 13:57:13 -0700</date>
            <delta_ts>2011-08-02 13:58:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-65473-20110802135311.patch</filename>
            <type>text/plain</type>
            <size>3707</size>
            <attacher name="Noam Rosenthal">noam</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTIyMTgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBlNWM3NWRhYmZjZmU0Yzdm
MTljOWZlNzk5MjdiODAyOWY3ZDgxM2Y3Li40Zjk5MmQ5ZmQ5MTgzODBjN2FmODJmOWFjOWI2Nzk1
YWQ4NGU2MGQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTEtMDgtMDIgIE5vJ2Ft
IFJvc2VudGhhbCAgPG5vYW0ucm9zZW50aGFsQG5va2lhLmNvbT4KKworICAgICAgICBbVGV4bWFw
XVtRdF0gRW5hYmxlIFRleHR1cmVNYXBwZXJHTCBpbiBwbGF0Zm9ybXMgd2hlcmUgQkdSQSBpcyBu
b3QgcHJlc2VudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NjU0NzMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBGb3Igbm93LCBzd2FwIFJHQkEtPkJHUkEgaW4gc29mdHdhcmUgaWYgd2UncmUgaW4gT3BlbkdM
IEVTIDIuCisgICAgICAgIFdlIGRvIHRoYXQgYnkgaXRlcmF0aW5nIG9uIHRoZSBwaXhlbHMgYW5k
IG1hbnVhbGx5IHN3YXBwaW5nIGVhY2ggcGl4ZWwncyByZWQgYW5kIGJsdWUKKyAgICAgICAgdmFs
dWVzLiBUaGlzIGNhbiBiZSBkb25lIGZhc3RlciB3aXRoIHNoYWRlcnMsIGJ1dCBmb3Igbm93IHRo
aXMgaXMgYSB3b3JraW5nIHNvbHV0aW9uCisgICAgICAgIGZvciBwbGF0Zm9ybXMgd2l0aG91dCBC
R1JBIHN1cHBvcnQuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiBFeGlzdGluZyBsYXlvdXQgdGVz
dHMgY292ZXIgdGhpcy4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9UZXh0
dXJlTWFwcGVyR0wuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Qml0bWFwVGV4dHVyZUdMOjplbmRQ
YWludCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL1RleHR1cmVNYXBwZXJH
TC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3F0L1RleHR1cmVNYXBwZXJRdC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSR0JBMzJQcmVtdWx0aW1wbGllZEJ1ZmZlclF0Ojpzd2FwUkdC
KToKKwogMjAxMS0wOC0wMiAgVnNldm9sb2QgVmxhc292ICA8dnNldmlrQGNocm9taXVtLm9yZz4K
IAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBSZW1vdmUgaW5pdGF0b3IgY29sdW1uIGZvciBKU0Ms
IGZpeCBuZXR3b3JrIHJlc291cmNlIGluaXRpYXRvciB0ZXN0cy4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9UZXh0dXJlTWFwcGVyR0wuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL1RleHR1cmVNYXBwZXJHTC5j
cHAKaW5kZXggYjdhMTFkNTFiM2VhOTcwMzgxMzQ2YmRmOGVhNTc3NWRkNjkyOTMyNi4uNTgzYjY5
NzVmZGVmZTBmMGMwNzZlNmRhZmY1ZGJjOGQ1MWI1ZTBmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL1RleHR1cmVNYXBwZXJHTC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL1RleHR1cmVNYXBwZXJHTC5j
cHAKQEAgLTUzNCw3ICs1MzQsMTMgQEAgdm9pZCBCaXRtYXBUZXh0dXJlR0w6OmVuZFBhaW50KCkK
ICAgICAgICAgcmV0dXJuOwogICAgIG1fYnVmZmVyLT5lbmRQYWludCgpOwogICAgIEdMX0NNRChn
bEJpbmRUZXh0dXJlKEdMX1RFWFRVUkVfMkQsIG1faWQpKQorI2lmZGVmIFRFWE1BUF9PUEVOR0xf
RVNfMgorICAgIC8vIEZJWE1FOiB1c2Ugc2hhZGVycyBmb3IgUkdCQS0+QkdSQSBzd2FwIGlmIHRo
aXMgYmVjb21lcyBhIHBlcmZvcm1hbmNlIGlzc3VlLgorICAgIG1fYnVmZmVyLT5zd2FwUkdCKCk7
CisgICAgR0xfQ01EKGdsVGV4U3ViSW1hZ2UyRChHTF9URVhUVVJFXzJELCAwLCBtX2RpcnR5UmVj
dC54KCksIG1fZGlydHlSZWN0LnkoKSwgbV9kaXJ0eVJlY3Qud2lkdGgoKSwgbV9kaXJ0eVJlY3Qu
aGVpZ2h0KCksIEdMX1JHQkEsIEdMX1VOU0lHTkVEX0JZVEUsIG1fYnVmZmVyLT5kYXRhKCkpKQor
I2Vsc2UKICAgICBHTF9DTUQoZ2xUZXhTdWJJbWFnZTJEKEdMX1RFWFRVUkVfMkQsIDAsIG1fZGly
dHlSZWN0LngoKSwgbV9kaXJ0eVJlY3QueSgpLCBtX2RpcnR5UmVjdC53aWR0aCgpLCBtX2RpcnR5
UmVjdC5oZWlnaHQoKSwgR0xfQkdSQSwgR0xfVU5TSUdORURfQllURSwgbV9idWZmZXItPmRhdGEo
KSkpCisjZW5kaWYKICAgICBtX2J1ZmZlci5jbGVhcigpOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvVGV4dHVyZU1hcHBlckdMLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvVGV4dHVyZU1hcHBlckdMLmgK
aW5kZXggNTMwNjkxODViNGY5Yjk1YzY1NTRiYzFjZWQwYWRmNzE0YzhkZTE1OS4uMzA1YjQ5NmU4
NWNhNWFlYThlY2FiZGQyNTg3ODkxYzQ2NTkyOTI4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL1RleHR1cmVNYXBwZXJHTC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9UZXh0dXJlTWFwcGVyR0wuaApAQCAt
NjcsNiArNjcsNyBAQCBjbGFzcyBSR0JBMzJQcmVtdWx0aW1wbGllZEJ1ZmZlciA6IHB1YmxpYyBS
ZWZDb3VudGVkPFJHQkEzMlByZW11bHRpbXBsaWVkQnVmZmVyPgogcHVibGljOgogICAgIHZpcnR1
YWwgflJHQkEzMlByZW11bHRpbXBsaWVkQnVmZmVyKCkge30KICAgICB2aXJ0dWFsIFBsYXRmb3Jt
R3JhcGhpY3NDb250ZXh0KiBiZWdpblBhaW50KGNvbnN0IEludFJlY3QmIGRpcnR5UmVjdCwgYm9v
bCBvcGFxdWUpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc3dhcFJHQigpID0gMDsKICAgICB2aXJ0
dWFsIHZvaWQgZW5kUGFpbnQoKSA9IDA7CiAgICAgdmlydHVhbCBjb25zdCB2b2lkKiBkYXRhKCkg
Y29uc3QgPSAwOwogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFJHQkEzMlByZW11bHRpbXBsaWVkQnVm
ZmVyPiBjcmVhdGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3F0L1RleHR1cmVNYXBwZXJRdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9xdC9UZXh0dXJlTWFwcGVyUXQuY3BwCmluZGV4IDMzMmIxODU3YjZkM2JkZjhiYzg1OWU3
NWM3ZDdiNjlmN2QzOTk5NmQuLmI4MTBhNWU5Y2ZhNjExMmI5NzllYzhmYzU1OTE0MTg0MzBiZGY4
ZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L1RleHR1
cmVNYXBwZXJRdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQv
VGV4dHVyZU1hcHBlclF0LmNwcApAQCAtMjI4LDYgKzIyOCwxMiBAQCBwdWJsaWM6CiAgICAgICAg
IHJldHVybiAmbV9wYWludGVyOwogICAgIH0KIAorICAgIHZvaWQgc3dhcFJHQigpCisgICAgewor
ICAgICAgICBtX2ltYWdlID0gbV9pbWFnZS5yZ2JTd2FwcGVkKCk7CisgICAgfQorCisKICAgICB2
aXJ0dWFsIHZvaWQgZW5kUGFpbnQoKSB7IG1fcGFpbnRlci5lbmQoKTsgfQogICAgIHZpcnR1YWwg
Y29uc3Qgdm9pZCogZGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1faW1hZ2UuY29uc3RCaXRzKCk7IH0K
IAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>102695</attachid>
            <date>2011-08-02 13:58:18 -0700</date>
            <delta_ts>2011-09-26 02:34:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-65473-20110802135416.patch</filename>
            <type>text/plain</type>
            <size>3705</size>
            <attacher name="Noam Rosenthal">noam</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTIyMTgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBlNWM3NWRhYmZjZmU0Yzdm
MTljOWZlNzk5MjdiODAyOWY3ZDgxM2Y3Li40Zjk5MmQ5ZmQ5MTgzODBjN2FmODJmOWFjOWI2Nzk1
YWQ4NGU2MGQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTEtMDgtMDIgIE5vJ2Ft
IFJvc2VudGhhbCAgPG5vYW0ucm9zZW50aGFsQG5va2lhLmNvbT4KKworICAgICAgICBbVGV4bWFw
XVtRdF0gRW5hYmxlIFRleHR1cmVNYXBwZXJHTCBpbiBwbGF0Zm9ybXMgd2hlcmUgQkdSQSBpcyBu
b3QgcHJlc2VudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NjU0NzMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBGb3Igbm93LCBzd2FwIFJHQkEtPkJHUkEgaW4gc29mdHdhcmUgaWYgd2UncmUgaW4gT3BlbkdM
IEVTIDIuCisgICAgICAgIFdlIGRvIHRoYXQgYnkgaXRlcmF0aW5nIG9uIHRoZSBwaXhlbHMgYW5k
IG1hbnVhbGx5IHN3YXBwaW5nIGVhY2ggcGl4ZWwncyByZWQgYW5kIGJsdWUKKyAgICAgICAgdmFs
dWVzLiBUaGlzIGNhbiBiZSBkb25lIGZhc3RlciB3aXRoIHNoYWRlcnMsIGJ1dCBmb3Igbm93IHRo
aXMgaXMgYSB3b3JraW5nIHNvbHV0aW9uCisgICAgICAgIGZvciBwbGF0Zm9ybXMgd2l0aG91dCBC
R1JBIHN1cHBvcnQuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiBFeGlzdGluZyBsYXlvdXQgdGVz
dHMgY292ZXIgdGhpcy4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9UZXh0
dXJlTWFwcGVyR0wuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Qml0bWFwVGV4dHVyZUdMOjplbmRQ
YWludCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL1RleHR1cmVNYXBwZXJH
TC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3F0L1RleHR1cmVNYXBwZXJRdC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSR0JBMzJQcmVtdWx0aW1wbGllZEJ1ZmZlclF0Ojpzd2FwUkdC
KToKKwogMjAxMS0wOC0wMiAgVnNldm9sb2QgVmxhc292ICA8dnNldmlrQGNocm9taXVtLm9yZz4K
IAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBSZW1vdmUgaW5pdGF0b3IgY29sdW1uIGZvciBKU0Ms
IGZpeCBuZXR3b3JrIHJlc291cmNlIGluaXRpYXRvciB0ZXN0cy4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9UZXh0dXJlTWFwcGVyR0wuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL1RleHR1cmVNYXBwZXJHTC5j
cHAKaW5kZXggYjdhMTFkNTFiM2VhOTcwMzgxMzQ2YmRmOGVhNTc3NWRkNjkyOTMyNi4uNTgzYjY5
NzVmZGVmZTBmMGMwNzZlNmRhZmY1ZGJjOGQ1MWI1ZTBmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL1RleHR1cmVNYXBwZXJHTC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL1RleHR1cmVNYXBwZXJHTC5j
cHAKQEAgLTUzNCw3ICs1MzQsMTMgQEAgdm9pZCBCaXRtYXBUZXh0dXJlR0w6OmVuZFBhaW50KCkK
ICAgICAgICAgcmV0dXJuOwogICAgIG1fYnVmZmVyLT5lbmRQYWludCgpOwogICAgIEdMX0NNRChn
bEJpbmRUZXh0dXJlKEdMX1RFWFRVUkVfMkQsIG1faWQpKQorI2lmZGVmIFRFWE1BUF9PUEVOR0xf
RVNfMgorICAgIC8vIEZJWE1FOiB1c2Ugc2hhZGVycyBmb3IgUkdCQS0+QkdSQSBzd2FwIGlmIHRo
aXMgYmVjb21lcyBhIHBlcmZvcm1hbmNlIGlzc3VlLgorICAgIG1fYnVmZmVyLT5zd2FwUkdCKCk7
CisgICAgR0xfQ01EKGdsVGV4U3ViSW1hZ2UyRChHTF9URVhUVVJFXzJELCAwLCBtX2RpcnR5UmVj
dC54KCksIG1fZGlydHlSZWN0LnkoKSwgbV9kaXJ0eVJlY3Qud2lkdGgoKSwgbV9kaXJ0eVJlY3Qu
aGVpZ2h0KCksIEdMX1JHQkEsIEdMX1VOU0lHTkVEX0JZVEUsIG1fYnVmZmVyLT5kYXRhKCkpKQor
I2Vsc2UKICAgICBHTF9DTUQoZ2xUZXhTdWJJbWFnZTJEKEdMX1RFWFRVUkVfMkQsIDAsIG1fZGly
dHlSZWN0LngoKSwgbV9kaXJ0eVJlY3QueSgpLCBtX2RpcnR5UmVjdC53aWR0aCgpLCBtX2RpcnR5
UmVjdC5oZWlnaHQoKSwgR0xfQkdSQSwgR0xfVU5TSUdORURfQllURSwgbV9idWZmZXItPmRhdGEo
KSkpCisjZW5kaWYKICAgICBtX2J1ZmZlci5jbGVhcigpOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvVGV4dHVyZU1hcHBlckdMLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvVGV4dHVyZU1hcHBlckdMLmgK
aW5kZXggNTMwNjkxODViNGY5Yjk1YzY1NTRiYzFjZWQwYWRmNzE0YzhkZTE1OS4uMzA1YjQ5NmU4
NWNhNWFlYThlY2FiZGQyNTg3ODkxYzQ2NTkyOTI4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL1RleHR1cmVNYXBwZXJHTC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9UZXh0dXJlTWFwcGVyR0wuaApAQCAt
NjcsNiArNjcsNyBAQCBjbGFzcyBSR0JBMzJQcmVtdWx0aW1wbGllZEJ1ZmZlciA6IHB1YmxpYyBS
ZWZDb3VudGVkPFJHQkEzMlByZW11bHRpbXBsaWVkQnVmZmVyPgogcHVibGljOgogICAgIHZpcnR1
YWwgflJHQkEzMlByZW11bHRpbXBsaWVkQnVmZmVyKCkge30KICAgICB2aXJ0dWFsIFBsYXRmb3Jt
R3JhcGhpY3NDb250ZXh0KiBiZWdpblBhaW50KGNvbnN0IEludFJlY3QmIGRpcnR5UmVjdCwgYm9v
bCBvcGFxdWUpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc3dhcFJHQigpID0gMDsKICAgICB2aXJ0
dWFsIHZvaWQgZW5kUGFpbnQoKSA9IDA7CiAgICAgdmlydHVhbCBjb25zdCB2b2lkKiBkYXRhKCkg
Y29uc3QgPSAwOwogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFJHQkEzMlByZW11bHRpbXBsaWVkQnVm
ZmVyPiBjcmVhdGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3F0L1RleHR1cmVNYXBwZXJRdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9xdC9UZXh0dXJlTWFwcGVyUXQuY3BwCmluZGV4IDMzMmIxODU3YjZkM2JkZjhiYzg1OWU3
NWM3ZDdiNjlmN2QzOTk5NmQuLjQxMTEyZjRmNmVkYzBhNWFlOWRjZjM0YTQ5N2VlZmRlZTBkNzc2
NTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L1RleHR1
cmVNYXBwZXJRdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQv
VGV4dHVyZU1hcHBlclF0LmNwcApAQCAtMjI4LDYgKzIyOCwxMSBAQCBwdWJsaWM6CiAgICAgICAg
IHJldHVybiAmbV9wYWludGVyOwogICAgIH0KIAorICAgIHZvaWQgc3dhcFJHQigpCisgICAgewor
ICAgICAgICBtX2ltYWdlID0gbV9pbWFnZS5yZ2JTd2FwcGVkKCk7CisgICAgfQorCiAgICAgdmly
dHVhbCB2b2lkIGVuZFBhaW50KCkgeyBtX3BhaW50ZXIuZW5kKCk7IH0KICAgICB2aXJ0dWFsIGNv
bnN0IHZvaWQqIGRhdGEoKSBjb25zdCB7IHJldHVybiBtX2ltYWdlLmNvbnN0Qml0cygpOyB9CiAK
</data>
<flag name="review"
          id="105446"
          type_id="1"
          status="+"
          setter="kling"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>102716</attachid>
            <date>2011-08-02 17:00:52 -0700</date>
            <delta_ts>2011-09-26 02:34:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-65473-20110802165649.patch</filename>
            <type>text/plain</type>
            <size>8280</size>
            <attacher name="Noam Rosenthal">noam</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTIyMTgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBlNWM3NWRhYmZjZmU0Yzdm
MTljOWZlNzk5MjdiODAyOWY3ZDgxM2Y3Li43Y2VkZDViNGM3NWJlM2Y2YWVhMzM3MDQ5YzQwMGMx
ZDExNzVmNzgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTEtMDgtMDIgIE5vJ2Ft
IFJvc2VudGhhbCAgPG5vYW0ucm9zZW50aGFsQG5va2lhLmNvbT4KKworICAgICAgICBbVGV4bWFw
XVtRdF0gRW5hYmxlIFRleHR1cmVNYXBwZXJHTCBpbiBwbGF0Zm9ybXMgd2hlcmUgQkdSQSBpcyBu
b3QgcHJlc2VudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NjU0NzMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBBZGQgdHdvIG5ldyBmcmFnbWVudCBzaGFkZXJzIHRoYXQgc3dhcCBmcm9tIFJHQkEgdG8gQkdS
QSBvbiB0aGUgZmx5LiBUaGVzZSBhcmUgdXNlZCBvbmx5CisgICAgICAgIHdoZW4gZHJhd2luZyB0
byB0aGUgZmluYWwgdGFyZ2V0LCBzbyB0aGF0IGludGVybWVkaWF0ZSBidWZmZXIgZHJhd2luZyBk
b2Vzbid0IGNhdXNlIGR1cGxpY2F0ZSBzd2Fwcy4KKworICAgICAgICBObyBuZXcgdGVzdHMuIEV4
aXN0aW5nIHRlc3RzIGluIExheW91dFRlc3RzL2NvbXBvc2l0aW5nIGNvdmVyIHRoaXMuCisKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvVGV4dHVyZU1hcHBlckdMLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJHTERhdGE6OlRleHR1cmVNYXBwZXJHTERhdGEp
OgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBlckdMOjppbml0aWFsaXplU2hhZGVycyk6
CisgICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyR0w6OmRyYXdUZXh0dXJlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkJpdG1hcFRleHR1cmVHTDo6ZW5kUGFpbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6VGV4dHVyZU1hcHBlckdMOjpiaW5kU3VyZmFjZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3Mvb3BlbmdsL1RleHR1cmVNYXBwZXJHTC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL3F0L1RleHR1cmVNYXBwZXJRdC5jcHA6CisKIDIwMTEtMDgtMDIgIFZzZXZvbG9kIFZsYXNv
diAgPHZzZXZpa0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogUmVtb3Zl
IGluaXRhdG9yIGNvbHVtbiBmb3IgSlNDLCBmaXggbmV0d29yayByZXNvdXJjZSBpbml0aWF0b3Ig
dGVzdHMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVu
Z2wvVGV4dHVyZU1hcHBlckdMLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L29wZW5nbC9UZXh0dXJlTWFwcGVyR0wuY3BwCmluZGV4IGI3YTExZDUxYjNlYTk3MDM4MTM0NmJk
ZjhlYTU3NzVkZDY5MjkzMjYuLmNmMzIwZGNjODQ0NDYzYWJiN2U5YjE1NjhjYjBhZTNlZGE2ZmUx
ZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9U
ZXh0dXJlTWFwcGVyR0wuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L29wZW5nbC9UZXh0dXJlTWFwcGVyR0wuY3BwCkBAIC0xMDksNiArMTA5LDggQEAgc3RydWN0IFRl
eHR1cmVNYXBwZXJHTERhdGEgewogICAgICAgICAgICAgU2ltcGxlUHJvZ3JhbSwKICAgICAgICAg
ICAgIE9wYWNpdHlBbmRNYXNrUHJvZ3JhbSwKICAgICAgICAgICAgIENsaXBQcm9ncmFtLAorICAg
ICAgICAgICAgT3BhY2l0eUFuZE1hc2tTd2FwUkdCUHJvZ3JhbSwKKyAgICAgICAgICAgIFNpbXBs
ZVN3YXBSR0JQcm9ncmFtLAogCiAgICAgICAgICAgICBQcm9ncmFtQ291bnQKICAgICAgICAgfTsK
QEAgLTIxMywxMSArMjE1LDEzIEBAIHN0cnVjdCBUZXh0dXJlTWFwcGVyR0xEYXRhIHsKIAogICAg
IFRleHR1cmVNYXBwZXJHTERhdGEoKQogICAgICAgICA6IGN1cnJlbnRQcm9ncmFtKFRleHR1cmVN
YXBwZXJHTERhdGE6Okdsb2JhbEdMRGF0YTo6Tm9Qcm9ncmFtKQorICAgICAgICAsIGN1cnJlbnRT
dXJmYWNlKDApCiAgICAgeyB9CiAKICAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBwcm9qZWN0aW9u
TWF0cml4OwogICAgIGludCBjdXJyZW50UHJvZ3JhbTsKICAgICBpbnQgcHJldmlvdXNQcm9ncmFt
OworICAgIEJpdG1hcFRleHR1cmUqIGN1cnJlbnRTdXJmYWNlOwogfTsKIAogVGV4dHVyZU1hcHBl
ckdMRGF0YTo6R2xvYmFsR0xEYXRhIFRleHR1cmVNYXBwZXJHTERhdGE6Omdsb2JhbEdMRGF0YTsK
QEAgLTM1OSw2ICszNjMsMzMgQEAgdm9pZCBUZXh0dXJlTWFwcGVyR0w6OmluaXRpYWxpemVTaGFk
ZXJzKCkKICIgICAgICAgICAgICAgICAgICAgZ2xfUG9zaXRpb24gPSBJbk1hdHJpeCAqIEluVmVy
dGV4OyAgICAgICAgICAgICAgICAgICAgICBcbiIKICIgICAgICAgICAgICAgICB9ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiI7CiAK
KworICAgIGNvbnN0IGNoYXIqIGZyYWdtZW50U2hhZGVyU291cmNlT3BhY2l0eUFuZE1hc2tTd2Fw
UkdCID0KKyAgICAgICAgICAgIE9FUzJfUFJFQ0lTSU9OX0RFRklOSVRJT05TCisiICAgICAgICAg
ICAgICAgdW5pZm9ybSBzYW1wbGVyMkQgU291cmNlVGV4dHVyZSwgTWFza1RleHR1cmU7ICAgICAg
ICAgICAgICAgICAgICAgICBcbiIKKyIgICAgICAgICAgICAgICB1bmlmb3JtIGxvd3AgZmxvYXQg
T3BhY2l0eTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgorIiAg
ICAgICAgICAgICAgIHZhcnlpbmcgaGlnaHAgdmVjMiBPdXRUZXhDb29yZFNvdXJjZSwgT3V0VGV4
Q29vcmRNYXNrOyAgICAgICAgICAgICAgXG4iCisiICAgICAgICAgICAgICAgdm9pZCBtYWluKHZv
aWQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc
biIKKyIgICAgICAgICAgICAgICB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgorIiAgICAgICAgICAgICAgICAgICBs
b3dwIHZlYzQgY29sb3IgPSB0ZXh0dXJlMkQoU291cmNlVGV4dHVyZSwgT3V0VGV4Q29vcmRTb3Vy
Y2UpOyAgXG4iCisiICAgICAgICAgICAgICAgICAgIGxvd3AgdmVjNCBtYXNrQ29sb3IgPSB0ZXh0
dXJlMkQoTWFza1RleHR1cmUsIE91dFRleENvb3JkTWFzayk7ICBcbiIKKyIgICAgICAgICAgICAg
ICAgICAgbG93cCBmbG9hdCBvID0gT3BhY2l0eSAqIG1hc2tDb2xvci5hOyAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFxuIgorIiAgICAgICAgICAgICAgICAgICBnbF9GcmFnQ29sb3IgPSB2ZWM0
KGNvbG9yLmJnciAqIG8sIGNvbG9yLmEgKiBvKTsgICAgICAgICAgICAgICAgXG4iCisiICAgICAg
ICAgICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBcbiI7CisKKyAgICBjb25zdCBjaGFyKiBmcmFnbWVudFNoYWRl
clNvdXJjZVNpbXBsZVN3YXBSR0IgPQorICAgICAgICAgICAgT0VTMl9QUkVDSVNJT05fREVGSU5J
VElPTlMKKyIgICAgICAgICAgICAgICB1bmlmb3JtIHNhbXBsZXIyRCBTb3VyY2VUZXh0dXJlOyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgorIiAgICAgICAgICAgICAgIHVu
aWZvcm0gbG93cCBmbG9hdCBPcGFjaXR5OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgXG4iCisiICAgICAgICAgICAgICAgdmFyeWluZyBoaWdocCB2ZWMyIE91dFRleENv
b3JkU291cmNlOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiIKKyIgICAgICAgICAg
ICAgICB2b2lkIG1haW4odm9pZCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFxuIgorIiAgICAgICAgICAgICAgIHsgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4iCisiICAg
ICAgICAgICAgICAgICAgIGxvd3AgdmVjNCBjb2xvciA9IHRleHR1cmUyRChTb3VyY2VUZXh0dXJl
LCBPdXRUZXhDb29yZFNvdXJjZSk7ICBcbiIKKyIgICAgICAgICAgICAgICAgICAgZ2xfRnJhZ0Nv
bG9yID0gdmVjNChjb2xvci5iZ3IgKiBPcGFjaXR5LCBjb2xvci5hICogT3BhY2l0eSk7ICAgIFxu
IgorIiAgICAgICAgICAgICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4iOworICAgIGNvbnN0IGNoYXIqIHZlcnRl
eFNoYWRlclNvdXJjZVNpbXBsZVN3YXBSR0IgPSB2ZXJ0ZXhTaGFkZXJTb3VyY2VTaW1wbGU7Cisg
ICAgY29uc3QgY2hhciogdmVydGV4U2hhZGVyU291cmNlT3BhY2l0eUFuZE1hc2tTd2FwUkdCID0g
dmVydGV4U2hhZGVyU291cmNlT3BhY2l0eUFuZE1hc2s7CisKICAgICBjb25zdCBjaGFyKiBmcmFn
bWVudFNoYWRlclNvdXJjZUNsaXAgPQogIiAgICAgICAgICAgICAgIHZvaWQgbWFpbih2b2lkKSB7
IGdsX0ZyYWdDb2xvciA9IHZlYzQoMC4wLCAwLjAsIDAuMCwgMC4wKTsgfSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIjsKIApAQCAtMzcwLDYgKzQwMSw4IEBAIHZvaWQgVGV4dHVyZU1h
cHBlckdMOjppbml0aWFsaXplU2hhZGVycygpCiAKICAgICBURVhNQVBfQlVJTERfU0hBREVSKFNp
bXBsZSkKICAgICBURVhNQVBfQlVJTERfU0hBREVSKE9wYWNpdHlBbmRNYXNrKQorICAgIFRFWE1B
UF9CVUlMRF9TSEFERVIoU2ltcGxlU3dhcFJHQikKKyAgICBURVhNQVBfQlVJTERfU0hBREVSKE9w
YWNpdHlBbmRNYXNrU3dhcFJHQikKICAgICBURVhNQVBfQlVJTERfU0hBREVSKENsaXApCiAKICAg
ICBURVhNQVBfR0VUX1NIQURFUl9WQVJfTE9DQVRJT04oT3BhY2l0eUFuZE1hc2ssIEluTWF0cml4
KQpAQCAtMzg0LDYgKzQxNywxOCBAQCB2b2lkIFRleHR1cmVNYXBwZXJHTDo6aW5pdGlhbGl6ZVNo
YWRlcnMoKQogICAgIFRFWE1BUF9HRVRfU0hBREVSX1ZBUl9MT0NBVElPTihTaW1wbGUsIFNvdXJj
ZVRleHR1cmUpCiAgICAgVEVYTUFQX0dFVF9TSEFERVJfVkFSX0xPQ0FUSU9OKFNpbXBsZSwgT3Bh
Y2l0eSkKIAorICAgIFRFWE1BUF9HRVRfU0hBREVSX1ZBUl9MT0NBVElPTihPcGFjaXR5QW5kTWFz
a1N3YXBSR0IsIEluTWF0cml4KQorICAgIFRFWE1BUF9HRVRfU0hBREVSX1ZBUl9MT0NBVElPTihP
cGFjaXR5QW5kTWFza1N3YXBSR0IsIEluU291cmNlTWF0cml4KQorICAgIFRFWE1BUF9HRVRfU0hB
REVSX1ZBUl9MT0NBVElPTihPcGFjaXR5QW5kTWFza1N3YXBSR0IsIEluTWFza01hdHJpeCkKKyAg
ICBURVhNQVBfR0VUX1NIQURFUl9WQVJfTE9DQVRJT04oT3BhY2l0eUFuZE1hc2tTd2FwUkdCLCBT
b3VyY2VUZXh0dXJlKQorICAgIFRFWE1BUF9HRVRfU0hBREVSX1ZBUl9MT0NBVElPTihPcGFjaXR5
QW5kTWFza1N3YXBSR0IsIE1hc2tUZXh0dXJlKQorICAgIFRFWE1BUF9HRVRfU0hBREVSX1ZBUl9M
T0NBVElPTihPcGFjaXR5QW5kTWFza1N3YXBSR0IsIE9wYWNpdHkpCisKKyAgICBURVhNQVBfR0VU
X1NIQURFUl9WQVJfTE9DQVRJT04oU2ltcGxlU3dhcFJHQiwgSW5Tb3VyY2VNYXRyaXgpCisgICAg
VEVYTUFQX0dFVF9TSEFERVJfVkFSX0xPQ0FUSU9OKFNpbXBsZVN3YXBSR0IsIEluTWF0cml4KQor
ICAgIFRFWE1BUF9HRVRfU0hBREVSX1ZBUl9MT0NBVElPTihTaW1wbGVTd2FwUkdCLCBTb3VyY2VU
ZXh0dXJlKQorICAgIFRFWE1BUF9HRVRfU0hBREVSX1ZBUl9MT0NBVElPTihTaW1wbGVTd2FwUkdC
LCBPcGFjaXR5KQorCiAgICAgVEVYTUFQX0dFVF9TSEFERVJfVkFSX0xPQ0FUSU9OKENsaXAsIElu
TWF0cml4KQogfQogCkBAIC00MjgsMTAgKzQ3MywxNSBAQCB2b2lkIFRleHR1cmVNYXBwZXJHTDo6
ZHJhd1RleHR1cmUoY29uc3QgQml0bWFwVGV4dHVyZSYgdGV4dHVyZSwgY29uc3QgRmxvYXRSZWN0
Jgogdm9pZCBUZXh0dXJlTWFwcGVyR0w6OmRyYXdUZXh0dXJlKHVpbnQzMl90IHRleHR1cmUsIGJv
b2wgb3BhcXVlLCBjb25zdCBGbG9hdFNpemUmIHJlbGF0aXZlU2l6ZSwgY29uc3QgRmxvYXRSZWN0
JiB0YXJnZXRSZWN0LCBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgbW9kZWxWaWV3TWF0cml4
LCBmbG9hdCBvcGFjaXR5LCBjb25zdCBCaXRtYXBUZXh0dXJlKiBtYXNrVGV4dHVyZSwgYm9vbCBm
bGlwKQogewogICAgIFRleHR1cmVNYXBwZXJHTERhdGE6Okdsb2JhbEdMRGF0YTo6U2hhZGVyUHJv
Z3JhbUluZGV4IHByb2dyYW07CisgICAgYm9vbCBzd2FwUkdCID0gZmFsc2U7CisjaWZkZWYgVEVY
TUFQX09QRU5HTF9FU18yCisgICAgLy8gU2luY2Ugd2UgbWlnaHQgcGVyZm9ybSB0d28tcGFzcyBy
ZW5kZXJpbmcgd2l0aCBpbnRlcm1lZGlhdGUgYnVmZmVycywgd2UgZG9uJ3Qgd2FudCB0byBkbyBS
R0ItPkJHUiBjb252ZXJzaW9uIHR3aWNlLiBTbyB3ZSBvbmx5IHBlcmZvcm0gdGhhdCBjb252ZXJz
aW9uIHdoZW4gd2UgZHJhdyB0byB0aGUgZmluYWwgdGFyZ2V0LgorICAgIHN3YXBSR0IgPSAhKGRh
dGEoKS5jdXJyZW50U3VyZmFjZSk7CisjZW5kaWYKICAgICBpZiAobWFza1RleHR1cmUpCi0gICAg
ICAgIHByb2dyYW0gPSBUZXh0dXJlTWFwcGVyR0xEYXRhOjpHbG9iYWxHTERhdGE6Ok9wYWNpdHlB
bmRNYXNrUHJvZ3JhbTsKKyAgICAgICAgcHJvZ3JhbSA9IHN3YXBSR0IgPyBUZXh0dXJlTWFwcGVy
R0xEYXRhOjpHbG9iYWxHTERhdGE6Ok9wYWNpdHlBbmRNYXNrU3dhcFJHQlByb2dyYW0gOiBUZXh0
dXJlTWFwcGVyR0xEYXRhOjpHbG9iYWxHTERhdGE6Ok9wYWNpdHlBbmRNYXNrUHJvZ3JhbTsKICAg
ICBlbHNlCi0gICAgICAgIHByb2dyYW0gPSBUZXh0dXJlTWFwcGVyR0xEYXRhOjpHbG9iYWxHTERh
dGE6OlNpbXBsZVByb2dyYW07CisgICAgICAgIHByb2dyYW0gPSBzd2FwUkdCID8gVGV4dHVyZU1h
cHBlckdMRGF0YTo6R2xvYmFsR0xEYXRhOjpTaW1wbGVTd2FwUkdCUHJvZ3JhbSA6IFRleHR1cmVN
YXBwZXJHTERhdGE6Okdsb2JhbEdMRGF0YTo6U2ltcGxlUHJvZ3JhbTsKIAogICAgIGNvbnN0IFRl
eHR1cmVNYXBwZXJHTERhdGE6Okdsb2JhbEdMRGF0YTo6UHJvZ3JhbUluZm8mIHByb2dyYW1JbmZv
ID0gZGF0YSgpLmdsb2JhbEdMRGF0YS5wcm9ncmFtc1twcm9ncmFtXTsKICAgICBHTF9DTUQoZ2xV
c2VQcm9ncmFtKHByb2dyYW1JbmZvLmlkKSkKQEAgLTUzNCw3ICs1ODQsMTIgQEAgdm9pZCBCaXRt
YXBUZXh0dXJlR0w6OmVuZFBhaW50KCkKICAgICAgICAgcmV0dXJuOwogICAgIG1fYnVmZmVyLT5l
bmRQYWludCgpOwogICAgIEdMX0NNRChnbEJpbmRUZXh0dXJlKEdMX1RFWFRVUkVfMkQsIG1faWQp
KQorI2lmZGVmIFRFWE1BUF9PUEVOR0xfRVNfMgorICAgIC8vIEZJWE1FOiB1c2Ugc2hhZGVycyBm
b3IgUkdCQS0+QkdSQSBzd2FwIGlmIHRoaXMgYmVjb21lcyBhIHBlcmZvcm1hbmNlIGlzc3VlLgor
ICAgIEdMX0NNRChnbFRleFN1YkltYWdlMkQoR0xfVEVYVFVSRV8yRCwgMCwgbV9kaXJ0eVJlY3Qu
eCgpLCBtX2RpcnR5UmVjdC55KCksIG1fZGlydHlSZWN0LndpZHRoKCksIG1fZGlydHlSZWN0Lmhl
aWdodCgpLCBHTF9SR0JBLCBHTF9VTlNJR05FRF9CWVRFLCBtX2J1ZmZlci0+ZGF0YSgpKSkKKyNl
bHNlCiAgICAgR0xfQ01EKGdsVGV4U3ViSW1hZ2UyRChHTF9URVhUVVJFXzJELCAwLCBtX2RpcnR5
UmVjdC54KCksIG1fZGlydHlSZWN0LnkoKSwgbV9kaXJ0eVJlY3Qud2lkdGgoKSwgbV9kaXJ0eVJl
Y3QuaGVpZ2h0KCksIEdMX0JHUkEsIEdMX1VOU0lHTkVEX0JZVEUsIG1fYnVmZmVyLT5kYXRhKCkp
KQorI2VuZGlmCiAgICAgbV9idWZmZXIuY2xlYXIoKTsKIH0KIApAQCAtNjQ2LDYgKzcwMSw3IEBA
IFRleHR1cmVNYXBwZXJHTDo6flRleHR1cmVNYXBwZXJHTCgpCiB2b2lkIFRleHR1cmVNYXBwZXJH
TDo6YmluZFN1cmZhY2UoQml0bWFwVGV4dHVyZSAqc3VyZmFjZVBvaW50ZXIpCiB7CiAgICAgQml0
bWFwVGV4dHVyZUdMKiBzdXJmYWNlID0gc3RhdGljX2Nhc3Q8Qml0bWFwVGV4dHVyZUdMKj4oc3Vy
ZmFjZVBvaW50ZXIpOworICAgIGRhdGEoKS5jdXJyZW50U3VyZmFjZSA9IHN1cmZhY2U7CiAKICAg
ICBpZiAoIXN1cmZhY2UpIHsKICAgICAgICAgR0xfQ01EKGdsQmluZEZyYW1lYnVmZmVyKEdMX0ZS
QU1FQlVGRkVSLCAwKSkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>108648</attachid>
            <date>2011-09-26 02:34:33 -0700</date>
            <delta_ts>2011-09-26 03:51:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch.diff</filename>
            <type>text/plain</type>
            <size>3704</size>
            <attacher name="Noam Rosenthal">noam</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTIyMTgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBlNWM3NWRhYmZjZmU0Yzdm
MTljOWZlNzk5MjdiODAyOWY3ZDgxM2Y3Li40Zjk5MmQ5ZmQ5MTgzODBjN2FmODJmOWFjOWI2Nzk1
YWQ4NGU2MGQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTEtMDgtMDIgIE5vJ2Ft
IFJvc2VudGhhbCAgPG5vYW0ucm9zZW50aGFsQG5va2lhLmNvbT4KKworICAgICAgICBbVGV4bWFw
XVtRdF0gRW5hYmxlIFRleHR1cmVNYXBwZXJHTCBpbiBwbGF0Zm9ybXMgd2hlcmUgQkdSQSBpcyBu
b3QgcHJlc2VudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NjU0NzMKKworICAgICAgICBSZXZpZXdlZCBieSBBbmRyZWFzIEtsaW5nLgorCisgICAgICAg
IEZvciBub3csIHN3YXAgUkdCQS0+QkdSQSBpbiBzb2Z0d2FyZSBpZiB3ZSdyZSBpbiBPcGVuR0wg
RVMgMi4KKyAgICAgICAgV2UgZG8gdGhhdCBieSBpdGVyYXRpbmcgb24gdGhlIHBpeGVscyBhbmQg
bWFudWFsbHkgc3dhcHBpbmcgZWFjaCBwaXhlbCdzIHJlZCBhbmQgYmx1ZQorICAgICAgICB2YWx1
ZXMuIFRoaXMgY2FuIGJlIGRvbmUgZmFzdGVyIHdpdGggc2hhZGVycywgYnV0IGZvciBub3cgdGhp
cyBpcyBhIHdvcmtpbmcgc29sdXRpb24KKyAgICAgICAgZm9yIHBsYXRmb3JtcyB3aXRob3V0IEJH
UkEgc3VwcG9ydC4KKworICAgICAgICBObyBuZXcgdGVzdHMuIEV4aXN0aW5nIGxheW91dCB0ZXN0
cyBjb3ZlciB0aGlzLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL1RleHR1
cmVNYXBwZXJHTC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCaXRtYXBUZXh0dXJlR0w6OmVuZFBh
aW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvVGV4dHVyZU1hcHBlckdM
Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvcXQvVGV4dHVyZU1hcHBlclF0LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJHQkEzMlByZW11bHRpbXBsaWVkQnVmZmVyUXQ6OnN3YXBSR0Ip
OgorCiAyMDExLTA4LTAyICBWc2V2b2xvZCBWbGFzb3YgIDx2c2V2aWtAY2hyb21pdW0ub3JnPgog
CiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IFJlbW92ZSBpbml0YXRvciBjb2x1bW4gZm9yIEpTQywg
Zml4IG5ldHdvcmsgcmVzb3VyY2UgaW5pdGlhdG9yIHRlc3RzLgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL1RleHR1cmVNYXBwZXJHTC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvVGV4dHVyZU1hcHBlckdMLmNw
cAppbmRleCBiN2ExMWQ1MWIzZWE5NzAzODEzNDZiZGY4ZWE1Nzc1ZGQ2OTI5MzI2Li41ODNiNjk3
NWZkZWZlMGYwYzA3NmU2ZGFmZjVkYmM4ZDUxYjVlMGYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvVGV4dHVyZU1hcHBlckdMLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvVGV4dHVyZU1hcHBlckdMLmNw
cApAQCAtNTM0LDcgKzUzNCwxMyBAQCB2b2lkIEJpdG1hcFRleHR1cmVHTDo6ZW5kUGFpbnQoKQog
ICAgICAgICByZXR1cm47CiAgICAgbV9idWZmZXItPmVuZFBhaW50KCk7CiAgICAgR0xfQ01EKGds
QmluZFRleHR1cmUoR0xfVEVYVFVSRV8yRCwgbV9pZCkpCisjaWZkZWYgVEVYTUFQX09QRU5HTF9F
U18yCisgICAgLy8gRklYTUU6IHVzZSBzaGFkZXJzIGZvciBSR0JBLT5CR1JBIHN3YXAgaWYgdGhp
cyBiZWNvbWVzIGEgcGVyZm9ybWFuY2UgaXNzdWUuCisgICAgbV9idWZmZXItPnN3YXBSR0IoKTsK
KyAgICBHTF9DTUQoZ2xUZXhTdWJJbWFnZTJEKEdMX1RFWFRVUkVfMkQsIDAsIG1fZGlydHlSZWN0
LngoKSwgbV9kaXJ0eVJlY3QueSgpLCBtX2RpcnR5UmVjdC53aWR0aCgpLCBtX2RpcnR5UmVjdC5o
ZWlnaHQoKSwgR0xfUkdCQSwgR0xfVU5TSUdORURfQllURSwgbV9idWZmZXItPmRhdGEoKSkpCisj
ZWxzZQogICAgIEdMX0NNRChnbFRleFN1YkltYWdlMkQoR0xfVEVYVFVSRV8yRCwgMCwgbV9kaXJ0
eVJlY3QueCgpLCBtX2RpcnR5UmVjdC55KCksIG1fZGlydHlSZWN0LndpZHRoKCksIG1fZGlydHlS
ZWN0LmhlaWdodCgpLCBHTF9CR1JBLCBHTF9VTlNJR05FRF9CWVRFLCBtX2J1ZmZlci0+ZGF0YSgp
KSkKKyNlbmRpZgogICAgIG1fYnVmZmVyLmNsZWFyKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9UZXh0dXJlTWFwcGVyR0wuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9UZXh0dXJlTWFwcGVyR0wuaApp
bmRleCA1MzA2OTE4NWI0ZjliOTVjNjU1NGJjMWNlZDBhZGY3MTRjOGRlMTU5Li4zMDViNDk2ZTg1
Y2E1YWVhOGVjYWJkZDI1ODc4OTFjNDY1OTI5MjhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvVGV4dHVyZU1hcHBlckdMLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL1RleHR1cmVNYXBwZXJHTC5oCkBAIC02
Nyw2ICs2Nyw3IEBAIGNsYXNzIFJHQkEzMlByZW11bHRpbXBsaWVkQnVmZmVyIDogcHVibGljIFJl
ZkNvdW50ZWQ8UkdCQTMyUHJlbXVsdGltcGxpZWRCdWZmZXI+CiBwdWJsaWM6CiAgICAgdmlydHVh
bCB+UkdCQTMyUHJlbXVsdGltcGxpZWRCdWZmZXIoKSB7fQogICAgIHZpcnR1YWwgUGxhdGZvcm1H
cmFwaGljc0NvbnRleHQqIGJlZ2luUGFpbnQoY29uc3QgSW50UmVjdCYgZGlydHlSZWN0LCBib29s
IG9wYXF1ZSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzd2FwUkdCKCkgPSAwOwogICAgIHZpcnR1
YWwgdm9pZCBlbmRQYWludCgpID0gMDsKICAgICB2aXJ0dWFsIGNvbnN0IHZvaWQqIGRhdGEoKSBj
b25zdCA9IDA7CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8UkdCQTMyUHJlbXVsdGltcGxpZWRCdWZm
ZXI+IGNyZWF0ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvcXQvVGV4dHVyZU1hcHBlclF0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3F0L1RleHR1cmVNYXBwZXJRdC5jcHAKaW5kZXggMzMyYjE4NTdiNmQzYmRmOGJjODU5ZTc1
YzdkN2I2OWY3ZDM5OTk2ZC4uNDExMTJmNGY2ZWRjMGE1YWU5ZGNmMzRhNDk3ZWVmZGVlMGQ3NzY1
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvVGV4dHVy
ZU1hcHBlclF0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9U
ZXh0dXJlTWFwcGVyUXQuY3BwCkBAIC0yMjgsNiArMjI4LDExIEBAIHB1YmxpYzoKICAgICAgICAg
cmV0dXJuICZtX3BhaW50ZXI7CiAgICAgfQogCisgICAgdm9pZCBzd2FwUkdCKCkKKyAgICB7Cisg
ICAgICAgIG1faW1hZ2UgPSBtX2ltYWdlLnJnYlN3YXBwZWQoKTsKKyAgICB9CisKICAgICB2aXJ0
dWFsIHZvaWQgZW5kUGFpbnQoKSB7IG1fcGFpbnRlci5lbmQoKTsgfQogICAgIHZpcnR1YWwgY29u
c3Qgdm9pZCogZGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1faW1hZ2UuY29uc3RCaXRzKCk7IH0KIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>