<?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>90842</bug_id>
          
          <creation_ts>2012-07-09 18:02:48 -0700</creation_ts>
          <short_desc>HTMLPropertiesCollection should share more code with HTMLCollection</short_desc>
          <delta_ts>2012-07-10 15:03:06 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>DOM</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>
          
          <blocked>89919</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>andersca</cc>
    
    <cc>arko</cc>
    
    <cc>darin</cc>
    
    <cc>kling</cc>
    
    <cc>koivisto</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>665364</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-07-09 18:02:48 -0700</bug_when>
    <thetext>HTMLPropertiesCollection still uses an inner class for its own cache. We need to be able to share more code with HTMLCollection.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>665372</commentid>
    <comment_count>1</comment_count>
      <attachid>151375</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-07-09 18:12:51 -0700</bug_when>
    <thetext>Created attachment 151375
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>665691</commentid>
    <comment_count>2</comment_count>
    <who name="Arko Saha">arko</who>
    <bug_when>2012-07-10 06:02:44 -0700</bug_when>
    <thetext>Patch looks good to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>666091</commentid>
    <comment_count>3</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-07-10 15:03:06 -0700</bug_when>
    <thetext>Committed r122267: &lt;http://trac.webkit.org/changeset/122267&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>151375</attachid>
            <date>2012-07-09 18:12:51 -0700</date>
            <delta_ts>2012-07-10 14:21:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-90842-20120709181638.patch</filename>
            <type>text/plain</type>
            <size>17073</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEyMjE3MykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQxIEBACisyMDEyLTA3LTA5ICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIEhUTUxQcm9wZXJ0aWVzQ29sbGVj
