<?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>38203</bug_id>
          
          <creation_ts>2010-04-27 10:27:36 -0700</creation_ts>
          <short_desc>Move number parsing code out of HTMLInputElement.</short_desc>
          <delta_ts>2010-05-01 05:12:32 -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>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>38140</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Yael">yael</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>aroben</cc>
    
    <cc>tkent</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>217770</commentid>
    <comment_count>0</comment_count>
    <who name="Yael">yael</who>
    <bug_when>2010-04-27 10:27:36 -0700</bug_when>
    <thetext>Move HTMLInputElement::parseToDoubleForNumberType and HTMLInputElement::serializeForNumberType to HTMLElement, so that other elements can reuse this code.
This was suggested in https://bugs.webkit.org/show_bug.cgi?id=38140#c12.
A patch is coming soon.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>217791</commentid>
    <comment_count>1</comment_count>
      <attachid>54432</attachid>
    <who name="Yael">yael</who>
    <bug_when>2010-04-27 11:00:17 -0700</bug_when>
    <thetext>Created attachment 54432
Patch.

This patch is simply moving the number handling methods from HTMLInputElement to HTMLElement.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>217854</commentid>
    <comment_count>2</comment_count>
      <attachid>54432</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-04-27 12:42:02 -0700</bug_when>
    <thetext>Comment on attachment 54432
Patch.

If we&apos;re going to move these, I suggest we make them non-member functions. I see no reason for these to be members of any DOM class.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>218125</commentid>
    <comment_count>3</comment_count>
      <attachid>54493</attachid>
    <who name="Yael">yael</who>
    <bug_when>2010-04-27 18:29:44 -0700</bug_when>
    <thetext>Created attachment 54493
Patch

Moved HTMLInputElement::parseToDoubleForNumberType to String::toDoubleStrict .</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>218606</commentid>
    <comment_count>4</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2010-04-28 13:47:17 -0700</bug_when>
    <thetext>Here are the errors on Windows:

13&gt;WebCore.lib(HTMLElementsAllInOne.obj) : error LNK2019: unresolved external symbol &quot;public: double __thiscall WebCore::String::toDoubleStrict(bool *)const &quot; (?toDoubleStrict@String@WebCore@@QBENPA_N@Z) referenced in function &quot;public: bool __thiscall WebCore::HTMLInputElement::stepMismatch(void)const &quot; (?stepMismatch@HTMLInputElement@WebCore@@QBE_NXZ)
13&gt;WebCore.lib(ValidityState.obj) : error LNK2001: unresolved external symbol &quot;public: double __thiscall WebCore::String::toDoubleStrict(bool *)const &quot; (?toDoubleStrict@String@WebCore@@QBENPA_N@Z)
13&gt;WebCore.lib(StepRange.obj) : error LNK2001: unresolved external symbol &quot;public: double __thiscall WebCore::String::toDoubleStrict(bool *)const &quot; (?toDoubleStrict@String@WebCore@@QBENPA_N@Z)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>218635</commentid>
    <comment_count>5</comment_count>
    <who name="Yael">yael</who>
    <bug_when>2010-04-28 14:22:22 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; Here are the errors on Windows:
&gt; 
&gt; 13&gt;WebCore.lib(HTMLElementsAllInOne.obj) : error LNK2019: unresolved external
&gt; symbol &quot;public: double __thiscall WebCore::String::toDoubleStrict(bool *)const
&gt; &quot; (?toDoubleStrict@String@WebCore@@QBENPA_N@Z) referenced in function &quot;public:
&gt; bool __thiscall WebCore::HTMLInputElement::stepMismatch(void)const &quot;
&gt; (?stepMismatch@HTMLInputElement@WebCore@@QBE_NXZ)
&gt; 13&gt;WebCore.lib(ValidityState.obj) : error LNK2001: unresolved external symbol
&gt; &quot;public: double __thiscall WebCore::String::toDoubleStrict(bool *)const &quot;
&gt; (?toDoubleStrict@String@WebCore@@QBENPA_N@Z)
&gt; 13&gt;WebCore.lib(StepRange.obj) : error LNK2001: unresolved external symbol
&gt; &quot;public: double __thiscall WebCore::String::toDoubleStrict(bool *)const &quot;
&gt; (?toDoubleStrict@String@WebCore@@QBENPA_N@Z)

Thank you for your help, Adam!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>218636</commentid>
    <comment_count>6</comment_count>
      <attachid>54620</attachid>
    <who name="Yael">yael</who>
    <bug_when>2010-04-28 14:23:49 -0700</bug_when>
    <thetext>Created attachment 54620
Update the JavaScriptCore.def for the new function.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>218689</commentid>
    <comment_count>7</comment_count>
      <attachid>54620</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-04-28 16:14:49 -0700</bug_when>
    <thetext>Comment on attachment 54620
Update the JavaScriptCore.def for the new function.

I don&apos;t think that parsing a number in a way that is right for HTML is something that necessarily belongs in WTF. The particular strictness here is tied to HTML semantics. I think that having this be somewhere inside the WebCore project makes sense. I just don&apos;t think it should be a member function of a class. Not of any class, including String.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>218706</commentid>
    <comment_count>8</comment_count>
    <who name="Yael">yael</who>
    <bug_when>2010-04-28 17:23:28 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (From update of attachment 54620 [details])
&gt; I don&apos;t think that parsing a number in a way that is right for HTML is
&gt; something that necessarily belongs in WTF. The particular strictness here is
&gt; tied to HTML semantics. I think that having this be somewhere inside the
&gt; WebCore project makes sense. I just don&apos;t think it should be a member function
&gt; of a class. Not of any class, including String.

