<?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>13606</bug_id>
          
          <creation_ts>2007-05-06 16:36:21 -0700</creation_ts>
          <short_desc>some functions are virtual that don&apos;t need to be</short_desc>
          <delta_ts>2019-02-06 09:02:53 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>DOM</component>
          <version>523.x (Safari 3)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P4</priority>
          <bug_severity>Enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Darin Adler">darin</reporter>
          <assigned_to name="Darin Adler">darin</assigned_to>
          <cc>cdumez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>10970</commentid>
    <comment_count>0</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-05-06 16:36:21 -0700</bug_when>
    <thetext>I spotted some functions that definitely don&apos;t need to be virtual. I think firstChild and lastChild are pretty big wins -- there&apos;s a way for them to be virtual in Node, but non-virtual in classes like Element.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>10971</commentid>
    <comment_count>1</comment_count>
      <attachid>14379</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-05-06 16:45:41 -0700</bug_when>
    <thetext>Created attachment 14379
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>10972</commentid>
    <comment_count>2</comment_count>
      <attachid>14380</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-05-06 16:48:12 -0700</bug_when>
    <thetext>Created attachment 14380
patch with change log</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>10980</commentid>
    <comment_count>3</comment_count>
      <attachid>14380</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2007-05-06 19:27:57 -0700</bug_when>
    <thetext>Comment on attachment 14380
patch with change log

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>10983</commentid>
    <comment_count>4</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-05-06 20:18:17 -0700</bug_when>
    <thetext>Committed revision 21278.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1502860</commentid>
    <comment_count>5</comment_count>
    <who name="Lucas Forschler">lforschler</who>
    <bug_when>2019-02-06 09:02:53 -0800</bug_when>
    <thetext>Mass moving XML DOM bugs to the &quot;DOM&quot; Component.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>14379</attachid>
            <date>2007-05-06 16:45:41 -0700</date>
            <delta_ts>2007-05-06 16:48:12 -0700</delta_ts>
            <desc>patch</desc>
            <filename>LessVirtualPatch.txt</filename>
            <type>text/plain</type>
            <size>9465</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvZG9tL0F0dHIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvZG9tL0F0