dGlvbiBzaG91bGQgc2hhcmUgbW9yZSBjb2RlIHdpdGggSFRNTENvbGxlY3Rpb24KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkwODQyCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgR290IHJpZCBvZiBIVE1MUHJv
cGVydGllc0NvbGxlY3Rpb246Om1fY2FjaGUsIGFuZCBhZGRlZCBtX2l0ZW1SZWZFbGVtZW50cywg
bV9wcm9wZXJ0eU5hbWVzLCBtX3Byb3BlcnR5Q2FjaGUsCisgICAgICAgIG1faGFzUHJvcGVydHlO
YW1lQ2FjaGUsIGFuZCBtX2hhc0l0ZW1SZWZFbGVtZW50cyB0byBIVE1MUHJvcGVydGllc0NvbGxl
Y3Rpb24gaXRzZWxmLiBUaGVzZSBhcmUgY2FjaGVzIHNwZWNpZmljCisgICAgICAgIHRvIEhUTUxQ
cm9wZXJ0aWVzQ29sbGVjdGlvbi4gTm90ZSB0aGF0IGhhc05hbWVDYWNoZSBoYXMgYmVlbiByZW5h
bWVkIHRvIG1faGFzUHJvcGVydHlOYW1lQ2FjaGUgYW5kIGl0ZW1SZWZFbGVtZW50UG9zaXRpb24K
KyAgICAgICAgaGFzIGJlZW4gcmVwbGFjZWQgYnkgY2FjaGVkRWxlbWVudHNBcnJheU9mZnNldCgp
IGluIEhUTUxDb2xsZWN0aW9uQ2FjaGVCYXNlIChhbHNvIHVzZWQgaW4gSFRNTEZvcm1Db2xsZWN0
aW9uKS4KKworICAgICAgICBBbHNvIGRlbGV0ZWQgYWxsIG1ldGhvZHMgb24gbV9jYWNoZSBleGNl
cHQgdXBkYXRlUHJvcGVydHlDYWNoZSBzaW5jZSBjYWNoZXMgY2FuIGJlIGFjY2Vzc2VkIGRpcmVj
dGx5IGZyb20KKyAgICAgICAgSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uLgorCisgICAgICAgICog
aHRtbC9IVE1MQ29sbGVjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ29sbGVjdGlv
bjo6aW52YWxpZGF0ZUNhY2hlSWZOZWVkZWQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENvbGxl
Y3Rpb246OmludmFsaWRhdGVDYWNoZSk6CisgICAgICAgICogaHRtbC9IVE1MQ29sbGVjdGlvbi5o
OgorICAgICAgICAoSFRNTENvbGxlY3Rpb24pOgorICAgICAgICAqIGh0bWwvSFRNTFByb3BlcnRp
ZXNDb2xsZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxQcm9wZXJ0aWVzQ29sbGVj
dGlvbjo6SFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uOjp1cGRhdGVSZWZFbGVtZW50
cyk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MUHJvcGVydGllc0NvbGxlY3Rpb246Oml0ZW1BZnRl
cik6CisgICAgICAgIChXZWJDb3JlOjpIVE1MUHJvcGVydGllc0NvbGxlY3Rpb246OmNhbGNMZW5n
dGgpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uOjpjYWNoZUZp
cnN0SXRlbSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MUHJvcGVydGllc0NvbGxlY3Rpb246Oml0
ZW0pOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uOjpmaW5kUHJv
cGVydGllcyk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MUHJvcGVydGllc0NvbGxlY3Rpb246OnVw
ZGF0ZU5hbWVDYWNoZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MUHJvcGVydGllc0NvbGxlY3Rp
b246Om5hbWVzKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbjo6
bmFtZWRJdGVtKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbjo6
aGFzTmFtZWRJdGVtKToKKyAgICAgICAgKiBodG1sL0hUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbi5o
OgorICAgICAgICAoSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbjo6Y2xlYXJDYWNoZSk6CisgICAgICAgIChXZWJDb3Jl
OjpIVE1MUHJvcGVydGllc0NvbGxlY3Rpb246OnVwZGF0ZVByb3BlcnR5Q2FjaGUpOgorCiAyMDEy
LTA3LTA5ICBKb3NodWEgQmVsbCAgPGpzYmVsbEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgSW5k
ZXhlZERCOiBBIG51bGwgb3IgdW5kZWZpbmVkIHN0b3JlTmFtZXMgYXJndW1lbnQgdG8gSURCRGF0
YWJhc2U6OnRyYW5zYWN0aW9uKCkgc2hvdWxkIGJlIGNvZXJjZWQgdG8gc3RyaW5nCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDb2xsZWN0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxDb2xsZWN0aW9uLmNwcAkocmV2aXNpb24gMTIyMTYzKQorKysg
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ29sbGVjdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTMwLDYgKzMwLDEwIEBACiAjaW5jbHVkZSAiSFRNTE9wdGlvbkVsZW1lbnQuaCIKICNpbmNsdWRl
ICJOb2RlTGlzdC5oIgogCisjaWYgRU5BQkxFKE1JQ1JPREFUQSkKKyNpbmNsdWRlICJIVE1MUHJv
cGVydGllc0NvbGxlY3Rpb24uaCIKKyNlbmRpZgorCiAjaW5jbHVkZSA8dXRpbGl0eT4KIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewpAQCAtMTAxLDExICsxMDUsMTYgQEAgdm9pZCBIVE1MQ29sbGVjdGlv
bjo6aW52YWxpZGF0ZUNhY2hlSWZOZQogICAgIGlmIChjYWNoZVRyZWVWZXJzaW9uKCkgPT0gZG9j
dmVyc2lvbikKICAgICAgICAgcmV0dXJuOwogCi0gICAgY2xlYXJDYWNoZShkb2N2ZXJzaW9uKTsK
KyAgICBpbnZhbGlkYXRlQ2FjaGUoKTsKIH0KIAotdm9pZCBIVE1MQ29sbGVjdGlvbjo6aW52YWxp
ZGF0ZUNhY2hlKCkKK3ZvaWQgSFRNTENvbGxlY3Rpb246OmludmFsaWRhdGVDYWNoZSgpIGNvbnN0
CiB7CisjaWYgRU5BQkxFKE1JQ1JPREFUQSkKKyAgICAvLyBGSVhNRTogVGhlcmUgc2hvdWxkIGJl
IG1vcmUgZ2VuZXJpYyBtZWNoYW5pc20gdG8gY2xlYXIgY2FjaGVzIGluIHN1YmNsYXNzZXMuCisg
ICAgaWYgKHR5cGUoKSA9PSBJdGVtUHJvcGVydGllcykKKyAgICAgICAgc3RhdGljX2Nhc3Q8Y29u
c3QgSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uKj4odGhpcyktPmNsZWFyQ2FjaGUoKTsKKyNlbmRp
ZgogICAgIGNsZWFyQ2FjaGUoc3RhdGljX2Nhc3Q8SFRNTERvY3VtZW50Kj4obV9iYXNlLT5kb2N1
bWVudCgpKS0+ZG9tVHJlZVZlcnNpb24oKSk7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTENvbGxlY3Rpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxDb2xsZWN0aW9uLmgJKHJldmlzaW9uIDEyMjE2MykKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTENvbGxlY3Rpb24uaAkod29ya2luZyBjb3B5KQpAQCAtMTM2LDggKzEzNiw5IEBAIHB1Ymxp
YzoKIAogICAgIE5vZGUqIGJhc2UoKSBjb25zdCB7IHJldHVybiBtX2Jhc2UuZ2V0KCk7IH0KIAot
ICAgIHZvaWQgaW52YWxpZGF0ZUNhY2hlKCk7CisgICAgdm9pZCBpbnZhbGlkYXRlQ2FjaGUoKSBj
b25zdDsKICAgICB2b2lkIGludmFsaWRhdGVDYWNoZUlmTmVlZGVkKCkgY29uc3Q7CisKIHByb3Rl
Y3RlZDoKICAgICBIVE1MQ29sbGVjdGlvbihOb2RlKiBiYXNlLCBDb2xsZWN0aW9uVHlwZSk7CiAK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQcm9wZXJ0aWVzQ29sbGVjdGlv
bi5jcHAJKHJldmlzaW9uIDEyMjE2MykKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb3Bl
cnRpZXNDb2xsZWN0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTIsMzYgKzUyLDI3IEBAIFBh
c3NSZWZQdHI8SFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uPiBIVE0KIAogSFRNTFByb3BlcnRpZXND
b2xsZWN0aW9uOjpIVE1MUHJvcGVydGllc0NvbGxlY3Rpb24oTm9kZSogaXRlbU5vZGUpCiAgICAg
OiBIVE1MQ29sbGVjdGlvbihpdGVtTm9kZSwgSXRlbVByb3BlcnRpZXMpCisgICAgLCBtX2hhc1By
b3BlcnR5TmFtZUNhY2hlKGZhbHNlKQorICAgICwgbV9oYXNJdGVtUmVmRWxlbWVudHMoZmFsc2Up
CiB7Ci0gICAgbV9jYWNoZS5jbGVhcigpOwogfQogCiBIVE1MUHJvcGVydGllc0NvbGxlY3Rpb246
On5IVE1MUHJvcGVydGllc0NvbGxlY3Rpb24oKQogewogfQogCi12b2lkIEhUTUxQcm9wZXJ0aWVz
Q29sbGVjdGlvbjo6aW52YWxpZGF0ZUNhY2hlSWZOZWVkZWQoKSBjb25zdAotewotICAgIHVpbnQ2
NF90IGRvY3ZlcnNpb24gPSBiYXNlKCktPmRvY3VtZW50KCktPmRvbVRyZWVWZXJzaW9uKCk7Ci0K
LSAgICBpZiAobV9jYWNoZS52ZXJzaW9uID09IGRvY3ZlcnNpb24pCi0gICAgICAgIHJldHVybjsK
LQotICAgIG1fY2FjaGUuY2xlYXIoKTsKLSAgICBtX2NhY2hlLnZlcnNpb24gPSBkb2N2ZXJzaW9u
OwotfQotCiB2b2lkIEhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbjo6dXBkYXRlUmVmRWxlbWVudHMo
KSBjb25zdAogewotICAgIGlmIChtX2NhY2hlLmhhc0l0ZW1SZWZFbGVtZW50cykKKyAgICBpZiAo
bV9oYXNJdGVtUmVmRWxlbWVudHMpCiAgICAgICAgIHJldHVybjsKIAotICAgIFZlY3RvcjxFbGVt
ZW50Kj4gaXRlbVJlZkVsZW1lbnRzOwogICAgIEhUTUxFbGVtZW50KiBiYXNlRWxlbWVudCA9IHRv
SFRNTEVsZW1lbnQoYmFzZSgpKTsKIAorICAgIG1faXRlbVJlZkVsZW1lbnRzLmNsZWFyKCk7CisK
ICAgICBpZiAoIWJhc2VFbGVtZW50LT5mYXN0SGFzQXR0cmlidXRlKGl0ZW1yZWZBdHRyKSkgewot
ICAgICAgICBpdGVtUmVmRWxlbWVudHMuYXBwZW5kKGJhc2VFbGVtZW50KTsKLSAgICAgICAgbV9j
YWNoZS5zZXRJdGVtUmVmRWxlbWVudHMoaXRlbVJlZkVsZW1lbnRzKTsKKyAgICAgICAgbV9pdGVt
UmVmRWxlbWVudHMuYXBwZW5kKGJhc2VFbGVtZW50KTsKKyAgICAgICAgbV9oYXNJdGVtUmVmRWxl
bWVudHMgPSB0cnVlOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC05NSw3ICs4Niw3IEBA
IHZvaWQgSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uOjp1cGRhdGVSZWYKICAgICAgICAgSFRNTEVs
ZW1lbnQqIGVsZW1lbnQgPSB0b0hUTUxFbGVtZW50KGN1cnJlbnQpOwogCiAgICAgICAgIGlmIChl
bGVtZW50ID09IGJhc2VFbGVtZW50KSB7Ci0gICAgICAgICAgICBpdGVtUmVmRWxlbWVudHMuYXBw
ZW5kKGVsZW1lbnQpOworICAgICAgICAgICAgbV9pdGVtUmVmRWxlbWVudHMuYXBwZW5kKGVsZW1l
bnQpOwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KIApAQCAtMTAzLDExICs5NCwx
MCBAQCB2b2lkIEhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbjo6dXBkYXRlUmVmCiAgICAgICAgIGlm
ICghcHJvY2Vzc2VkSXRlbVJlZi0+dG9rZW5zKCkuY29udGFpbnMoaWQpICYmIGl0ZW1SZWYtPnRv
a2VucygpLmNvbnRhaW5zKGlkKSkgewogICAgICAgICAgICAgcHJvY2Vzc2VkSXRlbVJlZi0+c2V0
VmFsdWUoaWQpOwogICAgICAgICAgICAgaWYgKCFlbGVtZW50LT5pc0Rlc2NlbmRhbnRPZihiYXNl
RWxlbWVudCkpCi0gICAgICAgICAgICAgICAgaXRlbVJlZkVsZW1lbnRzLmFwcGVuZChlbGVtZW50
KTsKKyAgICAgICAgICAgICAgICBtX2l0ZW1SZWZFbGVtZW50cy5hcHBlbmQoZWxlbWVudCk7CiAg
ICAgICAgIH0KICAgICB9Ci0KLSAgICBtX2NhY2hlLnNldEl0ZW1SZWZFbGVtZW50cyhpdGVtUmVm
RWxlbWVudHMpOworICAgIG1faGFzSXRlbVJlZkVsZW1lbnRzID0gdHJ1ZTsKIH0KIAogc3RhdGlj
IE5vZGUqIG5leHROb2RlV2l0aFByb3BlcnR5KE5vZGUqIGJhc2UsIE5vZGUqIG5vZGUpCkBAIC0x
MjAsNyArMTEwLDcgQEAgc3RhdGljIE5vZGUqIG5leHROb2RlV2l0aFByb3BlcnR5KE5vZGUqIAog
ICAgICAgICAgICAgPyBub2RlLT50cmF2ZXJzZU5leHROb2RlKGJhc2UpIDogbm9kZS0+dHJhdmVy
c2VOZXh0U2libGluZyhiYXNlKTsKIH0KIAotRWxlbWVudCogSFRNTFByb3BlcnRpZXNDb2xsZWN0
aW9uOjppdGVtQWZ0ZXIoRWxlbWVudCogYmFzZSwgRWxlbWVudCogcHJldmlvdXMpIGNvbnN0CitF
bGVtZW50KiBIVE1MUHJvcGVydGllc0NvbGxlY3Rpb246Oml0ZW1BZnRlcihFbGVtZW50KiBiYXNl
LCBOb2RlKiBwcmV2aW91cykgY29uc3QKIHsKICAgICBOb2RlKiBjdXJyZW50OwogICAgIGN1cnJl
bnQgPSBwcmV2aW91cyA/IG5leHROb2RlV2l0aFByb3BlcnR5KGJhc2UsIHByZXZpb3VzKSA6IGJh
c2U7CkBAIC0xMzksNDUgKzEyOSwyNyBAQCBFbGVtZW50KiBIVE1MUHJvcGVydGllc0NvbGxlY3Rp
b246Oml0ZW1BCiAKIHVuc2lnbmVkIEhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbjo6Y2FsY0xlbmd0
aCgpIGNvbnN0CiB7CisgICAgaWYgKCF0b0hUTUxFbGVtZW50KGJhc2UoKSktPmZhc3RIYXNBdHRy
aWJ1dGUoaXRlbXNjb3BlQXR0cikpCisgICAgICAgIHJldHVybiAwOworCiAgICAgdW5zaWduZWQg
bGVuZ3RoID0gMDsKICAgICB1cGRhdGVSZWZFbGVtZW50cygpOwogCi0gICAgY29uc3QgVmVjdG9y
PEVsZW1lbnQqPiYgaXRlbVJlZkVsZW1lbnRzID0gbV9jYWNoZS5nZXRJdGVtUmVmRWxlbWVudHMo
KTsKLSAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgaXRlbVJlZkVsZW1lbnRzLnNpemUoKTsg
KytpKSB7Ci0gICAgICAgIGZvciAoRWxlbWVudCogZWxlbWVudCA9IGl0ZW1BZnRlcihpdGVtUmVm
RWxlbWVudHNbaV0sIDApOyBlbGVtZW50OyBlbGVtZW50ID0gaXRlbUFmdGVyKGl0ZW1SZWZFbGVt
ZW50c1tpXSwgZWxlbWVudCkpCisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1faXRlbVJl
ZkVsZW1lbnRzLnNpemUoKTsgKytpKSB7CisgICAgICAgIGZvciAoRWxlbWVudCogZWxlbWVudCA9
IGl0ZW1BZnRlcihtX2l0ZW1SZWZFbGVtZW50c1tpXSwgMCk7IGVsZW1lbnQ7IGVsZW1lbnQgPSBp
dGVtQWZ0ZXIobV9pdGVtUmVmRWxlbWVudHNbaV0sIGVsZW1lbnQpKQogICAgICAgICAgICAgKyts
ZW5ndGg7CiAgICAgfQogCiAgICAgcmV0dXJuIGxlbmd0aDsKIH0KIAotdW5zaWduZWQgSFRNTFBy
b3BlcnRpZXNDb2xsZWN0aW9uOjpsZW5ndGgoKSBjb25zdAotewotICAgIGlmICghdG9IVE1MRWxl
bWVudChiYXNlKCkpLT5mYXN0SGFzQXR0cmlidXRlKGl0ZW1zY29wZUF0dHIpKQotICAgICAgICBy
ZXR1cm4gMDsKLQotICAgIGludmFsaWRhdGVDYWNoZUlmTmVlZGVkKCk7Ci0KLSAgICBpZiAoIW1f
Y2FjaGUuaGFzTGVuZ3RoKQotICAgICAgICBtX2NhY2hlLnVwZGF0ZUxlbmd0aChjYWxjTGVuZ3Ro
KCkpOwotCi0gICAgcmV0dXJuIG1fY2FjaGUubGVuZ3RoOwotfQotCi1FbGVtZW50KiBIVE1MUHJv
cGVydGllc0NvbGxlY3Rpb246OmZpcnN0UHJvcGVydHkoKSBjb25zdAordm9pZCBIVE1MUHJvcGVy
dGllc0NvbGxlY3Rpb246OmNhY2hlRmlyc3RJdGVtKCkgY29uc3QKIHsKLSAgICBFbGVtZW50KiBl
bGVtZW50ID0gMDsKLSAgICBtX2NhY2hlLnJlc2V0UG9zaXRpb24oKTsKLSAgICBjb25zdCBWZWN0
b3I8RWxlbWVudCo+JiBpdGVtUmVmRWxlbWVudHMgPSBtX2NhY2hlLmdldEl0ZW1SZWZFbGVtZW50
cygpOwotICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBpdGVtUmVmRWxlbWVudHMuc2l6ZSgp
OyArK2kpIHsKLSAgICAgICAgZWxlbWVudCA9IGl0ZW1BZnRlcihpdGVtUmVmRWxlbWVudHNbaV0s
IDApOwotICAgICAgICBpZiAoZWxlbWVudCkgewotICAgICAgICAgICAgbV9jYWNoZS5pdGVtUmVm
RWxlbWVudFBvc2l0aW9uID0gaTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9CisgICAg
Zm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1faXRlbVJlZkVsZW1lbnRzLnNpemUoKTsgKytpKSB7
CisgICAgICAgIGlmIChFbGVtZW50KiBlbGVtZW50ID0gaXRlbUFmdGVyKG1faXRlbVJlZkVsZW1l
bnRzW2ldLCAwKSkKKyAgICAgICAgICAgIHJldHVybiBzZXRJdGVtQ2FjaGUoZWxlbWVudCwgMCwg
aSk7CiAgICAgfQotCi0gICAgcmV0dXJuIGVsZW1lbnQ7CisgICAgc2V0SXRlbUNhY2hlKDAsIDAs
IDApOwogfQogCiBOb2RlKiBIVE1MUHJvcGVydGllc0NvbGxlY3Rpb246Oml0ZW0odW5zaWduZWQg
aW5kZXgpIGNvbnN0CkBAIC0xODYsNDMgKzE1OCw0MSBAQCBOb2RlKiBIVE1MUHJvcGVydGllc0Nv
bGxlY3Rpb246Oml0ZW0odW5zCiAgICAgICAgIHJldHVybiAwOwogCiAgICAgaW52YWxpZGF0ZUNh
Y2hlSWZOZWVkZWQoKTsKLSAgICBpZiAobV9jYWNoZS5jdXJyZW50ICYmIG1fY2FjaGUucG9zaXRp
b24gPT0gaW5kZXgpCi0gICAgICAgIHJldHVybiBtX2NhY2hlLmN1cnJlbnQ7CisgICAgaWYgKGlz
SXRlbUNhY2hlVmFsaWQoKSAmJiBjYWNoZWRJdGVtT2Zmc2V0KCkgPT0gaW5kZXgpCisgICAgICAg
IHJldHVybiBjYWNoZWRJdGVtKCk7CiAKLSAgICBpZiAobV9jYWNoZS5oYXNMZW5ndGggJiYgbV9j
YWNoZS5sZW5ndGggPD0gaW5kZXgpCisgICAgaWYgKGlzTGVuZ3RoQ2FjaGVWYWxpZCgpICYmIGNh
Y2hlZExlbmd0aCgpIDw9IGluZGV4KQogICAgICAgICByZXR1cm4gMDsKIAogICAgIHVwZGF0ZVJl
ZkVsZW1lbnRzKCk7Ci0gICAgaWYgKCFtX2NhY2hlLmN1cnJlbnQgfHwgbV9jYWNoZS5wb3NpdGlv
biA+IGluZGV4KSB7Ci0gICAgICAgIG1fY2FjaGUuY3VycmVudCA9IGZpcnN0UHJvcGVydHkoKTsK
LSAgICAgICAgaWYgKCFtX2NhY2hlLmN1cnJlbnQpCi0gICAgICAgICAgICByZXR1cm4gMDsKKyAg
ICBpZiAoIWlzSXRlbUNhY2hlVmFsaWQoKSB8fCBjYWNoZWRJdGVtT2Zmc2V0KCkgPiBpbmRleCkg
eworICAgICAgICBjYWNoZUZpcnN0SXRlbSgpOworICAgICAgICBBU1NFUlQoaXNJdGVtQ2FjaGVW
YWxpZCgpKTsKKyAgICAgICAgaWYgKCFjYWNoZWRJdGVtKCkgfHwgY2FjaGVkSXRlbU9mZnNldCgp
ID09IGluZGV4KQorICAgICAgICAgICAgcmV0dXJuIGNhY2hlZEl0ZW0oKTsKICAgICB9CiAKLSAg
ICB1bnNpZ25lZCBjdXJyZW50UG9zaXRpb24gPSBtX2NhY2hlLnBvc2l0aW9uOwotICAgIEVsZW1l
bnQqIGVsZW1lbnQgPSBtX2NhY2hlLmN1cnJlbnQ7Ci0gICAgdW5zaWduZWQgaXRlbVJlZkVsZW1l
bnRQb3MgPSBtX2NhY2hlLml0ZW1SZWZFbGVtZW50UG9zaXRpb247Ci0gICAgY29uc3QgVmVjdG9y
PEVsZW1lbnQqPiYgaXRlbVJlZkVsZW1lbnRzID0gbV9jYWNoZS5nZXRJdGVtUmVmRWxlbWVudHMo
KTsKLQotICAgIGJvb2wgZm91bmQgPSAobV9jYWNoZS5wb3NpdGlvbiA9PSBpbmRleCk7CisgICAg
dW5zaWduZWQgY3VycmVudFBvc2l0aW9uID0gY2FjaGVkSXRlbU9mZnNldCgpOworICAgIE5vZGUq
IGVsZW1lbnQgPSBjYWNoZWRJdGVtKCk7CisgICAgQVNTRVJUKGN1cnJlbnRQb3NpdGlvbiAhPSBp
bmRleCk7CiAKLSAgICBmb3IgKHVuc2lnbmVkIGkgPSBpdGVtUmVmRWxlbWVudFBvczsgaSA8IGl0
ZW1SZWZFbGVtZW50cy5zaXplKCkgJiYgIWZvdW5kOyArK2kpIHsKKyAgICBmb3IgKHVuc2lnbmVk
IGkgPSBjYWNoZWRFbGVtZW50c0FycmF5T2Zmc2V0KCk7IGkgPCBtX2l0ZW1SZWZFbGVtZW50cy5z
aXplKCk7ICsraSkgewogICAgICAgICB3aGlsZSAoY3VycmVudFBvc2l0aW9uIDwgaW5kZXgpIHsK
LSAgICAgICAgICAgIGVsZW1lbnQgPSBpdGVtQWZ0ZXIoaXRlbVJlZkVsZW1lbnRzW2ldLCBlbGVt
ZW50KTsKKyAgICAgICAgICAgIGVsZW1lbnQgPSBpdGVtQWZ0ZXIobV9pdGVtUmVmRWxlbWVudHNb
aV0sIGVsZW1lbnQpOwogICAgICAgICAgICAgaWYgKCFlbGVtZW50KQogICAgICAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICAgICAgY3VycmVudFBvc2l0aW9uKys7CiAKICAgICAgICAgICAgIGlm
IChjdXJyZW50UG9zaXRpb24gPT0gaW5kZXgpIHsKLSAgICAgICAgICAgICAgICBmb3VuZCA9IHRy
dWU7Ci0gICAgICAgICAgICAgICAgaXRlbVJlZkVsZW1lbnRQb3MgPSBpOwotICAgICAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICAgICAgICAgIHNldEl0ZW1DYWNoZShlbGVtZW50LCBjdXJyZW50
UG9zaXRpb24sIGkpOworICAgICAgICAgICAgICAgIHJldHVybiBjYWNoZWRJdGVtKCk7CiAgICAg
ICAgICAgICB9CiAgICAgICAgIH0KICAgICB9CiAKLSAgICBtX2NhY2hlLnVwZGF0ZUN1cnJlbnRJ
dGVtKGVsZW1lbnQsIGluZGV4LCBpdGVtUmVmRWxlbWVudFBvcyk7Ci0gICAgcmV0dXJuIG1fY2Fj
aGUuY3VycmVudDsKKyAgICBzZXRMZW5ndGhDYWNoZShjdXJyZW50UG9zaXRpb24pOworCisgICAg
cmV0dXJuIDA7CiB9CiAKIHZvaWQgSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uOjpmaW5kUHJvcGVy
dGllcyhFbGVtZW50KiBiYXNlKSBjb25zdApAQCAtMjMwLDIzICsyMDAsMjIgQEAgdm9pZCBIVE1M
UHJvcGVydGllc0NvbGxlY3Rpb246OmZpbmRQcm9wZQogICAgIGZvciAoRWxlbWVudCogZWxlbWVu
dCA9IGl0ZW1BZnRlcihiYXNlLCAwKTsgZWxlbWVudDsgZWxlbWVudCA9IGl0ZW1BZnRlcihiYXNl
LCBlbGVtZW50KSkgewogICAgICAgICBET01TZXR0YWJsZVRva2VuTGlzdCogaXRlbVByb3BlcnR5
ID0gZWxlbWVudC0+aXRlbVByb3AoKTsKICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8
IGl0ZW1Qcm9wZXJ0eS0+bGVuZ3RoKCk7ICsraSkKLSAgICAgICAgICAgIG1fY2FjaGUudXBkYXRl
UHJvcGVydHlDYWNoZShlbGVtZW50LCBpdGVtUHJvcGVydHktPml0ZW0oaSkpOworICAgICAgICAg
ICAgdXBkYXRlUHJvcGVydHlDYWNoZShlbGVtZW50LCBpdGVtUHJvcGVydHktPml0ZW0oaSkpOwog
ICAgIH0KIH0KIAogdm9pZCBIVE1MUHJvcGVydGllc0NvbGxlY3Rpb246OnVwZGF0ZU5hbWVDYWNo
ZSgpIGNvbnN0CiB7CiAgICAgaW52YWxpZGF0ZUNhY2hlSWZOZWVkZWQoKTsKLSAgICBpZiAobV9j
YWNoZS5oYXNOYW1lQ2FjaGUpCisgICAgaWYgKG1faGFzUHJvcGVydHlOYW1lQ2FjaGUpCiAgICAg
ICAgIHJldHVybjsKIAogICAgIHVwZGF0ZVJlZkVsZW1lbnRzKCk7CiAKLSAgICBjb25zdCBWZWN0
b3I8RWxlbWVudCo+JiBpdGVtUmVmRWxlbWVudHMgPSBtX2NhY2hlLmdldEl0ZW1SZWZFbGVtZW50
cygpOwotICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBpdGVtUmVmRWxlbWVudHMuc2l6ZSgp
OyArK2kpCi0gICAgICAgIGZpbmRQcm9wZXJ0aWVzKGl0ZW1SZWZFbGVtZW50c1tpXSk7CisgICAg
Zm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1faXRlbVJlZkVsZW1lbnRzLnNpemUoKTsgKytpKQor
ICAgICAgICBmaW5kUHJvcGVydGllcyhtX2l0ZW1SZWZFbGVtZW50c1tpXSk7CiAKLSAgICBtX2Nh
Y2hlLmhhc05hbWVDYWNoZSA9IHRydWU7CisgICAgbV9oYXNQcm9wZXJ0eU5hbWVDYWNoZSA9IHRy
dWU7CiB9CiAKIFBhc3NSZWZQdHI8RE9NU3RyaW5nTGlzdD4gSFRNTFByb3BlcnRpZXNDb2xsZWN0
aW9uOjpuYW1lcygpIGNvbnN0CkBAIC0yNTYsNyArMjI1LDcgQEAgUGFzc1JlZlB0cjxET01TdHJp
bmdMaXN0PiBIVE1MUHJvcGVydGllcwogCiAgICAgdXBkYXRlTmFtZUNhY2hlKCk7CiAKLSAgICBy
ZXR1cm4gbV9jYWNoZS5wcm9wZXJ0eU5hbWVzOworICAgIHJldHVybiBtX3Byb3BlcnR5TmFtZXM7
CiB9CiAKIFBhc3NSZWZQdHI8Tm9kZUxpc3Q+IEhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbjo6bmFt
ZWRJdGVtKGNvbnN0IFN0cmluZyYgbmFtZSkgY29uc3QKQEAgLTI2OCw3ICsyMzcsNyBAQCBQYXNz
UmVmUHRyPE5vZGVMaXN0PiBIVE1MUHJvcGVydGllc0NvbGxlCiAKICAgICB1cGRhdGVOYW1lQ2Fj
aGUoKTsKIAotICAgIFZlY3RvcjxFbGVtZW50Kj4qIHByb3BlcnR5UmVzdWx0cyA9IG1fY2FjaGUu
cHJvcGVydHlDYWNoZS5nZXQoQXRvbWljU3RyaW5nKG5hbWUpLmltcGwoKSk7CisgICAgVmVjdG9y
PEVsZW1lbnQqPiogcHJvcGVydHlSZXN1bHRzID0gbV9wcm9wZXJ0eUNhY2hlLmdldChBdG9taWNT
dHJpbmcobmFtZSkuaW1wbCgpKTsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBwcm9wZXJ0eVJl
c3VsdHMgJiYgaSA8IHByb3BlcnR5UmVzdWx0cy0+c2l6ZSgpOyArK2kpCiAgICAgICAgIG5hbWVk
SXRlbXMuYXBwZW5kKHByb3BlcnR5UmVzdWx0cy0+YXQoaSkpOwogCkBAIC0yODMsNyArMjUyLDcg
QEAgYm9vbCBIVE1MUHJvcGVydGllc0NvbGxlY3Rpb246Omhhc05hbWVkSQogCiAgICAgdXBkYXRl
TmFtZUNhY2hlKCk7CiAKLSAgICBpZiAoVmVjdG9yPEVsZW1lbnQqPiogcHJvcGVydHlDYWNoZSA9
IG1fY2FjaGUucHJvcGVydHlDYWNoZS5nZXQobmFtZS5pbXBsKCkpKSB7CisgICAgaWYgKFZlY3Rv
cjxFbGVtZW50Kj4qIHByb3BlcnR5Q2FjaGUgPSBtX3Byb3BlcnR5Q2FjaGUuZ2V0KG5hbWUuaW1w
bCgpKSkgewogICAgICAgICBpZiAoIXByb3BlcnR5Q2FjaGUtPmlzRW1wdHkoKSkKICAgICAgICAg
ICAgIHJldHVybiB0cnVlOwogICAgIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBy
b3BlcnRpZXNDb2xsZWN0aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MUHJvcGVydGllc0NvbGxlY3Rpb24uaAkocmV2aXNpb24gMTIyMTYzKQorKysgU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MUHJvcGVydGllc0NvbGxlY3Rpb24uaAkod29ya2luZyBjb3B5KQpAQCAt
NDUsOCArNDUsNiBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8SFRNTFByb3BlcnRp
ZXNDb2xsZWN0aW9uPiBjcmVhdGUoTm9kZSopOwogICAgIHZpcnR1YWwgfkhUTUxQcm9wZXJ0aWVz
Q29sbGVjdGlvbigpOwogCi0gICAgdW5zaWduZWQgbGVuZ3RoKCkgY29uc3QgT1ZFUlJJREU7Ci0K
ICAgICB2aXJ0dWFsIE5vZGUqIGl0ZW0odW5zaWduZWQpIGNvbnN0IE9WRVJSSURFOwogCiAgICAg
UGFzc1JlZlB0cjxET01TdHJpbmdMaXN0PiBuYW1lcygpIGNvbnN0OwpAQCAtNTQsOTYgKzUyLDQ5
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8Tm9kZUxpc3Q+IG5hbWVkSXRlbShj
b25zdCBTdHJpbmcmKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgaGFzTmFtZWRJ
dGVtKGNvbnN0IEF0b21pY1N0cmluZyYpIGNvbnN0IE9WRVJSSURFOwogCisgICAgdm9pZCBjbGVh
ckNhY2hlKCkgY29uc3QKKyAgICB7CisgICAgICAgIG1faXRlbVJlZkVsZW1lbnRzLmNsZWFyKCk7
CisgICAgICAgIG1fcHJvcGVydHlOYW1lcy5jbGVhcigpOworICAgICAgICBtX3Byb3BlcnR5Q2Fj
aGUuY2xlYXIoKTsKKyAgICAgICAgbV9oYXNQcm9wZXJ0eU5hbWVDYWNoZSA9IGZhbHNlOworICAg
ICAgICBtX2hhc0l0ZW1SZWZFbGVtZW50cyA9IGZhbHNlOworICAgIH0KKwogcHJpdmF0ZToKICAg
ICBIVE1MUHJvcGVydGllc0NvbGxlY3Rpb24oTm9kZSopOwogCi0gICAgdW5zaWduZWQgY2FsY0xl
bmd0aCgpIGNvbnN0OworICAgIHZpcnR1YWwgdW5zaWduZWQgY2FsY0xlbmd0aCgpIGNvbnN0IE9W
RVJSSURFOwogICAgIHZvaWQgZmluZFByb3BlcnRpZXMoRWxlbWVudCogYmFzZSkgY29uc3Q7CiAK
ICAgICBOb2RlKiBmaW5kUmVmRWxlbWVudHMoTm9kZSogcHJldmlvdXMpIGNvbnN0OwogCi0gICAg
RWxlbWVudCogZmlyc3RQcm9wZXJ0eSgpIGNvbnN0OwotICAgIEVsZW1lbnQqIGl0ZW1BZnRlcihF
bGVtZW50KiBiYXNlLCBFbGVtZW50KiBwcmV2aW91cykgY29uc3Q7CisgICAgdm9pZCBjYWNoZUZp
cnN0SXRlbSgpIGNvbnN0OworICAgIEVsZW1lbnQqIGl0ZW1BZnRlcihFbGVtZW50KiBiYXNlLCBO
b2RlKiBwcmV2aW91cykgY29uc3Q7CiAKICAgICB2b2lkIHVwZGF0ZU5hbWVDYWNoZSgpIGNvbnN0
OwogICAgIHZvaWQgdXBkYXRlUmVmRWxlbWVudHMoKSBjb25zdDsKIAotICAgIHZvaWQgaW52YWxp
ZGF0ZUNhY2hlSWZOZWVkZWQoKSBjb25zdDsKLQotICAgIG11dGFibGUgc3RydWN0IHsKLSAgICAg
ICAgdWludDY0X3QgdmVyc2lvbjsKLSAgICAgICAgRWxlbWVudCogY3VycmVudDsKLSAgICAgICAg
dW5zaWduZWQgcG9zaXRpb247Ci0gICAgICAgIHVuc2lnbmVkIGxlbmd0aDsKLSAgICAgICAgYm9v
bCBoYXNMZW5ndGg7Ci0gICAgICAgIGJvb2wgaGFzTmFtZUNhY2hlOwotICAgICAgICBOb2RlQ2Fj
aGVNYXAgcHJvcGVydHlDYWNoZTsKLSAgICAgICAgVmVjdG9yPEVsZW1lbnQqPiBpdGVtUmVmRWxl
bWVudHM7Ci0gICAgICAgIFJlZlB0cjxET01TdHJpbmdMaXN0PiBwcm9wZXJ0eU5hbWVzOwotICAg
ICAgICB1bnNpZ25lZCBpdGVtUmVmRWxlbWVudFBvc2l0aW9uOwotICAgICAgICBib29sIGhhc0l0
ZW1SZWZFbGVtZW50czsKLQotICAgICAgICB2b2lkIGNsZWFyKCkKLSAgICAgICAgewotICAgICAg
ICAgICAgdmVyc2lvbiA9IDA7Ci0gICAgICAgICAgICBjdXJyZW50ID0gMDsKLSAgICAgICAgICAg
IHBvc2l0aW9uID0gMDsKLSAgICAgICAgICAgIGxlbmd0aCA9IDA7Ci0gICAgICAgICAgICBoYXNM
ZW5ndGggPSBmYWxzZTsKLSAgICAgICAgICAgIGhhc05hbWVDYWNoZSA9IGZhbHNlOwotICAgICAg
ICAgICAgcHJvcGVydHlDYWNoZS5jbGVhcigpOwotICAgICAgICAgICAgaXRlbVJlZkVsZW1lbnRz
LmNsZWFyKCk7Ci0gICAgICAgICAgICBwcm9wZXJ0eU5hbWVzLmNsZWFyKCk7Ci0gICAgICAgICAg
ICBpdGVtUmVmRWxlbWVudFBvc2l0aW9uID0gMDsKLSAgICAgICAgICAgIGhhc0l0ZW1SZWZFbGVt
ZW50cyA9IGZhbHNlOwotICAgICAgICB9Ci0KLSAgICAgICAgdm9pZCBzZXRJdGVtUmVmRWxlbWVu
dHMoY29uc3QgVmVjdG9yPEVsZW1lbnQqPiYgZWxlbWVudHMpCi0gICAgICAgIHsKLSAgICAgICAg
ICAgIGl0ZW1SZWZFbGVtZW50cyA9IGVsZW1lbnRzOwotICAgICAgICAgICAgaGFzSXRlbVJlZkVs
ZW1lbnRzID0gdHJ1ZTsKLSAgICAgICAgfQotCi0gICAgICAgIGNvbnN0IFZlY3RvcjxFbGVtZW50
Kj4mIGdldEl0ZW1SZWZFbGVtZW50cygpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBp
dGVtUmVmRWxlbWVudHM7Ci0gICAgICAgIH0KLQotICAgICAgICB2b2lkIHVwZGF0ZUxlbmd0aCh1
bnNpZ25lZCBsZW4pCi0gICAgICAgIHsKLSAgICAgICAgICAgIGxlbmd0aCA9IGxlbjsKLSAgICAg
ICAgICAgIGhhc0xlbmd0aCA9IHRydWU7Ci0gICAgICAgIH0KLQotICAgICAgICB2b2lkIHVwZGF0
ZVByb3BlcnR5Q2FjaGUoRWxlbWVudCogZWxlbWVudCwgY29uc3QgQXRvbWljU3RyaW5nJiBwcm9w
ZXJ0eU5hbWUpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGlmICghcHJvcGVydHlOYW1lcykKLSAg
ICAgICAgICAgICAgICBwcm9wZXJ0eU5hbWVzID0gRE9NU3RyaW5nTGlzdDo6Y3JlYXRlKCk7Ci0K
LSAgICAgICAgICAgIGlmICghcHJvcGVydHlOYW1lcy0+Y29udGFpbnMocHJvcGVydHlOYW1lKSkK
LSAgICAgICAgICAgICAgICBwcm9wZXJ0eU5hbWVzLT5hcHBlbmQocHJvcGVydHlOYW1lKTsKLQot
ICAgICAgICAgICAgVmVjdG9yPEVsZW1lbnQqPiogcHJvcGVydHlSZXN1bHRzID0gcHJvcGVydHlD
YWNoZS5nZXQocHJvcGVydHlOYW1lLmltcGwoKSk7Ci0gICAgICAgICAgICBpZiAoIXByb3BlcnR5
UmVzdWx0cyB8fCAhcHJvcGVydHlSZXN1bHRzLT5jb250YWlucyhlbGVtZW50KSkKLSAgICAgICAg
ICAgICAgICBhcHBlbmQocHJvcGVydHlDYWNoZSwgcHJvcGVydHlOYW1lLCBlbGVtZW50KTsKLSAg
ICAgICAgfQotCi0gICAgICAgIHZvaWQgdXBkYXRlQ3VycmVudEl0ZW0oRWxlbWVudCogZWxlbWVu
dCwgdW5zaWduZWQgcG9zLCB1bnNpZ25lZCBpdGVtUmVmRWxlbWVudFBvcykKLSAgICAgICAgewot
ICAgICAgICAgICAgY3VycmVudCA9IGVsZW1lbnQ7Ci0gICAgICAgICAgICBwb3NpdGlvbiA9IHBv
czsKLSAgICAgICAgICAgIGl0ZW1SZWZFbGVtZW50UG9zaXRpb24gPSBpdGVtUmVmRWxlbWVudFBv
czsKLSAgICAgICAgfQotCi0gICAgICAgIHZvaWQgcmVzZXRQb3NpdGlvbigpCi0gICAgICAgIHsK
LSAgICAgICAgICAgIGN1cnJlbnQgPSAwOwotICAgICAgICAgICAgcG9zaXRpb24gPSAwOwotICAg
ICAgICAgICAgaXRlbVJlZkVsZW1lbnRQb3NpdGlvbiA9IDA7Ci0gICAgICAgIH0KLQotICAgIH0g
bV9jYWNoZTsKLQorICAgIHZvaWQgdXBkYXRlUHJvcGVydHlDYWNoZShFbGVtZW50KiBlbGVtZW50
LCBjb25zdCBBdG9taWNTdHJpbmcmIHByb3BlcnR5TmFtZSkgY29uc3QKKyAgICB7CisgICAgICAg
IGlmICghbV9wcm9wZXJ0eU5hbWVzKQorICAgICAgICAgICAgbV9wcm9wZXJ0eU5hbWVzID0gRE9N
U3RyaW5nTGlzdDo6Y3JlYXRlKCk7CisKKyAgICAgICAgaWYgKCFtX3Byb3BlcnR5TmFtZXMtPmNv
bnRhaW5zKHByb3BlcnR5TmFtZSkpCisgICAgICAgICAgICBtX3Byb3BlcnR5TmFtZXMtPmFwcGVu
ZChwcm9wZXJ0eU5hbWUpOworCisgICAgICAgIFZlY3RvcjxFbGVtZW50Kj4qIHByb3BlcnR5UmVz
dWx0cyA9IG1fcHJvcGVydHlDYWNoZS5nZXQocHJvcGVydHlOYW1lLmltcGwoKSk7CisgICAgICAg
IGlmICghcHJvcGVydHlSZXN1bHRzIHx8ICFwcm9wZXJ0eVJlc3VsdHMtPmNvbnRhaW5zKGVsZW1l
bnQpKQorICAgICAgICAgICAgYXBwZW5kKG1fcHJvcGVydHlDYWNoZSwgcHJvcGVydHlOYW1lLCBl
bGVtZW50KTsKKyAgICB9CisKKyAgICBtdXRhYmxlIFZlY3RvcjxFbGVtZW50Kj4gbV9pdGVtUmVm
RWxlbWVudHM7CisgICAgbXV0YWJsZSBSZWZQdHI8RE9NU3RyaW5nTGlzdD4gbV9wcm9wZXJ0eU5h
bWVzOworICAgIG11dGFibGUgTm9kZUNhY2hlTWFwIG1fcHJvcGVydHlDYWNoZTsKKworICAgIC8v
IEZJWE1FOiBNb3ZlIHRoZXNlIHZhcmlhYmxlcyB0byBEeW5hbWljTm9kZUxpc3RDYWNoZUJhc2Ug
Zm9yIGJldHRlciBiaXQgcGFja2luZy4KKyAgICBtdXRhYmxlIGJvb2wgbV9oYXNQcm9wZXJ0eU5h
bWVDYWNoZSA6IDE7CisgICAgbXV0YWJsZSBib29sIG1faGFzSXRlbVJlZkVsZW1lbnRzIDogMTsK
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
</data>
<flag name="review"
          id="159815"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
      

    </bug>

</bugzilla>