<?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>124297</bug_id>
          
          <creation_ts>2013-11-13 11:24:28 -0800</creation_ts>
          <short_desc>Check WebCrypto parameter types when casting</short_desc>
          <delta_ts>2013-11-13 11:31:14 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>122679</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexey Proskuryakov">ap</reporter>
          <assigned_to name="Alexey Proskuryakov">ap</assigned_to>
          <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>950260</commentid>
    <comment_count>0</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-11-13 11:24:28 -0800</bug_when>
    <thetext>WebCrypto parameters are built in C++ code right before using them, so there is no opportunity for an attacker to pass a wrong one form JS. But there is so much code dealing with them that there is a lot of opportunities to make a typo.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>950264</commentid>
    <comment_count>1</comment_count>
      <attachid>216825</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-11-13 11:27:07 -0800</bug_when>
    <thetext>Created attachment 216825
proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>950265</commentid>
    <comment_count>2</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-11-13 11:31:14 -0800</bug_when>
    <thetext>Committed &lt;http://trac.webkit.org/r159213&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>216825</attachid>
            <date>2013-11-13 11:27:07 -0800</date>
            <delta_ts>2013-11-13 11:29:22 -0800</delta_ts>
            <desc>proposed patch</desc>
            <filename>TypeChecks.txt</filename>
            <type>text/plain</type>
            <size>24597</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1OTIxMikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU0IEBACisyMDEzLTExLTEzICBBbGV4ZXkg
UHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgorCisgICAgICAgIENoZWNrIFdlYkNyeXB0byBw
YXJhbWV0ZXIgdHlwZXMgd2hlbiBjYXN0aW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMjQyOTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBBbHNvIGNoYW5nZWQgZXhpc3RpbmcgdG9DcnlwdG9YWFggZnVu
Y3Rpb25zIHRvIHVzZSBUWVBFX0NBU1RTX0JBU0UgbWVjaGFuaXNtLgorCisgICAgICAgICogYmlu
ZGluZ3MvanMvSlNDcnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkpTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeTo6Y3JlYXRlUGFyYW1ldGVyc0ZvckltcG9y
dEtleSk6CisgICAgICAgIEFuZCBzdXJlIGVub3VnaCwgdGhlcmUgd2FzIGEgYnVnIGNhdWdodCBi
eSB0aGUgYWRkZWQgY2hlY2tzLgorCisgICAgICAgICogYmluZGluZ3MvanMvSlNDcnlwdG9LZXlT
ZXJpYWxpemF0aW9uSldLLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTQ3J5cHRvS2V5U2VyaWFs
aXphdGlvbkpXSzo6cmVjb25jaWxlQWxnb3JpdGhtKToKKyAgICAgICAgKiBjcnlwdG8vQ3J5cHRv
QWxnb3JpdGhtUGFyYW1ldGVycy5oOgorICAgICAgICAoV2ViQ29yZTo6Q3J5cHRvQWxnb3JpdGht
UGFyYW1ldGVyczo6RU5VTV9DTEFTUyk6CisgICAgICAgIChXZWJDb3JlOjpDcnlwdG9BbGdvcml0
aG1QYXJhbWV0ZXJzOjpwYXJhbWV0ZXJzQ2xhc3MpOgorICAgICAgICAqIGNyeXB0by9DcnlwdG9L
ZXkuaDoKKyAgICAgICAgKiBjcnlwdG8vQ3J5cHRvS2V5RGF0YS5oOgorICAgICAgICAqIGNyeXB0
by9DcnlwdG9LZXlTZXJpYWxpemF0aW9uLmg6CisgICAgICAgICogY3J5cHRvL2FsZ29yaXRobXMv
Q3J5cHRvQWxnb3JpdGhtQUVTX0NCQy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDcnlwdG9BbGdv
cml0aG1BRVNfQ0JDOjpnZW5lcmF0ZUtleSk6CisgICAgICAgICogY3J5cHRvL2FsZ29yaXRobXMv
Q3J5cHRvQWxnb3JpdGhtSE1BQy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDcnlwdG9BbGdvcml0
aG1ITUFDOjpnZW5lcmF0ZUtleSk6CisgICAgICAgIChXZWJDb3JlOjpDcnlwdG9BbGdvcml0aG1I
TUFDOjppbXBvcnRLZXkpOgorICAgICAgICAqIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29y
aXRobVJTQVNTQV9QS0NTMV92MV81LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNyeXB0b0FsZ29y
aXRobVJTQVNTQV9QS0NTMV92MV81OjppbXBvcnRLZXkpOgorICAgICAgICAoV2ViQ29yZTo6Q3J5
cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzU6OmdlbmVyYXRlS2V5KToKKyAgICAgICAgKiBj
cnlwdG8va2V5cy9DcnlwdG9LZXlBRVMuaDoKKyAgICAgICAgKiBjcnlwdG8va2V5cy9DcnlwdG9L
ZXlEYXRhT2N0ZXRTZXF1ZW5jZS5oOgorICAgICAgICAoV2ViQ29yZTo6aXNDcnlwdG9LZXlEYXRh
T2N0ZXRTZXF1ZW5jZSk6CisgICAgICAgICogY3J5cHRvL2tleXMvQ3J5cHRvS2V5RGF0YVJTQUNv
bXBvbmVudHMuaDoKKyAgICAgICAgKFdlYkNvcmU6OmlzQ3J5cHRvS2V5RGF0YVJTQUNvbXBvbmVu
dHMpOgorICAgICAgICAqIGNyeXB0by9rZXlzL0NyeXB0b0tleUhNQUMuaDoKKyAgICAgICAgKiBj
cnlwdG8va2V5cy9DcnlwdG9LZXlSU0EuaDoKKyAgICAgICAgKiBjcnlwdG8va2V5cy9DcnlwdG9L
ZXlTZXJpYWxpemF0aW9uUmF3Lmg6CisgICAgICAgICogY3J5cHRvL21hYy9DcnlwdG9BbGdvcml0
aG1BRVNfQ0JDTWFjLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNyeXB0b0FsZ29yaXRobUFFU19D
QkM6OmVuY3J5cHQpOgorICAgICAgICAoV2ViQ29yZTo6Q3J5cHRvQWxnb3JpdGhtQUVTX0NCQzo6
ZGVjcnlwdCk6CisgICAgICAgICogY3J5cHRvL21hYy9DcnlwdG9BbGdvcml0aG1ITUFDTWFjLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkNyeXB0b0FsZ29yaXRobUhNQUM6OnNpZ24pOgorICAgICAg
ICAoV2ViQ29yZTo6Q3J5cHRvQWxnb3JpdGhtSE1BQzo6dmVyaWZ5KToKKyAgICAgICAgKiBjcnlw
dG8vcGFyYW1ldGVycy9DcnlwdG9BbGdvcml0aG1BZXNDYmNQYXJhbXMuaDoKKyAgICAgICAgKiBj
cnlwdG8vcGFyYW1ldGVycy9DcnlwdG9BbGdvcml0aG1BZXNLZXlHZW5QYXJhbXMuaDoKKyAgICAg
ICAgKiBjcnlwdG8vcGFyYW1ldGVycy9DcnlwdG9BbGdvcml0aG1IbWFjS2V5UGFyYW1zLmg6Cisg
ICAgICAgICogY3J5cHRvL3BhcmFtZXRlcnMvQ3J5cHRvQWxnb3JpdGhtSG1hY1BhcmFtcy5oOgor
ICAgICAgICAqIGNyeXB0by9wYXJhbWV0ZXJzL0NyeXB0b0FsZ29yaXRobVJzYUtleUdlblBhcmFt
cy5oOgorICAgICAgICAqIGNyeXB0by9wYXJhbWV0ZXJzL0NyeXB0b0FsZ29yaXRobVJzYVNzYUtl
eVBhcmFtcy5oOgorICAgICAgICAqIGNyeXB0by9wYXJhbWV0ZXJzL0NyeXB0b0FsZ29yaXRobVJz
YVNzYVBhcmFtcy5oOgorCiAyMDEzLTExLTEzICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBw
bGUuY29tPgogCiAgICAgICAgIGNyeXB0by9zdWJ0bGUvcnNhc3NhLXBrY3MxLXYxXzUtaW1wb3J0
LWp3ay5odG1sIGlzIGZhaWxpbmcgb24gTWF2ZXJpY3MgcmVsZWFzZSBib3QKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDcnlwdG9BbGdvcml0aG1E
aWN0aW9uYXJ5LmNwcAkocmV2aXNpb24gMTU5MjAzKQorKysgU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNDcnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
NTM4LDcgKzUzOCw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXIK
ICAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OkFFU19DRkI6CiAgICAgICAgIHJl
dHVybiBzdGQ6Om1ha2VfdW5pcXVlPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnM+KCk7CiAgICAg
Y2FzZSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpITUFDOgotICAgICAgICByZXR1cm4gY3Jl
YXRlSG1hY0tleVBhcmFtcyhleGVjLCB2YWx1ZSk7CisgICAgICAgIHJldHVybiBjcmVhdGVIbWFj
UGFyYW1zKGV4ZWMsIHZhbHVlKTsKICAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6
OkRIOgogICAgICAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxDcnlwdG9BbGdvcml0aG1QYXJh
bWV0ZXJzPigpOwogICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6U0hBXzE6Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NyeXB0b0tleVNlcmlhbGl6YXRpb25K
V0suY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3J5cHRv
S2V5U2VyaWFsaXphdGlvbkpXSy5jcHAJKHJldmlzaW9uIDE1OTIwMykKKysrIFNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTQ3J5cHRvS2V5U2VyaWFsaXphdGlvbkpXSy5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTIxMiwxMCArMjEyLDEwIEBAIGJvb2wgSlNDcnlwdG9LZXlTZXJpYWxpemF0aW9u
SldLOjpyZWNvbmMKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgaWYgKGFsZ29yaXRobS0+
aWRlbnRpZmllcigpID09IENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OkhNQUMpCi0gICAgICAg
IHJldHVybiBzdGF0aWNfY2FzdDxDcnlwdG9BbGdvcml0aG1IbWFjUGFyYW1zJj4oKnBhcmFtZXRl
cnMpLmhhc2ggPT0gc3RhdGljX2Nhc3Q8Q3J5cHRvQWxnb3JpdGhtSG1hY1BhcmFtcyY+KCpzdWdn
ZXN0ZWRQYXJhbWV0ZXJzKS5oYXNoOworICAgICAgICByZXR1cm4gdG9DcnlwdG9BbGdvcml0aG1I
bWFjUGFyYW1zKCpwYXJhbWV0ZXJzKS5oYXNoID09IHRvQ3J5cHRvQWxnb3JpdGhtSG1hY1BhcmFt
cygqc3VnZ2VzdGVkUGFyYW1ldGVycykuaGFzaDsKICAgICBpZiAoYWxnb3JpdGhtLT5pZGVudGlm
aWVyKCkgPT0gQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6UlNBU1NBX1BLQ1MxX3YxXzUpIHsK
LSAgICAgICAgQ3J5cHRvQWxnb3JpdGhtUnNhU3NhS2V5UGFyYW1zJiByc2FTU0FQYXJhbWV0ZXJz
ID0gc3RhdGljX2Nhc3Q8Q3J5cHRvQWxnb3JpdGhtUnNhU3NhS2V5UGFyYW1zJj4oKnBhcmFtZXRl
cnMpOwotICAgICAgICBDcnlwdG9BbGdvcml0aG1Sc2FTc2FLZXlQYXJhbXMmIHN1Z2dlc3RlZFJT
QVNTQVBhcmFtZXRlcnMgPSBzdGF0aWNfY2FzdDxDcnlwdG9BbGdvcml0aG1Sc2FTc2FLZXlQYXJh
bXMmPigqc3VnZ2VzdGVkUGFyYW1ldGVycyk7CisgICAgICAgIENyeXB0b0FsZ29yaXRobVJzYVNz
YUtleVBhcmFtcyYgcnNhU1NBUGFyYW1ldGVycyA9IHRvQ3J5cHRvQWxnb3JpdGhtUnNhU3NhS2V5
UGFyYW1zKCpwYXJhbWV0ZXJzKTsKKyAgICAgICAgQ3J5cHRvQWxnb3JpdGhtUnNhU3NhS2V5UGFy
YW1zJiBzdWdnZXN0ZWRSU0FTU0FQYXJhbWV0ZXJzID0gdG9DcnlwdG9BbGdvcml0aG1Sc2FTc2FL
ZXlQYXJhbXMoKnN1Z2dlc3RlZFBhcmFtZXRlcnMpOwogICAgICAgICBBU1NFUlQocnNhU1NBUGFy
YW1ldGVycy5oYXNIYXNoKTsKICAgICAgICAgaWYgKHN1Z2dlc3RlZFJTQVNTQVBhcmFtZXRlcnMu
aGFzSGFzaCkKICAgICAgICAgICAgIHJldHVybiBzdWdnZXN0ZWRSU0FTU0FQYXJhbWV0ZXJzLmhh
c2ggPT0gcnNhU1NBUGFyYW1ldGVycy5oYXNoOwpJbmRleDogU291cmNlL1dlYkNvcmUvY3J5cHRv
L0NyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9jcnlwdG8vQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycy5oCShyZXZpc2lvbiAxNTkyMDMpCisr
KyBTb3VyY2UvV2ViQ29yZS9jcnlwdG8vQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycy5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zNyw4ICszNywyMyBAQCBjbGFzcyBDcnlwdG9BbGdvcml0aG1QYXJhbWV0
ZXJzIHsKIHB1YmxpYzoKICAgICBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzKCkgeyB9CiAgICAg
dmlydHVhbCB+Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycygpIHsgfQorCisgICAgRU5VTV9DTEFT
UyhDbGFzcykgeworICAgICAgICBOb25lLAorICAgICAgICBBZXNDYmNQYXJhbXMsCisgICAgICAg
IEFlc0tleUdlblBhcmFtcywKKyAgICAgICAgSG1hY0tleVBhcmFtcywKKyAgICAgICAgSG1hY1Bh
cmFtcywKKyAgICAgICAgUnNhS2V5R2VuUGFyYW1zLAorICAgICAgICBSc2FTc2FLZXlQYXJhbXMs
CisgICAgICAgIFJzYVNzYVBhcmFtcworICAgIH07CisgICAgdmlydHVhbCBDbGFzcyBwYXJhbWV0
ZXJzQ2xhc3MoKSBjb25zdCB7IHJldHVybiBDbGFzczo6Tm9uZTsgfQogfTsKIAorI2RlZmluZSBD
UllQVE9fQUxHT1JJVEhNX1BBUkFNRVRFUlNfQ0FTVFMoVG9DbGFzc05hbWUpIFwKKyAgICBUWVBF
X0NBU1RTX0JBU0UoQ3J5cHRvQWxnb3JpdGhtIyNUb0NsYXNzTmFtZSwgQ3J5cHRvQWxnb3JpdGht
UGFyYW1ldGVycywgcGFyYW1ldGVycywgcGFyYW1ldGVycy0+cGFyYW1ldGVyc0NsYXNzKCkgPT0g
Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyczo6Q2xhc3M6OlRvQ2xhc3NOYW1lLCBwYXJhbWV0ZXJz
LnBhcmFtZXRlcnNDbGFzcygpID09IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnM6OkNsYXNzOjpU
b0NsYXNzTmFtZSkKKwogfQogCiAjZW5kaWYgLy8gRU5BQkxFKFNVQlRMRV9DUllQVE8pCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9jcnlwdG8vQ3J5cHRvS2V5LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvY3J5cHRvL0NyeXB0b0tleS5oCShyZXZpc2lvbiAxNTkyMDMpCisrKyBTb3VyY2Uv
V2ViQ29yZS9jcnlwdG8vQ3J5cHRvS2V5LmgJKHdvcmtpbmcgY29weSkKQEAgLTY4LDYgKzY4LDkg
QEAgcHJpdmF0ZToKICAgICBDcnlwdG9LZXlVc2FnZSBtX3VzYWdlczsKIH07CiAKKyNkZWZpbmUg
Q1JZUFRPX0tFWV9UWVBFX0NBU1RTKFRvQ2xhc3NOYW1lKSBcCisgICAgVFlQRV9DQVNUU19CQVNF
KFRvQ2xhc3NOYW1lLCBDcnlwdG9LZXksIGtleSwgV2ViQ29yZTo6aXMjI1RvQ2xhc3NOYW1lKCpr
ZXkpLCBXZWJDb3JlOjppcyMjVG9DbGFzc05hbWUoa2V5KSkKKwogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFNVQlRMRV9DUllQVE8pCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9jcnlwdG8vQ3J5cHRvS2V5RGF0YS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2NyeXB0by9DcnlwdG9LZXlEYXRhLmgJKHJldmlzaW9uIDE1OTIwMykKKysrIFNvdXJjZS9XZWJD
b3JlL2NyeXB0by9DcnlwdG9LZXlEYXRhLmgJKHdvcmtpbmcgY29weSkKQEAgLTMzLDcgKzMzLDcg
QEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQ3J5cHRvS2V5RGF0YSB7Ci1XVEZfTUFL
RV9OT05DT1BZQUJMRShDcnlwdG9LZXlEYXRhKTsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShD
cnlwdG9LZXlEYXRhKTsKIHB1YmxpYzoKICAgICBFTlVNX0NMQVNTKEZvcm1hdCkgewogICAgICAg
ICBPY3RldFNlcXVlbmNlLApAQCAtNTIsNiArNTIsOSBAQCBwcml2YXRlOgogICAgIEZvcm1hdCBt
X2Zvcm1hdDsKIH07CiAKKyNkZWZpbmUgQ1JZUFRPX0tFWV9EQVRBX0NBU1RTKFRvQ2xhc3NOYW1l
KSBcCisgICAgVFlQRV9DQVNUU19CQVNFKFRvQ2xhc3NOYW1lLCBDcnlwdG9LZXlEYXRhLCBrZXlE
YXRhLCBXZWJDb3JlOjppcyMjVG9DbGFzc05hbWUoKmtleURhdGEpLCBXZWJDb3JlOjppcyMjVG9D
bGFzc05hbWUoa2V5RGF0YSkpCisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8v
IEVOQUJMRShTVUJUTEVfQ1JZUFRPKQpJbmRleDogU291cmNlL1dlYkNvcmUvY3J5cHRvL0NyeXB0
b0tleVNlcmlhbGl6YXRpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jcnlwdG8v
Q3J5cHRvS2V5U2VyaWFsaXphdGlvbi5oCShyZXZpc2lvbiAxNTkyMDMpCisrKyBTb3VyY2UvV2Vi
Q29yZS9jcnlwdG8vQ3J5cHRvS2V5U2VyaWFsaXphdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC00
MCw3ICs0MCw3IEBAIGNsYXNzIENyeXB0b0tleURhdGE7CiB0eXBlZGVmIHN0ZDo6cGFpcjxjb25z
dCBjaGFyKiwgc2l6ZV90PiBDcnlwdG9PcGVyYXRpb25EYXRhOwogCiBjbGFzcyBDcnlwdG9LZXlT
ZXJpYWxpemF0aW9uIHsKLVdURl9NQUtFX05PTkNPUFlBQkxFKENyeXB0b0tleVNlcmlhbGl6YXRp
b24pOworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKENyeXB0b0tleVNlcmlhbGl6YXRpb24pOwog
cHVibGljOgogICAgIENyeXB0b0tleVNlcmlhbGl6YXRpb24oKSB7IH0KICAgICB2aXJ0dWFsIH5D
cnlwdG9LZXlTZXJpYWxpemF0aW9uKCkgeyB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jcnlwdG8v
YWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1BRVNfQ0JDLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1BRVNfQ0JDLmNwcAko
cmV2aXNpb24gMTU5MjAzKQorKysgU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5
cHRvQWxnb3JpdGhtQUVTX0NCQy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU4LDcgKzU4LDcgQEAg
Q3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBDcnlwdG9BbGdvcml0aAogCiB2b2lkIENyeXB0b0Fs
Z29yaXRobUFFU19DQkM6OmdlbmVyYXRlS2V5KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRl
cnMmIHBhcmFtZXRlcnMsIGJvb2wgZXh0cmFjdGFibGUsIENyeXB0b0tleVVzYWdlIHVzYWdlcywg
c3RkOjp1bmlxdWVfcHRyPFByb21pc2VXcmFwcGVyPiBwcm9taXNlLCBFeGNlcHRpb25Db2RlJikK
IHsKLSAgICBjb25zdCBDcnlwdG9BbGdvcml0aG1BZXNLZXlHZW5QYXJhbXMmIGFlc1BhcmFtZXRl
cnMgPSBzdGF0aWNfY2FzdDxjb25zdCBDcnlwdG9BbGdvcml0aG1BZXNLZXlHZW5QYXJhbXMmPihw
YXJhbWV0ZXJzKTsKKyAgICBjb25zdCBDcnlwdG9BbGdvcml0aG1BZXNLZXlHZW5QYXJhbXMmIGFl
c1BhcmFtZXRlcnMgPSB0b0NyeXB0b0FsZ29yaXRobUFlc0tleUdlblBhcmFtcyhwYXJhbWV0ZXJz
KTsKIAogICAgIFJlZlB0cjxDcnlwdG9LZXlBRVM+IHJlc3VsdCA9IENyeXB0b0tleUFFUzo6Z2Vu
ZXJhdGUoQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6QUVTX0NCQywgYWVzUGFyYW1ldGVycy5s
ZW5ndGgsIGV4dHJhY3RhYmxlLCB1c2FnZXMpOwogICAgIGlmICghcmVzdWx0KSB7CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1ITUFDLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdv
cml0aG1ITUFDLmNwcAkocmV2aXNpb24gMTU5MjAzKQorKysgU291cmNlL1dlYkNvcmUvY3J5cHRv
L2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtSE1BQy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU5
LDcgKzU5LDcgQEAgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBDcnlwdG9BbGdvcml0aAogCiB2
b2lkIENyeXB0b0FsZ29yaXRobUhNQUM6OmdlbmVyYXRlS2V5KGNvbnN0IENyeXB0b0FsZ29yaXRo
bVBhcmFtZXRlcnMmIHBhcmFtZXRlcnMsIGJvb2wgZXh0cmFjdGFibGUsIENyeXB0b0tleVVzYWdl
IHVzYWdlcywgc3RkOjp1bmlxdWVfcHRyPFByb21pc2VXcmFwcGVyPiBwcm9taXNlLCBFeGNlcHRp
b25Db2RlJikKIHsKLSAgICBjb25zdCBDcnlwdG9BbGdvcml0aG1IbWFjS2V5UGFyYW1zJiBobWFj
UGFyYW1ldGVycyA9IHN0YXRpY19jYXN0PGNvbnN0IENyeXB0b0FsZ29yaXRobUhtYWNLZXlQYXJh
bXMmPihwYXJhbWV0ZXJzKTsKKyAgICBjb25zdCBDcnlwdG9BbGdvcml0aG1IbWFjS2V5UGFyYW1z
JiBobWFjUGFyYW1ldGVycyA9IHRvQ3J5cHRvQWxnb3JpdGhtSG1hY0tleVBhcmFtcyhwYXJhbWV0
ZXJzKTsKIAogICAgIFJlZlB0cjxDcnlwdG9LZXlITUFDPiByZXN1bHQgPSBDcnlwdG9LZXlITUFD
OjpnZW5lcmF0ZShobWFjUGFyYW1ldGVycy5oYXNMZW5ndGggPyBobWFjUGFyYW1ldGVycy5sZW5n
dGggOiAwLCBobWFjUGFyYW1ldGVycy5oYXNoLCBleHRyYWN0YWJsZSwgdXNhZ2VzKTsKICAgICBp
ZiAoIXJlc3VsdCkgewpAQCAtNzgsNyArNzgsNyBAQCB2b2lkIENyeXB0b0FsZ29yaXRobUhNQUM6
OmltcG9ydEtleShjb25zCiAgICAgfQogICAgIGNvbnN0IENyeXB0b0tleURhdGFPY3RldFNlcXVl
bmNlJiBrZXlEYXRhT2N0ZXRTZXF1ZW5jZSA9IHRvQ3J5cHRvS2V5RGF0YU9jdGV0U2VxdWVuY2Uo
a2V5RGF0YSk7CiAKLSAgICBjb25zdCBDcnlwdG9BbGdvcml0aG1IbWFjUGFyYW1zJiBobWFjUGFy
YW1ldGVycyA9IHN0YXRpY19jYXN0PGNvbnN0IENyeXB0b0FsZ29yaXRobUhtYWNQYXJhbXMmPihw
YXJhbWV0ZXJzKTsKKyAgICBjb25zdCBDcnlwdG9BbGdvcml0aG1IbWFjUGFyYW1zJiBobWFjUGFy
YW1ldGVycyA9IHRvQ3J5cHRvQWxnb3JpdGhtSG1hY1BhcmFtcyhwYXJhbWV0ZXJzKTsKIAogICAg
IFJlZlB0cjxDcnlwdG9LZXlITUFDPiByZXN1bHQgPSBDcnlwdG9LZXlITUFDOjpjcmVhdGUoa2V5
RGF0YU9jdGV0U2VxdWVuY2Uub2N0ZXRTZXF1ZW5jZSgpLCBobWFjUGFyYW1ldGVycy5oYXNoLCBl
eHRyYWN0YWJsZSwgdXNhZ2UpOwogICAgIHByb21pc2UtPmZ1bGZpbGwocmVzdWx0LnJlbGVhc2Uo
KSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0
aG1SU0FTU0FfUEtDUzFfdjFfNS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3J5
cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzUuY3BwCShyZXZp
c2lvbiAxNTkyMDMpCisrKyBTb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9B
bGdvcml0aG1SU0FTU0FfUEtDUzFfdjFfNS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU4LDcgKzU4
LDcgQEAgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBDcnlwdG9BbGdvcml0aAogCiB2b2lkIENy
eXB0b0FsZ29yaXRobVJTQVNTQV9QS0NTMV92MV81OjppbXBvcnRLZXkoY29uc3QgQ3J5cHRvQWxn
b3JpdGhtUGFyYW1ldGVycyYgcGFyYW1ldGVycywgY29uc3QgQ3J5cHRvS2V5RGF0YSYga2V5RGF0
YSwgYm9vbCBleHRyYWN0YWJsZSwgQ3J5cHRvS2V5VXNhZ2UgdXNhZ2UsIHN0ZDo6dW5pcXVlX3B0
cjxQcm9taXNlV3JhcHBlcj4gcHJvbWlzZSwgRXhjZXB0aW9uQ29kZSYpCiB7Ci0gICAgY29uc3Qg
Q3J5cHRvQWxnb3JpdGhtUnNhU3NhS2V5UGFyYW1zJiByc2FTU0FQYXJhbWV0ZXJzID0gc3RhdGlj
X2Nhc3Q8Y29uc3QgQ3J5cHRvQWxnb3JpdGhtUnNhU3NhS2V5UGFyYW1zJj4ocGFyYW1ldGVycyk7
CisgICAgY29uc3QgQ3J5cHRvQWxnb3JpdGhtUnNhU3NhS2V5UGFyYW1zJiByc2FTU0FQYXJhbWV0
ZXJzID0gdG9DcnlwdG9BbGdvcml0aG1Sc2FTc2FLZXlQYXJhbXMocGFyYW1ldGVycyk7CiAgICAg
Y29uc3QgQ3J5cHRvS2V5RGF0YVJTQUNvbXBvbmVudHMmIHJzYUNvbXBvbmVudHMgPSB0b0NyeXB0
b0tleURhdGFSU0FDb21wb25lbnRzKGtleURhdGEpOwogCiAgICAgUmVmUHRyPENyeXB0b0tleVJT
QT4gcmVzdWx0ID0gQ3J5cHRvS2V5UlNBOjpjcmVhdGUoQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmll
cjo6UlNBU1NBX1BLQ1MxX3YxXzUsIHJzYUNvbXBvbmVudHMsIGV4dHJhY3RhYmxlLCB1c2FnZSk7
CkBAIC03NSw3ICs3NSw3IEBAIHZvaWQgQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzU6
OmkKIAogdm9pZCBDcnlwdG9BbGdvcml0aG1SU0FTU0FfUEtDUzFfdjFfNTo6Z2VuZXJhdGVLZXko
Y29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycyYgcGFyYW1ldGVycywgYm9vbCBleHRyYWN0
YWJsZSwgQ3J5cHRvS2V5VXNhZ2UgdXNhZ2VzLCBzdGQ6OnVuaXF1ZV9wdHI8UHJvbWlzZVdyYXBw
ZXI+IHByb21pc2UsIEV4Y2VwdGlvbkNvZGUmKQogewotICAgIGNvbnN0IENyeXB0b0FsZ29yaXRo
bVJzYUtleUdlblBhcmFtcyYgcnNhUGFyYW1ldGVycyA9IHN0YXRpY19jYXN0PGNvbnN0IENyeXB0
b0FsZ29yaXRobVJzYUtleUdlblBhcmFtcyY+KHBhcmFtZXRlcnMpOworICAgIGNvbnN0IENyeXB0
b0FsZ29yaXRobVJzYUtleUdlblBhcmFtcyYgcnNhUGFyYW1ldGVycyA9IHRvQ3J5cHRvQWxnb3Jp
dGhtUnNhS2V5R2VuUGFyYW1zKHBhcmFtZXRlcnMpOwogCiAgICAgQ3J5cHRvS2V5UlNBOjpnZW5l
cmF0ZVBhaXIoQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6UlNBU1NBX1BLQ1MxX3YxXzUsIHJz
YVBhcmFtZXRlcnMubW9kdWx1c0xlbmd0aCwgcnNhUGFyYW1ldGVycy5wdWJsaWNFeHBvbmVudCwg
ZXh0cmFjdGFibGUsIHVzYWdlcywgc3RkOjptb3ZlKHByb21pc2UpKTsKIH0KSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2NyeXB0by9rZXlzL0NyeXB0b0tleUFFUy5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2NyeXB0by9rZXlzL0NyeXB0b0tleUFFUy5oCShyZXZpc2lvbiAxNTkyMDMpCisr
KyBTb3VyY2UvV2ViQ29yZS9jcnlwdG8va2V5cy9DcnlwdG9LZXlBRVMuaAkod29ya2luZyBjb3B5
KQpAQCAtNjEsMTcgKzYxLDcgQEAgaW5saW5lIGJvb2wgaXNDcnlwdG9LZXlBRVMoY29uc3QgQ3J5
cHRvSwogICAgIHJldHVybiBrZXkua2V5Q2xhc3MoKSA9PSBDcnlwdG9LZXlDbGFzczo6QUVTOwog
fQogCi1pbmxpbmUgY29uc3QgQ3J5cHRvS2V5QUVTJiB0b0NyeXB0b0tleUFFUyhjb25zdCBDcnlw
dG9LZXkmIGtleSkKLXsKLSAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTihpc0Ny
eXB0b0tleUFFUyhrZXkpKTsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Y29uc3QgQ3J5cHRvS2V5
QUVTJj4oa2V5KTsKLX0KLQotaW5saW5lIENyeXB0b0tleUFFUyYgdG9DcnlwdG9LZXlBRVMoQ3J5
cHRvS2V5JiBrZXkpCi17Ci0gICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oaXND
cnlwdG9LZXlBRVMoa2V5KSk7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PENyeXB0b0tleUFFUyY+
KGtleSk7Ci19CitDUllQVE9fS0VZX1RZUEVfQ0FTVFMoQ3J5cHRvS2V5QUVTKQogCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2NyeXB0by9rZXlzL0NyeXB0
b0tleURhdGFPY3RldFNlcXVlbmNlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3J5
cHRvL2tleXMvQ3J5cHRvS2V5RGF0YU9jdGV0U2VxdWVuY2UuaAkocmV2aXNpb24gMTU5MjAzKQor
KysgU291cmNlL1dlYkNvcmUvY3J5cHRvL2tleXMvQ3J5cHRvS2V5RGF0YU9jdGV0U2VxdWVuY2Uu
aAkod29ya2luZyBjb3B5KQpAQCAtNDksMTIgKzQ5LDEzIEBAIHByaXZhdGU6CiAgICAgVmVjdG9y
PGNoYXI+IG1fa2V5RGF0YTsKIH07CiAKLWlubGluZSBjb25zdCBDcnlwdG9LZXlEYXRhT2N0ZXRT
ZXF1ZW5jZSYgdG9DcnlwdG9LZXlEYXRhT2N0ZXRTZXF1ZW5jZShjb25zdCBDcnlwdG9LZXlEYXRh
JiBkYXRhKQoraW5saW5lIGJvb2wgaXNDcnlwdG9LZXlEYXRhT2N0ZXRTZXF1ZW5jZShjb25zdCBD
cnlwdG9LZXlEYXRhJiBkYXRhKQogewotICAgIEFTU0VSVChkYXRhLmZvcm1hdCgpID09IENyeXB0
b0tleURhdGE6OkZvcm1hdDo6T2N0ZXRTZXF1ZW5jZSk7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0
PGNvbnN0IENyeXB0b0tleURhdGFPY3RldFNlcXVlbmNlJj4oZGF0YSk7CisgICAgcmV0dXJuIGRh
dGEuZm9ybWF0KCkgPT0gQ3J5cHRvS2V5RGF0YTo6Rm9ybWF0OjpPY3RldFNlcXVlbmNlOwogfQog
CitDUllQVE9fS0VZX0RBVEFfQ0FTVFMoQ3J5cHRvS2V5RGF0YU9jdGV0U2VxdWVuY2UpCisKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShTVUJUTEVfQ1JZUFRPKQpJ
bmRleDogU291cmNlL1dlYkNvcmUvY3J5cHRvL2tleXMvQ3J5cHRvS2V5RGF0YVJTQUNvbXBvbmVu
dHMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jcnlwdG8va2V5cy9DcnlwdG9LZXlE
YXRhUlNBQ29tcG9uZW50cy5oCShyZXZpc2lvbiAxNTkyMDMpCisrKyBTb3VyY2UvV2ViQ29yZS9j
cnlwdG8va2V5cy9DcnlwdG9LZXlEYXRhUlNBQ29tcG9uZW50cy5oCSh3b3JraW5nIGNvcHkpCkBA
IC05NSwxMiArOTUsMTMgQEAgcHJpdmF0ZToKICAgICBWZWN0b3I8UHJpbWVJbmZvPiBtX290aGVy
UHJpbWVJbmZvczsgLy8gV2hlbiB0aHJlZSBvciBtb3JlIHByaW1lcyBoYXZlIGJlZW4gdXNlZCwg
dGhlIG51bWJlciBvZiBhcnJheSBlbGVtZW50cyBpcyBiZSB0aGUgbnVtYmVyIG9mIHByaW1lcyB1
c2VkIG1pbnVzIHR3by4KIH07CiAKLWlubGluZSBjb25zdCBDcnlwdG9LZXlEYXRhUlNBQ29tcG9u
ZW50cyYgdG9DcnlwdG9LZXlEYXRhUlNBQ29tcG9uZW50cyhjb25zdCBDcnlwdG9LZXlEYXRhJiBk
YXRhKQoraW5saW5lIGJvb2wgaXNDcnlwdG9LZXlEYXRhUlNBQ29tcG9uZW50cyhjb25zdCBDcnlw
dG9LZXlEYXRhJiBkYXRhKQogewotICAgIEFTU0VSVChkYXRhLmZvcm1hdCgpID09IENyeXB0b0tl
eURhdGE6OkZvcm1hdDo6UlNBQ29tcG9uZW50cyk7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PGNv
bnN0IENyeXB0b0tleURhdGFSU0FDb21wb25lbnRzJj4oZGF0YSk7CisgICAgcmV0dXJuIGRhdGEu
Zm9ybWF0KCkgPT0gQ3J5cHRvS2V5RGF0YTo6Rm9ybWF0OjpSU0FDb21wb25lbnRzOwogfQogCitD
UllQVE9fS0VZX0RBVEFfQ0FTVFMoQ3J5cHRvS2V5RGF0YVJTQUNvbXBvbmVudHMpCisKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShTVUJUTEVfQ1JZUFRPKQpJbmRl
eDogU291cmNlL1dlYkNvcmUvY3J5cHRvL2tleXMvQ3J5cHRvS2V5SE1BQy5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2NyeXB0by9rZXlzL0NyeXB0b0tleUhNQUMuaAkocmV2aXNpb24g
MTU5MjAzKQorKysgU291cmNlL1dlYkNvcmUvY3J5cHRvL2tleXMvQ3J5cHRvS2V5SE1BQy5oCSh3
b3JraW5nIGNvcHkpCkBAIC02MiwxNyArNjIsNyBAQCBpbmxpbmUgYm9vbCBpc0NyeXB0b0tleUhN
QUMoY29uc3QgQ3J5cHRvCiAgICAgcmV0dXJuIGtleS5rZXlDbGFzcygpID09IENyeXB0b0tleUNs
YXNzOjpITUFDOwogfQogCi1pbmxpbmUgY29uc3QgQ3J5cHRvS2V5SE1BQyYgdG9DcnlwdG9LZXlI
TUFDKGNvbnN0IENyeXB0b0tleSYga2V5KQotewotICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lN
UExJQ0FUSU9OKGlzQ3J5cHRvS2V5SE1BQyhrZXkpKTsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8
Y29uc3QgQ3J5cHRvS2V5SE1BQyY+KGtleSk7Ci19Ci0KLWlubGluZSBDcnlwdG9LZXlITUFDJiB0
b0NyeXB0b0tleUhNQUMoQ3J5cHRvS2V5JiBrZXkpCi17Ci0gICAgQVNTRVJUX1dJVEhfU0VDVVJJ
VFlfSU1QTElDQVRJT04oaXNDcnlwdG9LZXlITUFDKGtleSkpOwotICAgIHJldHVybiBzdGF0aWNf
Y2FzdDxDcnlwdG9LZXlITUFDJj4oa2V5KTsKLX0KK0NSWVBUT19LRVlfVFlQRV9DQVNUUyhDcnlw
dG9LZXlITUFDKQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2NyeXB0by9rZXlzL0NyeXB0b0tleVJTQS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2NyeXB0by9rZXlzL0NyeXB0b0tleVJTQS5oCShyZXZpc2lvbiAxNTkyMDMpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9jcnlwdG8va2V5cy9DcnlwdG9LZXlSU0EuaAkod29ya2luZyBjb3B5KQpAQCAt
NzQsMTcgKzc0LDcgQEAgaW5saW5lIGJvb2wgaXNDcnlwdG9LZXlSU0EoY29uc3QgQ3J5cHRvSwog
ICAgIHJldHVybiBrZXkua2V5Q2xhc3MoKSA9PSBDcnlwdG9LZXlDbGFzczo6UlNBOwogfQogCi1p
bmxpbmUgY29uc3QgQ3J5cHRvS2V5UlNBJiB0b0NyeXB0b0tleVJTQShjb25zdCBDcnlwdG9LZXkm
IGtleSkKLXsKLSAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTihpc0NyeXB0b0tl
eVJTQShrZXkpKTsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Y29uc3QgQ3J5cHRvS2V5UlNBJj4o
a2V5KTsKLX0KLQotaW5saW5lIENyeXB0b0tleVJTQSYgYXNDcnlwdG9LZXlSU0EoQ3J5cHRvS2V5
JiBrZXkpCi17Ci0gICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oaXNDcnlwdG9L
ZXlSU0Eoa2V5KSk7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PENyeXB0b0tleVJTQSY+KGtleSk7
Ci19CitDUllQVE9fS0VZX1RZUEVfQ0FTVFMoQ3J5cHRvS2V5UlNBKQogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2NyeXB0by9rZXlzL0NyeXB0b0tleVNl
cmlhbGl6YXRpb25SYXcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jcnlwdG8va2V5
cy9DcnlwdG9LZXlTZXJpYWxpemF0aW9uUmF3LmgJKHJldmlzaW9uIDE1OTIwMykKKysrIFNvdXJj
ZS9XZWJDb3JlL2NyeXB0by9rZXlzL0NyeXB0b0tleVNlcmlhbGl6YXRpb25SYXcuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMzUsNyArMzUsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBD
cnlwdG9LZXlTZXJpYWxpemF0aW9uUmF3IEZJTkFMIDogcHVibGljIENyeXB0b0tleVNlcmlhbGl6
YXRpb24gewotV1RGX01BS0VfTk9OQ09QWUFCTEUoQ3J5cHRvS2V5U2VyaWFsaXphdGlvblJhdyk7
CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoQ3J5cHRvS2V5U2VyaWFsaXphdGlvblJhdyk7CiBw
dWJsaWM6CiAgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxDcnlwdG9LZXlTZXJpYWxpemF0aW9u
UmF3PiBjcmVhdGUoY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYgZGF0YSkKICAgICB7CkBAIC00
NCw2ICs0NCw5IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgfkNyeXB0b0tleVNlcmlhbGl6YXRp
b25SYXcoKTsKIAorcHJpdmF0ZToKKyAgICBDcnlwdG9LZXlTZXJpYWxpemF0aW9uUmF3KGNvbnN0
IENyeXB0b09wZXJhdGlvbkRhdGEmKTsKKwogICAgIHZpcnR1YWwgYm9vbCByZWNvbmNpbGVBbGdv
cml0aG0oc3RkOjp1bmlxdWVfcHRyPENyeXB0b0FsZ29yaXRobT4mLCBzdGQ6OnVuaXF1ZV9wdHI8
Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycz4mKSBjb25zdCBPVkVSUklERTsKIAogICAgIHZpcnR1
YWwgdm9pZCByZWNvbmNpbGVVc2FnZXMoQ3J5cHRvS2V5VXNhZ2UmKSBjb25zdCBPVkVSUklERTsK
QEAgLTUxLDkgKzU0LDYgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBzdGQ6OnVuaXF1ZV9wdHI8
Q3J5cHRvS2V5RGF0YT4ga2V5RGF0YSgpIGNvbnN0IE9WRVJSSURFOwogCi1wcml2YXRlOgotICAg
IENyeXB0b0tleVNlcmlhbGl6YXRpb25SYXcoY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYpOwot
CiAgICAgVmVjdG9yPGNoYXI+IG1fZGF0YTsKIH07CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Ny
eXB0by9tYWMvQ3J5cHRvQWxnb3JpdGhtQUVTX0NCQ01hYy5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvY3J5cHRvL21hYy9DcnlwdG9BbGdvcml0aG1BRVNfQ0JDTWFjLmNwcAkocmV2
aXNpb24gMTU5MjAzKQorKysgU291cmNlL1dlYkNvcmUvY3J5cHRvL21hYy9DcnlwdG9BbGdvcml0
aG1BRVNfQ0JDTWFjLmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTEsNyArOTEsNyBAQCBzdGF0aWMg
dm9pZCB0cmFuc2Zvcm1BRVNfQ0JDKENDT3BlcmF0aW9uCiAKIHZvaWQgQ3J5cHRvQWxnb3JpdGht
QUVTX0NCQzo6ZW5jcnlwdChjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzJiBwYXJhbWV0
ZXJzLCBjb25zdCBDcnlwdG9LZXkmIGtleSwgY29uc3QgVmVjdG9yPENyeXB0b09wZXJhdGlvbkRh
dGE+JiBkYXRhLCBzdGQ6OnVuaXF1ZV9wdHI8UHJvbWlzZVdyYXBwZXI+IHByb21pc2UsIEV4Y2Vw
dGlvbkNvZGUmIGVjKQogewotICAgIGNvbnN0IENyeXB0b0FsZ29yaXRobUFlc0NiY1BhcmFtcyYg
YWVzQ0JDUGFyYW1ldGVycyA9IHN0YXRpY19jYXN0PGNvbnN0IENyeXB0b0FsZ29yaXRobUFlc0Ni
Y1BhcmFtcyY+KHBhcmFtZXRlcnMpOworICAgIGNvbnN0IENyeXB0b0FsZ29yaXRobUFlc0NiY1Bh
cmFtcyYgYWVzQ0JDUGFyYW1ldGVycyA9IHRvQ3J5cHRvQWxnb3JpdGhtQWVzQ2JjUGFyYW1zKHBh
cmFtZXRlcnMpOwogCiAgICAgaWYgKCFpc0NyeXB0b0tleUFFUyhrZXkpKSB7CiAgICAgICAgIGVj
ID0gTk9UX1NVUFBPUlRFRF9FUlI7CkBAIC0xMDQsNyArMTA0LDcgQEAgdm9pZCBDcnlwdG9BbGdv
cml0aG1BRVNfQ0JDOjplbmNyeXB0KGNvbgogCiB2b2lkIENyeXB0b0FsZ29yaXRobUFFU19DQkM6
OmRlY3J5cHQoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycyYgcGFyYW1ldGVycywgY29u
c3QgQ3J5cHRvS2V5JiBrZXksIGNvbnN0IFZlY3RvcjxDcnlwdG9PcGVyYXRpb25EYXRhPiYgZGF0
YSwgc3RkOjp1bmlxdWVfcHRyPFByb21pc2VXcmFwcGVyPiBwcm9taXNlLCBFeGNlcHRpb25Db2Rl
JiBlYykKIHsKLSAgICBjb25zdCBDcnlwdG9BbGdvcml0aG1BZXNDYmNQYXJhbXMmIGFlc0NCQ1Bh
cmFtZXRlcnMgPSBzdGF0aWNfY2FzdDxjb25zdCBDcnlwdG9BbGdvcml0aG1BZXNDYmNQYXJhbXMm
PihwYXJhbWV0ZXJzKTsKKyAgICBjb25zdCBDcnlwdG9BbGdvcml0aG1BZXNDYmNQYXJhbXMmIGFl
c0NCQ1BhcmFtZXRlcnMgPSB0b0NyeXB0b0FsZ29yaXRobUFlc0NiY1BhcmFtcyhwYXJhbWV0ZXJz
KTsKIAogICAgIGlmICghaXNDcnlwdG9LZXlBRVMoa2V5KSkgewogICAgICAgICBlYyA9IE5PVF9T
VVBQT1JURURfRVJSOwpJbmRleDogU291cmNlL1dlYkNvcmUvY3J5cHRvL21hYy9DcnlwdG9BbGdv
cml0aG1ITUFDTWFjLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jcnlwdG8vbWFj
L0NyeXB0b0FsZ29yaXRobUhNQUNNYWMuY3BwCShyZXZpc2lvbiAxNTkyMDMpCisrKyBTb3VyY2Uv
V2ViQ29yZS9jcnlwdG8vbWFjL0NyeXB0b0FsZ29yaXRobUhNQUNNYWMuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC05NCw3ICs5NCw3IEBAIHN0YXRpYyBWZWN0b3I8dW5zaWduZWQgY2hhcj4gY2FsY3Vs
YXRlU2kKIAogdm9pZCBDcnlwdG9BbGdvcml0aG1ITUFDOjpzaWduKGNvbnN0IENyeXB0b0FsZ29y
aXRobVBhcmFtZXRlcnMmIHBhcmFtZXRlcnMsIGNvbnN0IENyeXB0b0tleSYga2V5LCBjb25zdCBW
ZWN0b3I8Q3J5cHRvT3BlcmF0aW9uRGF0YT4mIGRhdGEsIHN0ZDo6dW5pcXVlX3B0cjxQcm9taXNl
V3JhcHBlcj4gcHJvbWlzZSwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7Ci0gICAgY29uc3QgQ3J5cHRv
QWxnb3JpdGhtSG1hY1BhcmFtcyYgaG1hY1BhcmFtZXRlcnMgPSBzdGF0aWNfY2FzdDxjb25zdCBD
cnlwdG9BbGdvcml0aG1IbWFjUGFyYW1zJj4ocGFyYW1ldGVycyk7CisgICAgY29uc3QgQ3J5cHRv
QWxnb3JpdGhtSG1hY1BhcmFtcyYgaG1hY1BhcmFtZXRlcnMgPSB0b0NyeXB0b0FsZ29yaXRobUht
YWNQYXJhbXMocGFyYW1ldGVycyk7CiAKICAgICBpZiAoIWlzQ3J5cHRvS2V5SE1BQyhrZXkpKSB7
CiAgICAgICAgIGVjID0gTk9UX1NVUFBPUlRFRF9FUlI7CkBAIC0xMTUsNyArMTE1LDcgQEAgdm9p
ZCBDcnlwdG9BbGdvcml0aG1ITUFDOjpzaWduKGNvbnN0IENyeQogCiB2b2lkIENyeXB0b0FsZ29y
aXRobUhNQUM6OnZlcmlmeShjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzJiBwYXJhbWV0
ZXJzLCBjb25zdCBDcnlwdG9LZXkmIGtleSwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYgZXhw
ZWN0ZWRTaWduYXR1cmUsIGNvbnN0IFZlY3RvcjxDcnlwdG9PcGVyYXRpb25EYXRhPiYgZGF0YSwg
c3RkOjp1bmlxdWVfcHRyPFByb21pc2VXcmFwcGVyPiBwcm9taXNlLCBFeGNlcHRpb25Db2RlJiBl
YykKIHsKLSAgICBjb25zdCBDcnlwdG9BbGdvcml0aG1IbWFjUGFyYW1zJiBobWFjUGFyYW1ldGVy
cyA9IHN0YXRpY19jYXN0PGNvbnN0IENyeXB0b0FsZ29yaXRobUhtYWNQYXJhbXMmPihwYXJhbWV0
ZXJzKTsKKyAgICBjb25zdCBDcnlwdG9BbGdvcml0aG1IbWFjUGFyYW1zJiBobWFjUGFyYW1ldGVy
cyA9IHRvQ3J5cHRvQWxnb3JpdGhtSG1hY1BhcmFtcyhwYXJhbWV0ZXJzKTsKIAogICAgIGlmICgh
aXNDcnlwdG9LZXlITUFDKGtleSkpIHsKICAgICAgICAgZWMgPSBOT1RfU1VQUE9SVEVEX0VSUjsK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2NyeXB0by9wYXJhbWV0ZXJzL0NyeXB0b0FsZ29yaXRobUFl
c0NiY1BhcmFtcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2NyeXB0by9wYXJhbWV0
ZXJzL0NyeXB0b0FsZ29yaXRobUFlc0NiY1BhcmFtcy5oCShyZXZpc2lvbiAxNTkyMDMpCisrKyBT
b3VyY2UvV2ViQ29yZS9jcnlwdG8vcGFyYW1ldGVycy9DcnlwdG9BbGdvcml0aG1BZXNDYmNQYXJh
bXMuaAkod29ya2luZyBjb3B5KQpAQCAtMzcsOCArMzcsMTIgQEAgY2xhc3MgQ3J5cHRvQWxnb3Jp
dGhtQWVzQ2JjUGFyYW1zIEZJTkFMIAogcHVibGljOgogICAgIC8vIFRoZSBpbml0aWFsaXphdGlv
biB2ZWN0b3IuIE1VU1QgYmUgMTYgYnl0ZXMuCiAgICAgRml4ZWRBcnJheTxjaGFyLCAxNj4gaXY7
CisKKyAgICB2aXJ0dWFsIENsYXNzIHBhcmFtZXRlcnNDbGFzcygpIGNvbnN0IE9WRVJSSURFIHsg
cmV0dXJuIENsYXNzOjpBZXNDYmNQYXJhbXM7IH0KIH07CiAKK0NSWVBUT19BTEdPUklUSE1fUEFS
QU1FVEVSU19DQVNUUyhBZXNDYmNQYXJhbXMpCisKIH0KIAogI2VuZGlmIC8vIEVOQUJMRShTVUJU
TEVfQ1JZUFRPKQpJbmRleDogU291cmNlL1dlYkNvcmUvY3J5cHRvL3BhcmFtZXRlcnMvQ3J5cHRv
QWxnb3JpdGhtQWVzS2V5R2VuUGFyYW1zLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
Y3J5cHRvL3BhcmFtZXRlcnMvQ3J5cHRvQWxnb3JpdGhtQWVzS2V5R2VuUGFyYW1zLmgJKHJldmlz
aW9uIDE1OTIwMykKKysrIFNvdXJjZS9XZWJDb3JlL2NyeXB0by9wYXJhbWV0ZXJzL0NyeXB0b0Fs
Z29yaXRobUFlc0tleUdlblBhcmFtcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw4ICszNiwxMiBA
QCBjbGFzcyBDcnlwdG9BbGdvcml0aG1BZXNLZXlHZW5QYXJhbXMgRklOCiBwdWJsaWM6CiAgICAg
Ly8gVGhlIGxlbmd0aCwgaW4gYml0cywgb2YgdGhlIGtleS4KICAgICB1bnNpZ25lZCBsZW5ndGg7
CisKKyAgICB2aXJ0dWFsIENsYXNzIHBhcmFtZXRlcnNDbGFzcygpIGNvbnN0IE9WRVJSSURFIHsg
cmV0dXJuIENsYXNzOjpBZXNLZXlHZW5QYXJhbXM7IH0KIH07CiAKK0NSWVBUT19BTEdPUklUSE1f
UEFSQU1FVEVSU19DQVNUUyhBZXNLZXlHZW5QYXJhbXMpCisKIH0KIAogI2VuZGlmIC8vIEVOQUJM
RShTVUJUTEVfQ1JZUFRPKQpJbmRleDogU291cmNlL1dlYkNvcmUvY3J5cHRvL3BhcmFtZXRlcnMv
Q3J5cHRvQWxnb3JpdGhtSG1hY0tleVBhcmFtcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2NyeXB0by9wYXJhbWV0ZXJzL0NyeXB0b0FsZ29yaXRobUhtYWNLZXlQYXJhbXMuaAkocmV2
aXNpb24gMTU5MjAzKQorKysgU291cmNlL1dlYkNvcmUvY3J5cHRvL3BhcmFtZXRlcnMvQ3J5cHRv
QWxnb3JpdGhtSG1hY0tleVBhcmFtcy5oCSh3b3JraW5nIGNvcHkpCkBAIC00Nyw4ICs0NywxMiBA
QCBwdWJsaWM6CiAgICAgLy8gd2hpY2ggaXMgdGhlIHNpemUgb2YgdGhlIGFzc29jaWF0ZWQgaGFz
aCBmdW5jdGlvbidzIGJsb2NrIHNpemUuCiAgICAgYm9vbCBoYXNMZW5ndGg7CiAgICAgdW5zaWdu
ZWQgbGVuZ3RoOworCisgICAgdmlydHVhbCBDbGFzcyBwYXJhbWV0ZXJzQ2xhc3MoKSBjb25zdCBP
VkVSUklERSB7IHJldHVybiBDbGFzczo6SG1hY0tleVBhcmFtczsgfQogfTsKIAorQ1JZUFRPX0FM
R09SSVRITV9QQVJBTUVURVJTX0NBU1RTKEhtYWNLZXlQYXJhbXMpCisKIH0KIAogI2VuZGlmIC8v
IEVOQUJMRShTVUJUTEVfQ1JZUFRPKQpJbmRleDogU291cmNlL1dlYkNvcmUvY3J5cHRvL3BhcmFt
ZXRlcnMvQ3J5cHRvQWxnb3JpdGhtSG1hY1BhcmFtcy5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2NyeXB0by9wYXJhbWV0ZXJzL0NyeXB0b0FsZ29yaXRobUhtYWNQYXJhbXMuaAkocmV2
aXNpb24gMTU5MjAzKQorKysgU291cmNlL1dlYkNvcmUvY3J5cHRvL3BhcmFtZXRlcnMvQ3J5cHRv
QWxnb3JpdGhtSG1hY1BhcmFtcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw4ICszNywxMiBAQCBj
bGFzcyBDcnlwdG9BbGdvcml0aG1IbWFjUGFyYW1zIEZJTkFMIDogCiBwdWJsaWM6CiAgICAgLy8g
VGhlIGlubmVyIGhhc2ggZnVuY3Rpb24gdG8gdXNlLgogICAgIENyeXB0b0FsZ29yaXRobUlkZW50
aWZpZXIgaGFzaDsKKworICAgIHZpcnR1YWwgQ2xhc3MgcGFyYW1ldGVyc0NsYXNzKCkgY29uc3Qg
T1ZFUlJJREUgeyByZXR1cm4gQ2xhc3M6OkhtYWNQYXJhbXM7IH0KIH07CiAKK0NSWVBUT19BTEdP
UklUSE1fUEFSQU1FVEVSU19DQVNUUyhIbWFjUGFyYW1zKQorCiB9CiAKICNlbmRpZiAvLyBFTkFC
TEUoU1VCVExFX0NSWVBUTykKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2NyeXB0by9wYXJhbWV0ZXJz
L0NyeXB0b0FsZ29yaXRobVJzYUtleUdlblBhcmFtcy5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2NyeXB0by9wYXJhbWV0ZXJzL0NyeXB0b0FsZ29yaXRobVJzYUtleUdlblBhcmFtcy5o
CShyZXZpc2lvbiAxNTkyMDMpCisrKyBTb3VyY2UvV2ViQ29yZS9jcnlwdG8vcGFyYW1ldGVycy9D
cnlwdG9BbGdvcml0aG1Sc2FLZXlHZW5QYXJhbXMuaAkod29ya2luZyBjb3B5KQpAQCAtMzgsOCAr
MzgsMTIgQEAgcHVibGljOgogICAgIHVuc2lnbmVkIG1vZHVsdXNMZW5ndGg7CiAgICAgLy8gVGhl
IFJTQSBwdWJsaWMgZXhwb25lbnQsIGVuY29kZWQgYXMgQmlnSW50ZWdlci4KICAgICBWZWN0b3I8
Y2hhcj4gcHVibGljRXhwb25lbnQ7CisKKyAgICB2aXJ0dWFsIENsYXNzIHBhcmFtZXRlcnNDbGFz
cygpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIENsYXNzOjpSc2FLZXlHZW5QYXJhbXM7IH0KIH07
CiAKK0NSWVBUT19BTEdPUklUSE1fUEFSQU1FVEVSU19DQVNUUyhSc2FLZXlHZW5QYXJhbXMpCisK
IH0KIAogI2VuZGlmIC8vIEVOQUJMRShTVUJUTEVfQ1JZUFRPKQpJbmRleDogU291cmNlL1dlYkNv
cmUvY3J5cHRvL3BhcmFtZXRlcnMvQ3J5cHRvQWxnb3JpdGhtUnNhU3NhS2V5UGFyYW1zLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3J5cHRvL3BhcmFtZXRlcnMvQ3J5cHRvQWxnb3Jp
dGhtUnNhU3NhS2V5UGFyYW1zLmgJKHJldmlzaW9uIDE1OTIwMykKKysrIFNvdXJjZS9XZWJDb3Jl
L2NyeXB0by9wYXJhbWV0ZXJzL0NyeXB0b0FsZ29yaXRobVJzYVNzYUtleVBhcmFtcy5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC00Niw4ICs0NiwxMiBAQCBwdWJsaWM6CiAgICAgLy8gVGhlIGhhc2ggYWxn
b3JpdGhtIHRvIHVzZS4KICAgICBib29sIGhhc0hhc2g7CiAgICAgQ3J5cHRvQWxnb3JpdGhtSWRl
bnRpZmllciBoYXNoOworCisgICAgdmlydHVhbCBDbGFzcyBwYXJhbWV0ZXJzQ2xhc3MoKSBjb25z
dCBPVkVSUklERSB7IHJldHVybiBDbGFzczo6UnNhU3NhS2V5UGFyYW1zOyB9CiB9OwogCitDUllQ
VE9fQUxHT1JJVEhNX1BBUkFNRVRFUlNfQ0FTVFMoUnNhU3NhS2V5UGFyYW1zKQorCiB9CiAKICNl
bmRpZiAvLyBFTkFCTEUoU1VCVExFX0NSWVBUTykKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2NyeXB0
by9wYXJhbWV0ZXJzL0NyeXB0b0FsZ29yaXRobVJzYVNzYVBhcmFtcy5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2NyeXB0by9wYXJhbWV0ZXJzL0NyeXB0b0FsZ29yaXRobVJzYVNzYVBh
cmFtcy5oCShyZXZpc2lvbiAxNTkyMDMpCisrKyBTb3VyY2UvV2ViQ29yZS9jcnlwdG8vcGFyYW1l
dGVycy9DcnlwdG9BbGdvcml0aG1Sc2FTc2FQYXJhbXMuaAkod29ya2luZyBjb3B5KQpAQCAtMzcs
OCArMzcsMTIgQEAgY2xhc3MgQ3J5cHRvQWxnb3JpdGhtUnNhU3NhUGFyYW1zIEZJTkFMIAogcHVi
bGljOgogICAgIC8vIFRoZSBoYXNoIGFsZ29yaXRobSB0byB1c2UuCiAgICAgQ3J5cHRvQWxnb3Jp
dGhtSWRlbnRpZmllciBoYXNoOworCisgICAgdmlydHVhbCBDbGFzcyBwYXJhbWV0ZXJzQ2xhc3Mo
KSBjb25zdCBPVkVSUklERSB7IHJldHVybiBDbGFzczo6UnNhU3NhUGFyYW1zOyB9CiB9OwogCitD
UllQVE9fQUxHT1JJVEhNX1BBUkFNRVRFUlNfQ0FTVFMoUnNhU3NhUGFyYW1zKQorCiB9CiAKICNl
bmRpZiAvLyBFTkFCTEUoU1VCVExFX0NSWVBUTykK
</data>
<flag name="review"
          id="239875"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>