<?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>7076</bug_id>
          
          <creation_ts>2006-02-04 17:04:28 -0800</creation_ts>
          <short_desc>Just return bool from DOM child mutation methods instead of the node</short_desc>
          <delta_ts>2019-02-06 09:03: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>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>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Maciej Stachowiak">mjs</reporter>
          <assigned_to name="Maciej Stachowiak">mjs</assigned_to>
          <cc>cdumez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>31378</commentid>
    <comment_count>0</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2006-02-04 17:04:28 -0800</bug_when>
    <thetext>Just return bool from DOM child mutation methods instead of the node. This return only matters for language bindings, and they already have the node and a reference on it, and avoiding the node return reduces the need for refcounting thrash.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>31379</commentid>
    <comment_count>1</comment_count>
      <attachid>6255</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2006-02-04 17:05:50 -0800</bug_when>
    <thetext>Created attachment 6255
patch to do it</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>31380</commentid>
    <comment_count>2</comment_count>
      <attachid>6255</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2006-02-04 17:13:20 -0800</bug_when>
    <thetext>Comment on attachment 6255
patch to do it

Looks good, r=me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1503059</commentid>
    <comment_count>3</comment_count>
    <who name="Lucas Forschler">lforschler</who>
    <bug_when>2019-02-06 09:03:53 -0800</bug_when>
    <thetext>Mass moving XML DOM bugs to the &quot;DOM&quot; Component.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>6255</attachid>
            <date>2006-02-04 17:05:50 -0800</date>
            <delta_ts>2006-02-04 17:13:20 -0800</delta_ts>
            <desc>patch to do it</desc>
            <filename>dom-less-ref-thrash.patch.txt</filename>
            <type>text/plain</type>
            <size>23735</size>
            <attacher name="Maciej Stachowiak">mjs</attacher>
            
              <data encoding="base64">SW5kZXg6IGtodG1sL3htbC9Ob2RlSW1wbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtodG1sL3htbC9Ob2Rl
