<?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>158353</bug_id>
          
          <creation_ts>2016-06-03 13:40:43 -0700</creation_ts>
          <short_desc>Miscellaneous IDBBindingUtilities cleanup</short_desc>
          <delta_ts>2016-06-03 14:41:09 -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>WebCore Misc.</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>
          
          <blocked>149117</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>1199016</commentid>
    <comment_count>0</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-06-03 13:40:43 -0700</bug_when>
    <thetext>Miscellaneous IDBBindingUtilities cleanup</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1199021</commentid>
    <comment_count>1</comment_count>
      <attachid>280460</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-06-03 13:51:23 -0700</bug_when>
    <thetext>Created attachment 280460
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1199040</commentid>
    <comment_count>2</comment_count>
      <attachid>280460</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2016-06-03 14:29:54 -0700</bug_when>
    <thetext>Comment on attachment 280460
Patch

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

&gt; Source/WebCore/ChangeLog:8
&gt; +        No new tests (Straight refactor, yo).

Can&apos;t you test the new errors?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1199045</commentid>
    <comment_count>3</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-06-03 14:39:14 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; Comment on attachment 280460 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=280460&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:8
&gt; &gt; +        No new tests (Straight refactor, yo).
&gt; 
&gt; Can&apos;t you test the new errors?

Sadly, no.

We know &quot;ScriptExecutionContext without an ExecState&quot; is a possibility, somehow, but it&apos;s not known to be purposefully triggerable...

If I&apos;m wrong and somebody lets me know, I&apos;d happily add tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1199048</commentid>
    <comment_count>4</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-06-03 14:41:09 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/201660</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>280460</attachid>
            <date>2016-06-03 13:51:23 -0700</date>
            <delta_ts>2016-06-03 14:29:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-158353-20160603135244.patch</filename>
            <type>text/plain</type>
            <size>31778</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAxNjUzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTA1N2M4OWQ0YThjYTg3
