<?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>124483</bug_id>
          
          <creation_ts>2013-11-18 00:43:33 -0800</creation_ts>
          <short_desc>Support exporting private WebCrypto RSA keys</short_desc>
          <delta_ts>2013-12-03 12:19:01 -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>andersca</cc>
    
    <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>951521</commentid>
    <comment_count>0</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-11-18 00:43:33 -0800</bug_when>
    <thetext>The difficulty here is that CommonCrypto functions don&apos;t expose all key parts necessary for JWK, so we&apos;ll need to compute them from prime factors manually.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>956039</commentid>
    <comment_count>1</comment_count>
      <attachid>218322</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-12-03 12:10:58 -0800</bug_when>
    <thetext>Created attachment 218322
proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>956043</commentid>
    <comment_count>2</comment_count>
      <attachid>218322</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-12-03 12:13:25 -0800</bug_when>
    <thetext>Comment on attachment 218322
proposed patch

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

&gt; Source/WebCore/crypto/CommonCryptoUtilities.cpp:82
&gt; +    RELEASE_ASSERT(!status);

I’d rather assert status == kCCSuccess here (and all the other places).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>956044</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-12-03 12:13:30 -0800</bug_when>
    <thetext>Attachment 218322 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/crypto/subtle/rsa-export-private-key-expected.txt&apos;, u&apos;LayoutTests/crypto/subtle/rsa-export-private-key.html&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCore/crypto/CommonCryptoUtilities.cpp&apos;, u&apos;Source/WebCore/crypto/CommonCryptoUtilities.h&apos;, u&apos;Source/WebCore/crypto/mac/CryptoKeyRSAMac.cpp&apos;]&quot; exit_code: 1
ERROR: Source/WebCore/crypto/CommonCryptoUtilities.cpp:32:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebCore/crypto/CommonCryptoUtilities.h:100:  Missing spaces around &amp;&amp;  [whitespace/operators] [3]
ERROR: Source/WebCore/crypto/CommonCryptoUtilities.h:102:  Missing spaces around &amp;&amp;  [whitespace/operators] [3]
Total errors found: 3 in 7 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>956046</commentid>
    <comment_count>4</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-12-03 12:15:37 -0800</bug_when>
    <thetext>Committed &lt;http://trac.webkit.org/r160029&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>956047</commentid>
    <comment_count>5</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-12-03 12:16:53 -0800</bug_when>
    <thetext>&gt; I’d rather assert status == kCCSuccess here (and all the other places).

These pretty much only fail on out of memory conditions, which is normally a release assert for us.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>956048</commentid>
    <comment_count>6</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-12-03 12:18:18 -0800</bug_when>
    <thetext>Or did you mean a RELEASE_ASSERT in a different form? I personally prefer &quot;status == kCCSuccess&quot; too, but I don&apos;t think we ever do that for other types.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>956049</commentid>
    <comment_count>7</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-12-03 12:19:01 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; Or did you mean a RELEASE_ASSERT in a different form? I personally prefer &quot;status == kCCSuccess&quot; too, but I don&apos;t think we ever do that for other types.

I mean i like the condition to be (status == kCCSuccess) as opposed to (!status) since it’s not clear (to me anyway) that kCCSuccess is 0.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>218322</attachid>
            <date>2013-12-03 12:10:58 -0800</date>
            <delta_ts>2013-12-03 12:13:25 -0800</delta_ts>
            <desc>proposed patch</desc>
            <filename>PrivateKeyRSA.txt</filename>
            <type>text/plain</type>
            <size>15961</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2MDAyNykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMwIEBACisyMDEzLTEyLTAzICBBbGV4ZXkg
UHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgorCisgICAgICAgIFN1cHBvcnQgZXhwb3J0aW5n
IHByaXZhdGUgV2ViQ3J5cHRvIFJTQSBrZXlzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMjQ0ODMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBUZXN0OiBjcnlwdG8vc3VidGxlL3JzYS1leHBvcnQtcHJpdmF0
ZS1rZXkuaHRtbAorCisgICAgICAgIEl0IG1pZ2h0IGJlIGJldHRlciB0byBoYXZlIG91ciBvd24g
YmlnbnVtIGltcGxlbWVudGF0aW9uIGluIFdURiwgYnV0IHdlIGN1cnJlbnRseQorICAgICAgICBk
b24ndCwgYW5kIHRoZSBuZWVkIGZvciB0aGlzIGNvbXB1dGF0aW9uIGlzIENvbW1vbiBDcnlwdG8g
c3BlY2lmaWMgYW55d2F5LgorCisgICAgICAgICogY3J5cHRvL0NvbW1vbkNyeXB0b1V0aWxpdGll
cy5oOgorICAgICAgICAqIGNyeXB0by9Db21tb25DcnlwdG9VdGlsaXRpZXMuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Q0NCaWdOdW06OkNDQmlnTnVtKToKKyAgICAgICAgKFdlYkNvcmU6OkNDQmln
TnVtOjp+Q0NCaWdOdW0pOgorICAgICAgICAoV2ViQ29yZTo6Q0NCaWdOdW06Om9wZXJhdG9yPSk6
CisgICAgICAgIChXZWJDb3JlOjpDQ0JpZ051bTo6ZGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpD
Q0JpZ051bTo6b3BlcmF0b3ItKToKKyAgICAgICAgKFdlYkNvcmU6OkNDQmlnTnVtOjpvcGVyYXRv
ciUpOgorICAgICAgICAoV2ViQ29yZTo6Q0NCaWdOdW06OmludmVyc2UpOgorICAgICAgICBBZGRl
ZCBhIG1pbmltYWwgd3JhcHBlciBhcm91bmQgQ29tbW9uQ3J5cHRvIEJpZ051bS4KKworICAgICAg
ICAqIGNyeXB0by9tYWMvQ3J5cHRvS2V5UlNBTWFjLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Omdl
dFByaXZhdGVLZXlDb21wb25lbnRzKTogQ29tcHV0ZSBtaXNzaW5nIHBhcnRzIHVzaW5nIENDQmln
TnVtLgorICAgICAgICAoV2ViQ29yZTo6Q3J5cHRvS2V5UlNBOjpleHBvcnREYXRhKTogSW1wbGVt
ZW50ZWQgcHJpdmF0ZSBrZXkgY2FzZS4KKwogMjAxMy0xMi0wMyAgUnlvc3VrZSBOaXdhICA8cm5p
d2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBYTUwgZnJhZ21lbnQgcGFyc2luZyBhbGdvcml0aG0g
ZG9lc24ndCB1c2UgdGhlIGNvbnRleHQgZWxlbWVudCdzIGRlZmF1bHQgbmFtZXNwYWNlIFVSSQpJ
bmRleDogU291cmNlL1dlYkNvcmUvY3J5cHRvL0NvbW1vbkNyeXB0b1V0aWxpdGllcy5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3J5cHRvL0NvbW1vbkNyeXB0b1V0aWxpdGllcy5j
cHAJKHJldmlzaW9uIDE2MDAxMSkKKysrIFNvdXJjZS9XZWJDb3JlL2NyeXB0by9Db21tb25Dcnlw
dG9VdGlsaXRpZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCwyMyBAQAogCiAjaWYg
RU5BQkxFKFNVQlRMRV9DUllQVE8pCiAKKyNpZiBkZWZpbmVkKF9faGFzX2luY2x1ZGUpCisjaWYg
X19oYXNfaW5jbHVkZSg8Q29tbW9uQ3J5cHRvL0NvbW1vbkJpZ051bS5oPikKKyNpbmNsdWRlIDxD
b21tb25DcnlwdG8vQ29tbW9uQmlnTnVtLmg+CisjZW5kaWYKKyNlbmRpZgorCit0eXBlZGVmIEND
Q3J5cHRvclN0YXR1cyBDQ1N0YXR1czsKK2V4dGVybiAiQyIgQ0NCaWdOdW1SZWYgQ0NCaWdOdW1G
cm9tRGF0YShDQ1N0YXR1cyAqc3RhdHVzLCBjb25zdCB2b2lkICpzLCBzaXplX3QgbGVuKTsKK2V4
dGVybiAiQyIgc2l6ZV90IENDQmlnTnVtVG9EYXRhKENDU3RhdHVzICpzdGF0dXMsIGNvbnN0IEND
QmlnTnVtUmVmIGJuLCB2b2lkICp0byk7CitleHRlcm4gIkMiIHVpbnQzMl90IENDQmlnTnVtQnl0
ZUNvdW50KGNvbnN0IENDQmlnTnVtUmVmIGJuKTsKK2V4dGVybiAiQyIgQ0NCaWdOdW1SZWYgQ0ND
cmVhdGVCaWdOdW0oQ0NTdGF0dXMgKnN0YXR1cyk7CitleHRlcm4gIkMiIHZvaWQgQ0NCaWdOdW1G
cmVlKENDQmlnTnVtUmVmIGJuKTsKK2V4dGVybiAiQyIgQ0NCaWdOdW1SZWYgQ0NCaWdOdW1Db3B5
KENDU3RhdHVzICpzdGF0dXMsIGNvbnN0IENDQmlnTnVtUmVmIGJuKTsKK2V4dGVybiAiQyIgQ0NT
dGF0dXMgQ0NCaWdOdW1TdWJJKENDQmlnTnVtUmVmIHJlc3VsdCwgY29uc3QgQ0NCaWdOdW1SZWYg
YSwgY29uc3QgdWludDMyX3QgYik7CitleHRlcm4gIkMiIENDU3RhdHVzIENDQmlnTnVtTW9kKEND
QmlnTnVtUmVmIHJlc3VsdCwgQ0NCaWdOdW1SZWYgZGl2aWRlbmQsIENDQmlnTnVtUmVmIG1vZHVs
dXMpOworZXh0ZXJuICJDIiBDQ1N0YXR1cyBDQ0JpZ051bUludmVyc2VNb2QoQ0NCaWdOdW1SZWYg
cmVzdWx0LCBjb25zdCBDQ0JpZ051bVJlZiBhLCBjb25zdCBDQ0JpZ051bVJlZiBtb2R1bHVzKTsK
KwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBib29sIGdldENvbW1vbkNyeXB0b0RpZ2VzdEFsZ29y
aXRobShDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIGhhc2hGdW5jdGlvbiwgQ0NEaWdlc3RBbGdv
cml0aG0mIGFsZ29yaXRobSkKQEAgLTUzLDYgKzcwLDEwNiBAQCBib29sIGdldENvbW1vbkNyeXB0
b0RpZ2VzdEFsZ29yaXRobShDcnlwCiAgICAgfQogfQogCitDQ0JpZ051bTo6Q0NCaWdOdW0oQ0NC
aWdOdW1SZWYgbnVtYmVyKQorICAgIDogbV9udW1iZXIobnVtYmVyKQoreworfQorCitDQ0JpZ051
bTo6Q0NCaWdOdW0oY29uc3QgdWludDhfdCogZGF0YSwgc2l6ZV90IHNpemUpCit7CisgICAgQ0NT
dGF0dXMgc3RhdHVzID0ga0NDU3VjY2VzczsKKyAgICBtX251bWJlciA9IENDQmlnTnVtRnJvbURh
dGEoJnN0YXR1cywgZGF0YSwgc2l6ZSk7CisgICAgUkVMRUFTRV9BU1NFUlQoIXN0YXR1cyk7Cit9
CisKK0NDQmlnTnVtOjp+Q0NCaWdOdW0oKQoreworICAgIENDQmlnTnVtRnJlZShtX251bWJlcik7
Cit9CisKK0NDQmlnTnVtOjpDQ0JpZ051bShjb25zdCBDQ0JpZ051bSYgb3RoZXIpCit7CisgICAg
Q0NTdGF0dXMgc3RhdHVzID0ga0NDU3VjY2VzczsKKyAgICBtX251bWJlciA9IENDQmlnTnVtQ29w
eSgmc3RhdHVzLCBvdGhlci5tX251bWJlcik7CisgICAgUkVMRUFTRV9BU1NFUlQoIXN0YXR1cyk7
Cit9CisKK0NDQmlnTnVtOjpDQ0JpZ051bShDQ0JpZ051bSYmIG90aGVyKQoreworICAgIG1fbnVt
YmVyID0gb3RoZXIubV9udW1iZXI7CisgICAgb3RoZXIubV9udW1iZXIgPSBudWxscHRyOworfQor
CitDQ0JpZ051bSYgQ0NCaWdOdW06Om9wZXJhdG9yPShjb25zdCBDQ0JpZ051bSYgb3RoZXIpCit7
CisgICAgaWYgKHRoaXMgPT0gJm90aGVyKQorICAgICAgICByZXR1cm4gKnRoaXM7CisKKyAgICBD
Q0JpZ051bUZyZWUobV9udW1iZXIpOworCisgICAgQ0NTdGF0dXMgc3RhdHVzID0ga0NDU3VjY2Vz
czsKKyAgICBtX251bWJlciA9IENDQmlnTnVtQ29weSgmc3RhdHVzLCBvdGhlci5tX251bWJlcik7
CisgICAgUkVMRUFTRV9BU1NFUlQoIXN0YXR1cyk7CisgICAgcmV0dXJuICp0aGlzOworfQorCitD
Q0JpZ051bSYgQ0NCaWdOdW06Om9wZXJhdG9yPShDQ0JpZ051bSYmIG90aGVyKQoreworICAgIGlm
ICh0aGlzID09ICZvdGhlcikKKyAgICAgICAgcmV0dXJuICp0aGlzOworCisgICAgbV9udW1iZXIg
PSBvdGhlci5tX251bWJlcjsKKyAgICBvdGhlci5tX251bWJlciA9IG51bGxwdHI7CisKKyAgICBy
ZXR1cm4gKnRoaXM7Cit9CisKK1ZlY3Rvcjx1aW50OF90PiBDQ0JpZ051bTo6ZGF0YSgpIGNvbnN0
Cit7CisgICAgVmVjdG9yPHVpbnQ4X3Q+IHJlc3VsdChDQ0JpZ051bUJ5dGVDb3VudChtX251bWJl
cikpOworICAgIENDU3RhdHVzIHN0YXR1cyA9IGtDQ1N1Y2Nlc3M7CisgICAgQ0NCaWdOdW1Ub0Rh
dGEoJnN0YXR1cywgbV9udW1iZXIsIHJlc3VsdC5kYXRhKCkpOworICAgIFJFTEVBU0VfQVNTRVJU
KCFzdGF0dXMpOworCisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworQ0NCaWdOdW0gQ0NCaWdOdW06
Om9wZXJhdG9yLSh1aW50MzJfdCBiKSBjb25zdAoreworICAgIENDU3RhdHVzIHN0YXR1cyA9IGtD
Q1N1Y2Nlc3M7CisgICAgQ0NCaWdOdW1SZWYgcmVzdWx0ID0gQ0NDcmVhdGVCaWdOdW0oJnN0YXR1
cyk7CisgICAgUkVMRUFTRV9BU1NFUlQoIXN0YXR1cyk7CisKKyAgICBzdGF0dXMgPSBDQ0JpZ051
bVN1YkkocmVzdWx0LCBtX251bWJlciwgYik7CisgICAgUkVMRUFTRV9BU1NFUlQoIXN0YXR1cyk7
CisKKyAgICByZXR1cm4gcmVzdWx0OworfQorCitDQ0JpZ051bSBDQ0JpZ051bTo6b3BlcmF0b3Il
KGNvbnN0IENDQmlnTnVtJiBtb2R1bHVzKSBjb25zdAoreworICAgIENDU3RhdHVzIHN0YXR1cyA9
IGtDQ1N1Y2Nlc3M7CisgICAgQ0NCaWdOdW1SZWYgcmVzdWx0ID0gQ0NDcmVhdGVCaWdOdW0oJnN0
YXR1cyk7CisgICAgUkVMRUFTRV9BU1NFUlQoIXN0YXR1cyk7CisKKyAgICBzdGF0dXMgPSBDQ0Jp
Z051bU1vZChyZXN1bHQsIG1fbnVtYmVyLCBtb2R1bHVzLm1fbnVtYmVyKTsKKyAgICBSRUxFQVNF
X0FTU0VSVCghc3RhdHVzKTsKKworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK0NDQmlnTnVtIEND
QmlnTnVtOjppbnZlcnNlKGNvbnN0IENDQmlnTnVtJiBtb2R1bHVzKSBjb25zdAoreworICAgIEND
U3RhdHVzIHN0YXR1cyA9IGtDQ1N1Y2Nlc3M7CisgICAgQ0NCaWdOdW1SZWYgcmVzdWx0ID0gQ0ND
cmVhdGVCaWdOdW0oJnN0YXR1cyk7CisgICAgUkVMRUFTRV9BU1NFUlQoIXN0YXR1cyk7CisKKyAg
ICBzdGF0dXMgPSBDQ0JpZ051bUludmVyc2VNb2QocmVzdWx0LCBtX251bWJlciwgbW9kdWx1cy5t
X251bWJlcik7CisgICAgUkVMRUFTRV9BU1NFUlQoIXN0YXR1cyk7CisKKyAgICByZXR1cm4gcmVz
dWx0OworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoU1VC
VExFX0NSWVBUTykKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2NyeXB0by9Db21tb25DcnlwdG9VdGls
aXRpZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jcnlwdG8vQ29tbW9uQ3J5cHRv
VXRpbGl0aWVzLmgJKHJldmlzaW9uIDE2MDAxMSkKKysrIFNvdXJjZS9XZWJDb3JlL2NyeXB0by9D
b21tb25DcnlwdG9VdGlsaXRpZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMjksOCArMjksOCBAQAog
I2lmIEVOQUJMRShTVUJUTEVfQ1JZUFRPKQogCiAjaW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGhtSWRl
bnRpZmllci5oIgotCiAjaW5jbHVkZSA8Q29tbW9uQ3J5cHRvL0NvbW1vbkNyeXB0b3IuaD4KKyNp
bmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKICNpZiBkZWZpbmVkKF9faGFzX2luY2x1ZGUpCiAjaWYg
X19oYXNfaW5jbHVkZSg8Q29tbW9uQ3J5cHRvL0NvbW1vblJTQUNyeXB0b3IuaD4pCkBAIC03MSw2
ICs3MSw4IEBAIGVudW0gewogfTsKICNlbmRpZgogCit0eXBlZGVmIHN0cnVjdCBfQ0NCaWdOdW1S
ZWYgKkNDQmlnTnVtUmVmOworCiB0eXBlZGVmIHN0cnVjdCBfX0NDUmFuZG9tICpDQ1JhbmRvbVJl
ZjsKIGV4dGVybiBjb25zdCBDQ1JhbmRvbVJlZiBrQ0NSYW5kb21EZWZhdWx0OwogZXh0ZXJuICJD
IiBpbnQgQ0NSYW5kb21Db3B5Qnl0ZXMoQ0NSYW5kb21SZWYgcm5kLCB2b2lkICpieXRlcywgc2l6
ZV90IGNvdW50KTsKQEAgLTg5LDYgKzkxLDI4IEBAIGV4dGVybiAiQyIgQ0NSU0FLZXlUeXBlIEND
UlNBR2V0S2V5VHlwZSgKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBDQ0JpZ051bSB7
CitwdWJsaWM6CisgICAgQ0NCaWdOdW0oY29uc3QgdWludDhfdCosIHNpemVfdCk7CisgICAgfkND
QmlnTnVtKCk7CisKKyAgICBDQ0JpZ051bShjb25zdCBDQ0JpZ051bSYpOworICAgIENDQmlnTnVt
KENDQmlnTnVtJiYpOworICAgIENDQmlnTnVtJiBvcGVyYXRvcj0oY29uc3QgQ0NCaWdOdW0mKTsK
KyAgICBDQ0JpZ051bSYgb3BlcmF0b3I9KENDQmlnTnVtJiYpOworCisgICAgVmVjdG9yPHVpbnQ4
X3Q+IGRhdGEoKSBjb25zdDsKKworICAgIENDQmlnTnVtIG9wZXJhdG9yLSh1aW50MzJfdCkgY29u
c3Q7CisgICAgQ0NCaWdOdW0gb3BlcmF0b3IlKGNvbnN0IENDQmlnTnVtJikgY29uc3Q7CisgICAg
Q0NCaWdOdW0gaW52ZXJzZShjb25zdCBDQ0JpZ051bSYgbW9kdWx1cykgY29uc3Q7CisKK3ByaXZh
dGU6CisgICAgQ0NCaWdOdW0oQ0NCaWdOdW1SZWYpOworCisgICAgQ0NCaWdOdW1SZWYgbV9udW1i
ZXI7Cit9OworCiBib29sIGdldENvbW1vbkNyeXB0b0RpZ2VzdEFsZ29yaXRobShDcnlwdG9BbGdv
cml0aG1JZGVudGlmaWVyLCBDQ0RpZ2VzdEFsZ29yaXRobSYpOwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jcnlwdG8vbWFjL0NyeXB0b0tleVJTQU1hYy5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3J5cHRvL21hYy9DcnlwdG9LZXlSU0FN
YWMuY3BwCShyZXZpc2lvbiAxNjAwMTEpCisrKyBTb3VyY2UvV2ViQ29yZS9jcnlwdG8vbWFjL0Ny
eXB0b0tleVJTQU1hYy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU5LDYgKzU5LDQyIEBAIHN0YXRp
YyBDQ0NyeXB0b3JTdGF0dXMgZ2V0UHVibGljS2V5Q29tcG8KICAgICByZXR1cm4gc3RhdHVzOwog
fQogCitzdGF0aWMgQ0NDcnlwdG9yU3RhdHVzIGdldFByaXZhdGVLZXlDb21wb25lbnRzKENDUlNB
Q3J5cHRvclJlZiByc2FLZXksIFZlY3Rvcjx1aW50OF90PiYgcHJpdmF0ZUV4cG9uZW50LCBDcnlw
dG9LZXlEYXRhUlNBQ29tcG9uZW50czo6UHJpbWVJbmZvJiBmaXJzdFByaW1lSW5mbywgQ3J5cHRv
S2V5RGF0YVJTQUNvbXBvbmVudHM6OlByaW1lSW5mbyYgc2Vjb25kUHJpbWVJbmZvKQoreworICAg
IEFTU0VSVChDQ1JTQUdldEtleVR5cGUocnNhS2V5KSA9PSBjY1JTQUtleVByaXZhdGUpOworCisg
ICAgVmVjdG9yPHVpbnQ4X3Q+IHVudXNlZE1vZHVsdXMoMTYzODQpOworICAgIHNpemVfdCBtb2R1
bHVzTGVuZ3RoID0gdW51c2VkTW9kdWx1cy5zaXplKCk7CisgICAgcHJpdmF0ZUV4cG9uZW50LnJl
c2l6ZSgxNjM4NCk7CisgICAgc2l6ZV90IGV4cG9uZW50TGVuZ3RoID0gcHJpdmF0ZUV4cG9uZW50
LnNpemUoKTsKKyAgICBmaXJzdFByaW1lSW5mby5wcmltZUZhY3Rvci5yZXNpemUoMTYzODQpOwor
ICAgIHNpemVfdCBwTGVuZ3RoID0gZmlyc3RQcmltZUluZm8ucHJpbWVGYWN0b3Iuc2l6ZSgpOwor
ICAgIHNlY29uZFByaW1lSW5mby5wcmltZUZhY3Rvci5yZXNpemUoMTYzODQpOworICAgIHNpemVf
dCBxTGVuZ3RoID0gc2Vjb25kUHJpbWVJbmZvLnByaW1lRmFjdG9yLnNpemUoKTsKKworICAgIEND
Q3J5cHRvclN0YXR1cyBzdGF0dXMgPSBDQ1JTQUdldEtleUNvbXBvbmVudHMocnNhS2V5LCB1bnVz
ZWRNb2R1bHVzLmRhdGEoKSwgJm1vZHVsdXNMZW5ndGgsIHByaXZhdGVFeHBvbmVudC5kYXRhKCks
ICZleHBvbmVudExlbmd0aCwgZmlyc3RQcmltZUluZm8ucHJpbWVGYWN0b3IuZGF0YSgpLCAmcExl
bmd0aCwgc2Vjb25kUHJpbWVJbmZvLnByaW1lRmFjdG9yLmRhdGEoKSwgJnFMZW5ndGgpOworICAg
IGlmIChzdGF0dXMpCisgICAgICAgIHJldHVybiBzdGF0dXM7CisKKyAgICBwcml2YXRlRXhwb25l
bnQuc2hyaW5rKGV4cG9uZW50TGVuZ3RoKTsKKyAgICBmaXJzdFByaW1lSW5mby5wcmltZUZhY3Rv
ci5zaHJpbmsocExlbmd0aCk7CisgICAgc2Vjb25kUHJpbWVJbmZvLnByaW1lRmFjdG9yLnNocmlu
ayhxTGVuZ3RoKTsKKworICAgIENDQmlnTnVtIGQocHJpdmF0ZUV4cG9uZW50LmRhdGEoKSwgcHJp
dmF0ZUV4cG9uZW50LnNpemUoKSk7CisgICAgQ0NCaWdOdW0gcChmaXJzdFByaW1lSW5mby5wcmlt
ZUZhY3Rvci5kYXRhKCksIGZpcnN0UHJpbWVJbmZvLnByaW1lRmFjdG9yLnNpemUoKSk7CisgICAg
Q0NCaWdOdW0gcShzZWNvbmRQcmltZUluZm8ucHJpbWVGYWN0b3IuZGF0YSgpLCBzZWNvbmRQcmlt
ZUluZm8ucHJpbWVGYWN0b3Iuc2l6ZSgpKTsKKworICAgIENDQmlnTnVtIGRwID0gZCAlIChwIC0g
MSk7CisgICAgQ0NCaWdOdW0gZHEgPSBkICUgKHEgLSAxKTsKKyAgICBDQ0JpZ051bSBxaSA9IHEu
aW52ZXJzZShwKTsKKworICAgIGZpcnN0UHJpbWVJbmZvLmZhY3RvckNSVEV4cG9uZW50ID0gZHAu
ZGF0YSgpOworICAgIHNlY29uZFByaW1lSW5mby5mYWN0b3JDUlRFeHBvbmVudCA9IGRxLmRhdGEo
KTsKKyAgICBzZWNvbmRQcmltZUluZm8uZmFjdG9yQ1JUQ29lZmZpY2llbnQgPSBxaS5kYXRhKCk7
CisKKyAgICByZXR1cm4gc3RhdHVzOworfQorCiBDcnlwdG9LZXlSU0E6OkNyeXB0b0tleVJTQShD
cnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIGlkZW50aWZpZXIsIENyeXB0b0tleVR5cGUgdHlwZSwg
UGxhdGZvcm1SU0FLZXkgcGxhdGZvcm1LZXksIGJvb2wgZXh0cmFjdGFibGUsIENyeXB0b0tleVVz
YWdlIHVzYWdlKQogICAgIDogQ3J5cHRvS2V5KGlkZW50aWZpZXIsIHR5cGUsIGV4dHJhY3RhYmxl
LCB1c2FnZSkKICAgICAsIG1fcGxhdGZvcm1LZXkocGxhdGZvcm1LZXkpCkBAIC0xNjUsOCArMjAx
LDI1IEBAIHN0ZDo6dW5pcXVlX3B0cjxDcnlwdG9LZXlEYXRhPiBDcnlwdG9LZXkKICAgICAgICAg
fQogICAgICAgICByZXR1cm4gQ3J5cHRvS2V5RGF0YVJTQUNvbXBvbmVudHM6OmNyZWF0ZVB1Ymxp
Yyhtb2R1bHVzLCBwdWJsaWNFeHBvbmVudCk7CiAgICAgfQotICAgIGNhc2UgY2NSU0FLZXlQcml2
YXRlOgotICAgICAgICAvLyBOb3Qgc3VwcG9ydGVkIHlldC4KKyAgICBjYXNlIGNjUlNBS2V5UHJp
dmF0ZTogeworICAgICAgICBWZWN0b3I8dWludDhfdD4gbW9kdWx1czsKKyAgICAgICAgVmVjdG9y
PHVpbnQ4X3Q+IHB1YmxpY0V4cG9uZW50OworICAgICAgICBDQ0NyeXB0b3JTdGF0dXMgc3RhdHVz
ID0gZ2V0UHVibGljS2V5Q29tcG9uZW50cyhtX3BsYXRmb3JtS2V5LCBtb2R1bHVzLCBwdWJsaWNF
eHBvbmVudCk7CisgICAgICAgIGlmIChzdGF0dXMpIHsKKyAgICAgICAgICAgIFdURkxvZ0Fsd2F5
cygiQ291bGRuJ3QgZ2V0IFJTQSBrZXkgY29tcG9uZW50cywgc3RhdHVzICVkIiwgc3RhdHVzKTsK
KyAgICAgICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICB9CisgICAgICAgIFZlY3Rvcjx1
aW50OF90PiBwcml2YXRlRXhwb25lbnQ7CisgICAgICAgIENyeXB0b0tleURhdGFSU0FDb21wb25l
bnRzOjpQcmltZUluZm8gZmlyc3RQcmltZUluZm87CisgICAgICAgIENyeXB0b0tleURhdGFSU0FD
b21wb25lbnRzOjpQcmltZUluZm8gc2Vjb25kUHJpbWVJbmZvOworICAgICAgICBWZWN0b3I8Q3J5
cHRvS2V5RGF0YVJTQUNvbXBvbmVudHM6OlByaW1lSW5mbz4gb3RoZXJQcmltZUluZm9zOyAvLyBB
bHdheXMgZW1wdHksIENvbW1vbkNyeXB0byBvbmx5IHN1cHBvcnRzIHR3byBwcmltZXMgKGNmLiA8
cmRhcjovL3Byb2JsZW0vMTU0NDQwNzQ+KS4KKyAgICAgICAgc3RhdHVzID0gZ2V0UHJpdmF0ZUtl
eUNvbXBvbmVudHMobV9wbGF0Zm9ybUtleSwgcHJpdmF0ZUV4cG9uZW50LCBmaXJzdFByaW1lSW5m
bywgc2Vjb25kUHJpbWVJbmZvKTsKKyAgICAgICAgaWYgKHN0YXR1cykgeworICAgICAgICAgICAg
V1RGTG9nQWx3YXlzKCJDb3VsZG4ndCBnZXQgUlNBIGtleSBjb21wb25lbnRzLCBzdGF0dXMgJWQi
LCBzdGF0dXMpOworICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIH0KKyAgICAg
ICAgcmV0dXJuIENyeXB0b0tleURhdGFSU0FDb21wb25lbnRzOjpjcmVhdGVQcml2YXRlV2l0aEFk
ZGl0aW9uYWxEYXRhKG1vZHVsdXMsIHB1YmxpY0V4cG9uZW50LCBwcml2YXRlRXhwb25lbnQsIGZp
cnN0UHJpbWVJbmZvLCBzZWNvbmRQcmltZUluZm8sIG90aGVyUHJpbWVJbmZvcyk7CisgICAgfQog
ICAgIGRlZmF1bHQ6CiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KSW5kZXg6IExheW91
dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDE2MDAyNykKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDEzIEBACisyMDEzLTEyLTAzICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBw
bGUuY29tPgorCisgICAgICAgIFN1cHBvcnQgZXhwb3J0aW5nIHByaXZhdGUgV2ViQ3J5cHRvIFJT
QSBrZXlzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MjQ0ODMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IGNyeXB0by9zdWJ0bGUvcnNhLWV4cG9ydC1wcml2YXRlLWtleS1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIGNyeXB0by9zdWJ0bGUvcnNhLWV4cG9ydC1wcml2YXRlLWtleS5odG1sOiBB
ZGRlZC4KKwogMjAxMy0xMi0wMyAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4K
IAogICAgICAgICBXZWJDcnlwdG8gSE1BQyBkb2Vzbid0IGNoZWNrIGtleSBhbGdvcml0aG0ncyBo
YXNoCkluZGV4OiBMYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL3JzYS1leHBvcnQtcHJpdmF0ZS1r
ZXktZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUv
cnNhLWV4cG9ydC1wcml2YXRlLWtleS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlv
dXRUZXN0cy9jcnlwdG8vc3VidGxlL3JzYS1leHBvcnQtcHJpdmF0ZS1rZXktZXhwZWN0ZWQudHh0
CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMjYgQEAKK1Rlc3QgZXhwb3J0aW5nIGEgcHJpdmF0
ZSBSU0Ega2V5LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1Mi
IG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworCitJbXBvcnRpbmcg
YSBKV0sga2V5Li4uCisKK0V4cG9ydGluZyB0aGUga2V5IGFzIEpXSy4uLgorUEFTUyBleHBvcnRl
ZEpXSy5rdHkgaXMgJ1JTQScKK1BBU1MgZXhwb3J0ZWRKV0subiBpcyBwcml2YXRlS2V5SlNPTi5u
CitQQVNTIGV4cG9ydGVkSldLLmUgaXMgcHJpdmF0ZUtleUpTT04uZQorUEFTUyBleHBvcnRlZEpX
Sy5kIGlzIHByaXZhdGVLZXlKU09OLmQKK1BBU1MgZXhwb3J0ZWRKV0sucCBpcyBwcml2YXRlS2V5
SlNPTi5wCitQQVNTIGV4cG9ydGVkSldLLnEgaXMgcHJpdmF0ZUtleUpTT04ucQorUEFTUyBleHBv
cnRlZEpXSy5kcCBpcyBwcml2YXRlS2V5SlNPTi5kcAorUEFTUyBleHBvcnRlZEpXSy5kcSBpcyBw
cml2YXRlS2V5SlNPTi5kcQorUEFTUyBleHBvcnRlZEpXSy5xaSBpcyBwcml2YXRlS2V5SlNPTi5x
aQorUEFTUyBleHBvcnRlZEpXSy5vdGggaXMgcHJpdmF0ZUtleUpTT04ub3RoCitQQVNTIGV4cG9y
dGVkSldLLmFsZyBpcyBwcml2YXRlS2V5SlNPTi5hbGcKK1BBU1MgZXhwb3J0ZWRKV0suZXh0cmFj
dGFibGUgaXMgdHJ1ZQorUEFTUyBleHBvcnRlZEpXSy51c2UgaXMgJ3NpZycKK1BBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCgpQcm9wZXJ0eSBjaGFuZ2Vz
IG9uOiBMYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL3JzYS1leHBvcnQtcHJpdmF0ZS1rZXktZXhw
ZWN0ZWQudHh0Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX18KQWRkZWQ6IHN2bjptaW1lLXR5cGUKIyMgLTAsMCArMSAjIwor
dGV4dC9wbGFpbgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIHByb3BlcnR5CkFkZGVkOiBzdm46ZW9s
LXN0eWxlCiMjIC0wLDAgKzEgIyMKK25hdGl2ZQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIHByb3Bl
cnR5CkluZGV4OiBMYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL3JzYS1leHBvcnQtcHJpdmF0ZS1r
ZXkuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL3JzYS1leHBv
cnQtcHJpdmF0ZS1rZXkuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2NyeXB0by9z
dWJ0bGUvcnNhLWV4cG9ydC1wcml2YXRlLWtleS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAg
KzEsNjQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJl
c291cmNlcy9jb21tb24uanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVz
Y3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorCis8c2NyaXB0PgorZGVz
Y3JpcHRpb24oIlRlc3QgZXhwb3J0aW5nIGEgcHJpdmF0ZSBSU0Ega2V5LiIpOworCitqc1Rlc3RJ
c0FzeW5jID0gdHJ1ZTsKKwordmFyIGV4dHJhY3RhYmxlID0gdHJ1ZTsKK3ZhciBub25FeHRyYWN0
YWJsZSA9IGZhbHNlOworCisvLyBFeGFtcGxlIGZyb20gSldLIHNwZWNpZmljYXRpb24uCit2YXIg
cHJpdmF0ZUtleUpTT04gPSB7CisgICAgImt0eSI6IlJTQSIsCisgICAgIm4iOiIwdng3YWdvZWJH
Y1FTdXVQaUxKWFpwdE45bm5kclFtYlhFcHMyYWlBRmJXaE03OExoV3g0Y2JiZkFBdFZUODZ6d3Ux
Uks3YVBGRnh1aERSMUw2dFNvY19CSkVDUGViV0tSWGpCWkNpRlY0bjNva25qaE1zdG42NHRaXzJX
LTVKc0dZNEhjNW45eUJYQXJ3bDkzbHF0N19STjV3NkNmMGg0UXlRNXYtNjVZR2pRUjBfRkRXMlF2
enFZMzY4UVFNaWNBdGFTcXpzOEtKWmduWWI5YzdkMHpnZEFaSHp1NnFNUXZSTDVoYWpybjFuOTFD
Yk9wYklTRDA4cU5MeXJka3QtYkZUV2hBSTR2TVFGaDZXZVp1MGZNNGxGZDJOY1J3cjNYUGtzSU5I
YVEtR194Qm5pSXFidzBMczFqRjQ0LWNzRkN1ci1rRWdVOGF3YXBKektucURLZ3ciLAorICAgICJl
IjoiQVFBQiIsCisgICAgImQiOiJYNGNUdGVKWV9nbjRGWVBzWEI4cmRYaXg1dndzZzFGTE41RTNF
YUc2UkpvVkgtSExMS0Q5TTdkeDVvbzdHVVJrbmNobnJSd2VVa0M3aFQ1ZkpMTTBXYkZBS05MV1ky
dnY3QjZOcVhTelV2eFQwX1lTZnFpandwM1JUemxCYUN4V3A0ZG9GazVOMm84R3lfbkhOS3JvQURJ
a0o0NnBSVW9oc1h5d2JSZUFkWWFNd0ZzOXR2OGRfY1BWWTNpMDdhM3Q4TU42VE53bTBkU2F3bTl2
NDdVaUNsM1NrNVppRzd4b2pQTHU0c2JnMVUyang0SUJUTkJ6bmJKU3pGSEs2NmpUOGJna3Vxc2sw
R2pza0RKazE5WjRxd2p3YnNubjRqMldCaWkzUkwtVXMybEdWa1k4ZmtGem1lMXowSGJJa2Z6MFk2
bXFuT1l0cWMwWDRqZmNLb0FDOFEiLAorICAgICJwIjoiODNpLTdJdk1HWG9NWENza3Y3M1RLcjg2
MzdGaU83WjI3enY4b2o2cGJXVVF5TFBRQlF4dFBWbndEMjBSLTYwZVREbUQydWpuTXQ1UG9xTXJt
OFJmbU5oVldEdGpqTW1DTWpPcFNYaWNGSGo3WE91VklZUXlxVldsV0VoNmROMzZHVlpZazkzTjhC
Yzl2WTQxeHk4QjlSenpPR1ZRelh2TkV2bjdPMG5WYmZzIiwKKyAgICAicSI6IjNkZk9SOWN1WXEt
MFMtbWtGTHpnSXRnTUVmRnpCMnEzaFdlaE11RzBvQ3VxbmIzdm9iTHl1bXFqVlpRTzFkSXJkd2dU
bkNkcFl6QmNPZlc1cjM3MEFGWGppV2Z0X05HRWlvdm9uaXpoS3BvOVZWUzc4VHpGZ3hrSWRyZWNS
ZXpzWi0xa1lkX3MxcURieHRrREVnZkFJVEFHOUxVbkFEdW40dkljYjZ5ZWx4ayIsCisgICAgImRw
IjoiRzRzUFhrYzZZYTl5OG9KVzlfSUxqNHh1cHB1MGx6aV9IN1ZUa1M4eGo1U2RYM2NvRTBvaW1Z
d3hJaTJlbVRBdWUwVU9hNWRwZ0ZHeUJKNGM4dFEyVkY0MDJYUnVnS0RUUDhha1loRm81dEFBNzdR
ZV9ObXR1WVpjM0MzbTNJMjRHMkd2UjVzU0R4VXlBTjJ6cThMZm45RVVtczZyWTNPYjhZZWlLa1Rp
QmowIiwKKyAgICAiZHEiOiJzOWxBSDlmZ2dCc29GUjhPYWMyUl9FMmd3MjgyclQya0dPQWh2SWxs
RVRFMWVmckE2aHVVVXZNZkJjTXBuOGxxZVc2dnp6bllZNVNTUUY3cE1kQ19hZ0kzbkc4SWJwMUJV
YjBKVWlyYVJOcVVmTGhjUWJfZDlHRjREaDdlNzRXYlJzb2JSb251alRZTjF4Q2FQNlRPNjFqdldy
WC1MMTh0eFh3NDk0UV9jZ2siLAorICAgICJxaSI6Ikd5TV9wNkpyWHlTaXoxdG9GZ0tiV1YtSmRJ
M2pRNHlwdTlyYk1XeDNyUUpCZm10MEZvWXpnVUlaRVZGRWNPcXdlbVJOODF6b0RBYWEtQmswS1dO
R0RqSkhaRGREbUZoVzNBTjdsSS1wdXhrX21IWkdKMTFyeHlSOE81NVhMU2UzU1BtUmZLd1pJNnlV
MjRaeHZRS0ZZSXRkbGRVS0d6TzZJYTZ6VEtoQVZSVSIsCisgICAgImFsZyI6IlJTMjU2IiwKKyAg
ICAia2lkIjoiMjAxMS0wNC0yOSIKK30KK3ZhciBqd2tLZXlBc0FycmF5QnVmZmVyID0gYXNjaWlU
b1VpbnQ4QXJyYXkoSlNPTi5zdHJpbmdpZnkocHJpdmF0ZUtleUpTT04pKTsKKworZGVidWcoIlxu
SW1wb3J0aW5nIGEgSldLIGtleS4uLiIpOworY3J5cHRvLnN1YnRsZS5pbXBvcnRLZXkoImp3ayIs
IGp3a0tleUFzQXJyYXlCdWZmZXIsICJSU0FTU0EtUEtDUzEtdjFfNSIsIGV4dHJhY3RhYmxlLCBb
J3NpZ24nLCAndmVyaWZ5J10pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7CisgICAga2V5ID0gcmVz
dWx0OworCisgICAgZGVidWcoIlxuRXhwb3J0aW5nIHRoZSBrZXkgYXMgSldLLi4uIik7CisgICAg
cmV0dXJuIGNyeXB0by5zdWJ0bGUuZXhwb3J0S2V5KCJqd2siLCBrZXkpOworfSkudGhlbihmdW5j
dGlvbihyZXN1bHQpIHsKKyAgICBleHBvcnRlZEpXSyA9IEpTT04ucGFyc2UoYnl0ZXNUb0FTQ0lJ
U3RyaW5nKHJlc3VsdCkpOworCisgICAgc2hvdWxkQmUoImV4cG9ydGVkSldLLmt0eSIsICInUlNB
JyIpOworICAgIHNob3VsZEJlKCJleHBvcnRlZEpXSy5uIiwgInByaXZhdGVLZXlKU09OLm4iKTsK
KyAgICBzaG91bGRCZSgiZXhwb3J0ZWRKV0suZSIsICJwcml2YXRlS2V5SlNPTi5lIik7CisgICAg
c2hvdWxkQmUoImV4cG9ydGVkSldLLmQiLCAicHJpdmF0ZUtleUpTT04uZCIpOworICAgIHNob3Vs
ZEJlKCJleHBvcnRlZEpXSy5wIiwgInByaXZhdGVLZXlKU09OLnAiKTsKKyAgICBzaG91bGRCZSgi
ZXhwb3J0ZWRKV0sucSIsICJwcml2YXRlS2V5SlNPTi5xIik7CisgICAgc2hvdWxkQmUoImV4cG9y
dGVkSldLLmRwIiwgInByaXZhdGVLZXlKU09OLmRwIik7CisgICAgc2hvdWxkQmUoImV4cG9ydGVk
SldLLmRxIiwgInByaXZhdGVLZXlKU09OLmRxIik7CisgICAgc2hvdWxkQmUoImV4cG9ydGVkSldL
LnFpIiwgInByaXZhdGVLZXlKU09OLnFpIik7CisgICAgc2hvdWxkQmUoImV4cG9ydGVkSldLLm90
aCIsICJwcml2YXRlS2V5SlNPTi5vdGgiKTsKKyAgICBzaG91bGRCZSgiZXhwb3J0ZWRKV0suYWxn
IiwgInByaXZhdGVLZXlKU09OLmFsZyIpOworICAgIHNob3VsZEJlKCJleHBvcnRlZEpXSy5leHRy
YWN0YWJsZSIsICJ0cnVlIik7CisgICAgc2hvdWxkQmUoImV4cG9ydGVkSldLLnVzZSIsICInc2ln
JyIpOworCisgICAgZmluaXNoSlNUZXN0KCk7Cit9KTsKKzwvc2NyaXB0PgorCis8c2NyaXB0IHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8
L2h0bWw+CgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBMYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL3Jz
YS1leHBvcnQtcHJpdmF0ZS1rZXkuaHRtbApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkFkZGVkOiBzdm46bWltZS10eXBl
CiMjIC0wLDAgKzEgIyMKK3RleHQvaHRtbApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIHByb3BlcnR5
Cg==
</data>
<flag name="review"
          id="241703"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
      

    </bug>

</bugzilla>