<?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>29796</bug_id>
          
          <creation_ts>2009-09-27 23:21:11 -0700</creation_ts>
          <short_desc>.maxLength should return -1 if maxlength attribute is not specified</short_desc>
          <delta_ts>2009-09-29 21:10: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>Forms</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>http://html5.org/tools/web-apps-tracker?from=3933&amp;to=3934</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>19264</blocked>
    
    <blocked>27454</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Kent Tamura">tkent</reporter>
          <assigned_to name="Kent Tamura">tkent</assigned_to>
          <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>150461</commentid>
    <comment_count>0</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2009-09-27 23:21:11 -0700</bug_when>
    <thetext>HTML5 draft was updated so that .maxLength IDL attributes are signed, and shoud return -1 if the corresponding HTML attribute is missing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>150462</commentid>
    <comment_count>1</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2009-09-27 23:24:19 -0700</bug_when>
    <thetext>In Firefox 3.5 and Opera 10, input.maxLength returns -1 in that case.  In IE8, input.maxLength returns 2147483647.  They don&apos;t support for textarea.maxLength yet.

In WebKit, input.maxLength returns 524288 for now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>150803</commentid>
    <comment_count>2</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2009-09-28 22:39:37 -0700</bug_when>
    <thetext>HTML5 draft says:
&gt; If, on the other hand, it fails or returns an out of range value, or if the attribute
&gt; is absent, the default value must be returned instead, or −1 if there is no default
&gt; value. On setting, if the value is negative, the user agent must fire an
&gt; INDEX_SIZE_ERR exception. Otherwise, the given value must be converted to the
&gt; shortest possible string representing the number as a valid non-negative integer
&gt; and then that string must be used as the new content attribute value.

We may return &quot;the default value&quot;.  So it&apos;s ok that HTMLInputElement.maxLength returns 524288 in WebKit, 2147483647 in IE8.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>150804</commentid>
    <comment_count>3</comment_count>
      <attachid>40283</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2009-09-28 22:42:40 -0700</bug_when>
    <thetext>Created attachment 40283
Proposed patch

The patch addresses
 - HTMLTextAreaElement.maxLength value without maxlength= attribute
 - INDEX_SIZE_ERR</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>150975</commentid>
    <comment_count>4</comment_count>
      <attachid>40283</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-09-29 11:29:36 -0700</bug_when>
    <thetext>Comment on attachment 40283
Proposed patch

&gt; -void HTMLInputElement::setMaxLength(int _maxLength)
&gt; +void HTMLInputElement::setMaxLength(int _maxLength, ExceptionCode&amp; exceptionCode)
&gt;  {
&gt; -    setAttribute(maxlengthAttr, String::number(_maxLength));
&gt; +    if (_maxLength &lt; 0)
&gt; +        exceptionCode = INDEX_SIZE_ERR;
&gt; +    else
&gt; +        setAttribute(maxlengthAttr, String::number(_maxLength));
&gt;  }

Underscore in the argument name is usually something we&apos;d want to avoid. One of the few abbreviations we use consistently in WebCore code is &quot;ec&quot; for the exception code. I think using exceptionCode instead is nicer, but I&apos;d prefer to stay consistent.

I was under the impression that INDEX_SIZE_ERR was usually generated by having an attribute of type unsigned long in IDL and handled automatically by the bindings. Could you find another example and make sure you are doing this consistently?

r=me as-is, but please consider the comments above too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>151052</commentid>
    <comment_count>5</comment_count>
      <attachid>40283</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2009-09-29 14:26:01 -0700</bug_when>
    <thetext>Comment on attachment 40283
Proposed patch

Clearing flags on attachment: 40283

Committed r48903: &lt;http://trac.webkit.org/changeset/48903&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>151053</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2009-09-29 14:26:05 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>151161</commentid>
    <comment_count>7</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2009-09-29 21:10:49 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 40283 [details])
&gt; &gt; -void HTMLInputElement::setMaxLength(int _maxLength)
&gt; &gt; +void HTMLInputElement::setMaxLength(int _maxLength, ExceptionCode&amp; exceptionCode)
&gt; &gt;  {
&gt; &gt; -    setAttribute(maxlengthAttr, String::number(_maxLength));
&gt; &gt; +    if (_maxLength &lt; 0)
&gt; &gt; +        exceptionCode = INDEX_SIZE_ERR;
&gt; &gt; +    else
&gt; &gt; +        setAttribute(maxlengthAttr, String::number(_maxLength));
&gt; &gt;  }

