<?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>173883</bug_id>
          
          <creation_ts>2017-06-27 12:27:01 -0700</creation_ts>
          <short_desc>[GCrypt] Key serialization support</short_desc>
          <delta_ts>2017-07-27 16:14:42 -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>New Bugs</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>
          <dependson>173646</dependson>
          <blocked>133122</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Zan Dobersek">zan</reporter>
          <assigned_to name="Zan Dobersek">zan</assigned_to>
          <cc>buildbot</cc>
    
    <cc>jiewen_tan</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1323200</commentid>
    <comment_count>0</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-06-27 12:27:01 -0700</bug_when>
    <thetext>SSIA.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1323202</commentid>
    <comment_count>1</comment_count>
      <attachid>313933</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-06-27 12:31:41 -0700</bug_when>
    <thetext>Created attachment 313933
WIP patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1323524</commentid>
    <comment_count>2</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-06-28 07:04:31 -0700</bug_when>
    <thetext>Attachment 313933 did not pass style-queue:


ERROR: Source/WebCore/PAL/ChangeLog:8:  You should remove the &apos;No new tests&apos; and either add and list tests, or explain why no new tests were possible.  [changelog/nonewtests] [5]
ERROR: Source/WebCore/ChangeLog:8:  You should remove the &apos;No new tests&apos; and either add and list tests, or explain why no new tests were possible.  [changelog/nonewtests] [5]
Total errors found: 2 in 6 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1323562</commentid>
    <comment_count>3</comment_count>
      <attachid>314031</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-06-28 09:31:39 -0700</bug_when>
    <thetext>Created attachment 314031
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1323563</commentid>
    <comment_count>4</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-06-28 09:32:47 -0700</bug_when>
    <thetext>(In reply to Zan Dobersek from comment #3)
&gt; Created attachment 314031 [details]
&gt; Patch

This is ready for review, but the patch still relies on libtasn1 helpers that are being added in bug #173646.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1325057</commentid>
    <comment_count>5</comment_count>
      <attachid>314464</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-07-03 01:06:12 -0700</bug_when>
    <thetext>Created attachment 314464
Patch

Now buildable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1328160</commentid>
    <comment_count>6</comment_count>
      <attachid>314464</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2017-07-12 11:53:58 -0700</bug_when>
    <thetext>Comment on attachment 314464
Patch

In general, I don&apos;t believe we need to encrypt CryptoKey objects when they are stored into the indexedDB. However, this functionality has been implemented before I take over the WebCrypto API, and it is hard to remove for backward compatibility. I recommend GTK+ not to follow this approach at least you have legitimate reasons for it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1329149</commentid>
    <comment_count>7</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-07-14 23:36:02 -0700</bug_when>
    <thetext>(In reply to Jiewen Tan from comment #6)
&gt; Comment on attachment 314464 [details]
&gt; Patch
&gt; 
&gt; In general, I don&apos;t believe we need to encrypt CryptoKey objects when they
&gt; are stored into the indexedDB. However, this functionality has been
&gt; implemented before I take over the WebCrypto API, and it is hard to remove
&gt; for backward compatibility. I recommend GTK+ not to follow this approach at
&gt; least you have legitimate reasons for it.

If I&apos;m not mistaken, serialization support is still required for passing keys into worker contexts.  The main intent was to gain support for that.

Do you plan to change how that is supported?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1329577</commentid>
    <comment_count>8</comment_count>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2017-07-17 09:27:00 -0700</bug_when>
    <thetext>(In reply to Zan Dobersek from comment #7)
&gt; (In reply to Jiewen Tan from comment #6)
&gt; &gt; Comment on attachment 314464 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; In general, I don&apos;t believe we need to encrypt CryptoKey objects when they
&gt; &gt; are stored into the indexedDB. However, this functionality has been
&gt; &gt; implemented before I take over the WebCrypto API, and it is hard to remove
&gt; &gt; for backward compatibility. I recommend GTK+ not to follow this approach at
&gt; &gt; least you have legitimate reasons for it.
&gt; 
&gt; If I&apos;m not mistaken, serialization support is still required for passing
&gt; keys into worker contexts.  The main intent was to gain support for that.
&gt; 
&gt; Do you plan to change how that is supported?

Yes, that&apos;s true. But you don&apos;t have to encrypt/decrypt the binaries.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1330351</commentid>
    <comment_count>9</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-07-19 06:19:55 -0700</bug_when>
    <thetext>Understood, I will simplify the implementation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1330403</commentid>
    <comment_count>10</comment_count>
      <attachid>315933</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-07-19 10:39:19 -0700</bug_when>
    <thetext>Created attachment 315933
WIP patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1330426</commentid>
    <comment_count>11</comment_count>
      <attachid>315940</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-07-19 11:17:24 -0700</bug_when>
    <thetext>Created attachment 315940
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1332115</commentid>
    <comment_count>12</comment_count>
      <attachid>315940</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2017-07-25 15:16:04 -0700</bug_when>
    <thetext>Comment on attachment 315940
Patch

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

Thanks for taking my last comment. r- for the following reasons. Please address it.

&gt; Source/WebCore/crypto/gcrypt/SerializedCryptoKeyWrapGCrypt.cpp:44
&gt;  bool wrapSerializedCryptoKey(const Vector&lt;uint8_t&gt;&amp; masterKey, const Vector&lt;uint8_t&gt;&amp; key, Vector&lt;uint8_t&gt;&amp; result)

I am suggesting you just return the key. Maybe a copy is needed. That&apos;s it.

The key here is already serialized. You don&apos;t have to do it again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1332317</commentid>
    <comment_count>13</comment_count>
      <attachid>316444</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-07-26 04:27:13 -0700</bug_when>
    <thetext>Created attachment 316444
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1332397</commentid>
    <comment_count>14</comment_count>
      <attachid>316444</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2017-07-26 11:43:49 -0700</bug_when>
    <thetext>Comment on attachment 316444
Patch

Looks good to me. r=me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1332600</commentid>
    <comment_count>15</comment_count>
      <attachid>316444</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-07-27 01:13:05 -0700</bug_when>
    <thetext>Comment on attachment 316444
Patch

Clearing flags on attachment: 316444

Committed r219976: &lt;http://trac.webkit.org/changeset/219976&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1332601</commentid>
    <comment_count>16</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-07-27 01:13:09 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>313933</attachid>
            <date>2017-06-27 12:31:41 -0700</date>
            <delta_ts>2017-06-28 09:31:34 -0700</delta_ts>
            <desc>WIP patch</desc>
            <filename>bug-173883-20170627213140.patch</filename>
            <type>text/plain</type>
            <size>15135</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE4ODI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODFjYzRjMTVlYWQ5YzQx
YjFiNDMxMWNiYTJjNDJlMzdmODUyZmU0My4uYjEwZGE5NWZlM2NmMjFkMzJjMzc1ZTUxZTI3MjJi
Yjk5ZmQwNDM3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE3LTA2LTI3ICBaYW4g
RG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KKworICAgICAgICBbR0NyeXB0XSBLZXkg
c2VyaWFsaXphdGlvbiBzdXBwb3J0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNzM4ODMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBObyBuZXcgdGVzdHMgKE9PUFMhKS4KKworICAgICAgICAqIGNyeXB0by9n
Y3J5cHQvU2VyaWFsaXplZENyeXB0b0tleVdyYXBHQ3J5cHQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Z2V0RGVmYXVsdFdlYkNyeXB0b01hc3RlcktleSk6CisgICAgICAgIChXZWJDb3JlOjp3cmFw
U2VyaWFsaXplZENyeXB0b0tleSk6CisgICAgICAgIChXZWJDb3JlOjp1bndyYXBTZXJpYWxpemVk
Q3J5cHRvS2V5KToKKwogMjAxNy0wNi0yNiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29t
PgogCiAgICAgICAgIFdlYnNpdGVEYXRhU3RvcmU6OmZldGNoRGF0YUZvclRvcFByaXZhdGVseUNv
bnRyb2xsZWREb21haW5zKCkgaXMgaW5lZmZpY2llbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1BBTC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCmluZGV4IDhk
ZGJlMGVmMmVhMDNmN2U3ODg3Mzc2OWFmZjY5YTMzNzM3YjU2YmIuLmZjNGNmYjY5YjkzYzBhY2Qy
YTY3ODZkZGMxOWJiN2IwMTcwZWVlZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2
IEBACisyMDE3LTA2LTI3ICBaYW4gRG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KKwor
ICAgICAgICBbR0NyeXB0XSBLZXkgc2VyaWFsaXphdGlvbiBzdXBwb3J0CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzM4ODMKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMgKE9PUFMhKS4K
KworICAgICAgICAqIHBhbC9jcnlwdG8vdGFzbjEvVXRpbGl0aWVzLmNwcDoKKyAgICAgICAgKFBB
TDo6VEFTTjE6OmFzbjFEZWZpbml0aW9ucyk6CisgICAgICAgICogcGFsL2NyeXB0by90YXNuMS9X
ZWJDcnlwdG8uYXNuOgorCiAyMDE3LTA2LTIwICBaYW4gRG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdh
bGlhLmNvbT4KIAogICAgICAgICBbR0NyeXB0XSBJbXBsZW1lbnQgQ3J5cHRvS2V5RUMgU1BLSSBp
bXBvcnRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NyeXB0by90YXNuMS9V
dGlsaXRpZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jcnlwdG8vdGFzbjEvVXRpbGl0
aWVzLmNwcAppbmRleCA0ZmRmMDU1MTdlNjAxMGNiMDg0MmVjNTQ1NTc2NTIzMDg1NjU3NTQ4Li43
ZGE2YjVmZmE1MmFlOGM2ZjdiYTU3MWNkNzQ5YWU5ZWM3YjZkNDRkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9QQUwvcGFsL2NyeXB0by90YXNuMS9VdGlsaXRpZXMuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL1BBTC9wYWwvY3J5cHRvL3Rhc24xL1V0aWxpdGllcy5jcHAKQEAgLTg5LDEwICs4
OSwxNCBAQCBzdGF0aWMgYXNuMV9ub2RlIGFzbjFEZWZpbml0aW9ucygpCiAgICAgICAgIHsgIk90
aGVyUHJpbWVJbmZvcyIsIDE2MTI3MDk4OTksIG51bGxwdHIgfSwKICAgICAgICAgeyAiTUFYIiwg
MTA3NDI2NjEyMiwgIjEifSwKICAgICAgICAgeyBudWxscHRyLCAyLCAiT3RoZXJQcmltZUluZm8i
fSwKLSAgICAgICAgeyAiT3RoZXJQcmltZUluZm8iLCA1MzY4NzA5MTcsIG51bGxwdHIgfSwKKyAg
ICAgICAgeyAiT3RoZXJQcmltZUluZm8iLCAxNjEwNjEyNzQxLCBudWxscHRyIH0sCiAgICAgICAg
IHsgInByaW1lIiwgMTA3Mzc0MTgyNywgbnVsbHB0ciB9LAogICAgICAgICB7ICJleHBvbmVudCIs
IDEwNzM3NDE4MjcsIG51bGxwdHIgfSwKICAgICAgICAgeyAiY29lZmZpY2llbnQiLCAzLCBudWxs
cHRyIH0sCisgICAgICAgIHsgIlNlcmlhbGl6ZWRDcnlwdG9LZXlXcmFwIiwgNTM2ODcwOTE3LCBu
dWxscHRyIH0sCisgICAgICAgIHsgIndyYXBwZWRLRUsiLCAxMDczNzQxODMxLCBudWxscHRyIH0s
CisgICAgICAgIHsgImVuY3J5cHRlZEtleSIsIDEwNzM3NDE4MzEsIG51bGxwdHIgfSwKKyAgICAg
ICAgeyAidGFnIiwgNywgbnVsbHB0ciB9LAogICAgICAgICB7IG51bGxwdHIsIDAsIG51bGxwdHIg
fQogICAgIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY3J5cHRvL3Rh
c24xL1dlYkNyeXB0by5hc24gYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NyeXB0by90YXNuMS9X
ZWJDcnlwdG8uYXNuCmluZGV4IGM4MTNiODk2NDEyNDczNTM0NzE3OTUxZmY2NWJiNDgzYThjMjgz
NzYuLjFkOTg5NzI1NDJhZDBmZTExOTYwNGU1OWVhOWUzMmMyNDVjNTVjMWEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY3J5cHRvL3Rhc24xL1dlYkNyeXB0by5hc24KKysrIGIv
U291cmNlL1dlYkNvcmUvUEFML3BhbC9jcnlwdG8vdGFzbjEvV2ViQ3J5cHRvLmFzbgpAQCAtODcs
NCArODcsMTIgQEAgT3RoZXJQcmltZUluZm8gOjo9IFNFUVVFTkNFIHsKICAgY29lZmZpY2llbnQg
SU5URUdFUiAtLSB0aQogfQogCistLSBVc2VkIGludGVybmFsbHkgZm9yIGtleSBzZXJpYWxpemF0
aW9uLgorCitTZXJpYWxpemVkQ3J5cHRvS2V5V3JhcCA6Oj0gU0VRVUVOQ0UgeworICB3cmFwcGVk
S0VLICAgIE9DVEVUIFNUUklORywKKyAgZW5jcnlwdGVkS2V5ICBPQ1RFVCBTVFJJTkcsCisgIHRh
ZyAgICAgICAgICAgT0NURVQgU1RSSU5HCit9CisKIEVORApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvY3J5cHRvL2djcnlwdC9TZXJpYWxpemVkQ3J5cHRvS2V5V3JhcEdDcnlwdC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9jcnlwdG8vZ2NyeXB0L1NlcmlhbGl6ZWRDcnlwdG9LZXlXcmFwR0NyeXB0
LmNwcAppbmRleCA5NDk5ODlmOTRlMTI1OTMzMGQ5Mjc5OGQ1N2MyYjE4Yjg1N2YzMWZkLi4zMGE3
MTE2MzI4MGVjNjJiYWVhNmMwMWY3OWM5ZmFlYWEyMGYwYWMyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9jcnlwdG8vZ2NyeXB0L1NlcmlhbGl6ZWRDcnlwdG9LZXlXcmFwR0NyeXB0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vZ2NyeXB0L1NlcmlhbGl6ZWRDcnlwdG9LZXlXcmFw
R0NyeXB0LmNwcApAQCAtMjksMzUgKzI5LDIwMSBAQAogI2lmIEVOQUJMRShTVUJUTEVfQ1JZUFRP
KQogCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKKyNpbmNsdWRlIDxwYWwvY3J5cHRvL2dj
cnlwdC9IYW5kbGUuaD4KKyNpbmNsdWRlIDxwYWwvY3J5cHRvL2djcnlwdC9VdGlsaXRpZXMuaD4K
KyNpbmNsdWRlIDxwYWwvY3J5cHRvL3Rhc24xL1V0aWxpdGllcy5oPgorI2luY2x1ZGUgPHd0Zi9D
cnlwdG9ncmFwaGljVXRpbGl0aWVzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotYm9vbCBn
ZXREZWZhdWx0V2ViQ3J5cHRvTWFzdGVyS2V5KFZlY3Rvcjx1aW50OF90PiYgbWFzdGVyS2V5KQor
Ym9vbCBnZXREZWZhdWx0V2ViQ3J5cHRvTWFzdGVyS2V5KFZlY3Rvcjx1aW50OF90PiYpCiB7CiAg
ICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICBVTlVTRURfUEFSQU0obWFzdGVyS2V5KTsKLQogICAg
IHJldHVybiBmYWxzZTsKIH0KIAogYm9vbCB3cmFwU2VyaWFsaXplZENyeXB0b0tleShjb25zdCBW
ZWN0b3I8dWludDhfdD4mIG1hc3RlcktleSwgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBrZXksIFZl
Y3Rvcjx1aW50OF90PiYgcmVzdWx0KQogewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgVU5V
U0VEX1BBUkFNKG1hc3RlcktleSk7Ci0gICAgVU5VU0VEX1BBUkFNKGtleSk7Ci0gICAgVU5VU0VE
X1BBUkFNKHJlc3VsdCk7CisgICAgLy8gR2VuZXJhdGUgYSAxMjgtYml0IGtleS1lbmNyeXB0aW9u
IGtleSAoS0VLKS4KKyAgICBWZWN0b3I8dWludDhfdD4ga2VrKDE2KTsKKyAgICBnY3J5X3JhbmRv
bWl6ZShrZWsuZGF0YSgpLCBrZWsuc2l6ZSgpLCBHQ1JZX1ZFUllfU1RST05HX1JBTkRPTSk7CiAK
LSAgICByZXR1cm4gZmFsc2U7CisgICAgLy8gVXNlIHRoZSBBRVMtV3JhcCBhbGdvcml0aG0gdG8g
d3JhcCB0aGUgS0VLLiBXZSBjYW4gcHJlZGV0ZXJtaW5lIHRoZSBvdXRwdXQgYnVmZmVyCisgICAg
Ly8gc2l6ZSAtLSBpdCBoYXMgdG8gYmUgOCBieXRlcyBsYXJnZXIgdGhhbiB0aGUgaW5wdXQgKHdo
aWNoIGlzIDE2IGJ5dGVzKS4KKyAgICBWZWN0b3I8dWludDhfdD4gd3JhcHBlZEtFSygyNCk7Cisg
ICAgeworICAgICAgICBhdXRvIGFsZ29yaXRobSA9IFBBTDo6R0NyeXB0OjphZXNBbGdvcml0aG1G
b3JLZXlTaXplKG1hc3RlcktleS5zaXplKCkgKiA4KTsKKyAgICAgICAgaWYgKCFhbGdvcml0aG0p
CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgUEFMOjpHQ3J5cHQ6OkhhbmRs
ZTxnY3J5X2NpcGhlcl9oZF90PiBoYW5kbGU7CisgICAgICAgIGdjcnlfZXJyb3JfdCBlcnJvciA9
IGdjcnlfY2lwaGVyX29wZW4oJmhhbmRsZSwgKmFsZ29yaXRobSwgR0NSWV9DSVBIRVJfTU9ERV9B
RVNXUkFQLCAwKTsKKyAgICAgICAgaWYgKGVycm9yICE9IEdQR19FUlJfTk9fRVJST1IpIHsKKyAg
ICAgICAgICAgIFBBTDo6R0NyeXB0Ojpsb2dFcnJvcihlcnJvcik7CisgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICAvLyBVc2UgdGhlIHBhc3NlZC1pbiBgbWFz
dGVyS2V5YCBhcyB0aGUga2V5IGZvciBlbmNyeXB0aW9uLgorICAgICAgICBlcnJvciA9IGdjcnlf
Y2lwaGVyX3NldGtleShoYW5kbGUsIG1hc3RlcktleS5kYXRhKCksIG1hc3RlcktleS5zaXplKCkp
OworICAgICAgICBpZiAoZXJyb3IgIT0gR1BHX0VSUl9OT19FUlJPUikgeworICAgICAgICAgICAg
UEFMOjpHQ3J5cHQ6OmxvZ0Vycm9yKGVycm9yKTsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICAgICAgfQorCisgICAgICAgIC8vIEVuY3J5cHQgdGhlIGdlbmVyYXRlZCBLRUssIHJldHJp
ZXZpbmcgdGhlIGNpcGhlciB0ZXh0IGludG8gdGhlIGB3cmFwcGVkS0VLYCBWZWN0b3IuCisgICAg
ICAgIGVycm9yID0gZ2NyeV9jaXBoZXJfZW5jcnlwdChoYW5kbGUsIHdyYXBwZWRLRUsuZGF0YSgp
LCB3cmFwcGVkS0VLLnNpemUoKSwga2VrLmRhdGEoKSwga2VrLnNpemUoKSk7CisgICAgICAgIGlm
IChlcnJvciAhPSBHUEdfRVJSX05PX0VSUk9SKSB7CisgICAgICAgICAgICBQQUw6OkdDcnlwdDo6
bG9nRXJyb3IoZXJyb3IpOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9Cisg
ICAgfQorCisgICAgLy8gVXNlIHRoZSBBRVMtR0NNIGFsZ29yaXRobSB0byBlbmNyeXB0IHRoZSBw
YXNzZWQtaW4ga2V5LiBUaGUgb3V0cHV0IFZlY3RvciBzaG91bGQgbWF0Y2gKKyAgICAvLyB0aGUg
aW5wdXQga2V5IFZlY3RvciBpbiBzaXplLiBUaGUgdGFnLCAxNiBieXRlcyBpbiBzaXplLCBpcyBh
bHNvIHJldHJpZXZlZC4KKyAgICBWZWN0b3I8dWludDhfdD4gZW5jcnlwdGVkS2V5KGtleS5zaXpl
KCkpOworICAgIFZlY3Rvcjx1aW50OF90PiB0YWcoMTYpOworICAgIHsKKyAgICAgICAgUEFMOjpH
Q3J5cHQ6OkhhbmRsZTxnY3J5X2NpcGhlcl9oZF90PiBoYW5kbGU7CisgICAgICAgIGdjcnlfZXJy
b3JfdCBlcnJvciA9IGdjcnlfY2lwaGVyX29wZW4oJmhhbmRsZSwgR0NSWV9DSVBIRVJfQUVTMTI4
LCBHQ1JZX0NJUEhFUl9NT0RFX0dDTSwgMCk7CisgICAgICAgIGlmIChlcnJvciAhPSBHUEdfRVJS
X05PX0VSUk9SKSB7CisgICAgICAgICAgICBQQUw6OkdDcnlwdDo6bG9nRXJyb3IoZXJyb3IpOwor
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgLy8gVXNlIHRo
ZSBLRUsgYXMgdGhlIGtleSBmb3IgZW5jcnlwdGlvbi4KKyAgICAgICAgZXJyb3IgPSBnY3J5X2Np
cGhlcl9zZXRrZXkoaGFuZGxlLCBrZWsuZGF0YSgpLCBrZWsuc2l6ZSgpKTsKKyAgICAgICAgaWYg
KGVycm9yICE9IEdQR19FUlJfTk9fRVJST1IpIHsKKyAgICAgICAgICAgIFBBTDo6R0NyeXB0Ojps
b2dFcnJvcihlcnJvcik7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKwor
ICAgICAgICAvLyBFbmNyeXB0IHRoZSBwYXNzZWQtaW4gYGtleWAsIHJldHJpZXZpbmcgdGhlIGNp
cGhlciB0ZXh0IGludG8gdGhlIGBlbmNyeXB0ZWRLZXlgIFZlY3Rvci4KKyAgICAgICAgZXJyb3Ig
PSBnY3J5X2NpcGhlcl9lbmNyeXB0KGhhbmRsZSwgZW5jcnlwdGVkS2V5LmRhdGEoKSwgZW5jcnlw
dGVkS2V5LnNpemUoKSwga2V5LmRhdGEoKSwga2V5LnNpemUoKSk7CisgICAgICAgIGlmIChlcnJv
ciAhPSBHUEdfRVJSX05PX0VSUk9SKSB7CisgICAgICAgICAgICBQQUw6OkdDcnlwdDo6bG9nRXJy
b3IoZXJyb3IpOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAg
ICAgLy8gQWxzbyByZXRyaWV2ZSB0aGUgdGFnIGRhdGEgaW50byB0aGUgYHRhZ2AgVmVjdG9yLgor
ICAgICAgICBlcnJvciA9IGdjcnlfY2lwaGVyX2dldHRhZyhoYW5kbGUsIHRhZy5kYXRhKCksIHRh
Zy5zaXplKCkpOworICAgICAgICBpZiAoZXJyb3IgIT0gR1BHX0VSUl9OT19FUlJPUikgeworICAg
ICAgICAgICAgUEFMOjpHQ3J5cHQ6OmxvZ0Vycm9yKGVycm9yKTsKKyAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vIENyZWF0ZSB0aGUgQVNOLjEgYFNl
cmlhbGl6ZWRDcnlwdG9LZXlXcmFwYCBzdHJ1Y3R1cmUgYW5kIHdyaXRlIHRoZSB3cmFwcGVkIEtF
SywgZW5jcnlwdGVkIGtleQorICAgIC8vIGFuZCB0YWcgZGF0YSBpbnRvIGl0LiBSZXRyaWV2ZSB0
aGUgZW5jb2RlZCBkYXRhIGFuZCBtb3ZlIGl0IGludG8gdGhlIG91dHB1dCBgcmVzdWx0YCBWZWN0
b3IuCisgICAgUEFMOjpUQVNOMTo6U3RydWN0dXJlIHdyYXA7CisgICAgeworICAgICAgICBpZiAo
IVBBTDo6VEFTTjE6OmNyZWF0ZVN0cnVjdHVyZSgiV2ViQ3J5cHRvLlNlcmlhbGl6ZWRDcnlwdG9L
ZXlXcmFwIiwgJndyYXApKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIGlm
ICghUEFMOjpUQVNOMTo6d3JpdGVFbGVtZW50KHdyYXAsICJ3cmFwcGVkS0VLIiwgd3JhcHBlZEtF
Sy5kYXRhKCksIHdyYXBwZWRLRUsuc2l6ZSgpKQorICAgICAgICAgICAgfHwgIVBBTDo6VEFTTjE6
OndyaXRlRWxlbWVudCh3cmFwLCAiZW5jcnlwdGVkS2V5IiwgZW5jcnlwdGVkS2V5LmRhdGEoKSwg
ZW5jcnlwdGVkS2V5LnNpemUoKSkKKyAgICAgICAgICAgIHx8ICFQQUw6OlRBU04xOjp3cml0ZUVs
ZW1lbnQod3JhcCwgInRhZyIsIHRhZy5kYXRhKCksIHRhZy5zaXplKCkpKQorICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOworCisgICAgICAgIGF1dG8gZGF0YSA9IFBBTDo6VEFTTjE6OmVuY29kZWRE
YXRhKHdyYXAsICIiKTsKKyAgICAgICAgaWYgKCFkYXRhKQorICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOworCisgICAgICAgIHJlc3VsdCA9IFdURk1vdmUoZGF0YS52YWx1ZSgpKTsKKyAgICB9CisK
KyAgICAvLyBGaW5hbGx5IHJldHVybiBgdHJ1ZWAsIHNpZ25hbGxpbmcgYSBzdWNjZXNzZnVsIHdy
YXBwaW5nIG9wZXJhdGlvbi4KKyAgICByZXR1cm4gdHJ1ZTsKIH0KIAogYm9vbCB1bndyYXBTZXJp
YWxpemVkQ3J5cHRvS2V5KGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgbWFzdGVyS2V5LCBjb25zdCBW
ZWN0b3I8dWludDhfdD4mIHdyYXBwZWRLZXksIFZlY3Rvcjx1aW50OF90PiYga2V5KQogewotICAg
IG5vdEltcGxlbWVudGVkKCk7Ci0gICAgVU5VU0VEX1BBUkFNKG1hc3RlcktleSk7Ci0gICAgVU5V
U0VEX1BBUkFNKHdyYXBwZWRLZXkpOwotICAgIFVOVVNFRF9QQVJBTShrZXkpOworICAgIC8vIERl
Y29kZSB0aGUgQVNOLjEgYFNlcmlhbGl6ZWRDcnlwdG9LZXlXcmFwYCBzdHJ1Y3R1cmUgZnJvbSB0
aGUgcHJvdmlkZWQgYHdyYXBwZWRLZXlgIGRhdGEuCisgICAgUEFMOjpUQVNOMTo6U3RydWN0dXJl
IHdyYXA7CisgICAgaWYgKCFQQUw6OlRBU04xOjpkZWNvZGVTdHJ1Y3R1cmUoJndyYXAsICJXZWJD
cnlwdG8uU2VyaWFsaXplZENyeXB0b0tleVdyYXAiLCB3cmFwcGVkS2V5KSkKKyAgICAgICAgcmV0
dXJuIGZhbHNlOwogCi0gICAgcmV0dXJuIGZhbHNlOworICAgIC8vIFJldHJpZXZlIHRoZSBgd3Jh
cHBlZEtla2AgZGF0YSwgaXQgc2hvdWxkIGJlIDI0IGJ5dGVzIGluIHNpemUuCisgICAgYXV0byB3
cmFwcGVkS0VLID0gUEFMOjpUQVNOMTo6ZWxlbWVudERhdGEod3JhcCwgIndyYXBwZWRLRUsiKTsK
KyAgICBpZiAoIXdyYXBwZWRLRUsgfHwgd3JhcHBlZEtFSy0+c2l6ZSgpICE9IDI0KQorICAgICAg
ICByZXR1cm4gZmFsc2U7CisKKyAgICAvLyBSZXRyaWV2ZSB0aGUgYGVuY3J5cHRlZEtleWAgZGF0
YSwgd2l0aCBubyBzaXplIGd1YXJhbnRlZS4KKyAgICBhdXRvIGVuY3J5cHRlZEtleSA9IFBBTDo6
VEFTTjE6OmVsZW1lbnREYXRhKHdyYXAsICJlbmNyeXB0ZWRLZXkiKTsKKyAgICBpZiAoIWVuY3J5
cHRlZEtleSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgLy8gUmV0cmlldmUgdGhlIGB0
YWdgIGRhdGEsIGl0IHNob3VsZCBiZSAxNiBieXRlcyBpbiBzaXplLgorICAgIGF1dG8gdGFnID0g
UEFMOjpUQVNOMTo6ZWxlbWVudERhdGEod3JhcCwgInRhZyIpOworICAgIGlmICghdGFnIHx8IHRh
Zy0+c2l6ZSgpICE9IDE2KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAvLyBVc2UgdGhl
IEFFUy1XcmFwIGFsZ29yaXRobSB0byB1bndyYXAgdGhlIEtFSy4gV2UgY2FuIHByZWRldGVybWlu
ZSB0aGUgb3V0cHV0IGJ1ZmZlcgorICAgIC8vIHNpemUgLS0gaXQgaGFzIHRvIGJlIDggYnl0ZXMg
c21hbGxlciB0aGFuIHRoZSBpbnB1dCAod2hpY2ggaXMgMjQgYnl0ZXMpLgorICAgIFZlY3Rvcjx1
aW50OF90PiBrZWsoMTYpOworICAgIHsKKyAgICAgICAgYXV0byBhbGdvcml0aG0gPSBQQUw6OkdD
cnlwdDo6YWVzQWxnb3JpdGhtRm9yS2V5U2l6ZShtYXN0ZXJLZXkuc2l6ZSgpICogOCk7CisgICAg
ICAgIGlmICghYWxnb3JpdGhtKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAg
IFBBTDo6R0NyeXB0OjpIYW5kbGU8Z2NyeV9jaXBoZXJfaGRfdD4gaGFuZGxlOworICAgICAgICBn
Y3J5X2Vycm9yX3QgZXJyb3IgPSBnY3J5X2NpcGhlcl9vcGVuKCZoYW5kbGUsICphbGdvcml0aG0s
IEdDUllfQ0lQSEVSX01PREVfQUVTV1JBUCwgMCk7CisgICAgICAgIGlmIChlcnJvciAhPSBHUEdf
RVJSX05PX0VSUk9SKSB7CisgICAgICAgICAgICBQQUw6OkdDcnlwdDo6bG9nRXJyb3IoZXJyb3Ip
OworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgZXJyb3Ig
PSBnY3J5X2NpcGhlcl9zZXRrZXkoaGFuZGxlLCBtYXN0ZXJLZXkuZGF0YSgpLCBtYXN0ZXJLZXku
c2l6ZSgpKTsKKyAgICAgICAgaWYgKGVycm9yICE9IEdQR19FUlJfTk9fRVJST1IpIHsKKyAgICAg
ICAgICAgIFBBTDo6R0NyeXB0Ojpsb2dFcnJvcihlcnJvcik7CisgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICBlcnJvciA9IGdjcnlfY2lwaGVyX2RlY3J5cHQo
aGFuZGxlLCBrZWsuZGF0YSgpLCBrZWsuc2l6ZSgpLCB3cmFwcGVkS0VLLT5kYXRhKCksIHdyYXBw
ZWRLRUstPnNpemUoKSk7CisgICAgICAgIGlmIChlcnJvciAhPSBHUEdfRVJSX05PX0VSUk9SKSB7
CisgICAgICAgICAgICBQQUw6OkdDcnlwdDo6bG9nRXJyb3IoZXJyb3IpOworICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgfQorCisgICAgLy8gVXNlIHRoZSBBRVMtR0NN
IGFsZ29yaXRobSB0byBkZWNyeXB0IHRoZSBlbmNyeXB0ZWQga2V5IGRhdGEuIFRoZSBvdXRwdXQg
VmVjdG9yIHNob3VsZCBtYXRjaAorICAgIC8vIHRoZSBpbnB1dCBrZXkgVmVjdG9yIGluIHNpemUu
IFRoZSB0YWcsIDE2IGJ5dGVzIGluIHNpemUsIGlzIGFsc28gcmV0cmlldmVkLgorICAgIFZlY3Rv
cjx1aW50OF90PiBkZWNyeXB0ZWRLZXkoZW5jcnlwdGVkS2V5LT5zaXplKCkpOworICAgIFZlY3Rv
cjx1aW50OF90PiBhY3R1YWxUYWcoMTYpOworICAgIHsKKyAgICAgICAgUEFMOjpHQ3J5cHQ6Okhh
bmRsZTxnY3J5X2NpcGhlcl9oZF90PiBoYW5kbGU7CisgICAgICAgIGdjcnlfZXJyb3JfdCBlcnJv
ciA9IGdjcnlfY2lwaGVyX29wZW4oJmhhbmRsZSwgR0NSWV9DSVBIRVJfQUVTMTI4LCBHQ1JZX0NJ
UEhFUl9NT0RFX0dDTSwgMCk7CisgICAgICAgIGlmIChlcnJvciAhPSBHUEdfRVJSX05PX0VSUk9S
KSB7CisgICAgICAgICAgICBQQUw6OkdDcnlwdDo6bG9nRXJyb3IoZXJyb3IpOworICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgZXJyb3IgPSBnY3J5X2NpcGhl
cl9zZXRrZXkoaGFuZGxlLCBrZWsuZGF0YSgpLCBrZWsuc2l6ZSgpKTsKKyAgICAgICAgaWYgKGVy
cm9yICE9IEdQR19FUlJfTk9fRVJST1IpIHsKKyAgICAgICAgICAgIFBBTDo6R0NyeXB0Ojpsb2dF
cnJvcihlcnJvcik7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKworICAg
ICAgICBlcnJvciA9IGdjcnlfY2lwaGVyX2RlY3J5cHQoaGFuZGxlLCBkZWNyeXB0ZWRLZXkuZGF0
YSgpLCBkZWNyeXB0ZWRLZXkuc2l6ZSgpLCBlbmNyeXB0ZWRLZXktPmRhdGEoKSwgZW5jcnlwdGVk
S2V5LT5zaXplKCkpOworICAgICAgICBpZiAoZXJyb3IgIT0gR1BHX0VSUl9OT19FUlJPUikgewor
ICAgICAgICAgICAgUEFMOjpHQ3J5cHQ6OmxvZ0Vycm9yKGVycm9yKTsKKyAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIGVycm9yID0gZ2NyeV9jaXBoZXJfZ2V0
dGFnKGhhbmRsZSwgYWN0dWFsVGFnLmRhdGEoKSwgYWN0dWFsVGFnLnNpemUoKSk7CisgICAgICAg
IGlmIChlcnJvciAhPSBHUEdfRVJSX05PX0VSUk9SKSB7CisgICAgICAgICAgICBQQUw6OkdDcnlw
dDo6bG9nRXJyb3IoZXJyb3IpOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9
CisgICAgfQorCisgICAgLy8gQ29tcGFyZSB0aGUgZXhwZWN0ZWQgYW5kIHRoZSBhY3V0YWwgdGFn
LCBiYWlsaW5nIGlmIHRoZXJlJ3MgYSBtaXNtYXRjaC4KKyAgICBpZiAoY29uc3RhbnRUaW1lTWVt
Y21wKHRhZy0+ZGF0YSgpLCBhY3R1YWxUYWcuZGF0YSgpLCAxNikpCisgICAgICAgIHJldHVybiBm
YWxzZTsKKworICAgIC8vIEZpbmFsbHkgbW92ZSB0aGUgZGVjcnlwdGVkIGtleSBkYXRhIGludG8g
dGhlIGBrZXlgIFZlY3RvciBhbmQgcmV0dXJuIGB0cnVlYCwgc2lnbmFsbGluZworICAgIC8vIGEg
c3VjY2Vzc2Z1bCB1bndyYXBwaW5nIG9wZXJhdGlvbi4KKyAgICBrZXkgPSBXVEZNb3ZlKGRlY3J5
cHRlZEtleSk7CisgICAgcmV0dXJuIHRydWU7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA5NTBiZDQxNDk5YTFj
MTgyYTE2OWVjMDNjNzRkNDUzNDg5ZTNhZGZhLi5jOWI2NjI0MjkzNWQ5NDZlMjcyMzljYzAxMmNh
MzYxYzhmYTM0ZjhjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTctMDYtMjcgIFphbiBEb2Jl
cnNlayAgPHpkb2JlcnNla0BpZ2FsaWEuY29tPgorCisgICAgICAgIFtHQ3J5cHRdIEtleSBzZXJp
YWxpemF0aW9uIHN1cHBvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE3Mzg4MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnM6CisKIDIwMTctMDYtMjYg
IEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04g
KEFzeW5jSW1hZ2VEZWNvZGluZyk6IEEgdGFiIHdpdGggdGhlIFdXREMga2V5bm90ZSBwYXVzZWQg
aXMga2lsbGVkIGZvciB1c2luZyBleGNlc3NpdmUgcG93ZXIgKEltYWdlIHRocmFzaGluZykKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggMGVjNzIyMWU5NmRk
OTBjZmZjYjMwMWJjZmE1YjdiZWNjZmQzZTZkYS4uYWFlY2MxNjcyYWE1ZjkxMTk3M2JiMDc0MjM4
MDY1MGFjYTQ3NTQ1MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RF
eHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlv
bnMKQEAgLTc3NywxMCArNzc3LDYgQEAgd2Via2l0Lm9yZy9iLzEzMzEyMiBjcnlwdG8vc3VidGxl
L3JzYS1pbXBvcnQtcGtjczgta2V5LWV4cG9ydC1wa2NzOC1rZXkuaHRtbCBbIFMKIHdlYmtpdC5v
cmcvYi8xMzMxMjIgY3J5cHRvL3N1YnRsZS9yc2EtaW1wb3J0LXNwa2kta2V5LWV4cG9ydC1qd2st
a2V5Lmh0bWwgWyBTa2lwIF0KIHdlYmtpdC5vcmcvYi8xMzMxMjIgY3J5cHRvL3N1YnRsZS9yc2Et
aW1wb3J0LXNwa2kta2V5LWV4cG9ydC1zcGtpLWtleS5odG1sIFsgU2tpcCBdCiB3ZWJraXQub3Jn
L2IvMTMzMTIyIGNyeXB0by9zdWJ0bGUvcnNhLWltcG9ydC1zcGtpLXNtYWxsLWtleS5odG1sIFsg
U2tpcCBdCi13ZWJraXQub3JnL2IvMTMzMTIyIGNyeXB0by9zdWJ0bGUvcnNhLWluZGV4ZWRkYi1u
b24tZXhwb3J0YWJsZS1wcml2YXRlLmh0bWwgWyBTa2lwIF0KLXdlYmtpdC5vcmcvYi8xMzMxMjIg
Y3J5cHRvL3N1YnRsZS9yc2EtaW5kZXhlZGRiLW5vbi1leHBvcnRhYmxlLmh0bWwgWyBTa2lwIF0K
LXdlYmtpdC5vcmcvYi8xMzMxMjIgY3J5cHRvL3N1YnRsZS9yc2EtaW5kZXhlZGRiLXByaXZhdGUu
aHRtbCBbIFNraXAgXQotd2Via2l0Lm9yZy9iLzEzMzEyMiBjcnlwdG8vc3VidGxlL3JzYS1pbmRl
eGVkZGIuaHRtbCBbIFNraXAgXQogd2Via2l0Lm9yZy9iLzEzMzEyMiBjcnlwdG8vc3VidGxlL3Jz
YS1vYWVwLWdlbmVyYXRlLWV4cG9ydC1rZXktcGtjczguaHRtbCBbIFNraXAgXQogd2Via2l0Lm9y
Zy9iLzEzMzEyMiBjcnlwdG8vc3VidGxlL3JzYS1vYWVwLWdlbmVyYXRlLWV4cG9ydC1rZXktc3Br
aS5odG1sIFsgU2tpcCBdCiB3ZWJraXQub3JnL2IvMTMzMTIyIGNyeXB0by9zdWJ0bGUvcnNhLW9h
ZXAtaW1wb3J0LXBrY3M4LWtleS5odG1sIFsgU2tpcCBdCkBAIC04MDIsMjAgKzc5OCwxNCBAQCB3
ZWJraXQub3JnL2IvMTMzMTIyIGNyeXB0by93b3JrZXJzL3N1YnRsZS9hZXMtY2ZiLWltcG9ydC1r
ZXktZGVjcnlwdC5odG1sIFsgU2tpcAogd2Via2l0Lm9yZy9iLzEzMzEyMiBjcnlwdG8vd29ya2Vy
cy9zdWJ0bGUvYWVzLWNmYi1pbXBvcnQta2V5LWVuY3J5cHQuaHRtbCBbIFNraXAgXQogd2Via2l0
Lm9yZy9iLzEzMzEyMiBjcnlwdG8vd29ya2Vycy9zdWJ0bGUvYWVzLWNmYi1pbXBvcnQta2V5LXVu
d3JhcC1rZXkuaHRtbCBbIFNraXAgXQogd2Via2l0Lm9yZy9iLzEzMzEyMiBjcnlwdG8vd29ya2Vy
cy9zdWJ0bGUvYWVzLWNmYi1pbXBvcnQta2V5LXdyYXAta2V5Lmh0bWwgWyBTa2lwIF0KLXdlYmtp
dC5vcmcvYi8xMzMxMjIgY3J5cHRvL3dvcmtlcnMvc3VidGxlL2Flcy1wb3N0TWVzc2FnZS13b3Jr
ZXIuaHRtbCBbIFNraXAgXQogd2Via2l0Lm9yZy9iLzEzMzEyMiBjcnlwdG8vd29ya2Vycy9zdWJ0
bGUvZWMtZ2VuZXJhdGUtZXhwb3J0LXBrY3M4LWtleS5odG1sIFsgU2tpcCBdCiB3ZWJraXQub3Jn
L2IvMTMzMTIyIGNyeXB0by93b3JrZXJzL3N1YnRsZS9lYy1nZW5lcmF0ZS1leHBvcnQtc3BraS1r
ZXkuaHRtbCBbIFNraXAgXQogd2Via2l0Lm9yZy9iLzEzMzEyMiBjcnlwdG8vd29ya2Vycy9zdWJ0
bGUvZWMtaW1wb3J0LXBrY3M4LWtleS5odG1sIFsgU2tpcCBdCiB3ZWJraXQub3JnL2IvMTMzMTIy
IGNyeXB0by93b3JrZXJzL3N1YnRsZS9lYy1wb3N0TWVzc2FnZS13b3JrZXIuaHRtbCBbIFNraXAg
XQotd2Via2l0Lm9yZy9iLzEzMzEyMiBjcnlwdG8vd29ya2Vycy9zdWJ0bGUvaG1hYy1wb3N0TWVz
c2FnZS13b3JrZXIuaHRtbCBbIFNraXAgXQotd2Via2l0Lm9yZy9iLzEzMzEyMiBjcnlwdG8vd29y
a2Vycy9zdWJ0bGUvaHJzYS1wb3N0TWVzc2FnZS13b3JrZXIuaHRtbCBbIFNraXAgXQotd2Via2l0
Lm9yZy9iLzEzMzEyMiBjcnlwdG8vd29ya2Vycy9zdWJ0bGUvbXVsdGlwbGUtcG9zdE1lc3NhZ2Ut
d29ya2VyLmh0bWwgWyBTa2lwIF0KLXdlYmtpdC5vcmcvYi8xMzMxMjIgY3J5cHRvL3dvcmtlcnMv
c3VidGxlL3Jhdy1wb3N0TWVzc2FnZS13b3JrZXIuaHRtbCBbIFNraXAgXQogd2Via2l0Lm9yZy9i
LzEzMzEyMiBjcnlwdG8vd29ya2Vycy9zdWJ0bGUvcnNhLWV4cG9ydC1wa2NzOC1rZXkuaHRtbCBb
IFNraXAgXQogd2Via2l0Lm9yZy9iLzEzMzEyMiBjcnlwdG8vd29ya2Vycy9zdWJ0bGUvcnNhLWV4
cG9ydC1zcGtpLWtleS5odG1sIFsgU2tpcCBdCiB3ZWJraXQub3JnL2IvMTMzMTIyIGNyeXB0by93
b3JrZXJzL3N1YnRsZS9yc2EtaW1wb3J0LXBrY3M4LWtleS5odG1sIFsgU2tpcCBdCiB3ZWJraXQu
b3JnL2IvMTMzMTIyIGNyeXB0by93b3JrZXJzL3N1YnRsZS9yc2EtaW1wb3J0LXNwa2kta2V5Lmh0
bWwgWyBTa2lwIF0KLXdlYmtpdC5vcmcvYi8xMzMxMjIgY3J5cHRvL3dvcmtlcnMvc3VidGxlL3Jz
YS1wb3N0TWVzc2FnZS13b3JrZXIuaHRtbCBbIFNraXAgXQogd2Via2l0Lm9yZy9iLzEzMzEyMiBj
cnlwdG8vd29ya2Vycy9zdWJ0bGUvcnNhLXBzcy1pbXBvcnQta2V5LXNpZ24uaHRtbCBbIFNraXAg
XQogd2Via2l0Lm9yZy9iLzEzMzEyMiBjcnlwdG8vd29ya2Vycy9zdWJ0bGUvcnNhLXBzcy1pbXBv
cnQta2V5LXZlcmlmeS5odG1sIFsgU2tpcCBdCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>314031</attachid>
            <date>2017-06-28 09:31:39 -0700</date>
            <delta_ts>2017-07-03 01:06:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-173883-20170628183138.patch</filename>
            <type>text/plain</type>
            <size>17078</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE4ODczCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZThkY2U3MmFmNTFiMzRk
Njk4ZmQ1MTk4ZTU4YzczNjQzMzc0NWRjYi4uMjg3ZWQwMjJjNTkwOTg5ZjQ3NDljNTIxOTY2Yjky
ZGQwOWRhYjI4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDE3LTA2LTI4ICBaYW4g
RG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KKworICAgICAgICBbR0NyeXB0XSBLZXkg
c2VyaWFsaXphdGlvbiBzdXBwb3J0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNzM4ODMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBJbXBsZW1lbnQgY3J5cHRvIGtleSBzZXJpYWxpemF0aW9uIGZvciBwbGF0
Zm9ybXMgdGhhdCB1c2UgbGliZ2NyeXB0LgorCisgICAgICAgIEluIHdyYXBTZXJpYWxpemVkQ3J5
cHRvS2V5KCksIHRoZSBrZXktZW5jcnlwdGlvbiBrZXkgKEtFSykgaXMgZmlyc3QgZ2VuZXJhdGVk
LAorICAgICAgICByZXRyaWV2aW5nIDE2IGJ5dGVzIGZyb20gdGhlIGxpYmdjcnlwdCBSTkcuIFRo
ZSBBRVMtV3JhcCBhbGdvcml0aG0gaXMgdGhlbgorICAgICAgICB1c2VkIHRvIHdyYXAgdGhlIGdl
bmVyYXRlZCBrZXkgdXNpbmcgdGhlIHBhc3NlZC1pbiBtYXN0ZXIga2V5LiBUaGUgQUVTLUdDTQor
ICAgICAgICBhbGdvcml0aG0gaXMgdGhlbiB1c2VkIHRvIGVuY3J5cHQgdGhlIHBhc3NlZC1pbiBr
ZXkgZGF0YS4gVGhlIGdlbmVyYXRlZCBLRUsKKyAgICAgICAgaXMgdXNlZCBhcyB0aGUga2V5LCBh
bmQgdGhlIHRhZyBkYXRhIGZyb20gdGhpcyBlbmNyeXB0aW9uIGlzIGFsc28gcmV0cmlldmVkLgor
CisgICAgICAgIFdpdGggdGhlIHdyYXBwZWQgS0VLLCBlbmNyeXB0ZWQga2V5IGFuZCB0aGUgdGFn
IG5vdyBhdmFpbGFibGUsIHdlIGxldmVyYWdlIHRoZQorICAgICAgICBgU2VyaWFsaXplZENyeXB0
b0tleVdyYXBgIEFTTi4xIHN0cnVjdHVyZSB0byBlbmNvZGUgdGhlIHRocmVlIHBhcmFtZXRlcnMg
aW50bworICAgICAgICBhIHNpbXBsZSBkYXRhIGZvcm1hdC4gVGhlIGVuY29kZWQgZGF0YSBmb3Ig
dGhpcyBzdHJ1Y3R1cmUgaXMgdGhlbiByZXRyaWV2ZWQKKyAgICAgICAgYW5kIG1vdmVkIGludG8g
dGhlIG91dHB1dCByZXN1bHQgVmVjdG9yLgorCisgICAgICAgIGluIHVud3JhcFNlcmlhbGl6ZWRD
cnlwdG9LZXkoKSwgdGhlIG9wcG9zaXRlIG9wZXJhdGlvbiBpcyBkb25lLiBXZSBmaXJzdCBkZWNv
ZGUKKyAgICAgICAgdGhlIHBhc3NlZC1pbiBkYXRhIGFnYWlucyB0aGUgYFNlcmlhbGl6ZWRDcnlw
dG9LZXlXcmFwYCBBU04uMSBzdHJ1Y3R1cmUsIGFuZAorICAgICAgICByZXRyaWV2ZSB0aGUgd3Jh
cHBlZCBLRUssIGVuY3J5cHRlZCBrZXkgYW5kIHRhZyBkYXRhLiBXZSB0aGVuIHVzZSB0aGUgQUVT
LVdyYXAKKyAgICAgICAgYWxnb3JpdGhtIHRvIHVud3JhcCB0aGUgd3JhcHBlZCBLRUsgZGF0YSBh
bmQgcmV0cmlldmUgdGhlIG9yaWdpbmFsIEtFSy4gV2UgdGhlbgorICAgICAgICB1c2UgS0VLIGFz
IHRoZSBrZXkgZm9yIHRoZSBBRVMtR0NNIGRlY3J5cHRpb24gb3BlcmF0aW9uIHRocm91Z2ggd2hp
Y2ggd2UgZGVjcnlwdAorICAgICAgICB0aGUgZW5jcnlwdGVkIGtleSBkYXRhIGFuZCByZXRyaWV2
ZSB0aGUgZ2VuZXJhdGVkIHRhZyBkYXRhLiBXZSBjb21wYXJlIHRoZSBsYXR0ZXIKKyAgICAgICAg
YWdhaW5zdCB0aGUgdGFnIGRhdGEgdGhhdCB3YXMgZW1iZWRkZWQgaW4gdGhlIEFTTi4xIHN0cnVj
dHVyZSwgYW5kIGJhaWwgaWYgdGhlcmUKKyAgICAgICAgaXMgYSBtaXNtYXRjaC4gT3RoZXJ3aXNl
LCB3ZSBtb3ZlIHRoZSBkZWNyeXB0ZWQga2V5IGRhdGEgaW50byB0aGUgb3V0cHV0IHJlc3VsdAor
ICAgICAgICBWZWN0b3IgYW5kIHJlcG9ydCBhIHN1Y2Nlc3NmdWwgb3BlcmF0aW9uIHJlc3VsdC4K
KworICAgICAgICBObyBuZXcgdGVzdHMgLS0gcmVsYXRlZCB0ZXN0cyBhcmUgbm93IHBhc3Npbmcg
YW5kIGFyZSB1bnNraXBwZWQuCisKKyAgICAgICAgKiBjcnlwdG8vZ2NyeXB0L1NlcmlhbGl6ZWRD
cnlwdG9LZXlXcmFwR0NyeXB0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmdldERlZmF1bHRXZWJD
cnlwdG9NYXN0ZXJLZXkpOiBEcm9wIHRoZSBwYXJhbWV0ZXIgbmFtZSBhbmQgcmVtb3ZlCisgICAg
ICAgIHRoZSBVTlVTRURfUEFSQU0oKSBtYWNyby4KKyAgICAgICAgKFdlYkNvcmU6OndyYXBTZXJp
YWxpemVkQ3J5cHRvS2V5KToKKyAgICAgICAgKFdlYkNvcmU6OnVud3JhcFNlcmlhbGl6ZWRDcnlw
dG9LZXkpOgorCiAyMDE3LTA2LTI4ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdh
bGlhLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OKHIyMTg3OTkpOiBbR1RLXVtXUEVdIENyaXRp
Y2FsIHdhcm5pbmcgYXQgZXhpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKaW5kZXggYmE1M2Y0ZDZkYWVhNWE0
Y2FmYzAxYzRlOWZjZmU5ZDA5YTIyZjFjNi4uNjEzN2RhODYzMjg1MjY0ZTJlNDUzZjdmNGZkNzVj
YTQxY2M1YjBmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTctMDYt
MjggIFphbiBEb2JlcnNlayAgPHpkb2JlcnNla0BpZ2FsaWEuY29tPgorCisgICAgICAgIFtHQ3J5
cHRdIEtleSBzZXJpYWxpemF0aW9uIHN1cHBvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE3Mzg4MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEFkZCB0aGUgU2VyaWFsaXplZENyeXB0b0tleVdyYXAgQVNO
LjEgc3RydWN0dXJlIHRvIHRoZSBXZWJDcnlwdG8uYXNuIGZpbGUgYW5kCisgICAgICAgIHVwZGF0
ZSB0aGUgYXNuMV9zdGF0aWNfbm9kZSBhcnJheSB0aGF0J3MgcHJvZHVjZWQgZnJvbSB0aGUgV2Vi
Q3J5cHRvLmFzbiBmaWxlCisgICAgICAgIHdpdGggdGhlIGFzbjFQYXJzZXIgdG9vbC4gVGhpcyBB
U04uMSBzdHJ1Y3R1cmUgaXMgdXNlZCBpbnRlcm5hbGx5IGZvciB0aGUgbmVlZHMKKyAgICAgICAg
b2YgY3J5cHRvIGtleSBzZXJpYWxpemF0aW9uLgorCisgICAgICAgICogcGFsL2NyeXB0by90YXNu
MS9VdGlsaXRpZXMuY3BwOgorICAgICAgICAoUEFMOjpUQVNOMTo6YXNuMURlZmluaXRpb25zKToK
KyAgICAgICAgKiBwYWwvY3J5cHRvL3Rhc24xL1dlYkNyeXB0by5hc246CisKIDIwMTctMDYtMjcg
IEpvbmF0aGFuIEJlZGFyZCAgPGpiZWRhcmRAYXBwbGUuY29tPgogCiAgICAgICAgIEJ1aWxkIGZp
eCBmb3IgUEFMCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NyeXB0by90YXNu
MS9VdGlsaXRpZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jcnlwdG8vdGFzbjEvVXRp
bGl0aWVzLmNwcAppbmRleCA0ZmRmMDU1MTdlNjAxMGNiMDg0MmVjNTQ1NTc2NTIzMDg1NjU3NTQ4
Li43ZGE2YjVmZmE1MmFlOGM2ZjdiYTU3MWNkNzQ5YWU5ZWM3YjZkNDRkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NyeXB0by90YXNuMS9VdGlsaXRpZXMuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1BBTC9wYWwvY3J5cHRvL3Rhc24xL1V0aWxpdGllcy5jcHAKQEAgLTg5LDEw
ICs4OSwxNCBAQCBzdGF0aWMgYXNuMV9ub2RlIGFzbjFEZWZpbml0aW9ucygpCiAgICAgICAgIHsg
Ik90aGVyUHJpbWVJbmZvcyIsIDE2MTI3MDk4OTksIG51bGxwdHIgfSwKICAgICAgICAgeyAiTUFY
IiwgMTA3NDI2NjEyMiwgIjEifSwKICAgICAgICAgeyBudWxscHRyLCAyLCAiT3RoZXJQcmltZUlu
Zm8ifSwKLSAgICAgICAgeyAiT3RoZXJQcmltZUluZm8iLCA1MzY4NzA5MTcsIG51bGxwdHIgfSwK
KyAgICAgICAgeyAiT3RoZXJQcmltZUluZm8iLCAxNjEwNjEyNzQxLCBudWxscHRyIH0sCiAgICAg
ICAgIHsgInByaW1lIiwgMTA3Mzc0MTgyNywgbnVsbHB0ciB9LAogICAgICAgICB7ICJleHBvbmVu
dCIsIDEwNzM3NDE4MjcsIG51bGxwdHIgfSwKICAgICAgICAgeyAiY29lZmZpY2llbnQiLCAzLCBu
dWxscHRyIH0sCisgICAgICAgIHsgIlNlcmlhbGl6ZWRDcnlwdG9LZXlXcmFwIiwgNTM2ODcwOTE3
LCBudWxscHRyIH0sCisgICAgICAgIHsgIndyYXBwZWRLRUsiLCAxMDczNzQxODMxLCBudWxscHRy
IH0sCisgICAgICAgIHsgImVuY3J5cHRlZEtleSIsIDEwNzM3NDE4MzEsIG51bGxwdHIgfSwKKyAg
ICAgICAgeyAidGFnIiwgNywgbnVsbHB0ciB9LAogICAgICAgICB7IG51bGxwdHIsIDAsIG51bGxw
dHIgfQogICAgIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY3J5cHRv
L3Rhc24xL1dlYkNyeXB0by5hc24gYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NyeXB0by90YXNu
MS9XZWJDcnlwdG8uYXNuCmluZGV4IGM4MTNiODk2NDEyNDczNTM0NzE3OTUxZmY2NWJiNDgzYThj
MjgzNzYuLjFkOTg5NzI1NDJhZDBmZTExOTYwNGU1OWVhOWUzMmMyNDVjNTVjMWEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY3J5cHRvL3Rhc24xL1dlYkNyeXB0by5hc24KKysr
IGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jcnlwdG8vdGFzbjEvV2ViQ3J5cHRvLmFzbgpAQCAt
ODcsNCArODcsMTIgQEAgT3RoZXJQcmltZUluZm8gOjo9IFNFUVVFTkNFIHsKICAgY29lZmZpY2ll
bnQgSU5URUdFUiAtLSB0aQogfQogCistLSBVc2VkIGludGVybmFsbHkgZm9yIGtleSBzZXJpYWxp
emF0aW9uLgorCitTZXJpYWxpemVkQ3J5cHRvS2V5V3JhcCA6Oj0gU0VRVUVOQ0UgeworICB3cmFw
cGVkS0VLICAgIE9DVEVUIFNUUklORywKKyAgZW5jcnlwdGVkS2V5ICBPQ1RFVCBTVFJJTkcsCisg
IHRhZyAgICAgICAgICAgT0NURVQgU1RSSU5HCit9CisKIEVORApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvY3J5cHRvL2djcnlwdC9TZXJpYWxpemVkQ3J5cHRvS2V5V3JhcEdDcnlwdC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vZ2NyeXB0L1NlcmlhbGl6ZWRDcnlwdG9LZXlXcmFwR0Ny
eXB0LmNwcAppbmRleCA5NDk5ODlmOTRlMTI1OTMzMGQ5Mjc5OGQ1N2MyYjE4Yjg1N2YzMWZkLi4z
MGE3MTE2MzI4MGVjNjJiYWVhNmMwMWY3OWM5ZmFlYWEyMGYwYWMyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jcnlwdG8vZ2NyeXB0L1NlcmlhbGl6ZWRDcnlwdG9LZXlXcmFwR0NyeXB0LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vZ2NyeXB0L1NlcmlhbGl6ZWRDcnlwdG9LZXlX
cmFwR0NyeXB0LmNwcApAQCAtMjksMzUgKzI5LDIwMSBAQAogI2lmIEVOQUJMRShTVUJUTEVfQ1JZ
UFRPKQogCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKKyNpbmNsdWRlIDxwYWwvY3J5cHRv
L2djcnlwdC9IYW5kbGUuaD4KKyNpbmNsdWRlIDxwYWwvY3J5cHRvL2djcnlwdC9VdGlsaXRpZXMu
aD4KKyNpbmNsdWRlIDxwYWwvY3J5cHRvL3Rhc24xL1V0aWxpdGllcy5oPgorI2luY2x1ZGUgPHd0
Zi9DcnlwdG9ncmFwaGljVXRpbGl0aWVzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotYm9v
bCBnZXREZWZhdWx0V2ViQ3J5cHRvTWFzdGVyS2V5KFZlY3Rvcjx1aW50OF90PiYgbWFzdGVyS2V5
KQorYm9vbCBnZXREZWZhdWx0V2ViQ3J5cHRvTWFzdGVyS2V5KFZlY3Rvcjx1aW50OF90PiYpCiB7
CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICBVTlVTRURfUEFSQU0obWFzdGVyS2V5KTsKLQog
ICAgIHJldHVybiBmYWxzZTsKIH0KIAogYm9vbCB3cmFwU2VyaWFsaXplZENyeXB0b0tleShjb25z
dCBWZWN0b3I8dWludDhfdD4mIG1hc3RlcktleSwgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBrZXks
IFZlY3Rvcjx1aW50OF90PiYgcmVzdWx0KQogewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAg
VU5VU0VEX1BBUkFNKG1hc3RlcktleSk7Ci0gICAgVU5VU0VEX1BBUkFNKGtleSk7Ci0gICAgVU5V
U0VEX1BBUkFNKHJlc3VsdCk7CisgICAgLy8gR2VuZXJhdGUgYSAxMjgtYml0IGtleS1lbmNyeXB0
aW9uIGtleSAoS0VLKS4KKyAgICBWZWN0b3I8dWludDhfdD4ga2VrKDE2KTsKKyAgICBnY3J5X3Jh
bmRvbWl6ZShrZWsuZGF0YSgpLCBrZWsuc2l6ZSgpLCBHQ1JZX1ZFUllfU1RST05HX1JBTkRPTSk7
CiAKLSAgICByZXR1cm4gZmFsc2U7CisgICAgLy8gVXNlIHRoZSBBRVMtV3JhcCBhbGdvcml0aG0g
dG8gd3JhcCB0aGUgS0VLLiBXZSBjYW4gcHJlZGV0ZXJtaW5lIHRoZSBvdXRwdXQgYnVmZmVyCisg
ICAgLy8gc2l6ZSAtLSBpdCBoYXMgdG8gYmUgOCBieXRlcyBsYXJnZXIgdGhhbiB0aGUgaW5wdXQg
KHdoaWNoIGlzIDE2IGJ5dGVzKS4KKyAgICBWZWN0b3I8dWludDhfdD4gd3JhcHBlZEtFSygyNCk7
CisgICAgeworICAgICAgICBhdXRvIGFsZ29yaXRobSA9IFBBTDo6R0NyeXB0OjphZXNBbGdvcml0
aG1Gb3JLZXlTaXplKG1hc3RlcktleS5zaXplKCkgKiA4KTsKKyAgICAgICAgaWYgKCFhbGdvcml0
aG0pCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgUEFMOjpHQ3J5cHQ6Okhh
bmRsZTxnY3J5X2NpcGhlcl9oZF90PiBoYW5kbGU7CisgICAgICAgIGdjcnlfZXJyb3JfdCBlcnJv
ciA9IGdjcnlfY2lwaGVyX29wZW4oJmhhbmRsZSwgKmFsZ29yaXRobSwgR0NSWV9DSVBIRVJfTU9E
RV9BRVNXUkFQLCAwKTsKKyAgICAgICAgaWYgKGVycm9yICE9IEdQR19FUlJfTk9fRVJST1IpIHsK
KyAgICAgICAgICAgIFBBTDo6R0NyeXB0Ojpsb2dFcnJvcihlcnJvcik7CisgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICAvLyBVc2UgdGhlIHBhc3NlZC1pbiBg
bWFzdGVyS2V5YCBhcyB0aGUga2V5IGZvciBlbmNyeXB0aW9uLgorICAgICAgICBlcnJvciA9IGdj
cnlfY2lwaGVyX3NldGtleShoYW5kbGUsIG1hc3RlcktleS5kYXRhKCksIG1hc3RlcktleS5zaXpl
KCkpOworICAgICAgICBpZiAoZXJyb3IgIT0gR1BHX0VSUl9OT19FUlJPUikgeworICAgICAgICAg
ICAgUEFMOjpHQ3J5cHQ6OmxvZ0Vycm9yKGVycm9yKTsKKyAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIEVuY3J5cHQgdGhlIGdlbmVyYXRlZCBLRUssIHJl
dHJpZXZpbmcgdGhlIGNpcGhlciB0ZXh0IGludG8gdGhlIGB3cmFwcGVkS0VLYCBWZWN0b3IuCisg
ICAgICAgIGVycm9yID0gZ2NyeV9jaXBoZXJfZW5jcnlwdChoYW5kbGUsIHdyYXBwZWRLRUsuZGF0
YSgpLCB3cmFwcGVkS0VLLnNpemUoKSwga2VrLmRhdGEoKSwga2VrLnNpemUoKSk7CisgICAgICAg
IGlmIChlcnJvciAhPSBHUEdfRVJSX05PX0VSUk9SKSB7CisgICAgICAgICAgICBQQUw6OkdDcnlw
dDo6bG9nRXJyb3IoZXJyb3IpOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9
CisgICAgfQorCisgICAgLy8gVXNlIHRoZSBBRVMtR0NNIGFsZ29yaXRobSB0byBlbmNyeXB0IHRo
ZSBwYXNzZWQtaW4ga2V5LiBUaGUgb3V0cHV0IFZlY3RvciBzaG91bGQgbWF0Y2gKKyAgICAvLyB0
aGUgaW5wdXQga2V5IFZlY3RvciBpbiBzaXplLiBUaGUgdGFnLCAxNiBieXRlcyBpbiBzaXplLCBp
cyBhbHNvIHJldHJpZXZlZC4KKyAgICBWZWN0b3I8dWludDhfdD4gZW5jcnlwdGVkS2V5KGtleS5z
aXplKCkpOworICAgIFZlY3Rvcjx1aW50OF90PiB0YWcoMTYpOworICAgIHsKKyAgICAgICAgUEFM
OjpHQ3J5cHQ6OkhhbmRsZTxnY3J5X2NpcGhlcl9oZF90PiBoYW5kbGU7CisgICAgICAgIGdjcnlf
ZXJyb3JfdCBlcnJvciA9IGdjcnlfY2lwaGVyX29wZW4oJmhhbmRsZSwgR0NSWV9DSVBIRVJfQUVT
MTI4LCBHQ1JZX0NJUEhFUl9NT0RFX0dDTSwgMCk7CisgICAgICAgIGlmIChlcnJvciAhPSBHUEdf
RVJSX05PX0VSUk9SKSB7CisgICAgICAgICAgICBQQUw6OkdDcnlwdDo6bG9nRXJyb3IoZXJyb3Ip
OworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgLy8gVXNl
IHRoZSBLRUsgYXMgdGhlIGtleSBmb3IgZW5jcnlwdGlvbi4KKyAgICAgICAgZXJyb3IgPSBnY3J5
X2NpcGhlcl9zZXRrZXkoaGFuZGxlLCBrZWsuZGF0YSgpLCBrZWsuc2l6ZSgpKTsKKyAgICAgICAg
aWYgKGVycm9yICE9IEdQR19FUlJfTk9fRVJST1IpIHsKKyAgICAgICAgICAgIFBBTDo6R0NyeXB0
Ojpsb2dFcnJvcihlcnJvcik7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0K
KworICAgICAgICAvLyBFbmNyeXB0IHRoZSBwYXNzZWQtaW4gYGtleWAsIHJldHJpZXZpbmcgdGhl
IGNpcGhlciB0ZXh0IGludG8gdGhlIGBlbmNyeXB0ZWRLZXlgIFZlY3Rvci4KKyAgICAgICAgZXJy
b3IgPSBnY3J5X2NpcGhlcl9lbmNyeXB0KGhhbmRsZSwgZW5jcnlwdGVkS2V5LmRhdGEoKSwgZW5j
cnlwdGVkS2V5LnNpemUoKSwga2V5LmRhdGEoKSwga2V5LnNpemUoKSk7CisgICAgICAgIGlmIChl
cnJvciAhPSBHUEdfRVJSX05PX0VSUk9SKSB7CisgICAgICAgICAgICBQQUw6OkdDcnlwdDo6bG9n
RXJyb3IoZXJyb3IpOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAg
ICAgICAgLy8gQWxzbyByZXRyaWV2ZSB0aGUgdGFnIGRhdGEgaW50byB0aGUgYHRhZ2AgVmVjdG9y
LgorICAgICAgICBlcnJvciA9IGdjcnlfY2lwaGVyX2dldHRhZyhoYW5kbGUsIHRhZy5kYXRhKCks
IHRhZy5zaXplKCkpOworICAgICAgICBpZiAoZXJyb3IgIT0gR1BHX0VSUl9OT19FUlJPUikgewor
ICAgICAgICAgICAgUEFMOjpHQ3J5cHQ6OmxvZ0Vycm9yKGVycm9yKTsKKyAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vIENyZWF0ZSB0aGUgQVNOLjEg
YFNlcmlhbGl6ZWRDcnlwdG9LZXlXcmFwYCBzdHJ1Y3R1cmUgYW5kIHdyaXRlIHRoZSB3cmFwcGVk
IEtFSywgZW5jcnlwdGVkIGtleQorICAgIC8vIGFuZCB0YWcgZGF0YSBpbnRvIGl0LiBSZXRyaWV2
ZSB0aGUgZW5jb2RlZCBkYXRhIGFuZCBtb3ZlIGl0IGludG8gdGhlIG91dHB1dCBgcmVzdWx0YCBW
ZWN0b3IuCisgICAgUEFMOjpUQVNOMTo6U3RydWN0dXJlIHdyYXA7CisgICAgeworICAgICAgICBp
ZiAoIVBBTDo6VEFTTjE6OmNyZWF0ZVN0cnVjdHVyZSgiV2ViQ3J5cHRvLlNlcmlhbGl6ZWRDcnlw
dG9LZXlXcmFwIiwgJndyYXApKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAg
IGlmICghUEFMOjpUQVNOMTo6d3JpdGVFbGVtZW50KHdyYXAsICJ3cmFwcGVkS0VLIiwgd3JhcHBl
ZEtFSy5kYXRhKCksIHdyYXBwZWRLRUsuc2l6ZSgpKQorICAgICAgICAgICAgfHwgIVBBTDo6VEFT
TjE6OndyaXRlRWxlbWVudCh3cmFwLCAiZW5jcnlwdGVkS2V5IiwgZW5jcnlwdGVkS2V5LmRhdGEo
KSwgZW5jcnlwdGVkS2V5LnNpemUoKSkKKyAgICAgICAgICAgIHx8ICFQQUw6OlRBU04xOjp3cml0
ZUVsZW1lbnQod3JhcCwgInRhZyIsIHRhZy5kYXRhKCksIHRhZy5zaXplKCkpKQorICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIGF1dG8gZGF0YSA9IFBBTDo6VEFTTjE6OmVuY29k
ZWREYXRhKHdyYXAsICIiKTsKKyAgICAgICAgaWYgKCFkYXRhKQorICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOworCisgICAgICAgIHJlc3VsdCA9IFdURk1vdmUoZGF0YS52YWx1ZSgpKTsKKyAgICB9
CisKKyAgICAvLyBGaW5hbGx5IHJldHVybiBgdHJ1ZWAsIHNpZ25hbGxpbmcgYSBzdWNjZXNzZnVs
IHdyYXBwaW5nIG9wZXJhdGlvbi4KKyAgICByZXR1cm4gdHJ1ZTsKIH0KIAogYm9vbCB1bndyYXBT
ZXJpYWxpemVkQ3J5cHRvS2V5KGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgbWFzdGVyS2V5LCBjb25z
dCBWZWN0b3I8dWludDhfdD4mIHdyYXBwZWRLZXksIFZlY3Rvcjx1aW50OF90PiYga2V5KQogewot
ICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgVU5VU0VEX1BBUkFNKG1hc3RlcktleSk7Ci0gICAg
VU5VU0VEX1BBUkFNKHdyYXBwZWRLZXkpOwotICAgIFVOVVNFRF9QQVJBTShrZXkpOworICAgIC8v
IERlY29kZSB0aGUgQVNOLjEgYFNlcmlhbGl6ZWRDcnlwdG9LZXlXcmFwYCBzdHJ1Y3R1cmUgZnJv
bSB0aGUgcHJvdmlkZWQgYHdyYXBwZWRLZXlgIGRhdGEuCisgICAgUEFMOjpUQVNOMTo6U3RydWN0
dXJlIHdyYXA7CisgICAgaWYgKCFQQUw6OlRBU04xOjpkZWNvZGVTdHJ1Y3R1cmUoJndyYXAsICJX
ZWJDcnlwdG8uU2VyaWFsaXplZENyeXB0b0tleVdyYXAiLCB3cmFwcGVkS2V5KSkKKyAgICAgICAg
cmV0dXJuIGZhbHNlOwogCi0gICAgcmV0dXJuIGZhbHNlOworICAgIC8vIFJldHJpZXZlIHRoZSBg
d3JhcHBlZEtla2AgZGF0YSwgaXQgc2hvdWxkIGJlIDI0IGJ5dGVzIGluIHNpemUuCisgICAgYXV0
byB3cmFwcGVkS0VLID0gUEFMOjpUQVNOMTo6ZWxlbWVudERhdGEod3JhcCwgIndyYXBwZWRLRUsi
KTsKKyAgICBpZiAoIXdyYXBwZWRLRUsgfHwgd3JhcHBlZEtFSy0+c2l6ZSgpICE9IDI0KQorICAg
ICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAvLyBSZXRyaWV2ZSB0aGUgYGVuY3J5cHRlZEtleWAg
ZGF0YSwgd2l0aCBubyBzaXplIGd1YXJhbnRlZS4KKyAgICBhdXRvIGVuY3J5cHRlZEtleSA9IFBB
TDo6VEFTTjE6OmVsZW1lbnREYXRhKHdyYXAsICJlbmNyeXB0ZWRLZXkiKTsKKyAgICBpZiAoIWVu
Y3J5cHRlZEtleSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgLy8gUmV0cmlldmUgdGhl
IGB0YWdgIGRhdGEsIGl0IHNob3VsZCBiZSAxNiBieXRlcyBpbiBzaXplLgorICAgIGF1dG8gdGFn
ID0gUEFMOjpUQVNOMTo6ZWxlbWVudERhdGEod3JhcCwgInRhZyIpOworICAgIGlmICghdGFnIHx8
IHRhZy0+c2l6ZSgpICE9IDE2KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAvLyBVc2Ug
dGhlIEFFUy1XcmFwIGFsZ29yaXRobSB0byB1bndyYXAgdGhlIEtFSy4gV2UgY2FuIHByZWRldGVy
bWluZSB0aGUgb3V0cHV0IGJ1ZmZlcgorICAgIC8vIHNpemUgLS0gaXQgaGFzIHRvIGJlIDggYnl0
ZXMgc21hbGxlciB0aGFuIHRoZSBpbnB1dCAod2hpY2ggaXMgMjQgYnl0ZXMpLgorICAgIFZlY3Rv
cjx1aW50OF90PiBrZWsoMTYpOworICAgIHsKKyAgICAgICAgYXV0byBhbGdvcml0aG0gPSBQQUw6
OkdDcnlwdDo6YWVzQWxnb3JpdGhtRm9yS2V5U2l6ZShtYXN0ZXJLZXkuc2l6ZSgpICogOCk7Cisg
ICAgICAgIGlmICghYWxnb3JpdGhtKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAg
ICAgIFBBTDo6R0NyeXB0OjpIYW5kbGU8Z2NyeV9jaXBoZXJfaGRfdD4gaGFuZGxlOworICAgICAg
ICBnY3J5X2Vycm9yX3QgZXJyb3IgPSBnY3J5X2NpcGhlcl9vcGVuKCZoYW5kbGUsICphbGdvcml0
aG0sIEdDUllfQ0lQSEVSX01PREVfQUVTV1JBUCwgMCk7CisgICAgICAgIGlmIChlcnJvciAhPSBH
UEdfRVJSX05PX0VSUk9SKSB7CisgICAgICAgICAgICBQQUw6OkdDcnlwdDo6bG9nRXJyb3IoZXJy
b3IpOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgZXJy
b3IgPSBnY3J5X2NpcGhlcl9zZXRrZXkoaGFuZGxlLCBtYXN0ZXJLZXkuZGF0YSgpLCBtYXN0ZXJL
ZXkuc2l6ZSgpKTsKKyAgICAgICAgaWYgKGVycm9yICE9IEdQR19FUlJfTk9fRVJST1IpIHsKKyAg
ICAgICAgICAgIFBBTDo6R0NyeXB0Ojpsb2dFcnJvcihlcnJvcik7CisgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICBlcnJvciA9IGdjcnlfY2lwaGVyX2RlY3J5
cHQoaGFuZGxlLCBrZWsuZGF0YSgpLCBrZWsuc2l6ZSgpLCB3cmFwcGVkS0VLLT5kYXRhKCksIHdy
YXBwZWRLRUstPnNpemUoKSk7CisgICAgICAgIGlmIChlcnJvciAhPSBHUEdfRVJSX05PX0VSUk9S
KSB7CisgICAgICAgICAgICBQQUw6OkdDcnlwdDo6bG9nRXJyb3IoZXJyb3IpOworICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgfQorCisgICAgLy8gVXNlIHRoZSBBRVMt
R0NNIGFsZ29yaXRobSB0byBkZWNyeXB0IHRoZSBlbmNyeXB0ZWQga2V5IGRhdGEuIFRoZSBvdXRw
dXQgVmVjdG9yIHNob3VsZCBtYXRjaAorICAgIC8vIHRoZSBpbnB1dCBrZXkgVmVjdG9yIGluIHNp
emUuIFRoZSB0YWcsIDE2IGJ5dGVzIGluIHNpemUsIGlzIGFsc28gcmV0cmlldmVkLgorICAgIFZl
Y3Rvcjx1aW50OF90PiBkZWNyeXB0ZWRLZXkoZW5jcnlwdGVkS2V5LT5zaXplKCkpOworICAgIFZl
Y3Rvcjx1aW50OF90PiBhY3R1YWxUYWcoMTYpOworICAgIHsKKyAgICAgICAgUEFMOjpHQ3J5cHQ6
OkhhbmRsZTxnY3J5X2NpcGhlcl9oZF90PiBoYW5kbGU7CisgICAgICAgIGdjcnlfZXJyb3JfdCBl
cnJvciA9IGdjcnlfY2lwaGVyX29wZW4oJmhhbmRsZSwgR0NSWV9DSVBIRVJfQUVTMTI4LCBHQ1JZ
X0NJUEhFUl9NT0RFX0dDTSwgMCk7CisgICAgICAgIGlmIChlcnJvciAhPSBHUEdfRVJSX05PX0VS
Uk9SKSB7CisgICAgICAgICAgICBQQUw6OkdDcnlwdDo6bG9nRXJyb3IoZXJyb3IpOworICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgZXJyb3IgPSBnY3J5X2Np
cGhlcl9zZXRrZXkoaGFuZGxlLCBrZWsuZGF0YSgpLCBrZWsuc2l6ZSgpKTsKKyAgICAgICAgaWYg
KGVycm9yICE9IEdQR19FUlJfTk9fRVJST1IpIHsKKyAgICAgICAgICAgIFBBTDo6R0NyeXB0Ojps
b2dFcnJvcihlcnJvcik7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKwor
ICAgICAgICBlcnJvciA9IGdjcnlfY2lwaGVyX2RlY3J5cHQoaGFuZGxlLCBkZWNyeXB0ZWRLZXku
ZGF0YSgpLCBkZWNyeXB0ZWRLZXkuc2l6ZSgpLCBlbmNyeXB0ZWRLZXktPmRhdGEoKSwgZW5jcnlw
dGVkS2V5LT5zaXplKCkpOworICAgICAgICBpZiAoZXJyb3IgIT0gR1BHX0VSUl9OT19FUlJPUikg
eworICAgICAgICAgICAgUEFMOjpHQ3J5cHQ6OmxvZ0Vycm9yKGVycm9yKTsKKyAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIGVycm9yID0gZ2NyeV9jaXBoZXJf
Z2V0dGFnKGhhbmRsZSwgYWN0dWFsVGFnLmRhdGEoKSwgYWN0dWFsVGFnLnNpemUoKSk7CisgICAg
ICAgIGlmIChlcnJvciAhPSBHUEdfRVJSX05PX0VSUk9SKSB7CisgICAgICAgICAgICBQQUw6OkdD
cnlwdDo6bG9nRXJyb3IoZXJyb3IpOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAg
ICB9CisgICAgfQorCisgICAgLy8gQ29tcGFyZSB0aGUgZXhwZWN0ZWQgYW5kIHRoZSBhY3V0YWwg
dGFnLCBiYWlsaW5nIGlmIHRoZXJlJ3MgYSBtaXNtYXRjaC4KKyAgICBpZiAoY29uc3RhbnRUaW1l
TWVtY21wKHRhZy0+ZGF0YSgpLCBhY3R1YWxUYWcuZGF0YSgpLCAxNikpCisgICAgICAgIHJldHVy
biBmYWxzZTsKKworICAgIC8vIEZpbmFsbHkgbW92ZSB0aGUgZGVjcnlwdGVkIGtleSBkYXRhIGlu
dG8gdGhlIGBrZXlgIFZlY3RvciBhbmQgcmV0dXJuIGB0cnVlYCwgc2lnbmFsbGluZworICAgIC8v
IGEgc3VjY2Vzc2Z1bCB1bndyYXBwaW5nIG9wZXJhdGlvbi4KKyAgICBrZXkgPSBXVEZNb3ZlKGRl
Y3J5cHRlZEtleSk7CisgICAgcmV0dXJuIHRydWU7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA3ODM0ZDQyODdl
NWFkY2MzMmYwMTBhN2Q3ZGZhYTg4YzlhMjhkNzY0Li4xOTc5MGYxZWZjOGI2YjU0ZTY1NDk4OTVk
ODE4MDE1ZTkxMjRhNmVmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTctMDYtMjggIFphbiBE
b2JlcnNlayAgPHpkb2JlcnNla0BpZ2FsaWEuY29tPgorCisgICAgICAgIFtHQ3J5cHRdIEtleSBz
ZXJpYWxpemF0aW9uIHN1cHBvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE3Mzg4MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnM6IFVuc2tpcCB0aGUg
dGVzdHMgdGhhdCB1dGlsaXplIGtleSBzZXJpYWxpemF0aW9uCisgICAgICAgIGFuZCBhcmUgbm93
IHBhc3NpbmcuCisKIDIwMTctMDYtMjcgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxl
LmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBDbGVhbnVwIFJlbW90ZU9iamVjdCB0ZXN0
cwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucwppbmRleCAwZWM3MjIx
ZTk2ZGQ5MGNmZmNiMzAxYmNmYTViN2JlY2NmZDNlNmRhLi5hYWVjYzE2NzJhYTVmOTExOTczYmIw
NzQyMzgwNjUwYWNhNDc1NDUwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsv
VGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVj
dGF0aW9ucwpAQCAtNzc3LDEwICs3NzcsNiBAQCB3ZWJraXQub3JnL2IvMTMzMTIyIGNyeXB0by9z
dWJ0bGUvcnNhLWltcG9ydC1wa2NzOC1rZXktZXhwb3J0LXBrY3M4LWtleS5odG1sIFsgUwogd2Vi
a2l0Lm9yZy9iLzEzMzEyMiBjcnlwdG8vc3VidGxlL3JzYS1pbXBvcnQtc3BraS1rZXktZXhwb3J0
LWp3ay1rZXkuaHRtbCBbIFNraXAgXQogd2Via2l0Lm9yZy9iLzEzMzEyMiBjcnlwdG8vc3VidGxl
L3JzYS1pbXBvcnQtc3BraS1rZXktZXhwb3J0LXNwa2kta2V5Lmh0bWwgWyBTa2lwIF0KIHdlYmtp
dC5vcmcvYi8xMzMxMjIgY3J5cHRvL3N1YnRsZS9yc2EtaW1wb3J0LXNwa2ktc21hbGwta2V5Lmh0
bWwgWyBTa2lwIF0KLXdlYmtpdC5vcmcvYi8xMzMxMjIgY3J5cHRvL3N1YnRsZS9yc2EtaW5kZXhl
ZGRiLW5vbi1leHBvcnRhYmxlLXByaXZhdGUuaHRtbCBbIFNraXAgXQotd2Via2l0Lm9yZy9iLzEz
MzEyMiBjcnlwdG8vc3VidGxlL3JzYS1pbmRleGVkZGItbm9uLWV4cG9ydGFibGUuaHRtbCBbIFNr
aXAgXQotd2Via2l0Lm9yZy9iLzEzMzEyMiBjcnlwdG8vc3VidGxlL3JzYS1pbmRleGVkZGItcHJp
dmF0ZS5odG1sIFsgU2tpcCBdCi13ZWJraXQub3JnL2IvMTMzMTIyIGNyeXB0by9zdWJ0bGUvcnNh
LWluZGV4ZWRkYi5odG1sIFsgU2tpcCBdCiB3ZWJraXQub3JnL2IvMTMzMTIyIGNyeXB0by9zdWJ0
bGUvcnNhLW9hZXAtZ2VuZXJhdGUtZXhwb3J0LWtleS1wa2NzOC5odG1sIFsgU2tpcCBdCiB3ZWJr
aXQub3JnL2IvMTMzMTIyIGNyeXB0by9zdWJ0bGUvcnNhLW9hZXAtZ2VuZXJhdGUtZXhwb3J0LWtl
eS1zcGtpLmh0bWwgWyBTa2lwIF0KIHdlYmtpdC5vcmcvYi8xMzMxMjIgY3J5cHRvL3N1YnRsZS9y
c2Etb2FlcC1pbXBvcnQtcGtjczgta2V5Lmh0bWwgWyBTa2lwIF0KQEAgLTgwMiwyMCArNzk4LDE0
IEBAIHdlYmtpdC5vcmcvYi8xMzMxMjIgY3J5cHRvL3dvcmtlcnMvc3VidGxlL2Flcy1jZmItaW1w
b3J0LWtleS1kZWNyeXB0Lmh0bWwgWyBTa2lwCiB3ZWJraXQub3JnL2IvMTMzMTIyIGNyeXB0by93
b3JrZXJzL3N1YnRsZS9hZXMtY2ZiLWltcG9ydC1rZXktZW5jcnlwdC5odG1sIFsgU2tpcCBdCiB3
ZWJraXQub3JnL2IvMTMzMTIyIGNyeXB0by93b3JrZXJzL3N1YnRsZS9hZXMtY2ZiLWltcG9ydC1r
ZXktdW53cmFwLWtleS5odG1sIFsgU2tpcCBdCiB3ZWJraXQub3JnL2IvMTMzMTIyIGNyeXB0by93
b3JrZXJzL3N1YnRsZS9hZXMtY2ZiLWltcG9ydC1rZXktd3JhcC1rZXkuaHRtbCBbIFNraXAgXQot
d2Via2l0Lm9yZy9iLzEzMzEyMiBjcnlwdG8vd29ya2Vycy9zdWJ0bGUvYWVzLXBvc3RNZXNzYWdl
LXdvcmtlci5odG1sIFsgU2tpcCBdCiB3ZWJraXQub3JnL2IvMTMzMTIyIGNyeXB0by93b3JrZXJz
L3N1YnRsZS9lYy1nZW5lcmF0ZS1leHBvcnQtcGtjczgta2V5Lmh0bWwgWyBTa2lwIF0KIHdlYmtp
dC5vcmcvYi8xMzMxMjIgY3J5cHRvL3dvcmtlcnMvc3VidGxlL2VjLWdlbmVyYXRlLWV4cG9ydC1z
cGtpLWtleS5odG1sIFsgU2tpcCBdCiB3ZWJraXQub3JnL2IvMTMzMTIyIGNyeXB0by93b3JrZXJz
L3N1YnRsZS9lYy1pbXBvcnQtcGtjczgta2V5Lmh0bWwgWyBTa2lwIF0KIHdlYmtpdC5vcmcvYi8x
MzMxMjIgY3J5cHRvL3dvcmtlcnMvc3VidGxlL2VjLXBvc3RNZXNzYWdlLXdvcmtlci5odG1sIFsg
U2tpcCBdCi13ZWJraXQub3JnL2IvMTMzMTIyIGNyeXB0by93b3JrZXJzL3N1YnRsZS9obWFjLXBv
c3RNZXNzYWdlLXdvcmtlci5odG1sIFsgU2tpcCBdCi13ZWJraXQub3JnL2IvMTMzMTIyIGNyeXB0
by93b3JrZXJzL3N1YnRsZS9ocnNhLXBvc3RNZXNzYWdlLXdvcmtlci5odG1sIFsgU2tpcCBdCi13
ZWJraXQub3JnL2IvMTMzMTIyIGNyeXB0by93b3JrZXJzL3N1YnRsZS9tdWx0aXBsZS1wb3N0TWVz
c2FnZS13b3JrZXIuaHRtbCBbIFNraXAgXQotd2Via2l0Lm9yZy9iLzEzMzEyMiBjcnlwdG8vd29y
a2Vycy9zdWJ0bGUvcmF3LXBvc3RNZXNzYWdlLXdvcmtlci5odG1sIFsgU2tpcCBdCiB3ZWJraXQu
b3JnL2IvMTMzMTIyIGNyeXB0by93b3JrZXJzL3N1YnRsZS9yc2EtZXhwb3J0LXBrY3M4LWtleS5o
dG1sIFsgU2tpcCBdCiB3ZWJraXQub3JnL2IvMTMzMTIyIGNyeXB0by93b3JrZXJzL3N1YnRsZS9y
c2EtZXhwb3J0LXNwa2kta2V5Lmh0bWwgWyBTa2lwIF0KIHdlYmtpdC5vcmcvYi8xMzMxMjIgY3J5
cHRvL3dvcmtlcnMvc3VidGxlL3JzYS1pbXBvcnQtcGtjczgta2V5Lmh0bWwgWyBTa2lwIF0KIHdl
YmtpdC5vcmcvYi8xMzMxMjIgY3J5cHRvL3dvcmtlcnMvc3VidGxlL3JzYS1pbXBvcnQtc3BraS1r
ZXkuaHRtbCBbIFNraXAgXQotd2Via2l0Lm9yZy9iLzEzMzEyMiBjcnlwdG8vd29ya2Vycy9zdWJ0
bGUvcnNhLXBvc3RNZXNzYWdlLXdvcmtlci5odG1sIFsgU2tpcCBdCiB3ZWJraXQub3JnL2IvMTMz
MTIyIGNyeXB0by93b3JrZXJzL3N1YnRsZS9yc2EtcHNzLWltcG9ydC1rZXktc2lnbi5odG1sIFsg
U2tpcCBdCiB3ZWJraXQub3JnL2IvMTMzMTIyIGNyeXB0by93b3JrZXJzL3N1YnRsZS9yc2EtcHNz
LWltcG9ydC1rZXktdmVyaWZ5Lmh0bWwgWyBTa2lwIF0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>314464</attachid>
            <date>2017-07-03 01:06:12 -0700</date>
            <delta_ts>2017-07-19 10:39:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-173883-20170703100611.patch</filename>
            <type>text/plain</type>
            <size>17175</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE5MDY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmFkM2IxZjE2MGQ5OWU2
ZGJkZGRmZDUwZWI1ZjM3YThlZDAwYmFiMy4uNGM4YjNjMzAyNzMzZDZmZGIyMTc2MTM4Zjg4ZjBm
MWQ1OTBjOGE2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDQzIEBACiAyMDE3LTA3LTAzICBaYW4g
RG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KIAorICAgICAgICBbR0NyeXB0XSBLZXkg
c2VyaWFsaXphdGlvbiBzdXBwb3J0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNzM4ODMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBJbXBsZW1lbnQgY3J5cHRvIGtleSBzZXJpYWxpemF0aW9uIGZvciBwbGF0
Zm9ybXMgdGhhdCB1c2UgbGliZ2NyeXB0LgorCisgICAgICAgIEluIHdyYXBTZXJpYWxpemVkQ3J5
cHRvS2V5KCksIHRoZSBrZXktZW5jcnlwdGlvbiBrZXkgKEtFSykgaXMgZmlyc3QgZ2VuZXJhdGVk
LAorICAgICAgICByZXRyaWV2aW5nIDE2IGJ5dGVzIGZyb20gdGhlIGxpYmdjcnlwdCBSTkcuIFRo
ZSBBRVMtV3JhcCBhbGdvcml0aG0gaXMgdGhlbgorICAgICAgICB1c2VkIHRvIHdyYXAgdGhlIGdl
bmVyYXRlZCBrZXkgdXNpbmcgdGhlIHBhc3NlZC1pbiBtYXN0ZXIga2V5LiBUaGUgQUVTLUdDTQor
ICAgICAgICBhbGdvcml0aG0gaXMgdGhlbiB1c2VkIHRvIGVuY3J5cHQgdGhlIHBhc3NlZC1pbiBr
ZXkgZGF0YS4gVGhlIGdlbmVyYXRlZCBLRUsKKyAgICAgICAgaXMgdXNlZCBhcyB0aGUga2V5LCBh
bmQgdGhlIHRhZyBkYXRhIGZyb20gdGhpcyBlbmNyeXB0aW9uIGlzIGFsc28gcmV0cmlldmVkLgor
CisgICAgICAgIFdpdGggdGhlIHdyYXBwZWQgS0VLLCBlbmNyeXB0ZWQga2V5IGFuZCB0aGUgdGFn
IG5vdyBhdmFpbGFibGUsIHdlIGxldmVyYWdlIHRoZQorICAgICAgICBgU2VyaWFsaXplZENyeXB0
b0tleVdyYXBgIEFTTi4xIHN0cnVjdHVyZSB0byBlbmNvZGUgdGhlIHRocmVlIHBhcmFtZXRlcnMg
aW50bworICAgICAgICBhIHNpbXBsZSBkYXRhIGZvcm1hdC4gVGhlIGVuY29kZWQgZGF0YSBmb3Ig
dGhpcyBzdHJ1Y3R1cmUgaXMgdGhlbiByZXRyaWV2ZWQKKyAgICAgICAgYW5kIG1vdmVkIGludG8g
dGhlIG91dHB1dCByZXN1bHQgVmVjdG9yLgorCisgICAgICAgIGluIHVud3JhcFNlcmlhbGl6ZWRD
cnlwdG9LZXkoKSwgdGhlIG9wcG9zaXRlIG9wZXJhdGlvbiBpcyBkb25lLiBXZSBmaXJzdCBkZWNv
ZGUKKyAgICAgICAgdGhlIHBhc3NlZC1pbiBkYXRhIGFnYWlucyB0aGUgYFNlcmlhbGl6ZWRDcnlw
dG9LZXlXcmFwYCBBU04uMSBzdHJ1Y3R1cmUsIGFuZAorICAgICAgICByZXRyaWV2ZSB0aGUgd3Jh
cHBlZCBLRUssIGVuY3J5cHRlZCBrZXkgYW5kIHRhZyBkYXRhLiBXZSB0aGVuIHVzZSB0aGUgQUVT
LVdyYXAKKyAgICAgICAgYWxnb3JpdGhtIHRvIHVud3JhcCB0aGUgd3JhcHBlZCBLRUsgZGF0YSBh
bmQgcmV0cmlldmUgdGhlIG9yaWdpbmFsIEtFSy4gV2UgdGhlbgorICAgICAgICB1c2UgS0VLIGFz
IHRoZSBrZXkgZm9yIHRoZSBBRVMtR0NNIGRlY3J5cHRpb24gb3BlcmF0aW9uIHRocm91Z2ggd2hp
Y2ggd2UgZGVjcnlwdAorICAgICAgICB0aGUgZW5jcnlwdGVkIGtleSBkYXRhIGFuZCByZXRyaWV2
ZSB0aGUgZ2VuZXJhdGVkIHRhZyBkYXRhLiBXZSBjb21wYXJlIHRoZSBsYXR0ZXIKKyAgICAgICAg
YWdhaW5zdCB0aGUgdGFnIGRhdGEgdGhhdCB3YXMgZW1iZWRkZWQgaW4gdGhlIEFTTi4xIHN0cnVj
dHVyZSwgYW5kIGJhaWwgaWYgdGhlcmUKKyAgICAgICAgaXMgYSBtaXNtYXRjaC4gT3RoZXJ3aXNl
LCB3ZSBtb3ZlIHRoZSBkZWNyeXB0ZWQga2V5IGRhdGEgaW50byB0aGUgb3V0cHV0IHJlc3VsdAor
ICAgICAgICBWZWN0b3IgYW5kIHJlcG9ydCBhIHN1Y2Nlc3NmdWwgb3BlcmF0aW9uIHJlc3VsdC4K
KworICAgICAgICBObyBuZXcgdGVzdHMgLS0gcmVsYXRlZCB0ZXN0cyBhcmUgbm93IHBhc3Npbmcg
YW5kIGFyZSB1bnNraXBwZWQuCisKKyAgICAgICAgKiBjcnlwdG8vZ2NyeXB0L1NlcmlhbGl6ZWRD
cnlwdG9LZXlXcmFwR0NyeXB0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmdldERlZmF1bHRXZWJD
cnlwdG9NYXN0ZXJLZXkpOiBEcm9wIHRoZSBwYXJhbWV0ZXIgbmFtZSBhbmQgcmVtb3ZlCisgICAg
ICAgIHRoZSBVTlVTRURfUEFSQU0oKSBtYWNyby4KKyAgICAgICAgKFdlYkNvcmU6OndyYXBTZXJp
YWxpemVkQ3J5cHRvS2V5KToKKyAgICAgICAgKFdlYkNvcmU6OnVud3JhcFNlcmlhbGl6ZWRDcnlw
dG9LZXkpOgorCisyMDE3LTA3LTAzICBaYW4gRG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNv
bT4KKwogICAgICAgICBbR0NyeXB0XSBJbXBsZW1lbnQgQ3J5cHRvS2V5RUMgU1BLSSBleHBvcnRz
CiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzM2NDYK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJD
b3JlL1BBTC9DaGFuZ2VMb2cKaW5kZXggYzI3YTg0ZGFhMmQ1MTU4NjdjYTA3ZTEzYzEyNWM1N2Mw
YzU2NGMxYy4uOGZmYmE5YmM1YmZhMzY4NTdmZjM2N2VlOWMyMzZiYmMyNjRhZjllNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9Q
QUwvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMjEgQEAKIDIwMTctMDctMDMgIFphbiBEb2JlcnNlayAg
PHpkb2JlcnNla0BpZ2FsaWEuY29tPgogCisgICAgICAgIFtHQ3J5cHRdIEtleSBzZXJpYWxpemF0
aW9uIHN1cHBvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE3Mzg4MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEFkZCB0aGUgU2VyaWFsaXplZENyeXB0b0tleVdyYXAgQVNOLjEgc3RydWN0dXJlIHRvIHRo
ZSBXZWJDcnlwdG8uYXNuIGZpbGUgYW5kCisgICAgICAgIHVwZGF0ZSB0aGUgYXNuMV9zdGF0aWNf
bm9kZSBhcnJheSB0aGF0J3MgcHJvZHVjZWQgZnJvbSB0aGUgV2ViQ3J5cHRvLmFzbiBmaWxlCisg
ICAgICAgIHdpdGggdGhlIGFzbjFQYXJzZXIgdG9vbC4gVGhpcyBBU04uMSBzdHJ1Y3R1cmUgaXMg
dXNlZCBpbnRlcm5hbGx5IGZvciB0aGUgbmVlZHMKKyAgICAgICAgb2YgY3J5cHRvIGtleSBzZXJp
YWxpemF0aW9uLgorCisgICAgICAgICogcGFsL2NyeXB0by90YXNuMS9VdGlsaXRpZXMuY3BwOgor
ICAgICAgICAoUEFMOjpUQVNOMTo6YXNuMURlZmluaXRpb25zKToKKyAgICAgICAgKiBwYWwvY3J5
cHRvL3Rhc24xL1dlYkNyeXB0by5hc246CisKKzIwMTctMDctMDMgIFphbiBEb2JlcnNlayAgPHpk
b2JlcnNla0BpZ2FsaWEuY29tPgorCiAgICAgICAgIFtHQ3J5cHRdIEltcGxlbWVudCBDcnlwdG9L
ZXlFQyBTUEtJIGV4cG9ydHMKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE3MzY0NgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2Ny
eXB0by90YXNuMS9VdGlsaXRpZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jcnlwdG8v
dGFzbjEvVXRpbGl0aWVzLmNwcAppbmRleCBhYzhhZDhiZWY1ZmFjMWU3YmUzOWUyZWM1YmMzYWRk
YTc2OGVmNzg3Li40NWIzZDIxMmMwZDlmOTU3NzZjNGU2YTgzOGI3ODY5ODM0N2Q1YTE2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NyeXB0by90YXNuMS9VdGlsaXRpZXMuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY3J5cHRvL3Rhc24xL1V0aWxpdGllcy5jcHAK
QEAgLTg5LDEwICs4OSwxNCBAQCBzdGF0aWMgYXNuMV9ub2RlIGFzbjFEZWZpbml0aW9ucygpCiAg
ICAgICAgIHsgIk90aGVyUHJpbWVJbmZvcyIsIDE2MTI3MDk4OTksIG51bGxwdHIgfSwKICAgICAg
ICAgeyAiTUFYIiwgMTA3NDI2NjEyMiwgIjEifSwKICAgICAgICAgeyBudWxscHRyLCAyLCAiT3Ro
ZXJQcmltZUluZm8ifSwKLSAgICAgICAgeyAiT3RoZXJQcmltZUluZm8iLCA1MzY4NzA5MTcsIG51
bGxwdHIgfSwKKyAgICAgICAgeyAiT3RoZXJQcmltZUluZm8iLCAxNjEwNjEyNzQxLCBudWxscHRy
IH0sCiAgICAgICAgIHsgInByaW1lIiwgMTA3Mzc0MTgyNywgbnVsbHB0ciB9LAogICAgICAgICB7
ICJleHBvbmVudCIsIDEwNzM3NDE4MjcsIG51bGxwdHIgfSwKICAgICAgICAgeyAiY29lZmZpY2ll
bnQiLCAzLCBudWxscHRyIH0sCisgICAgICAgIHsgIlNlcmlhbGl6ZWRDcnlwdG9LZXlXcmFwIiwg
NTM2ODcwOTE3LCBudWxscHRyIH0sCisgICAgICAgIHsgIndyYXBwZWRLRUsiLCAxMDczNzQxODMx
LCBudWxscHRyIH0sCisgICAgICAgIHsgImVuY3J5cHRlZEtleSIsIDEwNzM3NDE4MzEsIG51bGxw
dHIgfSwKKyAgICAgICAgeyAidGFnIiwgNywgbnVsbHB0ciB9LAogICAgICAgICB7IG51bGxwdHIs
IDAsIG51bGxwdHIgfQogICAgIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9w
YWwvY3J5cHRvL3Rhc24xL1dlYkNyeXB0by5hc24gYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2Ny
eXB0by90YXNuMS9XZWJDcnlwdG8uYXNuCmluZGV4IGM4MTNiODk2NDEyNDczNTM0NzE3OTUxZmY2
NWJiNDgzYThjMjgzNzYuLjFkOTg5NzI1NDJhZDBmZTExOTYwNGU1OWVhOWUzMmMyNDVjNTVjMWEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY3J5cHRvL3Rhc24xL1dlYkNyeXB0
by5hc24KKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jcnlwdG8vdGFzbjEvV2ViQ3J5cHRv
LmFzbgpAQCAtODcsNCArODcsMTIgQEAgT3RoZXJQcmltZUluZm8gOjo9IFNFUVVFTkNFIHsKICAg
Y29lZmZpY2llbnQgSU5URUdFUiAtLSB0aQogfQogCistLSBVc2VkIGludGVybmFsbHkgZm9yIGtl
eSBzZXJpYWxpemF0aW9uLgorCitTZXJpYWxpemVkQ3J5cHRvS2V5V3JhcCA6Oj0gU0VRVUVOQ0Ug
eworICB3cmFwcGVkS0VLICAgIE9DVEVUIFNUUklORywKKyAgZW5jcnlwdGVkS2V5ICBPQ1RFVCBT
VFJJTkcsCisgIHRhZyAgICAgICAgICAgT0NURVQgU1RSSU5HCit9CisKIEVORApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2djcnlwdC9TZXJpYWxpemVkQ3J5cHRvS2V5V3JhcEdD
cnlwdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vZ2NyeXB0L1NlcmlhbGl6ZWRDcnlwdG9L
ZXlXcmFwR0NyeXB0LmNwcAppbmRleCA5NDk5ODlmOTRlMTI1OTMzMGQ5Mjc5OGQ1N2MyYjE4Yjg1
N2YzMWZkLi4zMGE3MTE2MzI4MGVjNjJiYWVhNmMwMWY3OWM5ZmFlYWEyMGYwYWMyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vZ2NyeXB0L1NlcmlhbGl6ZWRDcnlwdG9LZXlXcmFw
R0NyeXB0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vZ2NyeXB0L1NlcmlhbGl6ZWRD
cnlwdG9LZXlXcmFwR0NyeXB0LmNwcApAQCAtMjksMzUgKzI5LDIwMSBAQAogI2lmIEVOQUJMRShT
VUJUTEVfQ1JZUFRPKQogCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKKyNpbmNsdWRlIDxw
YWwvY3J5cHRvL2djcnlwdC9IYW5kbGUuaD4KKyNpbmNsdWRlIDxwYWwvY3J5cHRvL2djcnlwdC9V
dGlsaXRpZXMuaD4KKyNpbmNsdWRlIDxwYWwvY3J5cHRvL3Rhc24xL1V0aWxpdGllcy5oPgorI2lu
Y2x1ZGUgPHd0Zi9DcnlwdG9ncmFwaGljVXRpbGl0aWVzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAotYm9vbCBnZXREZWZhdWx0V2ViQ3J5cHRvTWFzdGVyS2V5KFZlY3Rvcjx1aW50OF90PiYg
bWFzdGVyS2V5KQorYm9vbCBnZXREZWZhdWx0V2ViQ3J5cHRvTWFzdGVyS2V5KFZlY3Rvcjx1aW50
OF90PiYpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICBVTlVTRURfUEFSQU0obWFzdGVy
S2V5KTsKLQogICAgIHJldHVybiBmYWxzZTsKIH0KIAogYm9vbCB3cmFwU2VyaWFsaXplZENyeXB0
b0tleShjb25zdCBWZWN0b3I8dWludDhfdD4mIG1hc3RlcktleSwgY29uc3QgVmVjdG9yPHVpbnQ4
X3Q+JiBrZXksIFZlY3Rvcjx1aW50OF90PiYgcmVzdWx0KQogewotICAgIG5vdEltcGxlbWVudGVk
KCk7Ci0gICAgVU5VU0VEX1BBUkFNKG1hc3RlcktleSk7Ci0gICAgVU5VU0VEX1BBUkFNKGtleSk7
Ci0gICAgVU5VU0VEX1BBUkFNKHJlc3VsdCk7CisgICAgLy8gR2VuZXJhdGUgYSAxMjgtYml0IGtl
eS1lbmNyeXB0aW9uIGtleSAoS0VLKS4KKyAgICBWZWN0b3I8dWludDhfdD4ga2VrKDE2KTsKKyAg
ICBnY3J5X3JhbmRvbWl6ZShrZWsuZGF0YSgpLCBrZWsuc2l6ZSgpLCBHQ1JZX1ZFUllfU1RST05H
X1JBTkRPTSk7CiAKLSAgICByZXR1cm4gZmFsc2U7CisgICAgLy8gVXNlIHRoZSBBRVMtV3JhcCBh
bGdvcml0aG0gdG8gd3JhcCB0aGUgS0VLLiBXZSBjYW4gcHJlZGV0ZXJtaW5lIHRoZSBvdXRwdXQg
YnVmZmVyCisgICAgLy8gc2l6ZSAtLSBpdCBoYXMgdG8gYmUgOCBieXRlcyBsYXJnZXIgdGhhbiB0
aGUgaW5wdXQgKHdoaWNoIGlzIDE2IGJ5dGVzKS4KKyAgICBWZWN0b3I8dWludDhfdD4gd3JhcHBl
ZEtFSygyNCk7CisgICAgeworICAgICAgICBhdXRvIGFsZ29yaXRobSA9IFBBTDo6R0NyeXB0Ojph
ZXNBbGdvcml0aG1Gb3JLZXlTaXplKG1hc3RlcktleS5zaXplKCkgKiA4KTsKKyAgICAgICAgaWYg
KCFhbGdvcml0aG0pCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgUEFMOjpH
Q3J5cHQ6OkhhbmRsZTxnY3J5X2NpcGhlcl9oZF90PiBoYW5kbGU7CisgICAgICAgIGdjcnlfZXJy
b3JfdCBlcnJvciA9IGdjcnlfY2lwaGVyX29wZW4oJmhhbmRsZSwgKmFsZ29yaXRobSwgR0NSWV9D
SVBIRVJfTU9ERV9BRVNXUkFQLCAwKTsKKyAgICAgICAgaWYgKGVycm9yICE9IEdQR19FUlJfTk9f
RVJST1IpIHsKKyAgICAgICAgICAgIFBBTDo6R0NyeXB0Ojpsb2dFcnJvcihlcnJvcik7CisgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICAvLyBVc2UgdGhlIHBh
c3NlZC1pbiBgbWFzdGVyS2V5YCBhcyB0aGUga2V5IGZvciBlbmNyeXB0aW9uLgorICAgICAgICBl
cnJvciA9IGdjcnlfY2lwaGVyX3NldGtleShoYW5kbGUsIG1hc3RlcktleS5kYXRhKCksIG1hc3Rl
cktleS5zaXplKCkpOworICAgICAgICBpZiAoZXJyb3IgIT0gR1BHX0VSUl9OT19FUlJPUikgewor
ICAgICAgICAgICAgUEFMOjpHQ3J5cHQ6OmxvZ0Vycm9yKGVycm9yKTsKKyAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIEVuY3J5cHQgdGhlIGdlbmVyYXRl
ZCBLRUssIHJldHJpZXZpbmcgdGhlIGNpcGhlciB0ZXh0IGludG8gdGhlIGB3cmFwcGVkS0VLYCBW
ZWN0b3IuCisgICAgICAgIGVycm9yID0gZ2NyeV9jaXBoZXJfZW5jcnlwdChoYW5kbGUsIHdyYXBw
ZWRLRUsuZGF0YSgpLCB3cmFwcGVkS0VLLnNpemUoKSwga2VrLmRhdGEoKSwga2VrLnNpemUoKSk7
CisgICAgICAgIGlmIChlcnJvciAhPSBHUEdfRVJSX05PX0VSUk9SKSB7CisgICAgICAgICAgICBQ
QUw6OkdDcnlwdDo6bG9nRXJyb3IoZXJyb3IpOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgICAgICB9CisgICAgfQorCisgICAgLy8gVXNlIHRoZSBBRVMtR0NNIGFsZ29yaXRobSB0byBl
bmNyeXB0IHRoZSBwYXNzZWQtaW4ga2V5LiBUaGUgb3V0cHV0IFZlY3RvciBzaG91bGQgbWF0Y2gK
KyAgICAvLyB0aGUgaW5wdXQga2V5IFZlY3RvciBpbiBzaXplLiBUaGUgdGFnLCAxNiBieXRlcyBp
biBzaXplLCBpcyBhbHNvIHJldHJpZXZlZC4KKyAgICBWZWN0b3I8dWludDhfdD4gZW5jcnlwdGVk
S2V5KGtleS5zaXplKCkpOworICAgIFZlY3Rvcjx1aW50OF90PiB0YWcoMTYpOworICAgIHsKKyAg
ICAgICAgUEFMOjpHQ3J5cHQ6OkhhbmRsZTxnY3J5X2NpcGhlcl9oZF90PiBoYW5kbGU7CisgICAg
ICAgIGdjcnlfZXJyb3JfdCBlcnJvciA9IGdjcnlfY2lwaGVyX29wZW4oJmhhbmRsZSwgR0NSWV9D
SVBIRVJfQUVTMTI4LCBHQ1JZX0NJUEhFUl9NT0RFX0dDTSwgMCk7CisgICAgICAgIGlmIChlcnJv
ciAhPSBHUEdfRVJSX05PX0VSUk9SKSB7CisgICAgICAgICAgICBQQUw6OkdDcnlwdDo6bG9nRXJy
b3IoZXJyb3IpOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAg
ICAgLy8gVXNlIHRoZSBLRUsgYXMgdGhlIGtleSBmb3IgZW5jcnlwdGlvbi4KKyAgICAgICAgZXJy
b3IgPSBnY3J5X2NpcGhlcl9zZXRrZXkoaGFuZGxlLCBrZWsuZGF0YSgpLCBrZWsuc2l6ZSgpKTsK
KyAgICAgICAgaWYgKGVycm9yICE9IEdQR19FUlJfTk9fRVJST1IpIHsKKyAgICAgICAgICAgIFBB
TDo6R0NyeXB0Ojpsb2dFcnJvcihlcnJvcik7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgICAgIH0KKworICAgICAgICAvLyBFbmNyeXB0IHRoZSBwYXNzZWQtaW4gYGtleWAsIHJldHJp
ZXZpbmcgdGhlIGNpcGhlciB0ZXh0IGludG8gdGhlIGBlbmNyeXB0ZWRLZXlgIFZlY3Rvci4KKyAg
ICAgICAgZXJyb3IgPSBnY3J5X2NpcGhlcl9lbmNyeXB0KGhhbmRsZSwgZW5jcnlwdGVkS2V5LmRh
dGEoKSwgZW5jcnlwdGVkS2V5LnNpemUoKSwga2V5LmRhdGEoKSwga2V5LnNpemUoKSk7CisgICAg
ICAgIGlmIChlcnJvciAhPSBHUEdfRVJSX05PX0VSUk9SKSB7CisgICAgICAgICAgICBQQUw6OkdD
cnlwdDo6bG9nRXJyb3IoZXJyb3IpOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAg
ICB9CisKKyAgICAgICAgLy8gQWxzbyByZXRyaWV2ZSB0aGUgdGFnIGRhdGEgaW50byB0aGUgYHRh
Z2AgVmVjdG9yLgorICAgICAgICBlcnJvciA9IGdjcnlfY2lwaGVyX2dldHRhZyhoYW5kbGUsIHRh
Zy5kYXRhKCksIHRhZy5zaXplKCkpOworICAgICAgICBpZiAoZXJyb3IgIT0gR1BHX0VSUl9OT19F
UlJPUikgeworICAgICAgICAgICAgUEFMOjpHQ3J5cHQ6OmxvZ0Vycm9yKGVycm9yKTsKKyAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vIENyZWF0ZSB0
aGUgQVNOLjEgYFNlcmlhbGl6ZWRDcnlwdG9LZXlXcmFwYCBzdHJ1Y3R1cmUgYW5kIHdyaXRlIHRo
ZSB3cmFwcGVkIEtFSywgZW5jcnlwdGVkIGtleQorICAgIC8vIGFuZCB0YWcgZGF0YSBpbnRvIGl0
LiBSZXRyaWV2ZSB0aGUgZW5jb2RlZCBkYXRhIGFuZCBtb3ZlIGl0IGludG8gdGhlIG91dHB1dCBg
cmVzdWx0YCBWZWN0b3IuCisgICAgUEFMOjpUQVNOMTo6U3RydWN0dXJlIHdyYXA7CisgICAgewor
ICAgICAgICBpZiAoIVBBTDo6VEFTTjE6OmNyZWF0ZVN0cnVjdHVyZSgiV2ViQ3J5cHRvLlNlcmlh
bGl6ZWRDcnlwdG9LZXlXcmFwIiwgJndyYXApKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwor
CisgICAgICAgIGlmICghUEFMOjpUQVNOMTo6d3JpdGVFbGVtZW50KHdyYXAsICJ3cmFwcGVkS0VL
Iiwgd3JhcHBlZEtFSy5kYXRhKCksIHdyYXBwZWRLRUsuc2l6ZSgpKQorICAgICAgICAgICAgfHwg
IVBBTDo6VEFTTjE6OndyaXRlRWxlbWVudCh3cmFwLCAiZW5jcnlwdGVkS2V5IiwgZW5jcnlwdGVk
S2V5LmRhdGEoKSwgZW5jcnlwdGVkS2V5LnNpemUoKSkKKyAgICAgICAgICAgIHx8ICFQQUw6OlRB
U04xOjp3cml0ZUVsZW1lbnQod3JhcCwgInRhZyIsIHRhZy5kYXRhKCksIHRhZy5zaXplKCkpKQor
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIGF1dG8gZGF0YSA9IFBBTDo6VEFT
TjE6OmVuY29kZWREYXRhKHdyYXAsICIiKTsKKyAgICAgICAgaWYgKCFkYXRhKQorICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIHJlc3VsdCA9IFdURk1vdmUoZGF0YS52YWx1ZSgp
KTsKKyAgICB9CisKKyAgICAvLyBGaW5hbGx5IHJldHVybiBgdHJ1ZWAsIHNpZ25hbGxpbmcgYSBz
dWNjZXNzZnVsIHdyYXBwaW5nIG9wZXJhdGlvbi4KKyAgICByZXR1cm4gdHJ1ZTsKIH0KIAogYm9v
bCB1bndyYXBTZXJpYWxpemVkQ3J5cHRvS2V5KGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgbWFzdGVy
S2V5LCBjb25zdCBWZWN0b3I8dWludDhfdD4mIHdyYXBwZWRLZXksIFZlY3Rvcjx1aW50OF90PiYg
a2V5KQogewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgVU5VU0VEX1BBUkFNKG1hc3Rlcktl
eSk7Ci0gICAgVU5VU0VEX1BBUkFNKHdyYXBwZWRLZXkpOwotICAgIFVOVVNFRF9QQVJBTShrZXkp
OworICAgIC8vIERlY29kZSB0aGUgQVNOLjEgYFNlcmlhbGl6ZWRDcnlwdG9LZXlXcmFwYCBzdHJ1
Y3R1cmUgZnJvbSB0aGUgcHJvdmlkZWQgYHdyYXBwZWRLZXlgIGRhdGEuCisgICAgUEFMOjpUQVNO
MTo6U3RydWN0dXJlIHdyYXA7CisgICAgaWYgKCFQQUw6OlRBU04xOjpkZWNvZGVTdHJ1Y3R1cmUo
JndyYXAsICJXZWJDcnlwdG8uU2VyaWFsaXplZENyeXB0b0tleVdyYXAiLCB3cmFwcGVkS2V5KSkK
KyAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgcmV0dXJuIGZhbHNlOworICAgIC8vIFJldHJp
ZXZlIHRoZSBgd3JhcHBlZEtla2AgZGF0YSwgaXQgc2hvdWxkIGJlIDI0IGJ5dGVzIGluIHNpemUu
CisgICAgYXV0byB3cmFwcGVkS0VLID0gUEFMOjpUQVNOMTo6ZWxlbWVudERhdGEod3JhcCwgIndy
YXBwZWRLRUsiKTsKKyAgICBpZiAoIXdyYXBwZWRLRUsgfHwgd3JhcHBlZEtFSy0+c2l6ZSgpICE9
IDI0KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAvLyBSZXRyaWV2ZSB0aGUgYGVuY3J5
cHRlZEtleWAgZGF0YSwgd2l0aCBubyBzaXplIGd1YXJhbnRlZS4KKyAgICBhdXRvIGVuY3J5cHRl
ZEtleSA9IFBBTDo6VEFTTjE6OmVsZW1lbnREYXRhKHdyYXAsICJlbmNyeXB0ZWRLZXkiKTsKKyAg
ICBpZiAoIWVuY3J5cHRlZEtleSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgLy8gUmV0
cmlldmUgdGhlIGB0YWdgIGRhdGEsIGl0IHNob3VsZCBiZSAxNiBieXRlcyBpbiBzaXplLgorICAg
IGF1dG8gdGFnID0gUEFMOjpUQVNOMTo6ZWxlbWVudERhdGEod3JhcCwgInRhZyIpOworICAgIGlm
ICghdGFnIHx8IHRhZy0+c2l6ZSgpICE9IDE2KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAg
ICAvLyBVc2UgdGhlIEFFUy1XcmFwIGFsZ29yaXRobSB0byB1bndyYXAgdGhlIEtFSy4gV2UgY2Fu
IHByZWRldGVybWluZSB0aGUgb3V0cHV0IGJ1ZmZlcgorICAgIC8vIHNpemUgLS0gaXQgaGFzIHRv
IGJlIDggYnl0ZXMgc21hbGxlciB0aGFuIHRoZSBpbnB1dCAod2hpY2ggaXMgMjQgYnl0ZXMpLgor
ICAgIFZlY3Rvcjx1aW50OF90PiBrZWsoMTYpOworICAgIHsKKyAgICAgICAgYXV0byBhbGdvcml0
aG0gPSBQQUw6OkdDcnlwdDo6YWVzQWxnb3JpdGhtRm9yS2V5U2l6ZShtYXN0ZXJLZXkuc2l6ZSgp
ICogOCk7CisgICAgICAgIGlmICghYWxnb3JpdGhtKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OworCisgICAgICAgIFBBTDo6R0NyeXB0OjpIYW5kbGU8Z2NyeV9jaXBoZXJfaGRfdD4gaGFuZGxl
OworICAgICAgICBnY3J5X2Vycm9yX3QgZXJyb3IgPSBnY3J5X2NpcGhlcl9vcGVuKCZoYW5kbGUs
ICphbGdvcml0aG0sIEdDUllfQ0lQSEVSX01PREVfQUVTV1JBUCwgMCk7CisgICAgICAgIGlmIChl
cnJvciAhPSBHUEdfRVJSX05PX0VSUk9SKSB7CisgICAgICAgICAgICBQQUw6OkdDcnlwdDo6bG9n
RXJyb3IoZXJyb3IpOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAg
ICAgICAgZXJyb3IgPSBnY3J5X2NpcGhlcl9zZXRrZXkoaGFuZGxlLCBtYXN0ZXJLZXkuZGF0YSgp
LCBtYXN0ZXJLZXkuc2l6ZSgpKTsKKyAgICAgICAgaWYgKGVycm9yICE9IEdQR19FUlJfTk9fRVJS
T1IpIHsKKyAgICAgICAgICAgIFBBTDo6R0NyeXB0Ojpsb2dFcnJvcihlcnJvcik7CisgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICBlcnJvciA9IGdjcnlfY2lw
aGVyX2RlY3J5cHQoaGFuZGxlLCBrZWsuZGF0YSgpLCBrZWsuc2l6ZSgpLCB3cmFwcGVkS0VLLT5k
YXRhKCksIHdyYXBwZWRLRUstPnNpemUoKSk7CisgICAgICAgIGlmIChlcnJvciAhPSBHUEdfRVJS
X05PX0VSUk9SKSB7CisgICAgICAgICAgICBQQUw6OkdDcnlwdDo6bG9nRXJyb3IoZXJyb3IpOwor
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgfQorCisgICAgLy8gVXNl
IHRoZSBBRVMtR0NNIGFsZ29yaXRobSB0byBkZWNyeXB0IHRoZSBlbmNyeXB0ZWQga2V5IGRhdGEu
IFRoZSBvdXRwdXQgVmVjdG9yIHNob3VsZCBtYXRjaAorICAgIC8vIHRoZSBpbnB1dCBrZXkgVmVj
dG9yIGluIHNpemUuIFRoZSB0YWcsIDE2IGJ5dGVzIGluIHNpemUsIGlzIGFsc28gcmV0cmlldmVk
LgorICAgIFZlY3Rvcjx1aW50OF90PiBkZWNyeXB0ZWRLZXkoZW5jcnlwdGVkS2V5LT5zaXplKCkp
OworICAgIFZlY3Rvcjx1aW50OF90PiBhY3R1YWxUYWcoMTYpOworICAgIHsKKyAgICAgICAgUEFM
OjpHQ3J5cHQ6OkhhbmRsZTxnY3J5X2NpcGhlcl9oZF90PiBoYW5kbGU7CisgICAgICAgIGdjcnlf
ZXJyb3JfdCBlcnJvciA9IGdjcnlfY2lwaGVyX29wZW4oJmhhbmRsZSwgR0NSWV9DSVBIRVJfQUVT
MTI4LCBHQ1JZX0NJUEhFUl9NT0RFX0dDTSwgMCk7CisgICAgICAgIGlmIChlcnJvciAhPSBHUEdf
RVJSX05PX0VSUk9SKSB7CisgICAgICAgICAgICBQQUw6OkdDcnlwdDo6bG9nRXJyb3IoZXJyb3Ip
OworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgZXJyb3Ig
PSBnY3J5X2NpcGhlcl9zZXRrZXkoaGFuZGxlLCBrZWsuZGF0YSgpLCBrZWsuc2l6ZSgpKTsKKyAg
ICAgICAgaWYgKGVycm9yICE9IEdQR19FUlJfTk9fRVJST1IpIHsKKyAgICAgICAgICAgIFBBTDo6
R0NyeXB0Ojpsb2dFcnJvcihlcnJvcik7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
ICAgIH0KKworICAgICAgICBlcnJvciA9IGdjcnlfY2lwaGVyX2RlY3J5cHQoaGFuZGxlLCBkZWNy
eXB0ZWRLZXkuZGF0YSgpLCBkZWNyeXB0ZWRLZXkuc2l6ZSgpLCBlbmNyeXB0ZWRLZXktPmRhdGEo
KSwgZW5jcnlwdGVkS2V5LT5zaXplKCkpOworICAgICAgICBpZiAoZXJyb3IgIT0gR1BHX0VSUl9O
T19FUlJPUikgeworICAgICAgICAgICAgUEFMOjpHQ3J5cHQ6OmxvZ0Vycm9yKGVycm9yKTsKKyAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIGVycm9yID0gZ2Ny
eV9jaXBoZXJfZ2V0dGFnKGhhbmRsZSwgYWN0dWFsVGFnLmRhdGEoKSwgYWN0dWFsVGFnLnNpemUo
KSk7CisgICAgICAgIGlmIChlcnJvciAhPSBHUEdfRVJSX05PX0VSUk9SKSB7CisgICAgICAgICAg
ICBQQUw6OkdDcnlwdDo6bG9nRXJyb3IoZXJyb3IpOworICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OworICAgICAgICB9CisgICAgfQorCisgICAgLy8gQ29tcGFyZSB0aGUgZXhwZWN0ZWQgYW5kIHRo
ZSBhY3V0YWwgdGFnLCBiYWlsaW5nIGlmIHRoZXJlJ3MgYSBtaXNtYXRjaC4KKyAgICBpZiAoY29u
c3RhbnRUaW1lTWVtY21wKHRhZy0+ZGF0YSgpLCBhY3R1YWxUYWcuZGF0YSgpLCAxNikpCisgICAg
ICAgIHJldHVybiBmYWxzZTsKKworICAgIC8vIEZpbmFsbHkgbW92ZSB0aGUgZGVjcnlwdGVkIGtl
eSBkYXRhIGludG8gdGhlIGBrZXlgIFZlY3RvciBhbmQgcmV0dXJuIGB0cnVlYCwgc2lnbmFsbGlu
ZworICAgIC8vIGEgc3VjY2Vzc2Z1bCB1bndyYXBwaW5nIG9wZXJhdGlvbi4KKyAgICBrZXkgPSBX
VEZNb3ZlKGRlY3J5cHRlZEtleSk7CisgICAgcmV0dXJuIHRydWU7CiB9CiAKIH0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBk
NDU2OWFiODljNGUxY2I3MmM1ZmYzYWQ0NjIzODM5MTVlOGY3NzliLi5jNWFjMWNiMDE3OTEwMmNh
NWI1ZTkwOTBjYjgxYjg5MzY3ZDllM2QzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTUgQEAKIDIwMTctMDct
MDMgIFphbiBEb2JlcnNlayAgPHpkb2JlcnNla0BpZ2FsaWEuY29tPgogCisgICAgICAgIFtHQ3J5
cHRdIEtleSBzZXJpYWxpemF0aW9uIHN1cHBvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE3Mzg4MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnM6IFVu
c2tpcCB0aGUgdGVzdHMgdGhhdCB1dGlsaXplIGtleSBzZXJpYWxpemF0aW9uCisgICAgICAgIGFu
ZCBhcmUgbm93IHBhc3NpbmcuCisKKzIwMTctMDctMDMgIFphbiBEb2JlcnNlayAgPHpkb2JlcnNl
a0BpZ2FsaWEuY29tPgorCiAgICAgICAgIFtHQ3J5cHRdIEltcGxlbWVudCBDcnlwdG9LZXlFQyBT
UEtJIGV4cG9ydHMKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE3MzY0NgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4
cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCmlu
ZGV4IDUxOGM0YjY5MmZhYTI0OWE1N2UwMmI2M2Q0YTEyZTE4ODA0ZjFkYzUuLjc4ZjBkZmJiNWVl
MjNmMWFkZWU5YTYwMDAyNjI3YzgwM2MzMzcxZTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0
ay9UZXN0RXhwZWN0YXRpb25zCkBAIC03NzAsMTAgKzc3MCw2IEBAIHdlYmtpdC5vcmcvYi8xMzMx
MjIgY3J5cHRvL3N1YnRsZS9yc2EtaW1wb3J0LXBrY3M4LWtleS1leHBvcnQtcGtjczgta2V5Lmh0
bWwgWyBTCiB3ZWJraXQub3JnL2IvMTMzMTIyIGNyeXB0by9zdWJ0bGUvcnNhLWltcG9ydC1zcGtp
LWtleS1leHBvcnQtandrLWtleS5odG1sIFsgU2tpcCBdCiB3ZWJraXQub3JnL2IvMTMzMTIyIGNy
eXB0by9zdWJ0bGUvcnNhLWltcG9ydC1zcGtpLWtleS1leHBvcnQtc3BraS1rZXkuaHRtbCBbIFNr
aXAgXQogd2Via2l0Lm9yZy9iLzEzMzEyMiBjcnlwdG8vc3VidGxlL3JzYS1pbXBvcnQtc3BraS1z
bWFsbC1rZXkuaHRtbCBbIFNraXAgXQotd2Via2l0Lm9yZy9iLzEzMzEyMiBjcnlwdG8vc3VidGxl
L3JzYS1pbmRleGVkZGItbm9uLWV4cG9ydGFibGUtcHJpdmF0ZS5odG1sIFsgU2tpcCBdCi13ZWJr
aXQub3JnL2IvMTMzMTIyIGNyeXB0by9zdWJ0bGUvcnNhLWluZGV4ZWRkYi1ub24tZXhwb3J0YWJs
ZS5odG1sIFsgU2tpcCBdCi13ZWJraXQub3JnL2IvMTMzMTIyIGNyeXB0by9zdWJ0bGUvcnNhLWlu
ZGV4ZWRkYi1wcml2YXRlLmh0bWwgWyBTa2lwIF0KLXdlYmtpdC5vcmcvYi8xMzMxMjIgY3J5cHRv
L3N1YnRsZS9yc2EtaW5kZXhlZGRiLmh0bWwgWyBTa2lwIF0KIHdlYmtpdC5vcmcvYi8xMzMxMjIg
Y3J5cHRvL3N1YnRsZS9yc2Etb2FlcC1nZW5lcmF0ZS1leHBvcnQta2V5LXBrY3M4Lmh0bWwgWyBT
a2lwIF0KIHdlYmtpdC5vcmcvYi8xMzMxMjIgY3J5cHRvL3N1YnRsZS9yc2Etb2FlcC1nZW5lcmF0
ZS1leHBvcnQta2V5LXNwa2kuaHRtbCBbIFNraXAgXQogd2Via2l0Lm9yZy9iLzEzMzEyMiBjcnlw
dG8vc3VidGxlL3JzYS1vYWVwLWltcG9ydC1wa2NzOC1rZXkuaHRtbCBbIFNraXAgXQpAQCAtNzk1
LDE5ICs3OTEsMTMgQEAgd2Via2l0Lm9yZy9iLzEzMzEyMiBjcnlwdG8vd29ya2Vycy9zdWJ0bGUv
YWVzLWNmYi1pbXBvcnQta2V5LWRlY3J5cHQuaHRtbCBbIFNraXAKIHdlYmtpdC5vcmcvYi8xMzMx
MjIgY3J5cHRvL3dvcmtlcnMvc3VidGxlL2Flcy1jZmItaW1wb3J0LWtleS1lbmNyeXB0Lmh0bWwg
WyBTa2lwIF0KIHdlYmtpdC5vcmcvYi8xMzMxMjIgY3J5cHRvL3dvcmtlcnMvc3VidGxlL2Flcy1j
ZmItaW1wb3J0LWtleS11bndyYXAta2V5Lmh0bWwgWyBTa2lwIF0KIHdlYmtpdC5vcmcvYi8xMzMx
MjIgY3J5cHRvL3dvcmtlcnMvc3VidGxlL2Flcy1jZmItaW1wb3J0LWtleS13cmFwLWtleS5odG1s
IFsgU2tpcCBdCi13ZWJraXQub3JnL2IvMTMzMTIyIGNyeXB0by93b3JrZXJzL3N1YnRsZS9hZXMt
cG9zdE1lc3NhZ2Utd29ya2VyLmh0bWwgWyBTa2lwIF0KIHdlYmtpdC5vcmcvYi8xMzMxMjIgY3J5
cHRvL3dvcmtlcnMvc3VidGxlL2VjLWdlbmVyYXRlLWV4cG9ydC1wa2NzOC1rZXkuaHRtbCBbIFNr
aXAgXQogd2Via2l0Lm9yZy9iLzEzMzEyMiBjcnlwdG8vd29ya2Vycy9zdWJ0bGUvZWMtaW1wb3J0
LXBrY3M4LWtleS5odG1sIFsgU2tpcCBdCiB3ZWJraXQub3JnL2IvMTMzMTIyIGNyeXB0by93b3Jr
ZXJzL3N1YnRsZS9lYy1wb3N0TWVzc2FnZS13b3JrZXIuaHRtbCBbIFNraXAgXQotd2Via2l0Lm9y
Zy9iLzEzMzEyMiBjcnlwdG8vd29ya2Vycy9zdWJ0bGUvaG1hYy1wb3N0TWVzc2FnZS13b3JrZXIu
aHRtbCBbIFNraXAgXQotd2Via2l0Lm9yZy9iLzEzMzEyMiBjcnlwdG8vd29ya2Vycy9zdWJ0bGUv
aHJzYS1wb3N0TWVzc2FnZS13b3JrZXIuaHRtbCBbIFNraXAgXQotd2Via2l0Lm9yZy9iLzEzMzEy
MiBjcnlwdG8vd29ya2Vycy9zdWJ0bGUvbXVsdGlwbGUtcG9zdE1lc3NhZ2Utd29ya2VyLmh0bWwg
WyBTa2lwIF0KLXdlYmtpdC5vcmcvYi8xMzMxMjIgY3J5cHRvL3dvcmtlcnMvc3VidGxlL3Jhdy1w
b3N0TWVzc2FnZS13b3JrZXIuaHRtbCBbIFNraXAgXQogd2Via2l0Lm9yZy9iLzEzMzEyMiBjcnlw
dG8vd29ya2Vycy9zdWJ0bGUvcnNhLWV4cG9ydC1wa2NzOC1rZXkuaHRtbCBbIFNraXAgXQogd2Vi
a2l0Lm9yZy9iLzEzMzEyMiBjcnlwdG8vd29ya2Vycy9zdWJ0bGUvcnNhLWV4cG9ydC1zcGtpLWtl
eS5odG1sIFsgU2tpcCBdCiB3ZWJraXQub3JnL2IvMTMzMTIyIGNyeXB0by93b3JrZXJzL3N1YnRs
ZS9yc2EtaW1wb3J0LXBrY3M4LWtleS5odG1sIFsgU2tpcCBdCiB3ZWJraXQub3JnL2IvMTMzMTIy
IGNyeXB0by93b3JrZXJzL3N1YnRsZS9yc2EtaW1wb3J0LXNwa2kta2V5Lmh0bWwgWyBTa2lwIF0K
LXdlYmtpdC5vcmcvYi8xMzMxMjIgY3J5cHRvL3dvcmtlcnMvc3VidGxlL3JzYS1wb3N0TWVzc2Fn
ZS13b3JrZXIuaHRtbCBbIFNraXAgXQogd2Via2l0Lm9yZy9iLzEzMzEyMiBjcnlwdG8vd29ya2Vy
cy9zdWJ0bGUvcnNhLXBzcy1pbXBvcnQta2V5LXNpZ24uaHRtbCBbIFNraXAgXQogd2Via2l0Lm9y
Zy9iLzEzMzEyMiBjcnlwdG8vd29ya2Vycy9zdWJ0bGUvcnNhLXBzcy1pbXBvcnQta2V5LXZlcmlm
eS5odG1sIFsgU2tpcCBdCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>315933</attachid>
            <date>2017-07-19 10:39:19 -0700</date>
            <delta_ts>2017-07-19 11:17:20 -0700</delta_ts>
            <desc>WIP patch</desc>
            <filename>bug-173883-20170719193918.patch</filename>
            <type>text/plain</type>
            <size>9675</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE5NjU1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGFmOTFkOTU2MmNjOGRj
NzgwYzRkZDBlNzA2MDYwZTQ0YmZlNDMxYi4uY2YyNzYwNGUwMzdhMjM5ZjAzNzBjOGMyMDFhODc4
MDlmNzJlYjU2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDE3LTA3LTE5ICBaYW4g
RG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KKworICAgICAgICBbR0NyeXB0XSBLZXkg
c2VyaWFsaXphdGlvbiBzdXBwb3J0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNzM4ODMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBJbXBsZW1lbnQgY3J5cHRvIGtleSBzZXJpYWxpemF0aW9uIGZvciBwbGF0
Zm9ybXMgdGhhdCB1c2UgbGliZ2NyeXB0LgorCisgICAgICAgIEluIHdyYXBTZXJpYWxpemVkQ3J5
cHRvS2V5KCksIHRoZSBrZXktZW5jcnlwdGlvbiBrZXkgKEtFSykgaXMgZmlyc3QgZ2VuZXJhdGVk
LAorICAgICAgICByZXRyaWV2aW5nIDE2IGJ5dGVzIGZyb20gdGhlIGxpYmdjcnlwdCBSTkcuIFRo
ZSBBRVMtV3JhcCBhbGdvcml0aG0gaXMgdGhlbgorICAgICAgICB1c2VkIHRvIHdyYXAgdGhlIGdl
bmVyYXRlZCBrZXkgdXNpbmcgdGhlIHBhc3NlZC1pbiBtYXN0ZXIga2V5LiBUaGUgQUVTLUdDTQor
ICAgICAgICBhbGdvcml0aG0gaXMgdGhlbiB1c2VkIHRvIGVuY3J5cHQgdGhlIHBhc3NlZC1pbiBr
ZXkgZGF0YS4gVGhlIGdlbmVyYXRlZCBLRUsKKyAgICAgICAgaXMgdXNlZCBhcyB0aGUga2V5LCBh
bmQgdGhlIHRhZyBkYXRhIGZyb20gdGhpcyBlbmNyeXB0aW9uIGlzIGFsc28gcmV0cmlldmVkLgor
CisgICAgICAgIFdpdGggdGhlIHdyYXBwZWQgS0VLLCBlbmNyeXB0ZWQga2V5IGFuZCB0aGUgdGFn
IG5vdyBhdmFpbGFibGUsIHdlIGxldmVyYWdlIHRoZQorICAgICAgICBgU2VyaWFsaXplZENyeXB0
b0tleVdyYXBgIEFTTi4xIHN0cnVjdHVyZSB0byBlbmNvZGUgdGhlIHRocmVlIHBhcmFtZXRlcnMg
aW50bworICAgICAgICBhIHNpbXBsZSBkYXRhIGZvcm1hdC4gVGhlIGVuY29kZWQgZGF0YSBmb3Ig
dGhpcyBzdHJ1Y3R1cmUgaXMgdGhlbiByZXRyaWV2ZWQKKyAgICAgICAgYW5kIG1vdmVkIGludG8g
dGhlIG91dHB1dCByZXN1bHQgVmVjdG9yLgorCisgICAgICAgIGluIHVud3JhcFNlcmlhbGl6ZWRD
cnlwdG9LZXkoKSwgdGhlIG9wcG9zaXRlIG9wZXJhdGlvbiBpcyBkb25lLiBXZSBmaXJzdCBkZWNv
ZGUKKyAgICAgICAgdGhlIHBhc3NlZC1pbiBkYXRhIGFnYWlucyB0aGUgYFNlcmlhbGl6ZWRDcnlw
dG9LZXlXcmFwYCBBU04uMSBzdHJ1Y3R1cmUsIGFuZAorICAgICAgICByZXRyaWV2ZSB0aGUgd3Jh
cHBlZCBLRUssIGVuY3J5cHRlZCBrZXkgYW5kIHRhZyBkYXRhLiBXZSB0aGVuIHVzZSB0aGUgQUVT
LVdyYXAKKyAgICAgICAgYWxnb3JpdGhtIHRvIHVud3JhcCB0aGUgd3JhcHBlZCBLRUsgZGF0YSBh
bmQgcmV0cmlldmUgdGhlIG9yaWdpbmFsIEtFSy4gV2UgdGhlbgorICAgICAgICB1c2UgS0VLIGFz
IHRoZSBrZXkgZm9yIHRoZSBBRVMtR0NNIGRlY3J5cHRpb24gb3BlcmF0aW9uIHRocm91Z2ggd2hp
Y2ggd2UgZGVjcnlwdAorICAgICAgICB0aGUgZW5jcnlwdGVkIGtleSBkYXRhIGFuZCByZXRyaWV2
ZSB0aGUgZ2VuZXJhdGVkIHRhZyBkYXRhLiBXZSBjb21wYXJlIHRoZSBsYXR0ZXIKKyAgICAgICAg
YWdhaW5zdCB0aGUgdGFnIGRhdGEgdGhhdCB3YXMgZW1iZWRkZWQgaW4gdGhlIEFTTi4xIHN0cnVj
dHVyZSwgYW5kIGJhaWwgaWYgdGhlcmUKKyAgICAgICAgaXMgYSBtaXNtYXRjaC4gT3RoZXJ3aXNl
LCB3ZSBtb3ZlIHRoZSBkZWNyeXB0ZWQga2V5IGRhdGEgaW50byB0aGUgb3V0cHV0IHJlc3VsdAor
ICAgICAgICBWZWN0b3IgYW5kIHJlcG9ydCBhIHN1Y2Nlc3NmdWwgb3BlcmF0aW9uIHJlc3VsdC4K
KworICAgICAgICBObyBuZXcgdGVzdHMgLS0gcmVsYXRlZCB0ZXN0cyBhcmUgbm93IHBhc3Npbmcg
YW5kIGFyZSB1bnNraXBwZWQuCisKKyAgICAgICAgKiBjcnlwdG8vZ2NyeXB0L1NlcmlhbGl6ZWRD
cnlwdG9LZXlXcmFwR0NyeXB0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmdldERlZmF1bHRXZWJD
cnlwdG9NYXN0ZXJLZXkpOiBEcm9wIHRoZSBwYXJhbWV0ZXIgbmFtZSBhbmQgcmVtb3ZlCisgICAg
ICAgIHRoZSBVTlVTRURfUEFSQU0oKSBtYWNyby4KKyAgICAgICAgKFdlYkNvcmU6OndyYXBTZXJp
YWxpemVkQ3J5cHRvS2V5KToKKyAgICAgICAgKFdlYkNvcmU6OnVud3JhcFNlcmlhbGl6ZWRDcnlw
dG9LZXkpOgorCiAyMDE3LTA3LTE5ICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwu
Y29tPgogCiAgICAgICAgIFtXVEZdIEltcGxlbWVudCBXVEY6OlRocmVhZEdyb3VwCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvUEFML0No
YW5nZUxvZwppbmRleCA2M2JjNzgxZjliZmQ1ZjRjYzA4Y2I0NjUwZDAwMWEzZDI4MTljODBhLi44
YzIxMmFjM2JlM2JmZDMxNDg4ZmQ1ZjBjMmZmZjdmNjE3YTM3MjIwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxOSBAQAorMjAxNy0wNy0xOSAgWmFuIERvYmVyc2VrICA8emRvYmVyc2Vr
QGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dDcnlwdF0gS2V5IHNlcmlhbGl6YXRpb24gc3VwcG9y
dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTczODgz
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHRo
ZSBTZXJpYWxpemVkQ3J5cHRvS2V5V3JhcCBBU04uMSBzdHJ1Y3R1cmUgdG8gdGhlIFdlYkNyeXB0
by5hc24gZmlsZSBhbmQKKyAgICAgICAgdXBkYXRlIHRoZSBhc24xX3N0YXRpY19ub2RlIGFycmF5
IHRoYXQncyBwcm9kdWNlZCBmcm9tIHRoZSBXZWJDcnlwdG8uYXNuIGZpbGUKKyAgICAgICAgd2l0
aCB0aGUgYXNuMVBhcnNlciB0b29sLiBUaGlzIEFTTi4xIHN0cnVjdHVyZSBpcyB1c2VkIGludGVy
bmFsbHkgZm9yIHRoZSBuZWVkcworICAgICAgICBvZiBjcnlwdG8ga2V5IHNlcmlhbGl6YXRpb24u
CisKKyAgICAgICAgKiBwYWwvY3J5cHRvL3Rhc24xL1V0aWxpdGllcy5jcHA6CisgICAgICAgIChQ
QUw6OlRBU04xOjphc24xRGVmaW5pdGlvbnMpOgorICAgICAgICAqIHBhbC9jcnlwdG8vdGFzbjEv
V2ViQ3J5cHRvLmFzbjoKKwogMjAxNy0wNy0xOCAgQW5keSBFc3RlcyAgPGFlc3Rlc0BhcHBsZS5j
b20+CiAKICAgICAgICAgW1hjb2RlXSBFbmFibGUgQ0xBTkdfV0FSTl9SQU5HRV9MT09QX0FOQUxZ
U0lTCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NyeXB0by90YXNuMS9VdGls
aXRpZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jcnlwdG8vdGFzbjEvVXRpbGl0aWVz
LmNwcAppbmRleCBhYzhhZDhiZWY1ZmFjMWU3YmUzOWUyZWM1YmMzYWRkYTc2OGVmNzg3Li42OWEy
NDMxNGU2ODZlNTE0Y2Q2ZTQ5ZTY3ODM5NGYzNWJjNmRjZTM5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9QQUwvcGFsL2NyeXB0by90YXNuMS9VdGlsaXRpZXMuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1BBTC9wYWwvY3J5cHRvL3Rhc24xL1V0aWxpdGllcy5jcHAKQEAgLTg5LDEwICs4OSwx
MSBAQCBzdGF0aWMgYXNuMV9ub2RlIGFzbjFEZWZpbml0aW9ucygpCiAgICAgICAgIHsgIk90aGVy
UHJpbWVJbmZvcyIsIDE2MTI3MDk4OTksIG51bGxwdHIgfSwKICAgICAgICAgeyAiTUFYIiwgMTA3
NDI2NjEyMiwgIjEifSwKICAgICAgICAgeyBudWxscHRyLCAyLCAiT3RoZXJQcmltZUluZm8ifSwK
LSAgICAgICAgeyAiT3RoZXJQcmltZUluZm8iLCA1MzY4NzA5MTcsIG51bGxwdHIgfSwKKyAgICAg
ICAgeyAiT3RoZXJQcmltZUluZm8iLCAxNjEwNjEyNzQxLCBudWxscHRyIH0sCiAgICAgICAgIHsg
InByaW1lIiwgMTA3Mzc0MTgyNywgbnVsbHB0ciB9LAogICAgICAgICB7ICJleHBvbmVudCIsIDEw
NzM3NDE4MjcsIG51bGxwdHIgfSwKICAgICAgICAgeyAiY29lZmZpY2llbnQiLCAzLCBudWxscHRy
IH0sCisgICAgICAgIHsgIlNlcmlhbGl6ZWRDcnlwdG9LZXkiLCA3LCBudWxscHRyIH0sCiAgICAg
ICAgIHsgbnVsbHB0ciwgMCwgbnVsbHB0ciB9CiAgICAgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvUEFML3BhbC9jcnlwdG8vdGFzbjEvV2ViQ3J5cHRvLmFzbiBiL1NvdXJjZS9XZWJD
b3JlL1BBTC9wYWwvY3J5cHRvL3Rhc24xL1dlYkNyeXB0by5hc24KaW5kZXggYzgxM2I4OTY0MTI0
NzM1MzQ3MTc5NTFmZjY1YmI0ODNhOGMyODM3Ni4uMDBjMzU2MDY2ODE4ZGY4MTQ5MGFmYzgzYjBh
OTEwNzcxMzliODYzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jcnlwdG8v
dGFzbjEvV2ViQ3J5cHRvLmFzbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NyeXB0by90
YXNuMS9XZWJDcnlwdG8uYXNuCkBAIC04Nyw0ICs4Nyw4IEBAIE90aGVyUHJpbWVJbmZvIDo6PSBT
RVFVRU5DRSB7CiAgIGNvZWZmaWNpZW50IElOVEVHRVIgLS0gdGkKIH0KIAorLS0gVXNlZCBpbnRl
cm5hbGx5IGZvciBrZXkgc2VyaWFsaXphdGlvbi4KKworU2VyaWFsaXplZENyeXB0b0tleSA6Oj0g
T0NURVQgU1RSSU5HCisKIEVORApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2dj
cnlwdC9TZXJpYWxpemVkQ3J5cHRvS2V5V3JhcEdDcnlwdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9j
cnlwdG8vZ2NyeXB0L1NlcmlhbGl6ZWRDcnlwdG9LZXlXcmFwR0NyeXB0LmNwcAppbmRleCA5NDk5
ODlmOTRlMTI1OTMzMGQ5Mjc5OGQ1N2MyYjE4Yjg1N2YzMWZkLi5kMjA0NjBjZmYzZjY2ODRhZjY5
YjQwMjQxOGFmMmY5MTYwYWEwZjEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8v
Z2NyeXB0L1NlcmlhbGl6ZWRDcnlwdG9LZXlXcmFwR0NyeXB0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jcnlwdG8vZ2NyeXB0L1NlcmlhbGl6ZWRDcnlwdG9LZXlXcmFwR0NyeXB0LmNwcApAQCAt
MjksMzUgKzI5LDUwIEBACiAjaWYgRU5BQkxFKFNVQlRMRV9DUllQVE8pCiAKICNpbmNsdWRlICJO
b3RJbXBsZW1lbnRlZC5oIgorI2luY2x1ZGUgPHBhbC9jcnlwdG8vdGFzbjEvVXRpbGl0aWVzLmg+
CisjaW5jbHVkZSA8d3RmL0NyeXB0b2dyYXBoaWNVdGlsaXRpZXMuaD4KIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCi1ib29sIGdldERlZmF1bHRXZWJDcnlwdG9NYXN0ZXJLZXkoVmVjdG9yPHVpbnQ4
X3Q+JiBtYXN0ZXJLZXkpCitib29sIGdldERlZmF1bHRXZWJDcnlwdG9NYXN0ZXJLZXkoVmVjdG9y
PHVpbnQ4X3Q+JikKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIFVOVVNFRF9QQVJBTSht
YXN0ZXJLZXkpOwotCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCiBib29sIHdyYXBTZXJpYWxpemVk
Q3J5cHRvS2V5KGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgbWFzdGVyS2V5LCBjb25zdCBWZWN0b3I8
dWludDhfdD4mIGtleSwgVmVjdG9yPHVpbnQ4X3Q+JiByZXN1bHQpCiB7Ci0gICAgbm90SW1wbGVt
ZW50ZWQoKTsKICAgICBVTlVTRURfUEFSQU0obWFzdGVyS2V5KTsKLSAgICBVTlVTRURfUEFSQU0o
a2V5KTsKLSAgICBVTlVTRURfUEFSQU0ocmVzdWx0KTsKIAotICAgIHJldHVybiBmYWxzZTsKKyAg
ICBQQUw6OlRBU04xOjpTdHJ1Y3R1cmUgc2VyaWFsaXphdGlvbjsKKyAgICBpZiAoIVBBTDo6VEFT
TjE6OmNyZWF0ZVN0cnVjdHVyZSgiV2ViQ3J5cHRvLlNlcmlhbGl6ZWRDcnlwdG9LZXkiLCAmc2Vy
aWFsaXphdGlvbikpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmICghUEFMOjpUQVNO
MTo6d3JpdGVFbGVtZW50KHNlcmlhbGl6YXRpb24sICIiLCBrZXkuZGF0YSgpLCBrZXkuc2l6ZSgp
KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgYXV0byBkYXRhID0gUEFMOjpUQVNOMTo6
ZW5jb2RlZERhdGEoc2VyaWFsaXphdGlvbiwgIiIpOworICAgIGlmICghZGF0YSkKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworCisgICAgcmVzdWx0ID0gV1RGTW92ZShkYXRhLnZhbHVlKCkpOworICAg
IHJldHVybiB0cnVlOwogfQogCi1ib29sIHVud3JhcFNlcmlhbGl6ZWRDcnlwdG9LZXkoY29uc3Qg
VmVjdG9yPHVpbnQ4X3Q+JiBtYXN0ZXJLZXksIGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgd3JhcHBl
ZEtleSwgVmVjdG9yPHVpbnQ4X3Q+JiBrZXkpCitib29sIHVud3JhcFNlcmlhbGl6ZWRDcnlwdG9L
ZXkoY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBtYXN0ZXJLZXksIGNvbnN0IFZlY3Rvcjx1aW50OF90
PiYgc2VyaWFsaXplZERhdGEsIFZlY3Rvcjx1aW50OF90PiYga2V5KQogewotICAgIG5vdEltcGxl
bWVudGVkKCk7CiAgICAgVU5VU0VEX1BBUkFNKG1hc3RlcktleSk7Ci0gICAgVU5VU0VEX1BBUkFN
KHdyYXBwZWRLZXkpOwotICAgIFVOVVNFRF9QQVJBTShrZXkpOwogCi0gICAgcmV0dXJuIGZhbHNl
OworICAgIFBBTDo6VEFTTjE6OlN0cnVjdHVyZSBzZXJpYWxpemF0aW9uOworICAgIGlmICghUEFM
OjpUQVNOMTo6ZGVjb2RlU3RydWN0dXJlKCZzZXJpYWxpemF0aW9uLCAiV2ViQ3J5cHRvLlNlcmlh
bGl6ZWRDcnlwdG9LZXkiLCBzZXJpYWxpemVkRGF0YSkpCisgICAgICAgIHJldHVybiBmYWxzZTsK
KworICAgIGF1dG8gZGVzZXJpYWxpemVkS2V5ID0gUEFMOjpUQVNOMTo6ZWxlbWVudERhdGEoc2Vy
aWFsaXphdGlvbiwgIiIpOworICAgIGlmICghZGVzZXJpYWxpemVkS2V5KQorICAgICAgICByZXR1
cm4gZmFsc2U7CisKKyAgICBrZXkgPSBXVEZNb3ZlKGRlc2VyaWFsaXplZEtleS52YWx1ZSgpKTsK
KyAgICByZXR1cm4gdHJ1ZTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDhhNmE1NjBlOWYxNjc2OWJiYmVlNDZi
MzliMDI0ODIyNjlhZTgyNmUuLmQ4MzUzMTcwMjExZjQ4YWE2YzYwN2FmN2VkMzgxZWY5NGYyNDU3
ZjUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKQEAgLTEsNSArMSwxNSBAQAogMjAxNy0wNy0xOSAgWmFuIERvYmVyc2VrICA8emRv
YmVyc2VrQGlnYWxpYS5jb20+CiAKKyAgICAgICAgW0dDcnlwdF0gS2V5IHNlcmlhbGl6YXRpb24g
c3VwcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTczODgzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBwbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9uczogVW5za2lwIHRoZSB0ZXN0cyB0aGF0IHV0
aWxpemUga2V5IHNlcmlhbGl6YXRpb24KKyAgICAgICAgYW5kIGFyZSBub3cgcGFzc2luZy4KKwor
MjAxNy0wNy0xOSAgWmFuIERvYmVyc2VrICA8emRvYmVyc2VrQGlnYWxpYS5jb20+CisKICAgICAg
ICAgVW5yZXZpZXdlZCBXUEUgZ2FyZGVuaW5nLgogCiAgICAgICAgICogcGxhdGZvcm0vd3BlL1Rl
c3RFeHBlY3RhdGlvbnM6CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93cGUvVGVz
dEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dwZS9UZXN0RXhwZWN0YXRpb25z
CmluZGV4IDNjYzdlM2U4NGEwMzEwNjY4YzkzZjY3NjUxYmI1MWUxOTgyNjkxNjEuLmZhYzEwZWE5
ZTFhZGEzNzMwNDBjOTFiMjFjYTZkMThkZTY4N2Q1MzkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL3dwZS9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L3dwZS9UZXN0RXhwZWN0YXRpb25zCkBAIC00NDQsMjEgKzQ0NCw4IEBAIHdlYmtpdC5vcmcvYi8x
MzMxMjIgY3J5cHRvL3dvcmtlcnMvc3VidGxlL2Flcy1jZmItaW1wb3J0LWtleS1kZWNyeXB0Lmh0
bWwgWyBTa2lwCiB3ZWJraXQub3JnL2IvMTMzMTIyIGNyeXB0by93b3JrZXJzL3N1YnRsZS9hZXMt
Y2ZiLWltcG9ydC1rZXktZW5jcnlwdC5odG1sIFsgU2tpcCBdCiB3ZWJraXQub3JnL2IvMTMzMTIy
IGNyeXB0by93b3JrZXJzL3N1YnRsZS9hZXMtY2ZiLWltcG9ydC1rZXktdW53cmFwLWtleS5odG1s
IFsgU2tpcCBdCiB3ZWJraXQub3JnL2IvMTMzMTIyIGNyeXB0by93b3JrZXJzL3N1YnRsZS9hZXMt
Y2ZiLWltcG9ydC1rZXktd3JhcC1rZXkuaHRtbCBbIFNraXAgXQotd2Via2l0Lm9yZy9iLzEzMzEy
MiBjcnlwdG8vd29ya2Vycy9zdWJ0bGUvYWVzLXBvc3RNZXNzYWdlLXdvcmtlci5odG1sIFsgU2tp
cCBdCi13ZWJraXQub3JnL2IvMTMzMTIyIGNyeXB0by93b3JrZXJzL3N1YnRsZS9lYy1nZW5lcmF0
ZS1leHBvcnQtcGtjczgta2V5Lmh0bWwgWyBTa2lwIF0KLXdlYmtpdC5vcmcvYi8xMzMxMjIgY3J5
cHRvL3dvcmtlcnMvc3VidGxlL2VjLWdlbmVyYXRlLWV4cG9ydC1zcGtpLWtleS5odG1sIFsgU2tp
cCBdCiB3ZWJraXQub3JnL2IvMTMzMTIyIGNyeXB0by93b3JrZXJzL3N1YnRsZS9lYy1pbXBvcnQt
cGtjczgta2V5Lmh0bWwgWyBTa2lwIF0KLXdlYmtpdC5vcmcvYi8xMzMxMjIgY3J5cHRvL3dvcmtl
cnMvc3VidGxlL2VjLWltcG9ydC1zcGtpLWtleS5odG1sIFsgU2tpcCBdCiB3ZWJraXQub3JnL2Iv
MTMzMTIyIGNyeXB0by93b3JrZXJzL3N1YnRsZS9lYy1wb3N0TWVzc2FnZS13b3JrZXIuaHRtbCBb
IFNraXAgXQotd2Via2l0Lm9yZy9iLzEzMzEyMiBjcnlwdG8vd29ya2Vycy9zdWJ0bGUvaG1hYy1w
b3N0TWVzc2FnZS13b3JrZXIuaHRtbCBbIFNraXAgXQotd2Via2l0Lm9yZy9iLzEzMzEyMiBjcnlw
dG8vd29ya2Vycy9zdWJ0bGUvaHJzYS1wb3N0TWVzc2FnZS13b3JrZXIuaHRtbCBbIFNraXAgXQot
d2Via2l0Lm9yZy9iLzEzMzEyMiBjcnlwdG8vd29ya2Vycy9zdWJ0bGUvbXVsdGlwbGUtcG9zdE1l
c3NhZ2Utd29ya2VyLmh0bWwgWyBTa2lwIF0KLXdlYmtpdC5vcmcvYi8xMzMxMjIgY3J5cHRvL3dv
cmtlcnMvc3VidGxlL3Jhdy1wb3N0TWVzc2FnZS13b3JrZXIuaHRtbCBbIFNraXAgXQotd2Via2l0
Lm9yZy9iLzEzMzEyMiBjcnlwdG8vd29ya2Vycy9zdWJ0bGUvcnNhLWV4cG9ydC1wa2NzOC1rZXku
aHRtbCBbIFNraXAgXQotd2Via2l0Lm9yZy9iLzEzMzEyMiBjcnlwdG8vd29ya2Vycy9zdWJ0bGUv
cnNhLWV4cG9ydC1zcGtpLWtleS5odG1sIFsgU2tpcCBdCi13ZWJraXQub3JnL2IvMTMzMTIyIGNy
eXB0by93b3JrZXJzL3N1YnRsZS9yc2EtaW1wb3J0LXBrY3M4LWtleS5odG1sIFsgU2tpcCBdCi13
ZWJraXQub3JnL2IvMTMzMTIyIGNyeXB0by93b3JrZXJzL3N1YnRsZS9yc2EtaW1wb3J0LXNwa2kt
a2V5Lmh0bWwgWyBTa2lwIF0KLXdlYmtpdC5vcmcvYi8xMzMxMjIgY3J5cHRvL3dvcmtlcnMvc3Vi
dGxlL3JzYS1wb3N0TWVzc2FnZS13b3JrZXIuaHRtbCBbIFNraXAgXQogCiBpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL1dlYkNyeXB0b0FQSSBbIFBhc3MgU2xvdyBdCiB3ZWJraXQub3Jn
L2IvMTMzMTIyIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvV2ViQ3J5cHRvQVBJL2Vu
Y3J5cHRfZGVjcnlwdC9yc2Eud29ya2VyLmh0bWwgWyBGYWlsdXJlIF0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>315940</attachid>
            <date>2017-07-19 11:17:24 -0700</date>
            <delta_ts>2017-07-26 04:27:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-173883-20170719201722.patch</filename>
            <type>text/plain</type>
            <size>9106</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE5NjU1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGFmOTFkOTU2MmNjOGRj
NzgwYzRkZDBlNzA2MDYwZTQ0YmZlNDMxYi4uODIyNTA5M2U2YjE3NjFiZDVhM2E3ZDhhN2E4ZTVi
ODVkNTY2Y2EzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDE3LTA3LTE5ICBaYW4g
RG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KKworICAgICAgICBbR0NyeXB0XSBLZXkg
c2VyaWFsaXphdGlvbiBzdXBwb3J0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNzM4ODMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBJbXBsZW1lbnQgY3J5cHRvIGtleSBzZXJpYWxpemF0aW9uIGZvciBwbGF0
Zm9ybXMgdGhhdCB1c2UgbGliZ2NyeXB0LgorCisgICAgICAgIERlc3BpdGUgdGhlIGZ1bmN0aW9u
IG5hbWVzIGFuZCB0aGUgZXhpc3RpbmcgaW1wbGVtZW50YXRpb24gZm9yIHRoZSBNYWMgcG9ydCwK
KyAgICAgICAgd2UgZG9uJ3QgcGVyZm9ybSB0aGUgS0VLIHdyYXBwaW5nIGFuZCB1bndyYXBwaW5n
IGR1ZSB0byB0aGUgcmV2aWV3IGZlZWRiYWNrCisgICAgICAgIGFkdmlzaW5nIGFnYWluc3QgaXQu
CisKKyAgICAgICAgSW5zdGVhZCBvZiB3cmFwcGluZywgdGhlIGtleSBkYXRhIGlzIHNpbXBseSBl
bmNvZGVkIGludG8gYSBgU2VyaWFsaXplZENyeXB0b0tleWAKKyAgICAgICAgQVNOLjEgc3RydWN0
dXJlIHRoYXQgYmFzaWNhbGx5IGFsaWFzZXMgdGhlIEFTTi4xIG9jdGV0IHN0cmluZy4gRm9yIHVu
d3JhcHBpbmcsCisgICAgICAgIHRoZSBwcm92aWRlZCBzZXJpYWxpemVkIGRhdGEgaXMgZGVjb2Rl
ZCBhZ2FpbnN0IHRoZSBzYW1lIGBTZXJpYWxpemVkQ3J5cHRvS2V5YAorICAgICAgICBBU04uMSBz
dHJ1Y3R1cmUgYW5kIHN0b3JlZCBpbiB0aGUgcHJvdmlkZWQgb3V0d2FyZCBwYXJhbWV0ZXIuCisK
KyAgICAgICAgTm8gbmV3IHRlc3RzIC0tIHJlbGF0ZWQgdGVzdHMgYXJlIG5vdyBwYXNzaW5nIGFu
ZCBhcmUgdW5za2lwcGVkLgorCisgICAgICAgICogY3J5cHRvL2djcnlwdC9TZXJpYWxpemVkQ3J5
cHRvS2V5V3JhcEdDcnlwdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpnZXREZWZhdWx0V2ViQ3J5
cHRvTWFzdGVyS2V5KToKKyAgICAgICAgKFdlYkNvcmU6OndyYXBTZXJpYWxpemVkQ3J5cHRvS2V5
KToKKyAgICAgICAgKFdlYkNvcmU6OnVud3JhcFNlcmlhbGl6ZWRDcnlwdG9LZXkpOgorCiAyMDE3
LTA3LTE5ICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgogCiAgICAgICAg
IFtXVEZdIEltcGxlbWVudCBXVEY6OlRocmVhZEdyb3VwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9QQUwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwppbmRleCA2
M2JjNzgxZjliZmQ1ZjRjYzA4Y2I0NjUwZDAwMWEzZDI4MTljODBhLi4zZjY1NTg1MzBiZDc1YmQ3
N2M3ZWM5NzEwNjEwYWEwN2Q2NzZhYmQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwy
MCBAQAorMjAxNy0wNy0xOSAgWmFuIERvYmVyc2VrICA8emRvYmVyc2VrQGlnYWxpYS5jb20+CisK
KyAgICAgICAgW0dDcnlwdF0gS2V5IHNlcmlhbGl6YXRpb24gc3VwcG9ydAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTczODgzCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHRoZSBTZXJpYWxpemVkQ3J5
cHRvS2V5IEFTTi4xIHN0cnVjdHVyZSB0byB0aGUgV2ViQ3J5cHRvLmFzbiBmaWxlIGFuZAorICAg
ICAgICB1cGRhdGUgdGhlIGFzbjFfc3RhdGljX25vZGUgYXJyYXkgdGhhdCdzIHByb2R1Y2VkIGZy
b20gdGhlIFdlYkNyeXB0by5hc24KKyAgICAgICAgZmlsZSB3aXRoIHRoZSBhc24xUGFyc2VyIHRv
b2wuIFRoaXMgQVNOLjEgc3RydWN0dXJlIGlzIHVzZWQgaW50ZXJuYWxseSBmb3IKKyAgICAgICAg
dGhlIG5lZWRzIG9mIGNyeXB0byBrZXkgc2VyaWFsaXphdGlvbi4gSXQncyBlc3NlbnRpYWxseSBh
biBhbGlhcyBvZiB0aGUKKyAgICAgICAgb2N0ZXQgc3RyaW5nIEFTTi4xIHR5cGUuCisKKyAgICAg
ICAgKiBwYWwvY3J5cHRvL3Rhc24xL1V0aWxpdGllcy5jcHA6CisgICAgICAgIChQQUw6OlRBU04x
Ojphc24xRGVmaW5pdGlvbnMpOgorICAgICAgICAqIHBhbC9jcnlwdG8vdGFzbjEvV2ViQ3J5cHRv
LmFzbjoKKwogMjAxNy0wNy0xOCAgQW5keSBFc3RlcyAgPGFlc3Rlc0BhcHBsZS5jb20+CiAKICAg
ICAgICAgW1hjb2RlXSBFbmFibGUgQ0xBTkdfV0FSTl9SQU5HRV9MT09QX0FOQUxZU0lTCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NyeXB0by90YXNuMS9VdGlsaXRpZXMuY3Bw
IGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jcnlwdG8vdGFzbjEvVXRpbGl0aWVzLmNwcAppbmRl
eCBhYzhhZDhiZWY1ZmFjMWU3YmUzOWUyZWM1YmMzYWRkYTc2OGVmNzg3Li42OWEyNDMxNGU2ODZl
NTE0Y2Q2ZTQ5ZTY3ODM5NGYzNWJjNmRjZTM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Q
QUwvcGFsL2NyeXB0by90YXNuMS9VdGlsaXRpZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BB
TC9wYWwvY3J5cHRvL3Rhc24xL1V0aWxpdGllcy5jcHAKQEAgLTg5LDEwICs4OSwxMSBAQCBzdGF0
aWMgYXNuMV9ub2RlIGFzbjFEZWZpbml0aW9ucygpCiAgICAgICAgIHsgIk90aGVyUHJpbWVJbmZv
cyIsIDE2MTI3MDk4OTksIG51bGxwdHIgfSwKICAgICAgICAgeyAiTUFYIiwgMTA3NDI2NjEyMiwg
IjEifSwKICAgICAgICAgeyBudWxscHRyLCAyLCAiT3RoZXJQcmltZUluZm8ifSwKLSAgICAgICAg
eyAiT3RoZXJQcmltZUluZm8iLCA1MzY4NzA5MTcsIG51bGxwdHIgfSwKKyAgICAgICAgeyAiT3Ro
ZXJQcmltZUluZm8iLCAxNjEwNjEyNzQxLCBudWxscHRyIH0sCiAgICAgICAgIHsgInByaW1lIiwg
MTA3Mzc0MTgyNywgbnVsbHB0ciB9LAogICAgICAgICB7ICJleHBvbmVudCIsIDEwNzM3NDE4Mjcs
IG51bGxwdHIgfSwKICAgICAgICAgeyAiY29lZmZpY2llbnQiLCAzLCBudWxscHRyIH0sCisgICAg
ICAgIHsgIlNlcmlhbGl6ZWRDcnlwdG9LZXkiLCA3LCBudWxscHRyIH0sCiAgICAgICAgIHsgbnVs
bHB0ciwgMCwgbnVsbHB0ciB9CiAgICAgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
UEFML3BhbC9jcnlwdG8vdGFzbjEvV2ViQ3J5cHRvLmFzbiBiL1NvdXJjZS9XZWJDb3JlL1BBTC9w
YWwvY3J5cHRvL3Rhc24xL1dlYkNyeXB0by5hc24KaW5kZXggYzgxM2I4OTY0MTI0NzM1MzQ3MTc5
NTFmZjY1YmI0ODNhOGMyODM3Ni4uMDBjMzU2MDY2ODE4ZGY4MTQ5MGFmYzgzYjBhOTEwNzcxMzli
ODYzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jcnlwdG8vdGFzbjEvV2Vi
Q3J5cHRvLmFzbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NyeXB0by90YXNuMS9XZWJD
cnlwdG8uYXNuCkBAIC04Nyw0ICs4Nyw4IEBAIE90aGVyUHJpbWVJbmZvIDo6PSBTRVFVRU5DRSB7
CiAgIGNvZWZmaWNpZW50IElOVEVHRVIgLS0gdGkKIH0KIAorLS0gVXNlZCBpbnRlcm5hbGx5IGZv
ciBrZXkgc2VyaWFsaXphdGlvbi4KKworU2VyaWFsaXplZENyeXB0b0tleSA6Oj0gT0NURVQgU1RS
SU5HCisKIEVORApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2djcnlwdC9TZXJp
YWxpemVkQ3J5cHRvS2V5V3JhcEdDcnlwdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vZ2Ny
eXB0L1NlcmlhbGl6ZWRDcnlwdG9LZXlXcmFwR0NyeXB0LmNwcAppbmRleCA5NDk5ODlmOTRlMTI1
OTMzMGQ5Mjc5OGQ1N2MyYjE4Yjg1N2YzMWZkLi41NjFjNzQzNDIwNDNlZDU1MWM0NmE5NWQ5NWQ0
NDVhYjkzYjRmMGE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vZ2NyeXB0L1Nl
cmlhbGl6ZWRDcnlwdG9LZXlXcmFwR0NyeXB0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlw
dG8vZ2NyeXB0L1NlcmlhbGl6ZWRDcnlwdG9LZXlXcmFwR0NyeXB0LmNwcApAQCAtMjksNiArMjks
NyBAQAogI2lmIEVOQUJMRShTVUJUTEVfQ1JZUFRPKQogCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50
ZWQuaCIKKyNpbmNsdWRlIDxwYWwvY3J5cHRvL3Rhc24xL1V0aWxpdGllcy5oPgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKQEAgLTQyLDIyICs0Myw0NCBAQCBib29sIGdldERlZmF1bHRXZWJDcnlw
dG9NYXN0ZXJLZXkoVmVjdG9yPHVpbnQ4X3Q+JiBtYXN0ZXJLZXkpCiAKIGJvb2wgd3JhcFNlcmlh
bGl6ZWRDcnlwdG9LZXkoY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBtYXN0ZXJLZXksIGNvbnN0IFZl
Y3Rvcjx1aW50OF90PiYga2V5LCBWZWN0b3I8dWludDhfdD4mIHJlc3VsdCkKIHsKLSAgICBub3RJ
bXBsZW1lbnRlZCgpOwogICAgIFVOVVNFRF9QQVJBTShtYXN0ZXJLZXkpOwotICAgIFVOVVNFRF9Q
QVJBTShrZXkpOwotICAgIFVOVVNFRF9QQVJBTShyZXN1bHQpOwogCi0gICAgcmV0dXJuIGZhbHNl
OworICAgIC8vIENyZWF0ZSB0aGUgYFNlcmlhbGl6ZWRDcnlwdG9LZXlgIEFTTi4xIHN0cnVjdHVy
ZS4KKyAgICBQQUw6OlRBU04xOjpTdHJ1Y3R1cmUgc2VyaWFsaXphdGlvbjsKKyAgICBpZiAoIVBB
TDo6VEFTTjE6OmNyZWF0ZVN0cnVjdHVyZSgiV2ViQ3J5cHRvLlNlcmlhbGl6ZWRDcnlwdG9LZXki
LCAmc2VyaWFsaXphdGlvbikpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIC8vIFdyaXRl
IHRoZSBrZXkgZGF0YSBpbnRvIHRoZSByb290IGBTZXJpYWxpemVkQ3J5cHRvS2V5YCBzdHJ1Y3R1
cmUgKGkuZS4gYW4gQVNOLjEgb2N0ZXQgc3RyaW5nKS4KKyAgICBpZiAoIVBBTDo6VEFTTjE6Ondy
aXRlRWxlbWVudChzZXJpYWxpemF0aW9uLCAiIiwga2V5LmRhdGEoKSwga2V5LnNpemUoKSkpCisg
ICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIC8vIFJldHJpZXZlIHRoZSBlbmNvZGVkIGRhdGEu
CisgICAgYXV0byBkYXRhID0gUEFMOjpUQVNOMTo6ZW5jb2RlZERhdGEoc2VyaWFsaXphdGlvbiwg
IiIpOworICAgIGlmICghZGF0YSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgLy8gTW92
ZSB0aGUgcmV0cmlldmVkIGRhdGEgaW50byB0aGUgYHJlc3VsdGAgcGFyYW1ldGVyIGFuZCBzaWdu
YWwgYSBzdWNjZXNzZnVsIG9wZXJhdGlvbi4KKyAgICByZXN1bHQgPSBXVEZNb3ZlKGRhdGEudmFs
dWUoKSk7CisgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgdW53cmFwU2VyaWFsaXplZENyeXB0
b0tleShjb25zdCBWZWN0b3I8dWludDhfdD4mIG1hc3RlcktleSwgY29uc3QgVmVjdG9yPHVpbnQ4
X3Q+JiB3cmFwcGVkS2V5LCBWZWN0b3I8dWludDhfdD4mIGtleSkKK2Jvb2wgdW53cmFwU2VyaWFs
aXplZENyeXB0b0tleShjb25zdCBWZWN0b3I8dWludDhfdD4mIG1hc3RlcktleSwgY29uc3QgVmVj
dG9yPHVpbnQ4X3Q+JiBzZXJpYWxpemVkRGF0YSwgVmVjdG9yPHVpbnQ4X3Q+JiBrZXkpCiB7Ci0g
ICAgbm90SW1wbGVtZW50ZWQoKTsKICAgICBVTlVTRURfUEFSQU0obWFzdGVyS2V5KTsKLSAgICBV
TlVTRURfUEFSQU0od3JhcHBlZEtleSk7Ci0gICAgVU5VU0VEX1BBUkFNKGtleSk7CiAKLSAgICBy
ZXR1cm4gZmFsc2U7CisgICAgLy8gRGVjb2RlIHRoZSBzZXJpYWxpemVkIGRhdGEgYWdhaW5zdCB0
aGUgYFNlcmlhbGl6ZWRDcnlwdG9LZXlgIEFTTi4xIHN0cnVjdHVyZS4KKyAgICBQQUw6OlRBU04x
OjpTdHJ1Y3R1cmUgc2VyaWFsaXphdGlvbjsKKyAgICBpZiAoIVBBTDo6VEFTTjE6OmRlY29kZVN0
cnVjdHVyZSgmc2VyaWFsaXphdGlvbiwgIldlYkNyeXB0by5TZXJpYWxpemVkQ3J5cHRvS2V5Iiwg
c2VyaWFsaXplZERhdGEpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAvLyBSZXRyaWV2
ZSBkYXRhIG9mIHRoZSByb290IGVsZW1lbnQgaW4gdGhlIGBTZXJpYWxpemVkQ3J5cHRvS2V5YCBz
dHJ1Y3R1cmUuCisgICAgYXV0byBkZXNlcmlhbGl6ZWRLZXkgPSBQQUw6OlRBU04xOjplbGVtZW50
RGF0YShzZXJpYWxpemF0aW9uLCAiIik7CisgICAgaWYgKCFkZXNlcmlhbGl6ZWRLZXkpCisgICAg
ICAgIHJldHVybiBmYWxzZTsKKworICAgIC8vIE1vdmUgdGhlIHJldHJpZXZlZCBkYXRhIGludG8g
dGhlIGBrZXlgIHBhcmFtZXRlciBhbmQgc2lnbmFsIGEgc3VjY2Vzc2Z1bCBvcGVyYXRpb24uCisg
ICAga2V5ID0gV1RGTW92ZShkZXNlcmlhbGl6ZWRLZXkudmFsdWUoKSk7CisgICAgcmV0dXJuIHRy
dWU7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwppbmRleCA4YTZhNTYwZTlmMTY3NjliYmJlZTQ2YjM5YjAyNDgyMjY5YWU4
MjZlLi4zYWFiZGUxYjViZmJlMTNlNDU4MTdlZmQzMmQ5ZjFkYTU1YmFlODQwIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0x
LDUgKzEsMTUgQEAKIDIwMTctMDctMTkgIFphbiBEb2JlcnNlayAgPHpkb2JlcnNla0BpZ2FsaWEu
Y29tPgogCisgICAgICAgIFtHQ3J5cHRdIEtleSBzZXJpYWxpemF0aW9uIHN1cHBvcnQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3Mzg4MworCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcGxhdGZvcm0vd3Bl
L1Rlc3RFeHBlY3RhdGlvbnM6IFVuc2tpcCB0aGUgY3J5cHRvL3dvcmtlci8gdGVzdHMgdGhhdAor
ICAgICAgICB1dGlsaXplIGtleSBzZXJpYWxpemF0aW9uIGFuZCBhcmUgbm93IHBhc3NpbmcuCisK
KzIwMTctMDctMTkgIFphbiBEb2JlcnNlayAgPHpkb2JlcnNla0BpZ2FsaWEuY29tPgorCiAgICAg
ICAgIFVucmV2aWV3ZWQgV1BFIGdhcmRlbmluZy4KIAogICAgICAgICAqIHBsYXRmb3JtL3dwZS9U
ZXN0RXhwZWN0YXRpb25zOgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd3BlL1Rl
c3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93cGUvVGVzdEV4cGVjdGF0aW9u
cwppbmRleCAzY2M3ZTNlODRhMDMxMDY2OGM5M2Y2NzY1MWJiNTFlMTk4MjY5MTYxLi5mYWMxMGVh
OWUxYWRhMzczMDQwYzkxYjIxY2E2ZDE4ZGU2ODdkNTM5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS93cGUvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS93cGUvVGVzdEV4cGVjdGF0aW9ucwpAQCAtNDQ0LDIxICs0NDQsOCBAQCB3ZWJraXQub3JnL2Iv
MTMzMTIyIGNyeXB0by93b3JrZXJzL3N1YnRsZS9hZXMtY2ZiLWltcG9ydC1rZXktZGVjcnlwdC5o
dG1sIFsgU2tpcAogd2Via2l0Lm9yZy9iLzEzMzEyMiBjcnlwdG8vd29ya2Vycy9zdWJ0bGUvYWVz
LWNmYi1pbXBvcnQta2V5LWVuY3J5cHQuaHRtbCBbIFNraXAgXQogd2Via2l0Lm9yZy9iLzEzMzEy
MiBjcnlwdG8vd29ya2Vycy9zdWJ0bGUvYWVzLWNmYi1pbXBvcnQta2V5LXVud3JhcC1rZXkuaHRt
bCBbIFNraXAgXQogd2Via2l0Lm9yZy9iLzEzMzEyMiBjcnlwdG8vd29ya2Vycy9zdWJ0bGUvYWVz
LWNmYi1pbXBvcnQta2V5LXdyYXAta2V5Lmh0bWwgWyBTa2lwIF0KLXdlYmtpdC5vcmcvYi8xMzMx
MjIgY3J5cHRvL3dvcmtlcnMvc3VidGxlL2Flcy1wb3N0TWVzc2FnZS13b3JrZXIuaHRtbCBbIFNr
aXAgXQotd2Via2l0Lm9yZy9iLzEzMzEyMiBjcnlwdG8vd29ya2Vycy9zdWJ0bGUvZWMtZ2VuZXJh
dGUtZXhwb3J0LXBrY3M4LWtleS5odG1sIFsgU2tpcCBdCi13ZWJraXQub3JnL2IvMTMzMTIyIGNy
eXB0by93b3JrZXJzL3N1YnRsZS9lYy1nZW5lcmF0ZS1leHBvcnQtc3BraS1rZXkuaHRtbCBbIFNr
aXAgXQogd2Via2l0Lm9yZy9iLzEzMzEyMiBjcnlwdG8vd29ya2Vycy9zdWJ0bGUvZWMtaW1wb3J0
LXBrY3M4LWtleS5odG1sIFsgU2tpcCBdCi13ZWJraXQub3JnL2IvMTMzMTIyIGNyeXB0by93b3Jr
ZXJzL3N1YnRsZS9lYy1pbXBvcnQtc3BraS1rZXkuaHRtbCBbIFNraXAgXQogd2Via2l0Lm9yZy9i
LzEzMzEyMiBjcnlwdG8vd29ya2Vycy9zdWJ0bGUvZWMtcG9zdE1lc3NhZ2Utd29ya2VyLmh0bWwg
WyBTa2lwIF0KLXdlYmtpdC5vcmcvYi8xMzMxMjIgY3J5cHRvL3dvcmtlcnMvc3VidGxlL2htYWMt
cG9zdE1lc3NhZ2Utd29ya2VyLmh0bWwgWyBTa2lwIF0KLXdlYmtpdC5vcmcvYi8xMzMxMjIgY3J5
cHRvL3dvcmtlcnMvc3VidGxlL2hyc2EtcG9zdE1lc3NhZ2Utd29ya2VyLmh0bWwgWyBTa2lwIF0K
LXdlYmtpdC5vcmcvYi8xMzMxMjIgY3J5cHRvL3dvcmtlcnMvc3VidGxlL211bHRpcGxlLXBvc3RN
ZXNzYWdlLXdvcmtlci5odG1sIFsgU2tpcCBdCi13ZWJraXQub3JnL2IvMTMzMTIyIGNyeXB0by93
b3JrZXJzL3N1YnRsZS9yYXctcG9zdE1lc3NhZ2Utd29ya2VyLmh0bWwgWyBTa2lwIF0KLXdlYmtp
dC5vcmcvYi8xMzMxMjIgY3J5cHRvL3dvcmtlcnMvc3VidGxlL3JzYS1leHBvcnQtcGtjczgta2V5
Lmh0bWwgWyBTa2lwIF0KLXdlYmtpdC5vcmcvYi8xMzMxMjIgY3J5cHRvL3dvcmtlcnMvc3VidGxl
L3JzYS1leHBvcnQtc3BraS1rZXkuaHRtbCBbIFNraXAgXQotd2Via2l0Lm9yZy9iLzEzMzEyMiBj
cnlwdG8vd29ya2Vycy9zdWJ0bGUvcnNhLWltcG9ydC1wa2NzOC1rZXkuaHRtbCBbIFNraXAgXQot
d2Via2l0Lm9yZy9iLzEzMzEyMiBjcnlwdG8vd29ya2Vycy9zdWJ0bGUvcnNhLWltcG9ydC1zcGtp
LWtleS5odG1sIFsgU2tpcCBdCi13ZWJraXQub3JnL2IvMTMzMTIyIGNyeXB0by93b3JrZXJzL3N1
YnRsZS9yc2EtcG9zdE1lc3NhZ2Utd29ya2VyLmh0bWwgWyBTa2lwIF0KIAogaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9XZWJDcnlwdG9BUEkgWyBQYXNzIFNsb3cgXQogd2Via2l0Lm9y
Zy9iLzEzMzEyMiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1dlYkNyeXB0b0FQSS9l
bmNyeXB0X2RlY3J5cHQvcnNhLndvcmtlci5odG1sIFsgRmFpbHVyZSBdCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>316444</attachid>
            <date>2017-07-26 04:27:13 -0700</date>
            <delta_ts>2017-07-27 01:13:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-173883-20170726132712.patch</filename>
            <type>text/plain</type>
            <size>5717</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE5OTExCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGQyODQ5YTNkMGRiMGQ3
MzhmZGZmNTBjMTI5ODE2NDExMzQyMzNiNC4uNzMxNTdhMmM0ZGZjODYyZTk1ZmY5ZGQwMGI3Y2I0
ZmNlYTE1YTM0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDI5IEBACiAyMDE3LTA3LTI2ICBaYW4g
RG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KIAorICAgICAgICBbR0NyeXB0XSBLZXkg
c2VyaWFsaXphdGlvbiBzdXBwb3J0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNzM4ODMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBJbXBsZW1lbnQgY3J5cHRvIGtleSBzZXJpYWxpemF0aW9uIGZvciBwbGF0
Zm9ybXMgdGhhdCB1c2UgbGliZ2NyeXB0LgorCisgICAgICAgIERlc3BpdGUgdGhlIGZ1bmN0aW9u
IG5hbWVzIGFuZCB0aGUgZXhpc3RpbmcgaW1wbGVtZW50YXRpb24gZm9yIHRoZSBNYWMgcG9ydCwK
KyAgICAgICAgd2UgZG9uJ3QgcGVyZm9ybSB0aGUgS0VLIHdyYXBwaW5nIGFuZCB1bndyYXBwaW5n
IGR1ZSB0byB0aGUgcmV2aWV3IGZlZWRiYWNrCisgICAgICAgIGFkdmlzaW5nIGFnYWluc3QgaXQu
CisKKyAgICAgICAgSW5zdGVhZCB0aGUgcGFzc2VkLWluIGtleSBkYXRhIGlzIHNpbXBseSBjb3Bp
ZWQgYW5kIHJldHVybmVkIGFzIHRoZSByZXN1bHQgb2YKKyAgICAgICAgdGhlICd3cmFwcGluZycg
b3BlcmF0aW9uLCBhbmQgc2ltaWxhcmx5IHRoZSBwYXNzZWQtaW4gc2VyaWFsaXplZCBkYXRhIGlz
IHNpbXBseQorICAgICAgICBjb3BpZWQgYW5kIHJldHVybmVkIGFzIHRoZSByZXN1bHQgb2YgdGhl
ICd1bndyYXBwaW5nJyBvcGVyYXRpb24uCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIC0tIHJlbGF0
ZWQgdGVzdHMgYXJlIG5vdyBwYXNzaW5nIGFuZCBhcmUgdW5za2lwcGVkLgorCisgICAgICAgICog
Y3J5cHRvL2djcnlwdC9TZXJpYWxpemVkQ3J5cHRvS2V5V3JhcEdDcnlwdC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpnZXREZWZhdWx0V2ViQ3J5cHRvTWFzdGVyS2V5KToKKyAgICAgICAgKFdlYkNv
cmU6OndyYXBTZXJpYWxpemVkQ3J5cHRvS2V5KToKKyAgICAgICAgKFdlYkNvcmU6OnVud3JhcFNl
cmlhbGl6ZWRDcnlwdG9LZXkpOgorCisyMDE3LTA3LTI2ICBaYW4gRG9iZXJzZWsgIDx6ZG9iZXJz
ZWtAaWdhbGlhLmNvbT4KKwogICAgICAgICBbV1BFXSBXZWJHTDIgc3VwcG9ydAogICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc0MjQ5CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9nY3J5cHQvU2VyaWFsaXplZENyeXB0b0tleVdyYXBH
Q3J5cHQuY3BwIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2djcnlwdC9TZXJpYWxpemVkQ3J5cHRv
S2V5V3JhcEdDcnlwdC5jcHAKaW5kZXggOTQ5OTg5Zjk0ZTEyNTkzMzBkOTI3OThkNTdjMmIxOGI4
NTdmMzFmZC4uZjg5NTAyY2U3NDBiNjI5ZDEyODAyNTMzYzY4MTgzNDk2MTQ3NGIwYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2djcnlwdC9TZXJpYWxpemVkQ3J5cHRvS2V5V3Jh
cEdDcnlwdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2djcnlwdC9TZXJpYWxpemVk
Q3J5cHRvS2V5V3JhcEdDcnlwdC5jcHAKQEAgLTQwLDI0ICs0MCwyNyBAQCBib29sIGdldERlZmF1
bHRXZWJDcnlwdG9NYXN0ZXJLZXkoVmVjdG9yPHVpbnQ4X3Q+JiBtYXN0ZXJLZXkpCiAgICAgcmV0
dXJuIGZhbHNlOwogfQogCisvLyBJbml0aWFsbHkgdGhlc2UgaGVscGVyIGZ1bmN0aW9ucyB3ZXJl
IGludGVuZGVkIHRvIHBlcmZvcm0gS0VLIHdyYXBwaW5nIGFuZCB1bndyYXBwaW5nLAorLy8gYnV0
IHRoaXMgaXMgbm90IHJlcXVpcmVkIGFueW1vcmUsIGRlc3BpdGUgdGhlIGZ1bmN0aW9uIG5hbWVz
IGFuZCB0aGUgTWFjIGltcGxlbWVudGF0aW9uCisvLyBzdGlsbCBpbmRpY2F0aW5nIG90aGVyd2lz
ZS4KKy8vIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTczODgz
IGZvciBtb3JlIGluZm8uCisKIGJvb2wgd3JhcFNlcmlhbGl6ZWRDcnlwdG9LZXkoY29uc3QgVmVj
dG9yPHVpbnQ4X3Q+JiBtYXN0ZXJLZXksIGNvbnN0IFZlY3Rvcjx1aW50OF90PiYga2V5LCBWZWN0
b3I8dWludDhfdD4mIHJlc3VsdCkKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwogICAgIFVOVVNF
RF9QQVJBTShtYXN0ZXJLZXkpOwotICAgIFVOVVNFRF9QQVJBTShrZXkpOwotICAgIFVOVVNFRF9Q
QVJBTShyZXN1bHQpOwogCi0gICAgcmV0dXJuIGZhbHNlOworICAgIC8vIE5vIHdyYXBwaW5nIHBl
cmZvcm1lZCAtLSB0aGUgc2VyaWFsaXplZCBrZXkgZGF0YSBpcyBjb3BpZWQgaW50byB0aGUgYHJl
c3VsdGAgdmFyaWFibGUuCisgICAgcmVzdWx0ID0gVmVjdG9yPHVpbnQ4X3Q+KGtleSk7CisgICAg
cmV0dXJuIHRydWU7CiB9CiAKIGJvb2wgdW53cmFwU2VyaWFsaXplZENyeXB0b0tleShjb25zdCBW
ZWN0b3I8dWludDhfdD4mIG1hc3RlcktleSwgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiB3cmFwcGVk
S2V5LCBWZWN0b3I8dWludDhfdD4mIGtleSkKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwogICAg
IFVOVVNFRF9QQVJBTShtYXN0ZXJLZXkpOwotICAgIFVOVVNFRF9QQVJBTSh3cmFwcGVkS2V5KTsK
LSAgICBVTlVTRURfUEFSQU0oa2V5KTsKIAotICAgIHJldHVybiBmYWxzZTsKKyAgICAvLyBObyB1
bndyYXBwaW5nIHBlcmZvcm1lZCAtLSB0aGUgc2VyaWFsaXplZCBrZXkgZGF0YSBpcyBjb3BpZWQg
aW50byB0aGUgYGtleWAgdmFyaWFibGUuCisgICAga2V5ID0gVmVjdG9yPHVpbnQ4X3Q+KHdyYXBw
ZWRLZXkpOworICAgIHJldHVybiB0cnVlOwogfQogCiB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZmNlODdiOGE2MmEwM2I3
MzczZjVjNzM4ZjI4MGY3ZjUyZjAwY2I0Yi4uNTNiNGZmMjg3NmI2Mjk3ZGE3MzkyYjAwMzUyOWUw
YzNlYzI1NjJiOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDE1IEBACiAyMDE3LTA3LTI2ICBaYW4gRG9iZXJz
ZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KIAorICAgICAgICBbR0NyeXB0XSBLZXkgc2VyaWFs
aXphdGlvbiBzdXBwb3J0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNzM4ODMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIHBsYXRmb3JtL3dwZS9UZXN0RXhwZWN0YXRpb25zOiBVbnNraXAgdGhlIGNyeXB0
by93b3JrZXIvIHRlc3RzIHRoYXQKKyAgICAgICAgdXRpbGl6ZSBrZXkgc2VyaWFsaXphdGlvbiBh
bmQgYXJlIG5vdyBwYXNzaW5nLgorCisyMDE3LTA3LTI2ICBaYW4gRG9iZXJzZWsgIDx6ZG9iZXJz
ZWtAaWdhbGlhLmNvbT4KKwogICAgICAgICBbV1BFXSBXZWJHTDIgc3VwcG9ydAogICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc0MjQ5CiAKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dwZS9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vd3BlL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggZmUwOWIzYjdjMzYzYWY4ZjVj
NzlhMmU2ZGU5ZDA5ZTllMmQ5ZTQ0ZS4uOTg1MmZjMGFiZTU3NjliN2M2ZjliOTkwZmFkMWJjM2Rl
N2JkNGYyZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd3BlL1Rlc3RFeHBlY3Rh
dGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd3BlL1Rlc3RFeHBlY3RhdGlvbnMKQEAg
LTQzOSwyMSArNDM5LDggQEAgd2Via2l0Lm9yZy9iLzEzMzEyMiBjcnlwdG8vd29ya2Vycy9zdWJ0
bGUvYWVzLWNmYi1pbXBvcnQta2V5LWRlY3J5cHQuaHRtbCBbIFNraXAKIHdlYmtpdC5vcmcvYi8x
MzMxMjIgY3J5cHRvL3dvcmtlcnMvc3VidGxlL2Flcy1jZmItaW1wb3J0LWtleS1lbmNyeXB0Lmh0
bWwgWyBTa2lwIF0KIHdlYmtpdC5vcmcvYi8xMzMxMjIgY3J5cHRvL3dvcmtlcnMvc3VidGxlL2Fl
cy1jZmItaW1wb3J0LWtleS11bndyYXAta2V5Lmh0bWwgWyBTa2lwIF0KIHdlYmtpdC5vcmcvYi8x
MzMxMjIgY3J5cHRvL3dvcmtlcnMvc3VidGxlL2Flcy1jZmItaW1wb3J0LWtleS13cmFwLWtleS5o
dG1sIFsgU2tpcCBdCi13ZWJraXQub3JnL2IvMTMzMTIyIGNyeXB0by93b3JrZXJzL3N1YnRsZS9h
ZXMtcG9zdE1lc3NhZ2Utd29ya2VyLmh0bWwgWyBTa2lwIF0KLXdlYmtpdC5vcmcvYi8xMzMxMjIg
Y3J5cHRvL3dvcmtlcnMvc3VidGxlL2VjLWdlbmVyYXRlLWV4cG9ydC1wa2NzOC1rZXkuaHRtbCBb
IFNraXAgXQotd2Via2l0Lm9yZy9iLzEzMzEyMiBjcnlwdG8vd29ya2Vycy9zdWJ0bGUvZWMtZ2Vu
ZXJhdGUtZXhwb3J0LXNwa2kta2V5Lmh0bWwgWyBTa2lwIF0KIHdlYmtpdC5vcmcvYi8xMzMxMjIg
Y3J5cHRvL3dvcmtlcnMvc3VidGxlL2VjLWltcG9ydC1wa2NzOC1rZXkuaHRtbCBbIFNraXAgXQot
d2Via2l0Lm9yZy9iLzEzMzEyMiBjcnlwdG8vd29ya2Vycy9zdWJ0bGUvZWMtaW1wb3J0LXNwa2kt
a2V5Lmh0bWwgWyBTa2lwIF0KIHdlYmtpdC5vcmcvYi8xMzMxMjIgY3J5cHRvL3dvcmtlcnMvc3Vi
dGxlL2VjLXBvc3RNZXNzYWdlLXdvcmtlci5odG1sIFsgU2tpcCBdCi13ZWJraXQub3JnL2IvMTMz
MTIyIGNyeXB0by93b3JrZXJzL3N1YnRsZS9obWFjLXBvc3RNZXNzYWdlLXdvcmtlci5odG1sIFsg
U2tpcCBdCi13ZWJraXQub3JnL2IvMTMzMTIyIGNyeXB0by93b3JrZXJzL3N1YnRsZS9ocnNhLXBv
c3RNZXNzYWdlLXdvcmtlci5odG1sIFsgU2tpcCBdCi13ZWJraXQub3JnL2IvMTMzMTIyIGNyeXB0
by93b3JrZXJzL3N1YnRsZS9tdWx0aXBsZS1wb3N0TWVzc2FnZS13b3JrZXIuaHRtbCBbIFNraXAg
XQotd2Via2l0Lm9yZy9iLzEzMzEyMiBjcnlwdG8vd29ya2Vycy9zdWJ0bGUvcmF3LXBvc3RNZXNz
YWdlLXdvcmtlci5odG1sIFsgU2tpcCBdCi13ZWJraXQub3JnL2IvMTMzMTIyIGNyeXB0by93b3Jr
ZXJzL3N1YnRsZS9yc2EtZXhwb3J0LXBrY3M4LWtleS5odG1sIFsgU2tpcCBdCi13ZWJraXQub3Jn
L2IvMTMzMTIyIGNyeXB0by93b3JrZXJzL3N1YnRsZS9yc2EtZXhwb3J0LXNwa2kta2V5Lmh0bWwg
WyBTa2lwIF0KLXdlYmtpdC5vcmcvYi8xMzMxMjIgY3J5cHRvL3dvcmtlcnMvc3VidGxlL3JzYS1p
bXBvcnQtcGtjczgta2V5Lmh0bWwgWyBTa2lwIF0KLXdlYmtpdC5vcmcvYi8xMzMxMjIgY3J5cHRv
L3dvcmtlcnMvc3VidGxlL3JzYS1pbXBvcnQtc3BraS1rZXkuaHRtbCBbIFNraXAgXQotd2Via2l0
Lm9yZy9iLzEzMzEyMiBjcnlwdG8vd29ya2Vycy9zdWJ0bGUvcnNhLXBvc3RNZXNzYWdlLXdvcmtl
ci5odG1sIFsgU2tpcCBdCiAKIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvV2ViQ3J5
cHRvQVBJIFsgUGFzcyBTbG93IF0KIHdlYmtpdC5vcmcvYi8xMzMxMjIgaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9XZWJDcnlwdG9BUEkvZW5jcnlwdF9kZWNyeXB0L3JzYS53b3JrZXIu
aHRtbCBbIEZhaWx1cmUgXQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>