<?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>237567</bug_id>
          
          <creation_ts>2022-03-07 16:41:54 -0800</creation_ts>
          <short_desc>[WebAuthn] Support authenticatorSelection.residentKey ResidentKeyRequirement</short_desc>
          <delta_ts>2022-03-11 09:50:36 -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>WebKit Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="pascoe@apple.com">pascoe</reporter>
          <assigned_to name="pascoe@apple.com">pascoe</assigned_to>
          <cc>annulen</cc>
    
    <cc>bfulgham</cc>
    
    <cc>cdumez</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1849030</commentid>
    <comment_count>0</comment_count>
    <who name="pascoe@apple.com">pascoe</who>
    <bug_when>2022-03-07 16:41:54 -0800</bug_when>
    <thetext>As part of the Web Authentication level 2 spec, authenticatorSelection.residentKey to allow Relying Parties to signify their preference for client-side discoverable credentials with greater granularity, for example, creating one if possible and falling back if not via &apos;Preferred.&apos;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1849031</commentid>
    <comment_count>1</comment_count>
    <who name="pascoe@apple.com">pascoe</who>
    <bug_when>2022-03-07 16:41:58 -0800</bug_when>
    <thetext>rdar://89788378</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1849034</commentid>
    <comment_count>2</comment_count>
      <attachid>454051</attachid>
    <who name="pascoe@apple.com">pascoe</who>
    <bug_when>2022-03-07 16:52:02 -0800</bug_when>
    <thetext>Created attachment 454051
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1849348</commentid>
    <comment_count>3</comment_count>
      <attachid>454138</attachid>
    <who name="pascoe@apple.com">pascoe</who>
    <bug_when>2022-03-08 11:47:47 -0800</bug_when>
    <thetext>Created attachment 454138
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1849858</commentid>
    <comment_count>4</comment_count>
      <attachid>454138</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2022-03-09 14:59:20 -0800</bug_when>
    <thetext>Comment on attachment 454138
Patch

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

The logic looks good, but I think some of the naming could be clearer.

&gt; Source/WebCore/Modules/webauthn/PublicKeyCredentialCreationOptions.h:69
&gt; +        std::optional&lt;ResidentKeyRequirement&gt; residentKey;

Suggeste calling this &quot;residentKeyRequirement&quot;, or just &quot;keyRequirement&quot;

&gt; Source/WebCore/Modules/webauthn/PublicKeyCredentialCreationOptions.idl:75
&gt; +    ResidentKeyRequirement       residentKey;

Ditto &quot;residentKeyRequirement&quot; or &quot;keyRequirement&quot;

&gt; Source/WebKit/UIProcess/API/Cocoa/_WKAuthenticatorSelectionCriteria.h:45
&gt; +@property (nonatomic) _WKResidentKeyRequirement residentKey;

Should this be named &quot;residentKeyRequirement&quot;? You aren&apos;t returning the key -- you are returning the key requirement.

&gt; Source/WebKit/UIProcess/API/Cocoa/_WKWebAuthenticationPanel.mm:738
&gt; +static std::optional&lt;WebCore::ResidentKeyRequirement&gt; residentKey(_WKResidentKeyRequirement uv)

I think we often name things like this &quot;toWebCore()&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1849862</commentid>
    <comment_count>5</comment_count>
      <attachid>454138</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-03-09 15:03:49 -0800</bug_when>
    <thetext>Comment on attachment 454138
Patch

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

&gt;&gt; Source/WebCore/Modules/webauthn/PublicKeyCredentialCreationOptions.idl:75
&gt;&gt; +    ResidentKeyRequirement       residentKey;
&gt; 
&gt; Ditto &quot;residentKeyRequirement&quot; or &quot;keyRequirement&quot;

Where is the specification for this? I see no such dictionary member in the spec: https://w3c.github.io/webauthn/#dictionary-makecredentialoptions

Is this an Apple-only extension?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1849864</commentid>
    <comment_count>6</comment_count>
      <attachid>454138</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-03-09 15:06:13 -0800</bug_when>
    <thetext>Comment on attachment 454138
Patch

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

&gt; Source/WebCore/Modules/webauthn/PublicKeyCredentialCreationOptions.h:141
&gt; +        return std::nullopt;

This never sets residentKey on result. It is decoding and ignoring the value.

I haven&apos;t looked at the rest of the patch yet but r- due to this bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1849871</commentid>
    <comment_count>7</comment_count>
      <attachid>454138</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-03-09 15:11:54 -0800</bug_when>
    <thetext>Comment on attachment 454138
Patch

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

There are changes to IDLs files yet no layout tests, this is a bit suspicious. Why can&apos;t this be tested?

&gt;&gt;&gt; Source/WebCore/Modules/webauthn/PublicKeyCredentialCreationOptions.idl:75
&gt;&gt;&gt; +    ResidentKeyRequirement       residentKey;
&gt;&gt; 
&gt;&gt; Ditto &quot;residentKeyRequirement&quot; or &quot;keyRequirement&quot;
&gt; 
&gt; Where is the specification for this? I see no such dictionary member in the spec: https://w3c.github.io/webauthn/#dictionary-makecredentialoptions
&gt; 
&gt; Is this an Apple-only extension?

Part of the reason I&apos;m asking is that Brent seems to be picking the name and given that this is Web-exposed, I&apos;d expect this to be standardized?

&gt; Source/WebCore/Modules/webauthn/ResidentKeyRequirement.h:34
&gt; +enum class ResidentKeyRequirement {

: uint8_t

&gt; Source/WebCore/Modules/webauthn/fido/AuthenticatorSupportedOptions.cpp:71
&gt; +    return m_residentKeyAvailability;

One liner, should be inlined in the header.

&gt; Source/WebCore/Modules/webauthn/fido/AuthenticatorSupportedOptions.h:54
&gt; +    enum class ResidentKeyAvailability {

: bool</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1849876</commentid>
    <comment_count>8</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-03-09 15:19:01 -0800</bug_when>
    <thetext>(In reply to Chris Dumez from comment #6)
&gt; Comment on attachment 454138 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=454138&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/Modules/webauthn/PublicKeyCredentialCreationOptions.h:141
&gt; &gt; +        return std::nullopt;
&gt; 
&gt; This never sets residentKey on result. It is decoding and ignoring the value.
&gt; 
&gt; I haven&apos;t looked at the rest of the patch yet but r- due to this bug.

This likely indicates test coverage is insufficient. Ideally the bots would have found this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1849881</commentid>
    <comment_count>9</comment_count>
    <who name="pascoe@apple.com">pascoe</who>
    <bug_when>2022-03-09 15:38:18 -0800</bug_when>
    <thetext>(In reply to Chris Dumez from comment #5)
&gt; Comment on attachment 454138 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=454138&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebCore/Modules/webauthn/PublicKeyCredentialCreationOptions.idl:75
&gt; &gt;&gt; +    ResidentKeyRequirement       residentKey;
&gt; &gt; 
&gt; &gt; Ditto &quot;residentKeyRequirement&quot; or &quot;keyRequirement&quot;
&gt; 
&gt; Where is the specification for this? I see no such dictionary member in the
&gt; spec: https://w3c.github.io/webauthn/#dictionary-makecredentialoptions
&gt; 
&gt; Is this an Apple-only extension?

(In reply to Brent Fulgham from comment #4)
&gt; &gt; Source/WebCore/Modules/webauthn/PublicKeyCredentialCreationOptions.h:69
&gt; &gt; +        std::optional&lt;ResidentKeyRequirement&gt; residentKey;
&gt; 
&gt; Suggeste calling this &quot;residentKeyRequirement&quot;, or just &quot;keyRequirement&quot;
&gt; 
&gt; &gt; Source/WebCore/Modules/webauthn/PublicKeyCredentialCreationOptions.idl:75
&gt; &gt; +    ResidentKeyRequirement       residentKey;
&gt; 
&gt; Ditto &quot;residentKeyRequirement&quot; or &quot;keyRequirement&quot;
&gt; 
&gt; &gt; Source/WebKit/UIProcess/API/Cocoa/_WKAuthenticatorSelectionCriteria.h:45
&gt; &gt; +@property (nonatomic) _WKResidentKeyRequirement residentKey;
&gt; 
&gt; Should this be named &quot;residentKeyRequirement&quot;? You aren&apos;t returning the key
&gt; -- you are returning the key requirement.

This name is in the level 2 of the Web Authentication spec here: https://www.w3.org/TR/webauthn-2/#dictdef-authenticatorselectioncriteria

Thank you both for the comments, I will address them.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1849887</commentid>
    <comment_count>10</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-03-09 15:43:53 -0800</bug_when>
    <thetext>(In reply to j_pascoe@apple.com from comment #9)
&gt; (In reply to Chris Dumez from comment #5)
&gt; &gt; Comment on attachment 454138 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=454138&amp;action=review
&gt; &gt; 
&gt; &gt; &gt;&gt; Source/WebCore/Modules/webauthn/PublicKeyCredentialCreationOptions.idl:75
&gt; &gt; &gt;&gt; +    ResidentKeyRequirement       residentKey;
&gt; &gt; &gt; 
&gt; &gt; &gt; Ditto &quot;residentKeyRequirement&quot; or &quot;keyRequirement&quot;
&gt; &gt; 
&gt; &gt; Where is the specification for this? I see no such dictionary member in the
&gt; &gt; spec: https://w3c.github.io/webauthn/#dictionary-makecredentialoptions
&gt; &gt; 
&gt; &gt; Is this an Apple-only extension?
&gt; 
&gt; (In reply to Brent Fulgham from comment #4)
&gt; &gt; &gt; Source/WebCore/Modules/webauthn/PublicKeyCredentialCreationOptions.h:69
&gt; &gt; &gt; +        std::optional&lt;ResidentKeyRequirement&gt; residentKey;
&gt; &gt; 
&gt; &gt; Suggeste calling this &quot;residentKeyRequirement&quot;, or just &quot;keyRequirement&quot;
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/Modules/webauthn/PublicKeyCredentialCreationOptions.idl:75
&gt; &gt; &gt; +    ResidentKeyRequirement       residentKey;
&gt; &gt; 
&gt; &gt; Ditto &quot;residentKeyRequirement&quot; or &quot;keyRequirement&quot;
&gt; &gt; 
&gt; &gt; &gt; Source/WebKit/UIProcess/API/Cocoa/_WKAuthenticatorSelectionCriteria.h:45
&gt; &gt; &gt; +@property (nonatomic) _WKResidentKeyRequirement residentKey;
&gt; &gt; 
&gt; &gt; Should this be named &quot;residentKeyRequirement&quot;? You aren&apos;t returning the key
&gt; &gt; -- you are returning the key requirement.
&gt; 
&gt; This name is in the level 2 of the Web Authentication spec here:
&gt; https://www.w3.org/TR/webauthn-2/#dictdef-authenticatorselectioncriteria
&gt; 
&gt; Thank you both for the comments, I will address them.

This link is NOT for the same dictionary I commented on though. I commented on PublicKeyCredentialCreationOptions. The link for level 2 would be:
- https://www.w3.org/TR/webauthn-2/#dictionary-makecredentialoptions

However, I don&apos;t see that member in there.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1849891</commentid>
    <comment_count>11</comment_count>
    <who name="pascoe@apple.com">pascoe</who>
    <bug_when>2022-03-09 15:48:59 -0800</bug_when>
    <thetext>(In reply to Chris Dumez from comment #10)
&gt; (In reply to j_pascoe@apple.com from comment #9)
&gt; &gt; (In reply to Chris Dumez from comment #5)
&gt; &gt; &gt; Comment on attachment 454138 [details]
&gt; &gt; &gt; Patch
&gt; &gt; &gt; 
&gt; &gt; &gt; View in context:
&gt; &gt; &gt; https://bugs.webkit.org/attachment.cgi?id=454138&amp;action=review
&gt; &gt; &gt; 
&gt; &gt; &gt; &gt;&gt; Source/WebCore/Modules/webauthn/PublicKeyCredentialCreationOptions.idl:75
&gt; &gt; &gt; &gt;&gt; +    ResidentKeyRequirement       residentKey;
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Ditto &quot;residentKeyRequirement&quot; or &quot;keyRequirement&quot;
&gt; &gt; &gt; 
&gt; &gt; &gt; Where is the specification for this? I see no such dictionary member in the
&gt; &gt; &gt; spec: https://w3c.github.io/webauthn/#dictionary-makecredentialoptions
&gt; &gt; &gt; 
&gt; &gt; &gt; Is this an Apple-only extension?
&gt; &gt; 
&gt; &gt; (In reply to Brent Fulgham from comment #4)
&gt; &gt; &gt; &gt; Source/WebCore/Modules/webauthn/PublicKeyCredentialCreationOptions.h:69
&gt; &gt; &gt; &gt; +        std::optional&lt;ResidentKeyRequirement&gt; residentKey;
&gt; &gt; &gt; 
&gt; &gt; &gt; Suggeste calling this &quot;residentKeyRequirement&quot;, or just &quot;keyRequirement&quot;
&gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Source/WebCore/Modules/webauthn/PublicKeyCredentialCreationOptions.idl:75
&gt; &gt; &gt; &gt; +    ResidentKeyRequirement       residentKey;
&gt; &gt; &gt; 
&gt; &gt; &gt; Ditto &quot;residentKeyRequirement&quot; or &quot;keyRequirement&quot;
&gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Source/WebKit/UIProcess/API/Cocoa/_WKAuthenticatorSelectionCriteria.h:45
&gt; &gt; &gt; &gt; +@property (nonatomic) _WKResidentKeyRequirement residentKey;
&gt; &gt; &gt; 
&gt; &gt; &gt; Should this be named &quot;residentKeyRequirement&quot;? You aren&apos;t returning the key
&gt; &gt; &gt; -- you are returning the key requirement.
&gt; &gt; 
&gt; &gt; This name is in the level 2 of the Web Authentication spec here:
&gt; &gt; https://www.w3.org/TR/webauthn-2/#dictdef-authenticatorselectioncriteria
&gt; &gt; 
&gt; &gt; Thank you both for the comments, I will address them.
&gt; 
&gt; This link is NOT for the same dictionary I commented on though. I commented
&gt; on PublicKeyCredentialCreationOptions. The link for level 2 would be:
&gt; - https://www.w3.org/TR/webauthn-2/#dictionary-makecredentialoptions
&gt; 
&gt; However, I don&apos;t see that member in there.

The IDL for AuthenticatorSelectionCriteria (from this link https://www.w3.org/TR/webauthn-2/#dictdef-authenticatorselectioncriteria) is in PublicKeyCredentialCreationOptions.idl. AuthenticatorSelectionCriteria authenticatorSelection is a field on PublicKeyCredentialCreationOptions (The 7th member in https://www.w3.org/TR/webauthn-2/#dictionary-makecredentialoptions). So the member is in creationOptions.authenticatorSelection.residentKey.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1849896</commentid>
    <comment_count>12</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-03-09 15:51:52 -0800</bug_when>
    <thetext>(In reply to j_pascoe@apple.com from comment #11)
&gt; (In reply to Chris Dumez from comment #10)
&gt; &gt; (In reply to j_pascoe@apple.com from comment #9)
&gt; &gt; &gt; (In reply to Chris Dumez from comment #5)
&gt; &gt; &gt; &gt; Comment on attachment 454138 [details]
&gt; &gt; &gt; &gt; Patch
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; View in context:
&gt; &gt; &gt; &gt; https://bugs.webkit.org/attachment.cgi?id=454138&amp;action=review
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; &gt;&gt; Source/WebCore/Modules/webauthn/PublicKeyCredentialCreationOptions.idl:75
&gt; &gt; &gt; &gt; &gt;&gt; +    ResidentKeyRequirement       residentKey;
&gt; &gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; &gt; Ditto &quot;residentKeyRequirement&quot; or &quot;keyRequirement&quot;
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Where is the specification for this? I see no such dictionary member in the
&gt; &gt; &gt; &gt; spec: https://w3c.github.io/webauthn/#dictionary-makecredentialoptions
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Is this an Apple-only extension?
&gt; &gt; &gt; 
&gt; &gt; &gt; (In reply to Brent Fulgham from comment #4)
&gt; &gt; &gt; &gt; &gt; Source/WebCore/Modules/webauthn/PublicKeyCredentialCreationOptions.h:69
&gt; &gt; &gt; &gt; &gt; +        std::optional&lt;ResidentKeyRequirement&gt; residentKey;
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Suggeste calling this &quot;residentKeyRequirement&quot;, or just &quot;keyRequirement&quot;
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; &gt; Source/WebCore/Modules/webauthn/PublicKeyCredentialCreationOptions.idl:75
&gt; &gt; &gt; &gt; &gt; +    ResidentKeyRequirement       residentKey;
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Ditto &quot;residentKeyRequirement&quot; or &quot;keyRequirement&quot;
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; &gt; Source/WebKit/UIProcess/API/Cocoa/_WKAuthenticatorSelectionCriteria.h:45
&gt; &gt; &gt; &gt; &gt; +@property (nonatomic) _WKResidentKeyRequirement residentKey;
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Should this be named &quot;residentKeyRequirement&quot;? You aren&apos;t returning the key
&gt; &gt; &gt; &gt; -- you are returning the key requirement.
&gt; &gt; &gt; 
&gt; &gt; &gt; This name is in the level 2 of the Web Authentication spec here:
&gt; &gt; &gt; https://www.w3.org/TR/webauthn-2/#dictdef-authenticatorselectioncriteria
&gt; &gt; &gt; 
&gt; &gt; &gt; Thank you both for the comments, I will address them.
&gt; &gt; 
&gt; &gt; This link is NOT for the same dictionary I commented on though. I commented
&gt; &gt; on PublicKeyCredentialCreationOptions. The link for level 2 would be:
&gt; &gt; - https://www.w3.org/TR/webauthn-2/#dictionary-makecredentialoptions
&gt; &gt; 
&gt; &gt; However, I don&apos;t see that member in there.
&gt; 
&gt; The IDL for AuthenticatorSelectionCriteria (from this link
&gt; https://www.w3.org/TR/webauthn-2/#dictdef-authenticatorselectioncriteria) is
&gt; in PublicKeyCredentialCreationOptions.idl. AuthenticatorSelectionCriteria
&gt; authenticatorSelection is a field on PublicKeyCredentialCreationOptions (The
&gt; 7th member in
&gt; https://www.w3.org/TR/webauthn-2/#dictionary-makecredentialoptions). So the
&gt; member is in creationOptions.authenticatorSelection.residentKey.

But you added:
ResidentKeyRequirement residentKey;

directly to the PublicKeyCredentialCreationOptions dictionary. This does not match the spec and seems wrong.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1849898</commentid>
    <comment_count>13</comment_count>
      <attachid>454138</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-03-09 16:02:59 -0800</bug_when>
    <thetext>Comment on attachment 454138
Patch

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

&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; Source/WebCore/Modules/webauthn/PublicKeyCredentialCreationOptions.idl:75
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; +    ResidentKeyRequirement       residentKey;
&gt;&gt;&gt;&gt;&gt;&gt;&gt; 
&gt;&gt;&gt;&gt;&gt;&gt;&gt; Ditto &quot;residentKeyRequirement&quot; or &quot;keyRequirement&quot;
&gt;&gt;&gt;&gt;&gt;&gt; 
&gt;&gt;&gt;&gt;&gt;&gt; Where is the specification for this? I see no such dictionary member in the spec: https://w3c.github.io/webauthn/#dictionary-makecredentialoptions
&gt;&gt;&gt;&gt;&gt;&gt; 
&gt;&gt;&gt;&gt;&gt;&gt; Is this an Apple-only extension?
&gt;&gt;&gt;&gt;&gt; 
&gt;&gt;&gt;&gt;&gt; Part of the reason I&apos;m asking is that Brent seems to be picking the name and given that this is Web-exposed, I&apos;d expect this to be standardized?
&gt;&gt;&gt;&gt; 
&gt;&gt;&gt;&gt; (In reply to Brent Fulgham from comment #4)
&gt;&gt;&gt; 
&gt;&gt;&gt; This link is NOT for the same dictionary I commented on though. I commented on PublicKeyCredentialCreationOptions. The link for level 2 would be:
&gt;&gt;&gt; - https://www.w3.org/TR/webauthn-2/#dictionary-makecredentialoptions
&gt;&gt;&gt; 
&gt;&gt;&gt; However, I don&apos;t see that member in there.
&gt;&gt; 
&gt;&gt; The IDL for AuthenticatorSelectionCriteria (from this link https://www.w3.org/TR/webauthn-2/#dictdef-authenticatorselectioncriteria) is in PublicKeyCredentialCreationOptions.idl. AuthenticatorSelectionCriteria authenticatorSelection is a field on PublicKeyCredentialCreationOptions (The 7th member in https://www.w3.org/TR/webauthn-2/#dictionary-makecredentialoptions). So the member is in creationOptions.authenticatorSelection.residentKey.
&gt; 
&gt; But you added:
&gt; ResidentKeyRequirement residentKey;
&gt; 
&gt; directly to the PublicKeyCredentialCreationOptions dictionary. This does not match the spec and seems wrong.

Oh, my bad. I was confused by the file name. You did had it to the right dictionary. The IDL file just contains more than 1 dictionary.

Note that you cannot change the name on IDL side like Brent suggested (since we need to match the spec). We may be able to use Brent&apos;s suggested name on native side though (by using [ImplementedAs=xxx] in the IDL. However, we&apos;d have to decide if the lack of consistency between native and IDL is worth it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1849901</commentid>
    <comment_count>14</comment_count>
    <who name="pascoe@apple.com">pascoe</who>
    <bug_when>2022-03-09 16:21:11 -0800</bug_when>
    <thetext>(In reply to Chris Dumez from comment #7)
&gt; &gt; Source/WebCore/Modules/webauthn/fido/AuthenticatorSupportedOptions.cpp:71
&gt; &gt; +    return m_residentKeyAvailability;
&gt; 
&gt; One liner, should be inlined in the header.


I&apos;m doing this work around check-webkit-style. Whenever it&apos;s defined in the header I get the &quot;Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]&quot; error. 

There appears to be a few different common solutions to this problem that I found.

One is doing the suggested removing WEBCORE_EXPORT from the class and adding it to appropriate methods (which doesn&apos;t work because it complains about the same error when trying to export userVerificationAvailability(), for example.)

Another way is to ignore the style error (appears to be commonly done and would allow me to inline it in the header.)

Finally the way I chose here for now, moving the definition out-of-line. This keeps the style checker happy.

I&apos;m open to changing to ignoring the style error, or another way if there is one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1849902</commentid>
    <comment_count>15</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-03-09 16:23:20 -0800</bug_when>
    <thetext>(In reply to j_pascoe@apple.com from comment #14)
&gt; (In reply to Chris Dumez from comment #7)
&gt; &gt; &gt; Source/WebCore/Modules/webauthn/fido/AuthenticatorSupportedOptions.cpp:71
&gt; &gt; &gt; +    return m_residentKeyAvailability;
&gt; &gt; 
&gt; &gt; One liner, should be inlined in the header.
&gt; 
&gt; 
&gt; I&apos;m doing this work around check-webkit-style. Whenever it&apos;s defined in the
&gt; header I get the &quot;Inline functions should not be in classes annotated with
&gt; WEBCORE_EXPORT. Remove the macro from the class and apply it to each
&gt; appropriate method, or move the inline function definition out-of-line. 
&gt; [build/webcore_export] [4]&quot; error. 
&gt; 
&gt; There appears to be a few different common solutions to this problem that I
&gt; found.
&gt; 
&gt; One is doing the suggested removing WEBCORE_EXPORT from the class and adding
&gt; it to appropriate methods (which doesn&apos;t work because it complains about the
&gt; same error when trying to export userVerificationAvailability(), for
&gt; example.)
&gt; 
&gt; Another way is to ignore the style error (appears to be commonly done and
&gt; would allow me to inline it in the header.)
&gt; 
&gt; Finally the way I chose here for now, moving the definition out-of-line.
&gt; This keeps the style checker happy.
&gt; 
&gt; I&apos;m open to changing to ignoring the style error, or another way if there is
&gt; one.

I would just ignore the style error for now.

In a follow-up, we could consider marking individual non-inline functions as WEBCORE_EXPORT instead of the whole class.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1850189</commentid>
    <comment_count>16</comment_count>
      <attachid>454382</attachid>
    <who name="pascoe@apple.com">pascoe</who>
    <bug_when>2022-03-10 11:17:46 -0800</bug_when>
    <thetext>Created attachment 454382
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1850194</commentid>
    <comment_count>17</comment_count>
      <attachid>454382</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-03-10 11:37:30 -0800</bug_when>
    <thetext>Comment on attachment 454382
Patch

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

My comments seem to have been addressed and I couldn&apos;t find any obvious issue. Carrying over Brent&apos;s r+.

&gt; Source/WebKit/UIProcess/API/Cocoa/_WKAuthenticatorSelectionCriteria.h:45
&gt; +@property (nonatomic) _WKResidentKeyRequirement residentKey;

Seems this is missing the availability macro.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1850202</commentid>
    <comment_count>18</comment_count>
      <attachid>454388</attachid>
    <who name="pascoe@apple.com">pascoe</who>
    <bug_when>2022-03-10 11:49:03 -0800</bug_when>
    <thetext>Created attachment 454388
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1850544</commentid>
    <comment_count>19</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-03-11 09:50:31 -0800</bug_when>
    <thetext>Committed r291176 (248336@main): &lt;https://commits.webkit.org/248336@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 454388.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>454051</attachid>
            <date>2022-03-07 16:52:02 -0800</date>
            <delta_ts>2022-03-08 11:47:45 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237567-20220307165201.patch</filename>
            <type>text/plain</type>
            <size>63015</size>
            <attacher name="pascoe@apple.com">pascoe</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwODUzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWY2ZTc0NjA4ZGUyZDJm
MGU3MDNlYzk4MTI0Y2E2OTk0NGJlZjIzNi4uNDdjNTM3NjI3YjA3YTM1ODQ0NjJkOGIzOThjNTRm
ZmYxZjk5MWI5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDIyLTAzLTA3ICBKIFBh
c2NvZSAgPGpfcGFzY29lQGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViQXV0aG5dIFN1cHBvcnQg
YXV0aGVudGljYXRvclNlbGVjdGlvbi5yZXNpZGVudEtleSBSZXNpZGVudEtleVJlcXVpcmVtZW50
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzc1NjcK
KyAgICAgICAgcmRhcjovLzg5Nzg4Mzc4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgSW4gV2ViIEF1dGhlbnRpY2F0aW9uIGxldmVsIG9uZSwgcmVseWlu
ZyBwYXJ0aWVzIGNhbiBzcGVjaWZ5IGF1dGhlbnRpY2F0b3JTZWxlY3Rpb24ucmVzaWRlbnRLZXlS
ZXF1aXJlZCwKKyAgICAgICAgdG8gc2lnbmlmeSB0aGV5IHJlcXVpcmUgYSBjbGllbnQtc2lkZSBk
aXNjb3ZlcmFibGUgY3JlZGVudGlhbC4gSG93ZXZlciwgaWYgdGhlIGF1dGhlbnRpY2F0b3IgZG9l
cyBub3QKKyAgICAgICAgc3VwcG9ydCBjbGllbnQtc2lkZSBkaXNjb3ZlcmFibGUgY3JlZGVudGlh
bHMsIHRoZSBycCBoYXMgbm8gd2F5IHRvIGNsYXJpZnkgdGhleSB3YW50IGEgY2xpZW50LXNpZGUK
KyAgICAgICAgZGlzY292ZXJhYmxlIGNyZWRlbnRpYWwgb25seSBpZiBhdmFpbGFibGUuCisKKyAg
ICAgICAgVGhpcyBwYXRjaCBpbXBsZW1lbnRzIGF1dGhlbnRpY2F0b3JTZWxlY3Rpb24ucmVzaWRl
bnRLZXlSZXF1aXJlZCBpbnRyb2R1Y2VkIGluIGxldmVsIDIsIHdoaWNoIGhhcyB0aHJlZQorICAg
ICAgICB2YWx1ZXMgJ1ByZWZlcnJlZCcsICdSZXF1aXJlZCcsIGFuZCAnRGlzY291cmFnZWQnLiBU
aGlzIGFsbG93cyBSUHMgdG8gY3JlYXRlIGEgY2xpZW50LXNpZGUgZGlzY292ZXJhYmxlCisgICAg
ICAgIGNyZWRlbnRpYWwgaWYgcG9zc2libGUuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoK
KyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERl
cml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2Vz
Lm1ha2U6CisgICAgICAgICogTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50aWFsQ3Jl
YXRpb25PcHRpb25zLmg6CisgICAgICAgIChXZWJDb3JlOjpQdWJsaWNLZXlDcmVkZW50aWFsQ3Jl
YXRpb25PcHRpb25zOjpBdXRoZW50aWNhdG9yU2VsZWN0aW9uQ3JpdGVyaWE6OmVuY29kZSBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25z
OjpBdXRoZW50aWNhdG9yU2VsZWN0aW9uQ3JpdGVyaWE6OmRlY29kZSk6CisgICAgICAgICogTW9k
dWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zLmlkbDoKKyAg
ICAgICAgKiBNb2R1bGVzL3dlYmF1dGhuL1Jlc2lkZW50S2V5UmVxdWlyZW1lbnQuaDogQ29waWVk
IGZyb20gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0F1dGhlbnRpY2F0b3JT
ZWxlY3Rpb25Dcml0ZXJpYS5tbS4KKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1dGhuL1Jlc2lkZW50
S2V5UmVxdWlyZW1lbnQuaWRsOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvX1dLQXV0aGVudGljYXRvclNlbGVjdGlvbkNyaXRlcmlhLm1tLgorICAgICAgICAq
IE1vZHVsZXMvd2ViYXV0aG4vZmlkby9BdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9ucy5jcHA6
CisgICAgICAgIChmaWRvOjpBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9uczo6c2V0UmVzaWRl
bnRLZXlBdmFpbGFiaWxpdHkpOgorICAgICAgICAoZmlkbzo6Y29udmVydFRvQ0JPUik6CisgICAg
ICAgIChmaWRvOjpBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9uczo6c2V0U3VwcG9ydHNSZXNp
ZGVudEtleSk6IERlbGV0ZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJhdXRobi9maWRvL0F1dGhl
bnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zLmg6CisgICAgICAgICogTW9kdWxlcy93ZWJhdXRobi9m
aWRvL0RldmljZVJlcXVlc3RDb252ZXJ0ZXIuY3BwOgorICAgICAgICAoZmlkbzo6ZW5jb2RlTWFr
ZUNyZWRlbml0YWxSZXF1ZXN0QXNDQk9SKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1dGhuL2Zp
ZG8vRGV2aWNlUmVxdWVzdENvbnZlcnRlci5oOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXV0aG4v
Zmlkby9EZXZpY2VSZXNwb25zZUNvbnZlcnRlci5jcHA6CisgICAgICAgIChmaWRvOjpyZWFkQ1RB
UEdldEluZm9SZXNwb25zZSk6CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorCiAyMDIyLTAzLTA0ICBLYXRlIENoZW5l
eSAgPGthdGhlcmluZV9jaGVuZXlAYXBwbGUuY29tPgogCiAgICAgICAgIGFib3V0OmJsYW5rIGlm
cmFtZXMgZG8gbm90IGFsd2F5cyBpbmhlcml0IHBhcmVudCBDU1AKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggZWFjZWY4
MDk3MjhmMzhmNDJmNzBkMTkyNGNkNmRkYTEwMjdjODlhNC4uMzUyN2E3YTFlZmQyNjRkNDEwOGUw
ZmM3OWM3Y2NlNGYyMDdiZjgyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMyBAQAorMjAyMi0wMy0w
NyAgSiBQYXNjb2UgIDxqX3Bhc2NvZUBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkF1dGhuXSBT
dXBwb3J0IGF1dGhlbnRpY2F0b3JTZWxlY3Rpb24ucmVzaWRlbnRLZXkgUmVzaWRlbnRLZXlSZXF1
aXJlbWVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjM3NTY3CisgICAgICAgIHJkYXI6Ly84OTc4ODM3OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEluIFdlYiBBdXRoZW50aWNhdGlvbiBsZXZlbCBvbmUs
IHJlbHlpbmcgcGFydGllcyBjYW4gc3BlY2lmeSBhdXRoZW50aWNhdG9yU2VsZWN0aW9uLnJlc2lk
ZW50S2V5UmVxdWlyZWQsCisgICAgICAgIHRvIHNpZ25pZnkgdGhleSByZXF1aXJlIGEgY2xpZW50
LXNpZGUgZGlzY292ZXJhYmxlIGNyZWRlbnRpYWwuIEhvd2V2ZXIsIGlmIHRoZSBhdXRoZW50aWNh
dG9yIGRvZXMgbm90CisgICAgICAgIHN1cHBvcnQgY2xpZW50LXNpZGUgZGlzY292ZXJhYmxlIGNy
ZWRlbnRpYWxzLCB0aGUgcnAgaGFzIG5vIHdheSB0byBjbGFyaWZ5IHRoZXkgd2FudCBhIGNsaWVu
dC1zaWRlIAorICAgICAgICBkaXNjb3ZlcmFibGUgY3JlZGVudGlhbCBvbmx5IGlmIGF2YWlsYWJs
ZS4gCisKKyAgICAgICAgVGhpcyBwYXRjaCBpbXBsZW1lbnRzIGF1dGhlbnRpY2F0b3JTZWxlY3Rp
b24ucmVzaWRlbnRLZXlSZXF1aXJlZCBpbnRyb2R1Y2VkIGluIGxldmVsIDIsIHdoaWNoIGhhcyB0
aHJlZQorICAgICAgICB2YWx1ZXMgJ1ByZWZlcnJlZCcsICdSZXF1aXJlZCcsIGFuZCAnRGlzY291
cmFnZWQnLiBUaGlzIGFsbG93cyBSUHMgdG8gY3JlYXRlIGEgY2xpZW50LXNpZGUgZGlzY292ZXJh
YmxlCisgICAgICAgIGNyZWRlbnRpYWwgaWYgcG9zc2libGUuCisKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL0NvY29hL19XS0F1dGhlbnRpY2F0b3JTZWxlY3Rpb25Dcml0ZXJpYS5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQXV0aGVudGljYXRvclNlbGVjdGlvbkNyaXRlcmlh
Lm1tOgorICAgICAgICAoLVtfV0tBdXRoZW50aWNhdG9yU2VsZWN0aW9uQ3JpdGVyaWEgaW5pdF0p
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUmVzaWRlbnRLZXlSZXF1aXJlbWVu
dC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQXV0
aGVudGljYXRvclNlbGVjdGlvbkNyaXRlcmlhLm1tLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Q29jb2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5tbToKKyAgICAgICAgKHJlc2lkZW50S2V5
KToKKyAgICAgICAgKGF1dGhlbnRpY2F0b3JTZWxlY3Rpb25Dcml0ZXJpYSk6CisgICAgICAgICgr
W19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwgZW5jb2RlTWFrZUNyZWRlbnRpYWxDb21tYW5kV2l0
aENsaWVudERhdGFKU09OOm9wdGlvbnM6dXNlclZlcmlmaWNhdGlvbkF2YWlsYWJpbGl0eTpdKToK
KyAgICAgICAgKCtbX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbCBlbmNvZGVNYWtlQ3JlZGVudGlh
bENvbW1hbmRXaXRoQ2xpZW50RGF0YUhhc2g6b3B0aW9uczp1c2VyVmVyaWZpY2F0aW9uQXZhaWxh
YmlsaXR5Ol0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9maWRvL0N0
YXBBdXRoZW50aWNhdG9yLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Q3RhcEF1dGhlbnRpY2F0b3I6
Om1ha2VDcmVkZW50aWFsKToKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvajoKKwogMjAyMi0wMy0wNCAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUu
Y29tPgogCiAgICAgICAgIFtpT1NdIEJvb2tzIEFTU0VSVHMgdXBvbiBvcGVuaW5nIGEgYm9vayB3
aXRoIGEgZGVidWcgYnVpbGQgb2YgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
TWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDJiYjgy
OWNkNTliOGMwNzVlMDM2NjU1YzIzN2I4NTAxNDgxYzRiMmUuLjNkNDlhOTE2NjU5YTc4ZGIzNDBk
MGM5NWVjNDVkZWEwYTIzNjE4ZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlz
dHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC02NjUsNiArNjY1
LDcgQEAgc2V0KFdlYkNvcmVfTk9OX1NWR19JRExfRklMRVMKICAgICBNb2R1bGVzL3dlYmF1dGhu
L1B1YmxpY0tleUNyZWRlbnRpYWxEZXNjcmlwdG9yLmlkbAogICAgIE1vZHVsZXMvd2ViYXV0aG4v
UHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zLmlkbAogICAgIE1vZHVsZXMvd2ViYXV0
aG4vUHVibGljS2V5Q3JlZGVudGlhbFR5cGUuaWRsCisgICAgTW9kdWxlcy93ZWJhdXRobi9SZXNp
ZGVudEtleVJlcXVpcmVtZW50LmlkbAogICAgIE1vZHVsZXMvd2ViYXV0aG4vVXNlclZlcmlmaWNh
dGlvblJlcXVpcmVtZW50LmlkbAogCiAgICAgTW9kdWxlcy93ZWJjb2RlY3MvVmlkZW9Db2xvclBy
aW1hcmllcy5pZGwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlu
cHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2Zp
bGVsaXN0CmluZGV4IDZiZTdmNGYwODMxOGFlYThhNWFlMjEzM2IxZTJmYjEzZjRjMTNiYzMuLjA4
NWRhNzM5ZTNhOGU5MjJjNjNmNTc3NzE2YmMyOTA1MGQzYmNmY2QgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dl
YkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdApAQCAtNzQ3LDYgKzc0Nyw3IEBA
ICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbENyZWF0
aW9uT3B0aW9ucy5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5
Q3JlZGVudGlhbERlc2NyaXB0b3IuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3dlYmF1dGhu
L1B1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucy5pZGwKICQoUFJPSkVDVF9ESVIpL01v
ZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbFR5cGUuaWRsCiskKFBST0pFQ1RfRElS
KS9Nb2R1bGVzL3dlYmF1dGhuL1Jlc2lkZW50S2V5UmVxdWlyZW1lbnQuaWRsCiAkKFBST0pFQ1Rf
RElSKS9Nb2R1bGVzL3dlYmF1dGhuL1VzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudC5pZGwKICQo
UFJPSkVDVF9ESVIpL01vZHVsZXMvd2ViY29kZWNzL1ZpZGVvQ29sb3JQcmltYXJpZXMuaWRsCiAk
KFBST0pFQ1RfRElSKS9Nb2R1bGVzL3dlYmNvZGVjcy9WaWRlb0NvbG9yU3BhY2UuaWRsCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdCBi
L1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CmluZGV4IDZj
MjA1ZTcxZGE0Zjk3MTk1YzM3YWJkYTJlOWJkNWFjMWMzMmRjMDEuLjRmYjc3YjNkZGJhZWRhOGVh
M2FkYmNkNGE3MDk3YTU2YTc4MDgxZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2
ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRT
b3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CkBAIC0yMTEyLDYgKzIxMTIsOCBAQCAkKEJVSUxUX1BS
T0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1JlcXVlc3RBbmltYXRpb25GcmFt
ZUNhbGxiYWNrLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvSlNSZXF1ZXN0QW5pbWF0aW9uRnJhbWVDYWxsYmFjay5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1JlcXVlc3RDb29raWVDb25zZW50T3B0aW9ucy5j
cHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTUmVxdWVz
dENvb2tpZUNvbnNlbnRPcHRpb25zLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291
cmNlcy9XZWJDb3JlL0pTUmVzaWRlbnRLZXlSZXF1aXJlbWVudC5jcHAKKyQoQlVJTFRfUFJPRFVD
VFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTUmVzaWRlbnRLZXlSZXF1aXJlbWVudC5o
CiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1Jlc2l6ZU9i
c2VydmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUv
SlNSZXNpemVPYnNlcnZlci5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMv
V2ViQ29yZS9KU1Jlc2l6ZU9ic2VydmVyQm94T3B0aW9ucy5jcHAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291
cmNlcy5tYWtlCmluZGV4IDI2ODAzMjcwZDY3YTc3NDU1OWVjZjIzZDc1YjZiYjA1YjA2OTM4ODUu
LmUxYmJjMTJjMzFmMDk5NDM4NzBiYWM3NTZlNGIzMWFhZmU1MDc3ZmYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvRGVy
aXZlZFNvdXJjZXMubWFrZQpAQCAtNjQzLDYgKzY0Myw3IEBAIEpTX0JJTkRJTkdfSURMUyA6PSBc
CiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRlbnRpYWxEZXNj
cmlwdG9yLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNy
ZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucy5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJh
dXRobi9QdWJsaWNLZXlDcmVkZW50aWFsVHlwZS5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxl
cy93ZWJhdXRobi9SZXNpZGVudEtleVJlcXVpcmVtZW50LmlkbCBcCiAgICAgJChXZWJDb3JlKS9N
b2R1bGVzL3dlYmF1dGhuL1VzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudC5pZGwgXAogCSQoV2Vi
Q29yZSkvTW9kdWxlcy93ZWJjb2RlY3MvVmlkZW9Db2xvclByaW1hcmllcy5pZGwgXAogCSQoV2Vi
Q29yZSkvTW9kdWxlcy93ZWJjb2RlY3MvVmlkZW9Db2xvclNwYWNlLmlkbCBcCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRlbnRpYWxDcmVh
dGlvbk9wdGlvbnMuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5
Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucy5oCmluZGV4IDhkZmE3ZDc3NDk3ODg3ZjA1MDZhNzcy
ODdiMTRhNGY5NDZkNzkwODMuLmNjMTBhY2UxMTY4NTE4YTM0OTIwN2M4ZTU3MWQ3OWNmNzBlMWJm
YTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5
Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucy5oCkBAIC0zMSw2ICsz
MSw3IEBACiAjaW5jbHVkZSAiQnVmZmVyU291cmNlLmgiCiAjaW5jbHVkZSAiUHVibGljS2V5Q3Jl
ZGVudGlhbERlc2NyaXB0b3IuaCIKICNpbmNsdWRlICJQdWJsaWNLZXlDcmVkZW50aWFsVHlwZS5o
IgorI2luY2x1ZGUgIlJlc2lkZW50S2V5UmVxdWlyZW1lbnQuaCIKICNpbmNsdWRlICJVc2VyVmVy
aWZpY2F0aW9uUmVxdWlyZW1lbnQuaCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2VuZGlm
IC8vIEVOQUJMRShXRUJfQVVUSE4pCkBAIC02NSw2ICs2Niw3IEBAIHN0cnVjdCBQdWJsaWNLZXlD
cmVkZW50aWFsQ3JlYXRpb25PcHRpb25zIHsKIAogICAgIHN0cnVjdCBBdXRoZW50aWNhdG9yU2Vs
ZWN0aW9uQ3JpdGVyaWEgewogICAgICAgICBzdGQ6Om9wdGlvbmFsPEF1dGhlbnRpY2F0b3JBdHRh
Y2htZW50PiBhdXRoZW50aWNhdG9yQXR0YWNobWVudDsKKyAgICAgICAgc3RkOjpvcHRpb25hbDxS
ZXNpZGVudEtleVJlcXVpcmVtZW50PiByZXNpZGVudEtleTsKICAgICAgICAgYm9vbCByZXF1aXJl
UmVzaWRlbnRLZXkgeyBmYWxzZSB9OwogICAgICAgICBVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1l
bnQgdXNlclZlcmlmaWNhdGlvbiB7IFVzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudDo6UHJlZmVy
cmVkIH07CiAKQEAgLTExMCw3ICsxMTIsNyBAQCBzdGQ6Om9wdGlvbmFsPFB1YmxpY0tleUNyZWRl
bnRpYWxDcmVhdGlvbk9wdGlvbnM6OlBhcmFtZXRlcnM+IFB1YmxpY0tleUNyZWRlbnRpYQogdGVt
cGxhdGU8Y2xhc3MgRW5jb2Rlcj4KIHZvaWQgUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0
aW9uczo6QXV0aGVudGljYXRvclNlbGVjdGlvbkNyaXRlcmlhOjplbmNvZGUoRW5jb2RlciYgZW5j
b2RlcikgY29uc3QKIHsKLSAgICBlbmNvZGVyIDw8IGF1dGhlbnRpY2F0b3JBdHRhY2htZW50IDw8
IHJlcXVpcmVSZXNpZGVudEtleSA8PCB1c2VyVmVyaWZpY2F0aW9uOworICAgIGVuY29kZXIgPDwg
YXV0aGVudGljYXRvckF0dGFjaG1lbnQgPDwgcmVxdWlyZVJlc2lkZW50S2V5IDw8IHVzZXJWZXJp
ZmljYXRpb24gPDwgcmVzaWRlbnRLZXk7CiB9CiAKIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+CkBA
IC0xMzIsNiArMTM0LDEyIEBAIHN0ZDo6b3B0aW9uYWw8UHVibGljS2V5Q3JlZGVudGlhbENyZWF0
aW9uT3B0aW9uczo6QXV0aGVudGljYXRvclNlbGVjdGlvbkNyaXRlcmlhCiAKICAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlKHJlc3VsdC51c2VyVmVyaWZpY2F0aW9uKSkKICAgICAgICAgcmV0dXJuIHN0
ZDo6bnVsbG9wdDsKKyAgICAKKyAgICBzdGQ6Om9wdGlvbmFsPHN0ZDo6b3B0aW9uYWw8UmVzaWRl
bnRLZXlSZXF1aXJlbWVudD4+IHJlc2lkZW50S2V5OworICAgIGRlY29kZXIgPj4gcmVzaWRlbnRL
ZXk7CisgICAgaWYgKCFyZXNpZGVudEtleSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsK
KwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucy5pZGwgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlv
bk9wdGlvbnMuaWRsCmluZGV4IGNlNjY1ZjQxMzM4ODgyOTQ3OWVmZTYxZDQ1ZDU5NDI2NTU3MzU5
NTYuLmU3NWZjZTE5OWZkYWEzYjFiMjgwZmI4OTJiNzIwNjE3NTA2ZjI1M2UgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbENyZWF0
aW9uT3B0aW9ucy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9QdWJs
aWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zLmlkbApAQCAtNzIsNiArNzIsNyBAQCB0eXBl
ZGVmIGxvbmcgQ09TRUFsZ29yaXRobUlkZW50aWZpZXI7CiAgICAgQ29uZGl0aW9uYWw9V0VCX0FV
VEhOLAogXSBkaWN0aW9uYXJ5IEF1dGhlbnRpY2F0b3JTZWxlY3Rpb25Dcml0ZXJpYSB7CiAgICAg
QXV0aGVudGljYXRvckF0dGFjaG1lbnQgICAgICBhdXRoZW50aWNhdG9yQXR0YWNobWVudDsKKyAg
ICBSZXNpZGVudEtleVJlcXVpcmVtZW50ICAgICAgIHJlc2lkZW50S2V5OwogICAgIGJvb2xlYW4g
ICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZVJlc2lkZW50S2V5ID0gZmFsc2U7CiAgICAgVXNl
clZlcmlmaWNhdGlvblJlcXVpcmVtZW50ICB1c2VyVmVyaWZpY2F0aW9uID0gInByZWZlcnJlZCI7
CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9SZXNpZGVu
dEtleVJlcXVpcmVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL1Jlc2lk
ZW50S2V5UmVxdWlyZW1lbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wYjRjMjI3OWU4OGI4OGRiYzkwNWNlNDc4
NzkxYWJkZTg4ZDU4ODIwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdXRobi9SZXNpZGVudEtleVJlcXVpcmVtZW50LmgKQEAgLTAsMCArMSw1NSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFdFQl9BVVRITikKKworI2luY2x1
ZGUgPHd0Zi9FbnVtVHJhaXRzLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworZW51bSBjbGFz
cyBSZXNpZGVudEtleVJlcXVpcmVtZW50IHsKKyAgICBSZXF1aXJlZCwKKyAgICBQcmVmZXJyZWQs
CisgICAgRGlzY291cmFnZWQKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworbmFtZXNw
YWNlIFdURiB7CisKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6UmVzaWRl
bnRLZXlSZXF1aXJlbWVudD4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAg
ICAgIFdlYkNvcmU6OlJlc2lkZW50S2V5UmVxdWlyZW1lbnQsCisgICAgICAgIFdlYkNvcmU6OlJl
c2lkZW50S2V5UmVxdWlyZW1lbnQ6OlJlcXVpcmVkLAorICAgICAgICBXZWJDb3JlOjpSZXNpZGVu
dEtleVJlcXVpcmVtZW50OjpQcmVmZXJyZWQsCisgICAgICAgIFdlYkNvcmU6OlJlc2lkZW50S2V5
UmVxdWlyZW1lbnQ6OkRpc2NvdXJhZ2VkCisgICAgPjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdU
RgorCisjZW5kaWYgLy8gRU5BQkxFKFdFQl9BVVRITikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXV0aG4vUmVzaWRlbnRLZXlSZXF1aXJlbWVudC5pZGwgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL1Jlc2lkZW50S2V5UmVxdWlyZW1lbnQuaWRsCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjAzYTViYjYwZGU4MDdiMWYzZTRiODBmYTYyMzJjYTIwY2JkOThlNjgKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL1Jlc2lkZW50S2V5UmVx
dWlyZW1lbnQuaWRsCkBAIC0wLDAgKzEsMzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjIg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAgQ29uZGl0
aW9uYWw9V0VCX0FVVEhOLAorICAgIEltcGxlbWVudGVkQXM9UmVzaWRlbnRLZXlSZXF1aXJlbWVu
dAorXSBlbnVtIFJlc2lkZW50S2V5UmVxdWlyZW1lbnQgeworICAgICJyZXF1aXJlZCIsCisgICAg
InByZWZlcnJlZCIsCisgICAgImRpc2NvdXJhZ2VkIgorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vZmlkby9BdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9u
cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8vQXV0aGVudGljYXRv
clN1cHBvcnRlZE9wdGlvbnMuY3BwCmluZGV4IGJkY2Y4YTRjZDU0YWY3N2Y4ZjMzMzgxMzhlOTQx
YmRiYWY2MGRjNGEuLmY5MTVlYTVkNDc4MDBhNWM5ZmU5NDZjNDllNzlhOWExN2UyZDcwMGEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vZmlkby9BdXRoZW50aWNh
dG9yU3VwcG9ydGVkT3B0aW9ucy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dXRobi9maWRvL0F1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zLmNwcApAQCAtMzYsOSArMzYs
OSBAQAogCiBuYW1lc3BhY2UgZmlkbyB7CiAKLUF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25z
JiBBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9uczo6c2V0U3VwcG9ydHNSZXNpZGVudEtleShi
b29sIHN1cHBvcnRzUmVzaWRlbnRLZXkpCitBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9ucyYg
QXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnM6OnNldFJlc2lkZW50S2V5QXZhaWxhYmlsaXR5
KFJlc2lkZW50S2V5QXZhaWxhYmlsaXR5IHJlc2lkZW50S2V5QXZhaWxhYmlsaXR5KQogewotICAg
IG1fc3VwcG9ydHNSZXNpZGVudEtleSA9IHN1cHBvcnRzUmVzaWRlbnRLZXk7CisgICAgbV9yZXNp
ZGVudEtleUF2YWlsYWJpbGl0eSA9IHJlc2lkZW50S2V5QXZhaWxhYmlsaXR5OwogICAgIHJldHVy
biAqdGhpczsKIH0KIApAQCAtNzEsNyArNzEsNyBAQCBjYm9yOjpDQk9SVmFsdWUgY29udmVydFRv
Q0JPUihjb25zdCBBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9ucyYgb3B0aW9ucykKICAgICB1
c2luZyBuYW1lc3BhY2UgY2JvcjsKIAogICAgIENCT1JWYWx1ZTo6TWFwVmFsdWUgb3B0aW9uTWFw
OwotICAgIG9wdGlvbk1hcC5lbXBsYWNlKENCT1JWYWx1ZShrUmVzaWRlbnRLZXlNYXBLZXkpLCBD
Qk9SVmFsdWUob3B0aW9ucy5zdXBwb3J0c1Jlc2lkZW50S2V5KCkpKTsKKyAgICBvcHRpb25NYXAu
ZW1wbGFjZShDQk9SVmFsdWUoa1Jlc2lkZW50S2V5TWFwS2V5KSwgQ0JPUlZhbHVlKG9wdGlvbnMu
cmVzaWRlbnRLZXlBdmFpbGFiaWxpdHkoKSA9PSBBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9u
czo6UmVzaWRlbnRLZXlBdmFpbGFiaWxpdHk6OmtTdXBwb3J0ZWQpKTsKICAgICBvcHRpb25NYXAu
ZW1wbGFjZShDQk9SVmFsdWUoa1VzZXJQcmVzZW5jZU1hcEtleSksIENCT1JWYWx1ZShvcHRpb25z
LnVzZXJQcmVzZW5jZVJlcXVpcmVkKCkpKTsKICAgICBvcHRpb25NYXAuZW1wbGFjZShDQk9SVmFs
dWUoa1BsYXRmb3JtRGV2aWNlTWFwS2V5KSwgQ0JPUlZhbHVlKG9wdGlvbnMuaXNQbGF0Zm9ybURl
dmljZSgpKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4v
Zmlkby9BdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9ucy5oIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdXRobi9maWRvL0F1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zLmgKaW5kZXgg
ZWM0MGFlNGJlNDI2MTRjNzE0ZTU3ZmFmNmE0NDY1YzdmMmZmOTkxNi4uN2ZmZTllNzQ3YzFiYzMz
NTI0MWI0NDNiMWI2NWE4ODYxZTkzNDE5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdXRobi9maWRvL0F1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9maWRvL0F1dGhlbnRpY2F0b3JTdXBwb3J0
ZWRPcHRpb25zLmgKQEAgLTM4LDcgKzM4LDcgQEAgbmFtZXNwYWNlIGZpZG8gewogCiAvLyBSZXBy
ZXNlbnRzIENUQVAgZGV2aWNlIHByb3BlcnRpZXMgYW5kIGNhcGFiaWxpdGllcyByZWNlaXZlZCBh
cyBhIHJlc3BvbnNlIHRvCiAvLyBBdXRoZW50aWNhdG9yR2V0SW5mbyBjb21tYW5kLgotY2xhc3Mg
V0VCQ09SRV9FWFBPUlQgQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnMgeworY2xhc3MgQXV0
aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnMgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEF1
dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zKTsKIHB1YmxpYzoKICAgICBlbnVtIGNsYXNzIFVz
ZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHkgewpAQCAtNTAsNiArNTAsMTEgQEAgcHVibGljOgog
ICAgICAgICBrU3VwcG9ydGVkQnV0Tm90Q29uZmlndXJlZCwKICAgICAgICAga05vdFN1cHBvcnRl
ZAogICAgIH07CisgICAgCisgICAgZW51bSBjbGFzcyBSZXNpZGVudEtleUF2YWlsYWJpbGl0eSB7
CisgICAgICAgIGtTdXBwb3J0ZWQsCisgICAgICAgIGtOb3RTdXBwb3J0ZWQKKyAgICB9OwogCiAg
ICAgZW51bSBjbGFzcyBDbGllbnRQaW5BdmFpbGFiaWxpdHkgewogICAgICAgICBrU3VwcG9ydGVk
QW5kUGluU2V0LApAQCAtNjIsMTMgKzY3LDEzIEBAIHB1YmxpYzoKICAgICBBdXRoZW50aWNhdG9y
U3VwcG9ydGVkT3B0aW9ucyYgb3BlcmF0b3I9KEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25z
JiYpID0gZGVmYXVsdDsKIAogICAgIEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zJiBzZXRJ
c1BsYXRmb3JtRGV2aWNlKGJvb2wpOwotICAgIEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25z
JiBzZXRTdXBwb3J0c1Jlc2lkZW50S2V5KGJvb2wpOworICAgIEF1dGhlbnRpY2F0b3JTdXBwb3J0
ZWRPcHRpb25zJiBzZXRSZXNpZGVudEtleUF2YWlsYWJpbGl0eShSZXNpZGVudEtleUF2YWlsYWJp
bGl0eSk7CiAgICAgQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnMmIHNldFVzZXJWZXJpZmlj
YXRpb25BdmFpbGFiaWxpdHkoVXNlclZlcmlmaWNhdGlvbkF2YWlsYWJpbGl0eSk7CiAgICAgQXV0
aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnMmIHNldFVzZXJQcmVzZW5jZVJlcXVpcmVkKGJvb2wp
OwogICAgIEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zJiBzZXRDbGllbnRQaW5BdmFpbGFi
aWxpdHkoQ2xpZW50UGluQXZhaWxhYmlsaXR5KTsKIAogICAgIGJvb2wgaXNQbGF0Zm9ybURldmlj
ZSgpIGNvbnN0IHsgcmV0dXJuIG1faXNQbGF0Zm9ybURldmljZTsgfQotICAgIGJvb2wgc3VwcG9y
dHNSZXNpZGVudEtleSgpIGNvbnN0IHsgcmV0dXJuIG1fc3VwcG9ydHNSZXNpZGVudEtleTsgfQor
ICAgIFJlc2lkZW50S2V5QXZhaWxhYmlsaXR5IHJlc2lkZW50S2V5QXZhaWxhYmlsaXR5KCkgY29u
c3QgeyByZXR1cm4gbV9yZXNpZGVudEtleUF2YWlsYWJpbGl0eTsgfQogICAgIFVzZXJWZXJpZmlj
YXRpb25BdmFpbGFiaWxpdHkgdXNlclZlcmlmaWNhdGlvbkF2YWlsYWJpbGl0eSgpIGNvbnN0IHsg
cmV0dXJuIG1fdXNlclZlcmlmaWNhdGlvbkF2YWlsYWJpbGl0eTsgfQogICAgIGJvb2wgdXNlclBy
ZXNlbmNlUmVxdWlyZWQoKSBjb25zdCB7IHJldHVybiBtX3VzZXJQcmVzZW5jZVJlcXVpcmVkOyB9
CiAgICAgQ2xpZW50UGluQXZhaWxhYmlsaXR5IGNsaWVudFBpbkF2YWlsYWJpbGl0eSgpIGNvbnN0
IHsgcmV0dXJuIG1fY2xpZW50UGluQXZhaWxhYmlsaXR5OyB9CkBAIC04MCw3ICs4NSw3IEBAIHBy
aXZhdGU6CiAgICAgLy8gSW5kaWNhdGVzIHRoYXQgdGhlIGRldmljZSBpcyBjYXBhYmxlIG9mIHN0
b3Jpbmcga2V5cyBvbiB0aGUgZGV2aWNlIGl0c2VsZgogICAgIC8vIGFuZCB0aGVyZWZvcmUgY2Fu
IHNhdGlzZnkgdGhlIGF1dGhlbnRpY2F0b3JHZXRBc3NlcnRpb24gcmVxdWVzdCB3aXRoCiAgICAg
Ly8gYWxsb3dMaXN0IHBhcmFtZXRlciBub3Qgc3BlY2lmaWVkIG9yIGVtcHR5LgotICAgIGJvb2wg
bV9zdXBwb3J0c1Jlc2lkZW50S2V5IHsgZmFsc2UgfTsKKyAgICBSZXNpZGVudEtleUF2YWlsYWJp
bGl0eSBtX3Jlc2lkZW50S2V5QXZhaWxhYmlsaXR5IHsgUmVzaWRlbnRLZXlBdmFpbGFiaWxpdHk6
OmtOb3RTdXBwb3J0ZWQgfTsKICAgICAvLyBJbmRpY2F0ZXMgd2hldGhlciB0aGUgZGV2aWNlIGlz
IGNhcGFibGUgb2YgdmVyaWZ5aW5nIHRoZSB1c2VyIG9uIGl0cyBvd24uCiAgICAgVXNlclZlcmlm
aWNhdGlvbkF2YWlsYWJpbGl0eSBtX3VzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHkgeyBVc2Vy
VmVyaWZpY2F0aW9uQXZhaWxhYmlsaXR5OjprTm90U3VwcG9ydGVkIH07CiAgICAgYm9vbCBtX3Vz
ZXJQcmVzZW5jZVJlcXVpcmVkIHsgdHJ1ZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdXRobi9maWRvL0RldmljZVJlcXVlc3RDb252ZXJ0ZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9maWRvL0RldmljZVJlcXVlc3RDb252ZXJ0ZXIuY3Bw
CmluZGV4IDMyOWYyYTFkYTFiN2Y5MDM0NjMxMjg3OGI2MzA2MmM2ZTQyMjhkNDkuLjA5NGU0NDJj
N2YxNzU4NGY1MTdkZjUwNzQwYTA3YWMzNzZhNDU4OWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXV0aG4vZmlkby9EZXZpY2VSZXF1ZXN0Q29udmVydGVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8vRGV2aWNlUmVxdWVzdENvbnZl
cnRlci5jcHAKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlICJDQk9SV3JpdGVyLmgiCiAjaW5j
bHVkZSAiUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucy5oIgogI2luY2x1ZGUgIlB1
YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucy5oIgorI2luY2x1ZGUgIlJlc2lkZW50S2V5
UmVxdWlyZW1lbnQuaCIKICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBmaWRv
IHsKQEAgLTg1LDcgKzg2LDcgQEAgc3RhdGljIENCT1JWYWx1ZSBjb252ZXJ0RGVzY3JpcHRvclRv
Q0JPUihjb25zdCBQdWJsaWNLZXlDcmVkZW50aWFsRGVzY3JpcHRvciYgZGUKICAgICByZXR1cm4g
Q0JPUlZhbHVlKFdURk1vdmUoY2JvckRlc2NyaXB0b3JNYXApKTsKIH0KIAotVmVjdG9yPHVpbnQ4
X3Q+IGVuY29kZU1ha2VDcmVkZW5pdGFsUmVxdWVzdEFzQ0JPUihjb25zdCBWZWN0b3I8dWludDhf
dD4mIGhhc2gsIGNvbnN0IFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMmIG9wdGlv
bnMsIFVWQXZhaWxhYmlsaXR5IHV2Q2FwYWJpbGl0eSwgc3RkOjpvcHRpb25hbDxQaW5QYXJhbWV0
ZXJzPiBwaW4pCitWZWN0b3I8dWludDhfdD4gZW5jb2RlTWFrZUNyZWRlbml0YWxSZXF1ZXN0QXND
Qk9SKGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgaGFzaCwgY29uc3QgUHVibGljS2V5Q3JlZGVudGlh
bENyZWF0aW9uT3B0aW9ucyYgb3B0aW9ucywgVVZBdmFpbGFiaWxpdHkgdXZDYXBhYmlsaXR5LCBB
dXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9uczo6UmVzaWRlbnRLZXlBdmFpbGFiaWxpdHkgcmVz
aWRlbnRLZXlBdmFpbGFiaWxpdHksIHN0ZDo6b3B0aW9uYWw8UGluUGFyYW1ldGVycz4gcGluKQog
ewogICAgIENCT1JWYWx1ZTo6TWFwVmFsdWUgY2Jvck1hcDsKICAgICBjYm9yTWFwW0NCT1JWYWx1
ZSgxKV0gPSBDQk9SVmFsdWUoaGFzaCk7CkBAIC0xMDIsNyArMTAzLDExIEBAIFZlY3Rvcjx1aW50
OF90PiBlbmNvZGVNYWtlQ3JlZGVuaXRhbFJlcXVlc3RBc0NCT1IoY29uc3QgVmVjdG9yPHVpbnQ4
X3Q+JiBoYXNoLCBjCiAgICAgQ0JPUlZhbHVlOjpNYXBWYWx1ZSBvcHRpb25NYXA7CiAgICAgaWYg
KG9wdGlvbnMuYXV0aGVudGljYXRvclNlbGVjdGlvbikgewogICAgICAgICAvLyBSZXNpZGVudCBr
ZXlzIGFyZSBub3Qgc3VwcG9ydGVkIGJ5IGRlZmF1bHQuCi0gICAgICAgIGlmIChvcHRpb25zLmF1
dGhlbnRpY2F0b3JTZWxlY3Rpb24tPnJlcXVpcmVSZXNpZGVudEtleSkKKyAgICAgICAgaWYgKG9w
dGlvbnMuYXV0aGVudGljYXRvclNlbGVjdGlvbi0+cmVzaWRlbnRLZXkpIHsKKyAgICAgICAgICAg
IGlmICgqb3B0aW9ucy5hdXRoZW50aWNhdG9yU2VsZWN0aW9uLT5yZXNpZGVudEtleSA9PSBSZXNp
ZGVudEtleVJlcXVpcmVtZW50OjpSZXF1aXJlZAorICAgICAgICAgICAgICAgIHx8ICgqb3B0aW9u
cy5hdXRoZW50aWNhdG9yU2VsZWN0aW9uLT5yZXNpZGVudEtleSA9PSBSZXNpZGVudEtleVJlcXVp
cmVtZW50OjpQcmVmZXJyZWQgJiYgcmVzaWRlbnRLZXlBdmFpbGFiaWxpdHkgPT0gQXV0aGVudGlj
YXRvclN1cHBvcnRlZE9wdGlvbnM6OlJlc2lkZW50S2V5QXZhaWxhYmlsaXR5OjprU3VwcG9ydGVk
KSkKKyAgICAgICAgICAgICAgICBvcHRpb25NYXBbQ0JPUlZhbHVlKGtSZXNpZGVudEtleU1hcEtl
eSldID0gQ0JPUlZhbHVlKHRydWUpOworICAgICAgICB9IGVsc2UgaWYgKG9wdGlvbnMuYXV0aGVu
dGljYXRvclNlbGVjdGlvbi0+cmVxdWlyZVJlc2lkZW50S2V5KQogICAgICAgICAgICAgb3B0aW9u
TWFwW0NCT1JWYWx1ZShrUmVzaWRlbnRLZXlNYXBLZXkpXSA9IENCT1JWYWx1ZSh0cnVlKTsKIAog
ICAgICAgICAvLyBVc2VyIHZlcmlmaWNhdGlvbiBpcyBub3QgcmVxdWlyZWQgYnkgZGVmYXVsdC4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vZmlkby9EZXZpY2VS
ZXF1ZXN0Q29udmVydGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8v
RGV2aWNlUmVxdWVzdENvbnZlcnRlci5oCmluZGV4IDc5ZjJhOGFmOWY3ODVlNWU2ZmZmMGYwYWZm
YjU1NDBlYmU3MzBkM2UuLmMxYTQ1ZDE3NWM3ZmI3YzRhMTE1MTk3MDlkOWM0NzM3OTkyYTdlYjcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vZmlkby9EZXZpY2VS
ZXF1ZXN0Q29udmVydGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9m
aWRvL0RldmljZVJlcXVlc3RDb252ZXJ0ZXIuaApAQCAtNTAsNyArNTAsNyBAQCBzdHJ1Y3QgUGlu
UGFyYW1ldGVycyB7CiAvLyBTZXJpYWxpemVzIE1ha2VDcmVkZW50aWFsIHJlcXVlc3QgcGFyYW1l
dGVyIGludG8gQ0JPUiBlbmNvZGVkIG1hcCB3aXRoCiAvLyBpbnRlZ2VyIGtleXMgYW5kIENCT1Ig
ZW5jb2RlZCB2YWx1ZXMgYXMgZGVmaW5lZCBieSB0aGUgQ1RBUCBzcGVjLgogLy8gaHR0cHM6Ly9m
aWRvYWxsaWFuY2Uub3JnL3NwZWNzL2ZpZG8tdjIuMC1wcy0yMDE3MDkyNy9maWRvLWNsaWVudC10
by1hdXRoZW50aWNhdG9yLXByb3RvY29sLXYyLjAtcHMtMjAxNzA5MjcuaHRtbCNhdXRoZW50aWNh
dG9yTWFrZUNyZWRlbnRpYWwKLVdFQkNPUkVfRVhQT1JUIFZlY3Rvcjx1aW50OF90PiBlbmNvZGVN
YWtlQ3JlZGVuaXRhbFJlcXVlc3RBc0NCT1IoY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBoYXNoLCBj
b25zdCBXZWJDb3JlOjpQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zJiwgQXV0aGVu
dGljYXRvclN1cHBvcnRlZE9wdGlvbnM6OlVzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHksIHN0
ZDo6b3B0aW9uYWw8UGluUGFyYW1ldGVycz4gPSBzdGQ6Om51bGxvcHQpOworV0VCQ09SRV9FWFBP
UlQgVmVjdG9yPHVpbnQ4X3Q+IGVuY29kZU1ha2VDcmVkZW5pdGFsUmVxdWVzdEFzQ0JPUihjb25z
dCBWZWN0b3I8dWludDhfdD4mIGhhc2gsIGNvbnN0IFdlYkNvcmU6OlB1YmxpY0tleUNyZWRlbnRp
YWxDcmVhdGlvbk9wdGlvbnMmLCBBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9uczo6VXNlclZl
cmlmaWNhdGlvbkF2YWlsYWJpbGl0eSwgQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnM6OlJl
c2lkZW50S2V5QXZhaWxhYmlsaXR5LCBzdGQ6Om9wdGlvbmFsPFBpblBhcmFtZXRlcnM+ID0gc3Rk
OjpudWxsb3B0KTsKIAogLy8gU2VyaWFsaXplcyBHZXRBc3NlcnRpb24gcmVxdWVzdCBwYXJhbWV0
ZXIgaW50byBDQk9SIGVuY29kZWQgbWFwIHdpdGgKIC8vIGludGVnZXIga2V5cyBhbmQgQ0JPUiBl
bmNvZGVkIHZhbHVlcyBhcyBkZWZpbmVkIGJ5IHRoZSBDVEFQIHNwZWMuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8vRGV2aWNlUmVzcG9uc2VDb252ZXJ0
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9maWRvL0RldmljZVJlc3Bv
bnNlQ29udmVydGVyLmNwcAppbmRleCA5MzJmZjA4MmNlODc3YmVmMDQ1OTE0NjA0ZTg0NmVkMTY3
MjllNjNiLi5mMjFjNWVlN2EyNWY1ZTkyNzU0NDMxZDM1NGE4N2E4ZDIxYzU4M2M4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8vRGV2aWNlUmVzcG9uc2VD
b252ZXJ0ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vZmlkby9E
ZXZpY2VSZXNwb25zZUNvbnZlcnRlci5jcHAKQEAgLTI2NCw4ICsyNjQsMTAgQEAgc3RkOjpvcHRp
b25hbDxBdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlPiByZWFkQ1RBUEdldEluZm9SZXNwb25z
ZShjb25zdCBWZWN0b3IKICAgICAgICAgaWYgKG9wdGlvbk1hcEl0ICE9IG9wdGlvbk1hcC5lbmQo
KSkgewogICAgICAgICAgICAgaWYgKCFvcHRpb25NYXBJdC0+c2Vjb25kLmlzQm9vbCgpKQogICAg
ICAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0KLSAgICAgICAgICAgIG9wdGlvbnMu
c2V0U3VwcG9ydHNSZXNpZGVudEtleShvcHRpb25NYXBJdC0+c2Vjb25kLmdldEJvb2woKSk7Cisg
ICAgICAgICAgICBpZiAob3B0aW9uTWFwSXQtPnNlY29uZC5nZXRCb29sKCkpCisgICAgICAgICAg
ICAgICAgb3B0aW9ucy5zZXRSZXNpZGVudEtleUF2YWlsYWJpbGl0eShBdXRoZW50aWNhdG9yU3Vw
cG9ydGVkT3B0aW9uczo6UmVzaWRlbnRLZXlBdmFpbGFiaWxpdHk6OmtTdXBwb3J0ZWQpOworICAg
ICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIG9wdGlvbnMuc2V0UmVzaWRlbnRLZXlBdmFp
bGFiaWxpdHkoQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnM6OlJlc2lkZW50S2V5QXZhaWxh
YmlsaXR5OjprTm90U3VwcG9ydGVkKTsKICAgICAgICAgfQogCiAgICAgICAgIG9wdGlvbk1hcEl0
ID0gb3B0aW9uTWFwLmZpbmQoQ0JPUihrVXNlclByZXNlbmNlTWFwS2V5KSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0
CmluZGV4IDNhMzVlMjYwNWUwM2U2Mjk3OWIyMjlkODI2ZmU2ZTczYmUyOTQyZGYuLjBjMTM2MzNh
ZDE4ZmE0OGFkNjg2ZTE4MjMwNGU3ZDQ4ZWVlN2IxOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBAIC0zNzAw
LDYgKzM3MDAsNyBAQCBKU1JlbW90ZVBsYXliYWNrLmNwcAogSlNSZW1vdGVQbGF5YmFja0F2YWls
YWJpbGl0eUNhbGxiYWNrLmNwcAogSlNSZXF1ZXN0QW5pbWF0aW9uRnJhbWVDYWxsYmFjay5jcHAK
IEpTUmVxdWVzdENvb2tpZUNvbnNlbnRPcHRpb25zLmNwcAorSlNSZXNpZGVudEtleVJlcXVpcmVt
ZW50LmNwcAogSlNSZXNpemVPYnNlcnZlci5jcHAKIEpTUmVzaXplT2JzZXJ2ZXJCb3hPcHRpb25z
LmNwcAogSlNSZXNpemVPYnNlcnZlckNhbGxiYWNrLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGFhMjI3ZDU5OGU0MjlkODU1
YmIzZGVlZGE5YjFkNDcyODBkNjI0M2IuLjJlMmFkNzJjNjk4YWE3ODFiOWM5MGExMjJiYjE4YTE0
MDRhYWMxMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKQEAgLTE3MjYsNiArMTcyNiw3IEBACiAJCTUxRkEyRURGMjc1MDZGREUwMDEx
QzE1RCAvKiBTaGFyZWRCdWZmZXJDaHVua1JlYWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFGQTJFRDYyNzRGNzgzNzAwMTFDMTVEIC8qIFNoYXJl
ZEJ1ZmZlckNodW5rUmVhZGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJNTFGQjU1MDQxMTNFM0U5MTAwODIxMTc2IC8qIEpTQ2xvc2VFdmVudC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFGQjU1MDIx
MTNFM0U5MTAwODIxMTc2IC8qIEpTQ2xvc2VFdmVudC5oICovOyB9OwogCQk1MUZCNjdEQzFBRTZC
ODJGMDBEMDZDNUEgLyogQ29udGVudEV4dGVuc2lvblN0eWxlU2hlZXQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxRkI2N0RBMUFFNkI1RTQwMEQwNkM1
QSAvKiBDb250ZW50RXh0ZW5zaW9uU3R5bGVTaGVldC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTUyNjg4QUE2MjdENkE3REEwMDM1NzdBMiAvKiBS
ZXNpZGVudEtleVJlcXVpcmVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1MjY4OEFBMzI3RDZBN0RBMDAzNTc3QTIgLyogUmVzaWRlbnRLZXlSZXF1
aXJlbWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTUyNzNDQzc3MjU2MTAzQ0YwMDg1MDAwNyAvKiBQbGF0Zm9ybVhSQ29jb2EuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUyNzNDQzc1MjU2MTAzQ0Yw
MDg1MDAwNyAvKiBQbGF0Zm9ybVhSQ29jb2EuaCAqLzsgfTsKIAkJNTI3M0NDOEUyNTYzN0VCNTAw
ODUwMDA3IC8qIFdlYlhSVGVzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBFMThEODNFMDI0M0Y3MUNFMDA5MjQ3RDYgLyogV2ViWFJUZXN0LmNwcCAq
LzsgfTsKIAkJNTI3M0NDOTAyNTYzN0Y2NzAwODUwMDA3IC8qIFdlYkZha2VYUkRldmljZS5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMThEODNFOTI0
M0Y3MUQzMDA5MjQ3RDYgLyogV2ViRmFrZVhSRGV2aWNlLmNwcCAqLzsgfTsKQEAgLTEwMDc0LDYg
KzEwMDc1LDggQEAKIAkJNTIxMzFFNUExQzRGMTU2MTAwMzNGODAyIC8qIFZpZGVvRnVsbHNjcmVl
bkludGVyZmFjZU1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9
IFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNTI2NzI0RjExQ0IyRkRGNjAwNzU5NzREIC8qIFRleHRUcmFja1JlcHJlc2VudGF0aW9u
Q29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBUZXh0VHJh
Y2tSZXByZXNlbnRhdGlvbkNvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1
MjY3MjRGMjFDQjJGREY2MDA3NTk3NEQgLyogVGV4dFRyYWNrUmVwcmVzZW50YXRpb25Db2NvYS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUZXh0VHJhY2tSZXByZXNlbnRhdGlv
bkNvY29hLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUyNjg4QUEzMjdENkE3REEw
MDM1NzdBMiAvKiBSZXNpZGVudEtleVJlcXVpcmVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlc2lk
ZW50S2V5UmVxdWlyZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTI2ODhB
QTUyN0Q2QTdEQTAwMzU3N0EyIC8qIFJlc2lkZW50S2V5UmVxdWlyZW1lbnQuaWRsICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJl
c2lkZW50S2V5UmVxdWlyZW1lbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1
MjczQ0M3NDI1NjEwM0NGMDA4NTAwMDcgLyogUGxhdGZvcm1YUkNvY29hLm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBwYXRoID0gUGxhdGZvcm1YUkNvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk1MjczQ0M3NTI1NjEwM0NGMDA4NTAwMDcgLyogUGxhdGZvcm1YUkNvY29hLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFBsYXRmb3JtWFJDb2NvYS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk1MjczQ0M5QTI1NjNCMjEyMDA4NTAwMDcgLyogSlNXZWJYUlRlc3QuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNXZWJYUlRlc3QuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtMjMzMTksNiArMjMzMjIsOCBAQAogCQkJCTU3MzAzQzA4MjAwOTk4
RjgwMDM1NTk2NSAvKiBQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMuaWRsICovLAog
CQkJCTU3MzAzQkVBMjAwOTdGNDAwMDM1NTk2NSAvKiBQdWJsaWNLZXlDcmVkZW50aWFsVHlwZS5o
ICovLAogCQkJCTU3MzAzQkYwMjAwOTg0NjEwMDM1NTk2NSAvKiBQdWJsaWNLZXlDcmVkZW50aWFs
VHlwZS5pZGwgKi8sCisJCQkJNTI2ODhBQTMyN0Q2QTdEQTAwMzU3N0EyIC8qIFJlc2lkZW50S2V5
UmVxdWlyZW1lbnQuaCAqLywKKwkJCQk1MjY4OEFBNTI3RDZBN0RBMDAzNTc3QTIgLyogUmVzaWRl
bnRLZXlSZXF1aXJlbWVudC5pZGwgKi8sCiAJCQkJNTcyQjQwMjMyMTc2OEQ4NTAwMEFENDNFIC8q
IFVzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudC5oICovLAogCQkJCTU3MkI0MDI1MjE3NjhEODUw
MDBBRDQzRSAvKiBVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQuaWRsICovLAogCQkJCTU3NEY1
NURDMjA0RjM3MzIwMDI5NDhDNiAvKiBXZWJBdXRoZW50aWNhdGlvbkNvbnN0YW50cy5oICovLApA
QCAtMzcwNTMsNiArMzcwNTgsNyBAQAogCQkJCTQ5OThBRUM2MTNGOUQwRUEwMDkwQjFBQSAvKiBS
ZXF1ZXN0QW5pbWF0aW9uRnJhbWVDYWxsYmFjay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRjQwMzRG
QUMyNzVFQUQ2RTAwM0E4MUY4IC8qIFJlcXVlc3RDb29raWVDb25zZW50T3B0aW9ucy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJRjU1QjNERDAxMjUxRjEyRDAwM0VGMjY5IC8qIFJlc2V0SW5wdXRUeXBl
LmggaW4gSGVhZGVycyAqLywKKwkJCQk1MjY4OEFBNjI3RDZBN0RBMDAzNTc3QTIgLyogUmVzaWRl
bnRLZXlSZXF1aXJlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNThCMkY5RjQyMjMyRDQ1MzAw
OTM4RDYzIC8qIFJlc2l6ZU9ic2VydmF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk1OEIyRjlG
NTIyMzJENDU4MDA5MzhENjMgLyogUmVzaXplT2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTBGRDZBNjhDMjZFRUMzN0YwMDdCMjIzMSAvKiBSZXNpemVPYnNlcnZlckJveE9wdGlvbnMuaCBp
biBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL19XS0F1dGhlbnRpY2F0b3JTZWxlY3Rpb25Dcml0ZXJpYS5oIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL19XS0F1dGhlbnRpY2F0b3JTZWxlY3Rpb25Dcml0ZXJpYS5oCmlu
ZGV4IGZkOGMyNjRiM2MxYzJhMzFlMTczZGMxYjgxMzYwNTY3NjY2MGM0NTguLjI2ZTViNzAzMmQ0
NzdmY2FjZDM4YzZjZGE3ZDMyOTk1OTQ1OTQwNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBdXRoZW50aWNhdG9yU2VsZWN0aW9uQ3JpdGVyaWEuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQXV0aGVudGljYXRvclNl
bGVjdGlvbkNyaXRlcmlhLmgKQEAgLTI5LDYgKzI5LDggQEAKIAogI2ltcG9ydCA8Rm91bmRhdGlv
bi9Gb3VuZGF0aW9uLmg+CiAjaW1wb3J0IDxXZWJLaXQvX1dLQXV0aGVudGljYXRvckF0dGFjaG1l
bnQuaD4KKyNpbXBvcnQgPFdlYktpdC9fV0tSZXNpZGVudEtleVJlcXVpcmVtZW50Lmg+CisKICNp
bXBvcnQgPFdlYktpdC9fV0tVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQuaD4KIAogTlNfQVNT
VU1FX05PTk5VTExfQkVHSU4KQEAgLTM5LDYgKzQxLDkgQEAgV0tfQ0xBU1NfQVZBSUxBQkxFKG1h
Y29zKDEyLjApLCBpb3MoMTUuMCkpCiAvKiFAZGlzY3Vzc2lvbiBUaGUgZGVmYXVsdCB2YWx1ZSBp
cyBfV0tBdXRoZW50aWNhdG9yQXR0YWNobWVudEFsbC4qLwogQHByb3BlcnR5IChub25hdG9taWMp
IF9XS0F1dGhlbnRpY2F0b3JBdHRhY2htZW50IGF1dGhlbnRpY2F0b3JBdHRhY2htZW50OwogCisv
KiAoQGRpc2N1c3Npb24gVGhlIGRlZmF1bHQgdmFsdWUgaXMgX1dLUmVzaWRlbnRLZXlSZXF1aXJl
bWVudE5vdFByZXNlbnQgKi8KK0Bwcm9wZXJ0eSAobm9uYXRvbWljKSBfV0tSZXNpZGVudEtleVJl
cXVpcmVtZW50IHJlc2lkZW50S2V5OworCiAvKiFAZGlzY3Vzc2lvbiBUaGUgZGVmYXVsdCB2YWx1
ZSBpcyBOTy4qLwogQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgcmVxdWlyZVJlc2lkZW50S2V5
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQXV0
aGVudGljYXRvclNlbGVjdGlvbkNyaXRlcmlhLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL19XS0F1dGhlbnRpY2F0b3JTZWxlY3Rpb25Dcml0ZXJpYS5tbQppbmRleCA4OGQw
NDNkZTUwNzQ3NmMwNDdiYTgzYzg4MDJmYWRkMDdkYzg3ODFiLi5mNjdiYmY4MjViNzJhY2M5Yzg2
OTJkNzJjYWUzMWYyOTQ1YjI4YWE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvX1dLQXV0aGVudGljYXRvclNlbGVjdGlvbkNyaXRlcmlhLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBdXRoZW50aWNhdG9yU2VsZWN0aW9u
Q3JpdGVyaWEubW0KQEAgLTM0LDYgKzM0LDcgQEAKICAgICAgICAgcmV0dXJuIG5pbDsKIAogICAg
IHNlbGYuYXV0aGVudGljYXRvckF0dGFjaG1lbnQgPSBfV0tBdXRoZW50aWNhdG9yQXR0YWNobWVu
dEFsbDsKKyAgICBzZWxmLnJlc2lkZW50S2V5ID0gX1dLUmVzaWRlbnRLZXlSZXF1aXJlbWVudE5v
dFByZXNlbnQ7CiAgICAgc2VsZi5yZXF1aXJlUmVzaWRlbnRLZXkgPSBOTzsKICAgICBzZWxmLnVz
ZXJWZXJpZmljYXRpb24gPSBfV0tVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnRQcmVmZXJyZWQ7
CiAgICAgcmV0dXJuIHNlbGY7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvX1dLUmVzaWRlbnRLZXlSZXF1aXJlbWVudC5oIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL19XS1Jlc2lkZW50S2V5UmVxdWlyZW1lbnQuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5m
NTViOGRkZDdlYTVmNGMxZTc0NjBlYjJjMjA5MjljYjY1ZjhhYWI4Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1Jlc2lkZW50S2V5UmVxdWly
ZW1lbnQuaApAQCAtMCwwICsxLDM1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIyIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNp
bXBvcnQgPFdlYktpdC9XS0ZvdW5kYXRpb24uaD4KKwordHlwZWRlZiBOU19FTlVNKE5TSW50ZWdl
ciwgX1dLUmVzaWRlbnRLZXlSZXF1aXJlbWVudCkgeworICAgIF9XS1Jlc2lkZW50S2V5UmVxdWly
ZW1lbnROb3RQcmVzZW50LAorICAgIF9XS1Jlc2lkZW50S2V5UmVxdWlyZW1lbnRSZXF1aXJlZCwK
KyAgICBfV0tSZXNpZGVudEtleVJlcXVpcmVtZW50UHJlZmVycmVkLAorICAgIF9XS1Jlc2lkZW50
S2V5UmVxdWlyZW1lbnREaXNjb3VyYWdlZCwKK30gV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19N
QUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsLm1tIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwubW0KaW5k
ZXggODkwM2U5NDAzMGZkMjYyMGYzODI5MDdmYTgzYTU3YTZjMWQwNWE1Yi4uMGQxYTdlODE5NDE2
MjUyMTc2MTZkZjAyNDBmMTgyZmViNzhlZGY4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwubW0KKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwu
bW0KQEAgLTczNSwxMCArNzM1LDI4IEBAIHN0YXRpYyBXZWJDb3JlOjpVc2VyVmVyaWZpY2F0aW9u
UmVxdWlyZW1lbnQgdXNlclZlcmlmaWNhdGlvbihfV0tVc2VyVmVyaWZpY2F0aW9uCiAgICAgfQog
fQogCitzdGF0aWMgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpSZXNpZGVudEtleVJlcXVpcmVtZW50
PiByZXNpZGVudEtleShfV0tSZXNpZGVudEtleVJlcXVpcmVtZW50IHV2KQoreworICAgIHN3aXRj
aCAodXYpIHsKKyAgICBjYXNlIF9XS1Jlc2lkZW50S2V5UmVxdWlyZW1lbnROb3RQcmVzZW50Ogor
ICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgIGNhc2UgX1dLUmVzaWRlbnRLZXlSZXF1
aXJlbWVudFJlcXVpcmVkOgorICAgICAgICByZXR1cm4gV2ViQ29yZTo6UmVzaWRlbnRLZXlSZXF1
aXJlbWVudDo6UmVxdWlyZWQ7CisgICAgY2FzZSBfV0tSZXNpZGVudEtleVJlcXVpcmVtZW50UHJl
ZmVycmVkOgorICAgICAgICByZXR1cm4gV2ViQ29yZTo6UmVzaWRlbnRLZXlSZXF1aXJlbWVudDo6
UHJlZmVycmVkOworICAgIGNhc2UgX1dLUmVzaWRlbnRLZXlSZXF1aXJlbWVudERpc2NvdXJhZ2Vk
OgorICAgICAgICByZXR1cm4gV2ViQ29yZTo6UmVzaWRlbnRLZXlSZXF1aXJlbWVudDo6RGlzY291
cmFnZWQ7CisgICAgZGVmYXVsdDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAg
ICAgIHJldHVybiBXZWJDb3JlOjpSZXNpZGVudEtleVJlcXVpcmVtZW50OjpQcmVmZXJyZWQ7Cisg
ICAgfQorfQorCiBzdGF0aWMgV2ViQ29yZTo6UHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0
aW9uczo6QXV0aGVudGljYXRvclNlbGVjdGlvbkNyaXRlcmlhIGF1dGhlbnRpY2F0b3JTZWxlY3Rp
b25Dcml0ZXJpYShfV0tBdXRoZW50aWNhdG9yU2VsZWN0aW9uQ3JpdGVyaWEgKmF1dGhlbnRpY2F0
b3JTZWxlY3Rpb24pCiB7CiAgICAgV2ViQ29yZTo6UHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9u
T3B0aW9uczo6QXV0aGVudGljYXRvclNlbGVjdGlvbkNyaXRlcmlhIHJlc3VsdDsKICAgICByZXN1
bHQuYXV0aGVudGljYXRvckF0dGFjaG1lbnQgPSBhdXRoZW50aWNhdG9yQXR0YWNobWVudChhdXRo
ZW50aWNhdG9yU2VsZWN0aW9uLmF1dGhlbnRpY2F0b3JBdHRhY2htZW50KTsKKyAgICByZXN1bHQu
cmVzaWRlbnRLZXkgPSByZXNpZGVudEtleShhdXRoZW50aWNhdG9yU2VsZWN0aW9uLnJlc2lkZW50
S2V5KTsKICAgICByZXN1bHQucmVxdWlyZVJlc2lkZW50S2V5ID0gYXV0aGVudGljYXRvclNlbGVj
dGlvbi5yZXF1aXJlUmVzaWRlbnRLZXk7CiAgICAgcmVzdWx0LnVzZXJWZXJpZmljYXRpb24gPSB1
c2VyVmVyaWZpY2F0aW9uKGF1dGhlbnRpY2F0b3JTZWxlY3Rpb24udXNlclZlcmlmaWNhdGlvbik7
CiAKQEAgLTkzMCw3ICs5NDgsNyBAQCBzdGF0aWMgUmV0YWluUHRyPF9XS0F1dGhlbnRpY2F0b3JB
c3NlcnRpb25SZXNwb25zZT4gd2tBdXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVzcAogI2lmIEVOQUJM
RShXRUJfQVVUSE4pCiAgICAgYXV0byBoYXNoID0gcHJvZHVjZUNsaWVudERhdGFKc29uSGFzaChj
bGllbnREYXRhSlNPTik7CiAKLSAgICBhdXRvIGVuY29kZWRWZWN0b3IgPSBmaWRvOjplbmNvZGVN
YWtlQ3JlZGVuaXRhbFJlcXVlc3RBc0NCT1IoaGFzaCwgW19XS1dlYkF1dGhlbnRpY2F0aW9uUGFu
ZWwgY29udmVydFRvQ29yZUNyZWF0aW9uT3B0aW9uc1dpdGhPcHRpb25zOm9wdGlvbnNdLCBjb3Jl
VXNlclZlcmlmaWNhdGlvbkF2YWlsYWJpbGl0eSh1c2VyVmVyaWZpY2F0aW9uQXZhaWxhYmlsaXR5
KSwgc3RkOjpudWxsb3B0KTsKKyAgICBhdXRvIGVuY29kZWRWZWN0b3IgPSBmaWRvOjplbmNvZGVN
YWtlQ3JlZGVuaXRhbFJlcXVlc3RBc0NCT1IoaGFzaCwgW19XS1dlYkF1dGhlbnRpY2F0aW9uUGFu
ZWwgY29udmVydFRvQ29yZUNyZWF0aW9uT3B0aW9uc1dpdGhPcHRpb25zOm9wdGlvbnNdLCBjb3Jl
VXNlclZlcmlmaWNhdGlvbkF2YWlsYWJpbGl0eSh1c2VyVmVyaWZpY2F0aW9uQXZhaWxhYmlsaXR5
KSwgZmlkbzo6QXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnM6OlJlc2lkZW50S2V5QXZhaWxh
YmlsaXR5OjprU3VwcG9ydGVkLCBzdGQ6Om51bGxvcHQpOwogICAgIGVuY29kZWRDb21tYW5kID0g
YWRvcHROUyhbW05TRGF0YSBhbGxvY10gaW5pdFdpdGhCeXRlczplbmNvZGVkVmVjdG9yLmRhdGEo
KSBsZW5ndGg6ZW5jb2RlZFZlY3Rvci5zaXplKCldKTsKICNlbmRpZgogCkBAIC05NTUsNyArOTcz
LDcgQEAgc3RhdGljIFJldGFpblB0cjxfV0tBdXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2U+
IHdrQXV0aGVudGljYXRvckFzc2VydGlvblJlc3AKIHsKICAgICBSZXRhaW5QdHI8TlNEYXRhPiBl
bmNvZGVkQ29tbWFuZDsKICNpZiBFTkFCTEUoV0VCX0FVVEhOKQotICAgIGF1dG8gZW5jb2RlZFZl
Y3RvciA9IGZpZG86OmVuY29kZU1ha2VDcmVkZW5pdGFsUmVxdWVzdEFzQ0JPUih2ZWN0b3JGcm9t
TlNEYXRhKGNsaWVudERhdGFIYXNoKSwgW19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwgY29udmVy
dFRvQ29yZUNyZWF0aW9uT3B0aW9uc1dpdGhPcHRpb25zOm9wdGlvbnNdLCBjb3JlVXNlclZlcmlm
aWNhdGlvbkF2YWlsYWJpbGl0eSh1c2VyVmVyaWZpY2F0aW9uQXZhaWxhYmlsaXR5KSwgc3RkOjpu
dWxsb3B0KTsKKyAgICBhdXRvIGVuY29kZWRWZWN0b3IgPSBmaWRvOjplbmNvZGVNYWtlQ3JlZGVu
aXRhbFJlcXVlc3RBc0NCT1IodmVjdG9yRnJvbU5TRGF0YShjbGllbnREYXRhSGFzaCksIFtfV0tX
ZWJBdXRoZW50aWNhdGlvblBhbmVsIGNvbnZlcnRUb0NvcmVDcmVhdGlvbk9wdGlvbnNXaXRoT3B0
aW9uczpvcHRpb25zXSwgY29yZVVzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHkodXNlclZlcmlm
aWNhdGlvbkF2YWlsYWJpbGl0eSksIGZpZG86OkF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25z
OjpSZXNpZGVudEtleUF2YWlsYWJpbGl0eTo6a1N1cHBvcnRlZCwgc3RkOjpudWxsb3B0KTsKICAg
ICBlbmNvZGVkQ29tbWFuZCA9IGFkb3B0TlMoW1tOU0RhdGEgYWxsb2NdIGluaXRXaXRoQnl0ZXM6
ZW5jb2RlZFZlY3Rvci5kYXRhKCkgbGVuZ3RoOmVuY29kZWRWZWN0b3Iuc2l6ZSgpXSk7CiAjZW5k
aWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRp
b24vZmlkby9DdGFwQXV0aGVudGljYXRvci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJBdXRoZW50aWNhdGlvbi9maWRvL0N0YXBBdXRoZW50aWNhdG9yLmNwcAppbmRleCBlNTBlNjlk
YjMzODBmN2I2MjBhODQxMTYwZDk4NDQ2OWQ4MGVkYzA5Li4xNzhmYWY4NjhlZGI2OWVkOWYwNjVk
ZTEyNTA3NjcyY2E4N2Y3ODBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJBdXRoZW50aWNhdGlvbi9maWRvL0N0YXBBdXRoZW50aWNhdG9yLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9maWRvL0N0YXBBdXRoZW50aWNhdG9y
LmNwcApAQCAtOTYsMTMgKzk2LDE0IEBAIHZvaWQgQ3RhcEF1dGhlbnRpY2F0b3I6Om1ha2VDcmVk
ZW50aWFsKCkKICAgICBWZWN0b3I8dWludDhfdD4gY2JvckNtZDsKICAgICBhdXRvJiBvcHRpb25z
ID0gc3RkOjpnZXQ8UHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucz4ocmVxdWVzdERh
dGEoKS5vcHRpb25zKTsKICAgICBhdXRvIGludGVybmFsVVZBdmFpbGFiaWxpdHkgPSBtX2luZm8u
b3B0aW9ucygpLnVzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHkoKTsKKyAgICBhdXRvIHJlc2lk
ZW50S2V5QXZhaWxhYmlsaXR5ID0gbV9pbmZvLm9wdGlvbnMoKS5yZXNpZGVudEtleUF2YWlsYWJp
bGl0eSgpOwogICAgIC8vIElmIFVWIGlzIHJlcXVpcmVkLCB0aGVuIGVpdGhlciBidWlsdC1pbiB1
diBvciBhIHBpbiB3aWxsIHdvcmsuCiAgICAgaWYgKGludGVybmFsVVZBdmFpbGFiaWxpdHkgPT0g
VVZBdmFpbGFiaWxpdHk6OmtTdXBwb3J0ZWRBbmRDb25maWd1cmVkICYmICghb3B0aW9ucy5hdXRo
ZW50aWNhdG9yU2VsZWN0aW9uIHx8IG9wdGlvbnMuYXV0aGVudGljYXRvclNlbGVjdGlvbi0+dXNl
clZlcmlmaWNhdGlvbiAhPSBVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQ6OkRpc2NvdXJhZ2Vk
KSAmJiBtX3BpbkF1dGguaXNFbXB0eSgpKQotICAgICAgICBjYm9yQ21kID0gZW5jb2RlTWFrZUNy
ZWRlbml0YWxSZXF1ZXN0QXNDQk9SKHJlcXVlc3REYXRhKCkuaGFzaCwgb3B0aW9ucywgaW50ZXJu
YWxVVkF2YWlsYWJpbGl0eSk7CisgICAgICAgIGNib3JDbWQgPSBlbmNvZGVNYWtlQ3JlZGVuaXRh
bFJlcXVlc3RBc0NCT1IocmVxdWVzdERhdGEoKS5oYXNoLCBvcHRpb25zLCBpbnRlcm5hbFVWQXZh
aWxhYmlsaXR5LCByZXNpZGVudEtleUF2YWlsYWJpbGl0eSk7CiAgICAgZWxzZSBpZiAobV9pbmZv
Lm9wdGlvbnMoKS5jbGllbnRQaW5BdmFpbGFiaWxpdHkoKSA9PSBBdXRoZW50aWNhdG9yU3VwcG9y
dGVkT3B0aW9uczo6Q2xpZW50UGluQXZhaWxhYmlsaXR5OjprU3VwcG9ydGVkQW5kUGluU2V0KQot
ICAgICAgICBjYm9yQ21kID0gZW5jb2RlTWFrZUNyZWRlbml0YWxSZXF1ZXN0QXNDQk9SKHJlcXVl
c3REYXRhKCkuaGFzaCwgb3B0aW9ucywgaW50ZXJuYWxVVkF2YWlsYWJpbGl0eSwgUGluUGFyYW1l
dGVycyB7IHBpbjo6a1Byb3RvY29sVmVyc2lvbiwgbV9waW5BdXRoIH0pOworICAgICAgICBjYm9y
Q21kID0gZW5jb2RlTWFrZUNyZWRlbml0YWxSZXF1ZXN0QXNDQk9SKHJlcXVlc3REYXRhKCkuaGFz
aCwgb3B0aW9ucywgaW50ZXJuYWxVVkF2YWlsYWJpbGl0eSwgcmVzaWRlbnRLZXlBdmFpbGFiaWxp
dHksIFBpblBhcmFtZXRlcnMgeyBwaW46OmtQcm90b2NvbFZlcnNpb24sIG1fcGluQXV0aCB9KTsK
ICAgICBlbHNlCi0gICAgICAgIGNib3JDbWQgPSBlbmNvZGVNYWtlQ3JlZGVuaXRhbFJlcXVlc3RB
c0NCT1IocmVxdWVzdERhdGEoKS5oYXNoLCBvcHRpb25zLCBpbnRlcm5hbFVWQXZhaWxhYmlsaXR5
KTsKKyAgICAgICAgY2JvckNtZCA9IGVuY29kZU1ha2VDcmVkZW5pdGFsUmVxdWVzdEFzQ0JPUihy
ZXF1ZXN0RGF0YSgpLmhhc2gsIG9wdGlvbnMsIGludGVybmFsVVZBdmFpbGFiaWxpdHksIHJlc2lk
ZW50S2V5QXZhaWxhYmlsaXR5KTsKICAgICBkcml2ZXIoKS50cmFuc2FjdChXVEZNb3ZlKGNib3JD
bWQpLCBbd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfV0oVmVjdG9yPHVpbnQ4X3Q+JiYgZGF0
YSkgewogICAgICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogICAgICAgICBpZiAoIXdl
YWtUaGlzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKaW5kZXggNzJkMzEyM2MzZTI5MGM3NDJiOTY1ODFmOGUzYjc0MDMxZmMwZTg5Ni4uMTAzNTE1
ZmIzMWJhOTM1M2RmNzcxNDczN2U4Y2Q3Y2FlNmE2OGM2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMDc5LDYgKzEwNzksNyBAQAog
CQk1MUZBRUMzQTFCMDY1NzYzMDAwOUM0RTcgLyogQXV4aWxpYXJ5UHJvY2Vzc01lc3NhZ2VzLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUZBRUMzNzFC
MDY1NzMxMDAwOUM0RTcgLyogQXV4aWxpYXJ5UHJvY2Vzc01lc3NhZ2VzLmggKi87IH07CiAJCTUx
RkFFQzNCMUIwNjU3NjgwMDA5QzRFNyAvKiBBdXhpbGlhcnlQcm9jZXNzTWVzc2FnZVJlY2VpdmVy
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxRkFF
QzM2MUIwNjU3MzEwMDA5QzRFNyAvKiBBdXhpbGlhcnlQcm9jZXNzTWVzc2FnZVJlY2VpdmVyLmNw
cCAqLzsgfTsKIAkJNTFGRDE4QjYxNjUxRkJBRDAwREJFMUNFIC8qIE5ldHdvcmtSZXNvdXJjZUxv
YWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFG
RDE4QjQxNjUxRkJBRDAwREJFMUNFIC8qIE5ldHdvcmtSZXNvdXJjZUxvYWRlci5oICovOyB9Owor
CQk1MjY4OEFBQjI3RDZCMEI3MDAzNTc3QTIgLyogX1dLUmVzaWRlbnRLZXlSZXF1aXJlbWVudC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTI2ODhBQTky
N0Q2QjBCNzAwMzU3N0EyIC8qIF9XS1Jlc2lkZW50S2V5UmVxdWlyZW1lbnQuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1MjcyRDRDOTFFNzM1RjA5
MDBFQjQyOTAgLyogV0tQcm90ZWN0aW9uU3BhY2VOUy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTI3MkQ0QzcxRTczNUYwOTAwRUI0MjkwIC8qIFdLUHJv
dGVjdGlvblNwYWNlTlMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk1MjhDMzdDMTE5NUNCQjFBMDBEOEI5Q0MgLyogV0tCYWNrRm9yd2FyZExpc3RQ
cml2YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAx
QTlGMjgxMDE5NThGNDc4MDA4Q0FDNzIgLyogV0tCYWNrRm9yd2FyZExpc3RQcml2YXRlLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTJDREM1QzQy
NzMxREEwRDAwQTNFM0VCIC8qIFZpcnR1YWxBdXRoZW50aWNhdG9yQ29uZmlndXJhdGlvbi5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTJDREM1QkQyNzMx
REEwQzAwQTNFM0VCIC8qIFZpcnR1YWxBdXRoZW50aWNhdG9yQ29uZmlndXJhdGlvbi5oICovOyB9
OwpAQCAtNDY0OCw2ICs0NjQ5LDcgQEAKIAkJNTFGQjA5MDIxNjNBM0IxQzAwRUMzMjRBIC8qIE5l
dHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBOZXR3b3JrUHJvY2Vzc0Nv
bm5lY3Rpb24ubWVzc2FnZXMuaW47IHBhdGggPSBOZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVj
dGlvbi5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTFGRDE4QjMx
NjUxRkJBRDAwREJFMUNFIC8qIE5ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBOZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MUZEMThCNDE2NTFGQkFEMDBEQkUxQ0UgLyogTmV0
d29ya1Jlc291cmNlTG9hZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5l
dHdvcmtSZXNvdXJjZUxvYWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MjY4
OEFBOTI3RDZCMEI3MDAzNTc3QTIgLyogX1dLUmVzaWRlbnRLZXlSZXF1aXJlbWVudC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBfV0tSZXNpZGVudEtleVJlcXVpcmVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTUyNzJENEM3MUU3MzVGMDkwMEVCNDI5MCAvKiBXS1Byb3RlY3Rpb25TcGFj
ZU5TLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdLUHJvdGVjdGlvblNwYWNl
TlMuaDsgcGF0aCA9IG1hYy9XS1Byb3RlY3Rpb25TcGFjZU5TLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTUyNzJENEM4MUU3MzVGMDkwMEVCNDI5MCAvKiBXS1Byb3RlY3Rpb25TcGFj
ZU5TLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gV0tQcm90ZWN0
aW9uU3BhY2VOUy5tbTsgcGF0aCA9IG1hYy9XS1Byb3RlY3Rpb25TcGFjZU5TLm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk1MkNEQzVCRDI3MzFEQTBDMDBBM0UzRUIgLyogVmlydHVh
bEF1dGhlbnRpY2F0b3JDb25maWd1cmF0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFZpcnR1YWxBdXRoZW50aWNhdG9yQ29uZmlndXJhdGlvbi5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtNDkzOCwxNiArNDk0MCwxNiBAQAogCQk1QzJFQkRGOTI1NjQzNTIw
MDBENTVCMDUgLyogV0tEb3dubG9hZENsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBXS0Rvd25sb2FkQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTVDMzU5QzBDMjE1NDczMjEwMDlFNzk0OCAvKiBXS0RlcHJlY2F0ZWQuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gV0tEZXByZWNhdGVkLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTVDM0FFQThFMUZFMUYxREYwMDIzMThEMyAvKiBXZWJzaXRlUG9saWNpZXNEYXRh
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYnNpdGVQb2xpY2ll
c0RhdGEuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk1QzQxMUQ5QjI3Q0VENDIw
MDA2ODI0MUEgLyogVW5pZmllZFNvdXJjZTEyMS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IG5hbWUgPSBVbmlmaWVkU291cmNlMTIxLmNwcDsgcGF0aCA9ICJVbmlmaWVkU291cmNl
MTIxLmNwcCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTVDNDExRDlDMjdDRUQ0MjAw
MDY4MjQxQSAvKiBVbmlmaWVkU291cmNlMTIzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgbmFtZSA9IFVuaWZpZWRTb3VyY2UxMjMuY3BwOyBwYXRoID0gIlVuaWZpZWRTb3VyY2Ux
MjMuY3BwIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNUM0MTFEOUQyN0NFRDQyMDAw
NjgyNDFBIC8qIFVuaWZpZWRTb3VyY2UxMzAuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBuYW1lID0gVW5pZmllZFNvdXJjZTEzMC5jcHA7IHBhdGggPSAiVW5pZmllZFNvdXJjZTEz
MC5jcHAiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk1QzQxMUQ5RTI3Q0VENDIxMDA2
ODI0MUEgLyogVW5pZmllZFNvdXJjZTEyNS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IG5hbWUgPSBVbmlmaWVkU291cmNlMTI1LmNwcDsgcGF0aCA9ICJVbmlmaWVkU291cmNlMTI1
LmNwcCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTVDNDExRDlGMjdDRUQ0MjEwMDY4
MjQxQSAvKiBVbmlmaWVkU291cmNlMTIyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgbmFtZSA9IFVuaWZpZWRTb3VyY2UxMjIuY3BwOyBwYXRoID0gIlVuaWZpZWRTb3VyY2UxMjIu
Y3BwIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNUM0MTFEQTAyN0NFRDQyMTAwNjgy
NDFBIC8qIFVuaWZpZWRTb3VyY2UxMjguY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBuYW1lID0gVW5pZmllZFNvdXJjZTEyOC5jcHA7IHBhdGggPSAiVW5pZmllZFNvdXJjZTEyOC5j
cHAiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk1QzQxMURBMTI3Q0VENDIxMDA2ODI0
MUEgLyogVW5pZmllZFNvdXJjZTEyNi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IG5hbWUgPSBVbmlmaWVkU291cmNlMTI2LmNwcDsgcGF0aCA9ICJVbmlmaWVkU291cmNlMTI2LmNw
cCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTVDNDExREEyMjdDRUQ0MjEwMDY4MjQx
QSAvKiBVbmlmaWVkU291cmNlMTI3LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
bmFtZSA9IFVuaWZpZWRTb3VyY2UxMjcuY3BwOyBwYXRoID0gIlVuaWZpZWRTb3VyY2UxMjcuY3Bw
Ijsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNUM0MTFEQTMyN0NFRDQyMjAwNjgyNDFB
IC8qIFVuaWZpZWRTb3VyY2UxMjkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBu
YW1lID0gVW5pZmllZFNvdXJjZTEyOS5jcHA7IHBhdGggPSAiVW5pZmllZFNvdXJjZTEyOS5jcHAi
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk1QzQxMURBNDI3Q0VENDIyMDA2ODI0MUEg
LyogVW5pZmllZFNvdXJjZTEyNC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5h
bWUgPSBVbmlmaWVkU291cmNlMTI0LmNwcDsgcGF0aCA9ICJVbmlmaWVkU291cmNlMTI0LmNwcCI7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTVDNDExRDlCMjdDRUQ0MjAwMDY4MjQxQSAv
KiBVbmlmaWVkU291cmNlMTIxLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFVuaWZpZWRTb3VyY2UxMjEuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1
QzQxMUQ5QzI3Q0VENDIwMDA2ODI0MUEgLyogVW5pZmllZFNvdXJjZTEyMy5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBVbmlmaWVkU291cmNlMTIzLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNUM0MTFEOUQyN0NFRDQyMDAwNjgyNDFBIC8qIFVuaWZp
ZWRTb3VyY2UxMzAuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVW5p
ZmllZFNvdXJjZTEzMC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTVDNDExRDlF
MjdDRUQ0MjEwMDY4MjQxQSAvKiBVbmlmaWVkU291cmNlMTI1LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFVuaWZpZWRTb3VyY2UxMjUuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk1QzQxMUQ5RjI3Q0VENDIxMDA2ODI0MUEgLyogVW5pZmllZFNvdXJj
ZTEyMi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBVbmlmaWVkU291
cmNlMTIyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNUM0MTFEQTAyN0NFRDQy
MTAwNjgyNDFBIC8qIFVuaWZpZWRTb3VyY2UxMjguY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gVW5pZmllZFNvdXJjZTEyOC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTVDNDExREExMjdDRUQ0MjEwMDY4MjQxQSAvKiBVbmlmaWVkU291cmNlMTI2LmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFVuaWZpZWRTb3VyY2UxMjYu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1QzQxMURBMjI3Q0VENDIxMDA2ODI0
MUEgLyogVW5pZmllZFNvdXJjZTEyNy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBVbmlmaWVkU291cmNlMTI3LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJNUM0MTFEQTMyN0NFRDQyMjAwNjgyNDFBIC8qIFVuaWZpZWRTb3VyY2UxMjkuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVW5pZmllZFNvdXJjZTEyOS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTVDNDExREE0MjdDRUQ0MjIwMDY4MjQxQSAvKiBV
bmlmaWVkU291cmNlMTI0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFVuaWZpZWRTb3VyY2UxMjQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1QzQ2
MDlFMjIyNDMwRTRDMDA5OTQzQzIgLyogX1dLQ29udGVudFJ1bGVMaXN0QWN0aW9uLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IF9XS0NvbnRlbnRSdWxlTGlzdEFjdGlvbi5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1QzQ2MDlFMzIyNDMwRTREMDA5OTQzQzIgLyog
X1dLQ29udGVudFJ1bGVMaXN0QWN0aW9uLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBwYXRoID0gX1dLQ29udGVudFJ1bGVMaXN0QWN0aW9uLm1tOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk1QzQ2MDlFNDIyNDMwRTREMDA5OTQzQzIgLyogX1dLQ29udGVudFJ1bGVM
aXN0QWN0aW9uSW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gX1dL
Q29udGVudFJ1bGVMaXN0QWN0aW9uSW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTg5NzgsNiArODk4MCw3IEBACiAJCQkJQTU1QkE4MEMxQkExMkJFMTAwN0NEMzNEIC8q
IF9XS1JlbW90ZVdlYkluc3BlY3RvclZpZXdDb250cm9sbGVyLmggKi8sCiAJCQkJQTU1QkE4MEQx
QkExMkJFMTAwN0NEMzNEIC8qIF9XS1JlbW90ZVdlYkluc3BlY3RvclZpZXdDb250cm9sbGVyLm1t
ICovLAogCQkJCTk5MEUxRTA4MjM4NEE4OEIwMDQ2MDJERiAvKiBfV0tSZW1vdGVXZWJJbnNwZWN0
b3JWaWV3Q29udHJvbGxlclByaXZhdGUuaCAqLywKKwkJCQk1MjY4OEFBOTI3RDZCMEI3MDAzNTc3
QTIgLyogX1dLUmVzaWRlbnRLZXlSZXF1aXJlbWVudC5oICovLAogCQkJCTVDQjdBRkRGMjNDNTJD
QkMwMEU0OUNGMyAvKiBfV0tSZXNvdXJjZUxvYWREZWxlZ2F0ZS5oICovLAogCQkJCTVDQjdBRkUz
MjNDNjdEMzcwMEU0OUNGMyAvKiBfV0tSZXNvdXJjZUxvYWRJbmZvLmggKi8sCiAJCQkJNUNCN0FG
RTIyM0M2N0QzNzAwRTQ5Q0YzIC8qIF9XS1Jlc291cmNlTG9hZEluZm8ubW0gKi8sCkBAIC0xMzAy
MCw2ICsxMzAyMyw3IEBACiAJCQkJOTkwRTFFMDkyMzg0QUE1NzAwNDYwMkRGIC8qIF9XS1JlbW90
ZVdlYkluc3BlY3RvclZpZXdDb250cm9sbGVyUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
Mzc3MjE2QjgxQTRFNkJFMDAwRENBNzE4IC8qIF9XS1JlbmRlcmluZ1Byb2dyZXNzRXZlbnRzLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkxRjYwNEJBQTE4ODlGQkI4MDBFRTAzOTUgLyogX1dLUmVuZGVy
aW5nUHJvZ3Jlc3NFdmVudHNJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTI2ODhBQUIy
N0Q2QjBCNzAwMzU3N0EyIC8qIF9XS1Jlc2lkZW50S2V5UmVxdWlyZW1lbnQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTVDQjdBRkUwMjNDNTJDRTUwMEU0OUNGMyAvKiBfV0tSZXNvdXJjZUxvYWREZWxl
Z2F0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNCN0FGRTgyM0M2OUI2MTAwRTQ5Q0YzIC8qIF9X
S1Jlc291cmNlTG9hZEluZm8uaCBpbiBIZWFkZXJzICovLAogCQkJCTQ5RkJGMDAxMjM5QjFGOEQw
MEJEMDMyRiAvKiBfV0tSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRmlyc3RQYXJ0eS5oIGluIEhlYWRl
cnMgKi8sCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5k
ZXggM2NlYmIzOGIxYjNkZWI1OGY0MjA4ZDk5YTA0MTRhZTZhMWE2YTcwMC4uZTE3ZjQxZDUzYzY1
NzdhMDk3YWI5NzZjMTE5OWQ5YWE0ZDZjM2ZlYyAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9n
CisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDIyLTAzLTA3ICBKIFBh
c2NvZSAgPGpfcGFzY29lQGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViQXV0aG5dIFN1cHBvcnQg
YXV0aGVudGljYXRvclNlbGVjdGlvbi5yZXNpZGVudEtleSBSZXNpZGVudEtleVJlcXVpcmVtZW50
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzc1NjcK
KyAgICAgICAgcmRhcjovLzg5Nzg4Mzc4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgQWRkIEFQSSB0ZXN0cyBmb3IgYXV0aGVudGljYXRvclNlbGVjdGlv
bi5yZXNpZGVudEtleS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9D
dGFwUmVxdWVzdFRlc3QuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAg
ICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0N0YXBSZXNwb25zZVRlc3QuY3BwOgor
ICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisKIDIwMjItMDMtMDQgIE15bGVzIEMuIE1h
eGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TXSBCb29rcyBBU1NF
UlRzIHVwb24gb3BlbmluZyBhIGJvb2sgd2l0aCBhIGRlYnVnIGJ1aWxkIG9mIFdlYktpdApkaWZm
IC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0N0YXBSZXF1ZXN0VGVz
dC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ3RhcFJlcXVlc3RUZXN0
LmNwcAppbmRleCBmMWE2ODM2OWY3MTIzZjE2OGMwZGMyZGE3OGZiMGJhZjZhMjM4NjBmLi45MWMw
ODhlMWE1MWUxNWU5MzI3YWNmMDk4YTlkYWRjYmNhMDM1NTNmIDEwMDY0NAotLS0gYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ3RhcFJlcXVlc3RUZXN0LmNwcAorKysgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ3RhcFJlcXVlc3RUZXN0LmNwcApAQCAtNjAs
MTIgKzYwLDEyIEBAIFRFU1QoQ1RBUFJlcXVlc3RUZXN0LCBUZXN0Q29uc3RydWN0TWFrZUNyZWRl
bnRpYWxSZXF1ZXN0UGFyYW0pCiAgICAgdXNlci5kaXNwbGF5TmFtZSA9ICJKb2huIFAuIFNtaXRo
IjsKIAogICAgIFZlY3RvcjxQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zOjpQYXJh
bWV0ZXJzPiBwYXJhbXMgeyB7IFB1YmxpY0tleUNyZWRlbnRpYWxUeXBlOjpQdWJsaWNLZXksIDcg
fSwgeyBQdWJsaWNLZXlDcmVkZW50aWFsVHlwZTo6UHVibGljS2V5LCAyNTcgfSB9OwotICAgIFB1
YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnM6OkF1dGhlbnRpY2F0b3JTZWxlY3Rpb25D
cml0ZXJpYSBzZWxlY3Rpb24geyBBdXRoZW50aWNhdG9yQXR0YWNobWVudDo6UGxhdGZvcm0sIHRy
dWUsIFVzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudDo6UHJlZmVycmVkIH07CisgICAgUHVibGlj
S2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9uczo6QXV0aGVudGljYXRvclNlbGVjdGlvbkNyaXRl
cmlhIHNlbGVjdGlvbiB7IEF1dGhlbnRpY2F0b3JBdHRhY2htZW50OjpQbGF0Zm9ybSwgc3RkOjpu
dWxsb3B0LCB0cnVlLCBVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQ6OlByZWZlcnJlZCB9Owog
CiAgICAgUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucyBvcHRpb25zIHsgcnAsIHVz
ZXIsIHsgfSwgcGFyYW1zLCBzdGQ6Om51bGxvcHQsIHsgfSwgc2VsZWN0aW9uLCBBdHRlc3RhdGlv
bkNvbnZleWFuY2VQcmVmZXJlbmNlOjpOb25lLCBzdGQ6Om51bGxvcHQgfTsKICAgICBWZWN0b3I8
dWludDhfdD4gaGFzaDsKICAgICBoYXNoLmFwcGVuZChUZXN0RGF0YTo6a0NsaWVudERhdGFIYXNo
LCBzaXplb2YoVGVzdERhdGE6OmtDbGllbnREYXRhSGFzaCkpOwotICAgIGF1dG8gc2VyaWFsaXpl
ZERhdGEgPSBlbmNvZGVNYWtlQ3JlZGVuaXRhbFJlcXVlc3RBc0NCT1IoaGFzaCwgb3B0aW9ucywg
QXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnM6OlVzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxp
dHk6OmtTdXBwb3J0ZWRBbmRDb25maWd1cmVkKTsKKyAgICBhdXRvIHNlcmlhbGl6ZWREYXRhID0g
ZW5jb2RlTWFrZUNyZWRlbml0YWxSZXF1ZXN0QXNDQk9SKGhhc2gsIG9wdGlvbnMsIEF1dGhlbnRp
Y2F0b3JTdXBwb3J0ZWRPcHRpb25zOjpVc2VyVmVyaWZpY2F0aW9uQXZhaWxhYmlsaXR5OjprU3Vw
cG9ydGVkQW5kQ29uZmlndXJlZCwgQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnM6OlJlc2lk
ZW50S2V5QXZhaWxhYmlsaXR5OjprU3VwcG9ydGVkKTsKICAgICBFWFBFQ1RfRVEoc2VyaWFsaXpl
ZERhdGEuc2l6ZSgpLCBzaXplb2YoVGVzdERhdGE6OmtDdGFwTWFrZUNyZWRlbnRpYWxSZXF1ZXN0
KSk7CiAgICAgRVhQRUNUX0VRKG1lbWNtcChzZXJpYWxpemVkRGF0YS5kYXRhKCksIFRlc3REYXRh
OjprQ3RhcE1ha2VDcmVkZW50aWFsUmVxdWVzdCwgc2VyaWFsaXplZERhdGEuc2l6ZSgpKSwgMCk7
CiB9CkBAIC04MywxMiArODMsMTIgQEAgVEVTVChDVEFQUmVxdWVzdFRlc3QsIFRlc3RDb25zdHJ1
Y3RNYWtlQ3JlZGVudGlhbFJlcXVlc3RQYXJhbU5vVVZOb1JLKQogICAgIHVzZXIuZGlzcGxheU5h
bWUgPSAiSm9obiBQLiBTbWl0aCI7CiAKICAgICBWZWN0b3I8UHVibGljS2V5Q3JlZGVudGlhbENy
ZWF0aW9uT3B0aW9uczo6UGFyYW1ldGVycz4gcGFyYW1zIHsgeyBQdWJsaWNLZXlDcmVkZW50aWFs
VHlwZTo6UHVibGljS2V5LCA3IH0sIHsgUHVibGljS2V5Q3JlZGVudGlhbFR5cGU6OlB1YmxpY0tl
eSwgMjU3IH0gfTsKLSAgICBQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zOjpBdXRo
ZW50aWNhdG9yU2VsZWN0aW9uQ3JpdGVyaWEgc2VsZWN0aW9uIHsgQXV0aGVudGljYXRvckF0dGFj
aG1lbnQ6OlBsYXRmb3JtLCBmYWxzZSwgVXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50OjpEaXNj
b3VyYWdlZCB9OworICAgIFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnM6OkF1dGhl
bnRpY2F0b3JTZWxlY3Rpb25Dcml0ZXJpYSBzZWxlY3Rpb24geyBBdXRoZW50aWNhdG9yQXR0YWNo
bWVudDo6UGxhdGZvcm0sIHN0ZDo6bnVsbG9wdCwgZmFsc2UsIFVzZXJWZXJpZmljYXRpb25SZXF1
aXJlbWVudDo6RGlzY291cmFnZWQgfTsKIAogICAgIFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlv
bk9wdGlvbnMgb3B0aW9ucyB7IHJwLCB1c2VyLCB7IH0sIHBhcmFtcywgc3RkOjpudWxsb3B0LCB7
IH0sIHNlbGVjdGlvbiwgQXR0ZXN0YXRpb25Db252ZXlhbmNlUHJlZmVyZW5jZTo6Tm9uZSwgc3Rk
OjpudWxsb3B0IH07CiAgICAgVmVjdG9yPHVpbnQ4X3Q+IGhhc2g7CiAgICAgaGFzaC5hcHBlbmQo
VGVzdERhdGE6OmtDbGllbnREYXRhSGFzaCwgc2l6ZW9mKFRlc3REYXRhOjprQ2xpZW50RGF0YUhh
c2gpKTsKLSAgICBhdXRvIHNlcmlhbGl6ZWREYXRhID0gZW5jb2RlTWFrZUNyZWRlbml0YWxSZXF1
ZXN0QXNDQk9SKGhhc2gsIG9wdGlvbnMsIEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zOjpV
c2VyVmVyaWZpY2F0aW9uQXZhaWxhYmlsaXR5OjprU3VwcG9ydGVkQW5kQ29uZmlndXJlZCk7Cisg
ICAgYXV0byBzZXJpYWxpemVkRGF0YSA9IGVuY29kZU1ha2VDcmVkZW5pdGFsUmVxdWVzdEFzQ0JP
UihoYXNoLCBvcHRpb25zLCBBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9uczo6VXNlclZlcmlm
aWNhdGlvbkF2YWlsYWJpbGl0eTo6a1N1cHBvcnRlZEFuZENvbmZpZ3VyZWQsIEF1dGhlbnRpY2F0
b3JTdXBwb3J0ZWRPcHRpb25zOjpSZXNpZGVudEtleUF2YWlsYWJpbGl0eTo6a1N1cHBvcnRlZCk7
CiAgICAgRVhQRUNUX0VRKHNlcmlhbGl6ZWREYXRhLnNpemUoKSwgc2l6ZW9mKFRlc3REYXRhOjpr
Q3RhcE1ha2VDcmVkZW50aWFsUmVxdWVzdFNob3J0KSk7CiAgICAgRVhQRUNUX0VRKG1lbWNtcChz
ZXJpYWxpemVkRGF0YS5kYXRhKCksIFRlc3REYXRhOjprQ3RhcE1ha2VDcmVkZW50aWFsUmVxdWVz
dFNob3J0LCBzZXJpYWxpemVkRGF0YS5zaXplKCkpLCAwKTsKIH0KQEAgLTEwNiwxMiArMTA2LDEy
IEBAIFRFU1QoQ1RBUFJlcXVlc3RUZXN0LCBUZXN0Q29uc3RydWN0TWFrZUNyZWRlbnRpYWxSZXF1
ZXN0UGFyYW1VVlJlcXVpcmVkQnV0Tm90U3VwCiAgICAgdXNlci5kaXNwbGF5TmFtZSA9ICJKb2hu
IFAuIFNtaXRoIjsKIAogICAgIFZlY3RvcjxQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRp
b25zOjpQYXJhbWV0ZXJzPiBwYXJhbXMgeyB7IFB1YmxpY0tleUNyZWRlbnRpYWxUeXBlOjpQdWJs
aWNLZXksIDcgfSwgeyBQdWJsaWNLZXlDcmVkZW50aWFsVHlwZTo6UHVibGljS2V5LCAyNTcgfSB9
OwotICAgIFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnM6OkF1dGhlbnRpY2F0b3JT
ZWxlY3Rpb25Dcml0ZXJpYSBzZWxlY3Rpb24geyBBdXRoZW50aWNhdG9yQXR0YWNobWVudDo6UGxh
dGZvcm0sIGZhbHNlLCBVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQ6OlJlcXVpcmVkIH07Cisg
ICAgUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9uczo6QXV0aGVudGljYXRvclNlbGVj
dGlvbkNyaXRlcmlhIHNlbGVjdGlvbiB7IEF1dGhlbnRpY2F0b3JBdHRhY2htZW50OjpQbGF0Zm9y
bSwgc3RkOjpudWxsb3B0LCBmYWxzZSwgVXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50OjpSZXF1
aXJlZCB9OwogCiAgICAgUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucyBvcHRpb25z
IHsgcnAsIHVzZXIsIHsgfSwgcGFyYW1zLCBzdGQ6Om51bGxvcHQsIHsgfSwgc2VsZWN0aW9uLCBB
dHRlc3RhdGlvbkNvbnZleWFuY2VQcmVmZXJlbmNlOjpOb25lLCBzdGQ6Om51bGxvcHQgfTsKICAg
ICBWZWN0b3I8dWludDhfdD4gaGFzaDsKICAgICBoYXNoLmFwcGVuZChUZXN0RGF0YTo6a0NsaWVu
dERhdGFIYXNoLCBzaXplb2YoVGVzdERhdGE6OmtDbGllbnREYXRhSGFzaCkpOwotICAgIGF1dG8g
c2VyaWFsaXplZERhdGEgPSBlbmNvZGVNYWtlQ3JlZGVuaXRhbFJlcXVlc3RBc0NCT1IoaGFzaCwg
b3B0aW9ucywgQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnM6OlVzZXJWZXJpZmljYXRpb25B
dmFpbGFiaWxpdHk6OmtOb3RTdXBwb3J0ZWQpOworICAgIGF1dG8gc2VyaWFsaXplZERhdGEgPSBl
bmNvZGVNYWtlQ3JlZGVuaXRhbFJlcXVlc3RBc0NCT1IoaGFzaCwgb3B0aW9ucywgQXV0aGVudGlj
YXRvclN1cHBvcnRlZE9wdGlvbnM6OlVzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHk6OmtOb3RT
dXBwb3J0ZWQsIEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zOjpSZXNpZGVudEtleUF2YWls
YWJpbGl0eTo6a1N1cHBvcnRlZCk7CiAgICAgRVhQRUNUX0VRKHNlcmlhbGl6ZWREYXRhLnNpemUo
KSwgc2l6ZW9mKFRlc3REYXRhOjprQ3RhcE1ha2VDcmVkZW50aWFsUmVxdWVzdFNob3J0KSk7CiAg
ICAgRVhQRUNUX0VRKG1lbWNtcChzZXJpYWxpemVkRGF0YS5kYXRhKCksIFRlc3REYXRhOjprQ3Rh
cE1ha2VDcmVkZW50aWFsUmVxdWVzdFNob3J0LCBzZXJpYWxpemVkRGF0YS5zaXplKCkpLCAwKTsK
IH0KQEAgLTEyOSw3ICsxMjksNyBAQCBURVNUKENUQVBSZXF1ZXN0VGVzdCwgVGVzdENvbnN0cnVj
dE1ha2VDcmVkZW50aWFsUmVxdWVzdFBhcmFtV2l0aFBpbikKICAgICB1c2VyLmRpc3BsYXlOYW1l
ID0gIkpvaG4gUC4gU21pdGgiOwogCiAgICAgVmVjdG9yPFB1YmxpY0tleUNyZWRlbnRpYWxDcmVh
dGlvbk9wdGlvbnM6OlBhcmFtZXRlcnM+IHBhcmFtcyB7IHsgUHVibGljS2V5Q3JlZGVudGlhbFR5
cGU6OlB1YmxpY0tleSwgNyB9LCB7IFB1YmxpY0tleUNyZWRlbnRpYWxUeXBlOjpQdWJsaWNLZXks
IDI1NyB9IH07Ci0gICAgUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9uczo6QXV0aGVu
dGljYXRvclNlbGVjdGlvbkNyaXRlcmlhIHNlbGVjdGlvbiB7IEF1dGhlbnRpY2F0b3JBdHRhY2ht
ZW50OjpQbGF0Zm9ybSwgdHJ1ZSwgVXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50OjpQcmVmZXJy
ZWQgfTsKKyAgICBQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zOjpBdXRoZW50aWNh
dG9yU2VsZWN0aW9uQ3JpdGVyaWEgc2VsZWN0aW9uIHsgQXV0aGVudGljYXRvckF0dGFjaG1lbnQ6
OlBsYXRmb3JtLCBzdGQ6Om51bGxvcHQsIHRydWUsIFVzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVu
dDo6UHJlZmVycmVkIH07CiAKICAgICBQaW5QYXJhbWV0ZXJzIHBpbjsKICAgICBwaW4ucHJvdG9j
b2wgPSBwaW46OmtQcm90b2NvbFZlcnNpb247CkBAIC0xMzgsMTEgKzEzOCw4NCBAQCBURVNUKENU
QVBSZXF1ZXN0VGVzdCwgVGVzdENvbnN0cnVjdE1ha2VDcmVkZW50aWFsUmVxdWVzdFBhcmFtV2l0
aFBpbikKICAgICBQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zIG9wdGlvbnMgeyBy
cCwgdXNlciwgeyB9LCBwYXJhbXMsIHN0ZDo6bnVsbG9wdCwgeyB9LCBzZWxlY3Rpb24sIEF0dGVz
dGF0aW9uQ29udmV5YW5jZVByZWZlcmVuY2U6Ok5vbmUsIHN0ZDo6bnVsbG9wdCB9OwogICAgIFZl
Y3Rvcjx1aW50OF90PiBoYXNoOwogICAgIGhhc2guYXBwZW5kKFRlc3REYXRhOjprQ2xpZW50RGF0
YUhhc2gsIHNpemVvZihUZXN0RGF0YTo6a0NsaWVudERhdGFIYXNoKSk7Ci0gICAgYXV0byBzZXJp
YWxpemVkRGF0YSA9IGVuY29kZU1ha2VDcmVkZW5pdGFsUmVxdWVzdEFzQ0JPUihoYXNoLCBvcHRp
b25zLCBBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9uczo6VXNlclZlcmlmaWNhdGlvbkF2YWls
YWJpbGl0eTo6a1N1cHBvcnRlZEFuZENvbmZpZ3VyZWQsIHBpbik7CisgICAgYXV0byBzZXJpYWxp
emVkRGF0YSA9IGVuY29kZU1ha2VDcmVkZW5pdGFsUmVxdWVzdEFzQ0JPUihoYXNoLCBvcHRpb25z
LCBBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9uczo6VXNlclZlcmlmaWNhdGlvbkF2YWlsYWJp
bGl0eTo6a1N1cHBvcnRlZEFuZENvbmZpZ3VyZWQsIEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRp
b25zOjpSZXNpZGVudEtleUF2YWlsYWJpbGl0eTo6a1N1cHBvcnRlZCwgcGluKTsKICAgICBFWFBF
Q1RfRVEoc2VyaWFsaXplZERhdGEuc2l6ZSgpLCBzaXplb2YoVGVzdERhdGE6OmtDdGFwTWFrZUNy
ZWRlbnRpYWxSZXF1ZXN0V2l0aFBpbikpOwogICAgIEVYUEVDVF9FUShtZW1jbXAoc2VyaWFsaXpl
ZERhdGEuZGF0YSgpLCBUZXN0RGF0YTo6a0N0YXBNYWtlQ3JlZGVudGlhbFJlcXVlc3RXaXRoUGlu
LCBzZXJpYWxpemVkRGF0YS5zaXplKCkpLCAwKTsKIH0KIAorVEVTVChDVEFQUmVxdWVzdFRlc3Qs
IFRlc3RDb25zdHJ1Y3RNYWtlQ3JlZGVudGlhbFJlcXVlc3RSS1ByZWZlcnJlZCkKK3sKKyAgICBQ
dWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zOjpScEVudGl0eSBycDsKKyAgICBycC5u
YW1lID0gIkFjbWUiOworICAgIHJwLmlkID0gImFjbWUuY29tIjsKKworICAgIFB1YmxpY0tleUNy
ZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnM6OlVzZXJFbnRpdHkgdXNlcjsKKyAgICB1c2VyLm5hbWUg
PSAiam9obnBzbWl0aEBleGFtcGxlLmNvbSI7CisgICAgdXNlci5pY29uID0gImh0dHBzOi8vcGlj
cy5hY21lLmNvbS8wMC9wL2FCampqcHFQYi5wbmciOworICAgIHVzZXIuaWQgPSBXZWJDb3JlOjp0
b0J1ZmZlclNvdXJjZShUZXN0RGF0YTo6a1VzZXJJZCwgc2l6ZW9mKFRlc3REYXRhOjprVXNlcklk
KSk7CisgICAgdXNlci5kaXNwbGF5TmFtZSA9ICJKb2huIFAuIFNtaXRoIjsKKworICAgIFZlY3Rv
cjxQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zOjpQYXJhbWV0ZXJzPiBwYXJhbXMg
eyB7IFB1YmxpY0tleUNyZWRlbnRpYWxUeXBlOjpQdWJsaWNLZXksIDcgfSwgeyBQdWJsaWNLZXlD
cmVkZW50aWFsVHlwZTo6UHVibGljS2V5LCAyNTcgfSB9OworICAgIFB1YmxpY0tleUNyZWRlbnRp
YWxDcmVhdGlvbk9wdGlvbnM6OkF1dGhlbnRpY2F0b3JTZWxlY3Rpb25Dcml0ZXJpYSBzZWxlY3Rp
b24geyBBdXRoZW50aWNhdG9yQXR0YWNobWVudDo6UGxhdGZvcm0sIFJlc2lkZW50S2V5UmVxdWly
ZW1lbnQ6OlByZWZlcnJlZCwgdHJ1ZSwgVXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50OjpQcmVm
ZXJyZWQgfTsKKworICAgIFBpblBhcmFtZXRlcnMgcGluOworICAgIHBpbi5wcm90b2NvbCA9IHBp
bjo6a1Byb3RvY29sVmVyc2lvbjsKKyAgICBwaW4uYXV0aC5hcHBlbmQoVGVzdERhdGE6OmtDdGFw
MlBpbkF1dGgsIHNpemVvZihUZXN0RGF0YTo6a0N0YXAyUGluQXV0aCkpOworCisgICAgUHVibGlj
S2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucyBvcHRpb25zIHsgcnAsIHVzZXIsIHsgfSwgcGFy
YW1zLCBzdGQ6Om51bGxvcHQsIHsgfSwgc2VsZWN0aW9uLCBBdHRlc3RhdGlvbkNvbnZleWFuY2VQ
cmVmZXJlbmNlOjpOb25lLCBzdGQ6Om51bGxvcHQgfTsKKyAgICBWZWN0b3I8dWludDhfdD4gaGFz
aDsKKyAgICBoYXNoLmFwcGVuZChUZXN0RGF0YTo6a0NsaWVudERhdGFIYXNoLCBzaXplb2YoVGVz
dERhdGE6OmtDbGllbnREYXRhSGFzaCkpOworICAgIGF1dG8gc2VyaWFsaXplZERhdGEgPSBlbmNv
ZGVNYWtlQ3JlZGVuaXRhbFJlcXVlc3RBc0NCT1IoaGFzaCwgb3B0aW9ucywgQXV0aGVudGljYXRv
clN1cHBvcnRlZE9wdGlvbnM6OlVzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHk6OmtTdXBwb3J0
ZWRBbmRDb25maWd1cmVkLCBBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9uczo6UmVzaWRlbnRL
ZXlBdmFpbGFiaWxpdHk6OmtTdXBwb3J0ZWQsIHBpbik7CisgICAgRVhQRUNUX0VRKHNlcmlhbGl6
ZWREYXRhLnNpemUoKSwgc2l6ZW9mKFRlc3REYXRhOjprQ3RhcE1ha2VDcmVkZW50aWFsUmVxdWVz
dFdpdGhQaW4pKTsKKyAgICBFWFBFQ1RfRVEobWVtY21wKHNlcmlhbGl6ZWREYXRhLmRhdGEoKSwg
VGVzdERhdGE6OmtDdGFwTWFrZUNyZWRlbnRpYWxSZXF1ZXN0V2l0aFBpbiwgc2VyaWFsaXplZERh
dGEuc2l6ZSgpKSwgMCk7Cit9CisKK1RFU1QoQ1RBUFJlcXVlc3RUZXN0LCBUZXN0Q29uc3RydWN0
TWFrZUNyZWRlbnRpYWxSZXF1ZXN0UktQcmVmZXJyZWROb3RTdXBwb3J0ZWQpCit7CisgICAgUHVi
bGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9uczo6UnBFbnRpdHkgcnA7CisgICAgcnAubmFt
ZSA9ICJBY21lIjsKKyAgICBycC5pZCA9ICJhY21lLmNvbSI7CisKKyAgICBQdWJsaWNLZXlDcmVk
ZW50aWFsQ3JlYXRpb25PcHRpb25zOjpVc2VyRW50aXR5IHVzZXI7CisgICAgdXNlci5uYW1lID0g
ImpvaG5wc21pdGhAZXhhbXBsZS5jb20iOworICAgIHVzZXIuaWNvbiA9ICJodHRwczovL3BpY3Mu
YWNtZS5jb20vMDAvcC9hQmpqanBxUGIucG5nIjsKKyAgICB1c2VyLmlkID0gV2ViQ29yZTo6dG9C
dWZmZXJTb3VyY2UoVGVzdERhdGE6OmtVc2VySWQsIHNpemVvZihUZXN0RGF0YTo6a1VzZXJJZCkp
OworICAgIHVzZXIuZGlzcGxheU5hbWUgPSAiSm9obiBQLiBTbWl0aCI7CisKKyAgICBWZWN0b3I8
UHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9uczo6UGFyYW1ldGVycz4gcGFyYW1zIHsg
eyBQdWJsaWNLZXlDcmVkZW50aWFsVHlwZTo6UHVibGljS2V5LCA3IH0sIHsgUHVibGljS2V5Q3Jl
ZGVudGlhbFR5cGU6OlB1YmxpY0tleSwgMjU3IH0gfTsKKyAgICBQdWJsaWNLZXlDcmVkZW50aWFs
Q3JlYXRpb25PcHRpb25zOjpBdXRoZW50aWNhdG9yU2VsZWN0aW9uQ3JpdGVyaWEgc2VsZWN0aW9u
IHsgQXV0aGVudGljYXRvckF0dGFjaG1lbnQ6OlBsYXRmb3JtLCBSZXNpZGVudEtleVJlcXVpcmVt
ZW50OjpQcmVmZXJyZWQsIHRydWUsIFVzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudDo6UmVxdWly
ZWQgfTsKKworICAgIFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMgb3B0aW9ucyB7
IHJwLCB1c2VyLCB7IH0sIHBhcmFtcywgc3RkOjpudWxsb3B0LCB7IH0sIHNlbGVjdGlvbiwgQXR0
ZXN0YXRpb25Db252ZXlhbmNlUHJlZmVyZW5jZTo6Tm9uZSwgc3RkOjpudWxsb3B0IH07CisgICAg
VmVjdG9yPHVpbnQ4X3Q+IGhhc2g7CisgICAgaGFzaC5hcHBlbmQoVGVzdERhdGE6OmtDbGllbnRE
YXRhSGFzaCwgc2l6ZW9mKFRlc3REYXRhOjprQ2xpZW50RGF0YUhhc2gpKTsKKyAgICBhdXRvIHNl
cmlhbGl6ZWREYXRhID0gZW5jb2RlTWFrZUNyZWRlbml0YWxSZXF1ZXN0QXNDQk9SKGhhc2gsIG9w
dGlvbnMsIEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zOjpVc2VyVmVyaWZpY2F0aW9uQXZh
aWxhYmlsaXR5OjprTm90U3VwcG9ydGVkLCBBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9uczo6
UmVzaWRlbnRLZXlBdmFpbGFiaWxpdHk6OmtOb3RTdXBwb3J0ZWQpOworICAgIEVYUEVDVF9FUShz
ZXJpYWxpemVkRGF0YS5zaXplKCksIHNpemVvZihUZXN0RGF0YTo6a0N0YXBNYWtlQ3JlZGVudGlh
bFJlcXVlc3RTaG9ydCkpOworICAgIEVYUEVDVF9FUShtZW1jbXAoc2VyaWFsaXplZERhdGEuZGF0
YSgpLCBUZXN0RGF0YTo6a0N0YXBNYWtlQ3JlZGVudGlhbFJlcXVlc3RTaG9ydCwgc2VyaWFsaXpl
ZERhdGEuc2l6ZSgpKSwgMCk7Cit9CisKK1RFU1QoQ1RBUFJlcXVlc3RUZXN0LCBUZXN0Q29uc3Ry
dWN0TWFrZUNyZWRlbnRpYWxSZXF1ZXN0UktEaXNjb3VyYWdlZCkKK3sKKyAgICBQdWJsaWNLZXlD
cmVkZW50aWFsQ3JlYXRpb25PcHRpb25zOjpScEVudGl0eSBycDsKKyAgICBycC5uYW1lID0gIkFj
bWUiOworICAgIHJwLmlkID0gImFjbWUuY29tIjsKKworICAgIFB1YmxpY0tleUNyZWRlbnRpYWxD
cmVhdGlvbk9wdGlvbnM6OlVzZXJFbnRpdHkgdXNlcjsKKyAgICB1c2VyLm5hbWUgPSAiam9obnBz
bWl0aEBleGFtcGxlLmNvbSI7CisgICAgdXNlci5pY29uID0gImh0dHBzOi8vcGljcy5hY21lLmNv
bS8wMC9wL2FCampqcHFQYi5wbmciOworICAgIHVzZXIuaWQgPSBXZWJDb3JlOjp0b0J1ZmZlclNv
dXJjZShUZXN0RGF0YTo6a1VzZXJJZCwgc2l6ZW9mKFRlc3REYXRhOjprVXNlcklkKSk7CisgICAg
dXNlci5kaXNwbGF5TmFtZSA9ICJKb2huIFAuIFNtaXRoIjsKKworICAgIFZlY3RvcjxQdWJsaWNL
ZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zOjpQYXJhbWV0ZXJzPiBwYXJhbXMgeyB7IFB1Ymxp
Y0tleUNyZWRlbnRpYWxUeXBlOjpQdWJsaWNLZXksIDcgfSwgeyBQdWJsaWNLZXlDcmVkZW50aWFs
VHlwZTo6UHVibGljS2V5LCAyNTcgfSB9OworICAgIFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlv
bk9wdGlvbnM6OkF1dGhlbnRpY2F0b3JTZWxlY3Rpb25Dcml0ZXJpYSBzZWxlY3Rpb24geyBBdXRo
ZW50aWNhdG9yQXR0YWNobWVudDo6UGxhdGZvcm0sIFJlc2lkZW50S2V5UmVxdWlyZW1lbnQ6OkRp
c2NvdXJhZ2VkLCB0cnVlLCBVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQ6OlJlcXVpcmVkIH07
CisKKyAgICBQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zIG9wdGlvbnMgeyBycCwg
dXNlciwgeyB9LCBwYXJhbXMsIHN0ZDo6bnVsbG9wdCwgeyB9LCBzZWxlY3Rpb24sIEF0dGVzdGF0
aW9uQ29udmV5YW5jZVByZWZlcmVuY2U6Ok5vbmUsIHN0ZDo6bnVsbG9wdCB9OworICAgIFZlY3Rv
cjx1aW50OF90PiBoYXNoOworICAgIGhhc2guYXBwZW5kKFRlc3REYXRhOjprQ2xpZW50RGF0YUhh
c2gsIHNpemVvZihUZXN0RGF0YTo6a0NsaWVudERhdGFIYXNoKSk7CisgICAgYXV0byBzZXJpYWxp
emVkRGF0YSA9IGVuY29kZU1ha2VDcmVkZW5pdGFsUmVxdWVzdEFzQ0JPUihoYXNoLCBvcHRpb25z
LCBBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9uczo6VXNlclZlcmlmaWNhdGlvbkF2YWlsYWJp
bGl0eTo6a05vdFN1cHBvcnRlZCwgQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnM6OlJlc2lk
ZW50S2V5QXZhaWxhYmlsaXR5OjprU3VwcG9ydGVkKTsKKyAgICBFWFBFQ1RfRVEoc2VyaWFsaXpl
ZERhdGEuc2l6ZSgpLCBzaXplb2YoVGVzdERhdGE6OmtDdGFwTWFrZUNyZWRlbnRpYWxSZXF1ZXN0
U2hvcnQpKTsKKyAgICBFWFBFQ1RfRVEobWVtY21wKHNlcmlhbGl6ZWREYXRhLmRhdGEoKSwgVGVz
dERhdGE6OmtDdGFwTWFrZUNyZWRlbnRpYWxSZXF1ZXN0U2hvcnQsIHNlcmlhbGl6ZWREYXRhLnNp
emUoKSksIDApOworfQorCiBURVNUKENUQVBSZXF1ZXN0VGVzdCwgVGVzdENvbnN0cnVjdEdldEFz
c2VydGlvblJlcXVlc3QpCiB7CiAgICAgUHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25z
IG9wdGlvbnM7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUv
Q3RhcFJlc3BvbnNlVGVzdC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUv
Q3RhcFJlc3BvbnNlVGVzdC5jcHAKaW5kZXggNTUyMWM1YmVjODQ0NGQ2NmVkZjM3YzcyOTdiMmVk
Y2ZlNjE2YjlmNS4uMTdjNTBiMWMxMzMzZGFjOWM5NmE5ZDQ0MDIwODk4Y2Q4ZjYxNTQxNiAxMDA2
NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0N0YXBSZXNwb25zZVRl
c3QuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9DdGFwUmVzcG9u
c2VUZXN0LmNwcApAQCAtNTg5LDcgKzU4OSw3IEBAIFRFU1QoQ1RBUFJlc3BvbnNlVGVzdCwgVGVz
dFJlYWRHZXRJbmZvUmVzcG9uc2UpCiAgICAgRVhQRUNUX05FKGdldEluZm9SZXNwb25zZS0+dmVy
c2lvbnMoKS5maW5kKFByb3RvY29sVmVyc2lvbjo6a0N0YXApLCBnZXRJbmZvUmVzcG9uc2UtPnZl
cnNpb25zKCkuZW5kKCkpOwogICAgIEVYUEVDVF9ORShnZXRJbmZvUmVzcG9uc2UtPnZlcnNpb25z
KCkuZmluZChQcm90b2NvbFZlcnNpb246OmtVMmYpLCBnZXRJbmZvUmVzcG9uc2UtPnZlcnNpb25z
KCkuZW5kKCkpOwogICAgIEVYUEVDVF9UUlVFKGdldEluZm9SZXNwb25zZS0+b3B0aW9ucygpLmlz
UGxhdGZvcm1EZXZpY2UoKSk7Ci0gICAgRVhQRUNUX1RSVUUoZ2V0SW5mb1Jlc3BvbnNlLT5vcHRp
b25zKCkuc3VwcG9ydHNSZXNpZGVudEtleSgpKTsKKyAgICBFWFBFQ1RfRVEoQXV0aGVudGljYXRv
clN1cHBvcnRlZE9wdGlvbnM6OlJlc2lkZW50S2V5QXZhaWxhYmlsaXR5OjprU3VwcG9ydGVkLCBn
ZXRJbmZvUmVzcG9uc2UtPm9wdGlvbnMoKS5yZXNpZGVudEtleUF2YWlsYWJpbGl0eSgpKTsKICAg
ICBFWFBFQ1RfVFJVRShnZXRJbmZvUmVzcG9uc2UtPm9wdGlvbnMoKS51c2VyUHJlc2VuY2VSZXF1
aXJlZCgpKTsKICAgICBFWFBFQ1RfRVEoQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnM6OlVz
ZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHk6OmtTdXBwb3J0ZWRBbmRDb25maWd1cmVkLCBnZXRJ
bmZvUmVzcG9uc2UtPm9wdGlvbnMoKS51c2VyVmVyaWZpY2F0aW9uQXZhaWxhYmlsaXR5KCkpOwog
ICAgIEVYUEVDVF9FUShBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9uczo6Q2xpZW50UGluQXZh
aWxhYmlsaXR5OjprU3VwcG9ydGVkQnV0UGluTm90U2V0LCBnZXRJbmZvUmVzcG9uc2UtPm9wdGlv
bnMoKS5jbGllbnRQaW5BdmFpbGFiaWxpdHkoKSk7CkBAIC02MDQsNyArNjA0LDcgQEAgVEVTVChD
VEFQUmVzcG9uc2VUZXN0LCBUZXN0UmVhZEdldEluZm9SZXNwb25zZTIpCiAgICAgRVhQRUNUX05F
KGdldEluZm9SZXNwb25zZS0+dmVyc2lvbnMoKS5maW5kKFByb3RvY29sVmVyc2lvbjo6a0N0YXAp
LCBnZXRJbmZvUmVzcG9uc2UtPnZlcnNpb25zKCkuZW5kKCkpOwogICAgIEVYUEVDVF9ORShnZXRJ
bmZvUmVzcG9uc2UtPnZlcnNpb25zKCkuZmluZChQcm90b2NvbFZlcnNpb246OmtVMmYpLCBnZXRJ
bmZvUmVzcG9uc2UtPnZlcnNpb25zKCkuZW5kKCkpOwogICAgIEVYUEVDVF9UUlVFKGdldEluZm9S
ZXNwb25zZS0+b3B0aW9ucygpLmlzUGxhdGZvcm1EZXZpY2UoKSk7Ci0gICAgRVhQRUNUX1RSVUUo
Z2V0SW5mb1Jlc3BvbnNlLT5vcHRpb25zKCkuc3VwcG9ydHNSZXNpZGVudEtleSgpKTsKKyAgICBF
WFBFQ1RfRVEoQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnM6OlJlc2lkZW50S2V5QXZhaWxh
YmlsaXR5OjprU3VwcG9ydGVkLCBnZXRJbmZvUmVzcG9uc2UtPm9wdGlvbnMoKS5yZXNpZGVudEtl
eUF2YWlsYWJpbGl0eSgpKTsKICAgICBFWFBFQ1RfVFJVRShnZXRJbmZvUmVzcG9uc2UtPm9wdGlv
bnMoKS51c2VyUHJlc2VuY2VSZXF1aXJlZCgpKTsKICAgICBFWFBFQ1RfRVEoQXV0aGVudGljYXRv
clN1cHBvcnRlZE9wdGlvbnM6OlVzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHk6OmtTdXBwb3J0
ZWRBbmRDb25maWd1cmVkLCBnZXRJbmZvUmVzcG9uc2UtPm9wdGlvbnMoKS51c2VyVmVyaWZpY2F0
aW9uQXZhaWxhYmlsaXR5KCkpOwogICAgIEVYUEVDVF9FUShBdXRoZW50aWNhdG9yU3VwcG9ydGVk
T3B0aW9uczo6Q2xpZW50UGluQXZhaWxhYmlsaXR5OjprU3VwcG9ydGVkQnV0UGluTm90U2V0LCBn
ZXRJbmZvUmVzcG9uc2UtPm9wdGlvbnMoKS5jbGllbnRQaW5BdmFpbGFiaWxpdHkoKSk7CkBAIC02
MjIsNyArNjIyLDcgQEAgVEVTVChDVEFQUmVzcG9uc2VUZXN0LCBUZXN0U2VyaWFsaXplR2V0SW5m
b1Jlc3BvbnNlKQogICAgIEF1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2UgcmVzcG9uc2UoeyBQ
cm90b2NvbFZlcnNpb246OmtDdGFwLCBQcm90b2NvbFZlcnNpb246OmtVMmYgfSwgY29udmVydEJ5
dGVzVG9WZWN0b3Ioa1Rlc3REZXZpY2VBYWd1aWQsIHNpemVvZihrVGVzdERldmljZUFhZ3VpZCkp
KTsKICAgICByZXNwb25zZS5zZXRFeHRlbnNpb25zKHsgInV2bSIsICJobWFjLXNlY3JldCIgfSk7
CiAgICAgQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnMgb3B0aW9uczsKLSAgICBvcHRpb25z
LnNldFN1cHBvcnRzUmVzaWRlbnRLZXkodHJ1ZSk7CisgICAgb3B0aW9ucy5zZXRSZXNpZGVudEtl
eUF2YWlsYWJpbGl0eShBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9uczo6UmVzaWRlbnRLZXlB
dmFpbGFiaWxpdHk6OmtTdXBwb3J0ZWQpOwogICAgIG9wdGlvbnMuc2V0SXNQbGF0Zm9ybURldmlj
ZSh0cnVlKTsKICAgICBvcHRpb25zLnNldENsaWVudFBpbkF2YWlsYWJpbGl0eShBdXRoZW50aWNh
dG9yU3VwcG9ydGVkT3B0aW9uczo6Q2xpZW50UGluQXZhaWxhYmlsaXR5OjprU3VwcG9ydGVkQnV0
UGluTm90U2V0KTsKICAgICBvcHRpb25zLnNldFVzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHko
QXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnM6OlVzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxp
dHk6OmtTdXBwb3J0ZWRBbmRDb25maWd1cmVkKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>454138</attachid>
            <date>2022-03-08 11:47:47 -0800</date>
            <delta_ts>2022-03-10 11:17:43 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237567-20220308114746.patch</filename>
            <type>text/plain</type>
            <size>57887</size>
            <attacher name="pascoe@apple.com">pascoe</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwOTk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTAxYTRiNGM0NzRjMzEw
NDhkMzMzNmMxZDFiMjE5NTg4YjBmZTU3Mi4uZmRlMDI4Y2M0Y2VjNGZlMzdkYTU4M2M2ZGU5ZGVj
Nzc3MjgyNzRlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDIyLTAzLTA4ICBKIFBh
c2NvZSAgPGpfcGFzY29lQGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViQXV0aG5dIFN1cHBvcnQg
YXV0aGVudGljYXRvclNlbGVjdGlvbi5yZXNpZGVudEtleSBSZXNpZGVudEtleVJlcXVpcmVtZW50
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzc1NjcK
KyAgICAgICAgcmRhcjovLzg5Nzg4Mzc4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgSW4gV2ViIEF1dGhlbnRpY2F0aW9uIGxldmVsIG9uZSwgcmVseWlu
ZyBwYXJ0aWVzIGNhbiBzcGVjaWZ5IGF1dGhlbnRpY2F0b3JTZWxlY3Rpb24ucmVzaWRlbnRLZXlS
ZXF1aXJlZCwKKyAgICAgICAgdG8gc2lnbmlmeSB0aGV5IHJlcXVpcmUgYSBjbGllbnQtc2lkZSBk
aXNjb3ZlcmFibGUgY3JlZGVudGlhbC4gSG93ZXZlciwgaWYgdGhlIGF1dGhlbnRpY2F0b3IgZG9l
cyBub3QKKyAgICAgICAgc3VwcG9ydCBjbGllbnQtc2lkZSBkaXNjb3ZlcmFibGUgY3JlZGVudGlh
bHMsIHRoZSBycCBoYXMgbm8gd2F5IHRvIGNsYXJpZnkgdGhleSB3YW50IGEgY2xpZW50LXNpZGUK
KyAgICAgICAgZGlzY292ZXJhYmxlIGNyZWRlbnRpYWwgb25seSBpZiBhdmFpbGFibGUuCisKKyAg
ICAgICAgVGhpcyBwYXRjaCBpbXBsZW1lbnRzIGF1dGhlbnRpY2F0b3JTZWxlY3Rpb24ucmVzaWRl
bnRLZXlSZXF1aXJlZCBpbnRyb2R1Y2VkIGluIGxldmVsIDIsIHdoaWNoIGhhcyB0aHJlZQorICAg
ICAgICB2YWx1ZXMgJ1ByZWZlcnJlZCcsICdSZXF1aXJlZCcsIGFuZCAnRGlzY291cmFnZWQnLiBU
aGlzIGFsbG93cyBSUHMgdG8gY3JlYXRlIGEgY2xpZW50LXNpZGUgZGlzY292ZXJhYmxlCisgICAg
ICAgIGNyZWRlbnRpYWwgaWYgcG9zc2libGUuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoK
KyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERl
cml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2Vz
Lm1ha2U6CisgICAgICAgICogTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50aWFsQ3Jl
YXRpb25PcHRpb25zLmg6CisgICAgICAgIChXZWJDb3JlOjpQdWJsaWNLZXlDcmVkZW50aWFsQ3Jl
YXRpb25PcHRpb25zOjpBdXRoZW50aWNhdG9yU2VsZWN0aW9uQ3JpdGVyaWE6OmVuY29kZSBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25z
OjpBdXRoZW50aWNhdG9yU2VsZWN0aW9uQ3JpdGVyaWE6OmRlY29kZSk6CisgICAgICAgICogTW9k
dWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zLmlkbDoKKyAg
ICAgICAgKiBNb2R1bGVzL3dlYmF1dGhuL1Jlc2lkZW50S2V5UmVxdWlyZW1lbnQuaDogQ29waWVk
IGZyb20gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0F1dGhlbnRpY2F0b3JT
ZWxlY3Rpb25Dcml0ZXJpYS5tbS4KKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1dGhuL1Jlc2lkZW50
S2V5UmVxdWlyZW1lbnQuaWRsOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvX1dLQXV0aGVudGljYXRvclNlbGVjdGlvbkNyaXRlcmlhLm1tLgorICAgICAgICAq
IE1vZHVsZXMvd2ViYXV0aG4vZmlkby9BdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9ucy5jcHA6
CisgICAgICAgIChmaWRvOjpBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9uczo6c2V0UmVzaWRl
bnRLZXlBdmFpbGFiaWxpdHkpOgorICAgICAgICAoZmlkbzo6Y29udmVydFRvQ0JPUik6CisgICAg
ICAgIChmaWRvOjpBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9uczo6c2V0U3VwcG9ydHNSZXNp
ZGVudEtleSk6IERlbGV0ZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJhdXRobi9maWRvL0F1dGhl
bnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zLmg6CisgICAgICAgICogTW9kdWxlcy93ZWJhdXRobi9m
aWRvL0RldmljZVJlcXVlc3RDb252ZXJ0ZXIuY3BwOgorICAgICAgICAoZmlkbzo6ZW5jb2RlTWFr
ZUNyZWRlbml0YWxSZXF1ZXN0QXNDQk9SKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1dGhuL2Zp
ZG8vRGV2aWNlUmVxdWVzdENvbnZlcnRlci5oOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXV0aG4v
Zmlkby9EZXZpY2VSZXNwb25zZUNvbnZlcnRlci5jcHA6CisgICAgICAgIChmaWRvOjpyZWFkQ1RB
UEdldEluZm9SZXNwb25zZSk6CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorCiAyMDIyLTAzLTA4ICBBbGV4IENocmlz
dGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgV2ViU29ja2V0LnNl
bmQoKSBzaG91bGQgc3luY2hyb25vdXNseSB1cGRhdGUgYnVmZmVyZWRBbW91bnQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5k
ZXggOTFlOGY5MDA5MWMxOWYwYjYyODJiOTIyNWJiODJlYWJmNjRjYWQxOC4uMzBmMjA3M2QzYWMx
ZDFmZjE2NzE3MjM0NDYxNjQ4OWJmNzE4YTVlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMyBAQAor
MjAyMi0wMy0wOCAgSiBQYXNjb2UgIDxqX3Bhc2NvZUBhcHBsZS5jb20+CisKKyAgICAgICAgW1dl
YkF1dGhuXSBTdXBwb3J0IGF1dGhlbnRpY2F0b3JTZWxlY3Rpb24ucmVzaWRlbnRLZXkgUmVzaWRl
bnRLZXlSZXF1aXJlbWVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjM3NTY3CisgICAgICAgIHJkYXI6Ly84OTc4ODM3OAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluIFdlYiBBdXRoZW50aWNhdGlvbiBs
ZXZlbCBvbmUsIHJlbHlpbmcgcGFydGllcyBjYW4gc3BlY2lmeSBhdXRoZW50aWNhdG9yU2VsZWN0
aW9uLnJlc2lkZW50S2V5UmVxdWlyZWQsCisgICAgICAgIHRvIHNpZ25pZnkgdGhleSByZXF1aXJl
IGEgY2xpZW50LXNpZGUgZGlzY292ZXJhYmxlIGNyZWRlbnRpYWwuIEhvd2V2ZXIsIGlmIHRoZSBh
dXRoZW50aWNhdG9yIGRvZXMgbm90CisgICAgICAgIHN1cHBvcnQgY2xpZW50LXNpZGUgZGlzY292
ZXJhYmxlIGNyZWRlbnRpYWxzLCB0aGUgcnAgaGFzIG5vIHdheSB0byBjbGFyaWZ5IHRoZXkgd2Fu
dCBhIGNsaWVudC1zaWRlIAorICAgICAgICBkaXNjb3ZlcmFibGUgY3JlZGVudGlhbCBvbmx5IGlm
IGF2YWlsYWJsZS4gCisKKyAgICAgICAgVGhpcyBwYXRjaCBpbXBsZW1lbnRzIGF1dGhlbnRpY2F0
b3JTZWxlY3Rpb24ucmVzaWRlbnRLZXlSZXF1aXJlZCBpbnRyb2R1Y2VkIGluIGxldmVsIDIsIHdo
aWNoIGhhcyB0aHJlZQorICAgICAgICB2YWx1ZXMgJ1ByZWZlcnJlZCcsICdSZXF1aXJlZCcsIGFu
ZCAnRGlzY291cmFnZWQnLiBUaGlzIGFsbG93cyBSUHMgdG8gY3JlYXRlIGEgY2xpZW50LXNpZGUg
ZGlzY292ZXJhYmxlCisgICAgICAgIGNyZWRlbnRpYWwgaWYgcG9zc2libGUuCisKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS0F1dGhlbnRpY2F0b3JTZWxlY3Rpb25Dcml0ZXJpYS5o
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQXV0aGVudGljYXRvclNlbGVjdGlv
bkNyaXRlcmlhLm1tOgorICAgICAgICAoLVtfV0tBdXRoZW50aWNhdG9yU2VsZWN0aW9uQ3JpdGVy
aWEgaW5pdF0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUmVzaWRlbnRLZXlS
ZXF1aXJlbWVudC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvX1dLQXV0aGVudGljYXRvclNlbGVjdGlvbkNyaXRlcmlhLm1tLgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvQ29jb2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5tbToKKyAgICAgICAgKHJl
c2lkZW50S2V5KToKKyAgICAgICAgKGF1dGhlbnRpY2F0b3JTZWxlY3Rpb25Dcml0ZXJpYSk6Cisg
ICAgICAgICgrW19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwgZW5jb2RlTWFrZUNyZWRlbnRpYWxD
b21tYW5kV2l0aENsaWVudERhdGFKU09OOm9wdGlvbnM6dXNlclZlcmlmaWNhdGlvbkF2YWlsYWJp
bGl0eTpdKToKKyAgICAgICAgKCtbX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbCBlbmNvZGVNYWtl
Q3JlZGVudGlhbENvbW1hbmRXaXRoQ2xpZW50RGF0YUhhc2g6b3B0aW9uczp1c2VyVmVyaWZpY2F0
aW9uQXZhaWxhYmlsaXR5Ol0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlv
bi9maWRvL0N0YXBBdXRoZW50aWNhdG9yLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Q3RhcEF1dGhl
bnRpY2F0b3I6Om1ha2VDcmVkZW50aWFsKToKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvajoKKwogMjAyMi0wMy0wOCAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3Rl
bnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIEV4cGFuZCBhZGF0dHJpYnV0aW9uZCBzYW5kYm94
IHRvIHByZXZlbnQgc2FuZGJveCBleGNlcHRpb25zIGR1cmluZyBtYWluIGZ1bmN0aW9uYWxpdHkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKaW5kZXggMmJiODI5Y2Q1OWI4YzA3NWUwMzY2NTVjMjM3Yjg1MDE0
ODFjNGIyZS4uM2Q0OWE5MTY2NTlhNzhkYjM0MGQwYzk1ZWM0NWRlYTBhMjM2MThmNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUv
Q01ha2VMaXN0cy50eHQKQEAgLTY2NSw2ICs2NjUsNyBAQCBzZXQoV2ViQ29yZV9OT05fU1ZHX0lE
TF9GSUxFUwogICAgIE1vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbERlc2NyaXB0
b3IuaWRsCiAgICAgTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9w
dGlvbnMuaWRsCiAgICAgTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50aWFsVHlwZS5p
ZGwKKyAgICBNb2R1bGVzL3dlYmF1dGhuL1Jlc2lkZW50S2V5UmVxdWlyZW1lbnQuaWRsCiAgICAg
TW9kdWxlcy93ZWJhdXRobi9Vc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQuaWRsCiAKICAgICBN
b2R1bGVzL3dlYmNvZGVjcy9WaWRlb0NvbG9yUHJpbWFyaWVzLmlkbApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJD
b3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKaW5kZXggNmJlN2Y0ZjA4MzE4YWVh
OGE1YWUyMTMzYjFlMmZiMTNmNGMxM2JjMy4uMDg1ZGE3MzllM2E4ZTkyMmM2M2Y1Nzc3MTZiYzI5
MDUwZDNiY2ZjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5w
dXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54
Y2ZpbGVsaXN0CkBAIC03NDcsNiArNzQ3LDcgQEAgJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJh
dXRobi9QdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zLmlkbAogJChQUk9KRUNUX0RJ
UikvTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50aWFsRGVzY3JpcHRvci5pZGwKICQo
UFJPSkVDVF9ESVIpL01vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RP
cHRpb25zLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVk
ZW50aWFsVHlwZS5pZGwKKyQoUFJPSkVDVF9ESVIpL01vZHVsZXMvd2ViYXV0aG4vUmVzaWRlbnRL
ZXlSZXF1aXJlbWVudC5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvd2ViYXV0aG4vVXNlclZl
cmlmaWNhdGlvblJlcXVpcmVtZW50LmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJjb2Rl
Y3MvVmlkZW9Db2xvclByaW1hcmllcy5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvd2ViY29k
ZWNzL1ZpZGVvQ29sb3JTcGFjZS5pZGwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2
ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMtb3V0cHV0LnhjZmlsZWxpc3QKaW5kZXggNmMyMDVlNzFkYTRmOTcxOTVjMzdhYmRhMmU5YmQ1
YWMxYzMyZGMwMS4uNGZiNzdiM2RkYmFlZGE4ZWEzYWRiY2Q0YTcwOTdhNTZhNzgwODFkZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QK
KysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKQEAg
LTIxMTIsNiArMjExMiw4IEBAICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJDb3JlL0pTUmVxdWVzdEFuaW1hdGlvbkZyYW1lQ2FsbGJhY2suY3BwCiAkKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1JlcXVlc3RBbmltYXRpb25GcmFtZUNh
bGxiYWNrLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pT
UmVxdWVzdENvb2tpZUNvbnNlbnRPcHRpb25zLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNSZXF1ZXN0Q29va2llQ29uc2VudE9wdGlvbnMuaAorJChC
VUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNSZXNpZGVudEtleVJl
cXVpcmVtZW50LmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvSlNSZXNpZGVudEtleVJlcXVpcmVtZW50LmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJDb3JlL0pTUmVzaXplT2JzZXJ2ZXIuY3BwCiAkKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1Jlc2l6ZU9ic2VydmVyLmgKICQoQlVJTFRf
UFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTUmVzaXplT2JzZXJ2ZXJCb3hP
cHRpb25zLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFr
ZSBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggMjY4MDMyNzBkNjdh
Nzc0NTU5ZWNmMjNkNzViNmJiMDViMDY5Mzg4NS4uZTFiYmMxMmMzMWYwOTk0Mzg3MGJhYzc1NmU0
YjMxYWFmZTUwNzdmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMu
bWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC02NDMsNiAr
NjQzLDcgQEAgSlNfQklORElOR19JRExTIDo9IFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2Vi
YXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbERlc2NyaXB0b3IuaWRsIFwKICAgICAkKFdlYkNvcmUp
L01vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zLmlkbCBc
CiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRlbnRpYWxUeXBl
LmlkbCBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmF1dGhuL1Jlc2lkZW50S2V5UmVxdWly
ZW1lbnQuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViYXV0aG4vVXNlclZlcmlmaWNh
dGlvblJlcXVpcmVtZW50LmlkbCBcCiAJJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmNvZGVjcy9WaWRl
b0NvbG9yUHJpbWFyaWVzLmlkbCBcCiAJJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmNvZGVjcy9WaWRl
b0NvbG9yU3BhY2UuaWRsIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucy5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zLmgK
aW5kZXggOGRmYTdkNzc0OTc4ODdmMDUwNmE3NzI4N2IxNGE0Zjk0NmQ3OTA4My4uY2MxMGFjZTEx
Njg1MThhMzQ5MjA3YzhlNTcxZDc5Y2Y3MGUxYmZhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50aWFs
Q3JlYXRpb25PcHRpb25zLmgKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJCdWZmZXJTb3Vy
Y2UuaCIKICNpbmNsdWRlICJQdWJsaWNLZXlDcmVkZW50aWFsRGVzY3JpcHRvci5oIgogI2luY2x1
ZGUgIlB1YmxpY0tleUNyZWRlbnRpYWxUeXBlLmgiCisjaW5jbHVkZSAiUmVzaWRlbnRLZXlSZXF1
aXJlbWVudC5oIgogI2luY2x1ZGUgIlVzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudC5oIgogI2lu
Y2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjZW5kaWYgLy8gRU5BQkxFKFdFQl9BVVRITikKQEAgLTY1
LDYgKzY2LDcgQEAgc3RydWN0IFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMgewog
CiAgICAgc3RydWN0IEF1dGhlbnRpY2F0b3JTZWxlY3Rpb25Dcml0ZXJpYSB7CiAgICAgICAgIHN0
ZDo6b3B0aW9uYWw8QXV0aGVudGljYXRvckF0dGFjaG1lbnQ+IGF1dGhlbnRpY2F0b3JBdHRhY2ht
ZW50OworICAgICAgICBzdGQ6Om9wdGlvbmFsPFJlc2lkZW50S2V5UmVxdWlyZW1lbnQ+IHJlc2lk
ZW50S2V5OwogICAgICAgICBib29sIHJlcXVpcmVSZXNpZGVudEtleSB7IGZhbHNlIH07CiAgICAg
ICAgIFVzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudCB1c2VyVmVyaWZpY2F0aW9uIHsgVXNlclZl
cmlmaWNhdGlvblJlcXVpcmVtZW50OjpQcmVmZXJyZWQgfTsKIApAQCAtMTEwLDcgKzExMiw3IEBA
IHN0ZDo6b3B0aW9uYWw8UHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9uczo6UGFyYW1l
dGVycz4gUHVibGljS2V5Q3JlZGVudGlhCiB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgogdm9pZCBQ
dWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zOjpBdXRoZW50aWNhdG9yU2VsZWN0aW9u
Q3JpdGVyaWE6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewotICAgIGVuY29kZXIg
PDwgYXV0aGVudGljYXRvckF0dGFjaG1lbnQgPDwgcmVxdWlyZVJlc2lkZW50S2V5IDw8IHVzZXJW
ZXJpZmljYXRpb247CisgICAgZW5jb2RlciA8PCBhdXRoZW50aWNhdG9yQXR0YWNobWVudCA8PCBy
ZXF1aXJlUmVzaWRlbnRLZXkgPDwgdXNlclZlcmlmaWNhdGlvbiA8PCByZXNpZGVudEtleTsKIH0K
IAogdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KQEAgLTEzMiw2ICsxMzQsMTIgQEAgc3RkOjpvcHRp
b25hbDxQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zOjpBdXRoZW50aWNhdG9yU2Vs
ZWN0aW9uQ3JpdGVyaWEKIAogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LnVzZXJWZXJp
ZmljYXRpb24pKQogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgIAorICAgIHN0ZDo6
b3B0aW9uYWw8c3RkOjpvcHRpb25hbDxSZXNpZGVudEtleVJlcXVpcmVtZW50Pj4gcmVzaWRlbnRL
ZXk7CisgICAgZGVjb2RlciA+PiByZXNpZGVudEtleTsKKyAgICBpZiAoIXJlc2lkZW50S2V5KQor
ICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVk
ZW50aWFsQ3JlYXRpb25PcHRpb25zLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0
aG4vUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucy5pZGwKaW5kZXggY2U2NjVmNDEz
Mzg4ODI5NDc5ZWZlNjFkNDVkNTk0MjY1NTczNTk1Ni4uZTc1ZmNlMTk5ZmRhYTNiMWIyODBmYjg5
MmI3MjA2MTc1MDZmMjUzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dXRobi9QdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zLmlkbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlv
bnMuaWRsCkBAIC03Miw2ICs3Miw3IEBAIHR5cGVkZWYgbG9uZyBDT1NFQWxnb3JpdGhtSWRlbnRp
ZmllcjsKICAgICBDb25kaXRpb25hbD1XRUJfQVVUSE4sCiBdIGRpY3Rpb25hcnkgQXV0aGVudGlj
YXRvclNlbGVjdGlvbkNyaXRlcmlhIHsKICAgICBBdXRoZW50aWNhdG9yQXR0YWNobWVudCAgICAg
IGF1dGhlbnRpY2F0b3JBdHRhY2htZW50OworICAgIFJlc2lkZW50S2V5UmVxdWlyZW1lbnQgICAg
ICAgcmVzaWRlbnRLZXk7CiAgICAgYm9vbGVhbiAgICAgICAgICAgICAgICAgICAgICByZXF1aXJl
UmVzaWRlbnRLZXkgPSBmYWxzZTsKICAgICBVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQgIHVz
ZXJWZXJpZmljYXRpb24gPSAicHJlZmVycmVkIjsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1dGhuL1Jlc2lkZW50S2V5UmVxdWlyZW1lbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vUmVzaWRlbnRLZXlSZXF1aXJlbWVudC5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjBiNGMyMjc5ZTg4Yjg4ZGJjOTA1Y2U0Nzg3OTFhYmRlODhkNTg4MjAKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL1Jlc2lkZW50S2V5UmVxdWly
ZW1lbnQuaApAQCAtMCwwICsxLDU1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIyIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNp
ZiBFTkFCTEUoV0VCX0FVVEhOKQorCisjaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMuaD4KKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitlbnVtIGNsYXNzIFJlc2lkZW50S2V5UmVxdWlyZW1lbnQgewor
ICAgIFJlcXVpcmVkLAorICAgIFByZWZlcnJlZCwKKyAgICBEaXNjb3VyYWdlZAorfTsKKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQorCituYW1lc3BhY2UgV1RGIHsKKwordGVtcGxhdGU8PiBzdHJ1
Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpSZXNpZGVudEtleVJlcXVpcmVtZW50PiB7CisgICAgdXNp
bmcgdmFsdWVzID0gRW51bVZhbHVlczwKKyAgICAgICAgV2ViQ29yZTo6UmVzaWRlbnRLZXlSZXF1
aXJlbWVudCwKKyAgICAgICAgV2ViQ29yZTo6UmVzaWRlbnRLZXlSZXF1aXJlbWVudDo6UmVxdWly
ZWQsCisgICAgICAgIFdlYkNvcmU6OlJlc2lkZW50S2V5UmVxdWlyZW1lbnQ6OlByZWZlcnJlZCwK
KyAgICAgICAgV2ViQ29yZTo6UmVzaWRlbnRLZXlSZXF1aXJlbWVudDo6RGlzY291cmFnZWQKKyAg
ICA+OworfTsKKworfSAvLyBuYW1lc3BhY2UgV1RGCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCX0FV
VEhOKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9SZXNpZGVu
dEtleVJlcXVpcmVtZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vUmVz
aWRlbnRLZXlSZXF1aXJlbWVudC5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDNhNWJiNjBkZTgwN2IxZjNlNGI4
MGZhNjIzMmNhMjBjYmQ5OGU2OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXV0aG4vUmVzaWRlbnRLZXlSZXF1aXJlbWVudC5pZGwKQEAgLTAsMCArMSwzMyBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKK1sKKyAgICBDb25kaXRpb25hbD1XRUJfQVVUSE4sCisgICAgSW1wbGVt
ZW50ZWRBcz1SZXNpZGVudEtleVJlcXVpcmVtZW50CitdIGVudW0gUmVzaWRlbnRLZXlSZXF1aXJl
bWVudCB7CisgICAgInJlcXVpcmVkIiwKKyAgICAicHJlZmVycmVkIiwKKyAgICAiZGlzY291cmFn
ZWQiCit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9maWRv
L0F1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXV0aG4vZmlkby9BdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9ucy5jcHAKaW5kZXgg
YmRjZjhhNGNkNTRhZjc3ZjhmMzMzODEzOGU5NDFiZGJhZjYwZGM0YS4uNTExYzMzZmY3ZjY3N2Y2
YmZiOTY5NmMwZTEyMDNmYzk0OTkwZTNiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdXRobi9maWRvL0F1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8vQXV0aGVudGljYXRvclN1cHBv
cnRlZE9wdGlvbnMuY3BwCkBAIC0zNiw5ICszNiw5IEBACiAKIG5hbWVzcGFjZSBmaWRvIHsKIAot
QXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnMmIEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRp
b25zOjpzZXRTdXBwb3J0c1Jlc2lkZW50S2V5KGJvb2wgc3VwcG9ydHNSZXNpZGVudEtleSkKK0F1
dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zJiBBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9u
czo6c2V0UmVzaWRlbnRLZXlBdmFpbGFiaWxpdHkoUmVzaWRlbnRLZXlBdmFpbGFiaWxpdHkgcmVz
aWRlbnRLZXlBdmFpbGFiaWxpdHkpCiB7Ci0gICAgbV9zdXBwb3J0c1Jlc2lkZW50S2V5ID0gc3Vw
cG9ydHNSZXNpZGVudEtleTsKKyAgICBtX3Jlc2lkZW50S2V5QXZhaWxhYmlsaXR5ID0gcmVzaWRl
bnRLZXlBdmFpbGFiaWxpdHk7CiAgICAgcmV0dXJuICp0aGlzOwogfQogCkBAIC02NiwxMiArNjYs
MTcgQEAgQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnMmIEF1dGhlbnRpY2F0b3JTdXBwb3J0
ZWRPcHRpb25zOjpzZXRJc1BsYXRmb3JtRGV2aWMKICAgICByZXR1cm4gKnRoaXM7CiB9CiAKK0F1
dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zOjpSZXNpZGVudEtleUF2YWlsYWJpbGl0eSBBdXRo
ZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9uczo6cmVzaWRlbnRLZXlBdmFpbGFiaWxpdHkoKSBjb25z
dAoreworICAgIHJldHVybiBtX3Jlc2lkZW50S2V5QXZhaWxhYmlsaXR5OworfQorCiBjYm9yOjpD
Qk9SVmFsdWUgY29udmVydFRvQ0JPUihjb25zdCBBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9u
cyYgb3B0aW9ucykKIHsKICAgICB1c2luZyBuYW1lc3BhY2UgY2JvcjsKIAogICAgIENCT1JWYWx1
ZTo6TWFwVmFsdWUgb3B0aW9uTWFwOwotICAgIG9wdGlvbk1hcC5lbXBsYWNlKENCT1JWYWx1ZShr
UmVzaWRlbnRLZXlNYXBLZXkpLCBDQk9SVmFsdWUob3B0aW9ucy5zdXBwb3J0c1Jlc2lkZW50S2V5
KCkpKTsKKyAgICBvcHRpb25NYXAuZW1wbGFjZShDQk9SVmFsdWUoa1Jlc2lkZW50S2V5TWFwS2V5
KSwgQ0JPUlZhbHVlKG9wdGlvbnMucmVzaWRlbnRLZXlBdmFpbGFiaWxpdHkoKSA9PSBBdXRoZW50
aWNhdG9yU3VwcG9ydGVkT3B0aW9uczo6UmVzaWRlbnRLZXlBdmFpbGFiaWxpdHk6OmtTdXBwb3J0
ZWQpKTsKICAgICBvcHRpb25NYXAuZW1wbGFjZShDQk9SVmFsdWUoa1VzZXJQcmVzZW5jZU1hcEtl
eSksIENCT1JWYWx1ZShvcHRpb25zLnVzZXJQcmVzZW5jZVJlcXVpcmVkKCkpKTsKICAgICBvcHRp
b25NYXAuZW1wbGFjZShDQk9SVmFsdWUoa1BsYXRmb3JtRGV2aWNlTWFwS2V5KSwgQ0JPUlZhbHVl
KG9wdGlvbnMuaXNQbGF0Zm9ybURldmljZSgpKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXV0aG4vZmlkby9BdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9ucy5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9maWRvL0F1dGhlbnRpY2F0b3JTdXBw
b3J0ZWRPcHRpb25zLmgKaW5kZXggZWM0MGFlNGJlNDI2MTRjNzE0ZTU3ZmFmNmE0NDY1YzdmMmZm
OTkxNi4uMTgwZjYxZjIzMTBlODgyOWUxZmI5MTc4NDBjOWEwMTU2N2RhNDA5MyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9maWRvL0F1dGhlbnRpY2F0b3JTdXBw
b3J0ZWRPcHRpb25zLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9maWRv
L0F1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zLmgKQEAgLTUwLDYgKzUwLDExIEBAIHB1Ymxp
YzoKICAgICAgICAga1N1cHBvcnRlZEJ1dE5vdENvbmZpZ3VyZWQsCiAgICAgICAgIGtOb3RTdXBw
b3J0ZWQKICAgICB9OworICAgIAorICAgIGVudW0gY2xhc3MgUmVzaWRlbnRLZXlBdmFpbGFiaWxp
dHkgeworICAgICAgICBrU3VwcG9ydGVkLAorICAgICAgICBrTm90U3VwcG9ydGVkCisgICAgfTsK
IAogICAgIGVudW0gY2xhc3MgQ2xpZW50UGluQXZhaWxhYmlsaXR5IHsKICAgICAgICAga1N1cHBv
cnRlZEFuZFBpblNldCwKQEAgLTYyLDEzICs2NywxMyBAQCBwdWJsaWM6CiAgICAgQXV0aGVudGlj
YXRvclN1cHBvcnRlZE9wdGlvbnMmIG9wZXJhdG9yPShBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0
aW9ucyYmKSA9IGRlZmF1bHQ7CiAKICAgICBBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9ucyYg
c2V0SXNQbGF0Zm9ybURldmljZShib29sKTsKLSAgICBBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0
aW9ucyYgc2V0U3VwcG9ydHNSZXNpZGVudEtleShib29sKTsKKyAgICBBdXRoZW50aWNhdG9yU3Vw
cG9ydGVkT3B0aW9ucyYgc2V0UmVzaWRlbnRLZXlBdmFpbGFiaWxpdHkoUmVzaWRlbnRLZXlBdmFp
bGFiaWxpdHkpOwogICAgIEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zJiBzZXRVc2VyVmVy
aWZpY2F0aW9uQXZhaWxhYmlsaXR5KFVzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHkpOwogICAg
IEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zJiBzZXRVc2VyUHJlc2VuY2VSZXF1aXJlZChi
b29sKTsKICAgICBBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9ucyYgc2V0Q2xpZW50UGluQXZh
aWxhYmlsaXR5KENsaWVudFBpbkF2YWlsYWJpbGl0eSk7CiAKICAgICBib29sIGlzUGxhdGZvcm1E
ZXZpY2UoKSBjb25zdCB7IHJldHVybiBtX2lzUGxhdGZvcm1EZXZpY2U7IH0KLSAgICBib29sIHN1
cHBvcnRzUmVzaWRlbnRLZXkoKSBjb25zdCB7IHJldHVybiBtX3N1cHBvcnRzUmVzaWRlbnRLZXk7
IH0KKyAgICBSZXNpZGVudEtleUF2YWlsYWJpbGl0eSByZXNpZGVudEtleUF2YWlsYWJpbGl0eSgp
IGNvbnN0OwogICAgIFVzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHkgdXNlclZlcmlmaWNhdGlv
bkF2YWlsYWJpbGl0eSgpIGNvbnN0IHsgcmV0dXJuIG1fdXNlclZlcmlmaWNhdGlvbkF2YWlsYWJp
bGl0eTsgfQogICAgIGJvb2wgdXNlclByZXNlbmNlUmVxdWlyZWQoKSBjb25zdCB7IHJldHVybiBt
X3VzZXJQcmVzZW5jZVJlcXVpcmVkOyB9CiAgICAgQ2xpZW50UGluQXZhaWxhYmlsaXR5IGNsaWVu
dFBpbkF2YWlsYWJpbGl0eSgpIGNvbnN0IHsgcmV0dXJuIG1fY2xpZW50UGluQXZhaWxhYmlsaXR5
OyB9CkBAIC04MCw3ICs4NSw3IEBAIHByaXZhdGU6CiAgICAgLy8gSW5kaWNhdGVzIHRoYXQgdGhl
IGRldmljZSBpcyBjYXBhYmxlIG9mIHN0b3Jpbmcga2V5cyBvbiB0aGUgZGV2aWNlIGl0c2VsZgog
ICAgIC8vIGFuZCB0aGVyZWZvcmUgY2FuIHNhdGlzZnkgdGhlIGF1dGhlbnRpY2F0b3JHZXRBc3Nl
cnRpb24gcmVxdWVzdCB3aXRoCiAgICAgLy8gYWxsb3dMaXN0IHBhcmFtZXRlciBub3Qgc3BlY2lm
aWVkIG9yIGVtcHR5LgotICAgIGJvb2wgbV9zdXBwb3J0c1Jlc2lkZW50S2V5IHsgZmFsc2UgfTsK
KyAgICBSZXNpZGVudEtleUF2YWlsYWJpbGl0eSBtX3Jlc2lkZW50S2V5QXZhaWxhYmlsaXR5IHsg
UmVzaWRlbnRLZXlBdmFpbGFiaWxpdHk6OmtOb3RTdXBwb3J0ZWQgfTsKICAgICAvLyBJbmRpY2F0
ZXMgd2hldGhlciB0aGUgZGV2aWNlIGlzIGNhcGFibGUgb2YgdmVyaWZ5aW5nIHRoZSB1c2VyIG9u
IGl0cyBvd24uCiAgICAgVXNlclZlcmlmaWNhdGlvbkF2YWlsYWJpbGl0eSBtX3VzZXJWZXJpZmlj
YXRpb25BdmFpbGFiaWxpdHkgeyBVc2VyVmVyaWZpY2F0aW9uQXZhaWxhYmlsaXR5OjprTm90U3Vw
cG9ydGVkIH07CiAgICAgYm9vbCBtX3VzZXJQcmVzZW5jZVJlcXVpcmVkIHsgdHJ1ZSB9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9maWRvL0RldmljZVJlcXVl
c3RDb252ZXJ0ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9maWRvL0Rl
dmljZVJlcXVlc3RDb252ZXJ0ZXIuY3BwCmluZGV4IDMyOWYyYTFkYTFiN2Y5MDM0NjMxMjg3OGI2
MzA2MmM2ZTQyMjhkNDkuLjA5NGU0NDJjN2YxNzU4NGY1MTdkZjUwNzQwYTA3YWMzNzZhNDU4OWEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vZmlkby9EZXZpY2VS
ZXF1ZXN0Q29udmVydGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhu
L2ZpZG8vRGV2aWNlUmVxdWVzdENvbnZlcnRlci5jcHAKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNs
dWRlICJDQk9SV3JpdGVyLmgiCiAjaW5jbHVkZSAiUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9u
T3B0aW9ucy5oIgogI2luY2x1ZGUgIlB1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucy5o
IgorI2luY2x1ZGUgIlJlc2lkZW50S2V5UmVxdWlyZW1lbnQuaCIKICNpbmNsdWRlIDx3dGYvVmVj
dG9yLmg+CiAKIG5hbWVzcGFjZSBmaWRvIHsKQEAgLTg1LDcgKzg2LDcgQEAgc3RhdGljIENCT1JW
YWx1ZSBjb252ZXJ0RGVzY3JpcHRvclRvQ0JPUihjb25zdCBQdWJsaWNLZXlDcmVkZW50aWFsRGVz
Y3JpcHRvciYgZGUKICAgICByZXR1cm4gQ0JPUlZhbHVlKFdURk1vdmUoY2JvckRlc2NyaXB0b3JN
YXApKTsKIH0KIAotVmVjdG9yPHVpbnQ4X3Q+IGVuY29kZU1ha2VDcmVkZW5pdGFsUmVxdWVzdEFz
Q0JPUihjb25zdCBWZWN0b3I8dWludDhfdD4mIGhhc2gsIGNvbnN0IFB1YmxpY0tleUNyZWRlbnRp
YWxDcmVhdGlvbk9wdGlvbnMmIG9wdGlvbnMsIFVWQXZhaWxhYmlsaXR5IHV2Q2FwYWJpbGl0eSwg
c3RkOjpvcHRpb25hbDxQaW5QYXJhbWV0ZXJzPiBwaW4pCitWZWN0b3I8dWludDhfdD4gZW5jb2Rl
TWFrZUNyZWRlbml0YWxSZXF1ZXN0QXNDQk9SKGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgaGFzaCwg
Y29uc3QgUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucyYgb3B0aW9ucywgVVZBdmFp
bGFiaWxpdHkgdXZDYXBhYmlsaXR5LCBBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9uczo6UmVz
aWRlbnRLZXlBdmFpbGFiaWxpdHkgcmVzaWRlbnRLZXlBdmFpbGFiaWxpdHksIHN0ZDo6b3B0aW9u
YWw8UGluUGFyYW1ldGVycz4gcGluKQogewogICAgIENCT1JWYWx1ZTo6TWFwVmFsdWUgY2Jvck1h
cDsKICAgICBjYm9yTWFwW0NCT1JWYWx1ZSgxKV0gPSBDQk9SVmFsdWUoaGFzaCk7CkBAIC0xMDIs
NyArMTAzLDExIEBAIFZlY3Rvcjx1aW50OF90PiBlbmNvZGVNYWtlQ3JlZGVuaXRhbFJlcXVlc3RB
c0NCT1IoY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBoYXNoLCBjCiAgICAgQ0JPUlZhbHVlOjpNYXBW
YWx1ZSBvcHRpb25NYXA7CiAgICAgaWYgKG9wdGlvbnMuYXV0aGVudGljYXRvclNlbGVjdGlvbikg
ewogICAgICAgICAvLyBSZXNpZGVudCBrZXlzIGFyZSBub3Qgc3VwcG9ydGVkIGJ5IGRlZmF1bHQu
Ci0gICAgICAgIGlmIChvcHRpb25zLmF1dGhlbnRpY2F0b3JTZWxlY3Rpb24tPnJlcXVpcmVSZXNp
ZGVudEtleSkKKyAgICAgICAgaWYgKG9wdGlvbnMuYXV0aGVudGljYXRvclNlbGVjdGlvbi0+cmVz
aWRlbnRLZXkpIHsKKyAgICAgICAgICAgIGlmICgqb3B0aW9ucy5hdXRoZW50aWNhdG9yU2VsZWN0
aW9uLT5yZXNpZGVudEtleSA9PSBSZXNpZGVudEtleVJlcXVpcmVtZW50OjpSZXF1aXJlZAorICAg
ICAgICAgICAgICAgIHx8ICgqb3B0aW9ucy5hdXRoZW50aWNhdG9yU2VsZWN0aW9uLT5yZXNpZGVu
dEtleSA9PSBSZXNpZGVudEtleVJlcXVpcmVtZW50OjpQcmVmZXJyZWQgJiYgcmVzaWRlbnRLZXlB
dmFpbGFiaWxpdHkgPT0gQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnM6OlJlc2lkZW50S2V5
QXZhaWxhYmlsaXR5OjprU3VwcG9ydGVkKSkKKyAgICAgICAgICAgICAgICBvcHRpb25NYXBbQ0JP
UlZhbHVlKGtSZXNpZGVudEtleU1hcEtleSldID0gQ0JPUlZhbHVlKHRydWUpOworICAgICAgICB9
IGVsc2UgaWYgKG9wdGlvbnMuYXV0aGVudGljYXRvclNlbGVjdGlvbi0+cmVxdWlyZVJlc2lkZW50
S2V5KQogICAgICAgICAgICAgb3B0aW9uTWFwW0NCT1JWYWx1ZShrUmVzaWRlbnRLZXlNYXBLZXkp
XSA9IENCT1JWYWx1ZSh0cnVlKTsKIAogICAgICAgICAvLyBVc2VyIHZlcmlmaWNhdGlvbiBpcyBu
b3QgcmVxdWlyZWQgYnkgZGVmYXVsdC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXV0aG4vZmlkby9EZXZpY2VSZXF1ZXN0Q29udmVydGVyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8vRGV2aWNlUmVxdWVzdENvbnZlcnRlci5oCmluZGV4IDc5
ZjJhOGFmOWY3ODVlNWU2ZmZmMGYwYWZmYjU1NDBlYmU3MzBkM2UuLmMxYTQ1ZDE3NWM3ZmI3YzRh
MTE1MTk3MDlkOWM0NzM3OTkyYTdlYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXV0aG4vZmlkby9EZXZpY2VSZXF1ZXN0Q29udmVydGVyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdXRobi9maWRvL0RldmljZVJlcXVlc3RDb252ZXJ0ZXIuaApAQCAt
NTAsNyArNTAsNyBAQCBzdHJ1Y3QgUGluUGFyYW1ldGVycyB7CiAvLyBTZXJpYWxpemVzIE1ha2VD
cmVkZW50aWFsIHJlcXVlc3QgcGFyYW1ldGVyIGludG8gQ0JPUiBlbmNvZGVkIG1hcCB3aXRoCiAv
LyBpbnRlZ2VyIGtleXMgYW5kIENCT1IgZW5jb2RlZCB2YWx1ZXMgYXMgZGVmaW5lZCBieSB0aGUg
Q1RBUCBzcGVjLgogLy8gaHR0cHM6Ly9maWRvYWxsaWFuY2Uub3JnL3NwZWNzL2ZpZG8tdjIuMC1w
cy0yMDE3MDkyNy9maWRvLWNsaWVudC10by1hdXRoZW50aWNhdG9yLXByb3RvY29sLXYyLjAtcHMt
MjAxNzA5MjcuaHRtbCNhdXRoZW50aWNhdG9yTWFrZUNyZWRlbnRpYWwKLVdFQkNPUkVfRVhQT1JU
IFZlY3Rvcjx1aW50OF90PiBlbmNvZGVNYWtlQ3JlZGVuaXRhbFJlcXVlc3RBc0NCT1IoY29uc3Qg
VmVjdG9yPHVpbnQ4X3Q+JiBoYXNoLCBjb25zdCBXZWJDb3JlOjpQdWJsaWNLZXlDcmVkZW50aWFs
Q3JlYXRpb25PcHRpb25zJiwgQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnM6OlVzZXJWZXJp
ZmljYXRpb25BdmFpbGFiaWxpdHksIHN0ZDo6b3B0aW9uYWw8UGluUGFyYW1ldGVycz4gPSBzdGQ6
Om51bGxvcHQpOworV0VCQ09SRV9FWFBPUlQgVmVjdG9yPHVpbnQ4X3Q+IGVuY29kZU1ha2VDcmVk
ZW5pdGFsUmVxdWVzdEFzQ0JPUihjb25zdCBWZWN0b3I8dWludDhfdD4mIGhhc2gsIGNvbnN0IFdl
YkNvcmU6OlB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMmLCBBdXRoZW50aWNhdG9y
U3VwcG9ydGVkT3B0aW9uczo6VXNlclZlcmlmaWNhdGlvbkF2YWlsYWJpbGl0eSwgQXV0aGVudGlj
YXRvclN1cHBvcnRlZE9wdGlvbnM6OlJlc2lkZW50S2V5QXZhaWxhYmlsaXR5LCBzdGQ6Om9wdGlv
bmFsPFBpblBhcmFtZXRlcnM+ID0gc3RkOjpudWxsb3B0KTsKIAogLy8gU2VyaWFsaXplcyBHZXRB
c3NlcnRpb24gcmVxdWVzdCBwYXJhbWV0ZXIgaW50byBDQk9SIGVuY29kZWQgbWFwIHdpdGgKIC8v
IGludGVnZXIga2V5cyBhbmQgQ0JPUiBlbmNvZGVkIHZhbHVlcyBhcyBkZWZpbmVkIGJ5IHRoZSBD
VEFQIHNwZWMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2Zp
ZG8vRGV2aWNlUmVzcG9uc2VDb252ZXJ0ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdXRobi9maWRvL0RldmljZVJlc3BvbnNlQ29udmVydGVyLmNwcAppbmRleCA5MzJmZjA4MmNl
ODc3YmVmMDQ1OTE0NjA0ZTg0NmVkMTY3MjllNjNiLi5mMjFjNWVlN2EyNWY1ZTkyNzU0NDMxZDM1
NGE4N2E4ZDIxYzU4M2M4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
dGhuL2ZpZG8vRGV2aWNlUmVzcG9uc2VDb252ZXJ0ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXV0aG4vZmlkby9EZXZpY2VSZXNwb25zZUNvbnZlcnRlci5jcHAKQEAgLTI2
NCw4ICsyNjQsMTAgQEAgc3RkOjpvcHRpb25hbDxBdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNl
PiByZWFkQ1RBUEdldEluZm9SZXNwb25zZShjb25zdCBWZWN0b3IKICAgICAgICAgaWYgKG9wdGlv
bk1hcEl0ICE9IG9wdGlvbk1hcC5lbmQoKSkgewogICAgICAgICAgICAgaWYgKCFvcHRpb25NYXBJ
dC0+c2Vjb25kLmlzQm9vbCgpKQogICAgICAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7
Ci0KLSAgICAgICAgICAgIG9wdGlvbnMuc2V0U3VwcG9ydHNSZXNpZGVudEtleShvcHRpb25NYXBJ
dC0+c2Vjb25kLmdldEJvb2woKSk7CisgICAgICAgICAgICBpZiAob3B0aW9uTWFwSXQtPnNlY29u
ZC5nZXRCb29sKCkpCisgICAgICAgICAgICAgICAgb3B0aW9ucy5zZXRSZXNpZGVudEtleUF2YWls
YWJpbGl0eShBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9uczo6UmVzaWRlbnRLZXlBdmFpbGFi
aWxpdHk6OmtTdXBwb3J0ZWQpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIG9w
dGlvbnMuc2V0UmVzaWRlbnRLZXlBdmFpbGFiaWxpdHkoQXV0aGVudGljYXRvclN1cHBvcnRlZE9w
dGlvbnM6OlJlc2lkZW50S2V5QXZhaWxhYmlsaXR5OjprTm90U3VwcG9ydGVkKTsKICAgICAgICAg
fQogCiAgICAgICAgIG9wdGlvbk1hcEl0ID0gb3B0aW9uTWFwLmZpbmQoQ0JPUihrVXNlclByZXNl
bmNlTWFwS2V5KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1Nv
dXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IDI1ZDMyNmUzOThiM2ZhZWM1MzA4Nzc5ZjI3
OTU2MjVjNmM3ZjFhZjUuLmQ0Njc3ZDZkMjU0YzgzZWE1NTY4MDBkMzk4NTNkYjBiODFhZmJjODEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJD
b3JlL1NvdXJjZXMudHh0CkBAIC0zNzAwLDYgKzM3MDAsNyBAQCBKU1JlbW90ZVBsYXliYWNrLmNw
cAogSlNSZW1vdGVQbGF5YmFja0F2YWlsYWJpbGl0eUNhbGxiYWNrLmNwcAogSlNSZXF1ZXN0QW5p
bWF0aW9uRnJhbWVDYWxsYmFjay5jcHAKIEpTUmVxdWVzdENvb2tpZUNvbnNlbnRPcHRpb25zLmNw
cAorSlNSZXNpZGVudEtleVJlcXVpcmVtZW50LmNwcAogSlNSZXNpemVPYnNlcnZlci5jcHAKIEpT
UmVzaXplT2JzZXJ2ZXJCb3hPcHRpb25zLmNwcAogSlNSZXNpemVPYnNlcnZlckNhbGxiYWNrLmNw
cApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CmluZGV4IDY4MzI0MDVjZTc5Nzg4NDk0OWNiMzQzMDIzYjkwMDFhYmVlYjYzZjUuLjgwZTBmMjYx
NDMzODAzZmY1MTA5MjFjYmM3NzY1MTQ2MWYxMDFjODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE3MjcsNiArMTcyNyw3IEBA
CiAJCTUxRkEyRURGMjc1MDZGREUwMDExQzE1RCAvKiBTaGFyZWRCdWZmZXJDaHVua1JlYWRlci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFGQTJFRDYy
NzRGNzgzNzAwMTFDMTVEIC8qIFNoYXJlZEJ1ZmZlckNodW5rUmVhZGVyLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTFGQjU1MDQxMTNFM0U5MTAw
ODIxMTc2IC8qIEpTQ2xvc2VFdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNTFGQjU1MDIxMTNFM0U5MTAwODIxMTc2IC8qIEpTQ2xvc2VFdmVudC5o
ICovOyB9OwogCQk1MUZCNjdEQzFBRTZCODJGMDBEMDZDNUEgLyogQ29udGVudEV4dGVuc2lvblN0
eWxlU2hlZXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDUxRkI2N0RBMUFFNkI1RTQwMEQwNkM1QSAvKiBDb250ZW50RXh0ZW5zaW9uU3R5bGVTaGVldC5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTUyNjg4
QUE2MjdENkE3REEwMDM1NzdBMiAvKiBSZXNpZGVudEtleVJlcXVpcmVtZW50LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MjY4OEFBMzI3RDZBN0RBMDAz
NTc3QTIgLyogUmVzaWRlbnRLZXlSZXF1aXJlbWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTUyNzNDQzc3MjU2MTAzQ0YwMDg1MDAwNyAvKiBQ
bGF0Zm9ybVhSQ29jb2EuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDUyNzNDQzc1MjU2MTAzQ0YwMDg1MDAwNyAvKiBQbGF0Zm9ybVhSQ29jb2EuaCAqLzsg
fTsKIAkJNTI3M0NDOEUyNTYzN0VCNTAwODUwMDA3IC8qIFdlYlhSVGVzdC5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMThEODNFMDI0M0Y3MUNFMDA5
MjQ3RDYgLyogV2ViWFJUZXN0LmNwcCAqLzsgfTsKIAkJNTI3M0NDOTAyNTYzN0Y2NzAwODUwMDA3
IC8qIFdlYkZha2VYUkRldmljZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBFMThEODNFOTI0M0Y3MUQzMDA5MjQ3RDYgLyogV2ViRmFrZVhSRGV2aWNl
LmNwcCAqLzsgfTsKQEAgLTEwMDc1LDYgKzEwMDc2LDggQEAKIAkJNTIxMzFFNUExQzRGMTU2MTAw
MzNGODAyIC8qIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYy5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYy5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTI2NzI0RjExQ0IyRkRGNjAwNzU5NzREIC8q
IFRleHRUcmFja1JlcHJlc2VudGF0aW9uQ29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IHBhdGggPSBUZXh0VHJhY2tSZXByZXNlbnRhdGlvbkNvY29hLm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk1MjY3MjRGMjFDQjJGREY2MDA3NTk3NEQgLyogVGV4dFRy
YWNrUmVwcmVzZW50YXRpb25Db2NvYS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBUZXh0VHJhY2tSZXByZXNlbnRhdGlvbkNvY29hLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTUyNjg4QUEzMjdENkE3REEwMDM1NzdBMiAvKiBSZXNpZGVudEtleVJlcXVpcmVtZW50
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFJlc2lkZW50S2V5UmVxdWlyZW1lbnQuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJNTI2ODhBQTUyN0Q2QTdEQTAwMzU3N0EyIC8qIFJlc2lkZW50S2V5
UmVxdWlyZW1lbnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dDsgcGF0aCA9IFJlc2lkZW50S2V5UmVxdWlyZW1lbnQuaWRsOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk1MjczQ0M3NDI1NjEwM0NGMDA4NTAwMDcgLyogUGxhdGZv
cm1YUkNvY29hLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUGxhdGZvcm1YUkNvY29hLm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MjczQ0M3NTI1NjEwM0NGMDA4NTAwMDcgLyog
UGxhdGZvcm1YUkNvY29hLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBsYXRmb3JtWFJDb2NvYS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MjczQ0M5QTI1NjNCMjEyMDA4NTAwMDcgLyogSlNX
ZWJYUlRlc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNXZWJY
UlRlc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjMzMjEsNiArMjMzMjQs
OCBAQAogCQkJCTU3MzAzQzA4MjAwOTk4RjgwMDM1NTk2NSAvKiBQdWJsaWNLZXlDcmVkZW50aWFs
UmVxdWVzdE9wdGlvbnMuaWRsICovLAogCQkJCTU3MzAzQkVBMjAwOTdGNDAwMDM1NTk2NSAvKiBQ
dWJsaWNLZXlDcmVkZW50aWFsVHlwZS5oICovLAogCQkJCTU3MzAzQkYwMjAwOTg0NjEwMDM1NTk2
NSAvKiBQdWJsaWNLZXlDcmVkZW50aWFsVHlwZS5pZGwgKi8sCisJCQkJNTI2ODhBQTMyN0Q2QTdE
QTAwMzU3N0EyIC8qIFJlc2lkZW50S2V5UmVxdWlyZW1lbnQuaCAqLywKKwkJCQk1MjY4OEFBNTI3
RDZBN0RBMDAzNTc3QTIgLyogUmVzaWRlbnRLZXlSZXF1aXJlbWVudC5pZGwgKi8sCiAJCQkJNTcy
QjQwMjMyMTc2OEQ4NTAwMEFENDNFIC8qIFVzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudC5oICov
LAogCQkJCTU3MkI0MDI1MjE3NjhEODUwMDBBRDQzRSAvKiBVc2VyVmVyaWZpY2F0aW9uUmVxdWly
ZW1lbnQuaWRsICovLAogCQkJCTU3NEY1NURDMjA0RjM3MzIwMDI5NDhDNiAvKiBXZWJBdXRoZW50
aWNhdGlvbkNvbnN0YW50cy5oICovLApAQCAtMzcwNTMsNiArMzcwNTgsNyBAQAogCQkJCTQ5OThB
RUM2MTNGOUQwRUEwMDkwQjFBQSAvKiBSZXF1ZXN0QW5pbWF0aW9uRnJhbWVDYWxsYmFjay5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJRjQwMzRGQUMyNzVFQUQ2RTAwM0E4MUY4IC8qIFJlcXVlc3RDb29r
aWVDb25zZW50T3B0aW9ucy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRjU1QjNERDAxMjUxRjEyRDAw
M0VGMjY5IC8qIFJlc2V0SW5wdXRUeXBlLmggaW4gSGVhZGVycyAqLywKKwkJCQk1MjY4OEFBNjI3
RDZBN0RBMDAzNTc3QTIgLyogUmVzaWRlbnRLZXlSZXF1aXJlbWVudC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNThCMkY5RjQyMjMyRDQ1MzAwOTM4RDYzIC8qIFJlc2l6ZU9ic2VydmF0aW9uLmggaW4g
SGVhZGVycyAqLywKIAkJCQk1OEIyRjlGNTIyMzJENDU4MDA5MzhENjMgLyogUmVzaXplT2JzZXJ2
ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRDZBNjhDMjZFRUMzN0YwMDdCMjIzMSAvKiBSZXNp
emVPYnNlcnZlckJveE9wdGlvbnMuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0F1dGhlbnRpY2F0b3JTZWxlY3Rpb25Dcml0
ZXJpYS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0F1dGhlbnRpY2F0
b3JTZWxlY3Rpb25Dcml0ZXJpYS5oCmluZGV4IGZkOGMyNjRiM2MxYzJhMzFlMTczZGMxYjgxMzYw
NTY3NjY2MGM0NTguLjI2ZTViNzAzMmQ0NzdmY2FjZDM4YzZjZGE3ZDMyOTk1OTQ1OTQwNDggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBdXRoZW50aWNh
dG9yU2VsZWN0aW9uQ3JpdGVyaWEuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvX1dLQXV0aGVudGljYXRvclNlbGVjdGlvbkNyaXRlcmlhLmgKQEAgLTI5LDYgKzI5LDgg
QEAKIAogI2ltcG9ydCA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+CiAjaW1wb3J0IDxXZWJLaXQv
X1dLQXV0aGVudGljYXRvckF0dGFjaG1lbnQuaD4KKyNpbXBvcnQgPFdlYktpdC9fV0tSZXNpZGVu
dEtleVJlcXVpcmVtZW50Lmg+CisKICNpbXBvcnQgPFdlYktpdC9fV0tVc2VyVmVyaWZpY2F0aW9u
UmVxdWlyZW1lbnQuaD4KIAogTlNfQVNTVU1FX05PTk5VTExfQkVHSU4KQEAgLTM5LDYgKzQxLDkg
QEAgV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zKDEyLjApLCBpb3MoMTUuMCkpCiAvKiFAZGlzY3Vz
c2lvbiBUaGUgZGVmYXVsdCB2YWx1ZSBpcyBfV0tBdXRoZW50aWNhdG9yQXR0YWNobWVudEFsbC4q
LwogQHByb3BlcnR5IChub25hdG9taWMpIF9XS0F1dGhlbnRpY2F0b3JBdHRhY2htZW50IGF1dGhl
bnRpY2F0b3JBdHRhY2htZW50OwogCisvKiAoQGRpc2N1c3Npb24gVGhlIGRlZmF1bHQgdmFsdWUg
aXMgX1dLUmVzaWRlbnRLZXlSZXF1aXJlbWVudE5vdFByZXNlbnQgKi8KK0Bwcm9wZXJ0eSAobm9u
YXRvbWljKSBfV0tSZXNpZGVudEtleVJlcXVpcmVtZW50IHJlc2lkZW50S2V5OworCiAvKiFAZGlz
Y3Vzc2lvbiBUaGUgZGVmYXVsdCB2YWx1ZSBpcyBOTy4qLwogQHByb3BlcnR5IChub25hdG9taWMp
IEJPT0wgcmVxdWlyZVJlc2lkZW50S2V5OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvX1dLQXV0aGVudGljYXRvclNlbGVjdGlvbkNyaXRlcmlhLm1tIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0F1dGhlbnRpY2F0b3JTZWxlY3Rp
b25Dcml0ZXJpYS5tbQppbmRleCA4OGQwNDNkZTUwNzQ3NmMwNDdiYTgzYzg4MDJmYWRkMDdkYzg3
ODFiLi5mNjdiYmY4MjViNzJhY2M5Yzg2OTJkNzJjYWUzMWYyOTQ1YjI4YWE0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQXV0aGVudGljYXRvclNlbGVj
dGlvbkNyaXRlcmlhLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9f
V0tBdXRoZW50aWNhdG9yU2VsZWN0aW9uQ3JpdGVyaWEubW0KQEAgLTM0LDYgKzM0LDcgQEAKICAg
ICAgICAgcmV0dXJuIG5pbDsKIAogICAgIHNlbGYuYXV0aGVudGljYXRvckF0dGFjaG1lbnQgPSBf
V0tBdXRoZW50aWNhdG9yQXR0YWNobWVudEFsbDsKKyAgICBzZWxmLnJlc2lkZW50S2V5ID0gX1dL
UmVzaWRlbnRLZXlSZXF1aXJlbWVudE5vdFByZXNlbnQ7CiAgICAgc2VsZi5yZXF1aXJlUmVzaWRl
bnRLZXkgPSBOTzsKICAgICBzZWxmLnVzZXJWZXJpZmljYXRpb24gPSBfV0tVc2VyVmVyaWZpY2F0
aW9uUmVxdWlyZW1lbnRQcmVmZXJyZWQ7CiAgICAgcmV0dXJuIHNlbGY7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUmVzaWRlbnRLZXlSZXF1aXJlbWVu
dC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1Jlc2lkZW50S2V5UmVx
dWlyZW1lbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNTViOGRkZDdlYTVmNGMxZTc0NjBlYjJjMjA5MjljYjY1
ZjhhYWI4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL19XS1Jlc2lkZW50S2V5UmVxdWlyZW1lbnQuaApAQCAtMCwwICsxLDM1IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI3ByYWdtYSBvbmNlCisKKyNpbXBvcnQgPFdlYktpdC9XS0ZvdW5kYXRpb24uaD4KKwor
dHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgX1dLUmVzaWRlbnRLZXlSZXF1aXJlbWVudCkgewor
ICAgIF9XS1Jlc2lkZW50S2V5UmVxdWlyZW1lbnROb3RQcmVzZW50LAorICAgIF9XS1Jlc2lkZW50
S2V5UmVxdWlyZW1lbnRSZXF1aXJlZCwKKyAgICBfV0tSZXNpZGVudEtleVJlcXVpcmVtZW50UHJl
ZmVycmVkLAorICAgIF9XS1Jlc2lkZW50S2V5UmVxdWlyZW1lbnREaXNjb3VyYWdlZCwKK30gV0tf
QVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJBdXRoZW50aWNh
dGlvblBhbmVsLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYkF1
dGhlbnRpY2F0aW9uUGFuZWwubW0KaW5kZXggODkwM2U5NDAzMGZkMjYyMGYzODI5MDdmYTgzYTU3
YTZjMWQwNWE1Yi4uMGQxYTdlODE5NDE2MjUyMTc2MTZkZjAyNDBmMTgyZmViNzhlZGY4MiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYkF1dGhlbnRp
Y2F0aW9uUGFuZWwubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19X
S1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwubW0KQEAgLTczNSwxMCArNzM1LDI4IEBAIHN0YXRpYyBX
ZWJDb3JlOjpVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQgdXNlclZlcmlmaWNhdGlvbihfV0tV
c2VyVmVyaWZpY2F0aW9uCiAgICAgfQogfQogCitzdGF0aWMgc3RkOjpvcHRpb25hbDxXZWJDb3Jl
OjpSZXNpZGVudEtleVJlcXVpcmVtZW50PiByZXNpZGVudEtleShfV0tSZXNpZGVudEtleVJlcXVp
cmVtZW50IHV2KQoreworICAgIHN3aXRjaCAodXYpIHsKKyAgICBjYXNlIF9XS1Jlc2lkZW50S2V5
UmVxdWlyZW1lbnROb3RQcmVzZW50OgorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAg
IGNhc2UgX1dLUmVzaWRlbnRLZXlSZXF1aXJlbWVudFJlcXVpcmVkOgorICAgICAgICByZXR1cm4g
V2ViQ29yZTo6UmVzaWRlbnRLZXlSZXF1aXJlbWVudDo6UmVxdWlyZWQ7CisgICAgY2FzZSBfV0tS
ZXNpZGVudEtleVJlcXVpcmVtZW50UHJlZmVycmVkOgorICAgICAgICByZXR1cm4gV2ViQ29yZTo6
UmVzaWRlbnRLZXlSZXF1aXJlbWVudDo6UHJlZmVycmVkOworICAgIGNhc2UgX1dLUmVzaWRlbnRL
ZXlSZXF1aXJlbWVudERpc2NvdXJhZ2VkOgorICAgICAgICByZXR1cm4gV2ViQ29yZTo6UmVzaWRl
bnRLZXlSZXF1aXJlbWVudDo6RGlzY291cmFnZWQ7CisgICAgZGVmYXVsdDoKKyAgICAgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybiBXZWJDb3JlOjpSZXNpZGVudEtleVJl
cXVpcmVtZW50OjpQcmVmZXJyZWQ7CisgICAgfQorfQorCiBzdGF0aWMgV2ViQ29yZTo6UHVibGlj
S2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9uczo6QXV0aGVudGljYXRvclNlbGVjdGlvbkNyaXRl
cmlhIGF1dGhlbnRpY2F0b3JTZWxlY3Rpb25Dcml0ZXJpYShfV0tBdXRoZW50aWNhdG9yU2VsZWN0
aW9uQ3JpdGVyaWEgKmF1dGhlbnRpY2F0b3JTZWxlY3Rpb24pCiB7CiAgICAgV2ViQ29yZTo6UHVi
bGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9uczo6QXV0aGVudGljYXRvclNlbGVjdGlvbkNy
aXRlcmlhIHJlc3VsdDsKICAgICByZXN1bHQuYXV0aGVudGljYXRvckF0dGFjaG1lbnQgPSBhdXRo
ZW50aWNhdG9yQXR0YWNobWVudChhdXRoZW50aWNhdG9yU2VsZWN0aW9uLmF1dGhlbnRpY2F0b3JB
dHRhY2htZW50KTsKKyAgICByZXN1bHQucmVzaWRlbnRLZXkgPSByZXNpZGVudEtleShhdXRoZW50
aWNhdG9yU2VsZWN0aW9uLnJlc2lkZW50S2V5KTsKICAgICByZXN1bHQucmVxdWlyZVJlc2lkZW50
S2V5ID0gYXV0aGVudGljYXRvclNlbGVjdGlvbi5yZXF1aXJlUmVzaWRlbnRLZXk7CiAgICAgcmVz
dWx0LnVzZXJWZXJpZmljYXRpb24gPSB1c2VyVmVyaWZpY2F0aW9uKGF1dGhlbnRpY2F0b3JTZWxl
Y3Rpb24udXNlclZlcmlmaWNhdGlvbik7CiAKQEAgLTkzMCw3ICs5NDgsNyBAQCBzdGF0aWMgUmV0
YWluUHRyPF9XS0F1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwb25zZT4gd2tBdXRoZW50aWNhdG9y
QXNzZXJ0aW9uUmVzcAogI2lmIEVOQUJMRShXRUJfQVVUSE4pCiAgICAgYXV0byBoYXNoID0gcHJv
ZHVjZUNsaWVudERhdGFKc29uSGFzaChjbGllbnREYXRhSlNPTik7CiAKLSAgICBhdXRvIGVuY29k
ZWRWZWN0b3IgPSBmaWRvOjplbmNvZGVNYWtlQ3JlZGVuaXRhbFJlcXVlc3RBc0NCT1IoaGFzaCwg
W19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwgY29udmVydFRvQ29yZUNyZWF0aW9uT3B0aW9uc1dp
dGhPcHRpb25zOm9wdGlvbnNdLCBjb3JlVXNlclZlcmlmaWNhdGlvbkF2YWlsYWJpbGl0eSh1c2Vy
VmVyaWZpY2F0aW9uQXZhaWxhYmlsaXR5KSwgc3RkOjpudWxsb3B0KTsKKyAgICBhdXRvIGVuY29k
ZWRWZWN0b3IgPSBmaWRvOjplbmNvZGVNYWtlQ3JlZGVuaXRhbFJlcXVlc3RBc0NCT1IoaGFzaCwg
W19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwgY29udmVydFRvQ29yZUNyZWF0aW9uT3B0aW9uc1dp
dGhPcHRpb25zOm9wdGlvbnNdLCBjb3JlVXNlclZlcmlmaWNhdGlvbkF2YWlsYWJpbGl0eSh1c2Vy
VmVyaWZpY2F0aW9uQXZhaWxhYmlsaXR5KSwgZmlkbzo6QXV0aGVudGljYXRvclN1cHBvcnRlZE9w
dGlvbnM6OlJlc2lkZW50S2V5QXZhaWxhYmlsaXR5OjprU3VwcG9ydGVkLCBzdGQ6Om51bGxvcHQp
OwogICAgIGVuY29kZWRDb21tYW5kID0gYWRvcHROUyhbW05TRGF0YSBhbGxvY10gaW5pdFdpdGhC
eXRlczplbmNvZGVkVmVjdG9yLmRhdGEoKSBsZW5ndGg6ZW5jb2RlZFZlY3Rvci5zaXplKCldKTsK
ICNlbmRpZgogCkBAIC05NTUsNyArOTczLDcgQEAgc3RhdGljIFJldGFpblB0cjxfV0tBdXRoZW50
aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2U+IHdrQXV0aGVudGljYXRvckFzc2VydGlvblJlc3AKIHsK
ICAgICBSZXRhaW5QdHI8TlNEYXRhPiBlbmNvZGVkQ29tbWFuZDsKICNpZiBFTkFCTEUoV0VCX0FV
VEhOKQotICAgIGF1dG8gZW5jb2RlZFZlY3RvciA9IGZpZG86OmVuY29kZU1ha2VDcmVkZW5pdGFs
UmVxdWVzdEFzQ0JPUih2ZWN0b3JGcm9tTlNEYXRhKGNsaWVudERhdGFIYXNoKSwgW19XS1dlYkF1
dGhlbnRpY2F0aW9uUGFuZWwgY29udmVydFRvQ29yZUNyZWF0aW9uT3B0aW9uc1dpdGhPcHRpb25z
Om9wdGlvbnNdLCBjb3JlVXNlclZlcmlmaWNhdGlvbkF2YWlsYWJpbGl0eSh1c2VyVmVyaWZpY2F0
aW9uQXZhaWxhYmlsaXR5KSwgc3RkOjpudWxsb3B0KTsKKyAgICBhdXRvIGVuY29kZWRWZWN0b3Ig
PSBmaWRvOjplbmNvZGVNYWtlQ3JlZGVuaXRhbFJlcXVlc3RBc0NCT1IodmVjdG9yRnJvbU5TRGF0
YShjbGllbnREYXRhSGFzaCksIFtfV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsIGNvbnZlcnRUb0Nv
cmVDcmVhdGlvbk9wdGlvbnNXaXRoT3B0aW9uczpvcHRpb25zXSwgY29yZVVzZXJWZXJpZmljYXRp
b25BdmFpbGFiaWxpdHkodXNlclZlcmlmaWNhdGlvbkF2YWlsYWJpbGl0eSksIGZpZG86OkF1dGhl
bnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zOjpSZXNpZGVudEtleUF2YWlsYWJpbGl0eTo6a1N1cHBv
cnRlZCwgc3RkOjpudWxsb3B0KTsKICAgICBlbmNvZGVkQ29tbWFuZCA9IGFkb3B0TlMoW1tOU0Rh
dGEgYWxsb2NdIGluaXRXaXRoQnl0ZXM6ZW5jb2RlZFZlY3Rvci5kYXRhKCkgbGVuZ3RoOmVuY29k
ZWRWZWN0b3Iuc2l6ZSgpXSk7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vZmlkby9DdGFwQXV0aGVudGljYXRvci5jcHAgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9maWRvL0N0YXBBdXRoZW50
aWNhdG9yLmNwcAppbmRleCBlNTBlNjlkYjMzODBmN2I2MjBhODQxMTYwZDk4NDQ2OWQ4MGVkYzA5
Li4xNzhmYWY4NjhlZGI2OWVkOWYwNjVkZTEyNTA3NjcyY2E4N2Y3ODBjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9maWRvL0N0YXBBdXRoZW50
aWNhdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlv
bi9maWRvL0N0YXBBdXRoZW50aWNhdG9yLmNwcApAQCAtOTYsMTMgKzk2LDE0IEBAIHZvaWQgQ3Rh
cEF1dGhlbnRpY2F0b3I6Om1ha2VDcmVkZW50aWFsKCkKICAgICBWZWN0b3I8dWludDhfdD4gY2Jv
ckNtZDsKICAgICBhdXRvJiBvcHRpb25zID0gc3RkOjpnZXQ8UHVibGljS2V5Q3JlZGVudGlhbENy
ZWF0aW9uT3B0aW9ucz4ocmVxdWVzdERhdGEoKS5vcHRpb25zKTsKICAgICBhdXRvIGludGVybmFs
VVZBdmFpbGFiaWxpdHkgPSBtX2luZm8ub3B0aW9ucygpLnVzZXJWZXJpZmljYXRpb25BdmFpbGFi
aWxpdHkoKTsKKyAgICBhdXRvIHJlc2lkZW50S2V5QXZhaWxhYmlsaXR5ID0gbV9pbmZvLm9wdGlv
bnMoKS5yZXNpZGVudEtleUF2YWlsYWJpbGl0eSgpOwogICAgIC8vIElmIFVWIGlzIHJlcXVpcmVk
LCB0aGVuIGVpdGhlciBidWlsdC1pbiB1diBvciBhIHBpbiB3aWxsIHdvcmsuCiAgICAgaWYgKGlu
dGVybmFsVVZBdmFpbGFiaWxpdHkgPT0gVVZBdmFpbGFiaWxpdHk6OmtTdXBwb3J0ZWRBbmRDb25m
aWd1cmVkICYmICghb3B0aW9ucy5hdXRoZW50aWNhdG9yU2VsZWN0aW9uIHx8IG9wdGlvbnMuYXV0
aGVudGljYXRvclNlbGVjdGlvbi0+dXNlclZlcmlmaWNhdGlvbiAhPSBVc2VyVmVyaWZpY2F0aW9u
UmVxdWlyZW1lbnQ6OkRpc2NvdXJhZ2VkKSAmJiBtX3BpbkF1dGguaXNFbXB0eSgpKQotICAgICAg
ICBjYm9yQ21kID0gZW5jb2RlTWFrZUNyZWRlbml0YWxSZXF1ZXN0QXNDQk9SKHJlcXVlc3REYXRh
KCkuaGFzaCwgb3B0aW9ucywgaW50ZXJuYWxVVkF2YWlsYWJpbGl0eSk7CisgICAgICAgIGNib3JD
bWQgPSBlbmNvZGVNYWtlQ3JlZGVuaXRhbFJlcXVlc3RBc0NCT1IocmVxdWVzdERhdGEoKS5oYXNo
LCBvcHRpb25zLCBpbnRlcm5hbFVWQXZhaWxhYmlsaXR5LCByZXNpZGVudEtleUF2YWlsYWJpbGl0
eSk7CiAgICAgZWxzZSBpZiAobV9pbmZvLm9wdGlvbnMoKS5jbGllbnRQaW5BdmFpbGFiaWxpdHko
KSA9PSBBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9uczo6Q2xpZW50UGluQXZhaWxhYmlsaXR5
OjprU3VwcG9ydGVkQW5kUGluU2V0KQotICAgICAgICBjYm9yQ21kID0gZW5jb2RlTWFrZUNyZWRl
bml0YWxSZXF1ZXN0QXNDQk9SKHJlcXVlc3REYXRhKCkuaGFzaCwgb3B0aW9ucywgaW50ZXJuYWxV
VkF2YWlsYWJpbGl0eSwgUGluUGFyYW1ldGVycyB7IHBpbjo6a1Byb3RvY29sVmVyc2lvbiwgbV9w
aW5BdXRoIH0pOworICAgICAgICBjYm9yQ21kID0gZW5jb2RlTWFrZUNyZWRlbml0YWxSZXF1ZXN0
QXNDQk9SKHJlcXVlc3REYXRhKCkuaGFzaCwgb3B0aW9ucywgaW50ZXJuYWxVVkF2YWlsYWJpbGl0
eSwgcmVzaWRlbnRLZXlBdmFpbGFiaWxpdHksIFBpblBhcmFtZXRlcnMgeyBwaW46OmtQcm90b2Nv
bFZlcnNpb24sIG1fcGluQXV0aCB9KTsKICAgICBlbHNlCi0gICAgICAgIGNib3JDbWQgPSBlbmNv
ZGVNYWtlQ3JlZGVuaXRhbFJlcXVlc3RBc0NCT1IocmVxdWVzdERhdGEoKS5oYXNoLCBvcHRpb25z
LCBpbnRlcm5hbFVWQXZhaWxhYmlsaXR5KTsKKyAgICAgICAgY2JvckNtZCA9IGVuY29kZU1ha2VD
cmVkZW5pdGFsUmVxdWVzdEFzQ0JPUihyZXF1ZXN0RGF0YSgpLmhhc2gsIG9wdGlvbnMsIGludGVy
bmFsVVZBdmFpbGFiaWxpdHksIHJlc2lkZW50S2V5QXZhaWxhYmlsaXR5KTsKICAgICBkcml2ZXIo
KS50cmFuc2FjdChXVEZNb3ZlKGNib3JDbWQpLCBbd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMg
fV0oVmVjdG9yPHVpbnQ4X3Q+JiYgZGF0YSkgewogICAgICAgICBBU1NFUlQoUnVuTG9vcDo6aXNN
YWluKCkpOwogICAgICAgICBpZiAoIXdlYWtUaGlzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggN2I4YmRiZTAzMDk2NmQ0ZGZiYmU3YmM5
OGRlNzM5ZmNmNmY0YWFjYi4uODVjZWFiMWNkMzAxMDRjNWFjMmQ1NmY4OTUzODdiZTgwZjU2MTIw
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CkBAIC0xMDc5LDYgKzEwNzksNyBAQAogCQk1MUZBRUMzQTFCMDY1NzYzMDAwOUM0RTcgLyogQXV4
aWxpYXJ5UHJvY2Vzc01lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1MUZBRUMzNzFCMDY1NzMxMDAwOUM0RTcgLyogQXV4aWxpYXJ5UHJvY2Vz
c01lc3NhZ2VzLmggKi87IH07CiAJCTUxRkFFQzNCMUIwNjU3NjgwMDA5QzRFNyAvKiBBdXhpbGlh
cnlQcm9jZXNzTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDUxRkFFQzM2MUIwNjU3MzEwMDA5QzRFNyAvKiBBdXhpbGlhcnlQ
cm9jZXNzTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKIAkJNTFGRDE4QjYxNjUxRkJBRDAwREJF
MUNFIC8qIE5ldHdvcmtSZXNvdXJjZUxvYWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNTFGRDE4QjQxNjUxRkJBRDAwREJFMUNFIC8qIE5ldHdvcmtS
ZXNvdXJjZUxvYWRlci5oICovOyB9OworCQk1MjY4OEFCNDI3RDdDRTQwMDAzNTc3QTIgLyogX1dL
UmVzaWRlbnRLZXlSZXF1aXJlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNTI2ODhBQjMyN0Q3Q0U0MDAwMzU3N0EyIC8qIF9XS1Jlc2lkZW50S2V5
UmVxdWlyZW1lbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQk1MjcyRDRDOTFFNzM1RjA5MDBFQjQyOTAgLyogV0tQcm90ZWN0aW9uU3BhY2VOUy5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTI3MkQ0Qzcx
RTczNUYwOTAwRUI0MjkwIC8qIFdLUHJvdGVjdGlvblNwYWNlTlMuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1MjhDMzdDMTE5NUNCQjFBMDBEOEI5
Q0MgLyogV0tCYWNrRm9yd2FyZExpc3RQcml2YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQTlGMjgxMDE5NThGNDc4MDA4Q0FDNzIgLyogV0tCYWNr
Rm9yd2FyZExpc3RQcml2YXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJNTJDREM1QzQyNzMxREEwRDAwQTNFM0VCIC8qIFZpcnR1YWxBdXRoZW50
aWNhdG9yQ29uZmlndXJhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNTJDREM1QkQyNzMxREEwQzAwQTNFM0VCIC8qIFZpcnR1YWxBdXRoZW50aWNh
dG9yQ29uZmlndXJhdGlvbi5oICovOyB9OwpAQCAtNDY0Miw2ICs0NjQzLDcgQEAKIAkJNTFGQjA5
MDIxNjNBM0IxQzAwRUMzMjRBIC8qIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5p
biAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7
IG5hbWUgPSBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW47IHBhdGggPSBOZXR3
b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNTFGRDE4QjMxNjUxRkJBRDAwREJFMUNFIC8qIE5ldHdvcmtSZXNvdXJj
ZUxvYWRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBOZXR3b3Jr
UmVzb3VyY2VMb2FkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MUZEMThC
NDE2NTFGQkFEMDBEQkUxQ0UgLyogTmV0d29ya1Jlc291cmNlTG9hZGVyLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5ldHdvcmtSZXNvdXJjZUxvYWRlci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk1MjY4OEFCMzI3RDdDRTQwMDAzNTc3QTIgLyogX1dLUmVzaWRl
bnRLZXlSZXF1aXJlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBfV0tSZXNpZGVudEtleVJlcXVpcmVt
ZW50Lmg7IHBhdGggPSBVSVByb2Nlc3MvQVBJL0NvY29hL19XS1Jlc2lkZW50S2V5UmVxdWlyZW1l
bnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTI3MkQ0QzcxRTczNUYwOTAwRUI0
MjkwIC8qIFdLUHJvdGVjdGlvblNwYWNlTlMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBu
YW1lID0gV0tQcm90ZWN0aW9uU3BhY2VOUy5oOyBwYXRoID0gbWFjL1dLUHJvdGVjdGlvblNwYWNl
TlMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTI3MkQ0QzgxRTczNUYwOTAwRUI0
MjkwIC8qIFdLUHJvdGVjdGlvblNwYWNlTlMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IG5hbWUgPSBXS1Byb3RlY3Rpb25TcGFjZU5TLm1tOyBwYXRoID0gbWFjL1dLUHJvdGVj
dGlvblNwYWNlTlMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUyQ0RDNUJEMjcz
MURBMEMwMEEzRTNFQiAvKiBWaXJ0dWFsQXV0aGVudGljYXRvckNvbmZpZ3VyYXRpb24uaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmlydHVhbEF1dGhlbnRpY2F0b3JDb25maWd1
cmF0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC02OTgyLDYgKzY5ODQsNyBA
QAogCQkwODY3RDY5MUZFODQwMjhGQzAyQUFDMDcgLyogV2ViS2l0MiAqLyA9IHsKIAkJCWlzYSA9
IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJNTI2ODhBQjMyN0Q3Q0U0MDAwMzU3N0Ey
IC8qIF9XS1Jlc2lkZW50S2V5UmVxdWlyZW1lbnQuaCAqLywKIAkJCQk1QzE1N0EwQTI3MTdDOUYx
MDBFRDUyODAgLyogd2VicHVzaGQgKi8sCiAJCQkJQjM5NkVBNTUxMkUwRUQyRDAwRjRGRUI3IC8q
IGNvbmZpZy5oICovLAogCQkJCTJEN0RFQkUwMjEyNjlENUYwMEI5RjczQyAvKiBTb3VyY2VzLnR4
dCAqLywKQEAgLTEyOTg2LDYgKzEyOTg5LDcgQEAKIAkJCQk5OTBFMUUwOTIzODRBQTU3MDA0NjAy
REYgLyogX1dLUmVtb3RlV2ViSW5zcGVjdG9yVmlld0NvbnRyb2xsZXJQcml2YXRlLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkzNzcyMTZCODFBNEU2QkUwMDBEQ0E3MTggLyogX1dLUmVuZGVyaW5nUHJv
Z3Jlc3NFdmVudHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTFGNjA0QkFBMTg4OUZCQjgwMEVFMDM5
NSAvKiBfV0tSZW5kZXJpbmdQcm9ncmVzc0V2ZW50c0ludGVybmFsLmggaW4gSGVhZGVycyAqLywK
KwkJCQk1MjY4OEFCNDI3RDdDRTQwMDAzNTc3QTIgLyogX1dLUmVzaWRlbnRLZXlSZXF1aXJlbWVu
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNCN0FGRTAyM0M1MkNFNTAwRTQ5Q0YzIC8qIF9XS1Jl
c291cmNlTG9hZERlbGVnYXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0I3QUZFODIzQzY5QjYx
MDBFNDlDRjMgLyogX1dLUmVzb3VyY2VMb2FkSW5mby5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDlG
QkYwMDEyMzlCMUY4RDAwQkQwMzJGIC8qIF9XS1Jlc291cmNlTG9hZFN0YXRpc3RpY3NGaXJzdFBh
cnR5LmggaW4gSGVhZGVycyAqLywKQEAgLTEzNjc3LDcgKzEzNjgxLDYgQEAKIAkJCQk1NzQyQTMw
ODI1MzU4QTA0MDBCN0JBMTQgLyogV2ViQXV0aG5Qcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk1NzJFQkJDMjI1MzZBNjBBMDAwNTUyQjMgLyogV2ViQXV0aG5Q
cm9jZXNzTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTU3MkVCQkM5MjUzNkFGRDUwMDA1
NTJCMyAvKiBXZWJBdXRoblByb2Nlc3NQcm94eS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNTcyRUJC
RDAyNTM2QkIxMTAwMDU1MkIzIC8qIFdlYkF1dGhuUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUY0MkQ2MzQxMjJBMEVGREYwMEQyRkIzQSAvKiBXZWJBdXRvY29ycmVj
dGlvbkRhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCTk5MEQzOUY1MjQzQkU2NDgwMDE5OTM4OCAv
KiBXZWJBdXRvbWF0aW9uRE9NV2luZG93T2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTk5
NTVBNkVDMUM3OTgwQzIwMEVCNkE5MyAvKiBXZWJBdXRvbWF0aW9uU2Vzc2lvbi5oIGluIEhlYWRl
cnMgKi8sCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5k
ZXggNmNkODcyMzc3YzQyOTA2NzY5ZTkwMTlmZGQ4YmZjZWNjNGRlNWJkOC4uNTdiYzAwNWM0YWE1
NjYyNmRkOTZiZGFjNzExNGEzZTEyNzFlMGY1ZiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9n
CisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDIyLTAzLTA4ICBKIFBh
c2NvZSAgPGpfcGFzY29lQGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViQXV0aG5dIFN1cHBvcnQg
YXV0aGVudGljYXRvclNlbGVjdGlvbi5yZXNpZGVudEtleSBSZXNpZGVudEtleVJlcXVpcmVtZW50
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzc1NjcK
KyAgICAgICAgcmRhcjovLzg5Nzg4Mzc4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgQWRkIEFQSSB0ZXN0cyBmb3IgYXV0aGVudGljYXRvclNlbGVjdGlv
bi5yZXNpZGVudEtleS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9D
dGFwUmVxdWVzdFRlc3QuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAg
ICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0N0YXBSZXNwb25zZVRlc3QuY3BwOgor
ICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisKIDIwMjItMDMtMDggIFlvdWVubiBGYWJs
ZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBhIHByZWZlcmVuY2UgdG8gbXV0
ZSB2aWRlbyBjYXB0dXJlIGluIGNhc2UgYXVkaW8gY2FwdHVyZSBnZXRzIGludGVycnVwdGVkCmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ3RhcFJlcXVlc3RU
ZXN0LmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9DdGFwUmVxdWVzdFRl
c3QuY3BwCmluZGV4IGYxYTY4MzY5ZjcxMjNmMTY4YzBkYzJkYTc4ZmIwYmFmNmEyMzg2MGYuLjkx
YzA4OGUxYTUxZTE1ZTkzMjdhY2YwOThhOWRhZGNiY2EwMzU1M2YgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9DdGFwUmVxdWVzdFRlc3QuY3BwCisrKyBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9DdGFwUmVxdWVzdFRlc3QuY3BwCkBAIC02
MCwxMiArNjAsMTIgQEAgVEVTVChDVEFQUmVxdWVzdFRlc3QsIFRlc3RDb25zdHJ1Y3RNYWtlQ3Jl
ZGVudGlhbFJlcXVlc3RQYXJhbSkKICAgICB1c2VyLmRpc3BsYXlOYW1lID0gIkpvaG4gUC4gU21p
dGgiOwogCiAgICAgVmVjdG9yPFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnM6OlBh
cmFtZXRlcnM+IHBhcmFtcyB7IHsgUHVibGljS2V5Q3JlZGVudGlhbFR5cGU6OlB1YmxpY0tleSwg
NyB9LCB7IFB1YmxpY0tleUNyZWRlbnRpYWxUeXBlOjpQdWJsaWNLZXksIDI1NyB9IH07Ci0gICAg
UHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9uczo6QXV0aGVudGljYXRvclNlbGVjdGlv
bkNyaXRlcmlhIHNlbGVjdGlvbiB7IEF1dGhlbnRpY2F0b3JBdHRhY2htZW50OjpQbGF0Zm9ybSwg
dHJ1ZSwgVXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50OjpQcmVmZXJyZWQgfTsKKyAgICBQdWJs
aWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zOjpBdXRoZW50aWNhdG9yU2VsZWN0aW9uQ3Jp
dGVyaWEgc2VsZWN0aW9uIHsgQXV0aGVudGljYXRvckF0dGFjaG1lbnQ6OlBsYXRmb3JtLCBzdGQ6
Om51bGxvcHQsIHRydWUsIFVzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudDo6UHJlZmVycmVkIH07
CiAKICAgICBQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zIG9wdGlvbnMgeyBycCwg
dXNlciwgeyB9LCBwYXJhbXMsIHN0ZDo6bnVsbG9wdCwgeyB9LCBzZWxlY3Rpb24sIEF0dGVzdGF0
aW9uQ29udmV5YW5jZVByZWZlcmVuY2U6Ok5vbmUsIHN0ZDo6bnVsbG9wdCB9OwogICAgIFZlY3Rv
cjx1aW50OF90PiBoYXNoOwogICAgIGhhc2guYXBwZW5kKFRlc3REYXRhOjprQ2xpZW50RGF0YUhh
c2gsIHNpemVvZihUZXN0RGF0YTo6a0NsaWVudERhdGFIYXNoKSk7Ci0gICAgYXV0byBzZXJpYWxp
emVkRGF0YSA9IGVuY29kZU1ha2VDcmVkZW5pdGFsUmVxdWVzdEFzQ0JPUihoYXNoLCBvcHRpb25z
LCBBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9uczo6VXNlclZlcmlmaWNhdGlvbkF2YWlsYWJp
bGl0eTo6a1N1cHBvcnRlZEFuZENvbmZpZ3VyZWQpOworICAgIGF1dG8gc2VyaWFsaXplZERhdGEg
PSBlbmNvZGVNYWtlQ3JlZGVuaXRhbFJlcXVlc3RBc0NCT1IoaGFzaCwgb3B0aW9ucywgQXV0aGVu
dGljYXRvclN1cHBvcnRlZE9wdGlvbnM6OlVzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHk6OmtT
dXBwb3J0ZWRBbmRDb25maWd1cmVkLCBBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9uczo6UmVz
aWRlbnRLZXlBdmFpbGFiaWxpdHk6OmtTdXBwb3J0ZWQpOwogICAgIEVYUEVDVF9FUShzZXJpYWxp
emVkRGF0YS5zaXplKCksIHNpemVvZihUZXN0RGF0YTo6a0N0YXBNYWtlQ3JlZGVudGlhbFJlcXVl
c3QpKTsKICAgICBFWFBFQ1RfRVEobWVtY21wKHNlcmlhbGl6ZWREYXRhLmRhdGEoKSwgVGVzdERh
dGE6OmtDdGFwTWFrZUNyZWRlbnRpYWxSZXF1ZXN0LCBzZXJpYWxpemVkRGF0YS5zaXplKCkpLCAw
KTsKIH0KQEAgLTgzLDEyICs4MywxMiBAQCBURVNUKENUQVBSZXF1ZXN0VGVzdCwgVGVzdENvbnN0
cnVjdE1ha2VDcmVkZW50aWFsUmVxdWVzdFBhcmFtTm9VVk5vUkspCiAgICAgdXNlci5kaXNwbGF5
TmFtZSA9ICJKb2huIFAuIFNtaXRoIjsKIAogICAgIFZlY3RvcjxQdWJsaWNLZXlDcmVkZW50aWFs
Q3JlYXRpb25PcHRpb25zOjpQYXJhbWV0ZXJzPiBwYXJhbXMgeyB7IFB1YmxpY0tleUNyZWRlbnRp
YWxUeXBlOjpQdWJsaWNLZXksIDcgfSwgeyBQdWJsaWNLZXlDcmVkZW50aWFsVHlwZTo6UHVibGlj
S2V5LCAyNTcgfSB9OwotICAgIFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnM6OkF1
dGhlbnRpY2F0b3JTZWxlY3Rpb25Dcml0ZXJpYSBzZWxlY3Rpb24geyBBdXRoZW50aWNhdG9yQXR0
YWNobWVudDo6UGxhdGZvcm0sIGZhbHNlLCBVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQ6OkRp
c2NvdXJhZ2VkIH07CisgICAgUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9uczo6QXV0
aGVudGljYXRvclNlbGVjdGlvbkNyaXRlcmlhIHNlbGVjdGlvbiB7IEF1dGhlbnRpY2F0b3JBdHRh
Y2htZW50OjpQbGF0Zm9ybSwgc3RkOjpudWxsb3B0LCBmYWxzZSwgVXNlclZlcmlmaWNhdGlvblJl
cXVpcmVtZW50OjpEaXNjb3VyYWdlZCB9OwogCiAgICAgUHVibGljS2V5Q3JlZGVudGlhbENyZWF0
aW9uT3B0aW9ucyBvcHRpb25zIHsgcnAsIHVzZXIsIHsgfSwgcGFyYW1zLCBzdGQ6Om51bGxvcHQs
IHsgfSwgc2VsZWN0aW9uLCBBdHRlc3RhdGlvbkNvbnZleWFuY2VQcmVmZXJlbmNlOjpOb25lLCBz
dGQ6Om51bGxvcHQgfTsKICAgICBWZWN0b3I8dWludDhfdD4gaGFzaDsKICAgICBoYXNoLmFwcGVu
ZChUZXN0RGF0YTo6a0NsaWVudERhdGFIYXNoLCBzaXplb2YoVGVzdERhdGE6OmtDbGllbnREYXRh
SGFzaCkpOwotICAgIGF1dG8gc2VyaWFsaXplZERhdGEgPSBlbmNvZGVNYWtlQ3JlZGVuaXRhbFJl
cXVlc3RBc0NCT1IoaGFzaCwgb3B0aW9ucywgQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnM6
OlVzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHk6OmtTdXBwb3J0ZWRBbmRDb25maWd1cmVkKTsK
KyAgICBhdXRvIHNlcmlhbGl6ZWREYXRhID0gZW5jb2RlTWFrZUNyZWRlbml0YWxSZXF1ZXN0QXND
Qk9SKGhhc2gsIG9wdGlvbnMsIEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zOjpVc2VyVmVy
aWZpY2F0aW9uQXZhaWxhYmlsaXR5OjprU3VwcG9ydGVkQW5kQ29uZmlndXJlZCwgQXV0aGVudGlj
YXRvclN1cHBvcnRlZE9wdGlvbnM6OlJlc2lkZW50S2V5QXZhaWxhYmlsaXR5OjprU3VwcG9ydGVk
KTsKICAgICBFWFBFQ1RfRVEoc2VyaWFsaXplZERhdGEuc2l6ZSgpLCBzaXplb2YoVGVzdERhdGE6
OmtDdGFwTWFrZUNyZWRlbnRpYWxSZXF1ZXN0U2hvcnQpKTsKICAgICBFWFBFQ1RfRVEobWVtY21w
KHNlcmlhbGl6ZWREYXRhLmRhdGEoKSwgVGVzdERhdGE6OmtDdGFwTWFrZUNyZWRlbnRpYWxSZXF1
ZXN0U2hvcnQsIHNlcmlhbGl6ZWREYXRhLnNpemUoKSksIDApOwogfQpAQCAtMTA2LDEyICsxMDYs
MTIgQEAgVEVTVChDVEFQUmVxdWVzdFRlc3QsIFRlc3RDb25zdHJ1Y3RNYWtlQ3JlZGVudGlhbFJl
cXVlc3RQYXJhbVVWUmVxdWlyZWRCdXROb3RTdXAKICAgICB1c2VyLmRpc3BsYXlOYW1lID0gIkpv
aG4gUC4gU21pdGgiOwogCiAgICAgVmVjdG9yPFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9w
dGlvbnM6OlBhcmFtZXRlcnM+IHBhcmFtcyB7IHsgUHVibGljS2V5Q3JlZGVudGlhbFR5cGU6OlB1
YmxpY0tleSwgNyB9LCB7IFB1YmxpY0tleUNyZWRlbnRpYWxUeXBlOjpQdWJsaWNLZXksIDI1NyB9
IH07Ci0gICAgUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9uczo6QXV0aGVudGljYXRv
clNlbGVjdGlvbkNyaXRlcmlhIHNlbGVjdGlvbiB7IEF1dGhlbnRpY2F0b3JBdHRhY2htZW50OjpQ
bGF0Zm9ybSwgZmFsc2UsIFVzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudDo6UmVxdWlyZWQgfTsK
KyAgICBQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zOjpBdXRoZW50aWNhdG9yU2Vs
ZWN0aW9uQ3JpdGVyaWEgc2VsZWN0aW9uIHsgQXV0aGVudGljYXRvckF0dGFjaG1lbnQ6OlBsYXRm
b3JtLCBzdGQ6Om51bGxvcHQsIGZhbHNlLCBVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQ6OlJl
cXVpcmVkIH07CiAKICAgICBQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zIG9wdGlv
bnMgeyBycCwgdXNlciwgeyB9LCBwYXJhbXMsIHN0ZDo6bnVsbG9wdCwgeyB9LCBzZWxlY3Rpb24s
IEF0dGVzdGF0aW9uQ29udmV5YW5jZVByZWZlcmVuY2U6Ok5vbmUsIHN0ZDo6bnVsbG9wdCB9Owog
ICAgIFZlY3Rvcjx1aW50OF90PiBoYXNoOwogICAgIGhhc2guYXBwZW5kKFRlc3REYXRhOjprQ2xp
ZW50RGF0YUhhc2gsIHNpemVvZihUZXN0RGF0YTo6a0NsaWVudERhdGFIYXNoKSk7Ci0gICAgYXV0
byBzZXJpYWxpemVkRGF0YSA9IGVuY29kZU1ha2VDcmVkZW5pdGFsUmVxdWVzdEFzQ0JPUihoYXNo
LCBvcHRpb25zLCBBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9uczo6VXNlclZlcmlmaWNhdGlv
bkF2YWlsYWJpbGl0eTo6a05vdFN1cHBvcnRlZCk7CisgICAgYXV0byBzZXJpYWxpemVkRGF0YSA9
IGVuY29kZU1ha2VDcmVkZW5pdGFsUmVxdWVzdEFzQ0JPUihoYXNoLCBvcHRpb25zLCBBdXRoZW50
aWNhdG9yU3VwcG9ydGVkT3B0aW9uczo6VXNlclZlcmlmaWNhdGlvbkF2YWlsYWJpbGl0eTo6a05v
dFN1cHBvcnRlZCwgQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnM6OlJlc2lkZW50S2V5QXZh
aWxhYmlsaXR5OjprU3VwcG9ydGVkKTsKICAgICBFWFBFQ1RfRVEoc2VyaWFsaXplZERhdGEuc2l6
ZSgpLCBzaXplb2YoVGVzdERhdGE6OmtDdGFwTWFrZUNyZWRlbnRpYWxSZXF1ZXN0U2hvcnQpKTsK
ICAgICBFWFBFQ1RfRVEobWVtY21wKHNlcmlhbGl6ZWREYXRhLmRhdGEoKSwgVGVzdERhdGE6OmtD
dGFwTWFrZUNyZWRlbnRpYWxSZXF1ZXN0U2hvcnQsIHNlcmlhbGl6ZWREYXRhLnNpemUoKSksIDAp
OwogfQpAQCAtMTI5LDcgKzEyOSw3IEBAIFRFU1QoQ1RBUFJlcXVlc3RUZXN0LCBUZXN0Q29uc3Ry
dWN0TWFrZUNyZWRlbnRpYWxSZXF1ZXN0UGFyYW1XaXRoUGluKQogICAgIHVzZXIuZGlzcGxheU5h
bWUgPSAiSm9obiBQLiBTbWl0aCI7CiAKICAgICBWZWN0b3I8UHVibGljS2V5Q3JlZGVudGlhbENy
ZWF0aW9uT3B0aW9uczo6UGFyYW1ldGVycz4gcGFyYW1zIHsgeyBQdWJsaWNLZXlDcmVkZW50aWFs
VHlwZTo6UHVibGljS2V5LCA3IH0sIHsgUHVibGljS2V5Q3JlZGVudGlhbFR5cGU6OlB1YmxpY0tl
eSwgMjU3IH0gfTsKLSAgICBQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zOjpBdXRo
ZW50aWNhdG9yU2VsZWN0aW9uQ3JpdGVyaWEgc2VsZWN0aW9uIHsgQXV0aGVudGljYXRvckF0dGFj
aG1lbnQ6OlBsYXRmb3JtLCB0cnVlLCBVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQ6OlByZWZl
cnJlZCB9OworICAgIFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnM6OkF1dGhlbnRp
Y2F0b3JTZWxlY3Rpb25Dcml0ZXJpYSBzZWxlY3Rpb24geyBBdXRoZW50aWNhdG9yQXR0YWNobWVu
dDo6UGxhdGZvcm0sIHN0ZDo6bnVsbG9wdCwgdHJ1ZSwgVXNlclZlcmlmaWNhdGlvblJlcXVpcmVt
ZW50OjpQcmVmZXJyZWQgfTsKIAogICAgIFBpblBhcmFtZXRlcnMgcGluOwogICAgIHBpbi5wcm90
b2NvbCA9IHBpbjo6a1Byb3RvY29sVmVyc2lvbjsKQEAgLTEzOCwxMSArMTM4LDg0IEBAIFRFU1Qo
Q1RBUFJlcXVlc3RUZXN0LCBUZXN0Q29uc3RydWN0TWFrZUNyZWRlbnRpYWxSZXF1ZXN0UGFyYW1X
aXRoUGluKQogICAgIFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMgb3B0aW9ucyB7
IHJwLCB1c2VyLCB7IH0sIHBhcmFtcywgc3RkOjpudWxsb3B0LCB7IH0sIHNlbGVjdGlvbiwgQXR0
ZXN0YXRpb25Db252ZXlhbmNlUHJlZmVyZW5jZTo6Tm9uZSwgc3RkOjpudWxsb3B0IH07CiAgICAg
VmVjdG9yPHVpbnQ4X3Q+IGhhc2g7CiAgICAgaGFzaC5hcHBlbmQoVGVzdERhdGE6OmtDbGllbnRE
YXRhSGFzaCwgc2l6ZW9mKFRlc3REYXRhOjprQ2xpZW50RGF0YUhhc2gpKTsKLSAgICBhdXRvIHNl
cmlhbGl6ZWREYXRhID0gZW5jb2RlTWFrZUNyZWRlbml0YWxSZXF1ZXN0QXNDQk9SKGhhc2gsIG9w
dGlvbnMsIEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zOjpVc2VyVmVyaWZpY2F0aW9uQXZh
aWxhYmlsaXR5OjprU3VwcG9ydGVkQW5kQ29uZmlndXJlZCwgcGluKTsKKyAgICBhdXRvIHNlcmlh
bGl6ZWREYXRhID0gZW5jb2RlTWFrZUNyZWRlbml0YWxSZXF1ZXN0QXNDQk9SKGhhc2gsIG9wdGlv
bnMsIEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zOjpVc2VyVmVyaWZpY2F0aW9uQXZhaWxh
YmlsaXR5OjprU3VwcG9ydGVkQW5kQ29uZmlndXJlZCwgQXV0aGVudGljYXRvclN1cHBvcnRlZE9w
dGlvbnM6OlJlc2lkZW50S2V5QXZhaWxhYmlsaXR5OjprU3VwcG9ydGVkLCBwaW4pOwogICAgIEVY
UEVDVF9FUShzZXJpYWxpemVkRGF0YS5zaXplKCksIHNpemVvZihUZXN0RGF0YTo6a0N0YXBNYWtl
Q3JlZGVudGlhbFJlcXVlc3RXaXRoUGluKSk7CiAgICAgRVhQRUNUX0VRKG1lbWNtcChzZXJpYWxp
emVkRGF0YS5kYXRhKCksIFRlc3REYXRhOjprQ3RhcE1ha2VDcmVkZW50aWFsUmVxdWVzdFdpdGhQ
aW4sIHNlcmlhbGl6ZWREYXRhLnNpemUoKSksIDApOwogfQogCitURVNUKENUQVBSZXF1ZXN0VGVz
dCwgVGVzdENvbnN0cnVjdE1ha2VDcmVkZW50aWFsUmVxdWVzdFJLUHJlZmVycmVkKQoreworICAg
IFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnM6OlJwRW50aXR5IHJwOworICAgIHJw
Lm5hbWUgPSAiQWNtZSI7CisgICAgcnAuaWQgPSAiYWNtZS5jb20iOworCisgICAgUHVibGljS2V5
Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9uczo6VXNlckVudGl0eSB1c2VyOworICAgIHVzZXIubmFt
ZSA9ICJqb2hucHNtaXRoQGV4YW1wbGUuY29tIjsKKyAgICB1c2VyLmljb24gPSAiaHR0cHM6Ly9w
aWNzLmFjbWUuY29tLzAwL3AvYUJqampwcVBiLnBuZyI7CisgICAgdXNlci5pZCA9IFdlYkNvcmU6
OnRvQnVmZmVyU291cmNlKFRlc3REYXRhOjprVXNlcklkLCBzaXplb2YoVGVzdERhdGE6OmtVc2Vy
SWQpKTsKKyAgICB1c2VyLmRpc3BsYXlOYW1lID0gIkpvaG4gUC4gU21pdGgiOworCisgICAgVmVj
dG9yPFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnM6OlBhcmFtZXRlcnM+IHBhcmFt
cyB7IHsgUHVibGljS2V5Q3JlZGVudGlhbFR5cGU6OlB1YmxpY0tleSwgNyB9LCB7IFB1YmxpY0tl
eUNyZWRlbnRpYWxUeXBlOjpQdWJsaWNLZXksIDI1NyB9IH07CisgICAgUHVibGljS2V5Q3JlZGVu
dGlhbENyZWF0aW9uT3B0aW9uczo6QXV0aGVudGljYXRvclNlbGVjdGlvbkNyaXRlcmlhIHNlbGVj
dGlvbiB7IEF1dGhlbnRpY2F0b3JBdHRhY2htZW50OjpQbGF0Zm9ybSwgUmVzaWRlbnRLZXlSZXF1
aXJlbWVudDo6UHJlZmVycmVkLCB0cnVlLCBVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQ6OlBy
ZWZlcnJlZCB9OworCisgICAgUGluUGFyYW1ldGVycyBwaW47CisgICAgcGluLnByb3RvY29sID0g
cGluOjprUHJvdG9jb2xWZXJzaW9uOworICAgIHBpbi5hdXRoLmFwcGVuZChUZXN0RGF0YTo6a0N0
YXAyUGluQXV0aCwgc2l6ZW9mKFRlc3REYXRhOjprQ3RhcDJQaW5BdXRoKSk7CisKKyAgICBQdWJs
aWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zIG9wdGlvbnMgeyBycCwgdXNlciwgeyB9LCBw
YXJhbXMsIHN0ZDo6bnVsbG9wdCwgeyB9LCBzZWxlY3Rpb24sIEF0dGVzdGF0aW9uQ29udmV5YW5j
ZVByZWZlcmVuY2U6Ok5vbmUsIHN0ZDo6bnVsbG9wdCB9OworICAgIFZlY3Rvcjx1aW50OF90PiBo
YXNoOworICAgIGhhc2guYXBwZW5kKFRlc3REYXRhOjprQ2xpZW50RGF0YUhhc2gsIHNpemVvZihU
ZXN0RGF0YTo6a0NsaWVudERhdGFIYXNoKSk7CisgICAgYXV0byBzZXJpYWxpemVkRGF0YSA9IGVu
Y29kZU1ha2VDcmVkZW5pdGFsUmVxdWVzdEFzQ0JPUihoYXNoLCBvcHRpb25zLCBBdXRoZW50aWNh
dG9yU3VwcG9ydGVkT3B0aW9uczo6VXNlclZlcmlmaWNhdGlvbkF2YWlsYWJpbGl0eTo6a1N1cHBv
cnRlZEFuZENvbmZpZ3VyZWQsIEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zOjpSZXNpZGVu
dEtleUF2YWlsYWJpbGl0eTo6a1N1cHBvcnRlZCwgcGluKTsKKyAgICBFWFBFQ1RfRVEoc2VyaWFs
aXplZERhdGEuc2l6ZSgpLCBzaXplb2YoVGVzdERhdGE6OmtDdGFwTWFrZUNyZWRlbnRpYWxSZXF1
ZXN0V2l0aFBpbikpOworICAgIEVYUEVDVF9FUShtZW1jbXAoc2VyaWFsaXplZERhdGEuZGF0YSgp
LCBUZXN0RGF0YTo6a0N0YXBNYWtlQ3JlZGVudGlhbFJlcXVlc3RXaXRoUGluLCBzZXJpYWxpemVk
RGF0YS5zaXplKCkpLCAwKTsKK30KKworVEVTVChDVEFQUmVxdWVzdFRlc3QsIFRlc3RDb25zdHJ1
Y3RNYWtlQ3JlZGVudGlhbFJlcXVlc3RSS1ByZWZlcnJlZE5vdFN1cHBvcnRlZCkKK3sKKyAgICBQ
dWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zOjpScEVudGl0eSBycDsKKyAgICBycC5u
YW1lID0gIkFjbWUiOworICAgIHJwLmlkID0gImFjbWUuY29tIjsKKworICAgIFB1YmxpY0tleUNy
ZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnM6OlVzZXJFbnRpdHkgdXNlcjsKKyAgICB1c2VyLm5hbWUg
PSAiam9obnBzbWl0aEBleGFtcGxlLmNvbSI7CisgICAgdXNlci5pY29uID0gImh0dHBzOi8vcGlj
cy5hY21lLmNvbS8wMC9wL2FCampqcHFQYi5wbmciOworICAgIHVzZXIuaWQgPSBXZWJDb3JlOjp0
b0J1ZmZlclNvdXJjZShUZXN0RGF0YTo6a1VzZXJJZCwgc2l6ZW9mKFRlc3REYXRhOjprVXNlcklk
KSk7CisgICAgdXNlci5kaXNwbGF5TmFtZSA9ICJKb2huIFAuIFNtaXRoIjsKKworICAgIFZlY3Rv
cjxQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zOjpQYXJhbWV0ZXJzPiBwYXJhbXMg
eyB7IFB1YmxpY0tleUNyZWRlbnRpYWxUeXBlOjpQdWJsaWNLZXksIDcgfSwgeyBQdWJsaWNLZXlD
cmVkZW50aWFsVHlwZTo6UHVibGljS2V5LCAyNTcgfSB9OworICAgIFB1YmxpY0tleUNyZWRlbnRp
YWxDcmVhdGlvbk9wdGlvbnM6OkF1dGhlbnRpY2F0b3JTZWxlY3Rpb25Dcml0ZXJpYSBzZWxlY3Rp
b24geyBBdXRoZW50aWNhdG9yQXR0YWNobWVudDo6UGxhdGZvcm0sIFJlc2lkZW50S2V5UmVxdWly
ZW1lbnQ6OlByZWZlcnJlZCwgdHJ1ZSwgVXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50OjpSZXF1
aXJlZCB9OworCisgICAgUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucyBvcHRpb25z
IHsgcnAsIHVzZXIsIHsgfSwgcGFyYW1zLCBzdGQ6Om51bGxvcHQsIHsgfSwgc2VsZWN0aW9uLCBB
dHRlc3RhdGlvbkNvbnZleWFuY2VQcmVmZXJlbmNlOjpOb25lLCBzdGQ6Om51bGxvcHQgfTsKKyAg
ICBWZWN0b3I8dWludDhfdD4gaGFzaDsKKyAgICBoYXNoLmFwcGVuZChUZXN0RGF0YTo6a0NsaWVu
dERhdGFIYXNoLCBzaXplb2YoVGVzdERhdGE6OmtDbGllbnREYXRhSGFzaCkpOworICAgIGF1dG8g
c2VyaWFsaXplZERhdGEgPSBlbmNvZGVNYWtlQ3JlZGVuaXRhbFJlcXVlc3RBc0NCT1IoaGFzaCwg
b3B0aW9ucywgQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnM6OlVzZXJWZXJpZmljYXRpb25B
dmFpbGFiaWxpdHk6OmtOb3RTdXBwb3J0ZWQsIEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25z
OjpSZXNpZGVudEtleUF2YWlsYWJpbGl0eTo6a05vdFN1cHBvcnRlZCk7CisgICAgRVhQRUNUX0VR
KHNlcmlhbGl6ZWREYXRhLnNpemUoKSwgc2l6ZW9mKFRlc3REYXRhOjprQ3RhcE1ha2VDcmVkZW50
aWFsUmVxdWVzdFNob3J0KSk7CisgICAgRVhQRUNUX0VRKG1lbWNtcChzZXJpYWxpemVkRGF0YS5k
YXRhKCksIFRlc3REYXRhOjprQ3RhcE1ha2VDcmVkZW50aWFsUmVxdWVzdFNob3J0LCBzZXJpYWxp
emVkRGF0YS5zaXplKCkpLCAwKTsKK30KKworVEVTVChDVEFQUmVxdWVzdFRlc3QsIFRlc3RDb25z
dHJ1Y3RNYWtlQ3JlZGVudGlhbFJlcXVlc3RSS0Rpc2NvdXJhZ2VkKQoreworICAgIFB1YmxpY0tl
eUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnM6OlJwRW50aXR5IHJwOworICAgIHJwLm5hbWUgPSAi
QWNtZSI7CisgICAgcnAuaWQgPSAiYWNtZS5jb20iOworCisgICAgUHVibGljS2V5Q3JlZGVudGlh
bENyZWF0aW9uT3B0aW9uczo6VXNlckVudGl0eSB1c2VyOworICAgIHVzZXIubmFtZSA9ICJqb2hu
cHNtaXRoQGV4YW1wbGUuY29tIjsKKyAgICB1c2VyLmljb24gPSAiaHR0cHM6Ly9waWNzLmFjbWUu
Y29tLzAwL3AvYUJqampwcVBiLnBuZyI7CisgICAgdXNlci5pZCA9IFdlYkNvcmU6OnRvQnVmZmVy
U291cmNlKFRlc3REYXRhOjprVXNlcklkLCBzaXplb2YoVGVzdERhdGE6OmtVc2VySWQpKTsKKyAg
ICB1c2VyLmRpc3BsYXlOYW1lID0gIkpvaG4gUC4gU21pdGgiOworCisgICAgVmVjdG9yPFB1Ymxp
Y0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnM6OlBhcmFtZXRlcnM+IHBhcmFtcyB7IHsgUHVi
bGljS2V5Q3JlZGVudGlhbFR5cGU6OlB1YmxpY0tleSwgNyB9LCB7IFB1YmxpY0tleUNyZWRlbnRp
YWxUeXBlOjpQdWJsaWNLZXksIDI1NyB9IH07CisgICAgUHVibGljS2V5Q3JlZGVudGlhbENyZWF0
aW9uT3B0aW9uczo6QXV0aGVudGljYXRvclNlbGVjdGlvbkNyaXRlcmlhIHNlbGVjdGlvbiB7IEF1
dGhlbnRpY2F0b3JBdHRhY2htZW50OjpQbGF0Zm9ybSwgUmVzaWRlbnRLZXlSZXF1aXJlbWVudDo6
RGlzY291cmFnZWQsIHRydWUsIFVzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudDo6UmVxdWlyZWQg
fTsKKworICAgIFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMgb3B0aW9ucyB7IHJw
LCB1c2VyLCB7IH0sIHBhcmFtcywgc3RkOjpudWxsb3B0LCB7IH0sIHNlbGVjdGlvbiwgQXR0ZXN0
YXRpb25Db252ZXlhbmNlUHJlZmVyZW5jZTo6Tm9uZSwgc3RkOjpudWxsb3B0IH07CisgICAgVmVj
dG9yPHVpbnQ4X3Q+IGhhc2g7CisgICAgaGFzaC5hcHBlbmQoVGVzdERhdGE6OmtDbGllbnREYXRh
SGFzaCwgc2l6ZW9mKFRlc3REYXRhOjprQ2xpZW50RGF0YUhhc2gpKTsKKyAgICBhdXRvIHNlcmlh
bGl6ZWREYXRhID0gZW5jb2RlTWFrZUNyZWRlbml0YWxSZXF1ZXN0QXNDQk9SKGhhc2gsIG9wdGlv
bnMsIEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zOjpVc2VyVmVyaWZpY2F0aW9uQXZhaWxh
YmlsaXR5OjprTm90U3VwcG9ydGVkLCBBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9uczo6UmVz
aWRlbnRLZXlBdmFpbGFiaWxpdHk6OmtTdXBwb3J0ZWQpOworICAgIEVYUEVDVF9FUShzZXJpYWxp
emVkRGF0YS5zaXplKCksIHNpemVvZihUZXN0RGF0YTo6a0N0YXBNYWtlQ3JlZGVudGlhbFJlcXVl
c3RTaG9ydCkpOworICAgIEVYUEVDVF9FUShtZW1jbXAoc2VyaWFsaXplZERhdGEuZGF0YSgpLCBU
ZXN0RGF0YTo6a0N0YXBNYWtlQ3JlZGVudGlhbFJlcXVlc3RTaG9ydCwgc2VyaWFsaXplZERhdGEu
c2l6ZSgpKSwgMCk7Cit9CisKIFRFU1QoQ1RBUFJlcXVlc3RUZXN0LCBUZXN0Q29uc3RydWN0R2V0
QXNzZXJ0aW9uUmVxdWVzdCkKIHsKICAgICBQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlv
bnMgb3B0aW9uczsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29y
ZS9DdGFwUmVzcG9uc2VUZXN0LmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29y
ZS9DdGFwUmVzcG9uc2VUZXN0LmNwcAppbmRleCA1NTIxYzViZWM4NDQ0ZDY2ZWRmMzdjNzI5N2Iy
ZWRjZmU2MTZiOWY1Li4xN2M1MGIxYzEzMzNkYWM5Yzk2YTlkNDQwMjA4OThjZDhmNjE1NDE2IDEw
MDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ3RhcFJlc3BvbnNl
VGVzdC5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0N0YXBSZXNw
b25zZVRlc3QuY3BwCkBAIC01ODksNyArNTg5LDcgQEAgVEVTVChDVEFQUmVzcG9uc2VUZXN0LCBU
ZXN0UmVhZEdldEluZm9SZXNwb25zZSkKICAgICBFWFBFQ1RfTkUoZ2V0SW5mb1Jlc3BvbnNlLT52
ZXJzaW9ucygpLmZpbmQoUHJvdG9jb2xWZXJzaW9uOjprQ3RhcCksIGdldEluZm9SZXNwb25zZS0+
dmVyc2lvbnMoKS5lbmQoKSk7CiAgICAgRVhQRUNUX05FKGdldEluZm9SZXNwb25zZS0+dmVyc2lv
bnMoKS5maW5kKFByb3RvY29sVmVyc2lvbjo6a1UyZiksIGdldEluZm9SZXNwb25zZS0+dmVyc2lv
bnMoKS5lbmQoKSk7CiAgICAgRVhQRUNUX1RSVUUoZ2V0SW5mb1Jlc3BvbnNlLT5vcHRpb25zKCku
aXNQbGF0Zm9ybURldmljZSgpKTsKLSAgICBFWFBFQ1RfVFJVRShnZXRJbmZvUmVzcG9uc2UtPm9w
dGlvbnMoKS5zdXBwb3J0c1Jlc2lkZW50S2V5KCkpOworICAgIEVYUEVDVF9FUShBdXRoZW50aWNh
dG9yU3VwcG9ydGVkT3B0aW9uczo6UmVzaWRlbnRLZXlBdmFpbGFiaWxpdHk6OmtTdXBwb3J0ZWQs
IGdldEluZm9SZXNwb25zZS0+b3B0aW9ucygpLnJlc2lkZW50S2V5QXZhaWxhYmlsaXR5KCkpOwog
ICAgIEVYUEVDVF9UUlVFKGdldEluZm9SZXNwb25zZS0+b3B0aW9ucygpLnVzZXJQcmVzZW5jZVJl
cXVpcmVkKCkpOwogICAgIEVYUEVDVF9FUShBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9uczo6
VXNlclZlcmlmaWNhdGlvbkF2YWlsYWJpbGl0eTo6a1N1cHBvcnRlZEFuZENvbmZpZ3VyZWQsIGdl
dEluZm9SZXNwb25zZS0+b3B0aW9ucygpLnVzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHkoKSk7
CiAgICAgRVhQRUNUX0VRKEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zOjpDbGllbnRQaW5B
dmFpbGFiaWxpdHk6OmtTdXBwb3J0ZWRCdXRQaW5Ob3RTZXQsIGdldEluZm9SZXNwb25zZS0+b3B0
aW9ucygpLmNsaWVudFBpbkF2YWlsYWJpbGl0eSgpKTsKQEAgLTYwNCw3ICs2MDQsNyBAQCBURVNU
KENUQVBSZXNwb25zZVRlc3QsIFRlc3RSZWFkR2V0SW5mb1Jlc3BvbnNlMikKICAgICBFWFBFQ1Rf
TkUoZ2V0SW5mb1Jlc3BvbnNlLT52ZXJzaW9ucygpLmZpbmQoUHJvdG9jb2xWZXJzaW9uOjprQ3Rh
cCksIGdldEluZm9SZXNwb25zZS0+dmVyc2lvbnMoKS5lbmQoKSk7CiAgICAgRVhQRUNUX05FKGdl
dEluZm9SZXNwb25zZS0+dmVyc2lvbnMoKS5maW5kKFByb3RvY29sVmVyc2lvbjo6a1UyZiksIGdl
dEluZm9SZXNwb25zZS0+dmVyc2lvbnMoKS5lbmQoKSk7CiAgICAgRVhQRUNUX1RSVUUoZ2V0SW5m
b1Jlc3BvbnNlLT5vcHRpb25zKCkuaXNQbGF0Zm9ybURldmljZSgpKTsKLSAgICBFWFBFQ1RfVFJV
RShnZXRJbmZvUmVzcG9uc2UtPm9wdGlvbnMoKS5zdXBwb3J0c1Jlc2lkZW50S2V5KCkpOworICAg
IEVYUEVDVF9FUShBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9uczo6UmVzaWRlbnRLZXlBdmFp
bGFiaWxpdHk6OmtTdXBwb3J0ZWQsIGdldEluZm9SZXNwb25zZS0+b3B0aW9ucygpLnJlc2lkZW50
S2V5QXZhaWxhYmlsaXR5KCkpOwogICAgIEVYUEVDVF9UUlVFKGdldEluZm9SZXNwb25zZS0+b3B0
aW9ucygpLnVzZXJQcmVzZW5jZVJlcXVpcmVkKCkpOwogICAgIEVYUEVDVF9FUShBdXRoZW50aWNh
dG9yU3VwcG9ydGVkT3B0aW9uczo6VXNlclZlcmlmaWNhdGlvbkF2YWlsYWJpbGl0eTo6a1N1cHBv
cnRlZEFuZENvbmZpZ3VyZWQsIGdldEluZm9SZXNwb25zZS0+b3B0aW9ucygpLnVzZXJWZXJpZmlj
YXRpb25BdmFpbGFiaWxpdHkoKSk7CiAgICAgRVhQRUNUX0VRKEF1dGhlbnRpY2F0b3JTdXBwb3J0
ZWRPcHRpb25zOjpDbGllbnRQaW5BdmFpbGFiaWxpdHk6OmtTdXBwb3J0ZWRCdXRQaW5Ob3RTZXQs
IGdldEluZm9SZXNwb25zZS0+b3B0aW9ucygpLmNsaWVudFBpbkF2YWlsYWJpbGl0eSgpKTsKQEAg
LTYyMiw3ICs2MjIsNyBAQCBURVNUKENUQVBSZXNwb25zZVRlc3QsIFRlc3RTZXJpYWxpemVHZXRJ
bmZvUmVzcG9uc2UpCiAgICAgQXV0aGVudGljYXRvckdldEluZm9SZXNwb25zZSByZXNwb25zZSh7
IFByb3RvY29sVmVyc2lvbjo6a0N0YXAsIFByb3RvY29sVmVyc2lvbjo6a1UyZiB9LCBjb252ZXJ0
Qnl0ZXNUb1ZlY3RvcihrVGVzdERldmljZUFhZ3VpZCwgc2l6ZW9mKGtUZXN0RGV2aWNlQWFndWlk
KSkpOwogICAgIHJlc3BvbnNlLnNldEV4dGVuc2lvbnMoeyAidXZtIiwgImhtYWMtc2VjcmV0IiB9
KTsKICAgICBBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9ucyBvcHRpb25zOwotICAgIG9wdGlv
bnMuc2V0U3VwcG9ydHNSZXNpZGVudEtleSh0cnVlKTsKKyAgICBvcHRpb25zLnNldFJlc2lkZW50
S2V5QXZhaWxhYmlsaXR5KEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zOjpSZXNpZGVudEtl
eUF2YWlsYWJpbGl0eTo6a1N1cHBvcnRlZCk7CiAgICAgb3B0aW9ucy5zZXRJc1BsYXRmb3JtRGV2
aWNlKHRydWUpOwogICAgIG9wdGlvbnMuc2V0Q2xpZW50UGluQXZhaWxhYmlsaXR5KEF1dGhlbnRp
Y2F0b3JTdXBwb3J0ZWRPcHRpb25zOjpDbGllbnRQaW5BdmFpbGFiaWxpdHk6OmtTdXBwb3J0ZWRC
dXRQaW5Ob3RTZXQpOwogICAgIG9wdGlvbnMuc2V0VXNlclZlcmlmaWNhdGlvbkF2YWlsYWJpbGl0
eShBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9uczo6VXNlclZlcmlmaWNhdGlvbkF2YWlsYWJp
bGl0eTo6a1N1cHBvcnRlZEFuZENvbmZpZ3VyZWQpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>454382</attachid>
            <date>2022-03-10 11:17:46 -0800</date>
            <delta_ts>2022-03-10 11:49:00 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237567-20220310111745.patch</filename>
            <type>text/plain</type>
            <size>68446</size>
            <attacher name="pascoe@apple.com">pascoe</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxMDgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjlkYmY3MzRhMjBjZjg3
MGMyN2EyYTRmZTkzYTIzZTdkNjJkZGJjNS4uZjJmNWE1MDUzMjA0Yzk4YmUxOTNkZDA2ZmMxYzI0
YjZjYmNlOTZjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDIyLTAzLTA5ICBKIFBh
c2NvZSAgPGpfcGFzY29lQGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViQXV0aG5dIFN1cHBvcnQg
YXV0aGVudGljYXRvclNlbGVjdGlvbi5yZXNpZGVudEtleSBSZXNpZGVudEtleVJlcXVpcmVtZW50
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzc1NjcK
KyAgICAgICAgcmRhcjovLzg5Nzg4Mzc4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgSW4gV2ViIEF1dGhlbnRpY2F0aW9uIGxldmVsIG9uZSwgcmVseWlu
ZyBwYXJ0aWVzIGNhbiBzcGVjaWZ5IGF1dGhlbnRpY2F0b3JTZWxlY3Rpb24ucmVzaWRlbnRLZXlS
ZXF1aXJlZCwKKyAgICAgICAgdG8gc2lnbmlmeSB0aGV5IHJlcXVpcmUgYSBjbGllbnQtc2lkZSBk
aXNjb3ZlcmFibGUgY3JlZGVudGlhbC4gSG93ZXZlciwgaWYgdGhlIGF1dGhlbnRpY2F0b3IgZG9l
cyBub3QKKyAgICAgICAgc3VwcG9ydCBjbGllbnQtc2lkZSBkaXNjb3ZlcmFibGUgY3JlZGVudGlh
bHMsIHRoZSBycCBoYXMgbm8gd2F5IHRvIGNsYXJpZnkgdGhleSB3YW50IGEgY2xpZW50LXNpZGUK
KyAgICAgICAgZGlzY292ZXJhYmxlIGNyZWRlbnRpYWwgb25seSBpZiBhdmFpbGFibGUuCisKKyAg
ICAgICAgVGhpcyBwYXRjaCBpbXBsZW1lbnRzIGF1dGhlbnRpY2F0b3JTZWxlY3Rpb24ucmVzaWRl
bnRLZXlSZXF1aXJlZCBpbnRyb2R1Y2VkIGluIGxldmVsIDIsIHdoaWNoIGhhcyB0aHJlZQorICAg
ICAgICB2YWx1ZXMgJ1ByZWZlcnJlZCcsICdSZXF1aXJlZCcsIGFuZCAnRGlzY291cmFnZWQnLiBU
aGlzIGFsbG93cyBSUHMgdG8gY3JlYXRlIGEgY2xpZW50LXNpZGUgZGlzY292ZXJhYmxlCisgICAg
ICAgIGNyZWRlbnRpYWwgaWYgcG9zc2libGUuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoK
KyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERl
cml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2Vz
Lm1ha2U6CisgICAgICAgICogTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50aWFsQ3Jl
YXRpb25PcHRpb25zLmg6CisgICAgICAgIChXZWJDb3JlOjpQdWJsaWNLZXlDcmVkZW50aWFsQ3Jl
YXRpb25PcHRpb25zOjpBdXRoZW50aWNhdG9yU2VsZWN0aW9uQ3JpdGVyaWE6OmVuY29kZSBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25z
OjpBdXRoZW50aWNhdG9yU2VsZWN0aW9uQ3JpdGVyaWE6OmRlY29kZSk6CisgICAgICAgICogTW9k
dWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zLmlkbDoKKyAg
ICAgICAgKiBNb2R1bGVzL3dlYmF1dGhuL1Jlc2lkZW50S2V5UmVxdWlyZW1lbnQuaDogQ29waWVk
IGZyb20gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0F1dGhlbnRpY2F0b3JT
ZWxlY3Rpb25Dcml0ZXJpYS5tbS4KKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1dGhuL1Jlc2lkZW50
S2V5UmVxdWlyZW1lbnQuaWRsOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvX1dLQXV0aGVudGljYXRvclNlbGVjdGlvbkNyaXRlcmlhLm1tLgorICAgICAgICAq
IE1vZHVsZXMvd2ViYXV0aG4vZmlkby9BdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9ucy5jcHA6
CisgICAgICAgIChmaWRvOjpBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9uczo6c2V0UmVzaWRl
bnRLZXlBdmFpbGFiaWxpdHkpOgorICAgICAgICAoZmlkbzo6Y29udmVydFRvQ0JPUik6CisgICAg
ICAgIChmaWRvOjpBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9uczo6c2V0U3VwcG9ydHNSZXNp
ZGVudEtleSk6IERlbGV0ZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJhdXRobi9maWRvL0F1dGhl
bnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zLmg6CisgICAgICAgICogTW9kdWxlcy93ZWJhdXRobi9m
aWRvL0RldmljZVJlcXVlc3RDb252ZXJ0ZXIuY3BwOgorICAgICAgICAoZmlkbzo6ZW5jb2RlTWFr
ZUNyZWRlbml0YWxSZXF1ZXN0QXNDQk9SKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1dGhuL2Zp
ZG8vRGV2aWNlUmVxdWVzdENvbnZlcnRlci5oOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXV0aG4v
Zmlkby9EZXZpY2VSZXNwb25zZUNvbnZlcnRlci5jcHA6CisgICAgICAgIChmaWRvOjpyZWFkQ1RB
UEdldEluZm9SZXNwb25zZSk6CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorCiAyMDIyLTAzLTA5ICBNYXR0IFdvb2Ry
b3cgIDxtYXR0d29vZHJvd0BhcHBsZS5jb20+CiAKICAgICAgICAgRW1wdHkgZmxvYXQgcmVjdHMg
c2hvdWxkIHJlbWFpbiBlbXB0eSBhZnRlciBpbnRlZ3JhbGx5IGVuY2xvc2luZyB0aGVtLgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZwppbmRleCBmMzQ3M2QxNDMxODNiMjhhOWNjYmQyYWY3YmExNDExMjNjMTVjZDQ3Li5iYmNjZjRi
ODgwNWMxMjI2OGZmYzQxOGEzYzNlNjQ4NjViOGVlYTQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDMz
IEBACisyMDIyLTAzLTA5ICBKIFBhc2NvZSAgPGpfcGFzY29lQGFwcGxlLmNvbT4KKworICAgICAg
ICBbV2ViQXV0aG5dIFN1cHBvcnQgYXV0aGVudGljYXRvclNlbGVjdGlvbi5yZXNpZGVudEtleSBS
ZXNpZGVudEtleVJlcXVpcmVtZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMzc1NjcKKyAgICAgICAgcmRhcjovLzg5Nzg4Mzc4CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW4gV2ViIEF1dGhlbnRpY2F0
aW9uIGxldmVsIG9uZSwgcmVseWluZyBwYXJ0aWVzIGNhbiBzcGVjaWZ5IGF1dGhlbnRpY2F0b3JT
ZWxlY3Rpb24ucmVzaWRlbnRLZXlSZXF1aXJlZCwKKyAgICAgICAgdG8gc2lnbmlmeSB0aGV5IHJl
cXVpcmUgYSBjbGllbnQtc2lkZSBkaXNjb3ZlcmFibGUgY3JlZGVudGlhbC4gSG93ZXZlciwgaWYg
dGhlIGF1dGhlbnRpY2F0b3IgZG9lcyBub3QKKyAgICAgICAgc3VwcG9ydCBjbGllbnQtc2lkZSBk
aXNjb3ZlcmFibGUgY3JlZGVudGlhbHMsIHRoZSBycCBoYXMgbm8gd2F5IHRvIGNsYXJpZnkgdGhl
eSB3YW50IGEgY2xpZW50LXNpZGUKKyAgICAgICAgZGlzY292ZXJhYmxlIGNyZWRlbnRpYWwgb25s
eSBpZiBhdmFpbGFibGUuCisKKyAgICAgICAgVGhpcyBwYXRjaCBpbXBsZW1lbnRzIGF1dGhlbnRp
Y2F0b3JTZWxlY3Rpb24ucmVzaWRlbnRLZXlSZXF1aXJlZCBpbnRyb2R1Y2VkIGluIGxldmVsIDIs
IHdoaWNoIGhhcyB0aHJlZQorICAgICAgICB2YWx1ZXMgJ1ByZWZlcnJlZCcsICdSZXF1aXJlZCcs
IGFuZCAnRGlzY291cmFnZWQnLiBUaGlzIGFsbG93cyBSUHMgdG8gY3JlYXRlIGEgY2xpZW50LXNp
ZGUgZGlzY292ZXJhYmxlCisgICAgICAgIGNyZWRlbnRpYWwgaWYgcG9zc2libGUuCisKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS0F1dGhlbnRpY2F0b3JTZWxlY3Rpb25Dcml0ZXJp
YS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQXV0aGVudGljYXRvclNlbGVj
dGlvbkNyaXRlcmlhLm1tOgorICAgICAgICAoLVtfV0tBdXRoZW50aWNhdG9yU2VsZWN0aW9uQ3Jp
dGVyaWEgaW5pdF0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUmVzaWRlbnRL
ZXlSZXF1aXJlbWVudC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvX1dLQXV0aGVudGljYXRvclNlbGVjdGlvbkNyaXRlcmlhLm1tLgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5tbToKKyAgICAgICAg
KHJlc2lkZW50S2V5KToKKyAgICAgICAgKGF1dGhlbnRpY2F0b3JTZWxlY3Rpb25Dcml0ZXJpYSk6
CisgICAgICAgICgrW19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwgZW5jb2RlTWFrZUNyZWRlbnRp
YWxDb21tYW5kV2l0aENsaWVudERhdGFKU09OOm9wdGlvbnM6dXNlclZlcmlmaWNhdGlvbkF2YWls
YWJpbGl0eTpdKToKKyAgICAgICAgKCtbX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbCBlbmNvZGVN
YWtlQ3JlZGVudGlhbENvbW1hbmRXaXRoQ2xpZW50RGF0YUhhc2g6b3B0aW9uczp1c2VyVmVyaWZp
Y2F0aW9uQXZhaWxhYmlsaXR5Ol0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJBdXRoZW50aWNh
dGlvbi9maWRvL0N0YXBBdXRoZW50aWNhdG9yLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Q3RhcEF1
dGhlbnRpY2F0b3I6Om1ha2VDcmVkZW50aWFsKToKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvajoKKwogMjAyMi0wMy0wOSAgUGVyIEFybmUgVm9sbGFuICA8cHZvbGxh
bkBhcHBsZS5jb20+CiAKICAgICAgICAgVGhlIGFjY2Vzc2liaWxpdHkgbGlicmFyeSBzaG91bGQg
YmUgc29mdCBsaW5rZWQgb3B0aW9uYWxseQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01h
a2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCAyYmI4Mjlj
ZDU5YjhjMDc1ZTAzNjY1NWMyMzdiODUwMTQ4MWM0YjJlLi4zZDQ5YTkxNjY1OWE3OGRiMzQwZDBj
OTVlYzQ1ZGVhMGEyMzYxOGY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3Rz
LnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtNjY1LDYgKzY2NSw3
IEBAIHNldChXZWJDb3JlX05PTl9TVkdfSURMX0ZJTEVTCiAgICAgTW9kdWxlcy93ZWJhdXRobi9Q
dWJsaWNLZXlDcmVkZW50aWFsRGVzY3JpcHRvci5pZGwKICAgICBNb2R1bGVzL3dlYmF1dGhuL1B1
YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucy5pZGwKICAgICBNb2R1bGVzL3dlYmF1dGhu
L1B1YmxpY0tleUNyZWRlbnRpYWxUeXBlLmlkbAorICAgIE1vZHVsZXMvd2ViYXV0aG4vUmVzaWRl
bnRLZXlSZXF1aXJlbWVudC5pZGwKICAgICBNb2R1bGVzL3dlYmF1dGhuL1VzZXJWZXJpZmljYXRp
b25SZXF1aXJlbWVudC5pZGwKIAogICAgIE1vZHVsZXMvd2ViY29kZWNzL1ZpZGVvQ29sb3JQcmlt
YXJpZXMuaWRsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1
dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxl
bGlzdAppbmRleCA2YmU3ZjRmMDgzMThhZWE4YTVhZTIxMzNiMWUyZmIxM2Y0YzEzYmMzLi4wODVk
YTczOWUzYThlOTIyYzYzZjU3NzcxNmJjMjkwNTBkM2JjZmNkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJD
b3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKQEAgLTc0Nyw2ICs3NDcsNyBAQCAk
KFBST0pFQ1RfRElSKS9Nb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlv
bk9wdGlvbnMuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNy
ZWRlbnRpYWxEZXNjcmlwdG9yLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJhdXRobi9Q
dWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1
bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRlbnRpYWxUeXBlLmlkbAorJChQUk9KRUNUX0RJUikv
TW9kdWxlcy93ZWJhdXRobi9SZXNpZGVudEtleVJlcXVpcmVtZW50LmlkbAogJChQUk9KRUNUX0RJ
UikvTW9kdWxlcy93ZWJhdXRobi9Vc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQuaWRsCiAkKFBS
T0pFQ1RfRElSKS9Nb2R1bGVzL3dlYmNvZGVjcy9WaWRlb0NvbG9yUHJpbWFyaWVzLmlkbAogJChQ
Uk9KRUNUX0RJUikvTW9kdWxlcy93ZWJjb2RlY3MvVmlkZW9Db2xvclNwYWNlLmlkbApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QgYi9T
b3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAppbmRleCA2YzIw
NWU3MWRhNGY5NzE5NWMzN2FiZGEyZTliZDVhYzFjMzJkYzAxLi40ZmI3N2IzZGRiYWVkYThlYTNh
ZGJjZDRhNzA5N2E1NmE3ODA4MWRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVk
U291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291
cmNlcy1vdXRwdXQueGNmaWxlbGlzdApAQCAtMjExMiw2ICsyMTEyLDggQEAgJChCVUlMVF9QUk9E
VUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNSZXF1ZXN0QW5pbWF0aW9uRnJhbWVD
YWxsYmFjay5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3Jl
L0pTUmVxdWVzdEFuaW1hdGlvbkZyYW1lQ2FsbGJhY2suaAogJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNSZXF1ZXN0Q29va2llQ29uc2VudE9wdGlvbnMuY3Bw
CiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1JlcXVlc3RD
b29raWVDb25zZW50T3B0aW9ucy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZS9KU1Jlc2lkZW50S2V5UmVxdWlyZW1lbnQuY3BwCiskKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1Jlc2lkZW50S2V5UmVxdWlyZW1lbnQuaAog
JChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNSZXNpemVPYnNl
cnZlci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pT
UmVzaXplT2JzZXJ2ZXIuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dl
YkNvcmUvSlNSZXNpemVPYnNlcnZlckJveE9wdGlvbnMuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMubWFrZQppbmRleCAyNjgwMzI3MGQ2N2E3NzQ1NTllY2YyM2Q3NWI2YmIwNWIwNjkzODg1Li5l
MWJiYzEyYzMxZjA5OTQzODcwYmFjNzU2ZTRiMzFhYWZlNTA3N2ZmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2
ZWRTb3VyY2VzLm1ha2UKQEAgLTY0Myw2ICs2NDMsNyBAQCBKU19CSU5ESU5HX0lETFMgOj0gXAog
ICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50aWFsRGVzY3Jp
cHRvci5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVk
ZW50aWFsUmVxdWVzdE9wdGlvbnMuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViYXV0
aG4vUHVibGljS2V5Q3JlZGVudGlhbFR5cGUuaWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMv
d2ViYXV0aG4vUmVzaWRlbnRLZXlSZXF1aXJlbWVudC5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9k
dWxlcy93ZWJhdXRobi9Vc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQuaWRsIFwKIAkkKFdlYkNv
cmUpL01vZHVsZXMvd2ViY29kZWNzL1ZpZGVvQ29sb3JQcmltYXJpZXMuaWRsIFwKIAkkKFdlYkNv
cmUpL01vZHVsZXMvd2ViY29kZWNzL1ZpZGVvQ29sb3JTcGFjZS5pZGwgXApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRp
b25PcHRpb25zLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNy
ZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMuaAppbmRleCA4ZGZhN2Q3NzQ5Nzg4N2YwNTA2YTc3Mjg3
YjE0YTRmOTQ2ZDc5MDgzLi5lMDNiZDFhYmEyNTZiZjhlNDgyOGFkOTUxZGMwZTlmNzQxMDVkNjk4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNy
ZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1dGhuL1B1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMuaApAQCAtMzEsNiArMzEs
NyBAQAogI2luY2x1ZGUgIkJ1ZmZlclNvdXJjZS5oIgogI2luY2x1ZGUgIlB1YmxpY0tleUNyZWRl
bnRpYWxEZXNjcmlwdG9yLmgiCiAjaW5jbHVkZSAiUHVibGljS2V5Q3JlZGVudGlhbFR5cGUuaCIK
KyNpbmNsdWRlICJSZXNpZGVudEtleVJlcXVpcmVtZW50LmgiCiAjaW5jbHVkZSAiVXNlclZlcmlm
aWNhdGlvblJlcXVpcmVtZW50LmgiCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNlbmRpZiAv
LyBFTkFCTEUoV0VCX0FVVEhOKQpAQCAtNjUsNiArNjYsOCBAQCBzdHJ1Y3QgUHVibGljS2V5Q3Jl
ZGVudGlhbENyZWF0aW9uT3B0aW9ucyB7CiAKICAgICBzdHJ1Y3QgQXV0aGVudGljYXRvclNlbGVj
dGlvbkNyaXRlcmlhIHsKICAgICAgICAgc3RkOjpvcHRpb25hbDxBdXRoZW50aWNhdG9yQXR0YWNo
bWVudD4gYXV0aGVudGljYXRvckF0dGFjaG1lbnQ7CisgICAgICAgIC8vIHJlc2lkZW50S2V5IHJl
cGxhY2VzIHJlcXVpcmVSZXNpZGVudEtleSwgc2VlOiBodHRwczovL3d3dy53My5vcmcvVFIvd2Vi
YXV0aG4tMi8jZGljdGlvbmFyeS1hdXRoZW50aWNhdG9yU2VsZWN0aW9uCisgICAgICAgIHN0ZDo6
b3B0aW9uYWw8UmVzaWRlbnRLZXlSZXF1aXJlbWVudD4gcmVzaWRlbnRLZXk7CiAgICAgICAgIGJv
b2wgcmVxdWlyZVJlc2lkZW50S2V5IHsgZmFsc2UgfTsKICAgICAgICAgVXNlclZlcmlmaWNhdGlv
blJlcXVpcmVtZW50IHVzZXJWZXJpZmljYXRpb24geyBVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1l
bnQ6OlByZWZlcnJlZCB9OwogCkBAIC0xMTAsNyArMTEzLDcgQEAgc3RkOjpvcHRpb25hbDxQdWJs
aWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zOjpQYXJhbWV0ZXJzPiBQdWJsaWNLZXlDcmVk
ZW50aWEKIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+CiB2b2lkIFB1YmxpY0tleUNyZWRlbnRpYWxD
cmVhdGlvbk9wdGlvbnM6OkF1dGhlbnRpY2F0b3JTZWxlY3Rpb25Dcml0ZXJpYTo6ZW5jb2RlKEVu
Y29kZXImIGVuY29kZXIpIGNvbnN0CiB7Ci0gICAgZW5jb2RlciA8PCBhdXRoZW50aWNhdG9yQXR0
YWNobWVudCA8PCByZXF1aXJlUmVzaWRlbnRLZXkgPDwgdXNlclZlcmlmaWNhdGlvbjsKKyAgICBl
bmNvZGVyIDw8IGF1dGhlbnRpY2F0b3JBdHRhY2htZW50IDw8IHJlcXVpcmVSZXNpZGVudEtleSA8
PCB1c2VyVmVyaWZpY2F0aW9uIDw8IHJlc2lkZW50S2V5OwogfQogCiB0ZW1wbGF0ZTxjbGFzcyBE
ZWNvZGVyPgpAQCAtMTMyLDYgKzEzNSwxMyBAQCBzdGQ6Om9wdGlvbmFsPFB1YmxpY0tleUNyZWRl
bnRpYWxDcmVhdGlvbk9wdGlvbnM6OkF1dGhlbnRpY2F0b3JTZWxlY3Rpb25Dcml0ZXJpYQogCiAg
ICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQudXNlclZlcmlmaWNhdGlvbikpCiAgICAgICAg
IHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBzdGQ6Om9wdGlvbmFsPHN0ZDo6b3B0aW9uYWw8
UmVzaWRlbnRLZXlSZXF1aXJlbWVudD4+IHJlc2lkZW50S2V5OworICAgIGRlY29kZXIgPj4gcmVz
aWRlbnRLZXk7CisgICAgaWYgKCFyZXNpZGVudEtleSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdDsKKyAgICByZXN1bHQucmVzaWRlbnRLZXkgPSAqcmVzaWRlbnRLZXk7CisKICAgICByZXR1
cm4gcmVzdWx0OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
dGhuL1B1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMuaWRsIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zLmlk
bAppbmRleCBjZTY2NWY0MTMzODg4Mjk0NzllZmU2MWQ0NWQ1OTQyNjU1NzM1OTU2Li5lNzVmY2Ux
OTlmZGFhM2IxYjI4MGZiODkyYjcyMDYxNzUwNmYyNTNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMu
aWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVu
dGlhbENyZWF0aW9uT3B0aW9ucy5pZGwKQEAgLTcyLDYgKzcyLDcgQEAgdHlwZWRlZiBsb25nIENP
U0VBbGdvcml0aG1JZGVudGlmaWVyOwogICAgIENvbmRpdGlvbmFsPVdFQl9BVVRITiwKIF0gZGlj
dGlvbmFyeSBBdXRoZW50aWNhdG9yU2VsZWN0aW9uQ3JpdGVyaWEgewogICAgIEF1dGhlbnRpY2F0
b3JBdHRhY2htZW50ICAgICAgYXV0aGVudGljYXRvckF0dGFjaG1lbnQ7CisgICAgUmVzaWRlbnRL
ZXlSZXF1aXJlbWVudCAgICAgICByZXNpZGVudEtleTsKICAgICBib29sZWFuICAgICAgICAgICAg
ICAgICAgICAgIHJlcXVpcmVSZXNpZGVudEtleSA9IGZhbHNlOwogICAgIFVzZXJWZXJpZmljYXRp
b25SZXF1aXJlbWVudCAgdXNlclZlcmlmaWNhdGlvbiA9ICJwcmVmZXJyZWQiOwogfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vUmVzaWRlbnRLZXlSZXF1aXJl
bWVudC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9SZXNpZGVudEtleVJlcXVp
cmVtZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uYTBlMmI3NDI2OGExYTQ1OTRiNzY2MDNiODM4ZjM3YzcwODli
MGQ1MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4v
UmVzaWRlbnRLZXlSZXF1aXJlbWVudC5oCkBAIC0wLDAgKzEsNTUgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMjIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
cHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShXRUJfQVVUSE4pCisKKyNpbmNsdWRlIDx3dGYvRW51
bVRyYWl0cy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2VudW0gY2xhc3MgUmVzaWRlbnRL
ZXlSZXF1aXJlbWVudCA6IHVpbnQ4X3QgeworICAgIFJlcXVpcmVkLAorICAgIFByZWZlcnJlZCwK
KyAgICBEaXNjb3VyYWdlZAorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCituYW1lc3Bh
Y2UgV1RGIHsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpSZXNpZGVu
dEtleVJlcXVpcmVtZW50PiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKKyAgICAg
ICAgV2ViQ29yZTo6UmVzaWRlbnRLZXlSZXF1aXJlbWVudCwKKyAgICAgICAgV2ViQ29yZTo6UmVz
aWRlbnRLZXlSZXF1aXJlbWVudDo6UmVxdWlyZWQsCisgICAgICAgIFdlYkNvcmU6OlJlc2lkZW50
S2V5UmVxdWlyZW1lbnQ6OlByZWZlcnJlZCwKKyAgICAgICAgV2ViQ29yZTo6UmVzaWRlbnRLZXlS
ZXF1aXJlbWVudDo6RGlzY291cmFnZWQKKyAgICA+OworfTsKKworfSAvLyBuYW1lc3BhY2UgV1RG
CisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCX0FVVEhOKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdXRobi9SZXNpZGVudEtleVJlcXVpcmVtZW50LmlkbCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vUmVzaWRlbnRLZXlSZXF1aXJlbWVudC5pZGwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMDNhNWJiNjBkZTgwN2IxZjNlNGI4MGZhNjIzMmNhMjBjYmQ5OGU2OAotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vUmVzaWRlbnRLZXlSZXF1
aXJlbWVudC5pZGwKQEAgLTAsMCArMSwzMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMiBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBDb25kaXRp
b25hbD1XRUJfQVVUSE4sCisgICAgSW1wbGVtZW50ZWRBcz1SZXNpZGVudEtleVJlcXVpcmVtZW50
CitdIGVudW0gUmVzaWRlbnRLZXlSZXF1aXJlbWVudCB7CisgICAgInJlcXVpcmVkIiwKKyAgICAi
cHJlZmVycmVkIiwKKyAgICAiZGlzY291cmFnZWQiCit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdXRobi9maWRvL0F1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25z
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vZmlkby9BdXRoZW50aWNhdG9y
U3VwcG9ydGVkT3B0aW9ucy5jcHAKaW5kZXggYmRjZjhhNGNkNTRhZjc3ZjhmMzMzODEzOGU5NDFi
ZGJhZjYwZGM0YS4uZjkxNWVhNWQ0NzgwMGE1YzlmZTk0NmM0OWU3OWE5YTE3ZTJkNzAwYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9maWRvL0F1dGhlbnRpY2F0
b3JTdXBwb3J0ZWRPcHRpb25zLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
dGhuL2ZpZG8vQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnMuY3BwCkBAIC0zNiw5ICszNiw5
IEBACiAKIG5hbWVzcGFjZSBmaWRvIHsKIAotQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnMm
IEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zOjpzZXRTdXBwb3J0c1Jlc2lkZW50S2V5KGJv
b2wgc3VwcG9ydHNSZXNpZGVudEtleSkKK0F1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zJiBB
dXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9uczo6c2V0UmVzaWRlbnRLZXlBdmFpbGFiaWxpdHko
UmVzaWRlbnRLZXlBdmFpbGFiaWxpdHkgcmVzaWRlbnRLZXlBdmFpbGFiaWxpdHkpCiB7Ci0gICAg
bV9zdXBwb3J0c1Jlc2lkZW50S2V5ID0gc3VwcG9ydHNSZXNpZGVudEtleTsKKyAgICBtX3Jlc2lk
ZW50S2V5QXZhaWxhYmlsaXR5ID0gcmVzaWRlbnRLZXlBdmFpbGFiaWxpdHk7CiAgICAgcmV0dXJu
ICp0aGlzOwogfQogCkBAIC03MSw3ICs3MSw3IEBAIGNib3I6OkNCT1JWYWx1ZSBjb252ZXJ0VG9D
Qk9SKGNvbnN0IEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zJiBvcHRpb25zKQogICAgIHVz
aW5nIG5hbWVzcGFjZSBjYm9yOwogCiAgICAgQ0JPUlZhbHVlOjpNYXBWYWx1ZSBvcHRpb25NYXA7
Ci0gICAgb3B0aW9uTWFwLmVtcGxhY2UoQ0JPUlZhbHVlKGtSZXNpZGVudEtleU1hcEtleSksIENC
T1JWYWx1ZShvcHRpb25zLnN1cHBvcnRzUmVzaWRlbnRLZXkoKSkpOworICAgIG9wdGlvbk1hcC5l
bXBsYWNlKENCT1JWYWx1ZShrUmVzaWRlbnRLZXlNYXBLZXkpLCBDQk9SVmFsdWUob3B0aW9ucy5y
ZXNpZGVudEtleUF2YWlsYWJpbGl0eSgpID09IEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25z
OjpSZXNpZGVudEtleUF2YWlsYWJpbGl0eTo6a1N1cHBvcnRlZCkpOwogICAgIG9wdGlvbk1hcC5l
bXBsYWNlKENCT1JWYWx1ZShrVXNlclByZXNlbmNlTWFwS2V5KSwgQ0JPUlZhbHVlKG9wdGlvbnMu
dXNlclByZXNlbmNlUmVxdWlyZWQoKSkpOwogICAgIG9wdGlvbk1hcC5lbXBsYWNlKENCT1JWYWx1
ZShrUGxhdGZvcm1EZXZpY2VNYXBLZXkpLCBDQk9SVmFsdWUob3B0aW9ucy5pc1BsYXRmb3JtRGV2
aWNlKCkpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9m
aWRvL0F1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1dGhuL2ZpZG8vQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnMuaAppbmRleCBl
YzQwYWU0YmU0MjYxNGM3MTRlNTdmYWY2YTQ0NjVjN2YyZmY5OTE2Li5iYTMwZTgxZjAzN2Y4MDZj
MWNjMzZlMjI3MGE2YjM5ODM5ODJkMzkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1dGhuL2ZpZG8vQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnMuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8vQXV0aGVudGljYXRvclN1cHBvcnRl
ZE9wdGlvbnMuaApAQCAtNTEsNiArNTEsMTEgQEAgcHVibGljOgogICAgICAgICBrTm90U3VwcG9y
dGVkCiAgICAgfTsKIAorICAgIGVudW0gY2xhc3MgUmVzaWRlbnRLZXlBdmFpbGFiaWxpdHkgOiBi
b29sIHsKKyAgICAgICAga1N1cHBvcnRlZCwKKyAgICAgICAga05vdFN1cHBvcnRlZAorICAgIH07
CisKICAgICBlbnVtIGNsYXNzIENsaWVudFBpbkF2YWlsYWJpbGl0eSB7CiAgICAgICAgIGtTdXBw
b3J0ZWRBbmRQaW5TZXQsCiAgICAgICAgIGtTdXBwb3J0ZWRCdXRQaW5Ob3RTZXQsCkBAIC02Miwx
NCArNjcsMTQgQEAgcHVibGljOgogICAgIEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zJiBv
cGVyYXRvcj0oQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnMmJikgPSBkZWZhdWx0OwogCiAg
ICAgQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnMmIHNldElzUGxhdGZvcm1EZXZpY2UoYm9v
bCk7Ci0gICAgQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnMmIHNldFN1cHBvcnRzUmVzaWRl
bnRLZXkoYm9vbCk7CisgICAgQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnMmIHNldFJlc2lk
ZW50S2V5QXZhaWxhYmlsaXR5KFJlc2lkZW50S2V5QXZhaWxhYmlsaXR5KTsKICAgICBBdXRoZW50
aWNhdG9yU3VwcG9ydGVkT3B0aW9ucyYgc2V0VXNlclZlcmlmaWNhdGlvbkF2YWlsYWJpbGl0eShV
c2VyVmVyaWZpY2F0aW9uQXZhaWxhYmlsaXR5KTsKICAgICBBdXRoZW50aWNhdG9yU3VwcG9ydGVk
T3B0aW9ucyYgc2V0VXNlclByZXNlbmNlUmVxdWlyZWQoYm9vbCk7CiAgICAgQXV0aGVudGljYXRv
clN1cHBvcnRlZE9wdGlvbnMmIHNldENsaWVudFBpbkF2YWlsYWJpbGl0eShDbGllbnRQaW5BdmFp
bGFiaWxpdHkpOwogCiAgICAgYm9vbCBpc1BsYXRmb3JtRGV2aWNlKCkgY29uc3QgeyByZXR1cm4g
bV9pc1BsYXRmb3JtRGV2aWNlOyB9Ci0gICAgYm9vbCBzdXBwb3J0c1Jlc2lkZW50S2V5KCkgY29u
c3QgeyByZXR1cm4gbV9zdXBwb3J0c1Jlc2lkZW50S2V5OyB9Ci0gICAgVXNlclZlcmlmaWNhdGlv
bkF2YWlsYWJpbGl0eSB1c2VyVmVyaWZpY2F0aW9uQXZhaWxhYmlsaXR5KCkgY29uc3QgeyByZXR1
cm4gbV91c2VyVmVyaWZpY2F0aW9uQXZhaWxhYmlsaXR5OyB9CisgICAgUmVzaWRlbnRLZXlBdmFp
bGFiaWxpdHkgcmVzaWRlbnRLZXlBdmFpbGFiaWxpdHkoKSBjb25zdCB7IHJldHVybiBtX3Jlc2lk
ZW50S2V5QXZhaWxhYmlsaXR5OyB9OworICAgIFVzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHkg
dXNlclZlcmlmaWNhdGlvbkF2YWlsYWJpbGl0eSgpIGNvbnN0IHsgcmV0dXJuIG1fdXNlclZlcmlm
aWNhdGlvbkF2YWlsYWJpbGl0eTsgfTsKICAgICBib29sIHVzZXJQcmVzZW5jZVJlcXVpcmVkKCkg
Y29uc3QgeyByZXR1cm4gbV91c2VyUHJlc2VuY2VSZXF1aXJlZDsgfQogICAgIENsaWVudFBpbkF2
YWlsYWJpbGl0eSBjbGllbnRQaW5BdmFpbGFiaWxpdHkoKSBjb25zdCB7IHJldHVybiBtX2NsaWVu
dFBpbkF2YWlsYWJpbGl0eTsgfQogCkBAIC04MCw3ICs4NSw3IEBAIHByaXZhdGU6CiAgICAgLy8g
SW5kaWNhdGVzIHRoYXQgdGhlIGRldmljZSBpcyBjYXBhYmxlIG9mIHN0b3Jpbmcga2V5cyBvbiB0
aGUgZGV2aWNlIGl0c2VsZgogICAgIC8vIGFuZCB0aGVyZWZvcmUgY2FuIHNhdGlzZnkgdGhlIGF1
dGhlbnRpY2F0b3JHZXRBc3NlcnRpb24gcmVxdWVzdCB3aXRoCiAgICAgLy8gYWxsb3dMaXN0IHBh
cmFtZXRlciBub3Qgc3BlY2lmaWVkIG9yIGVtcHR5LgotICAgIGJvb2wgbV9zdXBwb3J0c1Jlc2lk
ZW50S2V5IHsgZmFsc2UgfTsKKyAgICBSZXNpZGVudEtleUF2YWlsYWJpbGl0eSBtX3Jlc2lkZW50
S2V5QXZhaWxhYmlsaXR5IHsgUmVzaWRlbnRLZXlBdmFpbGFiaWxpdHk6OmtOb3RTdXBwb3J0ZWQg
fTsKICAgICAvLyBJbmRpY2F0ZXMgd2hldGhlciB0aGUgZGV2aWNlIGlzIGNhcGFibGUgb2YgdmVy
aWZ5aW5nIHRoZSB1c2VyIG9uIGl0cyBvd24uCiAgICAgVXNlclZlcmlmaWNhdGlvbkF2YWlsYWJp
bGl0eSBtX3VzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHkgeyBVc2VyVmVyaWZpY2F0aW9uQXZh
aWxhYmlsaXR5OjprTm90U3VwcG9ydGVkIH07CiAgICAgYm9vbCBtX3VzZXJQcmVzZW5jZVJlcXVp
cmVkIHsgdHJ1ZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRo
bi9maWRvL0RldmljZVJlcXVlc3RDb252ZXJ0ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdXRobi9maWRvL0RldmljZVJlcXVlc3RDb252ZXJ0ZXIuY3BwCmluZGV4IDMyOWYyYTFk
YTFiN2Y5MDM0NjMxMjg3OGI2MzA2MmM2ZTQyMjhkNDkuLjA5NGU0NDJjN2YxNzU4NGY1MTdkZjUw
NzQwYTA3YWMzNzZhNDU4OWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXV0aG4vZmlkby9EZXZpY2VSZXF1ZXN0Q29udmVydGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8vRGV2aWNlUmVxdWVzdENvbnZlcnRlci5jcHAKQEAgLTM1
LDYgKzM1LDcgQEAKICNpbmNsdWRlICJDQk9SV3JpdGVyLmgiCiAjaW5jbHVkZSAiUHVibGljS2V5
Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucy5oIgogI2luY2x1ZGUgIlB1YmxpY0tleUNyZWRlbnRp
YWxSZXF1ZXN0T3B0aW9ucy5oIgorI2luY2x1ZGUgIlJlc2lkZW50S2V5UmVxdWlyZW1lbnQuaCIK
ICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBmaWRvIHsKQEAgLTg1LDcgKzg2
LDcgQEAgc3RhdGljIENCT1JWYWx1ZSBjb252ZXJ0RGVzY3JpcHRvclRvQ0JPUihjb25zdCBQdWJs
aWNLZXlDcmVkZW50aWFsRGVzY3JpcHRvciYgZGUKICAgICByZXR1cm4gQ0JPUlZhbHVlKFdURk1v
dmUoY2JvckRlc2NyaXB0b3JNYXApKTsKIH0KIAotVmVjdG9yPHVpbnQ4X3Q+IGVuY29kZU1ha2VD
cmVkZW5pdGFsUmVxdWVzdEFzQ0JPUihjb25zdCBWZWN0b3I8dWludDhfdD4mIGhhc2gsIGNvbnN0
IFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMmIG9wdGlvbnMsIFVWQXZhaWxhYmls
aXR5IHV2Q2FwYWJpbGl0eSwgc3RkOjpvcHRpb25hbDxQaW5QYXJhbWV0ZXJzPiBwaW4pCitWZWN0
b3I8dWludDhfdD4gZW5jb2RlTWFrZUNyZWRlbml0YWxSZXF1ZXN0QXNDQk9SKGNvbnN0IFZlY3Rv
cjx1aW50OF90PiYgaGFzaCwgY29uc3QgUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9u
cyYgb3B0aW9ucywgVVZBdmFpbGFiaWxpdHkgdXZDYXBhYmlsaXR5LCBBdXRoZW50aWNhdG9yU3Vw
cG9ydGVkT3B0aW9uczo6UmVzaWRlbnRLZXlBdmFpbGFiaWxpdHkgcmVzaWRlbnRLZXlBdmFpbGFi
aWxpdHksIHN0ZDo6b3B0aW9uYWw8UGluUGFyYW1ldGVycz4gcGluKQogewogICAgIENCT1JWYWx1
ZTo6TWFwVmFsdWUgY2Jvck1hcDsKICAgICBjYm9yTWFwW0NCT1JWYWx1ZSgxKV0gPSBDQk9SVmFs
dWUoaGFzaCk7CkBAIC0xMDIsNyArMTAzLDExIEBAIFZlY3Rvcjx1aW50OF90PiBlbmNvZGVNYWtl
Q3JlZGVuaXRhbFJlcXVlc3RBc0NCT1IoY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBoYXNoLCBjCiAg
ICAgQ0JPUlZhbHVlOjpNYXBWYWx1ZSBvcHRpb25NYXA7CiAgICAgaWYgKG9wdGlvbnMuYXV0aGVu
dGljYXRvclNlbGVjdGlvbikgewogICAgICAgICAvLyBSZXNpZGVudCBrZXlzIGFyZSBub3Qgc3Vw
cG9ydGVkIGJ5IGRlZmF1bHQuCi0gICAgICAgIGlmIChvcHRpb25zLmF1dGhlbnRpY2F0b3JTZWxl
Y3Rpb24tPnJlcXVpcmVSZXNpZGVudEtleSkKKyAgICAgICAgaWYgKG9wdGlvbnMuYXV0aGVudGlj
YXRvclNlbGVjdGlvbi0+cmVzaWRlbnRLZXkpIHsKKyAgICAgICAgICAgIGlmICgqb3B0aW9ucy5h
dXRoZW50aWNhdG9yU2VsZWN0aW9uLT5yZXNpZGVudEtleSA9PSBSZXNpZGVudEtleVJlcXVpcmVt
ZW50OjpSZXF1aXJlZAorICAgICAgICAgICAgICAgIHx8ICgqb3B0aW9ucy5hdXRoZW50aWNhdG9y
U2VsZWN0aW9uLT5yZXNpZGVudEtleSA9PSBSZXNpZGVudEtleVJlcXVpcmVtZW50OjpQcmVmZXJy
ZWQgJiYgcmVzaWRlbnRLZXlBdmFpbGFiaWxpdHkgPT0gQXV0aGVudGljYXRvclN1cHBvcnRlZE9w
dGlvbnM6OlJlc2lkZW50S2V5QXZhaWxhYmlsaXR5OjprU3VwcG9ydGVkKSkKKyAgICAgICAgICAg
ICAgICBvcHRpb25NYXBbQ0JPUlZhbHVlKGtSZXNpZGVudEtleU1hcEtleSldID0gQ0JPUlZhbHVl
KHRydWUpOworICAgICAgICB9IGVsc2UgaWYgKG9wdGlvbnMuYXV0aGVudGljYXRvclNlbGVjdGlv
bi0+cmVxdWlyZVJlc2lkZW50S2V5KQogICAgICAgICAgICAgb3B0aW9uTWFwW0NCT1JWYWx1ZShr
UmVzaWRlbnRLZXlNYXBLZXkpXSA9IENCT1JWYWx1ZSh0cnVlKTsKIAogICAgICAgICAvLyBVc2Vy
IHZlcmlmaWNhdGlvbiBpcyBub3QgcmVxdWlyZWQgYnkgZGVmYXVsdC4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vZmlkby9EZXZpY2VSZXF1ZXN0Q29udmVydGVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8vRGV2aWNlUmVxdWVzdENv
bnZlcnRlci5oCmluZGV4IDc5ZjJhOGFmOWY3ODVlNWU2ZmZmMGYwYWZmYjU1NDBlYmU3MzBkM2Uu
LmMxYTQ1ZDE3NWM3ZmI3YzRhMTE1MTk3MDlkOWM0NzM3OTkyYTdlYjcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vZmlkby9EZXZpY2VSZXF1ZXN0Q29udmVydGVy
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9maWRvL0RldmljZVJlcXVl
c3RDb252ZXJ0ZXIuaApAQCAtNTAsNyArNTAsNyBAQCBzdHJ1Y3QgUGluUGFyYW1ldGVycyB7CiAv
LyBTZXJpYWxpemVzIE1ha2VDcmVkZW50aWFsIHJlcXVlc3QgcGFyYW1ldGVyIGludG8gQ0JPUiBl
bmNvZGVkIG1hcCB3aXRoCiAvLyBpbnRlZ2VyIGtleXMgYW5kIENCT1IgZW5jb2RlZCB2YWx1ZXMg
YXMgZGVmaW5lZCBieSB0aGUgQ1RBUCBzcGVjLgogLy8gaHR0cHM6Ly9maWRvYWxsaWFuY2Uub3Jn
L3NwZWNzL2ZpZG8tdjIuMC1wcy0yMDE3MDkyNy9maWRvLWNsaWVudC10by1hdXRoZW50aWNhdG9y
LXByb3RvY29sLXYyLjAtcHMtMjAxNzA5MjcuaHRtbCNhdXRoZW50aWNhdG9yTWFrZUNyZWRlbnRp
YWwKLVdFQkNPUkVfRVhQT1JUIFZlY3Rvcjx1aW50OF90PiBlbmNvZGVNYWtlQ3JlZGVuaXRhbFJl
cXVlc3RBc0NCT1IoY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBoYXNoLCBjb25zdCBXZWJDb3JlOjpQ
dWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zJiwgQXV0aGVudGljYXRvclN1cHBvcnRl
ZE9wdGlvbnM6OlVzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHksIHN0ZDo6b3B0aW9uYWw8UGlu
UGFyYW1ldGVycz4gPSBzdGQ6Om51bGxvcHQpOworV0VCQ09SRV9FWFBPUlQgVmVjdG9yPHVpbnQ4
X3Q+IGVuY29kZU1ha2VDcmVkZW5pdGFsUmVxdWVzdEFzQ0JPUihjb25zdCBWZWN0b3I8dWludDhf
dD4mIGhhc2gsIGNvbnN0IFdlYkNvcmU6OlB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlv
bnMmLCBBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9uczo6VXNlclZlcmlmaWNhdGlvbkF2YWls
YWJpbGl0eSwgQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnM6OlJlc2lkZW50S2V5QXZhaWxh
YmlsaXR5LCBzdGQ6Om9wdGlvbmFsPFBpblBhcmFtZXRlcnM+ID0gc3RkOjpudWxsb3B0KTsKIAog
Ly8gU2VyaWFsaXplcyBHZXRBc3NlcnRpb24gcmVxdWVzdCBwYXJhbWV0ZXIgaW50byBDQk9SIGVu
Y29kZWQgbWFwIHdpdGgKIC8vIGludGVnZXIga2V5cyBhbmQgQ0JPUiBlbmNvZGVkIHZhbHVlcyBh
cyBkZWZpbmVkIGJ5IHRoZSBDVEFQIHNwZWMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1dGhuL2ZpZG8vRGV2aWNlUmVzcG9uc2VDb252ZXJ0ZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9maWRvL0RldmljZVJlc3BvbnNlQ29udmVydGVyLmNw
cAppbmRleCA5MzJmZjA4MmNlODc3YmVmMDQ1OTE0NjA0ZTg0NmVkMTY3MjllNjNiLi5mMjFjNWVl
N2EyNWY1ZTkyNzU0NDMxZDM1NGE4N2E4ZDIxYzU4M2M4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8vRGV2aWNlUmVzcG9uc2VDb252ZXJ0ZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vZmlkby9EZXZpY2VSZXNwb25zZUNv
bnZlcnRlci5jcHAKQEAgLTI2NCw4ICsyNjQsMTAgQEAgc3RkOjpvcHRpb25hbDxBdXRoZW50aWNh
dG9yR2V0SW5mb1Jlc3BvbnNlPiByZWFkQ1RBUEdldEluZm9SZXNwb25zZShjb25zdCBWZWN0b3IK
ICAgICAgICAgaWYgKG9wdGlvbk1hcEl0ICE9IG9wdGlvbk1hcC5lbmQoKSkgewogICAgICAgICAg
ICAgaWYgKCFvcHRpb25NYXBJdC0+c2Vjb25kLmlzQm9vbCgpKQogICAgICAgICAgICAgICAgIHJl
dHVybiBzdGQ6Om51bGxvcHQ7Ci0KLSAgICAgICAgICAgIG9wdGlvbnMuc2V0U3VwcG9ydHNSZXNp
ZGVudEtleShvcHRpb25NYXBJdC0+c2Vjb25kLmdldEJvb2woKSk7CisgICAgICAgICAgICBpZiAo
b3B0aW9uTWFwSXQtPnNlY29uZC5nZXRCb29sKCkpCisgICAgICAgICAgICAgICAgb3B0aW9ucy5z
ZXRSZXNpZGVudEtleUF2YWlsYWJpbGl0eShBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9uczo6
UmVzaWRlbnRLZXlBdmFpbGFiaWxpdHk6OmtTdXBwb3J0ZWQpOworICAgICAgICAgICAgZWxzZQor
ICAgICAgICAgICAgICAgIG9wdGlvbnMuc2V0UmVzaWRlbnRLZXlBdmFpbGFiaWxpdHkoQXV0aGVu
dGljYXRvclN1cHBvcnRlZE9wdGlvbnM6OlJlc2lkZW50S2V5QXZhaWxhYmlsaXR5OjprTm90U3Vw
cG9ydGVkKTsKICAgICAgICAgfQogCiAgICAgICAgIG9wdGlvbk1hcEl0ID0gb3B0aW9uTWFwLmZp
bmQoQ0JPUihrVXNlclByZXNlbmNlTWFwS2V5KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IDczNjg0MjFi
Mjc3NGZkNWQ1ZTZhNmFmZTc5NjBiNDJlY2I0NDg3YzkuLjYwODgwNDliYmYzZjFhZTc2M2Q3ZWI4
OGFmMTM1NjRlNzhkYWY2NjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBAIC0zNzAxLDYgKzM3MDEsNyBAQCBK
U1JlbW90ZVBsYXliYWNrLmNwcAogSlNSZW1vdGVQbGF5YmFja0F2YWlsYWJpbGl0eUNhbGxiYWNr
LmNwcAogSlNSZXF1ZXN0QW5pbWF0aW9uRnJhbWVDYWxsYmFjay5jcHAKIEpTUmVxdWVzdENvb2tp
ZUNvbnNlbnRPcHRpb25zLmNwcAorSlNSZXNpZGVudEtleVJlcXVpcmVtZW50LmNwcAogSlNSZXNp
emVPYnNlcnZlci5jcHAKIEpTUmVzaXplT2JzZXJ2ZXJCb3hPcHRpb25zLmNwcAogSlNSZXNpemVP
YnNlcnZlckNhbGxiYWNrLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGQ1NTMyY2I5ZDhjYTU1ZGYyM2VkOGIzNzE2YTViNDY5
ZDJmZjgyM2EuLjJiMjgzMjU2MTNlYjIwZTE5ODc3MGEwN2ZlOGQxYjk4NzIwNDkzZjQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagor
KysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAg
LTE3MzAsNiArMTczMCw3IEBACiAJCTUxRkEyRURGMjc1MDZGREUwMDExQzE1RCAvKiBTaGFyZWRC
dWZmZXJDaHVua1JlYWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNTFGQTJFRDYyNzRGNzgzNzAwMTFDMTVEIC8qIFNoYXJlZEJ1ZmZlckNodW5rUmVh
ZGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
NTFGQjU1MDQxMTNFM0U5MTAwODIxMTc2IC8qIEpTQ2xvc2VFdmVudC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFGQjU1MDIxMTNFM0U5MTAwODIxMTc2
IC8qIEpTQ2xvc2VFdmVudC5oICovOyB9OwogCQk1MUZCNjdEQzFBRTZCODJGMDBEMDZDNUEgLyog
Q29udGVudEV4dGVuc2lvblN0eWxlU2hlZXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDUxRkI2N0RBMUFFNkI1RTQwMEQwNkM1QSAvKiBDb250ZW50RXh0
ZW5zaW9uU3R5bGVTaGVldC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CisJCTUyNjg4QUE2MjdENkE3REEwMDM1NzdBMiAvKiBSZXNpZGVudEtleVJlcXVp
cmVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1
MjY4OEFBMzI3RDZBN0RBMDAzNTc3QTIgLyogUmVzaWRlbnRLZXlSZXF1aXJlbWVudC5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTUyNzNDQzc3MjU2
MTAzQ0YwMDg1MDAwNyAvKiBQbGF0Zm9ybVhSQ29jb2EuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUyNzNDQzc1MjU2MTAzQ0YwMDg1MDAwNyAvKiBQbGF0
Zm9ybVhSQ29jb2EuaCAqLzsgfTsKIAkJNTI3M0NDOEUyNTYzN0VCNTAwODUwMDA3IC8qIFdlYlhS
VGVzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBF
MThEODNFMDI0M0Y3MUNFMDA5MjQ3RDYgLyogV2ViWFJUZXN0LmNwcCAqLzsgfTsKIAkJNTI3M0ND
OTAyNTYzN0Y2NzAwODUwMDA3IC8qIFdlYkZha2VYUkRldmljZS5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMThEODNFOTI0M0Y3MUQzMDA5MjQ3RDYg
LyogV2ViRmFrZVhSRGV2aWNlLmNwcCAqLzsgfTsKQEAgLTEwMDgxLDYgKzEwMDgyLDggQEAKIAkJ
NTIxMzFFNUExQzRGMTU2MTAwMzNGODAyIC8qIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYy5t
bSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFZpZGVvRnVsbHNjcmVl
bkludGVyZmFjZU1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTI2NzI0RjEx
Q0IyRkRGNjAwNzU5NzREIC8qIFRleHRUcmFja1JlcHJlc2VudGF0aW9uQ29jb2EubW0gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBUZXh0VHJhY2tSZXByZXNlbnRhdGlv
bkNvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MjY3MjRGMjFDQjJGREY2
MDA3NTk3NEQgLyogVGV4dFRyYWNrUmVwcmVzZW50YXRpb25Db2NvYS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBUZXh0VHJhY2tSZXByZXNlbnRhdGlvbkNvY29hLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUyNjg4QUEzMjdENkE3REEwMDM1NzdBMiAvKiBSZXNp
ZGVudEtleVJlcXVpcmVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlc2lkZW50S2V5UmVxdWlyZW1l
bnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTI2ODhBQTUyN0Q2QTdEQTAwMzU3
N0EyIC8qIFJlc2lkZW50S2V5UmVxdWlyZW1lbnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJlc2lkZW50S2V5UmVxdWly
ZW1lbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MjczQ0M3NDI1NjEwM0NG
MDA4NTAwMDcgLyogUGxhdGZvcm1YUkNvY29hLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUGxh
dGZvcm1YUkNvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MjczQ0M3NTI1
NjEwM0NGMDA4NTAwMDcgLyogUGxhdGZvcm1YUkNvY29hLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBsYXRm
b3JtWFJDb2NvYS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MjczQ0M5QTI1NjNC
MjEyMDA4NTAwMDcgLyogSlNXZWJYUlRlc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gSlNXZWJYUlRlc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtMjMzMjksNiArMjMzMzIsOCBAQAogCQkJCTU3MzAzQzA4MjAwOTk4RjgwMDM1NTk2NSAvKiBQ
dWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMuaWRsICovLAogCQkJCTU3MzAzQkVBMjAw
OTdGNDAwMDM1NTk2NSAvKiBQdWJsaWNLZXlDcmVkZW50aWFsVHlwZS5oICovLAogCQkJCTU3MzAz
QkYwMjAwOTg0NjEwMDM1NTk2NSAvKiBQdWJsaWNLZXlDcmVkZW50aWFsVHlwZS5pZGwgKi8sCisJ
CQkJNTI2ODhBQTMyN0Q2QTdEQTAwMzU3N0EyIC8qIFJlc2lkZW50S2V5UmVxdWlyZW1lbnQuaCAq
LywKKwkJCQk1MjY4OEFBNTI3RDZBN0RBMDAzNTc3QTIgLyogUmVzaWRlbnRLZXlSZXF1aXJlbWVu
dC5pZGwgKi8sCiAJCQkJNTcyQjQwMjMyMTc2OEQ4NTAwMEFENDNFIC8qIFVzZXJWZXJpZmljYXRp
b25SZXF1aXJlbWVudC5oICovLAogCQkJCTU3MkI0MDI1MjE3NjhEODUwMDBBRDQzRSAvKiBVc2Vy
VmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQuaWRsICovLAogCQkJCTU3NEY1NURDMjA0RjM3MzIwMDI5
NDhDNiAvKiBXZWJBdXRoZW50aWNhdGlvbkNvbnN0YW50cy5oICovLApAQCAtMzcwNjUsNiArMzcw
NzAsNyBAQAogCQkJCTQ5OThBRUM2MTNGOUQwRUEwMDkwQjFBQSAvKiBSZXF1ZXN0QW5pbWF0aW9u
RnJhbWVDYWxsYmFjay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRjQwMzRGQUMyNzVFQUQ2RTAwM0E4
MUY4IC8qIFJlcXVlc3RDb29raWVDb25zZW50T3B0aW9ucy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
RjU1QjNERDAxMjUxRjEyRDAwM0VGMjY5IC8qIFJlc2V0SW5wdXRUeXBlLmggaW4gSGVhZGVycyAq
LywKKwkJCQk1MjY4OEFBNjI3RDZBN0RBMDAzNTc3QTIgLyogUmVzaWRlbnRLZXlSZXF1aXJlbWVu
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNThCMkY5RjQyMjMyRDQ1MzAwOTM4RDYzIC8qIFJlc2l6
ZU9ic2VydmF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk1OEIyRjlGNTIyMzJENDU4MDA5MzhE
NjMgLyogUmVzaXplT2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRDZBNjhDMjZFRUMz
N0YwMDdCMjIzMSAvKiBSZXNpemVPYnNlcnZlckJveE9wdGlvbnMuaCBpbiBIZWFkZXJzICovLApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0F1dGhlbnRp
Y2F0b3JTZWxlY3Rpb25Dcml0ZXJpYS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL19XS0F1dGhlbnRpY2F0b3JTZWxlY3Rpb25Dcml0ZXJpYS5oCmluZGV4IGZkOGMyNjRiM2Mx
YzJhMzFlMTczZGMxYjgxMzYwNTY3NjY2MGM0NTguLjI2ZTViNzAzMmQ0NzdmY2FjZDM4YzZjZGE3
ZDMyOTk1OTQ1OTQwNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9fV0tBdXRoZW50aWNhdG9yU2VsZWN0aW9uQ3JpdGVyaWEuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQXV0aGVudGljYXRvclNlbGVjdGlvbkNyaXRlcmlh
LmgKQEAgLTI5LDYgKzI5LDggQEAKIAogI2ltcG9ydCA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+
CiAjaW1wb3J0IDxXZWJLaXQvX1dLQXV0aGVudGljYXRvckF0dGFjaG1lbnQuaD4KKyNpbXBvcnQg
PFdlYktpdC9fV0tSZXNpZGVudEtleVJlcXVpcmVtZW50Lmg+CisKICNpbXBvcnQgPFdlYktpdC9f
V0tVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQuaD4KIAogTlNfQVNTVU1FX05PTk5VTExfQkVH
SU4KQEAgLTM5LDYgKzQxLDkgQEAgV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zKDEyLjApLCBpb3Mo
MTUuMCkpCiAvKiFAZGlzY3Vzc2lvbiBUaGUgZGVmYXVsdCB2YWx1ZSBpcyBfV0tBdXRoZW50aWNh
dG9yQXR0YWNobWVudEFsbC4qLwogQHByb3BlcnR5IChub25hdG9taWMpIF9XS0F1dGhlbnRpY2F0
b3JBdHRhY2htZW50IGF1dGhlbnRpY2F0b3JBdHRhY2htZW50OwogCisvKiAoQGRpc2N1c3Npb24g
VGhlIGRlZmF1bHQgdmFsdWUgaXMgX1dLUmVzaWRlbnRLZXlSZXF1aXJlbWVudE5vdFByZXNlbnQg
Ki8KK0Bwcm9wZXJ0eSAobm9uYXRvbWljKSBfV0tSZXNpZGVudEtleVJlcXVpcmVtZW50IHJlc2lk
ZW50S2V5OworCiAvKiFAZGlzY3Vzc2lvbiBUaGUgZGVmYXVsdCB2YWx1ZSBpcyBOTy4qLwogQHBy
b3BlcnR5IChub25hdG9taWMpIEJPT0wgcmVxdWlyZVJlc2lkZW50S2V5OwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQXV0aGVudGljYXRvclNlbGVj
dGlvbkNyaXRlcmlhLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0F1
dGhlbnRpY2F0b3JTZWxlY3Rpb25Dcml0ZXJpYS5tbQppbmRleCA4OGQwNDNkZTUwNzQ3NmMwNDdi
YTgzYzg4MDJmYWRkMDdkYzg3ODFiLi5mNjdiYmY4MjViNzJhY2M5Yzg2OTJkNzJjYWUzMWYyOTQ1
YjI4YWE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dL
QXV0aGVudGljYXRvclNlbGVjdGlvbkNyaXRlcmlhLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9fV0tBdXRoZW50aWNhdG9yU2VsZWN0aW9uQ3JpdGVyaWEubW0KQEAg
LTM0LDYgKzM0LDcgQEAKICAgICAgICAgcmV0dXJuIG5pbDsKIAogICAgIHNlbGYuYXV0aGVudGlj
YXRvckF0dGFjaG1lbnQgPSBfV0tBdXRoZW50aWNhdG9yQXR0YWNobWVudEFsbDsKKyAgICBzZWxm
LnJlc2lkZW50S2V5ID0gX1dLUmVzaWRlbnRLZXlSZXF1aXJlbWVudE5vdFByZXNlbnQ7CiAgICAg
c2VsZi5yZXF1aXJlUmVzaWRlbnRLZXkgPSBOTzsKICAgICBzZWxmLnVzZXJWZXJpZmljYXRpb24g
PSBfV0tVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnRQcmVmZXJyZWQ7CiAgICAgcmV0dXJuIHNl
bGY7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUmVz
aWRlbnRLZXlSZXF1aXJlbWVudC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L19XS1Jlc2lkZW50S2V5UmVxdWlyZW1lbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNTViOGRkZDdlYTVmNGMx
ZTc0NjBlYjJjMjA5MjljYjY1ZjhhYWI4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1Jlc2lkZW50S2V5UmVxdWlyZW1lbnQuaApAQCAtMCww
ICsxLDM1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIyIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbXBvcnQgPFdlYktpdC9X
S0ZvdW5kYXRpb24uaD4KKwordHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgX1dLUmVzaWRlbnRL
ZXlSZXF1aXJlbWVudCkgeworICAgIF9XS1Jlc2lkZW50S2V5UmVxdWlyZW1lbnROb3RQcmVzZW50
LAorICAgIF9XS1Jlc2lkZW50S2V5UmVxdWlyZW1lbnRSZXF1aXJlZCwKKyAgICBfV0tSZXNpZGVu
dEtleVJlcXVpcmVtZW50UHJlZmVycmVkLAorICAgIF9XS1Jlc2lkZW50S2V5UmVxdWlyZW1lbnRE
aXNjb3VyYWdlZCwKK30gV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdL
X0lPU19UQkEpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9fV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwubW0KaW5kZXggNGQ3Yzc2ZDgzOGVi
M2UxODI1ZjgzMWE4MDdmN2U0ODVlMTgwOWU4MS4uNjBjZjExZTM4M2Y5MWU5YzQ5MDVlYjIyMWI0
NjBlOWYyOGI4OGU3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwubW0KQEAgLTczNSwxMCAr
NzM1LDI4IEBAIHN0YXRpYyBXZWJDb3JlOjpVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQgdXNl
clZlcmlmaWNhdGlvbihfV0tVc2VyVmVyaWZpY2F0aW9uCiAgICAgfQogfQogCitzdGF0aWMgc3Rk
OjpvcHRpb25hbDxXZWJDb3JlOjpSZXNpZGVudEtleVJlcXVpcmVtZW50PiB0b1dlYkNvcmUoX1dL
UmVzaWRlbnRLZXlSZXF1aXJlbWVudCB1dikKK3sKKyAgICBzd2l0Y2ggKHV2KSB7CisgICAgY2Fz
ZSBfV0tSZXNpZGVudEtleVJlcXVpcmVtZW50Tm90UHJlc2VudDoKKyAgICAgICAgcmV0dXJuIHN0
ZDo6bnVsbG9wdDsKKyAgICBjYXNlIF9XS1Jlc2lkZW50S2V5UmVxdWlyZW1lbnRSZXF1aXJlZDoK
KyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OlJlc2lkZW50S2V5UmVxdWlyZW1lbnQ6OlJlcXVpcmVk
OworICAgIGNhc2UgX1dLUmVzaWRlbnRLZXlSZXF1aXJlbWVudFByZWZlcnJlZDoKKyAgICAgICAg
cmV0dXJuIFdlYkNvcmU6OlJlc2lkZW50S2V5UmVxdWlyZW1lbnQ6OlByZWZlcnJlZDsKKyAgICBj
YXNlIF9XS1Jlc2lkZW50S2V5UmVxdWlyZW1lbnREaXNjb3VyYWdlZDoKKyAgICAgICAgcmV0dXJu
IFdlYkNvcmU6OlJlc2lkZW50S2V5UmVxdWlyZW1lbnQ6OkRpc2NvdXJhZ2VkOworICAgIGRlZmF1
bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm4gV2ViQ29y
ZTo6UmVzaWRlbnRLZXlSZXF1aXJlbWVudDo6UHJlZmVycmVkOworICAgIH0KK30KKwogc3RhdGlj
IFdlYkNvcmU6OlB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnM6OkF1dGhlbnRpY2F0
b3JTZWxlY3Rpb25Dcml0ZXJpYSBhdXRoZW50aWNhdG9yU2VsZWN0aW9uQ3JpdGVyaWEoX1dLQXV0
aGVudGljYXRvclNlbGVjdGlvbkNyaXRlcmlhICphdXRoZW50aWNhdG9yU2VsZWN0aW9uKQogewog
ICAgIFdlYkNvcmU6OlB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnM6OkF1dGhlbnRp
Y2F0b3JTZWxlY3Rpb25Dcml0ZXJpYSByZXN1bHQ7CiAgICAgcmVzdWx0LmF1dGhlbnRpY2F0b3JB
dHRhY2htZW50ID0gYXV0aGVudGljYXRvckF0dGFjaG1lbnQoYXV0aGVudGljYXRvclNlbGVjdGlv
bi5hdXRoZW50aWNhdG9yQXR0YWNobWVudCk7CisgICAgcmVzdWx0LnJlc2lkZW50S2V5ID0gdG9X
ZWJDb3JlKGF1dGhlbnRpY2F0b3JTZWxlY3Rpb24ucmVzaWRlbnRLZXkpOwogICAgIHJlc3VsdC5y
ZXF1aXJlUmVzaWRlbnRLZXkgPSBhdXRoZW50aWNhdG9yU2VsZWN0aW9uLnJlcXVpcmVSZXNpZGVu
dEtleTsKICAgICByZXN1bHQudXNlclZlcmlmaWNhdGlvbiA9IHVzZXJWZXJpZmljYXRpb24oYXV0
aGVudGljYXRvclNlbGVjdGlvbi51c2VyVmVyaWZpY2F0aW9uKTsKIApAQCAtOTMwLDcgKzk0OCw3
IEBAIHN0YXRpYyBSZXRhaW5QdHI8X1dLQXV0aGVudGljYXRvckFzc2VydGlvblJlc3BvbnNlPiB3
a0F1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwCiAjaWYgRU5BQkxFKFdFQl9BVVRITikKICAgICBh
dXRvIGhhc2ggPSBwcm9kdWNlQ2xpZW50RGF0YUpzb25IYXNoKGNsaWVudERhdGFKU09OKTsKIAot
ICAgIGF1dG8gZW5jb2RlZFZlY3RvciA9IGZpZG86OmVuY29kZU1ha2VDcmVkZW5pdGFsUmVxdWVz
dEFzQ0JPUihoYXNoLCBbX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbCBjb252ZXJ0VG9Db3JlQ3Jl
YXRpb25PcHRpb25zV2l0aE9wdGlvbnM6b3B0aW9uc10sIGNvcmVVc2VyVmVyaWZpY2F0aW9uQXZh
aWxhYmlsaXR5KHVzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHkpLCBzdGQ6Om51bGxvcHQpOwor
ICAgIGF1dG8gZW5jb2RlZFZlY3RvciA9IGZpZG86OmVuY29kZU1ha2VDcmVkZW5pdGFsUmVxdWVz
dEFzQ0JPUihoYXNoLCBbX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbCBjb252ZXJ0VG9Db3JlQ3Jl
YXRpb25PcHRpb25zV2l0aE9wdGlvbnM6b3B0aW9uc10sIGNvcmVVc2VyVmVyaWZpY2F0aW9uQXZh
aWxhYmlsaXR5KHVzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHkpLCBmaWRvOjpBdXRoZW50aWNh
dG9yU3VwcG9ydGVkT3B0aW9uczo6UmVzaWRlbnRLZXlBdmFpbGFiaWxpdHk6OmtTdXBwb3J0ZWQs
IHN0ZDo6bnVsbG9wdCk7CiAgICAgZW5jb2RlZENvbW1hbmQgPSBhZG9wdE5TKFtbTlNEYXRhIGFs
bG9jXSBpbml0V2l0aEJ5dGVzOmVuY29kZWRWZWN0b3IuZGF0YSgpIGxlbmd0aDplbmNvZGVkVmVj
dG9yLnNpemUoKV0pOwogI2VuZGlmCiAKQEAgLTk1NSw3ICs5NzMsNyBAQCBzdGF0aWMgUmV0YWlu
UHRyPF9XS0F1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwb25zZT4gd2tBdXRoZW50aWNhdG9yQXNz
ZXJ0aW9uUmVzcAogewogICAgIFJldGFpblB0cjxOU0RhdGE+IGVuY29kZWRDb21tYW5kOwogI2lm
IEVOQUJMRShXRUJfQVVUSE4pCi0gICAgYXV0byBlbmNvZGVkVmVjdG9yID0gZmlkbzo6ZW5jb2Rl
TWFrZUNyZWRlbml0YWxSZXF1ZXN0QXNDQk9SKHZlY3RvckZyb21OU0RhdGEoY2xpZW50RGF0YUhh
c2gpLCBbX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbCBjb252ZXJ0VG9Db3JlQ3JlYXRpb25PcHRp
b25zV2l0aE9wdGlvbnM6b3B0aW9uc10sIGNvcmVVc2VyVmVyaWZpY2F0aW9uQXZhaWxhYmlsaXR5
KHVzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHkpLCBzdGQ6Om51bGxvcHQpOworICAgIGF1dG8g
ZW5jb2RlZFZlY3RvciA9IGZpZG86OmVuY29kZU1ha2VDcmVkZW5pdGFsUmVxdWVzdEFzQ0JPUih2
ZWN0b3JGcm9tTlNEYXRhKGNsaWVudERhdGFIYXNoKSwgW19XS1dlYkF1dGhlbnRpY2F0aW9uUGFu
ZWwgY29udmVydFRvQ29yZUNyZWF0aW9uT3B0aW9uc1dpdGhPcHRpb25zOm9wdGlvbnNdLCBjb3Jl
VXNlclZlcmlmaWNhdGlvbkF2YWlsYWJpbGl0eSh1c2VyVmVyaWZpY2F0aW9uQXZhaWxhYmlsaXR5
KSwgZmlkbzo6QXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnM6OlJlc2lkZW50S2V5QXZhaWxh
YmlsaXR5OjprU3VwcG9ydGVkLCBzdGQ6Om51bGxvcHQpOwogICAgIGVuY29kZWRDb21tYW5kID0g
YWRvcHROUyhbW05TRGF0YSBhbGxvY10gaW5pdFdpdGhCeXRlczplbmNvZGVkVmVjdG9yLmRhdGEo
KSBsZW5ndGg6ZW5jb2RlZFZlY3Rvci5zaXplKCldKTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9maWRvL0N0YXBBdXRoZW50
aWNhdG9yLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL2Zp
ZG8vQ3RhcEF1dGhlbnRpY2F0b3IuY3BwCmluZGV4IGU1MGU2OWRiMzM4MGY3YjYyMGE4NDExNjBk
OTg0NDY5ZDgwZWRjMDkuLjE3OGZhZjg2OGVkYjY5ZWQ5ZjA2NWRlMTI1MDc2NzJjYTg3Zjc4MGMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL2Zp
ZG8vQ3RhcEF1dGhlbnRpY2F0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YkF1dGhlbnRpY2F0aW9uL2ZpZG8vQ3RhcEF1dGhlbnRpY2F0b3IuY3BwCkBAIC05NiwxMyArOTYs
MTQgQEAgdm9pZCBDdGFwQXV0aGVudGljYXRvcjo6bWFrZUNyZWRlbnRpYWwoKQogICAgIFZlY3Rv
cjx1aW50OF90PiBjYm9yQ21kOwogICAgIGF1dG8mIG9wdGlvbnMgPSBzdGQ6OmdldDxQdWJsaWNL
ZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zPihyZXF1ZXN0RGF0YSgpLm9wdGlvbnMpOwogICAg
IGF1dG8gaW50ZXJuYWxVVkF2YWlsYWJpbGl0eSA9IG1faW5mby5vcHRpb25zKCkudXNlclZlcmlm
aWNhdGlvbkF2YWlsYWJpbGl0eSgpOworICAgIGF1dG8gcmVzaWRlbnRLZXlBdmFpbGFiaWxpdHkg
PSBtX2luZm8ub3B0aW9ucygpLnJlc2lkZW50S2V5QXZhaWxhYmlsaXR5KCk7CiAgICAgLy8gSWYg
VVYgaXMgcmVxdWlyZWQsIHRoZW4gZWl0aGVyIGJ1aWx0LWluIHV2IG9yIGEgcGluIHdpbGwgd29y
ay4KICAgICBpZiAoaW50ZXJuYWxVVkF2YWlsYWJpbGl0eSA9PSBVVkF2YWlsYWJpbGl0eTo6a1N1
cHBvcnRlZEFuZENvbmZpZ3VyZWQgJiYgKCFvcHRpb25zLmF1dGhlbnRpY2F0b3JTZWxlY3Rpb24g
fHwgb3B0aW9ucy5hdXRoZW50aWNhdG9yU2VsZWN0aW9uLT51c2VyVmVyaWZpY2F0aW9uICE9IFVz
ZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudDo6RGlzY291cmFnZWQpICYmIG1fcGluQXV0aC5pc0Vt
cHR5KCkpCi0gICAgICAgIGNib3JDbWQgPSBlbmNvZGVNYWtlQ3JlZGVuaXRhbFJlcXVlc3RBc0NC
T1IocmVxdWVzdERhdGEoKS5oYXNoLCBvcHRpb25zLCBpbnRlcm5hbFVWQXZhaWxhYmlsaXR5KTsK
KyAgICAgICAgY2JvckNtZCA9IGVuY29kZU1ha2VDcmVkZW5pdGFsUmVxdWVzdEFzQ0JPUihyZXF1
ZXN0RGF0YSgpLmhhc2gsIG9wdGlvbnMsIGludGVybmFsVVZBdmFpbGFiaWxpdHksIHJlc2lkZW50
S2V5QXZhaWxhYmlsaXR5KTsKICAgICBlbHNlIGlmIChtX2luZm8ub3B0aW9ucygpLmNsaWVudFBp
bkF2YWlsYWJpbGl0eSgpID09IEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zOjpDbGllbnRQ
aW5BdmFpbGFiaWxpdHk6OmtTdXBwb3J0ZWRBbmRQaW5TZXQpCi0gICAgICAgIGNib3JDbWQgPSBl
bmNvZGVNYWtlQ3JlZGVuaXRhbFJlcXVlc3RBc0NCT1IocmVxdWVzdERhdGEoKS5oYXNoLCBvcHRp
b25zLCBpbnRlcm5hbFVWQXZhaWxhYmlsaXR5LCBQaW5QYXJhbWV0ZXJzIHsgcGluOjprUHJvdG9j
b2xWZXJzaW9uLCBtX3BpbkF1dGggfSk7CisgICAgICAgIGNib3JDbWQgPSBlbmNvZGVNYWtlQ3Jl
ZGVuaXRhbFJlcXVlc3RBc0NCT1IocmVxdWVzdERhdGEoKS5oYXNoLCBvcHRpb25zLCBpbnRlcm5h
bFVWQXZhaWxhYmlsaXR5LCByZXNpZGVudEtleUF2YWlsYWJpbGl0eSwgUGluUGFyYW1ldGVycyB7
IHBpbjo6a1Byb3RvY29sVmVyc2lvbiwgbV9waW5BdXRoIH0pOwogICAgIGVsc2UKLSAgICAgICAg
Y2JvckNtZCA9IGVuY29kZU1ha2VDcmVkZW5pdGFsUmVxdWVzdEFzQ0JPUihyZXF1ZXN0RGF0YSgp
Lmhhc2gsIG9wdGlvbnMsIGludGVybmFsVVZBdmFpbGFiaWxpdHkpOworICAgICAgICBjYm9yQ21k
ID0gZW5jb2RlTWFrZUNyZWRlbml0YWxSZXF1ZXN0QXNDQk9SKHJlcXVlc3REYXRhKCkuaGFzaCwg
b3B0aW9ucywgaW50ZXJuYWxVVkF2YWlsYWJpbGl0eSwgcmVzaWRlbnRLZXlBdmFpbGFiaWxpdHkp
OwogICAgIGRyaXZlcigpLnRyYW5zYWN0KFdURk1vdmUoY2JvckNtZCksIFt3ZWFrVGhpcyA9IFdl
YWtQdHIgeyAqdGhpcyB9XShWZWN0b3I8dWludDhfdD4mJiBkYXRhKSB7CiAgICAgICAgIEFTU0VS
VChSdW5Mb29wOjppc01haW4oKSk7CiAgICAgICAgIGlmICghd2Vha1RoaXMpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNl
L1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA3N2E1OTliNTM0
MDljYjhkNWJmNmI2OWYzNGJiZDE5MDIxNzhmYmZkLi5iZGNkODJiMGY4NmE3NmJlMTkxNTI3N2Zh
Y2M5ZWI3YmI1YWVmYjRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKQEAgLTEwODEsNiArMTA4MSw3IEBACiAJCTUxRkFFQzNBMUIwNjU3NjMw
MDA5QzRFNyAvKiBBdXhpbGlhcnlQcm9jZXNzTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxRkFFQzM3MUIwNjU3MzEwMDA5QzRFNyAvKiBB
dXhpbGlhcnlQcm9jZXNzTWVzc2FnZXMuaCAqLzsgfTsKIAkJNTFGQUVDM0IxQjA2NTc2ODAwMDlD
NEU3IC8qIEF1eGlsaWFyeVByb2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFGQUVDMzYxQjA2NTczMTAwMDlDNEU3
IC8qIEF1eGlsaWFyeVByb2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OwogCQk1MUZEMThC
NjE2NTFGQkFEMDBEQkUxQ0UgLyogTmV0d29ya1Jlc291cmNlTG9hZGVyLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUZEMThCNDE2NTFGQkFEMDBEQkUx
Q0UgLyogTmV0d29ya1Jlc291cmNlTG9hZGVyLmggKi87IH07CisJCTUyNjg4QUI0MjdEN0NFNDAw
MDM1NzdBMiAvKiBfV0tSZXNpZGVudEtleVJlcXVpcmVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MjY4OEFCMzI3RDdDRTQwMDAzNTc3QTIgLyog
X1dLUmVzaWRlbnRLZXlSZXF1aXJlbWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTUyNzJENEM5MUU3MzVGMDkwMEVCNDI5MCAvKiBXS1Byb3Rl
Y3Rpb25TcGFjZU5TLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA1MjcyRDRDNzFFNzM1RjA5MDBFQjQyOTAgLyogV0tQcm90ZWN0aW9uU3BhY2VOUy5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTUyOEMzN0Mx
MTk1Q0JCMUEwMEQ4QjlDQyAvKiBXS0JhY2tGb3J3YXJkTGlzdFByaXZhdGUuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBOUYyODEwMTk1OEY0NzgwMDhD
QUM3MiAvKiBXS0JhY2tGb3J3YXJkTGlzdFByaXZhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1MkNEQzVDNDI3MzFEQTBEMDBBM0UzRUIgLyog
VmlydHVhbEF1dGhlbnRpY2F0b3JDb25maWd1cmF0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MkNEQzVCRDI3MzFEQTBDMDBBM0UzRUIgLyogVmly
dHVhbEF1dGhlbnRpY2F0b3JDb25maWd1cmF0aW9uLmggKi87IH07CkBAIC00NjQ0LDYgKzQ2NDUs
NyBAQAogCQk1MUZCMDkwMjE2M0EzQjFDMDBFQzMyNEEgLyogTmV0d29ya1Byb2Nlc3NDb25uZWN0
aW9uLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dDsgbmFtZSA9IE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5p
bjsgcGF0aCA9IE5ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MUZEMThCMzE2NTFGQkFEMDBEQkUxQ0UgLyog
TmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IE5ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTUxRkQxOEI0MTY1MUZCQUQwMERCRTFDRSAvKiBOZXR3b3JrUmVzb3VyY2VMb2FkZXIu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTmV0d29ya1Jlc291cmNlTG9hZGVy
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUyNjg4QUIzMjdEN0NFNDAwMDM1NzdB
MiAvKiBfV0tSZXNpZGVudEtleVJlcXVpcmVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IF9XS1Jlc2lk
ZW50S2V5UmVxdWlyZW1lbnQuaDsgcGF0aCA9IFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUmVzaWRl
bnRLZXlSZXF1aXJlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MjcyRDRD
NzFFNzM1RjA5MDBFQjQyOTAgLyogV0tQcm90ZWN0aW9uU3BhY2VOUy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IG5hbWUgPSBXS1Byb3RlY3Rpb25TcGFjZU5TLmg7IHBhdGggPSBtYWMvV0tQ
cm90ZWN0aW9uU3BhY2VOUy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MjcyRDRD
ODFFNzM1RjA5MDBFQjQyOTAgLyogV0tQcm90ZWN0aW9uU3BhY2VOUy5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IFdLUHJvdGVjdGlvblNwYWNlTlMubW07IHBhdGgg
PSBtYWMvV0tQcm90ZWN0aW9uU3BhY2VOUy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNTJDREM1QkQyNzMxREEwQzAwQTNFM0VCIC8qIFZpcnR1YWxBdXRoZW50aWNhdG9yQ29uZmln
dXJhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWaXJ0dWFsQXV0aGVu
dGljYXRvckNvbmZpZ3VyYXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTY5
ODQsNiArNjk4Niw3IEBACiAJCTA4NjdENjkxRkU4NDAyOEZDMDJBQUMwNyAvKiBXZWJLaXQyICov
ID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQk1MjY4OEFCMzI3
RDdDRTQwMDAzNTc3QTIgLyogX1dLUmVzaWRlbnRLZXlSZXF1aXJlbWVudC5oICovLAogCQkJCTVD
MTU3QTBBMjcxN0M5RjEwMEVENTI4MCAvKiB3ZWJwdXNoZCAqLywKIAkJCQlCMzk2RUE1NTEyRTBF
RDJEMDBGNEZFQjcgLyogY29uZmlnLmggKi8sCiAJCQkJMkQ3REVCRTAyMTI2OUQ1RjAwQjlGNzND
IC8qIFNvdXJjZXMudHh0ICovLApAQCAtMTI5ODgsNiArMTI5OTEsNyBAQAogCQkJCTk5MEUxRTA5
MjM4NEFBNTcwMDQ2MDJERiAvKiBfV0tSZW1vdGVXZWJJbnNwZWN0b3JWaWV3Q29udHJvbGxlclBy
aXZhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTM3NzIxNkI4MUE0RTZCRTAwMERDQTcxOCAvKiBf
V0tSZW5kZXJpbmdQcm9ncmVzc0V2ZW50cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUY2MDRCQUEx
ODg5RkJCODAwRUUwMzk1IC8qIF9XS1JlbmRlcmluZ1Byb2dyZXNzRXZlbnRzSW50ZXJuYWwuaCBp
biBIZWFkZXJzICovLAorCQkJCTUyNjg4QUI0MjdEN0NFNDAwMDM1NzdBMiAvKiBfV0tSZXNpZGVu
dEtleVJlcXVpcmVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0I3QUZFMDIzQzUyQ0U1MDBF
NDlDRjMgLyogX1dLUmVzb3VyY2VMb2FkRGVsZWdhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTVD
QjdBRkU4MjNDNjlCNjEwMEU0OUNGMyAvKiBfV0tSZXNvdXJjZUxvYWRJbmZvLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk0OUZCRjAwMTIzOUIxRjhEMDBCRDAzMkYgLyogX1dLUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc0ZpcnN0UGFydHkuaCBpbiBIZWFkZXJzICovLApAQCAtMTM2NzksNyArMTM2ODMsNiBA
QAogCQkJCTU3NDJBMzA4MjUzNThBMDQwMEI3QkExNCAvKiBXZWJBdXRoblByb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnMuaCBpbiBIZWFkZXJzICovLAogCQkJCTU3MkVCQkMyMjUzNkE2MEEwMDA1NTJC
MyAvKiBXZWJBdXRoblByb2Nlc3NNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTcyRUJC
QzkyNTM2QUZENTAwMDU1MkIzIC8qIFdlYkF1dGhuUHJvY2Vzc1Byb3h5LmggaW4gSGVhZGVycyAq
LywKLQkJCQk1NzJFQkJEMDI1MzZCQjExMDAwNTUyQjMgLyogV2ViQXV0aG5Qcm9jZXNzUHJveHlN
ZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRjQyRDYzNDEyMkEwRUZERjAwRDJGQjNBIC8q
IFdlYkF1dG9jb3JyZWN0aW9uRGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTkwRDM5RjUyNDNC
RTY0ODAwMTk5Mzg4IC8qIFdlYkF1dG9tYXRpb25ET01XaW5kb3dPYnNlcnZlci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJOTk1NUE2RUMxQzc5ODBDMjAwRUI2QTkzIC8qIFdlYkF1dG9tYXRpb25TZXNz
aW9uLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xz
L0NoYW5nZUxvZwppbmRleCBlZjhiOGFhZmYzZGQzMzYxZjM2OTk1ZTJmZDEzOWUxN2FiZTdlZjBk
Li45ZGE1M2I0ZjIxZWMzM2VmOTI3NzFhZTAzZGQwZGViMjM4ODZlNjI3IDEwMDY0NAotLS0gYS9U
b29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIw
MjItMDMtMTAgIEogUGFzY29lICA8al9wYXNjb2VAYXBwbGUuY29tPgorCisgICAgICAgIFtXZWJB
dXRobl0gU3VwcG9ydCBhdXRoZW50aWNhdG9yU2VsZWN0aW9uLnJlc2lkZW50S2V5IFJlc2lkZW50
S2V5UmVxdWlyZW1lbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIzNzU2NworICAgICAgICByZGFyOi8vODk3ODgzNzgKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgQVBJIHRlc3RzIGZvciBhdXRoZW50
aWNhdG9yU2VsZWN0aW9uLnJlc2lkZW50S2V5LgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJDb3JlL0N0YXBSZXF1ZXN0VGVzdC5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJ
OjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ3RhcFJlc3Bv
bnNlVGVzdC5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKwogMjAyMi0wMy0w
OSAgSm9uYXRoYW4gQmVkYXJkICA8amJlZGFyZEBhcHBsZS5jb20+CiAKICAgICAgICAgW0VXU10g
U3VwcG9ydCBjb25jZXB0IG9mICdibG9ja2VkJyBwdWxsIHJlcXVlc3RzCmRpZmYgLS1naXQgYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ3RhcFJlcXVlc3RUZXN0LmNwcCBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9DdGFwUmVxdWVzdFRlc3QuY3BwCmluZGV4
IGYxYTY4MzY5ZjcxMjNmMTY4YzBkYzJkYTc4ZmIwYmFmNmEyMzg2MGYuLjkxYzA4OGUxYTUxZTE1
ZTkzMjdhY2YwOThhOWRhZGNiY2EwMzU1M2YgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViQ29yZS9DdGFwUmVxdWVzdFRlc3QuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViQ29yZS9DdGFwUmVxdWVzdFRlc3QuY3BwCkBAIC02MCwxMiArNjAsMTIg
QEAgVEVTVChDVEFQUmVxdWVzdFRlc3QsIFRlc3RDb25zdHJ1Y3RNYWtlQ3JlZGVudGlhbFJlcXVl
c3RQYXJhbSkKICAgICB1c2VyLmRpc3BsYXlOYW1lID0gIkpvaG4gUC4gU21pdGgiOwogCiAgICAg
VmVjdG9yPFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnM6OlBhcmFtZXRlcnM+IHBh
cmFtcyB7IHsgUHVibGljS2V5Q3JlZGVudGlhbFR5cGU6OlB1YmxpY0tleSwgNyB9LCB7IFB1Ymxp
Y0tleUNyZWRlbnRpYWxUeXBlOjpQdWJsaWNLZXksIDI1NyB9IH07Ci0gICAgUHVibGljS2V5Q3Jl
ZGVudGlhbENyZWF0aW9uT3B0aW9uczo6QXV0aGVudGljYXRvclNlbGVjdGlvbkNyaXRlcmlhIHNl
bGVjdGlvbiB7IEF1dGhlbnRpY2F0b3JBdHRhY2htZW50OjpQbGF0Zm9ybSwgdHJ1ZSwgVXNlclZl
cmlmaWNhdGlvblJlcXVpcmVtZW50OjpQcmVmZXJyZWQgfTsKKyAgICBQdWJsaWNLZXlDcmVkZW50
aWFsQ3JlYXRpb25PcHRpb25zOjpBdXRoZW50aWNhdG9yU2VsZWN0aW9uQ3JpdGVyaWEgc2VsZWN0
aW9uIHsgQXV0aGVudGljYXRvckF0dGFjaG1lbnQ6OlBsYXRmb3JtLCBzdGQ6Om51bGxvcHQsIHRy
dWUsIFVzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudDo6UHJlZmVycmVkIH07CiAKICAgICBQdWJs
aWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zIG9wdGlvbnMgeyBycCwgdXNlciwgeyB9LCBw
YXJhbXMsIHN0ZDo6bnVsbG9wdCwgeyB9LCBzZWxlY3Rpb24sIEF0dGVzdGF0aW9uQ29udmV5YW5j
ZVByZWZlcmVuY2U6Ok5vbmUsIHN0ZDo6bnVsbG9wdCB9OwogICAgIFZlY3Rvcjx1aW50OF90PiBo
YXNoOwogICAgIGhhc2guYXBwZW5kKFRlc3REYXRhOjprQ2xpZW50RGF0YUhhc2gsIHNpemVvZihU
ZXN0RGF0YTo6a0NsaWVudERhdGFIYXNoKSk7Ci0gICAgYXV0byBzZXJpYWxpemVkRGF0YSA9IGVu
Y29kZU1ha2VDcmVkZW5pdGFsUmVxdWVzdEFzQ0JPUihoYXNoLCBvcHRpb25zLCBBdXRoZW50aWNh
dG9yU3VwcG9ydGVkT3B0aW9uczo6VXNlclZlcmlmaWNhdGlvbkF2YWlsYWJpbGl0eTo6a1N1cHBv
cnRlZEFuZENvbmZpZ3VyZWQpOworICAgIGF1dG8gc2VyaWFsaXplZERhdGEgPSBlbmNvZGVNYWtl
Q3JlZGVuaXRhbFJlcXVlc3RBc0NCT1IoaGFzaCwgb3B0aW9ucywgQXV0aGVudGljYXRvclN1cHBv
cnRlZE9wdGlvbnM6OlVzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHk6OmtTdXBwb3J0ZWRBbmRD
b25maWd1cmVkLCBBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9uczo6UmVzaWRlbnRLZXlBdmFp
bGFiaWxpdHk6OmtTdXBwb3J0ZWQpOwogICAgIEVYUEVDVF9FUShzZXJpYWxpemVkRGF0YS5zaXpl
KCksIHNpemVvZihUZXN0RGF0YTo6a0N0YXBNYWtlQ3JlZGVudGlhbFJlcXVlc3QpKTsKICAgICBF
WFBFQ1RfRVEobWVtY21wKHNlcmlhbGl6ZWREYXRhLmRhdGEoKSwgVGVzdERhdGE6OmtDdGFwTWFr
ZUNyZWRlbnRpYWxSZXF1ZXN0LCBzZXJpYWxpemVkRGF0YS5zaXplKCkpLCAwKTsKIH0KQEAgLTgz
LDEyICs4MywxMiBAQCBURVNUKENUQVBSZXF1ZXN0VGVzdCwgVGVzdENvbnN0cnVjdE1ha2VDcmVk
ZW50aWFsUmVxdWVzdFBhcmFtTm9VVk5vUkspCiAgICAgdXNlci5kaXNwbGF5TmFtZSA9ICJKb2hu
IFAuIFNtaXRoIjsKIAogICAgIFZlY3RvcjxQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRp
b25zOjpQYXJhbWV0ZXJzPiBwYXJhbXMgeyB7IFB1YmxpY0tleUNyZWRlbnRpYWxUeXBlOjpQdWJs
aWNLZXksIDcgfSwgeyBQdWJsaWNLZXlDcmVkZW50aWFsVHlwZTo6UHVibGljS2V5LCAyNTcgfSB9
OwotICAgIFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnM6OkF1dGhlbnRpY2F0b3JT
ZWxlY3Rpb25Dcml0ZXJpYSBzZWxlY3Rpb24geyBBdXRoZW50aWNhdG9yQXR0YWNobWVudDo6UGxh
dGZvcm0sIGZhbHNlLCBVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQ6OkRpc2NvdXJhZ2VkIH07
CisgICAgUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9uczo6QXV0aGVudGljYXRvclNl
bGVjdGlvbkNyaXRlcmlhIHNlbGVjdGlvbiB7IEF1dGhlbnRpY2F0b3JBdHRhY2htZW50OjpQbGF0
Zm9ybSwgc3RkOjpudWxsb3B0LCBmYWxzZSwgVXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50OjpE
aXNjb3VyYWdlZCB9OwogCiAgICAgUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucyBv
cHRpb25zIHsgcnAsIHVzZXIsIHsgfSwgcGFyYW1zLCBzdGQ6Om51bGxvcHQsIHsgfSwgc2VsZWN0
aW9uLCBBdHRlc3RhdGlvbkNvbnZleWFuY2VQcmVmZXJlbmNlOjpOb25lLCBzdGQ6Om51bGxvcHQg
fTsKICAgICBWZWN0b3I8dWludDhfdD4gaGFzaDsKICAgICBoYXNoLmFwcGVuZChUZXN0RGF0YTo6
a0NsaWVudERhdGFIYXNoLCBzaXplb2YoVGVzdERhdGE6OmtDbGllbnREYXRhSGFzaCkpOwotICAg
IGF1dG8gc2VyaWFsaXplZERhdGEgPSBlbmNvZGVNYWtlQ3JlZGVuaXRhbFJlcXVlc3RBc0NCT1Io
aGFzaCwgb3B0aW9ucywgQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnM6OlVzZXJWZXJpZmlj
YXRpb25BdmFpbGFiaWxpdHk6OmtTdXBwb3J0ZWRBbmRDb25maWd1cmVkKTsKKyAgICBhdXRvIHNl
cmlhbGl6ZWREYXRhID0gZW5jb2RlTWFrZUNyZWRlbml0YWxSZXF1ZXN0QXNDQk9SKGhhc2gsIG9w
dGlvbnMsIEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zOjpVc2VyVmVyaWZpY2F0aW9uQXZh
aWxhYmlsaXR5OjprU3VwcG9ydGVkQW5kQ29uZmlndXJlZCwgQXV0aGVudGljYXRvclN1cHBvcnRl
ZE9wdGlvbnM6OlJlc2lkZW50S2V5QXZhaWxhYmlsaXR5OjprU3VwcG9ydGVkKTsKICAgICBFWFBF
Q1RfRVEoc2VyaWFsaXplZERhdGEuc2l6ZSgpLCBzaXplb2YoVGVzdERhdGE6OmtDdGFwTWFrZUNy
ZWRlbnRpYWxSZXF1ZXN0U2hvcnQpKTsKICAgICBFWFBFQ1RfRVEobWVtY21wKHNlcmlhbGl6ZWRE
YXRhLmRhdGEoKSwgVGVzdERhdGE6OmtDdGFwTWFrZUNyZWRlbnRpYWxSZXF1ZXN0U2hvcnQsIHNl
cmlhbGl6ZWREYXRhLnNpemUoKSksIDApOwogfQpAQCAtMTA2LDEyICsxMDYsMTIgQEAgVEVTVChD
VEFQUmVxdWVzdFRlc3QsIFRlc3RDb25zdHJ1Y3RNYWtlQ3JlZGVudGlhbFJlcXVlc3RQYXJhbVVW
UmVxdWlyZWRCdXROb3RTdXAKICAgICB1c2VyLmRpc3BsYXlOYW1lID0gIkpvaG4gUC4gU21pdGgi
OwogCiAgICAgVmVjdG9yPFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnM6OlBhcmFt
ZXRlcnM+IHBhcmFtcyB7IHsgUHVibGljS2V5Q3JlZGVudGlhbFR5cGU6OlB1YmxpY0tleSwgNyB9
LCB7IFB1YmxpY0tleUNyZWRlbnRpYWxUeXBlOjpQdWJsaWNLZXksIDI1NyB9IH07Ci0gICAgUHVi
bGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9uczo6QXV0aGVudGljYXRvclNlbGVjdGlvbkNy
aXRlcmlhIHNlbGVjdGlvbiB7IEF1dGhlbnRpY2F0b3JBdHRhY2htZW50OjpQbGF0Zm9ybSwgZmFs
c2UsIFVzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudDo6UmVxdWlyZWQgfTsKKyAgICBQdWJsaWNL
ZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zOjpBdXRoZW50aWNhdG9yU2VsZWN0aW9uQ3JpdGVy
aWEgc2VsZWN0aW9uIHsgQXV0aGVudGljYXRvckF0dGFjaG1lbnQ6OlBsYXRmb3JtLCBzdGQ6Om51
bGxvcHQsIGZhbHNlLCBVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQ6OlJlcXVpcmVkIH07CiAK
ICAgICBQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zIG9wdGlvbnMgeyBycCwgdXNl
ciwgeyB9LCBwYXJhbXMsIHN0ZDo6bnVsbG9wdCwgeyB9LCBzZWxlY3Rpb24sIEF0dGVzdGF0aW9u
Q29udmV5YW5jZVByZWZlcmVuY2U6Ok5vbmUsIHN0ZDo6bnVsbG9wdCB9OwogICAgIFZlY3Rvcjx1
aW50OF90PiBoYXNoOwogICAgIGhhc2guYXBwZW5kKFRlc3REYXRhOjprQ2xpZW50RGF0YUhhc2gs
IHNpemVvZihUZXN0RGF0YTo6a0NsaWVudERhdGFIYXNoKSk7Ci0gICAgYXV0byBzZXJpYWxpemVk
RGF0YSA9IGVuY29kZU1ha2VDcmVkZW5pdGFsUmVxdWVzdEFzQ0JPUihoYXNoLCBvcHRpb25zLCBB
dXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9uczo6VXNlclZlcmlmaWNhdGlvbkF2YWlsYWJpbGl0
eTo6a05vdFN1cHBvcnRlZCk7CisgICAgYXV0byBzZXJpYWxpemVkRGF0YSA9IGVuY29kZU1ha2VD
cmVkZW5pdGFsUmVxdWVzdEFzQ0JPUihoYXNoLCBvcHRpb25zLCBBdXRoZW50aWNhdG9yU3VwcG9y
dGVkT3B0aW9uczo6VXNlclZlcmlmaWNhdGlvbkF2YWlsYWJpbGl0eTo6a05vdFN1cHBvcnRlZCwg
QXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnM6OlJlc2lkZW50S2V5QXZhaWxhYmlsaXR5Ojpr
U3VwcG9ydGVkKTsKICAgICBFWFBFQ1RfRVEoc2VyaWFsaXplZERhdGEuc2l6ZSgpLCBzaXplb2Yo
VGVzdERhdGE6OmtDdGFwTWFrZUNyZWRlbnRpYWxSZXF1ZXN0U2hvcnQpKTsKICAgICBFWFBFQ1Rf
RVEobWVtY21wKHNlcmlhbGl6ZWREYXRhLmRhdGEoKSwgVGVzdERhdGE6OmtDdGFwTWFrZUNyZWRl
bnRpYWxSZXF1ZXN0U2hvcnQsIHNlcmlhbGl6ZWREYXRhLnNpemUoKSksIDApOwogfQpAQCAtMTI5
LDcgKzEyOSw3IEBAIFRFU1QoQ1RBUFJlcXVlc3RUZXN0LCBUZXN0Q29uc3RydWN0TWFrZUNyZWRl
bnRpYWxSZXF1ZXN0UGFyYW1XaXRoUGluKQogICAgIHVzZXIuZGlzcGxheU5hbWUgPSAiSm9obiBQ
LiBTbWl0aCI7CiAKICAgICBWZWN0b3I8UHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9u
czo6UGFyYW1ldGVycz4gcGFyYW1zIHsgeyBQdWJsaWNLZXlDcmVkZW50aWFsVHlwZTo6UHVibGlj
S2V5LCA3IH0sIHsgUHVibGljS2V5Q3JlZGVudGlhbFR5cGU6OlB1YmxpY0tleSwgMjU3IH0gfTsK
LSAgICBQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zOjpBdXRoZW50aWNhdG9yU2Vs
ZWN0aW9uQ3JpdGVyaWEgc2VsZWN0aW9uIHsgQXV0aGVudGljYXRvckF0dGFjaG1lbnQ6OlBsYXRm
b3JtLCB0cnVlLCBVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQ6OlByZWZlcnJlZCB9OworICAg
IFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnM6OkF1dGhlbnRpY2F0b3JTZWxlY3Rp
b25Dcml0ZXJpYSBzZWxlY3Rpb24geyBBdXRoZW50aWNhdG9yQXR0YWNobWVudDo6UGxhdGZvcm0s
IHN0ZDo6bnVsbG9wdCwgdHJ1ZSwgVXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50OjpQcmVmZXJy
ZWQgfTsKIAogICAgIFBpblBhcmFtZXRlcnMgcGluOwogICAgIHBpbi5wcm90b2NvbCA9IHBpbjo6
a1Byb3RvY29sVmVyc2lvbjsKQEAgLTEzOCwxMSArMTM4LDg0IEBAIFRFU1QoQ1RBUFJlcXVlc3RU
ZXN0LCBUZXN0Q29uc3RydWN0TWFrZUNyZWRlbnRpYWxSZXF1ZXN0UGFyYW1XaXRoUGluKQogICAg
IFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMgb3B0aW9ucyB7IHJwLCB1c2VyLCB7
IH0sIHBhcmFtcywgc3RkOjpudWxsb3B0LCB7IH0sIHNlbGVjdGlvbiwgQXR0ZXN0YXRpb25Db252
ZXlhbmNlUHJlZmVyZW5jZTo6Tm9uZSwgc3RkOjpudWxsb3B0IH07CiAgICAgVmVjdG9yPHVpbnQ4
X3Q+IGhhc2g7CiAgICAgaGFzaC5hcHBlbmQoVGVzdERhdGE6OmtDbGllbnREYXRhSGFzaCwgc2l6
ZW9mKFRlc3REYXRhOjprQ2xpZW50RGF0YUhhc2gpKTsKLSAgICBhdXRvIHNlcmlhbGl6ZWREYXRh
ID0gZW5jb2RlTWFrZUNyZWRlbml0YWxSZXF1ZXN0QXNDQk9SKGhhc2gsIG9wdGlvbnMsIEF1dGhl
bnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zOjpVc2VyVmVyaWZpY2F0aW9uQXZhaWxhYmlsaXR5Ojpr
U3VwcG9ydGVkQW5kQ29uZmlndXJlZCwgcGluKTsKKyAgICBhdXRvIHNlcmlhbGl6ZWREYXRhID0g
ZW5jb2RlTWFrZUNyZWRlbml0YWxSZXF1ZXN0QXNDQk9SKGhhc2gsIG9wdGlvbnMsIEF1dGhlbnRp
Y2F0b3JTdXBwb3J0ZWRPcHRpb25zOjpVc2VyVmVyaWZpY2F0aW9uQXZhaWxhYmlsaXR5OjprU3Vw
cG9ydGVkQW5kQ29uZmlndXJlZCwgQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnM6OlJlc2lk
ZW50S2V5QXZhaWxhYmlsaXR5OjprU3VwcG9ydGVkLCBwaW4pOwogICAgIEVYUEVDVF9FUShzZXJp
YWxpemVkRGF0YS5zaXplKCksIHNpemVvZihUZXN0RGF0YTo6a0N0YXBNYWtlQ3JlZGVudGlhbFJl
cXVlc3RXaXRoUGluKSk7CiAgICAgRVhQRUNUX0VRKG1lbWNtcChzZXJpYWxpemVkRGF0YS5kYXRh
KCksIFRlc3REYXRhOjprQ3RhcE1ha2VDcmVkZW50aWFsUmVxdWVzdFdpdGhQaW4sIHNlcmlhbGl6
ZWREYXRhLnNpemUoKSksIDApOwogfQogCitURVNUKENUQVBSZXF1ZXN0VGVzdCwgVGVzdENvbnN0
cnVjdE1ha2VDcmVkZW50aWFsUmVxdWVzdFJLUHJlZmVycmVkKQoreworICAgIFB1YmxpY0tleUNy
ZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnM6OlJwRW50aXR5IHJwOworICAgIHJwLm5hbWUgPSAiQWNt
ZSI7CisgICAgcnAuaWQgPSAiYWNtZS5jb20iOworCisgICAgUHVibGljS2V5Q3JlZGVudGlhbENy
ZWF0aW9uT3B0aW9uczo6VXNlckVudGl0eSB1c2VyOworICAgIHVzZXIubmFtZSA9ICJqb2hucHNt
aXRoQGV4YW1wbGUuY29tIjsKKyAgICB1c2VyLmljb24gPSAiaHR0cHM6Ly9waWNzLmFjbWUuY29t
LzAwL3AvYUJqampwcVBiLnBuZyI7CisgICAgdXNlci5pZCA9IFdlYkNvcmU6OnRvQnVmZmVyU291
cmNlKFRlc3REYXRhOjprVXNlcklkLCBzaXplb2YoVGVzdERhdGE6OmtVc2VySWQpKTsKKyAgICB1
c2VyLmRpc3BsYXlOYW1lID0gIkpvaG4gUC4gU21pdGgiOworCisgICAgVmVjdG9yPFB1YmxpY0tl
eUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnM6OlBhcmFtZXRlcnM+IHBhcmFtcyB7IHsgUHVibGlj
S2V5Q3JlZGVudGlhbFR5cGU6OlB1YmxpY0tleSwgNyB9LCB7IFB1YmxpY0tleUNyZWRlbnRpYWxU
eXBlOjpQdWJsaWNLZXksIDI1NyB9IH07CisgICAgUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9u
T3B0aW9uczo6QXV0aGVudGljYXRvclNlbGVjdGlvbkNyaXRlcmlhIHNlbGVjdGlvbiB7IEF1dGhl
bnRpY2F0b3JBdHRhY2htZW50OjpQbGF0Zm9ybSwgUmVzaWRlbnRLZXlSZXF1aXJlbWVudDo6UHJl
ZmVycmVkLCB0cnVlLCBVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQ6OlByZWZlcnJlZCB9Owor
CisgICAgUGluUGFyYW1ldGVycyBwaW47CisgICAgcGluLnByb3RvY29sID0gcGluOjprUHJvdG9j
b2xWZXJzaW9uOworICAgIHBpbi5hdXRoLmFwcGVuZChUZXN0RGF0YTo6a0N0YXAyUGluQXV0aCwg
c2l6ZW9mKFRlc3REYXRhOjprQ3RhcDJQaW5BdXRoKSk7CisKKyAgICBQdWJsaWNLZXlDcmVkZW50
aWFsQ3JlYXRpb25PcHRpb25zIG9wdGlvbnMgeyBycCwgdXNlciwgeyB9LCBwYXJhbXMsIHN0ZDo6
bnVsbG9wdCwgeyB9LCBzZWxlY3Rpb24sIEF0dGVzdGF0aW9uQ29udmV5YW5jZVByZWZlcmVuY2U6
Ok5vbmUsIHN0ZDo6bnVsbG9wdCB9OworICAgIFZlY3Rvcjx1aW50OF90PiBoYXNoOworICAgIGhh
c2guYXBwZW5kKFRlc3REYXRhOjprQ2xpZW50RGF0YUhhc2gsIHNpemVvZihUZXN0RGF0YTo6a0Ns
aWVudERhdGFIYXNoKSk7CisgICAgYXV0byBzZXJpYWxpemVkRGF0YSA9IGVuY29kZU1ha2VDcmVk
ZW5pdGFsUmVxdWVzdEFzQ0JPUihoYXNoLCBvcHRpb25zLCBBdXRoZW50aWNhdG9yU3VwcG9ydGVk
T3B0aW9uczo6VXNlclZlcmlmaWNhdGlvbkF2YWlsYWJpbGl0eTo6a1N1cHBvcnRlZEFuZENvbmZp
Z3VyZWQsIEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zOjpSZXNpZGVudEtleUF2YWlsYWJp
bGl0eTo6a1N1cHBvcnRlZCwgcGluKTsKKyAgICBFWFBFQ1RfRVEoc2VyaWFsaXplZERhdGEuc2l6
ZSgpLCBzaXplb2YoVGVzdERhdGE6OmtDdGFwTWFrZUNyZWRlbnRpYWxSZXF1ZXN0V2l0aFBpbikp
OworICAgIEVYUEVDVF9FUShtZW1jbXAoc2VyaWFsaXplZERhdGEuZGF0YSgpLCBUZXN0RGF0YTo6
a0N0YXBNYWtlQ3JlZGVudGlhbFJlcXVlc3RXaXRoUGluLCBzZXJpYWxpemVkRGF0YS5zaXplKCkp
LCAwKTsKK30KKworVEVTVChDVEFQUmVxdWVzdFRlc3QsIFRlc3RDb25zdHJ1Y3RNYWtlQ3JlZGVu
dGlhbFJlcXVlc3RSS1ByZWZlcnJlZE5vdFN1cHBvcnRlZCkKK3sKKyAgICBQdWJsaWNLZXlDcmVk
ZW50aWFsQ3JlYXRpb25PcHRpb25zOjpScEVudGl0eSBycDsKKyAgICBycC5uYW1lID0gIkFjbWUi
OworICAgIHJwLmlkID0gImFjbWUuY29tIjsKKworICAgIFB1YmxpY0tleUNyZWRlbnRpYWxDcmVh
dGlvbk9wdGlvbnM6OlVzZXJFbnRpdHkgdXNlcjsKKyAgICB1c2VyLm5hbWUgPSAiam9obnBzbWl0
aEBleGFtcGxlLmNvbSI7CisgICAgdXNlci5pY29uID0gImh0dHBzOi8vcGljcy5hY21lLmNvbS8w
MC9wL2FCampqcHFQYi5wbmciOworICAgIHVzZXIuaWQgPSBXZWJDb3JlOjp0b0J1ZmZlclNvdXJj
ZShUZXN0RGF0YTo6a1VzZXJJZCwgc2l6ZW9mKFRlc3REYXRhOjprVXNlcklkKSk7CisgICAgdXNl
ci5kaXNwbGF5TmFtZSA9ICJKb2huIFAuIFNtaXRoIjsKKworICAgIFZlY3RvcjxQdWJsaWNLZXlD
cmVkZW50aWFsQ3JlYXRpb25PcHRpb25zOjpQYXJhbWV0ZXJzPiBwYXJhbXMgeyB7IFB1YmxpY0tl
eUNyZWRlbnRpYWxUeXBlOjpQdWJsaWNLZXksIDcgfSwgeyBQdWJsaWNLZXlDcmVkZW50aWFsVHlw
ZTo6UHVibGljS2V5LCAyNTcgfSB9OworICAgIFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9w
dGlvbnM6OkF1dGhlbnRpY2F0b3JTZWxlY3Rpb25Dcml0ZXJpYSBzZWxlY3Rpb24geyBBdXRoZW50
aWNhdG9yQXR0YWNobWVudDo6UGxhdGZvcm0sIFJlc2lkZW50S2V5UmVxdWlyZW1lbnQ6OlByZWZl
cnJlZCwgdHJ1ZSwgVXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50OjpSZXF1aXJlZCB9OworCisg
ICAgUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucyBvcHRpb25zIHsgcnAsIHVzZXIs
IHsgfSwgcGFyYW1zLCBzdGQ6Om51bGxvcHQsIHsgfSwgc2VsZWN0aW9uLCBBdHRlc3RhdGlvbkNv
bnZleWFuY2VQcmVmZXJlbmNlOjpOb25lLCBzdGQ6Om51bGxvcHQgfTsKKyAgICBWZWN0b3I8dWlu
dDhfdD4gaGFzaDsKKyAgICBoYXNoLmFwcGVuZChUZXN0RGF0YTo6a0NsaWVudERhdGFIYXNoLCBz
aXplb2YoVGVzdERhdGE6OmtDbGllbnREYXRhSGFzaCkpOworICAgIGF1dG8gc2VyaWFsaXplZERh
dGEgPSBlbmNvZGVNYWtlQ3JlZGVuaXRhbFJlcXVlc3RBc0NCT1IoaGFzaCwgb3B0aW9ucywgQXV0
aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnM6OlVzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHk6
OmtOb3RTdXBwb3J0ZWQsIEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zOjpSZXNpZGVudEtl
eUF2YWlsYWJpbGl0eTo6a05vdFN1cHBvcnRlZCk7CisgICAgRVhQRUNUX0VRKHNlcmlhbGl6ZWRE
YXRhLnNpemUoKSwgc2l6ZW9mKFRlc3REYXRhOjprQ3RhcE1ha2VDcmVkZW50aWFsUmVxdWVzdFNo
b3J0KSk7CisgICAgRVhQRUNUX0VRKG1lbWNtcChzZXJpYWxpemVkRGF0YS5kYXRhKCksIFRlc3RE
YXRhOjprQ3RhcE1ha2VDcmVkZW50aWFsUmVxdWVzdFNob3J0LCBzZXJpYWxpemVkRGF0YS5zaXpl
KCkpLCAwKTsKK30KKworVEVTVChDVEFQUmVxdWVzdFRlc3QsIFRlc3RDb25zdHJ1Y3RNYWtlQ3Jl
ZGVudGlhbFJlcXVlc3RSS0Rpc2NvdXJhZ2VkKQoreworICAgIFB1YmxpY0tleUNyZWRlbnRpYWxD
cmVhdGlvbk9wdGlvbnM6OlJwRW50aXR5IHJwOworICAgIHJwLm5hbWUgPSAiQWNtZSI7CisgICAg
cnAuaWQgPSAiYWNtZS5jb20iOworCisgICAgUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0
aW9uczo6VXNlckVudGl0eSB1c2VyOworICAgIHVzZXIubmFtZSA9ICJqb2hucHNtaXRoQGV4YW1w
bGUuY29tIjsKKyAgICB1c2VyLmljb24gPSAiaHR0cHM6Ly9waWNzLmFjbWUuY29tLzAwL3AvYUJq
ampwcVBiLnBuZyI7CisgICAgdXNlci5pZCA9IFdlYkNvcmU6OnRvQnVmZmVyU291cmNlKFRlc3RE
YXRhOjprVXNlcklkLCBzaXplb2YoVGVzdERhdGE6OmtVc2VySWQpKTsKKyAgICB1c2VyLmRpc3Bs
YXlOYW1lID0gIkpvaG4gUC4gU21pdGgiOworCisgICAgVmVjdG9yPFB1YmxpY0tleUNyZWRlbnRp
YWxDcmVhdGlvbk9wdGlvbnM6OlBhcmFtZXRlcnM+IHBhcmFtcyB7IHsgUHVibGljS2V5Q3JlZGVu
dGlhbFR5cGU6OlB1YmxpY0tleSwgNyB9LCB7IFB1YmxpY0tleUNyZWRlbnRpYWxUeXBlOjpQdWJs
aWNLZXksIDI1NyB9IH07CisgICAgUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9uczo6
QXV0aGVudGljYXRvclNlbGVjdGlvbkNyaXRlcmlhIHNlbGVjdGlvbiB7IEF1dGhlbnRpY2F0b3JB
dHRhY2htZW50OjpQbGF0Zm9ybSwgUmVzaWRlbnRLZXlSZXF1aXJlbWVudDo6RGlzY291cmFnZWQs
IHRydWUsIFVzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudDo6UmVxdWlyZWQgfTsKKworICAgIFB1
YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMgb3B0aW9ucyB7IHJwLCB1c2VyLCB7IH0s
IHBhcmFtcywgc3RkOjpudWxsb3B0LCB7IH0sIHNlbGVjdGlvbiwgQXR0ZXN0YXRpb25Db252ZXlh
bmNlUHJlZmVyZW5jZTo6Tm9uZSwgc3RkOjpudWxsb3B0IH07CisgICAgVmVjdG9yPHVpbnQ4X3Q+
IGhhc2g7CisgICAgaGFzaC5hcHBlbmQoVGVzdERhdGE6OmtDbGllbnREYXRhSGFzaCwgc2l6ZW9m
KFRlc3REYXRhOjprQ2xpZW50RGF0YUhhc2gpKTsKKyAgICBhdXRvIHNlcmlhbGl6ZWREYXRhID0g
ZW5jb2RlTWFrZUNyZWRlbml0YWxSZXF1ZXN0QXNDQk9SKGhhc2gsIG9wdGlvbnMsIEF1dGhlbnRp
Y2F0b3JTdXBwb3J0ZWRPcHRpb25zOjpVc2VyVmVyaWZpY2F0aW9uQXZhaWxhYmlsaXR5OjprTm90
U3VwcG9ydGVkLCBBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9uczo6UmVzaWRlbnRLZXlBdmFp
bGFiaWxpdHk6OmtTdXBwb3J0ZWQpOworICAgIEVYUEVDVF9FUShzZXJpYWxpemVkRGF0YS5zaXpl
KCksIHNpemVvZihUZXN0RGF0YTo6a0N0YXBNYWtlQ3JlZGVudGlhbFJlcXVlc3RTaG9ydCkpOwor
ICAgIEVYUEVDVF9FUShtZW1jbXAoc2VyaWFsaXplZERhdGEuZGF0YSgpLCBUZXN0RGF0YTo6a0N0
YXBNYWtlQ3JlZGVudGlhbFJlcXVlc3RTaG9ydCwgc2VyaWFsaXplZERhdGEuc2l6ZSgpKSwgMCk7
Cit9CisKIFRFU1QoQ1RBUFJlcXVlc3RUZXN0LCBUZXN0Q29uc3RydWN0R2V0QXNzZXJ0aW9uUmVx
dWVzdCkKIHsKICAgICBQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMgb3B0aW9uczsK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9DdGFwUmVzcG9u
c2VUZXN0LmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9DdGFwUmVzcG9u
c2VUZXN0LmNwcAppbmRleCA1NTIxYzViZWM4NDQ0ZDY2ZWRmMzdjNzI5N2IyZWRjZmU2MTZiOWY1
Li4xN2M1MGIxYzEzMzNkYWM5Yzk2YTlkNDQwMjA4OThjZDhmNjE1NDE2IDEwMDY0NAotLS0gYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ3RhcFJlc3BvbnNlVGVzdC5jcHAKKysr
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0N0YXBSZXNwb25zZVRlc3QuY3Bw
CkBAIC01ODksNyArNTg5LDcgQEAgVEVTVChDVEFQUmVzcG9uc2VUZXN0LCBUZXN0UmVhZEdldElu
Zm9SZXNwb25zZSkKICAgICBFWFBFQ1RfTkUoZ2V0SW5mb1Jlc3BvbnNlLT52ZXJzaW9ucygpLmZp
bmQoUHJvdG9jb2xWZXJzaW9uOjprQ3RhcCksIGdldEluZm9SZXNwb25zZS0+dmVyc2lvbnMoKS5l
bmQoKSk7CiAgICAgRVhQRUNUX05FKGdldEluZm9SZXNwb25zZS0+dmVyc2lvbnMoKS5maW5kKFBy
b3RvY29sVmVyc2lvbjo6a1UyZiksIGdldEluZm9SZXNwb25zZS0+dmVyc2lvbnMoKS5lbmQoKSk7
CiAgICAgRVhQRUNUX1RSVUUoZ2V0SW5mb1Jlc3BvbnNlLT5vcHRpb25zKCkuaXNQbGF0Zm9ybURl
dmljZSgpKTsKLSAgICBFWFBFQ1RfVFJVRShnZXRJbmZvUmVzcG9uc2UtPm9wdGlvbnMoKS5zdXBw
b3J0c1Jlc2lkZW50S2V5KCkpOworICAgIEVYUEVDVF9FUShBdXRoZW50aWNhdG9yU3VwcG9ydGVk
T3B0aW9uczo6UmVzaWRlbnRLZXlBdmFpbGFiaWxpdHk6OmtTdXBwb3J0ZWQsIGdldEluZm9SZXNw
b25zZS0+b3B0aW9ucygpLnJlc2lkZW50S2V5QXZhaWxhYmlsaXR5KCkpOwogICAgIEVYUEVDVF9U
UlVFKGdldEluZm9SZXNwb25zZS0+b3B0aW9ucygpLnVzZXJQcmVzZW5jZVJlcXVpcmVkKCkpOwog
ICAgIEVYUEVDVF9FUShBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9uczo6VXNlclZlcmlmaWNh
dGlvbkF2YWlsYWJpbGl0eTo6a1N1cHBvcnRlZEFuZENvbmZpZ3VyZWQsIGdldEluZm9SZXNwb25z
ZS0+b3B0aW9ucygpLnVzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHkoKSk7CiAgICAgRVhQRUNU
X0VRKEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zOjpDbGllbnRQaW5BdmFpbGFiaWxpdHk6
OmtTdXBwb3J0ZWRCdXRQaW5Ob3RTZXQsIGdldEluZm9SZXNwb25zZS0+b3B0aW9ucygpLmNsaWVu
dFBpbkF2YWlsYWJpbGl0eSgpKTsKQEAgLTYwNCw3ICs2MDQsNyBAQCBURVNUKENUQVBSZXNwb25z
ZVRlc3QsIFRlc3RSZWFkR2V0SW5mb1Jlc3BvbnNlMikKICAgICBFWFBFQ1RfTkUoZ2V0SW5mb1Jl
c3BvbnNlLT52ZXJzaW9ucygpLmZpbmQoUHJvdG9jb2xWZXJzaW9uOjprQ3RhcCksIGdldEluZm9S
ZXNwb25zZS0+dmVyc2lvbnMoKS5lbmQoKSk7CiAgICAgRVhQRUNUX05FKGdldEluZm9SZXNwb25z
ZS0+dmVyc2lvbnMoKS5maW5kKFByb3RvY29sVmVyc2lvbjo6a1UyZiksIGdldEluZm9SZXNwb25z
ZS0+dmVyc2lvbnMoKS5lbmQoKSk7CiAgICAgRVhQRUNUX1RSVUUoZ2V0SW5mb1Jlc3BvbnNlLT5v
cHRpb25zKCkuaXNQbGF0Zm9ybURldmljZSgpKTsKLSAgICBFWFBFQ1RfVFJVRShnZXRJbmZvUmVz
cG9uc2UtPm9wdGlvbnMoKS5zdXBwb3J0c1Jlc2lkZW50S2V5KCkpOworICAgIEVYUEVDVF9FUShB
dXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9uczo6UmVzaWRlbnRLZXlBdmFpbGFiaWxpdHk6OmtT
dXBwb3J0ZWQsIGdldEluZm9SZXNwb25zZS0+b3B0aW9ucygpLnJlc2lkZW50S2V5QXZhaWxhYmls
aXR5KCkpOwogICAgIEVYUEVDVF9UUlVFKGdldEluZm9SZXNwb25zZS0+b3B0aW9ucygpLnVzZXJQ
cmVzZW5jZVJlcXVpcmVkKCkpOwogICAgIEVYUEVDVF9FUShBdXRoZW50aWNhdG9yU3VwcG9ydGVk
T3B0aW9uczo6VXNlclZlcmlmaWNhdGlvbkF2YWlsYWJpbGl0eTo6a1N1cHBvcnRlZEFuZENvbmZp
Z3VyZWQsIGdldEluZm9SZXNwb25zZS0+b3B0aW9ucygpLnVzZXJWZXJpZmljYXRpb25BdmFpbGFi
aWxpdHkoKSk7CiAgICAgRVhQRUNUX0VRKEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zOjpD
bGllbnRQaW5BdmFpbGFiaWxpdHk6OmtTdXBwb3J0ZWRCdXRQaW5Ob3RTZXQsIGdldEluZm9SZXNw
b25zZS0+b3B0aW9ucygpLmNsaWVudFBpbkF2YWlsYWJpbGl0eSgpKTsKQEAgLTYyMiw3ICs2MjIs
NyBAQCBURVNUKENUQVBSZXNwb25zZVRlc3QsIFRlc3RTZXJpYWxpemVHZXRJbmZvUmVzcG9uc2Up
CiAgICAgQXV0aGVudGljYXRvckdldEluZm9SZXNwb25zZSByZXNwb25zZSh7IFByb3RvY29sVmVy
c2lvbjo6a0N0YXAsIFByb3RvY29sVmVyc2lvbjo6a1UyZiB9LCBjb252ZXJ0Qnl0ZXNUb1ZlY3Rv
cihrVGVzdERldmljZUFhZ3VpZCwgc2l6ZW9mKGtUZXN0RGV2aWNlQWFndWlkKSkpOwogICAgIHJl
c3BvbnNlLnNldEV4dGVuc2lvbnMoeyAidXZtIiwgImhtYWMtc2VjcmV0IiB9KTsKICAgICBBdXRo
ZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9ucyBvcHRpb25zOwotICAgIG9wdGlvbnMuc2V0U3VwcG9y
dHNSZXNpZGVudEtleSh0cnVlKTsKKyAgICBvcHRpb25zLnNldFJlc2lkZW50S2V5QXZhaWxhYmls
aXR5KEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zOjpSZXNpZGVudEtleUF2YWlsYWJpbGl0
eTo6a1N1cHBvcnRlZCk7CiAgICAgb3B0aW9ucy5zZXRJc1BsYXRmb3JtRGV2aWNlKHRydWUpOwog
ICAgIG9wdGlvbnMuc2V0Q2xpZW50UGluQXZhaWxhYmlsaXR5KEF1dGhlbnRpY2F0b3JTdXBwb3J0
ZWRPcHRpb25zOjpDbGllbnRQaW5BdmFpbGFiaWxpdHk6OmtTdXBwb3J0ZWRCdXRQaW5Ob3RTZXQp
OwogICAgIG9wdGlvbnMuc2V0VXNlclZlcmlmaWNhdGlvbkF2YWlsYWJpbGl0eShBdXRoZW50aWNh
dG9yU3VwcG9ydGVkT3B0aW9uczo6VXNlclZlcmlmaWNhdGlvbkF2YWlsYWJpbGl0eTo6a1N1cHBv
cnRlZEFuZENvbmZpZ3VyZWQpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGRhOWRhZDhlYWQ1MTQwYTIwMGUxYjc1MjhiNjM3
MmYzZjY2OThlZTcuLjg1M2U4NzJhM2VjZTE0MGJmNmQ0YjFlYzk1MzNkZTM3ZmVhOTBiOGIgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxOCBAQAorMjAyMi0wMy0xMCAgSiBQYXNjb2UgIDxqX3Bhc2NvZUBhcHBs
ZS5jb20+CisKKyAgICAgICAgW1dlYkF1dGhuXSBTdXBwb3J0IGF1dGhlbnRpY2F0b3JTZWxlY3Rp
b24ucmVzaWRlbnRLZXkgUmVzaWRlbnRLZXlSZXF1aXJlbWVudAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM3NTY3CisgICAgICAgIHJkYXI6Ly84OTc4
ODM3OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFk
ZCBsYXlvdXQgdGVzdHMgdXNpbmcgcmVzaWRlbnRLZXkgZmllbGQuCisKKyAgICAgICAgKiBodHRw
L3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtY3JlYXRlLWZhaWx1cmUtaGlkLmh0
dHBzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBodHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5
LWNyZWRlbnRpYWwtY3JlYXRlLWZhaWx1cmUtaGlkLmh0dHBzLmh0bWw6CisgICAgICAgICogaHR0
cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWNyZWF0ZS1zdWNjZXNzLWhpZC5o
dHRwcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtl
eS1jcmVkZW50aWFsLWNyZWF0ZS1zdWNjZXNzLWhpZC5odHRwcy5odG1sOgorCiAyMDIyLTAzLTA5
ICBNYXR0IFdvb2Ryb3cgIDxtYXR0d29vZHJvd0BhcHBsZS5jb20+CiAKICAgICAgICAgRW1wdHkg
ZmxvYXQgcmVjdHMgc2hvdWxkIHJlbWFpbiBlbXB0eSBhZnRlciBpbnRlZ3JhbGx5IGVuY2xvc2lu
ZyB0aGVtLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcHVibGlj
LWtleS1jcmVkZW50aWFsLWNyZWF0ZS1mYWlsdXJlLWhpZC5odHRwcy1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtY3JlYXRl
LWZhaWx1cmUtaGlkLmh0dHBzLWV4cGVjdGVkLnR4dAppbmRleCBlNjc1YzA1ZGVhZDQyNjU1N2Rm
MTU5ZDRjN2Y3ZTJhNDkxNzM5YjZhLi41M2I1YjJiOThiYjQ4Yjc3YTBiMTBlZThlYTY5NzhhNjVj
MjFjODJiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMt
a2V5LWNyZWRlbnRpYWwtY3JlYXRlLWZhaWx1cmUtaGlkLmh0dHBzLWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtY3Jl
YXRlLWZhaWx1cmUtaGlkLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMywxMCArMywxMiBAQCBDT05T
T0xFIE1FU1NBR0U6IFVzZXIgZ2VzdHVyZSBpcyBub3QgZGV0ZWN0ZWQuIFRvIHVzZSB0aGUgV2Vi
QXV0aG4gQVBJLCBjYWxsICduYQogQ09OU09MRSBNRVNTQUdFOiBVc2VyIGdlc3R1cmUgaXMgbm90
IGRldGVjdGVkLiBUbyB1c2UgdGhlIFdlYkF1dGhuIEFQSSwgY2FsbCAnbmF2aWdhdG9yLmNyZWRl
bnRpYWxzLmNyZWF0ZScgb3IgJ25hdmlnYXRvci5jcmVkZW50aWFscy5nZXQnIHdpdGhpbiB1c2Vy
IGFjdGl2YXRlZCBldmVudHMuCiBDT05TT0xFIE1FU1NBR0U6IFVzZXIgZ2VzdHVyZSBpcyBub3Qg
ZGV0ZWN0ZWQuIFRvIHVzZSB0aGUgV2ViQXV0aG4gQVBJLCBjYWxsICduYXZpZ2F0b3IuY3JlZGVu
dGlhbHMuY3JlYXRlJyBvciAnbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmdldCcgd2l0aGluIHVzZXIg
YWN0aXZhdGVkIGV2ZW50cy4KIENPTlNPTEUgTUVTU0FHRTogVXNlciBnZXN0dXJlIGlzIG5vdCBk
ZXRlY3RlZC4gVG8gdXNlIHRoZSBXZWJBdXRobiBBUEksIGNhbGwgJ25hdmlnYXRvci5jcmVkZW50
aWFscy5jcmVhdGUnIG9yICduYXZpZ2F0b3IuY3JlZGVudGlhbHMuZ2V0JyB3aXRoaW4gdXNlciBh
Y3RpdmF0ZWQgZXZlbnRzLgorQ09OU09MRSBNRVNTQUdFOiBVc2VyIGdlc3R1cmUgaXMgbm90IGRl
dGVjdGVkLiBUbyB1c2UgdGhlIFdlYkF1dGhuIEFQSSwgY2FsbCAnbmF2aWdhdG9yLmNyZWRlbnRp
YWxzLmNyZWF0ZScgb3IgJ25hdmlnYXRvci5jcmVkZW50aWFscy5nZXQnIHdpdGhpbiB1c2VyIGFj
dGl2YXRlZCBldmVudHMuCiAKIFBBU1MgUHVibGljS2V5Q3JlZGVudGlhbCdzIFtbY3JlYXRlXV0g
d2l0aCB0aW1lb3V0IGluIGEgbW9jayBoaWQgYXV0aGVudGljYXRvci4KIFBBU1MgUHVibGljS2V5
Q3JlZGVudGlhbCdzIFtbY3JlYXRlXV0gd2l0aCBtYWxpY2lvdXMgcGF5bG9hZCBpbiBhIG1vY2sg
aGlkIGF1dGhlbnRpY2F0b3IuCiBQQVNTIFB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2NyZWF0ZV1d
IHdpdGggdW5zdXBwb3J0ZWQgb3B0aW9ucyBpbiBhIG1vY2sgaGlkIGF1dGhlbnRpY2F0b3IuCitQ
QVNTIFB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2NyZWF0ZV1dIHdpdGggdW5zdXBwb3J0ZWQgb3B0
aW9ucyBpbiBhIG1vY2sgaGlkIGF1dGhlbnRpY2F0b3IuIDIKIFBBU1MgUHVibGljS2V5Q3JlZGVu
dGlhbCdzIFtbY3JlYXRlXV0gd2l0aCBtaXhlZCBvcHRpb25zIGluIGEgbW9jayBoaWQgYXV0aGVu
dGljYXRvci4KIFBBU1MgUHVibGljS2V5Q3JlZGVudGlhbCdzIFtbY3JlYXRlXV0gd2l0aCBtaXhl
ZCBvcHRpb25zIGluIGEgbW9jayBoaWQgYXV0aGVudGljYXRvci4gMgogUEFTUyBQdWJsaWNLZXlD
cmVkZW50aWFsJ3MgW1tjcmVhdGVdXSB3aXRoIEludmFsaWRTdGF0ZUVycm9yIGluIGEgbW9jayBo
aWQgYXV0aGVudGljYXRvci4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1
dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1jcmVhdGUtZmFpbHVyZS1oaWQuaHR0cHMuaHRtbCBi
L0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1jcmVh
dGUtZmFpbHVyZS1oaWQuaHR0cHMuaHRtbAppbmRleCBmYzE1N2M1YjI4NmYzMjRlYThiMjkwZDI4
N2YwNTA2MTk4OTM2ZjhmLi4yNTU0NzI4MTk4MzMyZGI2OGZjYTAxZTkyNTI5OTQ2MWFhY2YxYmI0
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNy
ZWRlbnRpYWwtY3JlYXRlLWZhaWx1cmUtaGlkLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWNyZWF0ZS1mYWlsdXJlLWhp
ZC5odHRwcy5odG1sCkBAIC03Miw2ICs3MiwyOCBAQAogICAgICAgICByZXR1cm4gcHJvbWlzZVJl
amVjdHModCwgIlVua25vd25FcnJvciIsIG5hdmlnYXRvci5jcmVkZW50aWFscy5jcmVhdGUob3B0
aW9ucyksICJVbmtub3duIGludGVybmFsIGVycm9yLiBFcnJvciBjb2RlOiA0MyIpOwogICAgIH0s
ICJQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tjcmVhdGVdXSB3aXRoIHVuc3VwcG9ydGVkIG9wdGlv
bnMgaW4gYSBtb2NrIGhpZCBhdXRoZW50aWNhdG9yLiIpOwogCisgICAgcHJvbWlzZV90ZXN0KGZ1
bmN0aW9uKHQpIHsKKyAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHsKKyAgICAgICAgICAgIHB1Ymxp
Y0tleTogeworICAgICAgICAgICAgICAgIHJwOiB7CisgICAgICAgICAgICAgICAgICAgIG5hbWU6
ICJleGFtcGxlLmNvbSIKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHVzZXI6
IHsKKyAgICAgICAgICAgICAgICAgICAgbmFtZTogIkpvaG4gQXBwbGVzZWVkIiwKKyAgICAgICAg
ICAgICAgICAgICAgaWQ6IGFzY2lpVG9VaW50OEFycmF5KCIxMjM0NTYiKSwKKyAgICAgICAgICAg
ICAgICAgICAgZGlzcGxheU5hbWU6ICJKb2huIiwKKyAgICAgICAgICAgICAgICB9LAorICAgICAg
ICAgICAgICAgIGNoYWxsZW5nZTogYXNjaWlUb1VpbnQ4QXJyYXkoIjEyMzQ1NiIpLAorICAgICAg
ICAgICAgICAgIHB1YktleUNyZWRQYXJhbXM6IFt7IHR5cGU6ICJwdWJsaWMta2V5IiwgYWxnOiAt
NyB9XSwKKyAgICAgICAgICAgICAgICBhdXRoZW50aWNhdG9yU2VsZWN0aW9uOiB7IHJlc2lkZW50
S2V5OiAicmVxdWlyZWQiIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKworICAgICAgICBp
ZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgICAgIGludGVybmFscy5zZXRNb2NrV2ViQXV0
aGVudGljYXRpb25Db25maWd1cmF0aW9uKHsgaGlkOiB7IHN0YWdlOiAicmVxdWVzdCIsIHN1YlN0
YWdlOiAibXNnIiwgZXJyb3I6ICJ1bnN1cHBvcnRlZC1vcHRpb25zIiB9IH0pOworICAgICAgICBy
ZXR1cm4gcHJvbWlzZVJlamVjdHModCwgIlVua25vd25FcnJvciIsIG5hdmlnYXRvci5jcmVkZW50
aWFscy5jcmVhdGUob3B0aW9ucyksICJVbmtub3duIGludGVybmFsIGVycm9yLiBFcnJvciBjb2Rl
OiA0MyIpOworICAgIH0sICJQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tjcmVhdGVdXSB3aXRoIHVu
c3VwcG9ydGVkIG9wdGlvbnMgaW4gYSBtb2NrIGhpZCBhdXRoZW50aWNhdG9yLiAyIik7CisKICAg
ICBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgewogICAgICAgICBjb25zdCBvcHRpb25zID0gewog
ICAgICAgICAgICAgcHVibGljS2V5OiB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dw
dC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtY3JlYXRlLXN1Y2Nlc3MtaGlkLmh0dHBz
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXkt
Y3JlZGVudGlhbC1jcmVhdGUtc3VjY2Vzcy1oaWQuaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IDAy
YzNhZDZlYmZlZmYxNDA1OTliYmI5NDAyMjliNmYyM2EzNjI2NWUuLmVkYWJmMWE5MmNiYTcwMjJl
NTJmM2ZlNTZjOTM3ZWYxNDU0MTAzZjAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvd3B0
L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1jcmVhdGUtc3VjY2Vzcy1oaWQuaHR0cHMt
ZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1r
ZXktY3JlZGVudGlhbC1jcmVhdGUtc3VjY2Vzcy1oaWQuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0x
MSwxMSArMTEsMTcgQEAgQ09OU09MRSBNRVNTQUdFOiBVc2VyIGdlc3R1cmUgaXMgbm90IGRldGVj
dGVkLiBUbyB1c2UgdGhlIFdlYkF1dGhuIEFQSSwgY2FsbCAnbmEKIENPTlNPTEUgTUVTU0FHRTog
VXNlciBnZXN0dXJlIGlzIG5vdCBkZXRlY3RlZC4gVG8gdXNlIHRoZSBXZWJBdXRobiBBUEksIGNh
bGwgJ25hdmlnYXRvci5jcmVkZW50aWFscy5jcmVhdGUnIG9yICduYXZpZ2F0b3IuY3JlZGVudGlh
bHMuZ2V0JyB3aXRoaW4gdXNlciBhY3RpdmF0ZWQgZXZlbnRzLgogQ09OU09MRSBNRVNTQUdFOiBV
c2VyIGdlc3R1cmUgaXMgbm90IGRldGVjdGVkLiBUbyB1c2UgdGhlIFdlYkF1dGhuIEFQSSwgY2Fs
bCAnbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmNyZWF0ZScgb3IgJ25hdmlnYXRvci5jcmVkZW50aWFs
cy5nZXQnIHdpdGhpbiB1c2VyIGFjdGl2YXRlZCBldmVudHMuCiBDT05TT0xFIE1FU1NBR0U6IFVz
ZXIgZ2VzdHVyZSBpcyBub3QgZGV0ZWN0ZWQuIFRvIHVzZSB0aGUgV2ViQXV0aG4gQVBJLCBjYWxs
ICduYXZpZ2F0b3IuY3JlZGVudGlhbHMuY3JlYXRlJyBvciAnbmF2aWdhdG9yLmNyZWRlbnRpYWxz
LmdldCcgd2l0aGluIHVzZXIgYWN0aXZhdGVkIGV2ZW50cy4KK0NPTlNPTEUgTUVTU0FHRTogVXNl
ciBnZXN0dXJlIGlzIG5vdCBkZXRlY3RlZC4gVG8gdXNlIHRoZSBXZWJBdXRobiBBUEksIGNhbGwg
J25hdmlnYXRvci5jcmVkZW50aWFscy5jcmVhdGUnIG9yICduYXZpZ2F0b3IuY3JlZGVudGlhbHMu
Z2V0JyB3aXRoaW4gdXNlciBhY3RpdmF0ZWQgZXZlbnRzLgorQ09OU09MRSBNRVNTQUdFOiBVc2Vy
IGdlc3R1cmUgaXMgbm90IGRldGVjdGVkLiBUbyB1c2UgdGhlIFdlYkF1dGhuIEFQSSwgY2FsbCAn
bmF2aWdhdG9yLmNyZWRlbnRpYWxzLmNyZWF0ZScgb3IgJ25hdmlnYXRvci5jcmVkZW50aWFscy5n
ZXQnIHdpdGhpbiB1c2VyIGFjdGl2YXRlZCBldmVudHMuCitDT05TT0xFIE1FU1NBR0U6IFVzZXIg
Z2VzdHVyZSBpcyBub3QgZGV0ZWN0ZWQuIFRvIHVzZSB0aGUgV2ViQXV0aG4gQVBJLCBjYWxsICdu
YXZpZ2F0b3IuY3JlZGVudGlhbHMuY3JlYXRlJyBvciAnbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmdl
dCcgd2l0aGluIHVzZXIgYWN0aXZhdGVkIGV2ZW50cy4KIAogUEFTUyBQdWJsaWNLZXlDcmVkZW50
aWFsJ3MgW1tjcmVhdGVdXSB3aXRoIG1pbmltdW0gb3B0aW9ucyBpbiBhIG1vY2sgaGlkIGF1dGhl
bnRpY2F0b3IuCiBQQVNTIFB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2NyZWF0ZV1dIHdpdGggZW1w
dHkgcHViS2V5Q3JlZFBhcmFtcyBpbiBhIG1vY2sgaGlkIGF1dGhlbnRpY2F0b3IuCiBQQVNTIFB1
YmxpY0tleUNyZWRlbnRpYWwncyBbW2NyZWF0ZV1dIHdpdGggYXV0aGVudGljYXRvclNlbGVjdGlv
biB7ICdjcm9zcy1wbGF0Zm9ybScgfSBpbiBhIG1vY2sgaGlkIGF1dGhlbnRpY2F0b3IuCiBQQVNT
IFB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2NyZWF0ZV1dIHdpdGggcmVxdWlyZVJlc2lkZW50S2V5
IHsgZmFsc2UgfSBpbiBhIG1vY2sgaGlkIGF1dGhlbnRpY2F0b3IuCitQQVNTIFB1YmxpY0tleUNy
ZWRlbnRpYWwncyBbW2NyZWF0ZV1dIHdpdGggcmVzaWRlbnRLZXkgeyBEaXNjb3VyYWdlZCB9IGlu
IGEgbW9jayBoaWQgYXV0aGVudGljYXRvci4KK1BBU1MgUHVibGljS2V5Q3JlZGVudGlhbCdzIFtb
Y3JlYXRlXV0gd2l0aCByZXNpZGVudEtleSB7IFByZWZlcnJlZCB9IGluIGEgbW9jayBoaWQgYXV0
aGVudGljYXRvci4KK1BBU1MgUHVibGljS2V5Q3JlZGVudGlhbCdzIFtbY3JlYXRlXV0gd2l0aCBy
ZXNpZGVudEtleSB7IFJlcXVpcmVkIH0gaW4gYSBtb2NrIGhpZCBhdXRoZW50aWNhdG9yLgogUEFT
UyBQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tjcmVhdGVdXSB3aXRoIHVzZXJWZXJpZmljYXRpb24g
eyAncHJlZmVycmVkJyB9IGluIGEgbW9jayBoaWQgYXV0aGVudGljYXRvci4KIFBBU1MgUHVibGlj
S2V5Q3JlZGVudGlhbCdzIFtbY3JlYXRlXV0gd2l0aCB1c2VyVmVyaWZpY2F0aW9uIHsgJ2Rpc2Nv
dXJhZ2VkJyB9IGluIGEgbW9jayBoaWQgYXV0aGVudGljYXRvci4KIFBBU1MgUHVibGljS2V5Q3Jl
ZGVudGlhbCdzIFtbY3JlYXRlXV0gd2l0aCBtaXhlZCBvcHRpb25zIGluIGEgbW9jayBoaWQgYXV0
aGVudGljYXRvci4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1
YmxpYy1rZXktY3JlZGVudGlhbC1jcmVhdGUtc3VjY2Vzcy1oaWQuaHR0cHMuaHRtbCBiL0xheW91
dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1jcmVhdGUtc3Vj
Y2Vzcy1oaWQuaHR0cHMuaHRtbAppbmRleCBlOTc0NjQ4Y2RkOWVhMDQyMjllZDIyZTQ1ODViYTU2
MWU5ZmI5ODVmLi41MmZjYjE2NDFlMTNkODdkNzVkYjg3ZDIwYjlkMTNiODBmYjc1NWExIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRp
YWwtY3JlYXRlLXN1Y2Nlc3MtaGlkLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93
cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWNyZWF0ZS1zdWNjZXNzLWhpZC5odHRw
cy5odG1sCkBAIC05OSw2ICs5OSw3NSBAQAogICAgICAgICB9KTsKICAgICB9LCAiUHVibGljS2V5
Q3JlZGVudGlhbCdzIFtbY3JlYXRlXV0gd2l0aCByZXF1aXJlUmVzaWRlbnRLZXkgeyBmYWxzZSB9
IGluIGEgbW9jayBoaWQgYXV0aGVudGljYXRvci4iKTsKIAorICAgIHByb21pc2VfdGVzdCh0ID0+
IHsKKyAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHsKKyAgICAgICAgICAgIHB1YmxpY0tleTogewor
ICAgICAgICAgICAgICAgIHJwOiB7CisgICAgICAgICAgICAgICAgICAgIG5hbWU6ICJsb2NhbGhv
c3QiLAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgdXNlcjogeworICAgICAg
ICAgICAgICAgICAgICBuYW1lOiAiSm9obiBBcHBsZXNlZWQiLAorICAgICAgICAgICAgICAgICAg
ICBpZDogQmFzZTY0VVJMLnBhcnNlKHRlc3RVc2VyaGFuZGxlQmFzZTY0KSwKKyAgICAgICAgICAg
ICAgICAgICAgZGlzcGxheU5hbWU6ICJBcHBsZXNlZWQiLAorICAgICAgICAgICAgICAgIH0sCisg
ICAgICAgICAgICAgICAgY2hhbGxlbmdlOiBCYXNlNjRVUkwucGFyc2UoIk1USXpORFUyIiksCisg
ICAgICAgICAgICAgICAgcHViS2V5Q3JlZFBhcmFtczogW3sgdHlwZTogInB1YmxpYy1rZXkiLCBh
bGc6IC03IH1dLAorICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0b3JTZWxlY3Rpb246IHsgcmVz
aWRlbnRLZXk6ICJkaXNjb3VyYWdlZCIgfSwKKyAgICAgICAgICAgICAgICB0aW1lb3V0OiAxMDAK
KyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKworICAgICAgICByZXR1cm4gbmF2aWdhdG9yLmNy
ZWRlbnRpYWxzLmNyZWF0ZShvcHRpb25zKS50aGVuKGNyZWRlbnRpYWwgPT4geworICAgICAgICAg
ICAgY2hlY2tDdGFwTWFrZUNyZWRlbnRpYWxSZXN1bHQoY3JlZGVudGlhbCk7CisgICAgICAgIH0p
OworICAgIH0sICJQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tjcmVhdGVdXSB3aXRoIHJlc2lkZW50
S2V5IHsgRGlzY291cmFnZWQgfSBpbiBhIG1vY2sgaGlkIGF1dGhlbnRpY2F0b3IuIik7CisKKyAg
ICBwcm9taXNlX3Rlc3QodCA9PiB7CisgICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7CisgICAgICAg
ICAgICBwdWJsaWNLZXk6IHsKKyAgICAgICAgICAgICAgICBycDogeworICAgICAgICAgICAgICAg
ICAgICBuYW1lOiAibG9jYWxob3N0IiwKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAg
ICAgIHVzZXI6IHsKKyAgICAgICAgICAgICAgICAgICAgbmFtZTogIkpvaG4gQXBwbGVzZWVkIiwK
KyAgICAgICAgICAgICAgICAgICAgaWQ6IEJhc2U2NFVSTC5wYXJzZSh0ZXN0VXNlcmhhbmRsZUJh
c2U2NCksCisgICAgICAgICAgICAgICAgICAgIGRpc3BsYXlOYW1lOiAiQXBwbGVzZWVkIiwKKyAg
ICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIGNoYWxsZW5nZTogQmFzZTY0VVJMLnBh
cnNlKCJNVEl6TkRVMiIpLAorICAgICAgICAgICAgICAgIHB1YktleUNyZWRQYXJhbXM6IFt7IHR5
cGU6ICJwdWJsaWMta2V5IiwgYWxnOiAtNyB9XSwKKyAgICAgICAgICAgICAgICBhdXRoZW50aWNh
dG9yU2VsZWN0aW9uOiB7IHJlc2lkZW50S2V5OiAicHJlZmVycmVkIiB9LAorICAgICAgICAgICAg
ICAgIHRpbWVvdXQ6IDEwMAorICAgICAgICAgICAgfQorICAgICAgICB9OworCisgICAgICAgIHJl
dHVybiBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuY3JlYXRlKG9wdGlvbnMpLnRoZW4oY3JlZGVudGlh
bCA9PiB7CisgICAgICAgICAgICBjaGVja0N0YXBNYWtlQ3JlZGVudGlhbFJlc3VsdChjcmVkZW50
aWFsKTsKKyAgICAgICAgfSk7CisgICAgfSwgIlB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2NyZWF0
ZV1dIHdpdGggcmVzaWRlbnRLZXkgeyBQcmVmZXJyZWQgfSBpbiBhIG1vY2sgaGlkIGF1dGhlbnRp
Y2F0b3IuIik7CisKKyAgICBwcm9taXNlX3Rlc3QodCA9PiB7CisgICAgICAgIGNvbnN0IG9wdGlv
bnMgPSB7CisgICAgICAgICAgICBwdWJsaWNLZXk6IHsKKyAgICAgICAgICAgICAgICBycDogewor
ICAgICAgICAgICAgICAgICAgICBuYW1lOiAibG9jYWxob3N0IiwKKyAgICAgICAgICAgICAgICB9
LAorICAgICAgICAgICAgICAgIHVzZXI6IHsKKyAgICAgICAgICAgICAgICAgICAgbmFtZTogIkpv
aG4gQXBwbGVzZWVkIiwKKyAgICAgICAgICAgICAgICAgICAgaWQ6IEJhc2U2NFVSTC5wYXJzZSh0
ZXN0VXNlcmhhbmRsZUJhc2U2NCksCisgICAgICAgICAgICAgICAgICAgIGRpc3BsYXlOYW1lOiAi
QXBwbGVzZWVkIiwKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIGNoYWxsZW5n
ZTogQmFzZTY0VVJMLnBhcnNlKCJNVEl6TkRVMiIpLAorICAgICAgICAgICAgICAgIHB1YktleUNy
ZWRQYXJhbXM6IFt7IHR5cGU6ICJwdWJsaWMta2V5IiwgYWxnOiAtNyB9XSwKKyAgICAgICAgICAg
ICAgICBhdXRoZW50aWNhdG9yU2VsZWN0aW9uOiB7IHJlc2lkZW50S2V5OiAicmVxdWlyZWQiIH0s
CisgICAgICAgICAgICAgICAgdGltZW91dDogMTAwCisgICAgICAgICAgICB9CisgICAgICAgIH07
CisKKyAgICAgICAgcmV0dXJuIG5hdmlnYXRvci5jcmVkZW50aWFscy5jcmVhdGUob3B0aW9ucyku
dGhlbihjcmVkZW50aWFsID0+IHsKKyAgICAgICAgICAgIGNoZWNrQ3RhcE1ha2VDcmVkZW50aWFs
UmVzdWx0KGNyZWRlbnRpYWwpOworICAgICAgICB9KTsKKyAgICB9LCAiUHVibGljS2V5Q3JlZGVu
dGlhbCdzIFtbY3JlYXRlXV0gd2l0aCByZXNpZGVudEtleSB7IFJlcXVpcmVkIH0gaW4gYSBtb2Nr
IGhpZCBhdXRoZW50aWNhdG9yLiIpOworCiAgICAgcHJvbWlzZV90ZXN0KHQgPT4gewogICAgICAg
ICBjb25zdCBvcHRpb25zID0gewogICAgICAgICAgICAgcHVibGljS2V5OiB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>454388</attachid>
            <date>2022-03-10 11:49:03 -0800</date>
            <delta_ts>2022-03-11 09:50:34 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-237567-20220310114902.patch</filename>
            <type>text/plain</type>
            <size>68548</size>
            <attacher name="pascoe@apple.com">pascoe</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxMTIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzY1YmVhOWQ1OGE1Yjkw
ZDUwMDNkYjljYzI3Y2Q3ZjFiMGZiYWY3Yi4uYzQ0OTdlNGQyNjIwZDgzZDIxOGYzZjIwNjBiZTE5
MTRhOGQ3MTNiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDIyLTAzLTEwICBKIFBh
c2NvZSAgPGpfcGFzY29lQGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViQXV0aG5dIFN1cHBvcnQg
YXV0aGVudGljYXRvclNlbGVjdGlvbi5yZXNpZGVudEtleSBSZXNpZGVudEtleVJlcXVpcmVtZW50
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzc1NjcK
KyAgICAgICAgcmRhcjovLzg5Nzg4Mzc4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQnJlbnQgRnVs
Z2hhbSBhbmQgQ2hyaXMgRHVtZXouCisKKyAgICAgICAgSW4gV2ViIEF1dGhlbnRpY2F0aW9uIGxl
dmVsIG9uZSwgcmVseWluZyBwYXJ0aWVzIGNhbiBzcGVjaWZ5IGF1dGhlbnRpY2F0b3JTZWxlY3Rp
b24ucmVzaWRlbnRLZXlSZXF1aXJlZCwKKyAgICAgICAgdG8gc2lnbmlmeSB0aGV5IHJlcXVpcmUg
YSBjbGllbnQtc2lkZSBkaXNjb3ZlcmFibGUgY3JlZGVudGlhbC4gSG93ZXZlciwgaWYgdGhlIGF1
dGhlbnRpY2F0b3IgZG9lcyBub3QKKyAgICAgICAgc3VwcG9ydCBjbGllbnQtc2lkZSBkaXNjb3Zl
cmFibGUgY3JlZGVudGlhbHMsIHRoZSBycCBoYXMgbm8gd2F5IHRvIGNsYXJpZnkgdGhleSB3YW50
IGEgY2xpZW50LXNpZGUKKyAgICAgICAgZGlzY292ZXJhYmxlIGNyZWRlbnRpYWwgb25seSBpZiBh
dmFpbGFibGUuCisKKyAgICAgICAgVGhpcyBwYXRjaCBpbXBsZW1lbnRzIGF1dGhlbnRpY2F0b3JT
ZWxlY3Rpb24ucmVzaWRlbnRLZXlSZXF1aXJlZCBpbnRyb2R1Y2VkIGluIGxldmVsIDIsIHdoaWNo
IGhhcyB0aHJlZQorICAgICAgICB2YWx1ZXMgJ1ByZWZlcnJlZCcsICdSZXF1aXJlZCcsIGFuZCAn
RGlzY291cmFnZWQnLiBUaGlzIGFsbG93cyBSUHMgdG8gY3JlYXRlIGEgY2xpZW50LXNpZGUgZGlz
Y292ZXJhYmxlCisgICAgICAgIGNyZWRlbnRpYWwgaWYgcG9zc2libGUuCisKKyAgICAgICAgKiBD
TWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0
OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAq
IERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNL
ZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zLmg6CisgICAgICAgIChXZWJDb3JlOjpQdWJsaWNL
ZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zOjpBdXRoZW50aWNhdG9yU2VsZWN0aW9uQ3JpdGVy
aWE6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpQdWJsaWNLZXlDcmVkZW50aWFs
Q3JlYXRpb25PcHRpb25zOjpBdXRoZW50aWNhdG9yU2VsZWN0aW9uQ3JpdGVyaWE6OmRlY29kZSk6
CisgICAgICAgICogTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25P
cHRpb25zLmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1dGhuL1Jlc2lkZW50S2V5UmVxdWly
ZW1lbnQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19X
S0F1dGhlbnRpY2F0b3JTZWxlY3Rpb25Dcml0ZXJpYS5tbS4KKyAgICAgICAgKiBNb2R1bGVzL3dl
YmF1dGhuL1Jlc2lkZW50S2V5UmVxdWlyZW1lbnQuaWRsOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQXV0aGVudGljYXRvclNlbGVjdGlvbkNyaXRlcmlh
Lm1tLgorICAgICAgICAqIE1vZHVsZXMvd2ViYXV0aG4vZmlkby9BdXRoZW50aWNhdG9yU3VwcG9y
dGVkT3B0aW9ucy5jcHA6CisgICAgICAgIChmaWRvOjpBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0
aW9uczo6c2V0UmVzaWRlbnRLZXlBdmFpbGFiaWxpdHkpOgorICAgICAgICAoZmlkbzo6Y29udmVy
dFRvQ0JPUik6CisgICAgICAgIChmaWRvOjpBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9uczo6
c2V0U3VwcG9ydHNSZXNpZGVudEtleSk6IERlbGV0ZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJh
dXRobi9maWRvL0F1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zLmg6CisgICAgICAgICogTW9k
dWxlcy93ZWJhdXRobi9maWRvL0RldmljZVJlcXVlc3RDb252ZXJ0ZXIuY3BwOgorICAgICAgICAo
Zmlkbzo6ZW5jb2RlTWFrZUNyZWRlbml0YWxSZXF1ZXN0QXNDQk9SKToKKyAgICAgICAgKiBNb2R1
bGVzL3dlYmF1dGhuL2ZpZG8vRGV2aWNlUmVxdWVzdENvbnZlcnRlci5oOgorICAgICAgICAqIE1v
ZHVsZXMvd2ViYXV0aG4vZmlkby9EZXZpY2VSZXNwb25zZUNvbnZlcnRlci5jcHA6CisgICAgICAg
IChmaWRvOjpyZWFkQ1RBUEdldEluZm9SZXNwb25zZSk6CisgICAgICAgICogU291cmNlcy50eHQ6
CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorCiAyMDIyLTAz
LTEwICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJraXQub3JnPgogCiAgICAgICAgIFt3ZWIt
YW5pbWF0aW9uc10gZ3JpZC10ZW1wbGF0ZS1hcmVhcyBzaG91bGQgc3VwcG9ydCBkaXNjcmV0ZSBh
bmltYXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKaW5kZXggMzMyMmU0ZjdlZTg4ZDg2ZmJjYTI0MzkxMWQ0ZjE2YmI4NDlm
NDM4ZS4uNGZjZmE5N2YwNTg0Y2JhYmFlZjMzN2IwMTg0N2ZlYWZiMDFkYzY2NCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwzMyBAQAorMjAyMi0wMy0xMCAgSiBQYXNjb2UgIDxqX3Bhc2NvZUBhcHBsZS5j
b20+CisKKyAgICAgICAgW1dlYkF1dGhuXSBTdXBwb3J0IGF1dGhlbnRpY2F0b3JTZWxlY3Rpb24u
cmVzaWRlbnRLZXkgUmVzaWRlbnRLZXlSZXF1aXJlbWVudAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM3NTY3CisgICAgICAgIHJkYXI6Ly84OTc4ODM3
OAorCisgICAgICAgIFJldmlld2VkIGJ5IEJyZW50IEZ1bGdoYW0gYW5kIENocmlzIER1bWV6Lgor
CisgICAgICAgIEluIFdlYiBBdXRoZW50aWNhdGlvbiBsZXZlbCBvbmUsIHJlbHlpbmcgcGFydGll
cyBjYW4gc3BlY2lmeSBhdXRoZW50aWNhdG9yU2VsZWN0aW9uLnJlc2lkZW50S2V5UmVxdWlyZWQs
CisgICAgICAgIHRvIHNpZ25pZnkgdGhleSByZXF1aXJlIGEgY2xpZW50LXNpZGUgZGlzY292ZXJh
YmxlIGNyZWRlbnRpYWwuIEhvd2V2ZXIsIGlmIHRoZSBhdXRoZW50aWNhdG9yIGRvZXMgbm90Cisg
ICAgICAgIHN1cHBvcnQgY2xpZW50LXNpZGUgZGlzY292ZXJhYmxlIGNyZWRlbnRpYWxzLCB0aGUg
cnAgaGFzIG5vIHdheSB0byBjbGFyaWZ5IHRoZXkgd2FudCBhIGNsaWVudC1zaWRlCisgICAgICAg
IGRpc2NvdmVyYWJsZSBjcmVkZW50aWFsIG9ubHkgaWYgYXZhaWxhYmxlLgorCisgICAgICAgIFRo
aXMgcGF0Y2ggaW1wbGVtZW50cyBhdXRoZW50aWNhdG9yU2VsZWN0aW9uLnJlc2lkZW50S2V5UmVx
dWlyZWQgaW50cm9kdWNlZCBpbiBsZXZlbCAyLCB3aGljaCBoYXMgdGhyZWUKKyAgICAgICAgdmFs
dWVzICdQcmVmZXJyZWQnLCAnUmVxdWlyZWQnLCBhbmQgJ0Rpc2NvdXJhZ2VkJy4gVGhpcyBhbGxv
d3MgUlBzIHRvIGNyZWF0ZSBhIGNsaWVudC1zaWRlIGRpc2NvdmVyYWJsZQorICAgICAgICBjcmVk
ZW50aWFsIGlmIHBvc3NpYmxlLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tB
dXRoZW50aWNhdG9yU2VsZWN0aW9uQ3JpdGVyaWEuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L0NvY29hL19XS0F1dGhlbnRpY2F0b3JTZWxlY3Rpb25Dcml0ZXJpYS5tbToKKyAgICAgICAgKC1b
X1dLQXV0aGVudGljYXRvclNlbGVjdGlvbkNyaXRlcmlhIGluaXRdKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL0NvY29hL19XS1Jlc2lkZW50S2V5UmVxdWlyZW1lbnQuaDogQ29waWVkIGZyb20g
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0F1dGhlbnRpY2F0b3JTZWxlY3Rp
b25Dcml0ZXJpYS5tbS4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYkF1dGhl
bnRpY2F0aW9uUGFuZWwubW06CisgICAgICAgIChyZXNpZGVudEtleSk6CisgICAgICAgIChhdXRo
ZW50aWNhdG9yU2VsZWN0aW9uQ3JpdGVyaWEpOgorICAgICAgICAoK1tfV0tXZWJBdXRoZW50aWNh
dGlvblBhbmVsIGVuY29kZU1ha2VDcmVkZW50aWFsQ29tbWFuZFdpdGhDbGllbnREYXRhSlNPTjpv
cHRpb25zOnVzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHk6XSk6CisgICAgICAgICgrW19XS1dl
YkF1dGhlbnRpY2F0aW9uUGFuZWwgZW5jb2RlTWFrZUNyZWRlbnRpYWxDb21tYW5kV2l0aENsaWVu
dERhdGFIYXNoOm9wdGlvbnM6dXNlclZlcmlmaWNhdGlvbkF2YWlsYWJpbGl0eTpdKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vZmlkby9DdGFwQXV0aGVudGljYXRvci5j
cHA6CisgICAgICAgIChXZWJLaXQ6OkN0YXBBdXRoZW50aWNhdG9yOjptYWtlQ3JlZGVudGlhbCk6
CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisKIDIwMjItMDMt
MTAgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CiAKICAgICAgICAgSW5kZXhlZERC
OiBmcmVlIG1lbW9yeSB1c2VkIGJ5IGRhdGFiYXNlIGNvbm5lY3Rpb24gb24gbG93LW1lbW9yeSB3
YXJuaW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJj
ZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDJiYjgyOWNkNTliOGMwNzVlMDM2NjU1YzIz
N2I4NTAxNDgxYzRiMmUuLjNkNDlhOTE2NjU5YTc4ZGIzNDBkMGM5NWVjNDVkZWEwYTIzNjE4ZjQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9X
ZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC02NjUsNiArNjY1LDcgQEAgc2V0KFdlYkNvcmVfTk9O
X1NWR19JRExfRklMRVMKICAgICBNb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRlbnRpYWxE
ZXNjcmlwdG9yLmlkbAogICAgIE1vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbFJl
cXVlc3RPcHRpb25zLmlkbAogICAgIE1vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlh
bFR5cGUuaWRsCisgICAgTW9kdWxlcy93ZWJhdXRobi9SZXNpZGVudEtleVJlcXVpcmVtZW50Lmlk
bAogICAgIE1vZHVsZXMvd2ViYXV0aG4vVXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50LmlkbAog
CiAgICAgTW9kdWxlcy93ZWJjb2RlY3MvVmlkZW9Db2xvclByaW1hcmllcy5pZGwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QgYi9Tb3Vy
Y2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CmluZGV4IDZiZTdmNGYw
ODMxOGFlYThhNWFlMjEzM2IxZTJmYjEzZjRjMTNiYzMuLjA4NWRhNzM5ZTNhOGU5MjJjNjNmNTc3
NzE2YmMyOTA1MGQzYmNmY2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3Vy
Y2VzLWlucHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMt
aW5wdXQueGNmaWxlbGlzdApAQCAtNzQ3LDYgKzc0Nyw3IEBAICQoUFJPSkVDVF9ESVIpL01vZHVs
ZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucy5pZGwKICQoUFJP
SkVDVF9ESVIpL01vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbERlc2NyaXB0b3Iu
aWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRlbnRpYWxS
ZXF1ZXN0T3B0aW9ucy5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvd2ViYXV0aG4vUHVibGlj
S2V5Q3JlZGVudGlhbFR5cGUuaWRsCiskKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3dlYmF1dGhuL1Jl
c2lkZW50S2V5UmVxdWlyZW1lbnQuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3dlYmF1dGhu
L1VzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudC5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMv
d2ViY29kZWNzL1ZpZGVvQ29sb3JQcmltYXJpZXMuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVz
L3dlYmNvZGVjcy9WaWRlb0NvbG9yU3BhY2UuaWRsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2
ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CmluZGV4IDZjMjA1ZTcxZGE0Zjk3MTk1YzM3YWJk
YTJlOWJkNWFjMWMzMmRjMDEuLjRmYjc3YjNkZGJhZWRhOGVhM2FkYmNkNGE3MDk3YTU2YTc4MDgx
ZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2Zp
bGVsaXN0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVs
aXN0CkBAIC0yMTEyLDYgKzIxMTIsOCBAQCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViQ29yZS9KU1JlcXVlc3RBbmltYXRpb25GcmFtZUNhbGxiYWNrLmNwcAogJChCVUlM
VF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNSZXF1ZXN0QW5pbWF0aW9u
RnJhbWVDYWxsYmFjay5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZS9KU1JlcXVlc3RDb29raWVDb25zZW50T3B0aW9ucy5jcHAKICQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTUmVxdWVzdENvb2tpZUNvbnNlbnRPcHRpb25z
LmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTUmVzaWRl
bnRLZXlSZXF1aXJlbWVudC5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJDb3JlL0pTUmVzaWRlbnRLZXlSZXF1aXJlbWVudC5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1Jlc2l6ZU9ic2VydmVyLmNwcAogJChCVUlMVF9Q
Uk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNSZXNpemVPYnNlcnZlci5oCiAk
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1Jlc2l6ZU9ic2Vy
dmVyQm94T3B0aW9ucy5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3Vy
Y2VzLm1ha2UgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IDI2ODAz
MjcwZDY3YTc3NDU1OWVjZjIzZDc1YjZiYjA1YjA2OTM4ODUuLmUxYmJjMTJjMzFmMDk5NDM4NzBi
YWM3NTZlNGIzMWFhZmU1MDc3ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRT
b3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAt
NjQzLDYgKzY0Myw3IEBAIEpTX0JJTkRJTkdfSURMUyA6PSBcCiAgICAgJChXZWJDb3JlKS9Nb2R1
bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRlbnRpYWxEZXNjcmlwdG9yLmlkbCBcCiAgICAgJChX
ZWJDb3JlKS9Nb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9u
cy5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50
aWFsVHlwZS5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJhdXRobi9SZXNpZGVudEtl
eVJlcXVpcmVtZW50LmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmF1dGhuL1VzZXJW
ZXJpZmljYXRpb25SZXF1aXJlbWVudC5pZGwgXAogCSQoV2ViQ29yZSkvTW9kdWxlcy93ZWJjb2Rl
Y3MvVmlkZW9Db2xvclByaW1hcmllcy5pZGwgXAogCSQoV2ViQ29yZSkvTW9kdWxlcy93ZWJjb2Rl
Y3MvVmlkZW9Db2xvclNwYWNlLmlkbCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMuaCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0
aW9ucy5oCmluZGV4IDhkZmE3ZDc3NDk3ODg3ZjA1MDZhNzcyODdiMTRhNGY5NDZkNzkwODMuLmUw
M2JkMWFiYTI1NmJmOGU0ODI4YWQ5NTFkYzBlOWY3NDEwNWQ2OTggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0
aW9ucy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3Jl
ZGVudGlhbENyZWF0aW9uT3B0aW9ucy5oCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiQnVm
ZmVyU291cmNlLmgiCiAjaW5jbHVkZSAiUHVibGljS2V5Q3JlZGVudGlhbERlc2NyaXB0b3IuaCIK
ICNpbmNsdWRlICJQdWJsaWNLZXlDcmVkZW50aWFsVHlwZS5oIgorI2luY2x1ZGUgIlJlc2lkZW50
S2V5UmVxdWlyZW1lbnQuaCIKICNpbmNsdWRlICJVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQu
aCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2VuZGlmIC8vIEVOQUJMRShXRUJfQVVUSE4p
CkBAIC02NSw2ICs2Niw4IEBAIHN0cnVjdCBQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRp
b25zIHsKIAogICAgIHN0cnVjdCBBdXRoZW50aWNhdG9yU2VsZWN0aW9uQ3JpdGVyaWEgewogICAg
ICAgICBzdGQ6Om9wdGlvbmFsPEF1dGhlbnRpY2F0b3JBdHRhY2htZW50PiBhdXRoZW50aWNhdG9y
QXR0YWNobWVudDsKKyAgICAgICAgLy8gcmVzaWRlbnRLZXkgcmVwbGFjZXMgcmVxdWlyZVJlc2lk
ZW50S2V5LCBzZWU6IGh0dHBzOi8vd3d3LnczLm9yZy9UUi93ZWJhdXRobi0yLyNkaWN0aW9uYXJ5
LWF1dGhlbnRpY2F0b3JTZWxlY3Rpb24KKyAgICAgICAgc3RkOjpvcHRpb25hbDxSZXNpZGVudEtl
eVJlcXVpcmVtZW50PiByZXNpZGVudEtleTsKICAgICAgICAgYm9vbCByZXF1aXJlUmVzaWRlbnRL
ZXkgeyBmYWxzZSB9OwogICAgICAgICBVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQgdXNlclZl
cmlmaWNhdGlvbiB7IFVzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudDo6UHJlZmVycmVkIH07CiAK
QEAgLTExMCw3ICsxMTMsNyBAQCBzdGQ6Om9wdGlvbmFsPFB1YmxpY0tleUNyZWRlbnRpYWxDcmVh
dGlvbk9wdGlvbnM6OlBhcmFtZXRlcnM+IFB1YmxpY0tleUNyZWRlbnRpYQogdGVtcGxhdGU8Y2xh
c3MgRW5jb2Rlcj4KIHZvaWQgUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9uczo6QXV0
aGVudGljYXRvclNlbGVjdGlvbkNyaXRlcmlhOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29u
c3QKIHsKLSAgICBlbmNvZGVyIDw8IGF1dGhlbnRpY2F0b3JBdHRhY2htZW50IDw8IHJlcXVpcmVS
ZXNpZGVudEtleSA8PCB1c2VyVmVyaWZpY2F0aW9uOworICAgIGVuY29kZXIgPDwgYXV0aGVudGlj
YXRvckF0dGFjaG1lbnQgPDwgcmVxdWlyZVJlc2lkZW50S2V5IDw8IHVzZXJWZXJpZmljYXRpb24g
PDwgcmVzaWRlbnRLZXk7CiB9CiAKIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+CkBAIC0xMzIsNiAr
MTM1LDEzIEBAIHN0ZDo6b3B0aW9uYWw8UHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9u
czo6QXV0aGVudGljYXRvclNlbGVjdGlvbkNyaXRlcmlhCiAKICAgICBpZiAoIWRlY29kZXIuZGVj
b2RlKHJlc3VsdC51c2VyVmVyaWZpY2F0aW9uKSkKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9w
dDsKKworICAgIHN0ZDo6b3B0aW9uYWw8c3RkOjpvcHRpb25hbDxSZXNpZGVudEtleVJlcXVpcmVt
ZW50Pj4gcmVzaWRlbnRLZXk7CisgICAgZGVjb2RlciA+PiByZXNpZGVudEtleTsKKyAgICBpZiAo
IXJlc2lkZW50S2V5KQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgIHJlc3VsdC5y
ZXNpZGVudEtleSA9ICpyZXNpZGVudEtleTsKKwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVu
dGlhbENyZWF0aW9uT3B0aW9ucy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhu
L1B1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMuaWRsCmluZGV4IGNlNjY1ZjQxMzM4
ODgyOTQ3OWVmZTYxZDQ1ZDU5NDI2NTU3MzU5NTYuLmU3NWZjZTE5OWZkYWEzYjFiMjgwZmI4OTJi
NzIwNjE3NTA2ZjI1M2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0
aG4vUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucy5pZGwKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25z
LmlkbApAQCAtNzIsNiArNzIsNyBAQCB0eXBlZGVmIGxvbmcgQ09TRUFsZ29yaXRobUlkZW50aWZp
ZXI7CiAgICAgQ29uZGl0aW9uYWw9V0VCX0FVVEhOLAogXSBkaWN0aW9uYXJ5IEF1dGhlbnRpY2F0
b3JTZWxlY3Rpb25Dcml0ZXJpYSB7CiAgICAgQXV0aGVudGljYXRvckF0dGFjaG1lbnQgICAgICBh
dXRoZW50aWNhdG9yQXR0YWNobWVudDsKKyAgICBSZXNpZGVudEtleVJlcXVpcmVtZW50ICAgICAg
IHJlc2lkZW50S2V5OwogICAgIGJvb2xlYW4gICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZVJl
c2lkZW50S2V5ID0gZmFsc2U7CiAgICAgVXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50ICB1c2Vy
VmVyaWZpY2F0aW9uID0gInByZWZlcnJlZCI7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdXRobi9SZXNpZGVudEtleVJlcXVpcmVtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1dGhuL1Jlc2lkZW50S2V5UmVxdWlyZW1lbnQuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5hMGUyYjc0MjY4YTFhNDU5NGI3NjYwM2I4MzhmMzdjNzA4OWIwZDUxCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9SZXNpZGVudEtleVJlcXVpcmVt
ZW50LmgKQEAgLTAsMCArMSw1NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMiBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYg
RU5BQkxFKFdFQl9BVVRITikKKworI2luY2x1ZGUgPHd0Zi9FbnVtVHJhaXRzLmg+CisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworZW51bSBjbGFzcyBSZXNpZGVudEtleVJlcXVpcmVtZW50IDogdWlu
dDhfdCB7CisgICAgUmVxdWlyZWQsCisgICAgUHJlZmVycmVkLAorICAgIERpc2NvdXJhZ2VkCit9
OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKK25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0
ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OlJlc2lkZW50S2V5UmVxdWlyZW1lbnQ+IHsK
KyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAorICAgICAgICBXZWJDb3JlOjpSZXNpZGVu
dEtleVJlcXVpcmVtZW50LAorICAgICAgICBXZWJDb3JlOjpSZXNpZGVudEtleVJlcXVpcmVtZW50
OjpSZXF1aXJlZCwKKyAgICAgICAgV2ViQ29yZTo6UmVzaWRlbnRLZXlSZXF1aXJlbWVudDo6UHJl
ZmVycmVkLAorICAgICAgICBXZWJDb3JlOjpSZXNpZGVudEtleVJlcXVpcmVtZW50OjpEaXNjb3Vy
YWdlZAorICAgID47Cit9OworCit9IC8vIG5hbWVzcGFjZSBXVEYKKworI2VuZGlmIC8vIEVOQUJM
RShXRUJfQVVUSE4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhu
L1Jlc2lkZW50S2V5UmVxdWlyZW1lbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dXRobi9SZXNpZGVudEtleVJlcXVpcmVtZW50LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wM2E1YmI2MGRlODA3
YjFmM2U0YjgwZmE2MjMyY2EyMGNiZDk4ZTY4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdXRobi9SZXNpZGVudEtleVJlcXVpcmVtZW50LmlkbApAQCAtMCww
ICsxLDMzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIyIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworWworICAgIENvbmRpdGlvbmFsPVdFQl9BVVRITiwKKyAg
ICBJbXBsZW1lbnRlZEFzPVJlc2lkZW50S2V5UmVxdWlyZW1lbnQKK10gZW51bSBSZXNpZGVudEtl
eVJlcXVpcmVtZW50IHsKKyAgICAicmVxdWlyZWQiLAorICAgICJwcmVmZXJyZWQiLAorICAgICJk
aXNjb3VyYWdlZCIKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
dGhuL2ZpZG8vQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnMuY3BwIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdXRobi9maWRvL0F1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zLmNw
cAppbmRleCBiZGNmOGE0Y2Q1NGFmNzdmOGYzMzM4MTM4ZTk0MWJkYmFmNjBkYzRhLi5mOTE1ZWE1
ZDQ3ODAwYTVjOWZlOTQ2YzQ5ZTc5YTlhMTdlMmQ3MDBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8vQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnMu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vZmlkby9BdXRoZW50aWNh
dG9yU3VwcG9ydGVkT3B0aW9ucy5jcHAKQEAgLTM2LDkgKzM2LDkgQEAKIAogbmFtZXNwYWNlIGZp
ZG8gewogCi1BdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9ucyYgQXV0aGVudGljYXRvclN1cHBv
cnRlZE9wdGlvbnM6OnNldFN1cHBvcnRzUmVzaWRlbnRLZXkoYm9vbCBzdXBwb3J0c1Jlc2lkZW50
S2V5KQorQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnMmIEF1dGhlbnRpY2F0b3JTdXBwb3J0
ZWRPcHRpb25zOjpzZXRSZXNpZGVudEtleUF2YWlsYWJpbGl0eShSZXNpZGVudEtleUF2YWlsYWJp
bGl0eSByZXNpZGVudEtleUF2YWlsYWJpbGl0eSkKIHsKLSAgICBtX3N1cHBvcnRzUmVzaWRlbnRL
ZXkgPSBzdXBwb3J0c1Jlc2lkZW50S2V5OworICAgIG1fcmVzaWRlbnRLZXlBdmFpbGFiaWxpdHkg
PSByZXNpZGVudEtleUF2YWlsYWJpbGl0eTsKICAgICByZXR1cm4gKnRoaXM7CiB9CiAKQEAgLTcx
LDcgKzcxLDcgQEAgY2Jvcjo6Q0JPUlZhbHVlIGNvbnZlcnRUb0NCT1IoY29uc3QgQXV0aGVudGlj
YXRvclN1cHBvcnRlZE9wdGlvbnMmIG9wdGlvbnMpCiAgICAgdXNpbmcgbmFtZXNwYWNlIGNib3I7
CiAKICAgICBDQk9SVmFsdWU6Ok1hcFZhbHVlIG9wdGlvbk1hcDsKLSAgICBvcHRpb25NYXAuZW1w
bGFjZShDQk9SVmFsdWUoa1Jlc2lkZW50S2V5TWFwS2V5KSwgQ0JPUlZhbHVlKG9wdGlvbnMuc3Vw
cG9ydHNSZXNpZGVudEtleSgpKSk7CisgICAgb3B0aW9uTWFwLmVtcGxhY2UoQ0JPUlZhbHVlKGtS
ZXNpZGVudEtleU1hcEtleSksIENCT1JWYWx1ZShvcHRpb25zLnJlc2lkZW50S2V5QXZhaWxhYmls
aXR5KCkgPT0gQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnM6OlJlc2lkZW50S2V5QXZhaWxh
YmlsaXR5OjprU3VwcG9ydGVkKSk7CiAgICAgb3B0aW9uTWFwLmVtcGxhY2UoQ0JPUlZhbHVlKGtV
c2VyUHJlc2VuY2VNYXBLZXkpLCBDQk9SVmFsdWUob3B0aW9ucy51c2VyUHJlc2VuY2VSZXF1aXJl
ZCgpKSk7CiAgICAgb3B0aW9uTWFwLmVtcGxhY2UoQ0JPUlZhbHVlKGtQbGF0Zm9ybURldmljZU1h
cEtleSksIENCT1JWYWx1ZShvcHRpb25zLmlzUGxhdGZvcm1EZXZpY2UoKSkpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8vQXV0aGVudGljYXRvclN1
cHBvcnRlZE9wdGlvbnMuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vZmlkby9B
dXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9ucy5oCmluZGV4IGVjNDBhZTRiZTQyNjE0YzcxNGU1
N2ZhZjZhNDQ2NWM3ZjJmZjk5MTYuLmJhMzBlODFmMDM3ZjgwNmMxY2MzNmUyMjcwYTZiMzk4Mzk4
MmQzOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vZmlkby9B
dXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9ucy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXV0aG4vZmlkby9BdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9ucy5oCkBAIC01MSw2
ICs1MSwxMSBAQCBwdWJsaWM6CiAgICAgICAgIGtOb3RTdXBwb3J0ZWQKICAgICB9OwogCisgICAg
ZW51bSBjbGFzcyBSZXNpZGVudEtleUF2YWlsYWJpbGl0eSA6IGJvb2wgeworICAgICAgICBrU3Vw
cG9ydGVkLAorICAgICAgICBrTm90U3VwcG9ydGVkCisgICAgfTsKKwogICAgIGVudW0gY2xhc3Mg
Q2xpZW50UGluQXZhaWxhYmlsaXR5IHsKICAgICAgICAga1N1cHBvcnRlZEFuZFBpblNldCwKICAg
ICAgICAga1N1cHBvcnRlZEJ1dFBpbk5vdFNldCwKQEAgLTYyLDE0ICs2NywxNCBAQCBwdWJsaWM6
CiAgICAgQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnMmIG9wZXJhdG9yPShBdXRoZW50aWNh
dG9yU3VwcG9ydGVkT3B0aW9ucyYmKSA9IGRlZmF1bHQ7CiAKICAgICBBdXRoZW50aWNhdG9yU3Vw
cG9ydGVkT3B0aW9ucyYgc2V0SXNQbGF0Zm9ybURldmljZShib29sKTsKLSAgICBBdXRoZW50aWNh
dG9yU3VwcG9ydGVkT3B0aW9ucyYgc2V0U3VwcG9ydHNSZXNpZGVudEtleShib29sKTsKKyAgICBB
dXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9ucyYgc2V0UmVzaWRlbnRLZXlBdmFpbGFiaWxpdHko
UmVzaWRlbnRLZXlBdmFpbGFiaWxpdHkpOwogICAgIEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRp
b25zJiBzZXRVc2VyVmVyaWZpY2F0aW9uQXZhaWxhYmlsaXR5KFVzZXJWZXJpZmljYXRpb25BdmFp
bGFiaWxpdHkpOwogICAgIEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zJiBzZXRVc2VyUHJl
c2VuY2VSZXF1aXJlZChib29sKTsKICAgICBBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9ucyYg
c2V0Q2xpZW50UGluQXZhaWxhYmlsaXR5KENsaWVudFBpbkF2YWlsYWJpbGl0eSk7CiAKICAgICBi
b29sIGlzUGxhdGZvcm1EZXZpY2UoKSBjb25zdCB7IHJldHVybiBtX2lzUGxhdGZvcm1EZXZpY2U7
IH0KLSAgICBib29sIHN1cHBvcnRzUmVzaWRlbnRLZXkoKSBjb25zdCB7IHJldHVybiBtX3N1cHBv
cnRzUmVzaWRlbnRLZXk7IH0KLSAgICBVc2VyVmVyaWZpY2F0aW9uQXZhaWxhYmlsaXR5IHVzZXJW
ZXJpZmljYXRpb25BdmFpbGFiaWxpdHkoKSBjb25zdCB7IHJldHVybiBtX3VzZXJWZXJpZmljYXRp
b25BdmFpbGFiaWxpdHk7IH0KKyAgICBSZXNpZGVudEtleUF2YWlsYWJpbGl0eSByZXNpZGVudEtl
eUF2YWlsYWJpbGl0eSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVzaWRlbnRLZXlBdmFpbGFiaWxpdHk7
IH07CisgICAgVXNlclZlcmlmaWNhdGlvbkF2YWlsYWJpbGl0eSB1c2VyVmVyaWZpY2F0aW9uQXZh
aWxhYmlsaXR5KCkgY29uc3QgeyByZXR1cm4gbV91c2VyVmVyaWZpY2F0aW9uQXZhaWxhYmlsaXR5
OyB9OwogICAgIGJvb2wgdXNlclByZXNlbmNlUmVxdWlyZWQoKSBjb25zdCB7IHJldHVybiBtX3Vz
ZXJQcmVzZW5jZVJlcXVpcmVkOyB9CiAgICAgQ2xpZW50UGluQXZhaWxhYmlsaXR5IGNsaWVudFBp
bkF2YWlsYWJpbGl0eSgpIGNvbnN0IHsgcmV0dXJuIG1fY2xpZW50UGluQXZhaWxhYmlsaXR5OyB9
CiAKQEAgLTgwLDcgKzg1LDcgQEAgcHJpdmF0ZToKICAgICAvLyBJbmRpY2F0ZXMgdGhhdCB0aGUg
ZGV2aWNlIGlzIGNhcGFibGUgb2Ygc3RvcmluZyBrZXlzIG9uIHRoZSBkZXZpY2UgaXRzZWxmCiAg
ICAgLy8gYW5kIHRoZXJlZm9yZSBjYW4gc2F0aXNmeSB0aGUgYXV0aGVudGljYXRvckdldEFzc2Vy
dGlvbiByZXF1ZXN0IHdpdGgKICAgICAvLyBhbGxvd0xpc3QgcGFyYW1ldGVyIG5vdCBzcGVjaWZp
ZWQgb3IgZW1wdHkuCi0gICAgYm9vbCBtX3N1cHBvcnRzUmVzaWRlbnRLZXkgeyBmYWxzZSB9Owor
ICAgIFJlc2lkZW50S2V5QXZhaWxhYmlsaXR5IG1fcmVzaWRlbnRLZXlBdmFpbGFiaWxpdHkgeyBS
ZXNpZGVudEtleUF2YWlsYWJpbGl0eTo6a05vdFN1cHBvcnRlZCB9OwogICAgIC8vIEluZGljYXRl
cyB3aGV0aGVyIHRoZSBkZXZpY2UgaXMgY2FwYWJsZSBvZiB2ZXJpZnlpbmcgdGhlIHVzZXIgb24g
aXRzIG93bi4KICAgICBVc2VyVmVyaWZpY2F0aW9uQXZhaWxhYmlsaXR5IG1fdXNlclZlcmlmaWNh
dGlvbkF2YWlsYWJpbGl0eSB7IFVzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHk6OmtOb3RTdXBw
b3J0ZWQgfTsKICAgICBib29sIG1fdXNlclByZXNlbmNlUmVxdWlyZWQgeyB0cnVlIH07CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8vRGV2aWNlUmVxdWVz
dENvbnZlcnRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8vRGV2
aWNlUmVxdWVzdENvbnZlcnRlci5jcHAKaW5kZXggMzI5ZjJhMWRhMWI3ZjkwMzQ2MzEyODc4YjYz
MDYyYzZlNDIyOGQ0OS4uMDk0ZTQ0MmM3ZjE3NTg0ZjUxN2RmNTA3NDBhMDdhYzM3NmE0NTg5YSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9maWRvL0RldmljZVJl
cXVlc3RDb252ZXJ0ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4v
Zmlkby9EZXZpY2VSZXF1ZXN0Q29udmVydGVyLmNwcApAQCAtMzUsNiArMzUsNyBAQAogI2luY2x1
ZGUgIkNCT1JXcml0ZXIuaCIKICNpbmNsdWRlICJQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25P
cHRpb25zLmgiCiAjaW5jbHVkZSAiUHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zLmgi
CisjaW5jbHVkZSAiUmVzaWRlbnRLZXlSZXF1aXJlbWVudC5oIgogI2luY2x1ZGUgPHd0Zi9WZWN0
b3IuaD4KIAogbmFtZXNwYWNlIGZpZG8gewpAQCAtODUsNyArODYsNyBAQCBzdGF0aWMgQ0JPUlZh
bHVlIGNvbnZlcnREZXNjcmlwdG9yVG9DQk9SKGNvbnN0IFB1YmxpY0tleUNyZWRlbnRpYWxEZXNj
cmlwdG9yJiBkZQogICAgIHJldHVybiBDQk9SVmFsdWUoV1RGTW92ZShjYm9yRGVzY3JpcHRvck1h
cCkpOwogfQogCi1WZWN0b3I8dWludDhfdD4gZW5jb2RlTWFrZUNyZWRlbml0YWxSZXF1ZXN0QXND
Qk9SKGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgaGFzaCwgY29uc3QgUHVibGljS2V5Q3JlZGVudGlh
bENyZWF0aW9uT3B0aW9ucyYgb3B0aW9ucywgVVZBdmFpbGFiaWxpdHkgdXZDYXBhYmlsaXR5LCBz
dGQ6Om9wdGlvbmFsPFBpblBhcmFtZXRlcnM+IHBpbikKK1ZlY3Rvcjx1aW50OF90PiBlbmNvZGVN
YWtlQ3JlZGVuaXRhbFJlcXVlc3RBc0NCT1IoY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBoYXNoLCBj
b25zdCBQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zJiBvcHRpb25zLCBVVkF2YWls
YWJpbGl0eSB1dkNhcGFiaWxpdHksIEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zOjpSZXNp
ZGVudEtleUF2YWlsYWJpbGl0eSByZXNpZGVudEtleUF2YWlsYWJpbGl0eSwgc3RkOjpvcHRpb25h
bDxQaW5QYXJhbWV0ZXJzPiBwaW4pCiB7CiAgICAgQ0JPUlZhbHVlOjpNYXBWYWx1ZSBjYm9yTWFw
OwogICAgIGNib3JNYXBbQ0JPUlZhbHVlKDEpXSA9IENCT1JWYWx1ZShoYXNoKTsKQEAgLTEwMiw3
ICsxMDMsMTEgQEAgVmVjdG9yPHVpbnQ4X3Q+IGVuY29kZU1ha2VDcmVkZW5pdGFsUmVxdWVzdEFz
Q0JPUihjb25zdCBWZWN0b3I8dWludDhfdD4mIGhhc2gsIGMKICAgICBDQk9SVmFsdWU6Ok1hcFZh
bHVlIG9wdGlvbk1hcDsKICAgICBpZiAob3B0aW9ucy5hdXRoZW50aWNhdG9yU2VsZWN0aW9uKSB7
CiAgICAgICAgIC8vIFJlc2lkZW50IGtleXMgYXJlIG5vdCBzdXBwb3J0ZWQgYnkgZGVmYXVsdC4K
LSAgICAgICAgaWYgKG9wdGlvbnMuYXV0aGVudGljYXRvclNlbGVjdGlvbi0+cmVxdWlyZVJlc2lk
ZW50S2V5KQorICAgICAgICBpZiAob3B0aW9ucy5hdXRoZW50aWNhdG9yU2VsZWN0aW9uLT5yZXNp
ZGVudEtleSkgeworICAgICAgICAgICAgaWYgKCpvcHRpb25zLmF1dGhlbnRpY2F0b3JTZWxlY3Rp
b24tPnJlc2lkZW50S2V5ID09IFJlc2lkZW50S2V5UmVxdWlyZW1lbnQ6OlJlcXVpcmVkCisgICAg
ICAgICAgICAgICAgfHwgKCpvcHRpb25zLmF1dGhlbnRpY2F0b3JTZWxlY3Rpb24tPnJlc2lkZW50
S2V5ID09IFJlc2lkZW50S2V5UmVxdWlyZW1lbnQ6OlByZWZlcnJlZCAmJiByZXNpZGVudEtleUF2
YWlsYWJpbGl0eSA9PSBBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9uczo6UmVzaWRlbnRLZXlB
dmFpbGFiaWxpdHk6OmtTdXBwb3J0ZWQpKQorICAgICAgICAgICAgICAgIG9wdGlvbk1hcFtDQk9S
VmFsdWUoa1Jlc2lkZW50S2V5TWFwS2V5KV0gPSBDQk9SVmFsdWUodHJ1ZSk7CisgICAgICAgIH0g
ZWxzZSBpZiAob3B0aW9ucy5hdXRoZW50aWNhdG9yU2VsZWN0aW9uLT5yZXF1aXJlUmVzaWRlbnRL
ZXkpCiAgICAgICAgICAgICBvcHRpb25NYXBbQ0JPUlZhbHVlKGtSZXNpZGVudEtleU1hcEtleSld
ID0gQ0JPUlZhbHVlKHRydWUpOwogCiAgICAgICAgIC8vIFVzZXIgdmVyaWZpY2F0aW9uIGlzIG5v
dCByZXF1aXJlZCBieSBkZWZhdWx0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdXRobi9maWRvL0RldmljZVJlcXVlc3RDb252ZXJ0ZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXV0aG4vZmlkby9EZXZpY2VSZXF1ZXN0Q29udmVydGVyLmgKaW5kZXggNzlm
MmE4YWY5Zjc4NWU1ZTZmZmYwZjBhZmZiNTU0MGViZTczMGQzZS4uYzFhNDVkMTc1YzdmYjdjNGEx
MTUxOTcwOWQ5YzQ3Mzc5OTJhN2ViNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdXRobi9maWRvL0RldmljZVJlcXVlc3RDb252ZXJ0ZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8vRGV2aWNlUmVxdWVzdENvbnZlcnRlci5oCkBAIC01
MCw3ICs1MCw3IEBAIHN0cnVjdCBQaW5QYXJhbWV0ZXJzIHsKIC8vIFNlcmlhbGl6ZXMgTWFrZUNy
ZWRlbnRpYWwgcmVxdWVzdCBwYXJhbWV0ZXIgaW50byBDQk9SIGVuY29kZWQgbWFwIHdpdGgKIC8v
IGludGVnZXIga2V5cyBhbmQgQ0JPUiBlbmNvZGVkIHZhbHVlcyBhcyBkZWZpbmVkIGJ5IHRoZSBD
VEFQIHNwZWMuCiAvLyBodHRwczovL2ZpZG9hbGxpYW5jZS5vcmcvc3BlY3MvZmlkby12Mi4wLXBz
LTIwMTcwOTI3L2ZpZG8tY2xpZW50LXRvLWF1dGhlbnRpY2F0b3ItcHJvdG9jb2wtdjIuMC1wcy0y
MDE3MDkyNy5odG1sI2F1dGhlbnRpY2F0b3JNYWtlQ3JlZGVudGlhbAotV0VCQ09SRV9FWFBPUlQg
VmVjdG9yPHVpbnQ4X3Q+IGVuY29kZU1ha2VDcmVkZW5pdGFsUmVxdWVzdEFzQ0JPUihjb25zdCBW
ZWN0b3I8dWludDhfdD4mIGhhc2gsIGNvbnN0IFdlYkNvcmU6OlB1YmxpY0tleUNyZWRlbnRpYWxD
cmVhdGlvbk9wdGlvbnMmLCBBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9uczo6VXNlclZlcmlm
aWNhdGlvbkF2YWlsYWJpbGl0eSwgc3RkOjpvcHRpb25hbDxQaW5QYXJhbWV0ZXJzPiA9IHN0ZDo6
bnVsbG9wdCk7CitXRUJDT1JFX0VYUE9SVCBWZWN0b3I8dWludDhfdD4gZW5jb2RlTWFrZUNyZWRl
bml0YWxSZXF1ZXN0QXNDQk9SKGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgaGFzaCwgY29uc3QgV2Vi
Q29yZTo6UHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucyYsIEF1dGhlbnRpY2F0b3JT
dXBwb3J0ZWRPcHRpb25zOjpVc2VyVmVyaWZpY2F0aW9uQXZhaWxhYmlsaXR5LCBBdXRoZW50aWNh
dG9yU3VwcG9ydGVkT3B0aW9uczo6UmVzaWRlbnRLZXlBdmFpbGFiaWxpdHksIHN0ZDo6b3B0aW9u
YWw8UGluUGFyYW1ldGVycz4gPSBzdGQ6Om51bGxvcHQpOwogCiAvLyBTZXJpYWxpemVzIEdldEFz
c2VydGlvbiByZXF1ZXN0IHBhcmFtZXRlciBpbnRvIENCT1IgZW5jb2RlZCBtYXAgd2l0aAogLy8g
aW50ZWdlciBrZXlzIGFuZCBDQk9SIGVuY29kZWQgdmFsdWVzIGFzIGRlZmluZWQgYnkgdGhlIENU
QVAgc3BlYy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vZmlk
by9EZXZpY2VSZXNwb25zZUNvbnZlcnRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1dGhuL2ZpZG8vRGV2aWNlUmVzcG9uc2VDb252ZXJ0ZXIuY3BwCmluZGV4IDkzMmZmMDgyY2U4
NzdiZWYwNDU5MTQ2MDRlODQ2ZWQxNjcyOWU2M2IuLmYyMWM1ZWU3YTI1ZjVlOTI3NTQ0MzFkMzU0
YTg3YThkMjFjNTgzYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0
aG4vZmlkby9EZXZpY2VSZXNwb25zZUNvbnZlcnRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdXRobi9maWRvL0RldmljZVJlc3BvbnNlQ29udmVydGVyLmNwcApAQCAtMjY0
LDggKzI2NCwxMCBAQCBzdGQ6Om9wdGlvbmFsPEF1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2U+
IHJlYWRDVEFQR2V0SW5mb1Jlc3BvbnNlKGNvbnN0IFZlY3RvcgogICAgICAgICBpZiAob3B0aW9u
TWFwSXQgIT0gb3B0aW9uTWFwLmVuZCgpKSB7CiAgICAgICAgICAgICBpZiAoIW9wdGlvbk1hcEl0
LT5zZWNvbmQuaXNCb29sKCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsK
LQotICAgICAgICAgICAgb3B0aW9ucy5zZXRTdXBwb3J0c1Jlc2lkZW50S2V5KG9wdGlvbk1hcEl0
LT5zZWNvbmQuZ2V0Qm9vbCgpKTsKKyAgICAgICAgICAgIGlmIChvcHRpb25NYXBJdC0+c2Vjb25k
LmdldEJvb2woKSkKKyAgICAgICAgICAgICAgICBvcHRpb25zLnNldFJlc2lkZW50S2V5QXZhaWxh
YmlsaXR5KEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zOjpSZXNpZGVudEtleUF2YWlsYWJp
bGl0eTo6a1N1cHBvcnRlZCk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgb3B0
aW9ucy5zZXRSZXNpZGVudEtleUF2YWlsYWJpbGl0eShBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0
aW9uczo6UmVzaWRlbnRLZXlBdmFpbGFiaWxpdHk6OmtOb3RTdXBwb3J0ZWQpOwogICAgICAgICB9
CiAKICAgICAgICAgb3B0aW9uTWFwSXQgPSBvcHRpb25NYXAuZmluZChDQk9SKGtVc2VyUHJlc2Vu
Y2VNYXBLZXkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291
cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggZDJkNGM3MmUxMmI2YTJlMGE1MjFmODRhOWI4
ZWUxN2MwZjYwNTJhOC4uNDdmYzVkM2Q1NzMxYmI3NjBlYmI1ZDJiYzlhNjdlNzIxODBlZWE5NSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNv
cmUvU291cmNlcy50eHQKQEAgLTM3MDAsNiArMzcwMCw3IEBAIEpTUmVtb3RlUGxheWJhY2suY3Bw
CiBKU1JlbW90ZVBsYXliYWNrQXZhaWxhYmlsaXR5Q2FsbGJhY2suY3BwCiBKU1JlcXVlc3RBbmlt
YXRpb25GcmFtZUNhbGxiYWNrLmNwcAogSlNSZXF1ZXN0Q29va2llQ29uc2VudE9wdGlvbnMuY3Bw
CitKU1Jlc2lkZW50S2V5UmVxdWlyZW1lbnQuY3BwCiBKU1Jlc2l6ZU9ic2VydmVyLmNwcAogSlNS
ZXNpemVPYnNlcnZlckJveE9wdGlvbnMuY3BwCiBKU1Jlc2l6ZU9ic2VydmVyQ2FsbGJhY2suY3Bw
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
aW5kZXggZWFlYTM4Mjk1YzlhZjQ0MTZmMzhhNTY5YWNjNmNlNDk5ZTAwMWNlNi4uYWNjNGJlNzdh
ZGYyYjdjZDI1ODFmNzkzMmUxYTdiMzAxM2U2NTk4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTcyOSw2ICsxNzI5LDcgQEAK
IAkJNTFGQTJFREYyNzUwNkZERTAwMTFDMTVEIC8qIFNoYXJlZEJ1ZmZlckNodW5rUmVhZGVyLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUZBMkVENjI3
NEY3ODM3MDAxMUMxNUQgLyogU2hhcmVkQnVmZmVyQ2h1bmtSZWFkZXIuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1MUZCNTUwNDExM0UzRTkxMDA4
MjExNzYgLyogSlNDbG9zZUV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1MUZCNTUwMjExM0UzRTkxMDA4MjExNzYgLyogSlNDbG9zZUV2ZW50Lmgg
Ki87IH07CiAJCTUxRkI2N0RDMUFFNkI4MkYwMEQwNkM1QSAvKiBDb250ZW50RXh0ZW5zaW9uU3R5
bGVTaGVldC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NTFGQjY3REExQUU2QjVFNDAwRDA2QzVBIC8qIENvbnRlbnRFeHRlbnNpb25TdHlsZVNoZWV0Lmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNTI2ODhB
QTYyN0Q2QTdEQTAwMzU3N0EyIC8qIFJlc2lkZW50S2V5UmVxdWlyZW1lbnQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUyNjg4QUEzMjdENkE3REEwMDM1
NzdBMiAvKiBSZXNpZGVudEtleVJlcXVpcmVtZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTI3M0NDNzcyNTYxMDNDRjAwODUwMDA3IC8qIFBs
YXRmb3JtWFJDb2NvYS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNTI3M0NDNzUyNTYxMDNDRjAwODUwMDA3IC8qIFBsYXRmb3JtWFJDb2NvYS5oICovOyB9
OwogCQk1MjczQ0M4RTI1NjM3RUI1MDA4NTAwMDcgLyogV2ViWFJUZXN0LmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxOEQ4M0UwMjQzRjcxQ0UwMDky
NDdENiAvKiBXZWJYUlRlc3QuY3BwICovOyB9OwogCQk1MjczQ0M5MDI1NjM3RjY3MDA4NTAwMDcg
LyogV2ViRmFrZVhSRGV2aWNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEUxOEQ4M0U5MjQzRjcxRDMwMDkyNDdENiAvKiBXZWJGYWtlWFJEZXZpY2Uu
Y3BwICovOyB9OwpAQCAtMTAwNzgsNiArMTAwNzksOCBAQAogCQk1MjEzMUU1QTFDNEYxNTYxMDAz
M0Y4MDIgLyogVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFjLm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFjLm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MjY3MjRGMTFDQjJGREY2MDA3NTk3NEQgLyog
VGV4dFRyYWNrUmVwcmVzZW50YXRpb25Db2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
Lm9iamNwcDsgcGF0aCA9IFRleHRUcmFja1JlcHJlc2VudGF0aW9uQ29jb2EubW07IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUyNjcyNEYyMUNCMkZERjYwMDc1OTc0RCAvKiBUZXh0VHJh
Y2tSZXByZXNlbnRhdGlvbkNvY29hLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFRleHRUcmFja1JlcHJlc2VudGF0aW9uQ29jb2EuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJNTI2ODhBQTMyN0Q2QTdEQTAwMzU3N0EyIC8qIFJlc2lkZW50S2V5UmVxdWlyZW1lbnQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gUmVzaWRlbnRLZXlSZXF1aXJlbWVudC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk1MjY4OEFBNTI3RDZBN0RBMDAzNTc3QTIgLyogUmVzaWRlbnRLZXlS
ZXF1aXJlbWVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVzaWRlbnRLZXlSZXF1aXJlbWVudC5pZGw7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUyNzNDQzc0MjU2MTAzQ0YwMDg1MDAwNyAvKiBQbGF0Zm9y
bVhSQ29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBQbGF0Zm9ybVhSQ29jb2EubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUyNzNDQzc1MjU2MTAzQ0YwMDg1MDAwNyAvKiBQ
bGF0Zm9ybVhSQ29jb2EuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGxhdGZvcm1YUkNvY29hLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUyNzNDQzlBMjU2M0IyMTIwMDg1MDAwNyAvKiBKU1dl
YlhSVGVzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1dlYlhS
VGVzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMzMyNiw2ICsyMzMyOSw4
IEBACiAJCQkJNTczMDNDMDgyMDA5OThGODAwMzU1OTY1IC8qIFB1YmxpY0tleUNyZWRlbnRpYWxS
ZXF1ZXN0T3B0aW9ucy5pZGwgKi8sCiAJCQkJNTczMDNCRUEyMDA5N0Y0MDAwMzU1OTY1IC8qIFB1
YmxpY0tleUNyZWRlbnRpYWxUeXBlLmggKi8sCiAJCQkJNTczMDNCRjAyMDA5ODQ2MTAwMzU1OTY1
IC8qIFB1YmxpY0tleUNyZWRlbnRpYWxUeXBlLmlkbCAqLywKKwkJCQk1MjY4OEFBMzI3RDZBN0RB
MDAzNTc3QTIgLyogUmVzaWRlbnRLZXlSZXF1aXJlbWVudC5oICovLAorCQkJCTUyNjg4QUE1MjdE
NkE3REEwMDM1NzdBMiAvKiBSZXNpZGVudEtleVJlcXVpcmVtZW50LmlkbCAqLywKIAkJCQk1NzJC
NDAyMzIxNzY4RDg1MDAwQUQ0M0UgLyogVXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50LmggKi8s
CiAJCQkJNTcyQjQwMjUyMTc2OEQ4NTAwMEFENDNFIC8qIFVzZXJWZXJpZmljYXRpb25SZXF1aXJl
bWVudC5pZGwgKi8sCiAJCQkJNTc0RjU1REMyMDRGMzczMjAwMjk0OEM2IC8qIFdlYkF1dGhlbnRp
Y2F0aW9uQ29uc3RhbnRzLmggKi8sCkBAIC0zNzA1OSw2ICszNzA2NCw3IEBACiAJCQkJNDk5OEFF
QzYxM0Y5RDBFQTAwOTBCMUFBIC8qIFJlcXVlc3RBbmltYXRpb25GcmFtZUNhbGxiYWNrLmggaW4g
SGVhZGVycyAqLywKIAkJCQlGNDAzNEZBQzI3NUVBRDZFMDAzQTgxRjggLyogUmVxdWVzdENvb2tp
ZUNvbnNlbnRPcHRpb25zLmggaW4gSGVhZGVycyAqLywKIAkJCQlGNTVCM0REMDEyNTFGMTJEMDAz
RUYyNjkgLyogUmVzZXRJbnB1dFR5cGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTUyNjg4QUE2MjdE
NkE3REEwMDM1NzdBMiAvKiBSZXNpZGVudEtleVJlcXVpcmVtZW50LmggaW4gSGVhZGVycyAqLywK
IAkJCQk1OEIyRjlGNDIyMzJENDUzMDA5MzhENjMgLyogUmVzaXplT2JzZXJ2YXRpb24uaCBpbiBI
ZWFkZXJzICovLAogCQkJCTU4QjJGOUY1MjIzMkQ0NTgwMDkzOEQ2MyAvKiBSZXNpemVPYnNlcnZl
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZENkE2OEMyNkVFQzM3RjAwN0IyMjMxIC8qIFJlc2l6
ZU9ic2VydmVyQm94T3B0aW9ucy5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQXV0aGVudGljYXRvclNlbGVjdGlvbkNyaXRl
cmlhLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQXV0aGVudGljYXRv
clNlbGVjdGlvbkNyaXRlcmlhLmgKaW5kZXggZmQ4YzI2NGIzYzFjMmEzMWUxNzNkYzFiODEzNjA1
Njc2NjYwYzQ1OC4uMzcyMWI3ZmI0YTVmOTNkMmE4NjcyNWZhMjFmMzRmZjRmNmQ3ZmM5NiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0F1dGhlbnRpY2F0
b3JTZWxlY3Rpb25Dcml0ZXJpYS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9fV0tBdXRoZW50aWNhdG9yU2VsZWN0aW9uQ3JpdGVyaWEuaApAQCAtMjksNiArMjksOCBA
QAogCiAjaW1wb3J0IDxGb3VuZGF0aW9uL0ZvdW5kYXRpb24uaD4KICNpbXBvcnQgPFdlYktpdC9f
V0tBdXRoZW50aWNhdG9yQXR0YWNobWVudC5oPgorI2ltcG9ydCA8V2ViS2l0L19XS1Jlc2lkZW50
S2V5UmVxdWlyZW1lbnQuaD4KKwogI2ltcG9ydCA8V2ViS2l0L19XS1VzZXJWZXJpZmljYXRpb25S
ZXF1aXJlbWVudC5oPgogCiBOU19BU1NVTUVfTk9OTlVMTF9CRUdJTgpAQCAtMzksNiArNDEsOSBA
QCBXS19DTEFTU19BVkFJTEFCTEUobWFjb3MoMTIuMCksIGlvcygxNS4wKSkKIC8qIUBkaXNjdXNz
aW9uIFRoZSBkZWZhdWx0IHZhbHVlIGlzIF9XS0F1dGhlbnRpY2F0b3JBdHRhY2htZW50QWxsLiov
CiBAcHJvcGVydHkgKG5vbmF0b21pYykgX1dLQXV0aGVudGljYXRvckF0dGFjaG1lbnQgYXV0aGVu
dGljYXRvckF0dGFjaG1lbnQ7CiAKKy8qIChAZGlzY3Vzc2lvbiBUaGUgZGVmYXVsdCB2YWx1ZSBp
cyBfV0tSZXNpZGVudEtleVJlcXVpcmVtZW50Tm90UHJlc2VudCAqLworQHByb3BlcnR5IChub25h
dG9taWMpIF9XS1Jlc2lkZW50S2V5UmVxdWlyZW1lbnQgcmVzaWRlbnRLZXkgV0tfQVBJX0FWQUlM
QUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKwogLyohQGRpc2N1c3Np
b24gVGhlIGRlZmF1bHQgdmFsdWUgaXMgTk8uKi8KIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09M
IHJlcXVpcmVSZXNpZGVudEtleTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL19XS0F1dGhlbnRpY2F0b3JTZWxlY3Rpb25Dcml0ZXJpYS5tbSBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBdXRoZW50aWNhdG9yU2VsZWN0aW9uQ3Jp
dGVyaWEubW0KaW5kZXggODhkMDQzZGU1MDc0NzZjMDQ3YmE4M2M4ODAyZmFkZDA3ZGM4NzgxYi4u
ZjY3YmJmODI1YjcyYWNjOWM4NjkyZDcyY2FlMzFmMjk0NWIyOGFhNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0F1dGhlbnRpY2F0b3JTZWxlY3Rpb25D
cml0ZXJpYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQXV0
aGVudGljYXRvclNlbGVjdGlvbkNyaXRlcmlhLm1tCkBAIC0zNCw2ICszNCw3IEBACiAgICAgICAg
IHJldHVybiBuaWw7CiAKICAgICBzZWxmLmF1dGhlbnRpY2F0b3JBdHRhY2htZW50ID0gX1dLQXV0
aGVudGljYXRvckF0dGFjaG1lbnRBbGw7CisgICAgc2VsZi5yZXNpZGVudEtleSA9IF9XS1Jlc2lk
ZW50S2V5UmVxdWlyZW1lbnROb3RQcmVzZW50OwogICAgIHNlbGYucmVxdWlyZVJlc2lkZW50S2V5
ID0gTk87CiAgICAgc2VsZi51c2VyVmVyaWZpY2F0aW9uID0gX1dLVXNlclZlcmlmaWNhdGlvblJl
cXVpcmVtZW50UHJlZmVycmVkOwogICAgIHJldHVybiBzZWxmOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1Jlc2lkZW50S2V5UmVxdWlyZW1lbnQuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tSZXNpZGVudEtleVJlcXVpcmVt
ZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZjU1YjhkZGQ3ZWE1ZjRjMWU3NDYwZWIyYzIwOTI5Y2I2NWY4YWFi
OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9f
V0tSZXNpZGVudEtleVJlcXVpcmVtZW50LmgKQEAgLTAsMCArMSwzNSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAyMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNwcmFnbWEgb25jZQorCisjaW1wb3J0IDxXZWJLaXQvV0tGb3VuZGF0aW9uLmg+CisKK3R5cGVk
ZWYgTlNfRU5VTShOU0ludGVnZXIsIF9XS1Jlc2lkZW50S2V5UmVxdWlyZW1lbnQpIHsKKyAgICBf
V0tSZXNpZGVudEtleVJlcXVpcmVtZW50Tm90UHJlc2VudCwKKyAgICBfV0tSZXNpZGVudEtleVJl
cXVpcmVtZW50UmVxdWlyZWQsCisgICAgX1dLUmVzaWRlbnRLZXlSZXF1aXJlbWVudFByZWZlcnJl
ZCwKKyAgICBfV0tSZXNpZGVudEtleVJlcXVpcmVtZW50RGlzY291cmFnZWQsCit9IFdLX0FQSV9B
VkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2ViQXV0aGVudGljYXRpb25Q
YW5lbC5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJBdXRoZW50
aWNhdGlvblBhbmVsLm1tCmluZGV4IDRkN2M3NmQ4MzhlYjNlMTgyNWY4MzFhODA3ZjdlNDg1ZTE4
MDllODEuLjYwY2YxMWUzODNmOTFlOWM0OTA1ZWIyMjFiNDYwZTlmMjhiODhlNzMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJBdXRoZW50aWNhdGlv
blBhbmVsLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJB
dXRoZW50aWNhdGlvblBhbmVsLm1tCkBAIC03MzUsMTAgKzczNSwyOCBAQCBzdGF0aWMgV2ViQ29y
ZTo6VXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50IHVzZXJWZXJpZmljYXRpb24oX1dLVXNlclZl
cmlmaWNhdGlvbgogICAgIH0KIH0KIAorc3RhdGljIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UmVz
aWRlbnRLZXlSZXF1aXJlbWVudD4gdG9XZWJDb3JlKF9XS1Jlc2lkZW50S2V5UmVxdWlyZW1lbnQg
dXYpCit7CisgICAgc3dpdGNoICh1dikgeworICAgIGNhc2UgX1dLUmVzaWRlbnRLZXlSZXF1aXJl
bWVudE5vdFByZXNlbnQ6CisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgY2FzZSBf
V0tSZXNpZGVudEtleVJlcXVpcmVtZW50UmVxdWlyZWQ6CisgICAgICAgIHJldHVybiBXZWJDb3Jl
OjpSZXNpZGVudEtleVJlcXVpcmVtZW50OjpSZXF1aXJlZDsKKyAgICBjYXNlIF9XS1Jlc2lkZW50
S2V5UmVxdWlyZW1lbnRQcmVmZXJyZWQ6CisgICAgICAgIHJldHVybiBXZWJDb3JlOjpSZXNpZGVu
dEtleVJlcXVpcmVtZW50OjpQcmVmZXJyZWQ7CisgICAgY2FzZSBfV0tSZXNpZGVudEtleVJlcXVp
cmVtZW50RGlzY291cmFnZWQ6CisgICAgICAgIHJldHVybiBXZWJDb3JlOjpSZXNpZGVudEtleVJl
cXVpcmVtZW50OjpEaXNjb3VyYWdlZDsKKyAgICBkZWZhdWx0OgorICAgICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OlJlc2lkZW50S2V5UmVxdWlyZW1l
bnQ6OlByZWZlcnJlZDsKKyAgICB9Cit9CisKIHN0YXRpYyBXZWJDb3JlOjpQdWJsaWNLZXlDcmVk
ZW50aWFsQ3JlYXRpb25PcHRpb25zOjpBdXRoZW50aWNhdG9yU2VsZWN0aW9uQ3JpdGVyaWEgYXV0
aGVudGljYXRvclNlbGVjdGlvbkNyaXRlcmlhKF9XS0F1dGhlbnRpY2F0b3JTZWxlY3Rpb25Dcml0
ZXJpYSAqYXV0aGVudGljYXRvclNlbGVjdGlvbikKIHsKICAgICBXZWJDb3JlOjpQdWJsaWNLZXlD
cmVkZW50aWFsQ3JlYXRpb25PcHRpb25zOjpBdXRoZW50aWNhdG9yU2VsZWN0aW9uQ3JpdGVyaWEg
cmVzdWx0OwogICAgIHJlc3VsdC5hdXRoZW50aWNhdG9yQXR0YWNobWVudCA9IGF1dGhlbnRpY2F0
b3JBdHRhY2htZW50KGF1dGhlbnRpY2F0b3JTZWxlY3Rpb24uYXV0aGVudGljYXRvckF0dGFjaG1l
bnQpOworICAgIHJlc3VsdC5yZXNpZGVudEtleSA9IHRvV2ViQ29yZShhdXRoZW50aWNhdG9yU2Vs
ZWN0aW9uLnJlc2lkZW50S2V5KTsKICAgICByZXN1bHQucmVxdWlyZVJlc2lkZW50S2V5ID0gYXV0
aGVudGljYXRvclNlbGVjdGlvbi5yZXF1aXJlUmVzaWRlbnRLZXk7CiAgICAgcmVzdWx0LnVzZXJW
ZXJpZmljYXRpb24gPSB1c2VyVmVyaWZpY2F0aW9uKGF1dGhlbnRpY2F0b3JTZWxlY3Rpb24udXNl
clZlcmlmaWNhdGlvbik7CiAKQEAgLTkzMCw3ICs5NDgsNyBAQCBzdGF0aWMgUmV0YWluUHRyPF9X
S0F1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwb25zZT4gd2tBdXRoZW50aWNhdG9yQXNzZXJ0aW9u
UmVzcAogI2lmIEVOQUJMRShXRUJfQVVUSE4pCiAgICAgYXV0byBoYXNoID0gcHJvZHVjZUNsaWVu
dERhdGFKc29uSGFzaChjbGllbnREYXRhSlNPTik7CiAKLSAgICBhdXRvIGVuY29kZWRWZWN0b3Ig
PSBmaWRvOjplbmNvZGVNYWtlQ3JlZGVuaXRhbFJlcXVlc3RBc0NCT1IoaGFzaCwgW19XS1dlYkF1
dGhlbnRpY2F0aW9uUGFuZWwgY29udmVydFRvQ29yZUNyZWF0aW9uT3B0aW9uc1dpdGhPcHRpb25z
Om9wdGlvbnNdLCBjb3JlVXNlclZlcmlmaWNhdGlvbkF2YWlsYWJpbGl0eSh1c2VyVmVyaWZpY2F0
aW9uQXZhaWxhYmlsaXR5KSwgc3RkOjpudWxsb3B0KTsKKyAgICBhdXRvIGVuY29kZWRWZWN0b3Ig
PSBmaWRvOjplbmNvZGVNYWtlQ3JlZGVuaXRhbFJlcXVlc3RBc0NCT1IoaGFzaCwgW19XS1dlYkF1
dGhlbnRpY2F0aW9uUGFuZWwgY29udmVydFRvQ29yZUNyZWF0aW9uT3B0aW9uc1dpdGhPcHRpb25z
Om9wdGlvbnNdLCBjb3JlVXNlclZlcmlmaWNhdGlvbkF2YWlsYWJpbGl0eSh1c2VyVmVyaWZpY2F0
aW9uQXZhaWxhYmlsaXR5KSwgZmlkbzo6QXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnM6OlJl
c2lkZW50S2V5QXZhaWxhYmlsaXR5OjprU3VwcG9ydGVkLCBzdGQ6Om51bGxvcHQpOwogICAgIGVu
Y29kZWRDb21tYW5kID0gYWRvcHROUyhbW05TRGF0YSBhbGxvY10gaW5pdFdpdGhCeXRlczplbmNv
ZGVkVmVjdG9yLmRhdGEoKSBsZW5ndGg6ZW5jb2RlZFZlY3Rvci5zaXplKCldKTsKICNlbmRpZgog
CkBAIC05NTUsNyArOTczLDcgQEAgc3RhdGljIFJldGFpblB0cjxfV0tBdXRoZW50aWNhdG9yQXNz
ZXJ0aW9uUmVzcG9uc2U+IHdrQXV0aGVudGljYXRvckFzc2VydGlvblJlc3AKIHsKICAgICBSZXRh
aW5QdHI8TlNEYXRhPiBlbmNvZGVkQ29tbWFuZDsKICNpZiBFTkFCTEUoV0VCX0FVVEhOKQotICAg
IGF1dG8gZW5jb2RlZFZlY3RvciA9IGZpZG86OmVuY29kZU1ha2VDcmVkZW5pdGFsUmVxdWVzdEFz
Q0JPUih2ZWN0b3JGcm9tTlNEYXRhKGNsaWVudERhdGFIYXNoKSwgW19XS1dlYkF1dGhlbnRpY2F0
aW9uUGFuZWwgY29udmVydFRvQ29yZUNyZWF0aW9uT3B0aW9uc1dpdGhPcHRpb25zOm9wdGlvbnNd
LCBjb3JlVXNlclZlcmlmaWNhdGlvbkF2YWlsYWJpbGl0eSh1c2VyVmVyaWZpY2F0aW9uQXZhaWxh
YmlsaXR5KSwgc3RkOjpudWxsb3B0KTsKKyAgICBhdXRvIGVuY29kZWRWZWN0b3IgPSBmaWRvOjpl
bmNvZGVNYWtlQ3JlZGVuaXRhbFJlcXVlc3RBc0NCT1IodmVjdG9yRnJvbU5TRGF0YShjbGllbnRE
YXRhSGFzaCksIFtfV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsIGNvbnZlcnRUb0NvcmVDcmVhdGlv
bk9wdGlvbnNXaXRoT3B0aW9uczpvcHRpb25zXSwgY29yZVVzZXJWZXJpZmljYXRpb25BdmFpbGFi
aWxpdHkodXNlclZlcmlmaWNhdGlvbkF2YWlsYWJpbGl0eSksIGZpZG86OkF1dGhlbnRpY2F0b3JT
dXBwb3J0ZWRPcHRpb25zOjpSZXNpZGVudEtleUF2YWlsYWJpbGl0eTo6a1N1cHBvcnRlZCwgc3Rk
OjpudWxsb3B0KTsKICAgICBlbmNvZGVkQ29tbWFuZCA9IGFkb3B0TlMoW1tOU0RhdGEgYWxsb2Nd
IGluaXRXaXRoQnl0ZXM6ZW5jb2RlZFZlY3Rvci5kYXRhKCkgbGVuZ3RoOmVuY29kZWRWZWN0b3Iu
c2l6ZSgpXSk7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViQXV0aGVudGljYXRpb24vZmlkby9DdGFwQXV0aGVudGljYXRvci5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9maWRvL0N0YXBBdXRoZW50aWNhdG9yLmNw
cAppbmRleCBlNTBlNjlkYjMzODBmN2I2MjBhODQxMTYwZDk4NDQ2OWQ4MGVkYzA5Li4xNzhmYWY4
NjhlZGI2OWVkOWYwNjVkZTEyNTA3NjcyY2E4N2Y3ODBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9maWRvL0N0YXBBdXRoZW50aWNhdG9yLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9maWRvL0N0
YXBBdXRoZW50aWNhdG9yLmNwcApAQCAtOTYsMTMgKzk2LDE0IEBAIHZvaWQgQ3RhcEF1dGhlbnRp
Y2F0b3I6Om1ha2VDcmVkZW50aWFsKCkKICAgICBWZWN0b3I8dWludDhfdD4gY2JvckNtZDsKICAg
ICBhdXRvJiBvcHRpb25zID0gc3RkOjpnZXQ8UHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0
aW9ucz4ocmVxdWVzdERhdGEoKS5vcHRpb25zKTsKICAgICBhdXRvIGludGVybmFsVVZBdmFpbGFi
aWxpdHkgPSBtX2luZm8ub3B0aW9ucygpLnVzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHkoKTsK
KyAgICBhdXRvIHJlc2lkZW50S2V5QXZhaWxhYmlsaXR5ID0gbV9pbmZvLm9wdGlvbnMoKS5yZXNp
ZGVudEtleUF2YWlsYWJpbGl0eSgpOwogICAgIC8vIElmIFVWIGlzIHJlcXVpcmVkLCB0aGVuIGVp
dGhlciBidWlsdC1pbiB1diBvciBhIHBpbiB3aWxsIHdvcmsuCiAgICAgaWYgKGludGVybmFsVVZB
dmFpbGFiaWxpdHkgPT0gVVZBdmFpbGFiaWxpdHk6OmtTdXBwb3J0ZWRBbmRDb25maWd1cmVkICYm
ICghb3B0aW9ucy5hdXRoZW50aWNhdG9yU2VsZWN0aW9uIHx8IG9wdGlvbnMuYXV0aGVudGljYXRv
clNlbGVjdGlvbi0+dXNlclZlcmlmaWNhdGlvbiAhPSBVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1l
bnQ6OkRpc2NvdXJhZ2VkKSAmJiBtX3BpbkF1dGguaXNFbXB0eSgpKQotICAgICAgICBjYm9yQ21k
ID0gZW5jb2RlTWFrZUNyZWRlbml0YWxSZXF1ZXN0QXNDQk9SKHJlcXVlc3REYXRhKCkuaGFzaCwg
b3B0aW9ucywgaW50ZXJuYWxVVkF2YWlsYWJpbGl0eSk7CisgICAgICAgIGNib3JDbWQgPSBlbmNv
ZGVNYWtlQ3JlZGVuaXRhbFJlcXVlc3RBc0NCT1IocmVxdWVzdERhdGEoKS5oYXNoLCBvcHRpb25z
LCBpbnRlcm5hbFVWQXZhaWxhYmlsaXR5LCByZXNpZGVudEtleUF2YWlsYWJpbGl0eSk7CiAgICAg
ZWxzZSBpZiAobV9pbmZvLm9wdGlvbnMoKS5jbGllbnRQaW5BdmFpbGFiaWxpdHkoKSA9PSBBdXRo
ZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9uczo6Q2xpZW50UGluQXZhaWxhYmlsaXR5OjprU3VwcG9y
dGVkQW5kUGluU2V0KQotICAgICAgICBjYm9yQ21kID0gZW5jb2RlTWFrZUNyZWRlbml0YWxSZXF1
ZXN0QXNDQk9SKHJlcXVlc3REYXRhKCkuaGFzaCwgb3B0aW9ucywgaW50ZXJuYWxVVkF2YWlsYWJp
bGl0eSwgUGluUGFyYW1ldGVycyB7IHBpbjo6a1Byb3RvY29sVmVyc2lvbiwgbV9waW5BdXRoIH0p
OworICAgICAgICBjYm9yQ21kID0gZW5jb2RlTWFrZUNyZWRlbml0YWxSZXF1ZXN0QXNDQk9SKHJl
cXVlc3REYXRhKCkuaGFzaCwgb3B0aW9ucywgaW50ZXJuYWxVVkF2YWlsYWJpbGl0eSwgcmVzaWRl
bnRLZXlBdmFpbGFiaWxpdHksIFBpblBhcmFtZXRlcnMgeyBwaW46OmtQcm90b2NvbFZlcnNpb24s
IG1fcGluQXV0aCB9KTsKICAgICBlbHNlCi0gICAgICAgIGNib3JDbWQgPSBlbmNvZGVNYWtlQ3Jl
ZGVuaXRhbFJlcXVlc3RBc0NCT1IocmVxdWVzdERhdGEoKS5oYXNoLCBvcHRpb25zLCBpbnRlcm5h
bFVWQXZhaWxhYmlsaXR5KTsKKyAgICAgICAgY2JvckNtZCA9IGVuY29kZU1ha2VDcmVkZW5pdGFs
UmVxdWVzdEFzQ0JPUihyZXF1ZXN0RGF0YSgpLmhhc2gsIG9wdGlvbnMsIGludGVybmFsVVZBdmFp
bGFiaWxpdHksIHJlc2lkZW50S2V5QXZhaWxhYmlsaXR5KTsKICAgICBkcml2ZXIoKS50cmFuc2Fj
dChXVEZNb3ZlKGNib3JDbWQpLCBbd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfV0oVmVjdG9y
PHVpbnQ4X3Q+JiYgZGF0YSkgewogICAgICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwog
ICAgICAgICBpZiAoIXdlYWtUaGlzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKaW5kZXggNzdhNTk5YjUzNDA5Y2I4ZDViZjZiNjlmMzRiYmQxOTAy
MTc4ZmJmZC4uYmRjZDgyYjBmODZhNzZiZTE5MTUyNzdmYWNjOWViN2JiNWFlZmI0YSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMDgx
LDYgKzEwODEsNyBAQAogCQk1MUZBRUMzQTFCMDY1NzYzMDAwOUM0RTcgLyogQXV4aWxpYXJ5UHJv
Y2Vzc01lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA1MUZBRUMzNzFCMDY1NzMxMDAwOUM0RTcgLyogQXV4aWxpYXJ5UHJvY2Vzc01lc3NhZ2Vz
LmggKi87IH07CiAJCTUxRkFFQzNCMUIwNjU3NjgwMDA5QzRFNyAvKiBBdXhpbGlhcnlQcm9jZXNz
TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDUxRkFFQzM2MUIwNjU3MzEwMDA5QzRFNyAvKiBBdXhpbGlhcnlQcm9jZXNzTWVz
c2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKIAkJNTFGRDE4QjYxNjUxRkJBRDAwREJFMUNFIC8qIE5l
dHdvcmtSZXNvdXJjZUxvYWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNTFGRDE4QjQxNjUxRkJBRDAwREJFMUNFIC8qIE5ldHdvcmtSZXNvdXJjZUxv
YWRlci5oICovOyB9OworCQk1MjY4OEFCNDI3RDdDRTQwMDAzNTc3QTIgLyogX1dLUmVzaWRlbnRL
ZXlSZXF1aXJlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNTI2ODhBQjMyN0Q3Q0U0MDAwMzU3N0EyIC8qIF9XS1Jlc2lkZW50S2V5UmVxdWlyZW1l
bnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1
MjcyRDRDOTFFNzM1RjA5MDBFQjQyOTAgLyogV0tQcm90ZWN0aW9uU3BhY2VOUy5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTI3MkQ0QzcxRTczNUYwOTAw
RUI0MjkwIC8qIFdLUHJvdGVjdGlvblNwYWNlTlMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1MjhDMzdDMTE5NUNCQjFBMDBEOEI5Q0MgLyogV0tC
YWNrRm9yd2FyZExpc3RQcml2YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAxQTlGMjgxMDE5NThGNDc4MDA4Q0FDNzIgLyogV0tCYWNrRm9yd2FyZExp
c3RQcml2YXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJNTJDREM1QzQyNzMxREEwRDAwQTNFM0VCIC8qIFZpcnR1YWxBdXRoZW50aWNhdG9yQ29u
ZmlndXJhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNTJDREM1QkQyNzMxREEwQzAwQTNFM0VCIC8qIFZpcnR1YWxBdXRoZW50aWNhdG9yQ29uZmln
dXJhdGlvbi5oICovOyB9OwpAQCAtNDY0NCw2ICs0NjQ1LDcgQEAKIAkJNTFGQjA5MDIxNjNBM0Ix
QzAwRUMzMjRBIC8qIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbiAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBO
ZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW47IHBhdGggPSBOZXR3b3JrL05ldHdv
cmtQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNTFGRDE4QjMxNjUxRkJBRDAwREJFMUNFIC8qIE5ldHdvcmtSZXNvdXJjZUxvYWRlci5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBOZXR3b3JrUmVzb3VyY2VM
b2FkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MUZEMThCNDE2NTFGQkFE
MDBEQkUxQ0UgLyogTmV0d29ya1Jlc291cmNlTG9hZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IE5ldHdvcmtSZXNvdXJjZUxvYWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk1MjY4OEFCMzI3RDdDRTQwMDAzNTc3QTIgLyogX1dLUmVzaWRlbnRLZXlSZXF1
aXJlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBfV0tSZXNpZGVudEtleVJlcXVpcmVtZW50Lmg7IHBh
dGggPSBVSVByb2Nlc3MvQVBJL0NvY29hL19XS1Jlc2lkZW50S2V5UmVxdWlyZW1lbnQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTI3MkQ0QzcxRTczNUYwOTAwRUI0MjkwIC8qIFdL
UHJvdGVjdGlvblNwYWNlTlMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV0tQ
cm90ZWN0aW9uU3BhY2VOUy5oOyBwYXRoID0gbWFjL1dLUHJvdGVjdGlvblNwYWNlTlMuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTI3MkQ0QzgxRTczNUYwOTAwRUI0MjkwIC8qIFdL
UHJvdGVjdGlvblNwYWNlTlMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5h
bWUgPSBXS1Byb3RlY3Rpb25TcGFjZU5TLm1tOyBwYXRoID0gbWFjL1dLUHJvdGVjdGlvblNwYWNl
TlMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUyQ0RDNUJEMjczMURBMEMwMEEz
RTNFQiAvKiBWaXJ0dWFsQXV0aGVudGljYXRvckNvbmZpZ3VyYXRpb24uaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gVmlydHVhbEF1dGhlbnRpY2F0b3JDb25maWd1cmF0aW9uLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC02OTg0LDYgKzY5ODYsNyBAQAogCQkwODY3
RDY5MUZFODQwMjhGQzAyQUFDMDcgLyogV2ViS2l0MiAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3Vw
OwogCQkJY2hpbGRyZW4gPSAoCisJCQkJNTI2ODhBQjMyN0Q3Q0U0MDAwMzU3N0EyIC8qIF9XS1Jl
c2lkZW50S2V5UmVxdWlyZW1lbnQuaCAqLywKIAkJCQk1QzE1N0EwQTI3MTdDOUYxMDBFRDUyODAg
Lyogd2VicHVzaGQgKi8sCiAJCQkJQjM5NkVBNTUxMkUwRUQyRDAwRjRGRUI3IC8qIGNvbmZpZy5o
ICovLAogCQkJCTJEN0RFQkUwMjEyNjlENUYwMEI5RjczQyAvKiBTb3VyY2VzLnR4dCAqLywKQEAg
LTEyOTg4LDYgKzEyOTkxLDcgQEAKIAkJCQk5OTBFMUUwOTIzODRBQTU3MDA0NjAyREYgLyogX1dL
UmVtb3RlV2ViSW5zcGVjdG9yVmlld0NvbnRyb2xsZXJQcml2YXRlLmggaW4gSGVhZGVycyAqLywK
IAkJCQkzNzcyMTZCODFBNEU2QkUwMDBEQ0E3MTggLyogX1dLUmVuZGVyaW5nUHJvZ3Jlc3NFdmVu
dHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTFGNjA0QkFBMTg4OUZCQjgwMEVFMDM5NSAvKiBfV0tS
ZW5kZXJpbmdQcm9ncmVzc0V2ZW50c0ludGVybmFsLmggaW4gSGVhZGVycyAqLywKKwkJCQk1MjY4
OEFCNDI3RDdDRTQwMDAzNTc3QTIgLyogX1dLUmVzaWRlbnRLZXlSZXF1aXJlbWVudC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNUNCN0FGRTAyM0M1MkNFNTAwRTQ5Q0YzIC8qIF9XS1Jlc291cmNlTG9h
ZERlbGVnYXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0I3QUZFODIzQzY5QjYxMDBFNDlDRjMg
LyogX1dLUmVzb3VyY2VMb2FkSW5mby5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDlGQkYwMDEyMzlC
MUY4RDAwQkQwMzJGIC8qIF9XS1Jlc291cmNlTG9hZFN0YXRpc3RpY3NGaXJzdFBhcnR5LmggaW4g
SGVhZGVycyAqLywKQEAgLTEzNjc5LDcgKzEzNjgzLDYgQEAKIAkJCQk1NzQyQTMwODI1MzU4QTA0
MDBCN0JBMTQgLyogV2ViQXV0aG5Qcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk1NzJFQkJDMjI1MzZBNjBBMDAwNTUyQjMgLyogV2ViQXV0aG5Qcm9jZXNzTWVz
c2FnZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTU3MkVCQkM5MjUzNkFGRDUwMDA1NTJCMyAvKiBX
ZWJBdXRoblByb2Nlc3NQcm94eS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNTcyRUJCRDAyNTM2QkIx
MTAwMDU1MkIzIC8qIFdlYkF1dGhuUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCBpbiBIZWFkZXJzICov
LAogCQkJCUY0MkQ2MzQxMjJBMEVGREYwMEQyRkIzQSAvKiBXZWJBdXRvY29ycmVjdGlvbkRhdGEu
aCBpbiBIZWFkZXJzICovLAogCQkJCTk5MEQzOUY1MjQzQkU2NDgwMDE5OTM4OCAvKiBXZWJBdXRv
bWF0aW9uRE9NV2luZG93T2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTk5NTVBNkVDMUM3
OTgwQzIwMEVCNkE5MyAvKiBXZWJBdXRvbWF0aW9uU2Vzc2lvbi5oIGluIEhlYWRlcnMgKi8sCmRp
ZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYzhlYzQy
NjM1YTE0NmUxODg2MjRiMTZjODY1ZDNhNWFjMGQwYTgyNS4uNTJiMjg0N2I0OTBmYjZhMWQ4ZTIy
NTMyZmM0MjMwMmFmZDIwZDlmNyAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rv
b2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDIyLTAzLTEwICBKIFBhc2NvZSAgPGpf
cGFzY29lQGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViQXV0aG5dIFN1cHBvcnQgYXV0aGVudGlj
YXRvclNlbGVjdGlvbi5yZXNpZGVudEtleSBSZXNpZGVudEtleVJlcXVpcmVtZW50CisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzc1NjcKKyAgICAgICAg
cmRhcjovLzg5Nzg4Mzc4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQnJlbnQgRnVsZ2hhbSBhbmQg
Q2hyaXMgRHVtZXouCisKKyAgICAgICAgQWRkIEFQSSB0ZXN0cyBmb3IgYXV0aGVudGljYXRvclNl
bGVjdGlvbi5yZXNpZGVudEtleS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
Q29yZS9DdGFwUmVxdWVzdFRlc3QuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6
CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0N0YXBSZXNwb25zZVRlc3Qu
Y3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisKIDIwMjItMDMtMDkgIEpvbmF0
aGFuIEJlZGFyZCAgPGpiZWRhcmRAYXBwbGUuY29tPgogCiAgICAgICAgIFtFV1NdIEFkZCBERUZB
VUxUX0JSQU5DSCB2YXJpYWJsZQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJDb3JlL0N0YXBSZXF1ZXN0VGVzdC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYkNvcmUvQ3RhcFJlcXVlc3RUZXN0LmNwcAppbmRleCBmMWE2ODM2OWY3MTIzZjE2OGMwZGMy
ZGE3OGZiMGJhZjZhMjM4NjBmLi45MWMwODhlMWE1MWUxNWU5MzI3YWNmMDk4YTlkYWRjYmNhMDM1
NTNmIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ3RhcFJl
cXVlc3RUZXN0LmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ3Rh
cFJlcXVlc3RUZXN0LmNwcApAQCAtNjAsMTIgKzYwLDEyIEBAIFRFU1QoQ1RBUFJlcXVlc3RUZXN0
LCBUZXN0Q29uc3RydWN0TWFrZUNyZWRlbnRpYWxSZXF1ZXN0UGFyYW0pCiAgICAgdXNlci5kaXNw
bGF5TmFtZSA9ICJKb2huIFAuIFNtaXRoIjsKIAogICAgIFZlY3RvcjxQdWJsaWNLZXlDcmVkZW50
aWFsQ3JlYXRpb25PcHRpb25zOjpQYXJhbWV0ZXJzPiBwYXJhbXMgeyB7IFB1YmxpY0tleUNyZWRl
bnRpYWxUeXBlOjpQdWJsaWNLZXksIDcgfSwgeyBQdWJsaWNLZXlDcmVkZW50aWFsVHlwZTo6UHVi
bGljS2V5LCAyNTcgfSB9OwotICAgIFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnM6
OkF1dGhlbnRpY2F0b3JTZWxlY3Rpb25Dcml0ZXJpYSBzZWxlY3Rpb24geyBBdXRoZW50aWNhdG9y
QXR0YWNobWVudDo6UGxhdGZvcm0sIHRydWUsIFVzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudDo6
UHJlZmVycmVkIH07CisgICAgUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9uczo6QXV0
aGVudGljYXRvclNlbGVjdGlvbkNyaXRlcmlhIHNlbGVjdGlvbiB7IEF1dGhlbnRpY2F0b3JBdHRh
Y2htZW50OjpQbGF0Zm9ybSwgc3RkOjpudWxsb3B0LCB0cnVlLCBVc2VyVmVyaWZpY2F0aW9uUmVx
dWlyZW1lbnQ6OlByZWZlcnJlZCB9OwogCiAgICAgUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9u
T3B0aW9ucyBvcHRpb25zIHsgcnAsIHVzZXIsIHsgfSwgcGFyYW1zLCBzdGQ6Om51bGxvcHQsIHsg
fSwgc2VsZWN0aW9uLCBBdHRlc3RhdGlvbkNvbnZleWFuY2VQcmVmZXJlbmNlOjpOb25lLCBzdGQ6
Om51bGxvcHQgfTsKICAgICBWZWN0b3I8dWludDhfdD4gaGFzaDsKICAgICBoYXNoLmFwcGVuZChU
ZXN0RGF0YTo6a0NsaWVudERhdGFIYXNoLCBzaXplb2YoVGVzdERhdGE6OmtDbGllbnREYXRhSGFz
aCkpOwotICAgIGF1dG8gc2VyaWFsaXplZERhdGEgPSBlbmNvZGVNYWtlQ3JlZGVuaXRhbFJlcXVl
c3RBc0NCT1IoaGFzaCwgb3B0aW9ucywgQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnM6OlVz
ZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHk6OmtTdXBwb3J0ZWRBbmRDb25maWd1cmVkKTsKKyAg
ICBhdXRvIHNlcmlhbGl6ZWREYXRhID0gZW5jb2RlTWFrZUNyZWRlbml0YWxSZXF1ZXN0QXNDQk9S
KGhhc2gsIG9wdGlvbnMsIEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zOjpVc2VyVmVyaWZp
Y2F0aW9uQXZhaWxhYmlsaXR5OjprU3VwcG9ydGVkQW5kQ29uZmlndXJlZCwgQXV0aGVudGljYXRv
clN1cHBvcnRlZE9wdGlvbnM6OlJlc2lkZW50S2V5QXZhaWxhYmlsaXR5OjprU3VwcG9ydGVkKTsK
ICAgICBFWFBFQ1RfRVEoc2VyaWFsaXplZERhdGEuc2l6ZSgpLCBzaXplb2YoVGVzdERhdGE6OmtD
dGFwTWFrZUNyZWRlbnRpYWxSZXF1ZXN0KSk7CiAgICAgRVhQRUNUX0VRKG1lbWNtcChzZXJpYWxp
emVkRGF0YS5kYXRhKCksIFRlc3REYXRhOjprQ3RhcE1ha2VDcmVkZW50aWFsUmVxdWVzdCwgc2Vy
aWFsaXplZERhdGEuc2l6ZSgpKSwgMCk7CiB9CkBAIC04MywxMiArODMsMTIgQEAgVEVTVChDVEFQ
UmVxdWVzdFRlc3QsIFRlc3RDb25zdHJ1Y3RNYWtlQ3JlZGVudGlhbFJlcXVlc3RQYXJhbU5vVVZO
b1JLKQogICAgIHVzZXIuZGlzcGxheU5hbWUgPSAiSm9obiBQLiBTbWl0aCI7CiAKICAgICBWZWN0
b3I8UHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9uczo6UGFyYW1ldGVycz4gcGFyYW1z
IHsgeyBQdWJsaWNLZXlDcmVkZW50aWFsVHlwZTo6UHVibGljS2V5LCA3IH0sIHsgUHVibGljS2V5
Q3JlZGVudGlhbFR5cGU6OlB1YmxpY0tleSwgMjU3IH0gfTsKLSAgICBQdWJsaWNLZXlDcmVkZW50
aWFsQ3JlYXRpb25PcHRpb25zOjpBdXRoZW50aWNhdG9yU2VsZWN0aW9uQ3JpdGVyaWEgc2VsZWN0
aW9uIHsgQXV0aGVudGljYXRvckF0dGFjaG1lbnQ6OlBsYXRmb3JtLCBmYWxzZSwgVXNlclZlcmlm
aWNhdGlvblJlcXVpcmVtZW50OjpEaXNjb3VyYWdlZCB9OworICAgIFB1YmxpY0tleUNyZWRlbnRp
YWxDcmVhdGlvbk9wdGlvbnM6OkF1dGhlbnRpY2F0b3JTZWxlY3Rpb25Dcml0ZXJpYSBzZWxlY3Rp
b24geyBBdXRoZW50aWNhdG9yQXR0YWNobWVudDo6UGxhdGZvcm0sIHN0ZDo6bnVsbG9wdCwgZmFs
c2UsIFVzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudDo6RGlzY291cmFnZWQgfTsKIAogICAgIFB1
YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMgb3B0aW9ucyB7IHJwLCB1c2VyLCB7IH0s
IHBhcmFtcywgc3RkOjpudWxsb3B0LCB7IH0sIHNlbGVjdGlvbiwgQXR0ZXN0YXRpb25Db252ZXlh
bmNlUHJlZmVyZW5jZTo6Tm9uZSwgc3RkOjpudWxsb3B0IH07CiAgICAgVmVjdG9yPHVpbnQ4X3Q+
IGhhc2g7CiAgICAgaGFzaC5hcHBlbmQoVGVzdERhdGE6OmtDbGllbnREYXRhSGFzaCwgc2l6ZW9m
KFRlc3REYXRhOjprQ2xpZW50RGF0YUhhc2gpKTsKLSAgICBhdXRvIHNlcmlhbGl6ZWREYXRhID0g
ZW5jb2RlTWFrZUNyZWRlbml0YWxSZXF1ZXN0QXNDQk9SKGhhc2gsIG9wdGlvbnMsIEF1dGhlbnRp
Y2F0b3JTdXBwb3J0ZWRPcHRpb25zOjpVc2VyVmVyaWZpY2F0aW9uQXZhaWxhYmlsaXR5OjprU3Vw
cG9ydGVkQW5kQ29uZmlndXJlZCk7CisgICAgYXV0byBzZXJpYWxpemVkRGF0YSA9IGVuY29kZU1h
a2VDcmVkZW5pdGFsUmVxdWVzdEFzQ0JPUihoYXNoLCBvcHRpb25zLCBBdXRoZW50aWNhdG9yU3Vw
cG9ydGVkT3B0aW9uczo6VXNlclZlcmlmaWNhdGlvbkF2YWlsYWJpbGl0eTo6a1N1cHBvcnRlZEFu
ZENvbmZpZ3VyZWQsIEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zOjpSZXNpZGVudEtleUF2
YWlsYWJpbGl0eTo6a1N1cHBvcnRlZCk7CiAgICAgRVhQRUNUX0VRKHNlcmlhbGl6ZWREYXRhLnNp
emUoKSwgc2l6ZW9mKFRlc3REYXRhOjprQ3RhcE1ha2VDcmVkZW50aWFsUmVxdWVzdFNob3J0KSk7
CiAgICAgRVhQRUNUX0VRKG1lbWNtcChzZXJpYWxpemVkRGF0YS5kYXRhKCksIFRlc3REYXRhOjpr
Q3RhcE1ha2VDcmVkZW50aWFsUmVxdWVzdFNob3J0LCBzZXJpYWxpemVkRGF0YS5zaXplKCkpLCAw
KTsKIH0KQEAgLTEwNiwxMiArMTA2LDEyIEBAIFRFU1QoQ1RBUFJlcXVlc3RUZXN0LCBUZXN0Q29u
c3RydWN0TWFrZUNyZWRlbnRpYWxSZXF1ZXN0UGFyYW1VVlJlcXVpcmVkQnV0Tm90U3VwCiAgICAg
dXNlci5kaXNwbGF5TmFtZSA9ICJKb2huIFAuIFNtaXRoIjsKIAogICAgIFZlY3RvcjxQdWJsaWNL
ZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zOjpQYXJhbWV0ZXJzPiBwYXJhbXMgeyB7IFB1Ymxp
Y0tleUNyZWRlbnRpYWxUeXBlOjpQdWJsaWNLZXksIDcgfSwgeyBQdWJsaWNLZXlDcmVkZW50aWFs
VHlwZTo6UHVibGljS2V5LCAyNTcgfSB9OwotICAgIFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlv
bk9wdGlvbnM6OkF1dGhlbnRpY2F0b3JTZWxlY3Rpb25Dcml0ZXJpYSBzZWxlY3Rpb24geyBBdXRo
ZW50aWNhdG9yQXR0YWNobWVudDo6UGxhdGZvcm0sIGZhbHNlLCBVc2VyVmVyaWZpY2F0aW9uUmVx
dWlyZW1lbnQ6OlJlcXVpcmVkIH07CisgICAgUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0
aW9uczo6QXV0aGVudGljYXRvclNlbGVjdGlvbkNyaXRlcmlhIHNlbGVjdGlvbiB7IEF1dGhlbnRp
Y2F0b3JBdHRhY2htZW50OjpQbGF0Zm9ybSwgc3RkOjpudWxsb3B0LCBmYWxzZSwgVXNlclZlcmlm
aWNhdGlvblJlcXVpcmVtZW50OjpSZXF1aXJlZCB9OwogCiAgICAgUHVibGljS2V5Q3JlZGVudGlh
bENyZWF0aW9uT3B0aW9ucyBvcHRpb25zIHsgcnAsIHVzZXIsIHsgfSwgcGFyYW1zLCBzdGQ6Om51
bGxvcHQsIHsgfSwgc2VsZWN0aW9uLCBBdHRlc3RhdGlvbkNvbnZleWFuY2VQcmVmZXJlbmNlOjpO
b25lLCBzdGQ6Om51bGxvcHQgfTsKICAgICBWZWN0b3I8dWludDhfdD4gaGFzaDsKICAgICBoYXNo
LmFwcGVuZChUZXN0RGF0YTo6a0NsaWVudERhdGFIYXNoLCBzaXplb2YoVGVzdERhdGE6OmtDbGll
bnREYXRhSGFzaCkpOwotICAgIGF1dG8gc2VyaWFsaXplZERhdGEgPSBlbmNvZGVNYWtlQ3JlZGVu
aXRhbFJlcXVlc3RBc0NCT1IoaGFzaCwgb3B0aW9ucywgQXV0aGVudGljYXRvclN1cHBvcnRlZE9w
dGlvbnM6OlVzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHk6OmtOb3RTdXBwb3J0ZWQpOworICAg
IGF1dG8gc2VyaWFsaXplZERhdGEgPSBlbmNvZGVNYWtlQ3JlZGVuaXRhbFJlcXVlc3RBc0NCT1Io
aGFzaCwgb3B0aW9ucywgQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnM6OlVzZXJWZXJpZmlj
YXRpb25BdmFpbGFiaWxpdHk6OmtOb3RTdXBwb3J0ZWQsIEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRP
cHRpb25zOjpSZXNpZGVudEtleUF2YWlsYWJpbGl0eTo6a1N1cHBvcnRlZCk7CiAgICAgRVhQRUNU
X0VRKHNlcmlhbGl6ZWREYXRhLnNpemUoKSwgc2l6ZW9mKFRlc3REYXRhOjprQ3RhcE1ha2VDcmVk
ZW50aWFsUmVxdWVzdFNob3J0KSk7CiAgICAgRVhQRUNUX0VRKG1lbWNtcChzZXJpYWxpemVkRGF0
YS5kYXRhKCksIFRlc3REYXRhOjprQ3RhcE1ha2VDcmVkZW50aWFsUmVxdWVzdFNob3J0LCBzZXJp
YWxpemVkRGF0YS5zaXplKCkpLCAwKTsKIH0KQEAgLTEyOSw3ICsxMjksNyBAQCBURVNUKENUQVBS
ZXF1ZXN0VGVzdCwgVGVzdENvbnN0cnVjdE1ha2VDcmVkZW50aWFsUmVxdWVzdFBhcmFtV2l0aFBp
bikKICAgICB1c2VyLmRpc3BsYXlOYW1lID0gIkpvaG4gUC4gU21pdGgiOwogCiAgICAgVmVjdG9y
PFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnM6OlBhcmFtZXRlcnM+IHBhcmFtcyB7
IHsgUHVibGljS2V5Q3JlZGVudGlhbFR5cGU6OlB1YmxpY0tleSwgNyB9LCB7IFB1YmxpY0tleUNy
ZWRlbnRpYWxUeXBlOjpQdWJsaWNLZXksIDI1NyB9IH07Ci0gICAgUHVibGljS2V5Q3JlZGVudGlh
bENyZWF0aW9uT3B0aW9uczo6QXV0aGVudGljYXRvclNlbGVjdGlvbkNyaXRlcmlhIHNlbGVjdGlv
biB7IEF1dGhlbnRpY2F0b3JBdHRhY2htZW50OjpQbGF0Zm9ybSwgdHJ1ZSwgVXNlclZlcmlmaWNh
dGlvblJlcXVpcmVtZW50OjpQcmVmZXJyZWQgfTsKKyAgICBQdWJsaWNLZXlDcmVkZW50aWFsQ3Jl
YXRpb25PcHRpb25zOjpBdXRoZW50aWNhdG9yU2VsZWN0aW9uQ3JpdGVyaWEgc2VsZWN0aW9uIHsg
QXV0aGVudGljYXRvckF0dGFjaG1lbnQ6OlBsYXRmb3JtLCBzdGQ6Om51bGxvcHQsIHRydWUsIFVz
ZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudDo6UHJlZmVycmVkIH07CiAKICAgICBQaW5QYXJhbWV0
ZXJzIHBpbjsKICAgICBwaW4ucHJvdG9jb2wgPSBwaW46OmtQcm90b2NvbFZlcnNpb247CkBAIC0x
MzgsMTEgKzEzOCw4NCBAQCBURVNUKENUQVBSZXF1ZXN0VGVzdCwgVGVzdENvbnN0cnVjdE1ha2VD
cmVkZW50aWFsUmVxdWVzdFBhcmFtV2l0aFBpbikKICAgICBQdWJsaWNLZXlDcmVkZW50aWFsQ3Jl
YXRpb25PcHRpb25zIG9wdGlvbnMgeyBycCwgdXNlciwgeyB9LCBwYXJhbXMsIHN0ZDo6bnVsbG9w
dCwgeyB9LCBzZWxlY3Rpb24sIEF0dGVzdGF0aW9uQ29udmV5YW5jZVByZWZlcmVuY2U6Ok5vbmUs
IHN0ZDo6bnVsbG9wdCB9OwogICAgIFZlY3Rvcjx1aW50OF90PiBoYXNoOwogICAgIGhhc2guYXBw
ZW5kKFRlc3REYXRhOjprQ2xpZW50RGF0YUhhc2gsIHNpemVvZihUZXN0RGF0YTo6a0NsaWVudERh
dGFIYXNoKSk7Ci0gICAgYXV0byBzZXJpYWxpemVkRGF0YSA9IGVuY29kZU1ha2VDcmVkZW5pdGFs
UmVxdWVzdEFzQ0JPUihoYXNoLCBvcHRpb25zLCBBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9u
czo6VXNlclZlcmlmaWNhdGlvbkF2YWlsYWJpbGl0eTo6a1N1cHBvcnRlZEFuZENvbmZpZ3VyZWQs
IHBpbik7CisgICAgYXV0byBzZXJpYWxpemVkRGF0YSA9IGVuY29kZU1ha2VDcmVkZW5pdGFsUmVx
dWVzdEFzQ0JPUihoYXNoLCBvcHRpb25zLCBBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9uczo6
VXNlclZlcmlmaWNhdGlvbkF2YWlsYWJpbGl0eTo6a1N1cHBvcnRlZEFuZENvbmZpZ3VyZWQsIEF1
dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zOjpSZXNpZGVudEtleUF2YWlsYWJpbGl0eTo6a1N1
cHBvcnRlZCwgcGluKTsKICAgICBFWFBFQ1RfRVEoc2VyaWFsaXplZERhdGEuc2l6ZSgpLCBzaXpl
b2YoVGVzdERhdGE6OmtDdGFwTWFrZUNyZWRlbnRpYWxSZXF1ZXN0V2l0aFBpbikpOwogICAgIEVY
UEVDVF9FUShtZW1jbXAoc2VyaWFsaXplZERhdGEuZGF0YSgpLCBUZXN0RGF0YTo6a0N0YXBNYWtl
Q3JlZGVudGlhbFJlcXVlc3RXaXRoUGluLCBzZXJpYWxpemVkRGF0YS5zaXplKCkpLCAwKTsKIH0K
IAorVEVTVChDVEFQUmVxdWVzdFRlc3QsIFRlc3RDb25zdHJ1Y3RNYWtlQ3JlZGVudGlhbFJlcXVl
c3RSS1ByZWZlcnJlZCkKK3sKKyAgICBQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25z
OjpScEVudGl0eSBycDsKKyAgICBycC5uYW1lID0gIkFjbWUiOworICAgIHJwLmlkID0gImFjbWUu
Y29tIjsKKworICAgIFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnM6OlVzZXJFbnRp
dHkgdXNlcjsKKyAgICB1c2VyLm5hbWUgPSAiam9obnBzbWl0aEBleGFtcGxlLmNvbSI7CisgICAg
dXNlci5pY29uID0gImh0dHBzOi8vcGljcy5hY21lLmNvbS8wMC9wL2FCampqcHFQYi5wbmciOwor
ICAgIHVzZXIuaWQgPSBXZWJDb3JlOjp0b0J1ZmZlclNvdXJjZShUZXN0RGF0YTo6a1VzZXJJZCwg
c2l6ZW9mKFRlc3REYXRhOjprVXNlcklkKSk7CisgICAgdXNlci5kaXNwbGF5TmFtZSA9ICJKb2hu
IFAuIFNtaXRoIjsKKworICAgIFZlY3RvcjxQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRp
b25zOjpQYXJhbWV0ZXJzPiBwYXJhbXMgeyB7IFB1YmxpY0tleUNyZWRlbnRpYWxUeXBlOjpQdWJs
aWNLZXksIDcgfSwgeyBQdWJsaWNLZXlDcmVkZW50aWFsVHlwZTo6UHVibGljS2V5LCAyNTcgfSB9
OworICAgIFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnM6OkF1dGhlbnRpY2F0b3JT
ZWxlY3Rpb25Dcml0ZXJpYSBzZWxlY3Rpb24geyBBdXRoZW50aWNhdG9yQXR0YWNobWVudDo6UGxh
dGZvcm0sIFJlc2lkZW50S2V5UmVxdWlyZW1lbnQ6OlByZWZlcnJlZCwgdHJ1ZSwgVXNlclZlcmlm
aWNhdGlvblJlcXVpcmVtZW50OjpQcmVmZXJyZWQgfTsKKworICAgIFBpblBhcmFtZXRlcnMgcGlu
OworICAgIHBpbi5wcm90b2NvbCA9IHBpbjo6a1Byb3RvY29sVmVyc2lvbjsKKyAgICBwaW4uYXV0
aC5hcHBlbmQoVGVzdERhdGE6OmtDdGFwMlBpbkF1dGgsIHNpemVvZihUZXN0RGF0YTo6a0N0YXAy
UGluQXV0aCkpOworCisgICAgUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucyBvcHRp
b25zIHsgcnAsIHVzZXIsIHsgfSwgcGFyYW1zLCBzdGQ6Om51bGxvcHQsIHsgfSwgc2VsZWN0aW9u
LCBBdHRlc3RhdGlvbkNvbnZleWFuY2VQcmVmZXJlbmNlOjpOb25lLCBzdGQ6Om51bGxvcHQgfTsK
KyAgICBWZWN0b3I8dWludDhfdD4gaGFzaDsKKyAgICBoYXNoLmFwcGVuZChUZXN0RGF0YTo6a0Ns
aWVudERhdGFIYXNoLCBzaXplb2YoVGVzdERhdGE6OmtDbGllbnREYXRhSGFzaCkpOworICAgIGF1
dG8gc2VyaWFsaXplZERhdGEgPSBlbmNvZGVNYWtlQ3JlZGVuaXRhbFJlcXVlc3RBc0NCT1IoaGFz
aCwgb3B0aW9ucywgQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnM6OlVzZXJWZXJpZmljYXRp
b25BdmFpbGFiaWxpdHk6OmtTdXBwb3J0ZWRBbmRDb25maWd1cmVkLCBBdXRoZW50aWNhdG9yU3Vw
cG9ydGVkT3B0aW9uczo6UmVzaWRlbnRLZXlBdmFpbGFiaWxpdHk6OmtTdXBwb3J0ZWQsIHBpbik7
CisgICAgRVhQRUNUX0VRKHNlcmlhbGl6ZWREYXRhLnNpemUoKSwgc2l6ZW9mKFRlc3REYXRhOjpr
Q3RhcE1ha2VDcmVkZW50aWFsUmVxdWVzdFdpdGhQaW4pKTsKKyAgICBFWFBFQ1RfRVEobWVtY21w
KHNlcmlhbGl6ZWREYXRhLmRhdGEoKSwgVGVzdERhdGE6OmtDdGFwTWFrZUNyZWRlbnRpYWxSZXF1
ZXN0V2l0aFBpbiwgc2VyaWFsaXplZERhdGEuc2l6ZSgpKSwgMCk7Cit9CisKK1RFU1QoQ1RBUFJl
cXVlc3RUZXN0LCBUZXN0Q29uc3RydWN0TWFrZUNyZWRlbnRpYWxSZXF1ZXN0UktQcmVmZXJyZWRO
b3RTdXBwb3J0ZWQpCit7CisgICAgUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9uczo6
UnBFbnRpdHkgcnA7CisgICAgcnAubmFtZSA9ICJBY21lIjsKKyAgICBycC5pZCA9ICJhY21lLmNv
bSI7CisKKyAgICBQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zOjpVc2VyRW50aXR5
IHVzZXI7CisgICAgdXNlci5uYW1lID0gImpvaG5wc21pdGhAZXhhbXBsZS5jb20iOworICAgIHVz
ZXIuaWNvbiA9ICJodHRwczovL3BpY3MuYWNtZS5jb20vMDAvcC9hQmpqanBxUGIucG5nIjsKKyAg
ICB1c2VyLmlkID0gV2ViQ29yZTo6dG9CdWZmZXJTb3VyY2UoVGVzdERhdGE6OmtVc2VySWQsIHNp
emVvZihUZXN0RGF0YTo6a1VzZXJJZCkpOworICAgIHVzZXIuZGlzcGxheU5hbWUgPSAiSm9obiBQ
LiBTbWl0aCI7CisKKyAgICBWZWN0b3I8UHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9u
czo6UGFyYW1ldGVycz4gcGFyYW1zIHsgeyBQdWJsaWNLZXlDcmVkZW50aWFsVHlwZTo6UHVibGlj
S2V5LCA3IH0sIHsgUHVibGljS2V5Q3JlZGVudGlhbFR5cGU6OlB1YmxpY0tleSwgMjU3IH0gfTsK
KyAgICBQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zOjpBdXRoZW50aWNhdG9yU2Vs
ZWN0aW9uQ3JpdGVyaWEgc2VsZWN0aW9uIHsgQXV0aGVudGljYXRvckF0dGFjaG1lbnQ6OlBsYXRm
b3JtLCBSZXNpZGVudEtleVJlcXVpcmVtZW50OjpQcmVmZXJyZWQsIHRydWUsIFVzZXJWZXJpZmlj
YXRpb25SZXF1aXJlbWVudDo6UmVxdWlyZWQgfTsKKworICAgIFB1YmxpY0tleUNyZWRlbnRpYWxD
cmVhdGlvbk9wdGlvbnMgb3B0aW9ucyB7IHJwLCB1c2VyLCB7IH0sIHBhcmFtcywgc3RkOjpudWxs
b3B0LCB7IH0sIHNlbGVjdGlvbiwgQXR0ZXN0YXRpb25Db252ZXlhbmNlUHJlZmVyZW5jZTo6Tm9u
ZSwgc3RkOjpudWxsb3B0IH07CisgICAgVmVjdG9yPHVpbnQ4X3Q+IGhhc2g7CisgICAgaGFzaC5h
cHBlbmQoVGVzdERhdGE6OmtDbGllbnREYXRhSGFzaCwgc2l6ZW9mKFRlc3REYXRhOjprQ2xpZW50
RGF0YUhhc2gpKTsKKyAgICBhdXRvIHNlcmlhbGl6ZWREYXRhID0gZW5jb2RlTWFrZUNyZWRlbml0
YWxSZXF1ZXN0QXNDQk9SKGhhc2gsIG9wdGlvbnMsIEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRp
b25zOjpVc2VyVmVyaWZpY2F0aW9uQXZhaWxhYmlsaXR5OjprTm90U3VwcG9ydGVkLCBBdXRoZW50
aWNhdG9yU3VwcG9ydGVkT3B0aW9uczo6UmVzaWRlbnRLZXlBdmFpbGFiaWxpdHk6OmtOb3RTdXBw
b3J0ZWQpOworICAgIEVYUEVDVF9FUShzZXJpYWxpemVkRGF0YS5zaXplKCksIHNpemVvZihUZXN0
RGF0YTo6a0N0YXBNYWtlQ3JlZGVudGlhbFJlcXVlc3RTaG9ydCkpOworICAgIEVYUEVDVF9FUSht
ZW1jbXAoc2VyaWFsaXplZERhdGEuZGF0YSgpLCBUZXN0RGF0YTo6a0N0YXBNYWtlQ3JlZGVudGlh
bFJlcXVlc3RTaG9ydCwgc2VyaWFsaXplZERhdGEuc2l6ZSgpKSwgMCk7Cit9CisKK1RFU1QoQ1RB
UFJlcXVlc3RUZXN0LCBUZXN0Q29uc3RydWN0TWFrZUNyZWRlbnRpYWxSZXF1ZXN0UktEaXNjb3Vy
YWdlZCkKK3sKKyAgICBQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zOjpScEVudGl0
eSBycDsKKyAgICBycC5uYW1lID0gIkFjbWUiOworICAgIHJwLmlkID0gImFjbWUuY29tIjsKKwor
ICAgIFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnM6OlVzZXJFbnRpdHkgdXNlcjsK
KyAgICB1c2VyLm5hbWUgPSAiam9obnBzbWl0aEBleGFtcGxlLmNvbSI7CisgICAgdXNlci5pY29u
ID0gImh0dHBzOi8vcGljcy5hY21lLmNvbS8wMC9wL2FCampqcHFQYi5wbmciOworICAgIHVzZXIu
aWQgPSBXZWJDb3JlOjp0b0J1ZmZlclNvdXJjZShUZXN0RGF0YTo6a1VzZXJJZCwgc2l6ZW9mKFRl
c3REYXRhOjprVXNlcklkKSk7CisgICAgdXNlci5kaXNwbGF5TmFtZSA9ICJKb2huIFAuIFNtaXRo
IjsKKworICAgIFZlY3RvcjxQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zOjpQYXJh
bWV0ZXJzPiBwYXJhbXMgeyB7IFB1YmxpY0tleUNyZWRlbnRpYWxUeXBlOjpQdWJsaWNLZXksIDcg
fSwgeyBQdWJsaWNLZXlDcmVkZW50aWFsVHlwZTo6UHVibGljS2V5LCAyNTcgfSB9OworICAgIFB1
YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnM6OkF1dGhlbnRpY2F0b3JTZWxlY3Rpb25D
cml0ZXJpYSBzZWxlY3Rpb24geyBBdXRoZW50aWNhdG9yQXR0YWNobWVudDo6UGxhdGZvcm0sIFJl
c2lkZW50S2V5UmVxdWlyZW1lbnQ6OkRpc2NvdXJhZ2VkLCB0cnVlLCBVc2VyVmVyaWZpY2F0aW9u
UmVxdWlyZW1lbnQ6OlJlcXVpcmVkIH07CisKKyAgICBQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRp
b25PcHRpb25zIG9wdGlvbnMgeyBycCwgdXNlciwgeyB9LCBwYXJhbXMsIHN0ZDo6bnVsbG9wdCwg
eyB9LCBzZWxlY3Rpb24sIEF0dGVzdGF0aW9uQ29udmV5YW5jZVByZWZlcmVuY2U6Ok5vbmUsIHN0
ZDo6bnVsbG9wdCB9OworICAgIFZlY3Rvcjx1aW50OF90PiBoYXNoOworICAgIGhhc2guYXBwZW5k
KFRlc3REYXRhOjprQ2xpZW50RGF0YUhhc2gsIHNpemVvZihUZXN0RGF0YTo6a0NsaWVudERhdGFI
YXNoKSk7CisgICAgYXV0byBzZXJpYWxpemVkRGF0YSA9IGVuY29kZU1ha2VDcmVkZW5pdGFsUmVx
dWVzdEFzQ0JPUihoYXNoLCBvcHRpb25zLCBBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9uczo6
VXNlclZlcmlmaWNhdGlvbkF2YWlsYWJpbGl0eTo6a05vdFN1cHBvcnRlZCwgQXV0aGVudGljYXRv
clN1cHBvcnRlZE9wdGlvbnM6OlJlc2lkZW50S2V5QXZhaWxhYmlsaXR5OjprU3VwcG9ydGVkKTsK
KyAgICBFWFBFQ1RfRVEoc2VyaWFsaXplZERhdGEuc2l6ZSgpLCBzaXplb2YoVGVzdERhdGE6OmtD
dGFwTWFrZUNyZWRlbnRpYWxSZXF1ZXN0U2hvcnQpKTsKKyAgICBFWFBFQ1RfRVEobWVtY21wKHNl
cmlhbGl6ZWREYXRhLmRhdGEoKSwgVGVzdERhdGE6OmtDdGFwTWFrZUNyZWRlbnRpYWxSZXF1ZXN0
U2hvcnQsIHNlcmlhbGl6ZWREYXRhLnNpemUoKSksIDApOworfQorCiBURVNUKENUQVBSZXF1ZXN0
VGVzdCwgVGVzdENvbnN0cnVjdEdldEFzc2VydGlvblJlcXVlc3QpCiB7CiAgICAgUHVibGljS2V5
Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zIG9wdGlvbnM7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ3RhcFJlc3BvbnNlVGVzdC5jcHAgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ3RhcFJlc3BvbnNlVGVzdC5jcHAKaW5kZXggNTUyMWM1
YmVjODQ0NGQ2NmVkZjM3YzcyOTdiMmVkY2ZlNjE2YjlmNS4uMTdjNTBiMWMxMzMzZGFjOWM5NmE5
ZDQ0MDIwODk4Y2Q4ZjYxNTQxNiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJDb3JlL0N0YXBSZXNwb25zZVRlc3QuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViQ29yZS9DdGFwUmVzcG9uc2VUZXN0LmNwcApAQCAtNTg5LDcgKzU4OSw3IEBAIFRF
U1QoQ1RBUFJlc3BvbnNlVGVzdCwgVGVzdFJlYWRHZXRJbmZvUmVzcG9uc2UpCiAgICAgRVhQRUNU
X05FKGdldEluZm9SZXNwb25zZS0+dmVyc2lvbnMoKS5maW5kKFByb3RvY29sVmVyc2lvbjo6a0N0
YXApLCBnZXRJbmZvUmVzcG9uc2UtPnZlcnNpb25zKCkuZW5kKCkpOwogICAgIEVYUEVDVF9ORShn
ZXRJbmZvUmVzcG9uc2UtPnZlcnNpb25zKCkuZmluZChQcm90b2NvbFZlcnNpb246OmtVMmYpLCBn
ZXRJbmZvUmVzcG9uc2UtPnZlcnNpb25zKCkuZW5kKCkpOwogICAgIEVYUEVDVF9UUlVFKGdldElu
Zm9SZXNwb25zZS0+b3B0aW9ucygpLmlzUGxhdGZvcm1EZXZpY2UoKSk7Ci0gICAgRVhQRUNUX1RS
VUUoZ2V0SW5mb1Jlc3BvbnNlLT5vcHRpb25zKCkuc3VwcG9ydHNSZXNpZGVudEtleSgpKTsKKyAg
ICBFWFBFQ1RfRVEoQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnM6OlJlc2lkZW50S2V5QXZh
aWxhYmlsaXR5OjprU3VwcG9ydGVkLCBnZXRJbmZvUmVzcG9uc2UtPm9wdGlvbnMoKS5yZXNpZGVu
dEtleUF2YWlsYWJpbGl0eSgpKTsKICAgICBFWFBFQ1RfVFJVRShnZXRJbmZvUmVzcG9uc2UtPm9w
dGlvbnMoKS51c2VyUHJlc2VuY2VSZXF1aXJlZCgpKTsKICAgICBFWFBFQ1RfRVEoQXV0aGVudGlj
YXRvclN1cHBvcnRlZE9wdGlvbnM6OlVzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHk6OmtTdXBw
b3J0ZWRBbmRDb25maWd1cmVkLCBnZXRJbmZvUmVzcG9uc2UtPm9wdGlvbnMoKS51c2VyVmVyaWZp
Y2F0aW9uQXZhaWxhYmlsaXR5KCkpOwogICAgIEVYUEVDVF9FUShBdXRoZW50aWNhdG9yU3VwcG9y
dGVkT3B0aW9uczo6Q2xpZW50UGluQXZhaWxhYmlsaXR5OjprU3VwcG9ydGVkQnV0UGluTm90U2V0
LCBnZXRJbmZvUmVzcG9uc2UtPm9wdGlvbnMoKS5jbGllbnRQaW5BdmFpbGFiaWxpdHkoKSk7CkBA
IC02MDQsNyArNjA0LDcgQEAgVEVTVChDVEFQUmVzcG9uc2VUZXN0LCBUZXN0UmVhZEdldEluZm9S
ZXNwb25zZTIpCiAgICAgRVhQRUNUX05FKGdldEluZm9SZXNwb25zZS0+dmVyc2lvbnMoKS5maW5k
KFByb3RvY29sVmVyc2lvbjo6a0N0YXApLCBnZXRJbmZvUmVzcG9uc2UtPnZlcnNpb25zKCkuZW5k
KCkpOwogICAgIEVYUEVDVF9ORShnZXRJbmZvUmVzcG9uc2UtPnZlcnNpb25zKCkuZmluZChQcm90
b2NvbFZlcnNpb246OmtVMmYpLCBnZXRJbmZvUmVzcG9uc2UtPnZlcnNpb25zKCkuZW5kKCkpOwog
ICAgIEVYUEVDVF9UUlVFKGdldEluZm9SZXNwb25zZS0+b3B0aW9ucygpLmlzUGxhdGZvcm1EZXZp
Y2UoKSk7Ci0gICAgRVhQRUNUX1RSVUUoZ2V0SW5mb1Jlc3BvbnNlLT5vcHRpb25zKCkuc3VwcG9y
dHNSZXNpZGVudEtleSgpKTsKKyAgICBFWFBFQ1RfRVEoQXV0aGVudGljYXRvclN1cHBvcnRlZE9w
dGlvbnM6OlJlc2lkZW50S2V5QXZhaWxhYmlsaXR5OjprU3VwcG9ydGVkLCBnZXRJbmZvUmVzcG9u
c2UtPm9wdGlvbnMoKS5yZXNpZGVudEtleUF2YWlsYWJpbGl0eSgpKTsKICAgICBFWFBFQ1RfVFJV
RShnZXRJbmZvUmVzcG9uc2UtPm9wdGlvbnMoKS51c2VyUHJlc2VuY2VSZXF1aXJlZCgpKTsKICAg
ICBFWFBFQ1RfRVEoQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnM6OlVzZXJWZXJpZmljYXRp
b25BdmFpbGFiaWxpdHk6OmtTdXBwb3J0ZWRBbmRDb25maWd1cmVkLCBnZXRJbmZvUmVzcG9uc2Ut
Pm9wdGlvbnMoKS51c2VyVmVyaWZpY2F0aW9uQXZhaWxhYmlsaXR5KCkpOwogICAgIEVYUEVDVF9F
UShBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9uczo6Q2xpZW50UGluQXZhaWxhYmlsaXR5Ojpr
U3VwcG9ydGVkQnV0UGluTm90U2V0LCBnZXRJbmZvUmVzcG9uc2UtPm9wdGlvbnMoKS5jbGllbnRQ
aW5BdmFpbGFiaWxpdHkoKSk7CkBAIC02MjIsNyArNjIyLDcgQEAgVEVTVChDVEFQUmVzcG9uc2VU
ZXN0LCBUZXN0U2VyaWFsaXplR2V0SW5mb1Jlc3BvbnNlKQogICAgIEF1dGhlbnRpY2F0b3JHZXRJ
bmZvUmVzcG9uc2UgcmVzcG9uc2UoeyBQcm90b2NvbFZlcnNpb246OmtDdGFwLCBQcm90b2NvbFZl
cnNpb246OmtVMmYgfSwgY29udmVydEJ5dGVzVG9WZWN0b3Ioa1Rlc3REZXZpY2VBYWd1aWQsIHNp
emVvZihrVGVzdERldmljZUFhZ3VpZCkpKTsKICAgICByZXNwb25zZS5zZXRFeHRlbnNpb25zKHsg
InV2bSIsICJobWFjLXNlY3JldCIgfSk7CiAgICAgQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlv
bnMgb3B0aW9uczsKLSAgICBvcHRpb25zLnNldFN1cHBvcnRzUmVzaWRlbnRLZXkodHJ1ZSk7Cisg
ICAgb3B0aW9ucy5zZXRSZXNpZGVudEtleUF2YWlsYWJpbGl0eShBdXRoZW50aWNhdG9yU3VwcG9y
dGVkT3B0aW9uczo6UmVzaWRlbnRLZXlBdmFpbGFiaWxpdHk6OmtTdXBwb3J0ZWQpOwogICAgIG9w
dGlvbnMuc2V0SXNQbGF0Zm9ybURldmljZSh0cnVlKTsKICAgICBvcHRpb25zLnNldENsaWVudFBp
bkF2YWlsYWJpbGl0eShBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9uczo6Q2xpZW50UGluQXZh
aWxhYmlsaXR5OjprU3VwcG9ydGVkQnV0UGluTm90U2V0KTsKICAgICBvcHRpb25zLnNldFVzZXJW
ZXJpZmljYXRpb25BdmFpbGFiaWxpdHkoQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnM6OlVz
ZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHk6OmtTdXBwb3J0ZWRBbmRDb25maWd1cmVkKTsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpp
bmRleCBjNmJhODI1MjdmMjlhMGZjZDU4N2UxZTlhMDdhMDY2NWIyZDNlZTQxLi5kZWU3ZmYyYjBi
MWFiYjM3Yzg5NzhiYzQ1MjA3MTZiOTM3NWFiNWY1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIw
MjItMDMtMTAgIEogUGFzY29lICA8al9wYXNjb2VAYXBwbGUuY29tPgorCisgICAgICAgIFtXZWJB
dXRobl0gU3VwcG9ydCBhdXRoZW50aWNhdG9yU2VsZWN0aW9uLnJlc2lkZW50S2V5IFJlc2lkZW50
S2V5UmVxdWlyZW1lbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIzNzU2NworICAgICAgICByZGFyOi8vODk3ODgzNzgKKworICAgICAgICBSZXZpZXdl
ZCBieSBCcmVudCBGdWxnaGFtIGFuZCBDaHJpcyBEdW1lei4KKworICAgICAgICBBZGQgbGF5b3V0
IHRlc3RzIHVzaW5nIHJlc2lkZW50S2V5IGZpZWxkLgorCisgICAgICAgICogaHR0cC93cHQvd2Vi
YXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWNyZWF0ZS1mYWlsdXJlLWhpZC5odHRwcy1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50
aWFsLWNyZWF0ZS1mYWlsdXJlLWhpZC5odHRwcy5odG1sOgorICAgICAgICAqIGh0dHAvd3B0L3dl
YmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1jcmVhdGUtc3VjY2Vzcy1oaWQuaHR0cHMtZXhw
ZWN0ZWQudHh0OgorICAgICAgICAqIGh0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVu
dGlhbC1jcmVhdGUtc3VjY2Vzcy1oaWQuaHR0cHMuaHRtbDoKKwogMjAyMi0wMy0xMCAgQW50b2lu
ZSBRdWludCAgPGdyYW91dHNAd2Via2l0Lm9yZz4KIAogICAgICAgICBbd2ViLWFuaW1hdGlvbnNd
IGZvbnQtdmFyaWFudC1jYXBzIHNob3VsZCBzdXBwb3J0IGRpc2NyZXRlIGFuaW1hdGlvbgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50
aWFsLWNyZWF0ZS1mYWlsdXJlLWhpZC5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9o
dHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtY3JlYXRlLWZhaWx1cmUtaGlk
Lmh0dHBzLWV4cGVjdGVkLnR4dAppbmRleCBlNjc1YzA1ZGVhZDQyNjU1N2RmMTU5ZDRjN2Y3ZTJh
NDkxNzM5YjZhLi41M2I1YjJiOThiYjQ4Yjc3YTBiMTBlZThlYTY5NzhhNjVjMjFjODJiIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRp
YWwtY3JlYXRlLWZhaWx1cmUtaGlkLmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtY3JlYXRlLWZhaWx1cmUt
aGlkLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMywxMCArMywxMiBAQCBDT05TT0xFIE1FU1NBR0U6
IFVzZXIgZ2VzdHVyZSBpcyBub3QgZGV0ZWN0ZWQuIFRvIHVzZSB0aGUgV2ViQXV0aG4gQVBJLCBj
YWxsICduYQogQ09OU09MRSBNRVNTQUdFOiBVc2VyIGdlc3R1cmUgaXMgbm90IGRldGVjdGVkLiBU
byB1c2UgdGhlIFdlYkF1dGhuIEFQSSwgY2FsbCAnbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmNyZWF0
ZScgb3IgJ25hdmlnYXRvci5jcmVkZW50aWFscy5nZXQnIHdpdGhpbiB1c2VyIGFjdGl2YXRlZCBl
dmVudHMuCiBDT05TT0xFIE1FU1NBR0U6IFVzZXIgZ2VzdHVyZSBpcyBub3QgZGV0ZWN0ZWQuIFRv
IHVzZSB0aGUgV2ViQXV0aG4gQVBJLCBjYWxsICduYXZpZ2F0b3IuY3JlZGVudGlhbHMuY3JlYXRl
JyBvciAnbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmdldCcgd2l0aGluIHVzZXIgYWN0aXZhdGVkIGV2
ZW50cy4KIENPTlNPTEUgTUVTU0FHRTogVXNlciBnZXN0dXJlIGlzIG5vdCBkZXRlY3RlZC4gVG8g
dXNlIHRoZSBXZWJBdXRobiBBUEksIGNhbGwgJ25hdmlnYXRvci5jcmVkZW50aWFscy5jcmVhdGUn
IG9yICduYXZpZ2F0b3IuY3JlZGVudGlhbHMuZ2V0JyB3aXRoaW4gdXNlciBhY3RpdmF0ZWQgZXZl
bnRzLgorQ09OU09MRSBNRVNTQUdFOiBVc2VyIGdlc3R1cmUgaXMgbm90IGRldGVjdGVkLiBUbyB1
c2UgdGhlIFdlYkF1dGhuIEFQSSwgY2FsbCAnbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmNyZWF0ZScg
b3IgJ25hdmlnYXRvci5jcmVkZW50aWFscy5nZXQnIHdpdGhpbiB1c2VyIGFjdGl2YXRlZCBldmVu
dHMuCiAKIFBBU1MgUHVibGljS2V5Q3JlZGVudGlhbCdzIFtbY3JlYXRlXV0gd2l0aCB0aW1lb3V0
IGluIGEgbW9jayBoaWQgYXV0aGVudGljYXRvci4KIFBBU1MgUHVibGljS2V5Q3JlZGVudGlhbCdz
IFtbY3JlYXRlXV0gd2l0aCBtYWxpY2lvdXMgcGF5bG9hZCBpbiBhIG1vY2sgaGlkIGF1dGhlbnRp
Y2F0b3IuCiBQQVNTIFB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2NyZWF0ZV1dIHdpdGggdW5zdXBw
b3J0ZWQgb3B0aW9ucyBpbiBhIG1vY2sgaGlkIGF1dGhlbnRpY2F0b3IuCitQQVNTIFB1YmxpY0tl
eUNyZWRlbnRpYWwncyBbW2NyZWF0ZV1dIHdpdGggdW5zdXBwb3J0ZWQgb3B0aW9ucyBpbiBhIG1v
Y2sgaGlkIGF1dGhlbnRpY2F0b3IuIDIKIFBBU1MgUHVibGljS2V5Q3JlZGVudGlhbCdzIFtbY3Jl
YXRlXV0gd2l0aCBtaXhlZCBvcHRpb25zIGluIGEgbW9jayBoaWQgYXV0aGVudGljYXRvci4KIFBB
U1MgUHVibGljS2V5Q3JlZGVudGlhbCdzIFtbY3JlYXRlXV0gd2l0aCBtaXhlZCBvcHRpb25zIGlu
IGEgbW9jayBoaWQgYXV0aGVudGljYXRvci4gMgogUEFTUyBQdWJsaWNLZXlDcmVkZW50aWFsJ3Mg
W1tjcmVhdGVdXSB3aXRoIEludmFsaWRTdGF0ZUVycm9yIGluIGEgbW9jayBoaWQgYXV0aGVudGlj
YXRvci4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1r
ZXktY3JlZGVudGlhbC1jcmVhdGUtZmFpbHVyZS1oaWQuaHR0cHMuaHRtbCBiL0xheW91dFRlc3Rz
L2h0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1jcmVhdGUtZmFpbHVyZS1o
aWQuaHR0cHMuaHRtbAppbmRleCBmYzE1N2M1YjI4NmYzMjRlYThiMjkwZDI4N2YwNTA2MTk4OTM2
ZjhmLi4yNTU0NzI4MTk4MzMyZGI2OGZjYTAxZTkyNTI5OTQ2MWFhY2YxYmI0IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtY3Jl
YXRlLWZhaWx1cmUtaGlkLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2Vi
YXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWNyZWF0ZS1mYWlsdXJlLWhpZC5odHRwcy5odG1s
CkBAIC03Miw2ICs3MiwyOCBAQAogICAgICAgICByZXR1cm4gcHJvbWlzZVJlamVjdHModCwgIlVu
a25vd25FcnJvciIsIG5hdmlnYXRvci5jcmVkZW50aWFscy5jcmVhdGUob3B0aW9ucyksICJVbmtu
b3duIGludGVybmFsIGVycm9yLiBFcnJvciBjb2RlOiA0MyIpOwogICAgIH0sICJQdWJsaWNLZXlD
cmVkZW50aWFsJ3MgW1tjcmVhdGVdXSB3aXRoIHVuc3VwcG9ydGVkIG9wdGlvbnMgaW4gYSBtb2Nr
IGhpZCBhdXRoZW50aWNhdG9yLiIpOwogCisgICAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsK
KyAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHsKKyAgICAgICAgICAgIHB1YmxpY0tleTogeworICAg
ICAgICAgICAgICAgIHJwOiB7CisgICAgICAgICAgICAgICAgICAgIG5hbWU6ICJleGFtcGxlLmNv
bSIKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHVzZXI6IHsKKyAgICAgICAg
ICAgICAgICAgICAgbmFtZTogIkpvaG4gQXBwbGVzZWVkIiwKKyAgICAgICAgICAgICAgICAgICAg
aWQ6IGFzY2lpVG9VaW50OEFycmF5KCIxMjM0NTYiKSwKKyAgICAgICAgICAgICAgICAgICAgZGlz
cGxheU5hbWU6ICJKb2huIiwKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIGNo
YWxsZW5nZTogYXNjaWlUb1VpbnQ4QXJyYXkoIjEyMzQ1NiIpLAorICAgICAgICAgICAgICAgIHB1
YktleUNyZWRQYXJhbXM6IFt7IHR5cGU6ICJwdWJsaWMta2V5IiwgYWxnOiAtNyB9XSwKKyAgICAg
ICAgICAgICAgICBhdXRoZW50aWNhdG9yU2VsZWN0aW9uOiB7IHJlc2lkZW50S2V5OiAicmVxdWly
ZWQiIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKworICAgICAgICBpZiAod2luZG93Lmlu
dGVybmFscykKKyAgICAgICAgICAgIGludGVybmFscy5zZXRNb2NrV2ViQXV0aGVudGljYXRpb25D
b25maWd1cmF0aW9uKHsgaGlkOiB7IHN0YWdlOiAicmVxdWVzdCIsIHN1YlN0YWdlOiAibXNnIiwg
ZXJyb3I6ICJ1bnN1cHBvcnRlZC1vcHRpb25zIiB9IH0pOworICAgICAgICByZXR1cm4gcHJvbWlz
ZVJlamVjdHModCwgIlVua25vd25FcnJvciIsIG5hdmlnYXRvci5jcmVkZW50aWFscy5jcmVhdGUo
b3B0aW9ucyksICJVbmtub3duIGludGVybmFsIGVycm9yLiBFcnJvciBjb2RlOiA0MyIpOworICAg
IH0sICJQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tjcmVhdGVdXSB3aXRoIHVuc3VwcG9ydGVkIG9w
dGlvbnMgaW4gYSBtb2NrIGhpZCBhdXRoZW50aWNhdG9yLiAyIik7CisKICAgICBwcm9taXNlX3Rl
c3QoZnVuY3Rpb24odCkgewogICAgICAgICBjb25zdCBvcHRpb25zID0gewogICAgICAgICAgICAg
cHVibGljS2V5OiB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9w
dWJsaWMta2V5LWNyZWRlbnRpYWwtY3JlYXRlLXN1Y2Nlc3MtaGlkLmh0dHBzLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1j
cmVhdGUtc3VjY2Vzcy1oaWQuaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IDAyYzNhZDZlYmZlZmYx
NDA1OTliYmI5NDAyMjliNmYyM2EzNjI2NWUuLmVkYWJmMWE5MmNiYTcwMjJlNTJmM2ZlNTZjOTM3
ZWYxNDU0MTAzZjAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1
YmxpYy1rZXktY3JlZGVudGlhbC1jcmVhdGUtc3VjY2Vzcy1oaWQuaHR0cHMtZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlh
bC1jcmVhdGUtc3VjY2Vzcy1oaWQuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0xMSwxMSArMTEsMTcg
QEAgQ09OU09MRSBNRVNTQUdFOiBVc2VyIGdlc3R1cmUgaXMgbm90IGRldGVjdGVkLiBUbyB1c2Ug
dGhlIFdlYkF1dGhuIEFQSSwgY2FsbCAnbmEKIENPTlNPTEUgTUVTU0FHRTogVXNlciBnZXN0dXJl
IGlzIG5vdCBkZXRlY3RlZC4gVG8gdXNlIHRoZSBXZWJBdXRobiBBUEksIGNhbGwgJ25hdmlnYXRv
ci5jcmVkZW50aWFscy5jcmVhdGUnIG9yICduYXZpZ2F0b3IuY3JlZGVudGlhbHMuZ2V0JyB3aXRo
aW4gdXNlciBhY3RpdmF0ZWQgZXZlbnRzLgogQ09OU09MRSBNRVNTQUdFOiBVc2VyIGdlc3R1cmUg
aXMgbm90IGRldGVjdGVkLiBUbyB1c2UgdGhlIFdlYkF1dGhuIEFQSSwgY2FsbCAnbmF2aWdhdG9y
LmNyZWRlbnRpYWxzLmNyZWF0ZScgb3IgJ25hdmlnYXRvci5jcmVkZW50aWFscy5nZXQnIHdpdGhp
biB1c2VyIGFjdGl2YXRlZCBldmVudHMuCiBDT05TT0xFIE1FU1NBR0U6IFVzZXIgZ2VzdHVyZSBp
cyBub3QgZGV0ZWN0ZWQuIFRvIHVzZSB0aGUgV2ViQXV0aG4gQVBJLCBjYWxsICduYXZpZ2F0b3Iu
Y3JlZGVudGlhbHMuY3JlYXRlJyBvciAnbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmdldCcgd2l0aGlu
IHVzZXIgYWN0aXZhdGVkIGV2ZW50cy4KK0NPTlNPTEUgTUVTU0FHRTogVXNlciBnZXN0dXJlIGlz
IG5vdCBkZXRlY3RlZC4gVG8gdXNlIHRoZSBXZWJBdXRobiBBUEksIGNhbGwgJ25hdmlnYXRvci5j
cmVkZW50aWFscy5jcmVhdGUnIG9yICduYXZpZ2F0b3IuY3JlZGVudGlhbHMuZ2V0JyB3aXRoaW4g
dXNlciBhY3RpdmF0ZWQgZXZlbnRzLgorQ09OU09MRSBNRVNTQUdFOiBVc2VyIGdlc3R1cmUgaXMg
bm90IGRldGVjdGVkLiBUbyB1c2UgdGhlIFdlYkF1dGhuIEFQSSwgY2FsbCAnbmF2aWdhdG9yLmNy
ZWRlbnRpYWxzLmNyZWF0ZScgb3IgJ25hdmlnYXRvci5jcmVkZW50aWFscy5nZXQnIHdpdGhpbiB1
c2VyIGFjdGl2YXRlZCBldmVudHMuCitDT05TT0xFIE1FU1NBR0U6IFVzZXIgZ2VzdHVyZSBpcyBu
b3QgZGV0ZWN0ZWQuIFRvIHVzZSB0aGUgV2ViQXV0aG4gQVBJLCBjYWxsICduYXZpZ2F0b3IuY3Jl
ZGVudGlhbHMuY3JlYXRlJyBvciAnbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmdldCcgd2l0aGluIHVz
ZXIgYWN0aXZhdGVkIGV2ZW50cy4KIAogUEFTUyBQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tjcmVh
dGVdXSB3aXRoIG1pbmltdW0gb3B0aW9ucyBpbiBhIG1vY2sgaGlkIGF1dGhlbnRpY2F0b3IuCiBQ
QVNTIFB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2NyZWF0ZV1dIHdpdGggZW1wdHkgcHViS2V5Q3Jl
ZFBhcmFtcyBpbiBhIG1vY2sgaGlkIGF1dGhlbnRpY2F0b3IuCiBQQVNTIFB1YmxpY0tleUNyZWRl
bnRpYWwncyBbW2NyZWF0ZV1dIHdpdGggYXV0aGVudGljYXRvclNlbGVjdGlvbiB7ICdjcm9zcy1w
bGF0Zm9ybScgfSBpbiBhIG1vY2sgaGlkIGF1dGhlbnRpY2F0b3IuCiBQQVNTIFB1YmxpY0tleUNy
ZWRlbnRpYWwncyBbW2NyZWF0ZV1dIHdpdGggcmVxdWlyZVJlc2lkZW50S2V5IHsgZmFsc2UgfSBp
biBhIG1vY2sgaGlkIGF1dGhlbnRpY2F0b3IuCitQQVNTIFB1YmxpY0tleUNyZWRlbnRpYWwncyBb
W2NyZWF0ZV1dIHdpdGggcmVzaWRlbnRLZXkgeyBEaXNjb3VyYWdlZCB9IGluIGEgbW9jayBoaWQg
YXV0aGVudGljYXRvci4KK1BBU1MgUHVibGljS2V5Q3JlZGVudGlhbCdzIFtbY3JlYXRlXV0gd2l0
aCByZXNpZGVudEtleSB7IFByZWZlcnJlZCB9IGluIGEgbW9jayBoaWQgYXV0aGVudGljYXRvci4K
K1BBU1MgUHVibGljS2V5Q3JlZGVudGlhbCdzIFtbY3JlYXRlXV0gd2l0aCByZXNpZGVudEtleSB7
IFJlcXVpcmVkIH0gaW4gYSBtb2NrIGhpZCBhdXRoZW50aWNhdG9yLgogUEFTUyBQdWJsaWNLZXlD
cmVkZW50aWFsJ3MgW1tjcmVhdGVdXSB3aXRoIHVzZXJWZXJpZmljYXRpb24geyAncHJlZmVycmVk
JyB9IGluIGEgbW9jayBoaWQgYXV0aGVudGljYXRvci4KIFBBU1MgUHVibGljS2V5Q3JlZGVudGlh
bCdzIFtbY3JlYXRlXV0gd2l0aCB1c2VyVmVyaWZpY2F0aW9uIHsgJ2Rpc2NvdXJhZ2VkJyB9IGlu
IGEgbW9jayBoaWQgYXV0aGVudGljYXRvci4KIFBBU1MgUHVibGljS2V5Q3JlZGVudGlhbCdzIFtb
Y3JlYXRlXV0gd2l0aCBtaXhlZCBvcHRpb25zIGluIGEgbW9jayBoaWQgYXV0aGVudGljYXRvci4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3Jl
ZGVudGlhbC1jcmVhdGUtc3VjY2Vzcy1oaWQuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAv
d3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1jcmVhdGUtc3VjY2Vzcy1oaWQuaHR0
cHMuaHRtbAppbmRleCBlOTc0NjQ4Y2RkOWVhMDQyMjllZDIyZTQ1ODViYTU2MWU5ZmI5ODVmLi41
MmZjYjE2NDFlMTNkODdkNzVkYjg3ZDIwYjlkMTNiODBmYjc1NWExIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtY3JlYXRlLXN1
Y2Nlc3MtaGlkLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4v
cHVibGljLWtleS1jcmVkZW50aWFsLWNyZWF0ZS1zdWNjZXNzLWhpZC5odHRwcy5odG1sCkBAIC05
OSw2ICs5OSw3NSBAQAogICAgICAgICB9KTsKICAgICB9LCAiUHVibGljS2V5Q3JlZGVudGlhbCdz
IFtbY3JlYXRlXV0gd2l0aCByZXF1aXJlUmVzaWRlbnRLZXkgeyBmYWxzZSB9IGluIGEgbW9jayBo
aWQgYXV0aGVudGljYXRvci4iKTsKIAorICAgIHByb21pc2VfdGVzdCh0ID0+IHsKKyAgICAgICAg
Y29uc3Qgb3B0aW9ucyA9IHsKKyAgICAgICAgICAgIHB1YmxpY0tleTogeworICAgICAgICAgICAg
ICAgIHJwOiB7CisgICAgICAgICAgICAgICAgICAgIG5hbWU6ICJsb2NhbGhvc3QiLAorICAgICAg
ICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgdXNlcjogeworICAgICAgICAgICAgICAgICAg
ICBuYW1lOiAiSm9obiBBcHBsZXNlZWQiLAorICAgICAgICAgICAgICAgICAgICBpZDogQmFzZTY0
VVJMLnBhcnNlKHRlc3RVc2VyaGFuZGxlQmFzZTY0KSwKKyAgICAgICAgICAgICAgICAgICAgZGlz
cGxheU5hbWU6ICJBcHBsZXNlZWQiLAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAg
ICAgY2hhbGxlbmdlOiBCYXNlNjRVUkwucGFyc2UoIk1USXpORFUyIiksCisgICAgICAgICAgICAg
ICAgcHViS2V5Q3JlZFBhcmFtczogW3sgdHlwZTogInB1YmxpYy1rZXkiLCBhbGc6IC03IH1dLAor
ICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0b3JTZWxlY3Rpb246IHsgcmVzaWRlbnRLZXk6ICJk
aXNjb3VyYWdlZCIgfSwKKyAgICAgICAgICAgICAgICB0aW1lb3V0OiAxMDAKKyAgICAgICAgICAg
IH0KKyAgICAgICAgfTsKKworICAgICAgICByZXR1cm4gbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmNy
ZWF0ZShvcHRpb25zKS50aGVuKGNyZWRlbnRpYWwgPT4geworICAgICAgICAgICAgY2hlY2tDdGFw
TWFrZUNyZWRlbnRpYWxSZXN1bHQoY3JlZGVudGlhbCk7CisgICAgICAgIH0pOworICAgIH0sICJQ
dWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tjcmVhdGVdXSB3aXRoIHJlc2lkZW50S2V5IHsgRGlzY291
cmFnZWQgfSBpbiBhIG1vY2sgaGlkIGF1dGhlbnRpY2F0b3IuIik7CisKKyAgICBwcm9taXNlX3Rl
c3QodCA9PiB7CisgICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7CisgICAgICAgICAgICBwdWJsaWNL
ZXk6IHsKKyAgICAgICAgICAgICAgICBycDogeworICAgICAgICAgICAgICAgICAgICBuYW1lOiAi
bG9jYWxob3N0IiwKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHVzZXI6IHsK
KyAgICAgICAgICAgICAgICAgICAgbmFtZTogIkpvaG4gQXBwbGVzZWVkIiwKKyAgICAgICAgICAg
ICAgICAgICAgaWQ6IEJhc2U2NFVSTC5wYXJzZSh0ZXN0VXNlcmhhbmRsZUJhc2U2NCksCisgICAg
ICAgICAgICAgICAgICAgIGRpc3BsYXlOYW1lOiAiQXBwbGVzZWVkIiwKKyAgICAgICAgICAgICAg
ICB9LAorICAgICAgICAgICAgICAgIGNoYWxsZW5nZTogQmFzZTY0VVJMLnBhcnNlKCJNVEl6TkRV
MiIpLAorICAgICAgICAgICAgICAgIHB1YktleUNyZWRQYXJhbXM6IFt7IHR5cGU6ICJwdWJsaWMt
a2V5IiwgYWxnOiAtNyB9XSwKKyAgICAgICAgICAgICAgICBhdXRoZW50aWNhdG9yU2VsZWN0aW9u
OiB7IHJlc2lkZW50S2V5OiAicHJlZmVycmVkIiB9LAorICAgICAgICAgICAgICAgIHRpbWVvdXQ6
IDEwMAorICAgICAgICAgICAgfQorICAgICAgICB9OworCisgICAgICAgIHJldHVybiBuYXZpZ2F0
b3IuY3JlZGVudGlhbHMuY3JlYXRlKG9wdGlvbnMpLnRoZW4oY3JlZGVudGlhbCA9PiB7CisgICAg
ICAgICAgICBjaGVja0N0YXBNYWtlQ3JlZGVudGlhbFJlc3VsdChjcmVkZW50aWFsKTsKKyAgICAg
ICAgfSk7CisgICAgfSwgIlB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2NyZWF0ZV1dIHdpdGggcmVz
aWRlbnRLZXkgeyBQcmVmZXJyZWQgfSBpbiBhIG1vY2sgaGlkIGF1dGhlbnRpY2F0b3IuIik7CisK
KyAgICBwcm9taXNlX3Rlc3QodCA9PiB7CisgICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7CisgICAg
ICAgICAgICBwdWJsaWNLZXk6IHsKKyAgICAgICAgICAgICAgICBycDogeworICAgICAgICAgICAg
ICAgICAgICBuYW1lOiAibG9jYWxob3N0IiwKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAg
ICAgICAgIHVzZXI6IHsKKyAgICAgICAgICAgICAgICAgICAgbmFtZTogIkpvaG4gQXBwbGVzZWVk
IiwKKyAgICAgICAgICAgICAgICAgICAgaWQ6IEJhc2U2NFVSTC5wYXJzZSh0ZXN0VXNlcmhhbmRs
ZUJhc2U2NCksCisgICAgICAgICAgICAgICAgICAgIGRpc3BsYXlOYW1lOiAiQXBwbGVzZWVkIiwK
KyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIGNoYWxsZW5nZTogQmFzZTY0VVJM
LnBhcnNlKCJNVEl6TkRVMiIpLAorICAgICAgICAgICAgICAgIHB1YktleUNyZWRQYXJhbXM6IFt7
IHR5cGU6ICJwdWJsaWMta2V5IiwgYWxnOiAtNyB9XSwKKyAgICAgICAgICAgICAgICBhdXRoZW50
aWNhdG9yU2VsZWN0aW9uOiB7IHJlc2lkZW50S2V5OiAicmVxdWlyZWQiIH0sCisgICAgICAgICAg
ICAgICAgdGltZW91dDogMTAwCisgICAgICAgICAgICB9CisgICAgICAgIH07CisKKyAgICAgICAg
cmV0dXJuIG5hdmlnYXRvci5jcmVkZW50aWFscy5jcmVhdGUob3B0aW9ucykudGhlbihjcmVkZW50
aWFsID0+IHsKKyAgICAgICAgICAgIGNoZWNrQ3RhcE1ha2VDcmVkZW50aWFsUmVzdWx0KGNyZWRl
bnRpYWwpOworICAgICAgICB9KTsKKyAgICB9LCAiUHVibGljS2V5Q3JlZGVudGlhbCdzIFtbY3Jl
YXRlXV0gd2l0aCByZXNpZGVudEtleSB7IFJlcXVpcmVkIH0gaW4gYSBtb2NrIGhpZCBhdXRoZW50
aWNhdG9yLiIpOworCiAgICAgcHJvbWlzZV90ZXN0KHQgPT4gewogICAgICAgICBjb25zdCBvcHRp
b25zID0gewogICAgICAgICAgICAgcHVibGljS2V5OiB7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>