<?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>75151</bug_id>
          
          <creation_ts>2011-12-22 16:29:11 -0800</creation_ts>
          <short_desc>Add attributes field to JSArray&apos;s SparseMap</short_desc>
          <delta_ts>2011-12-23 14:51:37 -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>JavaScriptCore</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="Gavin Barraclough">barraclough</reporter>
          <assigned_to name="Gavin Barraclough">barraclough</assigned_to>
          <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>526629</commentid>
    <comment_count>0</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2011-12-22 16:29:11 -0800</bug_when>
    <thetext>This will be necessary to be able to support non- writable/configurable/enumerable properties, and helpful for getters/setters.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>526637</commentid>
    <comment_count>1</comment_count>
      <attachid>120409</attachid>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2011-12-22 16:45:29 -0800</bug_when>
    <thetext>Created attachment 120409
The patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>526639</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-12-22 16:46:51 -0800</bug_when>
    <thetext>Attachment 120409 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/JavaScriptCore/ChangeLog&apos;, u&apos;Source...&quot; exit_code: 1

Source/JavaScriptCore/runtime/JSArray.cpp:451:  Boolean expressions that span multiple lines should have their operators on the left side of the line instead of the right side.  [whitespace/operators] [4]
Source/JavaScriptCore/runtime/JSArray.cpp:452:  Boolean expressions that span multiple lines should have their operators on the left side of the line instead of the right side.  [whitespace/operators] [4]
Source/JavaScriptCore/runtime/JSArray.h:30:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Source/JavaScriptCore/runtime/JSArray.h:33:  Missing space inside { }.  [whitespace/braces] [5]
Total errors found: 4 in 4 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>526667</commentid>
    <comment_count>3</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2011-12-22 17:44:50 -0800</bug_when>
    <thetext>Fixed in r 103598/103599</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>526917</commentid>
    <comment_count>4</comment_count>
      <attachid>120409</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2011-12-23 14:51:37 -0800</bug_when>
    <thetext>Comment on attachment 120409
The patch

I reviewed this.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>120409</attachid>
            <date>2011-12-22 16:45:29 -0800</date>
            <delta_ts>2011-12-23 14:51:37 -0800</delta_ts>
            <desc>The patch</desc>
            <filename>75151.patch</filename>
            <type>text/plain</type>
            <size>19177</size>
            <attacher name="Gavin Barraclough">barraclough</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTAzNTkzKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU5IEBA
