<?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>24227</bug_id>
          
          <creation_ts>2009-02-27 09:28:03 -0800</creation_ts>
          <short_desc>Implement checkForSolidColor in ImageQt.cpp</short_desc>
          <delta_ts>2009-03-02 07:37:22 -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>Images</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>All</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="Adam Treat">manyoso</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>111447</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Treat">manyoso</who>
    <bug_when>2009-02-27 09:28:03 -0800</bug_when>
    <thetext>Hi,

The mac port has a nifty optimization for 1x1 images.  It simply converts any painting of such into a fill of a solid color.  The following patch implements this for the Qt port and also enables it for drawTiled as well which results in dropping a 1x1 background image from taking ~50ms to ~0ms on my system.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>111448</commentid>
    <comment_count>1</comment_count>
      <attachid>28075</attachid>
    <who name="Adam Treat">manyoso</who>
    <bug_when>2009-02-27 09:28:55 -0800</bug_when>
    <thetext>Created attachment 28075
Implement</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>111456</commentid>
    <comment_count>2</comment_count>
      <attachid>28075</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-02-27 09:59:22 -0800</bug_when>
    <thetext>Comment on attachment 28075
Implement

LGTM</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>111517</commentid>
    <comment_count>3</comment_count>
      <attachid>28097</attachid>
    <who name="Adam Treat">manyoso</who>
    <bug_when>2009-02-27 12:09:27 -0800</bug_when>
    <thetext>Created attachment 28097
Implements the Qt version and also fixes a bug in x-platform version

I&apos;ve since noticed that the x-platform version of drawPattern tries to use this optimization, but does so incorrectly.  This version fixes that so that the optimization always works when valid.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>111521</commentid>
    <comment_count>4</comment_count>
      <attachid>28097</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-02-27 12:16:49 -0800</bug_when>
    <thetext>Comment on attachment 28097
Implements the Qt version and also fixes a bug in x-platform version

if (!m_checkedForSolidColor) checkForSolidColor(); should be two lines.  Otherwise looks good.

You shoudl add an ASSERT to mayFillWithSolidColor() and explain somewhere why this works with images which are not loaded yet.  Perhaps in teh header next to checkForSolidColor() // this shoudl check regardless of whether m_checkedForSolidColor is set, as the frame may have changed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>111527</commentid>
    <comment_count>5</comment_count>
      <attachid>28100</attachid>
    <who name="Adam Treat">manyoso</who>
    <bug_when>2009-02-27 12:30:14 -0800</bug_when>
    <thetext>Created attachment 28100
Adds some comments and asserts</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>111529</commentid>
    <comment_count>6</comment_count>
    <who name="Adam Treat">manyoso</who>
    <bug_when>2009-02-27 12:43:09 -0800</bug_when>
    <thetext>Landed with r41295.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>111554</commentid>
    <comment_count>7</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2009-02-27 14:47:02 -0800</bug_when>
    <thetext>I had to back this out because it lead to assertions in the mac port.

0x0000000101378136 in WebCore::BitmapImage::mayFillWithSolidColor (this=0x11bc56050) at BitmapImage.h:218
218	            ASSERT(m_haveFrameCount);
(gdb) bt
#0  0x0000000101378136 in WebCore::BitmapImage::mayFillWithSolidColor (this=0x11bc56050) at BitmapImage.h:218
#1  0x0000000101708e4e in WebCore::Image::drawTiled (this=0x11bc56050, ctxt=0x7fff5fbfb9b0, destRect=@0x7fff5fbfa950, srcPoint=@0x7fff5fbfa970, scaledTileSize=@0x7fff5fbfa960, op=WebCore::CompositeSourceOver) at /Volumes/Shared/Source/WebKit/OpenSource/WebCore/platform/graphics/Image.cpp:109
#2  0x0000000101662f1a in WebCore::GraphicsContext::drawTiledImage (this=0x7fff5fbfb9b0, image=0x11bc56050, rect=@0x7fff5fbfaa30, srcPoint=@0x7fff5fbfab10, tileSize=@0x7fff5fbfab00, op=WebCore::CompositeSourceOver) at /Volumes/Shared/Source/WebKit/OpenSource/WebCore/platform/graphics/GraphicsContext.cpp:449
#3  0x00000001019b9cd6 in WebCore::RenderBoxModelObject::paintFillLayerExtended (this=0x1174dade8, paintInfo=@0x7fff5fbfb130, c=@0x11bcb8a80, bgLayer=0x11bcb8a58, clipY=250, clipH=231, tx=14, ty=250, w=236, h=231, box=0x0, op=WebCore::CompositeSourceOver) at /Volumes/Shared/Source/WebKit/OpenSource/WebCore/rendering/RenderBoxModelObject.cpp:354
#4  0x00000001019a65f2 in WebCore::RenderBox::paintFillLayer (this=0x1174dade8, paintInfo=@0x7fff5fbfb130, c=@0x11bcb8a80, fillLayer=0x11bcb8a58, clipY=250, clipH=231, tx=14, ty=250, width=236, height=231, op=WebCore::CompositeSourceOver) at /Volumes/Shared/Source/WebKit/OpenSource/WebCore/rendering/RenderBox.cpp:762
#5  0x00000001019a66c8 in WebCore::RenderBox::paintFillLayers (this=0x1174dade8, paintInfo=@0x7fff5fbfb130, c=@0x11bcb8a80, fillLayer=0x11bcb8a58, clipY=250, clipH=231, tx=14, ty=250, width=236, height=231, op=WebCore::CompositeSourceOver) at /Volumes/Shared/Source/WebKit/OpenSource/WebCore/rendering/RenderBox.cpp:756
#6  0x00000001019b080b in WebCore::RenderBox::paintBoxDecorations (this=0x1174dade8, paintInfo=@0x7fff5fbfb130, tx=14, ty=250) at /Volumes/Shared/Source/WebKit/OpenSource/WebCore/rendering/RenderBox.cpp:671
#7  0x000000010199060b in WebCore::RenderBlock::paintObject (this=0x1174dade8, paintInfo=@0x7fff5fbfb130, tx=14, ty=250) at /Volumes/Shared/Source/WebKit/OpenSource/WebCore/rendering/RenderBlock.cpp:1748
#8  0x000000010198bf46 in WebCore::RenderBlock::paint (this=0x1174dade8, paintInfo=@0x7fff5fbfb130, tx=14, ty=250) at /Volumes/Shared/Source/WebKit/OpenSource/WebCore/rendering/RenderBlock.cpp:1578
#9  0x00000001019e0f04 in WebCore::RenderLayer::paintLayer (this=0x1174daec8, rootLayer=0x1066a1078, p=0x7fff5fbfb9b0, paintDirtyRect=@0x7fff5fbfb9a0, haveTransparency=false, paintRestriction=WebCore::PaintRestrictionNone, paintingRoot=0x0, appliedTransform=false, temporaryClipRects=false) at /Volumes/Shared/Source/WebKit/OpenSource/WebCore/rendering/RenderLayer.cpp:1955
#10 0x00000001019e1381 in WebCore::RenderLayer::paintLayer (this=0x1066d1848, rootLayer=0x1066a1078, p=0x7fff5fbfb9b0, paintDirtyRect=@0x7fff5fbfb9a0, haveTransparency=false, paintRestriction=WebCore::PaintRestrictionNone, paintingRoot=0x0, appliedTransform=false, temporaryClipRects=false) at /Volumes/Shared/Source/WebKit/OpenSource/WebCore/rendering/RenderLayer.cpp:2009
#11 0x00000001019e1381 in WebCore::RenderLayer::paintLayer (this=0x1066a1078, rootLayer=0x1066a1078, p=0x7fff5fbfb9b0, paintDirtyRect=@0x7fff5fbfb9a0, haveTransparency=false, paintRestriction=WebCore::PaintRestrictionNone, paintingRoot=0x0, appliedTransform=false, temporaryClipRects=false) at /Volumes/Shared/Source/WebKit/OpenSource/WebCore/rendering/RenderLayer.cpp:2009
#12 0x00000001019e1567 in WebCore::RenderLayer::paint (this=0x1066a1078, p=0x7fff5fbfb9b0, damageRect=@0x7fff5fbfb9a0, paintRestriction=WebCore::PaintRestrictionNone, paintingRoot=0x0) at /Volumes/Shared/Source/WebKit/OpenSource/WebCore/rendering/RenderLayer.cpp:1818
#13 0x000000010164d6d6 in WebCore::FrameView::paintContents (this=0x1073540f0, p=0x7fff5fbfb9b0, rect=@0x7fff5fbfb9a0) at /Volumes/Shared/Source/WebKit/OpenSource/WebCore/page/FrameView.cpp:1226
#14 0x00000001009e8aab in -[WebFrame(WebInternal) _drawRect:contentsOnly:] (self=0x1073443b0, _cmd=0x7fff84c4cc8e, rect={origin = {x = 0, y = 0}, size = {width = 1009, height = 1011}}, contentsOnly=1 &apos;\001&apos;) at /Volumes/Shared/Source/WebKit/OpenSource/WebKit/mac/WebView/WebFrame.mm:575
#15 0x0000000100a0d3e0 in -[WebHTMLView drawSingleRect:] (self=0x1073534e0, _cmd=0x7fff8353b7c0, rect={origin = {x = 0, y = 0}, size = {width = 1009, height = 1011}}) at /Volumes/Shared/Source/WebKit/OpenSource/WebKit/mac/WebView/WebHTMLView.mm:3017
#16 0x0000000100a068e8 in -[WebHTMLView drawRect:] (self=0x1073534e0, _cmd=0x7fff87f1a490, rect={origin = {x = 0, y = 0}, size = {width = 1009, height = 1011}}) at /Volumes/Shared/Source/WebKit/OpenSource/WebKit/mac/WebView/WebHTMLView.mm:3060
#17 0x00007fff878f56ef in -[NSView _drawRect:clip:] ()
#18 0x00007fff878f4392 in -[NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:] ()
#19 0x0000000100a09b91 in -[WebHTMLView(WebPrivate) _recursiveDisplayAllDirtyWithLockFocus:visRect:] (self=0x1073534e0, _cmd=0x7fff87f1b064, needsLockFocus=1 &apos;\001&apos;, visRect={origin = {x = 0, y = 0}, size = {width = 1009, height = 1011}}) at /Volumes/Shared/Source/WebKit/OpenSource/WebKit/mac/WebView/WebHTMLView.mm:1307
#20 0x00007fff878f46fc in -[NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:] ()
#21 0x00007fff878f46fc in -[NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:] ()
#22 0x00007fff878f46fc in -[NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:] ()
#23 0x00007fff878f46fc in -[NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:] ()
#24 0x00007fff878f46fc in -[NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:] ()
#25 0x00007fff878f46fc in -[NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:] ()
#26 0x00007fff878f2b51 in -[NSView _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:] ()
#27 0x00007fff878f3a05 in -[NSView _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:] ()
#28 0x00007fff878f3a05 in -[NSView _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:] ()
#29 0x00007fff878f24b7 in -[NSThemeFrame _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:] ()
#30 0x00007fff878eecd4 in -[NSView _displayRectIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:] ()
#31 0x00007fff8783f142 in -[NSView displayIfNeeded] ()
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>111555</commentid>
    <comment_count>8</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2009-02-27 14:54:17 -0800</bug_when>
    <thetext>The assertion fires because you have to call frameCount() before m_haveFrameCount is true. Who&apos;d a thunk?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>111612</commentid>
    <comment_count>9</comment_count>
      <attachid>28100</attachid>
    <who name="Jan Alonzo">jmalonzo</who>
    <bug_when>2009-02-28 05:16:21 -0800</bug_when>
    <thetext>Comment on attachment 28100
