<?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>163194</bug_id>
          
          <creation_ts>2016-10-09 22:15:06 -0700</creation_ts>
          <short_desc>Move encrypted media from legacy to new DOM exceptions</short_desc>
          <delta_ts>2016-10-10 00:13:28 -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>Bindings</component>
          <version>WebKit 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="Darin Adler">darin</reporter>
          <assigned_to name="Darin Adler">darin</assigned_to>
          <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>sam</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1238173</commentid>
    <comment_count>0</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-10-09 22:15:06 -0700</bug_when>
    <thetext>Move encrypted media from legacy to new DOM exceptions</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1238177</commentid>
    <comment_count>1</comment_count>
      <attachid>291062</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-10-09 22:23:33 -0700</bug_when>
    <thetext>Created attachment 291062
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1238191</commentid>
    <comment_count>2</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-10-09 23:25:50 -0700</bug_when>
    <thetext>Darn, looks like really bad timing: https://trac.webkit.org/changeset/206983 renames all these files.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1238194</commentid>
    <comment_count>3</comment_count>
      <attachid>291062</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-10-09 23:34:46 -0700</bug_when>
    <thetext>Comment on attachment 291062
Patch

Rejecting attachment 291062 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.webkit.org&apos;, &apos;--bot-id=webkit-cq-02&apos;, &apos;land-attachment&apos;, &apos;--force-clean&apos;, &apos;--non-interactive&apos;, &apos;--parent-command=commit-queue&apos;, 291062, &apos;--port=mac&apos;]&quot; exit_code: 2 cwd: /Volumes/Data/EWS/WebKit

Last 500 characters of output:
    -&gt; origin/master
Partial-rebuilding .git/svn/refs/remotes/origin/master/.rev_map.268f45cc-cd09-0410-ab3c-d52691b4dbfc ...
Currently at 206981 = 0d236a8285ec8be097a4646de8d66b1ac0342e30
r206982 = cd34d295887f498fb0dd7836e3578e75fcee66e9
r206983 = a8494cf65067b76bc51765c0dcb33c04c77b19a1
Done rebuilding .git/svn/refs/remotes/origin/master/.rev_map.268f45cc-cd09-0410-ab3c-d52691b4dbfc
First, rewinding head to replay your work on top of it...
Fast-forwarded master to refs/remotes/origin/master.

Full output: http://webkit-queues.webkit.org/results/2253850</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1238197</commentid>
    <comment_count>4</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-10-09 23:56:55 -0700</bug_when>
    <thetext>Committed r206984: &lt;http://trac.webkit.org/changeset/206984&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1238202</commentid>
    <comment_count>5</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-10-10 00:13:28 -0700</bug_when>
    <thetext>As a side note, now that we can easily provide exception error messages, we should probably make that extra effort the default style.

We are doing so for binding generated code, which is useful for web developers.
WebCore application-level error messages might be even more useful.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>291062</attachid>
            <date>2016-10-09 22:23:33 -0700</date>
            <delta_ts>2016-10-09 23:34:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-163194-20161009222013.patch</filename>
            <type>text/plain</type>
            <size>26718</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA2OTc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDRhZjViNWE3ZGJjODRh
