<?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>45769</bug_id>
          
          <creation_ts>2010-09-14 12:19:01 -0700</creation_ts>
          <short_desc>drawElements with count=0 and offset = 0 should not generate GL error or crash</short_desc>
          <delta_ts>2010-09-29 20:36:49 -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>WebGL</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>46631</blocked>
    
    <blocked>46870</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Zhenyao Mo">zmo</reporter>
          <assigned_to name="Zhenyao Mo">zmo</assigned_to>
          <cc>cmarrin</cc>
    
    <cc>enne</cc>
    
    <cc>eric</cc>
    
    <cc>gman</cc>
    
    <cc>kbr</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>279075</commentid>
    <comment_count>0</comment_count>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2010-09-14 12:19:01 -0700</bug_when>
    <thetext>gman@google found that drawElements(count=0, offset=0) will generate GL error or crash in some cases.

For example, on khronos webgl demo google/particles, if we change numParticles: 20 to 0 in demo.js, browser will crash.

Also, khronos webgl conformance test conformance/draw-elements-out-of-bounds.html wil generate an error.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>279077</commentid>
    <comment_count>1</comment_count>
      <attachid>67587</attachid>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2010-09-14 12:23:01 -0700</bug_when>
    <thetext>Created attachment 67587
patch

The test is in sync with khronos.

Also, tested the particles demo with numParticles=0, it no longer crashes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>279111</commentid>
    <comment_count>2</comment_count>
      <attachid>67587</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2010-09-14 13:01:09 -0700</bug_when>
    <thetext>Comment on attachment 67587
patch

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

Basically looks OK but I think one cleanup is desired.

