<?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>222165</bug_id>
          
          <creation_ts>2021-02-19 03:21:34 -0800</creation_ts>
          <short_desc>Allow to use BigInt as key identifier</short_desc>
          <delta_ts>2021-02-19 18:24:09 -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>WebRTC</component>
          <version>WebKit Local 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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>cdumez</cc>
    
    <cc>darin</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>glenn</cc>
    
    <cc>hta</cc>
    
    <cc>jer.noble</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>philipj</cc>
    
    <cc>sam</cc>
    
    <cc>sergio</cc>
    
    <cc>tommyw</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1731297</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-02-19 03:21:34 -0800</bug_when>
    <thetext>Allow to use BigInt as key identifier</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1731300</commentid>
    <comment_count>1</comment_count>
      <attachid>420953</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-02-19 03:29:40 -0800</bug_when>
    <thetext>Created attachment 420953
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1731351</commentid>
    <comment_count>2</comment_count>
      <attachid>420953</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-02-19 08:48:41 -0800</bug_when>
    <thetext>Comment on attachment 420953
Patch

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

&gt; Source/WebCore/Modules/mediastream/RTCRtpSFrameTransform.idl:53
&gt; +    [Custom] Promise&lt;undefined&gt; setEncryptionKey(CryptoKey key, optional any keyID);

