<?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>49840</bug_id>
          
          <creation_ts>2010-11-19 16:24:02 -0800</creation_ts>
          <short_desc>GraphicsContext: Make drawFocusRing() take a Path instead of a Vector&lt;Path&gt;</short_desc>
          <delta_ts>2010-11-22 07:53:00 -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>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</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="Andreas Kling">kling</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>eric</cc>
    
    <cc>zimmermann</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>311747</commentid>
    <comment_count>0</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2010-11-19 16:24:02 -0800</bug_when>
    <thetext>This method:
void drawFocusRing(const Vector&lt;Path&gt;&amp;, int width, int offset, const Color&amp;);

..is only ever used by RenderImage::paintFocusRings(), where a single Path is put into a Vector&lt;Path&gt; and passed to this function.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>311748</commentid>
    <comment_count>1</comment_count>
      <attachid>74440</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2010-11-19 16:29:30 -0800</bug_when>
    <thetext>Created attachment 74440
Proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>311776</commentid>
    <comment_count>2</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-11-19 17:36:06 -0800</bug_when>
    <thetext>Attachment 74440 did not build on mac:
Build output: http://queues.webkit.org/results/6184087</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>311814</commentid>
    <comment_count>3</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2010-11-19 18:53:47 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; Attachment 74440 [details] did not build on mac:
&gt; Build output: http://queues.webkit.org/results/6184087

/Users/kling/src/webkit/WebCore/platform/graphics/mac/GraphicsContextMac.mm:60: warning: unused parameter &apos;offset&apos;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>311839</commentid>
    <comment_count>4</comment_count>
      <attachid>74440</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2010-11-19 20:00:16 -0800</bug_when>
    <thetext>Comment on attachment 74440
Proposed patch

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

Almost there, I&apos;m just wondering about the need of the offset parameter used in drawFocusRing/drawFocusRect.
The parameter offset is used in GraphicsContextMac.mm, drawFocusRect, but not in drawFocusRing, that causes your mac build problem.

In GraphicsContextQt the parameter is unused as well, do we need it? We have two options:
a) if we need it, and ignore it for now, add a FIXME and file a bug about it.
b) use the parameter, cover its usage by a test, if it doesn&apos;t affect existing tets.

&gt; WebCore/platform/graphics/mac/GraphicsContextMac.mm:60
&gt; +void GraphicsContext::drawFocusRing(const Path&amp; path, int width, int offset, const Color&amp; color)

offset is unused causing the mac build error.

&gt; WebCore/platform/graphics/mac/GraphicsContextMac.mm:-66
&gt; -    offset += radius;

It built before, as offset was touched here, even if the code below doesn&apos;t use it.

&gt; WebCore/rendering/RenderImage.cpp:361
&gt; +        paintInfo.context-&gt;drawFocusRing(areaElement-&gt;getPath(this), style-&gt;outlineWidth(), style-&gt;outlineOffset(), style-&gt;visitedDependentColor(CSSPropertyOutlineColor));

Hm, the style-&gt;outlineOffset() parameter is passed to drawFocusRing. For example in GraphicsContextCG it remains unused, that&apos;s why your mac build failed according to EWS.
In GraphicsContextQt is&apos;s also unused. Can you identify whether we need this parameter? I guess we do, and current implementations just don&apos;t respect them.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>312021</commentid>
    <comment_count>5</comment_count>
      <attachid>74491</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2010-11-20 18:21:25 -0800</bug_when>
    <thetext>Created attachment 74491
Proposed patch

Fix warning about unused &quot;offset&quot; variables.
Added FIXMEs about it, will open a bug for that when this lands.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>312072</commentid>
    <comment_count>6</comment_count>
      <attachid>74491</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2010-11-21 05:13:39 -0800</bug_when>
    <thetext>Comment on attachment 74491
Proposed patch

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

&gt; WebCore/platform/graphics/mac/GraphicsContextMac.mm:62
&gt; +    // FIXME: Use &apos;offset&apos; for something?

Can you file a bug first, and reference the bug id here?

&gt; WebCore/platform/graphics/qt/GraphicsContextQt.cpp:805
&gt; +    // FIXME: Use &apos;width&apos; and &apos;offset&apos; for something?

Can you file a bug first, and reference the bug id here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>312341</commentid>
    <comment_count>7</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2010-11-22 07:53:00 -0800</bug_when>
    <thetext>Committed r72528: &lt;http://trac.webkit.org/changeset/72528&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>74440</attachid>
            <date>2010-11-19 16:29:30 -0800</date>
            <delta_ts>2010-11-20 18:21:25 -0800</delta_ts>
            <desc>Proposed patch</desc>
            <filename>bug-49840.diff</filename>
            <type>text/plain</type>
            <size>9800</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MTVkNGMyYy4uMGU1ZDEyNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMiBAQAorMjAxMC0xMS0xOSAgQW5kcmVhcyBLbGlu