Adds some comments and asserts

Hi Adam

&gt;      virtual void startAnimation(bool /*catchUpIfNecessary*/ = true) { }
&gt; diff --git a/WebCore/platform/graphics/cairo/ImageCairo.cpp b/WebCore/platform/graphics/cairo/ImageCairo.cpp
&gt; index 2850488..d4dd8ce 100644
&gt; --- a/WebCore/platform/graphics/cairo/ImageCairo.cpp
&gt; +++ b/WebCore/platform/graphics/cairo/ImageCairo.cpp
&gt; @@ -60,6 +60,7 @@ BitmapImage::BitmapImage(cairo_surface_t* surface, ImageObserver* observer)
&gt;      , m_repetitionCountStatus(Unknown)
&gt;      , m_repetitionsComplete(0)
&gt;      , m_isSolidColor(false)
&gt; +    , m_checkedForSolidColor(false)
&gt;      , m_animationFinished(true)
&gt;      , m_allDataReceived(true)
&gt;      , m_haveSize(true)

Should we also set m_checkedForSolidColor to true once BitmapImage::checkForSolidColor has been called for the Cairo port?

Without this it will trigger the assert in line 220 of BitmapImage.h

Thanks</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>111819</commentid>
    <comment_count>10</comment_count>
      <attachid>28172</attachid>
    <who name="Adam Treat">manyoso</who>
    <bug_when>2009-03-02 07:18:10 -0800</bug_when>
    <thetext>Created attachment 28172
New version that removes wrong assert

It seems the assert is bogus since it is set immediately if &apos;frameCount()&apos; is called which it is inside of &apos;checkForSolidColor&apos; so I removed it.  Also, I made sure the Cairo version sets the m_checkedForSolidColor flag as it was overlooked.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>111822</commentid>
    <comment_count>11</comment_count>
      <attachid>28172</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2009-03-02 07:30:39 -0800</bug_when>
    <thetext>Comment on attachment 28172
New version that removes wrong assert

It&apos;s a shame to make mayFillWithSolidColor non-const. Can we make m_checkedForSolidColor mutable and make checkForSolidColor const, too?

r=me with the change you described to mayFillWithSolidColor on IRC.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>111823</commentid>
    <comment_count>12</comment_count>
    <who name="Adam Treat">manyoso</who>
    <bug_when>2009-03-02 07:37:22 -0800</bug_when>
    <thetext>Landed again with r41358.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>28075</attachid>
            <date>2009-02-27 09:28:55 -0800</date>
            <delta_ts>2009-02-27 12:09:27 -0800</delta_ts>
            <desc>Implement</desc>
            <filename>checkForSolidColor.patch</filename>
            <type>text/plain</type>
            <size>2270</size>
            <attacher name="Adam Treat">manyoso</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MzFjZTYyMy4uZGFjOTdjYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAwOS0wMi0yNyAgQWRhbSBUcmVhdCAg
PGFkYW0udHJlYXRAdG9yY2htb2JpbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCB0aGUgY2hlY2tGb3JTb2xpZENvbG9yKCkg
b3B0aW1pemF0aW9uIGZvciB0aGUgUXQgcG9ydC4gIFRoaXMKKyAgICAgICAgaXMgcGFydGljdWxh
cmx5IHVzZWZ1bCBmb3IgYmFja2dyb3VuZCBpbWFnZXMgb2YgYSAxeDEgc2l6ZS4gIFRoaXMgc3Bl
ZWRzCisgICAgICAgIHVwIHBhaW50aW5nIG9mIHN1Y2ggYSB0aWxlZCBiYWNrZ3JvdW5kIGZyb20g
fjUwbXMgdG8gfjBtcyBvbiBteSBzeXN0ZW0uCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9xdC9JbWFnZVF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlOjpkcmF3UGF0dGVybik6
CisgICAgICAgIChXZWJDb3JlOjpCaXRtYXBJbWFnZTo6Y2hlY2tGb3JTb2xpZENvbG9yKToKKwog
MjAwOS0wMi0yNyAgWmFjayBSdXNpbiAgPHphY2tAa2RlLm9yZz4KIAogICAgICAgICBSZXZpZXdl
ZCBieSBOaWtvbGFzIFppbW1lcm1hbm4uCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3F0L0ltYWdlUXQuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9JbWFn
ZVF0LmNwcAppbmRleCBiOWFmNTdiLi4xN2RjMDc2IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3F0L0ltYWdlUXQuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvcXQvSW1hZ2VRdC5jcHAKQEAgLTIsNiArMiw3IEBACiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYg
RGlyayBNdWVsbGVyIDxtdWVsbGVyQGtkZS5vcmc+CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYgWmFj
ayBSdXNpbiA8emFja0BrZGUub3JnPgogICogQ29weXJpZ2h0IChDKSAyMDA2IFNpbW9uIEhhdXNt
YW5uIDxoYXVzbWFubkBrZGUub3JnPgorICogQ29weXJpZ2h0IChDKSAyMDA5IFRvcmNoIE1vYmls
ZSBJbmMuIGh0dHA6Ly93d3cudG9yY2htb2JpbGUuY29tLwogICoKICAqIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKgpAQCAtMTAwLDYgKzEwMSwxMSBAQCB2b2lkIEltYWdlOjpkcmF3UGF0dGVybihH
cmFwaGljc0NvbnRleHQqIGN0eHQsIGNvbnN0IEZsb2F0UmVjdCYgdGlsZVJlY3QsIGNvbnN0CiAg
ICAgaWYgKCFmcmFtZVBpeG1hcCkgLy8gSWYgaXQncyB0b28gZWFybHkgd2Ugd29uJ3QgaGF2ZSBh
biBpbWFnZSB5ZXQuCiAgICAgICAgIHJldHVybjsKIAorICAgaWYgKG1heUZpbGxXaXRoU29saWRD
b2xvcigpKSB7CisgICAgICAgIGZpbGxXaXRoU29saWRDb2xvcihjdHh0LCBkZXN0UmVjdCwgc29s
aWRDb2xvcigpLCBvcCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBRUGl4bWFwIHBp
eG1hcCA9ICpmcmFtZVBpeG1hcDsKICAgICBRUmVjdCB0ciA9IFFSZWN0Rih0aWxlUmVjdCkudG9S
ZWN0KCk7CiAgICAgaWYgKHRyLngoKSB8fCB0ci55KCkgfHwgdHIud2lkdGgoKSAhPSBwaXhtYXAu
d2lkdGgoKSB8fCB0ci5oZWlnaHQoKSAhPSBwaXhtYXAuaGVpZ2h0KCkpIHsKQEAgLTE1Nyw4ICsx
NjMsMTcgQEAgdm9pZCBCaXRtYXBJbWFnZTo6ZHJhdyhHcmFwaGljc0NvbnRleHQqIGN0eHQsIGNv
bnN0IEZsb2F0UmVjdCYgZHN0LAogCiB2b2lkIEJpdG1hcEltYWdlOjpjaGVja0ZvclNvbGlkQ29s
b3IoKQogewotICAgIC8vIEZJWE1FOiBJdCdzIGVhc3kgdG8gaW1wbGVtZW50IHRoaXMgb3B0aW1p
emF0aW9uLiBKdXN0IG5lZWQgdG8gY2hlY2sgdGhlIFJHQkEzMiBidWZmZXIgdG8gc2VlIGlmIGl0
IGlzIDF4MS4KICAgICBtX2lzU29saWRDb2xvciA9IGZhbHNlOworCisgICAgaWYgKGZyYW1lQ291
bnQoKSA+IDEpCisgICAgICAgIHJldHVybjsKKworICAgIFFQaXhtYXAqIGZyYW1lUGl4bWFwID0g
ZnJhbWVBdEluZGV4KDApOworICAgIGlmICghZnJhbWVQaXhtYXAgfHwgZnJhbWVQaXhtYXAtPndp
ZHRoKCkgIT0gMSB8fCBmcmFtZVBpeG1hcC0+aGVpZ2h0KCkgIT0gMSkKKyAgICAgICAgcmV0dXJu
OworCisgICAgbV9pc1NvbGlkQ29sb3IgPSB0cnVlOworICAgIG1fc29saWRDb2xvciA9IFFDb2xv
cihmcmFtZVBpeG1hcC0+dG9JbWFnZSgpLnBpeGVsKDAsIDApKTsKIH0KIAogfQo=
</data>
<flag name="review"
          id="13699"
          type_id="1"
          status="+"
          setter="eric"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>28097</attachid>
            <date>2009-02-27 12:09:27 -0800</date>
            <delta_ts>2009-02-27 12:30:14 -0800</delta_ts>
            <desc>Implements the Qt version and also fixes a bug in x-platform version</desc>
            <filename>checkForSolidColor.patch</filename>
            <type>text/plain</type>
            <size>7400</size>
            <attacher name="Adam Treat">manyoso</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MzFjZTYyMy4uNDhkMDFhYyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNSBAQAorMjAwOS0wMi0yNyAgQWRhbSBUcmVhdCAg