Thank you for the review.
I am thinking that the best place would probably be in HTMLElement, but not as a member.
Would you agree?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>219012</commentid>
    <comment_count>9</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-04-29 07:16:36 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; (In reply to comment #7)
&gt; &gt; (From update of attachment 54620 [details] [details])
&gt; &gt; I don&apos;t think that parsing a number in a way that is right for HTML is
&gt; &gt; something that necessarily belongs in WTF. The particular strictness here is
&gt; &gt; tied to HTML semantics. I think that having this be somewhere inside the
&gt; &gt; WebCore project makes sense. I just don&apos;t think it should be a member function
&gt; &gt; of a class. Not of any class, including String.
&gt; 
&gt; Thank you for the review.
&gt; I am thinking that the best place would probably be in HTMLElement, but not as
&gt; a member.
&gt; Would you agree?

Moving to HTMLParser might be another choice, but it would be curious because we should move serializeForNumberType(double) too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>219189</commentid>
    <comment_count>10</comment_count>
    <who name="Yael">yael</who>
    <bug_when>2010-04-29 14:35:34 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; Moving to HTMLParser might be another choice, but it would be curious because
&gt; we should move serializeForNumberType(double) too.
Thanks Kent, I should move both methods to the HTMLParser.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>219241</commentid>
    <comment_count>11</comment_count>
      <attachid>54750</attachid>
    <who name="Yael">yael</who>
    <bug_when>2010-04-29 16:08:13 -0700</bug_when>
    <thetext>Created attachment 54750
Patch. Based on comment #9.

Moved the code to HTMLparser as suggested in comment #9.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>219714</commentid>
    <comment_count>12</comment_count>
    <who name="Yael">yael</who>
    <bug_when>2010-05-01 05:11:51 -0700</bug_when>
    <thetext>Committed r58635: &lt;http://trac.webkit.org/changeset/58635&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>54432</attachid>
            <date>2010-04-27 11:00:17 -0700</date>
            <delta_ts>2010-04-27 18:29:44 -0700</delta_ts>
            <desc>Patch.</desc>
            <filename>38203.patch</filename>
            <type>text/plain</type>
            <size>6386</size>
            <attacher name="Yael">yael</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1ODMxNCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTkgQEAKKzIwMTAtMDQtMjcgIFlhZWwgQWhhcm9uICA8eWFlbC5haGFyb25Abm9r
aWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IE1vdmUgbnVtYmVyIGhhbmRsaW5nIGNvZGUgZnJvbSBIVE1MSW5wdXRFbGVtZW50IHRvIEhUTUxF
bGVtZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0z
ODIwMworCisgICAgICAgIE5vIG5ldyB0ZXN0c2FzIG5vIG5ldyBmdW5jdGlvbmFsaXR5IHdhcyBp
bnRyb2R1Y2VkLgorCisgICAgICAgICogaHRtbC9IVE1MRWxlbWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MRWxlbWVudDo6c2VyaWFsaXplRm9yTnVtYmVyVHlwZSk6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MRWxlbWVudDo6cGFyc2VUb0RvdWJsZUZvck51bWJlclR5cGUpOgorICAgICAg
ICAqIGh0bWwvSFRNTEVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxJbnB1dEVsZW1lbnQu
Y3BwOgorICAgICAgICAqIGh0bWwvSFRNTElucHV0RWxlbWVudC5oOgorCiAyMDEwLTA0LTI3ICBK
b3NlcGggUGVjb3Jhcm8gIDxqb2VwZWNrQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgRGFuIEJlcm5zdGVpbi4KSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcAkocmV2aXNpb24gNTgzMTEp
CisrKyBXZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00Nyw2
ICs0Nyw3IEBACiAjaW5jbHVkZSAiVGV4dEl0ZXJhdG9yLmgiCiAjaW5jbHVkZSAiWE1MVG9rZW5p
emVyLmgiCiAjaW5jbHVkZSAibWFya3VwLmgiCisjaW5jbHVkZSA8d3RmL2R0b2EuaD4KICNpbmNs
dWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTYxMCw2
ICs2MTEsNDIgQEAgdm9pZCBIVE1MRWxlbWVudDo6YWRkSFRNTEFsaWdubWVudFRvU3R5bAogICAg
ICAgICBlbGVtZW50LT5hZGRDU1NQcm9wZXJ0eShhdHRyLCBDU1NQcm9wZXJ0eVZlcnRpY2FsQWxp
Z24sIHZlcnRpY2FsQWxpZ25WYWx1ZSk7CiB9CiAKK1N0cmluZyBIVE1MRWxlbWVudDo6c2VyaWFs
aXplRm9yTnVtYmVyVHlwZShkb3VibGUgbnVtYmVyKQoreworICAgIC8vIEFjY29yZGluZyB0byBI
VE1MNSwgInRoZSBiZXN0IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBudW1iZXIgbiBhcyBhIGZsb2F0
aW5nCisgICAgLy8gcG9pbnQgbnVtYmVyIiBpcyBhIHN0cmluZyBwcm9kdWNlZCBieSBhcHBseWlu
ZyBUb1N0cmluZygpIHRvIG4uCisgICAgRHRvYUJ1ZmZlciBidWZmZXI7CisgICAgdW5zaWduZWQg
bGVuZ3RoOworICAgIGRvdWJsZVRvU3RyaW5nSW5KYXZhU2NyaXB0Rm9ybWF0KG51bWJlciwgYnVm
ZmVyLCAmbGVuZ3RoKTsKKyAgICByZXR1cm4gU3RyaW5nKGJ1ZmZlciwgbGVuZ3RoKTsKK30KKwor
Ym9vbCBIVE1MRWxlbWVudDo6cGFyc2VUb0RvdWJsZUZvck51bWJlclR5cGUoY29uc3QgU3RyaW5n
JiBzcmMsIGRvdWJsZSogb3V0KQoreworICAgIC8vIFNlZSBIVE1MNSAyLjQuNC4zIGBSZWFsIG51
bWJlcnMuJworCisgICAgaWYgKHNyYy5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICAvLyBTdHJpbmc6OnRvRG91YmxlKCkgYWNjZXB0cyBsZWFkaW5nICsgXHQgXG4gXHYgXGYg
XHIgYW5kIFNQQUNFLCB3aGljaCBhcmUgaW52YWxpZCBpbiBIVE1MNS4KKyAgICAvLyBTbywgY2hl
Y2sgdGhlIGZpcnN0IGNoYXJhY3Rlci4KKyAgICBpZiAoc3JjWzBdICE9ICctJyAmJiAoc3JjWzBd
IDwgJzAnIHx8IHNyY1swXSA+ICc5JykpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGJv
b2wgdmFsaWQgPSBmYWxzZTsKKyAgICBkb3VibGUgdmFsdWUgPSBzcmMudG9Eb3VibGUoJnZhbGlk
KTsKKyAgICBpZiAoIXZhbGlkKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgLy8gTmFOIGFu
ZCBJbmZpbml0eSBhcmUgbm90IHZhbGlkIG51bWJlcnMgYWNjb3JkaW5nIHRvIHRoZSBzdGFuZGFy
ZC4KKyAgICBpZiAoIWlzZmluaXRlKHZhbHVlKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
IC8vIC0wIC0+IDAKKyAgICBpZiAoIXZhbHVlKQorICAgICAgICB2YWx1ZSA9IDA7CisgICAgaWYg
KG91dCkKKyAgICAgICAgKm91dCA9IHZhbHVlOworICAgIHJldHVybiB0cnVlOworfQorCiBib29s
IEhUTUxFbGVtZW50OjpzdXBwb3J0c0ZvY3VzKCkgY29uc3QKIHsKICAgICByZXR1cm4gRWxlbWVu
dDo6c3VwcG9ydHNGb2N1cygpIHx8IChpc0NvbnRlbnRFZGl0YWJsZSgpICYmIHBhcmVudCgpICYm
ICFwYXJlbnQoKS0+aXNDb250ZW50RWRpdGFibGUoKSk7CkluZGV4OiBXZWJDb3JlL2h0bWwvSFRN
TEVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuaAkocmV2
aXNpb24gNTgzMTEpCisrKyBXZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuaAkod29ya2luZyBjb3B5
KQpAQCAtODEsNiArODEsMTQgQEAgcHVibGljOgogCiAgICAgc3RhdGljIHZvaWQgYWRkSFRNTEFs
aWdubWVudFRvU3R5bGVkRWxlbWVudChTdHlsZWRFbGVtZW50KiwgTWFwcGVkQXR0cmlidXRlKik7
CiAKKyAgICAvLyBDb252ZXJ0cyB0aGUgc3BlY2lmaWVkIHN0cmluZyB0byBhIGZsb2F0aW5nIG51
bWJlci4KKyAgICAvLyBJZiB0aGUgY29udmVyc2lvbiBmYWlscywgdGhlIHJldHVybiB2YWx1ZSBp
cyBmYWxzZS4gVGFrZSBjYXJlIHRoYXQgbGVhZGluZyBvciB0cmFpbGluZyB1bm5lY2Vzc2FyeSBj
aGFyYWN0ZXJzIG1ha2UgZmFpbHVyZXMuICBUaGlzIHJldHVybnMgZmFsc2UgZm9yIGFuIGVtcHR5
IHN0cmluZyBpbnB1dC4KKyAgICAvLyBUaGUgZG91YmxlKiBwYXJhbWV0ZXIgbWF5IGJlIDAuCisg
ICAgc3RhdGljIGJvb2wgcGFyc2VUb0RvdWJsZUZvck51bWJlclR5cGUoY29uc3QgU3RyaW5nJiwg
ZG91YmxlKik7CisgICAgLy8gQ29udmVydHMgdGhlIHNwZWNpZmllZCBudW1iZXIgdG8gYSBzdHJp
bmcuIFRoaXMgaXMgYW4gaW1wbGVtZW50YXRpb24gb2YKKyAgICAvLyBIVE1MNSdzICJhbGdvcml0
aG0gdG8gY29udmVydCBhIG51bWJlciB0byBhIHN0cmluZyIgZm9yIE5VTUJFUi9SQU5HRSB0eXBl
cy4KKyAgICBzdGF0aWMgU3RyaW5nIHNlcmlhbGl6ZUZvck51bWJlclR5cGUoZG91YmxlKTsKKwog
cHJvdGVjdGVkOgogICAgIEhUTUxFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUs
IERvY3VtZW50KiwgQ29uc3RydWN0aW9uVHlwZSA9IENyZWF0ZUVsZW1lbnRaZXJvUmVmQ291bnQp
OwogCkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCShyZXZpc2lvbiA1ODMxMSkKKysr
IFdlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjYy
OSw0MiArMjYyOSw2IEBAIGJvb2wgSFRNTElucHV0RWxlbWVudDo6cmVjYWxjV2lsbFZhbGlkYXQK
ICAgICAgICAgJiYgaW5wdXRUeXBlKCkgIT0gSElEREVOICYmIGlucHV0VHlwZSgpICE9IEJVVFRP
TiAmJiBpbnB1dFR5cGUoKSAhPSBSRVNFVDsKIH0KIAotU3RyaW5nIEhUTUxJbnB1dEVsZW1lbnQ6
OnNlcmlhbGl6ZUZvck51bWJlclR5cGUoZG91YmxlIG51bWJlcikKLXsKLSAgICAvLyBBY2NvcmRp
bmcgdG8gSFRNTDUsICJ0aGUgYmVzdCByZXByZXNlbnRhdGlvbiBvZiB0aGUgbnVtYmVyIG4gYXMg
YSBmbG9hdGluZwotICAgIC8vIHBvaW50IG51bWJlciIgaXMgYSBzdHJpbmcgcHJvZHVjZWQgYnkg
YXBwbHlpbmcgVG9TdHJpbmcoKSB0byBuLgotICAgIER0b2FCdWZmZXIgYnVmZmVyOwotICAgIHVu
c2lnbmVkIGxlbmd0aDsKLSAgICBkb3VibGVUb1N0cmluZ0luSmF2YVNjcmlwdEZvcm1hdChudW1i
ZXIsIGJ1ZmZlciwgJmxlbmd0aCk7Ci0gICAgcmV0dXJuIFN0cmluZyhidWZmZXIsIGxlbmd0aCk7
Ci19Ci0KLWJvb2wgSFRNTElucHV0RWxlbWVudDo6cGFyc2VUb0RvdWJsZUZvck51bWJlclR5cGUo
Y29uc3QgU3RyaW5nJiBzcmMsIGRvdWJsZSogb3V0KQotewotICAgIC8vIFNlZSBIVE1MNSAyLjQu
NC4zIGBSZWFsIG51bWJlcnMuJwotCi0gICAgaWYgKHNyYy5pc0VtcHR5KCkpCi0gICAgICAgIHJl
dHVybiBmYWxzZTsKLSAgICAvLyBTdHJpbmc6OnRvRG91YmxlKCkgYWNjZXB0cyBsZWFkaW5nICsg
XHQgXG4gXHYgXGYgXHIgYW5kIFNQQUNFLCB3aGljaCBhcmUgaW52YWxpZCBpbiBIVE1MNS4KLSAg
ICAvLyBTbywgY2hlY2sgdGhlIGZpcnN0IGNoYXJhY3Rlci4KLSAgICBpZiAoc3JjWzBdICE9ICct
JyAmJiAoc3JjWzBdIDwgJzAnIHx8IHNyY1swXSA+ICc5JykpCi0gICAgICAgIHJldHVybiBmYWxz
ZTsKLQotICAgIGJvb2wgdmFsaWQgPSBmYWxzZTsKLSAgICBkb3VibGUgdmFsdWUgPSBzcmMudG9E
b3VibGUoJnZhbGlkKTsKLSAgICBpZiAoIXZhbGlkKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0g
ICAgLy8gTmFOIGFuZCBJbmZpbml0eSBhcmUgbm90IHZhbGlkIG51bWJlcnMgYWNjb3JkaW5nIHRv
IHRoZSBzdGFuZGFyZC4KLSAgICBpZiAoIWlzZmluaXRlKHZhbHVlKSkKLSAgICAgICAgcmV0dXJu
IGZhbHNlOwotICAgIC8vIC0wIC0+IDAKLSAgICBpZiAoIXZhbHVlKQotICAgICAgICB2YWx1ZSA9
IDA7Ci0gICAgaWYgKG91dCkKLSAgICAgICAgKm91dCA9IHZhbHVlOwotICAgIHJldHVybiB0cnVl
OwotfQotCiBib29sIEhUTUxJbnB1dEVsZW1lbnQ6OnBhcnNlVG9EYXRlQ29tcG9uZW50cyhJbnB1
dFR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiBmb3JtU3RyaW5nLCBEYXRlQ29tcG9uZW50cyogb3V0
KQogewogICAgIGlmIChmb3JtU3RyaW5nLmlzRW1wdHkoKSkKSW5kZXg6IFdlYkNvcmUvaHRtbC9I
VE1MSW5wdXRFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVs
ZW1lbnQuaAkocmV2aXNpb24gNTgzMTEpCisrKyBXZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVu
dC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNjEsMTMgKzI2MSw2IEBAIHB1YmxpYzoKIAogICAgIHZp
cnR1YWwgdm9pZCBhZGRTdWJyZXNvdXJjZUF0dHJpYnV0ZVVSTHMoTGlzdEhhc2hTZXQ8S1VSTD4m
KSBjb25zdDsKICAgICAKLSAgICAvLyBDb252ZXJ0cyB0aGUgc3BlY2lmaWVkIHN0cmluZyB0byBh
IGZsb2F0aW5nIG51bWJlci4KLSAgICAvLyBJZiB0aGUgY29udmVyc2lvbiBmYWlscywgdGhlIHJl
dHVybiB2YWx1ZSBpcyBmYWxzZS4gVGFrZSBjYXJlIHRoYXQgbGVhZGluZyBvciB0cmFpbGluZyB1
bm5lY2Vzc2FyeSBjaGFyYWN0ZXJzIG1ha2UgZmFpbHVyZXMuICBUaGlzIHJldHVybnMgZmFsc2Ug
Zm9yIGFuIGVtcHR5IHN0cmluZyBpbnB1dC4KLSAgICAvLyBUaGUgZG91YmxlKiBwYXJhbWV0ZXIg
bWF5IGJlIDAuCi0gICAgc3RhdGljIGJvb2wgcGFyc2VUb0RvdWJsZUZvck51bWJlclR5cGUoY29u
c3QgU3RyaW5nJiwgZG91YmxlKik7Ci0gICAgLy8gQ29udmVydHMgdGhlIHNwZWNpZmllZCBudW1i
ZXIgdG8gYSBzdHJpbmcuIFRoaXMgaXMgYW4gaW1wbGVtZW50YXRpb24gb2YKLSAgICAvLyBIVE1M
NSdzICJhbGdvcml0aG0gdG8gY29udmVydCBhIG51bWJlciB0byBhIHN0cmluZyIgZm9yIE5VTUJF
Ui9SQU5HRSB0eXBlcy4KLSAgICBzdGF0aWMgU3RyaW5nIHNlcmlhbGl6ZUZvck51bWJlclR5cGUo
ZG91YmxlKTsKICAgICAvLyBQYXJzZXMgdGhlIHNwZWNpZmllZCBzdHJpbmcgYXMgdGhlIElucHV0
VHlwZSwgYW5kIHJldHVybnMgdHJ1ZSBpZiBpdCBpcyBzdWNjZXNzZnVsbHkgcGFyc2VkLgogICAg
IC8vIEFuIGluc3RhbmNlIHBvaW50ZWQgYnkgdGhlIERhdGVDb21wb25lbnRzKiBwYXJhbWV0ZXIg
d2lsbCBoYXZlIHBhcnNlZCB2YWx1ZXMgYW5kIGJlCiAgICAgLy8gbW9kaWZpZWQgZXZlbiBpZiB0
aGUgcGFyc2luZyBmYWlscy4gIFRoZSBEYXRlQ29tcG9uZW50cyogcGFyYW1ldGVyIG1heSBiZSAw
Lgo=
</data>
<flag name="review"
          id="38412"
          type_id="1"
          status="-"
          setter="darin"
    />
    <flag name="commit-queue"
          id="38413"
          type_id="3"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>54493</attachid>
            <date>2010-04-27 18:29:44 -0700</date>
            <delta_ts>2010-04-28 14:23:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>38203.patch</filename>
            <type>text/plain</type>
            <size>9701</size>
            <attacher name="Yael">yael</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDU4MzYxKQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTAtMDQtMjcgIHlhZWwgYWhh
cm9uICA8eWFlbC5haGFyb25Abm9raWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIE1vdmUgSFRNTElucHV0RWxlbWVudDo6cGFyc2VUb0RvdWJs
ZUZvck51bWJlclR5cGUgc28gaXQgY2FuIGJlIHJldXNlZCBvdXRzaWRlIG9mIEhUTUxJbnB1dEVs
ZW1lbnQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0z
ODIwMworCisgICAgICAgIFJlcGxhY2VkIEhUTUxJbnB1dEVsZW1lbnQ6OnBhcnNlVG9Eb3VibGVG
b3JOdW1iZXJUeXBlIHdpdGggU3RyaW5nOjp0b0RvdWJsZVN0cmljdC4KKworICAgICAgICAqIEph
dmFTY3JpcHRDb3JlLmV4cDoKKyAgICAgICAgKiB3dGYvdGV4dC9XVEZTdHJpbmcuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U3RyaW5nOjp0b0RvdWJsZVN0cmljdCk6CisgICAgICAgICogd3RmL3Rl
eHQvV1RGU3RyaW5nLmg6CisKIDIwMTAtMDQtMjcgIFN0ZXBoYW5pZSBMZXdpcyAgPHNsZXdpc0Bh
cHBsZS5jb20+CiAKICAgICAgICAgRml4IFRpZ2VyIGJ1aWxkLgpJbmRleDogSmF2YVNjcmlwdENv
cmUvSmF2YVNjcmlwdENvcmUuZXhwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlL0phdmFT
Y3JpcHRDb3JlLmV4cAkocmV2aXNpb24gNTgzNTApCisrKyBKYXZhU2NyaXB0Q29yZS9KYXZhU2Ny
aXB0Q29yZS5leHAJKHdvcmtpbmcgY29weSkKQEAgLTUxOCw2ICs1MTgsNyBAQCBfX1pOSzdXZWJD
b3JlNlN0cmluZzEwY2hhcmFjdGVyc0V2CiBfX1pOSzdXZWJDb3JlNlN0cmluZzExdG9JbnRTdHJp
Y3RFUGJpCiBfX1pOSzdXZWJDb3JlNlN0cmluZzEydG9VSW50U3RyaWN0RVBiaQogX19aTks3V2Vi
Q29yZTZTdHJpbmcxNHRocmVhZHNhZmVDb3B5RXYKK19fWk5LN1dlYkNvcmU2U3RyaW5nMTR0b0Rv
dWJsZVN0cmljdEVQYgogX19aTks3V2ViQ29yZTZTdHJpbmcxNXN0cmlwV2hpdGVTcGFjZUV2CiBf
X1pOSzdXZWJDb3JlNlN0cmluZzE2cmVtb3ZlQ2hhcmFjdGVyc0VQRmJ0RQogX19aTks3V2ViQ29y
ZTZTdHJpbmcxN2Nyb3NzVGhyZWFkU3RyaW5nRXYKSW5kZXg6IEphdmFTY3JpcHRDb3JlL3d0Zi90
ZXh0L1dURlN0cmluZy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUvd3RmL3RleHQv
V1RGU3RyaW5nLmNwcAkocmV2aXNpb24gNTgzNTApCisrKyBKYXZhU2NyaXB0Q29yZS93dGYvdGV4
dC9XVEZTdHJpbmcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNSw2ICsyNSw3IEBACiAjaW5jbHVk
ZSA8bGltaXRzPgogI2luY2x1ZGUgPHN0ZGFyZy5oPgogI2luY2x1ZGUgPHd0Zi9BU0NJSUNUeXBl
Lmg+CisjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3Ry
aW5nLmg+CiAjaW5jbHVkZSA8d3RmL1N0cmluZ0V4dHJhcy5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0
b3IuaD4KQEAgLTUwNiw2ICs1MDcsMzMgQEAgaW50cHRyX3QgU3RyaW5nOjp0b0ludFB0clN0cmlj
dChib29sKiBvawogICAgIHJldHVybiBtX2ltcGwtPnRvSW50UHRyU3RyaWN0KG9rLCBiYXNlKTsK
IH0KIAorZG91YmxlIFN0cmluZzo6dG9Eb3VibGVTdHJpY3QoYm9vbCogb2spIGNvbnN0Cit7Cisg
ICAgLy8gSW1wbGVtZW50IEhUTUw1IDIuNC40LjMgYFJlYWwgbnVtYmVycy4nCisgICAgaWYgKG9r
KQorICAgICAgICAqb2sgPSBmYWxzZTsKKyAgICBpZiAoaXNFbXB0eSgpKQorICAgICAgICByZXR1
cm4gMDsKKyAgICAvLyB0b0RvdWJsZSgpIGFjY2VwdHMgbGVhZGluZyArIFx0IFxuIFx2IFxmIFxy
IGFuZCBTUEFDRSwgd2hpY2ggYXJlIGludmFsaWQgaW4gSFRNTDUuCisgICAgLy8gU28sIGNoZWNr
IHRoZSBmaXJzdCBjaGFyYWN0ZXIuCisgICAgY29uc3QgVUNoYXIqIGNoYXJhY3RlcnMgPSB0aGlz
LT5jaGFyYWN0ZXJzKCk7CisgICAgaWYgKGNoYXJhY3RlcnNbMF0gIT0gJy0nICYmIChjaGFyYWN0
ZXJzWzBdIDwgJzAnIHx8IGNoYXJhY3RlcnNbMF0gPiAnOScpKQorICAgICAgICByZXR1cm4gMDsK
KworICAgIGJvb2wgdmFsaWQgPSBmYWxzZTsKKyAgICBkb3VibGUgdmFsdWUgPSB0b0RvdWJsZSgm
dmFsaWQpOworICAgIGlmICghdmFsaWQpCisgICAgICAgIHJldHVybiAwOworICAgIC8vIE5hTiBh
bmQgSW5maW5pdHkgYXJlIG5vdCB2YWxpZCBudW1iZXJzIGFjY29yZGluZyB0byB0aGUgc3RhbmRh
cmQuCisgICAgaWYgKCFpc2Zpbml0ZSh2YWx1ZSkpCisgICAgICAgIHJldHVybiAwOworICAgIC8v
IC0wIC0+IDAKKyAgICBpZiAoIXZhbHVlKQorICAgICAgICB2YWx1ZSA9IDA7CisgICAgaWYgKG9r
KQorICAgICAgICAqb2sgPSB0cnVlOworICAgIHJldHVybiB2YWx1ZTsKK30KIAogaW50IFN0cmlu
Zzo6dG9JbnQoYm9vbCogb2spIGNvbnN0CiB7CkluZGV4OiBKYXZhU2NyaXB0Q29yZS93dGYvdGV4
dC9XVEZTdHJpbmcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS93dGYvdGV4dC9XVEZT
dHJpbmcuaAkocmV2aXNpb24gNTgzNTApCisrKyBKYXZhU2NyaXB0Q29yZS93dGYvdGV4dC9XVEZT
dHJpbmcuaAkod29ya2luZyBjb3B5KQpAQCAtMTk2LDYgKzE5Niw5IEBAIHB1YmxpYzoKICAgICB1
aW50NjRfdCB0b1VJbnQ2NFN0cmljdChib29sKiBvayA9IDAsIGludCBiYXNlID0gMTApIGNvbnN0
OwogICAgIGludHB0cl90IHRvSW50UHRyU3RyaWN0KGJvb2wqIG9rID0gMCwgaW50IGJhc2UgPSAx
MCkgY29uc3Q7CiAKKyAgICAvLyBDb252ZXJ0cyB0aGUgc3RyaW5nIHRvIGEgZmxvYXRpbmcgbnVt
YmVyLiBVbm5lY2Vzc2FyeSBsZWFkaW5nIG9yIHRyYWlsaW5nIGNoYXJhY3RlcnMsIGFzIHdlbGwg
YXMgZW1wdHkgc3RyaW5nLCBhcmUgdHJlYXRlZCBhcyBmYWlsdXJlLgorICAgIGRvdWJsZSB0b0Rv
dWJsZVN0cmljdChib29sKiBvaykgY29uc3Q7CisKICAgICBpbnQgdG9JbnQoYm9vbCogb2sgPSAw
KSBjb25zdDsKICAgICB1bnNpZ25lZCB0b1VJbnQoYm9vbCogb2sgPSAwKSBjb25zdDsKICAgICBp
bnQ2NF90IHRvSW50NjQoYm9vbCogb2sgPSAwKSBjb25zdDsKSW5kZXg6IFdlYkNvcmUvQ2hhbmdl
TG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiA1ODM2MSkKKysr
IFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTAt
MDQtMjcgIHlhZWwgYWhhcm9uICA8eWFlbC5haGFyb25Abm9raWEuY29tPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1vdmUgSFRNTElucHV0RWxlbWVu
dDo6cGFyc2VUb0RvdWJsZUZvck51bWJlclR5cGUgc28gaXQgY2FuIGJlIHJldXNlZCBvdXRzaWRl
IG9mIEhUTUxJbnB1dEVsZW1lbnQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0zODIwMworCisgICAgICAgIFJlcGxhY2VkIEhUTUxJbnB1dEVsZW1lbnQ6
OnBhcnNlVG9Eb3VibGVGb3JOdW1iZXJUeXBlIHdpdGggU3RyaW5nOjp0b0RvdWJsZVN0cmljdC4K
KyAgICAgICAgTm8gbmV3IHRlc3RzIGFzIG5vIG5ldyBmdW5jdGlvbmFsaXR5IHdhcyBpbnRyb2R1
Y2VkLgorCisgICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6OnN0ZXBNaXNtYXRjaCk6CisgICAgICAgIChXZWJDb3Jl
OjpIVE1MSW5wdXRFbGVtZW50OjpnZXRBbGxvd2VkVmFsdWVTdGVwKToKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxJbnB1dEVsZW1lbnQ6OnBhcnNlVG9Eb3VibGUpOgorICAgICAgICAqIGh0bWwvSFRN
TElucHV0RWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvU3RlcFJhbmdlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlN0ZXBSYW5nZTo6Y2xhbXBWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpTdGVw
UmFuZ2U6OnZhbHVlRnJvbUVsZW1lbnQpOgorICAgICAgICAqIGh0bWwvVmFsaWRpdHlTdGF0ZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpWYWxpZGl0eVN0YXRlOjp0eXBlTWlzbWF0Y2gpOgorCiAy
MDEwLTA0LTI3ICBKb2NoZW4gRWlzaW5nZXIgIDxqb2NoZW5AY2hyb21pdW0ub3JnPgogCiAgICAg
ICAgIFJldmlld2VkIGJ5IFNoaW5pY2hpcm8gSGFtYWppLgpJbmRleDogV2ViQ29yZS9odG1sL0hU
TUxJbnB1dEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MSW5wdXRF
bGVtZW50LmNwcAkocmV2aXNpb24gNTgzNTApCisrKyBXZWJDb3JlL2h0bWwvSFRNTElucHV0RWxl
bWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUwMCw4ICs1MDAsOSBAQCBib29sIEhUTUxJbnB1
dEVsZW1lbnQ6OnN0ZXBNaXNtYXRjaCgpIGNvCiAgICAgICAgIC8vIG9mIHRoZSBnZW5lcmFsIGNh
c2UuCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBjYXNlIE5VTUJFUjogewotICAgICAgICBk
b3VibGUgZG91YmxlVmFsdWU7Ci0gICAgICAgIGlmICghcGFyc2VUb0RvdWJsZUZvck51bWJlclR5
cGUodmFsdWUoKSwgJmRvdWJsZVZhbHVlKSkKKyAgICAgICAgYm9vbCBvazsKKyAgICAgICAgZG91
YmxlIGRvdWJsZVZhbHVlID0gdmFsdWUoKS50b0RvdWJsZVN0cmljdCgmb2spOworICAgICAgICBp
ZiAoIW9rKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICBkb3VibGVWYWx1ZSA9
IGZhYnMoZG91YmxlVmFsdWUgLSBzdGVwQmFzZSgpKTsKICAgICAgICAgaWYgKGlzaW5mKGRvdWJs
ZVZhbHVlKSkKQEAgLTYyMSw4ICs2MjIsOSBAQCBib29sIEhUTUxJbnB1dEVsZW1lbnQ6OmdldEFs
bG93ZWRWYWx1ZVN0CiAgICAgfQogICAgIGlmIChlcXVhbElnbm9yaW5nQ2FzZShzdGVwU3RyaW5n
LCAiYW55IikpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBkb3VibGUgcGFyc2VkOwotICAg
IGlmICghcGFyc2VUb0RvdWJsZUZvck51bWJlclR5cGUoc3RlcFN0cmluZywgJnBhcnNlZCkgfHwg
cGFyc2VkIDw9IDAuMCkgeworICAgIGJvb2wgb2s7CisgICAgZG91YmxlIHBhcnNlZCA9IHN0ZXBT
dHJpbmcuc3RyaW5nKCkudG9Eb3VibGVTdHJpY3QoJm9rKTsKKyAgICBpZiAoIW9rIHx8IHBhcnNl
ZCA8PSAwLjApIHsKICAgICAgICAgKnN0ZXAgPSBkZWZhdWx0U3RlcCAqIHN0ZXBTY2FsZUZhY3Rv
cjsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQpAQCAtMTYyMiw4ICsxNjI0LDkgQEAgZG91
YmxlIEhUTUxJbnB1dEVsZW1lbnQ6OnBhcnNlVG9Eb3VibGUoYwogICAgIH0KICAgICBjYXNlIE5V
TUJFUjoKICAgICBjYXNlIFJBTkdFOiB7Ci0gICAgICAgIGRvdWJsZSBudW1iZXJWYWx1ZTsKLSAg
ICAgICAgaWYgKCFwYXJzZVRvRG91YmxlRm9yTnVtYmVyVHlwZShzcmMsICZudW1iZXJWYWx1ZSkp
CisgICAgICAgIGJvb2wgb2s7CisgICAgICAgIGRvdWJsZSBudW1iZXJWYWx1ZSA9IHNyYy50b0Rv
dWJsZVN0cmljdCgmb2spOworICAgICAgICBpZiAoIW9rKQogICAgICAgICAgICAgcmV0dXJuIGRl
ZmF1bHRWYWx1ZTsKICAgICAgICAgQVNTRVJUKGlzZmluaXRlKG51bWJlclZhbHVlKSk7CiAgICAg
ICAgIHJldHVybiBudW1iZXJWYWx1ZTsKQEAgLTI2MzksMzIgKzI2NDIsNiBAQCBTdHJpbmcgSFRN
TElucHV0RWxlbWVudDo6c2VyaWFsaXplRm9yTnVtCiAgICAgcmV0dXJuIFN0cmluZyhidWZmZXIs
IGxlbmd0aCk7CiB9CiAKLWJvb2wgSFRNTElucHV0RWxlbWVudDo6cGFyc2VUb0RvdWJsZUZvck51
bWJlclR5cGUoY29uc3QgU3RyaW5nJiBzcmMsIGRvdWJsZSogb3V0KQotewotICAgIC8vIFNlZSBI
VE1MNSAyLjQuNC4zIGBSZWFsIG51bWJlcnMuJwotCi0gICAgaWYgKHNyYy5pc0VtcHR5KCkpCi0g
ICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAvLyBTdHJpbmc6OnRvRG91YmxlKCkgYWNjZXB0cyBs
ZWFkaW5nICsgXHQgXG4gXHYgXGYgXHIgYW5kIFNQQUNFLCB3aGljaCBhcmUgaW52YWxpZCBpbiBI
VE1MNS4KLSAgICAvLyBTbywgY2hlY2sgdGhlIGZpcnN0IGNoYXJhY3Rlci4KLSAgICBpZiAoc3Jj
WzBdICE9ICctJyAmJiAoc3JjWzBdIDwgJzAnIHx8IHNyY1swXSA+ICc5JykpCi0gICAgICAgIHJl
dHVybiBmYWxzZTsKLQotICAgIGJvb2wgdmFsaWQgPSBmYWxzZTsKLSAgICBkb3VibGUgdmFsdWUg
PSBzcmMudG9Eb3VibGUoJnZhbGlkKTsKLSAgICBpZiAoIXZhbGlkKQotICAgICAgICByZXR1cm4g
ZmFsc2U7Ci0gICAgLy8gTmFOIGFuZCBJbmZpbml0eSBhcmUgbm90IHZhbGlkIG51bWJlcnMgYWNj
b3JkaW5nIHRvIHRoZSBzdGFuZGFyZC4KLSAgICBpZiAoIWlzZmluaXRlKHZhbHVlKSkKLSAgICAg
ICAgcmV0dXJuIGZhbHNlOwotICAgIC8vIC0wIC0+IDAKLSAgICBpZiAoIXZhbHVlKQotICAgICAg
ICB2YWx1ZSA9IDA7Ci0gICAgaWYgKG91dCkKLSAgICAgICAgKm91dCA9IHZhbHVlOwotICAgIHJl
dHVybiB0cnVlOwotfQotCiBib29sIEhUTUxJbnB1dEVsZW1lbnQ6OnBhcnNlVG9EYXRlQ29tcG9u
ZW50cyhJbnB1dFR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiBmb3JtU3RyaW5nLCBEYXRlQ29tcG9u
ZW50cyogb3V0KQogewogICAgIGlmIChmb3JtU3RyaW5nLmlzRW1wdHkoKSkKSW5kZXg6IFdlYkNv
cmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hU
TUxJbnB1dEVsZW1lbnQuaAkocmV2aXNpb24gNTgzNTApCisrKyBXZWJDb3JlL2h0bWwvSFRNTElu
cHV0RWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNjEsMTAgKzI2MSw2IEBAIHB1YmxpYzoK
IAogICAgIHZpcnR1YWwgdm9pZCBhZGRTdWJyZXNvdXJjZUF0dHJpYnV0ZVVSTHMoTGlzdEhhc2hT
ZXQ8S1VSTD4mKSBjb25zdDsKICAgICAKLSAgICAvLyBDb252ZXJ0cyB0aGUgc3BlY2lmaWVkIHN0
cmluZyB0byBhIGZsb2F0aW5nIG51bWJlci4KLSAgICAvLyBJZiB0aGUgY29udmVyc2lvbiBmYWls
cywgdGhlIHJldHVybiB2YWx1ZSBpcyBmYWxzZS4gVGFrZSBjYXJlIHRoYXQgbGVhZGluZyBvciB0
cmFpbGluZyB1bm5lY2Vzc2FyeSBjaGFyYWN0ZXJzIG1ha2UgZmFpbHVyZXMuICBUaGlzIHJldHVy
bnMgZmFsc2UgZm9yIGFuIGVtcHR5IHN0cmluZyBpbnB1dC4KLSAgICAvLyBUaGUgZG91YmxlKiBw
YXJhbWV0ZXIgbWF5IGJlIDAuCi0gICAgc3RhdGljIGJvb2wgcGFyc2VUb0RvdWJsZUZvck51bWJl
clR5cGUoY29uc3QgU3RyaW5nJiwgZG91YmxlKik7CiAgICAgLy8gQ29udmVydHMgdGhlIHNwZWNp
ZmllZCBudW1iZXIgdG8gYSBzdHJpbmcuIFRoaXMgaXMgYW4gaW1wbGVtZW50YXRpb24gb2YKICAg
ICAvLyBIVE1MNSdzICJhbGdvcml0aG0gdG8gY29udmVydCBhIG51bWJlciB0byBhIHN0cmluZyIg
Zm9yIE5VTUJFUi9SQU5HRSB0eXBlcy4KICAgICBzdGF0aWMgU3RyaW5nIHNlcmlhbGl6ZUZvck51
bWJlclR5cGUoZG91YmxlKTsKSW5kZXg6IFdlYkNvcmUvaHRtbC9TdGVwUmFuZ2UuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9TdGVwUmFuZ2UuY3BwCShyZXZpc2lvbiA1ODM1MCkKKysr
IFdlYkNvcmUvaHRtbC9TdGVwUmFuZ2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02MCw4ICs2MCw4
IEBAIGRvdWJsZSBTdGVwUmFuZ2U6OmNsYW1wVmFsdWUoZG91YmxlIHZhbHUKIAogZG91YmxlIFN0
ZXBSYW5nZTo6Y2xhbXBWYWx1ZShjb25zdCBTdHJpbmcmIHN0cmluZ1ZhbHVlKQogewotICAgIGRv
dWJsZSB2YWx1ZTsKLSAgICBib29sIHBhcnNlU3VjY2VzcyA9IEhUTUxJbnB1dEVsZW1lbnQ6OnBh
cnNlVG9Eb3VibGVGb3JOdW1iZXJUeXBlKHN0cmluZ1ZhbHVlLCAmdmFsdWUpOworICAgIGJvb2wg
cGFyc2VTdWNjZXNzOworICAgIGRvdWJsZSB2YWx1ZSA9IHN0cmluZ1ZhbHVlLnRvRG91YmxlU3Ry
aWN0KCZwYXJzZVN1Y2Nlc3MpOwogICAgIGlmICghcGFyc2VTdWNjZXNzKQogICAgICAgICB2YWx1
ZSA9IChtaW5pbXVtICsgbWF4aW11bSkgLyAyOwogICAgIHJldHVybiBjbGFtcFZhbHVlKHZhbHVl
KTsKQEAgLTY5LDggKzY5LDggQEAgZG91YmxlIFN0ZXBSYW5nZTo6Y2xhbXBWYWx1ZShjb25zdCBT
dHJpbgogCiBkb3VibGUgU3RlcFJhbmdlOjp2YWx1ZUZyb21FbGVtZW50KEhUTUxJbnB1dEVsZW1l
bnQqIGVsZW1lbnQsIGJvb2wqIHdhc0NsYW1wZWQpCiB7Ci0gICAgZG91YmxlIG9sZFZhbHVlOwot
ICAgIGJvb2wgcGFyc2VTdWNjZXNzID0gSFRNTElucHV0RWxlbWVudDo6cGFyc2VUb0RvdWJsZUZv
ck51bWJlclR5cGUoZWxlbWVudC0+dmFsdWUoKSwgJm9sZFZhbHVlKTsKKyAgICBib29sIHBhcnNl
U3VjY2VzczsKKyAgICBkb3VibGUgb2xkVmFsdWUgPSBlbGVtZW50LT52YWx1ZSgpLnRvRG91Ymxl
U3RyaWN0KCZwYXJzZVN1Y2Nlc3MpOwogICAgIGlmICghcGFyc2VTdWNjZXNzKQogICAgICAgICBv
bGRWYWx1ZSA9IChtaW5pbXVtICsgbWF4aW11bSkgLyAyOwogICAgIGRvdWJsZSBuZXdWYWx1ZSA9
IGNsYW1wVmFsdWUob2xkVmFsdWUpOwpJbmRleDogV2ViQ29yZS9odG1sL1ZhbGlkaXR5U3RhdGUu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9WYWxpZGl0eVN0YXRlLmNwcAkocmV2aXNp
b24gNTgzNTApCisrKyBXZWJDb3JlL2h0bWwvVmFsaWRpdHlTdGF0ZS5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTc5LDggKzc5LDExIEBAIGJvb2wgVmFsaWRpdHlTdGF0ZTo6dHlwZU1pc21hdGNoKCkg
Y29uc3QKICAgICBzd2l0Y2ggKGlucHV0LT5pbnB1dFR5cGUoKSkgewogICAgIGNhc2UgSFRNTElu
cHV0RWxlbWVudDo6Q09MT1I6CiAgICAgICAgIHJldHVybiAhaXNWYWxpZENvbG9yU3RyaW5nKHZh
bHVlKTsKLSAgICBjYXNlIEhUTUxJbnB1dEVsZW1lbnQ6Ok5VTUJFUjoKLSAgICAgICAgcmV0dXJu
ICFIVE1MSW5wdXRFbGVtZW50OjpwYXJzZVRvRG91YmxlRm9yTnVtYmVyVHlwZSh2YWx1ZSwgMCk7
CisgICAgY2FzZSBIVE1MSW5wdXRFbGVtZW50OjpOVU1CRVI6IHsKKyAgICAgICAgYm9vbCBvazsK
KyAgICAgICAgdmFsdWUudG9Eb3VibGVTdHJpY3QoJm9rKTsKKyAgICAgICAgcmV0dXJuICFvazsK
KyAgICB9CiAgICAgY2FzZSBIVE1MSW5wdXRFbGVtZW50OjpVUkw6CiAgICAgICAgIHJldHVybiAh
S1VSTChLVVJMKCksIHZhbHVlKS5pc1ZhbGlkKCk7CiAgICAgY2FzZSBIVE1MSW5wdXRFbGVtZW50
OjpFTUFJTDogewo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>54620</attachid>
            <date>2010-04-28 14:23:49 -0700</date>
            <delta_ts>2010-04-29 16:08:13 -0700</delta_ts>
            <desc>Update the JavaScriptCore.def for the new function.</desc>
            <filename>38203.patch</filename>
            <type>text/plain</type>
            <size>10439</size>
            <attacher name="Yael">yael</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDU4MzYxKQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTggQEAKKzIwMTAtMDQtMjcgIHlhZWwgYWhh
cm9uICA8eWFlbC5haGFyb25Abm9raWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIE1vdmUgSFRNTElucHV0RWxlbWVudDo6cGFyc2VUb0RvdWJs
ZUZvck51bWJlclR5cGUgc28gaXQgY2FuIGJlIHJldXNlZCBvdXRzaWRlIG9mIEhUTUxJbnB1dEVs
ZW1lbnQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0z
ODIwMworCisgICAgICAgIFJlcGxhY2VkIEhUTUxJbnB1dEVsZW1lbnQ6OnBhcnNlVG9Eb3VibGVG
b3JOdW1iZXJUeXBlIHdpdGggU3RyaW5nOjp0b0RvdWJsZVN0cmljdC4KKworICAgICAgICAqIEph
dmFTY3JpcHRDb3JlLmV4cDoKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNj
cmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZGVmOgorICAgICAgICAqIHd0Zi90ZXh0L1dURlN0cmlu
Zy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHJpbmc6OnRvRG91YmxlU3RyaWN0KToKKyAgICAg
ICAgKiB3dGYvdGV4dC9XVEZTdHJpbmcuaDoKKwogMjAxMC0wNC0yNyAgU3RlcGhhbmllIExld2lz
ICA8c2xld2lzQGFwcGxlLmNvbT4KIAogICAgICAgICBGaXggVGlnZXIgYnVpbGQuCkluZGV4OiBK
YXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5leHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlw
dENvcmUvSmF2YVNjcmlwdENvcmUuZXhwCShyZXZpc2lvbiA1ODM1MCkKKysrIEphdmFTY3JpcHRD
b3JlL0phdmFTY3JpcHRDb3JlLmV4cAkod29ya2luZyBjb3B5KQpAQCAtNTE4LDYgKzUxOCw3IEBA
IF9fWk5LN1dlYkNvcmU2U3RyaW5nMTBjaGFyYWN0ZXJzRXYKIF9fWk5LN1dlYkNvcmU2U3RyaW5n
MTF0b0ludFN0cmljdEVQYmkKIF9fWk5LN1dlYkNvcmU2U3RyaW5nMTJ0b1VJbnRTdHJpY3RFUGJp
CiBfX1pOSzdXZWJDb3JlNlN0cmluZzE0dGhyZWFkc2FmZUNvcHlFdgorX19aTks3V2ViQ29yZTZT
dHJpbmcxNHRvRG91YmxlU3RyaWN0RVBiCiBfX1pOSzdXZWJDb3JlNlN0cmluZzE1c3RyaXBXaGl0
ZVNwYWNlRXYKIF9fWk5LN1dlYkNvcmU2U3RyaW5nMTZyZW1vdmVDaGFyYWN0ZXJzRVBGYnRFCiBf
X1pOSzdXZWJDb3JlNlN0cmluZzE3Y3Jvc3NUaHJlYWRTdHJpbmdFdgpJbmRleDogSmF2YVNjcmlw
dENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3Jl
LmRlZgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ov
SmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZGVmCShyZXZpc2lvbiA1ODM1MCkKKysrIEph
dmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29yZS9KYXZhU2Ny
aXB0Q29yZS5kZWYJKHdvcmtpbmcgY29weSkKQEAgLTM3OCw2ICszNzgsNyBAQCBFWFBPUlRTCiAg
ICAgP3RvQm9vbGVhbkBKU09iamVjdEBKU0NAQFVCRV9OUEFWRXhlY1N0YXRlQDJAQFoKICAgICA/
dG9Cb29sZWFuQEpTU3RyaW5nQEpTQ0BARUJFX05QQVZFeGVjU3RhdGVAMkBAWgogICAgID90b0Rv
dWJsZUBTdHJpbmdAV2ViQ29yZUBAUUJFTlBBX05AWgorICAgID90b0RvdWJsZVN0cmljdEBTdHJp
bmdAV2ViQ29yZUBAUUJFTlBBX05AWgogICAgID90b0Zsb2F0QFN0cmluZ0BXZWJDb3JlQEBRQkVN
UEFfTkBaCiAgICAgP3RvSW50MzJTbG93Q2FzZUBKU0NAQFlBSE5BQV9OQFoKICAgICA/dG9JbnRA
U3RyaW5nQFdlYkNvcmVAQFFCRUhQQV9OQFoKSW5kZXg6IEphdmFTY3JpcHRDb3JlL3d0Zi90ZXh0
L1dURlN0cmluZy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUvd3RmL3RleHQvV1RG
U3RyaW5nLmNwcAkocmV2aXNpb24gNTgzNTApCisrKyBKYXZhU2NyaXB0Q29yZS93dGYvdGV4dC9X
VEZTdHJpbmcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNSw2ICsyNSw3IEBACiAjaW5jbHVkZSA8
bGltaXRzPgogI2luY2x1ZGUgPHN0ZGFyZy5oPgogI2luY2x1ZGUgPHd0Zi9BU0NJSUNUeXBlLmg+
CisjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5n
Lmg+CiAjaW5jbHVkZSA8d3RmL1N0cmluZ0V4dHJhcy5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3Iu
aD4KQEAgLTUwNiw2ICs1MDcsMzMgQEAgaW50cHRyX3QgU3RyaW5nOjp0b0ludFB0clN0cmljdChi
b29sKiBvawogICAgIHJldHVybiBtX2ltcGwtPnRvSW50UHRyU3RyaWN0KG9rLCBiYXNlKTsKIH0K
IAorZG91YmxlIFN0cmluZzo6dG9Eb3VibGVTdHJpY3QoYm9vbCogb2spIGNvbnN0Cit7CisgICAg
Ly8gSW1wbGVtZW50IEhUTUw1IDIuNC40LjMgYFJlYWwgbnVtYmVycy4nCisgICAgaWYgKG9rKQor
ICAgICAgICAqb2sgPSBmYWxzZTsKKyAgICBpZiAoaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4g
MDsKKyAgICAvLyB0b0RvdWJsZSgpIGFjY2VwdHMgbGVhZGluZyArIFx0IFxuIFx2IFxmIFxyIGFu
ZCBTUEFDRSwgd2hpY2ggYXJlIGludmFsaWQgaW4gSFRNTDUuCisgICAgLy8gU28sIGNoZWNrIHRo
ZSBmaXJzdCBjaGFyYWN0ZXIuCisgICAgY29uc3QgVUNoYXIqIGNoYXJhY3RlcnMgPSB0aGlzLT5j
aGFyYWN0ZXJzKCk7CisgICAgaWYgKGNoYXJhY3RlcnNbMF0gIT0gJy0nICYmIChjaGFyYWN0ZXJz
WzBdIDwgJzAnIHx8IGNoYXJhY3RlcnNbMF0gPiAnOScpKQorICAgICAgICByZXR1cm4gMDsKKwor
ICAgIGJvb2wgdmFsaWQgPSBmYWxzZTsKKyAgICBkb3VibGUgdmFsdWUgPSB0b0RvdWJsZSgmdmFs
aWQpOworICAgIGlmICghdmFsaWQpCisgICAgICAgIHJldHVybiAwOworICAgIC8vIE5hTiBhbmQg
SW5maW5pdHkgYXJlIG5vdCB2YWxpZCBudW1iZXJzIGFjY29yZGluZyB0byB0aGUgc3RhbmRhcmQu
CisgICAgaWYgKCFpc2Zpbml0ZSh2YWx1ZSkpCisgICAgICAgIHJldHVybiAwOworICAgIC8vIC0w
IC0+IDAKKyAgICBpZiAoIXZhbHVlKQorICAgICAgICB2YWx1ZSA9IDA7CisgICAgaWYgKG9rKQor
ICAgICAgICAqb2sgPSB0cnVlOworICAgIHJldHVybiB2YWx1ZTsKK30KIAogaW50IFN0cmluZzo6
dG9JbnQoYm9vbCogb2spIGNvbnN0CiB7CkluZGV4OiBKYXZhU2NyaXB0Q29yZS93dGYvdGV4dC9X
VEZTdHJpbmcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS93dGYvdGV4dC9XVEZTdHJp
bmcuaAkocmV2aXNpb24gNTgzNTApCisrKyBKYXZhU2NyaXB0Q29yZS93dGYvdGV4dC9XVEZTdHJp
bmcuaAkod29ya2luZyBjb3B5KQpAQCAtMTk2LDYgKzE5Niw5IEBAIHB1YmxpYzoKICAgICB1aW50
NjRfdCB0b1VJbnQ2NFN0cmljdChib29sKiBvayA9IDAsIGludCBiYXNlID0gMTApIGNvbnN0Owog
ICAgIGludHB0cl90IHRvSW50UHRyU3RyaWN0KGJvb2wqIG9rID0gMCwgaW50IGJhc2UgPSAxMCkg
Y29uc3Q7CiAKKyAgICAvLyBDb252ZXJ0cyB0aGUgc3RyaW5nIHRvIGEgZmxvYXRpbmcgbnVtYmVy
LiBVbm5lY2Vzc2FyeSBsZWFkaW5nIG9yIHRyYWlsaW5nIGNoYXJhY3RlcnMsIGFzIHdlbGwgYXMg
ZW1wdHkgc3RyaW5nLCBhcmUgdHJlYXRlZCBhcyBmYWlsdXJlLgorICAgIGRvdWJsZSB0b0RvdWJs
ZVN0cmljdChib29sKiBvaykgY29uc3Q7CisKICAgICBpbnQgdG9JbnQoYm9vbCogb2sgPSAwKSBj
b25zdDsKICAgICB1bnNpZ25lZCB0b1VJbnQoYm9vbCogb2sgPSAwKSBjb25zdDsKICAgICBpbnQ2
NF90IHRvSW50NjQoYm9vbCogb2sgPSAwKSBjb25zdDsKSW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9n
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiA1ODM2MSkKKysrIFdl
YkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTAtMDQt
MjcgIHlhZWwgYWhhcm9uICA8eWFlbC5haGFyb25Abm9raWEuY29tPgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1vdmUgSFRNTElucHV0RWxlbWVudDo6
cGFyc2VUb0RvdWJsZUZvck51bWJlclR5cGUgc28gaXQgY2FuIGJlIHJldXNlZCBvdXRzaWRlIG9m
IEhUTUxJbnB1dEVsZW1lbnQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0zODIwMworCisgICAgICAgIFJlcGxhY2VkIEhUTUxJbnB1dEVsZW1lbnQ6OnBh
cnNlVG9Eb3VibGVGb3JOdW1iZXJUeXBlIHdpdGggU3RyaW5nOjp0b0RvdWJsZVN0cmljdC4KKyAg
ICAgICAgTm8gbmV3IHRlc3RzIGFzIG5vIG5ldyBmdW5jdGlvbmFsaXR5IHdhcyBpbnRyb2R1Y2Vk
LgorCisgICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxJbnB1dEVsZW1lbnQ6OnN0ZXBNaXNtYXRjaCk6CisgICAgICAgIChXZWJDb3JlOjpI
VE1MSW5wdXRFbGVtZW50OjpnZXRBbGxvd2VkVmFsdWVTdGVwKToKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxJbnB1dEVsZW1lbnQ6OnBhcnNlVG9Eb3VibGUpOgorICAgICAgICAqIGh0bWwvSFRNTElu
cHV0RWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvU3RlcFJhbmdlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlN0ZXBSYW5nZTo6Y2xhbXBWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpTdGVwUmFu
Z2U6OnZhbHVlRnJvbUVsZW1lbnQpOgorICAgICAgICAqIGh0bWwvVmFsaWRpdHlTdGF0ZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpWYWxpZGl0eVN0YXRlOjp0eXBlTWlzbWF0Y2gpOgorCiAyMDEw
LTA0LTI3ICBKb2NoZW4gRWlzaW5nZXIgIDxqb2NoZW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAg
IFJldmlld2VkIGJ5IFNoaW5pY2hpcm8gSGFtYWppLgpJbmRleDogV2ViQ29yZS9odG1sL0hUTUxJ
bnB1dEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVt
ZW50LmNwcAkocmV2aXNpb24gNTgzNTApCisrKyBXZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVu
dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUwMCw4ICs1MDAsOSBAQCBib29sIEhUTUxJbnB1dEVs
ZW1lbnQ6OnN0ZXBNaXNtYXRjaCgpIGNvCiAgICAgICAgIC8vIG9mIHRoZSBnZW5lcmFsIGNhc2Uu
CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBjYXNlIE5VTUJFUjogewotICAgICAgICBkb3Vi
bGUgZG91YmxlVmFsdWU7Ci0gICAgICAgIGlmICghcGFyc2VUb0RvdWJsZUZvck51bWJlclR5cGUo
dmFsdWUoKSwgJmRvdWJsZVZhbHVlKSkKKyAgICAgICAgYm9vbCBvazsKKyAgICAgICAgZG91Ymxl
IGRvdWJsZVZhbHVlID0gdmFsdWUoKS50b0RvdWJsZVN0cmljdCgmb2spOworICAgICAgICBpZiAo
IW9rKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICBkb3VibGVWYWx1ZSA9IGZh
YnMoZG91YmxlVmFsdWUgLSBzdGVwQmFzZSgpKTsKICAgICAgICAgaWYgKGlzaW5mKGRvdWJsZVZh
bHVlKSkKQEAgLTYyMSw4ICs2MjIsOSBAQCBib29sIEhUTUxJbnB1dEVsZW1lbnQ6OmdldEFsbG93
ZWRWYWx1ZVN0CiAgICAgfQogICAgIGlmIChlcXVhbElnbm9yaW5nQ2FzZShzdGVwU3RyaW5nLCAi
YW55IikpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBkb3VibGUgcGFyc2VkOwotICAgIGlm
ICghcGFyc2VUb0RvdWJsZUZvck51bWJlclR5cGUoc3RlcFN0cmluZywgJnBhcnNlZCkgfHwgcGFy
c2VkIDw9IDAuMCkgeworICAgIGJvb2wgb2s7CisgICAgZG91YmxlIHBhcnNlZCA9IHN0ZXBTdHJp
bmcuc3RyaW5nKCkudG9Eb3VibGVTdHJpY3QoJm9rKTsKKyAgICBpZiAoIW9rIHx8IHBhcnNlZCA8
PSAwLjApIHsKICAgICAgICAgKnN0ZXAgPSBkZWZhdWx0U3RlcCAqIHN0ZXBTY2FsZUZhY3RvcjsK
ICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQpAQCAtMTYyMiw4ICsxNjI0LDkgQEAgZG91Ymxl
IEhUTUxJbnB1dEVsZW1lbnQ6OnBhcnNlVG9Eb3VibGUoYwogICAgIH0KICAgICBjYXNlIE5VTUJF
UjoKICAgICBjYXNlIFJBTkdFOiB7Ci0gICAgICAgIGRvdWJsZSBudW1iZXJWYWx1ZTsKLSAgICAg
ICAgaWYgKCFwYXJzZVRvRG91YmxlRm9yTnVtYmVyVHlwZShzcmMsICZudW1iZXJWYWx1ZSkpCisg
ICAgICAgIGJvb2wgb2s7CisgICAgICAgIGRvdWJsZSBudW1iZXJWYWx1ZSA9IHNyYy50b0RvdWJs
ZVN0cmljdCgmb2spOworICAgICAgICBpZiAoIW9rKQogICAgICAgICAgICAgcmV0dXJuIGRlZmF1
bHRWYWx1ZTsKICAgICAgICAgQVNTRVJUKGlzZmluaXRlKG51bWJlclZhbHVlKSk7CiAgICAgICAg
IHJldHVybiBudW1iZXJWYWx1ZTsKQEAgLTI2MzksMzIgKzI2NDIsNiBAQCBTdHJpbmcgSFRNTElu
cHV0RWxlbWVudDo6c2VyaWFsaXplRm9yTnVtCiAgICAgcmV0dXJuIFN0cmluZyhidWZmZXIsIGxl
bmd0aCk7CiB9CiAKLWJvb2wgSFRNTElucHV0RWxlbWVudDo6cGFyc2VUb0RvdWJsZUZvck51bWJl
clR5cGUoY29uc3QgU3RyaW5nJiBzcmMsIGRvdWJsZSogb3V0KQotewotICAgIC8vIFNlZSBIVE1M
NSAyLjQuNC4zIGBSZWFsIG51bWJlcnMuJwotCi0gICAgaWYgKHNyYy5pc0VtcHR5KCkpCi0gICAg
ICAgIHJldHVybiBmYWxzZTsKLSAgICAvLyBTdHJpbmc6OnRvRG91YmxlKCkgYWNjZXB0cyBsZWFk
aW5nICsgXHQgXG4gXHYgXGYgXHIgYW5kIFNQQUNFLCB3aGljaCBhcmUgaW52YWxpZCBpbiBIVE1M
NS4KLSAgICAvLyBTbywgY2hlY2sgdGhlIGZpcnN0IGNoYXJhY3Rlci4KLSAgICBpZiAoc3JjWzBd
ICE9ICctJyAmJiAoc3JjWzBdIDwgJzAnIHx8IHNyY1swXSA+ICc5JykpCi0gICAgICAgIHJldHVy
biBmYWxzZTsKLQotICAgIGJvb2wgdmFsaWQgPSBmYWxzZTsKLSAgICBkb3VibGUgdmFsdWUgPSBz
cmMudG9Eb3VibGUoJnZhbGlkKTsKLSAgICBpZiAoIXZhbGlkKQotICAgICAgICByZXR1cm4gZmFs
c2U7Ci0gICAgLy8gTmFOIGFuZCBJbmZpbml0eSBhcmUgbm90IHZhbGlkIG51bWJlcnMgYWNjb3Jk
aW5nIHRvIHRoZSBzdGFuZGFyZC4KLSAgICBpZiAoIWlzZmluaXRlKHZhbHVlKSkKLSAgICAgICAg
cmV0dXJuIGZhbHNlOwotICAgIC8vIC0wIC0+IDAKLSAgICBpZiAoIXZhbHVlKQotICAgICAgICB2
YWx1ZSA9IDA7Ci0gICAgaWYgKG91dCkKLSAgICAgICAgKm91dCA9IHZhbHVlOwotICAgIHJldHVy
biB0cnVlOwotfQotCiBib29sIEhUTUxJbnB1dEVsZW1lbnQ6OnBhcnNlVG9EYXRlQ29tcG9uZW50
cyhJbnB1dFR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiBmb3JtU3RyaW5nLCBEYXRlQ29tcG9uZW50
cyogb3V0KQogewogICAgIGlmIChmb3JtU3RyaW5nLmlzRW1wdHkoKSkKSW5kZXg6IFdlYkNvcmUv
aHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxJ
bnB1dEVsZW1lbnQuaAkocmV2aXNpb24gNTgzNTApCisrKyBXZWJDb3JlL2h0bWwvSFRNTElucHV0
RWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNjEsMTAgKzI2MSw2IEBAIHB1YmxpYzoKIAog
ICAgIHZpcnR1YWwgdm9pZCBhZGRTdWJyZXNvdXJjZUF0dHJpYnV0ZVVSTHMoTGlzdEhhc2hTZXQ8
S1VSTD4mKSBjb25zdDsKICAgICAKLSAgICAvLyBDb252ZXJ0cyB0aGUgc3BlY2lmaWVkIHN0cmlu
ZyB0byBhIGZsb2F0aW5nIG51bWJlci4KLSAgICAvLyBJZiB0aGUgY29udmVyc2lvbiBmYWlscywg
dGhlIHJldHVybiB2YWx1ZSBpcyBmYWxzZS4gVGFrZSBjYXJlIHRoYXQgbGVhZGluZyBvciB0cmFp
bGluZyB1bm5lY2Vzc2FyeSBjaGFyYWN0ZXJzIG1ha2UgZmFpbHVyZXMuICBUaGlzIHJldHVybnMg
ZmFsc2UgZm9yIGFuIGVtcHR5IHN0cmluZyBpbnB1dC4KLSAgICAvLyBUaGUgZG91YmxlKiBwYXJh
bWV0ZXIgbWF5IGJlIDAuCi0gICAgc3RhdGljIGJvb2wgcGFyc2VUb0RvdWJsZUZvck51bWJlclR5
cGUoY29uc3QgU3RyaW5nJiwgZG91YmxlKik7CiAgICAgLy8gQ29udmVydHMgdGhlIHNwZWNpZmll
ZCBudW1iZXIgdG8gYSBzdHJpbmcuIFRoaXMgaXMgYW4gaW1wbGVtZW50YXRpb24gb2YKICAgICAv
LyBIVE1MNSdzICJhbGdvcml0aG0gdG8gY29udmVydCBhIG51bWJlciB0byBhIHN0cmluZyIgZm9y
IE5VTUJFUi9SQU5HRSB0eXBlcy4KICAgICBzdGF0aWMgU3RyaW5nIHNlcmlhbGl6ZUZvck51bWJl
clR5cGUoZG91YmxlKTsKSW5kZXg6IFdlYkNvcmUvaHRtbC9TdGVwUmFuZ2UuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvaHRtbC9TdGVwUmFuZ2UuY3BwCShyZXZpc2lvbiA1ODM1MCkKKysrIFdl
YkNvcmUvaHRtbC9TdGVwUmFuZ2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02MCw4ICs2MCw4IEBA
IGRvdWJsZSBTdGVwUmFuZ2U6OmNsYW1wVmFsdWUoZG91YmxlIHZhbHUKIAogZG91YmxlIFN0ZXBS
YW5nZTo6Y2xhbXBWYWx1ZShjb25zdCBTdHJpbmcmIHN0cmluZ1ZhbHVlKQogewotICAgIGRvdWJs
ZSB2YWx1ZTsKLSAgICBib29sIHBhcnNlU3VjY2VzcyA9IEhUTUxJbnB1dEVsZW1lbnQ6OnBhcnNl
VG9Eb3VibGVGb3JOdW1iZXJUeXBlKHN0cmluZ1ZhbHVlLCAmdmFsdWUpOworICAgIGJvb2wgcGFy
c2VTdWNjZXNzOworICAgIGRvdWJsZSB2YWx1ZSA9IHN0cmluZ1ZhbHVlLnRvRG91YmxlU3RyaWN0
KCZwYXJzZVN1Y2Nlc3MpOwogICAgIGlmICghcGFyc2VTdWNjZXNzKQogICAgICAgICB2YWx1ZSA9
IChtaW5pbXVtICsgbWF4aW11bSkgLyAyOwogICAgIHJldHVybiBjbGFtcFZhbHVlKHZhbHVlKTsK
QEAgLTY5LDggKzY5LDggQEAgZG91YmxlIFN0ZXBSYW5nZTo6Y2xhbXBWYWx1ZShjb25zdCBTdHJp
bgogCiBkb3VibGUgU3RlcFJhbmdlOjp2YWx1ZUZyb21FbGVtZW50KEhUTUxJbnB1dEVsZW1lbnQq
IGVsZW1lbnQsIGJvb2wqIHdhc0NsYW1wZWQpCiB7Ci0gICAgZG91YmxlIG9sZFZhbHVlOwotICAg
IGJvb2wgcGFyc2VTdWNjZXNzID0gSFRNTElucHV0RWxlbWVudDo6cGFyc2VUb0RvdWJsZUZvck51
bWJlclR5cGUoZWxlbWVudC0+dmFsdWUoKSwgJm9sZFZhbHVlKTsKKyAgICBib29sIHBhcnNlU3Vj
Y2VzczsKKyAgICBkb3VibGUgb2xkVmFsdWUgPSBlbGVtZW50LT52YWx1ZSgpLnRvRG91YmxlU3Ry
aWN0KCZwYXJzZVN1Y2Nlc3MpOwogICAgIGlmICghcGFyc2VTdWNjZXNzKQogICAgICAgICBvbGRW
YWx1ZSA9IChtaW5pbXVtICsgbWF4aW11bSkgLyAyOwogICAgIGRvdWJsZSBuZXdWYWx1ZSA9IGNs
YW1wVmFsdWUob2xkVmFsdWUpOwpJbmRleDogV2ViQ29yZS9odG1sL1ZhbGlkaXR5U3RhdGUuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9WYWxpZGl0eVN0YXRlLmNwcAkocmV2aXNpb24g
NTgzNTApCisrKyBXZWJDb3JlL2h0bWwvVmFsaWRpdHlTdGF0ZS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTc5LDggKzc5LDExIEBAIGJvb2wgVmFsaWRpdHlTdGF0ZTo6dHlwZU1pc21hdGNoKCkgY29u
c3QKICAgICBzd2l0Y2ggKGlucHV0LT5pbnB1dFR5cGUoKSkgewogICAgIGNhc2UgSFRNTElucHV0
RWxlbWVudDo6Q09MT1I6CiAgICAgICAgIHJldHVybiAhaXNWYWxpZENvbG9yU3RyaW5nKHZhbHVl
KTsKLSAgICBjYXNlIEhUTUxJbnB1dEVsZW1lbnQ6Ok5VTUJFUjoKLSAgICAgICAgcmV0dXJuICFI
VE1MSW5wdXRFbGVtZW50OjpwYXJzZVRvRG91YmxlRm9yTnVtYmVyVHlwZSh2YWx1ZSwgMCk7Cisg
ICAgY2FzZSBIVE1MSW5wdXRFbGVtZW50OjpOVU1CRVI6IHsKKyAgICAgICAgYm9vbCBvazsKKyAg
ICAgICAgdmFsdWUudG9Eb3VibGVTdHJpY3QoJm9rKTsKKyAgICAgICAgcmV0dXJuICFvazsKKyAg
ICB9CiAgICAgY2FzZSBIVE1MSW5wdXRFbGVtZW50OjpVUkw6CiAgICAgICAgIHJldHVybiAhS1VS
TChLVVJMKCksIHZhbHVlKS5pc1ZhbGlkKCk7CiAgICAgY2FzZSBIVE1MSW5wdXRFbGVtZW50OjpF
TUFJTDogewo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>54750</attachid>
            <date>2010-04-29 16:08:13 -0700</date>
            <delta_ts>2010-05-01 05:12:32 -0700</delta_ts>
            <desc>Patch. Based on comment #9.</desc>
            <filename>38203.patch</filename>
            <type>text/plain</type>
            <size>9719</size>
            <attacher name="Yael">yael</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1ODU0NCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjcgQEAKKzIwMTAtMDQtMjkgIFlhZWwgQWhhcm9uICA8eWFlbC5haGFyb25Abm9r
aWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IE1vdmUgbnVtYmVyIHBhcnNpbmcgY29kZSBvdXQgb2YgSFRNTElucHV0RWxlbWVudC4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM4MjAzCisKKyAgICAg
ICAgVGhlIG51bWViciBwYXJzaW5nIGNvZGUgZm9sbG93cyBIVE1MNSBwYXJzaW5nIHJ1bGVzIGFu
ZCBzaG91bGQgYmUgYXZhaWxhYmxlIG91dHNpZGUgb2YgSFRNTElucHV0RWxlbWVudC4KKyAgICAg
ICAgTm8gbmV3IHRlc3RzIGFzIG5vIG5ldyBmdW5jdGlvbmFsaXR5IHdhcyBpbnRyb2R1Y2VkLgor
CisgICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcDoKKyAgICAgICAgKiBodG1sL0hU
TUxJbnB1dEVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxQYXJzZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6c2VyaWFsaXplRm9yTnVtYmVyVHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpw
YXJzZVRvRG91YmxlRm9yTnVtYmVyVHlwZSk6CisgICAgICAgICogaHRtbC9IVE1MUGFyc2VyLmg6
CisgICAgICAgICogaHRtbC9TdGVwUmFuZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3RlcFJh
bmdlOjpjbGFtcFZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OlN0ZXBSYW5nZTo6dmFsdWVGcm9t
RWxlbWVudCk6CisgICAgICAgICogaHRtbC9WYWxpZGl0eVN0YXRlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlZhbGlkaXR5U3RhdGU6OnR5cGVNaXNtYXRjaCk6CisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlclNsaWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTbGlkZXI6OnNldFZh
bHVlRm9yUG9zaXRpb24pOgorCiAyMDEwLTA0LTI5ICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBs
ZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgpJbmRleDogV2ViQ29y
ZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9I
VE1MSW5wdXRFbGVtZW50LmNwcAkocmV2aXNpb24gNTg1MzUpCisrKyBXZWJDb3JlL2h0bWwvSFRN
TElucHV0RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ2LDYgKzQ2LDcgQEAKICNpbmNs
dWRlICJIVE1MSW1hZ2VMb2FkZXIuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRl
ICJIVE1MT3B0aW9uRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxQYXJzZXIuaCIKICNpbmNsdWRl
ICJLZXlib2FyZEV2ZW50LmgiCiAjaW5jbHVkZSAiTG9jYWxpemVkU3RyaW5ncy5oIgogI2luY2x1
ZGUgIk1hcHBlZEF0dHJpYnV0ZS5oIgpAQCAtNjYsNyArNjcsNiBAQAogI2luY2x1ZGUgPHd0Zi9I
YXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KICNpbmNsdWRlIDx3dGYvU3Rk
TGliRXh0cmFzLmg+Ci0jaW5jbHVkZSA8d3RmL2R0b2EuaD4KIAogdXNpbmcgbmFtZXNwYWNlIHN0
ZDsKIApAQCAtMjYyOCw0MiArMjYyOCw2IEBAIGJvb2wgSFRNTElucHV0RWxlbWVudDo6cmVjYWxj
V2lsbFZhbGlkYXQKICAgICAgICAgJiYgaW5wdXRUeXBlKCkgIT0gSElEREVOICYmIGlucHV0VHlw
ZSgpICE9IEJVVFRPTiAmJiBpbnB1dFR5cGUoKSAhPSBSRVNFVDsKIH0KIAotU3RyaW5nIEhUTUxJ
bnB1dEVsZW1lbnQ6OnNlcmlhbGl6ZUZvck51bWJlclR5cGUoZG91YmxlIG51bWJlcikKLXsKLSAg
ICAvLyBBY2NvcmRpbmcgdG8gSFRNTDUsICJ0aGUgYmVzdCByZXByZXNlbnRhdGlvbiBvZiB0aGUg
bnVtYmVyIG4gYXMgYSBmbG9hdGluZwotICAgIC8vIHBvaW50IG51bWJlciIgaXMgYSBzdHJpbmcg
cHJvZHVjZWQgYnkgYXBwbHlpbmcgVG9TdHJpbmcoKSB0byBuLgotICAgIER0b2FCdWZmZXIgYnVm
ZmVyOwotICAgIHVuc2lnbmVkIGxlbmd0aDsKLSAgICBkb3VibGVUb1N0cmluZ0luSmF2YVNjcmlw
dEZvcm1hdChudW1iZXIsIGJ1ZmZlciwgJmxlbmd0aCk7Ci0gICAgcmV0dXJuIFN0cmluZyhidWZm
ZXIsIGxlbmd0aCk7Ci19Ci0KLWJvb2wgSFRNTElucHV0RWxlbWVudDo6cGFyc2VUb0RvdWJsZUZv
ck51bWJlclR5cGUoY29uc3QgU3RyaW5nJiBzcmMsIGRvdWJsZSogb3V0KQotewotICAgIC8vIFNl
ZSBIVE1MNSAyLjQuNC4zIGBSZWFsIG51bWJlcnMuJwotCi0gICAgaWYgKHNyYy5pc0VtcHR5KCkp
Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAvLyBTdHJpbmc6OnRvRG91YmxlKCkgYWNjZXB0
cyBsZWFkaW5nICsgXHQgXG4gXHYgXGYgXHIgYW5kIFNQQUNFLCB3aGljaCBhcmUgaW52YWxpZCBp
biBIVE1MNS4KLSAgICAvLyBTbywgY2hlY2sgdGhlIGZpcnN0IGNoYXJhY3Rlci4KLSAgICBpZiAo
c3JjWzBdICE9ICctJyAmJiAoc3JjWzBdIDwgJzAnIHx8IHNyY1swXSA+ICc5JykpCi0gICAgICAg
IHJldHVybiBmYWxzZTsKLQotICAgIGJvb2wgdmFsaWQgPSBmYWxzZTsKLSAgICBkb3VibGUgdmFs
dWUgPSBzcmMudG9Eb3VibGUoJnZhbGlkKTsKLSAgICBpZiAoIXZhbGlkKQotICAgICAgICByZXR1
cm4gZmFsc2U7Ci0gICAgLy8gTmFOIGFuZCBJbmZpbml0eSBhcmUgbm90IHZhbGlkIG51bWJlcnMg
YWNjb3JkaW5nIHRvIHRoZSBzdGFuZGFyZC4KLSAgICBpZiAoIWlzZmluaXRlKHZhbHVlKSkKLSAg
ICAgICAgcmV0dXJuIGZhbHNlOwotICAgIC8vIC0wIC0+IDAKLSAgICBpZiAoIXZhbHVlKQotICAg
ICAgICB2YWx1ZSA9IDA7Ci0gICAgaWYgKG91dCkKLSAgICAgICAgKm91dCA9IHZhbHVlOwotICAg
IHJldHVybiB0cnVlOwotfQotCiBib29sIEhUTUxJbnB1dEVsZW1lbnQ6OnBhcnNlVG9EYXRlQ29t
cG9uZW50cyhJbnB1dFR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiBmb3JtU3RyaW5nLCBEYXRlQ29t
cG9uZW50cyogb3V0KQogewogICAgIGlmIChmb3JtU3RyaW5nLmlzRW1wdHkoKSkKSW5kZXg6IFdl
YkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1s
L0hUTUxJbnB1dEVsZW1lbnQuaAkocmV2aXNpb24gNTg1MzUpCisrKyBXZWJDb3JlL2h0bWwvSFRN
TElucHV0RWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNjEsMTMgKzI2MSw2IEBAIHB1Ymxp
YzoKIAogICAgIHZpcnR1YWwgdm9pZCBhZGRTdWJyZXNvdXJjZUF0dHJpYnV0ZVVSTHMoTGlzdEhh
c2hTZXQ8S1VSTD4mKSBjb25zdDsKICAgICAKLSAgICAvLyBDb252ZXJ0cyB0aGUgc3BlY2lmaWVk
IHN0cmluZyB0byBhIGZsb2F0aW5nIG51bWJlci4KLSAgICAvLyBJZiB0aGUgY29udmVyc2lvbiBm
YWlscywgdGhlIHJldHVybiB2YWx1ZSBpcyBmYWxzZS4gVGFrZSBjYXJlIHRoYXQgbGVhZGluZyBv
ciB0cmFpbGluZyB1bm5lY2Vzc2FyeSBjaGFyYWN0ZXJzIG1ha2UgZmFpbHVyZXMuICBUaGlzIHJl
dHVybnMgZmFsc2UgZm9yIGFuIGVtcHR5IHN0cmluZyBpbnB1dC4KLSAgICAvLyBUaGUgZG91Ymxl
KiBwYXJhbWV0ZXIgbWF5IGJlIDAuCi0gICAgc3RhdGljIGJvb2wgcGFyc2VUb0RvdWJsZUZvck51
bWJlclR5cGUoY29uc3QgU3RyaW5nJiwgZG91YmxlKik7Ci0gICAgLy8gQ29udmVydHMgdGhlIHNw
ZWNpZmllZCBudW1iZXIgdG8gYSBzdHJpbmcuIFRoaXMgaXMgYW4gaW1wbGVtZW50YXRpb24gb2YK
LSAgICAvLyBIVE1MNSdzICJhbGdvcml0aG0gdG8gY29udmVydCBhIG51bWJlciB0byBhIHN0cmlu
ZyIgZm9yIE5VTUJFUi9SQU5HRSB0eXBlcy4KLSAgICBzdGF0aWMgU3RyaW5nIHNlcmlhbGl6ZUZv
ck51bWJlclR5cGUoZG91YmxlKTsKICAgICAvLyBQYXJzZXMgdGhlIHNwZWNpZmllZCBzdHJpbmcg
YXMgdGhlIElucHV0VHlwZSwgYW5kIHJldHVybnMgdHJ1ZSBpZiBpdCBpcyBzdWNjZXNzZnVsbHkg
cGFyc2VkLgogICAgIC8vIEFuIGluc3RhbmNlIHBvaW50ZWQgYnkgdGhlIERhdGVDb21wb25lbnRz
KiBwYXJhbWV0ZXIgd2lsbCBoYXZlIHBhcnNlZCB2YWx1ZXMgYW5kIGJlCiAgICAgLy8gbW9kaWZp
ZWQgZXZlbiBpZiB0aGUgcGFyc2luZyBmYWlscy4gIFRoZSBEYXRlQ29tcG9uZW50cyogcGFyYW1l
dGVyIG1heSBiZSAwLgpJbmRleDogV2ViQ29yZS9odG1sL0hUTUxQYXJzZXIuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MUGFyc2VyLmNwcAkocmV2aXNpb24gNTg1MzUpCisrKyBX
ZWJDb3JlL2h0bWwvSFRNTFBhcnNlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU5LDYgKzU5LDcg
QEAKICNpbmNsdWRlICJUZXh0LmgiCiAjaW5jbHVkZSAiVHJlZURlcHRoTGltaXQuaCIKICNpbmNs
dWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CisjaW5jbHVkZSA8d3RmL2R0b2EuaD4KIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCkBAIC0xNzM5LDQgKzE3NDAsNDEgQEAgYm9vbCBzaG91bGRDcmVhdGVJ
bXBsaWNpdEhlYWQoRG9jdW1lbnQqIAogfQogI2VuZGlmCiAKKworU3RyaW5nIHNlcmlhbGl6ZUZv
ck51bWJlclR5cGUoZG91YmxlIG51bWJlcikKK3sKKyAgICAvLyBBY2NvcmRpbmcgdG8gSFRNTDUs
ICJ0aGUgYmVzdCByZXByZXNlbnRhdGlvbiBvZiB0aGUgbnVtYmVyIG4gYXMgYSBmbG9hdGluZwor
ICAgIC8vIHBvaW50IG51bWJlciIgaXMgYSBzdHJpbmcgcHJvZHVjZWQgYnkgYXBwbHlpbmcgVG9T
dHJpbmcoKSB0byBuLgorICAgIER0b2FCdWZmZXIgYnVmZmVyOworICAgIHVuc2lnbmVkIGxlbmd0
aDsKKyAgICBkb3VibGVUb1N0cmluZ0luSmF2YVNjcmlwdEZvcm1hdChudW1iZXIsIGJ1ZmZlciwg
Jmxlbmd0aCk7CisgICAgcmV0dXJuIFN0cmluZyhidWZmZXIsIGxlbmd0aCk7Cit9CisKK2Jvb2wg
cGFyc2VUb0RvdWJsZUZvck51bWJlclR5cGUoY29uc3QgU3RyaW5nJiBzcmMsIGRvdWJsZSogb3V0
KQoreworICAgIC8vIFNlZSBIVE1MNSAyLjQuNC4zIGBSZWFsIG51bWJlcnMuJworCisgICAgaWYg
KHNyYy5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAvLyBTdHJpbmc6OnRv
RG91YmxlKCkgYWNjZXB0cyBsZWFkaW5nICsgXHQgXG4gXHYgXGYgXHIgYW5kIFNQQUNFLCB3aGlj
aCBhcmUgaW52YWxpZCBpbiBIVE1MNS4KKyAgICAvLyBTbywgY2hlY2sgdGhlIGZpcnN0IGNoYXJh
Y3Rlci4KKyAgICBpZiAoc3JjWzBdICE9ICctJyAmJiAoc3JjWzBdIDwgJzAnIHx8IHNyY1swXSA+
ICc5JykpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGJvb2wgdmFsaWQgPSBmYWxzZTsK
KyAgICBkb3VibGUgdmFsdWUgPSBzcmMudG9Eb3VibGUoJnZhbGlkKTsKKyAgICBpZiAoIXZhbGlk
KQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgLy8gTmFOIGFuZCBJbmZpbml0eSBhcmUgbm90
IHZhbGlkIG51bWJlcnMgYWNjb3JkaW5nIHRvIHRoZSBzdGFuZGFyZC4KKyAgICBpZiAoIWlzZmlu
aXRlKHZhbHVlKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIC8vIC0wIC0+IDAKKyAgICBp
ZiAoIXZhbHVlKQorICAgICAgICB2YWx1ZSA9IDA7CisgICAgaWYgKG91dCkKKyAgICAgICAgKm91
dCA9IHZhbHVlOworICAgIHJldHVybiB0cnVlOworfQorCiB9CkluZGV4OiBXZWJDb3JlL2h0bWwv
SFRNTFBhcnNlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MUGFyc2VyLmgJKHJl
dmlzaW9uIDU4NTM1KQorKysgV2ViQ29yZS9odG1sL0hUTUxQYXJzZXIuaAkod29ya2luZyBjb3B5
KQpAQCAtMjAxLDYgKzIwMSwxNCBAQCBib29sIHNob3VsZENyZWF0ZUltcGxpY2l0SGVhZChEb2N1
bWVudCopCiBpbmxpbmUgYm9vbCBzaG91bGRDcmVhdGVJbXBsaWNpdEhlYWQoRG9jdW1lbnQqKSB7
IHJldHVybiB0cnVlOyB9CiAjZW5kaWYKIAorLy8gQ29udmVydHMgdGhlIHNwZWNpZmllZCBzdHJp
bmcgdG8gYSBmbG9hdGluZyBudW1iZXIuCisvLyBJZiB0aGUgY29udmVyc2lvbiBmYWlscywgdGhl
IHJldHVybiB2YWx1ZSBpcyBmYWxzZS4gVGFrZSBjYXJlIHRoYXQgbGVhZGluZyBvciB0cmFpbGlu
ZyB1bm5lY2Vzc2FyeSBjaGFyYWN0ZXJzIG1ha2UgZmFpbHVyZXMuICBUaGlzIHJldHVybnMgZmFs
c2UgZm9yIGFuIGVtcHR5IHN0cmluZyBpbnB1dC4KKy8vIFRoZSBkb3VibGUqIHBhcmFtZXRlciBt
YXkgYmUgMC4KK2Jvb2wgcGFyc2VUb0RvdWJsZUZvck51bWJlclR5cGUoY29uc3QgU3RyaW5nJiwg
ZG91YmxlKik7CisvLyBDb252ZXJ0cyB0aGUgc3BlY2lmaWVkIG51bWJlciB0byBhIHN0cmluZy4g
VGhpcyBpcyBhbiBpbXBsZW1lbnRhdGlvbiBvZgorLy8gSFRNTDUncyAiYWxnb3JpdGhtIHRvIGNv
bnZlcnQgYSBudW1iZXIgdG8gYSBzdHJpbmciIGZvciBOVU1CRVIvUkFOR0UgdHlwZXMuCitTdHJp
bmcgc2VyaWFsaXplRm9yTnVtYmVyVHlwZShkb3VibGUpOworCiB9CiAgICAgCiAjZW5kaWYgLy8g
SFRNTFBhcnNlcl9oCkluZGV4OiBXZWJDb3JlL2h0bWwvU3RlcFJhbmdlLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL2h0bWwvU3RlcFJhbmdlLmNwcAkocmV2aXNpb24gNTg1MzUpCisrKyBXZWJD
b3JlL2h0bWwvU3RlcFJhbmdlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjMsNiArMjMsNyBAQAog
CiAjaW5jbHVkZSAiSFRNTElucHV0RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgor
I2luY2x1ZGUgIkhUTUxQYXJzZXIuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgogI2lu
Y2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CiAKQEAgLTYxLDcgKzYyLDcgQEAgZG91YmxlIFN0ZXBS
YW5nZTo6Y2xhbXBWYWx1ZShkb3VibGUgdmFsdQogZG91YmxlIFN0ZXBSYW5nZTo6Y2xhbXBWYWx1
ZShjb25zdCBTdHJpbmcmIHN0cmluZ1ZhbHVlKQogewogICAgIGRvdWJsZSB2YWx1ZTsKLSAgICBi
b29sIHBhcnNlU3VjY2VzcyA9IEhUTUxJbnB1dEVsZW1lbnQ6OnBhcnNlVG9Eb3VibGVGb3JOdW1i
ZXJUeXBlKHN0cmluZ1ZhbHVlLCAmdmFsdWUpOworICAgIGJvb2wgcGFyc2VTdWNjZXNzID0gcGFy
c2VUb0RvdWJsZUZvck51bWJlclR5cGUoc3RyaW5nVmFsdWUsICZ2YWx1ZSk7CiAgICAgaWYgKCFw
YXJzZVN1Y2Nlc3MpCiAgICAgICAgIHZhbHVlID0gKG1pbmltdW0gKyBtYXhpbXVtKSAvIDI7CiAg
ICAgcmV0dXJuIGNsYW1wVmFsdWUodmFsdWUpOwpAQCAtNzAsNyArNzEsNyBAQCBkb3VibGUgU3Rl
cFJhbmdlOjpjbGFtcFZhbHVlKGNvbnN0IFN0cmluCiBkb3VibGUgU3RlcFJhbmdlOjp2YWx1ZUZy
b21FbGVtZW50KEhUTUxJbnB1dEVsZW1lbnQqIGVsZW1lbnQsIGJvb2wqIHdhc0NsYW1wZWQpCiB7
CiAgICAgZG91YmxlIG9sZFZhbHVlOwotICAgIGJvb2wgcGFyc2VTdWNjZXNzID0gSFRNTElucHV0
RWxlbWVudDo6cGFyc2VUb0RvdWJsZUZvck51bWJlclR5cGUoZWxlbWVudC0+dmFsdWUoKSwgJm9s
ZFZhbHVlKTsKKyAgICBib29sIHBhcnNlU3VjY2VzcyA9IHBhcnNlVG9Eb3VibGVGb3JOdW1iZXJU
eXBlKGVsZW1lbnQtPnZhbHVlKCksICZvbGRWYWx1ZSk7CiAgICAgaWYgKCFwYXJzZVN1Y2Nlc3Mp
CiAgICAgICAgIG9sZFZhbHVlID0gKG1pbmltdW0gKyBtYXhpbXVtKSAvIDI7CiAgICAgZG91Ymxl
IG5ld1ZhbHVlID0gY2xhbXBWYWx1ZShvbGRWYWx1ZSk7CkluZGV4OiBXZWJDb3JlL2h0bWwvVmFs
aWRpdHlTdGF0ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL1ZhbGlkaXR5U3RhdGUu
Y3BwCShyZXZpc2lvbiA1ODUzNSkKKysrIFdlYkNvcmUvaHRtbC9WYWxpZGl0eVN0YXRlLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMjYsNiArMjYsNyBAQAogCiAjaW5jbHVkZSAiSFRNTElucHV0RWxl
bWVudC5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgorI2luY2x1ZGUgIkhUTUxQYXJzZXIuaCIK
ICNpbmNsdWRlICJLVVJMLmgiCiAjaW5jbHVkZSAiTG9jYWxpemVkU3RyaW5ncy5oIgogI2luY2x1
ZGUgIlJlZ3VsYXJFeHByZXNzaW9uLmgiCkBAIC04MCw3ICs4MSw3IEBAIGJvb2wgVmFsaWRpdHlT
dGF0ZTo6dHlwZU1pc21hdGNoKCkgY29uc3QKICAgICBjYXNlIEhUTUxJbnB1dEVsZW1lbnQ6OkNP
TE9SOgogICAgICAgICByZXR1cm4gIWlzVmFsaWRDb2xvclN0cmluZyh2YWx1ZSk7CiAgICAgY2Fz
ZSBIVE1MSW5wdXRFbGVtZW50OjpOVU1CRVI6Ci0gICAgICAgIHJldHVybiAhSFRNTElucHV0RWxl
bWVudDo6cGFyc2VUb0RvdWJsZUZvck51bWJlclR5cGUodmFsdWUsIDApOworICAgICAgICByZXR1
cm4gIXBhcnNlVG9Eb3VibGVGb3JOdW1iZXJUeXBlKHZhbHVlLCAwKTsKICAgICBjYXNlIEhUTUxJ
bnB1dEVsZW1lbnQ6OlVSTDoKICAgICAgICAgcmV0dXJuICFLVVJMKEtVUkwoKSwgdmFsdWUpLmlz
VmFsaWQoKTsKICAgICBjYXNlIEhUTUxJbnB1dEVsZW1lbnQ6OkVNQUlMOiB7CkluZGV4OiBXZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJTbGlkZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclNsaWRlci5jcHAJKHJldmlzaW9uIDU4NTM1KQorKysgV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyU2xpZGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAsNiArMzAsNyBAQAog
I2luY2x1ZGUgIkhUTUxJbnB1dEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MRGl2RWxlbWVudC5o
IgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgorI2luY2x1ZGUgIkhUTUxQYXJzZXIuaCIKICNpbmNs
dWRlICJNZWRpYUNvbnRyb2xFbGVtZW50cy5oIgogI2luY2x1ZGUgIk1vdXNlRXZlbnQuaCIKICNp
bmNsdWRlICJSZW5kZXJMYXllci5oIgpAQCAtMzU2LDcgKzM1Nyw3IEBAIHZvaWQgUmVuZGVyU2xp
ZGVyOjpzZXRWYWx1ZUZvclBvc2l0aW9uKGkKICAgICBpZiAoc3R5bGUoKS0+YXBwZWFyYW5jZSgp
ID09IFNsaWRlclZlcnRpY2FsUGFydCB8fCBzdHlsZSgpLT5hcHBlYXJhbmNlKCkgPT0gTWVkaWFW
b2x1bWVTbGlkZXJQYXJ0KQogICAgICAgICBmcmFjdGlvbiA9IDEgLSBmcmFjdGlvbjsKICAgICBk
b3VibGUgdmFsdWUgPSByYW5nZS5jbGFtcFZhbHVlKHJhbmdlLnZhbHVlRnJvbVByb3BvcnRpb24o
ZnJhY3Rpb24pKTsKLSAgICBlbGVtZW50LT5zZXRWYWx1ZUZyb21SZW5kZXJlcihIVE1MSW5wdXRF
bGVtZW50OjpzZXJpYWxpemVGb3JOdW1iZXJUeXBlKHZhbHVlKSk7CisgICAgZWxlbWVudC0+c2V0
VmFsdWVGcm9tUmVuZGVyZXIoc2VyaWFsaXplRm9yTnVtYmVyVHlwZSh2YWx1ZSkpOwogCiAgICAg
Ly8gQWxzbyB1cGRhdGUgdGhlIHBvc2l0aW9uIGlmIGFwcHJvcHJpYXRlLgogICAgIGlmIChwb3Np
dGlvbiAhPSBjdXJyZW50UG9zaXRpb24oKSkgewo=
</data>
<flag name="review"
          id="38779"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>