<?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>127880</bug_id>
          
          <creation_ts>2014-01-29 17:54:31 -0800</creation_ts>
          <short_desc>IDB: Implement IDBObjectStore.delete()</short_desc>
          <delta_ts>2014-02-01 12:56:16 -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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>124521</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Jon Lee">jonlee</reporter>
          <assigned_to name="Brady Eidson">beidson</assigned_to>
          <cc>alecflett</cc>
    
    <cc>commit-queue</cc>
    
    <cc>jsbell</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>973554</commentid>
    <comment_count>0</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2014-01-29 17:54:31 -0800</bug_when>
    <thetext>IDB: Implement IDBObjectStore.delete()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>973557</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2014-01-29 17:55:15 -0800</bug_when>
    <thetext>&lt;rdar://problem/15942888&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>974648</commentid>
    <comment_count>2</comment_count>
      <attachid>222888</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2014-02-01 12:36:39 -0800</bug_when>
    <thetext>Created attachment 222888
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>974649</commentid>
    <comment_count>3</comment_count>
      <attachid>222888</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2014-02-01 12:42:06 -0800</bug_when>
    <thetext>Comment on attachment 222888
Patch v1

View in context: https://bugs.webkit.org/attachment.cgi?id=222888&amp;action=review

&gt; Source/WebKit2/DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.cpp:880
&gt; +    keys.append(cursor-&gt;currentKey());
&gt; +    while (cursor-&gt;advance(1))
&gt; +        keys.append(cursor-&gt;currentKey());

This could probably be a do { } while() loop.