Why do we need to use [Custom] and not union types for this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1731359</commentid>
    <comment_count>3</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-02-19 08:56:55 -0800</bug_when>
    <thetext>&lt;rdar://74487156&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1731362</commentid>
    <comment_count>4</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-02-19 09:00:17 -0800</bug_when>
    <thetext>(In reply to Darin Adler from comment #2)
&gt; Comment on attachment 420953 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=420953&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/Modules/mediastream/RTCRtpSFrameTransform.idl:53
&gt; &gt; +    [Custom] Promise&lt;undefined&gt; setEncryptionKey(CryptoKey key, optional any keyID);
&gt; 
&gt; Why do we need to use [Custom] and not union types for this?

We could do that, I am guessing that we might want to use only one of these types in the end, but this might be worth discussing in standard body first.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1731363</commentid>
    <comment_count>5</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-02-19 09:00:39 -0800</bug_when>
    <thetext>rdar has some context as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1731364</commentid>
    <comment_count>6</comment_count>
      <attachid>420976</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-02-19 09:04:06 -0800</bug_when>
    <thetext>Created attachment 420976
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1731390</commentid>
    <comment_count>7</comment_count>
      <attachid>420976</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-02-19 09:42:57 -0800</bug_when>
    <thetext>Comment on attachment 420976
Patch

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

&gt; Source/WebCore/Modules/mediastream/RTCRtpSFrameTransform.idl:53
&gt; +    [Custom] Promise&lt;undefined&gt; setEncryptionKey(CryptoKey key, optional any keyID);

I’d like to eventually make this a non-custom binding.

&gt; Source/WebCore/bindings/js/JSRTCRtpSFrameTransformCustom.cpp:36
&gt; +using namespace JSC;

In new code I suggest we not use &quot;using namespace&quot; like this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1731516</commentid>
    <comment_count>8</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-02-19 12:34:01 -0800</bug_when>
    <thetext>(In reply to Darin Adler from comment #7)
&gt; Comment on attachment 420976 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=420976&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/Modules/mediastream/RTCRtpSFrameTransform.idl:53
&gt; &gt; +    [Custom] Promise&lt;undefined&gt; setEncryptionKey(CryptoKey key, optional any keyID);
&gt; 
&gt; I’d like to eventually make this a non-custom binding.

Agreed.

&gt; &gt; Source/WebCore/bindings/js/JSRTCRtpSFrameTransformCustom.cpp:36
&gt; &gt; +using namespace JSC;
&gt; 
&gt; In new code I suggest we not use &quot;using namespace&quot; like this.

Why?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1731518</commentid>
    <comment_count>9</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-02-19 12:39:44 -0800</bug_when>
    <thetext>Committed r273158: &lt;https://commits.webkit.org/r273158&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 420976.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1731537</commentid>
    <comment_count>10</comment_count>
      <attachid>420976</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2021-02-19 13:01:22 -0800</bug_when>
    <thetext>Comment on attachment 420976
Patch

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

&gt; Source/WebCore/bindings/js/JSRTCRtpSFrameTransformCustom.cpp:59
&gt; +                throwException(&amp;lexicalGlobalObject, throwScope, createDOMException(&amp;lexicalGlobalObject, RangeError, &quot;Not a 64 bits integer&quot;_s));

s/64 bits/64 bit/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1731710</commentid>
    <comment_count>11</comment_count>
      <attachid>420976</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-02-19 18:24:09 -0800</bug_when>
    <thetext>Comment on attachment 420976
Patch

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

&gt;&gt;&gt; Source/WebCore/bindings/js/JSRTCRtpSFrameTransformCustom.cpp:36
&gt;&gt;&gt; +using namespace JSC;
&gt;&gt; 
&gt;&gt; In new code I suggest we not use &quot;using namespace&quot; like this.
&gt; 
&gt; Why?

There’s a consensus that it’s clearer to use the namespace in front of the individual identifiers. Both the auto keyword and context-dependent lookup reduce how often the prefix has to be used so it doesn’t make code a lot harder to read and write. There are also many problems with how &quot;using namespace&quot; affects code unintentionally. I *think* that at least doing it inside a &quot;namespace WebCore { }&quot; doesn’t affect the multiple files in a unified build, but otherwise that is a problem.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>420953</attachid>
            <date>2021-02-19 03:29:40 -0800</date>
            <delta_ts>2021-02-19 09:04:01 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222165-20210219122939.patch</filename>
            <type>text/plain</type>
            <size>16515</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjczMTMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzczMjI2NTJmNmY1Njk3
ODEwYzA2ODFiMjM3ZTdmYWQ3Yzk5NTFlMC4uOGE0ZTQ3NjVlMzExOWU1N2EwNWFlN2I4M2IwMTUy
ZTIxNjVlMTMxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIxLTAyLTE5ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBbGxvdyB0byB1c2UgQmln
SW50IGFzIGtleSBpZGVudGlmaWVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMjIxNjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBBbGxvdyB0byBwYXNzIGEgQmlnSW50IGFzIGtleSBpZCBzbyBhcyB0byB1
c2UgYWxsIG9mIFNGcmFtZSBrZXkgSUQgOCBieXRlcy4KKyAgICAgICAgQSBSYW5nZUVycm9yIGlz
IHRocm93biBpZiBCaWdJbnQgaXMgbW9yZSB0aGFuIDY0IGJpdHMuCisKKyAgICAgICAgVXBkYXRl
IHRoZSBpbXBsZW1lbnRhdGlvbiB0byB1c2UgYSBWZWN0b3IgaW5zdGVhZCBvZiBhIG1hcCB0byBr
ZWVwIHRoZSBrZXlzLgorICAgICAgICBUaGlzIGFsbG93cyB0byBhbHNvIHVzZSAwIGFuZCAyXjY0
LTEgdmFsdWVzIHRoYXQgSGFzaE1hcCByZXNlcnZlcyBmb3IgaXRzIHBlcnNvbmFsIHVzZS4KKwor
ICAgICAgICBDb3ZlcmVkIGJ5IHVwZGF0ZWQgdGVzdC4KKworICAgICAgICAqIE1vZHVsZXMvbWVk
aWFzdHJlYW0vUlRDUnRwU0ZyYW1lVHJhbnNmb3JtLmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL21l
ZGlhc3RyZWFtL1JUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlJUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyOjpzZXRFbmNyeXB0aW9uS2V5KToKKyAgICAgICAgKFdl
YkNvcmU6OlJUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyOjp1cGRhdGVFbmNyeXB0aW9uS2V5KToKKyAg
ICAgICAgKFdlYkNvcmU6OlJUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyOjpkZWNyeXB0RnJhbWUpOgor
ICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXIuaDoK
KyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2o6CisgICAgICAgICogYmluZGluZ3MvanMvSlNSVENSdHBTRnJhbWVUcmFuc2Zv
cm1DdXN0b20uY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkpTUlRDUnRwU0ZyYW1lVHJh
bnNmb3JtOjpzZXRFbmNyeXB0aW9uS2V5KToKKwogMjAyMS0wMi0xOSAgWW91ZW5uIEZhYmxldCAg
PHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgRW5hYmxlIE1FRElBX1NPVVJDRSBpbiBJT1Mg
U2ltdWxhdG9yCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L1JUQ1J0cFNGcmFtZVRyYW5zZm9ybS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL1JUQ1J0cFNGcmFtZVRyYW5zZm9ybS5pZGwKaW5kZXggNjQwYmMyMDc2NDBkODhiZmJk
ZmRiODQ2MmE2MDgzNGE3MmFhMGI2YS4uOGY0MTNiZmJiODhmMWM4ZTI2MjNlY2QwYmExMjY1OTc5
MjRhOGRiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9S
VENSdHBTRnJhbWVUcmFuc2Zvcm0uaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vUlRDUnRwU0ZyYW1lVHJhbnNmb3JtLmlkbApAQCAtNTAsNyArNTAsNyBAQCBkaWN0
aW9uYXJ5IFJUQ1J0cFNGcmFtZVRyYW5zZm9ybU9wdGlvbnMgewogXSBpbnRlcmZhY2UgUlRDUnRw
U0ZyYW1lVHJhbnNmb3JtIHsKICAgICBbQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dF0g
Y29uc3RydWN0b3Iob3B0aW9uYWwgUlRDUnRwU0ZyYW1lVHJhbnNmb3JtT3B0aW9ucyBvcHRpb25z
KTsKIAotICAgIFByb21pc2U8dW5kZWZpbmVkPiBzZXRFbmNyeXB0aW9uS2V5KENyeXB0b0tleSBr
ZXksIG9wdGlvbmFsIHVuc2lnbmVkIGxvbmcgbG9uZyBrZXlJRCk7CisgICAgW0N1c3RvbV0gUHJv
bWlzZTx1bmRlZmluZWQ+IHNldEVuY3J5cHRpb25LZXkoQ3J5cHRvS2V5IGtleSwgb3B0aW9uYWwg
YW55IGtleUlEKTsKICAgICAvLyBGSVhNRTogQWRkIHN1cHBvcnQgZm9yIG1pc3NpbmcgbWV0aG9k
cy4KICAgICAvLyBQcm9taXNlPHVuZGVmaW5lZD4gcmF0Y2hldEVuY3J5cHRpb25LZXkoKTsKICAg
ICAvLyBQcm9taXNlPHVuZGVmaW5lZD4gc2V0U2lnbmluZ0tleShDcnlwdG9LZXkga2V5KTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU0ZyYW1l
VHJhbnNmb3JtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENS
dHBTRnJhbWVUcmFuc2Zvcm1lci5jcHAKaW5kZXggODliMDhiMzJmYWI4MDdkNjhmZmI4ODRlZGIw
NWRkOTcxNWM1ZGNmZi4uYzEzOGZlZmI0YjVhODk0N2FiMmM1MDM4OTY0MWU1YTUwMDVlNmI2ZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTRnJh
bWVUcmFuc2Zvcm1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9SVENSdHBTRnJhbWVUcmFuc2Zvcm1lci5jcHAKQEAgLTE0OSwxNyArMTQ5LDEyIEBAIFJUQ1J0
cFNGcmFtZVRyYW5zZm9ybWVyOjp+UlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXIoKQogCiBFeGNlcHRp
b25Pcjx2b2lkPiBSVENSdHBTRnJhbWVUcmFuc2Zvcm1lcjo6c2V0RW5jcnlwdGlvbktleShjb25z
dCBWZWN0b3I8dWludDhfdD4mIHJhd0tleSwgT3B0aW9uYWw8dWludDY0X3Q+IGtleUlkKQogewot
ICAgIGlmIChrZXlJZCAmJiAqa2V5SWQgPT0gc3RkOjpudW1lcmljX2xpbWl0czx1aW50NjRfdD46
Om1heCgpKQotICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9yLCAiS2V5IElEIGlz
IHRvbyBiaWciIH07Ci0KICAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fa2V5TG9jayk7CiAg
ICAgcmV0dXJuIHVwZGF0ZUVuY3J5cHRpb25LZXkocmF3S2V5LCBrZXlJZCwgU2hvdWxkVXBkYXRl
S2V5czo6WWVzKTsKIH0KIAogRXhjZXB0aW9uT3I8dm9pZD4gUlRDUnRwU0ZyYW1lVHJhbnNmb3Jt
ZXI6OnVwZGF0ZUVuY3J5cHRpb25LZXkoY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiByYXdLZXksIE9w
dGlvbmFsPHVpbnQ2NF90PiBrZXlJZCwgU2hvdWxkVXBkYXRlS2V5cyBzaG91bGRVcGRhdGVLZXlz
KQogewotICAgIEFTU0VSVCgha2V5SWQgfHwgKmtleUlkICE9IHN0ZDo6bnVtZXJpY19saW1pdHM8
dWludDY0X3Q+OjptYXgoKSk7Ci0KICAgICBBU1NFUlQobV9rZXlMb2NrLmlzTG9ja2VkKCkpOwog
CiAgICAgYXV0byBzYWx0S2V5UmVzdWx0ID0gY29tcHV0ZVNhbHRLZXkocmF3S2V5KTsKQEAgLTE3
NiwxMiArMTcxLDE2IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IFJUQ1J0cFNGcmFtZVRyYW5zZm9ybWVy
Ojp1cGRhdGVFbmNyeXB0aW9uS2V5KGNvbnN0IFZlY3Rvcjx1aW50CiAgICAgaWYgKGVuY3J5cHRp
b25LZXlSZXN1bHQuaGFzRXhjZXB0aW9uKCkpCiAgICAgICAgIHJldHVybiBlbmNyeXB0aW9uS2V5
UmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKTsKIAotICAgIGlmICgha2V5SWQpCi0gICAgICAgIGtl
eUlkID0gbV9rZXlzLnNpemUoKTsKKyAgICBpZiAoc2hvdWxkVXBkYXRlS2V5cyA9PSBTaG91bGRV
cGRhdGVLZXlzOjpObykKKyAgICAgICAgbV9rZXlJZCA9ICprZXlJZDsKKyAgICBlbHNlIHsKKyAg
ICAgICAgLy8gRklYTUU6IEluIGNhc2Uga2V5SWQgaXMgbm90IHNldCwgaXQgbWlnaHQgYmUgYmVz
dCB0byB1c2UgdGhlIGZpcnN0IG5vbiB1c2VkIElELgorICAgICAgICBpZiAoIWtleUlkKQorICAg
ICAgICAgICAga2V5SWQgPSBtX2tleXMuc2l6ZSgpOwogCi0gICAgbV9rZXlJZCA9ICprZXlJZDsK
LSAgICBpZiAoc2hvdWxkVXBkYXRlS2V5cyA9PSBTaG91bGRVcGRhdGVLZXlzOjpZZXMpCi0gICAg
ICAgIG1fa2V5cy5zZXQoKmtleUlkICsgMSwgcmF3S2V5KTsKKyAgICAgICAgbV9rZXlJZCA9ICpr
ZXlJZDsKKyAgICAgICAgbV9rZXlzLmFwcGVuZCh7IG1fa2V5SWQsIHJhd0tleSB9KTsKKyAgICB9
CiAKICAgICBtX3NhbHRLZXkgPSBzYWx0S2V5UmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpOwog
ICAgIG1fYXV0aGVudGljYXRpb25LZXkgPSBhdXRoZW50aWNhdGlvbktleVJlc3VsdC5yZWxlYXNl
UmV0dXJuVmFsdWUoKTsKQEAgLTIzMCwxMyArMjI5LDEwIEBAIEV4Y2VwdGlvbk9yPFZlY3Rvcjx1
aW50OF90Pj4gUlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXI6OmRlY3J5cHRGcmFtZShjb25zdCB1aW50
OF90CiAgICAgbV9jb3VudGVyID0gaGVhZGVyLT5jb3VudGVyOwogCiAgICAgaWYgKGhlYWRlci0+
a2V5SWQgIT0gbV9rZXlJZCkgewotICAgICAgICBpZiAoaGVhZGVyLT5rZXlJZCA9PSBzdGQ6Om51
bWVyaWNfbGltaXRzPHVpbnQ2NF90Pjo6bWF4KCkpCi0gICAgICAgICAgICByZXR1cm4gRXhjZXB0
aW9uIHsgRGF0YUVycm9yLCAiS2V5IElEIGlzIHVua25vd24iIH07Ci0KLSAgICAgICAgYXV0byBp
dGVyYXRvciA9IG1fa2V5cy5maW5kKGhlYWRlci0+a2V5SWQgKyAxKTsKLSAgICAgICAgaWYgKGl0
ZXJhdG9yID09IG1fa2V5cy5lbmQoKSkKKyAgICAgICAgYXV0byBwb3NpdGlvbiA9IG1fa2V5cy5m
aW5kTWF0Y2hpbmcoW2tleUlkID0gaGVhZGVyLT5rZXlJZF0oYXV0byYgaXRlbSkgeyByZXR1cm4g
aXRlbS5rZXlJZCA9PSBrZXlJZDsgfSk7CisgICAgICAgIGlmIChwb3NpdGlvbiA9PSBub3RGb3Vu
ZCkKICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBEYXRhRXJyb3IsICJLZXkgSUQgaXMg
dW5rbm93biIgfTsKLSAgICAgICAgYXV0byByZXN1bHQgPSB1cGRhdGVFbmNyeXB0aW9uS2V5KGl0
ZXJhdG9yLT52YWx1ZSwgaGVhZGVyLT5rZXlJZCwgU2hvdWxkVXBkYXRlS2V5czo6Tm8pOworICAg
ICAgICBhdXRvIHJlc3VsdCA9IHVwZGF0ZUVuY3J5cHRpb25LZXkobV9rZXlzW3Bvc2l0aW9uXS5r
ZXlEYXRhLCBoZWFkZXItPmtleUlkLCBTaG91bGRVcGRhdGVLZXlzOjpObyk7CiAgICAgICAgIGlm
IChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpCiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0LnJlbGVh
c2VFeGNlcHRpb24oKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL1JUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyLmgKaW5kZXggMzdlZTFh
YzkwZDRiMTVhZjMzODI5MjRiNTkyMDAzM2YzOGFkM2U2ZC4uYTBlNjVkOGRjNjQwNDMzOTM5ZDRi
NTVkNDQxMGU1MmMyNDJmN2JhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9SVENSdHBTRnJhbWVUcmFuc2Zvcm1lci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXIuaApAQCAtODAsNyAr
ODAsMTIgQEAgcHJpdmF0ZToKICAgICBWZWN0b3I8dWludDhfdD4gbV9hdXRoZW50aWNhdGlvbktl
eTsKICAgICBWZWN0b3I8dWludDhfdD4gbV9lbmNyeXB0aW9uS2V5OwogICAgIFZlY3Rvcjx1aW50
OF90PiBtX3NhbHRLZXk7Ci0gICAgSGFzaE1hcDx1aW50NjRfdCwgVmVjdG9yPHVpbnQ4X3Q+PiBt
X2tleXM7CisKKyAgICBzdHJ1Y3QgSWRlbnRpZmllZEtleSB7CisgICAgICAgIHVpbnQ2NF90IGtl
eUlkIHsgMCB9OworICAgICAgICBWZWN0b3I8dWludDhfdD4ga2V5RGF0YTsKKyAgICB9OworICAg
IFZlY3RvcjxJZGVudGlmaWVkS2V5PiBtX2tleXM7CiAKICAgICBib29sIG1faXNFbmNyeXB0aW5n
IHsgZmFsc2UgfTsKICAgICB1aW50NjRfdCBtX2F1dGhlbnRpY2F0aW9uU2l6ZSB7IDEwIH07CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1Nv
dXJjZXMudHh0CmluZGV4IGMzNWMwNmYwMzA2N2YxZGMwMmI1NDU2OTc1M2E0OTc1MDdhOWQ1MmUu
LjIwOGVhNTg1MDQzYTZlMzFlZGIxZDgwNWYzNjZkZWNmNDc0ZTk0ODUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0
CkBAIC01OTQsNiArNTk0LDcgQEAgYmluZGluZ3MvanMvSlNQZXJmb3JtYW5jZU9ic2VydmVyQ3Vz
dG9tLmNwcAogYmluZGluZ3MvanMvSlNQbHVnaW5FbGVtZW50RnVuY3Rpb25zLmNwcAogYmluZGlu
Z3MvanMvSlNQb3BTdGF0ZUV2ZW50Q3VzdG9tLmNwcAogYmluZGluZ3MvanMvSlNQcm9taXNlUmVq
ZWN0aW9uRXZlbnRDdXN0b20uY3BwCitiaW5kaW5ncy9qcy9KU1JUQ1J0cFNGcmFtZVRyYW5zZm9y
bUN1c3RvbS5jcHAKIGJpbmRpbmdzL2pzL0pTUmVhZGFibGVTdHJlYW1Tb3VyY2VDdXN0b20uY3Bw
CiBiaW5kaW5ncy9qcy9KU1JlbW90ZURPTVdpbmRvd0Jhc2UuY3BwCiBiaW5kaW5ncy9qcy9KU1Jl
bW90ZURPTVdpbmRvd0N1c3RvbS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA4ZDFmZmZlYmVmZWYyMGM2MGM5MDUwOWJhYzcx
ZjQyM2I0M2E2YzQ2Li5kZmI1MmJiMTc5YTY2MjJiMzg2NWJlZGViYjk3NDFmMjQ0YWQ0NDA2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CkBAIC03NzgzLDYgKzc3ODMsNyBAQAogCQk0MTcwQTJFOTFEOEMwQ0MwMDAzMTg0NTIgLyogSlNE
T01XcmFwcGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRE9N
V3JhcHBlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxNzI1M0E4MTM1NEJC
QkMwMDM2MEYyQSAvKiBNZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50LmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1lZGlhQ29udHJvbFRleHRUcmFj
a0NvbnRhaW5lckVsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTcy
NTNBOTEzNTRCQkJDMDAzNjBGMkEgLyogTWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxl
bWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYUNvbnRyb2xUZXh0
VHJhY2tDb250YWluZXJFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQx
NzMzRDdEMjVERkJGQzUwMEExMzZFNSAvKiBKU1JUQ1J0cFNGcmFtZVRyYW5zZm9ybUN1c3RvbS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1JUQ1J0cFNGcmFtZVRyYW5zZm9ybUN1c3RvbS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxNzRFOTFFMjUzNURDRDYwMEZFNDIwMiAv
KiBNZWRpYVN0cmVhbVRyYWNrQXVkaW9Tb3VyY2VQcm92aWRlckNvY29hLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IE1lZGlhU3RyZWFtVHJhY2tBdWRpb1NvdXJjZVByb3ZpZGVyQ29jb2EuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE3NEU5MjAyNTM1RENERDAwRkU0MjAyIC8qIE1lZGlhU3Ry
ZWFtVHJhY2tBdWRpb1NvdXJjZVByb3ZpZGVyQ29jb2EuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
TWVkaWFTdHJlYW1UcmFja0F1ZGlvU291cmNlUHJvdmlkZXJDb2NvYS5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTQxNzYxMkFCMUUzQTk5M0IwMEMzRDgxRCAvKiBMaWJXZWJSVENN
ZWRpYUVuZHBvaW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IExp
YldlYlJUQ01lZGlhRW5kcG9pbnQuY3BwOyBwYXRoID0gbGlid2VicnRjL0xpYldlYlJUQ01lZGlh
RW5kcG9pbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjcxNTcsNiArMjcx
NTgsNyBAQAogCQkJCUJDNTgyM0Y0MEMwQTk4REYwMDUzRjFCNSAvKiBKU0hUTUxFbGVtZW50Q3Vz
dG9tLmNwcCAqLywKIAkJCQlCQ0UxQzQzRjBEOTgzMEY0MDAzQjAyRjIgLyogSlNMb2NhdGlvbkN1
c3RvbS5jcHAgKi8sCiAJCQkJNEI2QjVDQkUyMTY0MzRGQjAwNjAzODE3IC8qIEpTUGFpbnRXb3Jr
bGV0R2xvYmFsU2NvcGVDdXN0b20uY3BwICovLAorCQkJCTQxNzMzRDdEMjVERkJGQzUwMEExMzZF
NSAvKiBKU1JUQ1J0cFNGcmFtZVRyYW5zZm9ybUN1c3RvbS5jcHAgKi8sCiAJCQkJNDE4QzM5NUQx
QzhGMEFBQjAwNTFDOEEzIC8qIEpTUmVhZGFibGVTdHJlYW1Tb3VyY2VDdXN0b20uY3BwICovLAog
CQkJCTQ2QkNCQkJFMjA4NTAwNUIwMDcxMDYzOCAvKiBKU1JlbW90ZURPTVdpbmRvd0N1c3RvbS5j
cHAgKi8sCiAJCQkJN0EzRUJFQUEyMUJGMDU0QzAwMEQwNDNEIC8qIEpTU1ZHVmlld1NwZWNDdXN0
b20uY3BwICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNSVENS
dHBTRnJhbWVUcmFuc2Zvcm1DdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNSVENSdHBTRnJhbWVUcmFuc2Zvcm1DdXN0b20uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ2MmE2OTg3NWY0
YzdjYWQ4Yzg1ZDFjZmE5MDZjNjBkZmI3NDdiMzEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU1JUQ1J0cFNGcmFtZVRyYW5zZm9ybUN1c3RvbS5jcHAKQEAg
LTAsMCArMSw3NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJKU1JUQ1J0cFNGcmFtZVRyYW5zZm9y
bS5oIgorCisjaWYgRU5BQkxFKFdFQl9SVEMpCisKKyNpbmNsdWRlICJKU0NyeXB0b0tleS5oIgor
I2luY2x1ZGUgIkpTRE9NUHJvbWlzZURlZmVycmVkLmgiCisjaW5jbHVkZSA8SmF2YVNjcmlwdENv
cmUvSlNCaWdJbnQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgewordXNpbmcgbmFtZXNwYWNlIEpT
QzsKKworSlNWYWx1ZSBKU1JUQ1J0cFNGcmFtZVRyYW5zZm9ybTo6c2V0RW5jcnlwdGlvbktleShK
U0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lJiBjYWxsRnJhbWUs
IFJlZjxEZWZlcnJlZFByb21pc2U+JiYgcHJvbWlzZSkKK3sKKyAgICBhdXRvJiB2bSA9IGdldFZN
KCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsKKyAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKKworICAgIGlmIChVTkxJS0VMWShjYWxsRnJhbWUuYXJndW1lbnRDb3Vu
dCgpIDwgMSkpIHsKKyAgICAgICAgdGhyb3dWTUVycm9yKCZsZXhpY2FsR2xvYmFsT2JqZWN0LCB0
aHJvd1Njb3BlLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcigmbGV4aWNhbEdsb2JhbE9i
amVjdCkpOworICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKKyAgICB9CisKKyAgICBFbnN1
cmVTdGlsbEFsaXZlU2NvcGUgYXJndW1lbnQwID0gY2FsbEZyYW1lLnVuY2hlY2tlZEFyZ3VtZW50
KDApOworICAgIGF1dG8ga2V5ID0gY29udmVydDxJRExJbnRlcmZhY2U8Q3J5cHRvS2V5Pj4obGV4
aWNhbEdsb2JhbE9iamVjdCwgYXJndW1lbnQwLnZhbHVlKCksIFtdKGF1dG8mIGxleGljYWxHbG9i
YWxPYmplY3QsIGF1dG8mIHNjb3BlKSB7CisgICAgICAgIHRocm93QXJndW1lbnRUeXBlRXJyb3Io
bGV4aWNhbEdsb2JhbE9iamVjdCwgc2NvcGUsIDAsICJrZXkiLCAiU0ZyYW1lVHJhbnNmb3JtIiwg
InNldEVuY3J5cHRpb25LZXkiLCAiQ3J5cHRvS2V5Iik7CisgICAgfSk7CisgICAgUkVUVVJOX0lG
X0VYQ0VQVElPTih0aHJvd1Njb3BlLCBqc1VuZGVmaW5lZCgpKTsKKworICAgIEVuc3VyZVN0aWxs
QWxpdmVTY29wZSBhcmd1bWVudDEgPSBjYWxsRnJhbWUuYXJndW1lbnQoMSk7CisgICAgT3B0aW9u
YWw8dWludDY0X3Q+IGtleUlEOworICAgIGlmICghYXJndW1lbnQxLnZhbHVlKCkuaXNVbmRlZmlu
ZWQoKSkgeworICAgICAgICBpZiAoYXJndW1lbnQxLnZhbHVlKCkuaXNCaWdJbnQoKSkgeworICAg
ICAgICAgICAgaWYgKGFyZ3VtZW50MS52YWx1ZSgpLmFzSGVhcEJpZ0ludCgpLT5sZW5ndGgoKSA+
IDEpIHsKKyAgICAgICAgICAgICAgICB0aHJvd0V4Y2VwdGlvbigmbGV4aWNhbEdsb2JhbE9iamVj
dCwgdGhyb3dTY29wZSwgY3JlYXRlRE9NRXhjZXB0aW9uKCZsZXhpY2FsR2xvYmFsT2JqZWN0LCBS
YW5nZUVycm9yLCAiTm90IGEgNjQgYml0cyBpbnRlZ2VyIl9zKSk7CisgICAgICAgICAgICAgICAg
cmV0dXJuIGpzVW5kZWZpbmVkKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBrZXlJRCA9
IEpTQmlnSW50Ojp0b0JpZ1VJbnQ2NChhcmd1bWVudDEudmFsdWUoKSk7CisgICAgICAgIH0gZWxz
ZQorICAgICAgICAgICAga2V5SUQgPSBPcHRpb25hbDxDb252ZXJ0ZXI8SURMVW5zaWduZWRMb25n
TG9uZz46OlJldHVyblR5cGU+KGNvbnZlcnQ8SURMVW5zaWduZWRMb25nTG9uZz4obGV4aWNhbEds
b2JhbE9iamVjdCwgYXJndW1lbnQxLnZhbHVlKCkpKTsKKyAgICB9CisgICAgUkVUVVJOX0lGX0VY
Q0VQVElPTih0aHJvd1Njb3BlLCBqc1VuZGVmaW5lZCgpKTsKKyAgICB0aHJvd1Njb3BlLnJlbGVh
c2UoKTsKKworICAgIHdyYXBwZWQoKS5zZXRFbmNyeXB0aW9uS2V5KCprZXksIGtleUlELCBXVEZN
b3ZlKHByb21pc2UpKTsKKyAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKK30KKworfQorCisjZW5k
aWYKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwppbmRleCBjYjc3YmI4MTQ3MGE1M2ExNTIyMGE1MWRjN2M5ZmRlM2JmNDRhMDNiLi5kYjcw
OGU5YzZjZTUyYTAzYzA4NDUwM2NkOTQ1OTkxYzdjZGU5YTEyIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIg
QEAKKzIwMjEtMDItMTkgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAg
ICAgIEFsbG93IHRvIHVzZSBCaWdJbnQgYXMga2V5IGlkZW50aWZpZXIKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMjE2NQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogd2VicnRjL3NmcmFtZS1rZXlzLmh0
bWw6CisKIDIwMjEtMDItMTggIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+
CiAKICAgICAgICAgU2Nyb2xsaW5nIG9uIGh0dHBzOi8vd3d3LmFwcGxlLmNvbS9pcGFkLWFpci8g
Y2FuIGppdHRlciBvbiBjZXJ0YWluIHNlY3Rpb25zCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93
ZWJydGMvc2ZyYW1lLWtleXMuaHRtbCBiL0xheW91dFRlc3RzL3dlYnJ0Yy9zZnJhbWUta2V5cy5o
dG1sCmluZGV4IGE5NzU3MzFjY2YxZjk0YmEzOGI5MGNkOTMxOWExOTBiMzhmOTk0ODkuLjExNWMy
NzE4YjJlMGQ0N2RlYmM3YzMwNzlhZmIxZDM4NTE0Y2QwNmIgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL3dlYnJ0Yy9zZnJhbWUta2V5cy5odG1sCisrKyBiL0xheW91dFRlc3RzL3dlYnJ0Yy9zZnJh
bWUta2V5cy5odG1sCkBAIC0xMCwxMiArMTAsMjkgQEAKICAgICAgICAgPHNjcmlwdCBzcmMgPSJy
b3V0aW5lcy5qcyI+PC9zY3JpcHQ+CiAgICAgICAgIDxzY3JpcHQ+CiBsZXQgc2VuZGVyLCByZWNl
aXZlcjsKLWxldCBrZXkxLCBrZXkyLCBrZXkzOworbGV0IGtleTEsIGtleTIsIGtleTMsIGtleTQ7
CisKK3Byb21pc2VfdGVzdChhc3luYyAodGVzdCkgPT4geworICAgIGNvbnN0IGtleSA9IGF3YWl0
IGNyeXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJyYXciLCBuZXcgVWludDhBcnJheShbMTQzLCA3Nywg
NDMsIDEwLCA3MiwgMTksIDM3LCA2NywgMjM2LCAyMTksIDI0LCA5MywgMjYsIDE2NSwgOTEsIDE3
OF0pLCAiSEtERiIsIGZhbHNlLCBbImRlcml2ZUJpdHMiLCAiZGVyaXZlS2V5Il0pOworICAgIGNv
bnN0IHRyYW5zZm9ybSA9IG5ldyBTRnJhbWVUcmFuc2Zvcm07CisKKyAgICBhd2FpdCB0cmFuc2Zv
cm0uc2V0RW5jcnlwdGlvbktleShrZXkpOworICAgIGF3YWl0IHRyYW5zZm9ybS5zZXRFbmNyeXB0
aW9uS2V5KGtleSwgMSk7CisKKyAgICBhd2FpdCB0cmFuc2Zvcm0uc2V0RW5jcnlwdGlvbktleShr
ZXksIEJpZ0ludCgnMTg0NDY3NDQwNzM3MDk1NTE2MTMnKSk7CisgICAgYXdhaXQgdHJhbnNmb3Jt
LnNldEVuY3J5cHRpb25LZXkoa2V5LCBCaWdJbnQoJzE4NDQ2NzQ0MDczNzA5NTUxNjE0JykpOwor
ICAgIGF3YWl0IHRyYW5zZm9ybS5zZXRFbmNyeXB0aW9uS2V5KGtleSwgQmlnSW50KCcxODQ0Njc0
NDA3MzcwOTU1MTYxNScpKTsKKyAgICBhd2FpdCB0cmFuc2Zvcm0uc2V0RW5jcnlwdGlvbktleShr
ZXksIEJpZ0ludCgnMTg0NDY3NDQwNzM3MDk1NTE2MTYnKSkudGhlbihhc3NlcnRfdW5yZWFjaGVk
LCAoZSkgPT4geworICAgICAgICBhc3NlcnRfdHJ1ZShlIGluc3RhbmNlb2YgUmFuZ2VFcnJvcik7
CisgICAgICAgIGFzc2VydF9lcXVhbHMoZS5tZXNzYWdlLCAiTm90IGEgNjQgYml0cyBpbnRlZ2Vy
Iik7CisgICAgfSk7Cit9LCAiUGFzc2luZyB2YXJpb3VzIGtleSBJRHMiKTsKIAogcHJvbWlzZV90
ZXN0KGFzeW5jICh0ZXN0KSA9PiB7CiAgICAga2V5MSA9IGF3YWl0IGNyeXB0by5zdWJ0bGUuaW1w
b3J0S2V5KCJyYXciLCBuZXcgVWludDhBcnJheShbMTQzLCA3NywgNDMsIDEwLCA3MiwgMTksIDM3
LCA2NywgMjM2LCAyMTksIDI0LCA5MywgMjYsIDE2NSwgOTEsIDE3OF0pLCAiSEtERiIsIGZhbHNl
LCBbImRlcml2ZUJpdHMiLCAiZGVyaXZlS2V5Il0pOwogICAgIGtleTIgPSBhd2FpdCBjcnlwdG8u
c3VidGxlLmltcG9ydEtleSgicmF3IiwgbmV3IFVpbnQ4QXJyYXkoWzE0NCwgNzcsIDQzLCAxMCwg
NzIsIDE5LCAzNywgNjcsIDIzNiwgMjE5LCAyNCwgOTMsIDI2LCAxNjUsIDkxLCAxNzhdKSwgIkhL
REYiLCBmYWxzZSwgWyJkZXJpdmVCaXRzIiwgImRlcml2ZUtleSJdKTsKICAgICBrZXkzID0gYXdh
aXQgY3J5cHRvLnN1YnRsZS5pbXBvcnRLZXkoInJhdyIsIG5ldyBVaW50OEFycmF5KFsxNDUsIDc3
LCA0MywgMTAsIDcyLCAxOSwgMzcsIDY3LCAyMzYsIDIxOSwgMjQsIDkzLCAyNiwgMTY1LCA5MSwg
MTc4XSksICJIS0RGIiwgZmFsc2UsIFsiZGVyaXZlQml0cyIsICJkZXJpdmVLZXkiXSk7CisgICAg
a2V5NCA9IGF3YWl0IGNyeXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJyYXciLCBuZXcgVWludDhBcnJh
eShbMTQ2LCA3NywgNDMsIDEwLCA3MiwgMTksIDM3LCA2NywgMjM2LCAyMTksIDI0LCA5MywgMjYs
IDE2NSwgOTEsIDE3OF0pLCAiSEtERiIsIGZhbHNlLCBbImRlcml2ZUJpdHMiLCAiZGVyaXZlS2V5
Il0pOwogCiAgICAgY29uc3QgbG9jYWxTdHJlYW0gPSBhd2FpdCBuYXZpZ2F0b3IubWVkaWFEZXZp
Y2VzLmdldFVzZXJNZWRpYSh7YXVkaW86IHRydWV9KTsKICAgICBjb25zdCBzdHJlYW0gPSBhd2Fp
dCBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7CkBAIC0zMCw2ICs0Nyw3IEBAIHBy
b21pc2VfdGVzdChhc3luYyAodGVzdCkgPT4gewogICAgICAgICAgICAgICAgIHRyYW5zZm9ybS5z
ZXRFbmNyeXB0aW9uS2V5KGtleTEpOwogICAgICAgICAgICAgICAgIHRyYW5zZm9ybS5zZXRFbmNy
eXB0aW9uS2V5KGtleTIpOwogICAgICAgICAgICAgICAgIHRyYW5zZm9ybS5zZXRFbmNyeXB0aW9u
S2V5KGtleTMsIDEwMDApOworICAgICAgICAgICAgICAgIHRyYW5zZm9ybS5zZXRFbmNyeXB0aW9u
S2V5KGtleTQsIEJpZ0ludCgnMTg0NDY3NDQwNzM3MDk1NTE2MTUnKSk7CiAgICAgICAgICAgICAg
ICAgcmVjZWl2ZXIgPSB0cmFja0V2ZW50LnJlY2VpdmVyOwogICAgICAgICAgICAgICAgIHJlY2Vp
dmVyLnRyYW5zZm9ybSA9IHRyYW5zZm9ybTsKICAgICAgICAgICAgICAgICByZXNvbHZlKHRyYWNr
RXZlbnQuc3RyZWFtc1swXSk7CkBAIC03OCw2ICs5NiwxNiBAQCBwcm9taXNlX3Rlc3QoYXN5bmMg
KHRlc3QpID0+IHsKICAgIGFzc2VydF90cnVlKGF3YWl0IHdhaXRGb3JSZWNlaXZlcktleUlkKHJl
Y2VpdmVyLCAxMDAwKSwgImtleSBpZCAyIik7CiAgICBhc3NlcnRfdHJ1ZShhd2FpdCB3YWl0Rm9y
Q291bnRlckluY3JlYXNlKHJlY2VpdmVyKSwgImNvdW50ZXIgaW5jcmVhc2UgMiIpOwogfSwgIkFk
ZCBhIG5ldyBlbmNyeXB0aW9uIGtleSB3aXRoIGtleSBpZCIpOworCitwcm9taXNlX3Rlc3QoYXN5
bmMgKHRlc3QpID0+IHsKKyAgIHNlbmRlci50cmFuc2Zvcm0uc2V0RW5jcnlwdGlvbktleShrZXk0
LCBCaWdJbnQoJzE4NDQ2NzQ0MDczNzA5NTUxNjEzJykpOworCisgICBpZiAoIXdpbmRvdy5pbnRl
cm5hbHMpCisgICAgICAgcmV0dXJuOworCisgICBhc3NlcnRfdHJ1ZShhd2FpdCB3YWl0Rm9yUmVj
ZWl2ZXJLZXlJZChyZWNlaXZlciwgMTAwMCksICJrZXkgaWQgMyIpOworICAgYXNzZXJ0X3RydWUo
YXdhaXQgd2FpdEZvckNvdW50ZXJJbmNyZWFzZShyZWNlaXZlciksICJjb3VudGVyIGluY3JlYXNl
IDMiKTsKK30sICJBZGQgYSBuZXcgZW5jcnlwdGlvbiBrZXkgd2l0aCBCaWdJbnQga2V5IGlkIik7
CiAgICAgICAgIDwvc2NyaXB0PgogICAgIDwvYm9keT4KIDwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>420976</attachid>
            <date>2021-02-19 09:04:06 -0800</date>
            <delta_ts>2021-02-19 12:39:46 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222165-20210219180405.patch</filename>
            <type>text/plain</type>
            <size>17088</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjczMTMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjMzMzE0NTI3ZWM3MTI3
MzMyZDBjNjZlMmM1MTY2M2M0NDE4ZDVhZS4uOTY3YzJmNTI1ZTJkOGI5M2IxNTkwZDczY2I5Njhj
M2ZkYTc3MjE0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIxLTAyLTE5ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBbGxvdyB0byB1c2UgQmln
SW50IGFzIGtleSBpZGVudGlmaWVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMjIxNjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBBbGxvdyB0byBwYXNzIGEgQmlnSW50IGFzIGtleSBpZCBzbyBhcyB0byB1
c2UgYWxsIG9mIFNGcmFtZSBrZXkgSUQgOCBieXRlcy4KKyAgICAgICAgQSBSYW5nZUVycm9yIGlz
IHRocm93biBpZiBCaWdJbnQgaXMgbW9yZSB0aGFuIDY0IGJpdHMuCisKKyAgICAgICAgVXBkYXRl
IHRoZSBpbXBsZW1lbnRhdGlvbiB0byB1c2UgYSBWZWN0b3IgaW5zdGVhZCBvZiBhIG1hcCB0byBr
ZWVwIHRoZSBrZXlzLgorICAgICAgICBUaGlzIGFsbG93cyB0byBhbHNvIHVzZSAwIGFuZCAyXjY0
LTEgdmFsdWVzIHRoYXQgSGFzaE1hcCByZXNlcnZlcyBmb3IgaXRzIHBlcnNvbmFsIHVzZS4KKwor
ICAgICAgICBDb3ZlcmVkIGJ5IHVwZGF0ZWQgdGVzdC4KKworICAgICAgICAqIE1vZHVsZXMvbWVk
aWFzdHJlYW0vUlRDUnRwU0ZyYW1lVHJhbnNmb3JtLmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL21l
ZGlhc3RyZWFtL1JUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlJUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyOjpzZXRFbmNyeXB0aW9uS2V5KToKKyAgICAgICAgKFdl
YkNvcmU6OlJUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyOjp1cGRhdGVFbmNyeXB0aW9uS2V5KToKKyAg
ICAgICAgKFdlYkNvcmU6OlJUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyOjpkZWNyeXB0RnJhbWUpOgor
ICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXIuaDoK
KyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2o6CisgICAgICAgICogYmluZGluZ3MvanMvSlNSVENSdHBTRnJhbWVUcmFuc2Zv
cm1DdXN0b20uY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkpTUlRDUnRwU0ZyYW1lVHJh
bnNmb3JtOjpzZXRFbmNyeXB0aW9uS2V5KToKKwogMjAyMS0wMi0xOSAgWW91ZW5uIEZhYmxldCAg
PHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgVXBkYXRlIGNhbWVyYSBhbmQgbWljcm9waG9u
ZSBjYXB0dXJlIHN0YXRlIGNvbnRyb2wgV0tXZWJWaWV3IEFQSQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTRnJhbWVUcmFuc2Zvcm0uaWRsIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTRnJhbWVUcmFuc2Zvcm0u
aWRsCmluZGV4IDY0MGJjMjA3NjQwZDg4YmZiZGZkYjg0NjJhNjA4MzRhNzJhYTBiNmEuLjhmNDEz
YmZiYjg4ZjFjOGUyNjIzZWNkMGJhMTI2NTk3OTI0YThkYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU0ZyYW1lVHJhbnNmb3JtLmlkbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNGcmFtZVRyYW5zZm9y
bS5pZGwKQEAgLTUwLDcgKzUwLDcgQEAgZGljdGlvbmFyeSBSVENSdHBTRnJhbWVUcmFuc2Zvcm1P
cHRpb25zIHsKIF0gaW50ZXJmYWNlIFJUQ1J0cFNGcmFtZVRyYW5zZm9ybSB7CiAgICAgW0NhbGxX
aXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHRdIGNvbnN0cnVjdG9yKG9wdGlvbmFsIFJUQ1J0cFNG
cmFtZVRyYW5zZm9ybU9wdGlvbnMgb3B0aW9ucyk7CiAKLSAgICBQcm9taXNlPHVuZGVmaW5lZD4g
c2V0RW5jcnlwdGlvbktleShDcnlwdG9LZXkga2V5LCBvcHRpb25hbCB1bnNpZ25lZCBsb25nIGxv
bmcga2V5SUQpOworICAgIFtDdXN0b21dIFByb21pc2U8dW5kZWZpbmVkPiBzZXRFbmNyeXB0aW9u
S2V5KENyeXB0b0tleSBrZXksIG9wdGlvbmFsIGFueSBrZXlJRCk7CiAgICAgLy8gRklYTUU6IEFk
ZCBzdXBwb3J0IGZvciBtaXNzaW5nIG1ldGhvZHMuCiAgICAgLy8gUHJvbWlzZTx1bmRlZmluZWQ+
IHJhdGNoZXRFbmNyeXB0aW9uS2V5KCk7CiAgICAgLy8gUHJvbWlzZTx1bmRlZmluZWQ+IHNldFNp
Z25pbmdLZXkoQ3J5cHRvS2V5IGtleSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXIuY3BwCmluZGV4
IDg5YjA4YjMyZmFiODA3ZDY4ZmZiODg0ZWRiMDVkZDk3MTVjNWRjZmYuLmMxMzhmZWZiNGI1YTg5
NDdhYjJjNTAzODk2NDFlNWE1MDA1ZTZiNmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXIuY3Bw
CkBAIC0xNDksMTcgKzE0OSwxMiBAQCBSVENSdHBTRnJhbWVUcmFuc2Zvcm1lcjo6flJUQ1J0cFNG
cmFtZVRyYW5zZm9ybWVyKCkKIAogRXhjZXB0aW9uT3I8dm9pZD4gUlRDUnRwU0ZyYW1lVHJhbnNm
b3JtZXI6OnNldEVuY3J5cHRpb25LZXkoY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiByYXdLZXksIE9w
dGlvbmFsPHVpbnQ2NF90PiBrZXlJZCkKIHsKLSAgICBpZiAoa2V5SWQgJiYgKmtleUlkID09IHN0
ZDo6bnVtZXJpY19saW1pdHM8dWludDY0X3Q+OjptYXgoKSkKLSAgICAgICAgcmV0dXJuIEV4Y2Vw
dGlvbiB7IFR5cGVFcnJvciwgIktleSBJRCBpcyB0b28gYmlnIiB9OwotCiAgICAgYXV0byBsb2Nr
ZXIgPSBob2xkTG9jayhtX2tleUxvY2spOwogICAgIHJldHVybiB1cGRhdGVFbmNyeXB0aW9uS2V5
KHJhd0tleSwga2V5SWQsIFNob3VsZFVwZGF0ZUtleXM6Olllcyk7CiB9CiAKIEV4Y2VwdGlvbk9y
PHZvaWQ+IFJUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyOjp1cGRhdGVFbmNyeXB0aW9uS2V5KGNvbnN0
IFZlY3Rvcjx1aW50OF90PiYgcmF3S2V5LCBPcHRpb25hbDx1aW50NjRfdD4ga2V5SWQsIFNob3Vs
ZFVwZGF0ZUtleXMgc2hvdWxkVXBkYXRlS2V5cykKIHsKLSAgICBBU1NFUlQoIWtleUlkIHx8ICpr
ZXlJZCAhPSBzdGQ6Om51bWVyaWNfbGltaXRzPHVpbnQ2NF90Pjo6bWF4KCkpOwotCiAgICAgQVNT
RVJUKG1fa2V5TG9jay5pc0xvY2tlZCgpKTsKIAogICAgIGF1dG8gc2FsdEtleVJlc3VsdCA9IGNv
bXB1dGVTYWx0S2V5KHJhd0tleSk7CkBAIC0xNzYsMTIgKzE3MSwxNiBAQCBFeGNlcHRpb25Pcjx2
b2lkPiBSVENSdHBTRnJhbWVUcmFuc2Zvcm1lcjo6dXBkYXRlRW5jcnlwdGlvbktleShjb25zdCBW
ZWN0b3I8dWludAogICAgIGlmIChlbmNyeXB0aW9uS2V5UmVzdWx0Lmhhc0V4Y2VwdGlvbigpKQog
ICAgICAgICByZXR1cm4gZW5jcnlwdGlvbktleVJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCk7CiAK
LSAgICBpZiAoIWtleUlkKQotICAgICAgICBrZXlJZCA9IG1fa2V5cy5zaXplKCk7CisgICAgaWYg
KHNob3VsZFVwZGF0ZUtleXMgPT0gU2hvdWxkVXBkYXRlS2V5czo6Tm8pCisgICAgICAgIG1fa2V5
SWQgPSAqa2V5SWQ7CisgICAgZWxzZSB7CisgICAgICAgIC8vIEZJWE1FOiBJbiBjYXNlIGtleUlk
IGlzIG5vdCBzZXQsIGl0IG1pZ2h0IGJlIGJlc3QgdG8gdXNlIHRoZSBmaXJzdCBub24gdXNlZCBJ
RC4KKyAgICAgICAgaWYgKCFrZXlJZCkKKyAgICAgICAgICAgIGtleUlkID0gbV9rZXlzLnNpemUo
KTsKIAotICAgIG1fa2V5SWQgPSAqa2V5SWQ7Ci0gICAgaWYgKHNob3VsZFVwZGF0ZUtleXMgPT0g
U2hvdWxkVXBkYXRlS2V5czo6WWVzKQotICAgICAgICBtX2tleXMuc2V0KCprZXlJZCArIDEsIHJh
d0tleSk7CisgICAgICAgIG1fa2V5SWQgPSAqa2V5SWQ7CisgICAgICAgIG1fa2V5cy5hcHBlbmQo
eyBtX2tleUlkLCByYXdLZXkgfSk7CisgICAgfQogCiAgICAgbV9zYWx0S2V5ID0gc2FsdEtleVJl
c3VsdC5yZWxlYXNlUmV0dXJuVmFsdWUoKTsKICAgICBtX2F1dGhlbnRpY2F0aW9uS2V5ID0gYXV0
aGVudGljYXRpb25LZXlSZXN1bHQucmVsZWFzZVJldHVyblZhbHVlKCk7CkBAIC0yMzAsMTMgKzIy
OSwxMCBAQCBFeGNlcHRpb25PcjxWZWN0b3I8dWludDhfdD4+IFJUQ1J0cFNGcmFtZVRyYW5zZm9y
bWVyOjpkZWNyeXB0RnJhbWUoY29uc3QgdWludDhfdAogICAgIG1fY291bnRlciA9IGhlYWRlci0+
Y291bnRlcjsKIAogICAgIGlmIChoZWFkZXItPmtleUlkICE9IG1fa2V5SWQpIHsKLSAgICAgICAg
aWYgKGhlYWRlci0+a2V5SWQgPT0gc3RkOjpudW1lcmljX2xpbWl0czx1aW50NjRfdD46Om1heCgp
KQotICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IERhdGFFcnJvciwgIktleSBJRCBpcyB1
bmtub3duIiB9OwotCi0gICAgICAgIGF1dG8gaXRlcmF0b3IgPSBtX2tleXMuZmluZChoZWFkZXIt
PmtleUlkICsgMSk7Ci0gICAgICAgIGlmIChpdGVyYXRvciA9PSBtX2tleXMuZW5kKCkpCisgICAg
ICAgIGF1dG8gcG9zaXRpb24gPSBtX2tleXMuZmluZE1hdGNoaW5nKFtrZXlJZCA9IGhlYWRlci0+
a2V5SWRdKGF1dG8mIGl0ZW0pIHsgcmV0dXJuIGl0ZW0ua2V5SWQgPT0ga2V5SWQ7IH0pOworICAg
ICAgICBpZiAocG9zaXRpb24gPT0gbm90Rm91bmQpCiAgICAgICAgICAgICByZXR1cm4gRXhjZXB0
aW9uIHsgRGF0YUVycm9yLCAiS2V5IElEIGlzIHVua25vd24iIH07Ci0gICAgICAgIGF1dG8gcmVz
dWx0ID0gdXBkYXRlRW5jcnlwdGlvbktleShpdGVyYXRvci0+dmFsdWUsIGhlYWRlci0+a2V5SWQs
IFNob3VsZFVwZGF0ZUtleXM6Ok5vKTsKKyAgICAgICAgYXV0byByZXN1bHQgPSB1cGRhdGVFbmNy
eXB0aW9uS2V5KG1fa2V5c1twb3NpdGlvbl0ua2V5RGF0YSwgaGVhZGVyLT5rZXlJZCwgU2hvdWxk
VXBkYXRlS2V5czo6Tm8pOwogICAgICAgICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKQogICAg
ICAgICAgICAgcmV0dXJuIHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCk7CiAgICAgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTRnJhbWVUcmFu
c2Zvcm1lci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTRnJh
bWVUcmFuc2Zvcm1lci5oCmluZGV4IDM3ZWUxYWM5MGQ0YjE1YWYzMzgyOTI0YjU5MjAwMzNmMzhh
ZDNlNmQuLmEwZTY1ZDhkYzY0MDQzMzkzOWQ0YjU1ZDQ0MTBlNTJjMjQyZjdiYTAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU0ZyYW1lVHJhbnNm
b3JtZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNG
cmFtZVRyYW5zZm9ybWVyLmgKQEAgLTgwLDcgKzgwLDEyIEBAIHByaXZhdGU6CiAgICAgVmVjdG9y
PHVpbnQ4X3Q+IG1fYXV0aGVudGljYXRpb25LZXk7CiAgICAgVmVjdG9yPHVpbnQ4X3Q+IG1fZW5j
cnlwdGlvbktleTsKICAgICBWZWN0b3I8dWludDhfdD4gbV9zYWx0S2V5OwotICAgIEhhc2hNYXA8
dWludDY0X3QsIFZlY3Rvcjx1aW50OF90Pj4gbV9rZXlzOworCisgICAgc3RydWN0IElkZW50aWZp
ZWRLZXkgeworICAgICAgICB1aW50NjRfdCBrZXlJZCB7IDAgfTsKKyAgICAgICAgVmVjdG9yPHVp
bnQ4X3Q+IGtleURhdGE7CisgICAgfTsKKyAgICBWZWN0b3I8SWRlbnRpZmllZEtleT4gbV9rZXlz
OwogCiAgICAgYm9vbCBtX2lzRW5jcnlwdGluZyB7IGZhbHNlIH07CiAgICAgdWludDY0X3QgbV9h
dXRoZW50aWNhdGlvblNpemUgeyAxMCB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291
cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCBjMzVjMDZmMDMwNjdm
MWRjMDJiNTQ1Njk3NTNhNDk3NTA3YTlkNTJlLi4yMDhlYTU4NTA0M2E2ZTMxZWRiMWQ4MDVmMzY2
ZGVjZjQ3NGU5NDg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtNTk0LDYgKzU5NCw3IEBAIGJpbmRpbmdz
L2pzL0pTUGVyZm9ybWFuY2VPYnNlcnZlckN1c3RvbS5jcHAKIGJpbmRpbmdzL2pzL0pTUGx1Z2lu
RWxlbWVudEZ1bmN0aW9ucy5jcHAKIGJpbmRpbmdzL2pzL0pTUG9wU3RhdGVFdmVudEN1c3RvbS5j
cHAKIGJpbmRpbmdzL2pzL0pTUHJvbWlzZVJlamVjdGlvbkV2ZW50Q3VzdG9tLmNwcAorYmluZGlu
Z3MvanMvSlNSVENSdHBTRnJhbWVUcmFuc2Zvcm1DdXN0b20uY3BwCiBiaW5kaW5ncy9qcy9KU1Jl
YWRhYmxlU3RyZWFtU291cmNlQ3VzdG9tLmNwcAogYmluZGluZ3MvanMvSlNSZW1vdGVET01XaW5k
b3dCYXNlLmNwcAogYmluZGluZ3MvanMvSlNSZW1vdGVET01XaW5kb3dDdXN0b20uY3BwCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2og
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXgg
OGQxZmZmZWJlZmVmMjBjNjBjOTA1MDliYWM3MWY0MjNiNDNhNmM0Ni4uZGZiNTJiYjE3OWE2NjIy
YjM4NjViZWRlYmI5NzQxZjI0NGFkNDQwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNzc4Myw2ICs3NzgzLDcgQEAKIAkJNDE3
MEEyRTkxRDhDMENDMDAwMzE4NDUyIC8qIEpTRE9NV3JhcHBlci5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0RPTVdyYXBwZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk0MTcyNTNBODEzNTRCQkJDMDAzNjBGMkEgLyogTWVkaWFDb250cm9sVGV4
dFRyYWNrQ29udGFpbmVyRWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBNZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50LmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE3MjUzQTkxMzU0QkJCQzAwMzYwRjJBIC8qIE1lZGlh
Q29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gTWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTczM0Q3RDI1REZCRkM1MDBBMTM2RTUgLyogSlNS
VENSdHBTRnJhbWVUcmFuc2Zvcm1DdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNSVENS
dHBTRnJhbWVUcmFuc2Zvcm1DdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk0MTc0RTkxRTI1MzVEQ0Q2MDBGRTQyMDIgLyogTWVkaWFTdHJlYW1UcmFja0F1ZGlvU291cmNl
UHJvdmlkZXJDb2NvYS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVN0cmVhbVRyYWNrQXVkaW9Tb3Vy
Y2VQcm92aWRlckNvY29hLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxNzRFOTIw
MjUzNURDREQwMEZFNDIwMiAvKiBNZWRpYVN0cmVhbVRyYWNrQXVkaW9Tb3VyY2VQcm92aWRlckNv
Y29hLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1lZGlhU3RyZWFtVHJhY2tBdWRpb1NvdXJjZVBy
b3ZpZGVyQ29jb2EuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTc2MTJBQjFF
M0E5OTNCMDBDM0Q4MUQgLyogTGliV2ViUlRDTWVkaWFFbmRwb2ludC5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBMaWJXZWJSVENNZWRpYUVuZHBvaW50LmNwcDsgcGF0
aCA9IGxpYndlYnJ0Yy9MaWJXZWJSVENNZWRpYUVuZHBvaW50LmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTI3MTU3LDYgKzI3MTU4LDcgQEAKIAkJCQlCQzU4MjNGNDBDMEE5OERG
MDA1M0YxQjUgLyogSlNIVE1MRWxlbWVudEN1c3RvbS5jcHAgKi8sCiAJCQkJQkNFMUM0M0YwRDk4
MzBGNDAwM0IwMkYyIC8qIEpTTG9jYXRpb25DdXN0b20uY3BwICovLAogCQkJCTRCNkI1Q0JFMjE2
NDM0RkIwMDYwMzgxNyAvKiBKU1BhaW50V29ya2xldEdsb2JhbFNjb3BlQ3VzdG9tLmNwcCAqLywK
KwkJCQk0MTczM0Q3RDI1REZCRkM1MDBBMTM2RTUgLyogSlNSVENSdHBTRnJhbWVUcmFuc2Zvcm1D
dXN0b20uY3BwICovLAogCQkJCTQxOEMzOTVEMUM4RjBBQUIwMDUxQzhBMyAvKiBKU1JlYWRhYmxl
U3RyZWFtU291cmNlQ3VzdG9tLmNwcCAqLywKIAkJCQk0NkJDQkJCRTIwODUwMDVCMDA3MTA2Mzgg
LyogSlNSZW1vdGVET01XaW5kb3dDdXN0b20uY3BwICovLAogCQkJCTdBM0VCRUFBMjFCRjA1NEMw
MDBEMDQzRCAvKiBKU1NWR1ZpZXdTcGVjQ3VzdG9tLmNwcCAqLywKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUlRDUnRwU0ZyYW1lVHJhbnNmb3JtQ3VzdG9tLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUlRDUnRwU0ZyYW1lVHJhbnNmb3JtQ3VzdG9t
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5kNjJhNjk4NzVmNGM3Y2FkOGM4NWQxY2ZhOTA2YzYwZGZiNzQ3YjMx
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNSVENSdHBT
RnJhbWVUcmFuc2Zvcm1DdXN0b20uY3BwCkBAIC0wLDAgKzEsNzUgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiSlNSVENSdHBTRnJhbWVUcmFuc2Zvcm0uaCIKKworI2lmIEVOQUJMRShXRUJfUlRDKQor
CisjaW5jbHVkZSAiSlNDcnlwdG9LZXkuaCIKKyNpbmNsdWRlICJKU0RPTVByb21pc2VEZWZlcnJl
ZC5oIgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTQmlnSW50Lmg+CisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKK3VzaW5nIG5hbWVzcGFjZSBKU0M7CisKK0pTVmFsdWUgSlNSVENSdHBTRnJhbWVU
cmFuc2Zvcm06OnNldEVuY3J5cHRpb25LZXkoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxP
YmplY3QsIENhbGxGcmFtZSYgY2FsbEZyYW1lLCBSZWY8RGVmZXJyZWRQcm9taXNlPiYmIHByb21p
c2UpCit7CisgICAgYXV0byYgdm0gPSBnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCk7CisgICAg
YXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CisKKyAgICBpZiAoVU5M
SUtFTFkoY2FsbEZyYW1lLmFyZ3VtZW50Q291bnQoKSA8IDEpKSB7CisgICAgICAgIHRocm93Vk1F
cnJvcigmbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgY3JlYXRlTm90RW5vdWdoQXJn
dW1lbnRzRXJyb3IoJmxleGljYWxHbG9iYWxPYmplY3QpKTsKKyAgICAgICAgcmV0dXJuIGpzVW5k
ZWZpbmVkKCk7CisgICAgfQorCisgICAgRW5zdXJlU3RpbGxBbGl2ZVNjb3BlIGFyZ3VtZW50MCA9
IGNhbGxGcmFtZS51bmNoZWNrZWRBcmd1bWVudCgwKTsKKyAgICBhdXRvIGtleSA9IGNvbnZlcnQ8
SURMSW50ZXJmYWNlPENyeXB0b0tleT4+KGxleGljYWxHbG9iYWxPYmplY3QsIGFyZ3VtZW50MC52
YWx1ZSgpLCBbXShhdXRvJiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBhdXRvJiBzY29wZSkgeworICAg
ICAgICB0aHJvd0FyZ3VtZW50VHlwZUVycm9yKGxleGljYWxHbG9iYWxPYmplY3QsIHNjb3BlLCAw
LCAia2V5IiwgIlNGcmFtZVRyYW5zZm9ybSIsICJzZXRFbmNyeXB0aW9uS2V5IiwgIkNyeXB0b0tl
eSIpOworICAgIH0pOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04odGhyb3dTY29wZSwganNVbmRl
ZmluZWQoKSk7CisKKyAgICBFbnN1cmVTdGlsbEFsaXZlU2NvcGUgYXJndW1lbnQxID0gY2FsbEZy
YW1lLmFyZ3VtZW50KDEpOworICAgIE9wdGlvbmFsPHVpbnQ2NF90PiBrZXlJRDsKKyAgICBpZiAo
IWFyZ3VtZW50MS52YWx1ZSgpLmlzVW5kZWZpbmVkKCkpIHsKKyAgICAgICAgaWYgKGFyZ3VtZW50
MS52YWx1ZSgpLmlzQmlnSW50KCkpIHsKKyAgICAgICAgICAgIGlmIChhcmd1bWVudDEudmFsdWUo
KS5hc0hlYXBCaWdJbnQoKS0+bGVuZ3RoKCkgPiAxKSB7CisgICAgICAgICAgICAgICAgdGhyb3dF
eGNlcHRpb24oJmxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGNyZWF0ZURPTUV4Y2Vw
dGlvbigmbGV4aWNhbEdsb2JhbE9iamVjdCwgUmFuZ2VFcnJvciwgIk5vdCBhIDY0IGJpdHMgaW50
ZWdlciJfcykpOworICAgICAgICAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOworICAgICAg
ICAgICAgfQorICAgICAgICAgICAga2V5SUQgPSBKU0JpZ0ludDo6dG9CaWdVSW50NjQoYXJndW1l
bnQxLnZhbHVlKCkpOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIGtleUlEID0gT3B0aW9u
YWw8Q29udmVydGVyPElETFVuc2lnbmVkTG9uZ0xvbmc+OjpSZXR1cm5UeXBlPihjb252ZXJ0PElE
TFVuc2lnbmVkTG9uZ0xvbmc+KGxleGljYWxHbG9iYWxPYmplY3QsIGFyZ3VtZW50MS52YWx1ZSgp
KSk7CisgICAgfQorICAgIFJFVFVSTl9JRl9FWENFUFRJT04odGhyb3dTY29wZSwganNVbmRlZmlu
ZWQoKSk7CisgICAgdGhyb3dTY29wZS5yZWxlYXNlKCk7CisKKyAgICB3cmFwcGVkKCkuc2V0RW5j
cnlwdGlvbktleSgqa2V5LCBrZXlJRCwgV1RGTW92ZShwcm9taXNlKSk7CisgICAgcmV0dXJuIGpz
VW5kZWZpbmVkKCk7Cit9CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYmUzMTQwMmQ2ZmY4MjBjMTEy
OGVhNTJhN2ZjMWNjZjRhOGI5NDJjZC4uMjQxZWUyNWVhODk3Y2FlMDBiYmY3MmVmMmJhOTNlMmEx
NWQyNWUyNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIxLTAyLTE5ICBZb3Vlbm4gRmFibGV0
ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBbGxvdyB0byB1c2UgQmlnSW50IGFzIGtl
eSBpZGVudGlmaWVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMjIxNjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIHdlYnJ0Yy9zZnJhbWUta2V5cy1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2VicnRj
L3NmcmFtZS1rZXlzLmh0bWw6CisKIDIwMjEtMDItMTkgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5A
YXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBzdXBwb3J0IGZvciBhZGRpbmcvcmVtb3ZpbmcvY2xl
YXJpbmcgbW9jayBkZXZpY2VzIGluIEdQVVByb2Nlc3MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3dlYnJ0Yy9zZnJhbWUta2V5cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJydGMvc2Zy
YW1lLWtleXMtZXhwZWN0ZWQudHh0CmluZGV4IDRkYzVhZTNiMTEyOTllZTljZDk1Y2MxOTZjMGEz
MGY3Y2YyYTIzODEuLmNhN2ZlZDVmODAxMDQwNWIwOWJjMTQ5NGIyY2RkYmYwZmJkODY1OWMgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYnJ0Yy9zZnJhbWUta2V5cy1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvd2VicnRjL3NmcmFtZS1rZXlzLWV4cGVjdGVkLnR4dApAQCAtMSw2ICsx
LDggQEAKIAogCitQQVNTIFBhc3NpbmcgdmFyaW91cyBrZXkgSURzCiBQQVNTIEF1ZGlvIGV4Y2hh
bmdlIHdpdGggU0ZyYW1lIHNldHVwCiBQQVNTIEFkZCBhIG5ldyBlbmNyeXB0aW9uIGtleQogUEFT
UyBBZGQgYSBuZXcgZW5jcnlwdGlvbiBrZXkgd2l0aCBrZXkgaWQKK1BBU1MgQWRkIGEgbmV3IGVu
Y3J5cHRpb24ga2V5IHdpdGggQmlnSW50IGtleSBpZAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy93ZWJydGMvc2ZyYW1lLWtleXMuaHRtbCBiL0xheW91dFRlc3RzL3dlYnJ0Yy9zZnJhbWUta2V5
cy5odG1sCmluZGV4IGE5NzU3MzFjY2YxZjk0YmEzOGI5MGNkOTMxOWExOTBiMzhmOTk0ODkuLjEx
NWMyNzE4YjJlMGQ0N2RlYmM3YzMwNzlhZmIxZDM4NTE0Y2QwNmIgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3dlYnJ0Yy9zZnJhbWUta2V5cy5odG1sCisrKyBiL0xheW91dFRlc3RzL3dlYnJ0Yy9z
ZnJhbWUta2V5cy5odG1sCkBAIC0xMCwxMiArMTAsMjkgQEAKICAgICAgICAgPHNjcmlwdCBzcmMg
PSJyb3V0aW5lcy5qcyI+PC9zY3JpcHQ+CiAgICAgICAgIDxzY3JpcHQ+CiBsZXQgc2VuZGVyLCBy
ZWNlaXZlcjsKLWxldCBrZXkxLCBrZXkyLCBrZXkzOworbGV0IGtleTEsIGtleTIsIGtleTMsIGtl
eTQ7CisKK3Byb21pc2VfdGVzdChhc3luYyAodGVzdCkgPT4geworICAgIGNvbnN0IGtleSA9IGF3
YWl0IGNyeXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJyYXciLCBuZXcgVWludDhBcnJheShbMTQzLCA3
NywgNDMsIDEwLCA3MiwgMTksIDM3LCA2NywgMjM2LCAyMTksIDI0LCA5MywgMjYsIDE2NSwgOTEs
IDE3OF0pLCAiSEtERiIsIGZhbHNlLCBbImRlcml2ZUJpdHMiLCAiZGVyaXZlS2V5Il0pOworICAg
IGNvbnN0IHRyYW5zZm9ybSA9IG5ldyBTRnJhbWVUcmFuc2Zvcm07CisKKyAgICBhd2FpdCB0cmFu
c2Zvcm0uc2V0RW5jcnlwdGlvbktleShrZXkpOworICAgIGF3YWl0IHRyYW5zZm9ybS5zZXRFbmNy
eXB0aW9uS2V5KGtleSwgMSk7CisKKyAgICBhd2FpdCB0cmFuc2Zvcm0uc2V0RW5jcnlwdGlvbktl
eShrZXksIEJpZ0ludCgnMTg0NDY3NDQwNzM3MDk1NTE2MTMnKSk7CisgICAgYXdhaXQgdHJhbnNm
b3JtLnNldEVuY3J5cHRpb25LZXkoa2V5LCBCaWdJbnQoJzE4NDQ2NzQ0MDczNzA5NTUxNjE0Jykp
OworICAgIGF3YWl0IHRyYW5zZm9ybS5zZXRFbmNyeXB0aW9uS2V5KGtleSwgQmlnSW50KCcxODQ0
Njc0NDA3MzcwOTU1MTYxNScpKTsKKyAgICBhd2FpdCB0cmFuc2Zvcm0uc2V0RW5jcnlwdGlvbktl
eShrZXksIEJpZ0ludCgnMTg0NDY3NDQwNzM3MDk1NTE2MTYnKSkudGhlbihhc3NlcnRfdW5yZWFj
aGVkLCAoZSkgPT4geworICAgICAgICBhc3NlcnRfdHJ1ZShlIGluc3RhbmNlb2YgUmFuZ2VFcnJv
cik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoZS5tZXNzYWdlLCAiTm90IGEgNjQgYml0cyBpbnRl
Z2VyIik7CisgICAgfSk7Cit9LCAiUGFzc2luZyB2YXJpb3VzIGtleSBJRHMiKTsKIAogcHJvbWlz
ZV90ZXN0KGFzeW5jICh0ZXN0KSA9PiB7CiAgICAga2V5MSA9IGF3YWl0IGNyeXB0by5zdWJ0bGUu
aW1wb3J0S2V5KCJyYXciLCBuZXcgVWludDhBcnJheShbMTQzLCA3NywgNDMsIDEwLCA3MiwgMTks
IDM3LCA2NywgMjM2LCAyMTksIDI0LCA5MywgMjYsIDE2NSwgOTEsIDE3OF0pLCAiSEtERiIsIGZh
bHNlLCBbImRlcml2ZUJpdHMiLCAiZGVyaXZlS2V5Il0pOwogICAgIGtleTIgPSBhd2FpdCBjcnlw
dG8uc3VidGxlLmltcG9ydEtleSgicmF3IiwgbmV3IFVpbnQ4QXJyYXkoWzE0NCwgNzcsIDQzLCAx
MCwgNzIsIDE5LCAzNywgNjcsIDIzNiwgMjE5LCAyNCwgOTMsIDI2LCAxNjUsIDkxLCAxNzhdKSwg
IkhLREYiLCBmYWxzZSwgWyJkZXJpdmVCaXRzIiwgImRlcml2ZUtleSJdKTsKICAgICBrZXkzID0g
YXdhaXQgY3J5cHRvLnN1YnRsZS5pbXBvcnRLZXkoInJhdyIsIG5ldyBVaW50OEFycmF5KFsxNDUs
IDc3LCA0MywgMTAsIDcyLCAxOSwgMzcsIDY3LCAyMzYsIDIxOSwgMjQsIDkzLCAyNiwgMTY1LCA5
MSwgMTc4XSksICJIS0RGIiwgZmFsc2UsIFsiZGVyaXZlQml0cyIsICJkZXJpdmVLZXkiXSk7Cisg
ICAga2V5NCA9IGF3YWl0IGNyeXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJyYXciLCBuZXcgVWludDhB
cnJheShbMTQ2LCA3NywgNDMsIDEwLCA3MiwgMTksIDM3LCA2NywgMjM2LCAyMTksIDI0LCA5Mywg
MjYsIDE2NSwgOTEsIDE3OF0pLCAiSEtERiIsIGZhbHNlLCBbImRlcml2ZUJpdHMiLCAiZGVyaXZl
S2V5Il0pOwogCiAgICAgY29uc3QgbG9jYWxTdHJlYW0gPSBhd2FpdCBuYXZpZ2F0b3IubWVkaWFE
ZXZpY2VzLmdldFVzZXJNZWRpYSh7YXVkaW86IHRydWV9KTsKICAgICBjb25zdCBzdHJlYW0gPSBh
d2FpdCBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7CkBAIC0zMCw2ICs0Nyw3IEBA
IHByb21pc2VfdGVzdChhc3luYyAodGVzdCkgPT4gewogICAgICAgICAgICAgICAgIHRyYW5zZm9y
bS5zZXRFbmNyeXB0aW9uS2V5KGtleTEpOwogICAgICAgICAgICAgICAgIHRyYW5zZm9ybS5zZXRF
bmNyeXB0aW9uS2V5KGtleTIpOwogICAgICAgICAgICAgICAgIHRyYW5zZm9ybS5zZXRFbmNyeXB0
aW9uS2V5KGtleTMsIDEwMDApOworICAgICAgICAgICAgICAgIHRyYW5zZm9ybS5zZXRFbmNyeXB0
aW9uS2V5KGtleTQsIEJpZ0ludCgnMTg0NDY3NDQwNzM3MDk1NTE2MTUnKSk7CiAgICAgICAgICAg
ICAgICAgcmVjZWl2ZXIgPSB0cmFja0V2ZW50LnJlY2VpdmVyOwogICAgICAgICAgICAgICAgIHJl
Y2VpdmVyLnRyYW5zZm9ybSA9IHRyYW5zZm9ybTsKICAgICAgICAgICAgICAgICByZXNvbHZlKHRy
YWNrRXZlbnQuc3RyZWFtc1swXSk7CkBAIC03OCw2ICs5NiwxNiBAQCBwcm9taXNlX3Rlc3QoYXN5
bmMgKHRlc3QpID0+IHsKICAgIGFzc2VydF90cnVlKGF3YWl0IHdhaXRGb3JSZWNlaXZlcktleUlk
KHJlY2VpdmVyLCAxMDAwKSwgImtleSBpZCAyIik7CiAgICBhc3NlcnRfdHJ1ZShhd2FpdCB3YWl0
Rm9yQ291bnRlckluY3JlYXNlKHJlY2VpdmVyKSwgImNvdW50ZXIgaW5jcmVhc2UgMiIpOwogfSwg
IkFkZCBhIG5ldyBlbmNyeXB0aW9uIGtleSB3aXRoIGtleSBpZCIpOworCitwcm9taXNlX3Rlc3Qo
YXN5bmMgKHRlc3QpID0+IHsKKyAgIHNlbmRlci50cmFuc2Zvcm0uc2V0RW5jcnlwdGlvbktleShr
ZXk0LCBCaWdJbnQoJzE4NDQ2NzQ0MDczNzA5NTUxNjEzJykpOworCisgICBpZiAoIXdpbmRvdy5p
bnRlcm5hbHMpCisgICAgICAgcmV0dXJuOworCisgICBhc3NlcnRfdHJ1ZShhd2FpdCB3YWl0Rm9y
UmVjZWl2ZXJLZXlJZChyZWNlaXZlciwgMTAwMCksICJrZXkgaWQgMyIpOworICAgYXNzZXJ0X3Ry
dWUoYXdhaXQgd2FpdEZvckNvdW50ZXJJbmNyZWFzZShyZWNlaXZlciksICJjb3VudGVyIGluY3Jl
YXNlIDMiKTsKK30sICJBZGQgYSBuZXcgZW5jcnlwdGlvbiBrZXkgd2l0aCBCaWdJbnQga2V5IGlk
Iik7CiAgICAgICAgIDwvc2NyaXB0PgogICAgIDwvYm9keT4KIDwvaHRtbD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>