<?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>6753</bug_id>
          
          <creation_ts>2006-01-24 00:51:45 -0800</creation_ts>
          <short_desc>REGRESSION (r12282-12292): Crash loading TinyMCE test app</short_desc>
          <delta_ts>2006-01-31 21:20:45 -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>WebKit Misc.</component>
          <version>420+</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>P1</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>6644</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Justin Garcia">justin.garcia</reporter>
          <assigned_to name="Darin Adler">darin</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>29680</commentid>
    <comment_count>0</comment_count>
    <who name="Justin Garcia">justin.garcia</who>
    <bug_when>2006-01-24 00:51:45 -0800</bug_when>
    <thetext>Goto:
http://tinymce.moxiecode.com/example.php?example=true

Crash.
This wasn&apos;t caused by any TinyMCE fix.  It was caused by a change made between subversion revision numbers r12282 and r12292.  The fixes for 6705 and 6642 look suspicious.  Narrowing this down.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>29682</commentid>
    <comment_count>1</comment_count>
    <who name="Joost de Valk (AlthA)">joost</who>
    <bug_when>2006-01-24 00:59:03 -0800</bug_when>
    <thetext>Adding regression keyword, and as it is a regression, upping to P1.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>29708</commentid>
    <comment_count>2</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2006-01-24 08:41:59 -0800</bug_when>
    <thetext>I think I have a fix for this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>29723</commentid>
    <comment_count>3</comment_count>
      <attachid>5914</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2006-01-24 10:07:07 -0800</bug_when>
    <thetext>Created attachment 5914
tested fix, although it needs ChangeLog and test cases</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>29724</commentid>
    <comment_count>4</comment_count>
      <attachid>5915</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2006-01-24 10:10:25 -0800</bug_when>
    <thetext>Created attachment 5915
tested fix, although it needs ChangeLog and regression tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>29759</commentid>
    <comment_count>5</comment_count>
      <attachid>5915</attachid>
    <who name="Justin Garcia">justin.garcia</who>
    <bug_when>2006-01-24 14:53:05 -0800</bug_when>
    <thetext>Comment on attachment 5915
tested fix, although it needs ChangeLog and regression tests

r=me after some small changes darin &amp; i discussed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>30874</commentid>
    <comment_count>6</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2006-01-31 21:20:45 -0800</bug_when>
    <thetext>Removing Regression keyword from bugs already fixed.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>5914</attachid>
            <date>2006-01-24 10:07:07 -0800</date>
            <delta_ts>2006-01-24 10:10:25 -0800</delta_ts>
            <desc>tested fix, although it needs ChangeLog and test cases</desc>
            <filename>DOMMutationPatch.txt</filename>
            <type>text/plain</type>
            <size>16409</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">SW5kZXg6IGtodG1sL3htbC9Db250YWluZXJOb2RlSW1wbC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtodG1s
