<?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>217582</bug_id>
          
          <creation_ts>2020-10-11 12:45:30 -0700</creation_ts>
          <short_desc>[Preferences] Introduce string based SPI for WKPreferences to allow tests to change internal behavior without always adding additional SPI</short_desc>
          <delta_ts>2020-10-12 10:43:16 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sam Weinig">sam</reporter>
          <assigned_to name="Sam Weinig">sam</assigned_to>
          <cc>annulen</cc>
    
    <cc>darin</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1696679</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-10-11 12:45:30 -0700</bug_when>
    <thetext>[Preferences] Introduce string based SPI for WKPreferences to allow tests to change internal behavior without always adding additional SPI</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1696680</commentid>
    <comment_count>1</comment_count>
      <attachid>411059</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-10-11 12:48:35 -0700</bug_when>
    <thetext>Created attachment 411059
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1696683</commentid>
    <comment_count>2</comment_count>
      <attachid>411061</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-10-11 13:15:16 -0700</bug_when>
    <thetext>Created attachment 411061
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1696705</commentid>
    <comment_count>3</comment_count>
      <attachid>411068</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-10-11 15:08:51 -0700</bug_when>
    <thetext>Created attachment 411068
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1696729</commentid>
    <comment_count>4</comment_count>
      <attachid>411077</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-10-11 16:24:50 -0700</bug_when>
    <thetext>Created attachment 411077
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1696730</commentid>
    <comment_count>5</comment_count>
      <attachid>411078</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-10-11 16:29:19 -0700</bug_when>
    <thetext>Created attachment 411078
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1696731</commentid>
    <comment_count>6</comment_count>
      <attachid>411079</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-10-11 16:31:06 -0700</bug_when>
    <thetext>Created attachment 411079
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1696755</commentid>
    <comment_count>7</comment_count>
      <attachid>411085</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-10-11 18:19:21 -0700</bug_when>
    <thetext>Created attachment 411085
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1696780</commentid>
    <comment_count>8</comment_count>
      <attachid>411092</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-10-11 19:35:38 -0700</bug_when>
    <thetext>Created attachment 411092
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1696787</commentid>
    <comment_count>9</comment_count>
      <attachid>411092</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-10-11 21:03:29 -0700</bug_when>
    <thetext>Comment on attachment 411092
Patch

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

&gt; Source/WebKit/ChangeLog:10
&gt; +        Add SPI for setting any WebKit preference using the key as defined in the WebPreferences*.yaml
&gt; +        files. This will allow adding testing of non-default behavior that we don&apos;t necessarily want to
&gt; +        expose via its own API or SPI.

If it’s for testing specifically, should we put &quot;for testing&quot; in the function names?

Also, do we need something that resets everything to defaults, or things that set all features of a certain category (&quot;all experimental features on&quot;)?

&gt; Source/WebKit/UIProcess/WebPreferences.h:80
&gt;      // Exposed for WebKitTestRunner use only.

Could we have put that in the function names?

&gt; Source/WebKit/UIProcess/API/C/WKPreferencesRefPrivate.h:58
&gt; +// The following generic setter functions are only intended for use by testing infrastructure.

Same question: Could we encode that in the name?

How is the bool one below different from WKPreferencesSetExperimentalFeatureForKey and WKPreferencesSetInternalDebugFeatureForKey?

&gt; Source/WebKit/UIProcess/API/C/WKPreferencesRefPrivate.h:65
&gt;  WK_EXPORT void WKPreferencesResetTestRunnerOverrides(WKPreferencesRef preferencesRef);

What is a &quot;test runner override&quot; and how is that different from other settings?

&gt; Tools/WebKitTestRunner/TestController.cpp:845
&gt;      // Set internal features that have different default values for testing.

Should this be configured by the .yaml file instead of explicit code here?

&gt; Tools/WebKitTestRunner/TestOptions.cpp:101
&gt;  static const std::unordered_map&lt;std::string, bool&gt;&amp; boolDefaultsMap()

Should this be configured by the .yaml file instead of explicit code here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1696790</commentid>
    <comment_count>10</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-10-11 23:29:58 -0700</bug_when>
    <thetext>Committed r268342: &lt;https://trac.webkit.org/changeset/268342&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 411092.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1696791</commentid>
    <comment_count>11</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-10-11 23:30:17 -0700</bug_when>
    <thetext>&lt;rdar://problem/70194793&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1696925</commentid>
    <comment_count>12</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-10-12 10:43:16 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #9)
&gt; Comment on attachment 411092 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=411092&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/ChangeLog:10
&gt; &gt; +        Add SPI for setting any WebKit preference using the key as defined in the WebPreferences*.yaml
&gt; &gt; +        files. This will allow adding testing of non-default behavior that we don&apos;t necessarily want to
&gt; &gt; +        expose via its own API or SPI.
&gt; 
&gt; If it’s for testing specifically, should we put &quot;for testing&quot; in the
&gt; function names?

Yeah, I guess so. I kind of hate that, but it&apos;s better than a comment for sure.

&gt; 
&gt; Also, do we need something that resets everything to defaults, or things
&gt; that set all features of a certain category (&quot;all experimental features on&quot;)?

I don&apos;t think we need that at the moment, but it may come up. We may also want functions for thinks like checking if &quot;feature string&quot; / &quot;key&quot; is supported or maybe getting the default value, but I am going to hold off on adding them until I really need them. 

&gt; 
&gt; &gt; Source/WebKit/UIProcess/WebPreferences.h:80
&gt; &gt;      // Exposed for WebKitTestRunner use only.
&gt; 
&gt; Could we have put that in the function names?
&gt; 
&gt; &gt; Source/WebKit/UIProcess/API/C/WKPreferencesRefPrivate.h:58
&gt; &gt; +// The following generic setter functions are only intended for use by testing infrastructure.
&gt; 
&gt; Same question: Could we encode that in the name?

Yeah, we probably should.

&gt; 
&gt; How is the bool one below different from
&gt; WKPreferencesSetExperimentalFeatureForKey and
&gt; WKPreferencesSetInternalDebugFeatureForKey?

Those are hardcoded to only work for experimental or internal feature keys. The new one works for any key. I will be getting rid of the experimental and internal ones that take string keys soon.

&gt; 
&gt; &gt; Source/WebKit/UIProcess/API/C/WKPreferencesRefPrivate.h:65
&gt; &gt;  WK_EXPORT void WKPreferencesResetTestRunnerOverrides(WKPreferencesRef preferencesRef);
&gt; 
&gt; What is a &quot;test runner override&quot; and how is that different from other
&gt; settings?

The test runner override stuff is some convoluted WebProcess/InjectedBundle only functionality that gets reset anytime any preference changes, that I will replace with use of window.internals/test headers soon. All WKPreferencesResetTestRunnerOverrides() does is force a a fake update of the preferences to reset all the overrides in web process.

&gt; 
&gt; &gt; Tools/WebKitTestRunner/TestController.cpp:845
&gt; &gt;      // Set internal features that have different default values for testing.
&gt; 
&gt; Should this be configured by the .yaml file instead of explicit code here?

Maybe. An alternate option is to use something like https://bugs.webkit.org/show_bug.cgi?id=217297, with a set of defaults defined in ./LayoutTests. 

&gt; 
&gt; &gt; Tools/WebKitTestRunner/TestOptions.cpp:101
&gt; &gt;  static const std::unordered_map&lt;std::string, bool&gt;&amp; boolDefaultsMap()
&gt; 
&gt; Should this be configured by the .yaml file instead of explicit code here?

It will be in future changes.


Thanks for the review!</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411059</attachid>
            <date>2020-10-11 12:48:35 -0700</date>
            <delta_ts>2020-10-11 13:15:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217582-20201011124834.patch</filename>
            <type>text/plain</type>
            <size>72537</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNjgzMjMpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM1IEBACisyMDIwLTEwLTExICBTYW0gV2Vpbmln
ICA8d2VpbmlnQGFwcGxlLmNvbT4KKworICAgICAgICBbUHJlZmVyZW5jZXNdIEludHJvZHVjZSBz
dHJpbmcgYmFzZWQgU1BJIGZvciBXS1ByZWZlcmVuY2VzIHRvIGFsbG93IHRlc3RzIHRvIGNoYW5n
ZSBpbnRlcm5hbCBiZWhhdmlvciB3aXRob3V0IGFsd2F5cyBhZGRpbmcgYWRkaXRpb25hbCBTUEkK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzU4Mgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtXSVBdCisK
KyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERl
cml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2Vz
Lm1ha2U6CisgICAgICAgICogU2NyaXB0cy9QcmVmZXJlbmNlc1RlbXBsYXRlcy9XZWJQcmVmZXJl
bmNlc0V4cGVyaW1lbnRhbEZlYXR1cmVzLmNwcC5lcmI6CisgICAgICAgICogU2NyaXB0cy9QcmVm
ZXJlbmNlc1RlbXBsYXRlcy9XZWJQcmVmZXJlbmNlc0dldHRlclNldHRlcnMuY3BwLmVyYjogQWRk
ZWQuCisgICAgICAgICogU2NyaXB0cy9QcmVmZXJlbmNlc1RlbXBsYXRlcy9XZWJQcmVmZXJlbmNl
c0ludGVybmFsRGVidWdGZWF0dXJlcy5jcHAuZXJiOgorICAgICAgICAqIFNoYXJlZC9BUEkvYy9X
S1N0cmluZy5jcHA6CisgICAgICAgIChXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4U3RyaW5nV2l0aExl
bmd0aCk6CisgICAgICAgICogU2hhcmVkL0FQSS9jL1dLU3RyaW5nLmg6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwOgorICAgICAgICAoV0tQcmVmZXJlbmNlc1Nl
dEJvb2xWYWx1ZUZvcktleSk6CisgICAgICAgIChXS1ByZWZlcmVuY2VzU2V0RG91YmxlVmFsdWVG
b3JLZXkpOgorICAgICAgICAoV0tQcmVmZXJlbmNlc1NldFVJbnQzMlZhbHVlRm9yS2V5KToKKyAg
ICAgICAgKFdLUHJlZmVyZW5jZXNTZXRTdHJpbmdWYWx1ZUZvcktleSk6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXNSZWZQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9j
ZXNzL1dlYlByZWZlcmVuY2VzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJlZmVyZW5jZXM6
OnNldEJvb2xWYWx1ZUZvcktleSk6CisgICAgICAgIChXZWJLaXQ6OldlYlByZWZlcmVuY2VzOjpz
ZXREb3VibGVWYWx1ZUZvcktleSk6CisgICAgICAgIChXZWJLaXQ6OldlYlByZWZlcmVuY2VzOjpz
ZXRVSW50MzJWYWx1ZUZvcktleSk6CisgICAgICAgIChXZWJLaXQ6OldlYlByZWZlcmVuY2VzOjpz
ZXRTdHJpbmdWYWx1ZUZvcktleSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByZWZlcmVuY2Vz
Lmg6CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisKIDIwMjAt
MTAtMTAgIFNhbSBXZWluaWcgIDx3ZWluaWdAYXBwbGUuY29tPgogCiAgICAgICAgIFVzZSBXZWJQ
cmVmZXJlbmNlIGRlZmluaXRpb25zIGZyb20gc2hhcmVkIGNvbmZpZ3VyYXRpb24gZmlsZXMgaW4g
V2ViQ29yZSAoUGFydCAxKQpJbmRleDogU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0CShyZXZpc2lvbiAyNjgzMjMp
CisrKyBTb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0CSh3b3JraW5nIGNvcHkpCkBAIC01MDAs
NiArNTAwLDcgQEAgc2V0KFdlYktpdF9XRUJfUFJFRkVSRU5DRVNfVEVNUExBVEVTCiAgICAgJHtX
RUJLSVRfRElSfS9TY3JpcHRzL1ByZWZlcmVuY2VzVGVtcGxhdGVzL1dlYlBhZ2VVcGRhdGVQcmVm
ZXJlbmNlcy5jcHAuZXJiCiAgICAgJHtXRUJLSVRfRElSfS9TY3JpcHRzL1ByZWZlcmVuY2VzVGVt
cGxhdGVzL1dlYlByZWZlcmVuY2VzRGVmaW5pdGlvbnMuaC5lcmIKICAgICAke1dFQktJVF9ESVJ9
L1NjcmlwdHMvUHJlZmVyZW5jZXNUZW1wbGF0ZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWxG
ZWF0dXJlcy5jcHAuZXJiCisgICAgJHtXRUJLSVRfRElSfS9TY3JpcHRzL1ByZWZlcmVuY2VzVGVt
cGxhdGVzL1dlYlByZWZlcmVuY2VzR2V0dGVyU2V0dGVycy5jcHAuZXJiCiAgICAgJHtXRUJLSVRf
RElSfS9TY3JpcHRzL1ByZWZlcmVuY2VzVGVtcGxhdGVzL1dlYlByZWZlcmVuY2VzSW50ZXJuYWxE
ZWJ1Z0ZlYXR1cmVzLmNwcC5lcmIKICAgICAke1dFQktJVF9ESVJ9L1NjcmlwdHMvUHJlZmVyZW5j
ZXNUZW1wbGF0ZXMvV2ViUHJlZmVyZW5jZXNLZXlzLmNwcC5lcmIKICAgICAke1dFQktJVF9ESVJ9
L1NjcmlwdHMvUHJlZmVyZW5jZXNUZW1wbGF0ZXMvV2ViUHJlZmVyZW5jZXNLZXlzLmguZXJiCkBA
IC01MTYsOSArNTE3LDkgQEAgc2V0KFdlYktpdF9XRUJfUFJFRkVSRU5DRVMKIHNldF9zb3VyY2Vf
ZmlsZXNfcHJvcGVydGllcygke1dlYktpdF9XRUJfUFJFRkVSRU5DRVN9IFBST1BFUlRJRVMgR0VO
RVJBVEVEIFRSVUUpCiAKIGFkZF9jdXN0b21fY29tbWFuZCgKLSAgICBPVVRQVVQgJHtXZWJLaXRf
REVSSVZFRF9TT1VSQ0VTX0RJUn0vV2ViUGFnZVVwZGF0ZVByZWZlcmVuY2VzLmNwcCAke1dlYktp
dF9ERVJJVkVEX1NPVVJDRVNfRElSfS9XZWJQcmVmZXJlbmNlc0RlZmluaXRpb25zLmggJHtXZWJL
aXRfREVSSVZFRF9TT1VSQ0VTX0RJUn0vV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWxGZWF0dXJl
cy5jcHAgJHtXZWJLaXRfREVSSVZFRF9TT1VSQ0VTX0RJUn0vV2ViUHJlZmVyZW5jZXNJbnRlcm5h
bERlYnVnRmVhdHVyZXMuY3BwICR7V2ViS2l0X0RFUklWRURfU09VUkNFU19ESVJ9L1dlYlByZWZl
cmVuY2VzS2V5cy5jcHAgJHtXZWJLaXRfREVSSVZFRF9TT1VSQ0VTX0RJUn0vV2ViUHJlZmVyZW5j
ZXNLZXlzLmggJHtXZWJLaXRfREVSSVZFRF9TT1VSQ0VTX0RJUn0vV2ViUHJlZmVyZW5jZXNTdG9y
ZURlZmF1bHRzTWFwLmNwcAorICAgIE9VVFBVVCAke1dlYktpdF9ERVJJVkVEX1NPVVJDRVNfRElS
fS9XZWJQYWdlVXBkYXRlUHJlZmVyZW5jZXMuY3BwICR7V2ViS2l0X0RFUklWRURfU09VUkNFU19E
SVJ9L1dlYlByZWZlcmVuY2VzRGVmaW5pdGlvbnMuaCAke1dlYktpdF9ERVJJVkVEX1NPVVJDRVNf
RElSfS9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbEZlYXR1cmVzLmNwcCAke1dlYktpdF9ERVJJ
VkVEX1NPVVJDRVNfRElSfS9XZWJQcmVmZXJlbmNlc0dldHRlclNldHRlcnMuY3BwICR7V2ViS2l0
X0RFUklWRURfU09VUkNFU19ESVJ9L1dlYlByZWZlcmVuY2VzSW50ZXJuYWxEZWJ1Z0ZlYXR1cmVz
LmNwcCAke1dlYktpdF9ERVJJVkVEX1NPVVJDRVNfRElSfS9XZWJQcmVmZXJlbmNlc0tleXMuY3Bw
ICR7V2ViS2l0X0RFUklWRURfU09VUkNFU19ESVJ9L1dlYlByZWZlcmVuY2VzS2V5cy5oICR7V2Vi
S2l0X0RFUklWRURfU09VUkNFU19ESVJ9L1dlYlByZWZlcmVuY2VzU3RvcmVEZWZhdWx0c01hcC5j
cHAKICAgICBERVBFTkRTICR7V2ViS2l0X1dFQl9QUkVGRVJFTkNFU19URU1QTEFURVN9ICR7V2Vi
S2l0X1dFQl9QUkVGRVJFTkNFU30gV1RGX0NvcHlQcmVmZXJlbmNlcwotICAgIENPTU1BTkQgJHtS
VUJZX0VYRUNVVEFCTEV9ICR7V1RGX1NDUklQVFNfRElSfS9HZW5lcmF0ZVByZWZlcmVuY2VzLnJi
IC0tZnJvbnRlbmQgV2ViS2l0IC0tYmFzZSAke1dURl9TQ1JJUFRTX0RJUn0vUHJlZmVyZW5jZXMv
V2ViUHJlZmVyZW5jZXMueWFtbCAtLWRlYnVnICR7V1RGX1NDUklQVFNfRElSfS9QcmVmZXJlbmNl
cy9XZWJQcmVmZXJlbmNlc0RlYnVnLnlhbWwgLS1leHBlcmltZW50YWwgJHtXVEZfU0NSSVBUU19E
SVJ9L1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwgLS1pbnRlcm5h
bCAke1dURl9TQ1JJUFRTX0RJUn0vUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNJbnRlcm5hbC55
YW1sIC0tb3V0cHV0RGlyICIke1dlYktpdF9ERVJJVkVEX1NPVVJDRVNfRElSfSIgLS10ZW1wbGF0
ZSAke1dFQktJVF9ESVJ9L1NjcmlwdHMvUHJlZmVyZW5jZXNUZW1wbGF0ZXMvV2ViUGFnZVVwZGF0
ZVByZWZlcmVuY2VzLmNwcC5lcmIgLS10ZW1wbGF0ZSAke1dFQktJVF9ESVJ9L1NjcmlwdHMvUHJl
ZmVyZW5jZXNUZW1wbGF0ZXMvV2ViUHJlZmVyZW5jZXNEZWZpbml0aW9ucy5oLmVyYiAtLXRlbXBs
YXRlICR7V0VCS0lUX0RJUn0vU2NyaXB0cy9QcmVmZXJlbmNlc1RlbXBsYXRlcy9XZWJQcmVmZXJl
bmNlc0V4cGVyaW1lbnRhbEZlYXR1cmVzLmNwcC5lcmIgLS10ZW1wbGF0ZSAke1dFQktJVF9ESVJ9
L1NjcmlwdHMvUHJlZmVyZW5jZXNUZW1wbGF0ZXMvV2ViUHJlZmVyZW5jZXNJbnRlcm5hbERlYnVn
RmVhdHVyZXMuY3BwLmVyYiAtLXRlbXBsYXRlICR7V0VCS0lUX0RJUn0vU2NyaXB0cy9QcmVmZXJl
bmNlc1RlbXBsYXRlcy9XZWJQcmVmZXJlbmNlc0tleXMuY3BwLmVyYiAtLXRlbXBsYXRlICR7V0VC
S0lUX0RJUn0vU2NyaXB0cy9QcmVmZXJlbmNlc1RlbXBsYXRlcy9XZWJQcmVmZXJlbmNlc0tleXMu
aC5lcmIgLS10ZW1wbGF0ZSAke1dFQktJVF9ESVJ9L1NjcmlwdHMvUHJlZmVyZW5jZXNUZW1wbGF0
ZXMvV2ViUHJlZmVyZW5jZXNTdG9yZURlZmF1bHRzTWFwLmNwcC5lcmIKKyAgICBDT01NQU5EICR7
UlVCWV9FWEVDVVRBQkxFfSAke1dURl9TQ1JJUFRTX0RJUn0vR2VuZXJhdGVQcmVmZXJlbmNlcy5y
YiAtLWZyb250ZW5kIFdlYktpdCAtLWJhc2UgJHtXVEZfU0NSSVBUU19ESVJ9L1ByZWZlcmVuY2Vz
L1dlYlByZWZlcmVuY2VzLnlhbWwgLS1kZWJ1ZyAke1dURl9TQ1JJUFRTX0RJUn0vUHJlZmVyZW5j
ZXMvV2ViUHJlZmVyZW5jZXNEZWJ1Zy55YW1sIC0tZXhwZXJpbWVudGFsICR7V1RGX1NDUklQVFNf
RElSfS9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1sIC0taW50ZXJu
YWwgJHtXVEZfU0NSSVBUU19ESVJ9L1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzSW50ZXJuYWwu
eWFtbCAtLW91dHB1dERpciAiJHtXZWJLaXRfREVSSVZFRF9TT1VSQ0VTX0RJUn0iIC0tdGVtcGxh
dGUgJHtXRUJLSVRfRElSfS9TY3JpcHRzL1ByZWZlcmVuY2VzVGVtcGxhdGVzL1dlYlBhZ2VVcGRh
dGVQcmVmZXJlbmNlcy5jcHAuZXJiIC0tdGVtcGxhdGUgJHtXRUJLSVRfRElSfS9TY3JpcHRzL1By
ZWZlcmVuY2VzVGVtcGxhdGVzL1dlYlByZWZlcmVuY2VzRGVmaW5pdGlvbnMuaC5lcmIgLS10ZW1w
bGF0ZSAke1dFQktJVF9ESVJ9L1NjcmlwdHMvUHJlZmVyZW5jZXNUZW1wbGF0ZXMvV2ViUHJlZmVy
ZW5jZXNFeHBlcmltZW50YWxGZWF0dXJlcy5jcHAuZXJiIC0tdGVtcGxhdGUgJHtXRUJLSVRfRElS
fS9TY3JpcHRzL1ByZWZlcmVuY2VzVGVtcGxhdGVzL1dlYlByZWZlcmVuY2VzR2V0dGVyU2V0dGVy
cy5jcHAuZXJiIC0tdGVtcGxhdGUgJHtXRUJLSVRfRElSfS9TY3JpcHRzL1ByZWZlcmVuY2VzVGVt
cGxhdGVzL1dlYlByZWZlcmVuY2VzSW50ZXJuYWxEZWJ1Z0ZlYXR1cmVzLmNwcC5lcmIgLS10ZW1w
bGF0ZSAke1dFQktJVF9ESVJ9L1NjcmlwdHMvUHJlZmVyZW5jZXNUZW1wbGF0ZXMvV2ViUHJlZmVy
ZW5jZXNLZXlzLmNwcC5lcmIgLS10ZW1wbGF0ZSAke1dFQktJVF9ESVJ9L1NjcmlwdHMvUHJlZmVy
ZW5jZXNUZW1wbGF0ZXMvV2ViUHJlZmVyZW5jZXNLZXlzLmguZXJiIC0tdGVtcGxhdGUgJHtXRUJL
SVRfRElSfS9TY3JpcHRzL1ByZWZlcmVuY2VzVGVtcGxhdGVzL1dlYlByZWZlcmVuY2VzU3RvcmVE
ZWZhdWx0c01hcC5jcHAuZXJiCiAgICAgVkVSQkFUSU0pCiAKIGxpc3QoQVBQRU5EIFdlYktpdF9I
RUFERVJTCkluZGV4OiBTb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxp
c3QKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2Zp
bGVsaXN0CShyZXZpc2lvbiAyNjgzMjMpCisrKyBTb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2Vz
LWlucHV0LnhjZmlsZWxpc3QJKHdvcmtpbmcgY29weSkKQEAgLTY4LDYgKzY4LDcgQEAgJChQUk9K
RUNUX0RJUikvUGx1Z2luUHJvY2Vzcy9tYWMvY29tLmFwcAogJChQUk9KRUNUX0RJUikvU2NyaXB0
cy9QcmVmZXJlbmNlc1RlbXBsYXRlcy9XZWJQYWdlVXBkYXRlUHJlZmVyZW5jZXMuY3BwLmVyYgog
JChQUk9KRUNUX0RJUikvU2NyaXB0cy9QcmVmZXJlbmNlc1RlbXBsYXRlcy9XZWJQcmVmZXJlbmNl
c0RlZmluaXRpb25zLmguZXJiCiAkKFBST0pFQ1RfRElSKS9TY3JpcHRzL1ByZWZlcmVuY2VzVGVt
cGxhdGVzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsRmVhdHVyZXMuY3BwLmVyYgorJChQUk9K
RUNUX0RJUikvU2NyaXB0cy9QcmVmZXJlbmNlc1RlbXBsYXRlcy9XZWJQcmVmZXJlbmNlc0dldHRl
clNldHRlcnMuY3BwLmVyYgogJChQUk9KRUNUX0RJUikvU2NyaXB0cy9QcmVmZXJlbmNlc1RlbXBs
YXRlcy9XZWJQcmVmZXJlbmNlc0ludGVybmFsRGVidWdGZWF0dXJlcy5jcHAuZXJiCiAkKFBST0pF
Q1RfRElSKS9TY3JpcHRzL1ByZWZlcmVuY2VzVGVtcGxhdGVzL1dlYlByZWZlcmVuY2VzS2V5cy5j
cHAuZXJiCiAkKFBST0pFQ1RfRElSKS9TY3JpcHRzL1ByZWZlcmVuY2VzVGVtcGxhdGVzL1dlYlBy
ZWZlcmVuY2VzS2V5cy5oLmVyYgpJbmRleDogU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1v
dXRwdXQueGNmaWxlbGlzdAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3Vy
Y2VzLW91dHB1dC54Y2ZpbGVsaXN0CShyZXZpc2lvbiAyNjgzMjMpCisrKyBTb3VyY2UvV2ViS2l0
L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CSh3b3JraW5nIGNvcHkpCkBAIC0zNjks
NiArMzY5LDcgQEAgJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYgogJChC
VUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViUHJlZmVyZW5jZXND
b21iaW5lZC55YW1sCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0
Mi9XZWJQcmVmZXJlbmNlc0RlZmluaXRpb25zLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJLaXQyL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsRmVhdHVyZXMuY3Bw
CiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJQcmVmZXJl
bmNlc0dldHRlclNldHRlcnMuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViS2l0Mi9XZWJQcmVmZXJlbmNlc0ludGVybmFsRGVidWdGZWF0dXJlcy5jcHAKICQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYlByZWZlcmVuY2VzS2V5
cy5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYlBy
ZWZlcmVuY2VzS2V5cy5oCkluZGV4OiBTb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCShyZXZpc2lv
biAyNjgzMjMpCisrKyBTb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UJKHdvcmtpbmcg
Y29weSkKQEAgLTM1Myw5ICszNTMsMTAgQEAgV0VCX1BSRUZFUkVOQ0VTX1RFTVBMQVRFUyA9IFwK
ICAgICAkKFdlYktpdDIpL1NjcmlwdHMvUHJlZmVyZW5jZXNUZW1wbGF0ZXMvV2ViUGFnZVVwZGF0
ZVByZWZlcmVuY2VzLmNwcC5lcmIgXAogICAgICQoV2ViS2l0MikvU2NyaXB0cy9QcmVmZXJlbmNl
c1RlbXBsYXRlcy9XZWJQcmVmZXJlbmNlc0RlZmluaXRpb25zLmguZXJiIFwKICAgICAkKFdlYktp
dDIpL1NjcmlwdHMvUHJlZmVyZW5jZXNUZW1wbGF0ZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50
YWxGZWF0dXJlcy5jcHAuZXJiIFwKKyAgICAkKFdlYktpdDIpL1NjcmlwdHMvUHJlZmVyZW5jZXNU
ZW1wbGF0ZXMvV2ViUHJlZmVyZW5jZXNHZXR0ZXJTZXR0ZXJzLmNwcC5lcmIgXAogICAgICQoV2Vi
S2l0MikvU2NyaXB0cy9QcmVmZXJlbmNlc1RlbXBsYXRlcy9XZWJQcmVmZXJlbmNlc0ludGVybmFs
RGVidWdGZWF0dXJlcy5jcHAuZXJiIFwKLSAgICAkKFdlYktpdDIpL1NjcmlwdHMvUHJlZmVyZW5j
ZXNUZW1wbGF0ZXMvV2ViUHJlZmVyZW5jZXNLZXlzLmguZXJiIFwKICAgICAkKFdlYktpdDIpL1Nj
cmlwdHMvUHJlZmVyZW5jZXNUZW1wbGF0ZXMvV2ViUHJlZmVyZW5jZXNLZXlzLmNwcC5lcmIgXAor
ICAgICQoV2ViS2l0MikvU2NyaXB0cy9QcmVmZXJlbmNlc1RlbXBsYXRlcy9XZWJQcmVmZXJlbmNl
c0tleXMuaC5lcmIgXAogICAgICQoV2ViS2l0MikvU2NyaXB0cy9QcmVmZXJlbmNlc1RlbXBsYXRl
cy9XZWJQcmVmZXJlbmNlc1N0b3JlRGVmYXVsdHNNYXAuY3BwLmVyYiBcCiAjCiBXRUJfUFJFRkVS
RU5DRVNfRklMRVMgPSAkKGJhc2VuYW1lICQobm90ZGlyICQoV0VCX1BSRUZFUkVOQ0VTX1RFTVBM
QVRFUykpKQpJbmRleDogU291cmNlL1dlYktpdC9TY3JpcHRzL1ByZWZlcmVuY2VzVGVtcGxhdGVz
L1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsRmVhdHVyZXMuY3BwLmVyYgo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0L1NjcmlwdHMvUHJlZmVyZW5jZXNUZW1wbGF0ZXMvV2ViUHJlZmVyZW5j
ZXNFeHBlcmltZW50YWxGZWF0dXJlcy5jcHAuZXJiCShyZXZpc2lvbiAyNjgzMjMpCisrKyBTb3Vy
Y2UvV2ViS2l0L1NjcmlwdHMvUHJlZmVyZW5jZXNUZW1wbGF0ZXMvV2ViUHJlZmVyZW5jZXNFeHBl
cmltZW50YWxGZWF0dXJlcy5jcHAuZXJiCSh3b3JraW5nIGNvcHkpCkBAIC0zMywyMCArMzMsNiBA
QAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotPCUtIGZvciBAcHJlZiBpbiBAZXhwZXJpbWVudGFs
RmVhdHVyZXMgZG8gLSU+Ci12b2lkIFdlYlByZWZlcmVuY2VzOjpzZXQ8JT0gQHByZWYubmFtZSAl
Pihjb25zdCBib29sJiB2YWx1ZSkKLXsKLSAgICBpZiAoIW1fc3RvcmUuc2V0Qm9vbFZhbHVlRm9y
S2V5KFdlYlByZWZlcmVuY2VzS2V5Ojo8JT0gQHByZWYubmFtZUxvd2VyICU+S2V5KCksIHZhbHVl
KSkKLSAgICAgICAgcmV0dXJuOwotICAgIHVwZGF0ZUJvb2xWYWx1ZUZvckV4cGVyaW1lbnRhbEZl
YXR1cmVLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OjwlPSBAcHJlZi5uYW1lTG93ZXIgJT5LZXkoKSwg
dmFsdWUpOwotfQotCi1ib29sIFdlYlByZWZlcmVuY2VzOjo8JT0gQHByZWYubmFtZUxvd2VyICU+
KCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9zdG9yZS5nZXRCb29sVmFsdWVGb3JLZXkoV2ViUHJl
ZmVyZW5jZXNLZXk6OjwlPSBAcHJlZi5uYW1lTG93ZXIgJT5LZXkoKSk7Ci19Ci0KLTwlLSBlbmQg
LSU+CiBjb25zdCBWZWN0b3I8UmVmUHRyPEFQSTo6T2JqZWN0Pj4mIFdlYlByZWZlcmVuY2VzOjpl
eHBlcmltZW50YWxGZWF0dXJlcygpCiB7CiAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFZlY3Rv
cjxSZWZQdHI8QVBJOjpPYmplY3Q+Pj4gZmVhdHVyZXMoc3RkOjppbml0aWFsaXplcl9saXN0PFJl
ZlB0cjxBUEk6Ok9iamVjdD4+IHsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvU2NyaXB0cy9QcmVmZXJl
bmNlc1RlbXBsYXRlcy9XZWJQcmVmZXJlbmNlc0dldHRlclNldHRlcnMuY3BwLmVyYgo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1NjcmlwdHMvUHJlZmVyZW5jZXNUZW1wbGF0ZXMvV2ViUHJl
ZmVyZW5jZXNHZXR0ZXJTZXR0ZXJzLmNwcC5lcmIJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dl
YktpdC9TY3JpcHRzL1ByZWZlcmVuY2VzVGVtcGxhdGVzL1dlYlByZWZlcmVuY2VzR2V0dGVyU2V0
dGVycy5jcHAuZXJiCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsOTggQEAKKworLyoKKyogPCU9
IEB3YXJuaW5nICU+CisqCisqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisqCisqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyogYXJlIG1ldDoKKyog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisqCisqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYlByZWZlcmVuY2VzLmgiCisKKyNp
bmNsdWRlICJXZWJQcmVmZXJlbmNlc0RlZmluaXRpb25zLmgiCisjaW5jbHVkZSAiV2ViUHJlZmVy
ZW5jZXNLZXlzLmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCis8JS0gZm9yIEBwcmVmIGluIChA
cHJlZmVyZW5jZXNOb3REZWJ1ZyArIEBwcmVmZXJlbmNlc0RlYnVnKSBkbyAtJT4KK3ZvaWQgV2Vi
UHJlZmVyZW5jZXM6OnNldDwlPSBAcHJlZi5uYW1lICU+KGNvbnN0IDwlPSBAcHJlZi50eXBlICU+
JiB2YWx1ZSkKK3sKKyAgICBpZiAoIW1fc3RvcmUuc2V0PCU9IEBwcmVmLnR5cGVVcHBlciAlPlZh
bHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5Ojo8JT0gQHByZWYubmFtZUxvd2VyICU+S2V5KCks
IHZhbHVlKSkKKyAgICAgICAgcmV0dXJuOworICAgIHVwZGF0ZTwlPSBAcHJlZi50eXBlVXBwZXIg
JT5WYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6PCU9IEBwcmVmLm5hbWVMb3dlciAlPktl
eSgpLCB2YWx1ZSk7Cit9CisKKzwlPSBAcHJlZi50eXBlICU+IFdlYlByZWZlcmVuY2VzOjo8JT0g
QHByZWYubmFtZUxvd2VyICU+KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9zdG9yZS5nZXQ8JT0g
QHByZWYudHlwZVVwcGVyICU+VmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OjwlPSBAcHJl
Zi5uYW1lTG93ZXIgJT5LZXkoKSk7Cit9CisKK3ZvaWQgV2ViUHJlZmVyZW5jZXM6OmRlbGV0ZTwl
PSBAcHJlZi5uYW1lICU+KCkKK3sKKyAgICBkZWxldGVLZXkoV2ViUHJlZmVyZW5jZXNLZXk6Ojwl
PSBAcHJlZi5uYW1lTG93ZXIgJT5LZXkoKSk7Cit9CisKKzwlLSBlbmQgLSU+CisKKzwlLSBmb3Ig
QHByZWYgaW4gQGV4cGVyaW1lbnRhbEZlYXR1cmVzIGRvIC0lPgordm9pZCBXZWJQcmVmZXJlbmNl
czo6c2V0PCU9IEBwcmVmLm5hbWUgJT4oY29uc3QgYm9vbCYgdmFsdWUpCit7CisgICAgaWYgKCFt
X3N0b3JlLnNldEJvb2xWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6PCU9IEBwcmVmLm5h
bWVMb3dlciAlPktleSgpLCB2YWx1ZSkpCisgICAgICAgIHJldHVybjsKKyAgICB1cGRhdGVCb29s
VmFsdWVGb3JFeHBlcmltZW50YWxGZWF0dXJlS2V5KFdlYlByZWZlcmVuY2VzS2V5Ojo8JT0gQHBy
ZWYubmFtZUxvd2VyICU+S2V5KCksIHZhbHVlKTsKK30KKworYm9vbCBXZWJQcmVmZXJlbmNlczo6
PCU9IEBwcmVmLm5hbWVMb3dlciAlPigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fc3RvcmUuZ2V0
Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5Ojo8JT0gQHByZWYubmFtZUxvd2VyICU+
S2V5KCkpOworfQorCit2b2lkIFdlYlByZWZlcmVuY2VzOjpkZWxldGU8JT0gQHByZWYubmFtZSAl
PigpCit7CisgICAgZGVsZXRlS2V5KFdlYlByZWZlcmVuY2VzS2V5Ojo8JT0gQHByZWYubmFtZUxv
d2VyICU+S2V5KCkpOworfQorCis8JS0gZW5kIC0lPgorCis8JS0gZm9yIEBwcmVmIGluIEBpbnRl
cm5hbEZlYXR1cmVzIGRvIC0lPgordm9pZCBXZWJQcmVmZXJlbmNlczo6c2V0PCU9IEBwcmVmLm5h
bWUgJT4oY29uc3QgYm9vbCYgdmFsdWUpCit7CisgICAgaWYgKCFtX3N0b3JlLnNldEJvb2xWYWx1
ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6PCU9IEBwcmVmLm5hbWVMb3dlciAlPktleSgpLCB2
YWx1ZSkpCisgICAgICAgIHJldHVybjsKKyAgICB1cGRhdGVCb29sVmFsdWVGb3JJbnRlcm5hbERl
YnVnRmVhdHVyZUtleShXZWJQcmVmZXJlbmNlc0tleTo6PCU9IEBwcmVmLm5hbWVMb3dlciAlPktl
eSgpLCB2YWx1ZSk7Cit9CisKK2Jvb2wgV2ViUHJlZmVyZW5jZXM6OjwlPSBAcHJlZi5uYW1lTG93
ZXIgJT4oKSBjb25zdAoreworICAgIHJldHVybiBtX3N0b3JlLmdldEJvb2xWYWx1ZUZvcktleShX
ZWJQcmVmZXJlbmNlc0tleTo6PCU9IEBwcmVmLm5hbWVMb3dlciAlPktleSgpKTsKK30KKwordm9p
ZCBXZWJQcmVmZXJlbmNlczo6ZGVsZXRlPCU9IEBwcmVmLm5hbWUgJT4oKQoreworICAgIGRlbGV0
ZUtleShXZWJQcmVmZXJlbmNlc0tleTo6PCU9IEBwcmVmLm5hbWVMb3dlciAlPktleSgpKTsKK30K
KworPCUtIGVuZCAtJT4KKworfQorCkluZGV4OiBTb3VyY2UvV2ViS2l0L1NjcmlwdHMvUHJlZmVy
ZW5jZXNUZW1wbGF0ZXMvV2ViUHJlZmVyZW5jZXNJbnRlcm5hbERlYnVnRmVhdHVyZXMuY3BwLmVy
Ygo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1NjcmlwdHMvUHJlZmVyZW5jZXNUZW1wbGF0
ZXMvV2ViUHJlZmVyZW5jZXNJbnRlcm5hbERlYnVnRmVhdHVyZXMuY3BwLmVyYgkocmV2aXNpb24g
MjY4MzIzKQorKysgU291cmNlL1dlYktpdC9TY3JpcHRzL1ByZWZlcmVuY2VzVGVtcGxhdGVzL1dl
YlByZWZlcmVuY2VzSW50ZXJuYWxEZWJ1Z0ZlYXR1cmVzLmNwcC5lcmIJKHdvcmtpbmcgY29weSkK
QEAgLTMzLDIwICszMyw2IEBACiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi08JS0gZm9yIEBwcmVm
IGluIEBpbnRlcm5hbEZlYXR1cmVzIGRvIC0lPgotdm9pZCBXZWJQcmVmZXJlbmNlczo6c2V0PCU9
IEBwcmVmLm5hbWUgJT4oY29uc3QgYm9vbCYgdmFsdWUpCi17Ci0gICAgaWYgKCFtX3N0b3JlLnNl
dEJvb2xWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6PCU9IEBwcmVmLm5hbWVMb3dlciAl
PktleSgpLCB2YWx1ZSkpCi0gICAgICAgIHJldHVybjsKLSAgICB1cGRhdGVCb29sVmFsdWVGb3JJ
bnRlcm5hbERlYnVnRmVhdHVyZUtleShXZWJQcmVmZXJlbmNlc0tleTo6PCU9IEBwcmVmLm5hbWVM
b3dlciAlPktleSgpLCB2YWx1ZSk7Ci19Ci0KLWJvb2wgV2ViUHJlZmVyZW5jZXM6OjwlPSBAcHJl
Zi5uYW1lTG93ZXIgJT4oKSBjb25zdAotewotICAgIHJldHVybiBtX3N0b3JlLmdldEJvb2xWYWx1
ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6PCU9IEBwcmVmLm5hbWVMb3dlciAlPktleSgpKTsK
LX0KLQotPCUtIGVuZCAtJT4KIGNvbnN0IFZlY3RvcjxSZWZQdHI8QVBJOjpPYmplY3Q+PiYgV2Vi
UHJlZmVyZW5jZXM6OmludGVybmFsRGVidWdGZWF0dXJlcygpCiB7CiAgICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPFZlY3RvcjxSZWZQdHI8QVBJOjpPYmplY3Q+Pj4gZmVhdHVyZXMoc3RkOjppbml0
aWFsaXplcl9saXN0PFJlZlB0cjxBUEk6Ok9iamVjdD4+IHsKSW5kZXg6IFNvdXJjZS9XZWJLaXQv
U2hhcmVkL0FQSS9jL1dLU3RyaW5nLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1No
YXJlZC9BUEkvYy9XS1N0cmluZy5jcHAJKHJldmlzaW9uIDI2ODMyMykKKysrIFNvdXJjZS9XZWJL
aXQvU2hhcmVkL0FQSS9jL1dLU3RyaW5nLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDQsNiArNDQs
MTEgQEAgV0tTdHJpbmdSZWYgV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbgogICAgIHJldHVy
biBXZWJLaXQ6OnRvQVBJKCZBUEk6OlN0cmluZzo6Y3JlYXRlKFdURjo6U3RyaW5nOjpmcm9tVVRG
OChzdHJpbmcpKS5sZWFrUmVmKCkpOwogfQogCitXS1N0cmluZ1JlZiBXS1N0cmluZ0NyZWF0ZVdp
dGhVVEY4U3RyaW5nV2l0aExlbmd0aChjb25zdCBjaGFyKiBzdHJpbmcsIHNpemVfdCBsZW5ndGgp
Cit7CisgICAgcmV0dXJuIFdlYktpdDo6dG9BUEkoJkFQSTo6U3RyaW5nOjpjcmVhdGUoV1RGOjpT
dHJpbmc6OmZyb21VVEY4KHN0cmluZywgbGVuZ3RoKSkubGVha1JlZigpKTsKK30KKwogYm9vbCBX
S1N0cmluZ0lzRW1wdHkoV0tTdHJpbmdSZWYgc3RyaW5nUmVmKQogewogICAgIHJldHVybiBXZWJL
aXQ6OnRvSW1wbChzdHJpbmdSZWYpLT5zdHJpbmdWaWV3KCkuaXNFbXB0eSgpOwpJbmRleDogU291
cmNlL1dlYktpdC9TaGFyZWQvQVBJL2MvV0tTdHJpbmcuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0L1NoYXJlZC9BUEkvYy9XS1N0cmluZy5oCShyZXZpc2lvbiAyNjgzMjMpCisrKyBTb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9BUEkvYy9XS1N0cmluZy5oCSh3b3JraW5nIGNvcHkpCkBAIC00Nyw2
ICs0Nyw3IEBAIGV4dGVybiAiQyIgewogV0tfRVhQT1JUIFdLVHlwZUlEIFdLU3RyaW5nR2V0VHlw
ZUlEKHZvaWQpOwogCiBXS19FWFBPUlQgV0tTdHJpbmdSZWYgV0tTdHJpbmdDcmVhdGVXaXRoVVRG
OENTdHJpbmcoY29uc3QgY2hhciogc3RyaW5nKTsKK1dLX0VYUE9SVCBXS1N0cmluZ1JlZiBXS1N0
cmluZ0NyZWF0ZVdpdGhVVEY4U3RyaW5nV2l0aExlbmd0aChjb25zdCBjaGFyKiBzdHJpbmcsIHNp
emVfdCBsZW5ndGgpOwogCiBXS19FWFBPUlQgYm9vbCBXS1N0cmluZ0lzRW1wdHkoV0tTdHJpbmdS
ZWYgc3RyaW5nKTsKIApJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJlZmVyZW5j
ZXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByZWZlcmVu
Y2VzLmNwcAkocmV2aXNpb24gMjY4MzIzKQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UHJlZmVyZW5jZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDIsNiArMTAyLDM0IEBAIHZvaWQg
V2ViUHJlZmVyZW5jZXM6OnVwZGF0ZSgpCiAgICAgICAgIHdlYlBhZ2VQcm94eS0+cHJlZmVyZW5j
ZXNEaWRDaGFuZ2UoKTsKIH0KIAordm9pZCBXZWJQcmVmZXJlbmNlczo6c2V0Qm9vbFZhbHVlRm9y
S2V5KGNvbnN0IFN0cmluZyYga2V5LCBib29sIHZhbHVlKQoreworICAgIGlmICghbV9zdG9yZS5z
ZXRCb29sVmFsdWVGb3JLZXkoa2V5LCB2YWx1ZSkpCisgICAgICAgIHJldHVybjsKKyAgICB1cGRh
dGVCb29sVmFsdWVGb3JLZXkoa2V5LCB2YWx1ZSk7Cit9CisKK3ZvaWQgV2ViUHJlZmVyZW5jZXM6
OnNldERvdWJsZVZhbHVlRm9yS2V5KGNvbnN0IFN0cmluZyYga2V5LCBkb3VibGUgdmFsdWUpCit7
CisgICAgaWYgKCFtX3N0b3JlLnNldERvdWJsZVZhbHVlRm9yS2V5KGtleSwgdmFsdWUpKQorICAg
ICAgICByZXR1cm47CisgICAgdXBkYXRlRG91YmxlVmFsdWVGb3JLZXkoa2V5LCB2YWx1ZSk7Cit9
CisKK3ZvaWQgV2ViUHJlZmVyZW5jZXM6OnNldFVJbnQzMlZhbHVlRm9yS2V5KGNvbnN0IFN0cmlu
ZyYga2V5LCB1aW50MzJfdCB2YWx1ZSkKK3sKKyAgICBpZiAoIW1fc3RvcmUuc2V0VUludDMyVmFs
dWVGb3JLZXkoa2V5LCB2YWx1ZSkpCisgICAgICAgIHJldHVybjsKKyAgICB1cGRhdGVVSW50MzJW
YWx1ZUZvcktleShrZXksIHZhbHVlKTsKK30KKwordm9pZCBXZWJQcmVmZXJlbmNlczo6c2V0U3Ry
aW5nVmFsdWVGb3JLZXkoY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0cmluZyYgdmFsdWUpCit7
CisgICAgaWYgKCFtX3N0b3JlLnNldFN0cmluZ1ZhbHVlRm9yS2V5KGtleSwgdmFsdWUpKQorICAg
ICAgICByZXR1cm47CisgICAgdXBkYXRlU3RyaW5nVmFsdWVGb3JLZXkoa2V5LCB2YWx1ZSk7Cit9
CisKIHZvaWQgV2ViUHJlZmVyZW5jZXM6OnVwZGF0ZVN0cmluZ1ZhbHVlRm9yS2V5KGNvbnN0IFN0
cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIHZhbHVlKQogewogICAgIHBsYXRmb3JtVXBkYXRlU3Ry
aW5nVmFsdWVGb3JLZXkoa2V5LCB2YWx1ZSk7CkBAIC0xNTUsMzAgKzE4Myw2IEBAIHZvaWQgV2Vi
UHJlZmVyZW5jZXM6OmRlbGV0ZUtleShjb25zdCBTdHIKICAgICB1cGRhdGUoKTsgLy8gRklYTUU6
IE9ubHkgc2VuZCBvdmVyIHRoZSBjaGFuZ2VkIGtleSBhbmQgdmFsdWUuCiB9CiAKLSNkZWZpbmUg
REVGSU5FX1BSRUZFUkVOQ0VfR0VUVEVSX0FORF9TRVRURVJTKEtleVVwcGVyLCBLZXlMb3dlciwg
VHlwZU5hbWUsIFR5cGUsIERlZmF1bHRWYWx1ZSwgSHVtYW5SZWFkYWJsZU5hbWUsIEh1bWFuUmVh
ZGFibGVEZXNjcmlwdGlvbikgXAotICAgIHZvaWQgV2ViUHJlZmVyZW5jZXM6OnNldCMjS2V5VXBw
ZXIoY29uc3QgVHlwZSYgdmFsdWUpIFwKLSAgICB7IFwKLSAgICAgICAgaWYgKCFtX3N0b3JlLnNl
dCMjVHlwZU5hbWUjI1ZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5OjpLZXlMb3dlciMjS2V5
KCksIHZhbHVlKSkgXAotICAgICAgICAgICAgcmV0dXJuOyBcCi0gICAgICAgIHVwZGF0ZSMjVHlw
ZU5hbWUjI1ZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5OjpLZXlMb3dlciMjS2V5KCksIHZh
bHVlKTsgXAotICAgIH0gXAotICAgIFwKLSAgICB2b2lkIFdlYlByZWZlcmVuY2VzOjpkZWxldGUj
I0tleVVwcGVyKCkgXAotICAgIHsgXAotICAgICAgICBkZWxldGVLZXkoV2ViUHJlZmVyZW5jZXNL
ZXk6OktleUxvd2VyIyNLZXkoKSk7IFwKLSAgICB9IFwKLSAgICBcCi0gICAgVHlwZSBXZWJQcmVm
ZXJlbmNlczo6S2V5TG93ZXIoKSBjb25zdCBcCi0gICAgeyBcCi0gICAgICAgIHJldHVybiBtX3N0
b3JlLmdldCMjVHlwZU5hbWUjI1ZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5OjpLZXlMb3dl
ciMjS2V5KCkpOyBcCi0gICAgfSBcCi0KLUZPUl9FQUNIX1dFQktJVF9QUkVGRVJFTkNFKERFRklO
RV9QUkVGRVJFTkNFX0dFVFRFUl9BTkRfU0VUVEVSUykKLUZPUl9FQUNIX1dFQktJVF9ERUJVR19Q
UkVGRVJFTkNFKERFRklORV9QUkVGRVJFTkNFX0dFVFRFUl9BTkRfU0VUVEVSUykKLQotI3VuZGVm
IERFRklORV9QUkVGRVJFTkNFX0dFVFRFUl9BTkRfU0VUVEVSUwotCi0KIHZvaWQgV2ViUHJlZmVy
ZW5jZXM6OnJlZ2lzdGVyRGVmYXVsdEJvb2xWYWx1ZUZvcktleShjb25zdCBTdHJpbmcmIGtleSwg
Ym9vbCB2YWx1ZSkKIHsKICAgICBtX3N0b3JlLnNldE92ZXJyaWRlRGVmYXVsdHNCb29sVmFsdWVG
b3JLZXkoa2V5LCB2YWx1ZSk7CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcmVm
ZXJlbmNlcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByZWZl
cmVuY2VzLmgJKHJldmlzaW9uIDI2ODMyMykKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlByZWZlcmVuY2VzLmgJKHdvcmtpbmcgY29weSkKQEAgLTU5LDYgKzU5LDcgQEAgcHVibGljOgog
CiAgICAgY29uc3QgV2ViUHJlZmVyZW5jZXNTdG9yZSYgc3RvcmUoKSBjb25zdCB7IHJldHVybiBt
X3N0b3JlOyB9CiAKKyAgICAvLyBJbXBsZW1lbnRlZCBpbiBnZW5lcmF0ZWQgZmlsZSBXZWJQcmVm
ZXJlbmNlc0dldHRlclNldHRlcnMuY3BwLgogICAgIEZPUl9FQUNIX1dFQktJVF9QUkVGRVJFTkNF
KERFQ0xBUkVfUFJFRkVSRU5DRV9HRVRURVJfQU5EX1NFVFRFUlMpCiAgICAgRk9SX0VBQ0hfV0VC
S0lUX0RFQlVHX1BSRUZFUkVOQ0UoREVDTEFSRV9QUkVGRVJFTkNFX0dFVFRFUl9BTkRfU0VUVEVS
UykKICAgICBGT1JfRUFDSF9XRUJLSVRfSU5URVJOQUxfREVCVUdfRkVBVFVSRV9QUkVGRVJFTkNF
KERFQ0xBUkVfUFJFRkVSRU5DRV9HRVRURVJfQU5EX1NFVFRFUlMpCkBAIC03Nyw2ICs3OCwxMCBA
QCBwdWJsaWM6CiAgICAgdm9pZCByZXNldEFsbEludGVybmFsRGVidWdGZWF0dXJlcygpOwogCiAg
ICAgLy8gRXhwb3NlZCBmb3IgV2ViS2l0VGVzdFJ1bm5lciB1c2Ugb25seS4KKyAgICB2b2lkIHNl
dEJvb2xWYWx1ZUZvcktleShjb25zdCBTdHJpbmcmLCBib29sIHZhbHVlKTsKKyAgICB2b2lkIHNl
dERvdWJsZVZhbHVlRm9yS2V5KGNvbnN0IFN0cmluZyYsIGRvdWJsZSB2YWx1ZSk7CisgICAgdm9p
ZCBzZXRVSW50MzJWYWx1ZUZvcktleShjb25zdCBTdHJpbmcmLCB1aW50MzJfdCB2YWx1ZSk7Cisg
ICAgdm9pZCBzZXRTdHJpbmdWYWx1ZUZvcktleShjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcm
IHZhbHVlKTsKICAgICB2b2lkIGZvcmNlVXBkYXRlKCkgeyB1cGRhdGUoKTsgfQogCiBwcml2YXRl
OgpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNl
cy5jcHAJKHJldmlzaW9uIDI2ODMyMykKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
L1dLUHJlZmVyZW5jZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03OCw2ICs3OCwyNiBAQCB2b2lk
IFdLUHJlZmVyZW5jZXNTZXRJbnRlcm5hbERlYnVnRmVhdHVyCiAgICAgdG9JbXBsKHByZWZlcmVu
Y2VzUmVmKS0+c2V0SW50ZXJuYWxEZWJ1Z0ZlYXR1cmVFbmFibGVkRm9yS2V5KHRvV1RGU3RyaW5n
KGludGVybmFsRGVidWdGZWF0dXJlS2V5KSwgdmFsdWUpOwogfQogCit2b2lkIFdLUHJlZmVyZW5j
ZXNTZXRCb29sVmFsdWVGb3JLZXkoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZiwgYm9v
bCB2YWx1ZSwgV0tTdHJpbmdSZWYga2V5KQoreworICAgIHRvSW1wbChwcmVmZXJlbmNlc1JlZikt
PnNldEJvb2xWYWx1ZUZvcktleSh0b1dURlN0cmluZyhrZXkpLCB2YWx1ZSk7Cit9CisKK3ZvaWQg
V0tQcmVmZXJlbmNlc1NldERvdWJsZVZhbHVlRm9yS2V5KFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVy
ZW5jZXNSZWYsIGRvdWJsZSB2YWx1ZSwgV0tTdHJpbmdSZWYga2V5KQoreworICAgIHRvSW1wbChw
cmVmZXJlbmNlc1JlZiktPnNldEJvb2xWYWx1ZUZvcktleSh0b1dURlN0cmluZyhrZXkpLCB2YWx1
ZSk7Cit9CisKK3ZvaWQgV0tQcmVmZXJlbmNlc1NldFVJbnQzMlZhbHVlRm9yS2V5KFdLUHJlZmVy
ZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYsIHVpbnQzMl90IHZhbHVlLCBXS1N0cmluZ1JlZiBrZXkp
Cit7CisgICAgdG9JbXBsKHByZWZlcmVuY2VzUmVmKS0+c2V0VUludDMyVmFsdWVGb3JLZXkodG9X
VEZTdHJpbmcoa2V5KSwgdmFsdWUpOworfQorCit2b2lkIFdLUHJlZmVyZW5jZXNTZXRTdHJpbmdW
YWx1ZUZvcktleShXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmLCBXS1N0cmluZ1JlZiB2
YWx1ZSwgV0tTdHJpbmdSZWYga2V5KQoreworICAgIHRvSW1wbChwcmVmZXJlbmNlc1JlZiktPnNl
dFN0cmluZ1ZhbHVlRm9yS2V5KHRvV1RGU3RyaW5nKGtleSksIHRvV1RGU3RyaW5nKHZhbHVlKSk7
Cit9CisKIHZvaWQgV0tQcmVmZXJlbmNlc1Jlc2V0VGVzdFJ1bm5lck92ZXJyaWRlcyhXS1ByZWZl
cmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmKQogewogICAgIC8vIEN1cnJlbnRseSB3ZSByZXNldCB0
aGUgb3ZlcnJpZGVzIG9uIHRoZSB3ZWIgcHJvY2VzcyB3aGVuIHByZWZlcmVuY2VzRGlkQ2hhbmdl
KCkgaXMgY2FsbGVkLiBTaW5jZSBXVFIgcHJlZmVyZW5jZXMKSW5kZXg6IFNvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXNSZWZQcml2YXRlLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlc1JlZlByaXZhdGUuaAko
cmV2aXNpb24gMjY4MzIzKQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQcmVm
ZXJlbmNlc1JlZlByaXZhdGUuaAkod29ya2luZyBjb3B5KQpAQCAtNTUsNiArNTUsMTMgQEAgV0tf
RVhQT1JUIHZvaWQgV0tQcmVmZXJlbmNlc1NldEV4cGVyaW1lbgogV0tfRVhQT1JUIHZvaWQgV0tQ
cmVmZXJlbmNlc1Jlc2V0QWxsSW50ZXJuYWxEZWJ1Z0ZlYXR1cmVzKFdLUHJlZmVyZW5jZXNSZWYp
OwogV0tfRVhQT1JUIHZvaWQgV0tQcmVmZXJlbmNlc1NldEludGVybmFsRGVidWdGZWF0dXJlRm9y
S2V5KFdLUHJlZmVyZW5jZXNSZWYsIGJvb2wsIFdLU3RyaW5nUmVmKTsKIAorLy8gVGhlIGZvbGxv
d2luZyBnZW5lcmljIHNldHRlciBmdW5jdGlvbnMgYXJlIG9ubHkgaW50ZW5kZWQgZm9yIHVzZSBi
eSB0ZXN0aW5nIGluZnJhc3RydWN0dXJlLgorV0tfRVhQT1JUIHZvaWQgV0tQcmVmZXJlbmNlc1Nl
dEJvb2xWYWx1ZUZvcktleShXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmLCBib29sIHZh
bHVlLCBXS1N0cmluZ1JlZiBrZXkpOworV0tfRVhQT1JUIHZvaWQgV0tQcmVmZXJlbmNlc1NldERv
dWJsZVZhbHVlRm9yS2V5KFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYsIGRvdWJsZSB2
YWx1ZSwgV0tTdHJpbmdSZWYga2V5KTsKK1dLX0VYUE9SVCB2b2lkIFdLUHJlZmVyZW5jZXNTZXRV
SW50MzJWYWx1ZUZvcktleShXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmLCB1aW50MzJf
dCB2YWx1ZSwgV0tTdHJpbmdSZWYga2V5KTsKK1dLX0VYUE9SVCB2b2lkIFdLUHJlZmVyZW5jZXNT
ZXRTdHJpbmdWYWx1ZUZvcktleShXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmLCBXS1N0
cmluZ1JlZiB2YWx1ZSwgV0tTdHJpbmdSZWYga2V5KTsKKworLy8gRm9yIFRlc3QgUnVubmVyIFVz
ZSBvbmx5LgogV0tfRVhQT1JUIHZvaWQgV0tQcmVmZXJlbmNlc1Jlc2V0VGVzdFJ1bm5lck92ZXJy
aWRlcyhXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmKTsKIAogLy8gRGVmYXVsdHMgdG8g
ZmFsc2UuCkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oJKHJldmlzaW9uIDI2ODMyMykKKysrIFNvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTEzMTIsNiArMTMxMiw3IEBA
CiAJCTdDRTREMjI4MUE0OTE2QzIwMEM3RjE1MiAvKiBXZWJQcm9jZXNzUG9vbE1lc3NhZ2VzLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Q0U0RDIyNjFB
NDkxNkMyMDBDN0YxNTIgLyogV2ViUHJvY2Vzc1Bvb2xNZXNzYWdlcy5oICovOyB9OwogCQk3Q0U5
Q0UxMDFGQTA3NjdBMDAwMTc3REUgLyogV2ViUGFnZVVwZGF0ZVByZWZlcmVuY2VzLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDRTlDRTBGMUZBMDc2
NEQwMDAxNzdERSAvKiBXZWJQYWdlVXBkYXRlUHJlZmVyZW5jZXMuY3BwICovOyB9OwogCQk3Q0VC
MDBERDFGQTY5QUJFMDA2NTQ3M0IgLyogV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWxGZWF0dXJl
cy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Q0VC
MDBEQzFGQTY5QTg5MDA2NTQ3M0IgLyogV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWxGZWF0dXJl
cy5jcHAgKi87IH07CisJCTdDRjE5MDcxMjUzMzhGMzgwMEFCRTE4MyAvKiBXZWJQcmVmZXJlbmNl
c0dldHRlclNldHRlcnMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gN0NGMTkwNzAyNTMzOEVGRjAwQUJFMTgzIC8qIFdlYlByZWZlcmVuY2VzR2V0dGVy
U2V0dGVycy5jcHAgKi87IH07CiAJCTdDRjQ3RkY3MTcyNzVCNzEwMDhBQ0I5MSAvKiBXS0J1bmRs
ZVBhZ2VCYW5uZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDdDRjQ3RkY1MTcyNzVCNzEwMDhBQ0I5MSAvKiBXS0J1bmRsZVBhZ2VCYW5uZXIuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3Q0Y0N0ZGQjE3
Mjc1QzU3MDA4QUNCOTEgLyogUGFnZUJhbm5lci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gN0NGNDdGRjkxNzI3NUM1NzAwOEFDQjkxIC8qIFBhZ2VCYW5u
ZXIuaCAqLzsgfTsKIAkJN0NGNDdGRkYxNzI3NkFFMzAwOEFDQjkxIC8qIFdLQnVuZGxlUGFnZUJh
bm5lck1hYy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
N0NGNDdGRkQxNzI3NkFFMzAwOEFDQjkxIC8qIFdLQnVuZGxlUGFnZUJhbm5lck1hYy5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC00MzMyLDYgKzQz
MzMsNyBAQAogCQk3Q0U5Q0UwRjFGQTA3NjREMDAwMTc3REUgLyogV2ViUGFnZVVwZGF0ZVByZWZl
cmVuY2VzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFdlYlBhZ2VVcGRhdGVQcmVmZXJlbmNlcy5j
cHA7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYlBhZ2VVcGRhdGVQcmVmZXJlbmNl
cy5jcHA7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTdDRUIwMERDMUZB
NjlBODkwMDY1NDczQiAvKiBXZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbEZlYXR1cmVzLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgbmFtZSA9IFdlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsRmVhdHVyZXMuY3Bw
OyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRh
bEZlYXR1cmVzLmNwcDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJN0NF
RkE5NjAxQUMwOTk5MzAwQjkxMEZEIC8qIEFQSUNvbnRlbnRSdWxlTGlzdFN0b3JlQ29jb2EubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBBUElDb250ZW50UnVsZUxp
c3RTdG9yZUNvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3Q0YxOTA3MDI1
MzM4RUZGMDBBQkUxODMgLyogV2ViUHJlZmVyZW5jZXNHZXR0ZXJTZXR0ZXJzLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgbmFtZSA9IFdlYlByZWZlcmVuY2VzR2V0dGVyU2V0dGVycy5jcHA7IHBhdGggPSBEZXJp
dmVkU291cmNlcy9XZWJLaXQyL1dlYlByZWZlcmVuY2VzR2V0dGVyU2V0dGVycy5jcHA7IHNvdXJj
ZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTdDRjQ3RkY0MTcyNzVCNzEwMDhBQ0I5
MSAvKiBXS0J1bmRsZVBhZ2VCYW5uZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gV0tCdW5kbGVQYWdlQmFubmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJN0NGNDdGRjUxNzI3NUI3MTAwOEFDQjkxIC8qIFdLQnVuZGxlUGFnZUJhbm5lci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS0J1bmRsZVBhZ2VCYW5uZXIuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0NGNDdGRjkxNzI3NUM1NzAwOEFDQjkxIC8qIFBh
Z2VCYW5uZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGFnZUJhbm5lci5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTAyNTksNiArMTAyNjEsNyBAQAogCQkJ
CTFBQjFGNzk1MUQxQjM2MTMwMDdDOUJEMSAvKiBXZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eU1l
c3NhZ2VzLmggKi8sCiAJCQkJN0NERTczQTMxRjlEQUI2NTAwMzkwMzEyIC8qIFdlYlByZWZlcmVu
Y2VzRGVmaW5pdGlvbnMuaCAqLywKIAkJCQk3Q0VCMDBEQzFGQTY5QTg5MDA2NTQ3M0IgLyogV2Vi
UHJlZmVyZW5jZXNFeHBlcmltZW50YWxGZWF0dXJlcy5jcHAgKi8sCisJCQkJN0NGMTkwNzAyNTMz
OEVGRjAwQUJFMTgzIC8qIFdlYlByZWZlcmVuY2VzR2V0dGVyU2V0dGVycy5jcHAgKi8sCiAJCQkJ
MzFCMzYyOTgyMTQxRjZFMDAwN0JGQTUzIC8qIFdlYlByZWZlcmVuY2VzSW50ZXJuYWxEZWJ1Z0Zl
YXR1cmVzLmNwcCAqLywKIAkJCQk3Q0IxMDBFRTFGQTJENzRBMDAxNzI5RUUgLyogV2ViUHJlZmVy
ZW5jZXNLZXlzLmNwcCAqLywKIAkJCQk3Q0IxMDBFRjFGQTJENzRCMDAxNzI5RUUgLyogV2ViUHJl
ZmVyZW5jZXNLZXlzLmggKi8sCkBAIC0xMzE2MSw2ICsxMzE2NCw3IEBACiAJCQkJMkQ5MkE3OEQy
MTJCNkFCMTAwRjQ5M0ZEIC8qIFdlYlBsYXRmb3JtVG91Y2hQb2ludC5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkyRDkxMzQ0RTIxMkNGOUYwMDAxMjhBRkQgLyogV2ViUGx1Z2luSW5mb1Byb3ZpZGVy
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdDRUIwMEREMUZBNjlBQkUwMDY1NDczQiAvKiBXZWJQ
cmVmZXJlbmNlc0V4cGVyaW1lbnRhbEZlYXR1cmVzLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTdD
RjE5MDcxMjUzMzhGMzgwMEFCRTE4MyAvKiBXZWJQcmVmZXJlbmNlc0dldHRlclNldHRlcnMuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMzFCMzYyOTkyMTQxRjZFODAwN0JGQTUzIC8qIFdlYlByZWZl
cmVuY2VzSW50ZXJuYWxEZWJ1Z0ZlYXR1cmVzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdDQjEw
MEYxMUZBMzg1OEEwMDE3MjlFRSAvKiBXZWJQcmVmZXJlbmNlc0tleXMuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJN0NCMTAwRjQxRkEzODU5MjAwMTcyOUVFIC8qIFdlYlByZWZlcmVuY2VzU3RvcmVE
ZWZhdWx0c01hcC5jcHAgaW4gU291cmNlcyAqLywKSW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJldmlzaW9uIDI2ODMyNCkKKysrIFRvb2xzL0No
YW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDkyIEBACisyMDIwLTEwLTExICBTYW0g
V2VpbmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KKworICAgICAgICBbUHJlZmVyZW5jZXNdIEludHJv
ZHVjZSBzdHJpbmcgYmFzZWQgU1BJIGZvciBXS1ByZWZlcmVuY2VzIHRvIGFsbG93IHRlc3RzIHRv
IGNoYW5nZSBpbnRlcm5hbCBiZWhhdmlvciB3aXRob3V0IGFsd2F5cyBhZGRpbmcgYWRkaXRpb25h
bCBTUEkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIx
NzU4MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtX
SVBdCisKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcDoKKyAg
ICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OmluaXRpYWxpemUpOgorICAgICAgICAoV1RSOjpU
ZXN0Q29udHJvbGxlcjo6Y3JlYXRlV2ViVmlld1dpdGhPcHRpb25zKToKKyAgICAgICAgKFdUUjo6
VGVzdENvbnRyb2xsZXI6OnJlc2V0UHJlZmVyZW5jZXNUb0NvbnNpc3RlbnRWYWx1ZXMpOgorICAg
ICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6cmVzZXRTdGF0ZVRvQ29uc2lzdGVudFZhbHVlcyk6
CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybVJlc2V0U3RhdGVUb0NvbnNp
c3RlbnRWYWx1ZXMpOiBEZWxldGVkLgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdENv
bnRyb2xsZXIuaDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RPcHRpb25zLmNwcDoK
KyAgICAgICAgKFdUUjo6Ym9vbERlZmF1bHRzTWFwKToKKyAgICAgICAgKFdUUjo6ZG91YmxlRGVm
YXVsdHNNYXApOgorICAgICAgICAoV1RSOjpzdHJpbmdEZWZhdWx0c01hcCk6CisgICAgICAgIChX
VFI6OnN0cmluZ1ZlY3RvckRlZmF1bHRzTWFwKToKKyAgICAgICAgKFdUUjo6a2V5VHlwZU1hcCk6
CisgICAgICAgIChXVFI6OlRlc3RPcHRpb25zOjpib29sV0tQcmVmZXJlbmNlcyBjb25zdCk6Cisg
ICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0T3B0aW9ucy5oOgorICAgICAgICAoV1RSOjpU
ZXN0T3B0aW9uczo6YWxsb3dzTGlua1ByZXZpZXcgY29uc3QpOgorICAgICAgICAoV1RSOjpUZXN0
T3B0aW9uczo6ZHVtcEpTQ29uc29sZUxvZ0luU3RkRXJyIGNvbnN0KToKKyAgICAgICAgKFdUUjo6
VGVzdE9wdGlvbnM6OmVuYWJsZUF0dGFjaG1lbnRFbGVtZW50IGNvbnN0KToKKyAgICAgICAgKFdU
Ujo6VGVzdE9wdGlvbnM6OmVuYWJsZUluQXBwQnJvd3NlclByaXZhY3kgY29uc3QpOgorICAgICAg
ICAoV1RSOjpUZXN0T3B0aW9uczo6aWdub3JlU3luY2hyb25vdXNNZXNzYWdpbmdUaW1lb3V0cyBj
b25zdCk6CisgICAgICAgIChXVFI6OlRlc3RPcHRpb25zOjppZ25vcmVzVmlld3BvcnRTY2FsZUxp
bWl0cyBjb25zdCk6CisgICAgICAgIChXVFI6OlRlc3RPcHRpb25zOjppc0FwcEJvdW5kV2ViVmll
dyBjb25zdCk6CisgICAgICAgIChXVFI6OlRlc3RPcHRpb25zOjpwdW5jaE91dFdoaXRlQmFja2dy
b3VuZHNJbkRhcmtNb2RlIGNvbnN0KToKKyAgICAgICAgKFdUUjo6VGVzdE9wdGlvbnM6OnJ1blNp
bmdseSBjb25zdCk6CisgICAgICAgIChXVFI6OlRlc3RPcHRpb25zOjpzaG91bGRIYW5kbGVSdW5P
cGVuUGFuZWwgY29uc3QpOgorICAgICAgICAoV1RSOjpUZXN0T3B0aW9uczo6c2hvdWxkUHJlc2Vu
dFBvcG92ZXJzIGNvbnN0KToKKyAgICAgICAgKFdUUjo6VGVzdE9wdGlvbnM6OnNob3VsZFNob3dT
cGVsbENoZWNraW5nRG90cyBjb25zdCk6CisgICAgICAgIChXVFI6OlRlc3RPcHRpb25zOjpzaG91
bGRTaG93VG91Y2hlcyBjb25zdCk6CisgICAgICAgIChXVFI6OlRlc3RPcHRpb25zOjpzaG91bGRT
aG93V2ViVmlldyBjb25zdCk6CisgICAgICAgIChXVFI6OlRlc3RPcHRpb25zOjp1c2VDaGFyYWN0
ZXJTZWxlY3Rpb25HcmFudWxhcml0eSBjb25zdCk6CisgICAgICAgIChXVFI6OlRlc3RPcHRpb25z
Ojp1c2VEYXRhRGV0ZWN0aW9uIGNvbnN0KToKKyAgICAgICAgKFdUUjo6VGVzdE9wdGlvbnM6OnVz
ZUVwaGVtZXJhbFNlc3Npb24gY29uc3QpOgorICAgICAgICAoV1RSOjpUZXN0T3B0aW9uczo6dXNl
RmxleGlibGVWaWV3cG9ydCBjb25zdCk6CisgICAgICAgIChXVFI6OlRlc3RPcHRpb25zOjp1c2VS
ZW1vdGVMYXllclRyZWUgY29uc3QpOgorICAgICAgICAoV1RSOjpUZXN0T3B0aW9uczo6dXNlVGhy
ZWFkZWRTY3JvbGxpbmcgY29uc3QpOgorICAgICAgICAoV1RSOjpUZXN0T3B0aW9uczo6ZGV2aWNl
U2NhbGVGYWN0b3IgY29uc3QpOgorICAgICAgICAoV1RSOjpUZXN0T3B0aW9uczo6dmlld1dpZHRo
IGNvbnN0KToKKyAgICAgICAgKFdUUjo6VGVzdE9wdGlvbnM6OmFkZGl0aW9uYWxTdXBwb3J0ZWRJ
bWFnZVR5cGVzIGNvbnN0KToKKyAgICAgICAgKFdUUjo6VGVzdE9wdGlvbnM6OmFwcGxpY2F0aW9u
QnVuZGxlSWRlbnRpZmllciBjb25zdCk6CisgICAgICAgIChXVFI6OlRlc3RPcHRpb25zOjpjb250
ZW50TW9kZSBjb25zdCk6CisgICAgICAgIChXVFI6OlRlc3RPcHRpb25zOjpqc2NPcHRpb25zIGNv
bnN0KToKKyAgICAgICAgKFdUUjo6VGVzdE9wdGlvbnM6OnN0YW5kYWxvbmVXZWJBcHBsaWNhdGlv
blVSTCBjb25zdCk6CisgICAgICAgIChXVFI6OlRlc3RPcHRpb25zOjp1c2VBY2NlbGVyYXRlZERy
YXdpbmcgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV1RSOjpUZXN0T3B0aW9uczo6dXNlTW9j
a1Njcm9sbGJhcnMgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV1RSOjpUZXN0T3B0aW9uczo6
bmVlZHNTaXRlU3BlY2lmaWNRdWlya3MgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV1RSOjpU
ZXN0T3B0aW9uczo6ZW5hYmxlSW50ZXJzZWN0aW9uT2JzZXJ2ZXIgY29uc3QpOiBEZWxldGVkLgor
ICAgICAgICAoV1RSOjpUZXN0T3B0aW9uczo6ZW5hYmxlTWVudUl0ZW1FbGVtZW50IGNvbnN0KTog
RGVsZXRlZC4KKyAgICAgICAgKFdUUjo6VGVzdE9wdGlvbnM6OmVuYWJsZUtleWdlbkVsZW1lbnQg
Y29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV1RSOjpUZXN0T3B0aW9uczo6ZW5hYmxlTW9kZXJu
TWVkaWFDb250cm9scyBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXVFI6OlRlc3RPcHRpb25z
OjplbmFibGVQb2ludGVyTG9jayBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXVFI6OlRlc3RP
cHRpb25zOjplbmFibGVXZWJBdXRoZW50aWNhdGlvbiBjb25zdCk6IERlbGV0ZWQuCisgICAgICAg
IChXVFI6OlRlc3RPcHRpb25zOjplbmFibGVXZWJBdXRoZW50aWNhdGlvbkxvY2FsQXV0aGVudGlj
YXRvciBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXVFI6OlRlc3RPcHRpb25zOjplbmFibGVJ
bnNwZWN0b3JBZGRpdGlvbnMgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV1RSOjpUZXN0T3B0
aW9uczo6YWxsb3dDcm9zc09yaWdpblN1YnJlc291cmNlc1RvQXNrRm9yQ3JlZGVudGlhbHMgY29u
c3QpOiBEZWxldGVkLgorICAgICAgICAoV1RSOjpUZXN0T3B0aW9uczo6ZG9tUGFzdGVBbGxvd2Vk
IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdUUjo6VGVzdE9wdGlvbnM6OmVuYWJsZUNvbG9y
RmlsdGVyIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdUUjo6VGVzdE9wdGlvbnM6OmNoZWNr
Rm9yV29ybGRMZWFrcyBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXVFI6OlRlc3RPcHRpb25z
OjpzaG91bGRJZ25vcmVNZXRhVmlld3BvcnQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV1RS
OjpUZXN0T3B0aW9uczo6ZW5hYmxlU2VydmljZUNvbnRyb2xzIGNvbnN0KTogRGVsZXRlZC4KKyAg
ICAgICAgKFdUUjo6VGVzdE9wdGlvbnM6OmVuYWJsZUFwcE5hcCBjb25zdCk6IERlbGV0ZWQuCisg
ICAgICAgIChXVFI6OlRlc3RPcHRpb25zOjplbmFibGVCYWNrRm9yd2FyZENhY2hlIGNvbnN0KTog
RGVsZXRlZC4KKyAgICAgICAgKFdUUjo6VGVzdE9wdGlvbnM6OmVuYWJsZUNhcHR1cmVWaWRlb0lu
VUlQcm9jZXNzIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdUUjo6VGVzdE9wdGlvbnM6OmVu
YWJsZUNhcHR1cmVWaWRlb0luR1BVUHJvY2VzcyBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChX
VFI6OlRlc3RPcHRpb25zOjplbmFibGVDYXB0dXJlQXVkaW9JblVJUHJvY2VzcyBjb25zdCk6IERl
bGV0ZWQuCisgICAgICAgIChXVFI6OlRlc3RPcHRpb25zOjplbmFibGVDYXB0dXJlQXVkaW9JbkdQ
VVByb2Nlc3MgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV1RSOjpUZXN0T3B0aW9uczo6YWxs
b3dUb3BOYXZpZ2F0aW9uVG9EYXRhVVJMcyBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogV2Vi
S2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0Q29udHJvbGxlckNvY29hLm1tOgorICAgICAgICAoV1RS
Ojppbml0aWFsaXplV2ViVmlld0NvbmZpZ3VyYXRpb24pOgorICAgICAgICAoV1RSOjpUZXN0Q29u
dHJvbGxlcjo6cGxhdGZvcm1DcmVhdGVXZWJWaWV3KToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRy
b2xsZXI6OmNvY29hUmVzZXRTdGF0ZVRvQ29uc2lzdGVudFZhbHVlcyk6CisgICAgICAgICogV2Vi
S2l0VGVzdFJ1bm5lci9ndGsvVGVzdENvbnRyb2xsZXJHdGsuY3BwOgorICAgICAgICAoV1RSOjpU
ZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1SZXNldFN0YXRlVG9Db25zaXN0ZW50VmFsdWVzKToKKyAg
ICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL2lvcy9UZXN0Q29udHJvbGxlcklPUy5tbToKKyAgICAg
ICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtUmVzZXRQcmVmZXJlbmNlc1RvQ29uc2lz
dGVudFZhbHVlcyk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybUNvbmZp
Z3VyZVZpZXdGb3JUZXN0KToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL3dpbi9UZXN0Q29u
dHJvbGxlcldpbi5jcHA6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybVJl
c2V0U3RhdGVUb0NvbnNpc3RlbnRWYWx1ZXMpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIv
d3BlL1Rlc3RDb250cm9sbGVyV1BFLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6
OnBsYXRmb3JtUmVzZXRTdGF0ZVRvQ29uc2lzdGVudFZhbHVlcyk6CisKIDIwMjAtMTAtMTAgIERh
cmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04gKHIyNjc3
NjEpOiBlZGl0aW5nL21hYy9zcGVsbGluZy9hdXRvY29ycmVjdGlvbi1jb250cmFjdGlvbi5odG1s
IGlzIGEgY29uc3RhbnQgdGltZW91dCBvbiBtYWNPUyB3azIgRGVidWcKSW5kZXg6IFRvb2xzL1dl
YktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1dl
YktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCShyZXZpc2lvbiAyNjgzMjMpCisrKyBU
b29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtNDYzLDE0ICs0NjMsMTQgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6aW5pdGlhbGl6ZShpbnQg
YXJnYwogICAgIG1fZ2NCZXR3ZWVuVGVzdHMgPSBvcHRpb25zLmdjQmV0d2VlblRlc3RzOwogICAg
IG1fc2hvdWxkRHVtcFBpeGVsc0ZvckFsbFRlc3RzID0gb3B0aW9ucy5zaG91bGREdW1wUGl4ZWxz
Rm9yQWxsVGVzdHM7CiAgICAgbV9mb3JjZUNvbXBsZXhUZXh0ID0gb3B0aW9ucy5mb3JjZUNvbXBs
ZXhUZXh0OwotICAgIG1fc2hvdWxkVXNlQWNjZWxlcmF0ZWREcmF3aW5nID0gb3B0aW9ucy5zaG91
bGRVc2VBY2NlbGVyYXRlZERyYXdpbmc7CiAgICAgbV9wYXRocyA9IG9wdGlvbnMucGF0aHM7CiAg
ICAgbV9hbGxvd2VkSG9zdHMgPSBvcHRpb25zLmFsbG93ZWRIb3N0czsKICAgICBtX2NoZWNrRm9y
V29ybGRMZWFrcyA9IG9wdGlvbnMuY2hlY2tGb3JXb3JsZExlYWtzOwogICAgIG1fYWxsb3dBbnlI
VFRQU0NlcnRpZmljYXRlRm9yQWxsb3dlZEhvc3RzID0gb3B0aW9ucy5hbGxvd0FueUhUVFBTQ2Vy
dGlmaWNhdGVGb3JBbGxvd2VkSG9zdHM7Ci0gICAgCisKICAgICBtX2dsb2JhbEZlYXR1cmVzLmlu
dGVybmFsRGVidWdGZWF0dXJlcyA9IG9wdGlvbnMuaW50ZXJuYWxGZWF0dXJlczsKICAgICBtX2ds
b2JhbEZlYXR1cmVzLmV4cGVyaW1lbnRhbEZlYXR1cmVzID0gb3B0aW9ucy5leHBlcmltZW50YWxG
ZWF0dXJlczsKKyAgICBtX2dsb2JhbEZlYXR1cmVzLmJvb2xGZWF0dXJlcy5pbnNlcnQoeyAidXNl
QWNjZWxlcmF0ZWREcmF3aW5nIiwgb3B0aW9ucy5zaG91bGRVc2VBY2NlbGVyYXRlZERyYXdpbmcg
fSk7CiAgICAgbV9nbG9iYWxGZWF0dXJlcy5ib29sRmVhdHVyZXMuaW5zZXJ0KHsgInVzZVJlbW90
ZUxheWVyVHJlZSIsIG9wdGlvbnMuc2hvdWxkVXNlUmVtb3RlTGF5ZXJUcmVlIH0pOwogICAgIG1f
Z2xvYmFsRmVhdHVyZXMuYm9vbEZlYXR1cmVzLmluc2VydCh7ICJzaG91bGRTaG93V2ViVmlldyIs
IG9wdGlvbnMuc2hvdWxkU2hvd1dlYlZpZXcgfSk7CiAgICAgbV9nbG9iYWxGZWF0dXJlcy5ib29s
RmVhdHVyZXMuaW5zZXJ0KHsgInNob3VsZFNob3dUb3VjaGVzIiwgb3B0aW9ucy5zaG91bGRTaG93
VG91Y2hlcyB9KTsKQEAgLTY1NCw2ICs2NTQsOCBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpjcmVh
dGVXZWJWaWV3V2l0aE9wCiAgICAgLy8gRklYTUU6IE1pZ3JhdGUgdGhlc2UgcHJlZmVyZW5jZXMg
dG8gV0tDb250ZXh0Q29uZmlndXJhdGlvblJlZi4KICAgICByZXNldFByZWZlcmVuY2VzVG9Db25z
aXN0ZW50VmFsdWVzKG9wdGlvbnMpOwogCisgICAgV0tIVFRQQ29va2llU3RvcmVEZWxldGVBbGxD
b29raWVzKFdLV2Vic2l0ZURhdGFTdG9yZUdldEhUVFBDb29raWVTdG9yZSh3ZWJzaXRlRGF0YVN0
b3JlKCkpLCBudWxscHRyLCBudWxscHRyKTsKKwogICAgIHBsYXRmb3JtQ3JlYXRlV2ViVmlldyhj
b25maWd1cmF0aW9uLmdldCgpLCBvcHRpb25zKTsKICAgICBXS1BhZ2VVSUNsaWVudFYxNCBwYWdl
VUlDbGllbnQgPSB7CiAgICAgICAgIHsgMTQsIG1fbWFpbldlYlZpZXcuZ2V0KCkgfSwKQEAgLTg0
MSwzNyArODQzLDIzIEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OnJlc2V0UHJlZmVyZW5jZXNUb0MK
ICAgICBXS1ByZWZlcmVuY2VzUmVzZXRBbGxJbnRlcm5hbERlYnVnRmVhdHVyZXMocHJlZmVyZW5j
ZXMpOwogCiAgICAgLy8gU2V0IGludGVybmFsIGZlYXR1cmVzIHRoYXQgaGF2ZSBkaWZmZXJlbnQg
ZGVmYXVsdCB2YWx1ZXMgZm9yIHRlc3RpbmcuCi0KICAgICBXS1ByZWZlcmVuY2VzU2V0SW50ZXJu
YWxEZWJ1Z0ZlYXR1cmVGb3JLZXkocHJlZmVyZW5jZXMsIGZhbHNlLCB0b1dLKCJBc3luY092ZXJm
bG93U2Nyb2xsaW5nRW5hYmxlZCIpLmdldCgpKTsKICAgICBXS1ByZWZlcmVuY2VzU2V0SW50ZXJu
YWxEZWJ1Z0ZlYXR1cmVGb3JLZXkocHJlZmVyZW5jZXMsIGZhbHNlLCB0b1dLKCJBc3luY0ZyYW1l
U2Nyb2xsaW5nRW5hYmxlZCIpLmdldCgpKTsKLQotI2lmIEVOQUJMRShJTlBVVF9UWVBFX0RBVEUp
CiAgICAgV0tQcmVmZXJlbmNlc1NldEludGVybmFsRGVidWdGZWF0dXJlRm9yS2V5KHByZWZlcmVu
Y2VzLCB0cnVlLCB0b1dLKCJJbnB1dFR5cGVEYXRlRW5hYmxlZCIpLmdldCgpKTsKLSNlbmRpZgot
I2lmIEVOQUJMRShJTlBVVF9UWVBFX0RBVEVUSU1FTE9DQUwpCiAgICAgV0tQcmVmZXJlbmNlc1Nl
dEludGVybmFsRGVidWdGZWF0dXJlRm9yS2V5KHByZWZlcmVuY2VzLCB0cnVlLCB0b1dLKCJJbnB1
dFR5cGVEYXRlVGltZUxvY2FsRW5hYmxlZCIpLmdldCgpKTsKLSNlbmRpZgotI2lmIEVOQUJMRShJ
TlBVVF9UWVBFX01PTlRIKQogICAgIFdLUHJlZmVyZW5jZXNTZXRJbnRlcm5hbERlYnVnRmVhdHVy
ZUZvcktleShwcmVmZXJlbmNlcywgdHJ1ZSwgdG9XSygiSW5wdXRUeXBlTW9udGhFbmFibGVkIiku
Z2V0KCkpOwotI2VuZGlmCi0jaWYgRU5BQkxFKElOUFVUX1RZUEVfVElNRSkKICAgICBXS1ByZWZl
cmVuY2VzU2V0SW50ZXJuYWxEZWJ1Z0ZlYXR1cmVGb3JLZXkocHJlZmVyZW5jZXMsIHRydWUsIHRv
V0soIklucHV0VHlwZVRpbWVFbmFibGVkIikuZ2V0KCkpOwotI2VuZGlmCi0jaWYgRU5BQkxFKElO
UFVUX1RZUEVfV0VFSykKICAgICBXS1ByZWZlcmVuY2VzU2V0SW50ZXJuYWxEZWJ1Z0ZlYXR1cmVG
b3JLZXkocHJlZmVyZW5jZXMsIHRydWUsIHRvV0soIklucHV0VHlwZVdlZWtFbmFibGVkIikuZ2V0
KCkpOwotI2VuZGlmCisgICAgV0tQcmVmZXJlbmNlc1NldEludGVybmFsRGVidWdGZWF0dXJlRm9y
S2V5KHByZWZlcmVuY2VzLCBmYWxzZSwgdG9XSygiU3BlYWtlclNlbGVjdGlvblJlcXVpcmVzVXNl
ckdlc3R1cmUiKS5nZXQoKSk7CiAKLSAgICBmb3IgKGNvbnN0IGF1dG8mIFtrZXksIHZhbHVlXSAg
OiBvcHRpb25zLmludGVybmFsRGVidWdGZWF0dXJlcygpKQorICAgIGZvciAoYXV0byBba2V5LCB2
YWx1ZV0gIDogb3B0aW9ucy5pbnRlcm5hbERlYnVnRmVhdHVyZXMoKSkKICAgICAgICAgV0tQcmVm
ZXJlbmNlc1NldEludGVybmFsRGVidWdGZWF0dXJlRm9yS2V5KHByZWZlcmVuY2VzLCB2YWx1ZSwg
dG9XSyhrZXkpLmdldCgpKTsKIAotI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIFdLUHJlZmVyZW5j
ZXNTZXRDYXB0dXJlVmlkZW9JblVJUHJvY2Vzc0VuYWJsZWQocHJlZmVyZW5jZXMsIG9wdGlvbnMu
ZW5hYmxlQ2FwdHVyZVZpZGVvSW5VSVByb2Nlc3MoKSk7Ci0gICAgV0tQcmVmZXJlbmNlc1NldENh
cHR1cmVWaWRlb0luR1BVUHJvY2Vzc0VuYWJsZWQocHJlZmVyZW5jZXMsIG9wdGlvbnMuZW5hYmxl
Q2FwdHVyZVZpZGVvSW5HUFVQcm9jZXNzKCkpOwotICAgIFdLUHJlZmVyZW5jZXNTZXRDYXB0dXJl
QXVkaW9JblVJUHJvY2Vzc0VuYWJsZWQocHJlZmVyZW5jZXMsIG9wdGlvbnMuZW5hYmxlQ2FwdHVy
ZUF1ZGlvSW5VSVByb2Nlc3MoKSk7Ci0gICAgV0tQcmVmZXJlbmNlc1NldENhcHR1cmVBdWRpb0lu
R1BVUHJvY2Vzc0VuYWJsZWQocHJlZmVyZW5jZXMsIG9wdGlvbnMuZW5hYmxlQ2FwdHVyZUF1ZGlv
SW5HUFVQcm9jZXNzKCkpOwotI2VuZGlmCisgICAgZm9yIChhdXRvIFtrZXksIHZhbHVlXSA6IG9w
dGlvbnMuYm9vbFdLUHJlZmVyZW5jZXMoKSkKKyAgICAgICAgV0tQcmVmZXJlbmNlc1NldEJvb2xW
YWx1ZUZvcktleShwcmVmZXJlbmNlcywgdmFsdWUsIHRvV0soa2V5KS5nZXQoKSk7CisKKyAgICAv
LyBGSVhNRTogQ29udmVydCB0aGVzZSB0byBkZWZhdWx0IHZhbHVlcyBmb3IgVGVzdE9wdGlvbnMu
CiAgICAgV0tQcmVmZXJlbmNlc1NldFByb2Nlc3NTd2FwT25OYXZpZ2F0aW9uRW5hYmxlZChwcmVm
ZXJlbmNlcywgb3B0aW9ucy5jb250ZXh0T3B0aW9ucygpLnNob3VsZEVuYWJsZVByb2Nlc3NTd2Fw
T25OYXZpZ2F0aW9uKCkpOwotICAgIFdLUHJlZmVyZW5jZXNTZXRQYWdlVmlzaWJpbGl0eUJhc2Vk
UHJvY2Vzc1N1cHByZXNzaW9uRW5hYmxlZChwcmVmZXJlbmNlcywgb3B0aW9ucy5lbmFibGVBcHBO
YXAoKSk7CiAgICAgV0tQcmVmZXJlbmNlc1NldE9mZmxpbmVXZWJBcHBsaWNhdGlvbkNhY2hlRW5h
YmxlZChwcmVmZXJlbmNlcywgdHJ1ZSk7CiAgICAgV0tQcmVmZXJlbmNlc1NldFN1YnBpeGVsQW50
aWFsaWFzZWRMYXllclRleHRFbmFibGVkKHByZWZlcmVuY2VzLCBmYWxzZSk7CiAgICAgV0tQcmVm
ZXJlbmNlc1NldFhTU0F1ZGl0b3JFbmFibGVkKHByZWZlcmVuY2VzLCBmYWxzZSk7CkBAIC04ODIs
MTMgKzg3MCw5IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OnJlc2V0UHJlZmVyZW5jZXNUb0MKICAg
ICBXS1ByZWZlcmVuY2VzU2V0SmF2YVNjcmlwdFJ1bnRpbWVGbGFncyhwcmVmZXJlbmNlcywga1dL
SmF2YVNjcmlwdFJ1bnRpbWVGbGFnc0FsbEVuYWJsZWQpOwogICAgIFdLUHJlZmVyZW5jZXNTZXRK
YXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5KHByZWZlcmVuY2VzLCB0cnVlKTsK
ICAgICBXS1ByZWZlcmVuY2VzU2V0SmF2YVNjcmlwdENhbkFjY2Vzc0NsaXBib2FyZChwcmVmZXJl
bmNlcywgdHJ1ZSk7Ci0gICAgV0tQcmVmZXJlbmNlc1NldERPTVBhc3RlQWxsb3dlZChwcmVmZXJl
bmNlcywgb3B0aW9ucy5kb21QYXN0ZUFsbG93ZWQoKSk7CiAgICAgV0tQcmVmZXJlbmNlc1NldFVu
aXZlcnNhbEFjY2Vzc0Zyb21GaWxlVVJMc0FsbG93ZWQocHJlZmVyZW5jZXMsIHRydWUpOwogICAg
IFdLUHJlZmVyZW5jZXNTZXRGaWxlQWNjZXNzRnJvbUZpbGVVUkxzQWxsb3dlZChwcmVmZXJlbmNl
cywgdHJ1ZSk7Ci0gICAgV0tQcmVmZXJlbmNlc1NldFRvcE5hdmlnYXRpb25Ub0RhdGFVUkxzQWxs
b3dlZChwcmVmZXJlbmNlcywgb3B0aW9ucy5hbGxvd1RvcE5hdmlnYXRpb25Ub0RhdGFVUkxzKCkp
OwotI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKICAgICBXS1ByZWZlcmVuY2VzU2V0RnVsbFNj
cmVlbkVuYWJsZWQocHJlZmVyZW5jZXMsIHRydWUpOwotI2VuZGlmCiAgICAgV0tQcmVmZXJlbmNl
c1NldEFzeW5jaHJvbm91c1BsdWdpbkluaXRpYWxpemF0aW9uRW5hYmxlZChwcmVmZXJlbmNlcywg
ZmFsc2UpOwogICAgIFdLUHJlZmVyZW5jZXNTZXRBc3luY2hyb25vdXNQbHVnaW5Jbml0aWFsaXph
dGlvbkVuYWJsZWRGb3JBbGxQbHVnaW5zKHByZWZlcmVuY2VzLCBmYWxzZSk7CiAgICAgV0tQcmVm
ZXJlbmNlc1NldEFydGlmaWNpYWxQbHVnaW5Jbml0aWFsaXphdGlvbkRlbGF5RW5hYmxlZChwcmVm
ZXJlbmNlcywgZmFsc2UpOwpAQCAtODk3LDIyICs4ODEsNyBAQCB2b2lkIFRlc3RDb250cm9sbGVy
OjpyZXNldFByZWZlcmVuY2VzVG9DCiAgICAgV0tQcmVmZXJlbmNlc1NldERhdGFUcmFuc2Zlckl0
ZW1zRW5hYmxlZChwcmVmZXJlbmNlcywgdHJ1ZSk7CiAgICAgV0tQcmVmZXJlbmNlc1NldEN1c3Rv
bVBhc3RlYm9hcmREYXRhRW5hYmxlZChwcmVmZXJlbmNlcywgdHJ1ZSk7CiAgICAgV0tQcmVmZXJl
bmNlc1NldERpYWxvZ0VsZW1lbnRFbmFibGVkKHByZWZlcmVuY2VzLCB0cnVlKTsKLQotICAgIFdL
UHJlZmVyZW5jZXNTZXRNb2NrU2Nyb2xsYmFyc0VuYWJsZWQocHJlZmVyZW5jZXMsIG9wdGlvbnMu
dXNlTW9ja1Njcm9sbGJhcnMoKSk7Ci0gICAgV0tQcmVmZXJlbmNlc1NldE5lZWRzU2l0ZVNwZWNp
ZmljUXVpcmtzKHByZWZlcmVuY2VzLCBvcHRpb25zLm5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzKCkp
OwotICAgIFdLUHJlZmVyZW5jZXNTZXRBdHRhY2htZW50RWxlbWVudEVuYWJsZWQocHJlZmVyZW5j
ZXMsIG9wdGlvbnMuZW5hYmxlQXR0YWNobWVudEVsZW1lbnQoKSk7Ci0gICAgV0tQcmVmZXJlbmNl
c1NldE1lbnVJdGVtRWxlbWVudEVuYWJsZWQocHJlZmVyZW5jZXMsIG9wdGlvbnMuZW5hYmxlTWVu
dUl0ZW1FbGVtZW50KCkpOwotICAgIFdLUHJlZmVyZW5jZXNTZXRLZXlnZW5FbGVtZW50RW5hYmxl
ZChwcmVmZXJlbmNlcywgb3B0aW9ucy5lbmFibGVLZXlnZW5FbGVtZW50KCkpOwotICAgIFdLUHJl
ZmVyZW5jZXNTZXRNb2Rlcm5NZWRpYUNvbnRyb2xzRW5hYmxlZChwcmVmZXJlbmNlcywgb3B0aW9u
cy5lbmFibGVNb2Rlcm5NZWRpYUNvbnRyb2xzKCkpOwotICAgIFdLUHJlZmVyZW5jZXNTZXRXZWJB
dXRoZW50aWNhdGlvbkVuYWJsZWQocHJlZmVyZW5jZXMsIG9wdGlvbnMuZW5hYmxlV2ViQXV0aGVu
dGljYXRpb24oKSk7Ci0gICAgV0tQcmVmZXJlbmNlc1NldFdlYkF1dGhlbnRpY2F0aW9uTG9jYWxB
dXRoZW50aWNhdG9yRW5hYmxlZChwcmVmZXJlbmNlcywgb3B0aW9ucy5lbmFibGVXZWJBdXRoZW50
aWNhdGlvbkxvY2FsQXV0aGVudGljYXRvcigpKTsKLSAgICBXS1ByZWZlcmVuY2VzU2V0QWxsb3dD
cm9zc09yaWdpblN1YnJlc291cmNlc1RvQXNrRm9yQ3JlZGVudGlhbHMocHJlZmVyZW5jZXMsIG9w
dGlvbnMuYWxsb3dDcm9zc09yaWdpblN1YnJlc291cmNlc1RvQXNrRm9yQ3JlZGVudGlhbHMoKSk7
Ci0gICAgV0tQcmVmZXJlbmNlc1NldENvbG9yRmlsdGVyRW5hYmxlZChwcmVmZXJlbmNlcywgb3B0
aW9ucy5lbmFibGVDb2xvckZpbHRlcigpKTsKLSAgICBXS1ByZWZlcmVuY2VzU2V0UHVuY2hPdXRX
aGl0ZUJhY2tncm91bmRzSW5EYXJrTW9kZShwcmVmZXJlbmNlcywgb3B0aW9ucy5wdW5jaE91dFdo
aXRlQmFja2dyb3VuZHNJbkRhcmtNb2RlKCkpOwotICAgIFdLUHJlZmVyZW5jZXNTZXRQYWdlQ2Fj
aGVFbmFibGVkKHByZWZlcmVuY2VzLCBvcHRpb25zLmVuYWJsZUJhY2tGb3J3YXJkQ2FjaGUoKSk7
Ci0KICAgICBXS1ByZWZlcmVuY2VzU2V0RGVmYXVsdFRleHRFbmNvZGluZ05hbWUocHJlZmVyZW5j
ZXMsIHRvV0soIklTTy04ODU5LTEiKS5nZXQoKSk7Ci0KICAgICBXS1ByZWZlcmVuY2VzU2V0TWlu
aW11bUZvbnRTaXplKHByZWZlcmVuY2VzLCAwKTsKICAgICBXS1ByZWZlcmVuY2VzU2V0U3RhbmRh
cmRGb250RmFtaWx5KHByZWZlcmVuY2VzLCB0b1dLKCJUaW1lcyIpLmdldCgpKTsKICAgICBXS1By
ZWZlcmVuY2VzU2V0Q3Vyc2l2ZUZvbnRGYW1pbHkocHJlZmVyZW5jZXMsIHRvV0soIkFwcGxlIENo
YW5jZXJ5IikuZ2V0KCkpOwpAQCAtOTIyLDIxICs4OTEsMTMgQEAgdm9pZCBUZXN0Q29udHJvbGxl
cjo6cmVzZXRQcmVmZXJlbmNlc1RvQwogICAgIFdLUHJlZmVyZW5jZXNTZXRTYW5zU2VyaWZGb250
RmFtaWx5KHByZWZlcmVuY2VzLCB0b1dLKCJIZWx2ZXRpY2EiKS5nZXQoKSk7CiAgICAgV0tQcmVm
ZXJlbmNlc1NldFNlcmlmRm9udEZhbWlseShwcmVmZXJlbmNlcywgdG9XSygiVGltZXMiKS5nZXQo
KSk7CiAgICAgV0tQcmVmZXJlbmNlc1NldEFzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVk
KHByZWZlcmVuY2VzLCBmYWxzZSk7Ci0jaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkKICAgICBXS1By
ZWZlcmVuY2VzU2V0TWVkaWFTb3VyY2VFbmFibGVkKHByZWZlcmVuY2VzLCB0cnVlKTsKICAgICBX
S1ByZWZlcmVuY2VzU2V0U291cmNlQnVmZmVyQ2hhbmdlVHlwZUVuYWJsZWQocHJlZmVyZW5jZXMs
IHRydWUpOwotI2VuZGlmCiAgICAgV0tQcmVmZXJlbmNlc1NldEhpZ2hsaWdodEFQSUVuYWJsZWQo
cHJlZmVyZW5jZXMsIHRydWUpOwotCiAgICAgV0tQcmVmZXJlbmNlc1NldEhpZGRlblBhZ2VET01U
aW1lclRocm90dGxpbmdFbmFibGVkKHByZWZlcmVuY2VzLCBmYWxzZSk7CiAgICAgV0tQcmVmZXJl
bmNlc1NldEhpZGRlblBhZ2VDU1NBbmltYXRpb25TdXNwZW5zaW9uRW5hYmxlZChwcmVmZXJlbmNl
cywgZmFsc2UpOwotCi0gICAgV0tQcmVmZXJlbmNlc1NldEFjY2VsZXJhdGVkRHJhd2luZ0VuYWJs
ZWQocHJlZmVyZW5jZXMsIG1fc2hvdWxkVXNlQWNjZWxlcmF0ZWREcmF3aW5nIHx8IG9wdGlvbnMu
dXNlQWNjZWxlcmF0ZWREcmF3aW5nKCkpOwotICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgYmUgdGVz
dGluZyB0aGUgZGVmYXVsdC4KLSAgICBXS1ByZWZlcmVuY2VzU2V0U3RvcmFnZUJsb2NraW5nUG9s
aWN5KHByZWZlcmVuY2VzLCBrV0tBbGxvd0FsbFN0b3JhZ2UpOwotCisgICAgV0tQcmVmZXJlbmNl
c1NldFN0b3JhZ2VCbG9ja2luZ1BvbGljeShwcmVmZXJlbmNlcywga1dLQWxsb3dBbGxTdG9yYWdl
KTsgLy8gRklYTUU6IFdlIHNob3VsZCBiZSB0ZXN0aW5nIHRoZSBkZWZhdWx0LgogICAgIFdLUHJl
ZmVyZW5jZXNTZXRJc05TVVJMU2Vzc2lvbldlYlNvY2tldEVuYWJsZWQocHJlZmVyZW5jZXMsIGZh
bHNlKTsKLQogICAgIFdLUHJlZmVyZW5jZXNTZXRGZXRjaEFQSUtlZXBBbGl2ZUVuYWJsZWQocHJl
ZmVyZW5jZXMsIHRydWUpOwogICAgIFdLUHJlZmVyZW5jZXNTZXRNZWRpYVByZWxvYWRpbmdFbmFi
bGVkKHByZWZlcmVuY2VzLCB0cnVlKTsKICAgICBXS1ByZWZlcmVuY2VzU2V0RXhwb3NlU3BlYWtl
cnNFbmFibGVkKHByZWZlcmVuY2VzLCB0cnVlKTsKQEAgLTk0NSwzOCArOTA2LDIyIEBAIHZvaWQg
VGVzdENvbnRyb2xsZXI6OnJlc2V0UHJlZmVyZW5jZXNUb0MKICAgICBXS1ByZWZlcmVuY2VzU2V0
UmVtb3RlUGxheWJhY2tFbmFibGVkKHByZWZlcmVuY2VzLCB0cnVlKTsKICAgICBXS1ByZWZlcmVu
Y2VzU2V0QmVhY29uQVBJRW5hYmxlZChwcmVmZXJlbmNlcywgdHJ1ZSk7CiAgICAgV0tQcmVmZXJl
bmNlc1NldERpcmVjdG9yeVVwbG9hZEVuYWJsZWQocHJlZmVyZW5jZXMsIHRydWUpOwotCi0gICAg
V0tIVFRQQ29va2llU3RvcmVEZWxldGVBbGxDb29raWVzKFdLV2Vic2l0ZURhdGFTdG9yZUdldEhU
VFBDb29raWVTdG9yZSh3ZWJzaXRlRGF0YVN0b3JlKCkpLCBudWxscHRyLCBudWxscHRyKTsKLQog
ICAgIFdLUHJlZmVyZW5jZXNTZXRNb2NrQ2FwdHVyZURldmljZXNFbmFibGVkKHByZWZlcmVuY2Vz
LCB0cnVlKTsKLSAgICAKICAgICBXS1ByZWZlcmVuY2VzU2V0TGFyZ2VJbWFnZUFzeW5jRGVjb2Rp
bmdFbmFibGVkKHByZWZlcmVuY2VzLCBmYWxzZSk7Ci0KLSAgICBXS1ByZWZlcmVuY2VzU2V0SW5z
cGVjdG9yQWRkaXRpb25zRW5hYmxlZChwcmVmZXJlbmNlcywgb3B0aW9ucy5lbmFibGVJbnNwZWN0
b3JBZGRpdGlvbnMoKSk7Ci0KICAgICBXS1ByZWZlcmVuY2VzU2V0U3RvcmFnZUFjY2Vzc0FQSUVu
YWJsZWQocHJlZmVyZW5jZXMsIHRydWUpOwotICAgIAogICAgIFdLUHJlZmVyZW5jZXNTZXRBY2Nl
c3NpYmlsaXR5T2JqZWN0TW9kZWxFbmFibGVkKHByZWZlcmVuY2VzLCB0cnVlKTsKICAgICBXS1By
ZWZlcmVuY2VzU2V0Q1NTT01WaWV3U2Nyb2xsaW5nQVBJRW5hYmxlZChwcmVmZXJlbmNlcywgdHJ1
ZSk7CiAgICAgV0tQcmVmZXJlbmNlc1NldE1lZGlhQ2FwYWJpbGl0aWVzRW5hYmxlZChwcmVmZXJl
bmNlcywgdHJ1ZSk7Ci0KICAgICBXS1ByZWZlcmVuY2VzU2V0UmVzdHJpY3RlZEhUVFBSZXNwb25z
ZUFjY2VzcyhwcmVmZXJlbmNlcywgdHJ1ZSk7Ci0KICAgICBXS1ByZWZlcmVuY2VzU2V0U2VydmVy
VGltaW5nRW5hYmxlZChwcmVmZXJlbmNlcywgdHJ1ZSk7Ci0KICAgICBXS1ByZWZlcmVuY2VzU2V0
V2ViU1FMRGlzYWJsZWQocHJlZmVyZW5jZXMsIGZhbHNlKTsKLQogICAgIFdLUHJlZmVyZW5jZXNT
ZXRNZWRpYVBsYXliYWNrUmVxdWlyZXNVc2VyR2VzdHVyZShwcmVmZXJlbmNlcywgZmFsc2UpOwog
ICAgIFdLUHJlZmVyZW5jZXNTZXRWaWRlb1BsYXliYWNrUmVxdWlyZXNVc2VyR2VzdHVyZShwcmVm
ZXJlbmNlcywgZmFsc2UpOwogICAgIFdLUHJlZmVyZW5jZXNTZXRBdWRpb1BsYXliYWNrUmVxdWly
ZXNVc2VyR2VzdHVyZShwcmVmZXJlbmNlcywgZmFsc2UpOwotICAgIFdLUHJlZmVyZW5jZXNTZXRJ
bnRlcm5hbERlYnVnRmVhdHVyZUZvcktleShwcmVmZXJlbmNlcywgZmFsc2UsIFdLU3RyaW5nQ3Jl
YXRlV2l0aFVURjhDU3RyaW5nKCJTcGVha2VyU2VsZWN0aW9uUmVxdWlyZXNVc2VyR2VzdHVyZSIp
KTsKLQotICAgIFdLUHJlZmVyZW5jZXNTZXRTaG91bGRVc2VTZXJ2aWNlV29ya2VyU2hvcnRUaW1l
b3V0KHByZWZlcmVuY2VzLCBvcHRpb25zLnVzZVNlcnZpY2VXb3JrZXJTaG9ydFRpbWVvdXQoKSk7
Ci0KICNpZiBFTkFCTEUoQUNDRVNTSUJJTElUWV9JU09MQVRFRF9UUkVFKQogICAgIFdLUHJlZmVy
ZW5jZXNTZXRJc0FjY2Vzc2liaWxpdHlJc29sYXRlZFRyZWVFbmFibGVkKHByZWZlcmVuY2VzLCBh
Y2Nlc3NpYmlsaXR5SXNvbGF0ZWRUcmVlTW9kZSgpKTsKICNlbmRpZgotICAgIAorCiAgICAgcGxh
dGZvcm1SZXNldFByZWZlcmVuY2VzVG9Db25zaXN0ZW50VmFsdWVzKCk7CiB9CiAKQEAgLTEwMDks
MjMgKzk1NCwxOSBAQCBib29sIFRlc3RDb250cm9sbGVyOjpyZXNldFN0YXRlVG9Db25zaXN0CiAg
ICAgaWYgKCFqc2NPcHRpb25zLmVtcHR5KCkpCiAgICAgICAgIHNldFZhbHVlKHJlc2V0TWVzc2Fn
ZUJvZHksICJKU0NPcHRpb25zIiwganNjT3B0aW9ucy5jX3N0cigpKTsKIAotI2lmIFBMQVRGT1JN
KENPQ09BKQotICAgIFdlYkNvcmVUZXN0U3VwcG9ydDo6c2V0QWRkaXRpb25hbFN1cHBvcnRlZElt
YWdlVHlwZXNGb3JUZXN0aW5nKG9wdGlvbnMuYWRkaXRpb25hbFN1cHBvcnRlZEltYWdlVHlwZXMo
KS5jX3N0cigpKTsKLSNlbmRpZgotCiAgICAgV0tQYWdlUG9zdE1lc3NhZ2VUb0luamVjdGVkQnVu
ZGxlKFRlc3RDb250cm9sbGVyOjpzaW5nbGV0b24oKS5tYWluV2ViVmlldygpLT5wYWdlKCksIHRv
V0soIlJlc2V0IikuZ2V0KCksIHJlc2V0TWVzc2FnZUJvZHkuZ2V0KCkpOwogCiAgICAgV0tDb250
ZXh0U2V0U2hvdWxkVXNlRm9udFNtb290aGluZyhUZXN0Q29udHJvbGxlcjo6c2luZ2xldG9uKCku
Y29udGV4dCgpLCBmYWxzZSk7Ci0KICAgICBXS0NvbnRleHRTZXRDYWNoZU1vZGVsKFRlc3RDb250
cm9sbGVyOjpzaW5nbGV0b24oKS5jb250ZXh0KCksIGtXS0NhY2hlTW9kZWxEb2N1bWVudEJyb3dz
ZXIpOwogCiAgICAgV0tXZWJzaXRlRGF0YVN0b3JlQ2xlYXJDYWNoZWRDcmVkZW50aWFscyh3ZWJz
aXRlRGF0YVN0b3JlKCkpOwotCiAgICAgV0tXZWJzaXRlRGF0YVN0b3JlUmVzZXRTZXJ2aWNlV29y
a2VyRmV0Y2hUaW1lb3V0Rm9yVGVzdGluZyh3ZWJzaXRlRGF0YVN0b3JlKCkpOwogCiAgICAgV0tX
ZWJzaXRlRGF0YVN0b3JlU2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQod2Vic2l0ZURh
dGFTdG9yZSgpLCB0cnVlKTsKICAgICBXS1dlYnNpdGVEYXRhU3RvcmVDbGVhckFsbERldmljZU9y
aWVudGF0aW9uUGVybWlzc2lvbnMod2Vic2l0ZURhdGFTdG9yZSgpKTsKIAorICAgIFdLSFRUUENv
b2tpZVN0b3JlRGVsZXRlQWxsQ29va2llcyhXS1dlYnNpdGVEYXRhU3RvcmVHZXRIVFRQQ29va2ll
U3RvcmUod2Vic2l0ZURhdGFTdG9yZSgpKSwgbnVsbHB0ciwgbnVsbHB0cik7CisKICAgICBjbGVh
ckluZGV4ZWREYXRhYmFzZXMoKTsKICAgICBjbGVhckxvY2FsU3RvcmFnZSgpOwogCkBAIC0xMDM1
LDcgKzk3Niw2IEBAIGJvb2wgVGVzdENvbnRyb2xsZXI6OnJlc2V0U3RhdGVUb0NvbnNpc3QKICAg
ICByZXNldFF1b3RhKCk7CiAKICAgICBXS0NvbnRleHRDbGVhckN1cnJlbnRNb2RpZmllclN0YXRl
Rm9yVGVzdGluZyhUZXN0Q29udHJvbGxlcjo6c2luZ2xldG9uKCkuY29udGV4dCgpKTsKLQogICAg
IFdLQ29udGV4dFNldFVzZVNlcGFyYXRlU2VydmljZVdvcmtlclByb2Nlc3MoVGVzdENvbnRyb2xs
ZXI6OnNpbmdsZXRvbigpLmNvbnRleHQoKSwgZmFsc2UpOwogCiAgICAgV0tQYWdlU2V0TW9ja0Nh
bWVyYU9yaWVudGF0aW9uKG1fbWFpbldlYlZpZXctPnBhZ2UoKSwgMCk7CkBAIC0xMDUxLDEwICs5
OTEsNiBAQCBib29sIFRlc3RDb250cm9sbGVyOjpyZXNldFN0YXRlVG9Db25zaXN0CiAgICAgLy8g
c29tZSBvdGhlciBjb2RlIGRvaW5nIHRoaXMsIGl0IHNob3VsZCBwcm9iYWJseSBiZSByZXNwb25z
aWJsZSBmb3IgY2xlYW51cCB0b28uCiAgICAgcmVzZXRQcmVmZXJlbmNlc1RvQ29uc2lzdGVudFZh
bHVlcyhvcHRpb25zKTsKIAotI2lmIFBMQVRGT1JNKEdUSykKLSAgICBXS1RleHRDaGVja2VyQ29u
dGludW91c1NwZWxsQ2hlY2tpbmdFbmFibGVkU3RhdGVDaGFuZ2VkKHRydWUpOwotI2VuZGlmCi0K
ICAgICAvLyBNYWtlIHN1cmUgdGhlIHZpZXcgaXMgaW4gdGhlIHdpbmRvdyAoYSB0ZXN0IGNhbiB1
bnBhcmVudCBpdCkuCiAgICAgbV9tYWluV2ViVmlldy0+YWRkVG9XaW5kb3coKTsKIApAQCAtMjgz
NCwxMSArMjc3MCw2IEBAIFdLQ29udGV4dFJlZiBUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1BZGoK
ICAgICByZXR1cm4gY29udGV4dDsKIH0KIAotYm9vbCBUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1S
ZXNldFN0YXRlVG9Db25zaXN0ZW50VmFsdWVzKGNvbnN0IFRlc3RPcHRpb25zJikKLXsKLSAgICBy
ZXR1cm4gdHJ1ZTsKLX0KLQogdW5zaWduZWQgVGVzdENvbnRyb2xsZXI6OmltYWdlQ291bnRJbkdl
bmVyYWxQYXN0ZWJvYXJkKCkgY29uc3QKIHsKICAgICByZXR1cm4gMDsKSW5kZXg6IFRvb2xzL1dl
YktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9XZWJL
aXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgJKHJldmlzaW9uIDI2ODMyMykKKysrIFRvb2xz
L1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMzk0
LDcgKzM5NCw2IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIGVuc3VyZVZpZXdTdXBwb3J0c09wdGlv
bnNGb3JUZXN0KGNvbnN0IFRlc3RJbnZvY2F0aW9uJik7CiAgICAgVGVzdE9wdGlvbnMgdGVzdE9w
dGlvbnNGb3JUZXN0KGNvbnN0IFRlc3RDb21tYW5kJikgY29uc3Q7Ci0gICAgVGVzdEZlYXR1cmVz
IGdsb2JhbEZlYXR1cmVEZWZhdWx0c0ZvclRlc3QoY29uc3QgVGVzdENvbW1hbmQmKSBjb25zdDsK
ICAgICBUZXN0RmVhdHVyZXMgcGxhdGZvcm1TcGVjaWZpY0ZlYXR1cmVEZWZhdWx0c0ZvclRlc3Qo
Y29uc3QgVGVzdENvbW1hbmQmKSBjb25zdDsKICAgICBUZXN0RmVhdHVyZXMgcGxhdGZvcm1TcGVj
aWZpY0ZlYXR1cmVPdmVycmlkZXNEZWZhdWx0c0ZvclRlc3QoY29uc3QgVGVzdENvbW1hbmQmKSBj
b25zdDsKIApAQCAtNTk2LDggKzU5NSw2IEBAIHByaXZhdGU6CiAgICAgU3RyaW5nIG1fdW5zdXBw
b3J0ZWRQbHVnaW5Nb2RlOwogCiAgICAgYm9vbCBtX2ZvcmNlQ29tcGxleFRleHQgeyBmYWxzZSB9
OwotICAgIGJvb2wgbV9zaG91bGRVc2VBY2NlbGVyYXRlZERyYXdpbmcgeyBmYWxzZSB9OwotICAg
IAogICAgIGJvb2wgbV9zaG91bGRMb2dDYW5BdXRoZW50aWNhdGVBZ2FpbnN0UHJvdGVjdGlvblNw
YWNlIHsgZmFsc2UgfTsKICAgICBib29sIG1fc2hvdWxkTG9nRG93bmxvYWRDYWxsYmFja3MgeyBm
YWxzZSB9OwogICAgIGJvb2wgbV9zaG91bGRMb2dIaXN0b3J5Q2xpZW50Q2FsbGJhY2tzIHsgZmFs
c2UgfTsKSW5kZXg6IFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdE9wdGlvbnMuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdE9wdGlvbnMuY3BwCShyZXZpc2lv
biAyNjgzMjMpCisrKyBUb29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RPcHRpb25zLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMTAxLDU0ICsxMDEsNTEgQEAgdm9pZCBtZXJnZShUZXN0RmVhdHVyZXMm
IGJhc2UsIFRlc3RGZWF0dQogc3RhdGljIGNvbnN0IHN0ZDo6dW5vcmRlcmVkX21hcDxzdGQ6OnN0
cmluZywgYm9vbD4mIGJvb2xEZWZhdWx0c01hcCgpCiB7CiAgICAgc3RhdGljIHN0ZDo6dW5vcmRl
cmVkX21hcDxzdGQ6OnN0cmluZywgYm9vbD4gbWFwIHsKLSAgICAgICAgeyAidXNlVGhyZWFkZWRT
Y3JvbGxpbmciLCBmYWxzZSB9LAotICAgICAgICB7ICJ1c2VBY2NlbGVyYXRlZERyYXdpbmciLCBm
YWxzZSB9LAotICAgICAgICB7ICJ1c2VSZW1vdGVMYXllclRyZWUiLCBmYWxzZSB9LAotICAgICAg
ICB7ICJzaG91bGRTaG93V2ViVmlldyIsIGZhbHNlIH0sCi0gICAgICAgIHsgInVzZUZsZXhpYmxl
Vmlld3BvcnQiLCBmYWxzZSB9LAotICAgICAgICB7ICJ1c2VEYXRhRGV0ZWN0aW9uIiwgZmFsc2Ug
fSwKLSAgICAgICAgeyAidXNlTW9ja1Njcm9sbGJhcnMiLCB0cnVlIH0sCi0gICAgICAgIHsgIm5l
ZWRzU2l0ZVNwZWNpZmljUXVpcmtzIiwgZmFsc2UgfSwKLSAgICAgICAgeyAiaWdub3Jlc1ZpZXdw
b3J0U2NhbGVMaW1pdHMiLCBmYWxzZSB9LAotICAgICAgICB7ICJ1c2VDaGFyYWN0ZXJTZWxlY3Rp
b25HcmFudWxhcml0eSIsIGZhbHNlIH0sCi0gICAgICAgIHsgImVuYWJsZUF0dGFjaG1lbnRFbGVt
ZW50IiwgZmFsc2UgfSwKLSAgICAgICAgeyAiZW5hYmxlSW50ZXJzZWN0aW9uT2JzZXJ2ZXIiLCBm
YWxzZSB9LAotICAgICAgICB7ICJ1c2VFcGhlbWVyYWxTZXNzaW9uIiwgZmFsc2UgfSwKLSAgICAg
ICAgeyAiZW5hYmxlTWVudUl0ZW1FbGVtZW50IiwgZmFsc2UgfSwKLSAgICAgICAgeyAiZW5hYmxl
S2V5Z2VuRWxlbWVudCIsIGZhbHNlIH0sCi0gICAgICAgIHsgImVuYWJsZU1vZGVybk1lZGlhQ29u
dHJvbHMiLCB0cnVlIH0sCi0gICAgICAgIHsgImVuYWJsZVBvaW50ZXJMb2NrIiwgZmFsc2UgfSwK
LSAgICAgICAgeyAiZW5hYmxlV2ViQXV0aGVudGljYXRpb24iLCB0cnVlIH0sCi0gICAgICAgIHsg
ImVuYWJsZVdlYkF1dGhlbnRpY2F0aW9uTG9jYWxBdXRoZW50aWNhdG9yIiwgdHJ1ZSB9LAotICAg
ICAgICB7ICJlbmFibGVJbnNwZWN0b3JBZGRpdGlvbnMiLCBmYWxzZSB9LAotICAgICAgICB7ICJz
aG91bGRTaG93VG91Y2hlcyIsIGZhbHNlIH0sCi0gICAgICAgIHsgImR1bXBKU0NvbnNvbGVMb2dJ
blN0ZEVyciIsIGZhbHNlIH0sCiAgICAgICAgIHsgImFsbG93Q3Jvc3NPcmlnaW5TdWJyZXNvdXJj
ZXNUb0Fza0ZvckNyZWRlbnRpYWxzIiwgZmFsc2UgfSwKKyAgICAgICAgeyAiYWxsb3dUb3BOYXZp
Z2F0aW9uVG9EYXRhVVJMcyIsIHRydWUgfSwKKyAgICAgICAgeyAiYWxsb3dzTGlua1ByZXZpZXci
LCB0cnVlIH0sCiAgICAgICAgIHsgImRvbVBhc3RlQWxsb3dlZCIsIHRydWUgfSwKLSAgICAgICAg
eyAiZW5hYmxlQ29sb3JGaWx0ZXIiLCBmYWxzZSB9LAotICAgICAgICB7ICJwdW5jaE91dFdoaXRl
QmFja2dyb3VuZHNJbkRhcmtNb2RlIiwgZmFsc2UgfSwKLSAgICAgICAgeyAicnVuU2luZ2x5Iiwg
ZmFsc2UgfSwKLSAgICAgICAgeyAiY2hlY2tGb3JXb3JsZExlYWtzIiwgZmFsc2UgfSwKLSAgICAg
ICAgeyAic2hvdWxkSWdub3JlTWV0YVZpZXdwb3J0IiwgZmFsc2UgfSwKLSAgICAgICAgeyAic3Bl
bGxDaGVja2luZ0RvdHMiLCBmYWxzZSB9LAotICAgICAgICB7ICJlbmFibGVTZXJ2aWNlQ29udHJv
bHMiLCBmYWxzZSB9LAorICAgICAgICB7ICJkdW1wSlNDb25zb2xlTG9nSW5TdGRFcnIiLCBmYWxz
ZSB9LAogICAgICAgICB7ICJlZGl0YWJsZSIsIGZhbHNlIH0sCi0gICAgICAgIHsgInNob3VsZEhh
bmRsZVJ1bk9wZW5QYW5lbCIsIHRydWUgfSwKLSAgICAgICAgeyAic2hvdWxkUHJlc2VudFBvcG92
ZXJzIiwgdHJ1ZSB9LAogICAgICAgICB7ICJlbmFibGVBcHBOYXAiLCBmYWxzZSB9LAorICAgICAg
ICB7ICJlbmFibGVBdHRhY2htZW50RWxlbWVudCIsIGZhbHNlIH0sCiAgICAgICAgIHsgImVuYWJs
ZUJhY2tGb3J3YXJkQ2FjaGUiLCBmYWxzZSB9LAotICAgICAgICB7ICJhbGxvd3NMaW5rUHJldmll
dyIsIHRydWUgfSwKLSAgICAgICAgeyAiZW5hYmxlQ2FwdHVyZVZpZGVvSW5VSVByb2Nlc3MiLCBm
YWxzZSB9LAotICAgICAgICB7ICJlbmFibGVDYXB0dXJlVmlkZW9JbkdQVVByb2Nlc3MiLCBmYWxz
ZSB9LAotICAgICAgICB7ICJlbmFibGVDYXB0dXJlQXVkaW9JblVJUHJvY2VzcyIsIGZhbHNlIH0s
CiAgICAgICAgIHsgImVuYWJsZUNhcHR1cmVBdWRpb0luR1BVUHJvY2VzcyIsIGZhbHNlIH0sCi0g
ICAgICAgIHsgImFsbG93VG9wTmF2aWdhdGlvblRvRGF0YVVSTHMiLCB0cnVlIH0sCisgICAgICAg
IHsgImVuYWJsZUNhcHR1cmVBdWRpb0luVUlQcm9jZXNzIiwgZmFsc2UgfSwKKyAgICAgICAgeyAi
ZW5hYmxlQ2FwdHVyZVZpZGVvSW5HUFVQcm9jZXNzIiwgZmFsc2UgfSwKKyAgICAgICAgeyAiZW5h
YmxlQ2FwdHVyZVZpZGVvSW5VSVByb2Nlc3MiLCBmYWxzZSB9LAorICAgICAgICB7ICJlbmFibGVD
b2xvckZpbHRlciIsIGZhbHNlIH0sCiAgICAgICAgIHsgImVuYWJsZUluQXBwQnJvd3NlclByaXZh
Y3kiLCBmYWxzZSB9LAotICAgICAgICB7ICJpc0FwcEJvdW5kV2ViVmlldyIsIGZhbHNlIH0sCi0g
ICAgICAgIHsgImlnbm9yZVN5bmNocm9ub3VzTWVzc2FnaW5nVGltZW91dHMiLCBmYWxzZSB9LAor
ICAgICAgICB7ICJlbmFibGVJbnNwZWN0b3JBZGRpdGlvbnMiLCBmYWxzZSB9LAorICAgICAgICB7
ICJlbmFibGVLZXlnZW5FbGVtZW50IiwgZmFsc2UgfSwKKyAgICAgICAgeyAiZW5hYmxlTWVudUl0
ZW1FbGVtZW50IiwgZmFsc2UgfSwKKyAgICAgICAgeyAiZW5hYmxlTW9kZXJuTWVkaWFDb250cm9s
cyIsIHRydWUgfSwKICAgICAgICAgeyAiZW5hYmxlUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24iLCB0
cnVlIH0sCiAgICAgICAgIHsgImVuYWJsZVByb2Nlc3NTd2FwT25XaW5kb3dPcGVuIiwgZmFsc2Ug
fSwKLSAgICAgICAgeyAidXNlU2VydmljZVdvcmtlclNob3J0VGltZW91dCIsIGZhbHNlIH0KKyAg
ICAgICAgeyAiZW5hYmxlU2VydmljZUNvbnRyb2xzIiwgZmFsc2UgfSwKKyAgICAgICAgeyAiZW5h
YmxlV2ViQXV0aGVudGljYXRpb24iLCB0cnVlIH0sCisgICAgICAgIHsgImVuYWJsZVdlYkF1dGhl
bnRpY2F0aW9uTG9jYWxBdXRoZW50aWNhdG9yIiwgdHJ1ZSB9LAorICAgICAgICB7ICJpZ25vcmVT
eW5jaHJvbm91c01lc3NhZ2luZ1RpbWVvdXRzIiwgZmFsc2UgfSwKKyAgICAgICAgeyAiaWdub3Jl
c1ZpZXdwb3J0U2NhbGVMaW1pdHMiLCBmYWxzZSB9LAorICAgICAgICB7ICJpc0FwcEJvdW5kV2Vi
VmlldyIsIGZhbHNlIH0sCisgICAgICAgIHsgIm5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzIiwgZmFs
c2UgfSwKKyAgICAgICAgeyAicHVuY2hPdXRXaGl0ZUJhY2tncm91bmRzSW5EYXJrTW9kZSIsIGZh
bHNlIH0sCisgICAgICAgIHsgInJ1blNpbmdseSIsIGZhbHNlIH0sCisgICAgICAgIHsgInNob3Vs
ZEhhbmRsZVJ1bk9wZW5QYW5lbCIsIHRydWUgfSwKKyAgICAgICAgeyAic2hvdWxkSWdub3JlTWV0
YVZpZXdwb3J0IiwgZmFsc2UgfSwKKyAgICAgICAgeyAic2hvdWxkUHJlc2VudFBvcG92ZXJzIiwg
dHJ1ZSB9LAorICAgICAgICB7ICJzaG91bGRTaG93VG91Y2hlcyIsIGZhbHNlIH0sCisgICAgICAg
IHsgInNob3VsZFNob3dXZWJWaWV3IiwgZmFsc2UgfSwKKyAgICAgICAgeyAic3BlbGxDaGVja2lu
Z0RvdHMiLCBmYWxzZSB9LAorICAgICAgICB7ICJ1c2VBY2NlbGVyYXRlZERyYXdpbmciLCBmYWxz
ZSB9LAorICAgICAgICB7ICJ1c2VDaGFyYWN0ZXJTZWxlY3Rpb25HcmFudWxhcml0eSIsIGZhbHNl
IH0sCisgICAgICAgIHsgInVzZURhdGFEZXRlY3Rpb24iLCBmYWxzZSB9LAorICAgICAgICB7ICJ1
c2VFcGhlbWVyYWxTZXNzaW9uIiwgZmFsc2UgfSwKKyAgICAgICAgeyAidXNlRmxleGlibGVWaWV3
cG9ydCIsIGZhbHNlIH0sCisgICAgICAgIHsgInVzZU1vY2tTY3JvbGxiYXJzIiwgdHJ1ZSB9LAor
ICAgICAgICB7ICJ1c2VSZW1vdGVMYXllclRyZWUiLCBmYWxzZSB9LAorICAgICAgICB7ICJ1c2VT
ZXJ2aWNlV29ya2VyU2hvcnRUaW1lb3V0IiwgZmFsc2UgfSwKKyAgICAgICAgeyAidXNlVGhyZWFk
ZWRTY3JvbGxpbmciLCBmYWxzZSB9LAogICAgIH07CiAgICAgcmV0dXJuIG1hcDsKIH0KQEAgLTE1
OCw4ICsxNTUsOCBAQCBzdGF0aWMgY29uc3Qgc3RkOjp1bm9yZGVyZWRfbWFwPHN0ZDo6c3RyCiAg
ICAgc3RhdGljIHN0ZDo6dW5vcmRlcmVkX21hcDxzdGQ6OnN0cmluZywgZG91YmxlPiBtYXAgewog
ICAgICAgICB7ICJjb250ZW50SW5zZXQudG9wIiwgMCB9LAogICAgICAgICB7ICJkZXZpY2VTY2Fs
ZUZhY3RvciIsIDEgfSwKKyAgICAgICAgeyAidmlld0hlaWdodCIsIDYwMCB9LAogICAgICAgICB7
ICJ2aWV3V2lkdGgiLCA4MDAgfSwKLSAgICAgICAgeyAidmlld0hlaWdodCIsIDYwMCB9CiAgICAg
fTsKICAgICByZXR1cm4gbWFwOwogfQpAQCAtMTY3LDEyICsxNjQsMTIgQEAgc3RhdGljIGNvbnN0
IHN0ZDo6dW5vcmRlcmVkX21hcDxzdGQ6OnN0cgogc3RhdGljIGNvbnN0IHN0ZDo6dW5vcmRlcmVk
X21hcDxzdGQ6OnN0cmluZywgc3RkOjpzdHJpbmc+JiBzdHJpbmdEZWZhdWx0c01hcCgpCiB7CiAg
ICAgc3RhdGljIHN0ZDo6dW5vcmRlcmVkX21hcDxzdGQ6OnN0cmluZywgc3RkOjpzdHJpbmc+IG1h
cCB7CisgICAgICAgIHsgImFkZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVzIiwgeyB9IH0sCisg
ICAgICAgIHsgImFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllciIsIHsgfSB9LAogICAgICAgICB7
ICJhcHBsaWNhdGlvbk1hbmlmZXN0IiwgeyB9IH0sCisgICAgICAgIHsgImNvbnRlbnRNb2RlIiwg
eyB9IH0sCiAgICAgICAgIHsgImpzY09wdGlvbnMiLCB7IH0gfSwKLSAgICAgICAgeyAiYWRkaXRp
b25hbFN1cHBvcnRlZEltYWdlVHlwZXMiLCB7IH0gfSwKICAgICAgICAgeyAic3RhbmRhbG9uZVdl
YkFwcGxpY2F0aW9uVVJMIiwgeyB9IH0sCi0gICAgICAgIHsgImNvbnRlbnRNb2RlIiwgeyB9IH0s
Ci0gICAgICAgIHsgImFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllciIsIHsgfSB9CiAgICAgfTsK
ICAgICByZXR1cm4gbWFwOwogfQpAQCAtMTgwLDcgKzE3Nyw3IEBAIHN0YXRpYyBjb25zdCBzdGQ6
OnVub3JkZXJlZF9tYXA8c3RkOjpzdHIKIHN0YXRpYyBjb25zdCBzdGQ6OnVub3JkZXJlZF9tYXA8
c3RkOjpzdHJpbmcsIHN0ZDo6dmVjdG9yPHN0ZDo6c3RyaW5nPj4mIHN0cmluZ1ZlY3RvckRlZmF1
bHRzTWFwKCkKIHsKICAgICBzdGF0aWMgc3RkOjp1bm9yZGVyZWRfbWFwPHN0ZDo6c3RyaW5nLCBz
dGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4+IG1hcCB7Ci0gICAgICAgIHsgImxhbmd1YWdlIiwgeyB9
IH0KKyAgICAgICAgeyAibGFuZ3VhZ2UiLCB7IH0gfSwKICAgICB9OwogICAgIHJldHVybiBtYXA7
CiB9CkBAIC0xOTgsNjUgKzE5NSw2MiBAQCBlbnVtIGNsYXNzIEtleVR5cGUgOiB1aW50OF90IHsK
IHN0YXRpYyBjb25zdCBzdGQ6OnVub3JkZXJlZF9tYXA8c3RkOjpzdHJpbmcsIEtleVR5cGU+JiBr
ZXlUeXBlTWFwKCkKIHsKICAgICBzdGF0aWMgc3RkOjp1bm9yZGVyZWRfbWFwPHN0ZDo6c3RyaW5n
LCBLZXlUeXBlPiBtYXAgewotICAgICAgICB7ICJ1c2VUaHJlYWRlZFNjcm9sbGluZyIsIEtleVR5
cGU6OkJvb2wgfSwKLSAgICAgICAgeyAidXNlQWNjZWxlcmF0ZWREcmF3aW5nIiwgS2V5VHlwZTo6
Qm9vbCB9LAotICAgICAgICB7ICJ1c2VSZW1vdGVMYXllclRyZWUiLCBLZXlUeXBlOjpCb29sIH0s
Ci0gICAgICAgIHsgInNob3VsZFNob3dXZWJWaWV3IiwgS2V5VHlwZTo6Qm9vbCB9LAotICAgICAg
ICB7ICJ1c2VGbGV4aWJsZVZpZXdwb3J0IiwgS2V5VHlwZTo6Qm9vbCB9LAotICAgICAgICB7ICJ1
c2VEYXRhRGV0ZWN0aW9uIiwgS2V5VHlwZTo6Qm9vbCB9LAotICAgICAgICB7ICJ1c2VNb2NrU2Ny
b2xsYmFycyIsIEtleVR5cGU6OkJvb2wgfSwKLSAgICAgICAgeyAibmVlZHNTaXRlU3BlY2lmaWNR
dWlya3MiLCBLZXlUeXBlOjpCb29sIH0sCi0gICAgICAgIHsgImlnbm9yZXNWaWV3cG9ydFNjYWxl
TGltaXRzIiwgS2V5VHlwZTo6Qm9vbCB9LAotICAgICAgICB7ICJ1c2VDaGFyYWN0ZXJTZWxlY3Rp
b25HcmFudWxhcml0eSIsIEtleVR5cGU6OkJvb2wgfSwKLSAgICAgICAgeyAiZW5hYmxlQXR0YWNo
bWVudEVsZW1lbnQiLCBLZXlUeXBlOjpCb29sIH0sCi0gICAgICAgIHsgImVuYWJsZUludGVyc2Vj
dGlvbk9ic2VydmVyIiwgS2V5VHlwZTo6Qm9vbCB9LAotICAgICAgICB7ICJ1c2VFcGhlbWVyYWxT
ZXNzaW9uIiwgS2V5VHlwZTo6Qm9vbCB9LAotICAgICAgICB7ICJlbmFibGVNZW51SXRlbUVsZW1l
bnQiLCBLZXlUeXBlOjpCb29sIH0sCi0gICAgICAgIHsgImVuYWJsZUtleWdlbkVsZW1lbnQiLCBL
ZXlUeXBlOjpCb29sIH0sCi0gICAgICAgIHsgImVuYWJsZU1vZGVybk1lZGlhQ29udHJvbHMiLCBL
ZXlUeXBlOjpCb29sIH0sCi0gICAgICAgIHsgImVuYWJsZVBvaW50ZXJMb2NrIiwgS2V5VHlwZTo6
Qm9vbCB9LAotICAgICAgICB7ICJlbmFibGVXZWJBdXRoZW50aWNhdGlvbiIsIEtleVR5cGU6OkJv
b2wgfSwKLSAgICAgICAgeyAiZW5hYmxlV2ViQXV0aGVudGljYXRpb25Mb2NhbEF1dGhlbnRpY2F0
b3IiLCBLZXlUeXBlOjpCb29sIH0sCi0gICAgICAgIHsgImVuYWJsZUluc3BlY3RvckFkZGl0aW9u
cyIsIEtleVR5cGU6OkJvb2wgfSwKLSAgICAgICAgeyAic2hvdWxkU2hvd1RvdWNoZXMiLCBLZXlU
eXBlOjpCb29sIH0sCi0gICAgICAgIHsgImR1bXBKU0NvbnNvbGVMb2dJblN0ZEVyciIsIEtleVR5
cGU6OkJvb2wgfSwKICAgICAgICAgeyAiYWxsb3dDcm9zc09yaWdpblN1YnJlc291cmNlc1RvQXNr
Rm9yQ3JlZGVudGlhbHMiLCBLZXlUeXBlOjpCb29sIH0sCisgICAgICAgIHsgImFsbG93VG9wTmF2
aWdhdGlvblRvRGF0YVVSTHMiLCBLZXlUeXBlOjpCb29sIH0sCisgICAgICAgIHsgImFsbG93c0xp
bmtQcmV2aWV3IiwgS2V5VHlwZTo6Qm9vbCB9LAogICAgICAgICB7ICJkb21QYXN0ZUFsbG93ZWQi
LCBLZXlUeXBlOjpCb29sIH0sCi0gICAgICAgIHsgImVuYWJsZUNvbG9yRmlsdGVyIiwgS2V5VHlw
ZTo6Qm9vbCB9LAotICAgICAgICB7ICJwdW5jaE91dFdoaXRlQmFja2dyb3VuZHNJbkRhcmtNb2Rl
IiwgS2V5VHlwZTo6Qm9vbCB9LAotICAgICAgICB7ICJydW5TaW5nbHkiLCBLZXlUeXBlOjpCb29s
IH0sCi0gICAgICAgIHsgImNoZWNrRm9yV29ybGRMZWFrcyIsIEtleVR5cGU6OkJvb2wgfSwKLSAg
ICAgICAgeyAic2hvdWxkSWdub3JlTWV0YVZpZXdwb3J0IiwgS2V5VHlwZTo6Qm9vbCB9LAotICAg
ICAgICB7ICJzcGVsbENoZWNraW5nRG90cyIsIEtleVR5cGU6OkJvb2wgfSwKLSAgICAgICAgeyAi
ZW5hYmxlU2VydmljZUNvbnRyb2xzIiwgS2V5VHlwZTo6Qm9vbCB9LAorICAgICAgICB7ICJkdW1w
SlNDb25zb2xlTG9nSW5TdGRFcnIiLCBLZXlUeXBlOjpCb29sIH0sCiAgICAgICAgIHsgImVkaXRh
YmxlIiwgS2V5VHlwZTo6Qm9vbCB9LAotICAgICAgICB7ICJzaG91bGRIYW5kbGVSdW5PcGVuUGFu
ZWwiLCBLZXlUeXBlOjpCb29sIH0sCi0gICAgICAgIHsgInNob3VsZFByZXNlbnRQb3BvdmVycyIs
IEtleVR5cGU6OkJvb2wgfSwKICAgICAgICAgeyAiZW5hYmxlQXBwTmFwIiwgS2V5VHlwZTo6Qm9v
bCB9LAorICAgICAgICB7ICJlbmFibGVBdHRhY2htZW50RWxlbWVudCIsIEtleVR5cGU6OkJvb2wg
fSwKICAgICAgICAgeyAiZW5hYmxlQmFja0ZvcndhcmRDYWNoZSIsIEtleVR5cGU6OkJvb2wgfSwK
LSAgICAgICAgeyAiYWxsb3dzTGlua1ByZXZpZXciLCBLZXlUeXBlOjpCb29sIH0sCi0gICAgICAg
IHsgImVuYWJsZUNhcHR1cmVWaWRlb0luVUlQcm9jZXNzIiwgS2V5VHlwZTo6Qm9vbCB9LAotICAg
ICAgICB7ICJlbmFibGVDYXB0dXJlVmlkZW9JbkdQVVByb2Nlc3MiLCBLZXlUeXBlOjpCb29sIH0s
Ci0gICAgICAgIHsgImVuYWJsZUNhcHR1cmVBdWRpb0luVUlQcm9jZXNzIiwgS2V5VHlwZTo6Qm9v
bCB9LAogICAgICAgICB7ICJlbmFibGVDYXB0dXJlQXVkaW9JbkdQVVByb2Nlc3MiLCBLZXlUeXBl
OjpCb29sIH0sCi0gICAgICAgIHsgImFsbG93VG9wTmF2aWdhdGlvblRvRGF0YVVSTHMiLCBLZXlU
eXBlOjpCb29sIH0sCisgICAgICAgIHsgImVuYWJsZUNhcHR1cmVBdWRpb0luVUlQcm9jZXNzIiwg
S2V5VHlwZTo6Qm9vbCB9LAorICAgICAgICB7ICJlbmFibGVDYXB0dXJlVmlkZW9JbkdQVVByb2Nl
c3MiLCBLZXlUeXBlOjpCb29sIH0sCisgICAgICAgIHsgImVuYWJsZUNhcHR1cmVWaWRlb0luVUlQ
cm9jZXNzIiwgS2V5VHlwZTo6Qm9vbCB9LAorICAgICAgICB7ICJlbmFibGVDb2xvckZpbHRlciIs
IEtleVR5cGU6OkJvb2wgfSwKICAgICAgICAgeyAiZW5hYmxlSW5BcHBCcm93c2VyUHJpdmFjeSIs
IEtleVR5cGU6OkJvb2wgfSwKLSAgICAgICAgeyAiaXNBcHBCb3VuZFdlYlZpZXciLCBLZXlUeXBl
OjpCb29sIH0sCi0gICAgICAgIHsgImlnbm9yZVN5bmNocm9ub3VzTWVzc2FnaW5nVGltZW91dHMi
LCBLZXlUeXBlOjpCb29sIH0sCisgICAgICAgIHsgImVuYWJsZUluc3BlY3RvckFkZGl0aW9ucyIs
IEtleVR5cGU6OkJvb2wgfSwKKyAgICAgICAgeyAiZW5hYmxlS2V5Z2VuRWxlbWVudCIsIEtleVR5
cGU6OkJvb2wgfSwKKyAgICAgICAgeyAiZW5hYmxlTWVudUl0ZW1FbGVtZW50IiwgS2V5VHlwZTo6
Qm9vbCB9LAorICAgICAgICB7ICJlbmFibGVNb2Rlcm5NZWRpYUNvbnRyb2xzIiwgS2V5VHlwZTo6
Qm9vbCB9LAogICAgICAgICB7ICJlbmFibGVQcm9jZXNzU3dhcE9uTmF2aWdhdGlvbiIsIEtleVR5
cGU6OkJvb2wgfSwKICAgICAgICAgeyAiZW5hYmxlUHJvY2Vzc1N3YXBPbldpbmRvd09wZW4iLCBL
ZXlUeXBlOjpCb29sIH0sCisgICAgICAgIHsgImVuYWJsZVNlcnZpY2VDb250cm9scyIsIEtleVR5
cGU6OkJvb2wgfSwKKyAgICAgICAgeyAiZW5hYmxlV2ViQXV0aGVudGljYXRpb24iLCBLZXlUeXBl
OjpCb29sIH0sCisgICAgICAgIHsgImVuYWJsZVdlYkF1dGhlbnRpY2F0aW9uTG9jYWxBdXRoZW50
aWNhdG9yIiwgS2V5VHlwZTo6Qm9vbCB9LAorICAgICAgICB7ICJpZ25vcmVTeW5jaHJvbm91c01l
c3NhZ2luZ1RpbWVvdXRzIiwgS2V5VHlwZTo6Qm9vbCB9LAorICAgICAgICB7ICJpZ25vcmVzVmll
d3BvcnRTY2FsZUxpbWl0cyIsIEtleVR5cGU6OkJvb2wgfSwKKyAgICAgICAgeyAiaXNBcHBCb3Vu
ZFdlYlZpZXciLCBLZXlUeXBlOjpCb29sIH0sCisgICAgICAgIHsgIm5lZWRzU2l0ZVNwZWNpZmlj
UXVpcmtzIiwgS2V5VHlwZTo6Qm9vbCB9LAorICAgICAgICB7ICJwdW5jaE91dFdoaXRlQmFja2dy
b3VuZHNJbkRhcmtNb2RlIiwgS2V5VHlwZTo6Qm9vbCB9LAorICAgICAgICB7ICJydW5TaW5nbHki
LCBLZXlUeXBlOjpCb29sIH0sCisgICAgICAgIHsgInNob3VsZEhhbmRsZVJ1bk9wZW5QYW5lbCIs
IEtleVR5cGU6OkJvb2wgfSwKKyAgICAgICAgeyAic2hvdWxkSWdub3JlTWV0YVZpZXdwb3J0Iiwg
S2V5VHlwZTo6Qm9vbCB9LAorICAgICAgICB7ICJzaG91bGRQcmVzZW50UG9wb3ZlcnMiLCBLZXlU
eXBlOjpCb29sIH0sCisgICAgICAgIHsgInNob3VsZFNob3dUb3VjaGVzIiwgS2V5VHlwZTo6Qm9v
bCB9LAorICAgICAgICB7ICJzaG91bGRTaG93V2ViVmlldyIsIEtleVR5cGU6OkJvb2wgfSwKKyAg
ICAgICAgeyAic3BlbGxDaGVja2luZ0RvdHMiLCBLZXlUeXBlOjpCb29sIH0sCisgICAgICAgIHsg
InVzZUFjY2VsZXJhdGVkRHJhd2luZyIsIEtleVR5cGU6OkJvb2wgfSwKKyAgICAgICAgeyAidXNl
Q2hhcmFjdGVyU2VsZWN0aW9uR3JhbnVsYXJpdHkiLCBLZXlUeXBlOjpCb29sIH0sCisgICAgICAg
IHsgInVzZURhdGFEZXRlY3Rpb24iLCBLZXlUeXBlOjpCb29sIH0sCisgICAgICAgIHsgInVzZUVw
aGVtZXJhbFNlc3Npb24iLCBLZXlUeXBlOjpCb29sIH0sCisgICAgICAgIHsgInVzZUZsZXhpYmxl
Vmlld3BvcnQiLCBLZXlUeXBlOjpCb29sIH0sCisgICAgICAgIHsgInVzZU1vY2tTY3JvbGxiYXJz
IiwgS2V5VHlwZTo6Qm9vbCB9LAorICAgICAgICB7ICJ1c2VSZW1vdGVMYXllclRyZWUiLCBLZXlU
eXBlOjpCb29sIH0sCiAgICAgICAgIHsgInVzZVNlcnZpY2VXb3JrZXJTaG9ydFRpbWVvdXQiLCBL
ZXlUeXBlOjpCb29sIH0sCisgICAgICAgIHsgInVzZVRocmVhZGVkU2Nyb2xsaW5nIiwgS2V5VHlw
ZTo6Qm9vbCB9LAogICAgIAogICAgICAgICB7ICJjb250ZW50SW5zZXQudG9wIiwgS2V5VHlwZTo6
RG91YmxlIH0sCiAgICAgICAgIHsgImRldmljZVNjYWxlRmFjdG9yIiwgS2V5VHlwZTo6RG91Ymxl
IH0sCi0gICAgICAgIHsgInZpZXdXaWR0aCIsIEtleVR5cGU6OkRvdWJsZSB9LAogICAgICAgICB7
ICJ2aWV3SGVpZ2h0IiwgS2V5VHlwZTo6RG91YmxlIH0sCisgICAgICAgIHsgInZpZXdXaWR0aCIs
IEtleVR5cGU6OkRvdWJsZSB9LAogCi0gICAgICAgIHsgImpzY09wdGlvbnMiLCBLZXlUeXBlOjpT
dHJpbmcgfSwKICAgICAgICAgeyAiYWRkaXRpb25hbFN1cHBvcnRlZEltYWdlVHlwZXMiLCBLZXlU
eXBlOjpTdHJpbmcgfSwKLSAgICAgICAgeyAiY29udGVudE1vZGUiLCBLZXlUeXBlOjpTdHJpbmcg
fSwKICAgICAgICAgeyAiYXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyIiwgS2V5VHlwZTo6U3Ry
aW5nIH0sCiAgICAgICAgIHsgImFwcGxpY2F0aW9uTWFuaWZlc3QiLCBLZXlUeXBlOjpTdHJpbmdS
ZWxhdGl2ZVBhdGggfSwKKyAgICAgICAgeyAiY29udGVudE1vZGUiLCBLZXlUeXBlOjpTdHJpbmcg
fSwKKyAgICAgICAgeyAianNjT3B0aW9ucyIsIEtleVR5cGU6OlN0cmluZyB9LAogICAgICAgICB7
ICJzdGFuZGFsb25lV2ViQXBwbGljYXRpb25VUkwiLCBLZXlUeXBlOjpTdHJpbmdVUkwgfSwKIAog
ICAgICAgICB7ICJsYW5ndWFnZSIsIEtleVR5cGU6OlN0cmluZ1ZlY3RvciB9LApAQCAtNDg2LDYg
KzQ4MCw0OCBAQCBib29sIFRlc3RPcHRpb25zOjpoYXNTYW1lSW5pdGlhbGl6YXRpb25PCiAgICAg
cmV0dXJuIHRydWU7CiB9CiAKKyNkZWZpbmUgRk9SX0VBQ0hfQk9PTF9XS19QUkVGRVJFTkNFKG1h
Y3JvKSBcCisgICAgbWFjcm8oZW5hYmxlQ2FwdHVyZVZpZGVvSW5VSVByb2Nlc3MsIGNhcHR1cmVW
aWRlb0luVUlQcm9jZXNzRW5hYmxlZCkgXAorICAgIG1hY3JvKGVuYWJsZUNhcHR1cmVWaWRlb0lu
R1BVUHJvY2VzcywgY2FwdHVyZVZpZGVvSW5HUFVQcm9jZXNzRW5hYmxlZCkgXAorICAgIG1hY3Jv
KGVuYWJsZUNhcHR1cmVBdWRpb0luVUlQcm9jZXNzLCBjYXB0dXJlQXVkaW9JblVJUHJvY2Vzc0Vu
YWJsZWQpIFwKKyAgICBtYWNybyhlbmFibGVDYXB0dXJlQXVkaW9JbkdQVVByb2Nlc3MsIGNhcHR1
cmVBdWRpb0luR1BVUHJvY2Vzc0VuYWJsZWQpIFwKKyAgICBtYWNybyh1c2VBY2NlbGVyYXRlZERy
YXdpbmcsIGFjY2VsZXJhdGVkRHJhd2luZ0VuYWJsZWQpIFwKKyAgICBtYWNybyh1c2VNb2NrU2Ny
b2xsYmFycywgbW9ja1Njcm9sbGJhcnNFbmFibGVkKSBcCisgICAgbWFjcm8obmVlZHNTaXRlU3Bl
Y2lmaWNRdWlya3MsIG5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzKSBcCisgICAgbWFjcm8oZW5hYmxl
QXR0YWNobWVudEVsZW1lbnQsIGF0dGFjaG1lbnRFbGVtZW50RW5hYmxlZCkgXAorICAgIG1hY3Jv
KGVuYWJsZU1lbnVJdGVtRWxlbWVudCwgbWVudUl0ZW1FbGVtZW50RW5hYmxlZCkgXAorICAgIG1h
Y3JvKGVuYWJsZUtleWdlbkVsZW1lbnQsIGtleWdlbkVsZW1lbnRFbmFibGVkKSBcCisgICAgbWFj
cm8oZW5hYmxlTW9kZXJuTWVkaWFDb250cm9scywgbW9kZXJuTWVkaWFDb250cm9sc0VuYWJsZWQp
IFwKKyAgICBtYWNybyhlbmFibGVXZWJBdXRoZW50aWNhdGlvbiwgd2ViQXV0aGVudGljYXRpb25F
bmFibGVkKSBcCisgICAgbWFjcm8oZW5hYmxlV2ViQXV0aGVudGljYXRpb25Mb2NhbEF1dGhlbnRp
Y2F0b3IsIHdlYkF1dGhlbnRpY2F0aW9uTG9jYWxBdXRoZW50aWNhdG9yRW5hYmxlZCkgXAorICAg
IG1hY3JvKGVuYWJsZUluc3BlY3RvckFkZGl0aW9ucywgaW5zcGVjdG9yQWRkaXRpb25zRW5hYmxl
ZCkgXAorICAgIG1hY3JvKGFsbG93Q3Jvc3NPcmlnaW5TdWJyZXNvdXJjZXNUb0Fza0ZvckNyZWRl
bnRpYWxzLCBhbGxvd0Nyb3NzT3JpZ2luU3VicmVzb3VyY2VzVG9Bc2tGb3JDcmVkZW50aWFscykg
XAorICAgIG1hY3JvKGRvbVBhc3RlQWxsb3dlZCwgZG9tUGFzdGVBbGxvd2VkKSBcCisgICAgbWFj
cm8oZW5hYmxlQ29sb3JGaWx0ZXIsIGNvbG9yRmlsdGVyRW5hYmxlZCkgXAorICAgIG1hY3JvKHB1
bmNoT3V0V2hpdGVCYWNrZ3JvdW5kc0luRGFya01vZGUsIHB1bmNoT3V0V2hpdGVCYWNrZ3JvdW5k
c0luRGFya01vZGUpIFwKKyAgICBtYWNybyhzaG91bGRJZ25vcmVNZXRhVmlld3BvcnQsIHNob3Vs
ZElnbm9yZU1ldGFWaWV3cG9ydCkgXAorICAgIG1hY3JvKGVuYWJsZUFwcE5hcCwgcGFnZVZpc2li
aWxpdHlCYXNlZFByb2Nlc3NTdXBwcmVzc2lvbkVuYWJsZWQpIFwKKyAgICBtYWNybyhlbmFibGVC
YWNrRm9yd2FyZENhY2hlLCB1c2VzQmFja0ZvcndhcmRDYWNoZSkgXAorICAgIG1hY3JvKGVuYWJs
ZVNlcnZpY2VDb250cm9scywgc2VydmljZUNvbnRyb2xzRW5hYmxlZCkgXAorICAgIG1hY3JvKGFs
bG93VG9wTmF2aWdhdGlvblRvRGF0YVVSTHMsIGFsbG93VG9wTmF2aWdhdGlvblRvRGF0YVVSTHMp
IFwKKyAgICBtYWNybyh1c2VTZXJ2aWNlV29ya2VyU2hvcnRUaW1lb3V0LCBzaG91bGRVc2VTZXJ2
aWNlV29ya2VyU2hvcnRUaW1lb3V0KSBcCitcCisKK3N0ZDo6dmVjdG9yPHN0ZDo6cGFpcjxzdGQ6
OnN0cmluZywgYm9vbD4+IFRlc3RPcHRpb25zOjpib29sV0tQcmVmZXJlbmNlcygpIGNvbnN0Cit7
CisgICAgc3RkOjp2ZWN0b3I8c3RkOjpwYWlyPHN0ZDo6c3RyaW5nLCBib29sPj4gcmVzdWx0Owor
CisjZGVmaW5lIEFERF9WQUxVRSh0ZXN0T3B0aW9uc0tleSwgcHJlZmVyZW5jZXNLZXkpIFwKKyAg
ICByZXN1bHQucHVzaF9iYWNrKHsgI3ByZWZlcmVuY2VzS2V5LCBib29sRmVhdHVyZVZhbHVlKCN0
ZXN0T3B0aW9uc0tleSkgfSk7IFwKKyAgICBcCisgICAgCitGT1JfRUFDSF9CT09MX1dLX1BSRUZF
UkVOQ0UoQUREX1ZBTFVFKQorCisjdW5kZWYgQUREX1ZBTFVFX0lGX0VYSVNUUworICAgIAorICAg
IHJldHVybiByZXN1bHQ7Cit9CisKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CiBUIGZlYXR1cmVWYWx1
ZShzdGQ6OnN0cmluZyBrZXksIGNvbnN0IHN0ZDo6dW5vcmRlcmVkX21hcDxzdGQ6OnN0cmluZywg
VD4mIG1hcCwgY29uc3Qgc3RkOjp1bm9yZGVyZWRfbWFwPHN0ZDo6c3RyaW5nLCBUPiYgZGVmYXVs
dHNNYXApCiB7CkluZGV4OiBUb29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RPcHRpb25zLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0T3B0aW9ucy5oCShyZXZpc2lv
biAyNjgzMjMpCisrKyBUb29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RPcHRpb25zLmgJKHdvcmtp
bmcgY29weSkKQEAgLTg3LDY5ICs4Nyw0OCBAQCBwdWJsaWM6CiAgICAgICAgIH07CiAgICAgfQog
Ci0gICAgYm9vbCB1c2VUaHJlYWRlZFNjcm9sbGluZygpIGNvbnN0IHsgcmV0dXJuIGJvb2xGZWF0
dXJlVmFsdWUoInVzZVRocmVhZGVkU2Nyb2xsaW5nIik7IH0KLSAgICBib29sIHVzZUFjY2VsZXJh
dGVkRHJhd2luZygpIGNvbnN0IHsgcmV0dXJuIGJvb2xGZWF0dXJlVmFsdWUoInVzZUFjY2VsZXJh
dGVkRHJhd2luZyIpOyB9Ci0gICAgYm9vbCB1c2VSZW1vdGVMYXllclRyZWUoKSBjb25zdCB7IHJl
dHVybiBib29sRmVhdHVyZVZhbHVlKCJ1c2VSZW1vdGVMYXllclRyZWUiKTsgfQotICAgIGJvb2wg
c2hvdWxkU2hvd1dlYlZpZXcoKSBjb25zdCB7IHJldHVybiBib29sRmVhdHVyZVZhbHVlKCJzaG91
bGRTaG93V2ViVmlldyIpOyB9Ci0gICAgYm9vbCB1c2VGbGV4aWJsZVZpZXdwb3J0KCkgY29uc3Qg
eyByZXR1cm4gYm9vbEZlYXR1cmVWYWx1ZSgidXNlRmxleGlibGVWaWV3cG9ydCIpOyB9Ci0gICAg
Ym9vbCB1c2VEYXRhRGV0ZWN0aW9uKCkgY29uc3QgeyByZXR1cm4gYm9vbEZlYXR1cmVWYWx1ZSgi
dXNlRGF0YURldGVjdGlvbiIpOyB9Ci0gICAgYm9vbCB1c2VNb2NrU2Nyb2xsYmFycygpIGNvbnN0
IHsgcmV0dXJuIGJvb2xGZWF0dXJlVmFsdWUoInVzZU1vY2tTY3JvbGxiYXJzIik7IH0KLSAgICBi
b29sIG5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzKCkgY29uc3QgeyByZXR1cm4gYm9vbEZlYXR1cmVW
YWx1ZSgibmVlZHNTaXRlU3BlY2lmaWNRdWlya3MiKTsgfQotICAgIGJvb2wgaWdub3Jlc1ZpZXdw
b3J0U2NhbGVMaW1pdHMoKSBjb25zdCB7IHJldHVybiBib29sRmVhdHVyZVZhbHVlKCJpZ25vcmVz
Vmlld3BvcnRTY2FsZUxpbWl0cyIpOyB9Ci0gICAgYm9vbCB1c2VDaGFyYWN0ZXJTZWxlY3Rpb25H
cmFudWxhcml0eSgpIGNvbnN0IHsgcmV0dXJuIGJvb2xGZWF0dXJlVmFsdWUoInVzZUNoYXJhY3Rl
clNlbGVjdGlvbkdyYW51bGFyaXR5Iik7IH0KLSAgICBib29sIGVuYWJsZUF0dGFjaG1lbnRFbGVt
ZW50KCkgY29uc3QgeyByZXR1cm4gYm9vbEZlYXR1cmVWYWx1ZSgiZW5hYmxlQXR0YWNobWVudEVs
ZW1lbnQiKTsgfQotICAgIGJvb2wgZW5hYmxlSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoKSBjb25zdCB7
IHJldHVybiBib29sRmVhdHVyZVZhbHVlKCJlbmFibGVJbnRlcnNlY3Rpb25PYnNlcnZlciIpOyB9
Ci0gICAgYm9vbCB1c2VFcGhlbWVyYWxTZXNzaW9uKCkgY29uc3QgeyByZXR1cm4gYm9vbEZlYXR1
cmVWYWx1ZSgidXNlRXBoZW1lcmFsU2Vzc2lvbiIpOyB9Ci0gICAgYm9vbCBlbmFibGVNZW51SXRl
bUVsZW1lbnQoKSBjb25zdCB7IHJldHVybiBib29sRmVhdHVyZVZhbHVlKCJlbmFibGVNZW51SXRl
bUVsZW1lbnQiKTsgfQotICAgIGJvb2wgZW5hYmxlS2V5Z2VuRWxlbWVudCgpIGNvbnN0IHsgcmV0
dXJuIGJvb2xGZWF0dXJlVmFsdWUoImVuYWJsZUtleWdlbkVsZW1lbnQiKTsgfQotICAgIGJvb2wg
ZW5hYmxlTW9kZXJuTWVkaWFDb250cm9scygpIGNvbnN0IHsgcmV0dXJuIGJvb2xGZWF0dXJlVmFs
dWUoImVuYWJsZU1vZGVybk1lZGlhQ29udHJvbHMiKTsgfQotICAgIGJvb2wgZW5hYmxlUG9pbnRl
ckxvY2soKSBjb25zdCB7IHJldHVybiBib29sRmVhdHVyZVZhbHVlKCJlbmFibGVQb2ludGVyTG9j
ayIpOyB9Ci0gICAgYm9vbCBlbmFibGVXZWJBdXRoZW50aWNhdGlvbigpIGNvbnN0IHsgcmV0dXJu
IGJvb2xGZWF0dXJlVmFsdWUoImVuYWJsZVdlYkF1dGhlbnRpY2F0aW9uIik7IH0KLSAgICBib29s
IGVuYWJsZVdlYkF1dGhlbnRpY2F0aW9uTG9jYWxBdXRoZW50aWNhdG9yKCkgY29uc3QgeyByZXR1
cm4gYm9vbEZlYXR1cmVWYWx1ZSgiZW5hYmxlV2ViQXV0aGVudGljYXRpb25Mb2NhbEF1dGhlbnRp
Y2F0b3IiKTsgfQotICAgIGJvb2wgZW5hYmxlSW5zcGVjdG9yQWRkaXRpb25zKCkgY29uc3QgeyBy
ZXR1cm4gYm9vbEZlYXR1cmVWYWx1ZSgiZW5hYmxlSW5zcGVjdG9yQWRkaXRpb25zIik7IH0KLSAg
ICBib29sIHNob3VsZFNob3dUb3VjaGVzKCkgY29uc3QgeyByZXR1cm4gYm9vbEZlYXR1cmVWYWx1
ZSgic2hvdWxkU2hvd1RvdWNoZXMiKTsgfQorICAgIGJvb2wgYWxsb3dzTGlua1ByZXZpZXcoKSBj
b25zdCB7IHJldHVybiBib29sRmVhdHVyZVZhbHVlKCJhbGxvd3NMaW5rUHJldmlldyIpOyB9CiAg
ICAgYm9vbCBkdW1wSlNDb25zb2xlTG9nSW5TdGRFcnIoKSBjb25zdCB7IHJldHVybiBib29sRmVh
dHVyZVZhbHVlKCJkdW1wSlNDb25zb2xlTG9nSW5TdGRFcnIiKTsgfQotICAgIGJvb2wgYWxsb3dD
cm9zc09yaWdpblN1YnJlc291cmNlc1RvQXNrRm9yQ3JlZGVudGlhbHMoKSBjb25zdCB7IHJldHVy
biBib29sRmVhdHVyZVZhbHVlKCJhbGxvd0Nyb3NzT3JpZ2luU3VicmVzb3VyY2VzVG9Bc2tGb3JD
cmVkZW50aWFscyIpOyB9Ci0gICAgYm9vbCBkb21QYXN0ZUFsbG93ZWQoKSBjb25zdCB7IHJldHVy
biBib29sRmVhdHVyZVZhbHVlKCJkb21QYXN0ZUFsbG93ZWQiKTsgfQotICAgIGJvb2wgZW5hYmxl
Q29sb3JGaWx0ZXIoKSBjb25zdCB7IHJldHVybiBib29sRmVhdHVyZVZhbHVlKCJlbmFibGVDb2xv
ckZpbHRlciIpOyB9Ci0gICAgYm9vbCBwdW5jaE91dFdoaXRlQmFja2dyb3VuZHNJbkRhcmtNb2Rl
KCkgY29uc3QgeyByZXR1cm4gYm9vbEZlYXR1cmVWYWx1ZSgicHVuY2hPdXRXaGl0ZUJhY2tncm91
bmRzSW5EYXJrTW9kZSIpOyB9Ci0gICAgYm9vbCBydW5TaW5nbHkoKSBjb25zdCB7IHJldHVybiBi
b29sRmVhdHVyZVZhbHVlKCJydW5TaW5nbHkiKTsgfQotICAgIGJvb2wgY2hlY2tGb3JXb3JsZExl
YWtzKCkgY29uc3QgeyByZXR1cm4gYm9vbEZlYXR1cmVWYWx1ZSgiY2hlY2tGb3JXb3JsZExlYWtz
Iik7IH0KLSAgICBib29sIHNob3VsZElnbm9yZU1ldGFWaWV3cG9ydCgpIGNvbnN0IHsgcmV0dXJu
IGJvb2xGZWF0dXJlVmFsdWUoInNob3VsZElnbm9yZU1ldGFWaWV3cG9ydCIpOyB9Ci0gICAgYm9v
bCBzaG91bGRTaG93U3BlbGxDaGVja2luZ0RvdHMoKSBjb25zdCB7IHJldHVybiBib29sRmVhdHVy
ZVZhbHVlKCJzcGVsbENoZWNraW5nRG90cyIpOyB9Ci0gICAgYm9vbCBlbmFibGVTZXJ2aWNlQ29u
dHJvbHMoKSBjb25zdCB7IHJldHVybiBib29sRmVhdHVyZVZhbHVlKCJlbmFibGVTZXJ2aWNlQ29u
dHJvbHMiKTsgfQogICAgIGJvb2wgZWRpdGFibGUoKSBjb25zdCB7IHJldHVybiBib29sRmVhdHVy
ZVZhbHVlKCJlZGl0YWJsZSIpOyB9Ci0gICAgYm9vbCBzaG91bGRIYW5kbGVSdW5PcGVuUGFuZWwo
KSBjb25zdCB7IHJldHVybiBib29sRmVhdHVyZVZhbHVlKCJzaG91bGRIYW5kbGVSdW5PcGVuUGFu
ZWwiKTsgfQotICAgIGJvb2wgc2hvdWxkUHJlc2VudFBvcG92ZXJzKCkgY29uc3QgeyByZXR1cm4g
Ym9vbEZlYXR1cmVWYWx1ZSgic2hvdWxkUHJlc2VudFBvcG92ZXJzIik7IH0KLSAgICBib29sIGVu
YWJsZUFwcE5hcCgpIGNvbnN0IHsgcmV0dXJuIGJvb2xGZWF0dXJlVmFsdWUoImVuYWJsZUFwcE5h
cCIpOyB9Ci0gICAgYm9vbCBlbmFibGVCYWNrRm9yd2FyZENhY2hlKCkgY29uc3QgeyByZXR1cm4g
Ym9vbEZlYXR1cmVWYWx1ZSgiZW5hYmxlQmFja0ZvcndhcmRDYWNoZSIpOyB9Ci0gICAgYm9vbCBh
bGxvd3NMaW5rUHJldmlldygpIGNvbnN0IHsgcmV0dXJuIGJvb2xGZWF0dXJlVmFsdWUoImFsbG93
c0xpbmtQcmV2aWV3Iik7IH0KLSAgICBib29sIGVuYWJsZUNhcHR1cmVWaWRlb0luVUlQcm9jZXNz
KCkgY29uc3QgeyByZXR1cm4gYm9vbEZlYXR1cmVWYWx1ZSgiZW5hYmxlQ2FwdHVyZVZpZGVvSW5V
SVByb2Nlc3MiKTsgfQotICAgIGJvb2wgZW5hYmxlQ2FwdHVyZVZpZGVvSW5HUFVQcm9jZXNzKCkg
Y29uc3QgeyByZXR1cm4gYm9vbEZlYXR1cmVWYWx1ZSgiZW5hYmxlQ2FwdHVyZVZpZGVvSW5HUFVQ
cm9jZXNzIik7IH0KLSAgICBib29sIGVuYWJsZUNhcHR1cmVBdWRpb0luVUlQcm9jZXNzKCkgY29u
c3QgeyByZXR1cm4gYm9vbEZlYXR1cmVWYWx1ZSgiZW5hYmxlQ2FwdHVyZUF1ZGlvSW5VSVByb2Nl
c3MiKTsgfQotICAgIGJvb2wgZW5hYmxlQ2FwdHVyZUF1ZGlvSW5HUFVQcm9jZXNzKCkgY29uc3Qg
eyByZXR1cm4gYm9vbEZlYXR1cmVWYWx1ZSgiZW5hYmxlQ2FwdHVyZUF1ZGlvSW5HUFVQcm9jZXNz
Iik7IH0KLSAgICBib29sIGFsbG93VG9wTmF2aWdhdGlvblRvRGF0YVVSTHMoKSBjb25zdCB7IHJl
dHVybiBib29sRmVhdHVyZVZhbHVlKCJhbGxvd1RvcE5hdmlnYXRpb25Ub0RhdGFVUkxzIik7IH0K
KyAgICAvLyBGSVhNRTogZW5hYmxlQXR0YWNobWVudEVsZW1lbnQoKSBpcyBzdGlsbCB1c2VkIGR1
ZSB0byBzb21lIFdlYktpdCBjb2RlIHRoYXQgcmVsaWVzIG9uIHRoZSBjb25maWd1cmF0aW9uIHZh
bHVlIG9mIF9lbmFibGVBdHRhY2htZW50RWxlbWVudC4KKyAgICBib29sIGVuYWJsZUF0dGFjaG1l
bnRFbGVtZW50KCkgY29uc3QgeyByZXR1cm4gYm9vbEZlYXR1cmVWYWx1ZSgiZW5hYmxlQXR0YWNo
bWVudEVsZW1lbnQiKTsgfQogICAgIGJvb2wgZW5hYmxlSW5BcHBCcm93c2VyUHJpdmFjeSgpIGNv
bnN0IHsgcmV0dXJuIGJvb2xGZWF0dXJlVmFsdWUoImVuYWJsZUluQXBwQnJvd3NlclByaXZhY3ki
KTsgfQotICAgIGJvb2wgaXNBcHBCb3VuZFdlYlZpZXcoKSBjb25zdCB7IHJldHVybiBib29sRmVh
dHVyZVZhbHVlKCJpc0FwcEJvdW5kV2ViVmlldyIpOyB9Ci0gICAgYm9vbCBpZ25vcmVTeW5jaHJv
bm91c01lc3NhZ2luZ1RpbWVvdXRzKCkgY29uc3QgeyByZXR1cm4gYm9vbEZlYXR1cmVWYWx1ZSgi
aWdub3JlU3luY2hyb25vdXNNZXNzYWdpbmdUaW1lb3V0cyIpOyB9CiAgICAgYm9vbCBlbmFibGVQ
cm9jZXNzU3dhcE9uTmF2aWdhdGlvbigpIGNvbnN0IHsgcmV0dXJuIGJvb2xGZWF0dXJlVmFsdWUo
ImVuYWJsZVByb2Nlc3NTd2FwT25OYXZpZ2F0aW9uIik7IH0KICAgICBib29sIGVuYWJsZVByb2Nl
c3NTd2FwT25XaW5kb3dPcGVuKCkgY29uc3QgeyByZXR1cm4gYm9vbEZlYXR1cmVWYWx1ZSgiZW5h
YmxlUHJvY2Vzc1N3YXBPbldpbmRvd09wZW4iKTsgfQorICAgIGJvb2wgaWdub3JlU3luY2hyb25v
dXNNZXNzYWdpbmdUaW1lb3V0cygpIGNvbnN0IHsgcmV0dXJuIGJvb2xGZWF0dXJlVmFsdWUoImln
bm9yZVN5bmNocm9ub3VzTWVzc2FnaW5nVGltZW91dHMiKTsgfQorICAgIGJvb2wgaWdub3Jlc1Zp
ZXdwb3J0U2NhbGVMaW1pdHMoKSBjb25zdCB7IHJldHVybiBib29sRmVhdHVyZVZhbHVlKCJpZ25v
cmVzVmlld3BvcnRTY2FsZUxpbWl0cyIpOyB9CisgICAgYm9vbCBpc0FwcEJvdW5kV2ViVmlldygp
IGNvbnN0IHsgcmV0dXJuIGJvb2xGZWF0dXJlVmFsdWUoImlzQXBwQm91bmRXZWJWaWV3Iik7IH0K
KyAgICBib29sIHB1bmNoT3V0V2hpdGVCYWNrZ3JvdW5kc0luRGFya01vZGUoKSBjb25zdCB7IHJl
dHVybiBib29sRmVhdHVyZVZhbHVlKCJwdW5jaE91dFdoaXRlQmFja2dyb3VuZHNJbkRhcmtNb2Rl
Iik7IH0KKyAgICBib29sIHJ1blNpbmdseSgpIGNvbnN0IHsgcmV0dXJuIGJvb2xGZWF0dXJlVmFs
dWUoInJ1blNpbmdseSIpOyB9CisgICAgYm9vbCBzaG91bGRIYW5kbGVSdW5PcGVuUGFuZWwoKSBj
b25zdCB7IHJldHVybiBib29sRmVhdHVyZVZhbHVlKCJzaG91bGRIYW5kbGVSdW5PcGVuUGFuZWwi
KTsgfQorICAgIGJvb2wgc2hvdWxkUHJlc2VudFBvcG92ZXJzKCkgY29uc3QgeyByZXR1cm4gYm9v
bEZlYXR1cmVWYWx1ZSgic2hvdWxkUHJlc2VudFBvcG92ZXJzIik7IH0KKyAgICBib29sIHNob3Vs
ZFNob3dTcGVsbENoZWNraW5nRG90cygpIGNvbnN0IHsgcmV0dXJuIGJvb2xGZWF0dXJlVmFsdWUo
InNwZWxsQ2hlY2tpbmdEb3RzIik7IH0KKyAgICBib29sIHNob3VsZFNob3dUb3VjaGVzKCkgY29u
c3QgeyByZXR1cm4gYm9vbEZlYXR1cmVWYWx1ZSgic2hvdWxkU2hvd1RvdWNoZXMiKTsgfQorICAg
IGJvb2wgc2hvdWxkU2hvd1dlYlZpZXcoKSBjb25zdCB7IHJldHVybiBib29sRmVhdHVyZVZhbHVl
KCJzaG91bGRTaG93V2ViVmlldyIpOyB9CisgICAgYm9vbCB1c2VDaGFyYWN0ZXJTZWxlY3Rpb25H
cmFudWxhcml0eSgpIGNvbnN0IHsgcmV0dXJuIGJvb2xGZWF0dXJlVmFsdWUoInVzZUNoYXJhY3Rl
clNlbGVjdGlvbkdyYW51bGFyaXR5Iik7IH0KKyAgICBib29sIHVzZURhdGFEZXRlY3Rpb24oKSBj
b25zdCB7IHJldHVybiBib29sRmVhdHVyZVZhbHVlKCJ1c2VEYXRhRGV0ZWN0aW9uIik7IH0KKyAg
ICBib29sIHVzZUVwaGVtZXJhbFNlc3Npb24oKSBjb25zdCB7IHJldHVybiBib29sRmVhdHVyZVZh
bHVlKCJ1c2VFcGhlbWVyYWxTZXNzaW9uIik7IH0KKyAgICBib29sIHVzZUZsZXhpYmxlVmlld3Bv
cnQoKSBjb25zdCB7IHJldHVybiBib29sRmVhdHVyZVZhbHVlKCJ1c2VGbGV4aWJsZVZpZXdwb3J0
Iik7IH0KKyAgICBib29sIHVzZVJlbW90ZUxheWVyVHJlZSgpIGNvbnN0IHsgcmV0dXJuIGJvb2xG
ZWF0dXJlVmFsdWUoInVzZVJlbW90ZUxheWVyVHJlZSIpOyB9CiAgICAgYm9vbCB1c2VTZXJ2aWNl
V29ya2VyU2hvcnRUaW1lb3V0KCkgY29uc3QgeyByZXR1cm4gYm9vbEZlYXR1cmVWYWx1ZSgidXNl
U2VydmljZVdvcmtlclNob3J0VGltZW91dCIpOyB9CisgICAgYm9vbCB1c2VUaHJlYWRlZFNjcm9s
bGluZygpIGNvbnN0IHsgcmV0dXJuIGJvb2xGZWF0dXJlVmFsdWUoInVzZVRocmVhZGVkU2Nyb2xs
aW5nIik7IH0KICAgICBkb3VibGUgY29udGVudEluc2V0VG9wKCkgY29uc3QgeyByZXR1cm4gZG91
YmxlRmVhdHVyZVZhbHVlKCJjb250ZW50SW5zZXQudG9wIik7IH0KICAgICBkb3VibGUgZGV2aWNl
U2NhbGVGYWN0b3IoKSBjb25zdCB7IHJldHVybiBkb3VibGVGZWF0dXJlVmFsdWUoImRldmljZVNj
YWxlRmFjdG9yIik7IH0KLSAgICBkb3VibGUgdmlld1dpZHRoKCkgY29uc3QgeyByZXR1cm4gZG91
YmxlRmVhdHVyZVZhbHVlKCJ2aWV3V2lkdGgiKTsgfQogICAgIGRvdWJsZSB2aWV3SGVpZ2h0KCkg
Y29uc3QgeyByZXR1cm4gZG91YmxlRmVhdHVyZVZhbHVlKCJ2aWV3SGVpZ2h0Iik7IH0KKyAgICBk
b3VibGUgdmlld1dpZHRoKCkgY29uc3QgeyByZXR1cm4gZG91YmxlRmVhdHVyZVZhbHVlKCJ2aWV3
V2lkdGgiKTsgfQorICAgIHN0ZDo6c3RyaW5nIGFkZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVz
KCkgY29uc3QgeyByZXR1cm4gc3RyaW5nRmVhdHVyZVZhbHVlKCJhZGRpdGlvbmFsU3VwcG9ydGVk
SW1hZ2VUeXBlcyIpOyB9CisgICAgc3RkOjpzdHJpbmcgYXBwbGljYXRpb25CdW5kbGVJZGVudGlm
aWVyKCkgY29uc3QgeyByZXR1cm4gc3RyaW5nRmVhdHVyZVZhbHVlKCJhcHBsaWNhdGlvbkJ1bmRs
ZUlkZW50aWZpZXIiKTsgfQogICAgIHN0ZDo6c3RyaW5nIGFwcGxpY2F0aW9uTWFuaWZlc3QoKSBj
b25zdCB7IHJldHVybiBzdHJpbmdGZWF0dXJlVmFsdWUoImFwcGxpY2F0aW9uTWFuaWZlc3QiKTsg
fQorICAgIHN0ZDo6c3RyaW5nIGNvbnRlbnRNb2RlKCkgY29uc3QgeyByZXR1cm4gc3RyaW5nRmVh
dHVyZVZhbHVlKCJjb250ZW50TW9kZSIpOyB9CiAgICAgc3RkOjpzdHJpbmcganNjT3B0aW9ucygp
IGNvbnN0IHsgcmV0dXJuIHN0cmluZ0ZlYXR1cmVWYWx1ZSgianNjT3B0aW9ucyIpOyB9Ci0gICAg
c3RkOjpzdHJpbmcgYWRkaXRpb25hbFN1cHBvcnRlZEltYWdlVHlwZXMoKSBjb25zdCB7IHJldHVy
biBzdHJpbmdGZWF0dXJlVmFsdWUoImFkZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVzIik7IH0K
ICAgICBzdGQ6OnN0cmluZyBzdGFuZGFsb25lV2ViQXBwbGljYXRpb25VUkwoKSBjb25zdCB7IHJl
dHVybiBzdHJpbmdGZWF0dXJlVmFsdWUoInN0YW5kYWxvbmVXZWJBcHBsaWNhdGlvblVSTCIpOyB9
Ci0gICAgc3RkOjpzdHJpbmcgY29udGVudE1vZGUoKSBjb25zdCB7IHJldHVybiBzdHJpbmdGZWF0
dXJlVmFsdWUoImNvbnRlbnRNb2RlIik7IH0KLSAgICBzdGQ6OnN0cmluZyBhcHBsaWNhdGlvbkJ1
bmRsZUlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBzdHJpbmdGZWF0dXJlVmFsdWUoImFwcGxp
Y2F0aW9uQnVuZGxlSWRlbnRpZmllciIpOyB9CiAgICAgc3RkOjp2ZWN0b3I8c3RkOjpzdHJpbmc+
IG92ZXJyaWRlTGFuZ3VhZ2VzKCkgY29uc3QgeyByZXR1cm4gc3RyaW5nVmVjdG9yRmVhdHVyZVZh
bHVlKCJsYW5ndWFnZSIpOyB9CiAKICAgICBjb25zdCBzdGQ6OnVub3JkZXJlZF9tYXA8c3RkOjpz
dHJpbmcsIGJvb2w+JiBleHBlcmltZW50YWxGZWF0dXJlcygpIGNvbnN0IHsgcmV0dXJuIG1fZmVh
dHVyZXMuZXhwZXJpbWVudGFsRmVhdHVyZXM7IH0KICAgICBjb25zdCBzdGQ6OnVub3JkZXJlZF9t
YXA8c3RkOjpzdHJpbmcsIGJvb2w+JiBpbnRlcm5hbERlYnVnRmVhdHVyZXMoKSBjb25zdCB7IHJl
dHVybiBtX2ZlYXR1cmVzLmludGVybmFsRGVidWdGZWF0dXJlczsgfQogCisgICAgc3RkOjp2ZWN0
b3I8c3RkOjpwYWlyPHN0ZDo6c3RyaW5nLCBib29sPj4gYm9vbFdLUHJlZmVyZW5jZXMoKSBjb25z
dDsKKwogICAgIGJvb2wgaGFzU2FtZUluaXRpYWxpemF0aW9uT3B0aW9ucyhjb25zdCBUZXN0T3B0
aW9ucyYpIGNvbnN0OwogCiBwcml2YXRlOgpJbmRleDogVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9j
b2NvYS9UZXN0Q29udHJvbGxlckNvY29hLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1dlYktpdFRl
c3RSdW5uZXIvY29jb2EvVGVzdENvbnRyb2xsZXJDb2NvYS5tbQkocmV2aXNpb24gMjY4MzIzKQor
KysgVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0Q29udHJvbGxlckNvY29hLm1tCSh3
b3JraW5nIGNvcHkpCkBAIC0zMiw2ICszMiw3IEBACiAjaW1wb3J0ICJUZXN0SW52b2NhdGlvbi5o
IgogI2ltcG9ydCAiVGVzdFJ1bm5lcldLV2ViVmlldy5oIgogI2ltcG9ydCAiVGVzdFdlYnNpdGVE
YXRhU3RvcmVEZWxlZ2F0ZS5oIgorI2ltcG9ydCAiV2ViQ29yZVRlc3RTdXBwb3J0LmgiCiAjaW1w
b3J0IDxGb3VuZGF0aW9uL0ZvdW5kYXRpb24uaD4KICNpbXBvcnQgPFNlY3VyaXR5L1NlY0l0ZW0u
aD4KICNpbXBvcnQgPFdlYktpdC9XS0NvbnRleHRDb25maWd1cmF0aW9uUmVmLmg+CkBAIC02OSw3
ICs3MCw2IEBAIHZvaWQgaW5pdGlhbGl6ZVdlYlZpZXdDb25maWd1cmF0aW9uKGNvbnMKICAgICBn
bG9iYWxXZWJWaWV3Q29uZmlndXJhdGlvbi5wcm9jZXNzUG9vbCA9IChfX2JyaWRnZSBXS1Byb2Nl
c3NQb29sICopY29udGV4dDsKICAgICBnbG9iYWxXZWJWaWV3Q29uZmlndXJhdGlvbi53ZWJzaXRl
RGF0YVN0b3JlID0gKF9fYnJpZGdlIFdLV2Vic2l0ZURhdGFTdG9yZSAqKVRlc3RDb250cm9sbGVy
OjpkZWZhdWx0V2Vic2l0ZURhdGFTdG9yZSgpOwogICAgIGdsb2JhbFdlYlZpZXdDb25maWd1cmF0
aW9uLl9hbGxvd1VuaXZlcnNhbEFjY2Vzc0Zyb21GaWxlVVJMcyA9IFlFUzsKLSAgICBnbG9iYWxX
ZWJWaWV3Q29uZmlndXJhdGlvbi5fYWxsb3dUb3BOYXZpZ2F0aW9uVG9EYXRhVVJMcyA9IFlFUzsK
ICAgICBnbG9iYWxXZWJWaWV3Q29uZmlndXJhdGlvbi5fYXBwbGVQYXlFbmFibGVkID0gWUVTOwog
CiAgICAgW2dsb2JhbFdlYnNpdGVEYXRhU3RvcmVEZWxlZ2F0ZUNsaWVudCByZWxlYXNlXTsKQEAg
LTE1OCwyMCArMTU4LDEzIEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtQ3JlYXRlV2Vi
VmkKICAgICAgICAgW2NvcGllZENvbmZpZ3VyYXRpb24gc2V0U2VsZWN0aW9uR3JhbnVsYXJpdHk6
V0tTZWxlY3Rpb25HcmFudWxhcml0eUNoYXJhY3Rlcl07CiAgICAgaWYgKG9wdGlvbnMuaXNBcHBC
b3VuZFdlYlZpZXcoKSkKICAgICAgICAgW2NvcGllZENvbmZpZ3VyYXRpb24gc2V0TGltaXRzTmF2
aWdhdGlvbnNUb0FwcEJvdW5kRG9tYWluczpZRVNdOwotI2Vsc2UKLSAgICBbY29waWVkQ29uZmln
dXJhdGlvbiBfc2V0U2VydmljZUNvbnRyb2xzRW5hYmxlZDpvcHRpb25zLmVuYWJsZVNlcnZpY2VD
b250cm9scygpXTsKICNlbmRpZgogCiAgICAgaWYgKG9wdGlvbnMuZW5hYmxlQXR0YWNobWVudEVs
ZW1lbnQoKSkKICAgICAgICAgW2NvcGllZENvbmZpZ3VyYXRpb24gX3NldEF0dGFjaG1lbnRFbGVt
ZW50RW5hYmxlZDpZRVNdOwogCi0gICAgaWYgKG9wdGlvbnMuZW5hYmxlQ29sb3JGaWx0ZXIoKSkK
LSAgICAgICAgW2NvcGllZENvbmZpZ3VyYXRpb24gX3NldENvbG9yRmlsdGVyRW5hYmxlZDpZRVNd
OwotCiAgICAgW2NvcGllZENvbmZpZ3VyYXRpb24gc2V0V2Vic2l0ZURhdGFTdG9yZTooV0tXZWJz
aXRlRGF0YVN0b3JlICopd2Vic2l0ZURhdGFTdG9yZSgpXTsKIAotICAgIFtjb3BpZWRDb25maWd1
cmF0aW9uIF9zZXRBbGxvd1RvcE5hdmlnYXRpb25Ub0RhdGFVUkxzOm9wdGlvbnMuYWxsb3dUb3BO
YXZpZ2F0aW9uVG9EYXRhVVJMcygpXTsKLQogICAgIGNvbmZpZ3VyZUNvbnRlbnRNb2RlKGNvcGll
ZENvbmZpZ3VyYXRpb24uZ2V0KCksIG9wdGlvbnMpOwogCiAgICAgYXV0byBhcHBsaWNhdGlvbk1h
bmlmZXN0ID0gb3B0aW9ucy5hcHBsaWNhdGlvbk1hbmlmZXN0KCk7CkBAIC0yOTgsNiArMjkxLDgg
QEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6Y29jb2FSZXNldFN0YXRlVG9DbwogICAgIH0KIAogICAg
IFtnbG9iYWxXZWJzaXRlRGF0YVN0b3JlRGVsZWdhdGVDbGllbnQgc2V0QWxsb3dSYWlzaW5nUXVv
dGE6WUVTXTsKKworICAgIFdlYkNvcmVUZXN0U3VwcG9ydDo6c2V0QWRkaXRpb25hbFN1cHBvcnRl
ZEltYWdlVHlwZXNGb3JUZXN0aW5nKG9wdGlvbnMuYWRkaXRpb25hbFN1cHBvcnRlZEltYWdlVHlw
ZXMoKS5jX3N0cigpKTsKIH0KIAogdm9pZCBUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1XaWxsUnVu
VGVzdChjb25zdCBUZXN0SW52b2NhdGlvbiYgdGVzdEludm9jYXRpb24pCkluZGV4OiBUb29scy9X
ZWJLaXRUZXN0UnVubmVyL2d0ay9UZXN0Q29udHJvbGxlckd0ay5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9ndGsvVGVzdENvbnRyb2xsZXJHdGsuY3BwCShyZXZpc2lv
biAyNjgzMjMpCisrKyBUb29scy9XZWJLaXRUZXN0UnVubmVyL2d0ay9UZXN0Q29udHJvbGxlckd0
ay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE1MCw2ICsxNTAsMTIgQEAgdm9pZCBUZXN0Q29udHJv
bGxlcjo6cGxhdGZvcm1SZXNldFByZWZlcgogICAgIG1fbWFpbldlYlZpZXctPmRpc21pc3NBbGxQ
b3B1cE1lbnVzKCk7CiB9CiAKK2Jvb2wgVGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtUmVzZXRTdGF0
ZVRvQ29uc2lzdGVudFZhbHVlcyhjb25zdCBUZXN0T3B0aW9ucyYpCit7CisgICAgV0tUZXh0Q2hl
Y2tlckNvbnRpbnVvdXNTcGVsbENoZWNraW5nRW5hYmxlZFN0YXRlQ2hhbmdlZCh0cnVlKTsKKyAg
ICByZXR1cm4gdHJ1ZTsKK30KKwogVGVzdEZlYXR1cmVzIFRlc3RDb250cm9sbGVyOjpwbGF0Zm9y
bVNwZWNpZmljRmVhdHVyZURlZmF1bHRzRm9yVGVzdChjb25zdCBUZXN0Q29tbWFuZCYpIGNvbnN0
CiB7CiAgICAgVGVzdEZlYXR1cmVzIGZlYXR1cmVzOwpJbmRleDogVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9pb3MvVGVzdENvbnRyb2xsZXJJT1MubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9pb3MvVGVzdENvbnRyb2xsZXJJT1MubW0JKHJldmlzaW9uIDI2ODMyMykKKysr
IFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvaW9zL1Rlc3RDb250cm9sbGVySU9TLm1tCSh3b3JraW5n
IGNvcHkpCkBAIC0xNDgsNyArMTQ4LDYgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1S
ZXNldFByZWZlcgogICAgIFdLUHJlZmVyZW5jZXNTZXRUZXh0QXV0b3NpemluZ0VuYWJsZWQocHJl
ZmVyZW5jZXMsIGZhbHNlKTsKICAgICBXS1ByZWZlcmVuY2VzU2V0VGV4dEF1dG9zaXppbmdVc2Vz
SWRlbXBvdGVudE1vZGUocHJlZmVyZW5jZXMsIGZhbHNlKTsKICAgICBXS1ByZWZlcmVuY2VzU2V0
Q29udGVudENoYW5nZU9ic2VydmVyRW5hYmxlZChwcmVmZXJlbmNlcywgZmFsc2UpOwotICAgIFso
X19icmlkZ2UgV0tQcmVmZXJlbmNlcyAqKXByZWZlcmVuY2VzIF9zZXRTaG91bGRJZ25vcmVNZXRh
Vmlld3BvcnQ6Tk9dOwogfQogCiBib29sIFRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybVJlc2V0U3Rh
dGVUb0NvbnNpc3RlbnRWYWx1ZXMoY29uc3QgVGVzdE9wdGlvbnMmIG9wdGlvbnMpCkBAIC0yNjks
OSArMjY4LDYgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1Db25maWd1cmVWaQogCiAg
ICAgVGVzdFJ1bm5lcldLV2ViVmlldyAqd2ViVmlldyA9IG1haW5XZWJWaWV3KCktPnBsYXRmb3Jt
VmlldygpOwogCi0gICAgaWYgKHRlc3Qub3B0aW9ucygpLnNob3VsZElnbm9yZU1ldGFWaWV3cG9y
dCgpKQotICAgICAgICB3ZWJWaWV3LmNvbmZpZ3VyYXRpb24ucHJlZmVyZW5jZXMuX3Nob3VsZEln
bm9yZU1ldGFWaWV3cG9ydCA9IFlFUzsKLQogICAgIGlmICghdGVzdC5vcHRpb25zKCkudXNlRmxl
eGlibGVWaWV3cG9ydCgpKQogICAgICAgICByZXR1cm47CiAKSW5kZXg6IFRvb2xzL1dlYktpdFRl
c3RSdW5uZXIvd2luL1Rlc3RDb250cm9sbGVyV2luLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9X
ZWJLaXRUZXN0UnVubmVyL3dpbi9UZXN0Q29udHJvbGxlcldpbi5jcHAJKHJldmlzaW9uIDI2ODMy
MykKKysrIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvd2luL1Rlc3RDb250cm9sbGVyV2luLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMjI3LDYgKzIyNywxMSBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpw
bGF0Zm9ybVJlc2V0UHJlZmVyCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAorYm9vbCBUZXN0
Q29udHJvbGxlcjo6cGxhdGZvcm1SZXNldFN0YXRlVG9Db25zaXN0ZW50VmFsdWVzKGNvbnN0IFRl
c3RPcHRpb25zJikKK3sKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogVGVzdEZlYXR1cmVzIFRlc3RD
b250cm9sbGVyOjpwbGF0Zm9ybVNwZWNpZmljRmVhdHVyZURlZmF1bHRzRm9yVGVzdChjb25zdCBU
ZXN0Q29tbWFuZCYpIGNvbnN0CiB7CiAgICAgcmV0dXJuIHsgfTsKSW5kZXg6IFRvb2xzL1dlYktp
dFRlc3RSdW5uZXIvd3BlL1Rlc3RDb250cm9sbGVyV1BFLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29s
cy9XZWJLaXRUZXN0UnVubmVyL3dwZS9UZXN0Q29udHJvbGxlcldQRS5jcHAJKHJldmlzaW9uIDI2
ODMyMykKKysrIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvd3BlL1Rlc3RDb250cm9sbGVyV1BFLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMTM2LDYgKzEzNiwxMSBAQCB2b2lkIFRlc3RDb250cm9sbGVy
OjpwbGF0Zm9ybVJlc2V0UHJlZmVyCiB7CiB9CiAKK2Jvb2wgVGVzdENvbnRyb2xsZXI6OnBsYXRm
b3JtUmVzZXRTdGF0ZVRvQ29uc2lzdGVudFZhbHVlcyhjb25zdCBUZXN0T3B0aW9ucyYpCit7Cisg
ICAgcmV0dXJuIHRydWU7Cit9CisKIFRlc3RGZWF0dXJlcyBUZXN0Q29udHJvbGxlcjo6cGxhdGZv
cm1TcGVjaWZpY0ZlYXR1cmVEZWZhdWx0c0ZvclRlc3QoY29uc3QgVGVzdENvbW1hbmQmKSBjb25z
dAogewogICAgIFRlc3RGZWF0dXJlcyBmZWF0dXJlczsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411061</attachid>
            <date>2020-10-11 13:15:16 -0700</date>
            <delta_ts>2020-10-11 15:27:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217582-20201011131515.patch</filename>
            <type>text/plain</type>
            <size>72976</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNjgzMjMpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM1IEBACisyMDIwLTEwLTExICBTYW0gV2Vpbmln
ICA8d2VpbmlnQGFwcGxlLmNvbT4KKworICAgICAgICBbUHJlZmVyZW5jZXNdIEludHJvZHVjZSBz
dHJpbmcgYmFzZWQgU1BJIGZvciBXS1ByZWZlcmVuY2VzIHRvIGFsbG93IHRlc3RzIHRvIGNoYW5n
ZSBpbnRlcm5hbCBiZWhhdmlvciB3aXRob3V0IGFsd2F5cyBhZGRpbmcgYWRkaXRpb25hbCBTUEkK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzU4Mgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtXSVBdCisK
KyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERl
cml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2Vz
Lm1ha2U6CisgICAgICAgICogU2NyaXB0cy9QcmVmZXJlbmNlc1RlbXBsYXRlcy9XZWJQcmVmZXJl
bmNlc0V4cGVyaW1lbnRhbEZlYXR1cmVzLmNwcC5lcmI6CisgICAgICAgICogU2NyaXB0cy9QcmVm
ZXJlbmNlc1RlbXBsYXRlcy9XZWJQcmVmZXJlbmNlc0dldHRlclNldHRlcnMuY3BwLmVyYjogQWRk
ZWQuCisgICAgICAgICogU2NyaXB0cy9QcmVmZXJlbmNlc1RlbXBsYXRlcy9XZWJQcmVmZXJlbmNl
c0ludGVybmFsRGVidWdGZWF0dXJlcy5jcHAuZXJiOgorICAgICAgICAqIFNoYXJlZC9BUEkvYy9X
S1N0cmluZy5jcHA6CisgICAgICAgIChXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4U3RyaW5nV2l0aExl
bmd0aCk6CisgICAgICAgICogU2hhcmVkL0FQSS9jL1dLU3RyaW5nLmg6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwOgorICAgICAgICAoV0tQcmVmZXJlbmNlc1Nl
dEJvb2xWYWx1ZUZvcktleSk6CisgICAgICAgIChXS1ByZWZlcmVuY2VzU2V0RG91YmxlVmFsdWVG
b3JLZXkpOgorICAgICAgICAoV0tQcmVmZXJlbmNlc1NldFVJbnQzMlZhbHVlRm9yS2V5KToKKyAg
ICAgICAgKFdLUHJlZmVyZW5jZXNTZXRTdHJpbmdWYWx1ZUZvcktleSk6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXNSZWZQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9j
ZXNzL1dlYlByZWZlcmVuY2VzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJlZmVyZW5jZXM6
OnNldEJvb2xWYWx1ZUZvcktleSk6CisgICAgICAgIChXZWJLaXQ6OldlYlByZWZlcmVuY2VzOjpz
ZXREb3VibGVWYWx1ZUZvcktleSk6CisgICAgICAgIChXZWJLaXQ6OldlYlByZWZlcmVuY2VzOjpz
ZXRVSW50MzJWYWx1ZUZvcktleSk6CisgICAgICAgIChXZWJLaXQ6OldlYlByZWZlcmVuY2VzOjpz
ZXRTdHJpbmdWYWx1ZUZvcktleSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByZWZlcmVuY2Vz
Lmg6CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisKIDIwMjAt
MTAtMTAgIFNhbSBXZWluaWcgIDx3ZWluaWdAYXBwbGUuY29tPgogCiAgICAgICAgIFVzZSBXZWJQ
cmVmZXJlbmNlIGRlZmluaXRpb25zIGZyb20gc2hhcmVkIGNvbmZpZ3VyYXRpb24gZmlsZXMgaW4g
V2ViQ29yZSAoUGFydCAxKQpJbmRleDogU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0CShyZXZpc2lvbiAyNjgzMjMp
CisrKyBTb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0CSh3b3JraW5nIGNvcHkpCkBAIC01MDAs
NiArNTAwLDcgQEAgc2V0KFdlYktpdF9XRUJfUFJFRkVSRU5DRVNfVEVNUExBVEVTCiAgICAgJHtX
RUJLSVRfRElSfS9TY3JpcHRzL1ByZWZlcmVuY2VzVGVtcGxhdGVzL1dlYlBhZ2VVcGRhdGVQcmVm
ZXJlbmNlcy5jcHAuZXJiCiAgICAgJHtXRUJLSVRfRElSfS9TY3JpcHRzL1ByZWZlcmVuY2VzVGVt
cGxhdGVzL1dlYlByZWZlcmVuY2VzRGVmaW5pdGlvbnMuaC5lcmIKICAgICAke1dFQktJVF9ESVJ9
L1NjcmlwdHMvUHJlZmVyZW5jZXNUZW1wbGF0ZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWxG
ZWF0dXJlcy5jcHAuZXJiCisgICAgJHtXRUJLSVRfRElSfS9TY3JpcHRzL1ByZWZlcmVuY2VzVGVt
cGxhdGVzL1dlYlByZWZlcmVuY2VzR2V0dGVyU2V0dGVycy5jcHAuZXJiCiAgICAgJHtXRUJLSVRf
RElSfS9TY3JpcHRzL1ByZWZlcmVuY2VzVGVtcGxhdGVzL1dlYlByZWZlcmVuY2VzSW50ZXJuYWxE
ZWJ1Z0ZlYXR1cmVzLmNwcC5lcmIKICAgICAke1dFQktJVF9ESVJ9L1NjcmlwdHMvUHJlZmVyZW5j
ZXNUZW1wbGF0ZXMvV2ViUHJlZmVyZW5jZXNLZXlzLmNwcC5lcmIKICAgICAke1dFQktJVF9ESVJ9
L1NjcmlwdHMvUHJlZmVyZW5jZXNUZW1wbGF0ZXMvV2ViUHJlZmVyZW5jZXNLZXlzLmguZXJiCkBA
IC01MTYsOSArNTE3LDkgQEAgc2V0KFdlYktpdF9XRUJfUFJFRkVSRU5DRVMKIHNldF9zb3VyY2Vf
ZmlsZXNfcHJvcGVydGllcygke1dlYktpdF9XRUJfUFJFRkVSRU5DRVN9IFBST1BFUlRJRVMgR0VO
RVJBVEVEIFRSVUUpCiAKIGFkZF9jdXN0b21fY29tbWFuZCgKLSAgICBPVVRQVVQgJHtXZWJLaXRf
REVSSVZFRF9TT1VSQ0VTX0RJUn0vV2ViUGFnZVVwZGF0ZVByZWZlcmVuY2VzLmNwcCAke1dlYktp
dF9ERVJJVkVEX1NPVVJDRVNfRElSfS9XZWJQcmVmZXJlbmNlc0RlZmluaXRpb25zLmggJHtXZWJL
aXRfREVSSVZFRF9TT1VSQ0VTX0RJUn0vV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWxGZWF0dXJl
cy5jcHAgJHtXZWJLaXRfREVSSVZFRF9TT1VSQ0VTX0RJUn0vV2ViUHJlZmVyZW5jZXNJbnRlcm5h
bERlYnVnRmVhdHVyZXMuY3BwICR7V2ViS2l0X0RFUklWRURfU09VUkNFU19ESVJ9L1dlYlByZWZl
cmVuY2VzS2V5cy5jcHAgJHtXZWJLaXRfREVSSVZFRF9TT1VSQ0VTX0RJUn0vV2ViUHJlZmVyZW5j
ZXNLZXlzLmggJHtXZWJLaXRfREVSSVZFRF9TT1VSQ0VTX0RJUn0vV2ViUHJlZmVyZW5jZXNTdG9y
ZURlZmF1bHRzTWFwLmNwcAorICAgIE9VVFBVVCAke1dlYktpdF9ERVJJVkVEX1NPVVJDRVNfRElS
fS9XZWJQYWdlVXBkYXRlUHJlZmVyZW5jZXMuY3BwICR7V2ViS2l0X0RFUklWRURfU09VUkNFU19E
SVJ9L1dlYlByZWZlcmVuY2VzRGVmaW5pdGlvbnMuaCAke1dlYktpdF9ERVJJVkVEX1NPVVJDRVNf
RElSfS9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbEZlYXR1cmVzLmNwcCAke1dlYktpdF9ERVJJ
VkVEX1NPVVJDRVNfRElSfS9XZWJQcmVmZXJlbmNlc0dldHRlclNldHRlcnMuY3BwICR7V2ViS2l0
X0RFUklWRURfU09VUkNFU19ESVJ9L1dlYlByZWZlcmVuY2VzSW50ZXJuYWxEZWJ1Z0ZlYXR1cmVz
LmNwcCAke1dlYktpdF9ERVJJVkVEX1NPVVJDRVNfRElSfS9XZWJQcmVmZXJlbmNlc0tleXMuY3Bw
ICR7V2ViS2l0X0RFUklWRURfU09VUkNFU19ESVJ9L1dlYlByZWZlcmVuY2VzS2V5cy5oICR7V2Vi
S2l0X0RFUklWRURfU09VUkNFU19ESVJ9L1dlYlByZWZlcmVuY2VzU3RvcmVEZWZhdWx0c01hcC5j
cHAKICAgICBERVBFTkRTICR7V2ViS2l0X1dFQl9QUkVGRVJFTkNFU19URU1QTEFURVN9ICR7V2Vi
S2l0X1dFQl9QUkVGRVJFTkNFU30gV1RGX0NvcHlQcmVmZXJlbmNlcwotICAgIENPTU1BTkQgJHtS
VUJZX0VYRUNVVEFCTEV9ICR7V1RGX1NDUklQVFNfRElSfS9HZW5lcmF0ZVByZWZlcmVuY2VzLnJi
IC0tZnJvbnRlbmQgV2ViS2l0IC0tYmFzZSAke1dURl9TQ1JJUFRTX0RJUn0vUHJlZmVyZW5jZXMv
V2ViUHJlZmVyZW5jZXMueWFtbCAtLWRlYnVnICR7V1RGX1NDUklQVFNfRElSfS9QcmVmZXJlbmNl
cy9XZWJQcmVmZXJlbmNlc0RlYnVnLnlhbWwgLS1leHBlcmltZW50YWwgJHtXVEZfU0NSSVBUU19E
SVJ9L1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwgLS1pbnRlcm5h
bCAke1dURl9TQ1JJUFRTX0RJUn0vUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNJbnRlcm5hbC55
YW1sIC0tb3V0cHV0RGlyICIke1dlYktpdF9ERVJJVkVEX1NPVVJDRVNfRElSfSIgLS10ZW1wbGF0
ZSAke1dFQktJVF9ESVJ9L1NjcmlwdHMvUHJlZmVyZW5jZXNUZW1wbGF0ZXMvV2ViUGFnZVVwZGF0
ZVByZWZlcmVuY2VzLmNwcC5lcmIgLS10ZW1wbGF0ZSAke1dFQktJVF9ESVJ9L1NjcmlwdHMvUHJl
ZmVyZW5jZXNUZW1wbGF0ZXMvV2ViUHJlZmVyZW5jZXNEZWZpbml0aW9ucy5oLmVyYiAtLXRlbXBs
YXRlICR7V0VCS0lUX0RJUn0vU2NyaXB0cy9QcmVmZXJlbmNlc1RlbXBsYXRlcy9XZWJQcmVmZXJl
bmNlc0V4cGVyaW1lbnRhbEZlYXR1cmVzLmNwcC5lcmIgLS10ZW1wbGF0ZSAke1dFQktJVF9ESVJ9
L1NjcmlwdHMvUHJlZmVyZW5jZXNUZW1wbGF0ZXMvV2ViUHJlZmVyZW5jZXNJbnRlcm5hbERlYnVn
RmVhdHVyZXMuY3BwLmVyYiAtLXRlbXBsYXRlICR7V0VCS0lUX0RJUn0vU2NyaXB0cy9QcmVmZXJl
bmNlc1RlbXBsYXRlcy9XZWJQcmVmZXJlbmNlc0tleXMuY3BwLmVyYiAtLXRlbXBsYXRlICR7V0VC
S0lUX0RJUn0vU2NyaXB0cy9QcmVmZXJlbmNlc1RlbXBsYXRlcy9XZWJQcmVmZXJlbmNlc0tleXMu
aC5lcmIgLS10ZW1wbGF0ZSAke1dFQktJVF9ESVJ9L1NjcmlwdHMvUHJlZmVyZW5jZXNUZW1wbGF0
ZXMvV2ViUHJlZmVyZW5jZXNTdG9yZURlZmF1bHRzTWFwLmNwcC5lcmIKKyAgICBDT01NQU5EICR7
UlVCWV9FWEVDVVRBQkxFfSAke1dURl9TQ1JJUFRTX0RJUn0vR2VuZXJhdGVQcmVmZXJlbmNlcy5y
YiAtLWZyb250ZW5kIFdlYktpdCAtLWJhc2UgJHtXVEZfU0NSSVBUU19ESVJ9L1ByZWZlcmVuY2Vz
L1dlYlByZWZlcmVuY2VzLnlhbWwgLS1kZWJ1ZyAke1dURl9TQ1JJUFRTX0RJUn0vUHJlZmVyZW5j
ZXMvV2ViUHJlZmVyZW5jZXNEZWJ1Zy55YW1sIC0tZXhwZXJpbWVudGFsICR7V1RGX1NDUklQVFNf
RElSfS9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1sIC0taW50ZXJu
YWwgJHtXVEZfU0NSSVBUU19ESVJ9L1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzSW50ZXJuYWwu
eWFtbCAtLW91dHB1dERpciAiJHtXZWJLaXRfREVSSVZFRF9TT1VSQ0VTX0RJUn0iIC0tdGVtcGxh
dGUgJHtXRUJLSVRfRElSfS9TY3JpcHRzL1ByZWZlcmVuY2VzVGVtcGxhdGVzL1dlYlBhZ2VVcGRh
dGVQcmVmZXJlbmNlcy5jcHAuZXJiIC0tdGVtcGxhdGUgJHtXRUJLSVRfRElSfS9TY3JpcHRzL1By
ZWZlcmVuY2VzVGVtcGxhdGVzL1dlYlByZWZlcmVuY2VzRGVmaW5pdGlvbnMuaC5lcmIgLS10ZW1w
bGF0ZSAke1dFQktJVF9ESVJ9L1NjcmlwdHMvUHJlZmVyZW5jZXNUZW1wbGF0ZXMvV2ViUHJlZmVy
ZW5jZXNFeHBlcmltZW50YWxGZWF0dXJlcy5jcHAuZXJiIC0tdGVtcGxhdGUgJHtXRUJLSVRfRElS
fS9TY3JpcHRzL1ByZWZlcmVuY2VzVGVtcGxhdGVzL1dlYlByZWZlcmVuY2VzR2V0dGVyU2V0dGVy
cy5jcHAuZXJiIC0tdGVtcGxhdGUgJHtXRUJLSVRfRElSfS9TY3JpcHRzL1ByZWZlcmVuY2VzVGVt
cGxhdGVzL1dlYlByZWZlcmVuY2VzSW50ZXJuYWxEZWJ1Z0ZlYXR1cmVzLmNwcC5lcmIgLS10ZW1w
bGF0ZSAke1dFQktJVF9ESVJ9L1NjcmlwdHMvUHJlZmVyZW5jZXNUZW1wbGF0ZXMvV2ViUHJlZmVy
ZW5jZXNLZXlzLmNwcC5lcmIgLS10ZW1wbGF0ZSAke1dFQktJVF9ESVJ9L1NjcmlwdHMvUHJlZmVy
ZW5jZXNUZW1wbGF0ZXMvV2ViUHJlZmVyZW5jZXNLZXlzLmguZXJiIC0tdGVtcGxhdGUgJHtXRUJL
SVRfRElSfS9TY3JpcHRzL1ByZWZlcmVuY2VzVGVtcGxhdGVzL1dlYlByZWZlcmVuY2VzU3RvcmVE
ZWZhdWx0c01hcC5jcHAuZXJiCiAgICAgVkVSQkFUSU0pCiAKIGxpc3QoQVBQRU5EIFdlYktpdF9I
RUFERVJTCkBAIC01MjksNiArNTMwLDcgQEAgbGlzdChBUFBFTkQgV2ViS2l0X0hFQURFUlMKIGxp
c3QoQVBQRU5EIFdlYktpdF9TT1VSQ0VTCiAgICAgJHtXZWJLaXRfREVSSVZFRF9TT1VSQ0VTX0RJ
Un0vV2ViUGFnZVVwZGF0ZVByZWZlcmVuY2VzLmNwcAogICAgICR7V2ViS2l0X0RFUklWRURfU09V
UkNFU19ESVJ9L1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsRmVhdHVyZXMuY3BwCisgICAgJHtX
ZWJLaXRfREVSSVZFRF9TT1VSQ0VTX0RJUn0vV2ViUHJlZmVyZW5jZXNHZXR0ZXJTZXR0ZXJzLmNw
cAogICAgICR7V2ViS2l0X0RFUklWRURfU09VUkNFU19ESVJ9L1dlYlByZWZlcmVuY2VzSW50ZXJu
YWxEZWJ1Z0ZlYXR1cmVzLmNwcAogICAgICR7V2ViS2l0X0RFUklWRURfU09VUkNFU19ESVJ9L1dl
YlByZWZlcmVuY2VzS2V5cy5jcHAKICAgICAke1dlYktpdF9ERVJJVkVEX1NPVVJDRVNfRElSfS9X
ZWJQcmVmZXJlbmNlc1N0b3JlRGVmYXVsdHNNYXAuY3BwCkluZGV4OiBTb3VyY2UvV2ViS2l0L0Rl
cml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CShyZXZpc2lvbiAyNjgzMjMpCisrKyBT
b3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QJKHdvcmtpbmcgY29w
eSkKQEAgLTY4LDYgKzY4LDcgQEAgJChQUk9KRUNUX0RJUikvUGx1Z2luUHJvY2Vzcy9tYWMvY29t
LmFwcAogJChQUk9KRUNUX0RJUikvU2NyaXB0cy9QcmVmZXJlbmNlc1RlbXBsYXRlcy9XZWJQYWdl
VXBkYXRlUHJlZmVyZW5jZXMuY3BwLmVyYgogJChQUk9KRUNUX0RJUikvU2NyaXB0cy9QcmVmZXJl
bmNlc1RlbXBsYXRlcy9XZWJQcmVmZXJlbmNlc0RlZmluaXRpb25zLmguZXJiCiAkKFBST0pFQ1Rf
RElSKS9TY3JpcHRzL1ByZWZlcmVuY2VzVGVtcGxhdGVzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVu
dGFsRmVhdHVyZXMuY3BwLmVyYgorJChQUk9KRUNUX0RJUikvU2NyaXB0cy9QcmVmZXJlbmNlc1Rl
bXBsYXRlcy9XZWJQcmVmZXJlbmNlc0dldHRlclNldHRlcnMuY3BwLmVyYgogJChQUk9KRUNUX0RJ
UikvU2NyaXB0cy9QcmVmZXJlbmNlc1RlbXBsYXRlcy9XZWJQcmVmZXJlbmNlc0ludGVybmFsRGVi
dWdGZWF0dXJlcy5jcHAuZXJiCiAkKFBST0pFQ1RfRElSKS9TY3JpcHRzL1ByZWZlcmVuY2VzVGVt
cGxhdGVzL1dlYlByZWZlcmVuY2VzS2V5cy5jcHAuZXJiCiAkKFBST0pFQ1RfRElSKS9TY3JpcHRz
L1ByZWZlcmVuY2VzVGVtcGxhdGVzL1dlYlByZWZlcmVuY2VzS2V5cy5oLmVyYgpJbmRleDogU291
cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CShyZXZpc2lv
biAyNjgzMjMpCisrKyBTb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVs
aXN0CSh3b3JraW5nIGNvcHkpCkBAIC0zNjksNiArMzY5LDcgQEAgJChCVUlMVF9QUk9EVUNUU19E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYgogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYktpdDIvV2ViUHJlZmVyZW5jZXNDb21iaW5lZC55YW1sCiAkKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJQcmVmZXJlbmNlc0RlZmluaXRpb25zLmgK
ICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYlByZWZlcmVu
Y2VzRXhwZXJpbWVudGFsRmVhdHVyZXMuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZl
ZFNvdXJjZXMvV2ViS2l0Mi9XZWJQcmVmZXJlbmNlc0dldHRlclNldHRlcnMuY3BwCiAkKEJVSUxU
X1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJQcmVmZXJlbmNlc0ludGVy
bmFsRGVidWdGZWF0dXJlcy5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJLaXQyL1dlYlByZWZlcmVuY2VzS2V5cy5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYlByZWZlcmVuY2VzS2V5cy5oCkluZGV4OiBTb3VyY2Uv
V2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9E
ZXJpdmVkU291cmNlcy5tYWtlCShyZXZpc2lvbiAyNjgzMjMpCisrKyBTb3VyY2UvV2ViS2l0L0Rl
cml2ZWRTb3VyY2VzLm1ha2UJKHdvcmtpbmcgY29weSkKQEAgLTM1Myw5ICszNTMsMTAgQEAgV0VC
X1BSRUZFUkVOQ0VTX1RFTVBMQVRFUyA9IFwKICAgICAkKFdlYktpdDIpL1NjcmlwdHMvUHJlZmVy
ZW5jZXNUZW1wbGF0ZXMvV2ViUGFnZVVwZGF0ZVByZWZlcmVuY2VzLmNwcC5lcmIgXAogICAgICQo
V2ViS2l0MikvU2NyaXB0cy9QcmVmZXJlbmNlc1RlbXBsYXRlcy9XZWJQcmVmZXJlbmNlc0RlZmlu
aXRpb25zLmguZXJiIFwKICAgICAkKFdlYktpdDIpL1NjcmlwdHMvUHJlZmVyZW5jZXNUZW1wbGF0
ZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWxGZWF0dXJlcy5jcHAuZXJiIFwKKyAgICAkKFdl
YktpdDIpL1NjcmlwdHMvUHJlZmVyZW5jZXNUZW1wbGF0ZXMvV2ViUHJlZmVyZW5jZXNHZXR0ZXJT
ZXR0ZXJzLmNwcC5lcmIgXAogICAgICQoV2ViS2l0MikvU2NyaXB0cy9QcmVmZXJlbmNlc1RlbXBs
YXRlcy9XZWJQcmVmZXJlbmNlc0ludGVybmFsRGVidWdGZWF0dXJlcy5jcHAuZXJiIFwKLSAgICAk
KFdlYktpdDIpL1NjcmlwdHMvUHJlZmVyZW5jZXNUZW1wbGF0ZXMvV2ViUHJlZmVyZW5jZXNLZXlz
LmguZXJiIFwKICAgICAkKFdlYktpdDIpL1NjcmlwdHMvUHJlZmVyZW5jZXNUZW1wbGF0ZXMvV2Vi
UHJlZmVyZW5jZXNLZXlzLmNwcC5lcmIgXAorICAgICQoV2ViS2l0MikvU2NyaXB0cy9QcmVmZXJl
bmNlc1RlbXBsYXRlcy9XZWJQcmVmZXJlbmNlc0tleXMuaC5lcmIgXAogICAgICQoV2ViS2l0Mikv
U2NyaXB0cy9QcmVmZXJlbmNlc1RlbXBsYXRlcy9XZWJQcmVmZXJlbmNlc1N0b3JlRGVmYXVsdHNN
YXAuY3BwLmVyYiBcCiAjCiBXRUJfUFJFRkVSRU5DRVNfRklMRVMgPSAkKGJhc2VuYW1lICQobm90
ZGlyICQoV0VCX1BSRUZFUkVOQ0VTX1RFTVBMQVRFUykpKQpJbmRleDogU291cmNlL1dlYktpdC9T
Y3JpcHRzL1ByZWZlcmVuY2VzVGVtcGxhdGVzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsRmVh
dHVyZXMuY3BwLmVyYgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1NjcmlwdHMvUHJlZmVy
ZW5jZXNUZW1wbGF0ZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWxGZWF0dXJlcy5jcHAuZXJi
CShyZXZpc2lvbiAyNjgzMjMpCisrKyBTb3VyY2UvV2ViS2l0L1NjcmlwdHMvUHJlZmVyZW5jZXNU
ZW1wbGF0ZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWxGZWF0dXJlcy5jcHAuZXJiCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zMywyMCArMzMsNiBAQAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotPCUt
IGZvciBAcHJlZiBpbiBAZXhwZXJpbWVudGFsRmVhdHVyZXMgZG8gLSU+Ci12b2lkIFdlYlByZWZl
cmVuY2VzOjpzZXQ8JT0gQHByZWYubmFtZSAlPihjb25zdCBib29sJiB2YWx1ZSkKLXsKLSAgICBp
ZiAoIW1fc3RvcmUuc2V0Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5Ojo8JT0gQHBy
ZWYubmFtZUxvd2VyICU+S2V5KCksIHZhbHVlKSkKLSAgICAgICAgcmV0dXJuOwotICAgIHVwZGF0
ZUJvb2xWYWx1ZUZvckV4cGVyaW1lbnRhbEZlYXR1cmVLZXkoV2ViUHJlZmVyZW5jZXNLZXk6Ojwl
PSBAcHJlZi5uYW1lTG93ZXIgJT5LZXkoKSwgdmFsdWUpOwotfQotCi1ib29sIFdlYlByZWZlcmVu
Y2VzOjo8JT0gQHByZWYubmFtZUxvd2VyICU+KCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9zdG9y
ZS5nZXRCb29sVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OjwlPSBAcHJlZi5uYW1lTG93
ZXIgJT5LZXkoKSk7Ci19Ci0KLTwlLSBlbmQgLSU+CiBjb25zdCBWZWN0b3I8UmVmUHRyPEFQSTo6
T2JqZWN0Pj4mIFdlYlByZWZlcmVuY2VzOjpleHBlcmltZW50YWxGZWF0dXJlcygpCiB7CiAgICAg
c3RhdGljIE5ldmVyRGVzdHJveWVkPFZlY3RvcjxSZWZQdHI8QVBJOjpPYmplY3Q+Pj4gZmVhdHVy
ZXMoc3RkOjppbml0aWFsaXplcl9saXN0PFJlZlB0cjxBUEk6Ok9iamVjdD4+IHsKSW5kZXg6IFNv
dXJjZS9XZWJLaXQvU2NyaXB0cy9QcmVmZXJlbmNlc1RlbXBsYXRlcy9XZWJQcmVmZXJlbmNlc0dl
dHRlclNldHRlcnMuY3BwLmVyYgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1NjcmlwdHMv
UHJlZmVyZW5jZXNUZW1wbGF0ZXMvV2ViUHJlZmVyZW5jZXNHZXR0ZXJTZXR0ZXJzLmNwcC5lcmIJ
KG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYktpdC9TY3JpcHRzL1ByZWZlcmVuY2VzVGVtcGxh
dGVzL1dlYlByZWZlcmVuY2VzR2V0dGVyU2V0dGVycy5jcHAuZXJiCSh3b3JraW5nIGNvcHkpCkBA
IC0wLDAgKzEsOTUgQEAKKy8qCisqIDwlPSBAd2FybmluZyAlPgorKgorKiBDb3B5cmlnaHQgKEMp
IDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorKgorKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisqIGFyZSBtZXQ6CisqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorKgorKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJXZWJQcmVmZXJlbmNlcy5oIgorCisjaW5jbHVkZSAiV2ViUHJlZmVyZW5jZXNLZXlzLmgiCisK
K25hbWVzcGFjZSBXZWJLaXQgeworCis8JS0gZm9yIEBwcmVmIGluIChAcHJlZmVyZW5jZXNOb3RE
ZWJ1ZyArIEBwcmVmZXJlbmNlc0RlYnVnKSBkbyAtJT4KK3ZvaWQgV2ViUHJlZmVyZW5jZXM6OnNl
dDwlPSBAcHJlZi5uYW1lICU+KGNvbnN0IDwlPSBAcHJlZi50eXBlICU+JiB2YWx1ZSkKK3sKKyAg
ICBpZiAoIW1fc3RvcmUuc2V0PCU9IEBwcmVmLnR5cGVVcHBlciAlPlZhbHVlRm9yS2V5KFdlYlBy
ZWZlcmVuY2VzS2V5Ojo8JT0gQHByZWYubmFtZUxvd2VyICU+S2V5KCksIHZhbHVlKSkKKyAgICAg
ICAgcmV0dXJuOworICAgIHVwZGF0ZTwlPSBAcHJlZi50eXBlVXBwZXIgJT5WYWx1ZUZvcktleShX
ZWJQcmVmZXJlbmNlc0tleTo6PCU9IEBwcmVmLm5hbWVMb3dlciAlPktleSgpLCB2YWx1ZSk7Cit9
CisKKzwlPSBAcHJlZi50eXBlICU+IFdlYlByZWZlcmVuY2VzOjo8JT0gQHByZWYubmFtZUxvd2Vy
ICU+KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9zdG9yZS5nZXQ8JT0gQHByZWYudHlwZVVwcGVy
ICU+VmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OjwlPSBAcHJlZi5uYW1lTG93ZXIgJT5L
ZXkoKSk7Cit9CisKK3ZvaWQgV2ViUHJlZmVyZW5jZXM6OmRlbGV0ZTwlPSBAcHJlZi5uYW1lICU+
KCkKK3sKKyAgICBkZWxldGVLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OjwlPSBAcHJlZi5uYW1lTG93
ZXIgJT5LZXkoKSk7Cit9CisKKzwlLSBlbmQgLSU+CisKKzwlLSBmb3IgQHByZWYgaW4gQGV4cGVy
aW1lbnRhbEZlYXR1cmVzIGRvIC0lPgordm9pZCBXZWJQcmVmZXJlbmNlczo6c2V0PCU9IEBwcmVm
Lm5hbWUgJT4oY29uc3QgYm9vbCYgdmFsdWUpCit7CisgICAgaWYgKCFtX3N0b3JlLnNldEJvb2xW
YWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6PCU9IEBwcmVmLm5hbWVMb3dlciAlPktleSgp
LCB2YWx1ZSkpCisgICAgICAgIHJldHVybjsKKyAgICB1cGRhdGVCb29sVmFsdWVGb3JFeHBlcmlt
ZW50YWxGZWF0dXJlS2V5KFdlYlByZWZlcmVuY2VzS2V5Ojo8JT0gQHByZWYubmFtZUxvd2VyICU+
S2V5KCksIHZhbHVlKTsKK30KKworYm9vbCBXZWJQcmVmZXJlbmNlczo6PCU9IEBwcmVmLm5hbWVM
b3dlciAlPigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fc3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5
KFdlYlByZWZlcmVuY2VzS2V5Ojo8JT0gQHByZWYubmFtZUxvd2VyICU+S2V5KCkpOworfQorCit2
b2lkIFdlYlByZWZlcmVuY2VzOjpkZWxldGU8JT0gQHByZWYubmFtZSAlPigpCit7CisgICAgZGVs
ZXRlS2V5KFdlYlByZWZlcmVuY2VzS2V5Ojo8JT0gQHByZWYubmFtZUxvd2VyICU+S2V5KCkpOwor
fQorCis8JS0gZW5kIC0lPgorCis8JS0gZm9yIEBwcmVmIGluIEBpbnRlcm5hbEZlYXR1cmVzIGRv
IC0lPgordm9pZCBXZWJQcmVmZXJlbmNlczo6c2V0PCU9IEBwcmVmLm5hbWUgJT4oY29uc3QgYm9v
bCYgdmFsdWUpCit7CisgICAgaWYgKCFtX3N0b3JlLnNldEJvb2xWYWx1ZUZvcktleShXZWJQcmVm
ZXJlbmNlc0tleTo6PCU9IEBwcmVmLm5hbWVMb3dlciAlPktleSgpLCB2YWx1ZSkpCisgICAgICAg
IHJldHVybjsKKyAgICB1cGRhdGVCb29sVmFsdWVGb3JJbnRlcm5hbERlYnVnRmVhdHVyZUtleShX
ZWJQcmVmZXJlbmNlc0tleTo6PCU9IEBwcmVmLm5hbWVMb3dlciAlPktleSgpLCB2YWx1ZSk7Cit9
CisKK2Jvb2wgV2ViUHJlZmVyZW5jZXM6OjwlPSBAcHJlZi5uYW1lTG93ZXIgJT4oKSBjb25zdAor
eworICAgIHJldHVybiBtX3N0b3JlLmdldEJvb2xWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tl
eTo6PCU9IEBwcmVmLm5hbWVMb3dlciAlPktleSgpKTsKK30KKwordm9pZCBXZWJQcmVmZXJlbmNl
czo6ZGVsZXRlPCU9IEBwcmVmLm5hbWUgJT4oKQoreworICAgIGRlbGV0ZUtleShXZWJQcmVmZXJl
bmNlc0tleTo6PCU9IEBwcmVmLm5hbWVMb3dlciAlPktleSgpKTsKK30KKworPCUtIGVuZCAtJT4K
KworfQpJbmRleDogU291cmNlL1dlYktpdC9TY3JpcHRzL1ByZWZlcmVuY2VzVGVtcGxhdGVzL1dl
YlByZWZlcmVuY2VzSW50ZXJuYWxEZWJ1Z0ZlYXR1cmVzLmNwcC5lcmIKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdC9TY3JpcHRzL1ByZWZlcmVuY2VzVGVtcGxhdGVzL1dlYlByZWZlcmVuY2Vz
SW50ZXJuYWxEZWJ1Z0ZlYXR1cmVzLmNwcC5lcmIJKHJldmlzaW9uIDI2ODMyMykKKysrIFNvdXJj
ZS9XZWJLaXQvU2NyaXB0cy9QcmVmZXJlbmNlc1RlbXBsYXRlcy9XZWJQcmVmZXJlbmNlc0ludGVy
bmFsRGVidWdGZWF0dXJlcy5jcHAuZXJiCSh3b3JraW5nIGNvcHkpCkBAIC0zMywyMCArMzMsNiBA
QAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotPCUtIGZvciBAcHJlZiBpbiBAaW50ZXJuYWxGZWF0
dXJlcyBkbyAtJT4KLXZvaWQgV2ViUHJlZmVyZW5jZXM6OnNldDwlPSBAcHJlZi5uYW1lICU+KGNv
bnN0IGJvb2wmIHZhbHVlKQotewotICAgIGlmICghbV9zdG9yZS5zZXRCb29sVmFsdWVGb3JLZXko
V2ViUHJlZmVyZW5jZXNLZXk6OjwlPSBAcHJlZi5uYW1lTG93ZXIgJT5LZXkoKSwgdmFsdWUpKQot
ICAgICAgICByZXR1cm47Ci0gICAgdXBkYXRlQm9vbFZhbHVlRm9ySW50ZXJuYWxEZWJ1Z0ZlYXR1
cmVLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OjwlPSBAcHJlZi5uYW1lTG93ZXIgJT5LZXkoKSwgdmFs
dWUpOwotfQotCi1ib29sIFdlYlByZWZlcmVuY2VzOjo8JT0gQHByZWYubmFtZUxvd2VyICU+KCkg
Y29uc3QKLXsKLSAgICByZXR1cm4gbV9zdG9yZS5nZXRCb29sVmFsdWVGb3JLZXkoV2ViUHJlZmVy
ZW5jZXNLZXk6OjwlPSBAcHJlZi5uYW1lTG93ZXIgJT5LZXkoKSk7Ci19Ci0KLTwlLSBlbmQgLSU+
CiBjb25zdCBWZWN0b3I8UmVmUHRyPEFQSTo6T2JqZWN0Pj4mIFdlYlByZWZlcmVuY2VzOjppbnRl
cm5hbERlYnVnRmVhdHVyZXMoKQogewogICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxWZWN0b3I8
UmVmUHRyPEFQSTo6T2JqZWN0Pj4+IGZlYXR1cmVzKHN0ZDo6aW5pdGlhbGl6ZXJfbGlzdDxSZWZQ
dHI8QVBJOjpPYmplY3Q+PiB7CkluZGV4OiBTb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvYy9XS1N0
cmluZy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL2MvV0tTdHJp
bmcuY3BwCShyZXZpc2lvbiAyNjgzMjMpCisrKyBTb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvYy9X
S1N0cmluZy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ0LDYgKzQ0LDExIEBAIFdLU3RyaW5nUmVm
IFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW4KICAgICByZXR1cm4gV2ViS2l0Ojp0b0FQSSgm
QVBJOjpTdHJpbmc6OmNyZWF0ZShXVEY6OlN0cmluZzo6ZnJvbVVURjgoc3RyaW5nKSkubGVha1Jl
ZigpKTsKIH0KIAorV0tTdHJpbmdSZWYgV0tTdHJpbmdDcmVhdGVXaXRoVVRGOFN0cmluZ1dpdGhM
ZW5ndGgoY29uc3QgY2hhciogc3RyaW5nLCBzaXplX3QgbGVuZ3RoKQoreworICAgIHJldHVybiBX
ZWJLaXQ6OnRvQVBJKCZBUEk6OlN0cmluZzo6Y3JlYXRlKFdURjo6U3RyaW5nOjpmcm9tVVRGOChz
dHJpbmcsIGxlbmd0aCkpLmxlYWtSZWYoKSk7Cit9CisKIGJvb2wgV0tTdHJpbmdJc0VtcHR5KFdL
U3RyaW5nUmVmIHN0cmluZ1JlZikKIHsKICAgICByZXR1cm4gV2ViS2l0Ojp0b0ltcGwoc3RyaW5n
UmVmKS0+c3RyaW5nVmlldygpLmlzRW1wdHkoKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvU2hhcmVk
L0FQSS9jL1dLU3RyaW5nLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9TaGFyZWQvQVBJ
L2MvV0tTdHJpbmcuaAkocmV2aXNpb24gMjY4MzIzKQorKysgU291cmNlL1dlYktpdC9TaGFyZWQv
QVBJL2MvV0tTdHJpbmcuaAkod29ya2luZyBjb3B5KQpAQCAtNDcsNiArNDcsNyBAQCBleHRlcm4g
IkMiIHsKIFdLX0VYUE9SVCBXS1R5cGVJRCBXS1N0cmluZ0dldFR5cGVJRCh2b2lkKTsKIAogV0tf
RVhQT1JUIFdLU3RyaW5nUmVmIFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKGNvbnN0IGNo
YXIqIHN0cmluZyk7CitXS19FWFBPUlQgV0tTdHJpbmdSZWYgV0tTdHJpbmdDcmVhdGVXaXRoVVRG
OFN0cmluZ1dpdGhMZW5ndGgoY29uc3QgY2hhciogc3RyaW5nLCBzaXplX3QgbGVuZ3RoKTsKIAog
V0tfRVhQT1JUIGJvb2wgV0tTdHJpbmdJc0VtcHR5KFdLU3RyaW5nUmVmIHN0cmluZyk7CiAKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByZWZlcmVuY2VzLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcmVmZXJlbmNlcy5jcHAJKHJldmlzaW9u
IDI2ODMyMykKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByZWZlcmVuY2VzLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMTAyLDYgKzEwMiwzNCBAQCB2b2lkIFdlYlByZWZlcmVuY2VzOjp1
cGRhdGUoKQogICAgICAgICB3ZWJQYWdlUHJveHktPnByZWZlcmVuY2VzRGlkQ2hhbmdlKCk7CiB9
CiAKK3ZvaWQgV2ViUHJlZmVyZW5jZXM6OnNldEJvb2xWYWx1ZUZvcktleShjb25zdCBTdHJpbmcm
IGtleSwgYm9vbCB2YWx1ZSkKK3sKKyAgICBpZiAoIW1fc3RvcmUuc2V0Qm9vbFZhbHVlRm9yS2V5
KGtleSwgdmFsdWUpKQorICAgICAgICByZXR1cm47CisgICAgdXBkYXRlQm9vbFZhbHVlRm9yS2V5
KGtleSwgdmFsdWUpOworfQorCit2b2lkIFdlYlByZWZlcmVuY2VzOjpzZXREb3VibGVWYWx1ZUZv
cktleShjb25zdCBTdHJpbmcmIGtleSwgZG91YmxlIHZhbHVlKQoreworICAgIGlmICghbV9zdG9y
ZS5zZXREb3VibGVWYWx1ZUZvcktleShrZXksIHZhbHVlKSkKKyAgICAgICAgcmV0dXJuOworICAg
IHVwZGF0ZURvdWJsZVZhbHVlRm9yS2V5KGtleSwgdmFsdWUpOworfQorCit2b2lkIFdlYlByZWZl
cmVuY2VzOjpzZXRVSW50MzJWYWx1ZUZvcktleShjb25zdCBTdHJpbmcmIGtleSwgdWludDMyX3Qg
dmFsdWUpCit7CisgICAgaWYgKCFtX3N0b3JlLnNldFVJbnQzMlZhbHVlRm9yS2V5KGtleSwgdmFs
dWUpKQorICAgICAgICByZXR1cm47CisgICAgdXBkYXRlVUludDMyVmFsdWVGb3JLZXkoa2V5LCB2
YWx1ZSk7Cit9CisKK3ZvaWQgV2ViUHJlZmVyZW5jZXM6OnNldFN0cmluZ1ZhbHVlRm9yS2V5KGNv
bnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIHZhbHVlKQoreworICAgIGlmICghbV9zdG9y
ZS5zZXRTdHJpbmdWYWx1ZUZvcktleShrZXksIHZhbHVlKSkKKyAgICAgICAgcmV0dXJuOworICAg
IHVwZGF0ZVN0cmluZ1ZhbHVlRm9yS2V5KGtleSwgdmFsdWUpOworfQorCiB2b2lkIFdlYlByZWZl
cmVuY2VzOjp1cGRhdGVTdHJpbmdWYWx1ZUZvcktleShjb25zdCBTdHJpbmcmIGtleSwgY29uc3Qg
U3RyaW5nJiB2YWx1ZSkKIHsKICAgICBwbGF0Zm9ybVVwZGF0ZVN0cmluZ1ZhbHVlRm9yS2V5KGtl
eSwgdmFsdWUpOwpAQCAtMTU1LDMwICsxODMsNiBAQCB2b2lkIFdlYlByZWZlcmVuY2VzOjpkZWxl
dGVLZXkoY29uc3QgU3RyCiAgICAgdXBkYXRlKCk7IC8vIEZJWE1FOiBPbmx5IHNlbmQgb3ZlciB0
aGUgY2hhbmdlZCBrZXkgYW5kIHZhbHVlLgogfQogCi0jZGVmaW5lIERFRklORV9QUkVGRVJFTkNF
X0dFVFRFUl9BTkRfU0VUVEVSUyhLZXlVcHBlciwgS2V5TG93ZXIsIFR5cGVOYW1lLCBUeXBlLCBE
ZWZhdWx0VmFsdWUsIEh1bWFuUmVhZGFibGVOYW1lLCBIdW1hblJlYWRhYmxlRGVzY3JpcHRpb24p
IFwKLSAgICB2b2lkIFdlYlByZWZlcmVuY2VzOjpzZXQjI0tleVVwcGVyKGNvbnN0IFR5cGUmIHZh
bHVlKSBcCi0gICAgeyBcCi0gICAgICAgIGlmICghbV9zdG9yZS5zZXQjI1R5cGVOYW1lIyNWYWx1
ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6S2V5TG93ZXIjI0tleSgpLCB2YWx1ZSkpIFwKLSAg
ICAgICAgICAgIHJldHVybjsgXAotICAgICAgICB1cGRhdGUjI1R5cGVOYW1lIyNWYWx1ZUZvcktl
eShXZWJQcmVmZXJlbmNlc0tleTo6S2V5TG93ZXIjI0tleSgpLCB2YWx1ZSk7IFwKLSAgICB9IFwK
LSAgICBcCi0gICAgdm9pZCBXZWJQcmVmZXJlbmNlczo6ZGVsZXRlIyNLZXlVcHBlcigpIFwKLSAg
ICB7IFwKLSAgICAgICAgZGVsZXRlS2V5KFdlYlByZWZlcmVuY2VzS2V5OjpLZXlMb3dlciMjS2V5
KCkpOyBcCi0gICAgfSBcCi0gICAgXAotICAgIFR5cGUgV2ViUHJlZmVyZW5jZXM6OktleUxvd2Vy
KCkgY29uc3QgXAotICAgIHsgXAotICAgICAgICByZXR1cm4gbV9zdG9yZS5nZXQjI1R5cGVOYW1l
IyNWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6S2V5TG93ZXIjI0tleSgpKTsgXAotICAg
IH0gXAotCi1GT1JfRUFDSF9XRUJLSVRfUFJFRkVSRU5DRShERUZJTkVfUFJFRkVSRU5DRV9HRVRU
RVJfQU5EX1NFVFRFUlMpCi1GT1JfRUFDSF9XRUJLSVRfREVCVUdfUFJFRkVSRU5DRShERUZJTkVf
UFJFRkVSRU5DRV9HRVRURVJfQU5EX1NFVFRFUlMpCi0KLSN1bmRlZiBERUZJTkVfUFJFRkVSRU5D
RV9HRVRURVJfQU5EX1NFVFRFUlMKLQotCiB2b2lkIFdlYlByZWZlcmVuY2VzOjpyZWdpc3RlckRl
ZmF1bHRCb29sVmFsdWVGb3JLZXkoY29uc3QgU3RyaW5nJiBrZXksIGJvb2wgdmFsdWUpCiB7CiAg
ICAgbV9zdG9yZS5zZXRPdmVycmlkZURlZmF1bHRzQm9vbFZhbHVlRm9yS2V5KGtleSwgdmFsdWUp
OwpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJlZmVyZW5jZXMuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcmVmZXJlbmNlcy5oCShyZXZpc2lv
biAyNjgzMjMpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcmVmZXJlbmNlcy5oCSh3
b3JraW5nIGNvcHkpCkBAIC01OSw2ICs1OSw3IEBAIHB1YmxpYzoKIAogICAgIGNvbnN0IFdlYlBy
ZWZlcmVuY2VzU3RvcmUmIHN0b3JlKCkgY29uc3QgeyByZXR1cm4gbV9zdG9yZTsgfQogCisgICAg
Ly8gSW1wbGVtZW50ZWQgaW4gZ2VuZXJhdGVkIGZpbGUgV2ViUHJlZmVyZW5jZXNHZXR0ZXJTZXR0
ZXJzLmNwcC4KICAgICBGT1JfRUFDSF9XRUJLSVRfUFJFRkVSRU5DRShERUNMQVJFX1BSRUZFUkVO
Q0VfR0VUVEVSX0FORF9TRVRURVJTKQogICAgIEZPUl9FQUNIX1dFQktJVF9ERUJVR19QUkVGRVJF
TkNFKERFQ0xBUkVfUFJFRkVSRU5DRV9HRVRURVJfQU5EX1NFVFRFUlMpCiAgICAgRk9SX0VBQ0hf
V0VCS0lUX0lOVEVSTkFMX0RFQlVHX0ZFQVRVUkVfUFJFRkVSRU5DRShERUNMQVJFX1BSRUZFUkVO
Q0VfR0VUVEVSX0FORF9TRVRURVJTKQpAQCAtNzcsNiArNzgsMTAgQEAgcHVibGljOgogICAgIHZv
aWQgcmVzZXRBbGxJbnRlcm5hbERlYnVnRmVhdHVyZXMoKTsKIAogICAgIC8vIEV4cG9zZWQgZm9y
IFdlYktpdFRlc3RSdW5uZXIgdXNlIG9ubHkuCisgICAgdm9pZCBzZXRCb29sVmFsdWVGb3JLZXko
Y29uc3QgU3RyaW5nJiwgYm9vbCB2YWx1ZSk7CisgICAgdm9pZCBzZXREb3VibGVWYWx1ZUZvcktl
eShjb25zdCBTdHJpbmcmLCBkb3VibGUgdmFsdWUpOworICAgIHZvaWQgc2V0VUludDMyVmFsdWVG
b3JLZXkoY29uc3QgU3RyaW5nJiwgdWludDMyX3QgdmFsdWUpOworICAgIHZvaWQgc2V0U3RyaW5n
VmFsdWVGb3JLZXkoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiB2YWx1ZSk7CiAgICAgdm9p
ZCBmb3JjZVVwZGF0ZSgpIHsgdXBkYXRlKCk7IH0KIAogcHJpdmF0ZToKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwCShyZXZpc2lvbiAy
NjgzMjMpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNzgsNiArNzgsMjYgQEAgdm9pZCBXS1ByZWZlcmVuY2VzU2V0
SW50ZXJuYWxEZWJ1Z0ZlYXR1cgogICAgIHRvSW1wbChwcmVmZXJlbmNlc1JlZiktPnNldEludGVy
bmFsRGVidWdGZWF0dXJlRW5hYmxlZEZvcktleSh0b1dURlN0cmluZyhpbnRlcm5hbERlYnVnRmVh
dHVyZUtleSksIHZhbHVlKTsKIH0KIAordm9pZCBXS1ByZWZlcmVuY2VzU2V0Qm9vbFZhbHVlRm9y
S2V5KFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYsIGJvb2wgdmFsdWUsIFdLU3RyaW5n
UmVmIGtleSkKK3sKKyAgICB0b0ltcGwocHJlZmVyZW5jZXNSZWYpLT5zZXRCb29sVmFsdWVGb3JL
ZXkodG9XVEZTdHJpbmcoa2V5KSwgdmFsdWUpOworfQorCit2b2lkIFdLUHJlZmVyZW5jZXNTZXRE
b3VibGVWYWx1ZUZvcktleShXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmLCBkb3VibGUg
dmFsdWUsIFdLU3RyaW5nUmVmIGtleSkKK3sKKyAgICB0b0ltcGwocHJlZmVyZW5jZXNSZWYpLT5z
ZXRCb29sVmFsdWVGb3JLZXkodG9XVEZTdHJpbmcoa2V5KSwgdmFsdWUpOworfQorCit2b2lkIFdL
UHJlZmVyZW5jZXNTZXRVSW50MzJWYWx1ZUZvcktleShXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVu
Y2VzUmVmLCB1aW50MzJfdCB2YWx1ZSwgV0tTdHJpbmdSZWYga2V5KQoreworICAgIHRvSW1wbChw
cmVmZXJlbmNlc1JlZiktPnNldFVJbnQzMlZhbHVlRm9yS2V5KHRvV1RGU3RyaW5nKGtleSksIHZh
bHVlKTsKK30KKwordm9pZCBXS1ByZWZlcmVuY2VzU2V0U3RyaW5nVmFsdWVGb3JLZXkoV0tQcmVm
ZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZiwgV0tTdHJpbmdSZWYgdmFsdWUsIFdLU3RyaW5nUmVm
IGtleSkKK3sKKyAgICB0b0ltcGwocHJlZmVyZW5jZXNSZWYpLT5zZXRTdHJpbmdWYWx1ZUZvcktl
eSh0b1dURlN0cmluZyhrZXkpLCB0b1dURlN0cmluZyh2YWx1ZSkpOworfQorCiB2b2lkIFdLUHJl
ZmVyZW5jZXNSZXNldFRlc3RSdW5uZXJPdmVycmlkZXMoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJl
bmNlc1JlZikKIHsKICAgICAvLyBDdXJyZW50bHkgd2UgcmVzZXQgdGhlIG92ZXJyaWRlcyBvbiB0
aGUgd2ViIHByb2Nlc3Mgd2hlbiBwcmVmZXJlbmNlc0RpZENoYW5nZSgpIGlzIGNhbGxlZC4gU2lu
Y2UgV1RSIHByZWZlcmVuY2VzCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9X
S1ByZWZlcmVuY2VzUmVmUHJpdmF0ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXNSZWZQcml2YXRlLmgJKHJldmlzaW9uIDI2ODMyMykK
KysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXNSZWZQcml2YXRl
LmgJKHdvcmtpbmcgY29weSkKQEAgLTU1LDYgKzU1LDEzIEBAIFdLX0VYUE9SVCB2b2lkIFdLUHJl
ZmVyZW5jZXNTZXRFeHBlcmltZW4KIFdLX0VYUE9SVCB2b2lkIFdLUHJlZmVyZW5jZXNSZXNldEFs
bEludGVybmFsRGVidWdGZWF0dXJlcyhXS1ByZWZlcmVuY2VzUmVmKTsKIFdLX0VYUE9SVCB2b2lk
IFdLUHJlZmVyZW5jZXNTZXRJbnRlcm5hbERlYnVnRmVhdHVyZUZvcktleShXS1ByZWZlcmVuY2Vz
UmVmLCBib29sLCBXS1N0cmluZ1JlZik7CiAKKy8vIFRoZSBmb2xsb3dpbmcgZ2VuZXJpYyBzZXR0
ZXIgZnVuY3Rpb25zIGFyZSBvbmx5IGludGVuZGVkIGZvciB1c2UgYnkgdGVzdGluZyBpbmZyYXN0
cnVjdHVyZS4KK1dLX0VYUE9SVCB2b2lkIFdLUHJlZmVyZW5jZXNTZXRCb29sVmFsdWVGb3JLZXko
V0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZiwgYm9vbCB2YWx1ZSwgV0tTdHJpbmdSZWYg
a2V5KTsKK1dLX0VYUE9SVCB2b2lkIFdLUHJlZmVyZW5jZXNTZXREb3VibGVWYWx1ZUZvcktleShX
S1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmLCBkb3VibGUgdmFsdWUsIFdLU3RyaW5nUmVm
IGtleSk7CitXS19FWFBPUlQgdm9pZCBXS1ByZWZlcmVuY2VzU2V0VUludDMyVmFsdWVGb3JLZXko
V0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZiwgdWludDMyX3QgdmFsdWUsIFdLU3RyaW5n
UmVmIGtleSk7CitXS19FWFBPUlQgdm9pZCBXS1ByZWZlcmVuY2VzU2V0U3RyaW5nVmFsdWVGb3JL
ZXkoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZiwgV0tTdHJpbmdSZWYgdmFsdWUsIFdL
U3RyaW5nUmVmIGtleSk7CisKKy8vIEZvciBUZXN0IFJ1bm5lciBVc2Ugb25seS4KIFdLX0VYUE9S
VCB2b2lkIFdLUHJlZmVyZW5jZXNSZXNldFRlc3RSdW5uZXJPdmVycmlkZXMoV0tQcmVmZXJlbmNl
c1JlZiBwcmVmZXJlbmNlc1JlZik7CiAKIC8vIERlZmF1bHRzIHRvIGZhbHNlLgpJbmRleDogU291
cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lv
biAyNjgzMjMpCisrKyBTb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCSh3b3JraW5nIGNvcHkpCkBAIC0xMzEyLDYgKzEzMTIsNyBAQAogCQk3Q0U0RDIyODFBNDkx
NkMyMDBDN0YxNTIgLyogV2ViUHJvY2Vzc1Bvb2xNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0NFNEQyMjYxQTQ5MTZDMjAwQzdGMTUyIC8q
IFdlYlByb2Nlc3NQb29sTWVzc2FnZXMuaCAqLzsgfTsKIAkJN0NFOUNFMTAxRkEwNzY3QTAwMDE3
N0RFIC8qIFdlYlBhZ2VVcGRhdGVQcmVmZXJlbmNlcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Q0U5Q0UwRjFGQTA3NjREMDAwMTc3REUgLyogV2Vi
UGFnZVVwZGF0ZVByZWZlcmVuY2VzLmNwcCAqLzsgfTsKIAkJN0NFQjAwREQxRkE2OUFCRTAwNjU0
NzNCIC8qIFdlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsRmVhdHVyZXMuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0NFQjAwREMxRkE2OUE4OTAwNjU0
NzNCIC8qIFdlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsRmVhdHVyZXMuY3BwICovOyB9OworCQk3
Q0YxOTA3MTI1MzM4RjM4MDBBQkUxODMgLyogV2ViUHJlZmVyZW5jZXNHZXR0ZXJTZXR0ZXJzLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDRjE5MDcw
MjUzMzhFRkYwMEFCRTE4MyAvKiBXZWJQcmVmZXJlbmNlc0dldHRlclNldHRlcnMuY3BwICovOyB9
OwogCQk3Q0Y0N0ZGNzE3Mjc1QjcxMDA4QUNCOTEgLyogV0tCdW5kbGVQYWdlQmFubmVyLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Q0Y0N0ZGNTE3Mjc1
QjcxMDA4QUNCOTEgLyogV0tCdW5kbGVQYWdlQmFubmVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJN0NGNDdGRkIxNzI3NUM1NzAwOEFDQjkxIC8q
IFBhZ2VCYW5uZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDdDRjQ3RkY5MTcyNzVDNTcwMDhBQ0I5MSAvKiBQYWdlQmFubmVyLmggKi87IH07CiAJCTdD
RjQ3RkZGMTcyNzZBRTMwMDhBQ0I5MSAvKiBXS0J1bmRsZVBhZ2VCYW5uZXJNYWMuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDRjQ3RkZEMTcyNzZBRTMw
MDhBQ0I5MSAvKiBXS0J1bmRsZVBhZ2VCYW5uZXJNYWMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtNDMzMiw2ICs0MzMzLDcgQEAKIAkJN0NFOUNF
MEYxRkEwNzY0RDAwMDE3N0RFIC8qIFdlYlBhZ2VVcGRhdGVQcmVmZXJlbmNlcy5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IG5hbWUgPSBXZWJQYWdlVXBkYXRlUHJlZmVyZW5jZXMuY3BwOyBwYXRoID0gRGVyaXZl
ZFNvdXJjZXMvV2ViS2l0Mi9XZWJQYWdlVXBkYXRlUHJlZmVyZW5jZXMuY3BwOyBzb3VyY2VUcmVl
ID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQk3Q0VCMDBEQzFGQTY5QTg5MDA2NTQ3M0IgLyog
V2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWxGZWF0dXJlcy5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUg
PSBXZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbEZlYXR1cmVzLmNwcDsgcGF0aCA9IERlcml2ZWRT
b3VyY2VzL1dlYktpdDIvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWxGZWF0dXJlcy5jcHA7IHNv
dXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTdDRUZBOTYwMUFDMDk5OTMwMEI5
MTBGRCAvKiBBUElDb250ZW50UnVsZUxpc3RTdG9yZUNvY29hLm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gQVBJQ29udGVudFJ1bGVMaXN0U3RvcmVDb2NvYS5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJN0NGMTkwNzAyNTMzOEVGRjAwQUJFMTgzIC8q
IFdlYlByZWZlcmVuY2VzR2V0dGVyU2V0dGVycy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBXZWJQ
cmVmZXJlbmNlc0dldHRlclNldHRlcnMuY3BwOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0
Mi9XZWJQcmVmZXJlbmNlc0dldHRlclNldHRlcnMuY3BwOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJP
RFVDVFNfRElSOyB9OwogCQk3Q0Y0N0ZGNDE3Mjc1QjcxMDA4QUNCOTEgLyogV0tCdW5kbGVQYWdl
QmFubmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdLQnVuZGxl
UGFnZUJhbm5lci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDRjQ3RkY1MTcy
NzVCNzEwMDhBQ0I5MSAvKiBXS0J1bmRsZVBhZ2VCYW5uZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gV0tCdW5kbGVQYWdlQmFubmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTdDRjQ3RkY5MTcyNzVDNTcwMDhBQ0I5MSAvKiBQYWdlQmFubmVyLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBhZ2VCYW5uZXIuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTEwMjU5LDYgKzEwMjYxLDcgQEAKIAkJCQkxQUIxRjc5NTFEMUIzNjEz
MDA3QzlCRDEgLyogV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHlNZXNzYWdlcy5oICovLAogCQkJ
CTdDREU3M0EzMUY5REFCNjUwMDM5MDMxMiAvKiBXZWJQcmVmZXJlbmNlc0RlZmluaXRpb25zLmgg
Ki8sCiAJCQkJN0NFQjAwREMxRkE2OUE4OTAwNjU0NzNCIC8qIFdlYlByZWZlcmVuY2VzRXhwZXJp
bWVudGFsRmVhdHVyZXMuY3BwICovLAorCQkJCTdDRjE5MDcwMjUzMzhFRkYwMEFCRTE4MyAvKiBX
ZWJQcmVmZXJlbmNlc0dldHRlclNldHRlcnMuY3BwICovLAogCQkJCTMxQjM2Mjk4MjE0MUY2RTAw
MDdCRkE1MyAvKiBXZWJQcmVmZXJlbmNlc0ludGVybmFsRGVidWdGZWF0dXJlcy5jcHAgKi8sCiAJ
CQkJN0NCMTAwRUUxRkEyRDc0QTAwMTcyOUVFIC8qIFdlYlByZWZlcmVuY2VzS2V5cy5jcHAgKi8s
CiAJCQkJN0NCMTAwRUYxRkEyRDc0QjAwMTcyOUVFIC8qIFdlYlByZWZlcmVuY2VzS2V5cy5oICov
LApAQCAtMTMxNjEsNiArMTMxNjQsNyBAQAogCQkJCTJEOTJBNzhEMjEyQjZBQjEwMEY0OTNGRCAv
KiBXZWJQbGF0Zm9ybVRvdWNoUG9pbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQ5MTM0NEUy
MTJDRjlGMDAwMTI4QUZEIC8qIFdlYlBsdWdpbkluZm9Qcm92aWRlci5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQk3Q0VCMDBERDFGQTY5QUJFMDA2NTQ3M0IgLyogV2ViUHJlZmVyZW5jZXNFeHBlcmlt
ZW50YWxGZWF0dXJlcy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk3Q0YxOTA3MTI1MzM4RjM4MDBB
QkUxODMgLyogV2ViUHJlZmVyZW5jZXNHZXR0ZXJTZXR0ZXJzLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTMxQjM2Mjk5MjE0MUY2RTgwMDdCRkE1MyAvKiBXZWJQcmVmZXJlbmNlc0ludGVybmFsRGVi
dWdGZWF0dXJlcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3Q0IxMDBGMTFGQTM4NThBMDAxNzI5
RUUgLyogV2ViUHJlZmVyZW5jZXNLZXlzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdDQjEwMEY0
MUZBMzg1OTIwMDE3MjlFRSAvKiBXZWJQcmVmZXJlbmNlc1N0b3JlRGVmYXVsdHNNYXAuY3BwIGlu
IFNvdXJjZXMgKi8sCkluZGV4OiBUb29scy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMv
Q2hhbmdlTG9nCShyZXZpc2lvbiAyNjgzMjQpCisrKyBUb29scy9DaGFuZ2VMb2cJKHdvcmtpbmcg
Y29weSkKQEAgLTEsMyArMSw5MiBAQAorMjAyMC0xMC0xMSAgU2FtIFdlaW5pZyAgPHdlaW5pZ0Bh
cHBsZS5jb20+CisKKyAgICAgICAgW1ByZWZlcmVuY2VzXSBJbnRyb2R1Y2Ugc3RyaW5nIGJhc2Vk
IFNQSSBmb3IgV0tQcmVmZXJlbmNlcyB0byBhbGxvdyB0ZXN0cyB0byBjaGFuZ2UgaW50ZXJuYWwg
YmVoYXZpb3Igd2l0aG91dCBhbHdheXMgYWRkaW5nIGFkZGl0aW9uYWwgU1BJCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTc1ODIKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbV0lQXQorCisgICAgICAgICog
V2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXVFI6OlRlc3RD
b250cm9sbGVyOjppbml0aWFsaXplKToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OmNy
ZWF0ZVdlYlZpZXdXaXRoT3B0aW9ucyk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpy
ZXNldFByZWZlcmVuY2VzVG9Db25zaXN0ZW50VmFsdWVzKToKKyAgICAgICAgKFdUUjo6VGVzdENv
bnRyb2xsZXI6OnJlc2V0U3RhdGVUb0NvbnNpc3RlbnRWYWx1ZXMpOgorICAgICAgICAoV1RSOjpU
ZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1SZXNldFN0YXRlVG9Db25zaXN0ZW50VmFsdWVzKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmg6CisgICAg
ICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0T3B0aW9ucy5jcHA6CisgICAgICAgIChXVFI6OmJv
b2xEZWZhdWx0c01hcCk6CisgICAgICAgIChXVFI6OmRvdWJsZURlZmF1bHRzTWFwKToKKyAgICAg
ICAgKFdUUjo6c3RyaW5nRGVmYXVsdHNNYXApOgorICAgICAgICAoV1RSOjpzdHJpbmdWZWN0b3JE
ZWZhdWx0c01hcCk6CisgICAgICAgIChXVFI6OmtleVR5cGVNYXApOgorICAgICAgICAoV1RSOjpU
ZXN0T3B0aW9uczo6Ym9vbFdLUHJlZmVyZW5jZXMgY29uc3QpOgorICAgICAgICAqIFdlYktpdFRl
c3RSdW5uZXIvVGVzdE9wdGlvbnMuaDoKKyAgICAgICAgKFdUUjo6VGVzdE9wdGlvbnM6OmFsbG93
c0xpbmtQcmV2aWV3IGNvbnN0KToKKyAgICAgICAgKFdUUjo6VGVzdE9wdGlvbnM6OmR1bXBKU0Nv
bnNvbGVMb2dJblN0ZEVyciBjb25zdCk6CisgICAgICAgIChXVFI6OlRlc3RPcHRpb25zOjplbmFi
bGVBdHRhY2htZW50RWxlbWVudCBjb25zdCk6CisgICAgICAgIChXVFI6OlRlc3RPcHRpb25zOjpl
bmFibGVJbkFwcEJyb3dzZXJQcml2YWN5IGNvbnN0KToKKyAgICAgICAgKFdUUjo6VGVzdE9wdGlv
bnM6Omlnbm9yZVN5bmNocm9ub3VzTWVzc2FnaW5nVGltZW91dHMgY29uc3QpOgorICAgICAgICAo
V1RSOjpUZXN0T3B0aW9uczo6aWdub3Jlc1ZpZXdwb3J0U2NhbGVMaW1pdHMgY29uc3QpOgorICAg
ICAgICAoV1RSOjpUZXN0T3B0aW9uczo6aXNBcHBCb3VuZFdlYlZpZXcgY29uc3QpOgorICAgICAg
ICAoV1RSOjpUZXN0T3B0aW9uczo6cHVuY2hPdXRXaGl0ZUJhY2tncm91bmRzSW5EYXJrTW9kZSBj
b25zdCk6CisgICAgICAgIChXVFI6OlRlc3RPcHRpb25zOjpydW5TaW5nbHkgY29uc3QpOgorICAg
ICAgICAoV1RSOjpUZXN0T3B0aW9uczo6c2hvdWxkSGFuZGxlUnVuT3BlblBhbmVsIGNvbnN0KToK
KyAgICAgICAgKFdUUjo6VGVzdE9wdGlvbnM6OnNob3VsZFByZXNlbnRQb3BvdmVycyBjb25zdCk6
CisgICAgICAgIChXVFI6OlRlc3RPcHRpb25zOjpzaG91bGRTaG93U3BlbGxDaGVja2luZ0RvdHMg
Y29uc3QpOgorICAgICAgICAoV1RSOjpUZXN0T3B0aW9uczo6c2hvdWxkU2hvd1RvdWNoZXMgY29u
c3QpOgorICAgICAgICAoV1RSOjpUZXN0T3B0aW9uczo6c2hvdWxkU2hvd1dlYlZpZXcgY29uc3Qp
OgorICAgICAgICAoV1RSOjpUZXN0T3B0aW9uczo6dXNlQ2hhcmFjdGVyU2VsZWN0aW9uR3JhbnVs
YXJpdHkgY29uc3QpOgorICAgICAgICAoV1RSOjpUZXN0T3B0aW9uczo6dXNlRGF0YURldGVjdGlv
biBjb25zdCk6CisgICAgICAgIChXVFI6OlRlc3RPcHRpb25zOjp1c2VFcGhlbWVyYWxTZXNzaW9u
IGNvbnN0KToKKyAgICAgICAgKFdUUjo6VGVzdE9wdGlvbnM6OnVzZUZsZXhpYmxlVmlld3BvcnQg
Y29uc3QpOgorICAgICAgICAoV1RSOjpUZXN0T3B0aW9uczo6dXNlUmVtb3RlTGF5ZXJUcmVlIGNv
bnN0KToKKyAgICAgICAgKFdUUjo6VGVzdE9wdGlvbnM6OnVzZVRocmVhZGVkU2Nyb2xsaW5nIGNv
bnN0KToKKyAgICAgICAgKFdUUjo6VGVzdE9wdGlvbnM6OmRldmljZVNjYWxlRmFjdG9yIGNvbnN0
KToKKyAgICAgICAgKFdUUjo6VGVzdE9wdGlvbnM6OnZpZXdXaWR0aCBjb25zdCk6CisgICAgICAg
IChXVFI6OlRlc3RPcHRpb25zOjphZGRpdGlvbmFsU3VwcG9ydGVkSW1hZ2VUeXBlcyBjb25zdCk6
CisgICAgICAgIChXVFI6OlRlc3RPcHRpb25zOjphcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIg
Y29uc3QpOgorICAgICAgICAoV1RSOjpUZXN0T3B0aW9uczo6Y29udGVudE1vZGUgY29uc3QpOgor
ICAgICAgICAoV1RSOjpUZXN0T3B0aW9uczo6anNjT3B0aW9ucyBjb25zdCk6CisgICAgICAgIChX
VFI6OlRlc3RPcHRpb25zOjpzdGFuZGFsb25lV2ViQXBwbGljYXRpb25VUkwgY29uc3QpOgorICAg
ICAgICAoV1RSOjpUZXN0T3B0aW9uczo6dXNlQWNjZWxlcmF0ZWREcmF3aW5nIGNvbnN0KTogRGVs
ZXRlZC4KKyAgICAgICAgKFdUUjo6VGVzdE9wdGlvbnM6OnVzZU1vY2tTY3JvbGxiYXJzIGNvbnN0
KTogRGVsZXRlZC4KKyAgICAgICAgKFdUUjo6VGVzdE9wdGlvbnM6Om5lZWRzU2l0ZVNwZWNpZmlj
UXVpcmtzIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdUUjo6VGVzdE9wdGlvbnM6OmVuYWJs
ZUludGVyc2VjdGlvbk9ic2VydmVyIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdUUjo6VGVz
dE9wdGlvbnM6OmVuYWJsZU1lbnVJdGVtRWxlbWVudCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAg
IChXVFI6OlRlc3RPcHRpb25zOjplbmFibGVLZXlnZW5FbGVtZW50IGNvbnN0KTogRGVsZXRlZC4K
KyAgICAgICAgKFdUUjo6VGVzdE9wdGlvbnM6OmVuYWJsZU1vZGVybk1lZGlhQ29udHJvbHMgY29u
c3QpOiBEZWxldGVkLgorICAgICAgICAoV1RSOjpUZXN0T3B0aW9uczo6ZW5hYmxlUG9pbnRlckxv
Y2sgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV1RSOjpUZXN0T3B0aW9uczo6ZW5hYmxlV2Vi
QXV0aGVudGljYXRpb24gY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV1RSOjpUZXN0T3B0aW9u
czo6ZW5hYmxlV2ViQXV0aGVudGljYXRpb25Mb2NhbEF1dGhlbnRpY2F0b3IgY29uc3QpOiBEZWxl
dGVkLgorICAgICAgICAoV1RSOjpUZXN0T3B0aW9uczo6ZW5hYmxlSW5zcGVjdG9yQWRkaXRpb25z
IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdUUjo6VGVzdE9wdGlvbnM6OmFsbG93Q3Jvc3NP
cmlnaW5TdWJyZXNvdXJjZXNUb0Fza0ZvckNyZWRlbnRpYWxzIGNvbnN0KTogRGVsZXRlZC4KKyAg
ICAgICAgKFdUUjo6VGVzdE9wdGlvbnM6OmRvbVBhc3RlQWxsb3dlZCBjb25zdCk6IERlbGV0ZWQu
CisgICAgICAgIChXVFI6OlRlc3RPcHRpb25zOjplbmFibGVDb2xvckZpbHRlciBjb25zdCk6IERl
bGV0ZWQuCisgICAgICAgIChXVFI6OlRlc3RPcHRpb25zOjpjaGVja0ZvcldvcmxkTGVha3MgY29u
c3QpOiBEZWxldGVkLgorICAgICAgICAoV1RSOjpUZXN0T3B0aW9uczo6c2hvdWxkSWdub3JlTWV0
YVZpZXdwb3J0IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdUUjo6VGVzdE9wdGlvbnM6OmVu
YWJsZVNlcnZpY2VDb250cm9scyBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXVFI6OlRlc3RP
cHRpb25zOjplbmFibGVBcHBOYXAgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV1RSOjpUZXN0
T3B0aW9uczo6ZW5hYmxlQmFja0ZvcndhcmRDYWNoZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAg
IChXVFI6OlRlc3RPcHRpb25zOjplbmFibGVDYXB0dXJlVmlkZW9JblVJUHJvY2VzcyBjb25zdCk6
IERlbGV0ZWQuCisgICAgICAgIChXVFI6OlRlc3RPcHRpb25zOjplbmFibGVDYXB0dXJlVmlkZW9J
bkdQVVByb2Nlc3MgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV1RSOjpUZXN0T3B0aW9uczo6
ZW5hYmxlQ2FwdHVyZUF1ZGlvSW5VSVByb2Nlc3MgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAo
V1RSOjpUZXN0T3B0aW9uczo6ZW5hYmxlQ2FwdHVyZUF1ZGlvSW5HUFVQcm9jZXNzIGNvbnN0KTog
RGVsZXRlZC4KKyAgICAgICAgKFdUUjo6VGVzdE9wdGlvbnM6OmFsbG93VG9wTmF2aWdhdGlvblRv
RGF0YVVSTHMgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvY29j
b2EvVGVzdENvbnRyb2xsZXJDb2NvYS5tbToKKyAgICAgICAgKFdUUjo6aW5pdGlhbGl6ZVdlYlZp
ZXdDb25maWd1cmF0aW9uKToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OnBsYXRmb3Jt
Q3JlYXRlV2ViVmlldyk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpjb2NvYVJlc2V0
U3RhdGVUb0NvbnNpc3RlbnRWYWx1ZXMpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvZ3Rr
L1Rlc3RDb250cm9sbGVyR3RrLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OnBs
YXRmb3JtUmVzZXRTdGF0ZVRvQ29uc2lzdGVudFZhbHVlcyk6CisgICAgICAgICogV2ViS2l0VGVz
dFJ1bm5lci9pb3MvVGVzdENvbnRyb2xsZXJJT1MubW06CisgICAgICAgIChXVFI6OlRlc3RDb250
cm9sbGVyOjpwbGF0Zm9ybVJlc2V0UHJlZmVyZW5jZXNUb0NvbnNpc3RlbnRWYWx1ZXMpOgorICAg
ICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1Db25maWd1cmVWaWV3Rm9yVGVzdCk6
CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci93aW4vVGVzdENvbnRyb2xsZXJXaW4uY3BwOgor
ICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1SZXNldFN0YXRlVG9Db25zaXN0
ZW50VmFsdWVzKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL3dwZS9UZXN0Q29udHJvbGxl
cldQRS5jcHA6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybVJlc2V0U3Rh
dGVUb0NvbnNpc3RlbnRWYWx1ZXMpOgorCiAyMDIwLTEwLTEwICBEYXJpbiBBZGxlciAgPGRhcmlu
QGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OIChyMjY3NzYxKTogZWRpdGluZy9tYWMv
c3BlbGxpbmcvYXV0b2NvcnJlY3Rpb24tY29udHJhY3Rpb24uaHRtbCBpcyBhIGNvbnN0YW50IHRp
bWVvdXQgb24gbWFjT1Mgd2syIERlYnVnCkluZGV4OiBUb29scy9XZWJLaXRUZXN0UnVubmVyL1Rl
c3RDb250cm9sbGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9XZWJLaXRUZXN0UnVubmVyL1Rl
c3RDb250cm9sbGVyLmNwcAkocmV2aXNpb24gMjY4MzIzKQorKysgVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9UZXN0Q29udHJvbGxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ2MywxNCArNDYzLDE0
IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OmluaXRpYWxpemUoaW50IGFyZ2MKICAgICBtX2djQmV0
d2VlblRlc3RzID0gb3B0aW9ucy5nY0JldHdlZW5UZXN0czsKICAgICBtX3Nob3VsZER1bXBQaXhl
bHNGb3JBbGxUZXN0cyA9IG9wdGlvbnMuc2hvdWxkRHVtcFBpeGVsc0ZvckFsbFRlc3RzOwogICAg
IG1fZm9yY2VDb21wbGV4VGV4dCA9IG9wdGlvbnMuZm9yY2VDb21wbGV4VGV4dDsKLSAgICBtX3No
b3VsZFVzZUFjY2VsZXJhdGVkRHJhd2luZyA9IG9wdGlvbnMuc2hvdWxkVXNlQWNjZWxlcmF0ZWRE
cmF3aW5nOwogICAgIG1fcGF0aHMgPSBvcHRpb25zLnBhdGhzOwogICAgIG1fYWxsb3dlZEhvc3Rz
ID0gb3B0aW9ucy5hbGxvd2VkSG9zdHM7CiAgICAgbV9jaGVja0ZvcldvcmxkTGVha3MgPSBvcHRp
b25zLmNoZWNrRm9yV29ybGRMZWFrczsKICAgICBtX2FsbG93QW55SFRUUFNDZXJ0aWZpY2F0ZUZv
ckFsbG93ZWRIb3N0cyA9IG9wdGlvbnMuYWxsb3dBbnlIVFRQU0NlcnRpZmljYXRlRm9yQWxsb3dl
ZEhvc3RzOwotICAgIAorCiAgICAgbV9nbG9iYWxGZWF0dXJlcy5pbnRlcm5hbERlYnVnRmVhdHVy
ZXMgPSBvcHRpb25zLmludGVybmFsRmVhdHVyZXM7CiAgICAgbV9nbG9iYWxGZWF0dXJlcy5leHBl
cmltZW50YWxGZWF0dXJlcyA9IG9wdGlvbnMuZXhwZXJpbWVudGFsRmVhdHVyZXM7CisgICAgbV9n
bG9iYWxGZWF0dXJlcy5ib29sRmVhdHVyZXMuaW5zZXJ0KHsgInVzZUFjY2VsZXJhdGVkRHJhd2lu
ZyIsIG9wdGlvbnMuc2hvdWxkVXNlQWNjZWxlcmF0ZWREcmF3aW5nIH0pOwogICAgIG1fZ2xvYmFs
RmVhdHVyZXMuYm9vbEZlYXR1cmVzLmluc2VydCh7ICJ1c2VSZW1vdGVMYXllclRyZWUiLCBvcHRp
b25zLnNob3VsZFVzZVJlbW90ZUxheWVyVHJlZSB9KTsKICAgICBtX2dsb2JhbEZlYXR1cmVzLmJv
b2xGZWF0dXJlcy5pbnNlcnQoeyAic2hvdWxkU2hvd1dlYlZpZXciLCBvcHRpb25zLnNob3VsZFNo
b3dXZWJWaWV3IH0pOwogICAgIG1fZ2xvYmFsRmVhdHVyZXMuYm9vbEZlYXR1cmVzLmluc2VydCh7
ICJzaG91bGRTaG93VG91Y2hlcyIsIG9wdGlvbnMuc2hvdWxkU2hvd1RvdWNoZXMgfSk7CkBAIC02
NTQsNiArNjU0LDggQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6Y3JlYXRlV2ViVmlld1dpdGhPcAog
ICAgIC8vIEZJWE1FOiBNaWdyYXRlIHRoZXNlIHByZWZlcmVuY2VzIHRvIFdLQ29udGV4dENvbmZp
Z3VyYXRpb25SZWYuCiAgICAgcmVzZXRQcmVmZXJlbmNlc1RvQ29uc2lzdGVudFZhbHVlcyhvcHRp
b25zKTsKIAorICAgIFdLSFRUUENvb2tpZVN0b3JlRGVsZXRlQWxsQ29va2llcyhXS1dlYnNpdGVE
YXRhU3RvcmVHZXRIVFRQQ29va2llU3RvcmUod2Vic2l0ZURhdGFTdG9yZSgpKSwgbnVsbHB0ciwg
bnVsbHB0cik7CisKICAgICBwbGF0Zm9ybUNyZWF0ZVdlYlZpZXcoY29uZmlndXJhdGlvbi5nZXQo
KSwgb3B0aW9ucyk7CiAgICAgV0tQYWdlVUlDbGllbnRWMTQgcGFnZVVJQ2xpZW50ID0gewogICAg
ICAgICB7IDE0LCBtX21haW5XZWJWaWV3LmdldCgpIH0sCkBAIC04NDEsMzcgKzg0MywyMyBAQCB2
b2lkIFRlc3RDb250cm9sbGVyOjpyZXNldFByZWZlcmVuY2VzVG9DCiAgICAgV0tQcmVmZXJlbmNl
c1Jlc2V0QWxsSW50ZXJuYWxEZWJ1Z0ZlYXR1cmVzKHByZWZlcmVuY2VzKTsKIAogICAgIC8vIFNl
dCBpbnRlcm5hbCBmZWF0dXJlcyB0aGF0IGhhdmUgZGlmZmVyZW50IGRlZmF1bHQgdmFsdWVzIGZv
ciB0ZXN0aW5nLgotCiAgICAgV0tQcmVmZXJlbmNlc1NldEludGVybmFsRGVidWdGZWF0dXJlRm9y
S2V5KHByZWZlcmVuY2VzLCBmYWxzZSwgdG9XSygiQXN5bmNPdmVyZmxvd1Njcm9sbGluZ0VuYWJs
ZWQiKS5nZXQoKSk7CiAgICAgV0tQcmVmZXJlbmNlc1NldEludGVybmFsRGVidWdGZWF0dXJlRm9y
S2V5KHByZWZlcmVuY2VzLCBmYWxzZSwgdG9XSygiQXN5bmNGcmFtZVNjcm9sbGluZ0VuYWJsZWQi
KS5nZXQoKSk7Ci0KLSNpZiBFTkFCTEUoSU5QVVRfVFlQRV9EQVRFKQogICAgIFdLUHJlZmVyZW5j
ZXNTZXRJbnRlcm5hbERlYnVnRmVhdHVyZUZvcktleShwcmVmZXJlbmNlcywgdHJ1ZSwgdG9XSygi
SW5wdXRUeXBlRGF0ZUVuYWJsZWQiKS5nZXQoKSk7Ci0jZW5kaWYKLSNpZiBFTkFCTEUoSU5QVVRf
VFlQRV9EQVRFVElNRUxPQ0FMKQogICAgIFdLUHJlZmVyZW5jZXNTZXRJbnRlcm5hbERlYnVnRmVh
dHVyZUZvcktleShwcmVmZXJlbmNlcywgdHJ1ZSwgdG9XSygiSW5wdXRUeXBlRGF0ZVRpbWVMb2Nh
bEVuYWJsZWQiKS5nZXQoKSk7Ci0jZW5kaWYKLSNpZiBFTkFCTEUoSU5QVVRfVFlQRV9NT05USCkK
ICAgICBXS1ByZWZlcmVuY2VzU2V0SW50ZXJuYWxEZWJ1Z0ZlYXR1cmVGb3JLZXkocHJlZmVyZW5j
ZXMsIHRydWUsIHRvV0soIklucHV0VHlwZU1vbnRoRW5hYmxlZCIpLmdldCgpKTsKLSNlbmRpZgot
I2lmIEVOQUJMRShJTlBVVF9UWVBFX1RJTUUpCiAgICAgV0tQcmVmZXJlbmNlc1NldEludGVybmFs
RGVidWdGZWF0dXJlRm9yS2V5KHByZWZlcmVuY2VzLCB0cnVlLCB0b1dLKCJJbnB1dFR5cGVUaW1l
RW5hYmxlZCIpLmdldCgpKTsKLSNlbmRpZgotI2lmIEVOQUJMRShJTlBVVF9UWVBFX1dFRUspCiAg
ICAgV0tQcmVmZXJlbmNlc1NldEludGVybmFsRGVidWdGZWF0dXJlRm9yS2V5KHByZWZlcmVuY2Vz
LCB0cnVlLCB0b1dLKCJJbnB1dFR5cGVXZWVrRW5hYmxlZCIpLmdldCgpKTsKLSNlbmRpZgorICAg
IFdLUHJlZmVyZW5jZXNTZXRJbnRlcm5hbERlYnVnRmVhdHVyZUZvcktleShwcmVmZXJlbmNlcywg
ZmFsc2UsIHRvV0soIlNwZWFrZXJTZWxlY3Rpb25SZXF1aXJlc1VzZXJHZXN0dXJlIikuZ2V0KCkp
OwogCi0gICAgZm9yIChjb25zdCBhdXRvJiBba2V5LCB2YWx1ZV0gIDogb3B0aW9ucy5pbnRlcm5h
bERlYnVnRmVhdHVyZXMoKSkKKyAgICBmb3IgKGF1dG8gW2tleSwgdmFsdWVdICA6IG9wdGlvbnMu
aW50ZXJuYWxEZWJ1Z0ZlYXR1cmVzKCkpCiAgICAgICAgIFdLUHJlZmVyZW5jZXNTZXRJbnRlcm5h
bERlYnVnRmVhdHVyZUZvcktleShwcmVmZXJlbmNlcywgdmFsdWUsIHRvV0soa2V5KS5nZXQoKSk7
CiAKLSNpZiBQTEFURk9STShDT0NPQSkKLSAgICBXS1ByZWZlcmVuY2VzU2V0Q2FwdHVyZVZpZGVv
SW5VSVByb2Nlc3NFbmFibGVkKHByZWZlcmVuY2VzLCBvcHRpb25zLmVuYWJsZUNhcHR1cmVWaWRl
b0luVUlQcm9jZXNzKCkpOwotICAgIFdLUHJlZmVyZW5jZXNTZXRDYXB0dXJlVmlkZW9JbkdQVVBy
b2Nlc3NFbmFibGVkKHByZWZlcmVuY2VzLCBvcHRpb25zLmVuYWJsZUNhcHR1cmVWaWRlb0luR1BV
UHJvY2VzcygpKTsKLSAgICBXS1ByZWZlcmVuY2VzU2V0Q2FwdHVyZUF1ZGlvSW5VSVByb2Nlc3NF
bmFibGVkKHByZWZlcmVuY2VzLCBvcHRpb25zLmVuYWJsZUNhcHR1cmVBdWRpb0luVUlQcm9jZXNz
KCkpOwotICAgIFdLUHJlZmVyZW5jZXNTZXRDYXB0dXJlQXVkaW9JbkdQVVByb2Nlc3NFbmFibGVk
KHByZWZlcmVuY2VzLCBvcHRpb25zLmVuYWJsZUNhcHR1cmVBdWRpb0luR1BVUHJvY2VzcygpKTsK
LSNlbmRpZgorICAgIGZvciAoYXV0byBba2V5LCB2YWx1ZV0gOiBvcHRpb25zLmJvb2xXS1ByZWZl
cmVuY2VzKCkpCisgICAgICAgIFdLUHJlZmVyZW5jZXNTZXRCb29sVmFsdWVGb3JLZXkocHJlZmVy
ZW5jZXMsIHZhbHVlLCB0b1dLKGtleSkuZ2V0KCkpOworCisgICAgLy8gRklYTUU6IENvbnZlcnQg
dGhlc2UgdG8gZGVmYXVsdCB2YWx1ZXMgZm9yIFRlc3RPcHRpb25zLgogICAgIFdLUHJlZmVyZW5j
ZXNTZXRQcm9jZXNzU3dhcE9uTmF2aWdhdGlvbkVuYWJsZWQocHJlZmVyZW5jZXMsIG9wdGlvbnMu
Y29udGV4dE9wdGlvbnMoKS5zaG91bGRFbmFibGVQcm9jZXNzU3dhcE9uTmF2aWdhdGlvbigpKTsK
LSAgICBXS1ByZWZlcmVuY2VzU2V0UGFnZVZpc2liaWxpdHlCYXNlZFByb2Nlc3NTdXBwcmVzc2lv
bkVuYWJsZWQocHJlZmVyZW5jZXMsIG9wdGlvbnMuZW5hYmxlQXBwTmFwKCkpOwogICAgIFdLUHJl
ZmVyZW5jZXNTZXRPZmZsaW5lV2ViQXBwbGljYXRpb25DYWNoZUVuYWJsZWQocHJlZmVyZW5jZXMs
IHRydWUpOwogICAgIFdLUHJlZmVyZW5jZXNTZXRTdWJwaXhlbEFudGlhbGlhc2VkTGF5ZXJUZXh0
RW5hYmxlZChwcmVmZXJlbmNlcywgZmFsc2UpOwogICAgIFdLUHJlZmVyZW5jZXNTZXRYU1NBdWRp
dG9yRW5hYmxlZChwcmVmZXJlbmNlcywgZmFsc2UpOwpAQCAtODgyLDEzICs4NzAsOSBAQCB2b2lk
IFRlc3RDb250cm9sbGVyOjpyZXNldFByZWZlcmVuY2VzVG9DCiAgICAgV0tQcmVmZXJlbmNlc1Nl
dEphdmFTY3JpcHRSdW50aW1lRmxhZ3MocHJlZmVyZW5jZXMsIGtXS0phdmFTY3JpcHRSdW50aW1l
RmxhZ3NBbGxFbmFibGVkKTsKICAgICBXS1ByZWZlcmVuY2VzU2V0SmF2YVNjcmlwdENhbk9wZW5X
aW5kb3dzQXV0b21hdGljYWxseShwcmVmZXJlbmNlcywgdHJ1ZSk7CiAgICAgV0tQcmVmZXJlbmNl
c1NldEphdmFTY3JpcHRDYW5BY2Nlc3NDbGlwYm9hcmQocHJlZmVyZW5jZXMsIHRydWUpOwotICAg
IFdLUHJlZmVyZW5jZXNTZXRET01QYXN0ZUFsbG93ZWQocHJlZmVyZW5jZXMsIG9wdGlvbnMuZG9t
UGFzdGVBbGxvd2VkKCkpOwogICAgIFdLUHJlZmVyZW5jZXNTZXRVbml2ZXJzYWxBY2Nlc3NGcm9t
RmlsZVVSTHNBbGxvd2VkKHByZWZlcmVuY2VzLCB0cnVlKTsKICAgICBXS1ByZWZlcmVuY2VzU2V0
RmlsZUFjY2Vzc0Zyb21GaWxlVVJMc0FsbG93ZWQocHJlZmVyZW5jZXMsIHRydWUpOwotICAgIFdL
UHJlZmVyZW5jZXNTZXRUb3BOYXZpZ2F0aW9uVG9EYXRhVVJMc0FsbG93ZWQocHJlZmVyZW5jZXMs
IG9wdGlvbnMuYWxsb3dUb3BOYXZpZ2F0aW9uVG9EYXRhVVJMcygpKTsKLSNpZiBFTkFCTEUoRlVM
TFNDUkVFTl9BUEkpCiAgICAgV0tQcmVmZXJlbmNlc1NldEZ1bGxTY3JlZW5FbmFibGVkKHByZWZl
cmVuY2VzLCB0cnVlKTsKLSNlbmRpZgogICAgIFdLUHJlZmVyZW5jZXNTZXRBc3luY2hyb25vdXNQ
bHVnaW5Jbml0aWFsaXphdGlvbkVuYWJsZWQocHJlZmVyZW5jZXMsIGZhbHNlKTsKICAgICBXS1By
ZWZlcmVuY2VzU2V0QXN5bmNocm9ub3VzUGx1Z2luSW5pdGlhbGl6YXRpb25FbmFibGVkRm9yQWxs
UGx1Z2lucyhwcmVmZXJlbmNlcywgZmFsc2UpOwogICAgIFdLUHJlZmVyZW5jZXNTZXRBcnRpZmlj
aWFsUGx1Z2luSW5pdGlhbGl6YXRpb25EZWxheUVuYWJsZWQocHJlZmVyZW5jZXMsIGZhbHNlKTsK
QEAgLTg5NywyMiArODgxLDcgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6cmVzZXRQcmVmZXJlbmNl
c1RvQwogICAgIFdLUHJlZmVyZW5jZXNTZXREYXRhVHJhbnNmZXJJdGVtc0VuYWJsZWQocHJlZmVy
ZW5jZXMsIHRydWUpOwogICAgIFdLUHJlZmVyZW5jZXNTZXRDdXN0b21QYXN0ZWJvYXJkRGF0YUVu
YWJsZWQocHJlZmVyZW5jZXMsIHRydWUpOwogICAgIFdLUHJlZmVyZW5jZXNTZXREaWFsb2dFbGVt
ZW50RW5hYmxlZChwcmVmZXJlbmNlcywgdHJ1ZSk7Ci0KLSAgICBXS1ByZWZlcmVuY2VzU2V0TW9j
a1Njcm9sbGJhcnNFbmFibGVkKHByZWZlcmVuY2VzLCBvcHRpb25zLnVzZU1vY2tTY3JvbGxiYXJz
KCkpOwotICAgIFdLUHJlZmVyZW5jZXNTZXROZWVkc1NpdGVTcGVjaWZpY1F1aXJrcyhwcmVmZXJl
bmNlcywgb3B0aW9ucy5uZWVkc1NpdGVTcGVjaWZpY1F1aXJrcygpKTsKLSAgICBXS1ByZWZlcmVu
Y2VzU2V0QXR0YWNobWVudEVsZW1lbnRFbmFibGVkKHByZWZlcmVuY2VzLCBvcHRpb25zLmVuYWJs
ZUF0dGFjaG1lbnRFbGVtZW50KCkpOwotICAgIFdLUHJlZmVyZW5jZXNTZXRNZW51SXRlbUVsZW1l
bnRFbmFibGVkKHByZWZlcmVuY2VzLCBvcHRpb25zLmVuYWJsZU1lbnVJdGVtRWxlbWVudCgpKTsK
LSAgICBXS1ByZWZlcmVuY2VzU2V0S2V5Z2VuRWxlbWVudEVuYWJsZWQocHJlZmVyZW5jZXMsIG9w
dGlvbnMuZW5hYmxlS2V5Z2VuRWxlbWVudCgpKTsKLSAgICBXS1ByZWZlcmVuY2VzU2V0TW9kZXJu
TWVkaWFDb250cm9sc0VuYWJsZWQocHJlZmVyZW5jZXMsIG9wdGlvbnMuZW5hYmxlTW9kZXJuTWVk
aWFDb250cm9scygpKTsKLSAgICBXS1ByZWZlcmVuY2VzU2V0V2ViQXV0aGVudGljYXRpb25FbmFi
bGVkKHByZWZlcmVuY2VzLCBvcHRpb25zLmVuYWJsZVdlYkF1dGhlbnRpY2F0aW9uKCkpOwotICAg
IFdLUHJlZmVyZW5jZXNTZXRXZWJBdXRoZW50aWNhdGlvbkxvY2FsQXV0aGVudGljYXRvckVuYWJs
ZWQocHJlZmVyZW5jZXMsIG9wdGlvbnMuZW5hYmxlV2ViQXV0aGVudGljYXRpb25Mb2NhbEF1dGhl
bnRpY2F0b3IoKSk7Ci0gICAgV0tQcmVmZXJlbmNlc1NldEFsbG93Q3Jvc3NPcmlnaW5TdWJyZXNv
dXJjZXNUb0Fza0ZvckNyZWRlbnRpYWxzKHByZWZlcmVuY2VzLCBvcHRpb25zLmFsbG93Q3Jvc3NP
cmlnaW5TdWJyZXNvdXJjZXNUb0Fza0ZvckNyZWRlbnRpYWxzKCkpOwotICAgIFdLUHJlZmVyZW5j
ZXNTZXRDb2xvckZpbHRlckVuYWJsZWQocHJlZmVyZW5jZXMsIG9wdGlvbnMuZW5hYmxlQ29sb3JG
aWx0ZXIoKSk7Ci0gICAgV0tQcmVmZXJlbmNlc1NldFB1bmNoT3V0V2hpdGVCYWNrZ3JvdW5kc0lu
RGFya01vZGUocHJlZmVyZW5jZXMsIG9wdGlvbnMucHVuY2hPdXRXaGl0ZUJhY2tncm91bmRzSW5E
YXJrTW9kZSgpKTsKLSAgICBXS1ByZWZlcmVuY2VzU2V0UGFnZUNhY2hlRW5hYmxlZChwcmVmZXJl
bmNlcywgb3B0aW9ucy5lbmFibGVCYWNrRm9yd2FyZENhY2hlKCkpOwotCiAgICAgV0tQcmVmZXJl
bmNlc1NldERlZmF1bHRUZXh0RW5jb2RpbmdOYW1lKHByZWZlcmVuY2VzLCB0b1dLKCJJU08tODg1
OS0xIikuZ2V0KCkpOwotCiAgICAgV0tQcmVmZXJlbmNlc1NldE1pbmltdW1Gb250U2l6ZShwcmVm
ZXJlbmNlcywgMCk7CiAgICAgV0tQcmVmZXJlbmNlc1NldFN0YW5kYXJkRm9udEZhbWlseShwcmVm
ZXJlbmNlcywgdG9XSygiVGltZXMiKS5nZXQoKSk7CiAgICAgV0tQcmVmZXJlbmNlc1NldEN1cnNp
dmVGb250RmFtaWx5KHByZWZlcmVuY2VzLCB0b1dLKCJBcHBsZSBDaGFuY2VyeSIpLmdldCgpKTsK
QEAgLTkyMiwyMSArODkxLDEzIEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OnJlc2V0UHJlZmVyZW5j
ZXNUb0MKICAgICBXS1ByZWZlcmVuY2VzU2V0U2Fuc1NlcmlmRm9udEZhbWlseShwcmVmZXJlbmNl
cywgdG9XSygiSGVsdmV0aWNhIikuZ2V0KCkpOwogICAgIFdLUHJlZmVyZW5jZXNTZXRTZXJpZkZv
bnRGYW1pbHkocHJlZmVyZW5jZXMsIHRvV0soIlRpbWVzIikuZ2V0KCkpOwogICAgIFdLUHJlZmVy
ZW5jZXNTZXRBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZChwcmVmZXJlbmNlcywgZmFs
c2UpOwotI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpCiAgICAgV0tQcmVmZXJlbmNlc1NldE1lZGlh
U291cmNlRW5hYmxlZChwcmVmZXJlbmNlcywgdHJ1ZSk7CiAgICAgV0tQcmVmZXJlbmNlc1NldFNv
dXJjZUJ1ZmZlckNoYW5nZVR5cGVFbmFibGVkKHByZWZlcmVuY2VzLCB0cnVlKTsKLSNlbmRpZgog
ICAgIFdLUHJlZmVyZW5jZXNTZXRIaWdobGlnaHRBUElFbmFibGVkKHByZWZlcmVuY2VzLCB0cnVl
KTsKLQogICAgIFdLUHJlZmVyZW5jZXNTZXRIaWRkZW5QYWdlRE9NVGltZXJUaHJvdHRsaW5nRW5h
YmxlZChwcmVmZXJlbmNlcywgZmFsc2UpOwogICAgIFdLUHJlZmVyZW5jZXNTZXRIaWRkZW5QYWdl
Q1NTQW5pbWF0aW9uU3VzcGVuc2lvbkVuYWJsZWQocHJlZmVyZW5jZXMsIGZhbHNlKTsKLQotICAg
IFdLUHJlZmVyZW5jZXNTZXRBY2NlbGVyYXRlZERyYXdpbmdFbmFibGVkKHByZWZlcmVuY2VzLCBt
X3Nob3VsZFVzZUFjY2VsZXJhdGVkRHJhd2luZyB8fCBvcHRpb25zLnVzZUFjY2VsZXJhdGVkRHJh
d2luZygpKTsKLSAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIGJlIHRlc3RpbmcgdGhlIGRlZmF1bHQu
Ci0gICAgV0tQcmVmZXJlbmNlc1NldFN0b3JhZ2VCbG9ja2luZ1BvbGljeShwcmVmZXJlbmNlcywg
a1dLQWxsb3dBbGxTdG9yYWdlKTsKLQorICAgIFdLUHJlZmVyZW5jZXNTZXRTdG9yYWdlQmxvY2tp
bmdQb2xpY3kocHJlZmVyZW5jZXMsIGtXS0FsbG93QWxsU3RvcmFnZSk7IC8vIEZJWE1FOiBXZSBz
aG91bGQgYmUgdGVzdGluZyB0aGUgZGVmYXVsdC4KICAgICBXS1ByZWZlcmVuY2VzU2V0SXNOU1VS
TFNlc3Npb25XZWJTb2NrZXRFbmFibGVkKHByZWZlcmVuY2VzLCBmYWxzZSk7Ci0KICAgICBXS1By
ZWZlcmVuY2VzU2V0RmV0Y2hBUElLZWVwQWxpdmVFbmFibGVkKHByZWZlcmVuY2VzLCB0cnVlKTsK
ICAgICBXS1ByZWZlcmVuY2VzU2V0TWVkaWFQcmVsb2FkaW5nRW5hYmxlZChwcmVmZXJlbmNlcywg
dHJ1ZSk7CiAgICAgV0tQcmVmZXJlbmNlc1NldEV4cG9zZVNwZWFrZXJzRW5hYmxlZChwcmVmZXJl
bmNlcywgdHJ1ZSk7CkBAIC05NDUsMzggKzkwNiwyMiBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpy
ZXNldFByZWZlcmVuY2VzVG9DCiAgICAgV0tQcmVmZXJlbmNlc1NldFJlbW90ZVBsYXliYWNrRW5h
YmxlZChwcmVmZXJlbmNlcywgdHJ1ZSk7CiAgICAgV0tQcmVmZXJlbmNlc1NldEJlYWNvbkFQSUVu
YWJsZWQocHJlZmVyZW5jZXMsIHRydWUpOwogICAgIFdLUHJlZmVyZW5jZXNTZXREaXJlY3RvcnlV
cGxvYWRFbmFibGVkKHByZWZlcmVuY2VzLCB0cnVlKTsKLQotICAgIFdLSFRUUENvb2tpZVN0b3Jl
RGVsZXRlQWxsQ29va2llcyhXS1dlYnNpdGVEYXRhU3RvcmVHZXRIVFRQQ29va2llU3RvcmUod2Vi
c2l0ZURhdGFTdG9yZSgpKSwgbnVsbHB0ciwgbnVsbHB0cik7Ci0KICAgICBXS1ByZWZlcmVuY2Vz
U2V0TW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxlZChwcmVmZXJlbmNlcywgdHJ1ZSk7Ci0gICAgCiAg
ICAgV0tQcmVmZXJlbmNlc1NldExhcmdlSW1hZ2VBc3luY0RlY29kaW5nRW5hYmxlZChwcmVmZXJl
bmNlcywgZmFsc2UpOwotCi0gICAgV0tQcmVmZXJlbmNlc1NldEluc3BlY3RvckFkZGl0aW9uc0Vu
YWJsZWQocHJlZmVyZW5jZXMsIG9wdGlvbnMuZW5hYmxlSW5zcGVjdG9yQWRkaXRpb25zKCkpOwot
CiAgICAgV0tQcmVmZXJlbmNlc1NldFN0b3JhZ2VBY2Nlc3NBUElFbmFibGVkKHByZWZlcmVuY2Vz
LCB0cnVlKTsKLSAgICAKICAgICBXS1ByZWZlcmVuY2VzU2V0QWNjZXNzaWJpbGl0eU9iamVjdE1v
ZGVsRW5hYmxlZChwcmVmZXJlbmNlcywgdHJ1ZSk7CiAgICAgV0tQcmVmZXJlbmNlc1NldENTU09N
Vmlld1Njcm9sbGluZ0FQSUVuYWJsZWQocHJlZmVyZW5jZXMsIHRydWUpOwogICAgIFdLUHJlZmVy
ZW5jZXNTZXRNZWRpYUNhcGFiaWxpdGllc0VuYWJsZWQocHJlZmVyZW5jZXMsIHRydWUpOwotCiAg
ICAgV0tQcmVmZXJlbmNlc1NldFJlc3RyaWN0ZWRIVFRQUmVzcG9uc2VBY2Nlc3MocHJlZmVyZW5j
ZXMsIHRydWUpOwotCiAgICAgV0tQcmVmZXJlbmNlc1NldFNlcnZlclRpbWluZ0VuYWJsZWQocHJl
ZmVyZW5jZXMsIHRydWUpOwotCiAgICAgV0tQcmVmZXJlbmNlc1NldFdlYlNRTERpc2FibGVkKHBy
ZWZlcmVuY2VzLCBmYWxzZSk7Ci0KICAgICBXS1ByZWZlcmVuY2VzU2V0TWVkaWFQbGF5YmFja1Jl
cXVpcmVzVXNlckdlc3R1cmUocHJlZmVyZW5jZXMsIGZhbHNlKTsKICAgICBXS1ByZWZlcmVuY2Vz
U2V0VmlkZW9QbGF5YmFja1JlcXVpcmVzVXNlckdlc3R1cmUocHJlZmVyZW5jZXMsIGZhbHNlKTsK
ICAgICBXS1ByZWZlcmVuY2VzU2V0QXVkaW9QbGF5YmFja1JlcXVpcmVzVXNlckdlc3R1cmUocHJl
ZmVyZW5jZXMsIGZhbHNlKTsKLSAgICBXS1ByZWZlcmVuY2VzU2V0SW50ZXJuYWxEZWJ1Z0ZlYXR1
cmVGb3JLZXkocHJlZmVyZW5jZXMsIGZhbHNlLCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmlu
ZygiU3BlYWtlclNlbGVjdGlvblJlcXVpcmVzVXNlckdlc3R1cmUiKSk7Ci0KLSAgICBXS1ByZWZl
cmVuY2VzU2V0U2hvdWxkVXNlU2VydmljZVdvcmtlclNob3J0VGltZW91dChwcmVmZXJlbmNlcywg
b3B0aW9ucy51c2VTZXJ2aWNlV29ya2VyU2hvcnRUaW1lb3V0KCkpOwotCiAjaWYgRU5BQkxFKEFD
Q0VTU0lCSUxJVFlfSVNPTEFURURfVFJFRSkKICAgICBXS1ByZWZlcmVuY2VzU2V0SXNBY2Nlc3Np
YmlsaXR5SXNvbGF0ZWRUcmVlRW5hYmxlZChwcmVmZXJlbmNlcywgYWNjZXNzaWJpbGl0eUlzb2xh
dGVkVHJlZU1vZGUoKSk7CiAjZW5kaWYKLSAgICAKKwogICAgIHBsYXRmb3JtUmVzZXRQcmVmZXJl
bmNlc1RvQ29uc2lzdGVudFZhbHVlcygpOwogfQogCkBAIC0xMDA5LDIzICs5NTQsMTkgQEAgYm9v
bCBUZXN0Q29udHJvbGxlcjo6cmVzZXRTdGF0ZVRvQ29uc2lzdAogICAgIGlmICghanNjT3B0aW9u
cy5lbXB0eSgpKQogICAgICAgICBzZXRWYWx1ZShyZXNldE1lc3NhZ2VCb2R5LCAiSlNDT3B0aW9u
cyIsIGpzY09wdGlvbnMuY19zdHIoKSk7CiAKLSNpZiBQTEFURk9STShDT0NPQSkKLSAgICBXZWJD
b3JlVGVzdFN1cHBvcnQ6OnNldEFkZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVzRm9yVGVzdGlu
ZyhvcHRpb25zLmFkZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVzKCkuY19zdHIoKSk7Ci0jZW5k
aWYKLQogICAgIFdLUGFnZVBvc3RNZXNzYWdlVG9JbmplY3RlZEJ1bmRsZShUZXN0Q29udHJvbGxl
cjo6c2luZ2xldG9uKCkubWFpbldlYlZpZXcoKS0+cGFnZSgpLCB0b1dLKCJSZXNldCIpLmdldCgp
LCByZXNldE1lc3NhZ2VCb2R5LmdldCgpKTsKIAogICAgIFdLQ29udGV4dFNldFNob3VsZFVzZUZv
bnRTbW9vdGhpbmcoVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLmNvbnRleHQoKSwgZmFsc2Up
OwotCiAgICAgV0tDb250ZXh0U2V0Q2FjaGVNb2RlbChUZXN0Q29udHJvbGxlcjo6c2luZ2xldG9u
KCkuY29udGV4dCgpLCBrV0tDYWNoZU1vZGVsRG9jdW1lbnRCcm93c2VyKTsKIAogICAgIFdLV2Vi
c2l0ZURhdGFTdG9yZUNsZWFyQ2FjaGVkQ3JlZGVudGlhbHMod2Vic2l0ZURhdGFTdG9yZSgpKTsK
LQogICAgIFdLV2Vic2l0ZURhdGFTdG9yZVJlc2V0U2VydmljZVdvcmtlckZldGNoVGltZW91dEZv
clRlc3Rpbmcod2Vic2l0ZURhdGFTdG9yZSgpKTsKIAogICAgIFdLV2Vic2l0ZURhdGFTdG9yZVNl
dFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKHdlYnNpdGVEYXRhU3RvcmUoKSwgdHJ1ZSk7
CiAgICAgV0tXZWJzaXRlRGF0YVN0b3JlQ2xlYXJBbGxEZXZpY2VPcmllbnRhdGlvblBlcm1pc3Np
b25zKHdlYnNpdGVEYXRhU3RvcmUoKSk7CiAKKyAgICBXS0hUVFBDb29raWVTdG9yZURlbGV0ZUFs
bENvb2tpZXMoV0tXZWJzaXRlRGF0YVN0b3JlR2V0SFRUUENvb2tpZVN0b3JlKHdlYnNpdGVEYXRh
U3RvcmUoKSksIG51bGxwdHIsIG51bGxwdHIpOworCiAgICAgY2xlYXJJbmRleGVkRGF0YWJhc2Vz
KCk7CiAgICAgY2xlYXJMb2NhbFN0b3JhZ2UoKTsKIApAQCAtMTAzNSw3ICs5NzYsNiBAQCBib29s
IFRlc3RDb250cm9sbGVyOjpyZXNldFN0YXRlVG9Db25zaXN0CiAgICAgcmVzZXRRdW90YSgpOwog
CiAgICAgV0tDb250ZXh0Q2xlYXJDdXJyZW50TW9kaWZpZXJTdGF0ZUZvclRlc3RpbmcoVGVzdENv
bnRyb2xsZXI6OnNpbmdsZXRvbigpLmNvbnRleHQoKSk7Ci0KICAgICBXS0NvbnRleHRTZXRVc2VT
ZXBhcmF0ZVNlcnZpY2VXb3JrZXJQcm9jZXNzKFRlc3RDb250cm9sbGVyOjpzaW5nbGV0b24oKS5j
b250ZXh0KCksIGZhbHNlKTsKIAogICAgIFdLUGFnZVNldE1vY2tDYW1lcmFPcmllbnRhdGlvbiht
X21haW5XZWJWaWV3LT5wYWdlKCksIDApOwpAQCAtMTA1MSwxMCArOTkxLDYgQEAgYm9vbCBUZXN0
Q29udHJvbGxlcjo6cmVzZXRTdGF0ZVRvQ29uc2lzdAogICAgIC8vIHNvbWUgb3RoZXIgY29kZSBk
b2luZyB0aGlzLCBpdCBzaG91bGQgcHJvYmFibHkgYmUgcmVzcG9uc2libGUgZm9yIGNsZWFudXAg
dG9vLgogICAgIHJlc2V0UHJlZmVyZW5jZXNUb0NvbnNpc3RlbnRWYWx1ZXMob3B0aW9ucyk7CiAK
LSNpZiBQTEFURk9STShHVEspCi0gICAgV0tUZXh0Q2hlY2tlckNvbnRpbnVvdXNTcGVsbENoZWNr
aW5nRW5hYmxlZFN0YXRlQ2hhbmdlZCh0cnVlKTsKLSNlbmRpZgotCiAgICAgLy8gTWFrZSBzdXJl
IHRoZSB2aWV3IGlzIGluIHRoZSB3aW5kb3cgKGEgdGVzdCBjYW4gdW5wYXJlbnQgaXQpLgogICAg
IG1fbWFpbldlYlZpZXctPmFkZFRvV2luZG93KCk7CiAKQEAgLTI4MzQsMTEgKzI3NzAsNiBAQCBX
S0NvbnRleHRSZWYgVGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtQWRqCiAgICAgcmV0dXJuIGNvbnRl
eHQ7CiB9CiAKLWJvb2wgVGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtUmVzZXRTdGF0ZVRvQ29uc2lz
dGVudFZhbHVlcyhjb25zdCBUZXN0T3B0aW9ucyYpCi17Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0K
IHVuc2lnbmVkIFRlc3RDb250cm9sbGVyOjppbWFnZUNvdW50SW5HZW5lcmFsUGFzdGVib2FyZCgp
IGNvbnN0CiB7CiAgICAgcmV0dXJuIDA7CkluZGV4OiBUb29scy9XZWJLaXRUZXN0UnVubmVyL1Rl
c3RDb250cm9sbGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0
Q29udHJvbGxlci5oCShyZXZpc2lvbiAyNjgzMjMpCisrKyBUb29scy9XZWJLaXRUZXN0UnVubmVy
L1Rlc3RDb250cm9sbGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTM5NCw3ICszOTQsNiBAQCBwcml2
YXRlOgogCiAgICAgdm9pZCBlbnN1cmVWaWV3U3VwcG9ydHNPcHRpb25zRm9yVGVzdChjb25zdCBU
ZXN0SW52b2NhdGlvbiYpOwogICAgIFRlc3RPcHRpb25zIHRlc3RPcHRpb25zRm9yVGVzdChjb25z
dCBUZXN0Q29tbWFuZCYpIGNvbnN0OwotICAgIFRlc3RGZWF0dXJlcyBnbG9iYWxGZWF0dXJlRGVm
YXVsdHNGb3JUZXN0KGNvbnN0IFRlc3RDb21tYW5kJikgY29uc3Q7CiAgICAgVGVzdEZlYXR1cmVz
IHBsYXRmb3JtU3BlY2lmaWNGZWF0dXJlRGVmYXVsdHNGb3JUZXN0KGNvbnN0IFRlc3RDb21tYW5k
JikgY29uc3Q7CiAgICAgVGVzdEZlYXR1cmVzIHBsYXRmb3JtU3BlY2lmaWNGZWF0dXJlT3ZlcnJp
ZGVzRGVmYXVsdHNGb3JUZXN0KGNvbnN0IFRlc3RDb21tYW5kJikgY29uc3Q7CiAKQEAgLTU5Niw4
ICs1OTUsNiBAQCBwcml2YXRlOgogICAgIFN0cmluZyBtX3Vuc3VwcG9ydGVkUGx1Z2luTW9kZTsK
IAogICAgIGJvb2wgbV9mb3JjZUNvbXBsZXhUZXh0IHsgZmFsc2UgfTsKLSAgICBib29sIG1fc2hv
dWxkVXNlQWNjZWxlcmF0ZWREcmF3aW5nIHsgZmFsc2UgfTsKLSAgICAKICAgICBib29sIG1fc2hv
dWxkTG9nQ2FuQXV0aGVudGljYXRlQWdhaW5zdFByb3RlY3Rpb25TcGFjZSB7IGZhbHNlIH07CiAg
ICAgYm9vbCBtX3Nob3VsZExvZ0Rvd25sb2FkQ2FsbGJhY2tzIHsgZmFsc2UgfTsKICAgICBib29s
IG1fc2hvdWxkTG9nSGlzdG9yeUNsaWVudENhbGxiYWNrcyB7IGZhbHNlIH07CkluZGV4OiBUb29s
cy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RPcHRpb25zLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9X
ZWJLaXRUZXN0UnVubmVyL1Rlc3RPcHRpb25zLmNwcAkocmV2aXNpb24gMjY4MzIzKQorKysgVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0T3B0aW9ucy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEw
MSw1NCArMTAxLDUxIEBAIHZvaWQgbWVyZ2UoVGVzdEZlYXR1cmVzJiBiYXNlLCBUZXN0RmVhdHUK
IHN0YXRpYyBjb25zdCBzdGQ6OnVub3JkZXJlZF9tYXA8c3RkOjpzdHJpbmcsIGJvb2w+JiBib29s
RGVmYXVsdHNNYXAoKQogewogICAgIHN0YXRpYyBzdGQ6OnVub3JkZXJlZF9tYXA8c3RkOjpzdHJp
bmcsIGJvb2w+IG1hcCB7Ci0gICAgICAgIHsgInVzZVRocmVhZGVkU2Nyb2xsaW5nIiwgZmFsc2Ug
fSwKLSAgICAgICAgeyAidXNlQWNjZWxlcmF0ZWREcmF3aW5nIiwgZmFsc2UgfSwKLSAgICAgICAg
eyAidXNlUmVtb3RlTGF5ZXJUcmVlIiwgZmFsc2UgfSwKLSAgICAgICAgeyAic2hvdWxkU2hvd1dl
YlZpZXciLCBmYWxzZSB9LAotICAgICAgICB7ICJ1c2VGbGV4aWJsZVZpZXdwb3J0IiwgZmFsc2Ug
fSwKLSAgICAgICAgeyAidXNlRGF0YURldGVjdGlvbiIsIGZhbHNlIH0sCi0gICAgICAgIHsgInVz
ZU1vY2tTY3JvbGxiYXJzIiwgdHJ1ZSB9LAotICAgICAgICB7ICJuZWVkc1NpdGVTcGVjaWZpY1F1
aXJrcyIsIGZhbHNlIH0sCi0gICAgICAgIHsgImlnbm9yZXNWaWV3cG9ydFNjYWxlTGltaXRzIiwg
ZmFsc2UgfSwKLSAgICAgICAgeyAidXNlQ2hhcmFjdGVyU2VsZWN0aW9uR3JhbnVsYXJpdHkiLCBm
YWxzZSB9LAotICAgICAgICB7ICJlbmFibGVBdHRhY2htZW50RWxlbWVudCIsIGZhbHNlIH0sCi0g
ICAgICAgIHsgImVuYWJsZUludGVyc2VjdGlvbk9ic2VydmVyIiwgZmFsc2UgfSwKLSAgICAgICAg
eyAidXNlRXBoZW1lcmFsU2Vzc2lvbiIsIGZhbHNlIH0sCi0gICAgICAgIHsgImVuYWJsZU1lbnVJ
dGVtRWxlbWVudCIsIGZhbHNlIH0sCi0gICAgICAgIHsgImVuYWJsZUtleWdlbkVsZW1lbnQiLCBm
YWxzZSB9LAotICAgICAgICB7ICJlbmFibGVNb2Rlcm5NZWRpYUNvbnRyb2xzIiwgdHJ1ZSB9LAot
ICAgICAgICB7ICJlbmFibGVQb2ludGVyTG9jayIsIGZhbHNlIH0sCi0gICAgICAgIHsgImVuYWJs
ZVdlYkF1dGhlbnRpY2F0aW9uIiwgdHJ1ZSB9LAotICAgICAgICB7ICJlbmFibGVXZWJBdXRoZW50
aWNhdGlvbkxvY2FsQXV0aGVudGljYXRvciIsIHRydWUgfSwKLSAgICAgICAgeyAiZW5hYmxlSW5z
cGVjdG9yQWRkaXRpb25zIiwgZmFsc2UgfSwKLSAgICAgICAgeyAic2hvdWxkU2hvd1RvdWNoZXMi
LCBmYWxzZSB9LAotICAgICAgICB7ICJkdW1wSlNDb25zb2xlTG9nSW5TdGRFcnIiLCBmYWxzZSB9
LAogICAgICAgICB7ICJhbGxvd0Nyb3NzT3JpZ2luU3VicmVzb3VyY2VzVG9Bc2tGb3JDcmVkZW50
aWFscyIsIGZhbHNlIH0sCisgICAgICAgIHsgImFsbG93VG9wTmF2aWdhdGlvblRvRGF0YVVSTHMi
LCB0cnVlIH0sCisgICAgICAgIHsgImFsbG93c0xpbmtQcmV2aWV3IiwgdHJ1ZSB9LAogICAgICAg
ICB7ICJkb21QYXN0ZUFsbG93ZWQiLCB0cnVlIH0sCi0gICAgICAgIHsgImVuYWJsZUNvbG9yRmls
dGVyIiwgZmFsc2UgfSwKLSAgICAgICAgeyAicHVuY2hPdXRXaGl0ZUJhY2tncm91bmRzSW5EYXJr
TW9kZSIsIGZhbHNlIH0sCi0gICAgICAgIHsgInJ1blNpbmdseSIsIGZhbHNlIH0sCi0gICAgICAg
IHsgImNoZWNrRm9yV29ybGRMZWFrcyIsIGZhbHNlIH0sCi0gICAgICAgIHsgInNob3VsZElnbm9y
ZU1ldGFWaWV3cG9ydCIsIGZhbHNlIH0sCi0gICAgICAgIHsgInNwZWxsQ2hlY2tpbmdEb3RzIiwg
ZmFsc2UgfSwKLSAgICAgICAgeyAiZW5hYmxlU2VydmljZUNvbnRyb2xzIiwgZmFsc2UgfSwKKyAg
ICAgICAgeyAiZHVtcEpTQ29uc29sZUxvZ0luU3RkRXJyIiwgZmFsc2UgfSwKICAgICAgICAgeyAi
ZWRpdGFibGUiLCBmYWxzZSB9LAotICAgICAgICB7ICJzaG91bGRIYW5kbGVSdW5PcGVuUGFuZWwi
LCB0cnVlIH0sCi0gICAgICAgIHsgInNob3VsZFByZXNlbnRQb3BvdmVycyIsIHRydWUgfSwKICAg
ICAgICAgeyAiZW5hYmxlQXBwTmFwIiwgZmFsc2UgfSwKKyAgICAgICAgeyAiZW5hYmxlQXR0YWNo
bWVudEVsZW1lbnQiLCBmYWxzZSB9LAogICAgICAgICB7ICJlbmFibGVCYWNrRm9yd2FyZENhY2hl
IiwgZmFsc2UgfSwKLSAgICAgICAgeyAiYWxsb3dzTGlua1ByZXZpZXciLCB0cnVlIH0sCi0gICAg
ICAgIHsgImVuYWJsZUNhcHR1cmVWaWRlb0luVUlQcm9jZXNzIiwgZmFsc2UgfSwKLSAgICAgICAg
eyAiZW5hYmxlQ2FwdHVyZVZpZGVvSW5HUFVQcm9jZXNzIiwgZmFsc2UgfSwKLSAgICAgICAgeyAi
ZW5hYmxlQ2FwdHVyZUF1ZGlvSW5VSVByb2Nlc3MiLCBmYWxzZSB9LAogICAgICAgICB7ICJlbmFi
bGVDYXB0dXJlQXVkaW9JbkdQVVByb2Nlc3MiLCBmYWxzZSB9LAotICAgICAgICB7ICJhbGxvd1Rv
cE5hdmlnYXRpb25Ub0RhdGFVUkxzIiwgdHJ1ZSB9LAorICAgICAgICB7ICJlbmFibGVDYXB0dXJl
QXVkaW9JblVJUHJvY2VzcyIsIGZhbHNlIH0sCisgICAgICAgIHsgImVuYWJsZUNhcHR1cmVWaWRl
b0luR1BVUHJvY2VzcyIsIGZhbHNlIH0sCisgICAgICAgIHsgImVuYWJsZUNhcHR1cmVWaWRlb0lu
VUlQcm9jZXNzIiwgZmFsc2UgfSwKKyAgICAgICAgeyAiZW5hYmxlQ29sb3JGaWx0ZXIiLCBmYWxz
ZSB9LAogICAgICAgICB7ICJlbmFibGVJbkFwcEJyb3dzZXJQcml2YWN5IiwgZmFsc2UgfSwKLSAg
ICAgICAgeyAiaXNBcHBCb3VuZFdlYlZpZXciLCBmYWxzZSB9LAotICAgICAgICB7ICJpZ25vcmVT
eW5jaHJvbm91c01lc3NhZ2luZ1RpbWVvdXRzIiwgZmFsc2UgfSwKKyAgICAgICAgeyAiZW5hYmxl
SW5zcGVjdG9yQWRkaXRpb25zIiwgZmFsc2UgfSwKKyAgICAgICAgeyAiZW5hYmxlS2V5Z2VuRWxl
bWVudCIsIGZhbHNlIH0sCisgICAgICAgIHsgImVuYWJsZU1lbnVJdGVtRWxlbWVudCIsIGZhbHNl
IH0sCisgICAgICAgIHsgImVuYWJsZU1vZGVybk1lZGlhQ29udHJvbHMiLCB0cnVlIH0sCiAgICAg
ICAgIHsgImVuYWJsZVByb2Nlc3NTd2FwT25OYXZpZ2F0aW9uIiwgdHJ1ZSB9LAogICAgICAgICB7
ICJlbmFibGVQcm9jZXNzU3dhcE9uV2luZG93T3BlbiIsIGZhbHNlIH0sCi0gICAgICAgIHsgInVz
ZVNlcnZpY2VXb3JrZXJTaG9ydFRpbWVvdXQiLCBmYWxzZSB9CisgICAgICAgIHsgImVuYWJsZVNl
cnZpY2VDb250cm9scyIsIGZhbHNlIH0sCisgICAgICAgIHsgImVuYWJsZVdlYkF1dGhlbnRpY2F0
aW9uIiwgdHJ1ZSB9LAorICAgICAgICB7ICJlbmFibGVXZWJBdXRoZW50aWNhdGlvbkxvY2FsQXV0
aGVudGljYXRvciIsIHRydWUgfSwKKyAgICAgICAgeyAiaWdub3JlU3luY2hyb25vdXNNZXNzYWdp
bmdUaW1lb3V0cyIsIGZhbHNlIH0sCisgICAgICAgIHsgImlnbm9yZXNWaWV3cG9ydFNjYWxlTGlt
aXRzIiwgZmFsc2UgfSwKKyAgICAgICAgeyAiaXNBcHBCb3VuZFdlYlZpZXciLCBmYWxzZSB9LAor
ICAgICAgICB7ICJuZWVkc1NpdGVTcGVjaWZpY1F1aXJrcyIsIGZhbHNlIH0sCisgICAgICAgIHsg
InB1bmNoT3V0V2hpdGVCYWNrZ3JvdW5kc0luRGFya01vZGUiLCBmYWxzZSB9LAorICAgICAgICB7
ICJydW5TaW5nbHkiLCBmYWxzZSB9LAorICAgICAgICB7ICJzaG91bGRIYW5kbGVSdW5PcGVuUGFu
ZWwiLCB0cnVlIH0sCisgICAgICAgIHsgInNob3VsZElnbm9yZU1ldGFWaWV3cG9ydCIsIGZhbHNl
IH0sCisgICAgICAgIHsgInNob3VsZFByZXNlbnRQb3BvdmVycyIsIHRydWUgfSwKKyAgICAgICAg
eyAic2hvdWxkU2hvd1RvdWNoZXMiLCBmYWxzZSB9LAorICAgICAgICB7ICJzaG91bGRTaG93V2Vi
VmlldyIsIGZhbHNlIH0sCisgICAgICAgIHsgInNwZWxsQ2hlY2tpbmdEb3RzIiwgZmFsc2UgfSwK
KyAgICAgICAgeyAidXNlQWNjZWxlcmF0ZWREcmF3aW5nIiwgZmFsc2UgfSwKKyAgICAgICAgeyAi
dXNlQ2hhcmFjdGVyU2VsZWN0aW9uR3JhbnVsYXJpdHkiLCBmYWxzZSB9LAorICAgICAgICB7ICJ1
c2VEYXRhRGV0ZWN0aW9uIiwgZmFsc2UgfSwKKyAgICAgICAgeyAidXNlRXBoZW1lcmFsU2Vzc2lv
biIsIGZhbHNlIH0sCisgICAgICAgIHsgInVzZUZsZXhpYmxlVmlld3BvcnQiLCBmYWxzZSB9LAor
ICAgICAgICB7ICJ1c2VNb2NrU2Nyb2xsYmFycyIsIHRydWUgfSwKKyAgICAgICAgeyAidXNlUmVt
b3RlTGF5ZXJUcmVlIiwgZmFsc2UgfSwKKyAgICAgICAgeyAidXNlU2VydmljZVdvcmtlclNob3J0
VGltZW91dCIsIGZhbHNlIH0sCisgICAgICAgIHsgInVzZVRocmVhZGVkU2Nyb2xsaW5nIiwgZmFs
c2UgfSwKICAgICB9OwogICAgIHJldHVybiBtYXA7CiB9CkBAIC0xNTgsOCArMTU1LDggQEAgc3Rh
dGljIGNvbnN0IHN0ZDo6dW5vcmRlcmVkX21hcDxzdGQ6OnN0cgogICAgIHN0YXRpYyBzdGQ6OnVu
b3JkZXJlZF9tYXA8c3RkOjpzdHJpbmcsIGRvdWJsZT4gbWFwIHsKICAgICAgICAgeyAiY29udGVu
dEluc2V0LnRvcCIsIDAgfSwKICAgICAgICAgeyAiZGV2aWNlU2NhbGVGYWN0b3IiLCAxIH0sCisg
ICAgICAgIHsgInZpZXdIZWlnaHQiLCA2MDAgfSwKICAgICAgICAgeyAidmlld1dpZHRoIiwgODAw
IH0sCi0gICAgICAgIHsgInZpZXdIZWlnaHQiLCA2MDAgfQogICAgIH07CiAgICAgcmV0dXJuIG1h
cDsKIH0KQEAgLTE2NywxMiArMTY0LDEyIEBAIHN0YXRpYyBjb25zdCBzdGQ6OnVub3JkZXJlZF9t
YXA8c3RkOjpzdHIKIHN0YXRpYyBjb25zdCBzdGQ6OnVub3JkZXJlZF9tYXA8c3RkOjpzdHJpbmcs
IHN0ZDo6c3RyaW5nPiYgc3RyaW5nRGVmYXVsdHNNYXAoKQogewogICAgIHN0YXRpYyBzdGQ6OnVu
b3JkZXJlZF9tYXA8c3RkOjpzdHJpbmcsIHN0ZDo6c3RyaW5nPiBtYXAgeworICAgICAgICB7ICJh
ZGRpdGlvbmFsU3VwcG9ydGVkSW1hZ2VUeXBlcyIsIHsgfSB9LAorICAgICAgICB7ICJhcHBsaWNh
dGlvbkJ1bmRsZUlkZW50aWZpZXIiLCB7IH0gfSwKICAgICAgICAgeyAiYXBwbGljYXRpb25NYW5p
ZmVzdCIsIHsgfSB9LAorICAgICAgICB7ICJjb250ZW50TW9kZSIsIHsgfSB9LAogICAgICAgICB7
ICJqc2NPcHRpb25zIiwgeyB9IH0sCi0gICAgICAgIHsgImFkZGl0aW9uYWxTdXBwb3J0ZWRJbWFn
ZVR5cGVzIiwgeyB9IH0sCiAgICAgICAgIHsgInN0YW5kYWxvbmVXZWJBcHBsaWNhdGlvblVSTCIs
IHsgfSB9LAotICAgICAgICB7ICJjb250ZW50TW9kZSIsIHsgfSB9LAotICAgICAgICB7ICJhcHBs
aWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIiLCB7IH0gfQogICAgIH07CiAgICAgcmV0dXJuIG1hcDsK
IH0KQEAgLTE4MCw3ICsxNzcsNyBAQCBzdGF0aWMgY29uc3Qgc3RkOjp1bm9yZGVyZWRfbWFwPHN0
ZDo6c3RyCiBzdGF0aWMgY29uc3Qgc3RkOjp1bm9yZGVyZWRfbWFwPHN0ZDo6c3RyaW5nLCBzdGQ6
OnZlY3RvcjxzdGQ6OnN0cmluZz4+JiBzdHJpbmdWZWN0b3JEZWZhdWx0c01hcCgpCiB7CiAgICAg
c3RhdGljIHN0ZDo6dW5vcmRlcmVkX21hcDxzdGQ6OnN0cmluZywgc3RkOjp2ZWN0b3I8c3RkOjpz
dHJpbmc+PiBtYXAgewotICAgICAgICB7ICJsYW5ndWFnZSIsIHsgfSB9CisgICAgICAgIHsgImxh
bmd1YWdlIiwgeyB9IH0sCiAgICAgfTsKICAgICByZXR1cm4gbWFwOwogfQpAQCAtMTk4LDY1ICsx
OTUsNjIgQEAgZW51bSBjbGFzcyBLZXlUeXBlIDogdWludDhfdCB7CiBzdGF0aWMgY29uc3Qgc3Rk
Ojp1bm9yZGVyZWRfbWFwPHN0ZDo6c3RyaW5nLCBLZXlUeXBlPiYga2V5VHlwZU1hcCgpCiB7CiAg
ICAgc3RhdGljIHN0ZDo6dW5vcmRlcmVkX21hcDxzdGQ6OnN0cmluZywgS2V5VHlwZT4gbWFwIHsK
LSAgICAgICAgeyAidXNlVGhyZWFkZWRTY3JvbGxpbmciLCBLZXlUeXBlOjpCb29sIH0sCi0gICAg
ICAgIHsgInVzZUFjY2VsZXJhdGVkRHJhd2luZyIsIEtleVR5cGU6OkJvb2wgfSwKLSAgICAgICAg
eyAidXNlUmVtb3RlTGF5ZXJUcmVlIiwgS2V5VHlwZTo6Qm9vbCB9LAotICAgICAgICB7ICJzaG91
bGRTaG93V2ViVmlldyIsIEtleVR5cGU6OkJvb2wgfSwKLSAgICAgICAgeyAidXNlRmxleGlibGVW
aWV3cG9ydCIsIEtleVR5cGU6OkJvb2wgfSwKLSAgICAgICAgeyAidXNlRGF0YURldGVjdGlvbiIs
IEtleVR5cGU6OkJvb2wgfSwKLSAgICAgICAgeyAidXNlTW9ja1Njcm9sbGJhcnMiLCBLZXlUeXBl
OjpCb29sIH0sCi0gICAgICAgIHsgIm5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzIiwgS2V5VHlwZTo6
Qm9vbCB9LAotICAgICAgICB7ICJpZ25vcmVzVmlld3BvcnRTY2FsZUxpbWl0cyIsIEtleVR5cGU6
OkJvb2wgfSwKLSAgICAgICAgeyAidXNlQ2hhcmFjdGVyU2VsZWN0aW9uR3JhbnVsYXJpdHkiLCBL
ZXlUeXBlOjpCb29sIH0sCi0gICAgICAgIHsgImVuYWJsZUF0dGFjaG1lbnRFbGVtZW50IiwgS2V5
VHlwZTo6Qm9vbCB9LAotICAgICAgICB7ICJlbmFibGVJbnRlcnNlY3Rpb25PYnNlcnZlciIsIEtl
eVR5cGU6OkJvb2wgfSwKLSAgICAgICAgeyAidXNlRXBoZW1lcmFsU2Vzc2lvbiIsIEtleVR5cGU6
OkJvb2wgfSwKLSAgICAgICAgeyAiZW5hYmxlTWVudUl0ZW1FbGVtZW50IiwgS2V5VHlwZTo6Qm9v
bCB9LAotICAgICAgICB7ICJlbmFibGVLZXlnZW5FbGVtZW50IiwgS2V5VHlwZTo6Qm9vbCB9LAot
ICAgICAgICB7ICJlbmFibGVNb2Rlcm5NZWRpYUNvbnRyb2xzIiwgS2V5VHlwZTo6Qm9vbCB9LAot
ICAgICAgICB7ICJlbmFibGVQb2ludGVyTG9jayIsIEtleVR5cGU6OkJvb2wgfSwKLSAgICAgICAg
eyAiZW5hYmxlV2ViQXV0aGVudGljYXRpb24iLCBLZXlUeXBlOjpCb29sIH0sCi0gICAgICAgIHsg
ImVuYWJsZVdlYkF1dGhlbnRpY2F0aW9uTG9jYWxBdXRoZW50aWNhdG9yIiwgS2V5VHlwZTo6Qm9v
bCB9LAotICAgICAgICB7ICJlbmFibGVJbnNwZWN0b3JBZGRpdGlvbnMiLCBLZXlUeXBlOjpCb29s
IH0sCi0gICAgICAgIHsgInNob3VsZFNob3dUb3VjaGVzIiwgS2V5VHlwZTo6Qm9vbCB9LAotICAg
ICAgICB7ICJkdW1wSlNDb25zb2xlTG9nSW5TdGRFcnIiLCBLZXlUeXBlOjpCb29sIH0sCiAgICAg
ICAgIHsgImFsbG93Q3Jvc3NPcmlnaW5TdWJyZXNvdXJjZXNUb0Fza0ZvckNyZWRlbnRpYWxzIiwg
S2V5VHlwZTo6Qm9vbCB9LAorICAgICAgICB7ICJhbGxvd1RvcE5hdmlnYXRpb25Ub0RhdGFVUkxz
IiwgS2V5VHlwZTo6Qm9vbCB9LAorICAgICAgICB7ICJhbGxvd3NMaW5rUHJldmlldyIsIEtleVR5
cGU6OkJvb2wgfSwKICAgICAgICAgeyAiZG9tUGFzdGVBbGxvd2VkIiwgS2V5VHlwZTo6Qm9vbCB9
LAotICAgICAgICB7ICJlbmFibGVDb2xvckZpbHRlciIsIEtleVR5cGU6OkJvb2wgfSwKLSAgICAg
ICAgeyAicHVuY2hPdXRXaGl0ZUJhY2tncm91bmRzSW5EYXJrTW9kZSIsIEtleVR5cGU6OkJvb2wg
fSwKLSAgICAgICAgeyAicnVuU2luZ2x5IiwgS2V5VHlwZTo6Qm9vbCB9LAotICAgICAgICB7ICJj
aGVja0ZvcldvcmxkTGVha3MiLCBLZXlUeXBlOjpCb29sIH0sCi0gICAgICAgIHsgInNob3VsZEln
bm9yZU1ldGFWaWV3cG9ydCIsIEtleVR5cGU6OkJvb2wgfSwKLSAgICAgICAgeyAic3BlbGxDaGVj
a2luZ0RvdHMiLCBLZXlUeXBlOjpCb29sIH0sCi0gICAgICAgIHsgImVuYWJsZVNlcnZpY2VDb250
cm9scyIsIEtleVR5cGU6OkJvb2wgfSwKKyAgICAgICAgeyAiZHVtcEpTQ29uc29sZUxvZ0luU3Rk
RXJyIiwgS2V5VHlwZTo6Qm9vbCB9LAogICAgICAgICB7ICJlZGl0YWJsZSIsIEtleVR5cGU6OkJv
b2wgfSwKLSAgICAgICAgeyAic2hvdWxkSGFuZGxlUnVuT3BlblBhbmVsIiwgS2V5VHlwZTo6Qm9v
bCB9LAotICAgICAgICB7ICJzaG91bGRQcmVzZW50UG9wb3ZlcnMiLCBLZXlUeXBlOjpCb29sIH0s
CiAgICAgICAgIHsgImVuYWJsZUFwcE5hcCIsIEtleVR5cGU6OkJvb2wgfSwKKyAgICAgICAgeyAi
ZW5hYmxlQXR0YWNobWVudEVsZW1lbnQiLCBLZXlUeXBlOjpCb29sIH0sCiAgICAgICAgIHsgImVu
YWJsZUJhY2tGb3J3YXJkQ2FjaGUiLCBLZXlUeXBlOjpCb29sIH0sCi0gICAgICAgIHsgImFsbG93
c0xpbmtQcmV2aWV3IiwgS2V5VHlwZTo6Qm9vbCB9LAotICAgICAgICB7ICJlbmFibGVDYXB0dXJl
VmlkZW9JblVJUHJvY2VzcyIsIEtleVR5cGU6OkJvb2wgfSwKLSAgICAgICAgeyAiZW5hYmxlQ2Fw
dHVyZVZpZGVvSW5HUFVQcm9jZXNzIiwgS2V5VHlwZTo6Qm9vbCB9LAotICAgICAgICB7ICJlbmFi
bGVDYXB0dXJlQXVkaW9JblVJUHJvY2VzcyIsIEtleVR5cGU6OkJvb2wgfSwKICAgICAgICAgeyAi
ZW5hYmxlQ2FwdHVyZUF1ZGlvSW5HUFVQcm9jZXNzIiwgS2V5VHlwZTo6Qm9vbCB9LAotICAgICAg
ICB7ICJhbGxvd1RvcE5hdmlnYXRpb25Ub0RhdGFVUkxzIiwgS2V5VHlwZTo6Qm9vbCB9LAorICAg
ICAgICB7ICJlbmFibGVDYXB0dXJlQXVkaW9JblVJUHJvY2VzcyIsIEtleVR5cGU6OkJvb2wgfSwK
KyAgICAgICAgeyAiZW5hYmxlQ2FwdHVyZVZpZGVvSW5HUFVQcm9jZXNzIiwgS2V5VHlwZTo6Qm9v
bCB9LAorICAgICAgICB7ICJlbmFibGVDYXB0dXJlVmlkZW9JblVJUHJvY2VzcyIsIEtleVR5cGU6
OkJvb2wgfSwKKyAgICAgICAgeyAiZW5hYmxlQ29sb3JGaWx0ZXIiLCBLZXlUeXBlOjpCb29sIH0s
CiAgICAgICAgIHsgImVuYWJsZUluQXBwQnJvd3NlclByaXZhY3kiLCBLZXlUeXBlOjpCb29sIH0s
Ci0gICAgICAgIHsgImlzQXBwQm91bmRXZWJWaWV3IiwgS2V5VHlwZTo6Qm9vbCB9LAotICAgICAg
ICB7ICJpZ25vcmVTeW5jaHJvbm91c01lc3NhZ2luZ1RpbWVvdXRzIiwgS2V5VHlwZTo6Qm9vbCB9
LAorICAgICAgICB7ICJlbmFibGVJbnNwZWN0b3JBZGRpdGlvbnMiLCBLZXlUeXBlOjpCb29sIH0s
CisgICAgICAgIHsgImVuYWJsZUtleWdlbkVsZW1lbnQiLCBLZXlUeXBlOjpCb29sIH0sCisgICAg
ICAgIHsgImVuYWJsZU1lbnVJdGVtRWxlbWVudCIsIEtleVR5cGU6OkJvb2wgfSwKKyAgICAgICAg
eyAiZW5hYmxlTW9kZXJuTWVkaWFDb250cm9scyIsIEtleVR5cGU6OkJvb2wgfSwKICAgICAgICAg
eyAiZW5hYmxlUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24iLCBLZXlUeXBlOjpCb29sIH0sCiAgICAg
ICAgIHsgImVuYWJsZVByb2Nlc3NTd2FwT25XaW5kb3dPcGVuIiwgS2V5VHlwZTo6Qm9vbCB9LAor
ICAgICAgICB7ICJlbmFibGVTZXJ2aWNlQ29udHJvbHMiLCBLZXlUeXBlOjpCb29sIH0sCisgICAg
ICAgIHsgImVuYWJsZVdlYkF1dGhlbnRpY2F0aW9uIiwgS2V5VHlwZTo6Qm9vbCB9LAorICAgICAg
ICB7ICJlbmFibGVXZWJBdXRoZW50aWNhdGlvbkxvY2FsQXV0aGVudGljYXRvciIsIEtleVR5cGU6
OkJvb2wgfSwKKyAgICAgICAgeyAiaWdub3JlU3luY2hyb25vdXNNZXNzYWdpbmdUaW1lb3V0cyIs
IEtleVR5cGU6OkJvb2wgfSwKKyAgICAgICAgeyAiaWdub3Jlc1ZpZXdwb3J0U2NhbGVMaW1pdHMi
LCBLZXlUeXBlOjpCb29sIH0sCisgICAgICAgIHsgImlzQXBwQm91bmRXZWJWaWV3IiwgS2V5VHlw
ZTo6Qm9vbCB9LAorICAgICAgICB7ICJuZWVkc1NpdGVTcGVjaWZpY1F1aXJrcyIsIEtleVR5cGU6
OkJvb2wgfSwKKyAgICAgICAgeyAicHVuY2hPdXRXaGl0ZUJhY2tncm91bmRzSW5EYXJrTW9kZSIs
IEtleVR5cGU6OkJvb2wgfSwKKyAgICAgICAgeyAicnVuU2luZ2x5IiwgS2V5VHlwZTo6Qm9vbCB9
LAorICAgICAgICB7ICJzaG91bGRIYW5kbGVSdW5PcGVuUGFuZWwiLCBLZXlUeXBlOjpCb29sIH0s
CisgICAgICAgIHsgInNob3VsZElnbm9yZU1ldGFWaWV3cG9ydCIsIEtleVR5cGU6OkJvb2wgfSwK
KyAgICAgICAgeyAic2hvdWxkUHJlc2VudFBvcG92ZXJzIiwgS2V5VHlwZTo6Qm9vbCB9LAorICAg
ICAgICB7ICJzaG91bGRTaG93VG91Y2hlcyIsIEtleVR5cGU6OkJvb2wgfSwKKyAgICAgICAgeyAi
c2hvdWxkU2hvd1dlYlZpZXciLCBLZXlUeXBlOjpCb29sIH0sCisgICAgICAgIHsgInNwZWxsQ2hl
Y2tpbmdEb3RzIiwgS2V5VHlwZTo6Qm9vbCB9LAorICAgICAgICB7ICJ1c2VBY2NlbGVyYXRlZERy
YXdpbmciLCBLZXlUeXBlOjpCb29sIH0sCisgICAgICAgIHsgInVzZUNoYXJhY3RlclNlbGVjdGlv
bkdyYW51bGFyaXR5IiwgS2V5VHlwZTo6Qm9vbCB9LAorICAgICAgICB7ICJ1c2VEYXRhRGV0ZWN0
aW9uIiwgS2V5VHlwZTo6Qm9vbCB9LAorICAgICAgICB7ICJ1c2VFcGhlbWVyYWxTZXNzaW9uIiwg
S2V5VHlwZTo6Qm9vbCB9LAorICAgICAgICB7ICJ1c2VGbGV4aWJsZVZpZXdwb3J0IiwgS2V5VHlw
ZTo6Qm9vbCB9LAorICAgICAgICB7ICJ1c2VNb2NrU2Nyb2xsYmFycyIsIEtleVR5cGU6OkJvb2wg
fSwKKyAgICAgICAgeyAidXNlUmVtb3RlTGF5ZXJUcmVlIiwgS2V5VHlwZTo6Qm9vbCB9LAogICAg
ICAgICB7ICJ1c2VTZXJ2aWNlV29ya2VyU2hvcnRUaW1lb3V0IiwgS2V5VHlwZTo6Qm9vbCB9LAor
ICAgICAgICB7ICJ1c2VUaHJlYWRlZFNjcm9sbGluZyIsIEtleVR5cGU6OkJvb2wgfSwKICAgICAK
ICAgICAgICAgeyAiY29udGVudEluc2V0LnRvcCIsIEtleVR5cGU6OkRvdWJsZSB9LAogICAgICAg
ICB7ICJkZXZpY2VTY2FsZUZhY3RvciIsIEtleVR5cGU6OkRvdWJsZSB9LAotICAgICAgICB7ICJ2
aWV3V2lkdGgiLCBLZXlUeXBlOjpEb3VibGUgfSwKICAgICAgICAgeyAidmlld0hlaWdodCIsIEtl
eVR5cGU6OkRvdWJsZSB9LAorICAgICAgICB7ICJ2aWV3V2lkdGgiLCBLZXlUeXBlOjpEb3VibGUg
fSwKIAotICAgICAgICB7ICJqc2NPcHRpb25zIiwgS2V5VHlwZTo6U3RyaW5nIH0sCiAgICAgICAg
IHsgImFkZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVzIiwgS2V5VHlwZTo6U3RyaW5nIH0sCi0g
ICAgICAgIHsgImNvbnRlbnRNb2RlIiwgS2V5VHlwZTo6U3RyaW5nIH0sCiAgICAgICAgIHsgImFw
cGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllciIsIEtleVR5cGU6OlN0cmluZyB9LAogICAgICAgICB7
ICJhcHBsaWNhdGlvbk1hbmlmZXN0IiwgS2V5VHlwZTo6U3RyaW5nUmVsYXRpdmVQYXRoIH0sCisg
ICAgICAgIHsgImNvbnRlbnRNb2RlIiwgS2V5VHlwZTo6U3RyaW5nIH0sCisgICAgICAgIHsgImpz
Y09wdGlvbnMiLCBLZXlUeXBlOjpTdHJpbmcgfSwKICAgICAgICAgeyAic3RhbmRhbG9uZVdlYkFw
cGxpY2F0aW9uVVJMIiwgS2V5VHlwZTo6U3RyaW5nVVJMIH0sCiAKICAgICAgICAgeyAibGFuZ3Vh
Z2UiLCBLZXlUeXBlOjpTdHJpbmdWZWN0b3IgfSwKQEAgLTQ4Niw2ICs0ODAsNDggQEAgYm9vbCBU
ZXN0T3B0aW9uczo6aGFzU2FtZUluaXRpYWxpemF0aW9uTwogICAgIHJldHVybiB0cnVlOwogfQog
CisjZGVmaW5lIEZPUl9FQUNIX0JPT0xfV0tfUFJFRkVSRU5DRShtYWNybykgXAorICAgIG1hY3Jv
KGVuYWJsZUNhcHR1cmVWaWRlb0luVUlQcm9jZXNzLCBjYXB0dXJlVmlkZW9JblVJUHJvY2Vzc0Vu
YWJsZWQpIFwKKyAgICBtYWNybyhlbmFibGVDYXB0dXJlVmlkZW9JbkdQVVByb2Nlc3MsIGNhcHR1
cmVWaWRlb0luR1BVUHJvY2Vzc0VuYWJsZWQpIFwKKyAgICBtYWNybyhlbmFibGVDYXB0dXJlQXVk
aW9JblVJUHJvY2VzcywgY2FwdHVyZUF1ZGlvSW5VSVByb2Nlc3NFbmFibGVkKSBcCisgICAgbWFj
cm8oZW5hYmxlQ2FwdHVyZUF1ZGlvSW5HUFVQcm9jZXNzLCBjYXB0dXJlQXVkaW9JbkdQVVByb2Nl
c3NFbmFibGVkKSBcCisgICAgbWFjcm8odXNlQWNjZWxlcmF0ZWREcmF3aW5nLCBhY2NlbGVyYXRl
ZERyYXdpbmdFbmFibGVkKSBcCisgICAgbWFjcm8odXNlTW9ja1Njcm9sbGJhcnMsIG1vY2tTY3Jv
bGxiYXJzRW5hYmxlZCkgXAorICAgIG1hY3JvKG5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzLCBuZWVk
c1NpdGVTcGVjaWZpY1F1aXJrcykgXAorICAgIG1hY3JvKGVuYWJsZUF0dGFjaG1lbnRFbGVtZW50
LCBhdHRhY2htZW50RWxlbWVudEVuYWJsZWQpIFwKKyAgICBtYWNybyhlbmFibGVNZW51SXRlbUVs
ZW1lbnQsIG1lbnVJdGVtRWxlbWVudEVuYWJsZWQpIFwKKyAgICBtYWNybyhlbmFibGVLZXlnZW5F
bGVtZW50LCBrZXlnZW5FbGVtZW50RW5hYmxlZCkgXAorICAgIG1hY3JvKGVuYWJsZU1vZGVybk1l
ZGlhQ29udHJvbHMsIG1vZGVybk1lZGlhQ29udHJvbHNFbmFibGVkKSBcCisgICAgbWFjcm8oZW5h
YmxlV2ViQXV0aGVudGljYXRpb24sIHdlYkF1dGhlbnRpY2F0aW9uRW5hYmxlZCkgXAorICAgIG1h
Y3JvKGVuYWJsZVdlYkF1dGhlbnRpY2F0aW9uTG9jYWxBdXRoZW50aWNhdG9yLCB3ZWJBdXRoZW50
aWNhdGlvbkxvY2FsQXV0aGVudGljYXRvckVuYWJsZWQpIFwKKyAgICBtYWNybyhlbmFibGVJbnNw
ZWN0b3JBZGRpdGlvbnMsIGluc3BlY3RvckFkZGl0aW9uc0VuYWJsZWQpIFwKKyAgICBtYWNybyhh
bGxvd0Nyb3NzT3JpZ2luU3VicmVzb3VyY2VzVG9Bc2tGb3JDcmVkZW50aWFscywgYWxsb3dDcm9z
c09yaWdpblN1YnJlc291cmNlc1RvQXNrRm9yQ3JlZGVudGlhbHMpIFwKKyAgICBtYWNybyhkb21Q
YXN0ZUFsbG93ZWQsIGRvbVBhc3RlQWxsb3dlZCkgXAorICAgIG1hY3JvKGVuYWJsZUNvbG9yRmls
dGVyLCBjb2xvckZpbHRlckVuYWJsZWQpIFwKKyAgICBtYWNybyhwdW5jaE91dFdoaXRlQmFja2dy
b3VuZHNJbkRhcmtNb2RlLCBwdW5jaE91dFdoaXRlQmFja2dyb3VuZHNJbkRhcmtNb2RlKSBcCisg
ICAgbWFjcm8oc2hvdWxkSWdub3JlTWV0YVZpZXdwb3J0LCBzaG91bGRJZ25vcmVNZXRhVmlld3Bv
cnQpIFwKKyAgICBtYWNybyhlbmFibGVBcHBOYXAsIHBhZ2VWaXNpYmlsaXR5QmFzZWRQcm9jZXNz
U3VwcHJlc3Npb25FbmFibGVkKSBcCisgICAgbWFjcm8oZW5hYmxlQmFja0ZvcndhcmRDYWNoZSwg
dXNlc0JhY2tGb3J3YXJkQ2FjaGUpIFwKKyAgICBtYWNybyhlbmFibGVTZXJ2aWNlQ29udHJvbHMs
IHNlcnZpY2VDb250cm9sc0VuYWJsZWQpIFwKKyAgICBtYWNybyhhbGxvd1RvcE5hdmlnYXRpb25U
b0RhdGFVUkxzLCBhbGxvd1RvcE5hdmlnYXRpb25Ub0RhdGFVUkxzKSBcCisgICAgbWFjcm8odXNl
U2VydmljZVdvcmtlclNob3J0VGltZW91dCwgc2hvdWxkVXNlU2VydmljZVdvcmtlclNob3J0VGlt
ZW91dCkgXAorXAorCitzdGQ6OnZlY3RvcjxzdGQ6OnBhaXI8c3RkOjpzdHJpbmcsIGJvb2w+PiBU
ZXN0T3B0aW9uczo6Ym9vbFdLUHJlZmVyZW5jZXMoKSBjb25zdAoreworICAgIHN0ZDo6dmVjdG9y
PHN0ZDo6cGFpcjxzdGQ6OnN0cmluZywgYm9vbD4+IHJlc3VsdDsKKworI2RlZmluZSBBRERfVkFM
VUUodGVzdE9wdGlvbnNLZXksIHByZWZlcmVuY2VzS2V5KSBcCisgICAgcmVzdWx0LnB1c2hfYmFj
ayh7ICNwcmVmZXJlbmNlc0tleSwgYm9vbEZlYXR1cmVWYWx1ZSgjdGVzdE9wdGlvbnNLZXkpIH0p
OyBcCisgICAgXAorICAgIAorRk9SX0VBQ0hfQk9PTF9XS19QUkVGRVJFTkNFKEFERF9WQUxVRSkK
KworI3VuZGVmIEFERF9WQUxVRV9JRl9FWElTVFMKKyAgICAKKyAgICByZXR1cm4gcmVzdWx0Owor
fQorCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgogVCBmZWF0dXJlVmFsdWUoc3RkOjpzdHJpbmcga2V5
LCBjb25zdCBzdGQ6OnVub3JkZXJlZF9tYXA8c3RkOjpzdHJpbmcsIFQ+JiBtYXAsIGNvbnN0IHN0
ZDo6dW5vcmRlcmVkX21hcDxzdGQ6OnN0cmluZywgVD4mIGRlZmF1bHRzTWFwKQogewpJbmRleDog
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0T3B0aW9ucy5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xz
L1dlYktpdFRlc3RSdW5uZXIvVGVzdE9wdGlvbnMuaAkocmV2aXNpb24gMjY4MzIzKQorKysgVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0T3B0aW9ucy5oCSh3b3JraW5nIGNvcHkpCkBAIC04Nyw2
OSArODcsNDggQEAgcHVibGljOgogICAgICAgICB9OwogICAgIH0KIAotICAgIGJvb2wgdXNlVGhy
ZWFkZWRTY3JvbGxpbmcoKSBjb25zdCB7IHJldHVybiBib29sRmVhdHVyZVZhbHVlKCJ1c2VUaHJl
YWRlZFNjcm9sbGluZyIpOyB9Ci0gICAgYm9vbCB1c2VBY2NlbGVyYXRlZERyYXdpbmcoKSBjb25z
dCB7IHJldHVybiBib29sRmVhdHVyZVZhbHVlKCJ1c2VBY2NlbGVyYXRlZERyYXdpbmciKTsgfQot
ICAgIGJvb2wgdXNlUmVtb3RlTGF5ZXJUcmVlKCkgY29uc3QgeyByZXR1cm4gYm9vbEZlYXR1cmVW
YWx1ZSgidXNlUmVtb3RlTGF5ZXJUcmVlIik7IH0KLSAgICBib29sIHNob3VsZFNob3dXZWJWaWV3
KCkgY29uc3QgeyByZXR1cm4gYm9vbEZlYXR1cmVWYWx1ZSgic2hvdWxkU2hvd1dlYlZpZXciKTsg
fQotICAgIGJvb2wgdXNlRmxleGlibGVWaWV3cG9ydCgpIGNvbnN0IHsgcmV0dXJuIGJvb2xGZWF0
dXJlVmFsdWUoInVzZUZsZXhpYmxlVmlld3BvcnQiKTsgfQotICAgIGJvb2wgdXNlRGF0YURldGVj
dGlvbigpIGNvbnN0IHsgcmV0dXJuIGJvb2xGZWF0dXJlVmFsdWUoInVzZURhdGFEZXRlY3Rpb24i
KTsgfQotICAgIGJvb2wgdXNlTW9ja1Njcm9sbGJhcnMoKSBjb25zdCB7IHJldHVybiBib29sRmVh
dHVyZVZhbHVlKCJ1c2VNb2NrU2Nyb2xsYmFycyIpOyB9Ci0gICAgYm9vbCBuZWVkc1NpdGVTcGVj
aWZpY1F1aXJrcygpIGNvbnN0IHsgcmV0dXJuIGJvb2xGZWF0dXJlVmFsdWUoIm5lZWRzU2l0ZVNw
ZWNpZmljUXVpcmtzIik7IH0KLSAgICBib29sIGlnbm9yZXNWaWV3cG9ydFNjYWxlTGltaXRzKCkg
Y29uc3QgeyByZXR1cm4gYm9vbEZlYXR1cmVWYWx1ZSgiaWdub3Jlc1ZpZXdwb3J0U2NhbGVMaW1p
dHMiKTsgfQotICAgIGJvb2wgdXNlQ2hhcmFjdGVyU2VsZWN0aW9uR3JhbnVsYXJpdHkoKSBjb25z
dCB7IHJldHVybiBib29sRmVhdHVyZVZhbHVlKCJ1c2VDaGFyYWN0ZXJTZWxlY3Rpb25HcmFudWxh
cml0eSIpOyB9Ci0gICAgYm9vbCBlbmFibGVBdHRhY2htZW50RWxlbWVudCgpIGNvbnN0IHsgcmV0
dXJuIGJvb2xGZWF0dXJlVmFsdWUoImVuYWJsZUF0dGFjaG1lbnRFbGVtZW50Iik7IH0KLSAgICBi
b29sIGVuYWJsZUludGVyc2VjdGlvbk9ic2VydmVyKCkgY29uc3QgeyByZXR1cm4gYm9vbEZlYXR1
cmVWYWx1ZSgiZW5hYmxlSW50ZXJzZWN0aW9uT2JzZXJ2ZXIiKTsgfQotICAgIGJvb2wgdXNlRXBo
ZW1lcmFsU2Vzc2lvbigpIGNvbnN0IHsgcmV0dXJuIGJvb2xGZWF0dXJlVmFsdWUoInVzZUVwaGVt
ZXJhbFNlc3Npb24iKTsgfQotICAgIGJvb2wgZW5hYmxlTWVudUl0ZW1FbGVtZW50KCkgY29uc3Qg
eyByZXR1cm4gYm9vbEZlYXR1cmVWYWx1ZSgiZW5hYmxlTWVudUl0ZW1FbGVtZW50Iik7IH0KLSAg
ICBib29sIGVuYWJsZUtleWdlbkVsZW1lbnQoKSBjb25zdCB7IHJldHVybiBib29sRmVhdHVyZVZh
bHVlKCJlbmFibGVLZXlnZW5FbGVtZW50Iik7IH0KLSAgICBib29sIGVuYWJsZU1vZGVybk1lZGlh
Q29udHJvbHMoKSBjb25zdCB7IHJldHVybiBib29sRmVhdHVyZVZhbHVlKCJlbmFibGVNb2Rlcm5N
ZWRpYUNvbnRyb2xzIik7IH0KLSAgICBib29sIGVuYWJsZVBvaW50ZXJMb2NrKCkgY29uc3QgeyBy
ZXR1cm4gYm9vbEZlYXR1cmVWYWx1ZSgiZW5hYmxlUG9pbnRlckxvY2siKTsgfQotICAgIGJvb2wg
ZW5hYmxlV2ViQXV0aGVudGljYXRpb24oKSBjb25zdCB7IHJldHVybiBib29sRmVhdHVyZVZhbHVl
KCJlbmFibGVXZWJBdXRoZW50aWNhdGlvbiIpOyB9Ci0gICAgYm9vbCBlbmFibGVXZWJBdXRoZW50
aWNhdGlvbkxvY2FsQXV0aGVudGljYXRvcigpIGNvbnN0IHsgcmV0dXJuIGJvb2xGZWF0dXJlVmFs
dWUoImVuYWJsZVdlYkF1dGhlbnRpY2F0aW9uTG9jYWxBdXRoZW50aWNhdG9yIik7IH0KLSAgICBi
b29sIGVuYWJsZUluc3BlY3RvckFkZGl0aW9ucygpIGNvbnN0IHsgcmV0dXJuIGJvb2xGZWF0dXJl
VmFsdWUoImVuYWJsZUluc3BlY3RvckFkZGl0aW9ucyIpOyB9Ci0gICAgYm9vbCBzaG91bGRTaG93
VG91Y2hlcygpIGNvbnN0IHsgcmV0dXJuIGJvb2xGZWF0dXJlVmFsdWUoInNob3VsZFNob3dUb3Vj
aGVzIik7IH0KKyAgICBib29sIGFsbG93c0xpbmtQcmV2aWV3KCkgY29uc3QgeyByZXR1cm4gYm9v
bEZlYXR1cmVWYWx1ZSgiYWxsb3dzTGlua1ByZXZpZXciKTsgfQogICAgIGJvb2wgZHVtcEpTQ29u
c29sZUxvZ0luU3RkRXJyKCkgY29uc3QgeyByZXR1cm4gYm9vbEZlYXR1cmVWYWx1ZSgiZHVtcEpT
Q29uc29sZUxvZ0luU3RkRXJyIik7IH0KLSAgICBib29sIGFsbG93Q3Jvc3NPcmlnaW5TdWJyZXNv
dXJjZXNUb0Fza0ZvckNyZWRlbnRpYWxzKCkgY29uc3QgeyByZXR1cm4gYm9vbEZlYXR1cmVWYWx1
ZSgiYWxsb3dDcm9zc09yaWdpblN1YnJlc291cmNlc1RvQXNrRm9yQ3JlZGVudGlhbHMiKTsgfQot
ICAgIGJvb2wgZG9tUGFzdGVBbGxvd2VkKCkgY29uc3QgeyByZXR1cm4gYm9vbEZlYXR1cmVWYWx1
ZSgiZG9tUGFzdGVBbGxvd2VkIik7IH0KLSAgICBib29sIGVuYWJsZUNvbG9yRmlsdGVyKCkgY29u
c3QgeyByZXR1cm4gYm9vbEZlYXR1cmVWYWx1ZSgiZW5hYmxlQ29sb3JGaWx0ZXIiKTsgfQotICAg
IGJvb2wgcHVuY2hPdXRXaGl0ZUJhY2tncm91bmRzSW5EYXJrTW9kZSgpIGNvbnN0IHsgcmV0dXJu
IGJvb2xGZWF0dXJlVmFsdWUoInB1bmNoT3V0V2hpdGVCYWNrZ3JvdW5kc0luRGFya01vZGUiKTsg
fQotICAgIGJvb2wgcnVuU2luZ2x5KCkgY29uc3QgeyByZXR1cm4gYm9vbEZlYXR1cmVWYWx1ZSgi
cnVuU2luZ2x5Iik7IH0KLSAgICBib29sIGNoZWNrRm9yV29ybGRMZWFrcygpIGNvbnN0IHsgcmV0
dXJuIGJvb2xGZWF0dXJlVmFsdWUoImNoZWNrRm9yV29ybGRMZWFrcyIpOyB9Ci0gICAgYm9vbCBz
aG91bGRJZ25vcmVNZXRhVmlld3BvcnQoKSBjb25zdCB7IHJldHVybiBib29sRmVhdHVyZVZhbHVl
KCJzaG91bGRJZ25vcmVNZXRhVmlld3BvcnQiKTsgfQotICAgIGJvb2wgc2hvdWxkU2hvd1NwZWxs
Q2hlY2tpbmdEb3RzKCkgY29uc3QgeyByZXR1cm4gYm9vbEZlYXR1cmVWYWx1ZSgic3BlbGxDaGVj
a2luZ0RvdHMiKTsgfQotICAgIGJvb2wgZW5hYmxlU2VydmljZUNvbnRyb2xzKCkgY29uc3QgeyBy
ZXR1cm4gYm9vbEZlYXR1cmVWYWx1ZSgiZW5hYmxlU2VydmljZUNvbnRyb2xzIik7IH0KICAgICBi
b29sIGVkaXRhYmxlKCkgY29uc3QgeyByZXR1cm4gYm9vbEZlYXR1cmVWYWx1ZSgiZWRpdGFibGUi
KTsgfQotICAgIGJvb2wgc2hvdWxkSGFuZGxlUnVuT3BlblBhbmVsKCkgY29uc3QgeyByZXR1cm4g
Ym9vbEZlYXR1cmVWYWx1ZSgic2hvdWxkSGFuZGxlUnVuT3BlblBhbmVsIik7IH0KLSAgICBib29s
IHNob3VsZFByZXNlbnRQb3BvdmVycygpIGNvbnN0IHsgcmV0dXJuIGJvb2xGZWF0dXJlVmFsdWUo
InNob3VsZFByZXNlbnRQb3BvdmVycyIpOyB9Ci0gICAgYm9vbCBlbmFibGVBcHBOYXAoKSBjb25z
dCB7IHJldHVybiBib29sRmVhdHVyZVZhbHVlKCJlbmFibGVBcHBOYXAiKTsgfQotICAgIGJvb2wg
ZW5hYmxlQmFja0ZvcndhcmRDYWNoZSgpIGNvbnN0IHsgcmV0dXJuIGJvb2xGZWF0dXJlVmFsdWUo
ImVuYWJsZUJhY2tGb3J3YXJkQ2FjaGUiKTsgfQotICAgIGJvb2wgYWxsb3dzTGlua1ByZXZpZXco
KSBjb25zdCB7IHJldHVybiBib29sRmVhdHVyZVZhbHVlKCJhbGxvd3NMaW5rUHJldmlldyIpOyB9
Ci0gICAgYm9vbCBlbmFibGVDYXB0dXJlVmlkZW9JblVJUHJvY2VzcygpIGNvbnN0IHsgcmV0dXJu
IGJvb2xGZWF0dXJlVmFsdWUoImVuYWJsZUNhcHR1cmVWaWRlb0luVUlQcm9jZXNzIik7IH0KLSAg
ICBib29sIGVuYWJsZUNhcHR1cmVWaWRlb0luR1BVUHJvY2VzcygpIGNvbnN0IHsgcmV0dXJuIGJv
b2xGZWF0dXJlVmFsdWUoImVuYWJsZUNhcHR1cmVWaWRlb0luR1BVUHJvY2VzcyIpOyB9Ci0gICAg
Ym9vbCBlbmFibGVDYXB0dXJlQXVkaW9JblVJUHJvY2VzcygpIGNvbnN0IHsgcmV0dXJuIGJvb2xG
ZWF0dXJlVmFsdWUoImVuYWJsZUNhcHR1cmVBdWRpb0luVUlQcm9jZXNzIik7IH0KLSAgICBib29s
IGVuYWJsZUNhcHR1cmVBdWRpb0luR1BVUHJvY2VzcygpIGNvbnN0IHsgcmV0dXJuIGJvb2xGZWF0
dXJlVmFsdWUoImVuYWJsZUNhcHR1cmVBdWRpb0luR1BVUHJvY2VzcyIpOyB9Ci0gICAgYm9vbCBh
bGxvd1RvcE5hdmlnYXRpb25Ub0RhdGFVUkxzKCkgY29uc3QgeyByZXR1cm4gYm9vbEZlYXR1cmVW
YWx1ZSgiYWxsb3dUb3BOYXZpZ2F0aW9uVG9EYXRhVVJMcyIpOyB9CisgICAgLy8gRklYTUU6IGVu
YWJsZUF0dGFjaG1lbnRFbGVtZW50KCkgaXMgc3RpbGwgdXNlZCBkdWUgdG8gc29tZSBXZWJLaXQg
Y29kZSB0aGF0IHJlbGllcyBvbiB0aGUgY29uZmlndXJhdGlvbiB2YWx1ZSBvZiBfZW5hYmxlQXR0
YWNobWVudEVsZW1lbnQuCisgICAgYm9vbCBlbmFibGVBdHRhY2htZW50RWxlbWVudCgpIGNvbnN0
IHsgcmV0dXJuIGJvb2xGZWF0dXJlVmFsdWUoImVuYWJsZUF0dGFjaG1lbnRFbGVtZW50Iik7IH0K
ICAgICBib29sIGVuYWJsZUluQXBwQnJvd3NlclByaXZhY3koKSBjb25zdCB7IHJldHVybiBib29s
RmVhdHVyZVZhbHVlKCJlbmFibGVJbkFwcEJyb3dzZXJQcml2YWN5Iik7IH0KLSAgICBib29sIGlz
QXBwQm91bmRXZWJWaWV3KCkgY29uc3QgeyByZXR1cm4gYm9vbEZlYXR1cmVWYWx1ZSgiaXNBcHBC
b3VuZFdlYlZpZXciKTsgfQotICAgIGJvb2wgaWdub3JlU3luY2hyb25vdXNNZXNzYWdpbmdUaW1l
b3V0cygpIGNvbnN0IHsgcmV0dXJuIGJvb2xGZWF0dXJlVmFsdWUoImlnbm9yZVN5bmNocm9ub3Vz
TWVzc2FnaW5nVGltZW91dHMiKTsgfQogICAgIGJvb2wgZW5hYmxlUHJvY2Vzc1N3YXBPbk5hdmln
YXRpb24oKSBjb25zdCB7IHJldHVybiBib29sRmVhdHVyZVZhbHVlKCJlbmFibGVQcm9jZXNzU3dh
cE9uTmF2aWdhdGlvbiIpOyB9CiAgICAgYm9vbCBlbmFibGVQcm9jZXNzU3dhcE9uV2luZG93T3Bl
bigpIGNvbnN0IHsgcmV0dXJuIGJvb2xGZWF0dXJlVmFsdWUoImVuYWJsZVByb2Nlc3NTd2FwT25X
aW5kb3dPcGVuIik7IH0KKyAgICBib29sIGlnbm9yZVN5bmNocm9ub3VzTWVzc2FnaW5nVGltZW91
dHMoKSBjb25zdCB7IHJldHVybiBib29sRmVhdHVyZVZhbHVlKCJpZ25vcmVTeW5jaHJvbm91c01l
c3NhZ2luZ1RpbWVvdXRzIik7IH0KKyAgICBib29sIGlnbm9yZXNWaWV3cG9ydFNjYWxlTGltaXRz
KCkgY29uc3QgeyByZXR1cm4gYm9vbEZlYXR1cmVWYWx1ZSgiaWdub3Jlc1ZpZXdwb3J0U2NhbGVM
aW1pdHMiKTsgfQorICAgIGJvb2wgaXNBcHBCb3VuZFdlYlZpZXcoKSBjb25zdCB7IHJldHVybiBi
b29sRmVhdHVyZVZhbHVlKCJpc0FwcEJvdW5kV2ViVmlldyIpOyB9CisgICAgYm9vbCBwdW5jaE91
dFdoaXRlQmFja2dyb3VuZHNJbkRhcmtNb2RlKCkgY29uc3QgeyByZXR1cm4gYm9vbEZlYXR1cmVW
YWx1ZSgicHVuY2hPdXRXaGl0ZUJhY2tncm91bmRzSW5EYXJrTW9kZSIpOyB9CisgICAgYm9vbCBy
dW5TaW5nbHkoKSBjb25zdCB7IHJldHVybiBib29sRmVhdHVyZVZhbHVlKCJydW5TaW5nbHkiKTsg
fQorICAgIGJvb2wgc2hvdWxkSGFuZGxlUnVuT3BlblBhbmVsKCkgY29uc3QgeyByZXR1cm4gYm9v
bEZlYXR1cmVWYWx1ZSgic2hvdWxkSGFuZGxlUnVuT3BlblBhbmVsIik7IH0KKyAgICBib29sIHNo
b3VsZFByZXNlbnRQb3BvdmVycygpIGNvbnN0IHsgcmV0dXJuIGJvb2xGZWF0dXJlVmFsdWUoInNo
b3VsZFByZXNlbnRQb3BvdmVycyIpOyB9CisgICAgYm9vbCBzaG91bGRTaG93U3BlbGxDaGVja2lu
Z0RvdHMoKSBjb25zdCB7IHJldHVybiBib29sRmVhdHVyZVZhbHVlKCJzcGVsbENoZWNraW5nRG90
cyIpOyB9CisgICAgYm9vbCBzaG91bGRTaG93VG91Y2hlcygpIGNvbnN0IHsgcmV0dXJuIGJvb2xG
ZWF0dXJlVmFsdWUoInNob3VsZFNob3dUb3VjaGVzIik7IH0KKyAgICBib29sIHNob3VsZFNob3dX
ZWJWaWV3KCkgY29uc3QgeyByZXR1cm4gYm9vbEZlYXR1cmVWYWx1ZSgic2hvdWxkU2hvd1dlYlZp
ZXciKTsgfQorICAgIGJvb2wgdXNlQ2hhcmFjdGVyU2VsZWN0aW9uR3JhbnVsYXJpdHkoKSBjb25z
dCB7IHJldHVybiBib29sRmVhdHVyZVZhbHVlKCJ1c2VDaGFyYWN0ZXJTZWxlY3Rpb25HcmFudWxh
cml0eSIpOyB9CisgICAgYm9vbCB1c2VEYXRhRGV0ZWN0aW9uKCkgY29uc3QgeyByZXR1cm4gYm9v
bEZlYXR1cmVWYWx1ZSgidXNlRGF0YURldGVjdGlvbiIpOyB9CisgICAgYm9vbCB1c2VFcGhlbWVy
YWxTZXNzaW9uKCkgY29uc3QgeyByZXR1cm4gYm9vbEZlYXR1cmVWYWx1ZSgidXNlRXBoZW1lcmFs
U2Vzc2lvbiIpOyB9CisgICAgYm9vbCB1c2VGbGV4aWJsZVZpZXdwb3J0KCkgY29uc3QgeyByZXR1
cm4gYm9vbEZlYXR1cmVWYWx1ZSgidXNlRmxleGlibGVWaWV3cG9ydCIpOyB9CisgICAgYm9vbCB1
c2VSZW1vdGVMYXllclRyZWUoKSBjb25zdCB7IHJldHVybiBib29sRmVhdHVyZVZhbHVlKCJ1c2VS
ZW1vdGVMYXllclRyZWUiKTsgfQogICAgIGJvb2wgdXNlU2VydmljZVdvcmtlclNob3J0VGltZW91
dCgpIGNvbnN0IHsgcmV0dXJuIGJvb2xGZWF0dXJlVmFsdWUoInVzZVNlcnZpY2VXb3JrZXJTaG9y
dFRpbWVvdXQiKTsgfQorICAgIGJvb2wgdXNlVGhyZWFkZWRTY3JvbGxpbmcoKSBjb25zdCB7IHJl
dHVybiBib29sRmVhdHVyZVZhbHVlKCJ1c2VUaHJlYWRlZFNjcm9sbGluZyIpOyB9CiAgICAgZG91
YmxlIGNvbnRlbnRJbnNldFRvcCgpIGNvbnN0IHsgcmV0dXJuIGRvdWJsZUZlYXR1cmVWYWx1ZSgi
Y29udGVudEluc2V0LnRvcCIpOyB9CiAgICAgZG91YmxlIGRldmljZVNjYWxlRmFjdG9yKCkgY29u
c3QgeyByZXR1cm4gZG91YmxlRmVhdHVyZVZhbHVlKCJkZXZpY2VTY2FsZUZhY3RvciIpOyB9Ci0g
ICAgZG91YmxlIHZpZXdXaWR0aCgpIGNvbnN0IHsgcmV0dXJuIGRvdWJsZUZlYXR1cmVWYWx1ZSgi
dmlld1dpZHRoIik7IH0KICAgICBkb3VibGUgdmlld0hlaWdodCgpIGNvbnN0IHsgcmV0dXJuIGRv
dWJsZUZlYXR1cmVWYWx1ZSgidmlld0hlaWdodCIpOyB9CisgICAgZG91YmxlIHZpZXdXaWR0aCgp
IGNvbnN0IHsgcmV0dXJuIGRvdWJsZUZlYXR1cmVWYWx1ZSgidmlld1dpZHRoIik7IH0KKyAgICBz
dGQ6OnN0cmluZyBhZGRpdGlvbmFsU3VwcG9ydGVkSW1hZ2VUeXBlcygpIGNvbnN0IHsgcmV0dXJu
IHN0cmluZ0ZlYXR1cmVWYWx1ZSgiYWRkaXRpb25hbFN1cHBvcnRlZEltYWdlVHlwZXMiKTsgfQor
ICAgIHN0ZDo6c3RyaW5nIGFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllcigpIGNvbnN0IHsgcmV0
dXJuIHN0cmluZ0ZlYXR1cmVWYWx1ZSgiYXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyIik7IH0K
ICAgICBzdGQ6OnN0cmluZyBhcHBsaWNhdGlvbk1hbmlmZXN0KCkgY29uc3QgeyByZXR1cm4gc3Ry
aW5nRmVhdHVyZVZhbHVlKCJhcHBsaWNhdGlvbk1hbmlmZXN0Iik7IH0KKyAgICBzdGQ6OnN0cmlu
ZyBjb250ZW50TW9kZSgpIGNvbnN0IHsgcmV0dXJuIHN0cmluZ0ZlYXR1cmVWYWx1ZSgiY29udGVu
dE1vZGUiKTsgfQogICAgIHN0ZDo6c3RyaW5nIGpzY09wdGlvbnMoKSBjb25zdCB7IHJldHVybiBz
dHJpbmdGZWF0dXJlVmFsdWUoImpzY09wdGlvbnMiKTsgfQotICAgIHN0ZDo6c3RyaW5nIGFkZGl0
aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVzKCkgY29uc3QgeyByZXR1cm4gc3RyaW5nRmVhdHVyZVZh
bHVlKCJhZGRpdGlvbmFsU3VwcG9ydGVkSW1hZ2VUeXBlcyIpOyB9CiAgICAgc3RkOjpzdHJpbmcg
c3RhbmRhbG9uZVdlYkFwcGxpY2F0aW9uVVJMKCkgY29uc3QgeyByZXR1cm4gc3RyaW5nRmVhdHVy
ZVZhbHVlKCJzdGFuZGFsb25lV2ViQXBwbGljYXRpb25VUkwiKTsgfQotICAgIHN0ZDo6c3RyaW5n
IGNvbnRlbnRNb2RlKCkgY29uc3QgeyByZXR1cm4gc3RyaW5nRmVhdHVyZVZhbHVlKCJjb250ZW50
TW9kZSIpOyB9Ci0gICAgc3RkOjpzdHJpbmcgYXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyKCkg
Y29uc3QgeyByZXR1cm4gc3RyaW5nRmVhdHVyZVZhbHVlKCJhcHBsaWNhdGlvbkJ1bmRsZUlkZW50
aWZpZXIiKTsgfQogICAgIHN0ZDo6dmVjdG9yPHN0ZDo6c3RyaW5nPiBvdmVycmlkZUxhbmd1YWdl
cygpIGNvbnN0IHsgcmV0dXJuIHN0cmluZ1ZlY3RvckZlYXR1cmVWYWx1ZSgibGFuZ3VhZ2UiKTsg
fQogCiAgICAgY29uc3Qgc3RkOjp1bm9yZGVyZWRfbWFwPHN0ZDo6c3RyaW5nLCBib29sPiYgZXhw
ZXJpbWVudGFsRmVhdHVyZXMoKSBjb25zdCB7IHJldHVybiBtX2ZlYXR1cmVzLmV4cGVyaW1lbnRh
bEZlYXR1cmVzOyB9CiAgICAgY29uc3Qgc3RkOjp1bm9yZGVyZWRfbWFwPHN0ZDo6c3RyaW5nLCBi
b29sPiYgaW50ZXJuYWxEZWJ1Z0ZlYXR1cmVzKCkgY29uc3QgeyByZXR1cm4gbV9mZWF0dXJlcy5p
bnRlcm5hbERlYnVnRmVhdHVyZXM7IH0KIAorICAgIHN0ZDo6dmVjdG9yPHN0ZDo6cGFpcjxzdGQ6
OnN0cmluZywgYm9vbD4+IGJvb2xXS1ByZWZlcmVuY2VzKCkgY29uc3Q7CisKICAgICBib29sIGhh
c1NhbWVJbml0aWFsaXphdGlvbk9wdGlvbnMoY29uc3QgVGVzdE9wdGlvbnMmKSBjb25zdDsKIAog
cHJpdmF0ZToKSW5kZXg6IFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVGVzdENvbnRyb2xs
ZXJDb2NvYS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rl
c3RDb250cm9sbGVyQ29jb2EubW0JKHJldmlzaW9uIDI2ODMyMykKKysrIFRvb2xzL1dlYktpdFRl
c3RSdW5uZXIvY29jb2EvVGVzdENvbnRyb2xsZXJDb2NvYS5tbQkod29ya2luZyBjb3B5KQpAQCAt
MzIsNiArMzIsNyBAQAogI2ltcG9ydCAiVGVzdEludm9jYXRpb24uaCIKICNpbXBvcnQgIlRlc3RS
dW5uZXJXS1dlYlZpZXcuaCIKICNpbXBvcnQgIlRlc3RXZWJzaXRlRGF0YVN0b3JlRGVsZWdhdGUu
aCIKKyNpbXBvcnQgIldlYkNvcmVUZXN0U3VwcG9ydC5oIgogI2ltcG9ydCA8Rm91bmRhdGlvbi9G
b3VuZGF0aW9uLmg+CiAjaW1wb3J0IDxTZWN1cml0eS9TZWNJdGVtLmg+CiAjaW1wb3J0IDxXZWJL
aXQvV0tDb250ZXh0Q29uZmlndXJhdGlvblJlZi5oPgpAQCAtNjksNyArNzAsNiBAQCB2b2lkIGlu
aXRpYWxpemVXZWJWaWV3Q29uZmlndXJhdGlvbihjb25zCiAgICAgZ2xvYmFsV2ViVmlld0NvbmZp
Z3VyYXRpb24ucHJvY2Vzc1Bvb2wgPSAoX19icmlkZ2UgV0tQcm9jZXNzUG9vbCAqKWNvbnRleHQ7
CiAgICAgZ2xvYmFsV2ViVmlld0NvbmZpZ3VyYXRpb24ud2Vic2l0ZURhdGFTdG9yZSA9IChfX2Jy
aWRnZSBXS1dlYnNpdGVEYXRhU3RvcmUgKilUZXN0Q29udHJvbGxlcjo6ZGVmYXVsdFdlYnNpdGVE
YXRhU3RvcmUoKTsKICAgICBnbG9iYWxXZWJWaWV3Q29uZmlndXJhdGlvbi5fYWxsb3dVbml2ZXJz
YWxBY2Nlc3NGcm9tRmlsZVVSTHMgPSBZRVM7Ci0gICAgZ2xvYmFsV2ViVmlld0NvbmZpZ3VyYXRp
b24uX2FsbG93VG9wTmF2aWdhdGlvblRvRGF0YVVSTHMgPSBZRVM7CiAgICAgZ2xvYmFsV2ViVmll
d0NvbmZpZ3VyYXRpb24uX2FwcGxlUGF5RW5hYmxlZCA9IFlFUzsKIAogICAgIFtnbG9iYWxXZWJz
aXRlRGF0YVN0b3JlRGVsZWdhdGVDbGllbnQgcmVsZWFzZV07CkBAIC0xNTgsMjAgKzE1OCwxMyBA
QCB2b2lkIFRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybUNyZWF0ZVdlYlZpCiAgICAgICAgIFtjb3Bp
ZWRDb25maWd1cmF0aW9uIHNldFNlbGVjdGlvbkdyYW51bGFyaXR5OldLU2VsZWN0aW9uR3JhbnVs
YXJpdHlDaGFyYWN0ZXJdOwogICAgIGlmIChvcHRpb25zLmlzQXBwQm91bmRXZWJWaWV3KCkpCiAg
ICAgICAgIFtjb3BpZWRDb25maWd1cmF0aW9uIHNldExpbWl0c05hdmlnYXRpb25zVG9BcHBCb3Vu
ZERvbWFpbnM6WUVTXTsKLSNlbHNlCi0gICAgW2NvcGllZENvbmZpZ3VyYXRpb24gX3NldFNlcnZp
Y2VDb250cm9sc0VuYWJsZWQ6b3B0aW9ucy5lbmFibGVTZXJ2aWNlQ29udHJvbHMoKV07CiAjZW5k
aWYKIAogICAgIGlmIChvcHRpb25zLmVuYWJsZUF0dGFjaG1lbnRFbGVtZW50KCkpCiAgICAgICAg
IFtjb3BpZWRDb25maWd1cmF0aW9uIF9zZXRBdHRhY2htZW50RWxlbWVudEVuYWJsZWQ6WUVTXTsK
IAotICAgIGlmIChvcHRpb25zLmVuYWJsZUNvbG9yRmlsdGVyKCkpCi0gICAgICAgIFtjb3BpZWRD
b25maWd1cmF0aW9uIF9zZXRDb2xvckZpbHRlckVuYWJsZWQ6WUVTXTsKLQogICAgIFtjb3BpZWRD
b25maWd1cmF0aW9uIHNldFdlYnNpdGVEYXRhU3RvcmU6KFdLV2Vic2l0ZURhdGFTdG9yZSAqKXdl
YnNpdGVEYXRhU3RvcmUoKV07CiAKLSAgICBbY29waWVkQ29uZmlndXJhdGlvbiBfc2V0QWxsb3dU
b3BOYXZpZ2F0aW9uVG9EYXRhVVJMczpvcHRpb25zLmFsbG93VG9wTmF2aWdhdGlvblRvRGF0YVVS
THMoKV07Ci0KICAgICBjb25maWd1cmVDb250ZW50TW9kZShjb3BpZWRDb25maWd1cmF0aW9uLmdl
dCgpLCBvcHRpb25zKTsKIAogICAgIGF1dG8gYXBwbGljYXRpb25NYW5pZmVzdCA9IG9wdGlvbnMu
YXBwbGljYXRpb25NYW5pZmVzdCgpOwpAQCAtMjk4LDYgKzI5MSw4IEBAIHZvaWQgVGVzdENvbnRy
b2xsZXI6OmNvY29hUmVzZXRTdGF0ZVRvQ28KICAgICB9CiAKICAgICBbZ2xvYmFsV2Vic2l0ZURh
dGFTdG9yZURlbGVnYXRlQ2xpZW50IHNldEFsbG93UmFpc2luZ1F1b3RhOllFU107CisKKyAgICBX
ZWJDb3JlVGVzdFN1cHBvcnQ6OnNldEFkZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVzRm9yVGVz
dGluZyhvcHRpb25zLmFkZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVzKCkuY19zdHIoKSk7CiB9
CiAKIHZvaWQgVGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtV2lsbFJ1blRlc3QoY29uc3QgVGVzdElu
dm9jYXRpb24mIHRlc3RJbnZvY2F0aW9uKQpJbmRleDogVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9n
dGsvVGVzdENvbnRyb2xsZXJHdGsuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1dlYktpdFRlc3RS
dW5uZXIvZ3RrL1Rlc3RDb250cm9sbGVyR3RrLmNwcAkocmV2aXNpb24gMjY4MzIzKQorKysgVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9ndGsvVGVzdENvbnRyb2xsZXJHdGsuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xNTAsNiArMTUwLDEyIEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtUmVz
ZXRQcmVmZXIKICAgICBtX21haW5XZWJWaWV3LT5kaXNtaXNzQWxsUG9wdXBNZW51cygpOwogfQog
Citib29sIFRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybVJlc2V0U3RhdGVUb0NvbnNpc3RlbnRWYWx1
ZXMoY29uc3QgVGVzdE9wdGlvbnMmKQoreworICAgIFdLVGV4dENoZWNrZXJDb250aW51b3VzU3Bl
bGxDaGVja2luZ0VuYWJsZWRTdGF0ZUNoYW5nZWQodHJ1ZSk7CisgICAgcmV0dXJuIHRydWU7Cit9
CisKIFRlc3RGZWF0dXJlcyBUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1TcGVjaWZpY0ZlYXR1cmVE
ZWZhdWx0c0ZvclRlc3QoY29uc3QgVGVzdENvbW1hbmQmKSBjb25zdAogewogICAgIFRlc3RGZWF0
dXJlcyBmZWF0dXJlczsKSW5kZXg6IFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvaW9zL1Rlc3RDb250
cm9sbGVySU9TLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvaW9zL1Rl
c3RDb250cm9sbGVySU9TLm1tCShyZXZpc2lvbiAyNjgzMjMpCisrKyBUb29scy9XZWJLaXRUZXN0
UnVubmVyL2lvcy9UZXN0Q29udHJvbGxlcklPUy5tbQkod29ya2luZyBjb3B5KQpAQCAtMTQ4LDcg
KzE0OCw2IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtUmVzZXRQcmVmZXIKICAgICBX
S1ByZWZlcmVuY2VzU2V0VGV4dEF1dG9zaXppbmdFbmFibGVkKHByZWZlcmVuY2VzLCBmYWxzZSk7
CiAgICAgV0tQcmVmZXJlbmNlc1NldFRleHRBdXRvc2l6aW5nVXNlc0lkZW1wb3RlbnRNb2RlKHBy
ZWZlcmVuY2VzLCBmYWxzZSk7CiAgICAgV0tQcmVmZXJlbmNlc1NldENvbnRlbnRDaGFuZ2VPYnNl
cnZlckVuYWJsZWQocHJlZmVyZW5jZXMsIGZhbHNlKTsKLSAgICBbKF9fYnJpZGdlIFdLUHJlZmVy
ZW5jZXMgKilwcmVmZXJlbmNlcyBfc2V0U2hvdWxkSWdub3JlTWV0YVZpZXdwb3J0Ok5PXTsKIH0K
IAogYm9vbCBUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1SZXNldFN0YXRlVG9Db25zaXN0ZW50VmFs
dWVzKGNvbnN0IFRlc3RPcHRpb25zJiBvcHRpb25zKQpAQCAtMjY5LDkgKzI2OCw2IEBAIHZvaWQg
VGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtQ29uZmlndXJlVmkKIAogICAgIFRlc3RSdW5uZXJXS1dl
YlZpZXcgKndlYlZpZXcgPSBtYWluV2ViVmlldygpLT5wbGF0Zm9ybVZpZXcoKTsKIAotICAgIGlm
ICh0ZXN0Lm9wdGlvbnMoKS5zaG91bGRJZ25vcmVNZXRhVmlld3BvcnQoKSkKLSAgICAgICAgd2Vi
Vmlldy5jb25maWd1cmF0aW9uLnByZWZlcmVuY2VzLl9zaG91bGRJZ25vcmVNZXRhVmlld3BvcnQg
PSBZRVM7Ci0KICAgICBpZiAoIXRlc3Qub3B0aW9ucygpLnVzZUZsZXhpYmxlVmlld3BvcnQoKSkK
ICAgICAgICAgcmV0dXJuOwogCkluZGV4OiBUb29scy9XZWJLaXRUZXN0UnVubmVyL3dpbi9UZXN0
Q29udHJvbGxlcldpbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci93
aW4vVGVzdENvbnRyb2xsZXJXaW4uY3BwCShyZXZpc2lvbiAyNjgzMjMpCisrKyBUb29scy9XZWJL
aXRUZXN0UnVubmVyL3dpbi9UZXN0Q29udHJvbGxlcldpbi5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTIyNyw2ICsyMjcsMTEgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1SZXNldFByZWZl
cgogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKK2Jvb2wgVGVzdENvbnRyb2xsZXI6OnBsYXRm
b3JtUmVzZXRTdGF0ZVRvQ29uc2lzdGVudFZhbHVlcyhjb25zdCBUZXN0T3B0aW9ucyYpCit7Cisg
ICAgcmV0dXJuIHRydWU7Cit9CisKIFRlc3RGZWF0dXJlcyBUZXN0Q29udHJvbGxlcjo6cGxhdGZv
cm1TcGVjaWZpY0ZlYXR1cmVEZWZhdWx0c0ZvclRlc3QoY29uc3QgVGVzdENvbW1hbmQmKSBjb25z
dAogewogICAgIHJldHVybiB7IH07CkluZGV4OiBUb29scy9XZWJLaXRUZXN0UnVubmVyL3dwZS9U
ZXN0Q29udHJvbGxlcldQRS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci93cGUvVGVzdENvbnRyb2xsZXJXUEUuY3BwCShyZXZpc2lvbiAyNjgzMjMpCisrKyBUb29scy9X
ZWJLaXRUZXN0UnVubmVyL3dwZS9UZXN0Q29udHJvbGxlcldQRS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTEzNiw2ICsxMzYsMTEgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1SZXNldFBy
ZWZlcgogewogfQogCitib29sIFRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybVJlc2V0U3RhdGVUb0Nv
bnNpc3RlbnRWYWx1ZXMoY29uc3QgVGVzdE9wdGlvbnMmKQoreworICAgIHJldHVybiB0cnVlOwor
fQorCiBUZXN0RmVhdHVyZXMgVGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtU3BlY2lmaWNGZWF0dXJl
RGVmYXVsdHNGb3JUZXN0KGNvbnN0IFRlc3RDb21tYW5kJikgY29uc3QKIHsKICAgICBUZXN0RmVh
dHVyZXMgZmVhdHVyZXM7Cg==
</data>
<flag name="commit-queue"
          id="427188"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411068</attachid>
            <date>2020-10-11 15:08:51 -0700</date>
            <delta_ts>2020-10-11 17:12:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217582-20201011150850.patch</filename>
            <type>text/plain</type>
            <size>73220</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNjgzMjUpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM1IEBACisyMDIwLTEwLTExICBTYW0gV2Vpbmln
ICA8d2VpbmlnQGFwcGxlLmNvbT4KKworICAgICAgICBbUHJlZmVyZW5jZXNdIEludHJvZHVjZSBz
dHJpbmcgYmFzZWQgU1BJIGZvciBXS1ByZWZlcmVuY2VzIHRvIGFsbG93IHRlc3RzIHRvIGNoYW5n
ZSBpbnRlcm5hbCBiZWhhdmlvciB3aXRob3V0IGFsd2F5cyBhZGRpbmcgYWRkaXRpb25hbCBTUEkK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzU4Mgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtXSVBdCisK
KyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERl
cml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2Vz
Lm1ha2U6CisgICAgICAgICogU2NyaXB0cy9QcmVmZXJlbmNlc1RlbXBsYXRlcy9XZWJQcmVmZXJl
bmNlc0V4cGVyaW1lbnRhbEZlYXR1cmVzLmNwcC5lcmI6CisgICAgICAgICogU2NyaXB0cy9QcmVm
ZXJlbmNlc1RlbXBsYXRlcy9XZWJQcmVmZXJlbmNlc0dldHRlclNldHRlcnMuY3BwLmVyYjogQWRk
ZWQuCisgICAgICAgICogU2NyaXB0cy9QcmVmZXJlbmNlc1RlbXBsYXRlcy9XZWJQcmVmZXJlbmNl
c0ludGVybmFsRGVidWdGZWF0dXJlcy5jcHAuZXJiOgorICAgICAgICAqIFNoYXJlZC9BUEkvYy9X
S1N0cmluZy5jcHA6CisgICAgICAgIChXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4U3RyaW5nV2l0aExl
bmd0aCk6CisgICAgICAgICogU2hhcmVkL0FQSS9jL1dLU3RyaW5nLmg6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwOgorICAgICAgICAoV0tQcmVmZXJlbmNlc1Nl
dEJvb2xWYWx1ZUZvcktleSk6CisgICAgICAgIChXS1ByZWZlcmVuY2VzU2V0RG91YmxlVmFsdWVG
b3JLZXkpOgorICAgICAgICAoV0tQcmVmZXJlbmNlc1NldFVJbnQzMlZhbHVlRm9yS2V5KToKKyAg
ICAgICAgKFdLUHJlZmVyZW5jZXNTZXRTdHJpbmdWYWx1ZUZvcktleSk6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXNSZWZQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9j
ZXNzL1dlYlByZWZlcmVuY2VzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJlZmVyZW5jZXM6
OnNldEJvb2xWYWx1ZUZvcktleSk6CisgICAgICAgIChXZWJLaXQ6OldlYlByZWZlcmVuY2VzOjpz
ZXREb3VibGVWYWx1ZUZvcktleSk6CisgICAgICAgIChXZWJLaXQ6OldlYlByZWZlcmVuY2VzOjpz
ZXRVSW50MzJWYWx1ZUZvcktleSk6CisgICAgICAgIChXZWJLaXQ6OldlYlByZWZlcmVuY2VzOjpz
ZXRTdHJpbmdWYWx1ZUZvcktleSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByZWZlcmVuY2Vz
Lmg6CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisKIDIwMjAt
MTAtMTAgIFNhbSBXZWluaWcgIDx3ZWluaWdAYXBwbGUuY29tPgogCiAgICAgICAgIFVzZSBXZWJQ
cmVmZXJlbmNlIGRlZmluaXRpb25zIGZyb20gc2hhcmVkIGNvbmZpZ3VyYXRpb24gZmlsZXMgaW4g
V2ViQ29yZSAoUGFydCAxKQpJbmRleDogU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0CShyZXZpc2lvbiAyNjgzMjUp
CisrKyBTb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0CSh3b3JraW5nIGNvcHkpCkBAIC01MDAs
NiArNTAwLDcgQEAgc2V0KFdlYktpdF9XRUJfUFJFRkVSRU5DRVNfVEVNUExBVEVTCiAgICAgJHtX
RUJLSVRfRElSfS9TY3JpcHRzL1ByZWZlcmVuY2VzVGVtcGxhdGVzL1dlYlBhZ2VVcGRhdGVQcmVm
ZXJlbmNlcy5jcHAuZXJiCiAgICAgJHtXRUJLSVRfRElSfS9TY3JpcHRzL1ByZWZlcmVuY2VzVGVt
cGxhdGVzL1dlYlByZWZlcmVuY2VzRGVmaW5pdGlvbnMuaC5lcmIKICAgICAke1dFQktJVF9ESVJ9
L1NjcmlwdHMvUHJlZmVyZW5jZXNUZW1wbGF0ZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWxG
ZWF0dXJlcy5jcHAuZXJiCisgICAgJHtXRUJLSVRfRElSfS9TY3JpcHRzL1ByZWZlcmVuY2VzVGVt
cGxhdGVzL1dlYlByZWZlcmVuY2VzR2V0dGVyU2V0dGVycy5jcHAuZXJiCiAgICAgJHtXRUJLSVRf
RElSfS9TY3JpcHRzL1ByZWZlcmVuY2VzVGVtcGxhdGVzL1dlYlByZWZlcmVuY2VzSW50ZXJuYWxE
ZWJ1Z0ZlYXR1cmVzLmNwcC5lcmIKICAgICAke1dFQktJVF9ESVJ9L1NjcmlwdHMvUHJlZmVyZW5j
ZXNUZW1wbGF0ZXMvV2ViUHJlZmVyZW5jZXNLZXlzLmNwcC5lcmIKICAgICAke1dFQktJVF9ESVJ9
L1NjcmlwdHMvUHJlZmVyZW5jZXNUZW1wbGF0ZXMvV2ViUHJlZmVyZW5jZXNLZXlzLmguZXJiCkBA
IC01MTYsOSArNTE3LDkgQEAgc2V0KFdlYktpdF9XRUJfUFJFRkVSRU5DRVMKIHNldF9zb3VyY2Vf
ZmlsZXNfcHJvcGVydGllcygke1dlYktpdF9XRUJfUFJFRkVSRU5DRVN9IFBST1BFUlRJRVMgR0VO
RVJBVEVEIFRSVUUpCiAKIGFkZF9jdXN0b21fY29tbWFuZCgKLSAgICBPVVRQVVQgJHtXZWJLaXRf
REVSSVZFRF9TT1VSQ0VTX0RJUn0vV2ViUGFnZVVwZGF0ZVByZWZlcmVuY2VzLmNwcCAke1dlYktp
dF9ERVJJVkVEX1NPVVJDRVNfRElSfS9XZWJQcmVmZXJlbmNlc0RlZmluaXRpb25zLmggJHtXZWJL
aXRfREVSSVZFRF9TT1VSQ0VTX0RJUn0vV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWxGZWF0dXJl
cy5jcHAgJHtXZWJLaXRfREVSSVZFRF9TT1VSQ0VTX0RJUn0vV2ViUHJlZmVyZW5jZXNJbnRlcm5h
bERlYnVnRmVhdHVyZXMuY3BwICR7V2ViS2l0X0RFUklWRURfU09VUkNFU19ESVJ9L1dlYlByZWZl
cmVuY2VzS2V5cy5jcHAgJHtXZWJLaXRfREVSSVZFRF9TT1VSQ0VTX0RJUn0vV2ViUHJlZmVyZW5j
ZXNLZXlzLmggJHtXZWJLaXRfREVSSVZFRF9TT1VSQ0VTX0RJUn0vV2ViUHJlZmVyZW5jZXNTdG9y
ZURlZmF1bHRzTWFwLmNwcAorICAgIE9VVFBVVCAke1dlYktpdF9ERVJJVkVEX1NPVVJDRVNfRElS
fS9XZWJQYWdlVXBkYXRlUHJlZmVyZW5jZXMuY3BwICR7V2ViS2l0X0RFUklWRURfU09VUkNFU19E
SVJ9L1dlYlByZWZlcmVuY2VzRGVmaW5pdGlvbnMuaCAke1dlYktpdF9ERVJJVkVEX1NPVVJDRVNf
RElSfS9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbEZlYXR1cmVzLmNwcCAke1dlYktpdF9ERVJJ
VkVEX1NPVVJDRVNfRElSfS9XZWJQcmVmZXJlbmNlc0dldHRlclNldHRlcnMuY3BwICR7V2ViS2l0
X0RFUklWRURfU09VUkNFU19ESVJ9L1dlYlByZWZlcmVuY2VzSW50ZXJuYWxEZWJ1Z0ZlYXR1cmVz
LmNwcCAke1dlYktpdF9ERVJJVkVEX1NPVVJDRVNfRElSfS9XZWJQcmVmZXJlbmNlc0tleXMuY3Bw
ICR7V2ViS2l0X0RFUklWRURfU09VUkNFU19ESVJ9L1dlYlByZWZlcmVuY2VzS2V5cy5oICR7V2Vi
S2l0X0RFUklWRURfU09VUkNFU19ESVJ9L1dlYlByZWZlcmVuY2VzU3RvcmVEZWZhdWx0c01hcC5j
cHAKICAgICBERVBFTkRTICR7V2ViS2l0X1dFQl9QUkVGRVJFTkNFU19URU1QTEFURVN9ICR7V2Vi
S2l0X1dFQl9QUkVGRVJFTkNFU30gV1RGX0NvcHlQcmVmZXJlbmNlcwotICAgIENPTU1BTkQgJHtS
VUJZX0VYRUNVVEFCTEV9ICR7V1RGX1NDUklQVFNfRElSfS9HZW5lcmF0ZVByZWZlcmVuY2VzLnJi
IC0tZnJvbnRlbmQgV2ViS2l0IC0tYmFzZSAke1dURl9TQ1JJUFRTX0RJUn0vUHJlZmVyZW5jZXMv
V2ViUHJlZmVyZW5jZXMueWFtbCAtLWRlYnVnICR7V1RGX1NDUklQVFNfRElSfS9QcmVmZXJlbmNl
cy9XZWJQcmVmZXJlbmNlc0RlYnVnLnlhbWwgLS1leHBlcmltZW50YWwgJHtXVEZfU0NSSVBUU19E
SVJ9L1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwgLS1pbnRlcm5h
bCAke1dURl9TQ1JJUFRTX0RJUn0vUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNJbnRlcm5hbC55
YW1sIC0tb3V0cHV0RGlyICIke1dlYktpdF9ERVJJVkVEX1NPVVJDRVNfRElSfSIgLS10ZW1wbGF0
ZSAke1dFQktJVF9ESVJ9L1NjcmlwdHMvUHJlZmVyZW5jZXNUZW1wbGF0ZXMvV2ViUGFnZVVwZGF0
ZVByZWZlcmVuY2VzLmNwcC5lcmIgLS10ZW1wbGF0ZSAke1dFQktJVF9ESVJ9L1NjcmlwdHMvUHJl
ZmVyZW5jZXNUZW1wbGF0ZXMvV2ViUHJlZmVyZW5jZXNEZWZpbml0aW9ucy5oLmVyYiAtLXRlbXBs
YXRlICR7V0VCS0lUX0RJUn0vU2NyaXB0cy9QcmVmZXJlbmNlc1RlbXBsYXRlcy9XZWJQcmVmZXJl
bmNlc0V4cGVyaW1lbnRhbEZlYXR1cmVzLmNwcC5lcmIgLS10ZW1wbGF0ZSAke1dFQktJVF9ESVJ9
L1NjcmlwdHMvUHJlZmVyZW5jZXNUZW1wbGF0ZXMvV2ViUHJlZmVyZW5jZXNJbnRlcm5hbERlYnVn
RmVhdHVyZXMuY3BwLmVyYiAtLXRlbXBsYXRlICR7V0VCS0lUX0RJUn0vU2NyaXB0cy9QcmVmZXJl
bmNlc1RlbXBsYXRlcy9XZWJQcmVmZXJlbmNlc0tleXMuY3BwLmVyYiAtLXRlbXBsYXRlICR7V0VC
S0lUX0RJUn0vU2NyaXB0cy9QcmVmZXJlbmNlc1RlbXBsYXRlcy9XZWJQcmVmZXJlbmNlc0tleXMu
aC5lcmIgLS10ZW1wbGF0ZSAke1dFQktJVF9ESVJ9L1NjcmlwdHMvUHJlZmVyZW5jZXNUZW1wbGF0
ZXMvV2ViUHJlZmVyZW5jZXNTdG9yZURlZmF1bHRzTWFwLmNwcC5lcmIKKyAgICBDT01NQU5EICR7
UlVCWV9FWEVDVVRBQkxFfSAke1dURl9TQ1JJUFRTX0RJUn0vR2VuZXJhdGVQcmVmZXJlbmNlcy5y
YiAtLWZyb250ZW5kIFdlYktpdCAtLWJhc2UgJHtXVEZfU0NSSVBUU19ESVJ9L1ByZWZlcmVuY2Vz
L1dlYlByZWZlcmVuY2VzLnlhbWwgLS1kZWJ1ZyAke1dURl9TQ1JJUFRTX0RJUn0vUHJlZmVyZW5j
ZXMvV2ViUHJlZmVyZW5jZXNEZWJ1Zy55YW1sIC0tZXhwZXJpbWVudGFsICR7V1RGX1NDUklQVFNf
RElSfS9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1sIC0taW50ZXJu
YWwgJHtXVEZfU0NSSVBUU19ESVJ9L1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzSW50ZXJuYWwu
eWFtbCAtLW91dHB1dERpciAiJHtXZWJLaXRfREVSSVZFRF9TT1VSQ0VTX0RJUn0iIC0tdGVtcGxh
dGUgJHtXRUJLSVRfRElSfS9TY3JpcHRzL1ByZWZlcmVuY2VzVGVtcGxhdGVzL1dlYlBhZ2VVcGRh
dGVQcmVmZXJlbmNlcy5jcHAuZXJiIC0tdGVtcGxhdGUgJHtXRUJLSVRfRElSfS9TY3JpcHRzL1By
ZWZlcmVuY2VzVGVtcGxhdGVzL1dlYlByZWZlcmVuY2VzRGVmaW5pdGlvbnMuaC5lcmIgLS10ZW1w
bGF0ZSAke1dFQktJVF9ESVJ9L1NjcmlwdHMvUHJlZmVyZW5jZXNUZW1wbGF0ZXMvV2ViUHJlZmVy
ZW5jZXNFeHBlcmltZW50YWxGZWF0dXJlcy5jcHAuZXJiIC0tdGVtcGxhdGUgJHtXRUJLSVRfRElS
fS9TY3JpcHRzL1ByZWZlcmVuY2VzVGVtcGxhdGVzL1dlYlByZWZlcmVuY2VzR2V0dGVyU2V0dGVy
cy5jcHAuZXJiIC0tdGVtcGxhdGUgJHtXRUJLSVRfRElSfS9TY3JpcHRzL1ByZWZlcmVuY2VzVGVt
cGxhdGVzL1dlYlByZWZlcmVuY2VzSW50ZXJuYWxEZWJ1Z0ZlYXR1cmVzLmNwcC5lcmIgLS10ZW1w
bGF0ZSAke1dFQktJVF9ESVJ9L1NjcmlwdHMvUHJlZmVyZW5jZXNUZW1wbGF0ZXMvV2ViUHJlZmVy
ZW5jZXNLZXlzLmNwcC5lcmIgLS10ZW1wbGF0ZSAke1dFQktJVF9ESVJ9L1NjcmlwdHMvUHJlZmVy
ZW5jZXNUZW1wbGF0ZXMvV2ViUHJlZmVyZW5jZXNLZXlzLmguZXJiIC0tdGVtcGxhdGUgJHtXRUJL
SVRfRElSfS9TY3JpcHRzL1ByZWZlcmVuY2VzVGVtcGxhdGVzL1dlYlByZWZlcmVuY2VzU3RvcmVE
ZWZhdWx0c01hcC5jcHAuZXJiCiAgICAgVkVSQkFUSU0pCiAKIGxpc3QoQVBQRU5EIFdlYktpdF9I
RUFERVJTCkBAIC01MjksNiArNTMwLDcgQEAgbGlzdChBUFBFTkQgV2ViS2l0X0hFQURFUlMKIGxp
c3QoQVBQRU5EIFdlYktpdF9TT1VSQ0VTCiAgICAgJHtXZWJLaXRfREVSSVZFRF9TT1VSQ0VTX0RJ
Un0vV2ViUGFnZVVwZGF0ZVByZWZlcmVuY2VzLmNwcAogICAgICR7V2ViS2l0X0RFUklWRURfU09V
UkNFU19ESVJ9L1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsRmVhdHVyZXMuY3BwCisgICAgJHtX
ZWJLaXRfREVSSVZFRF9TT1VSQ0VTX0RJUn0vV2ViUHJlZmVyZW5jZXNHZXR0ZXJTZXR0ZXJzLmNw
cAogICAgICR7V2ViS2l0X0RFUklWRURfU09VUkNFU19ESVJ9L1dlYlByZWZlcmVuY2VzSW50ZXJu
YWxEZWJ1Z0ZlYXR1cmVzLmNwcAogICAgICR7V2ViS2l0X0RFUklWRURfU09VUkNFU19ESVJ9L1dl
YlByZWZlcmVuY2VzS2V5cy5jcHAKICAgICAke1dlYktpdF9ERVJJVkVEX1NPVVJDRVNfRElSfS9X
ZWJQcmVmZXJlbmNlc1N0b3JlRGVmYXVsdHNNYXAuY3BwCkluZGV4OiBTb3VyY2UvV2ViS2l0L0Rl
cml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CShyZXZpc2lvbiAyNjgzMjUpCisrKyBT
b3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QJKHdvcmtpbmcgY29w
eSkKQEAgLTY4LDYgKzY4LDcgQEAgJChQUk9KRUNUX0RJUikvUGx1Z2luUHJvY2Vzcy9tYWMvY29t
LmFwcAogJChQUk9KRUNUX0RJUikvU2NyaXB0cy9QcmVmZXJlbmNlc1RlbXBsYXRlcy9XZWJQYWdl
VXBkYXRlUHJlZmVyZW5jZXMuY3BwLmVyYgogJChQUk9KRUNUX0RJUikvU2NyaXB0cy9QcmVmZXJl
bmNlc1RlbXBsYXRlcy9XZWJQcmVmZXJlbmNlc0RlZmluaXRpb25zLmguZXJiCiAkKFBST0pFQ1Rf
RElSKS9TY3JpcHRzL1ByZWZlcmVuY2VzVGVtcGxhdGVzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVu
dGFsRmVhdHVyZXMuY3BwLmVyYgorJChQUk9KRUNUX0RJUikvU2NyaXB0cy9QcmVmZXJlbmNlc1Rl
bXBsYXRlcy9XZWJQcmVmZXJlbmNlc0dldHRlclNldHRlcnMuY3BwLmVyYgogJChQUk9KRUNUX0RJ
UikvU2NyaXB0cy9QcmVmZXJlbmNlc1RlbXBsYXRlcy9XZWJQcmVmZXJlbmNlc0ludGVybmFsRGVi
dWdGZWF0dXJlcy5jcHAuZXJiCiAkKFBST0pFQ1RfRElSKS9TY3JpcHRzL1ByZWZlcmVuY2VzVGVt
cGxhdGVzL1dlYlByZWZlcmVuY2VzS2V5cy5jcHAuZXJiCiAkKFBST0pFQ1RfRElSKS9TY3JpcHRz
L1ByZWZlcmVuY2VzVGVtcGxhdGVzL1dlYlByZWZlcmVuY2VzS2V5cy5oLmVyYgpJbmRleDogU291
cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CShyZXZpc2lv
biAyNjgzMjUpCisrKyBTb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVs
aXN0CSh3b3JraW5nIGNvcHkpCkBAIC0zNjksNiArMzY5LDcgQEAgJChCVUlMVF9QUk9EVUNUU19E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYgogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYktpdDIvV2ViUHJlZmVyZW5jZXNDb21iaW5lZC55YW1sCiAkKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJQcmVmZXJlbmNlc0RlZmluaXRpb25zLmgK
ICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYlByZWZlcmVu
Y2VzRXhwZXJpbWVudGFsRmVhdHVyZXMuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZl
ZFNvdXJjZXMvV2ViS2l0Mi9XZWJQcmVmZXJlbmNlc0dldHRlclNldHRlcnMuY3BwCiAkKEJVSUxU
X1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJQcmVmZXJlbmNlc0ludGVy
bmFsRGVidWdGZWF0dXJlcy5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJLaXQyL1dlYlByZWZlcmVuY2VzS2V5cy5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYlByZWZlcmVuY2VzS2V5cy5oCkluZGV4OiBTb3VyY2Uv
V2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9E
ZXJpdmVkU291cmNlcy5tYWtlCShyZXZpc2lvbiAyNjgzMjUpCisrKyBTb3VyY2UvV2ViS2l0L0Rl
cml2ZWRTb3VyY2VzLm1ha2UJKHdvcmtpbmcgY29weSkKQEAgLTM1Myw5ICszNTMsMTAgQEAgV0VC
X1BSRUZFUkVOQ0VTX1RFTVBMQVRFUyA9IFwKICAgICAkKFdlYktpdDIpL1NjcmlwdHMvUHJlZmVy
ZW5jZXNUZW1wbGF0ZXMvV2ViUGFnZVVwZGF0ZVByZWZlcmVuY2VzLmNwcC5lcmIgXAogICAgICQo
V2ViS2l0MikvU2NyaXB0cy9QcmVmZXJlbmNlc1RlbXBsYXRlcy9XZWJQcmVmZXJlbmNlc0RlZmlu
aXRpb25zLmguZXJiIFwKICAgICAkKFdlYktpdDIpL1NjcmlwdHMvUHJlZmVyZW5jZXNUZW1wbGF0
ZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWxGZWF0dXJlcy5jcHAuZXJiIFwKKyAgICAkKFdl
YktpdDIpL1NjcmlwdHMvUHJlZmVyZW5jZXNUZW1wbGF0ZXMvV2ViUHJlZmVyZW5jZXNHZXR0ZXJT
ZXR0ZXJzLmNwcC5lcmIgXAogICAgICQoV2ViS2l0MikvU2NyaXB0cy9QcmVmZXJlbmNlc1RlbXBs
YXRlcy9XZWJQcmVmZXJlbmNlc0ludGVybmFsRGVidWdGZWF0dXJlcy5jcHAuZXJiIFwKLSAgICAk
KFdlYktpdDIpL1NjcmlwdHMvUHJlZmVyZW5jZXNUZW1wbGF0ZXMvV2ViUHJlZmVyZW5jZXNLZXlz
LmguZXJiIFwKICAgICAkKFdlYktpdDIpL1NjcmlwdHMvUHJlZmVyZW5jZXNUZW1wbGF0ZXMvV2Vi
UHJlZmVyZW5jZXNLZXlzLmNwcC5lcmIgXAorICAgICQoV2ViS2l0MikvU2NyaXB0cy9QcmVmZXJl
bmNlc1RlbXBsYXRlcy9XZWJQcmVmZXJlbmNlc0tleXMuaC5lcmIgXAogICAgICQoV2ViS2l0Mikv
U2NyaXB0cy9QcmVmZXJlbmNlc1RlbXBsYXRlcy9XZWJQcmVmZXJlbmNlc1N0b3JlRGVmYXVsdHNN
YXAuY3BwLmVyYiBcCiAjCiBXRUJfUFJFRkVSRU5DRVNfRklMRVMgPSAkKGJhc2VuYW1lICQobm90
ZGlyICQoV0VCX1BSRUZFUkVOQ0VTX1RFTVBMQVRFUykpKQpJbmRleDogU291cmNlL1dlYktpdC9T
Y3JpcHRzL1ByZWZlcmVuY2VzVGVtcGxhdGVzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsRmVh
dHVyZXMuY3BwLmVyYgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1NjcmlwdHMvUHJlZmVy
ZW5jZXNUZW1wbGF0ZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWxGZWF0dXJlcy5jcHAuZXJi
CShyZXZpc2lvbiAyNjgzMjUpCisrKyBTb3VyY2UvV2ViS2l0L1NjcmlwdHMvUHJlZmVyZW5jZXNU
ZW1wbGF0ZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWxGZWF0dXJlcy5jcHAuZXJiCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zMywyMCArMzMsNiBAQAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotPCUt
IGZvciBAcHJlZiBpbiBAZXhwZXJpbWVudGFsRmVhdHVyZXMgZG8gLSU+Ci12b2lkIFdlYlByZWZl
cmVuY2VzOjpzZXQ8JT0gQHByZWYubmFtZSAlPihjb25zdCBib29sJiB2YWx1ZSkKLXsKLSAgICBp
ZiAoIW1fc3RvcmUuc2V0Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5Ojo8JT0gQHBy
ZWYubmFtZUxvd2VyICU+S2V5KCksIHZhbHVlKSkKLSAgICAgICAgcmV0dXJuOwotICAgIHVwZGF0
ZUJvb2xWYWx1ZUZvckV4cGVyaW1lbnRhbEZlYXR1cmVLZXkoV2ViUHJlZmVyZW5jZXNLZXk6Ojwl
PSBAcHJlZi5uYW1lTG93ZXIgJT5LZXkoKSwgdmFsdWUpOwotfQotCi1ib29sIFdlYlByZWZlcmVu
Y2VzOjo8JT0gQHByZWYubmFtZUxvd2VyICU+KCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9zdG9y
ZS5nZXRCb29sVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OjwlPSBAcHJlZi5uYW1lTG93
ZXIgJT5LZXkoKSk7Ci19Ci0KLTwlLSBlbmQgLSU+CiBjb25zdCBWZWN0b3I8UmVmUHRyPEFQSTo6
T2JqZWN0Pj4mIFdlYlByZWZlcmVuY2VzOjpleHBlcmltZW50YWxGZWF0dXJlcygpCiB7CiAgICAg
c3RhdGljIE5ldmVyRGVzdHJveWVkPFZlY3RvcjxSZWZQdHI8QVBJOjpPYmplY3Q+Pj4gZmVhdHVy
ZXMoc3RkOjppbml0aWFsaXplcl9saXN0PFJlZlB0cjxBUEk6Ok9iamVjdD4+IHsKSW5kZXg6IFNv
dXJjZS9XZWJLaXQvU2NyaXB0cy9QcmVmZXJlbmNlc1RlbXBsYXRlcy9XZWJQcmVmZXJlbmNlc0dl
dHRlclNldHRlcnMuY3BwLmVyYgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1NjcmlwdHMv
UHJlZmVyZW5jZXNUZW1wbGF0ZXMvV2ViUHJlZmVyZW5jZXNHZXR0ZXJTZXR0ZXJzLmNwcC5lcmIJ
KG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYktpdC9TY3JpcHRzL1ByZWZlcmVuY2VzVGVtcGxh
dGVzL1dlYlByZWZlcmVuY2VzR2V0dGVyU2V0dGVycy5jcHAuZXJiCSh3b3JraW5nIGNvcHkpCkBA
IC0wLDAgKzEsOTUgQEAKKy8qCisqIDwlPSBAd2FybmluZyAlPgorKgorKiBDb3B5cmlnaHQgKEMp
IDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorKgorKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisqIGFyZSBtZXQ6CisqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorKgorKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJXZWJQcmVmZXJlbmNlcy5oIgorCisjaW5jbHVkZSAiV2ViUHJlZmVyZW5jZXNLZXlzLmgiCisK
K25hbWVzcGFjZSBXZWJLaXQgeworCis8JS0gZm9yIEBwcmVmIGluIChAcHJlZmVyZW5jZXNOb3RE
ZWJ1ZyArIEBwcmVmZXJlbmNlc0RlYnVnKSBkbyAtJT4KK3ZvaWQgV2ViUHJlZmVyZW5jZXM6OnNl
dDwlPSBAcHJlZi5uYW1lICU+KGNvbnN0IDwlPSBAcHJlZi50eXBlICU+JiB2YWx1ZSkKK3sKKyAg
ICBpZiAoIW1fc3RvcmUuc2V0PCU9IEBwcmVmLnR5cGVVcHBlciAlPlZhbHVlRm9yS2V5KFdlYlBy
ZWZlcmVuY2VzS2V5Ojo8JT0gQHByZWYubmFtZUxvd2VyICU+S2V5KCksIHZhbHVlKSkKKyAgICAg
ICAgcmV0dXJuOworICAgIHVwZGF0ZTwlPSBAcHJlZi50eXBlVXBwZXIgJT5WYWx1ZUZvcktleShX
ZWJQcmVmZXJlbmNlc0tleTo6PCU9IEBwcmVmLm5hbWVMb3dlciAlPktleSgpLCB2YWx1ZSk7Cit9
CisKKzwlPSBAcHJlZi50eXBlICU+IFdlYlByZWZlcmVuY2VzOjo8JT0gQHByZWYubmFtZUxvd2Vy
ICU+KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9zdG9yZS5nZXQ8JT0gQHByZWYudHlwZVVwcGVy
ICU+VmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OjwlPSBAcHJlZi5uYW1lTG93ZXIgJT5L
ZXkoKSk7Cit9CisKK3ZvaWQgV2ViUHJlZmVyZW5jZXM6OmRlbGV0ZTwlPSBAcHJlZi5uYW1lICU+
KCkKK3sKKyAgICBkZWxldGVLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OjwlPSBAcHJlZi5uYW1lTG93
ZXIgJT5LZXkoKSk7Cit9CisKKzwlLSBlbmQgLSU+CisKKzwlLSBmb3IgQHByZWYgaW4gQGV4cGVy
aW1lbnRhbEZlYXR1cmVzIGRvIC0lPgordm9pZCBXZWJQcmVmZXJlbmNlczo6c2V0PCU9IEBwcmVm
Lm5hbWUgJT4oY29uc3QgYm9vbCYgdmFsdWUpCit7CisgICAgaWYgKCFtX3N0b3JlLnNldEJvb2xW
YWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6PCU9IEBwcmVmLm5hbWVMb3dlciAlPktleSgp
LCB2YWx1ZSkpCisgICAgICAgIHJldHVybjsKKyAgICB1cGRhdGVCb29sVmFsdWVGb3JFeHBlcmlt
ZW50YWxGZWF0dXJlS2V5KFdlYlByZWZlcmVuY2VzS2V5Ojo8JT0gQHByZWYubmFtZUxvd2VyICU+
S2V5KCksIHZhbHVlKTsKK30KKworYm9vbCBXZWJQcmVmZXJlbmNlczo6PCU9IEBwcmVmLm5hbWVM
b3dlciAlPigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fc3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5
KFdlYlByZWZlcmVuY2VzS2V5Ojo8JT0gQHByZWYubmFtZUxvd2VyICU+S2V5KCkpOworfQorCit2
b2lkIFdlYlByZWZlcmVuY2VzOjpkZWxldGU8JT0gQHByZWYubmFtZSAlPigpCit7CisgICAgZGVs
ZXRlS2V5KFdlYlByZWZlcmVuY2VzS2V5Ojo8JT0gQHByZWYubmFtZUxvd2VyICU+S2V5KCkpOwor
fQorCis8JS0gZW5kIC0lPgorCis8JS0gZm9yIEBwcmVmIGluIEBpbnRlcm5hbEZlYXR1cmVzIGRv
IC0lPgordm9pZCBXZWJQcmVmZXJlbmNlczo6c2V0PCU9IEBwcmVmLm5hbWUgJT4oY29uc3QgYm9v
bCYgdmFsdWUpCit7CisgICAgaWYgKCFtX3N0b3JlLnNldEJvb2xWYWx1ZUZvcktleShXZWJQcmVm
ZXJlbmNlc0tleTo6PCU9IEBwcmVmLm5hbWVMb3dlciAlPktleSgpLCB2YWx1ZSkpCisgICAgICAg
IHJldHVybjsKKyAgICB1cGRhdGVCb29sVmFsdWVGb3JJbnRlcm5hbERlYnVnRmVhdHVyZUtleShX
ZWJQcmVmZXJlbmNlc0tleTo6PCU9IEBwcmVmLm5hbWVMb3dlciAlPktleSgpLCB2YWx1ZSk7Cit9
CisKK2Jvb2wgV2ViUHJlZmVyZW5jZXM6OjwlPSBAcHJlZi5uYW1lTG93ZXIgJT4oKSBjb25zdAor
eworICAgIHJldHVybiBtX3N0b3JlLmdldEJvb2xWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tl
eTo6PCU9IEBwcmVmLm5hbWVMb3dlciAlPktleSgpKTsKK30KKwordm9pZCBXZWJQcmVmZXJlbmNl
czo6ZGVsZXRlPCU9IEBwcmVmLm5hbWUgJT4oKQoreworICAgIGRlbGV0ZUtleShXZWJQcmVmZXJl
bmNlc0tleTo6PCU9IEBwcmVmLm5hbWVMb3dlciAlPktleSgpKTsKK30KKworPCUtIGVuZCAtJT4K
KworfQpJbmRleDogU291cmNlL1dlYktpdC9TY3JpcHRzL1ByZWZlcmVuY2VzVGVtcGxhdGVzL1dl
YlByZWZlcmVuY2VzSW50ZXJuYWxEZWJ1Z0ZlYXR1cmVzLmNwcC5lcmIKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdC9TY3JpcHRzL1ByZWZlcmVuY2VzVGVtcGxhdGVzL1dlYlByZWZlcmVuY2Vz
SW50ZXJuYWxEZWJ1Z0ZlYXR1cmVzLmNwcC5lcmIJKHJldmlzaW9uIDI2ODMyNSkKKysrIFNvdXJj
ZS9XZWJLaXQvU2NyaXB0cy9QcmVmZXJlbmNlc1RlbXBsYXRlcy9XZWJQcmVmZXJlbmNlc0ludGVy
bmFsRGVidWdGZWF0dXJlcy5jcHAuZXJiCSh3b3JraW5nIGNvcHkpCkBAIC0zMywyMCArMzMsNiBA
QAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotPCUtIGZvciBAcHJlZiBpbiBAaW50ZXJuYWxGZWF0
dXJlcyBkbyAtJT4KLXZvaWQgV2ViUHJlZmVyZW5jZXM6OnNldDwlPSBAcHJlZi5uYW1lICU+KGNv
bnN0IGJvb2wmIHZhbHVlKQotewotICAgIGlmICghbV9zdG9yZS5zZXRCb29sVmFsdWVGb3JLZXko
V2ViUHJlZmVyZW5jZXNLZXk6OjwlPSBAcHJlZi5uYW1lTG93ZXIgJT5LZXkoKSwgdmFsdWUpKQot
ICAgICAgICByZXR1cm47Ci0gICAgdXBkYXRlQm9vbFZhbHVlRm9ySW50ZXJuYWxEZWJ1Z0ZlYXR1
cmVLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OjwlPSBAcHJlZi5uYW1lTG93ZXIgJT5LZXkoKSwgdmFs
dWUpOwotfQotCi1ib29sIFdlYlByZWZlcmVuY2VzOjo8JT0gQHByZWYubmFtZUxvd2VyICU+KCkg
Y29uc3QKLXsKLSAgICByZXR1cm4gbV9zdG9yZS5nZXRCb29sVmFsdWVGb3JLZXkoV2ViUHJlZmVy
ZW5jZXNLZXk6OjwlPSBAcHJlZi5uYW1lTG93ZXIgJT5LZXkoKSk7Ci19Ci0KLTwlLSBlbmQgLSU+
CiBjb25zdCBWZWN0b3I8UmVmUHRyPEFQSTo6T2JqZWN0Pj4mIFdlYlByZWZlcmVuY2VzOjppbnRl
cm5hbERlYnVnRmVhdHVyZXMoKQogewogICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxWZWN0b3I8
UmVmUHRyPEFQSTo6T2JqZWN0Pj4+IGZlYXR1cmVzKHN0ZDo6aW5pdGlhbGl6ZXJfbGlzdDxSZWZQ
dHI8QVBJOjpPYmplY3Q+PiB7CkluZGV4OiBTb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvYy9XS1N0
cmluZy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL2MvV0tTdHJp
bmcuY3BwCShyZXZpc2lvbiAyNjgzMjUpCisrKyBTb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvYy9X
S1N0cmluZy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ0LDYgKzQ0LDExIEBAIFdLU3RyaW5nUmVm
IFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW4KICAgICByZXR1cm4gV2ViS2l0Ojp0b0FQSSgm
QVBJOjpTdHJpbmc6OmNyZWF0ZShXVEY6OlN0cmluZzo6ZnJvbVVURjgoc3RyaW5nKSkubGVha1Jl
ZigpKTsKIH0KIAorV0tTdHJpbmdSZWYgV0tTdHJpbmdDcmVhdGVXaXRoVVRGOFN0cmluZ1dpdGhM
ZW5ndGgoY29uc3QgY2hhciogc3RyaW5nLCBzaXplX3QgbGVuZ3RoKQoreworICAgIHJldHVybiBX
ZWJLaXQ6OnRvQVBJKCZBUEk6OlN0cmluZzo6Y3JlYXRlKFdURjo6U3RyaW5nOjpmcm9tVVRGOChz
dHJpbmcsIGxlbmd0aCkpLmxlYWtSZWYoKSk7Cit9CisKIGJvb2wgV0tTdHJpbmdJc0VtcHR5KFdL
U3RyaW5nUmVmIHN0cmluZ1JlZikKIHsKICAgICByZXR1cm4gV2ViS2l0Ojp0b0ltcGwoc3RyaW5n
UmVmKS0+c3RyaW5nVmlldygpLmlzRW1wdHkoKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvU2hhcmVk
L0FQSS9jL1dLU3RyaW5nLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9TaGFyZWQvQVBJ
L2MvV0tTdHJpbmcuaAkocmV2aXNpb24gMjY4MzI1KQorKysgU291cmNlL1dlYktpdC9TaGFyZWQv
QVBJL2MvV0tTdHJpbmcuaAkod29ya2luZyBjb3B5KQpAQCAtNDcsNiArNDcsNyBAQCBleHRlcm4g
IkMiIHsKIFdLX0VYUE9SVCBXS1R5cGVJRCBXS1N0cmluZ0dldFR5cGVJRCh2b2lkKTsKIAogV0tf
RVhQT1JUIFdLU3RyaW5nUmVmIFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKGNvbnN0IGNo
YXIqIHN0cmluZyk7CitXS19FWFBPUlQgV0tTdHJpbmdSZWYgV0tTdHJpbmdDcmVhdGVXaXRoVVRG
OFN0cmluZ1dpdGhMZW5ndGgoY29uc3QgY2hhciogc3RyaW5nLCBzaXplX3QgbGVuZ3RoKTsKIAog
V0tfRVhQT1JUIGJvb2wgV0tTdHJpbmdJc0VtcHR5KFdLU3RyaW5nUmVmIHN0cmluZyk7CiAKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByZWZlcmVuY2VzLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcmVmZXJlbmNlcy5jcHAJKHJldmlzaW9u
IDI2ODMyNSkKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByZWZlcmVuY2VzLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMTAyLDYgKzEwMiwzNCBAQCB2b2lkIFdlYlByZWZlcmVuY2VzOjp1
cGRhdGUoKQogICAgICAgICB3ZWJQYWdlUHJveHktPnByZWZlcmVuY2VzRGlkQ2hhbmdlKCk7CiB9
CiAKK3ZvaWQgV2ViUHJlZmVyZW5jZXM6OnNldEJvb2xWYWx1ZUZvcktleShjb25zdCBTdHJpbmcm
IGtleSwgYm9vbCB2YWx1ZSkKK3sKKyAgICBpZiAoIW1fc3RvcmUuc2V0Qm9vbFZhbHVlRm9yS2V5
KGtleSwgdmFsdWUpKQorICAgICAgICByZXR1cm47CisgICAgdXBkYXRlQm9vbFZhbHVlRm9yS2V5
KGtleSwgdmFsdWUpOworfQorCit2b2lkIFdlYlByZWZlcmVuY2VzOjpzZXREb3VibGVWYWx1ZUZv
cktleShjb25zdCBTdHJpbmcmIGtleSwgZG91YmxlIHZhbHVlKQoreworICAgIGlmICghbV9zdG9y
ZS5zZXREb3VibGVWYWx1ZUZvcktleShrZXksIHZhbHVlKSkKKyAgICAgICAgcmV0dXJuOworICAg
IHVwZGF0ZURvdWJsZVZhbHVlRm9yS2V5KGtleSwgdmFsdWUpOworfQorCit2b2lkIFdlYlByZWZl
cmVuY2VzOjpzZXRVSW50MzJWYWx1ZUZvcktleShjb25zdCBTdHJpbmcmIGtleSwgdWludDMyX3Qg
dmFsdWUpCit7CisgICAgaWYgKCFtX3N0b3JlLnNldFVJbnQzMlZhbHVlRm9yS2V5KGtleSwgdmFs
dWUpKQorICAgICAgICByZXR1cm47CisgICAgdXBkYXRlVUludDMyVmFsdWVGb3JLZXkoa2V5LCB2
YWx1ZSk7Cit9CisKK3ZvaWQgV2ViUHJlZmVyZW5jZXM6OnNldFN0cmluZ1ZhbHVlRm9yS2V5KGNv
bnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIHZhbHVlKQoreworICAgIGlmICghbV9zdG9y
ZS5zZXRTdHJpbmdWYWx1ZUZvcktleShrZXksIHZhbHVlKSkKKyAgICAgICAgcmV0dXJuOworICAg
IHVwZGF0ZVN0cmluZ1ZhbHVlRm9yS2V5KGtleSwgdmFsdWUpOworfQorCiB2b2lkIFdlYlByZWZl
cmVuY2VzOjp1cGRhdGVTdHJpbmdWYWx1ZUZvcktleShjb25zdCBTdHJpbmcmIGtleSwgY29uc3Qg
U3RyaW5nJiB2YWx1ZSkKIHsKICAgICBwbGF0Zm9ybVVwZGF0ZVN0cmluZ1ZhbHVlRm9yS2V5KGtl
eSwgdmFsdWUpOwpAQCAtMTU1LDMwICsxODMsNiBAQCB2b2lkIFdlYlByZWZlcmVuY2VzOjpkZWxl
dGVLZXkoY29uc3QgU3RyCiAgICAgdXBkYXRlKCk7IC8vIEZJWE1FOiBPbmx5IHNlbmQgb3ZlciB0
aGUgY2hhbmdlZCBrZXkgYW5kIHZhbHVlLgogfQogCi0jZGVmaW5lIERFRklORV9QUkVGRVJFTkNF
X0dFVFRFUl9BTkRfU0VUVEVSUyhLZXlVcHBlciwgS2V5TG93ZXIsIFR5cGVOYW1lLCBUeXBlLCBE
ZWZhdWx0VmFsdWUsIEh1bWFuUmVhZGFibGVOYW1lLCBIdW1hblJlYWRhYmxlRGVzY3JpcHRpb24p
IFwKLSAgICB2b2lkIFdlYlByZWZlcmVuY2VzOjpzZXQjI0tleVVwcGVyKGNvbnN0IFR5cGUmIHZh
bHVlKSBcCi0gICAgeyBcCi0gICAgICAgIGlmICghbV9zdG9yZS5zZXQjI1R5cGVOYW1lIyNWYWx1
ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6S2V5TG93ZXIjI0tleSgpLCB2YWx1ZSkpIFwKLSAg
ICAgICAgICAgIHJldHVybjsgXAotICAgICAgICB1cGRhdGUjI1R5cGVOYW1lIyNWYWx1ZUZvcktl
eShXZWJQcmVmZXJlbmNlc0tleTo6S2V5TG93ZXIjI0tleSgpLCB2YWx1ZSk7IFwKLSAgICB9IFwK
LSAgICBcCi0gICAgdm9pZCBXZWJQcmVmZXJlbmNlczo6ZGVsZXRlIyNLZXlVcHBlcigpIFwKLSAg
ICB7IFwKLSAgICAgICAgZGVsZXRlS2V5KFdlYlByZWZlcmVuY2VzS2V5OjpLZXlMb3dlciMjS2V5
KCkpOyBcCi0gICAgfSBcCi0gICAgXAotICAgIFR5cGUgV2ViUHJlZmVyZW5jZXM6OktleUxvd2Vy
KCkgY29uc3QgXAotICAgIHsgXAotICAgICAgICByZXR1cm4gbV9zdG9yZS5nZXQjI1R5cGVOYW1l
IyNWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6S2V5TG93ZXIjI0tleSgpKTsgXAotICAg
IH0gXAotCi1GT1JfRUFDSF9XRUJLSVRfUFJFRkVSRU5DRShERUZJTkVfUFJFRkVSRU5DRV9HRVRU
RVJfQU5EX1NFVFRFUlMpCi1GT1JfRUFDSF9XRUJLSVRfREVCVUdfUFJFRkVSRU5DRShERUZJTkVf
UFJFRkVSRU5DRV9HRVRURVJfQU5EX1NFVFRFUlMpCi0KLSN1bmRlZiBERUZJTkVfUFJFRkVSRU5D
RV9HRVRURVJfQU5EX1NFVFRFUlMKLQotCiB2b2lkIFdlYlByZWZlcmVuY2VzOjpyZWdpc3RlckRl
ZmF1bHRCb29sVmFsdWVGb3JLZXkoY29uc3QgU3RyaW5nJiBrZXksIGJvb2wgdmFsdWUpCiB7CiAg
ICAgbV9zdG9yZS5zZXRPdmVycmlkZURlZmF1bHRzQm9vbFZhbHVlRm9yS2V5KGtleSwgdmFsdWUp
OwpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJlZmVyZW5jZXMuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcmVmZXJlbmNlcy5oCShyZXZpc2lv
biAyNjgzMjUpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcmVmZXJlbmNlcy5oCSh3
b3JraW5nIGNvcHkpCkBAIC01OSw2ICs1OSw3IEBAIHB1YmxpYzoKIAogICAgIGNvbnN0IFdlYlBy
ZWZlcmVuY2VzU3RvcmUmIHN0b3JlKCkgY29uc3QgeyByZXR1cm4gbV9zdG9yZTsgfQogCisgICAg
Ly8gSW1wbGVtZW50ZWQgaW4gZ2VuZXJhdGVkIGZpbGUgV2ViUHJlZmVyZW5jZXNHZXR0ZXJTZXR0
ZXJzLmNwcC4KICAgICBGT1JfRUFDSF9XRUJLSVRfUFJFRkVSRU5DRShERUNMQVJFX1BSRUZFUkVO
Q0VfR0VUVEVSX0FORF9TRVRURVJTKQogICAgIEZPUl9FQUNIX1dFQktJVF9ERUJVR19QUkVGRVJF
TkNFKERFQ0xBUkVfUFJFRkVSRU5DRV9HRVRURVJfQU5EX1NFVFRFUlMpCiAgICAgRk9SX0VBQ0hf
V0VCS0lUX0lOVEVSTkFMX0RFQlVHX0ZFQVRVUkVfUFJFRkVSRU5DRShERUNMQVJFX1BSRUZFUkVO
Q0VfR0VUVEVSX0FORF9TRVRURVJTKQpAQCAtNzcsNiArNzgsMTAgQEAgcHVibGljOgogICAgIHZv
aWQgcmVzZXRBbGxJbnRlcm5hbERlYnVnRmVhdHVyZXMoKTsKIAogICAgIC8vIEV4cG9zZWQgZm9y
IFdlYktpdFRlc3RSdW5uZXIgdXNlIG9ubHkuCisgICAgdm9pZCBzZXRCb29sVmFsdWVGb3JLZXko
Y29uc3QgU3RyaW5nJiwgYm9vbCB2YWx1ZSk7CisgICAgdm9pZCBzZXREb3VibGVWYWx1ZUZvcktl
eShjb25zdCBTdHJpbmcmLCBkb3VibGUgdmFsdWUpOworICAgIHZvaWQgc2V0VUludDMyVmFsdWVG
b3JLZXkoY29uc3QgU3RyaW5nJiwgdWludDMyX3QgdmFsdWUpOworICAgIHZvaWQgc2V0U3RyaW5n
VmFsdWVGb3JLZXkoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiB2YWx1ZSk7CiAgICAgdm9p
ZCBmb3JjZVVwZGF0ZSgpIHsgdXBkYXRlKCk7IH0KIAogcHJpdmF0ZToKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwCShyZXZpc2lvbiAy
NjgzMjUpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNzgsNiArNzgsMjYgQEAgdm9pZCBXS1ByZWZlcmVuY2VzU2V0
SW50ZXJuYWxEZWJ1Z0ZlYXR1cgogICAgIHRvSW1wbChwcmVmZXJlbmNlc1JlZiktPnNldEludGVy
bmFsRGVidWdGZWF0dXJlRW5hYmxlZEZvcktleSh0b1dURlN0cmluZyhpbnRlcm5hbERlYnVnRmVh
dHVyZUtleSksIHZhbHVlKTsKIH0KIAordm9pZCBXS1ByZWZlcmVuY2VzU2V0Qm9vbFZhbHVlRm9y
S2V5KFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYsIGJvb2wgdmFsdWUsIFdLU3RyaW5n
UmVmIGtleSkKK3sKKyAgICB0b0ltcGwocHJlZmVyZW5jZXNSZWYpLT5zZXRCb29sVmFsdWVGb3JL
ZXkodG9XVEZTdHJpbmcoa2V5KSwgdmFsdWUpOworfQorCit2b2lkIFdLUHJlZmVyZW5jZXNTZXRE
b3VibGVWYWx1ZUZvcktleShXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmLCBkb3VibGUg
dmFsdWUsIFdLU3RyaW5nUmVmIGtleSkKK3sKKyAgICB0b0ltcGwocHJlZmVyZW5jZXNSZWYpLT5z
ZXRCb29sVmFsdWVGb3JLZXkodG9XVEZTdHJpbmcoa2V5KSwgdmFsdWUpOworfQorCit2b2lkIFdL
UHJlZmVyZW5jZXNTZXRVSW50MzJWYWx1ZUZvcktleShXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVu
Y2VzUmVmLCB1aW50MzJfdCB2YWx1ZSwgV0tTdHJpbmdSZWYga2V5KQoreworICAgIHRvSW1wbChw
cmVmZXJlbmNlc1JlZiktPnNldFVJbnQzMlZhbHVlRm9yS2V5KHRvV1RGU3RyaW5nKGtleSksIHZh
bHVlKTsKK30KKwordm9pZCBXS1ByZWZlcmVuY2VzU2V0U3RyaW5nVmFsdWVGb3JLZXkoV0tQcmVm
ZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZiwgV0tTdHJpbmdSZWYgdmFsdWUsIFdLU3RyaW5nUmVm
IGtleSkKK3sKKyAgICB0b0ltcGwocHJlZmVyZW5jZXNSZWYpLT5zZXRTdHJpbmdWYWx1ZUZvcktl
eSh0b1dURlN0cmluZyhrZXkpLCB0b1dURlN0cmluZyh2YWx1ZSkpOworfQorCiB2b2lkIFdLUHJl
ZmVyZW5jZXNSZXNldFRlc3RSdW5uZXJPdmVycmlkZXMoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJl
bmNlc1JlZikKIHsKICAgICAvLyBDdXJyZW50bHkgd2UgcmVzZXQgdGhlIG92ZXJyaWRlcyBvbiB0
aGUgd2ViIHByb2Nlc3Mgd2hlbiBwcmVmZXJlbmNlc0RpZENoYW5nZSgpIGlzIGNhbGxlZC4gU2lu
Y2UgV1RSIHByZWZlcmVuY2VzCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9X
S1ByZWZlcmVuY2VzUmVmUHJpdmF0ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXNSZWZQcml2YXRlLmgJKHJldmlzaW9uIDI2ODMyNSkK
KysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXNSZWZQcml2YXRl
LmgJKHdvcmtpbmcgY29weSkKQEAgLTU1LDYgKzU1LDEzIEBAIFdLX0VYUE9SVCB2b2lkIFdLUHJl
ZmVyZW5jZXNTZXRFeHBlcmltZW4KIFdLX0VYUE9SVCB2b2lkIFdLUHJlZmVyZW5jZXNSZXNldEFs
bEludGVybmFsRGVidWdGZWF0dXJlcyhXS1ByZWZlcmVuY2VzUmVmKTsKIFdLX0VYUE9SVCB2b2lk
IFdLUHJlZmVyZW5jZXNTZXRJbnRlcm5hbERlYnVnRmVhdHVyZUZvcktleShXS1ByZWZlcmVuY2Vz
UmVmLCBib29sLCBXS1N0cmluZ1JlZik7CiAKKy8vIFRoZSBmb2xsb3dpbmcgZ2VuZXJpYyBzZXR0
ZXIgZnVuY3Rpb25zIGFyZSBvbmx5IGludGVuZGVkIGZvciB1c2UgYnkgdGVzdGluZyBpbmZyYXN0
cnVjdHVyZS4KK1dLX0VYUE9SVCB2b2lkIFdLUHJlZmVyZW5jZXNTZXRCb29sVmFsdWVGb3JLZXko
V0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZiwgYm9vbCB2YWx1ZSwgV0tTdHJpbmdSZWYg
a2V5KTsKK1dLX0VYUE9SVCB2b2lkIFdLUHJlZmVyZW5jZXNTZXREb3VibGVWYWx1ZUZvcktleShX
S1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmLCBkb3VibGUgdmFsdWUsIFdLU3RyaW5nUmVm
IGtleSk7CitXS19FWFBPUlQgdm9pZCBXS1ByZWZlcmVuY2VzU2V0VUludDMyVmFsdWVGb3JLZXko
V0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZiwgdWludDMyX3QgdmFsdWUsIFdLU3RyaW5n
UmVmIGtleSk7CitXS19FWFBPUlQgdm9pZCBXS1ByZWZlcmVuY2VzU2V0U3RyaW5nVmFsdWVGb3JL
ZXkoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZiwgV0tTdHJpbmdSZWYgdmFsdWUsIFdL
U3RyaW5nUmVmIGtleSk7CisKKy8vIEZvciBUZXN0IFJ1bm5lciBVc2Ugb25seS4KIFdLX0VYUE9S
VCB2b2lkIFdLUHJlZmVyZW5jZXNSZXNldFRlc3RSdW5uZXJPdmVycmlkZXMoV0tQcmVmZXJlbmNl
c1JlZiBwcmVmZXJlbmNlc1JlZik7CiAKIC8vIERlZmF1bHRzIHRvIGZhbHNlLgpJbmRleDogU291
cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lv
biAyNjgzMjUpCisrKyBTb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCSh3b3JraW5nIGNvcHkpCkBAIC0xMzEyLDYgKzEzMTIsNyBAQAogCQk3Q0U0RDIyODFBNDkx
NkMyMDBDN0YxNTIgLyogV2ViUHJvY2Vzc1Bvb2xNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0NFNEQyMjYxQTQ5MTZDMjAwQzdGMTUyIC8q
IFdlYlByb2Nlc3NQb29sTWVzc2FnZXMuaCAqLzsgfTsKIAkJN0NFOUNFMTAxRkEwNzY3QTAwMDE3
N0RFIC8qIFdlYlBhZ2VVcGRhdGVQcmVmZXJlbmNlcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Q0U5Q0UwRjFGQTA3NjREMDAwMTc3REUgLyogV2Vi
UGFnZVVwZGF0ZVByZWZlcmVuY2VzLmNwcCAqLzsgfTsKIAkJN0NFQjAwREQxRkE2OUFCRTAwNjU0
NzNCIC8qIFdlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsRmVhdHVyZXMuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0NFQjAwREMxRkE2OUE4OTAwNjU0
NzNCIC8qIFdlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsRmVhdHVyZXMuY3BwICovOyB9OworCQk3
Q0YxOTA3MTI1MzM4RjM4MDBBQkUxODMgLyogV2ViUHJlZmVyZW5jZXNHZXR0ZXJTZXR0ZXJzLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDRjE5MDcw
MjUzMzhFRkYwMEFCRTE4MyAvKiBXZWJQcmVmZXJlbmNlc0dldHRlclNldHRlcnMuY3BwICovOyB9
OwogCQk3Q0Y0N0ZGNzE3Mjc1QjcxMDA4QUNCOTEgLyogV0tCdW5kbGVQYWdlQmFubmVyLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Q0Y0N0ZGNTE3Mjc1
QjcxMDA4QUNCOTEgLyogV0tCdW5kbGVQYWdlQmFubmVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJN0NGNDdGRkIxNzI3NUM1NzAwOEFDQjkxIC8q
IFBhZ2VCYW5uZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDdDRjQ3RkY5MTcyNzVDNTcwMDhBQ0I5MSAvKiBQYWdlQmFubmVyLmggKi87IH07CiAJCTdD
RjQ3RkZGMTcyNzZBRTMwMDhBQ0I5MSAvKiBXS0J1bmRsZVBhZ2VCYW5uZXJNYWMuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDRjQ3RkZEMTcyNzZBRTMw
MDhBQ0I5MSAvKiBXS0J1bmRsZVBhZ2VCYW5uZXJNYWMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtNDMzMiw2ICs0MzMzLDcgQEAKIAkJN0NFOUNF
MEYxRkEwNzY0RDAwMDE3N0RFIC8qIFdlYlBhZ2VVcGRhdGVQcmVmZXJlbmNlcy5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IG5hbWUgPSBXZWJQYWdlVXBkYXRlUHJlZmVyZW5jZXMuY3BwOyBwYXRoID0gRGVyaXZl
ZFNvdXJjZXMvV2ViS2l0Mi9XZWJQYWdlVXBkYXRlUHJlZmVyZW5jZXMuY3BwOyBzb3VyY2VUcmVl
ID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQk3Q0VCMDBEQzFGQTY5QTg5MDA2NTQ3M0IgLyog
V2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWxGZWF0dXJlcy5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUg
PSBXZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbEZlYXR1cmVzLmNwcDsgcGF0aCA9IERlcml2ZWRT
b3VyY2VzL1dlYktpdDIvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWxGZWF0dXJlcy5jcHA7IHNv
dXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTdDRUZBOTYwMUFDMDk5OTMwMEI5
MTBGRCAvKiBBUElDb250ZW50UnVsZUxpc3RTdG9yZUNvY29hLm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gQVBJQ29udGVudFJ1bGVMaXN0U3RvcmVDb2NvYS5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJN0NGMTkwNzAyNTMzOEVGRjAwQUJFMTgzIC8q
IFdlYlByZWZlcmVuY2VzR2V0dGVyU2V0dGVycy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBXZWJQ
cmVmZXJlbmNlc0dldHRlclNldHRlcnMuY3BwOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0
Mi9XZWJQcmVmZXJlbmNlc0dldHRlclNldHRlcnMuY3BwOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJP
RFVDVFNfRElSOyB9OwogCQk3Q0Y0N0ZGNDE3Mjc1QjcxMDA4QUNCOTEgLyogV0tCdW5kbGVQYWdl
QmFubmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdLQnVuZGxl
UGFnZUJhbm5lci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDRjQ3RkY1MTcy
NzVCNzEwMDhBQ0I5MSAvKiBXS0J1bmRsZVBhZ2VCYW5uZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gV0tCdW5kbGVQYWdlQmFubmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTdDRjQ3RkY5MTcyNzVDNTcwMDhBQ0I5MSAvKiBQYWdlQmFubmVyLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBhZ2VCYW5uZXIuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTEwMjU5LDYgKzEwMjYxLDcgQEAKIAkJCQkxQUIxRjc5NTFEMUIzNjEz
MDA3QzlCRDEgLyogV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHlNZXNzYWdlcy5oICovLAogCQkJ
CTdDREU3M0EzMUY5REFCNjUwMDM5MDMxMiAvKiBXZWJQcmVmZXJlbmNlc0RlZmluaXRpb25zLmgg
Ki8sCiAJCQkJN0NFQjAwREMxRkE2OUE4OTAwNjU0NzNCIC8qIFdlYlByZWZlcmVuY2VzRXhwZXJp
bWVudGFsRmVhdHVyZXMuY3BwICovLAorCQkJCTdDRjE5MDcwMjUzMzhFRkYwMEFCRTE4MyAvKiBX
ZWJQcmVmZXJlbmNlc0dldHRlclNldHRlcnMuY3BwICovLAogCQkJCTMxQjM2Mjk4MjE0MUY2RTAw
MDdCRkE1MyAvKiBXZWJQcmVmZXJlbmNlc0ludGVybmFsRGVidWdGZWF0dXJlcy5jcHAgKi8sCiAJ
CQkJN0NCMTAwRUUxRkEyRDc0QTAwMTcyOUVFIC8qIFdlYlByZWZlcmVuY2VzS2V5cy5jcHAgKi8s
CiAJCQkJN0NCMTAwRUYxRkEyRDc0QjAwMTcyOUVFIC8qIFdlYlByZWZlcmVuY2VzS2V5cy5oICov
LApAQCAtMTMxNjEsNiArMTMxNjQsNyBAQAogCQkJCTJEOTJBNzhEMjEyQjZBQjEwMEY0OTNGRCAv
KiBXZWJQbGF0Zm9ybVRvdWNoUG9pbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQ5MTM0NEUy
MTJDRjlGMDAwMTI4QUZEIC8qIFdlYlBsdWdpbkluZm9Qcm92aWRlci5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQk3Q0VCMDBERDFGQTY5QUJFMDA2NTQ3M0IgLyogV2ViUHJlZmVyZW5jZXNFeHBlcmlt
ZW50YWxGZWF0dXJlcy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk3Q0YxOTA3MTI1MzM4RjM4MDBB
QkUxODMgLyogV2ViUHJlZmVyZW5jZXNHZXR0ZXJTZXR0ZXJzLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTMxQjM2Mjk5MjE0MUY2RTgwMDdCRkE1MyAvKiBXZWJQcmVmZXJlbmNlc0ludGVybmFsRGVi
dWdGZWF0dXJlcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3Q0IxMDBGMTFGQTM4NThBMDAxNzI5
RUUgLyogV2ViUHJlZmVyZW5jZXNLZXlzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdDQjEwMEY0
MUZBMzg1OTIwMDE3MjlFRSAvKiBXZWJQcmVmZXJlbmNlc1N0b3JlRGVmYXVsdHNNYXAuY3BwIGlu
IFNvdXJjZXMgKi8sCkluZGV4OiBUb29scy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMv
Q2hhbmdlTG9nCShyZXZpc2lvbiAyNjgzMjUpCisrKyBUb29scy9DaGFuZ2VMb2cJKHdvcmtpbmcg
Y29weSkKQEAgLTEsMyArMSw5MiBAQAorMjAyMC0xMC0xMSAgU2FtIFdlaW5pZyAgPHdlaW5pZ0Bh
cHBsZS5jb20+CisKKyAgICAgICAgW1ByZWZlcmVuY2VzXSBJbnRyb2R1Y2Ugc3RyaW5nIGJhc2Vk
IFNQSSBmb3IgV0tQcmVmZXJlbmNlcyB0byBhbGxvdyB0ZXN0cyB0byBjaGFuZ2UgaW50ZXJuYWwg
YmVoYXZpb3Igd2l0aG91dCBhbHdheXMgYWRkaW5nIGFkZGl0aW9uYWwgU1BJCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTc1ODIKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbV0lQXQorCisgICAgICAgICog
V2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXVFI6OlRlc3RD
b250cm9sbGVyOjppbml0aWFsaXplKToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OmNy
ZWF0ZVdlYlZpZXdXaXRoT3B0aW9ucyk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpy
ZXNldFByZWZlcmVuY2VzVG9Db25zaXN0ZW50VmFsdWVzKToKKyAgICAgICAgKFdUUjo6VGVzdENv
bnRyb2xsZXI6OnJlc2V0U3RhdGVUb0NvbnNpc3RlbnRWYWx1ZXMpOgorICAgICAgICAoV1RSOjpU
ZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1SZXNldFN0YXRlVG9Db25zaXN0ZW50VmFsdWVzKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmg6CisgICAg
ICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0T3B0aW9ucy5jcHA6CisgICAgICAgIChXVFI6OmJv
b2xEZWZhdWx0c01hcCk6CisgICAgICAgIChXVFI6OmRvdWJsZURlZmF1bHRzTWFwKToKKyAgICAg
ICAgKFdUUjo6c3RyaW5nRGVmYXVsdHNNYXApOgorICAgICAgICAoV1RSOjpzdHJpbmdWZWN0b3JE
ZWZhdWx0c01hcCk6CisgICAgICAgIChXVFI6OmtleVR5cGVNYXApOgorICAgICAgICAoV1RSOjpU
ZXN0T3B0aW9uczo6Ym9vbFdLUHJlZmVyZW5jZXMgY29uc3QpOgorICAgICAgICAqIFdlYktpdFRl
c3RSdW5uZXIvVGVzdE9wdGlvbnMuaDoKKyAgICAgICAgKFdUUjo6VGVzdE9wdGlvbnM6OmFsbG93
c0xpbmtQcmV2aWV3IGNvbnN0KToKKyAgICAgICAgKFdUUjo6VGVzdE9wdGlvbnM6OmR1bXBKU0Nv
bnNvbGVMb2dJblN0ZEVyciBjb25zdCk6CisgICAgICAgIChXVFI6OlRlc3RPcHRpb25zOjplbmFi
bGVBdHRhY2htZW50RWxlbWVudCBjb25zdCk6CisgICAgICAgIChXVFI6OlRlc3RPcHRpb25zOjpl
bmFibGVJbkFwcEJyb3dzZXJQcml2YWN5IGNvbnN0KToKKyAgICAgICAgKFdUUjo6VGVzdE9wdGlv
bnM6Omlnbm9yZVN5bmNocm9ub3VzTWVzc2FnaW5nVGltZW91dHMgY29uc3QpOgorICAgICAgICAo
V1RSOjpUZXN0T3B0aW9uczo6aWdub3Jlc1ZpZXdwb3J0U2NhbGVMaW1pdHMgY29uc3QpOgorICAg
ICAgICAoV1RSOjpUZXN0T3B0aW9uczo6aXNBcHBCb3VuZFdlYlZpZXcgY29uc3QpOgorICAgICAg
ICAoV1RSOjpUZXN0T3B0aW9uczo6cHVuY2hPdXRXaGl0ZUJhY2tncm91bmRzSW5EYXJrTW9kZSBj
b25zdCk6CisgICAgICAgIChXVFI6OlRlc3RPcHRpb25zOjpydW5TaW5nbHkgY29uc3QpOgorICAg
ICAgICAoV1RSOjpUZXN0T3B0aW9uczo6c2hvdWxkSGFuZGxlUnVuT3BlblBhbmVsIGNvbnN0KToK
KyAgICAgICAgKFdUUjo6VGVzdE9wdGlvbnM6OnNob3VsZFByZXNlbnRQb3BvdmVycyBjb25zdCk6
CisgICAgICAgIChXVFI6OlRlc3RPcHRpb25zOjpzaG91bGRTaG93U3BlbGxDaGVja2luZ0RvdHMg
Y29uc3QpOgorICAgICAgICAoV1RSOjpUZXN0T3B0aW9uczo6c2hvdWxkU2hvd1RvdWNoZXMgY29u
c3QpOgorICAgICAgICAoV1RSOjpUZXN0T3B0aW9uczo6c2hvdWxkU2hvd1dlYlZpZXcgY29uc3Qp
OgorICAgICAgICAoV1RSOjpUZXN0T3B0aW9uczo6dXNlQ2hhcmFjdGVyU2VsZWN0aW9uR3JhbnVs
YXJpdHkgY29uc3QpOgorICAgICAgICAoV1RSOjpUZXN0T3B0aW9uczo6dXNlRGF0YURldGVjdGlv
biBjb25zdCk6CisgICAgICAgIChXVFI6OlRlc3RPcHRpb25zOjp1c2VFcGhlbWVyYWxTZXNzaW9u
IGNvbnN0KToKKyAgICAgICAgKFdUUjo6VGVzdE9wdGlvbnM6OnVzZUZsZXhpYmxlVmlld3BvcnQg
Y29uc3QpOgorICAgICAgICAoV1RSOjpUZXN0T3B0aW9uczo6dXNlUmVtb3RlTGF5ZXJUcmVlIGNv
bnN0KToKKyAgICAgICAgKFdUUjo6VGVzdE9wdGlvbnM6OnVzZVRocmVhZGVkU2Nyb2xsaW5nIGNv
bnN0KToKKyAgICAgICAgKFdUUjo6VGVzdE9wdGlvbnM6OmRldmljZVNjYWxlRmFjdG9yIGNvbnN0
KToKKyAgICAgICAgKFdUUjo6VGVzdE9wdGlvbnM6OnZpZXdXaWR0aCBjb25zdCk6CisgICAgICAg
IChXVFI6OlRlc3RPcHRpb25zOjphZGRpdGlvbmFsU3VwcG9ydGVkSW1hZ2VUeXBlcyBjb25zdCk6
CisgICAgICAgIChXVFI6OlRlc3RPcHRpb25zOjphcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIg
Y29uc3QpOgorICAgICAgICAoV1RSOjpUZXN0T3B0aW9uczo6Y29udGVudE1vZGUgY29uc3QpOgor
ICAgICAgICAoV1RSOjpUZXN0T3B0aW9uczo6anNjT3B0aW9ucyBjb25zdCk6CisgICAgICAgIChX
VFI6OlRlc3RPcHRpb25zOjpzdGFuZGFsb25lV2ViQXBwbGljYXRpb25VUkwgY29uc3QpOgorICAg
ICAgICAoV1RSOjpUZXN0T3B0aW9uczo6dXNlQWNjZWxlcmF0ZWREcmF3aW5nIGNvbnN0KTogRGVs
ZXRlZC4KKyAgICAgICAgKFdUUjo6VGVzdE9wdGlvbnM6OnVzZU1vY2tTY3JvbGxiYXJzIGNvbnN0
KTogRGVsZXRlZC4KKyAgICAgICAgKFdUUjo6VGVzdE9wdGlvbnM6Om5lZWRzU2l0ZVNwZWNpZmlj
UXVpcmtzIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdUUjo6VGVzdE9wdGlvbnM6OmVuYWJs
ZUludGVyc2VjdGlvbk9ic2VydmVyIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdUUjo6VGVz
dE9wdGlvbnM6OmVuYWJsZU1lbnVJdGVtRWxlbWVudCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAg
IChXVFI6OlRlc3RPcHRpb25zOjplbmFibGVLZXlnZW5FbGVtZW50IGNvbnN0KTogRGVsZXRlZC4K
KyAgICAgICAgKFdUUjo6VGVzdE9wdGlvbnM6OmVuYWJsZU1vZGVybk1lZGlhQ29udHJvbHMgY29u
c3QpOiBEZWxldGVkLgorICAgICAgICAoV1RSOjpUZXN0T3B0aW9uczo6ZW5hYmxlUG9pbnRlckxv
Y2sgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV1RSOjpUZXN0T3B0aW9uczo6ZW5hYmxlV2Vi
QXV0aGVudGljYXRpb24gY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV1RSOjpUZXN0T3B0aW9u
czo6ZW5hYmxlV2ViQXV0aGVudGljYXRpb25Mb2NhbEF1dGhlbnRpY2F0b3IgY29uc3QpOiBEZWxl
dGVkLgorICAgICAgICAoV1RSOjpUZXN0T3B0aW9uczo6ZW5hYmxlSW5zcGVjdG9yQWRkaXRpb25z
IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdUUjo6VGVzdE9wdGlvbnM6OmFsbG93Q3Jvc3NP
cmlnaW5TdWJyZXNvdXJjZXNUb0Fza0ZvckNyZWRlbnRpYWxzIGNvbnN0KTogRGVsZXRlZC4KKyAg
ICAgICAgKFdUUjo6VGVzdE9wdGlvbnM6OmRvbVBhc3RlQWxsb3dlZCBjb25zdCk6IERlbGV0ZWQu
CisgICAgICAgIChXVFI6OlRlc3RPcHRpb25zOjplbmFibGVDb2xvckZpbHRlciBjb25zdCk6IERl
bGV0ZWQuCisgICAgICAgIChXVFI6OlRlc3RPcHRpb25zOjpjaGVja0ZvcldvcmxkTGVha3MgY29u
c3QpOiBEZWxldGVkLgorICAgICAgICAoV1RSOjpUZXN0T3B0aW9uczo6c2hvdWxkSWdub3JlTWV0
YVZpZXdwb3J0IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdUUjo6VGVzdE9wdGlvbnM6OmVu
YWJsZVNlcnZpY2VDb250cm9scyBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXVFI6OlRlc3RP
cHRpb25zOjplbmFibGVBcHBOYXAgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV1RSOjpUZXN0
T3B0aW9uczo6ZW5hYmxlQmFja0ZvcndhcmRDYWNoZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAg
IChXVFI6OlRlc3RPcHRpb25zOjplbmFibGVDYXB0dXJlVmlkZW9JblVJUHJvY2VzcyBjb25zdCk6
IERlbGV0ZWQuCisgICAgICAgIChXVFI6OlRlc3RPcHRpb25zOjplbmFibGVDYXB0dXJlVmlkZW9J
bkdQVVByb2Nlc3MgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV1RSOjpUZXN0T3B0aW9uczo6
ZW5hYmxlQ2FwdHVyZUF1ZGlvSW5VSVByb2Nlc3MgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAo
V1RSOjpUZXN0T3B0aW9uczo6ZW5hYmxlQ2FwdHVyZUF1ZGlvSW5HUFVQcm9jZXNzIGNvbnN0KTog
RGVsZXRlZC4KKyAgICAgICAgKFdUUjo6VGVzdE9wdGlvbnM6OmFsbG93VG9wTmF2aWdhdGlvblRv
RGF0YVVSTHMgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvY29j
b2EvVGVzdENvbnRyb2xsZXJDb2NvYS5tbToKKyAgICAgICAgKFdUUjo6aW5pdGlhbGl6ZVdlYlZp
ZXdDb25maWd1cmF0aW9uKToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OnBsYXRmb3Jt
Q3JlYXRlV2ViVmlldyk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpjb2NvYVJlc2V0
U3RhdGVUb0NvbnNpc3RlbnRWYWx1ZXMpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvZ3Rr
L1Rlc3RDb250cm9sbGVyR3RrLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OnBs
YXRmb3JtUmVzZXRTdGF0ZVRvQ29uc2lzdGVudFZhbHVlcyk6CisgICAgICAgICogV2ViS2l0VGVz
dFJ1bm5lci9pb3MvVGVzdENvbnRyb2xsZXJJT1MubW06CisgICAgICAgIChXVFI6OlRlc3RDb250
cm9sbGVyOjpwbGF0Zm9ybVJlc2V0UHJlZmVyZW5jZXNUb0NvbnNpc3RlbnRWYWx1ZXMpOgorICAg
ICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1Db25maWd1cmVWaWV3Rm9yVGVzdCk6
CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci93aW4vVGVzdENvbnRyb2xsZXJXaW4uY3BwOgor
ICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1SZXNldFN0YXRlVG9Db25zaXN0
ZW50VmFsdWVzKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL3dwZS9UZXN0Q29udHJvbGxl
cldQRS5jcHA6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybVJlc2V0U3Rh
dGVUb0NvbnNpc3RlbnRWYWx1ZXMpOgorCiAyMDIwLTEwLTEwICBEYXJpbiBBZGxlciAgPGRhcmlu
QGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OIChyMjY3NzYxKTogZWRpdGluZy9tYWMv
c3BlbGxpbmcvYXV0b2NvcnJlY3Rpb24tY29udHJhY3Rpb24uaHRtbCBpcyBhIGNvbnN0YW50IHRp
bWVvdXQgb24gbWFjT1Mgd2syIERlYnVnCkluZGV4OiBUb29scy9XZWJLaXRUZXN0UnVubmVyL1Rl
c3RDb250cm9sbGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9XZWJLaXRUZXN0UnVubmVyL1Rl
c3RDb250cm9sbGVyLmNwcAkocmV2aXNpb24gMjY4MzI1KQorKysgVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9UZXN0Q29udHJvbGxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ2MywxNCArNDYzLDE0
IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OmluaXRpYWxpemUoaW50IGFyZ2MKICAgICBtX2djQmV0
d2VlblRlc3RzID0gb3B0aW9ucy5nY0JldHdlZW5UZXN0czsKICAgICBtX3Nob3VsZER1bXBQaXhl
bHNGb3JBbGxUZXN0cyA9IG9wdGlvbnMuc2hvdWxkRHVtcFBpeGVsc0ZvckFsbFRlc3RzOwogICAg
IG1fZm9yY2VDb21wbGV4VGV4dCA9IG9wdGlvbnMuZm9yY2VDb21wbGV4VGV4dDsKLSAgICBtX3No
b3VsZFVzZUFjY2VsZXJhdGVkRHJhd2luZyA9IG9wdGlvbnMuc2hvdWxkVXNlQWNjZWxlcmF0ZWRE
cmF3aW5nOwogICAgIG1fcGF0aHMgPSBvcHRpb25zLnBhdGhzOwogICAgIG1fYWxsb3dlZEhvc3Rz
ID0gb3B0aW9ucy5hbGxvd2VkSG9zdHM7CiAgICAgbV9jaGVja0ZvcldvcmxkTGVha3MgPSBvcHRp
b25zLmNoZWNrRm9yV29ybGRMZWFrczsKICAgICBtX2FsbG93QW55SFRUUFNDZXJ0aWZpY2F0ZUZv
ckFsbG93ZWRIb3N0cyA9IG9wdGlvbnMuYWxsb3dBbnlIVFRQU0NlcnRpZmljYXRlRm9yQWxsb3dl
ZEhvc3RzOwotICAgIAorCiAgICAgbV9nbG9iYWxGZWF0dXJlcy5pbnRlcm5hbERlYnVnRmVhdHVy
ZXMgPSBvcHRpb25zLmludGVybmFsRmVhdHVyZXM7CiAgICAgbV9nbG9iYWxGZWF0dXJlcy5leHBl
cmltZW50YWxGZWF0dXJlcyA9IG9wdGlvbnMuZXhwZXJpbWVudGFsRmVhdHVyZXM7CisgICAgbV9n
bG9iYWxGZWF0dXJlcy5ib29sRmVhdHVyZXMuaW5zZXJ0KHsgInVzZUFjY2VsZXJhdGVkRHJhd2lu
ZyIsIG9wdGlvbnMuc2hvdWxkVXNlQWNjZWxlcmF0ZWREcmF3aW5nIH0pOwogICAgIG1fZ2xvYmFs
RmVhdHVyZXMuYm9vbEZlYXR1cmVzLmluc2VydCh7ICJ1c2VSZW1vdGVMYXllclRyZWUiLCBvcHRp
b25zLnNob3VsZFVzZVJlbW90ZUxheWVyVHJlZSB9KTsKICAgICBtX2dsb2JhbEZlYXR1cmVzLmJv
b2xGZWF0dXJlcy5pbnNlcnQoeyAic2hvdWxkU2hvd1dlYlZpZXciLCBvcHRpb25zLnNob3VsZFNo
b3dXZWJWaWV3IH0pOwogICAgIG1fZ2xvYmFsRmVhdHVyZXMuYm9vbEZlYXR1cmVzLmluc2VydCh7
ICJzaG91bGRTaG93VG91Y2hlcyIsIG9wdGlvbnMuc2hvdWxkU2hvd1RvdWNoZXMgfSk7CkBAIC02
NTQsNiArNjU0LDggQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6Y3JlYXRlV2ViVmlld1dpdGhPcAog
ICAgIC8vIEZJWE1FOiBNaWdyYXRlIHRoZXNlIHByZWZlcmVuY2VzIHRvIFdLQ29udGV4dENvbmZp
Z3VyYXRpb25SZWYuCiAgICAgcmVzZXRQcmVmZXJlbmNlc1RvQ29uc2lzdGVudFZhbHVlcyhvcHRp
b25zKTsKIAorICAgIFdLSFRUUENvb2tpZVN0b3JlRGVsZXRlQWxsQ29va2llcyhXS1dlYnNpdGVE
YXRhU3RvcmVHZXRIVFRQQ29va2llU3RvcmUod2Vic2l0ZURhdGFTdG9yZSgpKSwgbnVsbHB0ciwg
bnVsbHB0cik7CisKICAgICBwbGF0Zm9ybUNyZWF0ZVdlYlZpZXcoY29uZmlndXJhdGlvbi5nZXQo
KSwgb3B0aW9ucyk7CiAgICAgV0tQYWdlVUlDbGllbnRWMTQgcGFnZVVJQ2xpZW50ID0gewogICAg
ICAgICB7IDE0LCBtX21haW5XZWJWaWV3LmdldCgpIH0sCkBAIC04NDAsMzggKzg0MiwyNCBAQCB2
b2lkIFRlc3RDb250cm9sbGVyOjpyZXNldFByZWZlcmVuY2VzVG9DCiAKICAgICBXS1ByZWZlcmVu
Y2VzUmVzZXRBbGxJbnRlcm5hbERlYnVnRmVhdHVyZXMocHJlZmVyZW5jZXMpOwogCi0gICAgLy8g
U2V0IGludGVybmFsIGZlYXR1cmVzIHRoYXQgaGF2ZSBkaWZmZXJlbnQgZGVmYXVsdCB2YWx1ZXMg
Zm9yIHRlc3RpbmcuCisgICAgZm9yIChhdXRvIFtrZXksIHZhbHVlXSAgOiBvcHRpb25zLmludGVy
bmFsRGVidWdGZWF0dXJlcygpKQorICAgICAgICBXS1ByZWZlcmVuY2VzU2V0SW50ZXJuYWxEZWJ1
Z0ZlYXR1cmVGb3JLZXkocHJlZmVyZW5jZXMsIHZhbHVlLCB0b1dLKGtleSkuZ2V0KCkpOwogCisg
ICAgLy8gU2V0IGludGVybmFsIGZlYXR1cmVzIHRoYXQgaGF2ZSBkaWZmZXJlbnQgZGVmYXVsdCB2
YWx1ZXMgZm9yIHRlc3RpbmcuCiAgICAgV0tQcmVmZXJlbmNlc1NldEludGVybmFsRGVidWdGZWF0
dXJlRm9yS2V5KHByZWZlcmVuY2VzLCBmYWxzZSwgdG9XSygiQXN5bmNPdmVyZmxvd1Njcm9sbGlu
Z0VuYWJsZWQiKS5nZXQoKSk7CiAgICAgV0tQcmVmZXJlbmNlc1NldEludGVybmFsRGVidWdGZWF0
dXJlRm9yS2V5KHByZWZlcmVuY2VzLCBmYWxzZSwgdG9XSygiQXN5bmNGcmFtZVNjcm9sbGluZ0Vu
YWJsZWQiKS5nZXQoKSk7Ci0KLSNpZiBFTkFCTEUoSU5QVVRfVFlQRV9EQVRFKQogICAgIFdLUHJl
ZmVyZW5jZXNTZXRJbnRlcm5hbERlYnVnRmVhdHVyZUZvcktleShwcmVmZXJlbmNlcywgdHJ1ZSwg
dG9XSygiSW5wdXRUeXBlRGF0ZUVuYWJsZWQiKS5nZXQoKSk7Ci0jZW5kaWYKLSNpZiBFTkFCTEUo
SU5QVVRfVFlQRV9EQVRFVElNRUxPQ0FMKQogICAgIFdLUHJlZmVyZW5jZXNTZXRJbnRlcm5hbERl
YnVnRmVhdHVyZUZvcktleShwcmVmZXJlbmNlcywgdHJ1ZSwgdG9XSygiSW5wdXRUeXBlRGF0ZVRp
bWVMb2NhbEVuYWJsZWQiKS5nZXQoKSk7Ci0jZW5kaWYKLSNpZiBFTkFCTEUoSU5QVVRfVFlQRV9N
T05USCkKICAgICBXS1ByZWZlcmVuY2VzU2V0SW50ZXJuYWxEZWJ1Z0ZlYXR1cmVGb3JLZXkocHJl
ZmVyZW5jZXMsIHRydWUsIHRvV0soIklucHV0VHlwZU1vbnRoRW5hYmxlZCIpLmdldCgpKTsKLSNl
bmRpZgotI2lmIEVOQUJMRShJTlBVVF9UWVBFX1RJTUUpCiAgICAgV0tQcmVmZXJlbmNlc1NldElu
dGVybmFsRGVidWdGZWF0dXJlRm9yS2V5KHByZWZlcmVuY2VzLCB0cnVlLCB0b1dLKCJJbnB1dFR5
cGVUaW1lRW5hYmxlZCIpLmdldCgpKTsKLSNlbmRpZgotI2lmIEVOQUJMRShJTlBVVF9UWVBFX1dF
RUspCiAgICAgV0tQcmVmZXJlbmNlc1NldEludGVybmFsRGVidWdGZWF0dXJlRm9yS2V5KHByZWZl
cmVuY2VzLCB0cnVlLCB0b1dLKCJJbnB1dFR5cGVXZWVrRW5hYmxlZCIpLmdldCgpKTsKLSNlbmRp
ZgorICAgIFdLUHJlZmVyZW5jZXNTZXRJbnRlcm5hbERlYnVnRmVhdHVyZUZvcktleShwcmVmZXJl
bmNlcywgZmFsc2UsIHRvV0soIlNwZWFrZXJTZWxlY3Rpb25SZXF1aXJlc1VzZXJHZXN0dXJlIiku
Z2V0KCkpOwogCi0gICAgZm9yIChjb25zdCBhdXRvJiBba2V5LCB2YWx1ZV0gIDogb3B0aW9ucy5p
bnRlcm5hbERlYnVnRmVhdHVyZXMoKSkKLSAgICAgICAgV0tQcmVmZXJlbmNlc1NldEludGVybmFs
RGVidWdGZWF0dXJlRm9yS2V5KHByZWZlcmVuY2VzLCB2YWx1ZSwgdG9XSyhrZXkpLmdldCgpKTsK
KyAgICBmb3IgKGF1dG8gW2tleSwgdmFsdWVdIDogb3B0aW9ucy5ib29sV0tQcmVmZXJlbmNlcygp
KQorICAgICAgICBXS1ByZWZlcmVuY2VzU2V0Qm9vbFZhbHVlRm9yS2V5KHByZWZlcmVuY2VzLCB2
YWx1ZSwgdG9XSyhrZXkpLmdldCgpKTsKIAotI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIFdLUHJl
ZmVyZW5jZXNTZXRDYXB0dXJlVmlkZW9JblVJUHJvY2Vzc0VuYWJsZWQocHJlZmVyZW5jZXMsIG9w
dGlvbnMuZW5hYmxlQ2FwdHVyZVZpZGVvSW5VSVByb2Nlc3MoKSk7Ci0gICAgV0tQcmVmZXJlbmNl
c1NldENhcHR1cmVWaWRlb0luR1BVUHJvY2Vzc0VuYWJsZWQocHJlZmVyZW5jZXMsIG9wdGlvbnMu
ZW5hYmxlQ2FwdHVyZVZpZGVvSW5HUFVQcm9jZXNzKCkpOwotICAgIFdLUHJlZmVyZW5jZXNTZXRD
YXB0dXJlQXVkaW9JblVJUHJvY2Vzc0VuYWJsZWQocHJlZmVyZW5jZXMsIG9wdGlvbnMuZW5hYmxl
Q2FwdHVyZUF1ZGlvSW5VSVByb2Nlc3MoKSk7Ci0gICAgV0tQcmVmZXJlbmNlc1NldENhcHR1cmVB
dWRpb0luR1BVUHJvY2Vzc0VuYWJsZWQocHJlZmVyZW5jZXMsIG9wdGlvbnMuZW5hYmxlQ2FwdHVy
ZUF1ZGlvSW5HUFVQcm9jZXNzKCkpOwotI2VuZGlmCisgICAgLy8gRklYTUU6IENvbnZlcnQgdGhl
c2UgdG8gZGVmYXVsdCB2YWx1ZXMgZm9yIFRlc3RPcHRpb25zLgogICAgIFdLUHJlZmVyZW5jZXNT
ZXRQcm9jZXNzU3dhcE9uTmF2aWdhdGlvbkVuYWJsZWQocHJlZmVyZW5jZXMsIG9wdGlvbnMuY29u
dGV4dE9wdGlvbnMoKS5zaG91bGRFbmFibGVQcm9jZXNzU3dhcE9uTmF2aWdhdGlvbigpKTsKLSAg
ICBXS1ByZWZlcmVuY2VzU2V0UGFnZVZpc2liaWxpdHlCYXNlZFByb2Nlc3NTdXBwcmVzc2lvbkVu
YWJsZWQocHJlZmVyZW5jZXMsIG9wdGlvbnMuZW5hYmxlQXBwTmFwKCkpOwogICAgIFdLUHJlZmVy
ZW5jZXNTZXRPZmZsaW5lV2ViQXBwbGljYXRpb25DYWNoZUVuYWJsZWQocHJlZmVyZW5jZXMsIHRy
dWUpOwogICAgIFdLUHJlZmVyZW5jZXNTZXRTdWJwaXhlbEFudGlhbGlhc2VkTGF5ZXJUZXh0RW5h
YmxlZChwcmVmZXJlbmNlcywgZmFsc2UpOwogICAgIFdLUHJlZmVyZW5jZXNTZXRYU1NBdWRpdG9y
RW5hYmxlZChwcmVmZXJlbmNlcywgZmFsc2UpOwpAQCAtODgyLDEzICs4NzAsOSBAQCB2b2lkIFRl
c3RDb250cm9sbGVyOjpyZXNldFByZWZlcmVuY2VzVG9DCiAgICAgV0tQcmVmZXJlbmNlc1NldEph
dmFTY3JpcHRSdW50aW1lRmxhZ3MocHJlZmVyZW5jZXMsIGtXS0phdmFTY3JpcHRSdW50aW1lRmxh
Z3NBbGxFbmFibGVkKTsKICAgICBXS1ByZWZlcmVuY2VzU2V0SmF2YVNjcmlwdENhbk9wZW5XaW5k
b3dzQXV0b21hdGljYWxseShwcmVmZXJlbmNlcywgdHJ1ZSk7CiAgICAgV0tQcmVmZXJlbmNlc1Nl
dEphdmFTY3JpcHRDYW5BY2Nlc3NDbGlwYm9hcmQocHJlZmVyZW5jZXMsIHRydWUpOwotICAgIFdL
UHJlZmVyZW5jZXNTZXRET01QYXN0ZUFsbG93ZWQocHJlZmVyZW5jZXMsIG9wdGlvbnMuZG9tUGFz
dGVBbGxvd2VkKCkpOwogICAgIFdLUHJlZmVyZW5jZXNTZXRVbml2ZXJzYWxBY2Nlc3NGcm9tRmls
ZVVSTHNBbGxvd2VkKHByZWZlcmVuY2VzLCB0cnVlKTsKICAgICBXS1ByZWZlcmVuY2VzU2V0Rmls
ZUFjY2Vzc0Zyb21GaWxlVVJMc0FsbG93ZWQocHJlZmVyZW5jZXMsIHRydWUpOwotICAgIFdLUHJl
ZmVyZW5jZXNTZXRUb3BOYXZpZ2F0aW9uVG9EYXRhVVJMc0FsbG93ZWQocHJlZmVyZW5jZXMsIG9w
dGlvbnMuYWxsb3dUb3BOYXZpZ2F0aW9uVG9EYXRhVVJMcygpKTsKLSNpZiBFTkFCTEUoRlVMTFND
UkVFTl9BUEkpCiAgICAgV0tQcmVmZXJlbmNlc1NldEZ1bGxTY3JlZW5FbmFibGVkKHByZWZlcmVu
Y2VzLCB0cnVlKTsKLSNlbmRpZgogICAgIFdLUHJlZmVyZW5jZXNTZXRBc3luY2hyb25vdXNQbHVn
aW5Jbml0aWFsaXphdGlvbkVuYWJsZWQocHJlZmVyZW5jZXMsIGZhbHNlKTsKICAgICBXS1ByZWZl
cmVuY2VzU2V0QXN5bmNocm9ub3VzUGx1Z2luSW5pdGlhbGl6YXRpb25FbmFibGVkRm9yQWxsUGx1
Z2lucyhwcmVmZXJlbmNlcywgZmFsc2UpOwogICAgIFdLUHJlZmVyZW5jZXNTZXRBcnRpZmljaWFs
UGx1Z2luSW5pdGlhbGl6YXRpb25EZWxheUVuYWJsZWQocHJlZmVyZW5jZXMsIGZhbHNlKTsKQEAg
LTg5NywyMiArODgxLDcgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6cmVzZXRQcmVmZXJlbmNlc1Rv
QwogICAgIFdLUHJlZmVyZW5jZXNTZXREYXRhVHJhbnNmZXJJdGVtc0VuYWJsZWQocHJlZmVyZW5j
ZXMsIHRydWUpOwogICAgIFdLUHJlZmVyZW5jZXNTZXRDdXN0b21QYXN0ZWJvYXJkRGF0YUVuYWJs
ZWQocHJlZmVyZW5jZXMsIHRydWUpOwogICAgIFdLUHJlZmVyZW5jZXNTZXREaWFsb2dFbGVtZW50
RW5hYmxlZChwcmVmZXJlbmNlcywgdHJ1ZSk7Ci0KLSAgICBXS1ByZWZlcmVuY2VzU2V0TW9ja1Nj
cm9sbGJhcnNFbmFibGVkKHByZWZlcmVuY2VzLCBvcHRpb25zLnVzZU1vY2tTY3JvbGxiYXJzKCkp
OwotICAgIFdLUHJlZmVyZW5jZXNTZXROZWVkc1NpdGVTcGVjaWZpY1F1aXJrcyhwcmVmZXJlbmNl
cywgb3B0aW9ucy5uZWVkc1NpdGVTcGVjaWZpY1F1aXJrcygpKTsKLSAgICBXS1ByZWZlcmVuY2Vz
U2V0QXR0YWNobWVudEVsZW1lbnRFbmFibGVkKHByZWZlcmVuY2VzLCBvcHRpb25zLmVuYWJsZUF0
dGFjaG1lbnRFbGVtZW50KCkpOwotICAgIFdLUHJlZmVyZW5jZXNTZXRNZW51SXRlbUVsZW1lbnRF
bmFibGVkKHByZWZlcmVuY2VzLCBvcHRpb25zLmVuYWJsZU1lbnVJdGVtRWxlbWVudCgpKTsKLSAg
ICBXS1ByZWZlcmVuY2VzU2V0S2V5Z2VuRWxlbWVudEVuYWJsZWQocHJlZmVyZW5jZXMsIG9wdGlv
bnMuZW5hYmxlS2V5Z2VuRWxlbWVudCgpKTsKLSAgICBXS1ByZWZlcmVuY2VzU2V0TW9kZXJuTWVk
aWFDb250cm9sc0VuYWJsZWQocHJlZmVyZW5jZXMsIG9wdGlvbnMuZW5hYmxlTW9kZXJuTWVkaWFD
b250cm9scygpKTsKLSAgICBXS1ByZWZlcmVuY2VzU2V0V2ViQXV0aGVudGljYXRpb25FbmFibGVk
KHByZWZlcmVuY2VzLCBvcHRpb25zLmVuYWJsZVdlYkF1dGhlbnRpY2F0aW9uKCkpOwotICAgIFdL
UHJlZmVyZW5jZXNTZXRXZWJBdXRoZW50aWNhdGlvbkxvY2FsQXV0aGVudGljYXRvckVuYWJsZWQo
cHJlZmVyZW5jZXMsIG9wdGlvbnMuZW5hYmxlV2ViQXV0aGVudGljYXRpb25Mb2NhbEF1dGhlbnRp
Y2F0b3IoKSk7Ci0gICAgV0tQcmVmZXJlbmNlc1NldEFsbG93Q3Jvc3NPcmlnaW5TdWJyZXNvdXJj
ZXNUb0Fza0ZvckNyZWRlbnRpYWxzKHByZWZlcmVuY2VzLCBvcHRpb25zLmFsbG93Q3Jvc3NPcmln
aW5TdWJyZXNvdXJjZXNUb0Fza0ZvckNyZWRlbnRpYWxzKCkpOwotICAgIFdLUHJlZmVyZW5jZXNT
ZXRDb2xvckZpbHRlckVuYWJsZWQocHJlZmVyZW5jZXMsIG9wdGlvbnMuZW5hYmxlQ29sb3JGaWx0
ZXIoKSk7Ci0gICAgV0tQcmVmZXJlbmNlc1NldFB1bmNoT3V0V2hpdGVCYWNrZ3JvdW5kc0luRGFy
a01vZGUocHJlZmVyZW5jZXMsIG9wdGlvbnMucHVuY2hPdXRXaGl0ZUJhY2tncm91bmRzSW5EYXJr
TW9kZSgpKTsKLSAgICBXS1ByZWZlcmVuY2VzU2V0UGFnZUNhY2hlRW5hYmxlZChwcmVmZXJlbmNl
cywgb3B0aW9ucy5lbmFibGVCYWNrRm9yd2FyZENhY2hlKCkpOwotCiAgICAgV0tQcmVmZXJlbmNl
c1NldERlZmF1bHRUZXh0RW5jb2RpbmdOYW1lKHByZWZlcmVuY2VzLCB0b1dLKCJJU08tODg1OS0x
IikuZ2V0KCkpOwotCiAgICAgV0tQcmVmZXJlbmNlc1NldE1pbmltdW1Gb250U2l6ZShwcmVmZXJl
bmNlcywgMCk7CiAgICAgV0tQcmVmZXJlbmNlc1NldFN0YW5kYXJkRm9udEZhbWlseShwcmVmZXJl
bmNlcywgdG9XSygiVGltZXMiKS5nZXQoKSk7CiAgICAgV0tQcmVmZXJlbmNlc1NldEN1cnNpdmVG
b250RmFtaWx5KHByZWZlcmVuY2VzLCB0b1dLKCJBcHBsZSBDaGFuY2VyeSIpLmdldCgpKTsKQEAg
LTkyMiwyMSArODkxLDEzIEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OnJlc2V0UHJlZmVyZW5jZXNU
b0MKICAgICBXS1ByZWZlcmVuY2VzU2V0U2Fuc1NlcmlmRm9udEZhbWlseShwcmVmZXJlbmNlcywg
dG9XSygiSGVsdmV0aWNhIikuZ2V0KCkpOwogICAgIFdLUHJlZmVyZW5jZXNTZXRTZXJpZkZvbnRG
YW1pbHkocHJlZmVyZW5jZXMsIHRvV0soIlRpbWVzIikuZ2V0KCkpOwogICAgIFdLUHJlZmVyZW5j
ZXNTZXRBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZChwcmVmZXJlbmNlcywgZmFsc2Up
OwotI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpCiAgICAgV0tQcmVmZXJlbmNlc1NldE1lZGlhU291
cmNlRW5hYmxlZChwcmVmZXJlbmNlcywgdHJ1ZSk7CiAgICAgV0tQcmVmZXJlbmNlc1NldFNvdXJj
ZUJ1ZmZlckNoYW5nZVR5cGVFbmFibGVkKHByZWZlcmVuY2VzLCB0cnVlKTsKLSNlbmRpZgogICAg
IFdLUHJlZmVyZW5jZXNTZXRIaWdobGlnaHRBUElFbmFibGVkKHByZWZlcmVuY2VzLCB0cnVlKTsK
LQogICAgIFdLUHJlZmVyZW5jZXNTZXRIaWRkZW5QYWdlRE9NVGltZXJUaHJvdHRsaW5nRW5hYmxl
ZChwcmVmZXJlbmNlcywgZmFsc2UpOwogICAgIFdLUHJlZmVyZW5jZXNTZXRIaWRkZW5QYWdlQ1NT
QW5pbWF0aW9uU3VzcGVuc2lvbkVuYWJsZWQocHJlZmVyZW5jZXMsIGZhbHNlKTsKLQotICAgIFdL
UHJlZmVyZW5jZXNTZXRBY2NlbGVyYXRlZERyYXdpbmdFbmFibGVkKHByZWZlcmVuY2VzLCBtX3No
b3VsZFVzZUFjY2VsZXJhdGVkRHJhd2luZyB8fCBvcHRpb25zLnVzZUFjY2VsZXJhdGVkRHJhd2lu
ZygpKTsKLSAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIGJlIHRlc3RpbmcgdGhlIGRlZmF1bHQuCi0g
ICAgV0tQcmVmZXJlbmNlc1NldFN0b3JhZ2VCbG9ja2luZ1BvbGljeShwcmVmZXJlbmNlcywga1dL
QWxsb3dBbGxTdG9yYWdlKTsKLQorICAgIFdLUHJlZmVyZW5jZXNTZXRTdG9yYWdlQmxvY2tpbmdQ
b2xpY3kocHJlZmVyZW5jZXMsIGtXS0FsbG93QWxsU3RvcmFnZSk7IC8vIEZJWE1FOiBXZSBzaG91
bGQgYmUgdGVzdGluZyB0aGUgZGVmYXVsdC4KICAgICBXS1ByZWZlcmVuY2VzU2V0SXNOU1VSTFNl
c3Npb25XZWJTb2NrZXRFbmFibGVkKHByZWZlcmVuY2VzLCBmYWxzZSk7Ci0KICAgICBXS1ByZWZl
cmVuY2VzU2V0RmV0Y2hBUElLZWVwQWxpdmVFbmFibGVkKHByZWZlcmVuY2VzLCB0cnVlKTsKICAg
ICBXS1ByZWZlcmVuY2VzU2V0TWVkaWFQcmVsb2FkaW5nRW5hYmxlZChwcmVmZXJlbmNlcywgdHJ1
ZSk7CiAgICAgV0tQcmVmZXJlbmNlc1NldEV4cG9zZVNwZWFrZXJzRW5hYmxlZChwcmVmZXJlbmNl
cywgdHJ1ZSk7CkBAIC05NDUsMzggKzkwNiwyMiBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpyZXNl
dFByZWZlcmVuY2VzVG9DCiAgICAgV0tQcmVmZXJlbmNlc1NldFJlbW90ZVBsYXliYWNrRW5hYmxl
ZChwcmVmZXJlbmNlcywgdHJ1ZSk7CiAgICAgV0tQcmVmZXJlbmNlc1NldEJlYWNvbkFQSUVuYWJs
ZWQocHJlZmVyZW5jZXMsIHRydWUpOwogICAgIFdLUHJlZmVyZW5jZXNTZXREaXJlY3RvcnlVcGxv
YWRFbmFibGVkKHByZWZlcmVuY2VzLCB0cnVlKTsKLQotICAgIFdLSFRUUENvb2tpZVN0b3JlRGVs
ZXRlQWxsQ29va2llcyhXS1dlYnNpdGVEYXRhU3RvcmVHZXRIVFRQQ29va2llU3RvcmUod2Vic2l0
ZURhdGFTdG9yZSgpKSwgbnVsbHB0ciwgbnVsbHB0cik7Ci0KICAgICBXS1ByZWZlcmVuY2VzU2V0
TW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxlZChwcmVmZXJlbmNlcywgdHJ1ZSk7Ci0gICAgCiAgICAg
V0tQcmVmZXJlbmNlc1NldExhcmdlSW1hZ2VBc3luY0RlY29kaW5nRW5hYmxlZChwcmVmZXJlbmNl
cywgZmFsc2UpOwotCi0gICAgV0tQcmVmZXJlbmNlc1NldEluc3BlY3RvckFkZGl0aW9uc0VuYWJs
ZWQocHJlZmVyZW5jZXMsIG9wdGlvbnMuZW5hYmxlSW5zcGVjdG9yQWRkaXRpb25zKCkpOwotCiAg
ICAgV0tQcmVmZXJlbmNlc1NldFN0b3JhZ2VBY2Nlc3NBUElFbmFibGVkKHByZWZlcmVuY2VzLCB0
cnVlKTsKLSAgICAKICAgICBXS1ByZWZlcmVuY2VzU2V0QWNjZXNzaWJpbGl0eU9iamVjdE1vZGVs
RW5hYmxlZChwcmVmZXJlbmNlcywgdHJ1ZSk7CiAgICAgV0tQcmVmZXJlbmNlc1NldENTU09NVmll
d1Njcm9sbGluZ0FQSUVuYWJsZWQocHJlZmVyZW5jZXMsIHRydWUpOwogICAgIFdLUHJlZmVyZW5j
ZXNTZXRNZWRpYUNhcGFiaWxpdGllc0VuYWJsZWQocHJlZmVyZW5jZXMsIHRydWUpOwotCiAgICAg
V0tQcmVmZXJlbmNlc1NldFJlc3RyaWN0ZWRIVFRQUmVzcG9uc2VBY2Nlc3MocHJlZmVyZW5jZXMs
IHRydWUpOwotCiAgICAgV0tQcmVmZXJlbmNlc1NldFNlcnZlclRpbWluZ0VuYWJsZWQocHJlZmVy
ZW5jZXMsIHRydWUpOwotCiAgICAgV0tQcmVmZXJlbmNlc1NldFdlYlNRTERpc2FibGVkKHByZWZl
cmVuY2VzLCBmYWxzZSk7Ci0KICAgICBXS1ByZWZlcmVuY2VzU2V0TWVkaWFQbGF5YmFja1JlcXVp
cmVzVXNlckdlc3R1cmUocHJlZmVyZW5jZXMsIGZhbHNlKTsKICAgICBXS1ByZWZlcmVuY2VzU2V0
VmlkZW9QbGF5YmFja1JlcXVpcmVzVXNlckdlc3R1cmUocHJlZmVyZW5jZXMsIGZhbHNlKTsKICAg
ICBXS1ByZWZlcmVuY2VzU2V0QXVkaW9QbGF5YmFja1JlcXVpcmVzVXNlckdlc3R1cmUocHJlZmVy
ZW5jZXMsIGZhbHNlKTsKLSAgICBXS1ByZWZlcmVuY2VzU2V0SW50ZXJuYWxEZWJ1Z0ZlYXR1cmVG
b3JLZXkocHJlZmVyZW5jZXMsIGZhbHNlLCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygi
U3BlYWtlclNlbGVjdGlvblJlcXVpcmVzVXNlckdlc3R1cmUiKSk7Ci0KLSAgICBXS1ByZWZlcmVu
Y2VzU2V0U2hvdWxkVXNlU2VydmljZVdvcmtlclNob3J0VGltZW91dChwcmVmZXJlbmNlcywgb3B0
aW9ucy51c2VTZXJ2aWNlV29ya2VyU2hvcnRUaW1lb3V0KCkpOwotCiAjaWYgRU5BQkxFKEFDQ0VT
U0lCSUxJVFlfSVNPTEFURURfVFJFRSkKICAgICBXS1ByZWZlcmVuY2VzU2V0SXNBY2Nlc3NpYmls
aXR5SXNvbGF0ZWRUcmVlRW5hYmxlZChwcmVmZXJlbmNlcywgYWNjZXNzaWJpbGl0eUlzb2xhdGVk
VHJlZU1vZGUoKSk7CiAjZW5kaWYKLSAgICAKKwogICAgIHBsYXRmb3JtUmVzZXRQcmVmZXJlbmNl
c1RvQ29uc2lzdGVudFZhbHVlcygpOwogfQogCkBAIC0xMDA5LDIzICs5NTQsMTkgQEAgYm9vbCBU
ZXN0Q29udHJvbGxlcjo6cmVzZXRTdGF0ZVRvQ29uc2lzdAogICAgIGlmICghanNjT3B0aW9ucy5l
bXB0eSgpKQogICAgICAgICBzZXRWYWx1ZShyZXNldE1lc3NhZ2VCb2R5LCAiSlNDT3B0aW9ucyIs
IGpzY09wdGlvbnMuY19zdHIoKSk7CiAKLSNpZiBQTEFURk9STShDT0NPQSkKLSAgICBXZWJDb3Jl
VGVzdFN1cHBvcnQ6OnNldEFkZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVzRm9yVGVzdGluZyhv
cHRpb25zLmFkZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVzKCkuY19zdHIoKSk7Ci0jZW5kaWYK
LQogICAgIFdLUGFnZVBvc3RNZXNzYWdlVG9JbmplY3RlZEJ1bmRsZShUZXN0Q29udHJvbGxlcjo6
c2luZ2xldG9uKCkubWFpbldlYlZpZXcoKS0+cGFnZSgpLCB0b1dLKCJSZXNldCIpLmdldCgpLCBy
ZXNldE1lc3NhZ2VCb2R5LmdldCgpKTsKIAogICAgIFdLQ29udGV4dFNldFNob3VsZFVzZUZvbnRT
bW9vdGhpbmcoVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLmNvbnRleHQoKSwgZmFsc2UpOwot
CiAgICAgV0tDb250ZXh0U2V0Q2FjaGVNb2RlbChUZXN0Q29udHJvbGxlcjo6c2luZ2xldG9uKCku
Y29udGV4dCgpLCBrV0tDYWNoZU1vZGVsRG9jdW1lbnRCcm93c2VyKTsKIAogICAgIFdLV2Vic2l0
ZURhdGFTdG9yZUNsZWFyQ2FjaGVkQ3JlZGVudGlhbHMod2Vic2l0ZURhdGFTdG9yZSgpKTsKLQog
ICAgIFdLV2Vic2l0ZURhdGFTdG9yZVJlc2V0U2VydmljZVdvcmtlckZldGNoVGltZW91dEZvclRl
c3Rpbmcod2Vic2l0ZURhdGFTdG9yZSgpKTsKIAogICAgIFdLV2Vic2l0ZURhdGFTdG9yZVNldFJl
c291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKHdlYnNpdGVEYXRhU3RvcmUoKSwgdHJ1ZSk7CiAg
ICAgV0tXZWJzaXRlRGF0YVN0b3JlQ2xlYXJBbGxEZXZpY2VPcmllbnRhdGlvblBlcm1pc3Npb25z
KHdlYnNpdGVEYXRhU3RvcmUoKSk7CiAKKyAgICBXS0hUVFBDb29raWVTdG9yZURlbGV0ZUFsbENv
b2tpZXMoV0tXZWJzaXRlRGF0YVN0b3JlR2V0SFRUUENvb2tpZVN0b3JlKHdlYnNpdGVEYXRhU3Rv
cmUoKSksIG51bGxwdHIsIG51bGxwdHIpOworCiAgICAgY2xlYXJJbmRleGVkRGF0YWJhc2VzKCk7
CiAgICAgY2xlYXJMb2NhbFN0b3JhZ2UoKTsKIApAQCAtMTAzNSw3ICs5NzYsNiBAQCBib29sIFRl
c3RDb250cm9sbGVyOjpyZXNldFN0YXRlVG9Db25zaXN0CiAgICAgcmVzZXRRdW90YSgpOwogCiAg
ICAgV0tDb250ZXh0Q2xlYXJDdXJyZW50TW9kaWZpZXJTdGF0ZUZvclRlc3RpbmcoVGVzdENvbnRy
b2xsZXI6OnNpbmdsZXRvbigpLmNvbnRleHQoKSk7Ci0KICAgICBXS0NvbnRleHRTZXRVc2VTZXBh
cmF0ZVNlcnZpY2VXb3JrZXJQcm9jZXNzKFRlc3RDb250cm9sbGVyOjpzaW5nbGV0b24oKS5jb250
ZXh0KCksIGZhbHNlKTsKIAogICAgIFdLUGFnZVNldE1vY2tDYW1lcmFPcmllbnRhdGlvbihtX21h
aW5XZWJWaWV3LT5wYWdlKCksIDApOwpAQCAtMTA1MSwxMCArOTkxLDYgQEAgYm9vbCBUZXN0Q29u
dHJvbGxlcjo6cmVzZXRTdGF0ZVRvQ29uc2lzdAogICAgIC8vIHNvbWUgb3RoZXIgY29kZSBkb2lu
ZyB0aGlzLCBpdCBzaG91bGQgcHJvYmFibHkgYmUgcmVzcG9uc2libGUgZm9yIGNsZWFudXAgdG9v
LgogICAgIHJlc2V0UHJlZmVyZW5jZXNUb0NvbnNpc3RlbnRWYWx1ZXMob3B0aW9ucyk7CiAKLSNp
ZiBQTEFURk9STShHVEspCi0gICAgV0tUZXh0Q2hlY2tlckNvbnRpbnVvdXNTcGVsbENoZWNraW5n
RW5hYmxlZFN0YXRlQ2hhbmdlZCh0cnVlKTsKLSNlbmRpZgotCiAgICAgLy8gTWFrZSBzdXJlIHRo
ZSB2aWV3IGlzIGluIHRoZSB3aW5kb3cgKGEgdGVzdCBjYW4gdW5wYXJlbnQgaXQpLgogICAgIG1f
bWFpbldlYlZpZXctPmFkZFRvV2luZG93KCk7CiAKQEAgLTI4MzQsMTEgKzI3NzAsNiBAQCBXS0Nv
bnRleHRSZWYgVGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtQWRqCiAgICAgcmV0dXJuIGNvbnRleHQ7
CiB9CiAKLWJvb2wgVGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtUmVzZXRTdGF0ZVRvQ29uc2lzdGVu
dFZhbHVlcyhjb25zdCBUZXN0T3B0aW9ucyYpCi17Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0KIHVu
c2lnbmVkIFRlc3RDb250cm9sbGVyOjppbWFnZUNvdW50SW5HZW5lcmFsUGFzdGVib2FyZCgpIGNv
bnN0CiB7CiAgICAgcmV0dXJuIDA7CkluZGV4OiBUb29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RD
b250cm9sbGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29u
dHJvbGxlci5oCShyZXZpc2lvbiAyNjgzMjUpCisrKyBUb29scy9XZWJLaXRUZXN0UnVubmVyL1Rl
c3RDb250cm9sbGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTM5NCw3ICszOTQsNiBAQCBwcml2YXRl
OgogCiAgICAgdm9pZCBlbnN1cmVWaWV3U3VwcG9ydHNPcHRpb25zRm9yVGVzdChjb25zdCBUZXN0
SW52b2NhdGlvbiYpOwogICAgIFRlc3RPcHRpb25zIHRlc3RPcHRpb25zRm9yVGVzdChjb25zdCBU
ZXN0Q29tbWFuZCYpIGNvbnN0OwotICAgIFRlc3RGZWF0dXJlcyBnbG9iYWxGZWF0dXJlRGVmYXVs
dHNGb3JUZXN0KGNvbnN0IFRlc3RDb21tYW5kJikgY29uc3Q7CiAgICAgVGVzdEZlYXR1cmVzIHBs
YXRmb3JtU3BlY2lmaWNGZWF0dXJlRGVmYXVsdHNGb3JUZXN0KGNvbnN0IFRlc3RDb21tYW5kJikg
Y29uc3Q7CiAgICAgVGVzdEZlYXR1cmVzIHBsYXRmb3JtU3BlY2lmaWNGZWF0dXJlT3ZlcnJpZGVz
RGVmYXVsdHNGb3JUZXN0KGNvbnN0IFRlc3RDb21tYW5kJikgY29uc3Q7CiAKQEAgLTU5Niw4ICs1
OTUsNiBAQCBwcml2YXRlOgogICAgIFN0cmluZyBtX3Vuc3VwcG9ydGVkUGx1Z2luTW9kZTsKIAog
ICAgIGJvb2wgbV9mb3JjZUNvbXBsZXhUZXh0IHsgZmFsc2UgfTsKLSAgICBib29sIG1fc2hvdWxk
VXNlQWNjZWxlcmF0ZWREcmF3aW5nIHsgZmFsc2UgfTsKLSAgICAKICAgICBib29sIG1fc2hvdWxk
TG9nQ2FuQXV0aGVudGljYXRlQWdhaW5zdFByb3RlY3Rpb25TcGFjZSB7IGZhbHNlIH07CiAgICAg
Ym9vbCBtX3Nob3VsZExvZ0Rvd25sb2FkQ2FsbGJhY2tzIHsgZmFsc2UgfTsKICAgICBib29sIG1f
c2hvdWxkTG9nSGlzdG9yeUNsaWVudENhbGxiYWNrcyB7IGZhbHNlIH07CkluZGV4OiBUb29scy9X
ZWJLaXRUZXN0UnVubmVyL1Rlc3RPcHRpb25zLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9XZWJL
aXRUZXN0UnVubmVyL1Rlc3RPcHRpb25zLmNwcAkocmV2aXNpb24gMjY4MzI1KQorKysgVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9UZXN0T3B0aW9ucy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwMSw1
NCArMTAxLDUxIEBAIHZvaWQgbWVyZ2UoVGVzdEZlYXR1cmVzJiBiYXNlLCBUZXN0RmVhdHUKIHN0
YXRpYyBjb25zdCBzdGQ6OnVub3JkZXJlZF9tYXA8c3RkOjpzdHJpbmcsIGJvb2w+JiBib29sRGVm
YXVsdHNNYXAoKQogewogICAgIHN0YXRpYyBzdGQ6OnVub3JkZXJlZF9tYXA8c3RkOjpzdHJpbmcs
IGJvb2w+IG1hcCB7Ci0gICAgICAgIHsgInVzZVRocmVhZGVkU2Nyb2xsaW5nIiwgZmFsc2UgfSwK
LSAgICAgICAgeyAidXNlQWNjZWxlcmF0ZWREcmF3aW5nIiwgZmFsc2UgfSwKLSAgICAgICAgeyAi
dXNlUmVtb3RlTGF5ZXJUcmVlIiwgZmFsc2UgfSwKLSAgICAgICAgeyAic2hvdWxkU2hvd1dlYlZp
ZXciLCBmYWxzZSB9LAotICAgICAgICB7ICJ1c2VGbGV4aWJsZVZpZXdwb3J0IiwgZmFsc2UgfSwK
LSAgICAgICAgeyAidXNlRGF0YURldGVjdGlvbiIsIGZhbHNlIH0sCi0gICAgICAgIHsgInVzZU1v
Y2tTY3JvbGxiYXJzIiwgdHJ1ZSB9LAotICAgICAgICB7ICJuZWVkc1NpdGVTcGVjaWZpY1F1aXJr
cyIsIGZhbHNlIH0sCi0gICAgICAgIHsgImlnbm9yZXNWaWV3cG9ydFNjYWxlTGltaXRzIiwgZmFs
c2UgfSwKLSAgICAgICAgeyAidXNlQ2hhcmFjdGVyU2VsZWN0aW9uR3JhbnVsYXJpdHkiLCBmYWxz
ZSB9LAotICAgICAgICB7ICJlbmFibGVBdHRhY2htZW50RWxlbWVudCIsIGZhbHNlIH0sCi0gICAg
ICAgIHsgImVuYWJsZUludGVyc2VjdGlvbk9ic2VydmVyIiwgZmFsc2UgfSwKLSAgICAgICAgeyAi
dXNlRXBoZW1lcmFsU2Vzc2lvbiIsIGZhbHNlIH0sCi0gICAgICAgIHsgImVuYWJsZU1lbnVJdGVt
RWxlbWVudCIsIGZhbHNlIH0sCi0gICAgICAgIHsgImVuYWJsZUtleWdlbkVsZW1lbnQiLCBmYWxz
ZSB9LAotICAgICAgICB7ICJlbmFibGVNb2Rlcm5NZWRpYUNvbnRyb2xzIiwgdHJ1ZSB9LAotICAg
ICAgICB7ICJlbmFibGVQb2ludGVyTG9jayIsIGZhbHNlIH0sCi0gICAgICAgIHsgImVuYWJsZVdl
YkF1dGhlbnRpY2F0aW9uIiwgdHJ1ZSB9LAotICAgICAgICB7ICJlbmFibGVXZWJBdXRoZW50aWNh
dGlvbkxvY2FsQXV0aGVudGljYXRvciIsIHRydWUgfSwKLSAgICAgICAgeyAiZW5hYmxlSW5zcGVj
dG9yQWRkaXRpb25zIiwgZmFsc2UgfSwKLSAgICAgICAgeyAic2hvdWxkU2hvd1RvdWNoZXMiLCBm
YWxzZSB9LAotICAgICAgICB7ICJkdW1wSlNDb25zb2xlTG9nSW5TdGRFcnIiLCBmYWxzZSB9LAog
ICAgICAgICB7ICJhbGxvd0Nyb3NzT3JpZ2luU3VicmVzb3VyY2VzVG9Bc2tGb3JDcmVkZW50aWFs
cyIsIGZhbHNlIH0sCisgICAgICAgIHsgImFsbG93VG9wTmF2aWdhdGlvblRvRGF0YVVSTHMiLCB0
cnVlIH0sCisgICAgICAgIHsgImFsbG93c0xpbmtQcmV2aWV3IiwgdHJ1ZSB9LAogICAgICAgICB7
ICJkb21QYXN0ZUFsbG93ZWQiLCB0cnVlIH0sCi0gICAgICAgIHsgImVuYWJsZUNvbG9yRmlsdGVy
IiwgZmFsc2UgfSwKLSAgICAgICAgeyAicHVuY2hPdXRXaGl0ZUJhY2tncm91bmRzSW5EYXJrTW9k
ZSIsIGZhbHNlIH0sCi0gICAgICAgIHsgInJ1blNpbmdseSIsIGZhbHNlIH0sCi0gICAgICAgIHsg
ImNoZWNrRm9yV29ybGRMZWFrcyIsIGZhbHNlIH0sCi0gICAgICAgIHsgInNob3VsZElnbm9yZU1l
dGFWaWV3cG9ydCIsIGZhbHNlIH0sCi0gICAgICAgIHsgInNwZWxsQ2hlY2tpbmdEb3RzIiwgZmFs
c2UgfSwKLSAgICAgICAgeyAiZW5hYmxlU2VydmljZUNvbnRyb2xzIiwgZmFsc2UgfSwKKyAgICAg
ICAgeyAiZHVtcEpTQ29uc29sZUxvZ0luU3RkRXJyIiwgZmFsc2UgfSwKICAgICAgICAgeyAiZWRp
dGFibGUiLCBmYWxzZSB9LAotICAgICAgICB7ICJzaG91bGRIYW5kbGVSdW5PcGVuUGFuZWwiLCB0
cnVlIH0sCi0gICAgICAgIHsgInNob3VsZFByZXNlbnRQb3BvdmVycyIsIHRydWUgfSwKICAgICAg
ICAgeyAiZW5hYmxlQXBwTmFwIiwgZmFsc2UgfSwKKyAgICAgICAgeyAiZW5hYmxlQXR0YWNobWVu
dEVsZW1lbnQiLCBmYWxzZSB9LAogICAgICAgICB7ICJlbmFibGVCYWNrRm9yd2FyZENhY2hlIiwg
ZmFsc2UgfSwKLSAgICAgICAgeyAiYWxsb3dzTGlua1ByZXZpZXciLCB0cnVlIH0sCi0gICAgICAg
IHsgImVuYWJsZUNhcHR1cmVWaWRlb0luVUlQcm9jZXNzIiwgZmFsc2UgfSwKLSAgICAgICAgeyAi
ZW5hYmxlQ2FwdHVyZVZpZGVvSW5HUFVQcm9jZXNzIiwgZmFsc2UgfSwKLSAgICAgICAgeyAiZW5h
YmxlQ2FwdHVyZUF1ZGlvSW5VSVByb2Nlc3MiLCBmYWxzZSB9LAogICAgICAgICB7ICJlbmFibGVD
YXB0dXJlQXVkaW9JbkdQVVByb2Nlc3MiLCBmYWxzZSB9LAotICAgICAgICB7ICJhbGxvd1RvcE5h
dmlnYXRpb25Ub0RhdGFVUkxzIiwgdHJ1ZSB9LAorICAgICAgICB7ICJlbmFibGVDYXB0dXJlQXVk
aW9JblVJUHJvY2VzcyIsIGZhbHNlIH0sCisgICAgICAgIHsgImVuYWJsZUNhcHR1cmVWaWRlb0lu
R1BVUHJvY2VzcyIsIGZhbHNlIH0sCisgICAgICAgIHsgImVuYWJsZUNhcHR1cmVWaWRlb0luVUlQ
cm9jZXNzIiwgZmFsc2UgfSwKKyAgICAgICAgeyAiZW5hYmxlQ29sb3JGaWx0ZXIiLCBmYWxzZSB9
LAogICAgICAgICB7ICJlbmFibGVJbkFwcEJyb3dzZXJQcml2YWN5IiwgZmFsc2UgfSwKLSAgICAg
ICAgeyAiaXNBcHBCb3VuZFdlYlZpZXciLCBmYWxzZSB9LAotICAgICAgICB7ICJpZ25vcmVTeW5j
aHJvbm91c01lc3NhZ2luZ1RpbWVvdXRzIiwgZmFsc2UgfSwKKyAgICAgICAgeyAiZW5hYmxlSW5z
cGVjdG9yQWRkaXRpb25zIiwgZmFsc2UgfSwKKyAgICAgICAgeyAiZW5hYmxlS2V5Z2VuRWxlbWVu
dCIsIGZhbHNlIH0sCisgICAgICAgIHsgImVuYWJsZU1lbnVJdGVtRWxlbWVudCIsIGZhbHNlIH0s
CisgICAgICAgIHsgImVuYWJsZU1vZGVybk1lZGlhQ29udHJvbHMiLCB0cnVlIH0sCiAgICAgICAg
IHsgImVuYWJsZVByb2Nlc3NTd2FwT25OYXZpZ2F0aW9uIiwgdHJ1ZSB9LAogICAgICAgICB7ICJl
bmFibGVQcm9jZXNzU3dhcE9uV2luZG93T3BlbiIsIGZhbHNlIH0sCi0gICAgICAgIHsgInVzZVNl
cnZpY2VXb3JrZXJTaG9ydFRpbWVvdXQiLCBmYWxzZSB9CisgICAgICAgIHsgImVuYWJsZVNlcnZp
Y2VDb250cm9scyIsIGZhbHNlIH0sCisgICAgICAgIHsgImVuYWJsZVdlYkF1dGhlbnRpY2F0aW9u
IiwgdHJ1ZSB9LAorICAgICAgICB7ICJlbmFibGVXZWJBdXRoZW50aWNhdGlvbkxvY2FsQXV0aGVu
dGljYXRvciIsIHRydWUgfSwKKyAgICAgICAgeyAiaWdub3JlU3luY2hyb25vdXNNZXNzYWdpbmdU
aW1lb3V0cyIsIGZhbHNlIH0sCisgICAgICAgIHsgImlnbm9yZXNWaWV3cG9ydFNjYWxlTGltaXRz
IiwgZmFsc2UgfSwKKyAgICAgICAgeyAiaXNBcHBCb3VuZFdlYlZpZXciLCBmYWxzZSB9LAorICAg
ICAgICB7ICJuZWVkc1NpdGVTcGVjaWZpY1F1aXJrcyIsIGZhbHNlIH0sCisgICAgICAgIHsgInB1
bmNoT3V0V2hpdGVCYWNrZ3JvdW5kc0luRGFya01vZGUiLCBmYWxzZSB9LAorICAgICAgICB7ICJy
dW5TaW5nbHkiLCBmYWxzZSB9LAorICAgICAgICB7ICJzaG91bGRIYW5kbGVSdW5PcGVuUGFuZWwi
LCB0cnVlIH0sCisgICAgICAgIHsgInNob3VsZElnbm9yZU1ldGFWaWV3cG9ydCIsIGZhbHNlIH0s
CisgICAgICAgIHsgInNob3VsZFByZXNlbnRQb3BvdmVycyIsIHRydWUgfSwKKyAgICAgICAgeyAi
c2hvdWxkU2hvd1RvdWNoZXMiLCBmYWxzZSB9LAorICAgICAgICB7ICJzaG91bGRTaG93V2ViVmll
dyIsIGZhbHNlIH0sCisgICAgICAgIHsgInNwZWxsQ2hlY2tpbmdEb3RzIiwgZmFsc2UgfSwKKyAg
ICAgICAgeyAidXNlQWNjZWxlcmF0ZWREcmF3aW5nIiwgZmFsc2UgfSwKKyAgICAgICAgeyAidXNl
Q2hhcmFjdGVyU2VsZWN0aW9uR3JhbnVsYXJpdHkiLCBmYWxzZSB9LAorICAgICAgICB7ICJ1c2VE
YXRhRGV0ZWN0aW9uIiwgZmFsc2UgfSwKKyAgICAgICAgeyAidXNlRXBoZW1lcmFsU2Vzc2lvbiIs
IGZhbHNlIH0sCisgICAgICAgIHsgInVzZUZsZXhpYmxlVmlld3BvcnQiLCBmYWxzZSB9LAorICAg
ICAgICB7ICJ1c2VNb2NrU2Nyb2xsYmFycyIsIHRydWUgfSwKKyAgICAgICAgeyAidXNlUmVtb3Rl
TGF5ZXJUcmVlIiwgZmFsc2UgfSwKKyAgICAgICAgeyAidXNlU2VydmljZVdvcmtlclNob3J0VGlt
ZW91dCIsIGZhbHNlIH0sCisgICAgICAgIHsgInVzZVRocmVhZGVkU2Nyb2xsaW5nIiwgZmFsc2Ug
fSwKICAgICB9OwogICAgIHJldHVybiBtYXA7CiB9CkBAIC0xNTgsOCArMTU1LDggQEAgc3RhdGlj
IGNvbnN0IHN0ZDo6dW5vcmRlcmVkX21hcDxzdGQ6OnN0cgogICAgIHN0YXRpYyBzdGQ6OnVub3Jk
ZXJlZF9tYXA8c3RkOjpzdHJpbmcsIGRvdWJsZT4gbWFwIHsKICAgICAgICAgeyAiY29udGVudElu
c2V0LnRvcCIsIDAgfSwKICAgICAgICAgeyAiZGV2aWNlU2NhbGVGYWN0b3IiLCAxIH0sCisgICAg
ICAgIHsgInZpZXdIZWlnaHQiLCA2MDAgfSwKICAgICAgICAgeyAidmlld1dpZHRoIiwgODAwIH0s
Ci0gICAgICAgIHsgInZpZXdIZWlnaHQiLCA2MDAgfQogICAgIH07CiAgICAgcmV0dXJuIG1hcDsK
IH0KQEAgLTE2NywxMiArMTY0LDEyIEBAIHN0YXRpYyBjb25zdCBzdGQ6OnVub3JkZXJlZF9tYXA8
c3RkOjpzdHIKIHN0YXRpYyBjb25zdCBzdGQ6OnVub3JkZXJlZF9tYXA8c3RkOjpzdHJpbmcsIHN0
ZDo6c3RyaW5nPiYgc3RyaW5nRGVmYXVsdHNNYXAoKQogewogICAgIHN0YXRpYyBzdGQ6OnVub3Jk
ZXJlZF9tYXA8c3RkOjpzdHJpbmcsIHN0ZDo6c3RyaW5nPiBtYXAgeworICAgICAgICB7ICJhZGRp
dGlvbmFsU3VwcG9ydGVkSW1hZ2VUeXBlcyIsIHsgfSB9LAorICAgICAgICB7ICJhcHBsaWNhdGlv
bkJ1bmRsZUlkZW50aWZpZXIiLCB7IH0gfSwKICAgICAgICAgeyAiYXBwbGljYXRpb25NYW5pZmVz
dCIsIHsgfSB9LAorICAgICAgICB7ICJjb250ZW50TW9kZSIsIHsgfSB9LAogICAgICAgICB7ICJq
c2NPcHRpb25zIiwgeyB9IH0sCi0gICAgICAgIHsgImFkZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5
cGVzIiwgeyB9IH0sCiAgICAgICAgIHsgInN0YW5kYWxvbmVXZWJBcHBsaWNhdGlvblVSTCIsIHsg
fSB9LAotICAgICAgICB7ICJjb250ZW50TW9kZSIsIHsgfSB9LAotICAgICAgICB7ICJhcHBsaWNh
dGlvbkJ1bmRsZUlkZW50aWZpZXIiLCB7IH0gfQogICAgIH07CiAgICAgcmV0dXJuIG1hcDsKIH0K
QEAgLTE4MCw3ICsxNzcsNyBAQCBzdGF0aWMgY29uc3Qgc3RkOjp1bm9yZGVyZWRfbWFwPHN0ZDo6
c3RyCiBzdGF0aWMgY29uc3Qgc3RkOjp1bm9yZGVyZWRfbWFwPHN0ZDo6c3RyaW5nLCBzdGQ6OnZl
Y3RvcjxzdGQ6OnN0cmluZz4+JiBzdHJpbmdWZWN0b3JEZWZhdWx0c01hcCgpCiB7CiAgICAgc3Rh
dGljIHN0ZDo6dW5vcmRlcmVkX21hcDxzdGQ6OnN0cmluZywgc3RkOjp2ZWN0b3I8c3RkOjpzdHJp
bmc+PiBtYXAgewotICAgICAgICB7ICJsYW5ndWFnZSIsIHsgfSB9CisgICAgICAgIHsgImxhbmd1
YWdlIiwgeyB9IH0sCiAgICAgfTsKICAgICByZXR1cm4gbWFwOwogfQpAQCAtMTk4LDY1ICsxOTUs
NjIgQEAgZW51bSBjbGFzcyBLZXlUeXBlIDogdWludDhfdCB7CiBzdGF0aWMgY29uc3Qgc3RkOjp1
bm9yZGVyZWRfbWFwPHN0ZDo6c3RyaW5nLCBLZXlUeXBlPiYga2V5VHlwZU1hcCgpCiB7CiAgICAg
c3RhdGljIHN0ZDo6dW5vcmRlcmVkX21hcDxzdGQ6OnN0cmluZywgS2V5VHlwZT4gbWFwIHsKLSAg
ICAgICAgeyAidXNlVGhyZWFkZWRTY3JvbGxpbmciLCBLZXlUeXBlOjpCb29sIH0sCi0gICAgICAg
IHsgInVzZUFjY2VsZXJhdGVkRHJhd2luZyIsIEtleVR5cGU6OkJvb2wgfSwKLSAgICAgICAgeyAi
dXNlUmVtb3RlTGF5ZXJUcmVlIiwgS2V5VHlwZTo6Qm9vbCB9LAotICAgICAgICB7ICJzaG91bGRT
aG93V2ViVmlldyIsIEtleVR5cGU6OkJvb2wgfSwKLSAgICAgICAgeyAidXNlRmxleGlibGVWaWV3
cG9ydCIsIEtleVR5cGU6OkJvb2wgfSwKLSAgICAgICAgeyAidXNlRGF0YURldGVjdGlvbiIsIEtl
eVR5cGU6OkJvb2wgfSwKLSAgICAgICAgeyAidXNlTW9ja1Njcm9sbGJhcnMiLCBLZXlUeXBlOjpC
b29sIH0sCi0gICAgICAgIHsgIm5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzIiwgS2V5VHlwZTo6Qm9v
bCB9LAotICAgICAgICB7ICJpZ25vcmVzVmlld3BvcnRTY2FsZUxpbWl0cyIsIEtleVR5cGU6OkJv
b2wgfSwKLSAgICAgICAgeyAidXNlQ2hhcmFjdGVyU2VsZWN0aW9uR3JhbnVsYXJpdHkiLCBLZXlU
eXBlOjpCb29sIH0sCi0gICAgICAgIHsgImVuYWJsZUF0dGFjaG1lbnRFbGVtZW50IiwgS2V5VHlw
ZTo6Qm9vbCB9LAotICAgICAgICB7ICJlbmFibGVJbnRlcnNlY3Rpb25PYnNlcnZlciIsIEtleVR5
cGU6OkJvb2wgfSwKLSAgICAgICAgeyAidXNlRXBoZW1lcmFsU2Vzc2lvbiIsIEtleVR5cGU6OkJv
b2wgfSwKLSAgICAgICAgeyAiZW5hYmxlTWVudUl0ZW1FbGVtZW50IiwgS2V5VHlwZTo6Qm9vbCB9
LAotICAgICAgICB7ICJlbmFibGVLZXlnZW5FbGVtZW50IiwgS2V5VHlwZTo6Qm9vbCB9LAotICAg
ICAgICB7ICJlbmFibGVNb2Rlcm5NZWRpYUNvbnRyb2xzIiwgS2V5VHlwZTo6Qm9vbCB9LAotICAg
ICAgICB7ICJlbmFibGVQb2ludGVyTG9jayIsIEtleVR5cGU6OkJvb2wgfSwKLSAgICAgICAgeyAi
ZW5hYmxlV2ViQXV0aGVudGljYXRpb24iLCBLZXlUeXBlOjpCb29sIH0sCi0gICAgICAgIHsgImVu
YWJsZVdlYkF1dGhlbnRpY2F0aW9uTG9jYWxBdXRoZW50aWNhdG9yIiwgS2V5VHlwZTo6Qm9vbCB9
LAotICAgICAgICB7ICJlbmFibGVJbnNwZWN0b3JBZGRpdGlvbnMiLCBLZXlUeXBlOjpCb29sIH0s
Ci0gICAgICAgIHsgInNob3VsZFNob3dUb3VjaGVzIiwgS2V5VHlwZTo6Qm9vbCB9LAotICAgICAg
ICB7ICJkdW1wSlNDb25zb2xlTG9nSW5TdGRFcnIiLCBLZXlUeXBlOjpCb29sIH0sCiAgICAgICAg
IHsgImFsbG93Q3Jvc3NPcmlnaW5TdWJyZXNvdXJjZXNUb0Fza0ZvckNyZWRlbnRpYWxzIiwgS2V5
VHlwZTo6Qm9vbCB9LAorICAgICAgICB7ICJhbGxvd1RvcE5hdmlnYXRpb25Ub0RhdGFVUkxzIiwg
S2V5VHlwZTo6Qm9vbCB9LAorICAgICAgICB7ICJhbGxvd3NMaW5rUHJldmlldyIsIEtleVR5cGU6
OkJvb2wgfSwKICAgICAgICAgeyAiZG9tUGFzdGVBbGxvd2VkIiwgS2V5VHlwZTo6Qm9vbCB9LAot
ICAgICAgICB7ICJlbmFibGVDb2xvckZpbHRlciIsIEtleVR5cGU6OkJvb2wgfSwKLSAgICAgICAg
eyAicHVuY2hPdXRXaGl0ZUJhY2tncm91bmRzSW5EYXJrTW9kZSIsIEtleVR5cGU6OkJvb2wgfSwK
LSAgICAgICAgeyAicnVuU2luZ2x5IiwgS2V5VHlwZTo6Qm9vbCB9LAotICAgICAgICB7ICJjaGVj
a0ZvcldvcmxkTGVha3MiLCBLZXlUeXBlOjpCb29sIH0sCi0gICAgICAgIHsgInNob3VsZElnbm9y
ZU1ldGFWaWV3cG9ydCIsIEtleVR5cGU6OkJvb2wgfSwKLSAgICAgICAgeyAic3BlbGxDaGVja2lu
Z0RvdHMiLCBLZXlUeXBlOjpCb29sIH0sCi0gICAgICAgIHsgImVuYWJsZVNlcnZpY2VDb250cm9s
cyIsIEtleVR5cGU6OkJvb2wgfSwKKyAgICAgICAgeyAiZHVtcEpTQ29uc29sZUxvZ0luU3RkRXJy
IiwgS2V5VHlwZTo6Qm9vbCB9LAogICAgICAgICB7ICJlZGl0YWJsZSIsIEtleVR5cGU6OkJvb2wg
fSwKLSAgICAgICAgeyAic2hvdWxkSGFuZGxlUnVuT3BlblBhbmVsIiwgS2V5VHlwZTo6Qm9vbCB9
LAotICAgICAgICB7ICJzaG91bGRQcmVzZW50UG9wb3ZlcnMiLCBLZXlUeXBlOjpCb29sIH0sCiAg
ICAgICAgIHsgImVuYWJsZUFwcE5hcCIsIEtleVR5cGU6OkJvb2wgfSwKKyAgICAgICAgeyAiZW5h
YmxlQXR0YWNobWVudEVsZW1lbnQiLCBLZXlUeXBlOjpCb29sIH0sCiAgICAgICAgIHsgImVuYWJs
ZUJhY2tGb3J3YXJkQ2FjaGUiLCBLZXlUeXBlOjpCb29sIH0sCi0gICAgICAgIHsgImFsbG93c0xp
bmtQcmV2aWV3IiwgS2V5VHlwZTo6Qm9vbCB9LAotICAgICAgICB7ICJlbmFibGVDYXB0dXJlVmlk
ZW9JblVJUHJvY2VzcyIsIEtleVR5cGU6OkJvb2wgfSwKLSAgICAgICAgeyAiZW5hYmxlQ2FwdHVy
ZVZpZGVvSW5HUFVQcm9jZXNzIiwgS2V5VHlwZTo6Qm9vbCB9LAotICAgICAgICB7ICJlbmFibGVD
YXB0dXJlQXVkaW9JblVJUHJvY2VzcyIsIEtleVR5cGU6OkJvb2wgfSwKICAgICAgICAgeyAiZW5h
YmxlQ2FwdHVyZUF1ZGlvSW5HUFVQcm9jZXNzIiwgS2V5VHlwZTo6Qm9vbCB9LAotICAgICAgICB7
ICJhbGxvd1RvcE5hdmlnYXRpb25Ub0RhdGFVUkxzIiwgS2V5VHlwZTo6Qm9vbCB9LAorICAgICAg
ICB7ICJlbmFibGVDYXB0dXJlQXVkaW9JblVJUHJvY2VzcyIsIEtleVR5cGU6OkJvb2wgfSwKKyAg
ICAgICAgeyAiZW5hYmxlQ2FwdHVyZVZpZGVvSW5HUFVQcm9jZXNzIiwgS2V5VHlwZTo6Qm9vbCB9
LAorICAgICAgICB7ICJlbmFibGVDYXB0dXJlVmlkZW9JblVJUHJvY2VzcyIsIEtleVR5cGU6OkJv
b2wgfSwKKyAgICAgICAgeyAiZW5hYmxlQ29sb3JGaWx0ZXIiLCBLZXlUeXBlOjpCb29sIH0sCiAg
ICAgICAgIHsgImVuYWJsZUluQXBwQnJvd3NlclByaXZhY3kiLCBLZXlUeXBlOjpCb29sIH0sCi0g
ICAgICAgIHsgImlzQXBwQm91bmRXZWJWaWV3IiwgS2V5VHlwZTo6Qm9vbCB9LAotICAgICAgICB7
ICJpZ25vcmVTeW5jaHJvbm91c01lc3NhZ2luZ1RpbWVvdXRzIiwgS2V5VHlwZTo6Qm9vbCB9LAor
ICAgICAgICB7ICJlbmFibGVJbnNwZWN0b3JBZGRpdGlvbnMiLCBLZXlUeXBlOjpCb29sIH0sCisg
ICAgICAgIHsgImVuYWJsZUtleWdlbkVsZW1lbnQiLCBLZXlUeXBlOjpCb29sIH0sCisgICAgICAg
IHsgImVuYWJsZU1lbnVJdGVtRWxlbWVudCIsIEtleVR5cGU6OkJvb2wgfSwKKyAgICAgICAgeyAi
ZW5hYmxlTW9kZXJuTWVkaWFDb250cm9scyIsIEtleVR5cGU6OkJvb2wgfSwKICAgICAgICAgeyAi
ZW5hYmxlUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24iLCBLZXlUeXBlOjpCb29sIH0sCiAgICAgICAg
IHsgImVuYWJsZVByb2Nlc3NTd2FwT25XaW5kb3dPcGVuIiwgS2V5VHlwZTo6Qm9vbCB9LAorICAg
ICAgICB7ICJlbmFibGVTZXJ2aWNlQ29udHJvbHMiLCBLZXlUeXBlOjpCb29sIH0sCisgICAgICAg
IHsgImVuYWJsZVdlYkF1dGhlbnRpY2F0aW9uIiwgS2V5VHlwZTo6Qm9vbCB9LAorICAgICAgICB7
ICJlbmFibGVXZWJBdXRoZW50aWNhdGlvbkxvY2FsQXV0aGVudGljYXRvciIsIEtleVR5cGU6OkJv
b2wgfSwKKyAgICAgICAgeyAiaWdub3JlU3luY2hyb25vdXNNZXNzYWdpbmdUaW1lb3V0cyIsIEtl
eVR5cGU6OkJvb2wgfSwKKyAgICAgICAgeyAiaWdub3Jlc1ZpZXdwb3J0U2NhbGVMaW1pdHMiLCBL
ZXlUeXBlOjpCb29sIH0sCisgICAgICAgIHsgImlzQXBwQm91bmRXZWJWaWV3IiwgS2V5VHlwZTo6
Qm9vbCB9LAorICAgICAgICB7ICJuZWVkc1NpdGVTcGVjaWZpY1F1aXJrcyIsIEtleVR5cGU6OkJv
b2wgfSwKKyAgICAgICAgeyAicHVuY2hPdXRXaGl0ZUJhY2tncm91bmRzSW5EYXJrTW9kZSIsIEtl
eVR5cGU6OkJvb2wgfSwKKyAgICAgICAgeyAicnVuU2luZ2x5IiwgS2V5VHlwZTo6Qm9vbCB9LAor
ICAgICAgICB7ICJzaG91bGRIYW5kbGVSdW5PcGVuUGFuZWwiLCBLZXlUeXBlOjpCb29sIH0sCisg
ICAgICAgIHsgInNob3VsZElnbm9yZU1ldGFWaWV3cG9ydCIsIEtleVR5cGU6OkJvb2wgfSwKKyAg
ICAgICAgeyAic2hvdWxkUHJlc2VudFBvcG92ZXJzIiwgS2V5VHlwZTo6Qm9vbCB9LAorICAgICAg
ICB7ICJzaG91bGRTaG93VG91Y2hlcyIsIEtleVR5cGU6OkJvb2wgfSwKKyAgICAgICAgeyAic2hv
dWxkU2hvd1dlYlZpZXciLCBLZXlUeXBlOjpCb29sIH0sCisgICAgICAgIHsgInNwZWxsQ2hlY2tp
bmdEb3RzIiwgS2V5VHlwZTo6Qm9vbCB9LAorICAgICAgICB7ICJ1c2VBY2NlbGVyYXRlZERyYXdp
bmciLCBLZXlUeXBlOjpCb29sIH0sCisgICAgICAgIHsgInVzZUNoYXJhY3RlclNlbGVjdGlvbkdy
YW51bGFyaXR5IiwgS2V5VHlwZTo6Qm9vbCB9LAorICAgICAgICB7ICJ1c2VEYXRhRGV0ZWN0aW9u
IiwgS2V5VHlwZTo6Qm9vbCB9LAorICAgICAgICB7ICJ1c2VFcGhlbWVyYWxTZXNzaW9uIiwgS2V5
VHlwZTo6Qm9vbCB9LAorICAgICAgICB7ICJ1c2VGbGV4aWJsZVZpZXdwb3J0IiwgS2V5VHlwZTo6
Qm9vbCB9LAorICAgICAgICB7ICJ1c2VNb2NrU2Nyb2xsYmFycyIsIEtleVR5cGU6OkJvb2wgfSwK
KyAgICAgICAgeyAidXNlUmVtb3RlTGF5ZXJUcmVlIiwgS2V5VHlwZTo6Qm9vbCB9LAogICAgICAg
ICB7ICJ1c2VTZXJ2aWNlV29ya2VyU2hvcnRUaW1lb3V0IiwgS2V5VHlwZTo6Qm9vbCB9LAorICAg
ICAgICB7ICJ1c2VUaHJlYWRlZFNjcm9sbGluZyIsIEtleVR5cGU6OkJvb2wgfSwKICAgICAKICAg
ICAgICAgeyAiY29udGVudEluc2V0LnRvcCIsIEtleVR5cGU6OkRvdWJsZSB9LAogICAgICAgICB7
ICJkZXZpY2VTY2FsZUZhY3RvciIsIEtleVR5cGU6OkRvdWJsZSB9LAotICAgICAgICB7ICJ2aWV3
V2lkdGgiLCBLZXlUeXBlOjpEb3VibGUgfSwKICAgICAgICAgeyAidmlld0hlaWdodCIsIEtleVR5
cGU6OkRvdWJsZSB9LAorICAgICAgICB7ICJ2aWV3V2lkdGgiLCBLZXlUeXBlOjpEb3VibGUgfSwK
IAotICAgICAgICB7ICJqc2NPcHRpb25zIiwgS2V5VHlwZTo6U3RyaW5nIH0sCiAgICAgICAgIHsg
ImFkZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVzIiwgS2V5VHlwZTo6U3RyaW5nIH0sCi0gICAg
ICAgIHsgImNvbnRlbnRNb2RlIiwgS2V5VHlwZTo6U3RyaW5nIH0sCiAgICAgICAgIHsgImFwcGxp
Y2F0aW9uQnVuZGxlSWRlbnRpZmllciIsIEtleVR5cGU6OlN0cmluZyB9LAogICAgICAgICB7ICJh
cHBsaWNhdGlvbk1hbmlmZXN0IiwgS2V5VHlwZTo6U3RyaW5nUmVsYXRpdmVQYXRoIH0sCisgICAg
ICAgIHsgImNvbnRlbnRNb2RlIiwgS2V5VHlwZTo6U3RyaW5nIH0sCisgICAgICAgIHsgImpzY09w
dGlvbnMiLCBLZXlUeXBlOjpTdHJpbmcgfSwKICAgICAgICAgeyAic3RhbmRhbG9uZVdlYkFwcGxp
Y2F0aW9uVVJMIiwgS2V5VHlwZTo6U3RyaW5nVVJMIH0sCiAKICAgICAgICAgeyAibGFuZ3VhZ2Ui
LCBLZXlUeXBlOjpTdHJpbmdWZWN0b3IgfSwKQEAgLTQ4Niw2ICs0ODAsNDIgQEAgYm9vbCBUZXN0
T3B0aW9uczo6aGFzU2FtZUluaXRpYWxpemF0aW9uTwogICAgIHJldHVybiB0cnVlOwogfQogCisj
ZGVmaW5lIEZPUl9FQUNIX0JPT0xfV0tfUFJFRkVSRU5DRShtYWNybykgXAorICAgIG1hY3JvKGVu
YWJsZUNhcHR1cmVWaWRlb0luVUlQcm9jZXNzLCBDYXB0dXJlVmlkZW9JblVJUHJvY2Vzc0VuYWJs
ZWQpIFwKKyAgICBtYWNybyhlbmFibGVDYXB0dXJlVmlkZW9JbkdQVVByb2Nlc3MsIENhcHR1cmVW
aWRlb0luR1BVUHJvY2Vzc0VuYWJsZWQpIFwKKyAgICBtYWNybyhlbmFibGVDYXB0dXJlQXVkaW9J
blVJUHJvY2VzcywgQ2FwdHVyZUF1ZGlvSW5VSVByb2Nlc3NFbmFibGVkKSBcCisgICAgbWFjcm8o
ZW5hYmxlQ2FwdHVyZUF1ZGlvSW5HUFVQcm9jZXNzLCBDYXB0dXJlQXVkaW9JbkdQVVByb2Nlc3NF
bmFibGVkKSBcCisgICAgbWFjcm8odXNlQWNjZWxlcmF0ZWREcmF3aW5nLCBBY2NlbGVyYXRlZERy
YXdpbmdFbmFibGVkKSBcCisgICAgbWFjcm8odXNlTW9ja1Njcm9sbGJhcnMsIE1vY2tTY3JvbGxi
YXJzRW5hYmxlZCkgXAorICAgIG1hY3JvKG5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzLCBOZWVkc1Np
dGVTcGVjaWZpY1F1aXJrcykgXAorICAgIG1hY3JvKGVuYWJsZUF0dGFjaG1lbnRFbGVtZW50LCBB
dHRhY2htZW50RWxlbWVudEVuYWJsZWQpIFwKKyAgICBtYWNybyhlbmFibGVNZW51SXRlbUVsZW1l
bnQsIE1lbnVJdGVtRWxlbWVudEVuYWJsZWQpIFwKKyAgICBtYWNybyhlbmFibGVLZXlnZW5FbGVt
ZW50LCBLZXlnZW5FbGVtZW50RW5hYmxlZCkgXAorICAgIG1hY3JvKGVuYWJsZU1vZGVybk1lZGlh
Q29udHJvbHMsIE1vZGVybk1lZGlhQ29udHJvbHNFbmFibGVkKSBcCisgICAgbWFjcm8oZW5hYmxl
V2ViQXV0aGVudGljYXRpb24sIFdlYkF1dGhlbnRpY2F0aW9uRW5hYmxlZCkgXAorICAgIG1hY3Jv
KGVuYWJsZVdlYkF1dGhlbnRpY2F0aW9uTG9jYWxBdXRoZW50aWNhdG9yLCBXZWJBdXRoZW50aWNh
dGlvbkxvY2FsQXV0aGVudGljYXRvckVuYWJsZWQpIFwKKyAgICBtYWNybyhlbmFibGVJbnNwZWN0
b3JBZGRpdGlvbnMsIEluc3BlY3RvckFkZGl0aW9uc0VuYWJsZWQpIFwKKyAgICBtYWNybyhhbGxv
d0Nyb3NzT3JpZ2luU3VicmVzb3VyY2VzVG9Bc2tGb3JDcmVkZW50aWFscywgQWxsb3dDcm9zc09y
aWdpblN1YnJlc291cmNlc1RvQXNrRm9yQ3JlZGVudGlhbHMpIFwKKyAgICBtYWNybyhkb21QYXN0
ZUFsbG93ZWQsIERPTVBhc3RlQWxsb3dlZCkgXAorICAgIG1hY3JvKGVuYWJsZUNvbG9yRmlsdGVy
LCBDb2xvckZpbHRlckVuYWJsZWQpIFwKKyAgICBtYWNybyhwdW5jaE91dFdoaXRlQmFja2dyb3Vu
ZHNJbkRhcmtNb2RlLCBQdW5jaE91dFdoaXRlQmFja2dyb3VuZHNJbkRhcmtNb2RlKSBcCisgICAg
bWFjcm8oc2hvdWxkSWdub3JlTWV0YVZpZXdwb3J0LCBTaG91bGRJZ25vcmVNZXRhVmlld3BvcnQp
IFwKKyAgICBtYWNybyhlbmFibGVBcHBOYXAsIFBhZ2VWaXNpYmlsaXR5QmFzZWRQcm9jZXNzU3Vw
cHJlc3Npb25FbmFibGVkKSBcCisgICAgbWFjcm8oZW5hYmxlQmFja0ZvcndhcmRDYWNoZSwgVXNl
c0JhY2tGb3J3YXJkQ2FjaGUpIFwKKyAgICBtYWNybyhlbmFibGVTZXJ2aWNlQ29udHJvbHMsIFNl
cnZpY2VDb250cm9sc0VuYWJsZWQpIFwKKyAgICBtYWNybyhhbGxvd1RvcE5hdmlnYXRpb25Ub0Rh
dGFVUkxzLCBBbGxvd1RvcE5hdmlnYXRpb25Ub0RhdGFVUkxzKSBcCisgICAgbWFjcm8odXNlU2Vy
dmljZVdvcmtlclNob3J0VGltZW91dCwgU2hvdWxkVXNlU2VydmljZVdvcmtlclNob3J0VGltZW91
dCkgXAorXAorCitzdGQ6OnZlY3RvcjxzdGQ6OnBhaXI8c3RkOjpzdHJpbmcsIGJvb2w+PiBUZXN0
T3B0aW9uczo6Ym9vbFdLUHJlZmVyZW5jZXMoKSBjb25zdAoreworICAgIHJldHVybiB7CisjZGVm
aW5lIEFERF9WQUxVRSh0ZXN0T3B0aW9uc0tleSwgcHJlZmVyZW5jZXNLZXkpIHsgI3ByZWZlcmVu
Y2VzS2V5LCBib29sRmVhdHVyZVZhbHVlKCN0ZXN0T3B0aW9uc0tleSkgfSwKK0ZPUl9FQUNIX0JP
T0xfV0tfUFJFRkVSRU5DRShBRERfVkFMVUUpCisjdW5kZWYgQUREX1ZBTFVFCisgICAgfTsKK30K
KwogdGVtcGxhdGU8dHlwZW5hbWUgVD4KIFQgZmVhdHVyZVZhbHVlKHN0ZDo6c3RyaW5nIGtleSwg
Y29uc3Qgc3RkOjp1bm9yZGVyZWRfbWFwPHN0ZDo6c3RyaW5nLCBUPiYgbWFwLCBjb25zdCBzdGQ6
OnVub3JkZXJlZF9tYXA8c3RkOjpzdHJpbmcsIFQ+JiBkZWZhdWx0c01hcCkKIHsKSW5kZXg6IFRv
b2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdE9wdGlvbnMuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9X
ZWJLaXRUZXN0UnVubmVyL1Rlc3RPcHRpb25zLmgJKHJldmlzaW9uIDI2ODMyNSkKKysrIFRvb2xz
L1dlYktpdFRlc3RSdW5uZXIvVGVzdE9wdGlvbnMuaAkod29ya2luZyBjb3B5KQpAQCAtODcsNjkg
Kzg3LDQ4IEBAIHB1YmxpYzoKICAgICAgICAgfTsKICAgICB9CiAKLSAgICBib29sIHVzZVRocmVh
ZGVkU2Nyb2xsaW5nKCkgY29uc3QgeyByZXR1cm4gYm9vbEZlYXR1cmVWYWx1ZSgidXNlVGhyZWFk
ZWRTY3JvbGxpbmciKTsgfQotICAgIGJvb2wgdXNlQWNjZWxlcmF0ZWREcmF3aW5nKCkgY29uc3Qg
eyByZXR1cm4gYm9vbEZlYXR1cmVWYWx1ZSgidXNlQWNjZWxlcmF0ZWREcmF3aW5nIik7IH0KLSAg
ICBib29sIHVzZVJlbW90ZUxheWVyVHJlZSgpIGNvbnN0IHsgcmV0dXJuIGJvb2xGZWF0dXJlVmFs
dWUoInVzZVJlbW90ZUxheWVyVHJlZSIpOyB9Ci0gICAgYm9vbCBzaG91bGRTaG93V2ViVmlldygp
IGNvbnN0IHsgcmV0dXJuIGJvb2xGZWF0dXJlVmFsdWUoInNob3VsZFNob3dXZWJWaWV3Iik7IH0K
LSAgICBib29sIHVzZUZsZXhpYmxlVmlld3BvcnQoKSBjb25zdCB7IHJldHVybiBib29sRmVhdHVy
ZVZhbHVlKCJ1c2VGbGV4aWJsZVZpZXdwb3J0Iik7IH0KLSAgICBib29sIHVzZURhdGFEZXRlY3Rp
b24oKSBjb25zdCB7IHJldHVybiBib29sRmVhdHVyZVZhbHVlKCJ1c2VEYXRhRGV0ZWN0aW9uIik7
IH0KLSAgICBib29sIHVzZU1vY2tTY3JvbGxiYXJzKCkgY29uc3QgeyByZXR1cm4gYm9vbEZlYXR1
cmVWYWx1ZSgidXNlTW9ja1Njcm9sbGJhcnMiKTsgfQotICAgIGJvb2wgbmVlZHNTaXRlU3BlY2lm
aWNRdWlya3MoKSBjb25zdCB7IHJldHVybiBib29sRmVhdHVyZVZhbHVlKCJuZWVkc1NpdGVTcGVj
aWZpY1F1aXJrcyIpOyB9Ci0gICAgYm9vbCBpZ25vcmVzVmlld3BvcnRTY2FsZUxpbWl0cygpIGNv
bnN0IHsgcmV0dXJuIGJvb2xGZWF0dXJlVmFsdWUoImlnbm9yZXNWaWV3cG9ydFNjYWxlTGltaXRz
Iik7IH0KLSAgICBib29sIHVzZUNoYXJhY3RlclNlbGVjdGlvbkdyYW51bGFyaXR5KCkgY29uc3Qg
eyByZXR1cm4gYm9vbEZlYXR1cmVWYWx1ZSgidXNlQ2hhcmFjdGVyU2VsZWN0aW9uR3JhbnVsYXJp
dHkiKTsgfQotICAgIGJvb2wgZW5hYmxlQXR0YWNobWVudEVsZW1lbnQoKSBjb25zdCB7IHJldHVy
biBib29sRmVhdHVyZVZhbHVlKCJlbmFibGVBdHRhY2htZW50RWxlbWVudCIpOyB9Ci0gICAgYm9v
bCBlbmFibGVJbnRlcnNlY3Rpb25PYnNlcnZlcigpIGNvbnN0IHsgcmV0dXJuIGJvb2xGZWF0dXJl
VmFsdWUoImVuYWJsZUludGVyc2VjdGlvbk9ic2VydmVyIik7IH0KLSAgICBib29sIHVzZUVwaGVt
ZXJhbFNlc3Npb24oKSBjb25zdCB7IHJldHVybiBib29sRmVhdHVyZVZhbHVlKCJ1c2VFcGhlbWVy
YWxTZXNzaW9uIik7IH0KLSAgICBib29sIGVuYWJsZU1lbnVJdGVtRWxlbWVudCgpIGNvbnN0IHsg
cmV0dXJuIGJvb2xGZWF0dXJlVmFsdWUoImVuYWJsZU1lbnVJdGVtRWxlbWVudCIpOyB9Ci0gICAg
Ym9vbCBlbmFibGVLZXlnZW5FbGVtZW50KCkgY29uc3QgeyByZXR1cm4gYm9vbEZlYXR1cmVWYWx1
ZSgiZW5hYmxlS2V5Z2VuRWxlbWVudCIpOyB9Ci0gICAgYm9vbCBlbmFibGVNb2Rlcm5NZWRpYUNv
bnRyb2xzKCkgY29uc3QgeyByZXR1cm4gYm9vbEZlYXR1cmVWYWx1ZSgiZW5hYmxlTW9kZXJuTWVk
aWFDb250cm9scyIpOyB9Ci0gICAgYm9vbCBlbmFibGVQb2ludGVyTG9jaygpIGNvbnN0IHsgcmV0
dXJuIGJvb2xGZWF0dXJlVmFsdWUoImVuYWJsZVBvaW50ZXJMb2NrIik7IH0KLSAgICBib29sIGVu
YWJsZVdlYkF1dGhlbnRpY2F0aW9uKCkgY29uc3QgeyByZXR1cm4gYm9vbEZlYXR1cmVWYWx1ZSgi
ZW5hYmxlV2ViQXV0aGVudGljYXRpb24iKTsgfQotICAgIGJvb2wgZW5hYmxlV2ViQXV0aGVudGlj
YXRpb25Mb2NhbEF1dGhlbnRpY2F0b3IoKSBjb25zdCB7IHJldHVybiBib29sRmVhdHVyZVZhbHVl
KCJlbmFibGVXZWJBdXRoZW50aWNhdGlvbkxvY2FsQXV0aGVudGljYXRvciIpOyB9Ci0gICAgYm9v
bCBlbmFibGVJbnNwZWN0b3JBZGRpdGlvbnMoKSBjb25zdCB7IHJldHVybiBib29sRmVhdHVyZVZh
bHVlKCJlbmFibGVJbnNwZWN0b3JBZGRpdGlvbnMiKTsgfQotICAgIGJvb2wgc2hvdWxkU2hvd1Rv
dWNoZXMoKSBjb25zdCB7IHJldHVybiBib29sRmVhdHVyZVZhbHVlKCJzaG91bGRTaG93VG91Y2hl
cyIpOyB9CisgICAgYm9vbCBhbGxvd3NMaW5rUHJldmlldygpIGNvbnN0IHsgcmV0dXJuIGJvb2xG
ZWF0dXJlVmFsdWUoImFsbG93c0xpbmtQcmV2aWV3Iik7IH0KICAgICBib29sIGR1bXBKU0NvbnNv
bGVMb2dJblN0ZEVycigpIGNvbnN0IHsgcmV0dXJuIGJvb2xGZWF0dXJlVmFsdWUoImR1bXBKU0Nv
bnNvbGVMb2dJblN0ZEVyciIpOyB9Ci0gICAgYm9vbCBhbGxvd0Nyb3NzT3JpZ2luU3VicmVzb3Vy
Y2VzVG9Bc2tGb3JDcmVkZW50aWFscygpIGNvbnN0IHsgcmV0dXJuIGJvb2xGZWF0dXJlVmFsdWUo
ImFsbG93Q3Jvc3NPcmlnaW5TdWJyZXNvdXJjZXNUb0Fza0ZvckNyZWRlbnRpYWxzIik7IH0KLSAg
ICBib29sIGRvbVBhc3RlQWxsb3dlZCgpIGNvbnN0IHsgcmV0dXJuIGJvb2xGZWF0dXJlVmFsdWUo
ImRvbVBhc3RlQWxsb3dlZCIpOyB9Ci0gICAgYm9vbCBlbmFibGVDb2xvckZpbHRlcigpIGNvbnN0
IHsgcmV0dXJuIGJvb2xGZWF0dXJlVmFsdWUoImVuYWJsZUNvbG9yRmlsdGVyIik7IH0KLSAgICBi
b29sIHB1bmNoT3V0V2hpdGVCYWNrZ3JvdW5kc0luRGFya01vZGUoKSBjb25zdCB7IHJldHVybiBi
b29sRmVhdHVyZVZhbHVlKCJwdW5jaE91dFdoaXRlQmFja2dyb3VuZHNJbkRhcmtNb2RlIik7IH0K
LSAgICBib29sIHJ1blNpbmdseSgpIGNvbnN0IHsgcmV0dXJuIGJvb2xGZWF0dXJlVmFsdWUoInJ1
blNpbmdseSIpOyB9Ci0gICAgYm9vbCBjaGVja0ZvcldvcmxkTGVha3MoKSBjb25zdCB7IHJldHVy
biBib29sRmVhdHVyZVZhbHVlKCJjaGVja0ZvcldvcmxkTGVha3MiKTsgfQotICAgIGJvb2wgc2hv
dWxkSWdub3JlTWV0YVZpZXdwb3J0KCkgY29uc3QgeyByZXR1cm4gYm9vbEZlYXR1cmVWYWx1ZSgi
c2hvdWxkSWdub3JlTWV0YVZpZXdwb3J0Iik7IH0KLSAgICBib29sIHNob3VsZFNob3dTcGVsbENo
ZWNraW5nRG90cygpIGNvbnN0IHsgcmV0dXJuIGJvb2xGZWF0dXJlVmFsdWUoInNwZWxsQ2hlY2tp
bmdEb3RzIik7IH0KLSAgICBib29sIGVuYWJsZVNlcnZpY2VDb250cm9scygpIGNvbnN0IHsgcmV0
dXJuIGJvb2xGZWF0dXJlVmFsdWUoImVuYWJsZVNlcnZpY2VDb250cm9scyIpOyB9CiAgICAgYm9v
bCBlZGl0YWJsZSgpIGNvbnN0IHsgcmV0dXJuIGJvb2xGZWF0dXJlVmFsdWUoImVkaXRhYmxlIik7
IH0KLSAgICBib29sIHNob3VsZEhhbmRsZVJ1bk9wZW5QYW5lbCgpIGNvbnN0IHsgcmV0dXJuIGJv
b2xGZWF0dXJlVmFsdWUoInNob3VsZEhhbmRsZVJ1bk9wZW5QYW5lbCIpOyB9Ci0gICAgYm9vbCBz
aG91bGRQcmVzZW50UG9wb3ZlcnMoKSBjb25zdCB7IHJldHVybiBib29sRmVhdHVyZVZhbHVlKCJz
aG91bGRQcmVzZW50UG9wb3ZlcnMiKTsgfQotICAgIGJvb2wgZW5hYmxlQXBwTmFwKCkgY29uc3Qg
eyByZXR1cm4gYm9vbEZlYXR1cmVWYWx1ZSgiZW5hYmxlQXBwTmFwIik7IH0KLSAgICBib29sIGVu
YWJsZUJhY2tGb3J3YXJkQ2FjaGUoKSBjb25zdCB7IHJldHVybiBib29sRmVhdHVyZVZhbHVlKCJl
bmFibGVCYWNrRm9yd2FyZENhY2hlIik7IH0KLSAgICBib29sIGFsbG93c0xpbmtQcmV2aWV3KCkg
Y29uc3QgeyByZXR1cm4gYm9vbEZlYXR1cmVWYWx1ZSgiYWxsb3dzTGlua1ByZXZpZXciKTsgfQot
ICAgIGJvb2wgZW5hYmxlQ2FwdHVyZVZpZGVvSW5VSVByb2Nlc3MoKSBjb25zdCB7IHJldHVybiBi
b29sRmVhdHVyZVZhbHVlKCJlbmFibGVDYXB0dXJlVmlkZW9JblVJUHJvY2VzcyIpOyB9Ci0gICAg
Ym9vbCBlbmFibGVDYXB0dXJlVmlkZW9JbkdQVVByb2Nlc3MoKSBjb25zdCB7IHJldHVybiBib29s
RmVhdHVyZVZhbHVlKCJlbmFibGVDYXB0dXJlVmlkZW9JbkdQVVByb2Nlc3MiKTsgfQotICAgIGJv
b2wgZW5hYmxlQ2FwdHVyZUF1ZGlvSW5VSVByb2Nlc3MoKSBjb25zdCB7IHJldHVybiBib29sRmVh
dHVyZVZhbHVlKCJlbmFibGVDYXB0dXJlQXVkaW9JblVJUHJvY2VzcyIpOyB9Ci0gICAgYm9vbCBl
bmFibGVDYXB0dXJlQXVkaW9JbkdQVVByb2Nlc3MoKSBjb25zdCB7IHJldHVybiBib29sRmVhdHVy
ZVZhbHVlKCJlbmFibGVDYXB0dXJlQXVkaW9JbkdQVVByb2Nlc3MiKTsgfQotICAgIGJvb2wgYWxs
b3dUb3BOYXZpZ2F0aW9uVG9EYXRhVVJMcygpIGNvbnN0IHsgcmV0dXJuIGJvb2xGZWF0dXJlVmFs
dWUoImFsbG93VG9wTmF2aWdhdGlvblRvRGF0YVVSTHMiKTsgfQorICAgIC8vIEZJWE1FOiBlbmFi
bGVBdHRhY2htZW50RWxlbWVudCgpIGlzIHN0aWxsIHVzZWQgZHVlIHRvIHNvbWUgV2ViS2l0IGNv
ZGUgdGhhdCByZWxpZXMgb24gdGhlIGNvbmZpZ3VyYXRpb24gdmFsdWUgb2YgX2VuYWJsZUF0dGFj
aG1lbnRFbGVtZW50LgorICAgIGJvb2wgZW5hYmxlQXR0YWNobWVudEVsZW1lbnQoKSBjb25zdCB7
IHJldHVybiBib29sRmVhdHVyZVZhbHVlKCJlbmFibGVBdHRhY2htZW50RWxlbWVudCIpOyB9CiAg
ICAgYm9vbCBlbmFibGVJbkFwcEJyb3dzZXJQcml2YWN5KCkgY29uc3QgeyByZXR1cm4gYm9vbEZl
YXR1cmVWYWx1ZSgiZW5hYmxlSW5BcHBCcm93c2VyUHJpdmFjeSIpOyB9Ci0gICAgYm9vbCBpc0Fw
cEJvdW5kV2ViVmlldygpIGNvbnN0IHsgcmV0dXJuIGJvb2xGZWF0dXJlVmFsdWUoImlzQXBwQm91
bmRXZWJWaWV3Iik7IH0KLSAgICBib29sIGlnbm9yZVN5bmNocm9ub3VzTWVzc2FnaW5nVGltZW91
dHMoKSBjb25zdCB7IHJldHVybiBib29sRmVhdHVyZVZhbHVlKCJpZ25vcmVTeW5jaHJvbm91c01l
c3NhZ2luZ1RpbWVvdXRzIik7IH0KICAgICBib29sIGVuYWJsZVByb2Nlc3NTd2FwT25OYXZpZ2F0
aW9uKCkgY29uc3QgeyByZXR1cm4gYm9vbEZlYXR1cmVWYWx1ZSgiZW5hYmxlUHJvY2Vzc1N3YXBP
bk5hdmlnYXRpb24iKTsgfQogICAgIGJvb2wgZW5hYmxlUHJvY2Vzc1N3YXBPbldpbmRvd09wZW4o
KSBjb25zdCB7IHJldHVybiBib29sRmVhdHVyZVZhbHVlKCJlbmFibGVQcm9jZXNzU3dhcE9uV2lu
ZG93T3BlbiIpOyB9CisgICAgYm9vbCBpZ25vcmVTeW5jaHJvbm91c01lc3NhZ2luZ1RpbWVvdXRz
KCkgY29uc3QgeyByZXR1cm4gYm9vbEZlYXR1cmVWYWx1ZSgiaWdub3JlU3luY2hyb25vdXNNZXNz
YWdpbmdUaW1lb3V0cyIpOyB9CisgICAgYm9vbCBpZ25vcmVzVmlld3BvcnRTY2FsZUxpbWl0cygp
IGNvbnN0IHsgcmV0dXJuIGJvb2xGZWF0dXJlVmFsdWUoImlnbm9yZXNWaWV3cG9ydFNjYWxlTGlt
aXRzIik7IH0KKyAgICBib29sIGlzQXBwQm91bmRXZWJWaWV3KCkgY29uc3QgeyByZXR1cm4gYm9v
bEZlYXR1cmVWYWx1ZSgiaXNBcHBCb3VuZFdlYlZpZXciKTsgfQorICAgIGJvb2wgcHVuY2hPdXRX
aGl0ZUJhY2tncm91bmRzSW5EYXJrTW9kZSgpIGNvbnN0IHsgcmV0dXJuIGJvb2xGZWF0dXJlVmFs
dWUoInB1bmNoT3V0V2hpdGVCYWNrZ3JvdW5kc0luRGFya01vZGUiKTsgfQorICAgIGJvb2wgcnVu
U2luZ2x5KCkgY29uc3QgeyByZXR1cm4gYm9vbEZlYXR1cmVWYWx1ZSgicnVuU2luZ2x5Iik7IH0K
KyAgICBib29sIHNob3VsZEhhbmRsZVJ1bk9wZW5QYW5lbCgpIGNvbnN0IHsgcmV0dXJuIGJvb2xG
ZWF0dXJlVmFsdWUoInNob3VsZEhhbmRsZVJ1bk9wZW5QYW5lbCIpOyB9CisgICAgYm9vbCBzaG91
bGRQcmVzZW50UG9wb3ZlcnMoKSBjb25zdCB7IHJldHVybiBib29sRmVhdHVyZVZhbHVlKCJzaG91
bGRQcmVzZW50UG9wb3ZlcnMiKTsgfQorICAgIGJvb2wgc2hvdWxkU2hvd1NwZWxsQ2hlY2tpbmdE
b3RzKCkgY29uc3QgeyByZXR1cm4gYm9vbEZlYXR1cmVWYWx1ZSgic3BlbGxDaGVja2luZ0RvdHMi
KTsgfQorICAgIGJvb2wgc2hvdWxkU2hvd1RvdWNoZXMoKSBjb25zdCB7IHJldHVybiBib29sRmVh
dHVyZVZhbHVlKCJzaG91bGRTaG93VG91Y2hlcyIpOyB9CisgICAgYm9vbCBzaG91bGRTaG93V2Vi
VmlldygpIGNvbnN0IHsgcmV0dXJuIGJvb2xGZWF0dXJlVmFsdWUoInNob3VsZFNob3dXZWJWaWV3
Iik7IH0KKyAgICBib29sIHVzZUNoYXJhY3RlclNlbGVjdGlvbkdyYW51bGFyaXR5KCkgY29uc3Qg
eyByZXR1cm4gYm9vbEZlYXR1cmVWYWx1ZSgidXNlQ2hhcmFjdGVyU2VsZWN0aW9uR3JhbnVsYXJp
dHkiKTsgfQorICAgIGJvb2wgdXNlRGF0YURldGVjdGlvbigpIGNvbnN0IHsgcmV0dXJuIGJvb2xG
ZWF0dXJlVmFsdWUoInVzZURhdGFEZXRlY3Rpb24iKTsgfQorICAgIGJvb2wgdXNlRXBoZW1lcmFs
U2Vzc2lvbigpIGNvbnN0IHsgcmV0dXJuIGJvb2xGZWF0dXJlVmFsdWUoInVzZUVwaGVtZXJhbFNl
c3Npb24iKTsgfQorICAgIGJvb2wgdXNlRmxleGlibGVWaWV3cG9ydCgpIGNvbnN0IHsgcmV0dXJu
IGJvb2xGZWF0dXJlVmFsdWUoInVzZUZsZXhpYmxlVmlld3BvcnQiKTsgfQorICAgIGJvb2wgdXNl
UmVtb3RlTGF5ZXJUcmVlKCkgY29uc3QgeyByZXR1cm4gYm9vbEZlYXR1cmVWYWx1ZSgidXNlUmVt
b3RlTGF5ZXJUcmVlIik7IH0KICAgICBib29sIHVzZVNlcnZpY2VXb3JrZXJTaG9ydFRpbWVvdXQo
KSBjb25zdCB7IHJldHVybiBib29sRmVhdHVyZVZhbHVlKCJ1c2VTZXJ2aWNlV29ya2VyU2hvcnRU
aW1lb3V0Iik7IH0KKyAgICBib29sIHVzZVRocmVhZGVkU2Nyb2xsaW5nKCkgY29uc3QgeyByZXR1
cm4gYm9vbEZlYXR1cmVWYWx1ZSgidXNlVGhyZWFkZWRTY3JvbGxpbmciKTsgfQogICAgIGRvdWJs
ZSBjb250ZW50SW5zZXRUb3AoKSBjb25zdCB7IHJldHVybiBkb3VibGVGZWF0dXJlVmFsdWUoImNv
bnRlbnRJbnNldC50b3AiKTsgfQogICAgIGRvdWJsZSBkZXZpY2VTY2FsZUZhY3RvcigpIGNvbnN0
IHsgcmV0dXJuIGRvdWJsZUZlYXR1cmVWYWx1ZSgiZGV2aWNlU2NhbGVGYWN0b3IiKTsgfQotICAg
IGRvdWJsZSB2aWV3V2lkdGgoKSBjb25zdCB7IHJldHVybiBkb3VibGVGZWF0dXJlVmFsdWUoInZp
ZXdXaWR0aCIpOyB9CiAgICAgZG91YmxlIHZpZXdIZWlnaHQoKSBjb25zdCB7IHJldHVybiBkb3Vi
bGVGZWF0dXJlVmFsdWUoInZpZXdIZWlnaHQiKTsgfQorICAgIGRvdWJsZSB2aWV3V2lkdGgoKSBj
b25zdCB7IHJldHVybiBkb3VibGVGZWF0dXJlVmFsdWUoInZpZXdXaWR0aCIpOyB9CisgICAgc3Rk
OjpzdHJpbmcgYWRkaXRpb25hbFN1cHBvcnRlZEltYWdlVHlwZXMoKSBjb25zdCB7IHJldHVybiBz
dHJpbmdGZWF0dXJlVmFsdWUoImFkZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVzIik7IH0KKyAg
ICBzdGQ6OnN0cmluZyBhcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVy
biBzdHJpbmdGZWF0dXJlVmFsdWUoImFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllciIpOyB9CiAg
ICAgc3RkOjpzdHJpbmcgYXBwbGljYXRpb25NYW5pZmVzdCgpIGNvbnN0IHsgcmV0dXJuIHN0cmlu
Z0ZlYXR1cmVWYWx1ZSgiYXBwbGljYXRpb25NYW5pZmVzdCIpOyB9CisgICAgc3RkOjpzdHJpbmcg
Y29udGVudE1vZGUoKSBjb25zdCB7IHJldHVybiBzdHJpbmdGZWF0dXJlVmFsdWUoImNvbnRlbnRN
b2RlIik7IH0KICAgICBzdGQ6OnN0cmluZyBqc2NPcHRpb25zKCkgY29uc3QgeyByZXR1cm4gc3Ry
aW5nRmVhdHVyZVZhbHVlKCJqc2NPcHRpb25zIik7IH0KLSAgICBzdGQ6OnN0cmluZyBhZGRpdGlv
bmFsU3VwcG9ydGVkSW1hZ2VUeXBlcygpIGNvbnN0IHsgcmV0dXJuIHN0cmluZ0ZlYXR1cmVWYWx1
ZSgiYWRkaXRpb25hbFN1cHBvcnRlZEltYWdlVHlwZXMiKTsgfQogICAgIHN0ZDo6c3RyaW5nIHN0
YW5kYWxvbmVXZWJBcHBsaWNhdGlvblVSTCgpIGNvbnN0IHsgcmV0dXJuIHN0cmluZ0ZlYXR1cmVW
YWx1ZSgic3RhbmRhbG9uZVdlYkFwcGxpY2F0aW9uVVJMIik7IH0KLSAgICBzdGQ6OnN0cmluZyBj
b250ZW50TW9kZSgpIGNvbnN0IHsgcmV0dXJuIHN0cmluZ0ZlYXR1cmVWYWx1ZSgiY29udGVudE1v
ZGUiKTsgfQotICAgIHN0ZDo6c3RyaW5nIGFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllcigpIGNv
bnN0IHsgcmV0dXJuIHN0cmluZ0ZlYXR1cmVWYWx1ZSgiYXBwbGljYXRpb25CdW5kbGVJZGVudGlm
aWVyIik7IH0KICAgICBzdGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4gb3ZlcnJpZGVMYW5ndWFnZXMo
KSBjb25zdCB7IHJldHVybiBzdHJpbmdWZWN0b3JGZWF0dXJlVmFsdWUoImxhbmd1YWdlIik7IH0K
IAogICAgIGNvbnN0IHN0ZDo6dW5vcmRlcmVkX21hcDxzdGQ6OnN0cmluZywgYm9vbD4mIGV4cGVy
aW1lbnRhbEZlYXR1cmVzKCkgY29uc3QgeyByZXR1cm4gbV9mZWF0dXJlcy5leHBlcmltZW50YWxG
ZWF0dXJlczsgfQogICAgIGNvbnN0IHN0ZDo6dW5vcmRlcmVkX21hcDxzdGQ6OnN0cmluZywgYm9v
bD4mIGludGVybmFsRGVidWdGZWF0dXJlcygpIGNvbnN0IHsgcmV0dXJuIG1fZmVhdHVyZXMuaW50
ZXJuYWxEZWJ1Z0ZlYXR1cmVzOyB9CiAKKyAgICBzdGQ6OnZlY3RvcjxzdGQ6OnBhaXI8c3RkOjpz
dHJpbmcsIGJvb2w+PiBib29sV0tQcmVmZXJlbmNlcygpIGNvbnN0OworCiAgICAgYm9vbCBoYXNT
YW1lSW5pdGlhbGl6YXRpb25PcHRpb25zKGNvbnN0IFRlc3RPcHRpb25zJikgY29uc3Q7CiAKIHBy
aXZhdGU6CkluZGV4OiBUb29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RDb250cm9sbGVy
Q29jb2EubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0
Q29udHJvbGxlckNvY29hLm1tCShyZXZpc2lvbiAyNjgzMjUpCisrKyBUb29scy9XZWJLaXRUZXN0
UnVubmVyL2NvY29hL1Rlc3RDb250cm9sbGVyQ29jb2EubW0JKHdvcmtpbmcgY29weSkKQEAgLTMy
LDYgKzMyLDcgQEAKICNpbXBvcnQgIlRlc3RJbnZvY2F0aW9uLmgiCiAjaW1wb3J0ICJUZXN0UnVu
bmVyV0tXZWJWaWV3LmgiCiAjaW1wb3J0ICJUZXN0V2Vic2l0ZURhdGFTdG9yZURlbGVnYXRlLmgi
CisjaW1wb3J0ICJXZWJDb3JlVGVzdFN1cHBvcnQuaCIKICNpbXBvcnQgPEZvdW5kYXRpb24vRm91
bmRhdGlvbi5oPgogI2ltcG9ydCA8U2VjdXJpdHkvU2VjSXRlbS5oPgogI2ltcG9ydCA8V2ViS2l0
L1dLQ29udGV4dENvbmZpZ3VyYXRpb25SZWYuaD4KQEAgLTY5LDcgKzcwLDYgQEAgdm9pZCBpbml0
aWFsaXplV2ViVmlld0NvbmZpZ3VyYXRpb24oY29ucwogICAgIGdsb2JhbFdlYlZpZXdDb25maWd1
cmF0aW9uLnByb2Nlc3NQb29sID0gKF9fYnJpZGdlIFdLUHJvY2Vzc1Bvb2wgKiljb250ZXh0Owog
ICAgIGdsb2JhbFdlYlZpZXdDb25maWd1cmF0aW9uLndlYnNpdGVEYXRhU3RvcmUgPSAoX19icmlk
Z2UgV0tXZWJzaXRlRGF0YVN0b3JlICopVGVzdENvbnRyb2xsZXI6OmRlZmF1bHRXZWJzaXRlRGF0
YVN0b3JlKCk7CiAgICAgZ2xvYmFsV2ViVmlld0NvbmZpZ3VyYXRpb24uX2FsbG93VW5pdmVyc2Fs
QWNjZXNzRnJvbUZpbGVVUkxzID0gWUVTOwotICAgIGdsb2JhbFdlYlZpZXdDb25maWd1cmF0aW9u
Ll9hbGxvd1RvcE5hdmlnYXRpb25Ub0RhdGFVUkxzID0gWUVTOwogICAgIGdsb2JhbFdlYlZpZXdD
b25maWd1cmF0aW9uLl9hcHBsZVBheUVuYWJsZWQgPSBZRVM7CiAKICAgICBbZ2xvYmFsV2Vic2l0
ZURhdGFTdG9yZURlbGVnYXRlQ2xpZW50IHJlbGVhc2VdOwpAQCAtMTU4LDIwICsxNTgsMTMgQEAg
dm9pZCBUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1DcmVhdGVXZWJWaQogICAgICAgICBbY29waWVk
Q29uZmlndXJhdGlvbiBzZXRTZWxlY3Rpb25HcmFudWxhcml0eTpXS1NlbGVjdGlvbkdyYW51bGFy
aXR5Q2hhcmFjdGVyXTsKICAgICBpZiAob3B0aW9ucy5pc0FwcEJvdW5kV2ViVmlldygpKQogICAg
ICAgICBbY29waWVkQ29uZmlndXJhdGlvbiBzZXRMaW1pdHNOYXZpZ2F0aW9uc1RvQXBwQm91bmRE
b21haW5zOllFU107Ci0jZWxzZQotICAgIFtjb3BpZWRDb25maWd1cmF0aW9uIF9zZXRTZXJ2aWNl
Q29udHJvbHNFbmFibGVkOm9wdGlvbnMuZW5hYmxlU2VydmljZUNvbnRyb2xzKCldOwogI2VuZGlm
CiAKICAgICBpZiAob3B0aW9ucy5lbmFibGVBdHRhY2htZW50RWxlbWVudCgpKQogICAgICAgICBb
Y29waWVkQ29uZmlndXJhdGlvbiBfc2V0QXR0YWNobWVudEVsZW1lbnRFbmFibGVkOllFU107CiAK
LSAgICBpZiAob3B0aW9ucy5lbmFibGVDb2xvckZpbHRlcigpKQotICAgICAgICBbY29waWVkQ29u
ZmlndXJhdGlvbiBfc2V0Q29sb3JGaWx0ZXJFbmFibGVkOllFU107Ci0KICAgICBbY29waWVkQ29u
ZmlndXJhdGlvbiBzZXRXZWJzaXRlRGF0YVN0b3JlOihXS1dlYnNpdGVEYXRhU3RvcmUgKil3ZWJz
aXRlRGF0YVN0b3JlKCldOwogCi0gICAgW2NvcGllZENvbmZpZ3VyYXRpb24gX3NldEFsbG93VG9w
TmF2aWdhdGlvblRvRGF0YVVSTHM6b3B0aW9ucy5hbGxvd1RvcE5hdmlnYXRpb25Ub0RhdGFVUkxz
KCldOwotCiAgICAgY29uZmlndXJlQ29udGVudE1vZGUoY29waWVkQ29uZmlndXJhdGlvbi5nZXQo
KSwgb3B0aW9ucyk7CiAKICAgICBhdXRvIGFwcGxpY2F0aW9uTWFuaWZlc3QgPSBvcHRpb25zLmFw
cGxpY2F0aW9uTWFuaWZlc3QoKTsKQEAgLTI5OCw2ICsyOTEsOCBAQCB2b2lkIFRlc3RDb250cm9s
bGVyOjpjb2NvYVJlc2V0U3RhdGVUb0NvCiAgICAgfQogCiAgICAgW2dsb2JhbFdlYnNpdGVEYXRh
U3RvcmVEZWxlZ2F0ZUNsaWVudCBzZXRBbGxvd1JhaXNpbmdRdW90YTpZRVNdOworCisgICAgV2Vi
Q29yZVRlc3RTdXBwb3J0OjpzZXRBZGRpdGlvbmFsU3VwcG9ydGVkSW1hZ2VUeXBlc0ZvclRlc3Rp
bmcob3B0aW9ucy5hZGRpdGlvbmFsU3VwcG9ydGVkSW1hZ2VUeXBlcygpLmNfc3RyKCkpOwogfQog
CiB2b2lkIFRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybVdpbGxSdW5UZXN0KGNvbnN0IFRlc3RJbnZv
Y2F0aW9uJiB0ZXN0SW52b2NhdGlvbikKSW5kZXg6IFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvZ3Rr
L1Rlc3RDb250cm9sbGVyR3RrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9XZWJLaXRUZXN0UnVu
bmVyL2d0ay9UZXN0Q29udHJvbGxlckd0ay5jcHAJKHJldmlzaW9uIDI2ODMyNSkKKysrIFRvb2xz
L1dlYktpdFRlc3RSdW5uZXIvZ3RrL1Rlc3RDb250cm9sbGVyR3RrLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUgIlRlc3RDb250cm9sbGVyLmgiCiAKICNpbmNs
dWRlICJQbGF0Zm9ybVdlYlZpZXcuaCIKKyNpbmNsdWRlIDxXZWJLaXQvV0tUZXh0Q2hlY2tlci5o
PgogI2luY2x1ZGUgPGd0ay9ndGsuaD4KICNpbmNsdWRlIDx3dGYvUGxhdGZvcm0uaD4KICNpbmNs
dWRlIDx3dGYvUnVuTG9vcC5oPgpAQCAtMTUwLDYgKzE1MSwxMiBAQCB2b2lkIFRlc3RDb250cm9s
bGVyOjpwbGF0Zm9ybVJlc2V0UHJlZmVyCiAgICAgbV9tYWluV2ViVmlldy0+ZGlzbWlzc0FsbFBv
cHVwTWVudXMoKTsKIH0KIAorYm9vbCBUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1SZXNldFN0YXRl
VG9Db25zaXN0ZW50VmFsdWVzKGNvbnN0IFRlc3RPcHRpb25zJikKK3sKKyAgICBXS1RleHRDaGVj
a2VyQ29udGludW91c1NwZWxsQ2hlY2tpbmdFbmFibGVkU3RhdGVDaGFuZ2VkKHRydWUpOworICAg
IHJldHVybiB0cnVlOworfQorCiBUZXN0RmVhdHVyZXMgVGVzdENvbnRyb2xsZXI6OnBsYXRmb3Jt
U3BlY2lmaWNGZWF0dXJlRGVmYXVsdHNGb3JUZXN0KGNvbnN0IFRlc3RDb21tYW5kJikgY29uc3QK
IHsKICAgICBUZXN0RmVhdHVyZXMgZmVhdHVyZXM7CkluZGV4OiBUb29scy9XZWJLaXRUZXN0UnVu
bmVyL2lvcy9UZXN0Q29udHJvbGxlcklPUy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9XZWJLaXRU
ZXN0UnVubmVyL2lvcy9UZXN0Q29udHJvbGxlcklPUy5tbQkocmV2aXNpb24gMjY4MzI1KQorKysg
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9pb3MvVGVzdENvbnRyb2xsZXJJT1MubW0JKHdvcmtpbmcg
Y29weSkKQEAgLTE0OCw3ICsxNDgsNiBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybVJl
c2V0UHJlZmVyCiAgICAgV0tQcmVmZXJlbmNlc1NldFRleHRBdXRvc2l6aW5nRW5hYmxlZChwcmVm
ZXJlbmNlcywgZmFsc2UpOwogICAgIFdLUHJlZmVyZW5jZXNTZXRUZXh0QXV0b3NpemluZ1VzZXNJ
ZGVtcG90ZW50TW9kZShwcmVmZXJlbmNlcywgZmFsc2UpOwogICAgIFdLUHJlZmVyZW5jZXNTZXRD
b250ZW50Q2hhbmdlT2JzZXJ2ZXJFbmFibGVkKHByZWZlcmVuY2VzLCBmYWxzZSk7Ci0gICAgWyhf
X2JyaWRnZSBXS1ByZWZlcmVuY2VzICopcHJlZmVyZW5jZXMgX3NldFNob3VsZElnbm9yZU1ldGFW
aWV3cG9ydDpOT107CiB9CiAKIGJvb2wgVGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtUmVzZXRTdGF0
ZVRvQ29uc2lzdGVudFZhbHVlcyhjb25zdCBUZXN0T3B0aW9ucyYgb3B0aW9ucykKQEAgLTI2OSw5
ICsyNjgsNiBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybUNvbmZpZ3VyZVZpCiAKICAg
ICBUZXN0UnVubmVyV0tXZWJWaWV3ICp3ZWJWaWV3ID0gbWFpbldlYlZpZXcoKS0+cGxhdGZvcm1W
aWV3KCk7CiAKLSAgICBpZiAodGVzdC5vcHRpb25zKCkuc2hvdWxkSWdub3JlTWV0YVZpZXdwb3J0
KCkpCi0gICAgICAgIHdlYlZpZXcuY29uZmlndXJhdGlvbi5wcmVmZXJlbmNlcy5fc2hvdWxkSWdu
b3JlTWV0YVZpZXdwb3J0ID0gWUVTOwotCiAgICAgaWYgKCF0ZXN0Lm9wdGlvbnMoKS51c2VGbGV4
aWJsZVZpZXdwb3J0KCkpCiAgICAgICAgIHJldHVybjsKIApJbmRleDogVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci93aW4vVGVzdENvbnRyb2xsZXJXaW4uY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1dl
YktpdFRlc3RSdW5uZXIvd2luL1Rlc3RDb250cm9sbGVyV2luLmNwcAkocmV2aXNpb24gMjY4MzI1
KQorKysgVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci93aW4vVGVzdENvbnRyb2xsZXJXaW4uY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0yMjcsNiArMjI3LDExIEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OnBs
YXRmb3JtUmVzZXRQcmVmZXIKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCitib29sIFRlc3RD
b250cm9sbGVyOjpwbGF0Zm9ybVJlc2V0U3RhdGVUb0NvbnNpc3RlbnRWYWx1ZXMoY29uc3QgVGVz
dE9wdGlvbnMmKQoreworICAgIHJldHVybiB0cnVlOworfQorCiBUZXN0RmVhdHVyZXMgVGVzdENv
bnRyb2xsZXI6OnBsYXRmb3JtU3BlY2lmaWNGZWF0dXJlRGVmYXVsdHNGb3JUZXN0KGNvbnN0IFRl
c3RDb21tYW5kJikgY29uc3QKIHsKICAgICByZXR1cm4geyB9OwpJbmRleDogVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci93cGUvVGVzdENvbnRyb2xsZXJXUEUuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xz
L1dlYktpdFRlc3RSdW5uZXIvd3BlL1Rlc3RDb250cm9sbGVyV1BFLmNwcAkocmV2aXNpb24gMjY4
MzI1KQorKysgVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci93cGUvVGVzdENvbnRyb2xsZXJXUEUuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0xMzYsNiArMTM2LDExIEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6
OnBsYXRmb3JtUmVzZXRQcmVmZXIKIHsKIH0KIAorYm9vbCBUZXN0Q29udHJvbGxlcjo6cGxhdGZv
cm1SZXNldFN0YXRlVG9Db25zaXN0ZW50VmFsdWVzKGNvbnN0IFRlc3RPcHRpb25zJikKK3sKKyAg
ICByZXR1cm4gdHJ1ZTsKK30KKwogVGVzdEZlYXR1cmVzIFRlc3RDb250cm9sbGVyOjpwbGF0Zm9y
bVNwZWNpZmljRmVhdHVyZURlZmF1bHRzRm9yVGVzdChjb25zdCBUZXN0Q29tbWFuZCYpIGNvbnN0
CiB7CiAgICAgVGVzdEZlYXR1cmVzIGZlYXR1cmVzOwo=
</data>
<flag name="commit-queue"
          id="427203"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411077</attachid>
            <date>2020-10-11 16:24:50 -0700</date>
            <delta_ts>2020-10-11 16:29:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217582-20201011162449.patch</filename>
            <type>text/plain</type>
            <size>75963</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNjgzMjUpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMzIEBACisyMDIwLTEwLTExICBTYW0gV2Vpbmln
ICA8d2VpbmlnQGFwcGxlLmNvbT4KKworICAgICAgICBbUHJlZmVyZW5jZXNdIEludHJvZHVjZSBz
dHJpbmcgYmFzZWQgU1BJIGZvciBXS1ByZWZlcmVuY2VzIHRvIGFsbG93IHRlc3RzIHRvIGNoYW5n
ZSBpbnRlcm5hbCBiZWhhdmlvciB3aXRob3V0IGFsd2F5cyBhZGRpbmcgYWRkaXRpb25hbCBTUEkK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzU4Mgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtXSVBdCisK
KyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1pbnB1
dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0
OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogU2NyaXB0cy9QcmVm
ZXJlbmNlc1RlbXBsYXRlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbEZlYXR1cmVzLmNwcC5l
cmI6CisgICAgICAgICogU2NyaXB0cy9QcmVmZXJlbmNlc1RlbXBsYXRlcy9XZWJQcmVmZXJlbmNl
c0dldHRlclNldHRlcnMuY3BwLmVyYjogQWRkZWQuCisgICAgICAgICogU2NyaXB0cy9QcmVmZXJl
bmNlc1RlbXBsYXRlcy9XZWJQcmVmZXJlbmNlc0ludGVybmFsRGVidWdGZWF0dXJlcy5jcHAuZXJi
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcDoKKyAgICAgICAg
KFdLUHJlZmVyZW5jZXNTZXRCb29sVmFsdWVGb3JLZXkpOgorICAgICAgICAoV0tQcmVmZXJlbmNl
c1NldERvdWJsZVZhbHVlRm9yS2V5KToKKyAgICAgICAgKFdLUHJlZmVyZW5jZXNTZXRVSW50MzJW
YWx1ZUZvcktleSk6CisgICAgICAgIChXS1ByZWZlcmVuY2VzU2V0U3RyaW5nVmFsdWVGb3JLZXkp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzUmVmUHJpdmF0ZS5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcmVmZXJlbmNlcy5jcHA6CisgICAgICAgIChXZWJLaXQ6
OldlYlByZWZlcmVuY2VzOjpzZXRCb29sVmFsdWVGb3JLZXkpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQcmVmZXJlbmNlczo6c2V0RG91YmxlVmFsdWVGb3JLZXkpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQcmVmZXJlbmNlczo6c2V0VUludDMyVmFsdWVGb3JLZXkpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQcmVmZXJlbmNlczo6c2V0U3RyaW5nVmFsdWVGb3JLZXkpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJQcmVmZXJlbmNlcy5oOgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qOgorCiAyMDIwLTEwLTEwICBTYW0gV2VpbmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KIAog
ICAgICAgICBVc2UgV2ViUHJlZmVyZW5jZSBkZWZpbml0aW9ucyBmcm9tIHNoYXJlZCBjb25maWd1
cmF0aW9uIGZpbGVzIGluIFdlYkNvcmUgKFBhcnQgMSkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvQ01h
a2VMaXN0cy50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dAko
cmV2aXNpb24gMjY4MzI1KQorKysgU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dAkod29ya2lu
ZyBjb3B5KQpAQCAtNTAwLDYgKzUwMCw3IEBAIHNldChXZWJLaXRfV0VCX1BSRUZFUkVOQ0VTX1RF
TVBMQVRFUwogICAgICR7V0VCS0lUX0RJUn0vU2NyaXB0cy9QcmVmZXJlbmNlc1RlbXBsYXRlcy9X
ZWJQYWdlVXBkYXRlUHJlZmVyZW5jZXMuY3BwLmVyYgogICAgICR7V0VCS0lUX0RJUn0vU2NyaXB0
cy9QcmVmZXJlbmNlc1RlbXBsYXRlcy9XZWJQcmVmZXJlbmNlc0RlZmluaXRpb25zLmguZXJiCiAg
ICAgJHtXRUJLSVRfRElSfS9TY3JpcHRzL1ByZWZlcmVuY2VzVGVtcGxhdGVzL1dlYlByZWZlcmVu
Y2VzRXhwZXJpbWVudGFsRmVhdHVyZXMuY3BwLmVyYgorICAgICR7V0VCS0lUX0RJUn0vU2NyaXB0
cy9QcmVmZXJlbmNlc1RlbXBsYXRlcy9XZWJQcmVmZXJlbmNlc0dldHRlclNldHRlcnMuY3BwLmVy
YgogICAgICR7V0VCS0lUX0RJUn0vU2NyaXB0cy9QcmVmZXJlbmNlc1RlbXBsYXRlcy9XZWJQcmVm
ZXJlbmNlc0ludGVybmFsRGVidWdGZWF0dXJlcy5jcHAuZXJiCiAgICAgJHtXRUJLSVRfRElSfS9T
Y3JpcHRzL1ByZWZlcmVuY2VzVGVtcGxhdGVzL1dlYlByZWZlcmVuY2VzS2V5cy5jcHAuZXJiCiAg
ICAgJHtXRUJLSVRfRElSfS9TY3JpcHRzL1ByZWZlcmVuY2VzVGVtcGxhdGVzL1dlYlByZWZlcmVu
Y2VzS2V5cy5oLmVyYgpAQCAtNTE2LDkgKzUxNyw5IEBAIHNldChXZWJLaXRfV0VCX1BSRUZFUkVO
Q0VTCiBzZXRfc291cmNlX2ZpbGVzX3Byb3BlcnRpZXMoJHtXZWJLaXRfV0VCX1BSRUZFUkVOQ0VT
fSBQUk9QRVJUSUVTIEdFTkVSQVRFRCBUUlVFKQogCiBhZGRfY3VzdG9tX2NvbW1hbmQoCi0gICAg
T1VUUFVUICR7V2ViS2l0X0RFUklWRURfU09VUkNFU19ESVJ9L1dlYlBhZ2VVcGRhdGVQcmVmZXJl
bmNlcy5jcHAgJHtXZWJLaXRfREVSSVZFRF9TT1VSQ0VTX0RJUn0vV2ViUHJlZmVyZW5jZXNEZWZp
bml0aW9ucy5oICR7V2ViS2l0X0RFUklWRURfU09VUkNFU19ESVJ9L1dlYlByZWZlcmVuY2VzRXhw
ZXJpbWVudGFsRmVhdHVyZXMuY3BwICR7V2ViS2l0X0RFUklWRURfU09VUkNFU19ESVJ9L1dlYlBy
ZWZlcmVuY2VzSW50ZXJuYWxEZWJ1Z0ZlYXR1cmVzLmNwcCAke1dlYktpdF9ERVJJVkVEX1NPVVJD
RVNfRElSfS9XZWJQcmVmZXJlbmNlc0tleXMuY3BwICR7V2ViS2l0X0RFUklWRURfU09VUkNFU19E
SVJ9L1dlYlByZWZlcmVuY2VzS2V5cy5oICR7V2ViS2l0X0RFUklWRURfU09VUkNFU19ESVJ9L1dl
YlByZWZlcmVuY2VzU3RvcmVEZWZhdWx0c01hcC5jcHAKKyAgICBPVVRQVVQgJHtXZWJLaXRfREVS
SVZFRF9TT1VSQ0VTX0RJUn0vV2ViUGFnZVVwZGF0ZVByZWZlcmVuY2VzLmNwcCAke1dlYktpdF9E
RVJJVkVEX1NPVVJDRVNfRElSfS9XZWJQcmVmZXJlbmNlc0RlZmluaXRpb25zLmggJHtXZWJLaXRf
REVSSVZFRF9TT1VSQ0VTX0RJUn0vV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWxGZWF0dXJlcy5j
cHAgJHtXZWJLaXRfREVSSVZFRF9TT1VSQ0VTX0RJUn0vV2ViUHJlZmVyZW5jZXNHZXR0ZXJTZXR0
ZXJzLmNwcCAke1dlYktpdF9ERVJJVkVEX1NPVVJDRVNfRElSfS9XZWJQcmVmZXJlbmNlc0ludGVy
bmFsRGVidWdGZWF0dXJlcy5jcHAgJHtXZWJLaXRfREVSSVZFRF9TT1VSQ0VTX0RJUn0vV2ViUHJl
ZmVyZW5jZXNLZXlzLmNwcCAke1dlYktpdF9ERVJJVkVEX1NPVVJDRVNfRElSfS9XZWJQcmVmZXJl
bmNlc0tleXMuaCAke1dlYktpdF9ERVJJVkVEX1NPVVJDRVNfRElSfS9XZWJQcmVmZXJlbmNlc1N0
b3JlRGVmYXVsdHNNYXAuY3BwCiAgICAgREVQRU5EUyAke1dlYktpdF9XRUJfUFJFRkVSRU5DRVNf
VEVNUExBVEVTfSAke1dlYktpdF9XRUJfUFJFRkVSRU5DRVN9IFdURl9Db3B5UHJlZmVyZW5jZXMK
LSAgICBDT01NQU5EICR7UlVCWV9FWEVDVVRBQkxFfSAke1dURl9TQ1JJUFRTX0RJUn0vR2VuZXJh
dGVQcmVmZXJlbmNlcy5yYiAtLWZyb250ZW5kIFdlYktpdCAtLWJhc2UgJHtXVEZfU0NSSVBUU19E
SVJ9L1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzLnlhbWwgLS1kZWJ1ZyAke1dURl9TQ1JJUFRT
X0RJUn0vUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNEZWJ1Zy55YW1sIC0tZXhwZXJpbWVudGFs
ICR7V1RGX1NDUklQVFNfRElSfS9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRh
bC55YW1sIC0taW50ZXJuYWwgJHtXVEZfU0NSSVBUU19ESVJ9L1ByZWZlcmVuY2VzL1dlYlByZWZl
cmVuY2VzSW50ZXJuYWwueWFtbCAtLW91dHB1dERpciAiJHtXZWJLaXRfREVSSVZFRF9TT1VSQ0VT
X0RJUn0iIC0tdGVtcGxhdGUgJHtXRUJLSVRfRElSfS9TY3JpcHRzL1ByZWZlcmVuY2VzVGVtcGxh
dGVzL1dlYlBhZ2VVcGRhdGVQcmVmZXJlbmNlcy5jcHAuZXJiIC0tdGVtcGxhdGUgJHtXRUJLSVRf
RElSfS9TY3JpcHRzL1ByZWZlcmVuY2VzVGVtcGxhdGVzL1dlYlByZWZlcmVuY2VzRGVmaW5pdGlv
bnMuaC5lcmIgLS10ZW1wbGF0ZSAke1dFQktJVF9ESVJ9L1NjcmlwdHMvUHJlZmVyZW5jZXNUZW1w
bGF0ZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWxGZWF0dXJlcy5jcHAuZXJiIC0tdGVtcGxh
dGUgJHtXRUJLSVRfRElSfS9TY3JpcHRzL1ByZWZlcmVuY2VzVGVtcGxhdGVzL1dlYlByZWZlcmVu
Y2VzSW50ZXJuYWxEZWJ1Z0ZlYXR1cmVzLmNwcC5lcmIgLS10ZW1wbGF0ZSAke1dFQktJVF9ESVJ9
L1NjcmlwdHMvUHJlZmVyZW5jZXNUZW1wbGF0ZXMvV2ViUHJlZmVyZW5jZXNLZXlzLmNwcC5lcmIg
LS10ZW1wbGF0ZSAke1dFQktJVF9ESVJ9L1NjcmlwdHMvUHJlZmVyZW5jZXNUZW1wbGF0ZXMvV2Vi
UHJlZmVyZW5jZXNLZXlzLmguZXJiIC0tdGVtcGxhdGUgJHtXRUJLSVRfRElSfS9TY3JpcHRzL1By
ZWZlcmVuY2VzVGVtcGxhdGVzL1dlYlByZWZlcmVuY2VzU3RvcmVEZWZhdWx0c01hcC5jcHAuZXJi
CisgICAgQ09NTUFORCAke1JVQllfRVhFQ1VUQUJMRX0gJHtXVEZfU0NSSVBUU19ESVJ9L0dlbmVy
YXRlUHJlZmVyZW5jZXMucmIgLS1mcm9udGVuZCBXZWJLaXQgLS1iYXNlICR7V1RGX1NDUklQVFNf
RElSfS9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlcy55YW1sIC0tZGVidWcgJHtXVEZfU0NSSVBU
U19ESVJ9L1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRGVidWcueWFtbCAtLWV4cGVyaW1lbnRh
bCAke1dURl9TQ1JJUFRTX0RJUn0vUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50
YWwueWFtbCAtLWludGVybmFsICR7V1RGX1NDUklQVFNfRElSfS9QcmVmZXJlbmNlcy9XZWJQcmVm
ZXJlbmNlc0ludGVybmFsLnlhbWwgLS1vdXRwdXREaXIgIiR7V2ViS2l0X0RFUklWRURfU09VUkNF
U19ESVJ9IiAtLXRlbXBsYXRlICR7V0VCS0lUX0RJUn0vU2NyaXB0cy9QcmVmZXJlbmNlc1RlbXBs
YXRlcy9XZWJQYWdlVXBkYXRlUHJlZmVyZW5jZXMuY3BwLmVyYiAtLXRlbXBsYXRlICR7V0VCS0lU
X0RJUn0vU2NyaXB0cy9QcmVmZXJlbmNlc1RlbXBsYXRlcy9XZWJQcmVmZXJlbmNlc0RlZmluaXRp
b25zLmguZXJiIC0tdGVtcGxhdGUgJHtXRUJLSVRfRElSfS9TY3JpcHRzL1ByZWZlcmVuY2VzVGVt
cGxhdGVzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsRmVhdHVyZXMuY3BwLmVyYiAtLXRlbXBs
YXRlICR7V0VCS0lUX0RJUn0vU2NyaXB0cy9QcmVmZXJlbmNlc1RlbXBsYXRlcy9XZWJQcmVmZXJl
bmNlc0dldHRlclNldHRlcnMuY3BwLmVyYiAtLXRlbXBsYXRlICR7V0VCS0lUX0RJUn0vU2NyaXB0
cy9QcmVmZXJlbmNlc1RlbXBsYXRlcy9XZWJQcmVmZXJlbmNlc0ludGVybmFsRGVidWdGZWF0dXJl
cy5jcHAuZXJiIC0tdGVtcGxhdGUgJHtXRUJLSVRfRElSfS9TY3JpcHRzL1ByZWZlcmVuY2VzVGVt
cGxhdGVzL1dlYlByZWZlcmVuY2VzS2V5cy5jcHAuZXJiIC0tdGVtcGxhdGUgJHtXRUJLSVRfRElS
fS9TY3JpcHRzL1ByZWZlcmVuY2VzVGVtcGxhdGVzL1dlYlByZWZlcmVuY2VzS2V5cy5oLmVyYiAt
LXRlbXBsYXRlICR7V0VCS0lUX0RJUn0vU2NyaXB0cy9QcmVmZXJlbmNlc1RlbXBsYXRlcy9XZWJQ
cmVmZXJlbmNlc1N0b3JlRGVmYXVsdHNNYXAuY3BwLmVyYgogICAgIFZFUkJBVElNKQogCiBsaXN0
KEFQUEVORCBXZWJLaXRfSEVBREVSUwpAQCAtNTI5LDYgKzUzMCw3IEBAIGxpc3QoQVBQRU5EIFdl
YktpdF9IRUFERVJTCiBsaXN0KEFQUEVORCBXZWJLaXRfU09VUkNFUwogICAgICR7V2ViS2l0X0RF
UklWRURfU09VUkNFU19ESVJ9L1dlYlBhZ2VVcGRhdGVQcmVmZXJlbmNlcy5jcHAKICAgICAke1dl
YktpdF9ERVJJVkVEX1NPVVJDRVNfRElSfS9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbEZlYXR1
cmVzLmNwcAorICAgICR7V2ViS2l0X0RFUklWRURfU09VUkNFU19ESVJ9L1dlYlByZWZlcmVuY2Vz
R2V0dGVyU2V0dGVycy5jcHAKICAgICAke1dlYktpdF9ERVJJVkVEX1NPVVJDRVNfRElSfS9XZWJQ
cmVmZXJlbmNlc0ludGVybmFsRGVidWdGZWF0dXJlcy5jcHAKICAgICAke1dlYktpdF9ERVJJVkVE
X1NPVVJDRVNfRElSfS9XZWJQcmVmZXJlbmNlc0tleXMuY3BwCiAgICAgJHtXZWJLaXRfREVSSVZF
RF9TT1VSQ0VTX0RJUn0vV2ViUHJlZmVyZW5jZXNTdG9yZURlZmF1bHRzTWFwLmNwcApJbmRleDog
U291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0Cj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAkocmV2aXNp
b24gMjY4MzI1KQorKysgU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVs
aXN0CSh3b3JraW5nIGNvcHkpCkBAIC02OCw2ICs2OCw3IEBAICQoUFJPSkVDVF9ESVIpL1BsdWdp
blByb2Nlc3MvbWFjL2NvbS5hcHAKICQoUFJPSkVDVF9ESVIpL1NjcmlwdHMvUHJlZmVyZW5jZXNU
ZW1wbGF0ZXMvV2ViUGFnZVVwZGF0ZVByZWZlcmVuY2VzLmNwcC5lcmIKICQoUFJPSkVDVF9ESVIp
L1NjcmlwdHMvUHJlZmVyZW5jZXNUZW1wbGF0ZXMvV2ViUHJlZmVyZW5jZXNEZWZpbml0aW9ucy5o
LmVyYgogJChQUk9KRUNUX0RJUikvU2NyaXB0cy9QcmVmZXJlbmNlc1RlbXBsYXRlcy9XZWJQcmVm
ZXJlbmNlc0V4cGVyaW1lbnRhbEZlYXR1cmVzLmNwcC5lcmIKKyQoUFJPSkVDVF9ESVIpL1Njcmlw
dHMvUHJlZmVyZW5jZXNUZW1wbGF0ZXMvV2ViUHJlZmVyZW5jZXNHZXR0ZXJTZXR0ZXJzLmNwcC5l
cmIKICQoUFJPSkVDVF9ESVIpL1NjcmlwdHMvUHJlZmVyZW5jZXNUZW1wbGF0ZXMvV2ViUHJlZmVy
ZW5jZXNJbnRlcm5hbERlYnVnRmVhdHVyZXMuY3BwLmVyYgogJChQUk9KRUNUX0RJUikvU2NyaXB0
cy9QcmVmZXJlbmNlc1RlbXBsYXRlcy9XZWJQcmVmZXJlbmNlc0tleXMuY3BwLmVyYgogJChQUk9K
RUNUX0RJUikvU2NyaXB0cy9QcmVmZXJlbmNlc1RlbXBsYXRlcy9XZWJQcmVmZXJlbmNlc0tleXMu
aC5lcmIKSW5kZXg6IFNvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxp
c3QKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNm
aWxlbGlzdAkocmV2aXNpb24gMjY4MzI1KQorKysgU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNl
cy1vdXRwdXQueGNmaWxlbGlzdAkod29ya2luZyBjb3B5KQpAQCAtMzY5LDYgKzM2OSw3IEBAICQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWIKICQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYlByZWZlcmVuY2VzQ29tYmluZWQueWFtbAog
JChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViUHJlZmVyZW5j
ZXNEZWZpbml0aW9ucy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2Vi
S2l0Mi9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbEZlYXR1cmVzLmNwcAorJChCVUlMVF9QUk9E
VUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViUHJlZmVyZW5jZXNHZXR0ZXJTZXR0
ZXJzLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2Vi
UHJlZmVyZW5jZXNJbnRlcm5hbERlYnVnRmVhdHVyZXMuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJQcmVmZXJlbmNlc0tleXMuY3BwCiAkKEJVSUxU
X1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJQcmVmZXJlbmNlc0tleXMu
aApJbmRleDogU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQkocmV2aXNpb24gMjY4MzI1KQorKysg
U291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCSh3b3JraW5nIGNvcHkpCkBAIC0zNTMs
OSArMzUzLDEwIEBAIFdFQl9QUkVGRVJFTkNFU19URU1QTEFURVMgPSBcCiAgICAgJChXZWJLaXQy
KS9TY3JpcHRzL1ByZWZlcmVuY2VzVGVtcGxhdGVzL1dlYlBhZ2VVcGRhdGVQcmVmZXJlbmNlcy5j
cHAuZXJiIFwKICAgICAkKFdlYktpdDIpL1NjcmlwdHMvUHJlZmVyZW5jZXNUZW1wbGF0ZXMvV2Vi
UHJlZmVyZW5jZXNEZWZpbml0aW9ucy5oLmVyYiBcCiAgICAgJChXZWJLaXQyKS9TY3JpcHRzL1By
ZWZlcmVuY2VzVGVtcGxhdGVzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsRmVhdHVyZXMuY3Bw
LmVyYiBcCisgICAgJChXZWJLaXQyKS9TY3JpcHRzL1ByZWZlcmVuY2VzVGVtcGxhdGVzL1dlYlBy
ZWZlcmVuY2VzR2V0dGVyU2V0dGVycy5jcHAuZXJiIFwKICAgICAkKFdlYktpdDIpL1NjcmlwdHMv
UHJlZmVyZW5jZXNUZW1wbGF0ZXMvV2ViUHJlZmVyZW5jZXNJbnRlcm5hbERlYnVnRmVhdHVyZXMu
Y3BwLmVyYiBcCi0gICAgJChXZWJLaXQyKS9TY3JpcHRzL1ByZWZlcmVuY2VzVGVtcGxhdGVzL1dl
YlByZWZlcmVuY2VzS2V5cy5oLmVyYiBcCiAgICAgJChXZWJLaXQyKS9TY3JpcHRzL1ByZWZlcmVu
Y2VzVGVtcGxhdGVzL1dlYlByZWZlcmVuY2VzS2V5cy5jcHAuZXJiIFwKKyAgICAkKFdlYktpdDIp
L1NjcmlwdHMvUHJlZmVyZW5jZXNUZW1wbGF0ZXMvV2ViUHJlZmVyZW5jZXNLZXlzLmguZXJiIFwK
ICAgICAkKFdlYktpdDIpL1NjcmlwdHMvUHJlZmVyZW5jZXNUZW1wbGF0ZXMvV2ViUHJlZmVyZW5j
ZXNTdG9yZURlZmF1bHRzTWFwLmNwcC5lcmIgXAogIwogV0VCX1BSRUZFUkVOQ0VTX0ZJTEVTID0g
JChiYXNlbmFtZSAkKG5vdGRpciAkKFdFQl9QUkVGRVJFTkNFU19URU1QTEFURVMpKSkKSW5kZXg6
IFNvdXJjZS9XZWJLaXQvU2NyaXB0cy9QcmVmZXJlbmNlc1RlbXBsYXRlcy9XZWJQcmVmZXJlbmNl
c0V4cGVyaW1lbnRhbEZlYXR1cmVzLmNwcC5lcmIKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC9TY3JpcHRzL1ByZWZlcmVuY2VzVGVtcGxhdGVzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFs
RmVhdHVyZXMuY3BwLmVyYgkocmV2aXNpb24gMjY4MzI1KQorKysgU291cmNlL1dlYktpdC9TY3Jp
cHRzL1ByZWZlcmVuY2VzVGVtcGxhdGVzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsRmVhdHVy
ZXMuY3BwLmVyYgkod29ya2luZyBjb3B5KQpAQCAtMzMsMjAgKzMzLDYgQEAKIAogbmFtZXNwYWNl
IFdlYktpdCB7CiAKLTwlLSBmb3IgQHByZWYgaW4gQGV4cGVyaW1lbnRhbEZlYXR1cmVzIGRvIC0l
Pgotdm9pZCBXZWJQcmVmZXJlbmNlczo6c2V0PCU9IEBwcmVmLm5hbWUgJT4oY29uc3QgYm9vbCYg
dmFsdWUpCi17Ci0gICAgaWYgKCFtX3N0b3JlLnNldEJvb2xWYWx1ZUZvcktleShXZWJQcmVmZXJl
bmNlc0tleTo6PCU9IEBwcmVmLm5hbWVMb3dlciAlPktleSgpLCB2YWx1ZSkpCi0gICAgICAgIHJl
dHVybjsKLSAgICB1cGRhdGVCb29sVmFsdWVGb3JFeHBlcmltZW50YWxGZWF0dXJlS2V5KFdlYlBy
ZWZlcmVuY2VzS2V5Ojo8JT0gQHByZWYubmFtZUxvd2VyICU+S2V5KCksIHZhbHVlKTsKLX0KLQot
Ym9vbCBXZWJQcmVmZXJlbmNlczo6PCU9IEBwcmVmLm5hbWVMb3dlciAlPigpIGNvbnN0Ci17Ci0g
ICAgcmV0dXJuIG1fc3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5Ojo8
JT0gQHByZWYubmFtZUxvd2VyICU+S2V5KCkpOwotfQotCi08JS0gZW5kIC0lPgogY29uc3QgVmVj
dG9yPFJlZlB0cjxBUEk6Ok9iamVjdD4+JiBXZWJQcmVmZXJlbmNlczo6ZXhwZXJpbWVudGFsRmVh
dHVyZXMoKQogewogICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxWZWN0b3I8UmVmUHRyPEFQSTo6
T2JqZWN0Pj4+IGZlYXR1cmVzKHN0ZDo6aW5pdGlhbGl6ZXJfbGlzdDxSZWZQdHI8QVBJOjpPYmpl
Y3Q+PiB7CkluZGV4OiBTb3VyY2UvV2ViS2l0L1NjcmlwdHMvUHJlZmVyZW5jZXNUZW1wbGF0ZXMv
V2ViUHJlZmVyZW5jZXNHZXR0ZXJTZXR0ZXJzLmNwcC5lcmIKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdC9TY3JpcHRzL1ByZWZlcmVuY2VzVGVtcGxhdGVzL1dlYlByZWZlcmVuY2VzR2V0dGVy
U2V0dGVycy5jcHAuZXJiCShub25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJLaXQvU2NyaXB0cy9Q
cmVmZXJlbmNlc1RlbXBsYXRlcy9XZWJQcmVmZXJlbmNlc0dldHRlclNldHRlcnMuY3BwLmVyYgko
d29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDk1IEBACisvKgorKiA8JT0gQHdhcm5pbmcgJT4KKyoK
KyogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyoK
KyogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworKiBhcmUgbWV0OgorKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyoK
KyogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiV2ViUHJlZmVyZW5jZXMuaCIKKworI2luY2x1ZGUgIldlYlByZWZl
cmVuY2VzS2V5cy5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworPCUtIGZvciBAcHJlZiBpbiAo
QHByZWZlcmVuY2VzTm90RGVidWcgKyBAcHJlZmVyZW5jZXNEZWJ1ZykgZG8gLSU+Cit2b2lkIFdl
YlByZWZlcmVuY2VzOjpzZXQ8JT0gQHByZWYubmFtZSAlPihjb25zdCA8JT0gQHByZWYudHlwZSAl
PiYgdmFsdWUpCit7CisgICAgaWYgKCFtX3N0b3JlLnNldDwlPSBAcHJlZi50eXBlVXBwZXIgJT5W
YWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6PCU9IEBwcmVmLm5hbWVMb3dlciAlPktleSgp
LCB2YWx1ZSkpCisgICAgICAgIHJldHVybjsKKyAgICB1cGRhdGU8JT0gQHByZWYudHlwZVVwcGVy
ICU+VmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OjwlPSBAcHJlZi5uYW1lTG93ZXIgJT5L
ZXkoKSwgdmFsdWUpOworfQorCis8JT0gQHByZWYudHlwZSAlPiBXZWJQcmVmZXJlbmNlczo6PCU9
IEBwcmVmLm5hbWVMb3dlciAlPigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fc3RvcmUuZ2V0PCU9
IEBwcmVmLnR5cGVVcHBlciAlPlZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5Ojo8JT0gQHBy
ZWYubmFtZUxvd2VyICU+S2V5KCkpOworfQorCit2b2lkIFdlYlByZWZlcmVuY2VzOjpkZWxldGU8
JT0gQHByZWYubmFtZSAlPigpCit7CisgICAgZGVsZXRlS2V5KFdlYlByZWZlcmVuY2VzS2V5Ojo8
JT0gQHByZWYubmFtZUxvd2VyICU+S2V5KCkpOworfQorCis8JS0gZW5kIC0lPgorCis8JS0gZm9y
IEBwcmVmIGluIEBleHBlcmltZW50YWxGZWF0dXJlcyBkbyAtJT4KK3ZvaWQgV2ViUHJlZmVyZW5j
ZXM6OnNldDwlPSBAcHJlZi5uYW1lICU+KGNvbnN0IGJvb2wmIHZhbHVlKQoreworICAgIGlmICgh
bV9zdG9yZS5zZXRCb29sVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OjwlPSBAcHJlZi5u
YW1lTG93ZXIgJT5LZXkoKSwgdmFsdWUpKQorICAgICAgICByZXR1cm47CisgICAgdXBkYXRlQm9v
bFZhbHVlRm9yRXhwZXJpbWVudGFsRmVhdHVyZUtleShXZWJQcmVmZXJlbmNlc0tleTo6PCU9IEBw
cmVmLm5hbWVMb3dlciAlPktleSgpLCB2YWx1ZSk7Cit9CisKK2Jvb2wgV2ViUHJlZmVyZW5jZXM6
OjwlPSBAcHJlZi5uYW1lTG93ZXIgJT4oKSBjb25zdAoreworICAgIHJldHVybiBtX3N0b3JlLmdl
dEJvb2xWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6PCU9IEBwcmVmLm5hbWVMb3dlciAl
PktleSgpKTsKK30KKwordm9pZCBXZWJQcmVmZXJlbmNlczo6ZGVsZXRlPCU9IEBwcmVmLm5hbWUg
JT4oKQoreworICAgIGRlbGV0ZUtleShXZWJQcmVmZXJlbmNlc0tleTo6PCU9IEBwcmVmLm5hbWVM
b3dlciAlPktleSgpKTsKK30KKworPCUtIGVuZCAtJT4KKworPCUtIGZvciBAcHJlZiBpbiBAaW50
ZXJuYWxGZWF0dXJlcyBkbyAtJT4KK3ZvaWQgV2ViUHJlZmVyZW5jZXM6OnNldDwlPSBAcHJlZi5u
YW1lICU+KGNvbnN0IGJvb2wmIHZhbHVlKQoreworICAgIGlmICghbV9zdG9yZS5zZXRCb29sVmFs
dWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OjwlPSBAcHJlZi5uYW1lTG93ZXIgJT5LZXkoKSwg
dmFsdWUpKQorICAgICAgICByZXR1cm47CisgICAgdXBkYXRlQm9vbFZhbHVlRm9ySW50ZXJuYWxE
ZWJ1Z0ZlYXR1cmVLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OjwlPSBAcHJlZi5uYW1lTG93ZXIgJT5L
ZXkoKSwgdmFsdWUpOworfQorCitib29sIFdlYlByZWZlcmVuY2VzOjo8JT0gQHByZWYubmFtZUxv
d2VyICU+KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9zdG9yZS5nZXRCb29sVmFsdWVGb3JLZXko
V2ViUHJlZmVyZW5jZXNLZXk6OjwlPSBAcHJlZi5uYW1lTG93ZXIgJT5LZXkoKSk7Cit9CisKK3Zv
aWQgV2ViUHJlZmVyZW5jZXM6OmRlbGV0ZTwlPSBAcHJlZi5uYW1lICU+KCkKK3sKKyAgICBkZWxl
dGVLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OjwlPSBAcHJlZi5uYW1lTG93ZXIgJT5LZXkoKSk7Cit9
CisKKzwlLSBlbmQgLSU+CisKK30KSW5kZXg6IFNvdXJjZS9XZWJLaXQvU2NyaXB0cy9QcmVmZXJl
bmNlc1RlbXBsYXRlcy9XZWJQcmVmZXJlbmNlc0ludGVybmFsRGVidWdGZWF0dXJlcy5jcHAuZXJi
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvU2NyaXB0cy9QcmVmZXJlbmNlc1RlbXBsYXRl
cy9XZWJQcmVmZXJlbmNlc0ludGVybmFsRGVidWdGZWF0dXJlcy5jcHAuZXJiCShyZXZpc2lvbiAy
NjgzMjUpCisrKyBTb3VyY2UvV2ViS2l0L1NjcmlwdHMvUHJlZmVyZW5jZXNUZW1wbGF0ZXMvV2Vi
UHJlZmVyZW5jZXNJbnRlcm5hbERlYnVnRmVhdHVyZXMuY3BwLmVyYgkod29ya2luZyBjb3B5KQpA
QCAtMzMsMjAgKzMzLDYgQEAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLTwlLSBmb3IgQHByZWYg
aW4gQGludGVybmFsRmVhdHVyZXMgZG8gLSU+Ci12b2lkIFdlYlByZWZlcmVuY2VzOjpzZXQ8JT0g
QHByZWYubmFtZSAlPihjb25zdCBib29sJiB2YWx1ZSkKLXsKLSAgICBpZiAoIW1fc3RvcmUuc2V0
Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5Ojo8JT0gQHByZWYubmFtZUxvd2VyICU+
S2V5KCksIHZhbHVlKSkKLSAgICAgICAgcmV0dXJuOwotICAgIHVwZGF0ZUJvb2xWYWx1ZUZvcklu
dGVybmFsRGVidWdGZWF0dXJlS2V5KFdlYlByZWZlcmVuY2VzS2V5Ojo8JT0gQHByZWYubmFtZUxv
d2VyICU+S2V5KCksIHZhbHVlKTsKLX0KLQotYm9vbCBXZWJQcmVmZXJlbmNlczo6PCU9IEBwcmVm
Lm5hbWVMb3dlciAlPigpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fc3RvcmUuZ2V0Qm9vbFZhbHVl
Rm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5Ojo8JT0gQHByZWYubmFtZUxvd2VyICU+S2V5KCkpOwot
fQotCi08JS0gZW5kIC0lPgogY29uc3QgVmVjdG9yPFJlZlB0cjxBUEk6Ok9iamVjdD4+JiBXZWJQ
cmVmZXJlbmNlczo6aW50ZXJuYWxEZWJ1Z0ZlYXR1cmVzKCkKIHsKICAgICBzdGF0aWMgTmV2ZXJE
ZXN0cm95ZWQ8VmVjdG9yPFJlZlB0cjxBUEk6Ok9iamVjdD4+PiBmZWF0dXJlcyhzdGQ6OmluaXRp
YWxpemVyX2xpc3Q8UmVmUHRyPEFQSTo6T2JqZWN0Pj4gewpJbmRleDogU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUHJlZmVyZW5jZXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlByZWZlcmVuY2VzLmNwcAkocmV2aXNpb24gMjY4MzI1KQorKysgU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUHJlZmVyZW5jZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0x
MDIsNiArMTAyLDM4IEBAIHZvaWQgV2ViUHJlZmVyZW5jZXM6OnVwZGF0ZSgpCiAgICAgICAgIHdl
YlBhZ2VQcm94eS0+cHJlZmVyZW5jZXNEaWRDaGFuZ2UoKTsKIH0KIAordm9pZCBXZWJQcmVmZXJl
bmNlczo6c2V0Qm9vbFZhbHVlRm9yS2V5KGNvbnN0IFN0cmluZyYga2V5LCBib29sIHZhbHVlKQor
eworICAgIGlmICghbV9zdG9yZS5zZXQ8JT0gQHByZWYudHlwZVVwcGVyICU+VmFsdWVGb3JLZXko
V2ViUHJlZmVyZW5jZXNLZXk6OjwlPSBAcHJlZi5uYW1lTG93ZXIgJT5LZXkoKSwgdmFsdWUpKQor
ICAgICAgICByZXR1cm47CisgICAgdXBkYXRlPCU9IEBwcmVmLnR5cGVVcHBlciAlPlZhbHVlRm9y
S2V5KFdlYlByZWZlcmVuY2VzS2V5Ojo8JT0gQHByZWYubmFtZUxvd2VyICU+S2V5KCksIHZhbHVl
KTsKKworICAgIGlmICghbV9zdG9yZS5zZXRCb29sVmFsdWVGb3JLZXkoa2V5LCB2YWx1ZSkpCisg
ICAgICAgIHJldHVybjsKKyAgICB1cGRhdGVCb29sVmFsdWVGb3JLZXkoa2V5LCB2YWx1ZSk7Cit9
CisKK3ZvaWQgV2ViUHJlZmVyZW5jZXM6OnNldERvdWJsZVZhbHVlRm9yS2V5KGNvbnN0IFN0cmlu
ZyYga2V5LCBkb3VibGUgdmFsdWUpCit7CisgICAgaWYgKCFtX3N0b3JlLnNldERvdWJsZVZhbHVl
Rm9yS2V5KGtleSwgdmFsdWUpKQorICAgICAgICByZXR1cm47CisgICAgdXBkYXRlRG91YmxlVmFs
dWVGb3JLZXkoa2V5LCB2YWx1ZSk7Cit9CisKK3ZvaWQgV2ViUHJlZmVyZW5jZXM6OnNldFVJbnQz
MlZhbHVlRm9yS2V5KGNvbnN0IFN0cmluZyYga2V5LCB1aW50MzJfdCB2YWx1ZSkKK3sKKyAgICBp
ZiAoIW1fc3RvcmUuc2V0VUludDMyVmFsdWVGb3JLZXkoa2V5LCB2YWx1ZSkpCisgICAgICAgIHJl
dHVybjsKKyAgICB1cGRhdGVVSW50MzJWYWx1ZUZvcktleShrZXksIHZhbHVlKTsKK30KKwordm9p
ZCBXZWJQcmVmZXJlbmNlczo6c2V0U3RyaW5nVmFsdWVGb3JLZXkoY29uc3QgU3RyaW5nJiBrZXks
IGNvbnN0IFN0cmluZyYgdmFsdWUpCit7CisgICAgaWYgKCFtX3N0b3JlLnNldFN0cmluZ1ZhbHVl
Rm9yS2V5KGtleSwgdmFsdWUpKQorICAgICAgICByZXR1cm47CisgICAgdXBkYXRlU3RyaW5nVmFs
dWVGb3JLZXkoa2V5LCB2YWx1ZSk7Cit9CisKIHZvaWQgV2ViUHJlZmVyZW5jZXM6OnVwZGF0ZVN0
cmluZ1ZhbHVlRm9yS2V5KGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIHZhbHVlKQog
ewogICAgIHBsYXRmb3JtVXBkYXRlU3RyaW5nVmFsdWVGb3JLZXkoa2V5LCB2YWx1ZSk7CkBAIC0x
NTUsMzAgKzE4Nyw2IEBAIHZvaWQgV2ViUHJlZmVyZW5jZXM6OmRlbGV0ZUtleShjb25zdCBTdHIK
ICAgICB1cGRhdGUoKTsgLy8gRklYTUU6IE9ubHkgc2VuZCBvdmVyIHRoZSBjaGFuZ2VkIGtleSBh
bmQgdmFsdWUuCiB9CiAKLSNkZWZpbmUgREVGSU5FX1BSRUZFUkVOQ0VfR0VUVEVSX0FORF9TRVRU
RVJTKEtleVVwcGVyLCBLZXlMb3dlciwgVHlwZU5hbWUsIFR5cGUsIERlZmF1bHRWYWx1ZSwgSHVt
YW5SZWFkYWJsZU5hbWUsIEh1bWFuUmVhZGFibGVEZXNjcmlwdGlvbikgXAotICAgIHZvaWQgV2Vi
UHJlZmVyZW5jZXM6OnNldCMjS2V5VXBwZXIoY29uc3QgVHlwZSYgdmFsdWUpIFwKLSAgICB7IFwK
LSAgICAgICAgaWYgKCFtX3N0b3JlLnNldCMjVHlwZU5hbWUjI1ZhbHVlRm9yS2V5KFdlYlByZWZl
cmVuY2VzS2V5OjpLZXlMb3dlciMjS2V5KCksIHZhbHVlKSkgXAotICAgICAgICAgICAgcmV0dXJu
OyBcCi0gICAgICAgIHVwZGF0ZSMjVHlwZU5hbWUjI1ZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2Vz
S2V5OjpLZXlMb3dlciMjS2V5KCksIHZhbHVlKTsgXAotICAgIH0gXAotICAgIFwKLSAgICB2b2lk
IFdlYlByZWZlcmVuY2VzOjpkZWxldGUjI0tleVVwcGVyKCkgXAotICAgIHsgXAotICAgICAgICBk
ZWxldGVLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OktleUxvd2VyIyNLZXkoKSk7IFwKLSAgICB9IFwK
LSAgICBcCi0gICAgVHlwZSBXZWJQcmVmZXJlbmNlczo6S2V5TG93ZXIoKSBjb25zdCBcCi0gICAg
eyBcCi0gICAgICAgIHJldHVybiBtX3N0b3JlLmdldCMjVHlwZU5hbWUjI1ZhbHVlRm9yS2V5KFdl
YlByZWZlcmVuY2VzS2V5OjpLZXlMb3dlciMjS2V5KCkpOyBcCi0gICAgfSBcCi0KLUZPUl9FQUNI
X1dFQktJVF9QUkVGRVJFTkNFKERFRklORV9QUkVGRVJFTkNFX0dFVFRFUl9BTkRfU0VUVEVSUykK
LUZPUl9FQUNIX1dFQktJVF9ERUJVR19QUkVGRVJFTkNFKERFRklORV9QUkVGRVJFTkNFX0dFVFRF
Ul9BTkRfU0VUVEVSUykKLQotI3VuZGVmIERFRklORV9QUkVGRVJFTkNFX0dFVFRFUl9BTkRfU0VU
VEVSUwotCi0KIHZvaWQgV2ViUHJlZmVyZW5jZXM6OnJlZ2lzdGVyRGVmYXVsdEJvb2xWYWx1ZUZv
cktleShjb25zdCBTdHJpbmcmIGtleSwgYm9vbCB2YWx1ZSkKIHsKICAgICBtX3N0b3JlLnNldE92
ZXJyaWRlRGVmYXVsdHNCb29sVmFsdWVGb3JLZXkoa2V5LCB2YWx1ZSk7CkluZGV4OiBTb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQcmVmZXJlbmNlcy5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlByZWZlcmVuY2VzLmgJKHJldmlzaW9uIDI2ODMyNSkKKysrIFNv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByZWZlcmVuY2VzLmgJKHdvcmtpbmcgY29weSkKQEAg
LTU5LDYgKzU5LDcgQEAgcHVibGljOgogCiAgICAgY29uc3QgV2ViUHJlZmVyZW5jZXNTdG9yZSYg
c3RvcmUoKSBjb25zdCB7IHJldHVybiBtX3N0b3JlOyB9CiAKKyAgICAvLyBJbXBsZW1lbnRlZCBp
biBnZW5lcmF0ZWQgZmlsZSBXZWJQcmVmZXJlbmNlc0dldHRlclNldHRlcnMuY3BwLgogICAgIEZP
Ul9FQUNIX1dFQktJVF9QUkVGRVJFTkNFKERFQ0xBUkVfUFJFRkVSRU5DRV9HRVRURVJfQU5EX1NF
VFRFUlMpCiAgICAgRk9SX0VBQ0hfV0VCS0lUX0RFQlVHX1BSRUZFUkVOQ0UoREVDTEFSRV9QUkVG
RVJFTkNFX0dFVFRFUl9BTkRfU0VUVEVSUykKICAgICBGT1JfRUFDSF9XRUJLSVRfSU5URVJOQUxf
REVCVUdfRkVBVFVSRV9QUkVGRVJFTkNFKERFQ0xBUkVfUFJFRkVSRU5DRV9HRVRURVJfQU5EX1NF
VFRFUlMpCkBAIC03Nyw2ICs3OCwxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCByZXNldEFsbEludGVy
bmFsRGVidWdGZWF0dXJlcygpOwogCiAgICAgLy8gRXhwb3NlZCBmb3IgV2ViS2l0VGVzdFJ1bm5l
ciB1c2Ugb25seS4KKyAgICB2b2lkIHNldEJvb2xWYWx1ZUZvcktleShjb25zdCBTdHJpbmcmLCBi
b29sIHZhbHVlKTsKKyAgICB2b2lkIHNldERvdWJsZVZhbHVlRm9yS2V5KGNvbnN0IFN0cmluZyYs
IGRvdWJsZSB2YWx1ZSk7CisgICAgdm9pZCBzZXRVSW50MzJWYWx1ZUZvcktleShjb25zdCBTdHJp
bmcmLCB1aW50MzJfdCB2YWx1ZSk7CisgICAgdm9pZCBzZXRTdHJpbmdWYWx1ZUZvcktleShjb25z
dCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmIHZhbHVlKTsKICAgICB2b2lkIGZvcmNlVXBkYXRlKCkg
eyB1cGRhdGUoKTsgfQogCiBwcml2YXRlOgpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0MvV0tQcmVmZXJlbmNlcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHAJKHJldmlzaW9uIDI2ODMyNSkKKysrIFNvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC03OCw2ICs3OCwyNiBAQCB2b2lkIFdLUHJlZmVyZW5jZXNTZXRJbnRlcm5hbERlYnVnRmVh
dHVyCiAgICAgdG9JbXBsKHByZWZlcmVuY2VzUmVmKS0+c2V0SW50ZXJuYWxEZWJ1Z0ZlYXR1cmVF
bmFibGVkRm9yS2V5KHRvV1RGU3RyaW5nKGludGVybmFsRGVidWdGZWF0dXJlS2V5KSwgdmFsdWUp
OwogfQogCit2b2lkIFdLUHJlZmVyZW5jZXNTZXRCb29sVmFsdWVGb3JLZXkoV0tQcmVmZXJlbmNl
c1JlZiBwcmVmZXJlbmNlc1JlZiwgYm9vbCB2YWx1ZSwgV0tTdHJpbmdSZWYga2V5KQoreworICAg
IHRvSW1wbChwcmVmZXJlbmNlc1JlZiktPnNldEJvb2xWYWx1ZUZvcktleSh0b1dURlN0cmluZyhr
ZXkpLCB2YWx1ZSk7Cit9CisKK3ZvaWQgV0tQcmVmZXJlbmNlc1NldERvdWJsZVZhbHVlRm9yS2V5
KFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYsIGRvdWJsZSB2YWx1ZSwgV0tTdHJpbmdS
ZWYga2V5KQoreworICAgIHRvSW1wbChwcmVmZXJlbmNlc1JlZiktPnNldEJvb2xWYWx1ZUZvcktl
eSh0b1dURlN0cmluZyhrZXkpLCB2YWx1ZSk7Cit9CisKK3ZvaWQgV0tQcmVmZXJlbmNlc1NldFVJ
bnQzMlZhbHVlRm9yS2V5KFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYsIHVpbnQzMl90
IHZhbHVlLCBXS1N0cmluZ1JlZiBrZXkpCit7CisgICAgdG9JbXBsKHByZWZlcmVuY2VzUmVmKS0+
c2V0VUludDMyVmFsdWVGb3JLZXkodG9XVEZTdHJpbmcoa2V5KSwgdmFsdWUpOworfQorCit2b2lk
IFdLUHJlZmVyZW5jZXNTZXRTdHJpbmdWYWx1ZUZvcktleShXS1ByZWZlcmVuY2VzUmVmIHByZWZl
cmVuY2VzUmVmLCBXS1N0cmluZ1JlZiB2YWx1ZSwgV0tTdHJpbmdSZWYga2V5KQoreworICAgIHRv
SW1wbChwcmVmZXJlbmNlc1JlZiktPnNldFN0cmluZ1ZhbHVlRm9yS2V5KHRvV1RGU3RyaW5nKGtl
eSksIHRvV1RGU3RyaW5nKHZhbHVlKSk7Cit9CisKIHZvaWQgV0tQcmVmZXJlbmNlc1Jlc2V0VGVz
dFJ1bm5lck92ZXJyaWRlcyhXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmKQogewogICAg
IC8vIEN1cnJlbnRseSB3ZSByZXNldCB0aGUgb3ZlcnJpZGVzIG9uIHRoZSB3ZWIgcHJvY2VzcyB3
aGVuIHByZWZlcmVuY2VzRGlkQ2hhbmdlKCkgaXMgY2FsbGVkLiBTaW5jZSBXVFIgcHJlZmVyZW5j
ZXMKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXNSZWZQ
cml2YXRlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQ
cmVmZXJlbmNlc1JlZlByaXZhdGUuaAkocmV2aXNpb24gMjY4MzI1KQorKysgU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlc1JlZlByaXZhdGUuaAkod29ya2luZyBjb3B5
KQpAQCAtNTUsNiArNTUsMTMgQEAgV0tfRVhQT1JUIHZvaWQgV0tQcmVmZXJlbmNlc1NldEV4cGVy
aW1lbgogV0tfRVhQT1JUIHZvaWQgV0tQcmVmZXJlbmNlc1Jlc2V0QWxsSW50ZXJuYWxEZWJ1Z0Zl
YXR1cmVzKFdLUHJlZmVyZW5jZXNSZWYpOwogV0tfRVhQT1JUIHZvaWQgV0tQcmVmZXJlbmNlc1Nl
dEludGVybmFsRGVidWdGZWF0dXJlRm9yS2V5KFdLUHJlZmVyZW5jZXNSZWYsIGJvb2wsIFdLU3Ry
aW5nUmVmKTsKIAorLy8gVGhlIGZvbGxvd2luZyBnZW5lcmljIHNldHRlciBmdW5jdGlvbnMgYXJl
IG9ubHkgaW50ZW5kZWQgZm9yIHVzZSBieSB0ZXN0aW5nIGluZnJhc3RydWN0dXJlLgorV0tfRVhQ
T1JUIHZvaWQgV0tQcmVmZXJlbmNlc1NldEJvb2xWYWx1ZUZvcktleShXS1ByZWZlcmVuY2VzUmVm
IHByZWZlcmVuY2VzUmVmLCBib29sIHZhbHVlLCBXS1N0cmluZ1JlZiBrZXkpOworV0tfRVhQT1JU
IHZvaWQgV0tQcmVmZXJlbmNlc1NldERvdWJsZVZhbHVlRm9yS2V5KFdLUHJlZmVyZW5jZXNSZWYg
cHJlZmVyZW5jZXNSZWYsIGRvdWJsZSB2YWx1ZSwgV0tTdHJpbmdSZWYga2V5KTsKK1dLX0VYUE9S
VCB2b2lkIFdLUHJlZmVyZW5jZXNTZXRVSW50MzJWYWx1ZUZvcktleShXS1ByZWZlcmVuY2VzUmVm
IHByZWZlcmVuY2VzUmVmLCB1aW50MzJfdCB2YWx1ZSwgV0tTdHJpbmdSZWYga2V5KTsKK1dLX0VY
UE9SVCB2b2lkIFdLUHJlZmVyZW5jZXNTZXRTdHJpbmdWYWx1ZUZvcktleShXS1ByZWZlcmVuY2Vz
UmVmIHByZWZlcmVuY2VzUmVmLCBXS1N0cmluZ1JlZiB2YWx1ZSwgV0tTdHJpbmdSZWYga2V5KTsK
KworLy8gRm9yIFRlc3QgUnVubmVyIFVzZSBvbmx5LgogV0tfRVhQT1JUIHZvaWQgV0tQcmVmZXJl
bmNlc1Jlc2V0VGVzdFJ1bm5lck92ZXJyaWRlcyhXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2Vz
UmVmKTsKIAogLy8gRGVmYXVsdHMgdG8gZmFsc2UuCkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYktp
dC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQv
V2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDI2ODMyNSkKKysrIFNv
dXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29w
eSkKQEAgLTEzMTIsNiArMTMxMiw3IEBACiAJCTdDRTREMjI4MUE0OTE2QzIwMEM3RjE1MiAvKiBX
ZWJQcm9jZXNzUG9vbE1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA3Q0U0RDIyNjFBNDkxNkMyMDBDN0YxNTIgLyogV2ViUHJvY2Vzc1Bvb2xN
ZXNzYWdlcy5oICovOyB9OwogCQk3Q0U5Q0UxMDFGQTA3NjdBMDAwMTc3REUgLyogV2ViUGFnZVVw
ZGF0ZVByZWZlcmVuY2VzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDdDRTlDRTBGMUZBMDc2NEQwMDAxNzdERSAvKiBXZWJQYWdlVXBkYXRlUHJlZmVy
ZW5jZXMuY3BwICovOyB9OwogCQk3Q0VCMDBERDFGQTY5QUJFMDA2NTQ3M0IgLyogV2ViUHJlZmVy
ZW5jZXNFeHBlcmltZW50YWxGZWF0dXJlcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA3Q0VCMDBEQzFGQTY5QTg5MDA2NTQ3M0IgLyogV2ViUHJlZmVy
ZW5jZXNFeHBlcmltZW50YWxGZWF0dXJlcy5jcHAgKi87IH07CisJCTdDRjE5MDcxMjUzMzhGMzgw
MEFCRTE4MyAvKiBXZWJQcmVmZXJlbmNlc0dldHRlclNldHRlcnMuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0NGMTkwNzAyNTMzOEVGRjAwQUJFMTgz
IC8qIFdlYlByZWZlcmVuY2VzR2V0dGVyU2V0dGVycy5jcHAgKi87IH07CiAJCTdDRjQ3RkY3MTcy
NzVCNzEwMDhBQ0I5MSAvKiBXS0J1bmRsZVBhZ2VCYW5uZXIuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDRjQ3RkY1MTcyNzVCNzEwMDhBQ0I5MSAvKiBX
S0J1bmRsZVBhZ2VCYW5uZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQk3Q0Y0N0ZGQjE3Mjc1QzU3MDA4QUNCOTEgLyogUGFnZUJhbm5lci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0NGNDdGRjkxNzI3
NUM1NzAwOEFDQjkxIC8qIFBhZ2VCYW5uZXIuaCAqLzsgfTsKIAkJN0NGNDdGRkYxNzI3NkFFMzAw
OEFDQjkxIC8qIFdLQnVuZGxlUGFnZUJhbm5lck1hYy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0NGNDdGRkQxNzI3NkFFMzAwOEFDQjkxIC8qIFdLQnVu
ZGxlUGFnZUJhbm5lck1hYy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CkBAIC00MzMyLDYgKzQzMzMsNyBAQAogCQk3Q0U5Q0UwRjFGQTA3NjREMDAwMTc3
REUgLyogV2ViUGFnZVVwZGF0ZVByZWZlcmVuY2VzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFdl
YlBhZ2VVcGRhdGVQcmVmZXJlbmNlcy5jcHA7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQy
L1dlYlBhZ2VVcGRhdGVQcmVmZXJlbmNlcy5jcHA7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNU
U19ESVI7IH07CiAJCTdDRUIwMERDMUZBNjlBODkwMDY1NDczQiAvKiBXZWJQcmVmZXJlbmNlc0V4
cGVyaW1lbnRhbEZlYXR1cmVzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFdlYlByZWZlcmVuY2Vz
RXhwZXJpbWVudGFsRmVhdHVyZXMuY3BwOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9X
ZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbEZlYXR1cmVzLmNwcDsgc291cmNlVHJlZSA9IEJVSUxU
X1BST0RVQ1RTX0RJUjsgfTsKIAkJN0NFRkE5NjAxQUMwOTk5MzAwQjkxMEZEIC8qIEFQSUNvbnRl
bnRSdWxlTGlzdFN0b3JlQ29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IHBhdGggPSBBUElDb250ZW50UnVsZUxpc3RTdG9yZUNvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk3Q0YxOTA3MDI1MzM4RUZGMDBBQkUxODMgLyogV2ViUHJlZmVyZW5jZXNH
ZXR0ZXJTZXR0ZXJzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFdlYlByZWZlcmVuY2VzR2V0dGVy
U2V0dGVycy5jcHA7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYlByZWZlcmVuY2Vz
R2V0dGVyU2V0dGVycy5jcHA7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJ
CTdDRjQ3RkY0MTcyNzVCNzEwMDhBQ0I5MSAvKiBXS0J1bmRsZVBhZ2VCYW5uZXIuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV0tCdW5kbGVQYWdlQmFubmVyLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0NGNDdGRjUxNzI3NUI3MTAwOEFDQjkxIC8q
IFdLQnVuZGxlUGFnZUJhbm5lci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBX
S0J1bmRsZVBhZ2VCYW5uZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0NGNDdG
RjkxNzI3NUM1NzAwOEFDQjkxIC8qIFBhZ2VCYW5uZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gUGFnZUJhbm5lci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
MTAyNTksNiArMTAyNjEsNyBAQAogCQkJCTFBQjFGNzk1MUQxQjM2MTMwMDdDOUJEMSAvKiBXZWJQ
YXltZW50Q29vcmRpbmF0b3JQcm94eU1lc3NhZ2VzLmggKi8sCiAJCQkJN0NERTczQTMxRjlEQUI2
NTAwMzkwMzEyIC8qIFdlYlByZWZlcmVuY2VzRGVmaW5pdGlvbnMuaCAqLywKIAkJCQk3Q0VCMDBE
QzFGQTY5QTg5MDA2NTQ3M0IgLyogV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWxGZWF0dXJlcy5j
cHAgKi8sCisJCQkJN0NGMTkwNzAyNTMzOEVGRjAwQUJFMTgzIC8qIFdlYlByZWZlcmVuY2VzR2V0
dGVyU2V0dGVycy5jcHAgKi8sCiAJCQkJMzFCMzYyOTgyMTQxRjZFMDAwN0JGQTUzIC8qIFdlYlBy
ZWZlcmVuY2VzSW50ZXJuYWxEZWJ1Z0ZlYXR1cmVzLmNwcCAqLywKIAkJCQk3Q0IxMDBFRTFGQTJE
NzRBMDAxNzI5RUUgLyogV2ViUHJlZmVyZW5jZXNLZXlzLmNwcCAqLywKIAkJCQk3Q0IxMDBFRjFG
QTJENzRCMDAxNzI5RUUgLyogV2ViUHJlZmVyZW5jZXNLZXlzLmggKi8sCkBAIC0xMzE2MSw2ICsx
MzE2NCw3IEBACiAJCQkJMkQ5MkE3OEQyMTJCNkFCMTAwRjQ5M0ZEIC8qIFdlYlBsYXRmb3JtVG91
Y2hQb2ludC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyRDkxMzQ0RTIxMkNGOUYwMDAxMjhBRkQg
LyogV2ViUGx1Z2luSW5mb1Byb3ZpZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdDRUIwMERE
MUZBNjlBQkUwMDY1NDczQiAvKiBXZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbEZlYXR1cmVzLmNw
cCBpbiBTb3VyY2VzICovLAorCQkJCTdDRjE5MDcxMjUzMzhGMzgwMEFCRTE4MyAvKiBXZWJQcmVm
ZXJlbmNlc0dldHRlclNldHRlcnMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzFCMzYyOTkyMTQx
RjZFODAwN0JGQTUzIC8qIFdlYlByZWZlcmVuY2VzSW50ZXJuYWxEZWJ1Z0ZlYXR1cmVzLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTdDQjEwMEYxMUZBMzg1OEEwMDE3MjlFRSAvKiBXZWJQcmVmZXJl
bmNlc0tleXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NCMTAwRjQxRkEzODU5MjAwMTcyOUVF
IC8qIFdlYlByZWZlcmVuY2VzU3RvcmVEZWZhdWx0c01hcC5jcHAgaW4gU291cmNlcyAqLywKSW5k
ZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJldmlz
aW9uIDI2ODMyNSkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsx
LDkyIEBACisyMDIwLTEwLTExICBTYW0gV2VpbmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KKworICAg
ICAgICBbUHJlZmVyZW5jZXNdIEludHJvZHVjZSBzdHJpbmcgYmFzZWQgU1BJIGZvciBXS1ByZWZl
cmVuY2VzIHRvIGFsbG93IHRlc3RzIHRvIGNoYW5nZSBpbnRlcm5hbCBiZWhhdmlvciB3aXRob3V0
IGFsd2F5cyBhZGRpbmcgYWRkaXRpb25hbCBTUEkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzU4MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFtXSVBdCisKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVy
L1Rlc3RDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OmluaXRp
YWxpemUpOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6Y3JlYXRlV2ViVmlld1dpdGhP
cHRpb25zKToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OnJlc2V0UHJlZmVyZW5jZXNU
b0NvbnNpc3RlbnRWYWx1ZXMpOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6cmVzZXRT
dGF0ZVRvQ29uc2lzdGVudFZhbHVlcyk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpw
bGF0Zm9ybVJlc2V0U3RhdGVUb0NvbnNpc3RlbnRWYWx1ZXMpOiBEZWxldGVkLgorICAgICAgICAq
IFdlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBXZWJLaXRUZXN0
UnVubmVyL1Rlc3RPcHRpb25zLmNwcDoKKyAgICAgICAgKFdUUjo6Ym9vbERlZmF1bHRzTWFwKToK
KyAgICAgICAgKFdUUjo6ZG91YmxlRGVmYXVsdHNNYXApOgorICAgICAgICAoV1RSOjpzdHJpbmdE
ZWZhdWx0c01hcCk6CisgICAgICAgIChXVFI6OnN0cmluZ1ZlY3RvckRlZmF1bHRzTWFwKToKKyAg
ICAgICAgKFdUUjo6a2V5VHlwZU1hcCk6CisgICAgICAgIChXVFI6OlRlc3RPcHRpb25zOjpib29s
V0tQcmVmZXJlbmNlcyBjb25zdCk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0T3B0
aW9ucy5oOgorICAgICAgICAoV1RSOjpUZXN0T3B0aW9uczo6YWxsb3dzTGlua1ByZXZpZXcgY29u
c3QpOgorICAgICAgICAoV1RSOjpUZXN0T3B0aW9uczo6ZHVtcEpTQ29uc29sZUxvZ0luU3RkRXJy
IGNvbnN0KToKKyAgICAgICAgKFdUUjo6VGVzdE9wdGlvbnM6OmVuYWJsZUF0dGFjaG1lbnRFbGVt
ZW50IGNvbnN0KToKKyAgICAgICAgKFdUUjo6VGVzdE9wdGlvbnM6OmVuYWJsZUluQXBwQnJvd3Nl
clByaXZhY3kgY29uc3QpOgorICAgICAgICAoV1RSOjpUZXN0T3B0aW9uczo6aWdub3JlU3luY2hy
b25vdXNNZXNzYWdpbmdUaW1lb3V0cyBjb25zdCk6CisgICAgICAgIChXVFI6OlRlc3RPcHRpb25z
OjppZ25vcmVzVmlld3BvcnRTY2FsZUxpbWl0cyBjb25zdCk6CisgICAgICAgIChXVFI6OlRlc3RP
cHRpb25zOjppc0FwcEJvdW5kV2ViVmlldyBjb25zdCk6CisgICAgICAgIChXVFI6OlRlc3RPcHRp
b25zOjpwdW5jaE91dFdoaXRlQmFja2dyb3VuZHNJbkRhcmtNb2RlIGNvbnN0KToKKyAgICAgICAg
KFdUUjo6VGVzdE9wdGlvbnM6OnJ1blNpbmdseSBjb25zdCk6CisgICAgICAgIChXVFI6OlRlc3RP
cHRpb25zOjpzaG91bGRIYW5kbGVSdW5PcGVuUGFuZWwgY29uc3QpOgorICAgICAgICAoV1RSOjpU
ZXN0T3B0aW9uczo6c2hvdWxkUHJlc2VudFBvcG92ZXJzIGNvbnN0KToKKyAgICAgICAgKFdUUjo6
VGVzdE9wdGlvbnM6OnNob3VsZFNob3dTcGVsbENoZWNraW5nRG90cyBjb25zdCk6CisgICAgICAg
IChXVFI6OlRlc3RPcHRpb25zOjpzaG91bGRTaG93VG91Y2hlcyBjb25zdCk6CisgICAgICAgIChX
VFI6OlRlc3RPcHRpb25zOjpzaG91bGRTaG93V2ViVmlldyBjb25zdCk6CisgICAgICAgIChXVFI6
OlRlc3RPcHRpb25zOjp1c2VDaGFyYWN0ZXJTZWxlY3Rpb25HcmFudWxhcml0eSBjb25zdCk6Cisg
ICAgICAgIChXVFI6OlRlc3RPcHRpb25zOjp1c2VEYXRhRGV0ZWN0aW9uIGNvbnN0KToKKyAgICAg
ICAgKFdUUjo6VGVzdE9wdGlvbnM6OnVzZUVwaGVtZXJhbFNlc3Npb24gY29uc3QpOgorICAgICAg
ICAoV1RSOjpUZXN0T3B0aW9uczo6dXNlRmxleGlibGVWaWV3cG9ydCBjb25zdCk6CisgICAgICAg
IChXVFI6OlRlc3RPcHRpb25zOjp1c2VSZW1vdGVMYXllclRyZWUgY29uc3QpOgorICAgICAgICAo
V1RSOjpUZXN0T3B0aW9uczo6dXNlVGhyZWFkZWRTY3JvbGxpbmcgY29uc3QpOgorICAgICAgICAo
V1RSOjpUZXN0T3B0aW9uczo6ZGV2aWNlU2NhbGVGYWN0b3IgY29uc3QpOgorICAgICAgICAoV1RS
OjpUZXN0T3B0aW9uczo6dmlld1dpZHRoIGNvbnN0KToKKyAgICAgICAgKFdUUjo6VGVzdE9wdGlv
bnM6OmFkZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVzIGNvbnN0KToKKyAgICAgICAgKFdUUjo6
VGVzdE9wdGlvbnM6OmFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllciBjb25zdCk6CisgICAgICAg
IChXVFI6OlRlc3RPcHRpb25zOjpjb250ZW50TW9kZSBjb25zdCk6CisgICAgICAgIChXVFI6OlRl
c3RPcHRpb25zOjpqc2NPcHRpb25zIGNvbnN0KToKKyAgICAgICAgKFdUUjo6VGVzdE9wdGlvbnM6
OnN0YW5kYWxvbmVXZWJBcHBsaWNhdGlvblVSTCBjb25zdCk6CisgICAgICAgIChXVFI6OlRlc3RP
cHRpb25zOjp1c2VBY2NlbGVyYXRlZERyYXdpbmcgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAo
V1RSOjpUZXN0T3B0aW9uczo6dXNlTW9ja1Njcm9sbGJhcnMgY29uc3QpOiBEZWxldGVkLgorICAg
ICAgICAoV1RSOjpUZXN0T3B0aW9uczo6bmVlZHNTaXRlU3BlY2lmaWNRdWlya3MgY29uc3QpOiBE
ZWxldGVkLgorICAgICAgICAoV1RSOjpUZXN0T3B0aW9uczo6ZW5hYmxlSW50ZXJzZWN0aW9uT2Jz
ZXJ2ZXIgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV1RSOjpUZXN0T3B0aW9uczo6ZW5hYmxl
TWVudUl0ZW1FbGVtZW50IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdUUjo6VGVzdE9wdGlv
bnM6OmVuYWJsZUtleWdlbkVsZW1lbnQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV1RSOjpU
ZXN0T3B0aW9uczo6ZW5hYmxlTW9kZXJuTWVkaWFDb250cm9scyBjb25zdCk6IERlbGV0ZWQuCisg
ICAgICAgIChXVFI6OlRlc3RPcHRpb25zOjplbmFibGVQb2ludGVyTG9jayBjb25zdCk6IERlbGV0
ZWQuCisgICAgICAgIChXVFI6OlRlc3RPcHRpb25zOjplbmFibGVXZWJBdXRoZW50aWNhdGlvbiBj
b25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXVFI6OlRlc3RPcHRpb25zOjplbmFibGVXZWJBdXRo
ZW50aWNhdGlvbkxvY2FsQXV0aGVudGljYXRvciBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChX
VFI6OlRlc3RPcHRpb25zOjplbmFibGVJbnNwZWN0b3JBZGRpdGlvbnMgY29uc3QpOiBEZWxldGVk
LgorICAgICAgICAoV1RSOjpUZXN0T3B0aW9uczo6YWxsb3dDcm9zc09yaWdpblN1YnJlc291cmNl
c1RvQXNrRm9yQ3JlZGVudGlhbHMgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV1RSOjpUZXN0
T3B0aW9uczo6ZG9tUGFzdGVBbGxvd2VkIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdUUjo6
VGVzdE9wdGlvbnM6OmVuYWJsZUNvbG9yRmlsdGVyIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAg
KFdUUjo6VGVzdE9wdGlvbnM6OmNoZWNrRm9yV29ybGRMZWFrcyBjb25zdCk6IERlbGV0ZWQuCisg
ICAgICAgIChXVFI6OlRlc3RPcHRpb25zOjpzaG91bGRJZ25vcmVNZXRhVmlld3BvcnQgY29uc3Qp
OiBEZWxldGVkLgorICAgICAgICAoV1RSOjpUZXN0T3B0aW9uczo6ZW5hYmxlU2VydmljZUNvbnRy
b2xzIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdUUjo6VGVzdE9wdGlvbnM6OmVuYWJsZUFw
cE5hcCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXVFI6OlRlc3RPcHRpb25zOjplbmFibGVC
YWNrRm9yd2FyZENhY2hlIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdUUjo6VGVzdE9wdGlv
bnM6OmVuYWJsZUNhcHR1cmVWaWRlb0luVUlQcm9jZXNzIGNvbnN0KTogRGVsZXRlZC4KKyAgICAg
ICAgKFdUUjo6VGVzdE9wdGlvbnM6OmVuYWJsZUNhcHR1cmVWaWRlb0luR1BVUHJvY2VzcyBjb25z
dCk6IERlbGV0ZWQuCisgICAgICAgIChXVFI6OlRlc3RPcHRpb25zOjplbmFibGVDYXB0dXJlQXVk
aW9JblVJUHJvY2VzcyBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXVFI6OlRlc3RPcHRpb25z
OjplbmFibGVDYXB0dXJlQXVkaW9JbkdQVVByb2Nlc3MgY29uc3QpOiBEZWxldGVkLgorICAgICAg
ICAoV1RSOjpUZXN0T3B0aW9uczo6YWxsb3dUb3BOYXZpZ2F0aW9uVG9EYXRhVVJMcyBjb25zdCk6
IERlbGV0ZWQuCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0Q29udHJvbGxl
ckNvY29hLm1tOgorICAgICAgICAoV1RSOjppbml0aWFsaXplV2ViVmlld0NvbmZpZ3VyYXRpb24p
OgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1DcmVhdGVXZWJWaWV3KToK
KyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OmNvY29hUmVzZXRTdGF0ZVRvQ29uc2lzdGVu
dFZhbHVlcyk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9ndGsvVGVzdENvbnRyb2xsZXJH
dGsuY3BwOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1SZXNldFN0YXRl
VG9Db25zaXN0ZW50VmFsdWVzKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL2lvcy9UZXN0
Q29udHJvbGxlcklPUy5tbToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OnBsYXRmb3Jt
UmVzZXRQcmVmZXJlbmNlc1RvQ29uc2lzdGVudFZhbHVlcyk6CisgICAgICAgIChXVFI6OlRlc3RD
b250cm9sbGVyOjpwbGF0Zm9ybUNvbmZpZ3VyZVZpZXdGb3JUZXN0KToKKyAgICAgICAgKiBXZWJL
aXRUZXN0UnVubmVyL3dpbi9UZXN0Q29udHJvbGxlcldpbi5jcHA6CisgICAgICAgIChXVFI6OlRl
c3RDb250cm9sbGVyOjpwbGF0Zm9ybVJlc2V0U3RhdGVUb0NvbnNpc3RlbnRWYWx1ZXMpOgorICAg
ICAgICAqIFdlYktpdFRlc3RSdW5uZXIvd3BlL1Rlc3RDb250cm9sbGVyV1BFLmNwcDoKKyAgICAg
ICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtUmVzZXRTdGF0ZVRvQ29uc2lzdGVudFZh
bHVlcyk6CisKIDIwMjAtMTAtMTAgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgogCiAg
ICAgICAgIFJFR1JFU1NJT04gKHIyNjc3NjEpOiBlZGl0aW5nL21hYy9zcGVsbGluZy9hdXRvY29y
cmVjdGlvbi1jb250cmFjdGlvbi5odG1sIGlzIGEgY29uc3RhbnQgdGltZW91dCBvbiBtYWNPUyB3
azIgRGVidWcKSW5kZXg6IFRvb2xzL0R1bXBSZW5kZXJUcmVlL0R1bXBSZW5kZXJUcmVlQ29tbW9u
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBUb29scy9EdW1wUmVuZGVyVHJlZS9EdW1wUmVuZGVyVHJlZUNv
bW1vbi5jcHAJKHJldmlzaW9uIDI2ODMyNSkKKysrIFRvb2xzL0R1bXBSZW5kZXJUcmVlL0R1bXBS
ZW5kZXJUcmVlQ29tbW9uLmNwcAkobm9uZXhpc3RlbnQpCkBAIC0xLDExNCArMCwwIEBACi0vKgot
ICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KLSAq
Ci0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBB
UyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
Ci0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZp
Zy5oIgotI2luY2x1ZGUgIkR1bXBSZW5kZXJUcmVlLmgiCi0KLSNpbmNsdWRlIDxhbGdvcml0aG0+
Ci0jaW5jbHVkZSA8Y3R5cGUuaD4KLSNpbmNsdWRlIDxzdGRpby5oPgotI2luY2x1ZGUgPHN0ZGxp
Yi5oPgotI2luY2x1ZGUgPHN0cmluZz4KLQotY2xhc3MgQ29tbWFuZFRva2VuaXplciB7Ci1wdWJs
aWM6Ci0gICAgZXhwbGljaXQgQ29tbWFuZFRva2VuaXplcihjb25zdCBzdGQ6OnN0cmluZyYgaW5w
dXQpCi0gICAgICAgIDogbV9pbnB1dChpbnB1dCkKLSAgICAgICAgLCBtX3Bvc05leHRTZXBhcmF0
b3IoMCkKLSAgICB7Ci0gICAgICAgIHB1bXAoKTsKLSAgICB9Ci0KLSAgICBib29sIGhhc05leHQo
KSBjb25zdDsKLSAgICBzdGQ6OnN0cmluZyBuZXh0KCk7Ci0KLXByaXZhdGU6Ci0gICAgdm9pZCBw
dW1wKCk7Ci0gICAgc3RhdGljIGNvbnN0IGNoYXIga1NlcGFyYXRvciA9ICdcJyc7Ci0gICAgY29u
c3Qgc3RkOjpzdHJpbmcmIG1faW5wdXQ7Ci0gICAgc3RkOjpzdHJpbmcgbV9uZXh0OwotICAgIHNp
emVfdCBtX3Bvc05leHRTZXBhcmF0b3I7Ci19OwotCi12b2lkIENvbW1hbmRUb2tlbml6ZXI6OnB1
bXAoKQotewotICAgIGlmIChtX3Bvc05leHRTZXBhcmF0b3IgPT0gc3RkOjpzdHJpbmc6Om5wb3Mg
fHwgbV9wb3NOZXh0U2VwYXJhdG9yID09IG1faW5wdXQuc2l6ZSgpKSB7Ci0gICAgICAgIG1fbmV4
dCA9IHN0ZDo6c3RyaW5nKCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0gICAgc2l6ZV90IHN0
YXJ0ID0gbV9wb3NOZXh0U2VwYXJhdG9yID8gbV9wb3NOZXh0U2VwYXJhdG9yICsgMSA6IDA7Ci0g
ICAgbV9wb3NOZXh0U2VwYXJhdG9yID0gbV9pbnB1dC5maW5kKGtTZXBhcmF0b3IsIHN0YXJ0KTsK
LSAgICBzaXplX3Qgc2l6ZSA9IG1fcG9zTmV4dFNlcGFyYXRvciA9PSBzdGQ6OnN0cmluZzo6bnBv
cyA/IHN0ZDo6c3RyaW5nOjpucG9zIDogbV9wb3NOZXh0U2VwYXJhdG9yIC0gc3RhcnQ7Ci0gICAg
bV9uZXh0ID0gc3RkOjpzdHJpbmcobV9pbnB1dCwgc3RhcnQsIHNpemUpOwotfQotCi1zdGQ6OnN0
cmluZyBDb21tYW5kVG9rZW5pemVyOjpuZXh0KCkKLXsKLSAgICBBU1NFUlQoaGFzTmV4dCgpKTsK
LQotICAgIHN0ZDo6c3RyaW5nIG9sZE5leHQgPSBtX25leHQ7Ci0gICAgcHVtcCgpOwotICAgIHJl
dHVybiBvbGROZXh0OwotfQotCi1ib29sIENvbW1hbmRUb2tlbml6ZXI6Omhhc05leHQoKSBjb25z
dAotewotICAgIHJldHVybiAhbV9uZXh0LmVtcHR5KCk7Ci19Ci0KLU5PX1JFVFVSTiBzdGF0aWMg
dm9pZCBkaWUoY29uc3Qgc3RkOjpzdHJpbmcmIGlucHV0TGluZSkKLXsKLSAgICBmcHJpbnRmKHN0
ZGVyciwgIlVuZXhwZWN0ZWQgaW5wdXQgbGluZTogJXNcbiIsIGlucHV0TGluZS5jX3N0cigpKTsK
LSAgICBleGl0KDEpOwotfQotCi1UZXN0Q29tbWFuZCBwYXJzZUlucHV0TGluZShjb25zdCBzdGQ6
OnN0cmluZyYgaW5wdXRMaW5lKQotewotICAgIFRlc3RDb21tYW5kIHJlc3VsdDsKLSAgICBDb21t
YW5kVG9rZW5pemVyIHRva2VuaXplcihpbnB1dExpbmUpOwotICAgIGlmICghdG9rZW5pemVyLmhh
c05leHQoKSkKLSAgICAgICAgZGllKGlucHV0TGluZSk7Ci0KLSAgICBzdGQ6OnN0cmluZyBhcmcg
PSB0b2tlbml6ZXIubmV4dCgpOwotICAgIHJlc3VsdC5wYXRoT3JVUkwgPSBhcmc7Ci0gICAgd2hp
bGUgKHRva2VuaXplci5oYXNOZXh0KCkpIHsKLSAgICAgICAgYXJnID0gdG9rZW5pemVyLm5leHQo
KTsKLSAgICAgICAgaWYgKGFyZyA9PSAiLS10aW1lb3V0IikgewotICAgICAgICAgICAgc3RkOjpz
dHJpbmcgdGltZW91dFRva2VuID0gdG9rZW5pemVyLm5leHQoKTsKLSAgICAgICAgICAgIHJlc3Vs
dC50aW1lb3V0ID0gYXRvaSh0aW1lb3V0VG9rZW4uY19zdHIoKSk7Ci0gICAgICAgIH0gZWxzZSBp
ZiAoYXJnID09ICItcCIgfHwgYXJnID09ICItLXBpeGVsLXRlc3QiKSB7Ci0gICAgICAgICAgICBy
ZXN1bHQuc2hvdWxkRHVtcFBpeGVscyA9IHRydWU7Ci0gICAgICAgICAgICBpZiAodG9rZW5pemVy
Lmhhc05leHQoKSkKLSAgICAgICAgICAgICAgICByZXN1bHQuZXhwZWN0ZWRQaXhlbEhhc2ggPSB0
b2tlbml6ZXIubmV4dCgpOwotICAgICAgICB9IGVsc2UgaWYgKGFyZyA9PSAiLS1kdW1wLWpzY29u
c29sZWxvZy1pbi1zdGRlcnIiKQotICAgICAgICAgICAgcmVzdWx0LmR1bXBKU0NvbnNvbGVMb2dJ
blN0ZEVyciA9IHRydWU7Ci0gICAgICAgIGVsc2UgaWYgKGFyZyA9PSBzdGQ6OnN0cmluZygiLS1h
YnNvbHV0ZVBhdGgiKSkKLSAgICAgICAgICAgIHJlc3VsdC5hYnNvbHV0ZVBhdGggPSB0b2tlbml6
ZXIubmV4dCgpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBkaWUoaW5wdXRMaW5lKTsKLSAg
ICB9Ci0KLSAgICByZXR1cm4gcmVzdWx0OwotfQpJbmRleDogVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9UZXN0Q29udHJvbGxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9UZXN0Q29udHJvbGxlci5jcHAJKHJldmlzaW9uIDI2ODMyNSkKKysrIFRvb2xzL1dlYktpdFRl
c3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NjMsMTQgKzQ2
MywxNCBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjppbml0aWFsaXplKGludCBhcmdjCiAgICAgbV9n
Y0JldHdlZW5UZXN0cyA9IG9wdGlvbnMuZ2NCZXR3ZWVuVGVzdHM7CiAgICAgbV9zaG91bGREdW1w
UGl4ZWxzRm9yQWxsVGVzdHMgPSBvcHRpb25zLnNob3VsZER1bXBQaXhlbHNGb3JBbGxUZXN0czsK
ICAgICBtX2ZvcmNlQ29tcGxleFRleHQgPSBvcHRpb25zLmZvcmNlQ29tcGxleFRleHQ7Ci0gICAg
bV9zaG91bGRVc2VBY2NlbGVyYXRlZERyYXdpbmcgPSBvcHRpb25zLnNob3VsZFVzZUFjY2VsZXJh
dGVkRHJhd2luZzsKICAgICBtX3BhdGhzID0gb3B0aW9ucy5wYXRoczsKICAgICBtX2FsbG93ZWRI
b3N0cyA9IG9wdGlvbnMuYWxsb3dlZEhvc3RzOwogICAgIG1fY2hlY2tGb3JXb3JsZExlYWtzID0g
b3B0aW9ucy5jaGVja0ZvcldvcmxkTGVha3M7CiAgICAgbV9hbGxvd0FueUhUVFBTQ2VydGlmaWNh
dGVGb3JBbGxvd2VkSG9zdHMgPSBvcHRpb25zLmFsbG93QW55SFRUUFNDZXJ0aWZpY2F0ZUZvckFs
bG93ZWRIb3N0czsKLSAgICAKKwogICAgIG1fZ2xvYmFsRmVhdHVyZXMuaW50ZXJuYWxEZWJ1Z0Zl
YXR1cmVzID0gb3B0aW9ucy5pbnRlcm5hbEZlYXR1cmVzOwogICAgIG1fZ2xvYmFsRmVhdHVyZXMu
ZXhwZXJpbWVudGFsRmVhdHVyZXMgPSBvcHRpb25zLmV4cGVyaW1lbnRhbEZlYXR1cmVzOworICAg
IG1fZ2xvYmFsRmVhdHVyZXMuYm9vbEZlYXR1cmVzLmluc2VydCh7ICJ1c2VBY2NlbGVyYXRlZERy
YXdpbmciLCBvcHRpb25zLnNob3VsZFVzZUFjY2VsZXJhdGVkRHJhd2luZyB9KTsKICAgICBtX2ds
b2JhbEZlYXR1cmVzLmJvb2xGZWF0dXJlcy5pbnNlcnQoeyAidXNlUmVtb3RlTGF5ZXJUcmVlIiwg
b3B0aW9ucy5zaG91bGRVc2VSZW1vdGVMYXllclRyZWUgfSk7CiAgICAgbV9nbG9iYWxGZWF0dXJl
cy5ib29sRmVhdHVyZXMuaW5zZXJ0KHsgInNob3VsZFNob3dXZWJWaWV3Iiwgb3B0aW9ucy5zaG91
bGRTaG93V2ViVmlldyB9KTsKICAgICBtX2dsb2JhbEZlYXR1cmVzLmJvb2xGZWF0dXJlcy5pbnNl
cnQoeyAic2hvdWxkU2hvd1RvdWNoZXMiLCBvcHRpb25zLnNob3VsZFNob3dUb3VjaGVzIH0pOwpA
QCAtNjU0LDYgKzY1NCw4IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OmNyZWF0ZVdlYlZpZXdXaXRo
T3AKICAgICAvLyBGSVhNRTogTWlncmF0ZSB0aGVzZSBwcmVmZXJlbmNlcyB0byBXS0NvbnRleHRD
b25maWd1cmF0aW9uUmVmLgogICAgIHJlc2V0UHJlZmVyZW5jZXNUb0NvbnNpc3RlbnRWYWx1ZXMo
b3B0aW9ucyk7CiAKKyAgICBXS0hUVFBDb29raWVTdG9yZURlbGV0ZUFsbENvb2tpZXMoV0tXZWJz
aXRlRGF0YVN0b3JlR2V0SFRUUENvb2tpZVN0b3JlKHdlYnNpdGVEYXRhU3RvcmUoKSksIG51bGxw
dHIsIG51bGxwdHIpOworCiAgICAgcGxhdGZvcm1DcmVhdGVXZWJWaWV3KGNvbmZpZ3VyYXRpb24u
Z2V0KCksIG9wdGlvbnMpOwogICAgIFdLUGFnZVVJQ2xpZW50VjE0IHBhZ2VVSUNsaWVudCA9IHsK
ICAgICAgICAgeyAxNCwgbV9tYWluV2ViVmlldy5nZXQoKSB9LApAQCAtODQxLDM3ICs4NDMsMjMg
QEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6cmVzZXRQcmVmZXJlbmNlc1RvQwogICAgIFdLUHJlZmVy
ZW5jZXNSZXNldEFsbEludGVybmFsRGVidWdGZWF0dXJlcyhwcmVmZXJlbmNlcyk7CiAKICAgICAv
LyBTZXQgaW50ZXJuYWwgZmVhdHVyZXMgdGhhdCBoYXZlIGRpZmZlcmVudCBkZWZhdWx0IHZhbHVl
cyBmb3IgdGVzdGluZy4KLQogICAgIFdLUHJlZmVyZW5jZXNTZXRJbnRlcm5hbERlYnVnRmVhdHVy
ZUZvcktleShwcmVmZXJlbmNlcywgZmFsc2UsIHRvV0soIkFzeW5jT3ZlcmZsb3dTY3JvbGxpbmdF
bmFibGVkIikuZ2V0KCkpOwogICAgIFdLUHJlZmVyZW5jZXNTZXRJbnRlcm5hbERlYnVnRmVhdHVy
ZUZvcktleShwcmVmZXJlbmNlcywgZmFsc2UsIHRvV0soIkFzeW5jRnJhbWVTY3JvbGxpbmdFbmFi
bGVkIikuZ2V0KCkpOwotCi0jaWYgRU5BQkxFKElOUFVUX1RZUEVfREFURSkKICAgICBXS1ByZWZl
cmVuY2VzU2V0SW50ZXJuYWxEZWJ1Z0ZlYXR1cmVGb3JLZXkocHJlZmVyZW5jZXMsIHRydWUsIHRv
V0soIklucHV0VHlwZURhdGVFbmFibGVkIikuZ2V0KCkpOwotI2VuZGlmCi0jaWYgRU5BQkxFKElO
UFVUX1RZUEVfREFURVRJTUVMT0NBTCkKICAgICBXS1ByZWZlcmVuY2VzU2V0SW50ZXJuYWxEZWJ1
Z0ZlYXR1cmVGb3JLZXkocHJlZmVyZW5jZXMsIHRydWUsIHRvV0soIklucHV0VHlwZURhdGVUaW1l
TG9jYWxFbmFibGVkIikuZ2V0KCkpOwotI2VuZGlmCi0jaWYgRU5BQkxFKElOUFVUX1RZUEVfTU9O
VEgpCiAgICAgV0tQcmVmZXJlbmNlc1NldEludGVybmFsRGVidWdGZWF0dXJlRm9yS2V5KHByZWZl
cmVuY2VzLCB0cnVlLCB0b1dLKCJJbnB1dFR5cGVNb250aEVuYWJsZWQiKS5nZXQoKSk7Ci0jZW5k
aWYKLSNpZiBFTkFCTEUoSU5QVVRfVFlQRV9USU1FKQogICAgIFdLUHJlZmVyZW5jZXNTZXRJbnRl
cm5hbERlYnVnRmVhdHVyZUZvcktleShwcmVmZXJlbmNlcywgdHJ1ZSwgdG9XSygiSW5wdXRUeXBl
VGltZUVuYWJsZWQiKS5nZXQoKSk7Ci0jZW5kaWYKLSNpZiBFTkFCTEUoSU5QVVRfVFlQRV9XRUVL
KQogICAgIFdLUHJlZmVyZW5jZXNTZXRJbnRlcm5hbERlYnVnRmVhdHVyZUZvcktleShwcmVmZXJl
bmNlcywgdHJ1ZSwgdG9XSygiSW5wdXRUeXBlV2Vla0VuYWJsZWQiKS5nZXQoKSk7Ci0jZW5kaWYK
KyAgICBXS1ByZWZlcmVuY2VzU2V0SW50ZXJuYWxEZWJ1Z0ZlYXR1cmVGb3JLZXkocHJlZmVyZW5j
ZXMsIGZhbHNlLCB0b1dLKCJTcGVha2VyU2VsZWN0aW9uUmVxdWlyZXNVc2VyR2VzdHVyZSIpLmdl
dCgpKTsKIAotICAgIGZvciAoY29uc3QgYXV0byYgW2tleSwgdmFsdWVdICA6IG9wdGlvbnMuaW50
ZXJuYWxEZWJ1Z0ZlYXR1cmVzKCkpCisgICAgZm9yIChhdXRvIFtrZXksIHZhbHVlXSAgOiBvcHRp
b25zLmludGVybmFsRGVidWdGZWF0dXJlcygpKQogICAgICAgICBXS1ByZWZlcmVuY2VzU2V0SW50
ZXJuYWxEZWJ1Z0ZlYXR1cmVGb3JLZXkocHJlZmVyZW5jZXMsIHZhbHVlLCB0b1dLKGtleSkuZ2V0
KCkpOwogCi0jaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgV0tQcmVmZXJlbmNlc1NldENhcHR1cmVW
aWRlb0luVUlQcm9jZXNzRW5hYmxlZChwcmVmZXJlbmNlcywgb3B0aW9ucy5lbmFibGVDYXB0dXJl
VmlkZW9JblVJUHJvY2VzcygpKTsKLSAgICBXS1ByZWZlcmVuY2VzU2V0Q2FwdHVyZVZpZGVvSW5H
UFVQcm9jZXNzRW5hYmxlZChwcmVmZXJlbmNlcywgb3B0aW9ucy5lbmFibGVDYXB0dXJlVmlkZW9J
bkdQVVByb2Nlc3MoKSk7Ci0gICAgV0tQcmVmZXJlbmNlc1NldENhcHR1cmVBdWRpb0luVUlQcm9j
ZXNzRW5hYmxlZChwcmVmZXJlbmNlcywgb3B0aW9ucy5lbmFibGVDYXB0dXJlQXVkaW9JblVJUHJv
Y2VzcygpKTsKLSAgICBXS1ByZWZlcmVuY2VzU2V0Q2FwdHVyZUF1ZGlvSW5HUFVQcm9jZXNzRW5h
YmxlZChwcmVmZXJlbmNlcywgb3B0aW9ucy5lbmFibGVDYXB0dXJlQXVkaW9JbkdQVVByb2Nlc3Mo
KSk7Ci0jZW5kaWYKKyAgICBmb3IgKGF1dG8gW2tleSwgdmFsdWVdIDogb3B0aW9ucy5ib29sV0tQ
cmVmZXJlbmNlcygpKQorICAgICAgICBXS1ByZWZlcmVuY2VzU2V0Qm9vbFZhbHVlRm9yS2V5KHBy
ZWZlcmVuY2VzLCB2YWx1ZSwgdG9XSyhrZXkpLmdldCgpKTsKKworICAgIC8vIEZJWE1FOiBDb252
ZXJ0IHRoZXNlIHRvIGRlZmF1bHQgdmFsdWVzIGZvciBUZXN0T3B0aW9ucy4KICAgICBXS1ByZWZl
cmVuY2VzU2V0UHJvY2Vzc1N3YXBPbk5hdmlnYXRpb25FbmFibGVkKHByZWZlcmVuY2VzLCBvcHRp
b25zLmNvbnRleHRPcHRpb25zKCkuc2hvdWxkRW5hYmxlUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24o
KSk7Ci0gICAgV0tQcmVmZXJlbmNlc1NldFBhZ2VWaXNpYmlsaXR5QmFzZWRQcm9jZXNzU3VwcHJl
c3Npb25FbmFibGVkKHByZWZlcmVuY2VzLCBvcHRpb25zLmVuYWJsZUFwcE5hcCgpKTsKICAgICBX
S1ByZWZlcmVuY2VzU2V0T2ZmbGluZVdlYkFwcGxpY2F0aW9uQ2FjaGVFbmFibGVkKHByZWZlcmVu
Y2VzLCB0cnVlKTsKICAgICBXS1ByZWZlcmVuY2VzU2V0U3VicGl4ZWxBbnRpYWxpYXNlZExheWVy
VGV4dEVuYWJsZWQocHJlZmVyZW5jZXMsIGZhbHNlKTsKICAgICBXS1ByZWZlcmVuY2VzU2V0WFNT
QXVkaXRvckVuYWJsZWQocHJlZmVyZW5jZXMsIGZhbHNlKTsKQEAgLTg4MiwxMyArODcwLDkgQEAg
dm9pZCBUZXN0Q29udHJvbGxlcjo6cmVzZXRQcmVmZXJlbmNlc1RvQwogICAgIFdLUHJlZmVyZW5j
ZXNTZXRKYXZhU2NyaXB0UnVudGltZUZsYWdzKHByZWZlcmVuY2VzLCBrV0tKYXZhU2NyaXB0UnVu
dGltZUZsYWdzQWxsRW5hYmxlZCk7CiAgICAgV0tQcmVmZXJlbmNlc1NldEphdmFTY3JpcHRDYW5P
cGVuV2luZG93c0F1dG9tYXRpY2FsbHkocHJlZmVyZW5jZXMsIHRydWUpOwogICAgIFdLUHJlZmVy
ZW5jZXNTZXRKYXZhU2NyaXB0Q2FuQWNjZXNzQ2xpcGJvYXJkKHByZWZlcmVuY2VzLCB0cnVlKTsK
LSAgICBXS1ByZWZlcmVuY2VzU2V0RE9NUGFzdGVBbGxvd2VkKHByZWZlcmVuY2VzLCBvcHRpb25z
LmRvbVBhc3RlQWxsb3dlZCgpKTsKICAgICBXS1ByZWZlcmVuY2VzU2V0VW5pdmVyc2FsQWNjZXNz
RnJvbUZpbGVVUkxzQWxsb3dlZChwcmVmZXJlbmNlcywgdHJ1ZSk7CiAgICAgV0tQcmVmZXJlbmNl
c1NldEZpbGVBY2Nlc3NGcm9tRmlsZVVSTHNBbGxvd2VkKHByZWZlcmVuY2VzLCB0cnVlKTsKLSAg
ICBXS1ByZWZlcmVuY2VzU2V0VG9wTmF2aWdhdGlvblRvRGF0YVVSTHNBbGxvd2VkKHByZWZlcmVu
Y2VzLCBvcHRpb25zLmFsbG93VG9wTmF2aWdhdGlvblRvRGF0YVVSTHMoKSk7Ci0jaWYgRU5BQkxF
KEZVTExTQ1JFRU5fQVBJKQogICAgIFdLUHJlZmVyZW5jZXNTZXRGdWxsU2NyZWVuRW5hYmxlZChw
cmVmZXJlbmNlcywgdHJ1ZSk7Ci0jZW5kaWYKICAgICBXS1ByZWZlcmVuY2VzU2V0QXN5bmNocm9u
b3VzUGx1Z2luSW5pdGlhbGl6YXRpb25FbmFibGVkKHByZWZlcmVuY2VzLCBmYWxzZSk7CiAgICAg
V0tQcmVmZXJlbmNlc1NldEFzeW5jaHJvbm91c1BsdWdpbkluaXRpYWxpemF0aW9uRW5hYmxlZEZv
ckFsbFBsdWdpbnMocHJlZmVyZW5jZXMsIGZhbHNlKTsKICAgICBXS1ByZWZlcmVuY2VzU2V0QXJ0
aWZpY2lhbFBsdWdpbkluaXRpYWxpemF0aW9uRGVsYXlFbmFibGVkKHByZWZlcmVuY2VzLCBmYWxz
ZSk7CkBAIC04OTcsMjIgKzg4MSw3IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OnJlc2V0UHJlZmVy
ZW5jZXNUb0MKICAgICBXS1ByZWZlcmVuY2VzU2V0RGF0YVRyYW5zZmVySXRlbXNFbmFibGVkKHBy
ZWZlcmVuY2VzLCB0cnVlKTsKICAgICBXS1ByZWZlcmVuY2VzU2V0Q3VzdG9tUGFzdGVib2FyZERh
dGFFbmFibGVkKHByZWZlcmVuY2VzLCB0cnVlKTsKICAgICBXS1ByZWZlcmVuY2VzU2V0RGlhbG9n
RWxlbWVudEVuYWJsZWQocHJlZmVyZW5jZXMsIHRydWUpOwotCi0gICAgV0tQcmVmZXJlbmNlc1Nl
dE1vY2tTY3JvbGxiYXJzRW5hYmxlZChwcmVmZXJlbmNlcywgb3B0aW9ucy51c2VNb2NrU2Nyb2xs
YmFycygpKTsKLSAgICBXS1ByZWZlcmVuY2VzU2V0TmVlZHNTaXRlU3BlY2lmaWNRdWlya3MocHJl
ZmVyZW5jZXMsIG9wdGlvbnMubmVlZHNTaXRlU3BlY2lmaWNRdWlya3MoKSk7Ci0gICAgV0tQcmVm
ZXJlbmNlc1NldEF0dGFjaG1lbnRFbGVtZW50RW5hYmxlZChwcmVmZXJlbmNlcywgb3B0aW9ucy5l
bmFibGVBdHRhY2htZW50RWxlbWVudCgpKTsKLSAgICBXS1ByZWZlcmVuY2VzU2V0TWVudUl0ZW1F
bGVtZW50RW5hYmxlZChwcmVmZXJlbmNlcywgb3B0aW9ucy5lbmFibGVNZW51SXRlbUVsZW1lbnQo
KSk7Ci0gICAgV0tQcmVmZXJlbmNlc1NldEtleWdlbkVsZW1lbnRFbmFibGVkKHByZWZlcmVuY2Vz
LCBvcHRpb25zLmVuYWJsZUtleWdlbkVsZW1lbnQoKSk7Ci0gICAgV0tQcmVmZXJlbmNlc1NldE1v
ZGVybk1lZGlhQ29udHJvbHNFbmFibGVkKHByZWZlcmVuY2VzLCBvcHRpb25zLmVuYWJsZU1vZGVy
bk1lZGlhQ29udHJvbHMoKSk7Ci0gICAgV0tQcmVmZXJlbmNlc1NldFdlYkF1dGhlbnRpY2F0aW9u
RW5hYmxlZChwcmVmZXJlbmNlcywgb3B0aW9ucy5lbmFibGVXZWJBdXRoZW50aWNhdGlvbigpKTsK
LSAgICBXS1ByZWZlcmVuY2VzU2V0V2ViQXV0aGVudGljYXRpb25Mb2NhbEF1dGhlbnRpY2F0b3JF
bmFibGVkKHByZWZlcmVuY2VzLCBvcHRpb25zLmVuYWJsZVdlYkF1dGhlbnRpY2F0aW9uTG9jYWxB
dXRoZW50aWNhdG9yKCkpOwotICAgIFdLUHJlZmVyZW5jZXNTZXRBbGxvd0Nyb3NzT3JpZ2luU3Vi
cmVzb3VyY2VzVG9Bc2tGb3JDcmVkZW50aWFscyhwcmVmZXJlbmNlcywgb3B0aW9ucy5hbGxvd0Ny
b3NzT3JpZ2luU3VicmVzb3VyY2VzVG9Bc2tGb3JDcmVkZW50aWFscygpKTsKLSAgICBXS1ByZWZl
cmVuY2VzU2V0Q29sb3JGaWx0ZXJFbmFibGVkKHByZWZlcmVuY2VzLCBvcHRpb25zLmVuYWJsZUNv
bG9yRmlsdGVyKCkpOwotICAgIFdLUHJlZmVyZW5jZXNTZXRQdW5jaE91dFdoaXRlQmFja2dyb3Vu
ZHNJbkRhcmtNb2RlKHByZWZlcmVuY2VzLCBvcHRpb25zLnB1bmNoT3V0V2hpdGVCYWNrZ3JvdW5k
c0luRGFya01vZGUoKSk7Ci0gICAgV0tQcmVmZXJlbmNlc1NldFBhZ2VDYWNoZUVuYWJsZWQocHJl
ZmVyZW5jZXMsIG9wdGlvbnMuZW5hYmxlQmFja0ZvcndhcmRDYWNoZSgpKTsKLQogICAgIFdLUHJl
ZmVyZW5jZXNTZXREZWZhdWx0VGV4dEVuY29kaW5nTmFtZShwcmVmZXJlbmNlcywgdG9XSygiSVNP
LTg4NTktMSIpLmdldCgpKTsKLQogICAgIFdLUHJlZmVyZW5jZXNTZXRNaW5pbXVtRm9udFNpemUo
cHJlZmVyZW5jZXMsIDApOwogICAgIFdLUHJlZmVyZW5jZXNTZXRTdGFuZGFyZEZvbnRGYW1pbHko
cHJlZmVyZW5jZXMsIHRvV0soIlRpbWVzIikuZ2V0KCkpOwogICAgIFdLUHJlZmVyZW5jZXNTZXRD
dXJzaXZlRm9udEZhbWlseShwcmVmZXJlbmNlcywgdG9XSygiQXBwbGUgQ2hhbmNlcnkiKS5nZXQo
KSk7CkBAIC05MjIsMjEgKzg5MSwxMyBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpyZXNldFByZWZl
cmVuY2VzVG9DCiAgICAgV0tQcmVmZXJlbmNlc1NldFNhbnNTZXJpZkZvbnRGYW1pbHkocHJlZmVy
ZW5jZXMsIHRvV0soIkhlbHZldGljYSIpLmdldCgpKTsKICAgICBXS1ByZWZlcmVuY2VzU2V0U2Vy
aWZGb250RmFtaWx5KHByZWZlcmVuY2VzLCB0b1dLKCJUaW1lcyIpLmdldCgpKTsKICAgICBXS1By
ZWZlcmVuY2VzU2V0QXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQocHJlZmVyZW5jZXMs
IGZhbHNlKTsKLSNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQogICAgIFdLUHJlZmVyZW5jZXNTZXRN
ZWRpYVNvdXJjZUVuYWJsZWQocHJlZmVyZW5jZXMsIHRydWUpOwogICAgIFdLUHJlZmVyZW5jZXNT
ZXRTb3VyY2VCdWZmZXJDaGFuZ2VUeXBlRW5hYmxlZChwcmVmZXJlbmNlcywgdHJ1ZSk7Ci0jZW5k
aWYKICAgICBXS1ByZWZlcmVuY2VzU2V0SGlnaGxpZ2h0QVBJRW5hYmxlZChwcmVmZXJlbmNlcywg
dHJ1ZSk7Ci0KICAgICBXS1ByZWZlcmVuY2VzU2V0SGlkZGVuUGFnZURPTVRpbWVyVGhyb3R0bGlu
Z0VuYWJsZWQocHJlZmVyZW5jZXMsIGZhbHNlKTsKICAgICBXS1ByZWZlcmVuY2VzU2V0SGlkZGVu
UGFnZUNTU0FuaW1hdGlvblN1c3BlbnNpb25FbmFibGVkKHByZWZlcmVuY2VzLCBmYWxzZSk7Ci0K
LSAgICBXS1ByZWZlcmVuY2VzU2V0QWNjZWxlcmF0ZWREcmF3aW5nRW5hYmxlZChwcmVmZXJlbmNl
cywgbV9zaG91bGRVc2VBY2NlbGVyYXRlZERyYXdpbmcgfHwgb3B0aW9ucy51c2VBY2NlbGVyYXRl
ZERyYXdpbmcoKSk7Ci0gICAgLy8gRklYTUU6IFdlIHNob3VsZCBiZSB0ZXN0aW5nIHRoZSBkZWZh
dWx0LgotICAgIFdLUHJlZmVyZW5jZXNTZXRTdG9yYWdlQmxvY2tpbmdQb2xpY3kocHJlZmVyZW5j
ZXMsIGtXS0FsbG93QWxsU3RvcmFnZSk7Ci0KKyAgICBXS1ByZWZlcmVuY2VzU2V0U3RvcmFnZUJs
b2NraW5nUG9saWN5KHByZWZlcmVuY2VzLCBrV0tBbGxvd0FsbFN0b3JhZ2UpOyAvLyBGSVhNRTog
V2Ugc2hvdWxkIGJlIHRlc3RpbmcgdGhlIGRlZmF1bHQuCiAgICAgV0tQcmVmZXJlbmNlc1NldElz
TlNVUkxTZXNzaW9uV2ViU29ja2V0RW5hYmxlZChwcmVmZXJlbmNlcywgZmFsc2UpOwotCiAgICAg
V0tQcmVmZXJlbmNlc1NldEZldGNoQVBJS2VlcEFsaXZlRW5hYmxlZChwcmVmZXJlbmNlcywgdHJ1
ZSk7CiAgICAgV0tQcmVmZXJlbmNlc1NldE1lZGlhUHJlbG9hZGluZ0VuYWJsZWQocHJlZmVyZW5j
ZXMsIHRydWUpOwogICAgIFdLUHJlZmVyZW5jZXNTZXRFeHBvc2VTcGVha2Vyc0VuYWJsZWQocHJl
ZmVyZW5jZXMsIHRydWUpOwpAQCAtOTQ1LDM4ICs5MDYsMjIgQEAgdm9pZCBUZXN0Q29udHJvbGxl
cjo6cmVzZXRQcmVmZXJlbmNlc1RvQwogICAgIFdLUHJlZmVyZW5jZXNTZXRSZW1vdGVQbGF5YmFj
a0VuYWJsZWQocHJlZmVyZW5jZXMsIHRydWUpOwogICAgIFdLUHJlZmVyZW5jZXNTZXRCZWFjb25B
UElFbmFibGVkKHByZWZlcmVuY2VzLCB0cnVlKTsKICAgICBXS1ByZWZlcmVuY2VzU2V0RGlyZWN0
b3J5VXBsb2FkRW5hYmxlZChwcmVmZXJlbmNlcywgdHJ1ZSk7Ci0KLSAgICBXS0hUVFBDb29raWVT
dG9yZURlbGV0ZUFsbENvb2tpZXMoV0tXZWJzaXRlRGF0YVN0b3JlR2V0SFRUUENvb2tpZVN0b3Jl
KHdlYnNpdGVEYXRhU3RvcmUoKSksIG51bGxwdHIsIG51bGxwdHIpOwotCiAgICAgV0tQcmVmZXJl
bmNlc1NldE1vY2tDYXB0dXJlRGV2aWNlc0VuYWJsZWQocHJlZmVyZW5jZXMsIHRydWUpOwotICAg
IAogICAgIFdLUHJlZmVyZW5jZXNTZXRMYXJnZUltYWdlQXN5bmNEZWNvZGluZ0VuYWJsZWQocHJl
ZmVyZW5jZXMsIGZhbHNlKTsKLQotICAgIFdLUHJlZmVyZW5jZXNTZXRJbnNwZWN0b3JBZGRpdGlv
bnNFbmFibGVkKHByZWZlcmVuY2VzLCBvcHRpb25zLmVuYWJsZUluc3BlY3RvckFkZGl0aW9ucygp
KTsKLQogICAgIFdLUHJlZmVyZW5jZXNTZXRTdG9yYWdlQWNjZXNzQVBJRW5hYmxlZChwcmVmZXJl
bmNlcywgdHJ1ZSk7Ci0gICAgCiAgICAgV0tQcmVmZXJlbmNlc1NldEFjY2Vzc2liaWxpdHlPYmpl
Y3RNb2RlbEVuYWJsZWQocHJlZmVyZW5jZXMsIHRydWUpOwogICAgIFdLUHJlZmVyZW5jZXNTZXRD
U1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVkKHByZWZlcmVuY2VzLCB0cnVlKTsKICAgICBXS1By
ZWZlcmVuY2VzU2V0TWVkaWFDYXBhYmlsaXRpZXNFbmFibGVkKHByZWZlcmVuY2VzLCB0cnVlKTsK
LQogICAgIFdLUHJlZmVyZW5jZXNTZXRSZXN0cmljdGVkSFRUUFJlc3BvbnNlQWNjZXNzKHByZWZl
cmVuY2VzLCB0cnVlKTsKLQogICAgIFdLUHJlZmVyZW5jZXNTZXRTZXJ2ZXJUaW1pbmdFbmFibGVk
KHByZWZlcmVuY2VzLCB0cnVlKTsKLQogICAgIFdLUHJlZmVyZW5jZXNTZXRXZWJTUUxEaXNhYmxl
ZChwcmVmZXJlbmNlcywgZmFsc2UpOwotCiAgICAgV0tQcmVmZXJlbmNlc1NldE1lZGlhUGxheWJh
Y2tSZXF1aXJlc1VzZXJHZXN0dXJlKHByZWZlcmVuY2VzLCBmYWxzZSk7CiAgICAgV0tQcmVmZXJl
bmNlc1NldFZpZGVvUGxheWJhY2tSZXF1aXJlc1VzZXJHZXN0dXJlKHByZWZlcmVuY2VzLCBmYWxz
ZSk7CiAgICAgV0tQcmVmZXJlbmNlc1NldEF1ZGlvUGxheWJhY2tSZXF1aXJlc1VzZXJHZXN0dXJl
KHByZWZlcmVuY2VzLCBmYWxzZSk7Ci0gICAgV0tQcmVmZXJlbmNlc1NldEludGVybmFsRGVidWdG
ZWF0dXJlRm9yS2V5KHByZWZlcmVuY2VzLCBmYWxzZSwgV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENT
dHJpbmcoIlNwZWFrZXJTZWxlY3Rpb25SZXF1aXJlc1VzZXJHZXN0dXJlIikpOwotCi0gICAgV0tQ
cmVmZXJlbmNlc1NldFNob3VsZFVzZVNlcnZpY2VXb3JrZXJTaG9ydFRpbWVvdXQocHJlZmVyZW5j
ZXMsIG9wdGlvbnMudXNlU2VydmljZVdvcmtlclNob3J0VGltZW91dCgpKTsKLQogI2lmIEVOQUJM
RShBQ0NFU1NJQklMSVRZX0lTT0xBVEVEX1RSRUUpCiAgICAgV0tQcmVmZXJlbmNlc1NldElzQWNj
ZXNzaWJpbGl0eUlzb2xhdGVkVHJlZUVuYWJsZWQocHJlZmVyZW5jZXMsIGFjY2Vzc2liaWxpdHlJ
c29sYXRlZFRyZWVNb2RlKCkpOwogI2VuZGlmCi0gICAgCisKICAgICBwbGF0Zm9ybVJlc2V0UHJl
ZmVyZW5jZXNUb0NvbnNpc3RlbnRWYWx1ZXMoKTsKIH0KIApAQCAtMTAwOSwyMyArOTU0LDE5IEBA
IGJvb2wgVGVzdENvbnRyb2xsZXI6OnJlc2V0U3RhdGVUb0NvbnNpc3QKICAgICBpZiAoIWpzY09w
dGlvbnMuZW1wdHkoKSkKICAgICAgICAgc2V0VmFsdWUocmVzZXRNZXNzYWdlQm9keSwgIkpTQ09w
dGlvbnMiLCBqc2NPcHRpb25zLmNfc3RyKCkpOwogCi0jaWYgUExBVEZPUk0oQ09DT0EpCi0gICAg
V2ViQ29yZVRlc3RTdXBwb3J0OjpzZXRBZGRpdGlvbmFsU3VwcG9ydGVkSW1hZ2VUeXBlc0ZvclRl
c3Rpbmcob3B0aW9ucy5hZGRpdGlvbmFsU3VwcG9ydGVkSW1hZ2VUeXBlcygpLmNfc3RyKCkpOwot
I2VuZGlmCi0KICAgICBXS1BhZ2VQb3N0TWVzc2FnZVRvSW5qZWN0ZWRCdW5kbGUoVGVzdENvbnRy
b2xsZXI6OnNpbmdsZXRvbigpLm1haW5XZWJWaWV3KCktPnBhZ2UoKSwgdG9XSygiUmVzZXQiKS5n
ZXQoKSwgcmVzZXRNZXNzYWdlQm9keS5nZXQoKSk7CiAKICAgICBXS0NvbnRleHRTZXRTaG91bGRV
c2VGb250U21vb3RoaW5nKFRlc3RDb250cm9sbGVyOjpzaW5nbGV0b24oKS5jb250ZXh0KCksIGZh
bHNlKTsKLQogICAgIFdLQ29udGV4dFNldENhY2hlTW9kZWwoVGVzdENvbnRyb2xsZXI6OnNpbmds
ZXRvbigpLmNvbnRleHQoKSwga1dLQ2FjaGVNb2RlbERvY3VtZW50QnJvd3Nlcik7CiAKICAgICBX
S1dlYnNpdGVEYXRhU3RvcmVDbGVhckNhY2hlZENyZWRlbnRpYWxzKHdlYnNpdGVEYXRhU3RvcmUo
KSk7Ci0KICAgICBXS1dlYnNpdGVEYXRhU3RvcmVSZXNldFNlcnZpY2VXb3JrZXJGZXRjaFRpbWVv
dXRGb3JUZXN0aW5nKHdlYnNpdGVEYXRhU3RvcmUoKSk7CiAKICAgICBXS1dlYnNpdGVEYXRhU3Rv
cmVTZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCh3ZWJzaXRlRGF0YVN0b3JlKCksIHRy
dWUpOwogICAgIFdLV2Vic2l0ZURhdGFTdG9yZUNsZWFyQWxsRGV2aWNlT3JpZW50YXRpb25QZXJt
aXNzaW9ucyh3ZWJzaXRlRGF0YVN0b3JlKCkpOwogCisgICAgV0tIVFRQQ29va2llU3RvcmVEZWxl
dGVBbGxDb29raWVzKFdLV2Vic2l0ZURhdGFTdG9yZUdldEhUVFBDb29raWVTdG9yZSh3ZWJzaXRl
RGF0YVN0b3JlKCkpLCBudWxscHRyLCBudWxscHRyKTsKKwogICAgIGNsZWFySW5kZXhlZERhdGFi
YXNlcygpOwogICAgIGNsZWFyTG9jYWxTdG9yYWdlKCk7CiAKQEAgLTEwMzUsNyArOTc2LDYgQEAg
Ym9vbCBUZXN0Q29udHJvbGxlcjo6cmVzZXRTdGF0ZVRvQ29uc2lzdAogICAgIHJlc2V0UXVvdGEo
KTsKIAogICAgIFdLQ29udGV4dENsZWFyQ3VycmVudE1vZGlmaWVyU3RhdGVGb3JUZXN0aW5nKFRl
c3RDb250cm9sbGVyOjpzaW5nbGV0b24oKS5jb250ZXh0KCkpOwotCiAgICAgV0tDb250ZXh0U2V0
VXNlU2VwYXJhdGVTZXJ2aWNlV29ya2VyUHJvY2VzcyhUZXN0Q29udHJvbGxlcjo6c2luZ2xldG9u
KCkuY29udGV4dCgpLCBmYWxzZSk7CiAKICAgICBXS1BhZ2VTZXRNb2NrQ2FtZXJhT3JpZW50YXRp
b24obV9tYWluV2ViVmlldy0+cGFnZSgpLCAwKTsKQEAgLTEwNTEsMTAgKzk5MSw2IEBAIGJvb2wg
VGVzdENvbnRyb2xsZXI6OnJlc2V0U3RhdGVUb0NvbnNpc3QKICAgICAvLyBzb21lIG90aGVyIGNv
ZGUgZG9pbmcgdGhpcywgaXQgc2hvdWxkIHByb2JhYmx5IGJlIHJlc3BvbnNpYmxlIGZvciBjbGVh
bnVwIHRvby4KICAgICByZXNldFByZWZlcmVuY2VzVG9Db25zaXN0ZW50VmFsdWVzKG9wdGlvbnMp
OwogCi0jaWYgUExBVEZPUk0oR1RLKQotICAgIFdLVGV4dENoZWNrZXJDb250aW51b3VzU3BlbGxD
aGVja2luZ0VuYWJsZWRTdGF0ZUNoYW5nZWQodHJ1ZSk7Ci0jZW5kaWYKLQogICAgIC8vIE1ha2Ug
c3VyZSB0aGUgdmlldyBpcyBpbiB0aGUgd2luZG93IChhIHRlc3QgY2FuIHVucGFyZW50IGl0KS4K
ICAgICBtX21haW5XZWJWaWV3LT5hZGRUb1dpbmRvdygpOwogCkBAIC0yODM0LDExICsyNzcwLDYg
QEAgV0tDb250ZXh0UmVmIFRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybUFkagogICAgIHJldHVybiBj
b250ZXh0OwogfQogCi1ib29sIFRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybVJlc2V0U3RhdGVUb0Nv
bnNpc3RlbnRWYWx1ZXMoY29uc3QgVGVzdE9wdGlvbnMmKQotewotICAgIHJldHVybiB0cnVlOwot
fQotCiB1bnNpZ25lZCBUZXN0Q29udHJvbGxlcjo6aW1hZ2VDb3VudEluR2VuZXJhbFBhc3RlYm9h
cmQoKSBjb25zdAogewogICAgIHJldHVybiAwOwpJbmRleDogVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9UZXN0Q29udHJvbGxlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIv
VGVzdENvbnRyb2xsZXIuaAkocmV2aXNpb24gMjY4MzI1KQorKysgVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9UZXN0Q29udHJvbGxlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0zOTQsNyArMzk0LDYgQEAg
cHJpdmF0ZToKIAogICAgIHZvaWQgZW5zdXJlVmlld1N1cHBvcnRzT3B0aW9uc0ZvclRlc3QoY29u
c3QgVGVzdEludm9jYXRpb24mKTsKICAgICBUZXN0T3B0aW9ucyB0ZXN0T3B0aW9uc0ZvclRlc3Qo
Y29uc3QgVGVzdENvbW1hbmQmKSBjb25zdDsKLSAgICBUZXN0RmVhdHVyZXMgZ2xvYmFsRmVhdHVy
ZURlZmF1bHRzRm9yVGVzdChjb25zdCBUZXN0Q29tbWFuZCYpIGNvbnN0OwogICAgIFRlc3RGZWF0
dXJlcyBwbGF0Zm9ybVNwZWNpZmljRmVhdHVyZURlZmF1bHRzRm9yVGVzdChjb25zdCBUZXN0Q29t
bWFuZCYpIGNvbnN0OwogICAgIFRlc3RGZWF0dXJlcyBwbGF0Zm9ybVNwZWNpZmljRmVhdHVyZU92
ZXJyaWRlc0RlZmF1bHRzRm9yVGVzdChjb25zdCBUZXN0Q29tbWFuZCYpIGNvbnN0OwogCkBAIC01
OTYsOCArNTk1LDYgQEAgcHJpdmF0ZToKICAgICBTdHJpbmcgbV91bnN1cHBvcnRlZFBsdWdpbk1v
ZGU7CiAKICAgICBib29sIG1fZm9yY2VDb21wbGV4VGV4dCB7IGZhbHNlIH07Ci0gICAgYm9vbCBt
X3Nob3VsZFVzZUFjY2VsZXJhdGVkRHJhd2luZyB7IGZhbHNlIH07Ci0gICAgCiAgICAgYm9vbCBt
X3Nob3VsZExvZ0NhbkF1dGhlbnRpY2F0ZUFnYWluc3RQcm90ZWN0aW9uU3BhY2UgeyBmYWxzZSB9
OwogICAgIGJvb2wgbV9zaG91bGRMb2dEb3dubG9hZENhbGxiYWNrcyB7IGZhbHNlIH07CiAgICAg
Ym9vbCBtX3Nob3VsZExvZ0hpc3RvcnlDbGllbnRDYWxsYmFja3MgeyBmYWxzZSB9OwpJbmRleDog
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0T3B0aW9ucy5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0T3B0aW9ucy5jcHAJKHJldmlzaW9uIDI2ODMyNSkKKysr
IFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdE9wdGlvbnMuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0xMDEsNTQgKzEwMSw1MSBAQCB2b2lkIG1lcmdlKFRlc3RGZWF0dXJlcyYgYmFzZSwgVGVzdEZl
YXR1CiBzdGF0aWMgY29uc3Qgc3RkOjp1bm9yZGVyZWRfbWFwPHN0ZDo6c3RyaW5nLCBib29sPiYg
Ym9vbERlZmF1bHRzTWFwKCkKIHsKICAgICBzdGF0aWMgc3RkOjp1bm9yZGVyZWRfbWFwPHN0ZDo6
c3RyaW5nLCBib29sPiBtYXAgewotICAgICAgICB7ICJ1c2VUaHJlYWRlZFNjcm9sbGluZyIsIGZh
bHNlIH0sCi0gICAgICAgIHsgInVzZUFjY2VsZXJhdGVkRHJhd2luZyIsIGZhbHNlIH0sCi0gICAg
ICAgIHsgInVzZVJlbW90ZUxheWVyVHJlZSIsIGZhbHNlIH0sCi0gICAgICAgIHsgInNob3VsZFNo
b3dXZWJWaWV3IiwgZmFsc2UgfSwKLSAgICAgICAgeyAidXNlRmxleGlibGVWaWV3cG9ydCIsIGZh
bHNlIH0sCi0gICAgICAgIHsgInVzZURhdGFEZXRlY3Rpb24iLCBmYWxzZSB9LAotICAgICAgICB7
ICJ1c2VNb2NrU2Nyb2xsYmFycyIsIHRydWUgfSwKLSAgICAgICAgeyAibmVlZHNTaXRlU3BlY2lm
aWNRdWlya3MiLCBmYWxzZSB9LAotICAgICAgICB7ICJpZ25vcmVzVmlld3BvcnRTY2FsZUxpbWl0
cyIsIGZhbHNlIH0sCi0gICAgICAgIHsgInVzZUNoYXJhY3RlclNlbGVjdGlvbkdyYW51bGFyaXR5
IiwgZmFsc2UgfSwKLSAgICAgICAgeyAiZW5hYmxlQXR0YWNobWVudEVsZW1lbnQiLCBmYWxzZSB9
LAotICAgICAgICB7ICJlbmFibGVJbnRlcnNlY3Rpb25PYnNlcnZlciIsIGZhbHNlIH0sCi0gICAg
ICAgIHsgInVzZUVwaGVtZXJhbFNlc3Npb24iLCBmYWxzZSB9LAotICAgICAgICB7ICJlbmFibGVN
ZW51SXRlbUVsZW1lbnQiLCBmYWxzZSB9LAotICAgICAgICB7ICJlbmFibGVLZXlnZW5FbGVtZW50
IiwgZmFsc2UgfSwKLSAgICAgICAgeyAiZW5hYmxlTW9kZXJuTWVkaWFDb250cm9scyIsIHRydWUg
fSwKLSAgICAgICAgeyAiZW5hYmxlUG9pbnRlckxvY2siLCBmYWxzZSB9LAotICAgICAgICB7ICJl
bmFibGVXZWJBdXRoZW50aWNhdGlvbiIsIHRydWUgfSwKLSAgICAgICAgeyAiZW5hYmxlV2ViQXV0
aGVudGljYXRpb25Mb2NhbEF1dGhlbnRpY2F0b3IiLCB0cnVlIH0sCi0gICAgICAgIHsgImVuYWJs
ZUluc3BlY3RvckFkZGl0aW9ucyIsIGZhbHNlIH0sCi0gICAgICAgIHsgInNob3VsZFNob3dUb3Vj
aGVzIiwgZmFsc2UgfSwKLSAgICAgICAgeyAiZHVtcEpTQ29uc29sZUxvZ0luU3RkRXJyIiwgZmFs
c2UgfSwKICAgICAgICAgeyAiYWxsb3dDcm9zc09yaWdpblN1YnJlc291cmNlc1RvQXNrRm9yQ3Jl
ZGVudGlhbHMiLCBmYWxzZSB9LAorICAgICAgICB7ICJhbGxvd1RvcE5hdmlnYXRpb25Ub0RhdGFV
UkxzIiwgdHJ1ZSB9LAorICAgICAgICB7ICJhbGxvd3NMaW5rUHJldmlldyIsIHRydWUgfSwKICAg
ICAgICAgeyAiZG9tUGFzdGVBbGxvd2VkIiwgdHJ1ZSB9LAotICAgICAgICB7ICJlbmFibGVDb2xv
ckZpbHRlciIsIGZhbHNlIH0sCi0gICAgICAgIHsgInB1bmNoT3V0V2hpdGVCYWNrZ3JvdW5kc0lu
RGFya01vZGUiLCBmYWxzZSB9LAotICAgICAgICB7ICJydW5TaW5nbHkiLCBmYWxzZSB9LAotICAg
ICAgICB7ICJjaGVja0ZvcldvcmxkTGVha3MiLCBmYWxzZSB9LAotICAgICAgICB7ICJzaG91bGRJ
Z25vcmVNZXRhVmlld3BvcnQiLCBmYWxzZSB9LAotICAgICAgICB7ICJzcGVsbENoZWNraW5nRG90
cyIsIGZhbHNlIH0sCi0gICAgICAgIHsgImVuYWJsZVNlcnZpY2VDb250cm9scyIsIGZhbHNlIH0s
CisgICAgICAgIHsgImR1bXBKU0NvbnNvbGVMb2dJblN0ZEVyciIsIGZhbHNlIH0sCiAgICAgICAg
IHsgImVkaXRhYmxlIiwgZmFsc2UgfSwKLSAgICAgICAgeyAic2hvdWxkSGFuZGxlUnVuT3BlblBh
bmVsIiwgdHJ1ZSB9LAotICAgICAgICB7ICJzaG91bGRQcmVzZW50UG9wb3ZlcnMiLCB0cnVlIH0s
CiAgICAgICAgIHsgImVuYWJsZUFwcE5hcCIsIGZhbHNlIH0sCisgICAgICAgIHsgImVuYWJsZUF0
dGFjaG1lbnRFbGVtZW50IiwgZmFsc2UgfSwKICAgICAgICAgeyAiZW5hYmxlQmFja0ZvcndhcmRD
YWNoZSIsIGZhbHNlIH0sCi0gICAgICAgIHsgImFsbG93c0xpbmtQcmV2aWV3IiwgdHJ1ZSB9LAot
ICAgICAgICB7ICJlbmFibGVDYXB0dXJlVmlkZW9JblVJUHJvY2VzcyIsIGZhbHNlIH0sCi0gICAg
ICAgIHsgImVuYWJsZUNhcHR1cmVWaWRlb0luR1BVUHJvY2VzcyIsIGZhbHNlIH0sCi0gICAgICAg
IHsgImVuYWJsZUNhcHR1cmVBdWRpb0luVUlQcm9jZXNzIiwgZmFsc2UgfSwKICAgICAgICAgeyAi
ZW5hYmxlQ2FwdHVyZUF1ZGlvSW5HUFVQcm9jZXNzIiwgZmFsc2UgfSwKLSAgICAgICAgeyAiYWxs
b3dUb3BOYXZpZ2F0aW9uVG9EYXRhVVJMcyIsIHRydWUgfSwKKyAgICAgICAgeyAiZW5hYmxlQ2Fw
dHVyZUF1ZGlvSW5VSVByb2Nlc3MiLCBmYWxzZSB9LAorICAgICAgICB7ICJlbmFibGVDYXB0dXJl
VmlkZW9JbkdQVVByb2Nlc3MiLCBmYWxzZSB9LAorICAgICAgICB7ICJlbmFibGVDYXB0dXJlVmlk
ZW9JblVJUHJvY2VzcyIsIGZhbHNlIH0sCisgICAgICAgIHsgImVuYWJsZUNvbG9yRmlsdGVyIiwg
ZmFsc2UgfSwKICAgICAgICAgeyAiZW5hYmxlSW5BcHBCcm93c2VyUHJpdmFjeSIsIGZhbHNlIH0s
Ci0gICAgICAgIHsgImlzQXBwQm91bmRXZWJWaWV3IiwgZmFsc2UgfSwKLSAgICAgICAgeyAiaWdu
b3JlU3luY2hyb25vdXNNZXNzYWdpbmdUaW1lb3V0cyIsIGZhbHNlIH0sCisgICAgICAgIHsgImVu
YWJsZUluc3BlY3RvckFkZGl0aW9ucyIsIGZhbHNlIH0sCisgICAgICAgIHsgImVuYWJsZUtleWdl
bkVsZW1lbnQiLCBmYWxzZSB9LAorICAgICAgICB7ICJlbmFibGVNZW51SXRlbUVsZW1lbnQiLCBm
YWxzZSB9LAorICAgICAgICB7ICJlbmFibGVNb2Rlcm5NZWRpYUNvbnRyb2xzIiwgdHJ1ZSB9LAog
ICAgICAgICB7ICJlbmFibGVQcm9jZXNzU3dhcE9uTmF2aWdhdGlvbiIsIHRydWUgfSwKICAgICAg
ICAgeyAiZW5hYmxlUHJvY2Vzc1N3YXBPbldpbmRvd09wZW4iLCBmYWxzZSB9LAotICAgICAgICB7
ICJ1c2VTZXJ2aWNlV29ya2VyU2hvcnRUaW1lb3V0IiwgZmFsc2UgfQorICAgICAgICB7ICJlbmFi
bGVTZXJ2aWNlQ29udHJvbHMiLCBmYWxzZSB9LAorICAgICAgICB7ICJlbmFibGVXZWJBdXRoZW50
aWNhdGlvbiIsIHRydWUgfSwKKyAgICAgICAgeyAiZW5hYmxlV2ViQXV0aGVudGljYXRpb25Mb2Nh
bEF1dGhlbnRpY2F0b3IiLCB0cnVlIH0sCisgICAgICAgIHsgImlnbm9yZVN5bmNocm9ub3VzTWVz
c2FnaW5nVGltZW91dHMiLCBmYWxzZSB9LAorICAgICAgICB7ICJpZ25vcmVzVmlld3BvcnRTY2Fs
ZUxpbWl0cyIsIGZhbHNlIH0sCisgICAgICAgIHsgImlzQXBwQm91bmRXZWJWaWV3IiwgZmFsc2Ug
fSwKKyAgICAgICAgeyAibmVlZHNTaXRlU3BlY2lmaWNRdWlya3MiLCBmYWxzZSB9LAorICAgICAg
ICB7ICJwdW5jaE91dFdoaXRlQmFja2dyb3VuZHNJbkRhcmtNb2RlIiwgZmFsc2UgfSwKKyAgICAg
ICAgeyAicnVuU2luZ2x5IiwgZmFsc2UgfSwKKyAgICAgICAgeyAic2hvdWxkSGFuZGxlUnVuT3Bl
blBhbmVsIiwgdHJ1ZSB9LAorICAgICAgICB7ICJzaG91bGRJZ25vcmVNZXRhVmlld3BvcnQiLCBm
YWxzZSB9LAorICAgICAgICB7ICJzaG91bGRQcmVzZW50UG9wb3ZlcnMiLCB0cnVlIH0sCisgICAg
ICAgIHsgInNob3VsZFNob3dUb3VjaGVzIiwgZmFsc2UgfSwKKyAgICAgICAgeyAic2hvdWxkU2hv
d1dlYlZpZXciLCBmYWxzZSB9LAorICAgICAgICB7ICJzcGVsbENoZWNraW5nRG90cyIsIGZhbHNl
IH0sCisgICAgICAgIHsgInVzZUFjY2VsZXJhdGVkRHJhd2luZyIsIGZhbHNlIH0sCisgICAgICAg
IHsgInVzZUNoYXJhY3RlclNlbGVjdGlvbkdyYW51bGFyaXR5IiwgZmFsc2UgfSwKKyAgICAgICAg
eyAidXNlRGF0YURldGVjdGlvbiIsIGZhbHNlIH0sCisgICAgICAgIHsgInVzZUVwaGVtZXJhbFNl
c3Npb24iLCBmYWxzZSB9LAorICAgICAgICB7ICJ1c2VGbGV4aWJsZVZpZXdwb3J0IiwgZmFsc2Ug
fSwKKyAgICAgICAgeyAidXNlTW9ja1Njcm9sbGJhcnMiLCB0cnVlIH0sCisgICAgICAgIHsgInVz
ZVJlbW90ZUxheWVyVHJlZSIsIGZhbHNlIH0sCisgICAgICAgIHsgInVzZVNlcnZpY2VXb3JrZXJT
aG9ydFRpbWVvdXQiLCBmYWxzZSB9LAorICAgICAgICB7ICJ1c2VUaHJlYWRlZFNjcm9sbGluZyIs
IGZhbHNlIH0sCiAgICAgfTsKICAgICByZXR1cm4gbWFwOwogfQpAQCAtMTU4LDggKzE1NSw4IEBA
IHN0YXRpYyBjb25zdCBzdGQ6OnVub3JkZXJlZF9tYXA8c3RkOjpzdHIKICAgICBzdGF0aWMgc3Rk
Ojp1bm9yZGVyZWRfbWFwPHN0ZDo6c3RyaW5nLCBkb3VibGU+IG1hcCB7CiAgICAgICAgIHsgImNv
bnRlbnRJbnNldC50b3AiLCAwIH0sCiAgICAgICAgIHsgImRldmljZVNjYWxlRmFjdG9yIiwgMSB9
LAorICAgICAgICB7ICJ2aWV3SGVpZ2h0IiwgNjAwIH0sCiAgICAgICAgIHsgInZpZXdXaWR0aCIs
IDgwMCB9LAotICAgICAgICB7ICJ2aWV3SGVpZ2h0IiwgNjAwIH0KICAgICB9OwogICAgIHJldHVy
biBtYXA7CiB9CkBAIC0xNjcsMTIgKzE2NCwxMiBAQCBzdGF0aWMgY29uc3Qgc3RkOjp1bm9yZGVy
ZWRfbWFwPHN0ZDo6c3RyCiBzdGF0aWMgY29uc3Qgc3RkOjp1bm9yZGVyZWRfbWFwPHN0ZDo6c3Ry
aW5nLCBzdGQ6OnN0cmluZz4mIHN0cmluZ0RlZmF1bHRzTWFwKCkKIHsKICAgICBzdGF0aWMgc3Rk
Ojp1bm9yZGVyZWRfbWFwPHN0ZDo6c3RyaW5nLCBzdGQ6OnN0cmluZz4gbWFwIHsKKyAgICAgICAg
eyAiYWRkaXRpb25hbFN1cHBvcnRlZEltYWdlVHlwZXMiLCB7IH0gfSwKKyAgICAgICAgeyAiYXBw
bGljYXRpb25CdW5kbGVJZGVudGlmaWVyIiwgeyB9IH0sCiAgICAgICAgIHsgImFwcGxpY2F0aW9u
TWFuaWZlc3QiLCB7IH0gfSwKKyAgICAgICAgeyAiY29udGVudE1vZGUiLCB7IH0gfSwKICAgICAg
ICAgeyAianNjT3B0aW9ucyIsIHsgfSB9LAotICAgICAgICB7ICJhZGRpdGlvbmFsU3VwcG9ydGVk
SW1hZ2VUeXBlcyIsIHsgfSB9LAogICAgICAgICB7ICJzdGFuZGFsb25lV2ViQXBwbGljYXRpb25V
UkwiLCB7IH0gfSwKLSAgICAgICAgeyAiY29udGVudE1vZGUiLCB7IH0gfSwKLSAgICAgICAgeyAi
YXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyIiwgeyB9IH0KICAgICB9OwogICAgIHJldHVybiBt
YXA7CiB9CkBAIC0xODAsNyArMTc3LDcgQEAgc3RhdGljIGNvbnN0IHN0ZDo6dW5vcmRlcmVkX21h
cDxzdGQ6OnN0cgogc3RhdGljIGNvbnN0IHN0ZDo6dW5vcmRlcmVkX21hcDxzdGQ6OnN0cmluZywg
c3RkOjp2ZWN0b3I8c3RkOjpzdHJpbmc+PiYgc3RyaW5nVmVjdG9yRGVmYXVsdHNNYXAoKQogewog
ICAgIHN0YXRpYyBzdGQ6OnVub3JkZXJlZF9tYXA8c3RkOjpzdHJpbmcsIHN0ZDo6dmVjdG9yPHN0
ZDo6c3RyaW5nPj4gbWFwIHsKLSAgICAgICAgeyAibGFuZ3VhZ2UiLCB7IH0gfQorICAgICAgICB7
ICJsYW5ndWFnZSIsIHsgfSB9LAogICAgIH07CiAgICAgcmV0dXJuIG1hcDsKIH0KQEAgLTE5OCw2
NSArMTk1LDYyIEBAIGVudW0gY2xhc3MgS2V5VHlwZSA6IHVpbnQ4X3Qgewogc3RhdGljIGNvbnN0
IHN0ZDo6dW5vcmRlcmVkX21hcDxzdGQ6OnN0cmluZywgS2V5VHlwZT4mIGtleVR5cGVNYXAoKQog
ewogICAgIHN0YXRpYyBzdGQ6OnVub3JkZXJlZF9tYXA8c3RkOjpzdHJpbmcsIEtleVR5cGU+IG1h
cCB7Ci0gICAgICAgIHsgInVzZVRocmVhZGVkU2Nyb2xsaW5nIiwgS2V5VHlwZTo6Qm9vbCB9LAot
ICAgICAgICB7ICJ1c2VBY2NlbGVyYXRlZERyYXdpbmciLCBLZXlUeXBlOjpCb29sIH0sCi0gICAg
ICAgIHsgInVzZVJlbW90ZUxheWVyVHJlZSIsIEtleVR5cGU6OkJvb2wgfSwKLSAgICAgICAgeyAi
c2hvdWxkU2hvd1dlYlZpZXciLCBLZXlUeXBlOjpCb29sIH0sCi0gICAgICAgIHsgInVzZUZsZXhp
YmxlVmlld3BvcnQiLCBLZXlUeXBlOjpCb29sIH0sCi0gICAgICAgIHsgInVzZURhdGFEZXRlY3Rp
b24iLCBLZXlUeXBlOjpCb29sIH0sCi0gICAgICAgIHsgInVzZU1vY2tTY3JvbGxiYXJzIiwgS2V5
VHlwZTo6Qm9vbCB9LAotICAgICAgICB7ICJuZWVkc1NpdGVTcGVjaWZpY1F1aXJrcyIsIEtleVR5
cGU6OkJvb2wgfSwKLSAgICAgICAgeyAiaWdub3Jlc1ZpZXdwb3J0U2NhbGVMaW1pdHMiLCBLZXlU
eXBlOjpCb29sIH0sCi0gICAgICAgIHsgInVzZUNoYXJhY3RlclNlbGVjdGlvbkdyYW51bGFyaXR5
IiwgS2V5VHlwZTo6Qm9vbCB9LAotICAgICAgICB7ICJlbmFibGVBdHRhY2htZW50RWxlbWVudCIs
IEtleVR5cGU6OkJvb2wgfSwKLSAgICAgICAgeyAiZW5hYmxlSW50ZXJzZWN0aW9uT2JzZXJ2ZXIi
LCBLZXlUeXBlOjpCb29sIH0sCi0gICAgICAgIHsgInVzZUVwaGVtZXJhbFNlc3Npb24iLCBLZXlU
eXBlOjpCb29sIH0sCi0gICAgICAgIHsgImVuYWJsZU1lbnVJdGVtRWxlbWVudCIsIEtleVR5cGU6
OkJvb2wgfSwKLSAgICAgICAgeyAiZW5hYmxlS2V5Z2VuRWxlbWVudCIsIEtleVR5cGU6OkJvb2wg
fSwKLSAgICAgICAgeyAiZW5hYmxlTW9kZXJuTWVkaWFDb250cm9scyIsIEtleVR5cGU6OkJvb2wg
fSwKLSAgICAgICAgeyAiZW5hYmxlUG9pbnRlckxvY2siLCBLZXlUeXBlOjpCb29sIH0sCi0gICAg
ICAgIHsgImVuYWJsZVdlYkF1dGhlbnRpY2F0aW9uIiwgS2V5VHlwZTo6Qm9vbCB9LAotICAgICAg
ICB7ICJlbmFibGVXZWJBdXRoZW50aWNhdGlvbkxvY2FsQXV0aGVudGljYXRvciIsIEtleVR5cGU6
OkJvb2wgfSwKLSAgICAgICAgeyAiZW5hYmxlSW5zcGVjdG9yQWRkaXRpb25zIiwgS2V5VHlwZTo6
Qm9vbCB9LAotICAgICAgICB7ICJzaG91bGRTaG93VG91Y2hlcyIsIEtleVR5cGU6OkJvb2wgfSwK
LSAgICAgICAgeyAiZHVtcEpTQ29uc29sZUxvZ0luU3RkRXJyIiwgS2V5VHlwZTo6Qm9vbCB9LAog
ICAgICAgICB7ICJhbGxvd0Nyb3NzT3JpZ2luU3VicmVzb3VyY2VzVG9Bc2tGb3JDcmVkZW50aWFs
cyIsIEtleVR5cGU6OkJvb2wgfSwKKyAgICAgICAgeyAiYWxsb3dUb3BOYXZpZ2F0aW9uVG9EYXRh
VVJMcyIsIEtleVR5cGU6OkJvb2wgfSwKKyAgICAgICAgeyAiYWxsb3dzTGlua1ByZXZpZXciLCBL
ZXlUeXBlOjpCb29sIH0sCiAgICAgICAgIHsgImRvbVBhc3RlQWxsb3dlZCIsIEtleVR5cGU6OkJv
b2wgfSwKLSAgICAgICAgeyAiZW5hYmxlQ29sb3JGaWx0ZXIiLCBLZXlUeXBlOjpCb29sIH0sCi0g
ICAgICAgIHsgInB1bmNoT3V0V2hpdGVCYWNrZ3JvdW5kc0luRGFya01vZGUiLCBLZXlUeXBlOjpC
b29sIH0sCi0gICAgICAgIHsgInJ1blNpbmdseSIsIEtleVR5cGU6OkJvb2wgfSwKLSAgICAgICAg
eyAiY2hlY2tGb3JXb3JsZExlYWtzIiwgS2V5VHlwZTo6Qm9vbCB9LAotICAgICAgICB7ICJzaG91
bGRJZ25vcmVNZXRhVmlld3BvcnQiLCBLZXlUeXBlOjpCb29sIH0sCi0gICAgICAgIHsgInNwZWxs
Q2hlY2tpbmdEb3RzIiwgS2V5VHlwZTo6Qm9vbCB9LAotICAgICAgICB7ICJlbmFibGVTZXJ2aWNl
Q29udHJvbHMiLCBLZXlUeXBlOjpCb29sIH0sCisgICAgICAgIHsgImR1bXBKU0NvbnNvbGVMb2dJ
blN0ZEVyciIsIEtleVR5cGU6OkJvb2wgfSwKICAgICAgICAgeyAiZWRpdGFibGUiLCBLZXlUeXBl
OjpCb29sIH0sCi0gICAgICAgIHsgInNob3VsZEhhbmRsZVJ1bk9wZW5QYW5lbCIsIEtleVR5cGU6
OkJvb2wgfSwKLSAgICAgICAgeyAic2hvdWxkUHJlc2VudFBvcG92ZXJzIiwgS2V5VHlwZTo6Qm9v
bCB9LAogICAgICAgICB7ICJlbmFibGVBcHBOYXAiLCBLZXlUeXBlOjpCb29sIH0sCisgICAgICAg
IHsgImVuYWJsZUF0dGFjaG1lbnRFbGVtZW50IiwgS2V5VHlwZTo6Qm9vbCB9LAogICAgICAgICB7
ICJlbmFibGVCYWNrRm9yd2FyZENhY2hlIiwgS2V5VHlwZTo6Qm9vbCB9LAotICAgICAgICB7ICJh
bGxvd3NMaW5rUHJldmlldyIsIEtleVR5cGU6OkJvb2wgfSwKLSAgICAgICAgeyAiZW5hYmxlQ2Fw
dHVyZVZpZGVvSW5VSVByb2Nlc3MiLCBLZXlUeXBlOjpCb29sIH0sCi0gICAgICAgIHsgImVuYWJs
ZUNhcHR1cmVWaWRlb0luR1BVUHJvY2VzcyIsIEtleVR5cGU6OkJvb2wgfSwKLSAgICAgICAgeyAi
ZW5hYmxlQ2FwdHVyZUF1ZGlvSW5VSVByb2Nlc3MiLCBLZXlUeXBlOjpCb29sIH0sCiAgICAgICAg
IHsgImVuYWJsZUNhcHR1cmVBdWRpb0luR1BVUHJvY2VzcyIsIEtleVR5cGU6OkJvb2wgfSwKLSAg
ICAgICAgeyAiYWxsb3dUb3BOYXZpZ2F0aW9uVG9EYXRhVVJMcyIsIEtleVR5cGU6OkJvb2wgfSwK
KyAgICAgICAgeyAiZW5hYmxlQ2FwdHVyZUF1ZGlvSW5VSVByb2Nlc3MiLCBLZXlUeXBlOjpCb29s
IH0sCisgICAgICAgIHsgImVuYWJsZUNhcHR1cmVWaWRlb0luR1BVUHJvY2VzcyIsIEtleVR5cGU6
OkJvb2wgfSwKKyAgICAgICAgeyAiZW5hYmxlQ2FwdHVyZVZpZGVvSW5VSVByb2Nlc3MiLCBLZXlU
eXBlOjpCb29sIH0sCisgICAgICAgIHsgImVuYWJsZUNvbG9yRmlsdGVyIiwgS2V5VHlwZTo6Qm9v
bCB9LAogICAgICAgICB7ICJlbmFibGVJbkFwcEJyb3dzZXJQcml2YWN5IiwgS2V5VHlwZTo6Qm9v
bCB9LAotICAgICAgICB7ICJpc0FwcEJvdW5kV2ViVmlldyIsIEtleVR5cGU6OkJvb2wgfSwKLSAg
ICAgICAgeyAiaWdub3JlU3luY2hyb25vdXNNZXNzYWdpbmdUaW1lb3V0cyIsIEtleVR5cGU6OkJv
b2wgfSwKKyAgICAgICAgeyAiZW5hYmxlSW5zcGVjdG9yQWRkaXRpb25zIiwgS2V5VHlwZTo6Qm9v
bCB9LAorICAgICAgICB7ICJlbmFibGVLZXlnZW5FbGVtZW50IiwgS2V5VHlwZTo6Qm9vbCB9LAor
ICAgICAgICB7ICJlbmFibGVNZW51SXRlbUVsZW1lbnQiLCBLZXlUeXBlOjpCb29sIH0sCisgICAg
ICAgIHsgImVuYWJsZU1vZGVybk1lZGlhQ29udHJvbHMiLCBLZXlUeXBlOjpCb29sIH0sCiAgICAg
ICAgIHsgImVuYWJsZVByb2Nlc3NTd2FwT25OYXZpZ2F0aW9uIiwgS2V5VHlwZTo6Qm9vbCB9LAog
ICAgICAgICB7ICJlbmFibGVQcm9jZXNzU3dhcE9uV2luZG93T3BlbiIsIEtleVR5cGU6OkJvb2wg
fSwKKyAgICAgICAgeyAiZW5hYmxlU2VydmljZUNvbnRyb2xzIiwgS2V5VHlwZTo6Qm9vbCB9LAor
ICAgICAgICB7ICJlbmFibGVXZWJBdXRoZW50aWNhdGlvbiIsIEtleVR5cGU6OkJvb2wgfSwKKyAg
ICAgICAgeyAiZW5hYmxlV2ViQXV0aGVudGljYXRpb25Mb2NhbEF1dGhlbnRpY2F0b3IiLCBLZXlU
eXBlOjpCb29sIH0sCisgICAgICAgIHsgImlnbm9yZVN5bmNocm9ub3VzTWVzc2FnaW5nVGltZW91
dHMiLCBLZXlUeXBlOjpCb29sIH0sCisgICAgICAgIHsgImlnbm9yZXNWaWV3cG9ydFNjYWxlTGlt
aXRzIiwgS2V5VHlwZTo6Qm9vbCB9LAorICAgICAgICB7ICJpc0FwcEJvdW5kV2ViVmlldyIsIEtl
eVR5cGU6OkJvb2wgfSwKKyAgICAgICAgeyAibmVlZHNTaXRlU3BlY2lmaWNRdWlya3MiLCBLZXlU
eXBlOjpCb29sIH0sCisgICAgICAgIHsgInB1bmNoT3V0V2hpdGVCYWNrZ3JvdW5kc0luRGFya01v
ZGUiLCBLZXlUeXBlOjpCb29sIH0sCisgICAgICAgIHsgInJ1blNpbmdseSIsIEtleVR5cGU6OkJv
b2wgfSwKKyAgICAgICAgeyAic2hvdWxkSGFuZGxlUnVuT3BlblBhbmVsIiwgS2V5VHlwZTo6Qm9v
bCB9LAorICAgICAgICB7ICJzaG91bGRJZ25vcmVNZXRhVmlld3BvcnQiLCBLZXlUeXBlOjpCb29s
IH0sCisgICAgICAgIHsgInNob3VsZFByZXNlbnRQb3BvdmVycyIsIEtleVR5cGU6OkJvb2wgfSwK
KyAgICAgICAgeyAic2hvdWxkU2hvd1RvdWNoZXMiLCBLZXlUeXBlOjpCb29sIH0sCisgICAgICAg
IHsgInNob3VsZFNob3dXZWJWaWV3IiwgS2V5VHlwZTo6Qm9vbCB9LAorICAgICAgICB7ICJzcGVs
bENoZWNraW5nRG90cyIsIEtleVR5cGU6OkJvb2wgfSwKKyAgICAgICAgeyAidXNlQWNjZWxlcmF0
ZWREcmF3aW5nIiwgS2V5VHlwZTo6Qm9vbCB9LAorICAgICAgICB7ICJ1c2VDaGFyYWN0ZXJTZWxl
Y3Rpb25HcmFudWxhcml0eSIsIEtleVR5cGU6OkJvb2wgfSwKKyAgICAgICAgeyAidXNlRGF0YURl
dGVjdGlvbiIsIEtleVR5cGU6OkJvb2wgfSwKKyAgICAgICAgeyAidXNlRXBoZW1lcmFsU2Vzc2lv
biIsIEtleVR5cGU6OkJvb2wgfSwKKyAgICAgICAgeyAidXNlRmxleGlibGVWaWV3cG9ydCIsIEtl
eVR5cGU6OkJvb2wgfSwKKyAgICAgICAgeyAidXNlTW9ja1Njcm9sbGJhcnMiLCBLZXlUeXBlOjpC
b29sIH0sCisgICAgICAgIHsgInVzZVJlbW90ZUxheWVyVHJlZSIsIEtleVR5cGU6OkJvb2wgfSwK
ICAgICAgICAgeyAidXNlU2VydmljZVdvcmtlclNob3J0VGltZW91dCIsIEtleVR5cGU6OkJvb2wg
fSwKKyAgICAgICAgeyAidXNlVGhyZWFkZWRTY3JvbGxpbmciLCBLZXlUeXBlOjpCb29sIH0sCiAg
ICAgCiAgICAgICAgIHsgImNvbnRlbnRJbnNldC50b3AiLCBLZXlUeXBlOjpEb3VibGUgfSwKICAg
ICAgICAgeyAiZGV2aWNlU2NhbGVGYWN0b3IiLCBLZXlUeXBlOjpEb3VibGUgfSwKLSAgICAgICAg
eyAidmlld1dpZHRoIiwgS2V5VHlwZTo6RG91YmxlIH0sCiAgICAgICAgIHsgInZpZXdIZWlnaHQi
LCBLZXlUeXBlOjpEb3VibGUgfSwKKyAgICAgICAgeyAidmlld1dpZHRoIiwgS2V5VHlwZTo6RG91
YmxlIH0sCiAKLSAgICAgICAgeyAianNjT3B0aW9ucyIsIEtleVR5cGU6OlN0cmluZyB9LAogICAg
ICAgICB7ICJhZGRpdGlvbmFsU3VwcG9ydGVkSW1hZ2VUeXBlcyIsIEtleVR5cGU6OlN0cmluZyB9
LAotICAgICAgICB7ICJjb250ZW50TW9kZSIsIEtleVR5cGU6OlN0cmluZyB9LAogICAgICAgICB7
ICJhcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIiLCBLZXlUeXBlOjpTdHJpbmcgfSwKICAgICAg
ICAgeyAiYXBwbGljYXRpb25NYW5pZmVzdCIsIEtleVR5cGU6OlN0cmluZ1JlbGF0aXZlUGF0aCB9
LAorICAgICAgICB7ICJjb250ZW50TW9kZSIsIEtleVR5cGU6OlN0cmluZyB9LAorICAgICAgICB7
ICJqc2NPcHRpb25zIiwgS2V5VHlwZTo6U3RyaW5nIH0sCiAgICAgICAgIHsgInN0YW5kYWxvbmVX
ZWJBcHBsaWNhdGlvblVSTCIsIEtleVR5cGU6OlN0cmluZ1VSTCB9LAogCiAgICAgICAgIHsgImxh
bmd1YWdlIiwgS2V5VHlwZTo6U3RyaW5nVmVjdG9yIH0sCkBAIC00ODYsNiArNDgwLDQyIEBAIGJv
b2wgVGVzdE9wdGlvbnM6Omhhc1NhbWVJbml0aWFsaXphdGlvbk8KICAgICByZXR1cm4gdHJ1ZTsK
IH0KIAorI2RlZmluZSBGT1JfRUFDSF9CT09MX1dLX1BSRUZFUkVOQ0UobWFjcm8pIFwKKyAgICBt
YWNybyhlbmFibGVDYXB0dXJlVmlkZW9JblVJUHJvY2VzcywgQ2FwdHVyZVZpZGVvSW5VSVByb2Nl
c3NFbmFibGVkKSBcCisgICAgbWFjcm8oZW5hYmxlQ2FwdHVyZVZpZGVvSW5HUFVQcm9jZXNzLCBD
YXB0dXJlVmlkZW9JbkdQVVByb2Nlc3NFbmFibGVkKSBcCisgICAgbWFjcm8oZW5hYmxlQ2FwdHVy
ZUF1ZGlvSW5VSVByb2Nlc3MsIENhcHR1cmVBdWRpb0luVUlQcm9jZXNzRW5hYmxlZCkgXAorICAg
IG1hY3JvKGVuYWJsZUNhcHR1cmVBdWRpb0luR1BVUHJvY2VzcywgQ2FwdHVyZUF1ZGlvSW5HUFVQ
cm9jZXNzRW5hYmxlZCkgXAorICAgIG1hY3JvKHVzZUFjY2VsZXJhdGVkRHJhd2luZywgQWNjZWxl
cmF0ZWREcmF3aW5nRW5hYmxlZCkgXAorICAgIG1hY3JvKHVzZU1vY2tTY3JvbGxiYXJzLCBNb2Nr
U2Nyb2xsYmFyc0VuYWJsZWQpIFwKKyAgICBtYWNybyhuZWVkc1NpdGVTcGVjaWZpY1F1aXJrcywg
TmVlZHNTaXRlU3BlY2lmaWNRdWlya3MpIFwKKyAgICBtYWNybyhlbmFibGVBdHRhY2htZW50RWxl
bWVudCwgQXR0YWNobWVudEVsZW1lbnRFbmFibGVkKSBcCisgICAgbWFjcm8oZW5hYmxlTWVudUl0
ZW1FbGVtZW50LCBNZW51SXRlbUVsZW1lbnRFbmFibGVkKSBcCisgICAgbWFjcm8oZW5hYmxlS2V5
Z2VuRWxlbWVudCwgS2V5Z2VuRWxlbWVudEVuYWJsZWQpIFwKKyAgICBtYWNybyhlbmFibGVNb2Rl
cm5NZWRpYUNvbnRyb2xzLCBNb2Rlcm5NZWRpYUNvbnRyb2xzRW5hYmxlZCkgXAorICAgIG1hY3Jv
KGVuYWJsZVdlYkF1dGhlbnRpY2F0aW9uLCBXZWJBdXRoZW50aWNhdGlvbkVuYWJsZWQpIFwKKyAg
ICBtYWNybyhlbmFibGVXZWJBdXRoZW50aWNhdGlvbkxvY2FsQXV0aGVudGljYXRvciwgV2ViQXV0
aGVudGljYXRpb25Mb2NhbEF1dGhlbnRpY2F0b3JFbmFibGVkKSBcCisgICAgbWFjcm8oZW5hYmxl
SW5zcGVjdG9yQWRkaXRpb25zLCBJbnNwZWN0b3JBZGRpdGlvbnNFbmFibGVkKSBcCisgICAgbWFj
cm8oYWxsb3dDcm9zc09yaWdpblN1YnJlc291cmNlc1RvQXNrRm9yQ3JlZGVudGlhbHMsIEFsbG93
Q3Jvc3NPcmlnaW5TdWJyZXNvdXJjZXNUb0Fza0ZvckNyZWRlbnRpYWxzKSBcCisgICAgbWFjcm8o
ZG9tUGFzdGVBbGxvd2VkLCBET01QYXN0ZUFsbG93ZWQpIFwKKyAgICBtYWNybyhlbmFibGVDb2xv
ckZpbHRlciwgQ29sb3JGaWx0ZXJFbmFibGVkKSBcCisgICAgbWFjcm8ocHVuY2hPdXRXaGl0ZUJh
Y2tncm91bmRzSW5EYXJrTW9kZSwgUHVuY2hPdXRXaGl0ZUJhY2tncm91bmRzSW5EYXJrTW9kZSkg
XAorICAgIG1hY3JvKHNob3VsZElnbm9yZU1ldGFWaWV3cG9ydCwgU2hvdWxkSWdub3JlTWV0YVZp
ZXdwb3J0KSBcCisgICAgbWFjcm8oZW5hYmxlQXBwTmFwLCBQYWdlVmlzaWJpbGl0eUJhc2VkUHJv
Y2Vzc1N1cHByZXNzaW9uRW5hYmxlZCkgXAorICAgIG1hY3JvKGVuYWJsZUJhY2tGb3J3YXJkQ2Fj
aGUsIFVzZXNCYWNrRm9yd2FyZENhY2hlKSBcCisgICAgbWFjcm8oZW5hYmxlU2VydmljZUNvbnRy
b2xzLCBTZXJ2aWNlQ29udHJvbHNFbmFibGVkKSBcCisgICAgbWFjcm8oYWxsb3dUb3BOYXZpZ2F0
aW9uVG9EYXRhVVJMcywgQWxsb3dUb3BOYXZpZ2F0aW9uVG9EYXRhVVJMcykgXAorICAgIG1hY3Jv
KHVzZVNlcnZpY2VXb3JrZXJTaG9ydFRpbWVvdXQsIFNob3VsZFVzZVNlcnZpY2VXb3JrZXJTaG9y
dFRpbWVvdXQpIFwKK1wKKworc3RkOjp2ZWN0b3I8c3RkOjpwYWlyPHN0ZDo6c3RyaW5nLCBib29s
Pj4gVGVzdE9wdGlvbnM6OmJvb2xXS1ByZWZlcmVuY2VzKCkgY29uc3QKK3sKKyAgICByZXR1cm4g
eworI2RlZmluZSBBRERfVkFMVUUodGVzdE9wdGlvbnNLZXksIHByZWZlcmVuY2VzS2V5KSB7ICNw
cmVmZXJlbmNlc0tleSwgYm9vbEZlYXR1cmVWYWx1ZSgjdGVzdE9wdGlvbnNLZXkpIH0sCitGT1Jf
RUFDSF9CT09MX1dLX1BSRUZFUkVOQ0UoQUREX1ZBTFVFKQorI3VuZGVmIEFERF9WQUxVRQorICAg
IH07Cit9CisKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CiBUIGZlYXR1cmVWYWx1ZShzdGQ6OnN0cmlu
ZyBrZXksIGNvbnN0IHN0ZDo6dW5vcmRlcmVkX21hcDxzdGQ6OnN0cmluZywgVD4mIG1hcCwgY29u
c3Qgc3RkOjp1bm9yZGVyZWRfbWFwPHN0ZDo6c3RyaW5nLCBUPiYgZGVmYXVsdHNNYXApCiB7Cklu
ZGV4OiBUb29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RPcHRpb25zLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0T3B0aW9ucy5oCShyZXZpc2lvbiAyNjgzMjUpCisr
KyBUb29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RPcHRpb25zLmgJKHdvcmtpbmcgY29weSkKQEAg
LTg3LDY5ICs4Nyw0OCBAQCBwdWJsaWM6CiAgICAgICAgIH07CiAgICAgfQogCi0gICAgYm9vbCB1
c2VUaHJlYWRlZFNjcm9sbGluZygpIGNvbnN0IHsgcmV0dXJuIGJvb2xGZWF0dXJlVmFsdWUoInVz
ZVRocmVhZGVkU2Nyb2xsaW5nIik7IH0KLSAgICBib29sIHVzZUFjY2VsZXJhdGVkRHJhd2luZygp
IGNvbnN0IHsgcmV0dXJuIGJvb2xGZWF0dXJlVmFsdWUoInVzZUFjY2VsZXJhdGVkRHJhd2luZyIp
OyB9Ci0gICAgYm9vbCB1c2VSZW1vdGVMYXllclRyZWUoKSBjb25zdCB7IHJldHVybiBib29sRmVh
dHVyZVZhbHVlKCJ1c2VSZW1vdGVMYXllclRyZWUiKTsgfQotICAgIGJvb2wgc2hvdWxkU2hvd1dl
YlZpZXcoKSBjb25zdCB7IHJldHVybiBib29sRmVhdHVyZVZhbHVlKCJzaG91bGRTaG93V2ViVmll
dyIpOyB9Ci0gICAgYm9vbCB1c2VGbGV4aWJsZVZpZXdwb3J0KCkgY29uc3QgeyByZXR1cm4gYm9v
bEZlYXR1cmVWYWx1ZSgidXNlRmxleGlibGVWaWV3cG9ydCIpOyB9Ci0gICAgYm9vbCB1c2VEYXRh
RGV0ZWN0aW9uKCkgY29uc3QgeyByZXR1cm4gYm9vbEZlYXR1cmVWYWx1ZSgidXNlRGF0YURldGVj
dGlvbiIpOyB9Ci0gICAgYm9vbCB1c2VNb2NrU2Nyb2xsYmFycygpIGNvbnN0IHsgcmV0dXJuIGJv
b2xGZWF0dXJlVmFsdWUoInVzZU1vY2tTY3JvbGxiYXJzIik7IH0KLSAgICBib29sIG5lZWRzU2l0
ZVNwZWNpZmljUXVpcmtzKCkgY29uc3QgeyByZXR1cm4gYm9vbEZlYXR1cmVWYWx1ZSgibmVlZHNT
aXRlU3BlY2lmaWNRdWlya3MiKTsgfQotICAgIGJvb2wgaWdub3Jlc1ZpZXdwb3J0U2NhbGVMaW1p
dHMoKSBjb25zdCB7IHJldHVybiBib29sRmVhdHVyZVZhbHVlKCJpZ25vcmVzVmlld3BvcnRTY2Fs
ZUxpbWl0cyIpOyB9Ci0gICAgYm9vbCB1c2VDaGFyYWN0ZXJTZWxlY3Rpb25HcmFudWxhcml0eSgp
IGNvbnN0IHsgcmV0dXJuIGJvb2xGZWF0dXJlVmFsdWUoInVzZUNoYXJhY3RlclNlbGVjdGlvbkdy
YW51bGFyaXR5Iik7IH0KLSAgICBib29sIGVuYWJsZUF0dGFjaG1lbnRFbGVtZW50KCkgY29uc3Qg
eyByZXR1cm4gYm9vbEZlYXR1cmVWYWx1ZSgiZW5hYmxlQXR0YWNobWVudEVsZW1lbnQiKTsgfQot
ICAgIGJvb2wgZW5hYmxlSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoKSBjb25zdCB7IHJldHVybiBib29s
RmVhdHVyZVZhbHVlKCJlbmFibGVJbnRlcnNlY3Rpb25PYnNlcnZlciIpOyB9Ci0gICAgYm9vbCB1
c2VFcGhlbWVyYWxTZXNzaW9uKCkgY29uc3QgeyByZXR1cm4gYm9vbEZlYXR1cmVWYWx1ZSgidXNl
RXBoZW1lcmFsU2Vzc2lvbiIpOyB9Ci0gICAgYm9vbCBlbmFibGVNZW51SXRlbUVsZW1lbnQoKSBj
b25zdCB7IHJldHVybiBib29sRmVhdHVyZVZhbHVlKCJlbmFibGVNZW51SXRlbUVsZW1lbnQiKTsg
fQotICAgIGJvb2wgZW5hYmxlS2V5Z2VuRWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIGJvb2xGZWF0
dXJlVmFsdWUoImVuYWJsZUtleWdlbkVsZW1lbnQiKTsgfQotICAgIGJvb2wgZW5hYmxlTW9kZXJu
TWVkaWFDb250cm9scygpIGNvbnN0IHsgcmV0dXJuIGJvb2xGZWF0dXJlVmFsdWUoImVuYWJsZU1v
ZGVybk1lZGlhQ29udHJvbHMiKTsgfQotICAgIGJvb2wgZW5hYmxlUG9pbnRlckxvY2soKSBjb25z
dCB7IHJldHVybiBib29sRmVhdHVyZVZhbHVlKCJlbmFibGVQb2ludGVyTG9jayIpOyB9Ci0gICAg
Ym9vbCBlbmFibGVXZWJBdXRoZW50aWNhdGlvbigpIGNvbnN0IHsgcmV0dXJuIGJvb2xGZWF0dXJl
VmFsdWUoImVuYWJsZVdlYkF1dGhlbnRpY2F0aW9uIik7IH0KLSAgICBib29sIGVuYWJsZVdlYkF1
dGhlbnRpY2F0aW9uTG9jYWxBdXRoZW50aWNhdG9yKCkgY29uc3QgeyByZXR1cm4gYm9vbEZlYXR1
cmVWYWx1ZSgiZW5hYmxlV2ViQXV0aGVudGljYXRpb25Mb2NhbEF1dGhlbnRpY2F0b3IiKTsgfQot
ICAgIGJvb2wgZW5hYmxlSW5zcGVjdG9yQWRkaXRpb25zKCkgY29uc3QgeyByZXR1cm4gYm9vbEZl
YXR1cmVWYWx1ZSgiZW5hYmxlSW5zcGVjdG9yQWRkaXRpb25zIik7IH0KLSAgICBib29sIHNob3Vs
ZFNob3dUb3VjaGVzKCkgY29uc3QgeyByZXR1cm4gYm9vbEZlYXR1cmVWYWx1ZSgic2hvdWxkU2hv
d1RvdWNoZXMiKTsgfQorICAgIGJvb2wgYWxsb3dzTGlua1ByZXZpZXcoKSBjb25zdCB7IHJldHVy
biBib29sRmVhdHVyZVZhbHVlKCJhbGxvd3NMaW5rUHJldmlldyIpOyB9CiAgICAgYm9vbCBkdW1w
SlNDb25zb2xlTG9nSW5TdGRFcnIoKSBjb25zdCB7IHJldHVybiBib29sRmVhdHVyZVZhbHVlKCJk
dW1wSlNDb25zb2xlTG9nSW5TdGRFcnIiKTsgfQotICAgIGJvb2wgYWxsb3dDcm9zc09yaWdpblN1
YnJlc291cmNlc1RvQXNrRm9yQ3JlZGVudGlhbHMoKSBjb25zdCB7IHJldHVybiBib29sRmVhdHVy
ZVZhbHVlKCJhbGxvd0Nyb3NzT3JpZ2luU3VicmVzb3VyY2VzVG9Bc2tGb3JDcmVkZW50aWFscyIp
OyB9Ci0gICAgYm9vbCBkb21QYXN0ZUFsbG93ZWQoKSBjb25zdCB7IHJldHVybiBib29sRmVhdHVy
ZVZhbHVlKCJkb21QYXN0ZUFsbG93ZWQiKTsgfQotICAgIGJvb2wgZW5hYmxlQ29sb3JGaWx0ZXIo
KSBjb25zdCB7IHJldHVybiBib29sRmVhdHVyZVZhbHVlKCJlbmFibGVDb2xvckZpbHRlciIpOyB9
Ci0gICAgYm9vbCBwdW5jaE91dFdoaXRlQmFja2dyb3VuZHNJbkRhcmtNb2RlKCkgY29uc3QgeyBy
ZXR1cm4gYm9vbEZlYXR1cmVWYWx1ZSgicHVuY2hPdXRXaGl0ZUJhY2tncm91bmRzSW5EYXJrTW9k
ZSIpOyB9Ci0gICAgYm9vbCBydW5TaW5nbHkoKSBjb25zdCB7IHJldHVybiBib29sRmVhdHVyZVZh
bHVlKCJydW5TaW5nbHkiKTsgfQotICAgIGJvb2wgY2hlY2tGb3JXb3JsZExlYWtzKCkgY29uc3Qg
eyByZXR1cm4gYm9vbEZlYXR1cmVWYWx1ZSgiY2hlY2tGb3JXb3JsZExlYWtzIik7IH0KLSAgICBi
b29sIHNob3VsZElnbm9yZU1ldGFWaWV3cG9ydCgpIGNvbnN0IHsgcmV0dXJuIGJvb2xGZWF0dXJl
VmFsdWUoInNob3VsZElnbm9yZU1ldGFWaWV3cG9ydCIpOyB9Ci0gICAgYm9vbCBzaG91bGRTaG93
U3BlbGxDaGVja2luZ0RvdHMoKSBjb25zdCB7IHJldHVybiBib29sRmVhdHVyZVZhbHVlKCJzcGVs
bENoZWNraW5nRG90cyIpOyB9Ci0gICAgYm9vbCBlbmFibGVTZXJ2aWNlQ29udHJvbHMoKSBjb25z
dCB7IHJldHVybiBib29sRmVhdHVyZVZhbHVlKCJlbmFibGVTZXJ2aWNlQ29udHJvbHMiKTsgfQog
ICAgIGJvb2wgZWRpdGFibGUoKSBjb25zdCB7IHJldHVybiBib29sRmVhdHVyZVZhbHVlKCJlZGl0
YWJsZSIpOyB9Ci0gICAgYm9vbCBzaG91bGRIYW5kbGVSdW5PcGVuUGFuZWwoKSBjb25zdCB7IHJl
dHVybiBib29sRmVhdHVyZVZhbHVlKCJzaG91bGRIYW5kbGVSdW5PcGVuUGFuZWwiKTsgfQotICAg
IGJvb2wgc2hvdWxkUHJlc2VudFBvcG92ZXJzKCkgY29uc3QgeyByZXR1cm4gYm9vbEZlYXR1cmVW
YWx1ZSgic2hvdWxkUHJlc2VudFBvcG92ZXJzIik7IH0KLSAgICBib29sIGVuYWJsZUFwcE5hcCgp
IGNvbnN0IHsgcmV0dXJuIGJvb2xGZWF0dXJlVmFsdWUoImVuYWJsZUFwcE5hcCIpOyB9Ci0gICAg
Ym9vbCBlbmFibGVCYWNrRm9yd2FyZENhY2hlKCkgY29uc3QgeyByZXR1cm4gYm9vbEZlYXR1cmVW
YWx1ZSgiZW5hYmxlQmFja0ZvcndhcmRDYWNoZSIpOyB9Ci0gICAgYm9vbCBhbGxvd3NMaW5rUHJl
dmlldygpIGNvbnN0IHsgcmV0dXJuIGJvb2xGZWF0dXJlVmFsdWUoImFsbG93c0xpbmtQcmV2aWV3
Iik7IH0KLSAgICBib29sIGVuYWJsZUNhcHR1cmVWaWRlb0luVUlQcm9jZXNzKCkgY29uc3QgeyBy
ZXR1cm4gYm9vbEZlYXR1cmVWYWx1ZSgiZW5hYmxlQ2FwdHVyZVZpZGVvSW5VSVByb2Nlc3MiKTsg
fQotICAgIGJvb2wgZW5hYmxlQ2FwdHVyZVZpZGVvSW5HUFVQcm9jZXNzKCkgY29uc3QgeyByZXR1
cm4gYm9vbEZlYXR1cmVWYWx1ZSgiZW5hYmxlQ2FwdHVyZVZpZGVvSW5HUFVQcm9jZXNzIik7IH0K
LSAgICBib29sIGVuYWJsZUNhcHR1cmVBdWRpb0luVUlQcm9jZXNzKCkgY29uc3QgeyByZXR1cm4g
Ym9vbEZlYXR1cmVWYWx1ZSgiZW5hYmxlQ2FwdHVyZUF1ZGlvSW5VSVByb2Nlc3MiKTsgfQotICAg
IGJvb2wgZW5hYmxlQ2FwdHVyZUF1ZGlvSW5HUFVQcm9jZXNzKCkgY29uc3QgeyByZXR1cm4gYm9v
bEZlYXR1cmVWYWx1ZSgiZW5hYmxlQ2FwdHVyZUF1ZGlvSW5HUFVQcm9jZXNzIik7IH0KLSAgICBi
b29sIGFsbG93VG9wTmF2aWdhdGlvblRvRGF0YVVSTHMoKSBjb25zdCB7IHJldHVybiBib29sRmVh
dHVyZVZhbHVlKCJhbGxvd1RvcE5hdmlnYXRpb25Ub0RhdGFVUkxzIik7IH0KKyAgICAvLyBGSVhN
RTogZW5hYmxlQXR0YWNobWVudEVsZW1lbnQoKSBpcyBzdGlsbCB1c2VkIGR1ZSB0byBzb21lIFdl
YktpdCBjb2RlIHRoYXQgcmVsaWVzIG9uIHRoZSBjb25maWd1cmF0aW9uIHZhbHVlIG9mIF9lbmFi
bGVBdHRhY2htZW50RWxlbWVudC4KKyAgICBib29sIGVuYWJsZUF0dGFjaG1lbnRFbGVtZW50KCkg
Y29uc3QgeyByZXR1cm4gYm9vbEZlYXR1cmVWYWx1ZSgiZW5hYmxlQXR0YWNobWVudEVsZW1lbnQi
KTsgfQogICAgIGJvb2wgZW5hYmxlSW5BcHBCcm93c2VyUHJpdmFjeSgpIGNvbnN0IHsgcmV0dXJu
IGJvb2xGZWF0dXJlVmFsdWUoImVuYWJsZUluQXBwQnJvd3NlclByaXZhY3kiKTsgfQotICAgIGJv
b2wgaXNBcHBCb3VuZFdlYlZpZXcoKSBjb25zdCB7IHJldHVybiBib29sRmVhdHVyZVZhbHVlKCJp
c0FwcEJvdW5kV2ViVmlldyIpOyB9Ci0gICAgYm9vbCBpZ25vcmVTeW5jaHJvbm91c01lc3NhZ2lu
Z1RpbWVvdXRzKCkgY29uc3QgeyByZXR1cm4gYm9vbEZlYXR1cmVWYWx1ZSgiaWdub3JlU3luY2hy
b25vdXNNZXNzYWdpbmdUaW1lb3V0cyIpOyB9CiAgICAgYm9vbCBlbmFibGVQcm9jZXNzU3dhcE9u
TmF2aWdhdGlvbigpIGNvbnN0IHsgcmV0dXJuIGJvb2xGZWF0dXJlVmFsdWUoImVuYWJsZVByb2Nl
c3NTd2FwT25OYXZpZ2F0aW9uIik7IH0KICAgICBib29sIGVuYWJsZVByb2Nlc3NTd2FwT25XaW5k
b3dPcGVuKCkgY29uc3QgeyByZXR1cm4gYm9vbEZlYXR1cmVWYWx1ZSgiZW5hYmxlUHJvY2Vzc1N3
YXBPbldpbmRvd09wZW4iKTsgfQorICAgIGJvb2wgaWdub3JlU3luY2hyb25vdXNNZXNzYWdpbmdU
aW1lb3V0cygpIGNvbnN0IHsgcmV0dXJuIGJvb2xGZWF0dXJlVmFsdWUoImlnbm9yZVN5bmNocm9u
b3VzTWVzc2FnaW5nVGltZW91dHMiKTsgfQorICAgIGJvb2wgaWdub3Jlc1ZpZXdwb3J0U2NhbGVM
aW1pdHMoKSBjb25zdCB7IHJldHVybiBib29sRmVhdHVyZVZhbHVlKCJpZ25vcmVzVmlld3BvcnRT
Y2FsZUxpbWl0cyIpOyB9CisgICAgYm9vbCBpc0FwcEJvdW5kV2ViVmlldygpIGNvbnN0IHsgcmV0
dXJuIGJvb2xGZWF0dXJlVmFsdWUoImlzQXBwQm91bmRXZWJWaWV3Iik7IH0KKyAgICBib29sIHB1
bmNoT3V0V2hpdGVCYWNrZ3JvdW5kc0luRGFya01vZGUoKSBjb25zdCB7IHJldHVybiBib29sRmVh
dHVyZVZhbHVlKCJwdW5jaE91dFdoaXRlQmFja2dyb3VuZHNJbkRhcmtNb2RlIik7IH0KKyAgICBi
b29sIHJ1blNpbmdseSgpIGNvbnN0IHsgcmV0dXJuIGJvb2xGZWF0dXJlVmFsdWUoInJ1blNpbmds
eSIpOyB9CisgICAgYm9vbCBzaG91bGRIYW5kbGVSdW5PcGVuUGFuZWwoKSBjb25zdCB7IHJldHVy
biBib29sRmVhdHVyZVZhbHVlKCJzaG91bGRIYW5kbGVSdW5PcGVuUGFuZWwiKTsgfQorICAgIGJv
b2wgc2hvdWxkUHJlc2VudFBvcG92ZXJzKCkgY29uc3QgeyByZXR1cm4gYm9vbEZlYXR1cmVWYWx1
ZSgic2hvdWxkUHJlc2VudFBvcG92ZXJzIik7IH0KKyAgICBib29sIHNob3VsZFNob3dTcGVsbENo
ZWNraW5nRG90cygpIGNvbnN0IHsgcmV0dXJuIGJvb2xGZWF0dXJlVmFsdWUoInNwZWxsQ2hlY2tp
bmdEb3RzIik7IH0KKyAgICBib29sIHNob3VsZFNob3dUb3VjaGVzKCkgY29uc3QgeyByZXR1cm4g
Ym9vbEZlYXR1cmVWYWx1ZSgic2hvdWxkU2hvd1RvdWNoZXMiKTsgfQorICAgIGJvb2wgc2hvdWxk
U2hvd1dlYlZpZXcoKSBjb25zdCB7IHJldHVybiBib29sRmVhdHVyZVZhbHVlKCJzaG91bGRTaG93
V2ViVmlldyIpOyB9CisgICAgYm9vbCB1c2VDaGFyYWN0ZXJTZWxlY3Rpb25HcmFudWxhcml0eSgp
IGNvbnN0IHsgcmV0dXJuIGJvb2xGZWF0dXJlVmFsdWUoInVzZUNoYXJhY3RlclNlbGVjdGlvbkdy
YW51bGFyaXR5Iik7IH0KKyAgICBib29sIHVzZURhdGFEZXRlY3Rpb24oKSBjb25zdCB7IHJldHVy
biBib29sRmVhdHVyZVZhbHVlKCJ1c2VEYXRhRGV0ZWN0aW9uIik7IH0KKyAgICBib29sIHVzZUVw
aGVtZXJhbFNlc3Npb24oKSBjb25zdCB7IHJldHVybiBib29sRmVhdHVyZVZhbHVlKCJ1c2VFcGhl
bWVyYWxTZXNzaW9uIik7IH0KKyAgICBib29sIHVzZUZsZXhpYmxlVmlld3BvcnQoKSBjb25zdCB7
IHJldHVybiBib29sRmVhdHVyZVZhbHVlKCJ1c2VGbGV4aWJsZVZpZXdwb3J0Iik7IH0KKyAgICBi
b29sIHVzZVJlbW90ZUxheWVyVHJlZSgpIGNvbnN0IHsgcmV0dXJuIGJvb2xGZWF0dXJlVmFsdWUo
InVzZVJlbW90ZUxheWVyVHJlZSIpOyB9CiAgICAgYm9vbCB1c2VTZXJ2aWNlV29ya2VyU2hvcnRU
aW1lb3V0KCkgY29uc3QgeyByZXR1cm4gYm9vbEZlYXR1cmVWYWx1ZSgidXNlU2VydmljZVdvcmtl
clNob3J0VGltZW91dCIpOyB9CisgICAgYm9vbCB1c2VUaHJlYWRlZFNjcm9sbGluZygpIGNvbnN0
IHsgcmV0dXJuIGJvb2xGZWF0dXJlVmFsdWUoInVzZVRocmVhZGVkU2Nyb2xsaW5nIik7IH0KICAg
ICBkb3VibGUgY29udGVudEluc2V0VG9wKCkgY29uc3QgeyByZXR1cm4gZG91YmxlRmVhdHVyZVZh
bHVlKCJjb250ZW50SW5zZXQudG9wIik7IH0KICAgICBkb3VibGUgZGV2aWNlU2NhbGVGYWN0b3Io
KSBjb25zdCB7IHJldHVybiBkb3VibGVGZWF0dXJlVmFsdWUoImRldmljZVNjYWxlRmFjdG9yIik7
IH0KLSAgICBkb3VibGUgdmlld1dpZHRoKCkgY29uc3QgeyByZXR1cm4gZG91YmxlRmVhdHVyZVZh
bHVlKCJ2aWV3V2lkdGgiKTsgfQogICAgIGRvdWJsZSB2aWV3SGVpZ2h0KCkgY29uc3QgeyByZXR1
cm4gZG91YmxlRmVhdHVyZVZhbHVlKCJ2aWV3SGVpZ2h0Iik7IH0KKyAgICBkb3VibGUgdmlld1dp
ZHRoKCkgY29uc3QgeyByZXR1cm4gZG91YmxlRmVhdHVyZVZhbHVlKCJ2aWV3V2lkdGgiKTsgfQor
ICAgIHN0ZDo6c3RyaW5nIGFkZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVzKCkgY29uc3QgeyBy
ZXR1cm4gc3RyaW5nRmVhdHVyZVZhbHVlKCJhZGRpdGlvbmFsU3VwcG9ydGVkSW1hZ2VUeXBlcyIp
OyB9CisgICAgc3RkOjpzdHJpbmcgYXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyKCkgY29uc3Qg
eyByZXR1cm4gc3RyaW5nRmVhdHVyZVZhbHVlKCJhcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIi
KTsgfQogICAgIHN0ZDo6c3RyaW5nIGFwcGxpY2F0aW9uTWFuaWZlc3QoKSBjb25zdCB7IHJldHVy
biBzdHJpbmdGZWF0dXJlVmFsdWUoImFwcGxpY2F0aW9uTWFuaWZlc3QiKTsgfQorICAgIHN0ZDo6
c3RyaW5nIGNvbnRlbnRNb2RlKCkgY29uc3QgeyByZXR1cm4gc3RyaW5nRmVhdHVyZVZhbHVlKCJj
b250ZW50TW9kZSIpOyB9CiAgICAgc3RkOjpzdHJpbmcganNjT3B0aW9ucygpIGNvbnN0IHsgcmV0
dXJuIHN0cmluZ0ZlYXR1cmVWYWx1ZSgianNjT3B0aW9ucyIpOyB9Ci0gICAgc3RkOjpzdHJpbmcg
YWRkaXRpb25hbFN1cHBvcnRlZEltYWdlVHlwZXMoKSBjb25zdCB7IHJldHVybiBzdHJpbmdGZWF0
dXJlVmFsdWUoImFkZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVzIik7IH0KICAgICBzdGQ6OnN0
cmluZyBzdGFuZGFsb25lV2ViQXBwbGljYXRpb25VUkwoKSBjb25zdCB7IHJldHVybiBzdHJpbmdG
ZWF0dXJlVmFsdWUoInN0YW5kYWxvbmVXZWJBcHBsaWNhdGlvblVSTCIpOyB9Ci0gICAgc3RkOjpz
dHJpbmcgY29udGVudE1vZGUoKSBjb25zdCB7IHJldHVybiBzdHJpbmdGZWF0dXJlVmFsdWUoImNv
bnRlbnRNb2RlIik7IH0KLSAgICBzdGQ6OnN0cmluZyBhcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZp
ZXIoKSBjb25zdCB7IHJldHVybiBzdHJpbmdGZWF0dXJlVmFsdWUoImFwcGxpY2F0aW9uQnVuZGxl
SWRlbnRpZmllciIpOyB9CiAgICAgc3RkOjp2ZWN0b3I8c3RkOjpzdHJpbmc+IG92ZXJyaWRlTGFu
Z3VhZ2VzKCkgY29uc3QgeyByZXR1cm4gc3RyaW5nVmVjdG9yRmVhdHVyZVZhbHVlKCJsYW5ndWFn
ZSIpOyB9CiAKICAgICBjb25zdCBzdGQ6OnVub3JkZXJlZF9tYXA8c3RkOjpzdHJpbmcsIGJvb2w+
JiBleHBlcmltZW50YWxGZWF0dXJlcygpIGNvbnN0IHsgcmV0dXJuIG1fZmVhdHVyZXMuZXhwZXJp
bWVudGFsRmVhdHVyZXM7IH0KICAgICBjb25zdCBzdGQ6OnVub3JkZXJlZF9tYXA8c3RkOjpzdHJp
bmcsIGJvb2w+JiBpbnRlcm5hbERlYnVnRmVhdHVyZXMoKSBjb25zdCB7IHJldHVybiBtX2ZlYXR1
cmVzLmludGVybmFsRGVidWdGZWF0dXJlczsgfQogCisgICAgc3RkOjp2ZWN0b3I8c3RkOjpwYWly
PHN0ZDo6c3RyaW5nLCBib29sPj4gYm9vbFdLUHJlZmVyZW5jZXMoKSBjb25zdDsKKwogICAgIGJv
b2wgaGFzU2FtZUluaXRpYWxpemF0aW9uT3B0aW9ucyhjb25zdCBUZXN0T3B0aW9ucyYpIGNvbnN0
OwogCiBwcml2YXRlOgpJbmRleDogVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0Q29u
dHJvbGxlckNvY29hLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29j
b2EvVGVzdENvbnRyb2xsZXJDb2NvYS5tbQkocmV2aXNpb24gMjY4MzI1KQorKysgVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0Q29udHJvbGxlckNvY29hLm1tCSh3b3JraW5nIGNvcHkp
CkBAIC0zMiw2ICszMiw3IEBACiAjaW1wb3J0ICJUZXN0SW52b2NhdGlvbi5oIgogI2ltcG9ydCAi
VGVzdFJ1bm5lcldLV2ViVmlldy5oIgogI2ltcG9ydCAiVGVzdFdlYnNpdGVEYXRhU3RvcmVEZWxl
Z2F0ZS5oIgorI2ltcG9ydCAiV2ViQ29yZVRlc3RTdXBwb3J0LmgiCiAjaW1wb3J0IDxGb3VuZGF0
aW9uL0ZvdW5kYXRpb24uaD4KICNpbXBvcnQgPFNlY3VyaXR5L1NlY0l0ZW0uaD4KICNpbXBvcnQg
PFdlYktpdC9XS0NvbnRleHRDb25maWd1cmF0aW9uUmVmLmg+CkBAIC02OSw3ICs3MCw2IEBAIHZv
aWQgaW5pdGlhbGl6ZVdlYlZpZXdDb25maWd1cmF0aW9uKGNvbnMKICAgICBnbG9iYWxXZWJWaWV3
Q29uZmlndXJhdGlvbi5wcm9jZXNzUG9vbCA9IChfX2JyaWRnZSBXS1Byb2Nlc3NQb29sICopY29u
dGV4dDsKICAgICBnbG9iYWxXZWJWaWV3Q29uZmlndXJhdGlvbi53ZWJzaXRlRGF0YVN0b3JlID0g
KF9fYnJpZGdlIFdLV2Vic2l0ZURhdGFTdG9yZSAqKVRlc3RDb250cm9sbGVyOjpkZWZhdWx0V2Vi
c2l0ZURhdGFTdG9yZSgpOwogICAgIGdsb2JhbFdlYlZpZXdDb25maWd1cmF0aW9uLl9hbGxvd1Vu
aXZlcnNhbEFjY2Vzc0Zyb21GaWxlVVJMcyA9IFlFUzsKLSAgICBnbG9iYWxXZWJWaWV3Q29uZmln
dXJhdGlvbi5fYWxsb3dUb3BOYXZpZ2F0aW9uVG9EYXRhVVJMcyA9IFlFUzsKICAgICBnbG9iYWxX
ZWJWaWV3Q29uZmlndXJhdGlvbi5fYXBwbGVQYXlFbmFibGVkID0gWUVTOwogCiAgICAgW2dsb2Jh
bFdlYnNpdGVEYXRhU3RvcmVEZWxlZ2F0ZUNsaWVudCByZWxlYXNlXTsKQEAgLTE1OCwyMCArMTU4
LDEzIEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtQ3JlYXRlV2ViVmkKICAgICAgICAg
W2NvcGllZENvbmZpZ3VyYXRpb24gc2V0U2VsZWN0aW9uR3JhbnVsYXJpdHk6V0tTZWxlY3Rpb25H
cmFudWxhcml0eUNoYXJhY3Rlcl07CiAgICAgaWYgKG9wdGlvbnMuaXNBcHBCb3VuZFdlYlZpZXco
KSkKICAgICAgICAgW2NvcGllZENvbmZpZ3VyYXRpb24gc2V0TGltaXRzTmF2aWdhdGlvbnNUb0Fw
cEJvdW5kRG9tYWluczpZRVNdOwotI2Vsc2UKLSAgICBbY29waWVkQ29uZmlndXJhdGlvbiBfc2V0
U2VydmljZUNvbnRyb2xzRW5hYmxlZDpvcHRpb25zLmVuYWJsZVNlcnZpY2VDb250cm9scygpXTsK
ICNlbmRpZgogCiAgICAgaWYgKG9wdGlvbnMuZW5hYmxlQXR0YWNobWVudEVsZW1lbnQoKSkKICAg
ICAgICAgW2NvcGllZENvbmZpZ3VyYXRpb24gX3NldEF0dGFjaG1lbnRFbGVtZW50RW5hYmxlZDpZ
RVNdOwogCi0gICAgaWYgKG9wdGlvbnMuZW5hYmxlQ29sb3JGaWx0ZXIoKSkKLSAgICAgICAgW2Nv
cGllZENvbmZpZ3VyYXRpb24gX3NldENvbG9yRmlsdGVyRW5hYmxlZDpZRVNdOwotCiAgICAgW2Nv
cGllZENvbmZpZ3VyYXRpb24gc2V0V2Vic2l0ZURhdGFTdG9yZTooV0tXZWJzaXRlRGF0YVN0b3Jl
ICopd2Vic2l0ZURhdGFTdG9yZSgpXTsKIAotICAgIFtjb3BpZWRDb25maWd1cmF0aW9uIF9zZXRB
bGxvd1RvcE5hdmlnYXRpb25Ub0RhdGFVUkxzOm9wdGlvbnMuYWxsb3dUb3BOYXZpZ2F0aW9uVG9E
YXRhVVJMcygpXTsKLQogICAgIGNvbmZpZ3VyZUNvbnRlbnRNb2RlKGNvcGllZENvbmZpZ3VyYXRp
b24uZ2V0KCksIG9wdGlvbnMpOwogCiAgICAgYXV0byBhcHBsaWNhdGlvbk1hbmlmZXN0ID0gb3B0
aW9ucy5hcHBsaWNhdGlvbk1hbmlmZXN0KCk7CkBAIC0yOTgsNiArMjkxLDggQEAgdm9pZCBUZXN0
Q29udHJvbGxlcjo6Y29jb2FSZXNldFN0YXRlVG9DbwogICAgIH0KIAogICAgIFtnbG9iYWxXZWJz
aXRlRGF0YVN0b3JlRGVsZWdhdGVDbGllbnQgc2V0QWxsb3dSYWlzaW5nUXVvdGE6WUVTXTsKKwor
ICAgIFdlYkNvcmVUZXN0U3VwcG9ydDo6c2V0QWRkaXRpb25hbFN1cHBvcnRlZEltYWdlVHlwZXNG
b3JUZXN0aW5nKG9wdGlvbnMuYWRkaXRpb25hbFN1cHBvcnRlZEltYWdlVHlwZXMoKS5jX3N0cigp
KTsKIH0KIAogdm9pZCBUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1XaWxsUnVuVGVzdChjb25zdCBU
ZXN0SW52b2NhdGlvbiYgdGVzdEludm9jYXRpb24pCkluZGV4OiBUb29scy9XZWJLaXRUZXN0UnVu
bmVyL2d0ay9UZXN0Q29udHJvbGxlckd0ay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9ndGsvVGVzdENvbnRyb2xsZXJHdGsuY3BwCShyZXZpc2lvbiAyNjgzMjUpCisr
KyBUb29scy9XZWJLaXRUZXN0UnVubmVyL2d0ay9UZXN0Q29udHJvbGxlckd0ay5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlICJUZXN0Q29udHJvbGxlci5oIgog
CiAjaW5jbHVkZSAiUGxhdGZvcm1XZWJWaWV3LmgiCisjaW5jbHVkZSA8V2ViS2l0L1dLVGV4dENo
ZWNrZXIuaD4KICNpbmNsdWRlIDxndGsvZ3RrLmg+CiAjaW5jbHVkZSA8d3RmL1BsYXRmb3JtLmg+
CiAjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KQEAgLTE1MCw2ICsxNTEsMTIgQEAgdm9pZCBUZXN0
Q29udHJvbGxlcjo6cGxhdGZvcm1SZXNldFByZWZlcgogICAgIG1fbWFpbldlYlZpZXctPmRpc21p
c3NBbGxQb3B1cE1lbnVzKCk7CiB9CiAKK2Jvb2wgVGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtUmVz
ZXRTdGF0ZVRvQ29uc2lzdGVudFZhbHVlcyhjb25zdCBUZXN0T3B0aW9ucyYpCit7CisgICAgV0tU
ZXh0Q2hlY2tlckNvbnRpbnVvdXNTcGVsbENoZWNraW5nRW5hYmxlZFN0YXRlQ2hhbmdlZCh0cnVl
KTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogVGVzdEZlYXR1cmVzIFRlc3RDb250cm9sbGVyOjpw
bGF0Zm9ybVNwZWNpZmljRmVhdHVyZURlZmF1bHRzRm9yVGVzdChjb25zdCBUZXN0Q29tbWFuZCYp
IGNvbnN0CiB7CiAgICAgVGVzdEZlYXR1cmVzIGZlYXR1cmVzOwpJbmRleDogVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9pb3MvVGVzdENvbnRyb2xsZXJJT1MubW0KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9pb3MvVGVzdENvbnRyb2xsZXJJT1MubW0JKHJldmlzaW9uIDI2ODMy
NSkKKysrIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvaW9zL1Rlc3RDb250cm9sbGVySU9TLm1tCSh3
b3JraW5nIGNvcHkpCkBAIC0xNDgsNyArMTQ4LDYgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6cGxh
dGZvcm1SZXNldFByZWZlcgogICAgIFdLUHJlZmVyZW5jZXNTZXRUZXh0QXV0b3NpemluZ0VuYWJs
ZWQocHJlZmVyZW5jZXMsIGZhbHNlKTsKICAgICBXS1ByZWZlcmVuY2VzU2V0VGV4dEF1dG9zaXpp
bmdVc2VzSWRlbXBvdGVudE1vZGUocHJlZmVyZW5jZXMsIGZhbHNlKTsKICAgICBXS1ByZWZlcmVu
Y2VzU2V0Q29udGVudENoYW5nZU9ic2VydmVyRW5hYmxlZChwcmVmZXJlbmNlcywgZmFsc2UpOwot
ICAgIFsoX19icmlkZ2UgV0tQcmVmZXJlbmNlcyAqKXByZWZlcmVuY2VzIF9zZXRTaG91bGRJZ25v
cmVNZXRhVmlld3BvcnQ6Tk9dOwogfQogCiBib29sIFRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybVJl
c2V0U3RhdGVUb0NvbnNpc3RlbnRWYWx1ZXMoY29uc3QgVGVzdE9wdGlvbnMmIG9wdGlvbnMpCkBA
IC0yNjksOSArMjY4LDYgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1Db25maWd1cmVW
aQogCiAgICAgVGVzdFJ1bm5lcldLV2ViVmlldyAqd2ViVmlldyA9IG1haW5XZWJWaWV3KCktPnBs
YXRmb3JtVmlldygpOwogCi0gICAgaWYgKHRlc3Qub3B0aW9ucygpLnNob3VsZElnbm9yZU1ldGFW
aWV3cG9ydCgpKQotICAgICAgICB3ZWJWaWV3LmNvbmZpZ3VyYXRpb24ucHJlZmVyZW5jZXMuX3No
b3VsZElnbm9yZU1ldGFWaWV3cG9ydCA9IFlFUzsKLQogICAgIGlmICghdGVzdC5vcHRpb25zKCku
dXNlRmxleGlibGVWaWV3cG9ydCgpKQogICAgICAgICByZXR1cm47CiAKSW5kZXg6IFRvb2xzL1dl
YktpdFRlc3RSdW5uZXIvd2luL1Rlc3RDb250cm9sbGVyV2luLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBU
b29scy9XZWJLaXRUZXN0UnVubmVyL3dpbi9UZXN0Q29udHJvbGxlcldpbi5jcHAJKHJldmlzaW9u
IDI2ODMyNSkKKysrIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvd2luL1Rlc3RDb250cm9sbGVyV2lu
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjI3LDYgKzIyNywxMSBAQCB2b2lkIFRlc3RDb250cm9s
bGVyOjpwbGF0Zm9ybVJlc2V0UHJlZmVyCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAorYm9v
bCBUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1SZXNldFN0YXRlVG9Db25zaXN0ZW50VmFsdWVzKGNv
bnN0IFRlc3RPcHRpb25zJikKK3sKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogVGVzdEZlYXR1cmVz
IFRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybVNwZWNpZmljRmVhdHVyZURlZmF1bHRzRm9yVGVzdChj
b25zdCBUZXN0Q29tbWFuZCYpIGNvbnN0CiB7CiAgICAgcmV0dXJuIHsgfTsKSW5kZXg6IFRvb2xz
L1dlYktpdFRlc3RSdW5uZXIvd3BlL1Rlc3RDb250cm9sbGVyV1BFLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBUb29scy9XZWJLaXRUZXN0UnVubmVyL3dwZS9UZXN0Q29udHJvbGxlcldQRS5jcHAJKHJldmlz
aW9uIDI2ODMyNSkKKysrIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvd3BlL1Rlc3RDb250cm9sbGVy
V1BFLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTM2LDYgKzEzNiwxMSBAQCB2b2lkIFRlc3RDb250
cm9sbGVyOjpwbGF0Zm9ybVJlc2V0UHJlZmVyCiB7CiB9CiAKK2Jvb2wgVGVzdENvbnRyb2xsZXI6
OnBsYXRmb3JtUmVzZXRTdGF0ZVRvQ29uc2lzdGVudFZhbHVlcyhjb25zdCBUZXN0T3B0aW9ucyYp
Cit7CisgICAgcmV0dXJuIHRydWU7Cit9CisKIFRlc3RGZWF0dXJlcyBUZXN0Q29udHJvbGxlcjo6
cGxhdGZvcm1TcGVjaWZpY0ZlYXR1cmVEZWZhdWx0c0ZvclRlc3QoY29uc3QgVGVzdENvbW1hbmQm
KSBjb25zdAogewogICAgIFRlc3RGZWF0dXJlcyBmZWF0dXJlczsK
</data>
<flag name="commit-queue"
          id="427201"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411078</attachid>
            <date>2020-10-11 16:29:19 -0700</date>
            <delta_ts>2020-10-11 16:31:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217582-20201011162918.patch</filename>
            <type>text/plain</type>
            <size>75675</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNjgzMjYpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMzIEBACisyMDIwLTEwLTExICBTYW0gV2Vpbmln
ICA8d2VpbmlnQGFwcGxlLmNvbT4KKworICAgICAgICBbUHJlZmVyZW5jZXNdIEludHJvZHVjZSBz
dHJpbmcgYmFzZWQgU1BJIGZvciBXS1ByZWZlcmVuY2VzIHRvIGFsbG93IHRlc3RzIHRvIGNoYW5n
ZSBpbnRlcm5hbCBiZWhhdmlvciB3aXRob3V0IGFsd2F5cyBhZGRpbmcgYWRkaXRpb25hbCBTUEkK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzU4Mgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtXSVBdCisK
KyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1pbnB1
dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0
OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogU2NyaXB0cy9QcmVm
ZXJlbmNlc1RlbXBsYXRlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbEZlYXR1cmVzLmNwcC5l
cmI6CisgICAgICAgICogU2NyaXB0cy9QcmVmZXJlbmNlc1RlbXBsYXRlcy9XZWJQcmVmZXJlbmNl
c0dldHRlclNldHRlcnMuY3BwLmVyYjogQWRkZWQuCisgICAgICAgICogU2NyaXB0cy9QcmVmZXJl
bmNlc1RlbXBsYXRlcy9XZWJQcmVmZXJlbmNlc0ludGVybmFsRGVidWdGZWF0dXJlcy5jcHAuZXJi
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcDoKKyAgICAgICAg
KFdLUHJlZmVyZW5jZXNTZXRCb29sVmFsdWVGb3JLZXkpOgorICAgICAgICAoV0tQcmVmZXJlbmNl
c1NldERvdWJsZVZhbHVlRm9yS2V5KToKKyAgICAgICAgKFdLUHJlZmVyZW5jZXNTZXRVSW50MzJW
YWx1ZUZvcktleSk6CisgICAgICAgIChXS1ByZWZlcmVuY2VzU2V0U3RyaW5nVmFsdWVGb3JLZXkp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzUmVmUHJpdmF0ZS5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcmVmZXJlbmNlcy5jcHA6CisgICAgICAgIChXZWJLaXQ6
OldlYlByZWZlcmVuY2VzOjpzZXRCb29sVmFsdWVGb3JLZXkpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQcmVmZXJlbmNlczo6c2V0RG91YmxlVmFsdWVGb3JLZXkpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQcmVmZXJlbmNlczo6c2V0VUludDMyVmFsdWVGb3JLZXkpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQcmVmZXJlbmNlczo6c2V0U3RyaW5nVmFsdWVGb3JLZXkpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJQcmVmZXJlbmNlcy5oOgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qOgorCiAyMDIwLTEwLTEwICBTYW0gV2VpbmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KIAog
ICAgICAgICBVc2UgV2ViUHJlZmVyZW5jZSBkZWZpbml0aW9ucyBmcm9tIHNoYXJlZCBjb25maWd1
cmF0aW9uIGZpbGVzIGluIFdlYkNvcmUgKFBhcnQgMSkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvQ01h
a2VMaXN0cy50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dAko
cmV2aXNpb24gMjY4MzI2KQorKysgU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dAkod29ya2lu
ZyBjb3B5KQpAQCAtNTAwLDYgKzUwMCw3IEBAIHNldChXZWJLaXRfV0VCX1BSRUZFUkVOQ0VTX1RF
TVBMQVRFUwogICAgICR7V0VCS0lUX0RJUn0vU2NyaXB0cy9QcmVmZXJlbmNlc1RlbXBsYXRlcy9X
ZWJQYWdlVXBkYXRlUHJlZmVyZW5jZXMuY3BwLmVyYgogICAgICR7V0VCS0lUX0RJUn0vU2NyaXB0
cy9QcmVmZXJlbmNlc1RlbXBsYXRlcy9XZWJQcmVmZXJlbmNlc0RlZmluaXRpb25zLmguZXJiCiAg
ICAgJHtXRUJLSVRfRElSfS9TY3JpcHRzL1ByZWZlcmVuY2VzVGVtcGxhdGVzL1dlYlByZWZlcmVu
Y2VzRXhwZXJpbWVudGFsRmVhdHVyZXMuY3BwLmVyYgorICAgICR7V0VCS0lUX0RJUn0vU2NyaXB0
cy9QcmVmZXJlbmNlc1RlbXBsYXRlcy9XZWJQcmVmZXJlbmNlc0dldHRlclNldHRlcnMuY3BwLmVy
YgogICAgICR7V0VCS0lUX0RJUn0vU2NyaXB0cy9QcmVmZXJlbmNlc1RlbXBsYXRlcy9XZWJQcmVm
ZXJlbmNlc0ludGVybmFsRGVidWdGZWF0dXJlcy5jcHAuZXJiCiAgICAgJHtXRUJLSVRfRElSfS9T
Y3JpcHRzL1ByZWZlcmVuY2VzVGVtcGxhdGVzL1dlYlByZWZlcmVuY2VzS2V5cy5jcHAuZXJiCiAg
ICAgJHtXRUJLSVRfRElSfS9TY3JpcHRzL1ByZWZlcmVuY2VzVGVtcGxhdGVzL1dlYlByZWZlcmVu
Y2VzS2V5cy5oLmVyYgpAQCAtNTE2LDkgKzUxNyw5IEBAIHNldChXZWJLaXRfV0VCX1BSRUZFUkVO
Q0VTCiBzZXRfc291cmNlX2ZpbGVzX3Byb3BlcnRpZXMoJHtXZWJLaXRfV0VCX1BSRUZFUkVOQ0VT
fSBQUk9QRVJUSUVTIEdFTkVSQVRFRCBUUlVFKQogCiBhZGRfY3VzdG9tX2NvbW1hbmQoCi0gICAg
T1VUUFVUICR7V2ViS2l0X0RFUklWRURfU09VUkNFU19ESVJ9L1dlYlBhZ2VVcGRhdGVQcmVmZXJl
bmNlcy5jcHAgJHtXZWJLaXRfREVSSVZFRF9TT1VSQ0VTX0RJUn0vV2ViUHJlZmVyZW5jZXNEZWZp
bml0aW9ucy5oICR7V2ViS2l0X0RFUklWRURfU09VUkNFU19ESVJ9L1dlYlByZWZlcmVuY2VzRXhw
ZXJpbWVudGFsRmVhdHVyZXMuY3BwICR7V2ViS2l0X0RFUklWRURfU09VUkNFU19ESVJ9L1dlYlBy
ZWZlcmVuY2VzSW50ZXJuYWxEZWJ1Z0ZlYXR1cmVzLmNwcCAke1dlYktpdF9ERVJJVkVEX1NPVVJD
RVNfRElSfS9XZWJQcmVmZXJlbmNlc0tleXMuY3BwICR7V2ViS2l0X0RFUklWRURfU09VUkNFU19E
SVJ9L1dlYlByZWZlcmVuY2VzS2V5cy5oICR7V2ViS2l0X0RFUklWRURfU09VUkNFU19ESVJ9L1dl
YlByZWZlcmVuY2VzU3RvcmVEZWZhdWx0c01hcC5jcHAKKyAgICBPVVRQVVQgJHtXZWJLaXRfREVS
SVZFRF9TT1VSQ0VTX0RJUn0vV2ViUGFnZVVwZGF0ZVByZWZlcmVuY2VzLmNwcCAke1dlYktpdF9E
RVJJVkVEX1NPVVJDRVNfRElSfS9XZWJQcmVmZXJlbmNlc0RlZmluaXRpb25zLmggJHtXZWJLaXRf
REVSSVZFRF9TT1VSQ0VTX0RJUn0vV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWxGZWF0dXJlcy5j
cHAgJHtXZWJLaXRfREVSSVZFRF9TT1VSQ0VTX0RJUn0vV2ViUHJlZmVyZW5jZXNHZXR0ZXJTZXR0
ZXJzLmNwcCAke1dlYktpdF9ERVJJVkVEX1NPVVJDRVNfRElSfS9XZWJQcmVmZXJlbmNlc0ludGVy
bmFsRGVidWdGZWF0dXJlcy5jcHAgJHtXZWJLaXRfREVSSVZFRF9TT1VSQ0VTX0RJUn0vV2ViUHJl
ZmVyZW5jZXNLZXlzLmNwcCAke1dlYktpdF9ERVJJVkVEX1NPVVJDRVNfRElSfS9XZWJQcmVmZXJl
bmNlc0tleXMuaCAke1dlYktpdF9ERVJJVkVEX1NPVVJDRVNfRElSfS9XZWJQcmVmZXJlbmNlc1N0
b3JlRGVmYXVsdHNNYXAuY3BwCiAgICAgREVQRU5EUyAke1dlYktpdF9XRUJfUFJFRkVSRU5DRVNf
VEVNUExBVEVTfSAke1dlYktpdF9XRUJfUFJFRkVSRU5DRVN9IFdURl9Db3B5UHJlZmVyZW5jZXMK
LSAgICBDT01NQU5EICR7UlVCWV9FWEVDVVRBQkxFfSAke1dURl9TQ1JJUFRTX0RJUn0vR2VuZXJh
dGVQcmVmZXJlbmNlcy5yYiAtLWZyb250ZW5kIFdlYktpdCAtLWJhc2UgJHtXVEZfU0NSSVBUU19E
SVJ9L1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzLnlhbWwgLS1kZWJ1ZyAke1dURl9TQ1JJUFRT
X0RJUn0vUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNEZWJ1Zy55YW1sIC0tZXhwZXJpbWVudGFs
ICR7V1RGX1NDUklQVFNfRElSfS9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRh
bC55YW1sIC0taW50ZXJuYWwgJHtXVEZfU0NSSVBUU19ESVJ9L1ByZWZlcmVuY2VzL1dlYlByZWZl
cmVuY2VzSW50ZXJuYWwueWFtbCAtLW91dHB1dERpciAiJHtXZWJLaXRfREVSSVZFRF9TT1VSQ0VT
X0RJUn0iIC0tdGVtcGxhdGUgJHtXRUJLSVRfRElSfS9TY3JpcHRzL1ByZWZlcmVuY2VzVGVtcGxh
dGVzL1dlYlBhZ2VVcGRhdGVQcmVmZXJlbmNlcy5jcHAuZXJiIC0tdGVtcGxhdGUgJHtXRUJLSVRf
RElSfS9TY3JpcHRzL1ByZWZlcmVuY2VzVGVtcGxhdGVzL1dlYlByZWZlcmVuY2VzRGVmaW5pdGlv
bnMuaC5lcmIgLS10ZW1wbGF0ZSAke1dFQktJVF9ESVJ9L1NjcmlwdHMvUHJlZmVyZW5jZXNUZW1w
bGF0ZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWxGZWF0dXJlcy5jcHAuZXJiIC0tdGVtcGxh
dGUgJHtXRUJLSVRfRElSfS9TY3JpcHRzL1ByZWZlcmVuY2VzVGVtcGxhdGVzL1dlYlByZWZlcmVu
Y2VzSW50ZXJuYWxEZWJ1Z0ZlYXR1cmVzLmNwcC5lcmIgLS10ZW1wbGF0ZSAke1dFQktJVF9ESVJ9
L1NjcmlwdHMvUHJlZmVyZW5jZXNUZW1wbGF0ZXMvV2ViUHJlZmVyZW5jZXNLZXlzLmNwcC5lcmIg
LS10ZW1wbGF0ZSAke1dFQktJVF9ESVJ9L1NjcmlwdHMvUHJlZmVyZW5jZXNUZW1wbGF0ZXMvV2Vi
UHJlZmVyZW5jZXNLZXlzLmguZXJiIC0tdGVtcGxhdGUgJHtXRUJLSVRfRElSfS9TY3JpcHRzL1By
ZWZlcmVuY2VzVGVtcGxhdGVzL1dlYlByZWZlcmVuY2VzU3RvcmVEZWZhdWx0c01hcC5jcHAuZXJi
CisgICAgQ09NTUFORCAke1JVQllfRVhFQ1VUQUJMRX0gJHtXVEZfU0NSSVBUU19ESVJ9L0dlbmVy
YXRlUHJlZmVyZW5jZXMucmIgLS1mcm9udGVuZCBXZWJLaXQgLS1iYXNlICR7V1RGX1NDUklQVFNf
RElSfS9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlcy55YW1sIC0tZGVidWcgJHtXVEZfU0NSSVBU
U19ESVJ9L1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRGVidWcueWFtbCAtLWV4cGVyaW1lbnRh
bCAke1dURl9TQ1JJUFRTX0RJUn0vUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50
YWwueWFtbCAtLWludGVybmFsICR7V1RGX1NDUklQVFNfRElSfS9QcmVmZXJlbmNlcy9XZWJQcmVm
ZXJlbmNlc0ludGVybmFsLnlhbWwgLS1vdXRwdXREaXIgIiR7V2ViS2l0X0RFUklWRURfU09VUkNF
U19ESVJ9IiAtLXRlbXBsYXRlICR7V0VCS0lUX0RJUn0vU2NyaXB0cy9QcmVmZXJlbmNlc1RlbXBs
YXRlcy9XZWJQYWdlVXBkYXRlUHJlZmVyZW5jZXMuY3BwLmVyYiAtLXRlbXBsYXRlICR7V0VCS0lU
X0RJUn0vU2NyaXB0cy9QcmVmZXJlbmNlc1RlbXBsYXRlcy9XZWJQcmVmZXJlbmNlc0RlZmluaXRp
b25zLmguZXJiIC0tdGVtcGxhdGUgJHtXRUJLSVRfRElSfS9TY3JpcHRzL1ByZWZlcmVuY2VzVGVt
cGxhdGVzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsRmVhdHVyZXMuY3BwLmVyYiAtLXRlbXBs
YXRlICR7V0VCS0lUX0RJUn0vU2NyaXB0cy9QcmVmZXJlbmNlc1RlbXBsYXRlcy9XZWJQcmVmZXJl
bmNlc0dldHRlclNldHRlcnMuY3BwLmVyYiAtLXRlbXBsYXRlICR7V0VCS0lUX0RJUn0vU2NyaXB0
cy9QcmVmZXJlbmNlc1RlbXBsYXRlcy9XZWJQcmVmZXJlbmNlc0ludGVybmFsRGVidWdGZWF0dXJl
cy5jcHAuZXJiIC0tdGVtcGxhdGUgJHtXRUJLSVRfRElSfS9TY3JpcHRzL1ByZWZlcmVuY2VzVGVt
cGxhdGVzL1dlYlByZWZlcmVuY2VzS2V5cy5jcHAuZXJiIC0tdGVtcGxhdGUgJHtXRUJLSVRfRElS
fS9TY3JpcHRzL1ByZWZlcmVuY2VzVGVtcGxhdGVzL1dlYlByZWZlcmVuY2VzS2V5cy5oLmVyYiAt
LXRlbXBsYXRlICR7V0VCS0lUX0RJUn0vU2NyaXB0cy9QcmVmZXJlbmNlc1RlbXBsYXRlcy9XZWJQ
cmVmZXJlbmNlc1N0b3JlRGVmYXVsdHNNYXAuY3BwLmVyYgogICAgIFZFUkJBVElNKQogCiBsaXN0
KEFQUEVORCBXZWJLaXRfSEVBREVSUwpAQCAtNTI5LDYgKzUzMCw3IEBAIGxpc3QoQVBQRU5EIFdl
YktpdF9IRUFERVJTCiBsaXN0KEFQUEVORCBXZWJLaXRfU09VUkNFUwogICAgICR7V2ViS2l0X0RF
UklWRURfU09VUkNFU19ESVJ9L1dlYlBhZ2VVcGRhdGVQcmVmZXJlbmNlcy5jcHAKICAgICAke1dl
YktpdF9ERVJJVkVEX1NPVVJDRVNfRElSfS9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbEZlYXR1
cmVzLmNwcAorICAgICR7V2ViS2l0X0RFUklWRURfU09VUkNFU19ESVJ9L1dlYlByZWZlcmVuY2Vz
R2V0dGVyU2V0dGVycy5jcHAKICAgICAke1dlYktpdF9ERVJJVkVEX1NPVVJDRVNfRElSfS9XZWJQ
cmVmZXJlbmNlc0ludGVybmFsRGVidWdGZWF0dXJlcy5jcHAKICAgICAke1dlYktpdF9ERVJJVkVE
X1NPVVJDRVNfRElSfS9XZWJQcmVmZXJlbmNlc0tleXMuY3BwCiAgICAgJHtXZWJLaXRfREVSSVZF
RF9TT1VSQ0VTX0RJUn0vV2ViUHJlZmVyZW5jZXNTdG9yZURlZmF1bHRzTWFwLmNwcApJbmRleDog
U291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0Cj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAkocmV2aXNp
b24gMjY4MzI2KQorKysgU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVs
aXN0CSh3b3JraW5nIGNvcHkpCkBAIC02OCw2ICs2OCw3IEBAICQoUFJPSkVDVF9ESVIpL1BsdWdp
blByb2Nlc3MvbWFjL2NvbS5hcHAKICQoUFJPSkVDVF9ESVIpL1NjcmlwdHMvUHJlZmVyZW5jZXNU
ZW1wbGF0ZXMvV2ViUGFnZVVwZGF0ZVByZWZlcmVuY2VzLmNwcC5lcmIKICQoUFJPSkVDVF9ESVIp
L1NjcmlwdHMvUHJlZmVyZW5jZXNUZW1wbGF0ZXMvV2ViUHJlZmVyZW5jZXNEZWZpbml0aW9ucy5o
LmVyYgogJChQUk9KRUNUX0RJUikvU2NyaXB0cy9QcmVmZXJlbmNlc1RlbXBsYXRlcy9XZWJQcmVm
ZXJlbmNlc0V4cGVyaW1lbnRhbEZlYXR1cmVzLmNwcC5lcmIKKyQoUFJPSkVDVF9ESVIpL1Njcmlw
dHMvUHJlZmVyZW5jZXNUZW1wbGF0ZXMvV2ViUHJlZmVyZW5jZXNHZXR0ZXJTZXR0ZXJzLmNwcC5l
cmIKICQoUFJPSkVDVF9ESVIpL1NjcmlwdHMvUHJlZmVyZW5jZXNUZW1wbGF0ZXMvV2ViUHJlZmVy
ZW5jZXNJbnRlcm5hbERlYnVnRmVhdHVyZXMuY3BwLmVyYgogJChQUk9KRUNUX0RJUikvU2NyaXB0
cy9QcmVmZXJlbmNlc1RlbXBsYXRlcy9XZWJQcmVmZXJlbmNlc0tleXMuY3BwLmVyYgogJChQUk9K
RUNUX0RJUikvU2NyaXB0cy9QcmVmZXJlbmNlc1RlbXBsYXRlcy9XZWJQcmVmZXJlbmNlc0tleXMu
aC5lcmIKSW5kZXg6IFNvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxp
c3QKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNm
aWxlbGlzdAkocmV2aXNpb24gMjY4MzI2KQorKysgU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNl
cy1vdXRwdXQueGNmaWxlbGlzdAkod29ya2luZyBjb3B5KQpAQCAtMzY5LDYgKzM2OSw3IEBAICQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWIKICQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYlByZWZlcmVuY2VzQ29tYmluZWQueWFtbAog
JChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViUHJlZmVyZW5j
ZXNEZWZpbml0aW9ucy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2Vi
S2l0Mi9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbEZlYXR1cmVzLmNwcAorJChCVUlMVF9QUk9E
VUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViUHJlZmVyZW5jZXNHZXR0ZXJTZXR0
ZXJzLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2Vi
UHJlZmVyZW5jZXNJbnRlcm5hbERlYnVnRmVhdHVyZXMuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJQcmVmZXJlbmNlc0tleXMuY3BwCiAkKEJVSUxU
X1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJQcmVmZXJlbmNlc0tleXMu
aApJbmRleDogU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQkocmV2aXNpb24gMjY4MzI2KQorKysg
U291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCSh3b3JraW5nIGNvcHkpCkBAIC0zNTMs
OSArMzUzLDEwIEBAIFdFQl9QUkVGRVJFTkNFU19URU1QTEFURVMgPSBcCiAgICAgJChXZWJLaXQy
KS9TY3JpcHRzL1ByZWZlcmVuY2VzVGVtcGxhdGVzL1dlYlBhZ2VVcGRhdGVQcmVmZXJlbmNlcy5j
cHAuZXJiIFwKICAgICAkKFdlYktpdDIpL1NjcmlwdHMvUHJlZmVyZW5jZXNUZW1wbGF0ZXMvV2Vi
UHJlZmVyZW5jZXNEZWZpbml0aW9ucy5oLmVyYiBcCiAgICAgJChXZWJLaXQyKS9TY3JpcHRzL1By
ZWZlcmVuY2VzVGVtcGxhdGVzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsRmVhdHVyZXMuY3Bw
LmVyYiBcCisgICAgJChXZWJLaXQyKS9TY3JpcHRzL1ByZWZlcmVuY2VzVGVtcGxhdGVzL1dlYlBy
ZWZlcmVuY2VzR2V0dGVyU2V0dGVycy5jcHAuZXJiIFwKICAgICAkKFdlYktpdDIpL1NjcmlwdHMv
UHJlZmVyZW5jZXNUZW1wbGF0ZXMvV2ViUHJlZmVyZW5jZXNJbnRlcm5hbERlYnVnRmVhdHVyZXMu
Y3BwLmVyYiBcCi0gICAgJChXZWJLaXQyKS9TY3JpcHRzL1ByZWZlcmVuY2VzVGVtcGxhdGVzL1dl
YlByZWZlcmVuY2VzS2V5cy5oLmVyYiBcCiAgICAgJChXZWJLaXQyKS9TY3JpcHRzL1ByZWZlcmVu
Y2VzVGVtcGxhdGVzL1dlYlByZWZlcmVuY2VzS2V5cy5jcHAuZXJiIFwKKyAgICAkKFdlYktpdDIp
L1NjcmlwdHMvUHJlZmVyZW5jZXNUZW1wbGF0ZXMvV2ViUHJlZmVyZW5jZXNLZXlzLmguZXJiIFwK
ICAgICAkKFdlYktpdDIpL1NjcmlwdHMvUHJlZmVyZW5jZXNUZW1wbGF0ZXMvV2ViUHJlZmVyZW5j
ZXNTdG9yZURlZmF1bHRzTWFwLmNwcC5lcmIgXAogIwogV0VCX1BSRUZFUkVOQ0VTX0ZJTEVTID0g
JChiYXNlbmFtZSAkKG5vdGRpciAkKFdFQl9QUkVGRVJFTkNFU19URU1QTEFURVMpKSkKSW5kZXg6
IFNvdXJjZS9XZWJLaXQvU2NyaXB0cy9QcmVmZXJlbmNlc1RlbXBsYXRlcy9XZWJQcmVmZXJlbmNl
c0V4cGVyaW1lbnRhbEZlYXR1cmVzLmNwcC5lcmIKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC9TY3JpcHRzL1ByZWZlcmVuY2VzVGVtcGxhdGVzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFs
RmVhdHVyZXMuY3BwLmVyYgkocmV2aXNpb24gMjY4MzI2KQorKysgU291cmNlL1dlYktpdC9TY3Jp
cHRzL1ByZWZlcmVuY2VzVGVtcGxhdGVzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsRmVhdHVy
ZXMuY3BwLmVyYgkod29ya2luZyBjb3B5KQpAQCAtMzMsMjAgKzMzLDYgQEAKIAogbmFtZXNwYWNl
IFdlYktpdCB7CiAKLTwlLSBmb3IgQHByZWYgaW4gQGV4cGVyaW1lbnRhbEZlYXR1cmVzIGRvIC0l
Pgotdm9pZCBXZWJQcmVmZXJlbmNlczo6c2V0PCU9IEBwcmVmLm5hbWUgJT4oY29uc3QgYm9vbCYg
dmFsdWUpCi17Ci0gICAgaWYgKCFtX3N0b3JlLnNldEJvb2xWYWx1ZUZvcktleShXZWJQcmVmZXJl
bmNlc0tleTo6PCU9IEBwcmVmLm5hbWVMb3dlciAlPktleSgpLCB2YWx1ZSkpCi0gICAgICAgIHJl
dHVybjsKLSAgICB1cGRhdGVCb29sVmFsdWVGb3JFeHBlcmltZW50YWxGZWF0dXJlS2V5KFdlYlBy
ZWZlcmVuY2VzS2V5Ojo8JT0gQHByZWYubmFtZUxvd2VyICU+S2V5KCksIHZhbHVlKTsKLX0KLQot
Ym9vbCBXZWJQcmVmZXJlbmNlczo6PCU9IEBwcmVmLm5hbWVMb3dlciAlPigpIGNvbnN0Ci17Ci0g
ICAgcmV0dXJuIG1fc3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5Ojo8
JT0gQHByZWYubmFtZUxvd2VyICU+S2V5KCkpOwotfQotCi08JS0gZW5kIC0lPgogY29uc3QgVmVj
dG9yPFJlZlB0cjxBUEk6Ok9iamVjdD4+JiBXZWJQcmVmZXJlbmNlczo6ZXhwZXJpbWVudGFsRmVh
dHVyZXMoKQogewogICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxWZWN0b3I8UmVmUHRyPEFQSTo6
T2JqZWN0Pj4+IGZlYXR1cmVzKHN0ZDo6aW5pdGlhbGl6ZXJfbGlzdDxSZWZQdHI8QVBJOjpPYmpl
Y3Q+PiB7CkluZGV4OiBTb3VyY2UvV2ViS2l0L1NjcmlwdHMvUHJlZmVyZW5jZXNUZW1wbGF0ZXMv
V2ViUHJlZmVyZW5jZXNHZXR0ZXJTZXR0ZXJzLmNwcC5lcmIKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdC9TY3JpcHRzL1ByZWZlcmVuY2VzVGVtcGxhdGVzL1dlYlByZWZlcmVuY2VzR2V0dGVy
U2V0dGVycy5jcHAuZXJiCShub25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJLaXQvU2NyaXB0cy9Q
cmVmZXJlbmNlc1RlbXBsYXRlcy9XZWJQcmVmZXJlbmNlc0dldHRlclNldHRlcnMuY3BwLmVyYgko
d29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDk1IEBACisvKgorKiA8JT0gQHdhcm5pbmcgJT4KKyoK
KyogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyoK
KyogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworKiBhcmUgbWV0OgorKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyoK
KyogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiV2ViUHJlZmVyZW5jZXMuaCIKKworI2luY2x1ZGUgIldlYlByZWZl
cmVuY2VzS2V5cy5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworPCUtIGZvciBAcHJlZiBpbiAo
QHByZWZlcmVuY2VzTm90RGVidWcgKyBAcHJlZmVyZW5jZXNEZWJ1ZykgZG8gLSU+Cit2b2lkIFdl
YlByZWZlcmVuY2VzOjpzZXQ8JT0gQHByZWYubmFtZSAlPihjb25zdCA8JT0gQHByZWYudHlwZSAl
PiYgdmFsdWUpCit7CisgICAgaWYgKCFtX3N0b3JlLnNldDwlPSBAcHJlZi50eXBlVXBwZXIgJT5W
YWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6PCU9IEBwcmVmLm5hbWVMb3dlciAlPktleSgp
LCB2YWx1ZSkpCisgICAgICAgIHJldHVybjsKKyAgICB1cGRhdGU8JT0gQHByZWYudHlwZVVwcGVy
ICU+VmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OjwlPSBAcHJlZi5uYW1lTG93ZXIgJT5L
ZXkoKSwgdmFsdWUpOworfQorCis8JT0gQHByZWYudHlwZSAlPiBXZWJQcmVmZXJlbmNlczo6PCU9
IEBwcmVmLm5hbWVMb3dlciAlPigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fc3RvcmUuZ2V0PCU9
IEBwcmVmLnR5cGVVcHBlciAlPlZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5Ojo8JT0gQHBy
ZWYubmFtZUxvd2VyICU+S2V5KCkpOworfQorCit2b2lkIFdlYlByZWZlcmVuY2VzOjpkZWxldGU8
JT0gQHByZWYubmFtZSAlPigpCit7CisgICAgZGVsZXRlS2V5KFdlYlByZWZlcmVuY2VzS2V5Ojo8
JT0gQHByZWYubmFtZUxvd2VyICU+S2V5KCkpOworfQorCis8JS0gZW5kIC0lPgorCis8JS0gZm9y
IEBwcmVmIGluIEBleHBlcmltZW50YWxGZWF0dXJlcyBkbyAtJT4KK3ZvaWQgV2ViUHJlZmVyZW5j
ZXM6OnNldDwlPSBAcHJlZi5uYW1lICU+KGNvbnN0IGJvb2wmIHZhbHVlKQoreworICAgIGlmICgh
bV9zdG9yZS5zZXRCb29sVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OjwlPSBAcHJlZi5u
YW1lTG93ZXIgJT5LZXkoKSwgdmFsdWUpKQorICAgICAgICByZXR1cm47CisgICAgdXBkYXRlQm9v
bFZhbHVlRm9yRXhwZXJpbWVudGFsRmVhdHVyZUtleShXZWJQcmVmZXJlbmNlc0tleTo6PCU9IEBw
cmVmLm5hbWVMb3dlciAlPktleSgpLCB2YWx1ZSk7Cit9CisKK2Jvb2wgV2ViUHJlZmVyZW5jZXM6
OjwlPSBAcHJlZi5uYW1lTG93ZXIgJT4oKSBjb25zdAoreworICAgIHJldHVybiBtX3N0b3JlLmdl
dEJvb2xWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6PCU9IEBwcmVmLm5hbWVMb3dlciAl
PktleSgpKTsKK30KKwordm9pZCBXZWJQcmVmZXJlbmNlczo6ZGVsZXRlPCU9IEBwcmVmLm5hbWUg
JT4oKQoreworICAgIGRlbGV0ZUtleShXZWJQcmVmZXJlbmNlc0tleTo6PCU9IEBwcmVmLm5hbWVM
b3dlciAlPktleSgpKTsKK30KKworPCUtIGVuZCAtJT4KKworPCUtIGZvciBAcHJlZiBpbiBAaW50
ZXJuYWxGZWF0dXJlcyBkbyAtJT4KK3ZvaWQgV2ViUHJlZmVyZW5jZXM6OnNldDwlPSBAcHJlZi5u
YW1lICU+KGNvbnN0IGJvb2wmIHZhbHVlKQoreworICAgIGlmICghbV9zdG9yZS5zZXRCb29sVmFs
dWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OjwlPSBAcHJlZi5uYW1lTG93ZXIgJT5LZXkoKSwg
dmFsdWUpKQorICAgICAgICByZXR1cm47CisgICAgdXBkYXRlQm9vbFZhbHVlRm9ySW50ZXJuYWxE
ZWJ1Z0ZlYXR1cmVLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OjwlPSBAcHJlZi5uYW1lTG93ZXIgJT5L
ZXkoKSwgdmFsdWUpOworfQorCitib29sIFdlYlByZWZlcmVuY2VzOjo8JT0gQHByZWYubmFtZUxv
d2VyICU+KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9zdG9yZS5nZXRCb29sVmFsdWVGb3JLZXko
V2ViUHJlZmVyZW5jZXNLZXk6OjwlPSBAcHJlZi5uYW1lTG93ZXIgJT5LZXkoKSk7Cit9CisKK3Zv
aWQgV2ViUHJlZmVyZW5jZXM6OmRlbGV0ZTwlPSBAcHJlZi5uYW1lICU+KCkKK3sKKyAgICBkZWxl
dGVLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OjwlPSBAcHJlZi5uYW1lTG93ZXIgJT5LZXkoKSk7Cit9
CisKKzwlLSBlbmQgLSU+CisKK30KSW5kZXg6IFNvdXJjZS9XZWJLaXQvU2NyaXB0cy9QcmVmZXJl
bmNlc1RlbXBsYXRlcy9XZWJQcmVmZXJlbmNlc0ludGVybmFsRGVidWdGZWF0dXJlcy5jcHAuZXJi
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvU2NyaXB0cy9QcmVmZXJlbmNlc1RlbXBsYXRl
cy9XZWJQcmVmZXJlbmNlc0ludGVybmFsRGVidWdGZWF0dXJlcy5jcHAuZXJiCShyZXZpc2lvbiAy
NjgzMjYpCisrKyBTb3VyY2UvV2ViS2l0L1NjcmlwdHMvUHJlZmVyZW5jZXNUZW1wbGF0ZXMvV2Vi
UHJlZmVyZW5jZXNJbnRlcm5hbERlYnVnRmVhdHVyZXMuY3BwLmVyYgkod29ya2luZyBjb3B5KQpA
QCAtMzMsMjAgKzMzLDYgQEAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLTwlLSBmb3IgQHByZWYg
aW4gQGludGVybmFsRmVhdHVyZXMgZG8gLSU+Ci12b2lkIFdlYlByZWZlcmVuY2VzOjpzZXQ8JT0g
QHByZWYubmFtZSAlPihjb25zdCBib29sJiB2YWx1ZSkKLXsKLSAgICBpZiAoIW1fc3RvcmUuc2V0
Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5Ojo8JT0gQHByZWYubmFtZUxvd2VyICU+
S2V5KCksIHZhbHVlKSkKLSAgICAgICAgcmV0dXJuOwotICAgIHVwZGF0ZUJvb2xWYWx1ZUZvcklu
dGVybmFsRGVidWdGZWF0dXJlS2V5KFdlYlByZWZlcmVuY2VzS2V5Ojo8JT0gQHByZWYubmFtZUxv
d2VyICU+S2V5KCksIHZhbHVlKTsKLX0KLQotYm9vbCBXZWJQcmVmZXJlbmNlczo6PCU9IEBwcmVm
Lm5hbWVMb3dlciAlPigpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fc3RvcmUuZ2V0Qm9vbFZhbHVl
Rm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5Ojo8JT0gQHByZWYubmFtZUxvd2VyICU+S2V5KCkpOwot
fQotCi08JS0gZW5kIC0lPgogY29uc3QgVmVjdG9yPFJlZlB0cjxBUEk6Ok9iamVjdD4+JiBXZWJQ
cmVmZXJlbmNlczo6aW50ZXJuYWxEZWJ1Z0ZlYXR1cmVzKCkKIHsKICAgICBzdGF0aWMgTmV2ZXJE
ZXN0cm95ZWQ8VmVjdG9yPFJlZlB0cjxBUEk6Ok9iamVjdD4+PiBmZWF0dXJlcyhzdGQ6OmluaXRp
YWxpemVyX2xpc3Q8UmVmUHRyPEFQSTo6T2JqZWN0Pj4gewpJbmRleDogU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUHJlZmVyZW5jZXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlByZWZlcmVuY2VzLmNwcAkocmV2aXNpb24gMjY4MzI2KQorKysgU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUHJlZmVyZW5jZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0x
MDIsNiArMTAyLDM0IEBAIHZvaWQgV2ViUHJlZmVyZW5jZXM6OnVwZGF0ZSgpCiAgICAgICAgIHdl
YlBhZ2VQcm94eS0+cHJlZmVyZW5jZXNEaWRDaGFuZ2UoKTsKIH0KIAordm9pZCBXZWJQcmVmZXJl
bmNlczo6c2V0Qm9vbFZhbHVlRm9yS2V5KGNvbnN0IFN0cmluZyYga2V5LCBib29sIHZhbHVlKQor
eworICAgIGlmICghbV9zdG9yZS5zZXRCb29sVmFsdWVGb3JLZXkoa2V5LCB2YWx1ZSkpCisgICAg
ICAgIHJldHVybjsKKyAgICB1cGRhdGVCb29sVmFsdWVGb3JLZXkoa2V5LCB2YWx1ZSk7Cit9CisK
K3ZvaWQgV2ViUHJlZmVyZW5jZXM6OnNldERvdWJsZVZhbHVlRm9yS2V5KGNvbnN0IFN0cmluZyYg
a2V5LCBkb3VibGUgdmFsdWUpCit7CisgICAgaWYgKCFtX3N0b3JlLnNldERvdWJsZVZhbHVlRm9y
S2V5KGtleSwgdmFsdWUpKQorICAgICAgICByZXR1cm47CisgICAgdXBkYXRlRG91YmxlVmFsdWVG
b3JLZXkoa2V5LCB2YWx1ZSk7Cit9CisKK3ZvaWQgV2ViUHJlZmVyZW5jZXM6OnNldFVJbnQzMlZh
bHVlRm9yS2V5KGNvbnN0IFN0cmluZyYga2V5LCB1aW50MzJfdCB2YWx1ZSkKK3sKKyAgICBpZiAo
IW1fc3RvcmUuc2V0VUludDMyVmFsdWVGb3JLZXkoa2V5LCB2YWx1ZSkpCisgICAgICAgIHJldHVy
bjsKKyAgICB1cGRhdGVVSW50MzJWYWx1ZUZvcktleShrZXksIHZhbHVlKTsKK30KKwordm9pZCBX
ZWJQcmVmZXJlbmNlczo6c2V0U3RyaW5nVmFsdWVGb3JLZXkoY29uc3QgU3RyaW5nJiBrZXksIGNv
bnN0IFN0cmluZyYgdmFsdWUpCit7CisgICAgaWYgKCFtX3N0b3JlLnNldFN0cmluZ1ZhbHVlRm9y
S2V5KGtleSwgdmFsdWUpKQorICAgICAgICByZXR1cm47CisgICAgdXBkYXRlU3RyaW5nVmFsdWVG
b3JLZXkoa2V5LCB2YWx1ZSk7Cit9CisKIHZvaWQgV2ViUHJlZmVyZW5jZXM6OnVwZGF0ZVN0cmlu
Z1ZhbHVlRm9yS2V5KGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIHZhbHVlKQogewog
ICAgIHBsYXRmb3JtVXBkYXRlU3RyaW5nVmFsdWVGb3JLZXkoa2V5LCB2YWx1ZSk7CkBAIC0xNTUs
MzAgKzE4Myw2IEBAIHZvaWQgV2ViUHJlZmVyZW5jZXM6OmRlbGV0ZUtleShjb25zdCBTdHIKICAg
ICB1cGRhdGUoKTsgLy8gRklYTUU6IE9ubHkgc2VuZCBvdmVyIHRoZSBjaGFuZ2VkIGtleSBhbmQg
dmFsdWUuCiB9CiAKLSNkZWZpbmUgREVGSU5FX1BSRUZFUkVOQ0VfR0VUVEVSX0FORF9TRVRURVJT
KEtleVVwcGVyLCBLZXlMb3dlciwgVHlwZU5hbWUsIFR5cGUsIERlZmF1bHRWYWx1ZSwgSHVtYW5S
ZWFkYWJsZU5hbWUsIEh1bWFuUmVhZGFibGVEZXNjcmlwdGlvbikgXAotICAgIHZvaWQgV2ViUHJl
ZmVyZW5jZXM6OnNldCMjS2V5VXBwZXIoY29uc3QgVHlwZSYgdmFsdWUpIFwKLSAgICB7IFwKLSAg
ICAgICAgaWYgKCFtX3N0b3JlLnNldCMjVHlwZU5hbWUjI1ZhbHVlRm9yS2V5KFdlYlByZWZlcmVu
Y2VzS2V5OjpLZXlMb3dlciMjS2V5KCksIHZhbHVlKSkgXAotICAgICAgICAgICAgcmV0dXJuOyBc
Ci0gICAgICAgIHVwZGF0ZSMjVHlwZU5hbWUjI1ZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5
OjpLZXlMb3dlciMjS2V5KCksIHZhbHVlKTsgXAotICAgIH0gXAotICAgIFwKLSAgICB2b2lkIFdl
YlByZWZlcmVuY2VzOjpkZWxldGUjI0tleVVwcGVyKCkgXAotICAgIHsgXAotICAgICAgICBkZWxl
dGVLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OktleUxvd2VyIyNLZXkoKSk7IFwKLSAgICB9IFwKLSAg
ICBcCi0gICAgVHlwZSBXZWJQcmVmZXJlbmNlczo6S2V5TG93ZXIoKSBjb25zdCBcCi0gICAgeyBc
Ci0gICAgICAgIHJldHVybiBtX3N0b3JlLmdldCMjVHlwZU5hbWUjI1ZhbHVlRm9yS2V5KFdlYlBy
ZWZlcmVuY2VzS2V5OjpLZXlMb3dlciMjS2V5KCkpOyBcCi0gICAgfSBcCi0KLUZPUl9FQUNIX1dF
QktJVF9QUkVGRVJFTkNFKERFRklORV9QUkVGRVJFTkNFX0dFVFRFUl9BTkRfU0VUVEVSUykKLUZP
Ul9FQUNIX1dFQktJVF9ERUJVR19QUkVGRVJFTkNFKERFRklORV9QUkVGRVJFTkNFX0dFVFRFUl9B
TkRfU0VUVEVSUykKLQotI3VuZGVmIERFRklORV9QUkVGRVJFTkNFX0dFVFRFUl9BTkRfU0VUVEVS
UwotCi0KIHZvaWQgV2ViUHJlZmVyZW5jZXM6OnJlZ2lzdGVyRGVmYXVsdEJvb2xWYWx1ZUZvcktl
eShjb25zdCBTdHJpbmcmIGtleSwgYm9vbCB2YWx1ZSkKIHsKICAgICBtX3N0b3JlLnNldE92ZXJy
aWRlRGVmYXVsdHNCb29sVmFsdWVGb3JLZXkoa2V5LCB2YWx1ZSk7CkluZGV4OiBTb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQcmVmZXJlbmNlcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlByZWZlcmVuY2VzLmgJKHJldmlzaW9uIDI2ODMyNikKKysrIFNvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByZWZlcmVuY2VzLmgJKHdvcmtpbmcgY29weSkKQEAgLTU5
LDYgKzU5LDcgQEAgcHVibGljOgogCiAgICAgY29uc3QgV2ViUHJlZmVyZW5jZXNTdG9yZSYgc3Rv
cmUoKSBjb25zdCB7IHJldHVybiBtX3N0b3JlOyB9CiAKKyAgICAvLyBJbXBsZW1lbnRlZCBpbiBn
ZW5lcmF0ZWQgZmlsZSBXZWJQcmVmZXJlbmNlc0dldHRlclNldHRlcnMuY3BwLgogICAgIEZPUl9F
QUNIX1dFQktJVF9QUkVGRVJFTkNFKERFQ0xBUkVfUFJFRkVSRU5DRV9HRVRURVJfQU5EX1NFVFRF
UlMpCiAgICAgRk9SX0VBQ0hfV0VCS0lUX0RFQlVHX1BSRUZFUkVOQ0UoREVDTEFSRV9QUkVGRVJF
TkNFX0dFVFRFUl9BTkRfU0VUVEVSUykKICAgICBGT1JfRUFDSF9XRUJLSVRfSU5URVJOQUxfREVC
VUdfRkVBVFVSRV9QUkVGRVJFTkNFKERFQ0xBUkVfUFJFRkVSRU5DRV9HRVRURVJfQU5EX1NFVFRF
UlMpCkBAIC03Nyw2ICs3OCwxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCByZXNldEFsbEludGVybmFs
RGVidWdGZWF0dXJlcygpOwogCiAgICAgLy8gRXhwb3NlZCBmb3IgV2ViS2l0VGVzdFJ1bm5lciB1
c2Ugb25seS4KKyAgICB2b2lkIHNldEJvb2xWYWx1ZUZvcktleShjb25zdCBTdHJpbmcmLCBib29s
IHZhbHVlKTsKKyAgICB2b2lkIHNldERvdWJsZVZhbHVlRm9yS2V5KGNvbnN0IFN0cmluZyYsIGRv
dWJsZSB2YWx1ZSk7CisgICAgdm9pZCBzZXRVSW50MzJWYWx1ZUZvcktleShjb25zdCBTdHJpbmcm
LCB1aW50MzJfdCB2YWx1ZSk7CisgICAgdm9pZCBzZXRTdHJpbmdWYWx1ZUZvcktleShjb25zdCBT
dHJpbmcmLCBjb25zdCBTdHJpbmcmIHZhbHVlKTsKICAgICB2b2lkIGZvcmNlVXBkYXRlKCkgeyB1
cGRhdGUoKTsgfQogCiBwcml2YXRlOgpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0MvV0tQcmVmZXJlbmNlcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHAJKHJldmlzaW9uIDI2ODMyNikKKysrIFNvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC03OCw2ICs3OCwyNiBAQCB2b2lkIFdLUHJlZmVyZW5jZXNTZXRJbnRlcm5hbERlYnVnRmVhdHVy
CiAgICAgdG9JbXBsKHByZWZlcmVuY2VzUmVmKS0+c2V0SW50ZXJuYWxEZWJ1Z0ZlYXR1cmVFbmFi
bGVkRm9yS2V5KHRvV1RGU3RyaW5nKGludGVybmFsRGVidWdGZWF0dXJlS2V5KSwgdmFsdWUpOwog
fQogCit2b2lkIFdLUHJlZmVyZW5jZXNTZXRCb29sVmFsdWVGb3JLZXkoV0tQcmVmZXJlbmNlc1Jl
ZiBwcmVmZXJlbmNlc1JlZiwgYm9vbCB2YWx1ZSwgV0tTdHJpbmdSZWYga2V5KQoreworICAgIHRv
SW1wbChwcmVmZXJlbmNlc1JlZiktPnNldEJvb2xWYWx1ZUZvcktleSh0b1dURlN0cmluZyhrZXkp
LCB2YWx1ZSk7Cit9CisKK3ZvaWQgV0tQcmVmZXJlbmNlc1NldERvdWJsZVZhbHVlRm9yS2V5KFdL
UHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYsIGRvdWJsZSB2YWx1ZSwgV0tTdHJpbmdSZWYg
a2V5KQoreworICAgIHRvSW1wbChwcmVmZXJlbmNlc1JlZiktPnNldEJvb2xWYWx1ZUZvcktleSh0
b1dURlN0cmluZyhrZXkpLCB2YWx1ZSk7Cit9CisKK3ZvaWQgV0tQcmVmZXJlbmNlc1NldFVJbnQz
MlZhbHVlRm9yS2V5KFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYsIHVpbnQzMl90IHZh
bHVlLCBXS1N0cmluZ1JlZiBrZXkpCit7CisgICAgdG9JbXBsKHByZWZlcmVuY2VzUmVmKS0+c2V0
VUludDMyVmFsdWVGb3JLZXkodG9XVEZTdHJpbmcoa2V5KSwgdmFsdWUpOworfQorCit2b2lkIFdL
UHJlZmVyZW5jZXNTZXRTdHJpbmdWYWx1ZUZvcktleShXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVu
Y2VzUmVmLCBXS1N0cmluZ1JlZiB2YWx1ZSwgV0tTdHJpbmdSZWYga2V5KQoreworICAgIHRvSW1w
bChwcmVmZXJlbmNlc1JlZiktPnNldFN0cmluZ1ZhbHVlRm9yS2V5KHRvV1RGU3RyaW5nKGtleSks
IHRvV1RGU3RyaW5nKHZhbHVlKSk7Cit9CisKIHZvaWQgV0tQcmVmZXJlbmNlc1Jlc2V0VGVzdFJ1
bm5lck92ZXJyaWRlcyhXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmKQogewogICAgIC8v
IEN1cnJlbnRseSB3ZSByZXNldCB0aGUgb3ZlcnJpZGVzIG9uIHRoZSB3ZWIgcHJvY2VzcyB3aGVu
IHByZWZlcmVuY2VzRGlkQ2hhbmdlKCkgaXMgY2FsbGVkLiBTaW5jZSBXVFIgcHJlZmVyZW5jZXMK
SW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXNSZWZQcml2
YXRlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQcmVm
ZXJlbmNlc1JlZlByaXZhdGUuaAkocmV2aXNpb24gMjY4MzI2KQorKysgU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlc1JlZlByaXZhdGUuaAkod29ya2luZyBjb3B5KQpA
QCAtNTUsNiArNTUsMTMgQEAgV0tfRVhQT1JUIHZvaWQgV0tQcmVmZXJlbmNlc1NldEV4cGVyaW1l
bgogV0tfRVhQT1JUIHZvaWQgV0tQcmVmZXJlbmNlc1Jlc2V0QWxsSW50ZXJuYWxEZWJ1Z0ZlYXR1
cmVzKFdLUHJlZmVyZW5jZXNSZWYpOwogV0tfRVhQT1JUIHZvaWQgV0tQcmVmZXJlbmNlc1NldElu
dGVybmFsRGVidWdGZWF0dXJlRm9yS2V5KFdLUHJlZmVyZW5jZXNSZWYsIGJvb2wsIFdLU3RyaW5n
UmVmKTsKIAorLy8gVGhlIGZvbGxvd2luZyBnZW5lcmljIHNldHRlciBmdW5jdGlvbnMgYXJlIG9u
bHkgaW50ZW5kZWQgZm9yIHVzZSBieSB0ZXN0aW5nIGluZnJhc3RydWN0dXJlLgorV0tfRVhQT1JU
IHZvaWQgV0tQcmVmZXJlbmNlc1NldEJvb2xWYWx1ZUZvcktleShXS1ByZWZlcmVuY2VzUmVmIHBy
ZWZlcmVuY2VzUmVmLCBib29sIHZhbHVlLCBXS1N0cmluZ1JlZiBrZXkpOworV0tfRVhQT1JUIHZv
aWQgV0tQcmVmZXJlbmNlc1NldERvdWJsZVZhbHVlRm9yS2V5KFdLUHJlZmVyZW5jZXNSZWYgcHJl
ZmVyZW5jZXNSZWYsIGRvdWJsZSB2YWx1ZSwgV0tTdHJpbmdSZWYga2V5KTsKK1dLX0VYUE9SVCB2
b2lkIFdLUHJlZmVyZW5jZXNTZXRVSW50MzJWYWx1ZUZvcktleShXS1ByZWZlcmVuY2VzUmVmIHBy
ZWZlcmVuY2VzUmVmLCB1aW50MzJfdCB2YWx1ZSwgV0tTdHJpbmdSZWYga2V5KTsKK1dLX0VYUE9S
VCB2b2lkIFdLUHJlZmVyZW5jZXNTZXRTdHJpbmdWYWx1ZUZvcktleShXS1ByZWZlcmVuY2VzUmVm
IHByZWZlcmVuY2VzUmVmLCBXS1N0cmluZ1JlZiB2YWx1ZSwgV0tTdHJpbmdSZWYga2V5KTsKKwor
Ly8gRm9yIFRlc3QgUnVubmVyIFVzZSBvbmx5LgogV0tfRVhQT1JUIHZvaWQgV0tQcmVmZXJlbmNl
c1Jlc2V0VGVzdFJ1bm5lck92ZXJyaWRlcyhXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVm
KTsKIAogLy8gRGVmYXVsdHMgdG8gZmFsc2UuCkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYktpdC54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2Vi
S2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDI2ODMyNikKKysrIFNvdXJj
ZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkK
QEAgLTEzMTIsNiArMTMxMiw3IEBACiAJCTdDRTREMjI4MUE0OTE2QzIwMEM3RjE1MiAvKiBXZWJQ
cm9jZXNzUG9vbE1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA3Q0U0RDIyNjFBNDkxNkMyMDBDN0YxNTIgLyogV2ViUHJvY2Vzc1Bvb2xNZXNz
YWdlcy5oICovOyB9OwogCQk3Q0U5Q0UxMDFGQTA3NjdBMDAwMTc3REUgLyogV2ViUGFnZVVwZGF0
ZVByZWZlcmVuY2VzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDdDRTlDRTBGMUZBMDc2NEQwMDAxNzdERSAvKiBXZWJQYWdlVXBkYXRlUHJlZmVyZW5j
ZXMuY3BwICovOyB9OwogCQk3Q0VCMDBERDFGQTY5QUJFMDA2NTQ3M0IgLyogV2ViUHJlZmVyZW5j
ZXNFeHBlcmltZW50YWxGZWF0dXJlcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA3Q0VCMDBEQzFGQTY5QTg5MDA2NTQ3M0IgLyogV2ViUHJlZmVyZW5j
ZXNFeHBlcmltZW50YWxGZWF0dXJlcy5jcHAgKi87IH07CisJCTdDRjE5MDcxMjUzMzhGMzgwMEFC
RTE4MyAvKiBXZWJQcmVmZXJlbmNlc0dldHRlclNldHRlcnMuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0NGMTkwNzAyNTMzOEVGRjAwQUJFMTgzIC8q
IFdlYlByZWZlcmVuY2VzR2V0dGVyU2V0dGVycy5jcHAgKi87IH07CiAJCTdDRjQ3RkY3MTcyNzVC
NzEwMDhBQ0I5MSAvKiBXS0J1bmRsZVBhZ2VCYW5uZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDRjQ3RkY1MTcyNzVCNzEwMDhBQ0I5MSAvKiBXS0J1
bmRsZVBhZ2VCYW5uZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk3Q0Y0N0ZGQjE3Mjc1QzU3MDA4QUNCOTEgLyogUGFnZUJhbm5lci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0NGNDdGRjkxNzI3NUM1
NzAwOEFDQjkxIC8qIFBhZ2VCYW5uZXIuaCAqLzsgfTsKIAkJN0NGNDdGRkYxNzI3NkFFMzAwOEFD
QjkxIC8qIFdLQnVuZGxlUGFnZUJhbm5lck1hYy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gN0NGNDdGRkQxNzI3NkFFMzAwOEFDQjkxIC8qIFdLQnVuZGxl
UGFnZUJhbm5lck1hYy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CkBAIC00MzMyLDYgKzQzMzMsNyBAQAogCQk3Q0U5Q0UwRjFGQTA3NjREMDAwMTc3REUg
LyogV2ViUGFnZVVwZGF0ZVByZWZlcmVuY2VzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFdlYlBh
Z2VVcGRhdGVQcmVmZXJlbmNlcy5jcHA7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL1dl
YlBhZ2VVcGRhdGVQcmVmZXJlbmNlcy5jcHA7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19E
SVI7IH07CiAJCTdDRUIwMERDMUZBNjlBODkwMDY1NDczQiAvKiBXZWJQcmVmZXJlbmNlc0V4cGVy
aW1lbnRhbEZlYXR1cmVzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFdlYlByZWZlcmVuY2VzRXhw
ZXJpbWVudGFsRmVhdHVyZXMuY3BwOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJQ
cmVmZXJlbmNlc0V4cGVyaW1lbnRhbEZlYXR1cmVzLmNwcDsgc291cmNlVHJlZSA9IEJVSUxUX1BS
T0RVQ1RTX0RJUjsgfTsKIAkJN0NFRkE5NjAxQUMwOTk5MzAwQjkxMEZEIC8qIEFQSUNvbnRlbnRS
dWxlTGlzdFN0b3JlQ29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBh
dGggPSBBUElDb250ZW50UnVsZUxpc3RTdG9yZUNvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk3Q0YxOTA3MDI1MzM4RUZGMDBBQkUxODMgLyogV2ViUHJlZmVyZW5jZXNHZXR0
ZXJTZXR0ZXJzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFdlYlByZWZlcmVuY2VzR2V0dGVyU2V0
dGVycy5jcHA7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYlByZWZlcmVuY2VzR2V0
dGVyU2V0dGVycy5jcHA7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTdD
RjQ3RkY0MTcyNzVCNzEwMDhBQ0I5MSAvKiBXS0J1bmRsZVBhZ2VCYW5uZXIuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV0tCdW5kbGVQYWdlQmFubmVyLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0NGNDdGRjUxNzI3NUI3MTAwOEFDQjkxIC8qIFdL
QnVuZGxlUGFnZUJhbm5lci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS0J1
bmRsZVBhZ2VCYW5uZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0NGNDdGRjkx
NzI3NUM1NzAwOEFDQjkxIC8qIFBhZ2VCYW5uZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gUGFnZUJhbm5lci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTAy
NTksNiArMTAyNjEsNyBAQAogCQkJCTFBQjFGNzk1MUQxQjM2MTMwMDdDOUJEMSAvKiBXZWJQYXlt
ZW50Q29vcmRpbmF0b3JQcm94eU1lc3NhZ2VzLmggKi8sCiAJCQkJN0NERTczQTMxRjlEQUI2NTAw
MzkwMzEyIC8qIFdlYlByZWZlcmVuY2VzRGVmaW5pdGlvbnMuaCAqLywKIAkJCQk3Q0VCMDBEQzFG
QTY5QTg5MDA2NTQ3M0IgLyogV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWxGZWF0dXJlcy5jcHAg
Ki8sCisJCQkJN0NGMTkwNzAyNTMzOEVGRjAwQUJFMTgzIC8qIFdlYlByZWZlcmVuY2VzR2V0dGVy
U2V0dGVycy5jcHAgKi8sCiAJCQkJMzFCMzYyOTgyMTQxRjZFMDAwN0JGQTUzIC8qIFdlYlByZWZl
cmVuY2VzSW50ZXJuYWxEZWJ1Z0ZlYXR1cmVzLmNwcCAqLywKIAkJCQk3Q0IxMDBFRTFGQTJENzRB
MDAxNzI5RUUgLyogV2ViUHJlZmVyZW5jZXNLZXlzLmNwcCAqLywKIAkJCQk3Q0IxMDBFRjFGQTJE
NzRCMDAxNzI5RUUgLyogV2ViUHJlZmVyZW5jZXNLZXlzLmggKi8sCkBAIC0xMzE2MSw2ICsxMzE2
NCw3IEBACiAJCQkJMkQ5MkE3OEQyMTJCNkFCMTAwRjQ5M0ZEIC8qIFdlYlBsYXRmb3JtVG91Y2hQ
b2ludC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyRDkxMzQ0RTIxMkNGOUYwMDAxMjhBRkQgLyog
V2ViUGx1Z2luSW5mb1Byb3ZpZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdDRUIwMEREMUZB
NjlBQkUwMDY1NDczQiAvKiBXZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbEZlYXR1cmVzLmNwcCBp
biBTb3VyY2VzICovLAorCQkJCTdDRjE5MDcxMjUzMzhGMzgwMEFCRTE4MyAvKiBXZWJQcmVmZXJl
bmNlc0dldHRlclNldHRlcnMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzFCMzYyOTkyMTQxRjZF
ODAwN0JGQTUzIC8qIFdlYlByZWZlcmVuY2VzSW50ZXJuYWxEZWJ1Z0ZlYXR1cmVzLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTdDQjEwMEYxMUZBMzg1OEEwMDE3MjlFRSAvKiBXZWJQcmVmZXJlbmNl
c0tleXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NCMTAwRjQxRkEzODU5MjAwMTcyOUVFIC8q
IFdlYlByZWZlcmVuY2VzU3RvcmVEZWZhdWx0c01hcC5jcHAgaW4gU291cmNlcyAqLywKSW5kZXg6
IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJldmlzaW9u
IDI2ODMyNikKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDky
IEBACisyMDIwLTEwLTExICBTYW0gV2VpbmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KKworICAgICAg
ICBbUHJlZmVyZW5jZXNdIEludHJvZHVjZSBzdHJpbmcgYmFzZWQgU1BJIGZvciBXS1ByZWZlcmVu
Y2VzIHRvIGFsbG93IHRlc3RzIHRvIGNoYW5nZSBpbnRlcm5hbCBiZWhhdmlvciB3aXRob3V0IGFs
d2F5cyBhZGRpbmcgYWRkaXRpb25hbCBTUEkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIxNzU4MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFtXSVBdCisKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rl
c3RDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OmluaXRpYWxp
emUpOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6Y3JlYXRlV2ViVmlld1dpdGhPcHRp
b25zKToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OnJlc2V0UHJlZmVyZW5jZXNUb0Nv
bnNpc3RlbnRWYWx1ZXMpOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6cmVzZXRTdGF0
ZVRvQ29uc2lzdGVudFZhbHVlcyk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpwbGF0
Zm9ybVJlc2V0U3RhdGVUb0NvbnNpc3RlbnRWYWx1ZXMpOiBEZWxldGVkLgorICAgICAgICAqIFdl
YktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVu
bmVyL1Rlc3RPcHRpb25zLmNwcDoKKyAgICAgICAgKFdUUjo6Ym9vbERlZmF1bHRzTWFwKToKKyAg
ICAgICAgKFdUUjo6ZG91YmxlRGVmYXVsdHNNYXApOgorICAgICAgICAoV1RSOjpzdHJpbmdEZWZh
dWx0c01hcCk6CisgICAgICAgIChXVFI6OnN0cmluZ1ZlY3RvckRlZmF1bHRzTWFwKToKKyAgICAg
ICAgKFdUUjo6a2V5VHlwZU1hcCk6CisgICAgICAgIChXVFI6OlRlc3RPcHRpb25zOjpib29sV0tQ
cmVmZXJlbmNlcyBjb25zdCk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0T3B0aW9u
cy5oOgorICAgICAgICAoV1RSOjpUZXN0T3B0aW9uczo6YWxsb3dzTGlua1ByZXZpZXcgY29uc3Qp
OgorICAgICAgICAoV1RSOjpUZXN0T3B0aW9uczo6ZHVtcEpTQ29uc29sZUxvZ0luU3RkRXJyIGNv
bnN0KToKKyAgICAgICAgKFdUUjo6VGVzdE9wdGlvbnM6OmVuYWJsZUF0dGFjaG1lbnRFbGVtZW50
IGNvbnN0KToKKyAgICAgICAgKFdUUjo6VGVzdE9wdGlvbnM6OmVuYWJsZUluQXBwQnJvd3NlclBy
aXZhY3kgY29uc3QpOgorICAgICAgICAoV1RSOjpUZXN0T3B0aW9uczo6aWdub3JlU3luY2hyb25v
dXNNZXNzYWdpbmdUaW1lb3V0cyBjb25zdCk6CisgICAgICAgIChXVFI6OlRlc3RPcHRpb25zOjpp
Z25vcmVzVmlld3BvcnRTY2FsZUxpbWl0cyBjb25zdCk6CisgICAgICAgIChXVFI6OlRlc3RPcHRp
b25zOjppc0FwcEJvdW5kV2ViVmlldyBjb25zdCk6CisgICAgICAgIChXVFI6OlRlc3RPcHRpb25z
OjpwdW5jaE91dFdoaXRlQmFja2dyb3VuZHNJbkRhcmtNb2RlIGNvbnN0KToKKyAgICAgICAgKFdU
Ujo6VGVzdE9wdGlvbnM6OnJ1blNpbmdseSBjb25zdCk6CisgICAgICAgIChXVFI6OlRlc3RPcHRp
b25zOjpzaG91bGRIYW5kbGVSdW5PcGVuUGFuZWwgY29uc3QpOgorICAgICAgICAoV1RSOjpUZXN0
T3B0aW9uczo6c2hvdWxkUHJlc2VudFBvcG92ZXJzIGNvbnN0KToKKyAgICAgICAgKFdUUjo6VGVz
dE9wdGlvbnM6OnNob3VsZFNob3dTcGVsbENoZWNraW5nRG90cyBjb25zdCk6CisgICAgICAgIChX
VFI6OlRlc3RPcHRpb25zOjpzaG91bGRTaG93VG91Y2hlcyBjb25zdCk6CisgICAgICAgIChXVFI6
OlRlc3RPcHRpb25zOjpzaG91bGRTaG93V2ViVmlldyBjb25zdCk6CisgICAgICAgIChXVFI6OlRl
c3RPcHRpb25zOjp1c2VDaGFyYWN0ZXJTZWxlY3Rpb25HcmFudWxhcml0eSBjb25zdCk6CisgICAg
ICAgIChXVFI6OlRlc3RPcHRpb25zOjp1c2VEYXRhRGV0ZWN0aW9uIGNvbnN0KToKKyAgICAgICAg
KFdUUjo6VGVzdE9wdGlvbnM6OnVzZUVwaGVtZXJhbFNlc3Npb24gY29uc3QpOgorICAgICAgICAo
V1RSOjpUZXN0T3B0aW9uczo6dXNlRmxleGlibGVWaWV3cG9ydCBjb25zdCk6CisgICAgICAgIChX
VFI6OlRlc3RPcHRpb25zOjp1c2VSZW1vdGVMYXllclRyZWUgY29uc3QpOgorICAgICAgICAoV1RS
OjpUZXN0T3B0aW9uczo6dXNlVGhyZWFkZWRTY3JvbGxpbmcgY29uc3QpOgorICAgICAgICAoV1RS
OjpUZXN0T3B0aW9uczo6ZGV2aWNlU2NhbGVGYWN0b3IgY29uc3QpOgorICAgICAgICAoV1RSOjpU
ZXN0T3B0aW9uczo6dmlld1dpZHRoIGNvbnN0KToKKyAgICAgICAgKFdUUjo6VGVzdE9wdGlvbnM6
OmFkZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVzIGNvbnN0KToKKyAgICAgICAgKFdUUjo6VGVz
dE9wdGlvbnM6OmFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllciBjb25zdCk6CisgICAgICAgIChX
VFI6OlRlc3RPcHRpb25zOjpjb250ZW50TW9kZSBjb25zdCk6CisgICAgICAgIChXVFI6OlRlc3RP
cHRpb25zOjpqc2NPcHRpb25zIGNvbnN0KToKKyAgICAgICAgKFdUUjo6VGVzdE9wdGlvbnM6OnN0
YW5kYWxvbmVXZWJBcHBsaWNhdGlvblVSTCBjb25zdCk6CisgICAgICAgIChXVFI6OlRlc3RPcHRp
b25zOjp1c2VBY2NlbGVyYXRlZERyYXdpbmcgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV1RS
OjpUZXN0T3B0aW9uczo6dXNlTW9ja1Njcm9sbGJhcnMgY29uc3QpOiBEZWxldGVkLgorICAgICAg
ICAoV1RSOjpUZXN0T3B0aW9uczo6bmVlZHNTaXRlU3BlY2lmaWNRdWlya3MgY29uc3QpOiBEZWxl
dGVkLgorICAgICAgICAoV1RSOjpUZXN0T3B0aW9uczo6ZW5hYmxlSW50ZXJzZWN0aW9uT2JzZXJ2
ZXIgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV1RSOjpUZXN0T3B0aW9uczo6ZW5hYmxlTWVu
dUl0ZW1FbGVtZW50IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdUUjo6VGVzdE9wdGlvbnM6
OmVuYWJsZUtleWdlbkVsZW1lbnQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV1RSOjpUZXN0
T3B0aW9uczo6ZW5hYmxlTW9kZXJuTWVkaWFDb250cm9scyBjb25zdCk6IERlbGV0ZWQuCisgICAg
ICAgIChXVFI6OlRlc3RPcHRpb25zOjplbmFibGVQb2ludGVyTG9jayBjb25zdCk6IERlbGV0ZWQu
CisgICAgICAgIChXVFI6OlRlc3RPcHRpb25zOjplbmFibGVXZWJBdXRoZW50aWNhdGlvbiBjb25z
dCk6IERlbGV0ZWQuCisgICAgICAgIChXVFI6OlRlc3RPcHRpb25zOjplbmFibGVXZWJBdXRoZW50
aWNhdGlvbkxvY2FsQXV0aGVudGljYXRvciBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXVFI6
OlRlc3RPcHRpb25zOjplbmFibGVJbnNwZWN0b3JBZGRpdGlvbnMgY29uc3QpOiBEZWxldGVkLgor
ICAgICAgICAoV1RSOjpUZXN0T3B0aW9uczo6YWxsb3dDcm9zc09yaWdpblN1YnJlc291cmNlc1Rv
QXNrRm9yQ3JlZGVudGlhbHMgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV1RSOjpUZXN0T3B0
aW9uczo6ZG9tUGFzdGVBbGxvd2VkIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdUUjo6VGVz
dE9wdGlvbnM6OmVuYWJsZUNvbG9yRmlsdGVyIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdU
Ujo6VGVzdE9wdGlvbnM6OmNoZWNrRm9yV29ybGRMZWFrcyBjb25zdCk6IERlbGV0ZWQuCisgICAg
ICAgIChXVFI6OlRlc3RPcHRpb25zOjpzaG91bGRJZ25vcmVNZXRhVmlld3BvcnQgY29uc3QpOiBE
ZWxldGVkLgorICAgICAgICAoV1RSOjpUZXN0T3B0aW9uczo6ZW5hYmxlU2VydmljZUNvbnRyb2xz
IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdUUjo6VGVzdE9wdGlvbnM6OmVuYWJsZUFwcE5h
cCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXVFI6OlRlc3RPcHRpb25zOjplbmFibGVCYWNr
Rm9yd2FyZENhY2hlIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdUUjo6VGVzdE9wdGlvbnM6
OmVuYWJsZUNhcHR1cmVWaWRlb0luVUlQcm9jZXNzIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAg
KFdUUjo6VGVzdE9wdGlvbnM6OmVuYWJsZUNhcHR1cmVWaWRlb0luR1BVUHJvY2VzcyBjb25zdCk6
IERlbGV0ZWQuCisgICAgICAgIChXVFI6OlRlc3RPcHRpb25zOjplbmFibGVDYXB0dXJlQXVkaW9J
blVJUHJvY2VzcyBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXVFI6OlRlc3RPcHRpb25zOjpl
bmFibGVDYXB0dXJlQXVkaW9JbkdQVVByb2Nlc3MgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAo
V1RSOjpUZXN0T3B0aW9uczo6YWxsb3dUb3BOYXZpZ2F0aW9uVG9EYXRhVVJMcyBjb25zdCk6IERl
bGV0ZWQuCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0Q29udHJvbGxlckNv
Y29hLm1tOgorICAgICAgICAoV1RSOjppbml0aWFsaXplV2ViVmlld0NvbmZpZ3VyYXRpb24pOgor
ICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1DcmVhdGVXZWJWaWV3KToKKyAg
ICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OmNvY29hUmVzZXRTdGF0ZVRvQ29uc2lzdGVudFZh
bHVlcyk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9ndGsvVGVzdENvbnRyb2xsZXJHdGsu
Y3BwOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1SZXNldFN0YXRlVG9D
b25zaXN0ZW50VmFsdWVzKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL2lvcy9UZXN0Q29u
dHJvbGxlcklPUy5tbToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtUmVz
ZXRQcmVmZXJlbmNlc1RvQ29uc2lzdGVudFZhbHVlcyk6CisgICAgICAgIChXVFI6OlRlc3RDb250
cm9sbGVyOjpwbGF0Zm9ybUNvbmZpZ3VyZVZpZXdGb3JUZXN0KToKKyAgICAgICAgKiBXZWJLaXRU
ZXN0UnVubmVyL3dpbi9UZXN0Q29udHJvbGxlcldpbi5jcHA6CisgICAgICAgIChXVFI6OlRlc3RD
b250cm9sbGVyOjpwbGF0Zm9ybVJlc2V0U3RhdGVUb0NvbnNpc3RlbnRWYWx1ZXMpOgorICAgICAg
ICAqIFdlYktpdFRlc3RSdW5uZXIvd3BlL1Rlc3RDb250cm9sbGVyV1BFLmNwcDoKKyAgICAgICAg
KFdUUjo6VGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtUmVzZXRTdGF0ZVRvQ29uc2lzdGVudFZhbHVl
cyk6CisKIDIwMjAtMTAtMTAgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgogCiAgICAg
ICAgIFJFR1JFU1NJT04gKHIyNjc3NjEpOiBlZGl0aW5nL21hYy9zcGVsbGluZy9hdXRvY29ycmVj
dGlvbi1jb250cmFjdGlvbi5odG1sIGlzIGEgY29uc3RhbnQgdGltZW91dCBvbiBtYWNPUyB3azIg
RGVidWcKSW5kZXg6IFRvb2xzL0R1bXBSZW5kZXJUcmVlL0R1bXBSZW5kZXJUcmVlQ29tbW9uLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBUb29scy9EdW1wUmVuZGVyVHJlZS9EdW1wUmVuZGVyVHJlZUNvbW1v
bi5jcHAJKHJldmlzaW9uIDI2ODMyNikKKysrIFRvb2xzL0R1bXBSZW5kZXJUcmVlL0R1bXBSZW5k
ZXJUcmVlQ29tbW9uLmNwcAkobm9uZXhpc3RlbnQpCkBAIC0xLDExNCArMCwwIEBACi0vKgotICog
Q29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KLSAqCi0g
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0g
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5o
IgotI2luY2x1ZGUgIkR1bXBSZW5kZXJUcmVlLmgiCi0KLSNpbmNsdWRlIDxhbGdvcml0aG0+Ci0j
aW5jbHVkZSA8Y3R5cGUuaD4KLSNpbmNsdWRlIDxzdGRpby5oPgotI2luY2x1ZGUgPHN0ZGxpYi5o
PgotI2luY2x1ZGUgPHN0cmluZz4KLQotY2xhc3MgQ29tbWFuZFRva2VuaXplciB7Ci1wdWJsaWM6
Ci0gICAgZXhwbGljaXQgQ29tbWFuZFRva2VuaXplcihjb25zdCBzdGQ6OnN0cmluZyYgaW5wdXQp
Ci0gICAgICAgIDogbV9pbnB1dChpbnB1dCkKLSAgICAgICAgLCBtX3Bvc05leHRTZXBhcmF0b3Io
MCkKLSAgICB7Ci0gICAgICAgIHB1bXAoKTsKLSAgICB9Ci0KLSAgICBib29sIGhhc05leHQoKSBj
b25zdDsKLSAgICBzdGQ6OnN0cmluZyBuZXh0KCk7Ci0KLXByaXZhdGU6Ci0gICAgdm9pZCBwdW1w
KCk7Ci0gICAgc3RhdGljIGNvbnN0IGNoYXIga1NlcGFyYXRvciA9ICdcJyc7Ci0gICAgY29uc3Qg
c3RkOjpzdHJpbmcmIG1faW5wdXQ7Ci0gICAgc3RkOjpzdHJpbmcgbV9uZXh0OwotICAgIHNpemVf
dCBtX3Bvc05leHRTZXBhcmF0b3I7Ci19OwotCi12b2lkIENvbW1hbmRUb2tlbml6ZXI6OnB1bXAo
KQotewotICAgIGlmIChtX3Bvc05leHRTZXBhcmF0b3IgPT0gc3RkOjpzdHJpbmc6Om5wb3MgfHwg
bV9wb3NOZXh0U2VwYXJhdG9yID09IG1faW5wdXQuc2l6ZSgpKSB7Ci0gICAgICAgIG1fbmV4dCA9
IHN0ZDo6c3RyaW5nKCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0gICAgc2l6ZV90IHN0YXJ0
ID0gbV9wb3NOZXh0U2VwYXJhdG9yID8gbV9wb3NOZXh0U2VwYXJhdG9yICsgMSA6IDA7Ci0gICAg
bV9wb3NOZXh0U2VwYXJhdG9yID0gbV9pbnB1dC5maW5kKGtTZXBhcmF0b3IsIHN0YXJ0KTsKLSAg
ICBzaXplX3Qgc2l6ZSA9IG1fcG9zTmV4dFNlcGFyYXRvciA9PSBzdGQ6OnN0cmluZzo6bnBvcyA/
IHN0ZDo6c3RyaW5nOjpucG9zIDogbV9wb3NOZXh0U2VwYXJhdG9yIC0gc3RhcnQ7Ci0gICAgbV9u
ZXh0ID0gc3RkOjpzdHJpbmcobV9pbnB1dCwgc3RhcnQsIHNpemUpOwotfQotCi1zdGQ6OnN0cmlu
ZyBDb21tYW5kVG9rZW5pemVyOjpuZXh0KCkKLXsKLSAgICBBU1NFUlQoaGFzTmV4dCgpKTsKLQot
ICAgIHN0ZDo6c3RyaW5nIG9sZE5leHQgPSBtX25leHQ7Ci0gICAgcHVtcCgpOwotICAgIHJldHVy
biBvbGROZXh0OwotfQotCi1ib29sIENvbW1hbmRUb2tlbml6ZXI6Omhhc05leHQoKSBjb25zdAot
ewotICAgIHJldHVybiAhbV9uZXh0LmVtcHR5KCk7Ci19Ci0KLU5PX1JFVFVSTiBzdGF0aWMgdm9p
ZCBkaWUoY29uc3Qgc3RkOjpzdHJpbmcmIGlucHV0TGluZSkKLXsKLSAgICBmcHJpbnRmKHN0ZGVy
ciwgIlVuZXhwZWN0ZWQgaW5wdXQgbGluZTogJXNcbiIsIGlucHV0TGluZS5jX3N0cigpKTsKLSAg
ICBleGl0KDEpOwotfQotCi1UZXN0Q29tbWFuZCBwYXJzZUlucHV0TGluZShjb25zdCBzdGQ6OnN0
cmluZyYgaW5wdXRMaW5lKQotewotICAgIFRlc3RDb21tYW5kIHJlc3VsdDsKLSAgICBDb21tYW5k
VG9rZW5pemVyIHRva2VuaXplcihpbnB1dExpbmUpOwotICAgIGlmICghdG9rZW5pemVyLmhhc05l
eHQoKSkKLSAgICAgICAgZGllKGlucHV0TGluZSk7Ci0KLSAgICBzdGQ6OnN0cmluZyBhcmcgPSB0
b2tlbml6ZXIubmV4dCgpOwotICAgIHJlc3VsdC5wYXRoT3JVUkwgPSBhcmc7Ci0gICAgd2hpbGUg
KHRva2VuaXplci5oYXNOZXh0KCkpIHsKLSAgICAgICAgYXJnID0gdG9rZW5pemVyLm5leHQoKTsK
LSAgICAgICAgaWYgKGFyZyA9PSAiLS10aW1lb3V0IikgewotICAgICAgICAgICAgc3RkOjpzdHJp
bmcgdGltZW91dFRva2VuID0gdG9rZW5pemVyLm5leHQoKTsKLSAgICAgICAgICAgIHJlc3VsdC50
aW1lb3V0ID0gYXRvaSh0aW1lb3V0VG9rZW4uY19zdHIoKSk7Ci0gICAgICAgIH0gZWxzZSBpZiAo
YXJnID09ICItcCIgfHwgYXJnID09ICItLXBpeGVsLXRlc3QiKSB7Ci0gICAgICAgICAgICByZXN1
bHQuc2hvdWxkRHVtcFBpeGVscyA9IHRydWU7Ci0gICAgICAgICAgICBpZiAodG9rZW5pemVyLmhh
c05leHQoKSkKLSAgICAgICAgICAgICAgICByZXN1bHQuZXhwZWN0ZWRQaXhlbEhhc2ggPSB0b2tl
bml6ZXIubmV4dCgpOwotICAgICAgICB9IGVsc2UgaWYgKGFyZyA9PSAiLS1kdW1wLWpzY29uc29s
ZWxvZy1pbi1zdGRlcnIiKQotICAgICAgICAgICAgcmVzdWx0LmR1bXBKU0NvbnNvbGVMb2dJblN0
ZEVyciA9IHRydWU7Ci0gICAgICAgIGVsc2UgaWYgKGFyZyA9PSBzdGQ6OnN0cmluZygiLS1hYnNv
bHV0ZVBhdGgiKSkKLSAgICAgICAgICAgIHJlc3VsdC5hYnNvbHV0ZVBhdGggPSB0b2tlbml6ZXIu
bmV4dCgpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBkaWUoaW5wdXRMaW5lKTsKLSAgICB9
Ci0KLSAgICByZXR1cm4gcmVzdWx0OwotfQpJbmRleDogVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9U
ZXN0Q29udHJvbGxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9U
ZXN0Q29udHJvbGxlci5jcHAJKHJldmlzaW9uIDI2ODMyNikKKysrIFRvb2xzL1dlYktpdFRlc3RS
dW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NjMsMTQgKzQ2Mywx
NCBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjppbml0aWFsaXplKGludCBhcmdjCiAgICAgbV9nY0Jl
dHdlZW5UZXN0cyA9IG9wdGlvbnMuZ2NCZXR3ZWVuVGVzdHM7CiAgICAgbV9zaG91bGREdW1wUGl4
ZWxzRm9yQWxsVGVzdHMgPSBvcHRpb25zLnNob3VsZER1bXBQaXhlbHNGb3JBbGxUZXN0czsKICAg
ICBtX2ZvcmNlQ29tcGxleFRleHQgPSBvcHRpb25zLmZvcmNlQ29tcGxleFRleHQ7Ci0gICAgbV9z
aG91bGRVc2VBY2NlbGVyYXRlZERyYXdpbmcgPSBvcHRpb25zLnNob3VsZFVzZUFjY2VsZXJhdGVk
RHJhd2luZzsKICAgICBtX3BhdGhzID0gb3B0aW9ucy5wYXRoczsKICAgICBtX2FsbG93ZWRIb3N0
cyA9IG9wdGlvbnMuYWxsb3dlZEhvc3RzOwogICAgIG1fY2hlY2tGb3JXb3JsZExlYWtzID0gb3B0
aW9ucy5jaGVja0ZvcldvcmxkTGVha3M7CiAgICAgbV9hbGxvd0FueUhUVFBTQ2VydGlmaWNhdGVG
b3JBbGxvd2VkSG9zdHMgPSBvcHRpb25zLmFsbG93QW55SFRUUFNDZXJ0aWZpY2F0ZUZvckFsbG93
ZWRIb3N0czsKLSAgICAKKwogICAgIG1fZ2xvYmFsRmVhdHVyZXMuaW50ZXJuYWxEZWJ1Z0ZlYXR1
cmVzID0gb3B0aW9ucy5pbnRlcm5hbEZlYXR1cmVzOwogICAgIG1fZ2xvYmFsRmVhdHVyZXMuZXhw
ZXJpbWVudGFsRmVhdHVyZXMgPSBvcHRpb25zLmV4cGVyaW1lbnRhbEZlYXR1cmVzOworICAgIG1f
Z2xvYmFsRmVhdHVyZXMuYm9vbEZlYXR1cmVzLmluc2VydCh7ICJ1c2VBY2NlbGVyYXRlZERyYXdp
bmciLCBvcHRpb25zLnNob3VsZFVzZUFjY2VsZXJhdGVkRHJhd2luZyB9KTsKICAgICBtX2dsb2Jh
bEZlYXR1cmVzLmJvb2xGZWF0dXJlcy5pbnNlcnQoeyAidXNlUmVtb3RlTGF5ZXJUcmVlIiwgb3B0
aW9ucy5zaG91bGRVc2VSZW1vdGVMYXllclRyZWUgfSk7CiAgICAgbV9nbG9iYWxGZWF0dXJlcy5i
b29sRmVhdHVyZXMuaW5zZXJ0KHsgInNob3VsZFNob3dXZWJWaWV3Iiwgb3B0aW9ucy5zaG91bGRT
aG93V2ViVmlldyB9KTsKICAgICBtX2dsb2JhbEZlYXR1cmVzLmJvb2xGZWF0dXJlcy5pbnNlcnQo
eyAic2hvdWxkU2hvd1RvdWNoZXMiLCBvcHRpb25zLnNob3VsZFNob3dUb3VjaGVzIH0pOwpAQCAt
NjU0LDYgKzY1NCw4IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OmNyZWF0ZVdlYlZpZXdXaXRoT3AK
ICAgICAvLyBGSVhNRTogTWlncmF0ZSB0aGVzZSBwcmVmZXJlbmNlcyB0byBXS0NvbnRleHRDb25m
aWd1cmF0aW9uUmVmLgogICAgIHJlc2V0UHJlZmVyZW5jZXNUb0NvbnNpc3RlbnRWYWx1ZXMob3B0
aW9ucyk7CiAKKyAgICBXS0hUVFBDb29raWVTdG9yZURlbGV0ZUFsbENvb2tpZXMoV0tXZWJzaXRl
RGF0YVN0b3JlR2V0SFRUUENvb2tpZVN0b3JlKHdlYnNpdGVEYXRhU3RvcmUoKSksIG51bGxwdHIs
IG51bGxwdHIpOworCiAgICAgcGxhdGZvcm1DcmVhdGVXZWJWaWV3KGNvbmZpZ3VyYXRpb24uZ2V0
KCksIG9wdGlvbnMpOwogICAgIFdLUGFnZVVJQ2xpZW50VjE0IHBhZ2VVSUNsaWVudCA9IHsKICAg
ICAgICAgeyAxNCwgbV9tYWluV2ViVmlldy5nZXQoKSB9LApAQCAtODQxLDM3ICs4NDMsMjMgQEAg
dm9pZCBUZXN0Q29udHJvbGxlcjo6cmVzZXRQcmVmZXJlbmNlc1RvQwogICAgIFdLUHJlZmVyZW5j
ZXNSZXNldEFsbEludGVybmFsRGVidWdGZWF0dXJlcyhwcmVmZXJlbmNlcyk7CiAKICAgICAvLyBT
ZXQgaW50ZXJuYWwgZmVhdHVyZXMgdGhhdCBoYXZlIGRpZmZlcmVudCBkZWZhdWx0IHZhbHVlcyBm
b3IgdGVzdGluZy4KLQogICAgIFdLUHJlZmVyZW5jZXNTZXRJbnRlcm5hbERlYnVnRmVhdHVyZUZv
cktleShwcmVmZXJlbmNlcywgZmFsc2UsIHRvV0soIkFzeW5jT3ZlcmZsb3dTY3JvbGxpbmdFbmFi
bGVkIikuZ2V0KCkpOwogICAgIFdLUHJlZmVyZW5jZXNTZXRJbnRlcm5hbERlYnVnRmVhdHVyZUZv
cktleShwcmVmZXJlbmNlcywgZmFsc2UsIHRvV0soIkFzeW5jRnJhbWVTY3JvbGxpbmdFbmFibGVk
IikuZ2V0KCkpOwotCi0jaWYgRU5BQkxFKElOUFVUX1RZUEVfREFURSkKICAgICBXS1ByZWZlcmVu
Y2VzU2V0SW50ZXJuYWxEZWJ1Z0ZlYXR1cmVGb3JLZXkocHJlZmVyZW5jZXMsIHRydWUsIHRvV0so
IklucHV0VHlwZURhdGVFbmFibGVkIikuZ2V0KCkpOwotI2VuZGlmCi0jaWYgRU5BQkxFKElOUFVU
X1RZUEVfREFURVRJTUVMT0NBTCkKICAgICBXS1ByZWZlcmVuY2VzU2V0SW50ZXJuYWxEZWJ1Z0Zl
YXR1cmVGb3JLZXkocHJlZmVyZW5jZXMsIHRydWUsIHRvV0soIklucHV0VHlwZURhdGVUaW1lTG9j
YWxFbmFibGVkIikuZ2V0KCkpOwotI2VuZGlmCi0jaWYgRU5BQkxFKElOUFVUX1RZUEVfTU9OVEgp
CiAgICAgV0tQcmVmZXJlbmNlc1NldEludGVybmFsRGVidWdGZWF0dXJlRm9yS2V5KHByZWZlcmVu
Y2VzLCB0cnVlLCB0b1dLKCJJbnB1dFR5cGVNb250aEVuYWJsZWQiKS5nZXQoKSk7Ci0jZW5kaWYK
LSNpZiBFTkFCTEUoSU5QVVRfVFlQRV9USU1FKQogICAgIFdLUHJlZmVyZW5jZXNTZXRJbnRlcm5h
bERlYnVnRmVhdHVyZUZvcktleShwcmVmZXJlbmNlcywgdHJ1ZSwgdG9XSygiSW5wdXRUeXBlVGlt
ZUVuYWJsZWQiKS5nZXQoKSk7Ci0jZW5kaWYKLSNpZiBFTkFCTEUoSU5QVVRfVFlQRV9XRUVLKQog
ICAgIFdLUHJlZmVyZW5jZXNTZXRJbnRlcm5hbERlYnVnRmVhdHVyZUZvcktleShwcmVmZXJlbmNl
cywgdHJ1ZSwgdG9XSygiSW5wdXRUeXBlV2Vla0VuYWJsZWQiKS5nZXQoKSk7Ci0jZW5kaWYKKyAg
ICBXS1ByZWZlcmVuY2VzU2V0SW50ZXJuYWxEZWJ1Z0ZlYXR1cmVGb3JLZXkocHJlZmVyZW5jZXMs
IGZhbHNlLCB0b1dLKCJTcGVha2VyU2VsZWN0aW9uUmVxdWlyZXNVc2VyR2VzdHVyZSIpLmdldCgp
KTsKIAogICAgIGZvciAoY29uc3QgYXV0byYgW2tleSwgdmFsdWVdICA6IG9wdGlvbnMuaW50ZXJu
YWxEZWJ1Z0ZlYXR1cmVzKCkpCiAgICAgICAgIFdLUHJlZmVyZW5jZXNTZXRJbnRlcm5hbERlYnVn
RmVhdHVyZUZvcktleShwcmVmZXJlbmNlcywgdmFsdWUsIHRvV0soa2V5KS5nZXQoKSk7CiAKLSNp
ZiBQTEFURk9STShDT0NPQSkKLSAgICBXS1ByZWZlcmVuY2VzU2V0Q2FwdHVyZVZpZGVvSW5VSVBy
b2Nlc3NFbmFibGVkKHByZWZlcmVuY2VzLCBvcHRpb25zLmVuYWJsZUNhcHR1cmVWaWRlb0luVUlQ
cm9jZXNzKCkpOwotICAgIFdLUHJlZmVyZW5jZXNTZXRDYXB0dXJlVmlkZW9JbkdQVVByb2Nlc3NF
bmFibGVkKHByZWZlcmVuY2VzLCBvcHRpb25zLmVuYWJsZUNhcHR1cmVWaWRlb0luR1BVUHJvY2Vz
cygpKTsKLSAgICBXS1ByZWZlcmVuY2VzU2V0Q2FwdHVyZUF1ZGlvSW5VSVByb2Nlc3NFbmFibGVk
KHByZWZlcmVuY2VzLCBvcHRpb25zLmVuYWJsZUNhcHR1cmVBdWRpb0luVUlQcm9jZXNzKCkpOwot
ICAgIFdLUHJlZmVyZW5jZXNTZXRDYXB0dXJlQXVkaW9JbkdQVVByb2Nlc3NFbmFibGVkKHByZWZl
cmVuY2VzLCBvcHRpb25zLmVuYWJsZUNhcHR1cmVBdWRpb0luR1BVUHJvY2VzcygpKTsKLSNlbmRp
ZgorICAgIGZvciAoY29uc3QgYXV0byYgW2tleSwgdmFsdWVdIDogb3B0aW9ucy5ib29sV0tQcmVm
ZXJlbmNlcygpKQorICAgICAgICBXS1ByZWZlcmVuY2VzU2V0Qm9vbFZhbHVlRm9yS2V5KHByZWZl
cmVuY2VzLCB2YWx1ZSwgdG9XSyhrZXkpLmdldCgpKTsKKworICAgIC8vIEZJWE1FOiBDb252ZXJ0
IHRoZXNlIHRvIGRlZmF1bHQgdmFsdWVzIGZvciBUZXN0T3B0aW9ucy4KICAgICBXS1ByZWZlcmVu
Y2VzU2V0UHJvY2Vzc1N3YXBPbk5hdmlnYXRpb25FbmFibGVkKHByZWZlcmVuY2VzLCBvcHRpb25z
LmNvbnRleHRPcHRpb25zKCkuc2hvdWxkRW5hYmxlUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24oKSk7
Ci0gICAgV0tQcmVmZXJlbmNlc1NldFBhZ2VWaXNpYmlsaXR5QmFzZWRQcm9jZXNzU3VwcHJlc3Np
b25FbmFibGVkKHByZWZlcmVuY2VzLCBvcHRpb25zLmVuYWJsZUFwcE5hcCgpKTsKICAgICBXS1By
ZWZlcmVuY2VzU2V0T2ZmbGluZVdlYkFwcGxpY2F0aW9uQ2FjaGVFbmFibGVkKHByZWZlcmVuY2Vz
LCB0cnVlKTsKICAgICBXS1ByZWZlcmVuY2VzU2V0U3VicGl4ZWxBbnRpYWxpYXNlZExheWVyVGV4
dEVuYWJsZWQocHJlZmVyZW5jZXMsIGZhbHNlKTsKICAgICBXS1ByZWZlcmVuY2VzU2V0WFNTQXVk
aXRvckVuYWJsZWQocHJlZmVyZW5jZXMsIGZhbHNlKTsKQEAgLTg4MiwxMyArODcwLDkgQEAgdm9p
ZCBUZXN0Q29udHJvbGxlcjo6cmVzZXRQcmVmZXJlbmNlc1RvQwogICAgIFdLUHJlZmVyZW5jZXNT
ZXRKYXZhU2NyaXB0UnVudGltZUZsYWdzKHByZWZlcmVuY2VzLCBrV0tKYXZhU2NyaXB0UnVudGlt
ZUZsYWdzQWxsRW5hYmxlZCk7CiAgICAgV0tQcmVmZXJlbmNlc1NldEphdmFTY3JpcHRDYW5PcGVu
V2luZG93c0F1dG9tYXRpY2FsbHkocHJlZmVyZW5jZXMsIHRydWUpOwogICAgIFdLUHJlZmVyZW5j
ZXNTZXRKYXZhU2NyaXB0Q2FuQWNjZXNzQ2xpcGJvYXJkKHByZWZlcmVuY2VzLCB0cnVlKTsKLSAg
ICBXS1ByZWZlcmVuY2VzU2V0RE9NUGFzdGVBbGxvd2VkKHByZWZlcmVuY2VzLCBvcHRpb25zLmRv
bVBhc3RlQWxsb3dlZCgpKTsKICAgICBXS1ByZWZlcmVuY2VzU2V0VW5pdmVyc2FsQWNjZXNzRnJv
bUZpbGVVUkxzQWxsb3dlZChwcmVmZXJlbmNlcywgdHJ1ZSk7CiAgICAgV0tQcmVmZXJlbmNlc1Nl
dEZpbGVBY2Nlc3NGcm9tRmlsZVVSTHNBbGxvd2VkKHByZWZlcmVuY2VzLCB0cnVlKTsKLSAgICBX
S1ByZWZlcmVuY2VzU2V0VG9wTmF2aWdhdGlvblRvRGF0YVVSTHNBbGxvd2VkKHByZWZlcmVuY2Vz
LCBvcHRpb25zLmFsbG93VG9wTmF2aWdhdGlvblRvRGF0YVVSTHMoKSk7Ci0jaWYgRU5BQkxFKEZV
TExTQ1JFRU5fQVBJKQogICAgIFdLUHJlZmVyZW5jZXNTZXRGdWxsU2NyZWVuRW5hYmxlZChwcmVm
ZXJlbmNlcywgdHJ1ZSk7Ci0jZW5kaWYKICAgICBXS1ByZWZlcmVuY2VzU2V0QXN5bmNocm9ub3Vz
UGx1Z2luSW5pdGlhbGl6YXRpb25FbmFibGVkKHByZWZlcmVuY2VzLCBmYWxzZSk7CiAgICAgV0tQ
cmVmZXJlbmNlc1NldEFzeW5jaHJvbm91c1BsdWdpbkluaXRpYWxpemF0aW9uRW5hYmxlZEZvckFs
bFBsdWdpbnMocHJlZmVyZW5jZXMsIGZhbHNlKTsKICAgICBXS1ByZWZlcmVuY2VzU2V0QXJ0aWZp
Y2lhbFBsdWdpbkluaXRpYWxpemF0aW9uRGVsYXlFbmFibGVkKHByZWZlcmVuY2VzLCBmYWxzZSk7
CkBAIC04OTcsMjIgKzg4MSw3IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OnJlc2V0UHJlZmVyZW5j
ZXNUb0MKICAgICBXS1ByZWZlcmVuY2VzU2V0RGF0YVRyYW5zZmVySXRlbXNFbmFibGVkKHByZWZl
cmVuY2VzLCB0cnVlKTsKICAgICBXS1ByZWZlcmVuY2VzU2V0Q3VzdG9tUGFzdGVib2FyZERhdGFF
bmFibGVkKHByZWZlcmVuY2VzLCB0cnVlKTsKICAgICBXS1ByZWZlcmVuY2VzU2V0RGlhbG9nRWxl
bWVudEVuYWJsZWQocHJlZmVyZW5jZXMsIHRydWUpOwotCi0gICAgV0tQcmVmZXJlbmNlc1NldE1v
Y2tTY3JvbGxiYXJzRW5hYmxlZChwcmVmZXJlbmNlcywgb3B0aW9ucy51c2VNb2NrU2Nyb2xsYmFy
cygpKTsKLSAgICBXS1ByZWZlcmVuY2VzU2V0TmVlZHNTaXRlU3BlY2lmaWNRdWlya3MocHJlZmVy
ZW5jZXMsIG9wdGlvbnMubmVlZHNTaXRlU3BlY2lmaWNRdWlya3MoKSk7Ci0gICAgV0tQcmVmZXJl
bmNlc1NldEF0dGFjaG1lbnRFbGVtZW50RW5hYmxlZChwcmVmZXJlbmNlcywgb3B0aW9ucy5lbmFi
bGVBdHRhY2htZW50RWxlbWVudCgpKTsKLSAgICBXS1ByZWZlcmVuY2VzU2V0TWVudUl0ZW1FbGVt
ZW50RW5hYmxlZChwcmVmZXJlbmNlcywgb3B0aW9ucy5lbmFibGVNZW51SXRlbUVsZW1lbnQoKSk7
Ci0gICAgV0tQcmVmZXJlbmNlc1NldEtleWdlbkVsZW1lbnRFbmFibGVkKHByZWZlcmVuY2VzLCBv
cHRpb25zLmVuYWJsZUtleWdlbkVsZW1lbnQoKSk7Ci0gICAgV0tQcmVmZXJlbmNlc1NldE1vZGVy
bk1lZGlhQ29udHJvbHNFbmFibGVkKHByZWZlcmVuY2VzLCBvcHRpb25zLmVuYWJsZU1vZGVybk1l
ZGlhQ29udHJvbHMoKSk7Ci0gICAgV0tQcmVmZXJlbmNlc1NldFdlYkF1dGhlbnRpY2F0aW9uRW5h
YmxlZChwcmVmZXJlbmNlcywgb3B0aW9ucy5lbmFibGVXZWJBdXRoZW50aWNhdGlvbigpKTsKLSAg
ICBXS1ByZWZlcmVuY2VzU2V0V2ViQXV0aGVudGljYXRpb25Mb2NhbEF1dGhlbnRpY2F0b3JFbmFi
bGVkKHByZWZlcmVuY2VzLCBvcHRpb25zLmVuYWJsZVdlYkF1dGhlbnRpY2F0aW9uTG9jYWxBdXRo
ZW50aWNhdG9yKCkpOwotICAgIFdLUHJlZmVyZW5jZXNTZXRBbGxvd0Nyb3NzT3JpZ2luU3VicmVz
b3VyY2VzVG9Bc2tGb3JDcmVkZW50aWFscyhwcmVmZXJlbmNlcywgb3B0aW9ucy5hbGxvd0Nyb3Nz
T3JpZ2luU3VicmVzb3VyY2VzVG9Bc2tGb3JDcmVkZW50aWFscygpKTsKLSAgICBXS1ByZWZlcmVu
Y2VzU2V0Q29sb3JGaWx0ZXJFbmFibGVkKHByZWZlcmVuY2VzLCBvcHRpb25zLmVuYWJsZUNvbG9y
RmlsdGVyKCkpOwotICAgIFdLUHJlZmVyZW5jZXNTZXRQdW5jaE91dFdoaXRlQmFja2dyb3VuZHNJ
bkRhcmtNb2RlKHByZWZlcmVuY2VzLCBvcHRpb25zLnB1bmNoT3V0V2hpdGVCYWNrZ3JvdW5kc0lu
RGFya01vZGUoKSk7Ci0gICAgV0tQcmVmZXJlbmNlc1NldFBhZ2VDYWNoZUVuYWJsZWQocHJlZmVy
ZW5jZXMsIG9wdGlvbnMuZW5hYmxlQmFja0ZvcndhcmRDYWNoZSgpKTsKLQogICAgIFdLUHJlZmVy
ZW5jZXNTZXREZWZhdWx0VGV4dEVuY29kaW5nTmFtZShwcmVmZXJlbmNlcywgdG9XSygiSVNPLTg4
NTktMSIpLmdldCgpKTsKLQogICAgIFdLUHJlZmVyZW5jZXNTZXRNaW5pbXVtRm9udFNpemUocHJl
ZmVyZW5jZXMsIDApOwogICAgIFdLUHJlZmVyZW5jZXNTZXRTdGFuZGFyZEZvbnRGYW1pbHkocHJl
ZmVyZW5jZXMsIHRvV0soIlRpbWVzIikuZ2V0KCkpOwogICAgIFdLUHJlZmVyZW5jZXNTZXRDdXJz
aXZlRm9udEZhbWlseShwcmVmZXJlbmNlcywgdG9XSygiQXBwbGUgQ2hhbmNlcnkiKS5nZXQoKSk7
CkBAIC05MjIsMjEgKzg5MSwxMyBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpyZXNldFByZWZlcmVu
Y2VzVG9DCiAgICAgV0tQcmVmZXJlbmNlc1NldFNhbnNTZXJpZkZvbnRGYW1pbHkocHJlZmVyZW5j
ZXMsIHRvV0soIkhlbHZldGljYSIpLmdldCgpKTsKICAgICBXS1ByZWZlcmVuY2VzU2V0U2VyaWZG
b250RmFtaWx5KHByZWZlcmVuY2VzLCB0b1dLKCJUaW1lcyIpLmdldCgpKTsKICAgICBXS1ByZWZl
cmVuY2VzU2V0QXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQocHJlZmVyZW5jZXMsIGZh
bHNlKTsKLSNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQogICAgIFdLUHJlZmVyZW5jZXNTZXRNZWRp
YVNvdXJjZUVuYWJsZWQocHJlZmVyZW5jZXMsIHRydWUpOwogICAgIFdLUHJlZmVyZW5jZXNTZXRT
b3VyY2VCdWZmZXJDaGFuZ2VUeXBlRW5hYmxlZChwcmVmZXJlbmNlcywgdHJ1ZSk7Ci0jZW5kaWYK
ICAgICBXS1ByZWZlcmVuY2VzU2V0SGlnaGxpZ2h0QVBJRW5hYmxlZChwcmVmZXJlbmNlcywgdHJ1
ZSk7Ci0KICAgICBXS1ByZWZlcmVuY2VzU2V0SGlkZGVuUGFnZURPTVRpbWVyVGhyb3R0bGluZ0Vu
YWJsZWQocHJlZmVyZW5jZXMsIGZhbHNlKTsKICAgICBXS1ByZWZlcmVuY2VzU2V0SGlkZGVuUGFn
ZUNTU0FuaW1hdGlvblN1c3BlbnNpb25FbmFibGVkKHByZWZlcmVuY2VzLCBmYWxzZSk7Ci0KLSAg
ICBXS1ByZWZlcmVuY2VzU2V0QWNjZWxlcmF0ZWREcmF3aW5nRW5hYmxlZChwcmVmZXJlbmNlcywg
bV9zaG91bGRVc2VBY2NlbGVyYXRlZERyYXdpbmcgfHwgb3B0aW9ucy51c2VBY2NlbGVyYXRlZERy
YXdpbmcoKSk7Ci0gICAgLy8gRklYTUU6IFdlIHNob3VsZCBiZSB0ZXN0aW5nIHRoZSBkZWZhdWx0
LgotICAgIFdLUHJlZmVyZW5jZXNTZXRTdG9yYWdlQmxvY2tpbmdQb2xpY3kocHJlZmVyZW5jZXMs
IGtXS0FsbG93QWxsU3RvcmFnZSk7Ci0KKyAgICBXS1ByZWZlcmVuY2VzU2V0U3RvcmFnZUJsb2Nr
aW5nUG9saWN5KHByZWZlcmVuY2VzLCBrV0tBbGxvd0FsbFN0b3JhZ2UpOyAvLyBGSVhNRTogV2Ug
c2hvdWxkIGJlIHRlc3RpbmcgdGhlIGRlZmF1bHQuCiAgICAgV0tQcmVmZXJlbmNlc1NldElzTlNV
UkxTZXNzaW9uV2ViU29ja2V0RW5hYmxlZChwcmVmZXJlbmNlcywgZmFsc2UpOwotCiAgICAgV0tQ
cmVmZXJlbmNlc1NldEZldGNoQVBJS2VlcEFsaXZlRW5hYmxlZChwcmVmZXJlbmNlcywgdHJ1ZSk7
CiAgICAgV0tQcmVmZXJlbmNlc1NldE1lZGlhUHJlbG9hZGluZ0VuYWJsZWQocHJlZmVyZW5jZXMs
IHRydWUpOwogICAgIFdLUHJlZmVyZW5jZXNTZXRFeHBvc2VTcGVha2Vyc0VuYWJsZWQocHJlZmVy
ZW5jZXMsIHRydWUpOwpAQCAtOTQ1LDM4ICs5MDYsMjIgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6
cmVzZXRQcmVmZXJlbmNlc1RvQwogICAgIFdLUHJlZmVyZW5jZXNTZXRSZW1vdGVQbGF5YmFja0Vu
YWJsZWQocHJlZmVyZW5jZXMsIHRydWUpOwogICAgIFdLUHJlZmVyZW5jZXNTZXRCZWFjb25BUElF
bmFibGVkKHByZWZlcmVuY2VzLCB0cnVlKTsKICAgICBXS1ByZWZlcmVuY2VzU2V0RGlyZWN0b3J5
VXBsb2FkRW5hYmxlZChwcmVmZXJlbmNlcywgdHJ1ZSk7Ci0KLSAgICBXS0hUVFBDb29raWVTdG9y
ZURlbGV0ZUFsbENvb2tpZXMoV0tXZWJzaXRlRGF0YVN0b3JlR2V0SFRUUENvb2tpZVN0b3JlKHdl
YnNpdGVEYXRhU3RvcmUoKSksIG51bGxwdHIsIG51bGxwdHIpOwotCiAgICAgV0tQcmVmZXJlbmNl
c1NldE1vY2tDYXB0dXJlRGV2aWNlc0VuYWJsZWQocHJlZmVyZW5jZXMsIHRydWUpOwotICAgIAog
ICAgIFdLUHJlZmVyZW5jZXNTZXRMYXJnZUltYWdlQXN5bmNEZWNvZGluZ0VuYWJsZWQocHJlZmVy
ZW5jZXMsIGZhbHNlKTsKLQotICAgIFdLUHJlZmVyZW5jZXNTZXRJbnNwZWN0b3JBZGRpdGlvbnNF
bmFibGVkKHByZWZlcmVuY2VzLCBvcHRpb25zLmVuYWJsZUluc3BlY3RvckFkZGl0aW9ucygpKTsK
LQogICAgIFdLUHJlZmVyZW5jZXNTZXRTdG9yYWdlQWNjZXNzQVBJRW5hYmxlZChwcmVmZXJlbmNl
cywgdHJ1ZSk7Ci0gICAgCiAgICAgV0tQcmVmZXJlbmNlc1NldEFjY2Vzc2liaWxpdHlPYmplY3RN
b2RlbEVuYWJsZWQocHJlZmVyZW5jZXMsIHRydWUpOwogICAgIFdLUHJlZmVyZW5jZXNTZXRDU1NP
TVZpZXdTY3JvbGxpbmdBUElFbmFibGVkKHByZWZlcmVuY2VzLCB0cnVlKTsKICAgICBXS1ByZWZl
cmVuY2VzU2V0TWVkaWFDYXBhYmlsaXRpZXNFbmFibGVkKHByZWZlcmVuY2VzLCB0cnVlKTsKLQog
ICAgIFdLUHJlZmVyZW5jZXNTZXRSZXN0cmljdGVkSFRUUFJlc3BvbnNlQWNjZXNzKHByZWZlcmVu
Y2VzLCB0cnVlKTsKLQogICAgIFdLUHJlZmVyZW5jZXNTZXRTZXJ2ZXJUaW1pbmdFbmFibGVkKHBy
ZWZlcmVuY2VzLCB0cnVlKTsKLQogICAgIFdLUHJlZmVyZW5jZXNTZXRXZWJTUUxEaXNhYmxlZChw
cmVmZXJlbmNlcywgZmFsc2UpOwotCiAgICAgV0tQcmVmZXJlbmNlc1NldE1lZGlhUGxheWJhY2tS
ZXF1aXJlc1VzZXJHZXN0dXJlKHByZWZlcmVuY2VzLCBmYWxzZSk7CiAgICAgV0tQcmVmZXJlbmNl
c1NldFZpZGVvUGxheWJhY2tSZXF1aXJlc1VzZXJHZXN0dXJlKHByZWZlcmVuY2VzLCBmYWxzZSk7
CiAgICAgV0tQcmVmZXJlbmNlc1NldEF1ZGlvUGxheWJhY2tSZXF1aXJlc1VzZXJHZXN0dXJlKHBy
ZWZlcmVuY2VzLCBmYWxzZSk7Ci0gICAgV0tQcmVmZXJlbmNlc1NldEludGVybmFsRGVidWdGZWF0
dXJlRm9yS2V5KHByZWZlcmVuY2VzLCBmYWxzZSwgV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJp
bmcoIlNwZWFrZXJTZWxlY3Rpb25SZXF1aXJlc1VzZXJHZXN0dXJlIikpOwotCi0gICAgV0tQcmVm
ZXJlbmNlc1NldFNob3VsZFVzZVNlcnZpY2VXb3JrZXJTaG9ydFRpbWVvdXQocHJlZmVyZW5jZXMs
IG9wdGlvbnMudXNlU2VydmljZVdvcmtlclNob3J0VGltZW91dCgpKTsKLQogI2lmIEVOQUJMRShB
Q0NFU1NJQklMSVRZX0lTT0xBVEVEX1RSRUUpCiAgICAgV0tQcmVmZXJlbmNlc1NldElzQWNjZXNz
aWJpbGl0eUlzb2xhdGVkVHJlZUVuYWJsZWQocHJlZmVyZW5jZXMsIGFjY2Vzc2liaWxpdHlJc29s
YXRlZFRyZWVNb2RlKCkpOwogI2VuZGlmCi0gICAgCisKICAgICBwbGF0Zm9ybVJlc2V0UHJlZmVy
ZW5jZXNUb0NvbnNpc3RlbnRWYWx1ZXMoKTsKIH0KIApAQCAtMTAwOSwyMyArOTU0LDE5IEBAIGJv
b2wgVGVzdENvbnRyb2xsZXI6OnJlc2V0U3RhdGVUb0NvbnNpc3QKICAgICBpZiAoIWpzY09wdGlv
bnMuZW1wdHkoKSkKICAgICAgICAgc2V0VmFsdWUocmVzZXRNZXNzYWdlQm9keSwgIkpTQ09wdGlv
bnMiLCBqc2NPcHRpb25zLmNfc3RyKCkpOwogCi0jaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgV2Vi
Q29yZVRlc3RTdXBwb3J0OjpzZXRBZGRpdGlvbmFsU3VwcG9ydGVkSW1hZ2VUeXBlc0ZvclRlc3Rp
bmcob3B0aW9ucy5hZGRpdGlvbmFsU3VwcG9ydGVkSW1hZ2VUeXBlcygpLmNfc3RyKCkpOwotI2Vu
ZGlmCi0KICAgICBXS1BhZ2VQb3N0TWVzc2FnZVRvSW5qZWN0ZWRCdW5kbGUoVGVzdENvbnRyb2xs
ZXI6OnNpbmdsZXRvbigpLm1haW5XZWJWaWV3KCktPnBhZ2UoKSwgdG9XSygiUmVzZXQiKS5nZXQo
KSwgcmVzZXRNZXNzYWdlQm9keS5nZXQoKSk7CiAKICAgICBXS0NvbnRleHRTZXRTaG91bGRVc2VG
b250U21vb3RoaW5nKFRlc3RDb250cm9sbGVyOjpzaW5nbGV0b24oKS5jb250ZXh0KCksIGZhbHNl
KTsKLQogICAgIFdLQ29udGV4dFNldENhY2hlTW9kZWwoVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRv
bigpLmNvbnRleHQoKSwga1dLQ2FjaGVNb2RlbERvY3VtZW50QnJvd3Nlcik7CiAKICAgICBXS1dl
YnNpdGVEYXRhU3RvcmVDbGVhckNhY2hlZENyZWRlbnRpYWxzKHdlYnNpdGVEYXRhU3RvcmUoKSk7
Ci0KICAgICBXS1dlYnNpdGVEYXRhU3RvcmVSZXNldFNlcnZpY2VXb3JrZXJGZXRjaFRpbWVvdXRG
b3JUZXN0aW5nKHdlYnNpdGVEYXRhU3RvcmUoKSk7CiAKICAgICBXS1dlYnNpdGVEYXRhU3RvcmVT
ZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCh3ZWJzaXRlRGF0YVN0b3JlKCksIHRydWUp
OwogICAgIFdLV2Vic2l0ZURhdGFTdG9yZUNsZWFyQWxsRGV2aWNlT3JpZW50YXRpb25QZXJtaXNz
aW9ucyh3ZWJzaXRlRGF0YVN0b3JlKCkpOwogCisgICAgV0tIVFRQQ29va2llU3RvcmVEZWxldGVB
bGxDb29raWVzKFdLV2Vic2l0ZURhdGFTdG9yZUdldEhUVFBDb29raWVTdG9yZSh3ZWJzaXRlRGF0
YVN0b3JlKCkpLCBudWxscHRyLCBudWxscHRyKTsKKwogICAgIGNsZWFySW5kZXhlZERhdGFiYXNl
cygpOwogICAgIGNsZWFyTG9jYWxTdG9yYWdlKCk7CiAKQEAgLTEwMzUsNyArOTc2LDYgQEAgYm9v
bCBUZXN0Q29udHJvbGxlcjo6cmVzZXRTdGF0ZVRvQ29uc2lzdAogICAgIHJlc2V0UXVvdGEoKTsK
IAogICAgIFdLQ29udGV4dENsZWFyQ3VycmVudE1vZGlmaWVyU3RhdGVGb3JUZXN0aW5nKFRlc3RD
b250cm9sbGVyOjpzaW5nbGV0b24oKS5jb250ZXh0KCkpOwotCiAgICAgV0tDb250ZXh0U2V0VXNl
U2VwYXJhdGVTZXJ2aWNlV29ya2VyUHJvY2VzcyhUZXN0Q29udHJvbGxlcjo6c2luZ2xldG9uKCku
Y29udGV4dCgpLCBmYWxzZSk7CiAKICAgICBXS1BhZ2VTZXRNb2NrQ2FtZXJhT3JpZW50YXRpb24o
bV9tYWluV2ViVmlldy0+cGFnZSgpLCAwKTsKQEAgLTEwNTEsMTAgKzk5MSw2IEBAIGJvb2wgVGVz
dENvbnRyb2xsZXI6OnJlc2V0U3RhdGVUb0NvbnNpc3QKICAgICAvLyBzb21lIG90aGVyIGNvZGUg
ZG9pbmcgdGhpcywgaXQgc2hvdWxkIHByb2JhYmx5IGJlIHJlc3BvbnNpYmxlIGZvciBjbGVhbnVw
IHRvby4KICAgICByZXNldFByZWZlcmVuY2VzVG9Db25zaXN0ZW50VmFsdWVzKG9wdGlvbnMpOwog
Ci0jaWYgUExBVEZPUk0oR1RLKQotICAgIFdLVGV4dENoZWNrZXJDb250aW51b3VzU3BlbGxDaGVj
a2luZ0VuYWJsZWRTdGF0ZUNoYW5nZWQodHJ1ZSk7Ci0jZW5kaWYKLQogICAgIC8vIE1ha2Ugc3Vy
ZSB0aGUgdmlldyBpcyBpbiB0aGUgd2luZG93IChhIHRlc3QgY2FuIHVucGFyZW50IGl0KS4KICAg
ICBtX21haW5XZWJWaWV3LT5hZGRUb1dpbmRvdygpOwogCkBAIC0yODM0LDExICsyNzcwLDYgQEAg
V0tDb250ZXh0UmVmIFRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybUFkagogICAgIHJldHVybiBjb250
ZXh0OwogfQogCi1ib29sIFRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybVJlc2V0U3RhdGVUb0NvbnNp
c3RlbnRWYWx1ZXMoY29uc3QgVGVzdE9wdGlvbnMmKQotewotICAgIHJldHVybiB0cnVlOwotfQot
CiB1bnNpZ25lZCBUZXN0Q29udHJvbGxlcjo6aW1hZ2VDb3VudEluR2VuZXJhbFBhc3RlYm9hcmQo
KSBjb25zdAogewogICAgIHJldHVybiAwOwpJbmRleDogVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9U
ZXN0Q29udHJvbGxlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVz
dENvbnRyb2xsZXIuaAkocmV2aXNpb24gMjY4MzI2KQorKysgVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9UZXN0Q29udHJvbGxlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0zOTQsNyArMzk0LDYgQEAgcHJp
dmF0ZToKIAogICAgIHZvaWQgZW5zdXJlVmlld1N1cHBvcnRzT3B0aW9uc0ZvclRlc3QoY29uc3Qg
VGVzdEludm9jYXRpb24mKTsKICAgICBUZXN0T3B0aW9ucyB0ZXN0T3B0aW9uc0ZvclRlc3QoY29u
c3QgVGVzdENvbW1hbmQmKSBjb25zdDsKLSAgICBUZXN0RmVhdHVyZXMgZ2xvYmFsRmVhdHVyZURl
ZmF1bHRzRm9yVGVzdChjb25zdCBUZXN0Q29tbWFuZCYpIGNvbnN0OwogICAgIFRlc3RGZWF0dXJl
cyBwbGF0Zm9ybVNwZWNpZmljRmVhdHVyZURlZmF1bHRzRm9yVGVzdChjb25zdCBUZXN0Q29tbWFu
ZCYpIGNvbnN0OwogICAgIFRlc3RGZWF0dXJlcyBwbGF0Zm9ybVNwZWNpZmljRmVhdHVyZU92ZXJy
aWRlc0RlZmF1bHRzRm9yVGVzdChjb25zdCBUZXN0Q29tbWFuZCYpIGNvbnN0OwogCkBAIC01OTYs
OCArNTk1LDYgQEAgcHJpdmF0ZToKICAgICBTdHJpbmcgbV91bnN1cHBvcnRlZFBsdWdpbk1vZGU7
CiAKICAgICBib29sIG1fZm9yY2VDb21wbGV4VGV4dCB7IGZhbHNlIH07Ci0gICAgYm9vbCBtX3No
b3VsZFVzZUFjY2VsZXJhdGVkRHJhd2luZyB7IGZhbHNlIH07Ci0gICAgCiAgICAgYm9vbCBtX3No
b3VsZExvZ0NhbkF1dGhlbnRpY2F0ZUFnYWluc3RQcm90ZWN0aW9uU3BhY2UgeyBmYWxzZSB9Owog
ICAgIGJvb2wgbV9zaG91bGRMb2dEb3dubG9hZENhbGxiYWNrcyB7IGZhbHNlIH07CiAgICAgYm9v
bCBtX3Nob3VsZExvZ0hpc3RvcnlDbGllbnRDYWxsYmFja3MgeyBmYWxzZSB9OwpJbmRleDogVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0T3B0aW9ucy5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9UZXN0T3B0aW9ucy5jcHAJKHJldmlzaW9uIDI2ODMyNikKKysrIFRv
b2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdE9wdGlvbnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0x
MDEsNTQgKzEwMSw1MSBAQCB2b2lkIG1lcmdlKFRlc3RGZWF0dXJlcyYgYmFzZSwgVGVzdEZlYXR1
CiBzdGF0aWMgY29uc3Qgc3RkOjp1bm9yZGVyZWRfbWFwPHN0ZDo6c3RyaW5nLCBib29sPiYgYm9v
bERlZmF1bHRzTWFwKCkKIHsKICAgICBzdGF0aWMgc3RkOjp1bm9yZGVyZWRfbWFwPHN0ZDo6c3Ry
aW5nLCBib29sPiBtYXAgewotICAgICAgICB7ICJ1c2VUaHJlYWRlZFNjcm9sbGluZyIsIGZhbHNl
IH0sCi0gICAgICAgIHsgInVzZUFjY2VsZXJhdGVkRHJhd2luZyIsIGZhbHNlIH0sCi0gICAgICAg
IHsgInVzZVJlbW90ZUxheWVyVHJlZSIsIGZhbHNlIH0sCi0gICAgICAgIHsgInNob3VsZFNob3dX
ZWJWaWV3IiwgZmFsc2UgfSwKLSAgICAgICAgeyAidXNlRmxleGlibGVWaWV3cG9ydCIsIGZhbHNl
IH0sCi0gICAgICAgIHsgInVzZURhdGFEZXRlY3Rpb24iLCBmYWxzZSB9LAotICAgICAgICB7ICJ1
c2VNb2NrU2Nyb2xsYmFycyIsIHRydWUgfSwKLSAgICAgICAgeyAibmVlZHNTaXRlU3BlY2lmaWNR
dWlya3MiLCBmYWxzZSB9LAotICAgICAgICB7ICJpZ25vcmVzVmlld3BvcnRTY2FsZUxpbWl0cyIs
IGZhbHNlIH0sCi0gICAgICAgIHsgInVzZUNoYXJhY3RlclNlbGVjdGlvbkdyYW51bGFyaXR5Iiwg
ZmFsc2UgfSwKLSAgICAgICAgeyAiZW5hYmxlQXR0YWNobWVudEVsZW1lbnQiLCBmYWxzZSB9LAot
ICAgICAgICB7ICJlbmFibGVJbnRlcnNlY3Rpb25PYnNlcnZlciIsIGZhbHNlIH0sCi0gICAgICAg
IHsgInVzZUVwaGVtZXJhbFNlc3Npb24iLCBmYWxzZSB9LAotICAgICAgICB7ICJlbmFibGVNZW51
SXRlbUVsZW1lbnQiLCBmYWxzZSB9LAotICAgICAgICB7ICJlbmFibGVLZXlnZW5FbGVtZW50Iiwg
ZmFsc2UgfSwKLSAgICAgICAgeyAiZW5hYmxlTW9kZXJuTWVkaWFDb250cm9scyIsIHRydWUgfSwK
LSAgICAgICAgeyAiZW5hYmxlUG9pbnRlckxvY2siLCBmYWxzZSB9LAotICAgICAgICB7ICJlbmFi
bGVXZWJBdXRoZW50aWNhdGlvbiIsIHRydWUgfSwKLSAgICAgICAgeyAiZW5hYmxlV2ViQXV0aGVu
dGljYXRpb25Mb2NhbEF1dGhlbnRpY2F0b3IiLCB0cnVlIH0sCi0gICAgICAgIHsgImVuYWJsZUlu
c3BlY3RvckFkZGl0aW9ucyIsIGZhbHNlIH0sCi0gICAgICAgIHsgInNob3VsZFNob3dUb3VjaGVz
IiwgZmFsc2UgfSwKLSAgICAgICAgeyAiZHVtcEpTQ29uc29sZUxvZ0luU3RkRXJyIiwgZmFsc2Ug
fSwKICAgICAgICAgeyAiYWxsb3dDcm9zc09yaWdpblN1YnJlc291cmNlc1RvQXNrRm9yQ3JlZGVu
dGlhbHMiLCBmYWxzZSB9LAorICAgICAgICB7ICJhbGxvd1RvcE5hdmlnYXRpb25Ub0RhdGFVUkxz
IiwgdHJ1ZSB9LAorICAgICAgICB7ICJhbGxvd3NMaW5rUHJldmlldyIsIHRydWUgfSwKICAgICAg
ICAgeyAiZG9tUGFzdGVBbGxvd2VkIiwgdHJ1ZSB9LAotICAgICAgICB7ICJlbmFibGVDb2xvckZp
bHRlciIsIGZhbHNlIH0sCi0gICAgICAgIHsgInB1bmNoT3V0V2hpdGVCYWNrZ3JvdW5kc0luRGFy
a01vZGUiLCBmYWxzZSB9LAotICAgICAgICB7ICJydW5TaW5nbHkiLCBmYWxzZSB9LAotICAgICAg
ICB7ICJjaGVja0ZvcldvcmxkTGVha3MiLCBmYWxzZSB9LAotICAgICAgICB7ICJzaG91bGRJZ25v
cmVNZXRhVmlld3BvcnQiLCBmYWxzZSB9LAotICAgICAgICB7ICJzcGVsbENoZWNraW5nRG90cyIs
IGZhbHNlIH0sCi0gICAgICAgIHsgImVuYWJsZVNlcnZpY2VDb250cm9scyIsIGZhbHNlIH0sCisg
ICAgICAgIHsgImR1bXBKU0NvbnNvbGVMb2dJblN0ZEVyciIsIGZhbHNlIH0sCiAgICAgICAgIHsg
ImVkaXRhYmxlIiwgZmFsc2UgfSwKLSAgICAgICAgeyAic2hvdWxkSGFuZGxlUnVuT3BlblBhbmVs
IiwgdHJ1ZSB9LAotICAgICAgICB7ICJzaG91bGRQcmVzZW50UG9wb3ZlcnMiLCB0cnVlIH0sCiAg
ICAgICAgIHsgImVuYWJsZUFwcE5hcCIsIGZhbHNlIH0sCisgICAgICAgIHsgImVuYWJsZUF0dGFj
aG1lbnRFbGVtZW50IiwgZmFsc2UgfSwKICAgICAgICAgeyAiZW5hYmxlQmFja0ZvcndhcmRDYWNo
ZSIsIGZhbHNlIH0sCi0gICAgICAgIHsgImFsbG93c0xpbmtQcmV2aWV3IiwgdHJ1ZSB9LAotICAg
ICAgICB7ICJlbmFibGVDYXB0dXJlVmlkZW9JblVJUHJvY2VzcyIsIGZhbHNlIH0sCi0gICAgICAg
IHsgImVuYWJsZUNhcHR1cmVWaWRlb0luR1BVUHJvY2VzcyIsIGZhbHNlIH0sCi0gICAgICAgIHsg
ImVuYWJsZUNhcHR1cmVBdWRpb0luVUlQcm9jZXNzIiwgZmFsc2UgfSwKICAgICAgICAgeyAiZW5h
YmxlQ2FwdHVyZUF1ZGlvSW5HUFVQcm9jZXNzIiwgZmFsc2UgfSwKLSAgICAgICAgeyAiYWxsb3dU
b3BOYXZpZ2F0aW9uVG9EYXRhVVJMcyIsIHRydWUgfSwKKyAgICAgICAgeyAiZW5hYmxlQ2FwdHVy
ZUF1ZGlvSW5VSVByb2Nlc3MiLCBmYWxzZSB9LAorICAgICAgICB7ICJlbmFibGVDYXB0dXJlVmlk
ZW9JbkdQVVByb2Nlc3MiLCBmYWxzZSB9LAorICAgICAgICB7ICJlbmFibGVDYXB0dXJlVmlkZW9J
blVJUHJvY2VzcyIsIGZhbHNlIH0sCisgICAgICAgIHsgImVuYWJsZUNvbG9yRmlsdGVyIiwgZmFs
c2UgfSwKICAgICAgICAgeyAiZW5hYmxlSW5BcHBCcm93c2VyUHJpdmFjeSIsIGZhbHNlIH0sCi0g
ICAgICAgIHsgImlzQXBwQm91bmRXZWJWaWV3IiwgZmFsc2UgfSwKLSAgICAgICAgeyAiaWdub3Jl
U3luY2hyb25vdXNNZXNzYWdpbmdUaW1lb3V0cyIsIGZhbHNlIH0sCisgICAgICAgIHsgImVuYWJs
ZUluc3BlY3RvckFkZGl0aW9ucyIsIGZhbHNlIH0sCisgICAgICAgIHsgImVuYWJsZUtleWdlbkVs
ZW1lbnQiLCBmYWxzZSB9LAorICAgICAgICB7ICJlbmFibGVNZW51SXRlbUVsZW1lbnQiLCBmYWxz
ZSB9LAorICAgICAgICB7ICJlbmFibGVNb2Rlcm5NZWRpYUNvbnRyb2xzIiwgdHJ1ZSB9LAogICAg
ICAgICB7ICJlbmFibGVQcm9jZXNzU3dhcE9uTmF2aWdhdGlvbiIsIHRydWUgfSwKICAgICAgICAg
eyAiZW5hYmxlUHJvY2Vzc1N3YXBPbldpbmRvd09wZW4iLCBmYWxzZSB9LAotICAgICAgICB7ICJ1
c2VTZXJ2aWNlV29ya2VyU2hvcnRUaW1lb3V0IiwgZmFsc2UgfQorICAgICAgICB7ICJlbmFibGVT
ZXJ2aWNlQ29udHJvbHMiLCBmYWxzZSB9LAorICAgICAgICB7ICJlbmFibGVXZWJBdXRoZW50aWNh
dGlvbiIsIHRydWUgfSwKKyAgICAgICAgeyAiZW5hYmxlV2ViQXV0aGVudGljYXRpb25Mb2NhbEF1
dGhlbnRpY2F0b3IiLCB0cnVlIH0sCisgICAgICAgIHsgImlnbm9yZVN5bmNocm9ub3VzTWVzc2Fn
aW5nVGltZW91dHMiLCBmYWxzZSB9LAorICAgICAgICB7ICJpZ25vcmVzVmlld3BvcnRTY2FsZUxp
bWl0cyIsIGZhbHNlIH0sCisgICAgICAgIHsgImlzQXBwQm91bmRXZWJWaWV3IiwgZmFsc2UgfSwK
KyAgICAgICAgeyAibmVlZHNTaXRlU3BlY2lmaWNRdWlya3MiLCBmYWxzZSB9LAorICAgICAgICB7
ICJwdW5jaE91dFdoaXRlQmFja2dyb3VuZHNJbkRhcmtNb2RlIiwgZmFsc2UgfSwKKyAgICAgICAg
eyAicnVuU2luZ2x5IiwgZmFsc2UgfSwKKyAgICAgICAgeyAic2hvdWxkSGFuZGxlUnVuT3BlblBh
bmVsIiwgdHJ1ZSB9LAorICAgICAgICB7ICJzaG91bGRJZ25vcmVNZXRhVmlld3BvcnQiLCBmYWxz
ZSB9LAorICAgICAgICB7ICJzaG91bGRQcmVzZW50UG9wb3ZlcnMiLCB0cnVlIH0sCisgICAgICAg
IHsgInNob3VsZFNob3dUb3VjaGVzIiwgZmFsc2UgfSwKKyAgICAgICAgeyAic2hvdWxkU2hvd1dl
YlZpZXciLCBmYWxzZSB9LAorICAgICAgICB7ICJzcGVsbENoZWNraW5nRG90cyIsIGZhbHNlIH0s
CisgICAgICAgIHsgInVzZUFjY2VsZXJhdGVkRHJhd2luZyIsIGZhbHNlIH0sCisgICAgICAgIHsg
InVzZUNoYXJhY3RlclNlbGVjdGlvbkdyYW51bGFyaXR5IiwgZmFsc2UgfSwKKyAgICAgICAgeyAi
dXNlRGF0YURldGVjdGlvbiIsIGZhbHNlIH0sCisgICAgICAgIHsgInVzZUVwaGVtZXJhbFNlc3Np
b24iLCBmYWxzZSB9LAorICAgICAgICB7ICJ1c2VGbGV4aWJsZVZpZXdwb3J0IiwgZmFsc2UgfSwK
KyAgICAgICAgeyAidXNlTW9ja1Njcm9sbGJhcnMiLCB0cnVlIH0sCisgICAgICAgIHsgInVzZVJl
bW90ZUxheWVyVHJlZSIsIGZhbHNlIH0sCisgICAgICAgIHsgInVzZVNlcnZpY2VXb3JrZXJTaG9y
dFRpbWVvdXQiLCBmYWxzZSB9LAorICAgICAgICB7ICJ1c2VUaHJlYWRlZFNjcm9sbGluZyIsIGZh
bHNlIH0sCiAgICAgfTsKICAgICByZXR1cm4gbWFwOwogfQpAQCAtMTU4LDggKzE1NSw4IEBAIHN0
YXRpYyBjb25zdCBzdGQ6OnVub3JkZXJlZF9tYXA8c3RkOjpzdHIKICAgICBzdGF0aWMgc3RkOjp1
bm9yZGVyZWRfbWFwPHN0ZDo6c3RyaW5nLCBkb3VibGU+IG1hcCB7CiAgICAgICAgIHsgImNvbnRl
bnRJbnNldC50b3AiLCAwIH0sCiAgICAgICAgIHsgImRldmljZVNjYWxlRmFjdG9yIiwgMSB9LAor
ICAgICAgICB7ICJ2aWV3SGVpZ2h0IiwgNjAwIH0sCiAgICAgICAgIHsgInZpZXdXaWR0aCIsIDgw
MCB9LAotICAgICAgICB7ICJ2aWV3SGVpZ2h0IiwgNjAwIH0KICAgICB9OwogICAgIHJldHVybiBt
YXA7CiB9CkBAIC0xNjcsMTIgKzE2NCwxMiBAQCBzdGF0aWMgY29uc3Qgc3RkOjp1bm9yZGVyZWRf
bWFwPHN0ZDo6c3RyCiBzdGF0aWMgY29uc3Qgc3RkOjp1bm9yZGVyZWRfbWFwPHN0ZDo6c3RyaW5n
LCBzdGQ6OnN0cmluZz4mIHN0cmluZ0RlZmF1bHRzTWFwKCkKIHsKICAgICBzdGF0aWMgc3RkOjp1
bm9yZGVyZWRfbWFwPHN0ZDo6c3RyaW5nLCBzdGQ6OnN0cmluZz4gbWFwIHsKKyAgICAgICAgeyAi
YWRkaXRpb25hbFN1cHBvcnRlZEltYWdlVHlwZXMiLCB7IH0gfSwKKyAgICAgICAgeyAiYXBwbGlj
YXRpb25CdW5kbGVJZGVudGlmaWVyIiwgeyB9IH0sCiAgICAgICAgIHsgImFwcGxpY2F0aW9uTWFu
aWZlc3QiLCB7IH0gfSwKKyAgICAgICAgeyAiY29udGVudE1vZGUiLCB7IH0gfSwKICAgICAgICAg
eyAianNjT3B0aW9ucyIsIHsgfSB9LAotICAgICAgICB7ICJhZGRpdGlvbmFsU3VwcG9ydGVkSW1h
Z2VUeXBlcyIsIHsgfSB9LAogICAgICAgICB7ICJzdGFuZGFsb25lV2ViQXBwbGljYXRpb25VUkwi
LCB7IH0gfSwKLSAgICAgICAgeyAiY29udGVudE1vZGUiLCB7IH0gfSwKLSAgICAgICAgeyAiYXBw
bGljYXRpb25CdW5kbGVJZGVudGlmaWVyIiwgeyB9IH0KICAgICB9OwogICAgIHJldHVybiBtYXA7
CiB9CkBAIC0xODAsNyArMTc3LDcgQEAgc3RhdGljIGNvbnN0IHN0ZDo6dW5vcmRlcmVkX21hcDxz
dGQ6OnN0cgogc3RhdGljIGNvbnN0IHN0ZDo6dW5vcmRlcmVkX21hcDxzdGQ6OnN0cmluZywgc3Rk
Ojp2ZWN0b3I8c3RkOjpzdHJpbmc+PiYgc3RyaW5nVmVjdG9yRGVmYXVsdHNNYXAoKQogewogICAg
IHN0YXRpYyBzdGQ6OnVub3JkZXJlZF9tYXA8c3RkOjpzdHJpbmcsIHN0ZDo6dmVjdG9yPHN0ZDo6
c3RyaW5nPj4gbWFwIHsKLSAgICAgICAgeyAibGFuZ3VhZ2UiLCB7IH0gfQorICAgICAgICB7ICJs
YW5ndWFnZSIsIHsgfSB9LAogICAgIH07CiAgICAgcmV0dXJuIG1hcDsKIH0KQEAgLTE5OCw2NSAr
MTk1LDYyIEBAIGVudW0gY2xhc3MgS2V5VHlwZSA6IHVpbnQ4X3Qgewogc3RhdGljIGNvbnN0IHN0
ZDo6dW5vcmRlcmVkX21hcDxzdGQ6OnN0cmluZywgS2V5VHlwZT4mIGtleVR5cGVNYXAoKQogewog
ICAgIHN0YXRpYyBzdGQ6OnVub3JkZXJlZF9tYXA8c3RkOjpzdHJpbmcsIEtleVR5cGU+IG1hcCB7
Ci0gICAgICAgIHsgInVzZVRocmVhZGVkU2Nyb2xsaW5nIiwgS2V5VHlwZTo6Qm9vbCB9LAotICAg
ICAgICB7ICJ1c2VBY2NlbGVyYXRlZERyYXdpbmciLCBLZXlUeXBlOjpCb29sIH0sCi0gICAgICAg
IHsgInVzZVJlbW90ZUxheWVyVHJlZSIsIEtleVR5cGU6OkJvb2wgfSwKLSAgICAgICAgeyAic2hv
dWxkU2hvd1dlYlZpZXciLCBLZXlUeXBlOjpCb29sIH0sCi0gICAgICAgIHsgInVzZUZsZXhpYmxl
Vmlld3BvcnQiLCBLZXlUeXBlOjpCb29sIH0sCi0gICAgICAgIHsgInVzZURhdGFEZXRlY3Rpb24i
LCBLZXlUeXBlOjpCb29sIH0sCi0gICAgICAgIHsgInVzZU1vY2tTY3JvbGxiYXJzIiwgS2V5VHlw
ZTo6Qm9vbCB9LAotICAgICAgICB7ICJuZWVkc1NpdGVTcGVjaWZpY1F1aXJrcyIsIEtleVR5cGU6
OkJvb2wgfSwKLSAgICAgICAgeyAiaWdub3Jlc1ZpZXdwb3J0U2NhbGVMaW1pdHMiLCBLZXlUeXBl
OjpCb29sIH0sCi0gICAgICAgIHsgInVzZUNoYXJhY3RlclNlbGVjdGlvbkdyYW51bGFyaXR5Iiwg
S2V5VHlwZTo6Qm9vbCB9LAotICAgICAgICB7ICJlbmFibGVBdHRhY2htZW50RWxlbWVudCIsIEtl
eVR5cGU6OkJvb2wgfSwKLSAgICAgICAgeyAiZW5hYmxlSW50ZXJzZWN0aW9uT2JzZXJ2ZXIiLCBL
ZXlUeXBlOjpCb29sIH0sCi0gICAgICAgIHsgInVzZUVwaGVtZXJhbFNlc3Npb24iLCBLZXlUeXBl
OjpCb29sIH0sCi0gICAgICAgIHsgImVuYWJsZU1lbnVJdGVtRWxlbWVudCIsIEtleVR5cGU6OkJv
b2wgfSwKLSAgICAgICAgeyAiZW5hYmxlS2V5Z2VuRWxlbWVudCIsIEtleVR5cGU6OkJvb2wgfSwK
LSAgICAgICAgeyAiZW5hYmxlTW9kZXJuTWVkaWFDb250cm9scyIsIEtleVR5cGU6OkJvb2wgfSwK
LSAgICAgICAgeyAiZW5hYmxlUG9pbnRlckxvY2siLCBLZXlUeXBlOjpCb29sIH0sCi0gICAgICAg
IHsgImVuYWJsZVdlYkF1dGhlbnRpY2F0aW9uIiwgS2V5VHlwZTo6Qm9vbCB9LAotICAgICAgICB7
ICJlbmFibGVXZWJBdXRoZW50aWNhdGlvbkxvY2FsQXV0aGVudGljYXRvciIsIEtleVR5cGU6OkJv
b2wgfSwKLSAgICAgICAgeyAiZW5hYmxlSW5zcGVjdG9yQWRkaXRpb25zIiwgS2V5VHlwZTo6Qm9v
bCB9LAotICAgICAgICB7ICJzaG91bGRTaG93VG91Y2hlcyIsIEtleVR5cGU6OkJvb2wgfSwKLSAg
ICAgICAgeyAiZHVtcEpTQ29uc29sZUxvZ0luU3RkRXJyIiwgS2V5VHlwZTo6Qm9vbCB9LAogICAg
ICAgICB7ICJhbGxvd0Nyb3NzT3JpZ2luU3VicmVzb3VyY2VzVG9Bc2tGb3JDcmVkZW50aWFscyIs
IEtleVR5cGU6OkJvb2wgfSwKKyAgICAgICAgeyAiYWxsb3dUb3BOYXZpZ2F0aW9uVG9EYXRhVVJM
cyIsIEtleVR5cGU6OkJvb2wgfSwKKyAgICAgICAgeyAiYWxsb3dzTGlua1ByZXZpZXciLCBLZXlU
eXBlOjpCb29sIH0sCiAgICAgICAgIHsgImRvbVBhc3RlQWxsb3dlZCIsIEtleVR5cGU6OkJvb2wg
fSwKLSAgICAgICAgeyAiZW5hYmxlQ29sb3JGaWx0ZXIiLCBLZXlUeXBlOjpCb29sIH0sCi0gICAg
ICAgIHsgInB1bmNoT3V0V2hpdGVCYWNrZ3JvdW5kc0luRGFya01vZGUiLCBLZXlUeXBlOjpCb29s
IH0sCi0gICAgICAgIHsgInJ1blNpbmdseSIsIEtleVR5cGU6OkJvb2wgfSwKLSAgICAgICAgeyAi
Y2hlY2tGb3JXb3JsZExlYWtzIiwgS2V5VHlwZTo6Qm9vbCB9LAotICAgICAgICB7ICJzaG91bGRJ
Z25vcmVNZXRhVmlld3BvcnQiLCBLZXlUeXBlOjpCb29sIH0sCi0gICAgICAgIHsgInNwZWxsQ2hl
Y2tpbmdEb3RzIiwgS2V5VHlwZTo6Qm9vbCB9LAotICAgICAgICB7ICJlbmFibGVTZXJ2aWNlQ29u
dHJvbHMiLCBLZXlUeXBlOjpCb29sIH0sCisgICAgICAgIHsgImR1bXBKU0NvbnNvbGVMb2dJblN0
ZEVyciIsIEtleVR5cGU6OkJvb2wgfSwKICAgICAgICAgeyAiZWRpdGFibGUiLCBLZXlUeXBlOjpC
b29sIH0sCi0gICAgICAgIHsgInNob3VsZEhhbmRsZVJ1bk9wZW5QYW5lbCIsIEtleVR5cGU6OkJv
b2wgfSwKLSAgICAgICAgeyAic2hvdWxkUHJlc2VudFBvcG92ZXJzIiwgS2V5VHlwZTo6Qm9vbCB9
LAogICAgICAgICB7ICJlbmFibGVBcHBOYXAiLCBLZXlUeXBlOjpCb29sIH0sCisgICAgICAgIHsg
ImVuYWJsZUF0dGFjaG1lbnRFbGVtZW50IiwgS2V5VHlwZTo6Qm9vbCB9LAogICAgICAgICB7ICJl
bmFibGVCYWNrRm9yd2FyZENhY2hlIiwgS2V5VHlwZTo6Qm9vbCB9LAotICAgICAgICB7ICJhbGxv
d3NMaW5rUHJldmlldyIsIEtleVR5cGU6OkJvb2wgfSwKLSAgICAgICAgeyAiZW5hYmxlQ2FwdHVy
ZVZpZGVvSW5VSVByb2Nlc3MiLCBLZXlUeXBlOjpCb29sIH0sCi0gICAgICAgIHsgImVuYWJsZUNh
cHR1cmVWaWRlb0luR1BVUHJvY2VzcyIsIEtleVR5cGU6OkJvb2wgfSwKLSAgICAgICAgeyAiZW5h
YmxlQ2FwdHVyZUF1ZGlvSW5VSVByb2Nlc3MiLCBLZXlUeXBlOjpCb29sIH0sCiAgICAgICAgIHsg
ImVuYWJsZUNhcHR1cmVBdWRpb0luR1BVUHJvY2VzcyIsIEtleVR5cGU6OkJvb2wgfSwKLSAgICAg
ICAgeyAiYWxsb3dUb3BOYXZpZ2F0aW9uVG9EYXRhVVJMcyIsIEtleVR5cGU6OkJvb2wgfSwKKyAg
ICAgICAgeyAiZW5hYmxlQ2FwdHVyZUF1ZGlvSW5VSVByb2Nlc3MiLCBLZXlUeXBlOjpCb29sIH0s
CisgICAgICAgIHsgImVuYWJsZUNhcHR1cmVWaWRlb0luR1BVUHJvY2VzcyIsIEtleVR5cGU6OkJv
b2wgfSwKKyAgICAgICAgeyAiZW5hYmxlQ2FwdHVyZVZpZGVvSW5VSVByb2Nlc3MiLCBLZXlUeXBl
OjpCb29sIH0sCisgICAgICAgIHsgImVuYWJsZUNvbG9yRmlsdGVyIiwgS2V5VHlwZTo6Qm9vbCB9
LAogICAgICAgICB7ICJlbmFibGVJbkFwcEJyb3dzZXJQcml2YWN5IiwgS2V5VHlwZTo6Qm9vbCB9
LAotICAgICAgICB7ICJpc0FwcEJvdW5kV2ViVmlldyIsIEtleVR5cGU6OkJvb2wgfSwKLSAgICAg
ICAgeyAiaWdub3JlU3luY2hyb25vdXNNZXNzYWdpbmdUaW1lb3V0cyIsIEtleVR5cGU6OkJvb2wg
fSwKKyAgICAgICAgeyAiZW5hYmxlSW5zcGVjdG9yQWRkaXRpb25zIiwgS2V5VHlwZTo6Qm9vbCB9
LAorICAgICAgICB7ICJlbmFibGVLZXlnZW5FbGVtZW50IiwgS2V5VHlwZTo6Qm9vbCB9LAorICAg
ICAgICB7ICJlbmFibGVNZW51SXRlbUVsZW1lbnQiLCBLZXlUeXBlOjpCb29sIH0sCisgICAgICAg
IHsgImVuYWJsZU1vZGVybk1lZGlhQ29udHJvbHMiLCBLZXlUeXBlOjpCb29sIH0sCiAgICAgICAg
IHsgImVuYWJsZVByb2Nlc3NTd2FwT25OYXZpZ2F0aW9uIiwgS2V5VHlwZTo6Qm9vbCB9LAogICAg
ICAgICB7ICJlbmFibGVQcm9jZXNzU3dhcE9uV2luZG93T3BlbiIsIEtleVR5cGU6OkJvb2wgfSwK
KyAgICAgICAgeyAiZW5hYmxlU2VydmljZUNvbnRyb2xzIiwgS2V5VHlwZTo6Qm9vbCB9LAorICAg
ICAgICB7ICJlbmFibGVXZWJBdXRoZW50aWNhdGlvbiIsIEtleVR5cGU6OkJvb2wgfSwKKyAgICAg
ICAgeyAiZW5hYmxlV2ViQXV0aGVudGljYXRpb25Mb2NhbEF1dGhlbnRpY2F0b3IiLCBLZXlUeXBl
OjpCb29sIH0sCisgICAgICAgIHsgImlnbm9yZVN5bmNocm9ub3VzTWVzc2FnaW5nVGltZW91dHMi
LCBLZXlUeXBlOjpCb29sIH0sCisgICAgICAgIHsgImlnbm9yZXNWaWV3cG9ydFNjYWxlTGltaXRz
IiwgS2V5VHlwZTo6Qm9vbCB9LAorICAgICAgICB7ICJpc0FwcEJvdW5kV2ViVmlldyIsIEtleVR5
cGU6OkJvb2wgfSwKKyAgICAgICAgeyAibmVlZHNTaXRlU3BlY2lmaWNRdWlya3MiLCBLZXlUeXBl
OjpCb29sIH0sCisgICAgICAgIHsgInB1bmNoT3V0V2hpdGVCYWNrZ3JvdW5kc0luRGFya01vZGUi
LCBLZXlUeXBlOjpCb29sIH0sCisgICAgICAgIHsgInJ1blNpbmdseSIsIEtleVR5cGU6OkJvb2wg
fSwKKyAgICAgICAgeyAic2hvdWxkSGFuZGxlUnVuT3BlblBhbmVsIiwgS2V5VHlwZTo6Qm9vbCB9
LAorICAgICAgICB7ICJzaG91bGRJZ25vcmVNZXRhVmlld3BvcnQiLCBLZXlUeXBlOjpCb29sIH0s
CisgICAgICAgIHsgInNob3VsZFByZXNlbnRQb3BvdmVycyIsIEtleVR5cGU6OkJvb2wgfSwKKyAg
ICAgICAgeyAic2hvdWxkU2hvd1RvdWNoZXMiLCBLZXlUeXBlOjpCb29sIH0sCisgICAgICAgIHsg
InNob3VsZFNob3dXZWJWaWV3IiwgS2V5VHlwZTo6Qm9vbCB9LAorICAgICAgICB7ICJzcGVsbENo
ZWNraW5nRG90cyIsIEtleVR5cGU6OkJvb2wgfSwKKyAgICAgICAgeyAidXNlQWNjZWxlcmF0ZWRE
cmF3aW5nIiwgS2V5VHlwZTo6Qm9vbCB9LAorICAgICAgICB7ICJ1c2VDaGFyYWN0ZXJTZWxlY3Rp
b25HcmFudWxhcml0eSIsIEtleVR5cGU6OkJvb2wgfSwKKyAgICAgICAgeyAidXNlRGF0YURldGVj
dGlvbiIsIEtleVR5cGU6OkJvb2wgfSwKKyAgICAgICAgeyAidXNlRXBoZW1lcmFsU2Vzc2lvbiIs
IEtleVR5cGU6OkJvb2wgfSwKKyAgICAgICAgeyAidXNlRmxleGlibGVWaWV3cG9ydCIsIEtleVR5
cGU6OkJvb2wgfSwKKyAgICAgICAgeyAidXNlTW9ja1Njcm9sbGJhcnMiLCBLZXlUeXBlOjpCb29s
IH0sCisgICAgICAgIHsgInVzZVJlbW90ZUxheWVyVHJlZSIsIEtleVR5cGU6OkJvb2wgfSwKICAg
ICAgICAgeyAidXNlU2VydmljZVdvcmtlclNob3J0VGltZW91dCIsIEtleVR5cGU6OkJvb2wgfSwK
KyAgICAgICAgeyAidXNlVGhyZWFkZWRTY3JvbGxpbmciLCBLZXlUeXBlOjpCb29sIH0sCiAgICAg
CiAgICAgICAgIHsgImNvbnRlbnRJbnNldC50b3AiLCBLZXlUeXBlOjpEb3VibGUgfSwKICAgICAg
ICAgeyAiZGV2aWNlU2NhbGVGYWN0b3IiLCBLZXlUeXBlOjpEb3VibGUgfSwKLSAgICAgICAgeyAi
dmlld1dpZHRoIiwgS2V5VHlwZTo6RG91YmxlIH0sCiAgICAgICAgIHsgInZpZXdIZWlnaHQiLCBL
ZXlUeXBlOjpEb3VibGUgfSwKKyAgICAgICAgeyAidmlld1dpZHRoIiwgS2V5VHlwZTo6RG91Ymxl
IH0sCiAKLSAgICAgICAgeyAianNjT3B0aW9ucyIsIEtleVR5cGU6OlN0cmluZyB9LAogICAgICAg
ICB7ICJhZGRpdGlvbmFsU3VwcG9ydGVkSW1hZ2VUeXBlcyIsIEtleVR5cGU6OlN0cmluZyB9LAot
ICAgICAgICB7ICJjb250ZW50TW9kZSIsIEtleVR5cGU6OlN0cmluZyB9LAogICAgICAgICB7ICJh
cHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIiLCBLZXlUeXBlOjpTdHJpbmcgfSwKICAgICAgICAg
eyAiYXBwbGljYXRpb25NYW5pZmVzdCIsIEtleVR5cGU6OlN0cmluZ1JlbGF0aXZlUGF0aCB9LAor
ICAgICAgICB7ICJjb250ZW50TW9kZSIsIEtleVR5cGU6OlN0cmluZyB9LAorICAgICAgICB7ICJq
c2NPcHRpb25zIiwgS2V5VHlwZTo6U3RyaW5nIH0sCiAgICAgICAgIHsgInN0YW5kYWxvbmVXZWJB
cHBsaWNhdGlvblVSTCIsIEtleVR5cGU6OlN0cmluZ1VSTCB9LAogCiAgICAgICAgIHsgImxhbmd1
YWdlIiwgS2V5VHlwZTo6U3RyaW5nVmVjdG9yIH0sCkBAIC00ODYsNiArNDgwLDQyIEBAIGJvb2wg
VGVzdE9wdGlvbnM6Omhhc1NhbWVJbml0aWFsaXphdGlvbk8KICAgICByZXR1cm4gdHJ1ZTsKIH0K
IAorI2RlZmluZSBGT1JfRUFDSF9CT09MX1dLX1BSRUZFUkVOQ0UobWFjcm8pIFwKKyAgICBtYWNy
byhlbmFibGVDYXB0dXJlVmlkZW9JblVJUHJvY2VzcywgQ2FwdHVyZVZpZGVvSW5VSVByb2Nlc3NF
bmFibGVkKSBcCisgICAgbWFjcm8oZW5hYmxlQ2FwdHVyZVZpZGVvSW5HUFVQcm9jZXNzLCBDYXB0
dXJlVmlkZW9JbkdQVVByb2Nlc3NFbmFibGVkKSBcCisgICAgbWFjcm8oZW5hYmxlQ2FwdHVyZUF1
ZGlvSW5VSVByb2Nlc3MsIENhcHR1cmVBdWRpb0luVUlQcm9jZXNzRW5hYmxlZCkgXAorICAgIG1h
Y3JvKGVuYWJsZUNhcHR1cmVBdWRpb0luR1BVUHJvY2VzcywgQ2FwdHVyZUF1ZGlvSW5HUFVQcm9j
ZXNzRW5hYmxlZCkgXAorICAgIG1hY3JvKHVzZUFjY2VsZXJhdGVkRHJhd2luZywgQWNjZWxlcmF0
ZWREcmF3aW5nRW5hYmxlZCkgXAorICAgIG1hY3JvKHVzZU1vY2tTY3JvbGxiYXJzLCBNb2NrU2Ny
b2xsYmFyc0VuYWJsZWQpIFwKKyAgICBtYWNybyhuZWVkc1NpdGVTcGVjaWZpY1F1aXJrcywgTmVl
ZHNTaXRlU3BlY2lmaWNRdWlya3MpIFwKKyAgICBtYWNybyhlbmFibGVBdHRhY2htZW50RWxlbWVu
dCwgQXR0YWNobWVudEVsZW1lbnRFbmFibGVkKSBcCisgICAgbWFjcm8oZW5hYmxlTWVudUl0ZW1F
bGVtZW50LCBNZW51SXRlbUVsZW1lbnRFbmFibGVkKSBcCisgICAgbWFjcm8oZW5hYmxlS2V5Z2Vu
RWxlbWVudCwgS2V5Z2VuRWxlbWVudEVuYWJsZWQpIFwKKyAgICBtYWNybyhlbmFibGVNb2Rlcm5N
ZWRpYUNvbnRyb2xzLCBNb2Rlcm5NZWRpYUNvbnRyb2xzRW5hYmxlZCkgXAorICAgIG1hY3JvKGVu
YWJsZVdlYkF1dGhlbnRpY2F0aW9uLCBXZWJBdXRoZW50aWNhdGlvbkVuYWJsZWQpIFwKKyAgICBt
YWNybyhlbmFibGVXZWJBdXRoZW50aWNhdGlvbkxvY2FsQXV0aGVudGljYXRvciwgV2ViQXV0aGVu
dGljYXRpb25Mb2NhbEF1dGhlbnRpY2F0b3JFbmFibGVkKSBcCisgICAgbWFjcm8oZW5hYmxlSW5z
cGVjdG9yQWRkaXRpb25zLCBJbnNwZWN0b3JBZGRpdGlvbnNFbmFibGVkKSBcCisgICAgbWFjcm8o
YWxsb3dDcm9zc09yaWdpblN1YnJlc291cmNlc1RvQXNrRm9yQ3JlZGVudGlhbHMsIEFsbG93Q3Jv
c3NPcmlnaW5TdWJyZXNvdXJjZXNUb0Fza0ZvckNyZWRlbnRpYWxzKSBcCisgICAgbWFjcm8oZG9t
UGFzdGVBbGxvd2VkLCBET01QYXN0ZUFsbG93ZWQpIFwKKyAgICBtYWNybyhlbmFibGVDb2xvckZp
bHRlciwgQ29sb3JGaWx0ZXJFbmFibGVkKSBcCisgICAgbWFjcm8ocHVuY2hPdXRXaGl0ZUJhY2tn
cm91bmRzSW5EYXJrTW9kZSwgUHVuY2hPdXRXaGl0ZUJhY2tncm91bmRzSW5EYXJrTW9kZSkgXAor
ICAgIG1hY3JvKHNob3VsZElnbm9yZU1ldGFWaWV3cG9ydCwgU2hvdWxkSWdub3JlTWV0YVZpZXdw
b3J0KSBcCisgICAgbWFjcm8oZW5hYmxlQXBwTmFwLCBQYWdlVmlzaWJpbGl0eUJhc2VkUHJvY2Vz
c1N1cHByZXNzaW9uRW5hYmxlZCkgXAorICAgIG1hY3JvKGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGUs
IFVzZXNCYWNrRm9yd2FyZENhY2hlKSBcCisgICAgbWFjcm8oZW5hYmxlU2VydmljZUNvbnRyb2xz
LCBTZXJ2aWNlQ29udHJvbHNFbmFibGVkKSBcCisgICAgbWFjcm8oYWxsb3dUb3BOYXZpZ2F0aW9u
VG9EYXRhVVJMcywgQWxsb3dUb3BOYXZpZ2F0aW9uVG9EYXRhVVJMcykgXAorICAgIG1hY3JvKHVz
ZVNlcnZpY2VXb3JrZXJTaG9ydFRpbWVvdXQsIFNob3VsZFVzZVNlcnZpY2VXb3JrZXJTaG9ydFRp
bWVvdXQpIFwKK1wKKworc3RkOjp2ZWN0b3I8c3RkOjpwYWlyPHN0ZDo6c3RyaW5nLCBib29sPj4g
VGVzdE9wdGlvbnM6OmJvb2xXS1ByZWZlcmVuY2VzKCkgY29uc3QKK3sKKyAgICByZXR1cm4gewor
I2RlZmluZSBBRERfVkFMVUUodGVzdE9wdGlvbnNLZXksIHByZWZlcmVuY2VzS2V5KSB7ICNwcmVm
ZXJlbmNlc0tleSwgYm9vbEZlYXR1cmVWYWx1ZSgjdGVzdE9wdGlvbnNLZXkpIH0sCitGT1JfRUFD
SF9CT09MX1dLX1BSRUZFUkVOQ0UoQUREX1ZBTFVFKQorI3VuZGVmIEFERF9WQUxVRQorICAgIH07
Cit9CisKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CiBUIGZlYXR1cmVWYWx1ZShzdGQ6OnN0cmluZyBr
ZXksIGNvbnN0IHN0ZDo6dW5vcmRlcmVkX21hcDxzdGQ6OnN0cmluZywgVD4mIG1hcCwgY29uc3Qg
c3RkOjp1bm9yZGVyZWRfbWFwPHN0ZDo6c3RyaW5nLCBUPiYgZGVmYXVsdHNNYXApCiB7CkluZGV4
OiBUb29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RPcHRpb25zLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0T3B0aW9ucy5oCShyZXZpc2lvbiAyNjgzMjYpCisrKyBU
b29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RPcHRpb25zLmgJKHdvcmtpbmcgY29weSkKQEAgLTg3
LDY5ICs4Nyw0OCBAQCBwdWJsaWM6CiAgICAgICAgIH07CiAgICAgfQogCi0gICAgYm9vbCB1c2VU
aHJlYWRlZFNjcm9sbGluZygpIGNvbnN0IHsgcmV0dXJuIGJvb2xGZWF0dXJlVmFsdWUoInVzZVRo
cmVhZGVkU2Nyb2xsaW5nIik7IH0KLSAgICBib29sIHVzZUFjY2VsZXJhdGVkRHJhd2luZygpIGNv
bnN0IHsgcmV0dXJuIGJvb2xGZWF0dXJlVmFsdWUoInVzZUFjY2VsZXJhdGVkRHJhd2luZyIpOyB9
Ci0gICAgYm9vbCB1c2VSZW1vdGVMYXllclRyZWUoKSBjb25zdCB7IHJldHVybiBib29sRmVhdHVy
ZVZhbHVlKCJ1c2VSZW1vdGVMYXllclRyZWUiKTsgfQotICAgIGJvb2wgc2hvdWxkU2hvd1dlYlZp
ZXcoKSBjb25zdCB7IHJldHVybiBib29sRmVhdHVyZVZhbHVlKCJzaG91bGRTaG93V2ViVmlldyIp
OyB9Ci0gICAgYm9vbCB1c2VGbGV4aWJsZVZpZXdwb3J0KCkgY29uc3QgeyByZXR1cm4gYm9vbEZl
YXR1cmVWYWx1ZSgidXNlRmxleGlibGVWaWV3cG9ydCIpOyB9Ci0gICAgYm9vbCB1c2VEYXRhRGV0
ZWN0aW9uKCkgY29uc3QgeyByZXR1cm4gYm9vbEZlYXR1cmVWYWx1ZSgidXNlRGF0YURldGVjdGlv
biIpOyB9Ci0gICAgYm9vbCB1c2VNb2NrU2Nyb2xsYmFycygpIGNvbnN0IHsgcmV0dXJuIGJvb2xG
ZWF0dXJlVmFsdWUoInVzZU1vY2tTY3JvbGxiYXJzIik7IH0KLSAgICBib29sIG5lZWRzU2l0ZVNw
ZWNpZmljUXVpcmtzKCkgY29uc3QgeyByZXR1cm4gYm9vbEZlYXR1cmVWYWx1ZSgibmVlZHNTaXRl
U3BlY2lmaWNRdWlya3MiKTsgfQotICAgIGJvb2wgaWdub3Jlc1ZpZXdwb3J0U2NhbGVMaW1pdHMo
KSBjb25zdCB7IHJldHVybiBib29sRmVhdHVyZVZhbHVlKCJpZ25vcmVzVmlld3BvcnRTY2FsZUxp
bWl0cyIpOyB9Ci0gICAgYm9vbCB1c2VDaGFyYWN0ZXJTZWxlY3Rpb25HcmFudWxhcml0eSgpIGNv
bnN0IHsgcmV0dXJuIGJvb2xGZWF0dXJlVmFsdWUoInVzZUNoYXJhY3RlclNlbGVjdGlvbkdyYW51
bGFyaXR5Iik7IH0KLSAgICBib29sIGVuYWJsZUF0dGFjaG1lbnRFbGVtZW50KCkgY29uc3QgeyBy
ZXR1cm4gYm9vbEZlYXR1cmVWYWx1ZSgiZW5hYmxlQXR0YWNobWVudEVsZW1lbnQiKTsgfQotICAg
IGJvb2wgZW5hYmxlSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoKSBjb25zdCB7IHJldHVybiBib29sRmVh
dHVyZVZhbHVlKCJlbmFibGVJbnRlcnNlY3Rpb25PYnNlcnZlciIpOyB9Ci0gICAgYm9vbCB1c2VF
cGhlbWVyYWxTZXNzaW9uKCkgY29uc3QgeyByZXR1cm4gYm9vbEZlYXR1cmVWYWx1ZSgidXNlRXBo
ZW1lcmFsU2Vzc2lvbiIpOyB9Ci0gICAgYm9vbCBlbmFibGVNZW51SXRlbUVsZW1lbnQoKSBjb25z
dCB7IHJldHVybiBib29sRmVhdHVyZVZhbHVlKCJlbmFibGVNZW51SXRlbUVsZW1lbnQiKTsgfQot
ICAgIGJvb2wgZW5hYmxlS2V5Z2VuRWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIGJvb2xGZWF0dXJl
VmFsdWUoImVuYWJsZUtleWdlbkVsZW1lbnQiKTsgfQotICAgIGJvb2wgZW5hYmxlTW9kZXJuTWVk
aWFDb250cm9scygpIGNvbnN0IHsgcmV0dXJuIGJvb2xGZWF0dXJlVmFsdWUoImVuYWJsZU1vZGVy
bk1lZGlhQ29udHJvbHMiKTsgfQotICAgIGJvb2wgZW5hYmxlUG9pbnRlckxvY2soKSBjb25zdCB7
IHJldHVybiBib29sRmVhdHVyZVZhbHVlKCJlbmFibGVQb2ludGVyTG9jayIpOyB9Ci0gICAgYm9v
bCBlbmFibGVXZWJBdXRoZW50aWNhdGlvbigpIGNvbnN0IHsgcmV0dXJuIGJvb2xGZWF0dXJlVmFs
dWUoImVuYWJsZVdlYkF1dGhlbnRpY2F0aW9uIik7IH0KLSAgICBib29sIGVuYWJsZVdlYkF1dGhl
bnRpY2F0aW9uTG9jYWxBdXRoZW50aWNhdG9yKCkgY29uc3QgeyByZXR1cm4gYm9vbEZlYXR1cmVW
YWx1ZSgiZW5hYmxlV2ViQXV0aGVudGljYXRpb25Mb2NhbEF1dGhlbnRpY2F0b3IiKTsgfQotICAg
IGJvb2wgZW5hYmxlSW5zcGVjdG9yQWRkaXRpb25zKCkgY29uc3QgeyByZXR1cm4gYm9vbEZlYXR1
cmVWYWx1ZSgiZW5hYmxlSW5zcGVjdG9yQWRkaXRpb25zIik7IH0KLSAgICBib29sIHNob3VsZFNo
b3dUb3VjaGVzKCkgY29uc3QgeyByZXR1cm4gYm9vbEZlYXR1cmVWYWx1ZSgic2hvdWxkU2hvd1Rv
dWNoZXMiKTsgfQorICAgIGJvb2wgYWxsb3dzTGlua1ByZXZpZXcoKSBjb25zdCB7IHJldHVybiBi
b29sRmVhdHVyZVZhbHVlKCJhbGxvd3NMaW5rUHJldmlldyIpOyB9CiAgICAgYm9vbCBkdW1wSlND
b25zb2xlTG9nSW5TdGRFcnIoKSBjb25zdCB7IHJldHVybiBib29sRmVhdHVyZVZhbHVlKCJkdW1w
SlNDb25zb2xlTG9nSW5TdGRFcnIiKTsgfQotICAgIGJvb2wgYWxsb3dDcm9zc09yaWdpblN1YnJl
c291cmNlc1RvQXNrRm9yQ3JlZGVudGlhbHMoKSBjb25zdCB7IHJldHVybiBib29sRmVhdHVyZVZh
bHVlKCJhbGxvd0Nyb3NzT3JpZ2luU3VicmVzb3VyY2VzVG9Bc2tGb3JDcmVkZW50aWFscyIpOyB9
Ci0gICAgYm9vbCBkb21QYXN0ZUFsbG93ZWQoKSBjb25zdCB7IHJldHVybiBib29sRmVhdHVyZVZh
bHVlKCJkb21QYXN0ZUFsbG93ZWQiKTsgfQotICAgIGJvb2wgZW5hYmxlQ29sb3JGaWx0ZXIoKSBj
b25zdCB7IHJldHVybiBib29sRmVhdHVyZVZhbHVlKCJlbmFibGVDb2xvckZpbHRlciIpOyB9Ci0g
ICAgYm9vbCBwdW5jaE91dFdoaXRlQmFja2dyb3VuZHNJbkRhcmtNb2RlKCkgY29uc3QgeyByZXR1
cm4gYm9vbEZlYXR1cmVWYWx1ZSgicHVuY2hPdXRXaGl0ZUJhY2tncm91bmRzSW5EYXJrTW9kZSIp
OyB9Ci0gICAgYm9vbCBydW5TaW5nbHkoKSBjb25zdCB7IHJldHVybiBib29sRmVhdHVyZVZhbHVl
KCJydW5TaW5nbHkiKTsgfQotICAgIGJvb2wgY2hlY2tGb3JXb3JsZExlYWtzKCkgY29uc3QgeyBy
ZXR1cm4gYm9vbEZlYXR1cmVWYWx1ZSgiY2hlY2tGb3JXb3JsZExlYWtzIik7IH0KLSAgICBib29s
IHNob3VsZElnbm9yZU1ldGFWaWV3cG9ydCgpIGNvbnN0IHsgcmV0dXJuIGJvb2xGZWF0dXJlVmFs
dWUoInNob3VsZElnbm9yZU1ldGFWaWV3cG9ydCIpOyB9Ci0gICAgYm9vbCBzaG91bGRTaG93U3Bl
bGxDaGVja2luZ0RvdHMoKSBjb25zdCB7IHJldHVybiBib29sRmVhdHVyZVZhbHVlKCJzcGVsbENo
ZWNraW5nRG90cyIpOyB9Ci0gICAgYm9vbCBlbmFibGVTZXJ2aWNlQ29udHJvbHMoKSBjb25zdCB7
IHJldHVybiBib29sRmVhdHVyZVZhbHVlKCJlbmFibGVTZXJ2aWNlQ29udHJvbHMiKTsgfQogICAg
IGJvb2wgZWRpdGFibGUoKSBjb25zdCB7IHJldHVybiBib29sRmVhdHVyZVZhbHVlKCJlZGl0YWJs
ZSIpOyB9Ci0gICAgYm9vbCBzaG91bGRIYW5kbGVSdW5PcGVuUGFuZWwoKSBjb25zdCB7IHJldHVy
biBib29sRmVhdHVyZVZhbHVlKCJzaG91bGRIYW5kbGVSdW5PcGVuUGFuZWwiKTsgfQotICAgIGJv
b2wgc2hvdWxkUHJlc2VudFBvcG92ZXJzKCkgY29uc3QgeyByZXR1cm4gYm9vbEZlYXR1cmVWYWx1
ZSgic2hvdWxkUHJlc2VudFBvcG92ZXJzIik7IH0KLSAgICBib29sIGVuYWJsZUFwcE5hcCgpIGNv
bnN0IHsgcmV0dXJuIGJvb2xGZWF0dXJlVmFsdWUoImVuYWJsZUFwcE5hcCIpOyB9Ci0gICAgYm9v
bCBlbmFibGVCYWNrRm9yd2FyZENhY2hlKCkgY29uc3QgeyByZXR1cm4gYm9vbEZlYXR1cmVWYWx1
ZSgiZW5hYmxlQmFja0ZvcndhcmRDYWNoZSIpOyB9Ci0gICAgYm9vbCBhbGxvd3NMaW5rUHJldmll
dygpIGNvbnN0IHsgcmV0dXJuIGJvb2xGZWF0dXJlVmFsdWUoImFsbG93c0xpbmtQcmV2aWV3Iik7
IH0KLSAgICBib29sIGVuYWJsZUNhcHR1cmVWaWRlb0luVUlQcm9jZXNzKCkgY29uc3QgeyByZXR1
cm4gYm9vbEZlYXR1cmVWYWx1ZSgiZW5hYmxlQ2FwdHVyZVZpZGVvSW5VSVByb2Nlc3MiKTsgfQot
ICAgIGJvb2wgZW5hYmxlQ2FwdHVyZVZpZGVvSW5HUFVQcm9jZXNzKCkgY29uc3QgeyByZXR1cm4g
Ym9vbEZlYXR1cmVWYWx1ZSgiZW5hYmxlQ2FwdHVyZVZpZGVvSW5HUFVQcm9jZXNzIik7IH0KLSAg
ICBib29sIGVuYWJsZUNhcHR1cmVBdWRpb0luVUlQcm9jZXNzKCkgY29uc3QgeyByZXR1cm4gYm9v
bEZlYXR1cmVWYWx1ZSgiZW5hYmxlQ2FwdHVyZUF1ZGlvSW5VSVByb2Nlc3MiKTsgfQotICAgIGJv
b2wgZW5hYmxlQ2FwdHVyZUF1ZGlvSW5HUFVQcm9jZXNzKCkgY29uc3QgeyByZXR1cm4gYm9vbEZl
YXR1cmVWYWx1ZSgiZW5hYmxlQ2FwdHVyZUF1ZGlvSW5HUFVQcm9jZXNzIik7IH0KLSAgICBib29s
IGFsbG93VG9wTmF2aWdhdGlvblRvRGF0YVVSTHMoKSBjb25zdCB7IHJldHVybiBib29sRmVhdHVy
ZVZhbHVlKCJhbGxvd1RvcE5hdmlnYXRpb25Ub0RhdGFVUkxzIik7IH0KKyAgICAvLyBGSVhNRTog
ZW5hYmxlQXR0YWNobWVudEVsZW1lbnQoKSBpcyBzdGlsbCB1c2VkIGR1ZSB0byBzb21lIFdlYktp
dCBjb2RlIHRoYXQgcmVsaWVzIG9uIHRoZSBjb25maWd1cmF0aW9uIHZhbHVlIG9mIF9lbmFibGVB
dHRhY2htZW50RWxlbWVudC4KKyAgICBib29sIGVuYWJsZUF0dGFjaG1lbnRFbGVtZW50KCkgY29u
c3QgeyByZXR1cm4gYm9vbEZlYXR1cmVWYWx1ZSgiZW5hYmxlQXR0YWNobWVudEVsZW1lbnQiKTsg
fQogICAgIGJvb2wgZW5hYmxlSW5BcHBCcm93c2VyUHJpdmFjeSgpIGNvbnN0IHsgcmV0dXJuIGJv
b2xGZWF0dXJlVmFsdWUoImVuYWJsZUluQXBwQnJvd3NlclByaXZhY3kiKTsgfQotICAgIGJvb2wg
aXNBcHBCb3VuZFdlYlZpZXcoKSBjb25zdCB7IHJldHVybiBib29sRmVhdHVyZVZhbHVlKCJpc0Fw
cEJvdW5kV2ViVmlldyIpOyB9Ci0gICAgYm9vbCBpZ25vcmVTeW5jaHJvbm91c01lc3NhZ2luZ1Rp
bWVvdXRzKCkgY29uc3QgeyByZXR1cm4gYm9vbEZlYXR1cmVWYWx1ZSgiaWdub3JlU3luY2hyb25v
dXNNZXNzYWdpbmdUaW1lb3V0cyIpOyB9CiAgICAgYm9vbCBlbmFibGVQcm9jZXNzU3dhcE9uTmF2
aWdhdGlvbigpIGNvbnN0IHsgcmV0dXJuIGJvb2xGZWF0dXJlVmFsdWUoImVuYWJsZVByb2Nlc3NT
d2FwT25OYXZpZ2F0aW9uIik7IH0KICAgICBib29sIGVuYWJsZVByb2Nlc3NTd2FwT25XaW5kb3dP
cGVuKCkgY29uc3QgeyByZXR1cm4gYm9vbEZlYXR1cmVWYWx1ZSgiZW5hYmxlUHJvY2Vzc1N3YXBP
bldpbmRvd09wZW4iKTsgfQorICAgIGJvb2wgaWdub3JlU3luY2hyb25vdXNNZXNzYWdpbmdUaW1l
b3V0cygpIGNvbnN0IHsgcmV0dXJuIGJvb2xGZWF0dXJlVmFsdWUoImlnbm9yZVN5bmNocm9ub3Vz
TWVzc2FnaW5nVGltZW91dHMiKTsgfQorICAgIGJvb2wgaWdub3Jlc1ZpZXdwb3J0U2NhbGVMaW1p
dHMoKSBjb25zdCB7IHJldHVybiBib29sRmVhdHVyZVZhbHVlKCJpZ25vcmVzVmlld3BvcnRTY2Fs
ZUxpbWl0cyIpOyB9CisgICAgYm9vbCBpc0FwcEJvdW5kV2ViVmlldygpIGNvbnN0IHsgcmV0dXJu
IGJvb2xGZWF0dXJlVmFsdWUoImlzQXBwQm91bmRXZWJWaWV3Iik7IH0KKyAgICBib29sIHB1bmNo
T3V0V2hpdGVCYWNrZ3JvdW5kc0luRGFya01vZGUoKSBjb25zdCB7IHJldHVybiBib29sRmVhdHVy
ZVZhbHVlKCJwdW5jaE91dFdoaXRlQmFja2dyb3VuZHNJbkRhcmtNb2RlIik7IH0KKyAgICBib29s
IHJ1blNpbmdseSgpIGNvbnN0IHsgcmV0dXJuIGJvb2xGZWF0dXJlVmFsdWUoInJ1blNpbmdseSIp
OyB9CisgICAgYm9vbCBzaG91bGRIYW5kbGVSdW5PcGVuUGFuZWwoKSBjb25zdCB7IHJldHVybiBi
b29sRmVhdHVyZVZhbHVlKCJzaG91bGRIYW5kbGVSdW5PcGVuUGFuZWwiKTsgfQorICAgIGJvb2wg
c2hvdWxkUHJlc2VudFBvcG92ZXJzKCkgY29uc3QgeyByZXR1cm4gYm9vbEZlYXR1cmVWYWx1ZSgi
c2hvdWxkUHJlc2VudFBvcG92ZXJzIik7IH0KKyAgICBib29sIHNob3VsZFNob3dTcGVsbENoZWNr
aW5nRG90cygpIGNvbnN0IHsgcmV0dXJuIGJvb2xGZWF0dXJlVmFsdWUoInNwZWxsQ2hlY2tpbmdE
b3RzIik7IH0KKyAgICBib29sIHNob3VsZFNob3dUb3VjaGVzKCkgY29uc3QgeyByZXR1cm4gYm9v
bEZlYXR1cmVWYWx1ZSgic2hvdWxkU2hvd1RvdWNoZXMiKTsgfQorICAgIGJvb2wgc2hvdWxkU2hv
d1dlYlZpZXcoKSBjb25zdCB7IHJldHVybiBib29sRmVhdHVyZVZhbHVlKCJzaG91bGRTaG93V2Vi
VmlldyIpOyB9CisgICAgYm9vbCB1c2VDaGFyYWN0ZXJTZWxlY3Rpb25HcmFudWxhcml0eSgpIGNv
bnN0IHsgcmV0dXJuIGJvb2xGZWF0dXJlVmFsdWUoInVzZUNoYXJhY3RlclNlbGVjdGlvbkdyYW51
bGFyaXR5Iik7IH0KKyAgICBib29sIHVzZURhdGFEZXRlY3Rpb24oKSBjb25zdCB7IHJldHVybiBi
b29sRmVhdHVyZVZhbHVlKCJ1c2VEYXRhRGV0ZWN0aW9uIik7IH0KKyAgICBib29sIHVzZUVwaGVt
ZXJhbFNlc3Npb24oKSBjb25zdCB7IHJldHVybiBib29sRmVhdHVyZVZhbHVlKCJ1c2VFcGhlbWVy
YWxTZXNzaW9uIik7IH0KKyAgICBib29sIHVzZUZsZXhpYmxlVmlld3BvcnQoKSBjb25zdCB7IHJl
dHVybiBib29sRmVhdHVyZVZhbHVlKCJ1c2VGbGV4aWJsZVZpZXdwb3J0Iik7IH0KKyAgICBib29s
IHVzZVJlbW90ZUxheWVyVHJlZSgpIGNvbnN0IHsgcmV0dXJuIGJvb2xGZWF0dXJlVmFsdWUoInVz
ZVJlbW90ZUxheWVyVHJlZSIpOyB9CiAgICAgYm9vbCB1c2VTZXJ2aWNlV29ya2VyU2hvcnRUaW1l
b3V0KCkgY29uc3QgeyByZXR1cm4gYm9vbEZlYXR1cmVWYWx1ZSgidXNlU2VydmljZVdvcmtlclNo
b3J0VGltZW91dCIpOyB9CisgICAgYm9vbCB1c2VUaHJlYWRlZFNjcm9sbGluZygpIGNvbnN0IHsg
cmV0dXJuIGJvb2xGZWF0dXJlVmFsdWUoInVzZVRocmVhZGVkU2Nyb2xsaW5nIik7IH0KICAgICBk
b3VibGUgY29udGVudEluc2V0VG9wKCkgY29uc3QgeyByZXR1cm4gZG91YmxlRmVhdHVyZVZhbHVl
KCJjb250ZW50SW5zZXQudG9wIik7IH0KICAgICBkb3VibGUgZGV2aWNlU2NhbGVGYWN0b3IoKSBj
b25zdCB7IHJldHVybiBkb3VibGVGZWF0dXJlVmFsdWUoImRldmljZVNjYWxlRmFjdG9yIik7IH0K
LSAgICBkb3VibGUgdmlld1dpZHRoKCkgY29uc3QgeyByZXR1cm4gZG91YmxlRmVhdHVyZVZhbHVl
KCJ2aWV3V2lkdGgiKTsgfQogICAgIGRvdWJsZSB2aWV3SGVpZ2h0KCkgY29uc3QgeyByZXR1cm4g
ZG91YmxlRmVhdHVyZVZhbHVlKCJ2aWV3SGVpZ2h0Iik7IH0KKyAgICBkb3VibGUgdmlld1dpZHRo
KCkgY29uc3QgeyByZXR1cm4gZG91YmxlRmVhdHVyZVZhbHVlKCJ2aWV3V2lkdGgiKTsgfQorICAg
IHN0ZDo6c3RyaW5nIGFkZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVzKCkgY29uc3QgeyByZXR1
cm4gc3RyaW5nRmVhdHVyZVZhbHVlKCJhZGRpdGlvbmFsU3VwcG9ydGVkSW1hZ2VUeXBlcyIpOyB9
CisgICAgc3RkOjpzdHJpbmcgYXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyKCkgY29uc3QgeyBy
ZXR1cm4gc3RyaW5nRmVhdHVyZVZhbHVlKCJhcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIiKTsg
fQogICAgIHN0ZDo6c3RyaW5nIGFwcGxpY2F0aW9uTWFuaWZlc3QoKSBjb25zdCB7IHJldHVybiBz
dHJpbmdGZWF0dXJlVmFsdWUoImFwcGxpY2F0aW9uTWFuaWZlc3QiKTsgfQorICAgIHN0ZDo6c3Ry
aW5nIGNvbnRlbnRNb2RlKCkgY29uc3QgeyByZXR1cm4gc3RyaW5nRmVhdHVyZVZhbHVlKCJjb250
ZW50TW9kZSIpOyB9CiAgICAgc3RkOjpzdHJpbmcganNjT3B0aW9ucygpIGNvbnN0IHsgcmV0dXJu
IHN0cmluZ0ZlYXR1cmVWYWx1ZSgianNjT3B0aW9ucyIpOyB9Ci0gICAgc3RkOjpzdHJpbmcgYWRk
aXRpb25hbFN1cHBvcnRlZEltYWdlVHlwZXMoKSBjb25zdCB7IHJldHVybiBzdHJpbmdGZWF0dXJl
VmFsdWUoImFkZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVzIik7IH0KICAgICBzdGQ6OnN0cmlu
ZyBzdGFuZGFsb25lV2ViQXBwbGljYXRpb25VUkwoKSBjb25zdCB7IHJldHVybiBzdHJpbmdGZWF0
dXJlVmFsdWUoInN0YW5kYWxvbmVXZWJBcHBsaWNhdGlvblVSTCIpOyB9Ci0gICAgc3RkOjpzdHJp
bmcgY29udGVudE1vZGUoKSBjb25zdCB7IHJldHVybiBzdHJpbmdGZWF0dXJlVmFsdWUoImNvbnRl
bnRNb2RlIik7IH0KLSAgICBzdGQ6OnN0cmluZyBhcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIo
KSBjb25zdCB7IHJldHVybiBzdHJpbmdGZWF0dXJlVmFsdWUoImFwcGxpY2F0aW9uQnVuZGxlSWRl
bnRpZmllciIpOyB9CiAgICAgc3RkOjp2ZWN0b3I8c3RkOjpzdHJpbmc+IG92ZXJyaWRlTGFuZ3Vh
Z2VzKCkgY29uc3QgeyByZXR1cm4gc3RyaW5nVmVjdG9yRmVhdHVyZVZhbHVlKCJsYW5ndWFnZSIp
OyB9CiAKICAgICBjb25zdCBzdGQ6OnVub3JkZXJlZF9tYXA8c3RkOjpzdHJpbmcsIGJvb2w+JiBl
eHBlcmltZW50YWxGZWF0dXJlcygpIGNvbnN0IHsgcmV0dXJuIG1fZmVhdHVyZXMuZXhwZXJpbWVu
dGFsRmVhdHVyZXM7IH0KICAgICBjb25zdCBzdGQ6OnVub3JkZXJlZF9tYXA8c3RkOjpzdHJpbmcs
IGJvb2w+JiBpbnRlcm5hbERlYnVnRmVhdHVyZXMoKSBjb25zdCB7IHJldHVybiBtX2ZlYXR1cmVz
LmludGVybmFsRGVidWdGZWF0dXJlczsgfQogCisgICAgc3RkOjp2ZWN0b3I8c3RkOjpwYWlyPHN0
ZDo6c3RyaW5nLCBib29sPj4gYm9vbFdLUHJlZmVyZW5jZXMoKSBjb25zdDsKKwogICAgIGJvb2wg
aGFzU2FtZUluaXRpYWxpemF0aW9uT3B0aW9ucyhjb25zdCBUZXN0T3B0aW9ucyYpIGNvbnN0Owog
CiBwcml2YXRlOgpJbmRleDogVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0Q29udHJv
bGxlckNvY29hLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2Ev
VGVzdENvbnRyb2xsZXJDb2NvYS5tbQkocmV2aXNpb24gMjY4MzI2KQorKysgVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9jb2NvYS9UZXN0Q29udHJvbGxlckNvY29hLm1tCSh3b3JraW5nIGNvcHkpCkBA
IC0zMiw2ICszMiw3IEBACiAjaW1wb3J0ICJUZXN0SW52b2NhdGlvbi5oIgogI2ltcG9ydCAiVGVz
dFJ1bm5lcldLV2ViVmlldy5oIgogI2ltcG9ydCAiVGVzdFdlYnNpdGVEYXRhU3RvcmVEZWxlZ2F0
ZS5oIgorI2ltcG9ydCAiV2ViQ29yZVRlc3RTdXBwb3J0LmgiCiAjaW1wb3J0IDxGb3VuZGF0aW9u
L0ZvdW5kYXRpb24uaD4KICNpbXBvcnQgPFNlY3VyaXR5L1NlY0l0ZW0uaD4KICNpbXBvcnQgPFdl
YktpdC9XS0NvbnRleHRDb25maWd1cmF0aW9uUmVmLmg+CkBAIC02OSw3ICs3MCw2IEBAIHZvaWQg
aW5pdGlhbGl6ZVdlYlZpZXdDb25maWd1cmF0aW9uKGNvbnMKICAgICBnbG9iYWxXZWJWaWV3Q29u
ZmlndXJhdGlvbi5wcm9jZXNzUG9vbCA9IChfX2JyaWRnZSBXS1Byb2Nlc3NQb29sICopY29udGV4
dDsKICAgICBnbG9iYWxXZWJWaWV3Q29uZmlndXJhdGlvbi53ZWJzaXRlRGF0YVN0b3JlID0gKF9f
YnJpZGdlIFdLV2Vic2l0ZURhdGFTdG9yZSAqKVRlc3RDb250cm9sbGVyOjpkZWZhdWx0V2Vic2l0
ZURhdGFTdG9yZSgpOwogICAgIGdsb2JhbFdlYlZpZXdDb25maWd1cmF0aW9uLl9hbGxvd1VuaXZl
cnNhbEFjY2Vzc0Zyb21GaWxlVVJMcyA9IFlFUzsKLSAgICBnbG9iYWxXZWJWaWV3Q29uZmlndXJh
dGlvbi5fYWxsb3dUb3BOYXZpZ2F0aW9uVG9EYXRhVVJMcyA9IFlFUzsKICAgICBnbG9iYWxXZWJW
aWV3Q29uZmlndXJhdGlvbi5fYXBwbGVQYXlFbmFibGVkID0gWUVTOwogCiAgICAgW2dsb2JhbFdl
YnNpdGVEYXRhU3RvcmVEZWxlZ2F0ZUNsaWVudCByZWxlYXNlXTsKQEAgLTE1OCwyMCArMTU4LDEz
IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtQ3JlYXRlV2ViVmkKICAgICAgICAgW2Nv
cGllZENvbmZpZ3VyYXRpb24gc2V0U2VsZWN0aW9uR3JhbnVsYXJpdHk6V0tTZWxlY3Rpb25HcmFu
dWxhcml0eUNoYXJhY3Rlcl07CiAgICAgaWYgKG9wdGlvbnMuaXNBcHBCb3VuZFdlYlZpZXcoKSkK
ICAgICAgICAgW2NvcGllZENvbmZpZ3VyYXRpb24gc2V0TGltaXRzTmF2aWdhdGlvbnNUb0FwcEJv
dW5kRG9tYWluczpZRVNdOwotI2Vsc2UKLSAgICBbY29waWVkQ29uZmlndXJhdGlvbiBfc2V0U2Vy
dmljZUNvbnRyb2xzRW5hYmxlZDpvcHRpb25zLmVuYWJsZVNlcnZpY2VDb250cm9scygpXTsKICNl
bmRpZgogCiAgICAgaWYgKG9wdGlvbnMuZW5hYmxlQXR0YWNobWVudEVsZW1lbnQoKSkKICAgICAg
ICAgW2NvcGllZENvbmZpZ3VyYXRpb24gX3NldEF0dGFjaG1lbnRFbGVtZW50RW5hYmxlZDpZRVNd
OwogCi0gICAgaWYgKG9wdGlvbnMuZW5hYmxlQ29sb3JGaWx0ZXIoKSkKLSAgICAgICAgW2NvcGll
ZENvbmZpZ3VyYXRpb24gX3NldENvbG9yRmlsdGVyRW5hYmxlZDpZRVNdOwotCiAgICAgW2NvcGll
ZENvbmZpZ3VyYXRpb24gc2V0V2Vic2l0ZURhdGFTdG9yZTooV0tXZWJzaXRlRGF0YVN0b3JlICop
d2Vic2l0ZURhdGFTdG9yZSgpXTsKIAotICAgIFtjb3BpZWRDb25maWd1cmF0aW9uIF9zZXRBbGxv
d1RvcE5hdmlnYXRpb25Ub0RhdGFVUkxzOm9wdGlvbnMuYWxsb3dUb3BOYXZpZ2F0aW9uVG9EYXRh
VVJMcygpXTsKLQogICAgIGNvbmZpZ3VyZUNvbnRlbnRNb2RlKGNvcGllZENvbmZpZ3VyYXRpb24u
Z2V0KCksIG9wdGlvbnMpOwogCiAgICAgYXV0byBhcHBsaWNhdGlvbk1hbmlmZXN0ID0gb3B0aW9u
cy5hcHBsaWNhdGlvbk1hbmlmZXN0KCk7CkBAIC0yOTgsNiArMjkxLDggQEAgdm9pZCBUZXN0Q29u
dHJvbGxlcjo6Y29jb2FSZXNldFN0YXRlVG9DbwogICAgIH0KIAogICAgIFtnbG9iYWxXZWJzaXRl
RGF0YVN0b3JlRGVsZWdhdGVDbGllbnQgc2V0QWxsb3dSYWlzaW5nUXVvdGE6WUVTXTsKKworICAg
IFdlYkNvcmVUZXN0U3VwcG9ydDo6c2V0QWRkaXRpb25hbFN1cHBvcnRlZEltYWdlVHlwZXNGb3JU
ZXN0aW5nKG9wdGlvbnMuYWRkaXRpb25hbFN1cHBvcnRlZEltYWdlVHlwZXMoKS5jX3N0cigpKTsK
IH0KIAogdm9pZCBUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1XaWxsUnVuVGVzdChjb25zdCBUZXN0
SW52b2NhdGlvbiYgdGVzdEludm9jYXRpb24pCkluZGV4OiBUb29scy9XZWJLaXRUZXN0UnVubmVy
L2d0ay9UZXN0Q29udHJvbGxlckd0ay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9ndGsvVGVzdENvbnRyb2xsZXJHdGsuY3BwCShyZXZpc2lvbiAyNjgzMjYpCisrKyBU
b29scy9XZWJLaXRUZXN0UnVubmVyL2d0ay9UZXN0Q29udHJvbGxlckd0ay5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlICJUZXN0Q29udHJvbGxlci5oIgogCiAj
aW5jbHVkZSAiUGxhdGZvcm1XZWJWaWV3LmgiCisjaW5jbHVkZSA8V2ViS2l0L1dLVGV4dENoZWNr
ZXIuaD4KICNpbmNsdWRlIDxndGsvZ3RrLmg+CiAjaW5jbHVkZSA8d3RmL1BsYXRmb3JtLmg+CiAj
aW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KQEAgLTE1MCw2ICsxNTEsMTIgQEAgdm9pZCBUZXN0Q29u
dHJvbGxlcjo6cGxhdGZvcm1SZXNldFByZWZlcgogICAgIG1fbWFpbldlYlZpZXctPmRpc21pc3NB
bGxQb3B1cE1lbnVzKCk7CiB9CiAKK2Jvb2wgVGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtUmVzZXRT
dGF0ZVRvQ29uc2lzdGVudFZhbHVlcyhjb25zdCBUZXN0T3B0aW9ucyYpCit7CisgICAgV0tUZXh0
Q2hlY2tlckNvbnRpbnVvdXNTcGVsbENoZWNraW5nRW5hYmxlZFN0YXRlQ2hhbmdlZCh0cnVlKTsK
KyAgICByZXR1cm4gdHJ1ZTsKK30KKwogVGVzdEZlYXR1cmVzIFRlc3RDb250cm9sbGVyOjpwbGF0
Zm9ybVNwZWNpZmljRmVhdHVyZURlZmF1bHRzRm9yVGVzdChjb25zdCBUZXN0Q29tbWFuZCYpIGNv
bnN0CiB7CiAgICAgVGVzdEZlYXR1cmVzIGZlYXR1cmVzOwpJbmRleDogVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9pb3MvVGVzdENvbnRyb2xsZXJJT1MubW0KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9pb3MvVGVzdENvbnRyb2xsZXJJT1MubW0JKHJldmlzaW9uIDI2ODMyNikK
KysrIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvaW9zL1Rlc3RDb250cm9sbGVySU9TLm1tCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xNDgsNyArMTQ4LDYgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6cGxhdGZv
cm1SZXNldFByZWZlcgogICAgIFdLUHJlZmVyZW5jZXNTZXRUZXh0QXV0b3NpemluZ0VuYWJsZWQo
cHJlZmVyZW5jZXMsIGZhbHNlKTsKICAgICBXS1ByZWZlcmVuY2VzU2V0VGV4dEF1dG9zaXppbmdV
c2VzSWRlbXBvdGVudE1vZGUocHJlZmVyZW5jZXMsIGZhbHNlKTsKICAgICBXS1ByZWZlcmVuY2Vz
U2V0Q29udGVudENoYW5nZU9ic2VydmVyRW5hYmxlZChwcmVmZXJlbmNlcywgZmFsc2UpOwotICAg
IFsoX19icmlkZ2UgV0tQcmVmZXJlbmNlcyAqKXByZWZlcmVuY2VzIF9zZXRTaG91bGRJZ25vcmVN
ZXRhVmlld3BvcnQ6Tk9dOwogfQogCiBib29sIFRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybVJlc2V0
U3RhdGVUb0NvbnNpc3RlbnRWYWx1ZXMoY29uc3QgVGVzdE9wdGlvbnMmIG9wdGlvbnMpCkBAIC0y
NjksOSArMjY4LDYgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1Db25maWd1cmVWaQog
CiAgICAgVGVzdFJ1bm5lcldLV2ViVmlldyAqd2ViVmlldyA9IG1haW5XZWJWaWV3KCktPnBsYXRm
b3JtVmlldygpOwogCi0gICAgaWYgKHRlc3Qub3B0aW9ucygpLnNob3VsZElnbm9yZU1ldGFWaWV3
cG9ydCgpKQotICAgICAgICB3ZWJWaWV3LmNvbmZpZ3VyYXRpb24ucHJlZmVyZW5jZXMuX3Nob3Vs
ZElnbm9yZU1ldGFWaWV3cG9ydCA9IFlFUzsKLQogICAgIGlmICghdGVzdC5vcHRpb25zKCkudXNl
RmxleGlibGVWaWV3cG9ydCgpKQogICAgICAgICByZXR1cm47CiAKSW5kZXg6IFRvb2xzL1dlYktp
dFRlc3RSdW5uZXIvd2luL1Rlc3RDb250cm9sbGVyV2luLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29s
cy9XZWJLaXRUZXN0UnVubmVyL3dpbi9UZXN0Q29udHJvbGxlcldpbi5jcHAJKHJldmlzaW9uIDI2
ODMyNikKKysrIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvd2luL1Rlc3RDb250cm9sbGVyV2luLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMjI3LDYgKzIyNywxMSBAQCB2b2lkIFRlc3RDb250cm9sbGVy
OjpwbGF0Zm9ybVJlc2V0UHJlZmVyCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAorYm9vbCBU
ZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1SZXNldFN0YXRlVG9Db25zaXN0ZW50VmFsdWVzKGNvbnN0
IFRlc3RPcHRpb25zJikKK3sKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogVGVzdEZlYXR1cmVzIFRl
c3RDb250cm9sbGVyOjpwbGF0Zm9ybVNwZWNpZmljRmVhdHVyZURlZmF1bHRzRm9yVGVzdChjb25z
dCBUZXN0Q29tbWFuZCYpIGNvbnN0CiB7CiAgICAgcmV0dXJuIHsgfTsKSW5kZXg6IFRvb2xzL1dl
YktpdFRlc3RSdW5uZXIvd3BlL1Rlc3RDb250cm9sbGVyV1BFLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBU
b29scy9XZWJLaXRUZXN0UnVubmVyL3dwZS9UZXN0Q29udHJvbGxlcldQRS5jcHAJKHJldmlzaW9u
IDI2ODMyNikKKysrIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvd3BlL1Rlc3RDb250cm9sbGVyV1BF
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTM2LDYgKzEzNiwxMSBAQCB2b2lkIFRlc3RDb250cm9s
bGVyOjpwbGF0Zm9ybVJlc2V0UHJlZmVyCiB7CiB9CiAKK2Jvb2wgVGVzdENvbnRyb2xsZXI6OnBs
YXRmb3JtUmVzZXRTdGF0ZVRvQ29uc2lzdGVudFZhbHVlcyhjb25zdCBUZXN0T3B0aW9ucyYpCit7
CisgICAgcmV0dXJuIHRydWU7Cit9CisKIFRlc3RGZWF0dXJlcyBUZXN0Q29udHJvbGxlcjo6cGxh
dGZvcm1TcGVjaWZpY0ZlYXR1cmVEZWZhdWx0c0ZvclRlc3QoY29uc3QgVGVzdENvbW1hbmQmKSBj
b25zdAogewogICAgIFRlc3RGZWF0dXJlcyBmZWF0dXJlczsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411079</attachid>
            <date>2020-10-11 16:31:06 -0700</date>
            <delta_ts>2020-10-11 18:44:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217582-20201011163105.patch</filename>
            <type>text/plain</type>
            <size>71665</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNjgzMjYpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMzIEBACisyMDIwLTEwLTExICBTYW0gV2Vpbmln
ICA8d2VpbmlnQGFwcGxlLmNvbT4KKworICAgICAgICBbUHJlZmVyZW5jZXNdIEludHJvZHVjZSBz
dHJpbmcgYmFzZWQgU1BJIGZvciBXS1ByZWZlcmVuY2VzIHRvIGFsbG93IHRlc3RzIHRvIGNoYW5n
ZSBpbnRlcm5hbCBiZWhhdmlvciB3aXRob3V0IGFsd2F5cyBhZGRpbmcgYWRkaXRpb25hbCBTUEkK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzU4Mgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtXSVBdCisK
KyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1pbnB1
dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0
OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogU2NyaXB0cy9QcmVm
ZXJlbmNlc1RlbXBsYXRlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbEZlYXR1cmVzLmNwcC5l
cmI6CisgICAgICAgICogU2NyaXB0cy9QcmVmZXJlbmNlc1RlbXBsYXRlcy9XZWJQcmVmZXJlbmNl
c0dldHRlclNldHRlcnMuY3BwLmVyYjogQWRkZWQuCisgICAgICAgICogU2NyaXB0cy9QcmVmZXJl
bmNlc1RlbXBsYXRlcy9XZWJQcmVmZXJlbmNlc0ludGVybmFsRGVidWdGZWF0dXJlcy5jcHAuZXJi
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcDoKKyAgICAgICAg
KFdLUHJlZmVyZW5jZXNTZXRCb29sVmFsdWVGb3JLZXkpOgorICAgICAgICAoV0tQcmVmZXJlbmNl
c1NldERvdWJsZVZhbHVlRm9yS2V5KToKKyAgICAgICAgKFdLUHJlZmVyZW5jZXNTZXRVSW50MzJW
YWx1ZUZvcktleSk6CisgICAgICAgIChXS1ByZWZlcmVuY2VzU2V0U3RyaW5nVmFsdWVGb3JLZXkp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzUmVmUHJpdmF0ZS5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcmVmZXJlbmNlcy5jcHA6CisgICAgICAgIChXZWJLaXQ6
OldlYlByZWZlcmVuY2VzOjpzZXRCb29sVmFsdWVGb3JLZXkpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQcmVmZXJlbmNlczo6c2V0RG91YmxlVmFsdWVGb3JLZXkpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQcmVmZXJlbmNlczo6c2V0VUludDMyVmFsdWVGb3JLZXkpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQcmVmZXJlbmNlczo6c2V0U3RyaW5nVmFsdWVGb3JLZXkpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJQcmVmZXJlbmNlcy5oOgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qOgorCiAyMDIwLTEwLTEwICBTYW0gV2VpbmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KIAog
ICAgICAgICBVc2UgV2ViUHJlZmVyZW5jZSBkZWZpbml0aW9ucyBmcm9tIHNoYXJlZCBjb25maWd1
cmF0aW9uIGZpbGVzIGluIFdlYkNvcmUgKFBhcnQgMSkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvQ01h
a2VMaXN0cy50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dAko
cmV2aXNpb24gMjY4MzI2KQorKysgU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dAkod29ya2lu
ZyBjb3B5KQpAQCAtNTAwLDYgKzUwMCw3IEBAIHNldChXZWJLaXRfV0VCX1BSRUZFUkVOQ0VTX1RF
TVBMQVRFUwogICAgICR7V0VCS0lUX0RJUn0vU2NyaXB0cy9QcmVmZXJlbmNlc1RlbXBsYXRlcy9X
ZWJQYWdlVXBkYXRlUHJlZmVyZW5jZXMuY3BwLmVyYgogICAgICR7V0VCS0lUX0RJUn0vU2NyaXB0
cy9QcmVmZXJlbmNlc1RlbXBsYXRlcy9XZWJQcmVmZXJlbmNlc0RlZmluaXRpb25zLmguZXJiCiAg
ICAgJHtXRUJLSVRfRElSfS9TY3JpcHRzL1ByZWZlcmVuY2VzVGVtcGxhdGVzL1dlYlByZWZlcmVu
Y2VzRXhwZXJpbWVudGFsRmVhdHVyZXMuY3BwLmVyYgorICAgICR7V0VCS0lUX0RJUn0vU2NyaXB0
cy9QcmVmZXJlbmNlc1RlbXBsYXRlcy9XZWJQcmVmZXJlbmNlc0dldHRlclNldHRlcnMuY3BwLmVy
YgogICAgICR7V0VCS0lUX0RJUn0vU2NyaXB0cy9QcmVmZXJlbmNlc1RlbXBsYXRlcy9XZWJQcmVm
ZXJlbmNlc0ludGVybmFsRGVidWdGZWF0dXJlcy5jcHAuZXJiCiAgICAgJHtXRUJLSVRfRElSfS9T
Y3JpcHRzL1ByZWZlcmVuY2VzVGVtcGxhdGVzL1dlYlByZWZlcmVuY2VzS2V5cy5jcHAuZXJiCiAg
ICAgJHtXRUJLSVRfRElSfS9TY3JpcHRzL1ByZWZlcmVuY2VzVGVtcGxhdGVzL1dlYlByZWZlcmVu
Y2VzS2V5cy5oLmVyYgpAQCAtNTE2LDkgKzUxNyw5IEBAIHNldChXZWJLaXRfV0VCX1BSRUZFUkVO
Q0VTCiBzZXRfc291cmNlX2ZpbGVzX3Byb3BlcnRpZXMoJHtXZWJLaXRfV0VCX1BSRUZFUkVOQ0VT
fSBQUk9QRVJUSUVTIEdFTkVSQVRFRCBUUlVFKQogCiBhZGRfY3VzdG9tX2NvbW1hbmQoCi0gICAg
T1VUUFVUICR7V2ViS2l0X0RFUklWRURfU09VUkNFU19ESVJ9L1dlYlBhZ2VVcGRhdGVQcmVmZXJl
bmNlcy5jcHAgJHtXZWJLaXRfREVSSVZFRF9TT1VSQ0VTX0RJUn0vV2ViUHJlZmVyZW5jZXNEZWZp
bml0aW9ucy5oICR7V2ViS2l0X0RFUklWRURfU09VUkNFU19ESVJ9L1dlYlByZWZlcmVuY2VzRXhw
ZXJpbWVudGFsRmVhdHVyZXMuY3BwICR7V2ViS2l0X0RFUklWRURfU09VUkNFU19ESVJ9L1dlYlBy
ZWZlcmVuY2VzSW50ZXJuYWxEZWJ1Z0ZlYXR1cmVzLmNwcCAke1dlYktpdF9ERVJJVkVEX1NPVVJD
RVNfRElSfS9XZWJQcmVmZXJlbmNlc0tleXMuY3BwICR7V2ViS2l0X0RFUklWRURfU09VUkNFU19E
SVJ9L1dlYlByZWZlcmVuY2VzS2V5cy5oICR7V2ViS2l0X0RFUklWRURfU09VUkNFU19ESVJ9L1dl
YlByZWZlcmVuY2VzU3RvcmVEZWZhdWx0c01hcC5jcHAKKyAgICBPVVRQVVQgJHtXZWJLaXRfREVS
SVZFRF9TT1VSQ0VTX0RJUn0vV2ViUGFnZVVwZGF0ZVByZWZlcmVuY2VzLmNwcCAke1dlYktpdF9E
RVJJVkVEX1NPVVJDRVNfRElSfS9XZWJQcmVmZXJlbmNlc0RlZmluaXRpb25zLmggJHtXZWJLaXRf
REVSSVZFRF9TT1VSQ0VTX0RJUn0vV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWxGZWF0dXJlcy5j
cHAgJHtXZWJLaXRfREVSSVZFRF9TT1VSQ0VTX0RJUn0vV2ViUHJlZmVyZW5jZXNHZXR0ZXJTZXR0
ZXJzLmNwcCAke1dlYktpdF9ERVJJVkVEX1NPVVJDRVNfRElSfS9XZWJQcmVmZXJlbmNlc0ludGVy
bmFsRGVidWdGZWF0dXJlcy5jcHAgJHtXZWJLaXRfREVSSVZFRF9TT1VSQ0VTX0RJUn0vV2ViUHJl
ZmVyZW5jZXNLZXlzLmNwcCAke1dlYktpdF9ERVJJVkVEX1NPVVJDRVNfRElSfS9XZWJQcmVmZXJl
bmNlc0tleXMuaCAke1dlYktpdF9ERVJJVkVEX1NPVVJDRVNfRElSfS9XZWJQcmVmZXJlbmNlc1N0
b3JlRGVmYXVsdHNNYXAuY3BwCiAgICAgREVQRU5EUyAke1dlYktpdF9XRUJfUFJFRkVSRU5DRVNf
VEVNUExBVEVTfSAke1dlYktpdF9XRUJfUFJFRkVSRU5DRVN9IFdURl9Db3B5UHJlZmVyZW5jZXMK
LSAgICBDT01NQU5EICR7UlVCWV9FWEVDVVRBQkxFfSAke1dURl9TQ1JJUFRTX0RJUn0vR2VuZXJh
dGVQcmVmZXJlbmNlcy5yYiAtLWZyb250ZW5kIFdlYktpdCAtLWJhc2UgJHtXVEZfU0NSSVBUU19E
SVJ9L1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzLnlhbWwgLS1kZWJ1ZyAke1dURl9TQ1JJUFRT
X0RJUn0vUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNEZWJ1Zy55YW1sIC0tZXhwZXJpbWVudGFs
ICR7V1RGX1NDUklQVFNfRElSfS9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRh
bC55YW1sIC0taW50ZXJuYWwgJHtXVEZfU0NSSVBUU19ESVJ9L1ByZWZlcmVuY2VzL1dlYlByZWZl
cmVuY2VzSW50ZXJuYWwueWFtbCAtLW91dHB1dERpciAiJHtXZWJLaXRfREVSSVZFRF9TT1VSQ0VT
X0RJUn0iIC0tdGVtcGxhdGUgJHtXRUJLSVRfRElSfS9TY3JpcHRzL1ByZWZlcmVuY2VzVGVtcGxh
dGVzL1dlYlBhZ2VVcGRhdGVQcmVmZXJlbmNlcy5jcHAuZXJiIC0tdGVtcGxhdGUgJHtXRUJLSVRf
RElSfS9TY3JpcHRzL1ByZWZlcmVuY2VzVGVtcGxhdGVzL1dlYlByZWZlcmVuY2VzRGVmaW5pdGlv
bnMuaC5lcmIgLS10ZW1wbGF0ZSAke1dFQktJVF9ESVJ9L1NjcmlwdHMvUHJlZmVyZW5jZXNUZW1w
bGF0ZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWxGZWF0dXJlcy5jcHAuZXJiIC0tdGVtcGxh
dGUgJHtXRUJLSVRfRElSfS9TY3JpcHRzL1ByZWZlcmVuY2VzVGVtcGxhdGVzL1dlYlByZWZlcmVu
Y2VzSW50ZXJuYWxEZWJ1Z0ZlYXR1cmVzLmNwcC5lcmIgLS10ZW1wbGF0ZSAke1dFQktJVF9ESVJ9
L1NjcmlwdHMvUHJlZmVyZW5jZXNUZW1wbGF0ZXMvV2ViUHJlZmVyZW5jZXNLZXlzLmNwcC5lcmIg
LS10ZW1wbGF0ZSAke1dFQktJVF9ESVJ9L1NjcmlwdHMvUHJlZmVyZW5jZXNUZW1wbGF0ZXMvV2Vi
UHJlZmVyZW5jZXNLZXlzLmguZXJiIC0tdGVtcGxhdGUgJHtXRUJLSVRfRElSfS9TY3JpcHRzL1By
ZWZlcmVuY2VzVGVtcGxhdGVzL1dlYlByZWZlcmVuY2VzU3RvcmVEZWZhdWx0c01hcC5jcHAuZXJi
CisgICAgQ09NTUFORCAke1JVQllfRVhFQ1VUQUJMRX0gJHtXVEZfU0NSSVBUU19ESVJ9L0dlbmVy
YXRlUHJlZmVyZW5jZXMucmIgLS1mcm9udGVuZCBXZWJLaXQgLS1iYXNlICR7V1RGX1NDUklQVFNf
RElSfS9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlcy55YW1sIC0tZGVidWcgJHtXVEZfU0NSSVBU
U19ESVJ9L1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRGVidWcueWFtbCAtLWV4cGVyaW1lbnRh
bCAke1dURl9TQ1JJUFRTX0RJUn0vUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50
YWwueWFtbCAtLWludGVybmFsICR7V1RGX1NDUklQVFNfRElSfS9QcmVmZXJlbmNlcy9XZWJQcmVm
ZXJlbmNlc0ludGVybmFsLnlhbWwgLS1vdXRwdXREaXIgIiR7V2ViS2l0X0RFUklWRURfU09VUkNF
U19ESVJ9IiAtLXRlbXBsYXRlICR7V0VCS0lUX0RJUn0vU2NyaXB0cy9QcmVmZXJlbmNlc1RlbXBs
YXRlcy9XZWJQYWdlVXBkYXRlUHJlZmVyZW5jZXMuY3BwLmVyYiAtLXRlbXBsYXRlICR7V0VCS0lU
X0RJUn0vU2NyaXB0cy9QcmVmZXJlbmNlc1RlbXBsYXRlcy9XZWJQcmVmZXJlbmNlc0RlZmluaXRp
b25zLmguZXJiIC0tdGVtcGxhdGUgJHtXRUJLSVRfRElSfS9TY3JpcHRzL1ByZWZlcmVuY2VzVGVt
cGxhdGVzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsRmVhdHVyZXMuY3BwLmVyYiAtLXRlbXBs
YXRlICR7V0VCS0lUX0RJUn0vU2NyaXB0cy9QcmVmZXJlbmNlc1RlbXBsYXRlcy9XZWJQcmVmZXJl
bmNlc0dldHRlclNldHRlcnMuY3BwLmVyYiAtLXRlbXBsYXRlICR7V0VCS0lUX0RJUn0vU2NyaXB0
cy9QcmVmZXJlbmNlc1RlbXBsYXRlcy9XZWJQcmVmZXJlbmNlc0ludGVybmFsRGVidWdGZWF0dXJl
cy5jcHAuZXJiIC0tdGVtcGxhdGUgJHtXRUJLSVRfRElSfS9TY3JpcHRzL1ByZWZlcmVuY2VzVGVt
cGxhdGVzL1dlYlByZWZlcmVuY2VzS2V5cy5jcHAuZXJiIC0tdGVtcGxhdGUgJHtXRUJLSVRfRElS
fS9TY3JpcHRzL1ByZWZlcmVuY2VzVGVtcGxhdGVzL1dlYlByZWZlcmVuY2VzS2V5cy5oLmVyYiAt
LXRlbXBsYXRlICR7V0VCS0lUX0RJUn0vU2NyaXB0cy9QcmVmZXJlbmNlc1RlbXBsYXRlcy9XZWJQ
cmVmZXJlbmNlc1N0b3JlRGVmYXVsdHNNYXAuY3BwLmVyYgogICAgIFZFUkJBVElNKQogCiBsaXN0
KEFQUEVORCBXZWJLaXRfSEVBREVSUwpAQCAtNTI5LDYgKzUzMCw3IEBAIGxpc3QoQVBQRU5EIFdl
YktpdF9IRUFERVJTCiBsaXN0KEFQUEVORCBXZWJLaXRfU09VUkNFUwogICAgICR7V2ViS2l0X0RF
UklWRURfU09VUkNFU19ESVJ9L1dlYlBhZ2VVcGRhdGVQcmVmZXJlbmNlcy5jcHAKICAgICAke1dl
YktpdF9ERVJJVkVEX1NPVVJDRVNfRElSfS9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbEZlYXR1
cmVzLmNwcAorICAgICR7V2ViS2l0X0RFUklWRURfU09VUkNFU19ESVJ9L1dlYlByZWZlcmVuY2Vz
R2V0dGVyU2V0dGVycy5jcHAKICAgICAke1dlYktpdF9ERVJJVkVEX1NPVVJDRVNfRElSfS9XZWJQ
cmVmZXJlbmNlc0ludGVybmFsRGVidWdGZWF0dXJlcy5jcHAKICAgICAke1dlYktpdF9ERVJJVkVE
X1NPVVJDRVNfRElSfS9XZWJQcmVmZXJlbmNlc0tleXMuY3BwCiAgICAgJHtXZWJLaXRfREVSSVZF
RF9TT1VSQ0VTX0RJUn0vV2ViUHJlZmVyZW5jZXNTdG9yZURlZmF1bHRzTWFwLmNwcApJbmRleDog
U291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0Cj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAkocmV2aXNp
b24gMjY4MzI2KQorKysgU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVs
aXN0CSh3b3JraW5nIGNvcHkpCkBAIC02OCw2ICs2OCw3IEBAICQoUFJPSkVDVF9ESVIpL1BsdWdp
blByb2Nlc3MvbWFjL2NvbS5hcHAKICQoUFJPSkVDVF9ESVIpL1NjcmlwdHMvUHJlZmVyZW5jZXNU
ZW1wbGF0ZXMvV2ViUGFnZVVwZGF0ZVByZWZlcmVuY2VzLmNwcC5lcmIKICQoUFJPSkVDVF9ESVIp
L1NjcmlwdHMvUHJlZmVyZW5jZXNUZW1wbGF0ZXMvV2ViUHJlZmVyZW5jZXNEZWZpbml0aW9ucy5o
LmVyYgogJChQUk9KRUNUX0RJUikvU2NyaXB0cy9QcmVmZXJlbmNlc1RlbXBsYXRlcy9XZWJQcmVm
ZXJlbmNlc0V4cGVyaW1lbnRhbEZlYXR1cmVzLmNwcC5lcmIKKyQoUFJPSkVDVF9ESVIpL1Njcmlw
dHMvUHJlZmVyZW5jZXNUZW1wbGF0ZXMvV2ViUHJlZmVyZW5jZXNHZXR0ZXJTZXR0ZXJzLmNwcC5l
cmIKICQoUFJPSkVDVF9ESVIpL1NjcmlwdHMvUHJlZmVyZW5jZXNUZW1wbGF0ZXMvV2ViUHJlZmVy
ZW5jZXNJbnRlcm5hbERlYnVnRmVhdHVyZXMuY3BwLmVyYgogJChQUk9KRUNUX0RJUikvU2NyaXB0
cy9QcmVmZXJlbmNlc1RlbXBsYXRlcy9XZWJQcmVmZXJlbmNlc0tleXMuY3BwLmVyYgogJChQUk9K
RUNUX0RJUikvU2NyaXB0cy9QcmVmZXJlbmNlc1RlbXBsYXRlcy9XZWJQcmVmZXJlbmNlc0tleXMu
aC5lcmIKSW5kZXg6IFNvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxp
c3QKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNm
aWxlbGlzdAkocmV2aXNpb24gMjY4MzI2KQorKysgU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNl
cy1vdXRwdXQueGNmaWxlbGlzdAkod29ya2luZyBjb3B5KQpAQCAtMzY5LDYgKzM2OSw3IEBAICQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWIKICQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYlByZWZlcmVuY2VzQ29tYmluZWQueWFtbAog
JChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViUHJlZmVyZW5j
ZXNEZWZpbml0aW9ucy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2Vi
S2l0Mi9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbEZlYXR1cmVzLmNwcAorJChCVUlMVF9QUk9E
VUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViUHJlZmVyZW5jZXNHZXR0ZXJTZXR0
ZXJzLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2Vi
UHJlZmVyZW5jZXNJbnRlcm5hbERlYnVnRmVhdHVyZXMuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJQcmVmZXJlbmNlc0tleXMuY3BwCiAkKEJVSUxU
X1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJQcmVmZXJlbmNlc0tleXMu
aApJbmRleDogU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQkocmV2aXNpb24gMjY4MzI2KQorKysg
U291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCSh3b3JraW5nIGNvcHkpCkBAIC0zNTMs
OSArMzUzLDEwIEBAIFdFQl9QUkVGRVJFTkNFU19URU1QTEFURVMgPSBcCiAgICAgJChXZWJLaXQy
KS9TY3JpcHRzL1ByZWZlcmVuY2VzVGVtcGxhdGVzL1dlYlBhZ2VVcGRhdGVQcmVmZXJlbmNlcy5j
cHAuZXJiIFwKICAgICAkKFdlYktpdDIpL1NjcmlwdHMvUHJlZmVyZW5jZXNUZW1wbGF0ZXMvV2Vi
UHJlZmVyZW5jZXNEZWZpbml0aW9ucy5oLmVyYiBcCiAgICAgJChXZWJLaXQyKS9TY3JpcHRzL1By
ZWZlcmVuY2VzVGVtcGxhdGVzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsRmVhdHVyZXMuY3Bw
LmVyYiBcCisgICAgJChXZWJLaXQyKS9TY3JpcHRzL1ByZWZlcmVuY2VzVGVtcGxhdGVzL1dlYlBy
ZWZlcmVuY2VzR2V0dGVyU2V0dGVycy5jcHAuZXJiIFwKICAgICAkKFdlYktpdDIpL1NjcmlwdHMv
UHJlZmVyZW5jZXNUZW1wbGF0ZXMvV2ViUHJlZmVyZW5jZXNJbnRlcm5hbERlYnVnRmVhdHVyZXMu
Y3BwLmVyYiBcCi0gICAgJChXZWJLaXQyKS9TY3JpcHRzL1ByZWZlcmVuY2VzVGVtcGxhdGVzL1dl
YlByZWZlcmVuY2VzS2V5cy5oLmVyYiBcCiAgICAgJChXZWJLaXQyKS9TY3JpcHRzL1ByZWZlcmVu
Y2VzVGVtcGxhdGVzL1dlYlByZWZlcmVuY2VzS2V5cy5jcHAuZXJiIFwKKyAgICAkKFdlYktpdDIp
L1NjcmlwdHMvUHJlZmVyZW5jZXNUZW1wbGF0ZXMvV2ViUHJlZmVyZW5jZXNLZXlzLmguZXJiIFwK
ICAgICAkKFdlYktpdDIpL1NjcmlwdHMvUHJlZmVyZW5jZXNUZW1wbGF0ZXMvV2ViUHJlZmVyZW5j
ZXNTdG9yZURlZmF1bHRzTWFwLmNwcC5lcmIgXAogIwogV0VCX1BSRUZFUkVOQ0VTX0ZJTEVTID0g
JChiYXNlbmFtZSAkKG5vdGRpciAkKFdFQl9QUkVGRVJFTkNFU19URU1QTEFURVMpKSkKSW5kZXg6
IFNvdXJjZS9XZWJLaXQvU2NyaXB0cy9QcmVmZXJlbmNlc1RlbXBsYXRlcy9XZWJQcmVmZXJlbmNl
c0V4cGVyaW1lbnRhbEZlYXR1cmVzLmNwcC5lcmIKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC9TY3JpcHRzL1ByZWZlcmVuY2VzVGVtcGxhdGVzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFs
RmVhdHVyZXMuY3BwLmVyYgkocmV2aXNpb24gMjY4MzI2KQorKysgU291cmNlL1dlYktpdC9TY3Jp
cHRzL1ByZWZlcmVuY2VzVGVtcGxhdGVzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsRmVhdHVy
ZXMuY3BwLmVyYgkod29ya2luZyBjb3B5KQpAQCAtMzMsMjAgKzMzLDYgQEAKIAogbmFtZXNwYWNl
IFdlYktpdCB7CiAKLTwlLSBmb3IgQHByZWYgaW4gQGV4cGVyaW1lbnRhbEZlYXR1cmVzIGRvIC0l
Pgotdm9pZCBXZWJQcmVmZXJlbmNlczo6c2V0PCU9IEBwcmVmLm5hbWUgJT4oY29uc3QgYm9vbCYg
dmFsdWUpCi17Ci0gICAgaWYgKCFtX3N0b3JlLnNldEJvb2xWYWx1ZUZvcktleShXZWJQcmVmZXJl
bmNlc0tleTo6PCU9IEBwcmVmLm5hbWVMb3dlciAlPktleSgpLCB2YWx1ZSkpCi0gICAgICAgIHJl
dHVybjsKLSAgICB1cGRhdGVCb29sVmFsdWVGb3JFeHBlcmltZW50YWxGZWF0dXJlS2V5KFdlYlBy
ZWZlcmVuY2VzS2V5Ojo8JT0gQHByZWYubmFtZUxvd2VyICU+S2V5KCksIHZhbHVlKTsKLX0KLQot
Ym9vbCBXZWJQcmVmZXJlbmNlczo6PCU9IEBwcmVmLm5hbWVMb3dlciAlPigpIGNvbnN0Ci17Ci0g
ICAgcmV0dXJuIG1fc3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5Ojo8
JT0gQHByZWYubmFtZUxvd2VyICU+S2V5KCkpOwotfQotCi08JS0gZW5kIC0lPgogY29uc3QgVmVj
dG9yPFJlZlB0cjxBUEk6Ok9iamVjdD4+JiBXZWJQcmVmZXJlbmNlczo6ZXhwZXJpbWVudGFsRmVh
dHVyZXMoKQogewogICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxWZWN0b3I8UmVmUHRyPEFQSTo6
T2JqZWN0Pj4+IGZlYXR1cmVzKHN0ZDo6aW5pdGlhbGl6ZXJfbGlzdDxSZWZQdHI8QVBJOjpPYmpl
Y3Q+PiB7CkluZGV4OiBTb3VyY2UvV2ViS2l0L1NjcmlwdHMvUHJlZmVyZW5jZXNUZW1wbGF0ZXMv
V2ViUHJlZmVyZW5jZXNHZXR0ZXJTZXR0ZXJzLmNwcC5lcmIKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdC9TY3JpcHRzL1ByZWZlcmVuY2VzVGVtcGxhdGVzL1dlYlByZWZlcmVuY2VzR2V0dGVy
U2V0dGVycy5jcHAuZXJiCShub25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJLaXQvU2NyaXB0cy9Q
cmVmZXJlbmNlc1RlbXBsYXRlcy9XZWJQcmVmZXJlbmNlc0dldHRlclNldHRlcnMuY3BwLmVyYgko
d29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDk1IEBACisvKgorKiA8JT0gQHdhcm5pbmcgJT4KKyoK
KyogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyoK
KyogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworKiBhcmUgbWV0OgorKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyoK
KyogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiV2ViUHJlZmVyZW5jZXMuaCIKKworI2luY2x1ZGUgIldlYlByZWZl
cmVuY2VzS2V5cy5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworPCUtIGZvciBAcHJlZiBpbiAo
QHByZWZlcmVuY2VzTm90RGVidWcgKyBAcHJlZmVyZW5jZXNEZWJ1ZykgZG8gLSU+Cit2b2lkIFdl
YlByZWZlcmVuY2VzOjpzZXQ8JT0gQHByZWYubmFtZSAlPihjb25zdCA8JT0gQHByZWYudHlwZSAl
PiYgdmFsdWUpCit7CisgICAgaWYgKCFtX3N0b3JlLnNldDwlPSBAcHJlZi50eXBlVXBwZXIgJT5W
YWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6PCU9IEBwcmVmLm5hbWVMb3dlciAlPktleSgp
LCB2YWx1ZSkpCisgICAgICAgIHJldHVybjsKKyAgICB1cGRhdGU8JT0gQHByZWYudHlwZVVwcGVy
ICU+VmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OjwlPSBAcHJlZi5uYW1lTG93ZXIgJT5L
ZXkoKSwgdmFsdWUpOworfQorCis8JT0gQHByZWYudHlwZSAlPiBXZWJQcmVmZXJlbmNlczo6PCU9
IEBwcmVmLm5hbWVMb3dlciAlPigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fc3RvcmUuZ2V0PCU9
IEBwcmVmLnR5cGVVcHBlciAlPlZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5Ojo8JT0gQHBy
ZWYubmFtZUxvd2VyICU+S2V5KCkpOworfQorCit2b2lkIFdlYlByZWZlcmVuY2VzOjpkZWxldGU8
JT0gQHByZWYubmFtZSAlPigpCit7CisgICAgZGVsZXRlS2V5KFdlYlByZWZlcmVuY2VzS2V5Ojo8
JT0gQHByZWYubmFtZUxvd2VyICU+S2V5KCkpOworfQorCis8JS0gZW5kIC0lPgorCis8JS0gZm9y
IEBwcmVmIGluIEBleHBlcmltZW50YWxGZWF0dXJlcyBkbyAtJT4KK3ZvaWQgV2ViUHJlZmVyZW5j
ZXM6OnNldDwlPSBAcHJlZi5uYW1lICU+KGNvbnN0IGJvb2wmIHZhbHVlKQoreworICAgIGlmICgh
bV9zdG9yZS5zZXRCb29sVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OjwlPSBAcHJlZi5u
YW1lTG93ZXIgJT5LZXkoKSwgdmFsdWUpKQorICAgICAgICByZXR1cm47CisgICAgdXBkYXRlQm9v
bFZhbHVlRm9yRXhwZXJpbWVudGFsRmVhdHVyZUtleShXZWJQcmVmZXJlbmNlc0tleTo6PCU9IEBw
cmVmLm5hbWVMb3dlciAlPktleSgpLCB2YWx1ZSk7Cit9CisKK2Jvb2wgV2ViUHJlZmVyZW5jZXM6
OjwlPSBAcHJlZi5uYW1lTG93ZXIgJT4oKSBjb25zdAoreworICAgIHJldHVybiBtX3N0b3JlLmdl
dEJvb2xWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6PCU9IEBwcmVmLm5hbWVMb3dlciAl
PktleSgpKTsKK30KKwordm9pZCBXZWJQcmVmZXJlbmNlczo6ZGVsZXRlPCU9IEBwcmVmLm5hbWUg
JT4oKQoreworICAgIGRlbGV0ZUtleShXZWJQcmVmZXJlbmNlc0tleTo6PCU9IEBwcmVmLm5hbWVM
b3dlciAlPktleSgpKTsKK30KKworPCUtIGVuZCAtJT4KKworPCUtIGZvciBAcHJlZiBpbiBAaW50
ZXJuYWxGZWF0dXJlcyBkbyAtJT4KK3ZvaWQgV2ViUHJlZmVyZW5jZXM6OnNldDwlPSBAcHJlZi5u
YW1lICU+KGNvbnN0IGJvb2wmIHZhbHVlKQoreworICAgIGlmICghbV9zdG9yZS5zZXRCb29sVmFs
dWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OjwlPSBAcHJlZi5uYW1lTG93ZXIgJT5LZXkoKSwg
dmFsdWUpKQorICAgICAgICByZXR1cm47CisgICAgdXBkYXRlQm9vbFZhbHVlRm9ySW50ZXJuYWxE
ZWJ1Z0ZlYXR1cmVLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OjwlPSBAcHJlZi5uYW1lTG93ZXIgJT5L
ZXkoKSwgdmFsdWUpOworfQorCitib29sIFdlYlByZWZlcmVuY2VzOjo8JT0gQHByZWYubmFtZUxv
d2VyICU+KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9zdG9yZS5nZXRCb29sVmFsdWVGb3JLZXko
V2ViUHJlZmVyZW5jZXNLZXk6OjwlPSBAcHJlZi5uYW1lTG93ZXIgJT5LZXkoKSk7Cit9CisKK3Zv
aWQgV2ViUHJlZmVyZW5jZXM6OmRlbGV0ZTwlPSBAcHJlZi5uYW1lICU+KCkKK3sKKyAgICBkZWxl
dGVLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OjwlPSBAcHJlZi5uYW1lTG93ZXIgJT5LZXkoKSk7Cit9
CisKKzwlLSBlbmQgLSU+CisKK30KSW5kZXg6IFNvdXJjZS9XZWJLaXQvU2NyaXB0cy9QcmVmZXJl
bmNlc1RlbXBsYXRlcy9XZWJQcmVmZXJlbmNlc0ludGVybmFsRGVidWdGZWF0dXJlcy5jcHAuZXJi
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvU2NyaXB0cy9QcmVmZXJlbmNlc1RlbXBsYXRl
cy9XZWJQcmVmZXJlbmNlc0ludGVybmFsRGVidWdGZWF0dXJlcy5jcHAuZXJiCShyZXZpc2lvbiAy
NjgzMjYpCisrKyBTb3VyY2UvV2ViS2l0L1NjcmlwdHMvUHJlZmVyZW5jZXNUZW1wbGF0ZXMvV2Vi
UHJlZmVyZW5jZXNJbnRlcm5hbERlYnVnRmVhdHVyZXMuY3BwLmVyYgkod29ya2luZyBjb3B5KQpA
QCAtMzMsMjAgKzMzLDYgQEAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLTwlLSBmb3IgQHByZWYg
aW4gQGludGVybmFsRmVhdHVyZXMgZG8gLSU+Ci12b2lkIFdlYlByZWZlcmVuY2VzOjpzZXQ8JT0g
QHByZWYubmFtZSAlPihjb25zdCBib29sJiB2YWx1ZSkKLXsKLSAgICBpZiAoIW1fc3RvcmUuc2V0
Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5Ojo8JT0gQHByZWYubmFtZUxvd2VyICU+
S2V5KCksIHZhbHVlKSkKLSAgICAgICAgcmV0dXJuOwotICAgIHVwZGF0ZUJvb2xWYWx1ZUZvcklu
dGVybmFsRGVidWdGZWF0dXJlS2V5KFdlYlByZWZlcmVuY2VzS2V5Ojo8JT0gQHByZWYubmFtZUxv
d2VyICU+S2V5KCksIHZhbHVlKTsKLX0KLQotYm9vbCBXZWJQcmVmZXJlbmNlczo6PCU9IEBwcmVm
Lm5hbWVMb3dlciAlPigpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fc3RvcmUuZ2V0Qm9vbFZhbHVl
Rm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5Ojo8JT0gQHByZWYubmFtZUxvd2VyICU+S2V5KCkpOwot
fQotCi08JS0gZW5kIC0lPgogY29uc3QgVmVjdG9yPFJlZlB0cjxBUEk6Ok9iamVjdD4+JiBXZWJQ
cmVmZXJlbmNlczo6aW50ZXJuYWxEZWJ1Z0ZlYXR1cmVzKCkKIHsKICAgICBzdGF0aWMgTmV2ZXJE
ZXN0cm95ZWQ8VmVjdG9yPFJlZlB0cjxBUEk6Ok9iamVjdD4+PiBmZWF0dXJlcyhzdGQ6OmluaXRp
YWxpemVyX2xpc3Q8UmVmUHRyPEFQSTo6T2JqZWN0Pj4gewpJbmRleDogU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUHJlZmVyZW5jZXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlByZWZlcmVuY2VzLmNwcAkocmV2aXNpb24gMjY4MzI2KQorKysgU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUHJlZmVyZW5jZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0x
MDIsNiArMTAyLDM0IEBAIHZvaWQgV2ViUHJlZmVyZW5jZXM6OnVwZGF0ZSgpCiAgICAgICAgIHdl
YlBhZ2VQcm94eS0+cHJlZmVyZW5jZXNEaWRDaGFuZ2UoKTsKIH0KIAordm9pZCBXZWJQcmVmZXJl
bmNlczo6c2V0Qm9vbFZhbHVlRm9yS2V5KGNvbnN0IFN0cmluZyYga2V5LCBib29sIHZhbHVlKQor
eworICAgIGlmICghbV9zdG9yZS5zZXRCb29sVmFsdWVGb3JLZXkoa2V5LCB2YWx1ZSkpCisgICAg
ICAgIHJldHVybjsKKyAgICB1cGRhdGVCb29sVmFsdWVGb3JLZXkoa2V5LCB2YWx1ZSk7Cit9CisK
K3ZvaWQgV2ViUHJlZmVyZW5jZXM6OnNldERvdWJsZVZhbHVlRm9yS2V5KGNvbnN0IFN0cmluZyYg
a2V5LCBkb3VibGUgdmFsdWUpCit7CisgICAgaWYgKCFtX3N0b3JlLnNldERvdWJsZVZhbHVlRm9y
S2V5KGtleSwgdmFsdWUpKQorICAgICAgICByZXR1cm47CisgICAgdXBkYXRlRG91YmxlVmFsdWVG
b3JLZXkoa2V5LCB2YWx1ZSk7Cit9CisKK3ZvaWQgV2ViUHJlZmVyZW5jZXM6OnNldFVJbnQzMlZh
bHVlRm9yS2V5KGNvbnN0IFN0cmluZyYga2V5LCB1aW50MzJfdCB2YWx1ZSkKK3sKKyAgICBpZiAo
IW1fc3RvcmUuc2V0VUludDMyVmFsdWVGb3JLZXkoa2V5LCB2YWx1ZSkpCisgICAgICAgIHJldHVy
bjsKKyAgICB1cGRhdGVVSW50MzJWYWx1ZUZvcktleShrZXksIHZhbHVlKTsKK30KKwordm9pZCBX
ZWJQcmVmZXJlbmNlczo6c2V0U3RyaW5nVmFsdWVGb3JLZXkoY29uc3QgU3RyaW5nJiBrZXksIGNv
bnN0IFN0cmluZyYgdmFsdWUpCit7CisgICAgaWYgKCFtX3N0b3JlLnNldFN0cmluZ1ZhbHVlRm9y
S2V5KGtleSwgdmFsdWUpKQorICAgICAgICByZXR1cm47CisgICAgdXBkYXRlU3RyaW5nVmFsdWVG
b3JLZXkoa2V5LCB2YWx1ZSk7Cit9CisKIHZvaWQgV2ViUHJlZmVyZW5jZXM6OnVwZGF0ZVN0cmlu
Z1ZhbHVlRm9yS2V5KGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIHZhbHVlKQogewog
ICAgIHBsYXRmb3JtVXBkYXRlU3RyaW5nVmFsdWVGb3JLZXkoa2V5LCB2YWx1ZSk7CkBAIC0xNTUs
MzAgKzE4Myw2IEBAIHZvaWQgV2ViUHJlZmVyZW5jZXM6OmRlbGV0ZUtleShjb25zdCBTdHIKICAg
ICB1cGRhdGUoKTsgLy8gRklYTUU6IE9ubHkgc2VuZCBvdmVyIHRoZSBjaGFuZ2VkIGtleSBhbmQg
dmFsdWUuCiB9CiAKLSNkZWZpbmUgREVGSU5FX1BSRUZFUkVOQ0VfR0VUVEVSX0FORF9TRVRURVJT
KEtleVVwcGVyLCBLZXlMb3dlciwgVHlwZU5hbWUsIFR5cGUsIERlZmF1bHRWYWx1ZSwgSHVtYW5S
ZWFkYWJsZU5hbWUsIEh1bWFuUmVhZGFibGVEZXNjcmlwdGlvbikgXAotICAgIHZvaWQgV2ViUHJl
ZmVyZW5jZXM6OnNldCMjS2V5VXBwZXIoY29uc3QgVHlwZSYgdmFsdWUpIFwKLSAgICB7IFwKLSAg
ICAgICAgaWYgKCFtX3N0b3JlLnNldCMjVHlwZU5hbWUjI1ZhbHVlRm9yS2V5KFdlYlByZWZlcmVu
Y2VzS2V5OjpLZXlMb3dlciMjS2V5KCksIHZhbHVlKSkgXAotICAgICAgICAgICAgcmV0dXJuOyBc
Ci0gICAgICAgIHVwZGF0ZSMjVHlwZU5hbWUjI1ZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5
OjpLZXlMb3dlciMjS2V5KCksIHZhbHVlKTsgXAotICAgIH0gXAotICAgIFwKLSAgICB2b2lkIFdl
YlByZWZlcmVuY2VzOjpkZWxldGUjI0tleVVwcGVyKCkgXAotICAgIHsgXAotICAgICAgICBkZWxl
dGVLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OktleUxvd2VyIyNLZXkoKSk7IFwKLSAgICB9IFwKLSAg
ICBcCi0gICAgVHlwZSBXZWJQcmVmZXJlbmNlczo6S2V5TG93ZXIoKSBjb25zdCBcCi0gICAgeyBc
Ci0gICAgICAgIHJldHVybiBtX3N0b3JlLmdldCMjVHlwZU5hbWUjI1ZhbHVlRm9yS2V5KFdlYlBy
ZWZlcmVuY2VzS2V5OjpLZXlMb3dlciMjS2V5KCkpOyBcCi0gICAgfSBcCi0KLUZPUl9FQUNIX1dF
QktJVF9QUkVGRVJFTkNFKERFRklORV9QUkVGRVJFTkNFX0dFVFRFUl9BTkRfU0VUVEVSUykKLUZP
Ul9FQUNIX1dFQktJVF9ERUJVR19QUkVGRVJFTkNFKERFRklORV9QUkVGRVJFTkNFX0dFVFRFUl9B
TkRfU0VUVEVSUykKLQotI3VuZGVmIERFRklORV9QUkVGRVJFTkNFX0dFVFRFUl9BTkRfU0VUVEVS
UwotCi0KIHZvaWQgV2ViUHJlZmVyZW5jZXM6OnJlZ2lzdGVyRGVmYXVsdEJvb2xWYWx1ZUZvcktl
eShjb25zdCBTdHJpbmcmIGtleSwgYm9vbCB2YWx1ZSkKIHsKICAgICBtX3N0b3JlLnNldE92ZXJy
aWRlRGVmYXVsdHNCb29sVmFsdWVGb3JLZXkoa2V5LCB2YWx1ZSk7CkluZGV4OiBTb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQcmVmZXJlbmNlcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlByZWZlcmVuY2VzLmgJKHJldmlzaW9uIDI2ODMyNikKKysrIFNvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByZWZlcmVuY2VzLmgJKHdvcmtpbmcgY29weSkKQEAgLTU5
LDYgKzU5LDcgQEAgcHVibGljOgogCiAgICAgY29uc3QgV2ViUHJlZmVyZW5jZXNTdG9yZSYgc3Rv
cmUoKSBjb25zdCB7IHJldHVybiBtX3N0b3JlOyB9CiAKKyAgICAvLyBJbXBsZW1lbnRlZCBpbiBn
ZW5lcmF0ZWQgZmlsZSBXZWJQcmVmZXJlbmNlc0dldHRlclNldHRlcnMuY3BwLgogICAgIEZPUl9F
QUNIX1dFQktJVF9QUkVGRVJFTkNFKERFQ0xBUkVfUFJFRkVSRU5DRV9HRVRURVJfQU5EX1NFVFRF
UlMpCiAgICAgRk9SX0VBQ0hfV0VCS0lUX0RFQlVHX1BSRUZFUkVOQ0UoREVDTEFSRV9QUkVGRVJF
TkNFX0dFVFRFUl9BTkRfU0VUVEVSUykKICAgICBGT1JfRUFDSF9XRUJLSVRfSU5URVJOQUxfREVC
VUdfRkVBVFVSRV9QUkVGRVJFTkNFKERFQ0xBUkVfUFJFRkVSRU5DRV9HRVRURVJfQU5EX1NFVFRF
UlMpCkBAIC03Nyw2ICs3OCwxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCByZXNldEFsbEludGVybmFs
RGVidWdGZWF0dXJlcygpOwogCiAgICAgLy8gRXhwb3NlZCBmb3IgV2ViS2l0VGVzdFJ1bm5lciB1
c2Ugb25seS4KKyAgICB2b2lkIHNldEJvb2xWYWx1ZUZvcktleShjb25zdCBTdHJpbmcmLCBib29s
IHZhbHVlKTsKKyAgICB2b2lkIHNldERvdWJsZVZhbHVlRm9yS2V5KGNvbnN0IFN0cmluZyYsIGRv
dWJsZSB2YWx1ZSk7CisgICAgdm9pZCBzZXRVSW50MzJWYWx1ZUZvcktleShjb25zdCBTdHJpbmcm
LCB1aW50MzJfdCB2YWx1ZSk7CisgICAgdm9pZCBzZXRTdHJpbmdWYWx1ZUZvcktleShjb25zdCBT
dHJpbmcmLCBjb25zdCBTdHJpbmcmIHZhbHVlKTsKICAgICB2b2lkIGZvcmNlVXBkYXRlKCkgeyB1
cGRhdGUoKTsgfQogCiBwcml2YXRlOgpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0MvV0tQcmVmZXJlbmNlcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHAJKHJldmlzaW9uIDI2ODMyNikKKysrIFNvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC03OCw2ICs3OCwyNiBAQCB2b2lkIFdLUHJlZmVyZW5jZXNTZXRJbnRlcm5hbERlYnVnRmVhdHVy
CiAgICAgdG9JbXBsKHByZWZlcmVuY2VzUmVmKS0+c2V0SW50ZXJuYWxEZWJ1Z0ZlYXR1cmVFbmFi
bGVkRm9yS2V5KHRvV1RGU3RyaW5nKGludGVybmFsRGVidWdGZWF0dXJlS2V5KSwgdmFsdWUpOwog
fQogCit2b2lkIFdLUHJlZmVyZW5jZXNTZXRCb29sVmFsdWVGb3JLZXkoV0tQcmVmZXJlbmNlc1Jl
ZiBwcmVmZXJlbmNlc1JlZiwgYm9vbCB2YWx1ZSwgV0tTdHJpbmdSZWYga2V5KQoreworICAgIHRv
SW1wbChwcmVmZXJlbmNlc1JlZiktPnNldEJvb2xWYWx1ZUZvcktleSh0b1dURlN0cmluZyhrZXkp
LCB2YWx1ZSk7Cit9CisKK3ZvaWQgV0tQcmVmZXJlbmNlc1NldERvdWJsZVZhbHVlRm9yS2V5KFdL
UHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYsIGRvdWJsZSB2YWx1ZSwgV0tTdHJpbmdSZWYg
a2V5KQoreworICAgIHRvSW1wbChwcmVmZXJlbmNlc1JlZiktPnNldEJvb2xWYWx1ZUZvcktleSh0
b1dURlN0cmluZyhrZXkpLCB2YWx1ZSk7Cit9CisKK3ZvaWQgV0tQcmVmZXJlbmNlc1NldFVJbnQz
MlZhbHVlRm9yS2V5KFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYsIHVpbnQzMl90IHZh
bHVlLCBXS1N0cmluZ1JlZiBrZXkpCit7CisgICAgdG9JbXBsKHByZWZlcmVuY2VzUmVmKS0+c2V0
VUludDMyVmFsdWVGb3JLZXkodG9XVEZTdHJpbmcoa2V5KSwgdmFsdWUpOworfQorCit2b2lkIFdL
UHJlZmVyZW5jZXNTZXRTdHJpbmdWYWx1ZUZvcktleShXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVu
Y2VzUmVmLCBXS1N0cmluZ1JlZiB2YWx1ZSwgV0tTdHJpbmdSZWYga2V5KQoreworICAgIHRvSW1w
bChwcmVmZXJlbmNlc1JlZiktPnNldFN0cmluZ1ZhbHVlRm9yS2V5KHRvV1RGU3RyaW5nKGtleSks
IHRvV1RGU3RyaW5nKHZhbHVlKSk7Cit9CisKIHZvaWQgV0tQcmVmZXJlbmNlc1Jlc2V0VGVzdFJ1
bm5lck92ZXJyaWRlcyhXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmKQogewogICAgIC8v
IEN1cnJlbnRseSB3ZSByZXNldCB0aGUgb3ZlcnJpZGVzIG9uIHRoZSB3ZWIgcHJvY2VzcyB3aGVu
IHByZWZlcmVuY2VzRGlkQ2hhbmdlKCkgaXMgY2FsbGVkLiBTaW5jZSBXVFIgcHJlZmVyZW5jZXMK
SW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXNSZWZQcml2
YXRlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQcmVm
ZXJlbmNlc1JlZlByaXZhdGUuaAkocmV2aXNpb24gMjY4MzI2KQorKysgU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlc1JlZlByaXZhdGUuaAkod29ya2luZyBjb3B5KQpA
QCAtNTUsNiArNTUsMTMgQEAgV0tfRVhQT1JUIHZvaWQgV0tQcmVmZXJlbmNlc1NldEV4cGVyaW1l
bgogV0tfRVhQT1JUIHZvaWQgV0tQcmVmZXJlbmNlc1Jlc2V0QWxsSW50ZXJuYWxEZWJ1Z0ZlYXR1
cmVzKFdLUHJlZmVyZW5jZXNSZWYpOwogV0tfRVhQT1JUIHZvaWQgV0tQcmVmZXJlbmNlc1NldElu
dGVybmFsRGVidWdGZWF0dXJlRm9yS2V5KFdLUHJlZmVyZW5jZXNSZWYsIGJvb2wsIFdLU3RyaW5n
UmVmKTsKIAorLy8gVGhlIGZvbGxvd2luZyBnZW5lcmljIHNldHRlciBmdW5jdGlvbnMgYXJlIG9u
bHkgaW50ZW5kZWQgZm9yIHVzZSBieSB0ZXN0aW5nIGluZnJhc3RydWN0dXJlLgorV0tfRVhQT1JU
IHZvaWQgV0tQcmVmZXJlbmNlc1NldEJvb2xWYWx1ZUZvcktleShXS1ByZWZlcmVuY2VzUmVmIHBy
ZWZlcmVuY2VzUmVmLCBib29sIHZhbHVlLCBXS1N0cmluZ1JlZiBrZXkpOworV0tfRVhQT1JUIHZv
aWQgV0tQcmVmZXJlbmNlc1NldERvdWJsZVZhbHVlRm9yS2V5KFdLUHJlZmVyZW5jZXNSZWYgcHJl
ZmVyZW5jZXNSZWYsIGRvdWJsZSB2YWx1ZSwgV0tTdHJpbmdSZWYga2V5KTsKK1dLX0VYUE9SVCB2
b2lkIFdLUHJlZmVyZW5jZXNTZXRVSW50MzJWYWx1ZUZvcktleShXS1ByZWZlcmVuY2VzUmVmIHBy
ZWZlcmVuY2VzUmVmLCB1aW50MzJfdCB2YWx1ZSwgV0tTdHJpbmdSZWYga2V5KTsKK1dLX0VYUE9S
VCB2b2lkIFdLUHJlZmVyZW5jZXNTZXRTdHJpbmdWYWx1ZUZvcktleShXS1ByZWZlcmVuY2VzUmVm
IHByZWZlcmVuY2VzUmVmLCBXS1N0cmluZ1JlZiB2YWx1ZSwgV0tTdHJpbmdSZWYga2V5KTsKKwor
Ly8gRm9yIFRlc3QgUnVubmVyIFVzZSBvbmx5LgogV0tfRVhQT1JUIHZvaWQgV0tQcmVmZXJlbmNl
c1Jlc2V0VGVzdFJ1bm5lck92ZXJyaWRlcyhXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVm
KTsKIAogLy8gRGVmYXVsdHMgdG8gZmFsc2UuCkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYktpdC54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2Vi
S2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDI2ODMyNikKKysrIFNvdXJj
ZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkK
QEAgLTEzMTIsNiArMTMxMiw3IEBACiAJCTdDRTREMjI4MUE0OTE2QzIwMEM3RjE1MiAvKiBXZWJQ
cm9jZXNzUG9vbE1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA3Q0U0RDIyNjFBNDkxNkMyMDBDN0YxNTIgLyogV2ViUHJvY2Vzc1Bvb2xNZXNz
YWdlcy5oICovOyB9OwogCQk3Q0U5Q0UxMDFGQTA3NjdBMDAwMTc3REUgLyogV2ViUGFnZVVwZGF0
ZVByZWZlcmVuY2VzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDdDRTlDRTBGMUZBMDc2NEQwMDAxNzdERSAvKiBXZWJQYWdlVXBkYXRlUHJlZmVyZW5j
ZXMuY3BwICovOyB9OwogCQk3Q0VCMDBERDFGQTY5QUJFMDA2NTQ3M0IgLyogV2ViUHJlZmVyZW5j
ZXNFeHBlcmltZW50YWxGZWF0dXJlcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA3Q0VCMDBEQzFGQTY5QTg5MDA2NTQ3M0IgLyogV2ViUHJlZmVyZW5j
ZXNFeHBlcmltZW50YWxGZWF0dXJlcy5jcHAgKi87IH07CisJCTdDRjE5MDcxMjUzMzhGMzgwMEFC
RTE4MyAvKiBXZWJQcmVmZXJlbmNlc0dldHRlclNldHRlcnMuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0NGMTkwNzAyNTMzOEVGRjAwQUJFMTgzIC8q
IFdlYlByZWZlcmVuY2VzR2V0dGVyU2V0dGVycy5jcHAgKi87IH07CiAJCTdDRjQ3RkY3MTcyNzVC
NzEwMDhBQ0I5MSAvKiBXS0J1bmRsZVBhZ2VCYW5uZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDRjQ3RkY1MTcyNzVCNzEwMDhBQ0I5MSAvKiBXS0J1
bmRsZVBhZ2VCYW5uZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk3Q0Y0N0ZGQjE3Mjc1QzU3MDA4QUNCOTEgLyogUGFnZUJhbm5lci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0NGNDdGRjkxNzI3NUM1
NzAwOEFDQjkxIC8qIFBhZ2VCYW5uZXIuaCAqLzsgfTsKIAkJN0NGNDdGRkYxNzI3NkFFMzAwOEFD
QjkxIC8qIFdLQnVuZGxlUGFnZUJhbm5lck1hYy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gN0NGNDdGRkQxNzI3NkFFMzAwOEFDQjkxIC8qIFdLQnVuZGxl
UGFnZUJhbm5lck1hYy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CkBAIC00MzMyLDYgKzQzMzMsNyBAQAogCQk3Q0U5Q0UwRjFGQTA3NjREMDAwMTc3REUg
LyogV2ViUGFnZVVwZGF0ZVByZWZlcmVuY2VzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFdlYlBh
Z2VVcGRhdGVQcmVmZXJlbmNlcy5jcHA7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL1dl
YlBhZ2VVcGRhdGVQcmVmZXJlbmNlcy5jcHA7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19E
SVI7IH07CiAJCTdDRUIwMERDMUZBNjlBODkwMDY1NDczQiAvKiBXZWJQcmVmZXJlbmNlc0V4cGVy
aW1lbnRhbEZlYXR1cmVzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFdlYlByZWZlcmVuY2VzRXhw
ZXJpbWVudGFsRmVhdHVyZXMuY3BwOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJQ
cmVmZXJlbmNlc0V4cGVyaW1lbnRhbEZlYXR1cmVzLmNwcDsgc291cmNlVHJlZSA9IEJVSUxUX1BS
T0RVQ1RTX0RJUjsgfTsKIAkJN0NFRkE5NjAxQUMwOTk5MzAwQjkxMEZEIC8qIEFQSUNvbnRlbnRS
dWxlTGlzdFN0b3JlQ29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBh
dGggPSBBUElDb250ZW50UnVsZUxpc3RTdG9yZUNvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk3Q0YxOTA3MDI1MzM4RUZGMDBBQkUxODMgLyogV2ViUHJlZmVyZW5jZXNHZXR0
ZXJTZXR0ZXJzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFdlYlByZWZlcmVuY2VzR2V0dGVyU2V0
dGVycy5jcHA7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYlByZWZlcmVuY2VzR2V0
dGVyU2V0dGVycy5jcHA7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTdD
RjQ3RkY0MTcyNzVCNzEwMDhBQ0I5MSAvKiBXS0J1bmRsZVBhZ2VCYW5uZXIuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV0tCdW5kbGVQYWdlQmFubmVyLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0NGNDdGRjUxNzI3NUI3MTAwOEFDQjkxIC8qIFdL
QnVuZGxlUGFnZUJhbm5lci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS0J1
bmRsZVBhZ2VCYW5uZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0NGNDdGRjkx
NzI3NUM1NzAwOEFDQjkxIC8qIFBhZ2VCYW5uZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gUGFnZUJhbm5lci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTAy
NTksNiArMTAyNjEsNyBAQAogCQkJCTFBQjFGNzk1MUQxQjM2MTMwMDdDOUJEMSAvKiBXZWJQYXlt
ZW50Q29vcmRpbmF0b3JQcm94eU1lc3NhZ2VzLmggKi8sCiAJCQkJN0NERTczQTMxRjlEQUI2NTAw
MzkwMzEyIC8qIFdlYlByZWZlcmVuY2VzRGVmaW5pdGlvbnMuaCAqLywKIAkJCQk3Q0VCMDBEQzFG
QTY5QTg5MDA2NTQ3M0IgLyogV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWxGZWF0dXJlcy5jcHAg
Ki8sCisJCQkJN0NGMTkwNzAyNTMzOEVGRjAwQUJFMTgzIC8qIFdlYlByZWZlcmVuY2VzR2V0dGVy
U2V0dGVycy5jcHAgKi8sCiAJCQkJMzFCMzYyOTgyMTQxRjZFMDAwN0JGQTUzIC8qIFdlYlByZWZl
cmVuY2VzSW50ZXJuYWxEZWJ1Z0ZlYXR1cmVzLmNwcCAqLywKIAkJCQk3Q0IxMDBFRTFGQTJENzRB
MDAxNzI5RUUgLyogV2ViUHJlZmVyZW5jZXNLZXlzLmNwcCAqLywKIAkJCQk3Q0IxMDBFRjFGQTJE
NzRCMDAxNzI5RUUgLyogV2ViUHJlZmVyZW5jZXNLZXlzLmggKi8sCkBAIC0xMzE2MSw2ICsxMzE2
NCw3IEBACiAJCQkJMkQ5MkE3OEQyMTJCNkFCMTAwRjQ5M0ZEIC8qIFdlYlBsYXRmb3JtVG91Y2hQ
b2ludC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyRDkxMzQ0RTIxMkNGOUYwMDAxMjhBRkQgLyog
V2ViUGx1Z2luSW5mb1Byb3ZpZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdDRUIwMEREMUZB
NjlBQkUwMDY1NDczQiAvKiBXZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbEZlYXR1cmVzLmNwcCBp
biBTb3VyY2VzICovLAorCQkJCTdDRjE5MDcxMjUzMzhGMzgwMEFCRTE4MyAvKiBXZWJQcmVmZXJl
bmNlc0dldHRlclNldHRlcnMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzFCMzYyOTkyMTQxRjZF
ODAwN0JGQTUzIC8qIFdlYlByZWZlcmVuY2VzSW50ZXJuYWxEZWJ1Z0ZlYXR1cmVzLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTdDQjEwMEYxMUZBMzg1OEEwMDE3MjlFRSAvKiBXZWJQcmVmZXJlbmNl
c0tleXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NCMTAwRjQxRkEzODU5MjAwMTcyOUVFIC8q
IFdlYlByZWZlcmVuY2VzU3RvcmVEZWZhdWx0c01hcC5jcHAgaW4gU291cmNlcyAqLywKSW5kZXg6
IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJldmlzaW9u
IDI2ODMyNikKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDky
IEBACisyMDIwLTEwLTExICBTYW0gV2VpbmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KKworICAgICAg
ICBbUHJlZmVyZW5jZXNdIEludHJvZHVjZSBzdHJpbmcgYmFzZWQgU1BJIGZvciBXS1ByZWZlcmVu
Y2VzIHRvIGFsbG93IHRlc3RzIHRvIGNoYW5nZSBpbnRlcm5hbCBiZWhhdmlvciB3aXRob3V0IGFs
d2F5cyBhZGRpbmcgYWRkaXRpb25hbCBTUEkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIxNzU4MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFtXSVBdCisKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rl
c3RDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OmluaXRpYWxp
emUpOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6Y3JlYXRlV2ViVmlld1dpdGhPcHRp
b25zKToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OnJlc2V0UHJlZmVyZW5jZXNUb0Nv
bnNpc3RlbnRWYWx1ZXMpOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6cmVzZXRTdGF0
ZVRvQ29uc2lzdGVudFZhbHVlcyk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpwbGF0
Zm9ybVJlc2V0U3RhdGVUb0NvbnNpc3RlbnRWYWx1ZXMpOiBEZWxldGVkLgorICAgICAgICAqIFdl
YktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVu
bmVyL1Rlc3RPcHRpb25zLmNwcDoKKyAgICAgICAgKFdUUjo6Ym9vbERlZmF1bHRzTWFwKToKKyAg
ICAgICAgKFdUUjo6ZG91YmxlRGVmYXVsdHNNYXApOgorICAgICAgICAoV1RSOjpzdHJpbmdEZWZh
dWx0c01hcCk6CisgICAgICAgIChXVFI6OnN0cmluZ1ZlY3RvckRlZmF1bHRzTWFwKToKKyAgICAg
ICAgKFdUUjo6a2V5VHlwZU1hcCk6CisgICAgICAgIChXVFI6OlRlc3RPcHRpb25zOjpib29sV0tQ
cmVmZXJlbmNlcyBjb25zdCk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0T3B0aW9u
cy5oOgorICAgICAgICAoV1RSOjpUZXN0T3B0aW9uczo6YWxsb3dzTGlua1ByZXZpZXcgY29uc3Qp
OgorICAgICAgICAoV1RSOjpUZXN0T3B0aW9uczo6ZHVtcEpTQ29uc29sZUxvZ0luU3RkRXJyIGNv
bnN0KToKKyAgICAgICAgKFdUUjo6VGVzdE9wdGlvbnM6OmVuYWJsZUF0dGFjaG1lbnRFbGVtZW50
IGNvbnN0KToKKyAgICAgICAgKFdUUjo6VGVzdE9wdGlvbnM6OmVuYWJsZUluQXBwQnJvd3NlclBy
aXZhY3kgY29uc3QpOgorICAgICAgICAoV1RSOjpUZXN0T3B0aW9uczo6aWdub3JlU3luY2hyb25v
dXNNZXNzYWdpbmdUaW1lb3V0cyBjb25zdCk6CisgICAgICAgIChXVFI6OlRlc3RPcHRpb25zOjpp
Z25vcmVzVmlld3BvcnRTY2FsZUxpbWl0cyBjb25zdCk6CisgICAgICAgIChXVFI6OlRlc3RPcHRp
b25zOjppc0FwcEJvdW5kV2ViVmlldyBjb25zdCk6CisgICAgICAgIChXVFI6OlRlc3RPcHRpb25z
OjpwdW5jaE91dFdoaXRlQmFja2dyb3VuZHNJbkRhcmtNb2RlIGNvbnN0KToKKyAgICAgICAgKFdU
Ujo6VGVzdE9wdGlvbnM6OnJ1blNpbmdseSBjb25zdCk6CisgICAgICAgIChXVFI6OlRlc3RPcHRp
b25zOjpzaG91bGRIYW5kbGVSdW5PcGVuUGFuZWwgY29uc3QpOgorICAgICAgICAoV1RSOjpUZXN0
T3B0aW9uczo6c2hvdWxkUHJlc2VudFBvcG92ZXJzIGNvbnN0KToKKyAgICAgICAgKFdUUjo6VGVz
dE9wdGlvbnM6OnNob3VsZFNob3dTcGVsbENoZWNraW5nRG90cyBjb25zdCk6CisgICAgICAgIChX
VFI6OlRlc3RPcHRpb25zOjpzaG91bGRTaG93VG91Y2hlcyBjb25zdCk6CisgICAgICAgIChXVFI6
OlRlc3RPcHRpb25zOjpzaG91bGRTaG93V2ViVmlldyBjb25zdCk6CisgICAgICAgIChXVFI6OlRl
c3RPcHRpb25zOjp1c2VDaGFyYWN0ZXJTZWxlY3Rpb25HcmFudWxhcml0eSBjb25zdCk6CisgICAg
ICAgIChXVFI6OlRlc3RPcHRpb25zOjp1c2VEYXRhRGV0ZWN0aW9uIGNvbnN0KToKKyAgICAgICAg
KFdUUjo6VGVzdE9wdGlvbnM6OnVzZUVwaGVtZXJhbFNlc3Npb24gY29uc3QpOgorICAgICAgICAo
V1RSOjpUZXN0T3B0aW9uczo6dXNlRmxleGlibGVWaWV3cG9ydCBjb25zdCk6CisgICAgICAgIChX
VFI6OlRlc3RPcHRpb25zOjp1c2VSZW1vdGVMYXllclRyZWUgY29uc3QpOgorICAgICAgICAoV1RS
OjpUZXN0T3B0aW9uczo6dXNlVGhyZWFkZWRTY3JvbGxpbmcgY29uc3QpOgorICAgICAgICAoV1RS
OjpUZXN0T3B0aW9uczo6ZGV2aWNlU2NhbGVGYWN0b3IgY29uc3QpOgorICAgICAgICAoV1RSOjpU
ZXN0T3B0aW9uczo6dmlld1dpZHRoIGNvbnN0KToKKyAgICAgICAgKFdUUjo6VGVzdE9wdGlvbnM6
OmFkZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVzIGNvbnN0KToKKyAgICAgICAgKFdUUjo6VGVz
dE9wdGlvbnM6OmFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllciBjb25zdCk6CisgICAgICAgIChX
VFI6OlRlc3RPcHRpb25zOjpjb250ZW50TW9kZSBjb25zdCk6CisgICAgICAgIChXVFI6OlRlc3RP
cHRpb25zOjpqc2NPcHRpb25zIGNvbnN0KToKKyAgICAgICAgKFdUUjo6VGVzdE9wdGlvbnM6OnN0
YW5kYWxvbmVXZWJBcHBsaWNhdGlvblVSTCBjb25zdCk6CisgICAgICAgIChXVFI6OlRlc3RPcHRp
b25zOjp1c2VBY2NlbGVyYXRlZERyYXdpbmcgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV1RS
OjpUZXN0T3B0aW9uczo6dXNlTW9ja1Njcm9sbGJhcnMgY29uc3QpOiBEZWxldGVkLgorICAgICAg
ICAoV1RSOjpUZXN0T3B0aW9uczo6bmVlZHNTaXRlU3BlY2lmaWNRdWlya3MgY29uc3QpOiBEZWxl
dGVkLgorICAgICAgICAoV1RSOjpUZXN0T3B0aW9uczo6ZW5hYmxlSW50ZXJzZWN0aW9uT2JzZXJ2
ZXIgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV1RSOjpUZXN0T3B0aW9uczo6ZW5hYmxlTWVu
dUl0ZW1FbGVtZW50IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdUUjo6VGVzdE9wdGlvbnM6
OmVuYWJsZUtleWdlbkVsZW1lbnQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV1RSOjpUZXN0
T3B0aW9uczo6ZW5hYmxlTW9kZXJuTWVkaWFDb250cm9scyBjb25zdCk6IERlbGV0ZWQuCisgICAg
ICAgIChXVFI6OlRlc3RPcHRpb25zOjplbmFibGVQb2ludGVyTG9jayBjb25zdCk6IERlbGV0ZWQu
CisgICAgICAgIChXVFI6OlRlc3RPcHRpb25zOjplbmFibGVXZWJBdXRoZW50aWNhdGlvbiBjb25z
dCk6IERlbGV0ZWQuCisgICAgICAgIChXVFI6OlRlc3RPcHRpb25zOjplbmFibGVXZWJBdXRoZW50
aWNhdGlvbkxvY2FsQXV0aGVudGljYXRvciBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXVFI6
OlRlc3RPcHRpb25zOjplbmFibGVJbnNwZWN0b3JBZGRpdGlvbnMgY29uc3QpOiBEZWxldGVkLgor
ICAgICAgICAoV1RSOjpUZXN0T3B0aW9uczo6YWxsb3dDcm9zc09yaWdpblN1YnJlc291cmNlc1Rv
QXNrRm9yQ3JlZGVudGlhbHMgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV1RSOjpUZXN0T3B0
aW9uczo6ZG9tUGFzdGVBbGxvd2VkIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdUUjo6VGVz
dE9wdGlvbnM6OmVuYWJsZUNvbG9yRmlsdGVyIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdU
Ujo6VGVzdE9wdGlvbnM6OmNoZWNrRm9yV29ybGRMZWFrcyBjb25zdCk6IERlbGV0ZWQuCisgICAg
ICAgIChXVFI6OlRlc3RPcHRpb25zOjpzaG91bGRJZ25vcmVNZXRhVmlld3BvcnQgY29uc3QpOiBE
ZWxldGVkLgorICAgICAgICAoV1RSOjpUZXN0T3B0aW9uczo6ZW5hYmxlU2VydmljZUNvbnRyb2xz
IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdUUjo6VGVzdE9wdGlvbnM6OmVuYWJsZUFwcE5h
cCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXVFI6OlRlc3RPcHRpb25zOjplbmFibGVCYWNr
Rm9yd2FyZENhY2hlIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdUUjo6VGVzdE9wdGlvbnM6
OmVuYWJsZUNhcHR1cmVWaWRlb0luVUlQcm9jZXNzIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAg
KFdUUjo6VGVzdE9wdGlvbnM6OmVuYWJsZUNhcHR1cmVWaWRlb0luR1BVUHJvY2VzcyBjb25zdCk6
IERlbGV0ZWQuCisgICAgICAgIChXVFI6OlRlc3RPcHRpb25zOjplbmFibGVDYXB0dXJlQXVkaW9J
blVJUHJvY2VzcyBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXVFI6OlRlc3RPcHRpb25zOjpl
bmFibGVDYXB0dXJlQXVkaW9JbkdQVVByb2Nlc3MgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAo
V1RSOjpUZXN0T3B0aW9uczo6YWxsb3dUb3BOYXZpZ2F0aW9uVG9EYXRhVVJMcyBjb25zdCk6IERl
bGV0ZWQuCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0Q29udHJvbGxlckNv
Y29hLm1tOgorICAgICAgICAoV1RSOjppbml0aWFsaXplV2ViVmlld0NvbmZpZ3VyYXRpb24pOgor
ICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1DcmVhdGVXZWJWaWV3KToKKyAg
ICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OmNvY29hUmVzZXRTdGF0ZVRvQ29uc2lzdGVudFZh
bHVlcyk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9ndGsvVGVzdENvbnRyb2xsZXJHdGsu
Y3BwOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1SZXNldFN0YXRlVG9D
b25zaXN0ZW50VmFsdWVzKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL2lvcy9UZXN0Q29u
dHJvbGxlcklPUy5tbToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtUmVz
ZXRQcmVmZXJlbmNlc1RvQ29uc2lzdGVudFZhbHVlcyk6CisgICAgICAgIChXVFI6OlRlc3RDb250
cm9sbGVyOjpwbGF0Zm9ybUNvbmZpZ3VyZVZpZXdGb3JUZXN0KToKKyAgICAgICAgKiBXZWJLaXRU
ZXN0UnVubmVyL3dpbi9UZXN0Q29udHJvbGxlcldpbi5jcHA6CisgICAgICAgIChXVFI6OlRlc3RD
b250cm9sbGVyOjpwbGF0Zm9ybVJlc2V0U3RhdGVUb0NvbnNpc3RlbnRWYWx1ZXMpOgorICAgICAg
ICAqIFdlYktpdFRlc3RSdW5uZXIvd3BlL1Rlc3RDb250cm9sbGVyV1BFLmNwcDoKKyAgICAgICAg
KFdUUjo6VGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtUmVzZXRTdGF0ZVRvQ29uc2lzdGVudFZhbHVl
cyk6CisKIDIwMjAtMTAtMTAgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgogCiAgICAg
ICAgIFJFR1JFU1NJT04gKHIyNjc3NjEpOiBlZGl0aW5nL21hYy9zcGVsbGluZy9hdXRvY29ycmVj
dGlvbi1jb250cmFjdGlvbi5odG1sIGlzIGEgY29uc3RhbnQgdGltZW91dCBvbiBtYWNPUyB3azIg
RGVidWcKSW5kZXg6IFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCShy
ZXZpc2lvbiAyNjgzMjYpCisrKyBUb29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVy
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDYzLDE0ICs0NjMsMTQgQEAgdm9pZCBUZXN0Q29udHJv
bGxlcjo6aW5pdGlhbGl6ZShpbnQgYXJnYwogICAgIG1fZ2NCZXR3ZWVuVGVzdHMgPSBvcHRpb25z
LmdjQmV0d2VlblRlc3RzOwogICAgIG1fc2hvdWxkRHVtcFBpeGVsc0ZvckFsbFRlc3RzID0gb3B0
aW9ucy5zaG91bGREdW1wUGl4ZWxzRm9yQWxsVGVzdHM7CiAgICAgbV9mb3JjZUNvbXBsZXhUZXh0
ID0gb3B0aW9ucy5mb3JjZUNvbXBsZXhUZXh0OwotICAgIG1fc2hvdWxkVXNlQWNjZWxlcmF0ZWRE
cmF3aW5nID0gb3B0aW9ucy5zaG91bGRVc2VBY2NlbGVyYXRlZERyYXdpbmc7CiAgICAgbV9wYXRo
cyA9IG9wdGlvbnMucGF0aHM7CiAgICAgbV9hbGxvd2VkSG9zdHMgPSBvcHRpb25zLmFsbG93ZWRI
b3N0czsKICAgICBtX2NoZWNrRm9yV29ybGRMZWFrcyA9IG9wdGlvbnMuY2hlY2tGb3JXb3JsZExl
YWtzOwogICAgIG1fYWxsb3dBbnlIVFRQU0NlcnRpZmljYXRlRm9yQWxsb3dlZEhvc3RzID0gb3B0
aW9ucy5hbGxvd0FueUhUVFBTQ2VydGlmaWNhdGVGb3JBbGxvd2VkSG9zdHM7Ci0gICAgCisKICAg
ICBtX2dsb2JhbEZlYXR1cmVzLmludGVybmFsRGVidWdGZWF0dXJlcyA9IG9wdGlvbnMuaW50ZXJu
YWxGZWF0dXJlczsKICAgICBtX2dsb2JhbEZlYXR1cmVzLmV4cGVyaW1lbnRhbEZlYXR1cmVzID0g
b3B0aW9ucy5leHBlcmltZW50YWxGZWF0dXJlczsKKyAgICBtX2dsb2JhbEZlYXR1cmVzLmJvb2xG
ZWF0dXJlcy5pbnNlcnQoeyAidXNlQWNjZWxlcmF0ZWREcmF3aW5nIiwgb3B0aW9ucy5zaG91bGRV
c2VBY2NlbGVyYXRlZERyYXdpbmcgfSk7CiAgICAgbV9nbG9iYWxGZWF0dXJlcy5ib29sRmVhdHVy
ZXMuaW5zZXJ0KHsgInVzZVJlbW90ZUxheWVyVHJlZSIsIG9wdGlvbnMuc2hvdWxkVXNlUmVtb3Rl
TGF5ZXJUcmVlIH0pOwogICAgIG1fZ2xvYmFsRmVhdHVyZXMuYm9vbEZlYXR1cmVzLmluc2VydCh7
ICJzaG91bGRTaG93V2ViVmlldyIsIG9wdGlvbnMuc2hvdWxkU2hvd1dlYlZpZXcgfSk7CiAgICAg
bV9nbG9iYWxGZWF0dXJlcy5ib29sRmVhdHVyZXMuaW5zZXJ0KHsgInNob3VsZFNob3dUb3VjaGVz
Iiwgb3B0aW9ucy5zaG91bGRTaG93VG91Y2hlcyB9KTsKQEAgLTY1NCw2ICs2NTQsOCBAQCB2b2lk
IFRlc3RDb250cm9sbGVyOjpjcmVhdGVXZWJWaWV3V2l0aE9wCiAgICAgLy8gRklYTUU6IE1pZ3Jh
dGUgdGhlc2UgcHJlZmVyZW5jZXMgdG8gV0tDb250ZXh0Q29uZmlndXJhdGlvblJlZi4KICAgICBy
ZXNldFByZWZlcmVuY2VzVG9Db25zaXN0ZW50VmFsdWVzKG9wdGlvbnMpOwogCisgICAgV0tIVFRQ
Q29va2llU3RvcmVEZWxldGVBbGxDb29raWVzKFdLV2Vic2l0ZURhdGFTdG9yZUdldEhUVFBDb29r
aWVTdG9yZSh3ZWJzaXRlRGF0YVN0b3JlKCkpLCBudWxscHRyLCBudWxscHRyKTsKKwogICAgIHBs
YXRmb3JtQ3JlYXRlV2ViVmlldyhjb25maWd1cmF0aW9uLmdldCgpLCBvcHRpb25zKTsKICAgICBX
S1BhZ2VVSUNsaWVudFYxNCBwYWdlVUlDbGllbnQgPSB7CiAgICAgICAgIHsgMTQsIG1fbWFpbldl
YlZpZXcuZ2V0KCkgfSwKQEAgLTg0MSwzNyArODQzLDIzIEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6
OnJlc2V0UHJlZmVyZW5jZXNUb0MKICAgICBXS1ByZWZlcmVuY2VzUmVzZXRBbGxJbnRlcm5hbERl
YnVnRmVhdHVyZXMocHJlZmVyZW5jZXMpOwogCiAgICAgLy8gU2V0IGludGVybmFsIGZlYXR1cmVz
IHRoYXQgaGF2ZSBkaWZmZXJlbnQgZGVmYXVsdCB2YWx1ZXMgZm9yIHRlc3RpbmcuCi0KICAgICBX
S1ByZWZlcmVuY2VzU2V0SW50ZXJuYWxEZWJ1Z0ZlYXR1cmVGb3JLZXkocHJlZmVyZW5jZXMsIGZh
bHNlLCB0b1dLKCJBc3luY092ZXJmbG93U2Nyb2xsaW5nRW5hYmxlZCIpLmdldCgpKTsKICAgICBX
S1ByZWZlcmVuY2VzU2V0SW50ZXJuYWxEZWJ1Z0ZlYXR1cmVGb3JLZXkocHJlZmVyZW5jZXMsIGZh
bHNlLCB0b1dLKCJBc3luY0ZyYW1lU2Nyb2xsaW5nRW5hYmxlZCIpLmdldCgpKTsKLQotI2lmIEVO
QUJMRShJTlBVVF9UWVBFX0RBVEUpCiAgICAgV0tQcmVmZXJlbmNlc1NldEludGVybmFsRGVidWdG
ZWF0dXJlRm9yS2V5KHByZWZlcmVuY2VzLCB0cnVlLCB0b1dLKCJJbnB1dFR5cGVEYXRlRW5hYmxl
ZCIpLmdldCgpKTsKLSNlbmRpZgotI2lmIEVOQUJMRShJTlBVVF9UWVBFX0RBVEVUSU1FTE9DQUwp
CiAgICAgV0tQcmVmZXJlbmNlc1NldEludGVybmFsRGVidWdGZWF0dXJlRm9yS2V5KHByZWZlcmVu
Y2VzLCB0cnVlLCB0b1dLKCJJbnB1dFR5cGVEYXRlVGltZUxvY2FsRW5hYmxlZCIpLmdldCgpKTsK
LSNlbmRpZgotI2lmIEVOQUJMRShJTlBVVF9UWVBFX01PTlRIKQogICAgIFdLUHJlZmVyZW5jZXNT
ZXRJbnRlcm5hbERlYnVnRmVhdHVyZUZvcktleShwcmVmZXJlbmNlcywgdHJ1ZSwgdG9XSygiSW5w
dXRUeXBlTW9udGhFbmFibGVkIikuZ2V0KCkpOwotI2VuZGlmCi0jaWYgRU5BQkxFKElOUFVUX1RZ
UEVfVElNRSkKICAgICBXS1ByZWZlcmVuY2VzU2V0SW50ZXJuYWxEZWJ1Z0ZlYXR1cmVGb3JLZXko
cHJlZmVyZW5jZXMsIHRydWUsIHRvV0soIklucHV0VHlwZVRpbWVFbmFibGVkIikuZ2V0KCkpOwot
I2VuZGlmCi0jaWYgRU5BQkxFKElOUFVUX1RZUEVfV0VFSykKICAgICBXS1ByZWZlcmVuY2VzU2V0
SW50ZXJuYWxEZWJ1Z0ZlYXR1cmVGb3JLZXkocHJlZmVyZW5jZXMsIHRydWUsIHRvV0soIklucHV0
VHlwZVdlZWtFbmFibGVkIikuZ2V0KCkpOwotI2VuZGlmCisgICAgV0tQcmVmZXJlbmNlc1NldElu
dGVybmFsRGVidWdGZWF0dXJlRm9yS2V5KHByZWZlcmVuY2VzLCBmYWxzZSwgdG9XSygiU3BlYWtl
clNlbGVjdGlvblJlcXVpcmVzVXNlckdlc3R1cmUiKS5nZXQoKSk7CiAKICAgICBmb3IgKGNvbnN0
IGF1dG8mIFtrZXksIHZhbHVlXSAgOiBvcHRpb25zLmludGVybmFsRGVidWdGZWF0dXJlcygpKQog
ICAgICAgICBXS1ByZWZlcmVuY2VzU2V0SW50ZXJuYWxEZWJ1Z0ZlYXR1cmVGb3JLZXkocHJlZmVy
ZW5jZXMsIHZhbHVlLCB0b1dLKGtleSkuZ2V0KCkpOwogCi0jaWYgUExBVEZPUk0oQ09DT0EpCi0g
ICAgV0tQcmVmZXJlbmNlc1NldENhcHR1cmVWaWRlb0luVUlQcm9jZXNzRW5hYmxlZChwcmVmZXJl
bmNlcywgb3B0aW9ucy5lbmFibGVDYXB0dXJlVmlkZW9JblVJUHJvY2VzcygpKTsKLSAgICBXS1By
ZWZlcmVuY2VzU2V0Q2FwdHVyZVZpZGVvSW5HUFVQcm9jZXNzRW5hYmxlZChwcmVmZXJlbmNlcywg
b3B0aW9ucy5lbmFibGVDYXB0dXJlVmlkZW9JbkdQVVByb2Nlc3MoKSk7Ci0gICAgV0tQcmVmZXJl
bmNlc1NldENhcHR1cmVBdWRpb0luVUlQcm9jZXNzRW5hYmxlZChwcmVmZXJlbmNlcywgb3B0aW9u
cy5lbmFibGVDYXB0dXJlQXVkaW9JblVJUHJvY2VzcygpKTsKLSAgICBXS1ByZWZlcmVuY2VzU2V0
Q2FwdHVyZUF1ZGlvSW5HUFVQcm9jZXNzRW5hYmxlZChwcmVmZXJlbmNlcywgb3B0aW9ucy5lbmFi
bGVDYXB0dXJlQXVkaW9JbkdQVVByb2Nlc3MoKSk7Ci0jZW5kaWYKKyAgICBmb3IgKGNvbnN0IGF1
dG8mIFtrZXksIHZhbHVlXSA6IG9wdGlvbnMuYm9vbFdLUHJlZmVyZW5jZXMoKSkKKyAgICAgICAg
V0tQcmVmZXJlbmNlc1NldEJvb2xWYWx1ZUZvcktleShwcmVmZXJlbmNlcywgdmFsdWUsIHRvV0so
a2V5KS5nZXQoKSk7CisKKyAgICAvLyBGSVhNRTogQ29udmVydCB0aGVzZSB0byBkZWZhdWx0IHZh
bHVlcyBmb3IgVGVzdE9wdGlvbnMuCiAgICAgV0tQcmVmZXJlbmNlc1NldFByb2Nlc3NTd2FwT25O
YXZpZ2F0aW9uRW5hYmxlZChwcmVmZXJlbmNlcywgb3B0aW9ucy5jb250ZXh0T3B0aW9ucygpLnNo
b3VsZEVuYWJsZVByb2Nlc3NTd2FwT25OYXZpZ2F0aW9uKCkpOwotICAgIFdLUHJlZmVyZW5jZXNT
ZXRQYWdlVmlzaWJpbGl0eUJhc2VkUHJvY2Vzc1N1cHByZXNzaW9uRW5hYmxlZChwcmVmZXJlbmNl
cywgb3B0aW9ucy5lbmFibGVBcHBOYXAoKSk7CiAgICAgV0tQcmVmZXJlbmNlc1NldE9mZmxpbmVX
ZWJBcHBsaWNhdGlvbkNhY2hlRW5hYmxlZChwcmVmZXJlbmNlcywgdHJ1ZSk7CiAgICAgV0tQcmVm
ZXJlbmNlc1NldFN1YnBpeGVsQW50aWFsaWFzZWRMYXllclRleHRFbmFibGVkKHByZWZlcmVuY2Vz
LCBmYWxzZSk7CiAgICAgV0tQcmVmZXJlbmNlc1NldFhTU0F1ZGl0b3JFbmFibGVkKHByZWZlcmVu
Y2VzLCBmYWxzZSk7CkBAIC04ODIsMTMgKzg3MCw5IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OnJl
c2V0UHJlZmVyZW5jZXNUb0MKICAgICBXS1ByZWZlcmVuY2VzU2V0SmF2YVNjcmlwdFJ1bnRpbWVG
bGFncyhwcmVmZXJlbmNlcywga1dLSmF2YVNjcmlwdFJ1bnRpbWVGbGFnc0FsbEVuYWJsZWQpOwog
ICAgIFdLUHJlZmVyZW5jZXNTZXRKYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5
KHByZWZlcmVuY2VzLCB0cnVlKTsKICAgICBXS1ByZWZlcmVuY2VzU2V0SmF2YVNjcmlwdENhbkFj
Y2Vzc0NsaXBib2FyZChwcmVmZXJlbmNlcywgdHJ1ZSk7Ci0gICAgV0tQcmVmZXJlbmNlc1NldERP
TVBhc3RlQWxsb3dlZChwcmVmZXJlbmNlcywgb3B0aW9ucy5kb21QYXN0ZUFsbG93ZWQoKSk7CiAg
ICAgV0tQcmVmZXJlbmNlc1NldFVuaXZlcnNhbEFjY2Vzc0Zyb21GaWxlVVJMc0FsbG93ZWQocHJl
ZmVyZW5jZXMsIHRydWUpOwogICAgIFdLUHJlZmVyZW5jZXNTZXRGaWxlQWNjZXNzRnJvbUZpbGVV
UkxzQWxsb3dlZChwcmVmZXJlbmNlcywgdHJ1ZSk7Ci0gICAgV0tQcmVmZXJlbmNlc1NldFRvcE5h
dmlnYXRpb25Ub0RhdGFVUkxzQWxsb3dlZChwcmVmZXJlbmNlcywgb3B0aW9ucy5hbGxvd1RvcE5h
dmlnYXRpb25Ub0RhdGFVUkxzKCkpOwotI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKICAgICBX
S1ByZWZlcmVuY2VzU2V0RnVsbFNjcmVlbkVuYWJsZWQocHJlZmVyZW5jZXMsIHRydWUpOwotI2Vu
ZGlmCiAgICAgV0tQcmVmZXJlbmNlc1NldEFzeW5jaHJvbm91c1BsdWdpbkluaXRpYWxpemF0aW9u
RW5hYmxlZChwcmVmZXJlbmNlcywgZmFsc2UpOwogICAgIFdLUHJlZmVyZW5jZXNTZXRBc3luY2hy
b25vdXNQbHVnaW5Jbml0aWFsaXphdGlvbkVuYWJsZWRGb3JBbGxQbHVnaW5zKHByZWZlcmVuY2Vz
LCBmYWxzZSk7CiAgICAgV0tQcmVmZXJlbmNlc1NldEFydGlmaWNpYWxQbHVnaW5Jbml0aWFsaXph
dGlvbkRlbGF5RW5hYmxlZChwcmVmZXJlbmNlcywgZmFsc2UpOwpAQCAtODk3LDIyICs4ODEsNyBA
QCB2b2lkIFRlc3RDb250cm9sbGVyOjpyZXNldFByZWZlcmVuY2VzVG9DCiAgICAgV0tQcmVmZXJl
bmNlc1NldERhdGFUcmFuc2Zlckl0ZW1zRW5hYmxlZChwcmVmZXJlbmNlcywgdHJ1ZSk7CiAgICAg
V0tQcmVmZXJlbmNlc1NldEN1c3RvbVBhc3RlYm9hcmREYXRhRW5hYmxlZChwcmVmZXJlbmNlcywg
dHJ1ZSk7CiAgICAgV0tQcmVmZXJlbmNlc1NldERpYWxvZ0VsZW1lbnRFbmFibGVkKHByZWZlcmVu
Y2VzLCB0cnVlKTsKLQotICAgIFdLUHJlZmVyZW5jZXNTZXRNb2NrU2Nyb2xsYmFyc0VuYWJsZWQo
cHJlZmVyZW5jZXMsIG9wdGlvbnMudXNlTW9ja1Njcm9sbGJhcnMoKSk7Ci0gICAgV0tQcmVmZXJl
bmNlc1NldE5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzKHByZWZlcmVuY2VzLCBvcHRpb25zLm5lZWRz
U2l0ZVNwZWNpZmljUXVpcmtzKCkpOwotICAgIFdLUHJlZmVyZW5jZXNTZXRBdHRhY2htZW50RWxl
bWVudEVuYWJsZWQocHJlZmVyZW5jZXMsIG9wdGlvbnMuZW5hYmxlQXR0YWNobWVudEVsZW1lbnQo
KSk7Ci0gICAgV0tQcmVmZXJlbmNlc1NldE1lbnVJdGVtRWxlbWVudEVuYWJsZWQocHJlZmVyZW5j
ZXMsIG9wdGlvbnMuZW5hYmxlTWVudUl0ZW1FbGVtZW50KCkpOwotICAgIFdLUHJlZmVyZW5jZXNT
ZXRLZXlnZW5FbGVtZW50RW5hYmxlZChwcmVmZXJlbmNlcywgb3B0aW9ucy5lbmFibGVLZXlnZW5F
bGVtZW50KCkpOwotICAgIFdLUHJlZmVyZW5jZXNTZXRNb2Rlcm5NZWRpYUNvbnRyb2xzRW5hYmxl
ZChwcmVmZXJlbmNlcywgb3B0aW9ucy5lbmFibGVNb2Rlcm5NZWRpYUNvbnRyb2xzKCkpOwotICAg
IFdLUHJlZmVyZW5jZXNTZXRXZWJBdXRoZW50aWNhdGlvbkVuYWJsZWQocHJlZmVyZW5jZXMsIG9w
dGlvbnMuZW5hYmxlV2ViQXV0aGVudGljYXRpb24oKSk7Ci0gICAgV0tQcmVmZXJlbmNlc1NldFdl
YkF1dGhlbnRpY2F0aW9uTG9jYWxBdXRoZW50aWNhdG9yRW5hYmxlZChwcmVmZXJlbmNlcywgb3B0
aW9ucy5lbmFibGVXZWJBdXRoZW50aWNhdGlvbkxvY2FsQXV0aGVudGljYXRvcigpKTsKLSAgICBX
S1ByZWZlcmVuY2VzU2V0QWxsb3dDcm9zc09yaWdpblN1YnJlc291cmNlc1RvQXNrRm9yQ3JlZGVu
dGlhbHMocHJlZmVyZW5jZXMsIG9wdGlvbnMuYWxsb3dDcm9zc09yaWdpblN1YnJlc291cmNlc1Rv
QXNrRm9yQ3JlZGVudGlhbHMoKSk7Ci0gICAgV0tQcmVmZXJlbmNlc1NldENvbG9yRmlsdGVyRW5h
YmxlZChwcmVmZXJlbmNlcywgb3B0aW9ucy5lbmFibGVDb2xvckZpbHRlcigpKTsKLSAgICBXS1By
ZWZlcmVuY2VzU2V0UHVuY2hPdXRXaGl0ZUJhY2tncm91bmRzSW5EYXJrTW9kZShwcmVmZXJlbmNl
cywgb3B0aW9ucy5wdW5jaE91dFdoaXRlQmFja2dyb3VuZHNJbkRhcmtNb2RlKCkpOwotICAgIFdL
UHJlZmVyZW5jZXNTZXRQYWdlQ2FjaGVFbmFibGVkKHByZWZlcmVuY2VzLCBvcHRpb25zLmVuYWJs
ZUJhY2tGb3J3YXJkQ2FjaGUoKSk7Ci0KICAgICBXS1ByZWZlcmVuY2VzU2V0RGVmYXVsdFRleHRF
bmNvZGluZ05hbWUocHJlZmVyZW5jZXMsIHRvV0soIklTTy04ODU5LTEiKS5nZXQoKSk7Ci0KICAg
ICBXS1ByZWZlcmVuY2VzU2V0TWluaW11bUZvbnRTaXplKHByZWZlcmVuY2VzLCAwKTsKICAgICBX
S1ByZWZlcmVuY2VzU2V0U3RhbmRhcmRGb250RmFtaWx5KHByZWZlcmVuY2VzLCB0b1dLKCJUaW1l
cyIpLmdldCgpKTsKICAgICBXS1ByZWZlcmVuY2VzU2V0Q3Vyc2l2ZUZvbnRGYW1pbHkocHJlZmVy
ZW5jZXMsIHRvV0soIkFwcGxlIENoYW5jZXJ5IikuZ2V0KCkpOwpAQCAtOTIyLDIxICs4OTEsMTMg
QEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6cmVzZXRQcmVmZXJlbmNlc1RvQwogICAgIFdLUHJlZmVy
ZW5jZXNTZXRTYW5zU2VyaWZGb250RmFtaWx5KHByZWZlcmVuY2VzLCB0b1dLKCJIZWx2ZXRpY2Ei
KS5nZXQoKSk7CiAgICAgV0tQcmVmZXJlbmNlc1NldFNlcmlmRm9udEZhbWlseShwcmVmZXJlbmNl
cywgdG9XSygiVGltZXMiKS5nZXQoKSk7CiAgICAgV0tQcmVmZXJlbmNlc1NldEFzeW5jaHJvbm91
c1NwZWxsQ2hlY2tpbmdFbmFibGVkKHByZWZlcmVuY2VzLCBmYWxzZSk7Ci0jaWYgRU5BQkxFKE1F
RElBX1NPVVJDRSkKICAgICBXS1ByZWZlcmVuY2VzU2V0TWVkaWFTb3VyY2VFbmFibGVkKHByZWZl
cmVuY2VzLCB0cnVlKTsKICAgICBXS1ByZWZlcmVuY2VzU2V0U291cmNlQnVmZmVyQ2hhbmdlVHlw
ZUVuYWJsZWQocHJlZmVyZW5jZXMsIHRydWUpOwotI2VuZGlmCiAgICAgV0tQcmVmZXJlbmNlc1Nl
dEhpZ2hsaWdodEFQSUVuYWJsZWQocHJlZmVyZW5jZXMsIHRydWUpOwotCiAgICAgV0tQcmVmZXJl
bmNlc1NldEhpZGRlblBhZ2VET01UaW1lclRocm90dGxpbmdFbmFibGVkKHByZWZlcmVuY2VzLCBm
YWxzZSk7CiAgICAgV0tQcmVmZXJlbmNlc1NldEhpZGRlblBhZ2VDU1NBbmltYXRpb25TdXNwZW5z
aW9uRW5hYmxlZChwcmVmZXJlbmNlcywgZmFsc2UpOwotCi0gICAgV0tQcmVmZXJlbmNlc1NldEFj
Y2VsZXJhdGVkRHJhd2luZ0VuYWJsZWQocHJlZmVyZW5jZXMsIG1fc2hvdWxkVXNlQWNjZWxlcmF0
ZWREcmF3aW5nIHx8IG9wdGlvbnMudXNlQWNjZWxlcmF0ZWREcmF3aW5nKCkpOwotICAgIC8vIEZJ
WE1FOiBXZSBzaG91bGQgYmUgdGVzdGluZyB0aGUgZGVmYXVsdC4KLSAgICBXS1ByZWZlcmVuY2Vz
U2V0U3RvcmFnZUJsb2NraW5nUG9saWN5KHByZWZlcmVuY2VzLCBrV0tBbGxvd0FsbFN0b3JhZ2Up
OwotCisgICAgV0tQcmVmZXJlbmNlc1NldFN0b3JhZ2VCbG9ja2luZ1BvbGljeShwcmVmZXJlbmNl
cywga1dLQWxsb3dBbGxTdG9yYWdlKTsgLy8gRklYTUU6IFdlIHNob3VsZCBiZSB0ZXN0aW5nIHRo
ZSBkZWZhdWx0LgogICAgIFdLUHJlZmVyZW5jZXNTZXRJc05TVVJMU2Vzc2lvbldlYlNvY2tldEVu
YWJsZWQocHJlZmVyZW5jZXMsIGZhbHNlKTsKLQogICAgIFdLUHJlZmVyZW5jZXNTZXRGZXRjaEFQ
SUtlZXBBbGl2ZUVuYWJsZWQocHJlZmVyZW5jZXMsIHRydWUpOwogICAgIFdLUHJlZmVyZW5jZXNT
ZXRNZWRpYVByZWxvYWRpbmdFbmFibGVkKHByZWZlcmVuY2VzLCB0cnVlKTsKICAgICBXS1ByZWZl
cmVuY2VzU2V0RXhwb3NlU3BlYWtlcnNFbmFibGVkKHByZWZlcmVuY2VzLCB0cnVlKTsKQEAgLTk0
NSwzOCArOTA2LDIyIEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OnJlc2V0UHJlZmVyZW5jZXNUb0MK
ICAgICBXS1ByZWZlcmVuY2VzU2V0UmVtb3RlUGxheWJhY2tFbmFibGVkKHByZWZlcmVuY2VzLCB0
cnVlKTsKICAgICBXS1ByZWZlcmVuY2VzU2V0QmVhY29uQVBJRW5hYmxlZChwcmVmZXJlbmNlcywg
dHJ1ZSk7CiAgICAgV0tQcmVmZXJlbmNlc1NldERpcmVjdG9yeVVwbG9hZEVuYWJsZWQocHJlZmVy
ZW5jZXMsIHRydWUpOwotCi0gICAgV0tIVFRQQ29va2llU3RvcmVEZWxldGVBbGxDb29raWVzKFdL
V2Vic2l0ZURhdGFTdG9yZUdldEhUVFBDb29raWVTdG9yZSh3ZWJzaXRlRGF0YVN0b3JlKCkpLCBu
dWxscHRyLCBudWxscHRyKTsKLQogICAgIFdLUHJlZmVyZW5jZXNTZXRNb2NrQ2FwdHVyZURldmlj
ZXNFbmFibGVkKHByZWZlcmVuY2VzLCB0cnVlKTsKLSAgICAKICAgICBXS1ByZWZlcmVuY2VzU2V0
TGFyZ2VJbWFnZUFzeW5jRGVjb2RpbmdFbmFibGVkKHByZWZlcmVuY2VzLCBmYWxzZSk7Ci0KLSAg
ICBXS1ByZWZlcmVuY2VzU2V0SW5zcGVjdG9yQWRkaXRpb25zRW5hYmxlZChwcmVmZXJlbmNlcywg
b3B0aW9ucy5lbmFibGVJbnNwZWN0b3JBZGRpdGlvbnMoKSk7Ci0KICAgICBXS1ByZWZlcmVuY2Vz
U2V0U3RvcmFnZUFjY2Vzc0FQSUVuYWJsZWQocHJlZmVyZW5jZXMsIHRydWUpOwotICAgIAogICAg
IFdLUHJlZmVyZW5jZXNTZXRBY2Nlc3NpYmlsaXR5T2JqZWN0TW9kZWxFbmFibGVkKHByZWZlcmVu
Y2VzLCB0cnVlKTsKICAgICBXS1ByZWZlcmVuY2VzU2V0Q1NTT01WaWV3U2Nyb2xsaW5nQVBJRW5h
YmxlZChwcmVmZXJlbmNlcywgdHJ1ZSk7CiAgICAgV0tQcmVmZXJlbmNlc1NldE1lZGlhQ2FwYWJp
bGl0aWVzRW5hYmxlZChwcmVmZXJlbmNlcywgdHJ1ZSk7Ci0KICAgICBXS1ByZWZlcmVuY2VzU2V0
UmVzdHJpY3RlZEhUVFBSZXNwb25zZUFjY2VzcyhwcmVmZXJlbmNlcywgdHJ1ZSk7Ci0KICAgICBX
S1ByZWZlcmVuY2VzU2V0U2VydmVyVGltaW5nRW5hYmxlZChwcmVmZXJlbmNlcywgdHJ1ZSk7Ci0K
ICAgICBXS1ByZWZlcmVuY2VzU2V0V2ViU1FMRGlzYWJsZWQocHJlZmVyZW5jZXMsIGZhbHNlKTsK
LQogICAgIFdLUHJlZmVyZW5jZXNTZXRNZWRpYVBsYXliYWNrUmVxdWlyZXNVc2VyR2VzdHVyZShw
cmVmZXJlbmNlcywgZmFsc2UpOwogICAgIFdLUHJlZmVyZW5jZXNTZXRWaWRlb1BsYXliYWNrUmVx
dWlyZXNVc2VyR2VzdHVyZShwcmVmZXJlbmNlcywgZmFsc2UpOwogICAgIFdLUHJlZmVyZW5jZXNT
ZXRBdWRpb1BsYXliYWNrUmVxdWlyZXNVc2VyR2VzdHVyZShwcmVmZXJlbmNlcywgZmFsc2UpOwot
ICAgIFdLUHJlZmVyZW5jZXNTZXRJbnRlcm5hbERlYnVnRmVhdHVyZUZvcktleShwcmVmZXJlbmNl
cywgZmFsc2UsIFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJTcGVha2VyU2VsZWN0aW9u
UmVxdWlyZXNVc2VyR2VzdHVyZSIpKTsKLQotICAgIFdLUHJlZmVyZW5jZXNTZXRTaG91bGRVc2VT
ZXJ2aWNlV29ya2VyU2hvcnRUaW1lb3V0KHByZWZlcmVuY2VzLCBvcHRpb25zLnVzZVNlcnZpY2VX
b3JrZXJTaG9ydFRpbWVvdXQoKSk7Ci0KICNpZiBFTkFCTEUoQUNDRVNTSUJJTElUWV9JU09MQVRF
RF9UUkVFKQogICAgIFdLUHJlZmVyZW5jZXNTZXRJc0FjY2Vzc2liaWxpdHlJc29sYXRlZFRyZWVF
bmFibGVkKHByZWZlcmVuY2VzLCBhY2Nlc3NpYmlsaXR5SXNvbGF0ZWRUcmVlTW9kZSgpKTsKICNl
bmRpZgotICAgIAorCiAgICAgcGxhdGZvcm1SZXNldFByZWZlcmVuY2VzVG9Db25zaXN0ZW50VmFs
dWVzKCk7CiB9CiAKQEAgLTEwMDksMjMgKzk1NCwxOSBAQCBib29sIFRlc3RDb250cm9sbGVyOjpy
ZXNldFN0YXRlVG9Db25zaXN0CiAgICAgaWYgKCFqc2NPcHRpb25zLmVtcHR5KCkpCiAgICAgICAg
IHNldFZhbHVlKHJlc2V0TWVzc2FnZUJvZHksICJKU0NPcHRpb25zIiwganNjT3B0aW9ucy5jX3N0
cigpKTsKIAotI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIFdlYkNvcmVUZXN0U3VwcG9ydDo6c2V0
QWRkaXRpb25hbFN1cHBvcnRlZEltYWdlVHlwZXNGb3JUZXN0aW5nKG9wdGlvbnMuYWRkaXRpb25h
bFN1cHBvcnRlZEltYWdlVHlwZXMoKS5jX3N0cigpKTsKLSNlbmRpZgotCiAgICAgV0tQYWdlUG9z
dE1lc3NhZ2VUb0luamVjdGVkQnVuZGxlKFRlc3RDb250cm9sbGVyOjpzaW5nbGV0b24oKS5tYWlu
V2ViVmlldygpLT5wYWdlKCksIHRvV0soIlJlc2V0IikuZ2V0KCksIHJlc2V0TWVzc2FnZUJvZHku
Z2V0KCkpOwogCiAgICAgV0tDb250ZXh0U2V0U2hvdWxkVXNlRm9udFNtb290aGluZyhUZXN0Q29u
dHJvbGxlcjo6c2luZ2xldG9uKCkuY29udGV4dCgpLCBmYWxzZSk7Ci0KICAgICBXS0NvbnRleHRT
ZXRDYWNoZU1vZGVsKFRlc3RDb250cm9sbGVyOjpzaW5nbGV0b24oKS5jb250ZXh0KCksIGtXS0Nh
Y2hlTW9kZWxEb2N1bWVudEJyb3dzZXIpOwogCiAgICAgV0tXZWJzaXRlRGF0YVN0b3JlQ2xlYXJD
YWNoZWRDcmVkZW50aWFscyh3ZWJzaXRlRGF0YVN0b3JlKCkpOwotCiAgICAgV0tXZWJzaXRlRGF0
YVN0b3JlUmVzZXRTZXJ2aWNlV29ya2VyRmV0Y2hUaW1lb3V0Rm9yVGVzdGluZyh3ZWJzaXRlRGF0
YVN0b3JlKCkpOwogCiAgICAgV0tXZWJzaXRlRGF0YVN0b3JlU2V0UmVzb3VyY2VMb2FkU3RhdGlz
dGljc0VuYWJsZWQod2Vic2l0ZURhdGFTdG9yZSgpLCB0cnVlKTsKICAgICBXS1dlYnNpdGVEYXRh
U3RvcmVDbGVhckFsbERldmljZU9yaWVudGF0aW9uUGVybWlzc2lvbnMod2Vic2l0ZURhdGFTdG9y
ZSgpKTsKIAorICAgIFdLSFRUUENvb2tpZVN0b3JlRGVsZXRlQWxsQ29va2llcyhXS1dlYnNpdGVE
YXRhU3RvcmVHZXRIVFRQQ29va2llU3RvcmUod2Vic2l0ZURhdGFTdG9yZSgpKSwgbnVsbHB0ciwg
bnVsbHB0cik7CisKICAgICBjbGVhckluZGV4ZWREYXRhYmFzZXMoKTsKICAgICBjbGVhckxvY2Fs
U3RvcmFnZSgpOwogCkBAIC0xMDM1LDcgKzk3Niw2IEBAIGJvb2wgVGVzdENvbnRyb2xsZXI6OnJl
c2V0U3RhdGVUb0NvbnNpc3QKICAgICByZXNldFF1b3RhKCk7CiAKICAgICBXS0NvbnRleHRDbGVh
ckN1cnJlbnRNb2RpZmllclN0YXRlRm9yVGVzdGluZyhUZXN0Q29udHJvbGxlcjo6c2luZ2xldG9u
KCkuY29udGV4dCgpKTsKLQogICAgIFdLQ29udGV4dFNldFVzZVNlcGFyYXRlU2VydmljZVdvcmtl
clByb2Nlc3MoVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLmNvbnRleHQoKSwgZmFsc2UpOwog
CiAgICAgV0tQYWdlU2V0TW9ja0NhbWVyYU9yaWVudGF0aW9uKG1fbWFpbldlYlZpZXctPnBhZ2Uo
KSwgMCk7CkBAIC0xMDUxLDEwICs5OTEsNiBAQCBib29sIFRlc3RDb250cm9sbGVyOjpyZXNldFN0
YXRlVG9Db25zaXN0CiAgICAgLy8gc29tZSBvdGhlciBjb2RlIGRvaW5nIHRoaXMsIGl0IHNob3Vs
ZCBwcm9iYWJseSBiZSByZXNwb25zaWJsZSBmb3IgY2xlYW51cCB0b28uCiAgICAgcmVzZXRQcmVm
ZXJlbmNlc1RvQ29uc2lzdGVudFZhbHVlcyhvcHRpb25zKTsKIAotI2lmIFBMQVRGT1JNKEdUSykK
LSAgICBXS1RleHRDaGVja2VyQ29udGludW91c1NwZWxsQ2hlY2tpbmdFbmFibGVkU3RhdGVDaGFu
Z2VkKHRydWUpOwotI2VuZGlmCi0KICAgICAvLyBNYWtlIHN1cmUgdGhlIHZpZXcgaXMgaW4gdGhl
IHdpbmRvdyAoYSB0ZXN0IGNhbiB1bnBhcmVudCBpdCkuCiAgICAgbV9tYWluV2ViVmlldy0+YWRk
VG9XaW5kb3coKTsKIApAQCAtMjgzNCwxMSArMjc3MCw2IEBAIFdLQ29udGV4dFJlZiBUZXN0Q29u
dHJvbGxlcjo6cGxhdGZvcm1BZGoKICAgICByZXR1cm4gY29udGV4dDsKIH0KIAotYm9vbCBUZXN0
Q29udHJvbGxlcjo6cGxhdGZvcm1SZXNldFN0YXRlVG9Db25zaXN0ZW50VmFsdWVzKGNvbnN0IFRl
c3RPcHRpb25zJikKLXsKLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQogdW5zaWduZWQgVGVzdENvbnRy
b2xsZXI6OmltYWdlQ291bnRJbkdlbmVyYWxQYXN0ZWJvYXJkKCkgY29uc3QKIHsKICAgICByZXR1
cm4gMDsKSW5kZXg6IFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBUb29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgJKHJldmlz
aW9uIDI2ODMyNikKKysrIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaAko
d29ya2luZyBjb3B5KQpAQCAtMzk0LDcgKzM5NCw2IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIGVu
c3VyZVZpZXdTdXBwb3J0c09wdGlvbnNGb3JUZXN0KGNvbnN0IFRlc3RJbnZvY2F0aW9uJik7CiAg
ICAgVGVzdE9wdGlvbnMgdGVzdE9wdGlvbnNGb3JUZXN0KGNvbnN0IFRlc3RDb21tYW5kJikgY29u
c3Q7Ci0gICAgVGVzdEZlYXR1cmVzIGdsb2JhbEZlYXR1cmVEZWZhdWx0c0ZvclRlc3QoY29uc3Qg
VGVzdENvbW1hbmQmKSBjb25zdDsKICAgICBUZXN0RmVhdHVyZXMgcGxhdGZvcm1TcGVjaWZpY0Zl
YXR1cmVEZWZhdWx0c0ZvclRlc3QoY29uc3QgVGVzdENvbW1hbmQmKSBjb25zdDsKICAgICBUZXN0
RmVhdHVyZXMgcGxhdGZvcm1TcGVjaWZpY0ZlYXR1cmVPdmVycmlkZXNEZWZhdWx0c0ZvclRlc3Qo
Y29uc3QgVGVzdENvbW1hbmQmKSBjb25zdDsKIApAQCAtNTk2LDggKzU5NSw2IEBAIHByaXZhdGU6
CiAgICAgU3RyaW5nIG1fdW5zdXBwb3J0ZWRQbHVnaW5Nb2RlOwogCiAgICAgYm9vbCBtX2ZvcmNl
Q29tcGxleFRleHQgeyBmYWxzZSB9OwotICAgIGJvb2wgbV9zaG91bGRVc2VBY2NlbGVyYXRlZERy
YXdpbmcgeyBmYWxzZSB9OwotICAgIAogICAgIGJvb2wgbV9zaG91bGRMb2dDYW5BdXRoZW50aWNh
dGVBZ2FpbnN0UHJvdGVjdGlvblNwYWNlIHsgZmFsc2UgfTsKICAgICBib29sIG1fc2hvdWxkTG9n
RG93bmxvYWRDYWxsYmFja3MgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9zaG91bGRMb2dIaXN0b3J5
Q2xpZW50Q2FsbGJhY2tzIHsgZmFsc2UgfTsKSW5kZXg6IFRvb2xzL1dlYktpdFRlc3RSdW5uZXIv
VGVzdE9wdGlvbnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVz
dE9wdGlvbnMuY3BwCShyZXZpc2lvbiAyNjgzMjYpCisrKyBUb29scy9XZWJLaXRUZXN0UnVubmVy
L1Rlc3RPcHRpb25zLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTAxLDU0ICsxMDEsNTEgQEAgdm9p
ZCBtZXJnZShUZXN0RmVhdHVyZXMmIGJhc2UsIFRlc3RGZWF0dQogc3RhdGljIGNvbnN0IHN0ZDo6
dW5vcmRlcmVkX21hcDxzdGQ6OnN0cmluZywgYm9vbD4mIGJvb2xEZWZhdWx0c01hcCgpCiB7CiAg
ICAgc3RhdGljIHN0ZDo6dW5vcmRlcmVkX21hcDxzdGQ6OnN0cmluZywgYm9vbD4gbWFwIHsKLSAg
ICAgICAgeyAidXNlVGhyZWFkZWRTY3JvbGxpbmciLCBmYWxzZSB9LAotICAgICAgICB7ICJ1c2VB
Y2NlbGVyYXRlZERyYXdpbmciLCBmYWxzZSB9LAotICAgICAgICB7ICJ1c2VSZW1vdGVMYXllclRy
ZWUiLCBmYWxzZSB9LAotICAgICAgICB7ICJzaG91bGRTaG93V2ViVmlldyIsIGZhbHNlIH0sCi0g
ICAgICAgIHsgInVzZUZsZXhpYmxlVmlld3BvcnQiLCBmYWxzZSB9LAotICAgICAgICB7ICJ1c2VE
YXRhRGV0ZWN0aW9uIiwgZmFsc2UgfSwKLSAgICAgICAgeyAidXNlTW9ja1Njcm9sbGJhcnMiLCB0
cnVlIH0sCi0gICAgICAgIHsgIm5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzIiwgZmFsc2UgfSwKLSAg
ICAgICAgeyAiaWdub3Jlc1ZpZXdwb3J0U2NhbGVMaW1pdHMiLCBmYWxzZSB9LAotICAgICAgICB7
ICJ1c2VDaGFyYWN0ZXJTZWxlY3Rpb25HcmFudWxhcml0eSIsIGZhbHNlIH0sCi0gICAgICAgIHsg
ImVuYWJsZUF0dGFjaG1lbnRFbGVtZW50IiwgZmFsc2UgfSwKLSAgICAgICAgeyAiZW5hYmxlSW50
ZXJzZWN0aW9uT2JzZXJ2ZXIiLCBmYWxzZSB9LAotICAgICAgICB7ICJ1c2VFcGhlbWVyYWxTZXNz
aW9uIiwgZmFsc2UgfSwKLSAgICAgICAgeyAiZW5hYmxlTWVudUl0ZW1FbGVtZW50IiwgZmFsc2Ug
fSwKLSAgICAgICAgeyAiZW5hYmxlS2V5Z2VuRWxlbWVudCIsIGZhbHNlIH0sCi0gICAgICAgIHsg
ImVuYWJsZU1vZGVybk1lZGlhQ29udHJvbHMiLCB0cnVlIH0sCi0gICAgICAgIHsgImVuYWJsZVBv
aW50ZXJMb2NrIiwgZmFsc2UgfSwKLSAgICAgICAgeyAiZW5hYmxlV2ViQXV0aGVudGljYXRpb24i
LCB0cnVlIH0sCi0gICAgICAgIHsgImVuYWJsZVdlYkF1dGhlbnRpY2F0aW9uTG9jYWxBdXRoZW50
aWNhdG9yIiwgdHJ1ZSB9LAotICAgICAgICB7ICJlbmFibGVJbnNwZWN0b3JBZGRpdGlvbnMiLCBm
YWxzZSB9LAotICAgICAgICB7ICJzaG91bGRTaG93VG91Y2hlcyIsIGZhbHNlIH0sCi0gICAgICAg
IHsgImR1bXBKU0NvbnNvbGVMb2dJblN0ZEVyciIsIGZhbHNlIH0sCiAgICAgICAgIHsgImFsbG93
Q3Jvc3NPcmlnaW5TdWJyZXNvdXJjZXNUb0Fza0ZvckNyZWRlbnRpYWxzIiwgZmFsc2UgfSwKKyAg
ICAgICAgeyAiYWxsb3dUb3BOYXZpZ2F0aW9uVG9EYXRhVVJMcyIsIHRydWUgfSwKKyAgICAgICAg
eyAiYWxsb3dzTGlua1ByZXZpZXciLCB0cnVlIH0sCiAgICAgICAgIHsgImRvbVBhc3RlQWxsb3dl
ZCIsIHRydWUgfSwKLSAgICAgICAgeyAiZW5hYmxlQ29sb3JGaWx0ZXIiLCBmYWxzZSB9LAotICAg
ICAgICB7ICJwdW5jaE91dFdoaXRlQmFja2dyb3VuZHNJbkRhcmtNb2RlIiwgZmFsc2UgfSwKLSAg
ICAgICAgeyAicnVuU2luZ2x5IiwgZmFsc2UgfSwKLSAgICAgICAgeyAiY2hlY2tGb3JXb3JsZExl
YWtzIiwgZmFsc2UgfSwKLSAgICAgICAgeyAic2hvdWxkSWdub3JlTWV0YVZpZXdwb3J0IiwgZmFs
c2UgfSwKLSAgICAgICAgeyAic3BlbGxDaGVja2luZ0RvdHMiLCBmYWxzZSB9LAotICAgICAgICB7
ICJlbmFibGVTZXJ2aWNlQ29udHJvbHMiLCBmYWxzZSB9LAorICAgICAgICB7ICJkdW1wSlNDb25z
b2xlTG9nSW5TdGRFcnIiLCBmYWxzZSB9LAogICAgICAgICB7ICJlZGl0YWJsZSIsIGZhbHNlIH0s
Ci0gICAgICAgIHsgInNob3VsZEhhbmRsZVJ1bk9wZW5QYW5lbCIsIHRydWUgfSwKLSAgICAgICAg
eyAic2hvdWxkUHJlc2VudFBvcG92ZXJzIiwgdHJ1ZSB9LAogICAgICAgICB7ICJlbmFibGVBcHBO
YXAiLCBmYWxzZSB9LAorICAgICAgICB7ICJlbmFibGVBdHRhY2htZW50RWxlbWVudCIsIGZhbHNl
IH0sCiAgICAgICAgIHsgImVuYWJsZUJhY2tGb3J3YXJkQ2FjaGUiLCBmYWxzZSB9LAotICAgICAg
ICB7ICJhbGxvd3NMaW5rUHJldmlldyIsIHRydWUgfSwKLSAgICAgICAgeyAiZW5hYmxlQ2FwdHVy
ZVZpZGVvSW5VSVByb2Nlc3MiLCBmYWxzZSB9LAotICAgICAgICB7ICJlbmFibGVDYXB0dXJlVmlk
ZW9JbkdQVVByb2Nlc3MiLCBmYWxzZSB9LAotICAgICAgICB7ICJlbmFibGVDYXB0dXJlQXVkaW9J
blVJUHJvY2VzcyIsIGZhbHNlIH0sCiAgICAgICAgIHsgImVuYWJsZUNhcHR1cmVBdWRpb0luR1BV
UHJvY2VzcyIsIGZhbHNlIH0sCi0gICAgICAgIHsgImFsbG93VG9wTmF2aWdhdGlvblRvRGF0YVVS
THMiLCB0cnVlIH0sCisgICAgICAgIHsgImVuYWJsZUNhcHR1cmVBdWRpb0luVUlQcm9jZXNzIiwg
ZmFsc2UgfSwKKyAgICAgICAgeyAiZW5hYmxlQ2FwdHVyZVZpZGVvSW5HUFVQcm9jZXNzIiwgZmFs
c2UgfSwKKyAgICAgICAgeyAiZW5hYmxlQ2FwdHVyZVZpZGVvSW5VSVByb2Nlc3MiLCBmYWxzZSB9
LAorICAgICAgICB7ICJlbmFibGVDb2xvckZpbHRlciIsIGZhbHNlIH0sCiAgICAgICAgIHsgImVu
YWJsZUluQXBwQnJvd3NlclByaXZhY3kiLCBmYWxzZSB9LAotICAgICAgICB7ICJpc0FwcEJvdW5k
V2ViVmlldyIsIGZhbHNlIH0sCi0gICAgICAgIHsgImlnbm9yZVN5bmNocm9ub3VzTWVzc2FnaW5n
VGltZW91dHMiLCBmYWxzZSB9LAorICAgICAgICB7ICJlbmFibGVJbnNwZWN0b3JBZGRpdGlvbnMi
LCBmYWxzZSB9LAorICAgICAgICB7ICJlbmFibGVLZXlnZW5FbGVtZW50IiwgZmFsc2UgfSwKKyAg
ICAgICAgeyAiZW5hYmxlTWVudUl0ZW1FbGVtZW50IiwgZmFsc2UgfSwKKyAgICAgICAgeyAiZW5h
YmxlTW9kZXJuTWVkaWFDb250cm9scyIsIHRydWUgfSwKICAgICAgICAgeyAiZW5hYmxlUHJvY2Vz
c1N3YXBPbk5hdmlnYXRpb24iLCB0cnVlIH0sCiAgICAgICAgIHsgImVuYWJsZVByb2Nlc3NTd2Fw
T25XaW5kb3dPcGVuIiwgZmFsc2UgfSwKLSAgICAgICAgeyAidXNlU2VydmljZVdvcmtlclNob3J0
VGltZW91dCIsIGZhbHNlIH0KKyAgICAgICAgeyAiZW5hYmxlU2VydmljZUNvbnRyb2xzIiwgZmFs
c2UgfSwKKyAgICAgICAgeyAiZW5hYmxlV2ViQXV0aGVudGljYXRpb24iLCB0cnVlIH0sCisgICAg
ICAgIHsgImVuYWJsZVdlYkF1dGhlbnRpY2F0aW9uTG9jYWxBdXRoZW50aWNhdG9yIiwgdHJ1ZSB9
LAorICAgICAgICB7ICJpZ25vcmVTeW5jaHJvbm91c01lc3NhZ2luZ1RpbWVvdXRzIiwgZmFsc2Ug
fSwKKyAgICAgICAgeyAiaWdub3Jlc1ZpZXdwb3J0U2NhbGVMaW1pdHMiLCBmYWxzZSB9LAorICAg
ICAgICB7ICJpc0FwcEJvdW5kV2ViVmlldyIsIGZhbHNlIH0sCisgICAgICAgIHsgIm5lZWRzU2l0
ZVNwZWNpZmljUXVpcmtzIiwgZmFsc2UgfSwKKyAgICAgICAgeyAicHVuY2hPdXRXaGl0ZUJhY2tn
cm91bmRzSW5EYXJrTW9kZSIsIGZhbHNlIH0sCisgICAgICAgIHsgInJ1blNpbmdseSIsIGZhbHNl
IH0sCisgICAgICAgIHsgInNob3VsZEhhbmRsZVJ1bk9wZW5QYW5lbCIsIHRydWUgfSwKKyAgICAg
ICAgeyAic2hvdWxkSWdub3JlTWV0YVZpZXdwb3J0IiwgZmFsc2UgfSwKKyAgICAgICAgeyAic2hv
dWxkUHJlc2VudFBvcG92ZXJzIiwgdHJ1ZSB9LAorICAgICAgICB7ICJzaG91bGRTaG93VG91Y2hl
cyIsIGZhbHNlIH0sCisgICAgICAgIHsgInNob3VsZFNob3dXZWJWaWV3IiwgZmFsc2UgfSwKKyAg
ICAgICAgeyAic3BlbGxDaGVja2luZ0RvdHMiLCBmYWxzZSB9LAorICAgICAgICB7ICJ1c2VBY2Nl
bGVyYXRlZERyYXdpbmciLCBmYWxzZSB9LAorICAgICAgICB7ICJ1c2VDaGFyYWN0ZXJTZWxlY3Rp
b25HcmFudWxhcml0eSIsIGZhbHNlIH0sCisgICAgICAgIHsgInVzZURhdGFEZXRlY3Rpb24iLCBm
YWxzZSB9LAorICAgICAgICB7ICJ1c2VFcGhlbWVyYWxTZXNzaW9uIiwgZmFsc2UgfSwKKyAgICAg
ICAgeyAidXNlRmxleGlibGVWaWV3cG9ydCIsIGZhbHNlIH0sCisgICAgICAgIHsgInVzZU1vY2tT
Y3JvbGxiYXJzIiwgdHJ1ZSB9LAorICAgICAgICB7ICJ1c2VSZW1vdGVMYXllclRyZWUiLCBmYWxz
ZSB9LAorICAgICAgICB7ICJ1c2VTZXJ2aWNlV29ya2VyU2hvcnRUaW1lb3V0IiwgZmFsc2UgfSwK
KyAgICAgICAgeyAidXNlVGhyZWFkZWRTY3JvbGxpbmciLCBmYWxzZSB9LAogICAgIH07CiAgICAg
cmV0dXJuIG1hcDsKIH0KQEAgLTE1OCw4ICsxNTUsOCBAQCBzdGF0aWMgY29uc3Qgc3RkOjp1bm9y
ZGVyZWRfbWFwPHN0ZDo6c3RyCiAgICAgc3RhdGljIHN0ZDo6dW5vcmRlcmVkX21hcDxzdGQ6OnN0
cmluZywgZG91YmxlPiBtYXAgewogICAgICAgICB7ICJjb250ZW50SW5zZXQudG9wIiwgMCB9LAog
ICAgICAgICB7ICJkZXZpY2VTY2FsZUZhY3RvciIsIDEgfSwKKyAgICAgICAgeyAidmlld0hlaWdo
dCIsIDYwMCB9LAogICAgICAgICB7ICJ2aWV3V2lkdGgiLCA4MDAgfSwKLSAgICAgICAgeyAidmll
d0hlaWdodCIsIDYwMCB9CiAgICAgfTsKICAgICByZXR1cm4gbWFwOwogfQpAQCAtMTY3LDEyICsx
NjQsMTIgQEAgc3RhdGljIGNvbnN0IHN0ZDo6dW5vcmRlcmVkX21hcDxzdGQ6OnN0cgogc3RhdGlj
IGNvbnN0IHN0ZDo6dW5vcmRlcmVkX21hcDxzdGQ6OnN0cmluZywgc3RkOjpzdHJpbmc+JiBzdHJp
bmdEZWZhdWx0c01hcCgpCiB7CiAgICAgc3RhdGljIHN0ZDo6dW5vcmRlcmVkX21hcDxzdGQ6OnN0
cmluZywgc3RkOjpzdHJpbmc+IG1hcCB7CisgICAgICAgIHsgImFkZGl0aW9uYWxTdXBwb3J0ZWRJ
bWFnZVR5cGVzIiwgeyB9IH0sCisgICAgICAgIHsgImFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmll
ciIsIHsgfSB9LAogICAgICAgICB7ICJhcHBsaWNhdGlvbk1hbmlmZXN0IiwgeyB9IH0sCisgICAg
ICAgIHsgImNvbnRlbnRNb2RlIiwgeyB9IH0sCiAgICAgICAgIHsgImpzY09wdGlvbnMiLCB7IH0g
fSwKLSAgICAgICAgeyAiYWRkaXRpb25hbFN1cHBvcnRlZEltYWdlVHlwZXMiLCB7IH0gfSwKICAg
ICAgICAgeyAic3RhbmRhbG9uZVdlYkFwcGxpY2F0aW9uVVJMIiwgeyB9IH0sCi0gICAgICAgIHsg
ImNvbnRlbnRNb2RlIiwgeyB9IH0sCi0gICAgICAgIHsgImFwcGxpY2F0aW9uQnVuZGxlSWRlbnRp
ZmllciIsIHsgfSB9CiAgICAgfTsKICAgICByZXR1cm4gbWFwOwogfQpAQCAtMTgwLDcgKzE3Nyw3
IEBAIHN0YXRpYyBjb25zdCBzdGQ6OnVub3JkZXJlZF9tYXA8c3RkOjpzdHIKIHN0YXRpYyBjb25z
dCBzdGQ6OnVub3JkZXJlZF9tYXA8c3RkOjpzdHJpbmcsIHN0ZDo6dmVjdG9yPHN0ZDo6c3RyaW5n
Pj4mIHN0cmluZ1ZlY3RvckRlZmF1bHRzTWFwKCkKIHsKICAgICBzdGF0aWMgc3RkOjp1bm9yZGVy
ZWRfbWFwPHN0ZDo6c3RyaW5nLCBzdGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4+IG1hcCB7Ci0gICAg
ICAgIHsgImxhbmd1YWdlIiwgeyB9IH0KKyAgICAgICAgeyAibGFuZ3VhZ2UiLCB7IH0gfSwKICAg
ICB9OwogICAgIHJldHVybiBtYXA7CiB9CkBAIC0xOTgsNjUgKzE5NSw2MiBAQCBlbnVtIGNsYXNz
IEtleVR5cGUgOiB1aW50OF90IHsKIHN0YXRpYyBjb25zdCBzdGQ6OnVub3JkZXJlZF9tYXA8c3Rk
OjpzdHJpbmcsIEtleVR5cGU+JiBrZXlUeXBlTWFwKCkKIHsKICAgICBzdGF0aWMgc3RkOjp1bm9y
ZGVyZWRfbWFwPHN0ZDo6c3RyaW5nLCBLZXlUeXBlPiBtYXAgewotICAgICAgICB7ICJ1c2VUaHJl
YWRlZFNjcm9sbGluZyIsIEtleVR5cGU6OkJvb2wgfSwKLSAgICAgICAgeyAidXNlQWNjZWxlcmF0
ZWREcmF3aW5nIiwgS2V5VHlwZTo6Qm9vbCB9LAotICAgICAgICB7ICJ1c2VSZW1vdGVMYXllclRy
ZWUiLCBLZXlUeXBlOjpCb29sIH0sCi0gICAgICAgIHsgInNob3VsZFNob3dXZWJWaWV3IiwgS2V5
VHlwZTo6Qm9vbCB9LAotICAgICAgICB7ICJ1c2VGbGV4aWJsZVZpZXdwb3J0IiwgS2V5VHlwZTo6
Qm9vbCB9LAotICAgICAgICB7ICJ1c2VEYXRhRGV0ZWN0aW9uIiwgS2V5VHlwZTo6Qm9vbCB9LAot
ICAgICAgICB7ICJ1c2VNb2NrU2Nyb2xsYmFycyIsIEtleVR5cGU6OkJvb2wgfSwKLSAgICAgICAg
eyAibmVlZHNTaXRlU3BlY2lmaWNRdWlya3MiLCBLZXlUeXBlOjpCb29sIH0sCi0gICAgICAgIHsg
Imlnbm9yZXNWaWV3cG9ydFNjYWxlTGltaXRzIiwgS2V5VHlwZTo6Qm9vbCB9LAotICAgICAgICB7
ICJ1c2VDaGFyYWN0ZXJTZWxlY3Rpb25HcmFudWxhcml0eSIsIEtleVR5cGU6OkJvb2wgfSwKLSAg
ICAgICAgeyAiZW5hYmxlQXR0YWNobWVudEVsZW1lbnQiLCBLZXlUeXBlOjpCb29sIH0sCi0gICAg
ICAgIHsgImVuYWJsZUludGVyc2VjdGlvbk9ic2VydmVyIiwgS2V5VHlwZTo6Qm9vbCB9LAotICAg
ICAgICB7ICJ1c2VFcGhlbWVyYWxTZXNzaW9uIiwgS2V5VHlwZTo6Qm9vbCB9LAotICAgICAgICB7
ICJlbmFibGVNZW51SXRlbUVsZW1lbnQiLCBLZXlUeXBlOjpCb29sIH0sCi0gICAgICAgIHsgImVu
YWJsZUtleWdlbkVsZW1lbnQiLCBLZXlUeXBlOjpCb29sIH0sCi0gICAgICAgIHsgImVuYWJsZU1v
ZGVybk1lZGlhQ29udHJvbHMiLCBLZXlUeXBlOjpCb29sIH0sCi0gICAgICAgIHsgImVuYWJsZVBv
aW50ZXJMb2NrIiwgS2V5VHlwZTo6Qm9vbCB9LAotICAgICAgICB7ICJlbmFibGVXZWJBdXRoZW50
aWNhdGlvbiIsIEtleVR5cGU6OkJvb2wgfSwKLSAgICAgICAgeyAiZW5hYmxlV2ViQXV0aGVudGlj
YXRpb25Mb2NhbEF1dGhlbnRpY2F0b3IiLCBLZXlUeXBlOjpCb29sIH0sCi0gICAgICAgIHsgImVu
YWJsZUluc3BlY3RvckFkZGl0aW9ucyIsIEtleVR5cGU6OkJvb2wgfSwKLSAgICAgICAgeyAic2hv
dWxkU2hvd1RvdWNoZXMiLCBLZXlUeXBlOjpCb29sIH0sCi0gICAgICAgIHsgImR1bXBKU0NvbnNv
bGVMb2dJblN0ZEVyciIsIEtleVR5cGU6OkJvb2wgfSwKICAgICAgICAgeyAiYWxsb3dDcm9zc09y
aWdpblN1YnJlc291cmNlc1RvQXNrRm9yQ3JlZGVudGlhbHMiLCBLZXlUeXBlOjpCb29sIH0sCisg
ICAgICAgIHsgImFsbG93VG9wTmF2aWdhdGlvblRvRGF0YVVSTHMiLCBLZXlUeXBlOjpCb29sIH0s
CisgICAgICAgIHsgImFsbG93c0xpbmtQcmV2aWV3IiwgS2V5VHlwZTo6Qm9vbCB9LAogICAgICAg
ICB7ICJkb21QYXN0ZUFsbG93ZWQiLCBLZXlUeXBlOjpCb29sIH0sCi0gICAgICAgIHsgImVuYWJs
ZUNvbG9yRmlsdGVyIiwgS2V5VHlwZTo6Qm9vbCB9LAotICAgICAgICB7ICJwdW5jaE91dFdoaXRl
QmFja2dyb3VuZHNJbkRhcmtNb2RlIiwgS2V5VHlwZTo6Qm9vbCB9LAotICAgICAgICB7ICJydW5T
aW5nbHkiLCBLZXlUeXBlOjpCb29sIH0sCi0gICAgICAgIHsgImNoZWNrRm9yV29ybGRMZWFrcyIs
IEtleVR5cGU6OkJvb2wgfSwKLSAgICAgICAgeyAic2hvdWxkSWdub3JlTWV0YVZpZXdwb3J0Iiwg
S2V5VHlwZTo6Qm9vbCB9LAotICAgICAgICB7ICJzcGVsbENoZWNraW5nRG90cyIsIEtleVR5cGU6
OkJvb2wgfSwKLSAgICAgICAgeyAiZW5hYmxlU2VydmljZUNvbnRyb2xzIiwgS2V5VHlwZTo6Qm9v
bCB9LAorICAgICAgICB7ICJkdW1wSlNDb25zb2xlTG9nSW5TdGRFcnIiLCBLZXlUeXBlOjpCb29s
IH0sCiAgICAgICAgIHsgImVkaXRhYmxlIiwgS2V5VHlwZTo6Qm9vbCB9LAotICAgICAgICB7ICJz
aG91bGRIYW5kbGVSdW5PcGVuUGFuZWwiLCBLZXlUeXBlOjpCb29sIH0sCi0gICAgICAgIHsgInNo
b3VsZFByZXNlbnRQb3BvdmVycyIsIEtleVR5cGU6OkJvb2wgfSwKICAgICAgICAgeyAiZW5hYmxl
QXBwTmFwIiwgS2V5VHlwZTo6Qm9vbCB9LAorICAgICAgICB7ICJlbmFibGVBdHRhY2htZW50RWxl
bWVudCIsIEtleVR5cGU6OkJvb2wgfSwKICAgICAgICAgeyAiZW5hYmxlQmFja0ZvcndhcmRDYWNo
ZSIsIEtleVR5cGU6OkJvb2wgfSwKLSAgICAgICAgeyAiYWxsb3dzTGlua1ByZXZpZXciLCBLZXlU
eXBlOjpCb29sIH0sCi0gICAgICAgIHsgImVuYWJsZUNhcHR1cmVWaWRlb0luVUlQcm9jZXNzIiwg
S2V5VHlwZTo6Qm9vbCB9LAotICAgICAgICB7ICJlbmFibGVDYXB0dXJlVmlkZW9JbkdQVVByb2Nl
c3MiLCBLZXlUeXBlOjpCb29sIH0sCi0gICAgICAgIHsgImVuYWJsZUNhcHR1cmVBdWRpb0luVUlQ
cm9jZXNzIiwgS2V5VHlwZTo6Qm9vbCB9LAogICAgICAgICB7ICJlbmFibGVDYXB0dXJlQXVkaW9J
bkdQVVByb2Nlc3MiLCBLZXlUeXBlOjpCb29sIH0sCi0gICAgICAgIHsgImFsbG93VG9wTmF2aWdh
dGlvblRvRGF0YVVSTHMiLCBLZXlUeXBlOjpCb29sIH0sCisgICAgICAgIHsgImVuYWJsZUNhcHR1
cmVBdWRpb0luVUlQcm9jZXNzIiwgS2V5VHlwZTo6Qm9vbCB9LAorICAgICAgICB7ICJlbmFibGVD
YXB0dXJlVmlkZW9JbkdQVVByb2Nlc3MiLCBLZXlUeXBlOjpCb29sIH0sCisgICAgICAgIHsgImVu
YWJsZUNhcHR1cmVWaWRlb0luVUlQcm9jZXNzIiwgS2V5VHlwZTo6Qm9vbCB9LAorICAgICAgICB7
ICJlbmFibGVDb2xvckZpbHRlciIsIEtleVR5cGU6OkJvb2wgfSwKICAgICAgICAgeyAiZW5hYmxl
SW5BcHBCcm93c2VyUHJpdmFjeSIsIEtleVR5cGU6OkJvb2wgfSwKLSAgICAgICAgeyAiaXNBcHBC
b3VuZFdlYlZpZXciLCBLZXlUeXBlOjpCb29sIH0sCi0gICAgICAgIHsgImlnbm9yZVN5bmNocm9u
b3VzTWVzc2FnaW5nVGltZW91dHMiLCBLZXlUeXBlOjpCb29sIH0sCisgICAgICAgIHsgImVuYWJs
ZUluc3BlY3RvckFkZGl0aW9ucyIsIEtleVR5cGU6OkJvb2wgfSwKKyAgICAgICAgeyAiZW5hYmxl
S2V5Z2VuRWxlbWVudCIsIEtleVR5cGU6OkJvb2wgfSwKKyAgICAgICAgeyAiZW5hYmxlTWVudUl0
ZW1FbGVtZW50IiwgS2V5VHlwZTo6Qm9vbCB9LAorICAgICAgICB7ICJlbmFibGVNb2Rlcm5NZWRp
YUNvbnRyb2xzIiwgS2V5VHlwZTo6Qm9vbCB9LAogICAgICAgICB7ICJlbmFibGVQcm9jZXNzU3dh
cE9uTmF2aWdhdGlvbiIsIEtleVR5cGU6OkJvb2wgfSwKICAgICAgICAgeyAiZW5hYmxlUHJvY2Vz
c1N3YXBPbldpbmRvd09wZW4iLCBLZXlUeXBlOjpCb29sIH0sCisgICAgICAgIHsgImVuYWJsZVNl
cnZpY2VDb250cm9scyIsIEtleVR5cGU6OkJvb2wgfSwKKyAgICAgICAgeyAiZW5hYmxlV2ViQXV0
aGVudGljYXRpb24iLCBLZXlUeXBlOjpCb29sIH0sCisgICAgICAgIHsgImVuYWJsZVdlYkF1dGhl
bnRpY2F0aW9uTG9jYWxBdXRoZW50aWNhdG9yIiwgS2V5VHlwZTo6Qm9vbCB9LAorICAgICAgICB7
ICJpZ25vcmVTeW5jaHJvbm91c01lc3NhZ2luZ1RpbWVvdXRzIiwgS2V5VHlwZTo6Qm9vbCB9LAor
ICAgICAgICB7ICJpZ25vcmVzVmlld3BvcnRTY2FsZUxpbWl0cyIsIEtleVR5cGU6OkJvb2wgfSwK
KyAgICAgICAgeyAiaXNBcHBCb3VuZFdlYlZpZXciLCBLZXlUeXBlOjpCb29sIH0sCisgICAgICAg
IHsgIm5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzIiwgS2V5VHlwZTo6Qm9vbCB9LAorICAgICAgICB7
ICJwdW5jaE91dFdoaXRlQmFja2dyb3VuZHNJbkRhcmtNb2RlIiwgS2V5VHlwZTo6Qm9vbCB9LAor
ICAgICAgICB7ICJydW5TaW5nbHkiLCBLZXlUeXBlOjpCb29sIH0sCisgICAgICAgIHsgInNob3Vs
ZEhhbmRsZVJ1bk9wZW5QYW5lbCIsIEtleVR5cGU6OkJvb2wgfSwKKyAgICAgICAgeyAic2hvdWxk
SWdub3JlTWV0YVZpZXdwb3J0IiwgS2V5VHlwZTo6Qm9vbCB9LAorICAgICAgICB7ICJzaG91bGRQ
cmVzZW50UG9wb3ZlcnMiLCBLZXlUeXBlOjpCb29sIH0sCisgICAgICAgIHsgInNob3VsZFNob3dU
b3VjaGVzIiwgS2V5VHlwZTo6Qm9vbCB9LAorICAgICAgICB7ICJzaG91bGRTaG93V2ViVmlldyIs
IEtleVR5cGU6OkJvb2wgfSwKKyAgICAgICAgeyAic3BlbGxDaGVja2luZ0RvdHMiLCBLZXlUeXBl
OjpCb29sIH0sCisgICAgICAgIHsgInVzZUFjY2VsZXJhdGVkRHJhd2luZyIsIEtleVR5cGU6OkJv
b2wgfSwKKyAgICAgICAgeyAidXNlQ2hhcmFjdGVyU2VsZWN0aW9uR3JhbnVsYXJpdHkiLCBLZXlU
eXBlOjpCb29sIH0sCisgICAgICAgIHsgInVzZURhdGFEZXRlY3Rpb24iLCBLZXlUeXBlOjpCb29s
IH0sCisgICAgICAgIHsgInVzZUVwaGVtZXJhbFNlc3Npb24iLCBLZXlUeXBlOjpCb29sIH0sCisg
ICAgICAgIHsgInVzZUZsZXhpYmxlVmlld3BvcnQiLCBLZXlUeXBlOjpCb29sIH0sCisgICAgICAg
IHsgInVzZU1vY2tTY3JvbGxiYXJzIiwgS2V5VHlwZTo6Qm9vbCB9LAorICAgICAgICB7ICJ1c2VS
ZW1vdGVMYXllclRyZWUiLCBLZXlUeXBlOjpCb29sIH0sCiAgICAgICAgIHsgInVzZVNlcnZpY2VX
b3JrZXJTaG9ydFRpbWVvdXQiLCBLZXlUeXBlOjpCb29sIH0sCisgICAgICAgIHsgInVzZVRocmVh
ZGVkU2Nyb2xsaW5nIiwgS2V5VHlwZTo6Qm9vbCB9LAogICAgIAogICAgICAgICB7ICJjb250ZW50
SW5zZXQudG9wIiwgS2V5VHlwZTo6RG91YmxlIH0sCiAgICAgICAgIHsgImRldmljZVNjYWxlRmFj
dG9yIiwgS2V5VHlwZTo6RG91YmxlIH0sCi0gICAgICAgIHsgInZpZXdXaWR0aCIsIEtleVR5cGU6
OkRvdWJsZSB9LAogICAgICAgICB7ICJ2aWV3SGVpZ2h0IiwgS2V5VHlwZTo6RG91YmxlIH0sCisg
ICAgICAgIHsgInZpZXdXaWR0aCIsIEtleVR5cGU6OkRvdWJsZSB9LAogCi0gICAgICAgIHsgImpz
Y09wdGlvbnMiLCBLZXlUeXBlOjpTdHJpbmcgfSwKICAgICAgICAgeyAiYWRkaXRpb25hbFN1cHBv
cnRlZEltYWdlVHlwZXMiLCBLZXlUeXBlOjpTdHJpbmcgfSwKLSAgICAgICAgeyAiY29udGVudE1v
ZGUiLCBLZXlUeXBlOjpTdHJpbmcgfSwKICAgICAgICAgeyAiYXBwbGljYXRpb25CdW5kbGVJZGVu
dGlmaWVyIiwgS2V5VHlwZTo6U3RyaW5nIH0sCiAgICAgICAgIHsgImFwcGxpY2F0aW9uTWFuaWZl
c3QiLCBLZXlUeXBlOjpTdHJpbmdSZWxhdGl2ZVBhdGggfSwKKyAgICAgICAgeyAiY29udGVudE1v
ZGUiLCBLZXlUeXBlOjpTdHJpbmcgfSwKKyAgICAgICAgeyAianNjT3B0aW9ucyIsIEtleVR5cGU6
OlN0cmluZyB9LAogICAgICAgICB7ICJzdGFuZGFsb25lV2ViQXBwbGljYXRpb25VUkwiLCBLZXlU
eXBlOjpTdHJpbmdVUkwgfSwKIAogICAgICAgICB7ICJsYW5ndWFnZSIsIEtleVR5cGU6OlN0cmlu
Z1ZlY3RvciB9LApAQCAtNDg2LDYgKzQ4MCw0MiBAQCBib29sIFRlc3RPcHRpb25zOjpoYXNTYW1l
SW5pdGlhbGl6YXRpb25PCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKKyNkZWZpbmUgRk9SX0VBQ0hf
Qk9PTF9XS19QUkVGRVJFTkNFKG1hY3JvKSBcCisgICAgbWFjcm8oZW5hYmxlQ2FwdHVyZVZpZGVv
SW5VSVByb2Nlc3MsIENhcHR1cmVWaWRlb0luVUlQcm9jZXNzRW5hYmxlZCkgXAorICAgIG1hY3Jv
KGVuYWJsZUNhcHR1cmVWaWRlb0luR1BVUHJvY2VzcywgQ2FwdHVyZVZpZGVvSW5HUFVQcm9jZXNz
RW5hYmxlZCkgXAorICAgIG1hY3JvKGVuYWJsZUNhcHR1cmVBdWRpb0luVUlQcm9jZXNzLCBDYXB0
dXJlQXVkaW9JblVJUHJvY2Vzc0VuYWJsZWQpIFwKKyAgICBtYWNybyhlbmFibGVDYXB0dXJlQXVk
aW9JbkdQVVByb2Nlc3MsIENhcHR1cmVBdWRpb0luR1BVUHJvY2Vzc0VuYWJsZWQpIFwKKyAgICBt
YWNybyh1c2VBY2NlbGVyYXRlZERyYXdpbmcsIEFjY2VsZXJhdGVkRHJhd2luZ0VuYWJsZWQpIFwK
KyAgICBtYWNybyh1c2VNb2NrU2Nyb2xsYmFycywgTW9ja1Njcm9sbGJhcnNFbmFibGVkKSBcCisg
ICAgbWFjcm8obmVlZHNTaXRlU3BlY2lmaWNRdWlya3MsIE5lZWRzU2l0ZVNwZWNpZmljUXVpcmtz
KSBcCisgICAgbWFjcm8oZW5hYmxlQXR0YWNobWVudEVsZW1lbnQsIEF0dGFjaG1lbnRFbGVtZW50
RW5hYmxlZCkgXAorICAgIG1hY3JvKGVuYWJsZU1lbnVJdGVtRWxlbWVudCwgTWVudUl0ZW1FbGVt
ZW50RW5hYmxlZCkgXAorICAgIG1hY3JvKGVuYWJsZUtleWdlbkVsZW1lbnQsIEtleWdlbkVsZW1l
bnRFbmFibGVkKSBcCisgICAgbWFjcm8oZW5hYmxlTW9kZXJuTWVkaWFDb250cm9scywgTW9kZXJu
TWVkaWFDb250cm9sc0VuYWJsZWQpIFwKKyAgICBtYWNybyhlbmFibGVXZWJBdXRoZW50aWNhdGlv
biwgV2ViQXV0aGVudGljYXRpb25FbmFibGVkKSBcCisgICAgbWFjcm8oZW5hYmxlV2ViQXV0aGVu
dGljYXRpb25Mb2NhbEF1dGhlbnRpY2F0b3IsIFdlYkF1dGhlbnRpY2F0aW9uTG9jYWxBdXRoZW50
aWNhdG9yRW5hYmxlZCkgXAorICAgIG1hY3JvKGVuYWJsZUluc3BlY3RvckFkZGl0aW9ucywgSW5z
cGVjdG9yQWRkaXRpb25zRW5hYmxlZCkgXAorICAgIG1hY3JvKGFsbG93Q3Jvc3NPcmlnaW5TdWJy
ZXNvdXJjZXNUb0Fza0ZvckNyZWRlbnRpYWxzLCBBbGxvd0Nyb3NzT3JpZ2luU3VicmVzb3VyY2Vz
VG9Bc2tGb3JDcmVkZW50aWFscykgXAorICAgIG1hY3JvKGRvbVBhc3RlQWxsb3dlZCwgRE9NUGFz
dGVBbGxvd2VkKSBcCisgICAgbWFjcm8oZW5hYmxlQ29sb3JGaWx0ZXIsIENvbG9yRmlsdGVyRW5h
YmxlZCkgXAorICAgIG1hY3JvKHB1bmNoT3V0V2hpdGVCYWNrZ3JvdW5kc0luRGFya01vZGUsIFB1
bmNoT3V0V2hpdGVCYWNrZ3JvdW5kc0luRGFya01vZGUpIFwKKyAgICBtYWNybyhzaG91bGRJZ25v
cmVNZXRhVmlld3BvcnQsIFNob3VsZElnbm9yZU1ldGFWaWV3cG9ydCkgXAorICAgIG1hY3JvKGVu
YWJsZUFwcE5hcCwgUGFnZVZpc2liaWxpdHlCYXNlZFByb2Nlc3NTdXBwcmVzc2lvbkVuYWJsZWQp
IFwKKyAgICBtYWNybyhlbmFibGVCYWNrRm9yd2FyZENhY2hlLCBVc2VzQmFja0ZvcndhcmRDYWNo
ZSkgXAorICAgIG1hY3JvKGVuYWJsZVNlcnZpY2VDb250cm9scywgU2VydmljZUNvbnRyb2xzRW5h
YmxlZCkgXAorICAgIG1hY3JvKGFsbG93VG9wTmF2aWdhdGlvblRvRGF0YVVSTHMsIEFsbG93VG9w
TmF2aWdhdGlvblRvRGF0YVVSTHMpIFwKKyAgICBtYWNybyh1c2VTZXJ2aWNlV29ya2VyU2hvcnRU
aW1lb3V0LCBTaG91bGRVc2VTZXJ2aWNlV29ya2VyU2hvcnRUaW1lb3V0KSBcCitcCisKK3N0ZDo6
dmVjdG9yPHN0ZDo6cGFpcjxzdGQ6OnN0cmluZywgYm9vbD4+IFRlc3RPcHRpb25zOjpib29sV0tQ
cmVmZXJlbmNlcygpIGNvbnN0Cit7CisgICAgcmV0dXJuIHsKKyNkZWZpbmUgQUREX1ZBTFVFKHRl
c3RPcHRpb25zS2V5LCBwcmVmZXJlbmNlc0tleSkgeyAjcHJlZmVyZW5jZXNLZXksIGJvb2xGZWF0
dXJlVmFsdWUoI3Rlc3RPcHRpb25zS2V5KSB9LAorRk9SX0VBQ0hfQk9PTF9XS19QUkVGRVJFTkNF
KEFERF9WQUxVRSkKKyN1bmRlZiBBRERfVkFMVUUKKyAgICB9OworfQorCiB0ZW1wbGF0ZTx0eXBl
bmFtZSBUPgogVCBmZWF0dXJlVmFsdWUoc3RkOjpzdHJpbmcga2V5LCBjb25zdCBzdGQ6OnVub3Jk
ZXJlZF9tYXA8c3RkOjpzdHJpbmcsIFQ+JiBtYXAsIGNvbnN0IHN0ZDo6dW5vcmRlcmVkX21hcDxz
dGQ6OnN0cmluZywgVD4mIGRlZmF1bHRzTWFwKQogewpJbmRleDogVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9UZXN0T3B0aW9ucy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIv
VGVzdE9wdGlvbnMuaAkocmV2aXNpb24gMjY4MzI2KQorKysgVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9UZXN0T3B0aW9ucy5oCSh3b3JraW5nIGNvcHkpCkBAIC04Nyw2OSArODcsNDggQEAgcHVibGlj
OgogICAgICAgICB9OwogICAgIH0KIAotICAgIGJvb2wgdXNlVGhyZWFkZWRTY3JvbGxpbmcoKSBj
b25zdCB7IHJldHVybiBib29sRmVhdHVyZVZhbHVlKCJ1c2VUaHJlYWRlZFNjcm9sbGluZyIpOyB9
Ci0gICAgYm9vbCB1c2VBY2NlbGVyYXRlZERyYXdpbmcoKSBjb25zdCB7IHJldHVybiBib29sRmVh
dHVyZVZhbHVlKCJ1c2VBY2NlbGVyYXRlZERyYXdpbmciKTsgfQotICAgIGJvb2wgdXNlUmVtb3Rl
TGF5ZXJUcmVlKCkgY29uc3QgeyByZXR1cm4gYm9vbEZlYXR1cmVWYWx1ZSgidXNlUmVtb3RlTGF5
ZXJUcmVlIik7IH0KLSAgICBib29sIHNob3VsZFNob3dXZWJWaWV3KCkgY29uc3QgeyByZXR1cm4g
Ym9vbEZlYXR1cmVWYWx1ZSgic2hvdWxkU2hvd1dlYlZpZXciKTsgfQotICAgIGJvb2wgdXNlRmxl
eGlibGVWaWV3cG9ydCgpIGNvbnN0IHsgcmV0dXJuIGJvb2xGZWF0dXJlVmFsdWUoInVzZUZsZXhp
YmxlVmlld3BvcnQiKTsgfQotICAgIGJvb2wgdXNlRGF0YURldGVjdGlvbigpIGNvbnN0IHsgcmV0
dXJuIGJvb2xGZWF0dXJlVmFsdWUoInVzZURhdGFEZXRlY3Rpb24iKTsgfQotICAgIGJvb2wgdXNl
TW9ja1Njcm9sbGJhcnMoKSBjb25zdCB7IHJldHVybiBib29sRmVhdHVyZVZhbHVlKCJ1c2VNb2Nr
U2Nyb2xsYmFycyIpOyB9Ci0gICAgYm9vbCBuZWVkc1NpdGVTcGVjaWZpY1F1aXJrcygpIGNvbnN0
IHsgcmV0dXJuIGJvb2xGZWF0dXJlVmFsdWUoIm5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzIik7IH0K
LSAgICBib29sIGlnbm9yZXNWaWV3cG9ydFNjYWxlTGltaXRzKCkgY29uc3QgeyByZXR1cm4gYm9v
bEZlYXR1cmVWYWx1ZSgiaWdub3Jlc1ZpZXdwb3J0U2NhbGVMaW1pdHMiKTsgfQotICAgIGJvb2wg
dXNlQ2hhcmFjdGVyU2VsZWN0aW9uR3JhbnVsYXJpdHkoKSBjb25zdCB7IHJldHVybiBib29sRmVh
dHVyZVZhbHVlKCJ1c2VDaGFyYWN0ZXJTZWxlY3Rpb25HcmFudWxhcml0eSIpOyB9Ci0gICAgYm9v
bCBlbmFibGVBdHRhY2htZW50RWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIGJvb2xGZWF0dXJlVmFs
dWUoImVuYWJsZUF0dGFjaG1lbnRFbGVtZW50Iik7IH0KLSAgICBib29sIGVuYWJsZUludGVyc2Vj
dGlvbk9ic2VydmVyKCkgY29uc3QgeyByZXR1cm4gYm9vbEZlYXR1cmVWYWx1ZSgiZW5hYmxlSW50
ZXJzZWN0aW9uT2JzZXJ2ZXIiKTsgfQotICAgIGJvb2wgdXNlRXBoZW1lcmFsU2Vzc2lvbigpIGNv
bnN0IHsgcmV0dXJuIGJvb2xGZWF0dXJlVmFsdWUoInVzZUVwaGVtZXJhbFNlc3Npb24iKTsgfQot
ICAgIGJvb2wgZW5hYmxlTWVudUl0ZW1FbGVtZW50KCkgY29uc3QgeyByZXR1cm4gYm9vbEZlYXR1
cmVWYWx1ZSgiZW5hYmxlTWVudUl0ZW1FbGVtZW50Iik7IH0KLSAgICBib29sIGVuYWJsZUtleWdl
bkVsZW1lbnQoKSBjb25zdCB7IHJldHVybiBib29sRmVhdHVyZVZhbHVlKCJlbmFibGVLZXlnZW5F
bGVtZW50Iik7IH0KLSAgICBib29sIGVuYWJsZU1vZGVybk1lZGlhQ29udHJvbHMoKSBjb25zdCB7
IHJldHVybiBib29sRmVhdHVyZVZhbHVlKCJlbmFibGVNb2Rlcm5NZWRpYUNvbnRyb2xzIik7IH0K
LSAgICBib29sIGVuYWJsZVBvaW50ZXJMb2NrKCkgY29uc3QgeyByZXR1cm4gYm9vbEZlYXR1cmVW
YWx1ZSgiZW5hYmxlUG9pbnRlckxvY2siKTsgfQotICAgIGJvb2wgZW5hYmxlV2ViQXV0aGVudGlj
YXRpb24oKSBjb25zdCB7IHJldHVybiBib29sRmVhdHVyZVZhbHVlKCJlbmFibGVXZWJBdXRoZW50
aWNhdGlvbiIpOyB9Ci0gICAgYm9vbCBlbmFibGVXZWJBdXRoZW50aWNhdGlvbkxvY2FsQXV0aGVu
dGljYXRvcigpIGNvbnN0IHsgcmV0dXJuIGJvb2xGZWF0dXJlVmFsdWUoImVuYWJsZVdlYkF1dGhl
bnRpY2F0aW9uTG9jYWxBdXRoZW50aWNhdG9yIik7IH0KLSAgICBib29sIGVuYWJsZUluc3BlY3Rv
ckFkZGl0aW9ucygpIGNvbnN0IHsgcmV0dXJuIGJvb2xGZWF0dXJlVmFsdWUoImVuYWJsZUluc3Bl
Y3RvckFkZGl0aW9ucyIpOyB9Ci0gICAgYm9vbCBzaG91bGRTaG93VG91Y2hlcygpIGNvbnN0IHsg
cmV0dXJuIGJvb2xGZWF0dXJlVmFsdWUoInNob3VsZFNob3dUb3VjaGVzIik7IH0KKyAgICBib29s
IGFsbG93c0xpbmtQcmV2aWV3KCkgY29uc3QgeyByZXR1cm4gYm9vbEZlYXR1cmVWYWx1ZSgiYWxs
b3dzTGlua1ByZXZpZXciKTsgfQogICAgIGJvb2wgZHVtcEpTQ29uc29sZUxvZ0luU3RkRXJyKCkg
Y29uc3QgeyByZXR1cm4gYm9vbEZlYXR1cmVWYWx1ZSgiZHVtcEpTQ29uc29sZUxvZ0luU3RkRXJy
Iik7IH0KLSAgICBib29sIGFsbG93Q3Jvc3NPcmlnaW5TdWJyZXNvdXJjZXNUb0Fza0ZvckNyZWRl
bnRpYWxzKCkgY29uc3QgeyByZXR1cm4gYm9vbEZlYXR1cmVWYWx1ZSgiYWxsb3dDcm9zc09yaWdp
blN1YnJlc291cmNlc1RvQXNrRm9yQ3JlZGVudGlhbHMiKTsgfQotICAgIGJvb2wgZG9tUGFzdGVB
bGxvd2VkKCkgY29uc3QgeyByZXR1cm4gYm9vbEZlYXR1cmVWYWx1ZSgiZG9tUGFzdGVBbGxvd2Vk
Iik7IH0KLSAgICBib29sIGVuYWJsZUNvbG9yRmlsdGVyKCkgY29uc3QgeyByZXR1cm4gYm9vbEZl
YXR1cmVWYWx1ZSgiZW5hYmxlQ29sb3JGaWx0ZXIiKTsgfQotICAgIGJvb2wgcHVuY2hPdXRXaGl0
ZUJhY2tncm91bmRzSW5EYXJrTW9kZSgpIGNvbnN0IHsgcmV0dXJuIGJvb2xGZWF0dXJlVmFsdWUo
InB1bmNoT3V0V2hpdGVCYWNrZ3JvdW5kc0luRGFya01vZGUiKTsgfQotICAgIGJvb2wgcnVuU2lu
Z2x5KCkgY29uc3QgeyByZXR1cm4gYm9vbEZlYXR1cmVWYWx1ZSgicnVuU2luZ2x5Iik7IH0KLSAg
ICBib29sIGNoZWNrRm9yV29ybGRMZWFrcygpIGNvbnN0IHsgcmV0dXJuIGJvb2xGZWF0dXJlVmFs
dWUoImNoZWNrRm9yV29ybGRMZWFrcyIpOyB9Ci0gICAgYm9vbCBzaG91bGRJZ25vcmVNZXRhVmll
d3BvcnQoKSBjb25zdCB7IHJldHVybiBib29sRmVhdHVyZVZhbHVlKCJzaG91bGRJZ25vcmVNZXRh
Vmlld3BvcnQiKTsgfQotICAgIGJvb2wgc2hvdWxkU2hvd1NwZWxsQ2hlY2tpbmdEb3RzKCkgY29u
c3QgeyByZXR1cm4gYm9vbEZlYXR1cmVWYWx1ZSgic3BlbGxDaGVja2luZ0RvdHMiKTsgfQotICAg
IGJvb2wgZW5hYmxlU2VydmljZUNvbnRyb2xzKCkgY29uc3QgeyByZXR1cm4gYm9vbEZlYXR1cmVW
YWx1ZSgiZW5hYmxlU2VydmljZUNvbnRyb2xzIik7IH0KICAgICBib29sIGVkaXRhYmxlKCkgY29u
c3QgeyByZXR1cm4gYm9vbEZlYXR1cmVWYWx1ZSgiZWRpdGFibGUiKTsgfQotICAgIGJvb2wgc2hv
dWxkSGFuZGxlUnVuT3BlblBhbmVsKCkgY29uc3QgeyByZXR1cm4gYm9vbEZlYXR1cmVWYWx1ZSgi
c2hvdWxkSGFuZGxlUnVuT3BlblBhbmVsIik7IH0KLSAgICBib29sIHNob3VsZFByZXNlbnRQb3Bv
dmVycygpIGNvbnN0IHsgcmV0dXJuIGJvb2xGZWF0dXJlVmFsdWUoInNob3VsZFByZXNlbnRQb3Bv
dmVycyIpOyB9Ci0gICAgYm9vbCBlbmFibGVBcHBOYXAoKSBjb25zdCB7IHJldHVybiBib29sRmVh
dHVyZVZhbHVlKCJlbmFibGVBcHBOYXAiKTsgfQotICAgIGJvb2wgZW5hYmxlQmFja0ZvcndhcmRD
YWNoZSgpIGNvbnN0IHsgcmV0dXJuIGJvb2xGZWF0dXJlVmFsdWUoImVuYWJsZUJhY2tGb3J3YXJk
Q2FjaGUiKTsgfQotICAgIGJvb2wgYWxsb3dzTGlua1ByZXZpZXcoKSBjb25zdCB7IHJldHVybiBi
b29sRmVhdHVyZVZhbHVlKCJhbGxvd3NMaW5rUHJldmlldyIpOyB9Ci0gICAgYm9vbCBlbmFibGVD
YXB0dXJlVmlkZW9JblVJUHJvY2VzcygpIGNvbnN0IHsgcmV0dXJuIGJvb2xGZWF0dXJlVmFsdWUo
ImVuYWJsZUNhcHR1cmVWaWRlb0luVUlQcm9jZXNzIik7IH0KLSAgICBib29sIGVuYWJsZUNhcHR1
cmVWaWRlb0luR1BVUHJvY2VzcygpIGNvbnN0IHsgcmV0dXJuIGJvb2xGZWF0dXJlVmFsdWUoImVu
YWJsZUNhcHR1cmVWaWRlb0luR1BVUHJvY2VzcyIpOyB9Ci0gICAgYm9vbCBlbmFibGVDYXB0dXJl
QXVkaW9JblVJUHJvY2VzcygpIGNvbnN0IHsgcmV0dXJuIGJvb2xGZWF0dXJlVmFsdWUoImVuYWJs
ZUNhcHR1cmVBdWRpb0luVUlQcm9jZXNzIik7IH0KLSAgICBib29sIGVuYWJsZUNhcHR1cmVBdWRp
b0luR1BVUHJvY2VzcygpIGNvbnN0IHsgcmV0dXJuIGJvb2xGZWF0dXJlVmFsdWUoImVuYWJsZUNh
cHR1cmVBdWRpb0luR1BVUHJvY2VzcyIpOyB9Ci0gICAgYm9vbCBhbGxvd1RvcE5hdmlnYXRpb25U
b0RhdGFVUkxzKCkgY29uc3QgeyByZXR1cm4gYm9vbEZlYXR1cmVWYWx1ZSgiYWxsb3dUb3BOYXZp
Z2F0aW9uVG9EYXRhVVJMcyIpOyB9CisgICAgLy8gRklYTUU6IGVuYWJsZUF0dGFjaG1lbnRFbGVt
ZW50KCkgaXMgc3RpbGwgdXNlZCBkdWUgdG8gc29tZSBXZWJLaXQgY29kZSB0aGF0IHJlbGllcyBv
biB0aGUgY29uZmlndXJhdGlvbiB2YWx1ZSBvZiBfZW5hYmxlQXR0YWNobWVudEVsZW1lbnQuCisg
ICAgYm9vbCBlbmFibGVBdHRhY2htZW50RWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIGJvb2xGZWF0
dXJlVmFsdWUoImVuYWJsZUF0dGFjaG1lbnRFbGVtZW50Iik7IH0KICAgICBib29sIGVuYWJsZUlu
QXBwQnJvd3NlclByaXZhY3koKSBjb25zdCB7IHJldHVybiBib29sRmVhdHVyZVZhbHVlKCJlbmFi
bGVJbkFwcEJyb3dzZXJQcml2YWN5Iik7IH0KLSAgICBib29sIGlzQXBwQm91bmRXZWJWaWV3KCkg
Y29uc3QgeyByZXR1cm4gYm9vbEZlYXR1cmVWYWx1ZSgiaXNBcHBCb3VuZFdlYlZpZXciKTsgfQot
ICAgIGJvb2wgaWdub3JlU3luY2hyb25vdXNNZXNzYWdpbmdUaW1lb3V0cygpIGNvbnN0IHsgcmV0
dXJuIGJvb2xGZWF0dXJlVmFsdWUoImlnbm9yZVN5bmNocm9ub3VzTWVzc2FnaW5nVGltZW91dHMi
KTsgfQogICAgIGJvb2wgZW5hYmxlUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24oKSBjb25zdCB7IHJl
dHVybiBib29sRmVhdHVyZVZhbHVlKCJlbmFibGVQcm9jZXNzU3dhcE9uTmF2aWdhdGlvbiIpOyB9
CiAgICAgYm9vbCBlbmFibGVQcm9jZXNzU3dhcE9uV2luZG93T3BlbigpIGNvbnN0IHsgcmV0dXJu
IGJvb2xGZWF0dXJlVmFsdWUoImVuYWJsZVByb2Nlc3NTd2FwT25XaW5kb3dPcGVuIik7IH0KKyAg
ICBib29sIGlnbm9yZVN5bmNocm9ub3VzTWVzc2FnaW5nVGltZW91dHMoKSBjb25zdCB7IHJldHVy
biBib29sRmVhdHVyZVZhbHVlKCJpZ25vcmVTeW5jaHJvbm91c01lc3NhZ2luZ1RpbWVvdXRzIik7
IH0KKyAgICBib29sIGlnbm9yZXNWaWV3cG9ydFNjYWxlTGltaXRzKCkgY29uc3QgeyByZXR1cm4g
Ym9vbEZlYXR1cmVWYWx1ZSgiaWdub3Jlc1ZpZXdwb3J0U2NhbGVMaW1pdHMiKTsgfQorICAgIGJv
b2wgaXNBcHBCb3VuZFdlYlZpZXcoKSBjb25zdCB7IHJldHVybiBib29sRmVhdHVyZVZhbHVlKCJp
c0FwcEJvdW5kV2ViVmlldyIpOyB9CisgICAgYm9vbCBwdW5jaE91dFdoaXRlQmFja2dyb3VuZHNJ
bkRhcmtNb2RlKCkgY29uc3QgeyByZXR1cm4gYm9vbEZlYXR1cmVWYWx1ZSgicHVuY2hPdXRXaGl0
ZUJhY2tncm91bmRzSW5EYXJrTW9kZSIpOyB9CisgICAgYm9vbCBydW5TaW5nbHkoKSBjb25zdCB7
IHJldHVybiBib29sRmVhdHVyZVZhbHVlKCJydW5TaW5nbHkiKTsgfQorICAgIGJvb2wgc2hvdWxk
SGFuZGxlUnVuT3BlblBhbmVsKCkgY29uc3QgeyByZXR1cm4gYm9vbEZlYXR1cmVWYWx1ZSgic2hv
dWxkSGFuZGxlUnVuT3BlblBhbmVsIik7IH0KKyAgICBib29sIHNob3VsZFByZXNlbnRQb3BvdmVy
cygpIGNvbnN0IHsgcmV0dXJuIGJvb2xGZWF0dXJlVmFsdWUoInNob3VsZFByZXNlbnRQb3BvdmVy
cyIpOyB9CisgICAgYm9vbCBzaG91bGRTaG93U3BlbGxDaGVja2luZ0RvdHMoKSBjb25zdCB7IHJl
dHVybiBib29sRmVhdHVyZVZhbHVlKCJzcGVsbENoZWNraW5nRG90cyIpOyB9CisgICAgYm9vbCBz
aG91bGRTaG93VG91Y2hlcygpIGNvbnN0IHsgcmV0dXJuIGJvb2xGZWF0dXJlVmFsdWUoInNob3Vs
ZFNob3dUb3VjaGVzIik7IH0KKyAgICBib29sIHNob3VsZFNob3dXZWJWaWV3KCkgY29uc3QgeyBy
ZXR1cm4gYm9vbEZlYXR1cmVWYWx1ZSgic2hvdWxkU2hvd1dlYlZpZXciKTsgfQorICAgIGJvb2wg
dXNlQ2hhcmFjdGVyU2VsZWN0aW9uR3JhbnVsYXJpdHkoKSBjb25zdCB7IHJldHVybiBib29sRmVh
dHVyZVZhbHVlKCJ1c2VDaGFyYWN0ZXJTZWxlY3Rpb25HcmFudWxhcml0eSIpOyB9CisgICAgYm9v
bCB1c2VEYXRhRGV0ZWN0aW9uKCkgY29uc3QgeyByZXR1cm4gYm9vbEZlYXR1cmVWYWx1ZSgidXNl
RGF0YURldGVjdGlvbiIpOyB9CisgICAgYm9vbCB1c2VFcGhlbWVyYWxTZXNzaW9uKCkgY29uc3Qg
eyByZXR1cm4gYm9vbEZlYXR1cmVWYWx1ZSgidXNlRXBoZW1lcmFsU2Vzc2lvbiIpOyB9CisgICAg
Ym9vbCB1c2VGbGV4aWJsZVZpZXdwb3J0KCkgY29uc3QgeyByZXR1cm4gYm9vbEZlYXR1cmVWYWx1
ZSgidXNlRmxleGlibGVWaWV3cG9ydCIpOyB9CisgICAgYm9vbCB1c2VSZW1vdGVMYXllclRyZWUo
KSBjb25zdCB7IHJldHVybiBib29sRmVhdHVyZVZhbHVlKCJ1c2VSZW1vdGVMYXllclRyZWUiKTsg
fQogICAgIGJvb2wgdXNlU2VydmljZVdvcmtlclNob3J0VGltZW91dCgpIGNvbnN0IHsgcmV0dXJu
IGJvb2xGZWF0dXJlVmFsdWUoInVzZVNlcnZpY2VXb3JrZXJTaG9ydFRpbWVvdXQiKTsgfQorICAg
IGJvb2wgdXNlVGhyZWFkZWRTY3JvbGxpbmcoKSBjb25zdCB7IHJldHVybiBib29sRmVhdHVyZVZh
bHVlKCJ1c2VUaHJlYWRlZFNjcm9sbGluZyIpOyB9CiAgICAgZG91YmxlIGNvbnRlbnRJbnNldFRv
cCgpIGNvbnN0IHsgcmV0dXJuIGRvdWJsZUZlYXR1cmVWYWx1ZSgiY29udGVudEluc2V0LnRvcCIp
OyB9CiAgICAgZG91YmxlIGRldmljZVNjYWxlRmFjdG9yKCkgY29uc3QgeyByZXR1cm4gZG91Ymxl
RmVhdHVyZVZhbHVlKCJkZXZpY2VTY2FsZUZhY3RvciIpOyB9Ci0gICAgZG91YmxlIHZpZXdXaWR0
aCgpIGNvbnN0IHsgcmV0dXJuIGRvdWJsZUZlYXR1cmVWYWx1ZSgidmlld1dpZHRoIik7IH0KICAg
ICBkb3VibGUgdmlld0hlaWdodCgpIGNvbnN0IHsgcmV0dXJuIGRvdWJsZUZlYXR1cmVWYWx1ZSgi
dmlld0hlaWdodCIpOyB9CisgICAgZG91YmxlIHZpZXdXaWR0aCgpIGNvbnN0IHsgcmV0dXJuIGRv
dWJsZUZlYXR1cmVWYWx1ZSgidmlld1dpZHRoIik7IH0KKyAgICBzdGQ6OnN0cmluZyBhZGRpdGlv
bmFsU3VwcG9ydGVkSW1hZ2VUeXBlcygpIGNvbnN0IHsgcmV0dXJuIHN0cmluZ0ZlYXR1cmVWYWx1
ZSgiYWRkaXRpb25hbFN1cHBvcnRlZEltYWdlVHlwZXMiKTsgfQorICAgIHN0ZDo6c3RyaW5nIGFw
cGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIHN0cmluZ0ZlYXR1cmVW
YWx1ZSgiYXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyIik7IH0KICAgICBzdGQ6OnN0cmluZyBh
cHBsaWNhdGlvbk1hbmlmZXN0KCkgY29uc3QgeyByZXR1cm4gc3RyaW5nRmVhdHVyZVZhbHVlKCJh
cHBsaWNhdGlvbk1hbmlmZXN0Iik7IH0KKyAgICBzdGQ6OnN0cmluZyBjb250ZW50TW9kZSgpIGNv
bnN0IHsgcmV0dXJuIHN0cmluZ0ZlYXR1cmVWYWx1ZSgiY29udGVudE1vZGUiKTsgfQogICAgIHN0
ZDo6c3RyaW5nIGpzY09wdGlvbnMoKSBjb25zdCB7IHJldHVybiBzdHJpbmdGZWF0dXJlVmFsdWUo
ImpzY09wdGlvbnMiKTsgfQotICAgIHN0ZDo6c3RyaW5nIGFkZGl0aW9uYWxTdXBwb3J0ZWRJbWFn
ZVR5cGVzKCkgY29uc3QgeyByZXR1cm4gc3RyaW5nRmVhdHVyZVZhbHVlKCJhZGRpdGlvbmFsU3Vw
cG9ydGVkSW1hZ2VUeXBlcyIpOyB9CiAgICAgc3RkOjpzdHJpbmcgc3RhbmRhbG9uZVdlYkFwcGxp
Y2F0aW9uVVJMKCkgY29uc3QgeyByZXR1cm4gc3RyaW5nRmVhdHVyZVZhbHVlKCJzdGFuZGFsb25l
V2ViQXBwbGljYXRpb25VUkwiKTsgfQotICAgIHN0ZDo6c3RyaW5nIGNvbnRlbnRNb2RlKCkgY29u
c3QgeyByZXR1cm4gc3RyaW5nRmVhdHVyZVZhbHVlKCJjb250ZW50TW9kZSIpOyB9Ci0gICAgc3Rk
OjpzdHJpbmcgYXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gc3Ry
aW5nRmVhdHVyZVZhbHVlKCJhcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIiKTsgfQogICAgIHN0
ZDo6dmVjdG9yPHN0ZDo6c3RyaW5nPiBvdmVycmlkZUxhbmd1YWdlcygpIGNvbnN0IHsgcmV0dXJu
IHN0cmluZ1ZlY3RvckZlYXR1cmVWYWx1ZSgibGFuZ3VhZ2UiKTsgfQogCiAgICAgY29uc3Qgc3Rk
Ojp1bm9yZGVyZWRfbWFwPHN0ZDo6c3RyaW5nLCBib29sPiYgZXhwZXJpbWVudGFsRmVhdHVyZXMo
KSBjb25zdCB7IHJldHVybiBtX2ZlYXR1cmVzLmV4cGVyaW1lbnRhbEZlYXR1cmVzOyB9CiAgICAg
Y29uc3Qgc3RkOjp1bm9yZGVyZWRfbWFwPHN0ZDo6c3RyaW5nLCBib29sPiYgaW50ZXJuYWxEZWJ1
Z0ZlYXR1cmVzKCkgY29uc3QgeyByZXR1cm4gbV9mZWF0dXJlcy5pbnRlcm5hbERlYnVnRmVhdHVy
ZXM7IH0KIAorICAgIHN0ZDo6dmVjdG9yPHN0ZDo6cGFpcjxzdGQ6OnN0cmluZywgYm9vbD4+IGJv
b2xXS1ByZWZlcmVuY2VzKCkgY29uc3Q7CisKICAgICBib29sIGhhc1NhbWVJbml0aWFsaXphdGlv
bk9wdGlvbnMoY29uc3QgVGVzdE9wdGlvbnMmKSBjb25zdDsKIAogcHJpdmF0ZToKSW5kZXg6IFRv
b2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVGVzdENvbnRyb2xsZXJDb2NvYS5tbQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBUb29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RDb250cm9sbGVyQ29jb2Eu
bW0JKHJldmlzaW9uIDI2ODMyNikKKysrIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVGVz
dENvbnRyb2xsZXJDb2NvYS5tbQkod29ya2luZyBjb3B5KQpAQCAtMzIsNiArMzIsNyBAQAogI2lt
cG9ydCAiVGVzdEludm9jYXRpb24uaCIKICNpbXBvcnQgIlRlc3RSdW5uZXJXS1dlYlZpZXcuaCIK
ICNpbXBvcnQgIlRlc3RXZWJzaXRlRGF0YVN0b3JlRGVsZWdhdGUuaCIKKyNpbXBvcnQgIldlYkNv
cmVUZXN0U3VwcG9ydC5oIgogI2ltcG9ydCA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+CiAjaW1w
b3J0IDxTZWN1cml0eS9TZWNJdGVtLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tDb250ZXh0Q29uZmln
dXJhdGlvblJlZi5oPgpAQCAtNjksNyArNzAsNiBAQCB2b2lkIGluaXRpYWxpemVXZWJWaWV3Q29u
ZmlndXJhdGlvbihjb25zCiAgICAgZ2xvYmFsV2ViVmlld0NvbmZpZ3VyYXRpb24ucHJvY2Vzc1Bv
b2wgPSAoX19icmlkZ2UgV0tQcm9jZXNzUG9vbCAqKWNvbnRleHQ7CiAgICAgZ2xvYmFsV2ViVmll
d0NvbmZpZ3VyYXRpb24ud2Vic2l0ZURhdGFTdG9yZSA9IChfX2JyaWRnZSBXS1dlYnNpdGVEYXRh
U3RvcmUgKilUZXN0Q29udHJvbGxlcjo6ZGVmYXVsdFdlYnNpdGVEYXRhU3RvcmUoKTsKICAgICBn
bG9iYWxXZWJWaWV3Q29uZmlndXJhdGlvbi5fYWxsb3dVbml2ZXJzYWxBY2Nlc3NGcm9tRmlsZVVS
THMgPSBZRVM7Ci0gICAgZ2xvYmFsV2ViVmlld0NvbmZpZ3VyYXRpb24uX2FsbG93VG9wTmF2aWdh
dGlvblRvRGF0YVVSTHMgPSBZRVM7CiAgICAgZ2xvYmFsV2ViVmlld0NvbmZpZ3VyYXRpb24uX2Fw
cGxlUGF5RW5hYmxlZCA9IFlFUzsKIAogICAgIFtnbG9iYWxXZWJzaXRlRGF0YVN0b3JlRGVsZWdh
dGVDbGllbnQgcmVsZWFzZV07CkBAIC0xNTgsMjAgKzE1OCwxMyBAQCB2b2lkIFRlc3RDb250cm9s
bGVyOjpwbGF0Zm9ybUNyZWF0ZVdlYlZpCiAgICAgICAgIFtjb3BpZWRDb25maWd1cmF0aW9uIHNl
dFNlbGVjdGlvbkdyYW51bGFyaXR5OldLU2VsZWN0aW9uR3JhbnVsYXJpdHlDaGFyYWN0ZXJdOwog
ICAgIGlmIChvcHRpb25zLmlzQXBwQm91bmRXZWJWaWV3KCkpCiAgICAgICAgIFtjb3BpZWRDb25m
aWd1cmF0aW9uIHNldExpbWl0c05hdmlnYXRpb25zVG9BcHBCb3VuZERvbWFpbnM6WUVTXTsKLSNl
bHNlCi0gICAgW2NvcGllZENvbmZpZ3VyYXRpb24gX3NldFNlcnZpY2VDb250cm9sc0VuYWJsZWQ6
b3B0aW9ucy5lbmFibGVTZXJ2aWNlQ29udHJvbHMoKV07CiAjZW5kaWYKIAogICAgIGlmIChvcHRp
b25zLmVuYWJsZUF0dGFjaG1lbnRFbGVtZW50KCkpCiAgICAgICAgIFtjb3BpZWRDb25maWd1cmF0
aW9uIF9zZXRBdHRhY2htZW50RWxlbWVudEVuYWJsZWQ6WUVTXTsKIAotICAgIGlmIChvcHRpb25z
LmVuYWJsZUNvbG9yRmlsdGVyKCkpCi0gICAgICAgIFtjb3BpZWRDb25maWd1cmF0aW9uIF9zZXRD
b2xvckZpbHRlckVuYWJsZWQ6WUVTXTsKLQogICAgIFtjb3BpZWRDb25maWd1cmF0aW9uIHNldFdl
YnNpdGVEYXRhU3RvcmU6KFdLV2Vic2l0ZURhdGFTdG9yZSAqKXdlYnNpdGVEYXRhU3RvcmUoKV07
CiAKLSAgICBbY29waWVkQ29uZmlndXJhdGlvbiBfc2V0QWxsb3dUb3BOYXZpZ2F0aW9uVG9EYXRh
VVJMczpvcHRpb25zLmFsbG93VG9wTmF2aWdhdGlvblRvRGF0YVVSTHMoKV07Ci0KICAgICBjb25m
aWd1cmVDb250ZW50TW9kZShjb3BpZWRDb25maWd1cmF0aW9uLmdldCgpLCBvcHRpb25zKTsKIAog
ICAgIGF1dG8gYXBwbGljYXRpb25NYW5pZmVzdCA9IG9wdGlvbnMuYXBwbGljYXRpb25NYW5pZmVz
dCgpOwpAQCAtMjk4LDYgKzI5MSw4IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OmNvY29hUmVzZXRT
dGF0ZVRvQ28KICAgICB9CiAKICAgICBbZ2xvYmFsV2Vic2l0ZURhdGFTdG9yZURlbGVnYXRlQ2xp
ZW50IHNldEFsbG93UmFpc2luZ1F1b3RhOllFU107CisKKyAgICBXZWJDb3JlVGVzdFN1cHBvcnQ6
OnNldEFkZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVzRm9yVGVzdGluZyhvcHRpb25zLmFkZGl0
aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVzKCkuY19zdHIoKSk7CiB9CiAKIHZvaWQgVGVzdENvbnRy
b2xsZXI6OnBsYXRmb3JtV2lsbFJ1blRlc3QoY29uc3QgVGVzdEludm9jYXRpb24mIHRlc3RJbnZv
Y2F0aW9uKQpJbmRleDogVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9ndGsvVGVzdENvbnRyb2xsZXJH
dGsuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvZ3RrL1Rlc3RDb250
cm9sbGVyR3RrLmNwcAkocmV2aXNpb24gMjY4MzI2KQorKysgVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9ndGsvVGVzdENvbnRyb2xsZXJHdGsuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3
IEBACiAjaW5jbHVkZSAiVGVzdENvbnRyb2xsZXIuaCIKIAogI2luY2x1ZGUgIlBsYXRmb3JtV2Vi
Vmlldy5oIgorI2luY2x1ZGUgPFdlYktpdC9XS1RleHRDaGVja2VyLmg+CiAjaW5jbHVkZSA8Z3Rr
L2d0ay5oPgogI2luY2x1ZGUgPHd0Zi9QbGF0Zm9ybS5oPgogI2luY2x1ZGUgPHd0Zi9SdW5Mb29w
Lmg+CkBAIC0xNTAsNiArMTUxLDEyIEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtUmVz
ZXRQcmVmZXIKICAgICBtX21haW5XZWJWaWV3LT5kaXNtaXNzQWxsUG9wdXBNZW51cygpOwogfQog
Citib29sIFRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybVJlc2V0U3RhdGVUb0NvbnNpc3RlbnRWYWx1
ZXMoY29uc3QgVGVzdE9wdGlvbnMmKQoreworICAgIFdLVGV4dENoZWNrZXJDb250aW51b3VzU3Bl
bGxDaGVja2luZ0VuYWJsZWRTdGF0ZUNoYW5nZWQodHJ1ZSk7CisgICAgcmV0dXJuIHRydWU7Cit9
CisKIFRlc3RGZWF0dXJlcyBUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1TcGVjaWZpY0ZlYXR1cmVE
ZWZhdWx0c0ZvclRlc3QoY29uc3QgVGVzdENvbW1hbmQmKSBjb25zdAogewogICAgIFRlc3RGZWF0
dXJlcyBmZWF0dXJlczsKSW5kZXg6IFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvaW9zL1Rlc3RDb250
cm9sbGVySU9TLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvaW9zL1Rl
c3RDb250cm9sbGVySU9TLm1tCShyZXZpc2lvbiAyNjgzMjYpCisrKyBUb29scy9XZWJLaXRUZXN0
UnVubmVyL2lvcy9UZXN0Q29udHJvbGxlcklPUy5tbQkod29ya2luZyBjb3B5KQpAQCAtMTQ4LDcg
KzE0OCw2IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtUmVzZXRQcmVmZXIKICAgICBX
S1ByZWZlcmVuY2VzU2V0VGV4dEF1dG9zaXppbmdFbmFibGVkKHByZWZlcmVuY2VzLCBmYWxzZSk7
CiAgICAgV0tQcmVmZXJlbmNlc1NldFRleHRBdXRvc2l6aW5nVXNlc0lkZW1wb3RlbnRNb2RlKHBy
ZWZlcmVuY2VzLCBmYWxzZSk7CiAgICAgV0tQcmVmZXJlbmNlc1NldENvbnRlbnRDaGFuZ2VPYnNl
cnZlckVuYWJsZWQocHJlZmVyZW5jZXMsIGZhbHNlKTsKLSAgICBbKF9fYnJpZGdlIFdLUHJlZmVy
ZW5jZXMgKilwcmVmZXJlbmNlcyBfc2V0U2hvdWxkSWdub3JlTWV0YVZpZXdwb3J0Ok5PXTsKIH0K
IAogYm9vbCBUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1SZXNldFN0YXRlVG9Db25zaXN0ZW50VmFs
dWVzKGNvbnN0IFRlc3RPcHRpb25zJiBvcHRpb25zKQpAQCAtMjY5LDkgKzI2OCw2IEBAIHZvaWQg
VGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtQ29uZmlndXJlVmkKIAogICAgIFRlc3RSdW5uZXJXS1dl
YlZpZXcgKndlYlZpZXcgPSBtYWluV2ViVmlldygpLT5wbGF0Zm9ybVZpZXcoKTsKIAotICAgIGlm
ICh0ZXN0Lm9wdGlvbnMoKS5zaG91bGRJZ25vcmVNZXRhVmlld3BvcnQoKSkKLSAgICAgICAgd2Vi
Vmlldy5jb25maWd1cmF0aW9uLnByZWZlcmVuY2VzLl9zaG91bGRJZ25vcmVNZXRhVmlld3BvcnQg
PSBZRVM7Ci0KICAgICBpZiAoIXRlc3Qub3B0aW9ucygpLnVzZUZsZXhpYmxlVmlld3BvcnQoKSkK
ICAgICAgICAgcmV0dXJuOwogCkluZGV4OiBUb29scy9XZWJLaXRUZXN0UnVubmVyL3dpbi9UZXN0
Q29udHJvbGxlcldpbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci93
aW4vVGVzdENvbnRyb2xsZXJXaW4uY3BwCShyZXZpc2lvbiAyNjgzMjYpCisrKyBUb29scy9XZWJL
aXRUZXN0UnVubmVyL3dpbi9UZXN0Q29udHJvbGxlcldpbi5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTIyNyw2ICsyMjcsMTEgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1SZXNldFByZWZl
cgogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKK2Jvb2wgVGVzdENvbnRyb2xsZXI6OnBsYXRm
b3JtUmVzZXRTdGF0ZVRvQ29uc2lzdGVudFZhbHVlcyhjb25zdCBUZXN0T3B0aW9ucyYpCit7Cisg
ICAgcmV0dXJuIHRydWU7Cit9CisKIFRlc3RGZWF0dXJlcyBUZXN0Q29udHJvbGxlcjo6cGxhdGZv
cm1TcGVjaWZpY0ZlYXR1cmVEZWZhdWx0c0ZvclRlc3QoY29uc3QgVGVzdENvbW1hbmQmKSBjb25z
dAogewogICAgIHJldHVybiB7IH07CkluZGV4OiBUb29scy9XZWJLaXRUZXN0UnVubmVyL3dwZS9U
ZXN0Q29udHJvbGxlcldQRS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci93cGUvVGVzdENvbnRyb2xsZXJXUEUuY3BwCShyZXZpc2lvbiAyNjgzMjYpCisrKyBUb29scy9X
ZWJLaXRUZXN0UnVubmVyL3dwZS9UZXN0Q29udHJvbGxlcldQRS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTEzNiw2ICsxMzYsMTEgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1SZXNldFBy
ZWZlcgogewogfQogCitib29sIFRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybVJlc2V0U3RhdGVUb0Nv
bnNpc3RlbnRWYWx1ZXMoY29uc3QgVGVzdE9wdGlvbnMmKQoreworICAgIHJldHVybiB0cnVlOwor
fQorCiBUZXN0RmVhdHVyZXMgVGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtU3BlY2lmaWNGZWF0dXJl
RGVmYXVsdHNGb3JUZXN0KGNvbnN0IFRlc3RDb21tYW5kJikgY29uc3QKIHsKICAgICBUZXN0RmVh
dHVyZXMgZmVhdHVyZXM7Cg==
</data>
<flag name="commit-queue"
          id="427209"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411085</attachid>
            <date>2020-10-11 18:19:21 -0700</date>
            <delta_ts>2020-10-11 19:35:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217582-20201011181920.patch</filename>
            <type>text/plain</type>
            <size>71057</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNjgzMzApCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMzIEBACisyMDIwLTEwLTExICBTYW0gV2Vpbmln
ICA8d2VpbmlnQGFwcGxlLmNvbT4KKworICAgICAgICBbUHJlZmVyZW5jZXNdIEludHJvZHVjZSBz
dHJpbmcgYmFzZWQgU1BJIGZvciBXS1ByZWZlcmVuY2VzIHRvIGFsbG93IHRlc3RzIHRvIGNoYW5n
ZSBpbnRlcm5hbCBiZWhhdmlvciB3aXRob3V0IGFsd2F5cyBhZGRpbmcgYWRkaXRpb25hbCBTUEkK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzU4Mgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtXSVBdCisK
KyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1pbnB1
dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0
OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogU2NyaXB0cy9QcmVm
ZXJlbmNlc1RlbXBsYXRlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbEZlYXR1cmVzLmNwcC5l
cmI6CisgICAgICAgICogU2NyaXB0cy9QcmVmZXJlbmNlc1RlbXBsYXRlcy9XZWJQcmVmZXJlbmNl
c0dldHRlclNldHRlcnMuY3BwLmVyYjogQWRkZWQuCisgICAgICAgICogU2NyaXB0cy9QcmVmZXJl
bmNlc1RlbXBsYXRlcy9XZWJQcmVmZXJlbmNlc0ludGVybmFsRGVidWdGZWF0dXJlcy5jcHAuZXJi
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcDoKKyAgICAgICAg
KFdLUHJlZmVyZW5jZXNTZXRCb29sVmFsdWVGb3JLZXkpOgorICAgICAgICAoV0tQcmVmZXJlbmNl
c1NldERvdWJsZVZhbHVlRm9yS2V5KToKKyAgICAgICAgKFdLUHJlZmVyZW5jZXNTZXRVSW50MzJW
YWx1ZUZvcktleSk6CisgICAgICAgIChXS1ByZWZlcmVuY2VzU2V0U3RyaW5nVmFsdWVGb3JLZXkp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzUmVmUHJpdmF0ZS5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcmVmZXJlbmNlcy5jcHA6CisgICAgICAgIChXZWJLaXQ6
OldlYlByZWZlcmVuY2VzOjpzZXRCb29sVmFsdWVGb3JLZXkpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQcmVmZXJlbmNlczo6c2V0RG91YmxlVmFsdWVGb3JLZXkpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQcmVmZXJlbmNlczo6c2V0VUludDMyVmFsdWVGb3JLZXkpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQcmVmZXJlbmNlczo6c2V0U3RyaW5nVmFsdWVGb3JLZXkpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJQcmVmZXJlbmNlcy5oOgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qOgorCiAyMDIwLTEwLTExICBMdW1pbmcgWWluICA8bHVtaW5nX3lpbkBhcHBsZS5jb20+
CiAKICAgICAgICAgU3RyaXAgcGF0Y2ggdmVyc2lvbiBmcm9tIFRBUkdFVF9NQUNfT1NfWF9WRVJT
SU9OX01BSk9SIHdoZW4gYnVpbGRpbmcgZm9yIG1hY09TIEJpZyBTdXIgCkluZGV4OiBTb3VyY2Uv
V2ViS2l0L0NNYWtlTGlzdHMudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvQ01ha2VM
aXN0cy50eHQJKHJldmlzaW9uIDI2ODMzMCkKKysrIFNvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50
eHQJKHdvcmtpbmcgY29weSkKQEAgLTUwMCw2ICs1MDAsNyBAQCBzZXQoV2ViS2l0X1dFQl9QUkVG
RVJFTkNFU19URU1QTEFURVMKICAgICAke1dFQktJVF9ESVJ9L1NjcmlwdHMvUHJlZmVyZW5jZXNU
ZW1wbGF0ZXMvV2ViUGFnZVVwZGF0ZVByZWZlcmVuY2VzLmNwcC5lcmIKICAgICAke1dFQktJVF9E
SVJ9L1NjcmlwdHMvUHJlZmVyZW5jZXNUZW1wbGF0ZXMvV2ViUHJlZmVyZW5jZXNEZWZpbml0aW9u
cy5oLmVyYgogICAgICR7V0VCS0lUX0RJUn0vU2NyaXB0cy9QcmVmZXJlbmNlc1RlbXBsYXRlcy9X
ZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbEZlYXR1cmVzLmNwcC5lcmIKKyAgICAke1dFQktJVF9E
SVJ9L1NjcmlwdHMvUHJlZmVyZW5jZXNUZW1wbGF0ZXMvV2ViUHJlZmVyZW5jZXNHZXR0ZXJTZXR0
ZXJzLmNwcC5lcmIKICAgICAke1dFQktJVF9ESVJ9L1NjcmlwdHMvUHJlZmVyZW5jZXNUZW1wbGF0
ZXMvV2ViUHJlZmVyZW5jZXNJbnRlcm5hbERlYnVnRmVhdHVyZXMuY3BwLmVyYgogICAgICR7V0VC
S0lUX0RJUn0vU2NyaXB0cy9QcmVmZXJlbmNlc1RlbXBsYXRlcy9XZWJQcmVmZXJlbmNlc0tleXMu
Y3BwLmVyYgogICAgICR7V0VCS0lUX0RJUn0vU2NyaXB0cy9QcmVmZXJlbmNlc1RlbXBsYXRlcy9X
ZWJQcmVmZXJlbmNlc0tleXMuaC5lcmIKQEAgLTUxNiw5ICs1MTcsOSBAQCBzZXQoV2ViS2l0X1dF
Ql9QUkVGRVJFTkNFUwogc2V0X3NvdXJjZV9maWxlc19wcm9wZXJ0aWVzKCR7V2ViS2l0X1dFQl9Q
UkVGRVJFTkNFU30gUFJPUEVSVElFUyBHRU5FUkFURUQgVFJVRSkKIAogYWRkX2N1c3RvbV9jb21t
YW5kKAotICAgIE9VVFBVVCAke1dlYktpdF9ERVJJVkVEX1NPVVJDRVNfRElSfS9XZWJQYWdlVXBk
YXRlUHJlZmVyZW5jZXMuY3BwICR7V2ViS2l0X0RFUklWRURfU09VUkNFU19ESVJ9L1dlYlByZWZl
cmVuY2VzRGVmaW5pdGlvbnMuaCAke1dlYktpdF9ERVJJVkVEX1NPVVJDRVNfRElSfS9XZWJQcmVm
ZXJlbmNlc0V4cGVyaW1lbnRhbEZlYXR1cmVzLmNwcCAke1dlYktpdF9ERVJJVkVEX1NPVVJDRVNf
RElSfS9XZWJQcmVmZXJlbmNlc0ludGVybmFsRGVidWdGZWF0dXJlcy5jcHAgJHtXZWJLaXRfREVS
SVZFRF9TT1VSQ0VTX0RJUn0vV2ViUHJlZmVyZW5jZXNLZXlzLmNwcCAke1dlYktpdF9ERVJJVkVE
X1NPVVJDRVNfRElSfS9XZWJQcmVmZXJlbmNlc0tleXMuaCAke1dlYktpdF9ERVJJVkVEX1NPVVJD
RVNfRElSfS9XZWJQcmVmZXJlbmNlc1N0b3JlRGVmYXVsdHNNYXAuY3BwCisgICAgT1VUUFVUICR7
V2ViS2l0X0RFUklWRURfU09VUkNFU19ESVJ9L1dlYlBhZ2VVcGRhdGVQcmVmZXJlbmNlcy5jcHAg
JHtXZWJLaXRfREVSSVZFRF9TT1VSQ0VTX0RJUn0vV2ViUHJlZmVyZW5jZXNEZWZpbml0aW9ucy5o
ICR7V2ViS2l0X0RFUklWRURfU09VUkNFU19ESVJ9L1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFs
RmVhdHVyZXMuY3BwICR7V2ViS2l0X0RFUklWRURfU09VUkNFU19ESVJ9L1dlYlByZWZlcmVuY2Vz
R2V0dGVyU2V0dGVycy5jcHAgJHtXZWJLaXRfREVSSVZFRF9TT1VSQ0VTX0RJUn0vV2ViUHJlZmVy
ZW5jZXNJbnRlcm5hbERlYnVnRmVhdHVyZXMuY3BwICR7V2ViS2l0X0RFUklWRURfU09VUkNFU19E
SVJ9L1dlYlByZWZlcmVuY2VzS2V5cy5jcHAgJHtXZWJLaXRfREVSSVZFRF9TT1VSQ0VTX0RJUn0v
V2ViUHJlZmVyZW5jZXNLZXlzLmggJHtXZWJLaXRfREVSSVZFRF9TT1VSQ0VTX0RJUn0vV2ViUHJl
ZmVyZW5jZXNTdG9yZURlZmF1bHRzTWFwLmNwcAogICAgIERFUEVORFMgJHtXZWJLaXRfV0VCX1BS
RUZFUkVOQ0VTX1RFTVBMQVRFU30gJHtXZWJLaXRfV0VCX1BSRUZFUkVOQ0VTfSBXVEZfQ29weVBy
ZWZlcmVuY2VzCi0gICAgQ09NTUFORCAke1JVQllfRVhFQ1VUQUJMRX0gJHtXVEZfU0NSSVBUU19E
SVJ9L0dlbmVyYXRlUHJlZmVyZW5jZXMucmIgLS1mcm9udGVuZCBXZWJLaXQgLS1iYXNlICR7V1RG
X1NDUklQVFNfRElSfS9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlcy55YW1sIC0tZGVidWcgJHtX
VEZfU0NSSVBUU19ESVJ9L1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRGVidWcueWFtbCAtLWV4
cGVyaW1lbnRhbCAke1dURl9TQ1JJUFRTX0RJUn0vUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNF
eHBlcmltZW50YWwueWFtbCAtLWludGVybmFsICR7V1RGX1NDUklQVFNfRElSfS9QcmVmZXJlbmNl
cy9XZWJQcmVmZXJlbmNlc0ludGVybmFsLnlhbWwgLS1vdXRwdXREaXIgIiR7V2ViS2l0X0RFUklW
RURfU09VUkNFU19ESVJ9IiAtLXRlbXBsYXRlICR7V0VCS0lUX0RJUn0vU2NyaXB0cy9QcmVmZXJl
bmNlc1RlbXBsYXRlcy9XZWJQYWdlVXBkYXRlUHJlZmVyZW5jZXMuY3BwLmVyYiAtLXRlbXBsYXRl
ICR7V0VCS0lUX0RJUn0vU2NyaXB0cy9QcmVmZXJlbmNlc1RlbXBsYXRlcy9XZWJQcmVmZXJlbmNl
c0RlZmluaXRpb25zLmguZXJiIC0tdGVtcGxhdGUgJHtXRUJLSVRfRElSfS9TY3JpcHRzL1ByZWZl
cmVuY2VzVGVtcGxhdGVzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsRmVhdHVyZXMuY3BwLmVy
YiAtLXRlbXBsYXRlICR7V0VCS0lUX0RJUn0vU2NyaXB0cy9QcmVmZXJlbmNlc1RlbXBsYXRlcy9X
ZWJQcmVmZXJlbmNlc0ludGVybmFsRGVidWdGZWF0dXJlcy5jcHAuZXJiIC0tdGVtcGxhdGUgJHtX
RUJLSVRfRElSfS9TY3JpcHRzL1ByZWZlcmVuY2VzVGVtcGxhdGVzL1dlYlByZWZlcmVuY2VzS2V5
cy5jcHAuZXJiIC0tdGVtcGxhdGUgJHtXRUJLSVRfRElSfS9TY3JpcHRzL1ByZWZlcmVuY2VzVGVt
cGxhdGVzL1dlYlByZWZlcmVuY2VzS2V5cy5oLmVyYiAtLXRlbXBsYXRlICR7V0VCS0lUX0RJUn0v
U2NyaXB0cy9QcmVmZXJlbmNlc1RlbXBsYXRlcy9XZWJQcmVmZXJlbmNlc1N0b3JlRGVmYXVsdHNN
YXAuY3BwLmVyYgorICAgIENPTU1BTkQgJHtSVUJZX0VYRUNVVEFCTEV9ICR7V1RGX1NDUklQVFNf
RElSfS9HZW5lcmF0ZVByZWZlcmVuY2VzLnJiIC0tZnJvbnRlbmQgV2ViS2l0IC0tYmFzZSAke1dU
Rl9TQ1JJUFRTX0RJUn0vUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXMueWFtbCAtLWRlYnVnICR7
V1RGX1NDUklQVFNfRElSfS9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0RlYnVnLnlhbWwgLS1l
eHBlcmltZW50YWwgJHtXVEZfU0NSSVBUU19ESVJ9L1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2Vz
RXhwZXJpbWVudGFsLnlhbWwgLS1pbnRlcm5hbCAke1dURl9TQ1JJUFRTX0RJUn0vUHJlZmVyZW5j
ZXMvV2ViUHJlZmVyZW5jZXNJbnRlcm5hbC55YW1sIC0tb3V0cHV0RGlyICIke1dlYktpdF9ERVJJ
VkVEX1NPVVJDRVNfRElSfSIgLS10ZW1wbGF0ZSAke1dFQktJVF9ESVJ9L1NjcmlwdHMvUHJlZmVy
ZW5jZXNUZW1wbGF0ZXMvV2ViUGFnZVVwZGF0ZVByZWZlcmVuY2VzLmNwcC5lcmIgLS10ZW1wbGF0
ZSAke1dFQktJVF9ESVJ9L1NjcmlwdHMvUHJlZmVyZW5jZXNUZW1wbGF0ZXMvV2ViUHJlZmVyZW5j
ZXNEZWZpbml0aW9ucy5oLmVyYiAtLXRlbXBsYXRlICR7V0VCS0lUX0RJUn0vU2NyaXB0cy9QcmVm
ZXJlbmNlc1RlbXBsYXRlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbEZlYXR1cmVzLmNwcC5l
cmIgLS10ZW1wbGF0ZSAke1dFQktJVF9ESVJ9L1NjcmlwdHMvUHJlZmVyZW5jZXNUZW1wbGF0ZXMv
V2ViUHJlZmVyZW5jZXNHZXR0ZXJTZXR0ZXJzLmNwcC5lcmIgLS10ZW1wbGF0ZSAke1dFQktJVF9E
SVJ9L1NjcmlwdHMvUHJlZmVyZW5jZXNUZW1wbGF0ZXMvV2ViUHJlZmVyZW5jZXNJbnRlcm5hbERl
YnVnRmVhdHVyZXMuY3BwLmVyYiAtLXRlbXBsYXRlICR7V0VCS0lUX0RJUn0vU2NyaXB0cy9QcmVm
ZXJlbmNlc1RlbXBsYXRlcy9XZWJQcmVmZXJlbmNlc0tleXMuY3BwLmVyYiAtLXRlbXBsYXRlICR7
V0VCS0lUX0RJUn0vU2NyaXB0cy9QcmVmZXJlbmNlc1RlbXBsYXRlcy9XZWJQcmVmZXJlbmNlc0tl
eXMuaC5lcmIgLS10ZW1wbGF0ZSAke1dFQktJVF9ESVJ9L1NjcmlwdHMvUHJlZmVyZW5jZXNUZW1w
bGF0ZXMvV2ViUHJlZmVyZW5jZXNTdG9yZURlZmF1bHRzTWFwLmNwcC5lcmIKICAgICBWRVJCQVRJ
TSkKIAogbGlzdChBUFBFTkQgV2ViS2l0X0hFQURFUlMKQEAgLTUyOSw2ICs1MzAsNyBAQCBsaXN0
KEFQUEVORCBXZWJLaXRfSEVBREVSUwogbGlzdChBUFBFTkQgV2ViS2l0X1NPVVJDRVMKICAgICAk
e1dlYktpdF9ERVJJVkVEX1NPVVJDRVNfRElSfS9XZWJQYWdlVXBkYXRlUHJlZmVyZW5jZXMuY3Bw
CiAgICAgJHtXZWJLaXRfREVSSVZFRF9TT1VSQ0VTX0RJUn0vV2ViUHJlZmVyZW5jZXNFeHBlcmlt
ZW50YWxGZWF0dXJlcy5jcHAKKyAgICAke1dlYktpdF9ERVJJVkVEX1NPVVJDRVNfRElSfS9XZWJQ
cmVmZXJlbmNlc0dldHRlclNldHRlcnMuY3BwCiAgICAgJHtXZWJLaXRfREVSSVZFRF9TT1VSQ0VT
X0RJUn0vV2ViUHJlZmVyZW5jZXNJbnRlcm5hbERlYnVnRmVhdHVyZXMuY3BwCiAgICAgJHtXZWJL
aXRfREVSSVZFRF9TT1VSQ0VTX0RJUn0vV2ViUHJlZmVyZW5jZXNLZXlzLmNwcAogICAgICR7V2Vi
S2l0X0RFUklWRURfU09VUkNFU19ESVJ9L1dlYlByZWZlcmVuY2VzU3RvcmVEZWZhdWx0c01hcC5j
cHAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxp
c3QJKHJldmlzaW9uIDI2ODMzMCkKKysrIFNvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5w
dXQueGNmaWxlbGlzdAkod29ya2luZyBjb3B5KQpAQCAtNjgsNiArNjgsNyBAQCAkKFBST0pFQ1Rf
RElSKS9QbHVnaW5Qcm9jZXNzL21hYy9jb20uYXBwCiAkKFBST0pFQ1RfRElSKS9TY3JpcHRzL1By
ZWZlcmVuY2VzVGVtcGxhdGVzL1dlYlBhZ2VVcGRhdGVQcmVmZXJlbmNlcy5jcHAuZXJiCiAkKFBS
T0pFQ1RfRElSKS9TY3JpcHRzL1ByZWZlcmVuY2VzVGVtcGxhdGVzL1dlYlByZWZlcmVuY2VzRGVm
aW5pdGlvbnMuaC5lcmIKICQoUFJPSkVDVF9ESVIpL1NjcmlwdHMvUHJlZmVyZW5jZXNUZW1wbGF0
ZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWxGZWF0dXJlcy5jcHAuZXJiCiskKFBST0pFQ1Rf
RElSKS9TY3JpcHRzL1ByZWZlcmVuY2VzVGVtcGxhdGVzL1dlYlByZWZlcmVuY2VzR2V0dGVyU2V0
dGVycy5jcHAuZXJiCiAkKFBST0pFQ1RfRElSKS9TY3JpcHRzL1ByZWZlcmVuY2VzVGVtcGxhdGVz
L1dlYlByZWZlcmVuY2VzSW50ZXJuYWxEZWJ1Z0ZlYXR1cmVzLmNwcC5lcmIKICQoUFJPSkVDVF9E
SVIpL1NjcmlwdHMvUHJlZmVyZW5jZXNUZW1wbGF0ZXMvV2ViUHJlZmVyZW5jZXNLZXlzLmNwcC5l
cmIKICQoUFJPSkVDVF9ESVIpL1NjcmlwdHMvUHJlZmVyZW5jZXNUZW1wbGF0ZXMvV2ViUHJlZmVy
ZW5jZXNLZXlzLmguZXJiCkluZGV4OiBTb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1
dC54Y2ZpbGVsaXN0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMt
b3V0cHV0LnhjZmlsZWxpc3QJKHJldmlzaW9uIDI2ODMzMCkKKysrIFNvdXJjZS9XZWJLaXQvRGVy
aXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QJKHdvcmtpbmcgY29weSkKQEAgLTM2OSw2ICsz
NjksNyBAQCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViCiAkKEJVSUxU
X1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJQcmVmZXJlbmNlc0NvbWJp
bmVkLnlhbWwKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1dl
YlByZWZlcmVuY2VzRGVmaW5pdGlvbnMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYktpdDIvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWxGZWF0dXJlcy5jcHAKKyQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYlByZWZlcmVuY2Vz
R2V0dGVyU2V0dGVycy5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJLaXQyL1dlYlByZWZlcmVuY2VzSW50ZXJuYWxEZWJ1Z0ZlYXR1cmVzLmNwcAogJChCVUlMVF9Q
Uk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViUHJlZmVyZW5jZXNLZXlzLmNw
cAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViUHJlZmVy
ZW5jZXNLZXlzLmgKSW5kZXg6IFNvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UJKHJldmlzaW9uIDI2
ODMzMCkKKysrIFNvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQkod29ya2luZyBjb3B5
KQpAQCAtMzUzLDkgKzM1MywxMCBAQCBXRUJfUFJFRkVSRU5DRVNfVEVNUExBVEVTID0gXAogICAg
ICQoV2ViS2l0MikvU2NyaXB0cy9QcmVmZXJlbmNlc1RlbXBsYXRlcy9XZWJQYWdlVXBkYXRlUHJl
ZmVyZW5jZXMuY3BwLmVyYiBcCiAgICAgJChXZWJLaXQyKS9TY3JpcHRzL1ByZWZlcmVuY2VzVGVt
cGxhdGVzL1dlYlByZWZlcmVuY2VzRGVmaW5pdGlvbnMuaC5lcmIgXAogICAgICQoV2ViS2l0Mikv
U2NyaXB0cy9QcmVmZXJlbmNlc1RlbXBsYXRlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbEZl
YXR1cmVzLmNwcC5lcmIgXAorICAgICQoV2ViS2l0MikvU2NyaXB0cy9QcmVmZXJlbmNlc1RlbXBs
YXRlcy9XZWJQcmVmZXJlbmNlc0dldHRlclNldHRlcnMuY3BwLmVyYiBcCiAgICAgJChXZWJLaXQy
KS9TY3JpcHRzL1ByZWZlcmVuY2VzVGVtcGxhdGVzL1dlYlByZWZlcmVuY2VzSW50ZXJuYWxEZWJ1
Z0ZlYXR1cmVzLmNwcC5lcmIgXAotICAgICQoV2ViS2l0MikvU2NyaXB0cy9QcmVmZXJlbmNlc1Rl
bXBsYXRlcy9XZWJQcmVmZXJlbmNlc0tleXMuaC5lcmIgXAogICAgICQoV2ViS2l0MikvU2NyaXB0
cy9QcmVmZXJlbmNlc1RlbXBsYXRlcy9XZWJQcmVmZXJlbmNlc0tleXMuY3BwLmVyYiBcCisgICAg
JChXZWJLaXQyKS9TY3JpcHRzL1ByZWZlcmVuY2VzVGVtcGxhdGVzL1dlYlByZWZlcmVuY2VzS2V5
cy5oLmVyYiBcCiAgICAgJChXZWJLaXQyKS9TY3JpcHRzL1ByZWZlcmVuY2VzVGVtcGxhdGVzL1dl
YlByZWZlcmVuY2VzU3RvcmVEZWZhdWx0c01hcC5jcHAuZXJiIFwKICMKIFdFQl9QUkVGRVJFTkNF
U19GSUxFUyA9ICQoYmFzZW5hbWUgJChub3RkaXIgJChXRUJfUFJFRkVSRU5DRVNfVEVNUExBVEVT
KSkpCkluZGV4OiBTb3VyY2UvV2ViS2l0L1NjcmlwdHMvUHJlZmVyZW5jZXNUZW1wbGF0ZXMvV2Vi
UHJlZmVyZW5jZXNFeHBlcmltZW50YWxGZWF0dXJlcy5jcHAuZXJiCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvU2NyaXB0cy9QcmVmZXJlbmNlc1RlbXBsYXRlcy9XZWJQcmVmZXJlbmNlc0V4
cGVyaW1lbnRhbEZlYXR1cmVzLmNwcC5lcmIJKHJldmlzaW9uIDI2ODMzMCkKKysrIFNvdXJjZS9X
ZWJLaXQvU2NyaXB0cy9QcmVmZXJlbmNlc1RlbXBsYXRlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1l
bnRhbEZlYXR1cmVzLmNwcC5lcmIJKHdvcmtpbmcgY29weSkKQEAgLTMzLDIwICszMyw2IEBACiAK
IG5hbWVzcGFjZSBXZWJLaXQgewogCi08JS0gZm9yIEBwcmVmIGluIEBleHBlcmltZW50YWxGZWF0
dXJlcyBkbyAtJT4KLXZvaWQgV2ViUHJlZmVyZW5jZXM6OnNldDwlPSBAcHJlZi5uYW1lICU+KGNv
bnN0IGJvb2wmIHZhbHVlKQotewotICAgIGlmICghbV9zdG9yZS5zZXRCb29sVmFsdWVGb3JLZXko
V2ViUHJlZmVyZW5jZXNLZXk6OjwlPSBAcHJlZi5uYW1lTG93ZXIgJT5LZXkoKSwgdmFsdWUpKQot
ICAgICAgICByZXR1cm47Ci0gICAgdXBkYXRlQm9vbFZhbHVlRm9yRXhwZXJpbWVudGFsRmVhdHVy
ZUtleShXZWJQcmVmZXJlbmNlc0tleTo6PCU9IEBwcmVmLm5hbWVMb3dlciAlPktleSgpLCB2YWx1
ZSk7Ci19Ci0KLWJvb2wgV2ViUHJlZmVyZW5jZXM6OjwlPSBAcHJlZi5uYW1lTG93ZXIgJT4oKSBj
b25zdAotewotICAgIHJldHVybiBtX3N0b3JlLmdldEJvb2xWYWx1ZUZvcktleShXZWJQcmVmZXJl
bmNlc0tleTo6PCU9IEBwcmVmLm5hbWVMb3dlciAlPktleSgpKTsKLX0KLQotPCUtIGVuZCAtJT4K
IGNvbnN0IFZlY3RvcjxSZWZQdHI8QVBJOjpPYmplY3Q+PiYgV2ViUHJlZmVyZW5jZXM6OmV4cGVy
aW1lbnRhbEZlYXR1cmVzKCkKIHsKICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8VmVjdG9yPFJl
ZlB0cjxBUEk6Ok9iamVjdD4+PiBmZWF0dXJlcyhzdGQ6OmluaXRpYWxpemVyX2xpc3Q8UmVmUHRy
PEFQSTo6T2JqZWN0Pj4gewpJbmRleDogU291cmNlL1dlYktpdC9TY3JpcHRzL1ByZWZlcmVuY2Vz
VGVtcGxhdGVzL1dlYlByZWZlcmVuY2VzR2V0dGVyU2V0dGVycy5jcHAuZXJiCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQvU2NyaXB0cy9QcmVmZXJlbmNlc1RlbXBsYXRlcy9XZWJQcmVmZXJl
bmNlc0dldHRlclNldHRlcnMuY3BwLmVyYgkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViS2l0
L1NjcmlwdHMvUHJlZmVyZW5jZXNUZW1wbGF0ZXMvV2ViUHJlZmVyZW5jZXNHZXR0ZXJTZXR0ZXJz
LmNwcC5lcmIJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw5NSBAQAorLyoKKyogPCU9IEB3YXJu
aW5nICU+CisqCisqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisqCisqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyogYXJlIG1ldDoKKyogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisqCisqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYlByZWZlcmVuY2VzLmgiCisKKyNpbmNsdWRl
ICJXZWJQcmVmZXJlbmNlc0tleXMuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKKzwlLSBmb3Ig
QHByZWYgaW4gKEBwcmVmZXJlbmNlc05vdERlYnVnICsgQHByZWZlcmVuY2VzRGVidWcpIGRvIC0l
Pgordm9pZCBXZWJQcmVmZXJlbmNlczo6c2V0PCU9IEBwcmVmLm5hbWUgJT4oY29uc3QgPCU9IEBw
cmVmLnR5cGUgJT4mIHZhbHVlKQoreworICAgIGlmICghbV9zdG9yZS5zZXQ8JT0gQHByZWYudHlw
ZVVwcGVyICU+VmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OjwlPSBAcHJlZi5uYW1lTG93
ZXIgJT5LZXkoKSwgdmFsdWUpKQorICAgICAgICByZXR1cm47CisgICAgdXBkYXRlPCU9IEBwcmVm
LnR5cGVVcHBlciAlPlZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5Ojo8JT0gQHByZWYubmFt
ZUxvd2VyICU+S2V5KCksIHZhbHVlKTsKK30KKworPCU9IEBwcmVmLnR5cGUgJT4gV2ViUHJlZmVy
ZW5jZXM6OjwlPSBAcHJlZi5uYW1lTG93ZXIgJT4oKSBjb25zdAoreworICAgIHJldHVybiBtX3N0
b3JlLmdldDwlPSBAcHJlZi50eXBlVXBwZXIgJT5WYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tl
eTo6PCU9IEBwcmVmLm5hbWVMb3dlciAlPktleSgpKTsKK30KKwordm9pZCBXZWJQcmVmZXJlbmNl
czo6ZGVsZXRlPCU9IEBwcmVmLm5hbWUgJT4oKQoreworICAgIGRlbGV0ZUtleShXZWJQcmVmZXJl
bmNlc0tleTo6PCU9IEBwcmVmLm5hbWVMb3dlciAlPktleSgpKTsKK30KKworPCUtIGVuZCAtJT4K
KworPCUtIGZvciBAcHJlZiBpbiBAZXhwZXJpbWVudGFsRmVhdHVyZXMgZG8gLSU+Cit2b2lkIFdl
YlByZWZlcmVuY2VzOjpzZXQ8JT0gQHByZWYubmFtZSAlPihjb25zdCBib29sJiB2YWx1ZSkKK3sK
KyAgICBpZiAoIW1fc3RvcmUuc2V0Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5Ojo8
JT0gQHByZWYubmFtZUxvd2VyICU+S2V5KCksIHZhbHVlKSkKKyAgICAgICAgcmV0dXJuOworICAg
IHVwZGF0ZUJvb2xWYWx1ZUZvckV4cGVyaW1lbnRhbEZlYXR1cmVLZXkoV2ViUHJlZmVyZW5jZXNL
ZXk6OjwlPSBAcHJlZi5uYW1lTG93ZXIgJT5LZXkoKSwgdmFsdWUpOworfQorCitib29sIFdlYlBy
ZWZlcmVuY2VzOjo8JT0gQHByZWYubmFtZUxvd2VyICU+KCkgY29uc3QKK3sKKyAgICByZXR1cm4g
bV9zdG9yZS5nZXRCb29sVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OjwlPSBAcHJlZi5u
YW1lTG93ZXIgJT5LZXkoKSk7Cit9CisKK3ZvaWQgV2ViUHJlZmVyZW5jZXM6OmRlbGV0ZTwlPSBA
cHJlZi5uYW1lICU+KCkKK3sKKyAgICBkZWxldGVLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OjwlPSBA
cHJlZi5uYW1lTG93ZXIgJT5LZXkoKSk7Cit9CisKKzwlLSBlbmQgLSU+CisKKzwlLSBmb3IgQHBy
ZWYgaW4gQGludGVybmFsRmVhdHVyZXMgZG8gLSU+Cit2b2lkIFdlYlByZWZlcmVuY2VzOjpzZXQ8
JT0gQHByZWYubmFtZSAlPihjb25zdCBib29sJiB2YWx1ZSkKK3sKKyAgICBpZiAoIW1fc3RvcmUu
c2V0Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5Ojo8JT0gQHByZWYubmFtZUxvd2Vy
ICU+S2V5KCksIHZhbHVlKSkKKyAgICAgICAgcmV0dXJuOworICAgIHVwZGF0ZUJvb2xWYWx1ZUZv
ckludGVybmFsRGVidWdGZWF0dXJlS2V5KFdlYlByZWZlcmVuY2VzS2V5Ojo8JT0gQHByZWYubmFt
ZUxvd2VyICU+S2V5KCksIHZhbHVlKTsKK30KKworYm9vbCBXZWJQcmVmZXJlbmNlczo6PCU9IEBw
cmVmLm5hbWVMb3dlciAlPigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fc3RvcmUuZ2V0Qm9vbFZh
bHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5Ojo8JT0gQHByZWYubmFtZUxvd2VyICU+S2V5KCkp
OworfQorCit2b2lkIFdlYlByZWZlcmVuY2VzOjpkZWxldGU8JT0gQHByZWYubmFtZSAlPigpCit7
CisgICAgZGVsZXRlS2V5KFdlYlByZWZlcmVuY2VzS2V5Ojo8JT0gQHByZWYubmFtZUxvd2VyICU+
S2V5KCkpOworfQorCis8JS0gZW5kIC0lPgorCit9CkluZGV4OiBTb3VyY2UvV2ViS2l0L1Njcmlw
dHMvUHJlZmVyZW5jZXNUZW1wbGF0ZXMvV2ViUHJlZmVyZW5jZXNJbnRlcm5hbERlYnVnRmVhdHVy
ZXMuY3BwLmVyYgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1NjcmlwdHMvUHJlZmVyZW5j
ZXNUZW1wbGF0ZXMvV2ViUHJlZmVyZW5jZXNJbnRlcm5hbERlYnVnRmVhdHVyZXMuY3BwLmVyYgko
cmV2aXNpb24gMjY4MzMwKQorKysgU291cmNlL1dlYktpdC9TY3JpcHRzL1ByZWZlcmVuY2VzVGVt
cGxhdGVzL1dlYlByZWZlcmVuY2VzSW50ZXJuYWxEZWJ1Z0ZlYXR1cmVzLmNwcC5lcmIJKHdvcmtp
bmcgY29weSkKQEAgLTMzLDIwICszMyw2IEBACiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi08JS0g
Zm9yIEBwcmVmIGluIEBpbnRlcm5hbEZlYXR1cmVzIGRvIC0lPgotdm9pZCBXZWJQcmVmZXJlbmNl
czo6c2V0PCU9IEBwcmVmLm5hbWUgJT4oY29uc3QgYm9vbCYgdmFsdWUpCi17Ci0gICAgaWYgKCFt
X3N0b3JlLnNldEJvb2xWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6PCU9IEBwcmVmLm5h
bWVMb3dlciAlPktleSgpLCB2YWx1ZSkpCi0gICAgICAgIHJldHVybjsKLSAgICB1cGRhdGVCb29s
VmFsdWVGb3JJbnRlcm5hbERlYnVnRmVhdHVyZUtleShXZWJQcmVmZXJlbmNlc0tleTo6PCU9IEBw
cmVmLm5hbWVMb3dlciAlPktleSgpLCB2YWx1ZSk7Ci19Ci0KLWJvb2wgV2ViUHJlZmVyZW5jZXM6
OjwlPSBAcHJlZi5uYW1lTG93ZXIgJT4oKSBjb25zdAotewotICAgIHJldHVybiBtX3N0b3JlLmdl
dEJvb2xWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6PCU9IEBwcmVmLm5hbWVMb3dlciAl
PktleSgpKTsKLX0KLQotPCUtIGVuZCAtJT4KIGNvbnN0IFZlY3RvcjxSZWZQdHI8QVBJOjpPYmpl
Y3Q+PiYgV2ViUHJlZmVyZW5jZXM6OmludGVybmFsRGVidWdGZWF0dXJlcygpCiB7CiAgICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPFZlY3RvcjxSZWZQdHI8QVBJOjpPYmplY3Q+Pj4gZmVhdHVyZXMo
c3RkOjppbml0aWFsaXplcl9saXN0PFJlZlB0cjxBUEk6Ok9iamVjdD4+IHsKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByZWZlcmVuY2VzLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcmVmZXJlbmNlcy5jcHAJKHJldmlzaW9uIDI2ODMzMCkK
KysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByZWZlcmVuY2VzLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMTAyLDYgKzEwMiwzNCBAQCB2b2lkIFdlYlByZWZlcmVuY2VzOjp1cGRhdGUoKQog
ICAgICAgICB3ZWJQYWdlUHJveHktPnByZWZlcmVuY2VzRGlkQ2hhbmdlKCk7CiB9CiAKK3ZvaWQg
V2ViUHJlZmVyZW5jZXM6OnNldEJvb2xWYWx1ZUZvcktleShjb25zdCBTdHJpbmcmIGtleSwgYm9v
bCB2YWx1ZSkKK3sKKyAgICBpZiAoIW1fc3RvcmUuc2V0Qm9vbFZhbHVlRm9yS2V5KGtleSwgdmFs
dWUpKQorICAgICAgICByZXR1cm47CisgICAgdXBkYXRlQm9vbFZhbHVlRm9yS2V5KGtleSwgdmFs
dWUpOworfQorCit2b2lkIFdlYlByZWZlcmVuY2VzOjpzZXREb3VibGVWYWx1ZUZvcktleShjb25z
dCBTdHJpbmcmIGtleSwgZG91YmxlIHZhbHVlKQoreworICAgIGlmICghbV9zdG9yZS5zZXREb3Vi
bGVWYWx1ZUZvcktleShrZXksIHZhbHVlKSkKKyAgICAgICAgcmV0dXJuOworICAgIHVwZGF0ZURv
dWJsZVZhbHVlRm9yS2V5KGtleSwgdmFsdWUpOworfQorCit2b2lkIFdlYlByZWZlcmVuY2VzOjpz
ZXRVSW50MzJWYWx1ZUZvcktleShjb25zdCBTdHJpbmcmIGtleSwgdWludDMyX3QgdmFsdWUpCit7
CisgICAgaWYgKCFtX3N0b3JlLnNldFVJbnQzMlZhbHVlRm9yS2V5KGtleSwgdmFsdWUpKQorICAg
ICAgICByZXR1cm47CisgICAgdXBkYXRlVUludDMyVmFsdWVGb3JLZXkoa2V5LCB2YWx1ZSk7Cit9
CisKK3ZvaWQgV2ViUHJlZmVyZW5jZXM6OnNldFN0cmluZ1ZhbHVlRm9yS2V5KGNvbnN0IFN0cmlu
ZyYga2V5LCBjb25zdCBTdHJpbmcmIHZhbHVlKQoreworICAgIGlmICghbV9zdG9yZS5zZXRTdHJp
bmdWYWx1ZUZvcktleShrZXksIHZhbHVlKSkKKyAgICAgICAgcmV0dXJuOworICAgIHVwZGF0ZVN0
cmluZ1ZhbHVlRm9yS2V5KGtleSwgdmFsdWUpOworfQorCiB2b2lkIFdlYlByZWZlcmVuY2VzOjp1
cGRhdGVTdHJpbmdWYWx1ZUZvcktleShjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3RyaW5nJiB2
YWx1ZSkKIHsKICAgICBwbGF0Zm9ybVVwZGF0ZVN0cmluZ1ZhbHVlRm9yS2V5KGtleSwgdmFsdWUp
OwpAQCAtMTU1LDMwICsxODMsNiBAQCB2b2lkIFdlYlByZWZlcmVuY2VzOjpkZWxldGVLZXkoY29u
c3QgU3RyCiAgICAgdXBkYXRlKCk7IC8vIEZJWE1FOiBPbmx5IHNlbmQgb3ZlciB0aGUgY2hhbmdl
ZCBrZXkgYW5kIHZhbHVlLgogfQogCi0jZGVmaW5lIERFRklORV9QUkVGRVJFTkNFX0dFVFRFUl9B
TkRfU0VUVEVSUyhLZXlVcHBlciwgS2V5TG93ZXIsIFR5cGVOYW1lLCBUeXBlLCBEZWZhdWx0VmFs
dWUsIEh1bWFuUmVhZGFibGVOYW1lLCBIdW1hblJlYWRhYmxlRGVzY3JpcHRpb24pIFwKLSAgICB2
b2lkIFdlYlByZWZlcmVuY2VzOjpzZXQjI0tleVVwcGVyKGNvbnN0IFR5cGUmIHZhbHVlKSBcCi0g
ICAgeyBcCi0gICAgICAgIGlmICghbV9zdG9yZS5zZXQjI1R5cGVOYW1lIyNWYWx1ZUZvcktleShX
ZWJQcmVmZXJlbmNlc0tleTo6S2V5TG93ZXIjI0tleSgpLCB2YWx1ZSkpIFwKLSAgICAgICAgICAg
IHJldHVybjsgXAotICAgICAgICB1cGRhdGUjI1R5cGVOYW1lIyNWYWx1ZUZvcktleShXZWJQcmVm
ZXJlbmNlc0tleTo6S2V5TG93ZXIjI0tleSgpLCB2YWx1ZSk7IFwKLSAgICB9IFwKLSAgICBcCi0g
ICAgdm9pZCBXZWJQcmVmZXJlbmNlczo6ZGVsZXRlIyNLZXlVcHBlcigpIFwKLSAgICB7IFwKLSAg
ICAgICAgZGVsZXRlS2V5KFdlYlByZWZlcmVuY2VzS2V5OjpLZXlMb3dlciMjS2V5KCkpOyBcCi0g
ICAgfSBcCi0gICAgXAotICAgIFR5cGUgV2ViUHJlZmVyZW5jZXM6OktleUxvd2VyKCkgY29uc3Qg
XAotICAgIHsgXAotICAgICAgICByZXR1cm4gbV9zdG9yZS5nZXQjI1R5cGVOYW1lIyNWYWx1ZUZv
cktleShXZWJQcmVmZXJlbmNlc0tleTo6S2V5TG93ZXIjI0tleSgpKTsgXAotICAgIH0gXAotCi1G
T1JfRUFDSF9XRUJLSVRfUFJFRkVSRU5DRShERUZJTkVfUFJFRkVSRU5DRV9HRVRURVJfQU5EX1NF
VFRFUlMpCi1GT1JfRUFDSF9XRUJLSVRfREVCVUdfUFJFRkVSRU5DRShERUZJTkVfUFJFRkVSRU5D
RV9HRVRURVJfQU5EX1NFVFRFUlMpCi0KLSN1bmRlZiBERUZJTkVfUFJFRkVSRU5DRV9HRVRURVJf
QU5EX1NFVFRFUlMKLQotCiB2b2lkIFdlYlByZWZlcmVuY2VzOjpyZWdpc3RlckRlZmF1bHRCb29s
VmFsdWVGb3JLZXkoY29uc3QgU3RyaW5nJiBrZXksIGJvb2wgdmFsdWUpCiB7CiAgICAgbV9zdG9y
ZS5zZXRPdmVycmlkZURlZmF1bHRzQm9vbFZhbHVlRm9yS2V5KGtleSwgdmFsdWUpOwpJbmRleDog
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJlZmVyZW5jZXMuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcmVmZXJlbmNlcy5oCShyZXZpc2lvbiAyNjgzMzAp
CisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcmVmZXJlbmNlcy5oCSh3b3JraW5nIGNv
cHkpCkBAIC01OSw2ICs1OSw3IEBAIHB1YmxpYzoKIAogICAgIGNvbnN0IFdlYlByZWZlcmVuY2Vz
U3RvcmUmIHN0b3JlKCkgY29uc3QgeyByZXR1cm4gbV9zdG9yZTsgfQogCisgICAgLy8gSW1wbGVt
ZW50ZWQgaW4gZ2VuZXJhdGVkIGZpbGUgV2ViUHJlZmVyZW5jZXNHZXR0ZXJTZXR0ZXJzLmNwcC4K
ICAgICBGT1JfRUFDSF9XRUJLSVRfUFJFRkVSRU5DRShERUNMQVJFX1BSRUZFUkVOQ0VfR0VUVEVS
X0FORF9TRVRURVJTKQogICAgIEZPUl9FQUNIX1dFQktJVF9ERUJVR19QUkVGRVJFTkNFKERFQ0xB
UkVfUFJFRkVSRU5DRV9HRVRURVJfQU5EX1NFVFRFUlMpCiAgICAgRk9SX0VBQ0hfV0VCS0lUX0lO
VEVSTkFMX0RFQlVHX0ZFQVRVUkVfUFJFRkVSRU5DRShERUNMQVJFX1BSRUZFUkVOQ0VfR0VUVEVS
X0FORF9TRVRURVJTKQpAQCAtNzcsNiArNzgsMTAgQEAgcHVibGljOgogICAgIHZvaWQgcmVzZXRB
bGxJbnRlcm5hbERlYnVnRmVhdHVyZXMoKTsKIAogICAgIC8vIEV4cG9zZWQgZm9yIFdlYktpdFRl
c3RSdW5uZXIgdXNlIG9ubHkuCisgICAgdm9pZCBzZXRCb29sVmFsdWVGb3JLZXkoY29uc3QgU3Ry
aW5nJiwgYm9vbCB2YWx1ZSk7CisgICAgdm9pZCBzZXREb3VibGVWYWx1ZUZvcktleShjb25zdCBT
dHJpbmcmLCBkb3VibGUgdmFsdWUpOworICAgIHZvaWQgc2V0VUludDMyVmFsdWVGb3JLZXkoY29u
c3QgU3RyaW5nJiwgdWludDMyX3QgdmFsdWUpOworICAgIHZvaWQgc2V0U3RyaW5nVmFsdWVGb3JL
ZXkoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiB2YWx1ZSk7CiAgICAgdm9pZCBmb3JjZVVw
ZGF0ZSgpIHsgdXBkYXRlKCk7IH0KIAogcHJpdmF0ZToKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwCShyZXZpc2lvbiAyNjgzMzApCisr
KyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNzgsNiArNzgsMjYgQEAgdm9pZCBXS1ByZWZlcmVuY2VzU2V0SW50ZXJuYWxE
ZWJ1Z0ZlYXR1cgogICAgIHRvSW1wbChwcmVmZXJlbmNlc1JlZiktPnNldEludGVybmFsRGVidWdG
ZWF0dXJlRW5hYmxlZEZvcktleSh0b1dURlN0cmluZyhpbnRlcm5hbERlYnVnRmVhdHVyZUtleSks
IHZhbHVlKTsKIH0KIAordm9pZCBXS1ByZWZlcmVuY2VzU2V0Qm9vbFZhbHVlRm9yS2V5KFdLUHJl
ZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYsIGJvb2wgdmFsdWUsIFdLU3RyaW5nUmVmIGtleSkK
K3sKKyAgICB0b0ltcGwocHJlZmVyZW5jZXNSZWYpLT5zZXRCb29sVmFsdWVGb3JLZXkodG9XVEZT
dHJpbmcoa2V5KSwgdmFsdWUpOworfQorCit2b2lkIFdLUHJlZmVyZW5jZXNTZXREb3VibGVWYWx1
ZUZvcktleShXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmLCBkb3VibGUgdmFsdWUsIFdL
U3RyaW5nUmVmIGtleSkKK3sKKyAgICB0b0ltcGwocHJlZmVyZW5jZXNSZWYpLT5zZXRCb29sVmFs
dWVGb3JLZXkodG9XVEZTdHJpbmcoa2V5KSwgdmFsdWUpOworfQorCit2b2lkIFdLUHJlZmVyZW5j
ZXNTZXRVSW50MzJWYWx1ZUZvcktleShXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmLCB1
aW50MzJfdCB2YWx1ZSwgV0tTdHJpbmdSZWYga2V5KQoreworICAgIHRvSW1wbChwcmVmZXJlbmNl
c1JlZiktPnNldFVJbnQzMlZhbHVlRm9yS2V5KHRvV1RGU3RyaW5nKGtleSksIHZhbHVlKTsKK30K
Kwordm9pZCBXS1ByZWZlcmVuY2VzU2V0U3RyaW5nVmFsdWVGb3JLZXkoV0tQcmVmZXJlbmNlc1Jl
ZiBwcmVmZXJlbmNlc1JlZiwgV0tTdHJpbmdSZWYgdmFsdWUsIFdLU3RyaW5nUmVmIGtleSkKK3sK
KyAgICB0b0ltcGwocHJlZmVyZW5jZXNSZWYpLT5zZXRTdHJpbmdWYWx1ZUZvcktleSh0b1dURlN0
cmluZyhrZXkpLCB0b1dURlN0cmluZyh2YWx1ZSkpOworfQorCiB2b2lkIFdLUHJlZmVyZW5jZXNS
ZXNldFRlc3RSdW5uZXJPdmVycmlkZXMoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZikK
IHsKICAgICAvLyBDdXJyZW50bHkgd2UgcmVzZXQgdGhlIG92ZXJyaWRlcyBvbiB0aGUgd2ViIHBy
b2Nlc3Mgd2hlbiBwcmVmZXJlbmNlc0RpZENoYW5nZSgpIGlzIGNhbGxlZC4gU2luY2UgV1RSIHBy
ZWZlcmVuY2VzCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVu
Y2VzUmVmUHJpdmF0ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9DL1dLUHJlZmVyZW5jZXNSZWZQcml2YXRlLmgJKHJldmlzaW9uIDI2ODMzMCkKKysrIFNvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXNSZWZQcml2YXRlLmgJKHdvcmtp
bmcgY29weSkKQEAgLTU1LDYgKzU1LDEzIEBAIFdLX0VYUE9SVCB2b2lkIFdLUHJlZmVyZW5jZXNT
ZXRFeHBlcmltZW4KIFdLX0VYUE9SVCB2b2lkIFdLUHJlZmVyZW5jZXNSZXNldEFsbEludGVybmFs
RGVidWdGZWF0dXJlcyhXS1ByZWZlcmVuY2VzUmVmKTsKIFdLX0VYUE9SVCB2b2lkIFdLUHJlZmVy
ZW5jZXNTZXRJbnRlcm5hbERlYnVnRmVhdHVyZUZvcktleShXS1ByZWZlcmVuY2VzUmVmLCBib29s
LCBXS1N0cmluZ1JlZik7CiAKKy8vIFRoZSBmb2xsb3dpbmcgZ2VuZXJpYyBzZXR0ZXIgZnVuY3Rp
b25zIGFyZSBvbmx5IGludGVuZGVkIGZvciB1c2UgYnkgdGVzdGluZyBpbmZyYXN0cnVjdHVyZS4K
K1dLX0VYUE9SVCB2b2lkIFdLUHJlZmVyZW5jZXNTZXRCb29sVmFsdWVGb3JLZXkoV0tQcmVmZXJl
bmNlc1JlZiBwcmVmZXJlbmNlc1JlZiwgYm9vbCB2YWx1ZSwgV0tTdHJpbmdSZWYga2V5KTsKK1dL
X0VYUE9SVCB2b2lkIFdLUHJlZmVyZW5jZXNTZXREb3VibGVWYWx1ZUZvcktleShXS1ByZWZlcmVu
Y2VzUmVmIHByZWZlcmVuY2VzUmVmLCBkb3VibGUgdmFsdWUsIFdLU3RyaW5nUmVmIGtleSk7CitX
S19FWFBPUlQgdm9pZCBXS1ByZWZlcmVuY2VzU2V0VUludDMyVmFsdWVGb3JLZXkoV0tQcmVmZXJl
bmNlc1JlZiBwcmVmZXJlbmNlc1JlZiwgdWludDMyX3QgdmFsdWUsIFdLU3RyaW5nUmVmIGtleSk7
CitXS19FWFBPUlQgdm9pZCBXS1ByZWZlcmVuY2VzU2V0U3RyaW5nVmFsdWVGb3JLZXkoV0tQcmVm
ZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZiwgV0tTdHJpbmdSZWYgdmFsdWUsIFdLU3RyaW5nUmVm
IGtleSk7CisKKy8vIEZvciBUZXN0IFJ1bm5lciBVc2Ugb25seS4KIFdLX0VYUE9SVCB2b2lkIFdL
UHJlZmVyZW5jZXNSZXNldFRlc3RSdW5uZXJPdmVycmlkZXMoV0tQcmVmZXJlbmNlc1JlZiBwcmVm
ZXJlbmNlc1JlZik7CiAKIC8vIERlZmF1bHRzIHRvIGZhbHNlLgpJbmRleDogU291cmNlL1dlYktp
dC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAyNjgzMzAp
CisrKyBTb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMzEyLDYgKzEzMTIsNyBAQAogCQk3Q0U0RDIyODFBNDkxNkMyMDBDN0Yx
NTIgLyogV2ViUHJvY2Vzc1Bvb2xNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gN0NFNEQyMjYxQTQ5MTZDMjAwQzdGMTUyIC8qIFdlYlByb2Nl
c3NQb29sTWVzc2FnZXMuaCAqLzsgfTsKIAkJN0NFOUNFMTAxRkEwNzY3QTAwMDE3N0RFIC8qIFdl
YlBhZ2VVcGRhdGVQcmVmZXJlbmNlcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA3Q0U5Q0UwRjFGQTA3NjREMDAwMTc3REUgLyogV2ViUGFnZVVwZGF0
ZVByZWZlcmVuY2VzLmNwcCAqLzsgfTsKIAkJN0NFQjAwREQxRkE2OUFCRTAwNjU0NzNCIC8qIFdl
YlByZWZlcmVuY2VzRXhwZXJpbWVudGFsRmVhdHVyZXMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0NFQjAwREMxRkE2OUE4OTAwNjU0NzNCIC8qIFdl
YlByZWZlcmVuY2VzRXhwZXJpbWVudGFsRmVhdHVyZXMuY3BwICovOyB9OworCQk3Q0YxOTA3MTI1
MzM4RjM4MDBBQkUxODMgLyogV2ViUHJlZmVyZW5jZXNHZXR0ZXJTZXR0ZXJzLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDRjE5MDcwMjUzMzhFRkYw
MEFCRTE4MyAvKiBXZWJQcmVmZXJlbmNlc0dldHRlclNldHRlcnMuY3BwICovOyB9OwogCQk3Q0Y0
N0ZGNzE3Mjc1QjcxMDA4QUNCOTEgLyogV0tCdW5kbGVQYWdlQmFubmVyLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Q0Y0N0ZGNTE3Mjc1QjcxMDA4QUNC
OTEgLyogV0tCdW5kbGVQYWdlQmFubmVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJN0NGNDdGRkIxNzI3NUM1NzAwOEFDQjkxIC8qIFBhZ2VCYW5u
ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDRjQ3
RkY5MTcyNzVDNTcwMDhBQ0I5MSAvKiBQYWdlQmFubmVyLmggKi87IH07CiAJCTdDRjQ3RkZGMTcy
NzZBRTMwMDhBQ0I5MSAvKiBXS0J1bmRsZVBhZ2VCYW5uZXJNYWMuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDRjQ3RkZEMTcyNzZBRTMwMDhBQ0I5MSAv
KiBXS0J1bmRsZVBhZ2VCYW5uZXJNYWMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwpAQCAtNDMzMiw2ICs0MzMzLDcgQEAKIAkJN0NFOUNFMEYxRkEwNzY0
RDAwMDE3N0RFIC8qIFdlYlBhZ2VVcGRhdGVQcmVmZXJlbmNlcy5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5h
bWUgPSBXZWJQYWdlVXBkYXRlUHJlZmVyZW5jZXMuY3BwOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMv
V2ViS2l0Mi9XZWJQYWdlVXBkYXRlUHJlZmVyZW5jZXMuY3BwOyBzb3VyY2VUcmVlID0gQlVJTFRf
UFJPRFVDVFNfRElSOyB9OwogCQk3Q0VCMDBEQzFGQTY5QTg5MDA2NTQ3M0IgLyogV2ViUHJlZmVy
ZW5jZXNFeHBlcmltZW50YWxGZWF0dXJlcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBXZWJQcmVm
ZXJlbmNlc0V4cGVyaW1lbnRhbEZlYXR1cmVzLmNwcDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dl
YktpdDIvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWxGZWF0dXJlcy5jcHA7IHNvdXJjZVRyZWUg
PSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTdDRUZBOTYwMUFDMDk5OTMwMEI5MTBGRCAvKiBB
UElDb250ZW50UnVsZUxpc3RTdG9yZUNvY29hLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBwYXRoID0gQVBJQ29udGVudFJ1bGVMaXN0U3RvcmVDb2NvYS5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJN0NGMTkwNzAyNTMzOEVGRjAwQUJFMTgzIC8qIFdlYlByZWZl
cmVuY2VzR2V0dGVyU2V0dGVycy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBXZWJQcmVmZXJlbmNl
c0dldHRlclNldHRlcnMuY3BwOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJQcmVm
ZXJlbmNlc0dldHRlclNldHRlcnMuY3BwOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElS
OyB9OwogCQk3Q0Y0N0ZGNDE3Mjc1QjcxMDA4QUNCOTEgLyogV0tCdW5kbGVQYWdlQmFubmVyLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdLQnVuZGxlUGFnZUJhbm5l
ci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDRjQ3RkY1MTcyNzVCNzEwMDhB
Q0I5MSAvKiBXS0J1bmRsZVBhZ2VCYW5uZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gV0tCdW5kbGVQYWdlQmFubmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTdDRjQ3RkY5MTcyNzVDNTcwMDhBQ0I5MSAvKiBQYWdlQmFubmVyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFBhZ2VCYW5uZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTEwMjU5LDYgKzEwMjYxLDcgQEAKIAkJCQkxQUIxRjc5NTFEMUIzNjEzMDA3QzlCRDEg
LyogV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHlNZXNzYWdlcy5oICovLAogCQkJCTdDREU3M0Ez
MUY5REFCNjUwMDM5MDMxMiAvKiBXZWJQcmVmZXJlbmNlc0RlZmluaXRpb25zLmggKi8sCiAJCQkJ
N0NFQjAwREMxRkE2OUE4OTAwNjU0NzNCIC8qIFdlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsRmVh
dHVyZXMuY3BwICovLAorCQkJCTdDRjE5MDcwMjUzMzhFRkYwMEFCRTE4MyAvKiBXZWJQcmVmZXJl
bmNlc0dldHRlclNldHRlcnMuY3BwICovLAogCQkJCTMxQjM2Mjk4MjE0MUY2RTAwMDdCRkE1MyAv
KiBXZWJQcmVmZXJlbmNlc0ludGVybmFsRGVidWdGZWF0dXJlcy5jcHAgKi8sCiAJCQkJN0NCMTAw
RUUxRkEyRDc0QTAwMTcyOUVFIC8qIFdlYlByZWZlcmVuY2VzS2V5cy5jcHAgKi8sCiAJCQkJN0NC
MTAwRUYxRkEyRDc0QjAwMTcyOUVFIC8qIFdlYlByZWZlcmVuY2VzS2V5cy5oICovLApAQCAtMTMx
NjEsNiArMTMxNjQsNyBAQAogCQkJCTJEOTJBNzhEMjEyQjZBQjEwMEY0OTNGRCAvKiBXZWJQbGF0
Zm9ybVRvdWNoUG9pbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQ5MTM0NEUyMTJDRjlGMDAw
MTI4QUZEIC8qIFdlYlBsdWdpbkluZm9Qcm92aWRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3
Q0VCMDBERDFGQTY5QUJFMDA2NTQ3M0IgLyogV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWxGZWF0
dXJlcy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk3Q0YxOTA3MTI1MzM4RjM4MDBBQkUxODMgLyog
V2ViUHJlZmVyZW5jZXNHZXR0ZXJTZXR0ZXJzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTMxQjM2
Mjk5MjE0MUY2RTgwMDdCRkE1MyAvKiBXZWJQcmVmZXJlbmNlc0ludGVybmFsRGVidWdGZWF0dXJl
cy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3Q0IxMDBGMTFGQTM4NThBMDAxNzI5RUUgLyogV2Vi
UHJlZmVyZW5jZXNLZXlzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdDQjEwMEY0MUZBMzg1OTIw
MDE3MjlFRSAvKiBXZWJQcmVmZXJlbmNlc1N0b3JlRGVmYXVsdHNNYXAuY3BwIGluIFNvdXJjZXMg
Ki8sCkluZGV4OiBUb29scy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyNjgzMzApCisrKyBUb29scy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAg
LTEsMyArMSw5MiBAQAorMjAyMC0xMC0xMSAgU2FtIFdlaW5pZyAgPHdlaW5pZ0BhcHBsZS5jb20+
CisKKyAgICAgICAgW1ByZWZlcmVuY2VzXSBJbnRyb2R1Y2Ugc3RyaW5nIGJhc2VkIFNQSSBmb3Ig
V0tQcmVmZXJlbmNlcyB0byBhbGxvdyB0ZXN0cyB0byBjaGFuZ2UgaW50ZXJuYWwgYmVoYXZpb3Ig
d2l0aG91dCBhbHdheXMgYWRkaW5nIGFkZGl0aW9uYWwgU1BJCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTc1ODIKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbV0lQXQorCisgICAgICAgICogV2ViS2l0VGVz
dFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVy
Ojppbml0aWFsaXplKToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OmNyZWF0ZVdlYlZp
ZXdXaXRoT3B0aW9ucyk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpyZXNldFByZWZl
cmVuY2VzVG9Db25zaXN0ZW50VmFsdWVzKToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6
OnJlc2V0U3RhdGVUb0NvbnNpc3RlbnRWYWx1ZXMpOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJv
bGxlcjo6cGxhdGZvcm1SZXNldFN0YXRlVG9Db25zaXN0ZW50VmFsdWVzKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmg6CisgICAgICAgICogV2Vi
S2l0VGVzdFJ1bm5lci9UZXN0T3B0aW9ucy5jcHA6CisgICAgICAgIChXVFI6OmJvb2xEZWZhdWx0
c01hcCk6CisgICAgICAgIChXVFI6OmRvdWJsZURlZmF1bHRzTWFwKToKKyAgICAgICAgKFdUUjo6
c3RyaW5nRGVmYXVsdHNNYXApOgorICAgICAgICAoV1RSOjpzdHJpbmdWZWN0b3JEZWZhdWx0c01h
cCk6CisgICAgICAgIChXVFI6OmtleVR5cGVNYXApOgorICAgICAgICAoV1RSOjpUZXN0T3B0aW9u
czo6Ym9vbFdLUHJlZmVyZW5jZXMgY29uc3QpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIv
VGVzdE9wdGlvbnMuaDoKKyAgICAgICAgKFdUUjo6VGVzdE9wdGlvbnM6OmFsbG93c0xpbmtQcmV2
aWV3IGNvbnN0KToKKyAgICAgICAgKFdUUjo6VGVzdE9wdGlvbnM6OmR1bXBKU0NvbnNvbGVMb2dJ
blN0ZEVyciBjb25zdCk6CisgICAgICAgIChXVFI6OlRlc3RPcHRpb25zOjplbmFibGVBdHRhY2ht
ZW50RWxlbWVudCBjb25zdCk6CisgICAgICAgIChXVFI6OlRlc3RPcHRpb25zOjplbmFibGVJbkFw
cEJyb3dzZXJQcml2YWN5IGNvbnN0KToKKyAgICAgICAgKFdUUjo6VGVzdE9wdGlvbnM6Omlnbm9y
ZVN5bmNocm9ub3VzTWVzc2FnaW5nVGltZW91dHMgY29uc3QpOgorICAgICAgICAoV1RSOjpUZXN0
T3B0aW9uczo6aWdub3Jlc1ZpZXdwb3J0U2NhbGVMaW1pdHMgY29uc3QpOgorICAgICAgICAoV1RS
OjpUZXN0T3B0aW9uczo6aXNBcHBCb3VuZFdlYlZpZXcgY29uc3QpOgorICAgICAgICAoV1RSOjpU
ZXN0T3B0aW9uczo6cHVuY2hPdXRXaGl0ZUJhY2tncm91bmRzSW5EYXJrTW9kZSBjb25zdCk6Cisg
ICAgICAgIChXVFI6OlRlc3RPcHRpb25zOjpydW5TaW5nbHkgY29uc3QpOgorICAgICAgICAoV1RS
OjpUZXN0T3B0aW9uczo6c2hvdWxkSGFuZGxlUnVuT3BlblBhbmVsIGNvbnN0KToKKyAgICAgICAg
KFdUUjo6VGVzdE9wdGlvbnM6OnNob3VsZFByZXNlbnRQb3BvdmVycyBjb25zdCk6CisgICAgICAg
IChXVFI6OlRlc3RPcHRpb25zOjpzaG91bGRTaG93U3BlbGxDaGVja2luZ0RvdHMgY29uc3QpOgor
ICAgICAgICAoV1RSOjpUZXN0T3B0aW9uczo6c2hvdWxkU2hvd1RvdWNoZXMgY29uc3QpOgorICAg
ICAgICAoV1RSOjpUZXN0T3B0aW9uczo6c2hvdWxkU2hvd1dlYlZpZXcgY29uc3QpOgorICAgICAg
ICAoV1RSOjpUZXN0T3B0aW9uczo6dXNlQ2hhcmFjdGVyU2VsZWN0aW9uR3JhbnVsYXJpdHkgY29u
c3QpOgorICAgICAgICAoV1RSOjpUZXN0T3B0aW9uczo6dXNlRGF0YURldGVjdGlvbiBjb25zdCk6
CisgICAgICAgIChXVFI6OlRlc3RPcHRpb25zOjp1c2VFcGhlbWVyYWxTZXNzaW9uIGNvbnN0KToK
KyAgICAgICAgKFdUUjo6VGVzdE9wdGlvbnM6OnVzZUZsZXhpYmxlVmlld3BvcnQgY29uc3QpOgor
ICAgICAgICAoV1RSOjpUZXN0T3B0aW9uczo6dXNlUmVtb3RlTGF5ZXJUcmVlIGNvbnN0KToKKyAg
ICAgICAgKFdUUjo6VGVzdE9wdGlvbnM6OnVzZVRocmVhZGVkU2Nyb2xsaW5nIGNvbnN0KToKKyAg
ICAgICAgKFdUUjo6VGVzdE9wdGlvbnM6OmRldmljZVNjYWxlRmFjdG9yIGNvbnN0KToKKyAgICAg
ICAgKFdUUjo6VGVzdE9wdGlvbnM6OnZpZXdXaWR0aCBjb25zdCk6CisgICAgICAgIChXVFI6OlRl
c3RPcHRpb25zOjphZGRpdGlvbmFsU3VwcG9ydGVkSW1hZ2VUeXBlcyBjb25zdCk6CisgICAgICAg
IChXVFI6OlRlc3RPcHRpb25zOjphcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIgY29uc3QpOgor
ICAgICAgICAoV1RSOjpUZXN0T3B0aW9uczo6Y29udGVudE1vZGUgY29uc3QpOgorICAgICAgICAo
V1RSOjpUZXN0T3B0aW9uczo6anNjT3B0aW9ucyBjb25zdCk6CisgICAgICAgIChXVFI6OlRlc3RP
cHRpb25zOjpzdGFuZGFsb25lV2ViQXBwbGljYXRpb25VUkwgY29uc3QpOgorICAgICAgICAoV1RS
OjpUZXN0T3B0aW9uczo6dXNlQWNjZWxlcmF0ZWREcmF3aW5nIGNvbnN0KTogRGVsZXRlZC4KKyAg
ICAgICAgKFdUUjo6VGVzdE9wdGlvbnM6OnVzZU1vY2tTY3JvbGxiYXJzIGNvbnN0KTogRGVsZXRl
ZC4KKyAgICAgICAgKFdUUjo6VGVzdE9wdGlvbnM6Om5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzIGNv
bnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdUUjo6VGVzdE9wdGlvbnM6OmVuYWJsZUludGVyc2Vj
dGlvbk9ic2VydmVyIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdUUjo6VGVzdE9wdGlvbnM6
OmVuYWJsZU1lbnVJdGVtRWxlbWVudCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXVFI6OlRl
c3RPcHRpb25zOjplbmFibGVLZXlnZW5FbGVtZW50IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAg
KFdUUjo6VGVzdE9wdGlvbnM6OmVuYWJsZU1vZGVybk1lZGlhQ29udHJvbHMgY29uc3QpOiBEZWxl
dGVkLgorICAgICAgICAoV1RSOjpUZXN0T3B0aW9uczo6ZW5hYmxlUG9pbnRlckxvY2sgY29uc3Qp
OiBEZWxldGVkLgorICAgICAgICAoV1RSOjpUZXN0T3B0aW9uczo6ZW5hYmxlV2ViQXV0aGVudGlj
YXRpb24gY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV1RSOjpUZXN0T3B0aW9uczo6ZW5hYmxl
V2ViQXV0aGVudGljYXRpb25Mb2NhbEF1dGhlbnRpY2F0b3IgY29uc3QpOiBEZWxldGVkLgorICAg
ICAgICAoV1RSOjpUZXN0T3B0aW9uczo6ZW5hYmxlSW5zcGVjdG9yQWRkaXRpb25zIGNvbnN0KTog
RGVsZXRlZC4KKyAgICAgICAgKFdUUjo6VGVzdE9wdGlvbnM6OmFsbG93Q3Jvc3NPcmlnaW5TdWJy
ZXNvdXJjZXNUb0Fza0ZvckNyZWRlbnRpYWxzIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdU
Ujo6VGVzdE9wdGlvbnM6OmRvbVBhc3RlQWxsb3dlZCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAg
IChXVFI6OlRlc3RPcHRpb25zOjplbmFibGVDb2xvckZpbHRlciBjb25zdCk6IERlbGV0ZWQuCisg
ICAgICAgIChXVFI6OlRlc3RPcHRpb25zOjpjaGVja0ZvcldvcmxkTGVha3MgY29uc3QpOiBEZWxl
dGVkLgorICAgICAgICAoV1RSOjpUZXN0T3B0aW9uczo6c2hvdWxkSWdub3JlTWV0YVZpZXdwb3J0
IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdUUjo6VGVzdE9wdGlvbnM6OmVuYWJsZVNlcnZp
Y2VDb250cm9scyBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXVFI6OlRlc3RPcHRpb25zOjpl
bmFibGVBcHBOYXAgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV1RSOjpUZXN0T3B0aW9uczo6
ZW5hYmxlQmFja0ZvcndhcmRDYWNoZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXVFI6OlRl
c3RPcHRpb25zOjplbmFibGVDYXB0dXJlVmlkZW9JblVJUHJvY2VzcyBjb25zdCk6IERlbGV0ZWQu
CisgICAgICAgIChXVFI6OlRlc3RPcHRpb25zOjplbmFibGVDYXB0dXJlVmlkZW9JbkdQVVByb2Nl
c3MgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV1RSOjpUZXN0T3B0aW9uczo6ZW5hYmxlQ2Fw
dHVyZUF1ZGlvSW5VSVByb2Nlc3MgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV1RSOjpUZXN0
T3B0aW9uczo6ZW5hYmxlQ2FwdHVyZUF1ZGlvSW5HUFVQcm9jZXNzIGNvbnN0KTogRGVsZXRlZC4K
KyAgICAgICAgKFdUUjo6VGVzdE9wdGlvbnM6OmFsbG93VG9wTmF2aWdhdGlvblRvRGF0YVVSTHMg
Y29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvY29jb2EvVGVzdENv
bnRyb2xsZXJDb2NvYS5tbToKKyAgICAgICAgKFdUUjo6aW5pdGlhbGl6ZVdlYlZpZXdDb25maWd1
cmF0aW9uKToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtQ3JlYXRlV2Vi
Vmlldyk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpjb2NvYVJlc2V0U3RhdGVUb0Nv
bnNpc3RlbnRWYWx1ZXMpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvZ3RrL1Rlc3RDb250
cm9sbGVyR3RrLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtUmVz
ZXRTdGF0ZVRvQ29uc2lzdGVudFZhbHVlcyk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9p
b3MvVGVzdENvbnRyb2xsZXJJT1MubW06CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpw
bGF0Zm9ybVJlc2V0UHJlZmVyZW5jZXNUb0NvbnNpc3RlbnRWYWx1ZXMpOgorICAgICAgICAoV1RS
OjpUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1Db25maWd1cmVWaWV3Rm9yVGVzdCk6CisgICAgICAg
ICogV2ViS2l0VGVzdFJ1bm5lci93aW4vVGVzdENvbnRyb2xsZXJXaW4uY3BwOgorICAgICAgICAo
V1RSOjpUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1SZXNldFN0YXRlVG9Db25zaXN0ZW50VmFsdWVz
KToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL3dwZS9UZXN0Q29udHJvbGxlcldQRS5jcHA6
CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybVJlc2V0U3RhdGVUb0NvbnNp
c3RlbnRWYWx1ZXMpOgorCiAyMDIwLTEwLTEwICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNv
bT4KIAogICAgICAgICBSRUdSRVNTSU9OIChyMjY3NzYxKTogZWRpdGluZy9tYWMvc3BlbGxpbmcv
YXV0b2NvcnJlY3Rpb24tY29udHJhY3Rpb24uaHRtbCBpcyBhIGNvbnN0YW50IHRpbWVvdXQgb24g
bWFjT1Mgd2syIERlYnVnCkluZGV4OiBUb29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9s
bGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9s
bGVyLmNwcAkocmV2aXNpb24gMjY4MzMwKQorKysgVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0
Q29udHJvbGxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ2MywxNCArNDYzLDE0IEBAIHZvaWQg
VGVzdENvbnRyb2xsZXI6OmluaXRpYWxpemUoaW50IGFyZ2MKICAgICBtX2djQmV0d2VlblRlc3Rz
ID0gb3B0aW9ucy5nY0JldHdlZW5UZXN0czsKICAgICBtX3Nob3VsZER1bXBQaXhlbHNGb3JBbGxU
ZXN0cyA9IG9wdGlvbnMuc2hvdWxkRHVtcFBpeGVsc0ZvckFsbFRlc3RzOwogICAgIG1fZm9yY2VD
b21wbGV4VGV4dCA9IG9wdGlvbnMuZm9yY2VDb21wbGV4VGV4dDsKLSAgICBtX3Nob3VsZFVzZUFj
Y2VsZXJhdGVkRHJhd2luZyA9IG9wdGlvbnMuc2hvdWxkVXNlQWNjZWxlcmF0ZWREcmF3aW5nOwog
ICAgIG1fcGF0aHMgPSBvcHRpb25zLnBhdGhzOwogICAgIG1fYWxsb3dlZEhvc3RzID0gb3B0aW9u
cy5hbGxvd2VkSG9zdHM7CiAgICAgbV9jaGVja0ZvcldvcmxkTGVha3MgPSBvcHRpb25zLmNoZWNr
Rm9yV29ybGRMZWFrczsKICAgICBtX2FsbG93QW55SFRUUFNDZXJ0aWZpY2F0ZUZvckFsbG93ZWRI
b3N0cyA9IG9wdGlvbnMuYWxsb3dBbnlIVFRQU0NlcnRpZmljYXRlRm9yQWxsb3dlZEhvc3RzOwot
ICAgIAorCiAgICAgbV9nbG9iYWxGZWF0dXJlcy5pbnRlcm5hbERlYnVnRmVhdHVyZXMgPSBvcHRp
b25zLmludGVybmFsRmVhdHVyZXM7CiAgICAgbV9nbG9iYWxGZWF0dXJlcy5leHBlcmltZW50YWxG
ZWF0dXJlcyA9IG9wdGlvbnMuZXhwZXJpbWVudGFsRmVhdHVyZXM7CisgICAgbV9nbG9iYWxGZWF0
dXJlcy5ib29sRmVhdHVyZXMuaW5zZXJ0KHsgInVzZUFjY2VsZXJhdGVkRHJhd2luZyIsIG9wdGlv
bnMuc2hvdWxkVXNlQWNjZWxlcmF0ZWREcmF3aW5nIH0pOwogICAgIG1fZ2xvYmFsRmVhdHVyZXMu
Ym9vbEZlYXR1cmVzLmluc2VydCh7ICJ1c2VSZW1vdGVMYXllclRyZWUiLCBvcHRpb25zLnNob3Vs
ZFVzZVJlbW90ZUxheWVyVHJlZSB9KTsKICAgICBtX2dsb2JhbEZlYXR1cmVzLmJvb2xGZWF0dXJl
cy5pbnNlcnQoeyAic2hvdWxkU2hvd1dlYlZpZXciLCBvcHRpb25zLnNob3VsZFNob3dXZWJWaWV3
IH0pOwogICAgIG1fZ2xvYmFsRmVhdHVyZXMuYm9vbEZlYXR1cmVzLmluc2VydCh7ICJzaG91bGRT
aG93VG91Y2hlcyIsIG9wdGlvbnMuc2hvdWxkU2hvd1RvdWNoZXMgfSk7CkBAIC02NTQsNiArNjU0
LDggQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6Y3JlYXRlV2ViVmlld1dpdGhPcAogICAgIC8vIEZJ
WE1FOiBNaWdyYXRlIHRoZXNlIHByZWZlcmVuY2VzIHRvIFdLQ29udGV4dENvbmZpZ3VyYXRpb25S
ZWYuCiAgICAgcmVzZXRQcmVmZXJlbmNlc1RvQ29uc2lzdGVudFZhbHVlcyhvcHRpb25zKTsKIAor
ICAgIFdLSFRUUENvb2tpZVN0b3JlRGVsZXRlQWxsQ29va2llcyhXS1dlYnNpdGVEYXRhU3RvcmVH
ZXRIVFRQQ29va2llU3RvcmUod2Vic2l0ZURhdGFTdG9yZSgpKSwgbnVsbHB0ciwgbnVsbHB0cik7
CisKICAgICBwbGF0Zm9ybUNyZWF0ZVdlYlZpZXcoY29uZmlndXJhdGlvbi5nZXQoKSwgb3B0aW9u
cyk7CiAgICAgV0tQYWdlVUlDbGllbnRWMTQgcGFnZVVJQ2xpZW50ID0gewogICAgICAgICB7IDE0
LCBtX21haW5XZWJWaWV3LmdldCgpIH0sCkBAIC04NDEsMzcgKzg0MywyMyBAQCB2b2lkIFRlc3RD
b250cm9sbGVyOjpyZXNldFByZWZlcmVuY2VzVG9DCiAgICAgV0tQcmVmZXJlbmNlc1Jlc2V0QWxs
SW50ZXJuYWxEZWJ1Z0ZlYXR1cmVzKHByZWZlcmVuY2VzKTsKIAogICAgIC8vIFNldCBpbnRlcm5h
bCBmZWF0dXJlcyB0aGF0IGhhdmUgZGlmZmVyZW50IGRlZmF1bHQgdmFsdWVzIGZvciB0ZXN0aW5n
LgotCiAgICAgV0tQcmVmZXJlbmNlc1NldEludGVybmFsRGVidWdGZWF0dXJlRm9yS2V5KHByZWZl
cmVuY2VzLCBmYWxzZSwgdG9XSygiQXN5bmNPdmVyZmxvd1Njcm9sbGluZ0VuYWJsZWQiKS5nZXQo
KSk7CiAgICAgV0tQcmVmZXJlbmNlc1NldEludGVybmFsRGVidWdGZWF0dXJlRm9yS2V5KHByZWZl
cmVuY2VzLCBmYWxzZSwgdG9XSygiQXN5bmNGcmFtZVNjcm9sbGluZ0VuYWJsZWQiKS5nZXQoKSk7
Ci0KLSNpZiBFTkFCTEUoSU5QVVRfVFlQRV9EQVRFKQogICAgIFdLUHJlZmVyZW5jZXNTZXRJbnRl
cm5hbERlYnVnRmVhdHVyZUZvcktleShwcmVmZXJlbmNlcywgdHJ1ZSwgdG9XSygiSW5wdXRUeXBl
RGF0ZUVuYWJsZWQiKS5nZXQoKSk7Ci0jZW5kaWYKLSNpZiBFTkFCTEUoSU5QVVRfVFlQRV9EQVRF
VElNRUxPQ0FMKQogICAgIFdLUHJlZmVyZW5jZXNTZXRJbnRlcm5hbERlYnVnRmVhdHVyZUZvcktl
eShwcmVmZXJlbmNlcywgdHJ1ZSwgdG9XSygiSW5wdXRUeXBlRGF0ZVRpbWVMb2NhbEVuYWJsZWQi
KS5nZXQoKSk7Ci0jZW5kaWYKLSNpZiBFTkFCTEUoSU5QVVRfVFlQRV9NT05USCkKICAgICBXS1By
ZWZlcmVuY2VzU2V0SW50ZXJuYWxEZWJ1Z0ZlYXR1cmVGb3JLZXkocHJlZmVyZW5jZXMsIHRydWUs
IHRvV0soIklucHV0VHlwZU1vbnRoRW5hYmxlZCIpLmdldCgpKTsKLSNlbmRpZgotI2lmIEVOQUJM
RShJTlBVVF9UWVBFX1RJTUUpCiAgICAgV0tQcmVmZXJlbmNlc1NldEludGVybmFsRGVidWdGZWF0
dXJlRm9yS2V5KHByZWZlcmVuY2VzLCB0cnVlLCB0b1dLKCJJbnB1dFR5cGVUaW1lRW5hYmxlZCIp
LmdldCgpKTsKLSNlbmRpZgotI2lmIEVOQUJMRShJTlBVVF9UWVBFX1dFRUspCiAgICAgV0tQcmVm
ZXJlbmNlc1NldEludGVybmFsRGVidWdGZWF0dXJlRm9yS2V5KHByZWZlcmVuY2VzLCB0cnVlLCB0
b1dLKCJJbnB1dFR5cGVXZWVrRW5hYmxlZCIpLmdldCgpKTsKLSNlbmRpZgorICAgIFdLUHJlZmVy
ZW5jZXNTZXRJbnRlcm5hbERlYnVnRmVhdHVyZUZvcktleShwcmVmZXJlbmNlcywgZmFsc2UsIHRv
V0soIlNwZWFrZXJTZWxlY3Rpb25SZXF1aXJlc1VzZXJHZXN0dXJlIikuZ2V0KCkpOwogCiAgICAg
Zm9yIChjb25zdCBhdXRvJiBba2V5LCB2YWx1ZV0gIDogb3B0aW9ucy5pbnRlcm5hbERlYnVnRmVh
dHVyZXMoKSkKICAgICAgICAgV0tQcmVmZXJlbmNlc1NldEludGVybmFsRGVidWdGZWF0dXJlRm9y
S2V5KHByZWZlcmVuY2VzLCB2YWx1ZSwgdG9XSyhrZXkpLmdldCgpKTsKIAotI2lmIFBMQVRGT1JN
KENPQ09BKQotICAgIFdLUHJlZmVyZW5jZXNTZXRDYXB0dXJlVmlkZW9JblVJUHJvY2Vzc0VuYWJs
ZWQocHJlZmVyZW5jZXMsIG9wdGlvbnMuZW5hYmxlQ2FwdHVyZVZpZGVvSW5VSVByb2Nlc3MoKSk7
Ci0gICAgV0tQcmVmZXJlbmNlc1NldENhcHR1cmVWaWRlb0luR1BVUHJvY2Vzc0VuYWJsZWQocHJl
ZmVyZW5jZXMsIG9wdGlvbnMuZW5hYmxlQ2FwdHVyZVZpZGVvSW5HUFVQcm9jZXNzKCkpOwotICAg
IFdLUHJlZmVyZW5jZXNTZXRDYXB0dXJlQXVkaW9JblVJUHJvY2Vzc0VuYWJsZWQocHJlZmVyZW5j
ZXMsIG9wdGlvbnMuZW5hYmxlQ2FwdHVyZUF1ZGlvSW5VSVByb2Nlc3MoKSk7Ci0gICAgV0tQcmVm
ZXJlbmNlc1NldENhcHR1cmVBdWRpb0luR1BVUHJvY2Vzc0VuYWJsZWQocHJlZmVyZW5jZXMsIG9w
dGlvbnMuZW5hYmxlQ2FwdHVyZUF1ZGlvSW5HUFVQcm9jZXNzKCkpOwotI2VuZGlmCisgICAgZm9y
IChjb25zdCBhdXRvJiBba2V5LCB2YWx1ZV0gOiBvcHRpb25zLmJvb2xXS1ByZWZlcmVuY2VzKCkp
CisgICAgICAgIFdLUHJlZmVyZW5jZXNTZXRCb29sVmFsdWVGb3JLZXkocHJlZmVyZW5jZXMsIHZh
bHVlLCB0b1dLKGtleSkuZ2V0KCkpOworCisgICAgLy8gRklYTUU6IENvbnZlcnQgdGhlc2UgdG8g
ZGVmYXVsdCB2YWx1ZXMgZm9yIFRlc3RPcHRpb25zLgogICAgIFdLUHJlZmVyZW5jZXNTZXRQcm9j
ZXNzU3dhcE9uTmF2aWdhdGlvbkVuYWJsZWQocHJlZmVyZW5jZXMsIG9wdGlvbnMuY29udGV4dE9w
dGlvbnMoKS5zaG91bGRFbmFibGVQcm9jZXNzU3dhcE9uTmF2aWdhdGlvbigpKTsKLSAgICBXS1By
ZWZlcmVuY2VzU2V0UGFnZVZpc2liaWxpdHlCYXNlZFByb2Nlc3NTdXBwcmVzc2lvbkVuYWJsZWQo
cHJlZmVyZW5jZXMsIG9wdGlvbnMuZW5hYmxlQXBwTmFwKCkpOwogICAgIFdLUHJlZmVyZW5jZXNT
ZXRPZmZsaW5lV2ViQXBwbGljYXRpb25DYWNoZUVuYWJsZWQocHJlZmVyZW5jZXMsIHRydWUpOwog
ICAgIFdLUHJlZmVyZW5jZXNTZXRTdWJwaXhlbEFudGlhbGlhc2VkTGF5ZXJUZXh0RW5hYmxlZChw
cmVmZXJlbmNlcywgZmFsc2UpOwogICAgIFdLUHJlZmVyZW5jZXNTZXRYU1NBdWRpdG9yRW5hYmxl
ZChwcmVmZXJlbmNlcywgZmFsc2UpOwpAQCAtODgyLDEzICs4NzAsOSBAQCB2b2lkIFRlc3RDb250
cm9sbGVyOjpyZXNldFByZWZlcmVuY2VzVG9DCiAgICAgV0tQcmVmZXJlbmNlc1NldEphdmFTY3Jp
cHRSdW50aW1lRmxhZ3MocHJlZmVyZW5jZXMsIGtXS0phdmFTY3JpcHRSdW50aW1lRmxhZ3NBbGxF
bmFibGVkKTsKICAgICBXS1ByZWZlcmVuY2VzU2V0SmF2YVNjcmlwdENhbk9wZW5XaW5kb3dzQXV0
b21hdGljYWxseShwcmVmZXJlbmNlcywgdHJ1ZSk7CiAgICAgV0tQcmVmZXJlbmNlc1NldEphdmFT
Y3JpcHRDYW5BY2Nlc3NDbGlwYm9hcmQocHJlZmVyZW5jZXMsIHRydWUpOwotICAgIFdLUHJlZmVy
ZW5jZXNTZXRET01QYXN0ZUFsbG93ZWQocHJlZmVyZW5jZXMsIG9wdGlvbnMuZG9tUGFzdGVBbGxv
d2VkKCkpOwogICAgIFdLUHJlZmVyZW5jZXNTZXRVbml2ZXJzYWxBY2Nlc3NGcm9tRmlsZVVSTHNB
bGxvd2VkKHByZWZlcmVuY2VzLCB0cnVlKTsKICAgICBXS1ByZWZlcmVuY2VzU2V0RmlsZUFjY2Vz
c0Zyb21GaWxlVVJMc0FsbG93ZWQocHJlZmVyZW5jZXMsIHRydWUpOwotICAgIFdLUHJlZmVyZW5j
ZXNTZXRUb3BOYXZpZ2F0aW9uVG9EYXRhVVJMc0FsbG93ZWQocHJlZmVyZW5jZXMsIG9wdGlvbnMu
YWxsb3dUb3BOYXZpZ2F0aW9uVG9EYXRhVVJMcygpKTsKLSNpZiBFTkFCTEUoRlVMTFNDUkVFTl9B
UEkpCiAgICAgV0tQcmVmZXJlbmNlc1NldEZ1bGxTY3JlZW5FbmFibGVkKHByZWZlcmVuY2VzLCB0
cnVlKTsKLSNlbmRpZgogICAgIFdLUHJlZmVyZW5jZXNTZXRBc3luY2hyb25vdXNQbHVnaW5Jbml0
aWFsaXphdGlvbkVuYWJsZWQocHJlZmVyZW5jZXMsIGZhbHNlKTsKICAgICBXS1ByZWZlcmVuY2Vz
U2V0QXN5bmNocm9ub3VzUGx1Z2luSW5pdGlhbGl6YXRpb25FbmFibGVkRm9yQWxsUGx1Z2lucyhw
cmVmZXJlbmNlcywgZmFsc2UpOwogICAgIFdLUHJlZmVyZW5jZXNTZXRBcnRpZmljaWFsUGx1Z2lu
SW5pdGlhbGl6YXRpb25EZWxheUVuYWJsZWQocHJlZmVyZW5jZXMsIGZhbHNlKTsKQEAgLTg5Nywy
MiArODgxLDcgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6cmVzZXRQcmVmZXJlbmNlc1RvQwogICAg
IFdLUHJlZmVyZW5jZXNTZXREYXRhVHJhbnNmZXJJdGVtc0VuYWJsZWQocHJlZmVyZW5jZXMsIHRy
dWUpOwogICAgIFdLUHJlZmVyZW5jZXNTZXRDdXN0b21QYXN0ZWJvYXJkRGF0YUVuYWJsZWQocHJl
ZmVyZW5jZXMsIHRydWUpOwogICAgIFdLUHJlZmVyZW5jZXNTZXREaWFsb2dFbGVtZW50RW5hYmxl
ZChwcmVmZXJlbmNlcywgdHJ1ZSk7Ci0KLSAgICBXS1ByZWZlcmVuY2VzU2V0TW9ja1Njcm9sbGJh
cnNFbmFibGVkKHByZWZlcmVuY2VzLCBvcHRpb25zLnVzZU1vY2tTY3JvbGxiYXJzKCkpOwotICAg
IFdLUHJlZmVyZW5jZXNTZXROZWVkc1NpdGVTcGVjaWZpY1F1aXJrcyhwcmVmZXJlbmNlcywgb3B0
aW9ucy5uZWVkc1NpdGVTcGVjaWZpY1F1aXJrcygpKTsKLSAgICBXS1ByZWZlcmVuY2VzU2V0QXR0
YWNobWVudEVsZW1lbnRFbmFibGVkKHByZWZlcmVuY2VzLCBvcHRpb25zLmVuYWJsZUF0dGFjaG1l
bnRFbGVtZW50KCkpOwotICAgIFdLUHJlZmVyZW5jZXNTZXRNZW51SXRlbUVsZW1lbnRFbmFibGVk
KHByZWZlcmVuY2VzLCBvcHRpb25zLmVuYWJsZU1lbnVJdGVtRWxlbWVudCgpKTsKLSAgICBXS1By
ZWZlcmVuY2VzU2V0S2V5Z2VuRWxlbWVudEVuYWJsZWQocHJlZmVyZW5jZXMsIG9wdGlvbnMuZW5h
YmxlS2V5Z2VuRWxlbWVudCgpKTsKLSAgICBXS1ByZWZlcmVuY2VzU2V0TW9kZXJuTWVkaWFDb250
cm9sc0VuYWJsZWQocHJlZmVyZW5jZXMsIG9wdGlvbnMuZW5hYmxlTW9kZXJuTWVkaWFDb250cm9s
cygpKTsKLSAgICBXS1ByZWZlcmVuY2VzU2V0V2ViQXV0aGVudGljYXRpb25FbmFibGVkKHByZWZl
cmVuY2VzLCBvcHRpb25zLmVuYWJsZVdlYkF1dGhlbnRpY2F0aW9uKCkpOwotICAgIFdLUHJlZmVy
ZW5jZXNTZXRXZWJBdXRoZW50aWNhdGlvbkxvY2FsQXV0aGVudGljYXRvckVuYWJsZWQocHJlZmVy
ZW5jZXMsIG9wdGlvbnMuZW5hYmxlV2ViQXV0aGVudGljYXRpb25Mb2NhbEF1dGhlbnRpY2F0b3Io
KSk7Ci0gICAgV0tQcmVmZXJlbmNlc1NldEFsbG93Q3Jvc3NPcmlnaW5TdWJyZXNvdXJjZXNUb0Fz
a0ZvckNyZWRlbnRpYWxzKHByZWZlcmVuY2VzLCBvcHRpb25zLmFsbG93Q3Jvc3NPcmlnaW5TdWJy
ZXNvdXJjZXNUb0Fza0ZvckNyZWRlbnRpYWxzKCkpOwotICAgIFdLUHJlZmVyZW5jZXNTZXRDb2xv
ckZpbHRlckVuYWJsZWQocHJlZmVyZW5jZXMsIG9wdGlvbnMuZW5hYmxlQ29sb3JGaWx0ZXIoKSk7
Ci0gICAgV0tQcmVmZXJlbmNlc1NldFB1bmNoT3V0V2hpdGVCYWNrZ3JvdW5kc0luRGFya01vZGUo
cHJlZmVyZW5jZXMsIG9wdGlvbnMucHVuY2hPdXRXaGl0ZUJhY2tncm91bmRzSW5EYXJrTW9kZSgp
KTsKLSAgICBXS1ByZWZlcmVuY2VzU2V0UGFnZUNhY2hlRW5hYmxlZChwcmVmZXJlbmNlcywgb3B0
aW9ucy5lbmFibGVCYWNrRm9yd2FyZENhY2hlKCkpOwotCiAgICAgV0tQcmVmZXJlbmNlc1NldERl
ZmF1bHRUZXh0RW5jb2RpbmdOYW1lKHByZWZlcmVuY2VzLCB0b1dLKCJJU08tODg1OS0xIikuZ2V0
KCkpOwotCiAgICAgV0tQcmVmZXJlbmNlc1NldE1pbmltdW1Gb250U2l6ZShwcmVmZXJlbmNlcywg
MCk7CiAgICAgV0tQcmVmZXJlbmNlc1NldFN0YW5kYXJkRm9udEZhbWlseShwcmVmZXJlbmNlcywg
dG9XSygiVGltZXMiKS5nZXQoKSk7CiAgICAgV0tQcmVmZXJlbmNlc1NldEN1cnNpdmVGb250RmFt
aWx5KHByZWZlcmVuY2VzLCB0b1dLKCJBcHBsZSBDaGFuY2VyeSIpLmdldCgpKTsKQEAgLTkyMiwy
MSArODkxLDEzIEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OnJlc2V0UHJlZmVyZW5jZXNUb0MKICAg
ICBXS1ByZWZlcmVuY2VzU2V0U2Fuc1NlcmlmRm9udEZhbWlseShwcmVmZXJlbmNlcywgdG9XSygi
SGVsdmV0aWNhIikuZ2V0KCkpOwogICAgIFdLUHJlZmVyZW5jZXNTZXRTZXJpZkZvbnRGYW1pbHko
cHJlZmVyZW5jZXMsIHRvV0soIlRpbWVzIikuZ2V0KCkpOwogICAgIFdLUHJlZmVyZW5jZXNTZXRB
c3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZChwcmVmZXJlbmNlcywgZmFsc2UpOwotI2lm
IEVOQUJMRShNRURJQV9TT1VSQ0UpCiAgICAgV0tQcmVmZXJlbmNlc1NldE1lZGlhU291cmNlRW5h
YmxlZChwcmVmZXJlbmNlcywgdHJ1ZSk7CiAgICAgV0tQcmVmZXJlbmNlc1NldFNvdXJjZUJ1ZmZl
ckNoYW5nZVR5cGVFbmFibGVkKHByZWZlcmVuY2VzLCB0cnVlKTsKLSNlbmRpZgogICAgIFdLUHJl
ZmVyZW5jZXNTZXRIaWdobGlnaHRBUElFbmFibGVkKHByZWZlcmVuY2VzLCB0cnVlKTsKLQogICAg
IFdLUHJlZmVyZW5jZXNTZXRIaWRkZW5QYWdlRE9NVGltZXJUaHJvdHRsaW5nRW5hYmxlZChwcmVm
ZXJlbmNlcywgZmFsc2UpOwogICAgIFdLUHJlZmVyZW5jZXNTZXRIaWRkZW5QYWdlQ1NTQW5pbWF0
aW9uU3VzcGVuc2lvbkVuYWJsZWQocHJlZmVyZW5jZXMsIGZhbHNlKTsKLQotICAgIFdLUHJlZmVy
ZW5jZXNTZXRBY2NlbGVyYXRlZERyYXdpbmdFbmFibGVkKHByZWZlcmVuY2VzLCBtX3Nob3VsZFVz
ZUFjY2VsZXJhdGVkRHJhd2luZyB8fCBvcHRpb25zLnVzZUFjY2VsZXJhdGVkRHJhd2luZygpKTsK
LSAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIGJlIHRlc3RpbmcgdGhlIGRlZmF1bHQuCi0gICAgV0tQ
cmVmZXJlbmNlc1NldFN0b3JhZ2VCbG9ja2luZ1BvbGljeShwcmVmZXJlbmNlcywga1dLQWxsb3dB
bGxTdG9yYWdlKTsKLQorICAgIFdLUHJlZmVyZW5jZXNTZXRTdG9yYWdlQmxvY2tpbmdQb2xpY3ko
cHJlZmVyZW5jZXMsIGtXS0FsbG93QWxsU3RvcmFnZSk7IC8vIEZJWE1FOiBXZSBzaG91bGQgYmUg
dGVzdGluZyB0aGUgZGVmYXVsdC4KICAgICBXS1ByZWZlcmVuY2VzU2V0SXNOU1VSTFNlc3Npb25X
ZWJTb2NrZXRFbmFibGVkKHByZWZlcmVuY2VzLCBmYWxzZSk7Ci0KICAgICBXS1ByZWZlcmVuY2Vz
U2V0RmV0Y2hBUElLZWVwQWxpdmVFbmFibGVkKHByZWZlcmVuY2VzLCB0cnVlKTsKICAgICBXS1By
ZWZlcmVuY2VzU2V0TWVkaWFQcmVsb2FkaW5nRW5hYmxlZChwcmVmZXJlbmNlcywgdHJ1ZSk7CiAg
ICAgV0tQcmVmZXJlbmNlc1NldEV4cG9zZVNwZWFrZXJzRW5hYmxlZChwcmVmZXJlbmNlcywgdHJ1
ZSk7CkBAIC05NDUsMzggKzkwNiwyMiBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpyZXNldFByZWZl
cmVuY2VzVG9DCiAgICAgV0tQcmVmZXJlbmNlc1NldFJlbW90ZVBsYXliYWNrRW5hYmxlZChwcmVm
ZXJlbmNlcywgdHJ1ZSk7CiAgICAgV0tQcmVmZXJlbmNlc1NldEJlYWNvbkFQSUVuYWJsZWQocHJl
ZmVyZW5jZXMsIHRydWUpOwogICAgIFdLUHJlZmVyZW5jZXNTZXREaXJlY3RvcnlVcGxvYWRFbmFi
bGVkKHByZWZlcmVuY2VzLCB0cnVlKTsKLQotICAgIFdLSFRUUENvb2tpZVN0b3JlRGVsZXRlQWxs
Q29va2llcyhXS1dlYnNpdGVEYXRhU3RvcmVHZXRIVFRQQ29va2llU3RvcmUod2Vic2l0ZURhdGFT
dG9yZSgpKSwgbnVsbHB0ciwgbnVsbHB0cik7Ci0KICAgICBXS1ByZWZlcmVuY2VzU2V0TW9ja0Nh
cHR1cmVEZXZpY2VzRW5hYmxlZChwcmVmZXJlbmNlcywgdHJ1ZSk7Ci0gICAgCiAgICAgV0tQcmVm
ZXJlbmNlc1NldExhcmdlSW1hZ2VBc3luY0RlY29kaW5nRW5hYmxlZChwcmVmZXJlbmNlcywgZmFs
c2UpOwotCi0gICAgV0tQcmVmZXJlbmNlc1NldEluc3BlY3RvckFkZGl0aW9uc0VuYWJsZWQocHJl
ZmVyZW5jZXMsIG9wdGlvbnMuZW5hYmxlSW5zcGVjdG9yQWRkaXRpb25zKCkpOwotCiAgICAgV0tQ
cmVmZXJlbmNlc1NldFN0b3JhZ2VBY2Nlc3NBUElFbmFibGVkKHByZWZlcmVuY2VzLCB0cnVlKTsK
LSAgICAKICAgICBXS1ByZWZlcmVuY2VzU2V0QWNjZXNzaWJpbGl0eU9iamVjdE1vZGVsRW5hYmxl
ZChwcmVmZXJlbmNlcywgdHJ1ZSk7CiAgICAgV0tQcmVmZXJlbmNlc1NldENTU09NVmlld1Njcm9s
bGluZ0FQSUVuYWJsZWQocHJlZmVyZW5jZXMsIHRydWUpOwogICAgIFdLUHJlZmVyZW5jZXNTZXRN
ZWRpYUNhcGFiaWxpdGllc0VuYWJsZWQocHJlZmVyZW5jZXMsIHRydWUpOwotCiAgICAgV0tQcmVm
ZXJlbmNlc1NldFJlc3RyaWN0ZWRIVFRQUmVzcG9uc2VBY2Nlc3MocHJlZmVyZW5jZXMsIHRydWUp
OwotCiAgICAgV0tQcmVmZXJlbmNlc1NldFNlcnZlclRpbWluZ0VuYWJsZWQocHJlZmVyZW5jZXMs
IHRydWUpOwotCiAgICAgV0tQcmVmZXJlbmNlc1NldFdlYlNRTERpc2FibGVkKHByZWZlcmVuY2Vz
LCBmYWxzZSk7Ci0KICAgICBXS1ByZWZlcmVuY2VzU2V0TWVkaWFQbGF5YmFja1JlcXVpcmVzVXNl
ckdlc3R1cmUocHJlZmVyZW5jZXMsIGZhbHNlKTsKICAgICBXS1ByZWZlcmVuY2VzU2V0VmlkZW9Q
bGF5YmFja1JlcXVpcmVzVXNlckdlc3R1cmUocHJlZmVyZW5jZXMsIGZhbHNlKTsKICAgICBXS1By
ZWZlcmVuY2VzU2V0QXVkaW9QbGF5YmFja1JlcXVpcmVzVXNlckdlc3R1cmUocHJlZmVyZW5jZXMs
IGZhbHNlKTsKLSAgICBXS1ByZWZlcmVuY2VzU2V0SW50ZXJuYWxEZWJ1Z0ZlYXR1cmVGb3JLZXko
cHJlZmVyZW5jZXMsIGZhbHNlLCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiU3BlYWtl
clNlbGVjdGlvblJlcXVpcmVzVXNlckdlc3R1cmUiKSk7Ci0KLSAgICBXS1ByZWZlcmVuY2VzU2V0
U2hvdWxkVXNlU2VydmljZVdvcmtlclNob3J0VGltZW91dChwcmVmZXJlbmNlcywgb3B0aW9ucy51
c2VTZXJ2aWNlV29ya2VyU2hvcnRUaW1lb3V0KCkpOwotCiAjaWYgRU5BQkxFKEFDQ0VTU0lCSUxJ
VFlfSVNPTEFURURfVFJFRSkKICAgICBXS1ByZWZlcmVuY2VzU2V0SXNBY2Nlc3NpYmlsaXR5SXNv
bGF0ZWRUcmVlRW5hYmxlZChwcmVmZXJlbmNlcywgYWNjZXNzaWJpbGl0eUlzb2xhdGVkVHJlZU1v
ZGUoKSk7CiAjZW5kaWYKLSAgICAKKwogICAgIHBsYXRmb3JtUmVzZXRQcmVmZXJlbmNlc1RvQ29u
c2lzdGVudFZhbHVlcygpOwogfQogCkBAIC0xMDA5LDIzICs5NTQsMTkgQEAgYm9vbCBUZXN0Q29u
dHJvbGxlcjo6cmVzZXRTdGF0ZVRvQ29uc2lzdAogICAgIGlmICghanNjT3B0aW9ucy5lbXB0eSgp
KQogICAgICAgICBzZXRWYWx1ZShyZXNldE1lc3NhZ2VCb2R5LCAiSlNDT3B0aW9ucyIsIGpzY09w
dGlvbnMuY19zdHIoKSk7CiAKLSNpZiBQTEFURk9STShDT0NPQSkKLSAgICBXZWJDb3JlVGVzdFN1
cHBvcnQ6OnNldEFkZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVzRm9yVGVzdGluZyhvcHRpb25z
LmFkZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVzKCkuY19zdHIoKSk7Ci0jZW5kaWYKLQogICAg
IFdLUGFnZVBvc3RNZXNzYWdlVG9JbmplY3RlZEJ1bmRsZShUZXN0Q29udHJvbGxlcjo6c2luZ2xl
dG9uKCkubWFpbldlYlZpZXcoKS0+cGFnZSgpLCB0b1dLKCJSZXNldCIpLmdldCgpLCByZXNldE1l
c3NhZ2VCb2R5LmdldCgpKTsKIAogICAgIFdLQ29udGV4dFNldFNob3VsZFVzZUZvbnRTbW9vdGhp
bmcoVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLmNvbnRleHQoKSwgZmFsc2UpOwotCiAgICAg
V0tDb250ZXh0U2V0Q2FjaGVNb2RlbChUZXN0Q29udHJvbGxlcjo6c2luZ2xldG9uKCkuY29udGV4
dCgpLCBrV0tDYWNoZU1vZGVsRG9jdW1lbnRCcm93c2VyKTsKIAogICAgIFdLV2Vic2l0ZURhdGFT
dG9yZUNsZWFyQ2FjaGVkQ3JlZGVudGlhbHMod2Vic2l0ZURhdGFTdG9yZSgpKTsKLQogICAgIFdL
V2Vic2l0ZURhdGFTdG9yZVJlc2V0U2VydmljZVdvcmtlckZldGNoVGltZW91dEZvclRlc3Rpbmco
d2Vic2l0ZURhdGFTdG9yZSgpKTsKIAogICAgIFdLV2Vic2l0ZURhdGFTdG9yZVNldFJlc291cmNl
TG9hZFN0YXRpc3RpY3NFbmFibGVkKHdlYnNpdGVEYXRhU3RvcmUoKSwgdHJ1ZSk7CiAgICAgV0tX
ZWJzaXRlRGF0YVN0b3JlQ2xlYXJBbGxEZXZpY2VPcmllbnRhdGlvblBlcm1pc3Npb25zKHdlYnNp
dGVEYXRhU3RvcmUoKSk7CiAKKyAgICBXS0hUVFBDb29raWVTdG9yZURlbGV0ZUFsbENvb2tpZXMo
V0tXZWJzaXRlRGF0YVN0b3JlR2V0SFRUUENvb2tpZVN0b3JlKHdlYnNpdGVEYXRhU3RvcmUoKSks
IG51bGxwdHIsIG51bGxwdHIpOworCiAgICAgY2xlYXJJbmRleGVkRGF0YWJhc2VzKCk7CiAgICAg
Y2xlYXJMb2NhbFN0b3JhZ2UoKTsKIApAQCAtMTAzNSw3ICs5NzYsNiBAQCBib29sIFRlc3RDb250
cm9sbGVyOjpyZXNldFN0YXRlVG9Db25zaXN0CiAgICAgcmVzZXRRdW90YSgpOwogCiAgICAgV0tD
b250ZXh0Q2xlYXJDdXJyZW50TW9kaWZpZXJTdGF0ZUZvclRlc3RpbmcoVGVzdENvbnRyb2xsZXI6
OnNpbmdsZXRvbigpLmNvbnRleHQoKSk7Ci0KICAgICBXS0NvbnRleHRTZXRVc2VTZXBhcmF0ZVNl
cnZpY2VXb3JrZXJQcm9jZXNzKFRlc3RDb250cm9sbGVyOjpzaW5nbGV0b24oKS5jb250ZXh0KCks
IGZhbHNlKTsKIAogICAgIFdLUGFnZVNldE1vY2tDYW1lcmFPcmllbnRhdGlvbihtX21haW5XZWJW
aWV3LT5wYWdlKCksIDApOwpAQCAtMTA1MSwxMCArOTkxLDYgQEAgYm9vbCBUZXN0Q29udHJvbGxl
cjo6cmVzZXRTdGF0ZVRvQ29uc2lzdAogICAgIC8vIHNvbWUgb3RoZXIgY29kZSBkb2luZyB0aGlz
LCBpdCBzaG91bGQgcHJvYmFibHkgYmUgcmVzcG9uc2libGUgZm9yIGNsZWFudXAgdG9vLgogICAg
IHJlc2V0UHJlZmVyZW5jZXNUb0NvbnNpc3RlbnRWYWx1ZXMob3B0aW9ucyk7CiAKLSNpZiBQTEFU
Rk9STShHVEspCi0gICAgV0tUZXh0Q2hlY2tlckNvbnRpbnVvdXNTcGVsbENoZWNraW5nRW5hYmxl
ZFN0YXRlQ2hhbmdlZCh0cnVlKTsKLSNlbmRpZgotCiAgICAgLy8gTWFrZSBzdXJlIHRoZSB2aWV3
IGlzIGluIHRoZSB3aW5kb3cgKGEgdGVzdCBjYW4gdW5wYXJlbnQgaXQpLgogICAgIG1fbWFpbldl
YlZpZXctPmFkZFRvV2luZG93KCk7CiAKQEAgLTI4MzQsMTEgKzI3NzAsNiBAQCBXS0NvbnRleHRS
ZWYgVGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtQWRqCiAgICAgcmV0dXJuIGNvbnRleHQ7CiB9CiAK
LWJvb2wgVGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtUmVzZXRTdGF0ZVRvQ29uc2lzdGVudFZhbHVl
cyhjb25zdCBUZXN0T3B0aW9ucyYpCi17Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0KIHVuc2lnbmVk
IFRlc3RDb250cm9sbGVyOjppbWFnZUNvdW50SW5HZW5lcmFsUGFzdGVib2FyZCgpIGNvbnN0CiB7
CiAgICAgcmV0dXJuIDA7CkluZGV4OiBUb29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9s
bGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxl
ci5oCShyZXZpc2lvbiAyNjgzMzApCisrKyBUb29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250
cm9sbGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTM5NCw3ICszOTQsNiBAQCBwcml2YXRlOgogCiAg
ICAgdm9pZCBlbnN1cmVWaWV3U3VwcG9ydHNPcHRpb25zRm9yVGVzdChjb25zdCBUZXN0SW52b2Nh
dGlvbiYpOwogICAgIFRlc3RPcHRpb25zIHRlc3RPcHRpb25zRm9yVGVzdChjb25zdCBUZXN0Q29t
bWFuZCYpIGNvbnN0OwotICAgIFRlc3RGZWF0dXJlcyBnbG9iYWxGZWF0dXJlRGVmYXVsdHNGb3JU
ZXN0KGNvbnN0IFRlc3RDb21tYW5kJikgY29uc3Q7CiAgICAgVGVzdEZlYXR1cmVzIHBsYXRmb3Jt
U3BlY2lmaWNGZWF0dXJlRGVmYXVsdHNGb3JUZXN0KGNvbnN0IFRlc3RDb21tYW5kJikgY29uc3Q7
CiAgICAgVGVzdEZlYXR1cmVzIHBsYXRmb3JtU3BlY2lmaWNGZWF0dXJlT3ZlcnJpZGVzRGVmYXVs
dHNGb3JUZXN0KGNvbnN0IFRlc3RDb21tYW5kJikgY29uc3Q7CiAKQEAgLTU5Niw4ICs1OTUsNiBA
QCBwcml2YXRlOgogICAgIFN0cmluZyBtX3Vuc3VwcG9ydGVkUGx1Z2luTW9kZTsKIAogICAgIGJv
b2wgbV9mb3JjZUNvbXBsZXhUZXh0IHsgZmFsc2UgfTsKLSAgICBib29sIG1fc2hvdWxkVXNlQWNj
ZWxlcmF0ZWREcmF3aW5nIHsgZmFsc2UgfTsKLSAgICAKICAgICBib29sIG1fc2hvdWxkTG9nQ2Fu
QXV0aGVudGljYXRlQWdhaW5zdFByb3RlY3Rpb25TcGFjZSB7IGZhbHNlIH07CiAgICAgYm9vbCBt
X3Nob3VsZExvZ0Rvd25sb2FkQ2FsbGJhY2tzIHsgZmFsc2UgfTsKICAgICBib29sIG1fc2hvdWxk
TG9nSGlzdG9yeUNsaWVudENhbGxiYWNrcyB7IGZhbHNlIH07CkluZGV4OiBUb29scy9XZWJLaXRU
ZXN0UnVubmVyL1Rlc3RPcHRpb25zLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9XZWJLaXRUZXN0
UnVubmVyL1Rlc3RPcHRpb25zLmNwcAkocmV2aXNpb24gMjY4MzMwKQorKysgVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9UZXN0T3B0aW9ucy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwMSw1NCArMTAx
LDUxIEBAIHZvaWQgbWVyZ2UoVGVzdEZlYXR1cmVzJiBiYXNlLCBUZXN0RmVhdHUKIHN0YXRpYyBj
b25zdCBzdGQ6OnVub3JkZXJlZF9tYXA8c3RkOjpzdHJpbmcsIGJvb2w+JiBib29sRGVmYXVsdHNN
YXAoKQogewogICAgIHN0YXRpYyBzdGQ6OnVub3JkZXJlZF9tYXA8c3RkOjpzdHJpbmcsIGJvb2w+
IG1hcCB7Ci0gICAgICAgIHsgInVzZVRocmVhZGVkU2Nyb2xsaW5nIiwgZmFsc2UgfSwKLSAgICAg
ICAgeyAidXNlQWNjZWxlcmF0ZWREcmF3aW5nIiwgZmFsc2UgfSwKLSAgICAgICAgeyAidXNlUmVt
b3RlTGF5ZXJUcmVlIiwgZmFsc2UgfSwKLSAgICAgICAgeyAic2hvdWxkU2hvd1dlYlZpZXciLCBm
YWxzZSB9LAotICAgICAgICB7ICJ1c2VGbGV4aWJsZVZpZXdwb3J0IiwgZmFsc2UgfSwKLSAgICAg
ICAgeyAidXNlRGF0YURldGVjdGlvbiIsIGZhbHNlIH0sCi0gICAgICAgIHsgInVzZU1vY2tTY3Jv
bGxiYXJzIiwgdHJ1ZSB9LAotICAgICAgICB7ICJuZWVkc1NpdGVTcGVjaWZpY1F1aXJrcyIsIGZh
bHNlIH0sCi0gICAgICAgIHsgImlnbm9yZXNWaWV3cG9ydFNjYWxlTGltaXRzIiwgZmFsc2UgfSwK
LSAgICAgICAgeyAidXNlQ2hhcmFjdGVyU2VsZWN0aW9uR3JhbnVsYXJpdHkiLCBmYWxzZSB9LAot
ICAgICAgICB7ICJlbmFibGVBdHRhY2htZW50RWxlbWVudCIsIGZhbHNlIH0sCi0gICAgICAgIHsg
ImVuYWJsZUludGVyc2VjdGlvbk9ic2VydmVyIiwgZmFsc2UgfSwKLSAgICAgICAgeyAidXNlRXBo
ZW1lcmFsU2Vzc2lvbiIsIGZhbHNlIH0sCi0gICAgICAgIHsgImVuYWJsZU1lbnVJdGVtRWxlbWVu
dCIsIGZhbHNlIH0sCi0gICAgICAgIHsgImVuYWJsZUtleWdlbkVsZW1lbnQiLCBmYWxzZSB9LAot
ICAgICAgICB7ICJlbmFibGVNb2Rlcm5NZWRpYUNvbnRyb2xzIiwgdHJ1ZSB9LAotICAgICAgICB7
ICJlbmFibGVQb2ludGVyTG9jayIsIGZhbHNlIH0sCi0gICAgICAgIHsgImVuYWJsZVdlYkF1dGhl
bnRpY2F0aW9uIiwgdHJ1ZSB9LAotICAgICAgICB7ICJlbmFibGVXZWJBdXRoZW50aWNhdGlvbkxv
Y2FsQXV0aGVudGljYXRvciIsIHRydWUgfSwKLSAgICAgICAgeyAiZW5hYmxlSW5zcGVjdG9yQWRk
aXRpb25zIiwgZmFsc2UgfSwKLSAgICAgICAgeyAic2hvdWxkU2hvd1RvdWNoZXMiLCBmYWxzZSB9
LAotICAgICAgICB7ICJkdW1wSlNDb25zb2xlTG9nSW5TdGRFcnIiLCBmYWxzZSB9LAogICAgICAg
ICB7ICJhbGxvd0Nyb3NzT3JpZ2luU3VicmVzb3VyY2VzVG9Bc2tGb3JDcmVkZW50aWFscyIsIGZh
bHNlIH0sCisgICAgICAgIHsgImFsbG93VG9wTmF2aWdhdGlvblRvRGF0YVVSTHMiLCB0cnVlIH0s
CisgICAgICAgIHsgImFsbG93c0xpbmtQcmV2aWV3IiwgdHJ1ZSB9LAogICAgICAgICB7ICJkb21Q
YXN0ZUFsbG93ZWQiLCB0cnVlIH0sCi0gICAgICAgIHsgImVuYWJsZUNvbG9yRmlsdGVyIiwgZmFs
c2UgfSwKLSAgICAgICAgeyAicHVuY2hPdXRXaGl0ZUJhY2tncm91bmRzSW5EYXJrTW9kZSIsIGZh
bHNlIH0sCi0gICAgICAgIHsgInJ1blNpbmdseSIsIGZhbHNlIH0sCi0gICAgICAgIHsgImNoZWNr
Rm9yV29ybGRMZWFrcyIsIGZhbHNlIH0sCi0gICAgICAgIHsgInNob3VsZElnbm9yZU1ldGFWaWV3
cG9ydCIsIGZhbHNlIH0sCi0gICAgICAgIHsgInNwZWxsQ2hlY2tpbmdEb3RzIiwgZmFsc2UgfSwK
LSAgICAgICAgeyAiZW5hYmxlU2VydmljZUNvbnRyb2xzIiwgZmFsc2UgfSwKKyAgICAgICAgeyAi
ZHVtcEpTQ29uc29sZUxvZ0luU3RkRXJyIiwgZmFsc2UgfSwKICAgICAgICAgeyAiZWRpdGFibGUi
LCBmYWxzZSB9LAotICAgICAgICB7ICJzaG91bGRIYW5kbGVSdW5PcGVuUGFuZWwiLCB0cnVlIH0s
Ci0gICAgICAgIHsgInNob3VsZFByZXNlbnRQb3BvdmVycyIsIHRydWUgfSwKICAgICAgICAgeyAi
ZW5hYmxlQXBwTmFwIiwgZmFsc2UgfSwKKyAgICAgICAgeyAiZW5hYmxlQXR0YWNobWVudEVsZW1l
bnQiLCBmYWxzZSB9LAogICAgICAgICB7ICJlbmFibGVCYWNrRm9yd2FyZENhY2hlIiwgZmFsc2Ug
fSwKLSAgICAgICAgeyAiYWxsb3dzTGlua1ByZXZpZXciLCB0cnVlIH0sCi0gICAgICAgIHsgImVu
YWJsZUNhcHR1cmVWaWRlb0luVUlQcm9jZXNzIiwgZmFsc2UgfSwKLSAgICAgICAgeyAiZW5hYmxl
Q2FwdHVyZVZpZGVvSW5HUFVQcm9jZXNzIiwgZmFsc2UgfSwKLSAgICAgICAgeyAiZW5hYmxlQ2Fw
dHVyZUF1ZGlvSW5VSVByb2Nlc3MiLCBmYWxzZSB9LAogICAgICAgICB7ICJlbmFibGVDYXB0dXJl
QXVkaW9JbkdQVVByb2Nlc3MiLCBmYWxzZSB9LAotICAgICAgICB7ICJhbGxvd1RvcE5hdmlnYXRp
b25Ub0RhdGFVUkxzIiwgdHJ1ZSB9LAorICAgICAgICB7ICJlbmFibGVDYXB0dXJlQXVkaW9JblVJ
UHJvY2VzcyIsIGZhbHNlIH0sCisgICAgICAgIHsgImVuYWJsZUNhcHR1cmVWaWRlb0luR1BVUHJv
Y2VzcyIsIGZhbHNlIH0sCisgICAgICAgIHsgImVuYWJsZUNhcHR1cmVWaWRlb0luVUlQcm9jZXNz
IiwgZmFsc2UgfSwKKyAgICAgICAgeyAiZW5hYmxlQ29sb3JGaWx0ZXIiLCBmYWxzZSB9LAogICAg
ICAgICB7ICJlbmFibGVJbkFwcEJyb3dzZXJQcml2YWN5IiwgZmFsc2UgfSwKLSAgICAgICAgeyAi
aXNBcHBCb3VuZFdlYlZpZXciLCBmYWxzZSB9LAotICAgICAgICB7ICJpZ25vcmVTeW5jaHJvbm91
c01lc3NhZ2luZ1RpbWVvdXRzIiwgZmFsc2UgfSwKKyAgICAgICAgeyAiZW5hYmxlSW5zcGVjdG9y
QWRkaXRpb25zIiwgZmFsc2UgfSwKKyAgICAgICAgeyAiZW5hYmxlS2V5Z2VuRWxlbWVudCIsIGZh
bHNlIH0sCisgICAgICAgIHsgImVuYWJsZU1lbnVJdGVtRWxlbWVudCIsIGZhbHNlIH0sCisgICAg
ICAgIHsgImVuYWJsZU1vZGVybk1lZGlhQ29udHJvbHMiLCB0cnVlIH0sCiAgICAgICAgIHsgImVu
YWJsZVByb2Nlc3NTd2FwT25OYXZpZ2F0aW9uIiwgdHJ1ZSB9LAogICAgICAgICB7ICJlbmFibGVQ
cm9jZXNzU3dhcE9uV2luZG93T3BlbiIsIGZhbHNlIH0sCi0gICAgICAgIHsgInVzZVNlcnZpY2VX
b3JrZXJTaG9ydFRpbWVvdXQiLCBmYWxzZSB9CisgICAgICAgIHsgImVuYWJsZVNlcnZpY2VDb250
cm9scyIsIGZhbHNlIH0sCisgICAgICAgIHsgImVuYWJsZVdlYkF1dGhlbnRpY2F0aW9uIiwgdHJ1
ZSB9LAorICAgICAgICB7ICJlbmFibGVXZWJBdXRoZW50aWNhdGlvbkxvY2FsQXV0aGVudGljYXRv
ciIsIHRydWUgfSwKKyAgICAgICAgeyAiaWdub3JlU3luY2hyb25vdXNNZXNzYWdpbmdUaW1lb3V0
cyIsIGZhbHNlIH0sCisgICAgICAgIHsgImlnbm9yZXNWaWV3cG9ydFNjYWxlTGltaXRzIiwgZmFs
c2UgfSwKKyAgICAgICAgeyAiaXNBcHBCb3VuZFdlYlZpZXciLCBmYWxzZSB9LAorICAgICAgICB7
ICJuZWVkc1NpdGVTcGVjaWZpY1F1aXJrcyIsIGZhbHNlIH0sCisgICAgICAgIHsgInB1bmNoT3V0
V2hpdGVCYWNrZ3JvdW5kc0luRGFya01vZGUiLCBmYWxzZSB9LAorICAgICAgICB7ICJydW5TaW5n
bHkiLCBmYWxzZSB9LAorICAgICAgICB7ICJzaG91bGRIYW5kbGVSdW5PcGVuUGFuZWwiLCB0cnVl
IH0sCisgICAgICAgIHsgInNob3VsZElnbm9yZU1ldGFWaWV3cG9ydCIsIGZhbHNlIH0sCisgICAg
ICAgIHsgInNob3VsZFByZXNlbnRQb3BvdmVycyIsIHRydWUgfSwKKyAgICAgICAgeyAic2hvdWxk
U2hvd1RvdWNoZXMiLCBmYWxzZSB9LAorICAgICAgICB7ICJzaG91bGRTaG93V2ViVmlldyIsIGZh
bHNlIH0sCisgICAgICAgIHsgInNwZWxsQ2hlY2tpbmdEb3RzIiwgZmFsc2UgfSwKKyAgICAgICAg
eyAidXNlQWNjZWxlcmF0ZWREcmF3aW5nIiwgZmFsc2UgfSwKKyAgICAgICAgeyAidXNlQ2hhcmFj
dGVyU2VsZWN0aW9uR3JhbnVsYXJpdHkiLCBmYWxzZSB9LAorICAgICAgICB7ICJ1c2VEYXRhRGV0
ZWN0aW9uIiwgZmFsc2UgfSwKKyAgICAgICAgeyAidXNlRXBoZW1lcmFsU2Vzc2lvbiIsIGZhbHNl
IH0sCisgICAgICAgIHsgInVzZUZsZXhpYmxlVmlld3BvcnQiLCBmYWxzZSB9LAorICAgICAgICB7
ICJ1c2VNb2NrU2Nyb2xsYmFycyIsIHRydWUgfSwKKyAgICAgICAgeyAidXNlUmVtb3RlTGF5ZXJU
cmVlIiwgZmFsc2UgfSwKKyAgICAgICAgeyAidXNlU2VydmljZVdvcmtlclNob3J0VGltZW91dCIs
IGZhbHNlIH0sCisgICAgICAgIHsgInVzZVRocmVhZGVkU2Nyb2xsaW5nIiwgZmFsc2UgfSwKICAg
ICB9OwogICAgIHJldHVybiBtYXA7CiB9CkBAIC0xNTgsOCArMTU1LDggQEAgc3RhdGljIGNvbnN0
IHN0ZDo6dW5vcmRlcmVkX21hcDxzdGQ6OnN0cgogICAgIHN0YXRpYyBzdGQ6OnVub3JkZXJlZF9t
YXA8c3RkOjpzdHJpbmcsIGRvdWJsZT4gbWFwIHsKICAgICAgICAgeyAiY29udGVudEluc2V0LnRv
cCIsIDAgfSwKICAgICAgICAgeyAiZGV2aWNlU2NhbGVGYWN0b3IiLCAxIH0sCisgICAgICAgIHsg
InZpZXdIZWlnaHQiLCA2MDAgfSwKICAgICAgICAgeyAidmlld1dpZHRoIiwgODAwIH0sCi0gICAg
ICAgIHsgInZpZXdIZWlnaHQiLCA2MDAgfQogICAgIH07CiAgICAgcmV0dXJuIG1hcDsKIH0KQEAg
LTE2NywxMiArMTY0LDEyIEBAIHN0YXRpYyBjb25zdCBzdGQ6OnVub3JkZXJlZF9tYXA8c3RkOjpz
dHIKIHN0YXRpYyBjb25zdCBzdGQ6OnVub3JkZXJlZF9tYXA8c3RkOjpzdHJpbmcsIHN0ZDo6c3Ry
aW5nPiYgc3RyaW5nRGVmYXVsdHNNYXAoKQogewogICAgIHN0YXRpYyBzdGQ6OnVub3JkZXJlZF9t
YXA8c3RkOjpzdHJpbmcsIHN0ZDo6c3RyaW5nPiBtYXAgeworICAgICAgICB7ICJhZGRpdGlvbmFs
U3VwcG9ydGVkSW1hZ2VUeXBlcyIsIHsgfSB9LAorICAgICAgICB7ICJhcHBsaWNhdGlvbkJ1bmRs
ZUlkZW50aWZpZXIiLCB7IH0gfSwKICAgICAgICAgeyAiYXBwbGljYXRpb25NYW5pZmVzdCIsIHsg
fSB9LAorICAgICAgICB7ICJjb250ZW50TW9kZSIsIHsgfSB9LAogICAgICAgICB7ICJqc2NPcHRp
b25zIiwgeyB9IH0sCi0gICAgICAgIHsgImFkZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVzIiwg
eyB9IH0sCiAgICAgICAgIHsgInN0YW5kYWxvbmVXZWJBcHBsaWNhdGlvblVSTCIsIHsgfSB9LAot
ICAgICAgICB7ICJjb250ZW50TW9kZSIsIHsgfSB9LAotICAgICAgICB7ICJhcHBsaWNhdGlvbkJ1
bmRsZUlkZW50aWZpZXIiLCB7IH0gfQogICAgIH07CiAgICAgcmV0dXJuIG1hcDsKIH0KQEAgLTE4
MCw3ICsxNzcsNyBAQCBzdGF0aWMgY29uc3Qgc3RkOjp1bm9yZGVyZWRfbWFwPHN0ZDo6c3RyCiBz
dGF0aWMgY29uc3Qgc3RkOjp1bm9yZGVyZWRfbWFwPHN0ZDo6c3RyaW5nLCBzdGQ6OnZlY3Rvcjxz
dGQ6OnN0cmluZz4+JiBzdHJpbmdWZWN0b3JEZWZhdWx0c01hcCgpCiB7CiAgICAgc3RhdGljIHN0
ZDo6dW5vcmRlcmVkX21hcDxzdGQ6OnN0cmluZywgc3RkOjp2ZWN0b3I8c3RkOjpzdHJpbmc+PiBt
YXAgewotICAgICAgICB7ICJsYW5ndWFnZSIsIHsgfSB9CisgICAgICAgIHsgImxhbmd1YWdlIiwg
eyB9IH0sCiAgICAgfTsKICAgICByZXR1cm4gbWFwOwogfQpAQCAtMTk4LDY1ICsxOTUsNjIgQEAg
ZW51bSBjbGFzcyBLZXlUeXBlIDogdWludDhfdCB7CiBzdGF0aWMgY29uc3Qgc3RkOjp1bm9yZGVy
ZWRfbWFwPHN0ZDo6c3RyaW5nLCBLZXlUeXBlPiYga2V5VHlwZU1hcCgpCiB7CiAgICAgc3RhdGlj
IHN0ZDo6dW5vcmRlcmVkX21hcDxzdGQ6OnN0cmluZywgS2V5VHlwZT4gbWFwIHsKLSAgICAgICAg
eyAidXNlVGhyZWFkZWRTY3JvbGxpbmciLCBLZXlUeXBlOjpCb29sIH0sCi0gICAgICAgIHsgInVz
ZUFjY2VsZXJhdGVkRHJhd2luZyIsIEtleVR5cGU6OkJvb2wgfSwKLSAgICAgICAgeyAidXNlUmVt
b3RlTGF5ZXJUcmVlIiwgS2V5VHlwZTo6Qm9vbCB9LAotICAgICAgICB7ICJzaG91bGRTaG93V2Vi
VmlldyIsIEtleVR5cGU6OkJvb2wgfSwKLSAgICAgICAgeyAidXNlRmxleGlibGVWaWV3cG9ydCIs
IEtleVR5cGU6OkJvb2wgfSwKLSAgICAgICAgeyAidXNlRGF0YURldGVjdGlvbiIsIEtleVR5cGU6
OkJvb2wgfSwKLSAgICAgICAgeyAidXNlTW9ja1Njcm9sbGJhcnMiLCBLZXlUeXBlOjpCb29sIH0s
Ci0gICAgICAgIHsgIm5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzIiwgS2V5VHlwZTo6Qm9vbCB9LAot
ICAgICAgICB7ICJpZ25vcmVzVmlld3BvcnRTY2FsZUxpbWl0cyIsIEtleVR5cGU6OkJvb2wgfSwK
LSAgICAgICAgeyAidXNlQ2hhcmFjdGVyU2VsZWN0aW9uR3JhbnVsYXJpdHkiLCBLZXlUeXBlOjpC
b29sIH0sCi0gICAgICAgIHsgImVuYWJsZUF0dGFjaG1lbnRFbGVtZW50IiwgS2V5VHlwZTo6Qm9v
bCB9LAotICAgICAgICB7ICJlbmFibGVJbnRlcnNlY3Rpb25PYnNlcnZlciIsIEtleVR5cGU6OkJv
b2wgfSwKLSAgICAgICAgeyAidXNlRXBoZW1lcmFsU2Vzc2lvbiIsIEtleVR5cGU6OkJvb2wgfSwK
LSAgICAgICAgeyAiZW5hYmxlTWVudUl0ZW1FbGVtZW50IiwgS2V5VHlwZTo6Qm9vbCB9LAotICAg
ICAgICB7ICJlbmFibGVLZXlnZW5FbGVtZW50IiwgS2V5VHlwZTo6Qm9vbCB9LAotICAgICAgICB7
ICJlbmFibGVNb2Rlcm5NZWRpYUNvbnRyb2xzIiwgS2V5VHlwZTo6Qm9vbCB9LAotICAgICAgICB7
ICJlbmFibGVQb2ludGVyTG9jayIsIEtleVR5cGU6OkJvb2wgfSwKLSAgICAgICAgeyAiZW5hYmxl
V2ViQXV0aGVudGljYXRpb24iLCBLZXlUeXBlOjpCb29sIH0sCi0gICAgICAgIHsgImVuYWJsZVdl
YkF1dGhlbnRpY2F0aW9uTG9jYWxBdXRoZW50aWNhdG9yIiwgS2V5VHlwZTo6Qm9vbCB9LAotICAg
ICAgICB7ICJlbmFibGVJbnNwZWN0b3JBZGRpdGlvbnMiLCBLZXlUeXBlOjpCb29sIH0sCi0gICAg
ICAgIHsgInNob3VsZFNob3dUb3VjaGVzIiwgS2V5VHlwZTo6Qm9vbCB9LAotICAgICAgICB7ICJk
dW1wSlNDb25zb2xlTG9nSW5TdGRFcnIiLCBLZXlUeXBlOjpCb29sIH0sCiAgICAgICAgIHsgImFs
bG93Q3Jvc3NPcmlnaW5TdWJyZXNvdXJjZXNUb0Fza0ZvckNyZWRlbnRpYWxzIiwgS2V5VHlwZTo6
Qm9vbCB9LAorICAgICAgICB7ICJhbGxvd1RvcE5hdmlnYXRpb25Ub0RhdGFVUkxzIiwgS2V5VHlw
ZTo6Qm9vbCB9LAorICAgICAgICB7ICJhbGxvd3NMaW5rUHJldmlldyIsIEtleVR5cGU6OkJvb2wg
fSwKICAgICAgICAgeyAiZG9tUGFzdGVBbGxvd2VkIiwgS2V5VHlwZTo6Qm9vbCB9LAotICAgICAg
ICB7ICJlbmFibGVDb2xvckZpbHRlciIsIEtleVR5cGU6OkJvb2wgfSwKLSAgICAgICAgeyAicHVu
Y2hPdXRXaGl0ZUJhY2tncm91bmRzSW5EYXJrTW9kZSIsIEtleVR5cGU6OkJvb2wgfSwKLSAgICAg
ICAgeyAicnVuU2luZ2x5IiwgS2V5VHlwZTo6Qm9vbCB9LAotICAgICAgICB7ICJjaGVja0Zvcldv
cmxkTGVha3MiLCBLZXlUeXBlOjpCb29sIH0sCi0gICAgICAgIHsgInNob3VsZElnbm9yZU1ldGFW
aWV3cG9ydCIsIEtleVR5cGU6OkJvb2wgfSwKLSAgICAgICAgeyAic3BlbGxDaGVja2luZ0RvdHMi
LCBLZXlUeXBlOjpCb29sIH0sCi0gICAgICAgIHsgImVuYWJsZVNlcnZpY2VDb250cm9scyIsIEtl
eVR5cGU6OkJvb2wgfSwKKyAgICAgICAgeyAiZHVtcEpTQ29uc29sZUxvZ0luU3RkRXJyIiwgS2V5
VHlwZTo6Qm9vbCB9LAogICAgICAgICB7ICJlZGl0YWJsZSIsIEtleVR5cGU6OkJvb2wgfSwKLSAg
ICAgICAgeyAic2hvdWxkSGFuZGxlUnVuT3BlblBhbmVsIiwgS2V5VHlwZTo6Qm9vbCB9LAotICAg
ICAgICB7ICJzaG91bGRQcmVzZW50UG9wb3ZlcnMiLCBLZXlUeXBlOjpCb29sIH0sCiAgICAgICAg
IHsgImVuYWJsZUFwcE5hcCIsIEtleVR5cGU6OkJvb2wgfSwKKyAgICAgICAgeyAiZW5hYmxlQXR0
YWNobWVudEVsZW1lbnQiLCBLZXlUeXBlOjpCb29sIH0sCiAgICAgICAgIHsgImVuYWJsZUJhY2tG
b3J3YXJkQ2FjaGUiLCBLZXlUeXBlOjpCb29sIH0sCi0gICAgICAgIHsgImFsbG93c0xpbmtQcmV2
aWV3IiwgS2V5VHlwZTo6Qm9vbCB9LAotICAgICAgICB7ICJlbmFibGVDYXB0dXJlVmlkZW9JblVJ
UHJvY2VzcyIsIEtleVR5cGU6OkJvb2wgfSwKLSAgICAgICAgeyAiZW5hYmxlQ2FwdHVyZVZpZGVv
SW5HUFVQcm9jZXNzIiwgS2V5VHlwZTo6Qm9vbCB9LAotICAgICAgICB7ICJlbmFibGVDYXB0dXJl
QXVkaW9JblVJUHJvY2VzcyIsIEtleVR5cGU6OkJvb2wgfSwKICAgICAgICAgeyAiZW5hYmxlQ2Fw
dHVyZUF1ZGlvSW5HUFVQcm9jZXNzIiwgS2V5VHlwZTo6Qm9vbCB9LAotICAgICAgICB7ICJhbGxv
d1RvcE5hdmlnYXRpb25Ub0RhdGFVUkxzIiwgS2V5VHlwZTo6Qm9vbCB9LAorICAgICAgICB7ICJl
bmFibGVDYXB0dXJlQXVkaW9JblVJUHJvY2VzcyIsIEtleVR5cGU6OkJvb2wgfSwKKyAgICAgICAg
eyAiZW5hYmxlQ2FwdHVyZVZpZGVvSW5HUFVQcm9jZXNzIiwgS2V5VHlwZTo6Qm9vbCB9LAorICAg
ICAgICB7ICJlbmFibGVDYXB0dXJlVmlkZW9JblVJUHJvY2VzcyIsIEtleVR5cGU6OkJvb2wgfSwK
KyAgICAgICAgeyAiZW5hYmxlQ29sb3JGaWx0ZXIiLCBLZXlUeXBlOjpCb29sIH0sCiAgICAgICAg
IHsgImVuYWJsZUluQXBwQnJvd3NlclByaXZhY3kiLCBLZXlUeXBlOjpCb29sIH0sCi0gICAgICAg
IHsgImlzQXBwQm91bmRXZWJWaWV3IiwgS2V5VHlwZTo6Qm9vbCB9LAotICAgICAgICB7ICJpZ25v
cmVTeW5jaHJvbm91c01lc3NhZ2luZ1RpbWVvdXRzIiwgS2V5VHlwZTo6Qm9vbCB9LAorICAgICAg
ICB7ICJlbmFibGVJbnNwZWN0b3JBZGRpdGlvbnMiLCBLZXlUeXBlOjpCb29sIH0sCisgICAgICAg
IHsgImVuYWJsZUtleWdlbkVsZW1lbnQiLCBLZXlUeXBlOjpCb29sIH0sCisgICAgICAgIHsgImVu
YWJsZU1lbnVJdGVtRWxlbWVudCIsIEtleVR5cGU6OkJvb2wgfSwKKyAgICAgICAgeyAiZW5hYmxl
TW9kZXJuTWVkaWFDb250cm9scyIsIEtleVR5cGU6OkJvb2wgfSwKICAgICAgICAgeyAiZW5hYmxl
UHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24iLCBLZXlUeXBlOjpCb29sIH0sCiAgICAgICAgIHsgImVu
YWJsZVByb2Nlc3NTd2FwT25XaW5kb3dPcGVuIiwgS2V5VHlwZTo6Qm9vbCB9LAorICAgICAgICB7
ICJlbmFibGVTZXJ2aWNlQ29udHJvbHMiLCBLZXlUeXBlOjpCb29sIH0sCisgICAgICAgIHsgImVu
YWJsZVdlYkF1dGhlbnRpY2F0aW9uIiwgS2V5VHlwZTo6Qm9vbCB9LAorICAgICAgICB7ICJlbmFi
bGVXZWJBdXRoZW50aWNhdGlvbkxvY2FsQXV0aGVudGljYXRvciIsIEtleVR5cGU6OkJvb2wgfSwK
KyAgICAgICAgeyAiaWdub3JlU3luY2hyb25vdXNNZXNzYWdpbmdUaW1lb3V0cyIsIEtleVR5cGU6
OkJvb2wgfSwKKyAgICAgICAgeyAiaWdub3Jlc1ZpZXdwb3J0U2NhbGVMaW1pdHMiLCBLZXlUeXBl
OjpCb29sIH0sCisgICAgICAgIHsgImlzQXBwQm91bmRXZWJWaWV3IiwgS2V5VHlwZTo6Qm9vbCB9
LAorICAgICAgICB7ICJuZWVkc1NpdGVTcGVjaWZpY1F1aXJrcyIsIEtleVR5cGU6OkJvb2wgfSwK
KyAgICAgICAgeyAicHVuY2hPdXRXaGl0ZUJhY2tncm91bmRzSW5EYXJrTW9kZSIsIEtleVR5cGU6
OkJvb2wgfSwKKyAgICAgICAgeyAicnVuU2luZ2x5IiwgS2V5VHlwZTo6Qm9vbCB9LAorICAgICAg
ICB7ICJzaG91bGRIYW5kbGVSdW5PcGVuUGFuZWwiLCBLZXlUeXBlOjpCb29sIH0sCisgICAgICAg
IHsgInNob3VsZElnbm9yZU1ldGFWaWV3cG9ydCIsIEtleVR5cGU6OkJvb2wgfSwKKyAgICAgICAg
eyAic2hvdWxkUHJlc2VudFBvcG92ZXJzIiwgS2V5VHlwZTo6Qm9vbCB9LAorICAgICAgICB7ICJz
aG91bGRTaG93VG91Y2hlcyIsIEtleVR5cGU6OkJvb2wgfSwKKyAgICAgICAgeyAic2hvdWxkU2hv
d1dlYlZpZXciLCBLZXlUeXBlOjpCb29sIH0sCisgICAgICAgIHsgInNwZWxsQ2hlY2tpbmdEb3Rz
IiwgS2V5VHlwZTo6Qm9vbCB9LAorICAgICAgICB7ICJ1c2VBY2NlbGVyYXRlZERyYXdpbmciLCBL
ZXlUeXBlOjpCb29sIH0sCisgICAgICAgIHsgInVzZUNoYXJhY3RlclNlbGVjdGlvbkdyYW51bGFy
aXR5IiwgS2V5VHlwZTo6Qm9vbCB9LAorICAgICAgICB7ICJ1c2VEYXRhRGV0ZWN0aW9uIiwgS2V5
VHlwZTo6Qm9vbCB9LAorICAgICAgICB7ICJ1c2VFcGhlbWVyYWxTZXNzaW9uIiwgS2V5VHlwZTo6
Qm9vbCB9LAorICAgICAgICB7ICJ1c2VGbGV4aWJsZVZpZXdwb3J0IiwgS2V5VHlwZTo6Qm9vbCB9
LAorICAgICAgICB7ICJ1c2VNb2NrU2Nyb2xsYmFycyIsIEtleVR5cGU6OkJvb2wgfSwKKyAgICAg
ICAgeyAidXNlUmVtb3RlTGF5ZXJUcmVlIiwgS2V5VHlwZTo6Qm9vbCB9LAogICAgICAgICB7ICJ1
c2VTZXJ2aWNlV29ya2VyU2hvcnRUaW1lb3V0IiwgS2V5VHlwZTo6Qm9vbCB9LAorICAgICAgICB7
ICJ1c2VUaHJlYWRlZFNjcm9sbGluZyIsIEtleVR5cGU6OkJvb2wgfSwKICAgICAKICAgICAgICAg
eyAiY29udGVudEluc2V0LnRvcCIsIEtleVR5cGU6OkRvdWJsZSB9LAogICAgICAgICB7ICJkZXZp
Y2VTY2FsZUZhY3RvciIsIEtleVR5cGU6OkRvdWJsZSB9LAotICAgICAgICB7ICJ2aWV3V2lkdGgi
LCBLZXlUeXBlOjpEb3VibGUgfSwKICAgICAgICAgeyAidmlld0hlaWdodCIsIEtleVR5cGU6OkRv
dWJsZSB9LAorICAgICAgICB7ICJ2aWV3V2lkdGgiLCBLZXlUeXBlOjpEb3VibGUgfSwKIAotICAg
ICAgICB7ICJqc2NPcHRpb25zIiwgS2V5VHlwZTo6U3RyaW5nIH0sCiAgICAgICAgIHsgImFkZGl0
aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVzIiwgS2V5VHlwZTo6U3RyaW5nIH0sCi0gICAgICAgIHsg
ImNvbnRlbnRNb2RlIiwgS2V5VHlwZTo6U3RyaW5nIH0sCiAgICAgICAgIHsgImFwcGxpY2F0aW9u
QnVuZGxlSWRlbnRpZmllciIsIEtleVR5cGU6OlN0cmluZyB9LAogICAgICAgICB7ICJhcHBsaWNh
dGlvbk1hbmlmZXN0IiwgS2V5VHlwZTo6U3RyaW5nUmVsYXRpdmVQYXRoIH0sCisgICAgICAgIHsg
ImNvbnRlbnRNb2RlIiwgS2V5VHlwZTo6U3RyaW5nIH0sCisgICAgICAgIHsgImpzY09wdGlvbnMi
LCBLZXlUeXBlOjpTdHJpbmcgfSwKICAgICAgICAgeyAic3RhbmRhbG9uZVdlYkFwcGxpY2F0aW9u
VVJMIiwgS2V5VHlwZTo6U3RyaW5nVVJMIH0sCiAKICAgICAgICAgeyAibGFuZ3VhZ2UiLCBLZXlU
eXBlOjpTdHJpbmdWZWN0b3IgfSwKQEAgLTQ4Niw2ICs0ODAsNDQgQEAgYm9vbCBUZXN0T3B0aW9u
czo6aGFzU2FtZUluaXRpYWxpemF0aW9uTwogICAgIHJldHVybiB0cnVlOwogfQogCisjZGVmaW5l
IEZPUl9FQUNIX0JPT0xfV0tfUFJFRkVSRU5DRShtYWNybykgXAorICAgIG1hY3JvKGVuYWJsZUNh
cHR1cmVWaWRlb0luVUlQcm9jZXNzLCBDYXB0dXJlVmlkZW9JblVJUHJvY2Vzc0VuYWJsZWQpIFwK
KyAgICBtYWNybyhlbmFibGVDYXB0dXJlVmlkZW9JbkdQVVByb2Nlc3MsIENhcHR1cmVWaWRlb0lu
R1BVUHJvY2Vzc0VuYWJsZWQpIFwKKyAgICBtYWNybyhlbmFibGVDYXB0dXJlQXVkaW9JblVJUHJv
Y2VzcywgQ2FwdHVyZUF1ZGlvSW5VSVByb2Nlc3NFbmFibGVkKSBcCisgICAgbWFjcm8oZW5hYmxl
Q2FwdHVyZUF1ZGlvSW5HUFVQcm9jZXNzLCBDYXB0dXJlQXVkaW9JbkdQVVByb2Nlc3NFbmFibGVk
KSBcCisgICAgbWFjcm8odXNlQWNjZWxlcmF0ZWREcmF3aW5nLCBBY2NlbGVyYXRlZERyYXdpbmdF
bmFibGVkKSBcCisgICAgbWFjcm8odXNlTW9ja1Njcm9sbGJhcnMsIE1vY2tTY3JvbGxiYXJzRW5h
YmxlZCkgXAorICAgIG1hY3JvKG5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzLCBOZWVkc1NpdGVTcGVj
aWZpY1F1aXJrcykgXAorICAgIG1hY3JvKGVuYWJsZUF0dGFjaG1lbnRFbGVtZW50LCBBdHRhY2ht
ZW50RWxlbWVudEVuYWJsZWQpIFwKKyAgICBtYWNybyhlbmFibGVNZW51SXRlbUVsZW1lbnQsIE1l
bnVJdGVtRWxlbWVudEVuYWJsZWQpIFwKKyAgICBtYWNybyhlbmFibGVLZXlnZW5FbGVtZW50LCBL
ZXlnZW5FbGVtZW50RW5hYmxlZCkgXAorICAgIG1hY3JvKGVuYWJsZU1vZGVybk1lZGlhQ29udHJv
bHMsIE1vZGVybk1lZGlhQ29udHJvbHNFbmFibGVkKSBcCisgICAgbWFjcm8oZW5hYmxlV2ViQXV0
aGVudGljYXRpb24sIFdlYkF1dGhlbnRpY2F0aW9uRW5hYmxlZCkgXAorICAgIG1hY3JvKGVuYWJs
ZVdlYkF1dGhlbnRpY2F0aW9uTG9jYWxBdXRoZW50aWNhdG9yLCBXZWJBdXRoZW50aWNhdGlvbkxv
Y2FsQXV0aGVudGljYXRvckVuYWJsZWQpIFwKKyAgICBtYWNybyhlbmFibGVJbnNwZWN0b3JBZGRp
dGlvbnMsIEluc3BlY3RvckFkZGl0aW9uc0VuYWJsZWQpIFwKKyAgICBtYWNybyhhbGxvd0Nyb3Nz
T3JpZ2luU3VicmVzb3VyY2VzVG9Bc2tGb3JDcmVkZW50aWFscywgQWxsb3dDcm9zc09yaWdpblN1
YnJlc291cmNlc1RvQXNrRm9yQ3JlZGVudGlhbHMpIFwKKyAgICBtYWNybyhkb21QYXN0ZUFsbG93
ZWQsIERPTVBhc3RlQWxsb3dlZCkgXAorICAgIG1hY3JvKGVuYWJsZUNvbG9yRmlsdGVyLCBDb2xv
ckZpbHRlckVuYWJsZWQpIFwKKyAgICBtYWNybyhwdW5jaE91dFdoaXRlQmFja2dyb3VuZHNJbkRh
cmtNb2RlLCBQdW5jaE91dFdoaXRlQmFja2dyb3VuZHNJbkRhcmtNb2RlKSBcCisgICAgbWFjcm8o
c2hvdWxkSWdub3JlTWV0YVZpZXdwb3J0LCBTaG91bGRJZ25vcmVNZXRhVmlld3BvcnQpIFwKKyAg
ICBtYWNybyhlbmFibGVBcHBOYXAsIFBhZ2VWaXNpYmlsaXR5QmFzZWRQcm9jZXNzU3VwcHJlc3Np
b25FbmFibGVkKSBcCisgICAgbWFjcm8oZW5hYmxlQmFja0ZvcndhcmRDYWNoZSwgVXNlc0JhY2tG
b3J3YXJkQ2FjaGUpIFwKKyAgICBtYWNybyhlbmFibGVTZXJ2aWNlQ29udHJvbHMsIFNlcnZpY2VD
b250cm9sc0VuYWJsZWQpIFwKKyAgICBtYWNybyhhbGxvd1RvcE5hdmlnYXRpb25Ub0RhdGFVUkxz
LCBBbGxvd1RvcE5hdmlnYXRpb25Ub0RhdGFVUkxzKSBcCisgICAgbWFjcm8odXNlU2VydmljZVdv
cmtlclNob3J0VGltZW91dCwgU2hvdWxkVXNlU2VydmljZVdvcmtlclNob3J0VGltZW91dCkgXAor
XAorCitzdGQ6OnZlY3RvcjxzdGQ6OnBhaXI8c3RkOjpzdHJpbmcsIGJvb2w+PiBUZXN0T3B0aW9u
czo6Ym9vbFdLUHJlZmVyZW5jZXMoKSBjb25zdAoreworICAgIHJldHVybiB7CisjZGVmaW5lIEFE
RF9WQUxVRSh0ZXN0T3B0aW9uc0tleSwgcHJlZmVyZW5jZXNLZXkpIHsgI3ByZWZlcmVuY2VzS2V5
LCBib29sRmVhdHVyZVZhbHVlKCN0ZXN0T3B0aW9uc0tleSkgfSwKKworRk9SX0VBQ0hfQk9PTF9X
S19QUkVGRVJFTkNFKEFERF9WQUxVRSkKKworI3VuZGVmIEFERF9WQUxVRQorICAgIH07Cit9CisK
IHRlbXBsYXRlPHR5cGVuYW1lIFQ+CiBUIGZlYXR1cmVWYWx1ZShzdGQ6OnN0cmluZyBrZXksIGNv
bnN0IHN0ZDo6dW5vcmRlcmVkX21hcDxzdGQ6OnN0cmluZywgVD4mIG1hcCwgY29uc3Qgc3RkOjp1
bm9yZGVyZWRfbWFwPHN0ZDo6c3RyaW5nLCBUPiYgZGVmYXVsdHNNYXApCiB7CkluZGV4OiBUb29s
cy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RPcHRpb25zLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9UZXN0T3B0aW9ucy5oCShyZXZpc2lvbiAyNjgzMzApCisrKyBUb29scy9X
ZWJLaXRUZXN0UnVubmVyL1Rlc3RPcHRpb25zLmgJKHdvcmtpbmcgY29weSkKQEAgLTg3LDY5ICs4
Nyw0OCBAQCBwdWJsaWM6CiAgICAgICAgIH07CiAgICAgfQogCi0gICAgYm9vbCB1c2VUaHJlYWRl
ZFNjcm9sbGluZygpIGNvbnN0IHsgcmV0dXJuIGJvb2xGZWF0dXJlVmFsdWUoInVzZVRocmVhZGVk
U2Nyb2xsaW5nIik7IH0KLSAgICBib29sIHVzZUFjY2VsZXJhdGVkRHJhd2luZygpIGNvbnN0IHsg
cmV0dXJuIGJvb2xGZWF0dXJlVmFsdWUoInVzZUFjY2VsZXJhdGVkRHJhd2luZyIpOyB9Ci0gICAg
Ym9vbCB1c2VSZW1vdGVMYXllclRyZWUoKSBjb25zdCB7IHJldHVybiBib29sRmVhdHVyZVZhbHVl
KCJ1c2VSZW1vdGVMYXllclRyZWUiKTsgfQotICAgIGJvb2wgc2hvdWxkU2hvd1dlYlZpZXcoKSBj
b25zdCB7IHJldHVybiBib29sRmVhdHVyZVZhbHVlKCJzaG91bGRTaG93V2ViVmlldyIpOyB9Ci0g
ICAgYm9vbCB1c2VGbGV4aWJsZVZpZXdwb3J0KCkgY29uc3QgeyByZXR1cm4gYm9vbEZlYXR1cmVW
YWx1ZSgidXNlRmxleGlibGVWaWV3cG9ydCIpOyB9Ci0gICAgYm9vbCB1c2VEYXRhRGV0ZWN0aW9u
KCkgY29uc3QgeyByZXR1cm4gYm9vbEZlYXR1cmVWYWx1ZSgidXNlRGF0YURldGVjdGlvbiIpOyB9
Ci0gICAgYm9vbCB1c2VNb2NrU2Nyb2xsYmFycygpIGNvbnN0IHsgcmV0dXJuIGJvb2xGZWF0dXJl
VmFsdWUoInVzZU1vY2tTY3JvbGxiYXJzIik7IH0KLSAgICBib29sIG5lZWRzU2l0ZVNwZWNpZmlj
UXVpcmtzKCkgY29uc3QgeyByZXR1cm4gYm9vbEZlYXR1cmVWYWx1ZSgibmVlZHNTaXRlU3BlY2lm
aWNRdWlya3MiKTsgfQotICAgIGJvb2wgaWdub3Jlc1ZpZXdwb3J0U2NhbGVMaW1pdHMoKSBjb25z
dCB7IHJldHVybiBib29sRmVhdHVyZVZhbHVlKCJpZ25vcmVzVmlld3BvcnRTY2FsZUxpbWl0cyIp
OyB9Ci0gICAgYm9vbCB1c2VDaGFyYWN0ZXJTZWxlY3Rpb25HcmFudWxhcml0eSgpIGNvbnN0IHsg
cmV0dXJuIGJvb2xGZWF0dXJlVmFsdWUoInVzZUNoYXJhY3RlclNlbGVjdGlvbkdyYW51bGFyaXR5
Iik7IH0KLSAgICBib29sIGVuYWJsZUF0dGFjaG1lbnRFbGVtZW50KCkgY29uc3QgeyByZXR1cm4g
Ym9vbEZlYXR1cmVWYWx1ZSgiZW5hYmxlQXR0YWNobWVudEVsZW1lbnQiKTsgfQotICAgIGJvb2wg
ZW5hYmxlSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoKSBjb25zdCB7IHJldHVybiBib29sRmVhdHVyZVZh
bHVlKCJlbmFibGVJbnRlcnNlY3Rpb25PYnNlcnZlciIpOyB9Ci0gICAgYm9vbCB1c2VFcGhlbWVy
YWxTZXNzaW9uKCkgY29uc3QgeyByZXR1cm4gYm9vbEZlYXR1cmVWYWx1ZSgidXNlRXBoZW1lcmFs
U2Vzc2lvbiIpOyB9Ci0gICAgYm9vbCBlbmFibGVNZW51SXRlbUVsZW1lbnQoKSBjb25zdCB7IHJl
dHVybiBib29sRmVhdHVyZVZhbHVlKCJlbmFibGVNZW51SXRlbUVsZW1lbnQiKTsgfQotICAgIGJv
b2wgZW5hYmxlS2V5Z2VuRWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIGJvb2xGZWF0dXJlVmFsdWUo
ImVuYWJsZUtleWdlbkVsZW1lbnQiKTsgfQotICAgIGJvb2wgZW5hYmxlTW9kZXJuTWVkaWFDb250
cm9scygpIGNvbnN0IHsgcmV0dXJuIGJvb2xGZWF0dXJlVmFsdWUoImVuYWJsZU1vZGVybk1lZGlh
Q29udHJvbHMiKTsgfQotICAgIGJvb2wgZW5hYmxlUG9pbnRlckxvY2soKSBjb25zdCB7IHJldHVy
biBib29sRmVhdHVyZVZhbHVlKCJlbmFibGVQb2ludGVyTG9jayIpOyB9Ci0gICAgYm9vbCBlbmFi
bGVXZWJBdXRoZW50aWNhdGlvbigpIGNvbnN0IHsgcmV0dXJuIGJvb2xGZWF0dXJlVmFsdWUoImVu
YWJsZVdlYkF1dGhlbnRpY2F0aW9uIik7IH0KLSAgICBib29sIGVuYWJsZVdlYkF1dGhlbnRpY2F0
aW9uTG9jYWxBdXRoZW50aWNhdG9yKCkgY29uc3QgeyByZXR1cm4gYm9vbEZlYXR1cmVWYWx1ZSgi
ZW5hYmxlV2ViQXV0aGVudGljYXRpb25Mb2NhbEF1dGhlbnRpY2F0b3IiKTsgfQotICAgIGJvb2wg
ZW5hYmxlSW5zcGVjdG9yQWRkaXRpb25zKCkgY29uc3QgeyByZXR1cm4gYm9vbEZlYXR1cmVWYWx1
ZSgiZW5hYmxlSW5zcGVjdG9yQWRkaXRpb25zIik7IH0KLSAgICBib29sIHNob3VsZFNob3dUb3Vj
aGVzKCkgY29uc3QgeyByZXR1cm4gYm9vbEZlYXR1cmVWYWx1ZSgic2hvdWxkU2hvd1RvdWNoZXMi
KTsgfQorICAgIGJvb2wgYWxsb3dUb3BOYXZpZ2F0aW9uVG9EYXRhVVJMcygpIGNvbnN0IHsgcmV0
dXJuIGJvb2xGZWF0dXJlVmFsdWUoImFsbG93VG9wTmF2aWdhdGlvblRvRGF0YVVSTHMiKTsgfQor
ICAgIGJvb2wgYWxsb3dzTGlua1ByZXZpZXcoKSBjb25zdCB7IHJldHVybiBib29sRmVhdHVyZVZh
bHVlKCJhbGxvd3NMaW5rUHJldmlldyIpOyB9CiAgICAgYm9vbCBkdW1wSlNDb25zb2xlTG9nSW5T
dGRFcnIoKSBjb25zdCB7IHJldHVybiBib29sRmVhdHVyZVZhbHVlKCJkdW1wSlNDb25zb2xlTG9n
SW5TdGRFcnIiKTsgfQotICAgIGJvb2wgYWxsb3dDcm9zc09yaWdpblN1YnJlc291cmNlc1RvQXNr
Rm9yQ3JlZGVudGlhbHMoKSBjb25zdCB7IHJldHVybiBib29sRmVhdHVyZVZhbHVlKCJhbGxvd0Ny
b3NzT3JpZ2luU3VicmVzb3VyY2VzVG9Bc2tGb3JDcmVkZW50aWFscyIpOyB9Ci0gICAgYm9vbCBk
b21QYXN0ZUFsbG93ZWQoKSBjb25zdCB7IHJldHVybiBib29sRmVhdHVyZVZhbHVlKCJkb21QYXN0
ZUFsbG93ZWQiKTsgfQotICAgIGJvb2wgZW5hYmxlQ29sb3JGaWx0ZXIoKSBjb25zdCB7IHJldHVy
biBib29sRmVhdHVyZVZhbHVlKCJlbmFibGVDb2xvckZpbHRlciIpOyB9Ci0gICAgYm9vbCBwdW5j
aE91dFdoaXRlQmFja2dyb3VuZHNJbkRhcmtNb2RlKCkgY29uc3QgeyByZXR1cm4gYm9vbEZlYXR1
cmVWYWx1ZSgicHVuY2hPdXRXaGl0ZUJhY2tncm91bmRzSW5EYXJrTW9kZSIpOyB9Ci0gICAgYm9v
bCBydW5TaW5nbHkoKSBjb25zdCB7IHJldHVybiBib29sRmVhdHVyZVZhbHVlKCJydW5TaW5nbHki
KTsgfQotICAgIGJvb2wgY2hlY2tGb3JXb3JsZExlYWtzKCkgY29uc3QgeyByZXR1cm4gYm9vbEZl
YXR1cmVWYWx1ZSgiY2hlY2tGb3JXb3JsZExlYWtzIik7IH0KLSAgICBib29sIHNob3VsZElnbm9y
ZU1ldGFWaWV3cG9ydCgpIGNvbnN0IHsgcmV0dXJuIGJvb2xGZWF0dXJlVmFsdWUoInNob3VsZEln
bm9yZU1ldGFWaWV3cG9ydCIpOyB9Ci0gICAgYm9vbCBzaG91bGRTaG93U3BlbGxDaGVja2luZ0Rv
dHMoKSBjb25zdCB7IHJldHVybiBib29sRmVhdHVyZVZhbHVlKCJzcGVsbENoZWNraW5nRG90cyIp
OyB9Ci0gICAgYm9vbCBlbmFibGVTZXJ2aWNlQ29udHJvbHMoKSBjb25zdCB7IHJldHVybiBib29s
RmVhdHVyZVZhbHVlKCJlbmFibGVTZXJ2aWNlQ29udHJvbHMiKTsgfQogICAgIGJvb2wgZWRpdGFi
bGUoKSBjb25zdCB7IHJldHVybiBib29sRmVhdHVyZVZhbHVlKCJlZGl0YWJsZSIpOyB9Ci0gICAg
Ym9vbCBzaG91bGRIYW5kbGVSdW5PcGVuUGFuZWwoKSBjb25zdCB7IHJldHVybiBib29sRmVhdHVy
ZVZhbHVlKCJzaG91bGRIYW5kbGVSdW5PcGVuUGFuZWwiKTsgfQotICAgIGJvb2wgc2hvdWxkUHJl
c2VudFBvcG92ZXJzKCkgY29uc3QgeyByZXR1cm4gYm9vbEZlYXR1cmVWYWx1ZSgic2hvdWxkUHJl
c2VudFBvcG92ZXJzIik7IH0KLSAgICBib29sIGVuYWJsZUFwcE5hcCgpIGNvbnN0IHsgcmV0dXJu
IGJvb2xGZWF0dXJlVmFsdWUoImVuYWJsZUFwcE5hcCIpOyB9Ci0gICAgYm9vbCBlbmFibGVCYWNr
Rm9yd2FyZENhY2hlKCkgY29uc3QgeyByZXR1cm4gYm9vbEZlYXR1cmVWYWx1ZSgiZW5hYmxlQmFj
a0ZvcndhcmRDYWNoZSIpOyB9Ci0gICAgYm9vbCBhbGxvd3NMaW5rUHJldmlldygpIGNvbnN0IHsg
cmV0dXJuIGJvb2xGZWF0dXJlVmFsdWUoImFsbG93c0xpbmtQcmV2aWV3Iik7IH0KLSAgICBib29s
IGVuYWJsZUNhcHR1cmVWaWRlb0luVUlQcm9jZXNzKCkgY29uc3QgeyByZXR1cm4gYm9vbEZlYXR1
cmVWYWx1ZSgiZW5hYmxlQ2FwdHVyZVZpZGVvSW5VSVByb2Nlc3MiKTsgfQotICAgIGJvb2wgZW5h
YmxlQ2FwdHVyZVZpZGVvSW5HUFVQcm9jZXNzKCkgY29uc3QgeyByZXR1cm4gYm9vbEZlYXR1cmVW
YWx1ZSgiZW5hYmxlQ2FwdHVyZVZpZGVvSW5HUFVQcm9jZXNzIik7IH0KLSAgICBib29sIGVuYWJs
ZUNhcHR1cmVBdWRpb0luVUlQcm9jZXNzKCkgY29uc3QgeyByZXR1cm4gYm9vbEZlYXR1cmVWYWx1
ZSgiZW5hYmxlQ2FwdHVyZUF1ZGlvSW5VSVByb2Nlc3MiKTsgfQotICAgIGJvb2wgZW5hYmxlQ2Fw
dHVyZUF1ZGlvSW5HUFVQcm9jZXNzKCkgY29uc3QgeyByZXR1cm4gYm9vbEZlYXR1cmVWYWx1ZSgi
ZW5hYmxlQ2FwdHVyZUF1ZGlvSW5HUFVQcm9jZXNzIik7IH0KLSAgICBib29sIGFsbG93VG9wTmF2
aWdhdGlvblRvRGF0YVVSTHMoKSBjb25zdCB7IHJldHVybiBib29sRmVhdHVyZVZhbHVlKCJhbGxv
d1RvcE5hdmlnYXRpb25Ub0RhdGFVUkxzIik7IH0KKyAgICBib29sIGVuYWJsZUF0dGFjaG1lbnRF
bGVtZW50KCkgY29uc3QgeyByZXR1cm4gYm9vbEZlYXR1cmVWYWx1ZSgiZW5hYmxlQXR0YWNobWVu
dEVsZW1lbnQiKTsgfQogICAgIGJvb2wgZW5hYmxlSW5BcHBCcm93c2VyUHJpdmFjeSgpIGNvbnN0
IHsgcmV0dXJuIGJvb2xGZWF0dXJlVmFsdWUoImVuYWJsZUluQXBwQnJvd3NlclByaXZhY3kiKTsg
fQotICAgIGJvb2wgaXNBcHBCb3VuZFdlYlZpZXcoKSBjb25zdCB7IHJldHVybiBib29sRmVhdHVy
ZVZhbHVlKCJpc0FwcEJvdW5kV2ViVmlldyIpOyB9Ci0gICAgYm9vbCBpZ25vcmVTeW5jaHJvbm91
c01lc3NhZ2luZ1RpbWVvdXRzKCkgY29uc3QgeyByZXR1cm4gYm9vbEZlYXR1cmVWYWx1ZSgiaWdu
b3JlU3luY2hyb25vdXNNZXNzYWdpbmdUaW1lb3V0cyIpOyB9CiAgICAgYm9vbCBlbmFibGVQcm9j
ZXNzU3dhcE9uTmF2aWdhdGlvbigpIGNvbnN0IHsgcmV0dXJuIGJvb2xGZWF0dXJlVmFsdWUoImVu
YWJsZVByb2Nlc3NTd2FwT25OYXZpZ2F0aW9uIik7IH0KICAgICBib29sIGVuYWJsZVByb2Nlc3NT
d2FwT25XaW5kb3dPcGVuKCkgY29uc3QgeyByZXR1cm4gYm9vbEZlYXR1cmVWYWx1ZSgiZW5hYmxl
UHJvY2Vzc1N3YXBPbldpbmRvd09wZW4iKTsgfQorICAgIGJvb2wgaWdub3JlU3luY2hyb25vdXNN
ZXNzYWdpbmdUaW1lb3V0cygpIGNvbnN0IHsgcmV0dXJuIGJvb2xGZWF0dXJlVmFsdWUoImlnbm9y
ZVN5bmNocm9ub3VzTWVzc2FnaW5nVGltZW91dHMiKTsgfQorICAgIGJvb2wgaWdub3Jlc1ZpZXdw
b3J0U2NhbGVMaW1pdHMoKSBjb25zdCB7IHJldHVybiBib29sRmVhdHVyZVZhbHVlKCJpZ25vcmVz
Vmlld3BvcnRTY2FsZUxpbWl0cyIpOyB9CisgICAgYm9vbCBpc0FwcEJvdW5kV2ViVmlldygpIGNv
bnN0IHsgcmV0dXJuIGJvb2xGZWF0dXJlVmFsdWUoImlzQXBwQm91bmRXZWJWaWV3Iik7IH0KKyAg
ICBib29sIHB1bmNoT3V0V2hpdGVCYWNrZ3JvdW5kc0luRGFya01vZGUoKSBjb25zdCB7IHJldHVy
biBib29sRmVhdHVyZVZhbHVlKCJwdW5jaE91dFdoaXRlQmFja2dyb3VuZHNJbkRhcmtNb2RlIik7
IH0KKyAgICBib29sIHJ1blNpbmdseSgpIGNvbnN0IHsgcmV0dXJuIGJvb2xGZWF0dXJlVmFsdWUo
InJ1blNpbmdseSIpOyB9CisgICAgYm9vbCBzaG91bGRIYW5kbGVSdW5PcGVuUGFuZWwoKSBjb25z
dCB7IHJldHVybiBib29sRmVhdHVyZVZhbHVlKCJzaG91bGRIYW5kbGVSdW5PcGVuUGFuZWwiKTsg
fQorICAgIGJvb2wgc2hvdWxkUHJlc2VudFBvcG92ZXJzKCkgY29uc3QgeyByZXR1cm4gYm9vbEZl
YXR1cmVWYWx1ZSgic2hvdWxkUHJlc2VudFBvcG92ZXJzIik7IH0KKyAgICBib29sIHNob3VsZFNo
b3dTcGVsbENoZWNraW5nRG90cygpIGNvbnN0IHsgcmV0dXJuIGJvb2xGZWF0dXJlVmFsdWUoInNw
ZWxsQ2hlY2tpbmdEb3RzIik7IH0KKyAgICBib29sIHNob3VsZFNob3dUb3VjaGVzKCkgY29uc3Qg
eyByZXR1cm4gYm9vbEZlYXR1cmVWYWx1ZSgic2hvdWxkU2hvd1RvdWNoZXMiKTsgfQorICAgIGJv
b2wgc2hvdWxkU2hvd1dlYlZpZXcoKSBjb25zdCB7IHJldHVybiBib29sRmVhdHVyZVZhbHVlKCJz
aG91bGRTaG93V2ViVmlldyIpOyB9CisgICAgYm9vbCB1c2VDaGFyYWN0ZXJTZWxlY3Rpb25HcmFu
dWxhcml0eSgpIGNvbnN0IHsgcmV0dXJuIGJvb2xGZWF0dXJlVmFsdWUoInVzZUNoYXJhY3RlclNl
bGVjdGlvbkdyYW51bGFyaXR5Iik7IH0KKyAgICBib29sIHVzZURhdGFEZXRlY3Rpb24oKSBjb25z
dCB7IHJldHVybiBib29sRmVhdHVyZVZhbHVlKCJ1c2VEYXRhRGV0ZWN0aW9uIik7IH0KKyAgICBi
b29sIHVzZUVwaGVtZXJhbFNlc3Npb24oKSBjb25zdCB7IHJldHVybiBib29sRmVhdHVyZVZhbHVl
KCJ1c2VFcGhlbWVyYWxTZXNzaW9uIik7IH0KKyAgICBib29sIHVzZUZsZXhpYmxlVmlld3BvcnQo
KSBjb25zdCB7IHJldHVybiBib29sRmVhdHVyZVZhbHVlKCJ1c2VGbGV4aWJsZVZpZXdwb3J0Iik7
IH0KKyAgICBib29sIHVzZVJlbW90ZUxheWVyVHJlZSgpIGNvbnN0IHsgcmV0dXJuIGJvb2xGZWF0
dXJlVmFsdWUoInVzZVJlbW90ZUxheWVyVHJlZSIpOyB9CiAgICAgYm9vbCB1c2VTZXJ2aWNlV29y
a2VyU2hvcnRUaW1lb3V0KCkgY29uc3QgeyByZXR1cm4gYm9vbEZlYXR1cmVWYWx1ZSgidXNlU2Vy
dmljZVdvcmtlclNob3J0VGltZW91dCIpOyB9CisgICAgYm9vbCB1c2VUaHJlYWRlZFNjcm9sbGlu
ZygpIGNvbnN0IHsgcmV0dXJuIGJvb2xGZWF0dXJlVmFsdWUoInVzZVRocmVhZGVkU2Nyb2xsaW5n
Iik7IH0KICAgICBkb3VibGUgY29udGVudEluc2V0VG9wKCkgY29uc3QgeyByZXR1cm4gZG91Ymxl
RmVhdHVyZVZhbHVlKCJjb250ZW50SW5zZXQudG9wIik7IH0KICAgICBkb3VibGUgZGV2aWNlU2Nh
bGVGYWN0b3IoKSBjb25zdCB7IHJldHVybiBkb3VibGVGZWF0dXJlVmFsdWUoImRldmljZVNjYWxl
RmFjdG9yIik7IH0KLSAgICBkb3VibGUgdmlld1dpZHRoKCkgY29uc3QgeyByZXR1cm4gZG91Ymxl
RmVhdHVyZVZhbHVlKCJ2aWV3V2lkdGgiKTsgfQogICAgIGRvdWJsZSB2aWV3SGVpZ2h0KCkgY29u
c3QgeyByZXR1cm4gZG91YmxlRmVhdHVyZVZhbHVlKCJ2aWV3SGVpZ2h0Iik7IH0KKyAgICBkb3Vi
bGUgdmlld1dpZHRoKCkgY29uc3QgeyByZXR1cm4gZG91YmxlRmVhdHVyZVZhbHVlKCJ2aWV3V2lk
dGgiKTsgfQorICAgIHN0ZDo6c3RyaW5nIGFkZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVzKCkg
Y29uc3QgeyByZXR1cm4gc3RyaW5nRmVhdHVyZVZhbHVlKCJhZGRpdGlvbmFsU3VwcG9ydGVkSW1h
Z2VUeXBlcyIpOyB9CisgICAgc3RkOjpzdHJpbmcgYXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVy
KCkgY29uc3QgeyByZXR1cm4gc3RyaW5nRmVhdHVyZVZhbHVlKCJhcHBsaWNhdGlvbkJ1bmRsZUlk
ZW50aWZpZXIiKTsgfQogICAgIHN0ZDo6c3RyaW5nIGFwcGxpY2F0aW9uTWFuaWZlc3QoKSBjb25z
dCB7IHJldHVybiBzdHJpbmdGZWF0dXJlVmFsdWUoImFwcGxpY2F0aW9uTWFuaWZlc3QiKTsgfQor
ICAgIHN0ZDo6c3RyaW5nIGNvbnRlbnRNb2RlKCkgY29uc3QgeyByZXR1cm4gc3RyaW5nRmVhdHVy
ZVZhbHVlKCJjb250ZW50TW9kZSIpOyB9CiAgICAgc3RkOjpzdHJpbmcganNjT3B0aW9ucygpIGNv
bnN0IHsgcmV0dXJuIHN0cmluZ0ZlYXR1cmVWYWx1ZSgianNjT3B0aW9ucyIpOyB9Ci0gICAgc3Rk
OjpzdHJpbmcgYWRkaXRpb25hbFN1cHBvcnRlZEltYWdlVHlwZXMoKSBjb25zdCB7IHJldHVybiBz
dHJpbmdGZWF0dXJlVmFsdWUoImFkZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVzIik7IH0KICAg
ICBzdGQ6OnN0cmluZyBzdGFuZGFsb25lV2ViQXBwbGljYXRpb25VUkwoKSBjb25zdCB7IHJldHVy
biBzdHJpbmdGZWF0dXJlVmFsdWUoInN0YW5kYWxvbmVXZWJBcHBsaWNhdGlvblVSTCIpOyB9Ci0g
ICAgc3RkOjpzdHJpbmcgY29udGVudE1vZGUoKSBjb25zdCB7IHJldHVybiBzdHJpbmdGZWF0dXJl
VmFsdWUoImNvbnRlbnRNb2RlIik7IH0KLSAgICBzdGQ6OnN0cmluZyBhcHBsaWNhdGlvbkJ1bmRs
ZUlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBzdHJpbmdGZWF0dXJlVmFsdWUoImFwcGxpY2F0
aW9uQnVuZGxlSWRlbnRpZmllciIpOyB9CiAgICAgc3RkOjp2ZWN0b3I8c3RkOjpzdHJpbmc+IG92
ZXJyaWRlTGFuZ3VhZ2VzKCkgY29uc3QgeyByZXR1cm4gc3RyaW5nVmVjdG9yRmVhdHVyZVZhbHVl
KCJsYW5ndWFnZSIpOyB9CiAKICAgICBjb25zdCBzdGQ6OnVub3JkZXJlZF9tYXA8c3RkOjpzdHJp
bmcsIGJvb2w+JiBleHBlcmltZW50YWxGZWF0dXJlcygpIGNvbnN0IHsgcmV0dXJuIG1fZmVhdHVy
ZXMuZXhwZXJpbWVudGFsRmVhdHVyZXM7IH0KICAgICBjb25zdCBzdGQ6OnVub3JkZXJlZF9tYXA8
c3RkOjpzdHJpbmcsIGJvb2w+JiBpbnRlcm5hbERlYnVnRmVhdHVyZXMoKSBjb25zdCB7IHJldHVy
biBtX2ZlYXR1cmVzLmludGVybmFsRGVidWdGZWF0dXJlczsgfQogCisgICAgc3RkOjp2ZWN0b3I8
c3RkOjpwYWlyPHN0ZDo6c3RyaW5nLCBib29sPj4gYm9vbFdLUHJlZmVyZW5jZXMoKSBjb25zdDsK
KwogICAgIGJvb2wgaGFzU2FtZUluaXRpYWxpemF0aW9uT3B0aW9ucyhjb25zdCBUZXN0T3B0aW9u
cyYpIGNvbnN0OwogCiBwcml2YXRlOgpJbmRleDogVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2Nv
YS9UZXN0Q29udHJvbGxlckNvY29hLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1dlYktpdFRlc3RS
dW5uZXIvY29jb2EvVGVzdENvbnRyb2xsZXJDb2NvYS5tbQkocmV2aXNpb24gMjY4MzMwKQorKysg
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0Q29udHJvbGxlckNvY29hLm1tCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zMiw2ICszMiw3IEBACiAjaW1wb3J0ICJUZXN0SW52b2NhdGlvbi5oIgog
I2ltcG9ydCAiVGVzdFJ1bm5lcldLV2ViVmlldy5oIgogI2ltcG9ydCAiVGVzdFdlYnNpdGVEYXRh
U3RvcmVEZWxlZ2F0ZS5oIgorI2ltcG9ydCAiV2ViQ29yZVRlc3RTdXBwb3J0LmgiCiAjaW1wb3J0
IDxGb3VuZGF0aW9uL0ZvdW5kYXRpb24uaD4KICNpbXBvcnQgPFNlY3VyaXR5L1NlY0l0ZW0uaD4K
ICNpbXBvcnQgPFdlYktpdC9XS0NvbnRleHRDb25maWd1cmF0aW9uUmVmLmg+CkBAIC0xNTgsMTgg
KzE1OSwxMiBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybUNyZWF0ZVdlYlZpCiAgICAg
ICAgIFtjb3BpZWRDb25maWd1cmF0aW9uIHNldFNlbGVjdGlvbkdyYW51bGFyaXR5OldLU2VsZWN0
aW9uR3JhbnVsYXJpdHlDaGFyYWN0ZXJdOwogICAgIGlmIChvcHRpb25zLmlzQXBwQm91bmRXZWJW
aWV3KCkpCiAgICAgICAgIFtjb3BpZWRDb25maWd1cmF0aW9uIHNldExpbWl0c05hdmlnYXRpb25z
VG9BcHBCb3VuZERvbWFpbnM6WUVTXTsKLSNlbHNlCi0gICAgW2NvcGllZENvbmZpZ3VyYXRpb24g
X3NldFNlcnZpY2VDb250cm9sc0VuYWJsZWQ6b3B0aW9ucy5lbmFibGVTZXJ2aWNlQ29udHJvbHMo
KV07CiAjZW5kaWYKIAogICAgIGlmIChvcHRpb25zLmVuYWJsZUF0dGFjaG1lbnRFbGVtZW50KCkp
CiAgICAgICAgIFtjb3BpZWRDb25maWd1cmF0aW9uIF9zZXRBdHRhY2htZW50RWxlbWVudEVuYWJs
ZWQ6WUVTXTsKIAotICAgIGlmIChvcHRpb25zLmVuYWJsZUNvbG9yRmlsdGVyKCkpCi0gICAgICAg
IFtjb3BpZWRDb25maWd1cmF0aW9uIF9zZXRDb2xvckZpbHRlckVuYWJsZWQ6WUVTXTsKLQogICAg
IFtjb3BpZWRDb25maWd1cmF0aW9uIHNldFdlYnNpdGVEYXRhU3RvcmU6KFdLV2Vic2l0ZURhdGFT
dG9yZSAqKXdlYnNpdGVEYXRhU3RvcmUoKV07Ci0KICAgICBbY29waWVkQ29uZmlndXJhdGlvbiBf
c2V0QWxsb3dUb3BOYXZpZ2F0aW9uVG9EYXRhVVJMczpvcHRpb25zLmFsbG93VG9wTmF2aWdhdGlv
blRvRGF0YVVSTHMoKV07CiAKICAgICBjb25maWd1cmVDb250ZW50TW9kZShjb3BpZWRDb25maWd1
cmF0aW9uLmdldCgpLCBvcHRpb25zKTsKQEAgLTI5OCw2ICsyOTMsOCBAQCB2b2lkIFRlc3RDb250
cm9sbGVyOjpjb2NvYVJlc2V0U3RhdGVUb0NvCiAgICAgfQogCiAgICAgW2dsb2JhbFdlYnNpdGVE
YXRhU3RvcmVEZWxlZ2F0ZUNsaWVudCBzZXRBbGxvd1JhaXNpbmdRdW90YTpZRVNdOworCisgICAg
V2ViQ29yZVRlc3RTdXBwb3J0OjpzZXRBZGRpdGlvbmFsU3VwcG9ydGVkSW1hZ2VUeXBlc0ZvclRl
c3Rpbmcob3B0aW9ucy5hZGRpdGlvbmFsU3VwcG9ydGVkSW1hZ2VUeXBlcygpLmNfc3RyKCkpOwog
fQogCiB2b2lkIFRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybVdpbGxSdW5UZXN0KGNvbnN0IFRlc3RJ
bnZvY2F0aW9uJiB0ZXN0SW52b2NhdGlvbikKSW5kZXg6IFRvb2xzL1dlYktpdFRlc3RSdW5uZXIv
Z3RrL1Rlc3RDb250cm9sbGVyR3RrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9XZWJLaXRUZXN0
UnVubmVyL2d0ay9UZXN0Q29udHJvbGxlckd0ay5jcHAJKHJldmlzaW9uIDI2ODMzMCkKKysrIFRv
b2xzL1dlYktpdFRlc3RSdW5uZXIvZ3RrL1Rlc3RDb250cm9sbGVyR3RrLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUgIlRlc3RDb250cm9sbGVyLmgiCiAKICNp
bmNsdWRlICJQbGF0Zm9ybVdlYlZpZXcuaCIKKyNpbmNsdWRlIDxXZWJLaXQvV0tUZXh0Q2hlY2tl
ci5oPgogI2luY2x1ZGUgPGd0ay9ndGsuaD4KICNpbmNsdWRlIDx3dGYvUGxhdGZvcm0uaD4KICNp
bmNsdWRlIDx3dGYvUnVuTG9vcC5oPgpAQCAtMTUwLDYgKzE1MSwxMiBAQCB2b2lkIFRlc3RDb250
cm9sbGVyOjpwbGF0Zm9ybVJlc2V0UHJlZmVyCiAgICAgbV9tYWluV2ViVmlldy0+ZGlzbWlzc0Fs
bFBvcHVwTWVudXMoKTsKIH0KIAorYm9vbCBUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1SZXNldFN0
YXRlVG9Db25zaXN0ZW50VmFsdWVzKGNvbnN0IFRlc3RPcHRpb25zJikKK3sKKyAgICBXS1RleHRD
aGVja2VyQ29udGludW91c1NwZWxsQ2hlY2tpbmdFbmFibGVkU3RhdGVDaGFuZ2VkKHRydWUpOwor
ICAgIHJldHVybiB0cnVlOworfQorCiBUZXN0RmVhdHVyZXMgVGVzdENvbnRyb2xsZXI6OnBsYXRm
b3JtU3BlY2lmaWNGZWF0dXJlRGVmYXVsdHNGb3JUZXN0KGNvbnN0IFRlc3RDb21tYW5kJikgY29u
c3QKIHsKICAgICBUZXN0RmVhdHVyZXMgZmVhdHVyZXM7CkluZGV4OiBUb29scy9XZWJLaXRUZXN0
UnVubmVyL2lvcy9UZXN0Q29udHJvbGxlcklPUy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9XZWJL
aXRUZXN0UnVubmVyL2lvcy9UZXN0Q29udHJvbGxlcklPUy5tbQkocmV2aXNpb24gMjY4MzMwKQor
KysgVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9pb3MvVGVzdENvbnRyb2xsZXJJT1MubW0JKHdvcmtp
bmcgY29weSkKQEAgLTE0OCw3ICsxNDgsNiBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpwbGF0Zm9y
bVJlc2V0UHJlZmVyCiAgICAgV0tQcmVmZXJlbmNlc1NldFRleHRBdXRvc2l6aW5nRW5hYmxlZChw
cmVmZXJlbmNlcywgZmFsc2UpOwogICAgIFdLUHJlZmVyZW5jZXNTZXRUZXh0QXV0b3NpemluZ1Vz
ZXNJZGVtcG90ZW50TW9kZShwcmVmZXJlbmNlcywgZmFsc2UpOwogICAgIFdLUHJlZmVyZW5jZXNT
ZXRDb250ZW50Q2hhbmdlT2JzZXJ2ZXJFbmFibGVkKHByZWZlcmVuY2VzLCBmYWxzZSk7Ci0gICAg
WyhfX2JyaWRnZSBXS1ByZWZlcmVuY2VzICopcHJlZmVyZW5jZXMgX3NldFNob3VsZElnbm9yZU1l
dGFWaWV3cG9ydDpOT107CiB9CiAKIGJvb2wgVGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtUmVzZXRT
dGF0ZVRvQ29uc2lzdGVudFZhbHVlcyhjb25zdCBUZXN0T3B0aW9ucyYgb3B0aW9ucykKQEAgLTI2
OSw5ICsyNjgsNiBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybUNvbmZpZ3VyZVZpCiAK
ICAgICBUZXN0UnVubmVyV0tXZWJWaWV3ICp3ZWJWaWV3ID0gbWFpbldlYlZpZXcoKS0+cGxhdGZv
cm1WaWV3KCk7CiAKLSAgICBpZiAodGVzdC5vcHRpb25zKCkuc2hvdWxkSWdub3JlTWV0YVZpZXdw
b3J0KCkpCi0gICAgICAgIHdlYlZpZXcuY29uZmlndXJhdGlvbi5wcmVmZXJlbmNlcy5fc2hvdWxk
SWdub3JlTWV0YVZpZXdwb3J0ID0gWUVTOwotCiAgICAgaWYgKCF0ZXN0Lm9wdGlvbnMoKS51c2VG
bGV4aWJsZVZpZXdwb3J0KCkpCiAgICAgICAgIHJldHVybjsKIApJbmRleDogVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci93aW4vVGVzdENvbnRyb2xsZXJXaW4uY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xz
L1dlYktpdFRlc3RSdW5uZXIvd2luL1Rlc3RDb250cm9sbGVyV2luLmNwcAkocmV2aXNpb24gMjY4
MzMwKQorKysgVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci93aW4vVGVzdENvbnRyb2xsZXJXaW4uY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0yMjcsNiArMjI3LDExIEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6
OnBsYXRmb3JtUmVzZXRQcmVmZXIKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCitib29sIFRl
c3RDb250cm9sbGVyOjpwbGF0Zm9ybVJlc2V0U3RhdGVUb0NvbnNpc3RlbnRWYWx1ZXMoY29uc3Qg
VGVzdE9wdGlvbnMmKQoreworICAgIHJldHVybiB0cnVlOworfQorCiBUZXN0RmVhdHVyZXMgVGVz
dENvbnRyb2xsZXI6OnBsYXRmb3JtU3BlY2lmaWNGZWF0dXJlRGVmYXVsdHNGb3JUZXN0KGNvbnN0
IFRlc3RDb21tYW5kJikgY29uc3QKIHsKICAgICByZXR1cm4geyB9OwpJbmRleDogVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci93cGUvVGVzdENvbnRyb2xsZXJXUEUuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRv
b2xzL1dlYktpdFRlc3RSdW5uZXIvd3BlL1Rlc3RDb250cm9sbGVyV1BFLmNwcAkocmV2aXNpb24g
MjY4MzMwKQorKysgVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci93cGUvVGVzdENvbnRyb2xsZXJXUEUu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzYsNiArMTM2LDExIEBAIHZvaWQgVGVzdENvbnRyb2xs
ZXI6OnBsYXRmb3JtUmVzZXRQcmVmZXIKIHsKIH0KIAorYm9vbCBUZXN0Q29udHJvbGxlcjo6cGxh
dGZvcm1SZXNldFN0YXRlVG9Db25zaXN0ZW50VmFsdWVzKGNvbnN0IFRlc3RPcHRpb25zJikKK3sK
KyAgICByZXR1cm4gdHJ1ZTsKK30KKwogVGVzdEZlYXR1cmVzIFRlc3RDb250cm9sbGVyOjpwbGF0
Zm9ybVNwZWNpZmljRmVhdHVyZURlZmF1bHRzRm9yVGVzdChjb25zdCBUZXN0Q29tbWFuZCYpIGNv
bnN0CiB7CiAgICAgVGVzdEZlYXR1cmVzIGZlYXR1cmVzOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411092</attachid>
            <date>2020-10-11 19:35:38 -0700</date>
            <delta_ts>2020-10-11 23:29:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217582-20201011193537.patch</filename>
            <type>text/plain</type>
            <size>71171</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNjgzMzApCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM2IEBACisyMDIwLTEwLTExICBTYW0gV2Vpbmln
ICA8d2VpbmlnQGFwcGxlLmNvbT4KKworICAgICAgICBbUHJlZmVyZW5jZXNdIEludHJvZHVjZSBz
dHJpbmcgYmFzZWQgU1BJIGZvciBXS1ByZWZlcmVuY2VzIHRvIGFsbG93IHRlc3RzIHRvIGNoYW5n
ZSBpbnRlcm5hbCBiZWhhdmlvciB3aXRob3V0IGFsd2F5cyBhZGRpbmcgYWRkaXRpb25hbCBTUEkK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzU4Mgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBTUEkg
Zm9yIHNldHRpbmcgYW55IFdlYktpdCBwcmVmZXJlbmNlIHVzaW5nIHRoZSBrZXkgYXMgZGVmaW5l
ZCBpbiB0aGUgV2ViUHJlZmVyZW5jZXMqLnlhbWwKKyAgICAgICAgZmlsZXMuIFRoaXMgd2lsbCBh
bGxvdyBhZGRpbmcgdGVzdGluZyBvZiBub24tZGVmYXVsdCBiZWhhdmlvciB0aGF0IHdlIGRvbid0
IG5lY2Vzc2FyaWx5IHdhbnQgdG8KKyAgICAgICAgZXhwb3NlIHZpYSBpdHMgb3duIEFQSSBvciBT
UEkuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNl
cy1pbnB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2Zp
bGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogU2NyaXB0
cy9QcmVmZXJlbmNlc1RlbXBsYXRlcy9XZWJQcmVmZXJlbmNlc0dldHRlclNldHRlcnMuY3BwLmVy
YjogQWRkZWQuCisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6Cisg
ICAgICAgIEFkZCBuZXcgZ2VuZXJhdGVkIGZpbGUsIFdlYlByZWZlcmVuY2VzR2V0dGVyU2V0dGVy
cy5jcHAuCisKKyAgICAgICAgKiBTY3JpcHRzL1ByZWZlcmVuY2VzVGVtcGxhdGVzL1dlYlByZWZl
cmVuY2VzRXhwZXJpbWVudGFsRmVhdHVyZXMuY3BwLmVyYjoKKyAgICAgICAgKiBTY3JpcHRzL1By
ZWZlcmVuY2VzVGVtcGxhdGVzL1dlYlByZWZlcmVuY2VzSW50ZXJuYWxEZWJ1Z0ZlYXR1cmVzLmNw
cC5lcmI6CisgICAgICAgIE1vdmVkIGdldHRlci9zZXR0ZXIgZGVmaW5pdGlvbnMgdG8gV2ViUHJl
ZmVyZW5jZXNHZXR0ZXJTZXR0ZXJzLmNwcC5lcmIKKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQ
cmVmZXJlbmNlcy5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByZWZlcmVuY2VzLmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwOgorICAgICAgICAoV0tQ
cmVmZXJlbmNlc1NldEJvb2xWYWx1ZUZvcktleSk6CisgICAgICAgIChXS1ByZWZlcmVuY2VzU2V0
RG91YmxlVmFsdWVGb3JLZXkpOgorICAgICAgICAoV0tQcmVmZXJlbmNlc1NldFVJbnQzMlZhbHVl
Rm9yS2V5KToKKyAgICAgICAgKFdLUHJlZmVyZW5jZXNTZXRTdHJpbmdWYWx1ZUZvcktleSk6Cisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXNSZWZQcml2YXRlLmg6CisgICAg
ICAgIEV4cG9zZSBuZXcgU1BJLgorCiAyMDIwLTEwLTExICBMdW1pbmcgWWluICA8bHVtaW5nX3lp
bkBhcHBsZS5jb20+CiAKICAgICAgICAgU3RyaXAgcGF0Y2ggdmVyc2lvbiBmcm9tIFRBUkdFVF9N
QUNfT1NfWF9WRVJTSU9OX01BSk9SIHdoZW4gYnVpbGRpbmcgZm9yIG1hY09TIEJpZyBTdXIgCklu
ZGV4OiBTb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0Cj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQvQ01ha2VMaXN0cy50eHQJKHJldmlzaW9uIDI2ODMzMCkKKysrIFNvdXJjZS9XZWJLaXQv
Q01ha2VMaXN0cy50eHQJKHdvcmtpbmcgY29weSkKQEAgLTUwMCw2ICs1MDAsNyBAQCBzZXQoV2Vi
S2l0X1dFQl9QUkVGRVJFTkNFU19URU1QTEFURVMKICAgICAke1dFQktJVF9ESVJ9L1NjcmlwdHMv
UHJlZmVyZW5jZXNUZW1wbGF0ZXMvV2ViUGFnZVVwZGF0ZVByZWZlcmVuY2VzLmNwcC5lcmIKICAg
ICAke1dFQktJVF9ESVJ9L1NjcmlwdHMvUHJlZmVyZW5jZXNUZW1wbGF0ZXMvV2ViUHJlZmVyZW5j
ZXNEZWZpbml0aW9ucy5oLmVyYgogICAgICR7V0VCS0lUX0RJUn0vU2NyaXB0cy9QcmVmZXJlbmNl
c1RlbXBsYXRlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbEZlYXR1cmVzLmNwcC5lcmIKKyAg
ICAke1dFQktJVF9ESVJ9L1NjcmlwdHMvUHJlZmVyZW5jZXNUZW1wbGF0ZXMvV2ViUHJlZmVyZW5j
ZXNHZXR0ZXJTZXR0ZXJzLmNwcC5lcmIKICAgICAke1dFQktJVF9ESVJ9L1NjcmlwdHMvUHJlZmVy
ZW5jZXNUZW1wbGF0ZXMvV2ViUHJlZmVyZW5jZXNJbnRlcm5hbERlYnVnRmVhdHVyZXMuY3BwLmVy
YgogICAgICR7V0VCS0lUX0RJUn0vU2NyaXB0cy9QcmVmZXJlbmNlc1RlbXBsYXRlcy9XZWJQcmVm
ZXJlbmNlc0tleXMuY3BwLmVyYgogICAgICR7V0VCS0lUX0RJUn0vU2NyaXB0cy9QcmVmZXJlbmNl
c1RlbXBsYXRlcy9XZWJQcmVmZXJlbmNlc0tleXMuaC5lcmIKQEAgLTUxNiw5ICs1MTcsOSBAQCBz
ZXQoV2ViS2l0X1dFQl9QUkVGRVJFTkNFUwogc2V0X3NvdXJjZV9maWxlc19wcm9wZXJ0aWVzKCR7
V2ViS2l0X1dFQl9QUkVGRVJFTkNFU30gUFJPUEVSVElFUyBHRU5FUkFURUQgVFJVRSkKIAogYWRk
X2N1c3RvbV9jb21tYW5kKAotICAgIE9VVFBVVCAke1dlYktpdF9ERVJJVkVEX1NPVVJDRVNfRElS
fS9XZWJQYWdlVXBkYXRlUHJlZmVyZW5jZXMuY3BwICR7V2ViS2l0X0RFUklWRURfU09VUkNFU19E
SVJ9L1dlYlByZWZlcmVuY2VzRGVmaW5pdGlvbnMuaCAke1dlYktpdF9ERVJJVkVEX1NPVVJDRVNf
RElSfS9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbEZlYXR1cmVzLmNwcCAke1dlYktpdF9ERVJJ
VkVEX1NPVVJDRVNfRElSfS9XZWJQcmVmZXJlbmNlc0ludGVybmFsRGVidWdGZWF0dXJlcy5jcHAg
JHtXZWJLaXRfREVSSVZFRF9TT1VSQ0VTX0RJUn0vV2ViUHJlZmVyZW5jZXNLZXlzLmNwcCAke1dl
YktpdF9ERVJJVkVEX1NPVVJDRVNfRElSfS9XZWJQcmVmZXJlbmNlc0tleXMuaCAke1dlYktpdF9E
RVJJVkVEX1NPVVJDRVNfRElSfS9XZWJQcmVmZXJlbmNlc1N0b3JlRGVmYXVsdHNNYXAuY3BwCisg
ICAgT1VUUFVUICR7V2ViS2l0X0RFUklWRURfU09VUkNFU19ESVJ9L1dlYlBhZ2VVcGRhdGVQcmVm
ZXJlbmNlcy5jcHAgJHtXZWJLaXRfREVSSVZFRF9TT1VSQ0VTX0RJUn0vV2ViUHJlZmVyZW5jZXNE
ZWZpbml0aW9ucy5oICR7V2ViS2l0X0RFUklWRURfU09VUkNFU19ESVJ9L1dlYlByZWZlcmVuY2Vz
RXhwZXJpbWVudGFsRmVhdHVyZXMuY3BwICR7V2ViS2l0X0RFUklWRURfU09VUkNFU19ESVJ9L1dl
YlByZWZlcmVuY2VzR2V0dGVyU2V0dGVycy5jcHAgJHtXZWJLaXRfREVSSVZFRF9TT1VSQ0VTX0RJ
Un0vV2ViUHJlZmVyZW5jZXNJbnRlcm5hbERlYnVnRmVhdHVyZXMuY3BwICR7V2ViS2l0X0RFUklW
RURfU09VUkNFU19ESVJ9L1dlYlByZWZlcmVuY2VzS2V5cy5jcHAgJHtXZWJLaXRfREVSSVZFRF9T
T1VSQ0VTX0RJUn0vV2ViUHJlZmVyZW5jZXNLZXlzLmggJHtXZWJLaXRfREVSSVZFRF9TT1VSQ0VT
X0RJUn0vV2ViUHJlZmVyZW5jZXNTdG9yZURlZmF1bHRzTWFwLmNwcAogICAgIERFUEVORFMgJHtX
ZWJLaXRfV0VCX1BSRUZFUkVOQ0VTX1RFTVBMQVRFU30gJHtXZWJLaXRfV0VCX1BSRUZFUkVOQ0VT
fSBXVEZfQ29weVByZWZlcmVuY2VzCi0gICAgQ09NTUFORCAke1JVQllfRVhFQ1VUQUJMRX0gJHtX
VEZfU0NSSVBUU19ESVJ9L0dlbmVyYXRlUHJlZmVyZW5jZXMucmIgLS1mcm9udGVuZCBXZWJLaXQg
LS1iYXNlICR7V1RGX1NDUklQVFNfRElSfS9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlcy55YW1s
IC0tZGVidWcgJHtXVEZfU0NSSVBUU19ESVJ9L1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRGVi
dWcueWFtbCAtLWV4cGVyaW1lbnRhbCAke1dURl9TQ1JJUFRTX0RJUn0vUHJlZmVyZW5jZXMvV2Vi
UHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbCAtLWludGVybmFsICR7V1RGX1NDUklQVFNfRElS
fS9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0ludGVybmFsLnlhbWwgLS1vdXRwdXREaXIgIiR7
V2ViS2l0X0RFUklWRURfU09VUkNFU19ESVJ9IiAtLXRlbXBsYXRlICR7V0VCS0lUX0RJUn0vU2Ny
aXB0cy9QcmVmZXJlbmNlc1RlbXBsYXRlcy9XZWJQYWdlVXBkYXRlUHJlZmVyZW5jZXMuY3BwLmVy
YiAtLXRlbXBsYXRlICR7V0VCS0lUX0RJUn0vU2NyaXB0cy9QcmVmZXJlbmNlc1RlbXBsYXRlcy9X
ZWJQcmVmZXJlbmNlc0RlZmluaXRpb25zLmguZXJiIC0tdGVtcGxhdGUgJHtXRUJLSVRfRElSfS9T
Y3JpcHRzL1ByZWZlcmVuY2VzVGVtcGxhdGVzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsRmVh
dHVyZXMuY3BwLmVyYiAtLXRlbXBsYXRlICR7V0VCS0lUX0RJUn0vU2NyaXB0cy9QcmVmZXJlbmNl
c1RlbXBsYXRlcy9XZWJQcmVmZXJlbmNlc0ludGVybmFsRGVidWdGZWF0dXJlcy5jcHAuZXJiIC0t
dGVtcGxhdGUgJHtXRUJLSVRfRElSfS9TY3JpcHRzL1ByZWZlcmVuY2VzVGVtcGxhdGVzL1dlYlBy
ZWZlcmVuY2VzS2V5cy5jcHAuZXJiIC0tdGVtcGxhdGUgJHtXRUJLSVRfRElSfS9TY3JpcHRzL1By
ZWZlcmVuY2VzVGVtcGxhdGVzL1dlYlByZWZlcmVuY2VzS2V5cy5oLmVyYiAtLXRlbXBsYXRlICR7
V0VCS0lUX0RJUn0vU2NyaXB0cy9QcmVmZXJlbmNlc1RlbXBsYXRlcy9XZWJQcmVmZXJlbmNlc1N0
b3JlRGVmYXVsdHNNYXAuY3BwLmVyYgorICAgIENPTU1BTkQgJHtSVUJZX0VYRUNVVEFCTEV9ICR7
V1RGX1NDUklQVFNfRElSfS9HZW5lcmF0ZVByZWZlcmVuY2VzLnJiIC0tZnJvbnRlbmQgV2ViS2l0
IC0tYmFzZSAke1dURl9TQ1JJUFRTX0RJUn0vUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXMueWFt
bCAtLWRlYnVnICR7V1RGX1NDUklQVFNfRElSfS9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0Rl
YnVnLnlhbWwgLS1leHBlcmltZW50YWwgJHtXVEZfU0NSSVBUU19ESVJ9L1ByZWZlcmVuY2VzL1dl
YlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwgLS1pbnRlcm5hbCAke1dURl9TQ1JJUFRTX0RJ
Un0vUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNJbnRlcm5hbC55YW1sIC0tb3V0cHV0RGlyICIk
e1dlYktpdF9ERVJJVkVEX1NPVVJDRVNfRElSfSIgLS10ZW1wbGF0ZSAke1dFQktJVF9ESVJ9L1Nj
cmlwdHMvUHJlZmVyZW5jZXNUZW1wbGF0ZXMvV2ViUGFnZVVwZGF0ZVByZWZlcmVuY2VzLmNwcC5l
cmIgLS10ZW1wbGF0ZSAke1dFQktJVF9ESVJ9L1NjcmlwdHMvUHJlZmVyZW5jZXNUZW1wbGF0ZXMv
V2ViUHJlZmVyZW5jZXNEZWZpbml0aW9ucy5oLmVyYiAtLXRlbXBsYXRlICR7V0VCS0lUX0RJUn0v
U2NyaXB0cy9QcmVmZXJlbmNlc1RlbXBsYXRlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbEZl
YXR1cmVzLmNwcC5lcmIgLS10ZW1wbGF0ZSAke1dFQktJVF9ESVJ9L1NjcmlwdHMvUHJlZmVyZW5j
ZXNUZW1wbGF0ZXMvV2ViUHJlZmVyZW5jZXNHZXR0ZXJTZXR0ZXJzLmNwcC5lcmIgLS10ZW1wbGF0
ZSAke1dFQktJVF9ESVJ9L1NjcmlwdHMvUHJlZmVyZW5jZXNUZW1wbGF0ZXMvV2ViUHJlZmVyZW5j
ZXNJbnRlcm5hbERlYnVnRmVhdHVyZXMuY3BwLmVyYiAtLXRlbXBsYXRlICR7V0VCS0lUX0RJUn0v
U2NyaXB0cy9QcmVmZXJlbmNlc1RlbXBsYXRlcy9XZWJQcmVmZXJlbmNlc0tleXMuY3BwLmVyYiAt
LXRlbXBsYXRlICR7V0VCS0lUX0RJUn0vU2NyaXB0cy9QcmVmZXJlbmNlc1RlbXBsYXRlcy9XZWJQ
cmVmZXJlbmNlc0tleXMuaC5lcmIgLS10ZW1wbGF0ZSAke1dFQktJVF9ESVJ9L1NjcmlwdHMvUHJl
ZmVyZW5jZXNUZW1wbGF0ZXMvV2ViUHJlZmVyZW5jZXNTdG9yZURlZmF1bHRzTWFwLmNwcC5lcmIK
ICAgICBWRVJCQVRJTSkKIAogbGlzdChBUFBFTkQgV2ViS2l0X0hFQURFUlMKQEAgLTUyOSw2ICs1
MzAsNyBAQCBsaXN0KEFQUEVORCBXZWJLaXRfSEVBREVSUwogbGlzdChBUFBFTkQgV2ViS2l0X1NP
VVJDRVMKICAgICAke1dlYktpdF9ERVJJVkVEX1NPVVJDRVNfRElSfS9XZWJQYWdlVXBkYXRlUHJl
ZmVyZW5jZXMuY3BwCiAgICAgJHtXZWJLaXRfREVSSVZFRF9TT1VSQ0VTX0RJUn0vV2ViUHJlZmVy
ZW5jZXNFeHBlcmltZW50YWxGZWF0dXJlcy5jcHAKKyAgICAke1dlYktpdF9ERVJJVkVEX1NPVVJD
RVNfRElSfS9XZWJQcmVmZXJlbmNlc0dldHRlclNldHRlcnMuY3BwCiAgICAgJHtXZWJLaXRfREVS
SVZFRF9TT1VSQ0VTX0RJUn0vV2ViUHJlZmVyZW5jZXNJbnRlcm5hbERlYnVnRmVhdHVyZXMuY3Bw
CiAgICAgJHtXZWJLaXRfREVSSVZFRF9TT1VSQ0VTX0RJUn0vV2ViUHJlZmVyZW5jZXNLZXlzLmNw
cAogICAgICR7V2ViS2l0X0RFUklWRURfU09VUkNFU19ESVJ9L1dlYlByZWZlcmVuY2VzU3RvcmVE
ZWZhdWx0c01hcC5jcHAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQu
eGNmaWxlbGlzdAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlu
cHV0LnhjZmlsZWxpc3QJKHJldmlzaW9uIDI2ODMzMCkKKysrIFNvdXJjZS9XZWJLaXQvRGVyaXZl
ZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAkod29ya2luZyBjb3B5KQpAQCAtNjgsNiArNjgsNyBA
QCAkKFBST0pFQ1RfRElSKS9QbHVnaW5Qcm9jZXNzL21hYy9jb20uYXBwCiAkKFBST0pFQ1RfRElS
KS9TY3JpcHRzL1ByZWZlcmVuY2VzVGVtcGxhdGVzL1dlYlBhZ2VVcGRhdGVQcmVmZXJlbmNlcy5j
cHAuZXJiCiAkKFBST0pFQ1RfRElSKS9TY3JpcHRzL1ByZWZlcmVuY2VzVGVtcGxhdGVzL1dlYlBy
ZWZlcmVuY2VzRGVmaW5pdGlvbnMuaC5lcmIKICQoUFJPSkVDVF9ESVIpL1NjcmlwdHMvUHJlZmVy
ZW5jZXNUZW1wbGF0ZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWxGZWF0dXJlcy5jcHAuZXJi
CiskKFBST0pFQ1RfRElSKS9TY3JpcHRzL1ByZWZlcmVuY2VzVGVtcGxhdGVzL1dlYlByZWZlcmVu
Y2VzR2V0dGVyU2V0dGVycy5jcHAuZXJiCiAkKFBST0pFQ1RfRElSKS9TY3JpcHRzL1ByZWZlcmVu
Y2VzVGVtcGxhdGVzL1dlYlByZWZlcmVuY2VzSW50ZXJuYWxEZWJ1Z0ZlYXR1cmVzLmNwcC5lcmIK
ICQoUFJPSkVDVF9ESVIpL1NjcmlwdHMvUHJlZmVyZW5jZXNUZW1wbGF0ZXMvV2ViUHJlZmVyZW5j
ZXNLZXlzLmNwcC5lcmIKICQoUFJPSkVDVF9ESVIpL1NjcmlwdHMvUHJlZmVyZW5jZXNUZW1wbGF0
ZXMvV2ViUHJlZmVyZW5jZXNLZXlzLmguZXJiCkluZGV4OiBTb3VyY2UvV2ViS2l0L0Rlcml2ZWRT
b3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvRGVy
aXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QJKHJldmlzaW9uIDI2ODMzMCkKKysrIFNvdXJj
ZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QJKHdvcmtpbmcgY29weSkK
QEAgLTM2OSw2ICszNjksNyBAQCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMv
V2ViCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJQcmVm
ZXJlbmNlc0NvbWJpbmVkLnlhbWwKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJLaXQyL1dlYlByZWZlcmVuY2VzRGVmaW5pdGlvbnMuaAogJChCVUlMVF9QUk9EVUNUU19E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWxGZWF0
dXJlcy5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1dl
YlByZWZlcmVuY2VzR2V0dGVyU2V0dGVycy5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJLaXQyL1dlYlByZWZlcmVuY2VzSW50ZXJuYWxEZWJ1Z0ZlYXR1cmVzLmNw
cAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViUHJlZmVy
ZW5jZXNLZXlzLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktp
dDIvV2ViUHJlZmVyZW5jZXNLZXlzLmgKSW5kZXg6IFNvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJj
ZXMubWFrZQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UJ
KHJldmlzaW9uIDI2ODMzMCkKKysrIFNvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQko
d29ya2luZyBjb3B5KQpAQCAtMzUzLDkgKzM1MywxMCBAQCBXRUJfUFJFRkVSRU5DRVNfVEVNUExB
VEVTID0gXAogICAgICQoV2ViS2l0MikvU2NyaXB0cy9QcmVmZXJlbmNlc1RlbXBsYXRlcy9XZWJQ
YWdlVXBkYXRlUHJlZmVyZW5jZXMuY3BwLmVyYiBcCiAgICAgJChXZWJLaXQyKS9TY3JpcHRzL1By
ZWZlcmVuY2VzVGVtcGxhdGVzL1dlYlByZWZlcmVuY2VzRGVmaW5pdGlvbnMuaC5lcmIgXAogICAg
ICQoV2ViS2l0MikvU2NyaXB0cy9QcmVmZXJlbmNlc1RlbXBsYXRlcy9XZWJQcmVmZXJlbmNlc0V4
cGVyaW1lbnRhbEZlYXR1cmVzLmNwcC5lcmIgXAorICAgICQoV2ViS2l0MikvU2NyaXB0cy9QcmVm
ZXJlbmNlc1RlbXBsYXRlcy9XZWJQcmVmZXJlbmNlc0dldHRlclNldHRlcnMuY3BwLmVyYiBcCiAg
ICAgJChXZWJLaXQyKS9TY3JpcHRzL1ByZWZlcmVuY2VzVGVtcGxhdGVzL1dlYlByZWZlcmVuY2Vz
SW50ZXJuYWxEZWJ1Z0ZlYXR1cmVzLmNwcC5lcmIgXAotICAgICQoV2ViS2l0MikvU2NyaXB0cy9Q
cmVmZXJlbmNlc1RlbXBsYXRlcy9XZWJQcmVmZXJlbmNlc0tleXMuaC5lcmIgXAogICAgICQoV2Vi
S2l0MikvU2NyaXB0cy9QcmVmZXJlbmNlc1RlbXBsYXRlcy9XZWJQcmVmZXJlbmNlc0tleXMuY3Bw
LmVyYiBcCisgICAgJChXZWJLaXQyKS9TY3JpcHRzL1ByZWZlcmVuY2VzVGVtcGxhdGVzL1dlYlBy
ZWZlcmVuY2VzS2V5cy5oLmVyYiBcCiAgICAgJChXZWJLaXQyKS9TY3JpcHRzL1ByZWZlcmVuY2Vz
VGVtcGxhdGVzL1dlYlByZWZlcmVuY2VzU3RvcmVEZWZhdWx0c01hcC5jcHAuZXJiIFwKICMKIFdF
Ql9QUkVGRVJFTkNFU19GSUxFUyA9ICQoYmFzZW5hbWUgJChub3RkaXIgJChXRUJfUFJFRkVSRU5D
RVNfVEVNUExBVEVTKSkpCkluZGV4OiBTb3VyY2UvV2ViS2l0L1NjcmlwdHMvUHJlZmVyZW5jZXNU
ZW1wbGF0ZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWxGZWF0dXJlcy5jcHAuZXJiCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvU2NyaXB0cy9QcmVmZXJlbmNlc1RlbXBsYXRlcy9XZWJQ
cmVmZXJlbmNlc0V4cGVyaW1lbnRhbEZlYXR1cmVzLmNwcC5lcmIJKHJldmlzaW9uIDI2ODMzMCkK
KysrIFNvdXJjZS9XZWJLaXQvU2NyaXB0cy9QcmVmZXJlbmNlc1RlbXBsYXRlcy9XZWJQcmVmZXJl
bmNlc0V4cGVyaW1lbnRhbEZlYXR1cmVzLmNwcC5lcmIJKHdvcmtpbmcgY29weSkKQEAgLTMzLDIw
ICszMyw2IEBACiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi08JS0gZm9yIEBwcmVmIGluIEBleHBl
cmltZW50YWxGZWF0dXJlcyBkbyAtJT4KLXZvaWQgV2ViUHJlZmVyZW5jZXM6OnNldDwlPSBAcHJl
Zi5uYW1lICU+KGNvbnN0IGJvb2wmIHZhbHVlKQotewotICAgIGlmICghbV9zdG9yZS5zZXRCb29s
VmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OjwlPSBAcHJlZi5uYW1lTG93ZXIgJT5LZXko
KSwgdmFsdWUpKQotICAgICAgICByZXR1cm47Ci0gICAgdXBkYXRlQm9vbFZhbHVlRm9yRXhwZXJp
bWVudGFsRmVhdHVyZUtleShXZWJQcmVmZXJlbmNlc0tleTo6PCU9IEBwcmVmLm5hbWVMb3dlciAl
PktleSgpLCB2YWx1ZSk7Ci19Ci0KLWJvb2wgV2ViUHJlZmVyZW5jZXM6OjwlPSBAcHJlZi5uYW1l
TG93ZXIgJT4oKSBjb25zdAotewotICAgIHJldHVybiBtX3N0b3JlLmdldEJvb2xWYWx1ZUZvcktl
eShXZWJQcmVmZXJlbmNlc0tleTo6PCU9IEBwcmVmLm5hbWVMb3dlciAlPktleSgpKTsKLX0KLQot
PCUtIGVuZCAtJT4KIGNvbnN0IFZlY3RvcjxSZWZQdHI8QVBJOjpPYmplY3Q+PiYgV2ViUHJlZmVy
ZW5jZXM6OmV4cGVyaW1lbnRhbEZlYXR1cmVzKCkKIHsKICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8VmVjdG9yPFJlZlB0cjxBUEk6Ok9iamVjdD4+PiBmZWF0dXJlcyhzdGQ6OmluaXRpYWxpemVy
X2xpc3Q8UmVmUHRyPEFQSTo6T2JqZWN0Pj4gewpJbmRleDogU291cmNlL1dlYktpdC9TY3JpcHRz
L1ByZWZlcmVuY2VzVGVtcGxhdGVzL1dlYlByZWZlcmVuY2VzR2V0dGVyU2V0dGVycy5jcHAuZXJi
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvU2NyaXB0cy9QcmVmZXJlbmNlc1RlbXBsYXRl
cy9XZWJQcmVmZXJlbmNlc0dldHRlclNldHRlcnMuY3BwLmVyYgkobm9uZXhpc3RlbnQpCisrKyBT
b3VyY2UvV2ViS2l0L1NjcmlwdHMvUHJlZmVyZW5jZXNUZW1wbGF0ZXMvV2ViUHJlZmVyZW5jZXNH
ZXR0ZXJTZXR0ZXJzLmNwcC5lcmIJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw5NSBAQAorLyoK
KyogPCU9IEB3YXJuaW5nICU+CisqCisqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisqCisqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyogYXJlIG1l
dDoKKyogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisqCisqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYlByZWZlcmVuY2VzLmgi
CisKKyNpbmNsdWRlICJXZWJQcmVmZXJlbmNlc0tleXMuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7
CisKKzwlLSBmb3IgQHByZWYgaW4gKEBwcmVmZXJlbmNlc05vdERlYnVnICsgQHByZWZlcmVuY2Vz
RGVidWcpIGRvIC0lPgordm9pZCBXZWJQcmVmZXJlbmNlczo6c2V0PCU9IEBwcmVmLm5hbWUgJT4o
Y29uc3QgPCU9IEBwcmVmLnR5cGUgJT4mIHZhbHVlKQoreworICAgIGlmICghbV9zdG9yZS5zZXQ8
JT0gQHByZWYudHlwZVVwcGVyICU+VmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OjwlPSBA
cHJlZi5uYW1lTG93ZXIgJT5LZXkoKSwgdmFsdWUpKQorICAgICAgICByZXR1cm47CisgICAgdXBk
YXRlPCU9IEBwcmVmLnR5cGVVcHBlciAlPlZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5Ojo8
JT0gQHByZWYubmFtZUxvd2VyICU+S2V5KCksIHZhbHVlKTsKK30KKworPCU9IEBwcmVmLnR5cGUg
JT4gV2ViUHJlZmVyZW5jZXM6OjwlPSBAcHJlZi5uYW1lTG93ZXIgJT4oKSBjb25zdAoreworICAg
IHJldHVybiBtX3N0b3JlLmdldDwlPSBAcHJlZi50eXBlVXBwZXIgJT5WYWx1ZUZvcktleShXZWJQ
cmVmZXJlbmNlc0tleTo6PCU9IEBwcmVmLm5hbWVMb3dlciAlPktleSgpKTsKK30KKwordm9pZCBX
ZWJQcmVmZXJlbmNlczo6ZGVsZXRlPCU9IEBwcmVmLm5hbWUgJT4oKQoreworICAgIGRlbGV0ZUtl
eShXZWJQcmVmZXJlbmNlc0tleTo6PCU9IEBwcmVmLm5hbWVMb3dlciAlPktleSgpKTsKK30KKwor
PCUtIGVuZCAtJT4KKworPCUtIGZvciBAcHJlZiBpbiBAZXhwZXJpbWVudGFsRmVhdHVyZXMgZG8g
LSU+Cit2b2lkIFdlYlByZWZlcmVuY2VzOjpzZXQ8JT0gQHByZWYubmFtZSAlPihjb25zdCBib29s
JiB2YWx1ZSkKK3sKKyAgICBpZiAoIW1fc3RvcmUuc2V0Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZl
cmVuY2VzS2V5Ojo8JT0gQHByZWYubmFtZUxvd2VyICU+S2V5KCksIHZhbHVlKSkKKyAgICAgICAg
cmV0dXJuOworICAgIHVwZGF0ZUJvb2xWYWx1ZUZvckV4cGVyaW1lbnRhbEZlYXR1cmVLZXkoV2Vi
UHJlZmVyZW5jZXNLZXk6OjwlPSBAcHJlZi5uYW1lTG93ZXIgJT5LZXkoKSwgdmFsdWUpOworfQor
Citib29sIFdlYlByZWZlcmVuY2VzOjo8JT0gQHByZWYubmFtZUxvd2VyICU+KCkgY29uc3QKK3sK
KyAgICByZXR1cm4gbV9zdG9yZS5nZXRCb29sVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6
OjwlPSBAcHJlZi5uYW1lTG93ZXIgJT5LZXkoKSk7Cit9CisKK3ZvaWQgV2ViUHJlZmVyZW5jZXM6
OmRlbGV0ZTwlPSBAcHJlZi5uYW1lICU+KCkKK3sKKyAgICBkZWxldGVLZXkoV2ViUHJlZmVyZW5j
ZXNLZXk6OjwlPSBAcHJlZi5uYW1lTG93ZXIgJT5LZXkoKSk7Cit9CisKKzwlLSBlbmQgLSU+CisK
KzwlLSBmb3IgQHByZWYgaW4gQGludGVybmFsRmVhdHVyZXMgZG8gLSU+Cit2b2lkIFdlYlByZWZl
cmVuY2VzOjpzZXQ8JT0gQHByZWYubmFtZSAlPihjb25zdCBib29sJiB2YWx1ZSkKK3sKKyAgICBp
ZiAoIW1fc3RvcmUuc2V0Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5Ojo8JT0gQHBy
ZWYubmFtZUxvd2VyICU+S2V5KCksIHZhbHVlKSkKKyAgICAgICAgcmV0dXJuOworICAgIHVwZGF0
ZUJvb2xWYWx1ZUZvckludGVybmFsRGVidWdGZWF0dXJlS2V5KFdlYlByZWZlcmVuY2VzS2V5Ojo8
JT0gQHByZWYubmFtZUxvd2VyICU+S2V5KCksIHZhbHVlKTsKK30KKworYm9vbCBXZWJQcmVmZXJl
bmNlczo6PCU9IEBwcmVmLm5hbWVMb3dlciAlPigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fc3Rv
cmUuZ2V0Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5Ojo8JT0gQHByZWYubmFtZUxv
d2VyICU+S2V5KCkpOworfQorCit2b2lkIFdlYlByZWZlcmVuY2VzOjpkZWxldGU8JT0gQHByZWYu
bmFtZSAlPigpCit7CisgICAgZGVsZXRlS2V5KFdlYlByZWZlcmVuY2VzS2V5Ojo8JT0gQHByZWYu
bmFtZUxvd2VyICU+S2V5KCkpOworfQorCis8JS0gZW5kIC0lPgorCit9CkluZGV4OiBTb3VyY2Uv
V2ViS2l0L1NjcmlwdHMvUHJlZmVyZW5jZXNUZW1wbGF0ZXMvV2ViUHJlZmVyZW5jZXNJbnRlcm5h
bERlYnVnRmVhdHVyZXMuY3BwLmVyYgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1Njcmlw
dHMvUHJlZmVyZW5jZXNUZW1wbGF0ZXMvV2ViUHJlZmVyZW5jZXNJbnRlcm5hbERlYnVnRmVhdHVy
ZXMuY3BwLmVyYgkocmV2aXNpb24gMjY4MzMwKQorKysgU291cmNlL1dlYktpdC9TY3JpcHRzL1By
ZWZlcmVuY2VzVGVtcGxhdGVzL1dlYlByZWZlcmVuY2VzSW50ZXJuYWxEZWJ1Z0ZlYXR1cmVzLmNw
cC5lcmIJKHdvcmtpbmcgY29weSkKQEAgLTMzLDIwICszMyw2IEBACiAKIG5hbWVzcGFjZSBXZWJL
aXQgewogCi08JS0gZm9yIEBwcmVmIGluIEBpbnRlcm5hbEZlYXR1cmVzIGRvIC0lPgotdm9pZCBX
ZWJQcmVmZXJlbmNlczo6c2V0PCU9IEBwcmVmLm5hbWUgJT4oY29uc3QgYm9vbCYgdmFsdWUpCi17
Ci0gICAgaWYgKCFtX3N0b3JlLnNldEJvb2xWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6
PCU9IEBwcmVmLm5hbWVMb3dlciAlPktleSgpLCB2YWx1ZSkpCi0gICAgICAgIHJldHVybjsKLSAg
ICB1cGRhdGVCb29sVmFsdWVGb3JJbnRlcm5hbERlYnVnRmVhdHVyZUtleShXZWJQcmVmZXJlbmNl
c0tleTo6PCU9IEBwcmVmLm5hbWVMb3dlciAlPktleSgpLCB2YWx1ZSk7Ci19Ci0KLWJvb2wgV2Vi
UHJlZmVyZW5jZXM6OjwlPSBAcHJlZi5uYW1lTG93ZXIgJT4oKSBjb25zdAotewotICAgIHJldHVy
biBtX3N0b3JlLmdldEJvb2xWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6PCU9IEBwcmVm
Lm5hbWVMb3dlciAlPktleSgpKTsKLX0KLQotPCUtIGVuZCAtJT4KIGNvbnN0IFZlY3RvcjxSZWZQ
dHI8QVBJOjpPYmplY3Q+PiYgV2ViUHJlZmVyZW5jZXM6OmludGVybmFsRGVidWdGZWF0dXJlcygp
CiB7CiAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFZlY3RvcjxSZWZQdHI8QVBJOjpPYmplY3Q+
Pj4gZmVhdHVyZXMoc3RkOjppbml0aWFsaXplcl9saXN0PFJlZlB0cjxBUEk6Ok9iamVjdD4+IHsK
SW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByZWZlcmVuY2VzLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcmVmZXJlbmNlcy5jcHAJKHJldmlz
aW9uIDI2ODMzMCkKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByZWZlcmVuY2VzLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMTAyLDYgKzEwMiwzNCBAQCB2b2lkIFdlYlByZWZlcmVuY2Vz
Ojp1cGRhdGUoKQogICAgICAgICB3ZWJQYWdlUHJveHktPnByZWZlcmVuY2VzRGlkQ2hhbmdlKCk7
CiB9CiAKK3ZvaWQgV2ViUHJlZmVyZW5jZXM6OnNldEJvb2xWYWx1ZUZvcktleShjb25zdCBTdHJp
bmcmIGtleSwgYm9vbCB2YWx1ZSkKK3sKKyAgICBpZiAoIW1fc3RvcmUuc2V0Qm9vbFZhbHVlRm9y
S2V5KGtleSwgdmFsdWUpKQorICAgICAgICByZXR1cm47CisgICAgdXBkYXRlQm9vbFZhbHVlRm9y
S2V5KGtleSwgdmFsdWUpOworfQorCit2b2lkIFdlYlByZWZlcmVuY2VzOjpzZXREb3VibGVWYWx1
ZUZvcktleShjb25zdCBTdHJpbmcmIGtleSwgZG91YmxlIHZhbHVlKQoreworICAgIGlmICghbV9z
dG9yZS5zZXREb3VibGVWYWx1ZUZvcktleShrZXksIHZhbHVlKSkKKyAgICAgICAgcmV0dXJuOwor
ICAgIHVwZGF0ZURvdWJsZVZhbHVlRm9yS2V5KGtleSwgdmFsdWUpOworfQorCit2b2lkIFdlYlBy
ZWZlcmVuY2VzOjpzZXRVSW50MzJWYWx1ZUZvcktleShjb25zdCBTdHJpbmcmIGtleSwgdWludDMy
X3QgdmFsdWUpCit7CisgICAgaWYgKCFtX3N0b3JlLnNldFVJbnQzMlZhbHVlRm9yS2V5KGtleSwg
dmFsdWUpKQorICAgICAgICByZXR1cm47CisgICAgdXBkYXRlVUludDMyVmFsdWVGb3JLZXkoa2V5
LCB2YWx1ZSk7Cit9CisKK3ZvaWQgV2ViUHJlZmVyZW5jZXM6OnNldFN0cmluZ1ZhbHVlRm9yS2V5
KGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIHZhbHVlKQoreworICAgIGlmICghbV9z
dG9yZS5zZXRTdHJpbmdWYWx1ZUZvcktleShrZXksIHZhbHVlKSkKKyAgICAgICAgcmV0dXJuOwor
ICAgIHVwZGF0ZVN0cmluZ1ZhbHVlRm9yS2V5KGtleSwgdmFsdWUpOworfQorCiB2b2lkIFdlYlBy
ZWZlcmVuY2VzOjp1cGRhdGVTdHJpbmdWYWx1ZUZvcktleShjb25zdCBTdHJpbmcmIGtleSwgY29u
c3QgU3RyaW5nJiB2YWx1ZSkKIHsKICAgICBwbGF0Zm9ybVVwZGF0ZVN0cmluZ1ZhbHVlRm9yS2V5
KGtleSwgdmFsdWUpOwpAQCAtMTU1LDMwICsxODMsNiBAQCB2b2lkIFdlYlByZWZlcmVuY2VzOjpk
ZWxldGVLZXkoY29uc3QgU3RyCiAgICAgdXBkYXRlKCk7IC8vIEZJWE1FOiBPbmx5IHNlbmQgb3Zl
ciB0aGUgY2hhbmdlZCBrZXkgYW5kIHZhbHVlLgogfQogCi0jZGVmaW5lIERFRklORV9QUkVGRVJF
TkNFX0dFVFRFUl9BTkRfU0VUVEVSUyhLZXlVcHBlciwgS2V5TG93ZXIsIFR5cGVOYW1lLCBUeXBl
LCBEZWZhdWx0VmFsdWUsIEh1bWFuUmVhZGFibGVOYW1lLCBIdW1hblJlYWRhYmxlRGVzY3JpcHRp
b24pIFwKLSAgICB2b2lkIFdlYlByZWZlcmVuY2VzOjpzZXQjI0tleVVwcGVyKGNvbnN0IFR5cGUm
IHZhbHVlKSBcCi0gICAgeyBcCi0gICAgICAgIGlmICghbV9zdG9yZS5zZXQjI1R5cGVOYW1lIyNW
YWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6S2V5TG93ZXIjI0tleSgpLCB2YWx1ZSkpIFwK
LSAgICAgICAgICAgIHJldHVybjsgXAotICAgICAgICB1cGRhdGUjI1R5cGVOYW1lIyNWYWx1ZUZv
cktleShXZWJQcmVmZXJlbmNlc0tleTo6S2V5TG93ZXIjI0tleSgpLCB2YWx1ZSk7IFwKLSAgICB9
IFwKLSAgICBcCi0gICAgdm9pZCBXZWJQcmVmZXJlbmNlczo6ZGVsZXRlIyNLZXlVcHBlcigpIFwK
LSAgICB7IFwKLSAgICAgICAgZGVsZXRlS2V5KFdlYlByZWZlcmVuY2VzS2V5OjpLZXlMb3dlciMj
S2V5KCkpOyBcCi0gICAgfSBcCi0gICAgXAotICAgIFR5cGUgV2ViUHJlZmVyZW5jZXM6OktleUxv
d2VyKCkgY29uc3QgXAotICAgIHsgXAotICAgICAgICByZXR1cm4gbV9zdG9yZS5nZXQjI1R5cGVO
YW1lIyNWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6S2V5TG93ZXIjI0tleSgpKTsgXAot
ICAgIH0gXAotCi1GT1JfRUFDSF9XRUJLSVRfUFJFRkVSRU5DRShERUZJTkVfUFJFRkVSRU5DRV9H
RVRURVJfQU5EX1NFVFRFUlMpCi1GT1JfRUFDSF9XRUJLSVRfREVCVUdfUFJFRkVSRU5DRShERUZJ
TkVfUFJFRkVSRU5DRV9HRVRURVJfQU5EX1NFVFRFUlMpCi0KLSN1bmRlZiBERUZJTkVfUFJFRkVS
RU5DRV9HRVRURVJfQU5EX1NFVFRFUlMKLQotCiB2b2lkIFdlYlByZWZlcmVuY2VzOjpyZWdpc3Rl
ckRlZmF1bHRCb29sVmFsdWVGb3JLZXkoY29uc3QgU3RyaW5nJiBrZXksIGJvb2wgdmFsdWUpCiB7
CiAgICAgbV9zdG9yZS5zZXRPdmVycmlkZURlZmF1bHRzQm9vbFZhbHVlRm9yS2V5KGtleSwgdmFs
dWUpOwpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJlZmVyZW5jZXMuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcmVmZXJlbmNlcy5oCShyZXZp
c2lvbiAyNjgzMzApCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcmVmZXJlbmNlcy5o
CSh3b3JraW5nIGNvcHkpCkBAIC01OSw2ICs1OSw3IEBAIHB1YmxpYzoKIAogICAgIGNvbnN0IFdl
YlByZWZlcmVuY2VzU3RvcmUmIHN0b3JlKCkgY29uc3QgeyByZXR1cm4gbV9zdG9yZTsgfQogCisg
ICAgLy8gSW1wbGVtZW50ZWQgaW4gZ2VuZXJhdGVkIGZpbGUgV2ViUHJlZmVyZW5jZXNHZXR0ZXJT
ZXR0ZXJzLmNwcC4KICAgICBGT1JfRUFDSF9XRUJLSVRfUFJFRkVSRU5DRShERUNMQVJFX1BSRUZF
UkVOQ0VfR0VUVEVSX0FORF9TRVRURVJTKQogICAgIEZPUl9FQUNIX1dFQktJVF9ERUJVR19QUkVG
RVJFTkNFKERFQ0xBUkVfUFJFRkVSRU5DRV9HRVRURVJfQU5EX1NFVFRFUlMpCiAgICAgRk9SX0VB
Q0hfV0VCS0lUX0lOVEVSTkFMX0RFQlVHX0ZFQVRVUkVfUFJFRkVSRU5DRShERUNMQVJFX1BSRUZF
UkVOQ0VfR0VUVEVSX0FORF9TRVRURVJTKQpAQCAtNzcsNiArNzgsMTAgQEAgcHVibGljOgogICAg
IHZvaWQgcmVzZXRBbGxJbnRlcm5hbERlYnVnRmVhdHVyZXMoKTsKIAogICAgIC8vIEV4cG9zZWQg
Zm9yIFdlYktpdFRlc3RSdW5uZXIgdXNlIG9ubHkuCisgICAgdm9pZCBzZXRCb29sVmFsdWVGb3JL
ZXkoY29uc3QgU3RyaW5nJiwgYm9vbCB2YWx1ZSk7CisgICAgdm9pZCBzZXREb3VibGVWYWx1ZUZv
cktleShjb25zdCBTdHJpbmcmLCBkb3VibGUgdmFsdWUpOworICAgIHZvaWQgc2V0VUludDMyVmFs
dWVGb3JLZXkoY29uc3QgU3RyaW5nJiwgdWludDMyX3QgdmFsdWUpOworICAgIHZvaWQgc2V0U3Ry
aW5nVmFsdWVGb3JLZXkoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiB2YWx1ZSk7CiAgICAg
dm9pZCBmb3JjZVVwZGF0ZSgpIHsgdXBkYXRlKCk7IH0KIAogcHJpdmF0ZToKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwCShyZXZpc2lv
biAyNjgzMzApCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2Vz
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzgsNiArNzgsMjYgQEAgdm9pZCBXS1ByZWZlcmVuY2Vz
U2V0SW50ZXJuYWxEZWJ1Z0ZlYXR1cgogICAgIHRvSW1wbChwcmVmZXJlbmNlc1JlZiktPnNldElu
dGVybmFsRGVidWdGZWF0dXJlRW5hYmxlZEZvcktleSh0b1dURlN0cmluZyhpbnRlcm5hbERlYnVn
RmVhdHVyZUtleSksIHZhbHVlKTsKIH0KIAordm9pZCBXS1ByZWZlcmVuY2VzU2V0Qm9vbFZhbHVl
Rm9yS2V5KFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYsIGJvb2wgdmFsdWUsIFdLU3Ry
aW5nUmVmIGtleSkKK3sKKyAgICB0b0ltcGwocHJlZmVyZW5jZXNSZWYpLT5zZXRCb29sVmFsdWVG
b3JLZXkodG9XVEZTdHJpbmcoa2V5KSwgdmFsdWUpOworfQorCit2b2lkIFdLUHJlZmVyZW5jZXNT
ZXREb3VibGVWYWx1ZUZvcktleShXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmLCBkb3Vi
bGUgdmFsdWUsIFdLU3RyaW5nUmVmIGtleSkKK3sKKyAgICB0b0ltcGwocHJlZmVyZW5jZXNSZWYp
LT5zZXRCb29sVmFsdWVGb3JLZXkodG9XVEZTdHJpbmcoa2V5KSwgdmFsdWUpOworfQorCit2b2lk
IFdLUHJlZmVyZW5jZXNTZXRVSW50MzJWYWx1ZUZvcktleShXS1ByZWZlcmVuY2VzUmVmIHByZWZl
cmVuY2VzUmVmLCB1aW50MzJfdCB2YWx1ZSwgV0tTdHJpbmdSZWYga2V5KQoreworICAgIHRvSW1w
bChwcmVmZXJlbmNlc1JlZiktPnNldFVJbnQzMlZhbHVlRm9yS2V5KHRvV1RGU3RyaW5nKGtleSks
IHZhbHVlKTsKK30KKwordm9pZCBXS1ByZWZlcmVuY2VzU2V0U3RyaW5nVmFsdWVGb3JLZXkoV0tQ
cmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZiwgV0tTdHJpbmdSZWYgdmFsdWUsIFdLU3RyaW5n
UmVmIGtleSkKK3sKKyAgICB0b0ltcGwocHJlZmVyZW5jZXNSZWYpLT5zZXRTdHJpbmdWYWx1ZUZv
cktleSh0b1dURlN0cmluZyhrZXkpLCB0b1dURlN0cmluZyh2YWx1ZSkpOworfQorCiB2b2lkIFdL
UHJlZmVyZW5jZXNSZXNldFRlc3RSdW5uZXJPdmVycmlkZXMoV0tQcmVmZXJlbmNlc1JlZiBwcmVm
ZXJlbmNlc1JlZikKIHsKICAgICAvLyBDdXJyZW50bHkgd2UgcmVzZXQgdGhlIG92ZXJyaWRlcyBv
biB0aGUgd2ViIHByb2Nlc3Mgd2hlbiBwcmVmZXJlbmNlc0RpZENoYW5nZSgpIGlzIGNhbGxlZC4g
U2luY2UgV1RSIHByZWZlcmVuY2VzCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Qy9XS1ByZWZlcmVuY2VzUmVmUHJpdmF0ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXNSZWZQcml2YXRlLmgJKHJldmlzaW9uIDI2ODMz
MCkKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXNSZWZQcml2
YXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTU1LDYgKzU1LDEzIEBAIFdLX0VYUE9SVCB2b2lkIFdL
UHJlZmVyZW5jZXNTZXRFeHBlcmltZW4KIFdLX0VYUE9SVCB2b2lkIFdLUHJlZmVyZW5jZXNSZXNl
dEFsbEludGVybmFsRGVidWdGZWF0dXJlcyhXS1ByZWZlcmVuY2VzUmVmKTsKIFdLX0VYUE9SVCB2
b2lkIFdLUHJlZmVyZW5jZXNTZXRJbnRlcm5hbERlYnVnRmVhdHVyZUZvcktleShXS1ByZWZlcmVu
Y2VzUmVmLCBib29sLCBXS1N0cmluZ1JlZik7CiAKKy8vIFRoZSBmb2xsb3dpbmcgZ2VuZXJpYyBz
ZXR0ZXIgZnVuY3Rpb25zIGFyZSBvbmx5IGludGVuZGVkIGZvciB1c2UgYnkgdGVzdGluZyBpbmZy
YXN0cnVjdHVyZS4KK1dLX0VYUE9SVCB2b2lkIFdLUHJlZmVyZW5jZXNTZXRCb29sVmFsdWVGb3JL
ZXkoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZiwgYm9vbCB2YWx1ZSwgV0tTdHJpbmdS
ZWYga2V5KTsKK1dLX0VYUE9SVCB2b2lkIFdLUHJlZmVyZW5jZXNTZXREb3VibGVWYWx1ZUZvcktl
eShXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmLCBkb3VibGUgdmFsdWUsIFdLU3RyaW5n
UmVmIGtleSk7CitXS19FWFBPUlQgdm9pZCBXS1ByZWZlcmVuY2VzU2V0VUludDMyVmFsdWVGb3JL
ZXkoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZiwgdWludDMyX3QgdmFsdWUsIFdLU3Ry
aW5nUmVmIGtleSk7CitXS19FWFBPUlQgdm9pZCBXS1ByZWZlcmVuY2VzU2V0U3RyaW5nVmFsdWVG
b3JLZXkoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZiwgV0tTdHJpbmdSZWYgdmFsdWUs
IFdLU3RyaW5nUmVmIGtleSk7CisKKy8vIEZvciBUZXN0IFJ1bm5lciBVc2Ugb25seS4KIFdLX0VY
UE9SVCB2b2lkIFdLUHJlZmVyZW5jZXNSZXNldFRlc3RSdW5uZXJPdmVycmlkZXMoV0tQcmVmZXJl
bmNlc1JlZiBwcmVmZXJlbmNlc1JlZik7CiAKIC8vIERlZmF1bHRzIHRvIGZhbHNlLgpJbmRleDog
U291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZp
c2lvbiAyNjgzMzApCisrKyBTb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0xMzEyLDYgKzEzMTIsNyBAQAogCQk3Q0U0RDIyODFB
NDkxNkMyMDBDN0YxNTIgLyogV2ViUHJvY2Vzc1Bvb2xNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0NFNEQyMjYxQTQ5MTZDMjAwQzdGMTUy
IC8qIFdlYlByb2Nlc3NQb29sTWVzc2FnZXMuaCAqLzsgfTsKIAkJN0NFOUNFMTAxRkEwNzY3QTAw
MDE3N0RFIC8qIFdlYlBhZ2VVcGRhdGVQcmVmZXJlbmNlcy5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Q0U5Q0UwRjFGQTA3NjREMDAwMTc3REUgLyog
V2ViUGFnZVVwZGF0ZVByZWZlcmVuY2VzLmNwcCAqLzsgfTsKIAkJN0NFQjAwREQxRkE2OUFCRTAw
NjU0NzNCIC8qIFdlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsRmVhdHVyZXMuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0NFQjAwREMxRkE2OUE4OTAw
NjU0NzNCIC8qIFdlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsRmVhdHVyZXMuY3BwICovOyB9Owor
CQk3Q0YxOTA3MTI1MzM4RjM4MDBBQkUxODMgLyogV2ViUHJlZmVyZW5jZXNHZXR0ZXJTZXR0ZXJz
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDRjE5
MDcwMjUzMzhFRkYwMEFCRTE4MyAvKiBXZWJQcmVmZXJlbmNlc0dldHRlclNldHRlcnMuY3BwICov
OyB9OwogCQk3Q0Y0N0ZGNzE3Mjc1QjcxMDA4QUNCOTEgLyogV0tCdW5kbGVQYWdlQmFubmVyLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Q0Y0N0ZGNTE3
Mjc1QjcxMDA4QUNCOTEgLyogV0tCdW5kbGVQYWdlQmFubmVyLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJN0NGNDdGRkIxNzI3NUM1NzAwOEFDQjkx
IC8qIFBhZ2VCYW5uZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDdDRjQ3RkY5MTcyNzVDNTcwMDhBQ0I5MSAvKiBQYWdlQmFubmVyLmggKi87IH07CiAJ
CTdDRjQ3RkZGMTcyNzZBRTMwMDhBQ0I5MSAvKiBXS0J1bmRsZVBhZ2VCYW5uZXJNYWMuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDRjQ3RkZEMTcyNzZB
RTMwMDhBQ0I5MSAvKiBXS0J1bmRsZVBhZ2VCYW5uZXJNYWMuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtNDMzMiw2ICs0MzMzLDcgQEAKIAkJN0NF
OUNFMEYxRkEwNzY0RDAwMDE3N0RFIC8qIFdlYlBhZ2VVcGRhdGVQcmVmZXJlbmNlcy5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IG5hbWUgPSBXZWJQYWdlVXBkYXRlUHJlZmVyZW5jZXMuY3BwOyBwYXRoID0gRGVy
aXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJQYWdlVXBkYXRlUHJlZmVyZW5jZXMuY3BwOyBzb3VyY2VU
cmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQk3Q0VCMDBEQzFGQTY5QTg5MDA2NTQ3M0Ig
LyogV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWxGZWF0dXJlcy5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5h
bWUgPSBXZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbEZlYXR1cmVzLmNwcDsgcGF0aCA9IERlcml2
ZWRTb3VyY2VzL1dlYktpdDIvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWxGZWF0dXJlcy5jcHA7
IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTdDRUZBOTYwMUFDMDk5OTMw
MEI5MTBGRCAvKiBBUElDb250ZW50UnVsZUxpc3RTdG9yZUNvY29hLm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQVBJQ29udGVudFJ1bGVMaXN0U3RvcmVDb2NvYS5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJN0NGMTkwNzAyNTMzOEVGRjAwQUJFMTgz
IC8qIFdlYlByZWZlcmVuY2VzR2V0dGVyU2V0dGVycy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBX
ZWJQcmVmZXJlbmNlc0dldHRlclNldHRlcnMuY3BwOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2Vi
S2l0Mi9XZWJQcmVmZXJlbmNlc0dldHRlclNldHRlcnMuY3BwOyBzb3VyY2VUcmVlID0gQlVJTFRf
UFJPRFVDVFNfRElSOyB9OwogCQk3Q0Y0N0ZGNDE3Mjc1QjcxMDA4QUNCOTEgLyogV0tCdW5kbGVQ
YWdlQmFubmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdLQnVu
ZGxlUGFnZUJhbm5lci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDRjQ3RkY1
MTcyNzVCNzEwMDhBQ0I5MSAvKiBXS0J1bmRsZVBhZ2VCYW5uZXIuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gV0tCdW5kbGVQYWdlQmFubmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTdDRjQ3RkY5MTcyNzVDNTcwMDhBQ0I5MSAvKiBQYWdlQmFubmVyLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBhZ2VCYW5uZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTEwMjU5LDYgKzEwMjYxLDcgQEAKIAkJCQkxQUIxRjc5NTFEMUIz
NjEzMDA3QzlCRDEgLyogV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHlNZXNzYWdlcy5oICovLAog
CQkJCTdDREU3M0EzMUY5REFCNjUwMDM5MDMxMiAvKiBXZWJQcmVmZXJlbmNlc0RlZmluaXRpb25z
LmggKi8sCiAJCQkJN0NFQjAwREMxRkE2OUE4OTAwNjU0NzNCIC8qIFdlYlByZWZlcmVuY2VzRXhw
ZXJpbWVudGFsRmVhdHVyZXMuY3BwICovLAorCQkJCTdDRjE5MDcwMjUzMzhFRkYwMEFCRTE4MyAv
KiBXZWJQcmVmZXJlbmNlc0dldHRlclNldHRlcnMuY3BwICovLAogCQkJCTMxQjM2Mjk4MjE0MUY2
RTAwMDdCRkE1MyAvKiBXZWJQcmVmZXJlbmNlc0ludGVybmFsRGVidWdGZWF0dXJlcy5jcHAgKi8s
CiAJCQkJN0NCMTAwRUUxRkEyRDc0QTAwMTcyOUVFIC8qIFdlYlByZWZlcmVuY2VzS2V5cy5jcHAg
Ki8sCiAJCQkJN0NCMTAwRUYxRkEyRDc0QjAwMTcyOUVFIC8qIFdlYlByZWZlcmVuY2VzS2V5cy5o
ICovLApAQCAtMTMxNjEsNiArMTMxNjQsNyBAQAogCQkJCTJEOTJBNzhEMjEyQjZBQjEwMEY0OTNG
RCAvKiBXZWJQbGF0Zm9ybVRvdWNoUG9pbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQ5MTM0
NEUyMTJDRjlGMDAwMTI4QUZEIC8qIFdlYlBsdWdpbkluZm9Qcm92aWRlci5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQk3Q0VCMDBERDFGQTY5QUJFMDA2NTQ3M0IgLyogV2ViUHJlZmVyZW5jZXNFeHBl
cmltZW50YWxGZWF0dXJlcy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk3Q0YxOTA3MTI1MzM4RjM4
MDBBQkUxODMgLyogV2ViUHJlZmVyZW5jZXNHZXR0ZXJTZXR0ZXJzLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTMxQjM2Mjk5MjE0MUY2RTgwMDdCRkE1MyAvKiBXZWJQcmVmZXJlbmNlc0ludGVybmFs
RGVidWdGZWF0dXJlcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3Q0IxMDBGMTFGQTM4NThBMDAx
NzI5RUUgLyogV2ViUHJlZmVyZW5jZXNLZXlzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdDQjEw
MEY0MUZBMzg1OTIwMDE3MjlFRSAvKiBXZWJQcmVmZXJlbmNlc1N0b3JlRGVmYXVsdHNNYXAuY3Bw
IGluIFNvdXJjZXMgKi8sCkluZGV4OiBUb29scy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9v
bHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNjgzMzApCisrKyBUb29scy9DaGFuZ2VMb2cJKHdvcmtp
bmcgY29weSkKQEAgLTEsMyArMSw5MyBAQAorMjAyMC0xMC0xMSAgU2FtIFdlaW5pZyAgPHdlaW5p
Z0BhcHBsZS5jb20+CisKKyAgICAgICAgW1ByZWZlcmVuY2VzXSBJbnRyb2R1Y2Ugc3RyaW5nIGJh
c2VkIFNQSSBmb3IgV0tQcmVmZXJlbmNlcyB0byBhbGxvdyB0ZXN0cyB0byBjaGFuZ2UgaW50ZXJu
YWwgYmVoYXZpb3Igd2l0aG91dCBhbHdheXMgYWRkaW5nIGFkZGl0aW9uYWwgU1BJCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTc1ODIKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZG9wdCBuZXcgV2ViS2l0
IFNQSSB0byBzZXQgcHJlZmVyZW5jZXMgdXNpbmcgdGhlIGtleXMgZGVmaW5lZCBpbiB0aGUgV2Vi
UHJlZmVyZW5jZXMqLnlhbWwgCisgICAgICAgIGZpbGVzLiAKKworICAgICAgICAqIFdlYktpdFRl
c3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxl
cjo6aW5pdGlhbGl6ZSk6CisgICAgICAgIFJlbW92ZSBuZWVkIGZvciBtX3Nob3VsZFVzZUFjY2Vs
ZXJhdGVkRHJhd2luZyBieSBtZXJnaW5nIGl0IGludG8gdGhlIGdsb2JhbCBmZWF0dXJlIHNldC4K
KworICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6Y3JlYXRlV2ViVmlld1dpdGhPcHRpb25z
KToKKyAgICAgICAgTW92ZSBXS0hUVFBDb29raWVTdG9yZURlbGV0ZUFsbENvb2tpZXMoKSBjYWxs
IG91dCBvZiByZXNldFByZWZlcmVuY2VzVG9Db25zaXN0ZW50VmFsdWVzCisgICAgICAgIHdoZXJl
IGl0IGRpZCBub3QgbWFrZSBzZW5zZS4KKworICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6
cmVzZXRQcmVmZXJlbmNlc1RvQ29uc2lzdGVudFZhbHVlcyk6CisgICAgICAgIFJlcGxhY2UgcHJl
ZmVyZW5jZSBzZXR0ZXJzIHRoYXQgdXNlZCB2YWx1ZXMgZnJvbSBUZXN0T3B0aW9ucyB3aXRoIHVz
ZSBvZiB0aGUgbmV3CisgICAgICAgIFdLUHJlZmVyZW5jZXNTZXRCb29sVmFsdWVGb3JLZXkgU1BJ
LiBBbHNvIHJlbW92ZXMgc29tZSB1bm5lY2Vzc2FyeSAjaWZkZWZzLCBhcyB0aGUgQVBJCisgICAg
ICAgIGl0IHdhcyBndWFyZGluZyBpcyBhbHdheXMgYXZhaWxhYmxlLCB0aG91Z2ggbWF5IGp1c3Qg
YmUgYSBuby1vcCBpZiB0aGUgZmVhdHVyZSBpcyBkaXNhYmxlZC4KKworICAgICAgICAoV1RSOjpU
ZXN0Q29udHJvbGxlcjo6cmVzZXRTdGF0ZVRvQ29uc2lzdGVudFZhbHVlcyk6CisgICAgICAgIE1v
dmUgQ29jb2Egc3BlY2lmaWMgY2FsbCB0byBXZWJDb3JlVGVzdFN1cHBvcnQ6OnNldEFkZGl0aW9u
YWxTdXBwb3J0ZWRJbWFnZVR5cGVzRm9yVGVzdGluZyB0bworICAgICAgICBUZXN0Q29udHJvbGxl
ckNvY29hLm1tIGFuZCBHdGsgc3BlY2lmaWMgY2FsbCB0byBXS1RleHRDaGVja2VyQ29udGludW91
c1NwZWxsQ2hlY2tpbmdFbmFibGVkU3RhdGVDaGFuZ2VkCisgICAgICAgIHRvIFRlc3RDb250cm9s
bGVyR3RrLmNwcC4KKworICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIu
aDoKKyAgICAgICAgUmVtb3ZlIHVuaW1wbGVtZW50ZWQgZ2xvYmFsRmVhdHVyZURlZmF1bHRzRm9y
VGVzdCgpIGZ1bmN0aW9uIGFuZCBub3cgdW51c2VkIG1fc2hvdWxkVXNlQWNjZWxlcmF0ZWREcmF3
aW5nCisgICAgICAgIG1lbWJlciB2YXJpYWJsZS4KKworICAgICAgICAqIFdlYktpdFRlc3RSdW5u
ZXIvVGVzdE9wdGlvbnMuY3BwOgorICAgICAgICAoV1RSOjpUZXN0T3B0aW9uczo6Ym9vbFdLUHJl
ZmVyZW5jZXMgY29uc3QpOgorICAgICAgICBBZGQgaGVscGVyIHRvIGdldCBhbGwgdGhlIGJvb2wg
b3B0aW9ucyBpbiBUZXN0T3B0aW9ucyB0aGF0IGNvcnJlc3BvbmQgd2l0aCBXZWJLaXQgcHJlZmVy
ZW5jZXMuCisKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RPcHRpb25zLmg6CisgICAg
ICAgIChXVFI6OlRlc3RPcHRpb25zOjp1c2VBY2NlbGVyYXRlZERyYXdpbmcgY29uc3QpOiBEZWxl
dGVkLgorICAgICAgICAoV1RSOjpUZXN0T3B0aW9uczo6dXNlTW9ja1Njcm9sbGJhcnMgY29uc3Qp
OiBEZWxldGVkLgorICAgICAgICAoV1RSOjpUZXN0T3B0aW9uczo6bmVlZHNTaXRlU3BlY2lmaWNR
dWlya3MgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV1RSOjpUZXN0T3B0aW9uczo6ZW5hYmxl
SW50ZXJzZWN0aW9uT2JzZXJ2ZXIgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV1RSOjpUZXN0
T3B0aW9uczo6ZW5hYmxlTWVudUl0ZW1FbGVtZW50IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAg
KFdUUjo6VGVzdE9wdGlvbnM6OmVuYWJsZUtleWdlbkVsZW1lbnQgY29uc3QpOiBEZWxldGVkLgor
ICAgICAgICAoV1RSOjpUZXN0T3B0aW9uczo6ZW5hYmxlTW9kZXJuTWVkaWFDb250cm9scyBjb25z
dCk6IERlbGV0ZWQuCisgICAgICAgIChXVFI6OlRlc3RPcHRpb25zOjplbmFibGVQb2ludGVyTG9j
ayBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXVFI6OlRlc3RPcHRpb25zOjplbmFibGVXZWJB
dXRoZW50aWNhdGlvbiBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXVFI6OlRlc3RPcHRpb25z
OjplbmFibGVXZWJBdXRoZW50aWNhdGlvbkxvY2FsQXV0aGVudGljYXRvciBjb25zdCk6IERlbGV0
ZWQuCisgICAgICAgIChXVFI6OlRlc3RPcHRpb25zOjplbmFibGVJbnNwZWN0b3JBZGRpdGlvbnMg
Y29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV1RSOjpUZXN0T3B0aW9uczo6YWxsb3dDcm9zc09y
aWdpblN1YnJlc291cmNlc1RvQXNrRm9yQ3JlZGVudGlhbHMgY29uc3QpOiBEZWxldGVkLgorICAg
ICAgICAoV1RSOjpUZXN0T3B0aW9uczo6ZG9tUGFzdGVBbGxvd2VkIGNvbnN0KTogRGVsZXRlZC4K
KyAgICAgICAgKFdUUjo6VGVzdE9wdGlvbnM6OmVuYWJsZUNvbG9yRmlsdGVyIGNvbnN0KTogRGVs
ZXRlZC4KKyAgICAgICAgKFdUUjo6VGVzdE9wdGlvbnM6OmNoZWNrRm9yV29ybGRMZWFrcyBjb25z
dCk6IERlbGV0ZWQuCisgICAgICAgIChXVFI6OlRlc3RPcHRpb25zOjpzaG91bGRJZ25vcmVNZXRh
Vmlld3BvcnQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV1RSOjpUZXN0T3B0aW9uczo6ZW5h
YmxlU2VydmljZUNvbnRyb2xzIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdUUjo6VGVzdE9w
dGlvbnM6OmVuYWJsZUFwcE5hcCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXVFI6OlRlc3RP
cHRpb25zOjplbmFibGVCYWNrRm9yd2FyZENhY2hlIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAg
KFdUUjo6VGVzdE9wdGlvbnM6OmVuYWJsZUNhcHR1cmVWaWRlb0luVUlQcm9jZXNzIGNvbnN0KTog
RGVsZXRlZC4KKyAgICAgICAgKFdUUjo6VGVzdE9wdGlvbnM6OmVuYWJsZUNhcHR1cmVWaWRlb0lu
R1BVUHJvY2VzcyBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXVFI6OlRlc3RPcHRpb25zOjpl
bmFibGVDYXB0dXJlQXVkaW9JblVJUHJvY2VzcyBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChX
VFI6OlRlc3RPcHRpb25zOjplbmFibGVDYXB0dXJlQXVkaW9JbkdQVVByb2Nlc3MgY29uc3QpOiBE
ZWxldGVkLgorICAgICAgICBSZW1vdmUgYWxsIGdldHRlcnMgdGhhdCBhcmUgbm93IHJlcGxhY2Vk
IGJ5IGJvb2xXS1ByZWZlcmVuY2VzLgorICAgICAgICBBbHNvLCBzb3J0cyBhbGwgdGhlIGxpc3Rz
IHRvIG1ha2UgaXQgZWFzaWVyIHRvIGZpbmQgdGhpbmdzLgorCisgICAgICAgICogV2ViS2l0VGVz
dFJ1bm5lci9jb2NvYS9UZXN0Q29udHJvbGxlckNvY29hLm1tOgorICAgICAgICAoV1RSOjppbml0
aWFsaXplV2ViVmlld0NvbmZpZ3VyYXRpb24pOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxl
cjo6cGxhdGZvcm1DcmVhdGVXZWJWaWV3KToKKyAgICAgICAgUmVtb3ZlIHNldHRpbmcgb2YgY29u
ZmlndXJhdGlvbiB2YWx1ZXMgdGhhdCBhbHNvIGNvdmVyZWQgYnkgYm9vbFdLUHJlZmVyZW5jZXMu
CisKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OmNvY29hUmVzZXRTdGF0ZVRvQ29uc2lz
dGVudFZhbHVlcyk6CisgICAgICAgIE1vdmUgQ29jb2Egc3BlY2lmaWMgY2FsbCBoZXJlLgorCisg
ICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9ndGsvVGVzdENvbnRyb2xsZXJHdGsuY3BwOgorICAg
ICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1SZXNldFN0YXRlVG9Db25zaXN0ZW50
VmFsdWVzKToKKyAgICAgICAgTW92ZSBHdGsgc3BlY2lmaWMgY2FsbCBoZXJlLgorCisgICAgICAg
ICogV2ViS2l0VGVzdFJ1bm5lci9pb3MvVGVzdENvbnRyb2xsZXJJT1MubW06CisgICAgICAgIChX
VFI6OlRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybVJlc2V0UHJlZmVyZW5jZXNUb0NvbnNpc3RlbnRW
YWx1ZXMpOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1Db25maWd1cmVW
aWV3Rm9yVGVzdCk6CisgICAgICAgIFJlbW92ZSBzZXR0aW5nIG9mIGNvbmZpZ3VyYXRpb24gdmFs
dWVzIHRoYXQgYWxzbyBjb3ZlcmVkIGJ5IGJvb2xXS1ByZWZlcmVuY2VzLgorCisgICAgICAgICog
V2ViS2l0VGVzdFJ1bm5lci93aW4vVGVzdENvbnRyb2xsZXJXaW4uY3BwOgorICAgICAgICAoV1RS
OjpUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1SZXNldFN0YXRlVG9Db25zaXN0ZW50VmFsdWVzKToK
KyAgICAgICAgTW92ZWQgZGVmYXVsdCBuby1vcCBpbXBsZW1lbnRhdGlvbiBmcm9tIFRlc3RDb250
cm9sbGVyLmNwcCBub3cgdGhhdCBub3QgYWxsCisgICAgICAgIG5vbi1Db2NvYSBwbGF0Zm9ybXMg
dXNlIHRoZSBzYW1lIGltcGxlbWVudGF0aW9uLgorCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5l
ci93cGUvVGVzdENvbnRyb2xsZXJXUEUuY3BwOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxl
cjo6cGxhdGZvcm1SZXNldFN0YXRlVG9Db25zaXN0ZW50VmFsdWVzKToKKyAgICAgICAgTW92ZWQg
ZGVmYXVsdCBuby1vcCBpbXBsZW1lbnRhdGlvbiBmcm9tIFRlc3RDb250cm9sbGVyLmNwcCBub3cg
dGhhdCBub3QgYWxsCisgICAgICAgIG5vbi1Db2NvYSBwbGF0Zm9ybXMgdXNlIHRoZSBzYW1lIGlt
cGxlbWVudGF0aW9uLgorCiAyMDIwLTEwLTEwICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNv
bT4KIAogICAgICAgICBSRUdSRVNTSU9OIChyMjY3NzYxKTogZWRpdGluZy9tYWMvc3BlbGxpbmcv
YXV0b2NvcnJlY3Rpb24tY29udHJhY3Rpb24uaHRtbCBpcyBhIGNvbnN0YW50IHRpbWVvdXQgb24g
bWFjT1Mgd2syIERlYnVnCkluZGV4OiBUb29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9s
bGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9s
bGVyLmNwcAkocmV2aXNpb24gMjY4MzMwKQorKysgVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0
Q29udHJvbGxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ2MywxNCArNDYzLDE0IEBAIHZvaWQg
VGVzdENvbnRyb2xsZXI6OmluaXRpYWxpemUoaW50IGFyZ2MKICAgICBtX2djQmV0d2VlblRlc3Rz
ID0gb3B0aW9ucy5nY0JldHdlZW5UZXN0czsKICAgICBtX3Nob3VsZER1bXBQaXhlbHNGb3JBbGxU
ZXN0cyA9IG9wdGlvbnMuc2hvdWxkRHVtcFBpeGVsc0ZvckFsbFRlc3RzOwogICAgIG1fZm9yY2VD
b21wbGV4VGV4dCA9IG9wdGlvbnMuZm9yY2VDb21wbGV4VGV4dDsKLSAgICBtX3Nob3VsZFVzZUFj
Y2VsZXJhdGVkRHJhd2luZyA9IG9wdGlvbnMuc2hvdWxkVXNlQWNjZWxlcmF0ZWREcmF3aW5nOwog
ICAgIG1fcGF0aHMgPSBvcHRpb25zLnBhdGhzOwogICAgIG1fYWxsb3dlZEhvc3RzID0gb3B0aW9u
cy5hbGxvd2VkSG9zdHM7CiAgICAgbV9jaGVja0ZvcldvcmxkTGVha3MgPSBvcHRpb25zLmNoZWNr
Rm9yV29ybGRMZWFrczsKICAgICBtX2FsbG93QW55SFRUUFNDZXJ0aWZpY2F0ZUZvckFsbG93ZWRI
b3N0cyA9IG9wdGlvbnMuYWxsb3dBbnlIVFRQU0NlcnRpZmljYXRlRm9yQWxsb3dlZEhvc3RzOwot
ICAgIAorCiAgICAgbV9nbG9iYWxGZWF0dXJlcy5pbnRlcm5hbERlYnVnRmVhdHVyZXMgPSBvcHRp
b25zLmludGVybmFsRmVhdHVyZXM7CiAgICAgbV9nbG9iYWxGZWF0dXJlcy5leHBlcmltZW50YWxG
ZWF0dXJlcyA9IG9wdGlvbnMuZXhwZXJpbWVudGFsRmVhdHVyZXM7CisgICAgbV9nbG9iYWxGZWF0
dXJlcy5ib29sRmVhdHVyZXMuaW5zZXJ0KHsgInVzZUFjY2VsZXJhdGVkRHJhd2luZyIsIG9wdGlv
bnMuc2hvdWxkVXNlQWNjZWxlcmF0ZWREcmF3aW5nIH0pOwogICAgIG1fZ2xvYmFsRmVhdHVyZXMu
Ym9vbEZlYXR1cmVzLmluc2VydCh7ICJ1c2VSZW1vdGVMYXllclRyZWUiLCBvcHRpb25zLnNob3Vs
ZFVzZVJlbW90ZUxheWVyVHJlZSB9KTsKICAgICBtX2dsb2JhbEZlYXR1cmVzLmJvb2xGZWF0dXJl
cy5pbnNlcnQoeyAic2hvdWxkU2hvd1dlYlZpZXciLCBvcHRpb25zLnNob3VsZFNob3dXZWJWaWV3
IH0pOwogICAgIG1fZ2xvYmFsRmVhdHVyZXMuYm9vbEZlYXR1cmVzLmluc2VydCh7ICJzaG91bGRT
aG93VG91Y2hlcyIsIG9wdGlvbnMuc2hvdWxkU2hvd1RvdWNoZXMgfSk7CkBAIC02NTQsNiArNjU0
LDggQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6Y3JlYXRlV2ViVmlld1dpdGhPcAogICAgIC8vIEZJ
WE1FOiBNaWdyYXRlIHRoZXNlIHByZWZlcmVuY2VzIHRvIFdLQ29udGV4dENvbmZpZ3VyYXRpb25S
ZWYuCiAgICAgcmVzZXRQcmVmZXJlbmNlc1RvQ29uc2lzdGVudFZhbHVlcyhvcHRpb25zKTsKIAor
ICAgIFdLSFRUUENvb2tpZVN0b3JlRGVsZXRlQWxsQ29va2llcyhXS1dlYnNpdGVEYXRhU3RvcmVH
ZXRIVFRQQ29va2llU3RvcmUod2Vic2l0ZURhdGFTdG9yZSgpKSwgbnVsbHB0ciwgbnVsbHB0cik7
CisKICAgICBwbGF0Zm9ybUNyZWF0ZVdlYlZpZXcoY29uZmlndXJhdGlvbi5nZXQoKSwgb3B0aW9u
cyk7CiAgICAgV0tQYWdlVUlDbGllbnRWMTQgcGFnZVVJQ2xpZW50ID0gewogICAgICAgICB7IDE0
LCBtX21haW5XZWJWaWV3LmdldCgpIH0sCkBAIC04NDEsMzcgKzg0MywyMyBAQCB2b2lkIFRlc3RD
b250cm9sbGVyOjpyZXNldFByZWZlcmVuY2VzVG9DCiAgICAgV0tQcmVmZXJlbmNlc1Jlc2V0QWxs
SW50ZXJuYWxEZWJ1Z0ZlYXR1cmVzKHByZWZlcmVuY2VzKTsKIAogICAgIC8vIFNldCBpbnRlcm5h
bCBmZWF0dXJlcyB0aGF0IGhhdmUgZGlmZmVyZW50IGRlZmF1bHQgdmFsdWVzIGZvciB0ZXN0aW5n
LgotCiAgICAgV0tQcmVmZXJlbmNlc1NldEludGVybmFsRGVidWdGZWF0dXJlRm9yS2V5KHByZWZl
cmVuY2VzLCBmYWxzZSwgdG9XSygiQXN5bmNPdmVyZmxvd1Njcm9sbGluZ0VuYWJsZWQiKS5nZXQo
KSk7CiAgICAgV0tQcmVmZXJlbmNlc1NldEludGVybmFsRGVidWdGZWF0dXJlRm9yS2V5KHByZWZl
cmVuY2VzLCBmYWxzZSwgdG9XSygiQXN5bmNGcmFtZVNjcm9sbGluZ0VuYWJsZWQiKS5nZXQoKSk7
Ci0KLSNpZiBFTkFCTEUoSU5QVVRfVFlQRV9EQVRFKQogICAgIFdLUHJlZmVyZW5jZXNTZXRJbnRl
cm5hbERlYnVnRmVhdHVyZUZvcktleShwcmVmZXJlbmNlcywgdHJ1ZSwgdG9XSygiSW5wdXRUeXBl
RGF0ZUVuYWJsZWQiKS5nZXQoKSk7Ci0jZW5kaWYKLSNpZiBFTkFCTEUoSU5QVVRfVFlQRV9EQVRF
VElNRUxPQ0FMKQogICAgIFdLUHJlZmVyZW5jZXNTZXRJbnRlcm5hbERlYnVnRmVhdHVyZUZvcktl
eShwcmVmZXJlbmNlcywgdHJ1ZSwgdG9XSygiSW5wdXRUeXBlRGF0ZVRpbWVMb2NhbEVuYWJsZWQi
KS5nZXQoKSk7Ci0jZW5kaWYKLSNpZiBFTkFCTEUoSU5QVVRfVFlQRV9NT05USCkKICAgICBXS1By
ZWZlcmVuY2VzU2V0SW50ZXJuYWxEZWJ1Z0ZlYXR1cmVGb3JLZXkocHJlZmVyZW5jZXMsIHRydWUs
IHRvV0soIklucHV0VHlwZU1vbnRoRW5hYmxlZCIpLmdldCgpKTsKLSNlbmRpZgotI2lmIEVOQUJM
RShJTlBVVF9UWVBFX1RJTUUpCiAgICAgV0tQcmVmZXJlbmNlc1NldEludGVybmFsRGVidWdGZWF0
dXJlRm9yS2V5KHByZWZlcmVuY2VzLCB0cnVlLCB0b1dLKCJJbnB1dFR5cGVUaW1lRW5hYmxlZCIp
LmdldCgpKTsKLSNlbmRpZgotI2lmIEVOQUJMRShJTlBVVF9UWVBFX1dFRUspCiAgICAgV0tQcmVm
ZXJlbmNlc1NldEludGVybmFsRGVidWdGZWF0dXJlRm9yS2V5KHByZWZlcmVuY2VzLCB0cnVlLCB0
b1dLKCJJbnB1dFR5cGVXZWVrRW5hYmxlZCIpLmdldCgpKTsKLSNlbmRpZgorICAgIFdLUHJlZmVy
ZW5jZXNTZXRJbnRlcm5hbERlYnVnRmVhdHVyZUZvcktleShwcmVmZXJlbmNlcywgZmFsc2UsIHRv
V0soIlNwZWFrZXJTZWxlY3Rpb25SZXF1aXJlc1VzZXJHZXN0dXJlIikuZ2V0KCkpOwogCiAgICAg
Zm9yIChjb25zdCBhdXRvJiBba2V5LCB2YWx1ZV0gIDogb3B0aW9ucy5pbnRlcm5hbERlYnVnRmVh
dHVyZXMoKSkKICAgICAgICAgV0tQcmVmZXJlbmNlc1NldEludGVybmFsRGVidWdGZWF0dXJlRm9y
S2V5KHByZWZlcmVuY2VzLCB2YWx1ZSwgdG9XSyhrZXkpLmdldCgpKTsKIAotI2lmIFBMQVRGT1JN
KENPQ09BKQotICAgIFdLUHJlZmVyZW5jZXNTZXRDYXB0dXJlVmlkZW9JblVJUHJvY2Vzc0VuYWJs
ZWQocHJlZmVyZW5jZXMsIG9wdGlvbnMuZW5hYmxlQ2FwdHVyZVZpZGVvSW5VSVByb2Nlc3MoKSk7
Ci0gICAgV0tQcmVmZXJlbmNlc1NldENhcHR1cmVWaWRlb0luR1BVUHJvY2Vzc0VuYWJsZWQocHJl
ZmVyZW5jZXMsIG9wdGlvbnMuZW5hYmxlQ2FwdHVyZVZpZGVvSW5HUFVQcm9jZXNzKCkpOwotICAg
IFdLUHJlZmVyZW5jZXNTZXRDYXB0dXJlQXVkaW9JblVJUHJvY2Vzc0VuYWJsZWQocHJlZmVyZW5j
ZXMsIG9wdGlvbnMuZW5hYmxlQ2FwdHVyZUF1ZGlvSW5VSVByb2Nlc3MoKSk7Ci0gICAgV0tQcmVm
ZXJlbmNlc1NldENhcHR1cmVBdWRpb0luR1BVUHJvY2Vzc0VuYWJsZWQocHJlZmVyZW5jZXMsIG9w
dGlvbnMuZW5hYmxlQ2FwdHVyZUF1ZGlvSW5HUFVQcm9jZXNzKCkpOwotI2VuZGlmCisgICAgZm9y
IChjb25zdCBhdXRvJiBba2V5LCB2YWx1ZV0gOiBvcHRpb25zLmJvb2xXS1ByZWZlcmVuY2VzKCkp
CisgICAgICAgIFdLUHJlZmVyZW5jZXNTZXRCb29sVmFsdWVGb3JLZXkocHJlZmVyZW5jZXMsIHZh
bHVlLCB0b1dLKGtleSkuZ2V0KCkpOworCisgICAgLy8gRklYTUU6IENvbnZlcnQgdGhlc2UgdG8g
ZGVmYXVsdCB2YWx1ZXMgZm9yIFRlc3RPcHRpb25zLgogICAgIFdLUHJlZmVyZW5jZXNTZXRQcm9j
ZXNzU3dhcE9uTmF2aWdhdGlvbkVuYWJsZWQocHJlZmVyZW5jZXMsIG9wdGlvbnMuY29udGV4dE9w
dGlvbnMoKS5zaG91bGRFbmFibGVQcm9jZXNzU3dhcE9uTmF2aWdhdGlvbigpKTsKLSAgICBXS1By
ZWZlcmVuY2VzU2V0UGFnZVZpc2liaWxpdHlCYXNlZFByb2Nlc3NTdXBwcmVzc2lvbkVuYWJsZWQo
cHJlZmVyZW5jZXMsIG9wdGlvbnMuZW5hYmxlQXBwTmFwKCkpOwogICAgIFdLUHJlZmVyZW5jZXNT
ZXRPZmZsaW5lV2ViQXBwbGljYXRpb25DYWNoZUVuYWJsZWQocHJlZmVyZW5jZXMsIHRydWUpOwog
ICAgIFdLUHJlZmVyZW5jZXNTZXRTdWJwaXhlbEFudGlhbGlhc2VkTGF5ZXJUZXh0RW5hYmxlZChw
cmVmZXJlbmNlcywgZmFsc2UpOwogICAgIFdLUHJlZmVyZW5jZXNTZXRYU1NBdWRpdG9yRW5hYmxl
ZChwcmVmZXJlbmNlcywgZmFsc2UpOwpAQCAtODgyLDEzICs4NzAsOSBAQCB2b2lkIFRlc3RDb250
cm9sbGVyOjpyZXNldFByZWZlcmVuY2VzVG9DCiAgICAgV0tQcmVmZXJlbmNlc1NldEphdmFTY3Jp
cHRSdW50aW1lRmxhZ3MocHJlZmVyZW5jZXMsIGtXS0phdmFTY3JpcHRSdW50aW1lRmxhZ3NBbGxF
bmFibGVkKTsKICAgICBXS1ByZWZlcmVuY2VzU2V0SmF2YVNjcmlwdENhbk9wZW5XaW5kb3dzQXV0
b21hdGljYWxseShwcmVmZXJlbmNlcywgdHJ1ZSk7CiAgICAgV0tQcmVmZXJlbmNlc1NldEphdmFT
Y3JpcHRDYW5BY2Nlc3NDbGlwYm9hcmQocHJlZmVyZW5jZXMsIHRydWUpOwotICAgIFdLUHJlZmVy
ZW5jZXNTZXRET01QYXN0ZUFsbG93ZWQocHJlZmVyZW5jZXMsIG9wdGlvbnMuZG9tUGFzdGVBbGxv
d2VkKCkpOwogICAgIFdLUHJlZmVyZW5jZXNTZXRVbml2ZXJzYWxBY2Nlc3NGcm9tRmlsZVVSTHNB
bGxvd2VkKHByZWZlcmVuY2VzLCB0cnVlKTsKICAgICBXS1ByZWZlcmVuY2VzU2V0RmlsZUFjY2Vz
c0Zyb21GaWxlVVJMc0FsbG93ZWQocHJlZmVyZW5jZXMsIHRydWUpOwotICAgIFdLUHJlZmVyZW5j
ZXNTZXRUb3BOYXZpZ2F0aW9uVG9EYXRhVVJMc0FsbG93ZWQocHJlZmVyZW5jZXMsIG9wdGlvbnMu
YWxsb3dUb3BOYXZpZ2F0aW9uVG9EYXRhVVJMcygpKTsKLSNpZiBFTkFCTEUoRlVMTFNDUkVFTl9B
UEkpCiAgICAgV0tQcmVmZXJlbmNlc1NldEZ1bGxTY3JlZW5FbmFibGVkKHByZWZlcmVuY2VzLCB0
cnVlKTsKLSNlbmRpZgogICAgIFdLUHJlZmVyZW5jZXNTZXRBc3luY2hyb25vdXNQbHVnaW5Jbml0
aWFsaXphdGlvbkVuYWJsZWQocHJlZmVyZW5jZXMsIGZhbHNlKTsKICAgICBXS1ByZWZlcmVuY2Vz
U2V0QXN5bmNocm9ub3VzUGx1Z2luSW5pdGlhbGl6YXRpb25FbmFibGVkRm9yQWxsUGx1Z2lucyhw
cmVmZXJlbmNlcywgZmFsc2UpOwogICAgIFdLUHJlZmVyZW5jZXNTZXRBcnRpZmljaWFsUGx1Z2lu
SW5pdGlhbGl6YXRpb25EZWxheUVuYWJsZWQocHJlZmVyZW5jZXMsIGZhbHNlKTsKQEAgLTg5Nywy
MiArODgxLDcgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6cmVzZXRQcmVmZXJlbmNlc1RvQwogICAg
IFdLUHJlZmVyZW5jZXNTZXREYXRhVHJhbnNmZXJJdGVtc0VuYWJsZWQocHJlZmVyZW5jZXMsIHRy
dWUpOwogICAgIFdLUHJlZmVyZW5jZXNTZXRDdXN0b21QYXN0ZWJvYXJkRGF0YUVuYWJsZWQocHJl
ZmVyZW5jZXMsIHRydWUpOwogICAgIFdLUHJlZmVyZW5jZXNTZXREaWFsb2dFbGVtZW50RW5hYmxl
ZChwcmVmZXJlbmNlcywgdHJ1ZSk7Ci0KLSAgICBXS1ByZWZlcmVuY2VzU2V0TW9ja1Njcm9sbGJh
cnNFbmFibGVkKHByZWZlcmVuY2VzLCBvcHRpb25zLnVzZU1vY2tTY3JvbGxiYXJzKCkpOwotICAg
IFdLUHJlZmVyZW5jZXNTZXROZWVkc1NpdGVTcGVjaWZpY1F1aXJrcyhwcmVmZXJlbmNlcywgb3B0
aW9ucy5uZWVkc1NpdGVTcGVjaWZpY1F1aXJrcygpKTsKLSAgICBXS1ByZWZlcmVuY2VzU2V0QXR0
YWNobWVudEVsZW1lbnRFbmFibGVkKHByZWZlcmVuY2VzLCBvcHRpb25zLmVuYWJsZUF0dGFjaG1l
bnRFbGVtZW50KCkpOwotICAgIFdLUHJlZmVyZW5jZXNTZXRNZW51SXRlbUVsZW1lbnRFbmFibGVk
KHByZWZlcmVuY2VzLCBvcHRpb25zLmVuYWJsZU1lbnVJdGVtRWxlbWVudCgpKTsKLSAgICBXS1By
ZWZlcmVuY2VzU2V0S2V5Z2VuRWxlbWVudEVuYWJsZWQocHJlZmVyZW5jZXMsIG9wdGlvbnMuZW5h
YmxlS2V5Z2VuRWxlbWVudCgpKTsKLSAgICBXS1ByZWZlcmVuY2VzU2V0TW9kZXJuTWVkaWFDb250
cm9sc0VuYWJsZWQocHJlZmVyZW5jZXMsIG9wdGlvbnMuZW5hYmxlTW9kZXJuTWVkaWFDb250cm9s
cygpKTsKLSAgICBXS1ByZWZlcmVuY2VzU2V0V2ViQXV0aGVudGljYXRpb25FbmFibGVkKHByZWZl
cmVuY2VzLCBvcHRpb25zLmVuYWJsZVdlYkF1dGhlbnRpY2F0aW9uKCkpOwotICAgIFdLUHJlZmVy
ZW5jZXNTZXRXZWJBdXRoZW50aWNhdGlvbkxvY2FsQXV0aGVudGljYXRvckVuYWJsZWQocHJlZmVy
ZW5jZXMsIG9wdGlvbnMuZW5hYmxlV2ViQXV0aGVudGljYXRpb25Mb2NhbEF1dGhlbnRpY2F0b3Io
KSk7Ci0gICAgV0tQcmVmZXJlbmNlc1NldEFsbG93Q3Jvc3NPcmlnaW5TdWJyZXNvdXJjZXNUb0Fz
a0ZvckNyZWRlbnRpYWxzKHByZWZlcmVuY2VzLCBvcHRpb25zLmFsbG93Q3Jvc3NPcmlnaW5TdWJy
ZXNvdXJjZXNUb0Fza0ZvckNyZWRlbnRpYWxzKCkpOwotICAgIFdLUHJlZmVyZW5jZXNTZXRDb2xv
ckZpbHRlckVuYWJsZWQocHJlZmVyZW5jZXMsIG9wdGlvbnMuZW5hYmxlQ29sb3JGaWx0ZXIoKSk7
Ci0gICAgV0tQcmVmZXJlbmNlc1NldFB1bmNoT3V0V2hpdGVCYWNrZ3JvdW5kc0luRGFya01vZGUo
cHJlZmVyZW5jZXMsIG9wdGlvbnMucHVuY2hPdXRXaGl0ZUJhY2tncm91bmRzSW5EYXJrTW9kZSgp
KTsKLSAgICBXS1ByZWZlcmVuY2VzU2V0UGFnZUNhY2hlRW5hYmxlZChwcmVmZXJlbmNlcywgb3B0
aW9ucy5lbmFibGVCYWNrRm9yd2FyZENhY2hlKCkpOwotCiAgICAgV0tQcmVmZXJlbmNlc1NldERl
ZmF1bHRUZXh0RW5jb2RpbmdOYW1lKHByZWZlcmVuY2VzLCB0b1dLKCJJU08tODg1OS0xIikuZ2V0
KCkpOwotCiAgICAgV0tQcmVmZXJlbmNlc1NldE1pbmltdW1Gb250U2l6ZShwcmVmZXJlbmNlcywg
MCk7CiAgICAgV0tQcmVmZXJlbmNlc1NldFN0YW5kYXJkRm9udEZhbWlseShwcmVmZXJlbmNlcywg
dG9XSygiVGltZXMiKS5nZXQoKSk7CiAgICAgV0tQcmVmZXJlbmNlc1NldEN1cnNpdmVGb250RmFt
aWx5KHByZWZlcmVuY2VzLCB0b1dLKCJBcHBsZSBDaGFuY2VyeSIpLmdldCgpKTsKQEAgLTkyMiwy
MSArODkxLDEzIEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OnJlc2V0UHJlZmVyZW5jZXNUb0MKICAg
ICBXS1ByZWZlcmVuY2VzU2V0U2Fuc1NlcmlmRm9udEZhbWlseShwcmVmZXJlbmNlcywgdG9XSygi
SGVsdmV0aWNhIikuZ2V0KCkpOwogICAgIFdLUHJlZmVyZW5jZXNTZXRTZXJpZkZvbnRGYW1pbHko
cHJlZmVyZW5jZXMsIHRvV0soIlRpbWVzIikuZ2V0KCkpOwogICAgIFdLUHJlZmVyZW5jZXNTZXRB
c3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZChwcmVmZXJlbmNlcywgZmFsc2UpOwotI2lm
IEVOQUJMRShNRURJQV9TT1VSQ0UpCiAgICAgV0tQcmVmZXJlbmNlc1NldE1lZGlhU291cmNlRW5h
YmxlZChwcmVmZXJlbmNlcywgdHJ1ZSk7CiAgICAgV0tQcmVmZXJlbmNlc1NldFNvdXJjZUJ1ZmZl
ckNoYW5nZVR5cGVFbmFibGVkKHByZWZlcmVuY2VzLCB0cnVlKTsKLSNlbmRpZgogICAgIFdLUHJl
ZmVyZW5jZXNTZXRIaWdobGlnaHRBUElFbmFibGVkKHByZWZlcmVuY2VzLCB0cnVlKTsKLQogICAg
IFdLUHJlZmVyZW5jZXNTZXRIaWRkZW5QYWdlRE9NVGltZXJUaHJvdHRsaW5nRW5hYmxlZChwcmVm
ZXJlbmNlcywgZmFsc2UpOwogICAgIFdLUHJlZmVyZW5jZXNTZXRIaWRkZW5QYWdlQ1NTQW5pbWF0
aW9uU3VzcGVuc2lvbkVuYWJsZWQocHJlZmVyZW5jZXMsIGZhbHNlKTsKLQotICAgIFdLUHJlZmVy
ZW5jZXNTZXRBY2NlbGVyYXRlZERyYXdpbmdFbmFibGVkKHByZWZlcmVuY2VzLCBtX3Nob3VsZFVz
ZUFjY2VsZXJhdGVkRHJhd2luZyB8fCBvcHRpb25zLnVzZUFjY2VsZXJhdGVkRHJhd2luZygpKTsK
LSAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIGJlIHRlc3RpbmcgdGhlIGRlZmF1bHQuCi0gICAgV0tQ
cmVmZXJlbmNlc1NldFN0b3JhZ2VCbG9ja2luZ1BvbGljeShwcmVmZXJlbmNlcywga1dLQWxsb3dB
bGxTdG9yYWdlKTsKLQorICAgIFdLUHJlZmVyZW5jZXNTZXRTdG9yYWdlQmxvY2tpbmdQb2xpY3ko
cHJlZmVyZW5jZXMsIGtXS0FsbG93QWxsU3RvcmFnZSk7IC8vIEZJWE1FOiBXZSBzaG91bGQgYmUg
dGVzdGluZyB0aGUgZGVmYXVsdC4KICAgICBXS1ByZWZlcmVuY2VzU2V0SXNOU1VSTFNlc3Npb25X
ZWJTb2NrZXRFbmFibGVkKHByZWZlcmVuY2VzLCBmYWxzZSk7Ci0KICAgICBXS1ByZWZlcmVuY2Vz
U2V0RmV0Y2hBUElLZWVwQWxpdmVFbmFibGVkKHByZWZlcmVuY2VzLCB0cnVlKTsKICAgICBXS1By
ZWZlcmVuY2VzU2V0TWVkaWFQcmVsb2FkaW5nRW5hYmxlZChwcmVmZXJlbmNlcywgdHJ1ZSk7CiAg
ICAgV0tQcmVmZXJlbmNlc1NldEV4cG9zZVNwZWFrZXJzRW5hYmxlZChwcmVmZXJlbmNlcywgdHJ1
ZSk7CkBAIC05NDUsMzggKzkwNiwyMiBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpyZXNldFByZWZl
cmVuY2VzVG9DCiAgICAgV0tQcmVmZXJlbmNlc1NldFJlbW90ZVBsYXliYWNrRW5hYmxlZChwcmVm
ZXJlbmNlcywgdHJ1ZSk7CiAgICAgV0tQcmVmZXJlbmNlc1NldEJlYWNvbkFQSUVuYWJsZWQocHJl
ZmVyZW5jZXMsIHRydWUpOwogICAgIFdLUHJlZmVyZW5jZXNTZXREaXJlY3RvcnlVcGxvYWRFbmFi
bGVkKHByZWZlcmVuY2VzLCB0cnVlKTsKLQotICAgIFdLSFRUUENvb2tpZVN0b3JlRGVsZXRlQWxs
Q29va2llcyhXS1dlYnNpdGVEYXRhU3RvcmVHZXRIVFRQQ29va2llU3RvcmUod2Vic2l0ZURhdGFT
dG9yZSgpKSwgbnVsbHB0ciwgbnVsbHB0cik7Ci0KICAgICBXS1ByZWZlcmVuY2VzU2V0TW9ja0Nh
cHR1cmVEZXZpY2VzRW5hYmxlZChwcmVmZXJlbmNlcywgdHJ1ZSk7Ci0gICAgCiAgICAgV0tQcmVm
ZXJlbmNlc1NldExhcmdlSW1hZ2VBc3luY0RlY29kaW5nRW5hYmxlZChwcmVmZXJlbmNlcywgZmFs
c2UpOwotCi0gICAgV0tQcmVmZXJlbmNlc1NldEluc3BlY3RvckFkZGl0aW9uc0VuYWJsZWQocHJl
ZmVyZW5jZXMsIG9wdGlvbnMuZW5hYmxlSW5zcGVjdG9yQWRkaXRpb25zKCkpOwotCiAgICAgV0tQ
cmVmZXJlbmNlc1NldFN0b3JhZ2VBY2Nlc3NBUElFbmFibGVkKHByZWZlcmVuY2VzLCB0cnVlKTsK
LSAgICAKICAgICBXS1ByZWZlcmVuY2VzU2V0QWNjZXNzaWJpbGl0eU9iamVjdE1vZGVsRW5hYmxl
ZChwcmVmZXJlbmNlcywgdHJ1ZSk7CiAgICAgV0tQcmVmZXJlbmNlc1NldENTU09NVmlld1Njcm9s
bGluZ0FQSUVuYWJsZWQocHJlZmVyZW5jZXMsIHRydWUpOwogICAgIFdLUHJlZmVyZW5jZXNTZXRN
ZWRpYUNhcGFiaWxpdGllc0VuYWJsZWQocHJlZmVyZW5jZXMsIHRydWUpOwotCiAgICAgV0tQcmVm
ZXJlbmNlc1NldFJlc3RyaWN0ZWRIVFRQUmVzcG9uc2VBY2Nlc3MocHJlZmVyZW5jZXMsIHRydWUp
OwotCiAgICAgV0tQcmVmZXJlbmNlc1NldFNlcnZlclRpbWluZ0VuYWJsZWQocHJlZmVyZW5jZXMs
IHRydWUpOwotCiAgICAgV0tQcmVmZXJlbmNlc1NldFdlYlNRTERpc2FibGVkKHByZWZlcmVuY2Vz
LCBmYWxzZSk7Ci0KICAgICBXS1ByZWZlcmVuY2VzU2V0TWVkaWFQbGF5YmFja1JlcXVpcmVzVXNl
ckdlc3R1cmUocHJlZmVyZW5jZXMsIGZhbHNlKTsKICAgICBXS1ByZWZlcmVuY2VzU2V0VmlkZW9Q
bGF5YmFja1JlcXVpcmVzVXNlckdlc3R1cmUocHJlZmVyZW5jZXMsIGZhbHNlKTsKICAgICBXS1By
ZWZlcmVuY2VzU2V0QXVkaW9QbGF5YmFja1JlcXVpcmVzVXNlckdlc3R1cmUocHJlZmVyZW5jZXMs
IGZhbHNlKTsKLSAgICBXS1ByZWZlcmVuY2VzU2V0SW50ZXJuYWxEZWJ1Z0ZlYXR1cmVGb3JLZXko
cHJlZmVyZW5jZXMsIGZhbHNlLCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiU3BlYWtl
clNlbGVjdGlvblJlcXVpcmVzVXNlckdlc3R1cmUiKSk7Ci0KLSAgICBXS1ByZWZlcmVuY2VzU2V0
U2hvdWxkVXNlU2VydmljZVdvcmtlclNob3J0VGltZW91dChwcmVmZXJlbmNlcywgb3B0aW9ucy51
c2VTZXJ2aWNlV29ya2VyU2hvcnRUaW1lb3V0KCkpOwotCiAjaWYgRU5BQkxFKEFDQ0VTU0lCSUxJ
VFlfSVNPTEFURURfVFJFRSkKICAgICBXS1ByZWZlcmVuY2VzU2V0SXNBY2Nlc3NpYmlsaXR5SXNv
bGF0ZWRUcmVlRW5hYmxlZChwcmVmZXJlbmNlcywgYWNjZXNzaWJpbGl0eUlzb2xhdGVkVHJlZU1v
ZGUoKSk7CiAjZW5kaWYKLSAgICAKKwogICAgIHBsYXRmb3JtUmVzZXRQcmVmZXJlbmNlc1RvQ29u
c2lzdGVudFZhbHVlcygpOwogfQogCkBAIC0xMDA5LDIzICs5NTQsMTkgQEAgYm9vbCBUZXN0Q29u
dHJvbGxlcjo6cmVzZXRTdGF0ZVRvQ29uc2lzdAogICAgIGlmICghanNjT3B0aW9ucy5lbXB0eSgp
KQogICAgICAgICBzZXRWYWx1ZShyZXNldE1lc3NhZ2VCb2R5LCAiSlNDT3B0aW9ucyIsIGpzY09w
dGlvbnMuY19zdHIoKSk7CiAKLSNpZiBQTEFURk9STShDT0NPQSkKLSAgICBXZWJDb3JlVGVzdFN1
cHBvcnQ6OnNldEFkZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVzRm9yVGVzdGluZyhvcHRpb25z
LmFkZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVzKCkuY19zdHIoKSk7Ci0jZW5kaWYKLQogICAg
IFdLUGFnZVBvc3RNZXNzYWdlVG9JbmplY3RlZEJ1bmRsZShUZXN0Q29udHJvbGxlcjo6c2luZ2xl
dG9uKCkubWFpbldlYlZpZXcoKS0+cGFnZSgpLCB0b1dLKCJSZXNldCIpLmdldCgpLCByZXNldE1l
c3NhZ2VCb2R5LmdldCgpKTsKIAogICAgIFdLQ29udGV4dFNldFNob3VsZFVzZUZvbnRTbW9vdGhp
bmcoVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLmNvbnRleHQoKSwgZmFsc2UpOwotCiAgICAg
V0tDb250ZXh0U2V0Q2FjaGVNb2RlbChUZXN0Q29udHJvbGxlcjo6c2luZ2xldG9uKCkuY29udGV4
dCgpLCBrV0tDYWNoZU1vZGVsRG9jdW1lbnRCcm93c2VyKTsKIAogICAgIFdLV2Vic2l0ZURhdGFT
dG9yZUNsZWFyQ2FjaGVkQ3JlZGVudGlhbHMod2Vic2l0ZURhdGFTdG9yZSgpKTsKLQogICAgIFdL
V2Vic2l0ZURhdGFTdG9yZVJlc2V0U2VydmljZVdvcmtlckZldGNoVGltZW91dEZvclRlc3Rpbmco
d2Vic2l0ZURhdGFTdG9yZSgpKTsKIAogICAgIFdLV2Vic2l0ZURhdGFTdG9yZVNldFJlc291cmNl
TG9hZFN0YXRpc3RpY3NFbmFibGVkKHdlYnNpdGVEYXRhU3RvcmUoKSwgdHJ1ZSk7CiAgICAgV0tX
ZWJzaXRlRGF0YVN0b3JlQ2xlYXJBbGxEZXZpY2VPcmllbnRhdGlvblBlcm1pc3Npb25zKHdlYnNp
dGVEYXRhU3RvcmUoKSk7CiAKKyAgICBXS0hUVFBDb29raWVTdG9yZURlbGV0ZUFsbENvb2tpZXMo
V0tXZWJzaXRlRGF0YVN0b3JlR2V0SFRUUENvb2tpZVN0b3JlKHdlYnNpdGVEYXRhU3RvcmUoKSks
IG51bGxwdHIsIG51bGxwdHIpOworCiAgICAgY2xlYXJJbmRleGVkRGF0YWJhc2VzKCk7CiAgICAg
Y2xlYXJMb2NhbFN0b3JhZ2UoKTsKIApAQCAtMTAzNSw3ICs5NzYsNiBAQCBib29sIFRlc3RDb250
cm9sbGVyOjpyZXNldFN0YXRlVG9Db25zaXN0CiAgICAgcmVzZXRRdW90YSgpOwogCiAgICAgV0tD
b250ZXh0Q2xlYXJDdXJyZW50TW9kaWZpZXJTdGF0ZUZvclRlc3RpbmcoVGVzdENvbnRyb2xsZXI6
OnNpbmdsZXRvbigpLmNvbnRleHQoKSk7Ci0KICAgICBXS0NvbnRleHRTZXRVc2VTZXBhcmF0ZVNl
cnZpY2VXb3JrZXJQcm9jZXNzKFRlc3RDb250cm9sbGVyOjpzaW5nbGV0b24oKS5jb250ZXh0KCks
IGZhbHNlKTsKIAogICAgIFdLUGFnZVNldE1vY2tDYW1lcmFPcmllbnRhdGlvbihtX21haW5XZWJW
aWV3LT5wYWdlKCksIDApOwpAQCAtMTA1MSwxMCArOTkxLDYgQEAgYm9vbCBUZXN0Q29udHJvbGxl
cjo6cmVzZXRTdGF0ZVRvQ29uc2lzdAogICAgIC8vIHNvbWUgb3RoZXIgY29kZSBkb2luZyB0aGlz
LCBpdCBzaG91bGQgcHJvYmFibHkgYmUgcmVzcG9uc2libGUgZm9yIGNsZWFudXAgdG9vLgogICAg
IHJlc2V0UHJlZmVyZW5jZXNUb0NvbnNpc3RlbnRWYWx1ZXMob3B0aW9ucyk7CiAKLSNpZiBQTEFU
Rk9STShHVEspCi0gICAgV0tUZXh0Q2hlY2tlckNvbnRpbnVvdXNTcGVsbENoZWNraW5nRW5hYmxl
ZFN0YXRlQ2hhbmdlZCh0cnVlKTsKLSNlbmRpZgotCiAgICAgLy8gTWFrZSBzdXJlIHRoZSB2aWV3
IGlzIGluIHRoZSB3aW5kb3cgKGEgdGVzdCBjYW4gdW5wYXJlbnQgaXQpLgogICAgIG1fbWFpbldl
YlZpZXctPmFkZFRvV2luZG93KCk7CiAKQEAgLTI4MzQsMTEgKzI3NzAsNiBAQCBXS0NvbnRleHRS
ZWYgVGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtQWRqCiAgICAgcmV0dXJuIGNvbnRleHQ7CiB9CiAK
LWJvb2wgVGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtUmVzZXRTdGF0ZVRvQ29uc2lzdGVudFZhbHVl
cyhjb25zdCBUZXN0T3B0aW9ucyYpCi17Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0KIHVuc2lnbmVk
IFRlc3RDb250cm9sbGVyOjppbWFnZUNvdW50SW5HZW5lcmFsUGFzdGVib2FyZCgpIGNvbnN0CiB7
CiAgICAgcmV0dXJuIDA7CkluZGV4OiBUb29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9s
bGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxl
ci5oCShyZXZpc2lvbiAyNjgzMzApCisrKyBUb29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250
cm9sbGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTM5NCw3ICszOTQsNiBAQCBwcml2YXRlOgogCiAg
ICAgdm9pZCBlbnN1cmVWaWV3U3VwcG9ydHNPcHRpb25zRm9yVGVzdChjb25zdCBUZXN0SW52b2Nh
dGlvbiYpOwogICAgIFRlc3RPcHRpb25zIHRlc3RPcHRpb25zRm9yVGVzdChjb25zdCBUZXN0Q29t
bWFuZCYpIGNvbnN0OwotICAgIFRlc3RGZWF0dXJlcyBnbG9iYWxGZWF0dXJlRGVmYXVsdHNGb3JU
ZXN0KGNvbnN0IFRlc3RDb21tYW5kJikgY29uc3Q7CiAgICAgVGVzdEZlYXR1cmVzIHBsYXRmb3Jt
U3BlY2lmaWNGZWF0dXJlRGVmYXVsdHNGb3JUZXN0KGNvbnN0IFRlc3RDb21tYW5kJikgY29uc3Q7
CiAgICAgVGVzdEZlYXR1cmVzIHBsYXRmb3JtU3BlY2lmaWNGZWF0dXJlT3ZlcnJpZGVzRGVmYXVs
dHNGb3JUZXN0KGNvbnN0IFRlc3RDb21tYW5kJikgY29uc3Q7CiAKQEAgLTU5Niw4ICs1OTUsNiBA
QCBwcml2YXRlOgogICAgIFN0cmluZyBtX3Vuc3VwcG9ydGVkUGx1Z2luTW9kZTsKIAogICAgIGJv
b2wgbV9mb3JjZUNvbXBsZXhUZXh0IHsgZmFsc2UgfTsKLSAgICBib29sIG1fc2hvdWxkVXNlQWNj
ZWxlcmF0ZWREcmF3aW5nIHsgZmFsc2UgfTsKLSAgICAKICAgICBib29sIG1fc2hvdWxkTG9nQ2Fu
QXV0aGVudGljYXRlQWdhaW5zdFByb3RlY3Rpb25TcGFjZSB7IGZhbHNlIH07CiAgICAgYm9vbCBt
X3Nob3VsZExvZ0Rvd25sb2FkQ2FsbGJhY2tzIHsgZmFsc2UgfTsKICAgICBib29sIG1fc2hvdWxk
TG9nSGlzdG9yeUNsaWVudENhbGxiYWNrcyB7IGZhbHNlIH07CkluZGV4OiBUb29scy9XZWJLaXRU
ZXN0UnVubmVyL1Rlc3RPcHRpb25zLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9XZWJLaXRUZXN0
UnVubmVyL1Rlc3RPcHRpb25zLmNwcAkocmV2aXNpb24gMjY4MzMwKQorKysgVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9UZXN0T3B0aW9ucy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwMSw1NCArMTAx
LDUxIEBAIHZvaWQgbWVyZ2UoVGVzdEZlYXR1cmVzJiBiYXNlLCBUZXN0RmVhdHUKIHN0YXRpYyBj
b25zdCBzdGQ6OnVub3JkZXJlZF9tYXA8c3RkOjpzdHJpbmcsIGJvb2w+JiBib29sRGVmYXVsdHNN
YXAoKQogewogICAgIHN0YXRpYyBzdGQ6OnVub3JkZXJlZF9tYXA8c3RkOjpzdHJpbmcsIGJvb2w+
IG1hcCB7Ci0gICAgICAgIHsgInVzZVRocmVhZGVkU2Nyb2xsaW5nIiwgZmFsc2UgfSwKLSAgICAg
ICAgeyAidXNlQWNjZWxlcmF0ZWREcmF3aW5nIiwgZmFsc2UgfSwKLSAgICAgICAgeyAidXNlUmVt
b3RlTGF5ZXJUcmVlIiwgZmFsc2UgfSwKLSAgICAgICAgeyAic2hvdWxkU2hvd1dlYlZpZXciLCBm
YWxzZSB9LAotICAgICAgICB7ICJ1c2VGbGV4aWJsZVZpZXdwb3J0IiwgZmFsc2UgfSwKLSAgICAg
ICAgeyAidXNlRGF0YURldGVjdGlvbiIsIGZhbHNlIH0sCi0gICAgICAgIHsgInVzZU1vY2tTY3Jv
bGxiYXJzIiwgdHJ1ZSB9LAotICAgICAgICB7ICJuZWVkc1NpdGVTcGVjaWZpY1F1aXJrcyIsIGZh
bHNlIH0sCi0gICAgICAgIHsgImlnbm9yZXNWaWV3cG9ydFNjYWxlTGltaXRzIiwgZmFsc2UgfSwK
LSAgICAgICAgeyAidXNlQ2hhcmFjdGVyU2VsZWN0aW9uR3JhbnVsYXJpdHkiLCBmYWxzZSB9LAot
ICAgICAgICB7ICJlbmFibGVBdHRhY2htZW50RWxlbWVudCIsIGZhbHNlIH0sCi0gICAgICAgIHsg
ImVuYWJsZUludGVyc2VjdGlvbk9ic2VydmVyIiwgZmFsc2UgfSwKLSAgICAgICAgeyAidXNlRXBo
ZW1lcmFsU2Vzc2lvbiIsIGZhbHNlIH0sCi0gICAgICAgIHsgImVuYWJsZU1lbnVJdGVtRWxlbWVu
dCIsIGZhbHNlIH0sCi0gICAgICAgIHsgImVuYWJsZUtleWdlbkVsZW1lbnQiLCBmYWxzZSB9LAot
ICAgICAgICB7ICJlbmFibGVNb2Rlcm5NZWRpYUNvbnRyb2xzIiwgdHJ1ZSB9LAotICAgICAgICB7
ICJlbmFibGVQb2ludGVyTG9jayIsIGZhbHNlIH0sCi0gICAgICAgIHsgImVuYWJsZVdlYkF1dGhl
bnRpY2F0aW9uIiwgdHJ1ZSB9LAotICAgICAgICB7ICJlbmFibGVXZWJBdXRoZW50aWNhdGlvbkxv
Y2FsQXV0aGVudGljYXRvciIsIHRydWUgfSwKLSAgICAgICAgeyAiZW5hYmxlSW5zcGVjdG9yQWRk
aXRpb25zIiwgZmFsc2UgfSwKLSAgICAgICAgeyAic2hvdWxkU2hvd1RvdWNoZXMiLCBmYWxzZSB9
LAotICAgICAgICB7ICJkdW1wSlNDb25zb2xlTG9nSW5TdGRFcnIiLCBmYWxzZSB9LAogICAgICAg
ICB7ICJhbGxvd0Nyb3NzT3JpZ2luU3VicmVzb3VyY2VzVG9Bc2tGb3JDcmVkZW50aWFscyIsIGZh
bHNlIH0sCisgICAgICAgIHsgImFsbG93VG9wTmF2aWdhdGlvblRvRGF0YVVSTHMiLCB0cnVlIH0s
CisgICAgICAgIHsgImFsbG93c0xpbmtQcmV2aWV3IiwgdHJ1ZSB9LAogICAgICAgICB7ICJkb21Q
YXN0ZUFsbG93ZWQiLCB0cnVlIH0sCi0gICAgICAgIHsgImVuYWJsZUNvbG9yRmlsdGVyIiwgZmFs
c2UgfSwKLSAgICAgICAgeyAicHVuY2hPdXRXaGl0ZUJhY2tncm91bmRzSW5EYXJrTW9kZSIsIGZh
bHNlIH0sCi0gICAgICAgIHsgInJ1blNpbmdseSIsIGZhbHNlIH0sCi0gICAgICAgIHsgImNoZWNr
Rm9yV29ybGRMZWFrcyIsIGZhbHNlIH0sCi0gICAgICAgIHsgInNob3VsZElnbm9yZU1ldGFWaWV3
cG9ydCIsIGZhbHNlIH0sCi0gICAgICAgIHsgInNwZWxsQ2hlY2tpbmdEb3RzIiwgZmFsc2UgfSwK
LSAgICAgICAgeyAiZW5hYmxlU2VydmljZUNvbnRyb2xzIiwgZmFsc2UgfSwKKyAgICAgICAgeyAi
ZHVtcEpTQ29uc29sZUxvZ0luU3RkRXJyIiwgZmFsc2UgfSwKICAgICAgICAgeyAiZWRpdGFibGUi
LCBmYWxzZSB9LAotICAgICAgICB7ICJzaG91bGRIYW5kbGVSdW5PcGVuUGFuZWwiLCB0cnVlIH0s
Ci0gICAgICAgIHsgInNob3VsZFByZXNlbnRQb3BvdmVycyIsIHRydWUgfSwKICAgICAgICAgeyAi
ZW5hYmxlQXBwTmFwIiwgZmFsc2UgfSwKKyAgICAgICAgeyAiZW5hYmxlQXR0YWNobWVudEVsZW1l
bnQiLCBmYWxzZSB9LAogICAgICAgICB7ICJlbmFibGVCYWNrRm9yd2FyZENhY2hlIiwgZmFsc2Ug
fSwKLSAgICAgICAgeyAiYWxsb3dzTGlua1ByZXZpZXciLCB0cnVlIH0sCi0gICAgICAgIHsgImVu
YWJsZUNhcHR1cmVWaWRlb0luVUlQcm9jZXNzIiwgZmFsc2UgfSwKLSAgICAgICAgeyAiZW5hYmxl
Q2FwdHVyZVZpZGVvSW5HUFVQcm9jZXNzIiwgZmFsc2UgfSwKLSAgICAgICAgeyAiZW5hYmxlQ2Fw
dHVyZUF1ZGlvSW5VSVByb2Nlc3MiLCBmYWxzZSB9LAogICAgICAgICB7ICJlbmFibGVDYXB0dXJl
QXVkaW9JbkdQVVByb2Nlc3MiLCBmYWxzZSB9LAotICAgICAgICB7ICJhbGxvd1RvcE5hdmlnYXRp
b25Ub0RhdGFVUkxzIiwgdHJ1ZSB9LAorICAgICAgICB7ICJlbmFibGVDYXB0dXJlQXVkaW9JblVJ
UHJvY2VzcyIsIGZhbHNlIH0sCisgICAgICAgIHsgImVuYWJsZUNhcHR1cmVWaWRlb0luR1BVUHJv
Y2VzcyIsIGZhbHNlIH0sCisgICAgICAgIHsgImVuYWJsZUNhcHR1cmVWaWRlb0luVUlQcm9jZXNz
IiwgZmFsc2UgfSwKKyAgICAgICAgeyAiZW5hYmxlQ29sb3JGaWx0ZXIiLCBmYWxzZSB9LAogICAg
ICAgICB7ICJlbmFibGVJbkFwcEJyb3dzZXJQcml2YWN5IiwgZmFsc2UgfSwKLSAgICAgICAgeyAi
aXNBcHBCb3VuZFdlYlZpZXciLCBmYWxzZSB9LAotICAgICAgICB7ICJpZ25vcmVTeW5jaHJvbm91
c01lc3NhZ2luZ1RpbWVvdXRzIiwgZmFsc2UgfSwKKyAgICAgICAgeyAiZW5hYmxlSW5zcGVjdG9y
QWRkaXRpb25zIiwgZmFsc2UgfSwKKyAgICAgICAgeyAiZW5hYmxlS2V5Z2VuRWxlbWVudCIsIGZh
bHNlIH0sCisgICAgICAgIHsgImVuYWJsZU1lbnVJdGVtRWxlbWVudCIsIGZhbHNlIH0sCisgICAg
ICAgIHsgImVuYWJsZU1vZGVybk1lZGlhQ29udHJvbHMiLCB0cnVlIH0sCiAgICAgICAgIHsgImVu
YWJsZVByb2Nlc3NTd2FwT25OYXZpZ2F0aW9uIiwgdHJ1ZSB9LAogICAgICAgICB7ICJlbmFibGVQ
cm9jZXNzU3dhcE9uV2luZG93T3BlbiIsIGZhbHNlIH0sCi0gICAgICAgIHsgInVzZVNlcnZpY2VX
b3JrZXJTaG9ydFRpbWVvdXQiLCBmYWxzZSB9CisgICAgICAgIHsgImVuYWJsZVNlcnZpY2VDb250
cm9scyIsIGZhbHNlIH0sCisgICAgICAgIHsgImVuYWJsZVdlYkF1dGhlbnRpY2F0aW9uIiwgdHJ1
ZSB9LAorICAgICAgICB7ICJlbmFibGVXZWJBdXRoZW50aWNhdGlvbkxvY2FsQXV0aGVudGljYXRv
ciIsIHRydWUgfSwKKyAgICAgICAgeyAiaWdub3JlU3luY2hyb25vdXNNZXNzYWdpbmdUaW1lb3V0
cyIsIGZhbHNlIH0sCisgICAgICAgIHsgImlnbm9yZXNWaWV3cG9ydFNjYWxlTGltaXRzIiwgZmFs
c2UgfSwKKyAgICAgICAgeyAiaXNBcHBCb3VuZFdlYlZpZXciLCBmYWxzZSB9LAorICAgICAgICB7
ICJuZWVkc1NpdGVTcGVjaWZpY1F1aXJrcyIsIGZhbHNlIH0sCisgICAgICAgIHsgInB1bmNoT3V0
V2hpdGVCYWNrZ3JvdW5kc0luRGFya01vZGUiLCBmYWxzZSB9LAorICAgICAgICB7ICJydW5TaW5n
bHkiLCBmYWxzZSB9LAorICAgICAgICB7ICJzaG91bGRIYW5kbGVSdW5PcGVuUGFuZWwiLCB0cnVl
IH0sCisgICAgICAgIHsgInNob3VsZElnbm9yZU1ldGFWaWV3cG9ydCIsIGZhbHNlIH0sCisgICAg
ICAgIHsgInNob3VsZFByZXNlbnRQb3BvdmVycyIsIHRydWUgfSwKKyAgICAgICAgeyAic2hvdWxk
U2hvd1RvdWNoZXMiLCBmYWxzZSB9LAorICAgICAgICB7ICJzaG91bGRTaG93V2ViVmlldyIsIGZh
bHNlIH0sCisgICAgICAgIHsgInNwZWxsQ2hlY2tpbmdEb3RzIiwgZmFsc2UgfSwKKyAgICAgICAg
eyAidXNlQWNjZWxlcmF0ZWREcmF3aW5nIiwgZmFsc2UgfSwKKyAgICAgICAgeyAidXNlQ2hhcmFj
dGVyU2VsZWN0aW9uR3JhbnVsYXJpdHkiLCBmYWxzZSB9LAorICAgICAgICB7ICJ1c2VEYXRhRGV0
ZWN0aW9uIiwgZmFsc2UgfSwKKyAgICAgICAgeyAidXNlRXBoZW1lcmFsU2Vzc2lvbiIsIGZhbHNl
IH0sCisgICAgICAgIHsgInVzZUZsZXhpYmxlVmlld3BvcnQiLCBmYWxzZSB9LAorICAgICAgICB7
ICJ1c2VNb2NrU2Nyb2xsYmFycyIsIHRydWUgfSwKKyAgICAgICAgeyAidXNlUmVtb3RlTGF5ZXJU
cmVlIiwgZmFsc2UgfSwKKyAgICAgICAgeyAidXNlU2VydmljZVdvcmtlclNob3J0VGltZW91dCIs
IGZhbHNlIH0sCisgICAgICAgIHsgInVzZVRocmVhZGVkU2Nyb2xsaW5nIiwgZmFsc2UgfSwKICAg
ICB9OwogICAgIHJldHVybiBtYXA7CiB9CkBAIC0xNTgsOCArMTU1LDggQEAgc3RhdGljIGNvbnN0
IHN0ZDo6dW5vcmRlcmVkX21hcDxzdGQ6OnN0cgogICAgIHN0YXRpYyBzdGQ6OnVub3JkZXJlZF9t
YXA8c3RkOjpzdHJpbmcsIGRvdWJsZT4gbWFwIHsKICAgICAgICAgeyAiY29udGVudEluc2V0LnRv
cCIsIDAgfSwKICAgICAgICAgeyAiZGV2aWNlU2NhbGVGYWN0b3IiLCAxIH0sCisgICAgICAgIHsg
InZpZXdIZWlnaHQiLCA2MDAgfSwKICAgICAgICAgeyAidmlld1dpZHRoIiwgODAwIH0sCi0gICAg
ICAgIHsgInZpZXdIZWlnaHQiLCA2MDAgfQogICAgIH07CiAgICAgcmV0dXJuIG1hcDsKIH0KQEAg
LTE2NywxMiArMTY0LDEyIEBAIHN0YXRpYyBjb25zdCBzdGQ6OnVub3JkZXJlZF9tYXA8c3RkOjpz
dHIKIHN0YXRpYyBjb25zdCBzdGQ6OnVub3JkZXJlZF9tYXA8c3RkOjpzdHJpbmcsIHN0ZDo6c3Ry
aW5nPiYgc3RyaW5nRGVmYXVsdHNNYXAoKQogewogICAgIHN0YXRpYyBzdGQ6OnVub3JkZXJlZF9t
YXA8c3RkOjpzdHJpbmcsIHN0ZDo6c3RyaW5nPiBtYXAgeworICAgICAgICB7ICJhZGRpdGlvbmFs
U3VwcG9ydGVkSW1hZ2VUeXBlcyIsIHsgfSB9LAorICAgICAgICB7ICJhcHBsaWNhdGlvbkJ1bmRs
ZUlkZW50aWZpZXIiLCB7IH0gfSwKICAgICAgICAgeyAiYXBwbGljYXRpb25NYW5pZmVzdCIsIHsg
fSB9LAorICAgICAgICB7ICJjb250ZW50TW9kZSIsIHsgfSB9LAogICAgICAgICB7ICJqc2NPcHRp
b25zIiwgeyB9IH0sCi0gICAgICAgIHsgImFkZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVzIiwg
eyB9IH0sCiAgICAgICAgIHsgInN0YW5kYWxvbmVXZWJBcHBsaWNhdGlvblVSTCIsIHsgfSB9LAot
ICAgICAgICB7ICJjb250ZW50TW9kZSIsIHsgfSB9LAotICAgICAgICB7ICJhcHBsaWNhdGlvbkJ1
bmRsZUlkZW50aWZpZXIiLCB7IH0gfQogICAgIH07CiAgICAgcmV0dXJuIG1hcDsKIH0KQEAgLTE4
MCw3ICsxNzcsNyBAQCBzdGF0aWMgY29uc3Qgc3RkOjp1bm9yZGVyZWRfbWFwPHN0ZDo6c3RyCiBz
dGF0aWMgY29uc3Qgc3RkOjp1bm9yZGVyZWRfbWFwPHN0ZDo6c3RyaW5nLCBzdGQ6OnZlY3Rvcjxz
dGQ6OnN0cmluZz4+JiBzdHJpbmdWZWN0b3JEZWZhdWx0c01hcCgpCiB7CiAgICAgc3RhdGljIHN0
ZDo6dW5vcmRlcmVkX21hcDxzdGQ6OnN0cmluZywgc3RkOjp2ZWN0b3I8c3RkOjpzdHJpbmc+PiBt
YXAgewotICAgICAgICB7ICJsYW5ndWFnZSIsIHsgfSB9CisgICAgICAgIHsgImxhbmd1YWdlIiwg
eyB9IH0sCiAgICAgfTsKICAgICByZXR1cm4gbWFwOwogfQpAQCAtMTk4LDY1ICsxOTUsNjIgQEAg
ZW51bSBjbGFzcyBLZXlUeXBlIDogdWludDhfdCB7CiBzdGF0aWMgY29uc3Qgc3RkOjp1bm9yZGVy
ZWRfbWFwPHN0ZDo6c3RyaW5nLCBLZXlUeXBlPiYga2V5VHlwZU1hcCgpCiB7CiAgICAgc3RhdGlj
IHN0ZDo6dW5vcmRlcmVkX21hcDxzdGQ6OnN0cmluZywgS2V5VHlwZT4gbWFwIHsKLSAgICAgICAg
eyAidXNlVGhyZWFkZWRTY3JvbGxpbmciLCBLZXlUeXBlOjpCb29sIH0sCi0gICAgICAgIHsgInVz
ZUFjY2VsZXJhdGVkRHJhd2luZyIsIEtleVR5cGU6OkJvb2wgfSwKLSAgICAgICAgeyAidXNlUmVt
b3RlTGF5ZXJUcmVlIiwgS2V5VHlwZTo6Qm9vbCB9LAotICAgICAgICB7ICJzaG91bGRTaG93V2Vi
VmlldyIsIEtleVR5cGU6OkJvb2wgfSwKLSAgICAgICAgeyAidXNlRmxleGlibGVWaWV3cG9ydCIs
IEtleVR5cGU6OkJvb2wgfSwKLSAgICAgICAgeyAidXNlRGF0YURldGVjdGlvbiIsIEtleVR5cGU6
OkJvb2wgfSwKLSAgICAgICAgeyAidXNlTW9ja1Njcm9sbGJhcnMiLCBLZXlUeXBlOjpCb29sIH0s
Ci0gICAgICAgIHsgIm5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzIiwgS2V5VHlwZTo6Qm9vbCB9LAot
ICAgICAgICB7ICJpZ25vcmVzVmlld3BvcnRTY2FsZUxpbWl0cyIsIEtleVR5cGU6OkJvb2wgfSwK
LSAgICAgICAgeyAidXNlQ2hhcmFjdGVyU2VsZWN0aW9uR3JhbnVsYXJpdHkiLCBLZXlUeXBlOjpC
b29sIH0sCi0gICAgICAgIHsgImVuYWJsZUF0dGFjaG1lbnRFbGVtZW50IiwgS2V5VHlwZTo6Qm9v
bCB9LAotICAgICAgICB7ICJlbmFibGVJbnRlcnNlY3Rpb25PYnNlcnZlciIsIEtleVR5cGU6OkJv
b2wgfSwKLSAgICAgICAgeyAidXNlRXBoZW1lcmFsU2Vzc2lvbiIsIEtleVR5cGU6OkJvb2wgfSwK
LSAgICAgICAgeyAiZW5hYmxlTWVudUl0ZW1FbGVtZW50IiwgS2V5VHlwZTo6Qm9vbCB9LAotICAg
ICAgICB7ICJlbmFibGVLZXlnZW5FbGVtZW50IiwgS2V5VHlwZTo6Qm9vbCB9LAotICAgICAgICB7
ICJlbmFibGVNb2Rlcm5NZWRpYUNvbnRyb2xzIiwgS2V5VHlwZTo6Qm9vbCB9LAotICAgICAgICB7
ICJlbmFibGVQb2ludGVyTG9jayIsIEtleVR5cGU6OkJvb2wgfSwKLSAgICAgICAgeyAiZW5hYmxl
V2ViQXV0aGVudGljYXRpb24iLCBLZXlUeXBlOjpCb29sIH0sCi0gICAgICAgIHsgImVuYWJsZVdl
YkF1dGhlbnRpY2F0aW9uTG9jYWxBdXRoZW50aWNhdG9yIiwgS2V5VHlwZTo6Qm9vbCB9LAotICAg
ICAgICB7ICJlbmFibGVJbnNwZWN0b3JBZGRpdGlvbnMiLCBLZXlUeXBlOjpCb29sIH0sCi0gICAg
ICAgIHsgInNob3VsZFNob3dUb3VjaGVzIiwgS2V5VHlwZTo6Qm9vbCB9LAotICAgICAgICB7ICJk
dW1wSlNDb25zb2xlTG9nSW5TdGRFcnIiLCBLZXlUeXBlOjpCb29sIH0sCiAgICAgICAgIHsgImFs
bG93Q3Jvc3NPcmlnaW5TdWJyZXNvdXJjZXNUb0Fza0ZvckNyZWRlbnRpYWxzIiwgS2V5VHlwZTo6
Qm9vbCB9LAorICAgICAgICB7ICJhbGxvd1RvcE5hdmlnYXRpb25Ub0RhdGFVUkxzIiwgS2V5VHlw
ZTo6Qm9vbCB9LAorICAgICAgICB7ICJhbGxvd3NMaW5rUHJldmlldyIsIEtleVR5cGU6OkJvb2wg
fSwKICAgICAgICAgeyAiZG9tUGFzdGVBbGxvd2VkIiwgS2V5VHlwZTo6Qm9vbCB9LAotICAgICAg
ICB7ICJlbmFibGVDb2xvckZpbHRlciIsIEtleVR5cGU6OkJvb2wgfSwKLSAgICAgICAgeyAicHVu
Y2hPdXRXaGl0ZUJhY2tncm91bmRzSW5EYXJrTW9kZSIsIEtleVR5cGU6OkJvb2wgfSwKLSAgICAg
ICAgeyAicnVuU2luZ2x5IiwgS2V5VHlwZTo6Qm9vbCB9LAotICAgICAgICB7ICJjaGVja0Zvcldv
cmxkTGVha3MiLCBLZXlUeXBlOjpCb29sIH0sCi0gICAgICAgIHsgInNob3VsZElnbm9yZU1ldGFW
aWV3cG9ydCIsIEtleVR5cGU6OkJvb2wgfSwKLSAgICAgICAgeyAic3BlbGxDaGVja2luZ0RvdHMi
LCBLZXlUeXBlOjpCb29sIH0sCi0gICAgICAgIHsgImVuYWJsZVNlcnZpY2VDb250cm9scyIsIEtl
eVR5cGU6OkJvb2wgfSwKKyAgICAgICAgeyAiZHVtcEpTQ29uc29sZUxvZ0luU3RkRXJyIiwgS2V5
VHlwZTo6Qm9vbCB9LAogICAgICAgICB7ICJlZGl0YWJsZSIsIEtleVR5cGU6OkJvb2wgfSwKLSAg
ICAgICAgeyAic2hvdWxkSGFuZGxlUnVuT3BlblBhbmVsIiwgS2V5VHlwZTo6Qm9vbCB9LAotICAg
ICAgICB7ICJzaG91bGRQcmVzZW50UG9wb3ZlcnMiLCBLZXlUeXBlOjpCb29sIH0sCiAgICAgICAg
IHsgImVuYWJsZUFwcE5hcCIsIEtleVR5cGU6OkJvb2wgfSwKKyAgICAgICAgeyAiZW5hYmxlQXR0
YWNobWVudEVsZW1lbnQiLCBLZXlUeXBlOjpCb29sIH0sCiAgICAgICAgIHsgImVuYWJsZUJhY2tG
b3J3YXJkQ2FjaGUiLCBLZXlUeXBlOjpCb29sIH0sCi0gICAgICAgIHsgImFsbG93c0xpbmtQcmV2
aWV3IiwgS2V5VHlwZTo6Qm9vbCB9LAotICAgICAgICB7ICJlbmFibGVDYXB0dXJlVmlkZW9JblVJ
UHJvY2VzcyIsIEtleVR5cGU6OkJvb2wgfSwKLSAgICAgICAgeyAiZW5hYmxlQ2FwdHVyZVZpZGVv
SW5HUFVQcm9jZXNzIiwgS2V5VHlwZTo6Qm9vbCB9LAotICAgICAgICB7ICJlbmFibGVDYXB0dXJl
QXVkaW9JblVJUHJvY2VzcyIsIEtleVR5cGU6OkJvb2wgfSwKICAgICAgICAgeyAiZW5hYmxlQ2Fw
dHVyZUF1ZGlvSW5HUFVQcm9jZXNzIiwgS2V5VHlwZTo6Qm9vbCB9LAotICAgICAgICB7ICJhbGxv
d1RvcE5hdmlnYXRpb25Ub0RhdGFVUkxzIiwgS2V5VHlwZTo6Qm9vbCB9LAorICAgICAgICB7ICJl
bmFibGVDYXB0dXJlQXVkaW9JblVJUHJvY2VzcyIsIEtleVR5cGU6OkJvb2wgfSwKKyAgICAgICAg
eyAiZW5hYmxlQ2FwdHVyZVZpZGVvSW5HUFVQcm9jZXNzIiwgS2V5VHlwZTo6Qm9vbCB9LAorICAg
ICAgICB7ICJlbmFibGVDYXB0dXJlVmlkZW9JblVJUHJvY2VzcyIsIEtleVR5cGU6OkJvb2wgfSwK
KyAgICAgICAgeyAiZW5hYmxlQ29sb3JGaWx0ZXIiLCBLZXlUeXBlOjpCb29sIH0sCiAgICAgICAg
IHsgImVuYWJsZUluQXBwQnJvd3NlclByaXZhY3kiLCBLZXlUeXBlOjpCb29sIH0sCi0gICAgICAg
IHsgImlzQXBwQm91bmRXZWJWaWV3IiwgS2V5VHlwZTo6Qm9vbCB9LAotICAgICAgICB7ICJpZ25v
cmVTeW5jaHJvbm91c01lc3NhZ2luZ1RpbWVvdXRzIiwgS2V5VHlwZTo6Qm9vbCB9LAorICAgICAg
ICB7ICJlbmFibGVJbnNwZWN0b3JBZGRpdGlvbnMiLCBLZXlUeXBlOjpCb29sIH0sCisgICAgICAg
IHsgImVuYWJsZUtleWdlbkVsZW1lbnQiLCBLZXlUeXBlOjpCb29sIH0sCisgICAgICAgIHsgImVu
YWJsZU1lbnVJdGVtRWxlbWVudCIsIEtleVR5cGU6OkJvb2wgfSwKKyAgICAgICAgeyAiZW5hYmxl
TW9kZXJuTWVkaWFDb250cm9scyIsIEtleVR5cGU6OkJvb2wgfSwKICAgICAgICAgeyAiZW5hYmxl
UHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24iLCBLZXlUeXBlOjpCb29sIH0sCiAgICAgICAgIHsgImVu
YWJsZVByb2Nlc3NTd2FwT25XaW5kb3dPcGVuIiwgS2V5VHlwZTo6Qm9vbCB9LAorICAgICAgICB7
ICJlbmFibGVTZXJ2aWNlQ29udHJvbHMiLCBLZXlUeXBlOjpCb29sIH0sCisgICAgICAgIHsgImVu
YWJsZVdlYkF1dGhlbnRpY2F0aW9uIiwgS2V5VHlwZTo6Qm9vbCB9LAorICAgICAgICB7ICJlbmFi
bGVXZWJBdXRoZW50aWNhdGlvbkxvY2FsQXV0aGVudGljYXRvciIsIEtleVR5cGU6OkJvb2wgfSwK
KyAgICAgICAgeyAiaWdub3JlU3luY2hyb25vdXNNZXNzYWdpbmdUaW1lb3V0cyIsIEtleVR5cGU6
OkJvb2wgfSwKKyAgICAgICAgeyAiaWdub3Jlc1ZpZXdwb3J0U2NhbGVMaW1pdHMiLCBLZXlUeXBl
OjpCb29sIH0sCisgICAgICAgIHsgImlzQXBwQm91bmRXZWJWaWV3IiwgS2V5VHlwZTo6Qm9vbCB9
LAorICAgICAgICB7ICJuZWVkc1NpdGVTcGVjaWZpY1F1aXJrcyIsIEtleVR5cGU6OkJvb2wgfSwK
KyAgICAgICAgeyAicHVuY2hPdXRXaGl0ZUJhY2tncm91bmRzSW5EYXJrTW9kZSIsIEtleVR5cGU6
OkJvb2wgfSwKKyAgICAgICAgeyAicnVuU2luZ2x5IiwgS2V5VHlwZTo6Qm9vbCB9LAorICAgICAg
ICB7ICJzaG91bGRIYW5kbGVSdW5PcGVuUGFuZWwiLCBLZXlUeXBlOjpCb29sIH0sCisgICAgICAg
IHsgInNob3VsZElnbm9yZU1ldGFWaWV3cG9ydCIsIEtleVR5cGU6OkJvb2wgfSwKKyAgICAgICAg
eyAic2hvdWxkUHJlc2VudFBvcG92ZXJzIiwgS2V5VHlwZTo6Qm9vbCB9LAorICAgICAgICB7ICJz
aG91bGRTaG93VG91Y2hlcyIsIEtleVR5cGU6OkJvb2wgfSwKKyAgICAgICAgeyAic2hvdWxkU2hv
d1dlYlZpZXciLCBLZXlUeXBlOjpCb29sIH0sCisgICAgICAgIHsgInNwZWxsQ2hlY2tpbmdEb3Rz
IiwgS2V5VHlwZTo6Qm9vbCB9LAorICAgICAgICB7ICJ1c2VBY2NlbGVyYXRlZERyYXdpbmciLCBL
ZXlUeXBlOjpCb29sIH0sCisgICAgICAgIHsgInVzZUNoYXJhY3RlclNlbGVjdGlvbkdyYW51bGFy
aXR5IiwgS2V5VHlwZTo6Qm9vbCB9LAorICAgICAgICB7ICJ1c2VEYXRhRGV0ZWN0aW9uIiwgS2V5
VHlwZTo6Qm9vbCB9LAorICAgICAgICB7ICJ1c2VFcGhlbWVyYWxTZXNzaW9uIiwgS2V5VHlwZTo6
Qm9vbCB9LAorICAgICAgICB7ICJ1c2VGbGV4aWJsZVZpZXdwb3J0IiwgS2V5VHlwZTo6Qm9vbCB9
LAorICAgICAgICB7ICJ1c2VNb2NrU2Nyb2xsYmFycyIsIEtleVR5cGU6OkJvb2wgfSwKKyAgICAg
ICAgeyAidXNlUmVtb3RlTGF5ZXJUcmVlIiwgS2V5VHlwZTo6Qm9vbCB9LAogICAgICAgICB7ICJ1
c2VTZXJ2aWNlV29ya2VyU2hvcnRUaW1lb3V0IiwgS2V5VHlwZTo6Qm9vbCB9LAorICAgICAgICB7
ICJ1c2VUaHJlYWRlZFNjcm9sbGluZyIsIEtleVR5cGU6OkJvb2wgfSwKICAgICAKICAgICAgICAg
eyAiY29udGVudEluc2V0LnRvcCIsIEtleVR5cGU6OkRvdWJsZSB9LAogICAgICAgICB7ICJkZXZp
Y2VTY2FsZUZhY3RvciIsIEtleVR5cGU6OkRvdWJsZSB9LAotICAgICAgICB7ICJ2aWV3V2lkdGgi
LCBLZXlUeXBlOjpEb3VibGUgfSwKICAgICAgICAgeyAidmlld0hlaWdodCIsIEtleVR5cGU6OkRv
dWJsZSB9LAorICAgICAgICB7ICJ2aWV3V2lkdGgiLCBLZXlUeXBlOjpEb3VibGUgfSwKIAotICAg
ICAgICB7ICJqc2NPcHRpb25zIiwgS2V5VHlwZTo6U3RyaW5nIH0sCiAgICAgICAgIHsgImFkZGl0
aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVzIiwgS2V5VHlwZTo6U3RyaW5nIH0sCi0gICAgICAgIHsg
ImNvbnRlbnRNb2RlIiwgS2V5VHlwZTo6U3RyaW5nIH0sCiAgICAgICAgIHsgImFwcGxpY2F0aW9u
QnVuZGxlSWRlbnRpZmllciIsIEtleVR5cGU6OlN0cmluZyB9LAogICAgICAgICB7ICJhcHBsaWNh
dGlvbk1hbmlmZXN0IiwgS2V5VHlwZTo6U3RyaW5nUmVsYXRpdmVQYXRoIH0sCisgICAgICAgIHsg
ImNvbnRlbnRNb2RlIiwgS2V5VHlwZTo6U3RyaW5nIH0sCisgICAgICAgIHsgImpzY09wdGlvbnMi
LCBLZXlUeXBlOjpTdHJpbmcgfSwKICAgICAgICAgeyAic3RhbmRhbG9uZVdlYkFwcGxpY2F0aW9u
VVJMIiwgS2V5VHlwZTo6U3RyaW5nVVJMIH0sCiAKICAgICAgICAgeyAibGFuZ3VhZ2UiLCBLZXlU
eXBlOjpTdHJpbmdWZWN0b3IgfSwKQEAgLTQ4Niw2ICs0ODAsNDQgQEAgYm9vbCBUZXN0T3B0aW9u
czo6aGFzU2FtZUluaXRpYWxpemF0aW9uTwogICAgIHJldHVybiB0cnVlOwogfQogCisjZGVmaW5l
IEZPUl9FQUNIX0JPT0xfV0tfUFJFRkVSRU5DRShtYWNybykgXAorICAgIG1hY3JvKGVuYWJsZUNh
cHR1cmVWaWRlb0luVUlQcm9jZXNzLCBDYXB0dXJlVmlkZW9JblVJUHJvY2Vzc0VuYWJsZWQpIFwK
KyAgICBtYWNybyhlbmFibGVDYXB0dXJlVmlkZW9JbkdQVVByb2Nlc3MsIENhcHR1cmVWaWRlb0lu
R1BVUHJvY2Vzc0VuYWJsZWQpIFwKKyAgICBtYWNybyhlbmFibGVDYXB0dXJlQXVkaW9JblVJUHJv
Y2VzcywgQ2FwdHVyZUF1ZGlvSW5VSVByb2Nlc3NFbmFibGVkKSBcCisgICAgbWFjcm8oZW5hYmxl
Q2FwdHVyZUF1ZGlvSW5HUFVQcm9jZXNzLCBDYXB0dXJlQXVkaW9JbkdQVVByb2Nlc3NFbmFibGVk
KSBcCisgICAgbWFjcm8odXNlQWNjZWxlcmF0ZWREcmF3aW5nLCBBY2NlbGVyYXRlZERyYXdpbmdF
bmFibGVkKSBcCisgICAgbWFjcm8odXNlTW9ja1Njcm9sbGJhcnMsIE1vY2tTY3JvbGxiYXJzRW5h
YmxlZCkgXAorICAgIG1hY3JvKG5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzLCBOZWVkc1NpdGVTcGVj
aWZpY1F1aXJrcykgXAorICAgIG1hY3JvKGVuYWJsZUF0dGFjaG1lbnRFbGVtZW50LCBBdHRhY2ht
ZW50RWxlbWVudEVuYWJsZWQpIFwKKyAgICBtYWNybyhlbmFibGVNZW51SXRlbUVsZW1lbnQsIE1l
bnVJdGVtRWxlbWVudEVuYWJsZWQpIFwKKyAgICBtYWNybyhlbmFibGVLZXlnZW5FbGVtZW50LCBL
ZXlnZW5FbGVtZW50RW5hYmxlZCkgXAorICAgIG1hY3JvKGVuYWJsZU1vZGVybk1lZGlhQ29udHJv
bHMsIE1vZGVybk1lZGlhQ29udHJvbHNFbmFibGVkKSBcCisgICAgbWFjcm8oZW5hYmxlV2ViQXV0
aGVudGljYXRpb24sIFdlYkF1dGhlbnRpY2F0aW9uRW5hYmxlZCkgXAorICAgIG1hY3JvKGVuYWJs
ZVdlYkF1dGhlbnRpY2F0aW9uTG9jYWxBdXRoZW50aWNhdG9yLCBXZWJBdXRoZW50aWNhdGlvbkxv
Y2FsQXV0aGVudGljYXRvckVuYWJsZWQpIFwKKyAgICBtYWNybyhlbmFibGVJbnNwZWN0b3JBZGRp
dGlvbnMsIEluc3BlY3RvckFkZGl0aW9uc0VuYWJsZWQpIFwKKyAgICBtYWNybyhhbGxvd0Nyb3Nz
T3JpZ2luU3VicmVzb3VyY2VzVG9Bc2tGb3JDcmVkZW50aWFscywgQWxsb3dDcm9zc09yaWdpblN1
YnJlc291cmNlc1RvQXNrRm9yQ3JlZGVudGlhbHMpIFwKKyAgICBtYWNybyhkb21QYXN0ZUFsbG93
ZWQsIERPTVBhc3RlQWxsb3dlZCkgXAorICAgIG1hY3JvKGVuYWJsZUNvbG9yRmlsdGVyLCBDb2xv
ckZpbHRlckVuYWJsZWQpIFwKKyAgICBtYWNybyhwdW5jaE91dFdoaXRlQmFja2dyb3VuZHNJbkRh
cmtNb2RlLCBQdW5jaE91dFdoaXRlQmFja2dyb3VuZHNJbkRhcmtNb2RlKSBcCisgICAgbWFjcm8o
c2hvdWxkSWdub3JlTWV0YVZpZXdwb3J0LCBTaG91bGRJZ25vcmVNZXRhVmlld3BvcnQpIFwKKyAg
ICBtYWNybyhlbmFibGVBcHBOYXAsIFBhZ2VWaXNpYmlsaXR5QmFzZWRQcm9jZXNzU3VwcHJlc3Np
b25FbmFibGVkKSBcCisgICAgbWFjcm8oZW5hYmxlQmFja0ZvcndhcmRDYWNoZSwgVXNlc0JhY2tG
b3J3YXJkQ2FjaGUpIFwKKyAgICBtYWNybyhlbmFibGVTZXJ2aWNlQ29udHJvbHMsIFNlcnZpY2VD
b250cm9sc0VuYWJsZWQpIFwKKyAgICBtYWNybyhhbGxvd1RvcE5hdmlnYXRpb25Ub0RhdGFVUkxz
LCBBbGxvd1RvcE5hdmlnYXRpb25Ub0RhdGFVUkxzKSBcCisgICAgbWFjcm8odXNlU2VydmljZVdv
cmtlclNob3J0VGltZW91dCwgU2hvdWxkVXNlU2VydmljZVdvcmtlclNob3J0VGltZW91dCkgXAor
XAorCitzdGQ6OnZlY3RvcjxzdGQ6OnBhaXI8c3RkOjpzdHJpbmcsIGJvb2w+PiBUZXN0T3B0aW9u
czo6Ym9vbFdLUHJlZmVyZW5jZXMoKSBjb25zdAoreworICAgIHJldHVybiB7CisjZGVmaW5lIEFE
RF9WQUxVRSh0ZXN0T3B0aW9uc0tleSwgcHJlZmVyZW5jZXNLZXkpIHsgI3ByZWZlcmVuY2VzS2V5
LCBib29sRmVhdHVyZVZhbHVlKCN0ZXN0T3B0aW9uc0tleSkgfSwKKworRk9SX0VBQ0hfQk9PTF9X
S19QUkVGRVJFTkNFKEFERF9WQUxVRSkKKworI3VuZGVmIEFERF9WQUxVRQorICAgIH07Cit9CisK
IHRlbXBsYXRlPHR5cGVuYW1lIFQ+CiBUIGZlYXR1cmVWYWx1ZShzdGQ6OnN0cmluZyBrZXksIGNv
bnN0IHN0ZDo6dW5vcmRlcmVkX21hcDxzdGQ6OnN0cmluZywgVD4mIG1hcCwgY29uc3Qgc3RkOjp1
bm9yZGVyZWRfbWFwPHN0ZDo6c3RyaW5nLCBUPiYgZGVmYXVsdHNNYXApCiB7CkluZGV4OiBUb29s
cy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RPcHRpb25zLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9UZXN0T3B0aW9ucy5oCShyZXZpc2lvbiAyNjgzMzApCisrKyBUb29scy9X
ZWJLaXRUZXN0UnVubmVyL1Rlc3RPcHRpb25zLmgJKHdvcmtpbmcgY29weSkKQEAgLTg3LDY5ICs4
Nyw0OCBAQCBwdWJsaWM6CiAgICAgICAgIH07CiAgICAgfQogCi0gICAgYm9vbCB1c2VUaHJlYWRl
ZFNjcm9sbGluZygpIGNvbnN0IHsgcmV0dXJuIGJvb2xGZWF0dXJlVmFsdWUoInVzZVRocmVhZGVk
U2Nyb2xsaW5nIik7IH0KLSAgICBib29sIHVzZUFjY2VsZXJhdGVkRHJhd2luZygpIGNvbnN0IHsg
cmV0dXJuIGJvb2xGZWF0dXJlVmFsdWUoInVzZUFjY2VsZXJhdGVkRHJhd2luZyIpOyB9Ci0gICAg
Ym9vbCB1c2VSZW1vdGVMYXllclRyZWUoKSBjb25zdCB7IHJldHVybiBib29sRmVhdHVyZVZhbHVl
KCJ1c2VSZW1vdGVMYXllclRyZWUiKTsgfQotICAgIGJvb2wgc2hvdWxkU2hvd1dlYlZpZXcoKSBj
b25zdCB7IHJldHVybiBib29sRmVhdHVyZVZhbHVlKCJzaG91bGRTaG93V2ViVmlldyIpOyB9Ci0g
ICAgYm9vbCB1c2VGbGV4aWJsZVZpZXdwb3J0KCkgY29uc3QgeyByZXR1cm4gYm9vbEZlYXR1cmVW
YWx1ZSgidXNlRmxleGlibGVWaWV3cG9ydCIpOyB9Ci0gICAgYm9vbCB1c2VEYXRhRGV0ZWN0aW9u
KCkgY29uc3QgeyByZXR1cm4gYm9vbEZlYXR1cmVWYWx1ZSgidXNlRGF0YURldGVjdGlvbiIpOyB9
Ci0gICAgYm9vbCB1c2VNb2NrU2Nyb2xsYmFycygpIGNvbnN0IHsgcmV0dXJuIGJvb2xGZWF0dXJl
VmFsdWUoInVzZU1vY2tTY3JvbGxiYXJzIik7IH0KLSAgICBib29sIG5lZWRzU2l0ZVNwZWNpZmlj
UXVpcmtzKCkgY29uc3QgeyByZXR1cm4gYm9vbEZlYXR1cmVWYWx1ZSgibmVlZHNTaXRlU3BlY2lm
aWNRdWlya3MiKTsgfQotICAgIGJvb2wgaWdub3Jlc1ZpZXdwb3J0U2NhbGVMaW1pdHMoKSBjb25z
dCB7IHJldHVybiBib29sRmVhdHVyZVZhbHVlKCJpZ25vcmVzVmlld3BvcnRTY2FsZUxpbWl0cyIp
OyB9Ci0gICAgYm9vbCB1c2VDaGFyYWN0ZXJTZWxlY3Rpb25HcmFudWxhcml0eSgpIGNvbnN0IHsg
cmV0dXJuIGJvb2xGZWF0dXJlVmFsdWUoInVzZUNoYXJhY3RlclNlbGVjdGlvbkdyYW51bGFyaXR5
Iik7IH0KLSAgICBib29sIGVuYWJsZUF0dGFjaG1lbnRFbGVtZW50KCkgY29uc3QgeyByZXR1cm4g
Ym9vbEZlYXR1cmVWYWx1ZSgiZW5hYmxlQXR0YWNobWVudEVsZW1lbnQiKTsgfQotICAgIGJvb2wg
ZW5hYmxlSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoKSBjb25zdCB7IHJldHVybiBib29sRmVhdHVyZVZh
bHVlKCJlbmFibGVJbnRlcnNlY3Rpb25PYnNlcnZlciIpOyB9Ci0gICAgYm9vbCB1c2VFcGhlbWVy
YWxTZXNzaW9uKCkgY29uc3QgeyByZXR1cm4gYm9vbEZlYXR1cmVWYWx1ZSgidXNlRXBoZW1lcmFs
U2Vzc2lvbiIpOyB9Ci0gICAgYm9vbCBlbmFibGVNZW51SXRlbUVsZW1lbnQoKSBjb25zdCB7IHJl
dHVybiBib29sRmVhdHVyZVZhbHVlKCJlbmFibGVNZW51SXRlbUVsZW1lbnQiKTsgfQotICAgIGJv
b2wgZW5hYmxlS2V5Z2VuRWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIGJvb2xGZWF0dXJlVmFsdWUo
ImVuYWJsZUtleWdlbkVsZW1lbnQiKTsgfQotICAgIGJvb2wgZW5hYmxlTW9kZXJuTWVkaWFDb250
cm9scygpIGNvbnN0IHsgcmV0dXJuIGJvb2xGZWF0dXJlVmFsdWUoImVuYWJsZU1vZGVybk1lZGlh
Q29udHJvbHMiKTsgfQotICAgIGJvb2wgZW5hYmxlUG9pbnRlckxvY2soKSBjb25zdCB7IHJldHVy
biBib29sRmVhdHVyZVZhbHVlKCJlbmFibGVQb2ludGVyTG9jayIpOyB9Ci0gICAgYm9vbCBlbmFi
bGVXZWJBdXRoZW50aWNhdGlvbigpIGNvbnN0IHsgcmV0dXJuIGJvb2xGZWF0dXJlVmFsdWUoImVu
YWJsZVdlYkF1dGhlbnRpY2F0aW9uIik7IH0KLSAgICBib29sIGVuYWJsZVdlYkF1dGhlbnRpY2F0
aW9uTG9jYWxBdXRoZW50aWNhdG9yKCkgY29uc3QgeyByZXR1cm4gYm9vbEZlYXR1cmVWYWx1ZSgi
ZW5hYmxlV2ViQXV0aGVudGljYXRpb25Mb2NhbEF1dGhlbnRpY2F0b3IiKTsgfQotICAgIGJvb2wg
ZW5hYmxlSW5zcGVjdG9yQWRkaXRpb25zKCkgY29uc3QgeyByZXR1cm4gYm9vbEZlYXR1cmVWYWx1
ZSgiZW5hYmxlSW5zcGVjdG9yQWRkaXRpb25zIik7IH0KLSAgICBib29sIHNob3VsZFNob3dUb3Vj
aGVzKCkgY29uc3QgeyByZXR1cm4gYm9vbEZlYXR1cmVWYWx1ZSgic2hvdWxkU2hvd1RvdWNoZXMi
KTsgfQorICAgIGJvb2wgYWxsb3dUb3BOYXZpZ2F0aW9uVG9EYXRhVVJMcygpIGNvbnN0IHsgcmV0
dXJuIGJvb2xGZWF0dXJlVmFsdWUoImFsbG93VG9wTmF2aWdhdGlvblRvRGF0YVVSTHMiKTsgfQor
ICAgIGJvb2wgYWxsb3dzTGlua1ByZXZpZXcoKSBjb25zdCB7IHJldHVybiBib29sRmVhdHVyZVZh
bHVlKCJhbGxvd3NMaW5rUHJldmlldyIpOyB9CiAgICAgYm9vbCBkdW1wSlNDb25zb2xlTG9nSW5T
dGRFcnIoKSBjb25zdCB7IHJldHVybiBib29sRmVhdHVyZVZhbHVlKCJkdW1wSlNDb25zb2xlTG9n
SW5TdGRFcnIiKTsgfQotICAgIGJvb2wgYWxsb3dDcm9zc09yaWdpblN1YnJlc291cmNlc1RvQXNr
Rm9yQ3JlZGVudGlhbHMoKSBjb25zdCB7IHJldHVybiBib29sRmVhdHVyZVZhbHVlKCJhbGxvd0Ny
b3NzT3JpZ2luU3VicmVzb3VyY2VzVG9Bc2tGb3JDcmVkZW50aWFscyIpOyB9Ci0gICAgYm9vbCBk
b21QYXN0ZUFsbG93ZWQoKSBjb25zdCB7IHJldHVybiBib29sRmVhdHVyZVZhbHVlKCJkb21QYXN0
ZUFsbG93ZWQiKTsgfQotICAgIGJvb2wgZW5hYmxlQ29sb3JGaWx0ZXIoKSBjb25zdCB7IHJldHVy
biBib29sRmVhdHVyZVZhbHVlKCJlbmFibGVDb2xvckZpbHRlciIpOyB9Ci0gICAgYm9vbCBwdW5j
aE91dFdoaXRlQmFja2dyb3VuZHNJbkRhcmtNb2RlKCkgY29uc3QgeyByZXR1cm4gYm9vbEZlYXR1
cmVWYWx1ZSgicHVuY2hPdXRXaGl0ZUJhY2tncm91bmRzSW5EYXJrTW9kZSIpOyB9Ci0gICAgYm9v
bCBydW5TaW5nbHkoKSBjb25zdCB7IHJldHVybiBib29sRmVhdHVyZVZhbHVlKCJydW5TaW5nbHki
KTsgfQotICAgIGJvb2wgY2hlY2tGb3JXb3JsZExlYWtzKCkgY29uc3QgeyByZXR1cm4gYm9vbEZl
YXR1cmVWYWx1ZSgiY2hlY2tGb3JXb3JsZExlYWtzIik7IH0KLSAgICBib29sIHNob3VsZElnbm9y
ZU1ldGFWaWV3cG9ydCgpIGNvbnN0IHsgcmV0dXJuIGJvb2xGZWF0dXJlVmFsdWUoInNob3VsZEln
bm9yZU1ldGFWaWV3cG9ydCIpOyB9Ci0gICAgYm9vbCBzaG91bGRTaG93U3BlbGxDaGVja2luZ0Rv
dHMoKSBjb25zdCB7IHJldHVybiBib29sRmVhdHVyZVZhbHVlKCJzcGVsbENoZWNraW5nRG90cyIp
OyB9Ci0gICAgYm9vbCBlbmFibGVTZXJ2aWNlQ29udHJvbHMoKSBjb25zdCB7IHJldHVybiBib29s
RmVhdHVyZVZhbHVlKCJlbmFibGVTZXJ2aWNlQ29udHJvbHMiKTsgfQogICAgIGJvb2wgZWRpdGFi
bGUoKSBjb25zdCB7IHJldHVybiBib29sRmVhdHVyZVZhbHVlKCJlZGl0YWJsZSIpOyB9Ci0gICAg
Ym9vbCBzaG91bGRIYW5kbGVSdW5PcGVuUGFuZWwoKSBjb25zdCB7IHJldHVybiBib29sRmVhdHVy
ZVZhbHVlKCJzaG91bGRIYW5kbGVSdW5PcGVuUGFuZWwiKTsgfQotICAgIGJvb2wgc2hvdWxkUHJl
c2VudFBvcG92ZXJzKCkgY29uc3QgeyByZXR1cm4gYm9vbEZlYXR1cmVWYWx1ZSgic2hvdWxkUHJl
c2VudFBvcG92ZXJzIik7IH0KLSAgICBib29sIGVuYWJsZUFwcE5hcCgpIGNvbnN0IHsgcmV0dXJu
IGJvb2xGZWF0dXJlVmFsdWUoImVuYWJsZUFwcE5hcCIpOyB9Ci0gICAgYm9vbCBlbmFibGVCYWNr
Rm9yd2FyZENhY2hlKCkgY29uc3QgeyByZXR1cm4gYm9vbEZlYXR1cmVWYWx1ZSgiZW5hYmxlQmFj
a0ZvcndhcmRDYWNoZSIpOyB9Ci0gICAgYm9vbCBhbGxvd3NMaW5rUHJldmlldygpIGNvbnN0IHsg
cmV0dXJuIGJvb2xGZWF0dXJlVmFsdWUoImFsbG93c0xpbmtQcmV2aWV3Iik7IH0KLSAgICBib29s
IGVuYWJsZUNhcHR1cmVWaWRlb0luVUlQcm9jZXNzKCkgY29uc3QgeyByZXR1cm4gYm9vbEZlYXR1
cmVWYWx1ZSgiZW5hYmxlQ2FwdHVyZVZpZGVvSW5VSVByb2Nlc3MiKTsgfQotICAgIGJvb2wgZW5h
YmxlQ2FwdHVyZVZpZGVvSW5HUFVQcm9jZXNzKCkgY29uc3QgeyByZXR1cm4gYm9vbEZlYXR1cmVW
YWx1ZSgiZW5hYmxlQ2FwdHVyZVZpZGVvSW5HUFVQcm9jZXNzIik7IH0KLSAgICBib29sIGVuYWJs
ZUNhcHR1cmVBdWRpb0luVUlQcm9jZXNzKCkgY29uc3QgeyByZXR1cm4gYm9vbEZlYXR1cmVWYWx1
ZSgiZW5hYmxlQ2FwdHVyZUF1ZGlvSW5VSVByb2Nlc3MiKTsgfQotICAgIGJvb2wgZW5hYmxlQ2Fw
dHVyZUF1ZGlvSW5HUFVQcm9jZXNzKCkgY29uc3QgeyByZXR1cm4gYm9vbEZlYXR1cmVWYWx1ZSgi
ZW5hYmxlQ2FwdHVyZUF1ZGlvSW5HUFVQcm9jZXNzIik7IH0KLSAgICBib29sIGFsbG93VG9wTmF2
aWdhdGlvblRvRGF0YVVSTHMoKSBjb25zdCB7IHJldHVybiBib29sRmVhdHVyZVZhbHVlKCJhbGxv
d1RvcE5hdmlnYXRpb25Ub0RhdGFVUkxzIik7IH0KKyAgICBib29sIGVuYWJsZUF0dGFjaG1lbnRF
bGVtZW50KCkgY29uc3QgeyByZXR1cm4gYm9vbEZlYXR1cmVWYWx1ZSgiZW5hYmxlQXR0YWNobWVu
dEVsZW1lbnQiKTsgfQogICAgIGJvb2wgZW5hYmxlSW5BcHBCcm93c2VyUHJpdmFjeSgpIGNvbnN0
IHsgcmV0dXJuIGJvb2xGZWF0dXJlVmFsdWUoImVuYWJsZUluQXBwQnJvd3NlclByaXZhY3kiKTsg
fQotICAgIGJvb2wgaXNBcHBCb3VuZFdlYlZpZXcoKSBjb25zdCB7IHJldHVybiBib29sRmVhdHVy
ZVZhbHVlKCJpc0FwcEJvdW5kV2ViVmlldyIpOyB9Ci0gICAgYm9vbCBpZ25vcmVTeW5jaHJvbm91
c01lc3NhZ2luZ1RpbWVvdXRzKCkgY29uc3QgeyByZXR1cm4gYm9vbEZlYXR1cmVWYWx1ZSgiaWdu
b3JlU3luY2hyb25vdXNNZXNzYWdpbmdUaW1lb3V0cyIpOyB9CiAgICAgYm9vbCBlbmFibGVQcm9j
ZXNzU3dhcE9uTmF2aWdhdGlvbigpIGNvbnN0IHsgcmV0dXJuIGJvb2xGZWF0dXJlVmFsdWUoImVu
YWJsZVByb2Nlc3NTd2FwT25OYXZpZ2F0aW9uIik7IH0KICAgICBib29sIGVuYWJsZVByb2Nlc3NT
d2FwT25XaW5kb3dPcGVuKCkgY29uc3QgeyByZXR1cm4gYm9vbEZlYXR1cmVWYWx1ZSgiZW5hYmxl
UHJvY2Vzc1N3YXBPbldpbmRvd09wZW4iKTsgfQorICAgIGJvb2wgaWdub3JlU3luY2hyb25vdXNN
ZXNzYWdpbmdUaW1lb3V0cygpIGNvbnN0IHsgcmV0dXJuIGJvb2xGZWF0dXJlVmFsdWUoImlnbm9y
ZVN5bmNocm9ub3VzTWVzc2FnaW5nVGltZW91dHMiKTsgfQorICAgIGJvb2wgaWdub3Jlc1ZpZXdw
b3J0U2NhbGVMaW1pdHMoKSBjb25zdCB7IHJldHVybiBib29sRmVhdHVyZVZhbHVlKCJpZ25vcmVz
Vmlld3BvcnRTY2FsZUxpbWl0cyIpOyB9CisgICAgYm9vbCBpc0FwcEJvdW5kV2ViVmlldygpIGNv
bnN0IHsgcmV0dXJuIGJvb2xGZWF0dXJlVmFsdWUoImlzQXBwQm91bmRXZWJWaWV3Iik7IH0KKyAg
ICBib29sIHB1bmNoT3V0V2hpdGVCYWNrZ3JvdW5kc0luRGFya01vZGUoKSBjb25zdCB7IHJldHVy
biBib29sRmVhdHVyZVZhbHVlKCJwdW5jaE91dFdoaXRlQmFja2dyb3VuZHNJbkRhcmtNb2RlIik7
IH0KKyAgICBib29sIHJ1blNpbmdseSgpIGNvbnN0IHsgcmV0dXJuIGJvb2xGZWF0dXJlVmFsdWUo
InJ1blNpbmdseSIpOyB9CisgICAgYm9vbCBzaG91bGRIYW5kbGVSdW5PcGVuUGFuZWwoKSBjb25z
dCB7IHJldHVybiBib29sRmVhdHVyZVZhbHVlKCJzaG91bGRIYW5kbGVSdW5PcGVuUGFuZWwiKTsg
fQorICAgIGJvb2wgc2hvdWxkUHJlc2VudFBvcG92ZXJzKCkgY29uc3QgeyByZXR1cm4gYm9vbEZl
YXR1cmVWYWx1ZSgic2hvdWxkUHJlc2VudFBvcG92ZXJzIik7IH0KKyAgICBib29sIHNob3VsZFNo
b3dTcGVsbENoZWNraW5nRG90cygpIGNvbnN0IHsgcmV0dXJuIGJvb2xGZWF0dXJlVmFsdWUoInNw
ZWxsQ2hlY2tpbmdEb3RzIik7IH0KKyAgICBib29sIHNob3VsZFNob3dUb3VjaGVzKCkgY29uc3Qg
eyByZXR1cm4gYm9vbEZlYXR1cmVWYWx1ZSgic2hvdWxkU2hvd1RvdWNoZXMiKTsgfQorICAgIGJv
b2wgc2hvdWxkU2hvd1dlYlZpZXcoKSBjb25zdCB7IHJldHVybiBib29sRmVhdHVyZVZhbHVlKCJz
aG91bGRTaG93V2ViVmlldyIpOyB9CisgICAgYm9vbCB1c2VDaGFyYWN0ZXJTZWxlY3Rpb25HcmFu
dWxhcml0eSgpIGNvbnN0IHsgcmV0dXJuIGJvb2xGZWF0dXJlVmFsdWUoInVzZUNoYXJhY3RlclNl
bGVjdGlvbkdyYW51bGFyaXR5Iik7IH0KKyAgICBib29sIHVzZURhdGFEZXRlY3Rpb24oKSBjb25z
dCB7IHJldHVybiBib29sRmVhdHVyZVZhbHVlKCJ1c2VEYXRhRGV0ZWN0aW9uIik7IH0KKyAgICBi
b29sIHVzZUVwaGVtZXJhbFNlc3Npb24oKSBjb25zdCB7IHJldHVybiBib29sRmVhdHVyZVZhbHVl
KCJ1c2VFcGhlbWVyYWxTZXNzaW9uIik7IH0KKyAgICBib29sIHVzZUZsZXhpYmxlVmlld3BvcnQo
KSBjb25zdCB7IHJldHVybiBib29sRmVhdHVyZVZhbHVlKCJ1c2VGbGV4aWJsZVZpZXdwb3J0Iik7
IH0KKyAgICBib29sIHVzZVJlbW90ZUxheWVyVHJlZSgpIGNvbnN0IHsgcmV0dXJuIGJvb2xGZWF0
dXJlVmFsdWUoInVzZVJlbW90ZUxheWVyVHJlZSIpOyB9CiAgICAgYm9vbCB1c2VTZXJ2aWNlV29y
a2VyU2hvcnRUaW1lb3V0KCkgY29uc3QgeyByZXR1cm4gYm9vbEZlYXR1cmVWYWx1ZSgidXNlU2Vy
dmljZVdvcmtlclNob3J0VGltZW91dCIpOyB9CisgICAgYm9vbCB1c2VUaHJlYWRlZFNjcm9sbGlu
ZygpIGNvbnN0IHsgcmV0dXJuIGJvb2xGZWF0dXJlVmFsdWUoInVzZVRocmVhZGVkU2Nyb2xsaW5n
Iik7IH0KICAgICBkb3VibGUgY29udGVudEluc2V0VG9wKCkgY29uc3QgeyByZXR1cm4gZG91Ymxl
RmVhdHVyZVZhbHVlKCJjb250ZW50SW5zZXQudG9wIik7IH0KICAgICBkb3VibGUgZGV2aWNlU2Nh
bGVGYWN0b3IoKSBjb25zdCB7IHJldHVybiBkb3VibGVGZWF0dXJlVmFsdWUoImRldmljZVNjYWxl
RmFjdG9yIik7IH0KLSAgICBkb3VibGUgdmlld1dpZHRoKCkgY29uc3QgeyByZXR1cm4gZG91Ymxl
RmVhdHVyZVZhbHVlKCJ2aWV3V2lkdGgiKTsgfQogICAgIGRvdWJsZSB2aWV3SGVpZ2h0KCkgY29u
c3QgeyByZXR1cm4gZG91YmxlRmVhdHVyZVZhbHVlKCJ2aWV3SGVpZ2h0Iik7IH0KKyAgICBkb3Vi
bGUgdmlld1dpZHRoKCkgY29uc3QgeyByZXR1cm4gZG91YmxlRmVhdHVyZVZhbHVlKCJ2aWV3V2lk
dGgiKTsgfQorICAgIHN0ZDo6c3RyaW5nIGFkZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVzKCkg
Y29uc3QgeyByZXR1cm4gc3RyaW5nRmVhdHVyZVZhbHVlKCJhZGRpdGlvbmFsU3VwcG9ydGVkSW1h
Z2VUeXBlcyIpOyB9CisgICAgc3RkOjpzdHJpbmcgYXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVy
KCkgY29uc3QgeyByZXR1cm4gc3RyaW5nRmVhdHVyZVZhbHVlKCJhcHBsaWNhdGlvbkJ1bmRsZUlk
ZW50aWZpZXIiKTsgfQogICAgIHN0ZDo6c3RyaW5nIGFwcGxpY2F0aW9uTWFuaWZlc3QoKSBjb25z
dCB7IHJldHVybiBzdHJpbmdGZWF0dXJlVmFsdWUoImFwcGxpY2F0aW9uTWFuaWZlc3QiKTsgfQor
ICAgIHN0ZDo6c3RyaW5nIGNvbnRlbnRNb2RlKCkgY29uc3QgeyByZXR1cm4gc3RyaW5nRmVhdHVy
ZVZhbHVlKCJjb250ZW50TW9kZSIpOyB9CiAgICAgc3RkOjpzdHJpbmcganNjT3B0aW9ucygpIGNv
bnN0IHsgcmV0dXJuIHN0cmluZ0ZlYXR1cmVWYWx1ZSgianNjT3B0aW9ucyIpOyB9Ci0gICAgc3Rk
OjpzdHJpbmcgYWRkaXRpb25hbFN1cHBvcnRlZEltYWdlVHlwZXMoKSBjb25zdCB7IHJldHVybiBz
dHJpbmdGZWF0dXJlVmFsdWUoImFkZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVzIik7IH0KICAg
ICBzdGQ6OnN0cmluZyBzdGFuZGFsb25lV2ViQXBwbGljYXRpb25VUkwoKSBjb25zdCB7IHJldHVy
biBzdHJpbmdGZWF0dXJlVmFsdWUoInN0YW5kYWxvbmVXZWJBcHBsaWNhdGlvblVSTCIpOyB9Ci0g
ICAgc3RkOjpzdHJpbmcgY29udGVudE1vZGUoKSBjb25zdCB7IHJldHVybiBzdHJpbmdGZWF0dXJl
VmFsdWUoImNvbnRlbnRNb2RlIik7IH0KLSAgICBzdGQ6OnN0cmluZyBhcHBsaWNhdGlvbkJ1bmRs
ZUlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBzdHJpbmdGZWF0dXJlVmFsdWUoImFwcGxpY2F0
aW9uQnVuZGxlSWRlbnRpZmllciIpOyB9CiAgICAgc3RkOjp2ZWN0b3I8c3RkOjpzdHJpbmc+IG92
ZXJyaWRlTGFuZ3VhZ2VzKCkgY29uc3QgeyByZXR1cm4gc3RyaW5nVmVjdG9yRmVhdHVyZVZhbHVl
KCJsYW5ndWFnZSIpOyB9CiAKICAgICBjb25zdCBzdGQ6OnVub3JkZXJlZF9tYXA8c3RkOjpzdHJp
bmcsIGJvb2w+JiBleHBlcmltZW50YWxGZWF0dXJlcygpIGNvbnN0IHsgcmV0dXJuIG1fZmVhdHVy
ZXMuZXhwZXJpbWVudGFsRmVhdHVyZXM7IH0KICAgICBjb25zdCBzdGQ6OnVub3JkZXJlZF9tYXA8
c3RkOjpzdHJpbmcsIGJvb2w+JiBpbnRlcm5hbERlYnVnRmVhdHVyZXMoKSBjb25zdCB7IHJldHVy
biBtX2ZlYXR1cmVzLmludGVybmFsRGVidWdGZWF0dXJlczsgfQogCisgICAgc3RkOjp2ZWN0b3I8
c3RkOjpwYWlyPHN0ZDo6c3RyaW5nLCBib29sPj4gYm9vbFdLUHJlZmVyZW5jZXMoKSBjb25zdDsK
KwogICAgIGJvb2wgaGFzU2FtZUluaXRpYWxpemF0aW9uT3B0aW9ucyhjb25zdCBUZXN0T3B0aW9u
cyYpIGNvbnN0OwogCiBwcml2YXRlOgpJbmRleDogVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2Nv
YS9UZXN0Q29udHJvbGxlckNvY29hLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1dlYktpdFRlc3RS
dW5uZXIvY29jb2EvVGVzdENvbnRyb2xsZXJDb2NvYS5tbQkocmV2aXNpb24gMjY4MzMwKQorKysg
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0Q29udHJvbGxlckNvY29hLm1tCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zMiw2ICszMiw3IEBACiAjaW1wb3J0ICJUZXN0SW52b2NhdGlvbi5oIgog
I2ltcG9ydCAiVGVzdFJ1bm5lcldLV2ViVmlldy5oIgogI2ltcG9ydCAiVGVzdFdlYnNpdGVEYXRh
U3RvcmVEZWxlZ2F0ZS5oIgorI2ltcG9ydCAiV2ViQ29yZVRlc3RTdXBwb3J0LmgiCiAjaW1wb3J0
IDxGb3VuZGF0aW9uL0ZvdW5kYXRpb24uaD4KICNpbXBvcnQgPFNlY3VyaXR5L1NlY0l0ZW0uaD4K
ICNpbXBvcnQgPFdlYktpdC9XS0NvbnRleHRDb25maWd1cmF0aW9uUmVmLmg+CkBAIC0xNTgsMTgg
KzE1OSwxMiBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybUNyZWF0ZVdlYlZpCiAgICAg
ICAgIFtjb3BpZWRDb25maWd1cmF0aW9uIHNldFNlbGVjdGlvbkdyYW51bGFyaXR5OldLU2VsZWN0
aW9uR3JhbnVsYXJpdHlDaGFyYWN0ZXJdOwogICAgIGlmIChvcHRpb25zLmlzQXBwQm91bmRXZWJW
aWV3KCkpCiAgICAgICAgIFtjb3BpZWRDb25maWd1cmF0aW9uIHNldExpbWl0c05hdmlnYXRpb25z
VG9BcHBCb3VuZERvbWFpbnM6WUVTXTsKLSNlbHNlCi0gICAgW2NvcGllZENvbmZpZ3VyYXRpb24g
X3NldFNlcnZpY2VDb250cm9sc0VuYWJsZWQ6b3B0aW9ucy5lbmFibGVTZXJ2aWNlQ29udHJvbHMo
KV07CiAjZW5kaWYKIAogICAgIGlmIChvcHRpb25zLmVuYWJsZUF0dGFjaG1lbnRFbGVtZW50KCkp
CiAgICAgICAgIFtjb3BpZWRDb25maWd1cmF0aW9uIF9zZXRBdHRhY2htZW50RWxlbWVudEVuYWJs
ZWQ6WUVTXTsKIAotICAgIGlmIChvcHRpb25zLmVuYWJsZUNvbG9yRmlsdGVyKCkpCi0gICAgICAg
IFtjb3BpZWRDb25maWd1cmF0aW9uIF9zZXRDb2xvckZpbHRlckVuYWJsZWQ6WUVTXTsKLQogICAg
IFtjb3BpZWRDb25maWd1cmF0aW9uIHNldFdlYnNpdGVEYXRhU3RvcmU6KFdLV2Vic2l0ZURhdGFT
dG9yZSAqKXdlYnNpdGVEYXRhU3RvcmUoKV07Ci0KICAgICBbY29waWVkQ29uZmlndXJhdGlvbiBf
c2V0QWxsb3dUb3BOYXZpZ2F0aW9uVG9EYXRhVVJMczpvcHRpb25zLmFsbG93VG9wTmF2aWdhdGlv
blRvRGF0YVVSTHMoKV07CiAKICAgICBjb25maWd1cmVDb250ZW50TW9kZShjb3BpZWRDb25maWd1
cmF0aW9uLmdldCgpLCBvcHRpb25zKTsKQEAgLTI5OCw2ICsyOTMsOCBAQCB2b2lkIFRlc3RDb250
cm9sbGVyOjpjb2NvYVJlc2V0U3RhdGVUb0NvCiAgICAgfQogCiAgICAgW2dsb2JhbFdlYnNpdGVE
YXRhU3RvcmVEZWxlZ2F0ZUNsaWVudCBzZXRBbGxvd1JhaXNpbmdRdW90YTpZRVNdOworCisgICAg
V2ViQ29yZVRlc3RTdXBwb3J0OjpzZXRBZGRpdGlvbmFsU3VwcG9ydGVkSW1hZ2VUeXBlc0ZvclRl
c3Rpbmcob3B0aW9ucy5hZGRpdGlvbmFsU3VwcG9ydGVkSW1hZ2VUeXBlcygpLmNfc3RyKCkpOwog
fQogCiB2b2lkIFRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybVdpbGxSdW5UZXN0KGNvbnN0IFRlc3RJ
bnZvY2F0aW9uJiB0ZXN0SW52b2NhdGlvbikKSW5kZXg6IFRvb2xzL1dlYktpdFRlc3RSdW5uZXIv
Z3RrL1Rlc3RDb250cm9sbGVyR3RrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9XZWJLaXRUZXN0
UnVubmVyL2d0ay9UZXN0Q29udHJvbGxlckd0ay5jcHAJKHJldmlzaW9uIDI2ODMzMCkKKysrIFRv
b2xzL1dlYktpdFRlc3RSdW5uZXIvZ3RrL1Rlc3RDb250cm9sbGVyR3RrLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUgIlRlc3RDb250cm9sbGVyLmgiCiAKICNp
bmNsdWRlICJQbGF0Zm9ybVdlYlZpZXcuaCIKKyNpbmNsdWRlIDxXZWJLaXQvV0tUZXh0Q2hlY2tl
ci5oPgogI2luY2x1ZGUgPGd0ay9ndGsuaD4KICNpbmNsdWRlIDx3dGYvUGxhdGZvcm0uaD4KICNp
bmNsdWRlIDx3dGYvUnVuTG9vcC5oPgpAQCAtMTUwLDYgKzE1MSwxMiBAQCB2b2lkIFRlc3RDb250
cm9sbGVyOjpwbGF0Zm9ybVJlc2V0UHJlZmVyCiAgICAgbV9tYWluV2ViVmlldy0+ZGlzbWlzc0Fs
bFBvcHVwTWVudXMoKTsKIH0KIAorYm9vbCBUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1SZXNldFN0
YXRlVG9Db25zaXN0ZW50VmFsdWVzKGNvbnN0IFRlc3RPcHRpb25zJikKK3sKKyAgICBXS1RleHRD
aGVja2VyQ29udGludW91c1NwZWxsQ2hlY2tpbmdFbmFibGVkU3RhdGVDaGFuZ2VkKHRydWUpOwor
ICAgIHJldHVybiB0cnVlOworfQorCiBUZXN0RmVhdHVyZXMgVGVzdENvbnRyb2xsZXI6OnBsYXRm
b3JtU3BlY2lmaWNGZWF0dXJlRGVmYXVsdHNGb3JUZXN0KGNvbnN0IFRlc3RDb21tYW5kJikgY29u
c3QKIHsKICAgICBUZXN0RmVhdHVyZXMgZmVhdHVyZXM7CkluZGV4OiBUb29scy9XZWJLaXRUZXN0
UnVubmVyL2lvcy9UZXN0Q29udHJvbGxlcklPUy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9XZWJL
aXRUZXN0UnVubmVyL2lvcy9UZXN0Q29udHJvbGxlcklPUy5tbQkocmV2aXNpb24gMjY4MzMwKQor
KysgVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9pb3MvVGVzdENvbnRyb2xsZXJJT1MubW0JKHdvcmtp
bmcgY29weSkKQEAgLTE0OCw3ICsxNDgsNiBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpwbGF0Zm9y
bVJlc2V0UHJlZmVyCiAgICAgV0tQcmVmZXJlbmNlc1NldFRleHRBdXRvc2l6aW5nRW5hYmxlZChw
cmVmZXJlbmNlcywgZmFsc2UpOwogICAgIFdLUHJlZmVyZW5jZXNTZXRUZXh0QXV0b3NpemluZ1Vz
ZXNJZGVtcG90ZW50TW9kZShwcmVmZXJlbmNlcywgZmFsc2UpOwogICAgIFdLUHJlZmVyZW5jZXNT
ZXRDb250ZW50Q2hhbmdlT2JzZXJ2ZXJFbmFibGVkKHByZWZlcmVuY2VzLCBmYWxzZSk7Ci0gICAg
WyhfX2JyaWRnZSBXS1ByZWZlcmVuY2VzICopcHJlZmVyZW5jZXMgX3NldFNob3VsZElnbm9yZU1l
dGFWaWV3cG9ydDpOT107CiB9CiAKIGJvb2wgVGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtUmVzZXRT
dGF0ZVRvQ29uc2lzdGVudFZhbHVlcyhjb25zdCBUZXN0T3B0aW9ucyYgb3B0aW9ucykKQEAgLTI2
OSw5ICsyNjgsNiBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybUNvbmZpZ3VyZVZpCiAK
ICAgICBUZXN0UnVubmVyV0tXZWJWaWV3ICp3ZWJWaWV3ID0gbWFpbldlYlZpZXcoKS0+cGxhdGZv
cm1WaWV3KCk7CiAKLSAgICBpZiAodGVzdC5vcHRpb25zKCkuc2hvdWxkSWdub3JlTWV0YVZpZXdw
b3J0KCkpCi0gICAgICAgIHdlYlZpZXcuY29uZmlndXJhdGlvbi5wcmVmZXJlbmNlcy5fc2hvdWxk
SWdub3JlTWV0YVZpZXdwb3J0ID0gWUVTOwotCiAgICAgaWYgKCF0ZXN0Lm9wdGlvbnMoKS51c2VG
bGV4aWJsZVZpZXdwb3J0KCkpCiAgICAgICAgIHJldHVybjsKIApJbmRleDogVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci93aW4vVGVzdENvbnRyb2xsZXJXaW4uY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xz
L1dlYktpdFRlc3RSdW5uZXIvd2luL1Rlc3RDb250cm9sbGVyV2luLmNwcAkocmV2aXNpb24gMjY4
MzMwKQorKysgVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci93aW4vVGVzdENvbnRyb2xsZXJXaW4uY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0yMjcsNiArMjI3LDExIEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6
OnBsYXRmb3JtUmVzZXRQcmVmZXIKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCitib29sIFRl
c3RDb250cm9sbGVyOjpwbGF0Zm9ybVJlc2V0U3RhdGVUb0NvbnNpc3RlbnRWYWx1ZXMoY29uc3Qg
VGVzdE9wdGlvbnMmKQoreworICAgIHJldHVybiB0cnVlOworfQorCiBUZXN0RmVhdHVyZXMgVGVz
dENvbnRyb2xsZXI6OnBsYXRmb3JtU3BlY2lmaWNGZWF0dXJlRGVmYXVsdHNGb3JUZXN0KGNvbnN0
IFRlc3RDb21tYW5kJikgY29uc3QKIHsKICAgICByZXR1cm4geyB9OwpJbmRleDogVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci93cGUvVGVzdENvbnRyb2xsZXJXUEUuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRv
b2xzL1dlYktpdFRlc3RSdW5uZXIvd3BlL1Rlc3RDb250cm9sbGVyV1BFLmNwcAkocmV2aXNpb24g
MjY4MzMwKQorKysgVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci93cGUvVGVzdENvbnRyb2xsZXJXUEUu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzYsNiArMTM2LDExIEBAIHZvaWQgVGVzdENvbnRyb2xs
ZXI6OnBsYXRmb3JtUmVzZXRQcmVmZXIKIHsKIH0KIAorYm9vbCBUZXN0Q29udHJvbGxlcjo6cGxh
dGZvcm1SZXNldFN0YXRlVG9Db25zaXN0ZW50VmFsdWVzKGNvbnN0IFRlc3RPcHRpb25zJikKK3sK
KyAgICByZXR1cm4gdHJ1ZTsKK30KKwogVGVzdEZlYXR1cmVzIFRlc3RDb250cm9sbGVyOjpwbGF0
Zm9ybVNwZWNpZmljRmVhdHVyZURlZmF1bHRzRm9yVGVzdChjb25zdCBUZXN0Q29tbWFuZCYpIGNv
bnN0CiB7CiAgICAgVGVzdEZlYXR1cmVzIGZlYXR1cmVzOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>