PGFkYW0udHJlYXRAdG9yY2htb2JpbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yNDIyNworICAgICAgICBFbnN1cmUgdGhhdCB0aGUgY2hlY2tGb3JTb2xpZENvbG9yKCkg
b3B0aW1pemF0aW9uIGlzIGNvcnJlY3RseSB0cmlnZ2VyZWQKKyAgICAgICAgZm9yIGFsbCBjYXNl
cyBvZiBkcmF3UGF0dGVybi4gIEN1cnJlbnRseSwgdGhlIG9wdGltaXphdGlvbiB3YXMgbm90IHRy
aWdnZXJlZAorICAgICAgICB3aGVuIHRoZSBjaGVjayBoYWQgbm90IGJlZW4gcHJldmlvdXNseSBw
ZXJmb3JtZWQgdmlhIGEgcmVxdWVzdCBmb3IgdGhlCisgICAgICAgIGltYWdlJ3MgTmF0aXZlSW1h
Z2VQdHIuCisKKyAgICAgICAgSW1wbGVtZW50IHRoZSBRdCB2ZXJzaW9uIG9mIHRoZSBjaGVja0Zv
clNvbGlkQ29sb3IoKSBtZXRob2QuICBDb21iaW5lZCB3aXRoCisgICAgICAgIHRoZSBidWcgZml4
IHRoaXMgcmVkdWNlcyB0aGUgdGltZSBpdCB0YWtlcyB0byBkcmF3IGEgcmVwZWF0aW5nIGJhY2tn
cm91bmQKKyAgICAgICAgb2YgYSAxeDEgaW1hZ2UgZnJvbSB+NTBtc2VjcyB0byB+MG1zZWNzIG9u
IG15IG1hY2hpbmUuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpCaXRtYXBJbWFnZTo6Qml0bWFwSW1hZ2UpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmg6CisgICAgICAgIChXZWJDb3JlOjpC
aXRtYXBJbWFnZTo6bWF5RmlsbFdpdGhTb2xpZENvbG9yKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9JbWFnZS5oOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2U6Om1heUZpbGxXaXRoU29s
aWRDb2xvcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VDYWlyby5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpCaXRtYXBJbWFnZTo6Qml0bWFwSW1hZ2UpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQ0cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Qml0bWFwSW1hZ2U6OkJpdG1hcEltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcEltYWdl
OjpjaGVja0ZvclNvbGlkQ29sb3IpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3F0L0lt
YWdlUXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Qml0bWFwSW1hZ2U6OmNoZWNrRm9yU29saWRD
b2xvcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9JbWFnZVNraWEuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Qml0bWFwSW1hZ2U6OmNoZWNrRm9yU29saWRDb2xvcik6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd3gvSW1hZ2VXeC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpCaXRtYXBJbWFnZTo6Y2hlY2tGb3JTb2xpZENvbG9yKToKKwogMjAwOS0wMi0yNyAgWmFjayBS
dXNpbiAgPHphY2tAa2RlLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBOaWtvbGFzIFppbW1l
cm1hbm4uCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdl
LmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuY3BwCmluZGV4IDQ1
YjMyYWIuLjdhMzJlZDIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0
bWFwSW1hZ2UuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2Uu
Y3BwCkBAIC01Myw2ICs1Myw3IEBAIEJpdG1hcEltYWdlOjpCaXRtYXBJbWFnZShJbWFnZU9ic2Vy
dmVyKiBvYnNlcnZlcikKICAgICAsIG1fcmVwZXRpdGlvbnNDb21wbGV0ZSgwKQogICAgICwgbV9k
ZXNpcmVkRnJhbWVTdGFydFRpbWUoMCkKICAgICAsIG1faXNTb2xpZENvbG9yKGZhbHNlKQorICAg
ICwgbV9jaGVja2VkRm9yU29saWRDb2xvcihmYWxzZSkKICAgICAsIG1fYW5pbWF0aW9uRmluaXNo
ZWQoZmFsc2UpCiAgICAgLCBtX2FsbERhdGFSZWNlaXZlZChmYWxzZSkKICAgICAsIG1faGF2ZVNp
emUoZmFsc2UpCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcElt
YWdlLmggYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmgKaW5kZXggNmYw
MjZhOS4uNmYxNGE1ZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRt
YXBJbWFnZS5oCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuaApA
QCAtMjEwLDcgKzIxMCwxMSBAQCBwcm90ZWN0ZWQ6CiAgICAgLy8gQ2hlY2tzIHRvIHNlZSBpZiB0
aGUgaW1hZ2UgaXMgYSAxeDEgc29saWQgY29sb3IuICBXZSBvcHRpbWl6ZSB0aGVzZSBpbWFnZXMg
YW5kIGp1c3QgZG8gYSBmaWxsIHJlY3QgaW5zdGVhZC4KICAgICB2b2lkIGNoZWNrRm9yU29saWRD
b2xvcigpOwogICAgIAotICAgIHZpcnR1YWwgYm9vbCBtYXlGaWxsV2l0aFNvbGlkQ29sb3IoKSBj
b25zdCB7IHJldHVybiBtX2lzU29saWRDb2xvciAmJiBtX2N1cnJlbnRGcmFtZSA9PSAwOyB9Cisg
ICAgdmlydHVhbCBib29sIG1heUZpbGxXaXRoU29saWRDb2xvcigpCisgICAgeworICAgICAgICBp
ZiAoIW1fY2hlY2tlZEZvclNvbGlkQ29sb3IpIGNoZWNrRm9yU29saWRDb2xvcigpOworICAgICAg
ICByZXR1cm4gbV9pc1NvbGlkQ29sb3IgJiYgbV9jdXJyZW50RnJhbWUgPT0gMDsKKyAgICB9CiAg
ICAgdmlydHVhbCBDb2xvciBzb2xpZENvbG9yKCkgY29uc3QgeyByZXR1cm4gbV9zb2xpZENvbG9y
OyB9CiAgICAgCiAgICAgSW1hZ2VTb3VyY2UgbV9zb3VyY2U7CkBAIC0yMzIsNiArMjM2LDcgQEAg
cHJvdGVjdGVkOgogCiAgICAgQ29sb3IgbV9zb2xpZENvbG9yOyAgLy8gSWYgd2UncmUgYSAxeDEg
c29saWQgY29sb3IsIHRoaXMgaXMgdGhlIGNvbG9yIHRvIHVzZSB0byBmaWxsLgogICAgIGJvb2wg
bV9pc1NvbGlkQ29sb3I7ICAvLyBXaGV0aGVyIG9yIG5vdCB3ZSBhcmUgYSAxeDEgc29saWQgaW1h
Z2UuCisgICAgYm9vbCBtX2NoZWNrZWRGb3JTb2xpZENvbG9yOyAvLyBXaGV0aGVyIHdlJ3ZlIGNo
ZWNrZWQgdGhlIGZyYW1lIGZvciBzb2xpZCBjb2xvci4KIAogICAgIGJvb2wgbV9hbmltYXRpb25G
aW5pc2hlZDsgIC8vIFdoZXRoZXIgb3Igbm90IHdlJ3ZlIGNvbXBsZXRlZCB0aGUgZW50aXJlIGFu
aW1hdGlvbi4KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZS5o
IGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZS5oCmluZGV4IGRkZDBhZjQuLmI4MzJi
ZTkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2UuaAorKysgYi9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlLmgKQEAgLTE1NSw3ICsxNTUsNyBAQCBwcm90
ZWN0ZWQ6CiAgICAgdm9pZCBkcmF3VGlsZWQoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgRmxvYXRS
ZWN0JiBkc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIFRpbGVSdWxlIGhSdWxlLCBU
aWxlUnVsZSB2UnVsZSwgQ29tcG9zaXRlT3BlcmF0b3IpOwogCiAgICAgLy8gU3VwcG9ydGluZyB0
aWxlZCBkcmF3aW5nCi0gICAgdmlydHVhbCBib29sIG1heUZpbGxXaXRoU29saWRDb2xvcigpIGNv
bnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBib29sIG1heUZpbGxXaXRoU29saWRD
b2xvcigpIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBDb2xvciBzb2xpZENvbG9yKCkg
Y29uc3QgeyByZXR1cm4gQ29sb3IoKTsgfQogICAgIAogICAgIHZpcnR1YWwgdm9pZCBzdGFydEFu
aW1hdGlvbihib29sIC8qY2F0Y2hVcElmTmVjZXNzYXJ5Ki8gPSB0cnVlKSB7IH0KZGlmZiAtLWdp
dCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VDYWlyby5jcHAgYi9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQ2Fpcm8uY3BwCmluZGV4IDI4NTA0ODgu
LmQ0ZGQ4Y2UgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1h
Z2VDYWlyby5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFnZUNh
aXJvLmNwcApAQCAtNjAsNiArNjAsNyBAQCBCaXRtYXBJbWFnZTo6Qml0bWFwSW1hZ2UoY2Fpcm9f
c3VyZmFjZV90KiBzdXJmYWNlLCBJbWFnZU9ic2VydmVyKiBvYnNlcnZlcikKICAgICAsIG1fcmVw
ZXRpdGlvbkNvdW50U3RhdHVzKFVua25vd24pCiAgICAgLCBtX3JlcGV0aXRpb25zQ29tcGxldGUo
MCkKICAgICAsIG1faXNTb2xpZENvbG9yKGZhbHNlKQorICAgICwgbV9jaGVja2VkRm9yU29saWRD
b2xvcihmYWxzZSkKICAgICAsIG1fYW5pbWF0aW9uRmluaXNoZWQodHJ1ZSkKICAgICAsIG1fYWxs
RGF0YVJlY2VpdmVkKHRydWUpCiAgICAgLCBtX2hhdmVTaXplKHRydWUpCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQ0cuY3BwIGIvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jZy9JbWFnZUNHLmNwcAppbmRleCAxM2M4YzA3Li5kYmYxZDg1IDEwMDY0NAot
LS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQ0cuY3BwCisrKyBiL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VDRy5jcHAKQEAgLTczLDYgKzczLDcgQEAgQml0
bWFwSW1hZ2U6OkJpdG1hcEltYWdlKENHSW1hZ2VSZWYgY2dJbWFnZSwgSW1hZ2VPYnNlcnZlciog
b2JzZXJ2ZXIpCiAgICAgLCBtX3JlcGV0aXRpb25Db3VudFN0YXR1cyhVbmtub3duKQogICAgICwg
bV9yZXBldGl0aW9uc0NvbXBsZXRlKDApCiAgICAgLCBtX2lzU29saWRDb2xvcihmYWxzZSkKKyAg
ICAsIG1fY2hlY2tlZEZvclNvbGlkQ29sb3IoZmFsc2UpCiAgICAgLCBtX2FuaW1hdGlvbkZpbmlz
aGVkKHRydWUpCiAgICAgLCBtX2FsbERhdGFSZWNlaXZlZCh0cnVlKQogICAgICwgbV9oYXZlU2l6
ZSh0cnVlKQpAQCAtOTksNiArMTAwLDcgQEAgQml0bWFwSW1hZ2U6OkJpdG1hcEltYWdlKENHSW1h
Z2VSZWYgY2dJbWFnZSwgSW1hZ2VPYnNlcnZlciogb2JzZXJ2ZXIpCiAKIHZvaWQgQml0bWFwSW1h
Z2U6OmNoZWNrRm9yU29saWRDb2xvcigpCiB7CisgICAgbV9jaGVja2VkRm9yU29saWRDb2xvciA9
IHRydWU7CiAgICAgaWYgKGZyYW1lQ291bnQoKSA+IDEpCiAgICAgICAgIG1faXNTb2xpZENvbG9y
ID0gZmFsc2U7CiAgICAgZWxzZSB7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3F0L0ltYWdlUXQuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9JbWFnZVF0
LmNwcAppbmRleCBiOWFmNTdiLi4wNmUzYTgxIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3F0L0ltYWdlUXQuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
cXQvSW1hZ2VRdC5jcHAKQEAgLTIsNiArMiw3IEBACiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYgRGly
ayBNdWVsbGVyIDxtdWVsbGVyQGtkZS5vcmc+CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYgWmFjayBS
dXNpbiA8emFja0BrZGUub3JnPgogICogQ29weXJpZ2h0IChDKSAyMDA2IFNpbW9uIEhhdXNtYW5u
IDxoYXVzbWFubkBrZGUub3JnPgorICogQ29weXJpZ2h0IChDKSAyMDA5IFRvcmNoIE1vYmlsZSBJ
bmMuIGh0dHA6Ly93d3cudG9yY2htb2JpbGUuY29tLwogICoKICAqIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKgpAQCAtMTU3LDggKzE1OCwxOCBAQCB2b2lkIEJpdG1hcEltYWdlOjpkcmF3KEdyYXBo
aWNzQ29udGV4dCogY3R4dCwgY29uc3QgRmxvYXRSZWN0JiBkc3QsCiAKIHZvaWQgQml0bWFwSW1h
Z2U6OmNoZWNrRm9yU29saWRDb2xvcigpCiB7Ci0gICAgLy8gRklYTUU6IEl0J3MgZWFzeSB0byBp
bXBsZW1lbnQgdGhpcyBvcHRpbWl6YXRpb24uIEp1c3QgbmVlZCB0byBjaGVjayB0aGUgUkdCQTMy
IGJ1ZmZlciB0byBzZWUgaWYgaXQgaXMgMXgxLgogICAgIG1faXNTb2xpZENvbG9yID0gZmFsc2U7
CisgICAgbV9jaGVja2VkRm9yU29saWRDb2xvciA9IHRydWU7CisKKyAgICBpZiAoZnJhbWVDb3Vu
dCgpID4gMSkKKyAgICAgICAgcmV0dXJuOworCisgICAgUVBpeG1hcCogZnJhbWVQaXhtYXAgPSBm
cmFtZUF0SW5kZXgoMCk7CisgICAgaWYgKCFmcmFtZVBpeG1hcCB8fCBmcmFtZVBpeG1hcC0+d2lk
dGgoKSAhPSAxIHx8IGZyYW1lUGl4bWFwLT5oZWlnaHQoKSAhPSAxKQorICAgICAgICByZXR1cm47
CisKKyAgICBtX2lzU29saWRDb2xvciA9IHRydWU7CisgICAgbV9zb2xpZENvbG9yID0gUUNvbG9y
KGZyYW1lUGl4bWFwLT50b0ltYWdlKCkucGl4ZWwoMCwgMCkpOwogfQogCiB9CmRpZmYgLS1naXQg
YS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvSW1hZ2VTa2lhLmNwcCBiL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9JbWFnZVNraWEuY3BwCmluZGV4IDExMjNmZTkuLmI4ZGQ5
MDQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9JbWFnZVNraWEu
Y3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9JbWFnZVNraWEuY3BwCkBA
IC00MDEsNiArNDAxLDcgQEAgdm9pZCBCaXRtYXBJbWFnZTo6aW52YWxpZGF0ZVBsYXRmb3JtRGF0
YSgpCiAKIHZvaWQgQml0bWFwSW1hZ2U6OmNoZWNrRm9yU29saWRDb2xvcigpCiB7CisgICAgbV9j
aGVja2VkRm9yU29saWRDb2xvciA9IHRydWU7CiB9CiAKIHZvaWQgQml0bWFwSW1hZ2U6OmRyYXco
R3JhcGhpY3NDb250ZXh0KiBjdHh0LCBjb25zdCBGbG9hdFJlY3QmIGRzdFJlY3QsCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3d4L0ltYWdlV3guY3BwIGIvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy93eC9JbWFnZVd4LmNwcAppbmRleCBlNTJlOWZmLi5lMWQ0MzVlIDEw
MDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3d4L0ltYWdlV3guY3BwCisrKyBi
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd3gvSW1hZ2VXeC5jcHAKQEAgLTIzNyw3ICsyMzcs
NyBAQCB2b2lkIEJpdG1hcEltYWdlOjpkcmF3UGF0dGVybihHcmFwaGljc0NvbnRleHQqIGN0eHQs
IGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgYwogCiB2b2lkIEJpdG1hcEltYWdlOjpjaGVja0Zv
clNvbGlkQ29sb3IoKQogewotCisgICAgbV9jaGVja2VkRm9yU29saWRDb2xvciA9IHRydWU7CiB9
CiAKIHZvaWQgQml0bWFwSW1hZ2U6OmludmFsaWRhdGVQbGF0Zm9ybURhdGEoKQo=
</data>
<flag name="review"
          id="13713"
          type_id="1"
          status="+"
          setter="eric"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>28100</attachid>
            <date>2009-02-27 12:30:14 -0800</date>
            <delta_ts>2009-03-02 07:18:10 -0800</delta_ts>
            <desc>Adds some comments and asserts</desc>
            <filename>checkForSolidColor.patch</filename>
            <type>text/plain</type>
            <size>7746</size>
            <attacher name="Adam Treat">manyoso</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