L3htbC9Db250YWluZXJOb2RlSW1wbC5oCShyZXZpc2lvbiAxMjMzMykKKysrIGtodG1sL3htbC9D
b250YWluZXJOb2RlSW1wbC5oCSh3b3JraW5nIGNvcHkpCkBAIC02OSwxMSArNjksNiBAQAogICAg
IE5vZGVJbXBsKiBtX2ZpcnN0Q2hpbGQ7CiAgICAgTm9kZUltcGwqIG1fbGFzdENoaWxkOwogCi0g
ICAgRXhjZXB0aW9uQ29kZSB3aWxsUmVtb3ZlQ2hpbGQoTm9kZUltcGwqIGNoaWxkKTsKLQotICAg
IHZvaWQgZGlzcGF0Y2hDaGlsZEluc2VydGVkRXZlbnRzKE5vZGVJbXBsKiBjaGlsZCwgRXhjZXB0
aW9uQ29kZSYpOwotICAgIHZvaWQgZGlzcGF0Y2hDaGlsZFJlbW92YWxFdmVudHMoTm9kZUltcGwq
IGNoaWxkLCBFeGNlcHRpb25Db2RlJik7Ci0KICAgICBib29sIGdldFVwcGVyTGVmdENvcm5lcihp
bnQmIHgsIGludCYgeSkgY29uc3Q7CiAgICAgYm9vbCBnZXRMb3dlclJpZ2h0Q29ybmVyKGludCYg
eCwgaW50JiB5KSBjb25zdDsKIH07CkluZGV4OiBraHRtbC94bWwvQ29udGFpbmVyTm9kZUltcGwu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIGtodG1sL3htbC9Db250YWluZXJOb2RlSW1wbC5jcHAJKHJldmlz
aW9uIDEyMzMzKQorKysga2h0bWwveG1sL0NvbnRhaW5lck5vZGVJbXBsLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMzEsMTYgKzMxLDE5IEBACiAjaW5jbHVkZSAiSW5saW5lVGV4dEJveC5oIgogI2lu
Y2x1ZGUgIkludFJlY3QuaCIKICNpbmNsdWRlICJSZW5kZXJUZXh0LmgiCisjaW5jbHVkZSAiU3lz
dGVtVGltZS5oIgogI2luY2x1ZGUgImRvbTJfZXZlbnRzaW1wbC5oIgogI2luY2x1ZGUgImRvbV9l
eGNlcHRpb24uaCIKICNpbmNsdWRlICJkb21fbm9kZS5oIgogI2luY2x1ZGUgInJlbmRlcl90aGVt
ZS5oIgotI2luY2x1ZGUgPHFkYXRldGltZS5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHVz
aW5nIG5hbWVzcGFjZSBFdmVudE5hbWVzOwogCitzdGF0aWMgdm9pZCBkaXNwYXRjaENoaWxkSW5z
ZXJ0aW9uRXZlbnRzKE5vZGVJbXBsKiwgaW50JiBleGNlcHRpb25jb2RlKTsKK3N0YXRpYyB2b2lk
IGRpc3BhdGNoQ2hpbGRSZW1vdmFsRXZlbnRzKE5vZGVJbXBsKiwgaW50JiBleGNlcHRpb25jb2Rl
KTsKKwogQ29udGFpbmVyTm9kZUltcGw6OkNvbnRhaW5lck5vZGVJbXBsKERvY3VtZW50SW1wbCog
ZG9jKQogICAgIDogTm9kZUltcGwoZG9jKSwgbV9maXJzdENoaWxkKDApLCBtX2xhc3RDaGlsZCgw
KQogewpAQCAtMTQyLDQ0ICsxNDUsNjkgQEAKICAgICAgICAgcmV0dXJuIG5ld0NoaWxkOwogCiAg
ICAgLy8gTm93IGFjdHVhbGx5IGFkZCB0aGUgY2hpbGQocmVuKQotICAgIE5vZGVJbXBsKiBuZXh0
Q2hpbGQ7Ci0gICAgTm9kZUltcGwqIGNoaWxkID0gaXNGcmFnbWVudCA/IG5ld0NoaWxkLT5maXJz
dENoaWxkKCkgOiBuZXdDaGlsZC5nZXQoKTsKKyAgICBpZiAocmVmQ2hpbGQtPnByZXZpb3VzU2li
bGluZygpID09IG5ld0NoaWxkIHx8IHJlZkNoaWxkID09IG5ld0NoaWxkKSAvLyBub3RoaW5nIHRv
IGRvCisgICAgICAgIHJldHVybiBuZXdDaGlsZDsKIAotICAgIE5vZGVJbXBsKiBwcmV2ID0gcmVm
Q2hpbGQtPnByZXZpb3VzU2libGluZygpOwotICAgIGlmIChwcmV2ID09IG5ld0NoaWxkIHx8IHJl
ZkNoaWxkID09IG5ld0NoaWxkKSAvLyBub3RoaW5nIHRvIGRvCi0gICAgICAgIHJldHVybiBuZXdD
aGlsZDsKLSAgICAKKyAgICBSZWZQdHI8Tm9kZUltcGw+IG5leHQgPSByZWZDaGlsZDsKKworICAg
IFJlZlB0cjxOb2RlSW1wbD4gY2hpbGQgPSBpc0ZyYWdtZW50ID8gbmV3Q2hpbGQtPmZpcnN0Q2hp
bGQoKSA6IG5ld0NoaWxkOwogICAgIHdoaWxlIChjaGlsZCkgewotICAgICAgICBuZXh0Q2hpbGQg
PSBpc0ZyYWdtZW50ID8gY2hpbGQtPm5leHRTaWJsaW5nKCkgOiAwOworICAgICAgICBQYXNzUmVm
UHRyPE5vZGVJbXBsPiBuZXh0Q2hpbGQgPSBpc0ZyYWdtZW50ID8gY2hpbGQtPm5leHRTaWJsaW5n
KCkgOiAwOwogCi0gICAgICAgIC8vIElmIGNoaWxkIGlzIGFscmVhZHkgcHJlc2VudCBpbiB0aGUg
dHJlZSwgZmlyc3QgcmVtb3ZlIGl0Ci0gICAgICAgIE5vZGVJbXBsICpuZXdQYXJlbnQgPSBjaGls
ZC0+cGFyZW50Tm9kZSgpOwotICAgICAgICBpZiAobmV3UGFyZW50KQotICAgICAgICAgICAgbmV3
UGFyZW50LT5yZW1vdmVDaGlsZChjaGlsZCwgZWMpOworICAgICAgICAvLyBJZiBjaGlsZCBpcyBh
bHJlYWR5IHByZXNlbnQgaW4gdGhlIHRyZWUsIGZpcnN0IHJlbW92ZSBpdCBmcm9tIHRoZSBvbGQg
bG9jYXRpb24uCisgICAgICAgIGlmIChOb2RlSW1wbCogb2xkUGFyZW50ID0gY2hpbGQtPnBhcmVu
dE5vZGUoKSkKKyAgICAgICAgICAgIG9sZFBhcmVudC0+cmVtb3ZlQ2hpbGQoY2hpbGQuZ2V0KCks
IGVjKTsKICAgICAgICAgaWYgKGVjKQogICAgICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICAgICAg
Ly8gQWRkIGNoaWxkIGluIHRoZSBjb3JyZWN0IHBvc2l0aW9uCisgICAgICAgIC8vIEZJWE1FOiBB
ZnRlciBzZW5kaW5nIHRoZSBtdXRhdGlvbiBldmVudHMsICJ0aGlzIiBjb3VsZCBiZSBkZXN0cm95
ZWQuCisgICAgICAgIC8vIFdlIGNhbiBwcmV2ZW50IHRoYXQgYnkgZG9pbmcgYSAicmVmIiwgYnV0
IGZpcnN0IHdlIGhhdmUgdG8gbWFrZSBzdXJlCisgICAgICAgIC8vIHRoYXQgbm8gY2FsbGVycyBj
YWxsIHdpdGggcmVmIGNvdW50ID09IDAgYW5kIHBhcmVudCA9IDAgKGFzIG9mIHRoaXMKKyAgICAg
ICAgLy8gd3JpdGluZywgdGhlcmUgYXJlIGRlZmluaXRlbHkgY2FsbGVycyB3aG8gY2FsbCB0aGF0
IHdheSkuCisKKyAgICAgICAgLy8gRHVlIHRvIGFyYml0cmFyeSBjb2RlIHJ1bm5pbmcgaW4gcmVz
cG9uc2UgdG8gYSBET00gbXV0YXRpb24gZXZlbnQgaXQncworICAgICAgICAvLyBwb3NzaWJsZSB0
aGF0ICJuZXh0IiBpcyBubyBsb25nZXIgYSBjaGlsZCBvZiAidGhpcyIuCisgICAgICAgIC8vIEl0
J3MgYWxzbyBwb3NzaWJsZSB0aGF0ICJjaGlsZCIgaGFzIGJlZW4gaW5zZXJ0ZWQgZWxzZXdoZXJl
LgorICAgICAgICAvLyBJbiBlaXRoZXIgb2YgdGhvc2UgY2FzZXMsIHdlJ2xsIGp1c3Qgc3RvcC4K
KyAgICAgICAgaWYgKG5leHQtPnBhcmVudE5vZGUoKSAhPSB0aGlzKQorICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIGlmIChjaGlsZC0+cGFyZW50Tm9kZSgpKQorICAgICAgICAgICAgYnJlYWs7
CisKKyAgICAgICAgYXNzZXJ0KCFjaGlsZC0+bmV4dFNpYmxpbmcoKSk7CisgICAgICAgIGFzc2Vy
dCghY2hpbGQtPnByZXZpb3VzU2libGluZygpKTsKKworICAgICAgICAvLyBBZGQgY2hpbGQgYmVm
b3JlICJuZXh0Ii4KICAgICAgICAgZm9yYmlkRXZlbnREaXNwYXRjaCgpOwotICAgICAgICBpZiAo
cHJldikKLSAgICAgICAgICAgIHByZXYtPnNldE5leHRTaWJsaW5nKGNoaWxkKTsKLSAgICAgICAg
ZWxzZQotICAgICAgICAgICAgbV9maXJzdENoaWxkID0gY2hpbGQ7Ci0gICAgICAgIHJlZkNoaWxk
LT5zZXRQcmV2aW91c1NpYmxpbmcoY2hpbGQpOworICAgICAgICBOb2RlSW1wbCogcHJldjsKKyAg
ICAgICAgaWYgKG5leHQpIHsKKyAgICAgICAgICAgIHByZXYgPSBuZXh0LT5wcmV2aW91c1NpYmxp
bmcoKTsKKyAgICAgICAgICAgIGFzc2VydChtX2xhc3RDaGlsZCAhPSBwcmV2KTsKKyAgICAgICAg
ICAgIG5leHQtPnNldFByZXZpb3VzU2libGluZyhjaGlsZC5nZXQoKSk7CisgICAgICAgIH0gZWxz
ZSB7CisgICAgICAgICAgICBwcmV2ID0gbV9sYXN0Q2hpbGQ7CisgICAgICAgICAgICBtX2xhc3RD
aGlsZCA9IGNoaWxkLmdldCgpOworICAgICAgICB9CisgICAgICAgIGlmIChwcmV2KSB7CisgICAg
ICAgICAgICBhc3NlcnQobV9maXJzdENoaWxkICE9IG5leHQpOworICAgICAgICAgICAgYXNzZXJ0
KHByZXYtPm5leHRTaWJsaW5nKCkgPT0gbmV4dCk7CisgICAgICAgICAgICBwcmV2LT5zZXROZXh0
U2libGluZyhjaGlsZC5nZXQoKSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBhc3Nl
cnQobV9maXJzdENoaWxkID09IG5leHQpOworICAgICAgICAgICAgbV9maXJzdENoaWxkID0gY2hp
bGQuZ2V0KCk7CisgICAgICAgIH0KICAgICAgICAgY2hpbGQtPnNldFBhcmVudCh0aGlzKTsKICAg
ICAgICAgY2hpbGQtPnNldFByZXZpb3VzU2libGluZyhwcmV2KTsKLSAgICAgICAgY2hpbGQtPnNl
dE5leHRTaWJsaW5nKHJlZkNoaWxkKTsKKyAgICAgICAgY2hpbGQtPnNldE5leHRTaWJsaW5nKG5l
eHQuZ2V0KCkpOwogICAgICAgICBhbGxvd0V2ZW50RGlzcGF0Y2goKTsKIAotICAgICAgICAvLyBB
ZGQgY2hpbGQgdG8gdGhlIHJlbmRlcmluZyB0cmVlCi0gICAgICAgIC8vICMjIyBzaG91bGQgd2Ug
ZGV0YWNoKCkgaXQgZmlyc3QgaWYgaXQncyBhbHJlYWR5IGF0dGFjaGVkPworICAgICAgICAvLyBB
ZGQgY2hpbGQgdG8gdGhlIHJlbmRlcmluZyB0cmVlLgogICAgICAgICBpZiAoYXR0YWNoZWQoKSAm
JiAhY2hpbGQtPmF0dGFjaGVkKCkpCiAgICAgICAgICAgICBjaGlsZC0+YXR0YWNoKCk7Ci0gICAg
ICAgIAotICAgICAgICAvLyBEaXNwYXRjaCB0aGUgbXV0YXRpb24gZXZlbnRzCi0gICAgICAgIGRp
c3BhdGNoQ2hpbGRJbnNlcnRlZEV2ZW50cyhjaGlsZCwgZWMpOwogCi0gICAgICAgIHByZXYgPSBj
aGlsZDsKKyAgICAgICAgLy8gRGlzcGF0Y2ggdGhlIG11dGF0aW9uIGV2ZW50cy4KKyAgICAgICAg
ZGlzcGF0Y2hDaGlsZEluc2VydGlvbkV2ZW50cyhjaGlsZC5nZXQoKSwgZWMpOworCiAgICAgICAg
IGNoaWxkID0gbmV4dENoaWxkOwogICAgIH0KIApAQCAtMjA2LDUzICsyMzQsNzggQEAKICAgICAg
ICAgcmV0dXJuIDA7CiAgICAgfQogCi0gICAgYm9vbCBpc0ZyYWdtZW50ID0gbmV3Q2hpbGQtPm5v
ZGVUeXBlKCkgPT0gTm9kZTo6RE9DVU1FTlRfRlJBR01FTlRfTk9ERTsKLSAgICBSZWZQdHI8Tm9k
ZUltcGw+IGNoaWxkID0gaXNGcmFnbWVudCA/IG5ld0NoaWxkLT5maXJzdENoaWxkKCkgOiBuZXdD
aGlsZC5nZXQoKTsKLQotICAgIC8vIFJlbW92ZSB0aGUgb2xkIGNoaWxkCiAgICAgUmVmUHRyPE5v
ZGVJbXBsPiBwcmV2ID0gb2xkQ2hpbGQtPnByZXZpb3VzU2libGluZygpOwotICAgIFJlZlB0cjxO
b2RlSW1wbD4gbmV4dCA9IG9sZENoaWxkLT5uZXh0U2libGluZygpOwogCisgICAgLy8gUmVtb3Zl
IHRoZSBub2RlIHdlJ3JlIHJlcGxhY2luZwogICAgIFBhc3NSZWZQdHI8Tm9kZUltcGw+IHJlbW92
ZWRDaGlsZCA9IHJlbW92ZUNoaWxkKG9sZENoaWxkLCBlYyk7CiAgICAgaWYgKGVjKQogICAgICAg
ICByZXR1cm4gMDsKIAotICAgIC8vIElmIHRoZSBuZXcgY2hpbGQgd2FzIHJpZ2h0IGJlZm9yZSBv
ciByaWdodCBhZnRlciB0aGUgb2xkIGNoaWxkLCBub3RoaW5nIGVsc2UgbmVlZHMgdG8gY2hhbmdl
Ci0gICAgaWYgKHByZXYgPT0gY2hpbGQgfHwgbmV4dCA9PSBjaGlsZCkKLSAgICAgICAgY2hpbGQg
PSAwOworICAgIC8vIEZJWE1FOiBBZnRlciBzZW5kaW5nIHRoZSBtdXRhdGlvbiBldmVudHMsICJ0
aGlzIiBjb3VsZCBiZSBkZXN0cm95ZWQuCisgICAgLy8gV2UgY2FuIHByZXZlbnQgdGhhdCBieSBk
b2luZyBhICJyZWYiLCBidXQgZmlyc3Qgd2UgaGF2ZSB0byBtYWtlIHN1cmUKKyAgICAvLyB0aGF0
IG5vIGNhbGxlcnMgY2FsbCB3aXRoIHJlZiBjb3VudCA9PSAwIGFuZCBwYXJlbnQgPSAwIChhcyBv
ZiB0aGlzCisgICAgLy8gd3JpdGluZywgdGhlcmUgYXJlIGRlZmluaXRlbHkgY2FsbGVycyB3aG8g
Y2FsbCB0aGF0IHdheSkuCisKKyAgICBib29sIGlzRnJhZ21lbnQgPSBuZXdDaGlsZC0+bm9kZVR5
cGUoKSA9PSBOb2RlOjpET0NVTUVOVF9GUkFHTUVOVF9OT0RFOworCiAgICAgLy8gQWRkIHRoZSBu
ZXcgY2hpbGQocmVuKQorICAgIFJlZlB0cjxOb2RlSW1wbD4gY2hpbGQgPSBpc0ZyYWdtZW50ID8g
bmV3Q2hpbGQtPmZpcnN0Q2hpbGQoKSA6IG5ld0NoaWxkLmdldCgpOwogICAgIHdoaWxlIChjaGls
ZCkgeworICAgICAgICAvLyBJZiB0aGUgbmV3IGNoaWxkIGlzIGFscmVhZHkgaW4gdGhlIHJpZ2h0
IHBsYWNlLCB3ZSdyZSBkb25lLgorICAgICAgICBpZiAocHJldiA9PSBjaGlsZCB8fCBwcmV2ID09
IGNoaWxkLT5wcmV2aW91c1NpYmxpbmcoKSkKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAg
IC8vIEZvciBhIGZyYWdtZW50IHdlIGhhdmUgbW9yZSBjaGlsZHJlbiB0byBkby4KICAgICAgICAg
UmVmUHRyPE5vZGVJbXBsPiBuZXh0Q2hpbGQgPSBpc0ZyYWdtZW50ID8gY2hpbGQtPm5leHRTaWJs
aW5nKCkgOiAwOwogCi0gICAgICAgIC8vIElmIGNoaWxkIGlzIGFscmVhZHkgcHJlc2VudCBpbiB0
aGUgdHJlZSwgZmlyc3QgcmVtb3ZlIGl0Ci0gICAgICAgIE5vZGVJbXBsKiBuZXdQYXJlbnQgPSBj
aGlsZC0+cGFyZW50Tm9kZSgpOwotICAgICAgICBpZiAobmV3UGFyZW50KQotICAgICAgICAgICAg
bmV3UGFyZW50LT5yZW1vdmVDaGlsZChjaGlsZC5nZXQoKSwgZWMpOworICAgICAgICAvLyBSZW1v
dmUgY2hpbGQgZnJvbSBpdHMgb2xkIHBvc2l0aW9uLgorICAgICAgICBpZiAoTm9kZUltcGwqIG9s
ZFBhcmVudCA9IGNoaWxkLT5wYXJlbnROb2RlKCkpCisgICAgICAgICAgICBvbGRQYXJlbnQtPnJl
bW92ZUNoaWxkKGNoaWxkLmdldCgpLCBlYyk7CiAgICAgICAgIGlmIChlYykKICAgICAgICAgICAg
IHJldHVybiAwOwogCi0gICAgICAgIC8vIEFkZCBjaGlsZCBpbiB0aGUgY29ycmVjdCBwb3NpdGlv
bgorICAgICAgICAvLyBEdWUgdG8gYXJiaXRyYXJ5IGNvZGUgcnVubmluZyBpbiByZXNwb25zZSB0
byBhIERPTSBtdXRhdGlvbiBldmVudCBpdCdzCisgICAgICAgIC8vIHBvc3NpYmxlIHRoYXQgInBy
ZXYiIGlzIG5vIGxvbmdlciBhIGNoaWxkIG9mICJ0aGlzIi4KKyAgICAgICAgLy8gSXQncyBhbHNv
IHBvc3NpYmxlIHRoYXQgImNoaWxkIiBoYXMgYmVlbiBpbnNlcnRlZCBlbHNld2hlcmUuCisgICAg
ICAgIC8vIEluIGVpdGhlciBvZiB0aG9zZSBjYXNlcywgd2UnbGwganVzdCBzdG9wLgorICAgICAg
ICBpZiAocHJldiAmJiBwcmV2LT5wYXJlbnROb2RlKCkgIT0gdGhpcykKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICBpZiAoY2hpbGQtPnBhcmVudE5vZGUoKSkKKyAgICAgICAgICAgIGJyZWFr
OworCisgICAgICAgIGFzc2VydCghY2hpbGQtPm5leHRTaWJsaW5nKCkpOworICAgICAgICBhc3Nl
cnQoIWNoaWxkLT5wcmV2aW91c1NpYmxpbmcoKSk7CisKKyAgICAgICAgLy8gQWRkIGNoaWxkIGFm
dGVyICJwcmV2Ii4KICAgICAgICAgZm9yYmlkRXZlbnREaXNwYXRjaCgpOwotICAgICAgICBpZiAo
cHJldikKKyAgICAgICAgTm9kZUltcGwqIG5leHQ7CisgICAgICAgIGlmIChwcmV2KSB7CisgICAg
ICAgICAgICBuZXh0ID0gcHJldi0+bmV4dFNpYmxpbmcoKTsKKyAgICAgICAgICAgIGFzc2VydCht
X2ZpcnN0Q2hpbGQgIT0gbmV4dCk7CiAgICAgICAgICAgICBwcmV2LT5zZXROZXh0U2libGluZyhj
aGlsZC5nZXQoKSk7Ci0gICAgICAgIGlmIChuZXh0KQorICAgICAgICB9IGVsc2UgeworICAgICAg
ICAgICAgbmV4dCA9IG1fZmlyc3RDaGlsZDsKKyAgICAgICAgICAgIG1fZmlyc3RDaGlsZCA9IGNo
aWxkLmdldCgpOworICAgICAgICB9CisgICAgICAgIGlmIChuZXh0KSB7CisgICAgICAgICAgICBh
c3NlcnQobV9sYXN0Q2hpbGQgIT0gcHJldik7CisgICAgICAgICAgICBhc3NlcnQobmV4dC0+cHJl
dmlvdXNTaWJsaW5nKCkgPT0gcHJldik7CiAgICAgICAgICAgICBuZXh0LT5zZXRQcmV2aW91c1Np
YmxpbmcoY2hpbGQuZ2V0KCkpOwotICAgICAgICBpZiAoIXByZXYpCi0gICAgICAgICAgICBtX2Zp
cnN0Q2hpbGQgPSBjaGlsZC5nZXQoKTsKLSAgICAgICAgaWYgKCFuZXh0KQorICAgICAgICB9IGVs
c2UgeworICAgICAgICAgICAgYXNzZXJ0KG1fbGFzdENoaWxkID09IHByZXYpOwogICAgICAgICAg
ICAgbV9sYXN0Q2hpbGQgPSBjaGlsZC5nZXQoKTsKKyAgICAgICAgfQogICAgICAgICBjaGlsZC0+
c2V0UGFyZW50KHRoaXMpOwogICAgICAgICBjaGlsZC0+c2V0UHJldmlvdXNTaWJsaW5nKHByZXYu
Z2V0KCkpOwotICAgICAgICBjaGlsZC0+c2V0TmV4dFNpYmxpbmcobmV4dC5nZXQoKSk7CisgICAg
ICAgIGNoaWxkLT5zZXROZXh0U2libGluZyhuZXh0KTsKICAgICAgICAgYWxsb3dFdmVudERpc3Bh
dGNoKCk7CiAKICAgICAgICAgLy8gQWRkIGNoaWxkIHRvIHRoZSByZW5kZXJpbmcgdHJlZQotICAg
ICAgICAvLyAjIyMgc2hvdWxkIHdlIGRldGFjaCgpIGl0IGZpcnN0IGlmIGl0J3MgYWxyZWFkeSBh
dHRhY2hlZD8KICAgICAgICAgaWYgKGF0dGFjaGVkKCkgJiYgIWNoaWxkLT5hdHRhY2hlZCgpKQog
ICAgICAgICAgICAgY2hpbGQtPmF0dGFjaCgpOwogCiAgICAgICAgIC8vIERpc3BhdGNoIHRoZSBt
dXRhdGlvbiBldmVudHMKLSAgICAgICAgZGlzcGF0Y2hDaGlsZEluc2VydGVkRXZlbnRzKGNoaWxk
LmdldCgpLCBlYyk7CisgICAgICAgIGRpc3BhdGNoQ2hpbGRJbnNlcnRpb25FdmVudHMoY2hpbGQu
Z2V0KCksIGVjKTsKIAogICAgICAgICBwcmV2ID0gY2hpbGQ7CiAgICAgICAgIGNoaWxkID0gbmV4
dENoaWxkOwpAQCAtMjcwLDcgKzMyMyw3IEBACiAgICAgICAgIG4tPndpbGxSZW1vdmUoKTsKIH0K
IAotaW50IENvbnRhaW5lck5vZGVJbXBsOjp3aWxsUmVtb3ZlQ2hpbGQoTm9kZUltcGwgKmNoaWxk
KQorc3RhdGljIGludCB3aWxsUmVtb3ZlQ2hpbGQoTm9kZUltcGwgKmNoaWxkKQogewogICAgIGlu
dCBleGNlcHRpb25Db2RlID0gMDsKIApAQCAtMzE1LDYgKzM2OCwxNyBAQAogICAgIGlmIChlYykK
ICAgICAgICAgcmV0dXJuIDA7CiAKKyAgICAvLyBNdXRhdGlvbiBldmVudHMgbWlnaHQgaGF2ZSBt
b3ZlZCB0aGlzIGNoaWxkIGludG8gYSBkaWZmZXJlbnQgcGFyZW50LgorICAgIGlmIChjaGlsZC0+
cGFyZW50Tm9kZSgpICE9IHRoaXMpIHsKKyAgICAgICAgZWMgPSBET01FeGNlcHRpb246Ok5PVF9G
T1VORF9FUlI7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgIC8vIEZJWE1FOiBBZnRl
ciBzZW5kaW5nIHRoZSBtdXRhdGlvbiBldmVudHMsICJ0aGlzIiBjb3VsZCBiZSBkZXN0cm95ZWQu
CisgICAgLy8gV2UgY2FuIHByZXZlbnQgdGhhdCBieSBkb2luZyBhICJyZWYiLCBidXQgZmlyc3Qg
d2UgaGF2ZSB0byBtYWtlIHN1cmUKKyAgICAvLyB0aGF0IG5vIGNhbGxlcnMgY2FsbCB3aXRoIHJl
ZiBjb3VudCA9PSAwIGFuZCBwYXJlbnQgPSAwIChhcyBvZiB0aGlzCisgICAgLy8gd3JpdGluZywg
dGhlcmUgYXJlIGRlZmluaXRlbHkgY2FsbGVycyB3aG8gY2FsbCB0aGF0IHdheSkuCisKICAgICBm
b3JiaWRFdmVudERpc3BhdGNoKCk7CiAKICAgICAvLyBSZW1vdmUgZnJvbSByZW5kZXJpbmcgdHJl
ZQpAQCAtNDE1LDkgKzQ3OSw3IEBACiAgICAgICAgIHJldHVybiBuZXdDaGlsZDsKIAogICAgIC8v
IE5vdyBhY3R1YWxseSBhZGQgdGhlIGNoaWxkKHJlbikKLSAgICBSZWZQdHI8Tm9kZUltcGw+IGNo
aWxkID0gbmV3Q2hpbGQuZ2V0KCk7Ci0gICAgaWYgKGlzRnJhZ21lbnQpCi0gICAgICAgIGNoaWxk
ID0gbmV3Q2hpbGQtPmZpcnN0Q2hpbGQoKTsKKyAgICBSZWZQdHI8Tm9kZUltcGw+IGNoaWxkID0g
aXNGcmFnbWVudCA/IG5ld0NoaWxkLT5maXJzdENoaWxkKCkgOiBuZXdDaGlsZDsKICAgICB3aGls
ZSAoY2hpbGQpIHsKICAgICAgICAgUmVmUHRyPE5vZGVJbXBsPiBuZXh0Q2hpbGQgPSBpc0ZyYWdt
ZW50ID8gY2hpbGQtPm5leHRTaWJsaW5nKCkgOiAwOwogCkBAIC00MjYsNiArNDg4LDEyIEBACiAg
ICAgICAgICAgICBvbGRQYXJlbnQtPnJlbW92ZUNoaWxkKGNoaWxkLmdldCgpLCBlYyk7CiAgICAg
ICAgICAgICBpZiAoZWMpCiAgICAgICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICAK
KyAgICAgICAgICAgIC8vIElmIHRoZSBjaGlsZCBoYXMgYSBwYXJlbnQgYWdhaW4sIGp1c3Qgc3Rv
cCB3aGF0IHdlJ3JlIGRvaW5nLCBiZWNhdXNlCisgICAgICAgICAgICAvLyB0aGF0IG1lYW5zIHNv
bWVvbmUgaXMgZG9pbmcgc29tZXRoaW5nIHdpdGggRE9NIG11dGF0aW9uIC0tIGNhbid0IHJlLXBh
cmVudAorICAgICAgICAgICAgLy8gYSBjaGlsZCB0aGF0IGFscmVhZHkgaGFzIGEgcGFyZW50Lgor
ICAgICAgICAgICAgaWYgKGNoaWxkLT5wYXJlbnROb2RlKCkpCisgICAgICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgIH0KIAogICAgICAgICAvLyBBcHBlbmQgY2hpbGQgdG8gdGhlIGVuZCBvZiB0
aGUgbGlzdApAQCAtNDQ1LDcgKzUxMyw3IEBACiAgICAgICAgICAgICBjaGlsZC0+YXR0YWNoKCk7
CiAgICAgICAgIAogICAgICAgICAvLyBEaXNwYXRjaCB0aGUgbXV0YXRpb24gZXZlbnRzCi0gICAg
ICAgIGRpc3BhdGNoQ2hpbGRJbnNlcnRlZEV2ZW50cyhjaGlsZC5nZXQoKSwgZWMpOworICAgICAg
ICBkaXNwYXRjaENoaWxkSW5zZXJ0aW9uRXZlbnRzKGNoaWxkLmdldCgpLCBlYyk7CiAKICAgICAg
ICAgY2hpbGQgPSBuZXh0Q2hpbGQ7CiAgICAgfQpAQCAtNzA0LDIwICs3NzIsMjAgQEAKICAgICAg
ICAgICAgIC8vIHRvIHJlcGFpbnQgdGhlICJkb3duIiBzdGF0ZSBvZiB0aGUgY29udHJvbCBpcyBh
Ym91dCB0aGUgc2FtZSB0aW1lIGFzIGl0IHdvdWxkIHRha2UgdG8gcmVwYWludCB0aGUKICAgICAg
ICAgICAgIC8vICJ1cCIgc3RhdGUuICBPbmNlIHlvdSBhc3N1bWUgdGhpcywgeW91IGNhbiBqdXN0
IGRlbGF5IGZvciAxMDBtcyAtIHRoYXQgdGltZSAoYXNzdW1pbmcgdGhhdCBhZnRlciB5b3UKICAg
ICAgICAgICAgIC8vIGxlYXZlIHRoaXMgbWV0aG9kLCBpdCB3aWxsIGJlIGFib3V0IHRoYXQgbG9u
ZyBiZWZvcmUgdGhlIGZsdXNoIG9mIHRoZSB1cCBzdGF0ZSBoYXBwZW5zIGFnYWluKS4KLSAgICAg
ICAgICAgIFFUaW1lIHN0YXJ0VGltZTsKLSAgICAgICAgICAgIHN0YXJ0VGltZS5yZXN0YXJ0KCk7
CisjaWYgSEFWRV9GVU5DX1VTTEVFUAorICAgICAgICAgICAgZG91YmxlIHN0YXJ0VGltZSA9IGN1
cnJlbnRUaW1lKCk7CisjZW5kaWYKIAogICAgICAgICAgICAgLy8gRG8gYW4gaW1tZWRpYXRlIHJl
cGFpbnQuCiAgICAgICAgICAgICByZW5kZXJlcigpLT5yZXBhaW50KHRydWUpOwogICAgICAgICAg
ICAgCi0jaWYgIVdJTjMyCi0gICAgICAgICAgICAvLyBGSVhNRTogRmluZCBhIHN1YnN0aXR1dGUg
Zm9yIHVzbGVlcC4gIEJldHRlciB5ZXQsIGNvbWUgdXAgd2l0aCBhIHdheSBvZiBkb2luZyB0aGlz
IHRoYXQgCi0gICAgICAgICAgICAvLyBkb2Vzbid0IHVzZSB1c2xlZXAgYXQgYWxsLgotICAgICAg
ICAgICAgaW50IHJlbWFpbmluZ1RpbWUgPSAxMDAgLSBzdGFydFRpbWUuZWxhcHNlZCgpOwotICAg
ICAgICAgICAgCisgICAgICAgICAgICAvLyBGSVhNRTogRmluZCBhIHN1YnN0aXR1dGUgZm9yIHVz
bGVlcCBmb3IgV2luMzIuCisgICAgICAgICAgICAvLyBCZXR0ZXIgeWV0LCBjb21lIHVwIHdpdGgg
YSB3YXkgb2YgZG9pbmcgdGhpcyB0aGF0IGRvZXNuJ3QgdXNlIHRoaXMgc29ydCBvZiB0aGluZyBh
dCBhbGwuICAgICAgICAgICAgCisjaWYgSEFWRV9GVU5DX1VTTEVFUAogICAgICAgICAgICAgLy8g
Tm93IHBhdXNlIGZvciBhIHNtYWxsIGFtb3VudCBvZiB0aW1lICgxLzEwdGggb2YgYSBzZWNvbmQg
ZnJvbSBiZWZvcmUgd2UgcmVwYWludGVkIGluIHRoZSBwcmVzc2VkIHN0YXRlKQorICAgICAgICAg
ICAgZG91YmxlIHJlbWFpbmluZ1RpbWUgPSAwLjEgLSAoY3VycmVudFRpbWUoKSAtIHN0YXJ0VGlt
ZSk7CiAgICAgICAgICAgICBpZiAocmVtYWluaW5nVGltZSA+IDApCi0gICAgICAgICAgICAgICAg
dXNsZWVwKHJlbWFpbmluZ1RpbWUgKiAxMDAwKTsKKyAgICAgICAgICAgICAgICB1c2xlZXAoc3Rh
dGljX2Nhc3Q8dXNlY29uZHNfdD4ocmVtYWluaW5nVGltZSAqIDEwMDAwMDAuMCkpOwogI2VuZGlm
CiAgICAgICAgIH0KICAgICB9CkBAIC03NTcsNjAgKzgyNSw2MyBAQAogICAgIHJldHVybiBuOwog
fQogCi12b2lkIENvbnRhaW5lck5vZGVJbXBsOjpkaXNwYXRjaENoaWxkSW5zZXJ0ZWRFdmVudHMo
IE5vZGVJbXBsICpjaGlsZCwgaW50ICZleGNlcHRpb25jb2RlICkKK3N0YXRpYyB2b2lkIGRpc3Bh
dGNoQ2hpbGRJbnNlcnRpb25FdmVudHMoTm9kZUltcGwqIGNoaWxkLCBpbnQmIGV4Y2VwdGlvbmNv
ZGUpCiB7CiAgICAgYXNzZXJ0KCFldmVudERpc3BhdGNoRm9yYmlkZGVuKCkpOwotICAgIGlmIChp
bkRvY3VtZW50KCkpCi0gICAgICAgIGNoaWxkLT5pbnNlcnRlZEludG9Eb2N1bWVudCgpOworCisg
ICAgUmVmUHRyPE5vZGVJbXBsPiBjID0gY2hpbGQ7CisgICAgUmVmUHRyPERvY3VtZW50SW1wbD4g
ZG9jID0gY2hpbGQtPmdldERvY3VtZW50KCk7CisKKyAgICBpZiAoYy0+cGFyZW50Tm9kZSgpICYm
IGMtPnBhcmVudE5vZGUoKS0+aW5Eb2N1bWVudCgpKQorICAgICAgICBjLT5pbnNlcnRlZEludG9E
b2N1bWVudCgpOwogICAgIGVsc2UKLSAgICAgICAgY2hpbGQtPmluc2VydGVkSW50b1RyZWUodHJ1
ZSk7CisgICAgICAgIGMtPmluc2VydGVkSW50b1RyZWUodHJ1ZSk7CiAKLSAgICBpZiAoZ2V0RG9j
dW1lbnQoKS0+aGFzTGlzdGVuZXJUeXBlKERvY3VtZW50SW1wbDo6RE9NTk9ERUlOU0VSVEVEX0xJ
U1RFTkVSKSkgewotICAgICAgICBjaGlsZC0+ZGlzcGF0Y2hFdmVudChuZXcgTXV0YXRpb25FdmVu
dEltcGwoRE9NTm9kZUluc2VydGVkRXZlbnQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB0cnVlLGZhbHNlLHRoaXMsRE9NU3RyaW5nKCksRE9NU3Ry
aW5nKCksRE9NU3RyaW5nKCksMCksZXhjZXB0aW9uY29kZSx0cnVlKTsKKyAgICBpZiAoYy0+cGFy
ZW50Tm9kZSgpICYmIGRvYy0+aGFzTGlzdGVuZXJUeXBlKERvY3VtZW50SW1wbDo6RE9NTk9ERUlO
U0VSVEVEX0xJU1RFTkVSKSkgeworICAgICAgICBleGNlcHRpb25jb2RlID0gMDsKKyAgICAgICAg
Y2hpbGQtPmRpc3BhdGNoRXZlbnQobmV3IE11dGF0aW9uRXZlbnRJbXBsKERPTU5vZGVJbnNlcnRl
ZEV2ZW50LCB0cnVlLCBmYWxzZSwKKyAgICAgICAgICAgIGMtPnBhcmVudE5vZGUoKSwgRE9NU3Ry
aW5nKCksIERPTVN0cmluZygpLCBET01TdHJpbmcoKSwgMCksIGV4Y2VwdGlvbmNvZGUsIHRydWUp
OwogICAgICAgICBpZiAoZXhjZXB0aW9uY29kZSkKICAgICAgICAgICAgIHJldHVybjsKICAgICB9
CiAKICAgICAvLyBkaXNwYXRjaCB0aGUgRE9NTm9kZUluc2VydGVkSW50b0RvY3VtZW50IGV2ZW50
IHRvIGFsbCBkZXNjZW5kYW50cwotICAgIGJvb2wgaGFzSW5zZXJ0ZWRMaXN0ZW5lcnMgPSBnZXRE
b2N1bWVudCgpLT5oYXNMaXN0ZW5lclR5cGUoRG9jdW1lbnRJbXBsOjpET01OT0RFSU5TRVJURURJ
TlRPRE9DVU1FTlRfTElTVEVORVIpOwotCi0gICAgaWYgKGhhc0luc2VydGVkTGlzdGVuZXJzICYm
IGluRG9jdW1lbnQoKSkgewotICAgICAgICBmb3IgKE5vZGVJbXBsICpjID0gY2hpbGQ7IGM7IGMg
PSBjLT50cmF2ZXJzZU5leHROb2RlKGNoaWxkKSkgewotICAgICAgICAgICAgYy0+ZGlzcGF0Y2hF
dmVudChuZXcgTXV0YXRpb25FdmVudEltcGwoRE9NTm9kZUluc2VydGVkSW50b0RvY3VtZW50RXZl
bnQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBm
YWxzZSxmYWxzZSwwLERPTVN0cmluZygpLERPTVN0cmluZygpLERPTVN0cmluZygpLDApLGV4Y2Vw
dGlvbmNvZGUsdHJ1ZSk7CisgICAgaWYgKGMtPmluRG9jdW1lbnQoKSAmJiBkb2MtPmhhc0xpc3Rl
bmVyVHlwZShEb2N1bWVudEltcGw6OkRPTU5PREVJTlNFUlRFRElOVE9ET0NVTUVOVF9MSVNURU5F
UikpCisgICAgICAgIGZvciAoOyBjOyBjID0gYy0+dHJhdmVyc2VOZXh0Tm9kZShjaGlsZCkpIHsK
KyAgICAgICAgICAgIGV4Y2VwdGlvbmNvZGUgPSAwOworICAgICAgICAgICAgYy0+ZGlzcGF0Y2hF
dmVudChuZXcgTXV0YXRpb25FdmVudEltcGwoRE9NTm9kZUluc2VydGVkSW50b0RvY3VtZW50RXZl
bnQsIGZhbHNlLCBmYWxzZSwKKyAgICAgICAgICAgICAgICAwLCBET01TdHJpbmcoKSwgRE9NU3Ry
aW5nKCksIERPTVN0cmluZygpLCAwKSxleGNlcHRpb25jb2RlLHRydWUpOwogICAgICAgICAgICAg
aWYgKGV4Y2VwdGlvbmNvZGUpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9Ci0g
ICAgfQogfQogCi0vLyBiYXNlIGNsYXNzIGZvciBub2RlcyB0aGF0IG1heSBoYXZlIGNoaWxkcmVu
Ci12b2lkIENvbnRhaW5lck5vZGVJbXBsOjpkaXNwYXRjaENoaWxkUmVtb3ZhbEV2ZW50cyggTm9k
ZUltcGwgKmNoaWxkLCBpbnQgJmV4Y2VwdGlvbmNvZGUgKQorc3RhdGljIHZvaWQgZGlzcGF0Y2hD
aGlsZFJlbW92YWxFdmVudHMoTm9kZUltcGwqIGNoaWxkLCBpbnQmIGV4Y2VwdGlvbmNvZGUpCiB7
CisgICAgUmVmUHRyPE5vZGVJbXBsPiBjID0gY2hpbGQ7CisgICAgUmVmUHRyPERvY3VtZW50SW1w
bD4gZG9jID0gY2hpbGQtPmdldERvY3VtZW50KCk7CisKICAgICAvLyB1cGRhdGUgYXV4aWxpYXJ5
IGRvYyBpbmZvIChlLmcuIGl0ZXJhdG9ycykgdG8gbm90ZSB0aGF0IG5vZGUgaXMgYmVpbmcgcmVt
b3ZlZAotICAgIGdldERvY3VtZW50KCktPm5vdGlmeUJlZm9yZU5vZGVSZW1vdmFsKGNoaWxkKTsg
Ly8gIyMjIHVzZSBldmVudHMgaW5zdGVhZAorICAgIGRvYy0+bm90aWZ5QmVmb3JlTm9kZVJlbW92
YWwoY2hpbGQpOyAvLyAjIyMgdXNlIGV2ZW50cyBpbnN0ZWFkCiAKICAgICAvLyBkaXNwYXRjaCBw
cmUtcmVtb3ZhbCBtdXRhdGlvbiBldmVudHMKLSAgICBpZiAoZ2V0RG9jdW1lbnQoKS0+aGFzTGlz
dGVuZXJUeXBlKERvY3VtZW50SW1wbDo6RE9NTk9ERVJFTU9WRURfTElTVEVORVIpKSB7Ci0gICAg
ICAgIGNoaWxkLT5kaXNwYXRjaEV2ZW50KG5ldyBNdXRhdGlvbkV2ZW50SW1wbChET01Ob2RlUmVt
b3ZlZEV2ZW50LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlLGZhbHNlLHRoaXMs
RE9NU3RyaW5nKCksRE9NU3RyaW5nKCksRE9NU3RyaW5nKCksMCksZXhjZXB0aW9uY29kZSx0cnVl
KTsKKyAgICBpZiAoYy0+cGFyZW50Tm9kZSgpICYmIGRvYy0+aGFzTGlzdGVuZXJUeXBlKERvY3Vt
ZW50SW1wbDo6RE9NTk9ERVJFTU9WRURfTElTVEVORVIpKSB7CisgICAgICAgIGV4Y2VwdGlvbmNv
ZGUgPSAwOworICAgICAgICBjaGlsZC0+ZGlzcGF0Y2hFdmVudChuZXcgTXV0YXRpb25FdmVudElt
cGwoRE9NTm9kZVJlbW92ZWRFdmVudCwgdHJ1ZSwgZmFsc2UsCisgICAgICAgICAgICBjLT5wYXJl
bnROb2RlKCksIERPTVN0cmluZygpLCBET01TdHJpbmcoKSwgRE9NU3RyaW5nKCksIDApLCBleGNl
cHRpb25jb2RlLCB0cnVlKTsKICAgICAgICAgaWYgKGV4Y2VwdGlvbmNvZGUpCiAgICAgICAgICAg
ICByZXR1cm47CiAgICAgfQogCi0gICAgYm9vbCBoYXNSZW1vdmFsTGlzdGVuZXJzID0gZ2V0RG9j
dW1lbnQoKS0+aGFzTGlzdGVuZXJUeXBlKERvY3VtZW50SW1wbDo6RE9NTk9ERVJFTU9WRURGUk9N
RE9DVU1FTlRfTElTVEVORVIpOwotCiAgICAgLy8gZGlzcGF0Y2ggdGhlIERPTU5vZGVSZW1vdmVk
RnJvbURvY3VtZW50IGV2ZW50IHRvIGFsbCBkZXNjZW5kYW50cwotICAgIGlmIChpbkRvY3VtZW50
KCkpIHsKLSAgICAgICAgZm9yIChOb2RlSW1wbCAqYyA9IGNoaWxkOyBjOyBjID0gYy0+dHJhdmVy
c2VOZXh0Tm9kZShjaGlsZCkpIHsKLSAgICAgICAgICAgIGlmIChoYXNSZW1vdmFsTGlzdGVuZXJz
KSB7Ci0gICAgICAgICAgICAgICAgYy0+ZGlzcGF0Y2hFdmVudChuZXcgTXV0YXRpb25FdmVudElt
cGwoRE9NTm9kZVJlbW92ZWRGcm9tRG9jdW1lbnRFdmVudCwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGZhbHNlLGZhbHNlLDAsRE9NU3RyaW5nKCksRE9NU3RyaW5nKCksRE9NU3Ry
aW5nKCksMCksZXhjZXB0aW9uY29kZSx0cnVlKTsKLSAgICAgICAgICAgICAgICBpZiAoZXhjZXB0
aW9uY29kZSkKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgfQorICAg
IGlmIChjLT5pbkRvY3VtZW50KCkgJiYgZG9jLT5oYXNMaXN0ZW5lclR5cGUoRG9jdW1lbnRJbXBs
OjpET01OT0RFUkVNT1ZFREZST01ET0NVTUVOVF9MSVNURU5FUikpCisgICAgICAgIGZvciAoOyBj
OyBjID0gYy0+dHJhdmVyc2VOZXh0Tm9kZShjaGlsZCkpIHsKKyAgICAgICAgICAgIGV4Y2VwdGlv
bmNvZGUgPSAwOworICAgICAgICAgICAgYy0+ZGlzcGF0Y2hFdmVudChuZXcgTXV0YXRpb25FdmVu
dEltcGwoRE9NTm9kZVJlbW92ZWRGcm9tRG9jdW1lbnRFdmVudCwgZmFsc2UsIGZhbHNlLAorICAg
ICAgICAgICAgICAgIDAsIERPTVN0cmluZygpLCBET01TdHJpbmcoKSwgRE9NU3RyaW5nKCksIDAp
LCBleGNlcHRpb25jb2RlLCB0cnVlKTsKKyAgICAgICAgICAgIGlmIChleGNlcHRpb25jb2RlKQor
ICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQotICAgIH0KIH0KKwogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>5915</attachid>
            <date>2006-01-24 10:10:25 -0800</date>
            <delta_ts>2006-01-24 14:53:05 -0800</delta_ts>
            <desc>tested fix, although it needs ChangeLog and regression tests</desc>
            <filename>DOMMutationPatch.txt</filename>
            <type>text/plain</type>
            <size>14969</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">SW5kZXg6IGtodG1sL3htbC9Db250YWluZXJOb2RlSW1wbC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtodG1s