ZDhmOGU3MDhkNTk5NTU1ZjU0MjRkNDU0Yi4uN2ZkZjhjNzNjNzM3ZjFkMmMyZWVlMTk1MmViZjZl
N2U4MTJlZWQwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU5IEBACisyMDE2LTEwLTA5ICBEYXJp
biBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KKworICAgICAgICBNb3ZlIGVuY3J5cHRlZCBtZWRp
YSBmcm9tIGxlZ2FjeSB0byBuZXcgRE9NIGV4Y2VwdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MzE5NAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9DRE0u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Q0RNOjpjcmVhdGVTZXNzaW9uKTogVGFrZSBhIHJlZmVy
ZW5jZSBpbnN0ZWFkIG9mIGEgcG9pbnRlci4KKyAgICAgICAgKiBNb2R1bGVzL2VuY3J5cHRlZG1l
ZGlhL0NETS5oOiBVcGRhdGVkIGZvciBhYm92ZSBjaGFuZ2UuCisKKyAgICAgICAgKiBNb2R1bGVz
L2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5U2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYUtleVNlc3Npb246OmNyZWF0ZSk6IFRha2UgYSByZWZlcmVuY2UgaW5zdGVhZCBvZiBhIHBv
aW50ZXIuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYUtleVNlc3Npb246Ok1lZGlhS2V5U2Vzc2lv
bik6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFLZXlTZXNzaW9uOjp+TWVkaWFLZXlT
ZXNzaW9uKTogUmVtb3ZlZCB1bm5lZWRlZCBjb2RlIHRoYXQKKyAgICAgICAgc2V0cyBtX3Nlc3Np
b24gdG8gbnVsbC4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhS2V5U2Vzc2lvbjo6a2V5UmVxdWVz
dFRpbWVyRmlyZWQpOiBVc2UgYXV0by4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhS2V5U2Vzc2lv
bjo6dXBkYXRlKTogVXNlIEV4Y2VwdGlvbk9yLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFLZXlT
ZXNzaW9uOjphZGRLZXlUaW1lckZpcmVkKTogVXNlIG1fa2V5cyBkaXJlY3RseSBpbnN0ZWFkCisg
ICAgICAgIG9mIGNhbGxpbmcgdGhlIGtleXMgZnVuY3Rpb24uCisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYUtleVNlc3Npb246OnNlbmRFcnJvcik6IFNldCBtX2Vycm9yIGRpcmVjdGx5IGluc3RlYWQg
b2YKKyAgICAgICAgY2FsbGluZyB0aGUgc2V0RXJyb3IgZnVuY3Rpb24uCisgICAgICAgIChXZWJD
b3JlOjpNZWRpYUtleVNlc3Npb246Om1lZGlhS2V5c1N0b3JhZ2VEaXJlY3RvcnkpOiBVc2UgYXV0
by4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhS2V5U2Vzc2lvbjo6aGFzUGVuZGluZ0FjdGl2aXR5
KTogQ2hlY2sgbV9zZXNzaW9uIGRpcmVjdGx5CisgICAgICAgIGluc3RlYWQgb2Ygd3JpdGluZyAh
aXNDbG9zZWQuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYUtleVNlc3Npb246OnNldEVycm9yKTog
RGVsZXRlZC4KKworICAgICAgICAqIE1vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlTZXNz
aW9uLmg6IFVzZSBwcmFnbWEgb25jZS4gUmVtb3ZlZAorICAgICAgICB1bm5lZWRlZCBpbmNsdWRl
cy4gQ2hhbmdlZCBjcmVhdGUgdG8gdGFrZSBhIHJlZmVyZW5jZSBpbnN0ZWFkIG9mIGEgcG9pbnRl
ci4KKyAgICAgICAgTWFkZSBtb3N0IG1lbWJlcnMgYW5kIGJhc2UgY2xhc3NlcyBwcml2YXRlIGlu
c3RlYWQgb2YgcHVibGljLiBBbHNvIHJlbW92ZWQKKyAgICAgICAgYSBmZXcgbm93LXVubmVlZGVk
IGZ1bmN0aW9ucy4gTWFkZSBldmVyeXRoaW5nIHRoYXQgd2FzIGZvcm1lcmx5IHByb3RlY3RlZAor
ICAgICAgICBwcml2YXRlIGluc3RlYWQsIHNpbmNlIHRoZSB0d28gYXJlIHRoZSBzYW1lIGluIGEg
ZmluYWwgY2xhc3MuCisKKyAgICAgICAgKiBNb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5
U2Vzc2lvbi5pZGw6IFJlbW92ZWQgdW5uZWVkZWQgY29tbWVudHMuCisgICAgICAgIE1vdmVkIGZy
b20gTWF5VGhyb3dMZWdhY3lFeGNlcHRpb24gdG8gTWF5VGhyb3dFeGNlcHRpb24uCisKKyAgICAg
ICAgKiBNb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5cy5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYUtleXM6OmNyZWF0ZSk6IFVzZSBFeGNlcHRpb25Pci4KKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhS2V5czo6TWVkaWFLZXlzKTogTWFkZSBhcmd1bWVudCBiZSBhbiBydmFsdWUgcmVm
ZXJlbmNlLgorICAgICAgICBBbHNvIGluaXRpYWxpemUgbV9tZWRpYUVsZW1lbnQgaW4gdGhlIGNs
YXNzIGRlZmluaXRpb24uCisgICAgICAgIChXZWJDb3JlOjpNZWRpYUtleXM6On5NZWRpYUtleXMp
OiBDYWxsIGRldGFjaEtleXMgaW5zdGVhZCBvZiBzZXRLZXlzKG51bGxwdHIpLgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFLZXlzOjpjcmVhdGVTZXNzaW9uKTogVXNlIEV4Y2VwdGlvbk9yLiBBbHNv
IHBhc3MgcmVmZXJlbmNlCisgICAgICAgIGluc3RlZWFkIG9mIHBvaW50ZXIgdG8gY3JlYXRlLiBB
bHNvIHJlbW92ZWQgdW5uZWVkZWQgc2VwYXJhdGUgY2hlY2tzIGZvciBudWxsCisgICAgICAgIHN0
cmluZ3MgaW4gY29kZSB0aGF0IGFscmVhZHkgY2FsbHMgaXNFbXB0eS4KKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhS2V5czo6aXNUeXBlU3VwcG9ydGVkKTogUmVtb3ZlZCB1bm5lZWRlZCBjaGVja3Mg
Zm9yIG51bGwgc3RyaW5ncworICAgICAgICBpbiBjb2RlIHRoYXQgYWxyZWFkeSBjYWxscyBpc0Vt
cHR5LgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFLZXlzOjpjZG1NZWRpYVBsYXllcik6IFR3ZWFr
ZWQgYSBiaXQuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYUtleXM6OmNhY2hlZEtleUZvcktleUlk
KTogVXNlIGF1dG8uCisKKyAgICAgICAgKiBNb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5
cy5oOiBVc2UgcHJhZ21hIG9uY2UuIFJlbW92ZWQgdW5uZWVkZWQgaW5jbHVkZXMuCisgICAgICAg
IENoYW5nZWQgY2RtKCkgZnVuY3Rpb24gdG8gcmV0dXJuIGEgcmVmZXJlbmNlLiBJbml0aWFsaXpl
IG1fbWVkaWFFbGVtZW50LgorICAgICAgICBVc2UgcHJpdmF0ZSBpbnN0ZWFkIG9mIHByb3RlY3Rl
ZC4KKworICAgICAgICAqIE1vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlzLmlkbDogVXNl
IENvbnN0cnVjdG9yTWF5VGhyb3dFeGNlcHRpb24KKyAgICAgICAgYW5kIE1heVRocm93RXhjZXB0
aW9uIGluc3RlYWQgb2YgdGhlIGxlZ2FjeSB2ZXJzaW9ucy4KKwogMjAxNi0xMC0wOSAgV2Vuc29u
IEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBTdXBwb3J0IElucHV0
RXZlbnQuaW5wdXRUeXBlIGZvciB0aGUgbmV3IElucHV0RXZlbnQgc3BlYwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9DRE0uY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9DRE0uY3BwCmluZGV4IDgyNzVjZmVkMjY2MDVm
NTJmZjRjZjA1NTYzMmU1MWQzYTBiZWI1NzguLmY2ZWY1YWU2YWRiYTZiMDc2MTgzMmFjMTQ4NjE0
YTY3ZGVhY2UzOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVk
bWVkaWEvQ0RNLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlh
L0NETS5jcHAKQEAgLTEzMiw5ICsxMzIsOSBAQCBib29sIENETTo6c3VwcG9ydHNNSU1FVHlwZShj
b25zdCBTdHJpbmcmIG1pbWVUeXBlKSBjb25zdAogICAgIHJldHVybiBtX3ByaXZhdGUtPnN1cHBv
cnRzTUlNRVR5cGUobWltZVR5cGUpOwogfQogCi1zdGQ6OnVuaXF1ZV9wdHI8Q0RNU2Vzc2lvbj4g
Q0RNOjpjcmVhdGVTZXNzaW9uKENETVNlc3Npb25DbGllbnQqIGNsaWVudCkKK3N0ZDo6dW5pcXVl
X3B0cjxDRE1TZXNzaW9uPiBDRE06OmNyZWF0ZVNlc3Npb24oQ0RNU2Vzc2lvbkNsaWVudCYgY2xp
ZW50KQogewotICAgIHN0ZDo6dW5pcXVlX3B0cjxDRE1TZXNzaW9uPiBzZXNzaW9uID0gbV9wcml2
YXRlLT5jcmVhdGVTZXNzaW9uKGNsaWVudCk7CisgICAgYXV0byBzZXNzaW9uID0gbV9wcml2YXRl
LT5jcmVhdGVTZXNzaW9uKCZjbGllbnQpOwogICAgIGlmIChtZWRpYVBsYXllcigpKQogICAgICAg
ICBtZWRpYVBsYXllcigpLT5zZXRDRE1TZXNzaW9uKHNlc3Npb24uZ2V0KCkpOwogICAgIHJldHVy
biBzZXNzaW9uOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRt
ZWRpYS9DRE0uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvQ0RNLmgK
aW5kZXggYWFlNjMyNTMxYjI0YTJlZGMyZjQ2MDA1ZmFiMzg1NWI4Y2EwNmJiZi4uY2ZhNGFlNjg2
ZTYyMmFjNmEyNDc1YTAwMzJmZmEyODc2ZmNiMDNmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9DRE0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2VuY3J5cHRlZG1lZGlhL0NETS5oCkBAIC0yMyw4ICsyMyw3IEBACiAgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotI2lmbmRlZiBDRE1faAotI2RlZmluZSBDRE1f
aAorI3ByYWdtYSBvbmNlCiAKICNpZiBFTkFCTEUoTEVHQUNZX0VOQ1JZUFRFRF9NRURJQSkKIApA
QCAtNjIsNyArNjEsNyBAQCBwdWJsaWM6CiAgICAgfkNETSgpOwogCiAgICAgYm9vbCBzdXBwb3J0
c01JTUVUeXBlKGNvbnN0IFN0cmluZyYpIGNvbnN0OwotICAgIHN0ZDo6dW5pcXVlX3B0cjxDRE1T
ZXNzaW9uPiBjcmVhdGVTZXNzaW9uKENETVNlc3Npb25DbGllbnQqKTsKKyAgICBzdGQ6OnVuaXF1
ZV9wdHI8Q0RNU2Vzc2lvbj4gY3JlYXRlU2Vzc2lvbihDRE1TZXNzaW9uQ2xpZW50Jik7CiAKICAg
ICBjb25zdCBTdHJpbmcmIGtleVN5c3RlbSgpIGNvbnN0IHsgcmV0dXJuIG1fa2V5U3lzdGVtOyB9
CiAKQEAgLTgwLDUgKzc5LDMgQEAgcHJpdmF0ZToKIH0KIAogI2VuZGlmIC8vIEVOQUJMRShMRUdB
Q1lfRU5DUllQVEVEX01FRElBKQotCi0jZW5kaWYgLy8gQ0RNX2gKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlTZXNzaW9uLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlTZXNzaW9uLmNwcApp
bmRleCA0MjYxOGZlYzZkNDJlYTM3ZjgxNTMzZWQ1ZmRhM2IzODgzNTRkMzcxLi5jMWMwMWQyNjVi
MjQyMTQ4NjIwNzAxYTYzNjU4ODY1YTdkZTBlMzE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5U2Vzc2lvbi5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleVNlc3Npb24uY3BwCkBAIC0y
OCwxMyArMjgsMTAgQEAKIAogI2lmIEVOQUJMRShMRUdBQ1lfRU5DUllQVEVEX01FRElBKQogCi0j
aW5jbHVkZSAiQ0RNLmgiCi0jaW5jbHVkZSAiQ0RNU2Vzc2lvbi5oIgogI2luY2x1ZGUgIkRvY3Vt
ZW50LmgiCi0jaW5jbHVkZSAiRXZlbnQuaCIKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCisjaW5j
bHVkZSAiRXhjZXB0aW9uQ29kZS5oIgogI2luY2x1ZGUgIkZpbGVTeXN0ZW0uaCIKLSNpbmNsdWRl
ICJHZW5lcmljRXZlbnRRdWV1ZS5oIgogI2luY2x1ZGUgIk1lZGlhS2V5RXJyb3IuaCIKICNpbmNs
dWRlICJNZWRpYUtleU1lc3NhZ2VFdmVudC5oIgogI2luY2x1ZGUgIk1lZGlhS2V5cy5oIgpAQCAt
NDIsMTkgKzM5LDE5IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUmVmPE1lZGlhS2V5U2Vz
c2lvbj4gTWVkaWFLZXlTZXNzaW9uOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29u
dGV4dCwgTWVkaWFLZXlzKiBrZXlzLCBjb25zdCBTdHJpbmcmIGtleVN5c3RlbSkKK1JlZjxNZWRp
YUtleVNlc3Npb24+IE1lZGlhS2V5U2Vzc2lvbjo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQmIGNvbnRleHQsIE1lZGlhS2V5cyYga2V5cywgY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0pCiB7
CiAgICAgYXV0byBzZXNzaW9uID0gYWRvcHRSZWYoKm5ldyBNZWRpYUtleVNlc3Npb24oY29udGV4
dCwga2V5cywga2V5U3lzdGVtKSk7CiAgICAgc2Vzc2lvbi0+c3VzcGVuZElmTmVlZGVkKCk7CiAg
ICAgcmV0dXJuIHNlc3Npb247CiB9CiAKLU1lZGlhS2V5U2Vzc2lvbjo6TWVkaWFLZXlTZXNzaW9u
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIE1lZGlhS2V5cyoga2V5cywgY29uc3Qg
U3RyaW5nJiBrZXlTeXN0ZW0pCitNZWRpYUtleVNlc3Npb246Ok1lZGlhS2V5U2Vzc2lvbihTY3Jp
cHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBNZWRpYUtleXMmIGtleXMsIGNvbnN0IFN0cmlu
ZyYga2V5U3lzdGVtKQogICAgIDogQWN0aXZlRE9NT2JqZWN0KCZjb250ZXh0KQotICAgICwgbV9r
ZXlzKGtleXMpCisgICAgLCBtX2tleXMoJmtleXMpCiAgICAgLCBtX2tleVN5c3RlbShrZXlTeXN0
ZW0pCiAgICAgLCBtX2FzeW5jRXZlbnRRdWV1ZSgqdGhpcykKLSAgICAsIG1fc2Vzc2lvbihrZXlz
LT5jZG0oKS0+Y3JlYXRlU2Vzc2lvbih0aGlzKSkKKyAgICAsIG1fc2Vzc2lvbihrZXlzLmNkbSgp
LmNyZWF0ZVNlc3Npb24oKnRoaXMpKQogICAgICwgbV9rZXlSZXF1ZXN0VGltZXIoKnRoaXMsICZN
ZWRpYUtleVNlc3Npb246OmtleVJlcXVlc3RUaW1lckZpcmVkKQogICAgICwgbV9hZGRLZXlUaW1l
cigqdGhpcywgJk1lZGlhS2V5U2Vzc2lvbjo6YWRkS2V5VGltZXJGaXJlZCkKIHsKQEAgLTYyLDE5
ICs1OSwxMiBAQCBNZWRpYUtleVNlc3Npb246Ok1lZGlhS2V5U2Vzc2lvbihTY3JpcHRFeGVjdXRp
b25Db250ZXh0JiBjb250ZXh0LCBNZWRpYUtleXMqIGtleQogCiBNZWRpYUtleVNlc3Npb246On5N
ZWRpYUtleVNlc3Npb24oKQogewotICAgIGlmIChtX3Nlc3Npb24pIHsKKyAgICBpZiAobV9zZXNz
aW9uKQogICAgICAgICBtX3Nlc3Npb24tPnNldENsaWVudChudWxscHRyKTsKLSAgICAgICAgbV9z
ZXNzaW9uID0gbnVsbHB0cjsKLSAgICB9CiAKICAgICBtX2FzeW5jRXZlbnRRdWV1ZS5jYW5jZWxB
bGxFdmVudHMoKTsKIH0KIAotdm9pZCBNZWRpYUtleVNlc3Npb246OnNldEVycm9yKE1lZGlhS2V5
RXJyb3IqIGVycm9yKQotewotICAgIG1fZXJyb3IgPSBlcnJvcjsKLX0KLQogdm9pZCBNZWRpYUtl
eVNlc3Npb246OmNsb3NlKCkKIHsKICAgICBpZiAobV9zZXNzaW9uKQpAQCAtMTA0LDcgKzk0LDcg
QEAgdm9pZCBNZWRpYUtleVNlc3Npb246OmtleVJlcXVlc3RUaW1lckZpcmVkKCkKICAgICAgICAg
cmV0dXJuOwogCiAgICAgd2hpbGUgKCFtX3BlbmRpbmdLZXlSZXF1ZXN0cy5pc0VtcHR5KCkpIHsK
LSAgICAgICAgUGVuZGluZ0tleVJlcXVlc3QgcmVxdWVzdCA9IG1fcGVuZGluZ0tleVJlcXVlc3Rz
LnRha2VGaXJzdCgpOworICAgICAgICBhdXRvIHJlcXVlc3QgPSBtX3BlbmRpbmdLZXlSZXF1ZXN0
cy50YWtlRmlyc3QoKTsKIAogICAgICAgICAvLyBOT1RFOiBDb250aW51ZWQgZnJvbSBzdGVwIDUg
aW4gTWVkaWFLZXlzOjpjcmVhdGVTZXNzaW9uKCkuCiAgICAgICAgIC8vIFRoZSB1c2VyIGFnZW50
IHdpbGwgYXN5bmNocm9ub3VzbHkgZXhlY3V0ZSB0aGUgZm9sbG93aW5nIHN0ZXBzIGluIHRoZSB0
YXNrOgpAQCAtMTE3LDcgKzEwNyw3IEBAIHZvaWQgTWVkaWFLZXlTZXNzaW9uOjprZXlSZXF1ZXN0
VGltZXJGaXJlZCgpCiAKICAgICAgICAgLy8gMy4gVXNlIGNkbSB0byBnZW5lcmF0ZSBhIGtleSBy
ZXF1ZXN0IGFuZCBmb2xsb3cgdGhlIHN0ZXBzIGZvciB0aGUgZmlyc3QgbWF0Y2hpbmcgY29uZGl0
aW9uIGZyb20gdGhlIGZvbGxvd2luZyBsaXN0OgogCi0gICAgICAgIFJlZlB0cjxVaW50OEFycmF5
PiBrZXlSZXF1ZXN0ID0gbV9zZXNzaW9uLT5nZW5lcmF0ZUtleVJlcXVlc3QocmVxdWVzdC5taW1l
VHlwZSwgcmVxdWVzdC5pbml0RGF0YS5wdHIoKSwgZGVzdGluYXRpb25VUkwsIGVycm9yQ29kZSwg
c3lzdGVtQ29kZSk7CisgICAgICAgIGF1dG8ga2V5UmVxdWVzdCA9IG1fc2Vzc2lvbi0+Z2VuZXJh
dGVLZXlSZXF1ZXN0KHJlcXVlc3QubWltZVR5cGUsIHJlcXVlc3QuaW5pdERhdGEucHRyKCksIGRl
c3RpbmF0aW9uVVJMLCBlcnJvckNvZGUsIHN5c3RlbUNvZGUpOwogCiAgICAgICAgIC8vIE90aGVy
d2lzZSBbaWYgYSByZXF1ZXN0IGlzIG5vdCBzdWNjZXNzZnVsbHkgZ2VuZXJhdGVkXToKICAgICAg
ICAgaWYgKGVycm9yQ29kZSkgewpAQCAtMTQwLDIwICsxMzAsMjAgQEAgdm9pZCBNZWRpYUtleVNl
c3Npb246OmtleVJlcXVlc3RUaW1lckZpcmVkKCkKICAgICB9CiB9CiAKLXZvaWQgTWVkaWFLZXlT
ZXNzaW9uOjp1cGRhdGUoUmVmPFVpbnQ4QXJyYXk+JiYga2V5LCBFeGNlcHRpb25Db2RlJiBlYykK
K0V4Y2VwdGlvbk9yPHZvaWQ+IE1lZGlhS2V5U2Vzc2lvbjo6dXBkYXRlKFJlZjxVaW50OEFycmF5
PiYmIGtleSkKIHsKICAgICAvLyBGcm9tIDxodHRwOi8vZHZjcy53My5vcmcvaGcvaHRtbC1tZWRp
YS9yYXctZmlsZS90aXAvZW5jcnlwdGVkLW1lZGlhL2VuY3J5cHRlZC1tZWRpYS5odG1sI2RvbS1h
ZGRrZXk+OgogICAgIC8vIFRoZSBhZGRLZXkoa2V5KSBtZXRob2QgbXVzdCBydW4gdGhlIGZvbGxv
d2luZyBzdGVwczoKICAgICAvLyAxLiBJZiB0aGUgZmlyc3Qgb3Igc2Vjb25kIGFyZ3VtZW50IFtz
aWNdIGlzIGFuIGVtcHR5IGFycmF5LCB0aHJvdyBhbiBJTlZBTElEX0FDQ0VTU19FUlIuCiAgICAg
Ly8gTk9URTogdGhlIHJlZmVyZW5jZSB0byBhICJzZWNvbmQgYXJndW1lbnQiIGlzIGEgc3BlYyBi
dWcuCi0gICAgaWYgKCFrZXktPmxlbmd0aCgpKSB7Ci0gICAgICAgIGVjID0gSU5WQUxJRF9BQ0NF
U1NfRVJSOwotICAgICAgICByZXR1cm47Ci0gICAgfQorICAgIGlmICgha2V5LT5sZW5ndGgoKSkK
KyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IElOVkFMSURfQUNDRVNTX0VSUiB9OwogCiAgICAg
Ly8gMi4gU2NoZWR1bGUgYSB0YXNrIHRvIGhhbmRsZSB0aGUgY2FsbCwgcHJvdmlkaW5nIGtleS4K
ICAgICBtX3BlbmRpbmdLZXlzLmFwcGVuZChXVEZNb3ZlKGtleSkpOwogICAgIG1fYWRkS2V5VGlt
ZXIuc3RhcnRPbmVTaG90KDApOworCisgICAgcmV0dXJuIHsgfTsKIH0KIAogdm9pZCBNZWRpYUtl
eVNlc3Npb246OmFkZEtleVRpbWVyRmlyZWQoKQpAQCAtMTkyLDcgKzE4Miw4IEBAIHZvaWQgTWVk
aWFLZXlTZXNzaW9uOjphZGRLZXlUaW1lckZpcmVkKCkKICAgICAgICAgICAgIGtleWFkZGVkRXZl
bnQtPnNldFRhcmdldCh0aGlzKTsKICAgICAgICAgICAgIG1fYXN5bmNFdmVudFF1ZXVlLmVucXVl
dWVFdmVudChXVEZNb3ZlKGtleWFkZGVkRXZlbnQpKTsKIAotICAgICAgICAgICAga2V5cygpLT5r
ZXlBZGRlZCgpOworICAgICAgICAgICAgQVNTRVJUKG1fa2V5cyk7CisgICAgICAgICAgICBtX2tl
eXMtPmtleUFkZGVkKCk7CiAgICAgICAgIH0KIAogICAgICAgICAvLyAyLjguIElmIGFueSBvZiB0
aGUgcHJlY2VkaW5nIHN0ZXBzIGluIHRoZSB0YXNrIGZhaWxlZApAQCAtMjE4LDggKzIwOSw3IEBA
IHZvaWQgTWVkaWFLZXlTZXNzaW9uOjpzZW5kTWVzc2FnZShVaW50OEFycmF5KiBtZXNzYWdlLCBT
dHJpbmcgZGVzdGluYXRpb25VUkwpCiAKIHZvaWQgTWVkaWFLZXlTZXNzaW9uOjpzZW5kRXJyb3Io
Q0RNU2Vzc2lvbkNsaWVudDo6TWVkaWFLZXlFcnJvckNvZGUgZXJyb3JDb2RlLCB1aW50MzJfdCBz
eXN0ZW1Db2RlKQogewotICAgIFJlZjxNZWRpYUtleUVycm9yPiBlcnJvciA9IE1lZGlhS2V5RXJy
b3I6OmNyZWF0ZShlcnJvckNvZGUsIHN5c3RlbUNvZGUpLmdldCgpOwotICAgIHNldEVycm9yKGVy
cm9yLnB0cigpKTsKKyAgICBtX2Vycm9yID0gTWVkaWFLZXlFcnJvcjo6Y3JlYXRlKGVycm9yQ29k
ZSwgc3lzdGVtQ29kZSk7CiAKICAgICBhdXRvIGtleWVycm9yRXZlbnQgPSBFdmVudDo6Y3JlYXRl
KGV2ZW50TmFtZXMoKS53ZWJraXRrZXllcnJvckV2ZW50LCBmYWxzZSwgZmFsc2UpOwogICAgIGtl
eWVycm9yRXZlbnQtPnNldFRhcmdldCh0aGlzKTsKQEAgLTIyOCwxOSArMjE4LDE5IEBAIHZvaWQg
TWVkaWFLZXlTZXNzaW9uOjpzZW5kRXJyb3IoQ0RNU2Vzc2lvbkNsaWVudDo6TWVkaWFLZXlFcnJv
ckNvZGUgZXJyb3JDb2RlLCB1CiAKIFN0cmluZyBNZWRpYUtleVNlc3Npb246Om1lZGlhS2V5c1N0
b3JhZ2VEaXJlY3RvcnkoKSBjb25zdAogewotICAgIERvY3VtZW50KiBkb2N1bWVudCA9IGRvd25j
YXN0PERvY3VtZW50PihzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOworICAgIGF1dG8qIGRvY3Vt
ZW50ID0gZG93bmNhc3Q8RG9jdW1lbnQ+KHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7CiAgICAg
aWYgKCFkb2N1bWVudCkKICAgICAgICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7CiAKLSAgICBTZXR0
aW5ncyogc2V0dGluZ3MgPSBkb2N1bWVudC0+c2V0dGluZ3MoKTsKKyAgICBhdXRvKiBzZXR0aW5n
cyA9IGRvY3VtZW50LT5zZXR0aW5ncygpOwogICAgIGlmICghc2V0dGluZ3MpCiAgICAgICAgIHJl
dHVybiBlbXB0eVN0cmluZygpOwogCi0gICAgU3RyaW5nIHN0b3JhZ2VEaXJlY3RvcnkgPSBzZXR0
aW5ncy0+bWVkaWFLZXlzU3RvcmFnZURpcmVjdG9yeSgpOworICAgIGF1dG8gc3RvcmFnZURpcmVj
dG9yeSA9IHNldHRpbmdzLT5tZWRpYUtleXNTdG9yYWdlRGlyZWN0b3J5KCk7CiAgICAgaWYgKHN0
b3JhZ2VEaXJlY3RvcnkuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gZW1wdHlTdHJpbmcoKTsK
IAotICAgIFNlY3VyaXR5T3JpZ2luKiBvcmlnaW4gPSBkb2N1bWVudC0+c2VjdXJpdHlPcmlnaW4o
KTsKKyAgICBhdXRvKiBvcmlnaW4gPSBkb2N1bWVudC0+c2VjdXJpdHlPcmlnaW4oKTsKICAgICBp
ZiAoIW9yaWdpbikKICAgICAgICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7CiAKQEAgLTI0OSw3ICsy
MzksNyBAQCBTdHJpbmcgTWVkaWFLZXlTZXNzaW9uOjptZWRpYUtleXNTdG9yYWdlRGlyZWN0b3J5
KCkgY29uc3QKIAogYm9vbCBNZWRpYUtleVNlc3Npb246Omhhc1BlbmRpbmdBY3Rpdml0eSgpIGNv
bnN0CiB7Ci0gICAgcmV0dXJuIChtX2tleXMgJiYgIWlzQ2xvc2VkKCkpIHx8IG1fYXN5bmNFdmVu
dFF1ZXVlLmhhc1BlbmRpbmdFdmVudHMoKTsKKyAgICByZXR1cm4gKG1fa2V5cyAmJiBtX3Nlc3Np
b24pIHx8IG1fYXN5bmNFdmVudFF1ZXVlLmhhc1BlbmRpbmdFdmVudHMoKTsKIH0KIAogdm9pZCBN
ZWRpYUtleVNlc3Npb246OnN0b3AoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleVNlc3Npb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlTZXNzaW9uLmgKaW5kZXggNTc2YTlhNWNmNGYzNmU3
YmY5ZDk3MTUzMmZhMTBmNzUwYjIzMzkxMy4uYjgwNjE2YjJmMDlhY2I0MmUzYzdjM2ZjNWMwZGQ0
ZDEzNjZlMmU2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRt
ZWRpYS9NZWRpYUtleVNlc3Npb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5
cHRlZG1lZGlhL01lZGlhS2V5U2Vzc2lvbi5oCkBAIC0yMyw3MCArMjMsNjUgQEAKICAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0jaWZuZGVmIE1lZGlhS2V5U2Vzc2lv
bl9oCi0jZGVmaW5lIE1lZGlhS2V5U2Vzc2lvbl9oCisjcHJhZ21hIG9uY2UKIAogI2lmIEVOQUJM
RShMRUdBQ1lfRU5DUllQVEVEX01FRElBKQogCiAjaW5jbHVkZSAiQWN0aXZlRE9NT2JqZWN0Lmgi
CiAjaW5jbHVkZSAiQ0RNU2Vzc2lvbi5oIgogI2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCi0jaW5j
bHVkZSAiRXhjZXB0aW9uQ29kZS5oIgorI2luY2x1ZGUgIkV4Y2VwdGlvbk9yLmgiCiAjaW5jbHVk
ZSAiR2VuZXJpY0V2ZW50UXVldWUuaCIKICNpbmNsdWRlICJUaW1lci5oIgogI2luY2x1ZGUgPHJ1
bnRpbWUvVWludDhBcnJheS5oPgogI2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgotI2luY2x1ZGUgPHd0
Zi9SZWZDb3VudGVkLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgTWVkaWFLZXlFcnJvcjsKIGNsYXNzIE1lZGlhS2V5czsK
IAotY2xhc3MgTWVkaWFLZXlTZXNzaW9uIGZpbmFsIDogcHVibGljIFJlZkNvdW50ZWQ8TWVkaWFL
ZXlTZXNzaW9uPiwgcHVibGljIEV2ZW50VGFyZ2V0V2l0aElubGluZURhdGEsIHB1YmxpYyBBY3Rp
dmVET01PYmplY3QsIHB1YmxpYyBDRE1TZXNzaW9uQ2xpZW50IHsKK2NsYXNzIE1lZGlhS2V5U2Vz
c2lvbiBmaW5hbCA6IHB1YmxpYyBSZWZDb3VudGVkPE1lZGlhS2V5U2Vzc2lvbj4sIHB1YmxpYyBF
dmVudFRhcmdldFdpdGhJbmxpbmVEYXRhLCBwcml2YXRlIEFjdGl2ZURPTU9iamVjdCwgcHJpdmF0
ZSBDRE1TZXNzaW9uQ2xpZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPE1lZGlhS2V5U2Vz
c2lvbj4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBNZWRpYUtleXMqLCBjb25zdCBT
dHJpbmcmIGtleVN5c3RlbSk7CisgICAgc3RhdGljIFJlZjxNZWRpYUtleVNlc3Npb24+IGNyZWF0
ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgTWVkaWFLZXlzJiwgY29uc3QgU3RyaW5nJiBrZXlT
eXN0ZW0pOwogICAgIH5NZWRpYUtleVNlc3Npb24oKTsKIAorICAgIE1lZGlhS2V5RXJyb3IqIGVy
cm9yKCkgeyByZXR1cm4gbV9lcnJvci5nZXQoKTsgfQogICAgIGNvbnN0IFN0cmluZyYga2V5U3lz
dGVtKCkgY29uc3QgeyByZXR1cm4gbV9rZXlTeXN0ZW07IH0KLSAgICBDRE1TZXNzaW9uKiBzZXNz
aW9uKCkgeyByZXR1cm4gbV9zZXNzaW9uLmdldCgpOyB9CiAgICAgY29uc3QgU3RyaW5nJiBzZXNz
aW9uSWQoKSBjb25zdDsKKyAgICBFeGNlcHRpb25Pcjx2b2lkPiB1cGRhdGUoUmVmPFVpbnQ4QXJy
YXk+JiYga2V5KTsKKyAgICB2b2lkIGNsb3NlKCk7CiAKLSAgICB2b2lkIHNldEVycm9yKE1lZGlh
S2V5RXJyb3IqKTsKLSAgICBNZWRpYUtleUVycm9yKiBlcnJvcigpIHsgcmV0dXJuIG1fZXJyb3Iu
Z2V0KCk7IH0KKyAgICBDRE1TZXNzaW9uKiBzZXNzaW9uKCkgeyByZXR1cm4gbV9zZXNzaW9uLmdl
dCgpOyB9CiAKLSAgICB2b2lkIHNldEtleXMoTWVkaWFLZXlzKiBrZXlzKSB7IG1fa2V5cyA9IGtl
eXM7IH0KLSAgICBNZWRpYUtleXMqIGtleXMoKSBjb25zdCB7IHJldHVybiBtX2tleXM7IH0KKyAg
ICB2b2lkIGRldGFjaEtleXMoKSB7IG1fa2V5cyA9IG51bGxwdHI7IH0KIAogICAgIHZvaWQgZ2Vu
ZXJhdGVLZXlSZXF1ZXN0KGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIFJlZjxVaW50OEFycmF5PiYm
IGluaXREYXRhKTsKLSAgICB2b2lkIHVwZGF0ZShSZWY8VWludDhBcnJheT4mJiBrZXksIEV4Y2Vw
dGlvbkNvZGUmKTsKLQotICAgIGJvb2wgaXNDbG9zZWQoKSBjb25zdCB7IHJldHVybiAhbV9zZXNz
aW9uOyB9Ci0gICAgdm9pZCBjbG9zZSgpOwotCiAgICAgUmVmUHRyPEFycmF5QnVmZmVyPiBjYWNo
ZWRLZXlGb3JLZXlJZChjb25zdCBTdHJpbmcmIGtleUlkKSBjb25zdDsKIAotICAgIHVzaW5nIFJl
ZkNvdW50ZWQ8TWVkaWFLZXlTZXNzaW9uPjo6cmVmOwotICAgIHVzaW5nIFJlZkNvdW50ZWQ8TWVk
aWFLZXlTZXNzaW9uPjo6ZGVyZWY7Ci0KLSAgICB2b2lkIGVucXVldWVFdmVudChSZWZQdHI8RXZl
bnQ+JiYpOworICAgIHVzaW5nIFJlZkNvdW50ZWQ6OnJlZjsKKyAgICB1c2luZyBSZWZDb3VudGVk
OjpkZXJlZjsKIAotICAgIEV2ZW50VGFyZ2V0SW50ZXJmYWNlIGV2ZW50VGFyZ2V0SW50ZXJmYWNl
KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gTWVkaWFLZXlTZXNzaW9uRXZlbnRUYXJnZXRJbnRl
cmZhY2VUeXBlOyB9Ci0gICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9u
Q29udGV4dCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIEFjdGl2ZURPTU9iamVjdDo6c2NyaXB0
RXhlY3V0aW9uQ29udGV4dCgpOyB9CisgICAgYm9vbCBoYXNQZW5kaW5nQWN0aXZpdHkoKSBjb25z
dCBmaW5hbDsKIAotICAgIC8vIEFjdGl2ZURPTU9iamVjdCBBUEkuCi0gICAgYm9vbCBoYXNQZW5k
aW5nQWN0aXZpdHkoKSBjb25zdCBvdmVycmlkZTsKLQotcHJvdGVjdGVkOgotICAgIE1lZGlhS2V5
U2Vzc2lvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgTWVkaWFLZXlzKiwgY29uc3QgU3RyaW5n
JiBrZXlTeXN0ZW0pOworcHJpdmF0ZToKKyAgICBNZWRpYUtleVNlc3Npb24oU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCYsIE1lZGlhS2V5cyYsIGNvbnN0IFN0cmluZyYga2V5U3lzdGVtKTsKICAgICB2
b2lkIGtleVJlcXVlc3RUaW1lckZpcmVkKCk7CiAgICAgdm9pZCBhZGRLZXlUaW1lckZpcmVkKCk7
CiAKLSAgICAvLyBDRE1TZXNzaW9uQ2xpZW50Ci0gICAgdm9pZCBzZW5kTWVzc2FnZShVaW50OEFy
cmF5KiwgU3RyaW5nIGRlc3RpbmF0aW9uVVJMKSBvdmVycmlkZTsKLSAgICB2b2lkIHNlbmRFcnJv
cihNZWRpYUtleUVycm9yQ29kZSwgdWludDMyX3Qgc3lzdGVtQ29kZSkgb3ZlcnJpZGU7Ci0gICAg
U3RyaW5nIG1lZGlhS2V5c1N0b3JhZ2VEaXJlY3RvcnkoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2
b2lkIHNlbmRNZXNzYWdlKFVpbnQ4QXJyYXkqLCBTdHJpbmcgZGVzdGluYXRpb25VUkwpIGZpbmFs
OworICAgIHZvaWQgc2VuZEVycm9yKE1lZGlhS2V5RXJyb3JDb2RlLCB1aW50MzJfdCBzeXN0ZW1D
b2RlKSBmaW5hbDsKKyAgICBTdHJpbmcgbWVkaWFLZXlzU3RvcmFnZURpcmVjdG9yeSgpIGNvbnN0
IGZpbmFsOworCisgICAgdm9pZCByZWZFdmVudFRhcmdldCgpIGZpbmFsIHsgcmVmKCk7IH0KKyAg
ICB2b2lkIGRlcmVmRXZlbnRUYXJnZXQoKSBmaW5hbCB7IGRlcmVmKCk7IH0KKworICAgIHZvaWQg
c3RvcCgpIGZpbmFsOworICAgIGJvb2wgY2FuU3VzcGVuZEZvckRvY3VtZW50U3VzcGVuc2lvbigp
IGNvbnN0IGZpbmFsOworICAgIGNvbnN0IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25z
dCBmaW5hbDsKKworICAgIEV2ZW50VGFyZ2V0SW50ZXJmYWNlIGV2ZW50VGFyZ2V0SW50ZXJmYWNl
KCkgY29uc3QgZmluYWwgeyByZXR1cm4gTWVkaWFLZXlTZXNzaW9uRXZlbnRUYXJnZXRJbnRlcmZh
Y2VUeXBlOyB9CisgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIEFjdGl2ZURPTU9iamVjdDo6c2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpOyB9CiAKICAgICBNZWRpYUtleXMqIG1fa2V5czsKICAgICBTdHJpbmcgbV9r
ZXlTeXN0ZW07CkBAIC0xMDQsMTkgKzk5LDggQEAgcHJvdGVjdGVkOgogCiAgICAgRGVxdWU8UmVm
PFVpbnQ4QXJyYXk+PiBtX3BlbmRpbmdLZXlzOwogICAgIFRpbWVyIG1fYWRkS2V5VGltZXI7Ci0K
LXByaXZhdGU6Ci0gICAgdm9pZCByZWZFdmVudFRhcmdldCgpIG92ZXJyaWRlIHsgcmVmKCk7IH0K
LSAgICB2b2lkIGRlcmVmRXZlbnRUYXJnZXQoKSBvdmVycmlkZSB7IGRlcmVmKCk7IH0KLQotICAg
IC8vIEFjdGl2ZURPTU9iamVjdCBBUEkuCi0gICAgdm9pZCBzdG9wKCkgb3ZlcnJpZGU7Ci0gICAg
Ym9vbCBjYW5TdXNwZW5kRm9yRG9jdW1lbnRTdXNwZW5zaW9uKCkgY29uc3Qgb3ZlcnJpZGU7Ci0g
ICAgY29uc3QgY2hhciogYWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0IG92ZXJyaWRlOwogfTsK
IAogfQogCiAjZW5kaWYgLy8gRU5BQkxFKExFR0FDWV9FTkNSWVBURURfTUVESUEpCi0KLSNlbmRp
ZiAvLyBNZWRpYUtleVNlc3Npb25faApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleVNlc3Npb24uaWRsIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleVNlc3Npb24uaWRsCmluZGV4IDE1NjFhZmJmYjk1
NjRiZTE1NDMxZWFiNmRlZjc0ZGZhY2JhYjU2YTMuLjYxOWQ2MDMzZjc1ZWIxN2VhMmQ5MjNkM2Ri
Mjg4NTAyNTdjYmU2YjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlw
dGVkbWVkaWEvTWVkaWFLZXlTZXNzaW9uLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5U2Vzc2lvbi5pZGwKQEAgLTEsNSArMSw1IEBACiAvKgot
ICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoK
ICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNCwxOSArMjQsMTYgQEAKICAgICAgKi8K
IAogWworICAgIEFjdGl2ZURPTU9iamVjdCwKICAgICBDb25kaXRpb25hbD1MRUdBQ1lfRU5DUllQ
VEVEX01FRElBLAogICAgIEludGVyZmFjZU5hbWU9V2ViS2l0TWVkaWFLZXlTZXNzaW9uLAotICAg
IEFjdGl2ZURPTU9iamVjdCwKIF0gaW50ZXJmYWNlIE1lZGlhS2V5U2Vzc2lvbiA6IEV2ZW50VGFy
Z2V0IHsKLSAgICAvLyBlcnJvciBzdGF0ZQogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBNZWRpYUtl
eUVycm9yIGVycm9yOwogCi0gICAgLy8gc2Vzc2lvbiBwcm9wZXJ0aWVzCiAgICAgcmVhZG9ubHkg
YXR0cmlidXRlIERPTVN0cmluZyBrZXlTeXN0ZW07CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERP
TVN0cmluZyBzZXNzaW9uSWQ7CiAKLSAgICAvLyBzZXNzaW9uIG9wZXJhdGlvbnMKLSAgICBbTWF5
VGhyb3dMZWdhY3lFeGNlcHRpb25dIHZvaWQgdXBkYXRlKFVpbnQ4QXJyYXkga2V5KTsKKyAgICBb
TWF5VGhyb3dFeGNlcHRpb25dIHZvaWQgdXBkYXRlKFVpbnQ4QXJyYXkga2V5KTsKICAgICB2b2lk
IGNsb3NlKCk7CiAgICAgCiAgICAgYXR0cmlidXRlIEV2ZW50SGFuZGxlciBvbndlYmtpdGtleWFk
ZGVkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9N
ZWRpYUtleXMuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRp
YUtleXMuY3BwCmluZGV4IDhiMjUwNDg1NDBkMzkzZTZkN2Q3OTJlY2RhN2QyMjhmZmQzMDQ2NTAu
LjgxZTY5MmYyZmZjNDc1ODkyMDA3NTM1YTkyZWE1YmRjNWJlZGE5NGYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlzLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5cy5jcHAKQEAgLTI4
LDM1ICsyOCwyOCBAQAogCiAjaWYgRU5BQkxFKExFR0FDWV9FTkNSWVBURURfTUVESUEpCiAKLSNp
bmNsdWRlICJDRE0uaCIKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCiAjaW5jbHVkZSAiSFRNTE1l
ZGlhRWxlbWVudC5oIgotI2luY2x1ZGUgIk1lZGlhS2V5TWVzc2FnZUV2ZW50LmgiCiAjaW5jbHVk
ZSAiTWVkaWFLZXlTZXNzaW9uLmgiCi0jaW5jbHVkZSAiVVVJRC5oIgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKLVJlZlB0cjxNZWRpYUtleXM+IE1lZGlhS2V5czo6Y3JlYXRlKGNvbnN0IFN0cmlu
ZyYga2V5U3lzdGVtLCBFeGNlcHRpb25Db2RlJiBlYykKK0V4Y2VwdGlvbk9yPFJlZjxNZWRpYUtl
eXM+PiBNZWRpYUtleXM6OmNyZWF0ZShjb25zdCBTdHJpbmcmIGtleVN5c3RlbSkKIHsKICAgICAv
LyBGcm9tIDxodHRwOi8vZHZjcy53My5vcmcvaGcvaHRtbC1tZWRpYS9yYXctZmlsZS90aXAvZW5j
cnlwdGVkLW1lZGlhL2VuY3J5cHRlZC1tZWRpYS5odG1sI2RvbS1tZWRpYS1rZXlzLWNvbnN0cnVj
dG9yPjoKICAgICAvLyBUaGUgTWVkaWFLZXlzKGtleVN5c3RlbSkgY29uc3RydWN0b3IgbXVzdCBy
dW4gdGhlIGZvbGxvd2luZyBzdGVwczoKIAogICAgIC8vIDEuIElmIGtleVN5c3RlbSBpcyBudWxs
IG9yIGFuIGVtcHR5IHN0cmluZywgdGhyb3cgYW4gSU5WQUxJRF9BQ0NFU1NfRVJSIGV4Y2VwdGlv
biBhbmQgYWJvcnQgdGhlc2Ugc3RlcHMuCi0gICAgaWYgKGtleVN5c3RlbS5pc051bGwoKSB8fCBr
ZXlTeXN0ZW0uaXNFbXB0eSgpKSB7Ci0gICAgICAgIGVjID0gSU5WQUxJRF9BQ0NFU1NfRVJSOwot
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICB9CisgICAgaWYgKGtleVN5c3RlbS5pc0VtcHR5
KCkpCisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJTlZBTElEX0FDQ0VTU19FUlIgfTsKIAog
ICAgIC8vIDIuIElmIGtleVN5c3RlbSBpcyBub3Qgb25lIG9mIHRoZSB1c2VyIGFnZW50J3Mgc3Vw
cG9ydGVkIEtleSBTeXN0ZW1zLCB0aHJvdyBhIE5PVF9TVVBQT1JURURfRVJSIGFuZCBhYm9ydCB0
aGVzZSBzdGVwcy4KLSAgICBpZiAoIUNETTo6c3VwcG9ydHNLZXlTeXN0ZW0oa2V5U3lzdGVtKSkg
ewotICAgICAgICBlYyA9IE5PVF9TVVBQT1JURURfRVJSOwotICAgICAgICByZXR1cm4gbnVsbHB0
cjsKLSAgICB9CisgICAgaWYgKCFDRE06OnN1cHBvcnRzS2V5U3lzdGVtKGtleVN5c3RlbSkpCisg
ICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOT1RfU1VQUE9SVEVEX0VSUiB9OwogCiAgICAgLy8g
My4gTGV0IGNkbSBiZSB0aGUgY29udGVudCBkZWNyeXB0aW9uIG1vZHVsZSBjb3JyZXNwb25kaW5n
IHRvIGtleVN5c3RlbS4KICAgICAvLyA0LiBMb2FkIGNkbSBpZiBuZWNlc3NhcnkuCi0gICAgc3Rk
Ojp1bmlxdWVfcHRyPENETT4gY2RtID0gQ0RNOjpjcmVhdGUoa2V5U3lzdGVtKTsKKyAgICBhdXRv
IGNkbSA9IENETTo6Y3JlYXRlKGtleVN5c3RlbSk7CiAKICAgICAvLyA1LiBDcmVhdGUgYSBuZXcg
TWVkaWFLZXlzIG9iamVjdC4KICAgICAvLyA1LjEgTGV0IHRoZSBrZXlTeXN0ZW0gYXR0cmlidXRl
IGJlIGtleVN5c3RlbS4KQEAgLTY0LDkgKzU3LDggQEAgUmVmUHRyPE1lZGlhS2V5cz4gTWVkaWFL
ZXlzOjpjcmVhdGUoY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0sIEV4Y2VwdGlvbkNvZGUmIGVjKQog
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IE1lZGlhS2V5cyhrZXlTeXN0ZW0sIFdURk1vdmUoY2Rt
KSkpOwogfQogCi1NZWRpYUtleXM6Ok1lZGlhS2V5cyhjb25zdCBTdHJpbmcmIGtleVN5c3RlbSwg
c3RkOjp1bmlxdWVfcHRyPENETT4gY2RtKQotICAgIDogbV9tZWRpYUVsZW1lbnQobnVsbHB0cikK
LSAgICAsIG1fa2V5U3lzdGVtKGtleVN5c3RlbSkKK01lZGlhS2V5czo6TWVkaWFLZXlzKGNvbnN0
IFN0cmluZyYga2V5U3lzdGVtLCBzdGQ6OnVuaXF1ZV9wdHI8Q0RNPiYmIGNkbSkKKyAgICA6IG1f
a2V5U3lzdGVtKGtleVN5c3RlbSkKICAgICAsIG1fY2RtKFdURk1vdmUoY2RtKSkKIHsKICAgICBt
X2NkbS0+c2V0Q2xpZW50KHRoaXMpOwpAQCAtNzgsMzkgKzcwLDMzIEBAIE1lZGlhS2V5czo6fk1l
ZGlhS2V5cygpCiAgICAgLy8gV2hlbiBkZXN0cm95aW5nIGEgTWVkaWFLZXlzIG9iamVjdCwgZm9s
bG93IHRoZSBzdGVwcyBpbiBjbG9zZSgpLgogICAgIGZvciAoYXV0byYgc2Vzc2lvbiA6IG1fc2Vz
c2lvbnMpIHsKICAgICAgICAgc2Vzc2lvbi0+Y2xvc2UoKTsKLSAgICAgICAgc2Vzc2lvbi0+c2V0
S2V5cyhudWxscHRyKTsKKyAgICAgICAgc2Vzc2lvbi0+ZGV0YWNoS2V5cygpOwogICAgIH0KIH0K
IAotUmVmUHRyPE1lZGlhS2V5U2Vzc2lvbj4gTWVkaWFLZXlzOjpjcmVhdGVTZXNzaW9uKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIGNvbnN0IFN0cmluZyYgdHlwZSwgUmVmPFVpbnQ4
QXJyYXk+JiYgaW5pdERhdGEsIEV4Y2VwdGlvbkNvZGUmIGVjKQorRXhjZXB0aW9uT3I8UmVmPE1l
ZGlhS2V5U2Vzc2lvbj4+IE1lZGlhS2V5czo6Y3JlYXRlU2Vzc2lvbihTY3JpcHRFeGVjdXRpb25D
b250ZXh0JiBjb250ZXh0LCBjb25zdCBTdHJpbmcmIHR5cGUsIFJlZjxVaW50OEFycmF5PiYmIGlu
aXREYXRhKQogewogICAgIC8vIEZyb20gPGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMTQvV0QtZW5j
cnlwdGVkLW1lZGlhLTIwMTQwMjE4LyNkb20tY3JlYXRlc2Vzc2lvbj46CiAgICAgLy8gVGhlIGNy
ZWF0ZVNlc3Npb24odHlwZSwgaW5pdERhdGEpIG1ldGhvZCBtdXN0IHJ1biB0aGUgZm9sbG93aW5n
IHN0ZXBzOgogICAgIC8vIE5vdGU6IFRoZSBjb250ZW50cyBvZiBpbml0RGF0YSBhcmUgY29udGFp
bmVyLXNwZWNpZmljIEluaXRpYWxpemF0aW9uIERhdGEuCiAKICAgICAvLyAxLiBJZiBjb250ZW50
VHlwZSBpcyBudWxsIG9yIGFuIGVtcHR5IHN0cmluZywgdGhyb3cgYW4gSU5WQUxJRF9BQ0NFU1Nf
RVJSIGV4Y2VwdGlvbiBhbmQgYWJvcnQgdGhlc2Ugc3RlcHMuCi0gICAgaWYgKHR5cGUuaXNFbXB0
eSgpKSB7Ci0gICAgICAgIGVjID0gSU5WQUxJRF9BQ0NFU1NfRVJSOwotICAgICAgICByZXR1cm4g
bnVsbHB0cjsKLSAgICB9CisgICAgaWYgKHR5cGUuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4g
RXhjZXB0aW9uIHsgSU5WQUxJRF9BQ0NFU1NfRVJSIH07CiAKICAgICAvLyAyLiBJZiBpbml0RGF0
YSBpcyBhbiBlbXB0eSBhcnJheSwgdGhyb3cgYW4gSU5WQUxJRF9BQ0NFU1NfRVJSIGV4Y2VwdGlv
biBhbmQgYWJvcnQgdGhlc2Ugc3RlcHMuCi0gICAgaWYgKCFpbml0RGF0YS0+bGVuZ3RoKCkpIHsK
LSAgICAgICAgZWMgPSBJTlZBTElEX0FDQ0VTU19FUlI7Ci0gICAgICAgIHJldHVybiBudWxscHRy
OwotICAgIH0KKyAgICBpZiAoIWluaXREYXRhLT5sZW5ndGgoKSkKKyAgICAgICAgcmV0dXJuIEV4
Y2VwdGlvbiB7IElOVkFMSURfQUNDRVNTX0VSUiB9OwogCiAgICAgLy8gMy4gSWYgdHlwZSBjb250
YWlucyBhIE1JTUUgdHlwZSB0aGF0IGlzIG5vdCBzdXBwb3J0ZWQgb3IgaXMgbm90IHN1cHBvcnRl
ZCBieSB0aGUga2V5U3lzdGVtLCB0aHJvdwogICAgIC8vIGEgTk9UX1NVUFBPUlRFRF9FUlIgZXhj
ZXB0aW9uIGFuZCBhYm9ydCB0aGVzZSBzdGVwcy4KLSAgICBpZiAoIXR5cGUuaXNOdWxsKCkgJiYg
IXR5cGUuaXNFbXB0eSgpICYmICFtX2NkbS0+c3VwcG9ydHNNSU1FVHlwZSh0eXBlKSkgewotICAg
ICAgICBlYyA9IE5PVF9TVVBQT1JURURfRVJSOwotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAg
ICB9CisgICAgaWYgKCFtX2NkbS0+c3VwcG9ydHNNSU1FVHlwZSh0eXBlKSkKKyAgICAgICAgcmV0
dXJuIEV4Y2VwdGlvbiB7IE5PVF9TVVBQT1JURURfRVJSIH07CiAKICAgICAvLyA0LiBDcmVhdGUg
YSBuZXcgTWVkaWFLZXlTZXNzaW9uIG9iamVjdC4KICAgICAvLyA0LjEgTGV0IHRoZSBrZXlTeXN0
ZW0gYXR0cmlidXRlIGJlIGtleVN5c3RlbS4KICAgICAvLyA0LjIgTGV0IHRoZSBzZXNzaW9uSWQg
YXR0cmlidXRlIGJlIGEgdW5pcXVlIFNlc3Npb24gSUQgc3RyaW5nLiBJdCBtYXkgYmUgZ2VuZXJh
dGVkIGJ5IGNkbS4KLSAgICBhdXRvIHNlc3Npb24gPSBNZWRpYUtleVNlc3Npb246OmNyZWF0ZShj
b250ZXh0LCB0aGlzLCBrZXlTeXN0ZW0oKSk7CisgICAgYXV0byBzZXNzaW9uID0gTWVkaWFLZXlT
ZXNzaW9uOjpjcmVhdGUoY29udGV4dCwgKnRoaXMsIG1fa2V5U3lzdGVtKTsKIAogICAgIG1fc2Vz
c2lvbnMuYXBwZW5kKHNlc3Npb24uY29weVJlZigpKTsKIApAQCAtMTI1LDExICsxMTEsMTEgQEAg
Ym9vbCBNZWRpYUtleXM6OmlzVHlwZVN1cHBvcnRlZChjb25zdCBTdHJpbmcmIGtleVN5c3RlbSwg
Y29uc3QgU3RyaW5nJiBtaW1lVHlwZSkKIHsKICAgICAvLyAxLiBJZiBrZXlTeXN0ZW0gY29udGFp
bnMgYW4gdW5yZWNvZ25pemVkIG9yIHVuc3VwcG9ydGVkIEtleSBTeXN0ZW0sIHJldHVybiBmYWxz
ZSBhbmQgYWJvcnQgdGhlc2Ugc3RlcHMuCiAgICAgLy8gS2V5IHN5c3RlbSBzdHJpbmcgY29tcGFy
aXNvbiBpcyBjYXNlLXNlbnNpdGl2ZS4KLSAgICBpZiAoa2V5U3lzdGVtLmlzTnVsbCgpIHx8IGtl
eVN5c3RlbS5pc0VtcHR5KCkgfHwgIUNETTo6c3VwcG9ydHNLZXlTeXN0ZW0oa2V5U3lzdGVtKSkK
KyAgICBpZiAoa2V5U3lzdGVtLmlzRW1wdHkoKSB8fCAhQ0RNOjpzdXBwb3J0c0tleVN5c3RlbShr
ZXlTeXN0ZW0pKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICAvLyAyLiBJZiB0eXBlIGlz
IG51bGwgb3IgYW4gZW1wdHkgc3RyaW5nLCByZXR1cm4gdHJ1ZSBhbmQgYWJvcnQgdGhlc2Ugc3Rl
cHMuCi0gICAgaWYgKG1pbWVUeXBlLmlzTnVsbCgpIHx8IG1pbWVUeXBlLmlzRW1wdHkoKSkKKyAg
ICBpZiAobWltZVR5cGUuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIC8v
IDMuIElmIHRoZSBLZXkgU3lzdGVtIHNwZWNpZmllZCBieSBrZXlTeXN0ZW0gZG9lcyBub3Qgc3Vw
cG9ydCBkZWNyeXB0aW5nIHRoZSBjb250YWluZXIgYW5kL29yIGNvZGVjCkBAIC0xNTQsMjIgKzE0
MCwyMSBAQCB2b2lkIE1lZGlhS2V5czo6c2V0TWVkaWFFbGVtZW50KEhUTUxNZWRpYUVsZW1lbnQq
IGVsZW1lbnQpCiAKIE1lZGlhUGxheWVyKiBNZWRpYUtleXM6OmNkbU1lZGlhUGxheWVyKGNvbnN0
IENETSopIGNvbnN0CiB7Ci0gICAgaWYgKG1fbWVkaWFFbGVtZW50KQotICAgICAgICByZXR1cm4g
bV9tZWRpYUVsZW1lbnQtPnBsYXllcigpOwotICAgIHJldHVybiAwOworICAgIGlmICghbV9tZWRp
YUVsZW1lbnQpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiBtX21lZGlhRWxl
bWVudC0+cGxheWVyKCk7CiB9CiAKIHZvaWQgTWVkaWFLZXlzOjprZXlBZGRlZCgpCiB7CiAgICAg
aWYgKG1fbWVkaWFFbGVtZW50KQogICAgICAgICBtX21lZGlhRWxlbWVudC0+a2V5QWRkZWQoKTsK
LQogfQogCiBSZWZQdHI8QXJyYXlCdWZmZXI+IE1lZGlhS2V5czo6Y2FjaGVkS2V5Rm9yS2V5SWQo
Y29uc3QgU3RyaW5nJiBrZXlJZCkgY29uc3QKIHsKICAgICBmb3IgKGF1dG8mIHNlc3Npb24gOiBt
X3Nlc3Npb25zKSB7Ci0gICAgICAgIGlmIChSZWZQdHI8QXJyYXlCdWZmZXI+IGtleSA9IHNlc3Np
b24tPmNhY2hlZEtleUZvcktleUlkKGtleUlkKSkKKyAgICAgICAgaWYgKGF1dG8ga2V5ID0gc2Vz
c2lvbi0+Y2FjaGVkS2V5Rm9yS2V5SWQoa2V5SWQpKQogICAgICAgICAgICAgcmV0dXJuIGtleTsK
ICAgICB9CiAgICAgcmV0dXJuIG51bGxwdHI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5cy5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleXMuaAppbmRleCBhODBjNTFjYjJlZWJjOTI4Y2ZhMmI1
MmFhZjgyNWQwMTdiMGFlNzFhLi44NTU5OGU4Y2QxZTY5YjI4ZDFhODQyODE2ODQzMDMwNzhkNjY2
ODQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01l
ZGlhS2V5cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVk
aWFLZXlzLmgKQEAgLTIzLDUxICsyMyw0NCBAQAogICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgogICovCiAKLSNpZm5kZWYgTWVkaWFLZXlzX2gKLSNkZWZpbmUgTWVkaWFLZXlzX2gK
KyNwcmFnbWEgb25jZQogCiAjaWYgRU5BQkxFKExFR0FDWV9FTkNSWVBURURfTUVESUEpCiAKICNp
bmNsdWRlICJDRE0uaCIKLSNpbmNsdWRlICJFdmVudFRhcmdldC5oIgotI2luY2x1ZGUgIkV4Y2Vw
dGlvbkNvZGUuaCIKKyNpbmNsdWRlICJFeGNlcHRpb25Pci5oIgogI2luY2x1ZGUgPHJ1bnRpbWUv
VWludDhBcnJheS5oPgotI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3Rm
L1ZlY3Rvci5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKLWNsYXNzIE1lZGlhS2V5U2Vzc2lvbjsKIGNsYXNzIEhUTUxNZWRpYUVsZW1l
bnQ7CitjbGFzcyBNZWRpYUtleVNlc3Npb247CitjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0
OwogCi1jbGFzcyBNZWRpYUtleXMgOiBwdWJsaWMgUmVmQ291bnRlZDxNZWRpYUtleXM+LCBwdWJs
aWMgQ0RNQ2xpZW50IHsKK2NsYXNzIE1lZGlhS2V5cyBmaW5hbCA6IHB1YmxpYyBSZWZDb3VudGVk
PE1lZGlhS2V5cz4sIHByaXZhdGUgQ0RNQ2xpZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVm
UHRyPE1lZGlhS2V5cz4gY3JlYXRlKGNvbnN0IFN0cmluZyYga2V5U3lzdGVtLCBFeGNlcHRpb25D
b2RlJik7CisgICAgc3RhdGljIEV4Y2VwdGlvbk9yPFJlZjxNZWRpYUtleXM+PiBjcmVhdGUoY29u
c3QgU3RyaW5nJiBrZXlTeXN0ZW0pOwogICAgIHZpcnR1YWwgfk1lZGlhS2V5cygpOwogCi0gICAg
UmVmUHRyPE1lZGlhS2V5U2Vzc2lvbj4gY3JlYXRlU2Vzc2lvbihTY3JpcHRFeGVjdXRpb25Db250
ZXh0JiwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgUmVmPFVpbnQ4QXJyYXk+JiYgaW5pdERhdGEs
IEV4Y2VwdGlvbkNvZGUmKTsKLQorICAgIEV4Y2VwdGlvbk9yPFJlZjxNZWRpYUtleVNlc3Npb24+
PiBjcmVhdGVTZXNzaW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBjb25zdCBTdHJpbmcmIG1p
bWVUeXBlLCBSZWY8VWludDhBcnJheT4mJiBpbml0RGF0YSk7CiAgICAgc3RhdGljIGJvb2wgaXNU
eXBlU3VwcG9ydGVkKGNvbnN0IFN0cmluZyYga2V5U3lzdGVtLCBjb25zdCBTdHJpbmcmIG1pbWVU
eXBlKTsKLQogICAgIGNvbnN0IFN0cmluZyYga2V5U3lzdGVtKCkgY29uc3QgeyByZXR1cm4gbV9r
ZXlTeXN0ZW07IH0KLSAgICBDRE0qIGNkbSgpIHsgcmV0dXJuIG1fY2RtLmdldCgpOyB9CiAKLSAg
ICBIVE1MTWVkaWFFbGVtZW50KiBtZWRpYUVsZW1lbnQoKSBjb25zdCB7IHJldHVybiBtX21lZGlh
RWxlbWVudDsgfQorICAgIENETSYgY2RtKCkgeyBBU1NFUlQobV9jZG0pOyByZXR1cm4gKm1fY2Rt
OyB9CisKICAgICB2b2lkIHNldE1lZGlhRWxlbWVudChIVE1MTWVkaWFFbGVtZW50Kik7CiAKICAg
ICB2b2lkIGtleUFkZGVkKCk7CiAgICAgUmVmUHRyPEFycmF5QnVmZmVyPiBjYWNoZWRLZXlGb3JL
ZXlJZChjb25zdCBTdHJpbmcmIGtleUlkKSBjb25zdDsKIAotcHJvdGVjdGVkOgotICAgIC8vIENE
TUNsaWVudDoKLSAgICBNZWRpYVBsYXllciogY2RtTWVkaWFQbGF5ZXIoY29uc3QgQ0RNKikgY29u
c3Qgb3ZlcnJpZGU7Citwcml2YXRlOgorICAgIE1lZGlhUGxheWVyKiBjZG1NZWRpYVBsYXllcihj
b25zdCBDRE0qKSBjb25zdCBmaW5hbDsKIAotICAgIE1lZGlhS2V5cyhjb25zdCBTdHJpbmcmIGtl
eVN5c3RlbSwgc3RkOjp1bmlxdWVfcHRyPENETT4pOworICAgIE1lZGlhS2V5cyhjb25zdCBTdHJp
bmcmIGtleVN5c3RlbSwgc3RkOjp1bmlxdWVfcHRyPENETT4mJik7CiAKICAgICBWZWN0b3I8UmVm
PE1lZGlhS2V5U2Vzc2lvbj4+IG1fc2Vzc2lvbnM7Ci0KLSAgICBIVE1MTWVkaWFFbGVtZW50KiBt
X21lZGlhRWxlbWVudDsKKyAgICBIVE1MTWVkaWFFbGVtZW50KiBtX21lZGlhRWxlbWVudCB7IG51
bGxwdHIgfTsKICAgICBTdHJpbmcgbV9rZXlTeXN0ZW07CiAgICAgc3RkOjp1bmlxdWVfcHRyPENE
TT4gbV9jZG07CiB9OwpAQCAtNzUsNSArNjgsMyBAQCBwcm90ZWN0ZWQ6CiB9CiAKICNlbmRpZiAv
LyBFTkFCTEUoTEVHQUNZX0VOQ1JZUFRFRF9NRURJQSkKLQotI2VuZGlmIC8vIE1lZGlhS2V5c19o
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlh
S2V5cy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5
cy5pZGwKaW5kZXggMzBmZTcyOTQ2NTJkYzBlYzFhNmEyNDczMmViNTRiNDYxMTM4YjFjNC4uNDZk
NDEyZGQyOGMxMDc3NTE4ZDM4NDJlMjBkMWVmYTU0Y2UxZjA1OCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleXMuaWRsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlzLmlkbApAQCAtMSw1ICsx
LDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI2LDEwICsyNiwxMCBA
QAogWwogICAgIENvbmRpdGlvbmFsPUxFR0FDWV9FTkNSWVBURURfTUVESUEsCiAgICAgQ29uc3Ry
dWN0b3IoRE9NU3RyaW5nIGtleVN5c3RlbSksCi0gICAgQ29uc3RydWN0b3JNYXlUaHJvd0xlZ2Fj
eUV4Y2VwdGlvbiwKKyAgICBDb25zdHJ1Y3Rvck1heVRocm93RXhjZXB0aW9uLAogICAgIEludGVy
ZmFjZU5hbWU9V2ViS2l0TWVkaWFLZXlzLAogXSBpbnRlcmZhY2UgTWVkaWFLZXlzIHsKLSAgICBb
Q2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgTWF5VGhyb3dMZWdhY3lFeGNlcHRpb25d
IE1lZGlhS2V5U2Vzc2lvbiBjcmVhdGVTZXNzaW9uKERPTVN0cmluZyB0eXBlLCBVaW50OEFycmF5
IGluaXREYXRhKTsKKyAgICBbQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgTWF5VGhy
b3dFeGNlcHRpb25dIE1lZGlhS2V5U2Vzc2lvbiBjcmVhdGVTZXNzaW9uKERPTVN0cmluZyB0eXBl
LCBVaW50OEFycmF5IGluaXREYXRhKTsKICAgICBzdGF0aWMgYm9vbGVhbiBpc1R5cGVTdXBwb3J0
ZWQoRE9NU3RyaW5nIGtleVN5c3RlbSwgb3B0aW9uYWwgRE9NU3RyaW5nIHR5cGUpOwogICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcga2V5U3lzdGVtOwogfTsK
</data>
<flag name="review"
          id="314208"
          type_id="1"
          status="+"
          setter="youennf"
    />
    <flag name="commit-queue"
          id="314209"
          type_id="3"
          status="-"
          setter="commit-queue"
    />
          </attachment>
      

    </bug>

</bugzilla>