&gt; I was under the impression that INDEX_SIZE_ERR was usually generated by having
&gt; an attribute of type unsigned long in IDL and handled automatically by the
&gt; bindings. Could you find another example and make sure you are doing this
&gt; consistently?

For example, HTMLTableElement::insertRow(long) and deleteRow(long)  have similar code.  I couldn&apos;t find examples of properties, not functions.
We need to use signed long for maxLength IDL definition because it can return -1.  I think we have no choices other than this code.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>40283</attachid>
            <date>2009-09-28 22:42:40 -0700</date>
            <delta_ts>2009-09-29 14:26:01 -0700</delta_ts>
            <desc>Proposed patch</desc>
            <filename>0001-maxlength-return-value-1.patch</filename>
            <type>text/plain</type>
            <size>12478</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">RnJvbSBmZDcxY2IxOGQ3ZGZhNGQxMzEwNTlkZjdkYWY5ODIyMTVkNDFkNTJlIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBLZW50IFRhbXVyYSA8dGtlbnRAY2hyb21pdW0ub3JnPgpEYXRl
OiBUdWUsIDI5IFNlcCAyMDA5IDE0OjI3OjUyICswOTAwClN1YmplY3Q6IFtQQVRDSF0gbWF4bGVu
Z3RoLXJldHVybi12YWx1ZS0xCgotLS0KIExheW91dFRlc3RzL0NoYW5nZUxvZyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHwgICAxMiArKysrKysrKysrCiAuLi4vZmFzdC9mb3Jtcy9pbnB1
dC1tYXhsZW5ndGgtZXhwZWN0ZWQudHh0ICAgICAgICB8ICAgIDQgKysrCiBMYXlvdXRUZXN0cy9m
YXN0L2Zvcm1zL2lucHV0LW1heGxlbmd0aC5odG1sICAgICAgICB8ICAgIDcgKysrKysrCiAuLi4v
ZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMvdGV4dGFyZWEtbWF4bGVuZ3RoLmpzICB8ICAgMTUgKysr
KysrKystLS0tLQogLi4uL2Zhc3QvZm9ybXMvdGV4dGFyZWEtbWF4bGVuZ3RoLWV4cGVjdGVkLnR4
dCAgICAgfCAgIDEyICsrKysrKy0tLS0KIFdlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHwgICAyMiArKysrKysrKysrKysrKysrKysrKwogV2ViQ29yZS9o
dG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwICAgICAgICAgICAgICAgICAgfCAgICA4ICsrKysrLQog
V2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaCAgICAgICAgICAgICAgICAgICAgfCAgICAy
ICstCiBXZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5pZGwgICAgICAgICAgICAgICAgICB8
ICAgIDMgKy0KIFdlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmNwcCAgICAgICAgICAg
ICAgIHwgICAyMiArKysrKysrKysrKystLS0tLS0tCiBXZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVh
RWxlbWVudC5oICAgICAgICAgICAgICAgICB8ICAgIDQgKy0KIFdlYkNvcmUvaHRtbC9IVE1MVGV4
dEFyZWFFbGVtZW50LmlkbCAgICAgICAgICAgICAgIHwgICAgMyArLQogMTIgZmlsZXMgY2hhbmdl
ZCwgODggaW5zZXJ0aW9ucygrKSwgMjYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGMzNzMxODMuLmU2
ZWExYjkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAwOS0wOS0yOCAgS2VudCBUYW11cmEgIDx0
a2VudEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgVXBkYXRlIGZvciAubWF4TGVuZ3RoIGJlaGF2aW9yIGNoYW5nZS4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI5Nzk2CisKKyAgICAg
ICAgKiBmYXN0L2Zvcm1zL2lucHV0LW1heGxlbmd0aC1leHBlY3RlZC50eHQ6CisgICAgICAgICog
ZmFzdC9mb3Jtcy9pbnB1dC1tYXhsZW5ndGguaHRtbDoKKyAgICAgICAgKiBmYXN0L2Zvcm1zL3Nj
cmlwdC10ZXN0cy90ZXh0YXJlYS1tYXhsZW5ndGguanM6CisgICAgICAgICogZmFzdC9mb3Jtcy90
ZXh0YXJlYS1tYXhsZW5ndGgtZXhwZWN0ZWQudHh0OgorCiAyMDA5LTA5LTI4ICBKYWt1YiBXaWVj
em9yZWsgIDxmYXcyMTdAZ21haWwuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEhh
dXNtYW5uLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC1tYXhsZW5n
dGgtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC1tYXhsZW5ndGgt
ZXhwZWN0ZWQudHh0CmluZGV4IGZhN2Y3ZmYuLjMxMmRiMWQgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2Zhc3QvZm9ybXMvaW5wdXQtbWF4bGVuZ3RoLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2Zvcm1zL2lucHV0LW1heGxlbmd0aC1leHBlY3RlZC50eHQKQEAgLTcyLDYgKzcy
LDEwIEBAIEF0dGVtcHRpbmcgdG8gaW5zZXJ0IDUzMDAwMCBjaGFyYWN0ZXJzIHdpdGggbWF4TGVu
Z3RoID0gNTI0Mjg4LgogUEFTUyAKIEF0dGVtcHRpbmcgdG8gaW5zZXJ0IDUzMDAwMCBjaGFyYWN0
ZXJzIHdpdGggbWF4TGVuZ3RoID0gNjAwMDAwLgogUEFTUyAKK1NvbWUgdGVzdHMgZm9yIC5tYXhM
ZW5ndGggcHJvcGVydHkuCitQQVNTIGlucHV0Lm1heExlbmd0aCBpcyBpbXBsaWNpdE1heExlbmd0
aAorUEFTUyBpbnB1dC5tYXhMZW5ndGggPSAtMSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVY
X1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCitQQVNTIGlucHV0LmdldEF0dHJpYnV0ZSgnbWF4
bGVuZ3RoJykgaXMgJzEwMCcKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVT
VCBDT01QTEVURQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC1tYXhs
ZW5ndGguaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtbWF4bGVuZ3RoLmh0bWwK
aW5kZXggNTkyYjJiMy4uYzMwOGQ0OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jt
cy9pbnB1dC1tYXhsZW5ndGguaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0
LW1heGxlbmd0aC5odG1sCkBAIC00NCw2ICs0NCwxMyBAQAogICAgICAgICB9CiAgICAgfQogCisg
ICAgZGVidWcoJ1NvbWUgdGVzdHMgZm9yIC5tYXhMZW5ndGggcHJvcGVydHkuJyk7CisgICAgaW5w
dXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbnB1dCIpOworICAgIHNob3VsZEJlKCJpbnB1
dC5tYXhMZW5ndGgiLCAiaW1wbGljaXRNYXhMZW5ndGgiKTsKKyAgICBzaG91bGRUaHJvdygiaW5w
dXQubWF4TGVuZ3RoID0gLTEiLCAiJ0Vycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlv
biAxJyIpOworICAgIGlucHV0Lm1heExlbmd0aCA9IDEwMDsKKyAgICBzaG91bGRCZSgiaW5wdXQu
Z2V0QXR0cmlidXRlKCdtYXhsZW5ndGgnKSIsICInMTAwJyIpOworCiAgICAgdmFyIHN1Y2Nlc3Nm
dWxseVBhcnNlZCA9IHRydWU7CiA8L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pz
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMvdGV4dGFyZWEtbWF4bGVuZ3RoLmpzIGIvTGF5
b3V0VGVzdHMvZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMvdGV4dGFyZWEtbWF4bGVuZ3RoLmpzCmlu
ZGV4IDdjZjBmNWQuLmVlMmJiMTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMv
c2NyaXB0LXRlc3RzL3RleHRhcmVhLW1heGxlbmd0aC5qcworKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2Zvcm1zL3NjcmlwdC10ZXN0cy90ZXh0YXJlYS1tYXhsZW5ndGguanMKQEAgLTQsMTMgKzQsMTMg
QEAgdmFyIHRleHRBcmVhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGV4dGFyZWEnKTsKIGRv
Y3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodGV4dEFyZWEpOwogCiAvLyBObyBtYXhsZW5ndGggYXR0
cmlidXRlCi1zaG91bGRCZSgndGV4dEFyZWEubWF4TGVuZ3RoJywgJzAnKTsKK3Nob3VsZEJlKCd0
ZXh0QXJlYS5tYXhMZW5ndGgnLCAnLTEnKTsKIAogLy8gSW52YWxpZCBtYXhsZW5ndGggYXR0cmli
dXRlcwogdGV4dEFyZWEuc2V0QXR0cmlidXRlKCdtYXhsZW5ndGgnLCAnLTMnKTsKLXNob3VsZEJl
KCd0ZXh0QXJlYS5tYXhMZW5ndGgnLCAnMCcpOworc2hvdWxkQmUoJ3RleHRBcmVhLm1heExlbmd0
aCcsICctMScpOwogdGV4dEFyZWEuc2V0QXR0cmlidXRlKCdtYXhsZW5ndGgnLCAneHl6Jyk7Ci1z
aG91bGRCZSgndGV4dEFyZWEubWF4TGVuZ3RoJywgJzAnKTsKK3Nob3VsZEJlKCd0ZXh0QXJlYS5t
YXhMZW5ndGgnLCAnLTEnKTsKIAogLy8gVmFsaWQgbWF4bGVuZ3RoIGF0dHJpYnV0ZXMKIHRleHRB
cmVhLnNldEF0dHJpYnV0ZSgnbWF4bGVuZ3RoJywgJzEnKTsKQEAgLTIyLDkgKzIyLDEyIEBAIHNo
b3VsZEJlKCd0ZXh0QXJlYS5tYXhMZW5ndGgnLCAnMjU2Jyk7CiB0ZXh0QXJlYS5tYXhMZW5ndGgg
PSAxMzsKIHNob3VsZEJlKCd0ZXh0QXJlYS5nZXRBdHRyaWJ1dGUoIm1heGxlbmd0aCIpJywgJyIx
MyInKTsKIAotdGV4dEFyZWEubWF4TGVuZ3RoID0gLTE7Ci1zaG91bGRCZSgndGV4dEFyZWEubWF4
TGVuZ3RoJywgJzQyOTQ5NjcyOTUnKTsKLXNob3VsZEJlKCd0ZXh0QXJlYS5nZXRBdHRyaWJ1dGUo
Im1heGxlbmd0aCIpJywgJyI0Mjk0OTY3Mjk1IicpOworc2hvdWxkVGhyb3coJ3RleHRBcmVhLm1h
eExlbmd0aCA9IC0xJywgJyJFcnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMSIn
KTsKK3Nob3VsZEJlKCd0ZXh0QXJlYS5nZXRBdHRyaWJ1dGUoIm1heGxlbmd0aCIpJywgJyIxMyIn
KTsgIC8vIE5vdCBjaGFuZ2VkCisKK3RleHRBcmVhLm1heExlbmd0aCA9IG51bGw7CitzaG91bGRC
ZSgndGV4dEFyZWEubWF4TGVuZ3RoJywgJzAnKTsKK3Nob3VsZEJlKCd0ZXh0QXJlYS5nZXRBdHRy
aWJ1dGUoIm1heGxlbmd0aCIpJywgJyIwIicpOwogCiAvLyBtYXhMZW5ndGggZG9lc24ndCB0cnVu
Y2F0ZSB0aGUgZGVmYXVsdCB2YWx1ZS4KIHRleHRBcmVhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgndGV4dGFyZWEnKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvdGV4dGFy
ZWEtbWF4bGVuZ3RoLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvdGV4dGFy
ZWEtbWF4bGVuZ3RoLWV4cGVjdGVkLnR4dAppbmRleCBiZDFhYTE3Li41Zjg0ZThhIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3RleHRhcmVhLW1heGxlbmd0aC1leHBlY3RlZC50
eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy90ZXh0YXJlYS1tYXhsZW5ndGgtZXhwZWN0
ZWQudHh0CkBAIC0zLDE0ICszLDE2IEBAIFRlc3RzIGZvciBIVE1MVGV4dEFyZWFFbGVtZW50Lm1h
eExlbmd0aCBiZWhhdmlvcnMuCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAKIAotUEFTUyB0
ZXh0QXJlYS5tYXhMZW5ndGggaXMgMAotUEFTUyB0ZXh0QXJlYS5tYXhMZW5ndGggaXMgMAotUEFT
UyB0ZXh0QXJlYS5tYXhMZW5ndGggaXMgMAorUEFTUyB0ZXh0QXJlYS5tYXhMZW5ndGggaXMgLTEK
K1BBU1MgdGV4dEFyZWEubWF4TGVuZ3RoIGlzIC0xCitQQVNTIHRleHRBcmVhLm1heExlbmd0aCBp
cyAtMQogUEFTUyB0ZXh0QXJlYS5tYXhMZW5ndGggaXMgMQogUEFTUyB0ZXh0QXJlYS5tYXhMZW5n
dGggaXMgMjU2CiBQQVNTIHRleHRBcmVhLmdldEF0dHJpYnV0ZSgibWF4bGVuZ3RoIikgaXMgIjEz
IgotUEFTUyB0ZXh0QXJlYS5tYXhMZW5ndGggaXMgNDI5NDk2NzI5NQotUEFTUyB0ZXh0QXJlYS5n
ZXRBdHRyaWJ1dGUoIm1heGxlbmd0aCIpIGlzICI0Mjk0OTY3Mjk1IgorUEFTUyB0ZXh0QXJlYS5t
YXhMZW5ndGggPSAtMSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00g
RXhjZXB0aW9uIDEuCitQQVNTIHRleHRBcmVhLmdldEF0dHJpYnV0ZSgibWF4bGVuZ3RoIikgaXMg
IjEzIgorUEFTUyB0ZXh0QXJlYS5tYXhMZW5ndGggaXMgMAorUEFTUyB0ZXh0QXJlYS5nZXRBdHRy
aWJ1dGUoIm1heGxlbmd0aCIpIGlzICIwIgogUEFTUyB0ZXh0QXJlYS52YWx1ZSBpcyAiYWJjZCIK
IFBBU1MgdGV4dEFyZWEudmFsdWUgaXMgImFiY2RlIgogUEFTUyB0ZXh0QXJlYS52YWx1ZSBpcyAi
YWJjIgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwpp
bmRleCA2Mzg0YjdhLi43ODE5MzZiIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysg
Yi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDA5LTA5LTI4ICBLZW50IFRh
bXVyYSAgPHRrZW50QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBGb2xsb3dzIEhUTUw1J3MgbWF4TGVuZ3RoIGNoYW5nZSBpbiBT
ZXB0ZW1iZXIgMjAwOS4KKyAgICAgICAgLSBDaGFuZ2UgSFRNTFRleHRBcmVhRWxlbWVudC5tYXhM
ZW5ndGggdHlwZSB0byBzaWduZWQuCisgICAgICAgIC0gSFRNTFRleHRBcmVhRWxlbWVudC5tYXhM
ZW5ndGggcmV0dXJucyAtMSBpZiBtYXhsZW5ndGg9IGF0dHJpYnV0ZSBpcyBtaXNzaW5nLgorICAg
ICAgICAtIEhUTUxUZXh0QXJlYUVsZW1lbnQubWF4TGVuZ3RoIGFuZCBIVE1MSW5wdXRFbGVtZW50
Lm1heExlbmd0aAorICAgICAgICAgIHRocm93IElOREVYX1NJWkVfRVJSIGZvciBzZXR0aW5nIG5l
Z2F0aXZlIHZhbHVlcy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTI5Nzk2CisKKyAgICAgICAgKiBodG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6c2V0TWF4TGVuZ3RoKToKKyAgICAgICAg
KiBodG1sL0hUTUxJbnB1dEVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxJbnB1dEVsZW1l
bnQuaWRsOgorICAgICAgICAqIGh0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MVGV4dEFyZWFFbGVtZW50OjpoYW5kbGVCZWZvcmVUZXh0SW5zZXJ0ZWRF
dmVudCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVGV4dEFyZWFFbGVtZW50OjptYXhMZW5ndGgp
OgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRleHRBcmVhRWxlbWVudDo6c2V0TWF4TGVuZ3RoKToK
KyAgICAgICAgKiBodG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hU
TUxUZXh0QXJlYUVsZW1lbnQuaWRsOgorCiAyMDA5LTA5LTI4ICBKaWFuIExpICA8amlhbmxpQGNo
cm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXZpZCBMZXZpbi4KZGlmZiAtLWdp
dCBhL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcCBiL1dlYkNvcmUvaHRtbC9IVE1M
SW5wdXRFbGVtZW50LmNwcAppbmRleCAwYWVmZTdmLi5lNmI4MjI4IDEwMDY0NAotLS0gYS9XZWJD
b3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxJbnB1
dEVsZW1lbnQuY3BwCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAiRXZlbnQuaCIKICNpbmNs
dWRlICJFdmVudEhhbmRsZXIuaCIKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCisjaW5jbHVkZSAi
RXhjZXB0aW9uQ29kZS5oIgogI2luY2x1ZGUgIkZpbGUuaCIKICNpbmNsdWRlICJGaWxlTGlzdC5o
IgogI2luY2x1ZGUgIkZvY3VzQ29udHJvbGxlci5oIgpAQCAtMTYwOSw5ICsxNjEwLDEyIEBAIGlu
dCBIVE1MSW5wdXRFbGVtZW50OjptYXhMZW5ndGgoKSBjb25zdAogICAgIHJldHVybiBtX2RhdGEu
bWF4TGVuZ3RoKCk7CiB9CiAKLXZvaWQgSFRNTElucHV0RWxlbWVudDo6c2V0TWF4TGVuZ3RoKGlu
dCBfbWF4TGVuZ3RoKQordm9pZCBIVE1MSW5wdXRFbGVtZW50OjpzZXRNYXhMZW5ndGgoaW50IF9t
YXhMZW5ndGgsIEV4Y2VwdGlvbkNvZGUmIGV4Y2VwdGlvbkNvZGUpCiB7Ci0gICAgc2V0QXR0cmli
dXRlKG1heGxlbmd0aEF0dHIsIFN0cmluZzo6bnVtYmVyKF9tYXhMZW5ndGgpKTsKKyAgICBpZiAo
X21heExlbmd0aCA8IDApCisgICAgICAgIGV4Y2VwdGlvbkNvZGUgPSBJTkRFWF9TSVpFX0VSUjsK
KyAgICBlbHNlCisgICAgICAgIHNldEF0dHJpYnV0ZShtYXhsZW5ndGhBdHRyLCBTdHJpbmc6Om51
bWJlcihfbWF4TGVuZ3RoKSk7CiB9CiAKIGJvb2wgSFRNTElucHV0RWxlbWVudDo6bXVsdGlwbGUo
KSBjb25zdApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaCBiL1dl
YkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKaW5kZXggNjNkMTYzNC4uMTZlM2I1OCAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaAorKysgYi9XZWJDb3JlL2h0
bWwvSFRNTElucHV0RWxlbWVudC5oCkBAIC0yMDEsNyArMjAxLDcgQEAgcHVibGljOgogI2VuZGlm
CiAKICAgICBpbnQgbWF4TGVuZ3RoKCkgY29uc3Q7Ci0gICAgdm9pZCBzZXRNYXhMZW5ndGgoaW50
KTsKKyAgICB2b2lkIHNldE1heExlbmd0aChpbnQsIEV4Y2VwdGlvbkNvZGUmKTsKIAogICAgIGJv
b2wgbXVsdGlwbGUoKSBjb25zdDsKICAgICB2b2lkIHNldE11bHRpcGxlKGJvb2wpOwpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaWRsIGIvV2ViQ29yZS9odG1sL0hU
TUxJbnB1dEVsZW1lbnQuaWRsCmluZGV4IDA3YmFiOTAuLjdjZGY0ODcgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmlkbAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTElu
cHV0RWxlbWVudC5pZGwKQEAgLTQyLDcgKzQyLDggQEAgbW9kdWxlIGh0bWwgewogI2lmIGRlZmlu
ZWQoRU5BQkxFX0RBVEFMSVNUKSAmJiBFTkFCTEVfREFUQUxJU1QKICAgICAgICAgcmVhZG9ubHkg
YXR0cmlidXRlIEhUTUxFbGVtZW50ICAgICBsaXN0OwogI2VuZGlmCi0gICAgICAgICAgICAgICAg
IGF0dHJpYnV0ZSBsb25nICAgICAgICAgICAgbWF4TGVuZ3RoOworICAgICAgICAgICAgICAgICBh
dHRyaWJ1dGUgbG9uZyAgICAgICAgICAgIG1heExlbmd0aAorICAgICAgICAgICAgICAgICAgICAg
c2V0dGVyIHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUg
Ym9vbGVhbiAgICAgICAgIG11bHRpcGxlOwogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0Nv
bnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgbmFtZTsKICAgICAgICAgICAgICAgICAg
YXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgICAgICAgcGF0dGVybjsKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmNwcCBiL1dlYkNvcmUvaHRtbC9IVE1M
VGV4dEFyZWFFbGVtZW50LmNwcAppbmRleCBmMzk4ZmMyLi5iNWU0Y2VkIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5jcHAKKysrIGIvV2ViQ29yZS9odG1sL0hU
TUxUZXh0QXJlYUVsZW1lbnQuY3BwCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiRG9jdW1l
bnQuaCIKICNpbmNsdWRlICJFdmVudC5oIgogI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKKyNpbmNs
dWRlICJFeGNlcHRpb25Db2RlLmgiCiAjaW5jbHVkZSAiRm9jdXNDb250cm9sbGVyLmgiCiAjaW5j
bHVkZSAiRm9ybURhdGFMaXN0LmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKQEAgLTI4MywxNiArMjg0
LDE2IEBAIHZvaWQgSFRNTFRleHRBcmVhRWxlbWVudDo6aGFuZGxlQmVmb3JlVGV4dEluc2VydGVk
RXZlbnQoQmVmb3JlVGV4dEluc2VydGVkRXZlbnQqCiB7CiAgICAgQVNTRVJUKGV2ZW50KTsKICAg
ICBBU1NFUlQocmVuZGVyZXIoKSk7Ci0gICAgYm9vbCBvazsKLSAgICB1bnNpZ25lZCBtYXhMZW5n
dGggPSBnZXRBdHRyaWJ1dGUobWF4bGVuZ3RoQXR0cikuc3RyaW5nKCkudG9VSW50KCZvayk7Ci0g
ICAgaWYgKCFvaykKKyAgICBpbnQgc2lnbmVkTWF4TGVuZ3RoID0gbWF4TGVuZ3RoKCk7CisgICAg
aWYgKHNpZ25lZE1heExlbmd0aCA8IDApCiAgICAgICAgIHJldHVybjsKKyAgICB1bnNpZ25lZCB1
bnNpZ25lZE1heExlbmd0aCA9IHN0YXRpY19jYXN0PHVuc2lnbmVkPihzaWduZWRNYXhMZW5ndGgp
OwogCiAgICAgdW5zaWduZWQgY3VycmVudExlbmd0aCA9IHRvUmVuZGVyVGV4dENvbnRyb2wocmVu
ZGVyZXIoKSktPnRleHQoKS5udW1HcmFwaGVtZUNsdXN0ZXJzKCk7CiAgICAgdW5zaWduZWQgc2Vs
ZWN0aW9uTGVuZ3RoID0gcGxhaW5UZXh0KGRvY3VtZW50KCktPmZyYW1lKCktPnNlbGVjdGlvbigp
LT5zZWxlY3Rpb24oKS50b05vcm1hbGl6ZWRSYW5nZSgpLmdldCgpKS5udW1HcmFwaGVtZUNsdXN0
ZXJzKCk7CiAgICAgQVNTRVJUKGN1cnJlbnRMZW5ndGggPj0gc2VsZWN0aW9uTGVuZ3RoKTsKICAg
ICB1bnNpZ25lZCBiYXNlTGVuZ3RoID0gY3VycmVudExlbmd0aCAtIHNlbGVjdGlvbkxlbmd0aDsK
LSAgICB1bnNpZ25lZCBhcHBlbmRhYmxlTGVuZ3RoID0gbWF4TGVuZ3RoID4gYmFzZUxlbmd0aCA/
IG1heExlbmd0aCAtIGJhc2VMZW5ndGggOiAwOworICAgIHVuc2lnbmVkIGFwcGVuZGFibGVMZW5n
dGggPSB1bnNpZ25lZE1heExlbmd0aCA+IGJhc2VMZW5ndGggPyB1bnNpZ25lZE1heExlbmd0aCAt
IGJhc2VMZW5ndGggOiAwOwogICAgIGV2ZW50LT5zZXRUZXh0KHNhbml0aXplVXNlcklucHV0VmFs
dWUoZXZlbnQtPnRleHQoKSwgYXBwZW5kYWJsZUxlbmd0aCkpOwogfQogCkBAIC00MDEsMTQgKzQw
MiwxOSBAQCB2b2lkIEhUTUxUZXh0QXJlYUVsZW1lbnQ6OnNldERlZmF1bHRWYWx1ZShjb25zdCBT
dHJpbmcmIGRlZmF1bHRWYWx1ZSkKICAgICBzZXRWYWx1ZSh2YWx1ZSk7CiB9CiAKLXVuc2lnbmVk
IEhUTUxUZXh0QXJlYUVsZW1lbnQ6Om1heExlbmd0aCgpIGNvbnN0CitpbnQgSFRNTFRleHRBcmVh
RWxlbWVudDo6bWF4TGVuZ3RoKCkgY29uc3QKIHsKLSAgICByZXR1cm4gZ2V0QXR0cmlidXRlKG1h
eGxlbmd0aEF0dHIpLnN0cmluZygpLnRvVUludCgpOworICAgIGJvb2wgb2s7CisgICAgaW50IHZh
bHVlID0gZ2V0QXR0cmlidXRlKG1heGxlbmd0aEF0dHIpLnN0cmluZygpLnRvSW50KCZvayk7Cisg
ICAgcmV0dXJuIG9rICYmIHZhbHVlID49IDAgPyB2YWx1ZSA6IC0xOwogfQogCi12b2lkIEhUTUxU
ZXh0QXJlYUVsZW1lbnQ6OnNldE1heExlbmd0aCh1bnNpZ25lZCBuZXdWYWx1ZSkKK3ZvaWQgSFRN
TFRleHRBcmVhRWxlbWVudDo6c2V0TWF4TGVuZ3RoKGludCBuZXdWYWx1ZSwgRXhjZXB0aW9uQ29k
ZSYgZXhjZXB0aW9uQ29kZSkKIHsKLSAgICBzZXRBdHRyaWJ1dGUobWF4bGVuZ3RoQXR0ciwgU3Ry
aW5nOjpudW1iZXIobmV3VmFsdWUpKTsKKyAgICBpZiAobmV3VmFsdWUgPCAwKQorICAgICAgICBl
eGNlcHRpb25Db2RlID0gSU5ERVhfU0laRV9FUlI7CisgICAgZWxzZQorICAgICAgICBzZXRBdHRy
aWJ1dGUobWF4bGVuZ3RoQXR0ciwgU3RyaW5nOjpudW1iZXIobmV3VmFsdWUpKTsKIH0KIAogdm9p
ZCBIVE1MVGV4dEFyZWFFbGVtZW50OjphY2Nlc3NLZXlBY3Rpb24oYm9vbCkKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmggYi9XZWJDb3JlL2h0bWwvSFRNTFRl
eHRBcmVhRWxlbWVudC5oCmluZGV4IGVmOTZmYzUuLmNmZDQ3MWEgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmgKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxUZXh0
QXJlYUVsZW1lbnQuaApAQCAtNzksOCArNzksOCBAQCBwdWJsaWM6CiAgICAgU3RyaW5nIGRlZmF1
bHRWYWx1ZSgpIGNvbnN0OwogICAgIHZvaWQgc2V0RGVmYXVsdFZhbHVlKGNvbnN0IFN0cmluZyYp
OwogICAgIGludCB0ZXh0TGVuZ3RoKCkgY29uc3QgeyByZXR1cm4gdmFsdWUoKS5sZW5ndGgoKTsg
fQotICAgIHVuc2lnbmVkIG1heExlbmd0aCgpIGNvbnN0OwotICAgIHZvaWQgc2V0TWF4TGVuZ3Ro
KHVuc2lnbmVkKTsKKyAgICBpbnQgbWF4TGVuZ3RoKCkgY29uc3Q7CisgICAgdm9pZCBzZXRNYXhM
ZW5ndGgoaW50LCBFeGNlcHRpb25Db2RlJik7CiAgICAgCiAgICAgdm9pZCByZW5kZXJlcldpbGxC
ZURlc3Ryb3llZCgpOwogICAgIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJl
YUVsZW1lbnQuaWRsIGIvV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuaWRsCmluZGV4
IDg0NTgzZjUuLmRiNTE1NGUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFF
bGVtZW50LmlkbAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5pZGwKQEAg
LTM0LDcgKzM0LDggQEAgbW9kdWxlIGh0bWwgewogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUg
IGxvbmcgICAgICAgICAgICAgICAgIGNvbHM7CiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSAg
Ym9vbGVhbiAgICAgICAgICAgICAgZGlzYWJsZWQ7CiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0
ZSAgYm9vbGVhbiAgICAgICAgICAgICAgYXV0b2ZvY3VzOwotICAgICAgICAgICAgICAgICBhdHRy
aWJ1dGUgIHVuc2lnbmVkIGxvbmcgICAgICAgIG1heExlbmd0aDsKKyAgICAgICAgICAgICAgICAg
YXR0cmlidXRlICBsb25nICAgICAgICAgICAgICAgICBtYXhMZW5ndGgKKyAgICAgICAgICAgICAg
ICAgICAgIHNldHRlciByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICAgICAgICAgICAgICAgYXR0
cmlidXRlICBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyAgICAgICAgICAgIG5h
bWU7CiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSAgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5n
LCBSZWZsZWN0XSBET01TdHJpbmcgICBwbGFjZWhvbGRlcjsKICAgICAgICAgICAgICAgICAgYXR0
cmlidXRlICBib29sZWFuICAgICAgICAgICAgICByZWFkT25seTsKLS0gCjEuNi4zLjMKCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>