ZyAgPGtsaW5nQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgR3JhcGhpY3NDb250ZXh0OiBNYWtlIGRyYXdGb2N1c1JpbmcoKSB0YWtl
IGEgUGF0aCBpbnN0ZWFkIG9mIGEgVmVjdG9yPFBhdGg+CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00OTg0MAorCisgICAgICAgIFRoaXMgYXZvaWQgY29w
eWluZyBhIFBhdGggb2JqZWN0IHdoZW4gZHJhd2luZyBmb2N1cyByaW5ncy4KKworICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5oOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dENhaXJvLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkdyYXBoaWNzQ29udGV4dDo6ZHJhd0ZvY3VzUmluZyk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvaGFpa3UvR3JhcGhpY3NDb250ZXh0SGFpa3UuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6R3JhcGhpY3NDb250ZXh0OjpkcmF3Rm9jdXNSaW5nKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9tYWMvR3JhcGhpY3NDb250ZXh0TWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6R3Jh
cGhpY3NDb250ZXh0OjpkcmF3Rm9jdXNSaW5nKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9xdC9HcmFwaGljc0NvbnRleHRRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0Nv
bnRleHQ6OmRyYXdGb2N1c1JpbmcpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3NraWEv
R3JhcGhpY3NDb250ZXh0U2tpYS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRl
eHQ6OmRyYXdGb2N1c1JpbmcpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9HcmFw
aGljc0NvbnRleHRDR1dpbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6
OmRyYXdGb2N1c1JpbmcpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbmNlL0dyYXBo
aWNzQ29udGV4dFdpbkNFLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6
ZHJhd0ZvY3VzUmluZyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd3gvR3JhcGhpY3ND
b250ZXh0V3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpkcmF3Rm9j
dXNSaW5nKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVySW1hZ2U6OnBhaW50Rm9jdXNSaW5ncyk6CisKIDIwMTAtMTEtMTkgIE1p
Y2hhZWwgU2Fib2ZmICA8bXNhYm9mZkBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
U2FtIFdlaW5pZy4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhp
Y3NDb250ZXh0LmggYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5o
CmluZGV4IDcxYTRjNDguLjZhZGM5MGIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvR3JhcGhpY3NDb250ZXh0LmgKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9H
cmFwaGljc0NvbnRleHQuaApAQCAtMjg4LDcgKzI4OCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
ICAgICAgICAgdm9pZCBjbGVhclNoYWRvdygpOwogCiAgICAgICAgIHZvaWQgZHJhd0ZvY3VzUmlu
Zyhjb25zdCBWZWN0b3I8SW50UmVjdD4mLCBpbnQgd2lkdGgsIGludCBvZmZzZXQsIGNvbnN0IENv
bG9yJik7Ci0gICAgICAgIHZvaWQgZHJhd0ZvY3VzUmluZyhjb25zdCBWZWN0b3I8UGF0aD4mLCBp
bnQgd2lkdGgsIGludCBvZmZzZXQsIGNvbnN0IENvbG9yJik7CisgICAgICAgIHZvaWQgZHJhd0Zv
Y3VzUmluZyhjb25zdCBQYXRoJiwgaW50IHdpZHRoLCBpbnQgb2Zmc2V0LCBjb25zdCBDb2xvciYp
OwogCiAgICAgICAgIHZvaWQgc2V0TGluZUNhcChMaW5lQ2FwKTsKICAgICAgICAgdm9pZCBzZXRM
aW5lRGFzaChjb25zdCBEYXNoQXJyYXkmLCBmbG9hdCBkYXNoT2Zmc2V0KTsKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0Q2Fpcm8uY3Bw
IGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRleHRDYWlyby5j
cHAKaW5kZXggNzU1YWRmZi4uMTAzMmRjMiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRleHRDYWlyby5jcHAKKysrIGIvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRleHRDYWlyby5jcHAKQEAgLTYxNyw3ICs2
MTcsNyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6Y2xpcFBhdGgoV2luZFJ1bGUgY2xpcFJ1bGUp
CiAgICAgY2Fpcm9fY2xpcChjcik7CiB9CiAKLXZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3Rm9j
dXNSaW5nKGNvbnN0IFZlY3RvcjxQYXRoPiYgcGF0aHMsIGludCB3aWR0aCwgaW50IG9mZnNldCwg
Y29uc3QgQ29sb3ImIGNvbG9yKQordm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdGb2N1c1Jpbmco
Y29uc3QgUGF0aCYgcGF0aCwgaW50IHdpZHRoLCBpbnQgb2Zmc2V0LCBjb25zdCBDb2xvciYgY29s
b3IpCiB7CiAgICAgLy8gRklYTUU6IGltcGxlbWVudAogfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9oYWlrdS9HcmFwaGljc0NvbnRleHRIYWlrdS5jcHAgYi9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2hhaWt1L0dyYXBoaWNzQ29udGV4dEhhaWt1LmNwcAppbmRleCA2
OTExYjMxLi4wNTAxMmU4IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2hh
aWt1L0dyYXBoaWNzQ29udGV4dEhhaWt1LmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2hhaWt1L0dyYXBoaWNzQ29udGV4dEhhaWt1LmNwcApAQCAtMjE1LDcgKzIxNSw3IEBAIHZv
aWQgR3JhcGhpY3NDb250ZXh0OjpjbGlwKGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKICAgICBtX2Rh
dGEtPm1fdmlldy0+Q29uc3RyYWluQ2xpcHBpbmdSZWdpb24oJnJlZ2lvbik7CiB9CiAKLXZvaWQg
R3JhcGhpY3NDb250ZXh0OjpkcmF3Rm9jdXNSaW5nKGNvbnN0IFZlY3RvcjxQYXRoPiYgcGF0aHMs
IGludCB3aWR0aCwgaW50IG9mZnNldCwgY29uc3QgQ29sb3ImIGNvbG9yKQordm9pZCBHcmFwaGlj
c0NvbnRleHQ6OmRyYXdGb2N1c1JpbmcoY29uc3QgUGF0aCYgcGF0aCwgaW50IHdpZHRoLCBpbnQg
b2Zmc2V0LCBjb25zdCBDb2xvciYgY29sb3IpCiB7CiAgICAgLy8gRklYTUU6IGltcGxlbWVudAog
fQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvR3JhcGhpY3NDb250
ZXh0TWFjLm1tIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvR3JhcGhpY3NDb250ZXh0
TWFjLm1tCmluZGV4IDE1Y2FlMjAuLjY2ODJmZGUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvbWFjL0dyYXBoaWNzQ29udGV4dE1hYy5tbQorKysgYi9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL21hYy9HcmFwaGljc0NvbnRleHRNYWMubW0KQEAgLTU3LDIzICs1NywxNyBA
QCBzdGF0aWMgdm9pZCBkcmF3Rm9jdXNSaW5nVG9Db250ZXh0KENHQ29udGV4dFJlZiBjb250ZXh0
LCBDR1BhdGhSZWYgZm9jdXNSaW5nUGF0aAogI2VuZGlmCiB9CiAKLXZvaWQgR3JhcGhpY3NDb250
ZXh0OjpkcmF3Rm9jdXNSaW5nKGNvbnN0IFZlY3RvcjxQYXRoPiYgcGF0aHMsIGludCB3aWR0aCwg
aW50IG9mZnNldCwgY29uc3QgQ29sb3ImIGNvbG9yKQordm9pZCBHcmFwaGljc0NvbnRleHQ6OmRy
YXdGb2N1c1JpbmcoY29uc3QgUGF0aCYgcGF0aCwgaW50IHdpZHRoLCBpbnQgb2Zmc2V0LCBjb25z
dCBDb2xvciYgY29sb3IpCiB7CiAgICAgaWYgKHBhaW50aW5nRGlzYWJsZWQoKSkKICAgICAgICAg
cmV0dXJuOwotICAgIAorCiAgICAgaW50IHJhZGl1cyA9ICh3aWR0aCAtIDEpIC8gMjsKLSAgICBv
ZmZzZXQgKz0gcmFkaXVzOwogICAgIENHQ29sb3JSZWYgY29sb3JSZWYgPSBjb2xvci5pc1ZhbGlk
KCkgPyBjYWNoZWRDR0NvbG9yKGNvbG9yLCBDb2xvclNwYWNlRGV2aWNlUkdCKSA6IDA7CiAKLSAg
ICBSZXRhaW5QdHI8Q0dNdXRhYmxlUGF0aFJlZj4gZm9jdXNSaW5nUGF0aChBZG9wdENGLCBDR1Bh
dGhDcmVhdGVNdXRhYmxlKCkpOwotICAgIHVuc2lnbmVkIHBhdGhDb3VudCA9IHBhdGhzLnNpemUo
KTsKLSAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgcGF0aENvdW50OyBpKyspCi0gICAgICAg
IENHUGF0aEFkZFBhdGgoZm9jdXNSaW5nUGF0aC5nZXQoKSwgMCwgcGF0aHNbaV0ucGxhdGZvcm1Q
YXRoKCkpOwotICAgIAotICAgIGRyYXdGb2N1c1JpbmdUb0NvbnRleHQocGxhdGZvcm1Db250ZXh0
KCksIGZvY3VzUmluZ1BhdGguZ2V0KCksIGNvbG9yUmVmLCByYWRpdXMpOwotfSAgICAKLSAgICAK
KyAgICBkcmF3Rm9jdXNSaW5nVG9Db250ZXh0KHBsYXRmb3JtQ29udGV4dCgpLCBwYXRoLnBsYXRm
b3JtUGF0aCgpLCBjb2xvclJlZiwgcmFkaXVzKTsKK30KKwogdm9pZCBHcmFwaGljc0NvbnRleHQ6
OmRyYXdGb2N1c1JpbmcoY29uc3QgVmVjdG9yPEludFJlY3Q+JiByZWN0cywgaW50IHdpZHRoLCBp
bnQgb2Zmc2V0LCBjb25zdCBDb2xvciYgY29sb3IpCiB7CiAgICAgaWYgKHBhaW50aW5nRGlzYWJs
ZWQoKSkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvR3JhcGhpY3ND
b250ZXh0UXQuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9HcmFwaGljc0NvbnRl
eHRRdC5jcHAKaW5kZXggODdlM2I1MC4uNWRhMjY2ZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9xdC9HcmFwaGljc0NvbnRleHRRdC5jcHAKKysrIGIvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9xdC9HcmFwaGljc0NvbnRleHRRdC5jcHAKQEAgLTgxMywxNiArODEzLDEx
IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpjbGlwUGF0aChXaW5kUnVsZSBjbGlwUnVsZSkKICAg
ICBwLT5zZXRDbGlwUGF0aChuZXdQYXRoLCBRdDo6SW50ZXJzZWN0Q2xpcCk7CiB9CiAKLXZvaWQg
R3JhcGhpY3NDb250ZXh0OjpkcmF3Rm9jdXNSaW5nKGNvbnN0IFZlY3RvcjxQYXRoPiYgcGF0aHMs
IGludCB3aWR0aCwgaW50IG9mZnNldCwgY29uc3QgQ29sb3ImIGNvbG9yKQordm9pZCBHcmFwaGlj
c0NvbnRleHQ6OmRyYXdGb2N1c1JpbmcoY29uc3QgUGF0aCYgcGF0aCwgaW50IHdpZHRoLCBpbnQg
b2Zmc2V0LCBjb25zdCBDb2xvciYgY29sb3IpCiB7CiAgICAgaWYgKHBhaW50aW5nRGlzYWJsZWQo
KSB8fCAhY29sb3IuaXNWYWxpZCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICB1bnNpZ25lZCBw
YXRoQ291bnQgPSBwYXRocy5zaXplKCk7Ci0KLSAgICBpZiAoIXBhdGhDb3VudCkKLSAgICAgICAg
cmV0dXJuOwotCiAgICAgUVBhaW50ZXIqIHAgPSBtX2RhdGEtPnAoKTsKICAgICBjb25zdCBib29s
IGFudGlBbGlhcyA9IHAtPnRlc3RSZW5kZXJIaW50KFFQYWludGVyOjpBbnRpYWxpYXNpbmcpOwog
ICAgIHAtPnNldFJlbmRlckhpbnQoUVBhaW50ZXI6OkFudGlhbGlhc2luZywgbV9kYXRhLT5hbnRp
QWxpYXNpbmdGb3JSZWN0c0FuZExpbmVzKTsKQEAgLTgzNiwxMiArODMxLDcgQEAgdm9pZCBHcmFw
aGljc0NvbnRleHQ6OmRyYXdGb2N1c1JpbmcoY29uc3QgVmVjdG9yPFBhdGg+JiBwYXRocywgaW50
IHdpZHRoLCBpbnQgb2YKICAgICBuUGVuLnNldFN0eWxlKFF0OjpEb3RMaW5lKTsKICAgICBwLT5z
ZXRQZW4oblBlbik7CiAKLSAgICBRUGFpbnRlclBhdGggcGF0aDsKLSAgICBmb3IgKGludCBpID0g
MDsgaSA8IHBhdGhDb3VudDsgKytpKQotICAgICAgICBwYXRoLmFkZFBhdGgocGF0aHNbaV0ucGxh
dGZvcm1QYXRoKCkpOwotICAgIFFQYWludGVyUGF0aFN0cm9rZXIgc3Ryb2tlcjsKLSAgICBRUGFp
bnRlclBhdGggbmV3UGF0aCA9IHN0cm9rZXIuY3JlYXRlU3Ryb2tlKHBhdGgpOwotICAgIHAtPnN0
cm9rZVBhdGgobmV3UGF0aCwgblBlbik7CisgICAgcC0+c3Ryb2tlUGF0aChwYXRoLnBsYXRmb3Jt
UGF0aCgpLCBuUGVuKTsKICAgICBwLT5zZXRQZW4ob2xkUGVuKTsKICAgICBwLT5zZXRCcnVzaChv
bGRCcnVzaCk7CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9H
cmFwaGljc0NvbnRleHRTa2lhLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9H
cmFwaGljc0NvbnRleHRTa2lhLmNwcAppbmRleCBlNTA2ZTVkLi43YzBiY2QxIDEwMDY0NAotLS0g
YS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvR3JhcGhpY3NDb250ZXh0U2tpYS5jcHAK
KysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL0dyYXBoaWNzQ29udGV4dFNraWEu
Y3BwCkBAIC01MTMsNyArNTEzLDcgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdFbGxpcHNl
KGNvbnN0IEludFJlY3QmIGVsaXBzZVJlY3QpCiAgICAgfQogfQogCi12b2lkIEdyYXBoaWNzQ29u
dGV4dDo6ZHJhd0ZvY3VzUmluZyhjb25zdCBWZWN0b3I8UGF0aD4mIHBhdGhzLCBpbnQgd2lkdGgs
IGludCBvZmZzZXQsIGNvbnN0IENvbG9yJiBjb2xvcikKK3ZvaWQgR3JhcGhpY3NDb250ZXh0Ojpk
cmF3Rm9jdXNSaW5nKGNvbnN0IFBhdGgmIHBhdGgsIGludCB3aWR0aCwgaW50IG9mZnNldCwgY29u
c3QgQ29sb3ImIGNvbG9yKQogewogICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQKIH0KZGlmZiAtLWdp
dCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0dyYXBoaWNzQ29udGV4dENHV2luLmNw
cCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0dyYXBoaWNzQ29udGV4dENHV2luLmNw
cAppbmRleCBjOTI4OGU1Li5jYWRlMzg4IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3dpbi9HcmFwaGljc0NvbnRleHRDR1dpbi5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy93aW4vR3JhcGhpY3NDb250ZXh0Q0dXaW4uY3BwCkBAIC0xMjQsNyArMTI0LDcg
QEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdXaW5kb3dzQml0bWFwKFdpbmRvd3NCaXRtYXAq
IGltYWdlLCBjb25zdCBJbnRQb2ludCYgcG8KICAgICBDR0NvbnRleHREcmF3SW1hZ2UobV9kYXRh
LT5tX2NnQ29udGV4dC5nZXQoKSwgQ0dSZWN0TWFrZShwb2ludC54KCksIHBvaW50LnkoKSwgaW1h
Z2UtPnNpemUoKS53aWR0aCgpLCBpbWFnZS0+c2l6ZSgpLmhlaWdodCgpKSwgY2dJbWFnZS5nZXQo
KSk7ICAgCiB9CiAKLXZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3Rm9jdXNSaW5nKGNvbnN0IFZl
Y3RvcjxQYXRoPiYgcGF0aHMsIGludCB3aWR0aCwgaW50IG9mZnNldCwgY29uc3QgQ29sb3ImIGNv
bG9yKQordm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdGb2N1c1JpbmcoY29uc3QgUGF0aCYgcGF0
aCwgaW50IHdpZHRoLCBpbnQgb2Zmc2V0LCBjb25zdCBDb2xvciYgY29sb3IpCiB7CiAgICAgLy8g
RklYTUU6IGltcGxlbWVudAogfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy93aW5jZS9HcmFwaGljc0NvbnRleHRXaW5DRS5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3dpbmNlL0dyYXBoaWNzQ29udGV4dFdpbkNFLmNwcAppbmRleCA4YWY2ZWY3Li4wODAyODI2
IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbmNlL0dyYXBoaWNzQ29u
dGV4dFdpbkNFLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbmNlL0dyYXBo
aWNzQ29udGV4dFdpbkNFLmNwcApAQCAtOTgyLDcgKzk4Miw3IEBAIHZvaWQgR3JhcGhpY3NDb250
ZXh0OjpjbGlwT3V0KGNvbnN0IEludFJlY3QmIHJlY3QpCiAgICAgRXhjbHVkZUNsaXBSZWN0KG1f
ZGF0YS0+bV9kYywgdHJSZWN0LngoKSwgdHJSZWN0LnkoKSwgdHJSZWN0LnJpZ2h0KCksIHRyUmVj
dC5ib3R0b20oKSk7CiB9CiAKLXZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3Rm9jdXNSaW5nKGNv
bnN0IFZlY3RvcjxQYXRoPiYgcGF0aHMsIGludCB3aWR0aCwgaW50IG9mZnNldCwgY29uc3QgQ29s
b3ImIGNvbG9yKQordm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdGb2N1c1JpbmcoY29uc3QgUGF0
aCYgcGF0aCwgaW50IHdpZHRoLCBpbnQgb2Zmc2V0LCBjb25zdCBDb2xvciYgY29sb3IpCiB7CiAg
ICAgLy8gRklYTUU6IGltcGxlbWVudAogfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy93eC9HcmFwaGljc0NvbnRleHRXeC5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3d4L0dyYXBoaWNzQ29udGV4dFd4LmNwcAppbmRleCA1M2E5Y2NkLi41MDA3ZmZlIDEwMDY0
NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3d4L0dyYXBoaWNzQ29udGV4dFd4LmNw
cAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3d4L0dyYXBoaWNzQ29udGV4dFd4LmNw
cApAQCAtMjg5LDcgKzI4OSw3IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpmaWxsUm91bmRlZFJl
Y3QoY29uc3QgSW50UmVjdCYgcmVjdCwgY29uc3QgSW50U2l6ZSYgdG9wTGVmCiAgICAgbm90SW1w
bGVtZW50ZWQoKTsKIH0KIAotdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdGb2N1c1JpbmcoY29u
c3QgVmVjdG9yPFBhdGg+JiBwYXRocywgaW50IHdpZHRoLCBpbnQgb2Zmc2V0LCBjb25zdCBDb2xv
ciYgY29sb3IpCit2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd0ZvY3VzUmluZyhjb25zdCBQYXRo
JiBwYXRoLCBpbnQgd2lkdGgsIGludCBvZmZzZXQsIGNvbnN0IENvbG9yJiBjb2xvcikKIHsKICAg
ICAvLyBGSVhNRTogaW1wbGVtZW50CiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJJbWFnZS5jcHAgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5jcHAKaW5kZXgg
Y2RkNDdjMy4uMDY1NjU2YSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1h
Z2UuY3BwCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmNwcApAQCAtMzU4LDkg
KzM1OCw3IEBAIHZvaWQgUmVuZGVySW1hZ2U6OnBhaW50Rm9jdXNSaW5ncyhQYWludEluZm8mIHBh
aW50SW5mbywgY29uc3QgUmVuZGVyU3R5bGUqIHN0eWxlCiAgICAgICAgIGlmIChmb2N1c2VkTm9k
ZSAhPSBhcmVhRWxlbWVudCkKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAKLSAgICAg
ICAgVmVjdG9yPFBhdGg+IGZvY3VzUmluZ1BhdGhzOwotICAgICAgICBmb2N1c1JpbmdQYXRocy5h
cHBlbmQoYXJlYUVsZW1lbnQtPmdldFBhdGgodGhpcykpOwotICAgICAgICBwYWludEluZm8uY29u
dGV4dC0+ZHJhd0ZvY3VzUmluZyhmb2N1c1JpbmdQYXRocywgc3R5bGUtPm91dGxpbmVXaWR0aCgp
LCBzdHlsZS0+b3V0bGluZU9mZnNldCgpLCBzdHlsZS0+dmlzaXRlZERlcGVuZGVudENvbG9yKENT
U1Byb3BlcnR5T3V0bGluZUNvbG9yKSk7CisgICAgICAgIHBhaW50SW5mby5jb250ZXh0LT5kcmF3
Rm9jdXNSaW5nKGFyZWFFbGVtZW50LT5nZXRQYXRoKHRoaXMpLCBzdHlsZS0+b3V0bGluZVdpZHRo
KCksIHN0eWxlLT5vdXRsaW5lT2Zmc2V0KCksIHN0eWxlLT52aXNpdGVkRGVwZW5kZW50Q29sb3Io
Q1NTUHJvcGVydHlPdXRsaW5lQ29sb3IpKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogfQo=
</data>
<flag name="review"
          id="65044"
          type_id="1"
          status="-"
          setter="zimmermann"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>74491</attachid>
            <date>2010-11-20 18:21:25 -0800</date>
            <delta_ts>2010-11-21 05:13:38 -0800</delta_ts>
            <desc>Proposed patch</desc>
            <filename>bug-49840-v2.diff</filename>
            <type>text/plain</type>
            <size>11365</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NDc4NTVhZS4uZTBlMzg5YSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNSBAQAorMjAxMC0xMS0yMCAgQW5kcmVhcyBLbGlu