SW1wbC5oCShyZXZpc2lvbiAxMjU1NykKKysrIGtodG1sL3htbC9Ob2RlSW1wbC5oCSh3b3JraW5n
IGNvcHkpCkBAIC04MywxMCArODMsMTQgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBoYXNB
dHRyaWJ1dGVzKCkgY29uc3Q7CiAgICAgdmlydHVhbCBOYW1lZEF0dHJNYXBJbXBsKiBhdHRyaWJ1
dGVzKCkgY29uc3Q7CiAgICAgdmlydHVhbCBEb2N1bWVudEltcGwqIG93bmVyRG9jdW1lbnQoKSBj
b25zdDsKLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8Tm9kZUltcGw+IGluc2VydEJlZm9yZShQYXNz
UmVmUHRyPE5vZGVJbXBsPiBuZXdDaGlsZCwgTm9kZUltcGwqIHJlZkNoaWxkLCBFeGNlcHRpb25D
b2RlJik7Ci0gICAgdmlydHVhbCBQYXNzUmVmUHRyPE5vZGVJbXBsPiByZXBsYWNlQ2hpbGQoUGFz
c1JlZlB0cjxOb2RlSW1wbD4gbmV3Q2hpbGQsIE5vZGVJbXBsKiBvbGRDaGlsZCwgRXhjZXB0aW9u
Q29kZSYpOwotICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxOb2RlSW1wbD4gcmVtb3ZlQ2hpbGQoTm9k
ZUltcGwqIGNoaWxkLCBFeGNlcHRpb25Db2RlJik7Ci0gICAgdmlydHVhbCBQYXNzUmVmUHRyPE5v
ZGVJbXBsPiBhcHBlbmRDaGlsZChQYXNzUmVmUHRyPE5vZGVJbXBsPiBuZXdDaGlsZCwgRXhjZXB0
aW9uQ29kZSYpOworCisgICAgLy8gVGhlc2Ugc2hvdWxkIGFsbCBhY3R1YWxseSByZXR1cm4gYSBu
b2RlLCBidXQgdGhpcyBpcyBvbmx5IGltcG9ydGFudCBmb3IgbGFuZ3VhZ2UgYmluZGluZ3MsCisg
ICAgLy8gd2hpY2ggd2lsbCBhbHJlYWR5IGtub3cgYW5kIGhvbGQgYSByZWYgb24gdGhlIHJpZ2h0
IG5vZGUgdG8gcmV0dXJuCisgICAgdmlydHVhbCBib29sIGluc2VydEJlZm9yZShQYXNzUmVmUHRy
PE5vZGVJbXBsPiBuZXdDaGlsZCwgTm9kZUltcGwqIHJlZkNoaWxkLCBFeGNlcHRpb25Db2RlJik7
CisgICAgdmlydHVhbCBib29sIHJlcGxhY2VDaGlsZChQYXNzUmVmUHRyPE5vZGVJbXBsPiBuZXdD
aGlsZCwgTm9kZUltcGwqIG9sZENoaWxkLCBFeGNlcHRpb25Db2RlJik7CisgICAgdmlydHVhbCBi
b29sIHJlbW92ZUNoaWxkKE5vZGVJbXBsKiBjaGlsZCwgRXhjZXB0aW9uQ29kZSYpOworICAgIHZp
cnR1YWwgYm9vbCBhcHBlbmRDaGlsZChQYXNzUmVmUHRyPE5vZGVJbXBsPiBuZXdDaGlsZCwgRXhj
ZXB0aW9uQ29kZSYpOworCiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZShFeGNlcHRpb25Db2RlJik7
CiAgICAgdmlydHVhbCBib29sIGhhc0NoaWxkTm9kZXMoKSBjb25zdDsKICAgICB2aXJ0dWFsIFBh
c3NSZWZQdHI8Tm9kZUltcGw+IGNsb25lTm9kZShib29sIGRlZXApID0gMDsKSW5kZXg6IGtodG1s
L3htbC9Db250YWluZXJOb2RlSW1wbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtodG1sL3htbC9Db250YWlu
ZXJOb2RlSW1wbC5oCShyZXZpc2lvbiAxMjU1NykKKysrIGtodG1sL3htbC9Db250YWluZXJOb2Rl
SW1wbC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zOCwxMCArMzgsMTQgQEAgcHVibGljOgogCiAgICAg
dmlydHVhbCBOb2RlSW1wbCogZmlyc3RDaGlsZCgpIGNvbnN0OwogICAgIHZpcnR1YWwgTm9kZUlt
cGwqIGxhc3RDaGlsZCgpIGNvbnN0OwotICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxOb2RlSW1wbD4g
aW5zZXJ0QmVmb3JlKFBhc3NSZWZQdHI8Tm9kZUltcGw+IG5ld0NoaWxkLCBOb2RlSW1wbCogcmVm
Q2hpbGQsIEV4Y2VwdGlvbkNvZGUmKTsKLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8Tm9kZUltcGw+
IHJlcGxhY2VDaGlsZChQYXNzUmVmUHRyPE5vZGVJbXBsPiBuZXdDaGlsZCwgTm9kZUltcGwqIG9s
ZENoaWxkLCBFeGNlcHRpb25Db2RlJik7Ci0gICAgdmlydHVhbCBQYXNzUmVmUHRyPE5vZGVJbXBs
PiByZW1vdmVDaGlsZChOb2RlSW1wbCogY2hpbGQsIEV4Y2VwdGlvbkNvZGUmKTsKLSAgICB2aXJ0
dWFsIFBhc3NSZWZQdHI8Tm9kZUltcGw+IGFwcGVuZENoaWxkKFBhc3NSZWZQdHI8Tm9kZUltcGw+
IG5ld0NoaWxkLCBFeGNlcHRpb25Db2RlJik7CisKKyAgICAvLyBUaGVzZSBzaG91bGQgYWxsIGFj
dHVhbGx5IHJldHVybiBhIG5vZGUsIGJ1dCB0aGlzIGlzIG9ubHkgaW1wb3J0YW50IGZvciBsYW5n
dWFnZSBiaW5kaW5ncywKKyAgICAvLyB3aGljaCB3aWxsIGFscmVhZHkga25vdyBhbmQgaG9sZCBh
IHJlZiBvbiB0aGUgcmlnaHQgbm9kZSB0byByZXR1cm4KKyAgICB2aXJ0dWFsIGJvb2wgaW5zZXJ0
QmVmb3JlKFBhc3NSZWZQdHI8Tm9kZUltcGw+IG5ld0NoaWxkLCBOb2RlSW1wbCogcmVmQ2hpbGQs
IEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB2aXJ0dWFsIGJvb2wgcmVwbGFjZUNoaWxkKFBhc3NSZWZQ
dHI8Tm9kZUltcGw+IG5ld0NoaWxkLCBOb2RlSW1wbCogb2xkQ2hpbGQsIEV4Y2VwdGlvbkNvZGUm
KTsKKyAgICB2aXJ0dWFsIGJvb2wgcmVtb3ZlQ2hpbGQoTm9kZUltcGwqIGNoaWxkLCBFeGNlcHRp
b25Db2RlJik7CisgICAgdmlydHVhbCBib29sIGFwcGVuZENoaWxkKFBhc3NSZWZQdHI8Tm9kZUlt
cGw+IG5ld0NoaWxkLCBFeGNlcHRpb25Db2RlJik7CisKICAgICB2aXJ0dWFsIENvbnRhaW5lck5v
ZGVJbXBsKiBhZGRDaGlsZChQYXNzUmVmUHRyPE5vZGVJbXBsPik7CiAgICAgdmlydHVhbCBib29s
IGhhc0NoaWxkTm9kZXMoKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgYXR0YWNoKCk7CkluZGV4
OiBraHRtbC94bWwvTm9kZUltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtodG1sL3htbC9Ob2RlSW1w
bC5jcHAJKHJldmlzaW9uIDEyNTU3KQorKysga2h0bWwveG1sL05vZGVJbXBsLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMjA3LDI4ICsyMDcsMjggQEAgTm9kZUltcGwgKk5vZGVJbXBsOjpsYXN0RGVz
Y2VuZGFudCgpIGNvbgogICAgIHJldHVybiBuOwogfQogCi1QYXNzUmVmUHRyPE5vZGVJbXBsPiBO
b2RlSW1wbDo6aW5zZXJ0QmVmb3JlKFBhc3NSZWZQdHI8Tm9kZUltcGw+LCBOb2RlSW1wbCosIEV4
Y2VwdGlvbkNvZGUmIGVjKQorYm9vbCBOb2RlSW1wbDo6aW5zZXJ0QmVmb3JlKFBhc3NSZWZQdHI8
Tm9kZUltcGw+LCBOb2RlSW1wbCosIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIGVjID0gRE9N
RXhjZXB0aW9uOjpISUVSQVJDSFlfUkVRVUVTVF9FUlI7Ci0gICAgcmV0dXJuIDA7CisgICAgcmV0
dXJuIGZhbHNlOwogfQogCi1QYXNzUmVmUHRyPE5vZGVJbXBsPiBOb2RlSW1wbDo6cmVwbGFjZUNo
aWxkKFBhc3NSZWZQdHI8Tm9kZUltcGw+LCBOb2RlSW1wbCosIEV4Y2VwdGlvbkNvZGUmIGVjKQor
Ym9vbCBOb2RlSW1wbDo6cmVwbGFjZUNoaWxkKFBhc3NSZWZQdHI8Tm9kZUltcGw+LCBOb2RlSW1w
bCosIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIGVjID0gRE9NRXhjZXB0aW9uOjpISUVSQVJD
SFlfUkVRVUVTVF9FUlI7Ci0gICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIGZhbHNlOwogfQogCi1Q
YXNzUmVmUHRyPE5vZGVJbXBsPiBOb2RlSW1wbDo6cmVtb3ZlQ2hpbGQoTm9kZUltcGwqLCBFeGNl
cHRpb25Db2RlJiBlYykKK2Jvb2wgTm9kZUltcGw6OnJlbW92ZUNoaWxkKE5vZGVJbXBsKiwgRXhj
ZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgZWMgPSBET01FeGNlcHRpb246Ok5PVF9GT1VORF9FUlI7
Ci0gICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIGZhbHNlOwogfQogCi1QYXNzUmVmUHRyPE5vZGVJ
bXBsPiBOb2RlSW1wbDo6YXBwZW5kQ2hpbGQoUGFzc1JlZlB0cjxOb2RlSW1wbD4sIEV4Y2VwdGlv
bkNvZGUmIGVjKQorYm9vbCBOb2RlSW1wbDo6YXBwZW5kQ2hpbGQoUGFzc1JlZlB0cjxOb2RlSW1w
bD4sIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIGVjID0gRE9NRXhjZXB0aW9uOjpISUVSQVJD
SFlfUkVRVUVTVF9FUlI7Ci0gICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIGZhbHNlOwogfQogCiB2
b2lkIE5vZGVJbXBsOjpyZW1vdmUoaW50ICZleGNlcHRpb25jb2RlKQpJbmRleDoga2h0bWwveG1s
L0NvbnRhaW5lck5vZGVJbXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBraHRtbC94bWwvQ29udGFpbmVy
Tm9kZUltcGwuY3BwCShyZXZpc2lvbiAxMjU1NykKKysrIGtodG1sL3htbC9Db250YWluZXJOb2Rl
SW1wbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTExOCw3ICsxMTgsNyBAQCBOb2RlSW1wbCogQ29u
dGFpbmVyTm9kZUltcGw6Omxhc3RDaGlsZCgpCiAgICAgcmV0dXJuIG1fbGFzdENoaWxkOwogfQog
Ci1QYXNzUmVmUHRyPE5vZGVJbXBsPiBDb250YWluZXJOb2RlSW1wbDo6aW5zZXJ0QmVmb3JlKFBh
c3NSZWZQdHI8Tm9kZUltcGw+IG5ld0NoaWxkLCBOb2RlSW1wbCogcmVmQ2hpbGQsIEV4Y2VwdGlv
bkNvZGUmIGVjKQorYm9vbCBDb250YWluZXJOb2RlSW1wbDo6aW5zZXJ0QmVmb3JlKFBhc3NSZWZQ
dHI8Tm9kZUltcGw+IG5ld0NoaWxkLCBOb2RlSW1wbCogcmVmQ2hpbGQsIEV4Y2VwdGlvbkNvZGUm
IGVjKQogewogICAgIGVjID0gMDsKIApAQCAtMTI5LDMwICsxMjksMzAgQEAgUGFzc1JlZlB0cjxO
b2RlSW1wbD4gQ29udGFpbmVyTm9kZUltcGw6OgogICAgIC8vIE1ha2Ugc3VyZSBhZGRpbmcgdGhl
IG5ldyBjaGlsZCBpcyBPSy4KICAgICBjaGVja0FkZENoaWxkKG5ld0NoaWxkLmdldCgpLCBlYyk7
CiAgICAgaWYgKGVjKQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIGZhbHNlOwog
CiAgICAgLy8gTk9UX0ZPVU5EX0VSUjogUmFpc2VkIGlmIHJlZkNoaWxkIGlzIG5vdCBhIGNoaWxk
IG9mIHRoaXMgbm9kZQogICAgIGlmIChyZWZDaGlsZC0+cGFyZW50Tm9kZSgpICE9IHRoaXMpIHsK
ICAgICAgICAgZWMgPSBET01FeGNlcHRpb246Ok5PVF9GT1VORF9FUlI7Ci0gICAgICAgIHJldHVy
biAwOworICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCiAgICAgYm9vbCBpc0ZyYWdtZW50
ID0gbmV3Q2hpbGQtPm5vZGVUeXBlKCkgPT0gTm9kZTo6RE9DVU1FTlRfRlJBR01FTlRfTk9ERTsK
IAogICAgIC8vIElmIG5ld0NoaWxkIGlzIGEgRG9jdW1lbnRGcmFnbWVudCB3aXRoIG5vIGNoaWxk
cmVuOyB0aGVyZSdzIG5vdGhpbmcgdG8gZG8uCi0gICAgLy8gSnVzdCByZXR1cm4gdGhlIGRvY3Vt
ZW50IGZyYWdtZW50LgorICAgIC8vIEp1c3QgcmV0dXJuIHRydWUKICAgICBpZiAoaXNGcmFnbWVu
dCAmJiAhbmV3Q2hpbGQtPmZpcnN0Q2hpbGQoKSkKLSAgICAgICAgcmV0dXJuIG5ld0NoaWxkOwor
ICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIC8vIE5vdyBhY3R1YWxseSBhZGQgdGhlIGNoaWxk
KHJlbikKICAgICBpZiAocmVmQ2hpbGQtPnByZXZpb3VzU2libGluZygpID09IG5ld0NoaWxkIHx8
IHJlZkNoaWxkID09IG5ld0NoaWxkKSAvLyBub3RoaW5nIHRvIGRvCi0gICAgICAgIHJldHVybiBu
ZXdDaGlsZDsKKyAgICAgICAgcmV0dXJuIHRydWU7CiAKICAgICBSZWZQdHI8Tm9kZUltcGw+IG5l
eHQgPSByZWZDaGlsZDsKIAotICAgIFJlZlB0cjxOb2RlSW1wbD4gY2hpbGQgPSBpc0ZyYWdtZW50
ID8gbmV3Q2hpbGQtPmZpcnN0Q2hpbGQoKSA6IG5ld0NoaWxkLmdldCgpOworICAgIFJlZlB0cjxO
b2RlSW1wbD4gY2hpbGQgPSBpc0ZyYWdtZW50ID8gbmV3Q2hpbGQtPmZpcnN0Q2hpbGQoKSA6IG5l
d0NoaWxkOwogICAgIHdoaWxlIChjaGlsZCkgewotICAgICAgICBQYXNzUmVmUHRyPE5vZGVJbXBs
PiBuZXh0Q2hpbGQgPSBpc0ZyYWdtZW50ID8gY2hpbGQtPm5leHRTaWJsaW5nKCkgOiAwOworICAg
ICAgICBSZWZQdHI8Tm9kZUltcGw+IG5leHRDaGlsZCA9IGlzRnJhZ21lbnQgPyBjaGlsZC0+bmV4
dFNpYmxpbmcoKSA6IDA7CiAKICAgICAgICAgLy8gSWYgY2hpbGQgaXMgYWxyZWFkeSBwcmVzZW50
IGluIHRoZSB0cmVlLCBmaXJzdCByZW1vdmUgaXQgZnJvbSB0aGUgb2xkIGxvY2F0aW9uLgogICAg
ICAgICBpZiAoTm9kZUltcGwqIG9sZFBhcmVudCA9IGNoaWxkLT5wYXJlbnROb2RlKCkpCkBAIC0y
MDIsMzggKzIwMiwzOSBAQCBQYXNzUmVmUHRyPE5vZGVJbXBsPiBDb250YWluZXJOb2RlSW1wbDo6
CiAgICAgICAgIC8vIERpc3BhdGNoIHRoZSBtdXRhdGlvbiBldmVudHMuCiAgICAgICAgIGRpc3Bh
dGNoQ2hpbGRJbnNlcnRpb25FdmVudHMoY2hpbGQuZ2V0KCksIGVjKTsKIAotICAgICAgICBjaGls
ZCA9IG5leHRDaGlsZDsKKyAgICAgICAgY2hpbGQgPSBuZXh0Q2hpbGQucmVsZWFzZSgpOwogICAg
IH0KIAogICAgIGdldERvY3VtZW50KCktPnNldERvY3VtZW50Q2hhbmdlZCh0cnVlKTsKICAgICBk
aXNwYXRjaFN1YnRyZWVNb2RpZmllZEV2ZW50KCk7Ci0gICAgcmV0dXJuIG5ld0NoaWxkOworICAg
IHJldHVybiB0cnVlOwogfQogCi1QYXNzUmVmUHRyPE5vZGVJbXBsPiBDb250YWluZXJOb2RlSW1w
bDo6cmVwbGFjZUNoaWxkKFBhc3NSZWZQdHI8Tm9kZUltcGw+IG5ld0NoaWxkLCBOb2RlSW1wbCog
b2xkQ2hpbGQsIEV4Y2VwdGlvbkNvZGUmIGVjKQorYm9vbCBDb250YWluZXJOb2RlSW1wbDo6cmVw
bGFjZUNoaWxkKFBhc3NSZWZQdHI8Tm9kZUltcGw+IG5ld0NoaWxkLCBOb2RlSW1wbCogb2xkQ2hp
bGQsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIGVjID0gMDsKIAogICAgIGlmIChvbGRDaGls
ZCA9PSBuZXdDaGlsZCkgLy8gbm90aGluZyB0byBkbwotICAgICAgICByZXR1cm4gbmV3Q2hpbGQ7
CisgICAgICAgIHJldHVybiB0cnVlOwogICAgIAogICAgIC8vIE1ha2Ugc3VyZSBhZGRpbmcgdGhl
IG5ldyBjaGlsZCBpcyBvawogICAgIGNoZWNrQWRkQ2hpbGQobmV3Q2hpbGQuZ2V0KCksIGVjKTsK
ICAgICBpZiAoZWMpCi0gICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4gZmFsc2U7CiAK
ICAgICAvLyBOT1RfRk9VTkRfRVJSOiBSYWlzZWQgaWYgb2xkQ2hpbGQgaXMgbm90IGEgY2hpbGQg
b2YgdGhpcyBub2RlLgogICAgIGlmICghb2xkQ2hpbGQgfHwgb2xkQ2hpbGQtPnBhcmVudE5vZGUo
KSAhPSB0aGlzKSB7CiAgICAgICAgIGVjID0gRE9NRXhjZXB0aW9uOjpOT1RfRk9VTkRfRVJSOwot
ICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIAogICAgIFJl
ZlB0cjxOb2RlSW1wbD4gcHJldiA9IG9sZENoaWxkLT5wcmV2aW91c1NpYmxpbmcoKTsKIAogICAg
IC8vIFJlbW92ZSB0aGUgbm9kZSB3ZSdyZSByZXBsYWNpbmcKLSAgICBQYXNzUmVmUHRyPE5vZGVJ
bXBsPiByZW1vdmVkQ2hpbGQgPSByZW1vdmVDaGlsZChvbGRDaGlsZCwgZWMpOworICAgIFJlZlB0
cjxOb2RlSW1wbD4gcmVtb3ZlZENoaWxkID0gb2xkQ2hpbGQ7CisgICAgcmVtb3ZlQ2hpbGQob2xk
Q2hpbGQsIGVjKTsKICAgICBpZiAoZWMpCi0gICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1
cm4gZmFsc2U7CiAKICAgICAvLyBGSVhNRTogQWZ0ZXIgc2VuZGluZyB0aGUgbXV0YXRpb24gZXZl
bnRzLCAidGhpcyIgY291bGQgYmUgZGVzdHJveWVkLgogICAgIC8vIFdlIGNhbiBwcmV2ZW50IHRo
YXQgYnkgZG9pbmcgYSAicmVmIiwgYnV0IGZpcnN0IHdlIGhhdmUgdG8gbWFrZSBzdXJlCkBAIC0y
NDMsNyArMjQ0LDcgQEAgUGFzc1JlZlB0cjxOb2RlSW1wbD4gQ29udGFpbmVyTm9kZUltcGw6Ogog
ICAgIGJvb2wgaXNGcmFnbWVudCA9IG5ld0NoaWxkLT5ub2RlVHlwZSgpID09IE5vZGU6OkRPQ1VN
RU5UX0ZSQUdNRU5UX05PREU7CiAKICAgICAvLyBBZGQgdGhlIG5ldyBjaGlsZChyZW4pCi0gICAg
UmVmUHRyPE5vZGVJbXBsPiBjaGlsZCA9IGlzRnJhZ21lbnQgPyBuZXdDaGlsZC0+Zmlyc3RDaGls
ZCgpIDogbmV3Q2hpbGQuZ2V0KCk7CisgICAgUmVmUHRyPE5vZGVJbXBsPiBjaGlsZCA9IGlzRnJh
Z21lbnQgPyBuZXdDaGlsZC0+Zmlyc3RDaGlsZCgpIDogbmV3Q2hpbGQ7CiAgICAgd2hpbGUgKGNo
aWxkKSB7CiAgICAgICAgIC8vIElmIHRoZSBuZXcgY2hpbGQgaXMgYWxyZWFkeSBpbiB0aGUgcmln
aHQgcGxhY2UsIHdlJ3JlIGRvbmUuCiAgICAgICAgIGlmIChwcmV2ICYmIChwcmV2ID09IGNoaWxk
IHx8IHByZXYgPT0gY2hpbGQtPnByZXZpb3VzU2libGluZygpKSkKQEAgLTMwMiwxMyArMzAzLDEz
IEBAIFBhc3NSZWZQdHI8Tm9kZUltcGw+IENvbnRhaW5lck5vZGVJbXBsOjoKICAgICAgICAgZGlz
cGF0Y2hDaGlsZEluc2VydGlvbkV2ZW50cyhjaGlsZC5nZXQoKSwgZWMpOwogCiAgICAgICAgIHBy
ZXYgPSBjaGlsZDsKLSAgICAgICAgY2hpbGQgPSBuZXh0Q2hpbGQ7CisgICAgICAgIGNoaWxkID0g
bmV4dENoaWxkLnJlbGVhc2UoKTsKICAgICB9CiAKICAgICAvLyAjIyMgc2V0IHN0eWxlIGluIGNh
c2UgaXQncyBhdHRhY2hlZAogICAgIGdldERvY3VtZW50KCktPnNldERvY3VtZW50Q2hhbmdlZCh0
cnVlKTsKICAgICBkaXNwYXRjaFN1YnRyZWVNb2RpZmllZEV2ZW50KCk7Ci0gICAgcmV0dXJuIHJl
bW92ZWRDaGlsZDsKKyAgICByZXR1cm4gdHJ1ZTsKIH0KIAogdm9pZCBDb250YWluZXJOb2RlSW1w
bDo6d2lsbFJlbW92ZSgpCkBAIC0zMzIsNDAgKzMzMyw0MCBAQCBzdGF0aWMgRXhjZXB0aW9uQ29k
ZSB3aWxsUmVtb3ZlQ2hpbGQoTm9kCiAgICAgcmV0dXJuIDA7CiB9CiAKLVBhc3NSZWZQdHI8Tm9k
ZUltcGw+IENvbnRhaW5lck5vZGVJbXBsOjpyZW1vdmVDaGlsZChOb2RlSW1wbCogb2xkQ2hpbGQs
IEV4Y2VwdGlvbkNvZGUmIGVjKQorYm9vbCBDb250YWluZXJOb2RlSW1wbDo6cmVtb3ZlQ2hpbGQo
Tm9kZUltcGwqIG9sZENoaWxkLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBlYyA9IDA7CiAK
ICAgICAvLyBOT19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlI6IFJhaXNlZCBpZiB0aGlzIG5vZGUg
aXMgcmVhZG9ubHkuCiAgICAgaWYgKGlzUmVhZE9ubHkoKSkgewogICAgICAgICBlYyA9IERPTUV4
Y2VwdGlvbjo6Tk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSOwotICAgICAgICByZXR1cm4gMDsK
KyAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIAogICAgIC8vIE5PVF9GT1VORF9FUlI6IFJh
aXNlZCBpZiBvbGRDaGlsZCBpcyBub3QgYSBjaGlsZCBvZiB0aGlzIG5vZGUuCiAgICAgaWYgKCFv
bGRDaGlsZCB8fCBvbGRDaGlsZC0+cGFyZW50Tm9kZSgpICE9IHRoaXMpIHsKICAgICAgICAgZWMg
PSBET01FeGNlcHRpb246Ok5PVF9GT1VORF9FUlI7Ci0gICAgICAgIHJldHVybiAwOworICAgICAg
ICByZXR1cm4gZmFsc2U7CiAgICAgfQogCi0gICAgUGFzc1JlZlB0cjxOb2RlSW1wbD4gY2hpbGQg
PSBvbGRDaGlsZDsKKyAgICBSZWZQdHI8Tm9kZUltcGw+IGNoaWxkID0gb2xkQ2hpbGQ7CiAgICAg
CiAgICAgLy8gZGlzcGF0Y2ggcHJlLXJlbW92YWwgbXV0YXRpb24gZXZlbnRzCiAgICAgaWYgKGdl
dERvY3VtZW50KCktPmhhc0xpc3RlbmVyVHlwZShEb2N1bWVudEltcGw6OkRPTU5PREVSRU1PVkVE
X0xJU1RFTkVSKSkgewogICAgICAgICBjaGlsZC0+ZGlzcGF0Y2hFdmVudChuZXcgTXV0YXRpb25F
dmVudEltcGwoRE9NTm9kZVJlbW92ZWRFdmVudCwgdHJ1ZSwgZmFsc2UsCiAgICAgICAgICAgICB0
aGlzLCBET01TdHJpbmcoKSwgRE9NU3RyaW5nKCksIERPTVN0cmluZygpLCAwKSwgZWMsIHRydWUp
OwogICAgICAgICBpZiAoZWMpCi0gICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKICAgICB9CiAKICAgICBlYyA9IHdpbGxSZW1vdmVDaGlsZChjaGlsZC5nZXQo
KSk7CiAgICAgaWYgKGVjKQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIGZhbHNl
OwogCiAgICAgLy8gTXV0YXRpb24gZXZlbnRzIG1pZ2h0IGhhdmUgbW92ZWQgdGhpcyBjaGlsZCBp
bnRvIGEgZGlmZmVyZW50IHBhcmVudC4KICAgICBpZiAoY2hpbGQtPnBhcmVudE5vZGUoKSAhPSB0
aGlzKSB7CiAgICAgICAgIGVjID0gRE9NRXhjZXB0aW9uOjpOT1RfRk9VTkRfRVJSOwotICAgICAg
ICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIAogICAgIC8vIEZJWE1F
OiBBZnRlciBzZW5kaW5nIHRoZSBtdXRhdGlvbiBldmVudHMsICJ0aGlzIiBjb3VsZCBiZSBkZXN0
cm95ZWQuCkBAIC00NTMsNyArNDU0LDcgQEAgdm9pZCBDb250YWluZXJOb2RlSW1wbDo6cmVtb3Zl
Q2hpbGRyZW4oKQogfQogCiAKLVBhc3NSZWZQdHI8Tm9kZUltcGw+IENvbnRhaW5lck5vZGVJbXBs
OjphcHBlbmRDaGlsZChQYXNzUmVmUHRyPE5vZGVJbXBsPiBuZXdDaGlsZCwgRXhjZXB0aW9uQ29k
ZSYgZWMpCitib29sIENvbnRhaW5lck5vZGVJbXBsOjphcHBlbmRDaGlsZChQYXNzUmVmUHRyPE5v
ZGVJbXBsPiBuZXdDaGlsZCwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgZWMgPSAwOwogCkBA
IC00NzAsMTAgKzQ3MSwxMCBAQCBQYXNzUmVmUHRyPE5vZGVJbXBsPiBDb250YWluZXJOb2RlSW1w
bDo6CiAgICAgLy8gSWYgbmV3Q2hpbGQgaXMgYSBEb2N1bWVudEZyYWdtZW50IHdpdGggbm8gY2hp
bGRyZW4uLi4uIHRoZXJlJ3Mgbm90aGluZyB0byBkby4KICAgICAvLyBKdXN0IHJldHVybiB0aGUg
ZG9jdW1lbnQgZnJhZ21lbnQKICAgICBpZiAoaXNGcmFnbWVudCAmJiAhbmV3Q2hpbGQtPmZpcnN0
Q2hpbGQoKSkKLSAgICAgICAgcmV0dXJuIG5ld0NoaWxkOworICAgICAgICByZXR1cm4gdHJ1ZTsK
IAogICAgIC8vIE5vdyBhY3R1YWxseSBhZGQgdGhlIGNoaWxkKHJlbikKLSAgICBSZWZQdHI8Tm9k
ZUltcGw+IGNoaWxkID0gaXNGcmFnbWVudCA/IG5ld0NoaWxkLT5maXJzdENoaWxkKCkgOiBuZXdD
aGlsZC5nZXQoKTsKKyAgICBSZWZQdHI8Tm9kZUltcGw+IGNoaWxkID0gaXNGcmFnbWVudCA/IG5l
d0NoaWxkLT5maXJzdENoaWxkKCkgOiBuZXdDaGlsZDsKICAgICB3aGlsZSAoY2hpbGQpIHsKICAg
ICAgICAgLy8gRm9yIGEgZnJhZ21lbnQgd2UgaGF2ZSBtb3JlIGNoaWxkcmVuIHRvIGRvLgogICAg
ICAgICBSZWZQdHI8Tm9kZUltcGw+IG5leHRDaGlsZCA9IGlzRnJhZ21lbnQgPyBjaGlsZC0+bmV4
dFNpYmxpbmcoKSA6IDA7CkBAIC01MTAsMTMgKzUxMSwxMiBAQCBQYXNzUmVmUHRyPE5vZGVJbXBs
PiBDb250YWluZXJOb2RlSW1wbDo6CiAgICAgICAgIC8vIERpc3BhdGNoIHRoZSBtdXRhdGlvbiBl
dmVudHMKICAgICAgICAgZGlzcGF0Y2hDaGlsZEluc2VydGlvbkV2ZW50cyhjaGlsZC5nZXQoKSwg
ZWMpOwogCi0gICAgICAgIGNoaWxkID0gbmV4dENoaWxkOworICAgICAgICBjaGlsZCA9IG5leHRD
aGlsZC5yZWxlYXNlKCk7CiAgICAgfQogCiAgICAgZ2V0RG9jdW1lbnQoKS0+c2V0RG9jdW1lbnRD
aGFuZ2VkKHRydWUpOwotICAgIC8vICMjIyBzZXQgc3R5bGUgaW4gY2FzZSBpdCdzIGF0dGFjaGVk
CiAgICAgZGlzcGF0Y2hTdWJ0cmVlTW9kaWZpZWRFdmVudCgpOwotICAgIHJldHVybiBuZXdDaGls
ZDsKKyAgICByZXR1cm4gdHJ1ZTsKIH0KIAogYm9vbCBDb250YWluZXJOb2RlSW1wbDo6aGFzQ2hp
bGROb2RlcygpIGNvbnN0CkluZGV4OiBraHRtbC94bWwveG1sX3Rva2VuaXplci5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0ga2h0bWwveG1sL3htbF90b2tlbml6ZXIuY3BwCShyZXZpc2lvbiAxMjU1NykKKysr
IGtodG1sL3htbC94bWxfdG9rZW5pemVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODE4LDcgKzgx
OCw3IEBAIHZvaWQgWE1MVG9rZW5pemVyOjppbnNlcnRFcnJvck1lc3NhZ2VCbG8KICNlbmRpZgog
CiAgICAgUmVmUHRyPEVsZW1lbnRJbXBsPiByZXBvcnRFbGVtZW50ID0gY3JlYXRlWEhUTUxQYXJz
ZXJFcnJvckhlYWRlcihkb2MsIG1fZXJyb3JNZXNzYWdlcyk7Ci0gICAgZG9jdW1lbnRFbGVtZW50
LT5pbnNlcnRCZWZvcmUocmVwb3J0RWxlbWVudC5nZXQoKSwgZG9jdW1lbnRFbGVtZW50LT5maXJz
dENoaWxkKCksIGV4Y2VwdGlvbmNvZGUpOworICAgIGRvY3VtZW50RWxlbWVudC0+aW5zZXJ0QmVm
b3JlKHJlcG9ydEVsZW1lbnQsIGRvY3VtZW50RWxlbWVudC0+Zmlyc3RDaGlsZCgpLCBleGNlcHRp
b25jb2RlKTsKICNpZmRlZiBLSFRNTF9YU0xUCiAgICAgaWYgKGRvYy0+dHJhbnNmb3JtU291cmNl
RG9jdW1lbnQoKSkgewogICAgICAgICBFbGVtZW50SW1wbCogcGFyID0gZG9jLT5jcmVhdGVFbGVt
ZW50TlMoeGh0bWxOYW1lc3BhY2VVUkksICJwIiwgZXhjZXB0aW9uY29kZSk7CkluZGV4OiBraHRt
bC9odG1sL0hUTUxTZWxlY3RFbGVtZW50SW1wbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtodG1sL2h0bWwv
SFRNTFNlbGVjdEVsZW1lbnRJbXBsLmgJKHJldmlzaW9uIDEyNTU3KQorKysga2h0bWwvaHRtbC9I
VE1MU2VsZWN0RWxlbWVudEltcGwuaAkod29ya2luZyBjb3B5KQpAQCAtODEsMTAgKzgxLDEwIEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIFFTdHJpbmcgc3RhdGUoKTsKICAgICB2aXJ0dWFsIHZvaWQg
cmVzdG9yZVN0YXRlKFFTdHJpbmdMaXN0ICYpOwogCi0gICAgdmlydHVhbCBQYXNzUmVmUHRyPE5v
ZGVJbXBsPiBpbnNlcnRCZWZvcmUoUGFzc1JlZlB0cjxOb2RlSW1wbD4gbmV3Q2hpbGQsIE5vZGVJ
bXBsKiByZWZDaGlsZCwgRXhjZXB0aW9uQ29kZSYpOwotICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxO
b2RlSW1wbD4gcmVwbGFjZUNoaWxkKFBhc3NSZWZQdHI8Tm9kZUltcGw+IG5ld0NoaWxkLCBOb2Rl
SW1wbCogb2xkQ2hpbGQsIEV4Y2VwdGlvbkNvZGUmKTsKLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8
Tm9kZUltcGw+IHJlbW92ZUNoaWxkKE5vZGVJbXBsKiBjaGlsZCwgRXhjZXB0aW9uQ29kZSYpOwot
ICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxOb2RlSW1wbD4gYXBwZW5kQ2hpbGQoUGFzc1JlZlB0cjxO
b2RlSW1wbD4gbmV3Q2hpbGQsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB2aXJ0dWFsIGJvb2wgaW5z
ZXJ0QmVmb3JlKFBhc3NSZWZQdHI8Tm9kZUltcGw+IG5ld0NoaWxkLCBOb2RlSW1wbCogcmVmQ2hp
bGQsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB2aXJ0dWFsIGJvb2wgcmVwbGFjZUNoaWxkKFBhc3NS
ZWZQdHI8Tm9kZUltcGw+IG5ld0NoaWxkLCBOb2RlSW1wbCogb2xkQ2hpbGQsIEV4Y2VwdGlvbkNv
ZGUmKTsKKyAgICB2aXJ0dWFsIGJvb2wgcmVtb3ZlQ2hpbGQoTm9kZUltcGwqIGNoaWxkLCBFeGNl
cHRpb25Db2RlJik7CisgICAgdmlydHVhbCBib29sIGFwcGVuZENoaWxkKFBhc3NSZWZQdHI8Tm9k
ZUltcGw+IG5ld0NoaWxkLCBFeGNlcHRpb25Db2RlJik7CiAgICAgdmlydHVhbCBDb250YWluZXJO
b2RlSW1wbCogYWRkQ2hpbGQoUGFzc1JlZlB0cjxOb2RlSW1wbD4pOwogCiAgICAgdmlydHVhbCB2
b2lkIGNoaWxkcmVuQ2hhbmdlZCgpOwpJbmRleDoga2h0bWwvaHRtbC9IVE1MT3B0R3JvdXBFbGVt
ZW50SW1wbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0ga2h0bWwvaHRtbC9IVE1MT3B0R3JvdXBFbGVtZW50
SW1wbC5jcHAJKHJldmlzaW9uIDEyNTU3KQorKysga2h0bWwvaHRtbC9IVE1MT3B0R3JvdXBFbGVt
ZW50SW1wbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUzLDMzICs1MywzMyBAQCBET01TdHJpbmcg
SFRNTE9wdEdyb3VwRWxlbWVudEltcGw6OnR5cGUoCiAgICAgcmV0dXJuICJvcHRncm91cCI7CiB9
CiAKLVBhc3NSZWZQdHI8Tm9kZUltcGw+IEhUTUxPcHRHcm91cEVsZW1lbnRJbXBsOjppbnNlcnRC
ZWZvcmUoUGFzc1JlZlB0cjxOb2RlSW1wbD4gbmV3Q2hpbGQsIE5vZGVJbXBsKiByZWZDaGlsZCwg
RXhjZXB0aW9uQ29kZSYgZWMpCitib29sIEhUTUxPcHRHcm91cEVsZW1lbnRJbXBsOjppbnNlcnRC
ZWZvcmUoUGFzc1JlZlB0cjxOb2RlSW1wbD4gbmV3Q2hpbGQsIE5vZGVJbXBsKiByZWZDaGlsZCwg
RXhjZXB0aW9uQ29kZSYgZWMpCiB7Ci0gICAgUGFzc1JlZlB0cjxOb2RlSW1wbD4gcmVzdWx0ID0g
SFRNTEdlbmVyaWNGb3JtRWxlbWVudEltcGw6Omluc2VydEJlZm9yZShuZXdDaGlsZCwgcmVmQ2hp
bGQsIGVjKTsKKyAgICBib29sIHJlc3VsdCA9IEhUTUxHZW5lcmljRm9ybUVsZW1lbnRJbXBsOjpp
bnNlcnRCZWZvcmUobmV3Q2hpbGQsIHJlZkNoaWxkLCBlYyk7CiAgICAgaWYgKHJlc3VsdCkKICAg
ICAgICAgcmVjYWxjU2VsZWN0T3B0aW9ucygpOwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLVBh
c3NSZWZQdHI8Tm9kZUltcGw+IEhUTUxPcHRHcm91cEVsZW1lbnRJbXBsOjpyZXBsYWNlQ2hpbGQo
UGFzc1JlZlB0cjxOb2RlSW1wbD4gbmV3Q2hpbGQsIE5vZGVJbXBsKiBvbGRDaGlsZCwgRXhjZXB0
aW9uQ29kZSYgZWMpCitib29sIEhUTUxPcHRHcm91cEVsZW1lbnRJbXBsOjpyZXBsYWNlQ2hpbGQo
UGFzc1JlZlB0cjxOb2RlSW1wbD4gbmV3Q2hpbGQsIE5vZGVJbXBsKiBvbGRDaGlsZCwgRXhjZXB0
aW9uQ29kZSYgZWMpCiB7Ci0gICAgUGFzc1JlZlB0cjxOb2RlSW1wbD4gcmVzdWx0ID0gSFRNTEdl
bmVyaWNGb3JtRWxlbWVudEltcGw6OnJlcGxhY2VDaGlsZChuZXdDaGlsZCwgb2xkQ2hpbGQsIGVj
KTsKKyAgICBib29sIHJlc3VsdCA9IEhUTUxHZW5lcmljRm9ybUVsZW1lbnRJbXBsOjpyZXBsYWNl
Q2hpbGQobmV3Q2hpbGQsIG9sZENoaWxkLCBlYyk7CiAgICAgaWYgKHJlc3VsdCkKICAgICAgICAg
cmVjYWxjU2VsZWN0T3B0aW9ucygpOwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLVBhc3NSZWZQ
dHI8Tm9kZUltcGw+IEhUTUxPcHRHcm91cEVsZW1lbnRJbXBsOjpyZW1vdmVDaGlsZChOb2RlSW1w
bCogb2xkQ2hpbGQsIEV4Y2VwdGlvbkNvZGUmIGVjKQorYm9vbCBIVE1MT3B0R3JvdXBFbGVtZW50
SW1wbDo6cmVtb3ZlQ2hpbGQoTm9kZUltcGwqIG9sZENoaWxkLCBFeGNlcHRpb25Db2RlJiBlYykK
IHsKLSAgICBQYXNzUmVmUHRyPE5vZGVJbXBsPiByZXN1bHQgPSBIVE1MR2VuZXJpY0Zvcm1FbGVt
ZW50SW1wbDo6cmVtb3ZlQ2hpbGQob2xkQ2hpbGQsIGVjKTsKKyAgICBib29sIHJlc3VsdCA9IEhU
TUxHZW5lcmljRm9ybUVsZW1lbnRJbXBsOjpyZW1vdmVDaGlsZChvbGRDaGlsZCwgZWMpOwogICAg
IGlmIChyZXN1bHQpCiAgICAgICAgIHJlY2FsY1NlbGVjdE9wdGlvbnMoKTsKICAgICByZXR1cm4g
cmVzdWx0OwogfQogCi1QYXNzUmVmUHRyPE5vZGVJbXBsPiBIVE1MT3B0R3JvdXBFbGVtZW50SW1w
bDo6YXBwZW5kQ2hpbGQoUGFzc1JlZlB0cjxOb2RlSW1wbD4gbmV3Q2hpbGQsIEV4Y2VwdGlvbkNv
ZGUmIGVjKQorYm9vbCBIVE1MT3B0R3JvdXBFbGVtZW50SW1wbDo6YXBwZW5kQ2hpbGQoUGFzc1Jl
ZlB0cjxOb2RlSW1wbD4gbmV3Q2hpbGQsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewotICAgIFBhc3NS
ZWZQdHI8Tm9kZUltcGw+IHJlc3VsdCA9IEhUTUxHZW5lcmljRm9ybUVsZW1lbnRJbXBsOjphcHBl
bmRDaGlsZChuZXdDaGlsZCwgZWMpOworICAgIGJvb2wgcmVzdWx0ID0gSFRNTEdlbmVyaWNGb3Jt
RWxlbWVudEltcGw6OmFwcGVuZENoaWxkKG5ld0NoaWxkLCBlYyk7CiAgICAgaWYgKHJlc3VsdCkK
ICAgICAgICAgcmVjYWxjU2VsZWN0T3B0aW9ucygpOwogICAgIHJldHVybiByZXN1bHQ7CkluZGV4
OiBraHRtbC9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnRJbXBsLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBr
aHRtbC9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnRJbXBsLmNwcAkocmV2aXNpb24gMTI1NTcpCisr
KyBraHRtbC9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnRJbXBsLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMjM2LDcgKzIzNiw3IEBAIHZvaWQgSFRNTFRleHRBcmVhRWxlbWVudEltcGw6OnNldERlZmF1
bHQKICAgICAgICAgUmVmUHRyPE5vZGVJbXBsPiBuID0gaXQuY3VycmVudCgpOwogICAgICAgICBy
ZW1vdmVDaGlsZChuLmdldCgpLCBleGNlcHRpb25jb2RlKTsKICAgICB9Ci0gICAgaW5zZXJ0QmVm
b3JlKGdldERvY3VtZW50KCktPmNyZWF0ZVRleHROb2RlKGRlZmF1bHRWYWx1ZSksZmlyc3RDaGls
ZCgpLCBleGNlcHRpb25jb2RlKTsKKyAgICBpbnNlcnRCZWZvcmUoZ2V0RG9jdW1lbnQoKS0+Y3Jl
YXRlVGV4dE5vZGUoZGVmYXVsdFZhbHVlKSwgZmlyc3RDaGlsZCgpLCBleGNlcHRpb25jb2RlKTsK
ICAgICBzZXRWYWx1ZShkZWZhdWx0VmFsdWUpOwogfQogCkluZGV4OiBraHRtbC9odG1sL0hUTUxT
ZWxlY3RFbGVtZW50SW1wbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga2h0bWwvaHRtbC9IVE1MU2VsZWN0
RWxlbWVudEltcGwuY3BwCShyZXZpc2lvbiAxMjU1NykKKysrIGtodG1sL2h0bWwvSFRNTFNlbGVj
dEVsZW1lbnRJbXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjE3LDMzICsyMTcsMzMgQEAgdm9p
ZCBIVE1MU2VsZWN0RWxlbWVudEltcGw6OnJlc3RvcmVTdGF0ZQogICAgIHNldENoYW5nZWQodHJ1
ZSk7CiB9CiAKLVBhc3NSZWZQdHI8Tm9kZUltcGw+IEhUTUxTZWxlY3RFbGVtZW50SW1wbDo6aW5z
ZXJ0QmVmb3JlKFBhc3NSZWZQdHI8Tm9kZUltcGw+IG5ld0NoaWxkLCBOb2RlSW1wbCogcmVmQ2hp
bGQsIEV4Y2VwdGlvbkNvZGUmIGVjKQorYm9vbCBIVE1MU2VsZWN0RWxlbWVudEltcGw6Omluc2Vy
dEJlZm9yZShQYXNzUmVmUHRyPE5vZGVJbXBsPiBuZXdDaGlsZCwgTm9kZUltcGwqIHJlZkNoaWxk
LCBFeGNlcHRpb25Db2RlJiBlYykKIHsKLSAgICBQYXNzUmVmUHRyPE5vZGVJbXBsPiByZXN1bHQg
PSBIVE1MR2VuZXJpY0Zvcm1FbGVtZW50SW1wbDo6aW5zZXJ0QmVmb3JlKG5ld0NoaWxkLCByZWZD
aGlsZCwgZWMpOworICAgIGJvb2wgcmVzdWx0ID0gSFRNTEdlbmVyaWNGb3JtRWxlbWVudEltcGw6
Omluc2VydEJlZm9yZShuZXdDaGlsZCwgcmVmQ2hpbGQsIGVjKTsKICAgICBpZiAocmVzdWx0KQog
ICAgICAgICBzZXRSZWNhbGNMaXN0SXRlbXMoKTsKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1Q
YXNzUmVmUHRyPE5vZGVJbXBsPiBIVE1MU2VsZWN0RWxlbWVudEltcGw6OnJlcGxhY2VDaGlsZChQ
YXNzUmVmUHRyPE5vZGVJbXBsPiBuZXdDaGlsZCwgTm9kZUltcGwgKm9sZENoaWxkLCBFeGNlcHRp
b25Db2RlJiBlYykKK2Jvb2wgSFRNTFNlbGVjdEVsZW1lbnRJbXBsOjpyZXBsYWNlQ2hpbGQoUGFz
c1JlZlB0cjxOb2RlSW1wbD4gbmV3Q2hpbGQsIE5vZGVJbXBsICpvbGRDaGlsZCwgRXhjZXB0aW9u
Q29kZSYgZWMpCiB7Ci0gICAgUGFzc1JlZlB0cjxOb2RlSW1wbD4gcmVzdWx0ID0gSFRNTEdlbmVy
aWNGb3JtRWxlbWVudEltcGw6OnJlcGxhY2VDaGlsZChuZXdDaGlsZCwgb2xkQ2hpbGQsIGVjKTsK
KyAgICBib29sIHJlc3VsdCA9IEhUTUxHZW5lcmljRm9ybUVsZW1lbnRJbXBsOjpyZXBsYWNlQ2hp
bGQobmV3Q2hpbGQsIG9sZENoaWxkLCBlYyk7CiAgICAgaWYgKHJlc3VsdCkKICAgICAgICAgc2V0
UmVjYWxjTGlzdEl0ZW1zKCk7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotUGFzc1JlZlB0cjxO
b2RlSW1wbD4gSFRNTFNlbGVjdEVsZW1lbnRJbXBsOjpyZW1vdmVDaGlsZChOb2RlSW1wbCogb2xk
Q2hpbGQsIEV4Y2VwdGlvbkNvZGUmIGVjKQorYm9vbCBIVE1MU2VsZWN0RWxlbWVudEltcGw6OnJl
bW92ZUNoaWxkKE5vZGVJbXBsKiBvbGRDaGlsZCwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7Ci0gICAg
UGFzc1JlZlB0cjxOb2RlSW1wbD4gcmVzdWx0ID0gSFRNTEdlbmVyaWNGb3JtRWxlbWVudEltcGw6
OnJlbW92ZUNoaWxkKG9sZENoaWxkLCBlYyk7CisgICAgYm9vbCByZXN1bHQgPSBIVE1MR2VuZXJp
Y0Zvcm1FbGVtZW50SW1wbDo6cmVtb3ZlQ2hpbGQob2xkQ2hpbGQsIGVjKTsKICAgICBpZiAocmVz
dWx0KQogICAgICAgICBzZXRSZWNhbGNMaXN0SXRlbXMoKTsKICAgICByZXR1cm4gcmVzdWx0Owog
fQogCi1QYXNzUmVmUHRyPE5vZGVJbXBsPiBIVE1MU2VsZWN0RWxlbWVudEltcGw6OmFwcGVuZENo
aWxkKFBhc3NSZWZQdHI8Tm9kZUltcGw+IG5ld0NoaWxkLCBFeGNlcHRpb25Db2RlJiBlYykKK2Jv
b2wgSFRNTFNlbGVjdEVsZW1lbnRJbXBsOjphcHBlbmRDaGlsZChQYXNzUmVmUHRyPE5vZGVJbXBs
PiBuZXdDaGlsZCwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7Ci0gICAgUGFzc1JlZlB0cjxOb2RlSW1w
bD4gcmVzdWx0ID0gSFRNTEdlbmVyaWNGb3JtRWxlbWVudEltcGw6OmFwcGVuZENoaWxkKG5ld0No
aWxkLCBlYyk7CisgICAgYm9vbCByZXN1bHQgPSBIVE1MR2VuZXJpY0Zvcm1FbGVtZW50SW1wbDo6
YXBwZW5kQ2hpbGQobmV3Q2hpbGQsIGVjKTsKICAgICBpZiAocmVzdWx0KQogICAgICAgICBzZXRS
ZWNhbGNMaXN0SXRlbXMoKTsKICAgICByZXR1cm4gcmVzdWx0OwpJbmRleDoga2h0bWwvaHRtbC9I
VE1MT3B0R3JvdXBFbGVtZW50SW1wbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtodG1sL2h0bWwvSFRNTE9w
dEdyb3VwRWxlbWVudEltcGwuaAkocmV2aXNpb24gMTI1NTcpCisrKyBraHRtbC9odG1sL0hUTUxP
cHRHcm91cEVsZW1lbnRJbXBsLmgJKHdvcmtpbmcgY29weSkKQEAgLTM5LDEwICszOSwxMCBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCBib29sIGNoZWNrRFREKGNvbnN0IE5vZGVJbXBsKik7CiAgICAg
dmlydHVhbCBET01TdHJpbmcgdHlwZSgpIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBpc0ZvY3Vz
YWJsZSgpIGNvbnN0OwotICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxOb2RlSW1wbD4gaW5zZXJ0QmVm
b3JlKFBhc3NSZWZQdHI8Tm9kZUltcGw+IG5ld0NoaWxkLCBOb2RlSW1wbCogcmVmQ2hpbGQsIEV4
Y2VwdGlvbkNvZGUmKTsKLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8Tm9kZUltcGw+IHJlcGxhY2VD
aGlsZChQYXNzUmVmUHRyPE5vZGVJbXBsPiBuZXdDaGlsZCwgTm9kZUltcGwqIG9sZENoaWxkLCBF
eGNlcHRpb25Db2RlJik7Ci0gICAgdmlydHVhbCBQYXNzUmVmUHRyPE5vZGVJbXBsPiByZW1vdmVD
aGlsZChOb2RlSW1wbCogY2hpbGQsIEV4Y2VwdGlvbkNvZGUmKTsKLSAgICB2aXJ0dWFsIFBhc3NS
ZWZQdHI8Tm9kZUltcGw+IGFwcGVuZENoaWxkKFBhc3NSZWZQdHI8Tm9kZUltcGw+IG5ld0NoaWxk
LCBFeGNlcHRpb25Db2RlJik7CisgICAgdmlydHVhbCBib29sIGluc2VydEJlZm9yZShQYXNzUmVm
UHRyPE5vZGVJbXBsPiBuZXdDaGlsZCwgTm9kZUltcGwqIHJlZkNoaWxkLCBFeGNlcHRpb25Db2Rl
Jik7CisgICAgdmlydHVhbCBib29sIHJlcGxhY2VDaGlsZChQYXNzUmVmUHRyPE5vZGVJbXBsPiBu
ZXdDaGlsZCwgTm9kZUltcGwqIG9sZENoaWxkLCBFeGNlcHRpb25Db2RlJik7CisgICAgdmlydHVh
bCBib29sIHJlbW92ZUNoaWxkKE5vZGVJbXBsKiBjaGlsZCwgRXhjZXB0aW9uQ29kZSYpOworICAg
IHZpcnR1YWwgYm9vbCBhcHBlbmRDaGlsZChQYXNzUmVmUHRyPE5vZGVJbXBsPiBuZXdDaGlsZCwg
RXhjZXB0aW9uQ29kZSYpOwogICAgIHZpcnR1YWwgQ29udGFpbmVyTm9kZUltcGwqIGFkZENoaWxk
KFBhc3NSZWZQdHI8Tm9kZUltcGw+KTsKICAgICB2aXJ0dWFsIHZvaWQgcGFyc2VNYXBwZWRBdHRy
aWJ1dGUoTWFwcGVkQXR0cmlidXRlSW1wbCopOwogCkluZGV4OiBraHRtbC9odG1sL2h0bWxfdGFi
bGVpbXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBraHRtbC9odG1sL2h0bWxfdGFibGVpbXBsLmNwcAko
cmV2aXNpb24gMTI1NTcpCisrKyBraHRtbC9odG1sL2h0bWxfdGFibGVpbXBsLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMTU4LDExICsxNTgsMTEgQEAgdm9pZCBIVE1MVGFibGVFbGVtZW50SW1wbDo6
ZGVsZXRlVEhlYWQoIAogCiBIVE1MRWxlbWVudEltcGwgKkhUTUxUYWJsZUVsZW1lbnRJbXBsOjpj
cmVhdGVURm9vdCggICkKIHsKLSAgICBpZighZm9vdCkKKyAgICBpZiAoIWZvb3QpCiAgICAgewog
ICAgICAgICBpbnQgZXhjZXB0aW9uY29kZSA9IDA7CiAgICAgICAgIGZvb3QgPSBuZXcgSFRNTFRh
YmxlU2VjdGlvbkVsZW1lbnRJbXBsKHRmb290VGFnLCBnZXREb2N1bWVudCgpLCB0cnVlIC8qaW1w
bGljaXQgKi8pOwotICAgICAgICBpZihmaXJzdEJvZHkpCisgICAgICAgIGlmIChmaXJzdEJvZHkp
CiAgICAgICAgICAgICBpbnNlcnRCZWZvcmUoIGZvb3QsIGZpcnN0Qm9keSwgZXhjZXB0aW9uY29k
ZSApOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBhcHBlbmRDaGlsZChmb290LCBleGNlcHRp
b25jb2RlKTsKSW5kZXg6IGtodG1sL2VjbWEva2pzX2RvbS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga2h0
bWwvZWNtYS9ranNfZG9tLmNwcAkocmV2aXNpb24gMTI1NTcpCisrKyBraHRtbC9lY21hL2tqc19k
b20uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02NTYsMTMgKzY1NiwyMSBAQCBKU1ZhbHVlICpET01O
b2RlUHJvdG9GdW5jOjpjYWxsQXNGdW5jdGlvCiAgICAgY2FzZSBET01Ob2RlOjpEaXNwYXRjaEV2
ZW50OgogICAgICAgcmV0dXJuIGpzQm9vbGVhbihub2RlLmRpc3BhdGNoRXZlbnQodG9FdmVudChh
cmdzWzBdKSwgZXhjZXB0aW9uKSk7CiAgICAgY2FzZSBET01Ob2RlOjpBcHBlbmRDaGlsZDoKLSAg
ICAgIHJldHVybiBnZXRET01Ob2RlKGV4ZWMsbm9kZS5hcHBlbmRDaGlsZCh0b05vZGUoYXJnc1sw
XSksIGV4Y2VwdGlvbikpOworICAgICAgaWYgKG5vZGUuYXBwZW5kQ2hpbGQodG9Ob2RlKGFyZ3Nb
MF0pLCBleGNlcHRpb24pKQorICAgICAgICByZXR1cm4gYXJnc1swXTsKKyAgICAgIHJldHVybiBq
c051bGwoKTsKICAgICBjYXNlIERPTU5vZGU6OlJlbW92ZUNoaWxkOgotICAgICAgcmV0dXJuIGdl
dERPTU5vZGUoZXhlYyxub2RlLnJlbW92ZUNoaWxkKHRvTm9kZShhcmdzWzBdKSwgZXhjZXB0aW9u
KSk7CisgICAgICBpZiAobm9kZS5yZW1vdmVDaGlsZCh0b05vZGUoYXJnc1swXSksIGV4Y2VwdGlv
bikpCisgICAgICAgIHJldHVybiBhcmdzWzBdOworICAgICAgcmV0dXJuIGpzTnVsbCgpOwogICAg
IGNhc2UgRE9NTm9kZTo6SW5zZXJ0QmVmb3JlOgotICAgICAgcmV0dXJuIGdldERPTU5vZGUoZXhl
Yyxub2RlLmluc2VydEJlZm9yZSh0b05vZGUoYXJnc1swXSksIHRvTm9kZShhcmdzWzFdKSwgZXhj
ZXB0aW9uKSk7CisgICAgICBpZiAobm9kZS5pbnNlcnRCZWZvcmUodG9Ob2RlKGFyZ3NbMF0pLCB0
b05vZGUoYXJnc1sxXSksIGV4Y2VwdGlvbikpCisgICAgICAgIHJldHVybiBhcmdzWzBdOworICAg
ICAgcmV0dXJuIGpzTnVsbCgpOwogICAgIGNhc2UgRE9NTm9kZTo6UmVwbGFjZUNoaWxkOgotICAg
ICAgcmV0dXJuIGdldERPTU5vZGUoZXhlYyxub2RlLnJlcGxhY2VDaGlsZCh0b05vZGUoYXJnc1sw
XSksIHRvTm9kZShhcmdzWzFdKSwgZXhjZXB0aW9uKSk7CisgICAgIGlmIChub2RlLnJlcGxhY2VD
aGlsZCh0b05vZGUoYXJnc1swXSksIHRvTm9kZShhcmdzWzFdKSwgZXhjZXB0aW9uKSkKKyAgICAg
ICAgcmV0dXJuIGFyZ3NbMF07CisgICAgICByZXR1cm4ganNOdWxsKCk7CiAgICAgY2FzZSBET01O
b2RlOjpDb250YWluczoKICAgICAgIGlmIChub2RlLmlzRWxlbWVudE5vZGUoKSkKICAgICAgICAg
aWYgKE5vZGVJbXBsICpub2RlMCA9IHRvTm9kZShhcmdzWzBdKSkKSW5kZXg6IGJpbmRpbmdzL29i
amMvRE9NLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIGJpbmRpbmdzL29iamMvRE9NLm1tCShyZXZpc2lvbiAx
MjU1NykKKysrIGJpbmRpbmdzL29iamMvRE9NLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yNTMsOSAr
MjUzLDEwIEBAIHN0YXRpYyBMaXN0ZW5lck1hcCAqbGlzdGVuZXJNYXA7CiAgICAgQVNTRVJUKHJl
ZkNoaWxkKTsKIAogICAgIGludCBleGNlcHRpb25Db2RlID0gMDsKLSAgICBET01Ob2RlICpyZXN1
bHQgPSBbRE9NTm9kZSBfbm9kZVdpdGhJbXBsOltzZWxmIF9ub2RlSW1wbF0tPmluc2VydEJlZm9y
ZShbbmV3Q2hpbGQgX25vZGVJbXBsXSwgW3JlZkNoaWxkIF9ub2RlSW1wbF0sIGV4Y2VwdGlvbkNv
ZGUpLmdldCgpXTsKKyAgICBpZiAoW3NlbGYgX25vZGVJbXBsXS0+aW5zZXJ0QmVmb3JlKFtuZXdD
aGlsZCBfbm9kZUltcGxdLCBbcmVmQ2hpbGQgX25vZGVJbXBsXSwgZXhjZXB0aW9uQ29kZSkpCisg
ICAgICAgIHJldHVybiBuZXdDaGlsZDsKICAgICByYWlzZU9uRE9NRXJyb3IoZXhjZXB0aW9uQ29k
ZSk7Ci0gICAgcmV0dXJuIHJlc3VsdDsKKyAgICByZXR1cm4gbmlsOwogfQogCiAtIChET01Ob2Rl
ICopcmVwbGFjZUNoaWxkOihET01Ob2RlICopbmV3Q2hpbGQgOihET01Ob2RlICopb2xkQ2hpbGQK
QEAgLTI2NCw5ICsyNjUsMTAgQEAgc3RhdGljIExpc3RlbmVyTWFwICpsaXN0ZW5lck1hcDsKICAg
ICBBU1NFUlQob2xkQ2hpbGQpOwogCiAgICAgaW50IGV4Y2VwdGlvbkNvZGUgPSAwOwotICAgIERP
TU5vZGUgKnJlc3VsdCA9IFtET01Ob2RlIF9ub2RlV2l0aEltcGw6W3NlbGYgX25vZGVJbXBsXS0+
cmVwbGFjZUNoaWxkKFtuZXdDaGlsZCBfbm9kZUltcGxdLCBbb2xkQ2hpbGQgX25vZGVJbXBsXSwg
ZXhjZXB0aW9uQ29kZSkuZ2V0KCldOworICAgIGlmIChbc2VsZiBfbm9kZUltcGxdLT5yZXBsYWNl
Q2hpbGQoW25ld0NoaWxkIF9ub2RlSW1wbF0sIFtvbGRDaGlsZCBfbm9kZUltcGxdLCBleGNlcHRp
b25Db2RlKSkKKyAgICAgICAgcmV0dXJuIG5ld0NoaWxkOwogICAgIHJhaXNlT25ET01FcnJvcihl
eGNlcHRpb25Db2RlKTsKLSAgICByZXR1cm4gcmVzdWx0OworICAgIHJldHVybiBuaWw7CiB9CiAK
IC0gKERPTU5vZGUgKilyZW1vdmVDaGlsZDooRE9NTm9kZSAqKW9sZENoaWxkCkBAIC0yNzQsOSAr
Mjc2LDEwIEBAIHN0YXRpYyBMaXN0ZW5lck1hcCAqbGlzdGVuZXJNYXA7CiAgICAgQVNTRVJUKG9s
ZENoaWxkKTsKIAogICAgIGludCBleGNlcHRpb25Db2RlID0gMDsKLSAgICBET01Ob2RlICpyZXN1
bHQgPSBbRE9NTm9kZSBfbm9kZVdpdGhJbXBsOltzZWxmIF9ub2RlSW1wbF0tPnJlbW92ZUNoaWxk
KFtvbGRDaGlsZCBfbm9kZUltcGxdLCBleGNlcHRpb25Db2RlKS5nZXQoKV07CisgICAgaWYgKFtz
ZWxmIF9ub2RlSW1wbF0tPnJlbW92ZUNoaWxkKFtvbGRDaGlsZCBfbm9kZUltcGxdLCBleGNlcHRp
b25Db2RlKSkKKyAgICAgICAgcmV0dXJuIG9sZENoaWxkOwogICAgIHJhaXNlT25ET01FcnJvcihl
eGNlcHRpb25Db2RlKTsKLSAgICByZXR1cm4gcmVzdWx0OworICAgIHJldHVybiBuaWw7CiB9CiAK
IC0gKERPTU5vZGUgKilhcHBlbmRDaGlsZDooRE9NTm9kZSAqKW5ld0NoaWxkCkBAIC0yODQsOSAr
Mjg3LDEwIEBAIHN0YXRpYyBMaXN0ZW5lck1hcCAqbGlzdGVuZXJNYXA7CiAgICAgQVNTRVJUKG5l
d0NoaWxkKTsKIAogICAgIGludCBleGNlcHRpb25Db2RlID0gMDsKLSAgICBET01Ob2RlICpyZXN1
bHQgPSBbRE9NTm9kZSBfbm9kZVdpdGhJbXBsOltzZWxmIF9ub2RlSW1wbF0tPmFwcGVuZENoaWxk
KFtuZXdDaGlsZCBfbm9kZUltcGxdLCBleGNlcHRpb25Db2RlKS5nZXQoKV07CisgICAgaWYgKFtz
ZWxmIF9ub2RlSW1wbF0tPmFwcGVuZENoaWxkKFtuZXdDaGlsZCBfbm9kZUltcGxdLCBleGNlcHRp
b25Db2RlKSkKKyAgICAgICAgcmV0dXJuIG5ld0NoaWxkOwogICAgIHJhaXNlT25ET01FcnJvcihl
eGNlcHRpb25Db2RlKTsKLSAgICByZXR1cm4gcmVzdWx0OworICAgIHJldHVybiBuaWw7CiB9CiAK
IC0gKEJPT0wpaGFzQ2hpbGROb2Rlcwo=
</data>
<flag name="review"
          id="1509"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>