dHIuY3BwCShyZXZpc2lvbiAyMTI3MykKKysrIFdlYkNvcmUvZG9tL0F0dHIuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC01Niw4ICs1Niw4IEBAIHZvaWQgQXR0cjo6Y3JlYXRlVGV4dENoaWxkKCkKICAg
ICAgICAgLy8gVGhpcyBkb2VzIGV2ZXJ5dGhpbmcgYXBwZW5kQ2hpbGQoKSB3b3VsZCBkbyBpbiB0
aGlzIHNpdHVhdGlvbiAoYXNzdW1pbmcgbV9pZ25vcmVDaGlsZHJlbkNoYW5nZWQgd2FzIHNldCks
CiAgICAgICAgIC8vIGJ1dCBtdWNoIG1vcmUgZWZmaWNpZW50bHkuCiAgICAgICAgIHRleHROb2Rl
LT5zZXRQYXJlbnQodGhpcyk7Ci0gICAgICAgIGZhc3RTZXRGaXJzdENoaWxkKHRleHROb2RlLmdl
dCgpKTsKLSAgICAgICAgZmFzdFNldExhc3RDaGlsZCh0ZXh0Tm9kZS5nZXQoKSk7CisgICAgICAg
IHNldEZpcnN0Q2hpbGQodGV4dE5vZGUuZ2V0KCkpOworICAgICAgICBzZXRMYXN0Q2hpbGQodGV4
dE5vZGUuZ2V0KCkpOwogICAgIH0KIH0KIApJbmRleDogV2ViQ29yZS9kb20vQ2hhcmFjdGVyRGF0
YS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9kb20vQ2hhcmFjdGVyRGF0YS5jcHAJKHJldmlz
aW9uIDIxMjczKQorKysgV2ViQ29yZS9kb20vQ2hhcmFjdGVyRGF0YS5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTUzLDExICs1Myw2IEBAIENoYXJhY3RlckRhdGE6On5DaGFyYWN0ZXJEYXRhKCkKICAg
ICBpZihzdHIpIHN0ci0+ZGVyZWYoKTsKIH0KIAotU3RyaW5nIENoYXJhY3RlckRhdGE6OmRhdGEo
KSBjb25zdAotewotICAgIHJldHVybiBzdHI7Ci19Ci0KIHZvaWQgQ2hhcmFjdGVyRGF0YTo6c2V0
RGF0YSggY29uc3QgU3RyaW5nICZfZGF0YSwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgLy8g
Tk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSOiBSYWlzZWQgd2hlbiB0aGUgbm9kZSBpcyByZWFk
b25seQpAQCAtODQsMTEgKzc5LDYgQEAgdm9pZCBDaGFyYWN0ZXJEYXRhOjpzZXREYXRhKCBjb25z
dCBTdHJpbgogICAgIGRvY3VtZW50KCktPnJlbW92ZU1hcmtlcnModGhpcyk7CiB9CiAKLXVuc2ln
bmVkIENoYXJhY3RlckRhdGE6Omxlbmd0aCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIHN0ci0+bGVu
Z3RoKCk7Ci19Ci0KIFN0cmluZyBDaGFyYWN0ZXJEYXRhOjpzdWJzdHJpbmdEYXRhKCBjb25zdCB1
bnNpZ25lZCBvZmZzZXQsIGNvbnN0IHVuc2lnbmVkIGNvdW50LCBFeGNlcHRpb25Db2RlJiBlYykK
IHsKICAgICBlYyA9IDA7CkluZGV4OiBXZWJDb3JlL2RvbS9DaGFyYWN0ZXJEYXRhLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9kb20vQ2hhcmFjdGVyRGF0YS5oCShyZXZpc2lvbiAyMTI3MykKKysr
IFdlYkNvcmUvZG9tL0NoYXJhY3RlckRhdGEuaAkod29ya2luZyBjb3B5KQpAQCAtMzcsMTQgKzM3
LDE0IEBAIHB1YmxpYzoKIAogICAgIC8vIERPTSBtZXRob2RzICYgYXR0cmlidXRlcyBmb3IgQ2hh
cmFjdGVyRGF0YQogCi0gICAgdmlydHVhbCBTdHJpbmcgZGF0YSgpIGNvbnN0OwotICAgIHZpcnR1
YWwgdm9pZCBzZXREYXRhKGNvbnN0IFN0cmluZyYsIEV4Y2VwdGlvbkNvZGUmKTsKLSAgICB2aXJ0
dWFsIHVuc2lnbmVkIGxlbmd0aCgpIGNvbnN0OwotICAgIHZpcnR1YWwgU3RyaW5nIHN1YnN0cmlu
Z0RhdGEodW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBjb3VudCwgRXhjZXB0aW9uQ29kZSYpOwot
ICAgIHZpcnR1YWwgdm9pZCBhcHBlbmREYXRhKGNvbnN0IFN0cmluZyYsIEV4Y2VwdGlvbkNvZGUm
KTsKLSAgICB2aXJ0dWFsIHZvaWQgaW5zZXJ0RGF0YSh1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0
cmluZyYsIEV4Y2VwdGlvbkNvZGUmKTsKLSAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlRGF0YSh1bnNp
Z25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50LCBFeGNlcHRpb25Db2RlJik7Ci0gICAgdmlydHVh
bCB2b2lkIHJlcGxhY2VEYXRhKHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgY291bnQsIGNvbnN0
IFN0cmluZyAmYXJnLCBFeGNlcHRpb25Db2RlJik7CisgICAgU3RyaW5nIGRhdGEoKSBjb25zdCB7
IHJldHVybiBzdHI7IH0KKyAgICB2b2lkIHNldERhdGEoY29uc3QgU3RyaW5nJiwgRXhjZXB0aW9u
Q29kZSYpOworICAgIHVuc2lnbmVkIGxlbmd0aCgpIGNvbnN0IHsgcmV0dXJuIHN0ci0+bGVuZ3Ro
KCk7IH0KKyAgICBTdHJpbmcgc3Vic3RyaW5nRGF0YSh1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVk
IGNvdW50LCBFeGNlcHRpb25Db2RlJik7CisgICAgdm9pZCBhcHBlbmREYXRhKGNvbnN0IFN0cmlu
ZyYsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB2b2lkIGluc2VydERhdGEodW5zaWduZWQgb2Zmc2V0
LCBjb25zdCBTdHJpbmcmLCBFeGNlcHRpb25Db2RlJik7CisgICAgdm9pZCBkZWxldGVEYXRhKHVu
c2lnbmVkIG9mZnNldCwgdW5zaWduZWQgY291bnQsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB2b2lk
IHJlcGxhY2VEYXRhKHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgY291bnQsIGNvbnN0IFN0cmlu
ZyAmYXJnLCBFeGNlcHRpb25Db2RlJik7CiAKICAgICBib29sIGNvbnRhaW5zT25seVdoaXRlc3Bh
Y2UoKSBjb25zdDsKICAgICBib29sIGNvbnRhaW5zT25seVdoaXRlc3BhY2UodW5zaWduZWQgZnJv
bSwgdW5zaWduZWQgbGVuKSBjb25zdDsKSW5kZXg6IFdlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuY3BwCShyZXZpc2lv
biAyMTI3MykKKysrIFdlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xMTQsMTIgKzExNCwxMiBAQCBDb250YWluZXJOb2RlOjp+Q29udGFpbmVyTm9kZSgpCiB9
CiAKIAotTm9kZSogQ29udGFpbmVyTm9kZTo6Zmlyc3RDaGlsZCgpIGNvbnN0CitOb2RlKiBDb250
YWluZXJOb2RlOjp2aXJ0dWFsRmlyc3RDaGlsZCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fZmly
c3RDaGlsZDsKIH0KIAotTm9kZSogQ29udGFpbmVyTm9kZTo6bGFzdENoaWxkKCkgY29uc3QKK05v
ZGUqIENvbnRhaW5lck5vZGU6OnZpcnR1YWxMYXN0Q2hpbGQoKSBjb25zdAogewogICAgIHJldHVy
biBtX2xhc3RDaGlsZDsKIH0KSW5kZXg6IFdlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmgJKHJldmlzaW9uIDIxMjczKQor
KysgV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMiwxNSAr
MzIsMTEgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIAogdHlwZWRlZiB2b2lkICgqTm9kZUNh
bGxiYWNrKShOb2RlKik7CiAKLWNsYXNzIENvbnRhaW5lck5vZGUgOiBwdWJsaWMgRXZlbnRUYXJn
ZXROb2RlCi17CitjbGFzcyBDb250YWluZXJOb2RlIDogcHVibGljIEV2ZW50VGFyZ2V0Tm9kZSB7
CiBwdWJsaWM6CiAgICAgQ29udGFpbmVyTm9kZShEb2N1bWVudCAqZG9jKTsKICAgICB2aXJ0dWFs
IH5Db250YWluZXJOb2RlKCk7CiAKLSAgICB2aXJ0dWFsIE5vZGUqIGZpcnN0Q2hpbGQoKSBjb25z
dDsKLSAgICB2aXJ0dWFsIE5vZGUqIGxhc3RDaGlsZCgpIGNvbnN0OwotCiAgICAgdmlydHVhbCBi
b29sIGluc2VydEJlZm9yZShQYXNzUmVmUHRyPE5vZGU+IG5ld0NoaWxkLCBOb2RlKiByZWZDaGls
ZCwgRXhjZXB0aW9uQ29kZSYpOwogICAgIHZpcnR1YWwgYm9vbCByZXBsYWNlQ2hpbGQoUGFzc1Jl
ZlB0cjxOb2RlPiBuZXdDaGlsZCwgTm9kZSogb2xkQ2hpbGQsIEV4Y2VwdGlvbkNvZGUmKTsKICAg
ICB2aXJ0dWFsIGJvb2wgcmVtb3ZlQ2hpbGQoTm9kZSogY2hpbGQsIEV4Y2VwdGlvbkNvZGUmKTsK
QEAgLTYzLDggKzU5LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBpbnNlcnRlZEludG9U
cmVlKGJvb2wgZGVlcCk7CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZWRGcm9tVHJlZShib29sIGRl
ZXApOwogCi0gICAgTm9kZSogZmFzdEZpcnN0Q2hpbGQoKSBjb25zdCB7IHJldHVybiBtX2ZpcnN0
Q2hpbGQ7IH0KLSAgICBOb2RlKiBmYXN0TGFzdENoaWxkKCkgY29uc3QgeyByZXR1cm4gbV9sYXN0
Q2hpbGQ7IH0KKyAgICBOb2RlKiBmaXJzdENoaWxkKCkgY29uc3QgeyByZXR1cm4gbV9maXJzdENo
aWxkOyB9CisgICAgTm9kZSogbGFzdENoaWxkKCkgY29uc3QgeyByZXR1cm4gbV9sYXN0Q2hpbGQ7
IH0KIAogICAgIHZvaWQgcmVtb3ZlQWxsQ2hpbGRyZW4oKTsKICAgICB2b2lkIHJlbW92ZUNoaWxk
cmVuKCk7CkBAIC03MywxNSArNjksMTggQEAgcHVibGljOgogcHJvdGVjdGVkOgogICAgIHN0YXRp
YyB2b2lkIHF1ZXVlUG9zdEF0dGFjaENhbGxiYWNrKE5vZGVDYWxsYmFjaywgTm9kZSopOwogCi0g
ICAgdm9pZCBmYXN0U2V0Rmlyc3RDaGlsZChOb2RlKiBjaGlsZCkgeyBtX2ZpcnN0Q2hpbGQgPSBj
aGlsZDsgfQotICAgIHZvaWQgZmFzdFNldExhc3RDaGlsZChOb2RlKiBjaGlsZCkgeyBtX2xhc3RD
aGlsZCA9IGNoaWxkOyB9CisgICAgdm9pZCBzZXRGaXJzdENoaWxkKE5vZGUqIGNoaWxkKSB7IG1f
Zmlyc3RDaGlsZCA9IGNoaWxkOyB9CisgICAgdm9pZCBzZXRMYXN0Q2hpbGQoTm9kZSogY2hpbGQp
IHsgbV9sYXN0Q2hpbGQgPSBjaGlsZDsgfQogICAgIAogcHJpdmF0ZToKLSAgICBOb2RlKiBtX2Zp
cnN0Q2hpbGQ7Ci0gICAgTm9kZSogbV9sYXN0Q2hpbGQ7CisgICAgdmlydHVhbCBOb2RlKiB2aXJ0
dWFsRmlyc3RDaGlsZCgpIGNvbnN0OworICAgIHZpcnR1YWwgTm9kZSogdmlydHVhbExhc3RDaGls
ZCgpIGNvbnN0OwogCiAgICAgYm9vbCBnZXRVcHBlckxlZnRDb3JuZXIoaW50JiB4LCBpbnQmIHkp
IGNvbnN0OwogICAgIGJvb2wgZ2V0TG93ZXJSaWdodENvcm5lcihpbnQmIHgsIGludCYgeSkgY29u
c3Q7CisKKyAgICBOb2RlKiBtX2ZpcnN0Q2hpbGQ7CisgICAgTm9kZSogbV9sYXN0Q2hpbGQ7CiB9
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBXZWJDb3JlL2RvbS9Eb2N1bWVudC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCShyZXZpc2lvbiAyMTI3
MykKKysrIFdlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTAyMSw3
ICsxMDIxLDcgQEAgdm9pZCBEb2N1bWVudDo6cmVjYWxjU3R5bGUoU3R5bGVDaGFuZ2UgYwogICAg
ICAgICAgICAgb2xkU3R5bGUtPmRlcmVmKG1fcmVuZGVyQXJlbmEpOwogICAgIH0KIAotICAgIGZv
ciAoTm9kZSogbiA9IGZhc3RGaXJzdENoaWxkKCk7IG47IG4gPSBuLT5uZXh0U2libGluZygpKQor
ICAgIGZvciAoTm9kZSogbiA9IGZpcnN0Q2hpbGQoKTsgbjsgbiA9IG4tPm5leHRTaWJsaW5nKCkp
CiAgICAgICAgIGlmIChjaGFuZ2UgPj0gSW5oZXJpdCB8fCBuLT5oYXNDaGFuZ2VkQ2hpbGQoKSB8
fCBuLT5jaGFuZ2VkKCkpCiAgICAgICAgICAgICBuLT5yZWNhbGNTdHlsZShjaGFuZ2UpOwogCklu
ZGV4OiBXZWJDb3JlL2RvbS9FbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2RvbS9F
bGVtZW50LmNwcAkocmV2aXNpb24gMjEyNzMpCisrKyBXZWJDb3JlL2RvbS9FbGVtZW50LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNzEwLDcgKzcxMCw3IEBAIHZvaWQgRWxlbWVudDo6cmVjYWxjU3R5
bGUoU3R5bGVDaGFuZ2UgY2gKICAgICAgICAgfQogICAgIH0KIAotICAgIGZvciAoTm9kZSAqbiA9
IGZhc3RGaXJzdENoaWxkKCk7IG47IG4gPSBuLT5uZXh0U2libGluZygpKSB7CisgICAgZm9yIChO
b2RlICpuID0gZmlyc3RDaGlsZCgpOyBuOyBuID0gbi0+bmV4dFNpYmxpbmcoKSkgewogICAgICAg
ICBpZiAoY2hhbmdlID49IEluaGVyaXQgfHwgbi0+aXNUZXh0Tm9kZSgpIHx8IG4tPmhhc0NoYW5n
ZWRDaGlsZCgpIHx8IG4tPmNoYW5nZWQoKSkKICAgICAgICAgICAgIG4tPnJlY2FsY1N0eWxlKGNo
YW5nZSk7CiAgICAgfQpJbmRleDogV2ViQ29yZS9kb20vTmFtZWRBdHRyTWFwLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9kb20vTmFtZWRBdHRyTWFwLmgJKHJldmlzaW9uIDIxMjczKQorKysgV2Vi
Q29yZS9kb20vTmFtZWRBdHRyTWFwLmgJKHdvcmtpbmcgY29weSkKQEAgLTYxLDcgKzYxLDcgQEAg
cHVibGljOgogICAgIHVuc2lnbmVkIGxlbmd0aCgpIGNvbnN0IHsgcmV0dXJuIGxlbjsgfQogCiAg
ICAgLy8gT3RoZXIgbWV0aG9kcyAobm90IHBhcnQgb2YgRE9NKQotICAgIEF0dHJpYnV0ZSogYXR0
cmlidXRlSXRlbSh1bnNpZ25lZCBpbmRleCkgY29uc3QgeyByZXR1cm4gYXR0cnMgPyBhdHRyc1tp
bmRleF0gOiAwOyB9CisgICAgQXR0cmlidXRlKiBhdHRyaWJ1dGVJdGVtKHVuc2lnbmVkIGluZGV4
KSBjb25zdCB7IHJldHVybiBhdHRyc1tpbmRleF07IH0KICAgICBBdHRyaWJ1dGUqIGdldEF0dHJp
YnV0ZUl0ZW0oY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSkgY29uc3Q7CiAgICAgQXR0cmlidXRl
KiBnZXRBdHRyaWJ1dGVJdGVtKGNvbnN0IFN0cmluZyYgbmFtZSkgY29uc3Q7CiAgICAgdmlydHVh
bCBib29sIGlzUmVhZE9ubHlOb2RlKCk7CkluZGV4OiBXZWJDb3JlL2RvbS9Ob2RlLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL2RvbS9Ob2RlLmNwcAkocmV2aXNpb24gMjEyNzMpCisrKyBXZWJD
b3JlL2RvbS9Ob2RlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTk4LDcgKzE5OCw3IEBAIFN0cmlu
ZyBOb2RlOjpub2RlVmFsdWUoKSBjb25zdAogICByZXR1cm4gU3RyaW5nKCk7CiB9CiAKLXZvaWQg
Tm9kZTo6c2V0Tm9kZVZhbHVlKCBjb25zdCBTdHJpbmcgJi8qX25vZGVWYWx1ZSovLCBFeGNlcHRp
b25Db2RlJiBlYykKK3ZvaWQgTm9kZTo6c2V0Tm9kZVZhbHVlKGNvbnN0IFN0cmluZyYgLypub2Rl
VmFsdWUqLywgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgLy8gTk9fTU9ESUZJQ0FUSU9OX0FM
TE9XRURfRVJSOiBSYWlzZWQgd2hlbiB0aGUgbm9kZSBpcyByZWFkb25seQogICAgIGlmIChpc1Jl
YWRPbmx5Tm9kZSgpKSB7CkBAIC0yMDYsNyArMjA2LDcgQEAgdm9pZCBOb2RlOjpzZXROb2RlVmFs
dWUoIGNvbnN0IFN0cmluZyAmLwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgLy8gYmUg
ZGVmYXVsdCBub2RlVmFsdWUgaXMgbnVsbCwgc28gc2V0dGluZyBpdCBoYXMgbm8gZWZmZWN0Cisg
ICAgLy8gYnkgZGVmYXVsdCBub2RlVmFsdWUgaXMgbnVsbCwgc28gc2V0dGluZyBpdCBoYXMgbm8g
ZWZmZWN0CiB9CiAKIFBhc3NSZWZQdHI8Tm9kZUxpc3Q+IE5vZGU6OmNoaWxkTm9kZXMoKQpAQCAt
MjE3LDE0ICsyMTcsMTQgQEAgUGFzc1JlZlB0cjxOb2RlTGlzdD4gTm9kZTo6Y2hpbGROb2Rlcygp
CiAgICAgcmV0dXJuIG5ldyBDaGlsZE5vZGVMaXN0KHRoaXMsICZtX25vZGVMaXN0cy0+bV9jaGls
ZE5vZGVMaXN0Q2FjaGVzKTsKIH0KIAotTm9kZSAqTm9kZTo6Zmlyc3RDaGlsZCgpIGNvbnN0CitO
b2RlKiBOb2RlOjp2aXJ0dWFsRmlyc3RDaGlsZCgpIGNvbnN0CiB7Ci0gIHJldHVybiAwOworICAg
IHJldHVybiAwOwogfQogCi1Ob2RlICpOb2RlOjpsYXN0Q2hpbGQoKSBjb25zdAorTm9kZSogTm9k
ZTo6dmlydHVhbExhc3RDaGlsZCgpIGNvbnN0CiB7Ci0gIHJldHVybiAwOworICAgIHJldHVybiAw
OwogfQogCiBOb2RlICpOb2RlOjpsYXN0RGVzY2VuZGFudCgpIGNvbnN0CkluZGV4OiBXZWJDb3Jl
L2RvbS9Ob2RlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9kb20vTm9kZS5oCShyZXZpc2lvbiAy
MTI3MykKKysrIFdlYkNvcmUvZG9tL05vZGUuaAkod29ya2luZyBjb3B5KQpAQCAtOTcsOCArOTcs
OCBAQCBwdWJsaWM6CiAgICAgTm9kZSogcHJldmlvdXNTaWJsaW5nKCkgY29uc3QgeyByZXR1cm4g
bV9wcmV2aW91czsgfQogICAgIE5vZGUqIG5leHRTaWJsaW5nKCkgY29uc3QgeyByZXR1cm4gbV9u
ZXh0OyB9CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPE5vZGVMaXN0PiBjaGlsZE5vZGVzKCk7Ci0g
ICAgdmlydHVhbCBOb2RlKiBmaXJzdENoaWxkKCkgY29uc3Q7Ci0gICAgdmlydHVhbCBOb2RlKiBs
YXN0Q2hpbGQoKSBjb25zdDsKKyAgICBOb2RlKiBmaXJzdENoaWxkKCkgY29uc3QgeyByZXR1cm4g
dmlydHVhbEZpcnN0Q2hpbGQoKTsgfQorICAgIE5vZGUqIGxhc3RDaGlsZCgpIGNvbnN0IHsgcmV0
dXJuIHZpcnR1YWxMYXN0Q2hpbGQoKTsgfQogICAgIHZpcnR1YWwgYm9vbCBoYXNBdHRyaWJ1dGVz
KCkgY29uc3Q7CiAgICAgdmlydHVhbCBOYW1lZEF0dHJNYXAqIGF0dHJpYnV0ZXMoKSBjb25zdDsK
IApAQCAtNDgyLDYgKzQ4Miw5IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBFbGVtZW50KiBh
bmNlc3RvckVsZW1lbnQoKSBjb25zdDsKKworICAgIHZpcnR1YWwgTm9kZSogdmlydHVhbEZpcnN0
Q2hpbGQoKSBjb25zdDsKKyAgICB2aXJ0dWFsIE5vZGUqIHZpcnR1YWxMYXN0Q2hpbGQoKSBjb25z
dDsKIH07CiAKIH0gLy9uYW1lc3BhY2UKSW5kZXg6IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0VsZW1l
bnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0VsZW1lbnQuY3BwCShy
ZXZpc2lvbiAyMTI3MykKKysrIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0VsZW1lbnQuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xNDYsNyArMTQ2LDcgQEAgdm9pZCBTVkdFbGVtZW50OjpwYXJzZU1hcHBl
ZEF0dHJpYnV0ZShNYQogCiBib29sIFNWR0VsZW1lbnQ6OmhhdmVMb2FkZWRSZXF1aXJlZFJlc291
cmNlcygpCiB7Ci0gICAgTm9kZSogY2hpbGQgPSBmYXN0Rmlyc3RDaGlsZCgpOworICAgIE5vZGUq
IGNoaWxkID0gZmlyc3RDaGlsZCgpOwogICAgIHdoaWxlIChjaGlsZCkgewogICAgICAgICBpZiAo
Y2hpbGQtPmlzU1ZHRWxlbWVudCgpICYmICFzdGF0aWNfY2FzdDxTVkdFbGVtZW50Kj4oY2hpbGQp
LT5oYXZlTG9hZGVkUmVxdWlyZWRSZXNvdXJjZXMoKSkKICAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>14380</attachid>
            <date>2007-05-06 16:48:12 -0700</date>
            <delta_ts>2007-05-06 19:27:57 -0700</delta_ts>
            <desc>patch with change log</desc>
            <filename>LessVirtualPatch.txt</filename>
            <type>text/plain</type>
            <size>12429</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyMTI3NikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNTAgQEAKKzIwMDctMDUtMDYgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29t
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIC0gaHR0
cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM2MDYKKyAgICAgICAgICBzb21l
IGZ1bmN0aW9ucyBhcmUgdmlydHVhbCB0aGF0IGRvbid0IG5lZWQgdG8gYmUKKworICAgICAgICAq
IGRvbS9Ob2RlLmg6IE1hZGUgZmlyc3QvbGFzdENoaWxkIGJlIGlubGluZSBmdW5jdGlvbnMgdGhh
dCBjYWxsIHZpcnR1YWwgZnVuY3Rpb25zLgorICAgICAgICBUaGlzIGxldHMgdXMgaGlkZSB0aGUg
ZnVuY3Rpb25zIHdpdGggYW5vdGhlciBpbmxpbmUgZnVuY3Rpb24gaW4gYSBkZXJpdmVkIGNsYXNz
LAorICAgICAgICB5ZXQgc3RpbGwgb3ZlcnJpZGUgdGhlIGJlaGF2aW9yIGhlcmUgaW4gdGhlIGJh
c2UgY2xhc3MgYnkgb3ZlcnJpZGluZyB0aGUgdmlydHVhbAorICAgICAgICBmdW5jdGlvbnMgdG9v
LgorICAgICAgICAqIGRvbS9Ob2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6OnZpcnR1
YWxGaXJzdENoaWxkKTogUmVuYW1lZCB2aXJ0dWFsIGZ1bmN0aW9ucy4gVGhlcmUgYXJlIG5vdwor
ICAgICAgICBub24tdmlydHVhbCBpbmxpbmUgZnVuY3Rpb25zIHRoYXQgY2FsbCB0aGVzZSB2aXJ0
dWFsIGZ1bmN0aW9ucy4KKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6OnZpcnR1YWxMYXN0Q2hpbGQp
OiBEaXR0by4KKworICAgICAgICAqIGRvbS9Db250YWluZXJOb2RlLmg6IEFkZGVkIG5vbi12aXJ0
dWFsIGZpcnN0L2xhc3RDaGlsZCBmdW5jdGlvbnMgdGhhdCBoaWRlIHRoZSBvbmVzCisgICAgICAg
IGluaGVyaXRlZCBmcm9tIHRoZSBOb2RlIGNsYXNzOyB0aGVzZSBhbHNvIHJlcGxhY2UgdGhlIGZh
c3RGaXJzdC9MYXN0Q2hpbGQgZnVuY3Rpb25zLAorICAgICAgICBhbmQgdHJhbnNwYXJlbnRseSBn
aXZlIGNhbGxlcnMgdGhlIGZhc3RlciBmb3JtIGlmIHRoZXkgaGF2ZSBhIHBvaW50ZXIgb2YgdGhl
IHJpZ2h0CisgICAgICAgIHR5cGUuIEJ1dCBzdGlsbCBvdmVycmlkZSB0aGUgdmlydHVhbCBmdW5j
dGlvbnMgbmFtZWQgdmlydHVhbEZpcnN0L0xhc3RDaGlsZCwgYmVjYXVzZQorICAgICAgICB0aG9z
ZSBjYW4gc3RpbGwgYmUgY2FsbGVkIHRocm91Z2ggYSBOb2RlKi4gUmVtb3ZlZCB0aGUgImZhc3Qi
IGZyb20gdGhlIG5hbWVzIG9mCisgICAgICAgIGZhc3RTZXRGaXJzdC9MYXN0Q2hpbGQuCisgICAg
ICAgICogZG9tL0NvbnRhaW5lck5vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29udGFpbmVy
Tm9kZTo6dmlydHVhbEZpcnN0Q2hpbGQpOiBSZW5hbWVkIHZpcnR1YWwgZnVuY3Rpb25zLiBUaGVy
ZSBhcmUgbm93CisgICAgICAgIGFsc28gbm9uLXZpcnR1YWwgaW5saW5lIHZlcnNpb25zLgorICAg
ICAgICAoV2ViQ29yZTo6Q29udGFpbmVyTm9kZTo6dmlydHVhbExhc3RDaGlsZCk6IERpdHRvLgor
CisgICAgICAgICogZG9tL0NoYXJhY3RlckRhdGEuY3BwOiBSZW1vdmVkIGltcGxlbWVudGF0aW9u
cyBvZiBkYXRhIGFuZCBsZW5ndGggZnVuY3RvbnMuCisgICAgICAgICogZG9tL0NoYXJhY3RlckRh
dGEuaDogTWFkZSBkYXRhLCBzZXREYXRhLCBsZW5ndGgsIHN1YnN0cmluZ0RhdGEsIGFwcGVuZERh
dGEsCisgICAgICAgIGluc2VydERhdGEsIGRlbGV0ZURhdGEsIGFuZCByZXBsYWNlRGF0YSBhbGwg
bm9uLXZpcnR1YWwsIGFuZCBtYWRlIGRhdGEgYW5kIGxlbmd0aAorICAgICAgICBib3RoIGJlIGlu
bGluZS4KKworICAgICAgICAqIGRvbS9OYW1lZEF0dHJNYXAuaDogKFdlYkNvcmU6Ok5hbWVkQXR0
ck1hcDo6YXR0cmlidXRlSXRlbSk6IFJlbW92ZWQgYSBudWxsIGNoZWNrCisgICAgICAgIGZyb20g
dGhpcyBmdW5jdGlvbi4gSWYgdGhlIGxlbmd0aCBvZiB0aGUgbWFwIGlzIGtub3duIHRvIGJlIGdy
ZWF0ZXIgdGhhbiAwLCB0aGVuCisgICAgICAgIHRoZSBudWxsIGNoZWNrIGlzbid0IGtub3cuIEJ1
dCBpZiB0aGUgbGVuZ3RoIG9mIHRoZSBtYXAgaGFzbid0IGJlZW4gY2hlY2tlZCBhdCBhbGwsCisg
ICAgICAgIHRoZW4gaXQncyB1bnNhZmUgdG8gY2FsbCB0aGlzIGZ1bmN0aW9uIHNpbmNlIGl0IGRv
ZXNuJ3QgcmFuZ2UgY2hlY2sgdGhlIGFycmF5CisgICAgICAgIGluZGV4LiBUaHVzIHRoZSBudWxs
IGNoZWNrIGlzIG5ldmVyIG5lZWRlZC4gSSBhbHNvIGxvb2tlZCBhdCBhbGwgY2FsbGVycy4KKwor
ICAgICAgICAqIGRvbS9BdHRyLmNwcDogKFdlYkNvcmU6OkF0dHI6OmNyZWF0ZVRleHRDaGlsZCk6
CisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDogKFdlYkNvcmU6OkRvY3VtZW50OjpyZWNhbGNT
dHlsZSk6CisgICAgICAgICogZG9tL0VsZW1lbnQuY3BwOiAoV2ViQ29yZTo6RWxlbWVudDo6cmVj
YWxjU3R5bGUpOgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdFbGVtZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlNWR0VsZW1lbnQ6OmhhdmVMb2FkZWRSZXF1aXJlZFJlc291cmNlcyk6CisgICAg
ICAgIFJlbW92ZWQgImZhc3QiIHByZWZpeCBmcm9tIGNhbGxzIHRvIGZhc3RGaXJzdC9MYXN0Q2hp
bGQgYW5kIGZhc3RTZXRGaXJzdC9MYXN0Q2hsbGQuCisgICAgICAgIEl0J3Mgbm90IG5lZWRlZCBh
bnkgbW9yZSAtLSB5b3Ugc3RpbGwgZ2V0IGZhc3QgYmVoYXZpb3IgaWYgdGhlIHBvaW50ZXIgaGFz
IGEgdHlwZQorICAgICAgICB0aGF0J3MgQ29udGFpbmVyTm9kZSBvciBkZXJpdmVkIGZyb20gaXQu
CisKIDIwMDctMDUtMDYgIE1pdHogUGV0dGVsICA8bWl0ekB3ZWJraXQub3JnPgogCiAgICAgICAg
IFJldmlld2VkIGJ5IEh5YXR0LgpJbmRleDogV2ViQ29yZS9kb20vQXR0ci5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9kb20vQXR0ci5jcHAJKHJldmlzaW9uIDIxMjczKQorKysgV2ViQ29yZS9k
b20vQXR0ci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU2LDggKzU2LDggQEAgdm9pZCBBdHRyOjpj
cmVhdGVUZXh0Q2hpbGQoKQogICAgICAgICAvLyBUaGlzIGRvZXMgZXZlcnl0aGluZyBhcHBlbmRD
aGlsZCgpIHdvdWxkIGRvIGluIHRoaXMgc2l0dWF0aW9uIChhc3N1bWluZyBtX2lnbm9yZUNoaWxk
cmVuQ2hhbmdlZCB3YXMgc2V0KSwKICAgICAgICAgLy8gYnV0IG11Y2ggbW9yZSBlZmZpY2llbnRs
eS4KICAgICAgICAgdGV4dE5vZGUtPnNldFBhcmVudCh0aGlzKTsKLSAgICAgICAgZmFzdFNldEZp
cnN0Q2hpbGQodGV4dE5vZGUuZ2V0KCkpOwotICAgICAgICBmYXN0U2V0TGFzdENoaWxkKHRleHRO
b2RlLmdldCgpKTsKKyAgICAgICAgc2V0Rmlyc3RDaGlsZCh0ZXh0Tm9kZS5nZXQoKSk7CisgICAg
ICAgIHNldExhc3RDaGlsZCh0ZXh0Tm9kZS5nZXQoKSk7CiAgICAgfQogfQogCkluZGV4OiBXZWJD
b3JlL2RvbS9DaGFyYWN0ZXJEYXRhLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2RvbS9DaGFy
YWN0ZXJEYXRhLmNwcAkocmV2aXNpb24gMjEyNzMpCisrKyBXZWJDb3JlL2RvbS9DaGFyYWN0ZXJE
YXRhLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTMsMTEgKzUzLDYgQEAgQ2hhcmFjdGVyRGF0YTo6
fkNoYXJhY3RlckRhdGEoKQogICAgIGlmKHN0cikgc3RyLT5kZXJlZigpOwogfQogCi1TdHJpbmcg
Q2hhcmFjdGVyRGF0YTo6ZGF0YSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIHN0cjsKLX0KLQogdm9p
ZCBDaGFyYWN0ZXJEYXRhOjpzZXREYXRhKCBjb25zdCBTdHJpbmcgJl9kYXRhLCBFeGNlcHRpb25D
b2RlJiBlYykKIHsKICAgICAvLyBOT19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlI6IFJhaXNlZCB3
aGVuIHRoZSBub2RlIGlzIHJlYWRvbmx5CkBAIC04NCwxMSArNzksNiBAQCB2b2lkIENoYXJhY3Rl
ckRhdGE6OnNldERhdGEoIGNvbnN0IFN0cmluCiAgICAgZG9jdW1lbnQoKS0+cmVtb3ZlTWFya2Vy
cyh0aGlzKTsKIH0KIAotdW5zaWduZWQgQ2hhcmFjdGVyRGF0YTo6bGVuZ3RoKCkgY29uc3QKLXsK
LSAgICByZXR1cm4gc3RyLT5sZW5ndGgoKTsKLX0KLQogU3RyaW5nIENoYXJhY3RlckRhdGE6OnN1
YnN0cmluZ0RhdGEoIGNvbnN0IHVuc2lnbmVkIG9mZnNldCwgY29uc3QgdW5zaWduZWQgY291bnQs
IEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIGVjID0gMDsKSW5kZXg6IFdlYkNvcmUvZG9tL0No
YXJhY3RlckRhdGEuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2RvbS9DaGFyYWN0ZXJEYXRhLmgJ
KHJldmlzaW9uIDIxMjczKQorKysgV2ViQ29yZS9kb20vQ2hhcmFjdGVyRGF0YS5oCSh3b3JraW5n
IGNvcHkpCkBAIC0zNywxNCArMzcsMTQgQEAgcHVibGljOgogCiAgICAgLy8gRE9NIG1ldGhvZHMg
JiBhdHRyaWJ1dGVzIGZvciBDaGFyYWN0ZXJEYXRhCiAKLSAgICB2aXJ0dWFsIFN0cmluZyBkYXRh
KCkgY29uc3Q7Ci0gICAgdmlydHVhbCB2b2lkIHNldERhdGEoY29uc3QgU3RyaW5nJiwgRXhjZXB0
aW9uQ29kZSYpOwotICAgIHZpcnR1YWwgdW5zaWduZWQgbGVuZ3RoKCkgY29uc3Q7Ci0gICAgdmly
dHVhbCBTdHJpbmcgc3Vic3RyaW5nRGF0YSh1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50
LCBFeGNlcHRpb25Db2RlJik7Ci0gICAgdmlydHVhbCB2b2lkIGFwcGVuZERhdGEoY29uc3QgU3Ry
aW5nJiwgRXhjZXB0aW9uQ29kZSYpOwotICAgIHZpcnR1YWwgdm9pZCBpbnNlcnREYXRhKHVuc2ln
bmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYpOwotICAgIHZpcnR1YWwg
dm9pZCBkZWxldGVEYXRhKHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgY291bnQsIEV4Y2VwdGlv
bkNvZGUmKTsKLSAgICB2aXJ0dWFsIHZvaWQgcmVwbGFjZURhdGEodW5zaWduZWQgb2Zmc2V0LCB1
bnNpZ25lZCBjb3VudCwgY29uc3QgU3RyaW5nICZhcmcsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICBT
dHJpbmcgZGF0YSgpIGNvbnN0IHsgcmV0dXJuIHN0cjsgfQorICAgIHZvaWQgc2V0RGF0YShjb25z
dCBTdHJpbmcmLCBFeGNlcHRpb25Db2RlJik7CisgICAgdW5zaWduZWQgbGVuZ3RoKCkgY29uc3Qg
eyByZXR1cm4gc3RyLT5sZW5ndGgoKTsgfQorICAgIFN0cmluZyBzdWJzdHJpbmdEYXRhKHVuc2ln
bmVkIG9mZnNldCwgdW5zaWduZWQgY291bnQsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB2b2lkIGFw
cGVuZERhdGEoY29uc3QgU3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYpOworICAgIHZvaWQgaW5zZXJ0
RGF0YSh1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYsIEV4Y2VwdGlvbkNvZGUmKTsKKyAg
ICB2b2lkIGRlbGV0ZURhdGEodW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBjb3VudCwgRXhjZXB0
aW9uQ29kZSYpOworICAgIHZvaWQgcmVwbGFjZURhdGEodW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25l
ZCBjb3VudCwgY29uc3QgU3RyaW5nICZhcmcsIEV4Y2VwdGlvbkNvZGUmKTsKIAogICAgIGJvb2wg
Y29udGFpbnNPbmx5V2hpdGVzcGFjZSgpIGNvbnN0OwogICAgIGJvb2wgY29udGFpbnNPbmx5V2hp
dGVzcGFjZSh1bnNpZ25lZCBmcm9tLCB1bnNpZ25lZCBsZW4pIGNvbnN0OwpJbmRleDogV2ViQ29y
ZS9kb20vQ29udGFpbmVyTm9kZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9kb20vQ29udGFp
bmVyTm9kZS5jcHAJKHJldmlzaW9uIDIxMjczKQorKysgV2ViQ29yZS9kb20vQ29udGFpbmVyTm9k
ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTExNCwxMiArMTE0LDEyIEBAIENvbnRhaW5lck5vZGU6
On5Db250YWluZXJOb2RlKCkKIH0KIAogCi1Ob2RlKiBDb250YWluZXJOb2RlOjpmaXJzdENoaWxk
KCkgY29uc3QKK05vZGUqIENvbnRhaW5lck5vZGU6OnZpcnR1YWxGaXJzdENoaWxkKCkgY29uc3QK
IHsKICAgICByZXR1cm4gbV9maXJzdENoaWxkOwogfQogCi1Ob2RlKiBDb250YWluZXJOb2RlOjps
YXN0Q2hpbGQoKSBjb25zdAorTm9kZSogQ29udGFpbmVyTm9kZTo6dmlydHVhbExhc3RDaGlsZCgp
IGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fbGFzdENoaWxkOwogfQpJbmRleDogV2ViQ29yZS9kb20v
Q29udGFpbmVyTm9kZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUu
aAkocmV2aXNpb24gMjEyNzMpCisrKyBXZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmgJKHdvcmtp
bmcgY29weSkKQEAgLTMyLDE0ICszMiwxMyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgCiB0
eXBlZGVmIHZvaWQgKCpOb2RlQ2FsbGJhY2spKE5vZGUqKTsKIAotY2xhc3MgQ29udGFpbmVyTm9k
ZSA6IHB1YmxpYyBFdmVudFRhcmdldE5vZGUKLXsKK2NsYXNzIENvbnRhaW5lck5vZGUgOiBwdWJs
aWMgRXZlbnRUYXJnZXROb2RlIHsKIHB1YmxpYzoKICAgICBDb250YWluZXJOb2RlKERvY3VtZW50
ICpkb2MpOwogICAgIHZpcnR1YWwgfkNvbnRhaW5lck5vZGUoKTsKIAotICAgIHZpcnR1YWwgTm9k
ZSogZmlyc3RDaGlsZCgpIGNvbnN0OwotICAgIHZpcnR1YWwgTm9kZSogbGFzdENoaWxkKCkgY29u
c3Q7CisgICAgTm9kZSogZmlyc3RDaGlsZCgpIGNvbnN0IHsgcmV0dXJuIG1fZmlyc3RDaGlsZDsg
fQorICAgIE5vZGUqIGxhc3RDaGlsZCgpIGNvbnN0IHsgcmV0dXJuIG1fbGFzdENoaWxkOyB9CiAK
ICAgICB2aXJ0dWFsIGJvb2wgaW5zZXJ0QmVmb3JlKFBhc3NSZWZQdHI8Tm9kZT4gbmV3Q2hpbGQs
IE5vZGUqIHJlZkNoaWxkLCBFeGNlcHRpb25Db2RlJik7CiAgICAgdmlydHVhbCBib29sIHJlcGxh
Y2VDaGlsZChQYXNzUmVmUHRyPE5vZGU+IG5ld0NoaWxkLCBOb2RlKiBvbGRDaGlsZCwgRXhjZXB0
aW9uQ29kZSYpOwpAQCAtNjMsOSArNjIsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGlu
c2VydGVkSW50b1RyZWUoYm9vbCBkZWVwKTsKICAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlZEZyb21U
cmVlKGJvb2wgZGVlcCk7CiAKLSAgICBOb2RlKiBmYXN0Rmlyc3RDaGlsZCgpIGNvbnN0IHsgcmV0
dXJuIG1fZmlyc3RDaGlsZDsgfQotICAgIE5vZGUqIGZhc3RMYXN0Q2hpbGQoKSBjb25zdCB7IHJl
dHVybiBtX2xhc3RDaGlsZDsgfQotCiAgICAgdm9pZCByZW1vdmVBbGxDaGlsZHJlbigpOwogICAg
IHZvaWQgcmVtb3ZlQ2hpbGRyZW4oKTsKICAgICB2b2lkIGNsb25lQ2hpbGROb2RlcyhOb2RlKiBj
bG9uZSk7CkBAIC03MywxNSArNjksMTggQEAgcHVibGljOgogcHJvdGVjdGVkOgogICAgIHN0YXRp
YyB2b2lkIHF1ZXVlUG9zdEF0dGFjaENhbGxiYWNrKE5vZGVDYWxsYmFjaywgTm9kZSopOwogCi0g
ICAgdm9pZCBmYXN0U2V0Rmlyc3RDaGlsZChOb2RlKiBjaGlsZCkgeyBtX2ZpcnN0Q2hpbGQgPSBj
aGlsZDsgfQotICAgIHZvaWQgZmFzdFNldExhc3RDaGlsZChOb2RlKiBjaGlsZCkgeyBtX2xhc3RD
aGlsZCA9IGNoaWxkOyB9CisgICAgdm9pZCBzZXRGaXJzdENoaWxkKE5vZGUqIGNoaWxkKSB7IG1f
Zmlyc3RDaGlsZCA9IGNoaWxkOyB9CisgICAgdm9pZCBzZXRMYXN0Q2hpbGQoTm9kZSogY2hpbGQp
IHsgbV9sYXN0Q2hpbGQgPSBjaGlsZDsgfQogICAgIAogcHJpdmF0ZToKLSAgICBOb2RlKiBtX2Zp
cnN0Q2hpbGQ7Ci0gICAgTm9kZSogbV9sYXN0Q2hpbGQ7CisgICAgdmlydHVhbCBOb2RlKiB2aXJ0
dWFsRmlyc3RDaGlsZCgpIGNvbnN0OworICAgIHZpcnR1YWwgTm9kZSogdmlydHVhbExhc3RDaGls
ZCgpIGNvbnN0OwogCiAgICAgYm9vbCBnZXRVcHBlckxlZnRDb3JuZXIoaW50JiB4LCBpbnQmIHkp
IGNvbnN0OwogICAgIGJvb2wgZ2V0TG93ZXJSaWdodENvcm5lcihpbnQmIHgsIGludCYgeSkgY29u
c3Q7CisKKyAgICBOb2RlKiBtX2ZpcnN0Q2hpbGQ7CisgICAgTm9kZSogbV9sYXN0Q2hpbGQ7CiB9
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBXZWJDb3JlL2RvbS9Eb2N1bWVudC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCShyZXZpc2lvbiAyMTI3
MykKKysrIFdlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTAyMSw3
ICsxMDIxLDcgQEAgdm9pZCBEb2N1bWVudDo6cmVjYWxjU3R5bGUoU3R5bGVDaGFuZ2UgYwogICAg
ICAgICAgICAgb2xkU3R5bGUtPmRlcmVmKG1fcmVuZGVyQXJlbmEpOwogICAgIH0KIAotICAgIGZv
ciAoTm9kZSogbiA9IGZhc3RGaXJzdENoaWxkKCk7IG47IG4gPSBuLT5uZXh0U2libGluZygpKQor
ICAgIGZvciAoTm9kZSogbiA9IGZpcnN0Q2hpbGQoKTsgbjsgbiA9IG4tPm5leHRTaWJsaW5nKCkp
CiAgICAgICAgIGlmIChjaGFuZ2UgPj0gSW5oZXJpdCB8fCBuLT5oYXNDaGFuZ2VkQ2hpbGQoKSB8
fCBuLT5jaGFuZ2VkKCkpCiAgICAgICAgICAgICBuLT5yZWNhbGNTdHlsZShjaGFuZ2UpOwogCklu
ZGV4OiBXZWJDb3JlL2RvbS9FbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2RvbS9F
bGVtZW50LmNwcAkocmV2aXNpb24gMjEyNzMpCisrKyBXZWJDb3JlL2RvbS9FbGVtZW50LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNzEwLDcgKzcxMCw3IEBAIHZvaWQgRWxlbWVudDo6cmVjYWxjU3R5
bGUoU3R5bGVDaGFuZ2UgY2gKICAgICAgICAgfQogICAgIH0KIAotICAgIGZvciAoTm9kZSAqbiA9
IGZhc3RGaXJzdENoaWxkKCk7IG47IG4gPSBuLT5uZXh0U2libGluZygpKSB7CisgICAgZm9yIChO
b2RlICpuID0gZmlyc3RDaGlsZCgpOyBuOyBuID0gbi0+bmV4dFNpYmxpbmcoKSkgewogICAgICAg
ICBpZiAoY2hhbmdlID49IEluaGVyaXQgfHwgbi0+aXNUZXh0Tm9kZSgpIHx8IG4tPmhhc0NoYW5n
ZWRDaGlsZCgpIHx8IG4tPmNoYW5nZWQoKSkKICAgICAgICAgICAgIG4tPnJlY2FsY1N0eWxlKGNo
YW5nZSk7CiAgICAgfQpJbmRleDogV2ViQ29yZS9kb20vTmFtZWRBdHRyTWFwLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9kb20vTmFtZWRBdHRyTWFwLmgJKHJldmlzaW9uIDIxMjczKQorKysgV2Vi
Q29yZS9kb20vTmFtZWRBdHRyTWFwLmgJKHdvcmtpbmcgY29weSkKQEAgLTYxLDcgKzYxLDcgQEAg
cHVibGljOgogICAgIHVuc2lnbmVkIGxlbmd0aCgpIGNvbnN0IHsgcmV0dXJuIGxlbjsgfQogCiAg
ICAgLy8gT3RoZXIgbWV0aG9kcyAobm90IHBhcnQgb2YgRE9NKQotICAgIEF0dHJpYnV0ZSogYXR0
cmlidXRlSXRlbSh1bnNpZ25lZCBpbmRleCkgY29uc3QgeyByZXR1cm4gYXR0cnMgPyBhdHRyc1tp
bmRleF0gOiAwOyB9CisgICAgQXR0cmlidXRlKiBhdHRyaWJ1dGVJdGVtKHVuc2lnbmVkIGluZGV4
KSBjb25zdCB7IHJldHVybiBhdHRyc1tpbmRleF07IH0KICAgICBBdHRyaWJ1dGUqIGdldEF0dHJp
YnV0ZUl0ZW0oY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSkgY29uc3Q7CiAgICAgQXR0cmlidXRl
KiBnZXRBdHRyaWJ1dGVJdGVtKGNvbnN0IFN0cmluZyYgbmFtZSkgY29uc3Q7CiAgICAgdmlydHVh
bCBib29sIGlzUmVhZE9ubHlOb2RlKCk7CkluZGV4OiBXZWJDb3JlL2RvbS9Ob2RlLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL2RvbS9Ob2RlLmNwcAkocmV2aXNpb24gMjEyNzMpCisrKyBXZWJD
b3JlL2RvbS9Ob2RlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTk4LDcgKzE5OCw3IEBAIFN0cmlu
ZyBOb2RlOjpub2RlVmFsdWUoKSBjb25zdAogICByZXR1cm4gU3RyaW5nKCk7CiB9CiAKLXZvaWQg
Tm9kZTo6c2V0Tm9kZVZhbHVlKCBjb25zdCBTdHJpbmcgJi8qX25vZGVWYWx1ZSovLCBFeGNlcHRp
b25Db2RlJiBlYykKK3ZvaWQgTm9kZTo6c2V0Tm9kZVZhbHVlKGNvbnN0IFN0cmluZyYgLypub2Rl
VmFsdWUqLywgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgLy8gTk9fTU9ESUZJQ0FUSU9OX0FM
TE9XRURfRVJSOiBSYWlzZWQgd2hlbiB0aGUgbm9kZSBpcyByZWFkb25seQogICAgIGlmIChpc1Jl
YWRPbmx5Tm9kZSgpKSB7CkBAIC0yMDYsNyArMjA2LDcgQEAgdm9pZCBOb2RlOjpzZXROb2RlVmFs
dWUoIGNvbnN0IFN0cmluZyAmLwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgLy8gYmUg
ZGVmYXVsdCBub2RlVmFsdWUgaXMgbnVsbCwgc28gc2V0dGluZyBpdCBoYXMgbm8gZWZmZWN0Cisg
ICAgLy8gYnkgZGVmYXVsdCBub2RlVmFsdWUgaXMgbnVsbCwgc28gc2V0dGluZyBpdCBoYXMgbm8g
ZWZmZWN0CiB9CiAKIFBhc3NSZWZQdHI8Tm9kZUxpc3Q+IE5vZGU6OmNoaWxkTm9kZXMoKQpAQCAt
MjE3LDE0ICsyMTcsMTQgQEAgUGFzc1JlZlB0cjxOb2RlTGlzdD4gTm9kZTo6Y2hpbGROb2Rlcygp
CiAgICAgcmV0dXJuIG5ldyBDaGlsZE5vZGVMaXN0KHRoaXMsICZtX25vZGVMaXN0cy0+bV9jaGls
ZE5vZGVMaXN0Q2FjaGVzKTsKIH0KIAotTm9kZSAqTm9kZTo6Zmlyc3RDaGlsZCgpIGNvbnN0CitO
b2RlKiBOb2RlOjp2aXJ0dWFsRmlyc3RDaGlsZCgpIGNvbnN0CiB7Ci0gIHJldHVybiAwOworICAg
IHJldHVybiAwOwogfQogCi1Ob2RlICpOb2RlOjpsYXN0Q2hpbGQoKSBjb25zdAorTm9kZSogTm9k
ZTo6dmlydHVhbExhc3RDaGlsZCgpIGNvbnN0CiB7Ci0gIHJldHVybiAwOworICAgIHJldHVybiAw
OwogfQogCiBOb2RlICpOb2RlOjpsYXN0RGVzY2VuZGFudCgpIGNvbnN0CkluZGV4OiBXZWJDb3Jl
L2RvbS9Ob2RlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9kb20vTm9kZS5oCShyZXZpc2lvbiAy
MTI3MykKKysrIFdlYkNvcmUvZG9tL05vZGUuaAkod29ya2luZyBjb3B5KQpAQCAtOTcsOCArOTcs
OCBAQCBwdWJsaWM6CiAgICAgTm9kZSogcHJldmlvdXNTaWJsaW5nKCkgY29uc3QgeyByZXR1cm4g
bV9wcmV2aW91czsgfQogICAgIE5vZGUqIG5leHRTaWJsaW5nKCkgY29uc3QgeyByZXR1cm4gbV9u
ZXh0OyB9CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPE5vZGVMaXN0PiBjaGlsZE5vZGVzKCk7Ci0g
ICAgdmlydHVhbCBOb2RlKiBmaXJzdENoaWxkKCkgY29uc3Q7Ci0gICAgdmlydHVhbCBOb2RlKiBs
YXN0Q2hpbGQoKSBjb25zdDsKKyAgICBOb2RlKiBmaXJzdENoaWxkKCkgY29uc3QgeyByZXR1cm4g
dmlydHVhbEZpcnN0Q2hpbGQoKTsgfQorICAgIE5vZGUqIGxhc3RDaGlsZCgpIGNvbnN0IHsgcmV0
dXJuIHZpcnR1YWxMYXN0Q2hpbGQoKTsgfQogICAgIHZpcnR1YWwgYm9vbCBoYXNBdHRyaWJ1dGVz
KCkgY29uc3Q7CiAgICAgdmlydHVhbCBOYW1lZEF0dHJNYXAqIGF0dHJpYnV0ZXMoKSBjb25zdDsK
IApAQCAtNDgyLDYgKzQ4Miw5IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBFbGVtZW50KiBh
bmNlc3RvckVsZW1lbnQoKSBjb25zdDsKKworICAgIHZpcnR1YWwgTm9kZSogdmlydHVhbEZpcnN0
Q2hpbGQoKSBjb25zdDsKKyAgICB2aXJ0dWFsIE5vZGUqIHZpcnR1YWxMYXN0Q2hpbGQoKSBjb25z
dDsKIH07CiAKIH0gLy9uYW1lc3BhY2UKSW5kZXg6IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0VsZW1l
bnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0VsZW1lbnQuY3BwCShy
ZXZpc2lvbiAyMTI3MykKKysrIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0VsZW1lbnQuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xNDYsNyArMTQ2LDcgQEAgdm9pZCBTVkdFbGVtZW50OjpwYXJzZU1hcHBl
ZEF0dHJpYnV0ZShNYQogCiBib29sIFNWR0VsZW1lbnQ6OmhhdmVMb2FkZWRSZXF1aXJlZFJlc291
cmNlcygpCiB7Ci0gICAgTm9kZSogY2hpbGQgPSBmYXN0Rmlyc3RDaGlsZCgpOworICAgIE5vZGUq
IGNoaWxkID0gZmlyc3RDaGlsZCgpOwogICAgIHdoaWxlIChjaGlsZCkgewogICAgICAgICBpZiAo
Y2hpbGQtPmlzU1ZHRWxlbWVudCgpICYmICFzdGF0aWNfY2FzdDxTVkdFbGVtZW50Kj4oY2hpbGQp
LT5oYXZlTG9hZGVkUmVxdWlyZWRSZXNvdXJjZXMoKSkKICAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsK
</data>
<flag name="review"
          id="5860"
          type_id="1"
          status="+"
          setter="hyatt"
    />
          </attachment>
      

    </bug>

</bugzilla>