OTk2ZDQ2ZC4uODdiZWEzZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNSBAQAorMjAwOS0wMi0yNyAgQWRhbSBUcmVhdCAg
PGFkYW0udHJlYXRAdG9yY2htb2JpbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IEVyaWMg
U2VpZGVsIGFuZCBTaW1vbiBGcmFzZXIuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTI0MjI3CisgICAgICAgIEVuc3VyZSB0aGF0IHRoZSBjaGVja0Zv
clNvbGlkQ29sb3IoKSBvcHRpbWl6YXRpb24gaXMgY29ycmVjdGx5IHRyaWdnZXJlZAorICAgICAg
ICBmb3IgYWxsIGNhc2VzIG9mIGRyYXdQYXR0ZXJuLiAgQ3VycmVudGx5LCB0aGUgb3B0aW1pemF0
aW9uIHdhcyBub3QgdHJpZ2dlcmVkCisgICAgICAgIHdoZW4gdGhlIGNoZWNrIGhhZCBub3QgYmVl
biBwcmV2aW91c2x5IHBlcmZvcm1lZCB2aWEgYSByZXF1ZXN0IGZvciB0aGUKKyAgICAgICAgaW1h
Z2UncyBOYXRpdmVJbWFnZVB0ci4KKworICAgICAgICBJbXBsZW1lbnQgdGhlIFF0IHZlcnNpb24g
b2YgdGhlIGNoZWNrRm9yU29saWRDb2xvcigpIG1ldGhvZC4gIENvbWJpbmVkIHdpdGgKKyAgICAg
ICAgdGhlIGJ1ZyBmaXggdGhpcyByZWR1Y2VzIHRoZSB0aW1lIGl0IHRha2VzIHRvIGRyYXcgYSBy
ZXBlYXRpbmcgYmFja2dyb3VuZAorICAgICAgICBvZiBhIDF4MSBpbWFnZSBmcm9tIH41MG1zZWNz
IHRvIH4wbXNlY3Mgb24gbXkgbWFjaGluZS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L0JpdG1hcEltYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcEltYWdlOjpCaXRtYXBJ
bWFnZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OkJpdG1hcEltYWdlOjptYXlGaWxsV2l0aFNvbGlkQ29sb3IpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ltYWdlLmg6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZTo6
bWF5RmlsbFdpdGhTb2xpZENvbG9yKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYWly
by9JbWFnZUNhaXJvLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcEltYWdlOjpCaXRtYXBJ
bWFnZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VDRy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpCaXRtYXBJbWFnZTo6Qml0bWFwSW1hZ2UpOgorICAgICAgICAoV2ViQ29y
ZTo6Qml0bWFwSW1hZ2U6OmNoZWNrRm9yU29saWRDb2xvcik6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvcXQvSW1hZ2VRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCaXRtYXBJbWFnZTo6
Y2hlY2tGb3JTb2xpZENvbG9yKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9za2lhL0lt
YWdlU2tpYS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCaXRtYXBJbWFnZTo6Y2hlY2tGb3JTb2xp
ZENvbG9yKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93eC9JbWFnZVd4LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkJpdG1hcEltYWdlOjpjaGVja0ZvclNvbGlkQ29sb3IpOgorCiAyMDA5
LTAyLTI3ICBKaWFuIExpICA8amlhbmxpQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdl
ZCBieSBBbGV4ZXkgUHJvc2t1cnlha292LgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9CaXRtYXBJbWFnZS5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1h
cEltYWdlLmNwcAppbmRleCA0NWIzMmFiLi43YTMyZWQyIDEwMDY0NAotLS0gYS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0JpdG1hcEltYWdlLmNwcApAQCAtNTMsNiArNTMsNyBAQCBCaXRtYXBJbWFnZTo6Qml0
bWFwSW1hZ2UoSW1hZ2VPYnNlcnZlciogb2JzZXJ2ZXIpCiAgICAgLCBtX3JlcGV0aXRpb25zQ29t
cGxldGUoMCkKICAgICAsIG1fZGVzaXJlZEZyYW1lU3RhcnRUaW1lKDApCiAgICAgLCBtX2lzU29s
aWRDb2xvcihmYWxzZSkKKyAgICAsIG1fY2hlY2tlZEZvclNvbGlkQ29sb3IoZmFsc2UpCiAgICAg
LCBtX2FuaW1hdGlvbkZpbmlzaGVkKGZhbHNlKQogICAgICwgbV9hbGxEYXRhUmVjZWl2ZWQoZmFs
c2UpCiAgICAgLCBtX2hhdmVTaXplKGZhbHNlKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9CaXRtYXBJbWFnZS5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRt
YXBJbWFnZS5oCmluZGV4IDZmMDI2YTkuLmQyMjFmYjAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuaAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0JpdG1hcEltYWdlLmgKQEAgLTIwOCw5ICsyMDgsMTkgQEAgcHJvdGVjdGVkOgogICAgIHZv
aWQgaW52YWxpZGF0ZVBsYXRmb3JtRGF0YSgpOwogICAgIAogICAgIC8vIENoZWNrcyB0byBzZWUg
aWYgdGhlIGltYWdlIGlzIGEgMXgxIHNvbGlkIGNvbG9yLiAgV2Ugb3B0aW1pemUgdGhlc2UgaW1h
Z2VzIGFuZCBqdXN0IGRvIGEgZmlsbCByZWN0IGluc3RlYWQuCisgICAgLy8gVGhpcyBjaGVjayBz
aG91bGQgaGFwcGVuIHJlZ2FyZGxlc3Mgd2hldGhlciBtX2NoZWNrZWRGb3JTb2xpZENvbG9yIGlz
IGFscmVhZHkgc2V0LCBhcyB0aGUgZnJhbWUgbWF5IGhhdmUKKyAgICAvLyBjaGFuZ2VkLgogICAg
IHZvaWQgY2hlY2tGb3JTb2xpZENvbG9yKCk7CiAgICAgCi0gICAgdmlydHVhbCBib29sIG1heUZp
bGxXaXRoU29saWRDb2xvcigpIGNvbnN0IHsgcmV0dXJuIG1faXNTb2xpZENvbG9yICYmIG1fY3Vy
cmVudEZyYW1lID09IDA7IH0KKyAgICB2aXJ0dWFsIGJvb2wgbWF5RmlsbFdpdGhTb2xpZENvbG9y
KCkKKyAgICB7CisgICAgICAgIGlmICghbV9jaGVja2VkRm9yU29saWRDb2xvcikgeworICAgICAg
ICAgICAgQVNTRVJUKG1faGF2ZUZyYW1lQ291bnQpOyAvLyBUaGUgY2hlY2sgc2hvdWxkIGZhaWwg
aWYgZnJhbWVDb3VudCgpID4gMQorICAgICAgICAgICAgY2hlY2tGb3JTb2xpZENvbG9yKCk7Cisg
ICAgICAgICAgICBBU1NFUlQobV9jaGVja2VkRm9yU29saWRDb2xvcik7CisgICAgICAgIH0KKyAg
ICAgICAgcmV0dXJuIG1faXNTb2xpZENvbG9yICYmIG1fY3VycmVudEZyYW1lID09IDA7CisgICAg
fQogICAgIHZpcnR1YWwgQ29sb3Igc29saWRDb2xvcigpIGNvbnN0IHsgcmV0dXJuIG1fc29saWRD
b2xvcjsgfQogICAgIAogICAgIEltYWdlU291cmNlIG1fc291cmNlOwpAQCAtMjMyLDYgKzI0Miw3
IEBAIHByb3RlY3RlZDoKIAogICAgIENvbG9yIG1fc29saWRDb2xvcjsgIC8vIElmIHdlJ3JlIGEg
MXgxIHNvbGlkIGNvbG9yLCB0aGlzIGlzIHRoZSBjb2xvciB0byB1c2UgdG8gZmlsbC4KICAgICBi
b29sIG1faXNTb2xpZENvbG9yOyAgLy8gV2hldGhlciBvciBub3Qgd2UgYXJlIGEgMXgxIHNvbGlk
IGltYWdlLgorICAgIGJvb2wgbV9jaGVja2VkRm9yU29saWRDb2xvcjsgLy8gV2hldGhlciB3ZSd2
ZSBjaGVja2VkIHRoZSBmcmFtZSBmb3Igc29saWQgY29sb3IuCiAKICAgICBib29sIG1fYW5pbWF0
aW9uRmluaXNoZWQ7ICAvLyBXaGV0aGVyIG9yIG5vdCB3ZSd2ZSBjb21wbGV0ZWQgdGhlIGVudGly
ZSBhbmltYXRpb24uCiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1h
Z2UuaCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2UuaAppbmRleCBkZGQwYWY0Li5i
ODMyYmU5IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlLmgKKysr
IGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZS5oCkBAIC0xNTUsNyArMTU1LDcgQEAg
cHJvdGVjdGVkOgogICAgIHZvaWQgZHJhd1RpbGVkKEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEZs
b2F0UmVjdCYgZHN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBUaWxlUnVsZSBoUnVs
ZSwgVGlsZVJ1bGUgdlJ1bGUsIENvbXBvc2l0ZU9wZXJhdG9yKTsKIAogICAgIC8vIFN1cHBvcnRp
bmcgdGlsZWQgZHJhd2luZwotICAgIHZpcnR1YWwgYm9vbCBtYXlGaWxsV2l0aFNvbGlkQ29sb3Io
KSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgYm9vbCBtYXlGaWxsV2l0aFNv
bGlkQ29sb3IoKSB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgQ29sb3Igc29saWRDb2xv
cigpIGNvbnN0IHsgcmV0dXJuIENvbG9yKCk7IH0KICAgICAKICAgICB2aXJ0dWFsIHZvaWQgc3Rh
cnRBbmltYXRpb24oYm9vbCAvKmNhdGNoVXBJZk5lY2Vzc2FyeSovID0gdHJ1ZSkgeyB9CmRpZmYg
LS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQ2Fpcm8uY3BwIGIv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFnZUNhaXJvLmNwcAppbmRleCAyODUw
NDg4Li5kNGRkOGNlIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJv
L0ltYWdlQ2Fpcm8uY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1h
Z2VDYWlyby5jcHAKQEAgLTYwLDYgKzYwLDcgQEAgQml0bWFwSW1hZ2U6OkJpdG1hcEltYWdlKGNh
aXJvX3N1cmZhY2VfdCogc3VyZmFjZSwgSW1hZ2VPYnNlcnZlciogb2JzZXJ2ZXIpCiAgICAgLCBt
X3JlcGV0aXRpb25Db3VudFN0YXR1cyhVbmtub3duKQogICAgICwgbV9yZXBldGl0aW9uc0NvbXBs
ZXRlKDApCiAgICAgLCBtX2lzU29saWRDb2xvcihmYWxzZSkKKyAgICAsIG1fY2hlY2tlZEZvclNv
bGlkQ29sb3IoZmFsc2UpCiAgICAgLCBtX2FuaW1hdGlvbkZpbmlzaGVkKHRydWUpCiAgICAgLCBt
X2FsbERhdGFSZWNlaXZlZCh0cnVlKQogICAgICwgbV9oYXZlU2l6ZSh0cnVlKQpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUNHLmNwcCBiL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VDRy5jcHAKaW5kZXggMTNjOGMwNy4uZGJmMWQ4NSAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUNHLmNwcAorKysgYi9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQ0cuY3BwCkBAIC03Myw2ICs3Myw3IEBA
IEJpdG1hcEltYWdlOjpCaXRtYXBJbWFnZShDR0ltYWdlUmVmIGNnSW1hZ2UsIEltYWdlT2JzZXJ2
ZXIqIG9ic2VydmVyKQogICAgICwgbV9yZXBldGl0aW9uQ291bnRTdGF0dXMoVW5rbm93bikKICAg
ICAsIG1fcmVwZXRpdGlvbnNDb21wbGV0ZSgwKQogICAgICwgbV9pc1NvbGlkQ29sb3IoZmFsc2Up
CisgICAgLCBtX2NoZWNrZWRGb3JTb2xpZENvbG9yKGZhbHNlKQogICAgICwgbV9hbmltYXRpb25G
aW5pc2hlZCh0cnVlKQogICAgICwgbV9hbGxEYXRhUmVjZWl2ZWQodHJ1ZSkKICAgICAsIG1faGF2
ZVNpemUodHJ1ZSkKQEAgLTk5LDYgKzEwMCw3IEBAIEJpdG1hcEltYWdlOjpCaXRtYXBJbWFnZShD
R0ltYWdlUmVmIGNnSW1hZ2UsIEltYWdlT2JzZXJ2ZXIqIG9ic2VydmVyKQogCiB2b2lkIEJpdG1h
cEltYWdlOjpjaGVja0ZvclNvbGlkQ29sb3IoKQogeworICAgIG1fY2hlY2tlZEZvclNvbGlkQ29s
b3IgPSB0cnVlOwogICAgIGlmIChmcmFtZUNvdW50KCkgPiAxKQogICAgICAgICBtX2lzU29saWRD
b2xvciA9IGZhbHNlOwogICAgIGVsc2UgewpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9xdC9JbWFnZVF0LmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvSW1h
Z2VRdC5jcHAKaW5kZXggYjlhZjU3Yi4uMDZlM2E4MSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9xdC9JbWFnZVF0LmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3F0L0ltYWdlUXQuY3BwCkBAIC0yLDYgKzIsNyBAQAogICogQ29weXJpZ2h0IChDKSAyMDA2
IERpcmsgTXVlbGxlciA8bXVlbGxlckBrZGUub3JnPgogICogQ29weXJpZ2h0IChDKSAyMDA2IFph
Y2sgUnVzaW4gPHphY2tAa2RlLm9yZz4KICAqIENvcHlyaWdodCAoQykgMjAwNiBTaW1vbiBIYXVz
bWFubiA8aGF1c21hbm5Aa2RlLm9yZz4KKyAqIENvcHlyaWdodCAoQykgMjAwOSBUb3JjaCBNb2Jp
bGUgSW5jLiBodHRwOi8vd3d3LnRvcmNobW9iaWxlLmNvbS8KICAqCiAgKiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICoKQEAgLTE1Nyw4ICsxNTgsMTggQEAgdm9pZCBCaXRtYXBJbWFnZTo6ZHJhdyhH
cmFwaGljc0NvbnRleHQqIGN0eHQsIGNvbnN0IEZsb2F0UmVjdCYgZHN0LAogCiB2b2lkIEJpdG1h
cEltYWdlOjpjaGVja0ZvclNvbGlkQ29sb3IoKQogewotICAgIC8vIEZJWE1FOiBJdCdzIGVhc3kg
dG8gaW1wbGVtZW50IHRoaXMgb3B0aW1pemF0aW9uLiBKdXN0IG5lZWQgdG8gY2hlY2sgdGhlIFJH
QkEzMiBidWZmZXIgdG8gc2VlIGlmIGl0IGlzIDF4MS4KICAgICBtX2lzU29saWRDb2xvciA9IGZh
bHNlOworICAgIG1fY2hlY2tlZEZvclNvbGlkQ29sb3IgPSB0cnVlOworCisgICAgaWYgKGZyYW1l
Q291bnQoKSA+IDEpCisgICAgICAgIHJldHVybjsKKworICAgIFFQaXhtYXAqIGZyYW1lUGl4bWFw
ID0gZnJhbWVBdEluZGV4KDApOworICAgIGlmICghZnJhbWVQaXhtYXAgfHwgZnJhbWVQaXhtYXAt
PndpZHRoKCkgIT0gMSB8fCBmcmFtZVBpeG1hcC0+aGVpZ2h0KCkgIT0gMSkKKyAgICAgICAgcmV0
dXJuOworCisgICAgbV9pc1NvbGlkQ29sb3IgPSB0cnVlOworICAgIG1fc29saWRDb2xvciA9IFFD
b2xvcihmcmFtZVBpeG1hcC0+dG9JbWFnZSgpLnBpeGVsKDAsIDApKTsKIH0KIAogfQpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL0ltYWdlU2tpYS5jcHAgYi9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvSW1hZ2VTa2lhLmNwcAppbmRleCAzNTIwZThkLi42
Yjg3YzkxIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvSW1hZ2VT
a2lhLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvSW1hZ2VTa2lhLmNw
cApAQCAtNDAwLDYgKzQwMCw3IEBAIHZvaWQgQml0bWFwSW1hZ2U6OmludmFsaWRhdGVQbGF0Zm9y
bURhdGEoKQogCiB2b2lkIEJpdG1hcEltYWdlOjpjaGVja0ZvclNvbGlkQ29sb3IoKQogeworICAg
IG1fY2hlY2tlZEZvclNvbGlkQ29sb3IgPSB0cnVlOwogfQogCiB2b2lkIEJpdG1hcEltYWdlOjpk
cmF3KEdyYXBoaWNzQ29udGV4dCogY3R4dCwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LApkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93eC9JbWFnZVd4LmNwcCBiL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd3gvSW1hZ2VXeC5jcHAKaW5kZXggZTUyZTlmZi4uZTFkNDM1
ZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93eC9JbWFnZVd4LmNwcAor
KysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3d4L0ltYWdlV3guY3BwCkBAIC0yMzcsNyAr
MjM3LDcgQEAgdm9pZCBCaXRtYXBJbWFnZTo6ZHJhd1BhdHRlcm4oR3JhcGhpY3NDb250ZXh0KiBj
dHh0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGMKIAogdm9pZCBCaXRtYXBJbWFnZTo6Y2hl
Y2tGb3JTb2xpZENvbG9yKCkKIHsKLQorICAgIG1fY2hlY2tlZEZvclNvbGlkQ29sb3IgPSB0cnVl
OwogfQogCiB2b2lkIEJpdG1hcEltYWdlOjppbnZhbGlkYXRlUGxhdGZvcm1EYXRhKCkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>28172</attachid>
            <date>2009-03-02 07:18:10 -0800</date>
            <delta_ts>2009-03-02 07:30:39 -0800</delta_ts>
            <desc>New version that removes wrong assert</desc>
            <filename>checkForSolidColor.patch</filename>
            <type>text/plain</type>
            <size>7991</size>
            <attacher name="Adam Treat">manyoso</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