ZyAgPGtsaW5nQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgR3JhcGhpY3NDb250ZXh0OiBNYWtlIGRyYXdGb2N1c1JpbmcoKSB0YWtl
IGEgUGF0aCBpbnN0ZWFkIG9mIGEgVmVjdG9yPFBhdGg+CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00OTg0MAorCisgICAgICAgIFRoaXMgYXZvaWQgY29w
eWluZyBhIFBhdGggb2JqZWN0IHdoZW4gZHJhd2luZyBmb2N1cyByaW5ncy4KKworICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5oOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dENhaXJvLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkdyYXBoaWNzQ29udGV4dDo6ZHJhd0ZvY3VzUmluZyk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvaGFpa3UvR3JhcGhpY3NDb250ZXh0SGFpa3UuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6R3JhcGhpY3NDb250ZXh0OjpkcmF3Rm9jdXNSaW5nKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9tYWMvR3JhcGhpY3NDb250ZXh0TWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6R3Jh
cGhpY3NDb250ZXh0OjpkcmF3Rm9jdXNSaW5nKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9xdC9HcmFwaGljc0NvbnRleHRRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0Nv
bnRleHQ6OmRyYXdGb2N1c1JpbmcpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3NraWEv
R3JhcGhpY3NDb250ZXh0U2tpYS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRl
eHQ6OmRyYXdGb2N1c1JpbmcpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9HcmFw
aGljc0NvbnRleHRDR1dpbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6
OmRyYXdGb2N1c1JpbmcpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbmNlL0dyYXBo
aWNzQ29udGV4dFdpbkNFLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6
ZHJhd0ZvY3VzUmluZyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd3gvR3JhcGhpY3ND
b250ZXh0V3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpkcmF3Rm9j
dXNSaW5nKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVySW1hZ2UuaDoKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVySW1hZ2U6
OnBhaW50KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckltYWdlOjpwYWludEZvY3VzUmluZyk6
CisgICAgICAgIFJlbmFtZWQgZnJvbSBwYWludEZvY3VzUmluZ3Mgc2luY2UgaXQgb25seSBwYWlu
dHMgb25lIHJpbmcuCisKIDIwMTAtMTEtMjAgIEt3YW5nIFl1bCBTZW8gIDxza3l1bEBjb21wYW55
MTAwLm5ldD4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXZpZCBLaWx6ZXIuCmRpZmYgLS1naXQg
YS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5oIGIvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuaAppbmRleCA3MWE0YzQ4Li42YWRjOTBi
IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5o
CisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmgKQEAgLTI4
OCw3ICsyODgsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZvaWQgY2xlYXJTaGFk
b3coKTsKIAogICAgICAgICB2b2lkIGRyYXdGb2N1c1JpbmcoY29uc3QgVmVjdG9yPEludFJlY3Q+
JiwgaW50IHdpZHRoLCBpbnQgb2Zmc2V0LCBjb25zdCBDb2xvciYpOwotICAgICAgICB2b2lkIGRy
YXdGb2N1c1JpbmcoY29uc3QgVmVjdG9yPFBhdGg+JiwgaW50IHdpZHRoLCBpbnQgb2Zmc2V0LCBj
b25zdCBDb2xvciYpOworICAgICAgICB2b2lkIGRyYXdGb2N1c1JpbmcoY29uc3QgUGF0aCYsIGlu
dCB3aWR0aCwgaW50IG9mZnNldCwgY29uc3QgQ29sb3ImKTsKIAogICAgICAgICB2b2lkIHNldExp
bmVDYXAoTGluZUNhcCk7CiAgICAgICAgIHZvaWQgc2V0TGluZURhc2goY29uc3QgRGFzaEFycmF5
JiwgZmxvYXQgZGFzaE9mZnNldCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dENhaXJvLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0Q2Fpcm8uY3BwCmluZGV4IDc1NWFkZmYuLjEwMzJk
YzIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3ND
b250ZXh0Q2Fpcm8uY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3Jh
cGhpY3NDb250ZXh0Q2Fpcm8uY3BwCkBAIC02MTcsNyArNjE3LDcgQEAgdm9pZCBHcmFwaGljc0Nv
bnRleHQ6OmNsaXBQYXRoKFdpbmRSdWxlIGNsaXBSdWxlKQogICAgIGNhaXJvX2NsaXAoY3IpOwog
fQogCi12b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd0ZvY3VzUmluZyhjb25zdCBWZWN0b3I8UGF0
aD4mIHBhdGhzLCBpbnQgd2lkdGgsIGludCBvZmZzZXQsIGNvbnN0IENvbG9yJiBjb2xvcikKK3Zv
aWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3Rm9jdXNSaW5nKGNvbnN0IFBhdGgmIHBhdGgsIGludCB3
aWR0aCwgaW50IG9mZnNldCwgY29uc3QgQ29sb3ImIGNvbG9yKQogewogICAgIC8vIEZJWE1FOiBp
bXBsZW1lbnQKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvaGFpa3Uv
R3JhcGhpY3NDb250ZXh0SGFpa3UuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9oYWlr
dS9HcmFwaGljc0NvbnRleHRIYWlrdS5jcHAKaW5kZXggNjkxMWIzMS4uMDUwMTJlOCAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9oYWlrdS9HcmFwaGljc0NvbnRleHRIYWlr
dS5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9oYWlrdS9HcmFwaGljc0NvbnRl
eHRIYWlrdS5jcHAKQEAgLTIxNSw3ICsyMTUsNyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6Y2xp
cChjb25zdCBGbG9hdFJlY3QmIHJlY3QpCiAgICAgbV9kYXRhLT5tX3ZpZXctPkNvbnN0cmFpbkNs
aXBwaW5nUmVnaW9uKCZyZWdpb24pOwogfQogCi12b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd0Zv
Y3VzUmluZyhjb25zdCBWZWN0b3I8UGF0aD4mIHBhdGhzLCBpbnQgd2lkdGgsIGludCBvZmZzZXQs
IGNvbnN0IENvbG9yJiBjb2xvcikKK3ZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3Rm9jdXNSaW5n
KGNvbnN0IFBhdGgmIHBhdGgsIGludCB3aWR0aCwgaW50IG9mZnNldCwgY29uc3QgQ29sb3ImIGNv
bG9yKQogewogICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0dyYXBoaWNzQ29udGV4dE1hYy5tbSBiL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvbWFjL0dyYXBoaWNzQ29udGV4dE1hYy5tbQppbmRleCAxNWNhZTIwLi5l
YTkxMmRjIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9HcmFwaGlj
c0NvbnRleHRNYWMubW0KKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvR3JhcGhp
Y3NDb250ZXh0TWFjLm1tCkBAIC01NywyMyArNTcsMTkgQEAgc3RhdGljIHZvaWQgZHJhd0ZvY3Vz
UmluZ1RvQ29udGV4dChDR0NvbnRleHRSZWYgY29udGV4dCwgQ0dQYXRoUmVmIGZvY3VzUmluZ1Bh
dGgKICNlbmRpZgogfQogCi12b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd0ZvY3VzUmluZyhjb25z
dCBWZWN0b3I8UGF0aD4mIHBhdGhzLCBpbnQgd2lkdGgsIGludCBvZmZzZXQsIGNvbnN0IENvbG9y
JiBjb2xvcikKK3ZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3Rm9jdXNSaW5nKGNvbnN0IFBhdGgm
IHBhdGgsIGludCB3aWR0aCwgaW50IC8qb2Zmc2V0Ki8sIGNvbnN0IENvbG9yJiBjb2xvcikKIHsK
KyAgICAvLyBGSVhNRTogVXNlICdvZmZzZXQnIGZvciBzb21ldGhpbmc/CisKICAgICBpZiAocGFp
bnRpbmdEaXNhYmxlZCgpKQogICAgICAgICByZXR1cm47Ci0gICAgCisKICAgICBpbnQgcmFkaXVz
ID0gKHdpZHRoIC0gMSkgLyAyOwotICAgIG9mZnNldCArPSByYWRpdXM7CiAgICAgQ0dDb2xvclJl
ZiBjb2xvclJlZiA9IGNvbG9yLmlzVmFsaWQoKSA/IGNhY2hlZENHQ29sb3IoY29sb3IsIENvbG9y
U3BhY2VEZXZpY2VSR0IpIDogMDsKIAotICAgIFJldGFpblB0cjxDR011dGFibGVQYXRoUmVmPiBm
b2N1c1JpbmdQYXRoKEFkb3B0Q0YsIENHUGF0aENyZWF0ZU11dGFibGUoKSk7Ci0gICAgdW5zaWdu
ZWQgcGF0aENvdW50ID0gcGF0aHMuc2l6ZSgpOwotICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkg
PCBwYXRoQ291bnQ7IGkrKykKLSAgICAgICAgQ0dQYXRoQWRkUGF0aChmb2N1c1JpbmdQYXRoLmdl
dCgpLCAwLCBwYXRoc1tpXS5wbGF0Zm9ybVBhdGgoKSk7Ci0gICAgCi0gICAgZHJhd0ZvY3VzUmlu
Z1RvQ29udGV4dChwbGF0Zm9ybUNvbnRleHQoKSwgZm9jdXNSaW5nUGF0aC5nZXQoKSwgY29sb3JS
ZWYsIHJhZGl1cyk7Ci19ICAgIAotICAgIAorICAgIGRyYXdGb2N1c1JpbmdUb0NvbnRleHQocGxh
dGZvcm1Db250ZXh0KCksIHBhdGgucGxhdGZvcm1QYXRoKCksIGNvbG9yUmVmLCByYWRpdXMpOwor
fQorCiB2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd0ZvY3VzUmluZyhjb25zdCBWZWN0b3I8SW50
UmVjdD4mIHJlY3RzLCBpbnQgd2lkdGgsIGludCBvZmZzZXQsIGNvbnN0IENvbG9yJiBjb2xvcikK
IHsKICAgICBpZiAocGFpbnRpbmdEaXNhYmxlZCgpKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9xdC9HcmFwaGljc0NvbnRleHRRdC5jcHAgYi9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3F0L0dyYXBoaWNzQ29udGV4dFF0LmNwcAppbmRleCBmYzU3YjE0Li41ZGQ5MWEy
IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0dyYXBoaWNzQ29udGV4
dFF0LmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0dyYXBoaWNzQ29udGV4
dFF0LmNwcApAQCAtODAwLDM2ICs4MDAsMjUgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmNsaXBQ
YXRoKFdpbmRSdWxlIGNsaXBSdWxlKQogICAgIHAtPnNldENsaXBQYXRoKG5ld1BhdGgsIFF0OjpJ
bnRlcnNlY3RDbGlwKTsKIH0KIAotdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdGb2N1c1Jpbmco
Y29uc3QgVmVjdG9yPFBhdGg+JiBwYXRocywgaW50IHdpZHRoLCBpbnQgb2Zmc2V0LCBjb25zdCBD
b2xvciYgY29sb3IpCit2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd0ZvY3VzUmluZyhjb25zdCBQ
YXRoJiBwYXRoLCBpbnQgd2lkdGgsIGludCBvZmZzZXQsIGNvbnN0IENvbG9yJiBjb2xvcikKIHsK
LSAgICBpZiAocGFpbnRpbmdEaXNhYmxlZCgpIHx8ICFjb2xvci5pc1ZhbGlkKCkpCi0gICAgICAg
IHJldHVybjsKLQotICAgIHVuc2lnbmVkIHBhdGhDb3VudCA9IHBhdGhzLnNpemUoKTsKKyAgICAv
LyBGSVhNRTogVXNlICd3aWR0aCcgYW5kICdvZmZzZXQnIGZvciBzb21ldGhpbmc/CiAKLSAgICBp
ZiAoIXBhdGhDb3VudCkKKyAgICBpZiAocGFpbnRpbmdEaXNhYmxlZCgpIHx8ICFjb2xvci5pc1Zh
bGlkKCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIFFQYWludGVyKiBwID0gbV9kYXRhLT5wKCk7
CiAgICAgY29uc3QgYm9vbCBhbnRpQWxpYXMgPSBwLT50ZXN0UmVuZGVySGludChRUGFpbnRlcjo6
QW50aWFsaWFzaW5nKTsKICAgICBwLT5zZXRSZW5kZXJIaW50KFFQYWludGVyOjpBbnRpYWxpYXNp
bmcsIG1fZGF0YS0+YW50aUFsaWFzaW5nRm9yUmVjdHNBbmRMaW5lcyk7CiAKLSAgICBjb25zdCBR
UGVuIG9sZFBlbiA9IHAtPnBlbigpOwogICAgIGNvbnN0IFFCcnVzaCBvbGRCcnVzaCA9IHAtPmJy
dXNoKCk7CiAKICAgICBRUGVuIG5QZW4gPSBwLT5wZW4oKTsKICAgICBuUGVuLnNldENvbG9yKGNv
bG9yKTsKICAgICBwLT5zZXRCcnVzaChRdDo6Tm9CcnVzaCk7CiAgICAgblBlbi5zZXRTdHlsZShR
dDo6RG90TGluZSk7Ci0gICAgcC0+c2V0UGVuKG5QZW4pOwogCi0gICAgUVBhaW50ZXJQYXRoIHBh
dGg7Ci0gICAgZm9yIChpbnQgaSA9IDA7IGkgPCBwYXRoQ291bnQ7ICsraSkKLSAgICAgICAgcGF0
aC5hZGRQYXRoKHBhdGhzW2ldLnBsYXRmb3JtUGF0aCgpKTsKLSAgICBRUGFpbnRlclBhdGhTdHJv
a2VyIHN0cm9rZXI7Ci0gICAgUVBhaW50ZXJQYXRoIG5ld1BhdGggPSBzdHJva2VyLmNyZWF0ZVN0
cm9rZShwYXRoKTsKLSAgICBwLT5zdHJva2VQYXRoKG5ld1BhdGgsIG5QZW4pOwotICAgIHAtPnNl
dFBlbihvbGRQZW4pOworICAgIHAtPnN0cm9rZVBhdGgocGF0aC5wbGF0Zm9ybVBhdGgoKSwgblBl
bik7CiAgICAgcC0+c2V0QnJ1c2gob2xkQnJ1c2gpOwogCiAgICAgcC0+c2V0UmVuZGVySGludChR
UGFpbnRlcjo6QW50aWFsaWFzaW5nLCBhbnRpQWxpYXMpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9za2lhL0dyYXBoaWNzQ29udGV4dFNraWEuY3BwIGIvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9za2lhL0dyYXBoaWNzQ29udGV4dFNraWEuY3BwCmluZGV4IGU1MDZl
NWQuLjdjMGJjZDEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9H
cmFwaGljc0NvbnRleHRTa2lhLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3Nr
aWEvR3JhcGhpY3NDb250ZXh0U2tpYS5jcHAKQEAgLTUxMyw3ICs1MTMsNyBAQCB2b2lkIEdyYXBo
aWNzQ29udGV4dDo6ZHJhd0VsbGlwc2UoY29uc3QgSW50UmVjdCYgZWxpcHNlUmVjdCkKICAgICB9
CiB9CiAKLXZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3Rm9jdXNSaW5nKGNvbnN0IFZlY3RvcjxQ
YXRoPiYgcGF0aHMsIGludCB3aWR0aCwgaW50IG9mZnNldCwgY29uc3QgQ29sb3ImIGNvbG9yKQor
dm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdGb2N1c1JpbmcoY29uc3QgUGF0aCYgcGF0aCwgaW50
IHdpZHRoLCBpbnQgb2Zmc2V0LCBjb25zdCBDb2xvciYgY29sb3IpCiB7CiAgICAgLy8gRklYTUU6
IGltcGxlbWVudAogfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4v
R3JhcGhpY3NDb250ZXh0Q0dXaW4uY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4v
R3JhcGhpY3NDb250ZXh0Q0dXaW4uY3BwCmluZGV4IGM5Mjg4ZTUuLmNhZGUzODggMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0dyYXBoaWNzQ29udGV4dENHV2luLmNw
cAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9HcmFwaGljc0NvbnRleHRDR1dp
bi5jcHAKQEAgLTEyNCw3ICsxMjQsNyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd1dpbmRv
d3NCaXRtYXAoV2luZG93c0JpdG1hcCogaW1hZ2UsIGNvbnN0IEludFBvaW50JiBwbwogICAgIENH
Q29udGV4dERyYXdJbWFnZShtX2RhdGEtPm1fY2dDb250ZXh0LmdldCgpLCBDR1JlY3RNYWtlKHBv
aW50LngoKSwgcG9pbnQueSgpLCBpbWFnZS0+c2l6ZSgpLndpZHRoKCksIGltYWdlLT5zaXplKCku
aGVpZ2h0KCkpLCBjZ0ltYWdlLmdldCgpKTsgICAKIH0KIAotdm9pZCBHcmFwaGljc0NvbnRleHQ6
OmRyYXdGb2N1c1JpbmcoY29uc3QgVmVjdG9yPFBhdGg+JiBwYXRocywgaW50IHdpZHRoLCBpbnQg
b2Zmc2V0LCBjb25zdCBDb2xvciYgY29sb3IpCit2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd0Zv
Y3VzUmluZyhjb25zdCBQYXRoJiBwYXRoLCBpbnQgd2lkdGgsIGludCBvZmZzZXQsIGNvbnN0IENv
bG9yJiBjb2xvcikKIHsKICAgICAvLyBGSVhNRTogaW1wbGVtZW50CiB9CmRpZmYgLS1naXQgYS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbmNlL0dyYXBoaWNzQ29udGV4dFdpbkNFLmNwcCBi
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2UvR3JhcGhpY3NDb250ZXh0V2luQ0UuY3Bw
CmluZGV4IDhhZjZlZjcuLjA4MDI4MjYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvd2luY2UvR3JhcGhpY3NDb250ZXh0V2luQ0UuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvd2luY2UvR3JhcGhpY3NDb250ZXh0V2luQ0UuY3BwCkBAIC05ODIsNyArOTgy
LDcgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmNsaXBPdXQoY29uc3QgSW50UmVjdCYgcmVjdCkK
ICAgICBFeGNsdWRlQ2xpcFJlY3QobV9kYXRhLT5tX2RjLCB0clJlY3QueCgpLCB0clJlY3QueSgp
LCB0clJlY3QucmlnaHQoKSwgdHJSZWN0LmJvdHRvbSgpKTsKIH0KIAotdm9pZCBHcmFwaGljc0Nv
bnRleHQ6OmRyYXdGb2N1c1JpbmcoY29uc3QgVmVjdG9yPFBhdGg+JiBwYXRocywgaW50IHdpZHRo
LCBpbnQgb2Zmc2V0LCBjb25zdCBDb2xvciYgY29sb3IpCit2b2lkIEdyYXBoaWNzQ29udGV4dDo6
ZHJhd0ZvY3VzUmluZyhjb25zdCBQYXRoJiBwYXRoLCBpbnQgd2lkdGgsIGludCBvZmZzZXQsIGNv
bnN0IENvbG9yJiBjb2xvcikKIHsKICAgICAvLyBGSVhNRTogaW1wbGVtZW50CiB9CmRpZmYgLS1n
aXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3d4L0dyYXBoaWNzQ29udGV4dFd4LmNwcCBi
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd3gvR3JhcGhpY3NDb250ZXh0V3guY3BwCmluZGV4
IDUzYTljY2QuLjUwMDdmZmUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
d3gvR3JhcGhpY3NDb250ZXh0V3guY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
d3gvR3JhcGhpY3NDb250ZXh0V3guY3BwCkBAIC0yODksNyArMjg5LDcgQEAgdm9pZCBHcmFwaGlj
c0NvbnRleHQ6OmZpbGxSb3VuZGVkUmVjdChjb25zdCBJbnRSZWN0JiByZWN0LCBjb25zdCBJbnRT
aXplJiB0b3BMZWYKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi12b2lkIEdyYXBoaWNzQ29u
dGV4dDo6ZHJhd0ZvY3VzUmluZyhjb25zdCBWZWN0b3I8UGF0aD4mIHBhdGhzLCBpbnQgd2lkdGgs
IGludCBvZmZzZXQsIGNvbnN0IENvbG9yJiBjb2xvcikKK3ZvaWQgR3JhcGhpY3NDb250ZXh0Ojpk
cmF3Rm9jdXNSaW5nKGNvbnN0IFBhdGgmIHBhdGgsIGludCB3aWR0aCwgaW50IG9mZnNldCwgY29u
c3QgQ29sb3ImIGNvbG9yKQogewogICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQKIH0KZGlmZiAtLWdp
dCBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmNwcCBiL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckltYWdlLmNwcAppbmRleCBjZGQ0N2MzLi4zNzZmZmVmIDEwMDY0NAotLS0gYS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5jcHAKKysrIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVySW1hZ2UuY3BwCkBAIC0zMjIsMTAgKzMyMiwxMCBAQCB2b2lkIFJlbmRlckltYWdlOjpwYWlu
dChQYWludEluZm8mIHBhaW50SW5mbywgaW50IHR4LCBpbnQgdHkpCiAgICAgUmVuZGVyUmVwbGFj
ZWQ6OnBhaW50KHBhaW50SW5mbywgdHgsIHR5KTsKICAgICAKICAgICBpZiAocGFpbnRJbmZvLnBo
YXNlID09IFBhaW50UGhhc2VPdXRsaW5lKQotICAgICAgICBwYWludEZvY3VzUmluZ3MocGFpbnRJ
bmZvLCBzdHlsZSgpKTsKKyAgICAgICAgcGFpbnRGb2N1c1JpbmcocGFpbnRJbmZvLCBzdHlsZSgp
KTsKIH0KICAgICAKLXZvaWQgUmVuZGVySW1hZ2U6OnBhaW50Rm9jdXNSaW5ncyhQYWludEluZm8m
IHBhaW50SW5mbywgY29uc3QgUmVuZGVyU3R5bGUqIHN0eWxlKQordm9pZCBSZW5kZXJJbWFnZTo6
cGFpbnRGb2N1c1JpbmcoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IFJlbmRlclN0eWxlKiBz
dHlsZSkKIHsKICAgICAvLyBEb24ndCBkcmF3IGZvY3VzIHJpbmdzIGlmIHByaW50aW5nLgogICAg
IGlmIChkb2N1bWVudCgpLT5wcmludGluZygpIHx8ICFmcmFtZSgpLT5zZWxlY3Rpb24oKS0+aXNG
b2N1c2VkQW5kQWN0aXZlKCkpCkBAIC0zNTgsOSArMzU4LDcgQEAgdm9pZCBSZW5kZXJJbWFnZTo6
cGFpbnRGb2N1c1JpbmdzKFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBSZW5kZXJTdHlsZSog
c3R5bGUKICAgICAgICAgaWYgKGZvY3VzZWROb2RlICE9IGFyZWFFbGVtZW50KQogICAgICAgICAg
ICAgY29udGludWU7CiAgICAgICAgIAotICAgICAgICBWZWN0b3I8UGF0aD4gZm9jdXNSaW5nUGF0
aHM7Ci0gICAgICAgIGZvY3VzUmluZ1BhdGhzLmFwcGVuZChhcmVhRWxlbWVudC0+Z2V0UGF0aCh0
aGlzKSk7Ci0gICAgICAgIHBhaW50SW5mby5jb250ZXh0LT5kcmF3Rm9jdXNSaW5nKGZvY3VzUmlu
Z1BhdGhzLCBzdHlsZS0+b3V0bGluZVdpZHRoKCksIHN0eWxlLT5vdXRsaW5lT2Zmc2V0KCksIHN0
eWxlLT52aXNpdGVkRGVwZW5kZW50Q29sb3IoQ1NTUHJvcGVydHlPdXRsaW5lQ29sb3IpKTsKKyAg
ICAgICAgcGFpbnRJbmZvLmNvbnRleHQtPmRyYXdGb2N1c1JpbmcoYXJlYUVsZW1lbnQtPmdldFBh
dGgodGhpcyksIHN0eWxlLT5vdXRsaW5lV2lkdGgoKSwgc3R5bGUtPm91dGxpbmVPZmZzZXQoKSwg
c3R5bGUtPnZpc2l0ZWREZXBlbmRlbnRDb2xvcihDU1NQcm9wZXJ0eU91dGxpbmVDb2xvcikpOwog
ICAgICAgICBicmVhazsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJJbWFnZS5oIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuaAppbmRleCA4NmY1
NjIxLi4xNmFlN2VjIDEwMDY0NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5o
CisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmgKQEAgLTU3LDcgKzU3LDcgQEAg
cHJvdGVjdGVkOgogICAgIHZpcnR1YWwgdm9pZCBpbWFnZUNoYW5nZWQoV3JhcHBlZEltYWdlUHRy
LCBjb25zdCBJbnRSZWN0KiA9IDApOwogCiAgICAgdmlydHVhbCB2b2lkIHBhaW50SW50b1JlY3Qo
R3JhcGhpY3NDb250ZXh0KiwgY29uc3QgSW50UmVjdCYpOwotICAgIHZvaWQgcGFpbnRGb2N1c1Jp
bmdzKFBhaW50SW5mbyYsIGNvbnN0IFJlbmRlclN0eWxlKik7CisgICAgdm9pZCBwYWludEZvY3Vz
UmluZyhQYWludEluZm8mLCBjb25zdCBSZW5kZXJTdHlsZSopOwogICAgIHZpcnR1YWwgdm9pZCBw
YWludChQYWludEluZm8mLCBpbnQgdHgsIGludCB0eSk7CiAKICAgICBib29sIGlzTG9naWNhbFdp
ZHRoU3BlY2lmaWVkKCkgY29uc3Q7Cg==
</data>
<flag name="review"
          id="65104"
          type_id="1"
          status="+"
          setter="zimmermann"
    />
          </attachment>
      

    </bug>

</bugzilla>