MDMxNTlhZDU4NzJlMDlhYWU4MzkxY2JkMC4uZjkwY2FmM2RlNjMwNDBiYWExNDkzOWJiZDkwMjUy
OGUzMzVhZGVjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYyIEBACisyMDE2LTA2LTAzICBCcmFk
eSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKworICAgICAgICBNaXNjZWxsYW5lb3VzIElE
QkJpbmRpbmdVdGlsaXRpZXMgY2xlYW51cC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE1ODM1MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyAoU3RyYWlnaHQgcmVmYWN0b3IsIHlvKS4K
KworICAgICAgICBTdGFydGluZyB3aXRoIHJlbW92aW5nIGEgc2luZ2xlIGZvcm0gb2Ygc2NyaXB0
VmFsdWVUb0lEQktleSgpLCBhbmQgbWFraW5nIHRoZSByZXR1cm4gdmFsdWUgYmUKKyAgICAgICAg
UmVmPElEQktleT4gaW5zdGVhZCBvZiBSZWZQdHI8SURCS2V5PiwgdXBkYXRlIGEgd2hvbGUgYnVu
Y2ggb2YgY29kZSB0byB1bmRlcnN0YW5kIHRoYXQgdGhlIEV4ZWNTdGF0ZQorICAgICAgICBpcyBu
b24tbnVsbCBhbmQgdGhlIHJlc3VsdGluZyBrZXkgaXMgbm9uLW51bGwuCisgICAgICAgIAorICAg
ICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpJREJDdXJzb3I6OmNvbnRpbnVlRnVuY3Rpb24pOgorICAgICAgICAKKyAgICAgICAgKiBNb2R1
bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQkZhY3Rv
cnk6OmNtcCk6CisgICAgICAgIAorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkluZGV4
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQkluZGV4Ojpjb3VudCk6CisgICAgICAgIChXZWJD
b3JlOjpJREJJbmRleDo6Z2V0KToKKyAgICAgICAgKFdlYkNvcmU6OklEQkluZGV4OjpnZXRLZXkp
OgorICAgICAgICAKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJLZXkuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SURCS2V5Ojpjb21wYXJlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQktl
eTo6aXNMZXNzVGhhbik6CisgICAgICAgIChXZWJDb3JlOjpJREJLZXk6OmlzRXF1YWwpOgorICAg
ICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQktleS5oOgorICAgICAgICAoV2ViQ29yZTo6SURC
S2V5OjpjcmVhdGVNdWx0aUVudHJ5QXJyYXkpOgorICAgICAgICAKKyAgICAgICAgKiBNb2R1bGVz
L2luZGV4ZWRkYi9JREJLZXlSYW5nZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJLZXlSYW5n
ZTo6b25seSk6CisgICAgICAgIChXZWJDb3JlOjpJREJLZXlSYW5nZTo6bG93ZXJCb3VuZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpJREJLZXlSYW5nZTo6dXBwZXJCb3VuZCk6CisgICAgICAgIChXZWJD
b3JlOjpJREJLZXlSYW5nZTo6Ym91bmQpOgorICAgICAgICAoV2ViQ29yZTo6SURCS2V5UmFuZ2U6
OmlzT25seUtleSk6CisgICAgICAgIAorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQk9i
amVjdFN0b3JlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQk9iamVjdFN0b3JlOjpnZXQpOgor
ICAgICAgICAoV2ViQ29yZTo6SURCT2JqZWN0U3RvcmU6Om1vZGVybkRlbGV0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpJREJPYmplY3RTdG9yZTo6Y291bnQpOgorICAgICAgICAKKyAgICAgICAgKiBi
aW5kaW5ncy9qcy9JREJCaW5kaW5nVXRpbGl0aWVzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Omdl
dCk6CisgICAgICAgIChXZWJDb3JlOjpzZXQpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlSURC
S2V5RnJvbVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OmdldE50aFZhbHVlT25LZXlQYXRoKToK
KyAgICAgICAgKFdlYkNvcmU6OmludGVybmFsQ3JlYXRlSURCS2V5RnJvbVNjcmlwdFZhbHVlQW5k
S2V5UGF0aCk6CisgICAgICAgIChXZWJDb3JlOjplbnN1cmVOdGhWYWx1ZU9uS2V5UGF0aCk6Cisg
ICAgICAgIChXZWJDb3JlOjpjYW5JbmplY3ROdGhWYWx1ZU9uS2V5UGF0aCk6CisgICAgICAgIChX
ZWJDb3JlOjppbmplY3RJREJLZXlJbnRvU2NyaXB0VmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6
bWF5YmVDcmVhdGVJREJLZXlGcm9tU2NyaXB0VmFsdWVBbmRLZXlQYXRoKToKKyAgICAgICAgKFdl
YkNvcmU6OmNhbkluamVjdElEQktleUludG9TY3JpcHRWYWx1ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpkZXNlcmlhbGl6ZUlEQlZhbHVlVG9KU1ZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OnNjcmlw
dFZhbHVlVG9JREJLZXkpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlS2V5UGF0aEFycmF5KToK
KyAgICAgICAgKiBiaW5kaW5ncy9qcy9JREJCaW5kaW5nVXRpbGl0aWVzLmg6CisKIDIwMTYtMDYt
MDMgIEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQGFwcGxlLmNvbT4KIAogICAgICAgICBSZWZsZWN0
aW9uIG9mIGVsZW1lbnQgZG9lcyBub3QgcmVzcGVjdCBiYWNrZHJvcC1maWx0ZXIgcHJvcGVydHkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3IuY3BwCmluZGV4
IDY4ZGQ4Yzk4MWZhZWQ2MjdjNjA3NGFmNGRiYjc1MTI1NjFhYzAyZmQuLjAxODhjNjY1N2FhZjll
MGI0OGE1MzRjMDE1YWQ1YmU5MjhlNDYzOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvSURCQ3Vyc29yLmNwcApAQCAtMjY5LDkgKzI2OSwxNiBAQCB2b2lkIElEQkN1
cnNvcjo6YWR2YW5jZSh1bnNpZ25lZCBjb3VudCwgRXhjZXB0aW9uQ29kZVdpdGhNZXNzYWdlJiBl
YykKIAogdm9pZCBJREJDdXJzb3I6OmNvbnRpbnVlRnVuY3Rpb24oU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCYgY29udGV4dCwgSlNWYWx1ZSBrZXlWYWx1ZSwgRXhjZXB0aW9uQ29kZVdpdGhNZXNzYWdl
JiBlYykKIHsKKyAgICBhdXRvIGV4ZWMgPSBjb250ZXh0LmV4ZWNTdGF0ZSgpOworICAgIGlmICgh
ZXhlYykgeworICAgICAgICBlYy5jb2RlID0gSURCRGF0YWJhc2VFeGNlcHRpb246OlVua25vd25F
cnJvcjsKKyAgICAgICAgZWMubWVzc2FnZSA9IEFTQ0lJTGl0ZXJhbCgiRmFpbGVkIHRvIGV4ZWN1
dGUgJ2NvbnRpbnVlJyBvbiAnSURCQ3Vyc29yJzogU2NyaXB0IGV4ZWN1dGlvbiBjb250ZXh0IGRv
ZXMgbm90IGhhdmUgYW4gZXhlY3V0aW9uIHN0YXRlLiIpOworICAgICAgICByZXR1cm47CisgICAg
fQorCiAgICAgUmVmUHRyPElEQktleT4ga2V5OwogICAgIGlmICgha2V5VmFsdWUuaXNVbmRlZmlu
ZWQoKSkKLSAgICAgICAga2V5ID0gc2NyaXB0VmFsdWVUb0lEQktleShjb250ZXh0LCBrZXlWYWx1
ZSk7CisgICAgICAgIGtleSA9IHNjcmlwdFZhbHVlVG9JREJLZXkoKmV4ZWMsIGtleVZhbHVlKTsK
IAogICAgIGNvbnRpbnVlRnVuY3Rpb24oa2V5LmdldCgpLCBlYyk7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnkuY3BwCmluZGV4IDE2YjZiNzZlYjBi
NWVjMzU3MGI3N2E5M2I2MDM4MTI4YzE5MTRkYzQuLjg1Y2I3YTY1MzZlZWJiYjZkZmYyOTU5Nzc3
MWJmYWY0OGQ0ZWVmODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL0lEQkZhY3RvcnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L0lEQkZhY3RvcnkuY3BwCkBAIC0xNDQsMTEgKzE0NCwxNSBAQCBSZWZQdHI8SURCT3BlbkRCUmVx
dWVzdD4gSURCRmFjdG9yeTo6ZGVsZXRlRGF0YWJhc2UoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYg
Y29udAogCiBzaG9ydCBJREJGYWN0b3J5OjpjbXAoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29u
dGV4dCwgSlNWYWx1ZSBmaXJzdFZhbHVlLCBKU1ZhbHVlIHNlY29uZFZhbHVlLCBFeGNlcHRpb25D
b2RlV2l0aE1lc3NhZ2UmIGVjKQogewotICAgIFJlZlB0cjxJREJLZXk+IGZpcnN0ID0gc2NyaXB0
VmFsdWVUb0lEQktleShjb250ZXh0LCBmaXJzdFZhbHVlKTsKLSAgICBSZWZQdHI8SURCS2V5PiBz
ZWNvbmQgPSBzY3JpcHRWYWx1ZVRvSURCS2V5KGNvbnRleHQsIHNlY29uZFZhbHVlKTsKKyAgICBh
dXRvIGV4ZWMgPSBjb250ZXh0LmV4ZWNTdGF0ZSgpOworICAgIGlmICghZXhlYykgeworICAgICAg
ICBlYy5jb2RlID0gSURCRGF0YWJhc2VFeGNlcHRpb246OlVua25vd25FcnJvcjsKKyAgICAgICAg
ZWMubWVzc2FnZSA9IEFTQ0lJTGl0ZXJhbCgiRmFpbGVkIHRvIGV4ZWN1dGUgJ2NtcCcgb24gJ0lE
QkZhY3RvcnknOiBTY3JpcHQgZXhlY3V0aW9uIGNvbnRleHQgZG9lcyBub3QgaGF2ZSBhbiBleGVj
dXRpb24gc3RhdGUuIik7CisgICAgICAgIHJldHVybiAwOworICAgIH0KIAotICAgIEFTU0VSVChm
aXJzdCk7Ci0gICAgQVNTRVJUKHNlY29uZCk7CisgICAgUmVmPElEQktleT4gZmlyc3QgPSBzY3Jp
cHRWYWx1ZVRvSURCS2V5KCpleGVjLCBmaXJzdFZhbHVlKTsKKyAgICBSZWY8SURCS2V5PiBzZWNv
bmQgPSBzY3JpcHRWYWx1ZVRvSURCS2V5KCpleGVjLCBzZWNvbmRWYWx1ZSk7CiAKICAgICBpZiAo
IWZpcnN0LT5pc1ZhbGlkKCkgfHwgIXNlY29uZC0+aXNWYWxpZCgpKSB7CiAgICAgICAgIGVjLmNv
ZGUgPSBJREJEYXRhYmFzZUV4Y2VwdGlvbjo6RGF0YUVycm9yOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCSW5kZXguY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvSURCSW5kZXguY3BwCmluZGV4IDJhZjdhYzBjY2JkMmU3MTljNmY0
YTRiZGZmYThjODQzY2Y1MjI0YjIuLjFmOGQ0MTUyNWY4NmUxMzhhMDZlMmMyZGUxMDM4NGI0OWY4
NTQwNzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQklu
ZGV4LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJJbmRleC5j
cHAKQEAgLTE2MCwxNCArMTYwLDIxIEBAIFJlZlB0cjxJREJSZXF1ZXN0PiBJREJJbmRleDo6Y291
bnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgSlNWYWx1ZSBrZXksCiB7CiAgICAg
TE9HKEluZGV4ZWREQiwgIklEQkluZGV4Ojpjb3VudCIpOwogCi0gICAgUmVmUHRyPElEQktleT4g
aWRiS2V5ID0gc2NyaXB0VmFsdWVUb0lEQktleShjb250ZXh0LCBrZXkpOwotICAgIGlmICghaWRi
S2V5IHx8IGlkYktleS0+dHlwZSgpID09IEtleVR5cGU6OkludmFsaWQpIHsKKyAgICBhdXRvIGV4
ZWMgPSBjb250ZXh0LmV4ZWNTdGF0ZSgpOworICAgIGlmICghZXhlYykgeworICAgICAgICBlYy5j
b2RlID0gSURCRGF0YWJhc2VFeGNlcHRpb246OlVua25vd25FcnJvcjsKKyAgICAgICAgZWMubWVz
c2FnZSA9IEFTQ0lJTGl0ZXJhbCgiRmFpbGVkIHRvIGV4ZWN1dGUgJ2NvdW50JyBvbiAnSURCSW5k
ZXgnOiBTY3JpcHQgZXhlY3V0aW9uIGNvbnRleHQgZG9lcyBub3QgaGF2ZSBhbiBleGVjdXRpb24g
c3RhdGUuIik7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgIFJlZjxJREJLZXk+IGlk
YktleSA9IHNjcmlwdFZhbHVlVG9JREJLZXkoKmV4ZWMsIGtleSk7CisgICAgaWYgKCFpZGJLZXkt
PmlzVmFsaWQoKSkgewogICAgICAgICBlYy5jb2RlID0gSURCRGF0YWJhc2VFeGNlcHRpb246OkRh
dGFFcnJvcjsKICAgICAgICAgZWMubWVzc2FnZSA9IEFTQ0lJTGl0ZXJhbCgiRmFpbGVkIHRvIGV4
ZWN1dGUgJ2NvdW50JyBvbiAnSURCSW5kZXgnOiBUaGUgcGFyYW1ldGVyIGlzIG5vdCBhIHZhbGlk
IGtleS4iKTsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogCi0gICAgcmV0dXJuIGRv
Q291bnQoY29udGV4dCwgSURCS2V5UmFuZ2VEYXRhKGlkYktleS5nZXQoKSksIGVjKTsKKyAgICBy
ZXR1cm4gZG9Db3VudChjb250ZXh0LCBJREJLZXlSYW5nZURhdGEoaWRiS2V5LnB0cigpKSwgZWMp
OwogfQogCiBSZWZQdHI8SURCUmVxdWVzdD4gSURCSW5kZXg6OmRvQ291bnQoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCYgY29udGV4dCwgY29uc3QgSURCS2V5UmFuZ2VEYXRhJiByYW5nZSwgRXhjZXB0
aW9uQ29kZVdpdGhNZXNzYWdlJiBlYykKQEAgLTI0NCwxNCArMjUxLDIxIEBAIFJlZlB0cjxJREJS
ZXF1ZXN0PiBJREJJbmRleDo6Z2V0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIEpT
VmFsdWUga2V5LCBFCiB7CiAgICAgTE9HKEluZGV4ZWREQiwgIklEQkluZGV4OjpnZXQiKTsKIAot
ICAgIFJlZlB0cjxJREJLZXk+IGlkYktleSA9IHNjcmlwdFZhbHVlVG9JREJLZXkoY29udGV4dCwg
a2V5KTsKLSAgICBpZiAoIWlkYktleSB8fCBpZGJLZXktPnR5cGUoKSA9PSBLZXlUeXBlOjpJbnZh
bGlkKSB7CisgICAgYXV0byBleGVjID0gY29udGV4dC5leGVjU3RhdGUoKTsKKyAgICBpZiAoIWV4
ZWMpIHsKKyAgICAgICAgZWMuY29kZSA9IElEQkRhdGFiYXNlRXhjZXB0aW9uOjpVbmtub3duRXJy
b3I7CisgICAgICAgIGVjLm1lc3NhZ2UgPSBBU0NJSUxpdGVyYWwoIkZhaWxlZCB0byBleGVjdXRl
ICdnZXQnIG9uICdJREJJbmRleCc6IFNjcmlwdCBleGVjdXRpb24gY29udGV4dCBkb2VzIG5vdCBo
YXZlIGFuIGV4ZWN1dGlvbiBzdGF0ZS4iKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAg
fQorCisgICAgUmVmPElEQktleT4gaWRiS2V5ID0gc2NyaXB0VmFsdWVUb0lEQktleSgqZXhlYywg
a2V5KTsKKyAgICBpZiAoIWlkYktleS0+aXNWYWxpZCgpKSB7CiAgICAgICAgIGVjLmNvZGUgPSBJ
REJEYXRhYmFzZUV4Y2VwdGlvbjo6RGF0YUVycm9yOwogICAgICAgICBlYy5tZXNzYWdlID0gQVND
SUlMaXRlcmFsKCJGYWlsZWQgdG8gZXhlY3V0ZSAnZ2V0JyBvbiAnSURCSW5kZXgnOiBUaGUgcGFy
YW1ldGVyIGlzIG5vdCBhIHZhbGlkIGtleS4iKTsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAg
ICAgfQogCi0gICAgcmV0dXJuIGRvR2V0KGNvbnRleHQsIElEQktleVJhbmdlRGF0YShpZGJLZXku
Z2V0KCkpLCBlYyk7CisgICAgcmV0dXJuIGRvR2V0KGNvbnRleHQsIElEQktleVJhbmdlRGF0YShp
ZGJLZXkucHRyKCkpLCBlYyk7CiB9CiAKIFJlZlB0cjxJREJSZXF1ZXN0PiBJREJJbmRleDo6ZG9H
ZXQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgY29uc3QgSURCS2V5UmFuZ2VEYXRh
JiByYW5nZSwgRXhjZXB0aW9uQ29kZVdpdGhNZXNzYWdlJiBlYykKQEAgLTI5MCwxNCArMzA0LDIx
IEBAIFJlZlB0cjxJREJSZXF1ZXN0PiBJREJJbmRleDo6Z2V0S2V5KFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQmIGNvbnRleHQsIEpTVmFsdWUga2V5CiB7CiAgICAgTE9HKEluZGV4ZWREQiwgIklEQklu
ZGV4OjpnZXRLZXkiKTsKIAotICAgIFJlZlB0cjxJREJLZXk+IGlkYktleSA9IHNjcmlwdFZhbHVl
VG9JREJLZXkoY29udGV4dCwga2V5KTsKLSAgICBpZiAoIWlkYktleSB8fCBpZGJLZXktPnR5cGUo
KSA9PSBLZXlUeXBlOjpJbnZhbGlkKSB7CisgICAgYXV0byBleGVjID0gY29udGV4dC5leGVjU3Rh
dGUoKTsKKyAgICBpZiAoIWV4ZWMpIHsKKyAgICAgICAgZWMuY29kZSA9IElEQkRhdGFiYXNlRXhj
ZXB0aW9uOjpVbmtub3duRXJyb3I7CisgICAgICAgIGVjLm1lc3NhZ2UgPSBBU0NJSUxpdGVyYWwo
IkZhaWxlZCB0byBleGVjdXRlICdnZXQnIG9uICdJREJJbmRleCc6IFNjcmlwdCBleGVjdXRpb24g
Y29udGV4dCBkb2VzIG5vdCBoYXZlIGFuIGV4ZWN1dGlvbiBzdGF0ZS4iKTsKKyAgICAgICAgcmV0
dXJuIG51bGxwdHI7CisgICAgfQorCisgICAgUmVmPElEQktleT4gaWRiS2V5ID0gc2NyaXB0VmFs
dWVUb0lEQktleSgqZXhlYywga2V5KTsKKyAgICBpZiAoIWlkYktleS0+aXNWYWxpZCgpKSB7CiAg
ICAgICAgIGVjLmNvZGUgPSBJREJEYXRhYmFzZUV4Y2VwdGlvbjo6RGF0YUVycm9yOwogICAgICAg
ICBlYy5tZXNzYWdlID0gQVNDSUlMaXRlcmFsKCJGYWlsZWQgdG8gZXhlY3V0ZSAnZ2V0S2V5JyBv
biAnSURCSW5kZXgnOiBUaGUgcGFyYW1ldGVyIGlzIG5vdCBhIHZhbGlkIGtleS4iKTsKICAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogCi0gICAgcmV0dXJuIGRvR2V0S2V5KGNvbnRleHQs
IElEQktleVJhbmdlRGF0YShpZGJLZXkuZ2V0KCkpLCBlYyk7CisgICAgcmV0dXJuIGRvR2V0S2V5
KGNvbnRleHQsIElEQktleVJhbmdlRGF0YShpZGJLZXkucHRyKCkpLCBlYyk7CiB9CiAKIFJlZlB0
cjxJREJSZXF1ZXN0PiBJREJJbmRleDo6ZG9HZXRLZXkoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYg
Y29udGV4dCwgY29uc3QgSURCS2V5UmFuZ2VEYXRhJiByYW5nZSwgRXhjZXB0aW9uQ29kZVdpdGhN
ZXNzYWdlJiBlYykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L0lEQktleS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJLZXkuY3Bw
CmluZGV4IDA3ZTFjNTkyYjdjNTg3MGZmODljYmEyNTMzYzA5MmUwNWM1NGJlYWUuLmU0YjViZTZk
YzBlN2Q5ZTEyODU2ODMxMTBiZDNlOTNmMDY4ODZlNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQktleS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvSURCS2V5LmNwcApAQCAtNTEsMjkgKzUxLDI3IEBAIGJvb2wgSURCS2V5
Ojppc1ZhbGlkKCkgY29uc3QKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotaW50IElEQktleTo6Y29t
cGFyZShjb25zdCBJREJLZXkqIG90aGVyKSBjb25zdAoraW50IElEQktleTo6Y29tcGFyZShjb25z
dCBJREJLZXkmIG90aGVyKSBjb25zdAogewotICAgIEFTU0VSVChvdGhlcik7Ci0gICAgaWYgKG1f
dHlwZSAhPSBvdGhlci0+bV90eXBlKQotICAgICAgICByZXR1cm4gbV90eXBlID4gb3RoZXItPm1f
dHlwZSA/IC0xIDogMTsKKyAgICBpZiAobV90eXBlICE9IG90aGVyLm1fdHlwZSkKKyAgICAgICAg
cmV0dXJuIG1fdHlwZSA+IG90aGVyLm1fdHlwZSA/IC0xIDogMTsKIAogICAgIHN3aXRjaCAobV90
eXBlKSB7CiAgICAgY2FzZSBLZXlUeXBlOjpBcnJheToKLSAgICAgICAgZm9yIChzaXplX3QgaSA9
IDA7IGkgPCBtX2FycmF5LnNpemUoKSAmJiBpIDwgb3RoZXItPm1fYXJyYXkuc2l6ZSgpOyArK2kp
IHsKLSAgICAgICAgICAgIGlmIChpbnQgcmVzdWx0ID0gbV9hcnJheVtpXS0+Y29tcGFyZShvdGhl
ci0+bV9hcnJheVtpXS5nZXQoKSkpCisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9h
cnJheS5zaXplKCkgJiYgaSA8IG90aGVyLm1fYXJyYXkuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAg
ICAgIGlmIChpbnQgcmVzdWx0ID0gbV9hcnJheVtpXS0+Y29tcGFyZSgqb3RoZXIubV9hcnJheVtp
XSkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgICAgfQotICAgICAgICBp
ZiAobV9hcnJheS5zaXplKCkgPCBvdGhlci0+bV9hcnJheS5zaXplKCkpCisgICAgICAgIGlmICht
X2FycmF5LnNpemUoKSA8IG90aGVyLm1fYXJyYXkuc2l6ZSgpKQogICAgICAgICAgICAgcmV0dXJu
IC0xOwotICAgICAgICBpZiAobV9hcnJheS5zaXplKCkgPiBvdGhlci0+bV9hcnJheS5zaXplKCkp
CisgICAgICAgIGlmIChtX2FycmF5LnNpemUoKSA+IG90aGVyLm1fYXJyYXkuc2l6ZSgpKQogICAg
ICAgICAgICAgcmV0dXJuIDE7CiAgICAgICAgIHJldHVybiAwOwogICAgIGNhc2UgS2V5VHlwZTo6
U3RyaW5nOgotICAgICAgICByZXR1cm4gLWNvZGVQb2ludENvbXBhcmUob3RoZXItPm1fc3RyaW5n
LCBtX3N0cmluZyk7CisgICAgICAgIHJldHVybiAtY29kZVBvaW50Q29tcGFyZShvdGhlci5tX3N0
cmluZywgbV9zdHJpbmcpOwogICAgIGNhc2UgS2V5VHlwZTo6RGF0ZToKICAgICBjYXNlIEtleVR5
cGU6Ok51bWJlcjoKLSAgICAgICAgcmV0dXJuIChtX251bWJlciA8IG90aGVyLT5tX251bWJlcikg
PyAtMSA6Ci0gICAgICAgICAgICAgICAgKG1fbnVtYmVyID4gb3RoZXItPiBtX251bWJlcikgPyAx
IDogMDsKKyAgICAgICAgcmV0dXJuIChtX251bWJlciA8IG90aGVyLm1fbnVtYmVyKSA/IC0xIDog
KChtX251bWJlciA+IG90aGVyLiBtX251bWJlcikgPyAxIDogMCk7CiAgICAgY2FzZSBLZXlUeXBl
OjpJbnZhbGlkOgogICAgIGNhc2UgS2V5VHlwZTo6TWluOgogICAgIGNhc2UgS2V5VHlwZTo6TWF4
OgpAQCAtODUsMTcgKzgzLDEzIEBAIGludCBJREJLZXk6OmNvbXBhcmUoY29uc3QgSURCS2V5KiBv
dGhlcikgY29uc3QKICAgICByZXR1cm4gMDsKIH0KIAotYm9vbCBJREJLZXk6OmlzTGVzc1RoYW4o
Y29uc3QgSURCS2V5KiBvdGhlcikgY29uc3QKK2Jvb2wgSURCS2V5Ojppc0xlc3NUaGFuKGNvbnN0
IElEQktleSYgb3RoZXIpIGNvbnN0CiB7Ci0gICAgQVNTRVJUKG90aGVyKTsKICAgICByZXR1cm4g
Y29tcGFyZShvdGhlcikgPT0gLTE7CiB9CiAKLWJvb2wgSURCS2V5Ojppc0VxdWFsKGNvbnN0IElE
QktleSogb3RoZXIpIGNvbnN0Citib29sIElEQktleTo6aXNFcXVhbChjb25zdCBJREJLZXkmIG90
aGVyKSBjb25zdAogewotICAgIGlmICghb3RoZXIpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQog
ICAgIHJldHVybiAhY29tcGFyZShvdGhlcik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQktleS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCS2V5LmgKaW5kZXggNTVlNDI2ZjFkNWY3MjM3MTRmNDE2MzQzMDBjNDdiZTdm
NDBmNzBlZC4uMWViNjQ3MDdhNTRlMDRhNzZhZTMwYjk3YjI2NDMxODA0NmRmODA3NCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5LmgKQEAgLTcxLDcgKzcxLDcgQEAg
cHVibGljOgogCiAgICAgICAgICAgICBib29sIHNraXAgPSBmYWxzZTsKICAgICAgICAgICAgIGZv
ciAoYXV0byYgcmVzdWx0S2V5IDogcmVzdWx0KSB7Ci0gICAgICAgICAgICAgICAgaWYgKGtleS0+
aXNFcXVhbChyZXN1bHRLZXkuZ2V0KCkpKSB7CisgICAgICAgICAgICAgICAgaWYgKGtleS0+aXNF
cXVhbCgqcmVzdWx0S2V5KSkgewogICAgICAgICAgICAgICAgICAgICBza2lwID0gdHJ1ZTsKICAg
ICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgfQpAQCAtMTI0LDkgKzEy
NCw5IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIG1fbnVtYmVyOwogICAgIH0KIAotICAgIGlu
dCBjb21wYXJlKGNvbnN0IElEQktleSogb3RoZXIpIGNvbnN0OwotICAgIGJvb2wgaXNMZXNzVGhh
bihjb25zdCBJREJLZXkqIG90aGVyKSBjb25zdDsKLSAgICBib29sIGlzRXF1YWwoY29uc3QgSURC
S2V5KiBvdGhlcikgY29uc3Q7CisgICAgaW50IGNvbXBhcmUoY29uc3QgSURCS2V5JiBvdGhlcikg
Y29uc3Q7CisgICAgYm9vbCBpc0xlc3NUaGFuKGNvbnN0IElEQktleSYgb3RoZXIpIGNvbnN0Owor
ICAgIGJvb2wgaXNFcXVhbChjb25zdCBJREJLZXkmIG90aGVyKSBjb25zdDsKIAogICAgIHNpemVf
dCBzaXplRXN0aW1hdGUoKSBjb25zdCB7IHJldHVybiBtX3NpemVFc3RpbWF0ZTsgfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJLZXlSYW5nZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJLZXlSYW5nZS5jcHAKaW5kZXgg
YjQ4MDUyZjA0NjMwZTZjYmI4YWUxZmZlMTgxZDNiY2I3M2ExNGJiOC4uOGI1ZDQ4YjRkM2I3Zjlh
MGVjMWVkOGE5YmQzYmQ0NDFmNzhkNWFlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvSURCS2V5UmFuZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQktleVJhbmdlLmNwcApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUg
IklEQkRhdGFiYXNlRXhjZXB0aW9uLmgiCiAjaW5jbHVkZSAiSURCS2V5LmgiCiAjaW5jbHVkZSAi
SURCS2V5RGF0YS5oIgorI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKICNpbmNs
dWRlIDxydW50aW1lL0pTQ0pTVmFsdWUuaD4KIAogdXNpbmcgbmFtZXNwYWNlIEpTQzsKQEAgLTc4
LDEzICs3OSwxNyBAQCBSZWZQdHI8SURCS2V5UmFuZ2U+IElEQktleVJhbmdlOjpvbmx5KEV4ZWNT
dGF0ZSYgc3RhdGUsIEpTVmFsdWUga2V5VmFsdWUsIEV4Y2VwdAogCiBSZWZQdHI8SURCS2V5UmFu
Z2U+IElEQktleVJhbmdlOjpvbmx5KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIEpT
VmFsdWUga2V5VmFsdWUsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewotICAgIHJldHVybiBvbmx5KHNj
cmlwdFZhbHVlVG9JREJLZXkoY29udGV4dCwga2V5VmFsdWUpLCBlYyk7CisgICAgYXV0byBleGVj
ID0gY29udGV4dC5leGVjU3RhdGUoKTsKKyAgICBpZiAoIWV4ZWMpCisgICAgICAgIHJldHVybiBu
dWxscHRyOworCisgICAgcmV0dXJuIG9ubHkoc2NyaXB0VmFsdWVUb0lEQktleSgqZXhlYywga2V5
VmFsdWUpLCBlYyk7CiB9CiAKIFJlZlB0cjxJREJLZXlSYW5nZT4gSURCS2V5UmFuZ2U6Omxvd2Vy
Qm91bmQoRXhlY1N0YXRlJiBzdGF0ZSwgSlNWYWx1ZSBib3VuZFZhbHVlLCBib29sIG9wZW4sIEV4
Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIGF1dG8gYm91bmQgPSBzY3JpcHRWYWx1ZVRvSURCS2V5
KHN0YXRlLCBib3VuZFZhbHVlKTsKLSAgICBpZiAoIWJvdW5kIHx8ICFib3VuZC0+aXNWYWxpZCgp
KSB7CisgICAgaWYgKCFib3VuZC0+aXNWYWxpZCgpKSB7CiAgICAgICAgIGVjID0gSURCRGF0YWJh
c2VFeGNlcHRpb246OkRhdGFFcnJvcjsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQpA
QCAtOTUsNyArMTAwLDcgQEAgUmVmUHRyPElEQktleVJhbmdlPiBJREJLZXlSYW5nZTo6bG93ZXJC
b3VuZChFeGVjU3RhdGUmIHN0YXRlLCBKU1ZhbHVlIGJvdW5kVmFsdWUKIFJlZlB0cjxJREJLZXlS
YW5nZT4gSURCS2V5UmFuZ2U6OnVwcGVyQm91bmQoRXhlY1N0YXRlJiBzdGF0ZSwgSlNWYWx1ZSBi
b3VuZFZhbHVlLCBib29sIG9wZW4sIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIGF1dG8gYm91
bmQgPSBzY3JpcHRWYWx1ZVRvSURCS2V5KHN0YXRlLCBib3VuZFZhbHVlKTsKLSAgICBpZiAoIWJv
dW5kIHx8ICFib3VuZC0+aXNWYWxpZCgpKSB7CisgICAgaWYgKCFib3VuZC0+aXNWYWxpZCgpKSB7
CiAgICAgICAgIGVjID0gSURCRGF0YWJhc2VFeGNlcHRpb246OkRhdGFFcnJvcjsKICAgICAgICAg
cmV0dXJuIG51bGxwdHI7CiAgICAgfQpAQCAtMTA4LDcgKzExMyw3IEBAIFJlZlB0cjxJREJLZXlS
YW5nZT4gSURCS2V5UmFuZ2U6OmJvdW5kKEV4ZWNTdGF0ZSYgc3RhdGUsIEpTVmFsdWUgbG93ZXJW
YWx1ZSwgSlNWCiAgICAgYXV0byBsb3dlciA9IHNjcmlwdFZhbHVlVG9JREJLZXkoc3RhdGUsIGxv
d2VyVmFsdWUpOwogICAgIGF1dG8gdXBwZXIgPSBzY3JpcHRWYWx1ZVRvSURCS2V5KHN0YXRlLCB1
cHBlclZhbHVlKTsKIAotICAgIGlmICghbG93ZXIgfHwgIWxvd2VyLT5pc1ZhbGlkKCkgfHwgIXVw
cGVyIHx8ICF1cHBlci0+aXNWYWxpZCgpKSB7CisgICAgaWYgKCFsb3dlci0+aXNWYWxpZCgpIHx8
ICF1cHBlci0+aXNWYWxpZCgpKSB7CiAgICAgICAgIGVjID0gSURCRGF0YWJhc2VFeGNlcHRpb246
OkRhdGFFcnJvcjsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQpAQCAtMTI2LDcgKzEz
MSw3IEBAIFJlZlB0cjxJREJLZXlSYW5nZT4gSURCS2V5UmFuZ2U6OmJvdW5kKEV4ZWNTdGF0ZSYg
c3RhdGUsIEpTVmFsdWUgbG93ZXJWYWx1ZSwgSlNWCiAKIGJvb2wgSURCS2V5UmFuZ2U6OmlzT25s
eUtleSgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1fbG93ZXIgJiYgbV91cHBlciAmJiAhbV9pc0xv
d2VyT3BlbiAmJiAhbV9pc1VwcGVyT3BlbiAmJiBtX2xvd2VyLT5pc0VxdWFsKG1fdXBwZXIuZ2V0
KCkpOworICAgIHJldHVybiBtX2xvd2VyICYmIG1fdXBwZXIgJiYgIW1faXNMb3dlck9wZW4gJiYg
IW1faXNVcHBlck9wZW4gJiYgbV9sb3dlci0+aXNFcXVhbCgqbV91cHBlcik7CiB9CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQk9iamVjdFN0b3JlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL0lEQk9iamVjdFN0b3JlLmNwcAppbmRleCAyZGFiMGRkMzI3MmVjNzdmOTAwMjk1ZTJmYjg0
ZWI3M2E4Njg4N2JiLi4yYTlmNzAzYzI2NjBmNzI5ZjhhZDlhNjY0NjAxZjliMmMxZGExYTg5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9y
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3Rv
cmUuY3BwCkBAIC0xNjUsNiArMTY1LDEzIEBAIFJlZlB0cjxJREJSZXF1ZXN0PiBJREJPYmplY3RT
dG9yZTo6Z2V0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIEpTVmFsdWUKICAgICBM
T0coSW5kZXhlZERCLCAiSURCT2JqZWN0U3RvcmU6OmdldCIpOwogICAgIEFTU0VSVChjdXJyZW50
VGhyZWFkKCkgPT0gbV90cmFuc2FjdGlvbi0+ZGF0YWJhc2UoKS5vcmlnaW5UaHJlYWRJRCgpKTsK
IAorICAgIGF1dG8gZXhlYyA9IGNvbnRleHQuZXhlY1N0YXRlKCk7CisgICAgaWYgKCFleGVjKSB7
CisgICAgICAgIGVjLmNvZGUgPSBJREJEYXRhYmFzZUV4Y2VwdGlvbjo6VW5rbm93bkVycm9yOwor
ICAgICAgICBlYy5tZXNzYWdlID0gQVNDSUlMaXRlcmFsKCJGYWlsZWQgdG8gZXhlY3V0ZSAnZ2V0
JyBvbiAnSURCT2JqZWN0U3RvcmUnOiBTY3JpcHQgZXhlY3V0aW9uIGNvbnRleHQgZG9lcyBub3Qg
aGF2ZSBhbiBleGVjdXRpb24gc3RhdGUuIik7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAg
IH0KKwogICAgIGlmICghbV90cmFuc2FjdGlvbi0+aXNBY3RpdmUoKSkgewogICAgICAgICBlYy5j
b2RlID0gSURCRGF0YWJhc2VFeGNlcHRpb246OlRyYW5zYWN0aW9uSW5hY3RpdmVFcnJvcjsKICAg
ICAgICAgZWMubWVzc2FnZSA9IEFTQ0lJTGl0ZXJhbCgiRmFpbGVkIHRvIGV4ZWN1dGUgJ2dldCcg
b24gJ0lEQk9iamVjdFN0b3JlJzogVGhlIHRyYW5zYWN0aW9uIGlzIGluYWN0aXZlIG9yIGZpbmlz
aGVkLiIpOwpAQCAtMTc3LDE0ICsxODQsMTQgQEAgUmVmUHRyPElEQlJlcXVlc3Q+IElEQk9iamVj
dFN0b3JlOjpnZXQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgSlNWYWx1ZQogICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAKLSAgICBSZWZQdHI8SURCS2V5PiBpZGJLZXkg
PSBzY3JpcHRWYWx1ZVRvSURCS2V5KGNvbnRleHQsIGtleSk7Ci0gICAgaWYgKCFpZGJLZXkgfHwg
aWRiS2V5LT50eXBlKCkgPT0gS2V5VHlwZTo6SW52YWxpZCkgeworICAgIFJlZjxJREJLZXk+IGlk
YktleSA9IHNjcmlwdFZhbHVlVG9JREJLZXkoKmV4ZWMsIGtleSk7CisgICAgaWYgKCFpZGJLZXkt
PmlzVmFsaWQoKSkgewogICAgICAgICBlYy5jb2RlID0gSURCRGF0YWJhc2VFeGNlcHRpb246OkRh
dGFFcnJvcjsKICAgICAgICAgZWMubWVzc2FnZSA9IEFTQ0lJTGl0ZXJhbCgiRmFpbGVkIHRvIGV4
ZWN1dGUgJ2dldCcgb24gJ0lEQk9iamVjdFN0b3JlJzogVGhlIHBhcmFtZXRlciBpcyBub3QgYSB2
YWxpZCBrZXkuIik7CiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIAotICAgIHJldHVy
biBtX3RyYW5zYWN0aW9uLT5yZXF1ZXN0R2V0UmVjb3JkKGNvbnRleHQsICp0aGlzLCBpZGJLZXku
Z2V0KCkpOworICAgIHJldHVybiBtX3RyYW5zYWN0aW9uLT5yZXF1ZXN0R2V0UmVjb3JkKGNvbnRl
eHQsICp0aGlzLCBpZGJLZXkucHRyKCkpOwogfQogCiBSZWZQdHI8SURCUmVxdWVzdD4gSURCT2Jq
ZWN0U3RvcmU6OmdldChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBJREJLZXlSYW5n
ZSoga2V5UmFuZ2UsIEV4Y2VwdGlvbkNvZGVXaXRoTWVzc2FnZSYgZWMpCkBAIC0zODksMTQgKzM5
NiwyMSBAQCBSZWZQdHI8SURCUmVxdWVzdD4gSURCT2JqZWN0U3RvcmU6OmRlbGV0ZUZ1bmN0aW9u
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleAogCiBSZWZQdHI8SURCUmVxdWVzdD4gSURC
T2JqZWN0U3RvcmU6Om1vZGVybkRlbGV0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0
LCBKU1ZhbHVlIGtleSwgRXhjZXB0aW9uQ29kZVdpdGhNZXNzYWdlJiBlYykKIHsKLSAgICBSZWZQ
dHI8SURCS2V5PiBpZGJLZXkgPSBzY3JpcHRWYWx1ZVRvSURCS2V5KGNvbnRleHQsIGtleSk7Ci0g
ICAgaWYgKCFpZGJLZXkgfHwgaWRiS2V5LT50eXBlKCkgPT0gS2V5VHlwZTo6SW52YWxpZCkgewor
ICAgIGF1dG8gZXhlYyA9IGNvbnRleHQuZXhlY1N0YXRlKCk7CisgICAgaWYgKCFleGVjKSB7Cisg
ICAgICAgIGVjLmNvZGUgPSBJREJEYXRhYmFzZUV4Y2VwdGlvbjo6VW5rbm93bkVycm9yOworICAg
ICAgICBlYy5tZXNzYWdlID0gQVNDSUlMaXRlcmFsKCJGYWlsZWQgdG8gZXhlY3V0ZSAnZGVsZXRl
JyBvbiAnSURCT2JqZWN0U3RvcmUnOiBTY3JpcHQgZXhlY3V0aW9uIGNvbnRleHQgZG9lcyBub3Qg
aGF2ZSBhbiBleGVjdXRpb24gc3RhdGUuIik7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAg
IH0KKworICAgIFJlZjxJREJLZXk+IGlkYktleSA9IHNjcmlwdFZhbHVlVG9JREJLZXkoKmV4ZWMs
IGtleSk7CisgICAgaWYgKCFpZGJLZXktPmlzVmFsaWQoKSkgewogICAgICAgICBlYy5jb2RlID0g
SURCRGF0YWJhc2VFeGNlcHRpb246OkRhdGFFcnJvcjsKICAgICAgICAgZWMubWVzc2FnZSA9IEFT
Q0lJTGl0ZXJhbCgiRmFpbGVkIHRvIGV4ZWN1dGUgJ2RlbGV0ZScgb24gJ0lEQk9iamVjdFN0b3Jl
JzogVGhlIHBhcmFtZXRlciBpcyBub3QgYSB2YWxpZCBrZXkuIik7CiAgICAgICAgIHJldHVybiBu
dWxscHRyOwogICAgIH0KIAotICAgIHJldHVybiBkb0RlbGV0ZShjb250ZXh0LCAmSURCS2V5UmFu
Z2U6OmNyZWF0ZShpZGJLZXkucmVsZWFzZU5vbk51bGwoKSkuZ2V0KCksIGVjKTsKKyAgICByZXR1
cm4gZG9EZWxldGUoY29udGV4dCwgJklEQktleVJhbmdlOjpjcmVhdGUoV1RGTW92ZShpZGJLZXkp
KS5nZXQoKSwgZWMpOwogfQogCiBSZWZQdHI8SURCUmVxdWVzdD4gSURCT2JqZWN0U3RvcmU6OmNs
ZWFyKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIEV4Y2VwdGlvbkNvZGVXaXRoTWVz
c2FnZSYgZWMpCkBAIC01ODAsMTQgKzU5NCwyMSBAQCBSZWZQdHI8SURCUmVxdWVzdD4gSURCT2Jq
ZWN0U3RvcmU6OmNvdW50KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIEpTVmFsdQog
ewogICAgIExPRyhJbmRleGVkREIsICJJREJPYmplY3RTdG9yZTo6Y291bnQiKTsKIAotICAgIFJl
ZlB0cjxJREJLZXk+IGlkYktleSA9IHNjcmlwdFZhbHVlVG9JREJLZXkoY29udGV4dCwga2V5KTsK
LSAgICBpZiAoIWlkYktleSB8fCBpZGJLZXktPnR5cGUoKSA9PSBLZXlUeXBlOjpJbnZhbGlkKSB7
CisgICAgYXV0byBleGVjID0gY29udGV4dC5leGVjU3RhdGUoKTsKKyAgICBpZiAoIWV4ZWMpIHsK
KyAgICAgICAgZWMuY29kZSA9IElEQkRhdGFiYXNlRXhjZXB0aW9uOjpVbmtub3duRXJyb3I7Cisg
ICAgICAgIGVjLm1lc3NhZ2UgPSBBU0NJSUxpdGVyYWwoIkZhaWxlZCB0byBleGVjdXRlICdjb3Vu
dCcgb24gJ0lEQk9iamVjdFN0b3JlJzogU2NyaXB0IGV4ZWN1dGlvbiBjb250ZXh0IGRvZXMgbm90
IGhhdmUgYW4gZXhlY3V0aW9uIHN0YXRlLiIpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAg
ICB9CisKKyAgICBSZWY8SURCS2V5PiBpZGJLZXkgPSBzY3JpcHRWYWx1ZVRvSURCS2V5KCpleGVj
LCBrZXkpOworICAgIGlmICghaWRiS2V5LT5pc1ZhbGlkKCkpIHsKICAgICAgICAgZWMuY29kZSA9
IElEQkRhdGFiYXNlRXhjZXB0aW9uOjpEYXRhRXJyb3I7CiAgICAgICAgIGVjLm1lc3NhZ2UgPSBB
U0NJSUxpdGVyYWwoIkZhaWxlZCB0byBleGVjdXRlICdjb3VudCcgb24gJ0lEQk9iamVjdFN0b3Jl
JzogVGhlIHBhcmFtZXRlciBpcyBub3QgYSB2YWxpZCBrZXkuIik7CiAgICAgICAgIHJldHVybiBu
dWxscHRyOwogICAgIH0KIAotICAgIHJldHVybiBkb0NvdW50KGNvbnRleHQsIElEQktleVJhbmdl
RGF0YShpZGJLZXkuZ2V0KCkpLCBlYyk7CisgICAgcmV0dXJuIGRvQ291bnQoY29udGV4dCwgSURC
S2V5UmFuZ2VEYXRhKGlkYktleS5wdHIoKSksIGVjKTsKIH0KIAogUmVmUHRyPElEQlJlcXVlc3Q+
IElEQk9iamVjdFN0b3JlOjpjb3VudChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBJ
REJLZXlSYW5nZSogcmFuZ2UsIEV4Y2VwdGlvbkNvZGVXaXRoTWVzc2FnZSYgZWMpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9JREJCaW5kaW5nVXRpbGl0aWVzLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0lEQkJpbmRpbmdVdGlsaXRpZXMuY3BwCmluZGV4
IGYwY2YxZDdhMDEwYmNlYTc4MDVjYWQ2NmUzYmJjYTE2MDUxMDM4ZjguLjExNmU5MWNjOThmYmI2
MDJjYmJhY2IyZmJkNGViNjdjZmFhYWU3MTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0lEQkJpbmRpbmdVdGlsaXRpZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0lEQkJpbmRpbmdVdGlsaXRpZXMuY3BwCkBAIC01MCwxOCArNTAsMTggQEAgdXNp
bmcgbmFtZXNwYWNlIEpTQzsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1zdGF0aWMgYm9vbCBn
ZXQoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIG9iamVjdCwgY29uc3QgU3RyaW5nJiBrZXlQYXRo
RWxlbWVudCwgSlNWYWx1ZSYgcmVzdWx0KQorc3RhdGljIGJvb2wgZ2V0KEV4ZWNTdGF0ZSYgZXhl
YywgSlNWYWx1ZSBvYmplY3QsIGNvbnN0IFN0cmluZyYga2V5UGF0aEVsZW1lbnQsIEpTVmFsdWUm
IHJlc3VsdCkKIHsKICAgICBpZiAob2JqZWN0LmlzU3RyaW5nKCkgJiYga2V5UGF0aEVsZW1lbnQg
PT0gImxlbmd0aCIpIHsKLSAgICAgICAgcmVzdWx0ID0ganNOdW1iZXIob2JqZWN0LnRvU3RyaW5n
KGV4ZWMpLT5sZW5ndGgoKSk7CisgICAgICAgIHJlc3VsdCA9IGpzTnVtYmVyKG9iamVjdC50b1N0
cmluZygmZXhlYyktPmxlbmd0aCgpKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogICAg
IGlmICghb2JqZWN0LmlzT2JqZWN0KCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBJZGVu
dGlmaWVyIGlkZW50aWZpZXIgPSBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZleGVjLT52bSgpLCBr
ZXlQYXRoRWxlbWVudCk7Ci0gICAgaWYgKCFhc09iamVjdChvYmplY3QpLT5oYXNQcm9wZXJ0eShl
eGVjLCBpZGVudGlmaWVyKSkKKyAgICBJZGVudGlmaWVyIGlkZW50aWZpZXIgPSBJZGVudGlmaWVy
Ojpmcm9tU3RyaW5nKCZleGVjLnZtKCksIGtleVBhdGhFbGVtZW50KTsKKyAgICBpZiAoIWFzT2Jq
ZWN0KG9iamVjdCktPmhhc1Byb3BlcnR5KCZleGVjLCBpZGVudGlmaWVyKSkKICAgICAgICAgcmV0
dXJuIGZhbHNlOwotICAgIHJlc3VsdCA9IGFzT2JqZWN0KG9iamVjdCktPmdldChleGVjLCBpZGVu
dGlmaWVyKTsKKyAgICByZXN1bHQgPSBhc09iamVjdChvYmplY3QpLT5nZXQoJmV4ZWMsIGlkZW50
aWZpZXIpOwogICAgIHJldHVybiB0cnVlOwogfQogCkBAIC03MSwxMiArNzEsMTIgQEAgc3RhdGlj
IGJvb2wgY2FuU2V0KEpTVmFsdWUgb2JqZWN0LCBjb25zdCBTdHJpbmcmIGtleVBhdGhFbGVtZW50
KQogICAgIHJldHVybiBvYmplY3QuaXNPYmplY3QoKTsKIH0KIAotc3RhdGljIGJvb2wgc2V0KEV4
ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSYgb2JqZWN0LCBjb25zdCBTdHJpbmcmIGtleVBhdGhFbGVt
ZW50LCBKU1ZhbHVlIGpzVmFsdWUpCitzdGF0aWMgYm9vbCBzZXQoRXhlY1N0YXRlJiBleGVjLCBK
U1ZhbHVlJiBvYmplY3QsIGNvbnN0IFN0cmluZyYga2V5UGF0aEVsZW1lbnQsIEpTVmFsdWUganNW
YWx1ZSkKIHsKICAgICBpZiAoIWNhblNldChvYmplY3QsIGtleVBhdGhFbGVtZW50KSkKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwotICAgIElkZW50aWZpZXIgaWRlbnRpZmllciA9IElkZW50aWZpZXI6
OmZyb21TdHJpbmcoJmV4ZWMtPnZtKCksIGtleVBhdGhFbGVtZW50KTsKLSAgICBhc09iamVjdChv
YmplY3QpLT5wdXREaXJlY3QoZXhlYy0+dm0oKSwgaWRlbnRpZmllciwganNWYWx1ZSk7CisgICAg
SWRlbnRpZmllciBpZGVudGlmaWVyID0gSWRlbnRpZmllcjo6ZnJvbVN0cmluZygmZXhlYy52bSgp
LCBrZXlQYXRoRWxlbWVudCk7CisgICAgYXNPYmplY3Qob2JqZWN0KS0+cHV0RGlyZWN0KGV4ZWMu
dm0oKSwgaWRlbnRpZmllciwganNWYWx1ZSk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKQEAgLTEx
OCwxNCArMTE4LDE3IEBAIEpTVmFsdWUgdG9KUyhFeGVjU3RhdGUmIHN0YXRlLCBKU0dsb2JhbE9i
amVjdCYgZ2xvYmFsT2JqZWN0LCBJREJLZXkqIGtleSkKIAogc3RhdGljIGNvbnN0IHNpemVfdCBt
YXhpbXVtRGVwdGggPSAyMDAwOwogCi1zdGF0aWMgUmVmUHRyPElEQktleT4gY3JlYXRlSURCS2V5
RnJvbVZhbHVlKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSB2YWx1ZSwgVmVjdG9yPEpTQXJyYXkq
PiYgc3RhY2spCitzdGF0aWMgUmVmUHRyPElEQktleT4gY3JlYXRlSURCS2V5RnJvbVZhbHVlKEV4
ZWNTdGF0ZSYgZXhlYywgSlNWYWx1ZSB2YWx1ZSwgVmVjdG9yPEpTQXJyYXkqPiYgc3RhY2spCiB7
Ci0gICAgaWYgKHZhbHVlLmlzTnVtYmVyKCkgJiYgIXN0ZDo6aXNuYW4odmFsdWUudG9OdW1iZXIo
ZXhlYykpKQotICAgICAgICByZXR1cm4gSURCS2V5OjpjcmVhdGVOdW1iZXIodmFsdWUudG9OdW1i
ZXIoZXhlYykpOworICAgIGlmICh2YWx1ZS5pc051bWJlcigpICYmICFzdGQ6OmlzbmFuKHZhbHVl
LnRvTnVtYmVyKCZleGVjKSkpCisgICAgICAgIHJldHVybiBJREJLZXk6OmNyZWF0ZU51bWJlcih2
YWx1ZS50b051bWJlcigmZXhlYykpOworCiAgICAgaWYgKHZhbHVlLmlzU3RyaW5nKCkpCi0gICAg
ICAgIHJldHVybiBJREJLZXk6OmNyZWF0ZVN0cmluZyh2YWx1ZS50b1N0cmluZyhleGVjKS0+dmFs
dWUoZXhlYykpOwotICAgIGlmICh2YWx1ZS5pbmhlcml0cyhEYXRlSW5zdGFuY2U6OmluZm8oKSkg
JiYgIXN0ZDo6aXNuYW4odmFsdWVUb0RhdGUoZXhlYywgdmFsdWUpKSkKLSAgICAgICAgcmV0dXJu
IElEQktleTo6Y3JlYXRlRGF0ZSh2YWx1ZVRvRGF0ZShleGVjLCB2YWx1ZSkpOworICAgICAgICBy
ZXR1cm4gSURCS2V5OjpjcmVhdGVTdHJpbmcodmFsdWUudG9TdHJpbmcoJmV4ZWMpLT52YWx1ZSgm
ZXhlYykpOworCisgICAgaWYgKHZhbHVlLmluaGVyaXRzKERhdGVJbnN0YW5jZTo6aW5mbygpKSAm
JiAhc3RkOjppc25hbih2YWx1ZVRvRGF0ZSgmZXhlYywgdmFsdWUpKSkKKyAgICAgICAgcmV0dXJu
IElEQktleTo6Y3JlYXRlRGF0ZSh2YWx1ZVRvRGF0ZSgmZXhlYywgdmFsdWUpKTsKKwogICAgIGlm
ICh2YWx1ZS5pc09iamVjdCgpKSB7CiAgICAgICAgIEpTT2JqZWN0KiBvYmplY3QgPSBhc09iamVj
dCh2YWx1ZSk7CiAgICAgICAgIGlmIChpc0pTQXJyYXkob2JqZWN0KSB8fCBvYmplY3QtPmluaGVy
aXRzKEpTQXJyYXk6OmluZm8oKSkpIHsKQEAgLTEzNCwxMyArMTM3LDE1IEBAIHN0YXRpYyBSZWZQ
dHI8SURCS2V5PiBjcmVhdGVJREJLZXlGcm9tVmFsdWUoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVl
IHZhbHVlLCBWZWN0CiAKICAgICAgICAgICAgIGlmIChzdGFjay5jb250YWlucyhhcnJheSkpCiAg
ICAgICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKICAgICAgICAgICAgIGlmIChzdGFjay5z
aXplKCkgPj0gbWF4aW11bURlcHRoKQogICAgICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwor
CiAgICAgICAgICAgICBzdGFjay5hcHBlbmQoYXJyYXkpOwogCiAgICAgICAgICAgICBWZWN0b3I8
UmVmUHRyPElEQktleT4+IHN1YmtleXM7CiAgICAgICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsg
aSA8IGxlbmd0aDsgaSsrKSB7Ci0gICAgICAgICAgICAgICAgSlNWYWx1ZSBpdGVtID0gYXJyYXkt
PmdldEluZGV4KGV4ZWMsIGkpOworICAgICAgICAgICAgICAgIEpTVmFsdWUgaXRlbSA9IGFycmF5
LT5nZXRJbmRleCgmZXhlYywgaSk7CiAgICAgICAgICAgICAgICAgUmVmUHRyPElEQktleT4gc3Vi
a2V5ID0gY3JlYXRlSURCS2V5RnJvbVZhbHVlKGV4ZWMsIGl0ZW0sIHN0YWNrKTsKICAgICAgICAg
ICAgICAgICBpZiAoIXN1YmtleSkKICAgICAgICAgICAgICAgICAgICAgc3Via2V5cy5hcHBlbmQo
SURCS2V5OjpjcmVhdGVJbnZhbGlkKCkpOwpAQCAtMTU1LDEyICsxNjAsMTIgQEAgc3RhdGljIFJl
ZlB0cjxJREJLZXk+IGNyZWF0ZUlEQktleUZyb21WYWx1ZShFeGVjU3RhdGUqIGV4ZWMsIEpTVmFs
dWUgdmFsdWUsIFZlY3QKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAotc3RhdGljIFJlZlB0cjxJ
REJLZXk+IGNyZWF0ZUlEQktleUZyb21WYWx1ZShFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgdmFs
dWUpCitzdGF0aWMgUmVmPElEQktleT4gY3JlYXRlSURCS2V5RnJvbVZhbHVlKEV4ZWNTdGF0ZSYg
ZXhlYywgSlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBWZWN0b3I8SlNBcnJheSo+IHN0YWNrOwogICAg
IFJlZlB0cjxJREJLZXk+IGtleSA9IGNyZWF0ZUlEQktleUZyb21WYWx1ZShleGVjLCB2YWx1ZSwg
c3RhY2spOwogICAgIGlmIChrZXkpCi0gICAgICAgIHJldHVybiBrZXk7CisgICAgICAgIHJldHVy
biAqa2V5OwogICAgIHJldHVybiBJREJLZXk6OmNyZWF0ZUludmFsaWQoKTsKIH0KIApAQCAtMTc0
LDcgKzE3OSw3IEBAIElEQktleVBhdGggaWRiS2V5UGF0aEZyb21WYWx1ZShFeGVjU3RhdGUmIGV4
ZWMsIEpTVmFsdWUga2V5UGF0aFZhbHVlKQogICAgIHJldHVybiBrZXlQYXRoOwogfQogCi1zdGF0
aWMgSlNWYWx1ZSBnZXROdGhWYWx1ZU9uS2V5UGF0aChFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUg
cm9vdFZhbHVlLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYga2V5UGF0aEVsZW1lbnRzLCBzaXplX3Qg
aW5kZXgpCitzdGF0aWMgSlNWYWx1ZSBnZXROdGhWYWx1ZU9uS2V5UGF0aChFeGVjU3RhdGUmIGV4
ZWMsIEpTVmFsdWUgcm9vdFZhbHVlLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYga2V5UGF0aEVsZW1l
bnRzLCBzaXplX3QgaW5kZXgpCiB7CiAgICAgSlNWYWx1ZSBjdXJyZW50VmFsdWUocm9vdFZhbHVl
KTsKICAgICBBU1NFUlQoaW5kZXggPD0ga2V5UGF0aEVsZW1lbnRzLnNpemUoKSk7CkBAIC0xODYs
NyArMTkxLDcgQEAgc3RhdGljIEpTVmFsdWUgZ2V0TnRoVmFsdWVPbktleVBhdGgoRXhlY1N0YXRl
KiBleGVjLCBKU1ZhbHVlIHJvb3RWYWx1ZSwgY29uc3QgVmUKICAgICByZXR1cm4gY3VycmVudFZh
bHVlOwogfQogCi1zdGF0aWMgUmVmUHRyPElEQktleT4gaW50ZXJuYWxDcmVhdGVJREJLZXlGcm9t
U2NyaXB0VmFsdWVBbmRLZXlQYXRoKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSlNWYWx1ZSYgdmFs
dWUsIGNvbnN0IFN0cmluZyYga2V5UGF0aCkKK3N0YXRpYyBSZWZQdHI8SURCS2V5PiBpbnRlcm5h
bENyZWF0ZUlEQktleUZyb21TY3JpcHRWYWx1ZUFuZEtleVBhdGgoRXhlY1N0YXRlJiBleGVjLCBj
b25zdCBKU1ZhbHVlJiB2YWx1ZSwgY29uc3QgU3RyaW5nJiBrZXlQYXRoKQogewogICAgIFZlY3Rv
cjxTdHJpbmc+IGtleVBhdGhFbGVtZW50czsKICAgICBJREJLZXlQYXRoUGFyc2VFcnJvciBlcnJv
cjsKQEAgLTIwMCw3ICsyMDUsNyBAQCBzdGF0aWMgUmVmUHRyPElEQktleT4gaW50ZXJuYWxDcmVh
dGVJREJLZXlGcm9tU2NyaXB0VmFsdWVBbmRLZXlQYXRoKEV4ZWNTdGF0ZSogZQogICAgIHJldHVy
biBjcmVhdGVJREJLZXlGcm9tVmFsdWUoZXhlYywganNWYWx1ZSk7CiB9CiAKLXN0YXRpYyBKU1Zh
bHVlIGVuc3VyZU50aFZhbHVlT25LZXlQYXRoKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSByb290
VmFsdWUsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBrZXlQYXRoRWxlbWVudHMsIHNpemVfdCBpbmRl
eCkKK3N0YXRpYyBKU1ZhbHVlIGVuc3VyZU50aFZhbHVlT25LZXlQYXRoKEV4ZWNTdGF0ZSYgZXhl
YywgSlNWYWx1ZSByb290VmFsdWUsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBrZXlQYXRoRWxlbWVu
dHMsIHNpemVfdCBpbmRleCkKIHsKICAgICBKU1ZhbHVlIGN1cnJlbnRWYWx1ZShyb290VmFsdWUp
OwogCkBAIC0yMDksNyArMjE0LDcgQEAgc3RhdGljIEpTVmFsdWUgZW5zdXJlTnRoVmFsdWVPbktl
eVBhdGgoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHJvb3RWYWx1ZSwgY29uc3QKICAgICAgICAg
SlNWYWx1ZSBwYXJlbnRWYWx1ZShjdXJyZW50VmFsdWUpOwogICAgICAgICBjb25zdCBTdHJpbmcm
IGtleVBhdGhFbGVtZW50ID0ga2V5UGF0aEVsZW1lbnRzW2ldOwogICAgICAgICBpZiAoIWdldChl
eGVjLCBwYXJlbnRWYWx1ZSwga2V5UGF0aEVsZW1lbnQsIGN1cnJlbnRWYWx1ZSkpIHsKLSAgICAg
ICAgICAgIEpTT2JqZWN0KiBvYmplY3QgPSBjb25zdHJ1Y3RFbXB0eU9iamVjdChleGVjKTsKKyAg
ICAgICAgICAgIEpTT2JqZWN0KiBvYmplY3QgPSBjb25zdHJ1Y3RFbXB0eU9iamVjdCgmZXhlYyk7
CiAgICAgICAgICAgICBpZiAoIXNldChleGVjLCBwYXJlbnRWYWx1ZSwga2V5UGF0aEVsZW1lbnQs
IEpTVmFsdWUob2JqZWN0KSkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7
CiAgICAgICAgICAgICBjdXJyZW50VmFsdWUgPSBKU1ZhbHVlKG9iamVjdCk7CkBAIC0yMTksNyAr
MjI0LDcgQEAgc3RhdGljIEpTVmFsdWUgZW5zdXJlTnRoVmFsdWVPbktleVBhdGgoRXhlY1N0YXRl
KiBleGVjLCBKU1ZhbHVlIHJvb3RWYWx1ZSwgY29uc3QKICAgICByZXR1cm4gY3VycmVudFZhbHVl
OwogfQogCi1zdGF0aWMgYm9vbCBjYW5JbmplY3ROdGhWYWx1ZU9uS2V5UGF0aChFeGVjU3RhdGUq
IGV4ZWMsIEpTVmFsdWUgcm9vdFZhbHVlLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYga2V5UGF0aEVs
ZW1lbnRzLCBzaXplX3QgaW5kZXgpCitzdGF0aWMgYm9vbCBjYW5JbmplY3ROdGhWYWx1ZU9uS2V5
UGF0aChFeGVjU3RhdGUmIGV4ZWMsIEpTVmFsdWUgcm9vdFZhbHVlLCBjb25zdCBWZWN0b3I8U3Ry
aW5nPiYga2V5UGF0aEVsZW1lbnRzLCBzaXplX3QgaW5kZXgpCiB7CiAgICAgaWYgKCFyb290VmFs
dWUuaXNPYmplY3QoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMjUwLDcgKzI1NSw3IEBA
IGJvb2wgaW5qZWN0SURCS2V5SW50b1NjcmlwdFZhbHVlKEV4ZWNTdGF0ZSYgZXhlYywgY29uc3Qg
SURCS2V5RGF0YSYga2V5RGF0YSwgSlNWCiAgICAgaWYgKGtleVBhdGhFbGVtZW50cy5pc0VtcHR5
KCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIEpTVmFsdWUgcGFyZW50ID0gZW5zdXJl
TnRoVmFsdWVPbktleVBhdGgoJmV4ZWMsIHZhbHVlLCBrZXlQYXRoRWxlbWVudHMsIGtleVBhdGhF
bGVtZW50cy5zaXplKCkgLSAxKTsKKyAgICBKU1ZhbHVlIHBhcmVudCA9IGVuc3VyZU50aFZhbHVl
T25LZXlQYXRoKGV4ZWMsIHZhbHVlLCBrZXlQYXRoRWxlbWVudHMsIGtleVBhdGhFbGVtZW50cy5z
aXplKCkgLSAxKTsKICAgICBpZiAocGFyZW50LmlzVW5kZWZpbmVkKCkpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKIApAQCAtMjU4LDcgKzI2Myw3IEBAIGJvb2wgaW5qZWN0SURCS2V5SW50b1Njcmlw
dFZhbHVlKEV4ZWNTdGF0ZSYgZXhlYywgY29uc3QgSURCS2V5RGF0YSYga2V5RGF0YSwgSlNWCiAg
ICAgaWYgKCFrZXkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGlmICghc2V0KCZleGVj
LCBwYXJlbnQsIGtleVBhdGhFbGVtZW50cy5sYXN0KCksIHRvSlMoZXhlYywgKmV4ZWMubGV4aWNh
bEdsb2JhbE9iamVjdCgpLCBrZXkuZ2V0KCkpKSkKKyAgICBpZiAoIXNldChleGVjLCBwYXJlbnQs
IGtleVBhdGhFbGVtZW50cy5sYXN0KCksIHRvSlMoZXhlYywgKmV4ZWMubGV4aWNhbEdsb2JhbE9i
amVjdCgpLCBrZXkuZ2V0KCkpKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgcmV0dXJu
IHRydWU7CkBAIC0yNzQsNyArMjc5LDcgQEAgUmVmUHRyPElEQktleT4gbWF5YmVDcmVhdGVJREJL
ZXlGcm9tU2NyaXB0VmFsdWVBbmRLZXlQYXRoKEV4ZWNTdGF0ZSYgZXhlYywgY29uc3QKICAgICAg
ICAgVmVjdG9yPFJlZlB0cjxJREJLZXk+PiByZXN1bHQ7CiAgICAgICAgIHJlc3VsdC5yZXNlcnZl
SW5pdGlhbENhcGFjaXR5KGFycmF5LnNpemUoKSk7CiAgICAgICAgIGZvciAoYXV0byYgc3RyaW5n
IDogYXJyYXkpIHsKLSAgICAgICAgICAgIFJlZlB0cjxJREJLZXk+IGtleSA9IGludGVybmFsQ3Jl
YXRlSURCS2V5RnJvbVNjcmlwdFZhbHVlQW5kS2V5UGF0aCgmZXhlYywgdmFsdWUsIHN0cmluZyk7
CisgICAgICAgICAgICBSZWZQdHI8SURCS2V5PiBrZXkgPSBpbnRlcm5hbENyZWF0ZUlEQktleUZy
b21TY3JpcHRWYWx1ZUFuZEtleVBhdGgoZXhlYywgdmFsdWUsIHN0cmluZyk7CiAgICAgICAgICAg
ICBpZiAoIWtleSkKICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICAgICAgICAg
IHJlc3VsdC51bmNoZWNrZWRBcHBlbmQoV1RGTW92ZShrZXkpKTsKQEAgLTI4MywxMCArMjg4LDEw
IEBAIFJlZlB0cjxJREJLZXk+IG1heWJlQ3JlYXRlSURCS2V5RnJvbVNjcmlwdFZhbHVlQW5kS2V5
UGF0aChFeGVjU3RhdGUmIGV4ZWMsIGNvbnN0CiAgICAgfQogCiAgICAgQVNTRVJUKGtleVBhdGgu
dHlwZSgpID09IElEQktleVBhdGg6OlR5cGU6OlN0cmluZyk7Ci0gICAgcmV0dXJuIGludGVybmFs
Q3JlYXRlSURCS2V5RnJvbVNjcmlwdFZhbHVlQW5kS2V5UGF0aCgmZXhlYywgdmFsdWUsIGtleVBh
dGguc3RyaW5nKCkpOworICAgIHJldHVybiBpbnRlcm5hbENyZWF0ZUlEQktleUZyb21TY3JpcHRW
YWx1ZUFuZEtleVBhdGgoZXhlYywgdmFsdWUsIGtleVBhdGguc3RyaW5nKCkpOwogfQogCi1ib29s
IGNhbkluamVjdElEQktleUludG9TY3JpcHRWYWx1ZShFeGVjU3RhdGUmIGV4ZWNTdGF0ZSwgY29u
c3QgSlNWYWx1ZSYgc2NyaXB0VmFsdWUsIGNvbnN0IElEQktleVBhdGgmIGtleVBhdGgpCitib29s
IGNhbkluamVjdElEQktleUludG9TY3JpcHRWYWx1ZShFeGVjU3RhdGUmIGV4ZWMsIGNvbnN0IEpT
VmFsdWUmIHNjcmlwdFZhbHVlLCBjb25zdCBJREJLZXlQYXRoJiBrZXlQYXRoKQogewogICAgIExP
RyhTdG9yYWdlQVBJLCAiY2FuSW5qZWN0SURCS2V5SW50b1NjcmlwdFZhbHVlIik7CiAKQEAgLTI5
OSwxMSArMzA0LDExIEBAIGJvb2wgY2FuSW5qZWN0SURCS2V5SW50b1NjcmlwdFZhbHVlKEV4ZWNT
dGF0ZSYgZXhlY1N0YXRlLCBjb25zdCBKU1ZhbHVlJiBzY3JpcHRWCiAgICAgaWYgKCFrZXlQYXRo
RWxlbWVudHMuc2l6ZSgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICByZXR1cm4gY2Fu
SW5qZWN0TnRoVmFsdWVPbktleVBhdGgoJmV4ZWNTdGF0ZSwgc2NyaXB0VmFsdWUsIGtleVBhdGhF
bGVtZW50cywga2V5UGF0aEVsZW1lbnRzLnNpemUoKSAtIDEpOworICAgIHJldHVybiBjYW5Jbmpl
Y3ROdGhWYWx1ZU9uS2V5UGF0aChleGVjLCBzY3JpcHRWYWx1ZSwga2V5UGF0aEVsZW1lbnRzLCBr
ZXlQYXRoRWxlbWVudHMuc2l6ZSgpIC0gMSk7CiB9CiAKIAotc3RhdGljIEpTVmFsdWUgZGVzZXJp
YWxpemVJREJWYWx1ZVRvSlNWYWx1ZShFeGVjU3RhdGUmIHN0YXRlLCBjb25zdCBJREJWYWx1ZSYg
dmFsdWUpCitzdGF0aWMgSlNWYWx1ZSBkZXNlcmlhbGl6ZUlEQlZhbHVlVG9KU1ZhbHVlKEV4ZWNT
dGF0ZSYgZXhlYywgY29uc3QgSURCVmFsdWUmIHZhbHVlKQogewogICAgIC8vIEZJWE1FOiBJIHRo
aW5rIGl0J3MgcGVjdWxpYXIgdG8gdXNlIHVuZGVmaW5lZCB0byBtZWFuICJudWxsIGRhdGEiIGFu
ZCBudWxsIHRvIG1lYW4gImVtcHR5IGRhdGEiLgogICAgIC8vIEJ1dCBJIGFtIG5vdCBjaGFuZ2lu
ZyB0aGlzIGF0IHRoZSBtb21lbnQgYmVjYXVzZSBhdCBsZWFzdCBzb21lIGNhbGxlcnMgYXJlIHNw
ZWNpZmljYWxseSBjaGVja2luZyBpc1VuZGVmaW5lZC4KQEAgLTMxNyw5ICszMjIsOSBAQCBzdGF0
aWMgSlNWYWx1ZSBkZXNlcmlhbGl6ZUlEQlZhbHVlVG9KU1ZhbHVlKEV4ZWNTdGF0ZSYgc3RhdGUs
IGNvbnN0IElEQlZhbHVlJiB2YQogCiAgICAgYXV0byBzZXJpYWxpemVkVmFsdWUgPSBTZXJpYWxp
emVkU2NyaXB0VmFsdWU6OmNyZWF0ZUZyb21XaXJlQnl0ZXMoVmVjdG9yPHVpbnQ4X3Q+KGRhdGEp
KTsKIAotICAgIHN0YXRlLnZtKCkuYXBpTG9jaygpLmxvY2soKTsKLSAgICBKU1ZhbHVlIHJlc3Vs
dCA9IHNlcmlhbGl6ZWRWYWx1ZS0+ZGVzZXJpYWxpemUoJnN0YXRlLCBzdGF0ZS5sZXhpY2FsR2xv
YmFsT2JqZWN0KCksIDAsIE5vblRocm93aW5nLCB2YWx1ZS5ibG9iVVJMcygpLCB2YWx1ZS5ibG9i
RmlsZVBhdGhzKCkpOwotICAgIHN0YXRlLnZtKCkuYXBpTG9jaygpLnVubG9jaygpOworICAgIGV4
ZWMudm0oKS5hcGlMb2NrKCkubG9jaygpOworICAgIEpTVmFsdWUgcmVzdWx0ID0gc2VyaWFsaXpl
ZFZhbHVlLT5kZXNlcmlhbGl6ZSgmZXhlYywgZXhlYy5sZXhpY2FsR2xvYmFsT2JqZWN0KCksIDAs
IE5vblRocm93aW5nLCB2YWx1ZS5ibG9iVVJMcygpLCB2YWx1ZS5ibG9iRmlsZVBhdGhzKCkpOwor
ICAgIGV4ZWMudm0oKS5hcGlMb2NrKCkudW5sb2NrKCk7CiAKICAgICByZXR1cm4gcmVzdWx0Owog
fQpAQCAtMzI4LDExICszMzMsMTEgQEAgSlNWYWx1ZSBkZXNlcmlhbGl6ZUlEQlZhbHVlVG9KU1Zh
bHVlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIGNvbnN0IElEQlYKIHsKICAgICAv
LyBGSVhNRTogSSB0aGluayBpdCdzIHBlY3VsaWFyIHRvIHJldHVybiBhbiBlbXB0eSBKU1ZhbHVl
LCB1bmRlZmluZWQsIGFuZCBudWxsIGZvciB0aHJlZSBkaWZmZXJlbnQgZXJyb3IgY2FzZXMuCiAK
LSAgICBhdXRvKiBleGVjU3RhdGUgPSBjb250ZXh0LmV4ZWNTdGF0ZSgpOwotICAgIGlmICghZXhl
Y1N0YXRlKQorICAgIGF1dG8qIGV4ZWMgPSBjb250ZXh0LmV4ZWNTdGF0ZSgpOworICAgIGlmICgh
ZXhlYykKICAgICAgICAgcmV0dXJuIHsgfTsKIAotICAgIHJldHVybiBkZXNlcmlhbGl6ZUlEQlZh
bHVlVG9KU1ZhbHVlKCpleGVjU3RhdGUsIHZhbHVlKTsKKyAgICByZXR1cm4gZGVzZXJpYWxpemVJ
REJWYWx1ZVRvSlNWYWx1ZSgqZXhlYywgdmFsdWUpOwogfQogCiBKU1ZhbHVlIGRlc2VyaWFsaXpl
SURCVmFsdWVEYXRhVG9KU1ZhbHVlKEV4ZWNTdGF0ZSYgZXhlYywgY29uc3QgVGhyZWFkU2FmZURh
dGFCdWZmZXImIHZhbHVlRGF0YSkKQEAgLTM0MCwxNSArMzQ1LDkgQEAgSlNWYWx1ZSBkZXNlcmlh
bGl6ZUlEQlZhbHVlRGF0YVRvSlNWYWx1ZShFeGVjU3RhdGUmIGV4ZWMsIGNvbnN0IFRocmVhZFNh
ZmVEYXRhQnUKICAgICByZXR1cm4gZGVzZXJpYWxpemVJREJWYWx1ZVRvSlNWYWx1ZShleGVjLCBJ
REJWYWx1ZSh2YWx1ZURhdGEpKTsKIH0KIAotUmVmUHRyPElEQktleT4gc2NyaXB0VmFsdWVUb0lE
QktleShFeGVjU3RhdGUmIGV4ZWMsIGNvbnN0IEpTVmFsdWUmIHNjcmlwdFZhbHVlKQotewotICAg
IHJldHVybiBjcmVhdGVJREJLZXlGcm9tVmFsdWUoJmV4ZWMsIHNjcmlwdFZhbHVlKTsKLX0KLQot
UmVmUHRyPElEQktleT4gc2NyaXB0VmFsdWVUb0lEQktleShTY3JpcHRFeGVjdXRpb25Db250ZXh0
JiBjb250ZXh0LCBjb25zdCBKU1ZhbHVlJiBzY3JpcHRWYWx1ZSkKK1JlZjxJREJLZXk+IHNjcmlw
dFZhbHVlVG9JREJLZXkoRXhlY1N0YXRlJiBleGVjLCBjb25zdCBKU1ZhbHVlJiBzY3JpcHRWYWx1
ZSkKIHsKLSAgICBhdXRvKiBleGVjU3RhdGUgPSBjb250ZXh0LmV4ZWNTdGF0ZSgpOwotICAgIHJl
dHVybiBleGVjU3RhdGUgPyBzY3JpcHRWYWx1ZVRvSURCS2V5KCpleGVjU3RhdGUsIHNjcmlwdFZh
bHVlKSA6IG51bGxwdHI7CisgICAgcmV0dXJuIGNyZWF0ZUlEQktleUZyb21WYWx1ZShleGVjLCBz
Y3JpcHRWYWx1ZSk7CiB9CiAKIEpTQzo6SlNWYWx1ZSBpZGJLZXlEYXRhVG9TY3JpcHRWYWx1ZShT
Y3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBjb25zdCBJREJLZXlEYXRhJiBrZXlEYXRh
KQpAQCAtMzY5LDE0ICszNjgsMTQgQEAgc3RhdGljIFZlY3RvcjxJREJLZXlEYXRhPiBjcmVhdGVL
ZXlQYXRoQXJyYXkoRXhlY1N0YXRlJiBleGVjLCBKU1ZhbHVlIHZhbHVlLCBjb24KICAgICBzd2l0
Y2ggKGluZm8ua2V5UGF0aCgpLnR5cGUoKSkgewogICAgIGNhc2UgSURCS2V5UGF0aDo6VHlwZTo6
QXJyYXk6CiAgICAgICAgIGZvciAoYXV0byYgZW50cnkgOiBpbmZvLmtleVBhdGgoKS5hcnJheSgp
KSB7Ci0gICAgICAgICAgICBhdXRvIGtleSA9IGludGVybmFsQ3JlYXRlSURCS2V5RnJvbVNjcmlw
dFZhbHVlQW5kS2V5UGF0aCgmZXhlYywgdmFsdWUsIGVudHJ5KTsKKyAgICAgICAgICAgIGF1dG8g
a2V5ID0gaW50ZXJuYWxDcmVhdGVJREJLZXlGcm9tU2NyaXB0VmFsdWVBbmRLZXlQYXRoKGV4ZWMs
IHZhbHVlLCBlbnRyeSk7CiAgICAgICAgICAgICBpZiAoIWtleSkKICAgICAgICAgICAgICAgICBy
ZXR1cm4geyB9OwogICAgICAgICAgICAga2V5cy5hcHBlbmQoa2V5LmdldCgpKTsKICAgICAgICAg
fQogICAgICAgICBicmVhazsKICAgICBjYXNlIElEQktleVBhdGg6OlR5cGU6OlN0cmluZzogewot
ICAgICAgICBhdXRvIGlkYktleSA9IGludGVybmFsQ3JlYXRlSURCS2V5RnJvbVNjcmlwdFZhbHVl
QW5kS2V5UGF0aCgmZXhlYywgdmFsdWUsIGluZm8ua2V5UGF0aCgpLnN0cmluZygpKTsKKyAgICAg
ICAgYXV0byBpZGJLZXkgPSBpbnRlcm5hbENyZWF0ZUlEQktleUZyb21TY3JpcHRWYWx1ZUFuZEtl
eVBhdGgoZXhlYywgdmFsdWUsIGluZm8ua2V5UGF0aCgpLnN0cmluZygpKTsKICAgICAgICAgaWYg
KCFpZGJLZXkpCiAgICAgICAgICAgICByZXR1cm4geyB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9JREJCaW5kaW5nVXRpbGl0aWVzLmggYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9JREJCaW5kaW5nVXRpbGl0aWVzLmgKaW5kZXggY2U2MzI3MGM2Yzg3YTkx
YzBmMjE1ZjVmNjUyMDBhZjJhODMwOTUwZi4uMDI2NzY5YzVlMGI2OTJlZTk2ODlmYzgxYTQ1OTVl
ZDdiMzgwZGNlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSURCQmlu
ZGluZ1V0aWxpdGllcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0lEQkJpbmRp
bmdVdGlsaXRpZXMuaApAQCAtNjIsOCArNjIsNyBAQCB2b2lkIGdlbmVyYXRlSW5kZXhLZXlGb3JW
YWx1ZShKU0M6OkV4ZWNTdGF0ZSYsIGNvbnN0IElEQkluZGV4SW5mbyYsIEpTQzo6SlNWYWx1ZQog
SlNDOjpKU1ZhbHVlIGRlc2VyaWFsaXplSURCVmFsdWVUb0pTVmFsdWUoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCYsIGNvbnN0IElEQlZhbHVlJik7CiBKU0M6OkpTVmFsdWUgZGVzZXJpYWxpemVJREJW
YWx1ZURhdGFUb0pTVmFsdWUoSlNDOjpFeGVjU3RhdGUmLCBjb25zdCBUaHJlYWRTYWZlRGF0YUJ1
ZmZlciYgdmFsdWVEYXRhKTsKIAotUmVmUHRyPElEQktleT4gc2NyaXB0VmFsdWVUb0lEQktleShT
Y3JpcHRFeGVjdXRpb25Db250ZXh0JiwgY29uc3QgSlNDOjpKU1ZhbHVlJik7Ci1SZWZQdHI8SURC
S2V5PiBzY3JpcHRWYWx1ZVRvSURCS2V5KEpTQzo6RXhlY1N0YXRlJiwgY29uc3QgSlNDOjpKU1Zh
bHVlJik7CitSZWY8SURCS2V5PiBzY3JpcHRWYWx1ZVRvSURCS2V5KEpTQzo6RXhlY1N0YXRlJiwg
Y29uc3QgSlNDOjpKU1ZhbHVlJik7CiAKIH0KIAo=
</data>
<flag name="review"
          id="304400"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
      

    </bug>

</bugzilla>