N2UyMjg0ZS4uNjdmNTEwZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNiBAQAorMjAwOS0wMy0wMiAgQWRhbSBUcmVhdCAg
PGFkYW0udHJlYXRAdG9yY2htb2JpbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUykuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTI0MjI3CisgICAgICAgIEVuc3VyZSB0aGF0IHRoZSBjaGVja0ZvclNvbGlkQ29sb3IoKSBv
cHRpbWl6YXRpb24gaXMgY29ycmVjdGx5IHRyaWdnZXJlZAorICAgICAgICBmb3IgYWxsIGNhc2Vz
IG9mIGRyYXdQYXR0ZXJuLiAgQ3VycmVudGx5LCB0aGUgb3B0aW1pemF0aW9uIHdhcyBub3QgdHJp
Z2dlcmVkCisgICAgICAgIHdoZW4gdGhlIGNoZWNrIGhhZCBub3QgYmVlbiBwcmV2aW91c2x5IHBl
cmZvcm1lZCB2aWEgYSByZXF1ZXN0IGZvciB0aGUKKyAgICAgICAgaW1hZ2UncyBOYXRpdmVJbWFn
ZVB0ci4KKworICAgICAgICBJbXBsZW1lbnQgdGhlIFF0IHZlcnNpb24gb2YgdGhlIGNoZWNrRm9y
U29saWRDb2xvcigpIG1ldGhvZC4gIENvbWJpbmVkIHdpdGgKKyAgICAgICAgdGhlIGJ1ZyBmaXgg
dGhpcyByZWR1Y2VzIHRoZSB0aW1lIGl0IHRha2VzIHRvIGRyYXcgYSByZXBlYXRpbmcgYmFja2dy
b3VuZAorICAgICAgICBvZiBhIDF4MSBpbWFnZSBmcm9tIH41MG1zZWNzIHRvIH4wbXNlY3Mgb24g
bXkgbWFjaGluZS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcEltYWdlOjpCaXRtYXBJbWFnZSk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OkJp
dG1hcEltYWdlOjptYXlGaWxsV2l0aFNvbGlkQ29sb3IpOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL0ltYWdlLmg6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZTo6bWF5RmlsbFdpdGhTb2xp
ZENvbG9yKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFnZUNhaXJvLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcEltYWdlOjpCaXRtYXBJbWFnZSk6CisgICAgICAg
IChXZWJDb3JlOjpCaXRtYXBJbWFnZTo6Y2hlY2tGb3JTb2xpZENvbG9yKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUNHLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1h
cEltYWdlOjpCaXRtYXBJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpCaXRtYXBJbWFnZTo6Y2hl
Y2tGb3JTb2xpZENvbG9yKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9xdC9JbWFnZVF0
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcEltYWdlOjpjaGVja0ZvclNvbGlkQ29sb3Ip
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3NraWEvSW1hZ2VTa2lhLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkJpdG1hcEltYWdlOjpjaGVja0ZvclNvbGlkQ29sb3IpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL3d4L0ltYWdlV3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6Qml0
bWFwSW1hZ2U6OmNoZWNrRm9yU29saWRDb2xvcik6CisKIDIwMDktMDMtMDIgIEd1c3Rhdm8gTm9y
b25oYSBTaWx2YSAgPGduc0Bnbm9tZS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCBidWlsZCBm
aXg7IGFkZGluZyBtaXNzaW5nIGZpbGVzIHRvIEVYVFJBX0RJU1QsIHNvIHRoYXQKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuY3BwIGIvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5jcHAKaW5kZXggNDViMzJhYi4uN2EzMmVkMiAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5jcHAKKysr
IGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5jcHAKQEAgLTUzLDYgKzUz
LDcgQEAgQml0bWFwSW1hZ2U6OkJpdG1hcEltYWdlKEltYWdlT2JzZXJ2ZXIqIG9ic2VydmVyKQog
ICAgICwgbV9yZXBldGl0aW9uc0NvbXBsZXRlKDApCiAgICAgLCBtX2Rlc2lyZWRGcmFtZVN0YXJ0
VGltZSgwKQogICAgICwgbV9pc1NvbGlkQ29sb3IoZmFsc2UpCisgICAgLCBtX2NoZWNrZWRGb3JT
b2xpZENvbG9yKGZhbHNlKQogICAgICwgbV9hbmltYXRpb25GaW5pc2hlZChmYWxzZSkKICAgICAs
IG1fYWxsRGF0YVJlY2VpdmVkKGZhbHNlKQogICAgICwgbV9oYXZlU2l6ZShmYWxzZSkKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuaCBiL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuaAppbmRleCA2ZjAyNmE5Li44MGVjZDA3IDEw
MDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmgKKysrIGIv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5oCkBAIC0yMDgsOSArMjA4LDE4
IEBAIHByb3RlY3RlZDoKICAgICB2b2lkIGludmFsaWRhdGVQbGF0Zm9ybURhdGEoKTsKICAgICAK
ICAgICAvLyBDaGVja3MgdG8gc2VlIGlmIHRoZSBpbWFnZSBpcyBhIDF4MSBzb2xpZCBjb2xvci4g
IFdlIG9wdGltaXplIHRoZXNlIGltYWdlcyBhbmQganVzdCBkbyBhIGZpbGwgcmVjdCBpbnN0ZWFk
LgorICAgIC8vIFRoaXMgY2hlY2sgc2hvdWxkIGhhcHBlbiByZWdhcmRsZXNzIHdoZXRoZXIgbV9j
aGVja2VkRm9yU29saWRDb2xvciBpcyBhbHJlYWR5IHNldCwgYXMgdGhlIGZyYW1lIG1heSBoYXZl
CisgICAgLy8gY2hhbmdlZC4KICAgICB2b2lkIGNoZWNrRm9yU29saWRDb2xvcigpOwogICAgIAot
ICAgIHZpcnR1YWwgYm9vbCBtYXlGaWxsV2l0aFNvbGlkQ29sb3IoKSBjb25zdCB7IHJldHVybiBt
X2lzU29saWRDb2xvciAmJiBtX2N1cnJlbnRGcmFtZSA9PSAwOyB9CisgICAgdmlydHVhbCBib29s
IG1heUZpbGxXaXRoU29saWRDb2xvcigpCisgICAgeworICAgICAgICBpZiAoIW1fY2hlY2tlZEZv
clNvbGlkQ29sb3IpIHsKKyAgICAgICAgICAgIGNoZWNrRm9yU29saWRDb2xvcigpOworICAgICAg
ICAgICAgQVNTRVJUKG1fY2hlY2tlZEZvclNvbGlkQ29sb3IpOworICAgICAgICB9CisgICAgICAg
IHJldHVybiBtX2lzU29saWRDb2xvciAmJiBtX2N1cnJlbnRGcmFtZSA9PSAwOworICAgIH0KICAg
ICB2aXJ0dWFsIENvbG9yIHNvbGlkQ29sb3IoKSBjb25zdCB7IHJldHVybiBtX3NvbGlkQ29sb3I7
IH0KICAgICAKICAgICBJbWFnZVNvdXJjZSBtX3NvdXJjZTsKQEAgLTIzMiw2ICsyNDEsNyBAQCBw
cm90ZWN0ZWQ6CiAKICAgICBDb2xvciBtX3NvbGlkQ29sb3I7ICAvLyBJZiB3ZSdyZSBhIDF4MSBz
b2xpZCBjb2xvciwgdGhpcyBpcyB0aGUgY29sb3IgdG8gdXNlIHRvIGZpbGwuCiAgICAgYm9vbCBt
X2lzU29saWRDb2xvcjsgIC8vIFdoZXRoZXIgb3Igbm90IHdlIGFyZSBhIDF4MSBzb2xpZCBpbWFn
ZS4KKyAgICBib29sIG1fY2hlY2tlZEZvclNvbGlkQ29sb3I7IC8vIFdoZXRoZXIgd2UndmUgY2hl
Y2tlZCB0aGUgZnJhbWUgZm9yIHNvbGlkIGNvbG9yLgogCiAgICAgYm9vbCBtX2FuaW1hdGlvbkZp
bmlzaGVkOyAgLy8gV2hldGhlciBvciBub3Qgd2UndmUgY29tcGxldGVkIHRoZSBlbnRpcmUgYW5p
bWF0aW9uLgogCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlLmgg
Yi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlLmgKaW5kZXggZGRkMGFmNC4uYjgzMmJl
OSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZS5oCisrKyBiL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2UuaApAQCAtMTU1LDcgKzE1NSw3IEBAIHByb3Rl
Y3RlZDoKICAgICB2b2lkIGRyYXdUaWxlZChHcmFwaGljc0NvbnRleHQqLCBjb25zdCBGbG9hdFJl
Y3QmIGRzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgVGlsZVJ1bGUgaFJ1bGUsIFRp
bGVSdWxlIHZSdWxlLCBDb21wb3NpdGVPcGVyYXRvcik7CiAKICAgICAvLyBTdXBwb3J0aW5nIHRp
bGVkIGRyYXdpbmcKLSAgICB2aXJ0dWFsIGJvb2wgbWF5RmlsbFdpdGhTb2xpZENvbG9yKCkgY29u
c3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgbWF5RmlsbFdpdGhTb2xpZENv
bG9yKCkgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIENvbG9yIHNvbGlkQ29sb3IoKSBj
b25zdCB7IHJldHVybiBDb2xvcigpOyB9CiAgICAgCiAgICAgdmlydHVhbCB2b2lkIHN0YXJ0QW5p
bWF0aW9uKGJvb2wgLypjYXRjaFVwSWZOZWNlc3NhcnkqLyA9IHRydWUpIHsgfQpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFnZUNhaXJvLmNwcCBiL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VDYWlyby5jcHAKaW5kZXggMjg1MDQ4OC4u
NmJmMWJjYyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFn
ZUNhaXJvLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQ2Fp
cm8uY3BwCkBAIC02MCw2ICs2MCw3IEBAIEJpdG1hcEltYWdlOjpCaXRtYXBJbWFnZShjYWlyb19z
dXJmYWNlX3QqIHN1cmZhY2UsIEltYWdlT2JzZXJ2ZXIqIG9ic2VydmVyKQogICAgICwgbV9yZXBl
dGl0aW9uQ291bnRTdGF0dXMoVW5rbm93bikKICAgICAsIG1fcmVwZXRpdGlvbnNDb21wbGV0ZSgw
KQogICAgICwgbV9pc1NvbGlkQ29sb3IoZmFsc2UpCisgICAgLCBtX2NoZWNrZWRGb3JTb2xpZENv
bG9yKGZhbHNlKQogICAgICwgbV9hbmltYXRpb25GaW5pc2hlZCh0cnVlKQogICAgICwgbV9hbGxE
YXRhUmVjZWl2ZWQodHJ1ZSkKICAgICAsIG1faGF2ZVNpemUodHJ1ZSkKQEAgLTE4Miw2ICsxODMs
NyBAQCB2b2lkIEJpdG1hcEltYWdlOjpjaGVja0ZvclNvbGlkQ29sb3IoKQogewogICAgIC8vIEZJ
WE1FOiBJdCdzIGVhc3kgdG8gaW1wbGVtZW50IHRoaXMgb3B0aW1pemF0aW9uLiBKdXN0IG5lZWQg
dG8gY2hlY2sgdGhlIFJHQkEzMiBidWZmZXIgdG8gc2VlIGlmIGl0IGlzIDF4MS4KICAgICBtX2lz
U29saWRDb2xvciA9IGZhbHNlOworICAgIG1fY2hlY2tlZEZvclNvbGlkQ29sb3IgPSB0cnVlOwog
fQogCiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQ0cu
Y3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUNHLmNwcAppbmRleCAxM2M4
YzA3Li5kYmYxZDg1IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0lt
YWdlQ0cuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VDRy5jcHAK
QEAgLTczLDYgKzczLDcgQEAgQml0bWFwSW1hZ2U6OkJpdG1hcEltYWdlKENHSW1hZ2VSZWYgY2dJ
bWFnZSwgSW1hZ2VPYnNlcnZlciogb2JzZXJ2ZXIpCiAgICAgLCBtX3JlcGV0aXRpb25Db3VudFN0
YXR1cyhVbmtub3duKQogICAgICwgbV9yZXBldGl0aW9uc0NvbXBsZXRlKDApCiAgICAgLCBtX2lz
U29saWRDb2xvcihmYWxzZSkKKyAgICAsIG1fY2hlY2tlZEZvclNvbGlkQ29sb3IoZmFsc2UpCiAg
ICAgLCBtX2FuaW1hdGlvbkZpbmlzaGVkKHRydWUpCiAgICAgLCBtX2FsbERhdGFSZWNlaXZlZCh0
cnVlKQogICAgICwgbV9oYXZlU2l6ZSh0cnVlKQpAQCAtOTksNiArMTAwLDcgQEAgQml0bWFwSW1h
Z2U6OkJpdG1hcEltYWdlKENHSW1hZ2VSZWYgY2dJbWFnZSwgSW1hZ2VPYnNlcnZlciogb2JzZXJ2
ZXIpCiAKIHZvaWQgQml0bWFwSW1hZ2U6OmNoZWNrRm9yU29saWRDb2xvcigpCiB7CisgICAgbV9j
aGVja2VkRm9yU29saWRDb2xvciA9IHRydWU7CiAgICAgaWYgKGZyYW1lQ291bnQoKSA+IDEpCiAg
ICAgICAgIG1faXNTb2xpZENvbG9yID0gZmFsc2U7CiAgICAgZWxzZSB7CmRpZmYgLS1naXQgYS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0ltYWdlUXQuY3BwIGIvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9xdC9JbWFnZVF0LmNwcAppbmRleCBmNzcyMThiLi41ODk4ZGFhIDEwMDY0NAot
LS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0ltYWdlUXQuY3BwCisrKyBiL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvSW1hZ2VRdC5jcHAKQEAgLTIsNiArMiw3IEBACiAgKiBD
b3B5cmlnaHQgKEMpIDIwMDYgRGlyayBNdWVsbGVyIDxtdWVsbGVyQGtkZS5vcmc+CiAgKiBDb3B5
cmlnaHQgKEMpIDIwMDYgWmFjayBSdXNpbiA8emFja0BrZGUub3JnPgogICogQ29weXJpZ2h0IChD
KSAyMDA2IFNpbW9uIEhhdXNtYW5uIDxoYXVzbWFubkBrZGUub3JnPgorICogQ29weXJpZ2h0IChD
KSAyMDA5IFRvcmNoIE1vYmlsZSBJbmMuIGh0dHA6Ly93d3cudG9yY2htb2JpbGUuY29tLwogICoK
ICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgpAQCAtMTYyLDggKzE2MywxOCBAQCB2b2lkIEJp
dG1hcEltYWdlOjpkcmF3KEdyYXBoaWNzQ29udGV4dCogY3R4dCwgY29uc3QgRmxvYXRSZWN0JiBk
c3QsCiAKIHZvaWQgQml0bWFwSW1hZ2U6OmNoZWNrRm9yU29saWRDb2xvcigpCiB7Ci0gICAgLy8g
RklYTUU6IEl0J3MgZWFzeSB0byBpbXBsZW1lbnQgdGhpcyBvcHRpbWl6YXRpb24uIEp1c3QgbmVl
ZCB0byBjaGVjayB0aGUgUkdCQTMyIGJ1ZmZlciB0byBzZWUgaWYgaXQgaXMgMXgxLgogICAgIG1f
aXNTb2xpZENvbG9yID0gZmFsc2U7CisgICAgbV9jaGVja2VkRm9yU29saWRDb2xvciA9IHRydWU7
CisKKyAgICBpZiAoZnJhbWVDb3VudCgpID4gMSkKKyAgICAgICAgcmV0dXJuOworCisgICAgUVBp
eG1hcCogZnJhbWVQaXhtYXAgPSBmcmFtZUF0SW5kZXgoMCk7CisgICAgaWYgKCFmcmFtZVBpeG1h
cCB8fCBmcmFtZVBpeG1hcC0+d2lkdGgoKSAhPSAxIHx8IGZyYW1lUGl4bWFwLT5oZWlnaHQoKSAh
PSAxKQorICAgICAgICByZXR1cm47CisKKyAgICBtX2lzU29saWRDb2xvciA9IHRydWU7CisgICAg
bV9zb2xpZENvbG9yID0gUUNvbG9yKGZyYW1lUGl4bWFwLT50b0ltYWdlKCkucGl4ZWwoMCwgMCkp
OwogfQogCiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvSW1h
Z2VTa2lhLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9JbWFnZVNraWEuY3Bw
CmluZGV4IDM1MjBlOGQuLjZiODdjOTEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvc2tpYS9JbWFnZVNraWEuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
c2tpYS9JbWFnZVNraWEuY3BwCkBAIC00MDAsNiArNDAwLDcgQEAgdm9pZCBCaXRtYXBJbWFnZTo6
aW52YWxpZGF0ZVBsYXRmb3JtRGF0YSgpCiAKIHZvaWQgQml0bWFwSW1hZ2U6OmNoZWNrRm9yU29s
aWRDb2xvcigpCiB7CisgICAgbV9jaGVja2VkRm9yU29saWRDb2xvciA9IHRydWU7CiB9CiAKIHZv
aWQgQml0bWFwSW1hZ2U6OmRyYXcoR3JhcGhpY3NDb250ZXh0KiBjdHh0LCBjb25zdCBGbG9hdFJl
Y3QmIGRzdFJlY3QsCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3d4L0lt
YWdlV3guY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93eC9JbWFnZVd4LmNwcAppbmRl
eCBlNTJlOWZmLi5lMWQ0MzVlIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3d4L0ltYWdlV3guY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd3gvSW1hZ2VX
eC5jcHAKQEAgLTIzNyw3ICsyMzcsNyBAQCB2b2lkIEJpdG1hcEltYWdlOjpkcmF3UGF0dGVybihH
cmFwaGljc0NvbnRleHQqIGN0eHQsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgYwogCiB2b2lk
IEJpdG1hcEltYWdlOjpjaGVja0ZvclNvbGlkQ29sb3IoKQogewotCisgICAgbV9jaGVja2VkRm9y
U29saWRDb2xvciA9IHRydWU7CiB9CiAKIHZvaWQgQml0bWFwSW1hZ2U6OmludmFsaWRhdGVQbGF0
Zm9ybURhdGEoKQo=
</data>
<flag name="review"
          id="13764"
          type_id="1"
          status="+"
          setter="aroben"
    />
          </attachment>
      

    </bug>

</bugzilla>