<?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>66788</bug_id>
          
          <creation_ts>2011-08-23 11:04:05 -0700</creation_ts>
          <short_desc>[chromium] Make WebGL context current before querying for extensions</short_desc>
          <delta_ts>2011-08-23 19:11:29 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Iain Merrick">husky</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>cmarrin</cc>
    
    <cc>husky</cc>
    
    <cc>jamesr</cc>
    
    <cc>kbr</cc>
    
    <cc>nduca</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>455511</commentid>
    <comment_count>0</comment_count>
    <who name="Iain Merrick">husky</who>
    <bug_when>2011-08-23 11:04:05 -0700</bug_when>
    <thetext>Make WebGL context current before querying for extensions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>455514</commentid>
    <comment_count>1</comment_count>
      <attachid>104867</attachid>
    <who name="Iain Merrick">husky</who>
    <bug_when>2011-08-23 11:06:26 -0700</bug_when>
    <thetext>Created attachment 104867
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>455530</commentid>
    <comment_count>2</comment_count>
      <attachid>104867</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-08-23 11:19:29 -0700</bug_when>
    <thetext>Comment on attachment 104867
Patch

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

This patch is rooted at the wrong dir - it should be rooted at the root of the repo, so the paths show up as Source/WebCore/... - it looks like this is rooted inside the Source/ directory.  This means that the show more context links don&apos;t work in the review tool.

&gt; WebCore/ChangeLog:8
&gt; +        No new tests. (OOPS!)

You can&apos;t commit with this message, there&apos;s an svn presubmit hook that will reject it.  Please explain how to test this (I think you can exercise this by flipping some local define, right?)

&gt; WebCore/html/canvas/WebGLRenderingContext.cpp:387
&gt; +    m_context-&gt;makeContextCurrent();

it would make more sense to me to do this in setupFlags(), closer to where we actually use the context.

Do we need to do the same thing in WebGLRenderingContext::maybeRestoreContext() ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>455534</commentid>
    <comment_count>3</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-08-23 11:22:24 -0700</bug_when>
    <thetext>It looks like we don&apos;t call makeContextCurrent at all in WebGLRenderingContext.cpp.  What are the rules supposed to be for GraphicsContext3D::makeContextCurrent() in cross-platform code?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>455687</commentid>
    <comment_count>4</comment_count>
      <attachid>104910</attachid>
    <who name="Iain Merrick">husky</who>
    <bug_when>2011-08-23 13:58:02 -0700</bug_when>
    <thetext>Created attachment 104910
Added asserts to catch (some) incorrect usage

I needed GraphicsContext3DInternal to handle onContextLost for this CL, which it was not currently doing. I&apos;ve done this by inheriting it from WebGraphicsContextLostCallback, which means we #include WebGraphicsContext3D rather than forward-declaring it; is that okay, or does it need to be hidden inside an adapter object?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>455718</commentid>
    <comment_count>5</comment_count>
      <attachid>104910</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-08-23 14:37:00 -0700</bug_when>
    <thetext>Comment on attachment 104910
Added asserts to catch (some) incorrect usage

Why did all the callback stuff change?

This feels a bit odd, I think it&apos;s checking at the wrong layer. Why is there only an ASSERT() in initializeExtensions?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>455726</commentid>
    <comment_count>6</comment_count>
    <who name="Nat Duca">nduca</who>
    <bug_when>2011-08-23 14:54:42 -0700</bug_when>
    <thetext>I&apos;m not sure if this helps, but would it be easier to go to lazy-discovery of resource safety like I did in the GraphicsContext3D case? It would sidestep this discussion and vageueness about currentness.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>455727</commentid>
    <comment_count>7</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-08-23 15:00:18 -0700</bug_when>
    <thetext>Alternately we could handle this under the hood (by effectively calling makeContextCurrent() in the implementation) and say that&apos;s the way GraphicsContext3D works until someone has time to go in and put in proper assertions that verify the context really is current.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>455729</commentid>
    <comment_count>8</comment_count>
    <who name="Nat Duca">nduca</who>
    <bug_when>2011-08-23 15:05:13 -0700</bug_when>
    <thetext>Both are valid options. I&apos;d lean toward shadowing that way it leads to less complications down the road if someone decides they want webgl on a secondary context. Could even add some comments to the constructor of WebGraphicsContext saying &quot;dont put stuff here, yo!&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>455844</commentid>
    <comment_count>9</comment_count>
      <attachid>104910</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2011-08-23 17:13:03 -0700</bug_when>
    <thetext>Comment on attachment 104910
Added asserts to catch (some) incorrect usage

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

After our offline discussion I&apos;m strongly inclined to push the necessary makeContextCurrent() calls into the implementation, which should reduce this patch to a one-liner. What do you think?

