<?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>29168</bug_id>
          
          <creation_ts>2009-09-10 22:06:07 -0700</creation_ts>
          <short_desc>Allow anonymous storage inside JSObject</short_desc>
          <delta_ts>2009-09-15 16:18:46 -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>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</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="Oliver Hunt">oliver</reporter>
          <assigned_to name="Oliver Hunt">oliver</assigned_to>
          <cc>ggaren</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>146455</commentid>
    <comment_count>0</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2009-09-10 22:06:07 -0700</bug_when>
    <thetext>meh</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>146460</commentid>
    <comment_count>1</comment_count>
      <attachid>39411</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2009-09-10 22:26:50 -0700</bug_when>
    <thetext>Created attachment 39411
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>146710</commentid>
    <comment_count>2</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2009-09-11 12:32:04 -0700</bug_when>
    <thetext>+size_t Structure::put(unsigned count)
+{
+    m_propertyTable-&gt;anonymousSlotCount += count;
+    return m_propertyTable-&gt;keyCount + m_propertyTable-&gt;anonymousSlotCount;
+}

This API seems really weird to me.

First, it has a return value, which its only client doesn&apos;t use.

Second, its name implies that it &quot;puts&quot; a value, but it doesn&apos;t take a value as an argument.

Third, it increments anonymousSlotCount, but I don&apos;t see anonymousSlotCount initialized anywhere.

Fourth, m_anonymousSlotsInPrevious gets set directly in Structure::addAnonymousSlotsTransition, so what&apos;s special about anonymousSlotCount that it needs a helper function?

I think createPropertyMapHashTable needs to initialize anonymousSlotCount to 0. Then, I think addAnonymousSlotsTransition should just directly set anonymousSlotCount, like it directly sets m_anonymousSlotsInPrevious.

r- because I&apos;m worried that anonymousSlotCount is uninitialized.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>147409</commentid>
    <comment_count>3</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2009-09-15 16:18:46 -0700</bug_when>
    <thetext>Fixed r48403</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>39411</attachid>
            <date>2009-09-10 22:26:50 -0700</date>
            <delta_ts>2009-09-11 12:32:20 -0700</delta_ts>
            <desc>Patch v1</desc>
            <filename>bug-29168-20090910222649.patch</filename>
            <type>text/plain</type>
            <size>17979</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL0phdmFTY3JpcHRDb3JlL0No