&gt; Source/WebKit2/DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.cpp:892
&gt; +    for (auto key : keys) {

This will probably copy each key, which is not what you want.  Instead use, for (auto&amp; key : keys)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>974650</commentid>
    <comment_count>4</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2014-02-01 12:56:16 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/163249</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>222888</attachid>
            <date>2014-02-01 12:36:39 -0800</date>
            <delta_ts>2014-02-01 12:42:06 -0800</delta_ts>
            <desc>Patch v1</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>19073</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA2ZjY4ZmY3Li5lZWQyMDAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMjMg
QEAKIDIwMTQtMDItMDEgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgogCisgICAg
ICAgIElEQjogSW1wbGVtZW50IElEQk9iamVjdFN0b3JlLmRlbGV0ZSgpCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjc4ODAKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lE
QktleURhdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCS2V5RGF0YTo6Y29tcGFyZSk6IE1h
a2UgdGhpcyBjb25zdC4KKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJLZXlEYXRhLmg6
CisKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJLZXlSYW5nZURhdGEuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SURCS2V5UmFuZ2VEYXRhOjppc0V4YWN0bHlPbmVLZXkpOiBSZXR1cm5z
IHdoZXRoZXIgb3Igbm90CisgICAgICAgICAgdGhlIGtleSByYW5nZSBpcyBrbm93biB0byByZXBy
ZXNlbnQgcHJlY2lzZWx5IG9uZSBrZXkuCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURC
S2V5UmFuZ2VEYXRhLmg6CisKKyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKKworMjAxNC0wMi0w
MSAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CisKICAgICAgICAgSURCOiBJbmRl
eCBjdXJzb3IgY29tcGxldGUgYWR2YW5jZSgpIGFuZCBpdGVyYXRlKCkgc3VwcG9ydAogICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vMTU5NDE5MTY+IGFuZCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTI3ODcwCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQktleURhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCS2V5RGF0YS5jcHAKaW5kZXggZWY2MDk5Yi4uMTUxNzZhMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5RGF0YS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5RGF0YS5jcHAKQEAgLTIwMCw3ICsy
MDAsNyBAQCBib29sIElEQktleURhdGE6OmRlY29kZShLZXllZERlY29kZXImIGRlY29kZXIsIElE
QktleURhdGEmIHJlc3VsdCkKICAgICByZXR1cm4gZGVjb2Rlci5kZWNvZGVPYmplY3RzKCJhcnJh
eSIsIHJlc3VsdC5hcnJheVZhbHVlLCBhcnJheUZ1bmN0aW9uKTsKIH0KIAotaW50IElEQktleURh
dGE6OmNvbXBhcmUoY29uc3QgSURCS2V5RGF0YSYgb3RoZXIpCitpbnQgSURCS2V5RGF0YTo6Y29t
cGFyZShjb25zdCBJREJLZXlEYXRhJiBvdGhlcikgY29uc3QKIHsKICAgICBpZiAodHlwZSA9PSBJ
REJLZXk6OkludmFsaWRUeXBlKSB7CiAgICAgICAgIGlmIChvdGhlci50eXBlICE9IElEQktleTo6
SW52YWxpZFR5cGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJLZXlEYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJLZXlE
YXRhLmgKaW5kZXggNmNhM2M3MS4uOGVmMTcwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvSURCS2V5RGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQktleURhdGEuaApAQCAtNTYsNyArNTYsNyBAQCBzdHJ1Y3QgSURCS2V5
RGF0YSB7CiAgICAgLy8gICAtIFJldHVybnMgbmVnYXRpdmUgaWYgdGhpcyBJREJLZXlEYXRhIGlz
IGxlc3MgdGhhbiBvdGhlci4KICAgICAvLyAgIC0gUmV0dXJucyBwb3NpdGl2ZSBpZiB0aGlzIElE
QktleURhdGEgaXMgZ3JlYXRlciB0aGFuIG90aGVyLgogICAgIC8vICAgLSBSZXR1cm5zIHplcm8g
aWYgdGhpcyBJREJLZXlEYXRhIGlzIGVxdWFsIHRvIG90aGVyLgotICAgIGludCBjb21wYXJlKGNv
bnN0IElEQktleURhdGEmIG90aGVyKTsKKyAgICBpbnQgY29tcGFyZShjb25zdCBJREJLZXlEYXRh
JiBvdGhlcikgY29uc3Q7CiAKICNpZm5kZWYgTkRFQlVHCiAgICAgU3RyaW5nIGxvZ2dpbmdTdHJp
bmcoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L0lEQktleVJhbmdlRGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJLZXlSYW5nZURhdGEuY3BwCmluZGV4IGFmMWZiMjkuLjU1NDYyOTQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQktleVJhbmdlRGF0YS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5UmFuZ2VEYXRhLmNwcApAQCAt
NTEsNiArNTEsMTQgQEAgUGFzc1JlZlB0cjxJREJLZXlSYW5nZT4gSURCS2V5UmFuZ2VEYXRhOjpt
YXliZUNyZWF0ZUlEQktleVJhbmdlKCkgY29uc3QKICAgICByZXR1cm4gSURCS2V5UmFuZ2U6OmNy
ZWF0ZShsb3dlcktleS5tYXliZUNyZWF0ZUlEQktleSgpLCB1cHBlcktleS5tYXliZUNyZWF0ZUlE
QktleSgpLCBsb3dlck9wZW4gPyBJREJLZXlSYW5nZTo6TG93ZXJCb3VuZE9wZW4gOiBJREJLZXlS
YW5nZTo6TG93ZXJCb3VuZENsb3NlZCwgdXBwZXJPcGVuID8gSURCS2V5UmFuZ2U6OlVwcGVyQm91
bmRPcGVuIDogSURCS2V5UmFuZ2U6OlVwcGVyQm91bmRDbG9zZWQpOwogfQogCitib29sIElEQktl
eVJhbmdlRGF0YTo6aXNFeGFjdGx5T25lS2V5KCkgY29uc3QKK3sKKyAgICBpZiAoaXNOdWxsIHx8
IGxvd2VyT3BlbiB8fCB1cHBlck9wZW4pCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHJl
dHVybiAhbG93ZXJLZXkuY29tcGFyZSh1cHBlcktleSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5UmFuZ2VEYXRhLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJLZXlSYW5nZURhdGEuaAppbmRleCBkMzVh
NTQzLi43MTU0MTkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJLZXlSYW5nZURhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJLZXlSYW5nZURhdGEuaApAQCAtNTksNiArNTksOCBAQCBzdHJ1Y3QgSURCS2V5UmFuZ2VE
YXRhIHsKIAogICAgIFBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+IG1heWJlQ3JlYXRlSURCS2V5UmFu
Z2UoKSBjb25zdDsKIAorICAgIGJvb2wgaXNFeGFjdGx5T25lS2V5KCkgY29uc3Q7CisKICAgICBi
b29sIGlzTnVsbDsKIAogICAgIElEQktleURhdGEgbG93ZXJLZXk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmlu
CmluZGV4IGQ5OGQ4YWIuLmE3ZTI5OTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUuZXhwLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC0zMDkyLDEy
ICszMDkyLDEzIEBAIF9fWk5LN1dlYkNvcmUxMElEQktleURhdGExM2xvZ2dpbmdTdHJpbmdFdgog
I2VuZGlmCiBfX1pOSzdXZWJDb3JlMTBJREJLZXlEYXRhMTdtYXliZUNyZWF0ZUlEQktleUV2CiBf
X1pOSzdXZWJDb3JlMTBJREJLZXlEYXRhNmVuY29kZUVSTlNfMTJLZXllZEVuY29kZXJFCitfX1pO
SzdXZWJDb3JlMTBJREJLZXlEYXRhN2NvbXBhcmVFUktTMF8KIF9fWk5LN1dlYkNvcmUxMElEQktl
eVBhdGg2ZW5jb2RlRVJOU18xMktleWVkRW5jb2RlckUKIF9fWk5LN1dlYkNvcmUxMUlEQktleVJh
bmdlOWlzT25seUtleUV2CitfX1pOSzdXZWJDb3JlMTVJREJLZXlSYW5nZURhdGExNWlzRXhhY3Rs
eU9uZUtleUV2CiBfX1pOSzdXZWJDb3JlMTVJREJLZXlSYW5nZURhdGEyMm1heWJlQ3JlYXRlSURC
S2V5UmFuZ2VFdgogX19aTks3V2ViQ29yZTZJREJLZXk3aXNWYWxpZEV2CiBfX1pON1dlYkNvcmUx
MElEQktleURhdGE2ZGVjb2RlRVJOU18xMktleWVkRGVjb2RlckVSUzBfCi1fX1pON1dlYkNvcmUx
MElEQktleURhdGE3Y29tcGFyZUVSS1MwXwogX19aTjdXZWJDb3JlMTBJREJLZXlEYXRhQzFFUEtO
U182SURCS2V5RQogX19aTjdXZWJDb3JlMTBJREJLZXlQYXRoQzFFUktOM1dURjZTdHJpbmdFCiBf
X1pON1dlYkNvcmUxMElEQktleVBhdGhDMUVSS04zV1RGNlZlY3RvcklOUzFfNlN0cmluZ0VMbTBF
TlMxXzE1Q3Jhc2hPbk92ZXJmbG93RUVFCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNmE2MDQxYi4uYTUxOWFhMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQy
L0NoYW5nZUxvZwpAQCAtMSw1ICsxLDMyIEBACiAyMDE0LTAyLTAxICBCcmFkeSBFaWRzb24gIDxi
ZWlkc29uQGFwcGxlLmNvbT4KIAorICAgICAgICBJREI6IEltcGxlbWVudCBJREJPYmplY3RTdG9y
ZS5kZWxldGUoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTI3ODgwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgSW1wbGVtZW50aW5nIElEQk9iamVjdFN0b3JlLmRlbGV0ZSgpIGludm9sdmVzIGZpbGxpbmcg
aW4gdGhlIGFscmVhZHktc3R1YmJlZCBkZWxldGVSYW5nZSgpIG1ldGhvZC4KKworICAgICAgICAq
IERhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvVW5pcXVlSURCRGF0YWJhc2UuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpVbmlxdWVJREJEYXRhYmFzZTo6ZGVsZXRlUmFuZ2VJbkJhY2tpbmdTdG9yZSk6
IENhbGwgdGhyb3VnaCB0byB0aGUgYmFja2luZyBzdG9yZS4KKworICAgICAgICAqIERhdGFiYXNl
UHJvY2Vzcy9JbmRleGVkREIvVW5pcXVlSURCRGF0YWJhc2VCYWNraW5nU3RvcmUuaDoKKyAgICAg
ICAgKiBEYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL3NxbGl0ZS9VbmlxdWVJREJEYXRhYmFzZUJh
Y2tpbmdTdG9yZVNRTGl0ZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlVuaXF1ZUlEQkRhdGFiYXNl
QmFja2luZ1N0b3JlU1FMaXRlOjpkZWxldGVSYW5nZSk6IENhbGwgZGVsZXRlUmVjb3JkIG9uIGVh
Y2gga2V5IHJlcHJlc2VudGVkCisgICAgICAgICAgYnkgdGhlIHBhc3NlZC1pbiBrZXlSYW5nZS4g
VGhpcyBpbnZvbHZlcyBjb2xsZWN0aW5nIGVhY2gga2V5IHVzaW5nIGEgY3Vyc29yLgorICAgICAg
ICAoV2ViS2l0OjpVbmlxdWVJREJEYXRhYmFzZUJhY2tpbmdTdG9yZVNRTGl0ZTo6ZGVsZXRlUmVj
b3JkKTogRGVsZXRlIGFuIGluZGl2aWR1YWwgcmVjb3JkIGZyb20gdGhlCisgICAgICAgICAgb2Jq
ZWN0IHN0b3JlIGFuZCBhbGwgYXNzb2NpYXRlZCBpbmRleGVzLgorICAgICAgICAqIERhdGFiYXNl
UHJvY2Vzcy9JbmRleGVkREIvc3FsaXRlL1VuaXF1ZUlEQkRhdGFiYXNlQmFja2luZ1N0b3JlU1FM
aXRlLmg6CisKKyAgICAgICAgVGVhY2ggdGhlIFNRTGl0ZUlEQkN1cnNvciB0byByZW1lbWJlciBp
ZiBpdCBlbmRlZCBpbiBhbiBlcnJvciBjb25kaXRpb246CisgICAgICAgICogRGF0YWJhc2VQcm9j
ZXNzL0luZGV4ZWREQi9zcWxpdGUvU1FMaXRlSURCQ3Vyc29yLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6U1FMaXRlSURCQ3Vyc29yOjpTUUxpdGVJREJDdXJzb3IpOgorICAgICAgICAoV2ViS2l0OjpT
UUxpdGVJREJDdXJzb3I6OmFkdmFuY2VPbmNlKToKKyAgICAgICAgKiBEYXRhYmFzZVByb2Nlc3Mv
SW5kZXhlZERCL3NxbGl0ZS9TUUxpdGVJREJDdXJzb3IuaDoKKyAgICAgICAgKFdlYktpdDo6U1FM
aXRlSURCQ3Vyc29yOjpkaWRFcnJvcik6CisKKzIwMTQtMDItMDEgIEJyYWR5IEVpZHNvbiAgPGJl
aWRzb25AYXBwbGUuY29tPgorCiAgICAgICAgIElEQjogSW5kZXggcmVhZGluZwogICAgICAgICA8
cmRhcjovL3Byb2JsZW0vMTU4OTk5NzM+IGFuZCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTI3ODY4CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNl
UHJvY2Vzcy9JbmRleGVkREIvVW5pcXVlSURCRGF0YWJhc2UuY3BwIGIvU291cmNlL1dlYktpdDIv
RGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9VbmlxdWVJREJEYXRhYmFzZS5jcHAKaW5kZXggYzg0
ZTA0NC4uNDI5YmNlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNz
L0luZGV4ZWREQi9VbmlxdWVJREJEYXRhYmFzZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvRGF0
YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9VbmlxdWVJREJEYXRhYmFzZS5jcHAKQEAgLTk4OSwxMSAr
OTg5LDE0IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OmRpZENvdW50SW5CYWNraW5nU3RvcmUo
dWludDY0X3QgcmVxdWVzdElELCBpbnQ2NF90IGNvdW50CiAgICAgcmVxdWVzdC0+Y29tcGxldGVS
ZXF1ZXN0KGNvdW50LCBlcnJvckNvZGUsIGVycm9yTWVzc2FnZSk7CiB9CiAKLXZvaWQgVW5pcXVl
SURCRGF0YWJhc2U6OmRlbGV0ZVJhbmdlSW5CYWNraW5nU3RvcmUodWludDY0X3QgcmVxdWVzdElE
LCBjb25zdCBJREJJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIGludDY0X3Qgb2Jq
ZWN0U3RvcmVJRCwgY29uc3QgSURCS2V5UmFuZ2VEYXRhJikKK3ZvaWQgVW5pcXVlSURCRGF0YWJh
c2U6OmRlbGV0ZVJhbmdlSW5CYWNraW5nU3RvcmUodWludDY0X3QgcmVxdWVzdElELCBjb25zdCBJ
REJJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIGludDY0X3Qgb2JqZWN0U3RvcmVJ
RCwgY29uc3QgSURCS2V5UmFuZ2VEYXRhJiBrZXlSYW5nZURhdGEpCiB7Ci0gICAgLy8gRklYTUU6
IEltcGxlbWVudAorICAgIGlmICghbV9iYWNraW5nU3RvcmUtPmRlbGV0ZVJhbmdlKHRyYW5zYWN0
aW9uSWRlbnRpZmllciwgb2JqZWN0U3RvcmVJRCwga2V5UmFuZ2VEYXRhKSkgeworICAgICAgICBM
T0dfRVJST1IoIkZhaWxlZCB0byBkZWxldGUgcmFuZ2UgZnJvbSBiYWNraW5nIHN0b3JlLiIpOwor
ICAgICAgICBwb3N0TWFpblRocmVhZFRhc2soY3JlYXRlQXN5bmNUYXNrKCp0aGlzLCAmVW5pcXVl
SURCRGF0YWJhc2U6OmRpZERlbGV0ZVJhbmdlSW5CYWNraW5nU3RvcmUsIHJlcXVlc3RJRCwgSURC
RGF0YWJhc2VFeGNlcHRpb246OlVua25vd25FcnJvciwgQVNDSUlMaXRlcmFsKCJGYWlsZWQgdG8g
Z2V0IGNvdW50IGZyb20gYmFja2luZyBzdG9yZSIpKSk7CisgICAgfQogCi0gICAgcG9zdE1haW5U
aHJlYWRUYXNrKGNyZWF0ZUFzeW5jVGFzaygqdGhpcywgJlVuaXF1ZUlEQkRhdGFiYXNlOjpkaWRE
ZWxldGVSYW5nZUluQmFja2luZ1N0b3JlLCByZXF1ZXN0SUQsIElEQkRhdGFiYXNlRXhjZXB0aW9u
OjpVbmtub3duRXJyb3IsIEFTQ0lJTGl0ZXJhbCgiZGVsZXRlUmFuZ2UgaW4gYmFja2luZyBzdG9y
ZSBub3Qgc3VwcG9ydGVkIHlldCIpKSk7CisgICAgcG9zdE1haW5UaHJlYWRUYXNrKGNyZWF0ZUFz
eW5jVGFzaygqdGhpcywgJlVuaXF1ZUlEQkRhdGFiYXNlOjpkaWREZWxldGVSYW5nZUluQmFja2lu
Z1N0b3JlLCByZXF1ZXN0SUQsIDAsIFN0cmluZyhTdHJpbmdJbXBsOjplbXB0eSgpKSkpOwogfQog
CiB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpkaWREZWxldGVSYW5nZUluQmFja2luZ1N0b3JlKHVp
bnQ2NF90IHJlcXVlc3RJRCwgdWludDMyX3QgZXJyb3JDb2RlLCBjb25zdCBTdHJpbmcmIGVycm9y
TWVzc2FnZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9JbmRl
eGVkREIvVW5pcXVlSURCRGF0YWJhc2VCYWNraW5nU3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQyL0Rh
dGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvVW5pcXVlSURCRGF0YWJhc2VCYWNraW5nU3RvcmUuaApp
bmRleCA2OGFhYTUwLi5kMWE5M2I4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFz
ZVByb2Nlc3MvSW5kZXhlZERCL1VuaXF1ZUlEQkRhdGFiYXNlQmFja2luZ1N0b3JlLmgKKysrIGIv
U291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9VbmlxdWVJREJEYXRhYmFz
ZUJhY2tpbmdTdG9yZS5oCkBAIC03MCw2ICs3MCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJv
b2wgcHV0UmVjb3JkKGNvbnN0IElEQklkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwg
aW50NjRfdCBvYmplY3RTdG9yZUlELCBjb25zdCBXZWJDb3JlOjpJREJLZXkmLCBjb25zdCB1aW50
OF90KiB2YWx1ZUJ1ZmZlciwgc2l6ZV90IHZhbHVlU2l6ZSkgPSAwOwogICAgIHZpcnR1YWwgYm9v
bCBwdXRJbmRleFJlY29yZChjb25zdCBJREJJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZp
ZXIsIGludDY0X3Qgb2JqZWN0U3RvcmVJRCwgaW50NjRfdCBpbmRleElELCBjb25zdCBXZWJDb3Jl
OjpJREJLZXlEYXRhJiwgY29uc3QgV2ViQ29yZTo6SURCS2V5RGF0YSYgaW5kZXhLZXkpID0gMDsK
ICAgICB2aXJ0dWFsIGJvb2wgZ2V0SW5kZXhSZWNvcmQoY29uc3QgSURCSWRlbnRpZmllciYgdHJh
bnNhY3Rpb25JZGVudGlmaWVyLCBpbnQ2NF90IG9iamVjdFN0b3JlSUQsIGludDY0X3QgaW5kZXhJ
RCwgY29uc3QgV2ViQ29yZTo6SURCS2V5UmFuZ2VEYXRhJiwgUmVmUHRyPFdlYkNvcmU6OlNoYXJl
ZEJ1ZmZlcj4mIHJlc3VsdCkgPSAwOworICAgIHZpcnR1YWwgYm9vbCBkZWxldGVSYW5nZShjb25z
dCBJREJJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIGludDY0X3Qgb2JqZWN0U3Rv
cmVJRCwgY29uc3QgV2ViQ29yZTo6SURCS2V5UmFuZ2VEYXRhJikgPSAwOwogCiAgICAgdmlydHVh
bCBib29sIGdldEtleVJlY29yZEZyb21PYmplY3RTdG9yZShjb25zdCBJREJJZGVudGlmaWVyJiB0
cmFuc2FjdGlvbklkZW50aWZpZXIsIGludDY0X3Qgb2JqZWN0U3RvcmVJRCwgY29uc3QgV2ViQ29y
ZTo6SURCS2V5JiwgUmVmUHRyPFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcj4mIHJlc3VsdCkgPSAwOwog
ICAgIHZpcnR1YWwgYm9vbCBnZXRLZXlSYW5nZVJlY29yZEZyb21PYmplY3RTdG9yZShjb25zdCBJ
REJJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIGludDY0X3Qgb2JqZWN0U3RvcmVJ
RCwgY29uc3QgV2ViQ29yZTo6SURCS2V5UmFuZ2UmLCBSZWZQdHI8V2ViQ29yZTo6U2hhcmVkQnVm
ZmVyPiYgcmVzdWx0LCBSZWZQdHI8V2ViQ29yZTo6SURCS2V5PiYgcmVzdWx0S2V5KSA9IDA7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL3NxbGl0
ZS9TUUxpdGVJREJDdXJzb3IuY3BwIGIvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0lu
ZGV4ZWREQi9zcWxpdGUvU1FMaXRlSURCQ3Vyc29yLmNwcAppbmRleCBjNmE2YzQ5Li42NDk0ODcx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL3Nx
bGl0ZS9TUUxpdGVJREJDdXJzb3IuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJv
Y2Vzcy9JbmRleGVkREIvc3FsaXRlL1NRTGl0ZUlEQkN1cnNvci5jcHAKQEAgLTU5LDYgKzU5LDcg
QEAgU1FMaXRlSURCQ3Vyc29yOjpTUUxpdGVJREJDdXJzb3IoU1FMaXRlSURCVHJhbnNhY3Rpb24q
IHRyYW5zYWN0aW9uLCBjb25zdCBJREJJZGUKICAgICAsIG1fY3Vyc29yRGlyZWN0aW9uKGN1cnNv
ckRpcmVjdGlvbikKICAgICAsIG1fa2V5UmFuZ2Uoa2V5UmFuZ2UpCiAgICAgLCBtX2NvbXBsZXRl
ZChmYWxzZSkKKyAgICAsIG1fZXJyb3JlZChmYWxzZSkKIHsKICAgICBBU1NFUlQobV9vYmplY3RT
dG9yZUlEKTsKIH0KQEAgLTI2Miw2ICsyNjMsNyBAQCBib29sIFNRTGl0ZUlEQkN1cnNvcjo6YWR2
YW5jZU9uY2UoKQogICAgIGlmIChyZXN1bHQgIT0gU1FMUmVzdWx0Um93KSB7CiAgICAgICAgIExP
R19FUlJPUigiRXJyb3IgYWR2YW5jaW5nIGN1cnNvciAtICglaSkgJXMiLCByZXN1bHQsIG1fdHJh
bnNhY3Rpb24tPnNxbGl0ZVRyYW5zYWN0aW9uKCktPmRhdGFiYXNlKCkubGFzdEVycm9yTXNnKCkp
OwogICAgICAgICBtX2NvbXBsZXRlZCA9IHRydWU7CisgICAgICAgIG1fZXJyb3JlZCA9IHRydWU7
CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKQEAgLTI3Miw2ICsyNzQsNyBAQCBib29s
IFNRTGl0ZUlEQkN1cnNvcjo6YWR2YW5jZU9uY2UoKQogICAgIGlmICghZGVzZXJpYWxpemVJREJL
ZXlEYXRhKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDhfdCo+KGtleURhdGEuZGF0YSgpKSwg
a2V5RGF0YS5zaXplKCksIGtleSkpIHsKICAgICAgICAgTE9HX0VSUk9SKCJVbmFibGUgdG8gZGVz
ZXJpYWxpemUga2V5IGRhdGEgZnJvbSBkYXRhYmFzZSB3aGlsZSBhZHZhbmNpbmcgY3Vyc29yIik7
CiAgICAgICAgIG1fY29tcGxldGVkID0gdHJ1ZTsKKyAgICAgICAgbV9lcnJvcmVkID0gdHJ1ZTsK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIApAQCAtMjg1LDYgKzI4OCw3IEBAIGJvb2wg
U1FMaXRlSURCQ3Vyc29yOjphZHZhbmNlT25jZSgpCiAgICAgICAgIGlmICghZGVzZXJpYWxpemVJ
REJLZXlEYXRhKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDhfdCo+KGtleURhdGEuZGF0YSgp
KSwga2V5RGF0YS5zaXplKCksIG1fY3VycmVudFZhbHVlS2V5KSkgewogICAgICAgICAgICAgTE9H
X0VSUk9SKCJVbmFibGUgdG8gZGVzZXJpYWxpemUgdmFsdWUgZGF0YSBmcm9tIGRhdGFiYXNlIHdo
aWxlIGFkdmFuY2luZyBpbmRleCBjdXJzb3IiKTsKICAgICAgICAgICAgIG1fY29tcGxldGVkID0g
dHJ1ZTsKKyAgICAgICAgICAgIG1fZXJyb3JlZCA9IHRydWU7CiAgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CiAgICAgICAgIH0KIApAQCAtMjk1LDYgKzI5OSw4IEBAIGJvb2wgU1FMaXRlSURCQ3Vy
c29yOjphZHZhbmNlT25jZSgpCiAgICAgICAgICAgICB8fCBvYmplY3RTdG9yZVN0YXRlbWVudC5i
aW5kSW50NjQoMiwgbV9vYmplY3RTdG9yZUlEKSAhPSBTUUxSZXN1bHRPawogICAgICAgICAgICAg
fHwgb2JqZWN0U3RvcmVTdGF0ZW1lbnQuc3RlcCgpICE9IFNRTFJlc3VsdFJvdykgewogICAgICAg
ICAgICAgTE9HX0VSUk9SKCJDb3VsZCBub3QgY3JlYXRlIGluZGV4IGN1cnNvciBzdGF0ZW1lbnQg
aW50byBvYmplY3Qgc3RvcmUgcmVjb3JkcyIpOworICAgICAgICAgICAgbV9jb21wbGV0ZWQgPSB0
cnVlOworICAgICAgICAgICAgbV9lcnJvcmVkID0gdHJ1ZTsKICAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKICAgICAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVBy
b2Nlc3MvSW5kZXhlZERCL3NxbGl0ZS9TUUxpdGVJREJDdXJzb3IuaCBiL1NvdXJjZS9XZWJLaXQy
L0RhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvc3FsaXRlL1NRTGl0ZUlEQkN1cnNvci5oCmluZGV4
IDY0MDk1MmUuLjJiNGZkODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJv
Y2Vzcy9JbmRleGVkREIvc3FsaXRlL1NRTGl0ZUlEQkN1cnNvci5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL0RhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvc3FsaXRlL1NRTGl0ZUlEQkN1cnNvci5oCkBA
IC02NCw2ICs2NCw4IEBAIHB1YmxpYzoKICAgICBib29sIGFkdmFuY2UodWludDY0X3QgY291bnQp
OwogICAgIGJvb2wgaXRlcmF0ZShjb25zdCBXZWJDb3JlOjpJREJLZXlEYXRhJiB0YXJnZXRLZXkp
OwogCisgICAgYm9vbCBkaWRFcnJvcigpIGNvbnN0IHsgcmV0dXJuIG1fZXJyb3JlZDsgfQorCiBw
cml2YXRlOgogICAgIFNRTGl0ZUlEQkN1cnNvcihTUUxpdGVJREJUcmFuc2FjdGlvbiosIGNvbnN0
IElEQklkZW50aWZpZXImIGN1cnNvcklkZW50aWZpZXIsIGludDY0X3Qgb2JqZWN0U3RvcmVJRCwg
aW50NjRfdCBpbmRleElELCBXZWJDb3JlOjpJbmRleGVkREI6OkN1cnNvckRpcmVjdGlvbiwgV2Vi
Q29yZTo6SW5kZXhlZERCOjpDdXJzb3JUeXBlLCBXZWJDb3JlOjpJREJEYXRhYmFzZUJhY2tlbmQ6
OlRhc2tUeXBlLCBjb25zdCBXZWJDb3JlOjpJREJLZXlSYW5nZURhdGEmKTsKIApAQCAtODgsNiAr
OTAsNyBAQCBwcml2YXRlOgogICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpTUUxpdGVTdGF0
ZW1lbnQ+IG1fc3RhdGVtZW50OwogCiAgICAgYm9vbCBtX2NvbXBsZXRlZDsKKyAgICBib29sIG1f
ZXJyb3JlZDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9zcWxpdGUvVW5pcXVlSURCRGF0YWJh
c2VCYWNraW5nU3RvcmVTUUxpdGUuY3BwIGIvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNz
L0luZGV4ZWREQi9zcWxpdGUvVW5pcXVlSURCRGF0YWJhc2VCYWNraW5nU3RvcmVTUUxpdGUuY3Bw
CmluZGV4IDQ4MTdmMzYuLmRiODMyYTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0RhdGFi
YXNlUHJvY2Vzcy9JbmRleGVkREIvc3FsaXRlL1VuaXF1ZUlEQkRhdGFiYXNlQmFja2luZ1N0b3Jl
U1FMaXRlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERC
L3NxbGl0ZS9VbmlxdWVJREJEYXRhYmFzZUJhY2tpbmdTdG9yZVNRTGl0ZS5jcHAKQEAgLTgzOCw2
ICs4MzgsMTA4IEBAIGJvb2wgVW5pcXVlSURCRGF0YWJhc2VCYWNraW5nU3RvcmVTUUxpdGU6Omdl
dEluZGV4UmVjb3JkKGNvbnN0IElEQklkZW50aWZpZXImIHRyCiAgICAgcmV0dXJuIHRydWU7CiB9
CiAKK2Jvb2wgVW5pcXVlSURCRGF0YWJhc2VCYWNraW5nU3RvcmVTUUxpdGU6OmRlbGV0ZVJhbmdl
KGNvbnN0IElEQklkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgaW50NjRfdCBvYmpl
Y3RTdG9yZUlELCBjb25zdCBJREJLZXlSYW5nZURhdGEmIGtleVJhbmdlRGF0YSkKK3sKKyAgICBB
U1NFUlQoIWlzTWFpblRocmVhZCgpKTsKKyAgICBBU1NFUlQobV9zcWxpdGVEQik7CisgICAgQVNT
RVJUKG1fc3FsaXRlREItPmlzT3BlbigpKTsKKworICAgIFNRTGl0ZUlEQlRyYW5zYWN0aW9uKiB0
cmFuc2FjdGlvbiA9IG1fdHJhbnNhY3Rpb25zLmdldCh0cmFuc2FjdGlvbklkZW50aWZpZXIpOwor
ICAgIGlmICghdHJhbnNhY3Rpb24gfHwgIXRyYW5zYWN0aW9uLT5pblByb2dyZXNzKCkpIHsKKyAg
ICAgICAgTE9HX0VSUk9SKCJBdHRlbXB0IHRvIGdldCBjb3VudCBmcm9tIGRhdGFiYXNlIHdpdGhv
dXQgYW4gZXN0YWJsaXNoZWQsIGluLXByb2dyZXNzIHRyYW5zYWN0aW9uIik7CisgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBpZiAodHJhbnNhY3Rpb24tPm1vZGUoKSA9PSBJbmRl
eGVkREI6OlRyYW5zYWN0aW9uTW9kZTo6UmVhZE9ubHkpIHsKKyAgICAgICAgTE9HX0VSUk9SKCJB
dHRlbXB0IHRvIGRlbGV0ZSByYW5nZSBmcm9tIGEgcmVhZC1vbmx5IHRyYW5zYWN0aW9uIik7Cisg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICAvLyBJZiB0aGUgcmFuZ2UgdG8gZGVs
ZXRlIGlzIGV4YWN0bHkgb25lIGtleSB3ZSBjYW4gZGVsZXRlIGl0IHJpZ2h0IG5vdy4KKyAgICBp
ZiAoa2V5UmFuZ2VEYXRhLmlzRXhhY3RseU9uZUtleSgpKSB7CisgICAgICAgIGlmICghZGVsZXRl
UmVjb3JkKCp0cmFuc2FjdGlvbiwgb2JqZWN0U3RvcmVJRCwga2V5UmFuZ2VEYXRhLmxvd2VyS2V5
KSkgeworICAgICAgICAgICAgTE9HX0VSUk9SKCJGYWlsZWQgdG8gZGVsZXRlIHJlY29yZCBmb3Ig
a2V5ICclcyciLCBrZXlSYW5nZURhdGEubG93ZXJLZXkubG9nZ2luZ1N0cmluZygpLnV0ZjgoKS5k
YXRhKCkpOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIHJl
dHVybiB0cnVlOworICAgIH0KKworICAgIC8vIE90aGVyd2lzZSB0aGUgcmFuZ2UgbWlnaHQgc3Bh
biBtdWx0aXBsZSBrZXlzIHNvIHdlIGNvbGxlY3QgdGhlbSB3aXRoIGEgY3Vyc29yLgorICAgIFNR
TGl0ZUlEQkN1cnNvciogY3Vyc29yID0gdHJhbnNhY3Rpb24tPm9wZW5DdXJzb3Iob2JqZWN0U3Rv
cmVJRCwgSURCSW5kZXhNZXRhZGF0YTo6SW52YWxpZElkLCBJbmRleGVkREI6OkN1cnNvckRpcmVj
dGlvbjo6TmV4dCwgSW5kZXhlZERCOjpDdXJzb3JUeXBlOjpLZXlBbmRWYWx1ZSwgSURCRGF0YWJh
c2VCYWNrZW5kOjpOb3JtYWxUYXNrLCBrZXlSYW5nZURhdGEpOworCisgICAgaWYgKCFjdXJzb3Ip
IHsKKyAgICAgICAgTE9HX0VSUk9SKCJDYW5ub3Qgb3BlbiBjdXJzb3IgdG8gcGVyZm9ybSBpbmRl
eCBnZXQgaW4gZGF0YWJhc2UiKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAg
IG1fY3Vyc29ycy5zZXQoY3Vyc29yLT5pZGVudGlmaWVyKCksIGN1cnNvcik7CisKKyAgICBWZWN0
b3I8SURCS2V5RGF0YT4ga2V5czsKKyAgICBrZXlzLmFwcGVuZChjdXJzb3ItPmN1cnJlbnRLZXko
KSk7CisgICAgd2hpbGUgKGN1cnNvci0+YWR2YW5jZSgxKSkKKyAgICAgICAga2V5cy5hcHBlbmQo
Y3Vyc29yLT5jdXJyZW50S2V5KCkpOworCisgICAgYm9vbCBjdXJzb3JEaWRFcnJvciA9IGN1cnNv
ci0+ZGlkRXJyb3IoKTsKKworICAgIC8vIGNsb3NlQ3Vyc29yKCkgd2lsbCByZW1vdmUgdGhlIGN1
cnNvciBmcm9tIG1fY3Vyc29ycyBhbmQgZGVsZXRlIHRoZSBjdXJzb3Igb2JqZWN0CisgICAgdHJh
bnNhY3Rpb24tPmNsb3NlQ3Vyc29yKCpjdXJzb3IpOworCisgICAgaWYgKGN1cnNvckRpZEVycm9y
KSB7CisgICAgICAgIExPR19FUlJPUigiVW5hYmxlIHRvIGl0ZXJhdGUgb3ZlciBvYmplY3Qgc3Rv
cmUgdG8gZGVsZXRlUmFuZ2UgaW4gZGF0YWJhc2UiKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgIH0KKworICAgIGZvciAoYXV0byBrZXkgOiBrZXlzKSB7CisgICAgICAgIGlmICghZGVsZXRl
UmVjb3JkKCp0cmFuc2FjdGlvbiwgb2JqZWN0U3RvcmVJRCwga2V5KSkgeworICAgICAgICAgICAg
TE9HX0VSUk9SKCJGYWlsZWQgdG8gZGVsZXRlIHJlY29yZCBmb3Iga2V5ICclcyciLCBrZXkubG9n
Z2luZ1N0cmluZygpLnV0ZjgoKS5kYXRhKCkpOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgICAgICB9CisgICAgfQorCisgICAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgVW5pcXVlSURC
RGF0YWJhc2VCYWNraW5nU3RvcmVTUUxpdGU6OmRlbGV0ZVJlY29yZChTUUxpdGVJREJUcmFuc2Fj
dGlvbiYgdHJhbnNhY3Rpb24sIGludDY0X3Qgb2JqZWN0U3RvcmVJRCwgY29uc3QgV2ViQ29yZTo6
SURCS2V5RGF0YSYga2V5KQoreworICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkpOworICAgIEFT
U0VSVChtX3NxbGl0ZURCKTsKKyAgICBBU1NFUlQobV9zcWxpdGVEQi0+aXNPcGVuKCkpOworCisg
ICAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4ga2V5QnVmZmVyID0gc2VyaWFsaXplSURCS2V5RGF0YShr
ZXkpOworICAgIGlmICgha2V5QnVmZmVyKSB7CisgICAgICAgIExPR19FUlJPUigiVW5hYmxlIHRv
IHNlcmlhbGl6ZSBJREJLZXlEYXRhIHRvIGJlIHJlbW92ZWQgZnJvbSB0aGUgZGF0YWJhc2UiKTsK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIC8vIERlbGV0ZSByZWNvcmQgZnJv
bSBvYmplY3Qgc3RvcmUKKyAgICB7CisgICAgICAgIFNRTGl0ZVN0YXRlbWVudCBzcWwoKm1fc3Fs
aXRlREIsIEFTQ0lJTGl0ZXJhbCgiREVMRVRFIEZST00gUmVjb3JkcyBXSEVSRSBvYmplY3RTdG9y
ZUlEID0gPyBBTkQga2V5ID0gQ0FTVCg/IEFTIFRFWFQpOyIpKTsKKworICAgICAgICBpZiAoc3Fs
LnByZXBhcmUoKSAhPSBTUUxSZXN1bHRPaworICAgICAgICAgICAgfHwgc3FsLmJpbmRJbnQ2NCgx
LCBvYmplY3RTdG9yZUlEKSAhPSBTUUxSZXN1bHRPaworICAgICAgICAgICAgfHwgc3FsLmJpbmRC
bG9iKDIsIGtleUJ1ZmZlci0+ZGF0YSgpLCBrZXlCdWZmZXItPnNpemUoKSkgIT0gU1FMUmVzdWx0
T2sKKyAgICAgICAgICAgIHx8IHNxbC5zdGVwKCkgIT0gU1FMUmVzdWx0RG9uZSkgeworICAgICAg
ICAgICAgTE9HX0VSUk9SKCJDb3VsZCBub3QgZGVsZXRlIHJlY29yZCBmcm9tIG9iamVjdCBzdG9y
ZSAlbGxpICglaSkgLSAlcyIsIG9iamVjdFN0b3JlSUQsIG1fc3FsaXRlREItPmxhc3RFcnJvcigp
LCBtX3NxbGl0ZURCLT5sYXN0RXJyb3JNc2coKSk7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLyBEZWxldGUgcmVjb3JkIGZyb20gaW5kZXhlcyBz
dG9yZQorICAgIHsKKyAgICAgICAgU1FMaXRlU3RhdGVtZW50IHNxbCgqbV9zcWxpdGVEQiwgQVND
SUlMaXRlcmFsKCJERUxFVEUgRlJPTSBJbmRleFJlY29yZHMgV0hFUkUgb2JqZWN0U3RvcmVJRCA9
ID8gQU5EIHZhbHVlID0gQ0FTVCg/IEFTIFRFWFQpOyIpKTsKKworICAgICAgICBpZiAoc3FsLnBy
ZXBhcmUoKSAhPSBTUUxSZXN1bHRPaworICAgICAgICAgICAgfHwgc3FsLmJpbmRJbnQ2NCgxLCBv
YmplY3RTdG9yZUlEKSAhPSBTUUxSZXN1bHRPaworICAgICAgICAgICAgfHwgc3FsLmJpbmRCbG9i
KDIsIGtleUJ1ZmZlci0+ZGF0YSgpLCBrZXlCdWZmZXItPnNpemUoKSkgIT0gU1FMUmVzdWx0T2sK
KyAgICAgICAgICAgIHx8IHNxbC5zdGVwKCkgIT0gU1FMUmVzdWx0RG9uZSkgeworICAgICAgICAg
ICAgTE9HX0VSUk9SKCJDb3VsZCBub3QgZGVsZXRlIHJlY29yZCBmcm9tIGluZGV4ZXMgZm9yIG9i
amVjdCBzdG9yZSAlbGxpICglaSkgLSAlcyIsIG9iamVjdFN0b3JlSUQsIG1fc3FsaXRlREItPmxh
c3RFcnJvcigpLCBtX3NxbGl0ZURCLT5sYXN0RXJyb3JNc2coKSk7CisgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogYm9v
bCBVbmlxdWVJREJEYXRhYmFzZUJhY2tpbmdTdG9yZVNRTGl0ZTo6Z2V0S2V5UmVjb3JkRnJvbU9i
amVjdFN0b3JlKGNvbnN0IElEQklkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgaW50
NjRfdCBvYmplY3RTdG9yZUlELCBjb25zdCBJREJLZXkmIGtleSwgUmVmUHRyPFNoYXJlZEJ1ZmZl
cj4mIHJlc3VsdCkKIHsKICAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvc3FsaXRlL1VuaXF1ZUlE
QkRhdGFiYXNlQmFja2luZ1N0b3JlU1FMaXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVBy
b2Nlc3MvSW5kZXhlZERCL3NxbGl0ZS9VbmlxdWVJREJEYXRhYmFzZUJhY2tpbmdTdG9yZVNRTGl0
ZS5oCmluZGV4IDE0MThhNmIuLjY3ZDc5MGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0Rh
dGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvc3FsaXRlL1VuaXF1ZUlEQkRhdGFiYXNlQmFja2luZ1N0
b3JlU1FMaXRlLmgKKysrIGIvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWRE
Qi9zcWxpdGUvVW5pcXVlSURCRGF0YWJhc2VCYWNraW5nU3RvcmVTUUxpdGUuaApAQCAtNzUsNiAr
NzUsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIHB1dFJlY29yZChjb25zdCBJREJJZGVu
dGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIGludDY0X3Qgb2JqZWN0U3RvcmVJRCwgY29u
c3QgV2ViQ29yZTo6SURCS2V5JiwgY29uc3QgdWludDhfdCogdmFsdWVCdWZmZXIsIHNpemVfdCB2
YWx1ZVNpemUpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBwdXRJbmRleFJlY29yZChjb25z
dCBJREJJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIGludDY0X3Qgb2JqZWN0U3Rv
cmVJRCwgaW50NjRfdCBpbmRleElELCBjb25zdCBXZWJDb3JlOjpJREJLZXlEYXRhJiBrZXlWYWx1
ZSwgY29uc3QgV2ViQ29yZTo6SURCS2V5RGF0YSYgaW5kZXhLZXkpIG92ZXJyaWRlOwogICAgIHZp
cnR1YWwgYm9vbCBnZXRJbmRleFJlY29yZChjb25zdCBJREJJZGVudGlmaWVyJiB0cmFuc2FjdGlv
bklkZW50aWZpZXIsIGludDY0X3Qgb2JqZWN0U3RvcmVJRCwgaW50NjRfdCBpbmRleElELCBjb25z
dCBXZWJDb3JlOjpJREJLZXlSYW5nZURhdGEmLCBSZWZQdHI8V2ViQ29yZTo6U2hhcmVkQnVmZmVy
PiYgcmVzdWx0KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgZGVsZXRlUmFuZ2UoY29uc3Qg
SURCSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCBpbnQ2NF90IG9iamVjdFN0b3Jl
SUQsIGNvbnN0IFdlYkNvcmU6OklEQktleVJhbmdlRGF0YSYpIG92ZXJyaWRlOwogCiAgICAgdmly
dHVhbCBib29sIGdldEtleVJlY29yZEZyb21PYmplY3RTdG9yZShjb25zdCBJREJJZGVudGlmaWVy
JiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIGludDY0X3Qgb2JqZWN0U3RvcmVJRCwgY29uc3QgV2Vi
Q29yZTo6SURCS2V5JiwgUmVmUHRyPFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcj4mIHJlc3VsdCkgb3Zl
cnJpZGU7CiAgICAgdmlydHVhbCBib29sIGdldEtleVJhbmdlUmVjb3JkRnJvbU9iamVjdFN0b3Jl
KGNvbnN0IElEQklkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgaW50NjRfdCBvYmpl
Y3RTdG9yZUlELCBjb25zdCBXZWJDb3JlOjpJREJLZXlSYW5nZSYsIFJlZlB0cjxXZWJDb3JlOjpT
aGFyZWRCdWZmZXI+JiByZXN1bHQsIFJlZlB0cjxXZWJDb3JlOjpJREJLZXk+JiByZXN1bHRLZXkp
IG92ZXJyaWRlOwpAQCAtOTMsNiArOTQsOCBAQCBwcml2YXRlOgogICAgIHN0ZDo6dW5pcXVlX3B0
cjxXZWJDb3JlOjpJREJEYXRhYmFzZU1ldGFkYXRhPiBleHRyYWN0RXhpc3RpbmdNZXRhZGF0YSgp
OwogICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpJREJEYXRhYmFzZU1ldGFkYXRhPiBjcmVh
dGVBbmRQb3B1bGF0ZUluaXRpYWxNZXRhZGF0YSgpOwogCisgICAgYm9vbCBkZWxldGVSZWNvcmQo
U1FMaXRlSURCVHJhbnNhY3Rpb24mLCBpbnQ2NF90IG9iamVjdFN0b3JlSUQsIGNvbnN0IFdlYkNv
cmU6OklEQktleURhdGEmKTsKKwogICAgIGludCBpZGJLZXlDb2xsYXRlKGludCBhTGVuZ3RoLCBj
b25zdCB2b2lkKiBhLCBpbnQgYkxlbmd0aCwgY29uc3Qgdm9pZCogYik7CiAKICAgICBVbmlxdWVJ
REJEYXRhYmFzZUlkZW50aWZpZXIgbV9pZGVudGlmaWVyOwo=
</data>
<flag name="review"
          id="246913"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>