<?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>77582</bug_id>
          
          <creation_ts>2012-02-01 16:26:19 -0800</creation_ts>
          <short_desc>[Chromium] Use the current clip when marking paints as opaque</short_desc>
          <delta_ts>2012-02-03 13:32:08 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>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="Dana Jansens">danakj</reporter>
          <assigned_to name="Dana Jansens">danakj</assigned_to>
          <cc>backer</cc>
    
    <cc>danakj</cc>
    
    <cc>jamesr</cc>
    
    <cc>piman</cc>
    
    <cc>reed</cc>
    
    <cc>reveman</cc>
    
    <cc>rjkroege</cc>
    
    <cc>senorblanco</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>wjmaclean</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>547473</commentid>
    <comment_count>0</comment_count>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-02-01 16:26:19 -0800</bug_when>
    <thetext>[Chromium] Use the current clip when marking paints as opaque</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>547475</commentid>
    <comment_count>1</comment_count>
      <attachid>125040</attachid>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-02-01 16:30:05 -0800</bug_when>
    <thetext>Created attachment 125040
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>547477</commentid>
    <comment_count>2</comment_count>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-02-01 16:31:54 -0800</bug_when>
    <thetext>Fixes http://code.google.com/p/chromium/issues/detail?id=112356</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>547479</commentid>
    <comment_count>3</comment_count>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-02-01 16:35:04 -0800</bug_when>
    <thetext>Summary: gmail was painting the rounded box with drop shadow by applying a complex clip and filling a rect. The clip was not being considered and the opaque rect was being tracked without it.

Solution: for rect clips, intersect the paint rect with the clip. for more complex clips, it&apos;s not worth doing anything so don&apos;t track the paint.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>547961</commentid>
    <comment_count>4</comment_count>
      <attachid>125040</attachid>
    <who name="Stephen White">senorblanco</who>
    <bug_when>2012-02-02 10:17:08 -0800</bug_when>
    <thetext>Comment on attachment 125040
Patch

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

&gt; Source/WebCore/platform/graphics/skia/PlatformContextSkia.h:154
&gt; +    SkCanvas* canvas() const { return m_canvas; }

I&apos;m a fan of constness being transitive, if possible (although it&apos;s not in the WebKit coding style).  If you can deal with a const SkCanvas* at your call site, you should provide two accessors here:  one const method that returns a const SkCanvas*, and one non-const accessor that returns a non-const SkCanvas*.  Then constness is transitively preserved.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>548092</commentid>
    <comment_count>5</comment_count>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-02-02 13:01:04 -0800</bug_when>
    <thetext>Yep that should be fine. I like the idea too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>548492</commentid>
    <comment_count>6</comment_count>
      <attachid>125272</attachid>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-02-02 23:28:18 -0800</bug_when>
    <thetext>Created attachment 125272
Patch

- const the canvas pointer with a 2nd accessor

@senorblanco can you be reviewer for this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>548689</commentid>
    <comment_count>7</comment_count>
      <attachid>125272</attachid>
    <who name="Stephen White">senorblanco</who>
    <bug_when>2012-02-03 07:07:46 -0800</bug_when>
    <thetext>Comment on attachment 125272
Patch

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

Looks good as-is; the FYI is optional.  r=me

&gt; Source/WebCore/platform/graphics/skia/OpaqueRegionSkia.cpp:260
&gt; +    SkIRect deviceClip;
&gt; +    context-&gt;canvas()-&gt;getClipDeviceBounds(&amp;deviceClip);
&gt; +    SkRect rect = paintRect;
&gt; +    if (!rect.intersect(SkIntToScalar(deviceClip.fLeft), SkIntToScalar(deviceClip.fTop), SkIntToScalar(deviceClip.fRight), SkIntToScalar(deviceClip.fBottom)))

FYI, you could also do something like this:

SkIRect deviceIClip;
context-&gt;canvas()-&gt;getClipDeviceBounds(&amp;deviceIClip);
SkRect deviceClip;
deviceClip.set(deviceIClip);
if (!rect.intersect(deviceClip))

...

Not shorter in line count, but it does save you doing all those SkIntToScalars yourself.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>548691</commentid>
    <comment_count>8</comment_count>
      <attachid>125272</attachid>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-02-03 07:12:50 -0800</bug_when>
    <thetext>Comment on attachment 125272
Patch

thanks! i thought about doing the set() but opted for skipping another local variable in this case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>548737</commentid>
    <comment_count>9</comment_count>
      <attachid>125272</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-03 08:28:15 -0800</bug_when>
    <thetext>Comment on attachment 125272
Patch

Clearing flags on attachment: 125272

Committed r106663: &lt;http://trac.webkit.org/changeset/106663&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>548739</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-03 08:28:22 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>549012</commentid>
    <comment_count>11</comment_count>
    <who name="Antoine Labour">piman</who>
    <bug_when>2012-02-03 13:32:08 -0800</bug_when>
    <thetext>Merged to branch 1025: http://trac.webkit.org/changeset/106691</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>125040</attachid>
            <date>2012-02-01 16:30:05 -0800</date>
            <delta_ts>2012-02-02 23:28:14 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-77582-20120201193001.patch</filename>
            <type>text/plain</type>
            <size>8765</size>
            <attacher name="Dana Jansens">danakj</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA2NDgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzUzZDBmZTBkYmZmMDg3
OGY5ZjQ3YzU5ZDA3YTM4NTFjZWQyNGRlNy4uY2M0MmFiNmExNjNjODhhMzE0MDRmMjQ3NGE5NzZi
MDcxYjllZWFjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEyLTAyLTAxICBEYW5h
IEphbnNlbnMgIDxkYW5ha2pAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtDaHJvbWl1bV0gVXNl
IHRoZSBjdXJyZW50IGNsaXAgd2hlbiBtYXJraW5nIHBhaW50cyBhcyBvcGFxdWUKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc3NTgyCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTmV3IHVuaXQgdGVzdCBpbiBQ
bGF0Zm9ybUNvbnRleHRTa2lhVGVzdC5jcHAKKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L3NraWEvT3BhcXVlUmVnaW9uU2tpYS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpPcGFxdWVSZWdp
b25Ta2lhOjptYXJrUmVjdEFzT3BhcXVlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9z
a2lhL1BsYXRmb3JtQ29udGV4dFNraWEuaDoKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtQ29u
dGV4dFNraWE6OmNhbnZhcyk6CisKIDIwMTItMDItMDEgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVy
c2NhQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggOWI5N2IyOGQzYTY3ZDc5MzU2NTc1MDYxM2UyNjQwNzYy
YjY0ODBmYS4uNDUzZWVjZDMzYTBlODVkOWM0NjEzMjM5NDMzYmM2MjI2NGRkMTUyZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMi0wMi0wMSAgRGFuYSBK
YW5zZW5zICA8ZGFuYWtqQGNocm9taXVtLm9yZz4KKworICAgICAgICBbQ2hyb21pdW1dIFVzZSB0
aGUgY3VycmVudCBjbGlwIHdoZW4gbWFya2luZyBwYWludHMgYXMgb3BhcXVlCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NzU4MgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogdGVzdHMvUGxhdGZvcm1Db250
ZXh0U2tpYVRlc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VEVTVCk6CisgICAgICAgIChXZWJD
b3JlKToKKwogMjAxMi0wMi0wMSAgRGlyayBQcmFua2UgIDxkcHJhbmtlQGNocm9taXVtLm9yZz4K
IAogICAgICAgICBUZXN0V2ViS2l0QVBJIGlzbid0IGJlaW5nIGJ1aWx0IG9uIGNocm9taXVtIGJv
dHMgYW55IG1vcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3NraWEvT3BhcXVlUmVnaW9uU2tpYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9za2lhL09wYXF1ZVJlZ2lvblNraWEuY3BwCmluZGV4IDY0YTRlZTRmM2NlZjZhYmY0NDQ5
ZjUyMWU0ZjBlYzhkZDE2YjZhMmEuLjc0MTQ1ZjFjOTI3MzkxZDk4Y2QwNTJlNTQyNjMwNzI2NmU1
OGJlYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEv
T3BhcXVlUmVnaW9uU2tpYS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3Mvc2tpYS9PcGFxdWVSZWdpb25Ta2lhLmNwcApAQCAtMzQsNiArMzQsNyBAQAogCiAjaW5jbHVk
ZSAiUGxhdGZvcm1Db250ZXh0U2tpYS5oIgogCisjaW5jbHVkZSAiU2tDYW52YXMuaCIKICNpbmNs
dWRlICJTa1NoYWRlci5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0yMzYsMTkgKzIzNywy
OSBAQCB2b2lkIE9wYXF1ZVJlZ2lvblNraWE6OmRpZERyYXdVbmJvdW5kZWQoY29uc3QgU2tQYWlu
dCYgcGFpbnQsIGJvb2wgZHJhd3NPcGFxdWUpCiAgICAgfQogfQogCi12b2lkIE9wYXF1ZVJlZ2lv
blNraWE6Om1hcmtSZWN0QXNPcGFxdWUoY29uc3QgUGxhdGZvcm1Db250ZXh0U2tpYSogY29udGV4
dCwgY29uc3QgU2tSZWN0JiByZWN0KQordm9pZCBPcGFxdWVSZWdpb25Ta2lhOjptYXJrUmVjdEFz
T3BhcXVlKGNvbnN0IFBsYXRmb3JtQ29udGV4dFNraWEqIGNvbnRleHQsIGNvbnN0IFNrUmVjdCYg
cGFpbnRSZWN0KQogewogICAgIC8vIFdlIHdhbnQgdG8ga2VlcCB0cmFjayBvZiBhbiBvcGFxdWUg
cmVnaW9uIGJ1dCBib3VuZCBpdHMgY29tcGxleGl0eSBhdCBhIGNvbnN0YW50IHNpemUuCiAgICAg
Ly8gV2Uga2VlcCB0cmFjayBvZiB0aGUgbGFyZ2VzdCByZWN0YW5nbGUgc2VlbiBieSBhcmVhLiBJ
ZiB3ZSBjYW4gYWRkIHRoZSBuZXcgcmVjdCB0byB0aGlzCiAgICAgLy8gcmVjdGFuZ2xlIHRoZW4g
d2UgZG8gdGhhdCwgYXMgdGhhdCBpcyB0aGUgY2hlYXBlc3Qgd2F5IHRvIGluY3JlYXNlIHRoZSBh
cmVhIHJldHVybmVkCiAgICAgLy8gd2l0aG91dCBpbmNyZWFzaW5nIHRoZSBjb21wbGV4aXR5Lgog
Ci0gICAgaWYgKHJlY3QuaXNFbXB0eSgpKQorICAgIGlmIChwYWludFJlY3QuaXNFbXB0eSgpKQog
ICAgICAgICByZXR1cm47CiAgICAgaWYgKCFjb250ZXh0LT5jbGlwcGVkVG9JbWFnZSgpLmlzT3Bh
cXVlKCkpCiAgICAgICAgIHJldHVybjsKLSAgICBpZiAobV9vcGFxdWVSZWN0LmNvbnRhaW5zKHJl
Y3QpKQorICAgIGlmIChjb250ZXh0LT5jYW52YXMoKS0+Z2V0Q2xpcFR5cGUoKSAhPSBTa0NhbnZh
czo6a1JlY3RfQ2xpcFR5cGUpCiAgICAgICAgIHJldHVybjsKKyAgICBpZiAobV9vcGFxdWVSZWN0
LmNvbnRhaW5zKHBhaW50UmVjdCkpCisgICAgICAgIHJldHVybjsKKworICAgIC8vIEFwcGx5IHRo
ZSBjdXJyZW50IGNsaXAuCisgICAgU2tJUmVjdCBkZXZpY2VDbGlwOworICAgIGNvbnRleHQtPmNh
bnZhcygpLT5nZXRDbGlwRGV2aWNlQm91bmRzKCZkZXZpY2VDbGlwKTsKKyAgICBTa1JlY3QgcmVj
dCA9IHBhaW50UmVjdDsKKyAgICBpZiAoIXJlY3QuaW50ZXJzZWN0KFNrSW50VG9TY2FsYXIoZGV2
aWNlQ2xpcC5mTGVmdCksIFNrSW50VG9TY2FsYXIoZGV2aWNlQ2xpcC5mVG9wKSwgU2tJbnRUb1Nj
YWxhcihkZXZpY2VDbGlwLmZSaWdodCksIFNrSW50VG9TY2FsYXIoZGV2aWNlQ2xpcC5mQm90dG9t
KSkpCisgICAgICAgIHJldHVybjsKKwogICAgIGlmIChyZWN0LmNvbnRhaW5zKG1fb3BhcXVlUmVj
dCkpIHsKICAgICAgICAgbV9vcGFxdWVSZWN0ID0gcmVjdDsKICAgICAgICAgcmV0dXJuOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9QbGF0Zm9ybUNv
bnRleHRTa2lhLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL1BsYXRm
b3JtQ29udGV4dFNraWEuaAppbmRleCBmZTNhYmI2ZjU2MDVlYTRkYmE2ODNjMGM1OTY4ZDJhM2Yw
YTAyZTMwLi44YzcyOGM0NzgzNDQwYWU5ZmU2NWI0NDdkNjM5ZjczYjdjN2QzMDM1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL1BsYXRmb3JtQ29udGV4
dFNraWEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL1BsYXRm
b3JtQ29udGV4dFNraWEuaApAQCAtMTUxLDcgKzE1MSw3IEBAIHB1YmxpYzoKICAgICBTa0NvbG9y
IGVmZmVjdGl2ZVN0cm9rZUNvbG9yKCkgY29uc3Q7CiAKICAgICAvLyBSZXR1cm5zIHRoZSBjYW52
YXMgdXNlZCBmb3IgcGFpbnRpbmcsIE5PVCBndWFyYW50ZWVkIHRvIGJlIG5vbi1udWxsLgotICAg
IFNrQ2FudmFzKiBjYW52YXMoKSB7IHJldHVybiBtX2NhbnZhczsgfQorICAgIFNrQ2FudmFzKiBj
YW52YXMoKSBjb25zdCB7IHJldHVybiBtX2NhbnZhczsgfQogCiAgICAgSW50ZXJwb2xhdGlvblF1
YWxpdHkgaW50ZXJwb2xhdGlvblF1YWxpdHkoKSBjb25zdDsKICAgICB2b2lkIHNldEludGVycG9s
YXRpb25RdWFsaXR5KEludGVycG9sYXRpb25RdWFsaXR5IGludGVycG9sYXRpb25RdWFsaXR5KTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvUGxhdGZvcm1Db250ZXh0
U2tpYVRlc3QuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9QbGF0Zm9ybUNvbnRl
eHRTa2lhVGVzdC5jcHAKaW5kZXggMGZmNTM5MDIzZDg0YzI0YjhhODIzMGYyNmVhOGNjZGI3MGQ3
Yjc0NC4uZmMxMjVhMTkwN2IwYTdhYzNkYmEwMGIyNzM4N2RhZWZkNDZkMmEwNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9QbGF0Zm9ybUNvbnRleHRTa2lhVGVzdC5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9QbGF0Zm9ybUNvbnRleHRTa2lh
VGVzdC5jcHAKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUgIkJpdG1hcEltYWdlU2luZ2xl
RnJhbWVTa2lhLmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCisjaW5jbHVkZSAiSW1h
Z2VCdWZmZXIuaCIKICNpbmNsdWRlICJOYXRpdmVJbWFnZVNraWEuaCIKICNpbmNsdWRlICJTa0Nh
bnZhcy5oIgogI2luY2x1ZGUgPGd0ZXN0L2d0ZXN0Lmg+CkBAIC0xMTEsNiArMTEyLDg5IEBAIFRF
U1QoUGxhdGZvcm1Db250ZXh0U2tpYVRlc3QsIHRyYWNrT3BhcXVlVGVzdCkKICAgICBFWFBFQ1Rf
UElYRUxTX01BVENIKGJpdG1hcCwgcGxhdGZvcm1Db250ZXh0Lm9wYXF1ZVJlZ2lvbigpLmFzUmVj
dCgpKTsKIH0KIAorVEVTVChQbGF0Zm9ybUNvbnRleHRTa2lhVGVzdCwgdHJhY2tPcGFxdWVDbGlw
VGVzdCkKK3sKKyAgICBTa0JpdG1hcCBiaXRtYXA7CisgICAgYml0bWFwLnNldENvbmZpZyhTa0Jp
dG1hcDo6a0FSR0JfODg4OF9Db25maWcsIDQwMCwgNDAwKTsKKyAgICBiaXRtYXAuYWxsb2NQaXhl
bHMoKTsKKyAgICBTa0NhbnZhcyBjYW52YXMoYml0bWFwKTsKKworICAgIFBsYXRmb3JtQ29udGV4
dFNraWEgcGxhdGZvcm1Db250ZXh0KCZjYW52YXMpOworICAgIHBsYXRmb3JtQ29udGV4dC5zZXRU
cmFja09wYXF1ZVJlZ2lvbih0cnVlKTsKKyAgICBHcmFwaGljc0NvbnRleHQgY29udGV4dCgmcGxh
dGZvcm1Db250ZXh0KTsKKworICAgIENvbG9yIG9wYXF1ZSgxLjBmLCAwLjBmLCAwLjBmLCAxLjBm
KTsKKyAgICBDb2xvciBhbHBoYSgwLjBmLCAwLjBmLCAwLjBmLCAwLjBmKTsKKworICAgIGNvbnRl
eHQuZmlsbFJlY3QoRmxvYXRSZWN0KDEwLCAxMCwgOTAsIDkwKSwgb3BhcXVlLCBDb2xvclNwYWNl
RGV2aWNlUkdCLCBDb21wb3NpdGVTb3VyY2VPdmVyKTsKKyAgICBFWFBFQ1RfRVFfUkVDVChJbnRS
ZWN0KDEwLCAxMCwgOTAsIDkwKSwgcGxhdGZvcm1Db250ZXh0Lm9wYXF1ZVJlZ2lvbigpLmFzUmVj
dCgpKTsKKyAgICBFWFBFQ1RfUElYRUxTX01BVENIKGJpdG1hcCwgcGxhdGZvcm1Db250ZXh0Lm9w
YXF1ZVJlZ2lvbigpLmFzUmVjdCgpKTsKKworICAgIGNvbnRleHQuY2xlYXJSZWN0KEZsb2F0UmVj
dCgxMCwgMTAsIDkwLCA5MCkpOworICAgIEVYUEVDVF9FUV9SRUNUKEludFJlY3QoKSwgcGxhdGZv
cm1Db250ZXh0Lm9wYXF1ZVJlZ2lvbigpLmFzUmVjdCgpKTsKKworICAgIGNvbnRleHQuc2F2ZSgp
OworICAgIGNvbnRleHQuY2xpcChGbG9hdFJlY3QoMCwgMCwgMTAsIDEwKSk7CisgICAgY29udGV4
dC5maWxsUmVjdChGbG9hdFJlY3QoMTAsIDEwLCA5MCwgOTApLCBvcGFxdWUsIENvbG9yU3BhY2VE
ZXZpY2VSR0IsIENvbXBvc2l0ZVNvdXJjZU92ZXIpOworICAgIEVYUEVDVF9FUV9SRUNUKEludFJl
Y3QoKSwgcGxhdGZvcm1Db250ZXh0Lm9wYXF1ZVJlZ2lvbigpLmFzUmVjdCgpKTsKKyAgICBFWFBF
Q1RfUElYRUxTX01BVENIKGJpdG1hcCwgcGxhdGZvcm1Db250ZXh0Lm9wYXF1ZVJlZ2lvbigpLmFz
UmVjdCgpKTsKKyAgICBjb250ZXh0LnJlc3RvcmUoKTsKKworICAgIGNvbnRleHQuY2xlYXJSZWN0
KEZsb2F0UmVjdCgxMCwgMTAsIDkwLCA5MCkpOworICAgIEVYUEVDVF9FUV9SRUNUKEludFJlY3Qo
KSwgcGxhdGZvcm1Db250ZXh0Lm9wYXF1ZVJlZ2lvbigpLmFzUmVjdCgpKTsKKworICAgIGNvbnRl
eHQuc2F2ZSgpOworICAgIGNvbnRleHQuY2xpcChGbG9hdFJlY3QoMjAsIDIwLCAxMCwgMTApKTsK
KyAgICBjb250ZXh0LmZpbGxSZWN0KEZsb2F0UmVjdCgxMCwgMTAsIDkwLCA5MCksIG9wYXF1ZSwg
Q29sb3JTcGFjZURldmljZVJHQiwgQ29tcG9zaXRlU291cmNlT3Zlcik7CisgICAgRVhQRUNUX0VR
X1JFQ1QoSW50UmVjdCgyMCwgMjAsIDEwLCAxMCksIHBsYXRmb3JtQ29udGV4dC5vcGFxdWVSZWdp
b24oKS5hc1JlY3QoKSk7CisgICAgRVhQRUNUX1BJWEVMU19NQVRDSChiaXRtYXAsIHBsYXRmb3Jt
Q29udGV4dC5vcGFxdWVSZWdpb24oKS5hc1JlY3QoKSk7CisKKyAgICBjb250ZXh0LmNsZWFyUmVj
dChGbG9hdFJlY3QoMTAsIDEwLCA5MCwgOTApKTsKKyAgICBFWFBFQ1RfRVFfUkVDVChJbnRSZWN0
KCksIHBsYXRmb3JtQ29udGV4dC5vcGFxdWVSZWdpb24oKS5hc1JlY3QoKSk7CisKKyAgICAvLyBU
aGUgaW50ZXJzZWN0aW9uIG9mIHRoZSB0d28gY2xpcHMgYmVjb21lcyBlbXB0eS4KKyAgICBjb250
ZXh0LmNsaXAoRmxvYXRSZWN0KDMwLCAyMCwgMTAsIDEwKSk7CisgICAgY29udGV4dC5maWxsUmVj
dChGbG9hdFJlY3QoMTAsIDEwLCA5MCwgOTApLCBvcGFxdWUsIENvbG9yU3BhY2VEZXZpY2VSR0Is
IENvbXBvc2l0ZVNvdXJjZU92ZXIpOworICAgIEVYUEVDVF9FUV9SRUNUKEludFJlY3QoKSwgcGxh
dGZvcm1Db250ZXh0Lm9wYXF1ZVJlZ2lvbigpLmFzUmVjdCgpKTsKKyAgICBFWFBFQ1RfUElYRUxT
X01BVENIKGJpdG1hcCwgcGxhdGZvcm1Db250ZXh0Lm9wYXF1ZVJlZ2lvbigpLmFzUmVjdCgpKTsK
KyAgICBjb250ZXh0LnJlc3RvcmUoKTsKKworICAgIGNvbnRleHQuY2xlYXJSZWN0KEZsb2F0UmVj
dCgxMCwgMTAsIDkwLCA5MCkpOworICAgIEVYUEVDVF9FUV9SRUNUKEludFJlY3QoKSwgcGxhdGZv
cm1Db250ZXh0Lm9wYXF1ZVJlZ2lvbigpLmFzUmVjdCgpKTsKKworICAgIFBhdGggcGF0aDsKKyAg
ICBwYXRoLm1vdmVUbyhGbG9hdFBvaW50KDAsIDApKTsKKyAgICBwYXRoLmFkZExpbmVUbyhGbG9h
dFBvaW50KDEwMCwgMCkpOworCisgICAgLy8gTm9uLXJlY3Rhbmd1bGFyIGNsaXBzIGp1c3QgY2F1
c2UgdGhlIHBhaW50IHRvIGJlIGNvbnNpZGVyZWQgbm9uLW9wYXF1ZS4KKyAgICBjb250ZXh0LnNh
dmUoKTsKKyAgICBjb250ZXh0LmNsaXBQYXRoKHBhdGgsIFJVTEVfRVZFTk9ERCk7CisgICAgY29u
dGV4dC5maWxsUmVjdChGbG9hdFJlY3QoMTAsIDEwLCA5MCwgOTApLCBvcGFxdWUsIENvbG9yU3Bh
Y2VEZXZpY2VSR0IsIENvbXBvc2l0ZVNvdXJjZU92ZXIpOworICAgIEVYUEVDVF9FUV9SRUNUKElu
dFJlY3QoKSwgcGxhdGZvcm1Db250ZXh0Lm9wYXF1ZVJlZ2lvbigpLmFzUmVjdCgpKTsKKyAgICBF
WFBFQ1RfUElYRUxTX01BVENIKGJpdG1hcCwgcGxhdGZvcm1Db250ZXh0Lm9wYXF1ZVJlZ2lvbigp
LmFzUmVjdCgpKTsKKyAgICBjb250ZXh0LnJlc3RvcmUoKTsKKworICAgIC8vIEFub3RoZXIgbm9u
LXJlY3Rhbmd1bGFyIGNsaXAuCisgICAgY29udGV4dC5zYXZlKCk7CisgICAgY29udGV4dC5jbGlw
KEludFJlY3QoMzAsIDMwLCAyMCwgMjApKTsKKyAgICBjb250ZXh0LmNsaXBPdXQoSW50UmVjdCgz
MCwgMzAsIDEwLCAxMCkpOworICAgIGNvbnRleHQuZmlsbFJlY3QoRmxvYXRSZWN0KDEwLCAxMCwg
OTAsIDkwKSwgb3BhcXVlLCBDb2xvclNwYWNlRGV2aWNlUkdCLCBDb21wb3NpdGVTb3VyY2VPdmVy
KTsKKyAgICBFWFBFQ1RfRVFfUkVDVChJbnRSZWN0KCksIHBsYXRmb3JtQ29udGV4dC5vcGFxdWVS
ZWdpb24oKS5hc1JlY3QoKSk7CisgICAgRVhQRUNUX1BJWEVMU19NQVRDSChiaXRtYXAsIHBsYXRm
b3JtQ29udGV4dC5vcGFxdWVSZWdpb24oKS5hc1JlY3QoKSk7CisgICAgY29udGV4dC5yZXN0b3Jl
KCk7CisKKyAgICBPd25QdHI8SW1hZ2VCdWZmZXI+IGFscGhhSW1hZ2UgPSBJbWFnZUJ1ZmZlcjo6
Y3JlYXRlKEludFNpemUoMTAwLCAxMDApKTsKKyAgICBhbHBoYUltYWdlLT5jb250ZXh0KCktPmZp
bGxSZWN0KEludFJlY3QoMCwgMCwgMTAwLCAxMDApLCBhbHBoYSwgQ29sb3JTcGFjZURldmljZVJH
Qik7CisKKyAgICAvLyBDbGlwcGluZyB3aXRoIGEgbm9uLW9wYXF1ZSBJbWFnZSAodGhlcmUgaXMg
bm8gd2F5IHRvIG1hcmsgYW4gSW1hZ2VCdWZmZXIgYXMgb3BhcXVlIHRvZGF5KS4KKyAgICBjb250
ZXh0LnNhdmUoKTsKKyAgICBjb250ZXh0LmNsaXBUb0ltYWdlQnVmZmVyKGFscGhhSW1hZ2UuZ2V0
KCksIEZsb2F0UmVjdCgzMCwgMzAsIDEwLCAxMCkpOworICAgIGNvbnRleHQuZmlsbFJlY3QoRmxv
YXRSZWN0KDEwLCAxMCwgOTAsIDkwKSwgb3BhcXVlLCBDb2xvclNwYWNlRGV2aWNlUkdCLCBDb21w
b3NpdGVTb3VyY2VPdmVyKTsKKyAgICBFWFBFQ1RfRVFfUkVDVChJbnRSZWN0KCksIHBsYXRmb3Jt
Q29udGV4dC5vcGFxdWVSZWdpb24oKS5hc1JlY3QoKSk7CisgICAgRVhQRUNUX1BJWEVMU19NQVRD
SChiaXRtYXAsIHBsYXRmb3JtQ29udGV4dC5vcGFxdWVSZWdpb24oKS5hc1JlY3QoKSk7CisgICAg
Y29udGV4dC5yZXN0b3JlKCk7Cit9CisKIFRFU1QoUGxhdGZvcm1Db250ZXh0U2tpYVRlc3QsIHRy
YWNrT3BhcXVlSm9pblRlc3QpCiB7CiAgICAgU2tCaXRtYXAgYml0bWFwOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>125272</attachid>
            <date>2012-02-02 23:28:18 -0800</date>
            <delta_ts>2012-02-03 08:28:15 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-77582-20120203022817.patch</filename>
            <type>text/plain</type>
            <size>8728</size>
            <attacher name="Dana Jansens">danakj</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA2NDgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzUzZDBmZTBkYmZmMDg3
OGY5ZjQ3YzU5ZDA3YTM4NTFjZWQyNGRlNy4uNDY5NmFhOTEwOWYxZGU3YWM3ZjIwOTkyNTE1ZWU0
MDg1ZDc1ZjM4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEyLTAyLTAyICBEYW5h
IEphbnNlbnMgIDxkYW5ha2pAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtDaHJvbWl1bV0gVXNl
IHRoZSBjdXJyZW50IGNsaXAgd2hlbiBtYXJraW5nIHBhaW50cyBhcyBvcGFxdWUKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc3NTgyCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTmV3IHVuaXQgdGVzdCBpbiBQ
bGF0Zm9ybUNvbnRleHRTa2lhVGVzdC5jcHAKKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L3NraWEvT3BhcXVlUmVnaW9uU2tpYS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpPcGFxdWVSZWdp
b25Ta2lhOjptYXJrUmVjdEFzT3BhcXVlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9z
a2lhL1BsYXRmb3JtQ29udGV4dFNraWEuaDoKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtQ29u
dGV4dFNraWE6OmNhbnZhcyk6CisKIDIwMTItMDItMDEgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVy
c2NhQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggOWI5N2IyOGQzYTY3ZDc5MzU2NTc1MDYxM2UyNjQwNzYy
YjY0ODBmYS4uNmI2NTRjMmUxMGI1ZmJmNjYxOThhYjc0YjVlMTM1OGYyZmQyZGEzZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMi0wMi0wMiAgRGFuYSBK
YW5zZW5zICA8ZGFuYWtqQGNocm9taXVtLm9yZz4KKworICAgICAgICBbQ2hyb21pdW1dIFVzZSB0
aGUgY3VycmVudCBjbGlwIHdoZW4gbWFya2luZyBwYWludHMgYXMgb3BhcXVlCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NzU4MgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogdGVzdHMvUGxhdGZvcm1Db250
ZXh0U2tpYVRlc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VEVTVCk6CisgICAgICAgIChXZWJD
b3JlKToKKwogMjAxMi0wMi0wMSAgRGlyayBQcmFua2UgIDxkcHJhbmtlQGNocm9taXVtLm9yZz4K
IAogICAgICAgICBUZXN0V2ViS2l0QVBJIGlzbid0IGJlaW5nIGJ1aWx0IG9uIGNocm9taXVtIGJv
dHMgYW55IG1vcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3NraWEvT3BhcXVlUmVnaW9uU2tpYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9za2lhL09wYXF1ZVJlZ2lvblNraWEuY3BwCmluZGV4IDY0YTRlZTRmM2NlZjZhYmY0NDQ5
ZjUyMWU0ZjBlYzhkZDE2YjZhMmEuLjc0MTQ1ZjFjOTI3MzkxZDk4Y2QwNTJlNTQyNjMwNzI2NmU1
OGJlYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEv
T3BhcXVlUmVnaW9uU2tpYS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3Mvc2tpYS9PcGFxdWVSZWdpb25Ta2lhLmNwcApAQCAtMzQsNiArMzQsNyBAQAogCiAjaW5jbHVk
ZSAiUGxhdGZvcm1Db250ZXh0U2tpYS5oIgogCisjaW5jbHVkZSAiU2tDYW52YXMuaCIKICNpbmNs
dWRlICJTa1NoYWRlci5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0yMzYsMTkgKzIzNywy
OSBAQCB2b2lkIE9wYXF1ZVJlZ2lvblNraWE6OmRpZERyYXdVbmJvdW5kZWQoY29uc3QgU2tQYWlu
dCYgcGFpbnQsIGJvb2wgZHJhd3NPcGFxdWUpCiAgICAgfQogfQogCi12b2lkIE9wYXF1ZVJlZ2lv
blNraWE6Om1hcmtSZWN0QXNPcGFxdWUoY29uc3QgUGxhdGZvcm1Db250ZXh0U2tpYSogY29udGV4
dCwgY29uc3QgU2tSZWN0JiByZWN0KQordm9pZCBPcGFxdWVSZWdpb25Ta2lhOjptYXJrUmVjdEFz
T3BhcXVlKGNvbnN0IFBsYXRmb3JtQ29udGV4dFNraWEqIGNvbnRleHQsIGNvbnN0IFNrUmVjdCYg
cGFpbnRSZWN0KQogewogICAgIC8vIFdlIHdhbnQgdG8ga2VlcCB0cmFjayBvZiBhbiBvcGFxdWUg
cmVnaW9uIGJ1dCBib3VuZCBpdHMgY29tcGxleGl0eSBhdCBhIGNvbnN0YW50IHNpemUuCiAgICAg
Ly8gV2Uga2VlcCB0cmFjayBvZiB0aGUgbGFyZ2VzdCByZWN0YW5nbGUgc2VlbiBieSBhcmVhLiBJ
ZiB3ZSBjYW4gYWRkIHRoZSBuZXcgcmVjdCB0byB0aGlzCiAgICAgLy8gcmVjdGFuZ2xlIHRoZW4g
d2UgZG8gdGhhdCwgYXMgdGhhdCBpcyB0aGUgY2hlYXBlc3Qgd2F5IHRvIGluY3JlYXNlIHRoZSBh
cmVhIHJldHVybmVkCiAgICAgLy8gd2l0aG91dCBpbmNyZWFzaW5nIHRoZSBjb21wbGV4aXR5Lgog
Ci0gICAgaWYgKHJlY3QuaXNFbXB0eSgpKQorICAgIGlmIChwYWludFJlY3QuaXNFbXB0eSgpKQog
ICAgICAgICByZXR1cm47CiAgICAgaWYgKCFjb250ZXh0LT5jbGlwcGVkVG9JbWFnZSgpLmlzT3Bh
cXVlKCkpCiAgICAgICAgIHJldHVybjsKLSAgICBpZiAobV9vcGFxdWVSZWN0LmNvbnRhaW5zKHJl
Y3QpKQorICAgIGlmIChjb250ZXh0LT5jYW52YXMoKS0+Z2V0Q2xpcFR5cGUoKSAhPSBTa0NhbnZh
czo6a1JlY3RfQ2xpcFR5cGUpCiAgICAgICAgIHJldHVybjsKKyAgICBpZiAobV9vcGFxdWVSZWN0
LmNvbnRhaW5zKHBhaW50UmVjdCkpCisgICAgICAgIHJldHVybjsKKworICAgIC8vIEFwcGx5IHRo
ZSBjdXJyZW50IGNsaXAuCisgICAgU2tJUmVjdCBkZXZpY2VDbGlwOworICAgIGNvbnRleHQtPmNh
bnZhcygpLT5nZXRDbGlwRGV2aWNlQm91bmRzKCZkZXZpY2VDbGlwKTsKKyAgICBTa1JlY3QgcmVj
dCA9IHBhaW50UmVjdDsKKyAgICBpZiAoIXJlY3QuaW50ZXJzZWN0KFNrSW50VG9TY2FsYXIoZGV2
aWNlQ2xpcC5mTGVmdCksIFNrSW50VG9TY2FsYXIoZGV2aWNlQ2xpcC5mVG9wKSwgU2tJbnRUb1Nj
YWxhcihkZXZpY2VDbGlwLmZSaWdodCksIFNrSW50VG9TY2FsYXIoZGV2aWNlQ2xpcC5mQm90dG9t
KSkpCisgICAgICAgIHJldHVybjsKKwogICAgIGlmIChyZWN0LmNvbnRhaW5zKG1fb3BhcXVlUmVj
dCkpIHsKICAgICAgICAgbV9vcGFxdWVSZWN0ID0gcmVjdDsKICAgICAgICAgcmV0dXJuOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9QbGF0Zm9ybUNv
bnRleHRTa2lhLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL1BsYXRm
b3JtQ29udGV4dFNraWEuaAppbmRleCBmZTNhYmI2ZjU2MDVlYTRkYmE2ODNjMGM1OTY4ZDJhM2Yw
YTAyZTMwLi4xMmJkZjc5NWM2NzE5MWZlYWYyZmFhMjljZTkyYWRlZmNjODQxZmNjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL1BsYXRmb3JtQ29udGV4
dFNraWEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL1BsYXRm
b3JtQ29udGV4dFNraWEuaApAQCAtMTUyLDYgKzE1Miw3IEBAIHB1YmxpYzoKIAogICAgIC8vIFJl
dHVybnMgdGhlIGNhbnZhcyB1c2VkIGZvciBwYWludGluZywgTk9UIGd1YXJhbnRlZWQgdG8gYmUg
bm9uLW51bGwuCiAgICAgU2tDYW52YXMqIGNhbnZhcygpIHsgcmV0dXJuIG1fY2FudmFzOyB9Cisg
ICAgY29uc3QgU2tDYW52YXMqIGNhbnZhcygpIGNvbnN0IHsgcmV0dXJuIG1fY2FudmFzOyB9CiAK
ICAgICBJbnRlcnBvbGF0aW9uUXVhbGl0eSBpbnRlcnBvbGF0aW9uUXVhbGl0eSgpIGNvbnN0Owog
ICAgIHZvaWQgc2V0SW50ZXJwb2xhdGlvblF1YWxpdHkoSW50ZXJwb2xhdGlvblF1YWxpdHkgaW50
ZXJwb2xhdGlvblF1YWxpdHkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90
ZXN0cy9QbGF0Zm9ybUNvbnRleHRTa2lhVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3Rlc3RzL1BsYXRmb3JtQ29udGV4dFNraWFUZXN0LmNwcAppbmRleCAwZmY1MzkwMjNkODRjMjRi
OGE4MjMwZjI2ZWE4Y2NkYjcwZDdiNzQ0Li5mYzEyNWExOTA3YjBhN2FjM2RiYTAwYjI3Mzg3ZGFl
ZmQ0NmQyYTA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1BsYXRm
b3JtQ29udGV4dFNraWFUZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3Rz
L1BsYXRmb3JtQ29udGV4dFNraWFUZXN0LmNwcApAQCAtMjgsNiArMjgsNyBAQAogCiAjaW5jbHVk
ZSAiQml0bWFwSW1hZ2VTaW5nbGVGcmFtZVNraWEuaCIKICNpbmNsdWRlICJHcmFwaGljc0NvbnRl
eHQuaCIKKyNpbmNsdWRlICJJbWFnZUJ1ZmZlci5oIgogI2luY2x1ZGUgIk5hdGl2ZUltYWdlU2tp
YS5oIgogI2luY2x1ZGUgIlNrQ2FudmFzLmgiCiAjaW5jbHVkZSA8Z3Rlc3QvZ3Rlc3QuaD4KQEAg
LTExMSw2ICsxMTIsODkgQEAgVEVTVChQbGF0Zm9ybUNvbnRleHRTa2lhVGVzdCwgdHJhY2tPcGFx
dWVUZXN0KQogICAgIEVYUEVDVF9QSVhFTFNfTUFUQ0goYml0bWFwLCBwbGF0Zm9ybUNvbnRleHQu
b3BhcXVlUmVnaW9uKCkuYXNSZWN0KCkpOwogfQogCitURVNUKFBsYXRmb3JtQ29udGV4dFNraWFU
ZXN0LCB0cmFja09wYXF1ZUNsaXBUZXN0KQoreworICAgIFNrQml0bWFwIGJpdG1hcDsKKyAgICBi
aXRtYXAuc2V0Q29uZmlnKFNrQml0bWFwOjprQVJHQl84ODg4X0NvbmZpZywgNDAwLCA0MDApOwor
ICAgIGJpdG1hcC5hbGxvY1BpeGVscygpOworICAgIFNrQ2FudmFzIGNhbnZhcyhiaXRtYXApOwor
CisgICAgUGxhdGZvcm1Db250ZXh0U2tpYSBwbGF0Zm9ybUNvbnRleHQoJmNhbnZhcyk7CisgICAg
cGxhdGZvcm1Db250ZXh0LnNldFRyYWNrT3BhcXVlUmVnaW9uKHRydWUpOworICAgIEdyYXBoaWNz
Q29udGV4dCBjb250ZXh0KCZwbGF0Zm9ybUNvbnRleHQpOworCisgICAgQ29sb3Igb3BhcXVlKDEu
MGYsIDAuMGYsIDAuMGYsIDEuMGYpOworICAgIENvbG9yIGFscGhhKDAuMGYsIDAuMGYsIDAuMGYs
IDAuMGYpOworCisgICAgY29udGV4dC5maWxsUmVjdChGbG9hdFJlY3QoMTAsIDEwLCA5MCwgOTAp
LCBvcGFxdWUsIENvbG9yU3BhY2VEZXZpY2VSR0IsIENvbXBvc2l0ZVNvdXJjZU92ZXIpOworICAg
IEVYUEVDVF9FUV9SRUNUKEludFJlY3QoMTAsIDEwLCA5MCwgOTApLCBwbGF0Zm9ybUNvbnRleHQu
b3BhcXVlUmVnaW9uKCkuYXNSZWN0KCkpOworICAgIEVYUEVDVF9QSVhFTFNfTUFUQ0goYml0bWFw
LCBwbGF0Zm9ybUNvbnRleHQub3BhcXVlUmVnaW9uKCkuYXNSZWN0KCkpOworCisgICAgY29udGV4
dC5jbGVhclJlY3QoRmxvYXRSZWN0KDEwLCAxMCwgOTAsIDkwKSk7CisgICAgRVhQRUNUX0VRX1JF
Q1QoSW50UmVjdCgpLCBwbGF0Zm9ybUNvbnRleHQub3BhcXVlUmVnaW9uKCkuYXNSZWN0KCkpOwor
CisgICAgY29udGV4dC5zYXZlKCk7CisgICAgY29udGV4dC5jbGlwKEZsb2F0UmVjdCgwLCAwLCAx
MCwgMTApKTsKKyAgICBjb250ZXh0LmZpbGxSZWN0KEZsb2F0UmVjdCgxMCwgMTAsIDkwLCA5MCks
IG9wYXF1ZSwgQ29sb3JTcGFjZURldmljZVJHQiwgQ29tcG9zaXRlU291cmNlT3Zlcik7CisgICAg
RVhQRUNUX0VRX1JFQ1QoSW50UmVjdCgpLCBwbGF0Zm9ybUNvbnRleHQub3BhcXVlUmVnaW9uKCku
YXNSZWN0KCkpOworICAgIEVYUEVDVF9QSVhFTFNfTUFUQ0goYml0bWFwLCBwbGF0Zm9ybUNvbnRl
eHQub3BhcXVlUmVnaW9uKCkuYXNSZWN0KCkpOworICAgIGNvbnRleHQucmVzdG9yZSgpOworCisg
ICAgY29udGV4dC5jbGVhclJlY3QoRmxvYXRSZWN0KDEwLCAxMCwgOTAsIDkwKSk7CisgICAgRVhQ
RUNUX0VRX1JFQ1QoSW50UmVjdCgpLCBwbGF0Zm9ybUNvbnRleHQub3BhcXVlUmVnaW9uKCkuYXNS
ZWN0KCkpOworCisgICAgY29udGV4dC5zYXZlKCk7CisgICAgY29udGV4dC5jbGlwKEZsb2F0UmVj
dCgyMCwgMjAsIDEwLCAxMCkpOworICAgIGNvbnRleHQuZmlsbFJlY3QoRmxvYXRSZWN0KDEwLCAx
MCwgOTAsIDkwKSwgb3BhcXVlLCBDb2xvclNwYWNlRGV2aWNlUkdCLCBDb21wb3NpdGVTb3VyY2VP
dmVyKTsKKyAgICBFWFBFQ1RfRVFfUkVDVChJbnRSZWN0KDIwLCAyMCwgMTAsIDEwKSwgcGxhdGZv
cm1Db250ZXh0Lm9wYXF1ZVJlZ2lvbigpLmFzUmVjdCgpKTsKKyAgICBFWFBFQ1RfUElYRUxTX01B
VENIKGJpdG1hcCwgcGxhdGZvcm1Db250ZXh0Lm9wYXF1ZVJlZ2lvbigpLmFzUmVjdCgpKTsKKwor
ICAgIGNvbnRleHQuY2xlYXJSZWN0KEZsb2F0UmVjdCgxMCwgMTAsIDkwLCA5MCkpOworICAgIEVY
UEVDVF9FUV9SRUNUKEludFJlY3QoKSwgcGxhdGZvcm1Db250ZXh0Lm9wYXF1ZVJlZ2lvbigpLmFz
UmVjdCgpKTsKKworICAgIC8vIFRoZSBpbnRlcnNlY3Rpb24gb2YgdGhlIHR3byBjbGlwcyBiZWNv
bWVzIGVtcHR5LgorICAgIGNvbnRleHQuY2xpcChGbG9hdFJlY3QoMzAsIDIwLCAxMCwgMTApKTsK
KyAgICBjb250ZXh0LmZpbGxSZWN0KEZsb2F0UmVjdCgxMCwgMTAsIDkwLCA5MCksIG9wYXF1ZSwg
Q29sb3JTcGFjZURldmljZVJHQiwgQ29tcG9zaXRlU291cmNlT3Zlcik7CisgICAgRVhQRUNUX0VR
X1JFQ1QoSW50UmVjdCgpLCBwbGF0Zm9ybUNvbnRleHQub3BhcXVlUmVnaW9uKCkuYXNSZWN0KCkp
OworICAgIEVYUEVDVF9QSVhFTFNfTUFUQ0goYml0bWFwLCBwbGF0Zm9ybUNvbnRleHQub3BhcXVl
UmVnaW9uKCkuYXNSZWN0KCkpOworICAgIGNvbnRleHQucmVzdG9yZSgpOworCisgICAgY29udGV4
dC5jbGVhclJlY3QoRmxvYXRSZWN0KDEwLCAxMCwgOTAsIDkwKSk7CisgICAgRVhQRUNUX0VRX1JF
Q1QoSW50UmVjdCgpLCBwbGF0Zm9ybUNvbnRleHQub3BhcXVlUmVnaW9uKCkuYXNSZWN0KCkpOwor
CisgICAgUGF0aCBwYXRoOworICAgIHBhdGgubW92ZVRvKEZsb2F0UG9pbnQoMCwgMCkpOworICAg
IHBhdGguYWRkTGluZVRvKEZsb2F0UG9pbnQoMTAwLCAwKSk7CisKKyAgICAvLyBOb24tcmVjdGFu
Z3VsYXIgY2xpcHMganVzdCBjYXVzZSB0aGUgcGFpbnQgdG8gYmUgY29uc2lkZXJlZCBub24tb3Bh
cXVlLgorICAgIGNvbnRleHQuc2F2ZSgpOworICAgIGNvbnRleHQuY2xpcFBhdGgocGF0aCwgUlVM
RV9FVkVOT0REKTsKKyAgICBjb250ZXh0LmZpbGxSZWN0KEZsb2F0UmVjdCgxMCwgMTAsIDkwLCA5
MCksIG9wYXF1ZSwgQ29sb3JTcGFjZURldmljZVJHQiwgQ29tcG9zaXRlU291cmNlT3Zlcik7Cisg
ICAgRVhQRUNUX0VRX1JFQ1QoSW50UmVjdCgpLCBwbGF0Zm9ybUNvbnRleHQub3BhcXVlUmVnaW9u
KCkuYXNSZWN0KCkpOworICAgIEVYUEVDVF9QSVhFTFNfTUFUQ0goYml0bWFwLCBwbGF0Zm9ybUNv
bnRleHQub3BhcXVlUmVnaW9uKCkuYXNSZWN0KCkpOworICAgIGNvbnRleHQucmVzdG9yZSgpOwor
CisgICAgLy8gQW5vdGhlciBub24tcmVjdGFuZ3VsYXIgY2xpcC4KKyAgICBjb250ZXh0LnNhdmUo
KTsKKyAgICBjb250ZXh0LmNsaXAoSW50UmVjdCgzMCwgMzAsIDIwLCAyMCkpOworICAgIGNvbnRl
eHQuY2xpcE91dChJbnRSZWN0KDMwLCAzMCwgMTAsIDEwKSk7CisgICAgY29udGV4dC5maWxsUmVj
dChGbG9hdFJlY3QoMTAsIDEwLCA5MCwgOTApLCBvcGFxdWUsIENvbG9yU3BhY2VEZXZpY2VSR0Is
IENvbXBvc2l0ZVNvdXJjZU92ZXIpOworICAgIEVYUEVDVF9FUV9SRUNUKEludFJlY3QoKSwgcGxh
dGZvcm1Db250ZXh0Lm9wYXF1ZVJlZ2lvbigpLmFzUmVjdCgpKTsKKyAgICBFWFBFQ1RfUElYRUxT
X01BVENIKGJpdG1hcCwgcGxhdGZvcm1Db250ZXh0Lm9wYXF1ZVJlZ2lvbigpLmFzUmVjdCgpKTsK
KyAgICBjb250ZXh0LnJlc3RvcmUoKTsKKworICAgIE93blB0cjxJbWFnZUJ1ZmZlcj4gYWxwaGFJ
bWFnZSA9IEltYWdlQnVmZmVyOjpjcmVhdGUoSW50U2l6ZSgxMDAsIDEwMCkpOworICAgIGFscGhh
SW1hZ2UtPmNvbnRleHQoKS0+ZmlsbFJlY3QoSW50UmVjdCgwLCAwLCAxMDAsIDEwMCksIGFscGhh
LCBDb2xvclNwYWNlRGV2aWNlUkdCKTsKKworICAgIC8vIENsaXBwaW5nIHdpdGggYSBub24tb3Bh
cXVlIEltYWdlICh0aGVyZSBpcyBubyB3YXkgdG8gbWFyayBhbiBJbWFnZUJ1ZmZlciBhcyBvcGFx
dWUgdG9kYXkpLgorICAgIGNvbnRleHQuc2F2ZSgpOworICAgIGNvbnRleHQuY2xpcFRvSW1hZ2VC
dWZmZXIoYWxwaGFJbWFnZS5nZXQoKSwgRmxvYXRSZWN0KDMwLCAzMCwgMTAsIDEwKSk7CisgICAg
Y29udGV4dC5maWxsUmVjdChGbG9hdFJlY3QoMTAsIDEwLCA5MCwgOTApLCBvcGFxdWUsIENvbG9y
U3BhY2VEZXZpY2VSR0IsIENvbXBvc2l0ZVNvdXJjZU92ZXIpOworICAgIEVYUEVDVF9FUV9SRUNU
KEludFJlY3QoKSwgcGxhdGZvcm1Db250ZXh0Lm9wYXF1ZVJlZ2lvbigpLmFzUmVjdCgpKTsKKyAg
ICBFWFBFQ1RfUElYRUxTX01BVENIKGJpdG1hcCwgcGxhdGZvcm1Db250ZXh0Lm9wYXF1ZVJlZ2lv
bigpLmFzUmVjdCgpKTsKKyAgICBjb250ZXh0LnJlc3RvcmUoKTsKK30KKwogVEVTVChQbGF0Zm9y
bUNvbnRleHRTa2lhVGVzdCwgdHJhY2tPcGFxdWVKb2luVGVzdCkKIHsKICAgICBTa0JpdG1hcCBi
aXRtYXA7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>