<?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>39149</bug_id>
          
          <creation_ts>2010-05-14 22:53:13 -0700</creation_ts>
          <short_desc>Canvas element cannot have negative width or height</short_desc>
          <delta_ts>2010-07-01 14:44: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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Andreas Kling">kling</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>eric</cc>
    
    <cc>kenneth</cc>
    
    <cc>mdelaney7</cc>
    
    <cc>oliver</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>226143</commentid>
    <comment_count>0</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2010-05-14 22:53:13 -0700</bug_when>
    <thetext>In those cases, it should default to 300 for width and 150 for height. (HTML5 spec 4.8.11)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>226144</commentid>
    <comment_count>1</comment_count>
      <attachid>56140</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2010-05-14 22:55:32 -0700</bug_when>
    <thetext>Created attachment 56140
Proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>226298</commentid>
    <comment_count>2</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-05-15 12:11:52 -0700</bug_when>
    <thetext>(In reply to comment #0)
&gt; In those cases, it should default to 300 for width and 150 for height. (HTML5 spec 4.8.11)

link? It is useful with a link as the spec is work in progress and there are thus multiple versions (Editor Draft, etc)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>226416</commentid>
    <comment_count>3</comment_count>
      <attachid>56176</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2010-05-15 22:47:11 -0700</bug_when>
    <thetext>Created attachment 56176
Proposed patch v2

Updated patch with spec link in ChangeLogs:
http://www.whatwg.org/specs/web-apps/current-work/#attr-canvas-width</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>226433</commentid>
    <comment_count>4</comment_count>
      <attachid>56176</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-05-16 00:39:34 -0700</bug_when>
    <thetext>Comment on attachment 56176
Proposed patch v2

WebCore/html/HTMLCanvasElement.cpp:116
 +          setAttribute(heightAttr, String::number(DefaultHeight));
I would have probably used a ternary here.  Something like:
int height = (value &gt;= 0) ? value : DefaultHeight);

Otherwise the code and test look great.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>226556</commentid>
    <comment_count>5</comment_count>
      <attachid>56199</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2010-05-16 15:34:29 -0700</bug_when>
    <thetext>Created attachment 56199
Proposed patch v3

Updated patch, thanks Eric.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>226594</commentid>
    <comment_count>6</comment_count>
      <attachid>56199</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-05-16 19:52:57 -0700</bug_when>
    <thetext>Comment on attachment 56199
Proposed patch v3

I think this patch is not entirely correct or at least not complete.

The code in HTMLCanvasElement::reset seems fine, but the changes to HTMLCanvasSetElement::setHeight and setWidth are either wrong or incomplete.

&gt;  void HTMLCanvasElement::setHeight(int value)
&gt;  {
&gt; -    setAttribute(heightAttr, String::number(value));
&gt; +    int height = (value &gt;= 0) ? value : DefaultHeight;
&gt; +    setAttribute(heightAttr, String::number(height));
&gt;  }

In other similar call sites, I&apos;ve seen behavior where attempting to set to an illegal value leaves the attribute alone rather than setting it to a default value.

To test this we&apos;d want to set the height attribute of a canvas to something other than the default and see what an attempt to change it to a negative number does in that case.

It also seems strange and probably wrong that this would add a height attribute of &quot;150&quot; to a canvas element that previously had no height attribute of all.

I&apos;d also like to know what happens if we attempt to set the height attribute to a non-numeric string. Both by assigning that value to height and using the setAttribute function. Also, what happens if we set a canvas&apos;s height attribute to a negative number using the setAttribute function.

I&apos;d also like to see test cases where we set height to NaN and infinity to see how those cases should be handled. And hear what canvas implementations in other browser engines do in all those cases.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>226600</commentid>
    <comment_count>7</comment_count>
      <attachid>56199</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2010-05-16 20:19:07 -0700</bug_when>
    <thetext>Comment on attachment 56199
Proposed patch v3

Removing from commit-queue due to Darin&apos;s comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>226736</commentid>
    <comment_count>8</comment_count>
      <attachid>56199</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-05-17 05:45:46 -0700</bug_when>
    <thetext>Comment on attachment 56199
Proposed patch v3

Good comments, setting r- to removed from pending patches.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>233156</commentid>
    <comment_count>9</comment_count>
      <attachid>56176</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-06-02 02:26:21 -0700</bug_when>
    <thetext>Comment on attachment 56176
Proposed patch v2

Cleared Eric Seidel&apos;s review+ from obsolete attachment 56176 so that this bug does not appear in http://webkit.org/pending-commit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>234182</commentid>
    <comment_count>10</comment_count>
      <attachid>57867</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2010-06-04 06:08:32 -0700</bug_when>
    <thetext>Created attachment 57867
Proposed patch v4

Updated patch with additional test coverage.
The spec isn&apos;t too explicit on how NaN/etc should be handled.
NaN/Infinity/null becomes 0 on Firefox and 300/150 (default value) on Opera.
Opera OTOH doesn&apos;t allow 0 width/height.
Personally, while I think mapping NaN/Infinity/null to the default values makes some sense,
it doesn&apos;t justify adding custom JS bindings to deal with these cases.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>245556</commentid>
    <comment_count>11</comment_count>
      <attachid>57867</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-07-01 14:44:43 -0700</bug_when>
    <thetext>Comment on attachment 57867
Proposed patch v4

Clearing flags on attachment: 57867

Committed r62299: &lt;http://trac.webkit.org/changeset/62299&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>245557</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-07-01 14:44:49 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>56140</attachid>
            <date>2010-05-14 22:55:32 -0700</date>
            <delta_ts>2010-05-15 22:47:11 -0700</delta_ts>
            <desc>Proposed patch</desc>
            <filename>bug-39149.diff</filename>
            <type>text/plain</type>
            <size>8403</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA2NTBjYTUyLi4wMmUxZTYwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTAtMDUt
