<?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>151794</bug_id>
          
          <creation_ts>2015-12-02 22:25:37 -0800</creation_ts>
          <short_desc>Modern IDB: storage/indexeddb/cursor-skip-deleted.html crashes</short_desc>
          <delta_ts>2015-12-03 11:53:09 -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>Other</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>149117</blocked>
    
    <blocked>150882</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Brady Eidson">beidson</reporter>
          <assigned_to name="Brady Eidson">beidson</assigned_to>
          <cc>achristensen</cc>
    
    <cc>alecflett</cc>
    
    <cc>commit-queue</cc>
    
    <cc>jsbell</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1145874</commentid>
    <comment_count>0</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2015-12-02 22:25:37 -0800</bug_when>
    <thetext>Modern IDB: storage/indexeddb/cursor-skip-deleted.html fails

Turns out we were mis-using reverse_iterators when tracking what records were being changed in the object store.

Since std::set iterators are bi-directional there&apos;s no reason to not just use a single forward iterator and decrement it instead of increment it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1145875</commentid>
    <comment_count>1</comment_count>
      <attachid>266514</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2015-12-02 22:38:45 -0800</bug_when>
    <thetext>Created attachment 266514
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1145968</commentid>
    <comment_count>2</comment_count>
      <attachid>266514</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2015-12-03 11:01:16 -0800</bug_when>
    <thetext>Comment on attachment 266514
Patch v1

Goodbye reverse_iterators!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1145994</commentid>
    <comment_count>3</comment_count>
      <attachid>266514</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-12-03 11:53:07 -0800</bug_when>
    <thetext>Comment on attachment 266514
Patch v1

Clearing flags on attachment: 266514

Committed r193360: &lt;http://trac.webkit.org/changeset/193360&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1145995</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-12-03 11:53:09 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>266514</attachid>
            <date>2015-12-02 22:38:45 -0800</date>
            <delta_ts>2015-12-03 11:53:07 -0800</delta_ts>
            <desc>Patch v1</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>17506</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBjMzY5M2FjLi5kMWFiMWM1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTUtMTIt
MDIgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAgICAgIE1vZGVybiBJ
REI6IHN0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci1za2lwLWRlbGV0ZWQuaHRtbCBmYWlscy4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MTc5NAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcGxhdGZvcm0v
bWFjLXdrMS9UZXN0RXhwZWN0YXRpb25zOgorCiAyMDE1LTEyLTAyICBBbGV4IENocmlzdGVuc2Vu
ICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgQXN5bmNocm9ub3VzbHkgY2Fs
bCBvbmVycm9yIHdoZW4gYSBjb250ZW50IGJsb2NrZXIgYmxvY2tzIGFzY3JpcHQgZWxlbWVudCdz
IGxvYWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvVGVzdEV4cGVj
dGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvVGVzdEV4cGVjdGF0aW9ucwpp
bmRleCBjNjBkNzBhLi40OTRlZGVlNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjLXdrMS9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13
azEvVGVzdEV4cGVjdGF0aW9ucwpAQCAtNzksNiArNzksNyBAQCBzdG9yYWdlL2luZGV4ZWRkYi9j
dXJzb3ItYmFzaWNzLmh0bWwgWyBQYXNzIF0KIHN0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci1jYXN0
Lmh0bWwgWyBQYXNzIF0KIHN0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci1maW5pc2hlZC5odG1sIFsg
UGFzcyBdCiBzdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3Itb3ZlcmxvYWRzLmh0bWwgWyBQYXNzIF0K
K3N0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci1za2lwLWRlbGV0ZWQuaHRtbCBbIFBhc3MgXQogc3Rv
cmFnZS9pbmRleGVkZGIvbW9kZXJuIFsgUGFzcyBdCiBzdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxh
IFsgUGFzcyBdCiBzdG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1hYm9ydC5odG1sIFsgUGFz
cyBdCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKaW5kZXggZTliOGE3Zi4uOTZhY2Q0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDQyIEBACisyMDE1LTEyLTAyICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKwor
ICAgICAgICBNb2Rlcm4gSURCOiBzdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3Itc2tpcC1kZWxldGVk
Lmh0bWwgY3Jhc2hlcy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE1MTc5NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFNUTCByZXZlcnNlX2l0ZXJhdG9ycyBhcmUgYSB0cmlja3kgYmVhc3QuCisgICAgICAg
IAorICAgICAgICBUaGV5IGFyZSBpbXBsZW1lbnRlZCBpbiB0ZXJtcyBvZiBhIG5vcm1hbCBmb3J3
YXJkIGl0ZXJhdG9yIChjYWxsZWQgdGhlICJiYXNlIiBpdGVyYXRvciksCisgICAgICAgIGFuZCB0
aGV5IGRlY3JlbWVudCBhIGNvcHkgb2YgdGhhdCBpdGVyYXRvciB3aGVuIGRlcmVmZXJlbmNlZC4K
KyAgICAgICAgICAgIAorICAgICAgICBTbyB3aGVuIG1vbml0b3JpbmcgZGVsZXRlcyBmcm9tICBh
IHN0ZDo6c2V0IHRvIGNoZWNrIGlmIHdlIHNob3VsZCBpbnZhbGlkYXRlIG91ciBjdXJyZW50IAor
ICAgICAgICByZXZlcnNlX2l0ZXJhdG9yLCB3ZSB3ZXJlIGluY29ycmVjdGx5IGNvbXBhcmluZyB0
aGUgZGVsZXRlZCBrZXkgdG8gdGhlIHZhbHVlIHBvaW50ZWQgYnkgdGhlCisgICAgICAgIHJldmVy
c2VfaXRlcmF0b3IgaW5zdGVhZCBvZiBpdHMgYmFzZSBpdGVyYXRvci4KKyAgICAgICAgCisgICAg
ICAgIFNpbmNlIHRoZSBpdGVyYXRvcnMgaW4gcXVlc3Rpb24gYXJlIGJpZGlyZWN0aW9uYWwsIGFu
eXdheXMsIHdlIGNhbiBqdXN0IHVzZSBhIHNpbmdsZSBpdGVyYXRvcgorICAgICAgICBhbmQgZWl0
aGVyIGluY3JlbWVudCBvciBkZWNyZW1lbnQgaXQgYXMgbmVlZGVkLgorICAgICAgICAKKyAgICAg
ICAgTm8gbmV3IHRlc3RzIChBdCBsZWFzdCBvbmUgZmFpbGluZyAoY3Jhc2hpbmcpIHRlc3Qgbm93
IHBhc3NlcykuCisKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5T2Jq
ZWN0U3RvcmVDdXJzb3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpNZW1vcnlP
YmplY3RTdG9yZUN1cnNvcjo6b2JqZWN0U3RvcmVDbGVhcmVkKToKKyAgICAgICAgKFdlYkNvcmU6
OklEQlNlcnZlcjo6TWVtb3J5T2JqZWN0U3RvcmVDdXJzb3I6OmtleURlbGV0ZWQpOgorICAgICAg
ICAoV2ViQ29yZTo6SURCU2VydmVyOjpNZW1vcnlPYmplY3RTdG9yZUN1cnNvcjo6a2V5QWRkZWQp
OgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpNZW1vcnlPYmplY3RTdG9yZUN1cnNvcjo6
c2V0Rmlyc3RJblJlbWFpbmluZ1JhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6
TWVtb3J5T2JqZWN0U3RvcmVDdXJzb3I6OnNldEZvcndhcmRJdGVyYXRvckZyb21SZW1haW5pbmdS
YW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6Ok1lbW9yeU9iamVjdFN0b3JlQ3Vy
c29yOjpzZXRSZXZlcnNlSXRlcmF0b3JGcm9tUmVtYWluaW5nUmFuZ2UpOgorICAgICAgICAoV2Vi
Q29yZTo6SURCU2VydmVyOjpNZW1vcnlPYmplY3RTdG9yZUN1cnNvcjo6Y3VycmVudERhdGEpOgor
ICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpNZW1vcnlPYmplY3RTdG9yZUN1cnNvcjo6aW5j
cmVtZW50Rm9yd2FyZEl0ZXJhdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6TWVt
b3J5T2JqZWN0U3RvcmVDdXJzb3I6OmluY3JlbWVudFJldmVyc2VJdGVyYXRvcik6CisgICAgICAg
IChXZWJDb3JlOjpJREJTZXJ2ZXI6Ok1lbW9yeU9iamVjdFN0b3JlQ3Vyc29yOjppdGVyYXRlKToK
KyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6TWVtb3J5T2JqZWN0U3RvcmVDdXJzb3I6OmZp
cnN0Rm9yd2FyZEl0ZXJhdG9ySW5SZW1haW5pbmdSYW5nZSk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpJREJTZXJ2ZXI6Ok1lbW9yeU9iamVjdFN0b3JlQ3Vyc29yOjpmaXJzdFJldmVyc2VJ
dGVyYXRvckluUmVtYWluaW5nUmFuZ2UpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SURC
U2VydmVyOjpNZW1vcnlPYmplY3RTdG9yZUN1cnNvcjo6aGFzSXRlcmF0b3JzKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6TWVtb3J5T2JqZWN0U3RvcmVDdXJzb3I6Omhh
c1ZhbGlkUG9zaXRpb24pOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpN
ZW1vcnlPYmplY3RTdG9yZUN1cnNvcjo6Y2xlYXJJdGVyYXRvcnMpOiBEZWxldGVkLgorICAgICAg
ICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlPYmplY3RTdG9yZUN1cnNvci5oOgor
CiAyMDE1LTEyLTAyICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+
CiAKICAgICAgICAgQXN5bmNocm9ub3VzbHkgY2FsbCBvbmVycm9yIHdoZW4gYSBjb250ZW50IGJs
b2NrZXIgYmxvY2tzIGFzY3JpcHQgZWxlbWVudCdzIGxvYWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlPYmplY3RTdG9yZUN1cnNvci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5T2JqZWN0
U3RvcmVDdXJzb3IuY3BwCmluZGV4IDA2OGNiNTcuLjQwNDczZDcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlPYmplY3RTdG9yZUN1cnNv
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9y
eU9iamVjdFN0b3JlQ3Vyc29yLmNwcApAQCAtNDksNyArNDksNyBAQCBNZW1vcnlPYmplY3RTdG9y
ZUN1cnNvcjo6TWVtb3J5T2JqZWN0U3RvcmVDdXJzb3IoTWVtb3J5T2JqZWN0U3RvcmUmIG9iamVj
dFN0b3JlLAogCiB2b2lkIE1lbW9yeU9iamVjdFN0b3JlQ3Vyc29yOjpvYmplY3RTdG9yZUNsZWFy
ZWQoKQogewotICAgIGNsZWFySXRlcmF0b3JzKCk7CisgICAgbV9pdGVyYXRvciA9IE51bGxvcHQ7
CiB9CiAKIHZvaWQgTWVtb3J5T2JqZWN0U3RvcmVDdXJzb3I6OmtleURlbGV0ZWQoY29uc3QgSURC
S2V5RGF0YSYga2V5KQpAQCAtNTcsMTMzICs1NywxMzUgQEAgdm9pZCBNZW1vcnlPYmplY3RTdG9y
ZUN1cnNvcjo6a2V5RGVsZXRlZChjb25zdCBJREJLZXlEYXRhJiBrZXkpCiAgICAgaWYgKG1fY3Vy
cmVudFBvc2l0aW9uS2V5ICE9IGtleSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgY2xlYXJJdGVy
YXRvcnMoKTsKKyAgICBtX2l0ZXJhdG9yID0gTnVsbG9wdDsKIH0KIAogdm9pZCBNZW1vcnlPYmpl
Y3RTdG9yZUN1cnNvcjo6a2V5QWRkZWQoc3RkOjpzZXQ8SURCS2V5RGF0YT46Oml0ZXJhdG9yIGl0
ZXJhdG9yKQogewotICAgIGlmIChoYXNJdGVyYXRvcnMoKSkKKyAgICBpZiAobV9pdGVyYXRvcikK
ICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKCppdGVyYXRvciAhPSBtX2N1cnJlbnRQb3NpdGlv
bktleSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgaWYgKG1faW5mby5pc0RpcmVjdGlvbkZvcndh
cmQoKSkKLSAgICAgICAgbV9mb3J3YXJkSXRlcmF0b3IgPSBpdGVyYXRvcjsKLSAgICBlbHNlCi0g
ICAgICAgIG1fcmV2ZXJzZUl0ZXJhdG9yID0gLS1zdGQ6OnNldDxJREJLZXlEYXRhPjo6cmV2ZXJz
ZV9pdGVyYXRvcihpdGVyYXRvcik7CisgICAgaWYgKCppdGVyYXRvciA9PSBtX2N1cnJlbnRQb3Np
dGlvbktleSkKKyAgICAgICAgbV9pdGVyYXRvciA9IGl0ZXJhdG9yOwogfQogCiB2b2lkIE1lbW9y
eU9iamVjdFN0b3JlQ3Vyc29yOjpzZXRGaXJzdEluUmVtYWluaW5nUmFuZ2Uoc3RkOjpzZXQ8SURC
S2V5RGF0YT4mIHNldCkKIHsKLSAgICBjbGVhckl0ZXJhdG9ycygpOworICAgIG1faXRlcmF0b3Ig
PSBOdWxsb3B0OwogCiAgICAgaWYgKG1faW5mby5pc0RpcmVjdGlvbkZvcndhcmQoKSkgewotICAg
ICAgICBtX2ZvcndhcmRJdGVyYXRvciA9IGZpcnN0Rm9yd2FyZEl0ZXJhdG9ySW5SZW1haW5pbmdS
YW5nZShzZXQpOwotICAgICAgICBpZiAoKm1fZm9yd2FyZEl0ZXJhdG9yICE9IHNldC5lbmQoKSkg
ewotICAgICAgICAgICAgbV9yZW1haW5pbmdSYW5nZS5sb3dlcktleSA9ICoqbV9mb3J3YXJkSXRl
cmF0b3I7CisgICAgICAgIHNldEZvcndhcmRJdGVyYXRvckZyb21SZW1haW5pbmdSYW5nZShzZXQp
OworICAgICAgICBpZiAobV9pdGVyYXRvcikgeworICAgICAgICAgICAgbV9yZW1haW5pbmdSYW5n
ZS5sb3dlcktleSA9ICoqbV9pdGVyYXRvcjsKICAgICAgICAgICAgIG1fcmVtYWluaW5nUmFuZ2Uu
bG93ZXJPcGVuID0gdHJ1ZTsKICAgICAgICAgfQogICAgIH0gZWxzZSB7Ci0gICAgICAgIG1fcmV2
ZXJzZUl0ZXJhdG9yID0gZmlyc3RSZXZlcnNlSXRlcmF0b3JJblJlbWFpbmluZ1JhbmdlKHNldCk7
Ci0gICAgICAgIGlmICgqbV9yZXZlcnNlSXRlcmF0b3IgIT0gc2V0LnJlbmQoKSkgewotICAgICAg
ICAgICAgbV9yZW1haW5pbmdSYW5nZS51cHBlcktleSA9ICoqbV9yZXZlcnNlSXRlcmF0b3I7Cisg
ICAgICAgIHNldFJldmVyc2VJdGVyYXRvckZyb21SZW1haW5pbmdSYW5nZShzZXQpOworICAgICAg
ICBpZiAobV9pdGVyYXRvcikgeworICAgICAgICAgICAgbV9yZW1haW5pbmdSYW5nZS51cHBlcktl
eSA9ICoqbV9pdGVyYXRvcjsKICAgICAgICAgICAgIG1fcmVtYWluaW5nUmFuZ2UudXBwZXJPcGVu
ID0gdHJ1ZTsKICAgICAgICAgfQogICAgIH0KKworICAgIEFTU0VSVCghbV9pdGVyYXRvciB8fCAq
bV9pdGVyYXRvciAhPSBzZXQuZW5kKCkpOwogfQogCi1zdGQ6OnNldDxJREJLZXlEYXRhPjo6aXRl
cmF0b3IgTWVtb3J5T2JqZWN0U3RvcmVDdXJzb3I6OmZpcnN0Rm9yd2FyZEl0ZXJhdG9ySW5SZW1h
aW5pbmdSYW5nZShzdGQ6OnNldDxJREJLZXlEYXRhPiYgc2V0KQordm9pZCBNZW1vcnlPYmplY3RT
dG9yZUN1cnNvcjo6c2V0Rm9yd2FyZEl0ZXJhdG9yRnJvbVJlbWFpbmluZ1JhbmdlKHN0ZDo6c2V0
PElEQktleURhdGE+JiBzZXQpCiB7Ci0gICAgaWYgKG1fcmVtYWluaW5nUmFuZ2UuaXNFeGFjdGx5
T25lS2V5KCkpCi0gICAgICAgIHJldHVybiBzZXQuZmluZChtX3JlbWFpbmluZ1JhbmdlLmxvd2Vy
S2V5KTsKKyAgICBpZiAoIXNldC5zaXplKCkpIHsKKyAgICAgICAgbV9pdGVyYXRvciA9IE51bGxv
cHQ7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAobV9yZW1haW5pbmdSYW5nZS5p
c0V4YWN0bHlPbmVLZXkoKSkgeworICAgICAgICBtX2l0ZXJhdG9yID0gc2V0LmZpbmQobV9yZW1h
aW5pbmdSYW5nZS5sb3dlcktleSk7CisgICAgICAgIGlmICgqbV9pdGVyYXRvciA9PSBzZXQuZW5k
KCkpCisgICAgICAgICAgICBtX2l0ZXJhdG9yID0gTnVsbG9wdDsKKworICAgICAgICByZXR1cm47
CisgICAgfQorCisgICAgbV9pdGVyYXRvciA9IE51bGxvcHQ7CiAKICAgICBhdXRvIGxvd2VzdCA9
IHNldC5sb3dlcl9ib3VuZChtX3JlbWFpbmluZ1JhbmdlLmxvd2VyS2V5KTsKICAgICBpZiAobG93
ZXN0ID09IHNldC5lbmQoKSkKLSAgICAgICAgcmV0dXJuIGxvd2VzdDsKKyAgICAgICAgcmV0dXJu
OwogCiAgICAgaWYgKG1fcmVtYWluaW5nUmFuZ2UubG93ZXJPcGVuICYmICpsb3dlc3QgPT0gbV9y
ZW1haW5pbmdSYW5nZS5sb3dlcktleSkgewogICAgICAgICArK2xvd2VzdDsKICAgICAgICAgaWYg
KGxvd2VzdCA9PSBzZXQuZW5kKCkpCi0gICAgICAgICAgICByZXR1cm4gbG93ZXN0OworICAgICAg
ICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIGlmICghbV9yZW1haW5pbmdSYW5nZS51cHBlcktl
eS5pc051bGwoKSkgewogICAgICAgICBpZiAobG93ZXN0LT5jb21wYXJlKG1fcmVtYWluaW5nUmFu
Z2UudXBwZXJLZXkpID4gMCkKLSAgICAgICAgICAgIHJldHVybiBzZXQuZW5kKCk7CisgICAgICAg
ICAgICByZXR1cm47CiAKICAgICAgICAgaWYgKG1fcmVtYWluaW5nUmFuZ2UudXBwZXJPcGVuICYm
ICpsb3dlc3QgPT0gbV9yZW1haW5pbmdSYW5nZS51cHBlcktleSkKLSAgICAgICAgICAgIHJldHVy
biBzZXQuZW5kKCk7CisgICAgICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgcmV0dXJuIGxv
d2VzdDsKKyAgICBtX2l0ZXJhdG9yID0gbG93ZXN0OwogfQogCi1zdGQ6OnNldDxJREJLZXlEYXRh
Pjo6cmV2ZXJzZV9pdGVyYXRvciBNZW1vcnlPYmplY3RTdG9yZUN1cnNvcjo6Zmlyc3RSZXZlcnNl
SXRlcmF0b3JJblJlbWFpbmluZ1JhbmdlKHN0ZDo6c2V0PElEQktleURhdGE+JiBzZXQpCit2b2lk
IE1lbW9yeU9iamVjdFN0b3JlQ3Vyc29yOjpzZXRSZXZlcnNlSXRlcmF0b3JGcm9tUmVtYWluaW5n
UmFuZ2Uoc3RkOjpzZXQ8SURCS2V5RGF0YT4mIHNldCkKIHsKKyAgICBpZiAoIXNldC5zaXplKCkp
IHsKKyAgICAgICAgbV9pdGVyYXRvciA9IE51bGxvcHQ7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisKICAgICBpZiAobV9yZW1haW5pbmdSYW5nZS5pc0V4YWN0bHlPbmVLZXkoKSkgewotICAgICAg
ICBhdXRvIGl0ZXJhdG9yID0gc2V0LmZpbmQobV9yZW1haW5pbmdSYW5nZS5sb3dlcktleSk7Ci0g
ICAgICAgIGlmIChpdGVyYXRvciA9PSBzZXQuZW5kKCkpCi0gICAgICAgICAgICByZXR1cm4gc2V0
LnJlbmQoKTsKKyAgICAgICAgbV9pdGVyYXRvciA9IHNldC5maW5kKG1fcmVtYWluaW5nUmFuZ2Uu
bG93ZXJLZXkpOworICAgICAgICBpZiAoKm1faXRlcmF0b3IgPT0gc2V0LmVuZCgpKQorICAgICAg
ICAgICAgbV9pdGVyYXRvciA9IE51bGxvcHQ7CisKKyAgICAgICAgcmV0dXJuOworICAgIH0KIAot
ICAgICAgICByZXR1cm4gLS1zdGQ6OnNldDxJREJLZXlEYXRhPjo6cmV2ZXJzZV9pdGVyYXRvcihp
dGVyYXRvcik7CisgICAgaWYgKCFtX3JlbWFpbmluZ1JhbmdlLnVwcGVyS2V5LmlzVmFsaWQoKSkg
eworICAgICAgICBtX2l0ZXJhdG9yID0gLS1zZXQuZW5kKCk7CisgICAgICAgIHJldHVybjsKICAg
ICB9CiAKLSAgICBpZiAoIW1fcmVtYWluaW5nUmFuZ2UudXBwZXJLZXkuaXNWYWxpZCgpKQotICAg
ICAgICByZXR1cm4gc2V0LnJiZWdpbigpOworICAgIG1faXRlcmF0b3IgPSBOdWxsb3B0OwogCiAg
ICAgLy8gVGhpcyBpcyBvbmUgcmVjb3JkIHBhc3QgdGhlIGFjdHVhbCBrZXkgd2UncmUgbG9va2lu
ZyBmb3IuCiAgICAgYXV0byBoaWdoZXN0ID0gc2V0LnVwcGVyX2JvdW5kKG1fcmVtYWluaW5nUmFu
Z2UudXBwZXJLZXkpOwogCisgICAgaWYgKGhpZ2hlc3QgPT0gc2V0LmJlZ2luKCkpCisgICAgICAg
IHJldHVybjsKKwogICAgIC8vIFRoaXMgaXMgb25lIHJlY29yZCBiZWZvcmUgdGhhdCwgd2hpY2gg
KmlzKiB0aGUga2V5IHdlJ3JlIGxvb2tpbmcgZm9yLgotICAgIGF1dG8gcmV2ZXJzZSA9IHN0ZDo6
c2V0PElEQktleURhdGE+OjpyZXZlcnNlX2l0ZXJhdG9yKGhpZ2hlc3QpOwotICAgIGlmIChyZXZl
cnNlID09IHNldC5yZW5kKCkpCi0gICAgICAgIHJldHVybiByZXZlcnNlOwotCi0gICAgaWYgKG1f
cmVtYWluaW5nUmFuZ2UudXBwZXJPcGVuICYmICpyZXZlcnNlID09IG1fcmVtYWluaW5nUmFuZ2Uu
dXBwZXJLZXkpIHsKLSAgICAgICAgKytyZXZlcnNlOwotICAgICAgICBpZiAocmV2ZXJzZSA9PSBz
ZXQucmVuZCgpKQotICAgICAgICAgICAgcmV0dXJuIHJldmVyc2U7CisgICAgLS1oaWdoZXN0Owor
CisgICAgaWYgKG1fcmVtYWluaW5nUmFuZ2UudXBwZXJPcGVuICYmICpoaWdoZXN0ID09IG1fcmVt
YWluaW5nUmFuZ2UudXBwZXJLZXkpIHsKKyAgICAgICAgaWYgKGhpZ2hlc3QgPT0gc2V0LmJlZ2lu
KCkpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIC0taGlnaGVzdDsKICAgICB9CiAKICAg
ICBpZiAoIW1fcmVtYWluaW5nUmFuZ2UubG93ZXJLZXkuaXNOdWxsKCkpIHsKLSAgICAgICAgaWYg
KHJldmVyc2UtPmNvbXBhcmUobV9yZW1haW5pbmdSYW5nZS5sb3dlcktleSkgPCAwKQotICAgICAg
ICAgICAgcmV0dXJuIHNldC5yZW5kKCk7CisgICAgICAgIGlmIChoaWdoZXN0LT5jb21wYXJlKG1f
cmVtYWluaW5nUmFuZ2UubG93ZXJLZXkpIDwgMCkKKyAgICAgICAgICAgIHJldHVybjsKIAotICAg
ICAgICBpZiAobV9yZW1haW5pbmdSYW5nZS5sb3dlck9wZW4gJiYgKnJldmVyc2UgPT0gbV9yZW1h
aW5pbmdSYW5nZS5sb3dlcktleSkKLSAgICAgICAgICAgIHJldHVybiBzZXQucmVuZCgpOworICAg
ICAgICBpZiAobV9yZW1haW5pbmdSYW5nZS5sb3dlck9wZW4gJiYgKmhpZ2hlc3QgPT0gbV9yZW1h
aW5pbmdSYW5nZS5sb3dlcktleSkKKyAgICAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBy
ZXR1cm4gcmV2ZXJzZTsKKyAgICBtX2l0ZXJhdG9yID0gaGlnaGVzdDsKIH0KIAogdm9pZCBNZW1v
cnlPYmplY3RTdG9yZUN1cnNvcjo6Y3VycmVudERhdGEoSURCR2V0UmVzdWx0JiBkYXRhKQogewot
ICAgIGlmICghaGFzSXRlcmF0b3JzKCkpIHsKKyAgICBpZiAoIW1faXRlcmF0b3IpIHsKICAgICAg
ICAgbV9jdXJyZW50UG9zaXRpb25LZXkgPSB7IH07CiAgICAgICAgIGRhdGEgPSB7IH07CiAgICAg
ICAgIHJldHVybjsKICAgICB9CiAKLSAgICBhdXRvKiBzZXQgPSBtX29iamVjdFN0b3JlLm9yZGVy
ZWRLZXlzKCk7Ci0gICAgQVNTRVJUKHNldCk7Ci0gICAgaWYgKG1faW5mby5pc0RpcmVjdGlvbkZv
cndhcmQoKSkgewotICAgICAgICBpZiAoIW1fZm9yd2FyZEl0ZXJhdG9yIHx8ICptX2ZvcndhcmRJ
dGVyYXRvciA9PSBzZXQtPmVuZCgpKSB7Ci0gICAgICAgICAgICBkYXRhID0geyB9OwotICAgICAg
ICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KLSAgICAgICAgbV9jdXJyZW50UG9zaXRpb25LZXkg
PSAqKm1fZm9yd2FyZEl0ZXJhdG9yOwotICAgICAgICBkYXRhID0geyAqKm1fZm9yd2FyZEl0ZXJh
dG9yLCAqKm1fZm9yd2FyZEl0ZXJhdG9yLCBtX29iamVjdFN0b3JlLnZhbHVlRm9yS2V5UmFuZ2Uo
KiptX2ZvcndhcmRJdGVyYXRvcikgfTsKLSAgICB9IGVsc2UgewotICAgICAgICBpZiAoIW1fcmV2
ZXJzZUl0ZXJhdG9yIHx8ICptX3JldmVyc2VJdGVyYXRvciA9PSBzZXQtPnJlbmQoKSkgewotICAg
ICAgICAgICAgZGF0YSA9IHsgfTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCi0g
ICAgICAgIG1fY3VycmVudFBvc2l0aW9uS2V5ID0gKiptX3JldmVyc2VJdGVyYXRvcjsKLSAgICAg
ICAgZGF0YSA9IHsgKiptX3JldmVyc2VJdGVyYXRvciwgKiptX3JldmVyc2VJdGVyYXRvciwgbV9v
YmplY3RTdG9yZS52YWx1ZUZvcktleVJhbmdlKCoqbV9yZXZlcnNlSXRlcmF0b3IpIH07Ci0gICAg
fQorICAgIG1fY3VycmVudFBvc2l0aW9uS2V5ID0gKiptX2l0ZXJhdG9yOworICAgIGRhdGEgPSB7
IG1fY3VycmVudFBvc2l0aW9uS2V5LCBtX2N1cnJlbnRQb3NpdGlvbktleSwgbV9vYmplY3RTdG9y
ZS52YWx1ZUZvcktleVJhbmdlKG1fY3VycmVudFBvc2l0aW9uS2V5KSB9OwogfQogCiB2b2lkIE1l
bW9yeU9iamVjdFN0b3JlQ3Vyc29yOjppbmNyZW1lbnRGb3J3YXJkSXRlcmF0b3Ioc3RkOjpzZXQ8
SURCS2V5RGF0YT4mIHNldCwgY29uc3QgSURCS2V5RGF0YSYga2V5LCB1aW50MzJfdCBjb3VudCkK
QEAgLTE5MSw3ICsxOTMsNyBAQCB2b2lkIE1lbW9yeU9iamVjdFN0b3JlQ3Vyc29yOjppbmNyZW1l
bnRGb3J3YXJkSXRlcmF0b3Ioc3RkOjpzZXQ8SURCS2V5RGF0YT4mIHNldAogICAgIC8vIFdlIG1p
Z2h0IG5lZWQgdG8gcmUtZ3JhYiB0aGUgY3VycmVudCBpdGVyYXRvci4KICAgICAvLyBlLmcuIElm
IHRoZSByZWNvcmQgaXQgd2FzIHBvaW50ZWQgdG8gaGFkIGJlZW4gZGVsZXRlZC4KICAgICBib29s
IGRpZFJlc2V0SXRlcmF0b3IgPSBmYWxzZTsKLSAgICBpZiAoIWhhc0l0ZXJhdG9ycygpKSB7Cisg
ICAgaWYgKCFtX2l0ZXJhdG9yKSB7CiAgICAgICAgIGlmICghbV9jdXJyZW50UG9zaXRpb25LZXku
aXNWYWxpZCgpKQogICAgICAgICAgICAgcmV0dXJuOwogCkBAIC0yMDIsOSArMjA0LDExIEBAIHZv
aWQgTWVtb3J5T2JqZWN0U3RvcmVDdXJzb3I6OmluY3JlbWVudEZvcndhcmRJdGVyYXRvcihzdGQ6
OnNldDxJREJLZXlEYXRhPiYgc2V0CiAgICAgICAgIGRpZFJlc2V0SXRlcmF0b3IgPSB0cnVlOwog
ICAgIH0KIAotICAgIGlmICgqbV9mb3J3YXJkSXRlcmF0b3IgPT0gc2V0LmVuZCgpKQorICAgIGlm
ICghbV9pdGVyYXRvcikKICAgICAgICAgcmV0dXJuOwogCisgICAgQVNTRVJUKCptX2l0ZXJhdG9y
ICE9IHNldC5lbmQoKSk7CisKICAgICBpZiAoa2V5LmlzVmFsaWQoKSkgewogICAgICAgICAvLyBJ
ZiBpdGVyYXRpbmcgdG8gYSBrZXksIHRoZSBjb3VudCBwYXNzZWQgaW4gbXVzdCBiZSB6ZXJvLCBh
cyB0aGVyZSBpcyBubyB3YXkgdG8gaXRlcmF0ZSBieSBib3RoIGEgY291bnQgYW5kIHRvIGEga2V5
LgogICAgICAgICBBU1NFUlQoIWNvdW50KTsKQEAgLTIxMiw3ICsyMTYsNyBAQCB2b2lkIE1lbW9y
eU9iamVjdFN0b3JlQ3Vyc29yOjppbmNyZW1lbnRGb3J3YXJkSXRlcmF0b3Ioc3RkOjpzZXQ8SURC
S2V5RGF0YT4mIHNldAogICAgICAgICBpZiAoIW1faW5mby5yYW5nZSgpLmNvbnRhaW5zS2V5KGtl
eSkpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgaWYgKCgqbV9mb3J3YXJkSXRlcmF0
b3IpLT5jb21wYXJlKGtleSkgPCAwKSB7CisgICAgICAgIGlmICgoKm1faXRlcmF0b3IpLT5jb21w
YXJlKGtleSkgPCAwKSB7CiAgICAgICAgICAgICBtX3JlbWFpbmluZ1JhbmdlLmxvd2VyS2V5ID0g
a2V5OwogICAgICAgICAgICAgbV9yZW1haW5pbmdSYW5nZS5sb3dlck9wZW4gPSBmYWxzZTsKICAg
ICAgICAgICAgIHNldEZpcnN0SW5SZW1haW5pbmdSYW5nZShzZXQpOwpAQCAtMjI2LDE5ICsyMzAs
MTUgQEAgdm9pZCBNZW1vcnlPYmplY3RTdG9yZUN1cnNvcjo6aW5jcmVtZW50Rm9yd2FyZEl0ZXJh
dG9yKHN0ZDo6c2V0PElEQktleURhdGE+JiBzZXQKIAogICAgIC8vIElmIHRoZSBmb3J3YXJkSXRl
cmF0b3Igd2FzIHJlc2V0IGJlY2F1c2UgaXQncyBwcmV2aW91cyByZWNvcmQgaGFkIGJlZW4gZGVs
ZXRlZCwKICAgICAvLyB3ZSBtaWdodCBoYXZlIGFscmVhZHkgYWR2YW5jZWQgcGFzdCB0aGUgY3Vy
cmVudCBwb3NpdGlvbiwgZWF0aW5nIG9uZSBvbmUgb2YgdGhlIGl0ZXJhdGlvbiBjb3VudHMuCi0g
ICAgaWYgKGRpZFJlc2V0SXRlcmF0b3IgJiYgKCptX2ZvcndhcmRJdGVyYXRvciktPmNvbXBhcmUo
bV9jdXJyZW50UG9zaXRpb25LZXkpID4gMCkKKyAgICBpZiAoZGlkUmVzZXRJdGVyYXRvciAmJiAo
Km1faXRlcmF0b3IpLT5jb21wYXJlKG1fY3VycmVudFBvc2l0aW9uS2V5KSA+IDApCiAgICAgICAg
IC0tY291bnQ7CiAKICAgICB3aGlsZSAoY291bnQpIHsKICAgICAgICAgLS1jb3VudDsKKyAgICAg
ICAgKysqbV9pdGVyYXRvcjsKIAotICAgICAgICArKyptX2ZvcndhcmRJdGVyYXRvcjsKLQotICAg
ICAgICBpZiAoKm1fZm9yd2FyZEl0ZXJhdG9yID09IHNldC5lbmQoKSkKLSAgICAgICAgICAgIHJl
dHVybjsKLQotICAgICAgICBpZiAoIW1faW5mby5yYW5nZSgpLmNvbnRhaW5zS2V5KCoqbV9mb3J3
YXJkSXRlcmF0b3IpKSB7Ci0gICAgICAgICAgICBtX2ZvcndhcmRJdGVyYXRvciA9IHNldC5lbmQo
KTsKKyAgICAgICAgaWYgKCptX2l0ZXJhdG9yID09IHNldC5lbmQoKSB8fCAhbV9pbmZvLnJhbmdl
KCkuY29udGFpbnNLZXkoKiptX2l0ZXJhdG9yKSkgeworICAgICAgICAgICAgbV9pdGVyYXRvciA9
IE51bGxvcHQ7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICB9CkBAIC0yNDks
NyArMjQ5LDcgQEAgdm9pZCBNZW1vcnlPYmplY3RTdG9yZUN1cnNvcjo6aW5jcmVtZW50UmV2ZXJz
ZUl0ZXJhdG9yKHN0ZDo6c2V0PElEQktleURhdGE+JiBzZXQKICAgICAvLyBXZSBtaWdodCBuZWVk
IHRvIHJlLWdyYWIgdGhlIGN1cnJlbnQgaXRlcmF0b3IuCiAgICAgLy8gZS5nLiBJZiB0aGUgcmVj
b3JkIGl0IHdhcyBwb2ludGVkIHRvIGhhZCBiZWVuIGRlbGV0ZWQuCiAgICAgYm9vbCBkaWRSZXNl
dEl0ZXJhdG9yID0gZmFsc2U7Ci0gICAgaWYgKCFoYXNJdGVyYXRvcnMoKSkgeworICAgIGlmICgh
bV9pdGVyYXRvcikgewogICAgICAgICBpZiAoIW1fY3VycmVudFBvc2l0aW9uS2V5LmlzVmFsaWQo
KSkKICAgICAgICAgICAgIHJldHVybjsKIApAQCAtMjYwLDcgKzI2MCw3IEBAIHZvaWQgTWVtb3J5
T2JqZWN0U3RvcmVDdXJzb3I6OmluY3JlbWVudFJldmVyc2VJdGVyYXRvcihzdGQ6OnNldDxJREJL
ZXlEYXRhPiYgc2V0CiAgICAgICAgIGRpZFJlc2V0SXRlcmF0b3IgPSB0cnVlOwogICAgIH0KIAot
ICAgIGlmICgqbV9yZXZlcnNlSXRlcmF0b3IgPT0gc2V0LnJlbmQoKSkKKyAgICBpZiAoKm1faXRl
cmF0b3IgPT0gc2V0LmVuZCgpKQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAoa2V5LmlzVmFs
aWQoKSkgewpAQCAtMjcwLDcgKzI3MCw3IEBAIHZvaWQgTWVtb3J5T2JqZWN0U3RvcmVDdXJzb3I6
OmluY3JlbWVudFJldmVyc2VJdGVyYXRvcihzdGQ6OnNldDxJREJLZXlEYXRhPiYgc2V0CiAgICAg
ICAgIGlmICghbV9pbmZvLnJhbmdlKCkuY29udGFpbnNLZXkoa2V5KSkKICAgICAgICAgICAgIHJl
dHVybjsKIAotICAgICAgICBpZiAoKCptX3JldmVyc2VJdGVyYXRvciktPmNvbXBhcmUoa2V5KSA+
IDApIHsKKyAgICAgICAgaWYgKCgqbV9pdGVyYXRvciktPmNvbXBhcmUoa2V5KSA+IDApIHsKICAg
ICAgICAgICAgIG1fcmVtYWluaW5nUmFuZ2UudXBwZXJLZXkgPSBrZXk7CiAgICAgICAgICAgICBt
X3JlbWFpbmluZ1JhbmdlLnVwcGVyT3BlbiA9IGZhbHNlOwogCkBAIC0yODUsNTAgKzI4NSwyNSBA
QCB2b2lkIE1lbW9yeU9iamVjdFN0b3JlQ3Vyc29yOjppbmNyZW1lbnRSZXZlcnNlSXRlcmF0b3Io
c3RkOjpzZXQ8SURCS2V5RGF0YT4mIHNldAogCiAgICAgLy8gSWYgdGhlIHJldmVyc2VJdGVyYXRv
ciB3YXMgcmVzZXQgYmVjYXVzZSBpdCdzIHByZXZpb3VzIHJlY29yZCBoYWQgYmVlbiBkZWxldGVk
LAogICAgIC8vIHdlIG1pZ2h0IGhhdmUgYWxyZWFkeSBhZHZhbmNlZCBwYXN0IHRoZSBjdXJyZW50
IHBvc2l0aW9uLCBlYXRpbmcgb25lIG9uZSBvZiB0aGUgaXRlcmF0aW9uIGNvdW50cy4KLSAgICBp
ZiAoZGlkUmVzZXRJdGVyYXRvciAmJiAoKm1fcmV2ZXJzZUl0ZXJhdG9yKS0+Y29tcGFyZShtX2N1
cnJlbnRQb3NpdGlvbktleSkgPCAwKQorICAgIGlmIChkaWRSZXNldEl0ZXJhdG9yICYmICgqbV9p
dGVyYXRvciktPmNvbXBhcmUobV9jdXJyZW50UG9zaXRpb25LZXkpIDwgMCkKICAgICAgICAgLS1j
b3VudDsKIAogICAgIHdoaWxlIChjb3VudCkgewotICAgICAgICAtLWNvdW50OwotCi0gICAgICAg
ICsrKm1fcmV2ZXJzZUl0ZXJhdG9yOwotCi0gICAgICAgIGlmICgqbV9yZXZlcnNlSXRlcmF0b3Ig
PT0gc2V0LnJlbmQoKSkKKyAgICAgICAgaWYgKCptX2l0ZXJhdG9yID09IHNldC5iZWdpbigpKSB7
CisgICAgICAgICAgICBtX2l0ZXJhdG9yID0gTnVsbG9wdDsKICAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgfQogCi0gICAgICAgIGlmICghbV9pbmZvLnJhbmdlKCkuY29udGFpbnNLZXkoKipt
X3JldmVyc2VJdGVyYXRvcikpIHsKLSAgICAgICAgICAgIG1fcmV2ZXJzZUl0ZXJhdG9yID0gc2V0
LnJlbmQoKTsKKyAgICAgICAgLS1jb3VudDsKKyAgICAgICAgLS0qbV9pdGVyYXRvcjsKKworICAg
ICAgICBpZiAoIW1faW5mby5yYW5nZSgpLmNvbnRhaW5zS2V5KCoqbV9pdGVyYXRvcikpIHsKKyAg
ICAgICAgICAgIG1faXRlcmF0b3IgPSBOdWxsb3B0OwogICAgICAgICAgICAgcmV0dXJuOwogICAg
ICAgICB9CiAgICAgfQogfQogCi1ib29sIE1lbW9yeU9iamVjdFN0b3JlQ3Vyc29yOjpoYXNJdGVy
YXRvcnMoKSBjb25zdAotewotICAgIHJldHVybiBtX2ZvcndhcmRJdGVyYXRvciB8fCBtX3JldmVy
c2VJdGVyYXRvcjsKLX0KLQotYm9vbCBNZW1vcnlPYmplY3RTdG9yZUN1cnNvcjo6aGFzVmFsaWRQ
b3NpdGlvbigpIGNvbnN0Ci17Ci0gICAgaWYgKCFoYXNJdGVyYXRvcnMoKSkKLSAgICAgICAgcmV0
dXJuIGZhbHNlOwotCi0gICAgYXV0byogc2V0ID0gbV9vYmplY3RTdG9yZS5vcmRlcmVkS2V5cygp
OwotICAgIGlmICghc2V0KQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBpZiAobV9pbmZv
LmlzRGlyZWN0aW9uRm9yd2FyZCgpKQotICAgICAgICByZXR1cm4gKm1fZm9yd2FyZEl0ZXJhdG9y
ICE9IHNldC0+ZW5kKCk7Ci0KLSAgICByZXR1cm4gKm1fcmV2ZXJzZUl0ZXJhdG9yICE9IHNldC0+
cmVuZCgpOwotfQotCi12b2lkIE1lbW9yeU9iamVjdFN0b3JlQ3Vyc29yOjpjbGVhckl0ZXJhdG9y
cygpCi17Ci0gICAgbV9mb3J3YXJkSXRlcmF0b3IgPSBOdWxsb3B0OwotICAgIG1fcmV2ZXJzZUl0
ZXJhdG9yID0gTnVsbG9wdDsKLX0KLQogdm9pZCBNZW1vcnlPYmplY3RTdG9yZUN1cnNvcjo6aXRl
cmF0ZShjb25zdCBJREJLZXlEYXRhJiBrZXksIHVpbnQzMl90IGNvdW50LCBJREJHZXRSZXN1bHQm
IG91dERhdGEpCiB7CiAgICAgTE9HKEluZGV4ZWREQiwgIk1lbW9yeU9iamVjdFN0b3JlQ3Vyc29y
OjppdGVyYXRlIHRvIGtleSAlcyIsIGtleS5sb2dnaW5nU3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7
CkBAIC0zNTUsNyArMzMwLDcgQEAgdm9pZCBNZW1vcnlPYmplY3RTdG9yZUN1cnNvcjo6aXRlcmF0
ZShjb25zdCBJREJLZXlEYXRhJiBrZXksIHVpbnQzMl90IGNvdW50LCBJREIKIAogICAgIG1fY3Vy
cmVudFBvc2l0aW9uS2V5ID0geyB9OwogCi0gICAgaWYgKCFoYXNWYWxpZFBvc2l0aW9uKCkpIHsK
KyAgICBpZiAoIW1faXRlcmF0b3IpIHsKICAgICAgICAgb3V0RGF0YSA9IHsgfTsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL3NlcnZlci9NZW1vcnlPYmplY3RTdG9yZUN1cnNvci5oIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeU9iamVjdFN0b3JlQ3Vyc29yLmgKaW5kZXggYjAw
ZDQzYy4uN2Q3YTIyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvc2VydmVyL01lbW9yeU9iamVjdFN0b3JlQ3Vyc29yLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeU9iamVjdFN0b3JlQ3Vyc29yLmgKQEAgLTUy
LDIyICs1MiwxOSBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBpdGVyYXRlKGNvbnN0IElE
QktleURhdGEmLCB1aW50MzJfdCBjb3VudCwgSURCR2V0UmVzdWx0Jikgb3ZlcnJpZGUgZmluYWw7
CiAKICAgICB2b2lkIHNldEZpcnN0SW5SZW1haW5pbmdSYW5nZShzdGQ6OnNldDxJREJLZXlEYXRh
PiYpOwotICAgIHN0ZDo6c2V0PElEQktleURhdGE+OjppdGVyYXRvciBmaXJzdEZvcndhcmRJdGVy
YXRvckluUmVtYWluaW5nUmFuZ2Uoc3RkOjpzZXQ8SURCS2V5RGF0YT4mKTsKLSAgICBzdGQ6OnNl
dDxJREJLZXlEYXRhPjo6cmV2ZXJzZV9pdGVyYXRvciBmaXJzdFJldmVyc2VJdGVyYXRvckluUmVt
YWluaW5nUmFuZ2Uoc3RkOjpzZXQ8SURCS2V5RGF0YT4mKTsKKyAgICB2b2lkIHNldEZvcndhcmRJ
dGVyYXRvckZyb21SZW1haW5pbmdSYW5nZShzdGQ6OnNldDxJREJLZXlEYXRhPiYpOworICAgIHZv
aWQgc2V0UmV2ZXJzZUl0ZXJhdG9yRnJvbVJlbWFpbmluZ1JhbmdlKHN0ZDo6c2V0PElEQktleURh
dGE+Jik7CiAKICAgICB2b2lkIGluY3JlbWVudEZvcndhcmRJdGVyYXRvcihzdGQ6OnNldDxJREJL
ZXlEYXRhPiYsIGNvbnN0IElEQktleURhdGEmLCB1aW50MzJfdCBjb3VudCk7CiAgICAgdm9pZCBp
bmNyZW1lbnRSZXZlcnNlSXRlcmF0b3Ioc3RkOjpzZXQ8SURCS2V5RGF0YT4mLCBjb25zdCBJREJL
ZXlEYXRhJiwgdWludDMyX3QgY291bnQpOwogCi0gICAgYm9vbCBoYXNJdGVyYXRvcnMoKSBjb25z
dDsKICAgICBib29sIGhhc1ZhbGlkUG9zaXRpb24oKSBjb25zdDsKLSAgICB2b2lkIGNsZWFySXRl
cmF0b3JzKCk7CiAKICAgICBNZW1vcnlPYmplY3RTdG9yZSYgbV9vYmplY3RTdG9yZTsKIAogICAg
IElEQktleVJhbmdlRGF0YSBtX3JlbWFpbmluZ1JhbmdlOwogCi0gICAgV1RGOjpPcHRpb25hbDxz
dGQ6OnNldDxJREJLZXlEYXRhPjo6aXRlcmF0b3I+IG1fZm9yd2FyZEl0ZXJhdG9yOwotICAgIFdU
Rjo6T3B0aW9uYWw8c3RkOjpzZXQ8SURCS2V5RGF0YT46OnJldmVyc2VfaXRlcmF0b3I+IG1fcmV2
ZXJzZUl0ZXJhdG9yOworICAgIFdURjo6T3B0aW9uYWw8c3RkOjpzZXQ8SURCS2V5RGF0YT46Oml0
ZXJhdG9yPiBtX2l0ZXJhdG9yOwogCiAgICAgSURCS2V5RGF0YSBtX2N1cnJlbnRQb3NpdGlvbktl
eTsKIH07Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>