&gt; Source/WebKit/chromium/src/GraphicsContext3DInternal.h:338
&gt; +    bool m_makeContextCurrentWasCalled;

As the comment indicates, this bool is fragile and doesn&apos;t handle multiple contexts per thread. Per our offline discussion, it sounds like the better direction for GraphicsContext3D is to make it easier to use, i.e., assume that makeContextCurrent() is called implicitly for each of its other entry points. That will also simplify this patch.

&gt; Source/WebKit/chromium/src/GraphicsContext3DChromium.cpp:801
&gt; +    ASSERT(m_makeContextCurrentWasCalled);

Let&apos;s just call makeContextCurrent() here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>455875</commentid>
    <comment_count>10</comment_count>
    <who name="Iain Merrick">husky</who>
    <bug_when>2011-08-23 17:37:10 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; (From update of attachment 104910 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=104910&amp;action=review
&gt; 
&gt; After our offline discussion I&apos;m strongly inclined to push the necessary makeContextCurrent() calls into the implementation, which should reduce this patch to a one-liner. What do you think?
&gt; 
&gt; &gt; Source/WebKit/chromium/src/GraphicsContext3DInternal.h:338
&gt; &gt; +    bool m_makeContextCurrentWasCalled;
&gt; 
&gt; As the comment indicates, this bool is fragile and doesn&apos;t handle multiple contexts per thread. Per our offline discussion, it sounds like the better direction for GraphicsContext3D is to make it easier to use, i.e., assume that makeContextCurrent() is called implicitly for each of its other entry points. That will also simplify this patch.
&gt; 
&gt; &gt; Source/WebKit/chromium/src/GraphicsContext3DChromium.cpp:801
&gt; &gt; +    ASSERT(m_makeContextCurrentWasCalled);
&gt; 
&gt; Let&apos;s just call makeContextCurrent() here.

And ignore the return value, right? That&apos;s what GraphicsContext3DOpenGL does.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>455880</commentid>
    <comment_count>11</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2011-08-23 17:42:28 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; (In reply to comment #9)
&gt; &gt; (From update of attachment 104910 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=104910&amp;action=review
&gt; &gt; 
&gt; &gt; After our offline discussion I&apos;m strongly inclined to push the necessary makeContextCurrent() calls into the implementation, which should reduce this patch to a one-liner. What do you think?
&gt; &gt; 
&gt; &gt; &gt; Source/WebKit/chromium/src/GraphicsContext3DInternal.h:338
&gt; &gt; &gt; +    bool m_makeContextCurrentWasCalled;
&gt; &gt; 
&gt; &gt; As the comment indicates, this bool is fragile and doesn&apos;t handle multiple contexts per thread. Per our offline discussion, it sounds like the better direction for GraphicsContext3D is to make it easier to use, i.e., assume that makeContextCurrent() is called implicitly for each of its other entry points. That will also simplify this patch.
&gt; &gt; 
&gt; &gt; &gt; Source/WebKit/chromium/src/GraphicsContext3DChromium.cpp:801
&gt; &gt; &gt; +    ASSERT(m_makeContextCurrentWasCalled);
&gt; &gt; 
&gt; &gt; Let&apos;s just call makeContextCurrent() here.
&gt; 
&gt; And ignore the return value, right? That&apos;s what GraphicsContext3DOpenGL does.

Yeah, I guess so. Or assert that it&apos;s true.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>455895</commentid>
    <comment_count>12</comment_count>
      <attachid>104949</attachid>
    <who name="Iain Merrick">husky</who>
    <bug_when>2011-08-23 18:03:41 -0700</bug_when>
    <thetext>Created attachment 104949
Just call makeContextCurrent() implicitly when it&apos;s needed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>455898</commentid>
    <comment_count>13</comment_count>
      <attachid>104949</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2011-08-23 18:07:34 -0700</bug_when>
    <thetext>Comment on attachment 104949
Just call makeContextCurrent() implicitly when it&apos;s needed

Thanks. Looks good to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>455935</commentid>
    <comment_count>14</comment_count>
      <attachid>104949</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-08-23 19:11:24 -0700</bug_when>
    <thetext>Comment on attachment 104949
Just call makeContextCurrent() implicitly when it&apos;s needed

Clearing flags on attachment: 104949

Committed r93689: &lt;http://trac.webkit.org/changeset/93689&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>455936</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-08-23 19:11:29 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>104867</attachid>
            <date>2011-08-23 11:06:26 -0700</date>
            <delta_ts>2011-08-23 13:58:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>1113</size>
            <attacher name="Iain Merrick">husky</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA5MzYxNCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTUgQEAKKzIwMTEtMDgtMjMgIElhaW4gTWVycmljayAgPGh1c2t5QGdvb2dsZS5j
b20+CisKKyAgICAgICAgW2Nocm9taXVtXSBNYWtlIFdlYkdMIGNvbnRleHQgY3VycmVudCBiZWZv
cmUgcXVlcnlpbmcgZm9yIGV4dGVuc2lvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTY2Nzg4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiAoT09QUyEpCisKKyAgICAgICAgKiBodG1s
L2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2Vi
R0xSZW5kZXJpbmdDb250ZXh0OjpXZWJHTFJlbmRlcmluZ0NvbnRleHQpOgorCiAyMDExLTA4LTIz
ICBKdWxpZW4gQ2hhZmZyYWl4ICA8amNoYWZmcmFpeEB3ZWJraXQub3JnPgogCiAgICAgICAgIFJl
ZHVjZSB0aGUgYW1vdW50IG9mIFJlbmRlckxheWVyIHJlY3RhbmdsZXMnIHVwZGF0ZSB3aGVuIHNj
cm9sbGluZwpJbmRleDogV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250
ZXh0LmNwcAkocmV2aXNpb24gOTM2MDMpCisrKyBXZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVu
ZGVyaW5nQ29udGV4dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM4NCw2ICszODQsNyBAQAogICAg
ICwgbV9hdHRyaWJ1dGVzKGF0dHJpYnV0ZXMpCiB7CiAgICAgQVNTRVJUKG1fY29udGV4dCk7Cisg
ICAgbV9jb250ZXh0LT5tYWtlQ29udGV4dEN1cnJlbnQoKTsKICAgICBzZXR1cEZsYWdzKCk7CiAg
ICAgaW5pdGlhbGl6ZU5ld0NvbnRleHQoKTsKIH0K
</data>
<flag name="review"
          id="100856"
          type_id="1"
          status="-"
          setter="jamesr"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>104910</attachid>
            <date>2011-08-23 13:58:02 -0700</date>
            <delta_ts>2011-08-23 18:03:41 -0700</delta_ts>
            <desc>Added asserts to catch (some) incorrect usage</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>8706</size>
            <attacher name="Iain Merrick">husky</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0dyYXBoaWNzQ29udGV4dDNESW50ZXJu
YWwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9HcmFwaGljc0Nv
bnRleHQzREludGVybmFsLmgJKHJldmlzaW9uIDkzNjAzKQorKysgU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvR3JhcGhpY3NDb250ZXh0M0RJbnRlcm5hbC5oCSh3b3JraW5nIGNvcHkpCkBAIC0y
OCw2ICsyOCw3IEBACiAKICNpbmNsdWRlICJFeHRlbnNpb25zM0RDaHJvbWl1bS5oIgogI2luY2x1
ZGUgIkdyYXBoaWNzQ29udGV4dDNELmgiCisjaW5jbHVkZSAiV2ViR3JhcGhpY3NDb250ZXh0M0Qu
aCIKICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9Pd25BcnJheVB0ci5o
PgogI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KQEAgLTQwLDcgKzQxLDYgQEAKICNlbmRpZgogCiBu
YW1lc3BhY2UgV2ViS2l0IHsKLWNsYXNzIFdlYkdyYXBoaWNzQ29udGV4dDNEOwogY2xhc3MgV2Vi
Vmlld0ltcGw7CiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIApAQCAtNTAsMTMgKzUwLDEyIEBACiAj
aWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogY2xhc3MgV2ViR0xMYXllckNocm9taXVt
OwogI2VuZGlmCi1jbGFzcyBHcmFwaGljc0NvbnRleHRMb3N0Q2FsbGJhY2tBZGFwdGVyOwogY2xh
c3MgU3dhcEJ1ZmZlcnNDb21wbGV0ZUNhbGxiYWNrQWRhcHRlcjsKIAotY2xhc3MgR3JhcGhpY3ND
b250ZXh0M0RJbnRlcm5hbCB7CitjbGFzcyBHcmFwaGljc0NvbnRleHQzREludGVybmFsIDogcHVi
bGljIFdlYktpdDo6V2ViR3JhcGhpY3NDb250ZXh0M0Q6OldlYkdyYXBoaWNzQ29udGV4dExvc3RD
YWxsYmFjayB7CiBwdWJsaWM6CiAgICAgR3JhcGhpY3NDb250ZXh0M0RJbnRlcm5hbCgpOwotICAg
IH5HcmFwaGljc0NvbnRleHQzREludGVybmFsKCk7CisgICAgdmlydHVhbCB+R3JhcGhpY3NDb250
ZXh0M0RJbnRlcm5hbCgpOwogCiAgICAgYm9vbCBpbml0aWFsaXplKEdyYXBoaWNzQ29udGV4dDNE
OjpBdHRyaWJ1dGVzIGF0dHJzLCBIb3N0V2luZG93KiBob3N0V2luZG93LCBib29sIHJlbmRlckRp
cmVjdGx5VG9Ib3N0V2luZG93KTsKIApAQCAtOTcsNiArOTYsOSBAQAogICAgIHZvaWQgcmVsZWFz
ZVNoYWRlckNvbXBpbGVyKCk7CiAgICAgYm9vbCBpc0NvbnRleHRMb3N0KCk7CiAKKyAgICAvLyBX
ZWJHcmFwaGljc0NvbnRleHQzRCBjYWxsYmFja3MKKyAgICB2aXJ0dWFsIHZvaWQgb25Db250ZXh0
TG9zdCgpOworCiAgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAgLy8gRW50cnkgcG9pbnRzIGZvciBX
ZWJHTC4KICAgICAvLwpAQCAtMjkyLDcgKzI5NCw3IEBACiBwcml2YXRlOgogICAgIE93blB0cjxX
ZWJLaXQ6OldlYkdyYXBoaWNzQ29udGV4dDNEPiBtX2ltcGw7CiAgICAgT3duUHRyPEV4dGVuc2lv
bnMzRENocm9taXVtPiBtX2V4dGVuc2lvbnM7Ci0gICAgT3duUHRyPEdyYXBoaWNzQ29udGV4dExv
c3RDYWxsYmFja0FkYXB0ZXI+IG1fY29udGV4dExvc3RDYWxsYmFja0FkYXB0ZXI7CisgICAgT3du
UHRyPEdyYXBoaWNzQ29udGV4dDNEOjpDb250ZXh0TG9zdENhbGxiYWNrPiBtX2NvbnRleHRMb3N0
Q2FsbGJhY2s7CiAgICAgT3duUHRyPFN3YXBCdWZmZXJzQ29tcGxldGVDYWxsYmFja0FkYXB0ZXI+
IG1fc3dhcEJ1ZmZlcnNDb21wbGV0ZUNhbGxiYWNrQWRhcHRlcjsKICAgICBXZWJLaXQ6OldlYlZp
ZXdJbXBsKiBtX3dlYlZpZXdJbXBsOwogICAgIGJvb2wgbV9pbml0aWFsaXplZEF2YWlsYWJsZUV4
dGVuc2lvbnM7CkBAIC0zMjcsNiArMzI5LDE0IEBACiAjZW5kaWYKIAogICAgIHZvaWQgaW5pdGlh
bGl6ZUV4dGVuc2lvbnMoKTsKKworI2lmbmRlZiBOREVCVUcKKyAgICAvLyBVc2VkIHRvIGFzc2Vy
dCBtYWtlQ29udGV4dEN1cnJlbnQgd2FzIGNhbGxlZCBiZWZvcmUgYW55IG90aGVyIG1ldGhvZC4K
KyAgICAvLyBOb3RlIHRoYXQgd2UgY2FuJ3QgY2hlY2sgdGhhdCBvdXIgY29udGV4dCBpcyBjdXJy
ZW50ICpub3cqIChidXQgaW4gZnV0dXJlCisgICAgLy8gdGhpcyB3aWxsIGJlIGFzc2VydGVkIGJ5
IHRoZSB1bmRlcmx5aW5nIGltcGxlbWVudGF0aW9uKS4KKyAgICAvLyBUT0RPOiBSZW1vdmUgdGhp
cyB3aGVuIFdlYkdyYXBoaWNzM0QgaW1wbGVtZW50YXRpb24gaGFzIHN0cmljdCBhc3NlcnRzLgor
ICAgIGJvb2wgbV9tYWtlQ29udGV4dEN1cnJlbnRXYXNDYWxsZWQ7CisjZW5kaWYKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0dy
YXBoaWNzQ29udGV4dDNEQ2hyb21pdW0uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL0dyYXBoaWNzQ29udGV4dDNEQ2hyb21pdW0uY3BwCShyZXZpc2lvbiA5MzYw
MykKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0dyYXBoaWNzQ29udGV4dDNEQ2hyb21p
dW0uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05NSw2ICs5NSw5IEBACiAjZWxzZQogI2Vycm9yIE11
c3QgcG9ydCB0byB5b3VyIHBsYXRmb3JtCiAjZW5kaWYKKyNpZm5kZWYgTkRFQlVHCisgICAgLCBt
X21ha2VDb250ZXh0Q3VycmVudFdhc0NhbGxlZChmYWxzZSkKKyNlbmRpZgogewogfQogCkBAIC0x
MjgsNiArMTMxLDcgQEAKICAgICBpZiAoIXdlYkNvbnRleHQtPmluaXRpYWxpemUod2ViQXR0cmli
dXRlcywgbV93ZWJWaWV3SW1wbCwgcmVuZGVyRGlyZWN0bHlUb0hvc3RXaW5kb3cpKQogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAgICAgbV9pbXBsID0gd2ViQ29udGV4dC5yZWxlYXNlKCk7CisgICAg
bV9pbXBsLT5zZXRDb250ZXh0TG9zdENhbGxiYWNrKHRoaXMpOwogCiAjaWYgVVNFKEFDQ0VMRVJB
VEVEX0NPTVBPU0lUSU5HKQogICAgIG1fY29tcG9zaXRpbmdMYXllciA9IFdlYkdMTGF5ZXJDaHJv
bWl1bTo6Y3JlYXRlKDApOwpAQCAtNDQyLDcgKzQ0NiwxMyBAQAogICAgIG1faW1wbC0+bmFtZShh
MSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNywgYTgsIGE5LCBhMTApOyBcCiB9CiAKLURFTEVHQVRF
X1RPX0lNUExfUihtYWtlQ29udGV4dEN1cnJlbnQsIGJvb2wpCitib29sIEdyYXBoaWNzQ29udGV4
dDNESW50ZXJuYWw6Om1ha2VDb250ZXh0Q3VycmVudCgpCit7CisjaWZuZGVmIE5ERUJVRworICAg
IG1fbWFrZUNvbnRleHRDdXJyZW50V2FzQ2FsbGVkID0gdHJ1ZTsKKyNlbmRpZgorICAgIHJldHVy
biBtX2ltcGwtPm1ha2VDb250ZXh0Q3VycmVudCgpOworfQogCiBib29sIEdyYXBoaWNzQ29udGV4
dDNESW50ZXJuYWw6OmlzR0xFUzJDb21wbGlhbnQoKSBjb25zdAogewpAQCAtNzg4LDYgKzc5OCw3
IEBACiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0M0RJbnRlcm5hbDo6aW5pdGlhbGl6ZUV4dGVuc2lv
bnMoKQogeworICAgIEFTU0VSVChtX21ha2VDb250ZXh0Q3VycmVudFdhc0NhbGxlZCk7CiAgICAg
aWYgKCFtX2luaXRpYWxpemVkQXZhaWxhYmxlRXh0ZW5zaW9ucykgewogICAgICAgICBTdHJpbmcg
ZXh0ZW5zaW9uc1N0cmluZyA9IGdldFN0cmluZyhHcmFwaGljc0NvbnRleHQzRDo6RVhURU5TSU9O
Uyk7CiAgICAgICAgIHNwbGl0U3RyaW5nSGVscGVyKGV4dGVuc2lvbnNTdHJpbmcsIG1fZW5hYmxl
ZEV4dGVuc2lvbnMpOwpAQCAtMTIwNCwzMSArMTIxNSwxOCBAQAogCiBERUxFR0FURV9UT19JTlRF
Uk5BTF8xKHNldENvbnRleHRMb3N0Q2FsbGJhY2ssIFBhc3NPd25QdHI8R3JhcGhpY3NDb250ZXh0
M0Q6OkNvbnRleHRMb3N0Q2FsbGJhY2s+KQogCi1jbGFzcyBHcmFwaGljc0NvbnRleHRMb3N0Q2Fs
bGJhY2tBZGFwdGVyIDogcHVibGljIFdlYktpdDo6V2ViR3JhcGhpY3NDb250ZXh0M0Q6OldlYkdy
YXBoaWNzQ29udGV4dExvc3RDYWxsYmFjayB7Ci1wdWJsaWM6Ci0gICAgdmlydHVhbCB2b2lkIG9u
Q29udGV4dExvc3QoKTsKLSAgICBzdGF0aWMgUGFzc093blB0cjxHcmFwaGljc0NvbnRleHRMb3N0
Q2FsbGJhY2tBZGFwdGVyPiBjcmVhdGUoUGFzc093blB0cjxHcmFwaGljc0NvbnRleHQzRDo6Q29u
dGV4dExvc3RDYWxsYmFjaz4pOwotICAgIHZpcnR1YWwgfkdyYXBoaWNzQ29udGV4dExvc3RDYWxs
YmFja0FkYXB0ZXIoKSB7IH0KLXByaXZhdGU6Ci0gICAgR3JhcGhpY3NDb250ZXh0TG9zdENhbGxi
YWNrQWRhcHRlcihQYXNzT3duUHRyPEdyYXBoaWNzQ29udGV4dDNEOjpDb250ZXh0TG9zdENhbGxi
YWNrPiBjYikgOiBtX2NvbnRleHRMb3N0Q2FsbGJhY2soY2IpIHsgfQotICAgIE93blB0cjxHcmFw
aGljc0NvbnRleHQzRDo6Q29udGV4dExvc3RDYWxsYmFjaz4gbV9jb250ZXh0TG9zdENhbGxiYWNr
OwotfTsKLQotdm9pZCBHcmFwaGljc0NvbnRleHRMb3N0Q2FsbGJhY2tBZGFwdGVyOjpvbkNvbnRl
eHRMb3N0KCkKK3ZvaWQgR3JhcGhpY3NDb250ZXh0M0RJbnRlcm5hbDo6b25Db250ZXh0TG9zdCgp
CiB7CisjaWZuZGVmIERFQlVHCisgICAgbV9tYWtlQ29udGV4dEN1cnJlbnRXYXNDYWxsZWQgPSBm
YWxzZTsKKyNlbmRpZgogICAgIGlmIChtX2NvbnRleHRMb3N0Q2FsbGJhY2spCiAgICAgICAgIG1f
Y29udGV4dExvc3RDYWxsYmFjay0+b25Db250ZXh0TG9zdCgpOwogfQogCi1QYXNzT3duUHRyPEdy
YXBoaWNzQ29udGV4dExvc3RDYWxsYmFja0FkYXB0ZXI+IEdyYXBoaWNzQ29udGV4dExvc3RDYWxs
YmFja0FkYXB0ZXI6OmNyZWF0ZShQYXNzT3duUHRyPEdyYXBoaWNzQ29udGV4dDNEOjpDb250ZXh0
TG9zdENhbGxiYWNrPiBjYikKLXsKLSAgICByZXR1cm4gYWRvcHRQdHIoY2IuZ2V0KCkgPyBuZXcg
R3JhcGhpY3NDb250ZXh0TG9zdENhbGxiYWNrQWRhcHRlcihjYikgOiAwKTsKLX0KLQogdm9pZCBH
cmFwaGljc0NvbnRleHQzREludGVybmFsOjpzZXRDb250ZXh0TG9zdENhbGxiYWNrKFBhc3NPd25Q
dHI8R3JhcGhpY3NDb250ZXh0M0Q6OkNvbnRleHRMb3N0Q2FsbGJhY2s+IGNiKQogewotICAgIG1f
Y29udGV4dExvc3RDYWxsYmFja0FkYXB0ZXIgPSBHcmFwaGljc0NvbnRleHRMb3N0Q2FsbGJhY2tB
ZGFwdGVyOjpjcmVhdGUoY2IpOwotICAgIG1faW1wbC0+c2V0Q29udGV4dExvc3RDYWxsYmFjayht
X2NvbnRleHRMb3N0Q2FsbGJhY2tBZGFwdGVyLmdldCgpKTsKKyAgICBtX2NvbnRleHRMb3N0Q2Fs
bGJhY2sgPSBjYjsKIH0KIAogYm9vbCBHcmFwaGljc0NvbnRleHQzRDo6aXNHTEVTMkNvbXBsaWFu
dCgpIGNvbnN0CkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwkocmV2aXNpb24gOTM2MzUp
CisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAt
MSwzICsxLDI3IEBACisyMDExLTA4LTIzICBJYWluIE1lcnJpY2sgIDxodXNreUBnb29nbGUuY29t
PgorCisgICAgICAgIFtjaHJvbWl1bV0gTWFrZSBXZWJHTCBjb250ZXh0IGN1cnJlbnQgYmVmb3Jl
IHF1ZXJ5aW5nIGZvciBleHRlbnNpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD02Njc4OAorCisgICAgICAgIFRoZSBpbnRlbmRlZCBjb250cmFjdCBv
ZiBHcmFwaGljc0NvbnRleHQzRCBpcyB0aGF0IGNhbGxlcnMgbXVzdCBjYWxsCisgICAgICAgIG1h
a2VDb250ZXh0Q3VycmVudCgpIGJlZm9yZSBhbnkgb3RoZXIgR0wgY29tbWFuZC4gVXBjb21pbmcg
Q2hyb21pdW0gQ0xzCisgICAgICAgIGZvciB0aHJlYWRlZCBjb21wb3NpdGluZyB3aWxsIHJlcXVp
cmUgdGhpcy4gVGhpcyBDTCBhZGRzIHNvbWUgYXNzZXJ0cworICAgICAgICB0byBjYXRjaCBiYWQg
dXNhZ2UgKGFsdGhvdWdoIHRoZXkgYXJlIE5PVCBjb21wcmVoZW5zaXZlKSwgYW5kIGZpeGVzCisg
ICAgICAgIFdlYkdMUmVuZGVyaW5nQ29udGV4dCdzIGluaXRpYWxpemF0aW9uIHByb2Nlc3MuIAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IGV4
aXN0aW5nIFdlYkdMIHRlc3RzCisKKyAgICAgICAgKiBzcmMvR3JhcGhpY3NDb250ZXh0M0RDaHJv
bWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzREludGVybmFsOjpH
cmFwaGljc0NvbnRleHQzREludGVybmFsKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29u
dGV4dDNESW50ZXJuYWw6OmluaXRpYWxpemUpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3ND
b250ZXh0M0RJbnRlcm5hbDo6bWFrZUNvbnRleHRDdXJyZW50KToKKyAgICAgICAgKFdlYkNvcmU6
OkdyYXBoaWNzQ29udGV4dDNESW50ZXJuYWw6OmluaXRpYWxpemVFeHRlbnNpb25zKToKKyAgICAg
ICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNESW50ZXJuYWw6Om9uQ29udGV4dExvc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0RJbnRlcm5hbDo6c2V0Q29udGV4dExv
c3RDYWxsYmFjayk6CisgICAgICAgICogc3JjL0dyYXBoaWNzQ29udGV4dDNESW50ZXJuYWwuaDoK
KwogMjAxMS0wOC0yMyAgQWRhbSBLbGVpbiAgPGFkYW1rQGNocm9taXVtLm9yZz4KIAogICAgICAg
ICBbY2hyb21pdW1dIFJlbW92ZSBhIGZldyBGSVhNRSAjZGVmaW5lcyBpbiBBUEkgaGVhZGVycwpJ
bmRleDogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwkocmV2aXNpb24gOTM2MzUpCisrKyBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyMiBAQAorMjAxMS0wOC0yMyAgSWFpbiBNZXJy
aWNrICA8aHVza3lAZ29vZ2xlLmNvbT4KKworICAgICAgICBbY2hyb21pdW1dIE1ha2UgV2ViR0wg
Y29udGV4dCBjdXJyZW50IGJlZm9yZSBxdWVyeWluZyBmb3IgZXh0ZW5zaW9ucworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY3ODgKKworICAgICAgICBU
aGUgaW50ZW5kZWQgY29udHJhY3Qgb2YgR3JhcGhpY3NDb250ZXh0M0QgaXMgdGhhdCBjYWxsZXJz
IG11c3QgY2FsbAorICAgICAgICBtYWtlQ29udGV4dEN1cnJlbnQoKSBiZWZvcmUgYW55IG90aGVy
IEdMIGNvbW1hbmQuIFVwY29taW5nIENocm9taXVtIENMcworICAgICAgICBmb3IgdGhyZWFkZWQg
Y29tcG9zaXRpbmcgd2lsbCByZXF1aXJlIHRoaXMuIFRoaXMgQ0wgYWRkcyBzb21lIGFzc2VydHMK
KyAgICAgICAgdG8gY2F0Y2ggYmFkIHVzYWdlIChhbHRob3VnaCB0aGV5IGFyZSBOT1QgY29tcHJl
aGVuc2l2ZSksIGFuZCBmaXhlcworICAgICAgICBXZWJHTFJlbmRlcmluZ0NvbnRleHQncyBpbml0
aWFsaXphdGlvbiBwcm9jZXNzLiAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBUZXN0OiBleGlzdGluZyBXZWJHTCB0ZXN0cworCisgICAgICAgICogaHRt
bC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oldl
YkdMUmVuZGVyaW5nQ29udGV4dDo6aW5pdGlhbGl6ZU5ld0NvbnRleHQpOgorICAgICAgICAoV2Vi
Q29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0OjpzZXR1cEZsYWdzKToKKwogMjAxMS0wOC0yMyAg
QWhtYWQgU2hhcmlmICA8YXNoYXJpZkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgRml4ZWQgd2Fy
bmluZ3MgcHJvZHVjZWQgYnkgZ2NjLTQuNi4wLgpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3BwCShyZXZpc2lvbiA5MzYw
MykKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTM5MSw2ICszOTEsOCBAQAogdm9pZCBXZWJHTFJlbmRlcmlu
Z0NvbnRleHQ6OmluaXRpYWxpemVOZXdDb250ZXh0KCkKIHsKICAgICBBU1NFUlQoIW1fY29udGV4
dExvc3QpOworICAgIG1fY29udGV4dC0+bWFrZUNvbnRleHRDdXJyZW50KCk7CisKICAgICBtX25l
ZWRzVXBkYXRlID0gdHJ1ZTsKICAgICBtX21hcmtlZENhbnZhc0RpcnR5ID0gZmFsc2U7CiAgICAg
bV9hY3RpdmVUZXh0dXJlVW5pdCA9IDA7CkBAIC00NTgsNiArNDYwLDcgQEAKIHZvaWQgV2ViR0xS
ZW5kZXJpbmdDb250ZXh0OjpzZXR1cEZsYWdzKCkKIHsKICAgICBBU1NFUlQobV9jb250ZXh0KTsK
KyAgICBtX2NvbnRleHQtPm1ha2VDb250ZXh0Q3VycmVudCgpOwogCiAgICAgbV9pc0dMRVMyQ29t
cGxpYW50ID0gbV9jb250ZXh0LT5pc0dMRVMyQ29tcGxpYW50KCk7CiAgICAgbV9pc0Vycm9yR2Vu
ZXJhdGVkT25PdXRPZkJvdW5kc0FjY2Vzc2VzID0gbV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkt
PmlzRW5hYmxlZCgiR0xfQ0hST01JVU1fc3RyaWN0X2F0dHJpYnMiKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>104949</attachid>
            <date>2011-08-23 18:03:41 -0700</date>
            <delta_ts>2011-08-23 19:11:24 -0700</delta_ts>
            <desc>Just call makeContextCurrent() implicitly when it&apos;s needed</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>1722</size>
            <attacher name="Iain Merrick">husky</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0dyYXBoaWNzQ29udGV4dDNEQ2hyb21p
dW0uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0dyYXBoaWNz
Q29udGV4dDNEQ2hyb21pdW0uY3BwCShyZXZpc2lvbiA5MzYwMykKKysrIFNvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL0dyYXBoaWNzQ29udGV4dDNEQ2hyb21pdW0uY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC03ODgsNyArNzg4LDkgQEAKIAogdm9pZCBHcmFwaGljc0NvbnRleHQzREludGVybmFsOjpp
bml0aWFsaXplRXh0ZW5zaW9ucygpCiB7Ci0gICAgaWYgKCFtX2luaXRpYWxpemVkQXZhaWxhYmxl
RXh0ZW5zaW9ucykgeworICAgIGJvb2wgc3VjY2VzcyA9IG1ha2VDb250ZXh0Q3VycmVudCgpOwor
ICAgIEFTU0VSVChzdWNjZXNzKTsKKyAgICBpZiAoc3VjY2VzcyAmJiAhbV9pbml0aWFsaXplZEF2
YWlsYWJsZUV4dGVuc2lvbnMpIHsKICAgICAgICAgU3RyaW5nIGV4dGVuc2lvbnNTdHJpbmcgPSBn
ZXRTdHJpbmcoR3JhcGhpY3NDb250ZXh0M0Q6OkVYVEVOU0lPTlMpOwogICAgICAgICBzcGxpdFN0
cmluZ0hlbHBlcihleHRlbnNpb25zU3RyaW5nLCBtX2VuYWJsZWRFeHRlbnNpb25zKTsKIApJbmRl
eDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cJKHJldmlzaW9uIDkzNjc1KQorKysgU291cmNlL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyMCBAQAor
MjAxMS0wOC0yMyAgSWFpbiBNZXJyaWNrICA8aHVza3lAZ29vZ2xlLmNvbT4KKworICAgICAgICBb
Y2hyb21pdW1dIE1ha2UgV2ViR0wgY29udGV4dCBjdXJyZW50IGJlZm9yZSBxdWVyeWluZyBmb3Ig
ZXh0ZW5zaW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NjY3ODgKKworICAgICAgICBXZSdyZSBtYWtpbmcgY2hhbmdlcyBvbiB0aGUgQ2hyb21pdW0g
c2lkZSBmb3IgdGhyZWFkZWQgY29tcG9zaXRpbmcgdGhhdAorICAgICAgICB3aWxsIHJlcXVpcmUg
bWFrZUNvbnRleHRDdXJyZW50IHRvIGJlIGNhbGxlZCBvbiB0aGUgYXBwcm9wcmlhdGUgdGhyZWFk
CisgICAgICAgIGJlZm9yZSBhbnkgb3RoZXIgR0wgY2FsbHMuCisKKyAgICAgICAgSW4gbGluZSB3
aXRoIG90aGVyIEdyYXBoaWNzQ29udGV4dDNEIGltcGxlbWVudGF0aW9ucywgd2UgZG8gdGhpcwor
ICAgICAgICBpbXBsaWNpdGx5LiBUaGlzIGlzIHRoZSBtaW5pbXVtIGNoYW5nZSB0aGF0IG1ha2Vz
IFdlYkdMIGNvbXBsaWFudC4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIHNyYy9HcmFwaGljc0NvbnRleHQzRENocm9taXVtLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNESW50ZXJuYWw6OmluaXRpYWxpemVFeHRlbnNpb25z
KToKKwogMjAxMS0wOC0yMyAgRG1pdHJ5IExvbW92ICA8RG1pdHJ5IExvbW92IChkc2xvbW92QGdv
b2dsZS5jb20pPgogCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD02Njc1MSAK
</data>

          </attachment>
      

    </bug>

</bugzilla>