CisyMDExLTEyLTIyICBHYXZpbiBCYXJyYWNsb3VnaCAgPGJhcnJhY2xvdWdoQGFwcGxlLmNvbT4K
KworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUxNTEK
KyAgICAgICAgQWRkIGF0dHJpYnV0ZXMgZmllbGQgdG8gSlNBcnJheSdzIFNwYXJzZU1hcAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgd2lsbCBi
ZSBuZWNlc3NhcnkgdG8gYmUgYWJsZSB0byBzdXBwb3J0IG5vbi0gd3JpdGFibGUvY29uZmlndXJh
YmxlL2VudW1lcmFibGUKKyAgICAgICAgcHJvcGVydGllcywgYW5kIGhlbHBmdWwgZm9yIGdldHRl
cnMvc2V0dGVycy4KKworICAgICAgICBBZGRlZCBhIGNvbmNlcHQgb2YgYmVpbmcgJ2luU3BhcnNl
TW9kZScgLSB0aGlzIGluZGljYXRlcyB0aGUgYXJyYXkgaGFzIGEgbm9uLXN0YW5kYXJkCisKKyAg
ICAgICAgKiBydW50aW1lL0FycmF5UHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6YXJyYXlQ
cm90b0Z1bmNTb3J0KToKKyAgICAgICAgICAgIC0gSlNBcnJheTo6c29ydCBtZXRob2RzIG5vdCBh
bGxvd2VkIG9uIGFycmF5cyB0aGF0IGFyZSAnaW5TcGFyc2VNb2RlJy4KKyAgICAgICAgICAgICAg
KG11c3QgZmFsbCBiYWNrIHRvIGdlbmVyaWMgc29ydCBhbG9ncml0aG0pLgorICAgICAgICAqIHJ1
bnRpbWUvSlNBcnJheS5jcHA6CisgICAgICAgIChKU0M6OkpTQXJyYXk6OmZpbmlzaENyZWF0aW9u
KToKKyAgICAgICAgICAgIC0gbW92ZWQgcmVwb3J0ZWRNYXBDYXBhY2l0eSBpbnRvIHRoZSBTcGFy
c2VBcnJheVZhbHVlTWFwIG9iamVjdC4KKyAgICAgICAgKEpTQzo6U3BhcnNlQXJyYXlWYWx1ZU1h
cDo6ZmluZCk6CisgICAgICAgIChKU0M6OlNwYXJzZUFycmF5VmFsdWVNYXA6OnB1dCk6CisgICAg
ICAgIChKU0M6OlNwYXJzZUFycmF5VmFsdWVNYXA6OnZpc2l0Q2hpbGRyZW4pOgorICAgICAgICAg
ICAgLSBBZGRlZC4KKyAgICAgICAgKEpTQzo6SlNBcnJheTo6Z2V0T3duUHJvcGVydHlTbG90QnlJ
bmRleCk6CisgICAgICAgIChKU0M6OkpTQXJyYXk6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcik6
CisgICAgICAgIChKU0M6OkpTQXJyYXk6OnB1dFNsb3dDYXNlKToKKyAgICAgICAgKEpTQzo6SlNB
cnJheTo6ZGVsZXRlUHJvcGVydHlCeUluZGV4KToKKyAgICAgICAgKEpTQzo6SlNBcnJheTo6Z2V0
T3duUHJvcGVydHlOYW1lcyk6CisgICAgICAgIChKU0M6OkpTQXJyYXk6OnNldExlbmd0aCk6Cisg
ICAgICAgIChKU0M6OkpTQXJyYXk6OnBvcCk6CisgICAgICAgIChKU0M6OkpTQXJyYXk6OnZpc2l0
Q2hpbGRyZW4pOgorICAgICAgICAgICAgLSBVcGRhdGVkIGZvciBjaGFuZ2VzIGluIFNwYXJzZUFy
cmF5VmFsdWVNYXAuCisgICAgICAgIChKU0M6OkpTQXJyYXk6OnNvcnROdW1lcmljKToKKyAgICAg
ICAgKEpTQzo6SlNBcnJheTo6c29ydCk6CisgICAgICAgIChKU0M6OkpTQXJyYXk6OmNvbXBhY3RG
b3JTb3J0aW5nKToKKyAgICAgICAgICAgIC0gRGlzYWxsb3cgb24gJ1NwYXJzZU1vZGUnIGFycmF5
cy4KKyAgICAgICAgKiBydW50aW1lL0pTQXJyYXkuaDoKKyAgICAgICAgKEpTQzo6U3BhcnNlQXJy
YXlFbnRyeTo6U3BhcnNlQXJyYXlFbnRyeSk6CisgICAgICAgICAgICAtIEFuIGVudHJ5IGluIHRo
ZSBzcGFyc2UgYXJyYXkgLSB2YWx1ZSAoV3JpdGVCYXJyaWVyKSArIGF0dHJpYnV0ZXMuCisgICAg
ICAgIChKU0M6OlNwYXJzZUFycmF5VmFsdWVNYXA6OlNwYXJzZUFycmF5VmFsdWVNYXApOgorICAg
ICAgICAoSlNDOjpTcGFyc2VBcnJheVZhbHVlTWFwOjpzcGFyc2VNb2RlKToKKyAgICAgICAgKEpT
Qzo6U3BhcnNlQXJyYXlWYWx1ZU1hcDo6c2V0U3BhcnNlTW9kZSk6CisgICAgICAgICAgICAtIEZs
YWdzIHRvIHRyYWNrIHdoZXRoZXIgYW4gQXJyYXkgaXMgZm9yY2VkIGludG8gU3BhcnNlTW9kZS4K
KyAgICAgICAgKEpTQzo6U3BhcnNlQXJyYXlWYWx1ZU1hcDo6cmVtb3ZlKToKKyAgICAgICAgKEpT
Qzo6U3BhcnNlQXJyYXlWYWx1ZU1hcDo6bm90Rm91bmQpOgorICAgICAgICAoSlNDOjpTcGFyc2VB
cnJheVZhbHVlTWFwOjppc0VtcHR5KToKKyAgICAgICAgKEpTQzo6U3BhcnNlQXJyYXlWYWx1ZU1h
cDo6Y29udGFpbnMpOgorICAgICAgICAoSlNDOjpTcGFyc2VBcnJheVZhbHVlTWFwOjpzaXplKToK
KyAgICAgICAgKEpTQzo6U3BhcnNlQXJyYXlWYWx1ZU1hcDo6YmVnaW4pOgorICAgICAgICAoSlND
OjpTcGFyc2VBcnJheVZhbHVlTWFwOjplbmQpOgorICAgICAgICAgICAgLSBhY2Nlc3NvcnMgdG8g
dGhlIG1hcAorICAgICAgICAoSlNDOjpTcGFyc2VBcnJheVZhbHVlTWFwOjp0YWtlKToKKyAgICAg
ICAgICAgIC0gb25seSBmb3IgdXNlIG9uIG5vbi1TcGFyZU1vZGUgYXJyYXlzLgorICAgICAgICAo
SlNDOjpKU0FycmF5OjppblNwYXJzZU1vZGUpOgorICAgICAgICAgICAgLSBBZGRlZC4KKwogMjAx
MS0xMi0yMiAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgogCiAgICAgICAgIERGRyBK
SVQgZG9lcyBleGFjdGx5IHRoZSB3cm9uZyB0aGluZyB3aGVuIGRvaW5nIHN0cmljdCBlcXVhbGl0
eSBvbiB0d28ga25vd24gY2VsbHMKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0FycmF5UHJvdG90eXBlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9BcnJheVByb3RvdHlwZS5jcHAJKHJldmlzaW9uIDEwMzI5NCkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5UHJvdG90eXBlLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtNTM4LDcgKzUzOCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJyYXlQcm90
b0YKICAgICBDYWxsRGF0YSBjYWxsRGF0YTsKICAgICBDYWxsVHlwZSBjYWxsVHlwZSA9IGdldENh
bGxEYXRhKGZ1bmN0aW9uLCBjYWxsRGF0YSk7CiAKLSAgICBpZiAodGhpc09iai0+Y2xhc3NJbmZv
KCkgPT0gJkpTQXJyYXk6OnNfaW5mbykgeworICAgIGlmICh0aGlzT2JqLT5jbGFzc0luZm8oKSA9
PSAmSlNBcnJheTo6c19pbmZvICYmICFhc0FycmF5KHRoaXNPYmopLT5pblNwYXJzZU1vZGUoKSkg
ewogICAgICAgICBpZiAoaXNOdW1lcmljQ29tcGFyZUZ1bmN0aW9uKGV4ZWMsIGNhbGxUeXBlLCBj
YWxsRGF0YSkpCiAgICAgICAgICAgICBhc0FycmF5KHRoaXNPYmopLT5zb3J0TnVtZXJpYyhleGVj
LCBmdW5jdGlvbiwgY2FsbFR5cGUsIGNhbGxEYXRhKTsKICAgICAgICAgZWxzZSBpZiAoY2FsbFR5
cGUgIT0gQ2FsbFR5cGVOb25lKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNBcnJheS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNBcnJheS5jcHAJKHJldmlzaW9uIDEwMzI5NCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTQXJyYXkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01Nyw3ICs1Nyw4IEBAIEFTU0VS
VF9DTEFTU19GSVRTX0lOX0NFTEwoSlNBcnJheSk7CiAvLyBzdG9yYWdlIHZlY3RvciBvciB0aGUg
c3BhcnNlIG1hcC4gIEFuIGFycmF5IGluZGV4IGkgd2lsbCBiZSBoYW5kbGVkIGluIHRoZSBmb2xs
b3dpbmcKIC8vIGZhc2hpb246CiAvLwotLy8gICAqIFdoZXJlIChpIDwgTUlOX1NQQVJTRV9BUlJB
WV9JTkRFWCkgdGhlIHZhbHVlIHdpbGwgYmUgc3RvcmVkIGluIHRoZSBzdG9yYWdlIHZlY3Rvci4K
Ky8vICAgKiBXaGVyZSAoaSA8IE1JTl9TUEFSU0VfQVJSQVlfSU5ERVgpIHRoZSB2YWx1ZSB3aWxs
IGJlIHN0b3JlZCBpbiB0aGUgc3RvcmFnZSB2ZWN0b3IsCisvLyAgICAgdW5sZXNzIHRoZSBhcnJh
eSBpcyBpbiBTcGFyc2VNb2RlIGluIHdoaWNoIGNhc2UgYWxsIHByb3BlcnRpZXMgZ28gaW50byB0
aGUgbWFwLgogLy8gICAqIFdoZXJlIChNSU5fU1BBUlNFX0FSUkFZX0lOREVYIDw9IGkgPD0gTUFY
X1NUT1JBR0VfVkVDVE9SX0lOREVYKSB0aGUgdmFsdWUgd2lsbCBlaXRoZXIKIC8vICAgICBiZSBz
dG9yZWQgaW4gdGhlIHN0b3JhZ2UgdmVjdG9yIG9yIGluIHRoZSBzcGFyc2UgYXJyYXksIGRlcGVu
ZGluZyBvbiB0aGUgZGVuc2l0eSBvZgogLy8gICAgIGRhdGEgdGhhdCB3b3VsZCBiZSBzdG9yZWQg
aW4gdGhlIHZlY3RvciAoYSB2ZWN0b3IgYmVpbmcgdXNlZCB3aGVyZSBhdCBsZWFzdApAQCAtMTY2
LDcgKzE2Nyw2IEBAIHZvaWQgSlNBcnJheTo6ZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxEYXQKICAg
ICBtX3ZlY3Rvckxlbmd0aCA9IGluaXRpYWxDYXBhY2l0eTsKICAgICBtX3N0b3JhZ2UtPm1fc3Bh
cnNlVmFsdWVNYXAgPSAwOwogICAgIG1fc3RvcmFnZS0+c3ViY2xhc3NEYXRhID0gMDsKLSAgICBt
X3N0b3JhZ2UtPnJlcG9ydGVkTWFwQ2FwYWNpdHkgPSAwOwogCiAgICAgaWYgKGNyZWF0aW9uTW9k
ZSA9PSBDcmVhdGVDb21wYWN0KSB7CiAjaWYgQ0hFQ0tfQVJSQVlfQ09OU0lTVEVOQ1kKQEAgLTIx
Myw3ICsyMTMsNiBAQCB2b2lkIEpTQXJyYXk6OmZpbmlzaENyZWF0aW9uKEpTR2xvYmFsRGF0CiAg
ICAgbV9zdG9yYWdlLT5tX251bVZhbHVlc0luVmVjdG9yID0gaW5pdGlhbENhcGFjaXR5OwogICAg
IG1fc3RvcmFnZS0+bV9zcGFyc2VWYWx1ZU1hcCA9IDA7CiAgICAgbV9zdG9yYWdlLT5zdWJjbGFz
c0RhdGEgPSAwOwotICAgIG1fc3RvcmFnZS0+cmVwb3J0ZWRNYXBDYXBhY2l0eSA9IDA7CiAjaWYg
Q0hFQ0tfQVJSQVlfQ09OU0lTVEVOQ1kKICAgICBtX3N0b3JhZ2UtPm1faW5Db21wYWN0SW5pdGlh
bGl6YXRpb24gPSBmYWxzZTsKICNlbmRpZgpAQCAtMjUzLDcgKzI1Miw2IEBAIHZvaWQgSlNBcnJh
eTo6ZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxEYXQKICAgICBtX3N0b3JhZ2UtPm1fbnVtVmFsdWVz
SW5WZWN0b3IgPSBpbml0aWFsQ2FwYWNpdHk7CiAgICAgbV9zdG9yYWdlLT5tX3NwYXJzZVZhbHVl
TWFwID0gMDsKICAgICBtX3N0b3JhZ2UtPnN1YmNsYXNzRGF0YSA9IDA7Ci0gICAgbV9zdG9yYWdl
LT5yZXBvcnRlZE1hcENhcGFjaXR5ID0gMDsKICNpZiBDSEVDS19BUlJBWV9DT05TSVNURU5DWQog
ICAgIG1fc3RvcmFnZS0+bV9pbkNvbXBhY3RJbml0aWFsaXphdGlvbiA9IGZhbHNlOwogI2VuZGlm
CkBAIC0yODQsNiArMjgyLDM1IEBAIHZvaWQgSlNBcnJheTo6ZGVzdHJveShKU0NlbGwqIGNlbGwp
CiAgICAganNDYXN0PEpTQXJyYXkqPihjZWxsKS0+SlNBcnJheTo6fkpTQXJyYXkoKTsKIH0KIAor
U3BhcnNlQXJyYXlWYWx1ZU1hcDo6aXRlcmF0b3IgU3BhcnNlQXJyYXlWYWx1ZU1hcDo6ZmluZCh1
bnNpZ25lZCBpKQoreworICAgIGlmIChpIDwgTUlOX1NQQVJTRV9BUlJBWV9JTkRFWCAmJiAhc3Bh
cnNlTW9kZSgpKQorICAgICAgICByZXR1cm4gbm90Rm91bmQoKTsKKyAgICByZXR1cm4gbV9tYXAu
ZmluZChpKTsKK30KKworaW5saW5lIHZvaWQgU3BhcnNlQXJyYXlWYWx1ZU1hcDo6cHV0KEpTR2xv
YmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNBcnJheSogYXJyYXksIHVuc2lnbmVkIGksIEpTVmFsdWUg
dmFsdWUpCit7CisgICAgU3BhcnNlQXJyYXlFbnRyeSB0ZW1wOworICAgIHBhaXI8TWFwOjppdGVy
YXRvciwgYm9vbD4gcmVzdWx0ID0gbV9tYXAuYWRkKGksIHRlbXApOworICAgIHJlc3VsdC5maXJz
dC0+c2Vjb25kLnNldChnbG9iYWxEYXRhLCBhcnJheSwgdmFsdWUpOworICAgIGlmICghcmVzdWx0
LnNlY29uZCkgLy8gcHJlLWV4aXN0aW5nIGVudHJ5CisgICAgICAgIHJldHVybjsKKworICAgIHNp
emVfdCBjYXBhY2l0eSA9IG1fbWFwLmNhcGFjaXR5KCk7CisgICAgaWYgKGNhcGFjaXR5ICE9IG1f
cmVwb3J0ZWRDYXBhY2l0eSkgeworICAgICAgICBIZWFwOjpoZWFwKGFycmF5KS0+cmVwb3J0RXh0
cmFNZW1vcnlDb3N0KChjYXBhY2l0eSAtIG1fcmVwb3J0ZWRDYXBhY2l0eSkgKiAoc2l6ZW9mKHVu
c2lnbmVkKSArIHNpemVvZihKU1ZhbHVlKSkpOworICAgICAgICBtX3JlcG9ydGVkQ2FwYWNpdHkg
PSBjYXBhY2l0eTsKKyAgICB9Cit9CisKK2lubGluZSB2b2lkIFNwYXJzZUFycmF5VmFsdWVNYXA6
OnZpc2l0Q2hpbGRyZW4oU2xvdFZpc2l0b3ImIHZpc2l0b3IpCit7CisgICAgaXRlcmF0b3IgZW5k
ID0gbV9tYXAuZW5kKCk7CisgICAgZm9yIChpdGVyYXRvciBpdCA9IG1fbWFwLmJlZ2luKCk7IGl0
ICE9IGVuZDsgKytpdCkKKyAgICAgICAgdmlzaXRvci5hcHBlbmQoJml0LT5zZWNvbmQpOworfQor
CiBib29sIEpTQXJyYXk6OmdldE93blByb3BlcnR5U2xvdEJ5SW5kZXgoSlNDZWxsKiBjZWxsLCBF
eGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIGksIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICBK
U0FycmF5KiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTQXJyYXkqPihjZWxsKTsKQEAgLTMwMiwxMiAr
MzI5LDEwIEBAIGJvb2wgSlNBcnJheTo6Z2V0T3duUHJvcGVydHlTbG90QnlJbmRleCgKICAgICAg
ICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CiAgICAgfSBlbHNlIGlmIChTcGFyc2VBcnJh
eVZhbHVlTWFwKiBtYXAgPSBzdG9yYWdlLT5tX3NwYXJzZVZhbHVlTWFwKSB7Ci0gICAgICAgIGlm
IChpID49IE1JTl9TUEFSU0VfQVJSQVlfSU5ERVgpIHsKLSAgICAgICAgICAgIFNwYXJzZUFycmF5
VmFsdWVNYXA6Oml0ZXJhdG9yIGl0ID0gbWFwLT5maW5kKGkpOwotICAgICAgICAgICAgaWYgKGl0
ICE9IG1hcC0+ZW5kKCkpIHsKLSAgICAgICAgICAgICAgICBzbG90LnNldFZhbHVlKGl0LT5zZWNv
bmQuZ2V0KCkpOwotICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICAgICAgfQor
ICAgICAgICBTcGFyc2VBcnJheVZhbHVlTWFwOjppdGVyYXRvciBpdCA9IG1hcC0+ZmluZChpKTsK
KyAgICAgICAgaWYgKGl0ICE9IG1hcC0+bm90Rm91bmQoKSkgeworICAgICAgICAgICAgc2xvdC5z
ZXRWYWx1ZShpdC0+c2Vjb25kLmdldCgpKTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAg
ICAgICB9CiAgICAgfQogCkBAIC0zNTIsMTIgKzM3NywxMCBAQCBib29sIEpTQXJyYXk6OmdldE93
blByb3BlcnR5RGVzY3JpcHRvcihKCiAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAg
ICAgICAgICB9CiAgICAgICAgIH0gZWxzZSBpZiAoU3BhcnNlQXJyYXlWYWx1ZU1hcCogbWFwID0g
c3RvcmFnZS0+bV9zcGFyc2VWYWx1ZU1hcCkgewotICAgICAgICAgICAgaWYgKGkgPj0gTUlOX1NQ
QVJTRV9BUlJBWV9JTkRFWCkgewotICAgICAgICAgICAgICAgIFNwYXJzZUFycmF5VmFsdWVNYXA6
Oml0ZXJhdG9yIGl0ID0gbWFwLT5maW5kKGkpOwotICAgICAgICAgICAgICAgIGlmIChpdCAhPSBt
YXAtPmVuZCgpKSB7Ci0gICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0b3Iuc2V0RGVzY3JpcHRv
cihpdC0+c2Vjb25kLmdldCgpLCAwKTsKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7
Ci0gICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgU3BhcnNlQXJyYXlWYWx1ZU1hcDo6aXRl
cmF0b3IgaXQgPSBtYXAtPmZpbmQoaSk7CisgICAgICAgICAgICBpZiAoaXQgIT0gbWFwLT5ub3RG
b3VuZCgpKSB7CisgICAgICAgICAgICAgICAgZGVzY3JpcHRvci5zZXREZXNjcmlwdG9yKGl0LT5z
ZWNvbmQuZ2V0KCksIDApOworICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICAg
ICAgfQogICAgICAgICB9CiAgICAgfQpAQCAtNDE5LDM4ICs0NDIsMzEgQEAgdm9pZCBKU0FycmF5
OjpwdXRCeUluZGV4KEpTQ2VsbCogY2VsbCwgRQogCiBORVZFUl9JTkxJTkUgdm9pZCBKU0FycmF5
OjpwdXRTbG93Q2FzZShFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIGksIEpTVmFsdWUgdmFsdWUp
CiB7CisgICAgQVNTRVJUKGkgPj0gbV92ZWN0b3JMZW5ndGgpOworCiAgICAgQXJyYXlTdG9yYWdl
KiBzdG9yYWdlID0gbV9zdG9yYWdlOwogICAgIAogICAgIFNwYXJzZUFycmF5VmFsdWVNYXAqIG1h
cCA9IHN0b3JhZ2UtPm1fc3BhcnNlVmFsdWVNYXA7CiAKLSAgICBpZiAoaSA+PSBNSU5fU1BBUlNF
X0FSUkFZX0lOREVYKSB7CisgICAgaWYgKChtYXAgJiYgbWFwLT5zcGFyc2VNb2RlKCkpIHx8Cisg
ICAgICAgICgoaSA+PSBNSU5fU1BBUlNFX0FSUkFZX0lOREVYKSAmJgorICAgICAgICAoKGkgPiBN
QVhfU1RPUkFHRV9WRUNUT1JfSU5ERVgpIHx8ICFpc0RlbnNlRW5vdWdoRm9yVmVjdG9yKGkgKyAx
LCBzdG9yYWdlLT5tX251bVZhbHVlc0luVmVjdG9yICsgMSkpKSkgeworICAgICAgICAvLyBXZSBt
aXNzIHNvbWUgY2FzZXMgd2hlcmUgd2UgY291bGQgY29tcGFjdCB0aGUgc3RvcmFnZSwgc3VjaCBh
cyBhIGxhcmdlIGFycmF5IHRoYXQgaXMgYmVpbmcgZmlsbGVkIGZyb20gdGhlIGVuZAorICAgICAg
ICAvLyAod2hpY2ggd2lsbCBvbmx5IGJlIGNvbXBhY3RlZCBhcyB3ZSByZWFjaCBpbmRpY2VzIHRo
YXQgYXJlIGxlc3MgdGhhbiBNSU5fU1BBUlNFX0FSUkFZX0lOREVYKSAtIGJ1dCB0aGlzIG1ha2Vz
IHRoZSBjaGVjayBtdWNoIGZhc3Rlci4KKwogICAgICAgICBpZiAoaSA+IE1BWF9BUlJBWV9JTkRF
WCkgewogICAgICAgICAgICAgUHV0UHJvcGVydHlTbG90IHNsb3Q7CiAgICAgICAgICAgICBtZXRo
b2RUYWJsZSgpLT5wdXQodGhpcywgZXhlYywgSWRlbnRpZmllcjo6ZnJvbShleGVjLCBpKSwgdmFs
dWUsIHNsb3QpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKLSAgICAgICAgLy8g
V2UgbWlzcyBzb21lIGNhc2VzIHdoZXJlIHdlIGNvdWxkIGNvbXBhY3QgdGhlIHN0b3JhZ2UsIHN1
Y2ggYXMgYSBsYXJnZSBhcnJheSB0aGF0IGlzIGJlaW5nIGZpbGxlZCBmcm9tIHRoZSBlbmQKLSAg
ICAgICAgLy8gKHdoaWNoIHdpbGwgb25seSBiZSBjb21wYWN0ZWQgYXMgd2UgcmVhY2ggaW5kaWNl
cyB0aGF0IGFyZSBsZXNzIHRoYW4gTUlOX1NQQVJTRV9BUlJBWV9JTkRFWCkgLSBidXQgdGhpcyBt
YWtlcyB0aGUgY2hlY2sgbXVjaCBmYXN0ZXIuCi0gICAgICAgIGlmICgoaSA+IE1BWF9TVE9SQUdF
X1ZFQ1RPUl9JTkRFWCkgfHwgIWlzRGVuc2VFbm91Z2hGb3JWZWN0b3IoaSArIDEsIHN0b3JhZ2Ut
Pm1fbnVtVmFsdWVzSW5WZWN0b3IgKyAxKSkgewotICAgICAgICAgICAgaWYgKCFtYXApIHsKLSAg
ICAgICAgICAgICAgICBtYXAgPSBuZXcgU3BhcnNlQXJyYXlWYWx1ZU1hcDsKLSAgICAgICAgICAg
ICAgICBzdG9yYWdlLT5tX3NwYXJzZVZhbHVlTWFwID0gbWFwOwotICAgICAgICAgICAgfQotCi0g
ICAgICAgICAgICBXcml0ZUJhcnJpZXI8VW5rbm93bj4gdGVtcDsKLSAgICAgICAgICAgIHBhaXI8
U3BhcnNlQXJyYXlWYWx1ZU1hcDo6aXRlcmF0b3IsIGJvb2w+IHJlc3VsdCA9IG1hcC0+YWRkKGks
IHRlbXApOwotICAgICAgICAgICAgcmVzdWx0LmZpcnN0LT5zZWNvbmQuc2V0KGV4ZWMtPmdsb2Jh
bERhdGEoKSwgdGhpcywgdmFsdWUpOwotICAgICAgICAgICAgaWYgKCFyZXN1bHQuc2Vjb25kKSAv
LyBwcmUtZXhpc3RpbmcgZW50cnkKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAg
ICAgIHNpemVfdCBjYXBhY2l0eSA9IG1hcC0+Y2FwYWNpdHkoKTsKLSAgICAgICAgICAgIGlmIChj
YXBhY2l0eSAhPSBzdG9yYWdlLT5yZXBvcnRlZE1hcENhcGFjaXR5KSB7Ci0gICAgICAgICAgICAg
ICAgSGVhcDo6aGVhcCh0aGlzKS0+cmVwb3J0RXh0cmFNZW1vcnlDb3N0KChjYXBhY2l0eSAtIHN0
b3JhZ2UtPnJlcG9ydGVkTWFwQ2FwYWNpdHkpICogKHNpemVvZih1bnNpZ25lZCkgKyBzaXplb2Yo
SlNWYWx1ZSkpKTsKLSAgICAgICAgICAgICAgICBzdG9yYWdlLT5yZXBvcnRlZE1hcENhcGFjaXR5
ID0gY2FwYWNpdHk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICByZXR1cm47CisgICAgICAg
IGlmICghbWFwKSB7CisgICAgICAgICAgICBtYXAgPSBuZXcgU3BhcnNlQXJyYXlWYWx1ZU1hcDsK
KyAgICAgICAgICAgIHN0b3JhZ2UtPm1fc3BhcnNlVmFsdWVNYXAgPSBtYXA7CiAgICAgICAgIH0K
KworICAgICAgICBtYXAtPnB1dChleGVjLT5nbG9iYWxEYXRhKCksIHRoaXMsIGksIHZhbHVlKTsK
KyAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIC8vIFdlIGhhdmUgZGVjaWRlZCB0aGF0IHdl
J2xsIHB1dCB0aGUgbmV3IGl0ZW0gaW50byB0aGUgdmVjdG9yLgpAQCAtNTEyLDcgKzUyOCw3IEBA
IE5FVkVSX0lOTElORSB2b2lkIEpTQXJyYXk6OnB1dFNsb3dDYXNlKEUKICAgICAgICAgICAgIHZl
Y3RvcltqXS5jbGVhcigpOwogICAgICAgICBKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEgPSBleGVj
LT5nbG9iYWxEYXRhKCk7CiAgICAgICAgIGZvciAodW5zaWduZWQgaiA9IG1heCh2ZWN0b3JMZW5n
dGgsIE1JTl9TUEFSU0VfQVJSQVlfSU5ERVgpOyBqIDwgbmV3VmVjdG9yTGVuZ3RoOyArK2opCi0g
ICAgICAgICAgICB2ZWN0b3Jbal0uc2V0KGdsb2JhbERhdGEsIHRoaXMsIG1hcC0+dGFrZShqKS5n
ZXQoKSk7CisgICAgICAgICAgICB2ZWN0b3Jbal0uc2V0KGdsb2JhbERhdGEsIHRoaXMsIG1hcC0+
dGFrZShqKSk7CiAgICAgfQogCiAgICAgQVNTRVJUKGkgPCBuZXdWZWN0b3JMZW5ndGgpOwpAQCAt
NTYxLDEzICs1NzcsMTEgQEAgYm9vbCBKU0FycmF5OjpkZWxldGVQcm9wZXJ0eUJ5SW5kZXgoSlND
ZQogICAgIH0KIAogICAgIGlmIChTcGFyc2VBcnJheVZhbHVlTWFwKiBtYXAgPSBzdG9yYWdlLT5t
X3NwYXJzZVZhbHVlTWFwKSB7Ci0gICAgICAgIGlmIChpID49IE1JTl9TUEFSU0VfQVJSQVlfSU5E
RVgpIHsKLSAgICAgICAgICAgIFNwYXJzZUFycmF5VmFsdWVNYXA6Oml0ZXJhdG9yIGl0ID0gbWFw
LT5maW5kKGkpOwotICAgICAgICAgICAgaWYgKGl0ICE9IG1hcC0+ZW5kKCkpIHsKLSAgICAgICAg
ICAgICAgICBtYXAtPnJlbW92ZShpdCk7Ci0gICAgICAgICAgICAgICAgdGhpc09iamVjdC0+Y2hl
Y2tDb25zaXN0ZW5jeSgpOwotICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICAg
ICAgfQorICAgICAgICBTcGFyc2VBcnJheVZhbHVlTWFwOjppdGVyYXRvciBpdCA9IG1hcC0+Zmlu
ZChpKTsKKyAgICAgICAgaWYgKGl0ICE9IG1hcC0+bm90Rm91bmQoKSkgeworICAgICAgICAgICAg
bWFwLT5yZW1vdmUoaXQpOworICAgICAgICAgICAgdGhpc09iamVjdC0+Y2hlY2tDb25zaXN0ZW5j
eSgpOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KICAgICB9CiAKQEAgLTU5
NSw4ICs2MDksOCBAQCB2b2lkIEpTQXJyYXk6OmdldE93blByb3BlcnR5TmFtZXMoSlNPYmplCiAg
ICAgfQogCiAgICAgaWYgKFNwYXJzZUFycmF5VmFsdWVNYXAqIG1hcCA9IHN0b3JhZ2UtPm1fc3Bh
cnNlVmFsdWVNYXApIHsKLSAgICAgICAgU3BhcnNlQXJyYXlWYWx1ZU1hcDo6aXRlcmF0b3IgZW5k
ID0gbWFwLT5lbmQoKTsKLSAgICAgICAgZm9yIChTcGFyc2VBcnJheVZhbHVlTWFwOjppdGVyYXRv
ciBpdCA9IG1hcC0+YmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KQorICAgICAgICBTcGFyc2VBcnJh
eVZhbHVlTWFwOjpjb25zdF9pdGVyYXRvciBlbmQgPSBtYXAtPmVuZCgpOworICAgICAgICBmb3Ig
KFNwYXJzZUFycmF5VmFsdWVNYXA6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gbWFwLT5iZWdpbigpOyBp
dCAhPSBlbmQ7ICsraXQpCiAgICAgICAgICAgICBwcm9wZXJ0eU5hbWVzLmFkZChJZGVudGlmaWVy
Ojpmcm9tKGV4ZWMsIGl0LT5maXJzdCkpOwogICAgIH0KIApAQCAtNzI0LDEyICs3MzgsMTIgQEAg
dm9pZCBKU0FycmF5OjpzZXRMZW5ndGgodW5zaWduZWQgbmV3TGVuZwogCiAgICAgICAgIGlmIChT
cGFyc2VBcnJheVZhbHVlTWFwKiBtYXAgPSBzdG9yYWdlLT5tX3NwYXJzZVZhbHVlTWFwKSB7CiAg
ICAgICAgICAgICBTcGFyc2VBcnJheVZhbHVlTWFwIGNvcHkgPSAqbWFwOwotICAgICAgICAgICAg
U3BhcnNlQXJyYXlWYWx1ZU1hcDo6aXRlcmF0b3IgZW5kID0gY29weS5lbmQoKTsKLSAgICAgICAg
ICAgIGZvciAoU3BhcnNlQXJyYXlWYWx1ZU1hcDo6aXRlcmF0b3IgaXQgPSBjb3B5LmJlZ2luKCk7
IGl0ICE9IGVuZDsgKytpdCkgeworICAgICAgICAgICAgU3BhcnNlQXJyYXlWYWx1ZU1hcDo6Y29u
c3RfaXRlcmF0b3IgZW5kID0gY29weS5lbmQoKTsKKyAgICAgICAgICAgIGZvciAoU3BhcnNlQXJy
YXlWYWx1ZU1hcDo6Y29uc3RfaXRlcmF0b3IgaXQgPSBjb3B5LmJlZ2luKCk7IGl0ICE9IGVuZDsg
KytpdCkgewogICAgICAgICAgICAgICAgIGlmIChpdC0+Zmlyc3QgPj0gbmV3TGVuZ3RoKQogICAg
ICAgICAgICAgICAgICAgICBtYXAtPnJlbW92ZShpdC0+Zmlyc3QpOwogICAgICAgICAgICAgfQot
ICAgICAgICAgICAgaWYgKG1hcC0+aXNFbXB0eSgpKSB7CisgICAgICAgICAgICBpZiAobWFwLT5p
c0VtcHR5KCkgJiYgIW1hcC0+c3BhcnNlTW9kZSgpKSB7CiAgICAgICAgICAgICAgICAgZGVsZXRl
IG1hcDsKICAgICAgICAgICAgICAgICBzdG9yYWdlLT5tX3NwYXJzZVZhbHVlTWFwID0gMDsKICAg
ICAgICAgICAgIH0KQEAgLTc3MCw3ICs3ODQsNyBAQCBKU1ZhbHVlIEpTQXJyYXk6OnBvcCgpCiAg
ICAgICAgICAgICBpZiAoaXQgIT0gbWFwLT5lbmQoKSkgewogICAgICAgICAgICAgICAgIHJlc3Vs
dCA9IGl0LT5zZWNvbmQuZ2V0KCk7CiAgICAgICAgICAgICAgICAgbWFwLT5yZW1vdmUoaXQpOwot
ICAgICAgICAgICAgICAgIGlmIChtYXAtPmlzRW1wdHkoKSkgeworICAgICAgICAgICAgICAgIGlm
IChtYXAtPmlzRW1wdHkoKSAmJiAhbWFwLT5zcGFyc2VNb2RlKCkpIHsKICAgICAgICAgICAgICAg
ICAgICAgZGVsZXRlIG1hcDsKICAgICAgICAgICAgICAgICAgICAgc3RvcmFnZS0+bV9zcGFyc2VW
YWx1ZU1hcCA9IDA7CiAgICAgICAgICAgICAgICAgfQpAQCAtOTMyLDExICs5NDYsOCBAQCB2b2lk
IEpTQXJyYXk6OnZpc2l0Q2hpbGRyZW4oSlNDZWxsKiBjZWxsCiAgICAgdW5zaWduZWQgdXNlZFZl
Y3Rvckxlbmd0aCA9IHN0ZDo6bWluKHN0b3JhZ2UtPm1fbGVuZ3RoLCB0aGlzT2JqZWN0LT5tX3Zl
Y3Rvckxlbmd0aCk7CiAgICAgdmlzaXRvci5hcHBlbmRWYWx1ZXMoc3RvcmFnZS0+bV92ZWN0b3Is
IHVzZWRWZWN0b3JMZW5ndGgpOwogCi0gICAgaWYgKFNwYXJzZUFycmF5VmFsdWVNYXAqIG1hcCA9
IHN0b3JhZ2UtPm1fc3BhcnNlVmFsdWVNYXApIHsKLSAgICAgICAgU3BhcnNlQXJyYXlWYWx1ZU1h
cDo6aXRlcmF0b3IgZW5kID0gbWFwLT5lbmQoKTsKLSAgICAgICAgZm9yIChTcGFyc2VBcnJheVZh
bHVlTWFwOjppdGVyYXRvciBpdCA9IG1hcC0+YmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KQotICAg
ICAgICAgICAgdmlzaXRvci5hcHBlbmQoJml0LT5zZWNvbmQpOwotICAgIH0KKyAgICBpZiAoU3Bh
cnNlQXJyYXlWYWx1ZU1hcCogbWFwID0gc3RvcmFnZS0+bV9zcGFyc2VWYWx1ZU1hcCkKKyAgICAg
ICAgbWFwLT52aXNpdENoaWxkcmVuKHZpc2l0b3IpOwogfQogCiBzdGF0aWMgaW50IGNvbXBhcmVO
dW1iZXJzRm9yUVNvcnQoY29uc3Qgdm9pZCogYSwgY29uc3Qgdm9pZCogYikKQEAgLTk1NSw2ICs5
NjYsOCBAQCBzdGF0aWMgaW50IGNvbXBhcmVCeVN0cmluZ1BhaXJGb3JRU29ydChjCiAKIHZvaWQg
SlNBcnJheTo6c29ydE51bWVyaWMoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIGNvbXBhcmVGdW5j
dGlvbiwgQ2FsbFR5cGUgY2FsbFR5cGUsIGNvbnN0IENhbGxEYXRhJiBjYWxsRGF0YSkKIHsKKyAg
ICBBU1NFUlQoIWluU3BhcnNlTW9kZSgpKTsKKwogICAgIEFycmF5U3RvcmFnZSogc3RvcmFnZSA9
IG1fc3RvcmFnZTsKIAogICAgIHVuc2lnbmVkIGxlbmd0aE5vdEluY2x1ZGluZ1VuZGVmaW5lZCA9
IGNvbXBhY3RGb3JTb3J0aW5nKCk7CkBAIC05ODgsNiArMTAwMSw4IEBAIHZvaWQgSlNBcnJheTo6
c29ydE51bWVyaWMoRXhlY1N0YXRlKiBleGUKIAogdm9pZCBKU0FycmF5Ojpzb3J0KEV4ZWNTdGF0
ZSogZXhlYykKIHsKKyAgICBBU1NFUlQoIWluU3BhcnNlTW9kZSgpKTsKKwogICAgIEFycmF5U3Rv
cmFnZSogc3RvcmFnZSA9IG1fc3RvcmFnZTsKIAogICAgIHVuc2lnbmVkIGxlbmd0aE5vdEluY2x1
ZGluZ1VuZGVmaW5lZCA9IGNvbXBhY3RGb3JTb3J0aW5nKCk7CkBAIC0xMTM1LDYgKzExNTAsOCBA
QCBzdHJ1Y3QgQVZMVHJlZUFic3RyYWN0b3JGb3JBcnJheUNvbXBhcmUgCiAKIHZvaWQgSlNBcnJh
eTo6c29ydChFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgY29tcGFyZUZ1bmN0aW9uLCBDYWxsVHlw
ZSBjYWxsVHlwZSwgY29uc3QgQ2FsbERhdGEmIGNhbGxEYXRhKQogeworICAgIEFTU0VSVCghaW5T
cGFyc2VNb2RlKCkpOworCiAgICAgY2hlY2tDb25zaXN0ZW5jeSgpOwogCiAgICAgQXJyYXlTdG9y
YWdlKiBzdG9yYWdlID0gbV9zdG9yYWdlOwpAQCAtMTIwOSw4ICsxMjI2LDggQEAgdm9pZCBKU0Fy
cmF5Ojpzb3J0KEV4ZWNTdGF0ZSogZXhlYywgSlNWYQogICAgICAgICAKICAgICAgICAgc3RvcmFn
ZSA9IG1fc3RvcmFnZTsKIAotICAgICAgICBTcGFyc2VBcnJheVZhbHVlTWFwOjppdGVyYXRvciBl
bmQgPSBtYXAtPmVuZCgpOwotICAgICAgICBmb3IgKFNwYXJzZUFycmF5VmFsdWVNYXA6Oml0ZXJh
dG9yIGl0ID0gbWFwLT5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpIHsKKyAgICAgICAgU3BhcnNl
QXJyYXlWYWx1ZU1hcDo6Y29uc3RfaXRlcmF0b3IgZW5kID0gbWFwLT5lbmQoKTsKKyAgICAgICAg
Zm9yIChTcGFyc2VBcnJheVZhbHVlTWFwOjpjb25zdF9pdGVyYXRvciBpdCA9IG1hcC0+YmVnaW4o
KTsgaXQgIT0gZW5kOyArK2l0KSB7CiAgICAgICAgICAgICB0cmVlLmFic3RyYWN0b3IoKS5tX25v
ZGVzW251bURlZmluZWRdLnZhbHVlID0gaXQtPnNlY29uZC5nZXQoKTsKICAgICAgICAgICAgIHRy
ZWUuaW5zZXJ0KG51bURlZmluZWQpOwogICAgICAgICAgICAgKytudW1EZWZpbmVkOwpAQCAtMTI4
NSw2ICsxMzAyLDggQEAgdm9pZCBKU0FycmF5Ojpjb3B5VG9Bcmd1bWVudHMoRXhlY1N0YXRlKgog
CiB1bnNpZ25lZCBKU0FycmF5Ojpjb21wYWN0Rm9yU29ydGluZygpCiB7CisgICAgQVNTRVJUKCFp
blNwYXJzZU1vZGUoKSk7CisKICAgICBjaGVja0NvbnNpc3RlbmN5KCk7CiAKICAgICBBcnJheVN0
b3JhZ2UqIHN0b3JhZ2UgPSBtX3N0b3JhZ2U7CkBAIC0xMzIzLDggKzEzNDIsOCBAQCB1bnNpZ25l
ZCBKU0FycmF5Ojpjb21wYWN0Rm9yU29ydGluZygpCiAgICAgICAgICAgICBzdG9yYWdlID0gbV9z
dG9yYWdlOwogICAgICAgICB9CiAKLSAgICAgICAgU3BhcnNlQXJyYXlWYWx1ZU1hcDo6aXRlcmF0
b3IgZW5kID0gbWFwLT5lbmQoKTsKLSAgICAgICAgZm9yIChTcGFyc2VBcnJheVZhbHVlTWFwOjpp
dGVyYXRvciBpdCA9IG1hcC0+YmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KQorICAgICAgICBTcGFy
c2VBcnJheVZhbHVlTWFwOjpjb25zdF9pdGVyYXRvciBlbmQgPSBtYXAtPmVuZCgpOworICAgICAg
ICBmb3IgKFNwYXJzZUFycmF5VmFsdWVNYXA6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gbWFwLT5iZWdp
bigpOyBpdCAhPSBlbmQ7ICsraXQpCiAgICAgICAgICAgICBzdG9yYWdlLT5tX3ZlY3RvcltudW1E
ZWZpbmVkKytdLnNldFdpdGhvdXRXcml0ZUJhcnJpZXIoaXQtPnNlY29uZC5nZXQoKSk7CiAKICAg
ICAgICAgZGVsZXRlIG1hcDsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
QXJyYXkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Fy
cmF5LmgJKHJldmlzaW9uIDEwMzI5NCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTQXJyYXkuaAkod29ya2luZyBjb3B5KQpAQCAtMjcsNyArMjcsNzQgQEAKIAogbmFtZXNwYWNl
IEpTQyB7CiAKLSAgICB0eXBlZGVmIEhhc2hNYXA8dW5zaWduZWQsIFdyaXRlQmFycmllcjxVbmtu
b3duPiA+IFNwYXJzZUFycmF5VmFsdWVNYXA7CisgICAgY2xhc3MgSlNBcnJheTsKKworICAgIHN0
cnVjdCBTcGFyc2VBcnJheUVudHJ5IDogcHVibGljIFdyaXRlQmFycmllcjxVbmtub3duPiB7Cisg
ICAgICAgIFNwYXJzZUFycmF5RW50cnkoKSA6IGF0dHJpYnV0ZXMoMCkge30KKyAgICAgICAgdW5z
aWduZWQgYXR0cmlidXRlczsKKyAgICB9OworCisgICAgY2xhc3MgU3BhcnNlQXJyYXlWYWx1ZU1h
cCB7CisgICAgICAgIHR5cGVkZWYgSGFzaE1hcDx1bnNpZ25lZCwgU3BhcnNlQXJyYXlFbnRyeT4g
TWFwOworCisgICAgICAgIGVudW0gRmxhZ3MgeworICAgICAgICAgICAgTm9ybWFsID0gMCwKKyAg
ICAgICAgICAgIFNwYXJzZU1vZGUgPSAxCisgICAgICAgIH07CisKKyAgICBwdWJsaWM6CisgICAg
ICAgIHR5cGVkZWYgTWFwOjppdGVyYXRvciBpdGVyYXRvcjsKKyAgICAgICAgdHlwZWRlZiBNYXA6
OmNvbnN0X2l0ZXJhdG9yIGNvbnN0X2l0ZXJhdG9yOworCisgICAgICAgIFNwYXJzZUFycmF5VmFs
dWVNYXAoKQorICAgICAgICAgICAgOiBtX2ZsYWdzKE5vcm1hbCkKKyAgICAgICAgICAgICwgbV9y
ZXBvcnRlZENhcGFjaXR5KDApCisgICAgICAgIHsKKyAgICAgICAgfQorCisgICAgICAgIHZvaWQg
dmlzaXRDaGlsZHJlbihTbG90VmlzaXRvciYpOworCisgICAgICAgIGJvb2wgc3BhcnNlTW9kZSgp
CisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBtX2ZsYWdzICYgU3BhcnNlTW9kZTsKKyAg
ICAgICAgfQorCisgICAgICAgIHZvaWQgc2V0U3BhcnNlTW9kZSgpCisgICAgICAgIHsKKyAgICAg
ICAgICAgIG1fZmxhZ3MgPSAoRmxhZ3MpKG1fZmxhZ3MgfCBTcGFyc2VNb2RlKTsKKyAgICAgICAg
fQorCisgICAgICAgIC8vIFRoZXNlIG1ldGhvZHMgbWF5IG11dGF0ZSB0aGUgY29udGVudHMgb2Yg
dGhlIG1hcAorICAgICAgICB2b2lkIHB1dChKU0dsb2JhbERhdGEmLCBKU0FycmF5KiwgdW5zaWdu
ZWQsIEpTVmFsdWUpOworICAgICAgICBpdGVyYXRvciBmaW5kKHVuc2lnbmVkKTsKKyAgICAgICAg
Ly8gVGhpcyBzaG91bGQgQVNTRVJUIHRoZSByZW1vdmUgaXMgdmFsaWQgKGNoZWNrIHRoZSByZXN1
bHQgb2YgdGhlIGZpbmQpLgorICAgICAgICB2b2lkIHJlbW92ZShpdGVyYXRvciBpdCkgeyBtX21h
cC5yZW1vdmUoaXQpOyB9CisKKyAgICAgICAgLy8gVGhlc2UgbWV0aG9kcyBkbyBub3QgbXV0YXRl
IHRoZSBjb250ZW50cyBvZiB0aGUgbWFwLgorICAgICAgICBpdGVyYXRvciBub3RGb3VuZCgpIHsg
cmV0dXJuIG1fbWFwLmVuZCgpOyB9CisgICAgICAgIGJvb2wgaXNFbXB0eSgpIGNvbnN0IHsgcmV0
dXJuIG1fbWFwLmlzRW1wdHkoKTsgfQorICAgICAgICBib29sIGNvbnRhaW5zKHVuc2lnbmVkIGkp
IGNvbnN0IHsgcmV0dXJuIG1fbWFwLmNvbnRhaW5zKGkpOyB9CisgICAgICAgIHNpemVfdCBzaXpl
KCkgY29uc3QgeyByZXR1cm4gbV9tYXAuc2l6ZSgpOyB9CisgICAgICAgIC8vIE9ubHkgYWxsb3cg
Y29uc3QgYmVnaW4vZW5kIGl0ZXJhdGlvbi4KKyAgICAgICAgY29uc3RfaXRlcmF0b3IgYmVnaW4o
KSBjb25zdCB7IHJldHVybiBtX21hcC5iZWdpbigpOyB9CisgICAgICAgIGNvbnN0X2l0ZXJhdG9y
IGVuZCgpIGNvbnN0IHsgcmV0dXJuIG1fbWFwLmVuZCgpOyB9CisKKyAgICAgICAgLy8gVGhlc2Ug
YXJlIG9ubHkgdXNlZCBpbiBub24tU3BhcnNlTW9kZSBwYXRocy4KKyAgICAgICAgSlNWYWx1ZSB0
YWtlKHVuc2lnbmVkIGkpCisgICAgICAgIHsKKyAgICAgICAgICAgIEFTU0VSVCghc3BhcnNlTW9k
ZSgpKTsKKyAgICAgICAgICAgIHJldHVybiBtX21hcC50YWtlKGkpLmdldCgpOworICAgICAgICB9
CisgICAgICAgIHZvaWQgcmVtb3ZlKHVuc2lnbmVkIGkpCisgICAgICAgIHsKKyAgICAgICAgICAg
IG1fbWFwLnJlbW92ZShpKTsKKyAgICAgICAgfQorCisgICAgcHJpdmF0ZToKKyAgICAgICAgTWFw
IG1fbWFwOworICAgICAgICBGbGFncyBtX2ZsYWdzOworICAgICAgICBzaXplX3QgbV9yZXBvcnRl
ZENhcGFjaXR5OworICAgIH07CiAKICAgICAvLyBUaGlzIHN0cnVjdCBob2xkcyB0aGUgYWN0dWFs
IGRhdGEgdmFsdWVzIG9mIGFuIGFycmF5LiAgQSBKU0FycmF5IG9iamVjdCBwb2ludHMgdG8gaXQn
cyBjb250YWluZWQgQXJyYXlTdG9yYWdlCiAgICAgLy8gc3RydWN0IGJ5IHBvaW50aW5nIHRvIG1f
dmVjdG9yLiAgVG8gYWNjZXNzIHRoZSBjb250YWluZWQgQXJyYXlTdG9yYWdlIHN0cnVjdCwgdXNl
IHRoZSBnZXRTdG9yYWdlKCkgYW5kIApAQCAtNDAsNyArMTA3LDYgQEAgbmFtZXNwYWNlIEpTQyB7
CiAgICAgICAgIFNwYXJzZUFycmF5VmFsdWVNYXAqIG1fc3BhcnNlVmFsdWVNYXA7CiAgICAgICAg
IHZvaWQqIHN1YmNsYXNzRGF0YTsgLy8gQSBKU0FycmF5IHN1YmNsYXNzIGNhbiB1c2UgdGhpcyB0
byBmaWxsIHRoZSB2ZWN0b3IgbGF6aWx5LgogICAgICAgICB2b2lkKiBtX2FsbG9jQmFzZTsgLy8g
UG9pbnRlciB0byBiYXNlIGFkZHJlc3MgcmV0dXJuZWQgYnkgbWFsbG9jKCkuICBLZWVwaW5nIHRo
aXMgcG9pbnRlciBkb2VzIGVsaW1pbmF0ZSBmYWxzZSBwb3NpdGl2ZXMgZnJvbSB0aGUgbGVhayBk
ZXRlY3Rvci4KLSAgICAgICAgc2l6ZV90IHJlcG9ydGVkTWFwQ2FwYWNpdHk7CiAjaWYgQ0hFQ0tf
QVJSQVlfQ09OU0lTVEVOQ1kKICAgICAgICAgYm9vbCBtX2luQ29tcGFjdEluaXRpYWxpemF0aW9u
OwogI2VuZGlmCkBAIC0xNTQsNiArMjIwLDEyIEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAg
ICAgc3RvcmFnZS0+bV92ZWN0b3JbaV0uc2V0KGdsb2JhbERhdGEsIHRoaXMsIHYpOwogICAgICAg
ICB9CiAKKyAgICAgICAgYm9vbCBpblNwYXJzZU1vZGUoKQorICAgICAgICB7CisgICAgICAgICAg
ICBTcGFyc2VBcnJheVZhbHVlTWFwKiBtYXAgPSBtX3N0b3JhZ2UtPm1fc3BhcnNlVmFsdWVNYXA7
CisgICAgICAgICAgICByZXR1cm4gbWFwICYmIG1hcC0+c3BhcnNlTW9kZSgpOworICAgICAgICB9
CisKICAgICAgICAgdm9pZCBmaWxsQXJnTGlzdChFeGVjU3RhdGUqLCBNYXJrZWRBcmd1bWVudEJ1
ZmZlciYpOwogICAgICAgICB2b2lkIGNvcHlUb0FyZ3VtZW50cyhFeGVjU3RhdGUqLCBDYWxsRnJh
bWUqLCB1aW50MzJfdCBsZW5ndGgpOwogCg==
</data>
<flag name="review"
          id="120668"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>