YW5nZUxvZwppbmRleCA1ZGE3NDQwLi41YTk1NjA1IDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDcg
QEAKKzIwMDktMDktMTAgIE9saXZlciBIdW50ICA8b2xpdmVyQGFwcGxlLmNvbT4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBbGxvdyBhbm9ueW1vdXMg
c3RvcmFnZSBpbnNpZGUgSlNPYmplY3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTI5MTY4CisKKyAgICAgICAgQWRkIHRoZSBjb25jZXB0IG9mIGFub255
bW91cyBzbG90cyB0byBTdHJ1Y3R1cmVzIHNvIHRoYXQgaXQgaXMKKyAgICAgICAgcG9zc2libGUg
dG8gc3RvcmUgcmVmZXJlbmNlcyB0byB2YWx1ZXMgdGhhdCBuZWVkIG1hcmtpbmcgaW4gdGhlCisg
ICAgICAgIHN0YW5kYXJkIEpTT2JqZWN0IHN0b3JhZ2UgYnVmZmVyLiAgVGhpcyBhbGxvd3MgdXMg
dG8gcmVkdWNlIHRoZQorICAgICAgICBtYWxsb2Mgb3ZlcmhlYWQgb2Ygc29tZSBvYmplY3RzIChi
eSBhbGxvd2luZyB0aGVtIHRvIHN0b3JlIEpTCisgICAgICAgIHZhbHVlcyBpbiB0aGUgaW5saW5l
IHN0b3JhZ2Ugb2YgdGhlIG9iamVjdCkgYW5kIHJlZHVjZSB0aGUgCisgICAgICAgIGRlcGVuZGVu
Y2Ugb2YgY3VzdG9tIG1hcmsgZnVuY3Rpb25zIChpZiBhbGwgYW4gb2JqZWN0cyBjaGlsZHJlbgor
ICAgICAgICBhcmUgaW4gdGhlIHN0YW5kYXJkIG9iamVjdCBwcm9wZXJ0eSBzdG9yYWdlIHRoZXJl
J3Mgbm8gbmVlZCB0bworICAgICAgICBtYXJrIHRoZW0gbWFudWFsbHkpLgorCisgICAgICAgICog
SmF2YVNjcmlwdENvcmUuZXhwOgorICAgICAgICAqIHJ1bnRpbWUvSlNPYmplY3QuaDoKKyAgICAg
ICAgKEpTQzo6SlNPYmplY3Q6OnB1dEFub255bW91c1ZhbHVlKToKKyAgICAgICAgKEpTQzo6SlNP
YmplY3Q6OmdldEFub255bW91c1ZhbHVlKToKKyAgICAgICAgKEpTQzo6SlNPYmplY3Q6OmFkZEFu
b255bW91c1Nsb3RzKToKKyAgICAgICAgKiBydW50aW1lL0pTV3JhcHBlck9iamVjdC5oOgorICAg
ICAgICAoSlNDOjpKU1dyYXBwZXJPYmplY3Q6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgIChK
U0M6OkpTV3JhcHBlck9iamVjdDo6SlNXcmFwcGVyT2JqZWN0KToKKyAgICAgICAgKEpTQzo6SlNX
cmFwcGVyT2JqZWN0OjpzZXRJbnRlcm5hbFZhbHVlKToKKyAgICAgICAgKiBydW50aW1lL1Byb3Bl
cnR5TWFwSGFzaFRhYmxlLmg6CisgICAgICAgICogcnVudGltZS9TdHJ1Y3R1cmUuY3BwOgorICAg
ICAgICAoSlNDOjpTdHJ1Y3R1cmU6On5TdHJ1Y3R1cmUpOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1
cmU6Om1hdGVyaWFsaXplUHJvcGVydHlNYXApOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmU6OmFk
ZEFub255bW91c1Nsb3RzVHJhbnNpdGlvbik6CisgICAgICAgIChKU0M6OlN0cnVjdHVyZTo6Y29w
eVByb3BlcnR5VGFibGUpOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmU6OnB1dCk6CisgICAgICAg
IChKU0M6OlN0cnVjdHVyZTo6cmVoYXNoUHJvcGVydHlNYXBIYXNoVGFibGUpOgorICAgICAgICAq
IHJ1bnRpbWUvU3RydWN0dXJlLmg6CisgICAgICAgIChKU0M6OlN0cnVjdHVyZTo6cHJvcGVydHlT
dG9yYWdlU2l6ZSk6CisgICAgICAgIChKU0M6OlN0cnVjdHVyZVRyYW5zaXRpb25UYWJsZTo6cmVp
ZnlTaW5nbGVUcmFuc2l0aW9uKToKKyAgICAgICAgKiBydW50aW1lL1N0cnVjdHVyZVRyYW5zaXRp
b25UYWJsZS5oOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmVUcmFuc2l0aW9uVGFibGU6OlRyYW5z
aXRpb25UYWJsZTo6YWRkU2xvdFRyYW5zaXRpb24pOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmVU
cmFuc2l0aW9uVGFibGU6OlRyYW5zaXRpb25UYWJsZTo6cmVtb3ZlU2xvdFRyYW5zaXRpb24pOgor
ICAgICAgICAoSlNDOjpTdHJ1Y3R1cmVUcmFuc2l0aW9uVGFibGU6OlRyYW5zaXRpb25UYWJsZTo6
Z2V0U2xvdFRyYW5zaXRpb24pOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmVUcmFuc2l0aW9uVGFi
bGU6OmdldEFub255bW91c1Nsb3RUcmFuc2l0aW9uKToKKyAgICAgICAgKEpTQzo6U3RydWN0dXJl
VHJhbnNpdGlvblRhYmxlOjphZGRBbm9ueW1vdXNTbG90VHJhbnNpdGlvbik6CisgICAgICAgIChK
U0M6OlN0cnVjdHVyZVRyYW5zaXRpb25UYWJsZTo6cmVtb3ZlQW5vbnltb3VzU2xvdFRyYW5zaXRp
b24pOgorCiAyMDA5LTA5LTA4ICBKb2huIEFiZC1FbC1NYWxlayAgPGphbUBjaHJvbWl1bS5vcmc+
CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGltaXRyaSBHbGF6a292LgpkaWZmIC0tZ2l0IGEvSmF2
YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZXhwIGIvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlw
dENvcmUuZXhwCmluZGV4IGNkODBkNzQuLjBmNmUzNGYgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRD
b3JlL0phdmFTY3JpcHRDb3JlLmV4cAorKysgYi9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29y
ZS5leHAKQEAgLTI3Myw2ICsyNzMsNyBAQCBfX1pOM0pTQzlTdHJ1Y3R1cmUxOHN0YXJ0SWdub3Jp
bmdMZWFrc0V2CiBfX1pOM0pTQzlTdHJ1Y3R1cmUyMWFkZFByb3BlcnR5VHJhbnNpdGlvbkVQUzBf
UktOU18xMElkZW50aWZpZXJFalBOU182SlNDZWxsRVJtCiBfX1pOM0pTQzlTdHJ1Y3R1cmUyMm1h
dGVyaWFsaXplUHJvcGVydHlNYXBFdgogX19aTjNKU0M5U3RydWN0dXJlMjVjaGFuZ2VQcm90b3R5
cGVUcmFuc2l0aW9uRVBTMF9OU183SlNWYWx1ZUUKK19fWk4zSlNDOVN0cnVjdHVyZTI3YWRkQW5v
bnltb3VzU2xvdHNUcmFuc2l0aW9uRVBTMF9qCiBfX1pOM0pTQzlTdHJ1Y3R1cmUyN2Rlc3BlY2lm
eURpY3Rpb25hcnlGdW5jdGlvbkVSS05TXzEwSWRlbnRpZmllckUKIF9fWk4zSlNDOVN0cnVjdHVy
ZTI3ZGVzcGVjaWZ5RnVuY3Rpb25UcmFuc2l0aW9uRVBTMF9SS05TXzEwSWRlbnRpZmllckUKIF9f
Wk4zSlNDOVN0cnVjdHVyZTI4YWRkUHJvcGVydHlXaXRob3V0VHJhbnNpdGlvbkVSS05TXzEwSWRl
bnRpZmllckVqUE5TXzZKU0NlbGxFCmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTT2JqZWN0LmggYi9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmgKaW5kZXggZGZm
YWQ3ZS4uNzhlODBjNSAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVj
dC5oCisrKyBiL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaApAQCAtMjA4LDYgKzIw
OCwxNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNy
ZWF0ZShwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIEhhc1N0YW5kYXJkR2V0T3duUHJv
cGVydHlTbG90IHwgSGFzRGVmYXVsdE1hcmspKTsKICAgICAgICAgfQogCisgICAgcHJvdGVjdGVk
OgorICAgICAgICB2b2lkIGFkZEFub255bW91c1Nsb3RzKHVuc2lnbmVkIGNvdW50KTsKKyAgICAg
ICAgdm9pZCBwdXRBbm9ueW1vdXNWYWx1ZSh1bnNpZ25lZCBpbmRleCwgSlNWYWx1ZSB2YWx1ZSkK
KyAgICAgICAgeworICAgICAgICAgICAgKmxvY2F0aW9uRm9yT2Zmc2V0KGluZGV4KSA9IHZhbHVl
OworICAgICAgICB9CisgICAgICAgIEpTVmFsdWUgZ2V0QW5vbnltb3VzVmFsdWUodW5zaWduZWQg
aW5kZXgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiAqbG9jYXRpb25Gb3JPZmZzZXQo
aW5kZXgpOworICAgICAgICB9CisKICAgICBwcml2YXRlOgogICAgICAgICAvLyBOb2JvZHkgc2hv
dWxkIGV2ZXIgYXNrIGFueSBvZiB0aGVzZSBxdWVzdGlvbnMgb24gc29tZXRoaW5nIGFscmVhZHkg
a25vd24gdG8gYmUgYSBKU09iamVjdC4KICAgICAgICAgdXNpbmcgSlNDZWxsOjppc0FQSVZhbHVl
V3JhcHBlcjsKQEAgLTUxMiw2ICs1MjMsMTcgQEAgaW5saW5lIHZvaWQgSlNPYmplY3Q6OnB1dERp
cmVjdEludGVybmFsKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgY29uc3QgSWRlbnRpZmkKICAg
ICBwdXREaXJlY3RJbnRlcm5hbChwcm9wZXJ0eU5hbWUsIHZhbHVlLCBhdHRyaWJ1dGVzLCBmYWxz
ZSwgc2xvdCwgZ2V0SlNGdW5jdGlvbihnbG9iYWxEYXRhLCB2YWx1ZSkpOwogfQogCitpbmxpbmUg
dm9pZCBKU09iamVjdDo6YWRkQW5vbnltb3VzU2xvdHModW5zaWduZWQgY291bnQpCit7CisgICAg
c2l6ZV90IGN1cnJlbnRDYXBhY2l0eSA9IG1fc3RydWN0dXJlLT5wcm9wZXJ0eVN0b3JhZ2VDYXBh
Y2l0eSgpOworICAgIFJlZlB0cjxTdHJ1Y3R1cmU+IHN0cnVjdHVyZSA9IFN0cnVjdHVyZTo6YWRk
QW5vbnltb3VzU2xvdHNUcmFuc2l0aW9uKG1fc3RydWN0dXJlLCBjb3VudCk7CisKKyAgICBpZiAo
Y3VycmVudENhcGFjaXR5ICE9IHN0cnVjdHVyZS0+cHJvcGVydHlTdG9yYWdlQ2FwYWNpdHkoKSkK
KyAgICAgICAgYWxsb2NhdGVQcm9wZXJ0eVN0b3JhZ2UoY3VycmVudENhcGFjaXR5LCBzdHJ1Y3R1
cmUtPnByb3BlcnR5U3RvcmFnZUNhcGFjaXR5KCkpOworCisgICAgc2V0U3RydWN0dXJlKHN0cnVj
dHVyZS5yZWxlYXNlKCkpOworfQorCiBpbmxpbmUgdm9pZCBKU09iamVjdDo6cHV0RGlyZWN0KGNv
bnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgdW5zaWduZWQgYXR0
cmlidXRlcywgYm9vbCBjaGVja1JlYWRPbmx5LCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAg
ICAgQVNTRVJUKHZhbHVlKTsKZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNX
cmFwcGVyT2JqZWN0LmggYi9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTV3JhcHBlck9iamVjdC5o
CmluZGV4IDkwZjJmMjIuLjM1MDgxNDEgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNXcmFwcGVyT2JqZWN0LmgKKysrIGIvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1dyYXBw
ZXJPYmplY3QuaApAQCAtMzgsNyArMzgsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICBz
dGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU1ZhbHVlIHByb3Rv
dHlwZSkgCiAgICAgICAgIHsgCi0gICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUo
cHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBIYXNTdGFuZGFyZEdldE93blByb3BlcnR5
U2xvdCkpOworICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHByb3RvdHlwZSwg
VHlwZUluZm8oT2JqZWN0VHlwZSwgSGFzU3RhbmRhcmRHZXRPd25Qcm9wZXJ0eVNsb3QgfCBIYXNE
ZWZhdWx0TWFyaykpOwogICAgICAgICB9CiAKICAgICBwcml2YXRlOgpAQCAtNTAsNiArNTAsOCBA
QCBuYW1lc3BhY2UgSlNDIHsKICAgICBpbmxpbmUgSlNXcmFwcGVyT2JqZWN0OjpKU1dyYXBwZXJP
YmplY3QoUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IHN0cnVjdHVyZSkKICAgICAgICAgOiBKU09iamVj
dChzdHJ1Y3R1cmUpCiAgICAgeworICAgICAgICBhZGRBbm9ueW1vdXNTbG90cygxKTsKKyAgICAg
ICAgcHV0QW5vbnltb3VzVmFsdWUoMCwganNOdWxsKCkpOwogICAgIH0KIAogICAgIGlubGluZSB2
b2lkIEpTV3JhcHBlck9iamVjdDo6c2V0SW50ZXJuYWxWYWx1ZShKU1ZhbHVlIHZhbHVlKQpAQCAt
NTcsNiArNTksNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgQVNTRVJUKHZhbHVlKTsKICAg
ICAgICAgQVNTRVJUKCF2YWx1ZS5pc09iamVjdCgpKTsKICAgICAgICAgbV9pbnRlcm5hbFZhbHVl
ID0gdmFsdWU7CisgICAgICAgIHB1dEFub255bW91c1ZhbHVlKDAsIHZhbHVlKTsKICAgICB9CiAK
IH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Q
cm9wZXJ0eU1hcEhhc2hUYWJsZS5oIGIvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9wZXJ0eU1h
cEhhc2hUYWJsZS5oCmluZGV4IDQ0ZGMyYjguLjViNjNmNzkgMTAwNjQ0Ci0tLSBhL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvUHJvcGVydHlNYXBIYXNoVGFibGUuaAorKysgYi9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1Byb3BlcnR5TWFwSGFzaFRhYmxlLmgKQEAgLTYxLDYgKzYxLDcgQEAgbmFtZXNw
YWNlIEpTQyB7CiAgICAgICAgIHVuc2lnbmVkIHNpemU7CiAgICAgICAgIHVuc2lnbmVkIGtleUNv
dW50OwogICAgICAgICB1bnNpZ25lZCBkZWxldGVkU2VudGluZWxDb3VudDsKKyAgICAgICAgdW5z
aWduZWQgYW5vbnltb3VzU2xvdENvdW50OwogICAgICAgICB1bnNpZ25lZCBsYXN0SW5kZXhVc2Vk
OwogICAgICAgICBWZWN0b3I8dW5zaWduZWQ+KiBkZWxldGVkT2Zmc2V0czsKICAgICAgICAgdW5z
aWduZWQgZW50cnlJbmRpY2VzWzFdOwpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9TdHJ1Y3R1cmUuY3BwIGIvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuY3BwCmlu
ZGV4IGNhYWQ5OTMuLjIyYjRlNDYgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
U3RydWN0dXJlLmNwcAorKysgYi9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5jcHAK
QEAgLTE1Miw4ICsxNTIsMTMgQEAgU3RydWN0dXJlOjpTdHJ1Y3R1cmUoSlNWYWx1ZSBwcm90b3R5
cGUsIGNvbnN0IFR5cGVJbmZvJiB0eXBlSW5mbykKIAogU3RydWN0dXJlOjp+U3RydWN0dXJlKCkK
IHsKLSAgICBpZiAobV9wcmV2aW91cykKLSAgICAgICAgbV9wcmV2aW91cy0+dGFibGUucmVtb3Zl
KG1ha2VfcGFpcihtX25hbWVJblByZXZpb3VzLmdldCgpLCBtX2F0dHJpYnV0ZXNJblByZXZpb3Vz
KSwgbV9zcGVjaWZpY1ZhbHVlSW5QcmV2aW91cyk7CisgICAgaWYgKG1fcHJldmlvdXMpIHsKKyAg
ICAgICAgaWYgKG1fbmFtZUluUHJldmlvdXMpCisgICAgICAgICAgICBtX3ByZXZpb3VzLT50YWJs
ZS5yZW1vdmUobWFrZV9wYWlyKG1fbmFtZUluUHJldmlvdXMuZ2V0KCksIG1fYXR0cmlidXRlc0lu
UHJldmlvdXMpLCBtX3NwZWNpZmljVmFsdWVJblByZXZpb3VzKTsKKyAgICAgICAgZWxzZQorICAg
ICAgICAgICAgbV9wcmV2aW91cy0+dGFibGUucmVtb3ZlQW5vbnltb3VzU2xvdFRyYW5zaXRpb24o
bV9hbm9ueW1vdXNTbG90c0luUHJldmlvdXMpOworCisgICAgfQogCiAgICAgaWYgKG1fY2FjaGVk
UHJvcGVydHlOYW1lQXJyYXlEYXRhKQogICAgICAgICBtX2NhY2hlZFByb3BlcnR5TmFtZUFycmF5
RGF0YS0+c2V0Q2FjaGVkU3RydWN0dXJlKDApOwpAQCAtMjY3LDYgKzI3MiwxMCBAQCB2b2lkIFN0
cnVjdHVyZTo6bWF0ZXJpYWxpemVQcm9wZXJ0eU1hcCgpCiAKICAgICBmb3IgKHB0cmRpZmZfdCBp
ID0gc3RydWN0dXJlcy5zaXplKCkgLSAyOyBpID49IDA7IC0taSkgewogICAgICAgICBzdHJ1Y3R1
cmUgPSBzdHJ1Y3R1cmVzW2ldOworICAgICAgICBpZiAoIXN0cnVjdHVyZS0+bV9uYW1lSW5QcmV2
aW91cykgeworICAgICAgICAgICAgbV9wcm9wZXJ0eVRhYmxlLT5hbm9ueW1vdXNTbG90Q291bnQg
Kz0gc3RydWN0dXJlLT5tX2Fub255bW91c1Nsb3RzSW5QcmV2aW91czsKKyAgICAgICAgICAgIGNv
bnRpbnVlOworICAgICAgICB9CiAgICAgICAgIHN0cnVjdHVyZS0+bV9uYW1lSW5QcmV2aW91cy0+
cmVmKCk7CiAgICAgICAgIFByb3BlcnR5TWFwRW50cnkgZW50cnkoc3RydWN0dXJlLT5tX25hbWVJ
blByZXZpb3VzLmdldCgpLCBzdHJ1Y3R1cmUtPm1fb2Zmc2V0LCBzdHJ1Y3R1cmUtPm1fYXR0cmli
dXRlc0luUHJldmlvdXMsIHN0cnVjdHVyZS0+bV9zcGVjaWZpY1ZhbHVlSW5QcmV2aW91cywgKytt
X3Byb3BlcnR5VGFibGUtPmxhc3RJbmRleFVzZWQpOwogICAgICAgICBpbnNlcnRJbnRvUHJvcGVy
dHlNYXBIYXNoVGFibGUoZW50cnkpOwpAQCAtNDczLDYgKzQ4Miw0NyBAQCBQYXNzUmVmUHRyPFN0
cnVjdHVyZT4gU3RydWN0dXJlOjpkZXNwZWNpZnlGdW5jdGlvblRyYW5zaXRpb24oU3RydWN0dXJl
KiBzdHJ1Y3R1cgogICAgIHJldHVybiB0cmFuc2l0aW9uLnJlbGVhc2UoKTsKIH0KIAorUGFzc1Jl
ZlB0cjxTdHJ1Y3R1cmU+IFN0cnVjdHVyZTo6YWRkQW5vbnltb3VzU2xvdHNUcmFuc2l0aW9uKFN0
cnVjdHVyZSogc3RydWN0dXJlLCB1bnNpZ25lZCBjb3VudCkKK3sKKyAgICBpZiAoU3RydWN0dXJl
KiB0cmFuc2l0aW9uID0gc3RydWN0dXJlLT50YWJsZS5nZXRBbm9ueW1vdXNTbG90VHJhbnNpdGlv
bihjb3VudCkpIHsKKyAgICAgICAgQVNTRVJUKHRyYW5zaXRpb24tPnN0b3JlZFByb3RvdHlwZSgp
ID09IHN0cnVjdHVyZS0+c3RvcmVkUHJvdG90eXBlKCkpOworICAgICAgICByZXR1cm4gdHJhbnNp
dGlvbjsKKyAgICB9CisgICAgQVNTRVJUKGNvdW50KTsKKyAgICBBU1NFUlQoY291bnQgPCAoKDE8
PDYpIC0gMikpOworICAgIFJlZlB0cjxTdHJ1Y3R1cmU+IHRyYW5zaXRpb24gPSBjcmVhdGUoc3Ry
dWN0dXJlLT5tX3Byb3RvdHlwZSwgc3RydWN0dXJlLT50eXBlSW5mbygpKTsKKyAgICAKKyAgICB0
cmFuc2l0aW9uLT5tX2NhY2hlZFByb3RvdHlwZUNoYWluID0gc3RydWN0dXJlLT5tX2NhY2hlZFBy
b3RvdHlwZUNoYWluOworICAgIHRyYW5zaXRpb24tPm1fcHJldmlvdXMgPSBzdHJ1Y3R1cmU7Cisg
ICAgdHJhbnNpdGlvbi0+bV9uYW1lSW5QcmV2aW91cyA9IDA7CisgICAgdHJhbnNpdGlvbi0+bV9h
dHRyaWJ1dGVzSW5QcmV2aW91cyA9IDA7CisgICAgdHJhbnNpdGlvbi0+bV9hbm9ueW1vdXNTbG90
c0luUHJldmlvdXMgPSBjb3VudDsKKyAgICB0cmFuc2l0aW9uLT5tX3NwZWNpZmljVmFsdWVJblBy
ZXZpb3VzID0gMDsKKyAgICB0cmFuc2l0aW9uLT5tX3Byb3BlcnR5U3RvcmFnZUNhcGFjaXR5ID0g
c3RydWN0dXJlLT5tX3Byb3BlcnR5U3RvcmFnZUNhcGFjaXR5OworICAgIHRyYW5zaXRpb24tPm1f
aGFzR2V0dGVyU2V0dGVyUHJvcGVydGllcyA9IHN0cnVjdHVyZS0+bV9oYXNHZXR0ZXJTZXR0ZXJQ
cm9wZXJ0aWVzOworCisgICAgaWYgKHN0cnVjdHVyZS0+bV9wcm9wZXJ0eVRhYmxlKSB7CisgICAg
ICAgIGlmIChzdHJ1Y3R1cmUtPm1faXNQaW5uZWRQcm9wZXJ0eVRhYmxlKQorICAgICAgICAgICAg
dHJhbnNpdGlvbi0+bV9wcm9wZXJ0eVRhYmxlID0gc3RydWN0dXJlLT5jb3B5UHJvcGVydHlUYWJs
ZSgpOworICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHRyYW5zaXRpb24tPm1fcHJvcGVydHlU
YWJsZSA9IHN0cnVjdHVyZS0+bV9wcm9wZXJ0eVRhYmxlOworICAgICAgICAgICAgc3RydWN0dXJl
LT5tX3Byb3BlcnR5VGFibGUgPSAwOworICAgICAgICB9CisgICAgfSBlbHNlIHsKKyAgICAgICAg
aWYgKHN0cnVjdHVyZS0+bV9wcmV2aW91cykKKyAgICAgICAgICAgIHRyYW5zaXRpb24tPm1hdGVy
aWFsaXplUHJvcGVydHlNYXAoKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgdHJhbnNpdGlv
bi0+Y3JlYXRlUHJvcGVydHlNYXBIYXNoVGFibGUoKTsKKyAgICB9CisKKyAgICB0cmFuc2l0aW9u
LT5wdXQoY291bnQpOworICAgIGlmICh0cmFuc2l0aW9uLT5wcm9wZXJ0eVN0b3JhZ2VTaXplKCkg
PiB0cmFuc2l0aW9uLT5wcm9wZXJ0eVN0b3JhZ2VDYXBhY2l0eSgpKQorICAgICAgICB0cmFuc2l0
aW9uLT5ncm93UHJvcGVydHlTdG9yYWdlQ2FwYWNpdHkoKTsKKworICAgIHN0cnVjdHVyZS0+dGFi
bGUuYWRkQW5vbnltb3VzU2xvdFRyYW5zaXRpb24oY291bnQsIHRyYW5zaXRpb24uZ2V0KCkpOwor
ICAgIHJldHVybiB0cmFuc2l0aW9uLnJlbGVhc2UoKTsgICAgCit9CisKIFBhc3NSZWZQdHI8U3Ry
dWN0dXJlPiBTdHJ1Y3R1cmU6OmdldHRlclNldHRlclRyYW5zaXRpb24oU3RydWN0dXJlKiBzdHJ1
Y3R1cmUpCiB7CiAgICAgUmVmUHRyPFN0cnVjdHVyZT4gdHJhbnNpdGlvbiA9IGNyZWF0ZShzdHJ1
Y3R1cmUtPnN0b3JlZFByb3RvdHlwZSgpLCBzdHJ1Y3R1cmUtPnR5cGVJbmZvKCkpOwpAQCAtNTk3
LDYgKzY0Nyw3IEBAIFByb3BlcnR5TWFwSGFzaFRhYmxlKiBTdHJ1Y3R1cmU6OmNvcHlQcm9wZXJ0
eVRhYmxlKCkKICAgICBpZiAobV9wcm9wZXJ0eVRhYmxlLT5kZWxldGVkT2Zmc2V0cykKICAgICAg
ICAgbmV3VGFibGUtPmRlbGV0ZWRPZmZzZXRzID0gbmV3IFZlY3Rvcjx1bnNpZ25lZD4oKm1fcHJv
cGVydHlUYWJsZS0+ZGVsZXRlZE9mZnNldHMpOwogCisgICAgbmV3VGFibGUtPmFub255bW91c1Ns
b3RDb3VudCA9IG1fcHJvcGVydHlUYWJsZS0+YW5vbnltb3VzU2xvdENvdW50OwogICAgIHJldHVy
biBuZXdUYWJsZTsKIH0KIApAQCAtNzc2LDcgKzgyNyw3IEBAIHNpemVfdCBTdHJ1Y3R1cmU6OnB1
dChjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIHVuc2lnbmVkIGF0dHJpYnV0ZXMsIEpT
Q2VsCiAgICAgICAgIG5ld09mZnNldCA9IG1fcHJvcGVydHlUYWJsZS0+ZGVsZXRlZE9mZnNldHMt
Pmxhc3QoKTsKICAgICAgICAgbV9wcm9wZXJ0eVRhYmxlLT5kZWxldGVkT2Zmc2V0cy0+cmVtb3Zl
TGFzdCgpOwogICAgIH0gZWxzZQotICAgICAgICBuZXdPZmZzZXQgPSBtX3Byb3BlcnR5VGFibGUt
PmtleUNvdW50OworICAgICAgICBuZXdPZmZzZXQgPSBtX3Byb3BlcnR5VGFibGUtPmtleUNvdW50
ICsgbV9wcm9wZXJ0eVRhYmxlLT5hbm9ueW1vdXNTbG90Q291bnQ7CiAgICAgbV9wcm9wZXJ0eVRh
YmxlLT5lbnRyaWVzKClbZW50cnlJbmRleCAtIDFdLm9mZnNldCA9IG5ld09mZnNldDsKIAogICAg
ICsrbV9wcm9wZXJ0eVRhYmxlLT5rZXlDb3VudDsKQEAgLTc4OCw2ICs4MzksMTIgQEAgc2l6ZV90
IFN0cnVjdHVyZTo6cHV0KGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgdW5zaWduZWQg
YXR0cmlidXRlcywgSlNDZWwKICAgICByZXR1cm4gbmV3T2Zmc2V0OwogfQogCitzaXplX3QgU3Ry
dWN0dXJlOjpwdXQodW5zaWduZWQgY291bnQpCit7CisgICAgbV9wcm9wZXJ0eVRhYmxlLT5hbm9u
eW1vdXNTbG90Q291bnQgKz0gY291bnQ7CisgICAgcmV0dXJuIG1fcHJvcGVydHlUYWJsZS0+a2V5
Q291bnQgKyBtX3Byb3BlcnR5VGFibGUtPmFub255bW91c1Nsb3RDb3VudDsKK30KKwogYm9vbCBT
dHJ1Y3R1cmU6Omhhc1RyYW5zaXRpb24oVVN0cmluZzo6UmVwKiByZXAsIHVuc2lnbmVkIGF0dHJp
YnV0ZXMpCiB7CiAgICAgcmV0dXJuIHRhYmxlLmhhc1RyYW5zaXRpb24obWFrZV9wYWlyKHJlcCwg
YXR0cmlidXRlcykpOwpAQCAtOTQ2LDYgKzEwMDMsNyBAQCB2b2lkIFN0cnVjdHVyZTo6cmVoYXNo
UHJvcGVydHlNYXBIYXNoVGFibGUodW5zaWduZWQgbmV3VGFibGVTaXplKQogICAgIG1fcHJvcGVy
dHlUYWJsZSA9IHN0YXRpY19jYXN0PFByb3BlcnR5TWFwSGFzaFRhYmxlKj4oZmFzdFplcm9lZE1h
bGxvYyhQcm9wZXJ0eU1hcEhhc2hUYWJsZTo6YWxsb2NhdGlvblNpemUobmV3VGFibGVTaXplKSkp
OwogICAgIG1fcHJvcGVydHlUYWJsZS0+c2l6ZSA9IG5ld1RhYmxlU2l6ZTsKICAgICBtX3Byb3Bl
cnR5VGFibGUtPnNpemVNYXNrID0gbmV3VGFibGVTaXplIC0gMTsKKyAgICBtX3Byb3BlcnR5VGFi
bGUtPmFub255bW91c1Nsb3RDb3VudCA9IG9sZFRhYmxlLT5hbm9ueW1vdXNTbG90Q291bnQ7CiAK
ICAgICB1bnNpZ25lZCBsYXN0SW5kZXhVc2VkID0gMDsKICAgICB1bnNpZ25lZCBlbnRyeUNvdW50
ID0gb2xkVGFibGUtPmtleUNvdW50ICsgb2xkVGFibGUtPmRlbGV0ZWRTZW50aW5lbENvdW50Owpk
aWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuaCBiL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmgKaW5kZXggOTIwZTU2Yi4uZDBlMTQ2YyAxMDA2NDQK
LS0tIGEvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuaAorKysgYi9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5oCkBAIC02Nyw3ICs2Nyw4IEBAIG5hbWVzcGFjZSBKU0Mg
ewogICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGFkZFByb3BlcnR5VHJhbnNp
dGlvblRvRXhpc3RpbmdTdHJ1Y3R1cmUoU3RydWN0dXJlKiwgY29uc3QgSWRlbnRpZmllciYgcHJv
cGVydHlOYW1lLCB1bnNpZ25lZCBhdHRyaWJ1dGVzLCBKU0NlbGwqIHNwZWNpZmljVmFsdWUsIHNp
emVfdCYgb2Zmc2V0KTsKICAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiByZW1v
dmVQcm9wZXJ0eVRyYW5zaXRpb24oU3RydWN0dXJlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVy
dHlOYW1lLCBzaXplX3QmIG9mZnNldCk7CiAgICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cnVj
dHVyZT4gY2hhbmdlUHJvdG90eXBlVHJhbnNpdGlvbihTdHJ1Y3R1cmUqLCBKU1ZhbHVlIHByb3Rv
dHlwZSk7Ci0gICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4gZGVzcGVjaWZ5RnVu
Y3Rpb25UcmFuc2l0aW9uKFN0cnVjdHVyZSosIGNvbnN0IElkZW50aWZpZXImKTsgICAgICAgIAor
ICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGRlc3BlY2lmeUZ1bmN0aW9uVHJh
bnNpdGlvbihTdHJ1Y3R1cmUqLCBjb25zdCBJZGVudGlmaWVyJik7CisgICAgICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPFN0cnVjdHVyZT4gYWRkQW5vbnltb3VzU2xvdHNUcmFuc2l0aW9uKFN0cnVjdHVy
ZSosIHVuc2lnbmVkIGNvdW50KTsKICAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJl
PiBnZXR0ZXJTZXR0ZXJUcmFuc2l0aW9uKFN0cnVjdHVyZSopOwogICAgICAgICBzdGF0aWMgUGFz
c1JlZlB0cjxTdHJ1Y3R1cmU+IHRvRGljdGlvbmFyeVRyYW5zaXRpb24oU3RydWN0dXJlKik7CiAg
ICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4gZnJvbURpY3Rpb25hcnlUcmFuc2l0
aW9uKFN0cnVjdHVyZSopOwpAQCAtOTMsNyArOTQsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAg
ICAgICB2b2lkIGdyb3dQcm9wZXJ0eVN0b3JhZ2VDYXBhY2l0eSgpOwogICAgICAgICBzaXplX3Qg
cHJvcGVydHlTdG9yYWdlQ2FwYWNpdHkoKSBjb25zdCB7IHJldHVybiBtX3Byb3BlcnR5U3RvcmFn
ZUNhcGFjaXR5OyB9Ci0gICAgICAgIHNpemVfdCBwcm9wZXJ0eVN0b3JhZ2VTaXplKCkgY29uc3Qg
eyByZXR1cm4gbV9wcm9wZXJ0eVRhYmxlID8gbV9wcm9wZXJ0eVRhYmxlLT5rZXlDb3VudCArICht
X3Byb3BlcnR5VGFibGUtPmRlbGV0ZWRPZmZzZXRzID8gbV9wcm9wZXJ0eVRhYmxlLT5kZWxldGVk
T2Zmc2V0cy0+c2l6ZSgpIDogMCkgOiBtX29mZnNldCArIDE7IH0KKyAgICAgICAgc2l6ZV90IHBy
b3BlcnR5U3RvcmFnZVNpemUoKSBjb25zdCB7IHJldHVybiBtX3Byb3BlcnR5VGFibGUgPyBtX3By
b3BlcnR5VGFibGUtPmtleUNvdW50ICsgbV9wcm9wZXJ0eVRhYmxlLT5hbm9ueW1vdXNTbG90Q291
bnQgKyAobV9wcm9wZXJ0eVRhYmxlLT5kZWxldGVkT2Zmc2V0cyA/IG1fcHJvcGVydHlUYWJsZS0+
ZGVsZXRlZE9mZnNldHMtPnNpemUoKSA6IDApIDogbV9vZmZzZXQgKyAxOyB9CiAgICAgICAgIGJv
b2wgaXNVc2luZ0lubGluZVN0b3JhZ2UoKSBjb25zdDsKIAogICAgICAgICBzaXplX3QgZ2V0KGNv
bnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSk7CkBAIC0xMjcsNiArMTI4LDcgQEAgbmFtZXNw
YWNlIEpTQyB7CiAgICAgICAgIFN0cnVjdHVyZShKU1ZhbHVlIHByb3RvdHlwZSwgY29uc3QgVHlw
ZUluZm8mKTsKIAogICAgICAgICBzaXplX3QgcHV0KGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5
TmFtZSwgdW5zaWduZWQgYXR0cmlidXRlcywgSlNDZWxsKiBzcGVjaWZpY1ZhbHVlKTsKKyAgICAg
ICAgc2l6ZV90IHB1dCh1bnNpZ25lZCBzbG90Q291bnQpOwogICAgICAgICBzaXplX3QgcmVtb3Zl
KGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSk7CiAgICAgICAgIHZvaWQgZ2V0RW51bWVy
YWJsZU5hbWVzRnJvbVByb3BlcnR5VGFibGUoUHJvcGVydHlOYW1lQXJyYXkmKTsKICAgICAgICAg
dm9pZCBnZXRFbnVtZXJhYmxlTmFtZXNGcm9tQ2xhc3NJbmZvVGFibGUoRXhlY1N0YXRlKiwgY29u
c3QgQ2xhc3NJbmZvKiwgUHJvcGVydHlOYW1lQXJyYXkmKTsKQEAgLTE4OCw2ICsxOTAsNyBAQCBu
YW1lc3BhY2UgSlNDIHsKICAgICAgICAgYm9vbCBtX2lzUGlubmVkUHJvcGVydHlUYWJsZSA6IDE7
CiAgICAgICAgIGJvb2wgbV9oYXNHZXR0ZXJTZXR0ZXJQcm9wZXJ0aWVzIDogMTsKICAgICAgICAg
dW5zaWduZWQgbV9hdHRyaWJ1dGVzSW5QcmV2aW91cyA6IDc7CisgICAgICAgIHVuc2lnbmVkIG1f
YW5vbnltb3VzU2xvdHNJblByZXZpb3VzIDogNjsKICAgICB9OwogCiAgICAgaW5saW5lIHNpemVf
dCBTdHJ1Y3R1cmU6OmdldChjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpCkBAIC0yODEs
MTAgKzI4NCwxMCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICB7CiAgICAgICAgIEFTU0VSVCh1c2lu
Z1NpbmdsZVRyYW5zaXRpb25TbG90KCkpOwogICAgICAgICBTdHJ1Y3R1cmUqIGV4aXN0aW5nVHJh
bnNpdGlvbiA9IHNpbmdsZVRyYW5zaXRpb24oKTsKLSAgICAgICAgQVNTRVJUKGV4aXN0aW5nVHJh
bnNpdGlvbik7CiAgICAgICAgIFRyYW5zaXRpb25UYWJsZSogdHJhbnNpdGlvblRhYmxlID0gbmV3
IFRyYW5zaXRpb25UYWJsZTsKICAgICAgICAgc2V0VHJhbnNpdGlvblRhYmxlKHRyYW5zaXRpb25U
YWJsZSk7Ci0gICAgICAgIGFkZChtYWtlX3BhaXIoZXhpc3RpbmdUcmFuc2l0aW9uLT5tX25hbWVJ
blByZXZpb3VzLmdldCgpLCBleGlzdGluZ1RyYW5zaXRpb24tPm1fYXR0cmlidXRlc0luUHJldmlv
dXMpLCBleGlzdGluZ1RyYW5zaXRpb24sIGV4aXN0aW5nVHJhbnNpdGlvbi0+bV9zcGVjaWZpY1Zh
bHVlSW5QcmV2aW91cyk7CisgICAgICAgIGlmIChleGlzdGluZ1RyYW5zaXRpb24pCisgICAgICAg
ICAgICBhZGQobWFrZV9wYWlyKGV4aXN0aW5nVHJhbnNpdGlvbi0+bV9uYW1lSW5QcmV2aW91cy5n
ZXQoKSwgZXhpc3RpbmdUcmFuc2l0aW9uLT5tX2F0dHJpYnV0ZXNJblByZXZpb3VzKSwgZXhpc3Rp
bmdUcmFuc2l0aW9uLCBleGlzdGluZ1RyYW5zaXRpb24tPm1fc3BlY2lmaWNWYWx1ZUluUHJldmlv
dXMpOwogICAgIH0KIH0gLy8gbmFtZXNwYWNlIEpTQwogCmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1N0cnVjdHVyZVRyYW5zaXRpb25UYWJsZS5oIGIvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9TdHJ1Y3R1cmVUcmFuc2l0aW9uVGFibGUuaAppbmRleCA3N2E4ZWZiLi4wZmE3Yjcz
IDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZVRyYW5zaXRpb25U
YWJsZS5oCisrKyBiL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlVHJhbnNpdGlvblRh
YmxlLmgKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1
ZGUgPHd0Zi9IYXNoVHJhaXRzLmg+CiAjaW5jbHVkZSA8d3RmL1B0ckFuZEZsYWdzLmg+CisjaW5j
bHVkZSA8d3RmL093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAogbmFtZXNwYWNl
IEpTQyB7CkBAIC02OCw3ICs2OSwzNiBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgIGNsYXNzIFN0
cnVjdHVyZVRyYW5zaXRpb25UYWJsZSB7CiAgICAgICAgIHR5cGVkZWYgc3RkOjpwYWlyPFN0cnVj
dHVyZSosIFN0cnVjdHVyZSo+IFRyYW5zaXRpb247Ci0gICAgICAgIHR5cGVkZWYgSGFzaE1hcDxT
dHJ1Y3R1cmVUcmFuc2l0aW9uVGFibGVIYXNoOjpLZXksIFRyYW5zaXRpb24sIFN0cnVjdHVyZVRy
YW5zaXRpb25UYWJsZUhhc2gsIFN0cnVjdHVyZVRyYW5zaXRpb25UYWJsZUhhc2hUcmFpdHM+IFRy
YW5zaXRpb25UYWJsZTsKKyAgICAgICAgc3RydWN0IFRyYW5zaXRpb25UYWJsZSA6IHB1YmxpYyBI
YXNoTWFwPFN0cnVjdHVyZVRyYW5zaXRpb25UYWJsZUhhc2g6OktleSwgVHJhbnNpdGlvbiwgU3Ry
dWN0dXJlVHJhbnNpdGlvblRhYmxlSGFzaCwgU3RydWN0dXJlVHJhbnNpdGlvblRhYmxlSGFzaFRy
YWl0cz4geworICAgICAgICAgICAgdHlwZWRlZiBIYXNoTWFwPHVuc2lnbmVkLCBTdHJ1Y3R1cmUq
PiBBbm9ueW1vdXNTbG90TWFwOworCisgICAgICAgICAgICB2b2lkIGFkZFNsb3RUcmFuc2l0aW9u
KHVuc2lnbmVkIGNvdW50LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKKyAgICAgICAgICAgIHsKKyAg
ICAgICAgICAgICAgICBBU1NFUlQoIWdldFNsb3RUcmFuc2l0aW9uKGNvdW50KSk7CisgICAgICAg
ICAgICAgICAgaWYgKCFtX2Fub255bW91c1Nsb3RUYWJsZSkKKyAgICAgICAgICAgICAgICAgICAg
bV9hbm9ueW1vdXNTbG90VGFibGUuc2V0KG5ldyBBbm9ueW1vdXNTbG90TWFwKTsKKyAgICAgICAg
ICAgICAgICBtX2Fub255bW91c1Nsb3RUYWJsZS0+YWRkKGNvdW50LCBzdHJ1Y3R1cmUpOworICAg
ICAgICAgICAgfQorCisgICAgICAgICAgICB2b2lkIHJlbW92ZVNsb3RUcmFuc2l0aW9uKHVuc2ln
bmVkIGNvdW50KQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIEFTU0VSVChnZXRTbG90
VHJhbnNpdGlvbihjb3VudCkpOworICAgICAgICAgICAgICAgIG1fYW5vbnltb3VzU2xvdFRhYmxl
LT5yZW1vdmUoY291bnQpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBTdHJ1Y3R1cmUq
IGdldFNsb3RUcmFuc2l0aW9uKHVuc2lnbmVkIGNvdW50KQorICAgICAgICAgICAgeworICAgICAg
ICAgICAgICAgIGlmICghbV9hbm9ueW1vdXNTbG90VGFibGUpCisgICAgICAgICAgICAgICAgICAg
IHJldHVybiAwOworCisgICAgICAgICAgICAgICAgQW5vbnltb3VzU2xvdE1hcDo6aXRlcmF0b3Ig
ZmluZCA9IG1fYW5vbnltb3VzU2xvdFRhYmxlLT5maW5kKGNvdW50KTsKKyAgICAgICAgICAgICAg
ICBpZiAoZmluZCA9PSBtX2Fub255bW91c1Nsb3RUYWJsZS0+ZW5kKCkpCisgICAgICAgICAgICAg
ICAgICAgIHJldHVybiAwOworICAgICAgICAgICAgICAgIHJldHVybiBmaW5kLT5zZWNvbmQ7Cisg
ICAgICAgICAgICB9CisgICAgICAgIHByaXZhdGU6CisgICAgICAgICAgICBPd25QdHI8QW5vbnlt
b3VzU2xvdE1hcD4gbV9hbm9ueW1vdXNTbG90VGFibGU7CisgICAgICAgIH07CiAgICAgcHVibGlj
OgogICAgICAgICBTdHJ1Y3R1cmVUcmFuc2l0aW9uVGFibGUoKSB7CiAgICAgICAgICAgICBtX3Ry
YW5zaXRpb25zLm1fc2luZ2xlVHJhbnNpdGlvbi5zZXQoMCk7CkBAIC0xMjMsNiArMTUzLDI3IEBA
IG5hbWVzcGFjZSBKU0MgewogICAgICAgICAgICAgICAgIHRhYmxlKCktPmFkZChrZXksIFRyYW5z
aXRpb24oMCwgc3RydWN0dXJlKSk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KKworICAgICAg
ICBTdHJ1Y3R1cmUqIGdldEFub255bW91c1Nsb3RUcmFuc2l0aW9uKHVuc2lnbmVkIGNvdW50KQor
ICAgICAgICB7CisgICAgICAgICAgICBpZiAodXNpbmdTaW5nbGVUcmFuc2l0aW9uU2xvdCgpKQor
ICAgICAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICAgcmV0dXJuIHRhYmxlKCktPmdl
dFNsb3RUcmFuc2l0aW9uKGNvdW50KTsKKyAgICAgICAgfQorCisgICAgICAgIHZvaWQgYWRkQW5v
bnltb3VzU2xvdFRyYW5zaXRpb24odW5zaWduZWQgY291bnQsIFN0cnVjdHVyZSogc3RydWN0dXJl
KQorICAgICAgICB7CisgICAgICAgICAgICBpZiAodXNpbmdTaW5nbGVUcmFuc2l0aW9uU2xvdCgp
KQorICAgICAgICAgICAgICAgIHJlaWZ5U2luZ2xlVHJhbnNpdGlvbigpOworICAgICAgICAgICAg
QVNTRVJUKCF0YWJsZSgpLT5nZXRTbG90VHJhbnNpdGlvbihjb3VudCkpOworICAgICAgICAgICAg
dGFibGUoKS0+YWRkU2xvdFRyYW5zaXRpb24oY291bnQsIHN0cnVjdHVyZSk7CisgICAgICAgIH0K
KyAgICAgICAgCisgICAgICAgIHZvaWQgcmVtb3ZlQW5vbnltb3VzU2xvdFRyYW5zaXRpb24odW5z
aWduZWQgY291bnQpCisgICAgICAgIHsKKyAgICAgICAgICAgIEFTU0VSVCghdXNpbmdTaW5nbGVU
cmFuc2l0aW9uU2xvdCgpKTsKKyAgICAgICAgICAgIHRhYmxlKCktPnJlbW92ZVNsb3RUcmFuc2l0
aW9uKGNvdW50KTsKKyAgICAgICAgfQogICAgIHByaXZhdGU6CiAgICAgICAgIFRyYW5zaXRpb25U
YWJsZSogdGFibGUoKSBjb25zdCB7IEFTU0VSVCghdXNpbmdTaW5nbGVUcmFuc2l0aW9uU2xvdCgp
KTsgcmV0dXJuIG1fdHJhbnNpdGlvbnMubV90YWJsZTsgfQogICAgICAgICBTdHJ1Y3R1cmUqIHNp
bmdsZVRyYW5zaXRpb24oKSBjb25zdCB7
</data>
<flag name="review"
          id="20506"
          type_id="1"
          status="-"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>