<?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>46918</bug_id>
          
          <creation_ts>2010-09-30 10:29:07 -0700</creation_ts>
          <short_desc>ContextShadow should not use the blur radius as kernel size of the box blurs</short_desc>
          <delta_ts>2010-10-06 12:38:09 -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>WebKitGTK</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</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>
          
          <blocked>46475</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Alejandro G. Castro">alex</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ariya.hidayat</cc>
    
    <cc>jarred</cc>
    
    <cc>krit</cc>
    
    <cc>mrobinson</cc>
    
    <cc>webkit-ews</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>287627</commentid>
    <comment_count>0</comment_count>
    <who name="Alejandro G. Castro">alex</who>
    <bug_when>2010-09-30 10:29:07 -0700</bug_when>
    <thetext>Currently we are using the blur radius in ContextShadow directly as the kernel size when blurring, this is causing a bigger blurring effect than expected. We should calculate the kernel size required to get a blur effect which size is like the blur radius. We were using before 2/3 of the blur radius, because we are adding kernel_size/2 pixels with each box blur, therefore with 3 box blurs we get 3*kernel_size/2 more pixels, which should be the blur radius. Firefox is applying a similar solution.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>287635</commentid>
    <comment_count>1</comment_count>
      <attachid>69347</attachid>
    <who name="Alejandro G. Castro">alex</who>
    <bug_when>2010-09-30 10:33:45 -0700</bug_when>
    <thetext>Created attachment 69347
Proposed patch

This is an option without supporting fractional kernel sizes which would be probably the one with the best results, mostly for the small radii. It is basically what we are currently doing in FEGaussianBlur.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>287648</commentid>
    <comment_count>2</comment_count>
      <attachid>69347</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2010-09-30 10:45:18 -0700</bug_when>
    <thetext>Comment on attachment 69347
Proposed patch

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

&gt; WebCore/platform/graphics/ContextShadow.cpp:158
&gt; +    // We expand the area by the blur radius to give extra space for the blur transition.
&gt; +    m_layerRect.inflate((m_type == BlurShadow) ? ceil(m_blurRadius) : 0);

We probably want to change the name m_blurRadius to m_blurWidth to clear up any confusion about what this value means.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>287693</commentid>
    <comment_count>3</comment_count>
    <who name="Alejandro G. Castro">alex</who>
    <bug_when>2010-09-30 11:32:30 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt;
&gt; [...]
&gt; 
&gt; We probably want to change the name m_blurRadius to m_blurWidth to clear up any confusion about what this value means.

I agree, I&apos;ve checked the CSS spec and it is call blur distance we can use that:

