<?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>42188</bug_id>
          
          <creation_ts>2010-07-13 13:25:12 -0700</creation_ts>
          <short_desc>Failing 2d.path.stroke.prune.arc philip canvas test</short_desc>
          <delta_ts>2010-07-16 17:08:55 -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>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</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>42190</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Matthew Delaney">mdelaney7</reporter>
          <assigned_to name="Matthew Delaney">mdelaney7</assigned_to>
          <cc>adele</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dglazkov</cc>
    
    <cc>gustavo</cc>
    
    <cc>kling</cc>
    
    <cc>sam</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>250702</commentid>
    <comment_count>0</comment_count>
    <who name="Matthew Delaney">mdelaney7</who>
    <bug_when>2010-07-13 13:25:12 -0700</bug_when>
    <thetext>Safari is failing 2d.path.stroke.prune.arc</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>251426</commentid>
    <comment_count>1</comment_count>
      <attachid>61566</attachid>
    <who name="Matthew Delaney">mdelaney7</who>
    <bug_when>2010-07-14 14:27:06 -0700</bug_when>
    <thetext>Created attachment 61566
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>251460</commentid>
    <comment_count>2</comment_count>
      <attachid>61566</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-07-14 15:25:59 -0700</bug_when>
    <thetext>Comment on attachment 61566
Patch

&gt; +    if ((p1 == m_path.currentPoint()) || (p1 == p2) || !r)

No need for the extra parentheses here since == binds more tightly than || and it&apos;s customary to not include these.

&gt; Index: WebCore/platform/graphics/cg/PathCG.cpp
&gt; ===================================================================
&gt; --- WebCore/platform/graphics/cg/PathCG.cpp	(revision 63275)
&gt; +++ WebCore/platform/graphics/cg/PathCG.cpp	(working copy)
&gt; @@ -249,6 +249,11 @@ bool Path::hasCurrentPoint() const
&gt;  {
&gt;      return !isEmpty();
&gt;  }
&gt; +    
&gt; +FloatPoint Path::currentPoint() const 
&gt; +{
&gt; +    return CGPathGetCurrentPoint(m_path);
&gt; +}

I believe adding this for CG only will break the build for all platforms that don’t use CG. That’s probably why the EWS failed on Qt. So you’ll need to add this for other platforms as well.

review- because we need this to at least compile on the non-CG platforms</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>251481</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-07-14 15:50:30 -0700</bug_when>
    <thetext>Attachment 61566 did not build on chromium:
Build output: http://webkit-commit-queue.appspot.com/results/3447295</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>251549</commentid>
    <comment_count>4</comment_count>
      <attachid>61589</attachid>
    <who name="Matthew Delaney">mdelaney7</who>
    <bug_when>2010-07-14 17:42:29 -0700</bug_when>
    <thetext>Created attachment 61589
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>251552</commentid>
    <comment_count>5</comment_count>
      <attachid>61589</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-07-14 17:44:14 -0700</bug_when>
    <thetext>Comment on attachment 61589
Patch

&gt; +FloatPoint Path::currentPoint() const 
&gt; +{
&gt; +    // FIXME: implement safe way to return current point of subpath.
&gt; +    return 0;
&gt; +}

I don’t think this will compile. There’s no way to convert the number 0 into a FloatPoint. You probably need to return something like FloatPoint(NAN, NAN). You should test by actually compiling the code, perhaps in PathCG.cpp.

Not sure what &quot;safe&quot; means in the comment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>251559</commentid>
    <comment_count>6</comment_count>
      <attachid>61592</attachid>
    <who name="Matthew Delaney">mdelaney7</who>
    <bug_when>2010-07-14 18:00:06 -0700</bug_when>
    <thetext>Created attachment 61592
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>251566</commentid>
    <comment_count>7</comment_count>
      <attachid>61592</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-07-14 18:10:58 -0700</bug_when>
    <thetext>Comment on attachment 61592
Patch

Come to think of it, I’m not sure NAN works on all the platforms. We might need to use &quot;numeric_limits&lt;float&gt;::quiet_NaN()&quot; instead. The reason I suggested NAN is that is safe. The optimization won&apos;t do any harm if you return a point that can never be equal.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>251574</commentid>
    <comment_count>8</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2010-07-14 18:59:55 -0700</bug_when>
    <thetext>Good stuff :-)

The Qt implementation of Path::currentPoint() would be:

FloatPoint Path::currentPoint() const 
{
    return m_path.currentPosition();
}</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>252335</commentid>
    <comment_count>9</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-07-15 22:36:57 -0700</bug_when>
    <thetext>The cairo equivelent is probably.

FloatPoint Path::currentPoint() const 
{
    double x;
    double y;
    cairo_get_current_point(platformPath()-&gt;m_cr, x, y)
    return FloatPoint(x, y);
}</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>252668</commentid>
    <comment_count>10</comment_count>
      <attachid>61839</attachid>
    <who name="Matthew Delaney">mdelaney7</who>
    <bug_when>2010-07-16 13:01:26 -0700</bug_when>
    <thetext>Created attachment 61839
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>252679</commentid>
    <comment_count>11</comment_count>
      <attachid>61839</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2010-07-16 13:28:00 -0700</bug_when>
    <thetext>Comment on attachment 61839
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>252691</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-07-16 14:08:12 -0700</bug_when>
    <thetext>Attachment 61839 did not build on gtk:
Build output: http://webkit-commit-queue.appspot.com/results/3396494</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>252700</commentid>
    <comment_count>13</comment_count>
      <attachid>61847</attachid>
    <who name="Matthew Delaney">mdelaney7</who>
    <bug_when>2010-07-16 14:21:55 -0700</bug_when>
    <thetext>Created attachment 61847
Previous + Cairo fix

Ooops on the Cairo impl slip. This should be good. I checked their code use below to double/triple check.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>252776</commentid>
    <comment_count>14</comment_count>
      <attachid>61847</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-07-16 17:08:49 -0700</bug_when>
    <thetext>Comment on attachment 61847
Previous + Cairo fix

Clearing flags on attachment: 61847

Committed r63599: &lt;http://trac.webkit.org/changeset/63599&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>252777</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-07-16 17:08:55 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>61566</attachid>
            <date>2010-07-14 14:27:06 -0700</date>
            <delta_ts>2010-07-14 17:42:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-42188-20100714142705.patch</filename>
            <type>text/plain</type>
            <size>5383</size>
            <attacher name="Matthew Delaney">mdelaney7</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2MzM1NCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTcgQEAKKzIwMTAtMDctMTQgIE1hdHRoZXcgRGVsYW5leSAgPG1kZWxhbmV5QGFw
cGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBGYWlsaW5nIDJkLnBhdGguc3Ryb2tlLnBydW5lLmFyYyBwaGlsaXAgY2FudmFzIHRlc3QKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQyMTg4CisKKyAg
ICAgICAgKiBodG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0M0QuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpsaW5lVG8pOiBQdWxsZWQgYm91
bmQgY2hlY2tpbmcgY29kZSBvdXQgb2YgbG93ZXIgY29kZSB0byBoYXZlIGNoZWNrcyBmb3IgYWxs
IHBsYXRmb3Jtcy4KKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6
YXJjVG8pOiBCb3VuZCBjaGVja2luZyBwZXIgdGhlIHNwZWMgZm9yIGFyY1RvIHBhcmFtZXRlcnMu
IFVwZGF0ZWQgcGFyYW1ldGVyIG5hbWVzIHRvIG1hdGNoIHNwZWMuCisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvUGF0aC5oOiBBZGRlZCBpbiBuZXcgbWV0aG9kIHRvIGV4cG9zZSB0aGUgY3Vy
cmVudCBwb3NpdGlvbi4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jZy9QYXRoQ0cuY3Bw
OiBQdWxsZWQgb3V0IGJvdW5kIGNoZWNraW5nIGZyb20gQ0cgaW1wbGVtZW50YXRpb24gdG8gaGF2
ZSBmb3IgYWxsLgorICAgICAgICAoV2ViQ29yZTo6UGF0aDo6Y3VycmVudFBvaW50KTogQWRkZWQg
aW4gc3VwcG9ydCBmb3IgdGhpcyBjYWxsLgorCiAyMDEwLTA3LTE0ICBKb2hubnkgRGluZyAgPGpu
ZEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KSW5kZXg6
IFdlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAJ
KHJldmlzaW9uIDYzMjc1KQorKysgV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdD
b250ZXh0MkQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NjEsOSArNTYxLDExIEBAIHZvaWQgQ2Fu
dmFzUmVuZGVyaW5nQ29udGV4dDJEOjpsaW5lVG8oZmwKICAgICAgICAgcmV0dXJuOwogICAgIGlm
ICghc3RhdGUoKS5tX2ludmVydGlibGVDVE0pCiAgICAgICAgIHJldHVybjsKKyAgICAKKyAgICBG
bG9hdFBvaW50IHAxID0gRmxvYXRQb2ludCh4LCB5KTsKICAgICBpZiAoIW1fcGF0aC5oYXNDdXJy
ZW50UG9pbnQoKSkKLSAgICAgICAgbV9wYXRoLm1vdmVUbyhGbG9hdFBvaW50KHgsIHkpKTsKLSAg
ICBlbHNlCisgICAgICAgIG1fcGF0aC5tb3ZlVG8ocDEpOworICAgIGVsc2UgaWYgKHAxICE9IG1f
cGF0aC5jdXJyZW50UG9pbnQoKSkKICAgICAgICAgbV9wYXRoLmFkZExpbmVUbyhGbG9hdFBvaW50
KHgsIHkpKTsKIH0KIApAQCAtNTg5LDE5ICs1OTEsMjcgQEAgdm9pZCBDYW52YXNSZW5kZXJpbmdD
b250ZXh0MkQ6OmJlemllckN1cgogICAgIG1fcGF0aC5hZGRCZXppZXJDdXJ2ZVRvKEZsb2F0UG9p
bnQoY3AxeCwgY3AxeSksIEZsb2F0UG9pbnQoY3AyeCwgY3AyeSksIEZsb2F0UG9pbnQoeCwgeSkp
OwogfQogCi12b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6YXJjVG8oZmxvYXQgeDAsIGZs
b2F0IHkwLCBmbG9hdCB4MSwgZmxvYXQgeTEsIGZsb2F0IHIsIEV4Y2VwdGlvbkNvZGUmIGVjKQor
dm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmFyY1RvKGZsb2F0IHgxLCBmbG9hdCB5MSwg
ZmxvYXQgeDIsIGZsb2F0IHkyLCBmbG9hdCByLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBl
YyA9IDA7Ci0gICAgaWYgKCFpc2Zpbml0ZSh4MCkgfCAhaXNmaW5pdGUoeTApIHwgIWlzZmluaXRl
KHgxKSB8ICFpc2Zpbml0ZSh5MSkgfCAhaXNmaW5pdGUocikpCisgICAgaWYgKCFpc2Zpbml0ZSh4
MSkgfCAhaXNmaW5pdGUoeTEpIHwgIWlzZmluaXRlKHgyKSB8ICFpc2Zpbml0ZSh5MikgfCAhaXNm
aW5pdGUocikpCiAgICAgICAgIHJldHVybjsKICAgICAKICAgICBpZiAociA8IDApIHsKICAgICAg
ICAgZWMgPSBJTkRFWF9TSVpFX0VSUjsKICAgICAgICAgcmV0dXJuOwogICAgIH0KKyAgICAKICAg
ICBpZiAoIXN0YXRlKCkubV9pbnZlcnRpYmxlQ1RNKQogICAgICAgICByZXR1cm47Ci0gICAgbV9w
YXRoLmFkZEFyY1RvKEZsb2F0UG9pbnQoeDAsIHkwKSwgRmxvYXRQb2ludCh4MSwgeTEpLCByKTsK
KyAgICAKKyAgICBGbG9hdFBvaW50IHAxID0gRmxvYXRQb2ludCh4MSwgeTEpOworICAgIEZsb2F0
UG9pbnQgcDIgPSBGbG9hdFBvaW50KHgyLCB5Mik7CisgICAgCisgICAgaWYgKChwMSA9PSBtX3Bh
dGguY3VycmVudFBvaW50KCkpIHx8IChwMSA9PSBwMikgfHwgIXIpCisgICAgICAgIGxpbmVUbyh4
MSwgeTEpOworICAgIGVsc2UKKyAgICAgICAgbV9wYXRoLmFkZEFyY1RvKHAxLCBwMiwgcik7CiB9
CiAKIHZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjphcmMoZmxvYXQgeCwgZmxvYXQgeSwg
ZmxvYXQgciwgZmxvYXQgc2EsIGZsb2F0IGVhLCBib29sIGFudGljbG9ja3dpc2UsIEV4Y2VwdGlv
bkNvZGUmIGVjKQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QYXRoLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QYXRoLmgJKHJldmlzaW9uIDYzMjc1
KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QYXRoLmgJKHdvcmtpbmcgY29weSkKQEAg
LTEyNCw2ICsxMjQsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIC8vIEdldHMgdGhl
IGN1cnJlbnQgcG9pbnQgb2YgdGhlIGN1cnJlbnQgcGF0aCwgd2hpY2ggaXMgY29uY2VwdHVhbGx5
IHRoZSBmaW5hbCBwb2ludCByZWFjaGVkIGJ5IHRoZSBwYXRoIHNvIGZhci4KICAgICAgICAgLy8g
Tm90ZSB0aGUgUGF0aCBjYW4gYmUgZW1wdHkgKGlzRW1wdHkoKSA9PSB0cnVlKSBhbmQgc3RpbGwg
aGF2ZSBhIGN1cnJlbnQgcG9pbnQuCiAgICAgICAgIGJvb2wgaGFzQ3VycmVudFBvaW50KCkgY29u
c3Q7CisgICAgICAgIEZsb2F0UG9pbnQgY3VycmVudFBvaW50KCkgY29uc3Q7CiAKICAgICAgICAg
dm9pZCBtb3ZlVG8oY29uc3QgRmxvYXRQb2ludCYpOwogICAgICAgICB2b2lkIGFkZExpbmVUbyhj
b25zdCBGbG9hdFBvaW50Jik7CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL1Bh
dGhDRy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9QYXRo
Q0cuY3BwCShyZXZpc2lvbiA2MzI3NSkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cv
UGF0aENHLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjQ5LDYgKzI0OSwxMSBAQCBib29sIFBhdGg6
Omhhc0N1cnJlbnRQb2ludCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuICFpc0VtcHR5KCk7CiB9Cisg
ICAgCitGbG9hdFBvaW50IFBhdGg6OmN1cnJlbnRQb2ludCgpIGNvbnN0IAoreworICAgIHJldHVy
biBDR1BhdGhHZXRDdXJyZW50UG9pbnQobV9wYXRoKTsKK30KIAogc3RhdGljIHZvaWQgQ0dQYXRo
VG9DRlN0cmluZ0FwcGxpZXJGdW5jdGlvbih2b2lkKiBpbmZvLCBjb25zdCBDR1BhdGhFbGVtZW50
ICplbGVtZW50KQogewpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gNjMzNTQpCisrKyBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxMiBAQAorMjAxMC0wNy0xNCAgTWF0
dGhldyBEZWxhbmV5ICA8bWRlbGFuZXlAYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZhaWxpbmcgMmQucGF0aC5zdHJva2UucHJ1bmUu
YXJjIHBoaWxpcCBjYW52YXMgdGVzdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NDIxODgKKworICAgICAgICAqIHBsYXRmb3JtL21hYy9Ta2lwcGVkOiBV
bnNraXBwZWQgbm93IHBhc3NpbmcgdGVzdHMuCisKIDIwMTAtMDctMTQgIENocmlzIEZsZWl6YWNo
ICA8Y2ZsZWl6YWNoQGFwcGxlLmNvbT4KIAogICAgICAgICBObyByZXZpZXcuIE1ha2Ugc3VyZSBU
aWdlciBhbmQgTGVvcGFyZCBkb24ndCBydW4gdGhpcyB0ZXN0LgpJbmRleDogTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjL1NraXBwZWQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL1NraXBwZWQJKHJldmlzaW9uIDYzMjc1KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
L1NraXBwZWQJKHdvcmtpbmcgY29weSkKQEAgLTIyNCwxMCArMjI0LDggQEAgY2FudmFzL3BoaWxp
cC90ZXN0cy8yZC5taXNzaW5nYXJncy5odG1sCiBjYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnBhdGgu
YXJjVG8uZW5zdXJlc3VicGF0aC4yLmh0bWwKIGNhbnZhcy9waGlsaXAvdGVzdHMvMmQucGF0aC5j
bGlwLmVtcHR5Lmh0bWwKIGNhbnZhcy9waGlsaXAvdGVzdHMvMmQucGF0aC5yZWN0LndpbmRpbmcu
aHRtbAotY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5wYXRoLnN0cm9rZS5wcnVuZS5hcmMuaHRtbAog
Y2FudmFzL3BoaWxpcC90ZXN0cy8yZC5wYXRoLnN0cm9rZS5wcnVuZS5jbG9zZWQuaHRtbAogY2Fu
dmFzL3BoaWxpcC90ZXN0cy8yZC5wYXRoLnN0cm9rZS5wcnVuZS5jdXJ2ZS5odG1sCi1jYW52YXMv
cGhpbGlwL3Rlc3RzLzJkLnBhdGguc3Ryb2tlLnBydW5lLmxpbmUuaHRtbAogY2FudmFzL3BoaWxp
cC90ZXN0cy8yZC5wYXR0ZXJuLmltYWdlLmJyb2tlbi5odG1sCiBjYW52YXMvcGhpbGlwL3Rlc3Rz
LzJkLnBhdHRlcm4uaW1hZ2UuaW5jb21wbGV0ZS5odG1sCiBjYW52YXMvcGhpbGlwL3Rlc3RzLzJk
LnBhdHRlcm4uaW1hZ2UubnVsbC5odG1sCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>61589</attachid>
            <date>2010-07-14 17:42:29 -0700</date>
            <delta_ts>2010-07-14 18:00:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-42188-20100714174228.patch</filename>
            <type>text/plain</type>
            <size>10004</size>
            <attacher name="Matthew Delaney">mdelaney7</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2MzM4MCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzIgQEAKKzIwMTAtMDctMTQgIE1hdHRoZXcgRGVsYW5leSAgPG1kZWxhbmV5QGFw
cGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBGYWlsaW5nIDJkLnBhdGguc3Ryb2tlLnBydW5lLmFyYyBwaGlsaXAgY2FudmFzIHRlc3QKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQyMTg4CisKKyAg
ICAgICAgKiBodG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwOiAKKyAgICAg
ICAgTm90ZSwgdXBkYXRlZCBwYXJhbWV0ZXIgbmFtZXMgdG8gbWF0Y2ggc3BlYy4KKyAgICAgICAg
KFdlYkNvcmU6OkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6bGluZVRvKTogUHVsbGVkIGJvdW5k
IGNoZWNraW5nIGNvZGUgb3V0IG9mIGxvd2VyIGNvZGUgdG8gaGF2ZSBjaGVja3MgZm9yIGFsbCBw
bGF0Zm9ybXMuCisgICAgICAgIChXZWJDb3JlOjpDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmFy
Y1RvKTogQm91bmQgY2hlY2tpbmcgcGVyIHRoZSBzcGVjIGZvciBhcmNUbyBwYXJhbWV0ZXJzLiBV
cGRhdGVkIHBhcmFtZXRlciBuYW1lcyB0byBtYXRjaCBzcGVjLgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL1BhdGguaDogQWRkZWQgaW4gbmV3IG1ldGhvZCB0byBleHBvc2UgdGhlIGN1cnJl
bnQgcG9zaXRpb24uCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vUGF0aENhaXJv
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhdGg6OmN1cnJlbnRQb2ludCk6IEFkZGVkIGluIHN0
dWIgZm9yIHRoaXMgY2FsbC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jZy9QYXRoQ0cu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UGF0aDo6Y3VycmVudFBvaW50KTogQWRkZWQgaW4gc3Vw
cG9ydCBmb3IgdGhpcyBjYWxsLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2hhaWt1L1Bh
dGhIYWlrdS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYXRoOjpjdXJyZW50UG9pbnQpOiBBZGRl
ZCBpbiBzdHViIGZvciB0aGlzIGNhbGwuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3Bl
bnZnL1BhdGhPcGVuVkcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGF0aDo6Y3VycmVudFBvaW50
KTogQWRkZWQgaW4gc3R1YiBmb3IgdGhpcyBjYWxsLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL3F0L1BhdGhRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYXRoOjpjdXJyZW50UG9pbnQp
OiBBZGRlZCBpbiBzdHViIGZvciB0aGlzIGNhbGwuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3Mvc2tpYS9QYXRoU2tpYS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYXRoOjpjdXJyZW50UG9p
bnQpOiBBZGRlZCBpbiBzdHViIGZvciB0aGlzIGNhbGwuCisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3Mvd2luY2UvUGF0aFdpbmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhdGg6OmN1cnJl
bnRQb2ludCk6IEFkZGVkIGluIHN0dWIgZm9yIHRoaXMgY2FsbC4KKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy93eC9QYXRoV3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGF0aDo6Y3VycmVu
dFBvaW50KTogQWRkZWQgaW4gc3R1YiBmb3IgdGhpcyBjYWxsLgorCiAyMDEwLTA3LTE0ICBBbGV4
ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgogCiAgICAgICAgIE5vdCByZXZpZXdlZC4K
SW5kZXg6IFdlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQy
RC5jcHAJKHJldmlzaW9uIDYzMjc1KQorKysgV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5k
ZXJpbmdDb250ZXh0MkQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NjEsOSArNTYxLDExIEBAIHZv
aWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpsaW5lVG8oZmwKICAgICAgICAgcmV0dXJuOwog
ICAgIGlmICghc3RhdGUoKS5tX2ludmVydGlibGVDVE0pCiAgICAgICAgIHJldHVybjsKKyAgICAK
KyAgICBGbG9hdFBvaW50IHAxID0gRmxvYXRQb2ludCh4LCB5KTsKICAgICBpZiAoIW1fcGF0aC5o
YXNDdXJyZW50UG9pbnQoKSkKLSAgICAgICAgbV9wYXRoLm1vdmVUbyhGbG9hdFBvaW50KHgsIHkp
KTsKLSAgICBlbHNlCisgICAgICAgIG1fcGF0aC5tb3ZlVG8ocDEpOworICAgIGVsc2UgaWYgKHAx
ICE9IG1fcGF0aC5jdXJyZW50UG9pbnQoKSkKICAgICAgICAgbV9wYXRoLmFkZExpbmVUbyhGbG9h
dFBvaW50KHgsIHkpKTsKIH0KIApAQCAtNTg5LDE5ICs1OTEsMjcgQEAgdm9pZCBDYW52YXNSZW5k
ZXJpbmdDb250ZXh0MkQ6OmJlemllckN1cgogICAgIG1fcGF0aC5hZGRCZXppZXJDdXJ2ZVRvKEZs
b2F0UG9pbnQoY3AxeCwgY3AxeSksIEZsb2F0UG9pbnQoY3AyeCwgY3AyeSksIEZsb2F0UG9pbnQo
eCwgeSkpOwogfQogCi12b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6YXJjVG8oZmxvYXQg
eDAsIGZsb2F0IHkwLCBmbG9hdCB4MSwgZmxvYXQgeTEsIGZsb2F0IHIsIEV4Y2VwdGlvbkNvZGUm
IGVjKQordm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmFyY1RvKGZsb2F0IHgxLCBmbG9h
dCB5MSwgZmxvYXQgeDIsIGZsb2F0IHkyLCBmbG9hdCByLCBFeGNlcHRpb25Db2RlJiBlYykKIHsK
ICAgICBlYyA9IDA7Ci0gICAgaWYgKCFpc2Zpbml0ZSh4MCkgfCAhaXNmaW5pdGUoeTApIHwgIWlz
ZmluaXRlKHgxKSB8ICFpc2Zpbml0ZSh5MSkgfCAhaXNmaW5pdGUocikpCisgICAgaWYgKCFpc2Zp
bml0ZSh4MSkgfCAhaXNmaW5pdGUoeTEpIHwgIWlzZmluaXRlKHgyKSB8ICFpc2Zpbml0ZSh5Mikg
fCAhaXNmaW5pdGUocikpCiAgICAgICAgIHJldHVybjsKICAgICAKICAgICBpZiAociA8IDApIHsK
ICAgICAgICAgZWMgPSBJTkRFWF9TSVpFX0VSUjsKICAgICAgICAgcmV0dXJuOwogICAgIH0KKyAg
ICAKICAgICBpZiAoIXN0YXRlKCkubV9pbnZlcnRpYmxlQ1RNKQogICAgICAgICByZXR1cm47Ci0g
ICAgbV9wYXRoLmFkZEFyY1RvKEZsb2F0UG9pbnQoeDAsIHkwKSwgRmxvYXRQb2ludCh4MSwgeTEp
LCByKTsKKyAgICAKKyAgICBGbG9hdFBvaW50IHAxID0gRmxvYXRQb2ludCh4MSwgeTEpOworICAg
IEZsb2F0UG9pbnQgcDIgPSBGbG9hdFBvaW50KHgyLCB5Mik7CisgICAgCisgICAgaWYgKHAxID09
IG1fcGF0aC5jdXJyZW50UG9pbnQoKSB8fCBwMSA9PSBwMiB8fCAhcikKKyAgICAgICAgbGluZVRv
KHgxLCB5MSk7CisgICAgZWxzZQorICAgICAgICBtX3BhdGguYWRkQXJjVG8ocDEsIHAyLCByKTsK
IH0KIAogdm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmFyYyhmbG9hdCB4LCBmbG9hdCB5
LCBmbG9hdCByLCBmbG9hdCBzYSwgZmxvYXQgZWEsIGJvb2wgYW50aWNsb2Nrd2lzZSwgRXhjZXB0
aW9uQ29kZSYgZWMpCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BhdGguaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BhdGguaAkocmV2aXNpb24gNjMy
NzUpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BhdGguaAkod29ya2luZyBjb3B5KQpA
QCAtMTI0LDYgKzEyNCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgLy8gR2V0cyB0
aGUgY3VycmVudCBwb2ludCBvZiB0aGUgY3VycmVudCBwYXRoLCB3aGljaCBpcyBjb25jZXB0dWFs
bHkgdGhlIGZpbmFsIHBvaW50IHJlYWNoZWQgYnkgdGhlIHBhdGggc28gZmFyLgogICAgICAgICAv
LyBOb3RlIHRoZSBQYXRoIGNhbiBiZSBlbXB0eSAoaXNFbXB0eSgpID09IHRydWUpIGFuZCBzdGls
bCBoYXZlIGEgY3VycmVudCBwb2ludC4KICAgICAgICAgYm9vbCBoYXNDdXJyZW50UG9pbnQoKSBj
b25zdDsKKyAgICAgICAgRmxvYXRQb2ludCBjdXJyZW50UG9pbnQoKSBjb25zdDsKIAogICAgICAg
ICB2b2lkIG1vdmVUbyhjb25zdCBGbG9hdFBvaW50Jik7CiAgICAgICAgIHZvaWQgYWRkTGluZVRv
KGNvbnN0IEZsb2F0UG9pbnQmKTsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fp
cm8vUGF0aENhaXJvLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NhaXJvL1BhdGhDYWlyby5jcHAJKHJldmlzaW9uIDYzMjc1KQorKysgV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jYWlyby9QYXRoQ2Fpcm8uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04Niw2ICs4
NiwxMiBAQCBib29sIFBhdGg6Omhhc0N1cnJlbnRQb2ludCgpIGNvbnN0CiAgICAgcmV0dXJuICFp
c0VtcHR5KCk7CiB9CiAKK0Zsb2F0UG9pbnQgUGF0aDo6Y3VycmVudFBvaW50KCkgY29uc3QgCit7
CisgICAgLy8gRklYTUU6IGltcGxlbWVudCBzYWZlIHdheSB0byByZXR1cm4gY3VycmVudCBwb2lu
dCBvZiBzdWJwYXRoLgorICAgIHJldHVybiAwOworfQorCiB2b2lkIFBhdGg6OnRyYW5zbGF0ZShj
b25zdCBGbG9hdFNpemUmIHApCiB7CiAgICAgY2Fpcm9fdCogY3IgPSBwbGF0Zm9ybVBhdGgoKS0+
bV9jcjsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvUGF0aENHLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL1BhdGhDRy5jcHAJKHJldmlz
aW9uIDYzMjc1KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9QYXRoQ0cuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0yNDksNiArMjQ5LDExIEBAIGJvb2wgUGF0aDo6aGFzQ3VycmVudFBv
aW50KCkgY29uc3QKIHsKICAgICByZXR1cm4gIWlzRW1wdHkoKTsKIH0KKyAgICAKK0Zsb2F0UG9p
bnQgUGF0aDo6Y3VycmVudFBvaW50KCkgY29uc3QgCit7CisgICAgcmV0dXJuIENHUGF0aEdldEN1
cnJlbnRQb2ludChtX3BhdGgpOworfQogCiBzdGF0aWMgdm9pZCBDR1BhdGhUb0NGU3RyaW5nQXBw
bGllckZ1bmN0aW9uKHZvaWQqIGluZm8sIGNvbnN0IENHUGF0aEVsZW1lbnQgKmVsZW1lbnQpCiB7
CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2hhaWt1L1BhdGhIYWlrdS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9oYWlrdS9QYXRoSGFpa3UuY3Bw
CShyZXZpc2lvbiA2MzI3NSkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvaGFpa3UvUGF0
aEhhaWt1LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjUsNiArNjUsMTMgQEAgYm9vbCBQYXRoOjpo
YXNDdXJyZW50UG9pbnQoKSBjb25zdAogICAgIHJldHVybiAhaXNFbXB0eSgpOwogfQogCitGbG9h
dFBvaW50IFBhdGg6OmN1cnJlbnRQb2ludCgpIGNvbnN0IAoreworICAgIC8vIEZJWE1FOiBpbXBs
ZW1lbnQgc2FmZSB3YXkgdG8gcmV0dXJuIGN1cnJlbnQgcG9pbnQgb2Ygc3VicGF0aC4KKyAgICBu
b3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiAwOworfQorCiBib29sIFBhdGg6OmNvbnRhaW5z
KGNvbnN0IEZsb2F0UG9pbnQmIHBvaW50LCBXaW5kUnVsZSBydWxlKSBjb25zdAogewogICAgIHJl
dHVybiBtX3BhdGgtPkNvbnRhaW5zKHBvaW50KTsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvb3BlbnZnL1BhdGhPcGVuVkcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvb3BlbnZnL1BhdGhPcGVuVkcuY3BwCShyZXZpc2lvbiA2MzI3NSkKKysrIFdl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbnZnL1BhdGhPcGVuVkcuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xMjMsNiArMTIzLDEzIEBAIFBhdGgmIFBhdGg6Om9wZXJhdG9yPShjb25zdCBQYXRo
JiBvdGhlcikKICAgICByZXR1cm4gKnRoaXM7CiB9CiAKK0Zsb2F0UG9pbnQgUGF0aDo6Y3VycmVu
dFBvaW50KCkgY29uc3QgCit7CisgICAgLy8gRklYTUU6IGlzIHRoaXMgYSBzYWZlIHdheSB0byBy
ZXR1cm4gdGhlIGN1cnJlbnQgcG9pbnQgb2YgdGhlIHN1YnBhdGg/CisgICAgcmV0dXJuIG1fY3Vy
cmVudFBvaW50OworfQorCisKIGJvb2wgUGF0aDo6Y29udGFpbnMoY29uc3QgRmxvYXRQb2ludCYg
cG9pbnQsIFdpbmRSdWxlIHJ1bGUpIGNvbnN0CiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKSW5k
ZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvUGF0aFF0LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L1BhdGhRdC5jcHAJKHJldmlzaW9uIDYzMjc1
KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9QYXRoUXQuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0zNjIsNiArMzYyLDEyIEBAIGJvb2wgUGF0aDo6aGFzQ3VycmVudFBvaW50KCkgY29u
c3QKICAgICByZXR1cm4gIWlzRW1wdHkoKTsKIH0KIAorRmxvYXRQb2ludCBQYXRoOjpjdXJyZW50
UG9pbnQoKSBjb25zdCAKK3sKKyAgICAvLyBGSVhNRTogaW1wbGVtZW50IHNhZmUgd2F5IHRvIHJl
dHVybiBjdXJyZW50IHBvaW50IG9mIHN1YnBhdGguCisgICAgcmV0dXJuIDA7Cit9CisKIFN0cmlu
ZyBQYXRoOjpkZWJ1Z1N0cmluZygpIGNvbnN0CiB7CiAgICAgUVN0cmluZyByZXQ7CkluZGV4OiBX
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvUGF0aFNraWEuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9QYXRoU2tpYS5jcHAJKHJldmlzaW9uIDYz
Mjc1KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL1BhdGhTa2lhLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNzQsNiArNzQsMTIgQEAgYm9vbCBQYXRoOjpoYXNDdXJyZW50UG9pbnQo
KSBjb25zdAogICAgIHJldHVybiBtX3BhdGgtPmdldFBvaW50cyhOVUxMLCAwKSAhPSAwOwogfQog
CitGbG9hdFBvaW50IFBhdGg6OmN1cnJlbnRQb2ludCgpIGNvbnN0IAoreworICAgIC8vIEZJWE1F
OiBpbXBsZW1lbnQgc2FmZSB3YXkgdG8gcmV0dXJuIGN1cnJlbnQgcG9pbnQgb2Ygc3VicGF0aC4K
KyAgICByZXR1cm4gMDsKK30KKwogYm9vbCBQYXRoOjpjb250YWlucyhjb25zdCBGbG9hdFBvaW50
JiBwb2ludCwgV2luZFJ1bGUgcnVsZSkgY29uc3QKIHsKICAgICByZXR1cm4gU2tQYXRoQ29udGFp
bnNQb2ludChtX3BhdGgsIHBvaW50LApJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93
aW5jZS9QYXRoV2luY2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3Mvd2luY2UvUGF0aFdpbmNlLmNwcAkocmV2aXNpb24gNjMyNzUpCisrKyBXZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3dpbmNlL1BhdGhXaW5jZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE2MCw0
ICsxNjAsMTAgQEAgYm9vbCBQYXRoOjpoYXNDdXJyZW50UG9pbnQoKSBjb25zdAogICAgIHJldHVy
biAhaXNFbXB0eSgpOwogfQogCitGbG9hdFBvaW50IFBhdGg6OmN1cnJlbnRQb2ludCgpIGNvbnN0
IAoreworICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQgc2FmZSB3YXkgdG8gcmV0dXJuIGN1cnJlbnQg
cG9pbnQgb2Ygc3VicGF0aC4KKyAgICByZXR1cm4gMDsKK30KKwogfQpJbmRleDogV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy93eC9QYXRoV3guY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvd3gvUGF0aFd4LmNwcAkocmV2aXNpb24gNjMyNzUpCisrKyBXZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3d4L1BhdGhXeC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI0NSw0
ICsyNDUsMTAgQEAgYm9vbCBQYXRoOjpoYXNDdXJyZW50UG9pbnQoKSBjb25zdAogICAgIHJldHVy
biAhaXNFbXB0eSgpOwogfQogCitGbG9hdFBvaW50IFBhdGg6OmN1cnJlbnRQb2ludCgpIGNvbnN0
IAoreworICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQgc2FmZSB3YXkgdG8gcmV0dXJuIGN1cnJlbnQg
cG9pbnQgb2Ygc3VicGF0aC4KKyAgICByZXR1cm4gMDsKK30KKwogfQpJbmRleDogTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNp
b24gNjMzODApCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEs
MyArMSwxMiBAQAorMjAxMC0wNy0xNCAgTWF0dGhldyBEZWxhbmV5ICA8bWRlbGFuZXlAYXBwbGUu
Y29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZh
aWxpbmcgMmQucGF0aC5zdHJva2UucHJ1bmUuYXJjIHBoaWxpcCBjYW52YXMgdGVzdAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDIxODgKKworICAgICAg
ICAqIHBsYXRmb3JtL21hYy9Ta2lwcGVkOiBVbnNraXBwZWQgbm93IHBhc3NpbmcgdGVzdHMuCisK
IDIwMTAtMDctMTQgIEJyaWFuIFdlaW5zdGVpbiAgPGJ3ZWluc3RlaW5AYXBwbGUuY29tPgogCiAg
ICAgICAgIEEgc3B1dG5payB0ZXN0IHdhcyByZW1vdmVkIGZyb20gdGhlIFNraXBwZWQgbGlzdCBp
biByNjMzNjYgYmVjYXVzZSBpdCB3YXMgYSBib2d1cyBmaWxlbmFtZSwKSW5kZXg6IExheW91dFRl
c3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVkCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRm
b3JtL21hYy9Ta2lwcGVkCShyZXZpc2lvbiA2MzI3NSkKKysrIExheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy9Ta2lwcGVkCSh3b3JraW5nIGNvcHkpCkBAIC0yMjQsMTAgKzIyNCw4IEBAIGNhbnZhcy9w
aGlsaXAvdGVzdHMvMmQubWlzc2luZ2FyZ3MuaHRtbAogY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5w
YXRoLmFyY1RvLmVuc3VyZXN1YnBhdGguMi5odG1sCiBjYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnBh
dGguY2xpcC5lbXB0eS5odG1sCiBjYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnBhdGgucmVjdC53aW5k
aW5nLmh0bWwKLWNhbnZhcy9waGlsaXAvdGVzdHMvMmQucGF0aC5zdHJva2UucHJ1bmUuYXJjLmh0
bWwKIGNhbnZhcy9waGlsaXAvdGVzdHMvMmQucGF0aC5zdHJva2UucHJ1bmUuY2xvc2VkLmh0bWwK
IGNhbnZhcy9waGlsaXAvdGVzdHMvMmQucGF0aC5zdHJva2UucHJ1bmUuY3VydmUuaHRtbAotY2Fu
dmFzL3BoaWxpcC90ZXN0cy8yZC5wYXRoLnN0cm9rZS5wcnVuZS5saW5lLmh0bWwKIGNhbnZhcy9w
aGlsaXAvdGVzdHMvMmQucGF0dGVybi5pbWFnZS5icm9rZW4uaHRtbAogY2FudmFzL3BoaWxpcC90
ZXN0cy8yZC5wYXR0ZXJuLmltYWdlLmluY29tcGxldGUuaHRtbAogY2FudmFzL3BoaWxpcC90ZXN0
cy8yZC5wYXR0ZXJuLmltYWdlLm51bGwuaHRtbAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>61592</attachid>
            <date>2010-07-14 18:00:06 -0700</date>
            <delta_ts>2010-07-16 13:01:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-42188-20100714180005.patch</filename>
            <type>text/plain</type>
            <size>10005</size>
            <attacher name="Matthew Delaney">mdelaney7</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2MzM4MCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzIgQEAKKzIwMTAtMDctMTQgIE1hdHRoZXcgRGVsYW5leSAgPG1kZWxhbmV5QGFw
cGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBGYWlsaW5nIDJkLnBhdGguc3Ryb2tlLnBydW5lLmFyYyBwaGlsaXAgY2FudmFzIHRlc3QKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQyMTg4CisKKyAg
ICAgICAgKiBodG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwOiAKKyAgICAg
ICAgTm90ZSwgdXBkYXRlZCBwYXJhbWV0ZXIgbmFtZXMgdG8gbWF0Y2ggc3BlYy4KKyAgICAgICAg
KFdlYkNvcmU6OkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6bGluZVRvKTogUHVsbGVkIGJvdW5k
IGNoZWNraW5nIGNvZGUgb3V0IG9mIGxvd2VyIGNvZGUgdG8gaGF2ZSBjaGVja3MgZm9yIGFsbCBw
bGF0Zm9ybXMuCisgICAgICAgIChXZWJDb3JlOjpDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmFy
Y1RvKTogQm91bmQgY2hlY2tpbmcgcGVyIHRoZSBzcGVjIGZvciBhcmNUbyBwYXJhbWV0ZXJzLiBV
cGRhdGVkIHBhcmFtZXRlciBuYW1lcyB0byBtYXRjaCBzcGVjLgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL1BhdGguaDogQWRkZWQgaW4gbmV3IG1ldGhvZCB0byBleHBvc2UgdGhlIGN1cnJl
bnQgcG9zaXRpb24uCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vUGF0aENhaXJv
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhdGg6OmN1cnJlbnRQb2ludCk6IEFkZGVkIGluIHN0
dWIgZm9yIHRoaXMgY2FsbC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jZy9QYXRoQ0cu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UGF0aDo6Y3VycmVudFBvaW50KTogQWRkZWQgaW4gc3Vw
cG9ydCBmb3IgdGhpcyBjYWxsLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2hhaWt1L1Bh
dGhIYWlrdS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYXRoOjpjdXJyZW50UG9pbnQpOiBBZGRl
ZCBpbiBzdHViIGZvciB0aGlzIGNhbGwuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3Bl
bnZnL1BhdGhPcGVuVkcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGF0aDo6Y3VycmVudFBvaW50
KTogQWRkZWQgaW4gc3R1YiBmb3IgdGhpcyBjYWxsLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL3F0L1BhdGhRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYXRoOjpjdXJyZW50UG9pbnQp
OiBBZGRlZCBpbiBzdHViIGZvciB0aGlzIGNhbGwuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3Mvc2tpYS9QYXRoU2tpYS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYXRoOjpjdXJyZW50UG9p
bnQpOiBBZGRlZCBpbiBzdHViIGZvciB0aGlzIGNhbGwuCisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3Mvd2luY2UvUGF0aFdpbmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhdGg6OmN1cnJl
bnRQb2ludCk6IEFkZGVkIGluIHN0dWIgZm9yIHRoaXMgY2FsbC4KKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy93eC9QYXRoV3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGF0aDo6Y3VycmVu
dFBvaW50KTogQWRkZWQgaW4gc3R1YiBmb3IgdGhpcyBjYWxsLgorCiAyMDEwLTA3LTE0ICBBbGV4
ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgogCiAgICAgICAgIE5vdCByZXZpZXdlZC4K
SW5kZXg6IFdlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQy
RC5jcHAJKHJldmlzaW9uIDYzMjc1KQorKysgV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5k
ZXJpbmdDb250ZXh0MkQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NjEsOSArNTYxLDExIEBAIHZv
aWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpsaW5lVG8oZmwKICAgICAgICAgcmV0dXJuOwog
ICAgIGlmICghc3RhdGUoKS5tX2ludmVydGlibGVDVE0pCiAgICAgICAgIHJldHVybjsKKyAgICAK
KyAgICBGbG9hdFBvaW50IHAxID0gRmxvYXRQb2ludCh4LCB5KTsKICAgICBpZiAoIW1fcGF0aC5o
YXNDdXJyZW50UG9pbnQoKSkKLSAgICAgICAgbV9wYXRoLm1vdmVUbyhGbG9hdFBvaW50KHgsIHkp
KTsKLSAgICBlbHNlCisgICAgICAgIG1fcGF0aC5tb3ZlVG8ocDEpOworICAgIGVsc2UgaWYgKHAx
ICE9IG1fcGF0aC5jdXJyZW50UG9pbnQoKSkKICAgICAgICAgbV9wYXRoLmFkZExpbmVUbyhGbG9h
dFBvaW50KHgsIHkpKTsKIH0KIApAQCAtNTg5LDE5ICs1OTEsMjcgQEAgdm9pZCBDYW52YXNSZW5k
ZXJpbmdDb250ZXh0MkQ6OmJlemllckN1cgogICAgIG1fcGF0aC5hZGRCZXppZXJDdXJ2ZVRvKEZs
b2F0UG9pbnQoY3AxeCwgY3AxeSksIEZsb2F0UG9pbnQoY3AyeCwgY3AyeSksIEZsb2F0UG9pbnQo
eCwgeSkpOwogfQogCi12b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6YXJjVG8oZmxvYXQg
eDAsIGZsb2F0IHkwLCBmbG9hdCB4MSwgZmxvYXQgeTEsIGZsb2F0IHIsIEV4Y2VwdGlvbkNvZGUm
IGVjKQordm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmFyY1RvKGZsb2F0IHgxLCBmbG9h
dCB5MSwgZmxvYXQgeDIsIGZsb2F0IHkyLCBmbG9hdCByLCBFeGNlcHRpb25Db2RlJiBlYykKIHsK
ICAgICBlYyA9IDA7Ci0gICAgaWYgKCFpc2Zpbml0ZSh4MCkgfCAhaXNmaW5pdGUoeTApIHwgIWlz
ZmluaXRlKHgxKSB8ICFpc2Zpbml0ZSh5MSkgfCAhaXNmaW5pdGUocikpCisgICAgaWYgKCFpc2Zp
bml0ZSh4MSkgfCAhaXNmaW5pdGUoeTEpIHwgIWlzZmluaXRlKHgyKSB8ICFpc2Zpbml0ZSh5Mikg
fCAhaXNmaW5pdGUocikpCiAgICAgICAgIHJldHVybjsKICAgICAKICAgICBpZiAociA8IDApIHsK
ICAgICAgICAgZWMgPSBJTkRFWF9TSVpFX0VSUjsKICAgICAgICAgcmV0dXJuOwogICAgIH0KKyAg
ICAKICAgICBpZiAoIXN0YXRlKCkubV9pbnZlcnRpYmxlQ1RNKQogICAgICAgICByZXR1cm47Ci0g
ICAgbV9wYXRoLmFkZEFyY1RvKEZsb2F0UG9pbnQoeDAsIHkwKSwgRmxvYXRQb2ludCh4MSwgeTEp
LCByKTsKKyAgICAKKyAgICBGbG9hdFBvaW50IHAxID0gRmxvYXRQb2ludCh4MSwgeTEpOworICAg
IEZsb2F0UG9pbnQgcDIgPSBGbG9hdFBvaW50KHgyLCB5Mik7CisgICAgCisgICAgaWYgKHAxID09
IG1fcGF0aC5jdXJyZW50UG9pbnQoKSB8fCBwMSA9PSBwMiB8fCAhcikKKyAgICAgICAgbGluZVRv
KHgxLCB5MSk7CisgICAgZWxzZQorICAgICAgICBtX3BhdGguYWRkQXJjVG8ocDEsIHAyLCByKTsK
IH0KIAogdm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmFyYyhmbG9hdCB4LCBmbG9hdCB5
LCBmbG9hdCByLCBmbG9hdCBzYSwgZmxvYXQgZWEsIGJvb2wgYW50aWNsb2Nrd2lzZSwgRXhjZXB0
aW9uQ29kZSYgZWMpCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BhdGguaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BhdGguaAkocmV2aXNpb24gNjMy
NzUpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BhdGguaAkod29ya2luZyBjb3B5KQpA
QCAtMTI0LDYgKzEyNCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgLy8gR2V0cyB0
aGUgY3VycmVudCBwb2ludCBvZiB0aGUgY3VycmVudCBwYXRoLCB3aGljaCBpcyBjb25jZXB0dWFs
bHkgdGhlIGZpbmFsIHBvaW50IHJlYWNoZWQgYnkgdGhlIHBhdGggc28gZmFyLgogICAgICAgICAv
LyBOb3RlIHRoZSBQYXRoIGNhbiBiZSBlbXB0eSAoaXNFbXB0eSgpID09IHRydWUpIGFuZCBzdGls
bCBoYXZlIGEgY3VycmVudCBwb2ludC4KICAgICAgICAgYm9vbCBoYXNDdXJyZW50UG9pbnQoKSBj
b25zdDsKKyAgICAgICAgRmxvYXRQb2ludCBjdXJyZW50UG9pbnQoKSBjb25zdDsKIAogICAgICAg
ICB2b2lkIG1vdmVUbyhjb25zdCBGbG9hdFBvaW50Jik7CiAgICAgICAgIHZvaWQgYWRkTGluZVRv
KGNvbnN0IEZsb2F0UG9pbnQmKTsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fp
cm8vUGF0aENhaXJvLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NhaXJvL1BhdGhDYWlyby5jcHAJKHJldmlzaW9uIDYzMjc1KQorKysgV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jYWlyby9QYXRoQ2Fpcm8uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04Niw2ICs4
NiwxMiBAQCBib29sIFBhdGg6Omhhc0N1cnJlbnRQb2ludCgpIGNvbnN0CiAgICAgcmV0dXJuICFp
c0VtcHR5KCk7CiB9CiAKK0Zsb2F0UG9pbnQgUGF0aDo6Y3VycmVudFBvaW50KCkgY29uc3QgCit7
CisgICAgLy8gRklYTUU6IHJldHVybiBjdXJyZW50IHBvaW50IG9mIHN1YnBhdGguCisgICAgcmV0
dXJuIEZsb2F0UG9pbnQoTkFOLCBOQU4pOworfQorCiB2b2lkIFBhdGg6OnRyYW5zbGF0ZShjb25z
dCBGbG9hdFNpemUmIHApCiB7CiAgICAgY2Fpcm9fdCogY3IgPSBwbGF0Zm9ybVBhdGgoKS0+bV9j
cjsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvUGF0aENHLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL1BhdGhDRy5jcHAJKHJldmlzaW9u
IDYzMjc1KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9QYXRoQ0cuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yNDksNiArMjQ5LDExIEBAIGJvb2wgUGF0aDo6aGFzQ3VycmVudFBvaW50
KCkgY29uc3QKIHsKICAgICByZXR1cm4gIWlzRW1wdHkoKTsKIH0KKyAgICAKK0Zsb2F0UG9pbnQg
UGF0aDo6Y3VycmVudFBvaW50KCkgY29uc3QgCit7CisgICAgcmV0dXJuIENHUGF0aEdldEN1cnJl
bnRQb2ludChtX3BhdGgpOworfQogCiBzdGF0aWMgdm9pZCBDR1BhdGhUb0NGU3RyaW5nQXBwbGll
ckZ1bmN0aW9uKHZvaWQqIGluZm8sIGNvbnN0IENHUGF0aEVsZW1lbnQgKmVsZW1lbnQpCiB7Cklu
ZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2hhaWt1L1BhdGhIYWlrdS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9oYWlrdS9QYXRoSGFpa3UuY3BwCShy
ZXZpc2lvbiA2MzI3NSkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvaGFpa3UvUGF0aEhh
aWt1LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjUsNiArNjUsMTMgQEAgYm9vbCBQYXRoOjpoYXND
dXJyZW50UG9pbnQoKSBjb25zdAogICAgIHJldHVybiAhaXNFbXB0eSgpOwogfQogCitGbG9hdFBv
aW50IFBhdGg6OmN1cnJlbnRQb2ludCgpIGNvbnN0IAoreworICAgIC8vIEZJWE1FOiBpbXBsZW1l
bnQgc2FmZSB3YXkgdG8gcmV0dXJuIGN1cnJlbnQgcG9pbnQgb2Ygc3VicGF0aC4KKyAgICBub3RJ
bXBsZW1lbnRlZCgpOworICAgIHJldHVybiBGbG9hdFBvaW50KE5BTiwgTkFOKTsKK30KKwogYm9v
bCBQYXRoOjpjb250YWlucyhjb25zdCBGbG9hdFBvaW50JiBwb2ludCwgV2luZFJ1bGUgcnVsZSkg
Y29uc3QKIHsKICAgICByZXR1cm4gbV9wYXRoLT5Db250YWlucyhwb2ludCk7CkluZGV4OiBXZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW52Zy9QYXRoT3BlblZHLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW52Zy9QYXRoT3BlblZHLmNwcAkocmV2aXNp
b24gNjMyNzUpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW52Zy9QYXRoT3BlblZH
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTIzLDYgKzEyMywxMyBAQCBQYXRoJiBQYXRoOjpvcGVy
YXRvcj0oY29uc3QgUGF0aCYgb3RoZXIpCiAgICAgcmV0dXJuICp0aGlzOwogfQogCitGbG9hdFBv
aW50IFBhdGg6OmN1cnJlbnRQb2ludCgpIGNvbnN0IAoreworICAgIC8vIEZJWE1FOiBpcyB0aGlz
IHRoZSB3YXkgdG8gcmV0dXJuIHRoZSBjdXJyZW50IHBvaW50IG9mIHRoZSBzdWJwYXRoPworICAg
IHJldHVybiBtX2N1cnJlbnRQb2ludDsKK30KKworCiBib29sIFBhdGg6OmNvbnRhaW5zKGNvbnN0
IEZsb2F0UG9pbnQmIHBvaW50LCBXaW5kUnVsZSBydWxlKSBjb25zdAogewogICAgIG5vdEltcGxl
bWVudGVkKCk7CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L1BhdGhRdC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9QYXRoUXQuY3BwCShy
ZXZpc2lvbiA2MzI3NSkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvUGF0aFF0LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMzYyLDYgKzM2MiwxMiBAQCBib29sIFBhdGg6Omhhc0N1cnJl
bnRQb2ludCgpIGNvbnN0CiAgICAgcmV0dXJuICFpc0VtcHR5KCk7CiB9CiAKK0Zsb2F0UG9pbnQg
UGF0aDo6Y3VycmVudFBvaW50KCkgY29uc3QgCit7CisgICAgLy8gRklYTUU6IHJldHVybiBjdXJy
ZW50IHBvaW50IG9mIHN1YnBhdGguCisgICAgcmV0dXJuIEZsb2F0UG9pbnQoTkFOLCBOQU4pOwor
fQorCiBTdHJpbmcgUGF0aDo6ZGVidWdTdHJpbmcoKSBjb25zdAogewogICAgIFFTdHJpbmcgcmV0
OwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL1BhdGhTa2lhLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvUGF0aFNraWEuY3BwCShy
ZXZpc2lvbiA2MzI3NSkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9QYXRoU2tp
YS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc0LDYgKzc0LDEyIEBAIGJvb2wgUGF0aDo6aGFzQ3Vy
cmVudFBvaW50KCkgY29uc3QKICAgICByZXR1cm4gbV9wYXRoLT5nZXRQb2ludHMoTlVMTCwgMCkg
IT0gMDsKIH0KIAorRmxvYXRQb2ludCBQYXRoOjpjdXJyZW50UG9pbnQoKSBjb25zdCAKK3sKKyAg
ICAvLyBGSVhNRTogcmV0dXJuIGN1cnJlbnQgcG9pbnQgb2Ygc3VicGF0aC4KKyAgICByZXR1cm4g
RmxvYXRQb2ludChOQU4sIE5BTik7Cit9CisKIGJvb2wgUGF0aDo6Y29udGFpbnMoY29uc3QgRmxv
YXRQb2ludCYgcG9pbnQsIFdpbmRSdWxlIHJ1bGUpIGNvbnN0CiB7CiAgICAgcmV0dXJuIFNrUGF0
aENvbnRhaW5zUG9pbnQobV9wYXRoLCBwb2ludCwKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvd2luY2UvUGF0aFdpbmNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3dpbmNlL1BhdGhXaW5jZS5jcHAJKHJldmlzaW9uIDYzMjc1KQorKysgV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy93aW5jZS9QYXRoV2luY2UuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0xNjAsNCArMTYwLDEwIEBAIGJvb2wgUGF0aDo6aGFzQ3VycmVudFBvaW50KCkgY29uc3QKICAg
ICByZXR1cm4gIWlzRW1wdHkoKTsKIH0KIAorRmxvYXRQb2ludCBQYXRoOjpjdXJyZW50UG9pbnQo
KSBjb25zdCAKK3sKKyAgICAvLyBGSVhNRTogcmV0dXJuIGN1cnJlbnQgcG9pbnQgb2Ygc3VicGF0
aC4KKyAgICByZXR1cm4gRmxvYXRQb2ludChOQU4sIE5BTik7Cit9CisKIH0KSW5kZXg6IFdlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd3gvUGF0aFd4LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3d4L1BhdGhXeC5jcHAJKHJldmlzaW9uIDYzMjc1KQorKysgV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy93eC9QYXRoV3guY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0y
NDUsNCArMjQ1LDEwIEBAIGJvb2wgUGF0aDo6aGFzQ3VycmVudFBvaW50KCkgY29uc3QKICAgICBy
ZXR1cm4gIWlzRW1wdHkoKTsKIH0KIAorRmxvYXRQb2ludCBQYXRoOjpjdXJyZW50UG9pbnQoKSBj
b25zdCAKK3sKKyAgICAvLyBGSVhNRTogcmV0dXJuIGN1cnJlbnQgcG9pbnQgb2Ygc3VicGF0aC4K
KyAgICByZXR1cm4gRmxvYXRQb2ludChOQU4sIE5BTik7Cit9CisKIH0KSW5kZXg6IExheW91dFRl
c3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlz
aW9uIDYzMzgwKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDMgKzEsMTIgQEAKKzIwMTAtMDctMTQgIE1hdHRoZXcgRGVsYW5leSAgPG1kZWxhbmV5QGFwcGxl
LmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBG
YWlsaW5nIDJkLnBhdGguc3Ryb2tlLnBydW5lLmFyYyBwaGlsaXAgY2FudmFzIHRlc3QKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQyMTg4CisKKyAgICAg
ICAgKiBwbGF0Zm9ybS9tYWMvU2tpcHBlZDogVW5za2lwcGVkIG5vdyBwYXNzaW5nIHRlc3RzLgor
CiAyMDEwLTA3LTE0ICBCcmlhbiBXZWluc3RlaW4gIDxid2VpbnN0ZWluQGFwcGxlLmNvbT4KIAog
ICAgICAgICBBIHNwdXRuaWsgdGVzdCB3YXMgcmVtb3ZlZCBmcm9tIHRoZSBTa2lwcGVkIGxpc3Qg
aW4gcjYzMzY2IGJlY2F1c2UgaXQgd2FzIGEgYm9ndXMgZmlsZW5hbWUsCkluZGV4OiBMYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMvU2tpcHBlZAkocmV2aXNpb24gNjMyNzUpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMvU2tpcHBlZAkod29ya2luZyBjb3B5KQpAQCAtMjI0LDEwICsyMjQsOCBAQCBjYW52YXMv
cGhpbGlwL3Rlc3RzLzJkLm1pc3NpbmdhcmdzLmh0bWwKIGNhbnZhcy9waGlsaXAvdGVzdHMvMmQu
cGF0aC5hcmNUby5lbnN1cmVzdWJwYXRoLjIuaHRtbAogY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5w
YXRoLmNsaXAuZW1wdHkuaHRtbAogY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5wYXRoLnJlY3Qud2lu
ZGluZy5odG1sCi1jYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnBhdGguc3Ryb2tlLnBydW5lLmFyYy5o
dG1sCiBjYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnBhdGguc3Ryb2tlLnBydW5lLmNsb3NlZC5odG1s
CiBjYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnBhdGguc3Ryb2tlLnBydW5lLmN1cnZlLmh0bWwKLWNh
bnZhcy9waGlsaXAvdGVzdHMvMmQucGF0aC5zdHJva2UucHJ1bmUubGluZS5odG1sCiBjYW52YXMv
cGhpbGlwL3Rlc3RzLzJkLnBhdHRlcm4uaW1hZ2UuYnJva2VuLmh0bWwKIGNhbnZhcy9waGlsaXAv
dGVzdHMvMmQucGF0dGVybi5pbWFnZS5pbmNvbXBsZXRlLmh0bWwKIGNhbnZhcy9waGlsaXAvdGVz
dHMvMmQucGF0dGVybi5pbWFnZS5udWxsLmh0bWwK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>61839</attachid>
            <date>2010-07-16 13:01:26 -0700</date>
            <delta_ts>2010-07-16 14:21:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-42188-20100716130125.patch</filename>
            <type>text/plain</type>
            <size>10433</size>
            <attacher name="Matthew Delaney">mdelaney7</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2MzU1NCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzIgQEAKKzIwMTAtMDctMTQgIE1hdHRoZXcgRGVsYW5leSAgPG1kZWxhbmV5QGFw
cGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBGYWlsaW5nIDJkLnBhdGguc3Ryb2tlLnBydW5lLmFyYyBwaGlsaXAgY2FudmFzIHRlc3QKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQyMTg4CisKKyAg
ICAgICAgKiBodG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwOiAKKyAgICAg
ICAgTm90ZSwgdXBkYXRlZCBwYXJhbWV0ZXIgbmFtZXMgdG8gbWF0Y2ggc3BlYy4KKyAgICAgICAg
KFdlYkNvcmU6OkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6bGluZVRvKTogUHVsbGVkIGJvdW5k
IGNoZWNraW5nIGNvZGUgb3V0IG9mIGxvd2VyIGNvZGUgdG8gaGF2ZSBjaGVja3MgZm9yIGFsbCBw
bGF0Zm9ybXMuCisgICAgICAgIChXZWJDb3JlOjpDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmFy
Y1RvKTogQm91bmQgY2hlY2tpbmcgcGVyIHRoZSBzcGVjIGZvciBhcmNUbyBwYXJhbWV0ZXJzLiBV
cGRhdGVkIHBhcmFtZXRlciBuYW1lcyB0byBtYXRjaCBzcGVjLgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL1BhdGguaDogQWRkZWQgaW4gbmV3IG1ldGhvZCB0byBleHBvc2UgdGhlIGN1cnJl
bnQgcG9zaXRpb24uCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vUGF0aENhaXJv
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhdGg6OmN1cnJlbnRQb2ludCk6IEFkZGVkIGluIGxp
a2VseSBjb3JyZWN0IGltcGxlbWVudGF0aW9uIGZvciB0aGlzIGNhbGwgd2l0aCBhIEZJWE1FIGp1
c3QgaW4gY2FzZS4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jZy9QYXRoQ0cuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UGF0aDo6Y3VycmVudFBvaW50KTogQWRkZWQgaW4gc3VwcG9ydCBm
b3IgdGhpcyBjYWxsLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2hhaWt1L1BhdGhIYWlr
dS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYXRoOjpjdXJyZW50UG9pbnQpOiBBZGRlZCBpbiBz
dHViIGZvciB0aGlzIGNhbGwuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbnZnL1Bh
dGhPcGVuVkcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGF0aDo6Y3VycmVudFBvaW50KTogQWRk
ZWQgaW4gbGlrZWx5IGltcGxlbWVudGF0aW9uIGZvciB0aGlzIGNhbGwgd2l0aCBhIEZJWE1FIGp1
c3QgaW4gY2FzZS4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9xdC9QYXRoUXQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UGF0aDo6Y3VycmVudFBvaW50KTogQWRkZWQgaW4gaW1wbGVtZW50
YXRpb24gZm9yIHRoaXMgY2FsbCBjb3VydGVzeSBvZiBBbmRyZWEgS2xpbmcuCisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9QYXRoU2tpYS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQ
YXRoOjpjdXJyZW50UG9pbnQpOiBBZGRlZCBpbiBzdHViIGZvciB0aGlzIGNhbGwuCisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2UvUGF0aFdpbmNlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlBhdGg6OmN1cnJlbnRQb2ludCk6IEFkZGVkIGluIHN0dWIgZm9yIHRoaXMgY2FsbC4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93eC9QYXRoV3guY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UGF0aDo6Y3VycmVudFBvaW50KTogQWRkZWQgaW4gc3R1YiBmb3IgdGhpcyBjYWxsLgorCiAy
MDEwLTA3LTE2ICBZdXJ5IFNlbWlraGF0c2t5ICA8eXVyeXNAY2hyb21pdW0ub3JnPgogCiAgICAg
ICAgIFVucmV2aWV3ZWQuIENocm9taXVtIGJ1aWxkIGZpeC4gQWRkIG1pc3NpbmcgaW5jbHVkZS4K
SW5kZXg6IFdlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQy
RC5jcHAJKHJldmlzaW9uIDYzNTU0KQorKysgV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5k
ZXJpbmdDb250ZXh0MkQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NzUsOSArNTc1LDExIEBAIHZv
aWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpsaW5lVG8oZmwKICAgICAgICAgcmV0dXJuOwog
ICAgIGlmICghc3RhdGUoKS5tX2ludmVydGlibGVDVE0pCiAgICAgICAgIHJldHVybjsKKyAgICAK
KyAgICBGbG9hdFBvaW50IHAxID0gRmxvYXRQb2ludCh4LCB5KTsKICAgICBpZiAoIW1fcGF0aC5o
YXNDdXJyZW50UG9pbnQoKSkKLSAgICAgICAgbV9wYXRoLm1vdmVUbyhGbG9hdFBvaW50KHgsIHkp
KTsKLSAgICBlbHNlCisgICAgICAgIG1fcGF0aC5tb3ZlVG8ocDEpOworICAgIGVsc2UgaWYgKHAx
ICE9IG1fcGF0aC5jdXJyZW50UG9pbnQoKSkKICAgICAgICAgbV9wYXRoLmFkZExpbmVUbyhGbG9h
dFBvaW50KHgsIHkpKTsKIH0KIApAQCAtNjAzLDE5ICs2MDUsMjcgQEAgdm9pZCBDYW52YXNSZW5k
ZXJpbmdDb250ZXh0MkQ6OmJlemllckN1cgogICAgIG1fcGF0aC5hZGRCZXppZXJDdXJ2ZVRvKEZs
b2F0UG9pbnQoY3AxeCwgY3AxeSksIEZsb2F0UG9pbnQoY3AyeCwgY3AyeSksIEZsb2F0UG9pbnQo
eCwgeSkpOwogfQogCi12b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6YXJjVG8oZmxvYXQg
eDAsIGZsb2F0IHkwLCBmbG9hdCB4MSwgZmxvYXQgeTEsIGZsb2F0IHIsIEV4Y2VwdGlvbkNvZGUm
IGVjKQordm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmFyY1RvKGZsb2F0IHgxLCBmbG9h
dCB5MSwgZmxvYXQgeDIsIGZsb2F0IHkyLCBmbG9hdCByLCBFeGNlcHRpb25Db2RlJiBlYykKIHsK
ICAgICBlYyA9IDA7Ci0gICAgaWYgKCFpc2Zpbml0ZSh4MCkgfCAhaXNmaW5pdGUoeTApIHwgIWlz
ZmluaXRlKHgxKSB8ICFpc2Zpbml0ZSh5MSkgfCAhaXNmaW5pdGUocikpCisgICAgaWYgKCFpc2Zp
bml0ZSh4MSkgfCAhaXNmaW5pdGUoeTEpIHwgIWlzZmluaXRlKHgyKSB8ICFpc2Zpbml0ZSh5Mikg
fCAhaXNmaW5pdGUocikpCiAgICAgICAgIHJldHVybjsKICAgICAKICAgICBpZiAociA8IDApIHsK
ICAgICAgICAgZWMgPSBJTkRFWF9TSVpFX0VSUjsKICAgICAgICAgcmV0dXJuOwogICAgIH0KKyAg
ICAKICAgICBpZiAoIXN0YXRlKCkubV9pbnZlcnRpYmxlQ1RNKQogICAgICAgICByZXR1cm47Ci0g
ICAgbV9wYXRoLmFkZEFyY1RvKEZsb2F0UG9pbnQoeDAsIHkwKSwgRmxvYXRQb2ludCh4MSwgeTEp
LCByKTsKKyAgICAKKyAgICBGbG9hdFBvaW50IHAxID0gRmxvYXRQb2ludCh4MSwgeTEpOworICAg
IEZsb2F0UG9pbnQgcDIgPSBGbG9hdFBvaW50KHgyLCB5Mik7CisgICAgCisgICAgaWYgKHAxID09
IG1fcGF0aC5jdXJyZW50UG9pbnQoKSB8fCBwMSA9PSBwMiB8fCAhcikKKyAgICAgICAgbGluZVRv
KHgxLCB5MSk7CisgICAgZWxzZQorICAgICAgICBtX3BhdGguYWRkQXJjVG8ocDEsIHAyLCByKTsK
IH0KIAogdm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmFyYyhmbG9hdCB4LCBmbG9hdCB5
LCBmbG9hdCByLCBmbG9hdCBzYSwgZmxvYXQgZWEsIGJvb2wgYW50aWNsb2Nrd2lzZSwgRXhjZXB0
aW9uQ29kZSYgZWMpCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BhdGguaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BhdGguaAkocmV2aXNpb24gNjM1
NTQpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BhdGguaAkod29ya2luZyBjb3B5KQpA
QCAtMTI0LDYgKzEyNCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgLy8gR2V0cyB0
aGUgY3VycmVudCBwb2ludCBvZiB0aGUgY3VycmVudCBwYXRoLCB3aGljaCBpcyBjb25jZXB0dWFs
bHkgdGhlIGZpbmFsIHBvaW50IHJlYWNoZWQgYnkgdGhlIHBhdGggc28gZmFyLgogICAgICAgICAv
LyBOb3RlIHRoZSBQYXRoIGNhbiBiZSBlbXB0eSAoaXNFbXB0eSgpID09IHRydWUpIGFuZCBzdGls
bCBoYXZlIGEgY3VycmVudCBwb2ludC4KICAgICAgICAgYm9vbCBoYXNDdXJyZW50UG9pbnQoKSBj
b25zdDsKKyAgICAgICAgRmxvYXRQb2ludCBjdXJyZW50UG9pbnQoKSBjb25zdDsKIAogICAgICAg
ICB2b2lkIG1vdmVUbyhjb25zdCBGbG9hdFBvaW50Jik7CiAgICAgICAgIHZvaWQgYWRkTGluZVRv
KGNvbnN0IEZsb2F0UG9pbnQmKTsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fp
cm8vUGF0aENhaXJvLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NhaXJvL1BhdGhDYWlyby5jcHAJKHJldmlzaW9uIDYzNTU0KQorKysgV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jYWlyby9QYXRoQ2Fpcm8uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04Niw2ICs4
NiwxNSBAQCBib29sIFBhdGg6Omhhc0N1cnJlbnRQb2ludCgpIGNvbnN0CiAgICAgcmV0dXJuICFp
c0VtcHR5KCk7CiB9CiAKK0Zsb2F0UG9pbnQgUGF0aDo6Y3VycmVudFBvaW50KCkgY29uc3QgCit7
CisgICAgLy8gRklYTUU6IElzIHRoaXMgdGhlIGNvcnJlY3Qgd2F5PworICAgIGRvdWJsZSB4Owor
ICAgIGRvdWJsZSB5OworICAgIGNhaXJvX2dldF9jdXJyZW50X3BvaW50KHBsYXRmb3JtUGF0aCgp
LT5tX2NyLCB4LCB5KQorICAgIHJldHVybiBGbG9hdFBvaW50KHgsIHkpOworfQorCiB2b2lkIFBh
dGg6OnRyYW5zbGF0ZShjb25zdCBGbG9hdFNpemUmIHApCiB7CiAgICAgY2Fpcm9fdCogY3IgPSBw
bGF0Zm9ybVBhdGgoKS0+bV9jcjsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cv
UGF0aENHLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL1Bh
dGhDRy5jcHAJKHJldmlzaW9uIDYzNTU0KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
Zy9QYXRoQ0cuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNDksNiArMjQ5LDExIEBAIGJvb2wgUGF0
aDo6aGFzQ3VycmVudFBvaW50KCkgY29uc3QKIHsKICAgICByZXR1cm4gIWlzRW1wdHkoKTsKIH0K
KyAgICAKK0Zsb2F0UG9pbnQgUGF0aDo6Y3VycmVudFBvaW50KCkgY29uc3QgCit7CisgICAgcmV0
dXJuIENHUGF0aEdldEN1cnJlbnRQb2ludChtX3BhdGgpOworfQogCiBzdGF0aWMgdm9pZCBDR1Bh
dGhUb0NGU3RyaW5nQXBwbGllckZ1bmN0aW9uKHZvaWQqIGluZm8sIGNvbnN0IENHUGF0aEVsZW1l
bnQgKmVsZW1lbnQpCiB7CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2hhaWt1L1Bh
dGhIYWlrdS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9oYWlr
dS9QYXRoSGFpa3UuY3BwCShyZXZpc2lvbiA2MzU1NCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvaGFpa3UvUGF0aEhhaWt1LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjUsNiArNjUsMTQg
QEAgYm9vbCBQYXRoOjpoYXNDdXJyZW50UG9pbnQoKSBjb25zdAogICAgIHJldHVybiAhaXNFbXB0
eSgpOwogfQogCitGbG9hdFBvaW50IFBhdGg6OmN1cnJlbnRQb2ludCgpIGNvbnN0IAoreworICAg
IC8vIEZJWE1FOiBpbXBsZW1lbnQgc2FmZSB3YXkgdG8gcmV0dXJuIGN1cnJlbnQgcG9pbnQgb2Yg
c3VicGF0aC4KKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIGZsb2F0IHF1aWV0TmFOID0gc3Rk
OjpudW1lcmljX2xpbWl0czxmbG9hdD46OnF1aWV0X05hTigpOworICAgIHJldHVybiBGbG9hdFBv
aW50KHF1aWV0TmFOLCBxdWlldE5hTik7Cit9CisKIGJvb2wgUGF0aDo6Y29udGFpbnMoY29uc3Qg
RmxvYXRQb2ludCYgcG9pbnQsIFdpbmRSdWxlIHJ1bGUpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1f
cGF0aC0+Q29udGFpbnMocG9pbnQpOwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9v
cGVudmcvUGF0aE9wZW5WRy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9vcGVudmcvUGF0aE9wZW5WRy5jcHAJKHJldmlzaW9uIDYzNTU0KQorKysgV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9vcGVudmcvUGF0aE9wZW5WRy5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTEyMyw2ICsxMjMsMTMgQEAgUGF0aCYgUGF0aDo6b3BlcmF0b3I9KGNvbnN0IFBhdGgmIG90aGVy
KQogICAgIHJldHVybiAqdGhpczsKIH0KIAorRmxvYXRQb2ludCBQYXRoOjpjdXJyZW50UG9pbnQo
KSBjb25zdCAKK3sKKyAgICAvLyBGSVhNRTogaXMgdGhpcyB0aGUgd2F5IHRvIHJldHVybiB0aGUg
Y3VycmVudCBwb2ludCBvZiB0aGUgc3VicGF0aD8KKyAgICByZXR1cm4gbV9jdXJyZW50UG9pbnQ7
Cit9CisKKwogYm9vbCBQYXRoOjpjb250YWlucyhjb25zdCBGbG9hdFBvaW50JiBwb2ludCwgV2lu
ZFJ1bGUgcnVsZSkgY29uc3QKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwpJbmRleDogV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9QYXRoUXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvcXQvUGF0aFF0LmNwcAkocmV2aXNpb24gNjM1NTQpCisrKyBXZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L1BhdGhRdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM2
Miw2ICszNjIsMTEgQEAgYm9vbCBQYXRoOjpoYXNDdXJyZW50UG9pbnQoKSBjb25zdAogICAgIHJl
dHVybiAhaXNFbXB0eSgpOwogfQogCitGbG9hdFBvaW50IFBhdGg6OmN1cnJlbnRQb2ludCgpIGNv
bnN0IAoreworICAgIHJldHVybiBtX3BhdGguY3VycmVudFBvc2l0aW9uKCk7Cit9CisKIFN0cmlu
ZyBQYXRoOjpkZWJ1Z1N0cmluZygpIGNvbnN0CiB7CiAgICAgUVN0cmluZyByZXQ7CkluZGV4OiBX
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvUGF0aFNraWEuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9QYXRoU2tpYS5jcHAJKHJldmlzaW9uIDYz
NTU0KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL1BhdGhTa2lhLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNzQsNiArNzQsMTMgQEAgYm9vbCBQYXRoOjpoYXNDdXJyZW50UG9pbnQo
KSBjb25zdAogICAgIHJldHVybiBtX3BhdGgtPmdldFBvaW50cyhOVUxMLCAwKSAhPSAwOwogfQog
CitGbG9hdFBvaW50IFBhdGg6OmN1cnJlbnRQb2ludCgpIGNvbnN0IAoreworICAgIC8vIEZJWE1F
OiByZXR1cm4gY3VycmVudCBwb2ludCBvZiBzdWJwYXRoLgorICAgIGZsb2F0IHF1aWV0TmFOID0g
c3RkOjpudW1lcmljX2xpbWl0czxmbG9hdD46OnF1aWV0X05hTigpOworICAgIHJldHVybiBGbG9h
dFBvaW50KHF1aWV0TmFOLCBxdWlldE5hTik7Cit9CisKIGJvb2wgUGF0aDo6Y29udGFpbnMoY29u
c3QgRmxvYXRQb2ludCYgcG9pbnQsIFdpbmRSdWxlIHJ1bGUpIGNvbnN0CiB7CiAgICAgcmV0dXJu
IFNrUGF0aENvbnRhaW5zUG9pbnQobV9wYXRoLCBwb2ludCwKSW5kZXg6IFdlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvd2luY2UvUGF0aFdpbmNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3dpbmNlL1BhdGhXaW5jZS5jcHAJKHJldmlzaW9uIDYzNTU0KQorKysg
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW5jZS9QYXRoV2luY2UuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xNjAsNCArMTYwLDExIEBAIGJvb2wgUGF0aDo6aGFzQ3VycmVudFBvaW50KCkgY29u
c3QKICAgICByZXR1cm4gIWlzRW1wdHkoKTsKIH0KIAorRmxvYXRQb2ludCBQYXRoOjpjdXJyZW50
UG9pbnQoKSBjb25zdCAKK3sKKyAgICAvLyBGSVhNRTogcmV0dXJuIGN1cnJlbnQgcG9pbnQgb2Yg
c3VicGF0aC4KKyAgICBmbG9hdCBxdWlldE5hTiA9IHN0ZDo6bnVtZXJpY19saW1pdHM8ZmxvYXQ+
OjpxdWlldF9OYU4oKTsKKyAgICByZXR1cm4gRmxvYXRQb2ludChxdWlldE5hTiwgcXVpZXROYU4p
OworfQorCiB9CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3d4L1BhdGhXeC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93eC9QYXRoV3guY3BwCShy
ZXZpc2lvbiA2MzU1NCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd3gvUGF0aFd4LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMjQ1LDQgKzI0NSwxMSBAQCBib29sIFBhdGg6Omhhc0N1cnJl
bnRQb2ludCgpIGNvbnN0CiAgICAgcmV0dXJuICFpc0VtcHR5KCk7CiB9CiAKK0Zsb2F0UG9pbnQg
UGF0aDo6Y3VycmVudFBvaW50KCkgY29uc3QgCit7CisgICAgLy8gRklYTUU6IHJldHVybiBjdXJy
ZW50IHBvaW50IG9mIHN1YnBhdGguCisgICAgZmxvYXQgcXVpZXROYU4gPSBzdGQ6Om51bWVyaWNf
bGltaXRzPGZsb2F0Pjo6cXVpZXRfTmFOKCk7CisgICAgcmV0dXJuIEZsb2F0UG9pbnQocXVpZXRO
YU4sIHF1aWV0TmFOKTsKK30KKwogfQpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gNjM1NTQpCisrKyBMYXlv
dXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxMiBAQAorMjAxMC0w
Ny0xNCAgTWF0dGhldyBEZWxhbmV5ICA8bWRlbGFuZXlAYXBwbGUuY29tPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZhaWxpbmcgMmQucGF0aC5zdHJv
a2UucHJ1bmUuYXJjIHBoaWxpcCBjYW52YXMgdGVzdAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDIxODgKKworICAgICAgICAqIHBsYXRmb3JtL21hYy9T
a2lwcGVkOiBVbnNraXBwZWQgbm93IHBhc3NpbmcgdGVzdHMuCisKIDIwMTAtMDctMTYgIFl1cnkg
U2VtaWtoYXRza3kgIDx5dXJ5c0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
UGF2ZWwgRmVsZG1hbi4KSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVkCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVkCShyZXZpc2lvbiA2
MzU1NCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVkCSh3b3JraW5nIGNvcHkp
CkBAIC0yMTMsMTAgKzIxMyw4IEBAIGNhbnZhcy9waGlsaXAvdGVzdHMvMmQubWlzc2luZ2FyZ3Mu
aHRtbAogY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5wYXRoLmFyY1RvLmVuc3VyZXN1YnBhdGguMi5o
dG1sCiBjYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnBhdGguY2xpcC5lbXB0eS5odG1sCiBjYW52YXMv
cGhpbGlwL3Rlc3RzLzJkLnBhdGgucmVjdC53aW5kaW5nLmh0bWwKLWNhbnZhcy9waGlsaXAvdGVz
dHMvMmQucGF0aC5zdHJva2UucHJ1bmUuYXJjLmh0bWwKIGNhbnZhcy9waGlsaXAvdGVzdHMvMmQu
cGF0aC5zdHJva2UucHJ1bmUuY2xvc2VkLmh0bWwKIGNhbnZhcy9waGlsaXAvdGVzdHMvMmQucGF0
aC5zdHJva2UucHJ1bmUuY3VydmUuaHRtbAotY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5wYXRoLnN0
cm9rZS5wcnVuZS5saW5lLmh0bWwKIGNhbnZhcy9waGlsaXAvdGVzdHMvMmQucGF0dGVybi5pbWFn
ZS5icm9rZW4uaHRtbAogY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5wYXR0ZXJuLmltYWdlLmluY29t
cGxldGUuaHRtbAogY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5wYXR0ZXJuLmltYWdlLm51bGwuaHRt
bAo=
</data>
<flag name="review"
          id="49933"
          type_id="1"
          status="+"
          setter="oliver"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>61847</attachid>
            <date>2010-07-16 14:21:55 -0700</date>
            <delta_ts>2010-07-16 17:08:49 -0700</delta_ts>
            <desc>Previous + Cairo fix</desc>
            <filename>bug-42188-20100716130125.patch</filename>
            <type>text/plain</type>
            <size>10436</size>
            <attacher name="Matthew Delaney">mdelaney7</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2MzU1NCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzIgQEAKKzIwMTAtMDctMTQgIE1hdHRoZXcgRGVsYW5leSAgPG1kZWxhbmV5QGFw
cGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBGYWlsaW5nIDJkLnBhdGguc3Ryb2tlLnBydW5lLmFyYyBwaGlsaXAgY2FudmFzIHRlc3QKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQyMTg4CisKKyAg
ICAgICAgKiBodG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwOiAKKyAgICAg
ICAgTm90ZSwgdXBkYXRlZCBwYXJhbWV0ZXIgbmFtZXMgdG8gbWF0Y2ggc3BlYy4KKyAgICAgICAg
KFdlYkNvcmU6OkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6bGluZVRvKTogUHVsbGVkIGJvdW5k
IGNoZWNraW5nIGNvZGUgb3V0IG9mIGxvd2VyIGNvZGUgdG8gaGF2ZSBjaGVja3MgZm9yIGFsbCBw
bGF0Zm9ybXMuCisgICAgICAgIChXZWJDb3JlOjpDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmFy
Y1RvKTogQm91bmQgY2hlY2tpbmcgcGVyIHRoZSBzcGVjIGZvciBhcmNUbyBwYXJhbWV0ZXJzLiBV
cGRhdGVkIHBhcmFtZXRlciBuYW1lcyB0byBtYXRjaCBzcGVjLgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL1BhdGguaDogQWRkZWQgaW4gbmV3IG1ldGhvZCB0byBleHBvc2UgdGhlIGN1cnJl
bnQgcG9zaXRpb24uCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vUGF0aENhaXJv
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhdGg6OmN1cnJlbnRQb2ludCk6IEFkZGVkIGluIGxp
a2VseSBjb3JyZWN0IGltcGxlbWVudGF0aW9uIGZvciB0aGlzIGNhbGwgd2l0aCBhIEZJWE1FIGp1
c3QgaW4gY2FzZS4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jZy9QYXRoQ0cuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UGF0aDo6Y3VycmVudFBvaW50KTogQWRkZWQgaW4gc3VwcG9ydCBm
b3IgdGhpcyBjYWxsLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2hhaWt1L1BhdGhIYWlr
dS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYXRoOjpjdXJyZW50UG9pbnQpOiBBZGRlZCBpbiBz
dHViIGZvciB0aGlzIGNhbGwuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbnZnL1Bh
dGhPcGVuVkcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGF0aDo6Y3VycmVudFBvaW50KTogQWRk
ZWQgaW4gbGlrZWx5IGltcGxlbWVudGF0aW9uIGZvciB0aGlzIGNhbGwgd2l0aCBhIEZJWE1FIGp1
c3QgaW4gY2FzZS4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9xdC9QYXRoUXQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UGF0aDo6Y3VycmVudFBvaW50KTogQWRkZWQgaW4gaW1wbGVtZW50
YXRpb24gZm9yIHRoaXMgY2FsbCBjb3VydGVzeSBvZiBBbmRyZWEgS2xpbmcuCisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9QYXRoU2tpYS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQ
YXRoOjpjdXJyZW50UG9pbnQpOiBBZGRlZCBpbiBzdHViIGZvciB0aGlzIGNhbGwuCisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2UvUGF0aFdpbmNlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlBhdGg6OmN1cnJlbnRQb2ludCk6IEFkZGVkIGluIHN0dWIgZm9yIHRoaXMgY2FsbC4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93eC9QYXRoV3guY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UGF0aDo6Y3VycmVudFBvaW50KTogQWRkZWQgaW4gc3R1YiBmb3IgdGhpcyBjYWxsLgorCiAy
MDEwLTA3LTE2ICBZdXJ5IFNlbWlraGF0c2t5ICA8eXVyeXNAY2hyb21pdW0ub3JnPgogCiAgICAg
ICAgIFVucmV2aWV3ZWQuIENocm9taXVtIGJ1aWxkIGZpeC4gQWRkIG1pc3NpbmcgaW5jbHVkZS4K
SW5kZXg6IFdlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQy
RC5jcHAJKHJldmlzaW9uIDYzNTU0KQorKysgV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5k
ZXJpbmdDb250ZXh0MkQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NzUsOSArNTc1LDExIEBAIHZv
aWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpsaW5lVG8oZmwKICAgICAgICAgcmV0dXJuOwog
ICAgIGlmICghc3RhdGUoKS5tX2ludmVydGlibGVDVE0pCiAgICAgICAgIHJldHVybjsKKyAgICAK
KyAgICBGbG9hdFBvaW50IHAxID0gRmxvYXRQb2ludCh4LCB5KTsKICAgICBpZiAoIW1fcGF0aC5o
YXNDdXJyZW50UG9pbnQoKSkKLSAgICAgICAgbV9wYXRoLm1vdmVUbyhGbG9hdFBvaW50KHgsIHkp
KTsKLSAgICBlbHNlCisgICAgICAgIG1fcGF0aC5tb3ZlVG8ocDEpOworICAgIGVsc2UgaWYgKHAx
ICE9IG1fcGF0aC5jdXJyZW50UG9pbnQoKSkKICAgICAgICAgbV9wYXRoLmFkZExpbmVUbyhGbG9h
dFBvaW50KHgsIHkpKTsKIH0KIApAQCAtNjAzLDE5ICs2MDUsMjcgQEAgdm9pZCBDYW52YXNSZW5k
ZXJpbmdDb250ZXh0MkQ6OmJlemllckN1cgogICAgIG1fcGF0aC5hZGRCZXppZXJDdXJ2ZVRvKEZs
b2F0UG9pbnQoY3AxeCwgY3AxeSksIEZsb2F0UG9pbnQoY3AyeCwgY3AyeSksIEZsb2F0UG9pbnQo
eCwgeSkpOwogfQogCi12b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6YXJjVG8oZmxvYXQg
eDAsIGZsb2F0IHkwLCBmbG9hdCB4MSwgZmxvYXQgeTEsIGZsb2F0IHIsIEV4Y2VwdGlvbkNvZGUm
IGVjKQordm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmFyY1RvKGZsb2F0IHgxLCBmbG9h
dCB5MSwgZmxvYXQgeDIsIGZsb2F0IHkyLCBmbG9hdCByLCBFeGNlcHRpb25Db2RlJiBlYykKIHsK
ICAgICBlYyA9IDA7Ci0gICAgaWYgKCFpc2Zpbml0ZSh4MCkgfCAhaXNmaW5pdGUoeTApIHwgIWlz
ZmluaXRlKHgxKSB8ICFpc2Zpbml0ZSh5MSkgfCAhaXNmaW5pdGUocikpCisgICAgaWYgKCFpc2Zp
bml0ZSh4MSkgfCAhaXNmaW5pdGUoeTEpIHwgIWlzZmluaXRlKHgyKSB8ICFpc2Zpbml0ZSh5Mikg
fCAhaXNmaW5pdGUocikpCiAgICAgICAgIHJldHVybjsKICAgICAKICAgICBpZiAociA8IDApIHsK
ICAgICAgICAgZWMgPSBJTkRFWF9TSVpFX0VSUjsKICAgICAgICAgcmV0dXJuOwogICAgIH0KKyAg
ICAKICAgICBpZiAoIXN0YXRlKCkubV9pbnZlcnRpYmxlQ1RNKQogICAgICAgICByZXR1cm47Ci0g
ICAgbV9wYXRoLmFkZEFyY1RvKEZsb2F0UG9pbnQoeDAsIHkwKSwgRmxvYXRQb2ludCh4MSwgeTEp
LCByKTsKKyAgICAKKyAgICBGbG9hdFBvaW50IHAxID0gRmxvYXRQb2ludCh4MSwgeTEpOworICAg
IEZsb2F0UG9pbnQgcDIgPSBGbG9hdFBvaW50KHgyLCB5Mik7CisgICAgCisgICAgaWYgKHAxID09
IG1fcGF0aC5jdXJyZW50UG9pbnQoKSB8fCBwMSA9PSBwMiB8fCAhcikKKyAgICAgICAgbGluZVRv
KHgxLCB5MSk7CisgICAgZWxzZQorICAgICAgICBtX3BhdGguYWRkQXJjVG8ocDEsIHAyLCByKTsK
IH0KIAogdm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmFyYyhmbG9hdCB4LCBmbG9hdCB5
LCBmbG9hdCByLCBmbG9hdCBzYSwgZmxvYXQgZWEsIGJvb2wgYW50aWNsb2Nrd2lzZSwgRXhjZXB0
aW9uQ29kZSYgZWMpCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BhdGguaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BhdGguaAkocmV2aXNpb24gNjM1
NTQpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BhdGguaAkod29ya2luZyBjb3B5KQpA
QCAtMTI0LDYgKzEyNCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgLy8gR2V0cyB0
aGUgY3VycmVudCBwb2ludCBvZiB0aGUgY3VycmVudCBwYXRoLCB3aGljaCBpcyBjb25jZXB0dWFs
bHkgdGhlIGZpbmFsIHBvaW50IHJlYWNoZWQgYnkgdGhlIHBhdGggc28gZmFyLgogICAgICAgICAv
LyBOb3RlIHRoZSBQYXRoIGNhbiBiZSBlbXB0eSAoaXNFbXB0eSgpID09IHRydWUpIGFuZCBzdGls
bCBoYXZlIGEgY3VycmVudCBwb2ludC4KICAgICAgICAgYm9vbCBoYXNDdXJyZW50UG9pbnQoKSBj
b25zdDsKKyAgICAgICAgRmxvYXRQb2ludCBjdXJyZW50UG9pbnQoKSBjb25zdDsKIAogICAgICAg
ICB2b2lkIG1vdmVUbyhjb25zdCBGbG9hdFBvaW50Jik7CiAgICAgICAgIHZvaWQgYWRkTGluZVRv
KGNvbnN0IEZsb2F0UG9pbnQmKTsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fp
cm8vUGF0aENhaXJvLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NhaXJvL1BhdGhDYWlyby5jcHAJKHJldmlzaW9uIDYzNTU0KQorKysgV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jYWlyby9QYXRoQ2Fpcm8uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04Niw2ICs4
NiwxNSBAQCBib29sIFBhdGg6Omhhc0N1cnJlbnRQb2ludCgpIGNvbnN0CiAgICAgcmV0dXJuICFp
c0VtcHR5KCk7CiB9CiAKK0Zsb2F0UG9pbnQgUGF0aDo6Y3VycmVudFBvaW50KCkgY29uc3QgCit7
CisgICAgLy8gRklYTUU6IElzIHRoaXMgdGhlIGNvcnJlY3Qgd2F5PworICAgIGRvdWJsZSB4Owor
ICAgIGRvdWJsZSB5OworICAgIGNhaXJvX2dldF9jdXJyZW50X3BvaW50KHBsYXRmb3JtUGF0aCgp
LT5tX2NyLCAmeCwgJnkpOworICAgIHJldHVybiBGbG9hdFBvaW50KHgsIHkpOworfQorCiB2b2lk
IFBhdGg6OnRyYW5zbGF0ZShjb25zdCBGbG9hdFNpemUmIHApCiB7CiAgICAgY2Fpcm9fdCogY3Ig
PSBwbGF0Zm9ybVBhdGgoKS0+bV9jcjsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2cvUGF0aENHLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nn
L1BhdGhDRy5jcHAJKHJldmlzaW9uIDYzNTU0KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jZy9QYXRoQ0cuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNDksNiArMjQ5LDExIEBAIGJvb2wg
UGF0aDo6aGFzQ3VycmVudFBvaW50KCkgY29uc3QKIHsKICAgICByZXR1cm4gIWlzRW1wdHkoKTsK
IH0KKyAgICAKK0Zsb2F0UG9pbnQgUGF0aDo6Y3VycmVudFBvaW50KCkgY29uc3QgCit7CisgICAg
cmV0dXJuIENHUGF0aEdldEN1cnJlbnRQb2ludChtX3BhdGgpOworfQogCiBzdGF0aWMgdm9pZCBD
R1BhdGhUb0NGU3RyaW5nQXBwbGllckZ1bmN0aW9uKHZvaWQqIGluZm8sIGNvbnN0IENHUGF0aEVs
ZW1lbnQgKmVsZW1lbnQpCiB7CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2hhaWt1
L1BhdGhIYWlrdS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9o
YWlrdS9QYXRoSGFpa3UuY3BwCShyZXZpc2lvbiA2MzU1NCkKKysrIFdlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvaGFpa3UvUGF0aEhhaWt1LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjUsNiArNjUs
MTQgQEAgYm9vbCBQYXRoOjpoYXNDdXJyZW50UG9pbnQoKSBjb25zdAogICAgIHJldHVybiAhaXNF
bXB0eSgpOwogfQogCitGbG9hdFBvaW50IFBhdGg6OmN1cnJlbnRQb2ludCgpIGNvbnN0IAorewor
ICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQgc2FmZSB3YXkgdG8gcmV0dXJuIGN1cnJlbnQgcG9pbnQg
b2Ygc3VicGF0aC4KKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIGZsb2F0IHF1aWV0TmFOID0g
c3RkOjpudW1lcmljX2xpbWl0czxmbG9hdD46OnF1aWV0X05hTigpOworICAgIHJldHVybiBGbG9h
dFBvaW50KHF1aWV0TmFOLCBxdWlldE5hTik7Cit9CisKIGJvb2wgUGF0aDo6Y29udGFpbnMoY29u
c3QgRmxvYXRQb2ludCYgcG9pbnQsIFdpbmRSdWxlIHJ1bGUpIGNvbnN0CiB7CiAgICAgcmV0dXJu
IG1fcGF0aC0+Q29udGFpbnMocG9pbnQpOwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9vcGVudmcvUGF0aE9wZW5WRy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9vcGVudmcvUGF0aE9wZW5WRy5jcHAJKHJldmlzaW9uIDYzNTU0KQorKysgV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVudmcvUGF0aE9wZW5WRy5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTEyMyw2ICsxMjMsMTMgQEAgUGF0aCYgUGF0aDo6b3BlcmF0b3I9KGNvbnN0IFBhdGgmIG90
aGVyKQogICAgIHJldHVybiAqdGhpczsKIH0KIAorRmxvYXRQb2ludCBQYXRoOjpjdXJyZW50UG9p
bnQoKSBjb25zdCAKK3sKKyAgICAvLyBGSVhNRTogaXMgdGhpcyB0aGUgd2F5IHRvIHJldHVybiB0
aGUgY3VycmVudCBwb2ludCBvZiB0aGUgc3VicGF0aD8KKyAgICByZXR1cm4gbV9jdXJyZW50UG9p
bnQ7Cit9CisKKwogYm9vbCBQYXRoOjpjb250YWlucyhjb25zdCBGbG9hdFBvaW50JiBwb2ludCwg
V2luZFJ1bGUgcnVsZSkgY29uc3QKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwpJbmRleDogV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9QYXRoUXQuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvUGF0aFF0LmNwcAkocmV2aXNpb24gNjM1NTQpCisrKyBX
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L1BhdGhRdC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTM2Miw2ICszNjIsMTEgQEAgYm9vbCBQYXRoOjpoYXNDdXJyZW50UG9pbnQoKSBjb25zdAogICAg
IHJldHVybiAhaXNFbXB0eSgpOwogfQogCitGbG9hdFBvaW50IFBhdGg6OmN1cnJlbnRQb2ludCgp
IGNvbnN0IAoreworICAgIHJldHVybiBtX3BhdGguY3VycmVudFBvc2l0aW9uKCk7Cit9CisKIFN0
cmluZyBQYXRoOjpkZWJ1Z1N0cmluZygpIGNvbnN0CiB7CiAgICAgUVN0cmluZyByZXQ7CkluZGV4
OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvUGF0aFNraWEuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9QYXRoU2tpYS5jcHAJKHJldmlzaW9u
IDYzNTU0KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL1BhdGhTa2lhLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNzQsNiArNzQsMTMgQEAgYm9vbCBQYXRoOjpoYXNDdXJyZW50UG9p
bnQoKSBjb25zdAogICAgIHJldHVybiBtX3BhdGgtPmdldFBvaW50cyhOVUxMLCAwKSAhPSAwOwog
fQogCitGbG9hdFBvaW50IFBhdGg6OmN1cnJlbnRQb2ludCgpIGNvbnN0IAoreworICAgIC8vIEZJ
WE1FOiByZXR1cm4gY3VycmVudCBwb2ludCBvZiBzdWJwYXRoLgorICAgIGZsb2F0IHF1aWV0TmFO
ID0gc3RkOjpudW1lcmljX2xpbWl0czxmbG9hdD46OnF1aWV0X05hTigpOworICAgIHJldHVybiBG
bG9hdFBvaW50KHF1aWV0TmFOLCBxdWlldE5hTik7Cit9CisKIGJvb2wgUGF0aDo6Y29udGFpbnMo
Y29uc3QgRmxvYXRQb2ludCYgcG9pbnQsIFdpbmRSdWxlIHJ1bGUpIGNvbnN0CiB7CiAgICAgcmV0
dXJuIFNrUGF0aENvbnRhaW5zUG9pbnQobV9wYXRoLCBwb2ludCwKSW5kZXg6IFdlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvd2luY2UvUGF0aFdpbmNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3dpbmNlL1BhdGhXaW5jZS5jcHAJKHJldmlzaW9uIDYzNTU0KQor
KysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW5jZS9QYXRoV2luY2UuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0xNjAsNCArMTYwLDExIEBAIGJvb2wgUGF0aDo6aGFzQ3VycmVudFBvaW50KCkg
Y29uc3QKICAgICByZXR1cm4gIWlzRW1wdHkoKTsKIH0KIAorRmxvYXRQb2ludCBQYXRoOjpjdXJy
ZW50UG9pbnQoKSBjb25zdCAKK3sKKyAgICAvLyBGSVhNRTogcmV0dXJuIGN1cnJlbnQgcG9pbnQg
b2Ygc3VicGF0aC4KKyAgICBmbG9hdCBxdWlldE5hTiA9IHN0ZDo6bnVtZXJpY19saW1pdHM8Zmxv
YXQ+OjpxdWlldF9OYU4oKTsKKyAgICByZXR1cm4gRmxvYXRQb2ludChxdWlldE5hTiwgcXVpZXRO
YU4pOworfQorCiB9CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3d4L1BhdGhXeC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93eC9QYXRoV3guY3Bw
CShyZXZpc2lvbiA2MzU1NCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd3gvUGF0aFd4
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjQ1LDQgKzI0NSwxMSBAQCBib29sIFBhdGg6Omhhc0N1
cnJlbnRQb2ludCgpIGNvbnN0CiAgICAgcmV0dXJuICFpc0VtcHR5KCk7CiB9CiAKK0Zsb2F0UG9p
bnQgUGF0aDo6Y3VycmVudFBvaW50KCkgY29uc3QgCit7CisgICAgLy8gRklYTUU6IHJldHVybiBj
dXJyZW50IHBvaW50IG9mIHN1YnBhdGguCisgICAgZmxvYXQgcXVpZXROYU4gPSBzdGQ6Om51bWVy
aWNfbGltaXRzPGZsb2F0Pjo6cXVpZXRfTmFOKCk7CisgICAgcmV0dXJuIEZsb2F0UG9pbnQocXVp
ZXROYU4sIHF1aWV0TmFOKTsKK30KKwogfQpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gNjM1NTQpCisrKyBM
YXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxMiBAQAorMjAx
MC0wNy0xNCAgTWF0dGhldyBEZWxhbmV5ICA8bWRlbGFuZXlAYXBwbGUuY29tPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZhaWxpbmcgMmQucGF0aC5z
dHJva2UucHJ1bmUuYXJjIHBoaWxpcCBjYW52YXMgdGVzdAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDIxODgKKworICAgICAgICAqIHBsYXRmb3JtL21h
Yy9Ta2lwcGVkOiBVbnNraXBwZWQgbm93IHBhc3NpbmcgdGVzdHMuCisKIDIwMTAtMDctMTYgIFl1
cnkgU2VtaWtoYXRza3kgIDx5dXJ5c0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgUGF2ZWwgRmVsZG1hbi4KSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVk
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVkCShyZXZpc2lv
biA2MzU1NCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVkCSh3b3JraW5nIGNv
cHkpCkBAIC0yMTMsMTAgKzIxMyw4IEBAIGNhbnZhcy9waGlsaXAvdGVzdHMvMmQubWlzc2luZ2Fy
Z3MuaHRtbAogY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5wYXRoLmFyY1RvLmVuc3VyZXN1YnBhdGgu
Mi5odG1sCiBjYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnBhdGguY2xpcC5lbXB0eS5odG1sCiBjYW52
YXMvcGhpbGlwL3Rlc3RzLzJkLnBhdGgucmVjdC53aW5kaW5nLmh0bWwKLWNhbnZhcy9waGlsaXAv
dGVzdHMvMmQucGF0aC5zdHJva2UucHJ1bmUuYXJjLmh0bWwKIGNhbnZhcy9waGlsaXAvdGVzdHMv
MmQucGF0aC5zdHJva2UucHJ1bmUuY2xvc2VkLmh0bWwKIGNhbnZhcy9waGlsaXAvdGVzdHMvMmQu
cGF0aC5zdHJva2UucHJ1bmUuY3VydmUuaHRtbAotY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5wYXRo
LnN0cm9rZS5wcnVuZS5saW5lLmh0bWwKIGNhbnZhcy9waGlsaXAvdGVzdHMvMmQucGF0dGVybi5p
bWFnZS5icm9rZW4uaHRtbAogY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5wYXR0ZXJuLmltYWdlLmlu
Y29tcGxldGUuaHRtbAogY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5wYXR0ZXJuLmltYWdlLm51bGwu
aHRtbAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>