L3htbC9Db250YWluZXJOb2RlSW1wbC5oCShyZXZpc2lvbiAxMjMzMykKKysrIGtodG1sL3htbC9D
b250YWluZXJOb2RlSW1wbC5oCSh3b3JraW5nIGNvcHkpCkBAIC02OSwxMSArNjksNiBAQAogICAg
IE5vZGVJbXBsKiBtX2ZpcnN0Q2hpbGQ7CiAgICAgTm9kZUltcGwqIG1fbGFzdENoaWxkOwogCi0g
ICAgRXhjZXB0aW9uQ29kZSB3aWxsUmVtb3ZlQ2hpbGQoTm9kZUltcGwqIGNoaWxkKTsKLQotICAg
IHZvaWQgZGlzcGF0Y2hDaGlsZEluc2VydGVkRXZlbnRzKE5vZGVJbXBsKiBjaGlsZCwgRXhjZXB0
aW9uQ29kZSYpOwotICAgIHZvaWQgZGlzcGF0Y2hDaGlsZFJlbW92YWxFdmVudHMoTm9kZUltcGwq
IGNoaWxkLCBFeGNlcHRpb25Db2RlJik7Ci0KICAgICBib29sIGdldFVwcGVyTGVmdENvcm5lcihp
bnQmIHgsIGludCYgeSkgY29uc3Q7CiAgICAgYm9vbCBnZXRMb3dlclJpZ2h0Q29ybmVyKGludCYg
eCwgaW50JiB5KSBjb25zdDsKIH07CkluZGV4OiBraHRtbC94bWwvQ29udGFpbmVyTm9kZUltcGwu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIGtodG1sL3htbC9Db250YWluZXJOb2RlSW1wbC5jcHAJKHJldmlz
aW9uIDEyMzMzKQorKysga2h0bWwveG1sL0NvbnRhaW5lck5vZGVJbXBsLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMzEsMTYgKzMxLDE5IEBACiAjaW5jbHVkZSAiSW5saW5lVGV4dEJveC5oIgogI2lu
Y2x1ZGUgIkludFJlY3QuaCIKICNpbmNsdWRlICJSZW5kZXJUZXh0LmgiCiAjaW5jbHVkZSAiZG9t
Ml9ldmVudHNpbXBsLmgiCiAjaW5jbHVkZSAiZG9tX2V4Y2VwdGlvbi5oIgogI2luY2x1ZGUgImRv
bV9ub2RlLmgiCiAjaW5jbHVkZSAicmVuZGVyX3RoZW1lLmgiCiAjaW5jbHVkZSA8cWRhdGV0aW1l
Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNwYWNlIEV2ZW50TmFtZXM7
CiAKK3N0YXRpYyB2b2lkIGRpc3BhdGNoQ2hpbGRJbnNlcnRpb25FdmVudHMoTm9kZUltcGwqLCBp
bnQmIGV4Y2VwdGlvbmNvZGUpOworc3RhdGljIHZvaWQgZGlzcGF0Y2hDaGlsZFJlbW92YWxFdmVu
dHMoTm9kZUltcGwqLCBpbnQmIGV4Y2VwdGlvbmNvZGUpOworCiBDb250YWluZXJOb2RlSW1wbDo6
Q29udGFpbmVyTm9kZUltcGwoRG9jdW1lbnRJbXBsKiBkb2MpCiAgICAgOiBOb2RlSW1wbChkb2Mp
LCBtX2ZpcnN0Q2hpbGQoMCksIG1fbGFzdENoaWxkKDApCiB7CkBAIC0xNDIsNDQgKzE0NSw2OSBA
QAogICAgICAgICByZXR1cm4gbmV3Q2hpbGQ7CiAKICAgICAvLyBOb3cgYWN0dWFsbHkgYWRkIHRo
ZSBjaGlsZChyZW4pCi0gICAgTm9kZUltcGwqIG5leHRDaGlsZDsKLSAgICBOb2RlSW1wbCogY2hp
bGQgPSBpc0ZyYWdtZW50ID8gbmV3Q2hpbGQtPmZpcnN0Q2hpbGQoKSA6IG5ld0NoaWxkLmdldCgp
OworICAgIGlmIChyZWZDaGlsZC0+cHJldmlvdXNTaWJsaW5nKCkgPT0gbmV3Q2hpbGQgfHwgcmVm
Q2hpbGQgPT0gbmV3Q2hpbGQpIC8vIG5vdGhpbmcgdG8gZG8KKyAgICAgICAgcmV0dXJuIG5ld0No
aWxkOwogCi0gICAgTm9kZUltcGwqIHByZXYgPSByZWZDaGlsZC0+cHJldmlvdXNTaWJsaW5nKCk7
Ci0gICAgaWYgKHByZXYgPT0gbmV3Q2hpbGQgfHwgcmVmQ2hpbGQgPT0gbmV3Q2hpbGQpIC8vIG5v
dGhpbmcgdG8gZG8KLSAgICAgICAgcmV0dXJuIG5ld0NoaWxkOwotICAgIAorICAgIFJlZlB0cjxO
b2RlSW1wbD4gbmV4dCA9IHJlZkNoaWxkOworCisgICAgUmVmUHRyPE5vZGVJbXBsPiBjaGlsZCA9
IGlzRnJhZ21lbnQgPyBuZXdDaGlsZC0+Zmlyc3RDaGlsZCgpIDogbmV3Q2hpbGQ7CiAgICAgd2hp
bGUgKGNoaWxkKSB7Ci0gICAgICAgIG5leHRDaGlsZCA9IGlzRnJhZ21lbnQgPyBjaGlsZC0+bmV4
dFNpYmxpbmcoKSA6IDA7CisgICAgICAgIFBhc3NSZWZQdHI8Tm9kZUltcGw+IG5leHRDaGlsZCA9
IGlzRnJhZ21lbnQgPyBjaGlsZC0+bmV4dFNpYmxpbmcoKSA6IDA7CiAKLSAgICAgICAgLy8gSWYg
Y2hpbGQgaXMgYWxyZWFkeSBwcmVzZW50IGluIHRoZSB0cmVlLCBmaXJzdCByZW1vdmUgaXQKLSAg
ICAgICAgTm9kZUltcGwgKm5ld1BhcmVudCA9IGNoaWxkLT5wYXJlbnROb2RlKCk7Ci0gICAgICAg
IGlmIChuZXdQYXJlbnQpCi0gICAgICAgICAgICBuZXdQYXJlbnQtPnJlbW92ZUNoaWxkKGNoaWxk
LCBlYyk7CisgICAgICAgIC8vIElmIGNoaWxkIGlzIGFscmVhZHkgcHJlc2VudCBpbiB0aGUgdHJl
ZSwgZmlyc3QgcmVtb3ZlIGl0IGZyb20gdGhlIG9sZCBsb2NhdGlvbi4KKyAgICAgICAgaWYgKE5v
ZGVJbXBsKiBvbGRQYXJlbnQgPSBjaGlsZC0+cGFyZW50Tm9kZSgpKQorICAgICAgICAgICAgb2xk
UGFyZW50LT5yZW1vdmVDaGlsZChjaGlsZC5nZXQoKSwgZWMpOwogICAgICAgICBpZiAoZWMpCiAg
ICAgICAgICAgICByZXR1cm4gMDsKIAotICAgICAgICAvLyBBZGQgY2hpbGQgaW4gdGhlIGNvcnJl
Y3QgcG9zaXRpb24KKyAgICAgICAgLy8gRklYTUU6IEFmdGVyIHNlbmRpbmcgdGhlIG11dGF0aW9u
IGV2ZW50cywgInRoaXMiIGNvdWxkIGJlIGRlc3Ryb3llZC4KKyAgICAgICAgLy8gV2UgY2FuIHBy
ZXZlbnQgdGhhdCBieSBkb2luZyBhICJyZWYiLCBidXQgZmlyc3Qgd2UgaGF2ZSB0byBtYWtlIHN1
cmUKKyAgICAgICAgLy8gdGhhdCBubyBjYWxsZXJzIGNhbGwgd2l0aCByZWYgY291bnQgPT0gMCBh
bmQgcGFyZW50ID0gMCAoYXMgb2YgdGhpcworICAgICAgICAvLyB3cml0aW5nLCB0aGVyZSBhcmUg
ZGVmaW5pdGVseSBjYWxsZXJzIHdobyBjYWxsIHRoYXQgd2F5KS4KKworICAgICAgICAvLyBEdWUg
dG8gYXJiaXRyYXJ5IGNvZGUgcnVubmluZyBpbiByZXNwb25zZSB0byBhIERPTSBtdXRhdGlvbiBl
dmVudCBpdCdzCisgICAgICAgIC8vIHBvc3NpYmxlIHRoYXQgIm5leHQiIGlzIG5vIGxvbmdlciBh
IGNoaWxkIG9mICJ0aGlzIi4KKyAgICAgICAgLy8gSXQncyBhbHNvIHBvc3NpYmxlIHRoYXQgImNo
aWxkIiBoYXMgYmVlbiBpbnNlcnRlZCBlbHNld2hlcmUuCisgICAgICAgIC8vIEluIGVpdGhlciBv
ZiB0aG9zZSBjYXNlcywgd2UnbGwganVzdCBzdG9wLgorICAgICAgICBpZiAobmV4dC0+cGFyZW50
Tm9kZSgpICE9IHRoaXMpCisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgaWYgKGNoaWxkLT5w
YXJlbnROb2RlKCkpCisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBhc3NlcnQoIWNoaWxk
LT5uZXh0U2libGluZygpKTsKKyAgICAgICAgYXNzZXJ0KCFjaGlsZC0+cHJldmlvdXNTaWJsaW5n
KCkpOworCisgICAgICAgIC8vIEFkZCBjaGlsZCBiZWZvcmUgIm5leHQiLgogICAgICAgICBmb3Ji
aWRFdmVudERpc3BhdGNoKCk7Ci0gICAgICAgIGlmIChwcmV2KQotICAgICAgICAgICAgcHJldi0+
c2V0TmV4dFNpYmxpbmcoY2hpbGQpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBtX2ZpcnN0
Q2hpbGQgPSBjaGlsZDsKLSAgICAgICAgcmVmQ2hpbGQtPnNldFByZXZpb3VzU2libGluZyhjaGls
ZCk7CisgICAgICAgIE5vZGVJbXBsKiBwcmV2OworICAgICAgICBpZiAobmV4dCkgeworICAgICAg
ICAgICAgcHJldiA9IG5leHQtPnByZXZpb3VzU2libGluZygpOworICAgICAgICAgICAgYXNzZXJ0
KG1fbGFzdENoaWxkICE9IHByZXYpOworICAgICAgICAgICAgbmV4dC0+c2V0UHJldmlvdXNTaWJs
aW5nKGNoaWxkLmdldCgpKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHByZXYgPSBt
X2xhc3RDaGlsZDsKKyAgICAgICAgICAgIG1fbGFzdENoaWxkID0gY2hpbGQuZ2V0KCk7CisgICAg
ICAgIH0KKyAgICAgICAgaWYgKHByZXYpIHsKKyAgICAgICAgICAgIGFzc2VydChtX2ZpcnN0Q2hp
bGQgIT0gbmV4dCk7CisgICAgICAgICAgICBhc3NlcnQocHJldi0+bmV4dFNpYmxpbmcoKSA9PSBu
ZXh0KTsKKyAgICAgICAgICAgIHByZXYtPnNldE5leHRTaWJsaW5nKGNoaWxkLmdldCgpKTsKKyAg
ICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGFzc2VydChtX2ZpcnN0Q2hpbGQgPT0gbmV4dCk7
CisgICAgICAgICAgICBtX2ZpcnN0Q2hpbGQgPSBjaGlsZC5nZXQoKTsKKyAgICAgICAgfQogICAg
ICAgICBjaGlsZC0+c2V0UGFyZW50KHRoaXMpOwogICAgICAgICBjaGlsZC0+c2V0UHJldmlvdXNT
aWJsaW5nKHByZXYpOwotICAgICAgICBjaGlsZC0+c2V0TmV4dFNpYmxpbmcocmVmQ2hpbGQpOwor
ICAgICAgICBjaGlsZC0+c2V0TmV4dFNpYmxpbmcobmV4dC5nZXQoKSk7CiAgICAgICAgIGFsbG93
RXZlbnREaXNwYXRjaCgpOwogCi0gICAgICAgIC8vIEFkZCBjaGlsZCB0byB0aGUgcmVuZGVyaW5n
IHRyZWUKLSAgICAgICAgLy8gIyMjIHNob3VsZCB3ZSBkZXRhY2goKSBpdCBmaXJzdCBpZiBpdCdz
IGFscmVhZHkgYXR0YWNoZWQ/CisgICAgICAgIC8vIEFkZCBjaGlsZCB0byB0aGUgcmVuZGVyaW5n
IHRyZWUuCiAgICAgICAgIGlmIChhdHRhY2hlZCgpICYmICFjaGlsZC0+YXR0YWNoZWQoKSkKICAg
ICAgICAgICAgIGNoaWxkLT5hdHRhY2goKTsKLSAgICAgICAgCi0gICAgICAgIC8vIERpc3BhdGNo
IHRoZSBtdXRhdGlvbiBldmVudHMKLSAgICAgICAgZGlzcGF0Y2hDaGlsZEluc2VydGVkRXZlbnRz
KGNoaWxkLCBlYyk7CiAKLSAgICAgICAgcHJldiA9IGNoaWxkOworICAgICAgICAvLyBEaXNwYXRj
aCB0aGUgbXV0YXRpb24gZXZlbnRzLgorICAgICAgICBkaXNwYXRjaENoaWxkSW5zZXJ0aW9uRXZl
bnRzKGNoaWxkLmdldCgpLCBlYyk7CisKICAgICAgICAgY2hpbGQgPSBuZXh0Q2hpbGQ7CiAgICAg
fQogCkBAIC0yMDYsNTMgKzIzNCw3OCBAQAogICAgICAgICByZXR1cm4gMDsKICAgICB9CiAKLSAg
ICBib29sIGlzRnJhZ21lbnQgPSBuZXdDaGlsZC0+bm9kZVR5cGUoKSA9PSBOb2RlOjpET0NVTUVO
VF9GUkFHTUVOVF9OT0RFOwotICAgIFJlZlB0cjxOb2RlSW1wbD4gY2hpbGQgPSBpc0ZyYWdtZW50
ID8gbmV3Q2hpbGQtPmZpcnN0Q2hpbGQoKSA6IG5ld0NoaWxkLmdldCgpOwotCi0gICAgLy8gUmVt
b3ZlIHRoZSBvbGQgY2hpbGQKICAgICBSZWZQdHI8Tm9kZUltcGw+IHByZXYgPSBvbGRDaGlsZC0+
cHJldmlvdXNTaWJsaW5nKCk7Ci0gICAgUmVmUHRyPE5vZGVJbXBsPiBuZXh0ID0gb2xkQ2hpbGQt
Pm5leHRTaWJsaW5nKCk7CiAKKyAgICAvLyBSZW1vdmUgdGhlIG5vZGUgd2UncmUgcmVwbGFjaW5n
CiAgICAgUGFzc1JlZlB0cjxOb2RlSW1wbD4gcmVtb3ZlZENoaWxkID0gcmVtb3ZlQ2hpbGQob2xk
Q2hpbGQsIGVjKTsKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybiAwOwogCi0gICAgLy8gSWYg
dGhlIG5ldyBjaGlsZCB3YXMgcmlnaHQgYmVmb3JlIG9yIHJpZ2h0IGFmdGVyIHRoZSBvbGQgY2hp
bGQsIG5vdGhpbmcgZWxzZSBuZWVkcyB0byBjaGFuZ2UKLSAgICBpZiAocHJldiA9PSBjaGlsZCB8
fCBuZXh0ID09IGNoaWxkKQotICAgICAgICBjaGlsZCA9IDA7CisgICAgLy8gRklYTUU6IEFmdGVy
IHNlbmRpbmcgdGhlIG11dGF0aW9uIGV2ZW50cywgInRoaXMiIGNvdWxkIGJlIGRlc3Ryb3llZC4K
KyAgICAvLyBXZSBjYW4gcHJldmVudCB0aGF0IGJ5IGRvaW5nIGEgInJlZiIsIGJ1dCBmaXJzdCB3
ZSBoYXZlIHRvIG1ha2Ugc3VyZQorICAgIC8vIHRoYXQgbm8gY2FsbGVycyBjYWxsIHdpdGggcmVm
IGNvdW50ID09IDAgYW5kIHBhcmVudCA9IDAgKGFzIG9mIHRoaXMKKyAgICAvLyB3cml0aW5nLCB0
aGVyZSBhcmUgZGVmaW5pdGVseSBjYWxsZXJzIHdobyBjYWxsIHRoYXQgd2F5KS4KKworICAgIGJv
b2wgaXNGcmFnbWVudCA9IG5ld0NoaWxkLT5ub2RlVHlwZSgpID09IE5vZGU6OkRPQ1VNRU5UX0ZS
QUdNRU5UX05PREU7CisKICAgICAvLyBBZGQgdGhlIG5ldyBjaGlsZChyZW4pCisgICAgUmVmUHRy
PE5vZGVJbXBsPiBjaGlsZCA9IGlzRnJhZ21lbnQgPyBuZXdDaGlsZC0+Zmlyc3RDaGlsZCgpIDog
bmV3Q2hpbGQuZ2V0KCk7CiAgICAgd2hpbGUgKGNoaWxkKSB7CisgICAgICAgIC8vIElmIHRoZSBu
ZXcgY2hpbGQgaXMgYWxyZWFkeSBpbiB0aGUgcmlnaHQgcGxhY2UsIHdlJ3JlIGRvbmUuCisgICAg
ICAgIGlmIChwcmV2ID09IGNoaWxkIHx8IHByZXYgPT0gY2hpbGQtPnByZXZpb3VzU2libGluZygp
KQorICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgLy8gRm9yIGEgZnJhZ21lbnQgd2UgaGF2
ZSBtb3JlIGNoaWxkcmVuIHRvIGRvLgogICAgICAgICBSZWZQdHI8Tm9kZUltcGw+IG5leHRDaGls
ZCA9IGlzRnJhZ21lbnQgPyBjaGlsZC0+bmV4dFNpYmxpbmcoKSA6IDA7CiAKLSAgICAgICAgLy8g
SWYgY2hpbGQgaXMgYWxyZWFkeSBwcmVzZW50IGluIHRoZSB0cmVlLCBmaXJzdCByZW1vdmUgaXQK
LSAgICAgICAgTm9kZUltcGwqIG5ld1BhcmVudCA9IGNoaWxkLT5wYXJlbnROb2RlKCk7Ci0gICAg
ICAgIGlmIChuZXdQYXJlbnQpCi0gICAgICAgICAgICBuZXdQYXJlbnQtPnJlbW92ZUNoaWxkKGNo
aWxkLmdldCgpLCBlYyk7CisgICAgICAgIC8vIFJlbW92ZSBjaGlsZCBmcm9tIGl0cyBvbGQgcG9z
aXRpb24uCisgICAgICAgIGlmIChOb2RlSW1wbCogb2xkUGFyZW50ID0gY2hpbGQtPnBhcmVudE5v
ZGUoKSkKKyAgICAgICAgICAgIG9sZFBhcmVudC0+cmVtb3ZlQ2hpbGQoY2hpbGQuZ2V0KCksIGVj
KTsKICAgICAgICAgaWYgKGVjKQogICAgICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICAgICAgLy8g
QWRkIGNoaWxkIGluIHRoZSBjb3JyZWN0IHBvc2l0aW9uCisgICAgICAgIC8vIER1ZSB0byBhcmJp
dHJhcnkgY29kZSBydW5uaW5nIGluIHJlc3BvbnNlIHRvIGEgRE9NIG11dGF0aW9uIGV2ZW50IGl0
J3MKKyAgICAgICAgLy8gcG9zc2libGUgdGhhdCAicHJldiIgaXMgbm8gbG9uZ2VyIGEgY2hpbGQg
b2YgInRoaXMiLgorICAgICAgICAvLyBJdCdzIGFsc28gcG9zc2libGUgdGhhdCAiY2hpbGQiIGhh
cyBiZWVuIGluc2VydGVkIGVsc2V3aGVyZS4KKyAgICAgICAgLy8gSW4gZWl0aGVyIG9mIHRob3Nl
IGNhc2VzLCB3ZSdsbCBqdXN0IHN0b3AuCisgICAgICAgIGlmIChwcmV2ICYmIHByZXYtPnBhcmVu
dE5vZGUoKSAhPSB0aGlzKQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGlmIChjaGlsZC0+
cGFyZW50Tm9kZSgpKQorICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgYXNzZXJ0KCFjaGls
ZC0+bmV4dFNpYmxpbmcoKSk7CisgICAgICAgIGFzc2VydCghY2hpbGQtPnByZXZpb3VzU2libGlu
ZygpKTsKKworICAgICAgICAvLyBBZGQgY2hpbGQgYWZ0ZXIgInByZXYiLgogICAgICAgICBmb3Ji
aWRFdmVudERpc3BhdGNoKCk7Ci0gICAgICAgIGlmIChwcmV2KQorICAgICAgICBOb2RlSW1wbCog
bmV4dDsKKyAgICAgICAgaWYgKHByZXYpIHsKKyAgICAgICAgICAgIG5leHQgPSBwcmV2LT5uZXh0
U2libGluZygpOworICAgICAgICAgICAgYXNzZXJ0KG1fZmlyc3RDaGlsZCAhPSBuZXh0KTsKICAg
ICAgICAgICAgIHByZXYtPnNldE5leHRTaWJsaW5nKGNoaWxkLmdldCgpKTsKLSAgICAgICAgaWYg
KG5leHQpCisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBuZXh0ID0gbV9maXJzdENoaWxk
OworICAgICAgICAgICAgbV9maXJzdENoaWxkID0gY2hpbGQuZ2V0KCk7CisgICAgICAgIH0KKyAg
ICAgICAgaWYgKG5leHQpIHsKKyAgICAgICAgICAgIGFzc2VydChtX2xhc3RDaGlsZCAhPSBwcmV2
KTsKKyAgICAgICAgICAgIGFzc2VydChuZXh0LT5wcmV2aW91c1NpYmxpbmcoKSA9PSBwcmV2KTsK
ICAgICAgICAgICAgIG5leHQtPnNldFByZXZpb3VzU2libGluZyhjaGlsZC5nZXQoKSk7Ci0gICAg
ICAgIGlmICghcHJldikKLSAgICAgICAgICAgIG1fZmlyc3RDaGlsZCA9IGNoaWxkLmdldCgpOwot
ICAgICAgICBpZiAoIW5leHQpCisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBhc3NlcnQo
bV9sYXN0Q2hpbGQgPT0gcHJldik7CiAgICAgICAgICAgICBtX2xhc3RDaGlsZCA9IGNoaWxkLmdl
dCgpOworICAgICAgICB9CiAgICAgICAgIGNoaWxkLT5zZXRQYXJlbnQodGhpcyk7CiAgICAgICAg
IGNoaWxkLT5zZXRQcmV2aW91c1NpYmxpbmcocHJldi5nZXQoKSk7Ci0gICAgICAgIGNoaWxkLT5z
ZXROZXh0U2libGluZyhuZXh0LmdldCgpKTsKKyAgICAgICAgY2hpbGQtPnNldE5leHRTaWJsaW5n
KG5leHQpOwogICAgICAgICBhbGxvd0V2ZW50RGlzcGF0Y2goKTsKIAogICAgICAgICAvLyBBZGQg
Y2hpbGQgdG8gdGhlIHJlbmRlcmluZyB0cmVlCi0gICAgICAgIC8vICMjIyBzaG91bGQgd2UgZGV0
YWNoKCkgaXQgZmlyc3QgaWYgaXQncyBhbHJlYWR5IGF0dGFjaGVkPwogICAgICAgICBpZiAoYXR0
YWNoZWQoKSAmJiAhY2hpbGQtPmF0dGFjaGVkKCkpCiAgICAgICAgICAgICBjaGlsZC0+YXR0YWNo
KCk7CiAKICAgICAgICAgLy8gRGlzcGF0Y2ggdGhlIG11dGF0aW9uIGV2ZW50cwotICAgICAgICBk
aXNwYXRjaENoaWxkSW5zZXJ0ZWRFdmVudHMoY2hpbGQuZ2V0KCksIGVjKTsKKyAgICAgICAgZGlz
cGF0Y2hDaGlsZEluc2VydGlvbkV2ZW50cyhjaGlsZC5nZXQoKSwgZWMpOwogCiAgICAgICAgIHBy
ZXYgPSBjaGlsZDsKICAgICAgICAgY2hpbGQgPSBuZXh0Q2hpbGQ7CkBAIC0yNzAsNyArMzIzLDcg
QEAKICAgICAgICAgbi0+d2lsbFJlbW92ZSgpOwogfQogCi1pbnQgQ29udGFpbmVyTm9kZUltcGw6
OndpbGxSZW1vdmVDaGlsZChOb2RlSW1wbCAqY2hpbGQpCitzdGF0aWMgaW50IHdpbGxSZW1vdmVD
aGlsZChOb2RlSW1wbCAqY2hpbGQpCiB7CiAgICAgaW50IGV4Y2VwdGlvbkNvZGUgPSAwOwogCkBA
IC0zMTUsNiArMzY4LDE3IEBACiAgICAgaWYgKGVjKQogICAgICAgICByZXR1cm4gMDsKIAorICAg
IC8vIE11dGF0aW9uIGV2ZW50cyBtaWdodCBoYXZlIG1vdmVkIHRoaXMgY2hpbGQgaW50byBhIGRp
ZmZlcmVudCBwYXJlbnQuCisgICAgaWYgKGNoaWxkLT5wYXJlbnROb2RlKCkgIT0gdGhpcykgewor
ICAgICAgICBlYyA9IERPTUV4Y2VwdGlvbjo6Tk9UX0ZPVU5EX0VSUjsKKyAgICAgICAgcmV0dXJu
IDA7CisgICAgfQorCisgICAgLy8gRklYTUU6IEFmdGVyIHNlbmRpbmcgdGhlIG11dGF0aW9uIGV2
ZW50cywgInRoaXMiIGNvdWxkIGJlIGRlc3Ryb3llZC4KKyAgICAvLyBXZSBjYW4gcHJldmVudCB0
aGF0IGJ5IGRvaW5nIGEgInJlZiIsIGJ1dCBmaXJzdCB3ZSBoYXZlIHRvIG1ha2Ugc3VyZQorICAg
IC8vIHRoYXQgbm8gY2FsbGVycyBjYWxsIHdpdGggcmVmIGNvdW50ID09IDAgYW5kIHBhcmVudCA9
IDAgKGFzIG9mIHRoaXMKKyAgICAvLyB3cml0aW5nLCB0aGVyZSBhcmUgZGVmaW5pdGVseSBjYWxs
ZXJzIHdobyBjYWxsIHRoYXQgd2F5KS4KKwogICAgIGZvcmJpZEV2ZW50RGlzcGF0Y2goKTsKIAog
ICAgIC8vIFJlbW92ZSBmcm9tIHJlbmRlcmluZyB0cmVlCkBAIC00MTUsOSArNDc5LDcgQEAKICAg
ICAgICAgcmV0dXJuIG5ld0NoaWxkOwogCiAgICAgLy8gTm93IGFjdHVhbGx5IGFkZCB0aGUgY2hp
bGQocmVuKQotICAgIFJlZlB0cjxOb2RlSW1wbD4gY2hpbGQgPSBuZXdDaGlsZC5nZXQoKTsKLSAg
ICBpZiAoaXNGcmFnbWVudCkKLSAgICAgICAgY2hpbGQgPSBuZXdDaGlsZC0+Zmlyc3RDaGlsZCgp
OworICAgIFJlZlB0cjxOb2RlSW1wbD4gY2hpbGQgPSBpc0ZyYWdtZW50ID8gbmV3Q2hpbGQtPmZp
cnN0Q2hpbGQoKSA6IG5ld0NoaWxkOwogICAgIHdoaWxlIChjaGlsZCkgewogICAgICAgICBSZWZQ
dHI8Tm9kZUltcGw+IG5leHRDaGlsZCA9IGlzRnJhZ21lbnQgPyBjaGlsZC0+bmV4dFNpYmxpbmco
KSA6IDA7CiAKQEAgLTQyNiw2ICs0ODgsMTIgQEAKICAgICAgICAgICAgIG9sZFBhcmVudC0+cmVt
b3ZlQ2hpbGQoY2hpbGQuZ2V0KCksIGVjKTsKICAgICAgICAgICAgIGlmIChlYykKICAgICAgICAg
ICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gSWYgdGhlIGNo
aWxkIGhhcyBhIHBhcmVudCBhZ2FpbiwganVzdCBzdG9wIHdoYXQgd2UncmUgZG9pbmcsIGJlY2F1
c2UKKyAgICAgICAgICAgIC8vIHRoYXQgbWVhbnMgc29tZW9uZSBpcyBkb2luZyBzb21ldGhpbmcg
d2l0aCBET00gbXV0YXRpb24gLS0gY2FuJ3QgcmUtcGFyZW50CisgICAgICAgICAgICAvLyBhIGNo
aWxkIHRoYXQgYWxyZWFkeSBoYXMgYSBwYXJlbnQuCisgICAgICAgICAgICBpZiAoY2hpbGQtPnBh
cmVudE5vZGUoKSkKKyAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogCiAgICAgICAg
IC8vIEFwcGVuZCBjaGlsZCB0byB0aGUgZW5kIG9mIHRoZSBsaXN0CkBAIC00NDUsNyArNTEzLDcg
QEAKICAgICAgICAgICAgIGNoaWxkLT5hdHRhY2goKTsKICAgICAgICAgCiAgICAgICAgIC8vIERp
c3BhdGNoIHRoZSBtdXRhdGlvbiBldmVudHMKLSAgICAgICAgZGlzcGF0Y2hDaGlsZEluc2VydGVk
RXZlbnRzKGNoaWxkLmdldCgpLCBlYyk7CisgICAgICAgIGRpc3BhdGNoQ2hpbGRJbnNlcnRpb25F
dmVudHMoY2hpbGQuZ2V0KCksIGVjKTsKIAogICAgICAgICBjaGlsZCA9IG5leHRDaGlsZDsKICAg
ICB9CkBAIC03NTcsNjAgKzgyNSw2MyBAQAogICAgIHJldHVybiBuOwogfQogCi12b2lkIENvbnRh
aW5lck5vZGVJbXBsOjpkaXNwYXRjaENoaWxkSW5zZXJ0ZWRFdmVudHMoIE5vZGVJbXBsICpjaGls
ZCwgaW50ICZleGNlcHRpb25jb2RlICkKK3N0YXRpYyB2b2lkIGRpc3BhdGNoQ2hpbGRJbnNlcnRp
b25FdmVudHMoTm9kZUltcGwqIGNoaWxkLCBpbnQmIGV4Y2VwdGlvbmNvZGUpCiB7CiAgICAgYXNz
ZXJ0KCFldmVudERpc3BhdGNoRm9yYmlkZGVuKCkpOwotICAgIGlmIChpbkRvY3VtZW50KCkpCi0g
ICAgICAgIGNoaWxkLT5pbnNlcnRlZEludG9Eb2N1bWVudCgpOworCisgICAgUmVmUHRyPE5vZGVJ
bXBsPiBjID0gY2hpbGQ7CisgICAgUmVmUHRyPERvY3VtZW50SW1wbD4gZG9jID0gY2hpbGQtPmdl
dERvY3VtZW50KCk7CisKKyAgICBpZiAoYy0+cGFyZW50Tm9kZSgpICYmIGMtPnBhcmVudE5vZGUo
KS0+aW5Eb2N1bWVudCgpKQorICAgICAgICBjLT5pbnNlcnRlZEludG9Eb2N1bWVudCgpOwogICAg
IGVsc2UKLSAgICAgICAgY2hpbGQtPmluc2VydGVkSW50b1RyZWUodHJ1ZSk7CisgICAgICAgIGMt
Pmluc2VydGVkSW50b1RyZWUodHJ1ZSk7CiAKLSAgICBpZiAoZ2V0RG9jdW1lbnQoKS0+aGFzTGlz
dGVuZXJUeXBlKERvY3VtZW50SW1wbDo6RE9NTk9ERUlOU0VSVEVEX0xJU1RFTkVSKSkgewotICAg
ICAgICBjaGlsZC0+ZGlzcGF0Y2hFdmVudChuZXcgTXV0YXRpb25FdmVudEltcGwoRE9NTm9kZUlu
c2VydGVkRXZlbnQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB0cnVlLGZhbHNlLHRoaXMsRE9NU3RyaW5nKCksRE9NU3RyaW5nKCksRE9NU3RyaW5n
KCksMCksZXhjZXB0aW9uY29kZSx0cnVlKTsKKyAgICBpZiAoYy0+cGFyZW50Tm9kZSgpICYmIGRv
Yy0+aGFzTGlzdGVuZXJUeXBlKERvY3VtZW50SW1wbDo6RE9NTk9ERUlOU0VSVEVEX0xJU1RFTkVS
KSkgeworICAgICAgICBleGNlcHRpb25jb2RlID0gMDsKKyAgICAgICAgY2hpbGQtPmRpc3BhdGNo
RXZlbnQobmV3IE11dGF0aW9uRXZlbnRJbXBsKERPTU5vZGVJbnNlcnRlZEV2ZW50LCB0cnVlLCBm
YWxzZSwKKyAgICAgICAgICAgIGMtPnBhcmVudE5vZGUoKSwgRE9NU3RyaW5nKCksIERPTVN0cmlu
ZygpLCBET01TdHJpbmcoKSwgMCksIGV4Y2VwdGlvbmNvZGUsIHRydWUpOwogICAgICAgICBpZiAo
ZXhjZXB0aW9uY29kZSkKICAgICAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICAvLyBkaXNw
YXRjaCB0aGUgRE9NTm9kZUluc2VydGVkSW50b0RvY3VtZW50IGV2ZW50IHRvIGFsbCBkZXNjZW5k
YW50cwotICAgIGJvb2wgaGFzSW5zZXJ0ZWRMaXN0ZW5lcnMgPSBnZXREb2N1bWVudCgpLT5oYXNM
aXN0ZW5lclR5cGUoRG9jdW1lbnRJbXBsOjpET01OT0RFSU5TRVJURURJTlRPRE9DVU1FTlRfTElT
VEVORVIpOwotCi0gICAgaWYgKGhhc0luc2VydGVkTGlzdGVuZXJzICYmIGluRG9jdW1lbnQoKSkg
ewotICAgICAgICBmb3IgKE5vZGVJbXBsICpjID0gY2hpbGQ7IGM7IGMgPSBjLT50cmF2ZXJzZU5l
eHROb2RlKGNoaWxkKSkgewotICAgICAgICAgICAgYy0+ZGlzcGF0Y2hFdmVudChuZXcgTXV0YXRp
b25FdmVudEltcGwoRE9NTm9kZUluc2VydGVkSW50b0RvY3VtZW50RXZlbnQsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSxmYWxzZSwwLERP
TVN0cmluZygpLERPTVN0cmluZygpLERPTVN0cmluZygpLDApLGV4Y2VwdGlvbmNvZGUsdHJ1ZSk7
CisgICAgaWYgKGMtPmluRG9jdW1lbnQoKSAmJiBkb2MtPmhhc0xpc3RlbmVyVHlwZShEb2N1bWVu
dEltcGw6OkRPTU5PREVJTlNFUlRFRElOVE9ET0NVTUVOVF9MSVNURU5FUikpCisgICAgICAgIGZv
ciAoOyBjOyBjID0gYy0+dHJhdmVyc2VOZXh0Tm9kZShjaGlsZCkpIHsKKyAgICAgICAgICAgIGV4
Y2VwdGlvbmNvZGUgPSAwOworICAgICAgICAgICAgYy0+ZGlzcGF0Y2hFdmVudChuZXcgTXV0YXRp
b25FdmVudEltcGwoRE9NTm9kZUluc2VydGVkSW50b0RvY3VtZW50RXZlbnQsIGZhbHNlLCBmYWxz
ZSwKKyAgICAgICAgICAgICAgICAwLCBET01TdHJpbmcoKSwgRE9NU3RyaW5nKCksIERPTVN0cmlu
ZygpLCAwKSxleGNlcHRpb25jb2RlLHRydWUpOwogICAgICAgICAgICAgaWYgKGV4Y2VwdGlvbmNv
ZGUpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9Ci0gICAgfQogfQogCi0vLyBi
YXNlIGNsYXNzIGZvciBub2RlcyB0aGF0IG1heSBoYXZlIGNoaWxkcmVuCi12b2lkIENvbnRhaW5l
ck5vZGVJbXBsOjpkaXNwYXRjaENoaWxkUmVtb3ZhbEV2ZW50cyggTm9kZUltcGwgKmNoaWxkLCBp
bnQgJmV4Y2VwdGlvbmNvZGUgKQorc3RhdGljIHZvaWQgZGlzcGF0Y2hDaGlsZFJlbW92YWxFdmVu
dHMoTm9kZUltcGwqIGNoaWxkLCBpbnQmIGV4Y2VwdGlvbmNvZGUpCiB7CisgICAgUmVmUHRyPE5v
ZGVJbXBsPiBjID0gY2hpbGQ7CisgICAgUmVmUHRyPERvY3VtZW50SW1wbD4gZG9jID0gY2hpbGQt
PmdldERvY3VtZW50KCk7CisKICAgICAvLyB1cGRhdGUgYXV4aWxpYXJ5IGRvYyBpbmZvIChlLmcu
IGl0ZXJhdG9ycykgdG8gbm90ZSB0aGF0IG5vZGUgaXMgYmVpbmcgcmVtb3ZlZAotICAgIGdldERv
Y3VtZW50KCktPm5vdGlmeUJlZm9yZU5vZGVSZW1vdmFsKGNoaWxkKTsgLy8gIyMjIHVzZSBldmVu
dHMgaW5zdGVhZAorICAgIGRvYy0+bm90aWZ5QmVmb3JlTm9kZVJlbW92YWwoY2hpbGQpOyAvLyAj
IyMgdXNlIGV2ZW50cyBpbnN0ZWFkCiAKICAgICAvLyBkaXNwYXRjaCBwcmUtcmVtb3ZhbCBtdXRh
dGlvbiBldmVudHMKLSAgICBpZiAoZ2V0RG9jdW1lbnQoKS0+aGFzTGlzdGVuZXJUeXBlKERvY3Vt
ZW50SW1wbDo6RE9NTk9ERVJFTU9WRURfTElTVEVORVIpKSB7Ci0gICAgICAgIGNoaWxkLT5kaXNw
YXRjaEV2ZW50KG5ldyBNdXRhdGlvbkV2ZW50SW1wbChET01Ob2RlUmVtb3ZlZEV2ZW50LAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlLGZhbHNlLHRoaXMsRE9NU3RyaW5nKCksRE9N
U3RyaW5nKCksRE9NU3RyaW5nKCksMCksZXhjZXB0aW9uY29kZSx0cnVlKTsKKyAgICBpZiAoYy0+
cGFyZW50Tm9kZSgpICYmIGRvYy0+aGFzTGlzdGVuZXJUeXBlKERvY3VtZW50SW1wbDo6RE9NTk9E
RVJFTU9WRURfTElTVEVORVIpKSB7CisgICAgICAgIGV4Y2VwdGlvbmNvZGUgPSAwOworICAgICAg
ICBjaGlsZC0+ZGlzcGF0Y2hFdmVudChuZXcgTXV0YXRpb25FdmVudEltcGwoRE9NTm9kZVJlbW92
ZWRFdmVudCwgdHJ1ZSwgZmFsc2UsCisgICAgICAgICAgICBjLT5wYXJlbnROb2RlKCksIERPTVN0
cmluZygpLCBET01TdHJpbmcoKSwgRE9NU3RyaW5nKCksIDApLCBleGNlcHRpb25jb2RlLCB0cnVl
KTsKICAgICAgICAgaWYgKGV4Y2VwdGlvbmNvZGUpCiAgICAgICAgICAgICByZXR1cm47CiAgICAg
fQogCi0gICAgYm9vbCBoYXNSZW1vdmFsTGlzdGVuZXJzID0gZ2V0RG9jdW1lbnQoKS0+aGFzTGlz
dGVuZXJUeXBlKERvY3VtZW50SW1wbDo6RE9NTk9ERVJFTU9WRURGUk9NRE9DVU1FTlRfTElTVEVO
RVIpOwotCiAgICAgLy8gZGlzcGF0Y2ggdGhlIERPTU5vZGVSZW1vdmVkRnJvbURvY3VtZW50IGV2
ZW50IHRvIGFsbCBkZXNjZW5kYW50cwotICAgIGlmIChpbkRvY3VtZW50KCkpIHsKLSAgICAgICAg
Zm9yIChOb2RlSW1wbCAqYyA9IGNoaWxkOyBjOyBjID0gYy0+dHJhdmVyc2VOZXh0Tm9kZShjaGls
ZCkpIHsKLSAgICAgICAgICAgIGlmIChoYXNSZW1vdmFsTGlzdGVuZXJzKSB7Ci0gICAgICAgICAg
ICAgICAgYy0+ZGlzcGF0Y2hFdmVudChuZXcgTXV0YXRpb25FdmVudEltcGwoRE9NTm9kZVJlbW92
ZWRGcm9tRG9jdW1lbnRFdmVudCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZh
bHNlLGZhbHNlLDAsRE9NU3RyaW5nKCksRE9NU3RyaW5nKCksRE9NU3RyaW5nKCksMCksZXhjZXB0
aW9uY29kZSx0cnVlKTsKLSAgICAgICAgICAgICAgICBpZiAoZXhjZXB0aW9uY29kZSkKLSAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgfQorICAgIGlmIChjLT5pbkRvY3Vt
ZW50KCkgJiYgZG9jLT5oYXNMaXN0ZW5lclR5cGUoRG9jdW1lbnRJbXBsOjpET01OT0RFUkVNT1ZF
REZST01ET0NVTUVOVF9MSVNURU5FUikpCisgICAgICAgIGZvciAoOyBjOyBjID0gYy0+dHJhdmVy
c2VOZXh0Tm9kZShjaGlsZCkpIHsKKyAgICAgICAgICAgIGV4Y2VwdGlvbmNvZGUgPSAwOworICAg
ICAgICAgICAgYy0+ZGlzcGF0Y2hFdmVudChuZXcgTXV0YXRpb25FdmVudEltcGwoRE9NTm9kZVJl
bW92ZWRGcm9tRG9jdW1lbnRFdmVudCwgZmFsc2UsIGZhbHNlLAorICAgICAgICAgICAgICAgIDAs
IERPTVN0cmluZygpLCBET01TdHJpbmcoKSwgRE9NU3RyaW5nKCksIDApLCBleGNlcHRpb25jb2Rl
LCB0cnVlKTsKKyAgICAgICAgICAgIGlmIChleGNlcHRpb25jb2RlKQorICAgICAgICAgICAgICAg
IHJldHVybjsKICAgICAgICAgfQotICAgIH0KIH0KKwogfQo=
</data>
<flag name="review"
          id="1385"
          type_id="1"
          status="+"
          setter="justin.garcia"
    />
          </attachment>
      

    </bug>

</bugzilla>