http://www.w3.org/TR/css3-background/#box-shadow</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>288023</commentid>
    <comment_count>4</comment_count>
    <who name="Jarred Nicholls">jarred</who>
    <bug_when>2010-09-30 19:57:27 -0700</bug_when>
    <thetext>Alejandro, I would update this patch to conform to the landed patch in r68824 (https://bugs.webkit.org/show_bug.cgi?id=46931), which removes the unnecessary calls to ceil (which happen to break MSVC builds since 9/23 when the Qt blur was forked for Cairo).  Just FYI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>288085</commentid>
    <comment_count>5</comment_count>
    <who name="Alejandro G. Castro">alex</who>
    <bug_when>2010-09-30 23:56:58 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; Alejandro, I would update this patch to conform to the landed patch in r68824 (https://bugs.webkit.org/show_bug.cgi?id=46931), which removes the unnecessary calls to ceil (which happen to break MSVC builds since 9/23 when the Qt blur was forked for Cairo).  Just FYI.

Thanks for information, I&apos;ll do it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>288169</commentid>
    <comment_count>6</comment_count>
      <attachid>69450</attachid>
    <who name="Alejandro G. Castro">alex</who>
    <bug_when>2010-10-01 04:43:51 -0700</bug_when>
    <thetext>Created attachment 69450
Proposed patch

Addressed the recomendations, I&apos;ve used blurDistance (from the css spec) and d (from the svg spec). Rebased over Jarred patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>288177</commentid>
    <comment_count>7</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2010-10-01 05:02:25 -0700</bug_when>
    <thetext>Attachment 69450 did not build on qt:
Build output: http://queues.webkit.org/results/4212035</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>288193</commentid>
    <comment_count>8</comment_count>
    <who name="Jarred Nicholls">jarred</who>
    <bug_when>2010-10-01 05:31:32 -0700</bug_when>
    <thetext>See r68145, Mark changed several files in Cairo and Qt to use m_blurRadius that will also need refactoring for the name change to m_blurDistance, e.g. qt/FontQt.cpp.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>288264</commentid>
    <comment_count>9</comment_count>
    <who name="Jarred Nicholls">jarred</who>
    <bug_when>2010-10-01 08:56:36 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; See r68145, Mark changed several files in Cairo and Qt to use m_blurRadius that will also need refactoring for the name change to m_blurDistance, e.g. qt/FontQt.cpp.

First off, I meant to type Martin and for some reason typed Mark.  My apologies Martin!

Second, it&apos;s actually just the qt/FontQt.cpp after doing a search.  Hope that saves you some time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>288276</commentid>
    <comment_count>10</comment_count>
    <who name="Alejandro G. Castro">alex</who>
    <bug_when>2010-10-01 09:11:09 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; (In reply to comment #8)
&gt; &gt; See r68145, Mark changed several files in Cairo and Qt to use m_blurRadius that will also need refactoring for the name change to m_blurDistance, e.g. qt/FontQt.cpp.
&gt; 
&gt; First off, I meant to type Martin and for some reason typed Mark.  My apologies Martin!
&gt; 
&gt; Second, it&apos;s actually just the qt/FontQt.cpp after doing a search.  Hope that saves you some time.

Yeah, thanks very much Jarred, preparing the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>288873</commentid>
    <comment_count>11</comment_count>
      <attachid>69615</attachid>
    <who name="Alejandro G. Castro">alex</who>
    <bug_when>2010-10-04 04:34:01 -0700</bug_when>
    <thetext>Created attachment 69615
Proposed patch

I&apos;ve modified the m_blurRadius in FontQt, is there any reason not to declare those members as private and add a funtion to get them? In that case we could open other bug to do that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>288875</commentid>
    <comment_count>12</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2010-10-04 04:40:43 -0700</bug_when>
    <thetext>Attachment 69615 did not build on qt:
Build output: http://queues.webkit.org/results/4166069</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>288878</commentid>
    <comment_count>13</comment_count>
      <attachid>69617</attachid>
    <who name="Alejandro G. Castro">alex</who>
    <bug_when>2010-10-04 04:49:50 -0700</bug_when>
    <thetext>Created attachment 69617
Proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>290214</commentid>
    <comment_count>14</comment_count>
      <attachid>69617</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2010-10-06 05:03:48 -0700</bug_when>
    <thetext>Comment on attachment 69617
Proposed patch

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

Please fix the issues and I&apos;m fine with it. r- because of the issues.

&gt; WebCore/platform/graphics/ContextShadow.cpp:88
&gt; +    unsigned d = max(2.f, (2 / 3.f) * m_blurDistance);

d is unsigned, you can&apos;t use unsigned d = max(2.f
use
unsigned d = max&lt;unsigned&gt;(2, floorf(2 / 3.f * m_blurDistance)); instead.

&gt; WebCore/platform/graphics/ContextShadow.cpp:158
&gt; +    m_layerRect.inflate((m_type == BlurShadow) ? m_blurDistance : 0);

remove the braces arround m_type == BlurShadow

&gt; WebCore/platform/graphics/ContextShadow.cpp:171
&gt; +            m_layerRect.inflate((m_type == BlurShadow) ? m_blurDistance : 0);

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>290215</commentid>
    <comment_count>15</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2010-10-06 05:04:43 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; (From update of attachment 69617 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=69617&amp;action=review
&gt; d is unsigned, you can&apos;t use unsigned d = max(2.f
&gt; use
&gt; unsigned d = max&lt;unsigned&gt;(2, floorf(2 / 3.f * m_blurDistance)); instead.
&gt; 
you still need a static_cast&lt;unsigned&gt; for floorf, sorry.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>290303</commentid>
    <comment_count>16</comment_count>
    <who name="Alejandro G. Castro">alex</who>
    <bug_when>2010-10-06 08:09:05 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; (In reply to comment #14)
&gt; &gt; (From update of attachment 69617 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=69617&amp;action=review
&gt; &gt; d is unsigned, you can&apos;t use unsigned d = max(2.f
&gt; &gt; use
&gt; &gt; unsigned d = max&lt;unsigned&gt;(2, floorf(2 / 3.f * m_blurDistance)); instead.
&gt; &gt; 
&gt; you still need a static_cast&lt;unsigned&gt; for floorf, sorry.

Thanks for the review, I&apos;m going to use int the distance is limited to 128 so it is not a problem, something like:

+    int d = max(2, static_cast&lt;int&gt;(floorf((2 / 3.f) * m_blurDistance)));</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>290305</commentid>
    <comment_count>17</comment_count>
      <attachid>69942</attachid>
    <who name="Alejandro G. Castro">alex</who>
    <bug_when>2010-10-06 08:11:30 -0700</bug_when>
    <thetext>Created attachment 69942
Proposed patch

Fixed the issues pointed out in the comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>290408</commentid>
    <comment_count>18</comment_count>
      <attachid>69942</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2010-10-06 10:15:03 -0700</bug_when>
    <thetext>Comment on attachment 69942
Proposed patch

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

LGTM. Please use a better phrasing in the ChangeLog.

&gt; WebCore/ChangeLog:10
&gt; +        Calculate the size of the kernel in the blur algorihtm using the
&gt; +        radius instead of using directly. Change the name of the variables

using directly 
something is missing here. What don&apos;t you want to use directly?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>290426</commentid>
    <comment_count>19</comment_count>
    <who name="Alejandro G. Castro">alex</who>
    <bug_when>2010-10-06 10:35:07 -0700</bug_when>
    <thetext>(In reply to comment #18)
&gt; (From update of attachment 69942 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=69942&amp;action=review
&gt; 
&gt; LGTM. Please use a better phrasing in the ChangeLog.
&gt; 
&gt; &gt; WebCore/ChangeLog:10
&gt; &gt; +        Calculate the size of the kernel in the blur algorihtm using the
&gt; &gt; +        radius instead of using directly. Change the name of the variables
&gt; 
&gt; using directly 
&gt; something is missing here. What don&apos;t you want to use directly?

Yep, ... instead of using directly the blur distance as the kernel size. Thanks, I&apos;m going to commit it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>290521</commentid>
    <comment_count>20</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2010-10-06 12:38:09 -0700</bug_when>
    <thetext>Committed r69223: &lt;http://trac.webkit.org/changeset/69223&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>69347</attachid>
            <date>2010-09-30 10:33:45 -0700</date>
            <delta_ts>2010-10-01 04:43:51 -0700</delta_ts>
            <desc>Proposed patch</desc>
            <filename>kernel_size_blur.patch</filename>
            <type>text/plain</type>
            <size>3252</size>
            <attacher name="Alejandro G. Castro">alex</attacher>
            
              <data encoding="base64">Y29tbWl0IDg0NWVhNGMxMDdlMTk3ZWQyNzE4ZjNmODIyZDFjYTlkMzIxODVjZTAKQXV0aG9yOiBB
bGVqYW5kcm8gRy4gQ2FzdHJvIDxhbGV4QGlnYWxpYS5jb20+CkRhdGU6ICAgVGh1IFNlcCAzMCAx
ODo1NzoyMiAyMDEwICswMjAwCgogICAgMjAxMC0wOS0zMCAgQWxlamFuZHJvIEcuIENhc3RybyAg
PGFsZXhAaWdhbGlhLmNvbT4KICAgIAogICAgICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KICAgIAogICAgICAgICAgICBDb250ZXh0U2hhZG93IHNob3VsZCBub3QgdXNlIHRoZSBi
bHVyIHJhZGl1cyBhcyBrZXJuZWwgc2l6ZSBvZiB0aGUKICAgICAgICAgICAgYm94IGJsdXJzCiAg
ICAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NjkxOAog
ICAgCiAgICAgICAgICAgIENhbGN1bGF0ZSB0aGUgc2l6ZSBvZiB0aGUga2VybmVsIGluIHRoZSBi
bHVyIGFsZ29yaWh0bSB1c2luZyB0aGUKICAgICAgICAgICAgcmFkaXVzIGluc3RlYWQgb2YgdXNp
bmcgZGlyZWN0bHkuCiAgICAKICAgICAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Db250ZXh0
U2hhZG93LmNwcDoKICAgICAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRTaGFkb3c6OmJsdXJMYXll
ckltYWdlKToKICAgICAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRTaGFkb3c6OmNhbGN1bGF0ZUxh
eWVyQm91bmRpbmdSZWN0KToKCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNv
cmUvQ2hhbmdlTG9nCmluZGV4IGJlNGQzYmEuLjhhNDlkYjggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
Q2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTAt
MDktMzAgIEFsZWphbmRybyBHLiBDYXN0cm8gIDxhbGV4QGlnYWxpYS5jb20+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ29udGV4dFNoYWRvdyBzaG91
bGQgbm90IHVzZSB0aGUgYmx1ciByYWRpdXMgYXMga2VybmVsIHNpemUgb2YgdGhlCisgICAgICAg
IGJveCBibHVycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NDY5MTgKKworICAgICAgICBDYWxjdWxhdGUgdGhlIHNpemUgb2YgdGhlIGtlcm5lbCBpbiB0
aGUgYmx1ciBhbGdvcmlodG0gdXNpbmcgdGhlCisgICAgICAgIHJhZGl1cyBpbnN0ZWFkIG9mIHVz
aW5nIGRpcmVjdGx5LgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvQ29udGV4dFNoYWRv
dy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0U2hhZG93OjpibHVyTGF5ZXJJbWFnZSk6
CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0U2hhZG93OjpjYWxjdWxhdGVMYXllckJvdW5kaW5n
UmVjdCk6CisKIDIwMTAtMDktMjkgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgog
CiAgICAgICAgIFJldmlld2VkIGJ5IERpbWl0cmkgR2xhemtvdi4KZGlmZiAtLWdpdCBhL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29udGV4dFNoYWRvdy5jcHAgYi9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0NvbnRleHRTaGFkb3cuY3BwCmluZGV4IDEwMDc5NjIuLjdkNTgyNTQgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29udGV4dFNoYWRvdy5jcHAKKysrIGIv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db250ZXh0U2hhZG93LmNwcApAQCAtODUsOCArODUs
OSBAQCBzdGF0aWMgY29uc3QgaW50IEJsdXJTdW1TaGlmdCA9IDE1Owogdm9pZCBDb250ZXh0U2hh
ZG93OjpibHVyTGF5ZXJJbWFnZSh1bnNpZ25lZCBjaGFyKiBpbWFnZURhdGEsIGNvbnN0IEludFNp
emUmIHNpemUsIGludCByb3dTdHJpZGUpCiB7CiAgICAgaW50IGNoYW5uZWxzWzRdID0geyAzLCAw
LCAxLCAzIH07Ci0gICAgaW50IGRtYXggPSBtX2JsdXJSYWRpdXMgPj4gMTsKLSAgICBpbnQgZG1p
biA9IGRtYXggLSAxICsgKG1fYmx1clJhZGl1cyAmIDEpOworICAgIHVuc2lnbmVkIGtlcm5lbFNp
emUgPSBtYXgoMi5mLCAoMiAvIDMuZikgKiBtX2JsdXJSYWRpdXMpOworICAgIGludCBkbWF4ID0g
a2VybmVsU2l6ZSA+PiAxOworICAgIGludCBkbWluID0gZG1heCAtIDEgKyAoa2VybmVsU2l6ZSAm
IDEpOwogICAgIGlmIChkbWluIDwgMCkKICAgICAgICAgZG1pbiA9IDA7CiAKQEAgLTE1Myw4ICsx
NTQsOCBAQCB2b2lkIENvbnRleHRTaGFkb3c6OmNhbGN1bGF0ZUxheWVyQm91bmRpbmdSZWN0KGNv
bnN0IEZsb2F0UmVjdCYgbGF5ZXJBcmVhLCBjb25zdAogICAgIGRlc3RpbmF0aW9uUmVjdC5tb3Zl
KG1fb2Zmc2V0KTsKICAgICBtX2xheWVyUmVjdCA9IGVuY2xvc2luZ0ludFJlY3QoZGVzdGluYXRp
b25SZWN0KTsKIAotICAgIC8vIFdlIGV4cGFuZCB0aGUgYXJlYSBieSB0aGUgYmx1ciByYWRpdXMg
KiAyIHRvIGdpdmUgZXh0cmEgc3BhY2UgZm9yIHRoZSBibHVyIHRyYW5zaXRpb24uCi0gICAgbV9s
YXllclJlY3QuaW5mbGF0ZSgobV90eXBlID09IEJsdXJTaGFkb3cpID8gY2VpbChtX2JsdXJSYWRp
dXMgKiAyKSA6IDApOworICAgIC8vIFdlIGV4cGFuZCB0aGUgYXJlYSBieSB0aGUgYmx1ciByYWRp
dXMgdG8gZ2l2ZSBleHRyYSBzcGFjZSBmb3IgdGhlIGJsdXIgdHJhbnNpdGlvbi4KKyAgICBtX2xh
eWVyUmVjdC5pbmZsYXRlKChtX3R5cGUgPT0gQmx1clNoYWRvdykgPyBjZWlsKG1fYmx1clJhZGl1
cykgOiAwKTsKIAogICAgIGlmICghY2xpcFJlY3QuY29udGFpbnMobV9sYXllclJlY3QpKSB7CiAg
ICAgICAgIC8vIE5vIG5lZWQgdG8gaGF2ZSB0aGUgYnVmZmVyIGxhcmdlciB0aGFuIHRoZSBjbGlw
LgpAQCAtMTY3LDcgKzE2OCw3IEBAIHZvaWQgQ29udGV4dFNoYWRvdzo6Y2FsY3VsYXRlTGF5ZXJC
b3VuZGluZ1JlY3QoY29uc3QgRmxvYXRSZWN0JiBsYXllckFyZWEsIGNvbnN0CiAgICAgICAgIC8v
IFdlIGFkanVzdCBhZ2FpbiBiZWNhdXNlIHRoZSBwaXhlbHMgYXQgdGhlIGJvcmRlcnMgYXJlIHN0
aWxsCiAgICAgICAgIC8vIHBvdGVudGlhbGx5IGFmZmVjdGVkIGJ5IHRoZSBwaXhlbHMgb3V0c2lk
ZSB0aGUgYnVmZmVyLgogICAgICAgICBpZiAobV90eXBlID09IEJsdXJTaGFkb3cpCi0gICAgICAg
ICAgICBtX2xheWVyUmVjdC5pbmZsYXRlKChtX3R5cGUgPT0gQmx1clNoYWRvdykgPyBjZWlsKG1f
Ymx1clJhZGl1cyAqIDIpIDogMCk7CisgICAgICAgICAgICBtX2xheWVyUmVjdC5pbmZsYXRlKCht
X3R5cGUgPT0gQmx1clNoYWRvdykgPyBjZWlsKG1fYmx1clJhZGl1cykgOiAwKTsKICAgICB9CiB9
CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>69450</attachid>
            <date>2010-10-01 04:43:51 -0700</date>
            <delta_ts>2010-10-04 04:34:01 -0700</delta_ts>
            <desc>Proposed patch</desc>
            <filename>context_shadow_blur_distance.patch</filename>
            <type>text/plain</type>
            <size>4015</size>
            <attacher name="Alejandro G. Castro">alex</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ZTc1NzhjMi4uMGE5ZmMwMSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAxMC0xMC0wMSAgQWxlamFuZHJvIEcu
IENhc3RybyAgPGFsZXhAaWdhbGlhLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBDb250ZXh0U2hhZG93IHNob3VsZCBub3QgdXNlIHRoZSBibHVy
IHJhZGl1cyBhcyBrZXJuZWwgc2l6ZSBvZiB0aGUKKyAgICAgICAgYm94IGJsdXJzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NjkxOAorCisgICAgICAg
IENhbGN1bGF0ZSB0aGUgc2l6ZSBvZiB0aGUga2VybmVsIGluIHRoZSBibHVyIGFsZ29yaWh0bSB1
c2luZyB0aGUKKyAgICAgICAgcmFkaXVzIGluc3RlYWQgb2YgdXNpbmcgZGlyZWN0bHkuIENoYW5n
ZSB0aGUgbmFtZSBvZiB0aGUgdmFyaWFibGVzCisgICAgICAgIHVzaW5nIHRoZSBuYW1lcyBpbiB0
aGUgc3RhbmRhcmRzLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvQ29udGV4dFNoYWRv
dy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0U2hhZG93OjpDb250ZXh0U2hhZG93KToK
KyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRTaGFkb3c6OmNsZWFyKToKKyAgICAgICAgKFdlYkNv
cmU6OkNvbnRleHRTaGFkb3c6OmJsdXJMYXllckltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkNv
bnRleHRTaGFkb3c6OmNhbGN1bGF0ZUxheWVyQm91bmRpbmdSZWN0KToKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9Db250ZXh0U2hhZG93Lmg6CisKIDIwMTAtMTAtMDEgIE5pa29sYXMgWmlt
bWVybWFubiAgPG56aW1tZXJtYW5uQHJpbS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQW5k
cmVhcyBLbGluZy4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29udGV4
dFNoYWRvdy5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbnRleHRTaGFkb3cuY3Bw
CmluZGV4IDUxZDc0OGYuLjI5OWFkMzYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvQ29udGV4dFNoYWRvdy5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9D
b250ZXh0U2hhZG93LmNwcApAQCAtMzksMTggKzM5LDE4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogQ29udGV4dFNoYWRvdzo6Q29udGV4dFNoYWRvdygpCiAgICAgOiBtX3R5cGUoTm9TaGFkb3cp
Ci0gICAgLCBtX2JsdXJSYWRpdXMoMCkKKyAgICAsIG1fYmx1ckRpc3RhbmNlKDApCiB7CiB9CiAK
IENvbnRleHRTaGFkb3c6OkNvbnRleHRTaGFkb3coY29uc3QgQ29sb3ImIGNvbG9yLCBmbG9hdCBy
YWRpdXMsIGNvbnN0IEZsb2F0U2l6ZSYgb2Zmc2V0KQogICAgIDogbV9jb2xvcihjb2xvcikKLSAg
ICAsIG1fYmx1clJhZGl1cyhyb3VuZChyYWRpdXMpKQorICAgICwgbV9ibHVyRGlzdGFuY2Uocm91
bmQocmFkaXVzKSkKICAgICAsIG1fb2Zmc2V0KG9mZnNldCkKIHsKICAgICAvLyBTZWUgY29tbWVu
dHMgaW4gaHR0cDovL3dlYmtpdC5vcmcvYi80MDc5MywgaXQgc2VlbXMgc2Vuc2libGUKICAgICAv
LyB0byBmb2xsb3cgU2tpYSdzIGxpbWl0IG9mIDEyOCBwaXhlbHMgb2YgYmx1ciByYWRpdXMKLSAg
ICBtX2JsdXJSYWRpdXMgPSBtaW4obV9ibHVyUmFkaXVzLCAxMjgpOworICAgIG1fYmx1ckRpc3Rh
bmNlID0gbWluKG1fYmx1ckRpc3RhbmNlLCAxMjgpOwogCiAgICAgLy8gVGhlIHR5cGUgb2Ygc2hh
ZG93IGlzIGRlY2lkZWQgYnkgdGhlIGJsdXIgcmFkaXVzLCBzaGFkb3cgb2Zmc2V0LCBhbmQgc2hh
ZG93IGNvbG9yLgogICAgIGlmICghbV9jb2xvci5pc1ZhbGlkKCkgfHwgIWNvbG9yLmFscGhhKCkp
IHsKQEAgLTcxLDcgKzcxLDcgQEAgdm9pZCBDb250ZXh0U2hhZG93OjpjbGVhcigpCiB7CiAgICAg
bV90eXBlID0gTm9TaGFkb3c7CiAgICAgbV9jb2xvciA9IENvbG9yKCk7Ci0gICAgbV9ibHVyUmFk
aXVzID0gMDsKKyAgICBtX2JsdXJEaXN0YW5jZSA9IDA7CiAgICAgbV9vZmZzZXQgPSBGbG9hdFNp
emUoKTsKIH0KIApAQCAtODUsOCArODUsOSBAQCBzdGF0aWMgY29uc3QgaW50IEJsdXJTdW1TaGlm
dCA9IDE1Owogdm9pZCBDb250ZXh0U2hhZG93OjpibHVyTGF5ZXJJbWFnZSh1bnNpZ25lZCBjaGFy
KiBpbWFnZURhdGEsIGNvbnN0IEludFNpemUmIHNpemUsIGludCByb3dTdHJpZGUpCiB7CiAgICAg
aW50IGNoYW5uZWxzWzRdID0geyAzLCAwLCAxLCAzIH07Ci0gICAgaW50IGRtYXggPSBtX2JsdXJS
YWRpdXMgPj4gMTsKLSAgICBpbnQgZG1pbiA9IGRtYXggLSAxICsgKG1fYmx1clJhZGl1cyAmIDEp
OworICAgIHVuc2lnbmVkIGQgPSBtYXgoMi5mLCAoMiAvIDMuZikgKiBtX2JsdXJEaXN0YW5jZSk7
CisgICAgaW50IGRtYXggPSBkID4+IDE7CisgICAgaW50IGRtaW4gPSBkbWF4IC0gMSArIChkICYg
MSk7CiAgICAgaWYgKGRtaW4gPCAwKQogICAgICAgICBkbWluID0gMDsKIApAQCAtMTUzLDggKzE1
NCw4IEBAIHZvaWQgQ29udGV4dFNoYWRvdzo6Y2FsY3VsYXRlTGF5ZXJCb3VuZGluZ1JlY3QoY29u
c3QgRmxvYXRSZWN0JiBsYXllckFyZWEsIGNvbnN0CiAgICAgZGVzdGluYXRpb25SZWN0Lm1vdmUo
bV9vZmZzZXQpOwogICAgIG1fbGF5ZXJSZWN0ID0gZW5jbG9zaW5nSW50UmVjdChkZXN0aW5hdGlv
blJlY3QpOwogCi0gICAgLy8gV2UgZXhwYW5kIHRoZSBhcmVhIGJ5IHRoZSBibHVyIHJhZGl1cyAq
IDIgdG8gZ2l2ZSBleHRyYSBzcGFjZSBmb3IgdGhlIGJsdXIgdHJhbnNpdGlvbi4KLSAgICBtX2xh
eWVyUmVjdC5pbmZsYXRlKChtX3R5cGUgPT0gQmx1clNoYWRvdykgPyBtX2JsdXJSYWRpdXMgKiAy
IDogMCk7CisgICAgLy8gV2UgZXhwYW5kIHRoZSBhcmVhIGJ5IHRoZSBibHVyIHJhZGl1cyB0byBn
aXZlIGV4dHJhIHNwYWNlIGZvciB0aGUgYmx1ciB0cmFuc2l0aW9uLgorICAgIG1fbGF5ZXJSZWN0
LmluZmxhdGUoKG1fdHlwZSA9PSBCbHVyU2hhZG93KSA/IG1fYmx1ckRpc3RhbmNlIDogMCk7CiAK
ICAgICBpZiAoIWNsaXBSZWN0LmNvbnRhaW5zKG1fbGF5ZXJSZWN0KSkgewogICAgICAgICAvLyBO
byBuZWVkIHRvIGhhdmUgdGhlIGJ1ZmZlciBsYXJnZXIgdGhhbiB0aGUgY2xpcC4KQEAgLTE2Nyw3
ICsxNjgsNyBAQCB2b2lkIENvbnRleHRTaGFkb3c6OmNhbGN1bGF0ZUxheWVyQm91bmRpbmdSZWN0
KGNvbnN0IEZsb2F0UmVjdCYgbGF5ZXJBcmVhLCBjb25zdAogICAgICAgICAvLyBXZSBhZGp1c3Qg
YWdhaW4gYmVjYXVzZSB0aGUgcGl4ZWxzIGF0IHRoZSBib3JkZXJzIGFyZSBzdGlsbAogICAgICAg
ICAvLyBwb3RlbnRpYWxseSBhZmZlY3RlZCBieSB0aGUgcGl4ZWxzIG91dHNpZGUgdGhlIGJ1ZmZl
ci4KICAgICAgICAgaWYgKG1fdHlwZSA9PSBCbHVyU2hhZG93KQotICAgICAgICAgICAgbV9sYXll
clJlY3QuaW5mbGF0ZSgobV90eXBlID09IEJsdXJTaGFkb3cpID8gbV9ibHVyUmFkaXVzICogMiA6
IDApOworICAgICAgICAgICAgbV9sYXllclJlY3QuaW5mbGF0ZSgobV90eXBlID09IEJsdXJTaGFk
b3cpID8gbV9ibHVyRGlzdGFuY2UgOiAwKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29udGV4dFNoYWRvdy5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9Db250ZXh0U2hhZG93LmgKaW5kZXggZWRlOTMzNi4uMTY0OGZlNSAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db250ZXh0U2hhZG93LmgKKysrIGIvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9Db250ZXh0U2hhZG93LmgKQEAgLTY1LDcgKzY1LDcgQEAgcHVi
bGljOgogICAgIH0gbV90eXBlOwogCiAgICAgQ29sb3IgbV9jb2xvcjsKLSAgICBpbnQgbV9ibHVy
UmFkaXVzOworICAgIGludCBtX2JsdXJEaXN0YW5jZTsKICAgICBGbG9hdFNpemUgbV9vZmZzZXQ7
CiAKICAgICBDb250ZXh0U2hhZG93KCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>69615</attachid>
            <date>2010-10-04 04:34:01 -0700</date>
            <delta_ts>2010-10-04 04:49:50 -0700</delta_ts>
            <desc>Proposed patch</desc>
            <filename>blur_distance.patch</filename>
            <type>text/plain</type>
            <size>4886</size>
            <attacher name="Alejandro G. Castro">alex</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ZDk2MDJkYS4uZTkxMDNlZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAxMC0xMC0wNCAgQWxlamFuZHJvIEcu
IENhc3RybyAgPGFsZXhAaWdhbGlhLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBDb250ZXh0U2hhZG93IHNob3VsZCBub3QgdXNlIHRoZSBibHVy
IHJhZGl1cyBhcyBrZXJuZWwgc2l6ZSBvZiB0aGUKKyAgICAgICAgYm94IGJsdXJzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NjkxOAorCisgICAgICAg
IENhbGN1bGF0ZSB0aGUgc2l6ZSBvZiB0aGUga2VybmVsIGluIHRoZSBibHVyIGFsZ29yaWh0bSB1
c2luZyB0aGUKKyAgICAgICAgcmFkaXVzIGluc3RlYWQgb2YgdXNpbmcgZGlyZWN0bHkuIENoYW5n
ZSB0aGUgbmFtZSBvZiB0aGUgdmFyaWFibGVzCisgICAgICAgIHVzaW5nIHRoZSBuYW1lcyBpbiB0
aGUgc3RhbmRhcmRzLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvQ29udGV4dFNoYWRv
dy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0U2hhZG93OjpDb250ZXh0U2hhZG93KToK
KyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRTaGFkb3c6OmNsZWFyKToKKyAgICAgICAgKFdlYkNv
cmU6OkNvbnRleHRTaGFkb3c6OmJsdXJMYXllckltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkNv
bnRleHRTaGFkb3c6OmNhbGN1bGF0ZUxheWVyQm91bmRpbmdSZWN0KToKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9Db250ZXh0U2hhZG93Lmg6CisKIDIwMTAtMTAtMDMgIEtlbnQgVGFtdXJh
ICA8dGtlbnRAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIGJ1aWxkIGZpeCBm
b3IgcjY4OTk2LgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db250ZXh0
U2hhZG93LmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29udGV4dFNoYWRvdy5jcHAK
aW5kZXggNTFkNzQ4Zi4uMjk5YWQzNiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9Db250ZXh0U2hhZG93LmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Nv
bnRleHRTaGFkb3cuY3BwCkBAIC0zOSwxOCArMzksMTggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
CiBDb250ZXh0U2hhZG93OjpDb250ZXh0U2hhZG93KCkKICAgICA6IG1fdHlwZShOb1NoYWRvdykK
LSAgICAsIG1fYmx1clJhZGl1cygwKQorICAgICwgbV9ibHVyRGlzdGFuY2UoMCkKIHsKIH0KIAog
Q29udGV4dFNoYWRvdzo6Q29udGV4dFNoYWRvdyhjb25zdCBDb2xvciYgY29sb3IsIGZsb2F0IHJh
ZGl1cywgY29uc3QgRmxvYXRTaXplJiBvZmZzZXQpCiAgICAgOiBtX2NvbG9yKGNvbG9yKQotICAg
ICwgbV9ibHVyUmFkaXVzKHJvdW5kKHJhZGl1cykpCisgICAgLCBtX2JsdXJEaXN0YW5jZShyb3Vu
ZChyYWRpdXMpKQogICAgICwgbV9vZmZzZXQob2Zmc2V0KQogewogICAgIC8vIFNlZSBjb21tZW50
cyBpbiBodHRwOi8vd2Via2l0Lm9yZy9iLzQwNzkzLCBpdCBzZWVtcyBzZW5zaWJsZQogICAgIC8v
IHRvIGZvbGxvdyBTa2lhJ3MgbGltaXQgb2YgMTI4IHBpeGVscyBvZiBibHVyIHJhZGl1cwotICAg
IG1fYmx1clJhZGl1cyA9IG1pbihtX2JsdXJSYWRpdXMsIDEyOCk7CisgICAgbV9ibHVyRGlzdGFu
Y2UgPSBtaW4obV9ibHVyRGlzdGFuY2UsIDEyOCk7CiAKICAgICAvLyBUaGUgdHlwZSBvZiBzaGFk
b3cgaXMgZGVjaWRlZCBieSB0aGUgYmx1ciByYWRpdXMsIHNoYWRvdyBvZmZzZXQsIGFuZCBzaGFk
b3cgY29sb3IuCiAgICAgaWYgKCFtX2NvbG9yLmlzVmFsaWQoKSB8fCAhY29sb3IuYWxwaGEoKSkg
ewpAQCAtNzEsNyArNzEsNyBAQCB2b2lkIENvbnRleHRTaGFkb3c6OmNsZWFyKCkKIHsKICAgICBt
X3R5cGUgPSBOb1NoYWRvdzsKICAgICBtX2NvbG9yID0gQ29sb3IoKTsKLSAgICBtX2JsdXJSYWRp
dXMgPSAwOworICAgIG1fYmx1ckRpc3RhbmNlID0gMDsKICAgICBtX29mZnNldCA9IEZsb2F0U2l6
ZSgpOwogfQogCkBAIC04NSw4ICs4NSw5IEBAIHN0YXRpYyBjb25zdCBpbnQgQmx1clN1bVNoaWZ0
ID0gMTU7CiB2b2lkIENvbnRleHRTaGFkb3c6OmJsdXJMYXllckltYWdlKHVuc2lnbmVkIGNoYXIq
IGltYWdlRGF0YSwgY29uc3QgSW50U2l6ZSYgc2l6ZSwgaW50IHJvd1N0cmlkZSkKIHsKICAgICBp
bnQgY2hhbm5lbHNbNF0gPSB7IDMsIDAsIDEsIDMgfTsKLSAgICBpbnQgZG1heCA9IG1fYmx1clJh
ZGl1cyA+PiAxOwotICAgIGludCBkbWluID0gZG1heCAtIDEgKyAobV9ibHVyUmFkaXVzICYgMSk7
CisgICAgdW5zaWduZWQgZCA9IG1heCgyLmYsICgyIC8gMy5mKSAqIG1fYmx1ckRpc3RhbmNlKTsK
KyAgICBpbnQgZG1heCA9IGQgPj4gMTsKKyAgICBpbnQgZG1pbiA9IGRtYXggLSAxICsgKGQgJiAx
KTsKICAgICBpZiAoZG1pbiA8IDApCiAgICAgICAgIGRtaW4gPSAwOwogCkBAIC0xNTMsOCArMTU0
LDggQEAgdm9pZCBDb250ZXh0U2hhZG93OjpjYWxjdWxhdGVMYXllckJvdW5kaW5nUmVjdChjb25z
dCBGbG9hdFJlY3QmIGxheWVyQXJlYSwgY29uc3QKICAgICBkZXN0aW5hdGlvblJlY3QubW92ZSht
X29mZnNldCk7CiAgICAgbV9sYXllclJlY3QgPSBlbmNsb3NpbmdJbnRSZWN0KGRlc3RpbmF0aW9u
UmVjdCk7CiAKLSAgICAvLyBXZSBleHBhbmQgdGhlIGFyZWEgYnkgdGhlIGJsdXIgcmFkaXVzICog
MiB0byBnaXZlIGV4dHJhIHNwYWNlIGZvciB0aGUgYmx1ciB0cmFuc2l0aW9uLgotICAgIG1fbGF5
ZXJSZWN0LmluZmxhdGUoKG1fdHlwZSA9PSBCbHVyU2hhZG93KSA/IG1fYmx1clJhZGl1cyAqIDIg
OiAwKTsKKyAgICAvLyBXZSBleHBhbmQgdGhlIGFyZWEgYnkgdGhlIGJsdXIgcmFkaXVzIHRvIGdp
dmUgZXh0cmEgc3BhY2UgZm9yIHRoZSBibHVyIHRyYW5zaXRpb24uCisgICAgbV9sYXllclJlY3Qu
aW5mbGF0ZSgobV90eXBlID09IEJsdXJTaGFkb3cpID8gbV9ibHVyRGlzdGFuY2UgOiAwKTsKIAog
ICAgIGlmICghY2xpcFJlY3QuY29udGFpbnMobV9sYXllclJlY3QpKSB7CiAgICAgICAgIC8vIE5v
IG5lZWQgdG8gaGF2ZSB0aGUgYnVmZmVyIGxhcmdlciB0aGFuIHRoZSBjbGlwLgpAQCAtMTY3LDcg
KzE2OCw3IEBAIHZvaWQgQ29udGV4dFNoYWRvdzo6Y2FsY3VsYXRlTGF5ZXJCb3VuZGluZ1JlY3Qo
Y29uc3QgRmxvYXRSZWN0JiBsYXllckFyZWEsIGNvbnN0CiAgICAgICAgIC8vIFdlIGFkanVzdCBh
Z2FpbiBiZWNhdXNlIHRoZSBwaXhlbHMgYXQgdGhlIGJvcmRlcnMgYXJlIHN0aWxsCiAgICAgICAg
IC8vIHBvdGVudGlhbGx5IGFmZmVjdGVkIGJ5IHRoZSBwaXhlbHMgb3V0c2lkZSB0aGUgYnVmZmVy
LgogICAgICAgICBpZiAobV90eXBlID09IEJsdXJTaGFkb3cpCi0gICAgICAgICAgICBtX2xheWVy
UmVjdC5pbmZsYXRlKChtX3R5cGUgPT0gQmx1clNoYWRvdykgPyBtX2JsdXJSYWRpdXMgKiAyIDog
MCk7CisgICAgICAgICAgICBtX2xheWVyUmVjdC5pbmZsYXRlKChtX3R5cGUgPT0gQmx1clNoYWRv
dykgPyBtX2JsdXJEaXN0YW5jZSA6IDApOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9Db250ZXh0U2hhZG93LmggYi9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0NvbnRleHRTaGFkb3cuaAppbmRleCBlZGU5MzM2Li4xNjQ4ZmU1IDEwMDY0NAotLS0g
YS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbnRleHRTaGFkb3cuaAorKysgYi9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0NvbnRleHRTaGFkb3cuaApAQCAtNjUsNyArNjUsNyBAQCBwdWJs
aWM6CiAgICAgfSBtX3R5cGU7CiAKICAgICBDb2xvciBtX2NvbG9yOwotICAgIGludCBtX2JsdXJS
YWRpdXM7CisgICAgaW50IG1fYmx1ckRpc3RhbmNlOwogICAgIEZsb2F0U2l6ZSBtX29mZnNldDsK
IAogICAgIENvbnRleHRTaGFkb3coKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvcXQvRm9udFF0LmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvRm9udFF0
LmNwcAppbmRleCBlNzU2NmViLi4zMjQ5ZjQ5IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3F0L0ZvbnRRdC5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9x
dC9Gb250UXQuY3BwCkBAIC0xMzcsNyArMTM3LDcgQEAgc3RhdGljIHZvaWQgZHJhd1RleHRDb21t
b24oR3JhcGhpY3NDb250ZXh0KiBjdHgsIGNvbnN0IFRleHRSdW4mIHJ1biwgY29uc3QgRmxvYXQK
ICAgICAgICAgICAgICAgICAgICAgZHkxID0gLWN0eFNoYWRvdy0+b2Zmc2V0KCkueSgpOwogICAg
ICAgICAgICAgICAgIC8vIGV4cGFuZCB0aGUgY2xpcCByZWN0IHRvIGluY2x1ZGUgdGhlIHRleHQg
c2hhZG93IGFzIHdlbGwKICAgICAgICAgICAgICAgICBjbGlwLmFkanVzdChkeDEsIGR4MiwgZHkx
LCBkeTIpOwotICAgICAgICAgICAgICAgIGNsaXAuYWRqdXN0KC1jdHhTaGFkb3ctPm1fYmx1clJh
ZGl1cywgLWN0eFNoYWRvdy0+bV9ibHVyUmFkaXVzLCBjdHhTaGFkb3ctPm1fYmx1clJhZGl1cywg
Y3R4U2hhZG93LT5tX2JsdXJSYWRpdXMpOworICAgICAgICAgICAgICAgIGNsaXAuYWRqdXN0KC1j
dHhTaGFkb3ctPm1fYmx1ckRpc3RhbmNlLCAtY3R4U2hhZG93LT5tX2JsdXJEaXN0YW5jZSwgY3R4
U2hhZG93LT5tX2JsdXJEaXN0YW5jZSwgY3R4U2hhZG93LT5tX0libHVyRGlzdGFuY2UpOwogICAg
ICAgICAgICAgfQogICAgICAgICAgICAgcC0+c2F2ZSgpOwogICAgICAgICAgICAgcC0+c2V0Q2xp
cFJlY3QoY2xpcC50b1JlY3QoKSwgUXQ6OkludGVyc2VjdENsaXApOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>69617</attachid>
            <date>2010-10-04 04:49:50 -0700</date>
            <delta_ts>2010-10-06 08:11:30 -0700</delta_ts>
            <desc>Proposed patch</desc>
            <filename>blur_distance.patch</filename>
            <type>text/plain</type>
            <size>4885</size>
            <attacher name="Alejandro G. Castro">alex</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ZDk2MDJkYS4uZTkxMDNlZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAxMC0xMC0wNCAgQWxlamFuZHJvIEcu
IENhc3RybyAgPGFsZXhAaWdhbGlhLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBDb250ZXh0U2hhZG93IHNob3VsZCBub3QgdXNlIHRoZSBibHVy
IHJhZGl1cyBhcyBrZXJuZWwgc2l6ZSBvZiB0aGUKKyAgICAgICAgYm94IGJsdXJzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NjkxOAorCisgICAgICAg
IENhbGN1bGF0ZSB0aGUgc2l6ZSBvZiB0aGUga2VybmVsIGluIHRoZSBibHVyIGFsZ29yaWh0bSB1
c2luZyB0aGUKKyAgICAgICAgcmFkaXVzIGluc3RlYWQgb2YgdXNpbmcgZGlyZWN0bHkuIENoYW5n
ZSB0aGUgbmFtZSBvZiB0aGUgdmFyaWFibGVzCisgICAgICAgIHVzaW5nIHRoZSBuYW1lcyBpbiB0
aGUgc3RhbmRhcmRzLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvQ29udGV4dFNoYWRv
dy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0U2hhZG93OjpDb250ZXh0U2hhZG93KToK
KyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRTaGFkb3c6OmNsZWFyKToKKyAgICAgICAgKFdlYkNv
cmU6OkNvbnRleHRTaGFkb3c6OmJsdXJMYXllckltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkNv
bnRleHRTaGFkb3c6OmNhbGN1bGF0ZUxheWVyQm91bmRpbmdSZWN0KToKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9Db250ZXh0U2hhZG93Lmg6CisKIDIwMTAtMTAtMDMgIEtlbnQgVGFtdXJh
ICA8dGtlbnRAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIGJ1aWxkIGZpeCBm
b3IgcjY4OTk2LgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db250ZXh0
U2hhZG93LmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29udGV4dFNoYWRvdy5jcHAK
aW5kZXggNTFkNzQ4Zi4uMjk5YWQzNiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9Db250ZXh0U2hhZG93LmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Nv
bnRleHRTaGFkb3cuY3BwCkBAIC0zOSwxOCArMzksMTggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
CiBDb250ZXh0U2hhZG93OjpDb250ZXh0U2hhZG93KCkKICAgICA6IG1fdHlwZShOb1NoYWRvdykK
LSAgICAsIG1fYmx1clJhZGl1cygwKQorICAgICwgbV9ibHVyRGlzdGFuY2UoMCkKIHsKIH0KIAog
Q29udGV4dFNoYWRvdzo6Q29udGV4dFNoYWRvdyhjb25zdCBDb2xvciYgY29sb3IsIGZsb2F0IHJh
ZGl1cywgY29uc3QgRmxvYXRTaXplJiBvZmZzZXQpCiAgICAgOiBtX2NvbG9yKGNvbG9yKQotICAg
ICwgbV9ibHVyUmFkaXVzKHJvdW5kKHJhZGl1cykpCisgICAgLCBtX2JsdXJEaXN0YW5jZShyb3Vu
ZChyYWRpdXMpKQogICAgICwgbV9vZmZzZXQob2Zmc2V0KQogewogICAgIC8vIFNlZSBjb21tZW50
cyBpbiBodHRwOi8vd2Via2l0Lm9yZy9iLzQwNzkzLCBpdCBzZWVtcyBzZW5zaWJsZQogICAgIC8v
IHRvIGZvbGxvdyBTa2lhJ3MgbGltaXQgb2YgMTI4IHBpeGVscyBvZiBibHVyIHJhZGl1cwotICAg
IG1fYmx1clJhZGl1cyA9IG1pbihtX2JsdXJSYWRpdXMsIDEyOCk7CisgICAgbV9ibHVyRGlzdGFu
Y2UgPSBtaW4obV9ibHVyRGlzdGFuY2UsIDEyOCk7CiAKICAgICAvLyBUaGUgdHlwZSBvZiBzaGFk
b3cgaXMgZGVjaWRlZCBieSB0aGUgYmx1ciByYWRpdXMsIHNoYWRvdyBvZmZzZXQsIGFuZCBzaGFk
b3cgY29sb3IuCiAgICAgaWYgKCFtX2NvbG9yLmlzVmFsaWQoKSB8fCAhY29sb3IuYWxwaGEoKSkg
ewpAQCAtNzEsNyArNzEsNyBAQCB2b2lkIENvbnRleHRTaGFkb3c6OmNsZWFyKCkKIHsKICAgICBt
X3R5cGUgPSBOb1NoYWRvdzsKICAgICBtX2NvbG9yID0gQ29sb3IoKTsKLSAgICBtX2JsdXJSYWRp
dXMgPSAwOworICAgIG1fYmx1ckRpc3RhbmNlID0gMDsKICAgICBtX29mZnNldCA9IEZsb2F0U2l6
ZSgpOwogfQogCkBAIC04NSw4ICs4NSw5IEBAIHN0YXRpYyBjb25zdCBpbnQgQmx1clN1bVNoaWZ0
ID0gMTU7CiB2b2lkIENvbnRleHRTaGFkb3c6OmJsdXJMYXllckltYWdlKHVuc2lnbmVkIGNoYXIq
IGltYWdlRGF0YSwgY29uc3QgSW50U2l6ZSYgc2l6ZSwgaW50IHJvd1N0cmlkZSkKIHsKICAgICBp
bnQgY2hhbm5lbHNbNF0gPSB7IDMsIDAsIDEsIDMgfTsKLSAgICBpbnQgZG1heCA9IG1fYmx1clJh
ZGl1cyA+PiAxOwotICAgIGludCBkbWluID0gZG1heCAtIDEgKyAobV9ibHVyUmFkaXVzICYgMSk7
CisgICAgdW5zaWduZWQgZCA9IG1heCgyLmYsICgyIC8gMy5mKSAqIG1fYmx1ckRpc3RhbmNlKTsK
KyAgICBpbnQgZG1heCA9IGQgPj4gMTsKKyAgICBpbnQgZG1pbiA9IGRtYXggLSAxICsgKGQgJiAx
KTsKICAgICBpZiAoZG1pbiA8IDApCiAgICAgICAgIGRtaW4gPSAwOwogCkBAIC0xNTMsOCArMTU0
LDggQEAgdm9pZCBDb250ZXh0U2hhZG93OjpjYWxjdWxhdGVMYXllckJvdW5kaW5nUmVjdChjb25z
dCBGbG9hdFJlY3QmIGxheWVyQXJlYSwgY29uc3QKICAgICBkZXN0aW5hdGlvblJlY3QubW92ZSht
X29mZnNldCk7CiAgICAgbV9sYXllclJlY3QgPSBlbmNsb3NpbmdJbnRSZWN0KGRlc3RpbmF0aW9u
UmVjdCk7CiAKLSAgICAvLyBXZSBleHBhbmQgdGhlIGFyZWEgYnkgdGhlIGJsdXIgcmFkaXVzICog
MiB0byBnaXZlIGV4dHJhIHNwYWNlIGZvciB0aGUgYmx1ciB0cmFuc2l0aW9uLgotICAgIG1fbGF5
ZXJSZWN0LmluZmxhdGUoKG1fdHlwZSA9PSBCbHVyU2hhZG93KSA/IG1fYmx1clJhZGl1cyAqIDIg
OiAwKTsKKyAgICAvLyBXZSBleHBhbmQgdGhlIGFyZWEgYnkgdGhlIGJsdXIgcmFkaXVzIHRvIGdp
dmUgZXh0cmEgc3BhY2UgZm9yIHRoZSBibHVyIHRyYW5zaXRpb24uCisgICAgbV9sYXllclJlY3Qu
aW5mbGF0ZSgobV90eXBlID09IEJsdXJTaGFkb3cpID8gbV9ibHVyRGlzdGFuY2UgOiAwKTsKIAog
ICAgIGlmICghY2xpcFJlY3QuY29udGFpbnMobV9sYXllclJlY3QpKSB7CiAgICAgICAgIC8vIE5v
IG5lZWQgdG8gaGF2ZSB0aGUgYnVmZmVyIGxhcmdlciB0aGFuIHRoZSBjbGlwLgpAQCAtMTY3LDcg
KzE2OCw3IEBAIHZvaWQgQ29udGV4dFNoYWRvdzo6Y2FsY3VsYXRlTGF5ZXJCb3VuZGluZ1JlY3Qo
Y29uc3QgRmxvYXRSZWN0JiBsYXllckFyZWEsIGNvbnN0CiAgICAgICAgIC8vIFdlIGFkanVzdCBh
Z2FpbiBiZWNhdXNlIHRoZSBwaXhlbHMgYXQgdGhlIGJvcmRlcnMgYXJlIHN0aWxsCiAgICAgICAg
IC8vIHBvdGVudGlhbGx5IGFmZmVjdGVkIGJ5IHRoZSBwaXhlbHMgb3V0c2lkZSB0aGUgYnVmZmVy
LgogICAgICAgICBpZiAobV90eXBlID09IEJsdXJTaGFkb3cpCi0gICAgICAgICAgICBtX2xheWVy
UmVjdC5pbmZsYXRlKChtX3R5cGUgPT0gQmx1clNoYWRvdykgPyBtX2JsdXJSYWRpdXMgKiAyIDog
MCk7CisgICAgICAgICAgICBtX2xheWVyUmVjdC5pbmZsYXRlKChtX3R5cGUgPT0gQmx1clNoYWRv
dykgPyBtX2JsdXJEaXN0YW5jZSA6IDApOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9Db250ZXh0U2hhZG93LmggYi9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0NvbnRleHRTaGFkb3cuaAppbmRleCBlZGU5MzM2Li4xNjQ4ZmU1IDEwMDY0NAotLS0g
YS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbnRleHRTaGFkb3cuaAorKysgYi9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0NvbnRleHRTaGFkb3cuaApAQCAtNjUsNyArNjUsNyBAQCBwdWJs
aWM6CiAgICAgfSBtX3R5cGU7CiAKICAgICBDb2xvciBtX2NvbG9yOwotICAgIGludCBtX2JsdXJS
YWRpdXM7CisgICAgaW50IG1fYmx1ckRpc3RhbmNlOwogICAgIEZsb2F0U2l6ZSBtX29mZnNldDsK
IAogICAgIENvbnRleHRTaGFkb3coKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvcXQvRm9udFF0LmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvRm9udFF0
LmNwcAppbmRleCBlNzU2NmViLi5iMDQ5MTgxIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3F0L0ZvbnRRdC5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9x
dC9Gb250UXQuY3BwCkBAIC0xMzcsNyArMTM3LDcgQEAgc3RhdGljIHZvaWQgZHJhd1RleHRDb21t
b24oR3JhcGhpY3NDb250ZXh0KiBjdHgsIGNvbnN0IFRleHRSdW4mIHJ1biwgY29uc3QgRmxvYXQK
ICAgICAgICAgICAgICAgICAgICAgZHkxID0gLWN0eFNoYWRvdy0+b2Zmc2V0KCkueSgpOwogICAg
ICAgICAgICAgICAgIC8vIGV4cGFuZCB0aGUgY2xpcCByZWN0IHRvIGluY2x1ZGUgdGhlIHRleHQg
c2hhZG93IGFzIHdlbGwKICAgICAgICAgICAgICAgICBjbGlwLmFkanVzdChkeDEsIGR4MiwgZHkx
LCBkeTIpOwotICAgICAgICAgICAgICAgIGNsaXAuYWRqdXN0KC1jdHhTaGFkb3ctPm1fYmx1clJh
ZGl1cywgLWN0eFNoYWRvdy0+bV9ibHVyUmFkaXVzLCBjdHhTaGFkb3ctPm1fYmx1clJhZGl1cywg
Y3R4U2hhZG93LT5tX2JsdXJSYWRpdXMpOworICAgICAgICAgICAgICAgIGNsaXAuYWRqdXN0KC1j
dHhTaGFkb3ctPm1fYmx1ckRpc3RhbmNlLCAtY3R4U2hhZG93LT5tX2JsdXJEaXN0YW5jZSwgY3R4
U2hhZG93LT5tX2JsdXJEaXN0YW5jZSwgY3R4U2hhZG93LT5tX2JsdXJEaXN0YW5jZSk7CiAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICBwLT5zYXZlKCk7CiAgICAgICAgICAgICBwLT5zZXRDbGlw
UmVjdChjbGlwLnRvUmVjdCgpLCBRdDo6SW50ZXJzZWN0Q2xpcCk7Cg==
</data>
<flag name="review"
          id="59329"
          type_id="1"
          status="-"
          setter="krit"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>69942</attachid>
            <date>2010-10-06 08:11:30 -0700</date>
            <delta_ts>2010-10-06 10:15:02 -0700</delta_ts>
            <desc>Proposed patch</desc>
            <filename>context_shadow_blur_distance.patch</filename>
            <type>text/plain</type>
            <size>9886</size>
            <attacher name="Alejandro G. Castro">alex</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ODVjMDNiMS4uMmJiZDczOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsNSArMSwyNCBAQAogMjAxMC0xMC0wNiAgQWxlamFuZHJvIEcu
IENhc3RybyAgPGFsZXhAaWdhbGlhLmNvbT4KIAorICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBDb250ZXh0U2hhZG93IHNob3VsZCBub3QgdXNlIHRoZSBibHVy
IHJhZGl1cyBhcyBrZXJuZWwgc2l6ZSBvZiB0aGUKKyAgICAgICAgYm94IGJsdXJzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NjkxOAorCisgICAgICAg
IENhbGN1bGF0ZSB0aGUgc2l6ZSBvZiB0aGUga2VybmVsIGluIHRoZSBibHVyIGFsZ29yaWh0bSB1
c2luZyB0aGUKKyAgICAgICAgcmFkaXVzIGluc3RlYWQgb2YgdXNpbmcgZGlyZWN0bHkuIENoYW5n
ZSB0aGUgbmFtZSBvZiB0aGUgdmFyaWFibGVzCisgICAgICAgIHVzaW5nIHRoZSBuYW1lcyBpbiB0
aGUgc3RhbmRhcmRzLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvQ29udGV4dFNoYWRv
dy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0U2hhZG93OjpDb250ZXh0U2hhZG93KToK
KyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRTaGFkb3c6OmNsZWFyKToKKyAgICAgICAgKFdlYkNv
cmU6OkNvbnRleHRTaGFkb3c6OmJsdXJMYXllckltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkNv
bnRleHRTaGFkb3c6OmNhbGN1bGF0ZUxheWVyQm91bmRpbmdSZWN0KToKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9Db250ZXh0U2hhZG93Lmg6CisKKzIwMTAtMTAtMDYgIEFsZWphbmRybyBH
LiBDYXN0cm8gIDxhbGV4QGlnYWxpYS5jb20+CisKICAgICAgICAgUmV2aWV3ZWQgYnkgRGlyayBT
Y2h1bHplLgogCiAgICAgICAgIEZpeGVkIGNyYXNoIGluIGd0ayBib3RzIChmaWx0ZXItZW1wdHkt
Zy5zdmcpIGFmdGVyIHI2OTE4MS4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvQ29udGV4dFNoYWRvdy5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbnRleHRT
aGFkb3cuY3BwCmluZGV4IDUxZDc0OGYuLjc5ODAzYjAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvQ29udGV4dFNoYWRvdy5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9Db250ZXh0U2hhZG93LmNwcApAQCAtMzksMTggKzM5LDE4IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogQ29udGV4dFNoYWRvdzo6Q29udGV4dFNoYWRvdygpCiAgICAgOiBtX3R5cGUo
Tm9TaGFkb3cpCi0gICAgLCBtX2JsdXJSYWRpdXMoMCkKKyAgICAsIG1fYmx1ckRpc3RhbmNlKDAp
CiB7CiB9CiAKIENvbnRleHRTaGFkb3c6OkNvbnRleHRTaGFkb3coY29uc3QgQ29sb3ImIGNvbG9y
LCBmbG9hdCByYWRpdXMsIGNvbnN0IEZsb2F0U2l6ZSYgb2Zmc2V0KQogICAgIDogbV9jb2xvcihj
b2xvcikKLSAgICAsIG1fYmx1clJhZGl1cyhyb3VuZChyYWRpdXMpKQorICAgICwgbV9ibHVyRGlz
dGFuY2Uocm91bmQocmFkaXVzKSkKICAgICAsIG1fb2Zmc2V0KG9mZnNldCkKIHsKICAgICAvLyBT
ZWUgY29tbWVudHMgaW4gaHR0cDovL3dlYmtpdC5vcmcvYi80MDc5MywgaXQgc2VlbXMgc2Vuc2li
bGUKICAgICAvLyB0byBmb2xsb3cgU2tpYSdzIGxpbWl0IG9mIDEyOCBwaXhlbHMgb2YgYmx1ciBy
YWRpdXMKLSAgICBtX2JsdXJSYWRpdXMgPSBtaW4obV9ibHVyUmFkaXVzLCAxMjgpOworICAgIG1f
Ymx1ckRpc3RhbmNlID0gbWluKG1fYmx1ckRpc3RhbmNlLCAxMjgpOwogCiAgICAgLy8gVGhlIHR5
cGUgb2Ygc2hhZG93IGlzIGRlY2lkZWQgYnkgdGhlIGJsdXIgcmFkaXVzLCBzaGFkb3cgb2Zmc2V0
LCBhbmQgc2hhZG93IGNvbG9yLgogICAgIGlmICghbV9jb2xvci5pc1ZhbGlkKCkgfHwgIWNvbG9y
LmFscGhhKCkpIHsKQEAgLTcxLDcgKzcxLDcgQEAgdm9pZCBDb250ZXh0U2hhZG93OjpjbGVhcigp
CiB7CiAgICAgbV90eXBlID0gTm9TaGFkb3c7CiAgICAgbV9jb2xvciA9IENvbG9yKCk7Ci0gICAg
bV9ibHVyUmFkaXVzID0gMDsKKyAgICBtX2JsdXJEaXN0YW5jZSA9IDA7CiAgICAgbV9vZmZzZXQg
PSBGbG9hdFNpemUoKTsKIH0KIApAQCAtODUsOCArODUsOSBAQCBzdGF0aWMgY29uc3QgaW50IEJs
dXJTdW1TaGlmdCA9IDE1Owogdm9pZCBDb250ZXh0U2hhZG93OjpibHVyTGF5ZXJJbWFnZSh1bnNp
Z25lZCBjaGFyKiBpbWFnZURhdGEsIGNvbnN0IEludFNpemUmIHNpemUsIGludCByb3dTdHJpZGUp
CiB7CiAgICAgaW50IGNoYW5uZWxzWzRdID0geyAzLCAwLCAxLCAzIH07Ci0gICAgaW50IGRtYXgg
PSBtX2JsdXJSYWRpdXMgPj4gMTsKLSAgICBpbnQgZG1pbiA9IGRtYXggLSAxICsgKG1fYmx1clJh
ZGl1cyAmIDEpOworICAgIGludCBkID0gbWF4KDIsIHN0YXRpY19jYXN0PGludD4oZmxvb3JmKCgy
IC8gMy5mKSAqIG1fYmx1ckRpc3RhbmNlKSkpOworICAgIGludCBkbWF4ID0gZCA+PiAxOworICAg
IGludCBkbWluID0gZG1heCAtIDEgKyAoZCAmIDEpOwogICAgIGlmIChkbWluIDwgMCkKICAgICAg
ICAgZG1pbiA9IDA7CiAKQEAgLTE1Myw4ICsxNTQsOCBAQCB2b2lkIENvbnRleHRTaGFkb3c6OmNh
bGN1bGF0ZUxheWVyQm91bmRpbmdSZWN0KGNvbnN0IEZsb2F0UmVjdCYgbGF5ZXJBcmVhLCBjb25z
dAogICAgIGRlc3RpbmF0aW9uUmVjdC5tb3ZlKG1fb2Zmc2V0KTsKICAgICBtX2xheWVyUmVjdCA9
IGVuY2xvc2luZ0ludFJlY3QoZGVzdGluYXRpb25SZWN0KTsKIAotICAgIC8vIFdlIGV4cGFuZCB0
aGUgYXJlYSBieSB0aGUgYmx1ciByYWRpdXMgKiAyIHRvIGdpdmUgZXh0cmEgc3BhY2UgZm9yIHRo
ZSBibHVyIHRyYW5zaXRpb24uCi0gICAgbV9sYXllclJlY3QuaW5mbGF0ZSgobV90eXBlID09IEJs
dXJTaGFkb3cpID8gbV9ibHVyUmFkaXVzICogMiA6IDApOworICAgIC8vIFdlIGV4cGFuZCB0aGUg
YXJlYSBieSB0aGUgYmx1ciByYWRpdXMgdG8gZ2l2ZSBleHRyYSBzcGFjZSBmb3IgdGhlIGJsdXIg
dHJhbnNpdGlvbi4KKyAgICBtX2xheWVyUmVjdC5pbmZsYXRlKG1fdHlwZSA9PSBCbHVyU2hhZG93
ID8gbV9ibHVyRGlzdGFuY2UgOiAwKTsKIAogICAgIGlmICghY2xpcFJlY3QuY29udGFpbnMobV9s
YXllclJlY3QpKSB7CiAgICAgICAgIC8vIE5vIG5lZWQgdG8gaGF2ZSB0aGUgYnVmZmVyIGxhcmdl
ciB0aGFuIHRoZSBjbGlwLgpAQCAtMTY3LDcgKzE2OCw3IEBAIHZvaWQgQ29udGV4dFNoYWRvdzo6
Y2FsY3VsYXRlTGF5ZXJCb3VuZGluZ1JlY3QoY29uc3QgRmxvYXRSZWN0JiBsYXllckFyZWEsIGNv
bnN0CiAgICAgICAgIC8vIFdlIGFkanVzdCBhZ2FpbiBiZWNhdXNlIHRoZSBwaXhlbHMgYXQgdGhl
IGJvcmRlcnMgYXJlIHN0aWxsCiAgICAgICAgIC8vIHBvdGVudGlhbGx5IGFmZmVjdGVkIGJ5IHRo
ZSBwaXhlbHMgb3V0c2lkZSB0aGUgYnVmZmVyLgogICAgICAgICBpZiAobV90eXBlID09IEJsdXJT
aGFkb3cpCi0gICAgICAgICAgICBtX2xheWVyUmVjdC5pbmZsYXRlKChtX3R5cGUgPT0gQmx1clNo
YWRvdykgPyBtX2JsdXJSYWRpdXMgKiAyIDogMCk7CisgICAgICAgICAgICBtX2xheWVyUmVjdC5p
bmZsYXRlKG1fdHlwZSA9PSBCbHVyU2hhZG93ID8gbV9ibHVyRGlzdGFuY2UgOiAwKTsKICAgICB9
CiB9CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29udGV4dFNoYWRv
dy5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db250ZXh0U2hhZG93LmgKaW5kZXggMzM1
YWY4ZC4uYTM5NmNiZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db250
ZXh0U2hhZG93LmgKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db250ZXh0U2hhZG93
LmgKQEAgLTY2LDcgKzY2LDcgQEAgcHVibGljOgogICAgIH0gbV90eXBlOwogCiAgICAgQ29sb3Ig
bV9jb2xvcjsKLSAgICBpbnQgbV9ibHVyUmFkaXVzOworICAgIGludCBtX2JsdXJEaXN0YW5jZTsK
ICAgICBGbG9hdFNpemUgbV9vZmZzZXQ7CiAKICAgICBDb250ZXh0U2hhZG93KCk7CmRpZmYgLS1n
aXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0NvbnRleHRTaGFkb3dDYWlyby5j
cHAgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0NvbnRleHRTaGFkb3dDYWlyby5j
cHAKaW5kZXggMzEzMzA0MS4uNmY1YmUyOCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jYWlyby9Db250ZXh0U2hhZG93Q2Fpcm8uY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2Fpcm8vQ29udGV4dFNoYWRvd0NhaXJvLmNwcApAQCAtMTg3LDcgKzE4Nyw3
IEBAIHZvaWQgQ29udGV4dFNoYWRvdzo6ZHJhd1JlY3RTaGFkb3coR3JhcGhpY3NDb250ZXh0KiBj
b250ZXh0LCBjb25zdCBJbnRSZWN0JiByZWN0CiAKICAgICAvLyBkcmF3U2hhZG93ZWRSZWN0IHN0
aWxsIGRvZXMgbm90IHdvcmsgd2l0aCByb3RhdGlvbnMuCiAgICAgLy8gaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ1MDQyCi0gICAgZmxvYXQgcmFkaXVzVHdpY2UgPSBt
X2JsdXJSYWRpdXMgKiAyOworICAgIGZsb2F0IHJhZGl1c1R3aWNlID0gbV9ibHVyRGlzdGFuY2Ug
KiAyOwogICAgIGNhaXJvX3QqIGNyID0gY29udGV4dC0+cGxhdGZvcm1Db250ZXh0KCk7CiAgICAg
aWYgKCghY29udGV4dC0+Z2V0Q1RNKCkuaXNJZGVudGl0eU9yVHJhbnNsYXRpb25PckZsaXBwZWQo
KSkgfHwgKHJhZGl1c1R3aWNlID4gcmVjdC53aWR0aCgpKQogICAgICAgICB8fCAocmFkaXVzVHdp
Y2UgPiByZWN0LmhlaWdodCgpKSB8fCAobV90eXBlICE9IEJsdXJTaGFkb3cpKSB7CkBAIC0yMDAs
NyArMjAwLDcgQEAgdm9pZCBDb250ZXh0U2hhZG93OjpkcmF3UmVjdFNoYWRvdyhHcmFwaGljc0Nv
bnRleHQqIGNvbnRleHQsIGNvbnN0IEludFJlY3QmIHJlY3QKIAogICAgIC8vIERldGVybWluZSBk
aW1lbnNpb25zIG9mIHNoYWRvdyByZWN0LgogICAgIEZsb2F0UmVjdCBzaGFkb3dSZWN0ID0gRmxv
YXRSZWN0KHJlY3QubG9jYXRpb24oKSwgc2hhZG93QnVmZmVyU2l6ZSk7Ci0gICAgc2hhZG93UmVj
dC5tb3ZlKC0gbV9ibHVyUmFkaXVzLCAtIG1fYmx1clJhZGl1cyk7CisgICAgc2hhZG93UmVjdC5t
b3ZlKC0gbV9ibHVyRGlzdGFuY2UsIC0gbV9ibHVyRGlzdGFuY2UpOwogCiAgICAgLy8gU2l6ZSBv
ZiB0aGUgdGlsaW5nIHNpZGUuCiAgICAgaW50IHNpZGVUaWxlV2lkdGggPSAxOwpAQCAtMjM5LDcg
KzIzOSw3IEBAIHZvaWQgQ29udGV4dFNoYWRvdzo6ZHJhd1JlY3RTaGFkb3coR3JhcGhpY3NDb250
ZXh0KiBjb250ZXh0LCBjb25zdCBJbnRSZWN0JiByZWN0CiAgICAgY2Fpcm9fc2V0X29wZXJhdG9y
KG1fbGF5ZXJDb250ZXh0LCBDQUlST19PUEVSQVRPUl9PVkVSKTsKIAogICAgIC8vIERyYXcgdGhl
IHJlY3RhbmdsZS4KLSAgICBJbnRSZWN0IHRlbXBsYXRlUmVjdCA9IEludFJlY3QobV9ibHVyUmFk
aXVzLCBtX2JsdXJSYWRpdXMsIHNoYWRvd1RlbXBsYXRlU2l6ZS53aWR0aCgpIC0gcmFkaXVzVHdp
Y2UsIHNoYWRvd1RlbXBsYXRlU2l6ZS5oZWlnaHQoKSAtIHJhZGl1c1R3aWNlKTsKKyAgICBJbnRS
ZWN0IHRlbXBsYXRlUmVjdCA9IEludFJlY3QobV9ibHVyRGlzdGFuY2UsIG1fYmx1ckRpc3RhbmNl
LCBzaGFkb3dUZW1wbGF0ZVNpemUud2lkdGgoKSAtIHJhZGl1c1R3aWNlLCBzaGFkb3dUZW1wbGF0
ZVNpemUuaGVpZ2h0KCkgLSByYWRpdXNUd2ljZSk7CiAgICAgYXBwZW5kV2ViQ29yZVBhdGhUb0Nh
aXJvQ29udGV4dChtX2xheWVyQ29udGV4dCwgUGF0aDo6Y3JlYXRlUm91bmRlZFJlY3RhbmdsZSh0
ZW1wbGF0ZVJlY3QsIHRvcExlZnRSYWRpdXMsIHRvcFJpZ2h0UmFkaXVzLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgYm90dG9tTGVmdFJhZGl1cywgYm90dG9tUmlnaHRSYWRpdXMpKTsKIApAQCAt
Mjc1LDcgKzI3NSw3IEBAIHZvaWQgQ29udGV4dFNoYWRvdzo6ZHJhd1JlY3RTaGFkb3coR3JhcGhp
Y3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBJbnRSZWN0JiByZWN0CiAgICAgRmxvYXRSZWN0IHRp
bGVSZWN0ID0gRmxvYXRSZWN0KHJhZGl1c1R3aWNlICsgdG9wTGVmdFJhZGl1cy53aWR0aCgpLCAw
LCBzaWRlVGlsZVdpZHRoLCByYWRpdXNUd2ljZSk7CiAgICAgRmxvYXRSZWN0IGRlc3RSZWN0ID0g
dGlsZVJlY3Q7CiAgICAgZGVzdFJlY3QubW92ZShzaGFkb3dSZWN0LngoKSwgc2hhZG93UmVjdC55
KCkpOwotICAgIGRlc3RSZWN0LnNldFdpZHRoKHNoYWRvd1JlY3Qud2lkdGgoKSAtIHRvcExlZnRS
YWRpdXMud2lkdGgoKSAtIHRvcFJpZ2h0UmFkaXVzLndpZHRoKCkgLSBtX2JsdXJSYWRpdXMgKiA0
KTsKKyAgICBkZXN0UmVjdC5zZXRXaWR0aChzaGFkb3dSZWN0LndpZHRoKCkgLSB0b3BMZWZ0UmFk
aXVzLndpZHRoKCkgLSB0b3BSaWdodFJhZGl1cy53aWR0aCgpIC0gbV9ibHVyRGlzdGFuY2UgKiA0
KTsKICAgICBGbG9hdFBvaW50IHBoYXNlID0gZ2V0UGhhc2UoZGVzdFJlY3QsIHRpbGVSZWN0KTsK
ICAgICBBZmZpbmVUcmFuc2Zvcm0gcGF0dGVyblRyYW5zZm9ybTsKICAgICBwYXR0ZXJuVHJhbnNm
b3JtLm1ha2VJZGVudGl0eSgpOwpAQCAtMjg1LDcgKzI4NSw3IEBAIHZvaWQgQ29udGV4dFNoYWRv
dzo6ZHJhd1JlY3RTaGFkb3coR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBJbnRSZWN0
JiByZWN0CiAgICAgdGlsZVJlY3QgPSBGbG9hdFJlY3QocmFkaXVzVHdpY2UgKyBib3R0b21MZWZ0
UmFkaXVzLndpZHRoKCksIHNoYWRvd1RlbXBsYXRlU2l6ZS5oZWlnaHQoKSAtIHJhZGl1c1R3aWNl
LCBzaWRlVGlsZVdpZHRoLCByYWRpdXNUd2ljZSk7CiAgICAgZGVzdFJlY3QgPSB0aWxlUmVjdDsK
ICAgICBkZXN0UmVjdC5tb3ZlKHNoYWRvd1JlY3QueCgpLCBzaGFkb3dSZWN0LnkoKSArIHJhZGl1
c1R3aWNlICsgcmVjdC5oZWlnaHQoKSAtIHNoYWRvd1RlbXBsYXRlU2l6ZS5oZWlnaHQoKSk7Ci0g
ICAgZGVzdFJlY3Quc2V0V2lkdGgoc2hhZG93UmVjdC53aWR0aCgpIC0gYm90dG9tTGVmdFJhZGl1
cy53aWR0aCgpIC0gYm90dG9tUmlnaHRSYWRpdXMud2lkdGgoKSAtIG1fYmx1clJhZGl1cyAqIDQp
OworICAgIGRlc3RSZWN0LnNldFdpZHRoKHNoYWRvd1JlY3Qud2lkdGgoKSAtIGJvdHRvbUxlZnRS
YWRpdXMud2lkdGgoKSAtIGJvdHRvbVJpZ2h0UmFkaXVzLndpZHRoKCkgLSBtX2JsdXJEaXN0YW5j
ZSAqIDQpOwogICAgIHBoYXNlID0gZ2V0UGhhc2UoZGVzdFJlY3QsIHRpbGVSZWN0KTsKICAgICBk
cmF3UGF0dGVyblRvQ2Fpcm9Db250ZXh0KGNyLCBtX2xheWVySW1hZ2UsIHNoYWRvd1RlbXBsYXRl
U2l6ZSwgdGlsZVJlY3QsIHBhdHRlcm5UcmFuc2Zvcm0sIHBoYXNlLCBDQUlST19PUEVSQVRPUl9P
VkVSLCBkZXN0UmVjdCk7CiAKQEAgLTI5Myw3ICsyOTMsNyBAQCB2b2lkIENvbnRleHRTaGFkb3c6
OmRyYXdSZWN0U2hhZG93KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgSW50UmVjdCYg
cmVjdAogICAgIHRpbGVSZWN0ID0gRmxvYXRSZWN0KHNoYWRvd1RlbXBsYXRlU2l6ZS53aWR0aCgp
IC0gcmFkaXVzVHdpY2UsIHJhZGl1c1R3aWNlICsgdG9wUmlnaHRSYWRpdXMuaGVpZ2h0KCksIHJh
ZGl1c1R3aWNlLCBzaWRlVGlsZVdpZHRoKTsKICAgICBkZXN0UmVjdCA9IHRpbGVSZWN0OwogICAg
IGRlc3RSZWN0Lm1vdmUoc2hhZG93UmVjdC54KCkgKyByYWRpdXNUd2ljZSArIHJlY3Qud2lkdGgo
KSAtIHNoYWRvd1RlbXBsYXRlU2l6ZS53aWR0aCgpLCBzaGFkb3dSZWN0LnkoKSk7Ci0gICAgZGVz
dFJlY3Quc2V0SGVpZ2h0KHNoYWRvd1JlY3QuaGVpZ2h0KCkgLSB0b3BSaWdodFJhZGl1cy5oZWln
aHQoKSAtIGJvdHRvbVJpZ2h0UmFkaXVzLmhlaWdodCgpIC0gbV9ibHVyUmFkaXVzICogNCk7Cisg
ICAgZGVzdFJlY3Quc2V0SGVpZ2h0KHNoYWRvd1JlY3QuaGVpZ2h0KCkgLSB0b3BSaWdodFJhZGl1
cy5oZWlnaHQoKSAtIGJvdHRvbVJpZ2h0UmFkaXVzLmhlaWdodCgpIC0gbV9ibHVyRGlzdGFuY2Ug
KiA0KTsKICAgICBwaGFzZSA9IGdldFBoYXNlKGRlc3RSZWN0LCB0aWxlUmVjdCk7CiAgICAgZHJh
d1BhdHRlcm5Ub0NhaXJvQ29udGV4dChjciwgbV9sYXllckltYWdlLCBzaGFkb3dUZW1wbGF0ZVNp
emUsIHRpbGVSZWN0LCBwYXR0ZXJuVHJhbnNmb3JtLCBwaGFzZSwgQ0FJUk9fT1BFUkFUT1JfT1ZF
UiwgZGVzdFJlY3QpOwogCkBAIC0zMDEsNyArMzAxLDcgQEAgdm9pZCBDb250ZXh0U2hhZG93Ojpk
cmF3UmVjdFNoYWRvdyhHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IEludFJlY3QmIHJl
Y3QKICAgICB0aWxlUmVjdCA9IEZsb2F0UmVjdCgwLCByYWRpdXNUd2ljZSArIHRvcExlZnRSYWRp
dXMuaGVpZ2h0KCksIHJhZGl1c1R3aWNlLCBzaWRlVGlsZVdpZHRoKTsKICAgICBkZXN0UmVjdCA9
IHRpbGVSZWN0OwogICAgIGRlc3RSZWN0Lm1vdmUoc2hhZG93UmVjdC54KCksIHNoYWRvd1JlY3Qu
eSgpKTsKLSAgICBkZXN0UmVjdC5zZXRIZWlnaHQoc2hhZG93UmVjdC5oZWlnaHQoKSAtIHRvcExl
ZnRSYWRpdXMuaGVpZ2h0KCkgLSBib3R0b21MZWZ0UmFkaXVzLmhlaWdodCgpIC0gbV9ibHVyUmFk
aXVzICogNCk7CisgICAgZGVzdFJlY3Quc2V0SGVpZ2h0KHNoYWRvd1JlY3QuaGVpZ2h0KCkgLSB0
b3BMZWZ0UmFkaXVzLmhlaWdodCgpIC0gYm90dG9tTGVmdFJhZGl1cy5oZWlnaHQoKSAtIG1fYmx1
ckRpc3RhbmNlICogNCk7CiAgICAgcGhhc2UgPSBGbG9hdFBvaW50KGRlc3RSZWN0LngoKSAtIHRp
bGVSZWN0LngoKSwgZGVzdFJlY3QueSgpIC0gdGlsZVJlY3QueSgpKTsKICAgICBkcmF3UGF0dGVy
blRvQ2Fpcm9Db250ZXh0KGNyLCBtX2xheWVySW1hZ2UsIHNoYWRvd1RlbXBsYXRlU2l6ZSwgdGls
ZVJlY3QsIHBhdHRlcm5UcmFuc2Zvcm0sIHBoYXNlLCBDQUlST19PUEVSQVRPUl9PVkVSLCBkZXN0
UmVjdCk7CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvRm9udFF0
LmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvRm9udFF0LmNwcAppbmRleCBlNzU2
NmViLi5iMDQ5MTgxIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0Zv
bnRRdC5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9Gb250UXQuY3BwCkBA
IC0xMzcsNyArMTM3LDcgQEAgc3RhdGljIHZvaWQgZHJhd1RleHRDb21tb24oR3JhcGhpY3NDb250
ZXh0KiBjdHgsIGNvbnN0IFRleHRSdW4mIHJ1biwgY29uc3QgRmxvYXQKICAgICAgICAgICAgICAg
ICAgICAgZHkxID0gLWN0eFNoYWRvdy0+b2Zmc2V0KCkueSgpOwogICAgICAgICAgICAgICAgIC8v
IGV4cGFuZCB0aGUgY2xpcCByZWN0IHRvIGluY2x1ZGUgdGhlIHRleHQgc2hhZG93IGFzIHdlbGwK
ICAgICAgICAgICAgICAgICBjbGlwLmFkanVzdChkeDEsIGR4MiwgZHkxLCBkeTIpOwotICAgICAg
ICAgICAgICAgIGNsaXAuYWRqdXN0KC1jdHhTaGFkb3ctPm1fYmx1clJhZGl1cywgLWN0eFNoYWRv
dy0+bV9ibHVyUmFkaXVzLCBjdHhTaGFkb3ctPm1fYmx1clJhZGl1cywgY3R4U2hhZG93LT5tX2Js
dXJSYWRpdXMpOworICAgICAgICAgICAgICAgIGNsaXAuYWRqdXN0KC1jdHhTaGFkb3ctPm1fYmx1
ckRpc3RhbmNlLCAtY3R4U2hhZG93LT5tX2JsdXJEaXN0YW5jZSwgY3R4U2hhZG93LT5tX2JsdXJE
aXN0YW5jZSwgY3R4U2hhZG93LT5tX2JsdXJEaXN0YW5jZSk7CiAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICBwLT5zYXZlKCk7CiAgICAgICAgICAgICBwLT5zZXRDbGlwUmVjdChjbGlwLnRvUmVj
dCgpLCBRdDo6SW50ZXJzZWN0Q2xpcCk7Cg==
</data>
<flag name="review"
          id="59709"
          type_id="1"
          status="+"
          setter="krit"
    />
          </attachment>
      

    </bug>

</bugzilla>