<?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>77342</bug_id>
          
          <creation_ts>2012-01-30 09:31:03 -0800</creation_ts>
          <short_desc>Kill CSSMutableStyleDeclarationConstIterator</short_desc>
          <delta_ts>2012-01-30 10:52:50 -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>CSS</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</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="Antti Koivisto">koivisto</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>kling</cc>
    
    <cc>macpherson</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>545165</commentid>
    <comment_count>0</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2012-01-30 09:31:03 -0800</bug_when>
    <thetext>CSSMutableStyleDeclaration is an array and should be iterated using an index.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>545178</commentid>
    <comment_count>1</comment_count>
      <attachid>124565</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2012-01-30 09:54:45 -0800</bug_when>
    <thetext>Created attachment 124565
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>545212</commentid>
    <comment_count>2</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2012-01-30 10:52:50 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/106258</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>124565</attachid>
            <date>2012-01-30 09:54:45 -0800</date>
            <delta_ts>2012-01-30 10:48:59 -0800</delta_ts>
            <desc>patch</desc>
            <filename>kill-cssmutablestyledeclarationconstiterator.patch</filename>
            <type>text/plain</type>
            <size>18614</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwNjI1MCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM2IEBACisyMDEyLTAxLTMwICBBbnR0aSBL
b2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBLaWxsIENTU011dGFibGVTdHls
ZURlY2xhcmF0aW9uQ29uc3RJdGVyYXRvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NzczNDIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbiBpcyBhbiBhcnJheSBh
bmQgc2hvdWxkIGJlIGl0ZXJhdGVkIHVzaW5nIGFuIGluZGV4LiBUaGlzIHNpbXBsaWZpZXMgdGhl
IGNvZGUuCisKKyAgICAgICAgKiBjc3MvQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb246OmNvcHlQcm9wZXJ0
aWVzRnJvbSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbjo6
cmVtb3ZlUHJvcGVydHkpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTTXV0YWJsZVN0eWxlRGVjbGFy
YXRpb246OnNldFByb3BlcnR5KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU011dGFibGVTdHlsZURl
Y2xhcmF0aW9uOjpzZXRQcm9wZXJ0eUludGVybmFsKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU011
dGFibGVTdHlsZURlY2xhcmF0aW9uOjpwYXJzZURlY2xhcmF0aW9uKToKKyAgICAgICAgKFdlYkNv
cmU6OkNTU011dGFibGVTdHlsZURlY2xhcmF0aW9uOjphZGRQYXJzZWRQcm9wZXJ0aWVzKToKKyAg
ICAgICAgKFdlYkNvcmU6OkNTU011dGFibGVTdHlsZURlY2xhcmF0aW9uOjphZGRQYXJzZWRQcm9w
ZXJ0eSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbjo6bWVy
Z2UpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb246OnJlbW92
ZVByb3BlcnRpZXNJblNldCk6CisgICAgICAgICogY3NzL0NTU011dGFibGVTdHlsZURlY2xhcmF0
aW9uLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU011dGFibGVT
dHlsZURlY2xhcmF0aW9uOjpjcmVhdGVGb3JTVkdGb250RmFjZUVsZW1lbnQpOgorICAgICAgICAo
Q1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24pOgorICAgICAgICAqIGNzcy9DU1NTdHlsZURlY2xh
cmF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N0eWxlRGVjbGFyYXRpb246OkNTU1N0
eWxlRGVjbGFyYXRpb24pOgorICAgICAgICAqIGNzcy9DU1NTdHlsZURlY2xhcmF0aW9uLmg6Cisg
ICAgICAgIChDU1NTdHlsZURlY2xhcmF0aW9uKToKKyAgICAgICAgKCk6CisgICAgICAgICogY3Nz
L0NTU1N0eWxlU2VsZWN0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU3R5bGVTZWxlY3Rv
cjo6c3R5bGVGb3JLZXlmcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NTdHlsZVNlbGVjdG9y
OjphcHBseURlY2xhcmF0aW9uKToKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRpbmdTdHlsZS5jcHA6
CisKIDIwMTItMDEtMjYgIEpvY2VseW4gVHVyY290dGUgIDxqb2NlbHluLnR1cmNvdHRlQG5va2lh
LmNvbT4KIAogICAgICAgICBbUXRdIFdLVFI6IFVzZSBhIHNvZnR3YXJlIHJlbmRlcmluZyBwaXBp
bGluZSB3aGVuIHJ1bm5pbmcgdGVzdHMuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTTXV0
YWJsZVN0eWxlRGVjbGFyYXRpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbi5jcHAJKHJldmlzaW9uIDEwNjI0NykKKysrIFNv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbi5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTE4Niw3ICsxODYsNiBAQCBDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbjo6fkNT
U011dGFibGVTCiAKIHZvaWQgQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb246OmNvcHlQcm9wZXJ0
aWVzRnJvbShjb25zdCBDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbiYgb3RoZXIpCiB7Ci0gICAg
QVNTRVJUKCFtX2l0ZXJhdG9yQ291bnQpOwogICAgIG1fcHJvcGVydGllcyA9IG90aGVyLm1fcHJv
cGVydGllczsKIH0KIApAQCAtNjEzLDggKzYxMiw2IEBAIGJvb2wgQ1NTTXV0YWJsZVN0eWxlRGVj
bGFyYXRpb246OnJlbW92ZVMKIAogU3RyaW5nIENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uOjpy
ZW1vdmVQcm9wZXJ0eShpbnQgcHJvcGVydHlJRCwgYm9vbCBub3RpZnlDaGFuZ2VkLCBib29sIHJl
dHVyblRleHQpCiB7Ci0gICAgQVNTRVJUKCFtX2l0ZXJhdG9yQ291bnQpOwotCiAjaWYgRU5BQkxF
KE1VVEFUSU9OX09CU0VSVkVSUykKICAgICBTdHlsZUF0dHJpYnV0ZU11dGF0aW9uU2NvcGUgbXV0
YXRpb25TY29wZSh0aGlzKTsKICNlbmRpZgpAQCAtNjg0LDggKzY4MSw2IEBAIGJvb2wgQ1NTTXV0
YWJsZVN0eWxlRGVjbGFyYXRpb246OmlzUHJvcGUKIAogYm9vbCBDU1NNdXRhYmxlU3R5bGVEZWNs
YXJhdGlvbjo6c2V0UHJvcGVydHkoaW50IHByb3BlcnR5SUQsIGNvbnN0IFN0cmluZyYgdmFsdWUs
IGJvb2wgaW1wb3J0YW50LCBib29sIG5vdGlmeUNoYW5nZWQpCiB7Ci0gICAgQVNTRVJUKCFtX2l0
ZXJhdG9yQ291bnQpOwotCiAjaWYgRU5BQkxFKE1VVEFUSU9OX09CU0VSVkVSUykKICAgICBTdHls
ZUF0dHJpYnV0ZU11dGF0aW9uU2NvcGUgbXV0YXRpb25TY29wZSh0aGlzKTsKICNlbmRpZgpAQCAt
NzE4LDggKzcxMyw2IEBAIGJvb2wgQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb246OnNldFByb3AK
IAogdm9pZCBDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbjo6c2V0UHJvcGVydHlJbnRlcm5hbChj
b25zdCBDU1NQcm9wZXJ0eSYgcHJvcGVydHksIENTU1Byb3BlcnR5KiBzbG90KQogewotICAgIEFT
U0VSVCghbV9pdGVyYXRvckNvdW50KTsKLQogI2lmIEVOQUJMRShNVVRBVElPTl9PQlNFUlZFUlMp
CiAgICAgU3R5bGVBdHRyaWJ1dGVNdXRhdGlvblNjb3BlIG11dGF0aW9uU2NvcGUodGhpcyk7CiAj
ZW5kaWYKQEAgLTc1OCw4ICs3NTEsNiBAQCBib29sIENTU011dGFibGVTdHlsZURlY2xhcmF0aW9u
OjpzZXRQcm9wCiAKIHZvaWQgQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb246OnBhcnNlRGVjbGFy
YXRpb24oY29uc3QgU3RyaW5nJiBzdHlsZURlY2xhcmF0aW9uKQogewotICAgIEFTU0VSVCghbV9p
dGVyYXRvckNvdW50KTsKLQogI2lmIEVOQUJMRShNVVRBVElPTl9PQlNFUlZFUlMpCiAgICAgU3R5
bGVBdHRyaWJ1dGVNdXRhdGlvblNjb3BlIG11dGF0aW9uU2NvcGUodGhpcyk7CiAjZW5kaWYKQEAg
LTc3Nyw4ICs3NjgsNiBAQCB2b2lkIENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uOjpwYXJzZURl
CiAKIHZvaWQgQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb246OmFkZFBhcnNlZFByb3BlcnRpZXMo
Y29uc3QgQ1NTUHJvcGVydHkqIGNvbnN0KiBwcm9wZXJ0aWVzLCBpbnQgbnVtUHJvcGVydGllcykK
IHsKLSAgICBBU1NFUlQoIW1faXRlcmF0b3JDb3VudCk7Ci0KICNpZiBFTkFCTEUoTVVUQVRJT05f
T0JTRVJWRVJTKQogICAgIFN0eWxlQXR0cmlidXRlTXV0YXRpb25TY29wZSBtdXRhdGlvblNjb3Bl
KHRoaXMpOwogI2VuZGlmCkBAIC03OTcsOCArNzg2LDYgQEAgdm9pZCBDU1NNdXRhYmxlU3R5bGVE
ZWNsYXJhdGlvbjo6YWRkUGFycwogCiB2b2lkIENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uOjph
ZGRQYXJzZWRQcm9wZXJ0eShjb25zdCBDU1NQcm9wZXJ0eSYgcHJvcGVydHkpCiB7Ci0gICAgQVNT
RVJUKCFtX2l0ZXJhdG9yQ291bnQpOwotCiAjaWYgRU5BQkxFKE1VVEFUSU9OX09CU0VSVkVSUykK
ICAgICBTdHlsZUF0dHJpYnV0ZU11dGF0aW9uU2NvcGUgbXV0YXRpb25TY29wZSh0aGlzKTsKICNl
bmRpZgpAQCAtODk3LDggKzg4NCw2IEBAIHZvaWQgQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb246
OnNldENzc1QKIAogdm9pZCBDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbjo6bWVyZ2UoY29uc3Qg
Q1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24qIG90aGVyLCBib29sIGFyZ092ZXJyaWRlc09uQ29u
ZmxpY3QpCiB7Ci0gICAgQVNTRVJUKCFtX2l0ZXJhdG9yQ291bnQpOwotCiAjaWYgRU5BQkxFKE1V
VEFUSU9OX09CU0VSVkVSUykKICAgICBTdHlsZUF0dHJpYnV0ZU11dGF0aW9uU2NvcGUgbXV0YXRp
b25TY29wZSh0aGlzKTsKICNlbmRpZgpAQCAtOTcxLDggKzk1Niw2IEBAIHZvaWQgQ1NTTXV0YWJs
ZVN0eWxlRGVjbGFyYXRpb246OnJlbW92ZUIKIAogYm9vbCBDU1NNdXRhYmxlU3R5bGVEZWNsYXJh
dGlvbjo6cmVtb3ZlUHJvcGVydGllc0luU2V0KGNvbnN0IGludCogc2V0LCB1bnNpZ25lZCBsZW5n
dGgsIGJvb2wgbm90aWZ5Q2hhbmdlZCkKIHsKLSAgICBBU1NFUlQoIW1faXRlcmF0b3JDb3VudCk7
Ci0KICAgICBpZiAobV9wcm9wZXJ0aWVzLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24u
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTTXV0YWJsZVN0eWxlRGVjbGFy
YXRpb24uaAkocmV2aXNpb24gMTA2MjQ3KQorKysgU291cmNlL1dlYkNvcmUvY3NzL0NTU011dGFi
bGVTdHlsZURlY2xhcmF0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTMzLDI4ICszMyw2IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgU3R5bGVkRWxlbWVudDsKIAotY2xhc3MgQ1NTTXV0
YWJsZVN0eWxlRGVjbGFyYXRpb25Db25zdEl0ZXJhdG9yIHsKLXB1YmxpYzoKLSAgICBDU1NNdXRh
YmxlU3R5bGVEZWNsYXJhdGlvbkNvbnN0SXRlcmF0b3IoY29uc3QgQ1NTTXV0YWJsZVN0eWxlRGVj
bGFyYXRpb24qIGRlY2wsIENTU1Byb3BlcnR5KiBjdXJyZW50KTsKLSAgICBDU1NNdXRhYmxlU3R5
bGVEZWNsYXJhdGlvbkNvbnN0SXRlcmF0b3IoY29uc3QgQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRp
b25Db25zdEl0ZXJhdG9yJiBvKTsKLSAgICB+Q1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb25Db25z
dEl0ZXJhdG9yKCk7Ci0KLSAgICBjb25zdCBDU1NQcm9wZXJ0eSYgb3BlcmF0b3IqKCkgY29uc3Qg
eyByZXR1cm4gKm1fY3VycmVudDsgfQotICAgIGNvbnN0IENTU1Byb3BlcnR5KiBvcGVyYXRvci0+
KCkgY29uc3QgeyByZXR1cm4gbV9jdXJyZW50OyB9Ci0KLSAgICBib29sIG9wZXJhdG9yIT0oY29u
c3QgQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb25Db25zdEl0ZXJhdG9yJiBvKSB7IEFTU0VSVCht
X2RlY2wgPT0gby5tX2RlY2wpOyByZXR1cm4gbV9jdXJyZW50ICE9IG8ubV9jdXJyZW50OyB9Ci0g
ICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uQ29uc3RJ
dGVyYXRvciYgbykgeyBBU1NFUlQobV9kZWNsID09IG8ubV9kZWNsKTsgcmV0dXJuIG1fY3VycmVu
dCA9PSBvLm1fY3VycmVudDsgfQotCi0gICAgQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb25Db25z
dEl0ZXJhdG9yJiBvcGVyYXRvcj0oY29uc3QgQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb25Db25z
dEl0ZXJhdG9yJiBvKTsKLQotICAgIENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uQ29uc3RJdGVy
YXRvciYgb3BlcmF0b3IrKygpOwotICAgIENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uQ29uc3RJ
dGVyYXRvciYgb3BlcmF0b3ItLSgpOwotCi1wcml2YXRlOgotICAgIGNvbnN0IENTU011dGFibGVT
dHlsZURlY2xhcmF0aW9uKiBtX2RlY2w7Ci0gICAgQ1NTUHJvcGVydHkqIG1fY3VycmVudDsKLX07
Ci0KIGNsYXNzIENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uIDogcHVibGljIENTU1N0eWxlRGVj
bGFyYXRpb24gewogcHVibGljOgogICAgIHZpcnR1YWwgfkNTU011dGFibGVTdHlsZURlY2xhcmF0
aW9uKCk7CkBAIC04MywxNiArNjEsNiBAQCBwdWJsaWM6CiAgICAgeyAKICAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKG5ldyBDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbihlbGVtZW50LCBmYWxzZSkp
OwogICAgIH0KLSAgICAKLSAgICBzdGF0aWMgYm9vbCBpc1Byb3BlcnR5TmFtZShjb25zdCBTdHJp
bmcmKTsKLQotICAgIC8vIFVzZWQgYnkgU3R5bGVkRWxlbWVudDo6Y29weU5vbkF0dHJpYnV0ZVBy
b3BlcnRpZXMoKS4KLSAgICB2b2lkIGNvcHlQcm9wZXJ0aWVzRnJvbShjb25zdCBDU1NNdXRhYmxl
U3R5bGVEZWNsYXJhdGlvbiYpOwotCi0gICAgdHlwZWRlZiBDU1NNdXRhYmxlU3R5bGVEZWNsYXJh
dGlvbkNvbnN0SXRlcmF0b3IgY29uc3RfaXRlcmF0b3I7Ci0KLSAgICBjb25zdF9pdGVyYXRvciBi
ZWdpbigpIHsgcmV0dXJuIGNvbnN0X2l0ZXJhdG9yKHRoaXMsIG1fcHJvcGVydGllcy5iZWdpbigp
KTsgfQotICAgIGNvbnN0X2l0ZXJhdG9yIGVuZCgpIHsgcmV0dXJuIGNvbnN0X2l0ZXJhdG9yKHRo
aXMsIG1fcHJvcGVydGllcy5lbmQoKSk7IH0KIAogICAgIHVuc2lnbmVkIHByb3BlcnR5Q291bnQo
KSBjb25zdCB7IHJldHVybiBtX3Byb3BlcnRpZXMuc2l6ZSgpOyB9CiAgICAgYm9vbCBpc0VtcHR5
KCkgY29uc3QgeyByZXR1cm4gbV9wcm9wZXJ0aWVzLmlzRW1wdHkoKTsgfQpAQCAtMTMxLDcgKzk5
LDEwIEBAIHB1YmxpYzoKICAgICBib29sIHVzZVN0cmljdFBhcnNpbmcoKSBjb25zdCB7IHJldHVy
biBtX3N0cmljdFBhcnNpbmc7IH0KIAogICAgIHZvaWQgYWRkU3VicmVzb3VyY2VTdHlsZVVSTHMo
TGlzdEhhc2hTZXQ8S1VSTD4mKTsKLSAgICAKKworICAgIC8vIFVzZWQgYnkgU3R5bGVkRWxlbWVu
dDo6Y29weU5vbkF0dHJpYnV0ZVByb3BlcnRpZXMoKS4KKyAgICB2b2lkIGNvcHlQcm9wZXJ0aWVz
RnJvbShjb25zdCBDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbiYpOworCiAgICAgdm9pZCByZW1v
dmVFcXVpdmFsZW50UHJvcGVydGllcyhjb25zdCBDU1NTdHlsZURlY2xhcmF0aW9uKik7CiAKICAg
ICBQYXNzUmVmUHRyPENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uPiBjb3B5UHJvcGVydGllc0lu
U2V0KGNvbnN0IGludCogc2V0LCB1bnNpZ25lZCBsZW5ndGgpIGNvbnN0OwpAQCAtMTkwLDYyICsx
NjEsMTIgQEAgcHJpdmF0ZToKIAogICAgIHZpcnR1YWwgYm9vbCBjc3NQcm9wZXJ0eU1hdGNoZXMo
Y29uc3QgQ1NTUHJvcGVydHkqKSBjb25zdDsKIAotICAgIFZlY3RvcjxDU1NQcm9wZXJ0eT46OmNv
bnN0X2l0ZXJhdG9yIGZpbmRQcm9wZXJ0eVdpdGhJZChpbnQgcHJvcGVydHlJZCkgY29uc3Q7Ci0g
ICAgVmVjdG9yPENTU1Byb3BlcnR5Pjo6aXRlcmF0b3IgZmluZFByb3BlcnR5V2l0aElkKGludCBw
cm9wZXJ0eUlkKTsKKyAgICBjb25zdCBDU1NQcm9wZXJ0eSogZmluZFByb3BlcnR5V2l0aElkKGlu
dCBwcm9wZXJ0eUlkKSBjb25zdDsKKyAgICBDU1NQcm9wZXJ0eSogZmluZFByb3BlcnR5V2l0aElk
KGludCBwcm9wZXJ0eUlkKTsKIAogICAgIFZlY3RvcjxDU1NQcm9wZXJ0eSwgND4gbV9wcm9wZXJ0
aWVzOwotCi0gICAgZnJpZW5kIGNsYXNzIENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uQ29uc3RJ
dGVyYXRvcjsKIH07CiAKLWlubGluZSBDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbkNvbnN0SXRl
cmF0b3I6OkNTU011dGFibGVTdHlsZURlY2xhcmF0aW9uQ29uc3RJdGVyYXRvcihjb25zdCBDU1NN
dXRhYmxlU3R5bGVEZWNsYXJhdGlvbiogZGVjbCwgQ1NTUHJvcGVydHkqIGN1cnJlbnQpCi06IG1f
ZGVjbChkZWNsKQotLCBtX2N1cnJlbnQoY3VycmVudCkKLXsKLSNpZm5kZWYgTkRFQlVHCi0gICAg
Y29uc3RfY2FzdDxDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbio+KG1fZGVjbCktPm1faXRlcmF0
b3JDb3VudCsrOwotI2VuZGlmCi19Ci0KLWlubGluZSBDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlv
bkNvbnN0SXRlcmF0b3I6OkNTU011dGFibGVTdHlsZURlY2xhcmF0aW9uQ29uc3RJdGVyYXRvcihj
b25zdCBDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbkNvbnN0SXRlcmF0b3ImIG8pCi06IG1fZGVj
bChvLm1fZGVjbCkKLSwgbV9jdXJyZW50KG8ubV9jdXJyZW50KQotewotI2lmbmRlZiBOREVCVUcK
LSAgICBjb25zdF9jYXN0PENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uKj4obV9kZWNsKS0+bV9p
dGVyYXRvckNvdW50Kys7Ci0jZW5kaWYKLX0KLQotaW5saW5lIENTU011dGFibGVTdHlsZURlY2xh
cmF0aW9uQ29uc3RJdGVyYXRvcjo6fkNTU011dGFibGVTdHlsZURlY2xhcmF0aW9uQ29uc3RJdGVy
YXRvcigpCi17Ci0jaWZuZGVmIE5ERUJVRwotICAgIGNvbnN0X2Nhc3Q8Q1NTTXV0YWJsZVN0eWxl
RGVjbGFyYXRpb24qPihtX2RlY2wpLT5tX2l0ZXJhdG9yQ291bnQtLTsKLSNlbmRpZgotfQotCi1p
bmxpbmUgQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb25Db25zdEl0ZXJhdG9yJiBDU1NNdXRhYmxl
U3R5bGVEZWNsYXJhdGlvbkNvbnN0SXRlcmF0b3I6Om9wZXJhdG9yPShjb25zdCBDU1NNdXRhYmxl
U3R5bGVEZWNsYXJhdGlvbkNvbnN0SXRlcmF0b3ImIG8pCi17Ci0gICAgbV9kZWNsID0gby5tX2Rl
Y2w7Ci0gICAgbV9jdXJyZW50ID0gby5tX2N1cnJlbnQ7Ci0jaWZuZGVmIE5ERUJVRwotICAgIGNv
bnN0X2Nhc3Q8Q1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24qPihtX2RlY2wpLT5tX2l0ZXJhdG9y
Q291bnQrKzsKLSNlbmRpZgotICAgIHJldHVybiAqdGhpczsKLX0KLQotaW5saW5lIENTU011dGFi
bGVTdHlsZURlY2xhcmF0aW9uQ29uc3RJdGVyYXRvciYgQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRp
b25Db25zdEl0ZXJhdG9yOjpvcGVyYXRvcisrKCkKLXsKLSAgICBBU1NFUlQobV9jdXJyZW50ICE9
IGNvbnN0X2Nhc3Q8Q1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24qPihtX2RlY2wpLT5tX3Byb3Bl
cnRpZXMuZW5kKCkpOwotICAgICsrbV9jdXJyZW50OwotICAgIHJldHVybiAqdGhpczsKLX0KLQot
aW5saW5lIENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uQ29uc3RJdGVyYXRvciYgQ1NTTXV0YWJs
ZVN0eWxlRGVjbGFyYXRpb25Db25zdEl0ZXJhdG9yOjpvcGVyYXRvci0tKCkKLXsKLSAgICAtLW1f
Y3VycmVudDsKLSAgICByZXR1cm4gKnRoaXM7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
IAogI2VuZGlmIC8vIENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uX2gKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NTdHlsZURlY2xhcmF0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTU3R5bGVEZWNsYXJhdGlvbi5jcHAJKHJldmlzaW9uIDEwNjI0NykKKysr
IFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZURlY2xhcmF0aW9uLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtNDEsOSArNDEsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIENTU1N0eWxlRGVjbGFy
YXRpb246OkNTU1N0eWxlRGVjbGFyYXRpb24oQ1NTUnVsZSogcGFyZW50UnVsZSkKICAgICA6IG1f
c3RyaWN0UGFyc2luZyghcGFyZW50UnVsZSB8fCBwYXJlbnRSdWxlLT51c2VTdHJpY3RQYXJzaW5n
KCkpCi0jaWZuZGVmIE5ERUJVRwotICAgICwgbV9pdGVyYXRvckNvdW50KDApCi0jZW5kaWYKICAg
ICAsIG1faXNFbGVtZW50U3R5bGVEZWNsYXJhdGlvbihmYWxzZSkKICAgICAsIG1faXNJbmxpbmVT
dHlsZURlY2xhcmF0aW9uKGZhbHNlKQogICAgICwgbV9wYXJlbnQocGFyZW50UnVsZSkKQEAgLTUy
LDkgKzQ5LDYgQEAgQ1NTU3R5bGVEZWNsYXJhdGlvbjo6Q1NTU3R5bGVEZWNsYXJhdGlvbgogICAg
IAogQ1NTU3R5bGVEZWNsYXJhdGlvbjo6Q1NTU3R5bGVEZWNsYXJhdGlvbihTdHlsZWRFbGVtZW50
KiBwYXJlbnRFbGVtZW50LCBib29sIGlzSW5saW5lKQogICAgIDogbV9zdHJpY3RQYXJzaW5nKGZh
bHNlKQotI2lmbmRlZiBOREVCVUcKLSAgICAsIG1faXRlcmF0b3JDb3VudCgwKQotI2VuZGlmCiAg
ICAgLCBtX2lzRWxlbWVudFN0eWxlRGVjbGFyYXRpb24odHJ1ZSkKICAgICAsIG1faXNJbmxpbmVT
dHlsZURlY2xhcmF0aW9uKGlzSW5saW5lKQogICAgICwgbV9wYXJlbnQocGFyZW50RWxlbWVudCkK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZURlY2xhcmF0aW9uLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlRGVjbGFyYXRpb24uaAkocmV2aXNpb24g
MTA2MjQ3KQorKysgU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlRGVjbGFyYXRpb24uaAkod29y
a2luZyBjb3B5KQpAQCAtODksOSArODksNiBAQCBwcm90ZWN0ZWQ6CiAKICAgICAvLyBDU1NNdXRh
YmxlU3R5bGVEZWNsYXJhdGlvbiBiaXRzOgogICAgIGJvb2wgbV9zdHJpY3RQYXJzaW5nIDogMTsK
LSNpZm5kZWYgTkRFQlVHCi0gICAgdW5zaWduZWQgbV9pdGVyYXRvckNvdW50IDogNDsKLSNlbmRp
ZgogICAgIGJvb2wgbV9pc0VsZW1lbnRTdHlsZURlY2xhcmF0aW9uIDogMTsKICAgICBib29sIG1f
aXNJbmxpbmVTdHlsZURlY2xhcmF0aW9uIDogMTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1N0eWxlU2VsZWN0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NTdHlsZVNlbGVjdG9yLmNwcAkocmV2aXNpb24gMTA2MjQ3KQorKysgU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzk0LDEwICsxMzk0
LDEwIEBAIFBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+IENTU1N0eWxlU2VsZWN0b3IKICNlbmRpZgog
CiAgICAgLy8gQWRkIGFsbCB0aGUgYW5pbWF0aW5nIHByb3BlcnRpZXMgdG8gdGhlIGtleWZyYW1l
LgotICAgIGlmIChrZXlmcmFtZVJ1bGUtPnN0eWxlKCkpIHsKLSAgICAgICAgQ1NTTXV0YWJsZVN0
eWxlRGVjbGFyYXRpb246OmNvbnN0X2l0ZXJhdG9yIGVuZCA9IGtleWZyYW1lUnVsZS0+c3R5bGUo
KS0+ZW5kKCk7Ci0gICAgICAgIGZvciAoQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb246OmNvbnN0
X2l0ZXJhdG9yIGl0ID0ga2V5ZnJhbWVSdWxlLT5zdHlsZSgpLT5iZWdpbigpOyBpdCAhPSBlbmQ7
ICsraXQpIHsKLSAgICAgICAgICAgIGludCBwcm9wZXJ0eSA9ICgqaXQpLmlkKCk7CisgICAgaWYg
KENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uKiBzdHlsZURlY2xhcmF0aW9uID0ga2V5ZnJhbWVS
dWxlLT5zdHlsZSgpKSB7CisgICAgICAgIHVuc2lnbmVkIHByb3BlcnR5Q291bnQgPSBzdHlsZURl
Y2xhcmF0aW9uLT5wcm9wZXJ0eUNvdW50KCk7CisgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7
IGkgPCBwcm9wZXJ0eUNvdW50OyArK2kpIHsKKyAgICAgICAgICAgIGludCBwcm9wZXJ0eSA9IHN0
eWxlRGVjbGFyYXRpb24tPnByb3BlcnR5QXQoaSkuaWQoKTsKICAgICAgICAgICAgIC8vIFRpbWlu
Zy1mdW5jdGlvbiB3aXRoaW4ga2V5ZnJhbWVzIGlzIHNwZWNpYWwsIGJlY2F1c2UgaXQgaXMgbm90
IGFuaW1hdGVkOyBpdCBqdXN0CiAgICAgICAgICAgICAvLyBkZXNjcmliZXMgdGhlIHRpbWluZyBm
dW5jdGlvbiBiZXR3ZWVuIHRoaXMga2V5ZnJhbWUgYW5kIHRoZSBuZXh0LgogICAgICAgICAgICAg
aWYgKHByb3BlcnR5ICE9IENTU1Byb3BlcnR5V2Via2l0QW5pbWF0aW9uVGltaW5nRnVuY3Rpb24p
CkBAIC0yMjU2LDEyICsyMjU2LDExIEBAIHRlbXBsYXRlIDxib29sIGFwcGx5Rmlyc3Q+CiB2b2lk
IENTU1N0eWxlU2VsZWN0b3I6OmFwcGx5RGVjbGFyYXRpb24oQ1NTTXV0YWJsZVN0eWxlRGVjbGFy
YXRpb24qIHN0eWxlRGVjbGFyYXRpb24sIGJvb2wgaXNJbXBvcnRhbnQsIGJvb2wgaW5oZXJpdGVk
T25seSkKIHsKICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUgY29va2llID0gSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsUHJvY2Vzc1J1bGUoZG9jdW1lbnQoKSwgc3R5bGVE
ZWNsYXJhdGlvbi0+cGFyZW50UnVsZSgpKTsKLSAgICBDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlv
bjo6Y29uc3RfaXRlcmF0b3IgZW5kID0gc3R5bGVEZWNsYXJhdGlvbi0+ZW5kKCk7Ci0KICAgICBi
b29sIHN0eWxlRGVjbGFyYXRpb25JbnNpZGVSZWdpb25SdWxlID0gbV9yZWdpb25Gb3JTdHlsaW5n
ID8gaXNJbnNpZGVSZWdpb25SdWxlKHN0eWxlRGVjbGFyYXRpb24pIDogZmFsc2U7CiAKLSAgICBm
b3IgKENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uOjpjb25zdF9pdGVyYXRvciBpdCA9IHN0eWxl
RGVjbGFyYXRpb24tPmJlZ2luKCk7IGl0ICE9IGVuZDsgKytpdCkgewotICAgICAgICBjb25zdCBD
U1NQcm9wZXJ0eSYgY3VycmVudCA9ICppdDsKKyAgICB1bnNpZ25lZCBwcm9wZXJ0eUNvdW50ID0g
c3R5bGVEZWNsYXJhdGlvbi0+cHJvcGVydHlDb3VudCgpOworICAgIGZvciAodW5zaWduZWQgaSA9
IDA7IGkgPCBwcm9wZXJ0eUNvdW50OyArK2kpIHsKKyAgICAgICAgY29uc3QgQ1NTUHJvcGVydHkm
IGN1cnJlbnQgPSBzdHlsZURlY2xhcmF0aW9uLT5wcm9wZXJ0eUF0KGkpOwogICAgICAgICBpZiAo
aXNJbXBvcnRhbnQgIT0gY3VycmVudC5pc0ltcG9ydGFudCgpKQogICAgICAgICAgICAgY29udGlu
dWU7CiAgICAgICAgIGlmIChpbmhlcml0ZWRPbmx5ICYmICFjdXJyZW50LmlzSW5oZXJpdGVkKCkp
IHsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZ1N0eWxlLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmdTdHlsZS5jcHAJKHJldmlzaW9u
IDEwNjI0NykKKysrIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZ1N0eWxlLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNTU4LDkgKzU1OCw5IEBAIHZvaWQgRWRpdGluZ1N0eWxlOjpyZW1vdmVT
dHlsZUNvbmZsaWN0aW4KICAgICBSZWZQdHI8Q1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24+IG5v
ZGVTdHlsZSA9IGVkaXRpbmdTdHlsZUZyb21Db21wdXRlZFN0eWxlKGNvbXB1dGVkU3R5bGUobm9k
ZSksIEFsbEVkaXRpbmdQcm9wZXJ0aWVzKTsKICAgICBub2RlU3R5bGUtPnJlbW92ZUVxdWl2YWxl
bnRQcm9wZXJ0aWVzKHBhcmVudFN0eWxlLmdldCgpKTsKIAotICAgIENTU011dGFibGVTdHlsZURl
Y2xhcmF0aW9uOjpjb25zdF9pdGVyYXRvciBlbmQgPSBub2RlU3R5bGUtPmVuZCgpOwotICAgIGZv
ciAoQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb246OmNvbnN0X2l0ZXJhdG9yIGl0ID0gbm9kZVN0
eWxlLT5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpCi0gICAgICAgIG1fbXV0YWJsZVN0eWxlLT5y
ZW1vdmVQcm9wZXJ0eShpdC0+aWQoKSk7CisgICAgdW5zaWduZWQgcHJvcGVydHlDb3VudCA9IG5v
ZGVTdHlsZS0+cHJvcGVydHlDb3VudCgpOworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBw
cm9wZXJ0eUNvdW50OyArK2kpCisgICAgICAgIG1fbXV0YWJsZVN0eWxlLT5yZW1vdmVQcm9wZXJ0
eShub2RlU3R5bGUtPnByb3BlcnR5QXQoaSkuaWQoKSk7CiB9CiAKIHZvaWQgRWRpdGluZ1N0eWxl
OjpyZW1vdmVOb25FZGl0aW5nUHJvcGVydGllcygpCkBAIC02NTIsOSArNjUyLDkgQEAgYm9vbCBF
ZGl0aW5nU3R5bGU6OmNvbmZsaWN0c1dpdGhJbmxpbmVTdAogICAgIGlmICghbV9tdXRhYmxlU3R5
bGUgfHwgIWlubGluZVN0eWxlKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBDU1NNdXRh
YmxlU3R5bGVEZWNsYXJhdGlvbjo6Y29uc3RfaXRlcmF0b3IgZW5kID0gbV9tdXRhYmxlU3R5bGUt
PmVuZCgpOwotICAgIGZvciAoQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb246OmNvbnN0X2l0ZXJh
dG9yIGl0ID0gbV9tdXRhYmxlU3R5bGUtPmJlZ2luKCk7IGl0ICE9IGVuZDsgKytpdCkgewotICAg
ICAgICBDU1NQcm9wZXJ0eUlEIHByb3BlcnR5SUQgPSBzdGF0aWNfY2FzdDxDU1NQcm9wZXJ0eUlE
PihpdC0+aWQoKSk7CisgICAgdW5zaWduZWQgcHJvcGVydHlDb3VudCA9IG1fbXV0YWJsZVN0eWxl
LT5wcm9wZXJ0eUNvdW50KCk7CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHByb3BlcnR5
Q291bnQ7ICsraSkgeworICAgICAgICBDU1NQcm9wZXJ0eUlEIHByb3BlcnR5SUQgPSBzdGF0aWNf
Y2FzdDxDU1NQcm9wZXJ0eUlEPihtX211dGFibGVTdHlsZS0+cHJvcGVydHlBdChpKS5pZCgpKTsK
IAogICAgICAgICAvLyBXZSBkb24ndCBvdmVycmlkZSB3aGl0ZXNwYWNlIHByb3BlcnR5IG9mIGEg
dGFiIHNwYW4gYmVjYXVzZSB0aGF0IHdvdWxkIGNvbGxhcHNlIHRoZSB0YWIgaW50byBhIHNwYWNl
LgogICAgICAgICBpZiAocHJvcGVydHlJRCA9PSBDU1NQcm9wZXJ0eVdoaXRlU3BhY2UgJiYgaXNU
YWJTcGFuTm9kZShlbGVtZW50KSkKQEAgLTgzNiw5ICs4MzYsOSBAQCBib29sIEVkaXRpbmdTdHls
ZTo6ZWxlbWVudElzU3R5bGVkU3Bhbk9yCiAKICAgICBpZiAoZWxlbWVudC0+aGFzQXR0cmlidXRl
KEhUTUxOYW1lczo6c3R5bGVBdHRyKSkgewogICAgICAgICBpZiAoQ1NTTXV0YWJsZVN0eWxlRGVj
bGFyYXRpb24qIHN0eWxlID0gZWxlbWVudC0+aW5saW5lU3R5bGVEZWNsKCkpIHsKLSAgICAgICAg
ICAgIENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uOjpjb25zdF9pdGVyYXRvciBlbmQgPSBzdHls
ZS0+ZW5kKCk7Ci0gICAgICAgICAgICBmb3IgKENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uOjpj
b25zdF9pdGVyYXRvciBpdCA9IHN0eWxlLT5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpIHsKLSAg
ICAgICAgICAgICAgICBpZiAoIWlzRWRpdGluZ1Byb3BlcnR5KGl0LT5pZCgpKSkKKyAgICAgICAg
ICAgIHVuc2lnbmVkIHByb3BlcnR5Q291bnQgPSBzdHlsZS0+cHJvcGVydHlDb3VudCgpOworICAg
ICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHByb3BlcnR5Q291bnQ7ICsraSkgewor
ICAgICAgICAgICAgICAgIGlmICghaXNFZGl0aW5nUHJvcGVydHkoc3R5bGUtPnByb3BlcnR5QXQo
aSkuaWQoKSkpCiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAg
IH0KICAgICAgICAgfQpAQCAtOTkyLDIxICs5OTIsMjIgQEAgdm9pZCBFZGl0aW5nU3R5bGU6Om1l
cmdlU3R5bGUoQ1NTTXV0YWJsZQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgQ1NTTXV0
YWJsZVN0eWxlRGVjbGFyYXRpb246OmNvbnN0X2l0ZXJhdG9yIGVuZCA9IHN0eWxlLT5lbmQoKTsK
LSAgICBmb3IgKENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uOjpjb25zdF9pdGVyYXRvciBpdCA9
IHN0eWxlLT5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpIHsKLSAgICAgICAgUmVmUHRyPENTU1Zh
bHVlPiB2YWx1ZSA9IG1fbXV0YWJsZVN0eWxlLT5nZXRQcm9wZXJ0eUNTU1ZhbHVlKGl0LT5pZCgp
KTsKKyAgICB1bnNpZ25lZCBwcm9wZXJ0eUNvdW50ID0gc3R5bGUtPnByb3BlcnR5Q291bnQoKTsK
KyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgcHJvcGVydHlDb3VudDsgKytpKSB7CisgICAg
ICAgIGNvbnN0IENTU1Byb3BlcnR5JiBwcm9wZXJ0eSA9IHN0eWxlLT5wcm9wZXJ0eUF0KGkpOwor
ICAgICAgICBSZWZQdHI8Q1NTVmFsdWU+IHZhbHVlID0gbV9tdXRhYmxlU3R5bGUtPmdldFByb3Bl
cnR5Q1NTVmFsdWUocHJvcGVydHkuaWQoKSk7CiAKICAgICAgICAgLy8gdGV4dCBkZWNvcmF0aW9u
cyBuZXZlciBvdmVycmlkZSB2YWx1ZXMKLSAgICAgICAgaWYgKChpdC0+aWQoKSA9PSBDU1NQcm9w
ZXJ0eVRleHREZWNvcmF0aW9uIHx8IGl0LT5pZCgpID09IENTU1Byb3BlcnR5V2Via2l0VGV4dERl
Y29yYXRpb25zSW5FZmZlY3QpICYmIGl0LT52YWx1ZSgpLT5pc1ZhbHVlTGlzdCgpICYmIHZhbHVl
KSB7CisgICAgICAgIGlmICgocHJvcGVydHkuaWQoKSA9PSBDU1NQcm9wZXJ0eVRleHREZWNvcmF0
aW9uIHx8IHByb3BlcnR5LmlkKCkgPT0gQ1NTUHJvcGVydHlXZWJraXRUZXh0RGVjb3JhdGlvbnNJ
bkVmZmVjdCkgJiYgcHJvcGVydHkudmFsdWUoKS0+aXNWYWx1ZUxpc3QoKSAmJiB2YWx1ZSkgewog
ICAgICAgICAgICAgaWYgKHZhbHVlLT5pc1ZhbHVlTGlzdCgpKSB7Ci0gICAgICAgICAgICAgICAg
bWVyZ2VUZXh0RGVjb3JhdGlvblZhbHVlcyhzdGF0aWNfY2FzdDxDU1NWYWx1ZUxpc3QqPih2YWx1
ZS5nZXQoKSksIHN0YXRpY19jYXN0PENTU1ZhbHVlTGlzdCo+KGl0LT52YWx1ZSgpKSk7CisgICAg
ICAgICAgICAgICAgbWVyZ2VUZXh0RGVjb3JhdGlvblZhbHVlcyhzdGF0aWNfY2FzdDxDU1NWYWx1
ZUxpc3QqPih2YWx1ZS5nZXQoKSksIHN0YXRpY19jYXN0PENTU1ZhbHVlTGlzdCo+KHByb3BlcnR5
LnZhbHVlKCkpKTsKICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgIHZhbHVlID0gMDsgLy8gdGV4dC1kZWNvcmF0aW9uOiBub25lIGlzIGVxdWl2YWxl
bnQgdG8gbm90IGhhdmluZyB0aGUgcHJvcGVydHkKICAgICAgICAgfQogCiAgICAgICAgIGlmICht
b2RlID09IE92ZXJyaWRlVmFsdWVzIHx8IChtb2RlID09IERvTm90T3ZlcnJpZGVWYWx1ZXMgJiYg
IXZhbHVlKSkKLSAgICAgICAgICAgIG1fbXV0YWJsZVN0eWxlLT5zZXRQcm9wZXJ0eShpdC0+aWQo
KSwgaXQtPnZhbHVlKCktPmNzc1RleHQoKSwgaXQtPmlzSW1wb3J0YW50KCkpOworICAgICAgICAg
ICAgbV9tdXRhYmxlU3R5bGUtPnNldFByb3BlcnR5KHByb3BlcnR5LmlkKCksIHByb3BlcnR5LnZh
bHVlKCktPmNzc1RleHQoKSwgcHJvcGVydHkuaXNJbXBvcnRhbnQoKSk7CiAgICAgfQogfQogCkBA
IC0xMDQ5LDkgKzEwNTAsOSBAQCB2b2lkIEVkaXRpbmdTdHlsZTo6bWVyZ2VTdHlsZUZyb21SdWxl
c0ZvCiAgICAgUmVmUHRyPENTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbj4gY29tcHV0ZWRTdHls
ZUZvckVsZW1lbnQgPSBjb21wdXRlZFN0eWxlKGVsZW1lbnQpOwogICAgIFJlZlB0cjxDU1NNdXRh
YmxlU3R5bGVEZWNsYXJhdGlvbj4gZnJvbUNvbXB1dGVkU3R5bGUgPSBDU1NNdXRhYmxlU3R5bGVE
ZWNsYXJhdGlvbjo6Y3JlYXRlKCk7CiAgICAgewotICAgICAgICBDU1NNdXRhYmxlU3R5bGVEZWNs
YXJhdGlvbjo6Y29uc3RfaXRlcmF0b3IgZW5kID0gbV9tdXRhYmxlU3R5bGUtPmVuZCgpOwotICAg
ICAgICBmb3IgKENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uOjpjb25zdF9pdGVyYXRvciBpdCA9
IG1fbXV0YWJsZVN0eWxlLT5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpIHsKLSAgICAgICAgICAg
IGNvbnN0IENTU1Byb3BlcnR5JiBwcm9wZXJ0eSA9ICppdDsKKyAgICAgICAgdW5zaWduZWQgcHJv
cGVydHlDb3VudCA9IG1fbXV0YWJsZVN0eWxlLT5wcm9wZXJ0eUNvdW50KCk7CisgICAgICAgIGZv
ciAodW5zaWduZWQgaSA9IDA7IGkgPCBwcm9wZXJ0eUNvdW50OyArK2kpIHsKKyAgICAgICAgICAg
IGNvbnN0IENTU1Byb3BlcnR5JiBwcm9wZXJ0eSA9IG1fbXV0YWJsZVN0eWxlLT5wcm9wZXJ0eUF0
KGkpOwogICAgICAgICAgICAgQ1NTVmFsdWUqIHZhbHVlID0gcHJvcGVydHkudmFsdWUoKTsKICAg
ICAgICAgICAgIGlmICghdmFsdWUtPmlzUHJpbWl0aXZlVmFsdWUoKSkKICAgICAgICAgICAgICAg
ICBjb250aW51ZTsKQEAgLTEwNjYsMTEgKzEwNjcsMTAgQEAgdm9pZCBFZGl0aW5nU3R5bGU6Om1l
cmdlU3R5bGVGcm9tUnVsZXNGbwogCiBzdGF0aWMgdm9pZCByZW1vdmVQcm9wZXJ0aWVzSW5TdHls
ZShDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbiogc3R5bGVUb1JlbW92ZVByb3BlcnRpZXNGcm9t
LCBDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbiogc3R5bGUpCiB7Ci0gICAgVmVjdG9yPGludD4g
cHJvcGVydGllc1RvUmVtb3ZlKHN0eWxlLT5wcm9wZXJ0eUNvdW50KCkpOwotICAgIHNpemVfdCBp
ID0gMDsKLSAgICBDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbjo6Y29uc3RfaXRlcmF0b3IgZW5k
ID0gc3R5bGUtPmVuZCgpOwotICAgIGZvciAoQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb246OmNv
bnN0X2l0ZXJhdG9yIGl0ID0gc3R5bGUtPmJlZ2luKCk7IGl0ICE9IGVuZDsgKytpdCwgKytpKQot
ICAgICAgICBwcm9wZXJ0aWVzVG9SZW1vdmVbaV0gPSBpdC0+aWQoKTsKKyAgICB1bnNpZ25lZCBw
cm9wZXJ0eUNvdW50ID0gc3R5bGUtPnByb3BlcnR5Q291bnQoKTsKKyAgICBWZWN0b3I8aW50PiBw
cm9wZXJ0aWVzVG9SZW1vdmUocHJvcGVydHlDb3VudCk7CisgICAgZm9yICh1bnNpZ25lZCBpID0g
MDsgaSA8IHByb3BlcnR5Q291bnQ7ICsraSkKKyAgICAgICAgcHJvcGVydGllc1RvUmVtb3ZlW2ld
ID0gc3R5bGUtPnByb3BlcnR5QXQoaSkuaWQoKTsKIAogICAgIHN0eWxlVG9SZW1vdmVQcm9wZXJ0
aWVzRnJvbS0+cmVtb3ZlUHJvcGVydGllc0luU2V0KHByb3BlcnRpZXNUb1JlbW92ZS5kYXRhKCks
IHByb3BlcnRpZXNUb1JlbW92ZS5zaXplKCkpOwogfQo=
</data>
<flag name="review"
          id="125854"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>