<?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>67402</bug_id>
          
          <creation_ts>2011-09-01 07:33:09 -0700</creation_ts>
          <short_desc>[chromium] canvas.toDataURL(&quot;image/jpeg&quot;): use libjpeg-turbo data swizzle</short_desc>
          <delta_ts>2011-09-29 15:13:55 -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>
          <dependson>51237</dependson>
    
    <dependson>67589</dependson>
    
    <dependson>68366</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="noel gordon">noel.gordon</reporter>
          <assigned_to name="noel gordon">noel.gordon</assigned_to>
          <cc>abarth</cc>
    
    <cc>dglazkov</cc>
    
    <cc>hbono</cc>
    
    <cc>jbauman</cc>
    
    <cc>kbr</cc>
    
    <cc>morrita</cc>
    
    <cc>pkasting</cc>
    
    <cc>tony</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>460440</commentid>
    <comment_count>0</comment_count>
    <who name="noel gordon">noel.gordon</who>
    <bug_when>2011-09-01 07:33:09 -0700</bug_when>
    <thetext>Removes the need for temporary row data.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>460448</commentid>
    <comment_count>1</comment_count>
      <attachid>105960</attachid>
    <who name="noel gordon">noel.gordon</who>
    <bug_when>2011-09-01 07:40:09 -0700</bug_when>
    <thetext>Created attachment 105960
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>460451</commentid>
    <comment_count>2</comment_count>
      <attachid>105960</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-09-01 07:46:02 -0700</bug_when>
    <thetext>Comment on attachment 105960
Patch

Attachment 105960 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/9572999</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>460452</commentid>
    <comment_count>3</comment_count>
    <who name="noel gordon">noel.gordon</who>
    <bug_when>2011-09-01 07:46:21 -0700</bug_when>
    <thetext>Before I add Stephen and Kenneth to the review, Tony a question: does Chrome Linux still use the system jpeg?  If the answer is yes, then no need to continue here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>460455</commentid>
    <comment_count>4</comment_count>
      <attachid>105961</attachid>
    <who name="noel gordon">noel.gordon</who>
    <bug_when>2011-09-01 07:49:30 -0700</bug_when>
    <thetext>Created attachment 105961
Patch fix Linux build</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>460475</commentid>
    <comment_count>5</comment_count>
    <who name="noel gordon">noel.gordon</who>
    <bug_when>2011-09-01 08:13:35 -0700</bug_when>
    <thetext>I know that cr-linux has libjpeg-turbo.  My question is about other ports of chrome linux, Fedora and such, and if I need worry about them.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>460517</commentid>
    <comment_count>6</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2011-09-01 09:32:42 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; I know that cr-linux has libjpeg-turbo.  My question is about other ports of chrome linux, Fedora and such, and if I need worry about them.

It looks like the Fedora rpm still uses system libjpeg, but they should probably try to switch to the system libjpeg-turbo.  I think this patch is fine and we should maybe (in the chromium repository) remove the DEPS entry for libjpeg and the gyp variable to use libjpeg.

I don&apos;t actually know this code; cc&apos;ing people who do.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>460597</commentid>
    <comment_count>7</comment_count>
      <attachid>105961</attachid>
    <who name="Peter Kasting">pkasting</who>
    <bug_when>2011-09-01 10:51:16 -0700</bug_when>
    <thetext>Comment on attachment 105961
Patch fix Linux build

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

&gt; Source/WebCore/platform/image-encoders/skia/JPEGImageEncoder.cpp:44
&gt; +#error &quot;Failed: libjpeg-turbo bindings not found.&quot;

I&apos;m not convinced we can reasonably enforce this yet.  We had to patch problems in libjpeg-turbo before it was safe to use and I don&apos;t know that Fedora or other consumers have a system libjpeg-turbo that contains those modifications.

I wonder if instead we should #ifdef callers to pass JCS_RGB for libjpeg, and still call the old conversion functions in that case.

&gt; Source/WebCore/platform/image-encoders/skia/JPEGImageEncoder.cpp:-141
&gt; -            preMultipliedBGRAtoRGB(pixels, cinfo.image_width, row.data());

I confess that I don&apos;t really understand the premultiplication stuff (I didn&apos;t add it), but it looks to me as if you&apos;re changing the behavior here by removing the &quot;unpremultiply&quot; step in this case.  Was the old behavior wrong?  Can we write tests that demonstrate the difference?

&gt; Source/WebCore/platform/image-encoders/skia/JPEGImageEncoder.cpp:120
&gt; +        jpeg_write_scanlines(&amp;cinfo, &amp;pixels, 1), pixels += pixelRowStride;

Please use two separate lines, and {} on the loop.

&gt; Source/WebCore/platform/image-encoders/skia/JPEGImageEncoder.cpp:-153
&gt; -bool JPEGImageEncoder::encode(const SkBitmap&amp; bitmap, int quality, Vector&lt;unsigned char&gt;* output)

Don&apos;t rename |bitmap| here or |imageData| below.

&gt; Source/WebCore/platform/image-encoders/skia/JPEGImageEncoder.cpp:135
&gt; +    unsigned char* pixels = static_cast&lt;unsigned char *&gt;(image.getPixels());
&gt; +    const J_COLOR_SPACE pixelFormat = JCS_EXT_BGRX;

Just collapse these into the statement below.

&gt; Source/WebCore/platform/image-encoders/skia/JPEGImageEncoder.cpp:143
&gt; +    unsigned char* pixels = image.data()-&gt;data()-&gt;data();
&gt; +    const J_COLOR_SPACE pixelFormat = JCS_EXT_RGBX;

Just collapse these into the statement below.

&gt; Source/WebCore/platform/image-encoders/skia/JPEGImageEncoder.cpp:145
&gt; +    return encodePixels(IntSize(image.width(), image.height()), pixels, pixelFormat, quality, output);

Why not use image.size() for the first arg like the old code did?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>462211</commentid>
    <comment_count>8</comment_count>
      <attachid>105961</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-09-05 11:56:11 -0700</bug_when>
    <thetext>Comment on attachment 105961
Patch fix Linux build