&gt; WebCore/html/canvas/WebGLRenderingContext.cpp:789
&gt; +            else if (m_boundElementArrayBuffer-&gt;elementArrayBuffer()) {
I think it would be cleaner and safer to hoist this check and the other one below to the top of this function and return early; i.e., &quot;if (!m_boundElementArrayBuffer-&gt;elementArrayBuffer()) return false;&quot; and then let the precise validation handle it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>279161</commentid>
    <comment_count>3</comment_count>
      <attachid>67604</attachid>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2010-09-14 14:09:44 -0700</bug_when>
    <thetext>Created attachment 67604
revised patch: responding to kbr&apos;s review</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>284916</commentid>
    <comment_count>4</comment_count>
      <attachid>67604</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2010-09-24 19:02:55 -0700</bug_when>
    <thetext>Comment on attachment 67604
revised patch: responding to kbr&apos;s review

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

Sorry for the long delay getting back to this review. I&apos;m marking it r+ since I think the logic is correct and this fix has been held up long enough, but ideally we would add one more test simulating vertex attribute 0 and calling drawElements with count==0. If you decide to add this test now, feel free to add it upon commit, or otherwise please file a bug about adding the test.

&gt; WebCore/html/canvas/WebGLRenderingContext.cpp:799
&gt; +            numElements /= sizeof(unsigned short);

This can cause numElements to go to 0 if the buffer only has one element. However, I don&apos;t think that&apos;s a problem since it will only cause false to be returned.

&gt; WebCore/html/canvas/WebGLRenderingContext.cpp:830
&gt; +        return true;

This clause seems to be used when simulating vertex attribute 0. We should really add a test for that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>285529</commentid>
    <comment_count>5</comment_count>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2010-09-27 10:14:24 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 67604 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=67604&amp;action=review
&gt; 
&gt; Sorry for the long delay getting back to this review. I&apos;m marking it r+ since I think the logic is correct and this fix has been held up long enough, but ideally we would add one more test simulating vertex attribute 0 and calling drawElements with count==0. If you decide to add this test now, feel free to add it upon commit, or otherwise please file a bug about adding the test.
&gt; 
&gt; &gt; WebCore/html/canvas/WebGLRenderingContext.cpp:799
&gt; &gt; +            numElements /= sizeof(unsigned short);
&gt; 
&gt; This can cause numElements to go to 0 if the buffer only has one element. However, I don&apos;t think that&apos;s a problem since it will only cause false to be returned.
&gt; 
&gt; &gt; WebCore/html/canvas/WebGLRenderingContext.cpp:830
&gt; &gt; +        return true;
&gt; 
&gt; This clause seems to be used when simulating vertex attribute 0. We should really add a test for that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>285531</commentid>
    <comment_count>6</comment_count>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2010-09-27 10:15:44 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 67604 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=67604&amp;action=review
&gt; 
&gt; Sorry for the long delay getting back to this review. I&apos;m marking it r+ since I think the logic is correct and this fix has been held up long enough, but ideally we would add one more test simulating vertex attribute 0 and calling drawElements with count==0. If you decide to add this test now, feel free to add it upon commit, or otherwise please file a bug about adding the test.

I&apos;ll file a bug on this.

&gt; 
&gt; &gt; WebCore/html/canvas/WebGLRenderingContext.cpp:799
&gt; &gt; +            numElements /= sizeof(unsigned short);
&gt; 
&gt; This can cause numElements to go to 0 if the buffer only has one element. However, I don&apos;t think that&apos;s a problem since it will only cause false to be returned.
&gt; 
&gt; &gt; WebCore/html/canvas/WebGLRenderingContext.cpp:830
&gt; &gt; +        return true;
&gt; 
&gt; This clause seems to be used when simulating vertex attribute 0. We should really add a test for that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>285535</commentid>
    <comment_count>7</comment_count>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2010-09-27 10:23:27 -0700</bug_when>
    <thetext>Committed r68401: &lt;http://trac.webkit.org/changeset/68401&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>287353</commentid>
    <comment_count>8</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-09-29 20:20:32 -0700</bug_when>
    <thetext>fast/canvas/webgl/draw-elements-out-of-bounds.html is crashing on Snow Leopard.

http://build.webkit.org/results/SnowLeopard%20Intel%20Release%20(Tests)/r68740%20(18485)/fast/canvas/webgl/draw-elements-out-of-bounds-stderr.txt

Assertion failed: (0 &amp;&amp; &quot;InitThread(): Process hasn&apos;t been initalised.&quot;), function InitThread, file /Volumes/Data/WebKit-BuildSlave/snowleopard-intel-release/build/ANGLE/src/compiler/InitializeDll.cpp, line 71.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>287357</commentid>
    <comment_count>9</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-09-29 20:24:25 -0700</bug_when>
    <thetext>The crashing may have started after I turned off some canvas tests as part of this rollout:
http://trac.webkit.org/changeset/68737</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>67587</attachid>
            <date>2010-09-14 12:23:01 -0700</date>
            <delta_ts>2010-09-14 14:09:44 -0700</delta_ts>
            <desc>patch</desc>
            <filename>draw0.patch</filename>
            <type>text/plain</type>
            <size>7351</size>
            <attacher name="Zhenyao Mo">zmo</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2NzQ4MykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTUgQEAKKzIwMTAtMDktMTQgIFpoZW55YW8gTW8gIDx6bW9AZ29vZ2xlLmNvbT4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBkcmF3RWxl
bWVudHMgd2l0aCBjb3VudD0wIGFuZCBvZmZzZXQgPSAwIHNob3VsZCBub3QgZ2VuZXJhdGUgR0wg
ZXJyb3Igb3IgY3Jhc2gKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTQ1NzY5CisKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRl
eHQuY3BwOiBEZWFsIHdpdGggY291bnQ9MCBjYXNlLgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xS
ZW5kZXJpbmdDb250ZXh0Ojp2YWxpZGF0ZUluZGV4QXJyYXlDb25zZXJ2YXRpdmUpOgorICAgICAg
ICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0Ojp2YWxpZGF0ZUluZGV4QXJyYXlQcmVj
aXNlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dDo6ZHJhd0VsZW1l
bnRzKToKKwogMjAxMC0wOS0xNCAgQW5kcmVhcyBLbGluZyAgPGFuZHJlYXMua2xpbmdAbm9raWEu
Y29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFudG9uaW8gR29tZXMuCkluZGV4OiBXZWJDb3Jl
L2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3BwCShyZXZpc2lvbiA2NzQw
NCkKKysrIFdlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNzc1LDYgKzc3NSw5IEBAIGJvb2wgV2ViR0xSZW5kZXJpbmdDb250ZXh0
Ojp2YWxpZGF0ZUluZGUKICAgICAvLyBpbmRleCwgc2tpcHMgdGhlIGV4cGVuc2l2ZSBwZXItZHJh
dy1jYWxsIGl0ZXJhdGlvbiBpbgogICAgIC8vIHZhbGlkYXRlSW5kZXhBcnJheVByZWNpc2UuCiAK
KyAgICBpZiAoIW1fYm91bmRFbGVtZW50QXJyYXlCdWZmZXIpCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKwogICAgIGxvbmcgbWF4SW5kZXggPSBtX2JvdW5kRWxlbWVudEFycmF5QnVmZmVyLT5nZXRD
YWNoZWRNYXhJbmRleCh0eXBlKTsKICAgICBpZiAobWF4SW5kZXggPCAwKSB7CiAgICAgICAgIC8v
IENvbXB1dGUgdGhlIG1heGltdW0gaW5kZXggaW4gdGhlIGVudGlyZSBidWZmZXIgZm9yIHRoZSBn
aXZlbiB0eXBlIG9mIGluZGV4LgpAQCAtNzgzLDcgKzc4Niw3IEBAIGJvb2wgV2ViR0xSZW5kZXJp
bmdDb250ZXh0Ojp2YWxpZGF0ZUluZGUKICAgICAgICAgICAgIHVuc2lnbmVkIG51bUVsZW1lbnRz
ID0gbV9ib3VuZEVsZW1lbnRBcnJheUJ1ZmZlci0+Ynl0ZUxlbmd0aCgpOwogICAgICAgICAgICAg
aWYgKCFudW1FbGVtZW50cykKICAgICAgICAgICAgICAgICBtYXhJbmRleCA9IDA7Ci0gICAgICAg
ICAgICBlbHNlIHsKKyAgICAgICAgICAgIGVsc2UgaWYgKG1fYm91bmRFbGVtZW50QXJyYXlCdWZm
ZXItPmVsZW1lbnRBcnJheUJ1ZmZlcigpKSB7CiAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWdu
ZWQgY2hhciogcCA9IHN0YXRpY19jYXN0PGNvbnN0IHVuc2lnbmVkIGNoYXIqPihtX2JvdW5kRWxl
bWVudEFycmF5QnVmZmVyLT5lbGVtZW50QXJyYXlCdWZmZXIoKS0+ZGF0YSgpKTsKICAgICAgICAg
ICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbnVtRWxlbWVudHM7IGkrKykKICAgICAg
ICAgICAgICAgICAgICAgbWF4SW5kZXggPSBtYXgobWF4SW5kZXgsIHN0YXRpY19jYXN0PGxvbmc+
KHBbaV0pKTsKQEAgLTc5NCw3ICs3OTcsNyBAQCBib29sIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6
dmFsaWRhdGVJbmRlCiAgICAgICAgICAgICB1bnNpZ25lZCBudW1FbGVtZW50cyA9IG1fYm91bmRF
bGVtZW50QXJyYXlCdWZmZXItPmJ5dGVMZW5ndGgoKSAvIHNpemVvZih1bnNpZ25lZCBzaG9ydCk7
CiAgICAgICAgICAgICBpZiAoIW51bUVsZW1lbnRzKQogICAgICAgICAgICAgICAgIG1heEluZGV4
ID0gMDsKLSAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgZWxzZSBpZiAobV9ib3VuZEVs
ZW1lbnRBcnJheUJ1ZmZlci0+ZWxlbWVudEFycmF5QnVmZmVyKCkpIHsKICAgICAgICAgICAgICAg
ICBjb25zdCB1bnNpZ25lZCBzaG9ydCogcCA9IHN0YXRpY19jYXN0PGNvbnN0IHVuc2lnbmVkIHNo
b3J0Kj4obV9ib3VuZEVsZW1lbnRBcnJheUJ1ZmZlci0+ZWxlbWVudEFycmF5QnVmZmVyKCktPmRh
dGEoKSk7CiAgICAgICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG51bUVsZW1l
bnRzOyBpKyspCiAgICAgICAgICAgICAgICAgICAgIG1heEluZGV4ID0gbWF4KG1heEluZGV4LCBz
dGF0aWNfY2FzdDxsb25nPihwW2ldKSk7CkBAIC04MjQsNiArODI3LDE0IEBAIGJvb2wgV2ViR0xS
ZW5kZXJpbmdDb250ZXh0Ojp2YWxpZGF0ZUluZGUKICAgICBpZiAoIW1fYm91bmRFbGVtZW50QXJy
YXlCdWZmZXIpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAorICAgIGlmICghY291bnQpIHsKKyAg
ICAgICAgbnVtRWxlbWVudHNSZXF1aXJlZCA9IDA7CisgICAgICAgIHJldHVybiB0cnVlOworICAg
IH0KKworICAgIGlmICghbV9ib3VuZEVsZW1lbnRBcnJheUJ1ZmZlci0+ZWxlbWVudEFycmF5QnVm
ZmVyKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKwogICAgIHVuc2lnbmVkIGxvbmcgdW9mZnNl
dCA9IHN0YXRpY19jYXN0PHVuc2lnbmVkIGxvbmc+KG9mZnNldCk7CiAgICAgdW5zaWduZWQgbG9u
ZyBuID0gY291bnQ7CiAKQEAgLTk2OCw2ICs5NzksOCBAQCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29u
dGV4dDo6ZHJhd0VsZW1lbnRzCiAgICAgICAgICAgICBtX2NvbnRleHQtPnN5bnRoZXNpemVHTEVy
cm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX09QRVJBVElPTik7CiAgICAgICAgICAgICBy
ZXR1cm47CiAgICAgICAgIH0KKyAgICAgICAgaWYgKCFjb3VudCkKKyAgICAgICAgICAgIHJldHVy
bjsKICAgICAgICAgaWYgKCF2YWxpZGF0ZUluZGV4QXJyYXlDb25zZXJ2YXRpdmUodHlwZSwgbnVt
RWxlbWVudHMpIHx8ICF2YWxpZGF0ZVJlbmRlcmluZ1N0YXRlKG51bUVsZW1lbnRzKSkgewogICAg
ICAgICAgICAgaWYgKCF2YWxpZGF0ZUluZGV4QXJyYXlQcmVjaXNlKGNvdW50LCB0eXBlLCBvZmZz
ZXQsIG51bUVsZW1lbnRzKSB8fCAhdmFsaWRhdGVSZW5kZXJpbmdTdGF0ZShudW1FbGVtZW50cykp
IHsKICAgICAgICAgICAgICAgICBtX2NvbnRleHQtPnN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNz
Q29udGV4dDNEOjpJTlZBTElEX09QRVJBVElPTik7CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA2NzQ4MykK
KysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBA
CisyMDEwLTA5LTE0ICBaaGVueWFvIE1vICA8em1vQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgZHJhd0VsZW1lbnRzIHdpdGggY291
bnQ9MCBhbmQgb2Zmc2V0ID0gMCBzaG91bGQgbm90IGdlbmVyYXRlIEdMIGVycm9yIG9yIGNyYXNo
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NTc2OQor
CisgICAgICAgICogZmFzdC9jYW52YXMvd2ViZ2wvZHJhdy1lbGVtZW50cy1vdXQtb2YtYm91bmRz
LWV4cGVjdGVkLnR4dDogVGVzdCBjb3VudD0wIGNhc2VzLgorICAgICAgICAqIGZhc3QvY2FudmFz
L3dlYmdsL2RyYXctZWxlbWVudHMtb3V0LW9mLWJvdW5kcy5odG1sOiBEaXR0by4KKwogMjAxMC0w
OS0xNCAgVG9ueSBDaGFuZyAgPHRvbnlAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3
ZWQsIHJlbW92ZSB0ZXN0cyB0aGF0IGFyZSBub3cgcGFzc2luZyBhZnRlciBOb2VsIEdvcmRvbidz
CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9kcmF3LWVsZW1lbnRzLW91dC1v
Zi1ib3VuZHMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY2Fu
dmFzL3dlYmdsL2RyYXctZWxlbWVudHMtb3V0LW9mLWJvdW5kcy1leHBlY3RlZC50eHQJKHJldmlz
aW9uIDY3NDA0KQorKysgTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvZHJhdy1lbGVtZW50
cy1vdXQtb2YtYm91bmRzLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMzQsNiArMzQs
NyBAQCBQQVNTIGNvbnRleHQuYnVmZmVyU3ViRGF0YShjb250ZXh0LkVMRU1FCiBQQVNTIGNvbnRl
eHQuZHJhd0VsZW1lbnRzKGNvbnRleHQuVFJJQU5HTEVTLCAzLCBjb250ZXh0LlVOU0lHTkVEX0JZ
VEUsIDApIGdlbmVyYXRlZCBleHBlY3RlZCBHTCBlcnJvcjogSU5WQUxJRF9PUEVSQVRJT04uCiBQ
QVNTIGNvbnRleHQuYnVmZmVyU3ViRGF0YShjb250ZXh0LkVMRU1FTlRfQVJSQVlfQlVGRkVSLCAw
LCAobmV3IFVpbnQ4QXJyYXkoWyAzLCAwLCAxLCAyIF0pKS5zbGljZSgxKSkgZ2VuZXJhdGVkIGV4
cGVjdGVkIEdMIGVycm9yOiBOT19FUlJPUi4KIFBBU1MgY29udGV4dC5kcmF3RWxlbWVudHMoY29u
dGV4dC5UUklBTkdMRVMsIDMsIGNvbnRleHQuVU5TSUdORURfQllURSwgMCkgZ2VuZXJhdGVkIGV4
cGVjdGVkIEdMIGVycm9yOiBOT19FUlJPUi4KK1BBU1MgY29udGV4dC5kcmF3RWxlbWVudHMoY29u
dGV4dC5UUklBTkdMRVMsIDAsIGNvbnRleHQuVU5TSUdORURfQllURSwgMCkgZ2VuZXJhdGVkIGV4
cGVjdGVkIEdMIGVycm9yOiBOT19FUlJPUi4KIAogVGVzdCBidWZmZXIgd2l0aCBpbnRlcmxlYXZl
ZCAoMysyKSBmbG9hdCB2ZWN0b3JzCiBQQVNTIGNvbnRleHQuZHJhd0VsZW1lbnRzKGNvbnRleHQu
VFJJQU5HTEVTLCA5LCBjb250ZXh0LlVOU0lHTkVEX1NIT1JULCAwKSBnZW5lcmF0ZWQgZXhwZWN0
ZWQgR0wgZXJyb3I6IE5PX0VSUk9SLgpAQCAtNDcsNiArNDgsNyBAQCBQQVNTIGNvbnRleHQuZHJh
d0VsZW1lbnRzKGNvbnRleHQuVFJJQU5HCiBQQVNTIGNvbnRleHQuZHJhd0VsZW1lbnRzKGNvbnRl
eHQuVFJJQU5HTEVTLCAzLCBjb250ZXh0LlVOU0lHTkVEX1NIT1JULCAyKjE1KSBnZW5lcmF0ZWQg
ZXhwZWN0ZWQgR0wgZXJyb3I6IElOVkFMSURfT1BFUkFUSU9OLgogUEFTUyBjb250ZXh0LmRyYXdF
bGVtZW50cyhjb250ZXh0LlRSSUFOR0xFUywgMHhmZmZmZmZmZiwgY29udGV4dC5VTlNJR05FRF9T
SE9SVCwgMCkgZ2VuZXJhdGVkIGV4cGVjdGVkIEdMIGVycm9yOiBJTlZBTElEX1ZBTFVFLgogUEFT
UyBjb250ZXh0LmRyYXdFbGVtZW50cyhjb250ZXh0LlRSSUFOR0xFUywgMHg3ZmZmZmZmZiwgY29u
dGV4dC5VTlNJR05FRF9TSE9SVCwgMCkgZ2VuZXJhdGVkIGV4cGVjdGVkIEdMIGVycm9yOiBJTlZB
TElEX09QRVJBVElPTi4KK1BBU1MgY29udGV4dC5kcmF3RWxlbWVudHMoY29udGV4dC5UUklBTkdM
RVMsIDAsIGNvbnRleHQuVU5TSUdORURfU0hPUlQsIDApIGdlbmVyYXRlZCBleHBlY3RlZCBHTCBl
cnJvcjogTk9fRVJST1IuCiAKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIApJbmRl
eDogTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvZHJhdy1lbGVtZW50cy1vdXQtb2YtYm91
bmRzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvZHJh
dy1lbGVtZW50cy1vdXQtb2YtYm91bmRzLmh0bWwJKHJldmlzaW9uIDY3NDA0KQorKysgTGF5b3V0
VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvZHJhdy1lbGVtZW50cy1vdXQtb2YtYm91bmRzLmh0bWwJ
KHdvcmtpbmcgY29weSkKQEAgLTYxLDYgKzYxLDcgQEAgc2hvdWxkR2VuZXJhdGVHTEVycm9yKGNv
bnRleHQsIGNvbnRleHQuTgogc2hvdWxkR2VuZXJhdGVHTEVycm9yKGNvbnRleHQsIGNvbnRleHQu
SU5WQUxJRF9PUEVSQVRJT04sICJjb250ZXh0LmRyYXdFbGVtZW50cyhjb250ZXh0LlRSSUFOR0xF
UywgMywgY29udGV4dC5VTlNJR05FRF9CWVRFLCAwKSIpOwogc2hvdWxkR2VuZXJhdGVHTEVycm9y
KGNvbnRleHQsIGNvbnRleHQuTk9fRVJST1IsICJjb250ZXh0LmJ1ZmZlclN1YkRhdGEoY29udGV4
dC5FTEVNRU5UX0FSUkFZX0JVRkZFUiwgMCwgKG5ldyBVaW50OEFycmF5KFsgMywgMCwgMSwgMiBd
KSkuc2xpY2UoMSkpIik7CiBzaG91bGRHZW5lcmF0ZUdMRXJyb3IoY29udGV4dCwgY29udGV4dC5O
T19FUlJPUiwgImNvbnRleHQuZHJhd0VsZW1lbnRzKGNvbnRleHQuVFJJQU5HTEVTLCAzLCBjb250
ZXh0LlVOU0lHTkVEX0JZVEUsIDApIik7CitzaG91bGRHZW5lcmF0ZUdMRXJyb3IoY29udGV4dCwg
Y29udGV4dC5OT19FUlJPUiwgImNvbnRleHQuZHJhd0VsZW1lbnRzKGNvbnRleHQuVFJJQU5HTEVT
LCAwLCBjb250ZXh0LlVOU0lHTkVEX0JZVEUsIDApIik7CiAKIGRlYnVnKCIiKQogZGVidWcoIlRl
c3QgYnVmZmVyIHdpdGggaW50ZXJsZWF2ZWQgKDMrMikgZmxvYXQgdmVjdG9ycyIpCkBAIC0xMTcs
NiArMTE4LDggQEAgc2hvdWxkR2VuZXJhdGVHTEVycm9yKGNvbnRleHQsIGNvbnRleHQuSQogc2hv
dWxkR2VuZXJhdGVHTEVycm9yKGNvbnRleHQsIGNvbnRleHQuSU5WQUxJRF9WQUxVRSwgImNvbnRl
eHQuZHJhd0VsZW1lbnRzKGNvbnRleHQuVFJJQU5HTEVTLCAweGZmZmZmZmZmLCBjb250ZXh0LlVO
U0lHTkVEX1NIT1JULCAwKSIpOwogc2hvdWxkR2VuZXJhdGVHTEVycm9yKGNvbnRleHQsIGNvbnRl
eHQuSU5WQUxJRF9PUEVSQVRJT04sICJjb250ZXh0LmRyYXdFbGVtZW50cyhjb250ZXh0LlRSSUFO
R0xFUywgMHg3ZmZmZmZmZiwgY29udGV4dC5VTlNJR05FRF9TSE9SVCwgMCkiKTsKIAorc2hvdWxk
R2VuZXJhdGVHTEVycm9yKGNvbnRleHQsIGNvbnRleHQuTk9fRVJST1IsICJjb250ZXh0LmRyYXdF
bGVtZW50cyhjb250ZXh0LlRSSUFOR0xFUywgMCwgY29udGV4dC5VTlNJR05FRF9TSE9SVCwgMCki
KTsKKwogZGVidWcoIiIpCiBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwogPC9zY3JpcHQ+Cg==
</data>
<flag name="commit-queue"
          id="56926"
          type_id="3"
          status="-"
          setter="zmo"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>67604</attachid>
            <date>2010-09-14 14:09:44 -0700</date>
            <delta_ts>2010-09-24 19:02:55 -0700</delta_ts>
            <desc>revised patch: responding to kbr&apos;s review</desc>
            <filename>draw0.patch</filename>
            <type>text/plain</type>
            <size>8124</size>
            <attacher name="Zhenyao Mo">zmo</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2NzQ4MykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTUgQEAKKzIwMTAtMDktMTQgIFpoZW55YW8gTW8gIDx6bW9AZ29vZ2xlLmNvbT4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBkcmF3RWxl
bWVudHMgd2l0aCBjb3VudD0wIGFuZCBvZmZzZXQgPSAwIHNob3VsZCBub3QgZ2VuZXJhdGUgR0wg
ZXJyb3Igb3IgY3Jhc2gKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTQ1NzY5CisKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRl
eHQuY3BwOiBEZWFsIHdpdGggY291bnQ9MCBjYXNlLgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xS
ZW5kZXJpbmdDb250ZXh0Ojp2YWxpZGF0ZUluZGV4QXJyYXlDb25zZXJ2YXRpdmUpOgorICAgICAg
ICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0Ojp2YWxpZGF0ZUluZGV4QXJyYXlQcmVj
aXNlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dDo6ZHJhd0VsZW1l
bnRzKToKKwogMjAxMC0wOS0xNCAgQW5kcmVhcyBLbGluZyAgPGFuZHJlYXMua2xpbmdAbm9raWEu
Y29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFudG9uaW8gR29tZXMuCkluZGV4OiBXZWJDb3Jl
L2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3BwCShyZXZpc2lvbiA2NzQw
NCkKKysrIFdlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNzc1LDMwICs3NzUsMzEgQEAgYm9vbCBXZWJHTFJlbmRlcmluZ0NvbnRl
eHQ6OnZhbGlkYXRlSW5kZQogICAgIC8vIGluZGV4LCBza2lwcyB0aGUgZXhwZW5zaXZlIHBlci1k
cmF3LWNhbGwgaXRlcmF0aW9uIGluCiAgICAgLy8gdmFsaWRhdGVJbmRleEFycmF5UHJlY2lzZS4K
IAorICAgIGlmICghbV9ib3VuZEVsZW1lbnRBcnJheUJ1ZmZlcikKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworCisgICAgdW5zaWduZWQgbnVtRWxlbWVudHMgPSBtX2JvdW5kRWxlbWVudEFycmF5QnVm
ZmVyLT5ieXRlTGVuZ3RoKCk7CisgICAgLy8gVGhlIGNhc2UgY291bnQ9PTAgaXMgYWxyZWFkeSBk
ZWFsdCB3aXRoIGluIGRyYXdFbGVtZW50cyBiZWZvcmUgdmFsaWRhdGVJbmRleEFycmF5Q29uc2Vy
dmF0aXZlLgorICAgIGlmICghbnVtRWxlbWVudHMpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICBjb25zdCBBcnJheUJ1ZmZlciogYnVmZmVyID0gbV9ib3VuZEVsZW1lbnRBcnJheUJ1ZmZlci0+
ZWxlbWVudEFycmF5QnVmZmVyKCk7CisgICAgQVNTRVJUKGJ1ZmZlcik7CisKICAgICBsb25nIG1h
eEluZGV4ID0gbV9ib3VuZEVsZW1lbnRBcnJheUJ1ZmZlci0+Z2V0Q2FjaGVkTWF4SW5kZXgodHlw
ZSk7CiAgICAgaWYgKG1heEluZGV4IDwgMCkgewogICAgICAgICAvLyBDb21wdXRlIHRoZSBtYXhp
bXVtIGluZGV4IGluIHRoZSBlbnRpcmUgYnVmZmVyIGZvciB0aGUgZ2l2ZW4gdHlwZSBvZiBpbmRl
eC4KICAgICAgICAgc3dpdGNoICh0eXBlKSB7CiAgICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0
M0Q6OlVOU0lHTkVEX0JZVEU6IHsKLSAgICAgICAgICAgIHVuc2lnbmVkIG51bUVsZW1lbnRzID0g
bV9ib3VuZEVsZW1lbnRBcnJheUJ1ZmZlci0+Ynl0ZUxlbmd0aCgpOwotICAgICAgICAgICAgaWYg
KCFudW1FbGVtZW50cykKLSAgICAgICAgICAgICAgICBtYXhJbmRleCA9IDA7Ci0gICAgICAgICAg
ICBlbHNlIHsKLSAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyKiBwID0gc3RhdGlj
X2Nhc3Q8Y29uc3QgdW5zaWduZWQgY2hhcio+KG1fYm91bmRFbGVtZW50QXJyYXlCdWZmZXItPmVs
ZW1lbnRBcnJheUJ1ZmZlcigpLT5kYXRhKCkpOwotICAgICAgICAgICAgICAgIGZvciAodW5zaWdu
ZWQgaSA9IDA7IGkgPCBudW1FbGVtZW50czsgaSsrKQotICAgICAgICAgICAgICAgICAgICBtYXhJ
bmRleCA9IG1heChtYXhJbmRleCwgc3RhdGljX2Nhc3Q8bG9uZz4ocFtpXSkpOwotICAgICAgICAg
ICAgfQorICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciogcCA9IHN0YXRpY19jYXN0PGNv
bnN0IHVuc2lnbmVkIGNoYXIqPihidWZmZXItPmRhdGEoKSk7CisgICAgICAgICAgICBmb3IgKHVu
c2lnbmVkIGkgPSAwOyBpIDwgbnVtRWxlbWVudHM7IGkrKykKKyAgICAgICAgICAgICAgICBtYXhJ
bmRleCA9IG1heChtYXhJbmRleCwgc3RhdGljX2Nhc3Q8bG9uZz4ocFtpXSkpOwogICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6VU5T
SUdORURfU0hPUlQ6IHsKLSAgICAgICAgICAgIHVuc2lnbmVkIG51bUVsZW1lbnRzID0gbV9ib3Vu
ZEVsZW1lbnRBcnJheUJ1ZmZlci0+Ynl0ZUxlbmd0aCgpIC8gc2l6ZW9mKHVuc2lnbmVkIHNob3J0
KTsKLSAgICAgICAgICAgIGlmICghbnVtRWxlbWVudHMpCi0gICAgICAgICAgICAgICAgbWF4SW5k
ZXggPSAwOwotICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgY29uc3QgdW5zaWdu
ZWQgc2hvcnQqIHAgPSBzdGF0aWNfY2FzdDxjb25zdCB1bnNpZ25lZCBzaG9ydCo+KG1fYm91bmRF
bGVtZW50QXJyYXlCdWZmZXItPmVsZW1lbnRBcnJheUJ1ZmZlcigpLT5kYXRhKCkpOwotICAgICAg
ICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBudW1FbGVtZW50czsgaSsrKQotICAg
ICAgICAgICAgICAgICAgICBtYXhJbmRleCA9IG1heChtYXhJbmRleCwgc3RhdGljX2Nhc3Q8bG9u
Zz4ocFtpXSkpOwotICAgICAgICAgICAgfQorICAgICAgICAgICAgbnVtRWxlbWVudHMgLz0gc2l6
ZW9mKHVuc2lnbmVkIHNob3J0KTsKKyAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0KiBw
ID0gc3RhdGljX2Nhc3Q8Y29uc3QgdW5zaWduZWQgc2hvcnQqPihidWZmZXItPmRhdGEoKSk7Cisg
ICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbnVtRWxlbWVudHM7IGkrKykKKyAg
ICAgICAgICAgICAgICBtYXhJbmRleCA9IG1heChtYXhJbmRleCwgc3RhdGljX2Nhc3Q8bG9uZz4o
cFtpXSkpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgZGVmYXVsdDoK
QEAgLTgyNCw2ICs4MjUsMTQgQEAgYm9vbCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnZhbGlkYXRl
SW5kZQogICAgIGlmICghbV9ib3VuZEVsZW1lbnRBcnJheUJ1ZmZlcikKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogCisgICAgaWYgKCFjb3VudCkgeworICAgICAgICBudW1FbGVtZW50c1JlcXVpcmVk
ID0gMDsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgaWYgKCFtX2JvdW5kRWxl
bWVudEFycmF5QnVmZmVyLT5lbGVtZW50QXJyYXlCdWZmZXIoKSkKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworCiAgICAgdW5zaWduZWQgbG9uZyB1b2Zmc2V0ID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQg
bG9uZz4ob2Zmc2V0KTsKICAgICB1bnNpZ25lZCBsb25nIG4gPSBjb3VudDsKIApAQCAtOTY4LDYg
Kzk3Nyw4IEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpkcmF3RWxlbWVudHMKICAgICAg
ICAgICAgIG1fY29udGV4dC0+c3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklO
VkFMSURfT1BFUkFUSU9OKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQorICAgICAg
ICBpZiAoIWNvdW50KQorICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBpZiAoIXZhbGlkYXRl
SW5kZXhBcnJheUNvbnNlcnZhdGl2ZSh0eXBlLCBudW1FbGVtZW50cykgfHwgIXZhbGlkYXRlUmVu
ZGVyaW5nU3RhdGUobnVtRWxlbWVudHMpKSB7CiAgICAgICAgICAgICBpZiAoIXZhbGlkYXRlSW5k
ZXhBcnJheVByZWNpc2UoY291bnQsIHR5cGUsIG9mZnNldCwgbnVtRWxlbWVudHMpIHx8ICF2YWxp
ZGF0ZVJlbmRlcmluZ1N0YXRlKG51bUVsZW1lbnRzKSkgewogICAgICAgICAgICAgICAgIG1fY29u
dGV4dC0+c3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfT1BFUkFU
SU9OKTsKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDY3NDgzKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTAtMDktMTQgIFpoZW55YW8gTW8g
IDx6bW9AZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBkcmF3RWxlbWVudHMgd2l0aCBjb3VudD0wIGFuZCBvZmZzZXQgPSAwIHNob3Vs
ZCBub3QgZ2VuZXJhdGUgR0wgZXJyb3Igb3IgY3Jhc2gKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ1NzY5CisKKyAgICAgICAgKiBmYXN0L2NhbnZhcy93
ZWJnbC9kcmF3LWVsZW1lbnRzLW91dC1vZi1ib3VuZHMtZXhwZWN0ZWQudHh0OiBUZXN0IGNvdW50
PTAgY2FzZXMuCisgICAgICAgICogZmFzdC9jYW52YXMvd2ViZ2wvZHJhdy1lbGVtZW50cy1vdXQt
b2YtYm91bmRzLmh0bWw6IERpdHRvLgorCiAyMDEwLTA5LTE0ICBUb255IENoYW5nICA8dG9ueUBj
aHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcmVtb3ZlIHRlc3RzIHRoYXQgYXJl
IG5vdyBwYXNzaW5nIGFmdGVyIE5vZWwgR29yZG9uJ3MKSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qv
Y2FudmFzL3dlYmdsL2RyYXctZWxlbWVudHMtb3V0LW9mLWJvdW5kcy1leHBlY3RlZC50eHQKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvZHJhdy1lbGVtZW50cy1v
dXQtb2YtYm91bmRzLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gNjc0MDQpCisrKyBMYXlvdXRUZXN0
cy9mYXN0L2NhbnZhcy93ZWJnbC9kcmF3LWVsZW1lbnRzLW91dC1vZi1ib3VuZHMtZXhwZWN0ZWQu
dHh0CSh3b3JraW5nIGNvcHkpCkBAIC0zNCw2ICszNCw3IEBAIFBBU1MgY29udGV4dC5idWZmZXJT
dWJEYXRhKGNvbnRleHQuRUxFTUUKIFBBU1MgY29udGV4dC5kcmF3RWxlbWVudHMoY29udGV4dC5U
UklBTkdMRVMsIDMsIGNvbnRleHQuVU5TSUdORURfQllURSwgMCkgZ2VuZXJhdGVkIGV4cGVjdGVk
IEdMIGVycm9yOiBJTlZBTElEX09QRVJBVElPTi4KIFBBU1MgY29udGV4dC5idWZmZXJTdWJEYXRh
KGNvbnRleHQuRUxFTUVOVF9BUlJBWV9CVUZGRVIsIDAsIChuZXcgVWludDhBcnJheShbIDMsIDAs
IDEsIDIgXSkpLnNsaWNlKDEpKSBnZW5lcmF0ZWQgZXhwZWN0ZWQgR0wgZXJyb3I6IE5PX0VSUk9S
LgogUEFTUyBjb250ZXh0LmRyYXdFbGVtZW50cyhjb250ZXh0LlRSSUFOR0xFUywgMywgY29udGV4
dC5VTlNJR05FRF9CWVRFLCAwKSBnZW5lcmF0ZWQgZXhwZWN0ZWQgR0wgZXJyb3I6IE5PX0VSUk9S
LgorUEFTUyBjb250ZXh0LmRyYXdFbGVtZW50cyhjb250ZXh0LlRSSUFOR0xFUywgMCwgY29udGV4
dC5VTlNJR05FRF9CWVRFLCAwKSBnZW5lcmF0ZWQgZXhwZWN0ZWQgR0wgZXJyb3I6IE5PX0VSUk9S
LgogCiBUZXN0IGJ1ZmZlciB3aXRoIGludGVybGVhdmVkICgzKzIpIGZsb2F0IHZlY3RvcnMKIFBB
U1MgY29udGV4dC5kcmF3RWxlbWVudHMoY29udGV4dC5UUklBTkdMRVMsIDksIGNvbnRleHQuVU5T
SUdORURfU0hPUlQsIDApIGdlbmVyYXRlZCBleHBlY3RlZCBHTCBlcnJvcjogTk9fRVJST1IuCkBA
IC00Nyw2ICs0OCw3IEBAIFBBU1MgY29udGV4dC5kcmF3RWxlbWVudHMoY29udGV4dC5UUklBTkcK
IFBBU1MgY29udGV4dC5kcmF3RWxlbWVudHMoY29udGV4dC5UUklBTkdMRVMsIDMsIGNvbnRleHQu
VU5TSUdORURfU0hPUlQsIDIqMTUpIGdlbmVyYXRlZCBleHBlY3RlZCBHTCBlcnJvcjogSU5WQUxJ
RF9PUEVSQVRJT04uCiBQQVNTIGNvbnRleHQuZHJhd0VsZW1lbnRzKGNvbnRleHQuVFJJQU5HTEVT
LCAweGZmZmZmZmZmLCBjb250ZXh0LlVOU0lHTkVEX1NIT1JULCAwKSBnZW5lcmF0ZWQgZXhwZWN0
ZWQgR0wgZXJyb3I6IElOVkFMSURfVkFMVUUuCiBQQVNTIGNvbnRleHQuZHJhd0VsZW1lbnRzKGNv
bnRleHQuVFJJQU5HTEVTLCAweDdmZmZmZmZmLCBjb250ZXh0LlVOU0lHTkVEX1NIT1JULCAwKSBn
ZW5lcmF0ZWQgZXhwZWN0ZWQgR0wgZXJyb3I6IElOVkFMSURfT1BFUkFUSU9OLgorUEFTUyBjb250
ZXh0LmRyYXdFbGVtZW50cyhjb250ZXh0LlRSSUFOR0xFUywgMCwgY29udGV4dC5VTlNJR05FRF9T
SE9SVCwgMCkgZ2VuZXJhdGVkIGV4cGVjdGVkIEdMIGVycm9yOiBOT19FUlJPUi4KIAogUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2NhbnZh
cy93ZWJnbC9kcmF3LWVsZW1lbnRzLW91dC1vZi1ib3VuZHMuaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9kcmF3LWVsZW1lbnRzLW91dC1vZi1ib3VuZHMu
aHRtbAkocmV2aXNpb24gNjc0MDQpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9k
cmF3LWVsZW1lbnRzLW91dC1vZi1ib3VuZHMuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNjEsNiAr
NjEsNyBAQCBzaG91bGRHZW5lcmF0ZUdMRXJyb3IoY29udGV4dCwgY29udGV4dC5OCiBzaG91bGRH
ZW5lcmF0ZUdMRXJyb3IoY29udGV4dCwgY29udGV4dC5JTlZBTElEX09QRVJBVElPTiwgImNvbnRl
eHQuZHJhd0VsZW1lbnRzKGNvbnRleHQuVFJJQU5HTEVTLCAzLCBjb250ZXh0LlVOU0lHTkVEX0JZ
VEUsIDApIik7CiBzaG91bGRHZW5lcmF0ZUdMRXJyb3IoY29udGV4dCwgY29udGV4dC5OT19FUlJP
UiwgImNvbnRleHQuYnVmZmVyU3ViRGF0YShjb250ZXh0LkVMRU1FTlRfQVJSQVlfQlVGRkVSLCAw
LCAobmV3IFVpbnQ4QXJyYXkoWyAzLCAwLCAxLCAyIF0pKS5zbGljZSgxKSkiKTsKIHNob3VsZEdl
bmVyYXRlR0xFcnJvcihjb250ZXh0LCBjb250ZXh0Lk5PX0VSUk9SLCAiY29udGV4dC5kcmF3RWxl
bWVudHMoY29udGV4dC5UUklBTkdMRVMsIDMsIGNvbnRleHQuVU5TSUdORURfQllURSwgMCkiKTsK
K3Nob3VsZEdlbmVyYXRlR0xFcnJvcihjb250ZXh0LCBjb250ZXh0Lk5PX0VSUk9SLCAiY29udGV4
dC5kcmF3RWxlbWVudHMoY29udGV4dC5UUklBTkdMRVMsIDAsIGNvbnRleHQuVU5TSUdORURfQllU
RSwgMCkiKTsKIAogZGVidWcoIiIpCiBkZWJ1ZygiVGVzdCBidWZmZXIgd2l0aCBpbnRlcmxlYXZl
ZCAoMysyKSBmbG9hdCB2ZWN0b3JzIikKQEAgLTExNyw2ICsxMTgsOCBAQCBzaG91bGRHZW5lcmF0
ZUdMRXJyb3IoY29udGV4dCwgY29udGV4dC5JCiBzaG91bGRHZW5lcmF0ZUdMRXJyb3IoY29udGV4
dCwgY29udGV4dC5JTlZBTElEX1ZBTFVFLCAiY29udGV4dC5kcmF3RWxlbWVudHMoY29udGV4dC5U
UklBTkdMRVMsIDB4ZmZmZmZmZmYsIGNvbnRleHQuVU5TSUdORURfU0hPUlQsIDApIik7CiBzaG91
bGRHZW5lcmF0ZUdMRXJyb3IoY29udGV4dCwgY29udGV4dC5JTlZBTElEX09QRVJBVElPTiwgImNv
bnRleHQuZHJhd0VsZW1lbnRzKGNvbnRleHQuVFJJQU5HTEVTLCAweDdmZmZmZmZmLCBjb250ZXh0
LlVOU0lHTkVEX1NIT1JULCAwKSIpOwogCitzaG91bGRHZW5lcmF0ZUdMRXJyb3IoY29udGV4dCwg
Y29udGV4dC5OT19FUlJPUiwgImNvbnRleHQuZHJhd0VsZW1lbnRzKGNvbnRleHQuVFJJQU5HTEVT
LCAwLCBjb250ZXh0LlVOU0lHTkVEX1NIT1JULCAwKSIpOworCiBkZWJ1ZygiIikKIHN1Y2Nlc3Nm
dWxseVBhcnNlZCA9IHRydWU7CiA8L3NjcmlwdD4K
</data>
<flag name="review"
          id="56950"
          type_id="1"
          status="+"
          setter="kbr"
    />
    <flag name="commit-queue"
          id="56951"
          type_id="3"
          status="-"
          setter="zmo"
    />
          </attachment>
      

    </bug>

</bugzilla>