MTQgIEFuZHJlYXMgS2xpbmcgIDxhbmRyZWFzLmtsaW5nQG5va2lhLmNvbT4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgdGVzdCBmb3IgY2hlY2tp
bmcgdGhhdCBjYW52YXMgZWxlbWVudHMgY2FuJ3QgaGF2ZSBhIG5lZ2F0aXZlIHdpZHRoIG9yIGhl
aWdodC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM5
MTQ5CisKKyAgICAgICAgKiBmYXN0L2NhbnZhcy9jYW52YXMtbmVnYXRpdmUtc2l6ZS1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY2FudmFzL2NhbnZhcy1uZWdhdGl2ZS1zaXpl
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY2FudmFzL3NjcmlwdC10ZXN0cy9jYW52YXMt
bmVnYXRpdmUtc2l6ZS5qczogQWRkZWQuCisgICAgICAgIChjcmVhdGVGcm9tTWFya3VwKToKKyAg
ICAgICAgKHRyeVNldHRpbmdXaWR0aCk6CisgICAgICAgICh0cnlTZXR0aW5nSGVpZ2h0KToKKyAg
ICAgICAgKHRyeVNldHRpbmdXaWR0aEF0dHJpYnV0ZSk6CisgICAgICAgICh0cnlTZXR0aW5nSGVp
Z2h0QXR0cmlidXRlKToKKyAgICAgICAgKHRyeUNyZWF0aW5nQ2FudmFzV2l0aFdpZHRoKToKKyAg
ICAgICAgKHRyeUNyZWF0aW5nQ2FudmFzV2l0aEhlaWdodCk6CisgICAgICAgICh0cnlXaWR0aCk6
CisgICAgICAgICh0cnlIZWlnaHQpOgorICAgICAgICAoY2hlY2tEZWZhdWx0V2lkdGgpOgorICAg
ICAgICAoY2hlY2tEZWZhdWx0SGVpZ2h0KToKKwogMjAxMC0wNS0xNCAgQWRhbSBCYXJ0aCAgPGFi
YXJ0aEB3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQuCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMtbmVnYXRpdmUtc2l6ZS1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMtbmVnYXRpdmUtc2l6ZS1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzdmMWMzOQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL2NhbnZhcy1uZWdhdGl2ZS1zaXplLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDQ3IEBACitUZXN0IHRoYXQgY2FudmFzIGVsZW1lbnRzIGNhbid0
IGhhdmUgbmVnYXRpdmUgaGVpZ2h0IGFuZC9vciB3aWR0aC4KKworT24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09N
UExFVEUiLgorCisKK1BBU1MgY2hlY2tEZWZhdWx0V2lkdGgoKSBpcyAzMDAKK1BBU1MgY2hlY2tE
ZWZhdWx0SGVpZ2h0KCkgaXMgMTUwCitQQVNTIHRyeVNldHRpbmdXaWR0aCgtMSkgaXMgMzAwCitQ
QVNTIHRyeVNldHRpbmdXaWR0aEF0dHJpYnV0ZSgtMSkgaXMgMzAwCitQQVNTIHRyeUNyZWF0aW5n
Q2FudmFzV2l0aFdpZHRoKC0xKSBpcyAzMDAKK1BBU1MgdHJ5U2V0dGluZ1dpZHRoKDApIGlzIDAK
K1BBU1MgdHJ5U2V0dGluZ1dpZHRoQXR0cmlidXRlKDApIGlzIDAKK1BBU1MgdHJ5Q3JlYXRpbmdD
YW52YXNXaXRoV2lkdGgoMCkgaXMgMAorUEFTUyB0cnlTZXR0aW5nV2lkdGgoMSkgaXMgMQorUEFT
UyB0cnlTZXR0aW5nV2lkdGhBdHRyaWJ1dGUoMSkgaXMgMQorUEFTUyB0cnlDcmVhdGluZ0NhbnZh
c1dpdGhXaWR0aCgxKSBpcyAxCitQQVNTIHRyeVNldHRpbmdXaWR0aCgnKzcnKSBpcyA3CitQQVNT
IHRyeVNldHRpbmdXaWR0aEF0dHJpYnV0ZSgnKzcnKSBpcyA3CitQQVNTIHRyeUNyZWF0aW5nQ2Fu
dmFzV2l0aFdpZHRoKCcrNycpIGlzIDcKK1BBU1MgdHJ5U2V0dGluZ1dpZHRoKCctNycpIGlzIDMw
MAorUEFTUyB0cnlTZXR0aW5nV2lkdGhBdHRyaWJ1dGUoJy03JykgaXMgMzAwCitQQVNTIHRyeUNy
ZWF0aW5nQ2FudmFzV2l0aFdpZHRoKCctNycpIGlzIDMwMAorUEFTUyB0cnlTZXR0aW5nV2lkdGgo
JzEyMycpIGlzIDEyMworUEFTUyB0cnlTZXR0aW5nV2lkdGhBdHRyaWJ1dGUoJzEyMycpIGlzIDEy
MworUEFTUyB0cnlDcmVhdGluZ0NhbnZhc1dpdGhXaWR0aCgnMTIzJykgaXMgMTIzCitQQVNTIHRy
eVNldHRpbmdIZWlnaHQoLTEpIGlzIDE1MAorUEFTUyB0cnlTZXR0aW5nSGVpZ2h0QXR0cmlidXRl
KC0xKSBpcyAxNTAKK1BBU1MgdHJ5Q3JlYXRpbmdDYW52YXNXaXRoSGVpZ2h0KC0xKSBpcyAxNTAK
K1BBU1MgdHJ5U2V0dGluZ0hlaWdodCgwKSBpcyAwCitQQVNTIHRyeVNldHRpbmdIZWlnaHRBdHRy
aWJ1dGUoMCkgaXMgMAorUEFTUyB0cnlDcmVhdGluZ0NhbnZhc1dpdGhIZWlnaHQoMCkgaXMgMAor
UEFTUyB0cnlTZXR0aW5nSGVpZ2h0KDEpIGlzIDEKK1BBU1MgdHJ5U2V0dGluZ0hlaWdodEF0dHJp
YnV0ZSgxKSBpcyAxCitQQVNTIHRyeUNyZWF0aW5nQ2FudmFzV2l0aEhlaWdodCgxKSBpcyAxCitQ
QVNTIHRyeVNldHRpbmdIZWlnaHQoJys3JykgaXMgNworUEFTUyB0cnlTZXR0aW5nSGVpZ2h0QXR0
cmlidXRlKCcrNycpIGlzIDcKK1BBU1MgdHJ5Q3JlYXRpbmdDYW52YXNXaXRoSGVpZ2h0KCcrNycp
IGlzIDcKK1BBU1MgdHJ5U2V0dGluZ0hlaWdodCgnLTcnKSBpcyAxNTAKK1BBU1MgdHJ5U2V0dGlu
Z0hlaWdodEF0dHJpYnV0ZSgnLTcnKSBpcyAxNTAKK1BBU1MgdHJ5Q3JlYXRpbmdDYW52YXNXaXRo
SGVpZ2h0KCctNycpIGlzIDE1MAorUEFTUyB0cnlTZXR0aW5nSGVpZ2h0KCcxMjMnKSBpcyAxMjMK
K1BBU1MgdHJ5U2V0dGluZ0hlaWdodEF0dHJpYnV0ZSgnMTIzJykgaXMgMTIzCitQQVNTIHRyeUNy
ZWF0aW5nQ2FudmFzV2l0aEhlaWdodCgnMTIzJykgaXMgMTIzCitQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9jYW52YXMvY2FudmFzLW5lZ2F0aXZlLXNpemUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qv
Y2FudmFzL2NhbnZhcy1uZWdhdGl2ZS1zaXplLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uNjIxNzk1MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
Y2FudmFzL2NhbnZhcy1uZWdhdGl2ZS1zaXplLmh0bWwKQEAgLTAsMCArMSwxMyBAQAorPCFET0NU
WVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4K
KzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5
bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwv
c2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYg
aWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9jYW52YXMtbmVn
YXRpdmUtc2l6ZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pz
LXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9zY3JpcHQtdGVzdHMvY2FudmFzLW5lZ2F0aXZlLXNpemUu
anMgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9zY3JpcHQtdGVzdHMvY2FudmFzLW5lZ2F0aXZl
LXNpemUuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWYzYmU4MwotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3NjcmlwdC10ZXN0cy9jYW52
YXMtbmVnYXRpdmUtc2l6ZS5qcwpAQCAtMCwwICsxLDg1IEBACitkZXNjcmlwdGlvbigiVGVzdCB0
aGF0IGNhbnZhcyBlbGVtZW50cyBjYW4ndCBoYXZlIG5lZ2F0aXZlIGhlaWdodCBhbmQvb3Igd2lk
dGguIik7CisKK2NhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpOworCit2
YXIgdGVzdGluZ0dyb3VuZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworZnVuY3Rp
b24gY3JlYXRlRnJvbU1hcmt1cChtYXJrdXApCit7CisgICAgdmFyIHJhbmdlID0gZG9jdW1lbnQu
Y3JlYXRlUmFuZ2UoKTsKKyAgICB2YXIgZnJhZ21lbnRDb250YWluZXIgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCJkaXYiKTsKKyAgICByYW5nZS5zZWxlY3ROb2RlQ29udGVudHMoZnJhZ21lbnRD
b250YWluZXIpOworICAgIHRlc3RpbmdHcm91bmQuYXBwZW5kQ2hpbGQoZnJhZ21lbnRDb250YWlu
ZXIpOworICAgIHZhciBmcmFnbWVudCA9IHJhbmdlLmNyZWF0ZUNvbnRleHR1YWxGcmFnbWVudCht
YXJrdXApOworICAgIGZyYWdtZW50Q29udGFpbmVyLmFwcGVuZENoaWxkKGZyYWdtZW50KTsKKyAg
ICByZXR1cm4gZnJhZ21lbnRDb250YWluZXIuZmlyc3RDaGlsZDsKK30KKworZnVuY3Rpb24gdHJ5
U2V0dGluZ1dpZHRoKHZhbHVlKSB7CisgICAgY2FudmFzLndpZHRoID0gNjsKKyAgICBjYW52YXMu
d2lkdGggPSB2YWx1ZTsKKyAgICByZXR1cm4gY2FudmFzLndpZHRoOworfQorCitmdW5jdGlvbiB0
cnlTZXR0aW5nSGVpZ2h0KHZhbHVlKSB7CisgICAgY2FudmFzLmhlaWdodCA9IDY7CisgICAgY2Fu
dmFzLmhlaWdodCA9IHZhbHVlOworICAgIHJldHVybiBjYW52YXMuaGVpZ2h0OworfQorCitmdW5j
dGlvbiB0cnlTZXR0aW5nV2lkdGhBdHRyaWJ1dGUodmFsdWUpIHsKKyAgICBjYW52YXMud2lkdGgg
PSA2OworICAgIGNhbnZhcy5zZXRBdHRyaWJ1dGUoJ3dpZHRoJywgdmFsdWUpOworICAgIHJldHVy
biBjYW52YXMud2lkdGg7Cit9CisKK2Z1bmN0aW9uIHRyeVNldHRpbmdIZWlnaHRBdHRyaWJ1dGUo
dmFsdWUpIHsKKyAgICBjYW52YXMuaGVpZ2h0ID0gNjsKKyAgICBjYW52YXMuc2V0QXR0cmlidXRl
KCdoZWlnaHQnLCB2YWx1ZSk7CisgICAgcmV0dXJuIGNhbnZhcy5oZWlnaHQ7Cit9CisKK2Z1bmN0
aW9uIHRyeUNyZWF0aW5nQ2FudmFzV2l0aFdpZHRoKHZhbHVlKSB7CisgICAgcmV0dXJuIGNyZWF0
ZUZyb21NYXJrdXAoIjxjYW52YXMgd2lkdGg9IiArIHZhbHVlICsgIj48L2NhbnZhcz4iKS53aWR0
aDsKK30KKworZnVuY3Rpb24gdHJ5Q3JlYXRpbmdDYW52YXNXaXRoSGVpZ2h0KHZhbHVlKSB7Cisg
ICAgcmV0dXJuIGNyZWF0ZUZyb21NYXJrdXAoIjxjYW52YXMgaGVpZ2h0PSciICsgdmFsdWUgKyAi
Jz48L2NhbnZhcz4iKS5oZWlnaHQ7Cit9CisKK2Z1bmN0aW9uIHRyeVdpZHRoKHZhbHVlLCBleHBl
Y3RlZCkgeworICAgIHNob3VsZEJlKCJ0cnlTZXR0aW5nV2lkdGgoIiArIHZhbHVlICsgIikiLCBl
eHBlY3RlZCk7CisgICAgc2hvdWxkQmUoInRyeVNldHRpbmdXaWR0aEF0dHJpYnV0ZSgiICsgdmFs
dWUgKyAiKSIsIGV4cGVjdGVkKTsKKyAgICBzaG91bGRCZSgidHJ5Q3JlYXRpbmdDYW52YXNXaXRo
V2lkdGgoIiArIHZhbHVlICsgIikiLCBleHBlY3RlZCk7Cit9CisKK2Z1bmN0aW9uIHRyeUhlaWdo
dCh2YWx1ZSwgZXhwZWN0ZWQpIHsKKyAgICBzaG91bGRCZSgidHJ5U2V0dGluZ0hlaWdodCgiICsg
dmFsdWUgKyAiKSIsIGV4cGVjdGVkKTsKKyAgICBzaG91bGRCZSgidHJ5U2V0dGluZ0hlaWdodEF0
dHJpYnV0ZSgiICsgdmFsdWUgKyAiKSIsIGV4cGVjdGVkKTsKKyAgICBzaG91bGRCZSgidHJ5Q3Jl
YXRpbmdDYW52YXNXaXRoSGVpZ2h0KCIgKyB2YWx1ZSArICIpIiwgZXhwZWN0ZWQpOworfQorCitm
dW5jdGlvbiBjaGVja0RlZmF1bHRXaWR0aCgpIHsKKyAgICByZXR1cm4gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgiY2FudmFzIikud2lkdGg7Cit9CisKK2Z1bmN0aW9uIGNoZWNrRGVmYXVsdEhlaWdo
dCgpIHsKKyAgICByZXR1cm4gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIikuaGVpZ2h0
OworfQorCitzaG91bGRCZSgiY2hlY2tEZWZhdWx0V2lkdGgoKSIsICIzMDAiKTsKK3Nob3VsZEJl
KCJjaGVja0RlZmF1bHRIZWlnaHQoKSIsICIxNTAiKTsKKwordHJ5V2lkdGgoIi0xIiwgIjMwMCIp
OwordHJ5V2lkdGgoIjAiLCAiMCIpOwordHJ5V2lkdGgoIjEiLCAiMSIpOwordHJ5V2lkdGgoIicr
NyciLCAiNyIpOwordHJ5V2lkdGgoIictNyciLCAiMzAwIik7Cit0cnlXaWR0aCgiJzEyMyciLCAi
MTIzIik7CisKK3RyeUhlaWdodCgiLTEiLCAiMTUwIik7Cit0cnlIZWlnaHQoIjAiLCAiMCIpOwor
dHJ5SGVpZ2h0KCIxIiwgIjEiKTsKK3RyeUhlaWdodCgiJys3JyIsICI3Iik7Cit0cnlIZWlnaHQo
IictNyciLCAiMTUwIik7Cit0cnlIZWlnaHQoIicxMjMnIiwgIjEyMyIpOwordmFyIHN1Y2Nlc3Nm
dWxseVBhcnNlZCA9IHRydWU7CmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNv
cmUvQ2hhbmdlTG9nCmluZGV4IDBmY2MyOWQuLjc1NjBhZDAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
Q2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTAt
MDUtMTQgIEFuZHJlYXMgS2xpbmcgIDxhbmRyZWFzLmtsaW5nQG5va2lhLmNvbT4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDYW52YXMgZWxlbWVudCBj
YW5ub3QgaGF2ZSBuZWdhdGl2ZSB3aWR0aCBvciBoZWlnaHQgKEhUTUw1IHNwZWMgNC44LjExKQor
ICAgICAgICBJZiBhc3NpZ25lZCBhIG5lZ2F0aXZlIHZhbHVlLCBpdCBzaG91bGQgZGVmYXVsdCB0
byAzMDAgZm9yIHdpZHRoIGFuZCAxNTAgZm9yIGhlaWdodC4KKworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzkxNDkKKworICAgICAgICBUZXN0OiBmYXN0
L2NhbnZhcy9jYW52YXMtbmVnYXRpdmUtc2l6ZS5odG1sCisKKyAgICAgICAgKiBodG1sL0hUTUxD
YW52YXNFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNFbGVtZW50Ojpz
ZXRIZWlnaHQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OnNldFdpZHRo
KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNFbGVtZW50OjpyZXNldCk6CisKIDIwMTAt
MDUtMTQgIEFkZWxlIFBldGVyc29uICA8YWRlbGVAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmll
d2VkIGJ5IERhdmUgSHlhdHQuCmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0Vs
ZW1lbnQuY3BwIGIvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcAppbmRleCBlZjg1
MzIzLi4yZTI1YWY2IDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQu
Y3BwCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAKQEAgLTExMiwxMiAr
MTEyLDE4IEBAIFJlbmRlck9iamVjdCogSFRNTENhbnZhc0VsZW1lbnQ6OmNyZWF0ZVJlbmRlcmVy
KFJlbmRlckFyZW5hKiBhcmVuYSwgUmVuZGVyU3R5bGUqCiAKIHZvaWQgSFRNTENhbnZhc0VsZW1l
bnQ6OnNldEhlaWdodChpbnQgdmFsdWUpCiB7Ci0gICAgc2V0QXR0cmlidXRlKGhlaWdodEF0dHIs
IFN0cmluZzo6bnVtYmVyKHZhbHVlKSk7CisgICAgaWYgKHZhbHVlIDwgMCkKKyAgICAgICAgc2V0
QXR0cmlidXRlKGhlaWdodEF0dHIsIFN0cmluZzo6bnVtYmVyKERlZmF1bHRIZWlnaHQpKTsKKyAg
ICBlbHNlCisgICAgICAgIHNldEF0dHJpYnV0ZShoZWlnaHRBdHRyLCBTdHJpbmc6Om51bWJlcih2
YWx1ZSkpOwogfQogCiB2b2lkIEhUTUxDYW52YXNFbGVtZW50OjpzZXRXaWR0aChpbnQgdmFsdWUp
CiB7Ci0gICAgc2V0QXR0cmlidXRlKHdpZHRoQXR0ciwgU3RyaW5nOjpudW1iZXIodmFsdWUpKTsK
KyAgICBpZiAodmFsdWUgPCAwKQorICAgICAgICBzZXRBdHRyaWJ1dGUod2lkdGhBdHRyLCBTdHJp
bmc6Om51bWJlcihEZWZhdWx0V2lkdGgpKTsKKyAgICBlbHNlCisgICAgICAgIHNldEF0dHJpYnV0
ZSh3aWR0aEF0dHIsIFN0cmluZzo6bnVtYmVyKHZhbHVlKSk7CiB9CiAKIENhbnZhc1JlbmRlcmlu
Z0NvbnRleHQqIEhUTUxDYW52YXNFbGVtZW50OjpnZXRDb250ZXh0KGNvbnN0IFN0cmluZyYgdHlw
ZSwgQ2FudmFzQ29udGV4dEF0dHJpYnV0ZXMqIGF0dHJzKQpAQCAtMTk0LDEwICsyMDAsMTAgQEAg
dm9pZCBIVE1MQ2FudmFzRWxlbWVudDo6cmVzZXQoKQogCiAgICAgYm9vbCBvazsKICAgICBpbnQg
dyA9IGdldEF0dHJpYnV0ZSh3aWR0aEF0dHIpLnRvSW50KCZvayk7Ci0gICAgaWYgKCFvaykKKyAg
ICBpZiAoIW9rIHx8IHcgPCAwKQogICAgICAgICB3ID0gRGVmYXVsdFdpZHRoOwogICAgIGludCBo
ID0gZ2V0QXR0cmlidXRlKGhlaWdodEF0dHIpLnRvSW50KCZvayk7Ci0gICAgaWYgKCFvaykKKyAg
ICBpZiAoIW9rIHx8IGggPCAwKQogICAgICAgICBoID0gRGVmYXVsdEhlaWdodDsKIAogICAgIElu
dFNpemUgb2xkU2l6ZSA9IHNpemUoKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>56176</attachid>
            <date>2010-05-15 22:47:11 -0700</date>
            <delta_ts>2010-06-02 02:26:20 -0700</delta_ts>
            <desc>Proposed patch v2</desc>
            <filename>bug-39149-2.diff</filename>
            <type>text/plain</type>
            <size>8663</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBkNTI1NDM2Li42ZjNlMDI2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjggQEAKKzIwMTAtMDUt
MTYgIEFuZHJlYXMgS2xpbmcgIDxhbmRyZWFzLmtsaW5nQG5va2lhLmNvbT4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgdGVzdCBmb3IgY2hlY2tp
bmcgdGhhdCBjYW52YXMgZWxlbWVudHMgY2FuJ3QgaGF2ZSBhIG5lZ2F0aXZlIHdpZHRoIG9yIGhl
aWdodC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM5
MTQ5CisKKyAgICAgICAgU3BlYyBsaW5rOgorICAgICAgICBodHRwOi8vd3d3LndoYXR3Zy5vcmcv
c3BlY3Mvd2ViLWFwcHMvY3VycmVudC13b3JrLyNhdHRyLWNhbnZhcy13aWR0aAorCisgICAgICAg
ICogZmFzdC9jYW52YXMvY2FudmFzLW5lZ2F0aXZlLXNpemUtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBmYXN0L2NhbnZhcy9jYW52YXMtbmVnYXRpdmUtc2l6ZS5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBmYXN0L2NhbnZhcy9zY3JpcHQtdGVzdHMvY2FudmFzLW5lZ2F0aXZlLXNpemUu
anM6IEFkZGVkLgorICAgICAgICAoY3JlYXRlRnJvbU1hcmt1cCk6CisgICAgICAgICh0cnlTZXR0
aW5nV2lkdGgpOgorICAgICAgICAodHJ5U2V0dGluZ0hlaWdodCk6CisgICAgICAgICh0cnlTZXR0
aW5nV2lkdGhBdHRyaWJ1dGUpOgorICAgICAgICAodHJ5U2V0dGluZ0hlaWdodEF0dHJpYnV0ZSk6
CisgICAgICAgICh0cnlDcmVhdGluZ0NhbnZhc1dpdGhXaWR0aCk6CisgICAgICAgICh0cnlDcmVh
dGluZ0NhbnZhc1dpdGhIZWlnaHQpOgorICAgICAgICAodHJ5V2lkdGgpOgorICAgICAgICAodHJ5
SGVpZ2h0KToKKyAgICAgICAgKGNoZWNrRGVmYXVsdFdpZHRoKToKKyAgICAgICAgKGNoZWNrRGVm
YXVsdEhlaWdodCk6CisKIDIwMTAtMDUtMTUgIEFuZHJlYXMgS2xpbmcgIDxhbmRyZWFzLmtsaW5n
QG5va2lhLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBLZW5uZXRoIFJvaGRlIENocmlzdGlh
bnNlbi4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL2NhbnZhcy1uZWdhdGl2
ZS1zaXplLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL2NhbnZhcy1uZWdh
dGl2ZS1zaXplLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li5jN2YxYzM5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2Fu
dmFzLW5lZ2F0aXZlLXNpemUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNDcgQEAKK1Rlc3QgdGhh
dCBjYW52YXMgZWxlbWVudHMgY2FuJ3QgaGF2ZSBuZWdhdGl2ZSBoZWlnaHQgYW5kL29yIHdpZHRo
LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2Vz
LCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBjaGVja0RlZmF1bHRXaWR0
aCgpIGlzIDMwMAorUEFTUyBjaGVja0RlZmF1bHRIZWlnaHQoKSBpcyAxNTAKK1BBU1MgdHJ5U2V0
dGluZ1dpZHRoKC0xKSBpcyAzMDAKK1BBU1MgdHJ5U2V0dGluZ1dpZHRoQXR0cmlidXRlKC0xKSBp
cyAzMDAKK1BBU1MgdHJ5Q3JlYXRpbmdDYW52YXNXaXRoV2lkdGgoLTEpIGlzIDMwMAorUEFTUyB0
cnlTZXR0aW5nV2lkdGgoMCkgaXMgMAorUEFTUyB0cnlTZXR0aW5nV2lkdGhBdHRyaWJ1dGUoMCkg
aXMgMAorUEFTUyB0cnlDcmVhdGluZ0NhbnZhc1dpdGhXaWR0aCgwKSBpcyAwCitQQVNTIHRyeVNl
dHRpbmdXaWR0aCgxKSBpcyAxCitQQVNTIHRyeVNldHRpbmdXaWR0aEF0dHJpYnV0ZSgxKSBpcyAx
CitQQVNTIHRyeUNyZWF0aW5nQ2FudmFzV2l0aFdpZHRoKDEpIGlzIDEKK1BBU1MgdHJ5U2V0dGlu
Z1dpZHRoKCcrNycpIGlzIDcKK1BBU1MgdHJ5U2V0dGluZ1dpZHRoQXR0cmlidXRlKCcrNycpIGlz
IDcKK1BBU1MgdHJ5Q3JlYXRpbmdDYW52YXNXaXRoV2lkdGgoJys3JykgaXMgNworUEFTUyB0cnlT
ZXR0aW5nV2lkdGgoJy03JykgaXMgMzAwCitQQVNTIHRyeVNldHRpbmdXaWR0aEF0dHJpYnV0ZSgn
LTcnKSBpcyAzMDAKK1BBU1MgdHJ5Q3JlYXRpbmdDYW52YXNXaXRoV2lkdGgoJy03JykgaXMgMzAw
CitQQVNTIHRyeVNldHRpbmdXaWR0aCgnMTIzJykgaXMgMTIzCitQQVNTIHRyeVNldHRpbmdXaWR0
aEF0dHJpYnV0ZSgnMTIzJykgaXMgMTIzCitQQVNTIHRyeUNyZWF0aW5nQ2FudmFzV2l0aFdpZHRo
KCcxMjMnKSBpcyAxMjMKK1BBU1MgdHJ5U2V0dGluZ0hlaWdodCgtMSkgaXMgMTUwCitQQVNTIHRy
eVNldHRpbmdIZWlnaHRBdHRyaWJ1dGUoLTEpIGlzIDE1MAorUEFTUyB0cnlDcmVhdGluZ0NhbnZh
c1dpdGhIZWlnaHQoLTEpIGlzIDE1MAorUEFTUyB0cnlTZXR0aW5nSGVpZ2h0KDApIGlzIDAKK1BB
U1MgdHJ5U2V0dGluZ0hlaWdodEF0dHJpYnV0ZSgwKSBpcyAwCitQQVNTIHRyeUNyZWF0aW5nQ2Fu
dmFzV2l0aEhlaWdodCgwKSBpcyAwCitQQVNTIHRyeVNldHRpbmdIZWlnaHQoMSkgaXMgMQorUEFT
UyB0cnlTZXR0aW5nSGVpZ2h0QXR0cmlidXRlKDEpIGlzIDEKK1BBU1MgdHJ5Q3JlYXRpbmdDYW52
YXNXaXRoSGVpZ2h0KDEpIGlzIDEKK1BBU1MgdHJ5U2V0dGluZ0hlaWdodCgnKzcnKSBpcyA3CitQ
QVNTIHRyeVNldHRpbmdIZWlnaHRBdHRyaWJ1dGUoJys3JykgaXMgNworUEFTUyB0cnlDcmVhdGlu
Z0NhbnZhc1dpdGhIZWlnaHQoJys3JykgaXMgNworUEFTUyB0cnlTZXR0aW5nSGVpZ2h0KCctNycp
IGlzIDE1MAorUEFTUyB0cnlTZXR0aW5nSGVpZ2h0QXR0cmlidXRlKCctNycpIGlzIDE1MAorUEFT
UyB0cnlDcmVhdGluZ0NhbnZhc1dpdGhIZWlnaHQoJy03JykgaXMgMTUwCitQQVNTIHRyeVNldHRp
bmdIZWlnaHQoJzEyMycpIGlzIDEyMworUEFTUyB0cnlTZXR0aW5nSGVpZ2h0QXR0cmlidXRlKCcx
MjMnKSBpcyAxMjMKK1BBU1MgdHJ5Q3JlYXRpbmdDYW52YXNXaXRoSGVpZ2h0KCcxMjMnKSBpcyAx
MjMKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMtbmVnYXRpdmUtc2l6ZS5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLW5lZ2F0aXZlLXNpemUuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MjE3OTUyCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLW5lZ2F0aXZlLXNpemUuaHRtbApA
QCAtMCwwICsxLDEzIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1M
Ly9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi9q
cy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291
cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJk
ZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0i
c2NyaXB0LXRlc3RzL2NhbnZhcy1uZWdhdGl2ZS1zaXplLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3NjcmlwdC10ZXN0
cy9jYW52YXMtbmVnYXRpdmUtc2l6ZS5qcyBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3Njcmlw
dC10ZXN0cy9jYW52YXMtbmVnYXRpdmUtc2l6ZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi45ZjNiZTgzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9j
YW52YXMvc2NyaXB0LXRlc3RzL2NhbnZhcy1uZWdhdGl2ZS1zaXplLmpzCkBAIC0wLDAgKzEsODUg
QEAKK2Rlc2NyaXB0aW9uKCJUZXN0IHRoYXQgY2FudmFzIGVsZW1lbnRzIGNhbid0IGhhdmUgbmVn
YXRpdmUgaGVpZ2h0IGFuZC9vciB3aWR0aC4iKTsKKworY2FudmFzID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgnY2FudmFzJyk7CisKK3ZhciB0ZXN0aW5nR3JvdW5kID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgnZGl2Jyk7CitmdW5jdGlvbiBjcmVhdGVGcm9tTWFya3VwKG1hcmt1cCkKK3sKKyAg
ICB2YXIgcmFuZ2UgPSBkb2N1bWVudC5jcmVhdGVSYW5nZSgpOworICAgIHZhciBmcmFnbWVudENv
bnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworICAgIHJhbmdlLnNlbGVj
dE5vZGVDb250ZW50cyhmcmFnbWVudENvbnRhaW5lcik7CisgICAgdGVzdGluZ0dyb3VuZC5hcHBl
bmRDaGlsZChmcmFnbWVudENvbnRhaW5lcik7CisgICAgdmFyIGZyYWdtZW50ID0gcmFuZ2UuY3Jl
YXRlQ29udGV4dHVhbEZyYWdtZW50KG1hcmt1cCk7CisgICAgZnJhZ21lbnRDb250YWluZXIuYXBw
ZW5kQ2hpbGQoZnJhZ21lbnQpOworICAgIHJldHVybiBmcmFnbWVudENvbnRhaW5lci5maXJzdENo
aWxkOworfQorCitmdW5jdGlvbiB0cnlTZXR0aW5nV2lkdGgodmFsdWUpIHsKKyAgICBjYW52YXMu
d2lkdGggPSA2OworICAgIGNhbnZhcy53aWR0aCA9IHZhbHVlOworICAgIHJldHVybiBjYW52YXMu
d2lkdGg7Cit9CisKK2Z1bmN0aW9uIHRyeVNldHRpbmdIZWlnaHQodmFsdWUpIHsKKyAgICBjYW52
YXMuaGVpZ2h0ID0gNjsKKyAgICBjYW52YXMuaGVpZ2h0ID0gdmFsdWU7CisgICAgcmV0dXJuIGNh
bnZhcy5oZWlnaHQ7Cit9CisKK2Z1bmN0aW9uIHRyeVNldHRpbmdXaWR0aEF0dHJpYnV0ZSh2YWx1
ZSkgeworICAgIGNhbnZhcy53aWR0aCA9IDY7CisgICAgY2FudmFzLnNldEF0dHJpYnV0ZSgnd2lk
dGgnLCB2YWx1ZSk7CisgICAgcmV0dXJuIGNhbnZhcy53aWR0aDsKK30KKworZnVuY3Rpb24gdHJ5
U2V0dGluZ0hlaWdodEF0dHJpYnV0ZSh2YWx1ZSkgeworICAgIGNhbnZhcy5oZWlnaHQgPSA2Owor
ICAgIGNhbnZhcy5zZXRBdHRyaWJ1dGUoJ2hlaWdodCcsIHZhbHVlKTsKKyAgICByZXR1cm4gY2Fu
dmFzLmhlaWdodDsKK30KKworZnVuY3Rpb24gdHJ5Q3JlYXRpbmdDYW52YXNXaXRoV2lkdGgodmFs
dWUpIHsKKyAgICByZXR1cm4gY3JlYXRlRnJvbU1hcmt1cCgiPGNhbnZhcyB3aWR0aD0iICsgdmFs
dWUgKyAiPjwvY2FudmFzPiIpLndpZHRoOworfQorCitmdW5jdGlvbiB0cnlDcmVhdGluZ0NhbnZh
c1dpdGhIZWlnaHQodmFsdWUpIHsKKyAgICByZXR1cm4gY3JlYXRlRnJvbU1hcmt1cCgiPGNhbnZh
cyBoZWlnaHQ9JyIgKyB2YWx1ZSArICInPjwvY2FudmFzPiIpLmhlaWdodDsKK30KKworZnVuY3Rp
b24gdHJ5V2lkdGgodmFsdWUsIGV4cGVjdGVkKSB7CisgICAgc2hvdWxkQmUoInRyeVNldHRpbmdX
aWR0aCgiICsgdmFsdWUgKyAiKSIsIGV4cGVjdGVkKTsKKyAgICBzaG91bGRCZSgidHJ5U2V0dGlu
Z1dpZHRoQXR0cmlidXRlKCIgKyB2YWx1ZSArICIpIiwgZXhwZWN0ZWQpOworICAgIHNob3VsZEJl
KCJ0cnlDcmVhdGluZ0NhbnZhc1dpdGhXaWR0aCgiICsgdmFsdWUgKyAiKSIsIGV4cGVjdGVkKTsK
K30KKworZnVuY3Rpb24gdHJ5SGVpZ2h0KHZhbHVlLCBleHBlY3RlZCkgeworICAgIHNob3VsZEJl
KCJ0cnlTZXR0aW5nSGVpZ2h0KCIgKyB2YWx1ZSArICIpIiwgZXhwZWN0ZWQpOworICAgIHNob3Vs
ZEJlKCJ0cnlTZXR0aW5nSGVpZ2h0QXR0cmlidXRlKCIgKyB2YWx1ZSArICIpIiwgZXhwZWN0ZWQp
OworICAgIHNob3VsZEJlKCJ0cnlDcmVhdGluZ0NhbnZhc1dpdGhIZWlnaHQoIiArIHZhbHVlICsg
IikiLCBleHBlY3RlZCk7Cit9CisKK2Z1bmN0aW9uIGNoZWNrRGVmYXVsdFdpZHRoKCkgeworICAg
IHJldHVybiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKS53aWR0aDsKK30KKworZnVu
Y3Rpb24gY2hlY2tEZWZhdWx0SGVpZ2h0KCkgeworICAgIHJldHVybiBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCJjYW52YXMiKS5oZWlnaHQ7Cit9CisKK3Nob3VsZEJlKCJjaGVja0RlZmF1bHRXaWR0
aCgpIiwgIjMwMCIpOworc2hvdWxkQmUoImNoZWNrRGVmYXVsdEhlaWdodCgpIiwgIjE1MCIpOwor
Cit0cnlXaWR0aCgiLTEiLCAiMzAwIik7Cit0cnlXaWR0aCgiMCIsICIwIik7Cit0cnlXaWR0aCgi
MSIsICIxIik7Cit0cnlXaWR0aCgiJys3JyIsICI3Iik7Cit0cnlXaWR0aCgiJy03JyIsICIzMDAi
KTsKK3RyeVdpZHRoKCInMTIzJyIsICIxMjMiKTsKKwordHJ5SGVpZ2h0KCItMSIsICIxNTAiKTsK
K3RyeUhlaWdodCgiMCIsICIwIik7Cit0cnlIZWlnaHQoIjEiLCAiMSIpOwordHJ5SGVpZ2h0KCIn
KzcnIiwgIjciKTsKK3RyeUhlaWdodCgiJy03JyIsICIxNTAiKTsKK3RyeUhlaWdodCgiJzEyMyci
LCAiMTIzIik7Cit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWI2MzA2Yy4uZDI2MmE0
YyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwyMiBAQAorMjAxMC0wNS0xNiAgQW5kcmVhcyBLbGluZyAgPGFuZHJlYXMua2xp
bmdAbm9raWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIENhbnZhcyBlbGVtZW50IGNhbm5vdCBoYXZlIG5lZ2F0aXZlIHdpZHRoIG9yIGhlaWdo
dCAoSFRNTDUgc3BlYyA0LjguMTEpCisgICAgICAgIElmIGFzc2lnbmVkIGEgbmVnYXRpdmUgdmFs
dWUsIGl0IHNob3VsZCBkZWZhdWx0IHRvIDMwMCBmb3Igd2lkdGggYW5kIDE1MCBmb3IgaGVpZ2h0
LgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zOTE0
OQorCisgICAgICAgIFNwZWMgbGluazoKKyAgICAgICAgaHR0cDovL3d3dy53aGF0d2cub3JnL3Nw
ZWNzL3dlYi1hcHBzL2N1cnJlbnQtd29yay8jYXR0ci1jYW52YXMtd2lkdGgKKworICAgICAgICBU
ZXN0OiBmYXN0L2NhbnZhcy9jYW52YXMtbmVnYXRpdmUtc2l6ZS5odG1sCisKKyAgICAgICAgKiBo
dG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNF
bGVtZW50OjpzZXRIZWlnaHQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6
OnNldFdpZHRoKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNFbGVtZW50OjpyZXNldCk6
CisKIDIwMTAtMDUtMTUgIEFuZHJlYXMgS2xpbmcgIDxhbmRyZWFzLmtsaW5nQG5va2lhLmNvbT4K
IAogICAgICAgICBSZXZpZXdlZCBieSBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbi4KZGlmZiAt
LWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAgYi9XZWJDb3JlL2h0bWwv
SFRNTENhbnZhc0VsZW1lbnQuY3BwCmluZGV4IGVmODUzMjMuLjJlMjVhZjYgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAKKysrIGIvV2ViQ29yZS9odG1sL0hU
TUxDYW52YXNFbGVtZW50LmNwcApAQCAtMTEyLDEyICsxMTIsMTggQEAgUmVuZGVyT2JqZWN0KiBI
VE1MQ2FudmFzRWxlbWVudDo6Y3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEqIGFyZW5hLCBSZW5k
ZXJTdHlsZSoKIAogdm9pZCBIVE1MQ2FudmFzRWxlbWVudDo6c2V0SGVpZ2h0KGludCB2YWx1ZSkK
IHsKLSAgICBzZXRBdHRyaWJ1dGUoaGVpZ2h0QXR0ciwgU3RyaW5nOjpudW1iZXIodmFsdWUpKTsK
KyAgICBpZiAodmFsdWUgPCAwKQorICAgICAgICBzZXRBdHRyaWJ1dGUoaGVpZ2h0QXR0ciwgU3Ry
aW5nOjpudW1iZXIoRGVmYXVsdEhlaWdodCkpOworICAgIGVsc2UKKyAgICAgICAgc2V0QXR0cmli
dXRlKGhlaWdodEF0dHIsIFN0cmluZzo6bnVtYmVyKHZhbHVlKSk7CiB9CiAKIHZvaWQgSFRNTENh
bnZhc0VsZW1lbnQ6OnNldFdpZHRoKGludCB2YWx1ZSkKIHsKLSAgICBzZXRBdHRyaWJ1dGUod2lk
dGhBdHRyLCBTdHJpbmc6Om51bWJlcih2YWx1ZSkpOworICAgIGlmICh2YWx1ZSA8IDApCisgICAg
ICAgIHNldEF0dHJpYnV0ZSh3aWR0aEF0dHIsIFN0cmluZzo6bnVtYmVyKERlZmF1bHRXaWR0aCkp
OworICAgIGVsc2UKKyAgICAgICAgc2V0QXR0cmlidXRlKHdpZHRoQXR0ciwgU3RyaW5nOjpudW1i
ZXIodmFsdWUpKTsKIH0KIAogQ2FudmFzUmVuZGVyaW5nQ29udGV4dCogSFRNTENhbnZhc0VsZW1l
bnQ6OmdldENvbnRleHQoY29uc3QgU3RyaW5nJiB0eXBlLCBDYW52YXNDb250ZXh0QXR0cmlidXRl
cyogYXR0cnMpCkBAIC0xOTQsMTAgKzIwMCwxMCBAQCB2b2lkIEhUTUxDYW52YXNFbGVtZW50Ojpy
ZXNldCgpCiAKICAgICBib29sIG9rOwogICAgIGludCB3ID0gZ2V0QXR0cmlidXRlKHdpZHRoQXR0
cikudG9JbnQoJm9rKTsKLSAgICBpZiAoIW9rKQorICAgIGlmICghb2sgfHwgdyA8IDApCiAgICAg
ICAgIHcgPSBEZWZhdWx0V2lkdGg7CiAgICAgaW50IGggPSBnZXRBdHRyaWJ1dGUoaGVpZ2h0QXR0
cikudG9JbnQoJm9rKTsKLSAgICBpZiAoIW9rKQorICAgIGlmICghb2sgfHwgaCA8IDApCiAgICAg
ICAgIGggPSBEZWZhdWx0SGVpZ2h0OwogCiAgICAgSW50U2l6ZSBvbGRTaXplID0gc2l6ZSgpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>56199</attachid>
            <date>2010-05-16 15:34:29 -0700</date>
            <delta_ts>2010-06-04 06:08:32 -0700</delta_ts>
            <desc>Proposed patch v3</desc>
            <filename>bug-39149-3.diff</filename>
            <type>text/plain</type>
            <size>8576</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBiOTk3M2M1Li4wNjg5ZWVlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjggQEAKKzIwMTAtMDUt
MTcgIEFuZHJlYXMgS2xpbmcgIDxhbmRyZWFzLmtsaW5nQG5va2lhLmNvbT4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgdGVzdCBmb3IgY2hlY2tp
bmcgdGhhdCBjYW52YXMgZWxlbWVudHMgY2FuJ3QgaGF2ZSBhIG5lZ2F0aXZlIHdpZHRoIG9yIGhl
aWdodC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM5
MTQ5CisKKyAgICAgICAgU3BlYyBsaW5rOgorICAgICAgICBodHRwOi8vd3d3LndoYXR3Zy5vcmcv
c3BlY3Mvd2ViLWFwcHMvY3VycmVudC13b3JrLyNhdHRyLWNhbnZhcy13aWR0aAorCisgICAgICAg
ICogZmFzdC9jYW52YXMvY2FudmFzLW5lZ2F0aXZlLXNpemUtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBmYXN0L2NhbnZhcy9jYW52YXMtbmVnYXRpdmUtc2l6ZS5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBmYXN0L2NhbnZhcy9zY3JpcHQtdGVzdHMvY2FudmFzLW5lZ2F0aXZlLXNpemUu
anM6IEFkZGVkLgorICAgICAgICAoY3JlYXRlRnJvbU1hcmt1cCk6CisgICAgICAgICh0cnlTZXR0
aW5nV2lkdGgpOgorICAgICAgICAodHJ5U2V0dGluZ0hlaWdodCk6CisgICAgICAgICh0cnlTZXR0
aW5nV2lkdGhBdHRyaWJ1dGUpOgorICAgICAgICAodHJ5U2V0dGluZ0hlaWdodEF0dHJpYnV0ZSk6
CisgICAgICAgICh0cnlDcmVhdGluZ0NhbnZhc1dpdGhXaWR0aCk6CisgICAgICAgICh0cnlDcmVh
dGluZ0NhbnZhc1dpdGhIZWlnaHQpOgorICAgICAgICAodHJ5V2lkdGgpOgorICAgICAgICAodHJ5
SGVpZ2h0KToKKyAgICAgICAgKGNoZWNrRGVmYXVsdFdpZHRoKToKKyAgICAgICAgKGNoZWNrRGVm
YXVsdEhlaWdodCk6CisKIDIwMTAtMDUtMTYgIEFuZHJlYXMgS2xpbmcgIDxhbmRyZWFzLmtsaW5n
QG5va2lhLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBLZW5uZXRoIFJvaGRlIENocmlzdGlh
bnNlbi4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL2NhbnZhcy1uZWdhdGl2
ZS1zaXplLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL2NhbnZhcy1uZWdh
dGl2ZS1zaXplLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li5jN2YxYzM5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2Fu
dmFzLW5lZ2F0aXZlLXNpemUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNDcgQEAKK1Rlc3QgdGhh
dCBjYW52YXMgZWxlbWVudHMgY2FuJ3QgaGF2ZSBuZWdhdGl2ZSBoZWlnaHQgYW5kL29yIHdpZHRo
LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2Vz
LCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBjaGVja0RlZmF1bHRXaWR0
aCgpIGlzIDMwMAorUEFTUyBjaGVja0RlZmF1bHRIZWlnaHQoKSBpcyAxNTAKK1BBU1MgdHJ5U2V0
dGluZ1dpZHRoKC0xKSBpcyAzMDAKK1BBU1MgdHJ5U2V0dGluZ1dpZHRoQXR0cmlidXRlKC0xKSBp
cyAzMDAKK1BBU1MgdHJ5Q3JlYXRpbmdDYW52YXNXaXRoV2lkdGgoLTEpIGlzIDMwMAorUEFTUyB0
cnlTZXR0aW5nV2lkdGgoMCkgaXMgMAorUEFTUyB0cnlTZXR0aW5nV2lkdGhBdHRyaWJ1dGUoMCkg
aXMgMAorUEFTUyB0cnlDcmVhdGluZ0NhbnZhc1dpdGhXaWR0aCgwKSBpcyAwCitQQVNTIHRyeVNl
dHRpbmdXaWR0aCgxKSBpcyAxCitQQVNTIHRyeVNldHRpbmdXaWR0aEF0dHJpYnV0ZSgxKSBpcyAx
CitQQVNTIHRyeUNyZWF0aW5nQ2FudmFzV2l0aFdpZHRoKDEpIGlzIDEKK1BBU1MgdHJ5U2V0dGlu
Z1dpZHRoKCcrNycpIGlzIDcKK1BBU1MgdHJ5U2V0dGluZ1dpZHRoQXR0cmlidXRlKCcrNycpIGlz
IDcKK1BBU1MgdHJ5Q3JlYXRpbmdDYW52YXNXaXRoV2lkdGgoJys3JykgaXMgNworUEFTUyB0cnlT
ZXR0aW5nV2lkdGgoJy03JykgaXMgMzAwCitQQVNTIHRyeVNldHRpbmdXaWR0aEF0dHJpYnV0ZSgn
LTcnKSBpcyAzMDAKK1BBU1MgdHJ5Q3JlYXRpbmdDYW52YXNXaXRoV2lkdGgoJy03JykgaXMgMzAw
CitQQVNTIHRyeVNldHRpbmdXaWR0aCgnMTIzJykgaXMgMTIzCitQQVNTIHRyeVNldHRpbmdXaWR0
aEF0dHJpYnV0ZSgnMTIzJykgaXMgMTIzCitQQVNTIHRyeUNyZWF0aW5nQ2FudmFzV2l0aFdpZHRo
KCcxMjMnKSBpcyAxMjMKK1BBU1MgdHJ5U2V0dGluZ0hlaWdodCgtMSkgaXMgMTUwCitQQVNTIHRy
eVNldHRpbmdIZWlnaHRBdHRyaWJ1dGUoLTEpIGlzIDE1MAorUEFTUyB0cnlDcmVhdGluZ0NhbnZh
c1dpdGhIZWlnaHQoLTEpIGlzIDE1MAorUEFTUyB0cnlTZXR0aW5nSGVpZ2h0KDApIGlzIDAKK1BB
U1MgdHJ5U2V0dGluZ0hlaWdodEF0dHJpYnV0ZSgwKSBpcyAwCitQQVNTIHRyeUNyZWF0aW5nQ2Fu
dmFzV2l0aEhlaWdodCgwKSBpcyAwCitQQVNTIHRyeVNldHRpbmdIZWlnaHQoMSkgaXMgMQorUEFT
UyB0cnlTZXR0aW5nSGVpZ2h0QXR0cmlidXRlKDEpIGlzIDEKK1BBU1MgdHJ5Q3JlYXRpbmdDYW52
YXNXaXRoSGVpZ2h0KDEpIGlzIDEKK1BBU1MgdHJ5U2V0dGluZ0hlaWdodCgnKzcnKSBpcyA3CitQ
QVNTIHRyeVNldHRpbmdIZWlnaHRBdHRyaWJ1dGUoJys3JykgaXMgNworUEFTUyB0cnlDcmVhdGlu
Z0NhbnZhc1dpdGhIZWlnaHQoJys3JykgaXMgNworUEFTUyB0cnlTZXR0aW5nSGVpZ2h0KCctNycp
IGlzIDE1MAorUEFTUyB0cnlTZXR0aW5nSGVpZ2h0QXR0cmlidXRlKCctNycpIGlzIDE1MAorUEFT
UyB0cnlDcmVhdGluZ0NhbnZhc1dpdGhIZWlnaHQoJy03JykgaXMgMTUwCitQQVNTIHRyeVNldHRp
bmdIZWlnaHQoJzEyMycpIGlzIDEyMworUEFTUyB0cnlTZXR0aW5nSGVpZ2h0QXR0cmlidXRlKCcx
MjMnKSBpcyAxMjMKK1BBU1MgdHJ5Q3JlYXRpbmdDYW52YXNXaXRoSGVpZ2h0KCcxMjMnKSBpcyAx
MjMKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMtbmVnYXRpdmUtc2l6ZS5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLW5lZ2F0aXZlLXNpemUuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MjE3OTUyCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLW5lZ2F0aXZlLXNpemUuaHRtbApA
QCAtMCwwICsxLDEzIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1M
Ly9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi9q
cy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291
cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJk
ZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0i
c2NyaXB0LXRlc3RzL2NhbnZhcy1uZWdhdGl2ZS1zaXplLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3NjcmlwdC10ZXN0
cy9jYW52YXMtbmVnYXRpdmUtc2l6ZS5qcyBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3Njcmlw
dC10ZXN0cy9jYW52YXMtbmVnYXRpdmUtc2l6ZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi45ZjNiZTgzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9j
YW52YXMvc2NyaXB0LXRlc3RzL2NhbnZhcy1uZWdhdGl2ZS1zaXplLmpzCkBAIC0wLDAgKzEsODUg
QEAKK2Rlc2NyaXB0aW9uKCJUZXN0IHRoYXQgY2FudmFzIGVsZW1lbnRzIGNhbid0IGhhdmUgbmVn
YXRpdmUgaGVpZ2h0IGFuZC9vciB3aWR0aC4iKTsKKworY2FudmFzID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgnY2FudmFzJyk7CisKK3ZhciB0ZXN0aW5nR3JvdW5kID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgnZGl2Jyk7CitmdW5jdGlvbiBjcmVhdGVGcm9tTWFya3VwKG1hcmt1cCkKK3sKKyAg
ICB2YXIgcmFuZ2UgPSBkb2N1bWVudC5jcmVhdGVSYW5nZSgpOworICAgIHZhciBmcmFnbWVudENv
bnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworICAgIHJhbmdlLnNlbGVj
dE5vZGVDb250ZW50cyhmcmFnbWVudENvbnRhaW5lcik7CisgICAgdGVzdGluZ0dyb3VuZC5hcHBl
bmRDaGlsZChmcmFnbWVudENvbnRhaW5lcik7CisgICAgdmFyIGZyYWdtZW50ID0gcmFuZ2UuY3Jl
YXRlQ29udGV4dHVhbEZyYWdtZW50KG1hcmt1cCk7CisgICAgZnJhZ21lbnRDb250YWluZXIuYXBw
ZW5kQ2hpbGQoZnJhZ21lbnQpOworICAgIHJldHVybiBmcmFnbWVudENvbnRhaW5lci5maXJzdENo
aWxkOworfQorCitmdW5jdGlvbiB0cnlTZXR0aW5nV2lkdGgodmFsdWUpIHsKKyAgICBjYW52YXMu
d2lkdGggPSA2OworICAgIGNhbnZhcy53aWR0aCA9IHZhbHVlOworICAgIHJldHVybiBjYW52YXMu
d2lkdGg7Cit9CisKK2Z1bmN0aW9uIHRyeVNldHRpbmdIZWlnaHQodmFsdWUpIHsKKyAgICBjYW52
YXMuaGVpZ2h0ID0gNjsKKyAgICBjYW52YXMuaGVpZ2h0ID0gdmFsdWU7CisgICAgcmV0dXJuIGNh
bnZhcy5oZWlnaHQ7Cit9CisKK2Z1bmN0aW9uIHRyeVNldHRpbmdXaWR0aEF0dHJpYnV0ZSh2YWx1
ZSkgeworICAgIGNhbnZhcy53aWR0aCA9IDY7CisgICAgY2FudmFzLnNldEF0dHJpYnV0ZSgnd2lk
dGgnLCB2YWx1ZSk7CisgICAgcmV0dXJuIGNhbnZhcy53aWR0aDsKK30KKworZnVuY3Rpb24gdHJ5
U2V0dGluZ0hlaWdodEF0dHJpYnV0ZSh2YWx1ZSkgeworICAgIGNhbnZhcy5oZWlnaHQgPSA2Owor
ICAgIGNhbnZhcy5zZXRBdHRyaWJ1dGUoJ2hlaWdodCcsIHZhbHVlKTsKKyAgICByZXR1cm4gY2Fu
dmFzLmhlaWdodDsKK30KKworZnVuY3Rpb24gdHJ5Q3JlYXRpbmdDYW52YXNXaXRoV2lkdGgodmFs
dWUpIHsKKyAgICByZXR1cm4gY3JlYXRlRnJvbU1hcmt1cCgiPGNhbnZhcyB3aWR0aD0iICsgdmFs
dWUgKyAiPjwvY2FudmFzPiIpLndpZHRoOworfQorCitmdW5jdGlvbiB0cnlDcmVhdGluZ0NhbnZh
c1dpdGhIZWlnaHQodmFsdWUpIHsKKyAgICByZXR1cm4gY3JlYXRlRnJvbU1hcmt1cCgiPGNhbnZh
cyBoZWlnaHQ9JyIgKyB2YWx1ZSArICInPjwvY2FudmFzPiIpLmhlaWdodDsKK30KKworZnVuY3Rp
b24gdHJ5V2lkdGgodmFsdWUsIGV4cGVjdGVkKSB7CisgICAgc2hvdWxkQmUoInRyeVNldHRpbmdX
aWR0aCgiICsgdmFsdWUgKyAiKSIsIGV4cGVjdGVkKTsKKyAgICBzaG91bGRCZSgidHJ5U2V0dGlu
Z1dpZHRoQXR0cmlidXRlKCIgKyB2YWx1ZSArICIpIiwgZXhwZWN0ZWQpOworICAgIHNob3VsZEJl
KCJ0cnlDcmVhdGluZ0NhbnZhc1dpdGhXaWR0aCgiICsgdmFsdWUgKyAiKSIsIGV4cGVjdGVkKTsK
K30KKworZnVuY3Rpb24gdHJ5SGVpZ2h0KHZhbHVlLCBleHBlY3RlZCkgeworICAgIHNob3VsZEJl
KCJ0cnlTZXR0aW5nSGVpZ2h0KCIgKyB2YWx1ZSArICIpIiwgZXhwZWN0ZWQpOworICAgIHNob3Vs
ZEJlKCJ0cnlTZXR0aW5nSGVpZ2h0QXR0cmlidXRlKCIgKyB2YWx1ZSArICIpIiwgZXhwZWN0ZWQp
OworICAgIHNob3VsZEJlKCJ0cnlDcmVhdGluZ0NhbnZhc1dpdGhIZWlnaHQoIiArIHZhbHVlICsg
IikiLCBleHBlY3RlZCk7Cit9CisKK2Z1bmN0aW9uIGNoZWNrRGVmYXVsdFdpZHRoKCkgeworICAg
IHJldHVybiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKS53aWR0aDsKK30KKworZnVu
Y3Rpb24gY2hlY2tEZWZhdWx0SGVpZ2h0KCkgeworICAgIHJldHVybiBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCJjYW52YXMiKS5oZWlnaHQ7Cit9CisKK3Nob3VsZEJlKCJjaGVja0RlZmF1bHRXaWR0
aCgpIiwgIjMwMCIpOworc2hvdWxkQmUoImNoZWNrRGVmYXVsdEhlaWdodCgpIiwgIjE1MCIpOwor
Cit0cnlXaWR0aCgiLTEiLCAiMzAwIik7Cit0cnlXaWR0aCgiMCIsICIwIik7Cit0cnlXaWR0aCgi
MSIsICIxIik7Cit0cnlXaWR0aCgiJys3JyIsICI3Iik7Cit0cnlXaWR0aCgiJy03JyIsICIzMDAi
KTsKK3RyeVdpZHRoKCInMTIzJyIsICIxMjMiKTsKKwordHJ5SGVpZ2h0KCItMSIsICIxNTAiKTsK
K3RyeUhlaWdodCgiMCIsICIwIik7Cit0cnlIZWlnaHQoIjEiLCAiMSIpOwordHJ5SGVpZ2h0KCIn
KzcnIiwgIjciKTsKK3RyeUhlaWdodCgiJy03JyIsICIxNTAiKTsKK3RyeUhlaWdodCgiJzEyMyci
LCAiMTIzIik7Cit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDljMmI5OC4uY2RkOTRj
ZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwyMiBAQAorMjAxMC0wNS0xNyAgQW5kcmVhcyBLbGluZyAgPGFuZHJlYXMua2xp
bmdAbm9raWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIENhbnZhcyBlbGVtZW50IGNhbm5vdCBoYXZlIG5lZ2F0aXZlIHdpZHRoIG9yIGhlaWdo
dCAoSFRNTDUgc3BlYyA0LjguMTEpCisgICAgICAgIElmIGFzc2lnbmVkIGEgbmVnYXRpdmUgdmFs
dWUsIGl0IHNob3VsZCBkZWZhdWx0IHRvIDMwMCBmb3Igd2lkdGggYW5kIDE1MCBmb3IgaGVpZ2h0
LgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zOTE0
OQorCisgICAgICAgIFNwZWMgbGluazoKKyAgICAgICAgaHR0cDovL3d3dy53aGF0d2cub3JnL3Nw
ZWNzL3dlYi1hcHBzL2N1cnJlbnQtd29yay8jYXR0ci1jYW52YXMtd2lkdGgKKworICAgICAgICBU
ZXN0OiBmYXN0L2NhbnZhcy9jYW52YXMtbmVnYXRpdmUtc2l6ZS5odG1sCisKKyAgICAgICAgKiBo
dG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNF
bGVtZW50OjpzZXRIZWlnaHQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6
OnNldFdpZHRoKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNFbGVtZW50OjpyZXNldCk6
CisKIDIwMTAtMDUtMTYgIEFuZHJlYXMgS2xpbmcgIDxhbmRyZWFzLmtsaW5nQG5va2lhLmNvbT4K
IAogICAgICAgICBSZXZpZXdlZCBieSBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbi4KZGlmZiAt
LWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAgYi9XZWJDb3JlL2h0bWwv
SFRNTENhbnZhc0VsZW1lbnQuY3BwCmluZGV4IGVmODUzMjMuLjQwNzc1MWUgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAKKysrIGIvV2ViQ29yZS9odG1sL0hU
TUxDYW52YXNFbGVtZW50LmNwcApAQCAtMTEyLDEyICsxMTIsMTQgQEAgUmVuZGVyT2JqZWN0KiBI
VE1MQ2FudmFzRWxlbWVudDo6Y3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEqIGFyZW5hLCBSZW5k
ZXJTdHlsZSoKIAogdm9pZCBIVE1MQ2FudmFzRWxlbWVudDo6c2V0SGVpZ2h0KGludCB2YWx1ZSkK
IHsKLSAgICBzZXRBdHRyaWJ1dGUoaGVpZ2h0QXR0ciwgU3RyaW5nOjpudW1iZXIodmFsdWUpKTsK
KyAgICBpbnQgaGVpZ2h0ID0gKHZhbHVlID49IDApID8gdmFsdWUgOiBEZWZhdWx0SGVpZ2h0Owor
ICAgIHNldEF0dHJpYnV0ZShoZWlnaHRBdHRyLCBTdHJpbmc6Om51bWJlcihoZWlnaHQpKTsKIH0K
IAogdm9pZCBIVE1MQ2FudmFzRWxlbWVudDo6c2V0V2lkdGgoaW50IHZhbHVlKQogewotICAgIHNl
dEF0dHJpYnV0ZSh3aWR0aEF0dHIsIFN0cmluZzo6bnVtYmVyKHZhbHVlKSk7CisgICAgaW50IHdp
ZHRoID0gKHZhbHVlID49IDApID8gdmFsdWUgOiBEZWZhdWx0V2lkdGg7CisgICAgc2V0QXR0cmli
dXRlKHdpZHRoQXR0ciwgU3RyaW5nOjpudW1iZXIod2lkdGgpKTsKIH0KIAogQ2FudmFzUmVuZGVy
aW5nQ29udGV4dCogSFRNTENhbnZhc0VsZW1lbnQ6OmdldENvbnRleHQoY29uc3QgU3RyaW5nJiB0
eXBlLCBDYW52YXNDb250ZXh0QXR0cmlidXRlcyogYXR0cnMpCkBAIC0xOTQsMTAgKzE5NiwxMCBA
QCB2b2lkIEhUTUxDYW52YXNFbGVtZW50OjpyZXNldCgpCiAKICAgICBib29sIG9rOwogICAgIGlu
dCB3ID0gZ2V0QXR0cmlidXRlKHdpZHRoQXR0cikudG9JbnQoJm9rKTsKLSAgICBpZiAoIW9rKQor
ICAgIGlmICghb2sgfHwgdyA8IDApCiAgICAgICAgIHcgPSBEZWZhdWx0V2lkdGg7CiAgICAgaW50
IGggPSBnZXRBdHRyaWJ1dGUoaGVpZ2h0QXR0cikudG9JbnQoJm9rKTsKLSAgICBpZiAoIW9rKQor
ICAgIGlmICghb2sgfHwgaCA8IDApCiAgICAgICAgIGggPSBEZWZhdWx0SGVpZ2h0OwogCiAgICAg
SW50U2l6ZSBvbGRTaXplID0gc2l6ZSgpOwo=
</data>
<flag name="review"
          id="40593"
          type_id="1"
          status="-"
          setter="kenneth"
    />
    <flag name="commit-queue"
          id="40594"
          type_id="3"
          status="-"
          setter="kling"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>57867</attachid>
            <date>2010-06-04 06:08:32 -0700</date>
            <delta_ts>2010-07-01 14:44:43 -0700</delta_ts>
            <desc>Proposed patch v4</desc>
            <filename>bug-39149-v4.diff</filename>
            <type>text/plain</type>
            <size>11744</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA0ZmNmMTJiLi5iMmQxNzhiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMTAtMDYt
MDQgIEFuZHJlYXMgS2xpbmcgIDxhbmRyZWFzLmtsaW5nQG5va2lhLmNvbT4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgdGVzdCBmb3IgY2hlY2tp
bmcgdGhhdCBjYW52YXMgZWxlbWVudHMgY2FuJ3QgaGF2ZSBhIG5lZ2F0aXZlIHdpZHRoIG9yIGhl
aWdodC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM5
MTQ5CisKKyAgICAgICAgVW5za2lwcGVkIDIgY2FudmFzL3BoaWxpcC8gdGVzdHMgdGhhdCBub3cg
cGFzcy4KKworICAgICAgICBTcGVjIGxpbms6CisgICAgICAgIGh0dHA6Ly93d3cud2hhdHdnLm9y
Zy9zcGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsvI2F0dHItY2FudmFzLXdpZHRoCisKKyAgICAg
ICAgKiBjYW52YXMvcGhpbGlwL3Rlc3RzL3NpemUuYXR0cmlidXRlcy5wYXJzZS5taW51cy1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogY2FudmFzL3BoaWxpcC90ZXN0cy9zaXplLmF0dHJpYnV0ZXMu
c2V0QXR0cmlidXRlLm1pbnVzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2NhbnZhcy9j
YW52YXMtbmVnYXRpdmUtc2l6ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qv
Y2FudmFzL2NhbnZhcy1uZWdhdGl2ZS1zaXplLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3Qv
Y2FudmFzL3NjcmlwdC10ZXN0cy9jYW52YXMtbmVnYXRpdmUtc2l6ZS5qczogQWRkZWQuCisgICAg
ICAgIChjcmVhdGVGcm9tTWFya3VwKToKKyAgICAgICAgKHRyeVNldHRpbmdXaWR0aCk6CisgICAg
ICAgICh0cnlTZXR0aW5nSGVpZ2h0KToKKyAgICAgICAgKHRyeVNldHRpbmdXaWR0aEF0dHJpYnV0
ZSk6CisgICAgICAgICh0cnlTZXR0aW5nSGVpZ2h0QXR0cmlidXRlKToKKyAgICAgICAgKHRyeUNy
ZWF0aW5nQ2FudmFzV2l0aFdpZHRoKToKKyAgICAgICAgKHRyeUNyZWF0aW5nQ2FudmFzV2l0aEhl
aWdodCk6CisgICAgICAgICh0cnlXaWR0aCk6CisgICAgICAgICh0cnlIZWlnaHQpOgorICAgICAg
ICAoY2hlY2tEZWZhdWx0V2lkdGgpOgorICAgICAgICAoY2hlY2tEZWZhdWx0SGVpZ2h0KToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9tYWMvU2tpcHBlZDoKKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9Ta2lw
cGVkOgorCiAyMDEwLTA2LTA0ICBNYXR0aGV3IERlbGFuZXkgIDxtZGVsYW5leUBhcHBsZS5jb20+
CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9jYW52YXMvcGhpbGlwL3Rlc3RzL3NpemUuYXR0cmlidXRlcy5wYXJzZS5taW51cy1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jYW52YXMvcGhpbGlwL3Rlc3RzL3NpemUuYXR0cmlidXRl
cy5wYXJzZS5taW51cy1leHBlY3RlZC50eHQKaW5kZXggYjJmODQ4Yy4uZDQ1ZmJjMyAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvY2FudmFzL3BoaWxpcC90ZXN0cy9zaXplLmF0dHJpYnV0ZXMucGFy
c2UubWludXMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2NhbnZhcy9waGlsaXAvdGVz
dHMvc2l6ZS5hdHRyaWJ1dGVzLnBhcnNlLm1pbnVzLWV4cGVjdGVkLnR4dApAQCAtNiw0ICs2LDMg
QEAgQWN0dWFsIG91dHB1dDoKIEV4cGVjdGVkIG91dHB1dDoKIAogUGFzc2VkCi0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2NhbnZhcy9waGlsaXAvdGVzdHMvc2l6ZS5hdHRyaWJ1dGVzLnNldEF0
dHJpYnV0ZS5taW51cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jYW52YXMvcGhpbGlwL3Rl
c3RzL3NpemUuYXR0cmlidXRlcy5zZXRBdHRyaWJ1dGUubWludXMtZXhwZWN0ZWQudHh0CmluZGV4
IDljOTNmNTQuLjkyYTlkZGUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2NhbnZhcy9waGlsaXAv
dGVzdHMvc2l6ZS5hdHRyaWJ1dGVzLnNldEF0dHJpYnV0ZS5taW51cy1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvY2FudmFzL3BoaWxpcC90ZXN0cy9zaXplLmF0dHJpYnV0ZXMuc2V0QXR0
cmlidXRlLm1pbnVzLWV4cGVjdGVkLnR4dApAQCAtNiw0ICs2LDMgQEAgQWN0dWFsIG91dHB1dDoK
IEV4cGVjdGVkIG91dHB1dDoKIAogUGFzc2VkCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvY2FudmFzL2NhbnZhcy1uZWdhdGl2ZS1zaXplLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2Zhc3QvY2FudmFzL2NhbnZhcy1uZWdhdGl2ZS1zaXplLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lOWYzZmI5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLW5lZ2F0aXZlLXNpemUtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsNjkgQEAKK1Rlc3QgdGhhdCBjYW52YXMgZWxlbWVudHMgY2FuJ3QgaGF2ZSBuZWdh
dGl2ZSBoZWlnaHQgYW5kL29yIHdpZHRoLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBz
ZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisK
KworUEFTUyBjaGVja0RlZmF1bHRXaWR0aCgpIGlzIDMwMAorUEFTUyBjaGVja0RlZmF1bHRIZWln
aHQoKSBpcyAxNTAKK0ZBSUwgdHJ5U2V0dGluZ1dpZHRoKCdhYmMnKSBzaG91bGQgYmUgMzAwLiBX
YXMgMC4KK1BBU1MgdHJ5U2V0dGluZ1dpZHRoKCcyMDAnKSBpcyAyMDAKK1BBU1MgdHJ5U2V0dGlu
Z1dpZHRoKCczMDAnKSBpcyAzMDAKK0ZBSUwgdHJ5U2V0dGluZ1dpZHRoKE5hTikgc2hvdWxkIGJl
IDMwMC4gV2FzIDAuCitGQUlMIHRyeVNldHRpbmdXaWR0aChJbmZpbml0eSkgc2hvdWxkIGJlIDMw
MC4gV2FzIDAuCitGQUlMIHRyeVNldHRpbmdXaWR0aChudWxsKSBzaG91bGQgYmUgMzAwLiBXYXMg
MC4KK1BBU1MgdHJ5U2V0dGluZ1dpZHRoKHRydWUpIGlzIDEKK1BBU1MgdHJ5U2V0dGluZ1dpZHRo
KGZhbHNlKSBpcyAwCitGQUlMIHRyeVNldHRpbmdIZWlnaHQoJ2FiYycpIHNob3VsZCBiZSAxNTAu
IFdhcyAwLgorUEFTUyB0cnlTZXR0aW5nSGVpZ2h0KCcyMDAnKSBpcyAyMDAKK1BBU1MgdHJ5U2V0
dGluZ0hlaWdodCgnMTUwJykgaXMgMTUwCitGQUlMIHRyeVNldHRpbmdIZWlnaHQoTmFOKSBzaG91
bGQgYmUgMTUwLiBXYXMgMC4KK0ZBSUwgdHJ5U2V0dGluZ0hlaWdodChJbmZpbml0eSkgc2hvdWxk
IGJlIDE1MC4gV2FzIDAuCitGQUlMIHRyeVNldHRpbmdIZWlnaHQobnVsbCkgc2hvdWxkIGJlIDE1
MC4gV2FzIDAuCitQQVNTIHRyeVNldHRpbmdIZWlnaHQodHJ1ZSkgaXMgMQorUEFTUyB0cnlTZXR0
aW5nSGVpZ2h0KGZhbHNlKSBpcyAwCitGQUlMIHRyeVNldHRpbmdXaWR0aCgnZm9vJykgc2hvdWxk
IGJlIDMwMC4gV2FzIDAuCitQQVNTIHRyeVNldHRpbmdXaWR0aEF0dHJpYnV0ZSgnZm9vJykgaXMg
MzAwCitQQVNTIHRyeUNyZWF0aW5nQ2FudmFzV2l0aFdpZHRoKCdmb28nKSBpcyAzMDAKK1BBU1Mg
dHJ5U2V0dGluZ1dpZHRoKC0xKSBpcyAzMDAKK1BBU1MgdHJ5U2V0dGluZ1dpZHRoQXR0cmlidXRl
KC0xKSBpcyAzMDAKK1BBU1MgdHJ5Q3JlYXRpbmdDYW52YXNXaXRoV2lkdGgoLTEpIGlzIDMwMAor
UEFTUyB0cnlTZXR0aW5nV2lkdGgoMCkgaXMgMAorUEFTUyB0cnlTZXR0aW5nV2lkdGhBdHRyaWJ1
dGUoMCkgaXMgMAorUEFTUyB0cnlDcmVhdGluZ0NhbnZhc1dpdGhXaWR0aCgwKSBpcyAwCitQQVNT
IHRyeVNldHRpbmdXaWR0aCgxKSBpcyAxCitQQVNTIHRyeVNldHRpbmdXaWR0aEF0dHJpYnV0ZSgx
KSBpcyAxCitQQVNTIHRyeUNyZWF0aW5nQ2FudmFzV2l0aFdpZHRoKDEpIGlzIDEKK1BBU1MgdHJ5
U2V0dGluZ1dpZHRoKCcrNycpIGlzIDcKK1BBU1MgdHJ5U2V0dGluZ1dpZHRoQXR0cmlidXRlKCcr
NycpIGlzIDcKK1BBU1MgdHJ5Q3JlYXRpbmdDYW52YXNXaXRoV2lkdGgoJys3JykgaXMgNworUEFT
UyB0cnlTZXR0aW5nV2lkdGgoJy03JykgaXMgMzAwCitQQVNTIHRyeVNldHRpbmdXaWR0aEF0dHJp
YnV0ZSgnLTcnKSBpcyAzMDAKK1BBU1MgdHJ5Q3JlYXRpbmdDYW52YXNXaXRoV2lkdGgoJy03Jykg
aXMgMzAwCitQQVNTIHRyeVNldHRpbmdXaWR0aCgnMTIzJykgaXMgMTIzCitQQVNTIHRyeVNldHRp
bmdXaWR0aEF0dHJpYnV0ZSgnMTIzJykgaXMgMTIzCitQQVNTIHRyeUNyZWF0aW5nQ2FudmFzV2l0
aFdpZHRoKCcxMjMnKSBpcyAxMjMKK0ZBSUwgdHJ5U2V0dGluZ0hlaWdodCgnZm9vJykgc2hvdWxk
IGJlIDE1MC4gV2FzIDAuCitQQVNTIHRyeVNldHRpbmdIZWlnaHRBdHRyaWJ1dGUoJ2ZvbycpIGlz
IDE1MAorUEFTUyB0cnlDcmVhdGluZ0NhbnZhc1dpdGhIZWlnaHQoJ2ZvbycpIGlzIDE1MAorUEFT
UyB0cnlTZXR0aW5nSGVpZ2h0KC0xKSBpcyAxNTAKK1BBU1MgdHJ5U2V0dGluZ0hlaWdodEF0dHJp
YnV0ZSgtMSkgaXMgMTUwCitQQVNTIHRyeUNyZWF0aW5nQ2FudmFzV2l0aEhlaWdodCgtMSkgaXMg
MTUwCitQQVNTIHRyeVNldHRpbmdIZWlnaHQoMCkgaXMgMAorUEFTUyB0cnlTZXR0aW5nSGVpZ2h0
QXR0cmlidXRlKDApIGlzIDAKK1BBU1MgdHJ5Q3JlYXRpbmdDYW52YXNXaXRoSGVpZ2h0KDApIGlz
IDAKK1BBU1MgdHJ5U2V0dGluZ0hlaWdodCgxKSBpcyAxCitQQVNTIHRyeVNldHRpbmdIZWlnaHRB
dHRyaWJ1dGUoMSkgaXMgMQorUEFTUyB0cnlDcmVhdGluZ0NhbnZhc1dpdGhIZWlnaHQoMSkgaXMg
MQorUEFTUyB0cnlTZXR0aW5nSGVpZ2h0KCcrNycpIGlzIDcKK1BBU1MgdHJ5U2V0dGluZ0hlaWdo
dEF0dHJpYnV0ZSgnKzcnKSBpcyA3CitQQVNTIHRyeUNyZWF0aW5nQ2FudmFzV2l0aEhlaWdodCgn
KzcnKSBpcyA3CitQQVNTIHRyeVNldHRpbmdIZWlnaHQoJy03JykgaXMgMTUwCitQQVNTIHRyeVNl
dHRpbmdIZWlnaHRBdHRyaWJ1dGUoJy03JykgaXMgMTUwCitQQVNTIHRyeUNyZWF0aW5nQ2FudmFz
V2l0aEhlaWdodCgnLTcnKSBpcyAxNTAKK1BBU1MgdHJ5U2V0dGluZ0hlaWdodCgnMTIzJykgaXMg
MTIzCitQQVNTIHRyeVNldHRpbmdIZWlnaHRBdHRyaWJ1dGUoJzEyMycpIGlzIDEyMworUEFTUyB0
cnlDcmVhdGluZ0NhbnZhc1dpdGhIZWlnaHQoJzEyMycpIGlzIDEyMworUEFTUyBzdWNjZXNzZnVs
bHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvY2FudmFzL2NhbnZhcy1uZWdhdGl2ZS1zaXplLmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L2NhbnZhcy9jYW52YXMtbmVnYXRpdmUtc2l6ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLjYyMTc5NTIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2NhbnZhcy9jYW52YXMtbmVnYXRpdmUtc2l6ZS5odG1sCkBAIC0wLDAgKzEsMTMgQEAKKzwh
RE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhl
YWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0
LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpz
Ij48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8
ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvY2FudmFz
LW5lZ2F0aXZlLXNpemUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNl
cy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvc2NyaXB0LXRlc3RzL2NhbnZhcy1uZWdhdGl2ZS1z
aXplLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvc2NyaXB0LXRlc3RzL2NhbnZhcy1uZWdh
dGl2ZS1zaXplLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ3ODMwNjgK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9zY3JpcHQtdGVzdHMv
Y2FudmFzLW5lZ2F0aXZlLXNpemUuanMKQEAgLTAsMCArMSwxMDEgQEAKK2Rlc2NyaXB0aW9uKCJU
ZXN0IHRoYXQgY2FudmFzIGVsZW1lbnRzIGNhbid0IGhhdmUgbmVnYXRpdmUgaGVpZ2h0IGFuZC9v
ciB3aWR0aC4iKTsKKworY2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY2FudmFzJyk7
CisKK2Z1bmN0aW9uIGNyZWF0ZUZyb21NYXJrdXAobWFya3VwKQoreworICAgIHZhciBmcmFnbWVu
dENvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworICAgIGZyYWdtZW50
Q29udGFpbmVyLmlubmVySFRNTCA9IG1hcmt1cDsKKyAgICByZXR1cm4gZnJhZ21lbnRDb250YWlu
ZXIuZmlyc3RDaGlsZDsKK30KKworZnVuY3Rpb24gdHJ5U2V0dGluZ1dpZHRoKHZhbHVlKSB7Cisg
ICAgY2FudmFzLndpZHRoID0gNjsKKyAgICBjYW52YXMud2lkdGggPSB2YWx1ZTsKKyAgICByZXR1
cm4gY2FudmFzLndpZHRoOworfQorCitmdW5jdGlvbiB0cnlTZXR0aW5nSGVpZ2h0KHZhbHVlKSB7
CisgICAgY2FudmFzLmhlaWdodCA9IDY7CisgICAgY2FudmFzLmhlaWdodCA9IHZhbHVlOworICAg
IHJldHVybiBjYW52YXMuaGVpZ2h0OworfQorCitmdW5jdGlvbiB0cnlTZXR0aW5nV2lkdGhBdHRy
aWJ1dGUodmFsdWUpIHsKKyAgICBjYW52YXMud2lkdGggPSA2OworICAgIGNhbnZhcy5zZXRBdHRy
aWJ1dGUoJ3dpZHRoJywgdmFsdWUpOworICAgIHJldHVybiBjYW52YXMud2lkdGg7Cit9CisKK2Z1
bmN0aW9uIHRyeVNldHRpbmdIZWlnaHRBdHRyaWJ1dGUodmFsdWUpIHsKKyAgICBjYW52YXMuaGVp
Z2h0ID0gNjsKKyAgICBjYW52YXMuc2V0QXR0cmlidXRlKCdoZWlnaHQnLCB2YWx1ZSk7CisgICAg
cmV0dXJuIGNhbnZhcy5oZWlnaHQ7Cit9CisKK2Z1bmN0aW9uIHRyeUNyZWF0aW5nQ2FudmFzV2l0
aFdpZHRoKHZhbHVlKSB7CisgICAgcmV0dXJuIGNyZWF0ZUZyb21NYXJrdXAoIjxjYW52YXMgd2lk
dGg9IiArIHZhbHVlICsgIj48L2NhbnZhcz4iKS53aWR0aDsKK30KKworZnVuY3Rpb24gdHJ5Q3Jl
YXRpbmdDYW52YXNXaXRoSGVpZ2h0KHZhbHVlKSB7CisgICAgcmV0dXJuIGNyZWF0ZUZyb21NYXJr
dXAoIjxjYW52YXMgaGVpZ2h0PSciICsgdmFsdWUgKyAiJz48L2NhbnZhcz4iKS5oZWlnaHQ7Cit9
CisKK2Z1bmN0aW9uIHRyeVdpZHRoKHZhbHVlLCBleHBlY3RlZCkgeworICAgIHNob3VsZEJlKCJ0
cnlTZXR0aW5nV2lkdGgoIiArIHZhbHVlICsgIikiLCBleHBlY3RlZCk7CisgICAgc2hvdWxkQmUo
InRyeVNldHRpbmdXaWR0aEF0dHJpYnV0ZSgiICsgdmFsdWUgKyAiKSIsIGV4cGVjdGVkKTsKKyAg
ICBzaG91bGRCZSgidHJ5Q3JlYXRpbmdDYW52YXNXaXRoV2lkdGgoIiArIHZhbHVlICsgIikiLCBl
eHBlY3RlZCk7Cit9CisKK2Z1bmN0aW9uIHRyeUhlaWdodCh2YWx1ZSwgZXhwZWN0ZWQpIHsKKyAg
ICBzaG91bGRCZSgidHJ5U2V0dGluZ0hlaWdodCgiICsgdmFsdWUgKyAiKSIsIGV4cGVjdGVkKTsK
KyAgICBzaG91bGRCZSgidHJ5U2V0dGluZ0hlaWdodEF0dHJpYnV0ZSgiICsgdmFsdWUgKyAiKSIs
IGV4cGVjdGVkKTsKKyAgICBzaG91bGRCZSgidHJ5Q3JlYXRpbmdDYW52YXNXaXRoSGVpZ2h0KCIg
KyB2YWx1ZSArICIpIiwgZXhwZWN0ZWQpOworfQorCitmdW5jdGlvbiBjaGVja0RlZmF1bHRXaWR0
aCgpIHsKKyAgICByZXR1cm4gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIikud2lkdGg7
Cit9CisKK2Z1bmN0aW9uIGNoZWNrRGVmYXVsdEhlaWdodCgpIHsKKyAgICByZXR1cm4gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIikuaGVpZ2h0OworfQorCitzaG91bGRCZSgiY2hlY2tE
ZWZhdWx0V2lkdGgoKSIsICIzMDAiKTsKK3Nob3VsZEJlKCJjaGVja0RlZmF1bHRIZWlnaHQoKSIs
ICIxNTAiKTsKKworc2hvdWxkQmUoInRyeVNldHRpbmdXaWR0aCgnYWJjJykiLCAiMzAwIik7Citz
aG91bGRCZSgidHJ5U2V0dGluZ1dpZHRoKCcyMDAnKSIsICIyMDAiKTsKK3Nob3VsZEJlKCJ0cnlT
ZXR0aW5nV2lkdGgoJzMwMCcpIiwgIjMwMCIpOworc2hvdWxkQmUoInRyeVNldHRpbmdXaWR0aChO
YU4pIiwgIjMwMCIpOworc2hvdWxkQmUoInRyeVNldHRpbmdXaWR0aChJbmZpbml0eSkiLCAiMzAw
Iik7CitzaG91bGRCZSgidHJ5U2V0dGluZ1dpZHRoKG51bGwpIiwgIjMwMCIpOworc2hvdWxkQmUo
InRyeVNldHRpbmdXaWR0aCh0cnVlKSIsICIxIik7CitzaG91bGRCZSgidHJ5U2V0dGluZ1dpZHRo
KGZhbHNlKSIsICIwIik7CisKK3Nob3VsZEJlKCJ0cnlTZXR0aW5nSGVpZ2h0KCdhYmMnKSIsICIx
NTAiKTsKK3Nob3VsZEJlKCJ0cnlTZXR0aW5nSGVpZ2h0KCcyMDAnKSIsICIyMDAiKTsKK3Nob3Vs
ZEJlKCJ0cnlTZXR0aW5nSGVpZ2h0KCcxNTAnKSIsICIxNTAiKTsKK3Nob3VsZEJlKCJ0cnlTZXR0
aW5nSGVpZ2h0KE5hTikiLCAiMTUwIik7CitzaG91bGRCZSgidHJ5U2V0dGluZ0hlaWdodChJbmZp
bml0eSkiLCAiMTUwIik7CitzaG91bGRCZSgidHJ5U2V0dGluZ0hlaWdodChudWxsKSIsICIxNTAi
KTsKK3Nob3VsZEJlKCJ0cnlTZXR0aW5nSGVpZ2h0KHRydWUpIiwgIjEiKTsKK3Nob3VsZEJlKCJ0
cnlTZXR0aW5nSGVpZ2h0KGZhbHNlKSIsICIwIik7CisKK3RyeVdpZHRoKCInZm9vJyIsICIzMDAi
KTsKK3RyeVdpZHRoKCItMSIsICIzMDAiKTsKK3RyeVdpZHRoKCIwIiwgIjAiKTsKK3RyeVdpZHRo
KCIxIiwgIjEiKTsKK3RyeVdpZHRoKCInKzcnIiwgIjciKTsKK3RyeVdpZHRoKCInLTcnIiwgIjMw
MCIpOwordHJ5V2lkdGgoIicxMjMnIiwgIjEyMyIpOworCit0cnlIZWlnaHQoIidmb28nIiwgIjE1
MCIpOwordHJ5SGVpZ2h0KCItMSIsICIxNTAiKTsKK3RyeUhlaWdodCgiMCIsICIwIik7Cit0cnlI
ZWlnaHQoIjEiLCAiMSIpOwordHJ5SGVpZ2h0KCInKzcnIiwgIjciKTsKK3RyeUhlaWdodCgiJy03
JyIsICIxNTAiKTsKK3RyeUhlaWdodCgiJzEyMyciLCAiMTIzIik7CisKK3ZhciBzdWNjZXNzZnVs
bHlQYXJzZWQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Nr
aXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZAppbmRleCA1YTUzZGNmLi5i
ODM0NDQ4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZAorKysg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZApAQCAtMjg2LDggKzI4Niw2IEBAIGNh
bnZhcy9waGlsaXAvdGVzdHMvc2VjdXJpdHkucGF0dGVybi5jcm9zcy5odG1sCiBjYW52YXMvcGhp
bGlwL3Rlc3RzL3NlY3VyaXR5LnBhdHRlcm4uaW1hZ2UuZmlsbFN0eWxlLmh0bWwKIGNhbnZhcy9w
aGlsaXAvdGVzdHMvc2VjdXJpdHkucGF0dGVybi5pbWFnZS5zdHJva2VTdHlsZS5odG1sCiBjYW52
YXMvcGhpbGlwL3Rlc3RzL3NlY3VyaXR5LnJlc2V0Lmh0bWwKLWNhbnZhcy9waGlsaXAvdGVzdHMv
c2l6ZS5hdHRyaWJ1dGVzLnBhcnNlLm1pbnVzLmh0bWwKLWNhbnZhcy9waGlsaXAvdGVzdHMvc2l6
ZS5hdHRyaWJ1dGVzLnNldEF0dHJpYnV0ZS5taW51cy5odG1sCiBjYW52YXMvcGhpbGlwL3Rlc3Rz
L3RvRGF0YVVSTC5qcGVnLmFscGhhLmh0bWwKIGNhbnZhcy9waGlsaXAvdGVzdHMvdHlwZS5wcm90
b3R5cGUuaHRtbAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVk
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZAppbmRleCA3ZmM4NmQzLi44NzJkYTk2
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkCisrKyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQKQEAgLTUxOTgsOCArNTE5OCw2IEBAIGNhbnZhcy9w
aGlsaXAvdGVzdHMvMmQudGV4dC5mb250LnBhcnNlLnN5c3RlbS5odG1sCiBjYW52YXMvcGhpbGlw
L3Rlc3RzLzJkLnRleHQubWVhc3VyZS53aWR0aC5zcGFjZS5odG1sCiBjYW52YXMvcGhpbGlwL3Rl
c3RzLzJkLnRyYW5zZm9ybWF0aW9uLnNldFRyYW5zZm9ybS5za2V3ZWQuaHRtbAogY2FudmFzL3Bo
aWxpcC90ZXN0cy8yZC50cmFuc2Zvcm1hdGlvbi50cmFuc2Zvcm0uc2tld2VkLmh0bWwKLWNhbnZh
cy9waGlsaXAvdGVzdHMvc2l6ZS5hdHRyaWJ1dGVzLnBhcnNlLm1pbnVzLmh0bWwKLWNhbnZhcy9w
aGlsaXAvdGVzdHMvc2l6ZS5hdHRyaWJ1dGVzLnNldEF0dHJpYnV0ZS5taW51cy5odG1sCiBjYW52
YXMvcGhpbGlwL3Rlc3RzL3RvRGF0YVVSTC5qcGVnLnF1YWxpdHkuYmFzaWMuaHRtbAogY2FudmFz
L3BoaWxpcC90ZXN0cy90eXBlLnByb3RvdHlwZS5odG1sCiBjYW52YXMvcGhpbGlwL3Rlc3RzL3Nl
Y3VyaXR5LmRyYXdJbWFnZS5jYW52YXMuaHRtbApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VM
b2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA3YzgxNTk3Li4wZDBjOTM2IDEwMDY0NAotLS0g
YS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIw
IEBACisyMDEwLTA2LTA0ICBBbmRyZWFzIEtsaW5nICA8YW5kcmVhcy5rbGluZ0Bub2tpYS5jb20+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ2FudmFz
IGVsZW1lbnQgY2Fubm90IGhhdmUgbmVnYXRpdmUgd2lkdGggb3IgaGVpZ2h0IChIVE1MNSBzcGVj
IDQuOC4xMSkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTM5MTQ5CisKKyAgICAgICAgSWYgYXNzaWduZWQgYSBuZWdhdGl2ZSB2YWx1ZSwgaXQgc2hvdWxk
IGRlZmF1bHQgdG8gMzAwIGZvciB3aWR0aCBhbmQgMTUwIGZvciBoZWlnaHQuCisKKyAgICAgICAg
U3BlYyBsaW5rOgorICAgICAgICBodHRwOi8vd3d3LndoYXR3Zy5vcmcvc3BlY3Mvd2ViLWFwcHMv
Y3VycmVudC13b3JrLyNhdHRyLWNhbnZhcy13aWR0aAorCisgICAgICAgIFRlc3Q6IGZhc3QvY2Fu
dmFzL2NhbnZhcy1uZWdhdGl2ZS1zaXplLmh0bWwKKworICAgICAgICAqIGh0bWwvSFRNTENhbnZh
c0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OnJlc2V0
KToKKwogMjAxMC0wNi0wNCAgVmFuZ2VsaXMgS29ra2V2aXMgIDx2YW5nZWxpc0BjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGltaXRyaSBHbGF6a292LgpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcCBiL1dlYkNvcmUvaHRtbC9IVE1MQ2Fu
dmFzRWxlbWVudC5jcHAKaW5kZXggNWQ0MDM4Mi4uZDE5ZTRjZiAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTENhbnZh
c0VsZW1lbnQuY3BwCkBAIC0yMDksMTAgKzIwOSwxMCBAQCB2b2lkIEhUTUxDYW52YXNFbGVtZW50
OjpyZXNldCgpCiAKICAgICBib29sIG9rOwogICAgIGludCB3ID0gZ2V0QXR0cmlidXRlKHdpZHRo
QXR0cikudG9JbnQoJm9rKTsKLSAgICBpZiAoIW9rKQorICAgIGlmICghb2sgfHwgdyA8IDApCiAg
ICAgICAgIHcgPSBEZWZhdWx0V2lkdGg7CiAgICAgaW50IGggPSBnZXRBdHRyaWJ1dGUoaGVpZ2h0
QXR0cikudG9JbnQoJm9rKTsKLSAgICBpZiAoIW9rKQorICAgIGlmICghb2sgfHwgaCA8IDApCiAg
ICAgICAgIGggPSBEZWZhdWx0SGVpZ2h0OwogCiAgICAgSW50U2l6ZSBvbGRTaXplID0gc2l6ZSgp
Owo=
</data>

          </attachment>
      

    </bug>

</bugzilla>