pls address pkasting&apos;s comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>463304</commentid>
    <comment_count>9</comment_count>
    <who name="noel gordon">noel.gordon</who>
    <bug_when>2011-09-07 05:16:50 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (From update of attachment 105961 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=105961&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/image-encoders/skia/JPEGImageEncoder.cpp:44
&gt; &gt; +#error &quot;Failed: libjpeg-turbo bindings not found.&quot;
&gt; 
&gt; I&apos;m not convinced we can reasonably enforce this yet.  We had to patch problems in libjpeg-turbo before it was safe to use and I don&apos;t know that Fedora or other consumers have a system libjpeg-turbo that contains those modifications.
&gt; 
&gt; I wonder if instead we should #ifdef callers to pass JCS_RGB for libjpeg, and still call the old conversion functions in that case.

Yes that seems safest way forward for now.

 
&gt; &gt; Source/WebCore/platform/image-encoders/skia/JPEGImageEncoder.cpp:-141
&gt; &gt; -            preMultipliedBGRAtoRGB(pixels, cinfo.image_width, row.data());
&gt; 
&gt; I confess that I don&apos;t really understand the premultiplication stuff (I didn&apos;t add it), but it looks to me as if you&apos;re changing the behavior here by removing the &quot;unpremultiply&quot; step in this case.  Was the old behavior wrong?  Can we write tests that demonstrate the difference?
&gt; 

No change in behavior here, the tests that must pass were mentioned in the change log.  The premultiplication requirements were documented in bug 51237 based on our spec feedback on http://www.w3.org/Bugs/Public/show_bug.cgi?id=11431

The rest was addressed on bug 67598.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>463305</commentid>
    <comment_count>10</comment_count>
    <who name="noel gordon">noel.gordon</who>
    <bug_when>2011-09-07 05:17:46 -0700</bug_when>
    <thetext>Ahem, addressed on bug 67589.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>463306</commentid>
    <comment_count>11</comment_count>
      <attachid>106574</attachid>
    <who name="noel gordon">noel.gordon</who>
    <bug_when>2011-09-07 05:18:55 -0700</bug_when>
    <thetext>Created attachment 106574
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>463311</commentid>
    <comment_count>12</comment_count>
      <attachid>106574</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-09-07 05:39:00 -0700</bug_when>
    <thetext>Comment on attachment 106574
Patch

Attachment 106574 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/9609231</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>463314</commentid>
    <comment_count>13</comment_count>
      <attachid>106574</attachid>
    <who name="John Bauman">jbauman</who>
    <bug_when>2011-09-07 05:43:15 -0700</bug_when>
    <thetext>Comment on attachment 106574
Patch

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

Do these formats work while decoding as well? I noticed we spent about as much time doing the swizzle and write into the imageframe as we do actually decoding the image, so there&apos;s plenty of room for improvement there.

&gt; Source/WebCore/platform/image-encoders/skia/JPEGImageEncoder.cpp:153
&gt; +    cinfo.in_color_space = premultiplied ? JCS_EXT_BGRX : JCS_EXT_RGBX;

Hmm, I somehow didn&apos;t notice the source-over black when I wrote the original code, so it was wrong. I think we need to multiply by alpha if the source isn&apos;t premultiplied, or else the color will be wrong. (This could probably be tested by doing something like fast/canvas/webgl/premultiplyalpha-test.html, except with image/jpeg).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>463318</commentid>
    <comment_count>14</comment_count>
      <attachid>106577</attachid>
    <who name="noel gordon">noel.gordon</who>
    <bug_when>2011-09-07 06:00:25 -0700</bug_when>
    <thetext>Created attachment 106577
Patch tame Linux EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>463319</commentid>
    <comment_count>15</comment_count>
    <who name="noel gordon">noel.gordon</who>
    <bug_when>2011-09-07 06:03:42 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; (From update of attachment 106574 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=106574&amp;action=review
&gt; 
&gt; Do these formats work while decoding as well? I noticed we spent about as much time doing the swizzle and write into the imageframe as we do actually decoding the image, so there&apos;s plenty of room for improvement there.
&gt; 

Yes, the libjpeg-turbo formats work for decoding too.  I believe hbono-san is working on a decoder patch.  Should result in a very nice speed-up as you noted.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>463320</commentid>
    <comment_count>16</comment_count>
    <who name="noel gordon">noel.gordon</who>
    <bug_when>2011-09-07 06:09:04 -0700</bug_when>
    <thetext>(In reply to comment #13)

&gt; &gt; Source/WebCore/platform/image-encoders/skia/JPEGImageEncoder.cpp:153
&gt; &gt; +    cinfo.in_color_space = premultiplied ? JCS_EXT_BGRX : JCS_EXT_RGBX;
&gt; 
&gt; Hmm, I somehow didn&apos;t notice the source-over black when I wrote the original code, so it was wrong. I think we need to multiply by alpha if the source isn&apos;t premultiplied, or else the color will be wrong. (This could probably be tested by doing something like fast/canvas/webgl/premultiplyalpha-test.html, except with image/jpeg).

Yes, you and kbr@ were next on my list here :)  Are you referring to the code you added in bug 56238 or the code here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>463327</commentid>
    <comment_count>17</comment_count>
    <who name="John Bauman">jbauman</who>
    <bug_when>2011-09-07 06:40:58 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; (In reply to comment #13)
&gt; 
&gt; &gt; &gt; Source/WebCore/platform/image-encoders/skia/JPEGImageEncoder.cpp:153
&gt; &gt; &gt; +    cinfo.in_color_space = premultiplied ? JCS_EXT_BGRX : JCS_EXT_RGBX;
&gt; &gt; 
&gt; &gt; Hmm, I somehow didn&apos;t notice the source-over black when I wrote the original code, so it was wrong. I think we need to multiply by alpha if the source isn&apos;t premultiplied, or else the color will be wrong. (This could probably be tested by doing something like fast/canvas/webgl/premultiplyalpha-test.html, except with image/jpeg).
&gt; 
&gt; Yes, you and kbr@ were next on my list here :)  Are you referring to the code you added in bug 56238 or the code here?

The code I added in bug 56238 was broken, and your patch keeps it broken (and makes it somewhat harder to fix).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>463751</commentid>
    <comment_count>18</comment_count>
      <attachid>106577</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2011-09-07 16:18:52 -0700</bug_when>
    <thetext>Comment on attachment 106577
Patch tame Linux EWS

Please work with jbauman to fix and test the apparent preexisting alpha premultiplication bug so we don&apos;t inadvertently duplicate existing buggy code. Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>474575</commentid>
    <comment_count>19</comment_count>
    <who name="noel gordon">noel.gordon</who>
    <bug_when>2011-09-28 00:45:45 -0700</bug_when>
    <thetext>Worked with John in bug 68366, fixed bug 40147 in the process.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>474576</commentid>
    <comment_count>20</comment_count>
      <attachid>108979</attachid>
    <who name="noel gordon">noel.gordon</who>
    <bug_when>2011-09-28 00:48:07 -0700</bug_when>
    <thetext>Created attachment 108979
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>474578</commentid>
    <comment_count>21</comment_count>
      <attachid>108980</attachid>
    <who name="noel gordon">noel.gordon</who>
    <bug_when>2011-09-28 00:51:48 -0700</bug_when>
    <thetext>Created attachment 108980
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>475480</commentid>
    <comment_count>22</comment_count>
      <attachid>108980</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2011-09-29 09:54:40 -0700</bug_when>
    <thetext>Comment on attachment 108980
Patch

jbauman, would you consider doing the unofficial review of this patch?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>475694</commentid>
    <comment_count>23</comment_count>
    <who name="John Bauman">jbauman</who>
    <bug_when>2011-09-29 14:53:29 -0700</bug_when>
    <thetext>(In reply to comment #22)
&gt; (From update of attachment 108980 [details])
&gt; jbauman, would you consider doing the unofficial review of this patch?

Sure, it looks good to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>475699</commentid>
    <comment_count>24</comment_count>
      <attachid>108980</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2011-09-29 14:58:58 -0700</bug_when>
    <thetext>Comment on attachment 108980
Patch

Sounds good. rs=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>475712</commentid>
    <comment_count>25</comment_count>
      <attachid>108980</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-09-29 15:13:49 -0700</bug_when>
    <thetext>Comment on attachment 108980
Patch

Clearing flags on attachment: 108980

Committed r96364: &lt;http://trac.webkit.org/changeset/96364&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>475713</commentid>
    <comment_count>26</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-09-29 15:13:55 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>105960</attachid>
            <date>2011-09-01 07:40:09 -0700</date>
            <delta_ts>2011-09-01 07:49:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>todataurl.git.diff</filename>
            <type>text/plain</type>
            <size>6367</size>
            <attacher name="noel gordon">noel.gordon</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBiNDExNmRmLi44N2MyMTE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcg
QEAKKzIwMTEtMDktMDEgIE5vZWwgR29yZG9uICA8bm9lbC5nb3Jkb25AZ21haWwuY29tPgorCisg
ICAgICAgIFtjaHJvbWl1bV0gY2FudmFzLnRvRGF0YVVSTCgiaW1hZ2UvanBlZyIpOiB1c2UgbGli
anBlZy10dXJibyBkYXRhIHN3aXp6bGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTY3NDAyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgbGlianBlZy10dXJibyBjYW4gcmVhZCBkaXJlY3RseSBmcm9tIGlucHV0
IGRhdGEgaWYgaXQgaXMgaW5mb3JtZWQgb2YgdGhlIGlucHV0CisgICAgICAgIHBpeGVsIGJ5dGUg
b3JnYW5pemF0aW9uIC0gQlJHWCBmb3IgYSBTa0JpdG1hcCBpbnB1dCwgYW5kIFJHQlggZm9yIGFu
IEltYWdlRGF0YQorICAgICAgICBpbnB1dC4gIElmIHRoZSBpbnB1dCBwaXhlbHMgYXJlIGFscGhh
IHByZS1tdWx0aXBsaWVkLCB0aGUgb3V0cHV0IGVuY29kZWQgaW1hZ2UKKyAgICAgICAgaXMgYSBQ
b3J0ZXItRHVmZiBjb21wb3NpdGUsIHNyYy1vdmVyIGJsYWNrLCBhcyByZXF1aXJlZCBieSB0aGUg
PGNhbnZhcz4gc3BlYy4KKworICAgICAgICBOb3RlIHRoYXQgd2hpbGUgbGlianBlZy10dXJibyBp
cyBhIGRyb3AtaW4gcmVwbGFjZW1lbnQgZm9yIGxpYmpwZWcsIHRoZSBjaGFuZ2UKKyAgICAgICAg
aGVyZWluIGlzIG5vdCBiYWNrd2FyZCBjb21wYXRpYmxlIHdpdGggbGlianBlZyBzaW5jZSBpdCBk
aXJlY2x5IGRlcGVuZHMgb24gdGhlCisgICAgICAgIGlucHV0IGRhdGEgc3dpenpsaW5nIGNhcGFi
aWxpdHkgb2YgbGlianBlZy10dXJiby4KKworICAgICAgICBObyBuZXcgdGVzdHMuIENvdmVyZWQg
YnkgZXhpc3RpbmcgY2FudmFzIDJkIGFuZCAzZCB0ZXN0cy4KKyAgICAgICAgY2FudmFzL3BoaWxp
cC90ZXN0cy90b0RhdGFVUkwuanBlZy5hbHBoYS5odG1sCisgICAgICAgIGZhc3QvY2FudmFzL3dl
YmdsL3ByZW11bHRpcGx5YWxwaGEtdGVzdC5odG1sCisKKyAgICAgICAgKiBwbGF0Zm9ybS9pbWFn
ZS1lbmNvZGVycy9za2lhL0pQRUdJbWFnZUVuY29kZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
ZW5jb2RlUGl4ZWxzKToKKyAgICAgICAgKFdlYkNvcmU6OkpQRUdJbWFnZUVuY29kZXI6OmVuY29k
ZSk6CisKIDIwMTEtMDktMDEgIFl1dGEgS2l0YW11cmEgIDx5dXRha0BjaHJvbWl1bS5vcmc+CiAK
ICAgICAgICAgV2ViU29ja2V0OiBGaXggYnVmZmVyZWRBbW91bnQgYWZ0ZXIgV2ViU29ja2V0IGlz
IGNsb3NlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZW5jb2Rl
cnMvc2tpYS9KUEVHSW1hZ2VFbmNvZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lt
YWdlLWVuY29kZXJzL3NraWEvSlBFR0ltYWdlRW5jb2Rlci5jcHAKaW5kZXggZjBhYzYwMS4uODA1
YWI4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZW5jb2RlcnMv
c2tpYS9KUEVHSW1hZ2VFbmNvZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9p
bWFnZS1lbmNvZGVycy9za2lhL0pQRUdJbWFnZUVuY29kZXIuY3BwCkBAIC0zNCwxNCArMzQsMTYg
QEAKICNpbmNsdWRlICJJbWFnZURhdGEuaCIKICNpbmNsdWRlICJJbnRTaXplLmgiCiAjaW5jbHVk
ZSAiU2tCaXRtYXAuaCIKLSNpbmNsdWRlICJTa0NvbG9yUHJpdi5oIgotI2luY2x1ZGUgIlNrVW5Q
cmVNdWx0aXBseS5oIgogZXh0ZXJuICJDIiB7CiAjaW5jbHVkZSA8c3RkaW8uaD4gLy8ganBlZ2xp
Yi5oIG5lZWRzIHN0ZGlvLmggRklMRQogI2luY2x1ZGUgImpwZWdsaWIuaCIKICNpbmNsdWRlIDxz
ZXRqbXAuaD4KIH0KIAorI2lmICFkZWZpbmVkKEpDU19FWFRFTlNJT05TKQorI2Vycm9yICJGYWls
ZWQ6IGxpYmpwZWctdHVyYm8gYmluZGluZ3Mgbm90IGZvdW5kLiIKKyNlbmRpZgorCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIHN0cnVjdCBKUEVHT3V0cHV0QnVmZmVyIDogcHVibGljIGpwZWdfZGVz
dGluYXRpb25fbWdyIHsKQEAgLTgwLDMzICs4MiwxMCBAQCBzdGF0aWMgdm9pZCBoYW5kbGVFcnJv
cihqX2NvbW1vbl9wdHIgY29tbW9uKQogICAgIGxvbmdqbXAoKmp1bXBCdWZmZXJQdHIsIC0xKTsK
IH0KIAotc3RhdGljIHZvaWQgcHJlTXVsdGlwbGllZEJHUkF0b1JHQihjb25zdCB2b2lkKiBwaXhl
bHMsIHVuc2lnbmVkIGludCBwaXhlbENvdW50LCB1bnNpZ25lZCBjaGFyKiBvdXRwdXQpCi17Ci0g
ICAgY29uc3QgU2tQTUNvbG9yKiBpbnB1dCA9IHN0YXRpY19jYXN0PGNvbnN0IFNrUE1Db2xvcio+
KHBpeGVscyk7Ci0gICAgZm9yICg7IHBpeGVsQ291bnQtLSA+IDA7ICsraW5wdXQpIHsKLSAgICAg
ICAgKm91dHB1dCsrID0gU2tHZXRQYWNrZWRSMzIoKmlucHV0KTsKLSAgICAgICAgKm91dHB1dCsr
ID0gU2tHZXRQYWNrZWRHMzIoKmlucHV0KTsKLSAgICAgICAgKm91dHB1dCsrID0gU2tHZXRQYWNr
ZWRCMzIoKmlucHV0KTsKLSAgICB9Ci19Ci0KLXN0YXRpYyB2b2lkIFJHQkF0b1JHQihjb25zdCB1
bnNpZ25lZCBjaGFyKiBpbnB1dCwgdW5zaWduZWQgaW50IHBpeGVscywgdW5zaWduZWQgY2hhciog
b3V0cHV0KQorc3RhdGljIGJvb2wgZW5jb2RlUGl4ZWxzKEludFNpemUmIGltYWdlU2l6ZSwgdW5z
aWduZWQgY2hhciogcGl4ZWxzLCBKX0NPTE9SX1NQQUNFIGZvcm1hdCwgaW50IHF1YWxpdHksIFZl
Y3Rvcjx1bnNpZ25lZCBjaGFyPiogb3V0cHV0KQogewotICAgIGZvciAoOyBwaXhlbHMtLSA+IDA7
IGlucHV0ICs9IDQpIHsKLSAgICAgICAgKm91dHB1dCsrID0gaW5wdXRbMF07Ci0gICAgICAgICpv
dXRwdXQrKyA9IGlucHV0WzFdOwotICAgICAgICAqb3V0cHV0KysgPSBpbnB1dFsyXTsKLSAgICB9
Ci19Ci0KLXN0YXRpYyBib29sIGVuY29kZVBpeGVscyhjb25zdCBJbnRTaXplJiBpbnB1dFNpemUs
IHVuc2lnbmVkIGNoYXIqIGlucHV0UGl4ZWxzLAotICAgICAgICAgICAgICAgICAgICAgICAgIGJv
b2wgcHJlbXVsdGlwbGllZCwgaW50IHF1YWxpdHksIFZlY3Rvcjx1bnNpZ25lZCBjaGFyPiogb3V0
cHV0KQotewotICAgIEludFNpemUgaW1hZ2VTaXplKGlucHV0U2l6ZSk7Ci0gICAgaW1hZ2VTaXpl
LmNsYW1wTmVnYXRpdmVUb1plcm8oKTsKICAgICBKUEVHT3V0cHV0QnVmZmVyIGRlc3RpbmF0aW9u
OwogICAgIGRlc3RpbmF0aW9uLm91dHB1dCA9IG91dHB1dDsKLSAgICBWZWN0b3I8SlNBTVBMRT4g
cm93OwogCiAgICAganBlZ19jb21wcmVzc19zdHJ1Y3QgY2luZm87CiAgICAganBlZ19lcnJvcl9t
Z3IgZXJyb3I7CkBAIC0xMjUsNDcgKzEwNCw0NSBAQCBzdGF0aWMgYm9vbCBlbmNvZGVQaXhlbHMo
Y29uc3QgSW50U2l6ZSYgaW5wdXRTaXplLCB1bnNpZ25lZCBjaGFyKiBpbnB1dFBpeGVscywKICAg
ICBjaW5mby5kZXN0LT5pbml0X2Rlc3RpbmF0aW9uID0gcHJlcGFyZU91dHB1dDsKICAgICBjaW5m
by5kZXN0LT5lbXB0eV9vdXRwdXRfYnVmZmVyID0gd3JpdGVPdXRwdXQ7CiAgICAgY2luZm8uZGVz
dC0+dGVybV9kZXN0aW5hdGlvbiA9IGZpbmlzaE91dHB1dDsKKworICAgIGltYWdlU2l6ZS5jbGFt
cE5lZ2F0aXZlVG9aZXJvKCk7CiAgICAgY2luZm8uaW1hZ2VfaGVpZ2h0ID0gaW1hZ2VTaXplLmhl
aWdodCgpOwogICAgIGNpbmZvLmltYWdlX3dpZHRoID0gaW1hZ2VTaXplLndpZHRoKCk7Ci0gICAg
Y2luZm8uaW5fY29sb3Jfc3BhY2UgPSBKQ1NfUkdCOwotICAgIGNpbmZvLmlucHV0X2NvbXBvbmVu
dHMgPSAzOworICAgIGNpbmZvLmluX2NvbG9yX3NwYWNlID0gZm9ybWF0OworICAgIGNpbmZvLmlu
cHV0X2NvbXBvbmVudHMgPSA0OwogCiAgICAganBlZ19zZXRfZGVmYXVsdHMoJmNpbmZvKTsKICAg
ICBqcGVnX3NldF9xdWFsaXR5KCZjaW5mbywgcXVhbGl0eSwgVFJVRSk7CiAgICAganBlZ19zdGFy
dF9jb21wcmVzcygmY2luZm8sIFRSVUUpOwogCi0gICAgdW5zaWduZWQgY2hhciogcGl4ZWxzID0g
aW5wdXRQaXhlbHM7Ci0gICAgcm93LnJlc2l6ZShjaW5mby5pbWFnZV93aWR0aCAqIGNpbmZvLmlu
cHV0X2NvbXBvbmVudHMpOwotICAgIHdoaWxlIChjaW5mby5uZXh0X3NjYW5saW5lIDwgY2luZm8u
aW1hZ2VfaGVpZ2h0KSB7Ci0gICAgICAgIGlmIChwcmVtdWx0aXBsaWVkKQotICAgICAgICAgICAg
cHJlTXVsdGlwbGllZEJHUkF0b1JHQihwaXhlbHMsIGNpbmZvLmltYWdlX3dpZHRoLCByb3cuZGF0
YSgpKTsKLSAgICAgICAgZWxzZSAKLSAgICAgICAgICAgIFJHQkF0b1JHQihwaXhlbHMsIGNpbmZv
LmltYWdlX3dpZHRoLCByb3cuZGF0YSgpKTsKLSAgICAgICAganBlZ193cml0ZV9zY2FubGluZXMo
JmNpbmZvLCByb3cuZGF0YVNsb3QoKSwgMSk7Ci0gICAgICAgIHBpeGVscyArPSBjaW5mby5pbWFn
ZV93aWR0aCAqIDQ7Ci0gICAgfQorICAgIGNvbnN0IHNpemVfdCBwaXhlbFJvd1N0cmlkZSA9IGNp
bmZvLmltYWdlX3dpZHRoICogY2luZm8uaW5wdXRfY29tcG9uZW50czsKKyAgICB3aGlsZSAoY2lu
Zm8ubmV4dF9zY2FubGluZSA8IGNpbmZvLmltYWdlX2hlaWdodCkKKyAgICAgICAganBlZ193cml0
ZV9zY2FubGluZXMoJmNpbmZvLCAmcGl4ZWxzLCAxKSwgcGl4ZWxzICs9IHBpeGVsUm93U3RyaWRl
OwogCiAgICAganBlZ19maW5pc2hfY29tcHJlc3MoJmNpbmZvKTsKICAgICBqcGVnX2Rlc3Ryb3lf
Y29tcHJlc3MoJmNpbmZvKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBKUEVHSW1hZ2VF
bmNvZGVyOjplbmNvZGUoY29uc3QgU2tCaXRtYXAmIGJpdG1hcCwgaW50IHF1YWxpdHksIFZlY3Rv
cjx1bnNpZ25lZCBjaGFyPiogb3V0cHV0KQorYm9vbCBKUEVHSW1hZ2VFbmNvZGVyOjplbmNvZGUo
Y29uc3QgU2tCaXRtYXAmIGltYWdlLCBpbnQgcXVhbGl0eSwgVmVjdG9yPHVuc2lnbmVkIGNoYXI+
KiBvdXRwdXQpCiB7Ci0gICAgaWYgKGJpdG1hcC5jb25maWcoKSAhPSBTa0JpdG1hcDo6a0FSR0Jf
ODg4OF9Db25maWcpCi0gICAgICAgIHJldHVybiBmYWxzZTsgLy8gT25seSBzdXBwb3J0IEFSR0Ig
MzIgYnBwIHNraWEgYml0bWFwcy4KKyAgICBpZiAoaW1hZ2UuY29uZmlnKCkgIT0gU2tCaXRtYXA6
OmtBUkdCXzg4ODhfQ29uZmlnKQorICAgICAgICByZXR1cm4gZmFsc2U7IC8vIE9ubHkgc3VwcG9y
dCAzMiBicHAgc2tpYSBiaXRtYXBzLgorCisgICAgU2tBdXRvTG9ja1BpeGVscyBiaXRtYXBMb2Nr
KGltYWdlKTsKIAotICAgIFNrQXV0b0xvY2tQaXhlbHMgYml0bWFwTG9jayhiaXRtYXApOwotICAg
IEludFNpemUgaW1hZ2VTaXplKGJpdG1hcC53aWR0aCgpLCBiaXRtYXAuaGVpZ2h0KCkpOworICAg
IHVuc2lnbmVkIGNoYXIqIHBpeGVscyA9IHN0YXRpY19jYXN0PHVuc2lnbmVkIGNoYXIgKj4oaW1h
Z2UuZ2V0UGl4ZWxzKCkpOworICAgIGNvbnN0IEpfQ09MT1JfU1BBQ0UgcGl4ZWxGb3JtYXQgPSBK
Q1NfRVhUX0JHUlg7CiAKLSAgICByZXR1cm4gZW5jb2RlUGl4ZWxzKGltYWdlU2l6ZSwgc3RhdGlj
X2Nhc3Q8dW5zaWduZWQgY2hhciAqPihiaXRtYXAuZ2V0UGl4ZWxzKCkpLAotICAgICAgICAgICAg
ICAgICAgICAgICAgdHJ1ZSwgcXVhbGl0eSwgb3V0cHV0KTsKKyAgICByZXR1cm4gZW5jb2RlUGl4
ZWxzKEludFNpemUoaW1hZ2Uud2lkdGgoKSwgaW1hZ2UuaGVpZ2h0KCkpLCBwaXhlbHMsIHBpeGVs
Rm9ybWF0LCBxdWFsaXR5LCBvdXRwdXQpOwogfQogCi1ib29sIEpQRUdJbWFnZUVuY29kZXI6OmVu
Y29kZShjb25zdCBJbWFnZURhdGEmIGltYWdlRGF0YSwgaW50IHF1YWxpdHksIFZlY3Rvcjx1bnNp
Z25lZCBjaGFyPiogb3V0cHV0KQorYm9vbCBKUEVHSW1hZ2VFbmNvZGVyOjplbmNvZGUoY29uc3Qg
SW1hZ2VEYXRhJiBpbWFnZSwgaW50IHF1YWxpdHksIFZlY3Rvcjx1bnNpZ25lZCBjaGFyPiogb3V0
cHV0KQogewotICAgIHJldHVybiBlbmNvZGVQaXhlbHMoaW1hZ2VEYXRhLnNpemUoKSwgaW1hZ2VE
YXRhLmRhdGEoKS0+ZGF0YSgpLT5kYXRhKCksCi0gICAgICAgICAgICAgICAgICAgICAgICBmYWxz
ZSwgcXVhbGl0eSwgb3V0cHV0KTsKKyAgICB1bnNpZ25lZCBjaGFyKiBwaXhlbHMgPSBpbWFnZS5k
YXRhKCktPmRhdGEoKS0+ZGF0YSgpOworICAgIGNvbnN0IEpfQ09MT1JfU1BBQ0UgcGl4ZWxGb3Jt
YXQgPSBKQ1NfRVhUX1JHQlg7CisKKyAgICByZXR1cm4gZW5jb2RlUGl4ZWxzKEludFNpemUoaW1h
Z2Uud2lkdGgoKSwgaW1hZ2UuaGVpZ2h0KCkpLCBwaXhlbHMsIHBpeGVsRm9ybWF0LCBxdWFsaXR5
LCBvdXRwdXQpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCg==
</data>
<flag name="commit-queue"
          id="102276"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>105961</attachid>
            <date>2011-09-01 07:49:30 -0700</date>
            <delta_ts>2011-09-07 05:18:55 -0700</delta_ts>
            <desc>Patch fix Linux build</desc>
            <filename>todataurl.git.diff</filename>
            <type>text/plain</type>
            <size>6366</size>
            <attacher name="noel gordon">noel.gordon</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBiNDExNmRmLi44N2MyMTE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcg
QEAKKzIwMTEtMDktMDEgIE5vZWwgR29yZG9uICA8bm9lbC5nb3Jkb25AZ21haWwuY29tPgorCisg
ICAgICAgIFtjaHJvbWl1bV0gY2FudmFzLnRvRGF0YVVSTCgiaW1hZ2UvanBlZyIpOiB1c2UgbGli
anBlZy10dXJibyBkYXRhIHN3aXp6bGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTY3NDAyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgbGlianBlZy10dXJibyBjYW4gcmVhZCBkaXJlY3RseSBmcm9tIGlucHV0
IGRhdGEgaWYgaXQgaXMgaW5mb3JtZWQgb2YgdGhlIGlucHV0CisgICAgICAgIHBpeGVsIGJ5dGUg
b3JnYW5pemF0aW9uIC0gQlJHWCBmb3IgYSBTa0JpdG1hcCBpbnB1dCwgYW5kIFJHQlggZm9yIGFu
IEltYWdlRGF0YQorICAgICAgICBpbnB1dC4gIElmIHRoZSBpbnB1dCBwaXhlbHMgYXJlIGFscGhh
IHByZS1tdWx0aXBsaWVkLCB0aGUgb3V0cHV0IGVuY29kZWQgaW1hZ2UKKyAgICAgICAgaXMgYSBQ
b3J0ZXItRHVmZiBjb21wb3NpdGUsIHNyYy1vdmVyIGJsYWNrLCBhcyByZXF1aXJlZCBieSB0aGUg
PGNhbnZhcz4gc3BlYy4KKworICAgICAgICBOb3RlIHRoYXQgd2hpbGUgbGlianBlZy10dXJibyBp
cyBhIGRyb3AtaW4gcmVwbGFjZW1lbnQgZm9yIGxpYmpwZWcsIHRoZSBjaGFuZ2UKKyAgICAgICAg
aGVyZWluIGlzIG5vdCBiYWNrd2FyZCBjb21wYXRpYmxlIHdpdGggbGlianBlZyBzaW5jZSBpdCBk
aXJlY2x5IGRlcGVuZHMgb24gdGhlCisgICAgICAgIGlucHV0IGRhdGEgc3dpenpsaW5nIGNhcGFi
aWxpdHkgb2YgbGlianBlZy10dXJiby4KKworICAgICAgICBObyBuZXcgdGVzdHMuIENvdmVyZWQg
YnkgZXhpc3RpbmcgY2FudmFzIDJkIGFuZCAzZCB0ZXN0cy4KKyAgICAgICAgY2FudmFzL3BoaWxp
cC90ZXN0cy90b0RhdGFVUkwuanBlZy5hbHBoYS5odG1sCisgICAgICAgIGZhc3QvY2FudmFzL3dl
YmdsL3ByZW11bHRpcGx5YWxwaGEtdGVzdC5odG1sCisKKyAgICAgICAgKiBwbGF0Zm9ybS9pbWFn
ZS1lbmNvZGVycy9za2lhL0pQRUdJbWFnZUVuY29kZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
ZW5jb2RlUGl4ZWxzKToKKyAgICAgICAgKFdlYkNvcmU6OkpQRUdJbWFnZUVuY29kZXI6OmVuY29k
ZSk6CisKIDIwMTEtMDktMDEgIFl1dGEgS2l0YW11cmEgIDx5dXRha0BjaHJvbWl1bS5vcmc+CiAK
ICAgICAgICAgV2ViU29ja2V0OiBGaXggYnVmZmVyZWRBbW91bnQgYWZ0ZXIgV2ViU29ja2V0IGlz
IGNsb3NlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZW5jb2Rl
cnMvc2tpYS9KUEVHSW1hZ2VFbmNvZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lt
YWdlLWVuY29kZXJzL3NraWEvSlBFR0ltYWdlRW5jb2Rlci5jcHAKaW5kZXggZjBhYzYwMS4uZDA4
MjM4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZW5jb2RlcnMv
c2tpYS9KUEVHSW1hZ2VFbmNvZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9p
bWFnZS1lbmNvZGVycy9za2lhL0pQRUdJbWFnZUVuY29kZXIuY3BwCkBAIC0zNCwxNCArMzQsMTYg
QEAKICNpbmNsdWRlICJJbWFnZURhdGEuaCIKICNpbmNsdWRlICJJbnRTaXplLmgiCiAjaW5jbHVk
ZSAiU2tCaXRtYXAuaCIKLSNpbmNsdWRlICJTa0NvbG9yUHJpdi5oIgotI2luY2x1ZGUgIlNrVW5Q
cmVNdWx0aXBseS5oIgogZXh0ZXJuICJDIiB7CiAjaW5jbHVkZSA8c3RkaW8uaD4gLy8ganBlZ2xp
Yi5oIG5lZWRzIHN0ZGlvLmggRklMRQogI2luY2x1ZGUgImpwZWdsaWIuaCIKICNpbmNsdWRlIDxz
ZXRqbXAuaD4KIH0KIAorI2lmICFkZWZpbmVkKEpDU19FWFRFTlNJT05TKQorI2Vycm9yICJGYWls
ZWQ6IGxpYmpwZWctdHVyYm8gYmluZGluZ3Mgbm90IGZvdW5kLiIKKyNlbmRpZgorCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIHN0cnVjdCBKUEVHT3V0cHV0QnVmZmVyIDogcHVibGljIGpwZWdfZGVz
dGluYXRpb25fbWdyIHsKQEAgLTgwLDMzICs4MiwxMCBAQCBzdGF0aWMgdm9pZCBoYW5kbGVFcnJv
cihqX2NvbW1vbl9wdHIgY29tbW9uKQogICAgIGxvbmdqbXAoKmp1bXBCdWZmZXJQdHIsIC0xKTsK
IH0KIAotc3RhdGljIHZvaWQgcHJlTXVsdGlwbGllZEJHUkF0b1JHQihjb25zdCB2b2lkKiBwaXhl
bHMsIHVuc2lnbmVkIGludCBwaXhlbENvdW50LCB1bnNpZ25lZCBjaGFyKiBvdXRwdXQpCi17Ci0g
ICAgY29uc3QgU2tQTUNvbG9yKiBpbnB1dCA9IHN0YXRpY19jYXN0PGNvbnN0IFNrUE1Db2xvcio+
KHBpeGVscyk7Ci0gICAgZm9yICg7IHBpeGVsQ291bnQtLSA+IDA7ICsraW5wdXQpIHsKLSAgICAg
ICAgKm91dHB1dCsrID0gU2tHZXRQYWNrZWRSMzIoKmlucHV0KTsKLSAgICAgICAgKm91dHB1dCsr
ID0gU2tHZXRQYWNrZWRHMzIoKmlucHV0KTsKLSAgICAgICAgKm91dHB1dCsrID0gU2tHZXRQYWNr
ZWRCMzIoKmlucHV0KTsKLSAgICB9Ci19Ci0KLXN0YXRpYyB2b2lkIFJHQkF0b1JHQihjb25zdCB1
bnNpZ25lZCBjaGFyKiBpbnB1dCwgdW5zaWduZWQgaW50IHBpeGVscywgdW5zaWduZWQgY2hhciog
b3V0cHV0KQorc3RhdGljIGJvb2wgZW5jb2RlUGl4ZWxzKEludFNpemUgaW1hZ2VTaXplLCB1bnNp
Z25lZCBjaGFyKiBwaXhlbHMsIEpfQ09MT1JfU1BBQ0UgZm9ybWF0LCBpbnQgcXVhbGl0eSwgVmVj
dG9yPHVuc2lnbmVkIGNoYXI+KiBvdXRwdXQpCiB7Ci0gICAgZm9yICg7IHBpeGVscy0tID4gMDsg
aW5wdXQgKz0gNCkgewotICAgICAgICAqb3V0cHV0KysgPSBpbnB1dFswXTsKLSAgICAgICAgKm91
dHB1dCsrID0gaW5wdXRbMV07Ci0gICAgICAgICpvdXRwdXQrKyA9IGlucHV0WzJdOwotICAgIH0K
LX0KLQotc3RhdGljIGJvb2wgZW5jb2RlUGl4ZWxzKGNvbnN0IEludFNpemUmIGlucHV0U2l6ZSwg
dW5zaWduZWQgY2hhciogaW5wdXRQaXhlbHMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgYm9v
bCBwcmVtdWx0aXBsaWVkLCBpbnQgcXVhbGl0eSwgVmVjdG9yPHVuc2lnbmVkIGNoYXI+KiBvdXRw
dXQpCi17Ci0gICAgSW50U2l6ZSBpbWFnZVNpemUoaW5wdXRTaXplKTsKLSAgICBpbWFnZVNpemUu
Y2xhbXBOZWdhdGl2ZVRvWmVybygpOwogICAgIEpQRUdPdXRwdXRCdWZmZXIgZGVzdGluYXRpb247
CiAgICAgZGVzdGluYXRpb24ub3V0cHV0ID0gb3V0cHV0OwotICAgIFZlY3RvcjxKU0FNUExFPiBy
b3c7CiAKICAgICBqcGVnX2NvbXByZXNzX3N0cnVjdCBjaW5mbzsKICAgICBqcGVnX2Vycm9yX21n
ciBlcnJvcjsKQEAgLTEyNSw0NyArMTA0LDQ1IEBAIHN0YXRpYyBib29sIGVuY29kZVBpeGVscyhj
b25zdCBJbnRTaXplJiBpbnB1dFNpemUsIHVuc2lnbmVkIGNoYXIqIGlucHV0UGl4ZWxzLAogICAg
IGNpbmZvLmRlc3QtPmluaXRfZGVzdGluYXRpb24gPSBwcmVwYXJlT3V0cHV0OwogICAgIGNpbmZv
LmRlc3QtPmVtcHR5X291dHB1dF9idWZmZXIgPSB3cml0ZU91dHB1dDsKICAgICBjaW5mby5kZXN0
LT50ZXJtX2Rlc3RpbmF0aW9uID0gZmluaXNoT3V0cHV0OworCisgICAgaW1hZ2VTaXplLmNsYW1w
TmVnYXRpdmVUb1plcm8oKTsKICAgICBjaW5mby5pbWFnZV9oZWlnaHQgPSBpbWFnZVNpemUuaGVp
Z2h0KCk7CiAgICAgY2luZm8uaW1hZ2Vfd2lkdGggPSBpbWFnZVNpemUud2lkdGgoKTsKLSAgICBj
aW5mby5pbl9jb2xvcl9zcGFjZSA9IEpDU19SR0I7Ci0gICAgY2luZm8uaW5wdXRfY29tcG9uZW50
cyA9IDM7CisgICAgY2luZm8uaW5fY29sb3Jfc3BhY2UgPSBmb3JtYXQ7CisgICAgY2luZm8uaW5w
dXRfY29tcG9uZW50cyA9IDQ7CiAKICAgICBqcGVnX3NldF9kZWZhdWx0cygmY2luZm8pOwogICAg
IGpwZWdfc2V0X3F1YWxpdHkoJmNpbmZvLCBxdWFsaXR5LCBUUlVFKTsKICAgICBqcGVnX3N0YXJ0
X2NvbXByZXNzKCZjaW5mbywgVFJVRSk7CiAKLSAgICB1bnNpZ25lZCBjaGFyKiBwaXhlbHMgPSBp
bnB1dFBpeGVsczsKLSAgICByb3cucmVzaXplKGNpbmZvLmltYWdlX3dpZHRoICogY2luZm8uaW5w
dXRfY29tcG9uZW50cyk7Ci0gICAgd2hpbGUgKGNpbmZvLm5leHRfc2NhbmxpbmUgPCBjaW5mby5p
bWFnZV9oZWlnaHQpIHsKLSAgICAgICAgaWYgKHByZW11bHRpcGxpZWQpCi0gICAgICAgICAgICBw
cmVNdWx0aXBsaWVkQkdSQXRvUkdCKHBpeGVscywgY2luZm8uaW1hZ2Vfd2lkdGgsIHJvdy5kYXRh
KCkpOwotICAgICAgICBlbHNlIAotICAgICAgICAgICAgUkdCQXRvUkdCKHBpeGVscywgY2luZm8u
aW1hZ2Vfd2lkdGgsIHJvdy5kYXRhKCkpOwotICAgICAgICBqcGVnX3dyaXRlX3NjYW5saW5lcygm
Y2luZm8sIHJvdy5kYXRhU2xvdCgpLCAxKTsKLSAgICAgICAgcGl4ZWxzICs9IGNpbmZvLmltYWdl
X3dpZHRoICogNDsKLSAgICB9CisgICAgY29uc3Qgc2l6ZV90IHBpeGVsUm93U3RyaWRlID0gY2lu
Zm8uaW1hZ2Vfd2lkdGggKiBjaW5mby5pbnB1dF9jb21wb25lbnRzOworICAgIHdoaWxlIChjaW5m
by5uZXh0X3NjYW5saW5lIDwgY2luZm8uaW1hZ2VfaGVpZ2h0KQorICAgICAgICBqcGVnX3dyaXRl
X3NjYW5saW5lcygmY2luZm8sICZwaXhlbHMsIDEpLCBwaXhlbHMgKz0gcGl4ZWxSb3dTdHJpZGU7
CiAKICAgICBqcGVnX2ZpbmlzaF9jb21wcmVzcygmY2luZm8pOwogICAgIGpwZWdfZGVzdHJveV9j
b21wcmVzcygmY2luZm8pOwogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIEpQRUdJbWFnZUVu
Y29kZXI6OmVuY29kZShjb25zdCBTa0JpdG1hcCYgYml0bWFwLCBpbnQgcXVhbGl0eSwgVmVjdG9y
PHVuc2lnbmVkIGNoYXI+KiBvdXRwdXQpCitib29sIEpQRUdJbWFnZUVuY29kZXI6OmVuY29kZShj
b25zdCBTa0JpdG1hcCYgaW1hZ2UsIGludCBxdWFsaXR5LCBWZWN0b3I8dW5zaWduZWQgY2hhcj4q
IG91dHB1dCkKIHsKLSAgICBpZiAoYml0bWFwLmNvbmZpZygpICE9IFNrQml0bWFwOjprQVJHQl84
ODg4X0NvbmZpZykKLSAgICAgICAgcmV0dXJuIGZhbHNlOyAvLyBPbmx5IHN1cHBvcnQgQVJHQiAz
MiBicHAgc2tpYSBiaXRtYXBzLgorICAgIGlmIChpbWFnZS5jb25maWcoKSAhPSBTa0JpdG1hcDo6
a0FSR0JfODg4OF9Db25maWcpCisgICAgICAgIHJldHVybiBmYWxzZTsgLy8gT25seSBzdXBwb3J0
IDMyIGJwcCBza2lhIGJpdG1hcHMuCisKKyAgICBTa0F1dG9Mb2NrUGl4ZWxzIGJpdG1hcExvY2so
aW1hZ2UpOwogCi0gICAgU2tBdXRvTG9ja1BpeGVscyBiaXRtYXBMb2NrKGJpdG1hcCk7Ci0gICAg
SW50U2l6ZSBpbWFnZVNpemUoYml0bWFwLndpZHRoKCksIGJpdG1hcC5oZWlnaHQoKSk7CisgICAg
dW5zaWduZWQgY2hhciogcGl4ZWxzID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQgY2hhciAqPihpbWFn
ZS5nZXRQaXhlbHMoKSk7CisgICAgY29uc3QgSl9DT0xPUl9TUEFDRSBwaXhlbEZvcm1hdCA9IEpD
U19FWFRfQkdSWDsKIAotICAgIHJldHVybiBlbmNvZGVQaXhlbHMoaW1hZ2VTaXplLCBzdGF0aWNf
Y2FzdDx1bnNpZ25lZCBjaGFyICo+KGJpdG1hcC5nZXRQaXhlbHMoKSksCi0gICAgICAgICAgICAg
ICAgICAgICAgICB0cnVlLCBxdWFsaXR5LCBvdXRwdXQpOworICAgIHJldHVybiBlbmNvZGVQaXhl
bHMoSW50U2l6ZShpbWFnZS53aWR0aCgpLCBpbWFnZS5oZWlnaHQoKSksIHBpeGVscywgcGl4ZWxG
b3JtYXQsIHF1YWxpdHksIG91dHB1dCk7CiB9CiAKLWJvb2wgSlBFR0ltYWdlRW5jb2Rlcjo6ZW5j
b2RlKGNvbnN0IEltYWdlRGF0YSYgaW1hZ2VEYXRhLCBpbnQgcXVhbGl0eSwgVmVjdG9yPHVuc2ln
bmVkIGNoYXI+KiBvdXRwdXQpCitib29sIEpQRUdJbWFnZUVuY29kZXI6OmVuY29kZShjb25zdCBJ
bWFnZURhdGEmIGltYWdlLCBpbnQgcXVhbGl0eSwgVmVjdG9yPHVuc2lnbmVkIGNoYXI+KiBvdXRw
dXQpCiB7Ci0gICAgcmV0dXJuIGVuY29kZVBpeGVscyhpbWFnZURhdGEuc2l6ZSgpLCBpbWFnZURh
dGEuZGF0YSgpLT5kYXRhKCktPmRhdGEoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNl
LCBxdWFsaXR5LCBvdXRwdXQpOworICAgIHVuc2lnbmVkIGNoYXIqIHBpeGVscyA9IGltYWdlLmRh
dGEoKS0+ZGF0YSgpLT5kYXRhKCk7CisgICAgY29uc3QgSl9DT0xPUl9TUEFDRSBwaXhlbEZvcm1h
dCA9IEpDU19FWFRfUkdCWDsKKworICAgIHJldHVybiBlbmNvZGVQaXhlbHMoSW50U2l6ZShpbWFn
ZS53aWR0aCgpLCBpbWFnZS5oZWlnaHQoKSksIHBpeGVscywgcGl4ZWxGb3JtYXQsIHF1YWxpdHks
IG91dHB1dCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
</data>
<flag name="review"
          id="102277"
          type_id="1"
          status="-"
          setter="abarth"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>106574</attachid>
            <date>2011-09-07 05:18:55 -0700</date>
            <delta_ts>2011-09-07 06:00:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>jpeg.git.diff</filename>
            <type>text/plain</type>
            <size>3134</size>
            <attacher name="noel gordon">noel.gordon</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA4ODJhYjQzLi5hMTgyYjdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQg
QEAKKzIwMTEtMDktMDcgIE5vZWwgR29yZG9uICA8bm9lbC5nb3Jkb25AZ21haWwuY29tPgorCisg
ICAgICAgIFtjaHJvbWl1bV0gY2FudmFzLnRvRGF0YVVSTCgiaW1hZ2UvanBlZyIpOiB1c2UgbGli
anBlZy10dXJibyBkYXRhIHN3aXp6bGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTY3NDAyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgbGlianBlZy10dXJibyBjYW4gcmVhZCBkaXJlY3RseSBmcm9tIGlucHV0
IGRhdGEgaWYgaXQgaXMgaW5mb3JtZWQgb2YgdGhlIGlucHV0CisgICAgICAgIHBpeGVsIGJ5dGUg
b3JnYW5pemF0aW9uIC0gQlJHWCBmb3IgYSBTa0JpdG1hcCBpbnB1dCwgYW5kIFJHQlggZm9yIGFu
IEltYWdlRGF0YQorICAgICAgICBpbnB1dC4gIElmIHRoZSBpbnB1dCBwaXhlbHMgYXJlIGFscGhh
IHByZS1tdWx0aXBsaWVkLCB0aGUgb3V0cHV0IGVuY29kZWQgaW1hZ2UKKyAgICAgICAgaXMgYSBQ
b3J0ZXItRHVmZiBjb21wb3NpdGUgc291cmNlLW92ZXIgYmxhY2sgYXMgcmVxdWlyZWQgYnkgdGhl
IDxjYW52YXM+IHNwZWMuCisgICAgICAgIFNlZSBodHRwOi8vd2Via2l0Lm9yZy9iLzUxMjM3IGZv
ciB0aGUgUG9ydGVyLUR1ZmYgbWF0aCBkZXJpdmF0aW9uLgorCisgICAgICAgIE5vIGNoYW5nZSBp
biBiZWhhdmlvciwgc28gbm8gbmV3IHRlc3RzOiBjb3ZlcmVkIGJ5IGV4aXN0aW5nIGNhbnZhcyAy
ZC8zZCB0ZXN0cworICAgICAgICBjYW52YXMvcGhpbGlwL3Rlc3RzL3RvRGF0YVVSTC5qcGVnLmFs
cGhhLmh0bWwKKyAgICAgICAgZmFzdC9jYW52YXMvd2ViZ2wvcHJlbXVsdGlwbHlhbHBoYS10ZXN0
Lmh0bWwKKworICAgICAgICAqIHBsYXRmb3JtL2ltYWdlLWVuY29kZXJzL3NraWEvSlBFR0ltYWdl
RW5jb2Rlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjplbmNvZGVQaXhlbHMpOiAgSWYgSkNTX0VY
VEVOU0lPTlMgaXMgZGVmaW5lZCAobGlianBlZy10dXJibykgc3dpenpsZQorICAgICAgICB0aGUg
aW5wdXQgZGF0YSBwaXhlbHMgZGlyZWN0bHkgd2l0aGluIGxpYmpwZWctdHVyYm8uCisKIDIwMTEt
MDktMDcgIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAgIFRyeSB0
byBmaXggUXQgYnVpbGQgYnkgbW92aW5nIHRoZSBRdCBzcGVjaWZpYyBpbmNsdWRlICh3aGljaCBp
cyBub3QgcmVhbGx5IGFsbG93ZWQgaGVyZSEpLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vaW1hZ2UtZW5jb2RlcnMvc2tpYS9KUEVHSW1hZ2VFbmNvZGVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWVuY29kZXJzL3NraWEvSlBFR0ltYWdlRW5jb2Rlci5j
cHAKaW5kZXggOWZkNjk3Mi4uMWJmZDc0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vaW1hZ2UtZW5jb2RlcnMvc2tpYS9KUEVHSW1hZ2VFbmNvZGVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1lbmNvZGVycy9za2lhL0pQRUdJbWFnZUVuY29kZXIu
Y3BwCkBAIC0xMDIsNyArMTAyLDkgQEAgc3RhdGljIGJvb2wgZW5jb2RlUGl4ZWxzKEludFNpemUg
aW1hZ2VTaXplLCB1bnNpZ25lZCBjaGFyKiBpbnB1dFBpeGVscywgYm9vbCBwcmUKIHsKICAgICBK
UEVHT3V0cHV0QnVmZmVyIGRlc3RpbmF0aW9uOwogICAgIGRlc3RpbmF0aW9uLm91dHB1dCA9IG91
dHB1dDsKKyNpZiAhZGVmaW5lZChKQ1NfRVhURU5TSU9OUykKICAgICBWZWN0b3I8SlNBTVBMRT4g
cm93OworI2VuZGlmCiAKICAgICBqcGVnX2NvbXByZXNzX3N0cnVjdCBjaW5mbzsKICAgICBqcGVn
X2Vycm9yX21nciBlcnJvcjsKQEAgLTEyNSw2ICsxMjcsOCBAQCBzdGF0aWMgYm9vbCBlbmNvZGVQ
aXhlbHMoSW50U2l6ZSBpbWFnZVNpemUsIHVuc2lnbmVkIGNoYXIqIGlucHV0UGl4ZWxzLCBib29s
IHByZQogICAgIGltYWdlU2l6ZS5jbGFtcE5lZ2F0aXZlVG9aZXJvKCk7CiAgICAgY2luZm8uaW1h
Z2VfaGVpZ2h0ID0gaW1hZ2VTaXplLmhlaWdodCgpOwogICAgIGNpbmZvLmltYWdlX3dpZHRoID0g
aW1hZ2VTaXplLndpZHRoKCk7CisKKyNpZiAhZGVmaW5lZChKQ1NfRVhURU5TSU9OUykKICAgICBj
aW5mby5pbl9jb2xvcl9zcGFjZSA9IEpDU19SR0I7CiAgICAgY2luZm8uaW5wdXRfY29tcG9uZW50
cyA9IDM7CiAKQEAgLTE0NSw2ICsxNDksMjEgQEAgc3RhdGljIGJvb2wgZW5jb2RlUGl4ZWxzKElu
dFNpemUgaW1hZ2VTaXplLCB1bnNpZ25lZCBjaGFyKiBpbnB1dFBpeGVscywgYm9vbCBwcmUKICAg
ICAgICAganBlZ193cml0ZV9zY2FubGluZXMoJmNpbmZvLCByb3cuZGF0YVNsb3QoKSwgMSk7CiAg
ICAgICAgIHBpeGVscyArPSBwaXhlbFJvd1N0cmlkZTsKICAgICB9CisjZWxzZQorICAgIGNpbmZv
LmluX2NvbG9yX3NwYWNlID0gcHJlbXVsdGlwbGllZCA/IEpDU19FWFRfQkdSWCA6IEpDU19FWFRf
UkdCWDsKKyAgICBjaW5mby5pbnB1dF9jb21wb25lbnRzID0gNDsKKworICAgIGpwZWdfc2V0X2Rl
ZmF1bHRzKCZjaW5mbyk7CisgICAganBlZ19zZXRfcXVhbGl0eSgmY2luZm8sIHF1YWxpdHksIFRS
VUUpOworICAgIGpwZWdfc3RhcnRfY29tcHJlc3MoJmNpbmZvLCBUUlVFKTsKKworICAgIHVuc2ln
bmVkIGNoYXIqIHBpeGVscyA9IGlucHV0UGl4ZWxzOworICAgIGNvbnN0IHNpemVfdCBwaXhlbFJv
d1N0cmlkZSA9IGNpbmZvLmltYWdlX3dpZHRoICogY2luZm8uaW5wdXRfY29tcG9uZW50czsKKyAg
ICB3aGlsZSAoY2luZm8ubmV4dF9zY2FubGluZSA8IGNpbmZvLmltYWdlX2hlaWdodCkgeworICAg
ICAgICBqcGVnX3dyaXRlX3NjYW5saW5lcygmY2luZm8sICZwaXhlbHMsIDEpOworICAgICAgICBw
aXhlbHMgKz0gcGl4ZWxSb3dTdHJpZGU7CisgICAgfQorI2VuZGlmCiAKICAgICBqcGVnX2Zpbmlz
aF9jb21wcmVzcygmY2luZm8pOwogICAgIGpwZWdfZGVzdHJveV9jb21wcmVzcygmY2luZm8pOwo=
</data>
<flag name="commit-queue"
          id="103037"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>106577</attachid>
            <date>2011-09-07 06:00:25 -0700</date>
            <delta_ts>2011-09-28 00:48:07 -0700</delta_ts>
            <desc>Patch tame Linux EWS</desc>
            <filename>jpeg.git.diff</filename>
            <type>text/plain</type>
            <size>3618</size>
            <attacher name="noel gordon">noel.gordon</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA4ODJhYjQzLi5hMTgyYjdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQg
QEAKKzIwMTEtMDktMDcgIE5vZWwgR29yZG9uICA8bm9lbC5nb3Jkb25AZ21haWwuY29tPgorCisg
ICAgICAgIFtjaHJvbWl1bV0gY2FudmFzLnRvRGF0YVVSTCgiaW1hZ2UvanBlZyIpOiB1c2UgbGli
anBlZy10dXJibyBkYXRhIHN3aXp6bGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTY3NDAyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgbGlianBlZy10dXJibyBjYW4gcmVhZCBkaXJlY3RseSBmcm9tIGlucHV0
IGRhdGEgaWYgaXQgaXMgaW5mb3JtZWQgb2YgdGhlIGlucHV0CisgICAgICAgIHBpeGVsIGJ5dGUg
b3JnYW5pemF0aW9uIC0gQlJHWCBmb3IgYSBTa0JpdG1hcCBpbnB1dCwgYW5kIFJHQlggZm9yIGFu
IEltYWdlRGF0YQorICAgICAgICBpbnB1dC4gIElmIHRoZSBpbnB1dCBwaXhlbHMgYXJlIGFscGhh
IHByZS1tdWx0aXBsaWVkLCB0aGUgb3V0cHV0IGVuY29kZWQgaW1hZ2UKKyAgICAgICAgaXMgYSBQ
b3J0ZXItRHVmZiBjb21wb3NpdGUgc291cmNlLW92ZXIgYmxhY2sgYXMgcmVxdWlyZWQgYnkgdGhl
IDxjYW52YXM+IHNwZWMuCisgICAgICAgIFNlZSBodHRwOi8vd2Via2l0Lm9yZy9iLzUxMjM3IGZv
ciB0aGUgUG9ydGVyLUR1ZmYgbWF0aCBkZXJpdmF0aW9uLgorCisgICAgICAgIE5vIGNoYW5nZSBp
biBiZWhhdmlvciwgc28gbm8gbmV3IHRlc3RzOiBjb3ZlcmVkIGJ5IGV4aXN0aW5nIGNhbnZhcyAy
ZC8zZCB0ZXN0cworICAgICAgICBjYW52YXMvcGhpbGlwL3Rlc3RzL3RvRGF0YVVSTC5qcGVnLmFs
cGhhLmh0bWwKKyAgICAgICAgZmFzdC9jYW52YXMvd2ViZ2wvcHJlbXVsdGlwbHlhbHBoYS10ZXN0
Lmh0bWwKKworICAgICAgICAqIHBsYXRmb3JtL2ltYWdlLWVuY29kZXJzL3NraWEvSlBFR0ltYWdl
RW5jb2Rlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjplbmNvZGVQaXhlbHMpOiAgSWYgSkNTX0VY
VEVOU0lPTlMgaXMgZGVmaW5lZCAobGlianBlZy10dXJibykgc3dpenpsZQorICAgICAgICB0aGUg
aW5wdXQgZGF0YSBwaXhlbHMgZGlyZWN0bHkgd2l0aGluIGxpYmpwZWctdHVyYm8uCisKIDIwMTEt
MDktMDcgIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAgIFRyeSB0
byBmaXggUXQgYnVpbGQgYnkgbW92aW5nIHRoZSBRdCBzcGVjaWZpYyBpbmNsdWRlICh3aGljaCBp
cyBub3QgcmVhbGx5IGFsbG93ZWQgaGVyZSEpLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vaW1hZ2UtZW5jb2RlcnMvc2tpYS9KUEVHSW1hZ2VFbmNvZGVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWVuY29kZXJzL3NraWEvSlBFR0ltYWdlRW5jb2Rlci5j
cHAKaW5kZXggOWZkNjk3Mi4uYzFmOWYyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vaW1hZ2UtZW5jb2RlcnMvc2tpYS9KUEVHSW1hZ2VFbmNvZGVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1lbmNvZGVycy9za2lhL0pQRUdJbWFnZUVuY29kZXIu
Y3BwCkBAIC03OSw2ICs3OSw4IEBAIHN0YXRpYyB2b2lkIGhhbmRsZUVycm9yKGpfY29tbW9uX3B0
ciBjb21tb24pCiAgICAgbG9uZ2ptcCgqanVtcEJ1ZmZlclB0ciwgLTEpOwogfQogCisjaWYgIWRl
ZmluZWQoSkNTX0VYVEVOU0lPTlMpCisKIHN0YXRpYyB2b2lkIHByZU11bHRpcGxpZWRCR1JBdG9S
R0IoY29uc3QgdW5zaWduZWQgY2hhciogcGl4ZWxzLCB1bnNpZ25lZCBpbnQgcGl4ZWxDb3VudCwg
dW5zaWduZWQgY2hhciogb3V0cHV0KQogewogICAgIGNvbnN0IFNrUE1Db2xvciogaW5wdXQgPSBy
ZWludGVycHJldF9jYXN0PGNvbnN0IFNrUE1Db2xvcio+KHBpeGVscyk7CkBAIC05OCwxMSArMTAw
LDE1IEBAIHN0YXRpYyB2b2lkIFJHQkF0b1JHQihjb25zdCB1bnNpZ25lZCBjaGFyKiBwaXhlbHMs
IHVuc2lnbmVkIGludCBwaXhlbENvdW50LCB1bnNpCiAgICAgfQogfQogCisjZW5kaWYKKwogc3Rh
dGljIGJvb2wgZW5jb2RlUGl4ZWxzKEludFNpemUgaW1hZ2VTaXplLCB1bnNpZ25lZCBjaGFyKiBp
bnB1dFBpeGVscywgYm9vbCBwcmVtdWx0aXBsaWVkLCBpbnQgcXVhbGl0eSwgVmVjdG9yPHVuc2ln
bmVkIGNoYXI+KiBvdXRwdXQpCiB7CiAgICAgSlBFR091dHB1dEJ1ZmZlciBkZXN0aW5hdGlvbjsK
ICAgICBkZXN0aW5hdGlvbi5vdXRwdXQgPSBvdXRwdXQ7CisjaWYgIWRlZmluZWQoSkNTX0VYVEVO
U0lPTlMpCiAgICAgVmVjdG9yPEpTQU1QTEU+IHJvdzsKKyNlbmRpZgogCiAgICAganBlZ19jb21w
cmVzc19zdHJ1Y3QgY2luZm87CiAgICAganBlZ19lcnJvcl9tZ3IgZXJyb3I7CkBAIC0xMjUsNiAr
MTMxLDggQEAgc3RhdGljIGJvb2wgZW5jb2RlUGl4ZWxzKEludFNpemUgaW1hZ2VTaXplLCB1bnNp
Z25lZCBjaGFyKiBpbnB1dFBpeGVscywgYm9vbCBwcmUKICAgICBpbWFnZVNpemUuY2xhbXBOZWdh
dGl2ZVRvWmVybygpOwogICAgIGNpbmZvLmltYWdlX2hlaWdodCA9IGltYWdlU2l6ZS5oZWlnaHQo
KTsKICAgICBjaW5mby5pbWFnZV93aWR0aCA9IGltYWdlU2l6ZS53aWR0aCgpOworCisjaWYgIWRl
ZmluZWQoSkNTX0VYVEVOU0lPTlMpCiAgICAgY2luZm8uaW5fY29sb3Jfc3BhY2UgPSBKQ1NfUkdC
OwogICAgIGNpbmZvLmlucHV0X2NvbXBvbmVudHMgPSAzOwogCkBAIC0xNDUsNiArMTUzLDIxIEBA
IHN0YXRpYyBib29sIGVuY29kZVBpeGVscyhJbnRTaXplIGltYWdlU2l6ZSwgdW5zaWduZWQgY2hh
ciogaW5wdXRQaXhlbHMsIGJvb2wgcHJlCiAgICAgICAgIGpwZWdfd3JpdGVfc2NhbmxpbmVzKCZj
aW5mbywgcm93LmRhdGFTbG90KCksIDEpOwogICAgICAgICBwaXhlbHMgKz0gcGl4ZWxSb3dTdHJp
ZGU7CiAgICAgfQorI2Vsc2UKKyAgICBjaW5mby5pbl9jb2xvcl9zcGFjZSA9IHByZW11bHRpcGxp
ZWQgPyBKQ1NfRVhUX0JHUlggOiBKQ1NfRVhUX1JHQlg7CisgICAgY2luZm8uaW5wdXRfY29tcG9u
ZW50cyA9IDQ7CisKKyAgICBqcGVnX3NldF9kZWZhdWx0cygmY2luZm8pOworICAgIGpwZWdfc2V0
X3F1YWxpdHkoJmNpbmZvLCBxdWFsaXR5LCBUUlVFKTsKKyAgICBqcGVnX3N0YXJ0X2NvbXByZXNz
KCZjaW5mbywgVFJVRSk7CisKKyAgICB1bnNpZ25lZCBjaGFyKiBwaXhlbHMgPSBpbnB1dFBpeGVs
czsKKyAgICBjb25zdCBzaXplX3QgcGl4ZWxSb3dTdHJpZGUgPSBjaW5mby5pbWFnZV93aWR0aCAq
IGNpbmZvLmlucHV0X2NvbXBvbmVudHM7CisgICAgd2hpbGUgKGNpbmZvLm5leHRfc2NhbmxpbmUg
PCBjaW5mby5pbWFnZV9oZWlnaHQpIHsKKyAgICAgICAganBlZ193cml0ZV9zY2FubGluZXMoJmNp
bmZvLCAmcGl4ZWxzLCAxKTsKKyAgICAgICAgcGl4ZWxzICs9IHBpeGVsUm93U3RyaWRlOworICAg
IH0KKyNlbmRpZgogCiAgICAganBlZ19maW5pc2hfY29tcHJlc3MoJmNpbmZvKTsKICAgICBqcGVn
X2Rlc3Ryb3lfY29tcHJlc3MoJmNpbmZvKTsK
</data>
<flag name="review"
          id="103039"
          type_id="1"
          status="-"
          setter="kbr"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>108979</attachid>
            <date>2011-09-28 00:48:07 -0700</date>
            <delta_ts>2011-09-28 00:50:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>jpeg-data-swizzle.git.diff</filename>
            <type>text/plain</type>
            <size>2336</size>
            <attacher name="noel gordon">noel.gordon</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA2NTRhNTVhLi4yYTFjYmM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEg
QEAKKzIwMTEtMDktMjggIE5vZWwgR29yZG9uICA8bm9lbC5nb3Jkb25AZ21haWwuY29tPgorCisg
ICAgICAgIFtjaHJvbWl1bV0gY2FudmFzLnRvRGF0YVVSTCgiaW1hZ2UvanBlZyIpOiB1c2UgbGli
anBlZy10dXJibyBkYXRhIHN3aXp6bGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTY3NDAyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgbGlianBlZy10dXJibyBjYW4gcmVhZCBkaXJlY3RseSBmcm9tIHRoZSBp
bnB1dCBkYXRhIGZvciB0aGUgcHJlbXVsdGlwbGllZCBCUkdYCisgICAgICAgIChTa0JpdG1hcCkg
ZW5jb2RpbmcgY2FzZS4KKworICAgICAgICBObyBjaGFuZ2UgaW4gYmVoYXZpb3IsIGNvdmVyZWQg
YnkgZXhpc3RpbmcgY2FudmFzIDJkLzNkIHRlc3RzCisgICAgICAgIGNhbnZhcy9waGlsaXAvdGVz
dHMvdG9EYXRhVVJMLmpwZWcuYWxwaGEuaHRtbAorICAgICAgICBmYXN0L2NhbnZhcy93ZWJnbC9w
cmVtdWx0aXBseWFscGhhLXRlc3QuaHRtbAorCisgICAgICAgICogcGxhdGZvcm0vaW1hZ2UtZW5j
b2RlcnMvc2tpYS9KUEVHSW1hZ2VFbmNvZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmVuY29k
ZVBpeGVscyk6IElmIEpDU19FWFRFTlNJT05TIGlzIGRlZmluZWQgKGxpYmpwZWctdHVyYm8pLCBz
d2l6emxlCisgICAgICAgIHRoZSBpbnB1dCBCUkdYIHBpeGVscyBkaXJlY3RseSB3aXRoaW4gbGli
anBlZy10dXJiby4KKwogMjAxMS0wOS0yNyAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9y
Zz4KIAogICAgICAgICBTaW1wbGlmeSBSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6cG9zaXRpb25B
dFN0YXJ0T2ZJbnNlcnRlZENvbnRlbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2ltYWdlLWVuY29kZXJzL3NraWEvSlBFR0ltYWdlRW5jb2Rlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9pbWFnZS1lbmNvZGVycy9za2lhL0pQRUdJbWFnZUVuY29kZXIuY3BwCmlu
ZGV4IGY2N2ExZjEuLjAxYjBkYzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2ltYWdlLWVuY29kZXJzL3NraWEvSlBFR0ltYWdlRW5jb2Rlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vaW1hZ2UtZW5jb2RlcnMvc2tpYS9KUEVHSW1hZ2VFbmNvZGVyLmNwcApA
QCAtMTMzLDYgKzEzMywyOSBAQCBzdGF0aWMgYm9vbCBlbmNvZGVQaXhlbHMoSW50U2l6ZSBpbWFn
ZVNpemUsIHVuc2lnbmVkIGNoYXIqIGlucHV0UGl4ZWxzLCBib29sIHByZQogICAgIGltYWdlU2l6
ZS5jbGFtcE5lZ2F0aXZlVG9aZXJvKCk7CiAgICAgY2luZm8uaW1hZ2VfaGVpZ2h0ID0gaW1hZ2VT
aXplLmhlaWdodCgpOwogICAgIGNpbmZvLmltYWdlX3dpZHRoID0gaW1hZ2VTaXplLndpZHRoKCk7
CisKKyNpZiBkZWZpbmVkKEpDU19FWFRFTlNJT05TKQorICAgIGlmIChwcmVtdWx0aXBsaWVkKSB7
CisgICAgICAgIGNpbmZvLmluX2NvbG9yX3NwYWNlID0gSkNTX0VYVF9CR1JYOworICAgICAgICBj
aW5mby5pbnB1dF9jb21wb25lbnRzID0gNDsKKworICAgICAgICBqcGVnX3NldF9kZWZhdWx0cygm
Y2luZm8pOworICAgICAgICBqcGVnX3NldF9xdWFsaXR5KCZjaW5mbywgcXVhbGl0eSwgVFJVRSk7
CisgICAgICAgIGpwZWdfc3RhcnRfY29tcHJlc3MoJmNpbmZvLCBUUlVFKTsKKworICAgICAgICB1
bnNpZ25lZCBjaGFyKiBwaXhlbHMgPSBpbnB1dFBpeGVsczsKKyAgICAgICAgY29uc3Qgc2l6ZV90
IHBpeGVsUm93U3RyaWRlID0gY2luZm8uaW1hZ2Vfd2lkdGggKiA0OworICAgICAgICB3aGlsZSAo
Y2luZm8ubmV4dF9zY2FubGluZSA8IGNpbmZvLmltYWdlX2hlaWdodCkgeworICAgICAgICAgICAg
anBlZ193cml0ZV9zY2FubGluZXMoJmNpbmZvLCAmcGl4ZWxzLCAxKTsKKyAgICAgICAgICAgIHBp
eGVscyArPSBwaXhlbFJvd1N0cmlkZTsKKyAgICAgICAgfQorCisgICAgICAgIGpwZWdfZmluaXNo
X2NvbXByZXNzKCZjaW5mbyk7CisgICAgICAgIGpwZWdfZGVzdHJveV9jb21wcmVzcygmY2luZm8p
OworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisjZW5kaWYKKwogICAgIGNpbmZvLmluX2Nv
bG9yX3NwYWNlID0gSkNTX1JHQjsKICAgICBjaW5mby5pbnB1dF9jb21wb25lbnRzID0gMzsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>108980</attachid>
            <date>2011-09-28 00:51:48 -0700</date>
            <delta_ts>2011-09-29 15:13:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-67402-20110928175146.patch</filename>
            <type>text/plain</type>
            <size>2495</size>
            <attacher name="noel gordon">noel.gordon</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTYxOTEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA2NTRhNTVhMjk5ZjI0YTc4
ZDJhMjRiMWU2OGM4MGYzODQxYWYwMjVkLi4yYTFjYmM5ZGZiMzUyZjQ3ZDM3ZWMwYzdlYmQ4NGYw
ZmE3OTY5MDRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTEtMDktMjggIE5vZWwg
R29yZG9uICA8bm9lbC5nb3Jkb25AZ21haWwuY29tPgorCisgICAgICAgIFtjaHJvbWl1bV0gY2Fu
dmFzLnRvRGF0YVVSTCgiaW1hZ2UvanBlZyIpOiB1c2UgbGlianBlZy10dXJibyBkYXRhIHN3aXp6
bGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY3NDAy
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgbGlianBl
Zy10dXJibyBjYW4gcmVhZCBkaXJlY3RseSBmcm9tIHRoZSBpbnB1dCBkYXRhIGZvciB0aGUgcHJl
bXVsdGlwbGllZCBCUkdYCisgICAgICAgIChTa0JpdG1hcCkgZW5jb2RpbmcgY2FzZS4KKworICAg
ICAgICBObyBjaGFuZ2UgaW4gYmVoYXZpb3IsIGNvdmVyZWQgYnkgZXhpc3RpbmcgY2FudmFzIDJk
LzNkIHRlc3RzCisgICAgICAgIGNhbnZhcy9waGlsaXAvdGVzdHMvdG9EYXRhVVJMLmpwZWcuYWxw
aGEuaHRtbAorICAgICAgICBmYXN0L2NhbnZhcy93ZWJnbC9wcmVtdWx0aXBseWFscGhhLXRlc3Qu
aHRtbAorCisgICAgICAgICogcGxhdGZvcm0vaW1hZ2UtZW5jb2RlcnMvc2tpYS9KUEVHSW1hZ2VF
bmNvZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmVuY29kZVBpeGVscyk6IElmIEpDU19FWFRF
TlNJT05TIGlzIGRlZmluZWQgKGxpYmpwZWctdHVyYm8pLCBzd2l6emxlCisgICAgICAgIHRoZSBp
bnB1dCBCUkdYIHBpeGVscyBkaXJlY3RseSB3aXRoaW4gbGlianBlZy10dXJiby4KKwogMjAxMS0w
OS0yNyAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBTaW1wbGlm
eSBSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6cG9zaXRpb25BdFN0YXJ0T2ZJbnNlcnRlZENvbnRl
bnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWVuY29kZXJzL3Nr
aWEvSlBFR0ltYWdlRW5jb2Rlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1l
bmNvZGVycy9za2lhL0pQRUdJbWFnZUVuY29kZXIuY3BwCmluZGV4IGY2N2ExZjFjNGQ5ZTJjYzE2
M2JlMzAyZGI3YmZhMGZmY2I4MDlkNGIuLjAxYjBkYzVhNDY2YmU5NzgwNGY4NzdlNmQ0MmE0ZDQ3
ZjMzMDY1Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWVuY29k
ZXJzL3NraWEvSlBFR0ltYWdlRW5jb2Rlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vaW1hZ2UtZW5jb2RlcnMvc2tpYS9KUEVHSW1hZ2VFbmNvZGVyLmNwcApAQCAtMTMzLDYgKzEz
MywyOSBAQCBzdGF0aWMgYm9vbCBlbmNvZGVQaXhlbHMoSW50U2l6ZSBpbWFnZVNpemUsIHVuc2ln
bmVkIGNoYXIqIGlucHV0UGl4ZWxzLCBib29sIHByZQogICAgIGltYWdlU2l6ZS5jbGFtcE5lZ2F0
aXZlVG9aZXJvKCk7CiAgICAgY2luZm8uaW1hZ2VfaGVpZ2h0ID0gaW1hZ2VTaXplLmhlaWdodCgp
OwogICAgIGNpbmZvLmltYWdlX3dpZHRoID0gaW1hZ2VTaXplLndpZHRoKCk7CisKKyNpZiBkZWZp
bmVkKEpDU19FWFRFTlNJT05TKQorICAgIGlmIChwcmVtdWx0aXBsaWVkKSB7CisgICAgICAgIGNp
bmZvLmluX2NvbG9yX3NwYWNlID0gSkNTX0VYVF9CR1JYOworICAgICAgICBjaW5mby5pbnB1dF9j
b21wb25lbnRzID0gNDsKKworICAgICAgICBqcGVnX3NldF9kZWZhdWx0cygmY2luZm8pOworICAg
ICAgICBqcGVnX3NldF9xdWFsaXR5KCZjaW5mbywgcXVhbGl0eSwgVFJVRSk7CisgICAgICAgIGpw
ZWdfc3RhcnRfY29tcHJlc3MoJmNpbmZvLCBUUlVFKTsKKworICAgICAgICB1bnNpZ25lZCBjaGFy
KiBwaXhlbHMgPSBpbnB1dFBpeGVsczsKKyAgICAgICAgY29uc3Qgc2l6ZV90IHBpeGVsUm93U3Ry
aWRlID0gY2luZm8uaW1hZ2Vfd2lkdGggKiA0OworICAgICAgICB3aGlsZSAoY2luZm8ubmV4dF9z
Y2FubGluZSA8IGNpbmZvLmltYWdlX2hlaWdodCkgeworICAgICAgICAgICAganBlZ193cml0ZV9z
Y2FubGluZXMoJmNpbmZvLCAmcGl4ZWxzLCAxKTsKKyAgICAgICAgICAgIHBpeGVscyArPSBwaXhl
bFJvd1N0cmlkZTsKKyAgICAgICAgfQorCisgICAgICAgIGpwZWdfZmluaXNoX2NvbXByZXNzKCZj
aW5mbyk7CisgICAgICAgIGpwZWdfZGVzdHJveV9jb21wcmVzcygmY2luZm8pOworICAgICAgICBy
ZXR1cm4gdHJ1ZTsKKyAgICB9CisjZW5kaWYKKwogICAgIGNpbmZvLmluX2NvbG9yX3NwYWNlID0g
SkNTX1JHQjsKICAgICBjaW5mby5pbnB1dF9jb21wb25lbnRzID0gMzsKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>