<?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>209244</bug_id>
          
          <creation_ts>2020-03-18 12:00:20 -0700</creation_ts>
          <short_desc>[Cocoa] Fix launch time regression with CF prefs direct mode enabled</short_desc>
          <delta_ts>2020-03-26 14:51:25 -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>WebKit Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>209620</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Per Arne Vollan">pvollan</reporter>
          <assigned_to name="Per Arne Vollan">pvollan</assigned_to>
          <cc>benjamin</cc>
    
    <cc>bfulgham</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>darin</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1631280</commentid>
    <comment_count>0</comment_count>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-03-18 12:00:20 -0700</bug_when>
    <thetext>When CF prefs direct mode was enabled in https://trac.webkit.org/changeset/258064/webkit, it introduced a significant launch time regression. This regression should be fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1631282</commentid>
    <comment_count>1</comment_count>
      <attachid>393882</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-03-18 12:03:03 -0700</bug_when>
    <thetext>Created attachment 393882
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1631286</commentid>
    <comment_count>2</comment_count>
      <attachid>393884</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-03-18 12:15:47 -0700</bug_when>
    <thetext>Created attachment 393884
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1631307</commentid>
    <comment_count>3</comment_count>
      <attachid>393888</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-03-18 12:38:01 -0700</bug_when>
    <thetext>Created attachment 393888
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1631388</commentid>
    <comment_count>4</comment_count>
      <attachid>393909</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-03-18 15:34:46 -0700</bug_when>
    <thetext>Created attachment 393909
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1631391</commentid>
    <comment_count>5</comment_count>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-03-18 15:36:10 -0700</bug_when>
    <thetext>rdar://problem/60542149</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1631721</commentid>
    <comment_count>6</comment_count>
      <attachid>393993</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-03-19 10:24:06 -0700</bug_when>
    <thetext>Created attachment 393993
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1631729</commentid>
    <comment_count>7</comment_count>
      <attachid>393995</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-03-19 10:53:14 -0700</bug_when>
    <thetext>Created attachment 393995
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1631791</commentid>
    <comment_count>8</comment_count>
      <attachid>394011</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-03-19 13:21:07 -0700</bug_when>
    <thetext>Created attachment 394011
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1632161</commentid>
    <comment_count>9</comment_count>
      <attachid>394099</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-03-20 10:27:42 -0700</bug_when>
    <thetext>Created attachment 394099
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1632168</commentid>
    <comment_count>10</comment_count>
      <attachid>394102</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-03-20 10:44:55 -0700</bug_when>
    <thetext>Created attachment 394102
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1632174</commentid>
    <comment_count>11</comment_count>
      <attachid>394102</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-03-20 11:13:23 -0700</bug_when>
    <thetext>Comment on attachment 394102
Patch

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

&gt; Source/WTF/wtf/PlatformEnable.h:878
&gt; +#if PLATFORM(COCOA)
&gt; +#define ENABLE_CFPREFS_DIRECT_MODE 1
&gt; +#else
&gt;  #define ENABLE_CFPREFS_DIRECT_MODE 0
&gt; +#endif

Please put this in PlatformEnableCocoa.h, and add a default value of ENABLE_CFPREFS_DIRECT_MODE above.

&gt; Source/WebKit/ChangeLog:16
&gt; +

Why is ok to wait for ui process activation? It seems like this will have a change in behavior. 

If this change is ok, please add a test showing the change in behavior.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1632305</commentid>
    <comment_count>12</comment_count>
      <attachid>394134</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-03-20 14:59:20 -0700</bug_when>
    <thetext>Created attachment 394134
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1632309</commentid>
    <comment_count>13</comment_count>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-03-20 15:02:05 -0700</bug_when>
    <thetext>(In reply to Sam Weinig from comment #11)
&gt; Comment on attachment 394102 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=394102&amp;action=review
&gt; 
&gt; &gt; Source/WTF/wtf/PlatformEnable.h:878
&gt; &gt; +#if PLATFORM(COCOA)
&gt; &gt; +#define ENABLE_CFPREFS_DIRECT_MODE 1
&gt; &gt; +#else
&gt; &gt;  #define ENABLE_CFPREFS_DIRECT_MODE 0
&gt; &gt; +#endif
&gt; 
&gt; Please put this in PlatformEnableCocoa.h, and add a default value of
&gt; ENABLE_CFPREFS_DIRECT_MODE above.
&gt; 

Fixed.

&gt; &gt; Source/WebKit/ChangeLog:16
&gt; &gt; +
&gt; 
&gt; Why is ok to wait for ui process activation? It seems like this will have a
&gt; change in behavior. 
&gt; 
&gt; If this change is ok, please add a test showing the change in behavior.

In general, a user would have to deactivate Safari to be able to change preferences we are observing, so I think waiting for UI process activation should be ok. I have added a test for this.

Thanks for reviewing!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1632317</commentid>
    <comment_count>14</comment_count>
      <attachid>394134</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-03-20 15:22:39 -0700</bug_when>
    <thetext>Comment on attachment 394134
Patch

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

&gt; Source/WebKit/Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:-537
&gt; -    (global-name &quot;com.apple.cfprefsd.daemon&quot;)

Seems strange that this is not inside a conditional.

&gt; Source/WebKit/UIProcess/Cocoa/PreferenceObserver.mm:87
&gt;      std::initializer_list&lt;NSString*&gt; domains = {

How can we determine if we have registered the correct set of domains, and keep this list updated over time? Do we have to notice bugs due to incorrect behavior or is there a system for detecting mistakes in the list?

Is this a scalable approach? Will we run into performance problems again later if we have to add more domains? Created by someone else not thinking about WebKit when they start fetching more preferences in some component used by WebKit?

&gt; Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm:681
&gt; +#if ENABLE(CFPREFS_DIRECT_MODE)
&gt; +    m_activationObserver = [[NSNotificationCenter defaultCenter] addObserverForName:@&quot;UIApplicationDidBecomeActiveNotification&quot; object:nil queue:[NSOperationQueue currentQueue] usingBlock:^(NSNotification *notification) {
&gt; +        dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
&gt; +            // Start observing preference changes.
&gt; +            [WKPreferenceObserver sharedInstance];
&gt; +        });
&gt; +    }];
&gt; +#endif

Can we cut down on the copied and pasted code somehow? Maybe a helper function named startObservingPreferenceChanges?

Is there a race condition for preferences that we fetch before we call this block and create a WKPreferenceObserver, where we can miss an early change?

&gt; Source/WebKit/WebProcess/com.apple.WebProcess.sb.in:-680
&gt; -    (global-name &quot;com.apple.cfprefsd.daemon&quot;)

Seems strange that this is not inside a conditional.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1632336</commentid>
    <comment_count>15</comment_count>
      <attachid>394142</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-03-20 15:48:33 -0700</bug_when>
    <thetext>Created attachment 394142
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1632353</commentid>
    <comment_count>16</comment_count>
      <attachid>394134</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-03-20 16:06:15 -0700</bug_when>
    <thetext>Comment on attachment 394134
Patch

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

&gt; Source/WTF/wtf/PlatformEnable.h:876
&gt; +#if !defined(ENABLE_CFPREFS_DIRECT_MODE)
&gt;  #define ENABLE_CFPREFS_DIRECT_MODE 0
&gt; +#endif

This should really go in the section above with all the other defaults, not down here in the &quot;Asserts, invariants for macro definitions&quot; section.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1632362</commentid>
    <comment_count>17</comment_count>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-03-20 16:18:58 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #14)
&gt; Comment on attachment 394134 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=394134&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:-537
&gt; &gt; -    (global-name &quot;com.apple.cfprefsd.daemon&quot;)
&gt; 
&gt; Seems strange that this is not inside a conditional.
&gt; 

AFAIK, we are not preprocessing the sandbox on iOS, so I don&apos;t believe we can use a conditional here.

&gt; &gt; Source/WebKit/UIProcess/Cocoa/PreferenceObserver.mm:87
&gt; &gt;      std::initializer_list&lt;NSString*&gt; domains = {
&gt; 
&gt; How can we determine if we have registered the correct set of domains, and
&gt; keep this list updated over time? Do we have to notice bugs due to incorrect
&gt; behavior or is there a system for detecting mistakes in the list?
&gt; 

We have done, and are doing a test sweep now to determine the initial list of domains we need. New preference domains are denied in the sandbox by default, so when we are asked to add them to the sandbox, we should also evaluate if that domain needs to go into this list. So I don&apos;t think we need to rely on noticing incorrect behavior going forward, once we have the initial list.

&gt; Is this a scalable approach? Will we run into performance problems again
&gt; later if we have to add more domains? Created by someone else not thinking
&gt; about WebKit when they start fetching more preferences in some component
&gt; used by WebKit?
&gt; 

Given that this patch shows 0% regression on the liftoff benchmark, and that the initialization is running on a secondary thread after most other CF prefs work on startup is done, I believe we can add some domains without creating a new regression. However, I don&apos;t think we can add a lot of domains without seeing some sort of regression, either in power/memory usage or launch time. At the moment, I am not sure how many we can add before we see a regression, but I don&apos;t expect a substantial net growth in this list over time.

&gt; &gt; Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm:681
&gt; &gt; +#if ENABLE(CFPREFS_DIRECT_MODE)
&gt; &gt; +    m_activationObserver = [[NSNotificationCenter defaultCenter] addObserverForName:@&quot;UIApplicationDidBecomeActiveNotification&quot; object:nil queue:[NSOperationQueue currentQueue] usingBlock:^(NSNotification *notification) {
&gt; &gt; +        dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
&gt; &gt; +            // Start observing preference changes.
&gt; &gt; +            [WKPreferenceObserver sharedInstance];
&gt; &gt; +        });
&gt; &gt; +    }];
&gt; &gt; +#endif
&gt; 
&gt; Can we cut down on the copied and pasted code somehow? Maybe a helper
&gt; function named startObservingPreferenceChanges?
&gt; 

Fixed.

&gt; Is there a race condition for preferences that we fetch before we call this
&gt; block and create a WKPreferenceObserver, where we can miss an early change?
&gt; 

That is a very good point. I think it could be possible in some scenarios, but unlikely, since the user will have to deactivate Safari before going into Settings and make changes.

&gt; &gt; Source/WebKit/WebProcess/com.apple.WebProcess.sb.in:-680
&gt; &gt; -    (global-name &quot;com.apple.cfprefsd.daemon&quot;)
&gt; 
&gt; Seems strange that this is not inside a conditional.

On macOS we are actually preprocessing the sandbox file, but I have observed some unexpected behavior related to ENABLE macros here earlier, so I did not use a conditional.

Thanks for reviewing!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1632368</commentid>
    <comment_count>18</comment_count>
      <attachid>394147</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-03-20 16:25:30 -0700</bug_when>
    <thetext>Created attachment 394147
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1632369</commentid>
    <comment_count>19</comment_count>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-03-20 16:26:05 -0700</bug_when>
    <thetext>(In reply to Sam Weinig from comment #16)
&gt; Comment on attachment 394134 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=394134&amp;action=review
&gt; 
&gt; &gt; Source/WTF/wtf/PlatformEnable.h:876
&gt; &gt; +#if !defined(ENABLE_CFPREFS_DIRECT_MODE)
&gt; &gt;  #define ENABLE_CFPREFS_DIRECT_MODE 0
&gt; &gt; +#endif
&gt; 
&gt; This should really go in the section above with all the other defaults, not
&gt; down here in the &quot;Asserts, invariants for macro definitions&quot; section.

Thanks, fixed!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1632489</commentid>
    <comment_count>20</comment_count>
      <attachid>394147</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2020-03-21 11:25:03 -0700</bug_when>
    <thetext>Comment on attachment 394147
Patch

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

&gt; Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm:606
&gt; +    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{

You might as well put a dispatch_once here, so we don&apos;t do a throw-away dispatch_async on every activation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1632849</commentid>
    <comment_count>21</comment_count>
      <attachid>394261</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-03-23 08:10:39 -0700</bug_when>
    <thetext>Created attachment 394261
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1632850</commentid>
    <comment_count>22</comment_count>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-03-23 08:11:36 -0700</bug_when>
    <thetext>(In reply to Geoffrey Garen from comment #20)
&gt; Comment on attachment 394147 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=394147&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm:606
&gt; &gt; +    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
&gt; 
&gt; You might as well put a dispatch_once here, so we don&apos;t do a throw-away
&gt; dispatch_async on every activation.

Fixed.

Thanks for reviewing!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1633364</commentid>
    <comment_count>23</comment_count>
      <attachid>394378</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-03-24 09:53:50 -0700</bug_when>
    <thetext>Created attachment 394378
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1633589</commentid>
    <comment_count>24</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-03-24 15:41:19 -0700</bug_when>
    <thetext>Committed r258949: &lt;https://trac.webkit.org/changeset/258949&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 394378.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1634564</commentid>
    <comment_count>25</comment_count>
      <attachid>394378</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-03-26 14:24:11 -0700</bug_when>
    <thetext>Comment on attachment 394378
Patch

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

&gt; Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm:713
&gt; +    [[NSNotificationCenter defaultCenter] removeObserver:m_activationObserver.get()];

This introduced this crash: rdar://problem/60930466

The m_activationObserver is no longer properly unregistered on macOS... This block does not seem to be built on macOS at all.

Why did you move this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1634584</commentid>
    <comment_count>26</comment_count>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-03-26 14:51:25 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #25)
&gt; Comment on attachment 394378 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=394378&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm:713
&gt; &gt; +    [[NSNotificationCenter defaultCenter] removeObserver:m_activationObserver.get()];
&gt; 
&gt; This introduced this crash: rdar://problem/60930466
&gt; 
&gt; The m_activationObserver is no longer properly unregistered on macOS... This
&gt; block does not seem to be built on macOS at all.
&gt; 
&gt; Why did you move this?

I intended to move it so that it would be unregistered for both macOS and iOS, but did not move it to the correct place.

Thanks for catching this!</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>393882</attachid>
            <date>2020-03-18 12:03:03 -0700</date>
            <delta_ts>2020-03-18 12:15:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209244-20200318120303.patch</filename>
            <type>text/plain</type>
            <size>9342</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNTg2NTMpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIyIEBACisyMDIwLTAzLTE4ICBQZXIgQXJuZSBW
b2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIEZpeCBsYXVuY2gg
dGltZSByZWdyZXNzaW9uIHdpdGggQ0YgcHJlZnMgZGlyZWN0IG1vZGUgZW5hYmxlZAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA5MjQ0CisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS82MDU0MjE0OT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBXaGVuIENGIHByZWZzIGRpcmVjdCBtb2RlIHdhcyBlbmFibGVk
IGluIGh0dHBzOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8yNTgwNjQvd2Via2l0LCBpdCBp
bnRyb2R1Y2VkCisgICAgICAgIGEgc2lnbmlmaWNhbnQgbGF1bmNoIHRpbWUgcmVncmVzc2lvbi4g
VGhpcyByZWdyZXNzaW9uIHNob3VsZCBiZSBmaXhlZC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9D
b2NvYS9QcmVmZXJlbmNlT2JzZXJ2ZXIubW06CisgICAgICAgICgtW1dLUHJlZmVyZW5jZU9ic2Vy
dmVyIGluaXRdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2Nv
YS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6
ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpyZWdpc3Rlck5vdGlmaWNhdGlv
bk9ic2VydmVycyk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjp1bnJlZ2lzdGVy
Tm90aWZpY2F0aW9uT2JzZXJ2ZXJzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Bv
b2wuaDoKKwogMjAyMC0wMy0xOCAgTWVnYW4gR2FyZG5lciAgPG1lZ2FuX2dhcmRuZXJAYXBwbGUu
Y29tPgogCiAgICAgICAgIFJlbW92ZSB1bm5lZWRlZCBhbmQgaW5jb3JyZWN0IHJlc3BvbmRzVG9T
ZWxlY3RvciBjaGVja3MuCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNz
UG9vbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
b29sLmgJKHJldmlzaW9uIDI1ODUxNykKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQb29sLmgJKHdvcmtpbmcgY29weSkKQEAgLTY5OSwxNCArNjk5LDE0IEBAIHByaXZhdGU6
CiAjaWYgRU5BQkxFKFdFQlBST0NFU1NfV0lORE9XU0VSVkVSX0JMT0NLSU5HKQogICAgIFJldGFp
blB0cjxOU09iamVjdD4gbV9zY3JvbGxlclN0eWxlTm90aWZpY2F0aW9uT2JzZXJ2ZXI7CiAjZW5k
aWYKLSAgICBSZXRhaW5QdHI8TlNPYmplY3Q+IG1fYWN0aXZhdGlvbk9ic2VydmVyOwotICAgIFJl
dGFpblB0cjxOU09iamVjdD4gbV9kZWFjdGl2YXRpb25PYnNlcnZlcjsKIAogICAgIHN0ZDo6dW5p
cXVlX3B0cjxIaWdoUGVyZm9ybWFuY2VHcmFwaGljc1VzYWdlU2FtcGxlcj4gbV9oaWdoUGVyZm9y
bWFuY2VHcmFwaGljc1VzYWdlU2FtcGxlcjsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8UGVyQWN0aXZp
dHlTdGF0ZUNQVVVzYWdlU2FtcGxlcj4gbV9wZXJBY3Rpdml0eVN0YXRlQ1BVVXNhZ2VTYW1wbGVy
OwogI2VuZGlmCiAKICNpZiBQTEFURk9STShDT0NPQSkKKyAgICBSZXRhaW5QdHI8TlNPYmplY3Q+
IG1fYWN0aXZhdGlvbk9ic2VydmVyOworICAgIFJldGFpblB0cjxOU09iamVjdD4gbV9kZWFjdGl2
YXRpb25PYnNlcnZlcjsKICAgICBSZXRhaW5QdHI8TlNPYmplY3Q+IG1fYWNjZXNzaWJpbGl0eUVu
YWJsZWRPYnNlcnZlcjsKICNlbmRpZgogCkBAIC04MTEsMTAgKzgxMSw2IEBAIHByaXZhdGU6CiAg
ICAgYm9vbCBtX2lzRGVsYXllZFdlYlByb2Nlc3NMYXVuY2hEaXNhYmxlZCB7IGZhbHNlIH07CiAj
ZW5kaWYKICAgICBib29sIG1fdXNlU2VwYXJhdGVTZXJ2aWNlV29ya2VyUHJvY2VzcyB7IGZhbHNl
IH07Ci0KLSNpZiBQTEFURk9STShDT0NPQSkKLSAgICBSZXRhaW5QdHI8V0tQcmVmZXJlbmNlT2Jz
ZXJ2ZXI+IG1fcHJlZmVyZW5jZU9ic2VydmVyOwotI2VuZGlmCiB9OwogCiB0ZW1wbGF0ZTx0eXBl
bmFtZSBUPgpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvUHJlZmVyZW5jZU9i
c2VydmVyLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1By
ZWZlcmVuY2VPYnNlcnZlci5tbQkocmV2aXNpb24gMjU4NTE3KQorKysgU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQ29jb2EvUHJlZmVyZW5jZU9ic2VydmVyLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0x
MTMsOTEgKzExMywzMCBAQCArICh2b2lkKXN3aXp6bGVSZWdpc3RlckRlZmF1bHRzCiAtIChpbnN0
YW5jZXR5cGUpaW5pdAogewogICAgIHN0ZDo6aW5pdGlhbGl6ZXJfbGlzdDxOU1N0cmluZyo+IGRv
bWFpbnMgPSB7Ci0gICAgICAgIEAiY29tLmFwcGxlLkFjY2Vzc2liaWxpdHkiLAogI2lmIFBMQVRG
T1JNKElPU19GQU1JTFkpCisgICAgICAgIEAiY29tLmFwcGxlLkFjY2Vzc2liaWxpdHkiLAogICAg
ICAgICBAImNvbS5hcHBsZS5BZExpYiIsCi0gICAgICAgIEAiY29tLmFwcGxlLkNGTmV0d29yayIs
Ci0gICAgICAgIEAiY29tLmFwcGxlLkVtb2ppUHJlZmVyZW5jZXMiLAotICAgICAgICBAImNvbS5h
cHBsZS5Gb250UGFyc2VyIiwKLSAgICAgICAgQCJjb20uYXBwbGUuSW1hZ2VJTyIsCi0gICAgICAg
IEAiY29tLmFwcGxlLklucHV0TW9kZVByZWZlcmVuY2VzIiwKLSNlbHNlCi0gICAgICAgIEAiY29t
LmFwcGxlLkFUUyIsCi0gICAgICAgIEAiY29tLmFwcGxlLkNvcmVHcmFwaGljcyIsCi0gICAgICAg
IEAiY29tLmFwcGxlLkRvd25sb2FkQXNzZXNzbWVudCIsCi0gICAgICAgIEAiY29tLmFwcGxlLkhJ
VG9vbGJveCIsCi0jZW5kaWYKLSAgICAgICAgQCJjb20uYXBwbGUuTGF1bmNoU2VydmljZXMiLAot
I2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgICAgIEAiY29tLmFwcGxlLk1ldGFsIiwKLSAg
ICAgICAgQCJjb20uYXBwbGUuTW9iaWxlQXNzZXQiLAogICAgICAgICBAImNvbS5hcHBsZS5QcmVm
ZXJlbmNlcyIsCi0gICAgICAgIEAiY29tLmFwcGxlLlNwZWFrU2VsZWN0aW9uIiwKICAgICAgICAg
QCJjb20uYXBwbGUuVUlLaXQiLAotICAgICAgICBAImNvbS5hcHBsZS5Wb2ljZU92ZXJUb3VjaCIs
Ci0jZWxzZQotICAgICAgICBAImNvbS5hcHBsZS5NdWx0aXRvdWNoU3VwcG9ydCIKLSAgICAgICAg
QCJjb20uYXBwbGUuU2VydmljZXNNZW51LlNlcnZpY2VzIgotICAgICAgICBAImNvbS5hcHBsZS5W
aWV3QnJpZGdlIgotI2VuZGlmCi0gICAgICAgIEAiY29tLmFwcGxlLldlYkZvdW5kYXRpb24iLAot
I2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgICAgIEAiY29tLmFwcGxlLldlYktpdC5XZWJD
b250ZW50IiwKLSAgICAgICAgQCJjb20uYXBwbGUuV2ViVUkiLAotICAgICAgICBAImNvbS5hcHBs
ZS5haXJwbGF5IiwKLSAgICAgICAgQCJjb20uYXBwbGUuYXBwbGVqcGVnIiwKLSAgICAgICAgQCJj
b20uYXBwbGUuYXVkaW8udmlydHVhbGF1ZGlvIiwKICAgICAgICAgQCJjb20uYXBwbGUuYXZmYXVk
aW8iLAotI2VuZGlmCi0gICAgICAgIEAiY29tLmFwcGxlLmF2Zm91bmRhdGlvbiIsCi0gICAgICAg
IEAiY29tLmFwcGxlLmF2Zm91bmRhdGlvbi5mcmVjZW50cyIsCi0gICAgICAgIEAiY29tLmFwcGxl
LmF2Zm91bmRhdGlvbi52aWRlb3BlcmZvcm1hbmNlaHVkIiwKLSNpZiBQTEFURk9STShJT1NfRkFN
SUxZKQotICAgICAgICBAImNvbS5hcHBsZS5hdmtpdCIsCi0gICAgICAgIEAiY29tLmFwcGxlLmNv
cmVhbmltYXRpb24iLAotICAgICAgICBAImNvbS5hcHBsZS5jb3JlYXVkaW8iLAotI2VuZGlmCi0g
ICAgICAgIEAiY29tLmFwcGxlLmNvcmVtZWRpYSIsCi0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkK
LSAgICAgICAgQCJjb20uYXBwbGUuY29yZXZpZGVvIiwKLSAgICAgICAgQCJjb20uYXBwbGUuZGEi
LAotICAgICAgICBAImNvbS5hcHBsZS5oYW5ndHJhY2VyIiwKLSAgICAgICAgQCJjb20uYXBwbGUu
aW5kaWdvIiwKLSAgICAgICAgQCJjb20uYXBwbGUuaW9raXQuSU9Nb2JpbGVHcmFwaGljc0ZhbWls
eSIsCiAgICAgICAgIEAiY29tLmFwcGxlLml0dW5lc3N0b3JlZCIsCi0gICAgICAgIEAiY29tLmFw
cGxlLmtleWJvYXJkIiwKLSNlbHNlCi0gICAgICAgIEAiY29tLmFwcGxlLmNyeXB0byIsCi0gICAg
ICAgIEAiY29tLmFwcGxlLmRyaXZlci5BcHBsZUJsdWV0b290aE11bHRpdG91Y2gubW91c2UiLAot
ICAgICAgICBAImNvbS5hcHBsZS5kcml2ZXIuQXBwbGVCbHVldG9vdGhNdWx0aXRvdWNoLnRyYWNr
cGFkIiwKLSAgICAgICAgQCJjb20uYXBwbGUuZHJpdmVyLkFwcGxlSElETW91c2UiCi0jZW5kaWYK
LSAgICAgICAgQCJjb20uYXBwbGUubG9va3VwLnNoYXJlZCIsCi0gICAgICAgIEAiY29tLmFwcGxl
Lm1lZGlhYWNjZXNzaWJpbGl0eSIsCi0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICAgICAg
QCJjb20uYXBwbGUubWVkaWFhY2Nlc3NpYmlsaXR5LnB1YmxpYyIsCiAgICAgICAgIEAiY29tLmFw
cGxlLm1lZGlhcmVtb3RlIiwKLSAgICAgICAgQCJjb20uYXBwbGUubW9iaWxlaXBvZCIsCi0gICAg
ICAgIEAiY29tLmFwcGxlLm10IiwKLSNlbHNlCi0gICAgICAgIEAiY29tLmFwcGxlLm5ldHdvcmtD
b25uZWN0IgotI2VuZGlmCi0gICAgICAgIEAiY29tLmFwcGxlLm9wZW5nbCIsCi0jaWYgUExBVEZP
Uk0oSU9TX0ZBTUlMWSkKICAgICAgICAgQCJjb20uYXBwbGUucHJlZmVyZW5jZXMuc291bmRzIiwK
LSAgICAgICAgQCJjb20uYXBwbGUuc2VjdXJpdHkiLAogICAgICAgICBAImNvbS5hcHBsZS52b2lj
ZXNlcnZpY2VzIiwKLSAgICAgICAgQCJjb20uYXBwbGUudm9pY2VzZXJ2aWNlcy5sb2dnaW5nIiwK
KyAgICAgICAgQCJrQ0ZQcmVmZXJlbmNlc0FueUFwcGxpY2F0aW9uIiwKICNlbHNlCisgICAgICAg
IEAiY29tLmFwcGxlLkNvcmVHcmFwaGljcyIsCisgICAgICAgIEAiY29tLmFwcGxlLkhJVG9vbGJv
eCIsCisgICAgICAgIEAiY29tLmFwcGxlLlNlcnZpY2VzTWVudS5TZXJ2aWNlcyIsCisgICAgICAg
IEAiY29tLmFwcGxlLlZpZXdCcmlkZ2UiLAorICAgICAgICBAImNvbS5hcHBsZS5hdmZvdW5kYXRp
b24iLAorICAgICAgICBAImNvbS5hcHBsZS5hdmZvdW5kYXRpb24udmlkZW9wZXJmb3JtYW5jZWh1
ZCIsCisgICAgICAgIEAiY29tLmFwcGxlLmRyaXZlci5BcHBsZUJsdWV0b290aE11bHRpdG91Y2gu
bW91c2UiLAorICAgICAgICBAImNvbS5hcHBsZS5kcml2ZXIuQXBwbGVCbHVldG9vdGhNdWx0aXRv
dWNoLnRyYWNrcGFkIiwKKyAgICAgICAgQCJjb20uYXBwbGUubWVkaWFhY2Nlc3NpYmlsaXR5IiwK
ICAgICAgICAgQCJjb20uYXBwbGUuc3BlZWNoLnZvaWNlLnByZWZzIiwKLSAgICAgICAgQCJjb20u
YXBwbGUuc3lzdGVtc291bmQiLAogICAgICAgICBAImNvbS5hcHBsZS51bml2ZXJzYWxhY2Nlc3Mi
LAotICAgICAgICBAImNvbS5udmlkaWEuT3BlbkdMIiwKLSAgICAgICAgQCJlZHUubWl0LktlcmJl
cm9zIiwKLSNlbmRpZgogICAgICAgICBAImtDRlByZWZlcmVuY2VzQW55QXBwbGljYXRpb24iLAot
I2lmICFQTEFURk9STShJT1NfRkFNSUxZKQotICAgICAgICBAInBicyIsCiAjZW5kaWYKICAgICB9
OwogCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENv
Y29hLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlBy
b2Nlc3NQb29sQ29jb2EubW0JKHJldmlzaW9uIDI1ODUxOCkKKysrIFNvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0JKHdvcmtpbmcgY29weSkKQEAgLTE3
MywxNCArMTczLDYgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXplKAog
ICAgICAgICBpbnN0YWxsTWVtb3J5UHJlc3N1cmVIYW5kbGVyKCk7CiAKICAgICBzZXRMZWdhY3lD
dXN0b21Qcm90b2NvbE1hbmFnZXJDbGllbnQobWFrZVVuaXF1ZTxMZWdhY3lDdXN0b21Qcm90b2Nv
bE1hbmFnZXJDbGllbnQ+KCkpOwotCi0jaWYgRU5BQkxFKENGUFJFRlNfRElSRUNUX01PREUpCi0g
ICAgW1dLUHJlZmVyZW5jZU9ic2VydmVyIHN3aXp6bGVSZWdpc3RlckRlZmF1bHRzXTsKLSAgICBk
aXNwYXRjaF9hc3luYyhkaXNwYXRjaF9nZXRfZ2xvYmFsX3F1ZXVlKFFPU19DTEFTU19CQUNLR1JP
VU5ELCAwKSwgXnsKLSAgICAgICAgLy8gU3RhcnQgb2JzZXJ2aW5nIHByZWZlcmVuY2UgY2hhbmdl
cy4KLSAgICAgICAgW1dLUHJlZmVyZW5jZU9ic2VydmVyIHNoYXJlZEluc3RhbmNlXTsKLSAgICB9
KTsKLSNlbmRpZgogfQogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKQEAgLTY1Myw2ICs2NDUs
MTEgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6cmVnaXN0ZXJOb3RpZmljYXRpbwogCiAgICAgbV9h
Y3RpdmF0aW9uT2JzZXJ2ZXIgPSBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJd
IGFkZE9ic2VydmVyRm9yTmFtZTpOU0FwcGxpY2F0aW9uRGlkQmVjb21lQWN0aXZlTm90aWZpY2F0
aW9uIG9iamVjdDpOU0FwcCBxdWV1ZTpbTlNPcGVyYXRpb25RdWV1ZSBjdXJyZW50UXVldWVdIHVz
aW5nQmxvY2s6XihOU05vdGlmaWNhdGlvbiAqbm90aWZpY2F0aW9uKSB7CiAgICAgICAgIHNldEFw
cGxpY2F0aW9uSXNBY3RpdmUodHJ1ZSk7CisjaWYgRU5BQkxFKENGUFJFRlNfRElSRUNUX01PREUp
CisgICAgICAgICAgICBbV0tQcmVmZXJlbmNlT2JzZXJ2ZXIgc3dpenpsZVJlZ2lzdGVyRGVmYXVs
dHNdOworICAgICAgICAgICAgLy8gU3RhcnQgb2JzZXJ2aW5nIHByZWZlcmVuY2UgY2hhbmdlcy4K
KyAgICAgICAgICAgIFtXS1ByZWZlcmVuY2VPYnNlcnZlciBzaGFyZWRJbnN0YW5jZV07CisjZW5k
aWYKICAgICB9XTsKIAogICAgIG1fZGVhY3RpdmF0aW9uT2JzZXJ2ZXIgPSBbW05TTm90aWZpY2F0
aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIGFkZE9ic2VydmVyRm9yTmFtZTpOU0FwcGxpY2F0aW9u
RGlkUmVzaWduQWN0aXZlTm90aWZpY2F0aW9uIG9iamVjdDpOU0FwcCBxdWV1ZTpbTlNPcGVyYXRp
b25RdWV1ZSBjdXJyZW50UXVldWVdIHVzaW5nQmxvY2s6XihOU05vdGlmaWNhdGlvbiAqbm90aWZp
Y2F0aW9uKSB7CkBAIC02NzMsNiArNjcwLDE1IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnJlZ2lz
dGVyTm90aWZpY2F0aW8KICAgICAgICAgICAgIG1fcHJvY2Vzc2VzW2ldLT51bmJsb2NrQWNjZXNz
aWJpbGl0eVNlcnZlcklmTmVlZGVkKCk7CiAgICAgICAgIH0KICAgICB9XTsKKyAgICBtX2FjdGl2
YXRpb25PYnNlcnZlciA9IFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gYWRk
T2JzZXJ2ZXJGb3JOYW1lOkAiVUlBcHBsaWNhdGlvbkRpZEJlY29tZUFjdGl2ZU5vdGlmaWNhdGlv
biIgb2JqZWN0Om5pbCBxdWV1ZTpbTlNPcGVyYXRpb25RdWV1ZSBjdXJyZW50UXVldWVdIHVzaW5n
QmxvY2s6XihOU05vdGlmaWNhdGlvbiAqbm90aWZpY2F0aW9uKSB7CisjaWYgRU5BQkxFKENGUFJF
RlNfRElSRUNUX01PREUpCisgICAgICAgICAgICBbV0tQcmVmZXJlbmNlT2JzZXJ2ZXIgc3dpenps
ZVJlZ2lzdGVyRGVmYXVsdHNdOworICAgICAgICAgICAgLy8gU3RhcnQgb2JzZXJ2aW5nIHByZWZl
cmVuY2UgY2hhbmdlcy4KKyAgICAgICAgICAgIFtXS1ByZWZlcmVuY2VPYnNlcnZlciBzaGFyZWRJ
bnN0YW5jZV07CisjZW5kaWYKKyAgICB9XTsKKyAgICBtX2RlYWN0aXZhdGlvbk9ic2VydmVyID0g
W1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSBhZGRPYnNlcnZlckZvck5hbWU6
QCJVSUFwcGxpY2F0aW9uRGlkRW50ZXJCYWNrZ3JvdW5kTm90aWZpY2F0aW9uIiBvYmplY3Q6bmls
IHF1ZXVlOltOU09wZXJhdGlvblF1ZXVlIGN1cnJlbnRRdWV1ZV0gdXNpbmdCbG9jazpeKE5TTm90
aWZpY2F0aW9uICpub3RpZmljYXRpb24pIHsKKyAgICB9XTsKICNlbmRpZiAvLyAhUExBVEZPUk0o
SU9TX0ZBTUlMWSkKIH0KIApAQCAtNjg4LDggKzY5NCw2IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6
OnVucmVnaXN0ZXJOb3RpZmljYXQKICNpZiBFTkFCTEUoV0VCUFJPQ0VTU19XSU5ET1dTRVJWRVJf
QkxPQ0tJTkcpCiAgICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSByZW1v
dmVPYnNlcnZlcjptX3Njcm9sbGVyU3R5bGVOb3RpZmljYXRpb25PYnNlcnZlci5nZXQoKV07CiAj
ZW5kaWYKLSAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIHJlbW92ZU9i
c2VydmVyOm1fYWN0aXZhdGlvbk9ic2VydmVyLmdldCgpXTsKLSAgICBbW05TTm90aWZpY2F0aW9u
Q2VudGVyIGRlZmF1bHRDZW50ZXJdIHJlbW92ZU9ic2VydmVyOm1fZGVhY3RpdmF0aW9uT2JzZXJ2
ZXIuZ2V0KCldOwogI2VsaWYgIVBMQVRGT1JNKE1BQ0NBVEFMWVNUKQogICAgIENGTm90aWZpY2F0
aW9uQ2VudGVyUmVtb3ZlT2JzZXJ2ZXIoQ0ZOb3RpZmljYXRpb25DZW50ZXJHZXREYXJ3aW5Ob3Rp
ZnlDZW50ZXIoKSwgdGhpcywgc3RhdGljX2Nhc3Q8Q0ZTdHJpbmdSZWY+KFVJQmFja2xpZ2h0TGV2
ZWxDaGFuZ2VkTm90aWZpY2F0aW9uKSAsIG51bGxwdHIpOwogI2lmIFBMQVRGT1JNKElPUykKQEAg
LTY5OSw2ICs3MDMsOCBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjp1bnJlZ2lzdGVyTm90aWZpY2F0
CiAjZW5kaWYgLy8gUExBVEZPUk0oSU9TKQogICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVm
YXVsdENlbnRlcl0gcmVtb3ZlT2JzZXJ2ZXI6bV9hY2Nlc3NpYmlsaXR5RW5hYmxlZE9ic2VydmVy
LmdldCgpXTsKICNlbmRpZiAvLyAhUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBbW05TTm90aWZp
Y2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIHJlbW92ZU9ic2VydmVyOm1fYWN0aXZhdGlvbk9i
c2VydmVyLmdldCgpXTsKKyAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJd
IHJlbW92ZU9ic2VydmVyOm1fZGVhY3RpdmF0aW9uT2JzZXJ2ZXIuZ2V0KCldOwogfQogCiBzdGF0
aWMgQ0ZVUkxTdG9yYWdlU2Vzc2lvblJlZiBwcml2YXRlQnJvd3NpbmdTZXNzaW9uKCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>393884</attachid>
            <date>2020-03-18 12:15:47 -0700</date>
            <delta_ts>2020-03-18 12:38:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209244-20200318121546.patch</filename>
            <type>text/plain</type>
            <size>10395</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyNTg2NTQpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDIwLTAzLTE4ICBQZXIgQXJuZSBWb2xsYW4gIDxw
dm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIEZpeCBsYXVuY2ggdGltZSByZWdy
ZXNzaW9uIHdpdGggQ0YgcHJlZnMgZGlyZWN0IG1vZGUgZW5hYmxlZAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA5MjQ0CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmUtZW5hYmxlIENGIHByZWZzIGRpcmVj
dCBtb2RlLgorCisgICAgICAgICogd3RmL1BsYXRmb3JtRW5hYmxlLmg6CisKIDIwMjAtMDMtMTcg
IEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBS
RUdSRVNTSU9OKHIyNTQ4NTYpIEFkZCBleGNlcHRpb24gZm9yIHdpbmRvdy5vcGVuRGF0YWJhc2Ug
dG8gbm90IG1hc3F1ZXJhZGUgYXMgdW5kZWZpbmVkIGluIGN1cnJlbnRseSBzaGlwcGluZyBKZXN1
cyBDYWxsaW5nIERldm90aW9uYWwgYXBwCkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVu
YWJsZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlLmgJKHJl
dmlzaW9uIDI1ODY1NCkKKysrIFNvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlLmgJKHdvcmtp
bmcgY29weSkKQEAgLTg3MSw0ICs4NzEsNCBAQAogI2Vycm9yICJFTkFCTEUoV0VCR0wyKSByZXF1
aXJlcyBFTkFCTEUoV0VCR0wpIgogI2VuZGlmCiAKLSNkZWZpbmUgRU5BQkxFX0NGUFJFRlNfRElS
RUNUX01PREUgMAorI2RlZmluZSBFTkFCTEVfQ0ZQUkVGU19ESVJFQ1RfTU9ERSAxCkluZGV4OiBT
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZwkocmV2aXNpb24gMjU4NjU0KQorKysgU291cmNlL1dlYktpdC9DaGFuZ2VMb2cJKHdvcmtp
bmcgY29weSkKQEAgLTEsMyArMSwyMiBAQAorMjAyMC0wMy0xOCAgUGVyIEFybmUgVm9sbGFuICA8
cHZvbGxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBGaXggbGF1bmNoIHRpbWUgcmVn
cmVzc2lvbiB3aXRoIENGIHByZWZzIGRpcmVjdCBtb2RlIGVuYWJsZWQKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwOTI0NAorICAgICAgICA8cmRhcjov
L3Byb2JsZW0vNjA1NDIxNDk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgV2hlbiBDRiBwcmVmcyBkaXJlY3QgbW9kZSB3YXMgZW5hYmxlZCBpbiBodHRw
czovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMjU4MDY0L3dlYmtpdCwgaXQgaW50cm9kdWNl
ZAorICAgICAgICBhIHNpZ25pZmljYW50IGxhdW5jaCB0aW1lIHJlZ3Jlc3Npb24uIFRoaXMgcmVn
cmVzc2lvbiBzaG91bGQgYmUgZml4ZWQuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvUHJl
ZmVyZW5jZU9ic2VydmVyLm1tOgorICAgICAgICAoLVtXS1ByZWZlcmVuY2VPYnNlcnZlciBpbml0
XSk6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW06Cisg
ICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemUpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6cmVnaXN0ZXJOb3RpZmljYXRpb25PYnNlcnZl
cnMpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6dW5yZWdpc3Rlck5vdGlmaWNh
dGlvbk9ic2VydmVycyk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmg6CisK
IDIwMjAtMDMtMTggIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBV
bnJldmlld2VkLCBmaXggaU9TIGJ1aWxkIHdpdGggcmVjZW50IFNES3MuCkluZGV4OiBTb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgJKHJldmlzaW9uIDI1ODY1NCkKKysrIFNv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgJKHdvcmtpbmcgY29weSkKQEAg
LTY5OSwxNCArNjk5LDE0IEBAIHByaXZhdGU6CiAjaWYgRU5BQkxFKFdFQlBST0NFU1NfV0lORE9X
U0VSVkVSX0JMT0NLSU5HKQogICAgIFJldGFpblB0cjxOU09iamVjdD4gbV9zY3JvbGxlclN0eWxl
Tm90aWZpY2F0aW9uT2JzZXJ2ZXI7CiAjZW5kaWYKLSAgICBSZXRhaW5QdHI8TlNPYmplY3Q+IG1f
YWN0aXZhdGlvbk9ic2VydmVyOwotICAgIFJldGFpblB0cjxOU09iamVjdD4gbV9kZWFjdGl2YXRp
b25PYnNlcnZlcjsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxIaWdoUGVyZm9ybWFuY2VHcmFwaGlj
c1VzYWdlU2FtcGxlcj4gbV9oaWdoUGVyZm9ybWFuY2VHcmFwaGljc1VzYWdlU2FtcGxlcjsKICAg
ICBzdGQ6OnVuaXF1ZV9wdHI8UGVyQWN0aXZpdHlTdGF0ZUNQVVVzYWdlU2FtcGxlcj4gbV9wZXJB
Y3Rpdml0eVN0YXRlQ1BVVXNhZ2VTYW1wbGVyOwogI2VuZGlmCiAKICNpZiBQTEFURk9STShDT0NP
QSkKKyAgICBSZXRhaW5QdHI8TlNPYmplY3Q+IG1fYWN0aXZhdGlvbk9ic2VydmVyOworICAgIFJl
dGFpblB0cjxOU09iamVjdD4gbV9kZWFjdGl2YXRpb25PYnNlcnZlcjsKICAgICBSZXRhaW5QdHI8
TlNPYmplY3Q+IG1fYWNjZXNzaWJpbGl0eUVuYWJsZWRPYnNlcnZlcjsKICNlbmRpZgogCkBAIC04
MTEsMTAgKzgxMSw2IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2lzRGVsYXllZFdlYlByb2Nlc3NM
YXVuY2hEaXNhYmxlZCB7IGZhbHNlIH07CiAjZW5kaWYKICAgICBib29sIG1fdXNlU2VwYXJhdGVT
ZXJ2aWNlV29ya2VyUHJvY2VzcyB7IGZhbHNlIH07Ci0KLSNpZiBQTEFURk9STShDT0NPQSkKLSAg
ICBSZXRhaW5QdHI8V0tQcmVmZXJlbmNlT2JzZXJ2ZXI+IG1fcHJlZmVyZW5jZU9ic2VydmVyOwot
I2VuZGlmCiB9OwogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgpJbmRleDogU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQ29jb2EvUHJlZmVyZW5jZU9ic2VydmVyLm1tCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1ByZWZlcmVuY2VPYnNlcnZlci5tbQkocmV2aXNpb24g
MjU4NjU0KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvUHJlZmVyZW5jZU9ic2Vy
dmVyLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xMTMsOTEgKzExMywzMCBAQCArICh2b2lkKXN3aXp6
bGVSZWdpc3RlckRlZmF1bHRzCiAtIChpbnN0YW5jZXR5cGUpaW5pdAogewogICAgIHN0ZDo6aW5p
dGlhbGl6ZXJfbGlzdDxOU1N0cmluZyo+IGRvbWFpbnMgPSB7Ci0gICAgICAgIEAiY29tLmFwcGxl
LkFjY2Vzc2liaWxpdHkiLAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgICAgIEAiY29t
LmFwcGxlLkFjY2Vzc2liaWxpdHkiLAogICAgICAgICBAImNvbS5hcHBsZS5BZExpYiIsCi0gICAg
ICAgIEAiY29tLmFwcGxlLkNGTmV0d29yayIsCi0gICAgICAgIEAiY29tLmFwcGxlLkVtb2ppUHJl
ZmVyZW5jZXMiLAotICAgICAgICBAImNvbS5hcHBsZS5Gb250UGFyc2VyIiwKLSAgICAgICAgQCJj
b20uYXBwbGUuSW1hZ2VJTyIsCi0gICAgICAgIEAiY29tLmFwcGxlLklucHV0TW9kZVByZWZlcmVu
Y2VzIiwKLSNlbHNlCi0gICAgICAgIEAiY29tLmFwcGxlLkFUUyIsCi0gICAgICAgIEAiY29tLmFw
cGxlLkNvcmVHcmFwaGljcyIsCi0gICAgICAgIEAiY29tLmFwcGxlLkRvd25sb2FkQXNzZXNzbWVu
dCIsCi0gICAgICAgIEAiY29tLmFwcGxlLkhJVG9vbGJveCIsCi0jZW5kaWYKLSAgICAgICAgQCJj
b20uYXBwbGUuTGF1bmNoU2VydmljZXMiLAotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAg
ICAgIEAiY29tLmFwcGxlLk1ldGFsIiwKLSAgICAgICAgQCJjb20uYXBwbGUuTW9iaWxlQXNzZXQi
LAogICAgICAgICBAImNvbS5hcHBsZS5QcmVmZXJlbmNlcyIsCi0gICAgICAgIEAiY29tLmFwcGxl
LlNwZWFrU2VsZWN0aW9uIiwKICAgICAgICAgQCJjb20uYXBwbGUuVUlLaXQiLAotICAgICAgICBA
ImNvbS5hcHBsZS5Wb2ljZU92ZXJUb3VjaCIsCi0jZWxzZQotICAgICAgICBAImNvbS5hcHBsZS5N
dWx0aXRvdWNoU3VwcG9ydCIKLSAgICAgICAgQCJjb20uYXBwbGUuU2VydmljZXNNZW51LlNlcnZp
Y2VzIgotICAgICAgICBAImNvbS5hcHBsZS5WaWV3QnJpZGdlIgotI2VuZGlmCi0gICAgICAgIEAi
Y29tLmFwcGxlLldlYkZvdW5kYXRpb24iLAotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAg
ICAgIEAiY29tLmFwcGxlLldlYktpdC5XZWJDb250ZW50IiwKLSAgICAgICAgQCJjb20uYXBwbGUu
V2ViVUkiLAotICAgICAgICBAImNvbS5hcHBsZS5haXJwbGF5IiwKLSAgICAgICAgQCJjb20uYXBw
bGUuYXBwbGVqcGVnIiwKLSAgICAgICAgQCJjb20uYXBwbGUuYXVkaW8udmlydHVhbGF1ZGlvIiwK
ICAgICAgICAgQCJjb20uYXBwbGUuYXZmYXVkaW8iLAotI2VuZGlmCi0gICAgICAgIEAiY29tLmFw
cGxlLmF2Zm91bmRhdGlvbiIsCi0gICAgICAgIEAiY29tLmFwcGxlLmF2Zm91bmRhdGlvbi5mcmVj
ZW50cyIsCi0gICAgICAgIEAiY29tLmFwcGxlLmF2Zm91bmRhdGlvbi52aWRlb3BlcmZvcm1hbmNl
aHVkIiwKLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgICAgICBAImNvbS5hcHBsZS5hdmtp
dCIsCi0gICAgICAgIEAiY29tLmFwcGxlLmNvcmVhbmltYXRpb24iLAotICAgICAgICBAImNvbS5h
cHBsZS5jb3JlYXVkaW8iLAotI2VuZGlmCi0gICAgICAgIEAiY29tLmFwcGxlLmNvcmVtZWRpYSIs
Ci0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICAgICAgQCJjb20uYXBwbGUuY29yZXZpZGVv
IiwKLSAgICAgICAgQCJjb20uYXBwbGUuZGEiLAotICAgICAgICBAImNvbS5hcHBsZS5oYW5ndHJh
Y2VyIiwKLSAgICAgICAgQCJjb20uYXBwbGUuaW5kaWdvIiwKLSAgICAgICAgQCJjb20uYXBwbGUu
aW9raXQuSU9Nb2JpbGVHcmFwaGljc0ZhbWlseSIsCiAgICAgICAgIEAiY29tLmFwcGxlLml0dW5l
c3N0b3JlZCIsCi0gICAgICAgIEAiY29tLmFwcGxlLmtleWJvYXJkIiwKLSNlbHNlCi0gICAgICAg
IEAiY29tLmFwcGxlLmNyeXB0byIsCi0gICAgICAgIEAiY29tLmFwcGxlLmRyaXZlci5BcHBsZUJs
dWV0b290aE11bHRpdG91Y2gubW91c2UiLAotICAgICAgICBAImNvbS5hcHBsZS5kcml2ZXIuQXBw
bGVCbHVldG9vdGhNdWx0aXRvdWNoLnRyYWNrcGFkIiwKLSAgICAgICAgQCJjb20uYXBwbGUuZHJp
dmVyLkFwcGxlSElETW91c2UiCi0jZW5kaWYKLSAgICAgICAgQCJjb20uYXBwbGUubG9va3VwLnNo
YXJlZCIsCi0gICAgICAgIEAiY29tLmFwcGxlLm1lZGlhYWNjZXNzaWJpbGl0eSIsCi0jaWYgUExB
VEZPUk0oSU9TX0ZBTUlMWSkKLSAgICAgICAgQCJjb20uYXBwbGUubWVkaWFhY2Nlc3NpYmlsaXR5
LnB1YmxpYyIsCiAgICAgICAgIEAiY29tLmFwcGxlLm1lZGlhcmVtb3RlIiwKLSAgICAgICAgQCJj
b20uYXBwbGUubW9iaWxlaXBvZCIsCi0gICAgICAgIEAiY29tLmFwcGxlLm10IiwKLSNlbHNlCi0g
ICAgICAgIEAiY29tLmFwcGxlLm5ldHdvcmtDb25uZWN0IgotI2VuZGlmCi0gICAgICAgIEAiY29t
LmFwcGxlLm9wZW5nbCIsCi0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICAgICAgQCJjb20u
YXBwbGUucHJlZmVyZW5jZXMuc291bmRzIiwKLSAgICAgICAgQCJjb20uYXBwbGUuc2VjdXJpdHki
LAogICAgICAgICBAImNvbS5hcHBsZS52b2ljZXNlcnZpY2VzIiwKLSAgICAgICAgQCJjb20uYXBw
bGUudm9pY2VzZXJ2aWNlcy5sb2dnaW5nIiwKKyAgICAgICAgQCJrQ0ZQcmVmZXJlbmNlc0FueUFw
cGxpY2F0aW9uIiwKICNlbHNlCisgICAgICAgIEAiY29tLmFwcGxlLkNvcmVHcmFwaGljcyIsCisg
ICAgICAgIEAiY29tLmFwcGxlLkhJVG9vbGJveCIsCisgICAgICAgIEAiY29tLmFwcGxlLlNlcnZp
Y2VzTWVudS5TZXJ2aWNlcyIsCisgICAgICAgIEAiY29tLmFwcGxlLlZpZXdCcmlkZ2UiLAorICAg
ICAgICBAImNvbS5hcHBsZS5hdmZvdW5kYXRpb24iLAorICAgICAgICBAImNvbS5hcHBsZS5hdmZv
dW5kYXRpb24udmlkZW9wZXJmb3JtYW5jZWh1ZCIsCisgICAgICAgIEAiY29tLmFwcGxlLmRyaXZl
ci5BcHBsZUJsdWV0b290aE11bHRpdG91Y2gubW91c2UiLAorICAgICAgICBAImNvbS5hcHBsZS5k
cml2ZXIuQXBwbGVCbHVldG9vdGhNdWx0aXRvdWNoLnRyYWNrcGFkIiwKKyAgICAgICAgQCJjb20u
YXBwbGUubWVkaWFhY2Nlc3NpYmlsaXR5IiwKICAgICAgICAgQCJjb20uYXBwbGUuc3BlZWNoLnZv
aWNlLnByZWZzIiwKLSAgICAgICAgQCJjb20uYXBwbGUuc3lzdGVtc291bmQiLAogICAgICAgICBA
ImNvbS5hcHBsZS51bml2ZXJzYWxhY2Nlc3MiLAotICAgICAgICBAImNvbS5udmlkaWEuT3BlbkdM
IiwKLSAgICAgICAgQCJlZHUubWl0LktlcmJlcm9zIiwKLSNlbmRpZgogICAgICAgICBAImtDRlBy
ZWZlcmVuY2VzQW55QXBwbGljYXRpb24iLAotI2lmICFQTEFURk9STShJT1NfRkFNSUxZKQotICAg
ICAgICBAInBicyIsCiAjZW5kaWYKICAgICB9OwogCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0JKHJldmlzaW9uIDI1
ODY1NCkKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29j
b2EubW0JKHdvcmtpbmcgY29weSkKQEAgLTE3MywxNCArMTczLDYgQEAgdm9pZCBXZWJQcm9jZXNz
UG9vbDo6cGxhdGZvcm1Jbml0aWFsaXplKAogICAgICAgICBpbnN0YWxsTWVtb3J5UHJlc3N1cmVI
YW5kbGVyKCk7CiAKICAgICBzZXRMZWdhY3lDdXN0b21Qcm90b2NvbE1hbmFnZXJDbGllbnQobWFr
ZVVuaXF1ZTxMZWdhY3lDdXN0b21Qcm90b2NvbE1hbmFnZXJDbGllbnQ+KCkpOwotCi0jaWYgRU5B
QkxFKENGUFJFRlNfRElSRUNUX01PREUpCi0gICAgW1dLUHJlZmVyZW5jZU9ic2VydmVyIHN3aXp6
bGVSZWdpc3RlckRlZmF1bHRzXTsKLSAgICBkaXNwYXRjaF9hc3luYyhkaXNwYXRjaF9nZXRfZ2xv
YmFsX3F1ZXVlKFFPU19DTEFTU19CQUNLR1JPVU5ELCAwKSwgXnsKLSAgICAgICAgLy8gU3RhcnQg
b2JzZXJ2aW5nIHByZWZlcmVuY2UgY2hhbmdlcy4KLSAgICAgICAgW1dLUHJlZmVyZW5jZU9ic2Vy
dmVyIHNoYXJlZEluc3RhbmNlXTsKLSAgICB9KTsKLSNlbmRpZgogfQogCiAjaWYgUExBVEZPUk0o
SU9TX0ZBTUlMWSkKQEAgLTY1Myw2ICs2NDUsMTEgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6cmVn
aXN0ZXJOb3RpZmljYXRpbwogCiAgICAgbV9hY3RpdmF0aW9uT2JzZXJ2ZXIgPSBbW05TTm90aWZp
Y2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIGFkZE9ic2VydmVyRm9yTmFtZTpOU0FwcGxpY2F0
aW9uRGlkQmVjb21lQWN0aXZlTm90aWZpY2F0aW9uIG9iamVjdDpOU0FwcCBxdWV1ZTpbTlNPcGVy
YXRpb25RdWV1ZSBjdXJyZW50UXVldWVdIHVzaW5nQmxvY2s6XihOU05vdGlmaWNhdGlvbiAqbm90
aWZpY2F0aW9uKSB7CiAgICAgICAgIHNldEFwcGxpY2F0aW9uSXNBY3RpdmUodHJ1ZSk7CisjaWYg
RU5BQkxFKENGUFJFRlNfRElSRUNUX01PREUpCisgICAgICAgICAgICBbV0tQcmVmZXJlbmNlT2Jz
ZXJ2ZXIgc3dpenpsZVJlZ2lzdGVyRGVmYXVsdHNdOworICAgICAgICAgICAgLy8gU3RhcnQgb2Jz
ZXJ2aW5nIHByZWZlcmVuY2UgY2hhbmdlcy4KKyAgICAgICAgICAgIFtXS1ByZWZlcmVuY2VPYnNl
cnZlciBzaGFyZWRJbnN0YW5jZV07CisjZW5kaWYKICAgICB9XTsKIAogICAgIG1fZGVhY3RpdmF0
aW9uT2JzZXJ2ZXIgPSBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIGFkZE9i
c2VydmVyRm9yTmFtZTpOU0FwcGxpY2F0aW9uRGlkUmVzaWduQWN0aXZlTm90aWZpY2F0aW9uIG9i
amVjdDpOU0FwcCBxdWV1ZTpbTlNPcGVyYXRpb25RdWV1ZSBjdXJyZW50UXVldWVdIHVzaW5nQmxv
Y2s6XihOU05vdGlmaWNhdGlvbiAqbm90aWZpY2F0aW9uKSB7CkBAIC02NzMsNiArNjcwLDE1IEBA
IHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnJlZ2lzdGVyTm90aWZpY2F0aW8KICAgICAgICAgICAgIG1f
cHJvY2Vzc2VzW2ldLT51bmJsb2NrQWNjZXNzaWJpbGl0eVNlcnZlcklmTmVlZGVkKCk7CiAgICAg
ICAgIH0KICAgICB9XTsKKyAgICBtX2FjdGl2YXRpb25PYnNlcnZlciA9IFtbTlNOb3RpZmljYXRp
b25DZW50ZXIgZGVmYXVsdENlbnRlcl0gYWRkT2JzZXJ2ZXJGb3JOYW1lOkAiVUlBcHBsaWNhdGlv
bkRpZEJlY29tZUFjdGl2ZU5vdGlmaWNhdGlvbiIgb2JqZWN0Om5pbCBxdWV1ZTpbTlNPcGVyYXRp
b25RdWV1ZSBjdXJyZW50UXVldWVdIHVzaW5nQmxvY2s6XihOU05vdGlmaWNhdGlvbiAqbm90aWZp
Y2F0aW9uKSB7CisjaWYgRU5BQkxFKENGUFJFRlNfRElSRUNUX01PREUpCisgICAgICAgICAgICBb
V0tQcmVmZXJlbmNlT2JzZXJ2ZXIgc3dpenpsZVJlZ2lzdGVyRGVmYXVsdHNdOworICAgICAgICAg
ICAgLy8gU3RhcnQgb2JzZXJ2aW5nIHByZWZlcmVuY2UgY2hhbmdlcy4KKyAgICAgICAgICAgIFtX
S1ByZWZlcmVuY2VPYnNlcnZlciBzaGFyZWRJbnN0YW5jZV07CisjZW5kaWYKKyAgICB9XTsKKyAg
ICBtX2RlYWN0aXZhdGlvbk9ic2VydmVyID0gW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0
Q2VudGVyXSBhZGRPYnNlcnZlckZvck5hbWU6QCJVSUFwcGxpY2F0aW9uRGlkRW50ZXJCYWNrZ3Jv
dW5kTm90aWZpY2F0aW9uIiBvYmplY3Q6bmlsIHF1ZXVlOltOU09wZXJhdGlvblF1ZXVlIGN1cnJl
bnRRdWV1ZV0gdXNpbmdCbG9jazpeKE5TTm90aWZpY2F0aW9uICpub3RpZmljYXRpb24pIHsKKyAg
ICB9XTsKICNlbmRpZiAvLyAhUExBVEZPUk0oSU9TX0ZBTUlMWSkKIH0KIApAQCAtNjg4LDggKzY5
NCw2IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnVucmVnaXN0ZXJOb3RpZmljYXQKICNpZiBFTkFC
TEUoV0VCUFJPQ0VTU19XSU5ET1dTRVJWRVJfQkxPQ0tJTkcpCiAgICAgW1tOU05vdGlmaWNhdGlv
bkNlbnRlciBkZWZhdWx0Q2VudGVyXSByZW1vdmVPYnNlcnZlcjptX3Njcm9sbGVyU3R5bGVOb3Rp
ZmljYXRpb25PYnNlcnZlci5nZXQoKV07CiAjZW5kaWYKLSAgICBbW05TTm90aWZpY2F0aW9uQ2Vu
dGVyIGRlZmF1bHRDZW50ZXJdIHJlbW92ZU9ic2VydmVyOm1fYWN0aXZhdGlvbk9ic2VydmVyLmdl
dCgpXTsKLSAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIHJlbW92ZU9i
c2VydmVyOm1fZGVhY3RpdmF0aW9uT2JzZXJ2ZXIuZ2V0KCldOwogI2VsaWYgIVBMQVRGT1JNKE1B
Q0NBVEFMWVNUKQogICAgIENGTm90aWZpY2F0aW9uQ2VudGVyUmVtb3ZlT2JzZXJ2ZXIoQ0ZOb3Rp
ZmljYXRpb25DZW50ZXJHZXREYXJ3aW5Ob3RpZnlDZW50ZXIoKSwgdGhpcywgc3RhdGljX2Nhc3Q8
Q0ZTdHJpbmdSZWY+KFVJQmFja2xpZ2h0TGV2ZWxDaGFuZ2VkTm90aWZpY2F0aW9uKSAsIG51bGxw
dHIpOwogI2lmIFBMQVRGT1JNKElPUykKQEAgLTY5OSw2ICs3MDMsOCBAQCB2b2lkIFdlYlByb2Nl
c3NQb29sOjp1bnJlZ2lzdGVyTm90aWZpY2F0CiAjZW5kaWYgLy8gUExBVEZPUk0oSU9TKQogICAg
IFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gcmVtb3ZlT2JzZXJ2ZXI6bV9h
Y2Nlc3NpYmlsaXR5RW5hYmxlZE9ic2VydmVyLmdldCgpXTsKICNlbmRpZiAvLyAhUExBVEZPUk0o
SU9TX0ZBTUlMWSkKKyAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIHJl
bW92ZU9ic2VydmVyOm1fYWN0aXZhdGlvbk9ic2VydmVyLmdldCgpXTsKKyAgICBbW05TTm90aWZp
Y2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIHJlbW92ZU9ic2VydmVyOm1fZGVhY3RpdmF0aW9u
T2JzZXJ2ZXIuZ2V0KCldOwogfQogCiBzdGF0aWMgQ0ZVUkxTdG9yYWdlU2Vzc2lvblJlZiBwcml2
YXRlQnJvd3NpbmdTZXNzaW9uKCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>393888</attachid>
            <date>2020-03-18 12:38:01 -0700</date>
            <delta_ts>2020-03-18 15:34:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209244-20200318123801.patch</filename>
            <type>text/plain</type>
            <size>11526</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyNTg2NTQpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDIwLTAzLTE4ICBQZXIgQXJuZSBWb2xsYW4gIDxw
dm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIEZpeCBsYXVuY2ggdGltZSByZWdy
ZXNzaW9uIHdpdGggQ0YgcHJlZnMgZGlyZWN0IG1vZGUgZW5hYmxlZAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA5MjQ0CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmUtZW5hYmxlIENGIHByZWZzIGRpcmVj
dCBtb2RlLgorCisgICAgICAgICogd3RmL1BsYXRmb3JtRW5hYmxlLmg6CisKIDIwMjAtMDMtMTcg
IEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBS
RUdSRVNTSU9OKHIyNTQ4NTYpIEFkZCBleGNlcHRpb24gZm9yIHdpbmRvdy5vcGVuRGF0YWJhc2Ug
dG8gbm90IG1hc3F1ZXJhZGUgYXMgdW5kZWZpbmVkIGluIGN1cnJlbnRseSBzaGlwcGluZyBKZXN1
cyBDYWxsaW5nIERldm90aW9uYWwgYXBwCkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVu
YWJsZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlLmgJKHJl
dmlzaW9uIDI1ODY1NCkKKysrIFNvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlLmgJKHdvcmtp
bmcgY29weSkKQEAgLTg3MSw0ICs4NzEsNCBAQAogI2Vycm9yICJFTkFCTEUoV0VCR0wyKSByZXF1
aXJlcyBFTkFCTEUoV0VCR0wpIgogI2VuZGlmCiAKLSNkZWZpbmUgRU5BQkxFX0NGUFJFRlNfRElS
RUNUX01PREUgMAorI2RlZmluZSBFTkFCTEVfQ0ZQUkVGU19ESVJFQ1RfTU9ERSAxCkluZGV4OiBT
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZwkocmV2aXNpb24gMjU4NjU0KQorKysgU291cmNlL1dlYktpdC9DaGFuZ2VMb2cJKHdvcmtp
bmcgY29weSkKQEAgLTEsMyArMSwyMiBAQAorMjAyMC0wMy0xOCAgUGVyIEFybmUgVm9sbGFuICA8
cHZvbGxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBGaXggbGF1bmNoIHRpbWUgcmVn
cmVzc2lvbiB3aXRoIENGIHByZWZzIGRpcmVjdCBtb2RlIGVuYWJsZWQKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwOTI0NAorICAgICAgICA8cmRhcjov
L3Byb2JsZW0vNjA1NDIxNDk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgV2hlbiBDRiBwcmVmcyBkaXJlY3QgbW9kZSB3YXMgZW5hYmxlZCBpbiBodHRw
czovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMjU4MDY0L3dlYmtpdCwgaXQgaW50cm9kdWNl
ZAorICAgICAgICBhIHNpZ25pZmljYW50IGxhdW5jaCB0aW1lIHJlZ3Jlc3Npb24uIFRoaXMgcmVn
cmVzc2lvbiBzaG91bGQgYmUgZml4ZWQuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvUHJl
ZmVyZW5jZU9ic2VydmVyLm1tOgorICAgICAgICAoLVtXS1ByZWZlcmVuY2VPYnNlcnZlciBpbml0
XSk6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW06Cisg
ICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemUpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6cmVnaXN0ZXJOb3RpZmljYXRpb25PYnNlcnZl
cnMpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6dW5yZWdpc3Rlck5vdGlmaWNh
dGlvbk9ic2VydmVycyk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmg6CisK
IDIwMjAtMDMtMTggIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBV
bnJldmlld2VkLCBmaXggaU9TIGJ1aWxkIHdpdGggcmVjZW50IFNES3MuCkluZGV4OiBTb3VyY2Uv
V2ViS2l0L1Jlc291cmNlcy9TYW5kYm94UHJvZmlsZXMvaW9zL2NvbS5hcHBsZS5XZWJLaXQuV2Vi
Q29udGVudC5zYgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1Jlc291cmNlcy9TYW5kYm94
UHJvZmlsZXMvaW9zL2NvbS5hcHBsZS5XZWJLaXQuV2ViQ29udGVudC5zYgkocmV2aXNpb24gMjU4
NjU0KQorKysgU291cmNlL1dlYktpdC9SZXNvdXJjZXMvU2FuZGJveFByb2ZpbGVzL2lvcy9jb20u
YXBwbGUuV2ViS2l0LldlYkNvbnRlbnQuc2IJKHdvcmtpbmcgY29weSkKQEAgLTUzNiw3ICs1MzYs
NiBAQAogKGFsbG93IG1hY2gtbG9va3VwCiAgICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUubG9n
ZCIpCiAgICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUubG9nZC5ldmVudHMiKQotICAgIChnbG9i
YWwtbmFtZSAiY29tLmFwcGxlLmNmcHJlZnNkLmRhZW1vbiIpCiApCiAKIChkZW55IG1hY2gtbG9v
a3VwICh3aXRoIHRlbGVtZXRyeSkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQb29sLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJv
Y2Vzc1Bvb2wuaAkocmV2aXNpb24gMjU4NjU0KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Bvb2wuaAkod29ya2luZyBjb3B5KQpAQCAtNjk5LDE0ICs2OTksMTQgQEAgcHJp
dmF0ZToKICNpZiBFTkFCTEUoV0VCUFJPQ0VTU19XSU5ET1dTRVJWRVJfQkxPQ0tJTkcpCiAgICAg
UmV0YWluUHRyPE5TT2JqZWN0PiBtX3Njcm9sbGVyU3R5bGVOb3RpZmljYXRpb25PYnNlcnZlcjsK
ICNlbmRpZgotICAgIFJldGFpblB0cjxOU09iamVjdD4gbV9hY3RpdmF0aW9uT2JzZXJ2ZXI7Ci0g
ICAgUmV0YWluUHRyPE5TT2JqZWN0PiBtX2RlYWN0aXZhdGlvbk9ic2VydmVyOwogCiAgICAgc3Rk
Ojp1bmlxdWVfcHRyPEhpZ2hQZXJmb3JtYW5jZUdyYXBoaWNzVXNhZ2VTYW1wbGVyPiBtX2hpZ2hQ
ZXJmb3JtYW5jZUdyYXBoaWNzVXNhZ2VTYW1wbGVyOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxQZXJB
Y3Rpdml0eVN0YXRlQ1BVVXNhZ2VTYW1wbGVyPiBtX3BlckFjdGl2aXR5U3RhdGVDUFVVc2FnZVNh
bXBsZXI7CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIFJldGFpblB0cjxOU09i
amVjdD4gbV9hY3RpdmF0aW9uT2JzZXJ2ZXI7CisgICAgUmV0YWluUHRyPE5TT2JqZWN0PiBtX2Rl
YWN0aXZhdGlvbk9ic2VydmVyOwogICAgIFJldGFpblB0cjxOU09iamVjdD4gbV9hY2Nlc3NpYmls
aXR5RW5hYmxlZE9ic2VydmVyOwogI2VuZGlmCiAKQEAgLTgxMSwxMCArODExLDYgQEAgcHJpdmF0
ZToKICAgICBib29sIG1faXNEZWxheWVkV2ViUHJvY2Vzc0xhdW5jaERpc2FibGVkIHsgZmFsc2Ug
fTsKICNlbmRpZgogICAgIGJvb2wgbV91c2VTZXBhcmF0ZVNlcnZpY2VXb3JrZXJQcm9jZXNzIHsg
ZmFsc2UgfTsKLQotI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIFJldGFpblB0cjxXS1ByZWZlcmVu
Y2VPYnNlcnZlcj4gbV9wcmVmZXJlbmNlT2JzZXJ2ZXI7Ci0jZW5kaWYKIH07CiAKIHRlbXBsYXRl
PHR5cGVuYW1lIFQ+CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9QcmVmZXJl
bmNlT2JzZXJ2ZXIubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvUHJlZmVyZW5jZU9ic2VydmVyLm1tCShyZXZpc2lvbiAyNTg2NTQpCisrKyBTb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Db2NvYS9QcmVmZXJlbmNlT2JzZXJ2ZXIubW0JKHdvcmtpbmcgY29weSkK
QEAgLTExMyw5MSArMTEzLDMwIEBAICsgKHZvaWQpc3dpenpsZVJlZ2lzdGVyRGVmYXVsdHMKIC0g
KGluc3RhbmNldHlwZSlpbml0CiB7CiAgICAgc3RkOjppbml0aWFsaXplcl9saXN0PE5TU3RyaW5n
Kj4gZG9tYWlucyA9IHsKLSAgICAgICAgQCJjb20uYXBwbGUuQWNjZXNzaWJpbGl0eSIsCiAjaWYg
UExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICAgICAgQCJjb20uYXBwbGUuQWNjZXNzaWJpbGl0eSIs
CiAgICAgICAgIEAiY29tLmFwcGxlLkFkTGliIiwKLSAgICAgICAgQCJjb20uYXBwbGUuQ0ZOZXR3
b3JrIiwKLSAgICAgICAgQCJjb20uYXBwbGUuRW1vamlQcmVmZXJlbmNlcyIsCi0gICAgICAgIEAi
Y29tLmFwcGxlLkZvbnRQYXJzZXIiLAotICAgICAgICBAImNvbS5hcHBsZS5JbWFnZUlPIiwKLSAg
ICAgICAgQCJjb20uYXBwbGUuSW5wdXRNb2RlUHJlZmVyZW5jZXMiLAotI2Vsc2UKLSAgICAgICAg
QCJjb20uYXBwbGUuQVRTIiwKLSAgICAgICAgQCJjb20uYXBwbGUuQ29yZUdyYXBoaWNzIiwKLSAg
ICAgICAgQCJjb20uYXBwbGUuRG93bmxvYWRBc3Nlc3NtZW50IiwKLSAgICAgICAgQCJjb20uYXBw
bGUuSElUb29sYm94IiwKLSNlbmRpZgotICAgICAgICBAImNvbS5hcHBsZS5MYXVuY2hTZXJ2aWNl
cyIsCi0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICAgICAgQCJjb20uYXBwbGUuTWV0YWwi
LAotICAgICAgICBAImNvbS5hcHBsZS5Nb2JpbGVBc3NldCIsCiAgICAgICAgIEAiY29tLmFwcGxl
LlByZWZlcmVuY2VzIiwKLSAgICAgICAgQCJjb20uYXBwbGUuU3BlYWtTZWxlY3Rpb24iLAogICAg
ICAgICBAImNvbS5hcHBsZS5VSUtpdCIsCi0gICAgICAgIEAiY29tLmFwcGxlLlZvaWNlT3ZlclRv
dWNoIiwKLSNlbHNlCi0gICAgICAgIEAiY29tLmFwcGxlLk11bHRpdG91Y2hTdXBwb3J0IgotICAg
ICAgICBAImNvbS5hcHBsZS5TZXJ2aWNlc01lbnUuU2VydmljZXMiCi0gICAgICAgIEAiY29tLmFw
cGxlLlZpZXdCcmlkZ2UiCi0jZW5kaWYKLSAgICAgICAgQCJjb20uYXBwbGUuV2ViRm91bmRhdGlv
biIsCi0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICAgICAgQCJjb20uYXBwbGUuV2ViS2l0
LldlYkNvbnRlbnQiLAotICAgICAgICBAImNvbS5hcHBsZS5XZWJVSSIsCi0gICAgICAgIEAiY29t
LmFwcGxlLmFpcnBsYXkiLAotICAgICAgICBAImNvbS5hcHBsZS5hcHBsZWpwZWciLAotICAgICAg
ICBAImNvbS5hcHBsZS5hdWRpby52aXJ0dWFsYXVkaW8iLAogICAgICAgICBAImNvbS5hcHBsZS5h
dmZhdWRpbyIsCi0jZW5kaWYKLSAgICAgICAgQCJjb20uYXBwbGUuYXZmb3VuZGF0aW9uIiwKLSAg
ICAgICAgQCJjb20uYXBwbGUuYXZmb3VuZGF0aW9uLmZyZWNlbnRzIiwKLSAgICAgICAgQCJjb20u
YXBwbGUuYXZmb3VuZGF0aW9uLnZpZGVvcGVyZm9ybWFuY2VodWQiLAotI2lmIFBMQVRGT1JNKElP
U19GQU1JTFkpCi0gICAgICAgIEAiY29tLmFwcGxlLmF2a2l0IiwKLSAgICAgICAgQCJjb20uYXBw
bGUuY29yZWFuaW1hdGlvbiIsCi0gICAgICAgIEAiY29tLmFwcGxlLmNvcmVhdWRpbyIsCi0jZW5k
aWYKLSAgICAgICAgQCJjb20uYXBwbGUuY29yZW1lZGlhIiwKLSNpZiBQTEFURk9STShJT1NfRkFN
SUxZKQotICAgICAgICBAImNvbS5hcHBsZS5jb3JldmlkZW8iLAotICAgICAgICBAImNvbS5hcHBs
ZS5kYSIsCi0gICAgICAgIEAiY29tLmFwcGxlLmhhbmd0cmFjZXIiLAotICAgICAgICBAImNvbS5h
cHBsZS5pbmRpZ28iLAotICAgICAgICBAImNvbS5hcHBsZS5pb2tpdC5JT01vYmlsZUdyYXBoaWNz
RmFtaWx5IiwKICAgICAgICAgQCJjb20uYXBwbGUuaXR1bmVzc3RvcmVkIiwKLSAgICAgICAgQCJj
b20uYXBwbGUua2V5Ym9hcmQiLAotI2Vsc2UKLSAgICAgICAgQCJjb20uYXBwbGUuY3J5cHRvIiwK
LSAgICAgICAgQCJjb20uYXBwbGUuZHJpdmVyLkFwcGxlQmx1ZXRvb3RoTXVsdGl0b3VjaC5tb3Vz
ZSIsCi0gICAgICAgIEAiY29tLmFwcGxlLmRyaXZlci5BcHBsZUJsdWV0b290aE11bHRpdG91Y2gu
dHJhY2twYWQiLAotICAgICAgICBAImNvbS5hcHBsZS5kcml2ZXIuQXBwbGVISURNb3VzZSIKLSNl
bmRpZgotICAgICAgICBAImNvbS5hcHBsZS5sb29rdXAuc2hhcmVkIiwKLSAgICAgICAgQCJjb20u
YXBwbGUubWVkaWFhY2Nlc3NpYmlsaXR5IiwKLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAg
ICAgICBAImNvbS5hcHBsZS5tZWRpYWFjY2Vzc2liaWxpdHkucHVibGljIiwKICAgICAgICAgQCJj
b20uYXBwbGUubWVkaWFyZW1vdGUiLAotICAgICAgICBAImNvbS5hcHBsZS5tb2JpbGVpcG9kIiwK
LSAgICAgICAgQCJjb20uYXBwbGUubXQiLAotI2Vsc2UKLSAgICAgICAgQCJjb20uYXBwbGUubmV0
d29ya0Nvbm5lY3QiCi0jZW5kaWYKLSAgICAgICAgQCJjb20uYXBwbGUub3BlbmdsIiwKLSNpZiBQ
TEFURk9STShJT1NfRkFNSUxZKQogICAgICAgICBAImNvbS5hcHBsZS5wcmVmZXJlbmNlcy5zb3Vu
ZHMiLAotICAgICAgICBAImNvbS5hcHBsZS5zZWN1cml0eSIsCiAgICAgICAgIEAiY29tLmFwcGxl
LnZvaWNlc2VydmljZXMiLAotICAgICAgICBAImNvbS5hcHBsZS52b2ljZXNlcnZpY2VzLmxvZ2dp
bmciLAorICAgICAgICBAImtDRlByZWZlcmVuY2VzQW55QXBwbGljYXRpb24iLAogI2Vsc2UKKyAg
ICAgICAgQCJjb20uYXBwbGUuQ29yZUdyYXBoaWNzIiwKKyAgICAgICAgQCJjb20uYXBwbGUuSElU
b29sYm94IiwKKyAgICAgICAgQCJjb20uYXBwbGUuU2VydmljZXNNZW51LlNlcnZpY2VzIiwKKyAg
ICAgICAgQCJjb20uYXBwbGUuVmlld0JyaWRnZSIsCisgICAgICAgIEAiY29tLmFwcGxlLmF2Zm91
bmRhdGlvbiIsCisgICAgICAgIEAiY29tLmFwcGxlLmF2Zm91bmRhdGlvbi52aWRlb3BlcmZvcm1h
bmNlaHVkIiwKKyAgICAgICAgQCJjb20uYXBwbGUuZHJpdmVyLkFwcGxlQmx1ZXRvb3RoTXVsdGl0
b3VjaC5tb3VzZSIsCisgICAgICAgIEAiY29tLmFwcGxlLmRyaXZlci5BcHBsZUJsdWV0b290aE11
bHRpdG91Y2gudHJhY2twYWQiLAorICAgICAgICBAImNvbS5hcHBsZS5tZWRpYWFjY2Vzc2liaWxp
dHkiLAogICAgICAgICBAImNvbS5hcHBsZS5zcGVlY2gudm9pY2UucHJlZnMiLAotICAgICAgICBA
ImNvbS5hcHBsZS5zeXN0ZW1zb3VuZCIsCiAgICAgICAgIEAiY29tLmFwcGxlLnVuaXZlcnNhbGFj
Y2VzcyIsCi0gICAgICAgIEAiY29tLm52aWRpYS5PcGVuR0wiLAotICAgICAgICBAImVkdS5taXQu
S2VyYmVyb3MiLAotI2VuZGlmCiAgICAgICAgIEAia0NGUHJlZmVyZW5jZXNBbnlBcHBsaWNhdGlv
biIsCi0jaWYgIVBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgICAgIEAicGJzIiwKICNlbmRpZgog
ICAgIH07CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQ
b29sQ29jb2EubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2Ev
V2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQkocmV2aXNpb24gMjU4NjU0KQorKysgU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQkod29ya2luZyBjb3B5KQpA
QCAtMTczLDE0ICsxNzMsNiBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxp
emUoCiAgICAgICAgIGluc3RhbGxNZW1vcnlQcmVzc3VyZUhhbmRsZXIoKTsKIAogICAgIHNldExl
Z2FjeUN1c3RvbVByb3RvY29sTWFuYWdlckNsaWVudChtYWtlVW5pcXVlPExlZ2FjeUN1c3RvbVBy
b3RvY29sTWFuYWdlckNsaWVudD4oKSk7Ci0KLSNpZiBFTkFCTEUoQ0ZQUkVGU19ESVJFQ1RfTU9E
RSkKLSAgICBbV0tQcmVmZXJlbmNlT2JzZXJ2ZXIgc3dpenpsZVJlZ2lzdGVyRGVmYXVsdHNdOwot
ICAgIGRpc3BhdGNoX2FzeW5jKGRpc3BhdGNoX2dldF9nbG9iYWxfcXVldWUoUU9TX0NMQVNTX0JB
Q0tHUk9VTkQsIDApLCBeewotICAgICAgICAvLyBTdGFydCBvYnNlcnZpbmcgcHJlZmVyZW5jZSBj
aGFuZ2VzLgotICAgICAgICBbV0tQcmVmZXJlbmNlT2JzZXJ2ZXIgc2hhcmVkSW5zdGFuY2VdOwot
ICAgIH0pOwotI2VuZGlmCiB9CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQpAQCAtNjUzLDYg
KzY0NSwxMSBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpyZWdpc3Rlck5vdGlmaWNhdGlvCiAKICAg
ICBtX2FjdGl2YXRpb25PYnNlcnZlciA9IFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENl
bnRlcl0gYWRkT2JzZXJ2ZXJGb3JOYW1lOk5TQXBwbGljYXRpb25EaWRCZWNvbWVBY3RpdmVOb3Rp
ZmljYXRpb24gb2JqZWN0Ok5TQXBwIHF1ZXVlOltOU09wZXJhdGlvblF1ZXVlIGN1cnJlbnRRdWV1
ZV0gdXNpbmdCbG9jazpeKE5TTm90aWZpY2F0aW9uICpub3RpZmljYXRpb24pIHsKICAgICAgICAg
c2V0QXBwbGljYXRpb25Jc0FjdGl2ZSh0cnVlKTsKKyNpZiBFTkFCTEUoQ0ZQUkVGU19ESVJFQ1Rf
TU9ERSkKKyAgICAgICAgICAgIFtXS1ByZWZlcmVuY2VPYnNlcnZlciBzd2l6emxlUmVnaXN0ZXJE
ZWZhdWx0c107CisgICAgICAgICAgICAvLyBTdGFydCBvYnNlcnZpbmcgcHJlZmVyZW5jZSBjaGFu
Z2VzLgorICAgICAgICAgICAgW1dLUHJlZmVyZW5jZU9ic2VydmVyIHNoYXJlZEluc3RhbmNlXTsK
KyNlbmRpZgogICAgIH1dOwogCiAgICAgbV9kZWFjdGl2YXRpb25PYnNlcnZlciA9IFtbTlNOb3Rp
ZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gYWRkT2JzZXJ2ZXJGb3JOYW1lOk5TQXBwbGlj
YXRpb25EaWRSZXNpZ25BY3RpdmVOb3RpZmljYXRpb24gb2JqZWN0Ok5TQXBwIHF1ZXVlOltOU09w
ZXJhdGlvblF1ZXVlIGN1cnJlbnRRdWV1ZV0gdXNpbmdCbG9jazpeKE5TTm90aWZpY2F0aW9uICpu
b3RpZmljYXRpb24pIHsKQEAgLTY3Myw2ICs2NzAsMTUgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6
cmVnaXN0ZXJOb3RpZmljYXRpbwogICAgICAgICAgICAgbV9wcm9jZXNzZXNbaV0tPnVuYmxvY2tB
Y2Nlc3NpYmlsaXR5U2VydmVySWZOZWVkZWQoKTsKICAgICAgICAgfQogICAgIH1dOworICAgIG1f
YWN0aXZhdGlvbk9ic2VydmVyID0gW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVy
XSBhZGRPYnNlcnZlckZvck5hbWU6QCJVSUFwcGxpY2F0aW9uRGlkQmVjb21lQWN0aXZlTm90aWZp
Y2F0aW9uIiBvYmplY3Q6bmlsIHF1ZXVlOltOU09wZXJhdGlvblF1ZXVlIGN1cnJlbnRRdWV1ZV0g
dXNpbmdCbG9jazpeKE5TTm90aWZpY2F0aW9uICpub3RpZmljYXRpb24pIHsKKyNpZiBFTkFCTEUo
Q0ZQUkVGU19ESVJFQ1RfTU9ERSkKKyAgICAgICAgICAgIFtXS1ByZWZlcmVuY2VPYnNlcnZlciBz
d2l6emxlUmVnaXN0ZXJEZWZhdWx0c107CisgICAgICAgICAgICAvLyBTdGFydCBvYnNlcnZpbmcg
cHJlZmVyZW5jZSBjaGFuZ2VzLgorICAgICAgICAgICAgW1dLUHJlZmVyZW5jZU9ic2VydmVyIHNo
YXJlZEluc3RhbmNlXTsKKyNlbmRpZgorICAgIH1dOworICAgIG1fZGVhY3RpdmF0aW9uT2JzZXJ2
ZXIgPSBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIGFkZE9ic2VydmVyRm9y
TmFtZTpAIlVJQXBwbGljYXRpb25EaWRFbnRlckJhY2tncm91bmROb3RpZmljYXRpb24iIG9iamVj
dDpuaWwgcXVldWU6W05TT3BlcmF0aW9uUXVldWUgY3VycmVudFF1ZXVlXSB1c2luZ0Jsb2NrOl4o
TlNOb3RpZmljYXRpb24gKm5vdGlmaWNhdGlvbikgeworICAgIH1dOwogI2VuZGlmIC8vICFQTEFU
Rk9STShJT1NfRkFNSUxZKQogfQogCkBAIC02ODgsOCArNjk0LDYgQEAgdm9pZCBXZWJQcm9jZXNz
UG9vbDo6dW5yZWdpc3Rlck5vdGlmaWNhdAogI2lmIEVOQUJMRShXRUJQUk9DRVNTX1dJTkRPV1NF
UlZFUl9CTE9DS0lORykKICAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJd
IHJlbW92ZU9ic2VydmVyOm1fc2Nyb2xsZXJTdHlsZU5vdGlmaWNhdGlvbk9ic2VydmVyLmdldCgp
XTsKICNlbmRpZgotICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gcmVt
b3ZlT2JzZXJ2ZXI6bV9hY3RpdmF0aW9uT2JzZXJ2ZXIuZ2V0KCldOwotICAgIFtbTlNOb3RpZmlj
YXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gcmVtb3ZlT2JzZXJ2ZXI6bV9kZWFjdGl2YXRpb25P
YnNlcnZlci5nZXQoKV07CiAjZWxpZiAhUExBVEZPUk0oTUFDQ0FUQUxZU1QpCiAgICAgQ0ZOb3Rp
ZmljYXRpb25DZW50ZXJSZW1vdmVPYnNlcnZlcihDRk5vdGlmaWNhdGlvbkNlbnRlckdldERhcndp
bk5vdGlmeUNlbnRlcigpLCB0aGlzLCBzdGF0aWNfY2FzdDxDRlN0cmluZ1JlZj4oVUlCYWNrbGln
aHRMZXZlbENoYW5nZWROb3RpZmljYXRpb24pICwgbnVsbHB0cik7CiAjaWYgUExBVEZPUk0oSU9T
KQpAQCAtNjk5LDYgKzcwMyw4IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnVucmVnaXN0ZXJOb3Rp
ZmljYXQKICNlbmRpZiAvLyBQTEFURk9STShJT1MpCiAgICAgW1tOU05vdGlmaWNhdGlvbkNlbnRl
ciBkZWZhdWx0Q2VudGVyXSByZW1vdmVPYnNlcnZlcjptX2FjY2Vzc2liaWxpdHlFbmFibGVkT2Jz
ZXJ2ZXIuZ2V0KCldOwogI2VuZGlmIC8vICFQTEFURk9STShJT1NfRkFNSUxZKQorICAgIFtbTlNO
b3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gcmVtb3ZlT2JzZXJ2ZXI6bV9hY3RpdmF0
aW9uT2JzZXJ2ZXIuZ2V0KCldOworICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENl
bnRlcl0gcmVtb3ZlT2JzZXJ2ZXI6bV9kZWFjdGl2YXRpb25PYnNlcnZlci5nZXQoKV07CiB9CiAK
IHN0YXRpYyBDRlVSTFN0b3JhZ2VTZXNzaW9uUmVmIHByaXZhdGVCcm93c2luZ1Nlc3Npb24oKQpJ
bmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvbS5hcHBsZS5XZWJQcm9jZXNzLnNiLmlu
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb20uYXBwbGUuV2ViUHJv
Y2Vzcy5zYi5pbgkocmV2aXNpb24gMjU4NjU0KQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L2NvbS5hcHBsZS5XZWJQcm9jZXNzLnNiLmluCSh3b3JraW5nIGNvcHkpCkBAIC02NzgsNyArNjc4
LDYgQEAKICAgICAod2l0aCByZXBvcnQpICh3aXRoIHRlbGVtZXRyeSkKICNlbmRpZgogICAgIChn
bG9iYWwtbmFtZSAiY29tLmFwcGxlLlBvd2VyTWFuYWdlbWVudC5jb250cm9sIikKLSAgICAoZ2xv
YmFsLW5hbWUgImNvbS5hcHBsZS5jZnByZWZzZC5kYWVtb24iKQogICAgIChnbG9iYWwtbmFtZSAi
Y29tLmFwcGxlLmNvcmVzZXJ2aWNlcy5sYXVuY2hzZXJ2aWNlc2QiKQogICAgIChnbG9iYWwtbmFt
ZSAiY29tLmFwcGxlLmxzZC5tYXBkYiIpCiAgICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUudHJ1
c3RkLmFnZW50IikK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>393909</attachid>
            <date>2020-03-18 15:34:46 -0700</date>
            <delta_ts>2020-03-19 10:24:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209244-20200318153445.patch</filename>
            <type>text/plain</type>
            <size>11117</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyNTg2NjApCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDIwLTAzLTE4ICBQZXIgQXJuZSBWb2xsYW4gIDxw
dm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIEZpeCBsYXVuY2ggdGltZSByZWdy
ZXNzaW9uIHdpdGggQ0YgcHJlZnMgZGlyZWN0IG1vZGUgZW5hYmxlZAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA5MjQ0CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmUtZW5hYmxlIENGIHByZWZzIGRpcmVj
dCBtb2RlLgorCisgICAgICAgICogd3RmL1BsYXRmb3JtRW5hYmxlLmg6CisKIDIwMjAtMDMtMTgg
IE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdS
RVNTSU9OKHIyNTQzODkpOiBDb3Jkb3ZhIHRocm93cyBhbiBleGNlcHRpb24gYmVjYXVzZSBpdCBl
eHBlY3RzIGEgaHlwaGVuIGluc2lkZSBuYXZpZ2F0b3IubG9jYWxlCkluZGV4OiBTb3VyY2UvV1RG
L3d0Zi9QbGF0Zm9ybUVuYWJsZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL1BsYXRm
b3JtRW5hYmxlLmgJKHJldmlzaW9uIDI1ODY2MCkKKysrIFNvdXJjZS9XVEYvd3RmL1BsYXRmb3Jt
RW5hYmxlLmgJKHdvcmtpbmcgY29weSkKQEAgLTg3MSw0ICs4NzEsNCBAQAogI2Vycm9yICJFTkFC
TEUoV0VCR0wyKSByZXF1aXJlcyBFTkFCTEUoV0VCR0wpIgogI2VuZGlmCiAKLSNkZWZpbmUgRU5B
QkxFX0NGUFJFRlNfRElSRUNUX01PREUgMAorI2RlZmluZSBFTkFCTEVfQ0ZQUkVGU19ESVJFQ1Rf
TU9ERSAxCkluZGV4OiBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZwkocmV2aXNpb24gMjU4NjYwKQorKysgU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyMiBAQAorMjAyMC0wMy0xOCAgUGVy
IEFybmUgVm9sbGFuICA8cHZvbGxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBGaXgg
bGF1bmNoIHRpbWUgcmVncmVzc2lvbiB3aXRoIENGIHByZWZzIGRpcmVjdCBtb2RlIGVuYWJsZWQK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwOTI0NAor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjA1NDIxNDk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2hlbiBDRiBwcmVmcyBkaXJlY3QgbW9kZSB3YXMg
ZW5hYmxlZCBpbiBodHRwczovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMjU4MDY0L3dlYmtp
dCwgaXQgaW50cm9kdWNlZAorICAgICAgICBhIHNpZ25pZmljYW50IGxhdW5jaCB0aW1lIHJlZ3Jl
c3Npb24uIFRoaXMgcmVncmVzc2lvbiBzaG91bGQgYmUgZml4ZWQuCisKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQ29jb2EvUHJlZmVyZW5jZU9ic2VydmVyLm1tOgorICAgICAgICAoLVtXS1ByZWZlcmVu
Y2VPYnNlcnZlciBpbml0XSk6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQ
b29sQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUlu
aXRpYWxpemUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6cmVnaXN0ZXJOb3Rp
ZmljYXRpb25PYnNlcnZlcnMpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6dW5y
ZWdpc3Rlck5vdGlmaWNhdGlvbk9ic2VydmVycyk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQb29sLmg6CisKIDIwMjAtMDMtMTggIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBh
cHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTiAocjI1NzIxNCk6IFRhcmdldGVkIHByZXZp
ZXcgYW5pbWF0ZXMgdG8gdGhlIHdyb25nIHBsYWNlIHdoZW4gZHJvcHBpbmcgaW4gZWRpdGFibGUg
Y29udGVudApJbmRleDogU291cmNlL1dlYktpdC9SZXNvdXJjZXMvU2FuZGJveFByb2ZpbGVzL2lv
cy9jb20uYXBwbGUuV2ViS2l0LldlYkNvbnRlbnQuc2IKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdC9SZXNvdXJjZXMvU2FuZGJveFByb2ZpbGVzL2lvcy9jb20uYXBwbGUuV2ViS2l0LldlYkNv
bnRlbnQuc2IJKHJldmlzaW9uIDI1ODY2MCkKKysrIFNvdXJjZS9XZWJLaXQvUmVzb3VyY2VzL1Nh
bmRib3hQcm9maWxlcy9pb3MvY29tLmFwcGxlLldlYktpdC5XZWJDb250ZW50LnNiCSh3b3JraW5n
IGNvcHkpCkBAIC01MzYsNyArNTM2LDYgQEAKIChhbGxvdyBtYWNoLWxvb2t1cAogICAgIChnbG9i
YWwtbmFtZSAiY29tLmFwcGxlLmxvZ2QiKQogICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLmxv
Z2QuZXZlbnRzIikKLSAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS5jZnByZWZzZC5kYWVtb24i
KQogKQogCiAoZGVueSBtYWNoLWxvb2t1cCAod2l0aCB0ZWxlbWV0cnkpCkluZGV4OiBTb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgJKHJldmlzaW9uIDI1ODY2MCkKKysrIFNv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgJKHdvcmtpbmcgY29weSkKQEAg
LTgxMSwxMCArODExLDYgQEAgcHJpdmF0ZToKICAgICBib29sIG1faXNEZWxheWVkV2ViUHJvY2Vz
c0xhdW5jaERpc2FibGVkIHsgZmFsc2UgfTsKICNlbmRpZgogICAgIGJvb2wgbV91c2VTZXBhcmF0
ZVNlcnZpY2VXb3JrZXJQcm9jZXNzIHsgZmFsc2UgfTsKLQotI2lmIFBMQVRGT1JNKENPQ09BKQot
ICAgIFJldGFpblB0cjxXS1ByZWZlcmVuY2VPYnNlcnZlcj4gbV9wcmVmZXJlbmNlT2JzZXJ2ZXI7
Ci0jZW5kaWYKIH07CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CkluZGV4OiBTb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9QcmVmZXJlbmNlT2JzZXJ2ZXIuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9QcmVmZXJlbmNlT2JzZXJ2ZXIuaAkocmV2aXNpb24g
MjU4NjYwKQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvUHJlZmVyZW5jZU9ic2Vy
dmVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ2LDYgKzQ2LDUgQEAgX19hdHRyaWJ1dGVfXygodmlz
aWJpbGl0eSgiZGVmYXVsdCIpKSkKICAgICBWZWN0b3I8UmV0YWluUHRyPFdLVXNlckRlZmF1bHRz
Pj4gbV91c2VyRGVmYXVsdHM7CiB9CiArIChpZClzaGFyZWRJbnN0YW5jZTsKLSsgKHZvaWQpc3dp
enpsZVJlZ2lzdGVyRGVmYXVsdHM7CiAtICh2b2lkKXByZWZlcmVuY2VEaWRDaGFuZ2U6KE5TU3Ry
aW5nICopZG9tYWluIGtleTooTlNTdHJpbmcgKilrZXkgZW5jb2RlZFZhbHVlOihOU1N0cmluZyAq
KWVuY29kZWRWYWx1ZTsKIEBlbmQKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29h
L1ByZWZlcmVuY2VPYnNlcnZlci5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Db2NvYS9QcmVmZXJlbmNlT2JzZXJ2ZXIubW0JKHJldmlzaW9uIDI1ODY2MCkKKysrIFNv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1ByZWZlcmVuY2VPYnNlcnZlci5tbQkod29ya2lu
ZyBjb3B5KQpAQCAtMjgsMzEgKzI4LDEyIEBACiAKICNpbXBvcnQgIldlYlByb2Nlc3NQb29sLmgi
CiAKLSNpbXBvcnQgPHd0Zi9PYmpDUnVudGltZUV4dHJhcy5oPgotCi1zdGF0aWMgSU1QIHJlZ2lz
dGVyRGVmYXVsdHNPcmlnaW5hbCA9IG5pbDsKLXN0YXRpYyBib29sIHJlZ2lzdGVyaW5nRGVmYXVs
dHMgPSBmYWxzZTsKLQotc3RhdGljIHZvaWQgcmVnaXN0ZXJEZWZhdWx0c092ZXJyaWRlKGlkIHNl
bGYsIFNFTCBzZWxlY3RvciwgTlNEaWN0aW9uYXJ5PE5TU3RyaW5nICosIGlkPiAqZGljdGlvbmFy
eSkKLXsKLSAgICByZWdpc3RlcmluZ0RlZmF1bHRzID0gdHJ1ZTsKLSAgICBpZiAocmVnaXN0ZXJE
ZWZhdWx0c09yaWdpbmFsKQotICAgICAgICB3dGZDYWxsSU1QPHZvaWQ+KHJlZ2lzdGVyRGVmYXVs
dHNPcmlnaW5hbCwgc2VsZiwgc2VsZWN0b3IsIGRpY3Rpb25hcnkpOwotICAgIHJlZ2lzdGVyaW5n
RGVmYXVsdHMgPSBmYWxzZTsKLX0KLQogQGltcGxlbWVudGF0aW9uIFdLVXNlckRlZmF1bHRzCiAK
IC0gKHZvaWQpX25vdGlmeU9ic2VydmVyc09mQ2hhbmdlRnJvbVZhbHVlc0ZvcktleXM6KE5TRGlj
dGlvbmFyeTxOU1N0cmluZyAqLCBpZD4gKilvbGRWYWx1ZXMgdG9WYWx1ZXNGb3JLZXlzOihOU0Rp
Y3Rpb25hcnk8TlNTdHJpbmcgKiwgaWQ+ICopbmV3VmFsdWVzCiB7Ci0gICAgaWYgKHJlZ2lzdGVy
aW5nRGVmYXVsdHMpCi0gICAgICAgIHJldHVybjsKLQogICAgIFtzdXBlciBfbm90aWZ5T2JzZXJ2
ZXJzT2ZDaGFuZ2VGcm9tVmFsdWVzRm9yS2V5czpvbGRWYWx1ZXMgdG9WYWx1ZXNGb3JLZXlzOm5l
d1ZhbHVlc107CiAKLSAgICBpZiAoW29sZFZhbHVlcyBpc0VxdWFsVG9EaWN0aW9uYXJ5Om5ld1Zh
bHVlc10pCi0gICAgICAgIHJldHVybjsKLQogICAgIGZvciAoTlNTdHJpbmcgKmtleSBpbiBvbGRW
YWx1ZXMpIHsKICAgICAgICAgaWQgb2xkVmFsdWUgPSBvbGRWYWx1ZXNba2V5XTsKICAgICAgICAg
aWQgbmV3VmFsdWUgPSBuZXdWYWx1ZXNba2V5XTsKQEAgLTEwMSwxMDMgKzgyLDMzIEBAICsgKGlk
KXNoYXJlZEluc3RhbmNlCiAgICAgcmV0dXJuIGluc3RhbmNlOwogfQogCi0rICh2b2lkKXN3aXp6
bGVSZWdpc3RlckRlZmF1bHRzCi17Ci0gICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIG9uY2VGbGFn
OwotICAgIHN0ZDo6Y2FsbF9vbmNlKG9uY2VGbGFnLCBbXSB7Ci0gICAgICAgIE1ldGhvZCByZWdp
c3RlckRlZmF1bHRzTWV0aG9kID0gY2xhc3NfZ2V0SW5zdGFuY2VNZXRob2Qob2JqY19nZXRDbGFz
cygiTlNVc2VyRGVmYXVsdHMiKSwgQHNlbGVjdG9yKHJlZ2lzdGVyRGVmYXVsdHM6KSk7Ci0gICAg
ICAgIHJlZ2lzdGVyRGVmYXVsdHNPcmlnaW5hbCA9IG1ldGhvZF9zZXRJbXBsZW1lbnRhdGlvbihy
ZWdpc3RlckRlZmF1bHRzTWV0aG9kLCAoSU1QKXJlZ2lzdGVyRGVmYXVsdHNPdmVycmlkZSk7Ci0g
ICAgfSk7Ci19Ci0KIC0gKGluc3RhbmNldHlwZSlpbml0CiB7CiAgICAgc3RkOjppbml0aWFsaXpl
cl9saXN0PE5TU3RyaW5nKj4gZG9tYWlucyA9IHsKLSAgICAgICAgQCJjb20uYXBwbGUuQWNjZXNz
aWJpbGl0eSIsCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICAgICAgQCJjb20uYXBwbGUu
QWNjZXNzaWJpbGl0eSIsCiAgICAgICAgIEAiY29tLmFwcGxlLkFkTGliIiwKLSAgICAgICAgQCJj
b20uYXBwbGUuQ0ZOZXR3b3JrIiwKLSAgICAgICAgQCJjb20uYXBwbGUuRW1vamlQcmVmZXJlbmNl
cyIsCi0gICAgICAgIEAiY29tLmFwcGxlLkZvbnRQYXJzZXIiLAotICAgICAgICBAImNvbS5hcHBs
ZS5JbWFnZUlPIiwKLSAgICAgICAgQCJjb20uYXBwbGUuSW5wdXRNb2RlUHJlZmVyZW5jZXMiLAot
I2Vsc2UKLSAgICAgICAgQCJjb20uYXBwbGUuQVRTIiwKLSAgICAgICAgQCJjb20uYXBwbGUuQ29y
ZUdyYXBoaWNzIiwKLSAgICAgICAgQCJjb20uYXBwbGUuRG93bmxvYWRBc3Nlc3NtZW50IiwKLSAg
ICAgICAgQCJjb20uYXBwbGUuSElUb29sYm94IiwKLSNlbmRpZgotICAgICAgICBAImNvbS5hcHBs
ZS5MYXVuY2hTZXJ2aWNlcyIsCi0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICAgICAgQCJj
b20uYXBwbGUuTWV0YWwiLAotICAgICAgICBAImNvbS5hcHBsZS5Nb2JpbGVBc3NldCIsCiAgICAg
ICAgIEAiY29tLmFwcGxlLlByZWZlcmVuY2VzIiwKLSAgICAgICAgQCJjb20uYXBwbGUuU3BlYWtT
ZWxlY3Rpb24iLAogICAgICAgICBAImNvbS5hcHBsZS5VSUtpdCIsCi0gICAgICAgIEAiY29tLmFw
cGxlLlZvaWNlT3ZlclRvdWNoIiwKLSNlbHNlCi0gICAgICAgIEAiY29tLmFwcGxlLk11bHRpdG91
Y2hTdXBwb3J0IgotICAgICAgICBAImNvbS5hcHBsZS5TZXJ2aWNlc01lbnUuU2VydmljZXMiCi0g
ICAgICAgIEAiY29tLmFwcGxlLlZpZXdCcmlkZ2UiCi0jZW5kaWYKLSAgICAgICAgQCJjb20uYXBw
bGUuV2ViRm91bmRhdGlvbiIsCi0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICAgICAgQCJj
b20uYXBwbGUuV2ViS2l0LldlYkNvbnRlbnQiLAotICAgICAgICBAImNvbS5hcHBsZS5XZWJVSSIs
Ci0gICAgICAgIEAiY29tLmFwcGxlLmFpcnBsYXkiLAotICAgICAgICBAImNvbS5hcHBsZS5hcHBs
ZWpwZWciLAotICAgICAgICBAImNvbS5hcHBsZS5hdWRpby52aXJ0dWFsYXVkaW8iLAogICAgICAg
ICBAImNvbS5hcHBsZS5hdmZhdWRpbyIsCi0jZW5kaWYKLSAgICAgICAgQCJjb20uYXBwbGUuYXZm
b3VuZGF0aW9uIiwKLSAgICAgICAgQCJjb20uYXBwbGUuYXZmb3VuZGF0aW9uLmZyZWNlbnRzIiwK
LSAgICAgICAgQCJjb20uYXBwbGUuYXZmb3VuZGF0aW9uLnZpZGVvcGVyZm9ybWFuY2VodWQiLAot
I2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgICAgIEAiY29tLmFwcGxlLmF2a2l0IiwKLSAg
ICAgICAgQCJjb20uYXBwbGUuY29yZWFuaW1hdGlvbiIsCi0gICAgICAgIEAiY29tLmFwcGxlLmNv
cmVhdWRpbyIsCi0jZW5kaWYKLSAgICAgICAgQCJjb20uYXBwbGUuY29yZW1lZGlhIiwKLSNpZiBQ
TEFURk9STShJT1NfRkFNSUxZKQotICAgICAgICBAImNvbS5hcHBsZS5jb3JldmlkZW8iLAotICAg
ICAgICBAImNvbS5hcHBsZS5kYSIsCi0gICAgICAgIEAiY29tLmFwcGxlLmhhbmd0cmFjZXIiLAot
ICAgICAgICBAImNvbS5hcHBsZS5pbmRpZ28iLAotICAgICAgICBAImNvbS5hcHBsZS5pb2tpdC5J
T01vYmlsZUdyYXBoaWNzRmFtaWx5IiwKICAgICAgICAgQCJjb20uYXBwbGUuaXR1bmVzc3RvcmVk
IiwKLSAgICAgICAgQCJjb20uYXBwbGUua2V5Ym9hcmQiLAotI2Vsc2UKLSAgICAgICAgQCJjb20u
YXBwbGUuY3J5cHRvIiwKLSAgICAgICAgQCJjb20uYXBwbGUuZHJpdmVyLkFwcGxlQmx1ZXRvb3Ro
TXVsdGl0b3VjaC5tb3VzZSIsCi0gICAgICAgIEAiY29tLmFwcGxlLmRyaXZlci5BcHBsZUJsdWV0
b290aE11bHRpdG91Y2gudHJhY2twYWQiLAotICAgICAgICBAImNvbS5hcHBsZS5kcml2ZXIuQXBw
bGVISURNb3VzZSIKLSNlbmRpZgotICAgICAgICBAImNvbS5hcHBsZS5sb29rdXAuc2hhcmVkIiwK
LSAgICAgICAgQCJjb20uYXBwbGUubWVkaWFhY2Nlc3NpYmlsaXR5IiwKLSNpZiBQTEFURk9STShJ
T1NfRkFNSUxZKQotICAgICAgICBAImNvbS5hcHBsZS5tZWRpYWFjY2Vzc2liaWxpdHkucHVibGlj
IiwKICAgICAgICAgQCJjb20uYXBwbGUubWVkaWFyZW1vdGUiLAotICAgICAgICBAImNvbS5hcHBs
ZS5tb2JpbGVpcG9kIiwKLSAgICAgICAgQCJjb20uYXBwbGUubXQiLAotI2Vsc2UKLSAgICAgICAg
QCJjb20uYXBwbGUubmV0d29ya0Nvbm5lY3QiCi0jZW5kaWYKLSAgICAgICAgQCJjb20uYXBwbGUu
b3BlbmdsIiwKLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgICAgICBAImNvbS5hcHBsZS5w
cmVmZXJlbmNlcy5zb3VuZHMiLAotICAgICAgICBAImNvbS5hcHBsZS5zZWN1cml0eSIsCiAgICAg
ICAgIEAiY29tLmFwcGxlLnZvaWNlc2VydmljZXMiLAotICAgICAgICBAImNvbS5hcHBsZS52b2lj
ZXNlcnZpY2VzLmxvZ2dpbmciLAorICAgICAgICBAImtDRlByZWZlcmVuY2VzQW55QXBwbGljYXRp
b24iLAogI2Vsc2UKKyAgICAgICAgQCJjb20uYXBwbGUuQ29yZUdyYXBoaWNzIiwKKyAgICAgICAg
QCJjb20uYXBwbGUuSElUb29sYm94IiwKKyAgICAgICAgQCJjb20uYXBwbGUuU2VydmljZXNNZW51
LlNlcnZpY2VzIiwKKyAgICAgICAgQCJjb20uYXBwbGUuVmlld0JyaWRnZSIsCisgICAgICAgIEAi
Y29tLmFwcGxlLmF2Zm91bmRhdGlvbiIsCisgICAgICAgIEAiY29tLmFwcGxlLmF2Zm91bmRhdGlv
bi52aWRlb3BlcmZvcm1hbmNlaHVkIiwKKyAgICAgICAgQCJjb20uYXBwbGUuZHJpdmVyLkFwcGxl
Qmx1ZXRvb3RoTXVsdGl0b3VjaC5tb3VzZSIsCisgICAgICAgIEAiY29tLmFwcGxlLmRyaXZlci5B
cHBsZUJsdWV0b290aE11bHRpdG91Y2gudHJhY2twYWQiLAorICAgICAgICBAImNvbS5hcHBsZS5t
ZWRpYWFjY2Vzc2liaWxpdHkiLAogICAgICAgICBAImNvbS5hcHBsZS5zcGVlY2gudm9pY2UucHJl
ZnMiLAotICAgICAgICBAImNvbS5hcHBsZS5zeXN0ZW1zb3VuZCIsCiAgICAgICAgIEAiY29tLmFw
cGxlLnVuaXZlcnNhbGFjY2VzcyIsCi0gICAgICAgIEAiY29tLm52aWRpYS5PcGVuR0wiLAotICAg
ICAgICBAImVkdS5taXQuS2VyYmVyb3MiLAotI2VuZGlmCiAgICAgICAgIEAia0NGUHJlZmVyZW5j
ZXNBbnlBcHBsaWNhdGlvbiIsCi0jaWYgIVBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgICAgIEAi
cGJzIiwKICNlbmRpZgogICAgIH07CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Nv
Y29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQkocmV2aXNpb24gMjU4NjYwKQor
KysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQko
d29ya2luZyBjb3B5KQpAQCAtMTczLDE0ICsxNzMsNiBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpw
bGF0Zm9ybUluaXRpYWxpemUoCiAgICAgICAgIGluc3RhbGxNZW1vcnlQcmVzc3VyZUhhbmRsZXIo
KTsKIAogICAgIHNldExlZ2FjeUN1c3RvbVByb3RvY29sTWFuYWdlckNsaWVudChtYWtlVW5pcXVl
PExlZ2FjeUN1c3RvbVByb3RvY29sTWFuYWdlckNsaWVudD4oKSk7Ci0KLSNpZiBFTkFCTEUoQ0ZQ
UkVGU19ESVJFQ1RfTU9ERSkKLSAgICBbV0tQcmVmZXJlbmNlT2JzZXJ2ZXIgc3dpenpsZVJlZ2lz
dGVyRGVmYXVsdHNdOwotICAgIGRpc3BhdGNoX2FzeW5jKGRpc3BhdGNoX2dldF9nbG9iYWxfcXVl
dWUoUU9TX0NMQVNTX0JBQ0tHUk9VTkQsIDApLCBeewotICAgICAgICAvLyBTdGFydCBvYnNlcnZp
bmcgcHJlZmVyZW5jZSBjaGFuZ2VzLgotICAgICAgICBbV0tQcmVmZXJlbmNlT2JzZXJ2ZXIgc2hh
cmVkSW5zdGFuY2VdOwotICAgIH0pOwotI2VuZGlmCiB9CiAKICNpZiBQTEFURk9STShJT1NfRkFN
SUxZKQpAQCAtNDUwLDEzICs0NDIsMTkgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1J
bml0aWFsaXplVwogICAgICAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9y
TWFjaExvb2t1cChzZXJ2aWNlc1tpXSwgV1RGOjpudWxsb3B0LCBwYXJhbWV0ZXJzLm1lZGlhRXh0
ZW5zaW9uSGFuZGxlc1tpXSk7CiAgICAgfQogCi0jaWYgRU5BQkxFKENGUFJFRlNfRElSRUNUX01P
REUpICYmIFBMQVRGT1JNKElPU19GQU1JTFkpCisjaWYgRU5BQkxFKENGUFJFRlNfRElSRUNUX01P
REUpCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBpZiAoX0FYU0FwcGxpY2F0aW9uQWNj
ZXNzaWJpbGl0eUVuYWJsZWQoKSkgewogICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUg
cHJlZmVyZW5jZXNFeHRlbnNpb25IYW5kbGU7CiAgICAgICAgIFNhbmRib3hFeHRlbnNpb246OmNy
ZWF0ZUhhbmRsZUZvck1hY2hMb29rdXAoImNvbS5hcHBsZS5jZnByZWZzZC5kYWVtb24iLCBXVEY6
Om51bGxvcHQsIHByZWZlcmVuY2VzRXh0ZW5zaW9uSGFuZGxlKTsKICAgICAgICAgcGFyYW1ldGVy
cy5wcmVmZXJlbmNlc0V4dGVuc2lvbkhhbmRsZSA9IFdURk1vdmUocHJlZmVyZW5jZXNFeHRlbnNp
b25IYW5kbGUpOwogICAgIH0KICNlbmRpZgorICAgIGRpc3BhdGNoX2FzeW5jKGRpc3BhdGNoX2dl
dF9nbG9iYWxfcXVldWUoRElTUEFUQ0hfUVVFVUVfUFJJT1JJVFlfREVGQVVMVCwgMCksIF57Cisg
ICAgICAgIC8vIFN0YXJ0IG9ic2VydmluZyBwcmVmZXJlbmNlIGNoYW5nZXMuCisgICAgICAgIFtX
S1ByZWZlcmVuY2VPYnNlcnZlciBzaGFyZWRJbnN0YW5jZV07CisgICAgfSk7CisjZW5kaWYKIH0K
IAogdm9pZCBXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXplTmV0d29ya1Byb2Nlc3Mo
TmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvY29tLmFwcGxlLldlYlByb2Nlc3Muc2IuaW4KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvbS5hcHBsZS5XZWJQcm9jZXNzLnNiLmlu
CShyZXZpc2lvbiAyNTg2NjApCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29tLmFwcGxl
LldlYlByb2Nlc3Muc2IuaW4JKHdvcmtpbmcgY29weSkKQEAgLTY3OCw3ICs2NzgsNiBAQAogICAg
ICh3aXRoIHJlcG9ydCkgKHdpdGggdGVsZW1ldHJ5KQogI2VuZGlmCiAgICAgKGdsb2JhbC1uYW1l
ICJjb20uYXBwbGUuUG93ZXJNYW5hZ2VtZW50LmNvbnRyb2wiKQotICAgIChnbG9iYWwtbmFtZSAi
Y29tLmFwcGxlLmNmcHJlZnNkLmRhZW1vbiIpCiAgICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUu
Y29yZXNlcnZpY2VzLmxhdW5jaHNlcnZpY2VzZCIpCiAgICAgKGdsb2JhbC1uYW1lICJjb20uYXBw
bGUubHNkLm1hcGRiIikKICAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS50cnVzdGQuYWdlbnQi
KQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>393993</attachid>
            <date>2020-03-19 10:24:06 -0700</date>
            <delta_ts>2020-03-19 10:53:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209244-20200319102405.patch</filename>
            <type>text/plain</type>
            <size>21384</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyNTg2OTgpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDIwLTAzLTE4ICBQZXIgQXJuZSBWb2xsYW4gIDxw
dm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIEZpeCBsYXVuY2ggdGltZSByZWdy
ZXNzaW9uIHdpdGggQ0YgcHJlZnMgZGlyZWN0IG1vZGUgZW5hYmxlZAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA5MjQ0CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmUtZW5hYmxlIENGIHByZWZzIGRpcmVj
dCBtb2RlLgorCisgICAgICAgICogd3RmL1BsYXRmb3JtRW5hYmxlLmg6CisKIDIwMjAtMDMtMTkg
IENoYXJsaWUgVHVybmVyICA8Y3R1cm5lckBpZ2FsaWEuY29tPgogCiAgICAgICAgIEZpeCBtYW55
IHdhcm5pbmdzIHdpdGggQ2xhbmcgNy4wIG9uIEdUSyB4ODYtNjQgaW4gRGVidWcuCkluZGV4OiBT
b3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJsZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYv
d3RmL1BsYXRmb3JtRW5hYmxlLmgJKHJldmlzaW9uIDI1ODY5OCkKKysrIFNvdXJjZS9XVEYvd3Rm
L1BsYXRmb3JtRW5hYmxlLmgJKHdvcmtpbmcgY29weSkKQEAgLTg3MSw0ICs4NzEsOCBAQAogI2Vy
cm9yICJFTkFCTEUoV0VCR0wyKSByZXF1aXJlcyBFTkFCTEUoV0VCR0wpIgogI2VuZGlmCiAKKyNp
ZiBQTEFURk9STShDT0NPQSkKKyNkZWZpbmUgRU5BQkxFX0NGUFJFRlNfRElSRUNUX01PREUgMQor
I2Vsc2UKICNkZWZpbmUgRU5BQkxFX0NGUFJFRlNfRElSRUNUX01PREUgMAorI2VuZGlmCkluZGV4
OiBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwkocmV2aXNpb24gMjU4Njk4KQorKysgU291cmNlL1dlYktpdC9DaGFuZ2VMb2cJKHdv
cmtpbmcgY29weSkKQEAgLTEsMyArMSwyMiBAQAorMjAyMC0wMy0xOCAgUGVyIEFybmUgVm9sbGFu
ICA8cHZvbGxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBGaXggbGF1bmNoIHRpbWUg
cmVncmVzc2lvbiB3aXRoIENGIHByZWZzIGRpcmVjdCBtb2RlIGVuYWJsZWQKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwOTI0NAorICAgICAgICA8cmRh
cjovL3Byb2JsZW0vNjA1NDIxNDk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgV2hlbiBDRiBwcmVmcyBkaXJlY3QgbW9kZSB3YXMgZW5hYmxlZCBpbiBo
dHRwczovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMjU4MDY0L3dlYmtpdCwgaXQgaW50cm9k
dWNlZAorICAgICAgICBhIHNpZ25pZmljYW50IGxhdW5jaCB0aW1lIHJlZ3Jlc3Npb24uIFRoaXMg
cmVncmVzc2lvbiBzaG91bGQgYmUgZml4ZWQuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2Ev
UHJlZmVyZW5jZU9ic2VydmVyLm1tOgorICAgICAgICAoLVtXS1ByZWZlcmVuY2VPYnNlcnZlciBp
bml0XSk6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW06
CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemUpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6cmVnaXN0ZXJOb3RpZmljYXRpb25PYnNl
cnZlcnMpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6dW5yZWdpc3Rlck5vdGlm
aWNhdGlvbk9ic2VydmVycyk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmg6
CisKIDIwMjAtMDMtMTkgIENoYXJsaWUgVHVybmVyICA8Y3R1cm5lckBpZ2FsaWEuY29tPgogCiAg
ICAgICAgIEZpeCBtYW55IHdhcm5pbmdzIHdpdGggQ2xhbmcgNy4wIG9uIEdUSyB4ODYtNjQgaW4g
RGVidWcuCkluZGV4OiBTb3VyY2UvV2ViS2l0L1Jlc291cmNlcy9TYW5kYm94UHJvZmlsZXMvaW9z
L2NvbS5hcHBsZS5XZWJLaXQuV2ViQ29udGVudC5zYgo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0L1Jlc291cmNlcy9TYW5kYm94UHJvZmlsZXMvaW9zL2NvbS5hcHBsZS5XZWJLaXQuV2ViQ29u
dGVudC5zYgkocmV2aXNpb24gMjU4Njk4KQorKysgU291cmNlL1dlYktpdC9SZXNvdXJjZXMvU2Fu
ZGJveFByb2ZpbGVzL2lvcy9jb20uYXBwbGUuV2ViS2l0LldlYkNvbnRlbnQuc2IJKHdvcmtpbmcg
Y29weSkKQEAgLTUzNiw3ICs1MzYsNiBAQAogKGFsbG93IG1hY2gtbG9va3VwCiAgICAgKGdsb2Jh
bC1uYW1lICJjb20uYXBwbGUubG9nZCIpCiAgICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUubG9n
ZC5ldmVudHMiKQotICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLmNmcHJlZnNkLmRhZW1vbiIp
CiApCiAKIChkZW55IG1hY2gtbG9va3VwICh3aXRoIHRlbGVtZXRyeSkKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAkocmV2aXNpb24gMjU4Njk4KQorKysgU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAkod29ya2luZyBjb3B5KQpAQCAt
ODExLDEwICs4MTEsNiBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9pc0RlbGF5ZWRXZWJQcm9jZXNz
TGF1bmNoRGlzYWJsZWQgeyBmYWxzZSB9OwogI2VuZGlmCiAgICAgYm9vbCBtX3VzZVNlcGFyYXRl
U2VydmljZVdvcmtlclByb2Nlc3MgeyBmYWxzZSB9OwotCi0jaWYgUExBVEZPUk0oQ09DT0EpCi0g
ICAgUmV0YWluUHRyPFdLUHJlZmVyZW5jZU9ic2VydmVyPiBtX3ByZWZlcmVuY2VPYnNlcnZlcjsK
LSNlbmRpZgogfTsKIAogdGVtcGxhdGU8dHlwZW5hbWUgVD4KSW5kZXg6IFNvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0NvY29hL1ByZWZlcmVuY2VPYnNlcnZlci5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1ByZWZlcmVuY2VPYnNlcnZlci5oCShyZXZpc2lvbiAy
NTg2OTgpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9QcmVmZXJlbmNlT2JzZXJ2
ZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNDYsNiArNDYsNSBAQCBfX2F0dHJpYnV0ZV9fKCh2aXNp
YmlsaXR5KCJkZWZhdWx0IikpKQogICAgIFZlY3RvcjxSZXRhaW5QdHI8V0tVc2VyRGVmYXVsdHM+
PiBtX3VzZXJEZWZhdWx0czsKIH0KICsgKGlkKXNoYXJlZEluc3RhbmNlOwotKyAodm9pZClzd2l6
emxlUmVnaXN0ZXJEZWZhdWx0czsKIC0gKHZvaWQpcHJlZmVyZW5jZURpZENoYW5nZTooTlNTdHJp
bmcgKilkb21haW4ga2V5OihOU1N0cmluZyAqKWtleSBlbmNvZGVkVmFsdWU6KE5TU3RyaW5nICop
ZW5jb2RlZFZhbHVlOwogQGVuZApJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2Ev
UHJlZmVyZW5jZU9ic2VydmVyLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0NvY29hL1ByZWZlcmVuY2VPYnNlcnZlci5tbQkocmV2aXNpb24gMjU4Njk4KQorKysgU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvUHJlZmVyZW5jZU9ic2VydmVyLm1tCSh3b3JraW5n
IGNvcHkpCkBAIC0yOCwzMSArMjgsMTIgQEAKIAogI2ltcG9ydCAiV2ViUHJvY2Vzc1Bvb2wuaCIK
IAotI2ltcG9ydCA8d3RmL09iakNSdW50aW1lRXh0cmFzLmg+Ci0KLXN0YXRpYyBJTVAgcmVnaXN0
ZXJEZWZhdWx0c09yaWdpbmFsID0gbmlsOwotc3RhdGljIGJvb2wgcmVnaXN0ZXJpbmdEZWZhdWx0
cyA9IGZhbHNlOwotCi1zdGF0aWMgdm9pZCByZWdpc3RlckRlZmF1bHRzT3ZlcnJpZGUoaWQgc2Vs
ZiwgU0VMIHNlbGVjdG9yLCBOU0RpY3Rpb25hcnk8TlNTdHJpbmcgKiwgaWQ+ICpkaWN0aW9uYXJ5
KQotewotICAgIHJlZ2lzdGVyaW5nRGVmYXVsdHMgPSB0cnVlOwotICAgIGlmIChyZWdpc3RlckRl
ZmF1bHRzT3JpZ2luYWwpCi0gICAgICAgIHd0ZkNhbGxJTVA8dm9pZD4ocmVnaXN0ZXJEZWZhdWx0
c09yaWdpbmFsLCBzZWxmLCBzZWxlY3RvciwgZGljdGlvbmFyeSk7Ci0gICAgcmVnaXN0ZXJpbmdE
ZWZhdWx0cyA9IGZhbHNlOwotfQotCiBAaW1wbGVtZW50YXRpb24gV0tVc2VyRGVmYXVsdHMKIAog
LSAodm9pZClfbm90aWZ5T2JzZXJ2ZXJzT2ZDaGFuZ2VGcm9tVmFsdWVzRm9yS2V5czooTlNEaWN0
aW9uYXJ5PE5TU3RyaW5nICosIGlkPiAqKW9sZFZhbHVlcyB0b1ZhbHVlc0ZvcktleXM6KE5TRGlj
dGlvbmFyeTxOU1N0cmluZyAqLCBpZD4gKiluZXdWYWx1ZXMKIHsKLSAgICBpZiAocmVnaXN0ZXJp
bmdEZWZhdWx0cykKLSAgICAgICAgcmV0dXJuOwotCiAgICAgW3N1cGVyIF9ub3RpZnlPYnNlcnZl
cnNPZkNoYW5nZUZyb21WYWx1ZXNGb3JLZXlzOm9sZFZhbHVlcyB0b1ZhbHVlc0ZvcktleXM6bmV3
VmFsdWVzXTsKIAotICAgIGlmIChbb2xkVmFsdWVzIGlzRXF1YWxUb0RpY3Rpb25hcnk6bmV3VmFs
dWVzXSkKLSAgICAgICAgcmV0dXJuOwotCiAgICAgZm9yIChOU1N0cmluZyAqa2V5IGluIG9sZFZh
bHVlcykgewogICAgICAgICBpZCBvbGRWYWx1ZSA9IG9sZFZhbHVlc1trZXldOwogICAgICAgICBp
ZCBuZXdWYWx1ZSA9IG5ld1ZhbHVlc1trZXldOwpAQCAtMTAxLDEwMyArODIsMzMgQEAgKyAoaWQp
c2hhcmVkSW5zdGFuY2UKICAgICByZXR1cm4gaW5zdGFuY2U7CiB9CiAKLSsgKHZvaWQpc3dpenps
ZVJlZ2lzdGVyRGVmYXVsdHMKLXsKLSAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgb25jZUZsYWc7
Ci0gICAgc3RkOjpjYWxsX29uY2Uob25jZUZsYWcsIFtdIHsKLSAgICAgICAgTWV0aG9kIHJlZ2lz
dGVyRGVmYXVsdHNNZXRob2QgPSBjbGFzc19nZXRJbnN0YW5jZU1ldGhvZChvYmpjX2dldENsYXNz
KCJOU1VzZXJEZWZhdWx0cyIpLCBAc2VsZWN0b3IocmVnaXN0ZXJEZWZhdWx0czopKTsKLSAgICAg
ICAgcmVnaXN0ZXJEZWZhdWx0c09yaWdpbmFsID0gbWV0aG9kX3NldEltcGxlbWVudGF0aW9uKHJl
Z2lzdGVyRGVmYXVsdHNNZXRob2QsIChJTVApcmVnaXN0ZXJEZWZhdWx0c092ZXJyaWRlKTsKLSAg
ICB9KTsKLX0KLQogLSAoaW5zdGFuY2V0eXBlKWluaXQKIHsKICAgICBzdGQ6OmluaXRpYWxpemVy
X2xpc3Q8TlNTdHJpbmcqPiBkb21haW5zID0gewotICAgICAgICBAImNvbS5hcHBsZS5BY2Nlc3Np
YmlsaXR5IiwKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgICAgICBAImNvbS5hcHBsZS5B
Y2Nlc3NpYmlsaXR5IiwKICAgICAgICAgQCJjb20uYXBwbGUuQWRMaWIiLAotICAgICAgICBAImNv
bS5hcHBsZS5DRk5ldHdvcmsiLAotICAgICAgICBAImNvbS5hcHBsZS5FbW9qaVByZWZlcmVuY2Vz
IiwKLSAgICAgICAgQCJjb20uYXBwbGUuRm9udFBhcnNlciIsCi0gICAgICAgIEAiY29tLmFwcGxl
LkltYWdlSU8iLAotICAgICAgICBAImNvbS5hcHBsZS5JbnB1dE1vZGVQcmVmZXJlbmNlcyIsCi0j
ZWxzZQotICAgICAgICBAImNvbS5hcHBsZS5BVFMiLAotICAgICAgICBAImNvbS5hcHBsZS5Db3Jl
R3JhcGhpY3MiLAotICAgICAgICBAImNvbS5hcHBsZS5Eb3dubG9hZEFzc2Vzc21lbnQiLAotICAg
ICAgICBAImNvbS5hcHBsZS5ISVRvb2xib3giLAotI2VuZGlmCi0gICAgICAgIEAiY29tLmFwcGxl
LkxhdW5jaFNlcnZpY2VzIiwKLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgICAgICBAImNv
bS5hcHBsZS5NZXRhbCIsCi0gICAgICAgIEAiY29tLmFwcGxlLk1vYmlsZUFzc2V0IiwKICAgICAg
ICAgQCJjb20uYXBwbGUuUHJlZmVyZW5jZXMiLAotICAgICAgICBAImNvbS5hcHBsZS5TcGVha1Nl
bGVjdGlvbiIsCiAgICAgICAgIEAiY29tLmFwcGxlLlVJS2l0IiwKLSAgICAgICAgQCJjb20uYXBw
bGUuVm9pY2VPdmVyVG91Y2giLAotI2Vsc2UKLSAgICAgICAgQCJjb20uYXBwbGUuTXVsdGl0b3Vj
aFN1cHBvcnQiCi0gICAgICAgIEAiY29tLmFwcGxlLlNlcnZpY2VzTWVudS5TZXJ2aWNlcyIKLSAg
ICAgICAgQCJjb20uYXBwbGUuVmlld0JyaWRnZSIKLSNlbmRpZgotICAgICAgICBAImNvbS5hcHBs
ZS5XZWJGb3VuZGF0aW9uIiwKLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgICAgICBAImNv
bS5hcHBsZS5XZWJLaXQuV2ViQ29udGVudCIsCi0gICAgICAgIEAiY29tLmFwcGxlLldlYlVJIiwK
LSAgICAgICAgQCJjb20uYXBwbGUuYWlycGxheSIsCi0gICAgICAgIEAiY29tLmFwcGxlLmFwcGxl
anBlZyIsCi0gICAgICAgIEAiY29tLmFwcGxlLmF1ZGlvLnZpcnR1YWxhdWRpbyIsCiAgICAgICAg
IEAiY29tLmFwcGxlLmF2ZmF1ZGlvIiwKLSNlbmRpZgotICAgICAgICBAImNvbS5hcHBsZS5hdmZv
dW5kYXRpb24iLAotICAgICAgICBAImNvbS5hcHBsZS5hdmZvdW5kYXRpb24uZnJlY2VudHMiLAot
ICAgICAgICBAImNvbS5hcHBsZS5hdmZvdW5kYXRpb24udmlkZW9wZXJmb3JtYW5jZWh1ZCIsCi0j
aWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICAgICAgQCJjb20uYXBwbGUuYXZraXQiLAotICAg
ICAgICBAImNvbS5hcHBsZS5jb3JlYW5pbWF0aW9uIiwKLSAgICAgICAgQCJjb20uYXBwbGUuY29y
ZWF1ZGlvIiwKLSNlbmRpZgotICAgICAgICBAImNvbS5hcHBsZS5jb3JlbWVkaWEiLAotI2lmIFBM
QVRGT1JNKElPU19GQU1JTFkpCi0gICAgICAgIEAiY29tLmFwcGxlLmNvcmV2aWRlbyIsCi0gICAg
ICAgIEAiY29tLmFwcGxlLmRhIiwKLSAgICAgICAgQCJjb20uYXBwbGUuaGFuZ3RyYWNlciIsCi0g
ICAgICAgIEAiY29tLmFwcGxlLmluZGlnbyIsCi0gICAgICAgIEAiY29tLmFwcGxlLmlva2l0LklP
TW9iaWxlR3JhcGhpY3NGYW1pbHkiLAogICAgICAgICBAImNvbS5hcHBsZS5pdHVuZXNzdG9yZWQi
LAotICAgICAgICBAImNvbS5hcHBsZS5rZXlib2FyZCIsCi0jZWxzZQotICAgICAgICBAImNvbS5h
cHBsZS5jcnlwdG8iLAotICAgICAgICBAImNvbS5hcHBsZS5kcml2ZXIuQXBwbGVCbHVldG9vdGhN
dWx0aXRvdWNoLm1vdXNlIiwKLSAgICAgICAgQCJjb20uYXBwbGUuZHJpdmVyLkFwcGxlQmx1ZXRv
b3RoTXVsdGl0b3VjaC50cmFja3BhZCIsCi0gICAgICAgIEAiY29tLmFwcGxlLmRyaXZlci5BcHBs
ZUhJRE1vdXNlIgotI2VuZGlmCi0gICAgICAgIEAiY29tLmFwcGxlLmxvb2t1cC5zaGFyZWQiLAot
ICAgICAgICBAImNvbS5hcHBsZS5tZWRpYWFjY2Vzc2liaWxpdHkiLAotI2lmIFBMQVRGT1JNKElP
U19GQU1JTFkpCi0gICAgICAgIEAiY29tLmFwcGxlLm1lZGlhYWNjZXNzaWJpbGl0eS5wdWJsaWMi
LAogICAgICAgICBAImNvbS5hcHBsZS5tZWRpYXJlbW90ZSIsCi0gICAgICAgIEAiY29tLmFwcGxl
Lm1vYmlsZWlwb2QiLAotICAgICAgICBAImNvbS5hcHBsZS5tdCIsCi0jZWxzZQotICAgICAgICBA
ImNvbS5hcHBsZS5uZXR3b3JrQ29ubmVjdCIKLSNlbmRpZgotICAgICAgICBAImNvbS5hcHBsZS5v
cGVuZ2wiLAotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgICAgIEAiY29tLmFwcGxlLnBy
ZWZlcmVuY2VzLnNvdW5kcyIsCi0gICAgICAgIEAiY29tLmFwcGxlLnNlY3VyaXR5IiwKICAgICAg
ICAgQCJjb20uYXBwbGUudm9pY2VzZXJ2aWNlcyIsCi0gICAgICAgIEAiY29tLmFwcGxlLnZvaWNl
c2VydmljZXMubG9nZ2luZyIsCisgICAgICAgIEAia0NGUHJlZmVyZW5jZXNBbnlBcHBsaWNhdGlv
biIsCiAjZWxzZQorICAgICAgICBAImNvbS5hcHBsZS5Db3JlR3JhcGhpY3MiLAorICAgICAgICBA
ImNvbS5hcHBsZS5ISVRvb2xib3giLAorICAgICAgICBAImNvbS5hcHBsZS5TZXJ2aWNlc01lbnUu
U2VydmljZXMiLAorICAgICAgICBAImNvbS5hcHBsZS5WaWV3QnJpZGdlIiwKKyAgICAgICAgQCJj
b20uYXBwbGUuYXZmb3VuZGF0aW9uIiwKKyAgICAgICAgQCJjb20uYXBwbGUuYXZmb3VuZGF0aW9u
LnZpZGVvcGVyZm9ybWFuY2VodWQiLAorICAgICAgICBAImNvbS5hcHBsZS5kcml2ZXIuQXBwbGVC
bHVldG9vdGhNdWx0aXRvdWNoLm1vdXNlIiwKKyAgICAgICAgQCJjb20uYXBwbGUuZHJpdmVyLkFw
cGxlQmx1ZXRvb3RoTXVsdGl0b3VjaC50cmFja3BhZCIsCisgICAgICAgIEAiY29tLmFwcGxlLm1l
ZGlhYWNjZXNzaWJpbGl0eSIsCiAgICAgICAgIEAiY29tLmFwcGxlLnNwZWVjaC52b2ljZS5wcmVm
cyIsCi0gICAgICAgIEAiY29tLmFwcGxlLnN5c3RlbXNvdW5kIiwKICAgICAgICAgQCJjb20uYXBw
bGUudW5pdmVyc2FsYWNjZXNzIiwKLSAgICAgICAgQCJjb20ubnZpZGlhLk9wZW5HTCIsCi0gICAg
ICAgIEAiZWR1Lm1pdC5LZXJiZXJvcyIsCi0jZW5kaWYKICAgICAgICAgQCJrQ0ZQcmVmZXJlbmNl
c0FueUFwcGxpY2F0aW9uIiwKLSNpZiAhUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICAgICAgQCJw
YnMiLAogI2VuZGlmCiAgICAgfTsKIApJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tCShyZXZpc2lvbiAyNTg2OTgpCisr
KyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tCSh3
b3JraW5nIGNvcHkpCkBAIC0xNzMsMTQgKzE3Myw2IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnBs
YXRmb3JtSW5pdGlhbGl6ZSgKICAgICAgICAgaW5zdGFsbE1lbW9yeVByZXNzdXJlSGFuZGxlcigp
OwogCiAgICAgc2V0TGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyQ2xpZW50KG1ha2VVbmlxdWU8
TGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyQ2xpZW50PigpKTsKLQotI2lmIEVOQUJMRShDRlBS
RUZTX0RJUkVDVF9NT0RFKQotICAgIFtXS1ByZWZlcmVuY2VPYnNlcnZlciBzd2l6emxlUmVnaXN0
ZXJEZWZhdWx0c107Ci0gICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0Y2hfZ2V0X2dsb2JhbF9xdWV1
ZShRT1NfQ0xBU1NfQkFDS0dST1VORCwgMCksIF57Ci0gICAgICAgIC8vIFN0YXJ0IG9ic2Vydmlu
ZyBwcmVmZXJlbmNlIGNoYW5nZXMuCi0gICAgICAgIFtXS1ByZWZlcmVuY2VPYnNlcnZlciBzaGFy
ZWRJbnN0YW5jZV07Ci0gICAgfSk7Ci0jZW5kaWYKIH0KIAogI2lmIFBMQVRGT1JNKElPU19GQU1J
TFkpCkBAIC00NTAsMTMgKzQ0MiwxOSBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUlu
aXRpYWxpemVXCiAgICAgICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JN
YWNoTG9va3VwKHNlcnZpY2VzW2ldLCBXVEY6Om51bGxvcHQsIHBhcmFtZXRlcnMubWVkaWFFeHRl
bnNpb25IYW5kbGVzW2ldKTsKICAgICB9CiAKLSNpZiBFTkFCTEUoQ0ZQUkVGU19ESVJFQ1RfTU9E
RSkgJiYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyNpZiBFTkFCTEUoQ0ZQUkVGU19ESVJFQ1RfTU9E
RSkKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIGlmIChfQVhTQXBwbGljYXRpb25BY2Nl
c3NpYmlsaXR5RW5hYmxlZCgpKSB7CiAgICAgICAgIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBw
cmVmZXJlbmNlc0V4dGVuc2lvbkhhbmRsZTsKICAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y3Jl
YXRlSGFuZGxlRm9yTWFjaExvb2t1cCgiY29tLmFwcGxlLmNmcHJlZnNkLmRhZW1vbiIsIFdURjo6
bnVsbG9wdCwgcHJlZmVyZW5jZXNFeHRlbnNpb25IYW5kbGUpOwogICAgICAgICBwYXJhbWV0ZXJz
LnByZWZlcmVuY2VzRXh0ZW5zaW9uSGFuZGxlID0gV1RGTW92ZShwcmVmZXJlbmNlc0V4dGVuc2lv
bkhhbmRsZSk7CiAgICAgfQogI2VuZGlmCisgICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0Y2hfZ2V0
X2dsb2JhbF9xdWV1ZShESVNQQVRDSF9RVUVVRV9QUklPUklUWV9ERUZBVUxULCAwKSwgXnsKKyAg
ICAgICAgLy8gU3RhcnQgb2JzZXJ2aW5nIHByZWZlcmVuY2UgY2hhbmdlcy4KKyAgICAgICAgW1dL
UHJlZmVyZW5jZU9ic2VydmVyIHNoYXJlZEluc3RhbmNlXTsKKyAgICB9KTsKKyNlbmRpZgogfQog
CiB2b2lkIFdlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemVOZXR3b3JrUHJvY2VzcyhO
ZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycykKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb20uYXBwbGUuV2ViUHJvY2Vzcy5zYi5pbgo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29tLmFwcGxlLldlYlByb2Nlc3Muc2IuaW4J
KHJldmlzaW9uIDI1ODY5OCkKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb20uYXBwbGUu
V2ViUHJvY2Vzcy5zYi5pbgkod29ya2luZyBjb3B5KQpAQCAtNjc4LDcgKzY3OCw2IEBACiAgICAg
KHdpdGggcmVwb3J0KSAod2l0aCB0ZWxlbWV0cnkpCiAjZW5kaWYKICAgICAoZ2xvYmFsLW5hbWUg
ImNvbS5hcHBsZS5Qb3dlck1hbmFnZW1lbnQuY29udHJvbCIpCi0gICAgKGdsb2JhbC1uYW1lICJj
b20uYXBwbGUuY2ZwcmVmc2QuZGFlbW9uIikKICAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS5j
b3Jlc2VydmljZXMubGF1bmNoc2VydmljZXNkIikKICAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBs
ZS5sc2QubWFwZGIiKQogICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLnRydXN0ZC5hZ2VudCIp
CkluZGV4OiBUb29scy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvQ2hhbmdlTG9nCShy
ZXZpc2lvbiAyNTg3MDYpCisrKyBUb29scy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEs
MyArMSwxMyBAQAorMjAyMC0wMy0xOSAgUGVyIEFybmUgVm9sbGFuICA8cHZvbGxhbkBhcHBsZS5j
b20+CisKKyAgICAgICAgW0NvY29hXSBGaXggbGF1bmNoIHRpbWUgcmVncmVzc2lvbiB3aXRoIENG
IHByZWZzIGRpcmVjdCBtb2RlIGVuYWJsZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIwOTI0NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvUHJlZmVyZW5j
ZUNoYW5nZXMubW06CisgICAgICAgIChURVNUKToKKwogMjAyMC0wMy0xOSAgQWFrYXNoIEphaW4g
IDxhYWthc2hfamFpbkBhcHBsZS5jb20+CiAKICAgICAgICAgVXBkYXRlIGJ1aWxkLndlYmtpdC5v
cmcgbGluayBmb3IgRVdTCkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9Q
cmVmZXJlbmNlQ2hhbmdlcy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdC9QcmVmZXJlbmNlQ2hhbmdlcy5tbQkocmV2aXNpb24gMjU4Njk4KQorKysgVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvUHJlZmVyZW5jZUNoYW5nZXMubW0JKHdvcmtp
bmcgY29weSkKQEAgLTQ0LDE1ICs0NCwxOCBAQCAtICh2b2lkKXByZWZlcmVuY2VEaWRDaGFuZ2U6
KE5TU3RyaW5nICopCiB9CiBAZW5kCiAKK3N0YXRpYyBjb25zdCBDRlN0cmluZ1JlZiB0ZXN0S2V5
ID0gQ0ZTVFIoInRlc3RrZXkiKTsKK3N0YXRpYyBjb25zdCBDRlN0cmluZ1JlZiB0ZXN0RG9tYWlu
ID0gQ0ZTVFIoImtDRlByZWZlcmVuY2VzQW55QXBwbGljYXRpb24iKTsKKwogVEVTVChXZWJLaXQs
IFByZWZlcmVuY2VPYnNlcnZlcikKIHsKICAgICBkb25lID0gZmFsc2U7CiAKLSAgICBDRlByZWZl
cmVuY2VzU2V0QXBwVmFsdWUoQ0ZTVFIoInRlc3RrZXkiKSwgQ0ZTVFIoIjEiKSwgQ0ZTVFIoImNv
bS5hcHBsZS5jb3JlbWVkaWEiKSk7CisgICAgQ0ZQcmVmZXJlbmNlc1NldEFwcFZhbHVlKHRlc3RL
ZXksIENGU1RSKCIxIiksIHRlc3REb21haW4pOwogCiAgICAgYXV0byBvYnNlcnZlciA9IGFkb3B0
TlMoW1tXS1Rlc3RQcmVmZXJlbmNlT2JzZXJ2ZXIgYWxsb2NdIGluaXRdKTsKIAotICAgIENGUHJl
ZmVyZW5jZXNTZXRBcHBWYWx1ZShDRlNUUigidGVzdGtleSIpLCBDRlNUUigiMiIpLCBDRlNUUigi
Y29tLmFwcGxlLmNvcmVtZWRpYSIpKTsKKyAgICBDRlByZWZlcmVuY2VzU2V0QXBwVmFsdWUodGVz
dEtleSwgQ0ZTVFIoIjIiKSwgdGVzdERvbWFpbik7CiAKICAgICBUZXN0V2ViS2l0QVBJOjpVdGls
OjpydW4oJmRvbmUpOwogfQpAQCAtNjMsMjIgKzY2LDIyIEBAIFRFU1QoV2ViS2l0LCBQcmVmZXJl
bmNlT2JzZXJ2ZXJBcnJheSkKIAogICAgIE5TQXJyYXkgKmFycmF5ID0gQFtAMSwgQDIsIEAzXTsK
IAotICAgIGF1dG8gdXNlckRlZmF1bHRzID0gYWRvcHROUyhbW05TVXNlckRlZmF1bHRzIGFsbG9j
XSBpbml0V2l0aFN1aXRlTmFtZTpAImNvbS5hcHBsZS5jb3JlbWVkaWEiXSk7Ci0gICAgW3VzZXJE
ZWZhdWx0cy5nZXQoKSBzZXRPYmplY3Q6YXJyYXkgZm9yS2V5OkAidGVzdGtleSJdOworICAgIGF1
dG8gdXNlckRlZmF1bHRzID0gYWRvcHROUyhbW05TVXNlckRlZmF1bHRzIGFsbG9jXSBpbml0V2l0
aFN1aXRlTmFtZTooTlNTdHJpbmcgKil0ZXN0RG9tYWluXSk7CisgICAgW3VzZXJEZWZhdWx0cy5n
ZXQoKSBzZXRPYmplY3Q6YXJyYXkgZm9yS2V5OihOU1N0cmluZyAqKXRlc3RLZXldOwogCiAgICAg
YXV0byBvYnNlcnZlciA9IGFkb3B0TlMoW1tXS1Rlc3RQcmVmZXJlbmNlT2JzZXJ2ZXIgYWxsb2Nd
IGluaXRdKTsKIAogICAgIE5TQXJyYXkgKmNoYW5nZWRBcnJheSA9IEBbQDMsIEAyLCBAMV07Ci0g
ICAgW3VzZXJEZWZhdWx0cy5nZXQoKSBzZXRPYmplY3Q6Y2hhbmdlZEFycmF5IGZvcktleTpAInRl
c3RrZXkiXTsKKyAgICBbdXNlckRlZmF1bHRzLmdldCgpIHNldE9iamVjdDpjaGFuZ2VkQXJyYXkg
Zm9yS2V5OihOU1N0cmluZyAqKXRlc3RLZXldOwogCiAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6
cnVuKCZkb25lKTsKIH0KIAogVEVTVChXZWJLaXQsIFByZWZlcmVuY2VDaGFuZ2VzKQogewotICAg
IENGUHJlZmVyZW5jZXNTZXRBcHBWYWx1ZShDRlNUUigidGVzdGtleSIpLCBDRlNUUigiMSIpLCBD
RlNUUigiY29tLmFwcGxlLmNvcmVtZWRpYSIpKTsKKyAgICBDRlByZWZlcmVuY2VzU2V0QXBwVmFs
dWUodGVzdEtleSwgQ0ZTVFIoIjEiKSwgdGVzdERvbWFpbik7CiAKLSAgICBFWFBFQ1RfRVEoMSwg
Q0ZQcmVmZXJlbmNlc0dldEFwcEludGVnZXJWYWx1ZShDRlNUUigidGVzdGtleSIpLCBDRlNUUigi
Y29tLmFwcGxlLmNvcmVtZWRpYSIpLCBudWxscHRyKSk7CisgICAgRVhQRUNUX0VRKDEsIENGUHJl
ZmVyZW5jZXNHZXRBcHBJbnRlZ2VyVmFsdWUodGVzdEtleSwgdGVzdERvbWFpbiwgbnVsbHB0cikp
OwogCiAgICAgYXV0byBjb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3Vy
YXRpb24gYWxsb2NdIGluaXRdKTsKICAgICBXS1JldGFpblB0cjxXS0NvbnRleHRSZWY+IGNvbnRl
eHQgPSBhZG9wdFdLKFRlc3RXZWJLaXRBUEk6OlV0aWw6OmNyZWF0ZUNvbnRleHRGb3JJbmplY3Rl
ZEJ1bmRsZVRlc3QoIkludGVybmFsc0luamVjdGVkQnVuZGxlVGVzdCIpKTsKQEAgLTg2LDEyICs4
OSwxMyBAQCBURVNUKFdlYktpdCwgUHJlZmVyZW5jZUNoYW5nZXMpCiAgICAgYXV0byB3ZWJWaWV3
ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVj
dCgwLCAwLCAzMDAsIDMwMCkgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uLmdldCgpIGFkZFRv
V2luZG93OllFU10pOwogCiAgICAgYXV0byBwcmVmZXJlbmNlVmFsdWUgPSBbJl0gewotICAgICAg
ICByZXR1cm4gW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAIndpbmRvdy5p
bnRlcm5hbHMucmVhZFByZWZlcmVuY2VJbnRlZ2VyKFwiY29tLmFwcGxlLmNvcmVtZWRpYVwiLCBc
InRlc3RrZXlcIikiXS5pbnRWYWx1ZTsKKyAgICAgICAgTlNTdHJpbmcgKmpzID0gW05TU3RyaW5n
IHN0cmluZ1dpdGhGb3JtYXQ6QCJ3aW5kb3cuaW50ZXJuYWxzLnJlYWRQcmVmZXJlbmNlSW50ZWdl
cihcIiVAXCIsXCIlQFwiIiwgKE5TU3RyaW5nICopdGVzdERvbWFpbiwgKE5TU3RyaW5nICopdGVz
dEtleV07CisgICAgICAgIHJldHVybiBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2Ny
aXB0OmpzXS5pbnRWYWx1ZTsKICAgICB9OwogCiAgICAgRVhQRUNUX0VRKHByZWZlcmVuY2VWYWx1
ZSgpLCAxKTsKIAotICAgIENGUHJlZmVyZW5jZXNTZXRBcHBWYWx1ZShDRlNUUigidGVzdGtleSIp
LCBDRlNUUigiMiIpLCBDRlNUUigiY29tLmFwcGxlLmNvcmVtZWRpYSIpKTsKKyAgICBDRlByZWZl
cmVuY2VzU2V0QXBwVmFsdWUodGVzdEtleSwgQ0ZTVFIoIjIiKSwgdGVzdERvbWFpbik7CiAKICAg
ICBFWFBFQ1RfRVEocHJlZmVyZW5jZVZhbHVlKCksIDIpOwogfQpAQCAtMTAwLDggKzEwNCw4IEBA
IFRFU1QoV2ViS2l0LCBQcmVmZXJlbmNlQ2hhbmdlc0FycmF5KQogewogICAgIE5TQXJyYXkgKmFy
cmF5ID0gQFtAMSwgQDIsIEAzXTsKIAotICAgIGF1dG8gdXNlckRlZmF1bHRzID0gYWRvcHROUyhb
W05TVXNlckRlZmF1bHRzIGFsbG9jXSBpbml0V2l0aFN1aXRlTmFtZTpAImNvbS5hcHBsZS5jb3Jl
bWVkaWEiXSk7Ci0gICAgW3VzZXJEZWZhdWx0cy5nZXQoKSBzZXRPYmplY3Q6YXJyYXkgZm9yS2V5
OkAidGVzdGtleSJdOworICAgIGF1dG8gdXNlckRlZmF1bHRzID0gYWRvcHROUyhbW05TVXNlckRl
ZmF1bHRzIGFsbG9jXSBpbml0V2l0aFN1aXRlTmFtZTooTlNTdHJpbmcgKil0ZXN0RG9tYWluXSk7
CisgICAgW3VzZXJEZWZhdWx0cy5nZXQoKSBzZXRPYmplY3Q6YXJyYXkgZm9yS2V5OihOU1N0cmlu
ZyAqKXRlc3RLZXldOwogCiAgICAgYXV0byBjb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2Vi
Vmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKICAgICBXS1JldGFpblB0cjxXS0NvbnRl
eHRSZWY+IGNvbnRleHQgPSBhZG9wdFdLKFRlc3RXZWJLaXRBUEk6OlV0aWw6OmNyZWF0ZUNvbnRl
eHRGb3JJbmplY3RlZEJ1bmRsZVRlc3QoIkludGVybmFsc0luamVjdGVkQnVuZGxlVGVzdCIpKTsK
QEAgLTEwOSwxMyArMTEzLDE0IEBAIFRFU1QoV2ViS2l0LCBQcmVmZXJlbmNlQ2hhbmdlc0FycmF5
KQogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0
V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgMzAwLCAzMDApIGNvbmZpZ3VyYXRpb246Y29uZmln
dXJhdGlvbi5nZXQoKSBhZGRUb1dpbmRvdzpZRVNdKTsKIAogICAgIGF1dG8gcHJlZmVyZW5jZVZh
bHVlID0gWyZdIHsKLSAgICAgICAgcmV0dXJuIFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0ph
dmFTY3JpcHQ6QCJ3aW5kb3cuaW50ZXJuYWxzLmVuY29kZWRQcmVmZXJlbmNlVmFsdWUoXCJjb20u
YXBwbGUuY29yZW1lZGlhXCIsIFwidGVzdGtleVwiKSJdOworICAgICAgICBOU1N0cmluZyAqanMg
PSBbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpAIndpbmRvdy5pbnRlcm5hbHMuZW5jb2RlZFBy
ZWZlcmVuY2VWYWx1ZShcIiVAXCIsXCIlQFwiIiwgKE5TU3RyaW5nICopdGVzdERvbWFpbiwgKE5T
U3RyaW5nICopdGVzdEtleV07CisgICAgICAgIHJldHVybiBbd2ViVmlldyBzdHJpbmdCeUV2YWx1
YXRpbmdKYXZhU2NyaXB0OmpzXTsKICAgICB9OwogCiAgICAgcHJlZmVyZW5jZVZhbHVlKCk7CiAK
ICAgICBOU0FycmF5ICpjaGFuZ2VkQXJyYXkgPSBAW0AzLCBAMiwgQDFdOwotICAgIFt1c2VyRGVm
YXVsdHMuZ2V0KCkgc2V0T2JqZWN0OmNoYW5nZWRBcnJheSBmb3JLZXk6QCJ0ZXN0a2V5Il07Cisg
ICAgW3VzZXJEZWZhdWx0cy5nZXQoKSBzZXRPYmplY3Q6Y2hhbmdlZEFycmF5IGZvcktleTooTlNT
dHJpbmcgKil0ZXN0S2V5XTsKIAogICAgIGF1dG8gZW5jb2RlZFN0cmluZyA9IHByZWZlcmVuY2VW
YWx1ZSgpOwogICAgIGF1dG8gZW5jb2RlZERhdGEgPSBhZG9wdE5TKFtbTlNEYXRhIGFsbG9jXSBp
bml0V2l0aEJhc2U2NEVuY29kZWRTdHJpbmc6ZW5jb2RlZFN0cmluZyBvcHRpb25zOjBdKTsKQEAg
LTEzNCw4ICsxMzksOCBAQCBURVNUKFdlYktpdCwgUHJlZmVyZW5jZUNoYW5nZXNEaWN0aW9uYXJ5
CiAgICAgICAgIEAiYiIgOiBAMiwKICAgICB9OwogCi0gICAgYXV0byB1c2VyRGVmYXVsdHMgPSBh
ZG9wdE5TKFtbTlNVc2VyRGVmYXVsdHMgYWxsb2NdIGluaXRXaXRoU3VpdGVOYW1lOkAiY29tLmFw
cGxlLmNvcmVtZWRpYSJdKTsKLSAgICBbdXNlckRlZmF1bHRzLmdldCgpIHNldE9iamVjdDpkaWN0
IGZvcktleTpAInRlc3RrZXkiXTsKKyAgICBhdXRvIHVzZXJEZWZhdWx0cyA9IGFkb3B0TlMoW1tO
U1VzZXJEZWZhdWx0cyBhbGxvY10gaW5pdFdpdGhTdWl0ZU5hbWU6KE5TU3RyaW5nICopdGVzdERv
bWFpbl0pOworICAgIFt1c2VyRGVmYXVsdHMuZ2V0KCkgc2V0T2JqZWN0OmRpY3QgZm9yS2V5OihO
U1N0cmluZyAqKXRlc3RLZXldOwogCiAgICAgYXV0byBjb25maWd1cmF0aW9uID0gYWRvcHROUyhb
W1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKICAgICBXS1JldGFpblB0cjxX
S0NvbnRleHRSZWY+IGNvbnRleHQgPSBhZG9wdFdLKFRlc3RXZWJLaXRBUEk6OlV0aWw6OmNyZWF0
ZUNvbnRleHRGb3JJbmplY3RlZEJ1bmRsZVRlc3QoIkludGVybmFsc0luamVjdGVkQnVuZGxlVGVz
dCIpKTsKQEAgLTE0Myw3ICsxNDgsOCBAQCBURVNUKFdlYktpdCwgUHJlZmVyZW5jZUNoYW5nZXNE
aWN0aW9uYXJ5CiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxs
b2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCAzMDAsIDMwMCkgY29uZmlndXJhdGlv
bjpjb25maWd1cmF0aW9uLmdldCgpIGFkZFRvV2luZG93OllFU10pOwogCiAgICAgYXV0byBwcmVm
ZXJlbmNlVmFsdWUgPSBbJl0gewotICAgICAgICByZXR1cm4gW3dlYlZpZXcgc3RyaW5nQnlFdmFs
dWF0aW5nSmF2YVNjcmlwdDpAIndpbmRvdy5pbnRlcm5hbHMuZW5jb2RlZFByZWZlcmVuY2VWYWx1
ZShcImNvbS5hcHBsZS5jb3JlbWVkaWFcIiwgXCJ0ZXN0a2V5XCIpIl07CisgICAgICAgIE5TU3Ry
aW5nICpqcyA9IFtOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAid2luZG93LmludGVybmFscy5l
bmNvZGVkUHJlZmVyZW5jZVZhbHVlKFwiJUBcIixcIiVAXCIiLCAoTlNTdHJpbmcgKil0ZXN0RG9t
YWluLCAoTlNTdHJpbmcgKil0ZXN0S2V5XTsKKyAgICAgICAgcmV0dXJuIFt3ZWJWaWV3IHN0cmlu
Z0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6anNdOwogICAgIH07CiAKICAgICBwcmVmZXJlbmNlVmFs
dWUoKTsKQEAgLTE1Myw3ICsxNTksNyBAQCBURVNUKFdlYktpdCwgUHJlZmVyZW5jZUNoYW5nZXNE
aWN0aW9uYXJ5CiAgICAgICAgIEAiYiIgOiBAMiwKICAgICAgICAgQCJjIiA6IEAzLAogICAgIH07
Ci0gICAgW3VzZXJEZWZhdWx0cy5nZXQoKSBzZXRPYmplY3Q6Y2hhbmdlZERpY3QgZm9yS2V5OkAi
dGVzdGtleSJdOworICAgIFt1c2VyRGVmYXVsdHMuZ2V0KCkgc2V0T2JqZWN0OmNoYW5nZWREaWN0
IGZvcktleTooTlNTdHJpbmcgKil0ZXN0S2V5XTsKIAogICAgIGF1dG8gZW5jb2RlZFN0cmluZyA9
IHByZWZlcmVuY2VWYWx1ZSgpOwogICAgIGF1dG8gZW5jb2RlZERhdGEgPSBhZG9wdE5TKFtbTlNE
YXRhIGFsbG9jXSBpbml0V2l0aEJhc2U2NEVuY29kZWRTdHJpbmc6ZW5jb2RlZFN0cmluZyBvcHRp
b25zOjBdKTsKQEAgLTE2OSw4ICsxNzUsOCBAQCBURVNUKFdlYktpdCwgUHJlZmVyZW5jZUNoYW5n
ZXNEYXRhKQogewogICAgIE5TRGF0YSAqZGF0YSA9IFtOU0RhdGEgZGF0YVdpdGhCeXRlczoiYWJj
IiBsZW5ndGg6M107CiAKLSAgICBhdXRvIHVzZXJEZWZhdWx0cyA9IGFkb3B0TlMoW1tOU1VzZXJE
ZWZhdWx0cyBhbGxvY10gaW5pdFdpdGhTdWl0ZU5hbWU6QCJjb20uYXBwbGUuY29yZW1lZGlhIl0p
OwotICAgIFt1c2VyRGVmYXVsdHMuZ2V0KCkgc2V0T2JqZWN0OmRhdGEgZm9yS2V5OkAidGVzdGtl
eSJdOworICAgIGF1dG8gdXNlckRlZmF1bHRzID0gYWRvcHROUyhbW05TVXNlckRlZmF1bHRzIGFs
bG9jXSBpbml0V2l0aFN1aXRlTmFtZTooTlNTdHJpbmcgKil0ZXN0RG9tYWluXSk7CisgICAgW3Vz
ZXJEZWZhdWx0cy5nZXQoKSBzZXRPYmplY3Q6ZGF0YSBmb3JLZXk6KE5TU3RyaW5nICopdGVzdEtl
eV07CiAKICAgICBhdXRvIGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmln
dXJhdGlvbiBhbGxvY10gaW5pdF0pOwogICAgIFdLUmV0YWluUHRyPFdLQ29udGV4dFJlZj4gY29u
dGV4dCA9IGFkb3B0V0soVGVzdFdlYktpdEFQSTo6VXRpbDo6Y3JlYXRlQ29udGV4dEZvckluamVj
dGVkQnVuZGxlVGVzdCgiSW50ZXJuYWxzSW5qZWN0ZWRCdW5kbGVUZXN0IikpOwpAQCAtMTc4LDEz
ICsxODQsMTQgQEAgVEVTVChXZWJLaXQsIFByZWZlcmVuY2VDaGFuZ2VzRGF0YSkKICAgICBhdXRv
IHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpO
U01ha2VSZWN0KDAsIDAsIDMwMCwgMzAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0
KCkgYWRkVG9XaW5kb3c6WUVTXSk7CiAKICAgICBhdXRvIHByZWZlcmVuY2VWYWx1ZSA9IFsmXSB7
Ci0gICAgICAgIHJldHVybiBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAi
d2luZG93LmludGVybmFscy5lbmNvZGVkUHJlZmVyZW5jZVZhbHVlKFwiY29tLmFwcGxlLmNvcmVt
ZWRpYVwiLCBcInRlc3RrZXlcIikiXTsKKyAgICAgICAgTlNTdHJpbmcgKmpzID0gW05TU3RyaW5n
IHN0cmluZ1dpdGhGb3JtYXQ6QCJ3aW5kb3cuaW50ZXJuYWxzLmVuY29kZWRQcmVmZXJlbmNlVmFs
dWUoXCIlQFwiLFwiJUBcIiIsIChOU1N0cmluZyAqKXRlc3REb21haW4sIChOU1N0cmluZyAqKXRl
c3RLZXldOworICAgICAgICByZXR1cm4gW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNj
cmlwdDpqc107CiAgICAgfTsKIAogICAgIHByZWZlcmVuY2VWYWx1ZSgpOwogCiAgICAgTlNEYXRh
ICpjaGFuZ2VkRGF0YSA9IFtOU0RhdGEgZGF0YVdpdGhCeXRlczoiYWJjZCIgbGVuZ3RoOjRdOwot
ICAgIFt1c2VyRGVmYXVsdHMuZ2V0KCkgc2V0T2JqZWN0OmNoYW5nZWREYXRhIGZvcktleTpAInRl
c3RrZXkiXTsKKyAgICBbdXNlckRlZmF1bHRzLmdldCgpIHNldE9iamVjdDpjaGFuZ2VkRGF0YSBm
b3JLZXk6KE5TU3RyaW5nICopdGVzdEtleV07CiAKICAgICBhdXRvIGVuY29kZWRTdHJpbmcgPSBw
cmVmZXJlbmNlVmFsdWUoKTsKICAgICBhdXRvIGVuY29kZWREYXRhID0gYWRvcHROUyhbW05TRGF0
YSBhbGxvY10gaW5pdFdpdGhCYXNlNjRFbmNvZGVkU3RyaW5nOmVuY29kZWRTdHJpbmcgb3B0aW9u
czowXSk7CkBAIC0yMDAsOCArMjA3LDggQEAgVEVTVChXZWJLaXQsIFByZWZlcmVuY2VDaGFuZ2Vz
RGF0ZSkKIHsKICAgICBOU0RhdGUgKmRhdGUgPSBbTlNEYXRlIGRhdGVXaXRoVGltZUludGVydmFs
U2luY2VOb3c6MF07CiAKLSAgICBhdXRvIHVzZXJEZWZhdWx0cyA9IGFkb3B0TlMoW1tOU1VzZXJE
ZWZhdWx0cyBhbGxvY10gaW5pdFdpdGhTdWl0ZU5hbWU6QCJjb20uYXBwbGUuY29yZW1lZGlhIl0p
OwotICAgIFt1c2VyRGVmYXVsdHMuZ2V0KCkgc2V0T2JqZWN0OmRhdGUgZm9yS2V5OkAidGVzdGtl
eSJdOworICAgIGF1dG8gdXNlckRlZmF1bHRzID0gYWRvcHROUyhbW05TVXNlckRlZmF1bHRzIGFs
bG9jXSBpbml0V2l0aFN1aXRlTmFtZTooTlNTdHJpbmcgKil0ZXN0RG9tYWluXSk7CisgICAgW3Vz
ZXJEZWZhdWx0cy5nZXQoKSBzZXRPYmplY3Q6ZGF0ZSBmb3JLZXk6KE5TU3RyaW5nICopdGVzdEtl
eV07CiAKICAgICBhdXRvIGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmln
dXJhdGlvbiBhbGxvY10gaW5pdF0pOwogICAgIFdLUmV0YWluUHRyPFdLQ29udGV4dFJlZj4gY29u
dGV4dCA9IGFkb3B0V0soVGVzdFdlYktpdEFQSTo6VXRpbDo6Y3JlYXRlQ29udGV4dEZvckluamVj
dGVkQnVuZGxlVGVzdCgiSW50ZXJuYWxzSW5qZWN0ZWRCdW5kbGVUZXN0IikpOwpAQCAtMjA5LDEz
ICsyMTYsMTQgQEAgVEVTVChXZWJLaXQsIFByZWZlcmVuY2VDaGFuZ2VzRGF0ZSkKICAgICBhdXRv
IHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpO
U01ha2VSZWN0KDAsIDAsIDMwMCwgMzAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0
KCkgYWRkVG9XaW5kb3c6WUVTXSk7CiAKICAgICBhdXRvIHByZWZlcmVuY2VWYWx1ZSA9IFsmXSB7
Ci0gICAgICAgIHJldHVybiBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAi
d2luZG93LmludGVybmFscy5lbmNvZGVkUHJlZmVyZW5jZVZhbHVlKFwiY29tLmFwcGxlLmNvcmVt
ZWRpYVwiLCBcInRlc3RrZXlcIikiXTsKKyAgICAgICAgTlNTdHJpbmcgKmpzID0gW05TU3RyaW5n
IHN0cmluZ1dpdGhGb3JtYXQ6QCJ3aW5kb3cuaW50ZXJuYWxzLmVuY29kZWRQcmVmZXJlbmNlVmFs
dWUoXCIlQFwiLFwiJUBcIiIsIChOU1N0cmluZyAqKXRlc3REb21haW4sIChOU1N0cmluZyAqKXRl
c3RLZXldOworICAgICAgICByZXR1cm4gW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNj
cmlwdDpqc107CiAgICAgfTsKIAogICAgIHByZWZlcmVuY2VWYWx1ZSgpOwogCiAgICAgTlNEYXRl
ICpjaGFuZ2VkRGF0ZSA9IFtOU0RhdGUgZGF0ZVdpdGhUaW1lSW50ZXJ2YWxTaW5jZU5vdzoxMF07
Ci0gICAgW3VzZXJEZWZhdWx0cy5nZXQoKSBzZXRPYmplY3Q6Y2hhbmdlZERhdGUgZm9yS2V5OkAi
dGVzdGtleSJdOworICAgIFt1c2VyRGVmYXVsdHMuZ2V0KCkgc2V0T2JqZWN0OmNoYW5nZWREYXRl
IGZvcktleTooTlNTdHJpbmcgKil0ZXN0S2V5XTsKIAogICAgIGF1dG8gZW5jb2RlZFN0cmluZyA9
IHByZWZlcmVuY2VWYWx1ZSgpOwogICAgIGF1dG8gZW5jb2RlZERhdGEgPSBhZG9wdE5TKFtbTlNE
YXRhIGFsbG9jXSBpbml0V2l0aEJhc2U2NEVuY29kZWRTdHJpbmc6ZW5jb2RlZFN0cmluZyBvcHRp
b25zOjBdKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>393995</attachid>
            <date>2020-03-19 10:53:14 -0700</date>
            <delta_ts>2020-03-19 13:21:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209244-20200319105313.patch</filename>
            <type>text/plain</type>
            <size>21697</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyNTg2OTgpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDIwLTAzLTE4ICBQZXIgQXJuZSBWb2xsYW4gIDxw
dm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIEZpeCBsYXVuY2ggdGltZSByZWdy
ZXNzaW9uIHdpdGggQ0YgcHJlZnMgZGlyZWN0IG1vZGUgZW5hYmxlZAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA5MjQ0CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmUtZW5hYmxlIENGIHByZWZzIGRpcmVj
dCBtb2RlLgorCisgICAgICAgICogd3RmL1BsYXRmb3JtRW5hYmxlLmg6CisKIDIwMjAtMDMtMTkg
IENoYXJsaWUgVHVybmVyICA8Y3R1cm5lckBpZ2FsaWEuY29tPgogCiAgICAgICAgIEZpeCBtYW55
IHdhcm5pbmdzIHdpdGggQ2xhbmcgNy4wIG9uIEdUSyB4ODYtNjQgaW4gRGVidWcuCkluZGV4OiBT
b3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJsZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYv
d3RmL1BsYXRmb3JtRW5hYmxlLmgJKHJldmlzaW9uIDI1ODY5OCkKKysrIFNvdXJjZS9XVEYvd3Rm
L1BsYXRmb3JtRW5hYmxlLmgJKHdvcmtpbmcgY29weSkKQEAgLTg3MSw0ICs4NzEsOCBAQAogI2Vy
cm9yICJFTkFCTEUoV0VCR0wyKSByZXF1aXJlcyBFTkFCTEUoV0VCR0wpIgogI2VuZGlmCiAKKyNp
ZiBQTEFURk9STShDT0NPQSkKKyNkZWZpbmUgRU5BQkxFX0NGUFJFRlNfRElSRUNUX01PREUgMQor
I2Vsc2UKICNkZWZpbmUgRU5BQkxFX0NGUFJFRlNfRElSRUNUX01PREUgMAorI2VuZGlmCkluZGV4
OiBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwkocmV2aXNpb24gMjU4Njk4KQorKysgU291cmNlL1dlYktpdC9DaGFuZ2VMb2cJKHdv
cmtpbmcgY29weSkKQEAgLTEsMyArMSwzMiBAQAorMjAyMC0wMy0xOSAgUGVyIEFybmUgVm9sbGFu
ICA8cHZvbGxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW2lPU10gQWRkIHRlbGVtZXRyeSBmb3Ig
bWVzc2FnZSBmaWx0ZXJpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIwOTAwMworICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjAzNzY3MjI+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBSZXNvdXJjZXMv
U2FuZGJveFByb2ZpbGVzL2lvcy9jb20uYXBwbGUuV2ViS2l0LldlYkNvbnRlbnQuc2I6CisKKzIw
MjAtMDMtMTggIFBlciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29tPgorCisgICAgICAg
IFtDb2NvYV0gRml4IGxhdW5jaCB0aW1lIHJlZ3Jlc3Npb24gd2l0aCBDRiBwcmVmcyBkaXJlY3Qg
bW9kZSBlbmFibGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMDkyNDQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzYwNTQyMTQ5PgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdoZW4gQ0YgcHJlZnMgZGly
ZWN0IG1vZGUgd2FzIGVuYWJsZWQgaW4gaHR0cHM6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0
LzI1ODA2NC93ZWJraXQsIGl0IGludHJvZHVjZWQKKyAgICAgICAgYSBzaWduaWZpY2FudCBsYXVu
Y2ggdGltZSByZWdyZXNzaW9uLiBUaGlzIHJlZ3Jlc3Npb24gc2hvdWxkIGJlIGZpeGVkLgorCisg
ICAgICAgICogVUlQcm9jZXNzL0NvY29hL1ByZWZlcmVuY2VPYnNlcnZlci5tbToKKyAgICAgICAg
KC1bV0tQcmVmZXJlbmNlT2JzZXJ2ZXIgaW5pdF0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2Nv
YS9XZWJQcm9jZXNzUG9vbENvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9v
bDo6cGxhdGZvcm1Jbml0aWFsaXplKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6
OnJlZ2lzdGVyTm90aWZpY2F0aW9uT2JzZXJ2ZXJzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJv
Y2Vzc1Bvb2w6OnVucmVnaXN0ZXJOb3RpZmljYXRpb25PYnNlcnZlcnMpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oOgorCiAyMDIwLTAzLTE5ICBDaGFybGllIFR1cm5lciAg
PGN0dXJuZXJAaWdhbGlhLmNvbT4KIAogICAgICAgICBGaXggbWFueSB3YXJuaW5ncyB3aXRoIENs
YW5nIDcuMCBvbiBHVEsgeDg2LTY0IGluIERlYnVnLgpJbmRleDogU291cmNlL1dlYktpdC9SZXNv
dXJjZXMvU2FuZGJveFByb2ZpbGVzL2lvcy9jb20uYXBwbGUuV2ViS2l0LldlYkNvbnRlbnQuc2IK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9SZXNvdXJjZXMvU2FuZGJveFByb2ZpbGVzL2lv
cy9jb20uYXBwbGUuV2ViS2l0LldlYkNvbnRlbnQuc2IJKHJldmlzaW9uIDI1ODY5OCkKKysrIFNv
dXJjZS9XZWJLaXQvUmVzb3VyY2VzL1NhbmRib3hQcm9maWxlcy9pb3MvY29tLmFwcGxlLldlYktp
dC5XZWJDb250ZW50LnNiCSh3b3JraW5nIGNvcHkpCkBAIC01MzYsNyArNTM2LDYgQEAKIChhbGxv
dyBtYWNoLWxvb2t1cAogICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLmxvZ2QiKQogICAgIChn
bG9iYWwtbmFtZSAiY29tLmFwcGxlLmxvZ2QuZXZlbnRzIikKLSAgICAoZ2xvYmFsLW5hbWUgImNv
bS5hcHBsZS5jZnByZWZzZC5kYWVtb24iKQogKQogCiAoZGVueSBtYWNoLWxvb2t1cCAod2l0aCB0
ZWxlbWV0cnkpCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgJ
KHJldmlzaW9uIDI1ODY5OCkKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
b29sLmgJKHdvcmtpbmcgY29weSkKQEAgLTgxMSwxMCArODExLDYgQEAgcHJpdmF0ZToKICAgICBi
b29sIG1faXNEZWxheWVkV2ViUHJvY2Vzc0xhdW5jaERpc2FibGVkIHsgZmFsc2UgfTsKICNlbmRp
ZgogICAgIGJvb2wgbV91c2VTZXBhcmF0ZVNlcnZpY2VXb3JrZXJQcm9jZXNzIHsgZmFsc2UgfTsK
LQotI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIFJldGFpblB0cjxXS1ByZWZlcmVuY2VPYnNlcnZl
cj4gbV9wcmVmZXJlbmNlT2JzZXJ2ZXI7Ci0jZW5kaWYKIH07CiAKIHRlbXBsYXRlPHR5cGVuYW1l
IFQ+CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9QcmVmZXJlbmNlT2JzZXJ2
ZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9QcmVmZXJl
bmNlT2JzZXJ2ZXIuaAkocmV2aXNpb24gMjU4Njk4KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQ29jb2EvUHJlZmVyZW5jZU9ic2VydmVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ2LDYgKzQ2
LDUgQEAgX19hdHRyaWJ1dGVfXygodmlzaWJpbGl0eSgiZGVmYXVsdCIpKSkKICAgICBWZWN0b3I8
UmV0YWluUHRyPFdLVXNlckRlZmF1bHRzPj4gbV91c2VyRGVmYXVsdHM7CiB9CiArIChpZClzaGFy
ZWRJbnN0YW5jZTsKLSsgKHZvaWQpc3dpenpsZVJlZ2lzdGVyRGVmYXVsdHM7CiAtICh2b2lkKXBy
ZWZlcmVuY2VEaWRDaGFuZ2U6KE5TU3RyaW5nICopZG9tYWluIGtleTooTlNTdHJpbmcgKilrZXkg
ZW5jb2RlZFZhbHVlOihOU1N0cmluZyAqKWVuY29kZWRWYWx1ZTsKIEBlbmQKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1ByZWZlcmVuY2VPYnNlcnZlci5tbQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9QcmVmZXJlbmNlT2JzZXJ2ZXIubW0J
KHJldmlzaW9uIDI1ODY5OCkKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1ByZWZl
cmVuY2VPYnNlcnZlci5tbQkod29ya2luZyBjb3B5KQpAQCAtMjgsMzEgKzI4LDEyIEBACiAKICNp
bXBvcnQgIldlYlByb2Nlc3NQb29sLmgiCiAKLSNpbXBvcnQgPHd0Zi9PYmpDUnVudGltZUV4dHJh
cy5oPgotCi1zdGF0aWMgSU1QIHJlZ2lzdGVyRGVmYXVsdHNPcmlnaW5hbCA9IG5pbDsKLXN0YXRp
YyBib29sIHJlZ2lzdGVyaW5nRGVmYXVsdHMgPSBmYWxzZTsKLQotc3RhdGljIHZvaWQgcmVnaXN0
ZXJEZWZhdWx0c092ZXJyaWRlKGlkIHNlbGYsIFNFTCBzZWxlY3RvciwgTlNEaWN0aW9uYXJ5PE5T
U3RyaW5nICosIGlkPiAqZGljdGlvbmFyeSkKLXsKLSAgICByZWdpc3RlcmluZ0RlZmF1bHRzID0g
dHJ1ZTsKLSAgICBpZiAocmVnaXN0ZXJEZWZhdWx0c09yaWdpbmFsKQotICAgICAgICB3dGZDYWxs
SU1QPHZvaWQ+KHJlZ2lzdGVyRGVmYXVsdHNPcmlnaW5hbCwgc2VsZiwgc2VsZWN0b3IsIGRpY3Rp
b25hcnkpOwotICAgIHJlZ2lzdGVyaW5nRGVmYXVsdHMgPSBmYWxzZTsKLX0KLQogQGltcGxlbWVu
dGF0aW9uIFdLVXNlckRlZmF1bHRzCiAKIC0gKHZvaWQpX25vdGlmeU9ic2VydmVyc09mQ2hhbmdl
RnJvbVZhbHVlc0ZvcktleXM6KE5TRGljdGlvbmFyeTxOU1N0cmluZyAqLCBpZD4gKilvbGRWYWx1
ZXMgdG9WYWx1ZXNGb3JLZXlzOihOU0RpY3Rpb25hcnk8TlNTdHJpbmcgKiwgaWQ+ICopbmV3VmFs
dWVzCiB7Ci0gICAgaWYgKHJlZ2lzdGVyaW5nRGVmYXVsdHMpCi0gICAgICAgIHJldHVybjsKLQog
ICAgIFtzdXBlciBfbm90aWZ5T2JzZXJ2ZXJzT2ZDaGFuZ2VGcm9tVmFsdWVzRm9yS2V5czpvbGRW
YWx1ZXMgdG9WYWx1ZXNGb3JLZXlzOm5ld1ZhbHVlc107CiAKLSAgICBpZiAoW29sZFZhbHVlcyBp
c0VxdWFsVG9EaWN0aW9uYXJ5Om5ld1ZhbHVlc10pCi0gICAgICAgIHJldHVybjsKLQogICAgIGZv
ciAoTlNTdHJpbmcgKmtleSBpbiBvbGRWYWx1ZXMpIHsKICAgICAgICAgaWQgb2xkVmFsdWUgPSBv
bGRWYWx1ZXNba2V5XTsKICAgICAgICAgaWQgbmV3VmFsdWUgPSBuZXdWYWx1ZXNba2V5XTsKQEAg
LTEwMSwxMDMgKzgyLDMzIEBAICsgKGlkKXNoYXJlZEluc3RhbmNlCiAgICAgcmV0dXJuIGluc3Rh
bmNlOwogfQogCi0rICh2b2lkKXN3aXp6bGVSZWdpc3RlckRlZmF1bHRzCi17Ci0gICAgc3RhdGlj
IHN0ZDo6b25jZV9mbGFnIG9uY2VGbGFnOwotICAgIHN0ZDo6Y2FsbF9vbmNlKG9uY2VGbGFnLCBb
XSB7Ci0gICAgICAgIE1ldGhvZCByZWdpc3RlckRlZmF1bHRzTWV0aG9kID0gY2xhc3NfZ2V0SW5z
dGFuY2VNZXRob2Qob2JqY19nZXRDbGFzcygiTlNVc2VyRGVmYXVsdHMiKSwgQHNlbGVjdG9yKHJl
Z2lzdGVyRGVmYXVsdHM6KSk7Ci0gICAgICAgIHJlZ2lzdGVyRGVmYXVsdHNPcmlnaW5hbCA9IG1l
dGhvZF9zZXRJbXBsZW1lbnRhdGlvbihyZWdpc3RlckRlZmF1bHRzTWV0aG9kLCAoSU1QKXJlZ2lz
dGVyRGVmYXVsdHNPdmVycmlkZSk7Ci0gICAgfSk7Ci19Ci0KIC0gKGluc3RhbmNldHlwZSlpbml0
CiB7CiAgICAgc3RkOjppbml0aWFsaXplcl9saXN0PE5TU3RyaW5nKj4gZG9tYWlucyA9IHsKLSAg
ICAgICAgQCJjb20uYXBwbGUuQWNjZXNzaWJpbGl0eSIsCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlM
WSkKKyAgICAgICAgQCJjb20uYXBwbGUuQWNjZXNzaWJpbGl0eSIsCiAgICAgICAgIEAiY29tLmFw
cGxlLkFkTGliIiwKLSAgICAgICAgQCJjb20uYXBwbGUuQ0ZOZXR3b3JrIiwKLSAgICAgICAgQCJj
b20uYXBwbGUuRW1vamlQcmVmZXJlbmNlcyIsCi0gICAgICAgIEAiY29tLmFwcGxlLkZvbnRQYXJz
ZXIiLAotICAgICAgICBAImNvbS5hcHBsZS5JbWFnZUlPIiwKLSAgICAgICAgQCJjb20uYXBwbGUu
SW5wdXRNb2RlUHJlZmVyZW5jZXMiLAotI2Vsc2UKLSAgICAgICAgQCJjb20uYXBwbGUuQVRTIiwK
LSAgICAgICAgQCJjb20uYXBwbGUuQ29yZUdyYXBoaWNzIiwKLSAgICAgICAgQCJjb20uYXBwbGUu
RG93bmxvYWRBc3Nlc3NtZW50IiwKLSAgICAgICAgQCJjb20uYXBwbGUuSElUb29sYm94IiwKLSNl
bmRpZgotICAgICAgICBAImNvbS5hcHBsZS5MYXVuY2hTZXJ2aWNlcyIsCi0jaWYgUExBVEZPUk0o
SU9TX0ZBTUlMWSkKLSAgICAgICAgQCJjb20uYXBwbGUuTWV0YWwiLAotICAgICAgICBAImNvbS5h
cHBsZS5Nb2JpbGVBc3NldCIsCiAgICAgICAgIEAiY29tLmFwcGxlLlByZWZlcmVuY2VzIiwKLSAg
ICAgICAgQCJjb20uYXBwbGUuU3BlYWtTZWxlY3Rpb24iLAogICAgICAgICBAImNvbS5hcHBsZS5V
SUtpdCIsCi0gICAgICAgIEAiY29tLmFwcGxlLlZvaWNlT3ZlclRvdWNoIiwKLSNlbHNlCi0gICAg
ICAgIEAiY29tLmFwcGxlLk11bHRpdG91Y2hTdXBwb3J0IgotICAgICAgICBAImNvbS5hcHBsZS5T
ZXJ2aWNlc01lbnUuU2VydmljZXMiCi0gICAgICAgIEAiY29tLmFwcGxlLlZpZXdCcmlkZ2UiCi0j
ZW5kaWYKLSAgICAgICAgQCJjb20uYXBwbGUuV2ViRm91bmRhdGlvbiIsCi0jaWYgUExBVEZPUk0o
SU9TX0ZBTUlMWSkKLSAgICAgICAgQCJjb20uYXBwbGUuV2ViS2l0LldlYkNvbnRlbnQiLAotICAg
ICAgICBAImNvbS5hcHBsZS5XZWJVSSIsCi0gICAgICAgIEAiY29tLmFwcGxlLmFpcnBsYXkiLAot
ICAgICAgICBAImNvbS5hcHBsZS5hcHBsZWpwZWciLAotICAgICAgICBAImNvbS5hcHBsZS5hdWRp
by52aXJ0dWFsYXVkaW8iLAogICAgICAgICBAImNvbS5hcHBsZS5hdmZhdWRpbyIsCi0jZW5kaWYK
LSAgICAgICAgQCJjb20uYXBwbGUuYXZmb3VuZGF0aW9uIiwKLSAgICAgICAgQCJjb20uYXBwbGUu
YXZmb3VuZGF0aW9uLmZyZWNlbnRzIiwKLSAgICAgICAgQCJjb20uYXBwbGUuYXZmb3VuZGF0aW9u
LnZpZGVvcGVyZm9ybWFuY2VodWQiLAotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgICAg
IEAiY29tLmFwcGxlLmF2a2l0IiwKLSAgICAgICAgQCJjb20uYXBwbGUuY29yZWFuaW1hdGlvbiIs
Ci0gICAgICAgIEAiY29tLmFwcGxlLmNvcmVhdWRpbyIsCi0jZW5kaWYKLSAgICAgICAgQCJjb20u
YXBwbGUuY29yZW1lZGlhIiwKLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgICAgICBAImNv
bS5hcHBsZS5jb3JldmlkZW8iLAotICAgICAgICBAImNvbS5hcHBsZS5kYSIsCi0gICAgICAgIEAi
Y29tLmFwcGxlLmhhbmd0cmFjZXIiLAotICAgICAgICBAImNvbS5hcHBsZS5pbmRpZ28iLAotICAg
ICAgICBAImNvbS5hcHBsZS5pb2tpdC5JT01vYmlsZUdyYXBoaWNzRmFtaWx5IiwKICAgICAgICAg
QCJjb20uYXBwbGUuaXR1bmVzc3RvcmVkIiwKLSAgICAgICAgQCJjb20uYXBwbGUua2V5Ym9hcmQi
LAotI2Vsc2UKLSAgICAgICAgQCJjb20uYXBwbGUuY3J5cHRvIiwKLSAgICAgICAgQCJjb20uYXBw
bGUuZHJpdmVyLkFwcGxlQmx1ZXRvb3RoTXVsdGl0b3VjaC5tb3VzZSIsCi0gICAgICAgIEAiY29t
LmFwcGxlLmRyaXZlci5BcHBsZUJsdWV0b290aE11bHRpdG91Y2gudHJhY2twYWQiLAotICAgICAg
ICBAImNvbS5hcHBsZS5kcml2ZXIuQXBwbGVISURNb3VzZSIKLSNlbmRpZgotICAgICAgICBAImNv
bS5hcHBsZS5sb29rdXAuc2hhcmVkIiwKLSAgICAgICAgQCJjb20uYXBwbGUubWVkaWFhY2Nlc3Np
YmlsaXR5IiwKLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgICAgICBAImNvbS5hcHBsZS5t
ZWRpYWFjY2Vzc2liaWxpdHkucHVibGljIiwKICAgICAgICAgQCJjb20uYXBwbGUubWVkaWFyZW1v
dGUiLAotICAgICAgICBAImNvbS5hcHBsZS5tb2JpbGVpcG9kIiwKLSAgICAgICAgQCJjb20uYXBw
bGUubXQiLAotI2Vsc2UKLSAgICAgICAgQCJjb20uYXBwbGUubmV0d29ya0Nvbm5lY3QiCi0jZW5k
aWYKLSAgICAgICAgQCJjb20uYXBwbGUub3BlbmdsIiwKLSNpZiBQTEFURk9STShJT1NfRkFNSUxZ
KQogICAgICAgICBAImNvbS5hcHBsZS5wcmVmZXJlbmNlcy5zb3VuZHMiLAotICAgICAgICBAImNv
bS5hcHBsZS5zZWN1cml0eSIsCiAgICAgICAgIEAiY29tLmFwcGxlLnZvaWNlc2VydmljZXMiLAot
ICAgICAgICBAImNvbS5hcHBsZS52b2ljZXNlcnZpY2VzLmxvZ2dpbmciLAorICAgICAgICBAImtD
RlByZWZlcmVuY2VzQW55QXBwbGljYXRpb24iLAogI2Vsc2UKKyAgICAgICAgQCJjb20uYXBwbGUu
Q29yZUdyYXBoaWNzIiwKKyAgICAgICAgQCJjb20uYXBwbGUuSElUb29sYm94IiwKKyAgICAgICAg
QCJjb20uYXBwbGUuU2VydmljZXNNZW51LlNlcnZpY2VzIiwKKyAgICAgICAgQCJjb20uYXBwbGUu
Vmlld0JyaWRnZSIsCisgICAgICAgIEAiY29tLmFwcGxlLmF2Zm91bmRhdGlvbiIsCisgICAgICAg
IEAiY29tLmFwcGxlLmF2Zm91bmRhdGlvbi52aWRlb3BlcmZvcm1hbmNlaHVkIiwKKyAgICAgICAg
QCJjb20uYXBwbGUuZHJpdmVyLkFwcGxlQmx1ZXRvb3RoTXVsdGl0b3VjaC5tb3VzZSIsCisgICAg
ICAgIEAiY29tLmFwcGxlLmRyaXZlci5BcHBsZUJsdWV0b290aE11bHRpdG91Y2gudHJhY2twYWQi
LAorICAgICAgICBAImNvbS5hcHBsZS5tZWRpYWFjY2Vzc2liaWxpdHkiLAogICAgICAgICBAImNv
bS5hcHBsZS5zcGVlY2gudm9pY2UucHJlZnMiLAotICAgICAgICBAImNvbS5hcHBsZS5zeXN0ZW1z
b3VuZCIsCiAgICAgICAgIEAiY29tLmFwcGxlLnVuaXZlcnNhbGFjY2VzcyIsCi0gICAgICAgIEAi
Y29tLm52aWRpYS5PcGVuR0wiLAotICAgICAgICBAImVkdS5taXQuS2VyYmVyb3MiLAotI2VuZGlm
CiAgICAgICAgIEAia0NGUHJlZmVyZW5jZXNBbnlBcHBsaWNhdGlvbiIsCi0jaWYgIVBMQVRGT1JN
KElPU19GQU1JTFkpCi0gICAgICAgIEAicGJzIiwKICNlbmRpZgogICAgIH07CiAKSW5kZXg6IFNv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2Nv
YS5tbQkocmV2aXNpb24gMjU4Njk4KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2Ev
V2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQkod29ya2luZyBjb3B5KQpAQCAtMTczLDE0ICsxNzMsNiBA
QCB2b2lkIFdlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemUoCiAgICAgICAgIGluc3Rh
bGxNZW1vcnlQcmVzc3VyZUhhbmRsZXIoKTsKIAogICAgIHNldExlZ2FjeUN1c3RvbVByb3RvY29s
TWFuYWdlckNsaWVudChtYWtlVW5pcXVlPExlZ2FjeUN1c3RvbVByb3RvY29sTWFuYWdlckNsaWVu
dD4oKSk7Ci0KLSNpZiBFTkFCTEUoQ0ZQUkVGU19ESVJFQ1RfTU9ERSkKLSAgICBbV0tQcmVmZXJl
bmNlT2JzZXJ2ZXIgc3dpenpsZVJlZ2lzdGVyRGVmYXVsdHNdOwotICAgIGRpc3BhdGNoX2FzeW5j
KGRpc3BhdGNoX2dldF9nbG9iYWxfcXVldWUoUU9TX0NMQVNTX0JBQ0tHUk9VTkQsIDApLCBeewot
ICAgICAgICAvLyBTdGFydCBvYnNlcnZpbmcgcHJlZmVyZW5jZSBjaGFuZ2VzLgotICAgICAgICBb
V0tQcmVmZXJlbmNlT2JzZXJ2ZXIgc2hhcmVkSW5zdGFuY2VdOwotICAgIH0pOwotI2VuZGlmCiB9
CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQpAQCAtNDUwLDEzICs0NDIsMTkgQEAgdm9pZCBX
ZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXplVwogICAgICAgICAgICAgU2FuZGJveEV4
dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yTWFjaExvb2t1cChzZXJ2aWNlc1tpXSwgV1RGOjpudWxs
b3B0LCBwYXJhbWV0ZXJzLm1lZGlhRXh0ZW5zaW9uSGFuZGxlc1tpXSk7CiAgICAgfQogCi0jaWYg
RU5BQkxFKENGUFJFRlNfRElSRUNUX01PREUpICYmIFBMQVRGT1JNKElPU19GQU1JTFkpCisjaWYg
RU5BQkxFKENGUFJFRlNfRElSRUNUX01PREUpCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAg
ICBpZiAoX0FYU0FwcGxpY2F0aW9uQWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkgewogICAgICAgICBT
YW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgcHJlZmVyZW5jZXNFeHRlbnNpb25IYW5kbGU7CiAgICAg
ICAgIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvck1hY2hMb29rdXAoImNvbS5hcHBs
ZS5jZnByZWZzZC5kYWVtb24iLCBXVEY6Om51bGxvcHQsIHByZWZlcmVuY2VzRXh0ZW5zaW9uSGFu
ZGxlKTsKICAgICAgICAgcGFyYW1ldGVycy5wcmVmZXJlbmNlc0V4dGVuc2lvbkhhbmRsZSA9IFdU
Rk1vdmUocHJlZmVyZW5jZXNFeHRlbnNpb25IYW5kbGUpOwogICAgIH0KICNlbmRpZgorICAgIGRp
c3BhdGNoX2FzeW5jKGRpc3BhdGNoX2dldF9nbG9iYWxfcXVldWUoRElTUEFUQ0hfUVVFVUVfUFJJ
T1JJVFlfREVGQVVMVCwgMCksIF57CisgICAgICAgIC8vIFN0YXJ0IG9ic2VydmluZyBwcmVmZXJl
bmNlIGNoYW5nZXMuCisgICAgICAgIFtXS1ByZWZlcmVuY2VPYnNlcnZlciBzaGFyZWRJbnN0YW5j
ZV07CisgICAgfSk7CisjZW5kaWYKIH0KIAogdm9pZCBXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1J
bml0aWFsaXplTmV0d29ya1Byb2Nlc3MoTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMm
IHBhcmFtZXRlcnMpCkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29tLmFwcGxlLldl
YlByb2Nlc3Muc2IuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2Nv
bS5hcHBsZS5XZWJQcm9jZXNzLnNiLmluCShyZXZpc2lvbiAyNTg2OTgpCisrKyBTb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvY29tLmFwcGxlLldlYlByb2Nlc3Muc2IuaW4JKHdvcmtpbmcgY29weSkK
QEAgLTY3OCw3ICs2NzgsNiBAQAogICAgICh3aXRoIHJlcG9ydCkgKHdpdGggdGVsZW1ldHJ5KQog
I2VuZGlmCiAgICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUuUG93ZXJNYW5hZ2VtZW50LmNvbnRy
b2wiKQotICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLmNmcHJlZnNkLmRhZW1vbiIpCiAgICAg
KGdsb2JhbC1uYW1lICJjb20uYXBwbGUuY29yZXNlcnZpY2VzLmxhdW5jaHNlcnZpY2VzZCIpCiAg
ICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUubHNkLm1hcGRiIikKICAgICAoZ2xvYmFsLW5hbWUg
ImNvbS5hcHBsZS50cnVzdGQuYWdlbnQiKQpJbmRleDogVG9vbHMvQ2hhbmdlTG9nCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFRvb2xzL0NoYW5nZUxvZwkocmV2aXNpb24gMjU4NzA2KQorKysgVG9vbHMvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjAtMDMtMTkgIFBlciBBcm5l
IFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gRml4IGxhdW5j
aCB0aW1lIHJlZ3Jlc3Npb24gd2l0aCBDRiBwcmVmcyBkaXJlY3QgbW9kZSBlbmFibGVkCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDkyNDQKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0L1ByZWZlcmVuY2VDaGFuZ2VzLm1tOgorICAgICAgICAoVEVTVCk6CisK
IDIwMjAtMDMtMTkgIEFha2FzaCBKYWluICA8YWFrYXNoX2phaW5AYXBwbGUuY29tPgogCiAgICAg
ICAgIFVwZGF0ZSBidWlsZC53ZWJraXQub3JnIGxpbmsgZm9yIEVXUwpJbmRleDogVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvUHJlZmVyZW5jZUNoYW5nZXMubW0KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvUHJlZmVyZW5jZUNoYW5nZXMubW0J
KHJldmlzaW9uIDI1ODY5OCkKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1By
ZWZlcmVuY2VDaGFuZ2VzLm1tCSh3b3JraW5nIGNvcHkpCkBAIC00NCwxNSArNDQsMTggQEAgLSAo
dm9pZClwcmVmZXJlbmNlRGlkQ2hhbmdlOihOU1N0cmluZyAqKQogfQogQGVuZAogCitzdGF0aWMg
Y29uc3QgQ0ZTdHJpbmdSZWYgdGVzdEtleSA9IENGU1RSKCJ0ZXN0a2V5Iik7CitzdGF0aWMgY29u
c3QgQ0ZTdHJpbmdSZWYgdGVzdERvbWFpbiA9IENGU1RSKCJrQ0ZQcmVmZXJlbmNlc0FueUFwcGxp
Y2F0aW9uIik7CisKIFRFU1QoV2ViS2l0LCBQcmVmZXJlbmNlT2JzZXJ2ZXIpCiB7CiAgICAgZG9u
ZSA9IGZhbHNlOwogCi0gICAgQ0ZQcmVmZXJlbmNlc1NldEFwcFZhbHVlKENGU1RSKCJ0ZXN0a2V5
IiksIENGU1RSKCIxIiksIENGU1RSKCJjb20uYXBwbGUuY29yZW1lZGlhIikpOworICAgIENGUHJl
ZmVyZW5jZXNTZXRBcHBWYWx1ZSh0ZXN0S2V5LCBDRlNUUigiMSIpLCB0ZXN0RG9tYWluKTsKIAog
ICAgIGF1dG8gb2JzZXJ2ZXIgPSBhZG9wdE5TKFtbV0tUZXN0UHJlZmVyZW5jZU9ic2VydmVyIGFs
bG9jXSBpbml0XSk7CiAKLSAgICBDRlByZWZlcmVuY2VzU2V0QXBwVmFsdWUoQ0ZTVFIoInRlc3Rr
ZXkiKSwgQ0ZTVFIoIjIiKSwgQ0ZTVFIoImNvbS5hcHBsZS5jb3JlbWVkaWEiKSk7CisgICAgQ0ZQ
cmVmZXJlbmNlc1NldEFwcFZhbHVlKHRlc3RLZXksIENGU1RSKCIyIiksIHRlc3REb21haW4pOwog
CiAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKIH0KQEAgLTYzLDIyICs2Niwy
MiBAQCBURVNUKFdlYktpdCwgUHJlZmVyZW5jZU9ic2VydmVyQXJyYXkpCiAKICAgICBOU0FycmF5
ICphcnJheSA9IEBbQDEsIEAyLCBAM107CiAKLSAgICBhdXRvIHVzZXJEZWZhdWx0cyA9IGFkb3B0
TlMoW1tOU1VzZXJEZWZhdWx0cyBhbGxvY10gaW5pdFdpdGhTdWl0ZU5hbWU6QCJjb20uYXBwbGUu
Y29yZW1lZGlhIl0pOwotICAgIFt1c2VyRGVmYXVsdHMuZ2V0KCkgc2V0T2JqZWN0OmFycmF5IGZv
cktleTpAInRlc3RrZXkiXTsKKyAgICBhdXRvIHVzZXJEZWZhdWx0cyA9IGFkb3B0TlMoW1tOU1Vz
ZXJEZWZhdWx0cyBhbGxvY10gaW5pdFdpdGhTdWl0ZU5hbWU6KE5TU3RyaW5nICopdGVzdERvbWFp
bl0pOworICAgIFt1c2VyRGVmYXVsdHMuZ2V0KCkgc2V0T2JqZWN0OmFycmF5IGZvcktleTooTlNT
dHJpbmcgKil0ZXN0S2V5XTsKIAogICAgIGF1dG8gb2JzZXJ2ZXIgPSBhZG9wdE5TKFtbV0tUZXN0
UHJlZmVyZW5jZU9ic2VydmVyIGFsbG9jXSBpbml0XSk7CiAKICAgICBOU0FycmF5ICpjaGFuZ2Vk
QXJyYXkgPSBAW0AzLCBAMiwgQDFdOwotICAgIFt1c2VyRGVmYXVsdHMuZ2V0KCkgc2V0T2JqZWN0
OmNoYW5nZWRBcnJheSBmb3JLZXk6QCJ0ZXN0a2V5Il07CisgICAgW3VzZXJEZWZhdWx0cy5nZXQo
KSBzZXRPYmplY3Q6Y2hhbmdlZEFycmF5IGZvcktleTooTlNTdHJpbmcgKil0ZXN0S2V5XTsKIAog
ICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CiB9CiAKIFRFU1QoV2ViS2l0LCBQ
cmVmZXJlbmNlQ2hhbmdlcykKIHsKLSAgICBDRlByZWZlcmVuY2VzU2V0QXBwVmFsdWUoQ0ZTVFIo
InRlc3RrZXkiKSwgQ0ZTVFIoIjEiKSwgQ0ZTVFIoImNvbS5hcHBsZS5jb3JlbWVkaWEiKSk7Cisg
ICAgQ0ZQcmVmZXJlbmNlc1NldEFwcFZhbHVlKHRlc3RLZXksIENGU1RSKCIxIiksIHRlc3REb21h
aW4pOwogCi0gICAgRVhQRUNUX0VRKDEsIENGUHJlZmVyZW5jZXNHZXRBcHBJbnRlZ2VyVmFsdWUo
Q0ZTVFIoInRlc3RrZXkiKSwgQ0ZTVFIoImNvbS5hcHBsZS5jb3JlbWVkaWEiKSwgbnVsbHB0cikp
OworICAgIEVYUEVDVF9FUSgxLCBDRlByZWZlcmVuY2VzR2V0QXBwSW50ZWdlclZhbHVlKHRlc3RL
ZXksIHRlc3REb21haW4sIG51bGxwdHIpKTsKIAogICAgIGF1dG8gY29uZmlndXJhdGlvbiA9IGFk
b3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CiAgICAgV0tSZXRh
aW5QdHI8V0tDb250ZXh0UmVmPiBjb250ZXh0ID0gYWRvcHRXSyhUZXN0V2ViS2l0QVBJOjpVdGls
OjpjcmVhdGVDb250ZXh0Rm9ySW5qZWN0ZWRCdW5kbGVUZXN0KCJJbnRlcm5hbHNJbmplY3RlZEJ1
bmRsZVRlc3QiKSk7CkBAIC04NiwxMiArODksMTMgQEAgVEVTVChXZWJLaXQsIFByZWZlcmVuY2VD
aGFuZ2VzKQogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9j
XSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgMzAwLCAzMDApIGNvbmZpZ3VyYXRpb246
Y29uZmlndXJhdGlvbi5nZXQoKSBhZGRUb1dpbmRvdzpZRVNdKTsKIAogICAgIGF1dG8gcHJlZmVy
ZW5jZVZhbHVlID0gWyZdIHsKLSAgICAgICAgcmV0dXJuIFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVh
dGluZ0phdmFTY3JpcHQ6QCJ3aW5kb3cuaW50ZXJuYWxzLnJlYWRQcmVmZXJlbmNlSW50ZWdlcihc
ImNvbS5hcHBsZS5jb3JlbWVkaWFcIiwgXCJ0ZXN0a2V5XCIpIl0uaW50VmFsdWU7CisgICAgICAg
IE5TU3RyaW5nICpqcyA9IFtOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAid2luZG93LmludGVy
bmFscy5yZWFkUHJlZmVyZW5jZUludGVnZXIoXCIlQFwiLFwiJUBcIiIsIChOU1N0cmluZyAqKXRl
c3REb21haW4sIChOU1N0cmluZyAqKXRlc3RLZXldOworICAgICAgICByZXR1cm4gW3dlYlZpZXcg
c3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpqc10uaW50VmFsdWU7CiAgICAgfTsKIAogICAg
IEVYUEVDVF9FUShwcmVmZXJlbmNlVmFsdWUoKSwgMSk7CiAKLSAgICBDRlByZWZlcmVuY2VzU2V0
QXBwVmFsdWUoQ0ZTVFIoInRlc3RrZXkiKSwgQ0ZTVFIoIjIiKSwgQ0ZTVFIoImNvbS5hcHBsZS5j
b3JlbWVkaWEiKSk7CisgICAgQ0ZQcmVmZXJlbmNlc1NldEFwcFZhbHVlKHRlc3RLZXksIENGU1RS
KCIyIiksIHRlc3REb21haW4pOwogCiAgICAgRVhQRUNUX0VRKHByZWZlcmVuY2VWYWx1ZSgpLCAy
KTsKIH0KQEAgLTEwMCw4ICsxMDQsOCBAQCBURVNUKFdlYktpdCwgUHJlZmVyZW5jZUNoYW5nZXNB
cnJheSkKIHsKICAgICBOU0FycmF5ICphcnJheSA9IEBbQDEsIEAyLCBAM107CiAKLSAgICBhdXRv
IHVzZXJEZWZhdWx0cyA9IGFkb3B0TlMoW1tOU1VzZXJEZWZhdWx0cyBhbGxvY10gaW5pdFdpdGhT
dWl0ZU5hbWU6QCJjb20uYXBwbGUuY29yZW1lZGlhIl0pOwotICAgIFt1c2VyRGVmYXVsdHMuZ2V0
KCkgc2V0T2JqZWN0OmFycmF5IGZvcktleTpAInRlc3RrZXkiXTsKKyAgICBhdXRvIHVzZXJEZWZh
dWx0cyA9IGFkb3B0TlMoW1tOU1VzZXJEZWZhdWx0cyBhbGxvY10gaW5pdFdpdGhTdWl0ZU5hbWU6
KE5TU3RyaW5nICopdGVzdERvbWFpbl0pOworICAgIFt1c2VyRGVmYXVsdHMuZ2V0KCkgc2V0T2Jq
ZWN0OmFycmF5IGZvcktleTooTlNTdHJpbmcgKil0ZXN0S2V5XTsKIAogICAgIGF1dG8gY29uZmln
dXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7
CiAgICAgV0tSZXRhaW5QdHI8V0tDb250ZXh0UmVmPiBjb250ZXh0ID0gYWRvcHRXSyhUZXN0V2Vi
S2l0QVBJOjpVdGlsOjpjcmVhdGVDb250ZXh0Rm9ySW5qZWN0ZWRCdW5kbGVUZXN0KCJJbnRlcm5h
bHNJbmplY3RlZEJ1bmRsZVRlc3QiKSk7CkBAIC0xMDksMTMgKzExMywxNCBAQCBURVNUKFdlYktp
dCwgUHJlZmVyZW5jZUNoYW5nZXNBcnJheSkKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtb
VGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDMwMCwg
MzAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCkgYWRkVG9XaW5kb3c6WUVTXSk7
CiAKICAgICBhdXRvIHByZWZlcmVuY2VWYWx1ZSA9IFsmXSB7Ci0gICAgICAgIHJldHVybiBbd2Vi
VmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAid2luZG93LmludGVybmFscy5lbmNv
ZGVkUHJlZmVyZW5jZVZhbHVlKFwiY29tLmFwcGxlLmNvcmVtZWRpYVwiLCBcInRlc3RrZXlcIiki
XTsKKyAgICAgICAgTlNTdHJpbmcgKmpzID0gW05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCJ3
aW5kb3cuaW50ZXJuYWxzLmVuY29kZWRQcmVmZXJlbmNlVmFsdWUoXCIlQFwiLFwiJUBcIiIsIChO
U1N0cmluZyAqKXRlc3REb21haW4sIChOU1N0cmluZyAqKXRlc3RLZXldOworICAgICAgICByZXR1
cm4gW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpqc107CiAgICAgfTsKIAog
ICAgIHByZWZlcmVuY2VWYWx1ZSgpOwogCiAgICAgTlNBcnJheSAqY2hhbmdlZEFycmF5ID0gQFtA
MywgQDIsIEAxXTsKLSAgICBbdXNlckRlZmF1bHRzLmdldCgpIHNldE9iamVjdDpjaGFuZ2VkQXJy
YXkgZm9yS2V5OkAidGVzdGtleSJdOworICAgIFt1c2VyRGVmYXVsdHMuZ2V0KCkgc2V0T2JqZWN0
OmNoYW5nZWRBcnJheSBmb3JLZXk6KE5TU3RyaW5nICopdGVzdEtleV07CiAKICAgICBhdXRvIGVu
Y29kZWRTdHJpbmcgPSBwcmVmZXJlbmNlVmFsdWUoKTsKICAgICBhdXRvIGVuY29kZWREYXRhID0g
YWRvcHROUyhbW05TRGF0YSBhbGxvY10gaW5pdFdpdGhCYXNlNjRFbmNvZGVkU3RyaW5nOmVuY29k
ZWRTdHJpbmcgb3B0aW9uczowXSk7CkBAIC0xMzQsOCArMTM5LDggQEAgVEVTVChXZWJLaXQsIFBy
ZWZlcmVuY2VDaGFuZ2VzRGljdGlvbmFyeQogICAgICAgICBAImIiIDogQDIsCiAgICAgfTsKIAot
ICAgIGF1dG8gdXNlckRlZmF1bHRzID0gYWRvcHROUyhbW05TVXNlckRlZmF1bHRzIGFsbG9jXSBp
bml0V2l0aFN1aXRlTmFtZTpAImNvbS5hcHBsZS5jb3JlbWVkaWEiXSk7Ci0gICAgW3VzZXJEZWZh
dWx0cy5nZXQoKSBzZXRPYmplY3Q6ZGljdCBmb3JLZXk6QCJ0ZXN0a2V5Il07CisgICAgYXV0byB1
c2VyRGVmYXVsdHMgPSBhZG9wdE5TKFtbTlNVc2VyRGVmYXVsdHMgYWxsb2NdIGluaXRXaXRoU3Vp
dGVOYW1lOihOU1N0cmluZyAqKXRlc3REb21haW5dKTsKKyAgICBbdXNlckRlZmF1bHRzLmdldCgp
IHNldE9iamVjdDpkaWN0IGZvcktleTooTlNTdHJpbmcgKil0ZXN0S2V5XTsKIAogICAgIGF1dG8g
Y29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBp
bml0XSk7CiAgICAgV0tSZXRhaW5QdHI8V0tDb250ZXh0UmVmPiBjb250ZXh0ID0gYWRvcHRXSyhU
ZXN0V2ViS2l0QVBJOjpVdGlsOjpjcmVhdGVDb250ZXh0Rm9ySW5qZWN0ZWRCdW5kbGVUZXN0KCJJ
bnRlcm5hbHNJbmplY3RlZEJ1bmRsZVRlc3QiKSk7CkBAIC0xNDMsNyArMTQ4LDggQEAgVEVTVChX
ZWJLaXQsIFByZWZlcmVuY2VDaGFuZ2VzRGljdGlvbmFyeQogICAgIGF1dG8gd2ViVmlldyA9IGFk
b3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwg
MCwgMzAwLCAzMDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbi5nZXQoKSBhZGRUb1dpbmRv
dzpZRVNdKTsKIAogICAgIGF1dG8gcHJlZmVyZW5jZVZhbHVlID0gWyZdIHsKLSAgICAgICAgcmV0
dXJuIFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJ3aW5kb3cuaW50ZXJu
YWxzLmVuY29kZWRQcmVmZXJlbmNlVmFsdWUoXCJjb20uYXBwbGUuY29yZW1lZGlhXCIsIFwidGVz
dGtleVwiKSJdOworICAgICAgICBOU1N0cmluZyAqanMgPSBbTlNTdHJpbmcgc3RyaW5nV2l0aEZv
cm1hdDpAIndpbmRvdy5pbnRlcm5hbHMuZW5jb2RlZFByZWZlcmVuY2VWYWx1ZShcIiVAXCIsXCIl
QFwiKSIsIChOU1N0cmluZyAqKXRlc3REb21haW4sIChOU1N0cmluZyAqKXRlc3RLZXldOworICAg
ICAgICByZXR1cm4gW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpqc107CiAg
ICAgfTsKIAogICAgIHByZWZlcmVuY2VWYWx1ZSgpOwpAQCAtMTUzLDcgKzE1OSw3IEBAIFRFU1Qo
V2ViS2l0LCBQcmVmZXJlbmNlQ2hhbmdlc0RpY3Rpb25hcnkKICAgICAgICAgQCJiIiA6IEAyLAog
ICAgICAgICBAImMiIDogQDMsCiAgICAgfTsKLSAgICBbdXNlckRlZmF1bHRzLmdldCgpIHNldE9i
amVjdDpjaGFuZ2VkRGljdCBmb3JLZXk6QCJ0ZXN0a2V5Il07CisgICAgW3VzZXJEZWZhdWx0cy5n
ZXQoKSBzZXRPYmplY3Q6Y2hhbmdlZERpY3QgZm9yS2V5OihOU1N0cmluZyAqKXRlc3RLZXldOwog
CiAgICAgYXV0byBlbmNvZGVkU3RyaW5nID0gcHJlZmVyZW5jZVZhbHVlKCk7CiAgICAgYXV0byBl
bmNvZGVkRGF0YSA9IGFkb3B0TlMoW1tOU0RhdGEgYWxsb2NdIGluaXRXaXRoQmFzZTY0RW5jb2Rl
ZFN0cmluZzplbmNvZGVkU3RyaW5nIG9wdGlvbnM6MF0pOwpAQCAtMTY5LDggKzE3NSw4IEBAIFRF
U1QoV2ViS2l0LCBQcmVmZXJlbmNlQ2hhbmdlc0RhdGEpCiB7CiAgICAgTlNEYXRhICpkYXRhID0g
W05TRGF0YSBkYXRhV2l0aEJ5dGVzOiJhYmMiIGxlbmd0aDozXTsKIAotICAgIGF1dG8gdXNlckRl
ZmF1bHRzID0gYWRvcHROUyhbW05TVXNlckRlZmF1bHRzIGFsbG9jXSBpbml0V2l0aFN1aXRlTmFt
ZTpAImNvbS5hcHBsZS5jb3JlbWVkaWEiXSk7Ci0gICAgW3VzZXJEZWZhdWx0cy5nZXQoKSBzZXRP
YmplY3Q6ZGF0YSBmb3JLZXk6QCJ0ZXN0a2V5Il07CisgICAgYXV0byB1c2VyRGVmYXVsdHMgPSBh
ZG9wdE5TKFtbTlNVc2VyRGVmYXVsdHMgYWxsb2NdIGluaXRXaXRoU3VpdGVOYW1lOihOU1N0cmlu
ZyAqKXRlc3REb21haW5dKTsKKyAgICBbdXNlckRlZmF1bHRzLmdldCgpIHNldE9iamVjdDpkYXRh
IGZvcktleTooTlNTdHJpbmcgKil0ZXN0S2V5XTsKIAogICAgIGF1dG8gY29uZmlndXJhdGlvbiA9
IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CiAgICAgV0tS
ZXRhaW5QdHI8V0tDb250ZXh0UmVmPiBjb250ZXh0ID0gYWRvcHRXSyhUZXN0V2ViS2l0QVBJOjpV
dGlsOjpjcmVhdGVDb250ZXh0Rm9ySW5qZWN0ZWRCdW5kbGVUZXN0KCJJbnRlcm5hbHNJbmplY3Rl
ZEJ1bmRsZVRlc3QiKSk7CkBAIC0xNzgsMTMgKzE4NCwxNCBAQCBURVNUKFdlYktpdCwgUHJlZmVy
ZW5jZUNoYW5nZXNEYXRhKQogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJW
aWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgMzAwLCAzMDApIGNvbmZp
Z3VyYXRpb246Y29uZmlndXJhdGlvbi5nZXQoKSBhZGRUb1dpbmRvdzpZRVNdKTsKIAogICAgIGF1
dG8gcHJlZmVyZW5jZVZhbHVlID0gWyZdIHsKLSAgICAgICAgcmV0dXJuIFt3ZWJWaWV3IHN0cmlu
Z0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJ3aW5kb3cuaW50ZXJuYWxzLmVuY29kZWRQcmVmZXJl
bmNlVmFsdWUoXCJjb20uYXBwbGUuY29yZW1lZGlhXCIsIFwidGVzdGtleVwiKSJdOworICAgICAg
ICBOU1N0cmluZyAqanMgPSBbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpAIndpbmRvdy5pbnRl
cm5hbHMuZW5jb2RlZFByZWZlcmVuY2VWYWx1ZShcIiVAXCIsXCIlQFwiKSIsIChOU1N0cmluZyAq
KXRlc3REb21haW4sIChOU1N0cmluZyAqKXRlc3RLZXldOworICAgICAgICByZXR1cm4gW3dlYlZp
ZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpqc107CiAgICAgfTsKIAogICAgIHByZWZl
cmVuY2VWYWx1ZSgpOwogCiAgICAgTlNEYXRhICpjaGFuZ2VkRGF0YSA9IFtOU0RhdGEgZGF0YVdp
dGhCeXRlczoiYWJjZCIgbGVuZ3RoOjRdOwotICAgIFt1c2VyRGVmYXVsdHMuZ2V0KCkgc2V0T2Jq
ZWN0OmNoYW5nZWREYXRhIGZvcktleTpAInRlc3RrZXkiXTsKKyAgICBbdXNlckRlZmF1bHRzLmdl
dCgpIHNldE9iamVjdDpjaGFuZ2VkRGF0YSBmb3JLZXk6KE5TU3RyaW5nICopdGVzdEtleV07CiAK
ICAgICBhdXRvIGVuY29kZWRTdHJpbmcgPSBwcmVmZXJlbmNlVmFsdWUoKTsKICAgICBhdXRvIGVu
Y29kZWREYXRhID0gYWRvcHROUyhbW05TRGF0YSBhbGxvY10gaW5pdFdpdGhCYXNlNjRFbmNvZGVk
U3RyaW5nOmVuY29kZWRTdHJpbmcgb3B0aW9uczowXSk7CkBAIC0yMDAsOCArMjA3LDggQEAgVEVT
VChXZWJLaXQsIFByZWZlcmVuY2VDaGFuZ2VzRGF0ZSkKIHsKICAgICBOU0RhdGUgKmRhdGUgPSBb
TlNEYXRlIGRhdGVXaXRoVGltZUludGVydmFsU2luY2VOb3c6MF07CiAKLSAgICBhdXRvIHVzZXJE
ZWZhdWx0cyA9IGFkb3B0TlMoW1tOU1VzZXJEZWZhdWx0cyBhbGxvY10gaW5pdFdpdGhTdWl0ZU5h
bWU6QCJjb20uYXBwbGUuY29yZW1lZGlhIl0pOwotICAgIFt1c2VyRGVmYXVsdHMuZ2V0KCkgc2V0
T2JqZWN0OmRhdGUgZm9yS2V5OkAidGVzdGtleSJdOworICAgIGF1dG8gdXNlckRlZmF1bHRzID0g
YWRvcHROUyhbW05TVXNlckRlZmF1bHRzIGFsbG9jXSBpbml0V2l0aFN1aXRlTmFtZTooTlNTdHJp
bmcgKil0ZXN0RG9tYWluXSk7CisgICAgW3VzZXJEZWZhdWx0cy5nZXQoKSBzZXRPYmplY3Q6ZGF0
ZSBmb3JLZXk6KE5TU3RyaW5nICopdGVzdEtleV07CiAKICAgICBhdXRvIGNvbmZpZ3VyYXRpb24g
PSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOwogICAgIFdL
UmV0YWluUHRyPFdLQ29udGV4dFJlZj4gY29udGV4dCA9IGFkb3B0V0soVGVzdFdlYktpdEFQSTo6
VXRpbDo6Y3JlYXRlQ29udGV4dEZvckluamVjdGVkQnVuZGxlVGVzdCgiSW50ZXJuYWxzSW5qZWN0
ZWRCdW5kbGVUZXN0IikpOwpAQCAtMjA5LDEzICsyMTYsMTQgQEAgVEVTVChXZWJLaXQsIFByZWZl
cmVuY2VDaGFuZ2VzRGF0ZSkKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2Vi
VmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDMwMCwgMzAwKSBjb25m
aWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCkgYWRkVG9XaW5kb3c6WUVTXSk7CiAKICAgICBh
dXRvIHByZWZlcmVuY2VWYWx1ZSA9IFsmXSB7Ci0gICAgICAgIHJldHVybiBbd2ViVmlldyBzdHJp
bmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAid2luZG93LmludGVybmFscy5lbmNvZGVkUHJlZmVy
ZW5jZVZhbHVlKFwiY29tLmFwcGxlLmNvcmVtZWRpYVwiLCBcInRlc3RrZXlcIikiXTsKKyAgICAg
ICAgTlNTdHJpbmcgKmpzID0gW05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCJ3aW5kb3cuaW50
ZXJuYWxzLmVuY29kZWRQcmVmZXJlbmNlVmFsdWUoXCIlQFwiLFwiJUBcIikiLCAoTlNTdHJpbmcg
Kil0ZXN0RG9tYWluLCAoTlNTdHJpbmcgKil0ZXN0S2V5XTsKKyAgICAgICAgcmV0dXJuIFt3ZWJW
aWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6anNdOwogICAgIH07CiAKICAgICBwcmVm
ZXJlbmNlVmFsdWUoKTsKIAogICAgIE5TRGF0ZSAqY2hhbmdlZERhdGUgPSBbTlNEYXRlIGRhdGVX
aXRoVGltZUludGVydmFsU2luY2VOb3c6MTBdOwotICAgIFt1c2VyRGVmYXVsdHMuZ2V0KCkgc2V0
T2JqZWN0OmNoYW5nZWREYXRlIGZvcktleTpAInRlc3RrZXkiXTsKKyAgICBbdXNlckRlZmF1bHRz
LmdldCgpIHNldE9iamVjdDpjaGFuZ2VkRGF0ZSBmb3JLZXk6KE5TU3RyaW5nICopdGVzdEtleV07
CiAKICAgICBhdXRvIGVuY29kZWRTdHJpbmcgPSBwcmVmZXJlbmNlVmFsdWUoKTsKICAgICBhdXRv
IGVuY29kZWREYXRhID0gYWRvcHROUyhbW05TRGF0YSBhbGxvY10gaW5pdFdpdGhCYXNlNjRFbmNv
ZGVkU3RyaW5nOmVuY29kZWRTdHJpbmcgb3B0aW9uczowXSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>394011</attachid>
            <date>2020-03-19 13:21:07 -0700</date>
            <delta_ts>2020-03-20 10:27:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209244-20200319132106.patch</filename>
            <type>text/plain</type>
            <size>21374</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyNTg3MTYpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDIwLTAzLTE5ICBQZXIgQXJuZSBWb2xsYW4gIDxw
dm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIEZpeCBsYXVuY2ggdGltZSByZWdy
ZXNzaW9uIHdpdGggQ0YgcHJlZnMgZGlyZWN0IG1vZGUgZW5hYmxlZAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA5MjQ0CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmUtZW5hYmxlIENGIHByZWZzIGRpcmVj
dCBtb2RlLgorCisgICAgICAgICogd3RmL1BsYXRmb3JtRW5hYmxlLmg6CisKIDIwMjAtMDMtMTkg
IENoYXJsaWUgVHVybmVyICA8Y3R1cm5lckBpZ2FsaWEuY29tPgogCiAgICAgICAgIEZpeCBtYW55
IHdhcm5pbmdzIHdpdGggQ2xhbmcgNy4wIG9uIEdUSyB4ODYtNjQgaW4gRGVidWcuCkluZGV4OiBT
b3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJsZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYv
d3RmL1BsYXRmb3JtRW5hYmxlLmgJKHJldmlzaW9uIDI1ODcxNikKKysrIFNvdXJjZS9XVEYvd3Rm
L1BsYXRmb3JtRW5hYmxlLmgJKHdvcmtpbmcgY29weSkKQEAgLTg3MSw0ICs4NzEsOCBAQAogI2Vy
cm9yICJFTkFCTEUoV0VCR0wyKSByZXF1aXJlcyBFTkFCTEUoV0VCR0wpIgogI2VuZGlmCiAKKyNp
ZiBQTEFURk9STShDT0NPQSkKKyNkZWZpbmUgRU5BQkxFX0NGUFJFRlNfRElSRUNUX01PREUgMQor
I2Vsc2UKICNkZWZpbmUgRU5BQkxFX0NGUFJFRlNfRElSRUNUX01PREUgMAorI2VuZGlmCkluZGV4
OiBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwkocmV2aXNpb24gMjU4NzE2KQorKysgU291cmNlL1dlYktpdC9DaGFuZ2VMb2cJKHdv
cmtpbmcgY29weSkKQEAgLTEsMyArMSwyMiBAQAorMjAyMC0wMy0xOCAgUGVyIEFybmUgVm9sbGFu
ICA8cHZvbGxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBGaXggbGF1bmNoIHRpbWUg
cmVncmVzc2lvbiB3aXRoIENGIHByZWZzIGRpcmVjdCBtb2RlIGVuYWJsZWQKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwOTI0NAorICAgICAgICA8cmRh
cjovL3Byb2JsZW0vNjA1NDIxNDk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgV2hlbiBDRiBwcmVmcyBkaXJlY3QgbW9kZSB3YXMgZW5hYmxlZCBpbiBo
dHRwczovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMjU4MDY0L3dlYmtpdCwgaXQgaW50cm9k
dWNlZAorICAgICAgICBhIHNpZ25pZmljYW50IGxhdW5jaCB0aW1lIHJlZ3Jlc3Npb24uIFRoaXMg
cmVncmVzc2lvbiBzaG91bGQgYmUgZml4ZWQuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2Ev
UHJlZmVyZW5jZU9ic2VydmVyLm1tOgorICAgICAgICAoLVtXS1ByZWZlcmVuY2VPYnNlcnZlciBp
bml0XSk6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW06
CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemUpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6cmVnaXN0ZXJOb3RpZmljYXRpb25PYnNl
cnZlcnMpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6dW5yZWdpc3Rlck5vdGlm
aWNhdGlvbk9ic2VydmVycyk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmg6
CisKIDIwMjAtMDMtMTkgIFBlciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29tPgogCiAg
ICAgICAgIFtpT1NdIEFkZCB0ZWxlbWV0cnkgZm9yIG1lc3NhZ2UgZmlsdGVyaW5nCkluZGV4OiBT
b3VyY2UvV2ViS2l0L1Jlc291cmNlcy9TYW5kYm94UHJvZmlsZXMvaW9zL2NvbS5hcHBsZS5XZWJL
aXQuV2ViQ29udGVudC5zYgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1Jlc291cmNlcy9T
YW5kYm94UHJvZmlsZXMvaW9zL2NvbS5hcHBsZS5XZWJLaXQuV2ViQ29udGVudC5zYgkocmV2aXNp
b24gMjU4NzE2KQorKysgU291cmNlL1dlYktpdC9SZXNvdXJjZXMvU2FuZGJveFByb2ZpbGVzL2lv
cy9jb20uYXBwbGUuV2ViS2l0LldlYkNvbnRlbnQuc2IJKHdvcmtpbmcgY29weSkKQEAgLTUzNiw3
ICs1MzYsNiBAQAogKGFsbG93IG1hY2gtbG9va3VwCiAgICAgKGdsb2JhbC1uYW1lICJjb20uYXBw
bGUubG9nZCIpCiAgICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUubG9nZC5ldmVudHMiKQotICAg
IChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLmNmcHJlZnNkLmRhZW1vbiIpCiApCiAKIChkZW55IG1h
Y2gtbG9va3VwICh3aXRoIHRlbGVtZXRyeSkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlByb2Nlc3NQb29sLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Bvb2wuaAkocmV2aXNpb24gMjU4NzE2KQorKysgU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAkod29ya2luZyBjb3B5KQpAQCAtODExLDEwICs4MTEsNiBA
QCBwcml2YXRlOgogICAgIGJvb2wgbV9pc0RlbGF5ZWRXZWJQcm9jZXNzTGF1bmNoRGlzYWJsZWQg
eyBmYWxzZSB9OwogI2VuZGlmCiAgICAgYm9vbCBtX3VzZVNlcGFyYXRlU2VydmljZVdvcmtlclBy
b2Nlc3MgeyBmYWxzZSB9OwotCi0jaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgUmV0YWluUHRyPFdL
UHJlZmVyZW5jZU9ic2VydmVyPiBtX3ByZWZlcmVuY2VPYnNlcnZlcjsKLSNlbmRpZgogfTsKIAog
dGVtcGxhdGU8dHlwZW5hbWUgVD4KSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29h
L1ByZWZlcmVuY2VPYnNlcnZlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0NvY29hL1ByZWZlcmVuY2VPYnNlcnZlci5oCShyZXZpc2lvbiAyNTg3MTYpCisrKyBTb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9QcmVmZXJlbmNlT2JzZXJ2ZXIuaAkod29ya2luZyBj
b3B5KQpAQCAtNDYsNiArNDYsNSBAQCBfX2F0dHJpYnV0ZV9fKCh2aXNpYmlsaXR5KCJkZWZhdWx0
IikpKQogICAgIFZlY3RvcjxSZXRhaW5QdHI8V0tVc2VyRGVmYXVsdHM+PiBtX3VzZXJEZWZhdWx0
czsKIH0KICsgKGlkKXNoYXJlZEluc3RhbmNlOwotKyAodm9pZClzd2l6emxlUmVnaXN0ZXJEZWZh
dWx0czsKIC0gKHZvaWQpcHJlZmVyZW5jZURpZENoYW5nZTooTlNTdHJpbmcgKilkb21haW4ga2V5
OihOU1N0cmluZyAqKWtleSBlbmNvZGVkVmFsdWU6KE5TU3RyaW5nICopZW5jb2RlZFZhbHVlOwog
QGVuZApJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvUHJlZmVyZW5jZU9ic2Vy
dmVyLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1ByZWZl
cmVuY2VPYnNlcnZlci5tbQkocmV2aXNpb24gMjU4NzE2KQorKysgU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQ29jb2EvUHJlZmVyZW5jZU9ic2VydmVyLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yOCwz
MSArMjgsMTIgQEAKIAogI2ltcG9ydCAiV2ViUHJvY2Vzc1Bvb2wuaCIKIAotI2ltcG9ydCA8d3Rm
L09iakNSdW50aW1lRXh0cmFzLmg+Ci0KLXN0YXRpYyBJTVAgcmVnaXN0ZXJEZWZhdWx0c09yaWdp
bmFsID0gbmlsOwotc3RhdGljIGJvb2wgcmVnaXN0ZXJpbmdEZWZhdWx0cyA9IGZhbHNlOwotCi1z
dGF0aWMgdm9pZCByZWdpc3RlckRlZmF1bHRzT3ZlcnJpZGUoaWQgc2VsZiwgU0VMIHNlbGVjdG9y
LCBOU0RpY3Rpb25hcnk8TlNTdHJpbmcgKiwgaWQ+ICpkaWN0aW9uYXJ5KQotewotICAgIHJlZ2lz
dGVyaW5nRGVmYXVsdHMgPSB0cnVlOwotICAgIGlmIChyZWdpc3RlckRlZmF1bHRzT3JpZ2luYWwp
Ci0gICAgICAgIHd0ZkNhbGxJTVA8dm9pZD4ocmVnaXN0ZXJEZWZhdWx0c09yaWdpbmFsLCBzZWxm
LCBzZWxlY3RvciwgZGljdGlvbmFyeSk7Ci0gICAgcmVnaXN0ZXJpbmdEZWZhdWx0cyA9IGZhbHNl
OwotfQotCiBAaW1wbGVtZW50YXRpb24gV0tVc2VyRGVmYXVsdHMKIAogLSAodm9pZClfbm90aWZ5
T2JzZXJ2ZXJzT2ZDaGFuZ2VGcm9tVmFsdWVzRm9yS2V5czooTlNEaWN0aW9uYXJ5PE5TU3RyaW5n
ICosIGlkPiAqKW9sZFZhbHVlcyB0b1ZhbHVlc0ZvcktleXM6KE5TRGljdGlvbmFyeTxOU1N0cmlu
ZyAqLCBpZD4gKiluZXdWYWx1ZXMKIHsKLSAgICBpZiAocmVnaXN0ZXJpbmdEZWZhdWx0cykKLSAg
ICAgICAgcmV0dXJuOwotCiAgICAgW3N1cGVyIF9ub3RpZnlPYnNlcnZlcnNPZkNoYW5nZUZyb21W
YWx1ZXNGb3JLZXlzOm9sZFZhbHVlcyB0b1ZhbHVlc0ZvcktleXM6bmV3VmFsdWVzXTsKIAotICAg
IGlmIChbb2xkVmFsdWVzIGlzRXF1YWxUb0RpY3Rpb25hcnk6bmV3VmFsdWVzXSkKLSAgICAgICAg
cmV0dXJuOwotCiAgICAgZm9yIChOU1N0cmluZyAqa2V5IGluIG9sZFZhbHVlcykgewogICAgICAg
ICBpZCBvbGRWYWx1ZSA9IG9sZFZhbHVlc1trZXldOwogICAgICAgICBpZCBuZXdWYWx1ZSA9IG5l
d1ZhbHVlc1trZXldOwpAQCAtMTAxLDEwMyArODIsMzMgQEAgKyAoaWQpc2hhcmVkSW5zdGFuY2UK
ICAgICByZXR1cm4gaW5zdGFuY2U7CiB9CiAKLSsgKHZvaWQpc3dpenpsZVJlZ2lzdGVyRGVmYXVs
dHMKLXsKLSAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgb25jZUZsYWc7Ci0gICAgc3RkOjpjYWxs
X29uY2Uob25jZUZsYWcsIFtdIHsKLSAgICAgICAgTWV0aG9kIHJlZ2lzdGVyRGVmYXVsdHNNZXRo
b2QgPSBjbGFzc19nZXRJbnN0YW5jZU1ldGhvZChvYmpjX2dldENsYXNzKCJOU1VzZXJEZWZhdWx0
cyIpLCBAc2VsZWN0b3IocmVnaXN0ZXJEZWZhdWx0czopKTsKLSAgICAgICAgcmVnaXN0ZXJEZWZh
dWx0c09yaWdpbmFsID0gbWV0aG9kX3NldEltcGxlbWVudGF0aW9uKHJlZ2lzdGVyRGVmYXVsdHNN
ZXRob2QsIChJTVApcmVnaXN0ZXJEZWZhdWx0c092ZXJyaWRlKTsKLSAgICB9KTsKLX0KLQogLSAo
aW5zdGFuY2V0eXBlKWluaXQKIHsKICAgICBzdGQ6OmluaXRpYWxpemVyX2xpc3Q8TlNTdHJpbmcq
PiBkb21haW5zID0gewotICAgICAgICBAImNvbS5hcHBsZS5BY2Nlc3NpYmlsaXR5IiwKICNpZiBQ
TEFURk9STShJT1NfRkFNSUxZKQorICAgICAgICBAImNvbS5hcHBsZS5BY2Nlc3NpYmlsaXR5IiwK
ICAgICAgICAgQCJjb20uYXBwbGUuQWRMaWIiLAotICAgICAgICBAImNvbS5hcHBsZS5DRk5ldHdv
cmsiLAotICAgICAgICBAImNvbS5hcHBsZS5FbW9qaVByZWZlcmVuY2VzIiwKLSAgICAgICAgQCJj
b20uYXBwbGUuRm9udFBhcnNlciIsCi0gICAgICAgIEAiY29tLmFwcGxlLkltYWdlSU8iLAotICAg
ICAgICBAImNvbS5hcHBsZS5JbnB1dE1vZGVQcmVmZXJlbmNlcyIsCi0jZWxzZQotICAgICAgICBA
ImNvbS5hcHBsZS5BVFMiLAotICAgICAgICBAImNvbS5hcHBsZS5Db3JlR3JhcGhpY3MiLAotICAg
ICAgICBAImNvbS5hcHBsZS5Eb3dubG9hZEFzc2Vzc21lbnQiLAotICAgICAgICBAImNvbS5hcHBs
ZS5ISVRvb2xib3giLAotI2VuZGlmCi0gICAgICAgIEAiY29tLmFwcGxlLkxhdW5jaFNlcnZpY2Vz
IiwKLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgICAgICBAImNvbS5hcHBsZS5NZXRhbCIs
Ci0gICAgICAgIEAiY29tLmFwcGxlLk1vYmlsZUFzc2V0IiwKICAgICAgICAgQCJjb20uYXBwbGUu
UHJlZmVyZW5jZXMiLAotICAgICAgICBAImNvbS5hcHBsZS5TcGVha1NlbGVjdGlvbiIsCiAgICAg
ICAgIEAiY29tLmFwcGxlLlVJS2l0IiwKLSAgICAgICAgQCJjb20uYXBwbGUuVm9pY2VPdmVyVG91
Y2giLAotI2Vsc2UKLSAgICAgICAgQCJjb20uYXBwbGUuTXVsdGl0b3VjaFN1cHBvcnQiCi0gICAg
ICAgIEAiY29tLmFwcGxlLlNlcnZpY2VzTWVudS5TZXJ2aWNlcyIKLSAgICAgICAgQCJjb20uYXBw
bGUuVmlld0JyaWRnZSIKLSNlbmRpZgotICAgICAgICBAImNvbS5hcHBsZS5XZWJGb3VuZGF0aW9u
IiwKLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgICAgICBAImNvbS5hcHBsZS5XZWJLaXQu
V2ViQ29udGVudCIsCi0gICAgICAgIEAiY29tLmFwcGxlLldlYlVJIiwKLSAgICAgICAgQCJjb20u
YXBwbGUuYWlycGxheSIsCi0gICAgICAgIEAiY29tLmFwcGxlLmFwcGxlanBlZyIsCi0gICAgICAg
IEAiY29tLmFwcGxlLmF1ZGlvLnZpcnR1YWxhdWRpbyIsCiAgICAgICAgIEAiY29tLmFwcGxlLmF2
ZmF1ZGlvIiwKLSNlbmRpZgotICAgICAgICBAImNvbS5hcHBsZS5hdmZvdW5kYXRpb24iLAotICAg
ICAgICBAImNvbS5hcHBsZS5hdmZvdW5kYXRpb24uZnJlY2VudHMiLAotICAgICAgICBAImNvbS5h
cHBsZS5hdmZvdW5kYXRpb24udmlkZW9wZXJmb3JtYW5jZWh1ZCIsCi0jaWYgUExBVEZPUk0oSU9T
X0ZBTUlMWSkKLSAgICAgICAgQCJjb20uYXBwbGUuYXZraXQiLAotICAgICAgICBAImNvbS5hcHBs
ZS5jb3JlYW5pbWF0aW9uIiwKLSAgICAgICAgQCJjb20uYXBwbGUuY29yZWF1ZGlvIiwKLSNlbmRp
ZgotICAgICAgICBAImNvbS5hcHBsZS5jb3JlbWVkaWEiLAotI2lmIFBMQVRGT1JNKElPU19GQU1J
TFkpCi0gICAgICAgIEAiY29tLmFwcGxlLmNvcmV2aWRlbyIsCi0gICAgICAgIEAiY29tLmFwcGxl
LmRhIiwKLSAgICAgICAgQCJjb20uYXBwbGUuaGFuZ3RyYWNlciIsCi0gICAgICAgIEAiY29tLmFw
cGxlLmluZGlnbyIsCi0gICAgICAgIEAiY29tLmFwcGxlLmlva2l0LklPTW9iaWxlR3JhcGhpY3NG
YW1pbHkiLAogICAgICAgICBAImNvbS5hcHBsZS5pdHVuZXNzdG9yZWQiLAotICAgICAgICBAImNv
bS5hcHBsZS5rZXlib2FyZCIsCi0jZWxzZQotICAgICAgICBAImNvbS5hcHBsZS5jcnlwdG8iLAot
ICAgICAgICBAImNvbS5hcHBsZS5kcml2ZXIuQXBwbGVCbHVldG9vdGhNdWx0aXRvdWNoLm1vdXNl
IiwKLSAgICAgICAgQCJjb20uYXBwbGUuZHJpdmVyLkFwcGxlQmx1ZXRvb3RoTXVsdGl0b3VjaC50
cmFja3BhZCIsCi0gICAgICAgIEAiY29tLmFwcGxlLmRyaXZlci5BcHBsZUhJRE1vdXNlIgotI2Vu
ZGlmCi0gICAgICAgIEAiY29tLmFwcGxlLmxvb2t1cC5zaGFyZWQiLAotICAgICAgICBAImNvbS5h
cHBsZS5tZWRpYWFjY2Vzc2liaWxpdHkiLAotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAg
ICAgIEAiY29tLmFwcGxlLm1lZGlhYWNjZXNzaWJpbGl0eS5wdWJsaWMiLAogICAgICAgICBAImNv
bS5hcHBsZS5tZWRpYXJlbW90ZSIsCi0gICAgICAgIEAiY29tLmFwcGxlLm1vYmlsZWlwb2QiLAot
ICAgICAgICBAImNvbS5hcHBsZS5tdCIsCi0jZWxzZQotICAgICAgICBAImNvbS5hcHBsZS5uZXR3
b3JrQ29ubmVjdCIKLSNlbmRpZgotICAgICAgICBAImNvbS5hcHBsZS5vcGVuZ2wiLAotI2lmIFBM
QVRGT1JNKElPU19GQU1JTFkpCiAgICAgICAgIEAiY29tLmFwcGxlLnByZWZlcmVuY2VzLnNvdW5k
cyIsCi0gICAgICAgIEAiY29tLmFwcGxlLnNlY3VyaXR5IiwKICAgICAgICAgQCJjb20uYXBwbGUu
dm9pY2VzZXJ2aWNlcyIsCi0gICAgICAgIEAiY29tLmFwcGxlLnZvaWNlc2VydmljZXMubG9nZ2lu
ZyIsCisgICAgICAgIEAia0NGUHJlZmVyZW5jZXNBbnlBcHBsaWNhdGlvbiIsCiAjZWxzZQorICAg
ICAgICBAImNvbS5hcHBsZS5Db3JlR3JhcGhpY3MiLAorICAgICAgICBAImNvbS5hcHBsZS5ISVRv
b2xib3giLAorICAgICAgICBAImNvbS5hcHBsZS5TZXJ2aWNlc01lbnUuU2VydmljZXMiLAorICAg
ICAgICBAImNvbS5hcHBsZS5WaWV3QnJpZGdlIiwKKyAgICAgICAgQCJjb20uYXBwbGUuYXZmb3Vu
ZGF0aW9uIiwKKyAgICAgICAgQCJjb20uYXBwbGUuYXZmb3VuZGF0aW9uLnZpZGVvcGVyZm9ybWFu
Y2VodWQiLAorICAgICAgICBAImNvbS5hcHBsZS5kcml2ZXIuQXBwbGVCbHVldG9vdGhNdWx0aXRv
dWNoLm1vdXNlIiwKKyAgICAgICAgQCJjb20uYXBwbGUuZHJpdmVyLkFwcGxlQmx1ZXRvb3RoTXVs
dGl0b3VjaC50cmFja3BhZCIsCisgICAgICAgIEAiY29tLmFwcGxlLm1lZGlhYWNjZXNzaWJpbGl0
eSIsCiAgICAgICAgIEAiY29tLmFwcGxlLnNwZWVjaC52b2ljZS5wcmVmcyIsCi0gICAgICAgIEAi
Y29tLmFwcGxlLnN5c3RlbXNvdW5kIiwKICAgICAgICAgQCJjb20uYXBwbGUudW5pdmVyc2FsYWNj
ZXNzIiwKLSAgICAgICAgQCJjb20ubnZpZGlhLk9wZW5HTCIsCi0gICAgICAgIEAiZWR1Lm1pdC5L
ZXJiZXJvcyIsCi0jZW5kaWYKICAgICAgICAgQCJrQ0ZQcmVmZXJlbmNlc0FueUFwcGxpY2F0aW9u
IiwKLSNpZiAhUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICAgICAgQCJwYnMiLAogI2VuZGlmCiAg
ICAgfTsKIApJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bv
b2xDb2NvYS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9X
ZWJQcm9jZXNzUG9vbENvY29hLm1tCShyZXZpc2lvbiAyNTg3MTYpCisrKyBTb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tCSh3b3JraW5nIGNvcHkpCkBA
IC0xNzMsMTQgKzE3Myw2IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6
ZSgKICAgICAgICAgaW5zdGFsbE1lbW9yeVByZXNzdXJlSGFuZGxlcigpOwogCiAgICAgc2V0TGVn
YWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyQ2xpZW50KG1ha2VVbmlxdWU8TGVnYWN5Q3VzdG9tUHJv
dG9jb2xNYW5hZ2VyQ2xpZW50PigpKTsKLQotI2lmIEVOQUJMRShDRlBSRUZTX0RJUkVDVF9NT0RF
KQotICAgIFtXS1ByZWZlcmVuY2VPYnNlcnZlciBzd2l6emxlUmVnaXN0ZXJEZWZhdWx0c107Ci0g
ICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0Y2hfZ2V0X2dsb2JhbF9xdWV1ZShRT1NfQ0xBU1NfQkFD
S0dST1VORCwgMCksIF57Ci0gICAgICAgIC8vIFN0YXJ0IG9ic2VydmluZyBwcmVmZXJlbmNlIGNo
YW5nZXMuCi0gICAgICAgIFtXS1ByZWZlcmVuY2VPYnNlcnZlciBzaGFyZWRJbnN0YW5jZV07Ci0g
ICAgfSk7Ci0jZW5kaWYKIH0KIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCkBAIC00NTAsMTMg
KzQ0MiwxOSBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemVXCiAgICAg
ICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JNYWNoTG9va3VwKHNlcnZp
Y2VzW2ldLCBXVEY6Om51bGxvcHQsIHBhcmFtZXRlcnMubWVkaWFFeHRlbnNpb25IYW5kbGVzW2ld
KTsKICAgICB9CiAKLSNpZiBFTkFCTEUoQ0ZQUkVGU19ESVJFQ1RfTU9ERSkgJiYgUExBVEZPUk0o
SU9TX0ZBTUlMWSkKKyNpZiBFTkFCTEUoQ0ZQUkVGU19ESVJFQ1RfTU9ERSkKKyNpZiBQTEFURk9S
TShJT1NfRkFNSUxZKQogICAgIGlmIChfQVhTQXBwbGljYXRpb25BY2Nlc3NpYmlsaXR5RW5hYmxl
ZCgpKSB7CiAgICAgICAgIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBwcmVmZXJlbmNlc0V4dGVu
c2lvbkhhbmRsZTsKICAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yTWFj
aExvb2t1cCgiY29tLmFwcGxlLmNmcHJlZnNkLmRhZW1vbiIsIFdURjo6bnVsbG9wdCwgcHJlZmVy
ZW5jZXNFeHRlbnNpb25IYW5kbGUpOwogICAgICAgICBwYXJhbWV0ZXJzLnByZWZlcmVuY2VzRXh0
ZW5zaW9uSGFuZGxlID0gV1RGTW92ZShwcmVmZXJlbmNlc0V4dGVuc2lvbkhhbmRsZSk7CiAgICAg
fQogI2VuZGlmCisgICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0Y2hfZ2V0X2dsb2JhbF9xdWV1ZShE
SVNQQVRDSF9RVUVVRV9QUklPUklUWV9ERUZBVUxULCAwKSwgXnsKKyAgICAgICAgLy8gU3RhcnQg
b2JzZXJ2aW5nIHByZWZlcmVuY2UgY2hhbmdlcy4KKyAgICAgICAgW1dLUHJlZmVyZW5jZU9ic2Vy
dmVyIHNoYXJlZEluc3RhbmNlXTsKKyAgICB9KTsKKyNlbmRpZgogfQogCiB2b2lkIFdlYlByb2Nl
c3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemVOZXR3b3JrUHJvY2VzcyhOZXR3b3JrUHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycykKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9jb20uYXBwbGUuV2ViUHJvY2Vzcy5zYi5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvY29tLmFwcGxlLldlYlByb2Nlc3Muc2IuaW4JKHJldmlzaW9uIDI1ODcx
NikKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb20uYXBwbGUuV2ViUHJvY2Vzcy5zYi5p
bgkod29ya2luZyBjb3B5KQpAQCAtNjc4LDcgKzY3OCw2IEBACiAgICAgKHdpdGggcmVwb3J0KSAo
d2l0aCB0ZWxlbWV0cnkpCiAjZW5kaWYKICAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS5Qb3dl
ck1hbmFnZW1lbnQuY29udHJvbCIpCi0gICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUuY2ZwcmVm
c2QuZGFlbW9uIikKICAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS5jb3Jlc2VydmljZXMubGF1
bmNoc2VydmljZXNkIikKICAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS5sc2QubWFwZGIiKQog
ICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLnRydXN0ZC5hZ2VudCIpCkluZGV4OiBUb29scy9D
aGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNTg3MTYp
CisrKyBUb29scy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxMyBAQAorMjAy
MC0wMy0xOSAgUGVyIEFybmUgVm9sbGFuICA8cHZvbGxhbkBhcHBsZS5jb20+CisKKyAgICAgICAg
W0NvY29hXSBGaXggbGF1bmNoIHRpbWUgcmVncmVzc2lvbiB3aXRoIENGIHByZWZzIGRpcmVjdCBt
b2RlIGVuYWJsZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIwOTI0NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvUHJlZmVyZW5jZUNoYW5nZXMubW06Cisg
ICAgICAgIChURVNUKToKKwogMjAyMC0wMy0xOSAgQWFrYXNoIEphaW4gIDxhYWthc2hfamFpbkBh
cHBsZS5jb20+CiAKICAgICAgICAgVXBkYXRlIGJ1aWxkLndlYmtpdC5vcmcgbGluayBmb3IgRVdT
CkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9QcmVmZXJlbmNlQ2hhbmdl
cy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9QcmVm
ZXJlbmNlQ2hhbmdlcy5tbQkocmV2aXNpb24gMjU4NzE2KQorKysgVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXQvUHJlZmVyZW5jZUNoYW5nZXMubW0JKHdvcmtpbmcgY29weSkKQEAgLTQ0
LDE1ICs0NCwxOCBAQCAtICh2b2lkKXByZWZlcmVuY2VEaWRDaGFuZ2U6KE5TU3RyaW5nICopCiB9
CiBAZW5kCiAKK3N0YXRpYyBjb25zdCBDRlN0cmluZ1JlZiB0ZXN0S2V5ID0gQ0ZTVFIoInRlc3Rr
ZXkiKTsKK3N0YXRpYyBjb25zdCBDRlN0cmluZ1JlZiB0ZXN0RG9tYWluID0gQ0ZTVFIoImtDRlBy
ZWZlcmVuY2VzQW55QXBwbGljYXRpb24iKTsKKwogVEVTVChXZWJLaXQsIFByZWZlcmVuY2VPYnNl
cnZlcikKIHsKICAgICBkb25lID0gZmFsc2U7CiAKLSAgICBDRlByZWZlcmVuY2VzU2V0QXBwVmFs
dWUoQ0ZTVFIoInRlc3RrZXkiKSwgQ0ZTVFIoIjEiKSwgQ0ZTVFIoImNvbS5hcHBsZS5jb3JlbWVk
aWEiKSk7CisgICAgQ0ZQcmVmZXJlbmNlc1NldEFwcFZhbHVlKHRlc3RLZXksIENGU1RSKCIxIiks
IHRlc3REb21haW4pOwogCiAgICAgYXV0byBvYnNlcnZlciA9IGFkb3B0TlMoW1tXS1Rlc3RQcmVm
ZXJlbmNlT2JzZXJ2ZXIgYWxsb2NdIGluaXRdKTsKIAotICAgIENGUHJlZmVyZW5jZXNTZXRBcHBW
YWx1ZShDRlNUUigidGVzdGtleSIpLCBDRlNUUigiMiIpLCBDRlNUUigiY29tLmFwcGxlLmNvcmVt
ZWRpYSIpKTsKKyAgICBDRlByZWZlcmVuY2VzU2V0QXBwVmFsdWUodGVzdEtleSwgQ0ZTVFIoIjIi
KSwgdGVzdERvbWFpbik7CiAKICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOwog
fQpAQCAtNjMsMjIgKzY2LDIyIEBAIFRFU1QoV2ViS2l0LCBQcmVmZXJlbmNlT2JzZXJ2ZXJBcnJh
eSkKIAogICAgIE5TQXJyYXkgKmFycmF5ID0gQFtAMSwgQDIsIEAzXTsKIAotICAgIGF1dG8gdXNl
ckRlZmF1bHRzID0gYWRvcHROUyhbW05TVXNlckRlZmF1bHRzIGFsbG9jXSBpbml0V2l0aFN1aXRl
TmFtZTpAImNvbS5hcHBsZS5jb3JlbWVkaWEiXSk7Ci0gICAgW3VzZXJEZWZhdWx0cy5nZXQoKSBz
ZXRPYmplY3Q6YXJyYXkgZm9yS2V5OkAidGVzdGtleSJdOworICAgIGF1dG8gdXNlckRlZmF1bHRz
ID0gYWRvcHROUyhbW05TVXNlckRlZmF1bHRzIGFsbG9jXSBpbml0V2l0aFN1aXRlTmFtZTooTlNT
dHJpbmcgKil0ZXN0RG9tYWluXSk7CisgICAgW3VzZXJEZWZhdWx0cy5nZXQoKSBzZXRPYmplY3Q6
YXJyYXkgZm9yS2V5OihOU1N0cmluZyAqKXRlc3RLZXldOwogCiAgICAgYXV0byBvYnNlcnZlciA9
IGFkb3B0TlMoW1tXS1Rlc3RQcmVmZXJlbmNlT2JzZXJ2ZXIgYWxsb2NdIGluaXRdKTsKIAogICAg
IE5TQXJyYXkgKmNoYW5nZWRBcnJheSA9IEBbQDMsIEAyLCBAMV07Ci0gICAgW3VzZXJEZWZhdWx0
cy5nZXQoKSBzZXRPYmplY3Q6Y2hhbmdlZEFycmF5IGZvcktleTpAInRlc3RrZXkiXTsKKyAgICBb
dXNlckRlZmF1bHRzLmdldCgpIHNldE9iamVjdDpjaGFuZ2VkQXJyYXkgZm9yS2V5OihOU1N0cmlu
ZyAqKXRlc3RLZXldOwogCiAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKIH0K
IAogVEVTVChXZWJLaXQsIFByZWZlcmVuY2VDaGFuZ2VzKQogewotICAgIENGUHJlZmVyZW5jZXNT
ZXRBcHBWYWx1ZShDRlNUUigidGVzdGtleSIpLCBDRlNUUigiMSIpLCBDRlNUUigiY29tLmFwcGxl
LmNvcmVtZWRpYSIpKTsKKyAgICBDRlByZWZlcmVuY2VzU2V0QXBwVmFsdWUodGVzdEtleSwgQ0ZT
VFIoIjEiKSwgdGVzdERvbWFpbik7CiAKLSAgICBFWFBFQ1RfRVEoMSwgQ0ZQcmVmZXJlbmNlc0dl
dEFwcEludGVnZXJWYWx1ZShDRlNUUigidGVzdGtleSIpLCBDRlNUUigiY29tLmFwcGxlLmNvcmVt
ZWRpYSIpLCBudWxscHRyKSk7CisgICAgRVhQRUNUX0VRKDEsIENGUHJlZmVyZW5jZXNHZXRBcHBJ
bnRlZ2VyVmFsdWUodGVzdEtleSwgdGVzdERvbWFpbiwgbnVsbHB0cikpOwogCiAgICAgYXV0byBj
b25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGlu
aXRdKTsKICAgICBXS1JldGFpblB0cjxXS0NvbnRleHRSZWY+IGNvbnRleHQgPSBhZG9wdFdLKFRl
c3RXZWJLaXRBUEk6OlV0aWw6OmNyZWF0ZUNvbnRleHRGb3JJbmplY3RlZEJ1bmRsZVRlc3QoIklu
dGVybmFsc0luamVjdGVkQnVuZGxlVGVzdCIpKTsKQEAgLTg2LDEyICs4OSwxMyBAQCBURVNUKFdl
YktpdCwgUHJlZmVyZW5jZUNoYW5nZXMpCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rl
c3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCAzMDAsIDMw
MCkgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uLmdldCgpIGFkZFRvV2luZG93OllFU10pOwog
CiAgICAgYXV0byBwcmVmZXJlbmNlVmFsdWUgPSBbJl0gewotICAgICAgICByZXR1cm4gW3dlYlZp
ZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAIndpbmRvdy5pbnRlcm5hbHMucmVhZFBy
ZWZlcmVuY2VJbnRlZ2VyKFwiY29tLmFwcGxlLmNvcmVtZWRpYVwiLCBcInRlc3RrZXlcIikiXS5p
bnRWYWx1ZTsKKyAgICAgICAgTlNTdHJpbmcgKmpzID0gW05TU3RyaW5nIHN0cmluZ1dpdGhGb3Jt
YXQ6QCJ3aW5kb3cuaW50ZXJuYWxzLnJlYWRQcmVmZXJlbmNlSW50ZWdlcihcIiVAXCIsXCIlQFwi
KSIsIChOU1N0cmluZyAqKXRlc3REb21haW4sIChOU1N0cmluZyAqKXRlc3RLZXldOworICAgICAg
ICByZXR1cm4gW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpqc10uaW50VmFs
dWU7CiAgICAgfTsKIAogICAgIEVYUEVDVF9FUShwcmVmZXJlbmNlVmFsdWUoKSwgMSk7CiAKLSAg
ICBDRlByZWZlcmVuY2VzU2V0QXBwVmFsdWUoQ0ZTVFIoInRlc3RrZXkiKSwgQ0ZTVFIoIjIiKSwg
Q0ZTVFIoImNvbS5hcHBsZS5jb3JlbWVkaWEiKSk7CisgICAgQ0ZQcmVmZXJlbmNlc1NldEFwcFZh
bHVlKHRlc3RLZXksIENGU1RSKCIyIiksIHRlc3REb21haW4pOwogCiAgICAgRVhQRUNUX0VRKHBy
ZWZlcmVuY2VWYWx1ZSgpLCAyKTsKIH0KQEAgLTEwMCw4ICsxMDQsOCBAQCBURVNUKFdlYktpdCwg
UHJlZmVyZW5jZUNoYW5nZXNBcnJheSkKIHsKICAgICBOU0FycmF5ICphcnJheSA9IEBbQDEsIEAy
LCBAM107CiAKLSAgICBhdXRvIHVzZXJEZWZhdWx0cyA9IGFkb3B0TlMoW1tOU1VzZXJEZWZhdWx0
cyBhbGxvY10gaW5pdFdpdGhTdWl0ZU5hbWU6QCJjb20uYXBwbGUuY29yZW1lZGlhIl0pOwotICAg
IFt1c2VyRGVmYXVsdHMuZ2V0KCkgc2V0T2JqZWN0OmFycmF5IGZvcktleTpAInRlc3RrZXkiXTsK
KyAgICBhdXRvIHVzZXJEZWZhdWx0cyA9IGFkb3B0TlMoW1tOU1VzZXJEZWZhdWx0cyBhbGxvY10g
aW5pdFdpdGhTdWl0ZU5hbWU6KE5TU3RyaW5nICopdGVzdERvbWFpbl0pOworICAgIFt1c2VyRGVm
YXVsdHMuZ2V0KCkgc2V0T2JqZWN0OmFycmF5IGZvcktleTooTlNTdHJpbmcgKil0ZXN0S2V5XTsK
IAogICAgIGF1dG8gY29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0
aW9uIGFsbG9jXSBpbml0XSk7CiAgICAgV0tSZXRhaW5QdHI8V0tDb250ZXh0UmVmPiBjb250ZXh0
ID0gYWRvcHRXSyhUZXN0V2ViS2l0QVBJOjpVdGlsOjpjcmVhdGVDb250ZXh0Rm9ySW5qZWN0ZWRC
dW5kbGVUZXN0KCJJbnRlcm5hbHNJbmplY3RlZEJ1bmRsZVRlc3QiKSk7CkBAIC0xMDksMTMgKzEx
MywxNCBAQCBURVNUKFdlYktpdCwgUHJlZmVyZW5jZUNoYW5nZXNBcnJheSkKICAgICBhdXRvIHdl
YlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01h
a2VSZWN0KDAsIDAsIDMwMCwgMzAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCkg
YWRkVG9XaW5kb3c6WUVTXSk7CiAKICAgICBhdXRvIHByZWZlcmVuY2VWYWx1ZSA9IFsmXSB7Ci0g
ICAgICAgIHJldHVybiBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAid2lu
ZG93LmludGVybmFscy5lbmNvZGVkUHJlZmVyZW5jZVZhbHVlKFwiY29tLmFwcGxlLmNvcmVtZWRp
YVwiLCBcInRlc3RrZXlcIikiXTsKKyAgICAgICAgTlNTdHJpbmcgKmpzID0gW05TU3RyaW5nIHN0
cmluZ1dpdGhGb3JtYXQ6QCJ3aW5kb3cuaW50ZXJuYWxzLmVuY29kZWRQcmVmZXJlbmNlVmFsdWUo
XCIlQFwiLFwiJUBcIikiLCAoTlNTdHJpbmcgKil0ZXN0RG9tYWluLCAoTlNTdHJpbmcgKil0ZXN0
S2V5XTsKKyAgICAgICAgcmV0dXJuIFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3Jp
cHQ6anNdOwogICAgIH07CiAKICAgICBwcmVmZXJlbmNlVmFsdWUoKTsKIAogICAgIE5TQXJyYXkg
KmNoYW5nZWRBcnJheSA9IEBbQDMsIEAyLCBAMV07Ci0gICAgW3VzZXJEZWZhdWx0cy5nZXQoKSBz
ZXRPYmplY3Q6Y2hhbmdlZEFycmF5IGZvcktleTpAInRlc3RrZXkiXTsKKyAgICBbdXNlckRlZmF1
bHRzLmdldCgpIHNldE9iamVjdDpjaGFuZ2VkQXJyYXkgZm9yS2V5OihOU1N0cmluZyAqKXRlc3RL
ZXldOwogCiAgICAgYXV0byBlbmNvZGVkU3RyaW5nID0gcHJlZmVyZW5jZVZhbHVlKCk7CiAgICAg
YXV0byBlbmNvZGVkRGF0YSA9IGFkb3B0TlMoW1tOU0RhdGEgYWxsb2NdIGluaXRXaXRoQmFzZTY0
RW5jb2RlZFN0cmluZzplbmNvZGVkU3RyaW5nIG9wdGlvbnM6MF0pOwpAQCAtMTM0LDggKzEzOSw4
IEBAIFRFU1QoV2ViS2l0LCBQcmVmZXJlbmNlQ2hhbmdlc0RpY3Rpb25hcnkKICAgICAgICAgQCJi
IiA6IEAyLAogICAgIH07CiAKLSAgICBhdXRvIHVzZXJEZWZhdWx0cyA9IGFkb3B0TlMoW1tOU1Vz
ZXJEZWZhdWx0cyBhbGxvY10gaW5pdFdpdGhTdWl0ZU5hbWU6QCJjb20uYXBwbGUuY29yZW1lZGlh
Il0pOwotICAgIFt1c2VyRGVmYXVsdHMuZ2V0KCkgc2V0T2JqZWN0OmRpY3QgZm9yS2V5OkAidGVz
dGtleSJdOworICAgIGF1dG8gdXNlckRlZmF1bHRzID0gYWRvcHROUyhbW05TVXNlckRlZmF1bHRz
IGFsbG9jXSBpbml0V2l0aFN1aXRlTmFtZTooTlNTdHJpbmcgKil0ZXN0RG9tYWluXSk7CisgICAg
W3VzZXJEZWZhdWx0cy5nZXQoKSBzZXRPYmplY3Q6ZGljdCBmb3JLZXk6KE5TU3RyaW5nICopdGVz
dEtleV07CiAKICAgICBhdXRvIGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29u
ZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOwogICAgIFdLUmV0YWluUHRyPFdLQ29udGV4dFJlZj4g
Y29udGV4dCA9IGFkb3B0V0soVGVzdFdlYktpdEFQSTo6VXRpbDo6Y3JlYXRlQ29udGV4dEZvcklu
amVjdGVkQnVuZGxlVGVzdCgiSW50ZXJuYWxzSW5qZWN0ZWRCdW5kbGVUZXN0IikpOwpAQCAtMTQz
LDcgKzE0OCw4IEBAIFRFU1QoV2ViS2l0LCBQcmVmZXJlbmNlQ2hhbmdlc0RpY3Rpb25hcnkKICAg
ICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhG
cmFtZTpOU01ha2VSZWN0KDAsIDAsIDMwMCwgMzAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRp
b24uZ2V0KCkgYWRkVG9XaW5kb3c6WUVTXSk7CiAKICAgICBhdXRvIHByZWZlcmVuY2VWYWx1ZSA9
IFsmXSB7Ci0gICAgICAgIHJldHVybiBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2Ny
aXB0OkAid2luZG93LmludGVybmFscy5lbmNvZGVkUHJlZmVyZW5jZVZhbHVlKFwiY29tLmFwcGxl
LmNvcmVtZWRpYVwiLCBcInRlc3RrZXlcIikiXTsKKyAgICAgICAgTlNTdHJpbmcgKmpzID0gW05T
U3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCJ3aW5kb3cuaW50ZXJuYWxzLmVuY29kZWRQcmVmZXJl
bmNlVmFsdWUoXCIlQFwiLFwiJUBcIikiLCAoTlNTdHJpbmcgKil0ZXN0RG9tYWluLCAoTlNTdHJp
bmcgKil0ZXN0S2V5XTsKKyAgICAgICAgcmV0dXJuIFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGlu
Z0phdmFTY3JpcHQ6anNdOwogICAgIH07CiAKICAgICBwcmVmZXJlbmNlVmFsdWUoKTsKQEAgLTE1
Myw3ICsxNTksNyBAQCBURVNUKFdlYktpdCwgUHJlZmVyZW5jZUNoYW5nZXNEaWN0aW9uYXJ5CiAg
ICAgICAgIEAiYiIgOiBAMiwKICAgICAgICAgQCJjIiA6IEAzLAogICAgIH07Ci0gICAgW3VzZXJE
ZWZhdWx0cy5nZXQoKSBzZXRPYmplY3Q6Y2hhbmdlZERpY3QgZm9yS2V5OkAidGVzdGtleSJdOwor
ICAgIFt1c2VyRGVmYXVsdHMuZ2V0KCkgc2V0T2JqZWN0OmNoYW5nZWREaWN0IGZvcktleTooTlNT
dHJpbmcgKil0ZXN0S2V5XTsKIAogICAgIGF1dG8gZW5jb2RlZFN0cmluZyA9IHByZWZlcmVuY2VW
YWx1ZSgpOwogICAgIGF1dG8gZW5jb2RlZERhdGEgPSBhZG9wdE5TKFtbTlNEYXRhIGFsbG9jXSBp
bml0V2l0aEJhc2U2NEVuY29kZWRTdHJpbmc6ZW5jb2RlZFN0cmluZyBvcHRpb25zOjBdKTsKQEAg
LTE2OSw4ICsxNzUsOCBAQCBURVNUKFdlYktpdCwgUHJlZmVyZW5jZUNoYW5nZXNEYXRhKQogewog
ICAgIE5TRGF0YSAqZGF0YSA9IFtOU0RhdGEgZGF0YVdpdGhCeXRlczoiYWJjIiBsZW5ndGg6M107
CiAKLSAgICBhdXRvIHVzZXJEZWZhdWx0cyA9IGFkb3B0TlMoW1tOU1VzZXJEZWZhdWx0cyBhbGxv
Y10gaW5pdFdpdGhTdWl0ZU5hbWU6QCJjb20uYXBwbGUuY29yZW1lZGlhIl0pOwotICAgIFt1c2Vy
RGVmYXVsdHMuZ2V0KCkgc2V0T2JqZWN0OmRhdGEgZm9yS2V5OkAidGVzdGtleSJdOworICAgIGF1
dG8gdXNlckRlZmF1bHRzID0gYWRvcHROUyhbW05TVXNlckRlZmF1bHRzIGFsbG9jXSBpbml0V2l0
aFN1aXRlTmFtZTooTlNTdHJpbmcgKil0ZXN0RG9tYWluXSk7CisgICAgW3VzZXJEZWZhdWx0cy5n
ZXQoKSBzZXRPYmplY3Q6ZGF0YSBmb3JLZXk6KE5TU3RyaW5nICopdGVzdEtleV07CiAKICAgICBh
dXRvIGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxv
Y10gaW5pdF0pOwogICAgIFdLUmV0YWluUHRyPFdLQ29udGV4dFJlZj4gY29udGV4dCA9IGFkb3B0
V0soVGVzdFdlYktpdEFQSTo6VXRpbDo6Y3JlYXRlQ29udGV4dEZvckluamVjdGVkQnVuZGxlVGVz
dCgiSW50ZXJuYWxzSW5qZWN0ZWRCdW5kbGVUZXN0IikpOwpAQCAtMTc4LDEzICsxODQsMTQgQEAg
VEVTVChXZWJLaXQsIFByZWZlcmVuY2VDaGFuZ2VzRGF0YSkKICAgICBhdXRvIHdlYlZpZXcgPSBh
ZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAs
IDAsIDMwMCwgMzAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCkgYWRkVG9XaW5k
b3c6WUVTXSk7CiAKICAgICBhdXRvIHByZWZlcmVuY2VWYWx1ZSA9IFsmXSB7Ci0gICAgICAgIHJl
dHVybiBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAid2luZG93LmludGVy
bmFscy5lbmNvZGVkUHJlZmVyZW5jZVZhbHVlKFwiY29tLmFwcGxlLmNvcmVtZWRpYVwiLCBcInRl
c3RrZXlcIikiXTsKKyAgICAgICAgTlNTdHJpbmcgKmpzID0gW05TU3RyaW5nIHN0cmluZ1dpdGhG
b3JtYXQ6QCJ3aW5kb3cuaW50ZXJuYWxzLmVuY29kZWRQcmVmZXJlbmNlVmFsdWUoXCIlQFwiLFwi
JUBcIikiLCAoTlNTdHJpbmcgKil0ZXN0RG9tYWluLCAoTlNTdHJpbmcgKil0ZXN0S2V5XTsKKyAg
ICAgICAgcmV0dXJuIFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6anNdOwog
ICAgIH07CiAKICAgICBwcmVmZXJlbmNlVmFsdWUoKTsKIAogICAgIE5TRGF0YSAqY2hhbmdlZERh
dGEgPSBbTlNEYXRhIGRhdGFXaXRoQnl0ZXM6ImFiY2QiIGxlbmd0aDo0XTsKLSAgICBbdXNlckRl
ZmF1bHRzLmdldCgpIHNldE9iamVjdDpjaGFuZ2VkRGF0YSBmb3JLZXk6QCJ0ZXN0a2V5Il07Cisg
ICAgW3VzZXJEZWZhdWx0cy5nZXQoKSBzZXRPYmplY3Q6Y2hhbmdlZERhdGEgZm9yS2V5OihOU1N0
cmluZyAqKXRlc3RLZXldOwogCiAgICAgYXV0byBlbmNvZGVkU3RyaW5nID0gcHJlZmVyZW5jZVZh
bHVlKCk7CiAgICAgYXV0byBlbmNvZGVkRGF0YSA9IGFkb3B0TlMoW1tOU0RhdGEgYWxsb2NdIGlu
aXRXaXRoQmFzZTY0RW5jb2RlZFN0cmluZzplbmNvZGVkU3RyaW5nIG9wdGlvbnM6MF0pOwpAQCAt
MjAwLDggKzIwNyw4IEBAIFRFU1QoV2ViS2l0LCBQcmVmZXJlbmNlQ2hhbmdlc0RhdGUpCiB7CiAg
ICAgTlNEYXRlICpkYXRlID0gW05TRGF0ZSBkYXRlV2l0aFRpbWVJbnRlcnZhbFNpbmNlTm93OjBd
OwogCi0gICAgYXV0byB1c2VyRGVmYXVsdHMgPSBhZG9wdE5TKFtbTlNVc2VyRGVmYXVsdHMgYWxs
b2NdIGluaXRXaXRoU3VpdGVOYW1lOkAiY29tLmFwcGxlLmNvcmVtZWRpYSJdKTsKLSAgICBbdXNl
ckRlZmF1bHRzLmdldCgpIHNldE9iamVjdDpkYXRlIGZvcktleTpAInRlc3RrZXkiXTsKKyAgICBh
dXRvIHVzZXJEZWZhdWx0cyA9IGFkb3B0TlMoW1tOU1VzZXJEZWZhdWx0cyBhbGxvY10gaW5pdFdp
dGhTdWl0ZU5hbWU6KE5TU3RyaW5nICopdGVzdERvbWFpbl0pOworICAgIFt1c2VyRGVmYXVsdHMu
Z2V0KCkgc2V0T2JqZWN0OmRhdGUgZm9yS2V5OihOU1N0cmluZyAqKXRlc3RLZXldOwogCiAgICAg
YXV0byBjb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxs
b2NdIGluaXRdKTsKICAgICBXS1JldGFpblB0cjxXS0NvbnRleHRSZWY+IGNvbnRleHQgPSBhZG9w
dFdLKFRlc3RXZWJLaXRBUEk6OlV0aWw6OmNyZWF0ZUNvbnRleHRGb3JJbmplY3RlZEJ1bmRsZVRl
c3QoIkludGVybmFsc0luamVjdGVkQnVuZGxlVGVzdCIpKTsKQEAgLTIwOSwxMyArMjE2LDE0IEBA
IFRFU1QoV2ViS2l0LCBQcmVmZXJlbmNlQ2hhbmdlc0RhdGUpCiAgICAgYXV0byB3ZWJWaWV3ID0g
YWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgw
LCAwLCAzMDAsIDMwMCkgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uLmdldCgpIGFkZFRvV2lu
ZG93OllFU10pOwogCiAgICAgYXV0byBwcmVmZXJlbmNlVmFsdWUgPSBbJl0gewotICAgICAgICBy
ZXR1cm4gW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAIndpbmRvdy5pbnRl
cm5hbHMuZW5jb2RlZFByZWZlcmVuY2VWYWx1ZShcImNvbS5hcHBsZS5jb3JlbWVkaWFcIiwgXCJ0
ZXN0a2V5XCIpIl07CisgICAgICAgIE5TU3RyaW5nICpqcyA9IFtOU1N0cmluZyBzdHJpbmdXaXRo
Rm9ybWF0OkAid2luZG93LmludGVybmFscy5lbmNvZGVkUHJlZmVyZW5jZVZhbHVlKFwiJUBcIixc
IiVAXCIpIiwgKE5TU3RyaW5nICopdGVzdERvbWFpbiwgKE5TU3RyaW5nICopdGVzdEtleV07Cisg
ICAgICAgIHJldHVybiBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OmpzXTsK
ICAgICB9OwogCiAgICAgcHJlZmVyZW5jZVZhbHVlKCk7CiAKICAgICBOU0RhdGUgKmNoYW5nZWRE
YXRlID0gW05TRGF0ZSBkYXRlV2l0aFRpbWVJbnRlcnZhbFNpbmNlTm93OjEwXTsKLSAgICBbdXNl
ckRlZmF1bHRzLmdldCgpIHNldE9iamVjdDpjaGFuZ2VkRGF0ZSBmb3JLZXk6QCJ0ZXN0a2V5Il07
CisgICAgW3VzZXJEZWZhdWx0cy5nZXQoKSBzZXRPYmplY3Q6Y2hhbmdlZERhdGUgZm9yS2V5OihO
U1N0cmluZyAqKXRlc3RLZXldOwogCiAgICAgYXV0byBlbmNvZGVkU3RyaW5nID0gcHJlZmVyZW5j
ZVZhbHVlKCk7CiAgICAgYXV0byBlbmNvZGVkRGF0YSA9IGFkb3B0TlMoW1tOU0RhdGEgYWxsb2Nd
IGluaXRXaXRoQmFzZTY0RW5jb2RlZFN0cmluZzplbmNvZGVkU3RyaW5nIG9wdGlvbnM6MF0pOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>394099</attachid>
            <date>2020-03-20 10:27:42 -0700</date>
            <delta_ts>2020-03-20 10:44:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209244-20200320102741.patch</filename>
            <type>text/plain</type>
            <size>23143</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyNTg3NjQpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDIwLTAzLTIwICBQZXIgQXJuZSBWb2xsYW4gIDxw
dm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIEZpeCBsYXVuY2ggdGltZSByZWdy
ZXNzaW9uIHdpdGggQ0YgcHJlZnMgZGlyZWN0IG1vZGUgZW5hYmxlZAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA5MjQ0CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmUtZW5hYmxlIENGIHByZWZzIGRpcmVj
dCBtb2RlLgorCisgICAgICAgICogd3RmL1BsYXRmb3JtRW5hYmxlLmg6CisKIDIwMjAtMDMtMTkg
IFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CiAKICAgICAgICAgVXBzdHJl
YW0gYSB2YXJpZXR5IG9mIENvY29hLXBsYXRmb3JtIEhBVkUgYW5kIEVOQUJMRSBtYWNyb3MKSW5k
ZXg6IFNvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dURi93dGYvUGxhdGZvcm1FbmFibGUuaAkocmV2aXNpb24gMjU4NzY0KQorKysgU291cmNlL1dU
Ri93dGYvUGxhdGZvcm1FbmFibGUuaAkod29ya2luZyBjb3B5KQpAQCAtODcxLDQgKzg3MSw4IEBA
CiAjZXJyb3IgIkVOQUJMRShXRUJHTDIpIHJlcXVpcmVzIEVOQUJMRShXRUJHTCkiCiAjZW5kaWYK
IAorI2lmIFBMQVRGT1JNKENPQ09BKQorI2RlZmluZSBFTkFCTEVfQ0ZQUkVGU19ESVJFQ1RfTU9E
RSAxCisjZWxzZQogI2RlZmluZSBFTkFCTEVfQ0ZQUkVGU19ESVJFQ1RfTU9ERSAwCisjZW5kaWYK
SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNTg3NjQpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI3IEBACisyMDIwLTAzLTIwICBQZXIgQXJuZSBW
b2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIEZpeCBsYXVuY2gg
dGltZSByZWdyZXNzaW9uIHdpdGggQ0YgcHJlZnMgZGlyZWN0IG1vZGUgZW5hYmxlZAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA5MjQ0CisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS82MDU0MjE0OT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBXaGVuIENGIHByZWZzIGRpcmVjdCBtb2RlIHdhcyBlbmFibGVk
IGluIGh0dHBzOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8yNTgwNjQvd2Via2l0LCBpdCBp
bnRyb2R1Y2VkCisgICAgICAgIGEgc2lnbmlmaWNhbnQgbGF1bmNoIHRpbWUgcmVncmVzc2lvbi4g
VGhpcyBwYXRjaCBhZGRyZXNzZXMgdGhpcyByZWdyZXNzaW9uLiBUaGUgbnVtYmVyIG9mIG9ic2Vy
dmVkIGRvbWFpbnMKKyAgICAgICAgaXMgcmVkdWNlZCBhbmQgZG9tYWluIG9ic2VydmF0aW9uIGlz
IGluaXRpYXRlZCBsYXRlciB3aGVuIFNhZmFyaSBpcyBmaXJzdCBhY3RpdmF0ZWQuIFN3aXp6bGlu
ZyBjb2RlIGlzCisgICAgICAgIHJlbW92ZWQsIHNpbmNlIHRoYXQgaGFzIGEgcGVyZm9ybWFuY2Ug
Y29zdCBpbiB0aGUgT2JqZWN0aXZlLUMgcnVudGltZS4gTm9ybWFsIHByaW9yaXR5IGluc3RlYWQg
b2YKKyAgICAgICAgUU9TX0NMQVNTX0JBQ0tHUk9VTkQgaXMgdXNlZCBpbiB0aGUgdGhyZWFkIHdo
aWNoIHN0YXJ0cyB0aGUgb2JzZXJ2aW5nLCBzaW5jZSB1c2luZyBhIGJhY2tncm91bmQgcHJpb3Jp
dHkKKyAgICAgICAgY2xhc3MgY2FuIGxlYWQgdG8gcHJpb3JpdHkgaW52ZXJzaW9uLiBGaW5hbGx5
LCBhIGRpY3Rpb25hcnkgY29tcGFyaXNvbiBpcyByZW1vdmVkIHdoZW4gYSBub3RpZmljYXRpb24K
KyAgICAgICAgYWJvdXQgYSBwcmVmZXJlbmNlIGNoYW5nZSBpcyByZWNlaXZlZCwgc2luY2UgdGhp
cyBjaGVjayBpcyByZWR1bmRhbnQgYW5kIGRvdWJsZXMgdGhlIGNvc3Qgb2YgdGhpcyBtZXRob2Qu
CisKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvUHJlZmVyZW5jZU9ic2VydmVyLm1tOgorICAg
ICAgICAoLVtXS1ByZWZlcmVuY2VPYnNlcnZlciBpbml0XSk6CisgICAgICAgICogVUlQcm9jZXNz
L0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nl
c3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNz
UG9vbDo6cmVnaXN0ZXJOb3RpZmljYXRpb25PYnNlcnZlcnMpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQcm9jZXNzUG9vbDo6dW5yZWdpc3Rlck5vdGlmaWNhdGlvbk9ic2VydmVycyk6CisgICAgICAg
ICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmg6CisKIDIwMjAtMDMtMTkgIERhdmlkIEtpbHpl
ciAgPGRka2lsemVyQGFwcGxlLmNvbT4KIAogICAgICAgICBTaGFyZWRNZW1vcnk6OmFsbG9jYXRl
KCkgc2hvdWxkIGluaXRpYWxpemUgYGFkZHJlc3NgCkluZGV4OiBTb3VyY2UvV2ViS2l0L1Jlc291
cmNlcy9TYW5kYm94UHJvZmlsZXMvaW9zL2NvbS5hcHBsZS5XZWJLaXQuV2ViQ29udGVudC5zYgo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1Jlc291cmNlcy9TYW5kYm94UHJvZmlsZXMvaW9z
L2NvbS5hcHBsZS5XZWJLaXQuV2ViQ29udGVudC5zYgkocmV2aXNpb24gMjU4NzY0KQorKysgU291
cmNlL1dlYktpdC9SZXNvdXJjZXMvU2FuZGJveFByb2ZpbGVzL2lvcy9jb20uYXBwbGUuV2ViS2l0
LldlYkNvbnRlbnQuc2IJKHdvcmtpbmcgY29weSkKQEAgLTUzNCw3ICs1MzQsNiBAQAogKGFsbG93
IG1hY2gtbG9va3VwCiAgICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUubG9nZCIpCiAgICAgKGds
b2JhbC1uYW1lICJjb20uYXBwbGUubG9nZC5ldmVudHMiKQotICAgIChnbG9iYWwtbmFtZSAiY29t
LmFwcGxlLmNmcHJlZnNkLmRhZW1vbiIpCiApCiAKIChkZW55IG1hY2gtbG9va3VwICh3aXRoIHRl
bGVtZXRyeSkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAko
cmV2aXNpb24gMjU4NzY0KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bv
b2wuaAkod29ya2luZyBjb3B5KQpAQCAtNjkxLDcgKzY5MSw2IEBAIHByaXZhdGU6CiAjaWYgRU5B
QkxFKFdFQlBST0NFU1NfV0lORE9XU0VSVkVSX0JMT0NLSU5HKQogICAgIFJldGFpblB0cjxOU09i
amVjdD4gbV9zY3JvbGxlclN0eWxlTm90aWZpY2F0aW9uT2JzZXJ2ZXI7CiAjZW5kaWYKLSAgICBS
ZXRhaW5QdHI8TlNPYmplY3Q+IG1fYWN0aXZhdGlvbk9ic2VydmVyOwogICAgIFJldGFpblB0cjxO
U09iamVjdD4gbV9kZWFjdGl2YXRpb25PYnNlcnZlcjsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxI
aWdoUGVyZm9ybWFuY2VHcmFwaGljc1VzYWdlU2FtcGxlcj4gbV9oaWdoUGVyZm9ybWFuY2VHcmFw
aGljc1VzYWdlU2FtcGxlcjsKQEAgLTY5OSw2ICs2OTgsNyBAQCBwcml2YXRlOgogI2VuZGlmCiAK
ICNpZiBQTEFURk9STShDT0NPQSkKKyAgICBSZXRhaW5QdHI8TlNPYmplY3Q+IG1fYWN0aXZhdGlv
bk9ic2VydmVyOwogICAgIFJldGFpblB0cjxOU09iamVjdD4gbV9hY2Nlc3NpYmlsaXR5RW5hYmxl
ZE9ic2VydmVyOwogI2VuZGlmCiAKQEAgLTgwMiwxMCArODAyLDYgQEAgcHJpdmF0ZToKICAgICBi
b29sIG1faXNEZWxheWVkV2ViUHJvY2Vzc0xhdW5jaERpc2FibGVkIHsgZmFsc2UgfTsKICNlbmRp
ZgogICAgIGJvb2wgbV91c2VTZXBhcmF0ZVNlcnZpY2VXb3JrZXJQcm9jZXNzIHsgZmFsc2UgfTsK
LQotI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIFJldGFpblB0cjxXS1ByZWZlcmVuY2VPYnNlcnZl
cj4gbV9wcmVmZXJlbmNlT2JzZXJ2ZXI7Ci0jZW5kaWYKIH07CiAKIHRlbXBsYXRlPHR5cGVuYW1l
IFQ+CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9QcmVmZXJlbmNlT2JzZXJ2
ZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9QcmVmZXJl
bmNlT2JzZXJ2ZXIuaAkocmV2aXNpb24gMjU4NzY0KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQ29jb2EvUHJlZmVyZW5jZU9ic2VydmVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ2LDYgKzQ2
LDUgQEAgX19hdHRyaWJ1dGVfXygodmlzaWJpbGl0eSgiZGVmYXVsdCIpKSkKICAgICBWZWN0b3I8
UmV0YWluUHRyPFdLVXNlckRlZmF1bHRzPj4gbV91c2VyRGVmYXVsdHM7CiB9CiArIChpZClzaGFy
ZWRJbnN0YW5jZTsKLSsgKHZvaWQpc3dpenpsZVJlZ2lzdGVyRGVmYXVsdHM7CiAtICh2b2lkKXBy
ZWZlcmVuY2VEaWRDaGFuZ2U6KE5TU3RyaW5nICopZG9tYWluIGtleTooTlNTdHJpbmcgKilrZXkg
ZW5jb2RlZFZhbHVlOihOU1N0cmluZyAqKWVuY29kZWRWYWx1ZTsKIEBlbmQKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1ByZWZlcmVuY2VPYnNlcnZlci5tbQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9QcmVmZXJlbmNlT2JzZXJ2ZXIubW0J
KHJldmlzaW9uIDI1ODc2NCkKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1ByZWZl
cmVuY2VPYnNlcnZlci5tbQkod29ya2luZyBjb3B5KQpAQCAtMjgsMzEgKzI4LDEyIEBACiAKICNp
bXBvcnQgIldlYlByb2Nlc3NQb29sLmgiCiAKLSNpbXBvcnQgPHd0Zi9PYmpDUnVudGltZUV4dHJh
cy5oPgotCi1zdGF0aWMgSU1QIHJlZ2lzdGVyRGVmYXVsdHNPcmlnaW5hbCA9IG5pbDsKLXN0YXRp
YyBib29sIHJlZ2lzdGVyaW5nRGVmYXVsdHMgPSBmYWxzZTsKLQotc3RhdGljIHZvaWQgcmVnaXN0
ZXJEZWZhdWx0c092ZXJyaWRlKGlkIHNlbGYsIFNFTCBzZWxlY3RvciwgTlNEaWN0aW9uYXJ5PE5T
U3RyaW5nICosIGlkPiAqZGljdGlvbmFyeSkKLXsKLSAgICByZWdpc3RlcmluZ0RlZmF1bHRzID0g
dHJ1ZTsKLSAgICBpZiAocmVnaXN0ZXJEZWZhdWx0c09yaWdpbmFsKQotICAgICAgICB3dGZDYWxs
SU1QPHZvaWQ+KHJlZ2lzdGVyRGVmYXVsdHNPcmlnaW5hbCwgc2VsZiwgc2VsZWN0b3IsIGRpY3Rp
b25hcnkpOwotICAgIHJlZ2lzdGVyaW5nRGVmYXVsdHMgPSBmYWxzZTsKLX0KLQogQGltcGxlbWVu
dGF0aW9uIFdLVXNlckRlZmF1bHRzCiAKIC0gKHZvaWQpX25vdGlmeU9ic2VydmVyc09mQ2hhbmdl
RnJvbVZhbHVlc0ZvcktleXM6KE5TRGljdGlvbmFyeTxOU1N0cmluZyAqLCBpZD4gKilvbGRWYWx1
ZXMgdG9WYWx1ZXNGb3JLZXlzOihOU0RpY3Rpb25hcnk8TlNTdHJpbmcgKiwgaWQ+ICopbmV3VmFs
dWVzCiB7Ci0gICAgaWYgKHJlZ2lzdGVyaW5nRGVmYXVsdHMpCi0gICAgICAgIHJldHVybjsKLQog
ICAgIFtzdXBlciBfbm90aWZ5T2JzZXJ2ZXJzT2ZDaGFuZ2VGcm9tVmFsdWVzRm9yS2V5czpvbGRW
YWx1ZXMgdG9WYWx1ZXNGb3JLZXlzOm5ld1ZhbHVlc107CiAKLSAgICBpZiAoW29sZFZhbHVlcyBp
c0VxdWFsVG9EaWN0aW9uYXJ5Om5ld1ZhbHVlc10pCi0gICAgICAgIHJldHVybjsKLQogICAgIGZv
ciAoTlNTdHJpbmcgKmtleSBpbiBvbGRWYWx1ZXMpIHsKICAgICAgICAgaWQgb2xkVmFsdWUgPSBv
bGRWYWx1ZXNba2V5XTsKICAgICAgICAgaWQgbmV3VmFsdWUgPSBuZXdWYWx1ZXNba2V5XTsKQEAg
LTEwMSwxMDMgKzgyLDMzIEBAICsgKGlkKXNoYXJlZEluc3RhbmNlCiAgICAgcmV0dXJuIGluc3Rh
bmNlOwogfQogCi0rICh2b2lkKXN3aXp6bGVSZWdpc3RlckRlZmF1bHRzCi17Ci0gICAgc3RhdGlj
IHN0ZDo6b25jZV9mbGFnIG9uY2VGbGFnOwotICAgIHN0ZDo6Y2FsbF9vbmNlKG9uY2VGbGFnLCBb
XSB7Ci0gICAgICAgIE1ldGhvZCByZWdpc3RlckRlZmF1bHRzTWV0aG9kID0gY2xhc3NfZ2V0SW5z
dGFuY2VNZXRob2Qob2JqY19nZXRDbGFzcygiTlNVc2VyRGVmYXVsdHMiKSwgQHNlbGVjdG9yKHJl
Z2lzdGVyRGVmYXVsdHM6KSk7Ci0gICAgICAgIHJlZ2lzdGVyRGVmYXVsdHNPcmlnaW5hbCA9IG1l
dGhvZF9zZXRJbXBsZW1lbnRhdGlvbihyZWdpc3RlckRlZmF1bHRzTWV0aG9kLCAoSU1QKXJlZ2lz
dGVyRGVmYXVsdHNPdmVycmlkZSk7Ci0gICAgfSk7Ci19Ci0KIC0gKGluc3RhbmNldHlwZSlpbml0
CiB7CiAgICAgc3RkOjppbml0aWFsaXplcl9saXN0PE5TU3RyaW5nKj4gZG9tYWlucyA9IHsKLSAg
ICAgICAgQCJjb20uYXBwbGUuQWNjZXNzaWJpbGl0eSIsCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlM
WSkKKyAgICAgICAgQCJjb20uYXBwbGUuQWNjZXNzaWJpbGl0eSIsCiAgICAgICAgIEAiY29tLmFw
cGxlLkFkTGliIiwKLSAgICAgICAgQCJjb20uYXBwbGUuQ0ZOZXR3b3JrIiwKLSAgICAgICAgQCJj
b20uYXBwbGUuRW1vamlQcmVmZXJlbmNlcyIsCi0gICAgICAgIEAiY29tLmFwcGxlLkZvbnRQYXJz
ZXIiLAotICAgICAgICBAImNvbS5hcHBsZS5JbWFnZUlPIiwKLSAgICAgICAgQCJjb20uYXBwbGUu
SW5wdXRNb2RlUHJlZmVyZW5jZXMiLAotI2Vsc2UKLSAgICAgICAgQCJjb20uYXBwbGUuQVRTIiwK
LSAgICAgICAgQCJjb20uYXBwbGUuQ29yZUdyYXBoaWNzIiwKLSAgICAgICAgQCJjb20uYXBwbGUu
RG93bmxvYWRBc3Nlc3NtZW50IiwKLSAgICAgICAgQCJjb20uYXBwbGUuSElUb29sYm94IiwKLSNl
bmRpZgotICAgICAgICBAImNvbS5hcHBsZS5MYXVuY2hTZXJ2aWNlcyIsCi0jaWYgUExBVEZPUk0o
SU9TX0ZBTUlMWSkKLSAgICAgICAgQCJjb20uYXBwbGUuTWV0YWwiLAotICAgICAgICBAImNvbS5h
cHBsZS5Nb2JpbGVBc3NldCIsCiAgICAgICAgIEAiY29tLmFwcGxlLlByZWZlcmVuY2VzIiwKLSAg
ICAgICAgQCJjb20uYXBwbGUuU3BlYWtTZWxlY3Rpb24iLAogICAgICAgICBAImNvbS5hcHBsZS5V
SUtpdCIsCi0gICAgICAgIEAiY29tLmFwcGxlLlZvaWNlT3ZlclRvdWNoIiwKLSNlbHNlCi0gICAg
ICAgIEAiY29tLmFwcGxlLk11bHRpdG91Y2hTdXBwb3J0IgotICAgICAgICBAImNvbS5hcHBsZS5T
ZXJ2aWNlc01lbnUuU2VydmljZXMiCi0gICAgICAgIEAiY29tLmFwcGxlLlZpZXdCcmlkZ2UiCi0j
ZW5kaWYKLSAgICAgICAgQCJjb20uYXBwbGUuV2ViRm91bmRhdGlvbiIsCi0jaWYgUExBVEZPUk0o
SU9TX0ZBTUlMWSkKLSAgICAgICAgQCJjb20uYXBwbGUuV2ViS2l0LldlYkNvbnRlbnQiLAotICAg
ICAgICBAImNvbS5hcHBsZS5XZWJVSSIsCi0gICAgICAgIEAiY29tLmFwcGxlLmFpcnBsYXkiLAot
ICAgICAgICBAImNvbS5hcHBsZS5hcHBsZWpwZWciLAotICAgICAgICBAImNvbS5hcHBsZS5hdWRp
by52aXJ0dWFsYXVkaW8iLAogICAgICAgICBAImNvbS5hcHBsZS5hdmZhdWRpbyIsCi0jZW5kaWYK
LSAgICAgICAgQCJjb20uYXBwbGUuYXZmb3VuZGF0aW9uIiwKLSAgICAgICAgQCJjb20uYXBwbGUu
YXZmb3VuZGF0aW9uLmZyZWNlbnRzIiwKLSAgICAgICAgQCJjb20uYXBwbGUuYXZmb3VuZGF0aW9u
LnZpZGVvcGVyZm9ybWFuY2VodWQiLAotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgICAg
IEAiY29tLmFwcGxlLmF2a2l0IiwKLSAgICAgICAgQCJjb20uYXBwbGUuY29yZWFuaW1hdGlvbiIs
Ci0gICAgICAgIEAiY29tLmFwcGxlLmNvcmVhdWRpbyIsCi0jZW5kaWYKLSAgICAgICAgQCJjb20u
YXBwbGUuY29yZW1lZGlhIiwKLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgICAgICBAImNv
bS5hcHBsZS5jb3JldmlkZW8iLAotICAgICAgICBAImNvbS5hcHBsZS5kYSIsCi0gICAgICAgIEAi
Y29tLmFwcGxlLmhhbmd0cmFjZXIiLAotICAgICAgICBAImNvbS5hcHBsZS5pbmRpZ28iLAotICAg
ICAgICBAImNvbS5hcHBsZS5pb2tpdC5JT01vYmlsZUdyYXBoaWNzRmFtaWx5IiwKICAgICAgICAg
QCJjb20uYXBwbGUuaXR1bmVzc3RvcmVkIiwKLSAgICAgICAgQCJjb20uYXBwbGUua2V5Ym9hcmQi
LAotI2Vsc2UKLSAgICAgICAgQCJjb20uYXBwbGUuY3J5cHRvIiwKLSAgICAgICAgQCJjb20uYXBw
bGUuZHJpdmVyLkFwcGxlQmx1ZXRvb3RoTXVsdGl0b3VjaC5tb3VzZSIsCi0gICAgICAgIEAiY29t
LmFwcGxlLmRyaXZlci5BcHBsZUJsdWV0b290aE11bHRpdG91Y2gudHJhY2twYWQiLAotICAgICAg
ICBAImNvbS5hcHBsZS5kcml2ZXIuQXBwbGVISURNb3VzZSIKLSNlbmRpZgotICAgICAgICBAImNv
bS5hcHBsZS5sb29rdXAuc2hhcmVkIiwKLSAgICAgICAgQCJjb20uYXBwbGUubWVkaWFhY2Nlc3Np
YmlsaXR5IiwKLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgICAgICBAImNvbS5hcHBsZS5t
ZWRpYWFjY2Vzc2liaWxpdHkucHVibGljIiwKICAgICAgICAgQCJjb20uYXBwbGUubWVkaWFyZW1v
dGUiLAotICAgICAgICBAImNvbS5hcHBsZS5tb2JpbGVpcG9kIiwKLSAgICAgICAgQCJjb20uYXBw
bGUubXQiLAotI2Vsc2UKLSAgICAgICAgQCJjb20uYXBwbGUubmV0d29ya0Nvbm5lY3QiCi0jZW5k
aWYKLSAgICAgICAgQCJjb20uYXBwbGUub3BlbmdsIiwKLSNpZiBQTEFURk9STShJT1NfRkFNSUxZ
KQogICAgICAgICBAImNvbS5hcHBsZS5wcmVmZXJlbmNlcy5zb3VuZHMiLAotICAgICAgICBAImNv
bS5hcHBsZS5zZWN1cml0eSIsCiAgICAgICAgIEAiY29tLmFwcGxlLnZvaWNlc2VydmljZXMiLAot
ICAgICAgICBAImNvbS5hcHBsZS52b2ljZXNlcnZpY2VzLmxvZ2dpbmciLAorICAgICAgICBAImtD
RlByZWZlcmVuY2VzQW55QXBwbGljYXRpb24iLAogI2Vsc2UKKyAgICAgICAgQCJjb20uYXBwbGUu
Q29yZUdyYXBoaWNzIiwKKyAgICAgICAgQCJjb20uYXBwbGUuSElUb29sYm94IiwKKyAgICAgICAg
QCJjb20uYXBwbGUuU2VydmljZXNNZW51LlNlcnZpY2VzIiwKKyAgICAgICAgQCJjb20uYXBwbGUu
Vmlld0JyaWRnZSIsCisgICAgICAgIEAiY29tLmFwcGxlLmF2Zm91bmRhdGlvbiIsCisgICAgICAg
IEAiY29tLmFwcGxlLmF2Zm91bmRhdGlvbi52aWRlb3BlcmZvcm1hbmNlaHVkIiwKKyAgICAgICAg
QCJjb20uYXBwbGUuZHJpdmVyLkFwcGxlQmx1ZXRvb3RoTXVsdGl0b3VjaC5tb3VzZSIsCisgICAg
ICAgIEAiY29tLmFwcGxlLmRyaXZlci5BcHBsZUJsdWV0b290aE11bHRpdG91Y2gudHJhY2twYWQi
LAorICAgICAgICBAImNvbS5hcHBsZS5tZWRpYWFjY2Vzc2liaWxpdHkiLAogICAgICAgICBAImNv
bS5hcHBsZS5zcGVlY2gudm9pY2UucHJlZnMiLAotICAgICAgICBAImNvbS5hcHBsZS5zeXN0ZW1z
b3VuZCIsCiAgICAgICAgIEAiY29tLmFwcGxlLnVuaXZlcnNhbGFjY2VzcyIsCi0gICAgICAgIEAi
Y29tLm52aWRpYS5PcGVuR0wiLAotICAgICAgICBAImVkdS5taXQuS2VyYmVyb3MiLAotI2VuZGlm
CiAgICAgICAgIEAia0NGUHJlZmVyZW5jZXNBbnlBcHBsaWNhdGlvbiIsCi0jaWYgIVBMQVRGT1JN
KElPU19GQU1JTFkpCi0gICAgICAgIEAicGJzIiwKICNlbmRpZgogICAgIH07CiAKSW5kZXg6IFNv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2Nv
YS5tbQkocmV2aXNpb24gMjU4NzY0KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2Ev
V2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQkod29ya2luZyBjb3B5KQpAQCAtMTczLDE0ICsxNzMsNiBA
QCB2b2lkIFdlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemUoCiAgICAgICAgIGluc3Rh
bGxNZW1vcnlQcmVzc3VyZUhhbmRsZXIoKTsKIAogICAgIHNldExlZ2FjeUN1c3RvbVByb3RvY29s
TWFuYWdlckNsaWVudChtYWtlVW5pcXVlPExlZ2FjeUN1c3RvbVByb3RvY29sTWFuYWdlckNsaWVu
dD4oKSk7Ci0KLSNpZiBFTkFCTEUoQ0ZQUkVGU19ESVJFQ1RfTU9ERSkKLSAgICBbV0tQcmVmZXJl
bmNlT2JzZXJ2ZXIgc3dpenpsZVJlZ2lzdGVyRGVmYXVsdHNdOwotICAgIGRpc3BhdGNoX2FzeW5j
KGRpc3BhdGNoX2dldF9nbG9iYWxfcXVldWUoUU9TX0NMQVNTX0JBQ0tHUk9VTkQsIDApLCBeewot
ICAgICAgICAvLyBTdGFydCBvYnNlcnZpbmcgcHJlZmVyZW5jZSBjaGFuZ2VzLgotICAgICAgICBb
V0tQcmVmZXJlbmNlT2JzZXJ2ZXIgc2hhcmVkSW5zdGFuY2VdOwotICAgIH0pOwotI2VuZGlmCiB9
CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQpAQCAtNjczLDYgKzY2NSwxNCBAQCB2b2lkIFdl
YlByb2Nlc3NQb29sOjpyZWdpc3Rlck5vdGlmaWNhdGlvCiAgICAgICAgICAgICBtX3Byb2Nlc3Nl
c1tpXS0+dW5ibG9ja0FjY2Vzc2liaWxpdHlTZXJ2ZXJJZk5lZWRlZCgpOwogICAgICAgICB9CiAg
ICAgfV07CisjaWYgRU5BQkxFKENGUFJFRlNfRElSRUNUX01PREUpCisgICAgbV9hY3RpdmF0aW9u
T2JzZXJ2ZXIgPSBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIGFkZE9ic2Vy
dmVyRm9yTmFtZTpAIlVJQXBwbGljYXRpb25EaWRCZWNvbWVBY3RpdmVOb3RpZmljYXRpb24iIG9i
amVjdDpuaWwgcXVldWU6W05TT3BlcmF0aW9uUXVldWUgY3VycmVudFF1ZXVlXSB1c2luZ0Jsb2Nr
Ol4oTlNOb3RpZmljYXRpb24gKm5vdGlmaWNhdGlvbikgeworICAgICAgICBkaXNwYXRjaF9hc3lu
YyhkaXNwYXRjaF9nZXRfZ2xvYmFsX3F1ZXVlKERJU1BBVENIX1FVRVVFX1BSSU9SSVRZX0RFRkFV
TFQsIDApLCBeeworICAgICAgICAgICAgLy8gU3RhcnQgb2JzZXJ2aW5nIHByZWZlcmVuY2UgY2hh
bmdlcy4KKyAgICAgICAgICAgIFtXS1ByZWZlcmVuY2VPYnNlcnZlciBzaGFyZWRJbnN0YW5jZV07
CisgICAgICAgIH0pOworICAgIH1dOworI2VuZGlmCiAjZW5kaWYgLy8gIVBMQVRGT1JNKElPU19G
QU1JTFkpCiB9CiAKQEAgLTY4OCw3ICs2ODgsNiBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjp1bnJl
Z2lzdGVyTm90aWZpY2F0CiAjaWYgRU5BQkxFKFdFQlBST0NFU1NfV0lORE9XU0VSVkVSX0JMT0NL
SU5HKQogICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gcmVtb3ZlT2Jz
ZXJ2ZXI6bV9zY3JvbGxlclN0eWxlTm90aWZpY2F0aW9uT2JzZXJ2ZXIuZ2V0KCldOwogI2VuZGlm
Ci0gICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSByZW1vdmVPYnNlcnZl
cjptX2FjdGl2YXRpb25PYnNlcnZlci5nZXQoKV07CiAgICAgW1tOU05vdGlmaWNhdGlvbkNlbnRl
ciBkZWZhdWx0Q2VudGVyXSByZW1vdmVPYnNlcnZlcjptX2RlYWN0aXZhdGlvbk9ic2VydmVyLmdl
dCgpXTsKICNlbGlmICFQTEFURk9STShNQUNDQVRBTFlTVCkKICAgICBDRk5vdGlmaWNhdGlvbkNl
bnRlclJlbW92ZU9ic2VydmVyKENGTm90aWZpY2F0aW9uQ2VudGVyR2V0RGFyd2luTm90aWZ5Q2Vu
dGVyKCksIHRoaXMsIHN0YXRpY19jYXN0PENGU3RyaW5nUmVmPihVSUJhY2tsaWdodExldmVsQ2hh
bmdlZE5vdGlmaWNhdGlvbikgLCBudWxscHRyKTsKQEAgLTY5OCw2ICs2OTcsNyBAQCB2b2lkIFdl
YlByb2Nlc3NQb29sOjp1bnJlZ2lzdGVyTm90aWZpY2F0CiAjZW5kaWYKICNlbmRpZiAvLyBQTEFU
Rk9STShJT1MpCiAgICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSByZW1v
dmVPYnNlcnZlcjptX2FjY2Vzc2liaWxpdHlFbmFibGVkT2JzZXJ2ZXIuZ2V0KCldOworICAgIFtb
TlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gcmVtb3ZlT2JzZXJ2ZXI6bV9hY3Rp
dmF0aW9uT2JzZXJ2ZXIuZ2V0KCldOwogI2VuZGlmIC8vICFQTEFURk9STShJT1NfRkFNSUxZKQog
fQogCkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29tLmFwcGxlLldlYlByb2Nlc3Mu
c2IuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvbS5hcHBsZS5X
ZWJQcm9jZXNzLnNiLmluCShyZXZpc2lvbiAyNTg3NjQpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvY29tLmFwcGxlLldlYlByb2Nlc3Muc2IuaW4JKHdvcmtpbmcgY29weSkKQEAgLTY3Nyw3
ICs2NzcsNiBAQAogICAgICh3aXRoIHJlcG9ydCkgKHdpdGggdGVsZW1ldHJ5KQogI2VuZGlmCiAg
ICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUuUG93ZXJNYW5hZ2VtZW50LmNvbnRyb2wiKQotICAg
IChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLmNmcHJlZnNkLmRhZW1vbiIpCiAgICAgKGdsb2JhbC1u
YW1lICJjb20uYXBwbGUuY29yZXNlcnZpY2VzLmxhdW5jaHNlcnZpY2VzZCIpCiAgICAgKGdsb2Jh
bC1uYW1lICJjb20uYXBwbGUubHNkLm1hcGRiIikKICAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBs
ZS50cnVzdGQuYWdlbnQiKQpJbmRleDogVG9vbHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRv
b2xzL0NoYW5nZUxvZwkocmV2aXNpb24gMjU4NzY0KQorKysgVG9vbHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjAtMDMtMjAgIFBlciBBcm5lIFZvbGxhbiAg
PHB2b2xsYW5AYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gRml4IGxhdW5jaCB0aW1lIHJl
Z3Jlc3Npb24gd2l0aCBDRiBwcmVmcyBkaXJlY3QgbW9kZSBlbmFibGVkCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDkyNDQKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0L1ByZWZlcmVuY2VDaGFuZ2VzLm1tOgorICAgICAgICAoVEVTVCk6CisKIDIwMjAtMDMt
MjAgIEFha2FzaCBKYWluICA8YWFrYXNoX2phaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtld3Nd
IGNvbW1pdC1xdWV1ZSBzaG91bGQgY29tbWVudCBvbiBidWcgaWYgcGF0Y2ggZmFpbHMgdG8gYXBw
bHkKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1ByZWZlcmVuY2VDaGFu
Z2VzLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1By
ZWZlcmVuY2VDaGFuZ2VzLm1tCShyZXZpc2lvbiAyNTg3NjQpCisrKyBUb29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdC9QcmVmZXJlbmNlQ2hhbmdlcy5tbQkod29ya2luZyBjb3B5KQpAQCAt
NDQsMTUgKzQ0LDE4IEBAIC0gKHZvaWQpcHJlZmVyZW5jZURpZENoYW5nZTooTlNTdHJpbmcgKikK
IH0KIEBlbmQKIAorc3RhdGljIGNvbnN0IENGU3RyaW5nUmVmIHRlc3RLZXkgPSBDRlNUUigidGVz
dGtleSIpOworc3RhdGljIGNvbnN0IENGU3RyaW5nUmVmIHRlc3REb21haW4gPSBDRlNUUigia0NG
UHJlZmVyZW5jZXNBbnlBcHBsaWNhdGlvbiIpOworCiBURVNUKFdlYktpdCwgUHJlZmVyZW5jZU9i
c2VydmVyKQogewogICAgIGRvbmUgPSBmYWxzZTsKIAotICAgIENGUHJlZmVyZW5jZXNTZXRBcHBW
YWx1ZShDRlNUUigidGVzdGtleSIpLCBDRlNUUigiMSIpLCBDRlNUUigiY29tLmFwcGxlLmNvcmVt
ZWRpYSIpKTsKKyAgICBDRlByZWZlcmVuY2VzU2V0QXBwVmFsdWUodGVzdEtleSwgQ0ZTVFIoIjEi
KSwgdGVzdERvbWFpbik7CiAKICAgICBhdXRvIG9ic2VydmVyID0gYWRvcHROUyhbW1dLVGVzdFBy
ZWZlcmVuY2VPYnNlcnZlciBhbGxvY10gaW5pdF0pOwogCi0gICAgQ0ZQcmVmZXJlbmNlc1NldEFw
cFZhbHVlKENGU1RSKCJ0ZXN0a2V5IiksIENGU1RSKCIyIiksIENGU1RSKCJjb20uYXBwbGUuY29y
ZW1lZGlhIikpOworICAgIENGUHJlZmVyZW5jZXNTZXRBcHBWYWx1ZSh0ZXN0S2V5LCBDRlNUUigi
MiIpLCB0ZXN0RG9tYWluKTsKIAogICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7
CiB9CkBAIC02MywyMiArNjYsMjIgQEAgVEVTVChXZWJLaXQsIFByZWZlcmVuY2VPYnNlcnZlckFy
cmF5KQogCiAgICAgTlNBcnJheSAqYXJyYXkgPSBAW0AxLCBAMiwgQDNdOwogCi0gICAgYXV0byB1
c2VyRGVmYXVsdHMgPSBhZG9wdE5TKFtbTlNVc2VyRGVmYXVsdHMgYWxsb2NdIGluaXRXaXRoU3Vp
dGVOYW1lOkAiY29tLmFwcGxlLmNvcmVtZWRpYSJdKTsKLSAgICBbdXNlckRlZmF1bHRzLmdldCgp
IHNldE9iamVjdDphcnJheSBmb3JLZXk6QCJ0ZXN0a2V5Il07CisgICAgYXV0byB1c2VyRGVmYXVs
dHMgPSBhZG9wdE5TKFtbTlNVc2VyRGVmYXVsdHMgYWxsb2NdIGluaXRXaXRoU3VpdGVOYW1lOihO
U1N0cmluZyAqKXRlc3REb21haW5dKTsKKyAgICBbdXNlckRlZmF1bHRzLmdldCgpIHNldE9iamVj
dDphcnJheSBmb3JLZXk6KE5TU3RyaW5nICopdGVzdEtleV07CiAKICAgICBhdXRvIG9ic2VydmVy
ID0gYWRvcHROUyhbW1dLVGVzdFByZWZlcmVuY2VPYnNlcnZlciBhbGxvY10gaW5pdF0pOwogCiAg
ICAgTlNBcnJheSAqY2hhbmdlZEFycmF5ID0gQFtAMywgQDIsIEAxXTsKLSAgICBbdXNlckRlZmF1
bHRzLmdldCgpIHNldE9iamVjdDpjaGFuZ2VkQXJyYXkgZm9yS2V5OkAidGVzdGtleSJdOworICAg
IFt1c2VyRGVmYXVsdHMuZ2V0KCkgc2V0T2JqZWN0OmNoYW5nZWRBcnJheSBmb3JLZXk6KE5TU3Ry
aW5nICopdGVzdEtleV07CiAKICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOwog
fQogCiBURVNUKFdlYktpdCwgUHJlZmVyZW5jZUNoYW5nZXMpCiB7Ci0gICAgQ0ZQcmVmZXJlbmNl
c1NldEFwcFZhbHVlKENGU1RSKCJ0ZXN0a2V5IiksIENGU1RSKCIxIiksIENGU1RSKCJjb20uYXBw
bGUuY29yZW1lZGlhIikpOworICAgIENGUHJlZmVyZW5jZXNTZXRBcHBWYWx1ZSh0ZXN0S2V5LCBD
RlNUUigiMSIpLCB0ZXN0RG9tYWluKTsKIAotICAgIEVYUEVDVF9FUSgxLCBDRlByZWZlcmVuY2Vz
R2V0QXBwSW50ZWdlclZhbHVlKENGU1RSKCJ0ZXN0a2V5IiksIENGU1RSKCJjb20uYXBwbGUuY29y
ZW1lZGlhIiksIG51bGxwdHIpKTsKKyAgICBFWFBFQ1RfRVEoMSwgQ0ZQcmVmZXJlbmNlc0dldEFw
cEludGVnZXJWYWx1ZSh0ZXN0S2V5LCB0ZXN0RG9tYWluLCBudWxscHRyKSk7CiAKICAgICBhdXRv
IGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10g
aW5pdF0pOwogICAgIFdLUmV0YWluUHRyPFdLQ29udGV4dFJlZj4gY29udGV4dCA9IGFkb3B0V0so
VGVzdFdlYktpdEFQSTo6VXRpbDo6Y3JlYXRlQ29udGV4dEZvckluamVjdGVkQnVuZGxlVGVzdCgi
SW50ZXJuYWxzSW5qZWN0ZWRCdW5kbGVUZXN0IikpOwpAQCAtODYsMTIgKzg5LDEzIEBAIFRFU1Qo
V2ViS2l0LCBQcmVmZXJlbmNlQ2hhbmdlcykKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtb
VGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDMwMCwg
MzAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCkgYWRkVG9XaW5kb3c6WUVTXSk7
CiAKICAgICBhdXRvIHByZWZlcmVuY2VWYWx1ZSA9IFsmXSB7Ci0gICAgICAgIHJldHVybiBbd2Vi
VmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAid2luZG93LmludGVybmFscy5yZWFk
UHJlZmVyZW5jZUludGVnZXIoXCJjb20uYXBwbGUuY29yZW1lZGlhXCIsIFwidGVzdGtleVwiKSJd
LmludFZhbHVlOworICAgICAgICBOU1N0cmluZyAqanMgPSBbTlNTdHJpbmcgc3RyaW5nV2l0aEZv
cm1hdDpAIndpbmRvdy5pbnRlcm5hbHMucmVhZFByZWZlcmVuY2VJbnRlZ2VyKFwiJUBcIixcIiVA
XCIpIiwgKE5TU3RyaW5nICopdGVzdERvbWFpbiwgKE5TU3RyaW5nICopdGVzdEtleV07CisgICAg
ICAgIHJldHVybiBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OmpzXS5pbnRW
YWx1ZTsKICAgICB9OwogCiAgICAgRVhQRUNUX0VRKHByZWZlcmVuY2VWYWx1ZSgpLCAxKTsKIAot
ICAgIENGUHJlZmVyZW5jZXNTZXRBcHBWYWx1ZShDRlNUUigidGVzdGtleSIpLCBDRlNUUigiMiIp
LCBDRlNUUigiY29tLmFwcGxlLmNvcmVtZWRpYSIpKTsKKyAgICBDRlByZWZlcmVuY2VzU2V0QXBw
VmFsdWUodGVzdEtleSwgQ0ZTVFIoIjIiKSwgdGVzdERvbWFpbik7CiAKICAgICBFWFBFQ1RfRVEo
cHJlZmVyZW5jZVZhbHVlKCksIDIpOwogfQpAQCAtMTAwLDggKzEwNCw4IEBAIFRFU1QoV2ViS2l0
LCBQcmVmZXJlbmNlQ2hhbmdlc0FycmF5KQogewogICAgIE5TQXJyYXkgKmFycmF5ID0gQFtAMSwg
QDIsIEAzXTsKIAotICAgIGF1dG8gdXNlckRlZmF1bHRzID0gYWRvcHROUyhbW05TVXNlckRlZmF1
bHRzIGFsbG9jXSBpbml0V2l0aFN1aXRlTmFtZTpAImNvbS5hcHBsZS5jb3JlbWVkaWEiXSk7Ci0g
ICAgW3VzZXJEZWZhdWx0cy5nZXQoKSBzZXRPYmplY3Q6YXJyYXkgZm9yS2V5OkAidGVzdGtleSJd
OworICAgIGF1dG8gdXNlckRlZmF1bHRzID0gYWRvcHROUyhbW05TVXNlckRlZmF1bHRzIGFsbG9j
XSBpbml0V2l0aFN1aXRlTmFtZTooTlNTdHJpbmcgKil0ZXN0RG9tYWluXSk7CisgICAgW3VzZXJE
ZWZhdWx0cy5nZXQoKSBzZXRPYmplY3Q6YXJyYXkgZm9yS2V5OihOU1N0cmluZyAqKXRlc3RLZXld
OwogCiAgICAgYXV0byBjb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3Vy
YXRpb24gYWxsb2NdIGluaXRdKTsKICAgICBXS1JldGFpblB0cjxXS0NvbnRleHRSZWY+IGNvbnRl
eHQgPSBhZG9wdFdLKFRlc3RXZWJLaXRBUEk6OlV0aWw6OmNyZWF0ZUNvbnRleHRGb3JJbmplY3Rl
ZEJ1bmRsZVRlc3QoIkludGVybmFsc0luamVjdGVkQnVuZGxlVGVzdCIpKTsKQEAgLTEwOSwxMyAr
MTEzLDE0IEBAIFRFU1QoV2ViS2l0LCBQcmVmZXJlbmNlQ2hhbmdlc0FycmF5KQogICAgIGF1dG8g
d2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5T
TWFrZVJlY3QoMCwgMCwgMzAwLCAzMDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbi5nZXQo
KSBhZGRUb1dpbmRvdzpZRVNdKTsKIAogICAgIGF1dG8gcHJlZmVyZW5jZVZhbHVlID0gWyZdIHsK
LSAgICAgICAgcmV0dXJuIFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJ3
aW5kb3cuaW50ZXJuYWxzLmVuY29kZWRQcmVmZXJlbmNlVmFsdWUoXCJjb20uYXBwbGUuY29yZW1l
ZGlhXCIsIFwidGVzdGtleVwiKSJdOworICAgICAgICBOU1N0cmluZyAqanMgPSBbTlNTdHJpbmcg
c3RyaW5nV2l0aEZvcm1hdDpAIndpbmRvdy5pbnRlcm5hbHMuZW5jb2RlZFByZWZlcmVuY2VWYWx1
ZShcIiVAXCIsXCIlQFwiKSIsIChOU1N0cmluZyAqKXRlc3REb21haW4sIChOU1N0cmluZyAqKXRl
c3RLZXldOworICAgICAgICByZXR1cm4gW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNj
cmlwdDpqc107CiAgICAgfTsKIAogICAgIHByZWZlcmVuY2VWYWx1ZSgpOwogCiAgICAgTlNBcnJh
eSAqY2hhbmdlZEFycmF5ID0gQFtAMywgQDIsIEAxXTsKLSAgICBbdXNlckRlZmF1bHRzLmdldCgp
IHNldE9iamVjdDpjaGFuZ2VkQXJyYXkgZm9yS2V5OkAidGVzdGtleSJdOworICAgIFt1c2VyRGVm
YXVsdHMuZ2V0KCkgc2V0T2JqZWN0OmNoYW5nZWRBcnJheSBmb3JLZXk6KE5TU3RyaW5nICopdGVz
dEtleV07CiAKICAgICBhdXRvIGVuY29kZWRTdHJpbmcgPSBwcmVmZXJlbmNlVmFsdWUoKTsKICAg
ICBhdXRvIGVuY29kZWREYXRhID0gYWRvcHROUyhbW05TRGF0YSBhbGxvY10gaW5pdFdpdGhCYXNl
NjRFbmNvZGVkU3RyaW5nOmVuY29kZWRTdHJpbmcgb3B0aW9uczowXSk7CkBAIC0xMzQsOCArMTM5
LDggQEAgVEVTVChXZWJLaXQsIFByZWZlcmVuY2VDaGFuZ2VzRGljdGlvbmFyeQogICAgICAgICBA
ImIiIDogQDIsCiAgICAgfTsKIAotICAgIGF1dG8gdXNlckRlZmF1bHRzID0gYWRvcHROUyhbW05T
VXNlckRlZmF1bHRzIGFsbG9jXSBpbml0V2l0aFN1aXRlTmFtZTpAImNvbS5hcHBsZS5jb3JlbWVk
aWEiXSk7Ci0gICAgW3VzZXJEZWZhdWx0cy5nZXQoKSBzZXRPYmplY3Q6ZGljdCBmb3JLZXk6QCJ0
ZXN0a2V5Il07CisgICAgYXV0byB1c2VyRGVmYXVsdHMgPSBhZG9wdE5TKFtbTlNVc2VyRGVmYXVs
dHMgYWxsb2NdIGluaXRXaXRoU3VpdGVOYW1lOihOU1N0cmluZyAqKXRlc3REb21haW5dKTsKKyAg
ICBbdXNlckRlZmF1bHRzLmdldCgpIHNldE9iamVjdDpkaWN0IGZvcktleTooTlNTdHJpbmcgKil0
ZXN0S2V5XTsKIAogICAgIGF1dG8gY29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdD
b25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CiAgICAgV0tSZXRhaW5QdHI8V0tDb250ZXh0UmVm
PiBjb250ZXh0ID0gYWRvcHRXSyhUZXN0V2ViS2l0QVBJOjpVdGlsOjpjcmVhdGVDb250ZXh0Rm9y
SW5qZWN0ZWRCdW5kbGVUZXN0KCJJbnRlcm5hbHNJbmplY3RlZEJ1bmRsZVRlc3QiKSk7CkBAIC0x
NDMsNyArMTQ4LDggQEAgVEVTVChXZWJLaXQsIFByZWZlcmVuY2VDaGFuZ2VzRGljdGlvbmFyeQog
ICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0
aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgMzAwLCAzMDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJh
dGlvbi5nZXQoKSBhZGRUb1dpbmRvdzpZRVNdKTsKIAogICAgIGF1dG8gcHJlZmVyZW5jZVZhbHVl
ID0gWyZdIHsKLSAgICAgICAgcmV0dXJuIFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFT
Y3JpcHQ6QCJ3aW5kb3cuaW50ZXJuYWxzLmVuY29kZWRQcmVmZXJlbmNlVmFsdWUoXCJjb20uYXBw
bGUuY29yZW1lZGlhXCIsIFwidGVzdGtleVwiKSJdOworICAgICAgICBOU1N0cmluZyAqanMgPSBb
TlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpAIndpbmRvdy5pbnRlcm5hbHMuZW5jb2RlZFByZWZl
cmVuY2VWYWx1ZShcIiVAXCIsXCIlQFwiKSIsIChOU1N0cmluZyAqKXRlc3REb21haW4sIChOU1N0
cmluZyAqKXRlc3RLZXldOworICAgICAgICByZXR1cm4gW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0
aW5nSmF2YVNjcmlwdDpqc107CiAgICAgfTsKIAogICAgIHByZWZlcmVuY2VWYWx1ZSgpOwpAQCAt
MTUzLDcgKzE1OSw3IEBAIFRFU1QoV2ViS2l0LCBQcmVmZXJlbmNlQ2hhbmdlc0RpY3Rpb25hcnkK
ICAgICAgICAgQCJiIiA6IEAyLAogICAgICAgICBAImMiIDogQDMsCiAgICAgfTsKLSAgICBbdXNl
ckRlZmF1bHRzLmdldCgpIHNldE9iamVjdDpjaGFuZ2VkRGljdCBmb3JLZXk6QCJ0ZXN0a2V5Il07
CisgICAgW3VzZXJEZWZhdWx0cy5nZXQoKSBzZXRPYmplY3Q6Y2hhbmdlZERpY3QgZm9yS2V5OihO
U1N0cmluZyAqKXRlc3RLZXldOwogCiAgICAgYXV0byBlbmNvZGVkU3RyaW5nID0gcHJlZmVyZW5j
ZVZhbHVlKCk7CiAgICAgYXV0byBlbmNvZGVkRGF0YSA9IGFkb3B0TlMoW1tOU0RhdGEgYWxsb2Nd
IGluaXRXaXRoQmFzZTY0RW5jb2RlZFN0cmluZzplbmNvZGVkU3RyaW5nIG9wdGlvbnM6MF0pOwpA
QCAtMTY5LDggKzE3NSw4IEBAIFRFU1QoV2ViS2l0LCBQcmVmZXJlbmNlQ2hhbmdlc0RhdGEpCiB7
CiAgICAgTlNEYXRhICpkYXRhID0gW05TRGF0YSBkYXRhV2l0aEJ5dGVzOiJhYmMiIGxlbmd0aDoz
XTsKIAotICAgIGF1dG8gdXNlckRlZmF1bHRzID0gYWRvcHROUyhbW05TVXNlckRlZmF1bHRzIGFs
bG9jXSBpbml0V2l0aFN1aXRlTmFtZTpAImNvbS5hcHBsZS5jb3JlbWVkaWEiXSk7Ci0gICAgW3Vz
ZXJEZWZhdWx0cy5nZXQoKSBzZXRPYmplY3Q6ZGF0YSBmb3JLZXk6QCJ0ZXN0a2V5Il07CisgICAg
YXV0byB1c2VyRGVmYXVsdHMgPSBhZG9wdE5TKFtbTlNVc2VyRGVmYXVsdHMgYWxsb2NdIGluaXRX
aXRoU3VpdGVOYW1lOihOU1N0cmluZyAqKXRlc3REb21haW5dKTsKKyAgICBbdXNlckRlZmF1bHRz
LmdldCgpIHNldE9iamVjdDpkYXRhIGZvcktleTooTlNTdHJpbmcgKil0ZXN0S2V5XTsKIAogICAg
IGF1dG8gY29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFs
bG9jXSBpbml0XSk7CiAgICAgV0tSZXRhaW5QdHI8V0tDb250ZXh0UmVmPiBjb250ZXh0ID0gYWRv
cHRXSyhUZXN0V2ViS2l0QVBJOjpVdGlsOjpjcmVhdGVDb250ZXh0Rm9ySW5qZWN0ZWRCdW5kbGVU
ZXN0KCJJbnRlcm5hbHNJbmplY3RlZEJ1bmRsZVRlc3QiKSk7CkBAIC0xNzgsMTMgKzE4NCwxNCBA
QCBURVNUKFdlYktpdCwgUHJlZmVyZW5jZUNoYW5nZXNEYXRhKQogICAgIGF1dG8gd2ViVmlldyA9
IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3Qo
MCwgMCwgMzAwLCAzMDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbi5nZXQoKSBhZGRUb1dp
bmRvdzpZRVNdKTsKIAogICAgIGF1dG8gcHJlZmVyZW5jZVZhbHVlID0gWyZdIHsKLSAgICAgICAg
cmV0dXJuIFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJ3aW5kb3cuaW50
ZXJuYWxzLmVuY29kZWRQcmVmZXJlbmNlVmFsdWUoXCJjb20uYXBwbGUuY29yZW1lZGlhXCIsIFwi
dGVzdGtleVwiKSJdOworICAgICAgICBOU1N0cmluZyAqanMgPSBbTlNTdHJpbmcgc3RyaW5nV2l0
aEZvcm1hdDpAIndpbmRvdy5pbnRlcm5hbHMuZW5jb2RlZFByZWZlcmVuY2VWYWx1ZShcIiVAXCIs
XCIlQFwiKSIsIChOU1N0cmluZyAqKXRlc3REb21haW4sIChOU1N0cmluZyAqKXRlc3RLZXldOwor
ICAgICAgICByZXR1cm4gW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpqc107
CiAgICAgfTsKIAogICAgIHByZWZlcmVuY2VWYWx1ZSgpOwogCiAgICAgTlNEYXRhICpjaGFuZ2Vk
RGF0YSA9IFtOU0RhdGEgZGF0YVdpdGhCeXRlczoiYWJjZCIgbGVuZ3RoOjRdOwotICAgIFt1c2Vy
RGVmYXVsdHMuZ2V0KCkgc2V0T2JqZWN0OmNoYW5nZWREYXRhIGZvcktleTpAInRlc3RrZXkiXTsK
KyAgICBbdXNlckRlZmF1bHRzLmdldCgpIHNldE9iamVjdDpjaGFuZ2VkRGF0YSBmb3JLZXk6KE5T
U3RyaW5nICopdGVzdEtleV07CiAKICAgICBhdXRvIGVuY29kZWRTdHJpbmcgPSBwcmVmZXJlbmNl
VmFsdWUoKTsKICAgICBhdXRvIGVuY29kZWREYXRhID0gYWRvcHROUyhbW05TRGF0YSBhbGxvY10g
aW5pdFdpdGhCYXNlNjRFbmNvZGVkU3RyaW5nOmVuY29kZWRTdHJpbmcgb3B0aW9uczowXSk7CkBA
IC0yMDAsOCArMjA3LDggQEAgVEVTVChXZWJLaXQsIFByZWZlcmVuY2VDaGFuZ2VzRGF0ZSkKIHsK
ICAgICBOU0RhdGUgKmRhdGUgPSBbTlNEYXRlIGRhdGVXaXRoVGltZUludGVydmFsU2luY2VOb3c6
MF07CiAKLSAgICBhdXRvIHVzZXJEZWZhdWx0cyA9IGFkb3B0TlMoW1tOU1VzZXJEZWZhdWx0cyBh
bGxvY10gaW5pdFdpdGhTdWl0ZU5hbWU6QCJjb20uYXBwbGUuY29yZW1lZGlhIl0pOwotICAgIFt1
c2VyRGVmYXVsdHMuZ2V0KCkgc2V0T2JqZWN0OmRhdGUgZm9yS2V5OkAidGVzdGtleSJdOworICAg
IGF1dG8gdXNlckRlZmF1bHRzID0gYWRvcHROUyhbW05TVXNlckRlZmF1bHRzIGFsbG9jXSBpbml0
V2l0aFN1aXRlTmFtZTooTlNTdHJpbmcgKil0ZXN0RG9tYWluXSk7CisgICAgW3VzZXJEZWZhdWx0
cy5nZXQoKSBzZXRPYmplY3Q6ZGF0ZSBmb3JLZXk6KE5TU3RyaW5nICopdGVzdEtleV07CiAKICAg
ICBhdXRvIGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBh
bGxvY10gaW5pdF0pOwogICAgIFdLUmV0YWluUHRyPFdLQ29udGV4dFJlZj4gY29udGV4dCA9IGFk
b3B0V0soVGVzdFdlYktpdEFQSTo6VXRpbDo6Y3JlYXRlQ29udGV4dEZvckluamVjdGVkQnVuZGxl
VGVzdCgiSW50ZXJuYWxzSW5qZWN0ZWRCdW5kbGVUZXN0IikpOwpAQCAtMjA5LDEzICsyMTYsMTQg
QEAgVEVTVChXZWJLaXQsIFByZWZlcmVuY2VDaGFuZ2VzRGF0ZSkKICAgICBhdXRvIHdlYlZpZXcg
PSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0
KDAsIDAsIDMwMCwgMzAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCkgYWRkVG9X
aW5kb3c6WUVTXSk7CiAKICAgICBhdXRvIHByZWZlcmVuY2VWYWx1ZSA9IFsmXSB7Ci0gICAgICAg
IHJldHVybiBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAid2luZG93Lmlu
dGVybmFscy5lbmNvZGVkUHJlZmVyZW5jZVZhbHVlKFwiY29tLmFwcGxlLmNvcmVtZWRpYVwiLCBc
InRlc3RrZXlcIikiXTsKKyAgICAgICAgTlNTdHJpbmcgKmpzID0gW05TU3RyaW5nIHN0cmluZ1dp
dGhGb3JtYXQ6QCJ3aW5kb3cuaW50ZXJuYWxzLmVuY29kZWRQcmVmZXJlbmNlVmFsdWUoXCIlQFwi
LFwiJUBcIikiLCAoTlNTdHJpbmcgKil0ZXN0RG9tYWluLCAoTlNTdHJpbmcgKil0ZXN0S2V5XTsK
KyAgICAgICAgcmV0dXJuIFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6anNd
OwogICAgIH07CiAKICAgICBwcmVmZXJlbmNlVmFsdWUoKTsKIAogICAgIE5TRGF0ZSAqY2hhbmdl
ZERhdGUgPSBbTlNEYXRlIGRhdGVXaXRoVGltZUludGVydmFsU2luY2VOb3c6MTBdOwotICAgIFt1
c2VyRGVmYXVsdHMuZ2V0KCkgc2V0T2JqZWN0OmNoYW5nZWREYXRlIGZvcktleTpAInRlc3RrZXki
XTsKKyAgICBbdXNlckRlZmF1bHRzLmdldCgpIHNldE9iamVjdDpjaGFuZ2VkRGF0ZSBmb3JLZXk6
KE5TU3RyaW5nICopdGVzdEtleV07CiAKICAgICBhdXRvIGVuY29kZWRTdHJpbmcgPSBwcmVmZXJl
bmNlVmFsdWUoKTsKICAgICBhdXRvIGVuY29kZWREYXRhID0gYWRvcHROUyhbW05TRGF0YSBhbGxv
Y10gaW5pdFdpdGhCYXNlNjRFbmNvZGVkU3RyaW5nOmVuY29kZWRTdHJpbmcgb3B0aW9uczowXSk7
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>394102</attachid>
            <date>2020-03-20 10:44:55 -0700</date>
            <delta_ts>2020-03-20 14:59:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209244-20200320104455.patch</filename>
            <type>text/plain</type>
            <size>23735</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyNTg3NjQpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDIwLTAzLTIwICBQZXIgQXJuZSBWb2xsYW4gIDxw
dm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIEZpeCBsYXVuY2ggdGltZSByZWdy
ZXNzaW9uIHdpdGggQ0YgcHJlZnMgZGlyZWN0IG1vZGUgZW5hYmxlZAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA5MjQ0CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmUtZW5hYmxlIENGIHByZWZzIGRpcmVj
dCBtb2RlLgorCisgICAgICAgICogd3RmL1BsYXRmb3JtRW5hYmxlLmg6CisKIDIwMjAtMDMtMTkg
IFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CiAKICAgICAgICAgVXBzdHJl
YW0gYSB2YXJpZXR5IG9mIENvY29hLXBsYXRmb3JtIEhBVkUgYW5kIEVOQUJMRSBtYWNyb3MKSW5k
ZXg6IFNvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dURi93dGYvUGxhdGZvcm1FbmFibGUuaAkocmV2aXNpb24gMjU4NzY0KQorKysgU291cmNlL1dU
Ri93dGYvUGxhdGZvcm1FbmFibGUuaAkod29ya2luZyBjb3B5KQpAQCAtODcxLDQgKzg3MSw4IEBA
CiAjZXJyb3IgIkVOQUJMRShXRUJHTDIpIHJlcXVpcmVzIEVOQUJMRShXRUJHTCkiCiAjZW5kaWYK
IAorI2lmIFBMQVRGT1JNKENPQ09BKQorI2RlZmluZSBFTkFCTEVfQ0ZQUkVGU19ESVJFQ1RfTU9E
RSAxCisjZWxzZQogI2RlZmluZSBFTkFCTEVfQ0ZQUkVGU19ESVJFQ1RfTU9ERSAwCisjZW5kaWYK
SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNTg3NjQpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI3IEBACisyMDIwLTAzLTIwICBQZXIgQXJuZSBW
b2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIEZpeCBsYXVuY2gg
dGltZSByZWdyZXNzaW9uIHdpdGggQ0YgcHJlZnMgZGlyZWN0IG1vZGUgZW5hYmxlZAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA5MjQ0CisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS82MDU0MjE0OT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBXaGVuIENGIHByZWZzIGRpcmVjdCBtb2RlIHdhcyBlbmFibGVk
IGluIGh0dHBzOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8yNTgwNjQvd2Via2l0LCBpdCBp
bnRyb2R1Y2VkCisgICAgICAgIGEgc2lnbmlmaWNhbnQgbGF1bmNoIHRpbWUgcmVncmVzc2lvbi4g
VGhpcyBwYXRjaCBhZGRyZXNzZXMgdGhpcyByZWdyZXNzaW9uLiBUaGUgbnVtYmVyIG9mIG9ic2Vy
dmVkIGRvbWFpbnMKKyAgICAgICAgaXMgcmVkdWNlZCBhbmQgZG9tYWluIG9ic2VydmF0aW9uIGlz
IGluaXRpYXRlZCBsYXRlciB3aGVuIFNhZmFyaSBpcyBmaXJzdCBhY3RpdmF0ZWQuIFN3aXp6bGlu
ZyBjb2RlIGlzCisgICAgICAgIHJlbW92ZWQsIHNpbmNlIHRoYXQgaGFzIGEgcGVyZm9ybWFuY2Ug
Y29zdCBpbiB0aGUgT2JqZWN0aXZlLUMgcnVudGltZS4gTm9ybWFsIHByaW9yaXR5IGluc3RlYWQg
b2YKKyAgICAgICAgUU9TX0NMQVNTX0JBQ0tHUk9VTkQgaXMgdXNlZCBpbiB0aGUgdGhyZWFkIHdo
aWNoIHN0YXJ0cyB0aGUgb2JzZXJ2aW5nLCBzaW5jZSB1c2luZyBhIGJhY2tncm91bmQgcHJpb3Jp
dHkKKyAgICAgICAgY2xhc3MgY2FuIGxlYWQgdG8gcHJpb3JpdHkgaW52ZXJzaW9uLiBGaW5hbGx5
LCBhIGRpY3Rpb25hcnkgY29tcGFyaXNvbiBpcyByZW1vdmVkIHdoZW4gYSBub3RpZmljYXRpb24K
KyAgICAgICAgYWJvdXQgYSBwcmVmZXJlbmNlIGNoYW5nZSBpcyByZWNlaXZlZCwgc2luY2UgdGhp
cyBjaGVjayBpcyByZWR1bmRhbnQgYW5kIGRvdWJsZXMgdGhlIGNvc3Qgb2YgdGhpcyBtZXRob2Qu
CisKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvUHJlZmVyZW5jZU9ic2VydmVyLm1tOgorICAg
ICAgICAoLVtXS1ByZWZlcmVuY2VPYnNlcnZlciBpbml0XSk6CisgICAgICAgICogVUlQcm9jZXNz
L0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nl
c3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNz
UG9vbDo6cmVnaXN0ZXJOb3RpZmljYXRpb25PYnNlcnZlcnMpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQcm9jZXNzUG9vbDo6dW5yZWdpc3Rlck5vdGlmaWNhdGlvbk9ic2VydmVycyk6CisgICAgICAg
ICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmg6CisKIDIwMjAtMDMtMTkgIERhdmlkIEtpbHpl
ciAgPGRka2lsemVyQGFwcGxlLmNvbT4KIAogICAgICAgICBTaGFyZWRNZW1vcnk6OmFsbG9jYXRl
KCkgc2hvdWxkIGluaXRpYWxpemUgYGFkZHJlc3NgCkluZGV4OiBTb3VyY2UvV2ViS2l0L1Jlc291
cmNlcy9TYW5kYm94UHJvZmlsZXMvaW9zL2NvbS5hcHBsZS5XZWJLaXQuV2ViQ29udGVudC5zYgo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1Jlc291cmNlcy9TYW5kYm94UHJvZmlsZXMvaW9z
L2NvbS5hcHBsZS5XZWJLaXQuV2ViQ29udGVudC5zYgkocmV2aXNpb24gMjU4NzY0KQorKysgU291
cmNlL1dlYktpdC9SZXNvdXJjZXMvU2FuZGJveFByb2ZpbGVzL2lvcy9jb20uYXBwbGUuV2ViS2l0
LldlYkNvbnRlbnQuc2IJKHdvcmtpbmcgY29weSkKQEAgLTUzNCw3ICs1MzQsNiBAQAogKGFsbG93
IG1hY2gtbG9va3VwCiAgICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUubG9nZCIpCiAgICAgKGds
b2JhbC1uYW1lICJjb20uYXBwbGUubG9nZC5ldmVudHMiKQotICAgIChnbG9iYWwtbmFtZSAiY29t
LmFwcGxlLmNmcHJlZnNkLmRhZW1vbiIpCiApCiAKIChkZW55IG1hY2gtbG9va3VwICh3aXRoIHRl
bGVtZXRyeSkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAko
cmV2aXNpb24gMjU4NzY0KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bv
b2wuaAkod29ya2luZyBjb3B5KQpAQCAtNjkxLDcgKzY5MSw2IEBAIHByaXZhdGU6CiAjaWYgRU5B
QkxFKFdFQlBST0NFU1NfV0lORE9XU0VSVkVSX0JMT0NLSU5HKQogICAgIFJldGFpblB0cjxOU09i
amVjdD4gbV9zY3JvbGxlclN0eWxlTm90aWZpY2F0aW9uT2JzZXJ2ZXI7CiAjZW5kaWYKLSAgICBS
ZXRhaW5QdHI8TlNPYmplY3Q+IG1fYWN0aXZhdGlvbk9ic2VydmVyOwogICAgIFJldGFpblB0cjxO
U09iamVjdD4gbV9kZWFjdGl2YXRpb25PYnNlcnZlcjsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxI
aWdoUGVyZm9ybWFuY2VHcmFwaGljc1VzYWdlU2FtcGxlcj4gbV9oaWdoUGVyZm9ybWFuY2VHcmFw
aGljc1VzYWdlU2FtcGxlcjsKQEAgLTY5OSw2ICs2OTgsNyBAQCBwcml2YXRlOgogI2VuZGlmCiAK
ICNpZiBQTEFURk9STShDT0NPQSkKKyAgICBSZXRhaW5QdHI8TlNPYmplY3Q+IG1fYWN0aXZhdGlv
bk9ic2VydmVyOwogICAgIFJldGFpblB0cjxOU09iamVjdD4gbV9hY2Nlc3NpYmlsaXR5RW5hYmxl
ZE9ic2VydmVyOwogI2VuZGlmCiAKQEAgLTgwMiwxMCArODAyLDYgQEAgcHJpdmF0ZToKICAgICBi
b29sIG1faXNEZWxheWVkV2ViUHJvY2Vzc0xhdW5jaERpc2FibGVkIHsgZmFsc2UgfTsKICNlbmRp
ZgogICAgIGJvb2wgbV91c2VTZXBhcmF0ZVNlcnZpY2VXb3JrZXJQcm9jZXNzIHsgZmFsc2UgfTsK
LQotI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIFJldGFpblB0cjxXS1ByZWZlcmVuY2VPYnNlcnZl
cj4gbV9wcmVmZXJlbmNlT2JzZXJ2ZXI7Ci0jZW5kaWYKIH07CiAKIHRlbXBsYXRlPHR5cGVuYW1l
IFQ+CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9QcmVmZXJlbmNlT2JzZXJ2
ZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9QcmVmZXJl
bmNlT2JzZXJ2ZXIuaAkocmV2aXNpb24gMjU4NzY0KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQ29jb2EvUHJlZmVyZW5jZU9ic2VydmVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ2LDYgKzQ2
LDUgQEAgX19hdHRyaWJ1dGVfXygodmlzaWJpbGl0eSgiZGVmYXVsdCIpKSkKICAgICBWZWN0b3I8
UmV0YWluUHRyPFdLVXNlckRlZmF1bHRzPj4gbV91c2VyRGVmYXVsdHM7CiB9CiArIChpZClzaGFy
ZWRJbnN0YW5jZTsKLSsgKHZvaWQpc3dpenpsZVJlZ2lzdGVyRGVmYXVsdHM7CiAtICh2b2lkKXBy
ZWZlcmVuY2VEaWRDaGFuZ2U6KE5TU3RyaW5nICopZG9tYWluIGtleTooTlNTdHJpbmcgKilrZXkg
ZW5jb2RlZFZhbHVlOihOU1N0cmluZyAqKWVuY29kZWRWYWx1ZTsKIEBlbmQKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1ByZWZlcmVuY2VPYnNlcnZlci5tbQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9QcmVmZXJlbmNlT2JzZXJ2ZXIubW0J
KHJldmlzaW9uIDI1ODc2NCkKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1ByZWZl
cmVuY2VPYnNlcnZlci5tbQkod29ya2luZyBjb3B5KQpAQCAtMjgsMzEgKzI4LDEyIEBACiAKICNp
bXBvcnQgIldlYlByb2Nlc3NQb29sLmgiCiAKLSNpbXBvcnQgPHd0Zi9PYmpDUnVudGltZUV4dHJh
cy5oPgotCi1zdGF0aWMgSU1QIHJlZ2lzdGVyRGVmYXVsdHNPcmlnaW5hbCA9IG5pbDsKLXN0YXRp
YyBib29sIHJlZ2lzdGVyaW5nRGVmYXVsdHMgPSBmYWxzZTsKLQotc3RhdGljIHZvaWQgcmVnaXN0
ZXJEZWZhdWx0c092ZXJyaWRlKGlkIHNlbGYsIFNFTCBzZWxlY3RvciwgTlNEaWN0aW9uYXJ5PE5T
U3RyaW5nICosIGlkPiAqZGljdGlvbmFyeSkKLXsKLSAgICByZWdpc3RlcmluZ0RlZmF1bHRzID0g
dHJ1ZTsKLSAgICBpZiAocmVnaXN0ZXJEZWZhdWx0c09yaWdpbmFsKQotICAgICAgICB3dGZDYWxs
SU1QPHZvaWQ+KHJlZ2lzdGVyRGVmYXVsdHNPcmlnaW5hbCwgc2VsZiwgc2VsZWN0b3IsIGRpY3Rp
b25hcnkpOwotICAgIHJlZ2lzdGVyaW5nRGVmYXVsdHMgPSBmYWxzZTsKLX0KLQogQGltcGxlbWVu
dGF0aW9uIFdLVXNlckRlZmF1bHRzCiAKIC0gKHZvaWQpX25vdGlmeU9ic2VydmVyc09mQ2hhbmdl
RnJvbVZhbHVlc0ZvcktleXM6KE5TRGljdGlvbmFyeTxOU1N0cmluZyAqLCBpZD4gKilvbGRWYWx1
ZXMgdG9WYWx1ZXNGb3JLZXlzOihOU0RpY3Rpb25hcnk8TlNTdHJpbmcgKiwgaWQ+ICopbmV3VmFs
dWVzCiB7Ci0gICAgaWYgKHJlZ2lzdGVyaW5nRGVmYXVsdHMpCi0gICAgICAgIHJldHVybjsKLQog
ICAgIFtzdXBlciBfbm90aWZ5T2JzZXJ2ZXJzT2ZDaGFuZ2VGcm9tVmFsdWVzRm9yS2V5czpvbGRW
YWx1ZXMgdG9WYWx1ZXNGb3JLZXlzOm5ld1ZhbHVlc107CiAKLSAgICBpZiAoW29sZFZhbHVlcyBp
c0VxdWFsVG9EaWN0aW9uYXJ5Om5ld1ZhbHVlc10pCi0gICAgICAgIHJldHVybjsKLQogICAgIGZv
ciAoTlNTdHJpbmcgKmtleSBpbiBvbGRWYWx1ZXMpIHsKICAgICAgICAgaWQgb2xkVmFsdWUgPSBv
bGRWYWx1ZXNba2V5XTsKICAgICAgICAgaWQgbmV3VmFsdWUgPSBuZXdWYWx1ZXNba2V5XTsKQEAg
LTEwMSwxMDMgKzgyLDMzIEBAICsgKGlkKXNoYXJlZEluc3RhbmNlCiAgICAgcmV0dXJuIGluc3Rh
bmNlOwogfQogCi0rICh2b2lkKXN3aXp6bGVSZWdpc3RlckRlZmF1bHRzCi17Ci0gICAgc3RhdGlj
IHN0ZDo6b25jZV9mbGFnIG9uY2VGbGFnOwotICAgIHN0ZDo6Y2FsbF9vbmNlKG9uY2VGbGFnLCBb
XSB7Ci0gICAgICAgIE1ldGhvZCByZWdpc3RlckRlZmF1bHRzTWV0aG9kID0gY2xhc3NfZ2V0SW5z
dGFuY2VNZXRob2Qob2JqY19nZXRDbGFzcygiTlNVc2VyRGVmYXVsdHMiKSwgQHNlbGVjdG9yKHJl
Z2lzdGVyRGVmYXVsdHM6KSk7Ci0gICAgICAgIHJlZ2lzdGVyRGVmYXVsdHNPcmlnaW5hbCA9IG1l
dGhvZF9zZXRJbXBsZW1lbnRhdGlvbihyZWdpc3RlckRlZmF1bHRzTWV0aG9kLCAoSU1QKXJlZ2lz
dGVyRGVmYXVsdHNPdmVycmlkZSk7Ci0gICAgfSk7Ci19Ci0KIC0gKGluc3RhbmNldHlwZSlpbml0
CiB7CiAgICAgc3RkOjppbml0aWFsaXplcl9saXN0PE5TU3RyaW5nKj4gZG9tYWlucyA9IHsKLSAg
ICAgICAgQCJjb20uYXBwbGUuQWNjZXNzaWJpbGl0eSIsCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlM
WSkKKyAgICAgICAgQCJjb20uYXBwbGUuQWNjZXNzaWJpbGl0eSIsCiAgICAgICAgIEAiY29tLmFw
cGxlLkFkTGliIiwKLSAgICAgICAgQCJjb20uYXBwbGUuQ0ZOZXR3b3JrIiwKLSAgICAgICAgQCJj
b20uYXBwbGUuRW1vamlQcmVmZXJlbmNlcyIsCi0gICAgICAgIEAiY29tLmFwcGxlLkZvbnRQYXJz
ZXIiLAotICAgICAgICBAImNvbS5hcHBsZS5JbWFnZUlPIiwKLSAgICAgICAgQCJjb20uYXBwbGUu
SW5wdXRNb2RlUHJlZmVyZW5jZXMiLAotI2Vsc2UKLSAgICAgICAgQCJjb20uYXBwbGUuQVRTIiwK
LSAgICAgICAgQCJjb20uYXBwbGUuQ29yZUdyYXBoaWNzIiwKLSAgICAgICAgQCJjb20uYXBwbGUu
RG93bmxvYWRBc3Nlc3NtZW50IiwKLSAgICAgICAgQCJjb20uYXBwbGUuSElUb29sYm94IiwKLSNl
bmRpZgotICAgICAgICBAImNvbS5hcHBsZS5MYXVuY2hTZXJ2aWNlcyIsCi0jaWYgUExBVEZPUk0o
SU9TX0ZBTUlMWSkKLSAgICAgICAgQCJjb20uYXBwbGUuTWV0YWwiLAotICAgICAgICBAImNvbS5h
cHBsZS5Nb2JpbGVBc3NldCIsCiAgICAgICAgIEAiY29tLmFwcGxlLlByZWZlcmVuY2VzIiwKLSAg
ICAgICAgQCJjb20uYXBwbGUuU3BlYWtTZWxlY3Rpb24iLAogICAgICAgICBAImNvbS5hcHBsZS5V
SUtpdCIsCi0gICAgICAgIEAiY29tLmFwcGxlLlZvaWNlT3ZlclRvdWNoIiwKLSNlbHNlCi0gICAg
ICAgIEAiY29tLmFwcGxlLk11bHRpdG91Y2hTdXBwb3J0IgotICAgICAgICBAImNvbS5hcHBsZS5T
ZXJ2aWNlc01lbnUuU2VydmljZXMiCi0gICAgICAgIEAiY29tLmFwcGxlLlZpZXdCcmlkZ2UiCi0j
ZW5kaWYKLSAgICAgICAgQCJjb20uYXBwbGUuV2ViRm91bmRhdGlvbiIsCi0jaWYgUExBVEZPUk0o
SU9TX0ZBTUlMWSkKLSAgICAgICAgQCJjb20uYXBwbGUuV2ViS2l0LldlYkNvbnRlbnQiLAotICAg
ICAgICBAImNvbS5hcHBsZS5XZWJVSSIsCi0gICAgICAgIEAiY29tLmFwcGxlLmFpcnBsYXkiLAot
ICAgICAgICBAImNvbS5hcHBsZS5hcHBsZWpwZWciLAotICAgICAgICBAImNvbS5hcHBsZS5hdWRp
by52aXJ0dWFsYXVkaW8iLAogICAgICAgICBAImNvbS5hcHBsZS5hdmZhdWRpbyIsCi0jZW5kaWYK
LSAgICAgICAgQCJjb20uYXBwbGUuYXZmb3VuZGF0aW9uIiwKLSAgICAgICAgQCJjb20uYXBwbGUu
YXZmb3VuZGF0aW9uLmZyZWNlbnRzIiwKLSAgICAgICAgQCJjb20uYXBwbGUuYXZmb3VuZGF0aW9u
LnZpZGVvcGVyZm9ybWFuY2VodWQiLAotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgICAg
IEAiY29tLmFwcGxlLmF2a2l0IiwKLSAgICAgICAgQCJjb20uYXBwbGUuY29yZWFuaW1hdGlvbiIs
Ci0gICAgICAgIEAiY29tLmFwcGxlLmNvcmVhdWRpbyIsCi0jZW5kaWYKLSAgICAgICAgQCJjb20u
YXBwbGUuY29yZW1lZGlhIiwKLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgICAgICBAImNv
bS5hcHBsZS5jb3JldmlkZW8iLAotICAgICAgICBAImNvbS5hcHBsZS5kYSIsCi0gICAgICAgIEAi
Y29tLmFwcGxlLmhhbmd0cmFjZXIiLAotICAgICAgICBAImNvbS5hcHBsZS5pbmRpZ28iLAotICAg
ICAgICBAImNvbS5hcHBsZS5pb2tpdC5JT01vYmlsZUdyYXBoaWNzRmFtaWx5IiwKICAgICAgICAg
QCJjb20uYXBwbGUuaXR1bmVzc3RvcmVkIiwKLSAgICAgICAgQCJjb20uYXBwbGUua2V5Ym9hcmQi
LAotI2Vsc2UKLSAgICAgICAgQCJjb20uYXBwbGUuY3J5cHRvIiwKLSAgICAgICAgQCJjb20uYXBw
bGUuZHJpdmVyLkFwcGxlQmx1ZXRvb3RoTXVsdGl0b3VjaC5tb3VzZSIsCi0gICAgICAgIEAiY29t
LmFwcGxlLmRyaXZlci5BcHBsZUJsdWV0b290aE11bHRpdG91Y2gudHJhY2twYWQiLAotICAgICAg
ICBAImNvbS5hcHBsZS5kcml2ZXIuQXBwbGVISURNb3VzZSIKLSNlbmRpZgotICAgICAgICBAImNv
bS5hcHBsZS5sb29rdXAuc2hhcmVkIiwKLSAgICAgICAgQCJjb20uYXBwbGUubWVkaWFhY2Nlc3Np
YmlsaXR5IiwKLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgICAgICBAImNvbS5hcHBsZS5t
ZWRpYWFjY2Vzc2liaWxpdHkucHVibGljIiwKICAgICAgICAgQCJjb20uYXBwbGUubWVkaWFyZW1v
dGUiLAotICAgICAgICBAImNvbS5hcHBsZS5tb2JpbGVpcG9kIiwKLSAgICAgICAgQCJjb20uYXBw
bGUubXQiLAotI2Vsc2UKLSAgICAgICAgQCJjb20uYXBwbGUubmV0d29ya0Nvbm5lY3QiCi0jZW5k
aWYKLSAgICAgICAgQCJjb20uYXBwbGUub3BlbmdsIiwKLSNpZiBQTEFURk9STShJT1NfRkFNSUxZ
KQogICAgICAgICBAImNvbS5hcHBsZS5wcmVmZXJlbmNlcy5zb3VuZHMiLAotICAgICAgICBAImNv
bS5hcHBsZS5zZWN1cml0eSIsCiAgICAgICAgIEAiY29tLmFwcGxlLnZvaWNlc2VydmljZXMiLAot
ICAgICAgICBAImNvbS5hcHBsZS52b2ljZXNlcnZpY2VzLmxvZ2dpbmciLAorICAgICAgICBAImtD
RlByZWZlcmVuY2VzQW55QXBwbGljYXRpb24iLAogI2Vsc2UKKyAgICAgICAgQCJjb20uYXBwbGUu
Q29yZUdyYXBoaWNzIiwKKyAgICAgICAgQCJjb20uYXBwbGUuSElUb29sYm94IiwKKyAgICAgICAg
QCJjb20uYXBwbGUuU2VydmljZXNNZW51LlNlcnZpY2VzIiwKKyAgICAgICAgQCJjb20uYXBwbGUu
Vmlld0JyaWRnZSIsCisgICAgICAgIEAiY29tLmFwcGxlLmF2Zm91bmRhdGlvbiIsCisgICAgICAg
IEAiY29tLmFwcGxlLmF2Zm91bmRhdGlvbi52aWRlb3BlcmZvcm1hbmNlaHVkIiwKKyAgICAgICAg
QCJjb20uYXBwbGUuZHJpdmVyLkFwcGxlQmx1ZXRvb3RoTXVsdGl0b3VjaC5tb3VzZSIsCisgICAg
ICAgIEAiY29tLmFwcGxlLmRyaXZlci5BcHBsZUJsdWV0b290aE11bHRpdG91Y2gudHJhY2twYWQi
LAorICAgICAgICBAImNvbS5hcHBsZS5tZWRpYWFjY2Vzc2liaWxpdHkiLAogICAgICAgICBAImNv
bS5hcHBsZS5zcGVlY2gudm9pY2UucHJlZnMiLAotICAgICAgICBAImNvbS5hcHBsZS5zeXN0ZW1z
b3VuZCIsCiAgICAgICAgIEAiY29tLmFwcGxlLnVuaXZlcnNhbGFjY2VzcyIsCi0gICAgICAgIEAi
Y29tLm52aWRpYS5PcGVuR0wiLAotICAgICAgICBAImVkdS5taXQuS2VyYmVyb3MiLAotI2VuZGlm
CiAgICAgICAgIEAia0NGUHJlZmVyZW5jZXNBbnlBcHBsaWNhdGlvbiIsCi0jaWYgIVBMQVRGT1JN
KElPU19GQU1JTFkpCi0gICAgICAgIEAicGJzIiwKICNlbmRpZgogICAgIH07CiAKSW5kZXg6IFNv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2Nv
YS5tbQkocmV2aXNpb24gMjU4NzY0KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2Ev
V2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQkod29ya2luZyBjb3B5KQpAQCAtMTczLDE0ICsxNzMsNiBA
QCB2b2lkIFdlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemUoCiAgICAgICAgIGluc3Rh
bGxNZW1vcnlQcmVzc3VyZUhhbmRsZXIoKTsKIAogICAgIHNldExlZ2FjeUN1c3RvbVByb3RvY29s
TWFuYWdlckNsaWVudChtYWtlVW5pcXVlPExlZ2FjeUN1c3RvbVByb3RvY29sTWFuYWdlckNsaWVu
dD4oKSk7Ci0KLSNpZiBFTkFCTEUoQ0ZQUkVGU19ESVJFQ1RfTU9ERSkKLSAgICBbV0tQcmVmZXJl
bmNlT2JzZXJ2ZXIgc3dpenpsZVJlZ2lzdGVyRGVmYXVsdHNdOwotICAgIGRpc3BhdGNoX2FzeW5j
KGRpc3BhdGNoX2dldF9nbG9iYWxfcXVldWUoUU9TX0NMQVNTX0JBQ0tHUk9VTkQsIDApLCBeewot
ICAgICAgICAvLyBTdGFydCBvYnNlcnZpbmcgcHJlZmVyZW5jZSBjaGFuZ2VzLgotICAgICAgICBb
V0tQcmVmZXJlbmNlT2JzZXJ2ZXIgc2hhcmVkSW5zdGFuY2VdOwotICAgIH0pOwotI2VuZGlmCiB9
CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQpAQCAtNjUyLDYgKzY0NCwxMiBAQCB2b2lkIFdl
YlByb2Nlc3NQb29sOjpyZWdpc3Rlck5vdGlmaWNhdGlvCiAjZW5kaWYKIAogICAgIG1fYWN0aXZh
dGlvbk9ic2VydmVyID0gW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSBhZGRP
YnNlcnZlckZvck5hbWU6TlNBcHBsaWNhdGlvbkRpZEJlY29tZUFjdGl2ZU5vdGlmaWNhdGlvbiBv
YmplY3Q6TlNBcHAgcXVldWU6W05TT3BlcmF0aW9uUXVldWUgY3VycmVudFF1ZXVlXSB1c2luZ0Js
b2NrOl4oTlNOb3RpZmljYXRpb24gKm5vdGlmaWNhdGlvbikgeworI2lmIEVOQUJMRShDRlBSRUZT
X0RJUkVDVF9NT0RFKQorICAgICAgICBkaXNwYXRjaF9hc3luYyhkaXNwYXRjaF9nZXRfZ2xvYmFs
X3F1ZXVlKERJU1BBVENIX1FVRVVFX1BSSU9SSVRZX0RFRkFVTFQsIDApLCBeeworICAgICAgICAg
ICAgLy8gU3RhcnQgb2JzZXJ2aW5nIHByZWZlcmVuY2UgY2hhbmdlcy4KKyAgICAgICAgICAgIFtX
S1ByZWZlcmVuY2VPYnNlcnZlciBzaGFyZWRJbnN0YW5jZV07CisgICAgICAgIH0pOworI2VuZGlm
CiAgICAgICAgIHNldEFwcGxpY2F0aW9uSXNBY3RpdmUodHJ1ZSk7CiAgICAgfV07CiAKQEAgLTY3
Myw2ICs2NzEsMTQgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6cmVnaXN0ZXJOb3RpZmljYXRpbwog
ICAgICAgICAgICAgbV9wcm9jZXNzZXNbaV0tPnVuYmxvY2tBY2Nlc3NpYmlsaXR5U2VydmVySWZO
ZWVkZWQoKTsKICAgICAgICAgfQogICAgIH1dOworI2lmIEVOQUJMRShDRlBSRUZTX0RJUkVDVF9N
T0RFKQorICAgIG1fYWN0aXZhdGlvbk9ic2VydmVyID0gW1tOU05vdGlmaWNhdGlvbkNlbnRlciBk
ZWZhdWx0Q2VudGVyXSBhZGRPYnNlcnZlckZvck5hbWU6QCJVSUFwcGxpY2F0aW9uRGlkQmVjb21l
QWN0aXZlTm90aWZpY2F0aW9uIiBvYmplY3Q6bmlsIHF1ZXVlOltOU09wZXJhdGlvblF1ZXVlIGN1
cnJlbnRRdWV1ZV0gdXNpbmdCbG9jazpeKE5TTm90aWZpY2F0aW9uICpub3RpZmljYXRpb24pIHsK
KyAgICAgICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0Y2hfZ2V0X2dsb2JhbF9xdWV1ZShESVNQQVRD
SF9RVUVVRV9QUklPUklUWV9ERUZBVUxULCAwKSwgXnsKKyAgICAgICAgICAgIC8vIFN0YXJ0IG9i
c2VydmluZyBwcmVmZXJlbmNlIGNoYW5nZXMuCisgICAgICAgICAgICBbV0tQcmVmZXJlbmNlT2Jz
ZXJ2ZXIgc2hhcmVkSW5zdGFuY2VdOworICAgICAgICB9KTsKKyAgICB9XTsKKyNlbmRpZgogI2Vu
ZGlmIC8vICFQTEFURk9STShJT1NfRkFNSUxZKQogfQogCkBAIC02ODgsNyArNjk0LDYgQEAgdm9p
ZCBXZWJQcm9jZXNzUG9vbDo6dW5yZWdpc3Rlck5vdGlmaWNhdAogI2lmIEVOQUJMRShXRUJQUk9D
RVNTX1dJTkRPV1NFUlZFUl9CTE9DS0lORykKICAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRl
ZmF1bHRDZW50ZXJdIHJlbW92ZU9ic2VydmVyOm1fc2Nyb2xsZXJTdHlsZU5vdGlmaWNhdGlvbk9i
c2VydmVyLmdldCgpXTsKICNlbmRpZgotICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVs
dENlbnRlcl0gcmVtb3ZlT2JzZXJ2ZXI6bV9hY3RpdmF0aW9uT2JzZXJ2ZXIuZ2V0KCldOwogICAg
IFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gcmVtb3ZlT2JzZXJ2ZXI6bV9k
ZWFjdGl2YXRpb25PYnNlcnZlci5nZXQoKV07CiAjZWxpZiAhUExBVEZPUk0oTUFDQ0FUQUxZU1Qp
CiAgICAgQ0ZOb3RpZmljYXRpb25DZW50ZXJSZW1vdmVPYnNlcnZlcihDRk5vdGlmaWNhdGlvbkNl
bnRlckdldERhcndpbk5vdGlmeUNlbnRlcigpLCB0aGlzLCBzdGF0aWNfY2FzdDxDRlN0cmluZ1Jl
Zj4oVUlCYWNrbGlnaHRMZXZlbENoYW5nZWROb3RpZmljYXRpb24pICwgbnVsbHB0cik7CkBAIC02
OTgsNiArNzAzLDcgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6dW5yZWdpc3Rlck5vdGlmaWNhdAog
I2VuZGlmCiAjZW5kaWYgLy8gUExBVEZPUk0oSU9TKQogICAgIFtbTlNOb3RpZmljYXRpb25DZW50
ZXIgZGVmYXVsdENlbnRlcl0gcmVtb3ZlT2JzZXJ2ZXI6bV9hY2Nlc3NpYmlsaXR5RW5hYmxlZE9i
c2VydmVyLmdldCgpXTsKKyAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJd
IHJlbW92ZU9ic2VydmVyOm1fYWN0aXZhdGlvbk9ic2VydmVyLmdldCgpXTsKICNlbmRpZiAvLyAh
UExBVEZPUk0oSU9TX0ZBTUlMWSkKIH0KIApJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L2NvbS5hcHBsZS5XZWJQcm9jZXNzLnNiLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9jb20uYXBwbGUuV2ViUHJvY2Vzcy5zYi5pbgkocmV2aXNpb24gMjU4NzY0KQor
KysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvbS5hcHBsZS5XZWJQcm9jZXNzLnNiLmluCSh3
b3JraW5nIGNvcHkpCkBAIC02NzcsNyArNjc3LDYgQEAKICAgICAod2l0aCByZXBvcnQpICh3aXRo
IHRlbGVtZXRyeSkKICNlbmRpZgogICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLlBvd2VyTWFu
YWdlbWVudC5jb250cm9sIikKLSAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS5jZnByZWZzZC5k
YWVtb24iKQogICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLmNvcmVzZXJ2aWNlcy5sYXVuY2hz
ZXJ2aWNlc2QiKQogICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLmxzZC5tYXBkYiIpCiAgICAg
KGdsb2JhbC1uYW1lICJjb20uYXBwbGUudHJ1c3RkLmFnZW50IikKSW5kZXg6IFRvb2xzL0NoYW5n
ZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1ODc2NCkKKysr
IFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBACisyMDIwLTAz
LTIwICBQZXIgQXJuZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29j
b2FdIEZpeCBsYXVuY2ggdGltZSByZWdyZXNzaW9uIHdpdGggQ0YgcHJlZnMgZGlyZWN0IG1vZGUg
ZW5hYmxlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjA5MjQ0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9QcmVmZXJlbmNlQ2hhbmdlcy5tbToKKyAgICAg
ICAgKFRFU1QpOgorCiAyMDIwLTAzLTIwICBBYWthc2ggSmFpbiAgPGFha2FzaF9qYWluQGFwcGxl
LmNvbT4KIAogICAgICAgICBbZXdzXSBjb21taXQtcXVldWUgc2hvdWxkIGNvbW1lbnQgb24gYnVn
IGlmIHBhdGNoIGZhaWxzIHRvIGFwcGx5CkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdC9QcmVmZXJlbmNlQ2hhbmdlcy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdC9QcmVmZXJlbmNlQ2hhbmdlcy5tbQkocmV2aXNpb24gMjU4NzY0
KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvUHJlZmVyZW5jZUNoYW5nZXMu
bW0JKHdvcmtpbmcgY29weSkKQEAgLTQ0LDE1ICs0NCwxOCBAQCAtICh2b2lkKXByZWZlcmVuY2VE
aWRDaGFuZ2U6KE5TU3RyaW5nICopCiB9CiBAZW5kCiAKK3N0YXRpYyBjb25zdCBDRlN0cmluZ1Jl
ZiB0ZXN0S2V5ID0gQ0ZTVFIoInRlc3RrZXkiKTsKK3N0YXRpYyBjb25zdCBDRlN0cmluZ1JlZiB0
ZXN0RG9tYWluID0gQ0ZTVFIoImtDRlByZWZlcmVuY2VzQW55QXBwbGljYXRpb24iKTsKKwogVEVT
VChXZWJLaXQsIFByZWZlcmVuY2VPYnNlcnZlcikKIHsKICAgICBkb25lID0gZmFsc2U7CiAKLSAg
ICBDRlByZWZlcmVuY2VzU2V0QXBwVmFsdWUoQ0ZTVFIoInRlc3RrZXkiKSwgQ0ZTVFIoIjEiKSwg
Q0ZTVFIoImNvbS5hcHBsZS5jb3JlbWVkaWEiKSk7CisgICAgQ0ZQcmVmZXJlbmNlc1NldEFwcFZh
bHVlKHRlc3RLZXksIENGU1RSKCIxIiksIHRlc3REb21haW4pOwogCiAgICAgYXV0byBvYnNlcnZl
ciA9IGFkb3B0TlMoW1tXS1Rlc3RQcmVmZXJlbmNlT2JzZXJ2ZXIgYWxsb2NdIGluaXRdKTsKIAot
ICAgIENGUHJlZmVyZW5jZXNTZXRBcHBWYWx1ZShDRlNUUigidGVzdGtleSIpLCBDRlNUUigiMiIp
LCBDRlNUUigiY29tLmFwcGxlLmNvcmVtZWRpYSIpKTsKKyAgICBDRlByZWZlcmVuY2VzU2V0QXBw
VmFsdWUodGVzdEtleSwgQ0ZTVFIoIjIiKSwgdGVzdERvbWFpbik7CiAKICAgICBUZXN0V2ViS2l0
QVBJOjpVdGlsOjpydW4oJmRvbmUpOwogfQpAQCAtNjMsMjIgKzY2LDIyIEBAIFRFU1QoV2ViS2l0
LCBQcmVmZXJlbmNlT2JzZXJ2ZXJBcnJheSkKIAogICAgIE5TQXJyYXkgKmFycmF5ID0gQFtAMSwg
QDIsIEAzXTsKIAotICAgIGF1dG8gdXNlckRlZmF1bHRzID0gYWRvcHROUyhbW05TVXNlckRlZmF1
bHRzIGFsbG9jXSBpbml0V2l0aFN1aXRlTmFtZTpAImNvbS5hcHBsZS5jb3JlbWVkaWEiXSk7Ci0g
ICAgW3VzZXJEZWZhdWx0cy5nZXQoKSBzZXRPYmplY3Q6YXJyYXkgZm9yS2V5OkAidGVzdGtleSJd
OworICAgIGF1dG8gdXNlckRlZmF1bHRzID0gYWRvcHROUyhbW05TVXNlckRlZmF1bHRzIGFsbG9j
XSBpbml0V2l0aFN1aXRlTmFtZTooTlNTdHJpbmcgKil0ZXN0RG9tYWluXSk7CisgICAgW3VzZXJE
ZWZhdWx0cy5nZXQoKSBzZXRPYmplY3Q6YXJyYXkgZm9yS2V5OihOU1N0cmluZyAqKXRlc3RLZXld
OwogCiAgICAgYXV0byBvYnNlcnZlciA9IGFkb3B0TlMoW1tXS1Rlc3RQcmVmZXJlbmNlT2JzZXJ2
ZXIgYWxsb2NdIGluaXRdKTsKIAogICAgIE5TQXJyYXkgKmNoYW5nZWRBcnJheSA9IEBbQDMsIEAy
LCBAMV07Ci0gICAgW3VzZXJEZWZhdWx0cy5nZXQoKSBzZXRPYmplY3Q6Y2hhbmdlZEFycmF5IGZv
cktleTpAInRlc3RrZXkiXTsKKyAgICBbdXNlckRlZmF1bHRzLmdldCgpIHNldE9iamVjdDpjaGFu
Z2VkQXJyYXkgZm9yS2V5OihOU1N0cmluZyAqKXRlc3RLZXldOwogCiAgICAgVGVzdFdlYktpdEFQ
STo6VXRpbDo6cnVuKCZkb25lKTsKIH0KIAogVEVTVChXZWJLaXQsIFByZWZlcmVuY2VDaGFuZ2Vz
KQogewotICAgIENGUHJlZmVyZW5jZXNTZXRBcHBWYWx1ZShDRlNUUigidGVzdGtleSIpLCBDRlNU
UigiMSIpLCBDRlNUUigiY29tLmFwcGxlLmNvcmVtZWRpYSIpKTsKKyAgICBDRlByZWZlcmVuY2Vz
U2V0QXBwVmFsdWUodGVzdEtleSwgQ0ZTVFIoIjEiKSwgdGVzdERvbWFpbik7CiAKLSAgICBFWFBF
Q1RfRVEoMSwgQ0ZQcmVmZXJlbmNlc0dldEFwcEludGVnZXJWYWx1ZShDRlNUUigidGVzdGtleSIp
LCBDRlNUUigiY29tLmFwcGxlLmNvcmVtZWRpYSIpLCBudWxscHRyKSk7CisgICAgRVhQRUNUX0VR
KDEsIENGUHJlZmVyZW5jZXNHZXRBcHBJbnRlZ2VyVmFsdWUodGVzdEtleSwgdGVzdERvbWFpbiwg
bnVsbHB0cikpOwogCiAgICAgYXV0byBjb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmll
d0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKICAgICBXS1JldGFpblB0cjxXS0NvbnRleHRS
ZWY+IGNvbnRleHQgPSBhZG9wdFdLKFRlc3RXZWJLaXRBUEk6OlV0aWw6OmNyZWF0ZUNvbnRleHRG
b3JJbmplY3RlZEJ1bmRsZVRlc3QoIkludGVybmFsc0luamVjdGVkQnVuZGxlVGVzdCIpKTsKQEAg
LTg2LDEyICs4OSwxMyBAQCBURVNUKFdlYktpdCwgUHJlZmVyZW5jZUNoYW5nZXMpCiAgICAgYXV0
byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6
TlNNYWtlUmVjdCgwLCAwLCAzMDAsIDMwMCkgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uLmdl
dCgpIGFkZFRvV2luZG93OllFU10pOwogCiAgICAgYXV0byBwcmVmZXJlbmNlVmFsdWUgPSBbJl0g
ewotICAgICAgICByZXR1cm4gW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpA
IndpbmRvdy5pbnRlcm5hbHMucmVhZFByZWZlcmVuY2VJbnRlZ2VyKFwiY29tLmFwcGxlLmNvcmVt
ZWRpYVwiLCBcInRlc3RrZXlcIikiXS5pbnRWYWx1ZTsKKyAgICAgICAgTlNTdHJpbmcgKmpzID0g
W05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCJ3aW5kb3cuaW50ZXJuYWxzLnJlYWRQcmVmZXJl
bmNlSW50ZWdlcihcIiVAXCIsXCIlQFwiKSIsIChOU1N0cmluZyAqKXRlc3REb21haW4sIChOU1N0
cmluZyAqKXRlc3RLZXldOworICAgICAgICByZXR1cm4gW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0
aW5nSmF2YVNjcmlwdDpqc10uaW50VmFsdWU7CiAgICAgfTsKIAogICAgIEVYUEVDVF9FUShwcmVm
ZXJlbmNlVmFsdWUoKSwgMSk7CiAKLSAgICBDRlByZWZlcmVuY2VzU2V0QXBwVmFsdWUoQ0ZTVFIo
InRlc3RrZXkiKSwgQ0ZTVFIoIjIiKSwgQ0ZTVFIoImNvbS5hcHBsZS5jb3JlbWVkaWEiKSk7Cisg
ICAgQ0ZQcmVmZXJlbmNlc1NldEFwcFZhbHVlKHRlc3RLZXksIENGU1RSKCIyIiksIHRlc3REb21h
aW4pOwogCiAgICAgRVhQRUNUX0VRKHByZWZlcmVuY2VWYWx1ZSgpLCAyKTsKIH0KQEAgLTEwMCw4
ICsxMDQsOCBAQCBURVNUKFdlYktpdCwgUHJlZmVyZW5jZUNoYW5nZXNBcnJheSkKIHsKICAgICBO
U0FycmF5ICphcnJheSA9IEBbQDEsIEAyLCBAM107CiAKLSAgICBhdXRvIHVzZXJEZWZhdWx0cyA9
IGFkb3B0TlMoW1tOU1VzZXJEZWZhdWx0cyBhbGxvY10gaW5pdFdpdGhTdWl0ZU5hbWU6QCJjb20u
YXBwbGUuY29yZW1lZGlhIl0pOwotICAgIFt1c2VyRGVmYXVsdHMuZ2V0KCkgc2V0T2JqZWN0OmFy
cmF5IGZvcktleTpAInRlc3RrZXkiXTsKKyAgICBhdXRvIHVzZXJEZWZhdWx0cyA9IGFkb3B0TlMo
W1tOU1VzZXJEZWZhdWx0cyBhbGxvY10gaW5pdFdpdGhTdWl0ZU5hbWU6KE5TU3RyaW5nICopdGVz
dERvbWFpbl0pOworICAgIFt1c2VyRGVmYXVsdHMuZ2V0KCkgc2V0T2JqZWN0OmFycmF5IGZvcktl
eTooTlNTdHJpbmcgKil0ZXN0S2V5XTsKIAogICAgIGF1dG8gY29uZmlndXJhdGlvbiA9IGFkb3B0
TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CiAgICAgV0tSZXRhaW5Q
dHI8V0tDb250ZXh0UmVmPiBjb250ZXh0ID0gYWRvcHRXSyhUZXN0V2ViS2l0QVBJOjpVdGlsOjpj
cmVhdGVDb250ZXh0Rm9ySW5qZWN0ZWRCdW5kbGVUZXN0KCJJbnRlcm5hbHNJbmplY3RlZEJ1bmRs
ZVRlc3QiKSk7CkBAIC0xMDksMTMgKzExMywxNCBAQCBURVNUKFdlYktpdCwgUHJlZmVyZW5jZUNo
YW5nZXNBcnJheSkKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBh
bGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDMwMCwgMzAwKSBjb25maWd1cmF0
aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCkgYWRkVG9XaW5kb3c6WUVTXSk7CiAKICAgICBhdXRvIHBy
ZWZlcmVuY2VWYWx1ZSA9IFsmXSB7Ci0gICAgICAgIHJldHVybiBbd2ViVmlldyBzdHJpbmdCeUV2
YWx1YXRpbmdKYXZhU2NyaXB0OkAid2luZG93LmludGVybmFscy5lbmNvZGVkUHJlZmVyZW5jZVZh
bHVlKFwiY29tLmFwcGxlLmNvcmVtZWRpYVwiLCBcInRlc3RrZXlcIikiXTsKKyAgICAgICAgTlNT
dHJpbmcgKmpzID0gW05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCJ3aW5kb3cuaW50ZXJuYWxz
LmVuY29kZWRQcmVmZXJlbmNlVmFsdWUoXCIlQFwiLFwiJUBcIikiLCAoTlNTdHJpbmcgKil0ZXN0
RG9tYWluLCAoTlNTdHJpbmcgKil0ZXN0S2V5XTsKKyAgICAgICAgcmV0dXJuIFt3ZWJWaWV3IHN0
cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6anNdOwogICAgIH07CiAKICAgICBwcmVmZXJlbmNl
VmFsdWUoKTsKIAogICAgIE5TQXJyYXkgKmNoYW5nZWRBcnJheSA9IEBbQDMsIEAyLCBAMV07Ci0g
ICAgW3VzZXJEZWZhdWx0cy5nZXQoKSBzZXRPYmplY3Q6Y2hhbmdlZEFycmF5IGZvcktleTpAInRl
c3RrZXkiXTsKKyAgICBbdXNlckRlZmF1bHRzLmdldCgpIHNldE9iamVjdDpjaGFuZ2VkQXJyYXkg
Zm9yS2V5OihOU1N0cmluZyAqKXRlc3RLZXldOwogCiAgICAgYXV0byBlbmNvZGVkU3RyaW5nID0g
cHJlZmVyZW5jZVZhbHVlKCk7CiAgICAgYXV0byBlbmNvZGVkRGF0YSA9IGFkb3B0TlMoW1tOU0Rh
dGEgYWxsb2NdIGluaXRXaXRoQmFzZTY0RW5jb2RlZFN0cmluZzplbmNvZGVkU3RyaW5nIG9wdGlv
bnM6MF0pOwpAQCAtMTM0LDggKzEzOSw4IEBAIFRFU1QoV2ViS2l0LCBQcmVmZXJlbmNlQ2hhbmdl
c0RpY3Rpb25hcnkKICAgICAgICAgQCJiIiA6IEAyLAogICAgIH07CiAKLSAgICBhdXRvIHVzZXJE
ZWZhdWx0cyA9IGFkb3B0TlMoW1tOU1VzZXJEZWZhdWx0cyBhbGxvY10gaW5pdFdpdGhTdWl0ZU5h
bWU6QCJjb20uYXBwbGUuY29yZW1lZGlhIl0pOwotICAgIFt1c2VyRGVmYXVsdHMuZ2V0KCkgc2V0
T2JqZWN0OmRpY3QgZm9yS2V5OkAidGVzdGtleSJdOworICAgIGF1dG8gdXNlckRlZmF1bHRzID0g
YWRvcHROUyhbW05TVXNlckRlZmF1bHRzIGFsbG9jXSBpbml0V2l0aFN1aXRlTmFtZTooTlNTdHJp
bmcgKil0ZXN0RG9tYWluXSk7CisgICAgW3VzZXJEZWZhdWx0cy5nZXQoKSBzZXRPYmplY3Q6ZGlj
dCBmb3JLZXk6KE5TU3RyaW5nICopdGVzdEtleV07CiAKICAgICBhdXRvIGNvbmZpZ3VyYXRpb24g
PSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOwogICAgIFdL
UmV0YWluUHRyPFdLQ29udGV4dFJlZj4gY29udGV4dCA9IGFkb3B0V0soVGVzdFdlYktpdEFQSTo6
VXRpbDo6Y3JlYXRlQ29udGV4dEZvckluamVjdGVkQnVuZGxlVGVzdCgiSW50ZXJuYWxzSW5qZWN0
ZWRCdW5kbGVUZXN0IikpOwpAQCAtMTQzLDcgKzE0OCw4IEBAIFRFU1QoV2ViS2l0LCBQcmVmZXJl
bmNlQ2hhbmdlc0RpY3Rpb25hcnkKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdL
V2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDMwMCwgMzAwKSBj
b25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCkgYWRkVG9XaW5kb3c6WUVTXSk7CiAKICAg
ICBhdXRvIHByZWZlcmVuY2VWYWx1ZSA9IFsmXSB7Ci0gICAgICAgIHJldHVybiBbd2ViVmlldyBz
dHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAid2luZG93LmludGVybmFscy5lbmNvZGVkUHJl
ZmVyZW5jZVZhbHVlKFwiY29tLmFwcGxlLmNvcmVtZWRpYVwiLCBcInRlc3RrZXlcIikiXTsKKyAg
ICAgICAgTlNTdHJpbmcgKmpzID0gW05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCJ3aW5kb3cu
aW50ZXJuYWxzLmVuY29kZWRQcmVmZXJlbmNlVmFsdWUoXCIlQFwiLFwiJUBcIikiLCAoTlNTdHJp
bmcgKil0ZXN0RG9tYWluLCAoTlNTdHJpbmcgKil0ZXN0S2V5XTsKKyAgICAgICAgcmV0dXJuIFt3
ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6anNdOwogICAgIH07CiAKICAgICBw
cmVmZXJlbmNlVmFsdWUoKTsKQEAgLTE1Myw3ICsxNTksNyBAQCBURVNUKFdlYktpdCwgUHJlZmVy
ZW5jZUNoYW5nZXNEaWN0aW9uYXJ5CiAgICAgICAgIEAiYiIgOiBAMiwKICAgICAgICAgQCJjIiA6
IEAzLAogICAgIH07Ci0gICAgW3VzZXJEZWZhdWx0cy5nZXQoKSBzZXRPYmplY3Q6Y2hhbmdlZERp
Y3QgZm9yS2V5OkAidGVzdGtleSJdOworICAgIFt1c2VyRGVmYXVsdHMuZ2V0KCkgc2V0T2JqZWN0
OmNoYW5nZWREaWN0IGZvcktleTooTlNTdHJpbmcgKil0ZXN0S2V5XTsKIAogICAgIGF1dG8gZW5j
b2RlZFN0cmluZyA9IHByZWZlcmVuY2VWYWx1ZSgpOwogICAgIGF1dG8gZW5jb2RlZERhdGEgPSBh
ZG9wdE5TKFtbTlNEYXRhIGFsbG9jXSBpbml0V2l0aEJhc2U2NEVuY29kZWRTdHJpbmc6ZW5jb2Rl
ZFN0cmluZyBvcHRpb25zOjBdKTsKQEAgLTE2OSw4ICsxNzUsOCBAQCBURVNUKFdlYktpdCwgUHJl
ZmVyZW5jZUNoYW5nZXNEYXRhKQogewogICAgIE5TRGF0YSAqZGF0YSA9IFtOU0RhdGEgZGF0YVdp
dGhCeXRlczoiYWJjIiBsZW5ndGg6M107CiAKLSAgICBhdXRvIHVzZXJEZWZhdWx0cyA9IGFkb3B0
TlMoW1tOU1VzZXJEZWZhdWx0cyBhbGxvY10gaW5pdFdpdGhTdWl0ZU5hbWU6QCJjb20uYXBwbGUu
Y29yZW1lZGlhIl0pOwotICAgIFt1c2VyRGVmYXVsdHMuZ2V0KCkgc2V0T2JqZWN0OmRhdGEgZm9y
S2V5OkAidGVzdGtleSJdOworICAgIGF1dG8gdXNlckRlZmF1bHRzID0gYWRvcHROUyhbW05TVXNl
ckRlZmF1bHRzIGFsbG9jXSBpbml0V2l0aFN1aXRlTmFtZTooTlNTdHJpbmcgKil0ZXN0RG9tYWlu
XSk7CisgICAgW3VzZXJEZWZhdWx0cy5nZXQoKSBzZXRPYmplY3Q6ZGF0YSBmb3JLZXk6KE5TU3Ry
aW5nICopdGVzdEtleV07CiAKICAgICBhdXRvIGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tX
ZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOwogICAgIFdLUmV0YWluUHRyPFdLQ29u
dGV4dFJlZj4gY29udGV4dCA9IGFkb3B0V0soVGVzdFdlYktpdEFQSTo6VXRpbDo6Y3JlYXRlQ29u
dGV4dEZvckluamVjdGVkQnVuZGxlVGVzdCgiSW50ZXJuYWxzSW5qZWN0ZWRCdW5kbGVUZXN0Iikp
OwpAQCAtMTc4LDEzICsxODQsMTQgQEAgVEVTVChXZWJLaXQsIFByZWZlcmVuY2VDaGFuZ2VzRGF0
YSkKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5p
dFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDMwMCwgMzAwKSBjb25maWd1cmF0aW9uOmNvbmZp
Z3VyYXRpb24uZ2V0KCkgYWRkVG9XaW5kb3c6WUVTXSk7CiAKICAgICBhdXRvIHByZWZlcmVuY2VW
YWx1ZSA9IFsmXSB7Ci0gICAgICAgIHJldHVybiBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdK
YXZhU2NyaXB0OkAid2luZG93LmludGVybmFscy5lbmNvZGVkUHJlZmVyZW5jZVZhbHVlKFwiY29t
LmFwcGxlLmNvcmVtZWRpYVwiLCBcInRlc3RrZXlcIikiXTsKKyAgICAgICAgTlNTdHJpbmcgKmpz
ID0gW05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCJ3aW5kb3cuaW50ZXJuYWxzLmVuY29kZWRQ
cmVmZXJlbmNlVmFsdWUoXCIlQFwiLFwiJUBcIikiLCAoTlNTdHJpbmcgKil0ZXN0RG9tYWluLCAo
TlNTdHJpbmcgKil0ZXN0S2V5XTsKKyAgICAgICAgcmV0dXJuIFt3ZWJWaWV3IHN0cmluZ0J5RXZh
bHVhdGluZ0phdmFTY3JpcHQ6anNdOwogICAgIH07CiAKICAgICBwcmVmZXJlbmNlVmFsdWUoKTsK
IAogICAgIE5TRGF0YSAqY2hhbmdlZERhdGEgPSBbTlNEYXRhIGRhdGFXaXRoQnl0ZXM6ImFiY2Qi
IGxlbmd0aDo0XTsKLSAgICBbdXNlckRlZmF1bHRzLmdldCgpIHNldE9iamVjdDpjaGFuZ2VkRGF0
YSBmb3JLZXk6QCJ0ZXN0a2V5Il07CisgICAgW3VzZXJEZWZhdWx0cy5nZXQoKSBzZXRPYmplY3Q6
Y2hhbmdlZERhdGEgZm9yS2V5OihOU1N0cmluZyAqKXRlc3RLZXldOwogCiAgICAgYXV0byBlbmNv
ZGVkU3RyaW5nID0gcHJlZmVyZW5jZVZhbHVlKCk7CiAgICAgYXV0byBlbmNvZGVkRGF0YSA9IGFk
b3B0TlMoW1tOU0RhdGEgYWxsb2NdIGluaXRXaXRoQmFzZTY0RW5jb2RlZFN0cmluZzplbmNvZGVk
U3RyaW5nIG9wdGlvbnM6MF0pOwpAQCAtMjAwLDggKzIwNyw4IEBAIFRFU1QoV2ViS2l0LCBQcmVm
ZXJlbmNlQ2hhbmdlc0RhdGUpCiB7CiAgICAgTlNEYXRlICpkYXRlID0gW05TRGF0ZSBkYXRlV2l0
aFRpbWVJbnRlcnZhbFNpbmNlTm93OjBdOwogCi0gICAgYXV0byB1c2VyRGVmYXVsdHMgPSBhZG9w
dE5TKFtbTlNVc2VyRGVmYXVsdHMgYWxsb2NdIGluaXRXaXRoU3VpdGVOYW1lOkAiY29tLmFwcGxl
LmNvcmVtZWRpYSJdKTsKLSAgICBbdXNlckRlZmF1bHRzLmdldCgpIHNldE9iamVjdDpkYXRlIGZv
cktleTpAInRlc3RrZXkiXTsKKyAgICBhdXRvIHVzZXJEZWZhdWx0cyA9IGFkb3B0TlMoW1tOU1Vz
ZXJEZWZhdWx0cyBhbGxvY10gaW5pdFdpdGhTdWl0ZU5hbWU6KE5TU3RyaW5nICopdGVzdERvbWFp
bl0pOworICAgIFt1c2VyRGVmYXVsdHMuZ2V0KCkgc2V0T2JqZWN0OmRhdGUgZm9yS2V5OihOU1N0
cmluZyAqKXRlc3RLZXldOwogCiAgICAgYXV0byBjb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dL
V2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKICAgICBXS1JldGFpblB0cjxXS0Nv
bnRleHRSZWY+IGNvbnRleHQgPSBhZG9wdFdLKFRlc3RXZWJLaXRBUEk6OlV0aWw6OmNyZWF0ZUNv
bnRleHRGb3JJbmplY3RlZEJ1bmRsZVRlc3QoIkludGVybmFsc0luamVjdGVkQnVuZGxlVGVzdCIp
KTsKQEAgLTIwOSwxMyArMjE2LDE0IEBAIFRFU1QoV2ViS2l0LCBQcmVmZXJlbmNlQ2hhbmdlc0Rh
dGUpCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGlu
aXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCAzMDAsIDMwMCkgY29uZmlndXJhdGlvbjpjb25m
aWd1cmF0aW9uLmdldCgpIGFkZFRvV2luZG93OllFU10pOwogCiAgICAgYXV0byBwcmVmZXJlbmNl
VmFsdWUgPSBbJl0gewotICAgICAgICByZXR1cm4gW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5n
SmF2YVNjcmlwdDpAIndpbmRvdy5pbnRlcm5hbHMuZW5jb2RlZFByZWZlcmVuY2VWYWx1ZShcImNv
bS5hcHBsZS5jb3JlbWVkaWFcIiwgXCJ0ZXN0a2V5XCIpIl07CisgICAgICAgIE5TU3RyaW5nICpq
cyA9IFtOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAid2luZG93LmludGVybmFscy5lbmNvZGVk
UHJlZmVyZW5jZVZhbHVlKFwiJUBcIixcIiVAXCIpIiwgKE5TU3RyaW5nICopdGVzdERvbWFpbiwg
KE5TU3RyaW5nICopdGVzdEtleV07CisgICAgICAgIHJldHVybiBbd2ViVmlldyBzdHJpbmdCeUV2
YWx1YXRpbmdKYXZhU2NyaXB0OmpzXTsKICAgICB9OwogCiAgICAgcHJlZmVyZW5jZVZhbHVlKCk7
CiAKICAgICBOU0RhdGUgKmNoYW5nZWREYXRlID0gW05TRGF0ZSBkYXRlV2l0aFRpbWVJbnRlcnZh
bFNpbmNlTm93OjEwXTsKLSAgICBbdXNlckRlZmF1bHRzLmdldCgpIHNldE9iamVjdDpjaGFuZ2Vk
RGF0ZSBmb3JLZXk6QCJ0ZXN0a2V5Il07CisgICAgW3VzZXJEZWZhdWx0cy5nZXQoKSBzZXRPYmpl
Y3Q6Y2hhbmdlZERhdGUgZm9yS2V5OihOU1N0cmluZyAqKXRlc3RLZXldOwogCiAgICAgYXV0byBl
bmNvZGVkU3RyaW5nID0gcHJlZmVyZW5jZVZhbHVlKCk7CiAgICAgYXV0byBlbmNvZGVkRGF0YSA9
IGFkb3B0TlMoW1tOU0RhdGEgYWxsb2NdIGluaXRXaXRoQmFzZTY0RW5jb2RlZFN0cmluZzplbmNv
ZGVkU3RyaW5nIG9wdGlvbnM6MF0pOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>394134</attachid>
            <date>2020-03-20 14:59:20 -0700</date>
            <delta_ts>2020-03-20 15:22:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209244-20200320145919.patch</filename>
            <type>text/plain</type>
            <size>25999</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyNTg3ODMpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDIwLTAzLTIwICBQZXIgQXJuZSBWb2xsYW4gIDxw
dm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIEZpeCBsYXVuY2ggdGltZSByZWdy
ZXNzaW9uIHdpdGggQ0YgcHJlZnMgZGlyZWN0IG1vZGUgZW5hYmxlZAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA5MjQ0CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmUtZW5hYmxlIENGIHByZWZzIGRpcmVj
dCBtb2RlLgorCisgICAgICAgICogd3RmL1BsYXRmb3JtRW5hYmxlLmg6CisgICAgICAgICogd3Rm
L1BsYXRmb3JtRW5hYmxlQ29jb2EuaDoKKwogMjAyMC0wMy0yMCAgVGltIEhvcnRvbiAgPHRpbW90
aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBVcHN0cmVhbSBhIHZhcmlldHkgb2YgQ29j
b2EtcGxhdGZvcm0gSEFWRSBhbmQgRU5BQkxFIG1hY3JvcwpJbmRleDogU291cmNlL1dURi93dGYv
UGxhdGZvcm1FbmFibGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVu
YWJsZS5oCShyZXZpc2lvbiAyNTg3ODMpCisrKyBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJs
ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC04NzEsNCArODcxLDYgQEAKICNlcnJvciAiRU5BQkxFKFdF
QkdMMikgcmVxdWlyZXMgRU5BQkxFKFdFQkdMKSIKICNlbmRpZgogCisjaWYgIWRlZmluZWQoRU5B
QkxFX0NGUFJFRlNfRElSRUNUX01PREUpCiAjZGVmaW5lIEVOQUJMRV9DRlBSRUZTX0RJUkVDVF9N
T0RFIDAKKyNlbmRpZgpJbmRleDogU291cmNlL1dURi93dGYvUGxhdGZvcm1FbmFibGVDb2NvYS5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlQ29jb2EuaAkocmV2
aXNpb24gMjU4NzgzKQorKysgU291cmNlL1dURi93dGYvUGxhdGZvcm1FbmFibGVDb2NvYS5oCSh3
b3JraW5nIGNvcHkpCkBAIC0yODAsMyArMjgwLDcgQEAKICNpZiAhZGVmaW5lZChFTkFCTEVfVEFL
RV9VTkJPVU5ERURfTkVUV09SS0lOR19BU1NFUlRJT04pICYmIChQTEFURk9STShJT1MpIHx8IFBM
QVRGT1JNKE1BQ0NBVEFMWVNUKSkKICNkZWZpbmUgRU5BQkxFX1RBS0VfVU5CT1VOREVEX05FVFdP
UktJTkdfQVNTRVJUSU9OIDEKICNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0NGUFJFRlNf
RElSRUNUX01PREUpCisjZGVmaW5lIEVOQUJMRV9DRlBSRUZTX0RJUkVDVF9NT0RFIDEKKyNlbmRp
ZgpJbmRleDogU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1ODc4MykKKysrIFNvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjcgQEAKKzIwMjAtMDMtMjAgIFBlciBBcm5l
IFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gRml4IGxhdW5j
aCB0aW1lIHJlZ3Jlc3Npb24gd2l0aCBDRiBwcmVmcyBkaXJlY3QgbW9kZSBlbmFibGVkCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDkyNDQKKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzYwNTQyMTQ5PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFdoZW4gQ0YgcHJlZnMgZGlyZWN0IG1vZGUgd2FzIGVuYWJs
ZWQgaW4gaHR0cHM6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzI1ODA2NC93ZWJraXQsIGl0
IGludHJvZHVjZWQKKyAgICAgICAgYSBzaWduaWZpY2FudCBsYXVuY2ggdGltZSByZWdyZXNzaW9u
LiBUaGlzIHBhdGNoIGFkZHJlc3NlcyB0aGlzIHJlZ3Jlc3Npb24uIFRoZSBudW1iZXIgb2Ygb2Jz
ZXJ2ZWQgZG9tYWlucworICAgICAgICBpcyByZWR1Y2VkIGFuZCBkb21haW4gb2JzZXJ2YXRpb24g
aXMgaW5pdGlhdGVkIGxhdGVyIHdoZW4gU2FmYXJpIGlzIGZpcnN0IGFjdGl2YXRlZC4gU3dpenps
aW5nIGNvZGUgaXMKKyAgICAgICAgcmVtb3ZlZCwgc2luY2UgdGhhdCBoYXMgYSBwZXJmb3JtYW5j
ZSBjb3N0IGluIHRoZSBPYmplY3RpdmUtQyBydW50aW1lLiBOb3JtYWwgcHJpb3JpdHkgaW5zdGVh
ZCBvZgorICAgICAgICBRT1NfQ0xBU1NfQkFDS0dST1VORCBpcyB1c2VkIGluIHRoZSB0aHJlYWQg
d2hpY2ggc3RhcnRzIHRoZSBvYnNlcnZpbmcsIHNpbmNlIHVzaW5nIGEgYmFja2dyb3VuZCBwcmlv
cml0eQorICAgICAgICBjbGFzcyBjYW4gbGVhZCB0byBwcmlvcml0eSBpbnZlcnNpb24uIEZpbmFs
bHksIGEgZGljdGlvbmFyeSBjb21wYXJpc29uIGlzIHJlbW92ZWQgd2hlbiBhIG5vdGlmaWNhdGlv
bgorICAgICAgICBhYm91dCBhIHByZWZlcmVuY2UgY2hhbmdlIGlzIHJlY2VpdmVkLCBzaW5jZSB0
aGlzIGNoZWNrIGlzIHJlZHVuZGFudCBhbmQgZG91YmxlcyB0aGUgY29zdCBvZiB0aGlzIG1ldGhv
ZC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9QcmVmZXJlbmNlT2JzZXJ2ZXIubW06Cisg
ICAgICAgICgtW1dLUHJlZmVyZW5jZU9ic2VydmVyIGluaXRdKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJv
Y2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nl
c3NQb29sOjpyZWdpc3Rlck5vdGlmaWNhdGlvbk9ic2VydmVycyk6CisgICAgICAgIChXZWJLaXQ6
OldlYlByb2Nlc3NQb29sOjp1bnJlZ2lzdGVyTm90aWZpY2F0aW9uT2JzZXJ2ZXJzKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaDoKKwogMjAyMC0wMy0yMCAgRG9uIE9sbXN0
ZWFkICA8ZG9uLm9sbXN0ZWFkQHNvbnkuY29tPgogCiAgICAgICAgIFtHUFVQXSBBZGQgUGxhdGZv
cm1MYXllckNvbnRhaW5lciB0byBob2xkIHBvaW50ZXIgdG8gUGxhdGZvcm1MYXllcgpJbmRleDog
U291cmNlL1dlYktpdC9SZXNvdXJjZXMvU2FuZGJveFByb2ZpbGVzL2lvcy9jb20uYXBwbGUuV2Vi
S2l0LldlYkNvbnRlbnQuc2IKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9SZXNvdXJjZXMv
U2FuZGJveFByb2ZpbGVzL2lvcy9jb20uYXBwbGUuV2ViS2l0LldlYkNvbnRlbnQuc2IJKHJldmlz
aW9uIDI1ODc4MykKKysrIFNvdXJjZS9XZWJLaXQvUmVzb3VyY2VzL1NhbmRib3hQcm9maWxlcy9p
b3MvY29tLmFwcGxlLldlYktpdC5XZWJDb250ZW50LnNiCSh3b3JraW5nIGNvcHkpCkBAIC01MzQs
NyArNTM0LDYgQEAKIChhbGxvdyBtYWNoLWxvb2t1cAogICAgIChnbG9iYWwtbmFtZSAiY29tLmFw
cGxlLmxvZ2QiKQogICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLmxvZ2QuZXZlbnRzIikKLSAg
ICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS5jZnByZWZzZC5kYWVtb24iKQogKQogCiAoZGVueSBt
YWNoLWxvb2t1cCAod2l0aCB0ZWxlbWV0cnkpCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQcm9jZXNzUG9vbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlByb2Nlc3NQb29sLmgJKHJldmlzaW9uIDI1ODc4MykKKysrIFNvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQb29sLmgJKHdvcmtpbmcgY29weSkKQEAgLTY5MSw3ICs2OTEsNiBA
QCBwcml2YXRlOgogI2lmIEVOQUJMRShXRUJQUk9DRVNTX1dJTkRPV1NFUlZFUl9CTE9DS0lORykK
ICAgICBSZXRhaW5QdHI8TlNPYmplY3Q+IG1fc2Nyb2xsZXJTdHlsZU5vdGlmaWNhdGlvbk9ic2Vy
dmVyOwogI2VuZGlmCi0gICAgUmV0YWluUHRyPE5TT2JqZWN0PiBtX2FjdGl2YXRpb25PYnNlcnZl
cjsKICAgICBSZXRhaW5QdHI8TlNPYmplY3Q+IG1fZGVhY3RpdmF0aW9uT2JzZXJ2ZXI7CiAKICAg
ICBzdGQ6OnVuaXF1ZV9wdHI8SGlnaFBlcmZvcm1hbmNlR3JhcGhpY3NVc2FnZVNhbXBsZXI+IG1f
aGlnaFBlcmZvcm1hbmNlR3JhcGhpY3NVc2FnZVNhbXBsZXI7CkBAIC02OTksNiArNjk4LDcgQEAg
cHJpdmF0ZToKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgUmV0YWluUHRyPE5T
T2JqZWN0PiBtX2FjdGl2YXRpb25PYnNlcnZlcjsKICAgICBSZXRhaW5QdHI8TlNPYmplY3Q+IG1f
YWNjZXNzaWJpbGl0eUVuYWJsZWRPYnNlcnZlcjsKICNlbmRpZgogCkBAIC04MDIsMTAgKzgwMiw2
IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2lzRGVsYXllZFdlYlByb2Nlc3NMYXVuY2hEaXNhYmxl
ZCB7IGZhbHNlIH07CiAjZW5kaWYKICAgICBib29sIG1fdXNlU2VwYXJhdGVTZXJ2aWNlV29ya2Vy
UHJvY2VzcyB7IGZhbHNlIH07Ci0KLSNpZiBQTEFURk9STShDT0NPQSkKLSAgICBSZXRhaW5QdHI8
V0tQcmVmZXJlbmNlT2JzZXJ2ZXI+IG1fcHJlZmVyZW5jZU9ic2VydmVyOwotI2VuZGlmCiB9Owog
CiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvUHJlZmVyZW5jZU9ic2VydmVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQ29jb2EvUHJlZmVyZW5jZU9ic2VydmVyLmgJKHJldmlzaW9uIDI1ODc4MykKKysrIFNv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1ByZWZlcmVuY2VPYnNlcnZlci5oCSh3b3JraW5n
IGNvcHkpCkBAIC00Niw2ICs0Niw1IEBAIF9fYXR0cmlidXRlX18oKHZpc2liaWxpdHkoImRlZmF1
bHQiKSkpCiAgICAgVmVjdG9yPFJldGFpblB0cjxXS1VzZXJEZWZhdWx0cz4+IG1fdXNlckRlZmF1
bHRzOwogfQogKyAoaWQpc2hhcmVkSW5zdGFuY2U7Ci0rICh2b2lkKXN3aXp6bGVSZWdpc3RlckRl
ZmF1bHRzOwogLSAodm9pZClwcmVmZXJlbmNlRGlkQ2hhbmdlOihOU1N0cmluZyAqKWRvbWFpbiBr
ZXk6KE5TU3RyaW5nICopa2V5IGVuY29kZWRWYWx1ZTooTlNTdHJpbmcgKillbmNvZGVkVmFsdWU7
CiBAZW5kCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9QcmVmZXJlbmNlT2Jz
ZXJ2ZXIubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvUHJl
ZmVyZW5jZU9ic2VydmVyLm1tCShyZXZpc2lvbiAyNTg3ODMpCisrKyBTb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Db2NvYS9QcmVmZXJlbmNlT2JzZXJ2ZXIubW0JKHdvcmtpbmcgY29weSkKQEAgLTI4
LDMxICsyOCwxMiBAQAogCiAjaW1wb3J0ICJXZWJQcm9jZXNzUG9vbC5oIgogCi0jaW1wb3J0IDx3
dGYvT2JqQ1J1bnRpbWVFeHRyYXMuaD4KLQotc3RhdGljIElNUCByZWdpc3RlckRlZmF1bHRzT3Jp
Z2luYWwgPSBuaWw7Ci1zdGF0aWMgYm9vbCByZWdpc3RlcmluZ0RlZmF1bHRzID0gZmFsc2U7Ci0K
LXN0YXRpYyB2b2lkIHJlZ2lzdGVyRGVmYXVsdHNPdmVycmlkZShpZCBzZWxmLCBTRUwgc2VsZWN0
b3IsIE5TRGljdGlvbmFyeTxOU1N0cmluZyAqLCBpZD4gKmRpY3Rpb25hcnkpCi17Ci0gICAgcmVn
aXN0ZXJpbmdEZWZhdWx0cyA9IHRydWU7Ci0gICAgaWYgKHJlZ2lzdGVyRGVmYXVsdHNPcmlnaW5h
bCkKLSAgICAgICAgd3RmQ2FsbElNUDx2b2lkPihyZWdpc3RlckRlZmF1bHRzT3JpZ2luYWwsIHNl
bGYsIHNlbGVjdG9yLCBkaWN0aW9uYXJ5KTsKLSAgICByZWdpc3RlcmluZ0RlZmF1bHRzID0gZmFs
c2U7Ci19Ci0KIEBpbXBsZW1lbnRhdGlvbiBXS1VzZXJEZWZhdWx0cwogCiAtICh2b2lkKV9ub3Rp
ZnlPYnNlcnZlcnNPZkNoYW5nZUZyb21WYWx1ZXNGb3JLZXlzOihOU0RpY3Rpb25hcnk8TlNTdHJp
bmcgKiwgaWQ+ICopb2xkVmFsdWVzIHRvVmFsdWVzRm9yS2V5czooTlNEaWN0aW9uYXJ5PE5TU3Ry
aW5nICosIGlkPiAqKW5ld1ZhbHVlcwogewotICAgIGlmIChyZWdpc3RlcmluZ0RlZmF1bHRzKQot
ICAgICAgICByZXR1cm47Ci0KICAgICBbc3VwZXIgX25vdGlmeU9ic2VydmVyc09mQ2hhbmdlRnJv
bVZhbHVlc0ZvcktleXM6b2xkVmFsdWVzIHRvVmFsdWVzRm9yS2V5czpuZXdWYWx1ZXNdOwogCi0g
ICAgaWYgKFtvbGRWYWx1ZXMgaXNFcXVhbFRvRGljdGlvbmFyeTpuZXdWYWx1ZXNdKQotICAgICAg
ICByZXR1cm47Ci0KICAgICBmb3IgKE5TU3RyaW5nICprZXkgaW4gb2xkVmFsdWVzKSB7CiAgICAg
ICAgIGlkIG9sZFZhbHVlID0gb2xkVmFsdWVzW2tleV07CiAgICAgICAgIGlkIG5ld1ZhbHVlID0g
bmV3VmFsdWVzW2tleV07CkBAIC0xMDEsMTAzICs4MiwzMyBAQCArIChpZClzaGFyZWRJbnN0YW5j
ZQogICAgIHJldHVybiBpbnN0YW5jZTsKIH0KIAotKyAodm9pZClzd2l6emxlUmVnaXN0ZXJEZWZh
dWx0cwotewotICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlRmxhZzsKLSAgICBzdGQ6OmNh
bGxfb25jZShvbmNlRmxhZywgW10gewotICAgICAgICBNZXRob2QgcmVnaXN0ZXJEZWZhdWx0c01l
dGhvZCA9IGNsYXNzX2dldEluc3RhbmNlTWV0aG9kKG9iamNfZ2V0Q2xhc3MoIk5TVXNlckRlZmF1
bHRzIiksIEBzZWxlY3RvcihyZWdpc3RlckRlZmF1bHRzOikpOwotICAgICAgICByZWdpc3RlckRl
ZmF1bHRzT3JpZ2luYWwgPSBtZXRob2Rfc2V0SW1wbGVtZW50YXRpb24ocmVnaXN0ZXJEZWZhdWx0
c01ldGhvZCwgKElNUClyZWdpc3RlckRlZmF1bHRzT3ZlcnJpZGUpOwotICAgIH0pOwotfQotCiAt
IChpbnN0YW5jZXR5cGUpaW5pdAogewogICAgIHN0ZDo6aW5pdGlhbGl6ZXJfbGlzdDxOU1N0cmlu
Zyo+IGRvbWFpbnMgPSB7Ci0gICAgICAgIEAiY29tLmFwcGxlLkFjY2Vzc2liaWxpdHkiLAogI2lm
IFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgICAgIEAiY29tLmFwcGxlLkFjY2Vzc2liaWxpdHki
LAogICAgICAgICBAImNvbS5hcHBsZS5BZExpYiIsCi0gICAgICAgIEAiY29tLmFwcGxlLkNGTmV0
d29yayIsCi0gICAgICAgIEAiY29tLmFwcGxlLkVtb2ppUHJlZmVyZW5jZXMiLAotICAgICAgICBA
ImNvbS5hcHBsZS5Gb250UGFyc2VyIiwKLSAgICAgICAgQCJjb20uYXBwbGUuSW1hZ2VJTyIsCi0g
ICAgICAgIEAiY29tLmFwcGxlLklucHV0TW9kZVByZWZlcmVuY2VzIiwKLSNlbHNlCi0gICAgICAg
IEAiY29tLmFwcGxlLkFUUyIsCi0gICAgICAgIEAiY29tLmFwcGxlLkNvcmVHcmFwaGljcyIsCi0g
ICAgICAgIEAiY29tLmFwcGxlLkRvd25sb2FkQXNzZXNzbWVudCIsCi0gICAgICAgIEAiY29tLmFw
cGxlLkhJVG9vbGJveCIsCi0jZW5kaWYKLSAgICAgICAgQCJjb20uYXBwbGUuTGF1bmNoU2Vydmlj
ZXMiLAotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgICAgIEAiY29tLmFwcGxlLk1ldGFs
IiwKLSAgICAgICAgQCJjb20uYXBwbGUuTW9iaWxlQXNzZXQiLAogICAgICAgICBAImNvbS5hcHBs
ZS5QcmVmZXJlbmNlcyIsCi0gICAgICAgIEAiY29tLmFwcGxlLlNwZWFrU2VsZWN0aW9uIiwKICAg
ICAgICAgQCJjb20uYXBwbGUuVUlLaXQiLAotICAgICAgICBAImNvbS5hcHBsZS5Wb2ljZU92ZXJU
b3VjaCIsCi0jZWxzZQotICAgICAgICBAImNvbS5hcHBsZS5NdWx0aXRvdWNoU3VwcG9ydCIKLSAg
ICAgICAgQCJjb20uYXBwbGUuU2VydmljZXNNZW51LlNlcnZpY2VzIgotICAgICAgICBAImNvbS5h
cHBsZS5WaWV3QnJpZGdlIgotI2VuZGlmCi0gICAgICAgIEAiY29tLmFwcGxlLldlYkZvdW5kYXRp
b24iLAotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgICAgIEAiY29tLmFwcGxlLldlYktp
dC5XZWJDb250ZW50IiwKLSAgICAgICAgQCJjb20uYXBwbGUuV2ViVUkiLAotICAgICAgICBAImNv
bS5hcHBsZS5haXJwbGF5IiwKLSAgICAgICAgQCJjb20uYXBwbGUuYXBwbGVqcGVnIiwKLSAgICAg
ICAgQCJjb20uYXBwbGUuYXVkaW8udmlydHVhbGF1ZGlvIiwKICAgICAgICAgQCJjb20uYXBwbGUu
YXZmYXVkaW8iLAotI2VuZGlmCi0gICAgICAgIEAiY29tLmFwcGxlLmF2Zm91bmRhdGlvbiIsCi0g
ICAgICAgIEAiY29tLmFwcGxlLmF2Zm91bmRhdGlvbi5mcmVjZW50cyIsCi0gICAgICAgIEAiY29t
LmFwcGxlLmF2Zm91bmRhdGlvbi52aWRlb3BlcmZvcm1hbmNlaHVkIiwKLSNpZiBQTEFURk9STShJ
T1NfRkFNSUxZKQotICAgICAgICBAImNvbS5hcHBsZS5hdmtpdCIsCi0gICAgICAgIEAiY29tLmFw
cGxlLmNvcmVhbmltYXRpb24iLAotICAgICAgICBAImNvbS5hcHBsZS5jb3JlYXVkaW8iLAotI2Vu
ZGlmCi0gICAgICAgIEAiY29tLmFwcGxlLmNvcmVtZWRpYSIsCi0jaWYgUExBVEZPUk0oSU9TX0ZB
TUlMWSkKLSAgICAgICAgQCJjb20uYXBwbGUuY29yZXZpZGVvIiwKLSAgICAgICAgQCJjb20uYXBw
bGUuZGEiLAotICAgICAgICBAImNvbS5hcHBsZS5oYW5ndHJhY2VyIiwKLSAgICAgICAgQCJjb20u
YXBwbGUuaW5kaWdvIiwKLSAgICAgICAgQCJjb20uYXBwbGUuaW9raXQuSU9Nb2JpbGVHcmFwaGlj
c0ZhbWlseSIsCiAgICAgICAgIEAiY29tLmFwcGxlLml0dW5lc3N0b3JlZCIsCi0gICAgICAgIEAi
Y29tLmFwcGxlLmtleWJvYXJkIiwKLSNlbHNlCi0gICAgICAgIEAiY29tLmFwcGxlLmNyeXB0byIs
Ci0gICAgICAgIEAiY29tLmFwcGxlLmRyaXZlci5BcHBsZUJsdWV0b290aE11bHRpdG91Y2gubW91
c2UiLAotICAgICAgICBAImNvbS5hcHBsZS5kcml2ZXIuQXBwbGVCbHVldG9vdGhNdWx0aXRvdWNo
LnRyYWNrcGFkIiwKLSAgICAgICAgQCJjb20uYXBwbGUuZHJpdmVyLkFwcGxlSElETW91c2UiCi0j
ZW5kaWYKLSAgICAgICAgQCJjb20uYXBwbGUubG9va3VwLnNoYXJlZCIsCi0gICAgICAgIEAiY29t
LmFwcGxlLm1lZGlhYWNjZXNzaWJpbGl0eSIsCi0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAg
ICAgICAgQCJjb20uYXBwbGUubWVkaWFhY2Nlc3NpYmlsaXR5LnB1YmxpYyIsCiAgICAgICAgIEAi
Y29tLmFwcGxlLm1lZGlhcmVtb3RlIiwKLSAgICAgICAgQCJjb20uYXBwbGUubW9iaWxlaXBvZCIs
Ci0gICAgICAgIEAiY29tLmFwcGxlLm10IiwKLSNlbHNlCi0gICAgICAgIEAiY29tLmFwcGxlLm5l
dHdvcmtDb25uZWN0IgotI2VuZGlmCi0gICAgICAgIEAiY29tLmFwcGxlLm9wZW5nbCIsCi0jaWYg
UExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICAgICAgQCJjb20uYXBwbGUucHJlZmVyZW5jZXMuc291
bmRzIiwKLSAgICAgICAgQCJjb20uYXBwbGUuc2VjdXJpdHkiLAogICAgICAgICBAImNvbS5hcHBs
ZS52b2ljZXNlcnZpY2VzIiwKLSAgICAgICAgQCJjb20uYXBwbGUudm9pY2VzZXJ2aWNlcy5sb2dn
aW5nIiwKKyAgICAgICAgQCJrQ0ZQcmVmZXJlbmNlc0FueUFwcGxpY2F0aW9uIiwKICNlbHNlCisg
ICAgICAgIEAiY29tLmFwcGxlLkNvcmVHcmFwaGljcyIsCisgICAgICAgIEAiY29tLmFwcGxlLkhJ
VG9vbGJveCIsCisgICAgICAgIEAiY29tLmFwcGxlLlNlcnZpY2VzTWVudS5TZXJ2aWNlcyIsCisg
ICAgICAgIEAiY29tLmFwcGxlLlZpZXdCcmlkZ2UiLAorICAgICAgICBAImNvbS5hcHBsZS5hdmZv
dW5kYXRpb24iLAorICAgICAgICBAImNvbS5hcHBsZS5hdmZvdW5kYXRpb24udmlkZW9wZXJmb3Jt
YW5jZWh1ZCIsCisgICAgICAgIEAiY29tLmFwcGxlLmRyaXZlci5BcHBsZUJsdWV0b290aE11bHRp
dG91Y2gubW91c2UiLAorICAgICAgICBAImNvbS5hcHBsZS5kcml2ZXIuQXBwbGVCbHVldG9vdGhN
dWx0aXRvdWNoLnRyYWNrcGFkIiwKKyAgICAgICAgQCJjb20uYXBwbGUubWVkaWFhY2Nlc3NpYmls
aXR5IiwKICAgICAgICAgQCJjb20uYXBwbGUuc3BlZWNoLnZvaWNlLnByZWZzIiwKLSAgICAgICAg
QCJjb20uYXBwbGUuc3lzdGVtc291bmQiLAogICAgICAgICBAImNvbS5hcHBsZS51bml2ZXJzYWxh
Y2Nlc3MiLAotICAgICAgICBAImNvbS5udmlkaWEuT3BlbkdMIiwKLSAgICAgICAgQCJlZHUubWl0
LktlcmJlcm9zIiwKLSNlbmRpZgogICAgICAgICBAImtDRlByZWZlcmVuY2VzQW55QXBwbGljYXRp
b24iLAotI2lmICFQTEFURk9STShJT1NfRkFNSUxZKQotICAgICAgICBAInBicyIsCiAjZW5kaWYK
ICAgICB9OwogCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNz
UG9vbENvY29hLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29h
L1dlYlByb2Nlc3NQb29sQ29jb2EubW0JKHJldmlzaW9uIDI1ODc4MykKKysrIFNvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0JKHdvcmtpbmcgY29weSkK
QEAgLTE3MywxNCArMTczLDYgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFs
aXplKAogICAgICAgICBpbnN0YWxsTWVtb3J5UHJlc3N1cmVIYW5kbGVyKCk7CiAKICAgICBzZXRM
ZWdhY3lDdXN0b21Qcm90b2NvbE1hbmFnZXJDbGllbnQobWFrZVVuaXF1ZTxMZWdhY3lDdXN0b21Q
cm90b2NvbE1hbmFnZXJDbGllbnQ+KCkpOwotCi0jaWYgRU5BQkxFKENGUFJFRlNfRElSRUNUX01P
REUpCi0gICAgW1dLUHJlZmVyZW5jZU9ic2VydmVyIHN3aXp6bGVSZWdpc3RlckRlZmF1bHRzXTsK
LSAgICBkaXNwYXRjaF9hc3luYyhkaXNwYXRjaF9nZXRfZ2xvYmFsX3F1ZXVlKFFPU19DTEFTU19C
QUNLR1JPVU5ELCAwKSwgXnsKLSAgICAgICAgLy8gU3RhcnQgb2JzZXJ2aW5nIHByZWZlcmVuY2Ug
Y2hhbmdlcy4KLSAgICAgICAgW1dLUHJlZmVyZW5jZU9ic2VydmVyIHNoYXJlZEluc3RhbmNlXTsK
LSAgICB9KTsKLSNlbmRpZgogfQogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKQEAgLTY1Miw2
ICs2NDQsMTIgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6cmVnaXN0ZXJOb3RpZmljYXRpbwogI2Vu
ZGlmCiAKICAgICBtX2FjdGl2YXRpb25PYnNlcnZlciA9IFtbTlNOb3RpZmljYXRpb25DZW50ZXIg
ZGVmYXVsdENlbnRlcl0gYWRkT2JzZXJ2ZXJGb3JOYW1lOk5TQXBwbGljYXRpb25EaWRCZWNvbWVB
Y3RpdmVOb3RpZmljYXRpb24gb2JqZWN0Ok5TQXBwIHF1ZXVlOltOU09wZXJhdGlvblF1ZXVlIGN1
cnJlbnRRdWV1ZV0gdXNpbmdCbG9jazpeKE5TTm90aWZpY2F0aW9uICpub3RpZmljYXRpb24pIHsK
KyNpZiBFTkFCTEUoQ0ZQUkVGU19ESVJFQ1RfTU9ERSkKKyAgICAgICAgZGlzcGF0Y2hfYXN5bmMo
ZGlzcGF0Y2hfZ2V0X2dsb2JhbF9xdWV1ZShESVNQQVRDSF9RVUVVRV9QUklPUklUWV9ERUZBVUxU
LCAwKSwgXnsKKyAgICAgICAgICAgIC8vIFN0YXJ0IG9ic2VydmluZyBwcmVmZXJlbmNlIGNoYW5n
ZXMuCisgICAgICAgICAgICBbV0tQcmVmZXJlbmNlT2JzZXJ2ZXIgc2hhcmVkSW5zdGFuY2VdOwor
ICAgICAgICB9KTsKKyNlbmRpZgogICAgICAgICBzZXRBcHBsaWNhdGlvbklzQWN0aXZlKHRydWUp
OwogICAgIH1dOwogCkBAIC02NzMsNiArNjcxLDE0IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnJl
Z2lzdGVyTm90aWZpY2F0aW8KICAgICAgICAgICAgIG1fcHJvY2Vzc2VzW2ldLT51bmJsb2NrQWNj
ZXNzaWJpbGl0eVNlcnZlcklmTmVlZGVkKCk7CiAgICAgICAgIH0KICAgICB9XTsKKyNpZiBFTkFC
TEUoQ0ZQUkVGU19ESVJFQ1RfTU9ERSkKKyAgICBtX2FjdGl2YXRpb25PYnNlcnZlciA9IFtbTlNO
b3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gYWRkT2JzZXJ2ZXJGb3JOYW1lOkAiVUlB
cHBsaWNhdGlvbkRpZEJlY29tZUFjdGl2ZU5vdGlmaWNhdGlvbiIgb2JqZWN0Om5pbCBxdWV1ZTpb
TlNPcGVyYXRpb25RdWV1ZSBjdXJyZW50UXVldWVdIHVzaW5nQmxvY2s6XihOU05vdGlmaWNhdGlv
biAqbm90aWZpY2F0aW9uKSB7CisgICAgICAgIGRpc3BhdGNoX2FzeW5jKGRpc3BhdGNoX2dldF9n
bG9iYWxfcXVldWUoRElTUEFUQ0hfUVVFVUVfUFJJT1JJVFlfREVGQVVMVCwgMCksIF57CisgICAg
ICAgICAgICAvLyBTdGFydCBvYnNlcnZpbmcgcHJlZmVyZW5jZSBjaGFuZ2VzLgorICAgICAgICAg
ICAgW1dLUHJlZmVyZW5jZU9ic2VydmVyIHNoYXJlZEluc3RhbmNlXTsKKyAgICAgICAgfSk7Cisg
ICAgfV07CisjZW5kaWYKICNlbmRpZiAvLyAhUExBVEZPUk0oSU9TX0ZBTUlMWSkKIH0KIApAQCAt
Njg4LDcgKzY5NCw2IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnVucmVnaXN0ZXJOb3RpZmljYXQK
ICNpZiBFTkFCTEUoV0VCUFJPQ0VTU19XSU5ET1dTRVJWRVJfQkxPQ0tJTkcpCiAgICAgW1tOU05v
dGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSByZW1vdmVPYnNlcnZlcjptX3Njcm9sbGVy
U3R5bGVOb3RpZmljYXRpb25PYnNlcnZlci5nZXQoKV07CiAjZW5kaWYKLSAgICBbW05TTm90aWZp
Y2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIHJlbW92ZU9ic2VydmVyOm1fYWN0aXZhdGlvbk9i
c2VydmVyLmdldCgpXTsKICAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJd
IHJlbW92ZU9ic2VydmVyOm1fZGVhY3RpdmF0aW9uT2JzZXJ2ZXIuZ2V0KCldOwogI2VsaWYgIVBM
QVRGT1JNKE1BQ0NBVEFMWVNUKQogICAgIENGTm90aWZpY2F0aW9uQ2VudGVyUmVtb3ZlT2JzZXJ2
ZXIoQ0ZOb3RpZmljYXRpb25DZW50ZXJHZXREYXJ3aW5Ob3RpZnlDZW50ZXIoKSwgdGhpcywgc3Rh
dGljX2Nhc3Q8Q0ZTdHJpbmdSZWY+KFVJQmFja2xpZ2h0TGV2ZWxDaGFuZ2VkTm90aWZpY2F0aW9u
KSAsIG51bGxwdHIpOwpAQCAtNjk4LDYgKzcwMyw3IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnVu
cmVnaXN0ZXJOb3RpZmljYXQKICNlbmRpZgogI2VuZGlmIC8vIFBMQVRGT1JNKElPUykKICAgICBb
W05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIHJlbW92ZU9ic2VydmVyOm1fYWNj
ZXNzaWJpbGl0eUVuYWJsZWRPYnNlcnZlci5nZXQoKV07CisgICAgW1tOU05vdGlmaWNhdGlvbkNl
bnRlciBkZWZhdWx0Q2VudGVyXSByZW1vdmVPYnNlcnZlcjptX2FjdGl2YXRpb25PYnNlcnZlci5n
ZXQoKV07CiAjZW5kaWYgLy8gIVBMQVRGT1JNKElPU19GQU1JTFkpCiB9CiAKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb20uYXBwbGUuV2ViUHJvY2Vzcy5zYi5pbgo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29tLmFwcGxlLldlYlByb2Nlc3Muc2IuaW4J
KHJldmlzaW9uIDI1ODc4MykKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb20uYXBwbGUu
V2ViUHJvY2Vzcy5zYi5pbgkod29ya2luZyBjb3B5KQpAQCAtNjc3LDcgKzY3Nyw2IEBACiAgICAg
KHdpdGggcmVwb3J0KSAod2l0aCB0ZWxlbWV0cnkpCiAjZW5kaWYKICAgICAoZ2xvYmFsLW5hbWUg
ImNvbS5hcHBsZS5Qb3dlck1hbmFnZW1lbnQuY29udHJvbCIpCi0gICAgKGdsb2JhbC1uYW1lICJj
b20uYXBwbGUuY2ZwcmVmc2QuZGFlbW9uIikKICAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS5j
b3Jlc2VydmljZXMubGF1bmNoc2VydmljZXNkIikKICAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBs
ZS5sc2QubWFwZGIiKQogICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLnRydXN0ZC5hZ2VudCIp
CkluZGV4OiBUb29scy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvQ2hhbmdlTG9nCShy
ZXZpc2lvbiAyNTg3OTApCisrKyBUb29scy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEs
MyArMSwxNCBAQAorMjAyMC0wMy0yMCAgUGVyIEFybmUgVm9sbGFuICA8cHZvbGxhbkBhcHBsZS5j
b20+CisKKyAgICAgICAgW0NvY29hXSBGaXggbGF1bmNoIHRpbWUgcmVncmVzc2lvbiB3aXRoIENG
IHByZWZzIGRpcmVjdCBtb2RlIGVuYWJsZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIwOTI0NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvUHJlZmVyZW5j
ZUNoYW5nZXMubW06CisgICAgICAgIChURVNUKToKKyAgICAgICAgKHNoYXJlZEluc3RhbmNlTWV0
aG9kT3ZlcnJpZGUpOgorCiAyMDIwLTAzLTIwICBBYWthc2ggSmFpbiAgPGFha2FzaF9qYWluQGFw
cGxlLmNvbT4KIAogICAgICAgICBjb21taXQtcXVldWUgc2hvdWxkIHNraXAgYnVpbGRpbmcgYW5k
IHRlc3RpbmcgaWYgcGF0Y2ggYWxyZWFkeSBwYXNzZWQgdGVzdHMgb24gbWFjLXdrMiBxdWV1ZQpJ
bmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvUHJlZmVyZW5jZUNoYW5nZXMu
bW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvUHJlZmVy
ZW5jZUNoYW5nZXMubW0JKHJldmlzaW9uIDI1ODc4MykKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0L1ByZWZlcmVuY2VDaGFuZ2VzLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw2
ICszMSw4IEBACiAjaW1wb3J0ICJUZXN0V0tXZWJWaWV3LmgiCiAjaW1wb3J0IDxXZWJLaXQvUHJl
ZmVyZW5jZU9ic2VydmVyLmg+CiAKKyNpbXBvcnQgPHd0Zi9PYmpDUnVudGltZUV4dHJhcy5oPgor
CiBzdGF0aWMgYm9vbCBkb25lID0gZmFsc2U7CiAKIEBpbnRlcmZhY2UgV0tUZXN0UHJlZmVyZW5j
ZU9ic2VydmVyIDogV0tQcmVmZXJlbmNlT2JzZXJ2ZXIKQEAgLTQ0LDE1ICs0NiwxOCBAQCAtICh2
b2lkKXByZWZlcmVuY2VEaWRDaGFuZ2U6KE5TU3RyaW5nICopCiB9CiBAZW5kCiAKK3N0YXRpYyBj
b25zdCBDRlN0cmluZ1JlZiB0ZXN0S2V5ID0gQ0ZTVFIoInRlc3RrZXkiKTsKK3N0YXRpYyBjb25z
dCBDRlN0cmluZ1JlZiB0ZXN0RG9tYWluID0gQ0ZTVFIoImtDRlByZWZlcmVuY2VzQW55QXBwbGlj
YXRpb24iKTsKKwogVEVTVChXZWJLaXQsIFByZWZlcmVuY2VPYnNlcnZlcikKIHsKICAgICBkb25l
ID0gZmFsc2U7CiAKLSAgICBDRlByZWZlcmVuY2VzU2V0QXBwVmFsdWUoQ0ZTVFIoInRlc3RrZXki
KSwgQ0ZTVFIoIjEiKSwgQ0ZTVFIoImNvbS5hcHBsZS5jb3JlbWVkaWEiKSk7CisgICAgQ0ZQcmVm
ZXJlbmNlc1NldEFwcFZhbHVlKHRlc3RLZXksIENGU1RSKCIxIiksIHRlc3REb21haW4pOwogCiAg
ICAgYXV0byBvYnNlcnZlciA9IGFkb3B0TlMoW1tXS1Rlc3RQcmVmZXJlbmNlT2JzZXJ2ZXIgYWxs
b2NdIGluaXRdKTsKIAotICAgIENGUHJlZmVyZW5jZXNTZXRBcHBWYWx1ZShDRlNUUigidGVzdGtl
eSIpLCBDRlNUUigiMiIpLCBDRlNUUigiY29tLmFwcGxlLmNvcmVtZWRpYSIpKTsKKyAgICBDRlBy
ZWZlcmVuY2VzU2V0QXBwVmFsdWUodGVzdEtleSwgQ0ZTVFIoIjIiKSwgdGVzdERvbWFpbik7CiAK
ICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOwogfQpAQCAtNjMsMjIgKzY4LDIy
IEBAIFRFU1QoV2ViS2l0LCBQcmVmZXJlbmNlT2JzZXJ2ZXJBcnJheSkKIAogICAgIE5TQXJyYXkg
KmFycmF5ID0gQFtAMSwgQDIsIEAzXTsKIAotICAgIGF1dG8gdXNlckRlZmF1bHRzID0gYWRvcHRO
UyhbW05TVXNlckRlZmF1bHRzIGFsbG9jXSBpbml0V2l0aFN1aXRlTmFtZTpAImNvbS5hcHBsZS5j
b3JlbWVkaWEiXSk7Ci0gICAgW3VzZXJEZWZhdWx0cy5nZXQoKSBzZXRPYmplY3Q6YXJyYXkgZm9y
S2V5OkAidGVzdGtleSJdOworICAgIGF1dG8gdXNlckRlZmF1bHRzID0gYWRvcHROUyhbW05TVXNl
ckRlZmF1bHRzIGFsbG9jXSBpbml0V2l0aFN1aXRlTmFtZTooTlNTdHJpbmcgKil0ZXN0RG9tYWlu
XSk7CisgICAgW3VzZXJEZWZhdWx0cy5nZXQoKSBzZXRPYmplY3Q6YXJyYXkgZm9yS2V5OihOU1N0
cmluZyAqKXRlc3RLZXldOwogCiAgICAgYXV0byBvYnNlcnZlciA9IGFkb3B0TlMoW1tXS1Rlc3RQ
cmVmZXJlbmNlT2JzZXJ2ZXIgYWxsb2NdIGluaXRdKTsKIAogICAgIE5TQXJyYXkgKmNoYW5nZWRB
cnJheSA9IEBbQDMsIEAyLCBAMV07Ci0gICAgW3VzZXJEZWZhdWx0cy5nZXQoKSBzZXRPYmplY3Q6
Y2hhbmdlZEFycmF5IGZvcktleTpAInRlc3RrZXkiXTsKKyAgICBbdXNlckRlZmF1bHRzLmdldCgp
IHNldE9iamVjdDpjaGFuZ2VkQXJyYXkgZm9yS2V5OihOU1N0cmluZyAqKXRlc3RLZXldOwogCiAg
ICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKIH0KIAogVEVTVChXZWJLaXQsIFBy
ZWZlcmVuY2VDaGFuZ2VzKQogewotICAgIENGUHJlZmVyZW5jZXNTZXRBcHBWYWx1ZShDRlNUUigi
dGVzdGtleSIpLCBDRlNUUigiMSIpLCBDRlNUUigiY29tLmFwcGxlLmNvcmVtZWRpYSIpKTsKKyAg
ICBDRlByZWZlcmVuY2VzU2V0QXBwVmFsdWUodGVzdEtleSwgQ0ZTVFIoIjEiKSwgdGVzdERvbWFp
bik7CiAKLSAgICBFWFBFQ1RfRVEoMSwgQ0ZQcmVmZXJlbmNlc0dldEFwcEludGVnZXJWYWx1ZShD
RlNUUigidGVzdGtleSIpLCBDRlNUUigiY29tLmFwcGxlLmNvcmVtZWRpYSIpLCBudWxscHRyKSk7
CisgICAgRVhQRUNUX0VRKDEsIENGUHJlZmVyZW5jZXNHZXRBcHBJbnRlZ2VyVmFsdWUodGVzdEtl
eSwgdGVzdERvbWFpbiwgbnVsbHB0cikpOwogCiAgICAgYXV0byBjb25maWd1cmF0aW9uID0gYWRv
cHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKICAgICBXS1JldGFp
blB0cjxXS0NvbnRleHRSZWY+IGNvbnRleHQgPSBhZG9wdFdLKFRlc3RXZWJLaXRBUEk6OlV0aWw6
OmNyZWF0ZUNvbnRleHRGb3JJbmplY3RlZEJ1bmRsZVRlc3QoIkludGVybmFsc0luamVjdGVkQnVu
ZGxlVGVzdCIpKTsKQEAgLTg2LDEyICs5MSwxMyBAQCBURVNUKFdlYktpdCwgUHJlZmVyZW5jZUNo
YW5nZXMpCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2Nd
IGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCAzMDAsIDMwMCkgY29uZmlndXJhdGlvbjpj
b25maWd1cmF0aW9uLmdldCgpIGFkZFRvV2luZG93OllFU10pOwogCiAgICAgYXV0byBwcmVmZXJl
bmNlVmFsdWUgPSBbJl0gewotICAgICAgICByZXR1cm4gW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0
aW5nSmF2YVNjcmlwdDpAIndpbmRvdy5pbnRlcm5hbHMucmVhZFByZWZlcmVuY2VJbnRlZ2VyKFwi
Y29tLmFwcGxlLmNvcmVtZWRpYVwiLCBcInRlc3RrZXlcIikiXS5pbnRWYWx1ZTsKKyAgICAgICAg
TlNTdHJpbmcgKmpzID0gW05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCJ3aW5kb3cuaW50ZXJu
YWxzLnJlYWRQcmVmZXJlbmNlSW50ZWdlcihcIiVAXCIsXCIlQFwiKSIsIChOU1N0cmluZyAqKXRl
c3REb21haW4sIChOU1N0cmluZyAqKXRlc3RLZXldOworICAgICAgICByZXR1cm4gW3dlYlZpZXcg
c3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpqc10uaW50VmFsdWU7CiAgICAgfTsKIAogICAg
IEVYUEVDVF9FUShwcmVmZXJlbmNlVmFsdWUoKSwgMSk7CiAKLSAgICBDRlByZWZlcmVuY2VzU2V0
QXBwVmFsdWUoQ0ZTVFIoInRlc3RrZXkiKSwgQ0ZTVFIoIjIiKSwgQ0ZTVFIoImNvbS5hcHBsZS5j
b3JlbWVkaWEiKSk7CisgICAgQ0ZQcmVmZXJlbmNlc1NldEFwcFZhbHVlKHRlc3RLZXksIENGU1RS
KCIyIiksIHRlc3REb21haW4pOwogCiAgICAgRVhQRUNUX0VRKHByZWZlcmVuY2VWYWx1ZSgpLCAy
KTsKIH0KQEAgLTEwMCw4ICsxMDYsOCBAQCBURVNUKFdlYktpdCwgUHJlZmVyZW5jZUNoYW5nZXNB
cnJheSkKIHsKICAgICBOU0FycmF5ICphcnJheSA9IEBbQDEsIEAyLCBAM107CiAKLSAgICBhdXRv
IHVzZXJEZWZhdWx0cyA9IGFkb3B0TlMoW1tOU1VzZXJEZWZhdWx0cyBhbGxvY10gaW5pdFdpdGhT
dWl0ZU5hbWU6QCJjb20uYXBwbGUuY29yZW1lZGlhIl0pOwotICAgIFt1c2VyRGVmYXVsdHMuZ2V0
KCkgc2V0T2JqZWN0OmFycmF5IGZvcktleTpAInRlc3RrZXkiXTsKKyAgICBhdXRvIHVzZXJEZWZh
dWx0cyA9IGFkb3B0TlMoW1tOU1VzZXJEZWZhdWx0cyBhbGxvY10gaW5pdFdpdGhTdWl0ZU5hbWU6
KE5TU3RyaW5nICopdGVzdERvbWFpbl0pOworICAgIFt1c2VyRGVmYXVsdHMuZ2V0KCkgc2V0T2Jq
ZWN0OmFycmF5IGZvcktleTooTlNTdHJpbmcgKil0ZXN0S2V5XTsKIAogICAgIGF1dG8gY29uZmln
dXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7
CiAgICAgV0tSZXRhaW5QdHI8V0tDb250ZXh0UmVmPiBjb250ZXh0ID0gYWRvcHRXSyhUZXN0V2Vi
S2l0QVBJOjpVdGlsOjpjcmVhdGVDb250ZXh0Rm9ySW5qZWN0ZWRCdW5kbGVUZXN0KCJJbnRlcm5h
bHNJbmplY3RlZEJ1bmRsZVRlc3QiKSk7CkBAIC0xMDksMTMgKzExNSwxNCBAQCBURVNUKFdlYktp
dCwgUHJlZmVyZW5jZUNoYW5nZXNBcnJheSkKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtb
VGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDMwMCwg
MzAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCkgYWRkVG9XaW5kb3c6WUVTXSk7
CiAKICAgICBhdXRvIHByZWZlcmVuY2VWYWx1ZSA9IFsmXSB7Ci0gICAgICAgIHJldHVybiBbd2Vi
VmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAid2luZG93LmludGVybmFscy5lbmNv
ZGVkUHJlZmVyZW5jZVZhbHVlKFwiY29tLmFwcGxlLmNvcmVtZWRpYVwiLCBcInRlc3RrZXlcIiki
XTsKKyAgICAgICAgTlNTdHJpbmcgKmpzID0gW05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCJ3
aW5kb3cuaW50ZXJuYWxzLmVuY29kZWRQcmVmZXJlbmNlVmFsdWUoXCIlQFwiLFwiJUBcIikiLCAo
TlNTdHJpbmcgKil0ZXN0RG9tYWluLCAoTlNTdHJpbmcgKil0ZXN0S2V5XTsKKyAgICAgICAgcmV0
dXJuIFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6anNdOwogICAgIH07CiAK
ICAgICBwcmVmZXJlbmNlVmFsdWUoKTsKIAogICAgIE5TQXJyYXkgKmNoYW5nZWRBcnJheSA9IEBb
QDMsIEAyLCBAMV07Ci0gICAgW3VzZXJEZWZhdWx0cy5nZXQoKSBzZXRPYmplY3Q6Y2hhbmdlZEFy
cmF5IGZvcktleTpAInRlc3RrZXkiXTsKKyAgICBbdXNlckRlZmF1bHRzLmdldCgpIHNldE9iamVj
dDpjaGFuZ2VkQXJyYXkgZm9yS2V5OihOU1N0cmluZyAqKXRlc3RLZXldOwogCiAgICAgYXV0byBl
bmNvZGVkU3RyaW5nID0gcHJlZmVyZW5jZVZhbHVlKCk7CiAgICAgYXV0byBlbmNvZGVkRGF0YSA9
IGFkb3B0TlMoW1tOU0RhdGEgYWxsb2NdIGluaXRXaXRoQmFzZTY0RW5jb2RlZFN0cmluZzplbmNv
ZGVkU3RyaW5nIG9wdGlvbnM6MF0pOwpAQCAtMTM0LDggKzE0MSw4IEBAIFRFU1QoV2ViS2l0LCBQ
cmVmZXJlbmNlQ2hhbmdlc0RpY3Rpb25hcnkKICAgICAgICAgQCJiIiA6IEAyLAogICAgIH07CiAK
LSAgICBhdXRvIHVzZXJEZWZhdWx0cyA9IGFkb3B0TlMoW1tOU1VzZXJEZWZhdWx0cyBhbGxvY10g
aW5pdFdpdGhTdWl0ZU5hbWU6QCJjb20uYXBwbGUuY29yZW1lZGlhIl0pOwotICAgIFt1c2VyRGVm
YXVsdHMuZ2V0KCkgc2V0T2JqZWN0OmRpY3QgZm9yS2V5OkAidGVzdGtleSJdOworICAgIGF1dG8g
dXNlckRlZmF1bHRzID0gYWRvcHROUyhbW05TVXNlckRlZmF1bHRzIGFsbG9jXSBpbml0V2l0aFN1
aXRlTmFtZTooTlNTdHJpbmcgKil0ZXN0RG9tYWluXSk7CisgICAgW3VzZXJEZWZhdWx0cy5nZXQo
KSBzZXRPYmplY3Q6ZGljdCBmb3JLZXk6KE5TU3RyaW5nICopdGVzdEtleV07CiAKICAgICBhdXRv
IGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10g
aW5pdF0pOwogICAgIFdLUmV0YWluUHRyPFdLQ29udGV4dFJlZj4gY29udGV4dCA9IGFkb3B0V0so
VGVzdFdlYktpdEFQSTo6VXRpbDo6Y3JlYXRlQ29udGV4dEZvckluamVjdGVkQnVuZGxlVGVzdCgi
SW50ZXJuYWxzSW5qZWN0ZWRCdW5kbGVUZXN0IikpOwpAQCAtMTQzLDcgKzE1MCw4IEBAIFRFU1Qo
V2ViS2l0LCBQcmVmZXJlbmNlQ2hhbmdlc0RpY3Rpb25hcnkKICAgICBhdXRvIHdlYlZpZXcgPSBh
ZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAs
IDAsIDMwMCwgMzAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCkgYWRkVG9XaW5k
b3c6WUVTXSk7CiAKICAgICBhdXRvIHByZWZlcmVuY2VWYWx1ZSA9IFsmXSB7Ci0gICAgICAgIHJl
dHVybiBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAid2luZG93LmludGVy
bmFscy5lbmNvZGVkUHJlZmVyZW5jZVZhbHVlKFwiY29tLmFwcGxlLmNvcmVtZWRpYVwiLCBcInRl
c3RrZXlcIikiXTsKKyAgICAgICAgTlNTdHJpbmcgKmpzID0gW05TU3RyaW5nIHN0cmluZ1dpdGhG
b3JtYXQ6QCJ3aW5kb3cuaW50ZXJuYWxzLmVuY29kZWRQcmVmZXJlbmNlVmFsdWUoXCIlQFwiLFwi
JUBcIikiLCAoTlNTdHJpbmcgKil0ZXN0RG9tYWluLCAoTlNTdHJpbmcgKil0ZXN0S2V5XTsKKyAg
ICAgICAgcmV0dXJuIFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6anNdOwog
ICAgIH07CiAKICAgICBwcmVmZXJlbmNlVmFsdWUoKTsKQEAgLTE1Myw3ICsxNjEsNyBAQCBURVNU
KFdlYktpdCwgUHJlZmVyZW5jZUNoYW5nZXNEaWN0aW9uYXJ5CiAgICAgICAgIEAiYiIgOiBAMiwK
ICAgICAgICAgQCJjIiA6IEAzLAogICAgIH07Ci0gICAgW3VzZXJEZWZhdWx0cy5nZXQoKSBzZXRP
YmplY3Q6Y2hhbmdlZERpY3QgZm9yS2V5OkAidGVzdGtleSJdOworICAgIFt1c2VyRGVmYXVsdHMu
Z2V0KCkgc2V0T2JqZWN0OmNoYW5nZWREaWN0IGZvcktleTooTlNTdHJpbmcgKil0ZXN0S2V5XTsK
IAogICAgIGF1dG8gZW5jb2RlZFN0cmluZyA9IHByZWZlcmVuY2VWYWx1ZSgpOwogICAgIGF1dG8g
ZW5jb2RlZERhdGEgPSBhZG9wdE5TKFtbTlNEYXRhIGFsbG9jXSBpbml0V2l0aEJhc2U2NEVuY29k
ZWRTdHJpbmc6ZW5jb2RlZFN0cmluZyBvcHRpb25zOjBdKTsKQEAgLTE2OSw4ICsxNzcsOCBAQCBU
RVNUKFdlYktpdCwgUHJlZmVyZW5jZUNoYW5nZXNEYXRhKQogewogICAgIE5TRGF0YSAqZGF0YSA9
IFtOU0RhdGEgZGF0YVdpdGhCeXRlczoiYWJjIiBsZW5ndGg6M107CiAKLSAgICBhdXRvIHVzZXJE
ZWZhdWx0cyA9IGFkb3B0TlMoW1tOU1VzZXJEZWZhdWx0cyBhbGxvY10gaW5pdFdpdGhTdWl0ZU5h
bWU6QCJjb20uYXBwbGUuY29yZW1lZGlhIl0pOwotICAgIFt1c2VyRGVmYXVsdHMuZ2V0KCkgc2V0
T2JqZWN0OmRhdGEgZm9yS2V5OkAidGVzdGtleSJdOworICAgIGF1dG8gdXNlckRlZmF1bHRzID0g
YWRvcHROUyhbW05TVXNlckRlZmF1bHRzIGFsbG9jXSBpbml0V2l0aFN1aXRlTmFtZTooTlNTdHJp
bmcgKil0ZXN0RG9tYWluXSk7CisgICAgW3VzZXJEZWZhdWx0cy5nZXQoKSBzZXRPYmplY3Q6ZGF0
YSBmb3JLZXk6KE5TU3RyaW5nICopdGVzdEtleV07CiAKICAgICBhdXRvIGNvbmZpZ3VyYXRpb24g
PSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOwogICAgIFdL
UmV0YWluUHRyPFdLQ29udGV4dFJlZj4gY29udGV4dCA9IGFkb3B0V0soVGVzdFdlYktpdEFQSTo6
VXRpbDo6Y3JlYXRlQ29udGV4dEZvckluamVjdGVkQnVuZGxlVGVzdCgiSW50ZXJuYWxzSW5qZWN0
ZWRCdW5kbGVUZXN0IikpOwpAQCAtMTc4LDEzICsxODYsMTQgQEAgVEVTVChXZWJLaXQsIFByZWZl
cmVuY2VDaGFuZ2VzRGF0YSkKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2Vi
VmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDMwMCwgMzAwKSBjb25m
aWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCkgYWRkVG9XaW5kb3c6WUVTXSk7CiAKICAgICBh
dXRvIHByZWZlcmVuY2VWYWx1ZSA9IFsmXSB7Ci0gICAgICAgIHJldHVybiBbd2ViVmlldyBzdHJp
bmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAid2luZG93LmludGVybmFscy5lbmNvZGVkUHJlZmVy
ZW5jZVZhbHVlKFwiY29tLmFwcGxlLmNvcmVtZWRpYVwiLCBcInRlc3RrZXlcIikiXTsKKyAgICAg
ICAgTlNTdHJpbmcgKmpzID0gW05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCJ3aW5kb3cuaW50
ZXJuYWxzLmVuY29kZWRQcmVmZXJlbmNlVmFsdWUoXCIlQFwiLFwiJUBcIikiLCAoTlNTdHJpbmcg
Kil0ZXN0RG9tYWluLCAoTlNTdHJpbmcgKil0ZXN0S2V5XTsKKyAgICAgICAgcmV0dXJuIFt3ZWJW
aWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6anNdOwogICAgIH07CiAKICAgICBwcmVm
ZXJlbmNlVmFsdWUoKTsKIAogICAgIE5TRGF0YSAqY2hhbmdlZERhdGEgPSBbTlNEYXRhIGRhdGFX
aXRoQnl0ZXM6ImFiY2QiIGxlbmd0aDo0XTsKLSAgICBbdXNlckRlZmF1bHRzLmdldCgpIHNldE9i
amVjdDpjaGFuZ2VkRGF0YSBmb3JLZXk6QCJ0ZXN0a2V5Il07CisgICAgW3VzZXJEZWZhdWx0cy5n
ZXQoKSBzZXRPYmplY3Q6Y2hhbmdlZERhdGEgZm9yS2V5OihOU1N0cmluZyAqKXRlc3RLZXldOwog
CiAgICAgYXV0byBlbmNvZGVkU3RyaW5nID0gcHJlZmVyZW5jZVZhbHVlKCk7CiAgICAgYXV0byBl
bmNvZGVkRGF0YSA9IGFkb3B0TlMoW1tOU0RhdGEgYWxsb2NdIGluaXRXaXRoQmFzZTY0RW5jb2Rl
ZFN0cmluZzplbmNvZGVkU3RyaW5nIG9wdGlvbnM6MF0pOwpAQCAtMjAwLDggKzIwOSw4IEBAIFRF
U1QoV2ViS2l0LCBQcmVmZXJlbmNlQ2hhbmdlc0RhdGUpCiB7CiAgICAgTlNEYXRlICpkYXRlID0g
W05TRGF0ZSBkYXRlV2l0aFRpbWVJbnRlcnZhbFNpbmNlTm93OjBdOwogCi0gICAgYXV0byB1c2Vy
RGVmYXVsdHMgPSBhZG9wdE5TKFtbTlNVc2VyRGVmYXVsdHMgYWxsb2NdIGluaXRXaXRoU3VpdGVO
YW1lOkAiY29tLmFwcGxlLmNvcmVtZWRpYSJdKTsKLSAgICBbdXNlckRlZmF1bHRzLmdldCgpIHNl
dE9iamVjdDpkYXRlIGZvcktleTpAInRlc3RrZXkiXTsKKyAgICBhdXRvIHVzZXJEZWZhdWx0cyA9
IGFkb3B0TlMoW1tOU1VzZXJEZWZhdWx0cyBhbGxvY10gaW5pdFdpdGhTdWl0ZU5hbWU6KE5TU3Ry
aW5nICopdGVzdERvbWFpbl0pOworICAgIFt1c2VyRGVmYXVsdHMuZ2V0KCkgc2V0T2JqZWN0OmRh
dGUgZm9yS2V5OihOU1N0cmluZyAqKXRlc3RLZXldOwogCiAgICAgYXV0byBjb25maWd1cmF0aW9u
ID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKICAgICBX
S1JldGFpblB0cjxXS0NvbnRleHRSZWY+IGNvbnRleHQgPSBhZG9wdFdLKFRlc3RXZWJLaXRBUEk6
OlV0aWw6OmNyZWF0ZUNvbnRleHRGb3JJbmplY3RlZEJ1bmRsZVRlc3QoIkludGVybmFsc0luamVj
dGVkQnVuZGxlVGVzdCIpKTsKQEAgLTIwOSwxMyArMjE4LDE0IEBAIFRFU1QoV2ViS2l0LCBQcmVm
ZXJlbmNlQ2hhbmdlc0RhdGUpCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dl
YlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCAzMDAsIDMwMCkgY29u
ZmlndXJhdGlvbjpjb25maWd1cmF0aW9uLmdldCgpIGFkZFRvV2luZG93OllFU10pOwogCiAgICAg
YXV0byBwcmVmZXJlbmNlVmFsdWUgPSBbJl0gewotICAgICAgICByZXR1cm4gW3dlYlZpZXcgc3Ry
aW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAIndpbmRvdy5pbnRlcm5hbHMuZW5jb2RlZFByZWZl
cmVuY2VWYWx1ZShcImNvbS5hcHBsZS5jb3JlbWVkaWFcIiwgXCJ0ZXN0a2V5XCIpIl07CisgICAg
ICAgIE5TU3RyaW5nICpqcyA9IFtOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAid2luZG93Lmlu
dGVybmFscy5lbmNvZGVkUHJlZmVyZW5jZVZhbHVlKFwiJUBcIixcIiVAXCIpIiwgKE5TU3RyaW5n
ICopdGVzdERvbWFpbiwgKE5TU3RyaW5nICopdGVzdEtleV07CisgICAgICAgIHJldHVybiBbd2Vi
VmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OmpzXTsKICAgICB9OwogCiAgICAgcHJl
ZmVyZW5jZVZhbHVlKCk7CiAKICAgICBOU0RhdGUgKmNoYW5nZWREYXRlID0gW05TRGF0ZSBkYXRl
V2l0aFRpbWVJbnRlcnZhbFNpbmNlTm93OjEwXTsKLSAgICBbdXNlckRlZmF1bHRzLmdldCgpIHNl
dE9iamVjdDpjaGFuZ2VkRGF0ZSBmb3JLZXk6QCJ0ZXN0a2V5Il07CisgICAgW3VzZXJEZWZhdWx0
cy5nZXQoKSBzZXRPYmplY3Q6Y2hhbmdlZERhdGUgZm9yS2V5OihOU1N0cmluZyAqKXRlc3RLZXld
OwogCiAgICAgYXV0byBlbmNvZGVkU3RyaW5nID0gcHJlZmVyZW5jZVZhbHVlKCk7CiAgICAgYXV0
byBlbmNvZGVkRGF0YSA9IGFkb3B0TlMoW1tOU0RhdGEgYWxsb2NdIGluaXRXaXRoQmFzZTY0RW5j
b2RlZFN0cmluZzplbmNvZGVkU3RyaW5nIG9wdGlvbnM6MF0pOwpAQCAtMjI3LDQgKzIzNywzMiBA
QCBURVNUKFdlYktpdCwgUHJlZmVyZW5jZUNoYW5nZXNEYXRlKQogICAgIEFTU0VSVF9UUlVFKFtv
YmplY3QgaXNFcXVhbDpjaGFuZ2VkRGF0ZV0pOwogfQogCitzdGF0aWMgSU1QIHNoYXJlZEluc3Rh
bmNlTWV0aG9kT3JpZ2luYWwgPSBuaWw7CisKK3N0YXRpYyBXS1ByZWZlcmVuY2VPYnNlcnZlciAq
c2hhcmVkSW5zdGFuY2VNZXRob2RPdmVycmlkZShpZCBzZWxmLCBTRUwgc2VsZWN0b3IpCit7Cisg
ICAgZG9uZSA9IHRydWU7CisgICAgcmV0dXJuIHd0ZkNhbGxJTVA8V0tQcmVmZXJlbmNlT2JzZXJ2
ZXIgKj4oc2hhcmVkSW5zdGFuY2VNZXRob2RPcmlnaW5hbCwgc2VsZiwgc2VsZWN0b3IpOworfQor
CitURVNUKFdlYktpdCwgUHJlZmVyZW5jZU9ic2VydmVyU3RhcnRlZE9uQWN0aXZhdGlvbikKK3sK
KyAgICBkb25lID0gZmFsc2U7CisgICAgTWV0aG9kIHNoYXJlZEluc3RhbmNlTWV0aG9kID0gY2xh
c3NfZ2V0Q2xhc3NNZXRob2Qob2JqY19nZXRDbGFzcygiV0tQcmVmZXJlbmNlT2JzZXJ2ZXIiKSwg
QHNlbGVjdG9yKHNoYXJlZEluc3RhbmNlKSk7CisgICAgQVNTRVJUKHNoYXJlZEluc3RhbmNlTWV0
aG9kKTsKKyAgICBzaGFyZWRJbnN0YW5jZU1ldGhvZE9yaWdpbmFsID0gbWV0aG9kX3NldEltcGxl
bWVudGF0aW9uKHNoYXJlZEluc3RhbmNlTWV0aG9kLCAoSU1QKXNoYXJlZEluc3RhbmNlTWV0aG9k
T3ZlcnJpZGUpOworICAgIEFTU0VSVChzaGFyZWRJbnN0YW5jZU1ldGhvZE9yaWdpbmFsKTsKKwor
ICAgIGF1dG8gY29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9u
IGFsbG9jXSBpbml0XSk7CisgICAgV0tSZXRhaW5QdHI8V0tDb250ZXh0UmVmPiBjb250ZXh0ID0g
YWRvcHRXSyhUZXN0V2ViS2l0QVBJOjpVdGlsOjpjcmVhdGVDb250ZXh0Rm9ySW5qZWN0ZWRCdW5k
bGVUZXN0KCJJbnRlcm5hbHNJbmplY3RlZEJ1bmRsZVRlc3QiKSk7CisgICAgY29uZmlndXJhdGlv
bi5nZXQoKS5wcm9jZXNzUG9vbCA9IChXS1Byb2Nlc3NQb29sICopY29udGV4dC5nZXQoKTsKKyAg
ICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhG
cmFtZTpOU01ha2VSZWN0KDAsIDAsIDMwMCwgMzAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRp
b24uZ2V0KCkgYWRkVG9XaW5kb3c6WUVTXSk7CisKKyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5
TG9hZFRlc3RQYWdlTmFtZWQ6QCJzaW1wbGUiXTsKKworICAgIFtbTlNOb3RpZmljYXRpb25DZW50
ZXIgZGVmYXVsdENlbnRlcl0gcG9zdE5vdGlmaWNhdGlvbk5hbWU6TlNBcHBsaWNhdGlvbkRpZEJl
Y29tZUFjdGl2ZU5vdGlmaWNhdGlvbiBvYmplY3Q6TlNBcHAgdXNlckluZm86bmlsXTsKKworICAg
IFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7Cit9CisKICNlbmRpZiAvLyBXS19IQVZF
X0NfU1BJCg==
</data>
<flag name="review"
          id="409566"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>394142</attachid>
            <date>2020-03-20 15:48:33 -0700</date>
            <delta_ts>2020-03-20 16:26:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209244-20200320154832.patch</filename>
            <type>text/plain</type>
            <size>26364</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyNTg3ODMpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDIwLTAzLTIwICBQZXIgQXJuZSBWb2xsYW4gIDxw
dm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIEZpeCBsYXVuY2ggdGltZSByZWdy
ZXNzaW9uIHdpdGggQ0YgcHJlZnMgZGlyZWN0IG1vZGUgZW5hYmxlZAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA5MjQ0CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgUmUtZW5hYmxlIENGIHByZWZzIGRpcmVjdCBt
b2RlLgorCisgICAgICAgICogd3RmL1BsYXRmb3JtRW5hYmxlLmg6CisgICAgICAgICogd3RmL1Bs
YXRmb3JtRW5hYmxlQ29jb2EuaDoKKwogMjAyMC0wMy0yMCAgVGltIEhvcnRvbiAgPHRpbW90aHlf
aG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBVcHN0cmVhbSBhIHZhcmlldHkgb2YgQ29jb2Et
cGxhdGZvcm0gSEFWRSBhbmQgRU5BQkxFIG1hY3JvcwpJbmRleDogU291cmNlL1dURi93dGYvUGxh
dGZvcm1FbmFibGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJs
ZS5oCShyZXZpc2lvbiAyNTg3ODMpCisrKyBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJsZS5o
CSh3b3JraW5nIGNvcHkpCkBAIC04NzEsNCArODcxLDYgQEAKICNlcnJvciAiRU5BQkxFKFdFQkdM
MikgcmVxdWlyZXMgRU5BQkxFKFdFQkdMKSIKICNlbmRpZgogCisjaWYgIWRlZmluZWQoRU5BQkxF
X0NGUFJFRlNfRElSRUNUX01PREUpCiAjZGVmaW5lIEVOQUJMRV9DRlBSRUZTX0RJUkVDVF9NT0RF
IDAKKyNlbmRpZgpJbmRleDogU291cmNlL1dURi93dGYvUGxhdGZvcm1FbmFibGVDb2NvYS5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlQ29jb2EuaAkocmV2aXNp
b24gMjU4NzgzKQorKysgU291cmNlL1dURi93dGYvUGxhdGZvcm1FbmFibGVDb2NvYS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yODAsMyArMjgwLDcgQEAKICNpZiAhZGVmaW5lZChFTkFCTEVfVEFLRV9V
TkJPVU5ERURfTkVUV09SS0lOR19BU1NFUlRJT04pICYmIChQTEFURk9STShJT1MpIHx8IFBMQVRG
T1JNKE1BQ0NBVEFMWVNUKSkKICNkZWZpbmUgRU5BQkxFX1RBS0VfVU5CT1VOREVEX05FVFdPUktJ
TkdfQVNTRVJUSU9OIDEKICNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0NGUFJFRlNfRElS
RUNUX01PREUpCisjZGVmaW5lIEVOQUJMRV9DRlBSRUZTX0RJUkVDVF9NT0RFIDEKKyNlbmRpZgpJ
bmRleDogU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1ODc4MykKKysrIFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjcgQEAKKzIwMjAtMDMtMjAgIFBlciBBcm5lIFZv
bGxhbiAgPHB2b2xsYW5AYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gRml4IGxhdW5jaCB0
aW1lIHJlZ3Jlc3Npb24gd2l0aCBDRiBwcmVmcyBkaXJlY3QgbW9kZSBlbmFibGVkCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDkyNDQKKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzYwNTQyMTQ5PgorCisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFk
bGVyLgorCisgICAgICAgIFdoZW4gQ0YgcHJlZnMgZGlyZWN0IG1vZGUgd2FzIGVuYWJsZWQgaW4g
aHR0cHM6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzI1ODA2NC93ZWJraXQsIGl0IGludHJv
ZHVjZWQKKyAgICAgICAgYSBzaWduaWZpY2FudCBsYXVuY2ggdGltZSByZWdyZXNzaW9uLiBUaGlz
IHBhdGNoIGFkZHJlc3NlcyB0aGlzIHJlZ3Jlc3Npb24uIFRoZSBudW1iZXIgb2Ygb2JzZXJ2ZWQg
ZG9tYWlucworICAgICAgICBpcyByZWR1Y2VkIGFuZCBkb21haW4gb2JzZXJ2YXRpb24gaXMgaW5p
dGlhdGVkIGxhdGVyIHdoZW4gU2FmYXJpIGlzIGZpcnN0IGFjdGl2YXRlZC4gU3dpenpsaW5nIGNv
ZGUgaXMKKyAgICAgICAgcmVtb3ZlZCwgc2luY2UgdGhhdCBoYXMgYSBwZXJmb3JtYW5jZSBjb3N0
IGluIHRoZSBPYmplY3RpdmUtQyBydW50aW1lLiBOb3JtYWwgcHJpb3JpdHkgaW5zdGVhZCBvZgor
ICAgICAgICBRT1NfQ0xBU1NfQkFDS0dST1VORCBpcyB1c2VkIGluIHRoZSB0aHJlYWQgd2hpY2gg
c3RhcnRzIHRoZSBvYnNlcnZpbmcsIHNpbmNlIHVzaW5nIGEgYmFja2dyb3VuZCBwcmlvcml0eQor
ICAgICAgICBjbGFzcyBjYW4gbGVhZCB0byBwcmlvcml0eSBpbnZlcnNpb24uIEZpbmFsbHksIGEg
ZGljdGlvbmFyeSBjb21wYXJpc29uIGlzIHJlbW92ZWQgd2hlbiBhIG5vdGlmaWNhdGlvbgorICAg
ICAgICBhYm91dCBhIHByZWZlcmVuY2UgY2hhbmdlIGlzIHJlY2VpdmVkLCBzaW5jZSB0aGlzIGNo
ZWNrIGlzIHJlZHVuZGFudCBhbmQgZG91YmxlcyB0aGUgY29zdCBvZiB0aGlzIG1ldGhvZC4KKwor
ICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9QcmVmZXJlbmNlT2JzZXJ2ZXIubW06CisgICAgICAg
ICgtW1dLUHJlZmVyZW5jZU9ic2VydmVyIGluaXRdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29j
b2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bv
b2w6OnBsYXRmb3JtSW5pdGlhbGl6ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29s
OjpyZWdpc3Rlck5vdGlmaWNhdGlvbk9ic2VydmVycyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBy
b2Nlc3NQb29sOjp1bnJlZ2lzdGVyTm90aWZpY2F0aW9uT2JzZXJ2ZXJzKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaDoKKwogMjAyMC0wMy0yMCAgRG9uIE9sbXN0ZWFkICA8
ZG9uLm9sbXN0ZWFkQHNvbnkuY29tPgogCiAgICAgICAgIFtHUFVQXSBBZGQgUGxhdGZvcm1MYXll
ckNvbnRhaW5lciB0byBob2xkIHBvaW50ZXIgdG8gUGxhdGZvcm1MYXllcgpJbmRleDogU291cmNl
L1dlYktpdC9SZXNvdXJjZXMvU2FuZGJveFByb2ZpbGVzL2lvcy9jb20uYXBwbGUuV2ViS2l0Lldl
YkNvbnRlbnQuc2IKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9SZXNvdXJjZXMvU2FuZGJv
eFByb2ZpbGVzL2lvcy9jb20uYXBwbGUuV2ViS2l0LldlYkNvbnRlbnQuc2IJKHJldmlzaW9uIDI1
ODc4MykKKysrIFNvdXJjZS9XZWJLaXQvUmVzb3VyY2VzL1NhbmRib3hQcm9maWxlcy9pb3MvY29t
LmFwcGxlLldlYktpdC5XZWJDb250ZW50LnNiCSh3b3JraW5nIGNvcHkpCkBAIC01MzQsNyArNTM0
LDYgQEAKIChhbGxvdyBtYWNoLWxvb2t1cAogICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLmxv
Z2QiKQogICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLmxvZ2QuZXZlbnRzIikKLSAgICAoZ2xv
YmFsLW5hbWUgImNvbS5hcHBsZS5jZnByZWZzZC5kYWVtb24iKQogKQogCiAoZGVueSBtYWNoLWxv
b2t1cCAod2l0aCB0ZWxlbWV0cnkpCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
cm9jZXNzUG9vbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQb29sLmgJKHJldmlzaW9uIDI1ODc4MykKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlByb2Nlc3NQb29sLmgJKHdvcmtpbmcgY29weSkKQEAgLTYxMSw2ICs2MTEsMTAgQEAgcHJp
dmF0ZToKICNlbmRpZgogI2VuZGlmCiAKKyNpZiBFTkFCTEUoQ0ZQUkVGU19ESVJFQ1RfTU9ERSkK
KyAgICB2b2lkIHN0YXJ0T2JzZXJ2aW5nUHJlZmVyZW5jZUNoYW5nZXMoKTsKKyNlbmRpZgorCiAg
ICAgUmVmPEFQSTo6UHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uPiBtX2NvbmZpZ3VyYXRpb247CiAK
ICAgICBJUEM6Ok1lc3NhZ2VSZWNlaXZlck1hcCBtX21lc3NhZ2VSZWNlaXZlck1hcDsKQEAgLTY5
MSw3ICs2OTUsNiBAQCBwcml2YXRlOgogI2lmIEVOQUJMRShXRUJQUk9DRVNTX1dJTkRPV1NFUlZF
Ul9CTE9DS0lORykKICAgICBSZXRhaW5QdHI8TlNPYmplY3Q+IG1fc2Nyb2xsZXJTdHlsZU5vdGlm
aWNhdGlvbk9ic2VydmVyOwogI2VuZGlmCi0gICAgUmV0YWluUHRyPE5TT2JqZWN0PiBtX2FjdGl2
YXRpb25PYnNlcnZlcjsKICAgICBSZXRhaW5QdHI8TlNPYmplY3Q+IG1fZGVhY3RpdmF0aW9uT2Jz
ZXJ2ZXI7CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8SGlnaFBlcmZvcm1hbmNlR3JhcGhpY3NVc2Fn
ZVNhbXBsZXI+IG1faGlnaFBlcmZvcm1hbmNlR3JhcGhpY3NVc2FnZVNhbXBsZXI7CkBAIC02OTks
NiArNzAyLDcgQEAgcHJpdmF0ZToKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oQ09DT0EpCisgICAg
UmV0YWluUHRyPE5TT2JqZWN0PiBtX2FjdGl2YXRpb25PYnNlcnZlcjsKICAgICBSZXRhaW5QdHI8
TlNPYmplY3Q+IG1fYWNjZXNzaWJpbGl0eUVuYWJsZWRPYnNlcnZlcjsKICNlbmRpZgogCkBAIC04
MDIsMTAgKzgwNiw2IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2lzRGVsYXllZFdlYlByb2Nlc3NM
YXVuY2hEaXNhYmxlZCB7IGZhbHNlIH07CiAjZW5kaWYKICAgICBib29sIG1fdXNlU2VwYXJhdGVT
ZXJ2aWNlV29ya2VyUHJvY2VzcyB7IGZhbHNlIH07Ci0KLSNpZiBQTEFURk9STShDT0NPQSkKLSAg
ICBSZXRhaW5QdHI8V0tQcmVmZXJlbmNlT2JzZXJ2ZXI+IG1fcHJlZmVyZW5jZU9ic2VydmVyOwot
I2VuZGlmCiB9OwogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgpJbmRleDogU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQ29jb2EvUHJlZmVyZW5jZU9ic2VydmVyLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvUHJlZmVyZW5jZU9ic2VydmVyLmgJKHJldmlzaW9uIDI1
ODc4MykKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1ByZWZlcmVuY2VPYnNlcnZl
ci5oCSh3b3JraW5nIGNvcHkpCkBAIC00Niw2ICs0Niw1IEBAIF9fYXR0cmlidXRlX18oKHZpc2li
aWxpdHkoImRlZmF1bHQiKSkpCiAgICAgVmVjdG9yPFJldGFpblB0cjxXS1VzZXJEZWZhdWx0cz4+
IG1fdXNlckRlZmF1bHRzOwogfQogKyAoaWQpc2hhcmVkSW5zdGFuY2U7Ci0rICh2b2lkKXN3aXp6
bGVSZWdpc3RlckRlZmF1bHRzOwogLSAodm9pZClwcmVmZXJlbmNlRGlkQ2hhbmdlOihOU1N0cmlu
ZyAqKWRvbWFpbiBrZXk6KE5TU3RyaW5nICopa2V5IGVuY29kZWRWYWx1ZTooTlNTdHJpbmcgKill
bmNvZGVkVmFsdWU7CiBAZW5kCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Q
cmVmZXJlbmNlT2JzZXJ2ZXIubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQ29jb2EvUHJlZmVyZW5jZU9ic2VydmVyLm1tCShyZXZpc2lvbiAyNTg3ODMpCisrKyBTb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9QcmVmZXJlbmNlT2JzZXJ2ZXIubW0JKHdvcmtpbmcg
Y29weSkKQEAgLTI4LDMxICsyOCwxMiBAQAogCiAjaW1wb3J0ICJXZWJQcm9jZXNzUG9vbC5oIgog
Ci0jaW1wb3J0IDx3dGYvT2JqQ1J1bnRpbWVFeHRyYXMuaD4KLQotc3RhdGljIElNUCByZWdpc3Rl
ckRlZmF1bHRzT3JpZ2luYWwgPSBuaWw7Ci1zdGF0aWMgYm9vbCByZWdpc3RlcmluZ0RlZmF1bHRz
ID0gZmFsc2U7Ci0KLXN0YXRpYyB2b2lkIHJlZ2lzdGVyRGVmYXVsdHNPdmVycmlkZShpZCBzZWxm
LCBTRUwgc2VsZWN0b3IsIE5TRGljdGlvbmFyeTxOU1N0cmluZyAqLCBpZD4gKmRpY3Rpb25hcnkp
Ci17Ci0gICAgcmVnaXN0ZXJpbmdEZWZhdWx0cyA9IHRydWU7Ci0gICAgaWYgKHJlZ2lzdGVyRGVm
YXVsdHNPcmlnaW5hbCkKLSAgICAgICAgd3RmQ2FsbElNUDx2b2lkPihyZWdpc3RlckRlZmF1bHRz
T3JpZ2luYWwsIHNlbGYsIHNlbGVjdG9yLCBkaWN0aW9uYXJ5KTsKLSAgICByZWdpc3RlcmluZ0Rl
ZmF1bHRzID0gZmFsc2U7Ci19Ci0KIEBpbXBsZW1lbnRhdGlvbiBXS1VzZXJEZWZhdWx0cwogCiAt
ICh2b2lkKV9ub3RpZnlPYnNlcnZlcnNPZkNoYW5nZUZyb21WYWx1ZXNGb3JLZXlzOihOU0RpY3Rp
b25hcnk8TlNTdHJpbmcgKiwgaWQ+ICopb2xkVmFsdWVzIHRvVmFsdWVzRm9yS2V5czooTlNEaWN0
aW9uYXJ5PE5TU3RyaW5nICosIGlkPiAqKW5ld1ZhbHVlcwogewotICAgIGlmIChyZWdpc3Rlcmlu
Z0RlZmF1bHRzKQotICAgICAgICByZXR1cm47Ci0KICAgICBbc3VwZXIgX25vdGlmeU9ic2VydmVy
c09mQ2hhbmdlRnJvbVZhbHVlc0ZvcktleXM6b2xkVmFsdWVzIHRvVmFsdWVzRm9yS2V5czpuZXdW
YWx1ZXNdOwogCi0gICAgaWYgKFtvbGRWYWx1ZXMgaXNFcXVhbFRvRGljdGlvbmFyeTpuZXdWYWx1
ZXNdKQotICAgICAgICByZXR1cm47Ci0KICAgICBmb3IgKE5TU3RyaW5nICprZXkgaW4gb2xkVmFs
dWVzKSB7CiAgICAgICAgIGlkIG9sZFZhbHVlID0gb2xkVmFsdWVzW2tleV07CiAgICAgICAgIGlk
IG5ld1ZhbHVlID0gbmV3VmFsdWVzW2tleV07CkBAIC0xMDEsMTAzICs4MiwzMyBAQCArIChpZClz
aGFyZWRJbnN0YW5jZQogICAgIHJldHVybiBpbnN0YW5jZTsKIH0KIAotKyAodm9pZClzd2l6emxl
UmVnaXN0ZXJEZWZhdWx0cwotewotICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlRmxhZzsK
LSAgICBzdGQ6OmNhbGxfb25jZShvbmNlRmxhZywgW10gewotICAgICAgICBNZXRob2QgcmVnaXN0
ZXJEZWZhdWx0c01ldGhvZCA9IGNsYXNzX2dldEluc3RhbmNlTWV0aG9kKG9iamNfZ2V0Q2xhc3Mo
Ik5TVXNlckRlZmF1bHRzIiksIEBzZWxlY3RvcihyZWdpc3RlckRlZmF1bHRzOikpOwotICAgICAg
ICByZWdpc3RlckRlZmF1bHRzT3JpZ2luYWwgPSBtZXRob2Rfc2V0SW1wbGVtZW50YXRpb24ocmVn
aXN0ZXJEZWZhdWx0c01ldGhvZCwgKElNUClyZWdpc3RlckRlZmF1bHRzT3ZlcnJpZGUpOwotICAg
IH0pOwotfQotCiAtIChpbnN0YW5jZXR5cGUpaW5pdAogewogICAgIHN0ZDo6aW5pdGlhbGl6ZXJf
bGlzdDxOU1N0cmluZyo+IGRvbWFpbnMgPSB7Ci0gICAgICAgIEAiY29tLmFwcGxlLkFjY2Vzc2li
aWxpdHkiLAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgICAgIEAiY29tLmFwcGxlLkFj
Y2Vzc2liaWxpdHkiLAogICAgICAgICBAImNvbS5hcHBsZS5BZExpYiIsCi0gICAgICAgIEAiY29t
LmFwcGxlLkNGTmV0d29yayIsCi0gICAgICAgIEAiY29tLmFwcGxlLkVtb2ppUHJlZmVyZW5jZXMi
LAotICAgICAgICBAImNvbS5hcHBsZS5Gb250UGFyc2VyIiwKLSAgICAgICAgQCJjb20uYXBwbGUu
SW1hZ2VJTyIsCi0gICAgICAgIEAiY29tLmFwcGxlLklucHV0TW9kZVByZWZlcmVuY2VzIiwKLSNl
bHNlCi0gICAgICAgIEAiY29tLmFwcGxlLkFUUyIsCi0gICAgICAgIEAiY29tLmFwcGxlLkNvcmVH
cmFwaGljcyIsCi0gICAgICAgIEAiY29tLmFwcGxlLkRvd25sb2FkQXNzZXNzbWVudCIsCi0gICAg
ICAgIEAiY29tLmFwcGxlLkhJVG9vbGJveCIsCi0jZW5kaWYKLSAgICAgICAgQCJjb20uYXBwbGUu
TGF1bmNoU2VydmljZXMiLAotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgICAgIEAiY29t
LmFwcGxlLk1ldGFsIiwKLSAgICAgICAgQCJjb20uYXBwbGUuTW9iaWxlQXNzZXQiLAogICAgICAg
ICBAImNvbS5hcHBsZS5QcmVmZXJlbmNlcyIsCi0gICAgICAgIEAiY29tLmFwcGxlLlNwZWFrU2Vs
ZWN0aW9uIiwKICAgICAgICAgQCJjb20uYXBwbGUuVUlLaXQiLAotICAgICAgICBAImNvbS5hcHBs
ZS5Wb2ljZU92ZXJUb3VjaCIsCi0jZWxzZQotICAgICAgICBAImNvbS5hcHBsZS5NdWx0aXRvdWNo
U3VwcG9ydCIKLSAgICAgICAgQCJjb20uYXBwbGUuU2VydmljZXNNZW51LlNlcnZpY2VzIgotICAg
ICAgICBAImNvbS5hcHBsZS5WaWV3QnJpZGdlIgotI2VuZGlmCi0gICAgICAgIEAiY29tLmFwcGxl
LldlYkZvdW5kYXRpb24iLAotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgICAgIEAiY29t
LmFwcGxlLldlYktpdC5XZWJDb250ZW50IiwKLSAgICAgICAgQCJjb20uYXBwbGUuV2ViVUkiLAot
ICAgICAgICBAImNvbS5hcHBsZS5haXJwbGF5IiwKLSAgICAgICAgQCJjb20uYXBwbGUuYXBwbGVq
cGVnIiwKLSAgICAgICAgQCJjb20uYXBwbGUuYXVkaW8udmlydHVhbGF1ZGlvIiwKICAgICAgICAg
QCJjb20uYXBwbGUuYXZmYXVkaW8iLAotI2VuZGlmCi0gICAgICAgIEAiY29tLmFwcGxlLmF2Zm91
bmRhdGlvbiIsCi0gICAgICAgIEAiY29tLmFwcGxlLmF2Zm91bmRhdGlvbi5mcmVjZW50cyIsCi0g
ICAgICAgIEAiY29tLmFwcGxlLmF2Zm91bmRhdGlvbi52aWRlb3BlcmZvcm1hbmNlaHVkIiwKLSNp
ZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgICAgICBAImNvbS5hcHBsZS5hdmtpdCIsCi0gICAg
ICAgIEAiY29tLmFwcGxlLmNvcmVhbmltYXRpb24iLAotICAgICAgICBAImNvbS5hcHBsZS5jb3Jl
YXVkaW8iLAotI2VuZGlmCi0gICAgICAgIEAiY29tLmFwcGxlLmNvcmVtZWRpYSIsCi0jaWYgUExB
VEZPUk0oSU9TX0ZBTUlMWSkKLSAgICAgICAgQCJjb20uYXBwbGUuY29yZXZpZGVvIiwKLSAgICAg
ICAgQCJjb20uYXBwbGUuZGEiLAotICAgICAgICBAImNvbS5hcHBsZS5oYW5ndHJhY2VyIiwKLSAg
ICAgICAgQCJjb20uYXBwbGUuaW5kaWdvIiwKLSAgICAgICAgQCJjb20uYXBwbGUuaW9raXQuSU9N
b2JpbGVHcmFwaGljc0ZhbWlseSIsCiAgICAgICAgIEAiY29tLmFwcGxlLml0dW5lc3N0b3JlZCIs
Ci0gICAgICAgIEAiY29tLmFwcGxlLmtleWJvYXJkIiwKLSNlbHNlCi0gICAgICAgIEAiY29tLmFw
cGxlLmNyeXB0byIsCi0gICAgICAgIEAiY29tLmFwcGxlLmRyaXZlci5BcHBsZUJsdWV0b290aE11
bHRpdG91Y2gubW91c2UiLAotICAgICAgICBAImNvbS5hcHBsZS5kcml2ZXIuQXBwbGVCbHVldG9v
dGhNdWx0aXRvdWNoLnRyYWNrcGFkIiwKLSAgICAgICAgQCJjb20uYXBwbGUuZHJpdmVyLkFwcGxl
SElETW91c2UiCi0jZW5kaWYKLSAgICAgICAgQCJjb20uYXBwbGUubG9va3VwLnNoYXJlZCIsCi0g
ICAgICAgIEAiY29tLmFwcGxlLm1lZGlhYWNjZXNzaWJpbGl0eSIsCi0jaWYgUExBVEZPUk0oSU9T
X0ZBTUlMWSkKLSAgICAgICAgQCJjb20uYXBwbGUubWVkaWFhY2Nlc3NpYmlsaXR5LnB1YmxpYyIs
CiAgICAgICAgIEAiY29tLmFwcGxlLm1lZGlhcmVtb3RlIiwKLSAgICAgICAgQCJjb20uYXBwbGUu
bW9iaWxlaXBvZCIsCi0gICAgICAgIEAiY29tLmFwcGxlLm10IiwKLSNlbHNlCi0gICAgICAgIEAi
Y29tLmFwcGxlLm5ldHdvcmtDb25uZWN0IgotI2VuZGlmCi0gICAgICAgIEAiY29tLmFwcGxlLm9w
ZW5nbCIsCi0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICAgICAgQCJjb20uYXBwbGUucHJl
ZmVyZW5jZXMuc291bmRzIiwKLSAgICAgICAgQCJjb20uYXBwbGUuc2VjdXJpdHkiLAogICAgICAg
ICBAImNvbS5hcHBsZS52b2ljZXNlcnZpY2VzIiwKLSAgICAgICAgQCJjb20uYXBwbGUudm9pY2Vz
ZXJ2aWNlcy5sb2dnaW5nIiwKKyAgICAgICAgQCJrQ0ZQcmVmZXJlbmNlc0FueUFwcGxpY2F0aW9u
IiwKICNlbHNlCisgICAgICAgIEAiY29tLmFwcGxlLkNvcmVHcmFwaGljcyIsCisgICAgICAgIEAi
Y29tLmFwcGxlLkhJVG9vbGJveCIsCisgICAgICAgIEAiY29tLmFwcGxlLlNlcnZpY2VzTWVudS5T
ZXJ2aWNlcyIsCisgICAgICAgIEAiY29tLmFwcGxlLlZpZXdCcmlkZ2UiLAorICAgICAgICBAImNv
bS5hcHBsZS5hdmZvdW5kYXRpb24iLAorICAgICAgICBAImNvbS5hcHBsZS5hdmZvdW5kYXRpb24u
dmlkZW9wZXJmb3JtYW5jZWh1ZCIsCisgICAgICAgIEAiY29tLmFwcGxlLmRyaXZlci5BcHBsZUJs
dWV0b290aE11bHRpdG91Y2gubW91c2UiLAorICAgICAgICBAImNvbS5hcHBsZS5kcml2ZXIuQXBw
bGVCbHVldG9vdGhNdWx0aXRvdWNoLnRyYWNrcGFkIiwKKyAgICAgICAgQCJjb20uYXBwbGUubWVk
aWFhY2Nlc3NpYmlsaXR5IiwKICAgICAgICAgQCJjb20uYXBwbGUuc3BlZWNoLnZvaWNlLnByZWZz
IiwKLSAgICAgICAgQCJjb20uYXBwbGUuc3lzdGVtc291bmQiLAogICAgICAgICBAImNvbS5hcHBs
ZS51bml2ZXJzYWxhY2Nlc3MiLAotICAgICAgICBAImNvbS5udmlkaWEuT3BlbkdMIiwKLSAgICAg
ICAgQCJlZHUubWl0LktlcmJlcm9zIiwKLSNlbmRpZgogICAgICAgICBAImtDRlByZWZlcmVuY2Vz
QW55QXBwbGljYXRpb24iLAotI2lmICFQTEFURk9STShJT1NfRkFNSUxZKQotICAgICAgICBAInBi
cyIsCiAjZW5kaWYKICAgICB9OwogCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2Nv
YS9XZWJQcm9jZXNzUG9vbENvY29hLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0JKHJldmlzaW9uIDI1ODc4MykKKysr
IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0JKHdv
cmtpbmcgY29weSkKQEAgLTE3MywxNCArMTczLDYgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6cGxh
dGZvcm1Jbml0aWFsaXplKAogICAgICAgICBpbnN0YWxsTWVtb3J5UHJlc3N1cmVIYW5kbGVyKCk7
CiAKICAgICBzZXRMZWdhY3lDdXN0b21Qcm90b2NvbE1hbmFnZXJDbGllbnQobWFrZVVuaXF1ZTxM
ZWdhY3lDdXN0b21Qcm90b2NvbE1hbmFnZXJDbGllbnQ+KCkpOwotCi0jaWYgRU5BQkxFKENGUFJF
RlNfRElSRUNUX01PREUpCi0gICAgW1dLUHJlZmVyZW5jZU9ic2VydmVyIHN3aXp6bGVSZWdpc3Rl
ckRlZmF1bHRzXTsKLSAgICBkaXNwYXRjaF9hc3luYyhkaXNwYXRjaF9nZXRfZ2xvYmFsX3F1ZXVl
KFFPU19DTEFTU19CQUNLR1JPVU5ELCAwKSwgXnsKLSAgICAgICAgLy8gU3RhcnQgb2JzZXJ2aW5n
IHByZWZlcmVuY2UgY2hhbmdlcy4KLSAgICAgICAgW1dLUHJlZmVyZW5jZU9ic2VydmVyIHNoYXJl
ZEluc3RhbmNlXTsKLSAgICB9KTsKLSNlbmRpZgogfQogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlM
WSkKQEAgLTYwOCw2ICs2MDAsMTYgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6cmVtb3RlV2ViSW5z
cGVjdG9yRQogfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoQ0ZQUkVGU19ESVJFQ1RfTU9ERSkKK3Zv
aWQgV2ViUHJvY2Vzc1Bvb2w6OnN0YXJ0T2JzZXJ2aW5nUHJlZmVyZW5jZUNoYW5nZXMoKQorewor
ICAgIGRpc3BhdGNoX2FzeW5jKGRpc3BhdGNoX2dldF9nbG9iYWxfcXVldWUoRElTUEFUQ0hfUVVF
VUVfUFJJT1JJVFlfREVGQVVMVCwgMCksIF57CisgICAgICAgIC8vIFN0YXJ0IG9ic2VydmluZyBw
cmVmZXJlbmNlIGNoYW5nZXMuCisgICAgICAgIFtXS1ByZWZlcmVuY2VPYnNlcnZlciBzaGFyZWRJ
bnN0YW5jZV07CisgICAgfSk7Cit9CisjZW5kaWYKKwogdm9pZCBXZWJQcm9jZXNzUG9vbDo6cmVn
aXN0ZXJOb3RpZmljYXRpb25PYnNlcnZlcnMoKQogewogI2lmICFQTEFURk9STShJT1NfRkFNSUxZ
KQpAQCAtNjUyLDYgKzY1NCw5IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnJlZ2lzdGVyTm90aWZp
Y2F0aW8KICNlbmRpZgogCiAgICAgbV9hY3RpdmF0aW9uT2JzZXJ2ZXIgPSBbW05TTm90aWZpY2F0
aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIGFkZE9ic2VydmVyRm9yTmFtZTpOU0FwcGxpY2F0aW9u
RGlkQmVjb21lQWN0aXZlTm90aWZpY2F0aW9uIG9iamVjdDpOU0FwcCBxdWV1ZTpbTlNPcGVyYXRp
b25RdWV1ZSBjdXJyZW50UXVldWVdIHVzaW5nQmxvY2s6XihOU05vdGlmaWNhdGlvbiAqbm90aWZp
Y2F0aW9uKSB7CisjaWYgRU5BQkxFKENGUFJFRlNfRElSRUNUX01PREUpCisgICAgICAgIHN0YXJ0
T2JzZXJ2aW5nUHJlZmVyZW5jZUNoYW5nZXMoKTsKKyNlbmRpZgogICAgICAgICBzZXRBcHBsaWNh
dGlvbklzQWN0aXZlKHRydWUpOwogICAgIH1dOwogCkBAIC02NzMsNiArNjc4LDExIEBAIHZvaWQg
V2ViUHJvY2Vzc1Bvb2w6OnJlZ2lzdGVyTm90aWZpY2F0aW8KICAgICAgICAgICAgIG1fcHJvY2Vz
c2VzW2ldLT51bmJsb2NrQWNjZXNzaWJpbGl0eVNlcnZlcklmTmVlZGVkKCk7CiAgICAgICAgIH0K
ICAgICB9XTsKKyNpZiBFTkFCTEUoQ0ZQUkVGU19ESVJFQ1RfTU9ERSkKKyAgICBtX2FjdGl2YXRp
b25PYnNlcnZlciA9IFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gYWRkT2Jz
ZXJ2ZXJGb3JOYW1lOkAiVUlBcHBsaWNhdGlvbkRpZEJlY29tZUFjdGl2ZU5vdGlmaWNhdGlvbiIg
b2JqZWN0Om5pbCBxdWV1ZTpbTlNPcGVyYXRpb25RdWV1ZSBjdXJyZW50UXVldWVdIHVzaW5nQmxv
Y2s6XihOU05vdGlmaWNhdGlvbiAqbm90aWZpY2F0aW9uKSB7CisgICAgICAgIHN0YXJ0T2JzZXJ2
aW5nUHJlZmVyZW5jZUNoYW5nZXMoKTsKKyAgICB9XTsKKyNlbmRpZgogI2VuZGlmIC8vICFQTEFU
Rk9STShJT1NfRkFNSUxZKQogfQogCkBAIC02ODgsNyArNjk4LDYgQEAgdm9pZCBXZWJQcm9jZXNz
UG9vbDo6dW5yZWdpc3Rlck5vdGlmaWNhdAogI2lmIEVOQUJMRShXRUJQUk9DRVNTX1dJTkRPV1NF
UlZFUl9CTE9DS0lORykKICAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJd
IHJlbW92ZU9ic2VydmVyOm1fc2Nyb2xsZXJTdHlsZU5vdGlmaWNhdGlvbk9ic2VydmVyLmdldCgp
XTsKICNlbmRpZgotICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gcmVt
b3ZlT2JzZXJ2ZXI6bV9hY3RpdmF0aW9uT2JzZXJ2ZXIuZ2V0KCldOwogICAgIFtbTlNOb3RpZmlj
YXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gcmVtb3ZlT2JzZXJ2ZXI6bV9kZWFjdGl2YXRpb25P
YnNlcnZlci5nZXQoKV07CiAjZWxpZiAhUExBVEZPUk0oTUFDQ0FUQUxZU1QpCiAgICAgQ0ZOb3Rp
ZmljYXRpb25DZW50ZXJSZW1vdmVPYnNlcnZlcihDRk5vdGlmaWNhdGlvbkNlbnRlckdldERhcndp
bk5vdGlmeUNlbnRlcigpLCB0aGlzLCBzdGF0aWNfY2FzdDxDRlN0cmluZ1JlZj4oVUlCYWNrbGln
aHRMZXZlbENoYW5nZWROb3RpZmljYXRpb24pICwgbnVsbHB0cik7CkBAIC02OTgsNiArNzA3LDcg
QEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6dW5yZWdpc3Rlck5vdGlmaWNhdAogI2VuZGlmCiAjZW5k
aWYgLy8gUExBVEZPUk0oSU9TKQogICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENl
bnRlcl0gcmVtb3ZlT2JzZXJ2ZXI6bV9hY2Nlc3NpYmlsaXR5RW5hYmxlZE9ic2VydmVyLmdldCgp
XTsKKyAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIHJlbW92ZU9ic2Vy
dmVyOm1fYWN0aXZhdGlvbk9ic2VydmVyLmdldCgpXTsKICNlbmRpZiAvLyAhUExBVEZPUk0oSU9T
X0ZBTUlMWSkKIH0KIApJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvbS5hcHBsZS5X
ZWJQcm9jZXNzLnNiLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9j
b20uYXBwbGUuV2ViUHJvY2Vzcy5zYi5pbgkocmV2aXNpb24gMjU4NzgzKQorKysgU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL2NvbS5hcHBsZS5XZWJQcm9jZXNzLnNiLmluCSh3b3JraW5nIGNvcHkp
CkBAIC02NzcsNyArNjc3LDYgQEAKICAgICAod2l0aCByZXBvcnQpICh3aXRoIHRlbGVtZXRyeSkK
ICNlbmRpZgogICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLlBvd2VyTWFuYWdlbWVudC5jb250
cm9sIikKLSAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS5jZnByZWZzZC5kYWVtb24iKQogICAg
IChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLmNvcmVzZXJ2aWNlcy5sYXVuY2hzZXJ2aWNlc2QiKQog
ICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLmxzZC5tYXBkYiIpCiAgICAgKGdsb2JhbC1uYW1l
ICJjb20uYXBwbGUudHJ1c3RkLmFnZW50IikKSW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1ODc5MCkKKysrIFRvb2xzL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDIwLTAzLTIwICBQZXIgQXJu
ZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIEZpeCBsYXVu
Y2ggdGltZSByZWdyZXNzaW9uIHdpdGggQ0YgcHJlZnMgZGlyZWN0IG1vZGUgZW5hYmxlZAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA5MjQ0CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdC9QcmVmZXJlbmNlQ2hhbmdlcy5tbToKKyAgICAgICAgKFRFU1QpOgorICAg
ICAgICAoc2hhcmVkSW5zdGFuY2VNZXRob2RPdmVycmlkZSk6CisKIDIwMjAtMDMtMjAgIEFha2Fz
aCBKYWluICA8YWFrYXNoX2phaW5AYXBwbGUuY29tPgogCiAgICAgICAgIGNvbW1pdC1xdWV1ZSBz
aG91bGQgc2tpcCBidWlsZGluZyBhbmQgdGVzdGluZyBpZiBwYXRjaCBhbHJlYWR5IHBhc3NlZCB0
ZXN0cyBvbiBtYWMtd2syIHF1ZXVlCkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdC9QcmVmZXJlbmNlQ2hhbmdlcy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdC9QcmVmZXJlbmNlQ2hhbmdlcy5tbQkocmV2aXNpb24gMjU4NzgzKQor
KysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvUHJlZmVyZW5jZUNoYW5nZXMubW0J
KHdvcmtpbmcgY29weSkKQEAgLTMxLDYgKzMxLDggQEAKICNpbXBvcnQgIlRlc3RXS1dlYlZpZXcu
aCIKICNpbXBvcnQgPFdlYktpdC9QcmVmZXJlbmNlT2JzZXJ2ZXIuaD4KIAorI2ltcG9ydCA8d3Rm
L09iakNSdW50aW1lRXh0cmFzLmg+CisKIHN0YXRpYyBib29sIGRvbmUgPSBmYWxzZTsKIAogQGlu
dGVyZmFjZSBXS1Rlc3RQcmVmZXJlbmNlT2JzZXJ2ZXIgOiBXS1ByZWZlcmVuY2VPYnNlcnZlcgpA
QCAtNDQsMTUgKzQ2LDE4IEBAIC0gKHZvaWQpcHJlZmVyZW5jZURpZENoYW5nZTooTlNTdHJpbmcg
KikKIH0KIEBlbmQKIAorc3RhdGljIGNvbnN0IENGU3RyaW5nUmVmIHRlc3RLZXkgPSBDRlNUUigi
dGVzdGtleSIpOworc3RhdGljIGNvbnN0IENGU3RyaW5nUmVmIHRlc3REb21haW4gPSBDRlNUUigi
a0NGUHJlZmVyZW5jZXNBbnlBcHBsaWNhdGlvbiIpOworCiBURVNUKFdlYktpdCwgUHJlZmVyZW5j
ZU9ic2VydmVyKQogewogICAgIGRvbmUgPSBmYWxzZTsKIAotICAgIENGUHJlZmVyZW5jZXNTZXRB
cHBWYWx1ZShDRlNUUigidGVzdGtleSIpLCBDRlNUUigiMSIpLCBDRlNUUigiY29tLmFwcGxlLmNv
cmVtZWRpYSIpKTsKKyAgICBDRlByZWZlcmVuY2VzU2V0QXBwVmFsdWUodGVzdEtleSwgQ0ZTVFIo
IjEiKSwgdGVzdERvbWFpbik7CiAKICAgICBhdXRvIG9ic2VydmVyID0gYWRvcHROUyhbW1dLVGVz
dFByZWZlcmVuY2VPYnNlcnZlciBhbGxvY10gaW5pdF0pOwogCi0gICAgQ0ZQcmVmZXJlbmNlc1Nl
dEFwcFZhbHVlKENGU1RSKCJ0ZXN0a2V5IiksIENGU1RSKCIyIiksIENGU1RSKCJjb20uYXBwbGUu
Y29yZW1lZGlhIikpOworICAgIENGUHJlZmVyZW5jZXNTZXRBcHBWYWx1ZSh0ZXN0S2V5LCBDRlNU
UigiMiIpLCB0ZXN0RG9tYWluKTsKIAogICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9u
ZSk7CiB9CkBAIC02MywyMiArNjgsMjIgQEAgVEVTVChXZWJLaXQsIFByZWZlcmVuY2VPYnNlcnZl
ckFycmF5KQogCiAgICAgTlNBcnJheSAqYXJyYXkgPSBAW0AxLCBAMiwgQDNdOwogCi0gICAgYXV0
byB1c2VyRGVmYXVsdHMgPSBhZG9wdE5TKFtbTlNVc2VyRGVmYXVsdHMgYWxsb2NdIGluaXRXaXRo
U3VpdGVOYW1lOkAiY29tLmFwcGxlLmNvcmVtZWRpYSJdKTsKLSAgICBbdXNlckRlZmF1bHRzLmdl
dCgpIHNldE9iamVjdDphcnJheSBmb3JLZXk6QCJ0ZXN0a2V5Il07CisgICAgYXV0byB1c2VyRGVm
YXVsdHMgPSBhZG9wdE5TKFtbTlNVc2VyRGVmYXVsdHMgYWxsb2NdIGluaXRXaXRoU3VpdGVOYW1l
OihOU1N0cmluZyAqKXRlc3REb21haW5dKTsKKyAgICBbdXNlckRlZmF1bHRzLmdldCgpIHNldE9i
amVjdDphcnJheSBmb3JLZXk6KE5TU3RyaW5nICopdGVzdEtleV07CiAKICAgICBhdXRvIG9ic2Vy
dmVyID0gYWRvcHROUyhbW1dLVGVzdFByZWZlcmVuY2VPYnNlcnZlciBhbGxvY10gaW5pdF0pOwog
CiAgICAgTlNBcnJheSAqY2hhbmdlZEFycmF5ID0gQFtAMywgQDIsIEAxXTsKLSAgICBbdXNlckRl
ZmF1bHRzLmdldCgpIHNldE9iamVjdDpjaGFuZ2VkQXJyYXkgZm9yS2V5OkAidGVzdGtleSJdOwor
ICAgIFt1c2VyRGVmYXVsdHMuZ2V0KCkgc2V0T2JqZWN0OmNoYW5nZWRBcnJheSBmb3JLZXk6KE5T
U3RyaW5nICopdGVzdEtleV07CiAKICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUp
OwogfQogCiBURVNUKFdlYktpdCwgUHJlZmVyZW5jZUNoYW5nZXMpCiB7Ci0gICAgQ0ZQcmVmZXJl
bmNlc1NldEFwcFZhbHVlKENGU1RSKCJ0ZXN0a2V5IiksIENGU1RSKCIxIiksIENGU1RSKCJjb20u
YXBwbGUuY29yZW1lZGlhIikpOworICAgIENGUHJlZmVyZW5jZXNTZXRBcHBWYWx1ZSh0ZXN0S2V5
LCBDRlNUUigiMSIpLCB0ZXN0RG9tYWluKTsKIAotICAgIEVYUEVDVF9FUSgxLCBDRlByZWZlcmVu
Y2VzR2V0QXBwSW50ZWdlclZhbHVlKENGU1RSKCJ0ZXN0a2V5IiksIENGU1RSKCJjb20uYXBwbGUu
Y29yZW1lZGlhIiksIG51bGxwdHIpKTsKKyAgICBFWFBFQ1RfRVEoMSwgQ0ZQcmVmZXJlbmNlc0dl
dEFwcEludGVnZXJWYWx1ZSh0ZXN0S2V5LCB0ZXN0RG9tYWluLCBudWxscHRyKSk7CiAKICAgICBh
dXRvIGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxv
Y10gaW5pdF0pOwogICAgIFdLUmV0YWluUHRyPFdLQ29udGV4dFJlZj4gY29udGV4dCA9IGFkb3B0
V0soVGVzdFdlYktpdEFQSTo6VXRpbDo6Y3JlYXRlQ29udGV4dEZvckluamVjdGVkQnVuZGxlVGVz
dCgiSW50ZXJuYWxzSW5qZWN0ZWRCdW5kbGVUZXN0IikpOwpAQCAtODYsMTIgKzkxLDEzIEBAIFRF
U1QoV2ViS2l0LCBQcmVmZXJlbmNlQ2hhbmdlcykKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5T
KFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDMw
MCwgMzAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCkgYWRkVG9XaW5kb3c6WUVT
XSk7CiAKICAgICBhdXRvIHByZWZlcmVuY2VWYWx1ZSA9IFsmXSB7Ci0gICAgICAgIHJldHVybiBb
d2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAid2luZG93LmludGVybmFscy5y
ZWFkUHJlZmVyZW5jZUludGVnZXIoXCJjb20uYXBwbGUuY29yZW1lZGlhXCIsIFwidGVzdGtleVwi
KSJdLmludFZhbHVlOworICAgICAgICBOU1N0cmluZyAqanMgPSBbTlNTdHJpbmcgc3RyaW5nV2l0
aEZvcm1hdDpAIndpbmRvdy5pbnRlcm5hbHMucmVhZFByZWZlcmVuY2VJbnRlZ2VyKFwiJUBcIixc
IiVAXCIpIiwgKE5TU3RyaW5nICopdGVzdERvbWFpbiwgKE5TU3RyaW5nICopdGVzdEtleV07Cisg
ICAgICAgIHJldHVybiBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OmpzXS5p
bnRWYWx1ZTsKICAgICB9OwogCiAgICAgRVhQRUNUX0VRKHByZWZlcmVuY2VWYWx1ZSgpLCAxKTsK
IAotICAgIENGUHJlZmVyZW5jZXNTZXRBcHBWYWx1ZShDRlNUUigidGVzdGtleSIpLCBDRlNUUigi
MiIpLCBDRlNUUigiY29tLmFwcGxlLmNvcmVtZWRpYSIpKTsKKyAgICBDRlByZWZlcmVuY2VzU2V0
QXBwVmFsdWUodGVzdEtleSwgQ0ZTVFIoIjIiKSwgdGVzdERvbWFpbik7CiAKICAgICBFWFBFQ1Rf
RVEocHJlZmVyZW5jZVZhbHVlKCksIDIpOwogfQpAQCAtMTAwLDggKzEwNiw4IEBAIFRFU1QoV2Vi
S2l0LCBQcmVmZXJlbmNlQ2hhbmdlc0FycmF5KQogewogICAgIE5TQXJyYXkgKmFycmF5ID0gQFtA
MSwgQDIsIEAzXTsKIAotICAgIGF1dG8gdXNlckRlZmF1bHRzID0gYWRvcHROUyhbW05TVXNlckRl
ZmF1bHRzIGFsbG9jXSBpbml0V2l0aFN1aXRlTmFtZTpAImNvbS5hcHBsZS5jb3JlbWVkaWEiXSk7
Ci0gICAgW3VzZXJEZWZhdWx0cy5nZXQoKSBzZXRPYmplY3Q6YXJyYXkgZm9yS2V5OkAidGVzdGtl
eSJdOworICAgIGF1dG8gdXNlckRlZmF1bHRzID0gYWRvcHROUyhbW05TVXNlckRlZmF1bHRzIGFs
bG9jXSBpbml0V2l0aFN1aXRlTmFtZTooTlNTdHJpbmcgKil0ZXN0RG9tYWluXSk7CisgICAgW3Vz
ZXJEZWZhdWx0cy5nZXQoKSBzZXRPYmplY3Q6YXJyYXkgZm9yS2V5OihOU1N0cmluZyAqKXRlc3RL
ZXldOwogCiAgICAgYXV0byBjb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZp
Z3VyYXRpb24gYWxsb2NdIGluaXRdKTsKICAgICBXS1JldGFpblB0cjxXS0NvbnRleHRSZWY+IGNv
bnRleHQgPSBhZG9wdFdLKFRlc3RXZWJLaXRBUEk6OlV0aWw6OmNyZWF0ZUNvbnRleHRGb3JJbmpl
Y3RlZEJ1bmRsZVRlc3QoIkludGVybmFsc0luamVjdGVkQnVuZGxlVGVzdCIpKTsKQEAgLTEwOSwx
MyArMTE1LDE0IEBAIFRFU1QoV2ViS2l0LCBQcmVmZXJlbmNlQ2hhbmdlc0FycmF5KQogICAgIGF1
dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1l
Ok5TTWFrZVJlY3QoMCwgMCwgMzAwLCAzMDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbi5n
ZXQoKSBhZGRUb1dpbmRvdzpZRVNdKTsKIAogICAgIGF1dG8gcHJlZmVyZW5jZVZhbHVlID0gWyZd
IHsKLSAgICAgICAgcmV0dXJuIFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6
QCJ3aW5kb3cuaW50ZXJuYWxzLmVuY29kZWRQcmVmZXJlbmNlVmFsdWUoXCJjb20uYXBwbGUuY29y
ZW1lZGlhXCIsIFwidGVzdGtleVwiKSJdOworICAgICAgICBOU1N0cmluZyAqanMgPSBbTlNTdHJp
bmcgc3RyaW5nV2l0aEZvcm1hdDpAIndpbmRvdy5pbnRlcm5hbHMuZW5jb2RlZFByZWZlcmVuY2VW
YWx1ZShcIiVAXCIsXCIlQFwiKSIsIChOU1N0cmluZyAqKXRlc3REb21haW4sIChOU1N0cmluZyAq
KXRlc3RLZXldOworICAgICAgICByZXR1cm4gW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2
YVNjcmlwdDpqc107CiAgICAgfTsKIAogICAgIHByZWZlcmVuY2VWYWx1ZSgpOwogCiAgICAgTlNB
cnJheSAqY2hhbmdlZEFycmF5ID0gQFtAMywgQDIsIEAxXTsKLSAgICBbdXNlckRlZmF1bHRzLmdl
dCgpIHNldE9iamVjdDpjaGFuZ2VkQXJyYXkgZm9yS2V5OkAidGVzdGtleSJdOworICAgIFt1c2Vy
RGVmYXVsdHMuZ2V0KCkgc2V0T2JqZWN0OmNoYW5nZWRBcnJheSBmb3JLZXk6KE5TU3RyaW5nICop
dGVzdEtleV07CiAKICAgICBhdXRvIGVuY29kZWRTdHJpbmcgPSBwcmVmZXJlbmNlVmFsdWUoKTsK
ICAgICBhdXRvIGVuY29kZWREYXRhID0gYWRvcHROUyhbW05TRGF0YSBhbGxvY10gaW5pdFdpdGhC
YXNlNjRFbmNvZGVkU3RyaW5nOmVuY29kZWRTdHJpbmcgb3B0aW9uczowXSk7CkBAIC0xMzQsOCAr
MTQxLDggQEAgVEVTVChXZWJLaXQsIFByZWZlcmVuY2VDaGFuZ2VzRGljdGlvbmFyeQogICAgICAg
ICBAImIiIDogQDIsCiAgICAgfTsKIAotICAgIGF1dG8gdXNlckRlZmF1bHRzID0gYWRvcHROUyhb
W05TVXNlckRlZmF1bHRzIGFsbG9jXSBpbml0V2l0aFN1aXRlTmFtZTpAImNvbS5hcHBsZS5jb3Jl
bWVkaWEiXSk7Ci0gICAgW3VzZXJEZWZhdWx0cy5nZXQoKSBzZXRPYmplY3Q6ZGljdCBmb3JLZXk6
QCJ0ZXN0a2V5Il07CisgICAgYXV0byB1c2VyRGVmYXVsdHMgPSBhZG9wdE5TKFtbTlNVc2VyRGVm
YXVsdHMgYWxsb2NdIGluaXRXaXRoU3VpdGVOYW1lOihOU1N0cmluZyAqKXRlc3REb21haW5dKTsK
KyAgICBbdXNlckRlZmF1bHRzLmdldCgpIHNldE9iamVjdDpkaWN0IGZvcktleTooTlNTdHJpbmcg
Kil0ZXN0S2V5XTsKIAogICAgIGF1dG8gY29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZp
ZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CiAgICAgV0tSZXRhaW5QdHI8V0tDb250ZXh0
UmVmPiBjb250ZXh0ID0gYWRvcHRXSyhUZXN0V2ViS2l0QVBJOjpVdGlsOjpjcmVhdGVDb250ZXh0
Rm9ySW5qZWN0ZWRCdW5kbGVUZXN0KCJJbnRlcm5hbHNJbmplY3RlZEJ1bmRsZVRlc3QiKSk7CkBA
IC0xNDMsNyArMTUwLDggQEAgVEVTVChXZWJLaXQsIFByZWZlcmVuY2VDaGFuZ2VzRGljdGlvbmFy
eQogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0
V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgMzAwLCAzMDApIGNvbmZpZ3VyYXRpb246Y29uZmln
dXJhdGlvbi5nZXQoKSBhZGRUb1dpbmRvdzpZRVNdKTsKIAogICAgIGF1dG8gcHJlZmVyZW5jZVZh
bHVlID0gWyZdIHsKLSAgICAgICAgcmV0dXJuIFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0ph
dmFTY3JpcHQ6QCJ3aW5kb3cuaW50ZXJuYWxzLmVuY29kZWRQcmVmZXJlbmNlVmFsdWUoXCJjb20u
YXBwbGUuY29yZW1lZGlhXCIsIFwidGVzdGtleVwiKSJdOworICAgICAgICBOU1N0cmluZyAqanMg
PSBbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpAIndpbmRvdy5pbnRlcm5hbHMuZW5jb2RlZFBy
ZWZlcmVuY2VWYWx1ZShcIiVAXCIsXCIlQFwiKSIsIChOU1N0cmluZyAqKXRlc3REb21haW4sIChO
U1N0cmluZyAqKXRlc3RLZXldOworICAgICAgICByZXR1cm4gW3dlYlZpZXcgc3RyaW5nQnlFdmFs
dWF0aW5nSmF2YVNjcmlwdDpqc107CiAgICAgfTsKIAogICAgIHByZWZlcmVuY2VWYWx1ZSgpOwpA
QCAtMTUzLDcgKzE2MSw3IEBAIFRFU1QoV2ViS2l0LCBQcmVmZXJlbmNlQ2hhbmdlc0RpY3Rpb25h
cnkKICAgICAgICAgQCJiIiA6IEAyLAogICAgICAgICBAImMiIDogQDMsCiAgICAgfTsKLSAgICBb
dXNlckRlZmF1bHRzLmdldCgpIHNldE9iamVjdDpjaGFuZ2VkRGljdCBmb3JLZXk6QCJ0ZXN0a2V5
Il07CisgICAgW3VzZXJEZWZhdWx0cy5nZXQoKSBzZXRPYmplY3Q6Y2hhbmdlZERpY3QgZm9yS2V5
OihOU1N0cmluZyAqKXRlc3RLZXldOwogCiAgICAgYXV0byBlbmNvZGVkU3RyaW5nID0gcHJlZmVy
ZW5jZVZhbHVlKCk7CiAgICAgYXV0byBlbmNvZGVkRGF0YSA9IGFkb3B0TlMoW1tOU0RhdGEgYWxs
b2NdIGluaXRXaXRoQmFzZTY0RW5jb2RlZFN0cmluZzplbmNvZGVkU3RyaW5nIG9wdGlvbnM6MF0p
OwpAQCAtMTY5LDggKzE3Nyw4IEBAIFRFU1QoV2ViS2l0LCBQcmVmZXJlbmNlQ2hhbmdlc0RhdGEp
CiB7CiAgICAgTlNEYXRhICpkYXRhID0gW05TRGF0YSBkYXRhV2l0aEJ5dGVzOiJhYmMiIGxlbmd0
aDozXTsKIAotICAgIGF1dG8gdXNlckRlZmF1bHRzID0gYWRvcHROUyhbW05TVXNlckRlZmF1bHRz
IGFsbG9jXSBpbml0V2l0aFN1aXRlTmFtZTpAImNvbS5hcHBsZS5jb3JlbWVkaWEiXSk7Ci0gICAg
W3VzZXJEZWZhdWx0cy5nZXQoKSBzZXRPYmplY3Q6ZGF0YSBmb3JLZXk6QCJ0ZXN0a2V5Il07Cisg
ICAgYXV0byB1c2VyRGVmYXVsdHMgPSBhZG9wdE5TKFtbTlNVc2VyRGVmYXVsdHMgYWxsb2NdIGlu
aXRXaXRoU3VpdGVOYW1lOihOU1N0cmluZyAqKXRlc3REb21haW5dKTsKKyAgICBbdXNlckRlZmF1
bHRzLmdldCgpIHNldE9iamVjdDpkYXRhIGZvcktleTooTlNTdHJpbmcgKil0ZXN0S2V5XTsKIAog
ICAgIGF1dG8gY29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9u
IGFsbG9jXSBpbml0XSk7CiAgICAgV0tSZXRhaW5QdHI8V0tDb250ZXh0UmVmPiBjb250ZXh0ID0g
YWRvcHRXSyhUZXN0V2ViS2l0QVBJOjpVdGlsOjpjcmVhdGVDb250ZXh0Rm9ySW5qZWN0ZWRCdW5k
bGVUZXN0KCJJbnRlcm5hbHNJbmplY3RlZEJ1bmRsZVRlc3QiKSk7CkBAIC0xNzgsMTMgKzE4Niwx
NCBAQCBURVNUKFdlYktpdCwgUHJlZmVyZW5jZUNoYW5nZXNEYXRhKQogICAgIGF1dG8gd2ViVmll
dyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJl
Y3QoMCwgMCwgMzAwLCAzMDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbi5nZXQoKSBhZGRU
b1dpbmRvdzpZRVNdKTsKIAogICAgIGF1dG8gcHJlZmVyZW5jZVZhbHVlID0gWyZdIHsKLSAgICAg
ICAgcmV0dXJuIFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJ3aW5kb3cu
aW50ZXJuYWxzLmVuY29kZWRQcmVmZXJlbmNlVmFsdWUoXCJjb20uYXBwbGUuY29yZW1lZGlhXCIs
IFwidGVzdGtleVwiKSJdOworICAgICAgICBOU1N0cmluZyAqanMgPSBbTlNTdHJpbmcgc3RyaW5n
V2l0aEZvcm1hdDpAIndpbmRvdy5pbnRlcm5hbHMuZW5jb2RlZFByZWZlcmVuY2VWYWx1ZShcIiVA
XCIsXCIlQFwiKSIsIChOU1N0cmluZyAqKXRlc3REb21haW4sIChOU1N0cmluZyAqKXRlc3RLZXld
OworICAgICAgICByZXR1cm4gW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpq
c107CiAgICAgfTsKIAogICAgIHByZWZlcmVuY2VWYWx1ZSgpOwogCiAgICAgTlNEYXRhICpjaGFu
Z2VkRGF0YSA9IFtOU0RhdGEgZGF0YVdpdGhCeXRlczoiYWJjZCIgbGVuZ3RoOjRdOwotICAgIFt1
c2VyRGVmYXVsdHMuZ2V0KCkgc2V0T2JqZWN0OmNoYW5nZWREYXRhIGZvcktleTpAInRlc3RrZXki
XTsKKyAgICBbdXNlckRlZmF1bHRzLmdldCgpIHNldE9iamVjdDpjaGFuZ2VkRGF0YSBmb3JLZXk6
KE5TU3RyaW5nICopdGVzdEtleV07CiAKICAgICBhdXRvIGVuY29kZWRTdHJpbmcgPSBwcmVmZXJl
bmNlVmFsdWUoKTsKICAgICBhdXRvIGVuY29kZWREYXRhID0gYWRvcHROUyhbW05TRGF0YSBhbGxv
Y10gaW5pdFdpdGhCYXNlNjRFbmNvZGVkU3RyaW5nOmVuY29kZWRTdHJpbmcgb3B0aW9uczowXSk7
CkBAIC0yMDAsOCArMjA5LDggQEAgVEVTVChXZWJLaXQsIFByZWZlcmVuY2VDaGFuZ2VzRGF0ZSkK
IHsKICAgICBOU0RhdGUgKmRhdGUgPSBbTlNEYXRlIGRhdGVXaXRoVGltZUludGVydmFsU2luY2VO
b3c6MF07CiAKLSAgICBhdXRvIHVzZXJEZWZhdWx0cyA9IGFkb3B0TlMoW1tOU1VzZXJEZWZhdWx0
cyBhbGxvY10gaW5pdFdpdGhTdWl0ZU5hbWU6QCJjb20uYXBwbGUuY29yZW1lZGlhIl0pOwotICAg
IFt1c2VyRGVmYXVsdHMuZ2V0KCkgc2V0T2JqZWN0OmRhdGUgZm9yS2V5OkAidGVzdGtleSJdOwor
ICAgIGF1dG8gdXNlckRlZmF1bHRzID0gYWRvcHROUyhbW05TVXNlckRlZmF1bHRzIGFsbG9jXSBp
bml0V2l0aFN1aXRlTmFtZTooTlNTdHJpbmcgKil0ZXN0RG9tYWluXSk7CisgICAgW3VzZXJEZWZh
dWx0cy5nZXQoKSBzZXRPYmplY3Q6ZGF0ZSBmb3JLZXk6KE5TU3RyaW5nICopdGVzdEtleV07CiAK
ICAgICBhdXRvIGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlv
biBhbGxvY10gaW5pdF0pOwogICAgIFdLUmV0YWluUHRyPFdLQ29udGV4dFJlZj4gY29udGV4dCA9
IGFkb3B0V0soVGVzdFdlYktpdEFQSTo6VXRpbDo6Y3JlYXRlQ29udGV4dEZvckluamVjdGVkQnVu
ZGxlVGVzdCgiSW50ZXJuYWxzSW5qZWN0ZWRCdW5kbGVUZXN0IikpOwpAQCAtMjA5LDEzICsyMTgs
MTQgQEAgVEVTVChXZWJLaXQsIFByZWZlcmVuY2VDaGFuZ2VzRGF0ZSkKICAgICBhdXRvIHdlYlZp
ZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VS
ZWN0KDAsIDAsIDMwMCwgMzAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCkgYWRk
VG9XaW5kb3c6WUVTXSk7CiAKICAgICBhdXRvIHByZWZlcmVuY2VWYWx1ZSA9IFsmXSB7Ci0gICAg
ICAgIHJldHVybiBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAid2luZG93
LmludGVybmFscy5lbmNvZGVkUHJlZmVyZW5jZVZhbHVlKFwiY29tLmFwcGxlLmNvcmVtZWRpYVwi
LCBcInRlc3RrZXlcIikiXTsKKyAgICAgICAgTlNTdHJpbmcgKmpzID0gW05TU3RyaW5nIHN0cmlu
Z1dpdGhGb3JtYXQ6QCJ3aW5kb3cuaW50ZXJuYWxzLmVuY29kZWRQcmVmZXJlbmNlVmFsdWUoXCIl
QFwiLFwiJUBcIikiLCAoTlNTdHJpbmcgKil0ZXN0RG9tYWluLCAoTlNTdHJpbmcgKil0ZXN0S2V5
XTsKKyAgICAgICAgcmV0dXJuIFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6
anNdOwogICAgIH07CiAKICAgICBwcmVmZXJlbmNlVmFsdWUoKTsKIAogICAgIE5TRGF0ZSAqY2hh
bmdlZERhdGUgPSBbTlNEYXRlIGRhdGVXaXRoVGltZUludGVydmFsU2luY2VOb3c6MTBdOwotICAg
IFt1c2VyRGVmYXVsdHMuZ2V0KCkgc2V0T2JqZWN0OmNoYW5nZWREYXRlIGZvcktleTpAInRlc3Rr
ZXkiXTsKKyAgICBbdXNlckRlZmF1bHRzLmdldCgpIHNldE9iamVjdDpjaGFuZ2VkRGF0ZSBmb3JL
ZXk6KE5TU3RyaW5nICopdGVzdEtleV07CiAKICAgICBhdXRvIGVuY29kZWRTdHJpbmcgPSBwcmVm
ZXJlbmNlVmFsdWUoKTsKICAgICBhdXRvIGVuY29kZWREYXRhID0gYWRvcHROUyhbW05TRGF0YSBh
bGxvY10gaW5pdFdpdGhCYXNlNjRFbmNvZGVkU3RyaW5nOmVuY29kZWRTdHJpbmcgb3B0aW9uczow
XSk7CkBAIC0yMjcsNCArMjM3LDMyIEBAIFRFU1QoV2ViS2l0LCBQcmVmZXJlbmNlQ2hhbmdlc0Rh
dGUpCiAgICAgQVNTRVJUX1RSVUUoW29iamVjdCBpc0VxdWFsOmNoYW5nZWREYXRlXSk7CiB9CiAK
K3N0YXRpYyBJTVAgc2hhcmVkSW5zdGFuY2VNZXRob2RPcmlnaW5hbCA9IG5pbDsKKworc3RhdGlj
IFdLUHJlZmVyZW5jZU9ic2VydmVyICpzaGFyZWRJbnN0YW5jZU1ldGhvZE92ZXJyaWRlKGlkIHNl
bGYsIFNFTCBzZWxlY3RvcikKK3sKKyAgICBkb25lID0gdHJ1ZTsKKyAgICByZXR1cm4gd3RmQ2Fs
bElNUDxXS1ByZWZlcmVuY2VPYnNlcnZlciAqPihzaGFyZWRJbnN0YW5jZU1ldGhvZE9yaWdpbmFs
LCBzZWxmLCBzZWxlY3Rvcik7Cit9CisKK1RFU1QoV2ViS2l0LCBQcmVmZXJlbmNlT2JzZXJ2ZXJT
dGFydGVkT25BY3RpdmF0aW9uKQoreworICAgIGRvbmUgPSBmYWxzZTsKKyAgICBNZXRob2Qgc2hh
cmVkSW5zdGFuY2VNZXRob2QgPSBjbGFzc19nZXRDbGFzc01ldGhvZChvYmpjX2dldENsYXNzKCJX
S1ByZWZlcmVuY2VPYnNlcnZlciIpLCBAc2VsZWN0b3Ioc2hhcmVkSW5zdGFuY2UpKTsKKyAgICBB
U1NFUlQoc2hhcmVkSW5zdGFuY2VNZXRob2QpOworICAgIHNoYXJlZEluc3RhbmNlTWV0aG9kT3Jp
Z2luYWwgPSBtZXRob2Rfc2V0SW1wbGVtZW50YXRpb24oc2hhcmVkSW5zdGFuY2VNZXRob2QsIChJ
TVApc2hhcmVkSW5zdGFuY2VNZXRob2RPdmVycmlkZSk7CisgICAgQVNTRVJUKHNoYXJlZEluc3Rh
bmNlTWV0aG9kT3JpZ2luYWwpOworCisgICAgYXV0byBjb25maWd1cmF0aW9uID0gYWRvcHROUyhb
W1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKKyAgICBXS1JldGFpblB0cjxX
S0NvbnRleHRSZWY+IGNvbnRleHQgPSBhZG9wdFdLKFRlc3RXZWJLaXRBUEk6OlV0aWw6OmNyZWF0
ZUNvbnRleHRGb3JJbmplY3RlZEJ1bmRsZVRlc3QoIkludGVybmFsc0luamVjdGVkQnVuZGxlVGVz
dCIpKTsKKyAgICBjb25maWd1cmF0aW9uLmdldCgpLnByb2Nlc3NQb29sID0gKFdLUHJvY2Vzc1Bv
b2wgKiljb250ZXh0LmdldCgpOworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tX
ZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgMzAwLCAzMDApIGNv
bmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbi5nZXQoKSBhZGRUb1dpbmRvdzpZRVNdKTsKKworICAg
IFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkVGVzdFBhZ2VOYW1lZDpAInNpbXBsZSJdOworCisg
ICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSBwb3N0Tm90aWZpY2F0aW9u
TmFtZTpOU0FwcGxpY2F0aW9uRGlkQmVjb21lQWN0aXZlTm90aWZpY2F0aW9uIG9iamVjdDpOU0Fw
cCB1c2VySW5mbzpuaWxdOworCisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsK
K30KKwogI2VuZGlmIC8vIFdLX0hBVkVfQ19TUEkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>394147</attachid>
            <date>2020-03-20 16:25:30 -0700</date>
            <delta_ts>2020-03-24 09:36:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209244-20200320162529.patch</filename>
            <type>text/plain</type>
            <size>26516</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyNTg3ODMpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDIwLTAzLTIwICBQZXIgQXJuZSBWb2xsYW4gIDxw
dm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIEZpeCBsYXVuY2ggdGltZSByZWdy
ZXNzaW9uIHdpdGggQ0YgcHJlZnMgZGlyZWN0IG1vZGUgZW5hYmxlZAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA5MjQ0CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgUmUtZW5hYmxlIENGIHByZWZzIGRpcmVjdCBt
b2RlLgorCisgICAgICAgICogd3RmL1BsYXRmb3JtRW5hYmxlLmg6CisgICAgICAgICogd3RmL1Bs
YXRmb3JtRW5hYmxlQ29jb2EuaDoKKwogMjAyMC0wMy0yMCAgVGltIEhvcnRvbiAgPHRpbW90aHlf
aG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBVcHN0cmVhbSBhIHZhcmlldHkgb2YgQ29jb2Et
cGxhdGZvcm0gSEFWRSBhbmQgRU5BQkxFIG1hY3JvcwpJbmRleDogU291cmNlL1dURi93dGYvUGxh
dGZvcm1FbmFibGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJs
ZS5oCShyZXZpc2lvbiAyNTg3ODMpCisrKyBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJsZS5o
CSh3b3JraW5nIGNvcHkpCkBAIC01NTMsNiArNTUzLDkgQEAKICNkZWZpbmUgRU5BQkxFX01BTExP
Q19IRUFQX0JSRUFLRE9XTiAwCiAjZW5kaWYKIAorI2lmICFkZWZpbmVkKEVOQUJMRV9DRlBSRUZT
X0RJUkVDVF9NT0RFKQorI2RlZmluZSBFTkFCTEVfQ0ZQUkVGU19ESVJFQ1RfTU9ERSAwCisjZW5k
aWYKIAogCiAKQEAgLTg3MCw1ICs4NzMsMyBAQAogI2lmIEVOQUJMRShXRUJHTDIpICYmICFFTkFC
TEUoV0VCR0wpCiAjZXJyb3IgIkVOQUJMRShXRUJHTDIpIHJlcXVpcmVzIEVOQUJMRShXRUJHTCki
CiAjZW5kaWYKLQotI2RlZmluZSBFTkFCTEVfQ0ZQUkVGU19ESVJFQ1RfTU9ERSAwCkluZGV4OiBT
b3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJsZUNvY29hLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dURi93dGYvUGxhdGZvcm1FbmFibGVDb2NvYS5oCShyZXZpc2lvbiAyNTg3ODMpCisrKyBTb3Vy
Y2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJsZUNvY29hLmgJKHdvcmtpbmcgY29weSkKQEAgLTI4MCwz
ICsyODAsNyBAQAogI2lmICFkZWZpbmVkKEVOQUJMRV9UQUtFX1VOQk9VTkRFRF9ORVRXT1JLSU5H
X0FTU0VSVElPTikgJiYgKFBMQVRGT1JNKElPUykgfHwgUExBVEZPUk0oTUFDQ0FUQUxZU1QpKQog
I2RlZmluZSBFTkFCTEVfVEFLRV9VTkJPVU5ERURfTkVUV09SS0lOR19BU1NFUlRJT04gMQogI2Vu
ZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfQ0ZQUkVGU19ESVJFQ1RfTU9ERSkKKyNkZWZpbmUg
RU5BQkxFX0NGUFJFRlNfRElSRUNUX01PREUgMQorI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwkocmV2aXNp
b24gMjU4NzgzKQorKysgU291cmNlL1dlYktpdC9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAg
LTEsMyArMSwyNyBAQAorMjAyMC0wMy0yMCAgUGVyIEFybmUgVm9sbGFuICA8cHZvbGxhbkBhcHBs
ZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBGaXggbGF1bmNoIHRpbWUgcmVncmVzc2lvbiB3aXRo
IENGIHByZWZzIGRpcmVjdCBtb2RlIGVuYWJsZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIwOTI0NAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjA1
NDIxNDk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgV2hl
biBDRiBwcmVmcyBkaXJlY3QgbW9kZSB3YXMgZW5hYmxlZCBpbiBodHRwczovL3RyYWMud2Via2l0
Lm9yZy9jaGFuZ2VzZXQvMjU4MDY0L3dlYmtpdCwgaXQgaW50cm9kdWNlZAorICAgICAgICBhIHNp
Z25pZmljYW50IGxhdW5jaCB0aW1lIHJlZ3Jlc3Npb24uIFRoaXMgcGF0Y2ggYWRkcmVzc2VzIHRo
aXMgcmVncmVzc2lvbi4gVGhlIG51bWJlciBvZiBvYnNlcnZlZCBkb21haW5zCisgICAgICAgIGlz
IHJlZHVjZWQgYW5kIGRvbWFpbiBvYnNlcnZhdGlvbiBpcyBpbml0aWF0ZWQgbGF0ZXIgd2hlbiBT
YWZhcmkgaXMgZmlyc3QgYWN0aXZhdGVkLiBTd2l6emxpbmcgY29kZSBpcworICAgICAgICByZW1v
dmVkLCBzaW5jZSB0aGF0IGhhcyBhIHBlcmZvcm1hbmNlIGNvc3QgaW4gdGhlIE9iamVjdGl2ZS1D
IHJ1bnRpbWUuIE5vcm1hbCBwcmlvcml0eSBpbnN0ZWFkIG9mCisgICAgICAgIFFPU19DTEFTU19C
QUNLR1JPVU5EIGlzIHVzZWQgaW4gdGhlIHRocmVhZCB3aGljaCBzdGFydHMgdGhlIG9ic2Vydmlu
Zywgc2luY2UgdXNpbmcgYSBiYWNrZ3JvdW5kIHByaW9yaXR5CisgICAgICAgIGNsYXNzIGNhbiBs
ZWFkIHRvIHByaW9yaXR5IGludmVyc2lvbi4gRmluYWxseSwgYSBkaWN0aW9uYXJ5IGNvbXBhcmlz
b24gaXMgcmVtb3ZlZCB3aGVuIGEgbm90aWZpY2F0aW9uCisgICAgICAgIGFib3V0IGEgcHJlZmVy
ZW5jZSBjaGFuZ2UgaXMgcmVjZWl2ZWQsIHNpbmNlIHRoaXMgY2hlY2sgaXMgcmVkdW5kYW50IGFu
ZCBkb3VibGVzIHRoZSBjb3N0IG9mIHRoaXMgbWV0aG9kLgorCisgICAgICAgICogVUlQcm9jZXNz
L0NvY29hL1ByZWZlcmVuY2VPYnNlcnZlci5tbToKKyAgICAgICAgKC1bV0tQcmVmZXJlbmNlT2Jz
ZXJ2ZXIgaW5pdF0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENv
Y29hLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFs
aXplKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnJlZ2lzdGVyTm90aWZpY2F0
aW9uT2JzZXJ2ZXJzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnVucmVnaXN0
ZXJOb3RpZmljYXRpb25PYnNlcnZlcnMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNz
UG9vbC5oOgorCiAyMDIwLTAzLTIwICBEb24gT2xtc3RlYWQgIDxkb24ub2xtc3RlYWRAc29ueS5j
b20+CiAKICAgICAgICAgW0dQVVBdIEFkZCBQbGF0Zm9ybUxheWVyQ29udGFpbmVyIHRvIGhvbGQg
cG9pbnRlciB0byBQbGF0Zm9ybUxheWVyCkluZGV4OiBTb3VyY2UvV2ViS2l0L1Jlc291cmNlcy9T
YW5kYm94UHJvZmlsZXMvaW9zL2NvbS5hcHBsZS5XZWJLaXQuV2ViQ29udGVudC5zYgo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1Jlc291cmNlcy9TYW5kYm94UHJvZmlsZXMvaW9zL2NvbS5h
cHBsZS5XZWJLaXQuV2ViQ29udGVudC5zYgkocmV2aXNpb24gMjU4NzgzKQorKysgU291cmNlL1dl
YktpdC9SZXNvdXJjZXMvU2FuZGJveFByb2ZpbGVzL2lvcy9jb20uYXBwbGUuV2ViS2l0LldlYkNv
bnRlbnQuc2IJKHdvcmtpbmcgY29weSkKQEAgLTUzNCw3ICs1MzQsNiBAQAogKGFsbG93IG1hY2gt
bG9va3VwCiAgICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUubG9nZCIpCiAgICAgKGdsb2JhbC1u
YW1lICJjb20uYXBwbGUubG9nZC5ldmVudHMiKQotICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxl
LmNmcHJlZnNkLmRhZW1vbiIpCiApCiAKIChkZW55IG1hY2gtbG9va3VwICh3aXRoIHRlbGVtZXRy
eSkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAkocmV2aXNp
b24gMjU4NzgzKQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAko
d29ya2luZyBjb3B5KQpAQCAtNjExLDYgKzYxMSwxMCBAQCBwcml2YXRlOgogI2VuZGlmCiAjZW5k
aWYKIAorI2lmIEVOQUJMRShDRlBSRUZTX0RJUkVDVF9NT0RFKQorICAgIHZvaWQgc3RhcnRPYnNl
cnZpbmdQcmVmZXJlbmNlQ2hhbmdlcygpOworI2VuZGlmCisKICAgICBSZWY8QVBJOjpQcm9jZXNz
UG9vbENvbmZpZ3VyYXRpb24+IG1fY29uZmlndXJhdGlvbjsKIAogICAgIElQQzo6TWVzc2FnZVJl
Y2VpdmVyTWFwIG1fbWVzc2FnZVJlY2VpdmVyTWFwOwpAQCAtNjkxLDcgKzY5NSw2IEBAIHByaXZh
dGU6CiAjaWYgRU5BQkxFKFdFQlBST0NFU1NfV0lORE9XU0VSVkVSX0JMT0NLSU5HKQogICAgIFJl
dGFpblB0cjxOU09iamVjdD4gbV9zY3JvbGxlclN0eWxlTm90aWZpY2F0aW9uT2JzZXJ2ZXI7CiAj
ZW5kaWYKLSAgICBSZXRhaW5QdHI8TlNPYmplY3Q+IG1fYWN0aXZhdGlvbk9ic2VydmVyOwogICAg
IFJldGFpblB0cjxOU09iamVjdD4gbV9kZWFjdGl2YXRpb25PYnNlcnZlcjsKIAogICAgIHN0ZDo6
dW5pcXVlX3B0cjxIaWdoUGVyZm9ybWFuY2VHcmFwaGljc1VzYWdlU2FtcGxlcj4gbV9oaWdoUGVy
Zm9ybWFuY2VHcmFwaGljc1VzYWdlU2FtcGxlcjsKQEAgLTY5OSw2ICs3MDIsNyBAQCBwcml2YXRl
OgogI2VuZGlmCiAKICNpZiBQTEFURk9STShDT0NPQSkKKyAgICBSZXRhaW5QdHI8TlNPYmplY3Q+
IG1fYWN0aXZhdGlvbk9ic2VydmVyOwogICAgIFJldGFpblB0cjxOU09iamVjdD4gbV9hY2Nlc3Np
YmlsaXR5RW5hYmxlZE9ic2VydmVyOwogI2VuZGlmCiAKQEAgLTgwMiwxMCArODA2LDYgQEAgcHJp
dmF0ZToKICAgICBib29sIG1faXNEZWxheWVkV2ViUHJvY2Vzc0xhdW5jaERpc2FibGVkIHsgZmFs
c2UgfTsKICNlbmRpZgogICAgIGJvb2wgbV91c2VTZXBhcmF0ZVNlcnZpY2VXb3JrZXJQcm9jZXNz
IHsgZmFsc2UgfTsKLQotI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIFJldGFpblB0cjxXS1ByZWZl
cmVuY2VPYnNlcnZlcj4gbV9wcmVmZXJlbmNlT2JzZXJ2ZXI7Ci0jZW5kaWYKIH07CiAKIHRlbXBs
YXRlPHR5cGVuYW1lIFQ+CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9QcmVm
ZXJlbmNlT2JzZXJ2ZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9D
b2NvYS9QcmVmZXJlbmNlT2JzZXJ2ZXIuaAkocmV2aXNpb24gMjU4NzgzKQorKysgU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvUHJlZmVyZW5jZU9ic2VydmVyLmgJKHdvcmtpbmcgY29weSkK
QEAgLTQ2LDYgKzQ2LDUgQEAgX19hdHRyaWJ1dGVfXygodmlzaWJpbGl0eSgiZGVmYXVsdCIpKSkK
ICAgICBWZWN0b3I8UmV0YWluUHRyPFdLVXNlckRlZmF1bHRzPj4gbV91c2VyRGVmYXVsdHM7CiB9
CiArIChpZClzaGFyZWRJbnN0YW5jZTsKLSsgKHZvaWQpc3dpenpsZVJlZ2lzdGVyRGVmYXVsdHM7
CiAtICh2b2lkKXByZWZlcmVuY2VEaWRDaGFuZ2U6KE5TU3RyaW5nICopZG9tYWluIGtleTooTlNT
dHJpbmcgKilrZXkgZW5jb2RlZFZhbHVlOihOU1N0cmluZyAqKWVuY29kZWRWYWx1ZTsKIEBlbmQK
SW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1ByZWZlcmVuY2VPYnNlcnZlci5t
bQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9QcmVmZXJlbmNl
T2JzZXJ2ZXIubW0JKHJldmlzaW9uIDI1ODc4MykKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0NvY29hL1ByZWZlcmVuY2VPYnNlcnZlci5tbQkod29ya2luZyBjb3B5KQpAQCAtMjgsMzEgKzI4
LDEyIEBACiAKICNpbXBvcnQgIldlYlByb2Nlc3NQb29sLmgiCiAKLSNpbXBvcnQgPHd0Zi9PYmpD
UnVudGltZUV4dHJhcy5oPgotCi1zdGF0aWMgSU1QIHJlZ2lzdGVyRGVmYXVsdHNPcmlnaW5hbCA9
IG5pbDsKLXN0YXRpYyBib29sIHJlZ2lzdGVyaW5nRGVmYXVsdHMgPSBmYWxzZTsKLQotc3RhdGlj
IHZvaWQgcmVnaXN0ZXJEZWZhdWx0c092ZXJyaWRlKGlkIHNlbGYsIFNFTCBzZWxlY3RvciwgTlNE
aWN0aW9uYXJ5PE5TU3RyaW5nICosIGlkPiAqZGljdGlvbmFyeSkKLXsKLSAgICByZWdpc3Rlcmlu
Z0RlZmF1bHRzID0gdHJ1ZTsKLSAgICBpZiAocmVnaXN0ZXJEZWZhdWx0c09yaWdpbmFsKQotICAg
ICAgICB3dGZDYWxsSU1QPHZvaWQ+KHJlZ2lzdGVyRGVmYXVsdHNPcmlnaW5hbCwgc2VsZiwgc2Vs
ZWN0b3IsIGRpY3Rpb25hcnkpOwotICAgIHJlZ2lzdGVyaW5nRGVmYXVsdHMgPSBmYWxzZTsKLX0K
LQogQGltcGxlbWVudGF0aW9uIFdLVXNlckRlZmF1bHRzCiAKIC0gKHZvaWQpX25vdGlmeU9ic2Vy
dmVyc09mQ2hhbmdlRnJvbVZhbHVlc0ZvcktleXM6KE5TRGljdGlvbmFyeTxOU1N0cmluZyAqLCBp
ZD4gKilvbGRWYWx1ZXMgdG9WYWx1ZXNGb3JLZXlzOihOU0RpY3Rpb25hcnk8TlNTdHJpbmcgKiwg
aWQ+ICopbmV3VmFsdWVzCiB7Ci0gICAgaWYgKHJlZ2lzdGVyaW5nRGVmYXVsdHMpCi0gICAgICAg
IHJldHVybjsKLQogICAgIFtzdXBlciBfbm90aWZ5T2JzZXJ2ZXJzT2ZDaGFuZ2VGcm9tVmFsdWVz
Rm9yS2V5czpvbGRWYWx1ZXMgdG9WYWx1ZXNGb3JLZXlzOm5ld1ZhbHVlc107CiAKLSAgICBpZiAo
W29sZFZhbHVlcyBpc0VxdWFsVG9EaWN0aW9uYXJ5Om5ld1ZhbHVlc10pCi0gICAgICAgIHJldHVy
bjsKLQogICAgIGZvciAoTlNTdHJpbmcgKmtleSBpbiBvbGRWYWx1ZXMpIHsKICAgICAgICAgaWQg
b2xkVmFsdWUgPSBvbGRWYWx1ZXNba2V5XTsKICAgICAgICAgaWQgbmV3VmFsdWUgPSBuZXdWYWx1
ZXNba2V5XTsKQEAgLTEwMSwxMDMgKzgyLDMzIEBAICsgKGlkKXNoYXJlZEluc3RhbmNlCiAgICAg
cmV0dXJuIGluc3RhbmNlOwogfQogCi0rICh2b2lkKXN3aXp6bGVSZWdpc3RlckRlZmF1bHRzCi17
Ci0gICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIG9uY2VGbGFnOwotICAgIHN0ZDo6Y2FsbF9vbmNl
KG9uY2VGbGFnLCBbXSB7Ci0gICAgICAgIE1ldGhvZCByZWdpc3RlckRlZmF1bHRzTWV0aG9kID0g
Y2xhc3NfZ2V0SW5zdGFuY2VNZXRob2Qob2JqY19nZXRDbGFzcygiTlNVc2VyRGVmYXVsdHMiKSwg
QHNlbGVjdG9yKHJlZ2lzdGVyRGVmYXVsdHM6KSk7Ci0gICAgICAgIHJlZ2lzdGVyRGVmYXVsdHNP
cmlnaW5hbCA9IG1ldGhvZF9zZXRJbXBsZW1lbnRhdGlvbihyZWdpc3RlckRlZmF1bHRzTWV0aG9k
LCAoSU1QKXJlZ2lzdGVyRGVmYXVsdHNPdmVycmlkZSk7Ci0gICAgfSk7Ci19Ci0KIC0gKGluc3Rh
bmNldHlwZSlpbml0CiB7CiAgICAgc3RkOjppbml0aWFsaXplcl9saXN0PE5TU3RyaW5nKj4gZG9t
YWlucyA9IHsKLSAgICAgICAgQCJjb20uYXBwbGUuQWNjZXNzaWJpbGl0eSIsCiAjaWYgUExBVEZP
Uk0oSU9TX0ZBTUlMWSkKKyAgICAgICAgQCJjb20uYXBwbGUuQWNjZXNzaWJpbGl0eSIsCiAgICAg
ICAgIEAiY29tLmFwcGxlLkFkTGliIiwKLSAgICAgICAgQCJjb20uYXBwbGUuQ0ZOZXR3b3JrIiwK
LSAgICAgICAgQCJjb20uYXBwbGUuRW1vamlQcmVmZXJlbmNlcyIsCi0gICAgICAgIEAiY29tLmFw
cGxlLkZvbnRQYXJzZXIiLAotICAgICAgICBAImNvbS5hcHBsZS5JbWFnZUlPIiwKLSAgICAgICAg
QCJjb20uYXBwbGUuSW5wdXRNb2RlUHJlZmVyZW5jZXMiLAotI2Vsc2UKLSAgICAgICAgQCJjb20u
YXBwbGUuQVRTIiwKLSAgICAgICAgQCJjb20uYXBwbGUuQ29yZUdyYXBoaWNzIiwKLSAgICAgICAg
QCJjb20uYXBwbGUuRG93bmxvYWRBc3Nlc3NtZW50IiwKLSAgICAgICAgQCJjb20uYXBwbGUuSElU
b29sYm94IiwKLSNlbmRpZgotICAgICAgICBAImNvbS5hcHBsZS5MYXVuY2hTZXJ2aWNlcyIsCi0j
aWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICAgICAgQCJjb20uYXBwbGUuTWV0YWwiLAotICAg
ICAgICBAImNvbS5hcHBsZS5Nb2JpbGVBc3NldCIsCiAgICAgICAgIEAiY29tLmFwcGxlLlByZWZl
cmVuY2VzIiwKLSAgICAgICAgQCJjb20uYXBwbGUuU3BlYWtTZWxlY3Rpb24iLAogICAgICAgICBA
ImNvbS5hcHBsZS5VSUtpdCIsCi0gICAgICAgIEAiY29tLmFwcGxlLlZvaWNlT3ZlclRvdWNoIiwK
LSNlbHNlCi0gICAgICAgIEAiY29tLmFwcGxlLk11bHRpdG91Y2hTdXBwb3J0IgotICAgICAgICBA
ImNvbS5hcHBsZS5TZXJ2aWNlc01lbnUuU2VydmljZXMiCi0gICAgICAgIEAiY29tLmFwcGxlLlZp
ZXdCcmlkZ2UiCi0jZW5kaWYKLSAgICAgICAgQCJjb20uYXBwbGUuV2ViRm91bmRhdGlvbiIsCi0j
aWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICAgICAgQCJjb20uYXBwbGUuV2ViS2l0LldlYkNv
bnRlbnQiLAotICAgICAgICBAImNvbS5hcHBsZS5XZWJVSSIsCi0gICAgICAgIEAiY29tLmFwcGxl
LmFpcnBsYXkiLAotICAgICAgICBAImNvbS5hcHBsZS5hcHBsZWpwZWciLAotICAgICAgICBAImNv
bS5hcHBsZS5hdWRpby52aXJ0dWFsYXVkaW8iLAogICAgICAgICBAImNvbS5hcHBsZS5hdmZhdWRp
byIsCi0jZW5kaWYKLSAgICAgICAgQCJjb20uYXBwbGUuYXZmb3VuZGF0aW9uIiwKLSAgICAgICAg
QCJjb20uYXBwbGUuYXZmb3VuZGF0aW9uLmZyZWNlbnRzIiwKLSAgICAgICAgQCJjb20uYXBwbGUu
YXZmb3VuZGF0aW9uLnZpZGVvcGVyZm9ybWFuY2VodWQiLAotI2lmIFBMQVRGT1JNKElPU19GQU1J
TFkpCi0gICAgICAgIEAiY29tLmFwcGxlLmF2a2l0IiwKLSAgICAgICAgQCJjb20uYXBwbGUuY29y
ZWFuaW1hdGlvbiIsCi0gICAgICAgIEAiY29tLmFwcGxlLmNvcmVhdWRpbyIsCi0jZW5kaWYKLSAg
ICAgICAgQCJjb20uYXBwbGUuY29yZW1lZGlhIiwKLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQot
ICAgICAgICBAImNvbS5hcHBsZS5jb3JldmlkZW8iLAotICAgICAgICBAImNvbS5hcHBsZS5kYSIs
Ci0gICAgICAgIEAiY29tLmFwcGxlLmhhbmd0cmFjZXIiLAotICAgICAgICBAImNvbS5hcHBsZS5p
bmRpZ28iLAotICAgICAgICBAImNvbS5hcHBsZS5pb2tpdC5JT01vYmlsZUdyYXBoaWNzRmFtaWx5
IiwKICAgICAgICAgQCJjb20uYXBwbGUuaXR1bmVzc3RvcmVkIiwKLSAgICAgICAgQCJjb20uYXBw
bGUua2V5Ym9hcmQiLAotI2Vsc2UKLSAgICAgICAgQCJjb20uYXBwbGUuY3J5cHRvIiwKLSAgICAg
ICAgQCJjb20uYXBwbGUuZHJpdmVyLkFwcGxlQmx1ZXRvb3RoTXVsdGl0b3VjaC5tb3VzZSIsCi0g
ICAgICAgIEAiY29tLmFwcGxlLmRyaXZlci5BcHBsZUJsdWV0b290aE11bHRpdG91Y2gudHJhY2tw
YWQiLAotICAgICAgICBAImNvbS5hcHBsZS5kcml2ZXIuQXBwbGVISURNb3VzZSIKLSNlbmRpZgot
ICAgICAgICBAImNvbS5hcHBsZS5sb29rdXAuc2hhcmVkIiwKLSAgICAgICAgQCJjb20uYXBwbGUu
bWVkaWFhY2Nlc3NpYmlsaXR5IiwKLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgICAgICBA
ImNvbS5hcHBsZS5tZWRpYWFjY2Vzc2liaWxpdHkucHVibGljIiwKICAgICAgICAgQCJjb20uYXBw
bGUubWVkaWFyZW1vdGUiLAotICAgICAgICBAImNvbS5hcHBsZS5tb2JpbGVpcG9kIiwKLSAgICAg
ICAgQCJjb20uYXBwbGUubXQiLAotI2Vsc2UKLSAgICAgICAgQCJjb20uYXBwbGUubmV0d29ya0Nv
bm5lY3QiCi0jZW5kaWYKLSAgICAgICAgQCJjb20uYXBwbGUub3BlbmdsIiwKLSNpZiBQTEFURk9S
TShJT1NfRkFNSUxZKQogICAgICAgICBAImNvbS5hcHBsZS5wcmVmZXJlbmNlcy5zb3VuZHMiLAot
ICAgICAgICBAImNvbS5hcHBsZS5zZWN1cml0eSIsCiAgICAgICAgIEAiY29tLmFwcGxlLnZvaWNl
c2VydmljZXMiLAotICAgICAgICBAImNvbS5hcHBsZS52b2ljZXNlcnZpY2VzLmxvZ2dpbmciLAor
ICAgICAgICBAImtDRlByZWZlcmVuY2VzQW55QXBwbGljYXRpb24iLAogI2Vsc2UKKyAgICAgICAg
QCJjb20uYXBwbGUuQ29yZUdyYXBoaWNzIiwKKyAgICAgICAgQCJjb20uYXBwbGUuSElUb29sYm94
IiwKKyAgICAgICAgQCJjb20uYXBwbGUuU2VydmljZXNNZW51LlNlcnZpY2VzIiwKKyAgICAgICAg
QCJjb20uYXBwbGUuVmlld0JyaWRnZSIsCisgICAgICAgIEAiY29tLmFwcGxlLmF2Zm91bmRhdGlv
biIsCisgICAgICAgIEAiY29tLmFwcGxlLmF2Zm91bmRhdGlvbi52aWRlb3BlcmZvcm1hbmNlaHVk
IiwKKyAgICAgICAgQCJjb20uYXBwbGUuZHJpdmVyLkFwcGxlQmx1ZXRvb3RoTXVsdGl0b3VjaC5t
b3VzZSIsCisgICAgICAgIEAiY29tLmFwcGxlLmRyaXZlci5BcHBsZUJsdWV0b290aE11bHRpdG91
Y2gudHJhY2twYWQiLAorICAgICAgICBAImNvbS5hcHBsZS5tZWRpYWFjY2Vzc2liaWxpdHkiLAog
ICAgICAgICBAImNvbS5hcHBsZS5zcGVlY2gudm9pY2UucHJlZnMiLAotICAgICAgICBAImNvbS5h
cHBsZS5zeXN0ZW1zb3VuZCIsCiAgICAgICAgIEAiY29tLmFwcGxlLnVuaXZlcnNhbGFjY2VzcyIs
Ci0gICAgICAgIEAiY29tLm52aWRpYS5PcGVuR0wiLAotICAgICAgICBAImVkdS5taXQuS2VyYmVy
b3MiLAotI2VuZGlmCiAgICAgICAgIEAia0NGUHJlZmVyZW5jZXNBbnlBcHBsaWNhdGlvbiIsCi0j
aWYgIVBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgICAgIEAicGJzIiwKICNlbmRpZgogICAgIH07
CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29j
b2EubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJv
Y2Vzc1Bvb2xDb2NvYS5tbQkocmV2aXNpb24gMjU4NzgzKQorKysgU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQkod29ya2luZyBjb3B5KQpAQCAtMTcz
LDE0ICsxNzMsNiBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemUoCiAg
ICAgICAgIGluc3RhbGxNZW1vcnlQcmVzc3VyZUhhbmRsZXIoKTsKIAogICAgIHNldExlZ2FjeUN1
c3RvbVByb3RvY29sTWFuYWdlckNsaWVudChtYWtlVW5pcXVlPExlZ2FjeUN1c3RvbVByb3RvY29s
TWFuYWdlckNsaWVudD4oKSk7Ci0KLSNpZiBFTkFCTEUoQ0ZQUkVGU19ESVJFQ1RfTU9ERSkKLSAg
ICBbV0tQcmVmZXJlbmNlT2JzZXJ2ZXIgc3dpenpsZVJlZ2lzdGVyRGVmYXVsdHNdOwotICAgIGRp
c3BhdGNoX2FzeW5jKGRpc3BhdGNoX2dldF9nbG9iYWxfcXVldWUoUU9TX0NMQVNTX0JBQ0tHUk9V
TkQsIDApLCBeewotICAgICAgICAvLyBTdGFydCBvYnNlcnZpbmcgcHJlZmVyZW5jZSBjaGFuZ2Vz
LgotICAgICAgICBbV0tQcmVmZXJlbmNlT2JzZXJ2ZXIgc2hhcmVkSW5zdGFuY2VdOwotICAgIH0p
OwotI2VuZGlmCiB9CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQpAQCAtNjA4LDYgKzYwMCwx
NiBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpyZW1vdGVXZWJJbnNwZWN0b3JFCiB9CiAjZW5kaWYK
IAorI2lmIEVOQUJMRShDRlBSRUZTX0RJUkVDVF9NT0RFKQordm9pZCBXZWJQcm9jZXNzUG9vbDo6
c3RhcnRPYnNlcnZpbmdQcmVmZXJlbmNlQ2hhbmdlcygpCit7CisgICAgZGlzcGF0Y2hfYXN5bmMo
ZGlzcGF0Y2hfZ2V0X2dsb2JhbF9xdWV1ZShESVNQQVRDSF9RVUVVRV9QUklPUklUWV9ERUZBVUxU
LCAwKSwgXnsKKyAgICAgICAgLy8gU3RhcnQgb2JzZXJ2aW5nIHByZWZlcmVuY2UgY2hhbmdlcy4K
KyAgICAgICAgW1dLUHJlZmVyZW5jZU9ic2VydmVyIHNoYXJlZEluc3RhbmNlXTsKKyAgICB9KTsK
K30KKyNlbmRpZgorCiB2b2lkIFdlYlByb2Nlc3NQb29sOjpyZWdpc3Rlck5vdGlmaWNhdGlvbk9i
c2VydmVycygpCiB7CiAjaWYgIVBMQVRGT1JNKElPU19GQU1JTFkpCkBAIC02NTIsNiArNjU0LDkg
QEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6cmVnaXN0ZXJOb3RpZmljYXRpbwogI2VuZGlmCiAKICAg
ICBtX2FjdGl2YXRpb25PYnNlcnZlciA9IFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENl
bnRlcl0gYWRkT2JzZXJ2ZXJGb3JOYW1lOk5TQXBwbGljYXRpb25EaWRCZWNvbWVBY3RpdmVOb3Rp
ZmljYXRpb24gb2JqZWN0Ok5TQXBwIHF1ZXVlOltOU09wZXJhdGlvblF1ZXVlIGN1cnJlbnRRdWV1
ZV0gdXNpbmdCbG9jazpeKE5TTm90aWZpY2F0aW9uICpub3RpZmljYXRpb24pIHsKKyNpZiBFTkFC
TEUoQ0ZQUkVGU19ESVJFQ1RfTU9ERSkKKyAgICAgICAgc3RhcnRPYnNlcnZpbmdQcmVmZXJlbmNl
Q2hhbmdlcygpOworI2VuZGlmCiAgICAgICAgIHNldEFwcGxpY2F0aW9uSXNBY3RpdmUodHJ1ZSk7
CiAgICAgfV07CiAKQEAgLTY3Myw2ICs2NzgsMTEgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6cmVn
aXN0ZXJOb3RpZmljYXRpbwogICAgICAgICAgICAgbV9wcm9jZXNzZXNbaV0tPnVuYmxvY2tBY2Nl
c3NpYmlsaXR5U2VydmVySWZOZWVkZWQoKTsKICAgICAgICAgfQogICAgIH1dOworI2lmIEVOQUJM
RShDRlBSRUZTX0RJUkVDVF9NT0RFKQorICAgIG1fYWN0aXZhdGlvbk9ic2VydmVyID0gW1tOU05v
dGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSBhZGRPYnNlcnZlckZvck5hbWU6QCJVSUFw
cGxpY2F0aW9uRGlkQmVjb21lQWN0aXZlTm90aWZpY2F0aW9uIiBvYmplY3Q6bmlsIHF1ZXVlOltO
U09wZXJhdGlvblF1ZXVlIGN1cnJlbnRRdWV1ZV0gdXNpbmdCbG9jazpeKE5TTm90aWZpY2F0aW9u
ICpub3RpZmljYXRpb24pIHsKKyAgICAgICAgc3RhcnRPYnNlcnZpbmdQcmVmZXJlbmNlQ2hhbmdl
cygpOworICAgIH1dOworI2VuZGlmCiAjZW5kaWYgLy8gIVBMQVRGT1JNKElPU19GQU1JTFkpCiB9
CiAKQEAgLTY4OCw3ICs2OTgsNiBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjp1bnJlZ2lzdGVyTm90
aWZpY2F0CiAjaWYgRU5BQkxFKFdFQlBST0NFU1NfV0lORE9XU0VSVkVSX0JMT0NLSU5HKQogICAg
IFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gcmVtb3ZlT2JzZXJ2ZXI6bV9z
Y3JvbGxlclN0eWxlTm90aWZpY2F0aW9uT2JzZXJ2ZXIuZ2V0KCldOwogI2VuZGlmCi0gICAgW1tO
U05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSByZW1vdmVPYnNlcnZlcjptX2FjdGl2
YXRpb25PYnNlcnZlci5nZXQoKV07CiAgICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0
Q2VudGVyXSByZW1vdmVPYnNlcnZlcjptX2RlYWN0aXZhdGlvbk9ic2VydmVyLmdldCgpXTsKICNl
bGlmICFQTEFURk9STShNQUNDQVRBTFlTVCkKICAgICBDRk5vdGlmaWNhdGlvbkNlbnRlclJlbW92
ZU9ic2VydmVyKENGTm90aWZpY2F0aW9uQ2VudGVyR2V0RGFyd2luTm90aWZ5Q2VudGVyKCksIHRo
aXMsIHN0YXRpY19jYXN0PENGU3RyaW5nUmVmPihVSUJhY2tsaWdodExldmVsQ2hhbmdlZE5vdGlm
aWNhdGlvbikgLCBudWxscHRyKTsKQEAgLTY5OCw2ICs3MDcsNyBAQCB2b2lkIFdlYlByb2Nlc3NQ
b29sOjp1bnJlZ2lzdGVyTm90aWZpY2F0CiAjZW5kaWYKICNlbmRpZiAvLyBQTEFURk9STShJT1Mp
CiAgICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSByZW1vdmVPYnNlcnZl
cjptX2FjY2Vzc2liaWxpdHlFbmFibGVkT2JzZXJ2ZXIuZ2V0KCldOworICAgIFtbTlNOb3RpZmlj
YXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gcmVtb3ZlT2JzZXJ2ZXI6bV9hY3RpdmF0aW9uT2Jz
ZXJ2ZXIuZ2V0KCldOwogI2VuZGlmIC8vICFQTEFURk9STShJT1NfRkFNSUxZKQogfQogCkluZGV4
OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29tLmFwcGxlLldlYlByb2Nlc3Muc2IuaW4KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvbS5hcHBsZS5XZWJQcm9jZXNz
LnNiLmluCShyZXZpc2lvbiAyNTg3ODMpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29t
LmFwcGxlLldlYlByb2Nlc3Muc2IuaW4JKHdvcmtpbmcgY29weSkKQEAgLTY3Nyw3ICs2NzcsNiBA
QAogICAgICh3aXRoIHJlcG9ydCkgKHdpdGggdGVsZW1ldHJ5KQogI2VuZGlmCiAgICAgKGdsb2Jh
bC1uYW1lICJjb20uYXBwbGUuUG93ZXJNYW5hZ2VtZW50LmNvbnRyb2wiKQotICAgIChnbG9iYWwt
bmFtZSAiY29tLmFwcGxlLmNmcHJlZnNkLmRhZW1vbiIpCiAgICAgKGdsb2JhbC1uYW1lICJjb20u
YXBwbGUuY29yZXNlcnZpY2VzLmxhdW5jaHNlcnZpY2VzZCIpCiAgICAgKGdsb2JhbC1uYW1lICJj
b20uYXBwbGUubHNkLm1hcGRiIikKICAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS50cnVzdGQu
YWdlbnQiKQpJbmRleDogVG9vbHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0NoYW5n
ZUxvZwkocmV2aXNpb24gMjU4NzkwKQorKysgVG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDMgKzEsMTQgQEAKKzIwMjAtMDMtMjAgIFBlciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5A
YXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gRml4IGxhdW5jaCB0aW1lIHJlZ3Jlc3Npb24g
d2l0aCBDRiBwcmVmcyBkaXJlY3QgbW9kZSBlbmFibGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDkyNDQKKworICAgICAgICBSZXZpZXdlZCBieSBE
YXJpbiBBZGxlci4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1ByZWZl
cmVuY2VDaGFuZ2VzLm1tOgorICAgICAgICAoVEVTVCk6CisgICAgICAgIChzaGFyZWRJbnN0YW5j
ZU1ldGhvZE92ZXJyaWRlKToKKwogMjAyMC0wMy0yMCAgQWFrYXNoIEphaW4gIDxhYWthc2hfamFp
bkBhcHBsZS5jb20+CiAKICAgICAgICAgY29tbWl0LXF1ZXVlIHNob3VsZCBza2lwIGJ1aWxkaW5n
IGFuZCB0ZXN0aW5nIGlmIHBhdGNoIGFscmVhZHkgcGFzc2VkIHRlc3RzIG9uIG1hYy13azIgcXVl
dWUKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1ByZWZlcmVuY2VDaGFu
Z2VzLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1By
ZWZlcmVuY2VDaGFuZ2VzLm1tCShyZXZpc2lvbiAyNTg3ODMpCisrKyBUb29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdC9QcmVmZXJlbmNlQ2hhbmdlcy5tbQkod29ya2luZyBjb3B5KQpAQCAt
MzEsNiArMzEsOCBAQAogI2ltcG9ydCAiVGVzdFdLV2ViVmlldy5oIgogI2ltcG9ydCA8V2ViS2l0
L1ByZWZlcmVuY2VPYnNlcnZlci5oPgogCisjaW1wb3J0IDx3dGYvT2JqQ1J1bnRpbWVFeHRyYXMu
aD4KKwogc3RhdGljIGJvb2wgZG9uZSA9IGZhbHNlOwogCiBAaW50ZXJmYWNlIFdLVGVzdFByZWZl
cmVuY2VPYnNlcnZlciA6IFdLUHJlZmVyZW5jZU9ic2VydmVyCkBAIC00NCwxNSArNDYsMTggQEAg
LSAodm9pZClwcmVmZXJlbmNlRGlkQ2hhbmdlOihOU1N0cmluZyAqKQogfQogQGVuZAogCitzdGF0
aWMgY29uc3QgQ0ZTdHJpbmdSZWYgdGVzdEtleSA9IENGU1RSKCJ0ZXN0a2V5Iik7CitzdGF0aWMg
Y29uc3QgQ0ZTdHJpbmdSZWYgdGVzdERvbWFpbiA9IENGU1RSKCJrQ0ZQcmVmZXJlbmNlc0FueUFw
cGxpY2F0aW9uIik7CisKIFRFU1QoV2ViS2l0LCBQcmVmZXJlbmNlT2JzZXJ2ZXIpCiB7CiAgICAg
ZG9uZSA9IGZhbHNlOwogCi0gICAgQ0ZQcmVmZXJlbmNlc1NldEFwcFZhbHVlKENGU1RSKCJ0ZXN0
a2V5IiksIENGU1RSKCIxIiksIENGU1RSKCJjb20uYXBwbGUuY29yZW1lZGlhIikpOworICAgIENG
UHJlZmVyZW5jZXNTZXRBcHBWYWx1ZSh0ZXN0S2V5LCBDRlNUUigiMSIpLCB0ZXN0RG9tYWluKTsK
IAogICAgIGF1dG8gb2JzZXJ2ZXIgPSBhZG9wdE5TKFtbV0tUZXN0UHJlZmVyZW5jZU9ic2VydmVy
IGFsbG9jXSBpbml0XSk7CiAKLSAgICBDRlByZWZlcmVuY2VzU2V0QXBwVmFsdWUoQ0ZTVFIoInRl
c3RrZXkiKSwgQ0ZTVFIoIjIiKSwgQ0ZTVFIoImNvbS5hcHBsZS5jb3JlbWVkaWEiKSk7CisgICAg
Q0ZQcmVmZXJlbmNlc1NldEFwcFZhbHVlKHRlc3RLZXksIENGU1RSKCIyIiksIHRlc3REb21haW4p
OwogCiAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKIH0KQEAgLTYzLDIyICs2
OCwyMiBAQCBURVNUKFdlYktpdCwgUHJlZmVyZW5jZU9ic2VydmVyQXJyYXkpCiAKICAgICBOU0Fy
cmF5ICphcnJheSA9IEBbQDEsIEAyLCBAM107CiAKLSAgICBhdXRvIHVzZXJEZWZhdWx0cyA9IGFk
b3B0TlMoW1tOU1VzZXJEZWZhdWx0cyBhbGxvY10gaW5pdFdpdGhTdWl0ZU5hbWU6QCJjb20uYXBw
bGUuY29yZW1lZGlhIl0pOwotICAgIFt1c2VyRGVmYXVsdHMuZ2V0KCkgc2V0T2JqZWN0OmFycmF5
IGZvcktleTpAInRlc3RrZXkiXTsKKyAgICBhdXRvIHVzZXJEZWZhdWx0cyA9IGFkb3B0TlMoW1tO
U1VzZXJEZWZhdWx0cyBhbGxvY10gaW5pdFdpdGhTdWl0ZU5hbWU6KE5TU3RyaW5nICopdGVzdERv
bWFpbl0pOworICAgIFt1c2VyRGVmYXVsdHMuZ2V0KCkgc2V0T2JqZWN0OmFycmF5IGZvcktleToo
TlNTdHJpbmcgKil0ZXN0S2V5XTsKIAogICAgIGF1dG8gb2JzZXJ2ZXIgPSBhZG9wdE5TKFtbV0tU
ZXN0UHJlZmVyZW5jZU9ic2VydmVyIGFsbG9jXSBpbml0XSk7CiAKICAgICBOU0FycmF5ICpjaGFu
Z2VkQXJyYXkgPSBAW0AzLCBAMiwgQDFdOwotICAgIFt1c2VyRGVmYXVsdHMuZ2V0KCkgc2V0T2Jq
ZWN0OmNoYW5nZWRBcnJheSBmb3JLZXk6QCJ0ZXN0a2V5Il07CisgICAgW3VzZXJEZWZhdWx0cy5n
ZXQoKSBzZXRPYmplY3Q6Y2hhbmdlZEFycmF5IGZvcktleTooTlNTdHJpbmcgKil0ZXN0S2V5XTsK
IAogICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CiB9CiAKIFRFU1QoV2ViS2l0
LCBQcmVmZXJlbmNlQ2hhbmdlcykKIHsKLSAgICBDRlByZWZlcmVuY2VzU2V0QXBwVmFsdWUoQ0ZT
VFIoInRlc3RrZXkiKSwgQ0ZTVFIoIjEiKSwgQ0ZTVFIoImNvbS5hcHBsZS5jb3JlbWVkaWEiKSk7
CisgICAgQ0ZQcmVmZXJlbmNlc1NldEFwcFZhbHVlKHRlc3RLZXksIENGU1RSKCIxIiksIHRlc3RE
b21haW4pOwogCi0gICAgRVhQRUNUX0VRKDEsIENGUHJlZmVyZW5jZXNHZXRBcHBJbnRlZ2VyVmFs
dWUoQ0ZTVFIoInRlc3RrZXkiKSwgQ0ZTVFIoImNvbS5hcHBsZS5jb3JlbWVkaWEiKSwgbnVsbHB0
cikpOworICAgIEVYUEVDVF9FUSgxLCBDRlByZWZlcmVuY2VzR2V0QXBwSW50ZWdlclZhbHVlKHRl
c3RLZXksIHRlc3REb21haW4sIG51bGxwdHIpKTsKIAogICAgIGF1dG8gY29uZmlndXJhdGlvbiA9
IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CiAgICAgV0tS
ZXRhaW5QdHI8V0tDb250ZXh0UmVmPiBjb250ZXh0ID0gYWRvcHRXSyhUZXN0V2ViS2l0QVBJOjpV
dGlsOjpjcmVhdGVDb250ZXh0Rm9ySW5qZWN0ZWRCdW5kbGVUZXN0KCJJbnRlcm5hbHNJbmplY3Rl
ZEJ1bmRsZVRlc3QiKSk7CkBAIC04NiwxMiArOTEsMTMgQEAgVEVTVChXZWJLaXQsIFByZWZlcmVu
Y2VDaGFuZ2VzKQogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFs
bG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgMzAwLCAzMDApIGNvbmZpZ3VyYXRp
b246Y29uZmlndXJhdGlvbi5nZXQoKSBhZGRUb1dpbmRvdzpZRVNdKTsKIAogICAgIGF1dG8gcHJl
ZmVyZW5jZVZhbHVlID0gWyZdIHsKLSAgICAgICAgcmV0dXJuIFt3ZWJWaWV3IHN0cmluZ0J5RXZh
bHVhdGluZ0phdmFTY3JpcHQ6QCJ3aW5kb3cuaW50ZXJuYWxzLnJlYWRQcmVmZXJlbmNlSW50ZWdl
cihcImNvbS5hcHBsZS5jb3JlbWVkaWFcIiwgXCJ0ZXN0a2V5XCIpIl0uaW50VmFsdWU7CisgICAg
ICAgIE5TU3RyaW5nICpqcyA9IFtOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAid2luZG93Lmlu
dGVybmFscy5yZWFkUHJlZmVyZW5jZUludGVnZXIoXCIlQFwiLFwiJUBcIikiLCAoTlNTdHJpbmcg
Kil0ZXN0RG9tYWluLCAoTlNTdHJpbmcgKil0ZXN0S2V5XTsKKyAgICAgICAgcmV0dXJuIFt3ZWJW
aWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6anNdLmludFZhbHVlOwogICAgIH07CiAK
ICAgICBFWFBFQ1RfRVEocHJlZmVyZW5jZVZhbHVlKCksIDEpOwogCi0gICAgQ0ZQcmVmZXJlbmNl
c1NldEFwcFZhbHVlKENGU1RSKCJ0ZXN0a2V5IiksIENGU1RSKCIyIiksIENGU1RSKCJjb20uYXBw
bGUuY29yZW1lZGlhIikpOworICAgIENGUHJlZmVyZW5jZXNTZXRBcHBWYWx1ZSh0ZXN0S2V5LCBD
RlNUUigiMiIpLCB0ZXN0RG9tYWluKTsKIAogICAgIEVYUEVDVF9FUShwcmVmZXJlbmNlVmFsdWUo
KSwgMik7CiB9CkBAIC0xMDAsOCArMTA2LDggQEAgVEVTVChXZWJLaXQsIFByZWZlcmVuY2VDaGFu
Z2VzQXJyYXkpCiB7CiAgICAgTlNBcnJheSAqYXJyYXkgPSBAW0AxLCBAMiwgQDNdOwogCi0gICAg
YXV0byB1c2VyRGVmYXVsdHMgPSBhZG9wdE5TKFtbTlNVc2VyRGVmYXVsdHMgYWxsb2NdIGluaXRX
aXRoU3VpdGVOYW1lOkAiY29tLmFwcGxlLmNvcmVtZWRpYSJdKTsKLSAgICBbdXNlckRlZmF1bHRz
LmdldCgpIHNldE9iamVjdDphcnJheSBmb3JLZXk6QCJ0ZXN0a2V5Il07CisgICAgYXV0byB1c2Vy
RGVmYXVsdHMgPSBhZG9wdE5TKFtbTlNVc2VyRGVmYXVsdHMgYWxsb2NdIGluaXRXaXRoU3VpdGVO
YW1lOihOU1N0cmluZyAqKXRlc3REb21haW5dKTsKKyAgICBbdXNlckRlZmF1bHRzLmdldCgpIHNl
dE9iamVjdDphcnJheSBmb3JLZXk6KE5TU3RyaW5nICopdGVzdEtleV07CiAKICAgICBhdXRvIGNv
bmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5p
dF0pOwogICAgIFdLUmV0YWluUHRyPFdLQ29udGV4dFJlZj4gY29udGV4dCA9IGFkb3B0V0soVGVz
dFdlYktpdEFQSTo6VXRpbDo6Y3JlYXRlQ29udGV4dEZvckluamVjdGVkQnVuZGxlVGVzdCgiSW50
ZXJuYWxzSW5qZWN0ZWRCdW5kbGVUZXN0IikpOwpAQCAtMTA5LDEzICsxMTUsMTQgQEAgVEVTVChX
ZWJLaXQsIFByZWZlcmVuY2VDaGFuZ2VzQXJyYXkpCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHRO
UyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCAz
MDAsIDMwMCkgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uLmdldCgpIGFkZFRvV2luZG93OllF
U10pOwogCiAgICAgYXV0byBwcmVmZXJlbmNlVmFsdWUgPSBbJl0gewotICAgICAgICByZXR1cm4g
W3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAIndpbmRvdy5pbnRlcm5hbHMu
ZW5jb2RlZFByZWZlcmVuY2VWYWx1ZShcImNvbS5hcHBsZS5jb3JlbWVkaWFcIiwgXCJ0ZXN0a2V5
XCIpIl07CisgICAgICAgIE5TU3RyaW5nICpqcyA9IFtOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0
OkAid2luZG93LmludGVybmFscy5lbmNvZGVkUHJlZmVyZW5jZVZhbHVlKFwiJUBcIixcIiVAXCIp
IiwgKE5TU3RyaW5nICopdGVzdERvbWFpbiwgKE5TU3RyaW5nICopdGVzdEtleV07CisgICAgICAg
IHJldHVybiBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OmpzXTsKICAgICB9
OwogCiAgICAgcHJlZmVyZW5jZVZhbHVlKCk7CiAKICAgICBOU0FycmF5ICpjaGFuZ2VkQXJyYXkg
PSBAW0AzLCBAMiwgQDFdOwotICAgIFt1c2VyRGVmYXVsdHMuZ2V0KCkgc2V0T2JqZWN0OmNoYW5n
ZWRBcnJheSBmb3JLZXk6QCJ0ZXN0a2V5Il07CisgICAgW3VzZXJEZWZhdWx0cy5nZXQoKSBzZXRP
YmplY3Q6Y2hhbmdlZEFycmF5IGZvcktleTooTlNTdHJpbmcgKil0ZXN0S2V5XTsKIAogICAgIGF1
dG8gZW5jb2RlZFN0cmluZyA9IHByZWZlcmVuY2VWYWx1ZSgpOwogICAgIGF1dG8gZW5jb2RlZERh
dGEgPSBhZG9wdE5TKFtbTlNEYXRhIGFsbG9jXSBpbml0V2l0aEJhc2U2NEVuY29kZWRTdHJpbmc6
ZW5jb2RlZFN0cmluZyBvcHRpb25zOjBdKTsKQEAgLTEzNCw4ICsxNDEsOCBAQCBURVNUKFdlYktp
dCwgUHJlZmVyZW5jZUNoYW5nZXNEaWN0aW9uYXJ5CiAgICAgICAgIEAiYiIgOiBAMiwKICAgICB9
OwogCi0gICAgYXV0byB1c2VyRGVmYXVsdHMgPSBhZG9wdE5TKFtbTlNVc2VyRGVmYXVsdHMgYWxs
b2NdIGluaXRXaXRoU3VpdGVOYW1lOkAiY29tLmFwcGxlLmNvcmVtZWRpYSJdKTsKLSAgICBbdXNl
ckRlZmF1bHRzLmdldCgpIHNldE9iamVjdDpkaWN0IGZvcktleTpAInRlc3RrZXkiXTsKKyAgICBh
dXRvIHVzZXJEZWZhdWx0cyA9IGFkb3B0TlMoW1tOU1VzZXJEZWZhdWx0cyBhbGxvY10gaW5pdFdp
dGhTdWl0ZU5hbWU6KE5TU3RyaW5nICopdGVzdERvbWFpbl0pOworICAgIFt1c2VyRGVmYXVsdHMu
Z2V0KCkgc2V0T2JqZWN0OmRpY3QgZm9yS2V5OihOU1N0cmluZyAqKXRlc3RLZXldOwogCiAgICAg
YXV0byBjb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxs
b2NdIGluaXRdKTsKICAgICBXS1JldGFpblB0cjxXS0NvbnRleHRSZWY+IGNvbnRleHQgPSBhZG9w
dFdLKFRlc3RXZWJLaXRBUEk6OlV0aWw6OmNyZWF0ZUNvbnRleHRGb3JJbmplY3RlZEJ1bmRsZVRl
c3QoIkludGVybmFsc0luamVjdGVkQnVuZGxlVGVzdCIpKTsKQEAgLTE0Myw3ICsxNTAsOCBAQCBU
RVNUKFdlYktpdCwgUHJlZmVyZW5jZUNoYW5nZXNEaWN0aW9uYXJ5CiAgICAgYXV0byB3ZWJWaWV3
ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVj
dCgwLCAwLCAzMDAsIDMwMCkgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uLmdldCgpIGFkZFRv
V2luZG93OllFU10pOwogCiAgICAgYXV0byBwcmVmZXJlbmNlVmFsdWUgPSBbJl0gewotICAgICAg
ICByZXR1cm4gW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAIndpbmRvdy5p
bnRlcm5hbHMuZW5jb2RlZFByZWZlcmVuY2VWYWx1ZShcImNvbS5hcHBsZS5jb3JlbWVkaWFcIiwg
XCJ0ZXN0a2V5XCIpIl07CisgICAgICAgIE5TU3RyaW5nICpqcyA9IFtOU1N0cmluZyBzdHJpbmdX
aXRoRm9ybWF0OkAid2luZG93LmludGVybmFscy5lbmNvZGVkUHJlZmVyZW5jZVZhbHVlKFwiJUBc
IixcIiVAXCIpIiwgKE5TU3RyaW5nICopdGVzdERvbWFpbiwgKE5TU3RyaW5nICopdGVzdEtleV07
CisgICAgICAgIHJldHVybiBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0Ompz
XTsKICAgICB9OwogCiAgICAgcHJlZmVyZW5jZVZhbHVlKCk7CkBAIC0xNTMsNyArMTYxLDcgQEAg
VEVTVChXZWJLaXQsIFByZWZlcmVuY2VDaGFuZ2VzRGljdGlvbmFyeQogICAgICAgICBAImIiIDog
QDIsCiAgICAgICAgIEAiYyIgOiBAMywKICAgICB9OwotICAgIFt1c2VyRGVmYXVsdHMuZ2V0KCkg
c2V0T2JqZWN0OmNoYW5nZWREaWN0IGZvcktleTpAInRlc3RrZXkiXTsKKyAgICBbdXNlckRlZmF1
bHRzLmdldCgpIHNldE9iamVjdDpjaGFuZ2VkRGljdCBmb3JLZXk6KE5TU3RyaW5nICopdGVzdEtl
eV07CiAKICAgICBhdXRvIGVuY29kZWRTdHJpbmcgPSBwcmVmZXJlbmNlVmFsdWUoKTsKICAgICBh
dXRvIGVuY29kZWREYXRhID0gYWRvcHROUyhbW05TRGF0YSBhbGxvY10gaW5pdFdpdGhCYXNlNjRF
bmNvZGVkU3RyaW5nOmVuY29kZWRTdHJpbmcgb3B0aW9uczowXSk7CkBAIC0xNjksOCArMTc3LDgg
QEAgVEVTVChXZWJLaXQsIFByZWZlcmVuY2VDaGFuZ2VzRGF0YSkKIHsKICAgICBOU0RhdGEgKmRh
dGEgPSBbTlNEYXRhIGRhdGFXaXRoQnl0ZXM6ImFiYyIgbGVuZ3RoOjNdOwogCi0gICAgYXV0byB1
c2VyRGVmYXVsdHMgPSBhZG9wdE5TKFtbTlNVc2VyRGVmYXVsdHMgYWxsb2NdIGluaXRXaXRoU3Vp
dGVOYW1lOkAiY29tLmFwcGxlLmNvcmVtZWRpYSJdKTsKLSAgICBbdXNlckRlZmF1bHRzLmdldCgp
IHNldE9iamVjdDpkYXRhIGZvcktleTpAInRlc3RrZXkiXTsKKyAgICBhdXRvIHVzZXJEZWZhdWx0
cyA9IGFkb3B0TlMoW1tOU1VzZXJEZWZhdWx0cyBhbGxvY10gaW5pdFdpdGhTdWl0ZU5hbWU6KE5T
U3RyaW5nICopdGVzdERvbWFpbl0pOworICAgIFt1c2VyRGVmYXVsdHMuZ2V0KCkgc2V0T2JqZWN0
OmRhdGEgZm9yS2V5OihOU1N0cmluZyAqKXRlc3RLZXldOwogCiAgICAgYXV0byBjb25maWd1cmF0
aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKICAg
ICBXS1JldGFpblB0cjxXS0NvbnRleHRSZWY+IGNvbnRleHQgPSBhZG9wdFdLKFRlc3RXZWJLaXRB
UEk6OlV0aWw6OmNyZWF0ZUNvbnRleHRGb3JJbmplY3RlZEJ1bmRsZVRlc3QoIkludGVybmFsc0lu
amVjdGVkQnVuZGxlVGVzdCIpKTsKQEAgLTE3OCwxMyArMTg2LDE0IEBAIFRFU1QoV2ViS2l0LCBQ
cmVmZXJlbmNlQ2hhbmdlc0RhdGEpCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RX
S1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCAzMDAsIDMwMCkg
Y29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uLmdldCgpIGFkZFRvV2luZG93OllFU10pOwogCiAg
ICAgYXV0byBwcmVmZXJlbmNlVmFsdWUgPSBbJl0gewotICAgICAgICByZXR1cm4gW3dlYlZpZXcg
c3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAIndpbmRvdy5pbnRlcm5hbHMuZW5jb2RlZFBy
ZWZlcmVuY2VWYWx1ZShcImNvbS5hcHBsZS5jb3JlbWVkaWFcIiwgXCJ0ZXN0a2V5XCIpIl07Cisg
ICAgICAgIE5TU3RyaW5nICpqcyA9IFtOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAid2luZG93
LmludGVybmFscy5lbmNvZGVkUHJlZmVyZW5jZVZhbHVlKFwiJUBcIixcIiVAXCIpIiwgKE5TU3Ry
aW5nICopdGVzdERvbWFpbiwgKE5TU3RyaW5nICopdGVzdEtleV07CisgICAgICAgIHJldHVybiBb
d2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OmpzXTsKICAgICB9OwogCiAgICAg
cHJlZmVyZW5jZVZhbHVlKCk7CiAKICAgICBOU0RhdGEgKmNoYW5nZWREYXRhID0gW05TRGF0YSBk
YXRhV2l0aEJ5dGVzOiJhYmNkIiBsZW5ndGg6NF07Ci0gICAgW3VzZXJEZWZhdWx0cy5nZXQoKSBz
ZXRPYmplY3Q6Y2hhbmdlZERhdGEgZm9yS2V5OkAidGVzdGtleSJdOworICAgIFt1c2VyRGVmYXVs
dHMuZ2V0KCkgc2V0T2JqZWN0OmNoYW5nZWREYXRhIGZvcktleTooTlNTdHJpbmcgKil0ZXN0S2V5
XTsKIAogICAgIGF1dG8gZW5jb2RlZFN0cmluZyA9IHByZWZlcmVuY2VWYWx1ZSgpOwogICAgIGF1
dG8gZW5jb2RlZERhdGEgPSBhZG9wdE5TKFtbTlNEYXRhIGFsbG9jXSBpbml0V2l0aEJhc2U2NEVu
Y29kZWRTdHJpbmc6ZW5jb2RlZFN0cmluZyBvcHRpb25zOjBdKTsKQEAgLTIwMCw4ICsyMDksOCBA
QCBURVNUKFdlYktpdCwgUHJlZmVyZW5jZUNoYW5nZXNEYXRlKQogewogICAgIE5TRGF0ZSAqZGF0
ZSA9IFtOU0RhdGUgZGF0ZVdpdGhUaW1lSW50ZXJ2YWxTaW5jZU5vdzowXTsKIAotICAgIGF1dG8g
dXNlckRlZmF1bHRzID0gYWRvcHROUyhbW05TVXNlckRlZmF1bHRzIGFsbG9jXSBpbml0V2l0aFN1
aXRlTmFtZTpAImNvbS5hcHBsZS5jb3JlbWVkaWEiXSk7Ci0gICAgW3VzZXJEZWZhdWx0cy5nZXQo
KSBzZXRPYmplY3Q6ZGF0ZSBmb3JLZXk6QCJ0ZXN0a2V5Il07CisgICAgYXV0byB1c2VyRGVmYXVs
dHMgPSBhZG9wdE5TKFtbTlNVc2VyRGVmYXVsdHMgYWxsb2NdIGluaXRXaXRoU3VpdGVOYW1lOihO
U1N0cmluZyAqKXRlc3REb21haW5dKTsKKyAgICBbdXNlckRlZmF1bHRzLmdldCgpIHNldE9iamVj
dDpkYXRlIGZvcktleTooTlNTdHJpbmcgKil0ZXN0S2V5XTsKIAogICAgIGF1dG8gY29uZmlndXJh
dGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CiAg
ICAgV0tSZXRhaW5QdHI8V0tDb250ZXh0UmVmPiBjb250ZXh0ID0gYWRvcHRXSyhUZXN0V2ViS2l0
QVBJOjpVdGlsOjpjcmVhdGVDb250ZXh0Rm9ySW5qZWN0ZWRCdW5kbGVUZXN0KCJJbnRlcm5hbHNJ
bmplY3RlZEJ1bmRsZVRlc3QiKSk7CkBAIC0yMDksMTMgKzIxOCwxNCBAQCBURVNUKFdlYktpdCwg
UHJlZmVyZW5jZUNoYW5nZXNEYXRlKQogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0
V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgMzAwLCAzMDAp
IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbi5nZXQoKSBhZGRUb1dpbmRvdzpZRVNdKTsKIAog
ICAgIGF1dG8gcHJlZmVyZW5jZVZhbHVlID0gWyZdIHsKLSAgICAgICAgcmV0dXJuIFt3ZWJWaWV3
IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJ3aW5kb3cuaW50ZXJuYWxzLmVuY29kZWRQ
cmVmZXJlbmNlVmFsdWUoXCJjb20uYXBwbGUuY29yZW1lZGlhXCIsIFwidGVzdGtleVwiKSJdOwor
ICAgICAgICBOU1N0cmluZyAqanMgPSBbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpAIndpbmRv
dy5pbnRlcm5hbHMuZW5jb2RlZFByZWZlcmVuY2VWYWx1ZShcIiVAXCIsXCIlQFwiKSIsIChOU1N0
cmluZyAqKXRlc3REb21haW4sIChOU1N0cmluZyAqKXRlc3RLZXldOworICAgICAgICByZXR1cm4g
W3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpqc107CiAgICAgfTsKIAogICAg
IHByZWZlcmVuY2VWYWx1ZSgpOwogCiAgICAgTlNEYXRlICpjaGFuZ2VkRGF0ZSA9IFtOU0RhdGUg
ZGF0ZVdpdGhUaW1lSW50ZXJ2YWxTaW5jZU5vdzoxMF07Ci0gICAgW3VzZXJEZWZhdWx0cy5nZXQo
KSBzZXRPYmplY3Q6Y2hhbmdlZERhdGUgZm9yS2V5OkAidGVzdGtleSJdOworICAgIFt1c2VyRGVm
YXVsdHMuZ2V0KCkgc2V0T2JqZWN0OmNoYW5nZWREYXRlIGZvcktleTooTlNTdHJpbmcgKil0ZXN0
S2V5XTsKIAogICAgIGF1dG8gZW5jb2RlZFN0cmluZyA9IHByZWZlcmVuY2VWYWx1ZSgpOwogICAg
IGF1dG8gZW5jb2RlZERhdGEgPSBhZG9wdE5TKFtbTlNEYXRhIGFsbG9jXSBpbml0V2l0aEJhc2U2
NEVuY29kZWRTdHJpbmc6ZW5jb2RlZFN0cmluZyBvcHRpb25zOjBdKTsKQEAgLTIyNyw0ICsyMzcs
MzIgQEAgVEVTVChXZWJLaXQsIFByZWZlcmVuY2VDaGFuZ2VzRGF0ZSkKICAgICBBU1NFUlRfVFJV
RShbb2JqZWN0IGlzRXF1YWw6Y2hhbmdlZERhdGVdKTsKIH0KIAorc3RhdGljIElNUCBzaGFyZWRJ
bnN0YW5jZU1ldGhvZE9yaWdpbmFsID0gbmlsOworCitzdGF0aWMgV0tQcmVmZXJlbmNlT2JzZXJ2
ZXIgKnNoYXJlZEluc3RhbmNlTWV0aG9kT3ZlcnJpZGUoaWQgc2VsZiwgU0VMIHNlbGVjdG9yKQor
eworICAgIGRvbmUgPSB0cnVlOworICAgIHJldHVybiB3dGZDYWxsSU1QPFdLUHJlZmVyZW5jZU9i
c2VydmVyICo+KHNoYXJlZEluc3RhbmNlTWV0aG9kT3JpZ2luYWwsIHNlbGYsIHNlbGVjdG9yKTsK
K30KKworVEVTVChXZWJLaXQsIFByZWZlcmVuY2VPYnNlcnZlclN0YXJ0ZWRPbkFjdGl2YXRpb24p
Cit7CisgICAgZG9uZSA9IGZhbHNlOworICAgIE1ldGhvZCBzaGFyZWRJbnN0YW5jZU1ldGhvZCA9
IGNsYXNzX2dldENsYXNzTWV0aG9kKG9iamNfZ2V0Q2xhc3MoIldLUHJlZmVyZW5jZU9ic2VydmVy
IiksIEBzZWxlY3RvcihzaGFyZWRJbnN0YW5jZSkpOworICAgIEFTU0VSVChzaGFyZWRJbnN0YW5j
ZU1ldGhvZCk7CisgICAgc2hhcmVkSW5zdGFuY2VNZXRob2RPcmlnaW5hbCA9IG1ldGhvZF9zZXRJ
bXBsZW1lbnRhdGlvbihzaGFyZWRJbnN0YW5jZU1ldGhvZCwgKElNUClzaGFyZWRJbnN0YW5jZU1l
dGhvZE92ZXJyaWRlKTsKKyAgICBBU1NFUlQoc2hhcmVkSW5zdGFuY2VNZXRob2RPcmlnaW5hbCk7
CisKKyAgICBhdXRvIGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJh
dGlvbiBhbGxvY10gaW5pdF0pOworICAgIFdLUmV0YWluUHRyPFdLQ29udGV4dFJlZj4gY29udGV4
dCA9IGFkb3B0V0soVGVzdFdlYktpdEFQSTo6VXRpbDo6Y3JlYXRlQ29udGV4dEZvckluamVjdGVk
QnVuZGxlVGVzdCgiSW50ZXJuYWxzSW5qZWN0ZWRCdW5kbGVUZXN0IikpOworICAgIGNvbmZpZ3Vy
YXRpb24uZ2V0KCkucHJvY2Vzc1Bvb2wgPSAoV0tQcm9jZXNzUG9vbCAqKWNvbnRleHQuZ2V0KCk7
CisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRX
aXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCAzMDAsIDMwMCkgY29uZmlndXJhdGlvbjpjb25maWd1
cmF0aW9uLmdldCgpIGFkZFRvV2luZG93OllFU10pOworCisgICAgW3dlYlZpZXcgc3luY2hyb25v
dXNseUxvYWRUZXN0UGFnZU5hbWVkOkAic2ltcGxlIl07CisKKyAgICBbW05TTm90aWZpY2F0aW9u
Q2VudGVyIGRlZmF1bHRDZW50ZXJdIHBvc3ROb3RpZmljYXRpb25OYW1lOk5TQXBwbGljYXRpb25E
aWRCZWNvbWVBY3RpdmVOb3RpZmljYXRpb24gb2JqZWN0Ok5TQXBwIHVzZXJJbmZvOm5pbF07CisK
KyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworfQorCiAjZW5kaWYgLy8gV0tf
SEFWRV9DX1NQSQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>394261</attachid>
            <date>2020-03-23 08:10:39 -0700</date>
            <delta_ts>2020-03-24 09:56:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209244-20200323081038.patch</filename>
            <type>text/plain</type>
            <size>26614</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyNTg3ODMpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDIwLTAzLTIwICBQZXIgQXJuZSBWb2xsYW4gIDxw
dm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIEZpeCBsYXVuY2ggdGltZSByZWdy
ZXNzaW9uIHdpdGggQ0YgcHJlZnMgZGlyZWN0IG1vZGUgZW5hYmxlZAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA5MjQ0CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgUmUtZW5hYmxlIENGIHByZWZzIGRpcmVjdCBt
b2RlLgorCisgICAgICAgICogd3RmL1BsYXRmb3JtRW5hYmxlLmg6CisgICAgICAgICogd3RmL1Bs
YXRmb3JtRW5hYmxlQ29jb2EuaDoKKwogMjAyMC0wMy0yMCAgVGltIEhvcnRvbiAgPHRpbW90aHlf
aG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBVcHN0cmVhbSBhIHZhcmlldHkgb2YgQ29jb2Et
cGxhdGZvcm0gSEFWRSBhbmQgRU5BQkxFIG1hY3JvcwpJbmRleDogU291cmNlL1dURi93dGYvUGxh
dGZvcm1FbmFibGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJs
ZS5oCShyZXZpc2lvbiAyNTg3ODMpCisrKyBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJsZS5o
CSh3b3JraW5nIGNvcHkpCkBAIC01NTMsNiArNTUzLDkgQEAKICNkZWZpbmUgRU5BQkxFX01BTExP
Q19IRUFQX0JSRUFLRE9XTiAwCiAjZW5kaWYKIAorI2lmICFkZWZpbmVkKEVOQUJMRV9DRlBSRUZT
X0RJUkVDVF9NT0RFKQorI2RlZmluZSBFTkFCTEVfQ0ZQUkVGU19ESVJFQ1RfTU9ERSAwCisjZW5k
aWYKIAogCiAKQEAgLTg3MCw1ICs4NzMsMyBAQAogI2lmIEVOQUJMRShXRUJHTDIpICYmICFFTkFC
TEUoV0VCR0wpCiAjZXJyb3IgIkVOQUJMRShXRUJHTDIpIHJlcXVpcmVzIEVOQUJMRShXRUJHTCki
CiAjZW5kaWYKLQotI2RlZmluZSBFTkFCTEVfQ0ZQUkVGU19ESVJFQ1RfTU9ERSAwCkluZGV4OiBT
b3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJsZUNvY29hLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dURi93dGYvUGxhdGZvcm1FbmFibGVDb2NvYS5oCShyZXZpc2lvbiAyNTg3ODMpCisrKyBTb3Vy
Y2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJsZUNvY29hLmgJKHdvcmtpbmcgY29weSkKQEAgLTI4MCwz
ICsyODAsNyBAQAogI2lmICFkZWZpbmVkKEVOQUJMRV9UQUtFX1VOQk9VTkRFRF9ORVRXT1JLSU5H
X0FTU0VSVElPTikgJiYgKFBMQVRGT1JNKElPUykgfHwgUExBVEZPUk0oTUFDQ0FUQUxZU1QpKQog
I2RlZmluZSBFTkFCTEVfVEFLRV9VTkJPVU5ERURfTkVUV09SS0lOR19BU1NFUlRJT04gMQogI2Vu
ZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfQ0ZQUkVGU19ESVJFQ1RfTU9ERSkKKyNkZWZpbmUg
RU5BQkxFX0NGUFJFRlNfRElSRUNUX01PREUgMQorI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwkocmV2aXNp
b24gMjU4NzgzKQorKysgU291cmNlL1dlYktpdC9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAg
LTEsMyArMSwyNyBAQAorMjAyMC0wMy0yMCAgUGVyIEFybmUgVm9sbGFuICA8cHZvbGxhbkBhcHBs
ZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBGaXggbGF1bmNoIHRpbWUgcmVncmVzc2lvbiB3aXRo
IENGIHByZWZzIGRpcmVjdCBtb2RlIGVuYWJsZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIwOTI0NAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjA1
NDIxNDk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgV2hl
biBDRiBwcmVmcyBkaXJlY3QgbW9kZSB3YXMgZW5hYmxlZCBpbiBodHRwczovL3RyYWMud2Via2l0
Lm9yZy9jaGFuZ2VzZXQvMjU4MDY0L3dlYmtpdCwgaXQgaW50cm9kdWNlZAorICAgICAgICBhIHNp
Z25pZmljYW50IGxhdW5jaCB0aW1lIHJlZ3Jlc3Npb24uIFRoaXMgcGF0Y2ggYWRkcmVzc2VzIHRo
aXMgcmVncmVzc2lvbi4gVGhlIG51bWJlciBvZiBvYnNlcnZlZCBkb21haW5zCisgICAgICAgIGlz
IHJlZHVjZWQgYW5kIGRvbWFpbiBvYnNlcnZhdGlvbiBpcyBpbml0aWF0ZWQgbGF0ZXIgd2hlbiBT
YWZhcmkgaXMgZmlyc3QgYWN0aXZhdGVkLiBTd2l6emxpbmcgY29kZSBpcworICAgICAgICByZW1v
dmVkLCBzaW5jZSB0aGF0IGhhcyBhIHBlcmZvcm1hbmNlIGNvc3QgaW4gdGhlIE9iamVjdGl2ZS1D
IHJ1bnRpbWUuIE5vcm1hbCBwcmlvcml0eSBpbnN0ZWFkIG9mCisgICAgICAgIFFPU19DTEFTU19C
QUNLR1JPVU5EIGlzIHVzZWQgaW4gdGhlIHRocmVhZCB3aGljaCBzdGFydHMgdGhlIG9ic2Vydmlu
Zywgc2luY2UgdXNpbmcgYSBiYWNrZ3JvdW5kIHByaW9yaXR5CisgICAgICAgIGNsYXNzIGNhbiBs
ZWFkIHRvIHByaW9yaXR5IGludmVyc2lvbi4gRmluYWxseSwgYSBkaWN0aW9uYXJ5IGNvbXBhcmlz
b24gaXMgcmVtb3ZlZCB3aGVuIGEgbm90aWZpY2F0aW9uCisgICAgICAgIGFib3V0IGEgcHJlZmVy
ZW5jZSBjaGFuZ2UgaXMgcmVjZWl2ZWQsIHNpbmNlIHRoaXMgY2hlY2sgaXMgcmVkdW5kYW50IGFu
ZCBkb3VibGVzIHRoZSBjb3N0IG9mIHRoaXMgbWV0aG9kLgorCisgICAgICAgICogVUlQcm9jZXNz
L0NvY29hL1ByZWZlcmVuY2VPYnNlcnZlci5tbToKKyAgICAgICAgKC1bV0tQcmVmZXJlbmNlT2Jz
ZXJ2ZXIgaW5pdF0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENv
Y29hLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFs
aXplKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnJlZ2lzdGVyTm90aWZpY2F0
aW9uT2JzZXJ2ZXJzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnVucmVnaXN0
ZXJOb3RpZmljYXRpb25PYnNlcnZlcnMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNz
UG9vbC5oOgorCiAyMDIwLTAzLTIwICBEb24gT2xtc3RlYWQgIDxkb24ub2xtc3RlYWRAc29ueS5j
b20+CiAKICAgICAgICAgW0dQVVBdIEFkZCBQbGF0Zm9ybUxheWVyQ29udGFpbmVyIHRvIGhvbGQg
cG9pbnRlciB0byBQbGF0Zm9ybUxheWVyCkluZGV4OiBTb3VyY2UvV2ViS2l0L1Jlc291cmNlcy9T
YW5kYm94UHJvZmlsZXMvaW9zL2NvbS5hcHBsZS5XZWJLaXQuV2ViQ29udGVudC5zYgo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1Jlc291cmNlcy9TYW5kYm94UHJvZmlsZXMvaW9zL2NvbS5h
cHBsZS5XZWJLaXQuV2ViQ29udGVudC5zYgkocmV2aXNpb24gMjU4NzgzKQorKysgU291cmNlL1dl
YktpdC9SZXNvdXJjZXMvU2FuZGJveFByb2ZpbGVzL2lvcy9jb20uYXBwbGUuV2ViS2l0LldlYkNv
bnRlbnQuc2IJKHdvcmtpbmcgY29weSkKQEAgLTUzNCw3ICs1MzQsNiBAQAogKGFsbG93IG1hY2gt
bG9va3VwCiAgICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUubG9nZCIpCiAgICAgKGdsb2JhbC1u
YW1lICJjb20uYXBwbGUubG9nZC5ldmVudHMiKQotICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxl
LmNmcHJlZnNkLmRhZW1vbiIpCiApCiAKIChkZW55IG1hY2gtbG9va3VwICh3aXRoIHRlbGVtZXRy
eSkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAkocmV2aXNp
b24gMjU4NzgzKQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAko
d29ya2luZyBjb3B5KQpAQCAtNjExLDYgKzYxMSwxMCBAQCBwcml2YXRlOgogI2VuZGlmCiAjZW5k
aWYKIAorI2lmIEVOQUJMRShDRlBSRUZTX0RJUkVDVF9NT0RFKQorICAgIHZvaWQgc3RhcnRPYnNl
cnZpbmdQcmVmZXJlbmNlQ2hhbmdlcygpOworI2VuZGlmCisKICAgICBSZWY8QVBJOjpQcm9jZXNz
UG9vbENvbmZpZ3VyYXRpb24+IG1fY29uZmlndXJhdGlvbjsKIAogICAgIElQQzo6TWVzc2FnZVJl
Y2VpdmVyTWFwIG1fbWVzc2FnZVJlY2VpdmVyTWFwOwpAQCAtNjkxLDcgKzY5NSw2IEBAIHByaXZh
dGU6CiAjaWYgRU5BQkxFKFdFQlBST0NFU1NfV0lORE9XU0VSVkVSX0JMT0NLSU5HKQogICAgIFJl
dGFpblB0cjxOU09iamVjdD4gbV9zY3JvbGxlclN0eWxlTm90aWZpY2F0aW9uT2JzZXJ2ZXI7CiAj
ZW5kaWYKLSAgICBSZXRhaW5QdHI8TlNPYmplY3Q+IG1fYWN0aXZhdGlvbk9ic2VydmVyOwogICAg
IFJldGFpblB0cjxOU09iamVjdD4gbV9kZWFjdGl2YXRpb25PYnNlcnZlcjsKIAogICAgIHN0ZDo6
dW5pcXVlX3B0cjxIaWdoUGVyZm9ybWFuY2VHcmFwaGljc1VzYWdlU2FtcGxlcj4gbV9oaWdoUGVy
Zm9ybWFuY2VHcmFwaGljc1VzYWdlU2FtcGxlcjsKQEAgLTY5OSw2ICs3MDIsNyBAQCBwcml2YXRl
OgogI2VuZGlmCiAKICNpZiBQTEFURk9STShDT0NPQSkKKyAgICBSZXRhaW5QdHI8TlNPYmplY3Q+
IG1fYWN0aXZhdGlvbk9ic2VydmVyOwogICAgIFJldGFpblB0cjxOU09iamVjdD4gbV9hY2Nlc3Np
YmlsaXR5RW5hYmxlZE9ic2VydmVyOwogI2VuZGlmCiAKQEAgLTgwMiwxMCArODA2LDYgQEAgcHJp
dmF0ZToKICAgICBib29sIG1faXNEZWxheWVkV2ViUHJvY2Vzc0xhdW5jaERpc2FibGVkIHsgZmFs
c2UgfTsKICNlbmRpZgogICAgIGJvb2wgbV91c2VTZXBhcmF0ZVNlcnZpY2VXb3JrZXJQcm9jZXNz
IHsgZmFsc2UgfTsKLQotI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIFJldGFpblB0cjxXS1ByZWZl
cmVuY2VPYnNlcnZlcj4gbV9wcmVmZXJlbmNlT2JzZXJ2ZXI7Ci0jZW5kaWYKIH07CiAKIHRlbXBs
YXRlPHR5cGVuYW1lIFQ+CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9QcmVm
ZXJlbmNlT2JzZXJ2ZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9D
b2NvYS9QcmVmZXJlbmNlT2JzZXJ2ZXIuaAkocmV2aXNpb24gMjU4NzgzKQorKysgU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvUHJlZmVyZW5jZU9ic2VydmVyLmgJKHdvcmtpbmcgY29weSkK
QEAgLTQ2LDYgKzQ2LDUgQEAgX19hdHRyaWJ1dGVfXygodmlzaWJpbGl0eSgiZGVmYXVsdCIpKSkK
ICAgICBWZWN0b3I8UmV0YWluUHRyPFdLVXNlckRlZmF1bHRzPj4gbV91c2VyRGVmYXVsdHM7CiB9
CiArIChpZClzaGFyZWRJbnN0YW5jZTsKLSsgKHZvaWQpc3dpenpsZVJlZ2lzdGVyRGVmYXVsdHM7
CiAtICh2b2lkKXByZWZlcmVuY2VEaWRDaGFuZ2U6KE5TU3RyaW5nICopZG9tYWluIGtleTooTlNT
dHJpbmcgKilrZXkgZW5jb2RlZFZhbHVlOihOU1N0cmluZyAqKWVuY29kZWRWYWx1ZTsKIEBlbmQK
SW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1ByZWZlcmVuY2VPYnNlcnZlci5t
bQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9QcmVmZXJlbmNl
T2JzZXJ2ZXIubW0JKHJldmlzaW9uIDI1ODc4MykKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0NvY29hL1ByZWZlcmVuY2VPYnNlcnZlci5tbQkod29ya2luZyBjb3B5KQpAQCAtMjgsMzEgKzI4
LDEyIEBACiAKICNpbXBvcnQgIldlYlByb2Nlc3NQb29sLmgiCiAKLSNpbXBvcnQgPHd0Zi9PYmpD
UnVudGltZUV4dHJhcy5oPgotCi1zdGF0aWMgSU1QIHJlZ2lzdGVyRGVmYXVsdHNPcmlnaW5hbCA9
IG5pbDsKLXN0YXRpYyBib29sIHJlZ2lzdGVyaW5nRGVmYXVsdHMgPSBmYWxzZTsKLQotc3RhdGlj
IHZvaWQgcmVnaXN0ZXJEZWZhdWx0c092ZXJyaWRlKGlkIHNlbGYsIFNFTCBzZWxlY3RvciwgTlNE
aWN0aW9uYXJ5PE5TU3RyaW5nICosIGlkPiAqZGljdGlvbmFyeSkKLXsKLSAgICByZWdpc3Rlcmlu
Z0RlZmF1bHRzID0gdHJ1ZTsKLSAgICBpZiAocmVnaXN0ZXJEZWZhdWx0c09yaWdpbmFsKQotICAg
ICAgICB3dGZDYWxsSU1QPHZvaWQ+KHJlZ2lzdGVyRGVmYXVsdHNPcmlnaW5hbCwgc2VsZiwgc2Vs
ZWN0b3IsIGRpY3Rpb25hcnkpOwotICAgIHJlZ2lzdGVyaW5nRGVmYXVsdHMgPSBmYWxzZTsKLX0K
LQogQGltcGxlbWVudGF0aW9uIFdLVXNlckRlZmF1bHRzCiAKIC0gKHZvaWQpX25vdGlmeU9ic2Vy
dmVyc09mQ2hhbmdlRnJvbVZhbHVlc0ZvcktleXM6KE5TRGljdGlvbmFyeTxOU1N0cmluZyAqLCBp
ZD4gKilvbGRWYWx1ZXMgdG9WYWx1ZXNGb3JLZXlzOihOU0RpY3Rpb25hcnk8TlNTdHJpbmcgKiwg
aWQ+ICopbmV3VmFsdWVzCiB7Ci0gICAgaWYgKHJlZ2lzdGVyaW5nRGVmYXVsdHMpCi0gICAgICAg
IHJldHVybjsKLQogICAgIFtzdXBlciBfbm90aWZ5T2JzZXJ2ZXJzT2ZDaGFuZ2VGcm9tVmFsdWVz
Rm9yS2V5czpvbGRWYWx1ZXMgdG9WYWx1ZXNGb3JLZXlzOm5ld1ZhbHVlc107CiAKLSAgICBpZiAo
W29sZFZhbHVlcyBpc0VxdWFsVG9EaWN0aW9uYXJ5Om5ld1ZhbHVlc10pCi0gICAgICAgIHJldHVy
bjsKLQogICAgIGZvciAoTlNTdHJpbmcgKmtleSBpbiBvbGRWYWx1ZXMpIHsKICAgICAgICAgaWQg
b2xkVmFsdWUgPSBvbGRWYWx1ZXNba2V5XTsKICAgICAgICAgaWQgbmV3VmFsdWUgPSBuZXdWYWx1
ZXNba2V5XTsKQEAgLTEwMSwxMDMgKzgyLDMzIEBAICsgKGlkKXNoYXJlZEluc3RhbmNlCiAgICAg
cmV0dXJuIGluc3RhbmNlOwogfQogCi0rICh2b2lkKXN3aXp6bGVSZWdpc3RlckRlZmF1bHRzCi17
Ci0gICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIG9uY2VGbGFnOwotICAgIHN0ZDo6Y2FsbF9vbmNl
KG9uY2VGbGFnLCBbXSB7Ci0gICAgICAgIE1ldGhvZCByZWdpc3RlckRlZmF1bHRzTWV0aG9kID0g
Y2xhc3NfZ2V0SW5zdGFuY2VNZXRob2Qob2JqY19nZXRDbGFzcygiTlNVc2VyRGVmYXVsdHMiKSwg
QHNlbGVjdG9yKHJlZ2lzdGVyRGVmYXVsdHM6KSk7Ci0gICAgICAgIHJlZ2lzdGVyRGVmYXVsdHNP
cmlnaW5hbCA9IG1ldGhvZF9zZXRJbXBsZW1lbnRhdGlvbihyZWdpc3RlckRlZmF1bHRzTWV0aG9k
LCAoSU1QKXJlZ2lzdGVyRGVmYXVsdHNPdmVycmlkZSk7Ci0gICAgfSk7Ci19Ci0KIC0gKGluc3Rh
bmNldHlwZSlpbml0CiB7CiAgICAgc3RkOjppbml0aWFsaXplcl9saXN0PE5TU3RyaW5nKj4gZG9t
YWlucyA9IHsKLSAgICAgICAgQCJjb20uYXBwbGUuQWNjZXNzaWJpbGl0eSIsCiAjaWYgUExBVEZP
Uk0oSU9TX0ZBTUlMWSkKKyAgICAgICAgQCJjb20uYXBwbGUuQWNjZXNzaWJpbGl0eSIsCiAgICAg
ICAgIEAiY29tLmFwcGxlLkFkTGliIiwKLSAgICAgICAgQCJjb20uYXBwbGUuQ0ZOZXR3b3JrIiwK
LSAgICAgICAgQCJjb20uYXBwbGUuRW1vamlQcmVmZXJlbmNlcyIsCi0gICAgICAgIEAiY29tLmFw
cGxlLkZvbnRQYXJzZXIiLAotICAgICAgICBAImNvbS5hcHBsZS5JbWFnZUlPIiwKLSAgICAgICAg
QCJjb20uYXBwbGUuSW5wdXRNb2RlUHJlZmVyZW5jZXMiLAotI2Vsc2UKLSAgICAgICAgQCJjb20u
YXBwbGUuQVRTIiwKLSAgICAgICAgQCJjb20uYXBwbGUuQ29yZUdyYXBoaWNzIiwKLSAgICAgICAg
QCJjb20uYXBwbGUuRG93bmxvYWRBc3Nlc3NtZW50IiwKLSAgICAgICAgQCJjb20uYXBwbGUuSElU
b29sYm94IiwKLSNlbmRpZgotICAgICAgICBAImNvbS5hcHBsZS5MYXVuY2hTZXJ2aWNlcyIsCi0j
aWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICAgICAgQCJjb20uYXBwbGUuTWV0YWwiLAotICAg
ICAgICBAImNvbS5hcHBsZS5Nb2JpbGVBc3NldCIsCiAgICAgICAgIEAiY29tLmFwcGxlLlByZWZl
cmVuY2VzIiwKLSAgICAgICAgQCJjb20uYXBwbGUuU3BlYWtTZWxlY3Rpb24iLAogICAgICAgICBA
ImNvbS5hcHBsZS5VSUtpdCIsCi0gICAgICAgIEAiY29tLmFwcGxlLlZvaWNlT3ZlclRvdWNoIiwK
LSNlbHNlCi0gICAgICAgIEAiY29tLmFwcGxlLk11bHRpdG91Y2hTdXBwb3J0IgotICAgICAgICBA
ImNvbS5hcHBsZS5TZXJ2aWNlc01lbnUuU2VydmljZXMiCi0gICAgICAgIEAiY29tLmFwcGxlLlZp
ZXdCcmlkZ2UiCi0jZW5kaWYKLSAgICAgICAgQCJjb20uYXBwbGUuV2ViRm91bmRhdGlvbiIsCi0j
aWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICAgICAgQCJjb20uYXBwbGUuV2ViS2l0LldlYkNv
bnRlbnQiLAotICAgICAgICBAImNvbS5hcHBsZS5XZWJVSSIsCi0gICAgICAgIEAiY29tLmFwcGxl
LmFpcnBsYXkiLAotICAgICAgICBAImNvbS5hcHBsZS5hcHBsZWpwZWciLAotICAgICAgICBAImNv
bS5hcHBsZS5hdWRpby52aXJ0dWFsYXVkaW8iLAogICAgICAgICBAImNvbS5hcHBsZS5hdmZhdWRp
byIsCi0jZW5kaWYKLSAgICAgICAgQCJjb20uYXBwbGUuYXZmb3VuZGF0aW9uIiwKLSAgICAgICAg
QCJjb20uYXBwbGUuYXZmb3VuZGF0aW9uLmZyZWNlbnRzIiwKLSAgICAgICAgQCJjb20uYXBwbGUu
YXZmb3VuZGF0aW9uLnZpZGVvcGVyZm9ybWFuY2VodWQiLAotI2lmIFBMQVRGT1JNKElPU19GQU1J
TFkpCi0gICAgICAgIEAiY29tLmFwcGxlLmF2a2l0IiwKLSAgICAgICAgQCJjb20uYXBwbGUuY29y
ZWFuaW1hdGlvbiIsCi0gICAgICAgIEAiY29tLmFwcGxlLmNvcmVhdWRpbyIsCi0jZW5kaWYKLSAg
ICAgICAgQCJjb20uYXBwbGUuY29yZW1lZGlhIiwKLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQot
ICAgICAgICBAImNvbS5hcHBsZS5jb3JldmlkZW8iLAotICAgICAgICBAImNvbS5hcHBsZS5kYSIs
Ci0gICAgICAgIEAiY29tLmFwcGxlLmhhbmd0cmFjZXIiLAotICAgICAgICBAImNvbS5hcHBsZS5p
bmRpZ28iLAotICAgICAgICBAImNvbS5hcHBsZS5pb2tpdC5JT01vYmlsZUdyYXBoaWNzRmFtaWx5
IiwKICAgICAgICAgQCJjb20uYXBwbGUuaXR1bmVzc3RvcmVkIiwKLSAgICAgICAgQCJjb20uYXBw
bGUua2V5Ym9hcmQiLAotI2Vsc2UKLSAgICAgICAgQCJjb20uYXBwbGUuY3J5cHRvIiwKLSAgICAg
ICAgQCJjb20uYXBwbGUuZHJpdmVyLkFwcGxlQmx1ZXRvb3RoTXVsdGl0b3VjaC5tb3VzZSIsCi0g
ICAgICAgIEAiY29tLmFwcGxlLmRyaXZlci5BcHBsZUJsdWV0b290aE11bHRpdG91Y2gudHJhY2tw
YWQiLAotICAgICAgICBAImNvbS5hcHBsZS5kcml2ZXIuQXBwbGVISURNb3VzZSIKLSNlbmRpZgot
ICAgICAgICBAImNvbS5hcHBsZS5sb29rdXAuc2hhcmVkIiwKLSAgICAgICAgQCJjb20uYXBwbGUu
bWVkaWFhY2Nlc3NpYmlsaXR5IiwKLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgICAgICBA
ImNvbS5hcHBsZS5tZWRpYWFjY2Vzc2liaWxpdHkucHVibGljIiwKICAgICAgICAgQCJjb20uYXBw
bGUubWVkaWFyZW1vdGUiLAotICAgICAgICBAImNvbS5hcHBsZS5tb2JpbGVpcG9kIiwKLSAgICAg
ICAgQCJjb20uYXBwbGUubXQiLAotI2Vsc2UKLSAgICAgICAgQCJjb20uYXBwbGUubmV0d29ya0Nv
bm5lY3QiCi0jZW5kaWYKLSAgICAgICAgQCJjb20uYXBwbGUub3BlbmdsIiwKLSNpZiBQTEFURk9S
TShJT1NfRkFNSUxZKQogICAgICAgICBAImNvbS5hcHBsZS5wcmVmZXJlbmNlcy5zb3VuZHMiLAot
ICAgICAgICBAImNvbS5hcHBsZS5zZWN1cml0eSIsCiAgICAgICAgIEAiY29tLmFwcGxlLnZvaWNl
c2VydmljZXMiLAotICAgICAgICBAImNvbS5hcHBsZS52b2ljZXNlcnZpY2VzLmxvZ2dpbmciLAor
ICAgICAgICBAImtDRlByZWZlcmVuY2VzQW55QXBwbGljYXRpb24iLAogI2Vsc2UKKyAgICAgICAg
QCJjb20uYXBwbGUuQ29yZUdyYXBoaWNzIiwKKyAgICAgICAgQCJjb20uYXBwbGUuSElUb29sYm94
IiwKKyAgICAgICAgQCJjb20uYXBwbGUuU2VydmljZXNNZW51LlNlcnZpY2VzIiwKKyAgICAgICAg
QCJjb20uYXBwbGUuVmlld0JyaWRnZSIsCisgICAgICAgIEAiY29tLmFwcGxlLmF2Zm91bmRhdGlv
biIsCisgICAgICAgIEAiY29tLmFwcGxlLmF2Zm91bmRhdGlvbi52aWRlb3BlcmZvcm1hbmNlaHVk
IiwKKyAgICAgICAgQCJjb20uYXBwbGUuZHJpdmVyLkFwcGxlQmx1ZXRvb3RoTXVsdGl0b3VjaC5t
b3VzZSIsCisgICAgICAgIEAiY29tLmFwcGxlLmRyaXZlci5BcHBsZUJsdWV0b290aE11bHRpdG91
Y2gudHJhY2twYWQiLAorICAgICAgICBAImNvbS5hcHBsZS5tZWRpYWFjY2Vzc2liaWxpdHkiLAog
ICAgICAgICBAImNvbS5hcHBsZS5zcGVlY2gudm9pY2UucHJlZnMiLAotICAgICAgICBAImNvbS5h
cHBsZS5zeXN0ZW1zb3VuZCIsCiAgICAgICAgIEAiY29tLmFwcGxlLnVuaXZlcnNhbGFjY2VzcyIs
Ci0gICAgICAgIEAiY29tLm52aWRpYS5PcGVuR0wiLAotICAgICAgICBAImVkdS5taXQuS2VyYmVy
b3MiLAotI2VuZGlmCiAgICAgICAgIEAia0NGUHJlZmVyZW5jZXNBbnlBcHBsaWNhdGlvbiIsCi0j
aWYgIVBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgICAgIEAicGJzIiwKICNlbmRpZgogICAgIH07
CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29j
b2EubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJv
Y2Vzc1Bvb2xDb2NvYS5tbQkocmV2aXNpb24gMjU4NzgzKQorKysgU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQkod29ya2luZyBjb3B5KQpAQCAtMTcz
LDE0ICsxNzMsNiBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemUoCiAg
ICAgICAgIGluc3RhbGxNZW1vcnlQcmVzc3VyZUhhbmRsZXIoKTsKIAogICAgIHNldExlZ2FjeUN1
c3RvbVByb3RvY29sTWFuYWdlckNsaWVudChtYWtlVW5pcXVlPExlZ2FjeUN1c3RvbVByb3RvY29s
TWFuYWdlckNsaWVudD4oKSk7Ci0KLSNpZiBFTkFCTEUoQ0ZQUkVGU19ESVJFQ1RfTU9ERSkKLSAg
ICBbV0tQcmVmZXJlbmNlT2JzZXJ2ZXIgc3dpenpsZVJlZ2lzdGVyRGVmYXVsdHNdOwotICAgIGRp
c3BhdGNoX2FzeW5jKGRpc3BhdGNoX2dldF9nbG9iYWxfcXVldWUoUU9TX0NMQVNTX0JBQ0tHUk9V
TkQsIDApLCBeewotICAgICAgICAvLyBTdGFydCBvYnNlcnZpbmcgcHJlZmVyZW5jZSBjaGFuZ2Vz
LgotICAgICAgICBbV0tQcmVmZXJlbmNlT2JzZXJ2ZXIgc2hhcmVkSW5zdGFuY2VdOwotICAgIH0p
OwotI2VuZGlmCiB9CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQpAQCAtNjA4LDYgKzYwMCwx
OSBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpyZW1vdGVXZWJJbnNwZWN0b3JFCiB9CiAjZW5kaWYK
IAorI2lmIEVOQUJMRShDRlBSRUZTX0RJUkVDVF9NT0RFKQordm9pZCBXZWJQcm9jZXNzUG9vbDo6
c3RhcnRPYnNlcnZpbmdQcmVmZXJlbmNlQ2hhbmdlcygpCit7CisgICAgc3RhdGljIGRpc3BhdGNo
X29uY2VfdCBvbmNlVG9rZW47CisgICAgZGlzcGF0Y2hfb25jZSgmb25jZVRva2VuLCBeeworICAg
ICAgICBkaXNwYXRjaF9hc3luYyhkaXNwYXRjaF9nZXRfZ2xvYmFsX3F1ZXVlKERJU1BBVENIX1FV
RVVFX1BSSU9SSVRZX0RFRkFVTFQsIDApLCBeeworICAgICAgICAgICAgLy8gU3RhcnQgb2JzZXJ2
aW5nIHByZWZlcmVuY2UgY2hhbmdlcy4KKyAgICAgICAgICAgIFtXS1ByZWZlcmVuY2VPYnNlcnZl
ciBzaGFyZWRJbnN0YW5jZV07CisgICAgICAgIH0pOworICAgIH0pOworfQorI2VuZGlmCisKIHZv
aWQgV2ViUHJvY2Vzc1Bvb2w6OnJlZ2lzdGVyTm90aWZpY2F0aW9uT2JzZXJ2ZXJzKCkKIHsKICNp
ZiAhUExBVEZPUk0oSU9TX0ZBTUlMWSkKQEAgLTY1Miw2ICs2NTcsOSBAQCB2b2lkIFdlYlByb2Nl
c3NQb29sOjpyZWdpc3Rlck5vdGlmaWNhdGlvCiAjZW5kaWYKIAogICAgIG1fYWN0aXZhdGlvbk9i
c2VydmVyID0gW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSBhZGRPYnNlcnZl
ckZvck5hbWU6TlNBcHBsaWNhdGlvbkRpZEJlY29tZUFjdGl2ZU5vdGlmaWNhdGlvbiBvYmplY3Q6
TlNBcHAgcXVldWU6W05TT3BlcmF0aW9uUXVldWUgY3VycmVudFF1ZXVlXSB1c2luZ0Jsb2NrOl4o
TlNOb3RpZmljYXRpb24gKm5vdGlmaWNhdGlvbikgeworI2lmIEVOQUJMRShDRlBSRUZTX0RJUkVD
VF9NT0RFKQorICAgICAgICBzdGFydE9ic2VydmluZ1ByZWZlcmVuY2VDaGFuZ2VzKCk7CisjZW5k
aWYKICAgICAgICAgc2V0QXBwbGljYXRpb25Jc0FjdGl2ZSh0cnVlKTsKICAgICB9XTsKIApAQCAt
NjczLDYgKzY4MSwxMSBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpyZWdpc3Rlck5vdGlmaWNhdGlv
CiAgICAgICAgICAgICBtX3Byb2Nlc3Nlc1tpXS0+dW5ibG9ja0FjY2Vzc2liaWxpdHlTZXJ2ZXJJ
Zk5lZWRlZCgpOwogICAgICAgICB9CiAgICAgfV07CisjaWYgRU5BQkxFKENGUFJFRlNfRElSRUNU
X01PREUpCisgICAgbV9hY3RpdmF0aW9uT2JzZXJ2ZXIgPSBbW05TTm90aWZpY2F0aW9uQ2VudGVy
IGRlZmF1bHRDZW50ZXJdIGFkZE9ic2VydmVyRm9yTmFtZTpAIlVJQXBwbGljYXRpb25EaWRCZWNv
bWVBY3RpdmVOb3RpZmljYXRpb24iIG9iamVjdDpuaWwgcXVldWU6W05TT3BlcmF0aW9uUXVldWUg
Y3VycmVudFF1ZXVlXSB1c2luZ0Jsb2NrOl4oTlNOb3RpZmljYXRpb24gKm5vdGlmaWNhdGlvbikg
eworICAgICAgICBzdGFydE9ic2VydmluZ1ByZWZlcmVuY2VDaGFuZ2VzKCk7CisgICAgfV07Cisj
ZW5kaWYKICNlbmRpZiAvLyAhUExBVEZPUk0oSU9TX0ZBTUlMWSkKIH0KIApAQCAtNjg4LDcgKzcw
MSw2IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnVucmVnaXN0ZXJOb3RpZmljYXQKICNpZiBFTkFC
TEUoV0VCUFJPQ0VTU19XSU5ET1dTRVJWRVJfQkxPQ0tJTkcpCiAgICAgW1tOU05vdGlmaWNhdGlv
bkNlbnRlciBkZWZhdWx0Q2VudGVyXSByZW1vdmVPYnNlcnZlcjptX3Njcm9sbGVyU3R5bGVOb3Rp
ZmljYXRpb25PYnNlcnZlci5nZXQoKV07CiAjZW5kaWYKLSAgICBbW05TTm90aWZpY2F0aW9uQ2Vu
dGVyIGRlZmF1bHRDZW50ZXJdIHJlbW92ZU9ic2VydmVyOm1fYWN0aXZhdGlvbk9ic2VydmVyLmdl
dCgpXTsKICAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIHJlbW92ZU9i
c2VydmVyOm1fZGVhY3RpdmF0aW9uT2JzZXJ2ZXIuZ2V0KCldOwogI2VsaWYgIVBMQVRGT1JNKE1B
Q0NBVEFMWVNUKQogICAgIENGTm90aWZpY2F0aW9uQ2VudGVyUmVtb3ZlT2JzZXJ2ZXIoQ0ZOb3Rp
ZmljYXRpb25DZW50ZXJHZXREYXJ3aW5Ob3RpZnlDZW50ZXIoKSwgdGhpcywgc3RhdGljX2Nhc3Q8
Q0ZTdHJpbmdSZWY+KFVJQmFja2xpZ2h0TGV2ZWxDaGFuZ2VkTm90aWZpY2F0aW9uKSAsIG51bGxw
dHIpOwpAQCAtNjk4LDYgKzcxMCw3IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnVucmVnaXN0ZXJO
b3RpZmljYXQKICNlbmRpZgogI2VuZGlmIC8vIFBMQVRGT1JNKElPUykKICAgICBbW05TTm90aWZp
Y2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIHJlbW92ZU9ic2VydmVyOm1fYWNjZXNzaWJpbGl0
eUVuYWJsZWRPYnNlcnZlci5nZXQoKV07CisgICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZh
dWx0Q2VudGVyXSByZW1vdmVPYnNlcnZlcjptX2FjdGl2YXRpb25PYnNlcnZlci5nZXQoKV07CiAj
ZW5kaWYgLy8gIVBMQVRGT1JNKElPU19GQU1JTFkpCiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9jb20uYXBwbGUuV2ViUHJvY2Vzcy5zYi5pbgo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvY29tLmFwcGxlLldlYlByb2Nlc3Muc2IuaW4JKHJldmlzaW9u
IDI1ODc4MykKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb20uYXBwbGUuV2ViUHJvY2Vz
cy5zYi5pbgkod29ya2luZyBjb3B5KQpAQCAtNjc3LDcgKzY3Nyw2IEBACiAgICAgKHdpdGggcmVw
b3J0KSAod2l0aCB0ZWxlbWV0cnkpCiAjZW5kaWYKICAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBs
ZS5Qb3dlck1hbmFnZW1lbnQuY29udHJvbCIpCi0gICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUu
Y2ZwcmVmc2QuZGFlbW9uIikKICAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS5jb3Jlc2Vydmlj
ZXMubGF1bmNoc2VydmljZXNkIikKICAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS5sc2QubWFw
ZGIiKQogICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLnRydXN0ZC5hZ2VudCIpCkluZGV4OiBU
b29scy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAy
NTg3OTApCisrKyBUb29scy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNCBA
QAorMjAyMC0wMy0yMCAgUGVyIEFybmUgVm9sbGFuICA8cHZvbGxhbkBhcHBsZS5jb20+CisKKyAg
ICAgICAgW0NvY29hXSBGaXggbGF1bmNoIHRpbWUgcmVncmVzc2lvbiB3aXRoIENGIHByZWZzIGRp
cmVjdCBtb2RlIGVuYWJsZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIwOTI0NAorCisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvUHJlZmVyZW5jZUNoYW5nZXMubW06
CisgICAgICAgIChURVNUKToKKyAgICAgICAgKHNoYXJlZEluc3RhbmNlTWV0aG9kT3ZlcnJpZGUp
OgorCiAyMDIwLTAzLTIwICBBYWthc2ggSmFpbiAgPGFha2FzaF9qYWluQGFwcGxlLmNvbT4KIAog
ICAgICAgICBjb21taXQtcXVldWUgc2hvdWxkIHNraXAgYnVpbGRpbmcgYW5kIHRlc3RpbmcgaWYg
cGF0Y2ggYWxyZWFkeSBwYXNzZWQgdGVzdHMgb24gbWFjLXdrMiBxdWV1ZQpJbmRleDogVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvUHJlZmVyZW5jZUNoYW5nZXMubW0KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvUHJlZmVyZW5jZUNoYW5nZXMu
bW0JKHJldmlzaW9uIDI1ODc4MykKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
L1ByZWZlcmVuY2VDaGFuZ2VzLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw2ICszMSw4IEBACiAj
aW1wb3J0ICJUZXN0V0tXZWJWaWV3LmgiCiAjaW1wb3J0IDxXZWJLaXQvUHJlZmVyZW5jZU9ic2Vy
dmVyLmg+CiAKKyNpbXBvcnQgPHd0Zi9PYmpDUnVudGltZUV4dHJhcy5oPgorCiBzdGF0aWMgYm9v
bCBkb25lID0gZmFsc2U7CiAKIEBpbnRlcmZhY2UgV0tUZXN0UHJlZmVyZW5jZU9ic2VydmVyIDog
V0tQcmVmZXJlbmNlT2JzZXJ2ZXIKQEAgLTQ0LDE1ICs0NiwxOCBAQCAtICh2b2lkKXByZWZlcmVu
Y2VEaWRDaGFuZ2U6KE5TU3RyaW5nICopCiB9CiBAZW5kCiAKK3N0YXRpYyBjb25zdCBDRlN0cmlu
Z1JlZiB0ZXN0S2V5ID0gQ0ZTVFIoInRlc3RrZXkiKTsKK3N0YXRpYyBjb25zdCBDRlN0cmluZ1Jl
ZiB0ZXN0RG9tYWluID0gQ0ZTVFIoImtDRlByZWZlcmVuY2VzQW55QXBwbGljYXRpb24iKTsKKwog
VEVTVChXZWJLaXQsIFByZWZlcmVuY2VPYnNlcnZlcikKIHsKICAgICBkb25lID0gZmFsc2U7CiAK
LSAgICBDRlByZWZlcmVuY2VzU2V0QXBwVmFsdWUoQ0ZTVFIoInRlc3RrZXkiKSwgQ0ZTVFIoIjEi
KSwgQ0ZTVFIoImNvbS5hcHBsZS5jb3JlbWVkaWEiKSk7CisgICAgQ0ZQcmVmZXJlbmNlc1NldEFw
cFZhbHVlKHRlc3RLZXksIENGU1RSKCIxIiksIHRlc3REb21haW4pOwogCiAgICAgYXV0byBvYnNl
cnZlciA9IGFkb3B0TlMoW1tXS1Rlc3RQcmVmZXJlbmNlT2JzZXJ2ZXIgYWxsb2NdIGluaXRdKTsK
IAotICAgIENGUHJlZmVyZW5jZXNTZXRBcHBWYWx1ZShDRlNUUigidGVzdGtleSIpLCBDRlNUUigi
MiIpLCBDRlNUUigiY29tLmFwcGxlLmNvcmVtZWRpYSIpKTsKKyAgICBDRlByZWZlcmVuY2VzU2V0
QXBwVmFsdWUodGVzdEtleSwgQ0ZTVFIoIjIiKSwgdGVzdERvbWFpbik7CiAKICAgICBUZXN0V2Vi
S2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOwogfQpAQCAtNjMsMjIgKzY4LDIyIEBAIFRFU1QoV2Vi
S2l0LCBQcmVmZXJlbmNlT2JzZXJ2ZXJBcnJheSkKIAogICAgIE5TQXJyYXkgKmFycmF5ID0gQFtA
MSwgQDIsIEAzXTsKIAotICAgIGF1dG8gdXNlckRlZmF1bHRzID0gYWRvcHROUyhbW05TVXNlckRl
ZmF1bHRzIGFsbG9jXSBpbml0V2l0aFN1aXRlTmFtZTpAImNvbS5hcHBsZS5jb3JlbWVkaWEiXSk7
Ci0gICAgW3VzZXJEZWZhdWx0cy5nZXQoKSBzZXRPYmplY3Q6YXJyYXkgZm9yS2V5OkAidGVzdGtl
eSJdOworICAgIGF1dG8gdXNlckRlZmF1bHRzID0gYWRvcHROUyhbW05TVXNlckRlZmF1bHRzIGFs
bG9jXSBpbml0V2l0aFN1aXRlTmFtZTooTlNTdHJpbmcgKil0ZXN0RG9tYWluXSk7CisgICAgW3Vz
ZXJEZWZhdWx0cy5nZXQoKSBzZXRPYmplY3Q6YXJyYXkgZm9yS2V5OihOU1N0cmluZyAqKXRlc3RL
ZXldOwogCiAgICAgYXV0byBvYnNlcnZlciA9IGFkb3B0TlMoW1tXS1Rlc3RQcmVmZXJlbmNlT2Jz
ZXJ2ZXIgYWxsb2NdIGluaXRdKTsKIAogICAgIE5TQXJyYXkgKmNoYW5nZWRBcnJheSA9IEBbQDMs
IEAyLCBAMV07Ci0gICAgW3VzZXJEZWZhdWx0cy5nZXQoKSBzZXRPYmplY3Q6Y2hhbmdlZEFycmF5
IGZvcktleTpAInRlc3RrZXkiXTsKKyAgICBbdXNlckRlZmF1bHRzLmdldCgpIHNldE9iamVjdDpj
aGFuZ2VkQXJyYXkgZm9yS2V5OihOU1N0cmluZyAqKXRlc3RLZXldOwogCiAgICAgVGVzdFdlYktp
dEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKIH0KIAogVEVTVChXZWJLaXQsIFByZWZlcmVuY2VDaGFu
Z2VzKQogewotICAgIENGUHJlZmVyZW5jZXNTZXRBcHBWYWx1ZShDRlNUUigidGVzdGtleSIpLCBD
RlNUUigiMSIpLCBDRlNUUigiY29tLmFwcGxlLmNvcmVtZWRpYSIpKTsKKyAgICBDRlByZWZlcmVu
Y2VzU2V0QXBwVmFsdWUodGVzdEtleSwgQ0ZTVFIoIjEiKSwgdGVzdERvbWFpbik7CiAKLSAgICBF
WFBFQ1RfRVEoMSwgQ0ZQcmVmZXJlbmNlc0dldEFwcEludGVnZXJWYWx1ZShDRlNUUigidGVzdGtl
eSIpLCBDRlNUUigiY29tLmFwcGxlLmNvcmVtZWRpYSIpLCBudWxscHRyKSk7CisgICAgRVhQRUNU
X0VRKDEsIENGUHJlZmVyZW5jZXNHZXRBcHBJbnRlZ2VyVmFsdWUodGVzdEtleSwgdGVzdERvbWFp
biwgbnVsbHB0cikpOwogCiAgICAgYXV0byBjb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2Vi
Vmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKICAgICBXS1JldGFpblB0cjxXS0NvbnRl
eHRSZWY+IGNvbnRleHQgPSBhZG9wdFdLKFRlc3RXZWJLaXRBUEk6OlV0aWw6OmNyZWF0ZUNvbnRl
eHRGb3JJbmplY3RlZEJ1bmRsZVRlc3QoIkludGVybmFsc0luamVjdGVkQnVuZGxlVGVzdCIpKTsK
QEAgLTg2LDEyICs5MSwxMyBAQCBURVNUKFdlYktpdCwgUHJlZmVyZW5jZUNoYW5nZXMpCiAgICAg
YXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJh
bWU6TlNNYWtlUmVjdCgwLCAwLCAzMDAsIDMwMCkgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9u
LmdldCgpIGFkZFRvV2luZG93OllFU10pOwogCiAgICAgYXV0byBwcmVmZXJlbmNlVmFsdWUgPSBb
Jl0gewotICAgICAgICByZXR1cm4gW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlw
dDpAIndpbmRvdy5pbnRlcm5hbHMucmVhZFByZWZlcmVuY2VJbnRlZ2VyKFwiY29tLmFwcGxlLmNv
cmVtZWRpYVwiLCBcInRlc3RrZXlcIikiXS5pbnRWYWx1ZTsKKyAgICAgICAgTlNTdHJpbmcgKmpz
ID0gW05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCJ3aW5kb3cuaW50ZXJuYWxzLnJlYWRQcmVm
ZXJlbmNlSW50ZWdlcihcIiVAXCIsXCIlQFwiKSIsIChOU1N0cmluZyAqKXRlc3REb21haW4sIChO
U1N0cmluZyAqKXRlc3RLZXldOworICAgICAgICByZXR1cm4gW3dlYlZpZXcgc3RyaW5nQnlFdmFs
dWF0aW5nSmF2YVNjcmlwdDpqc10uaW50VmFsdWU7CiAgICAgfTsKIAogICAgIEVYUEVDVF9FUShw
cmVmZXJlbmNlVmFsdWUoKSwgMSk7CiAKLSAgICBDRlByZWZlcmVuY2VzU2V0QXBwVmFsdWUoQ0ZT
VFIoInRlc3RrZXkiKSwgQ0ZTVFIoIjIiKSwgQ0ZTVFIoImNvbS5hcHBsZS5jb3JlbWVkaWEiKSk7
CisgICAgQ0ZQcmVmZXJlbmNlc1NldEFwcFZhbHVlKHRlc3RLZXksIENGU1RSKCIyIiksIHRlc3RE
b21haW4pOwogCiAgICAgRVhQRUNUX0VRKHByZWZlcmVuY2VWYWx1ZSgpLCAyKTsKIH0KQEAgLTEw
MCw4ICsxMDYsOCBAQCBURVNUKFdlYktpdCwgUHJlZmVyZW5jZUNoYW5nZXNBcnJheSkKIHsKICAg
ICBOU0FycmF5ICphcnJheSA9IEBbQDEsIEAyLCBAM107CiAKLSAgICBhdXRvIHVzZXJEZWZhdWx0
cyA9IGFkb3B0TlMoW1tOU1VzZXJEZWZhdWx0cyBhbGxvY10gaW5pdFdpdGhTdWl0ZU5hbWU6QCJj
b20uYXBwbGUuY29yZW1lZGlhIl0pOwotICAgIFt1c2VyRGVmYXVsdHMuZ2V0KCkgc2V0T2JqZWN0
OmFycmF5IGZvcktleTpAInRlc3RrZXkiXTsKKyAgICBhdXRvIHVzZXJEZWZhdWx0cyA9IGFkb3B0
TlMoW1tOU1VzZXJEZWZhdWx0cyBhbGxvY10gaW5pdFdpdGhTdWl0ZU5hbWU6KE5TU3RyaW5nICop
dGVzdERvbWFpbl0pOworICAgIFt1c2VyRGVmYXVsdHMuZ2V0KCkgc2V0T2JqZWN0OmFycmF5IGZv
cktleTooTlNTdHJpbmcgKil0ZXN0S2V5XTsKIAogICAgIGF1dG8gY29uZmlndXJhdGlvbiA9IGFk
b3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CiAgICAgV0tSZXRh
aW5QdHI8V0tDb250ZXh0UmVmPiBjb250ZXh0ID0gYWRvcHRXSyhUZXN0V2ViS2l0QVBJOjpVdGls
OjpjcmVhdGVDb250ZXh0Rm9ySW5qZWN0ZWRCdW5kbGVUZXN0KCJJbnRlcm5hbHNJbmplY3RlZEJ1
bmRsZVRlc3QiKSk7CkBAIC0xMDksMTMgKzExNSwxNCBAQCBURVNUKFdlYktpdCwgUHJlZmVyZW5j
ZUNoYW5nZXNBcnJheSkKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmll
dyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDMwMCwgMzAwKSBjb25maWd1
cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCkgYWRkVG9XaW5kb3c6WUVTXSk7CiAKICAgICBhdXRv
IHByZWZlcmVuY2VWYWx1ZSA9IFsmXSB7Ci0gICAgICAgIHJldHVybiBbd2ViVmlldyBzdHJpbmdC
eUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAid2luZG93LmludGVybmFscy5lbmNvZGVkUHJlZmVyZW5j
ZVZhbHVlKFwiY29tLmFwcGxlLmNvcmVtZWRpYVwiLCBcInRlc3RrZXlcIikiXTsKKyAgICAgICAg
TlNTdHJpbmcgKmpzID0gW05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCJ3aW5kb3cuaW50ZXJu
YWxzLmVuY29kZWRQcmVmZXJlbmNlVmFsdWUoXCIlQFwiLFwiJUBcIikiLCAoTlNTdHJpbmcgKil0
ZXN0RG9tYWluLCAoTlNTdHJpbmcgKil0ZXN0S2V5XTsKKyAgICAgICAgcmV0dXJuIFt3ZWJWaWV3
IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6anNdOwogICAgIH07CiAKICAgICBwcmVmZXJl
bmNlVmFsdWUoKTsKIAogICAgIE5TQXJyYXkgKmNoYW5nZWRBcnJheSA9IEBbQDMsIEAyLCBAMV07
Ci0gICAgW3VzZXJEZWZhdWx0cy5nZXQoKSBzZXRPYmplY3Q6Y2hhbmdlZEFycmF5IGZvcktleTpA
InRlc3RrZXkiXTsKKyAgICBbdXNlckRlZmF1bHRzLmdldCgpIHNldE9iamVjdDpjaGFuZ2VkQXJy
YXkgZm9yS2V5OihOU1N0cmluZyAqKXRlc3RLZXldOwogCiAgICAgYXV0byBlbmNvZGVkU3RyaW5n
ID0gcHJlZmVyZW5jZVZhbHVlKCk7CiAgICAgYXV0byBlbmNvZGVkRGF0YSA9IGFkb3B0TlMoW1tO
U0RhdGEgYWxsb2NdIGluaXRXaXRoQmFzZTY0RW5jb2RlZFN0cmluZzplbmNvZGVkU3RyaW5nIG9w
dGlvbnM6MF0pOwpAQCAtMTM0LDggKzE0MSw4IEBAIFRFU1QoV2ViS2l0LCBQcmVmZXJlbmNlQ2hh
bmdlc0RpY3Rpb25hcnkKICAgICAgICAgQCJiIiA6IEAyLAogICAgIH07CiAKLSAgICBhdXRvIHVz
ZXJEZWZhdWx0cyA9IGFkb3B0TlMoW1tOU1VzZXJEZWZhdWx0cyBhbGxvY10gaW5pdFdpdGhTdWl0
ZU5hbWU6QCJjb20uYXBwbGUuY29yZW1lZGlhIl0pOwotICAgIFt1c2VyRGVmYXVsdHMuZ2V0KCkg
c2V0T2JqZWN0OmRpY3QgZm9yS2V5OkAidGVzdGtleSJdOworICAgIGF1dG8gdXNlckRlZmF1bHRz
ID0gYWRvcHROUyhbW05TVXNlckRlZmF1bHRzIGFsbG9jXSBpbml0V2l0aFN1aXRlTmFtZTooTlNT
dHJpbmcgKil0ZXN0RG9tYWluXSk7CisgICAgW3VzZXJEZWZhdWx0cy5nZXQoKSBzZXRPYmplY3Q6
ZGljdCBmb3JLZXk6KE5TU3RyaW5nICopdGVzdEtleV07CiAKICAgICBhdXRvIGNvbmZpZ3VyYXRp
b24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOwogICAg
IFdLUmV0YWluUHRyPFdLQ29udGV4dFJlZj4gY29udGV4dCA9IGFkb3B0V0soVGVzdFdlYktpdEFQ
STo6VXRpbDo6Y3JlYXRlQ29udGV4dEZvckluamVjdGVkQnVuZGxlVGVzdCgiSW50ZXJuYWxzSW5q
ZWN0ZWRCdW5kbGVUZXN0IikpOwpAQCAtMTQzLDcgKzE1MCw4IEBAIFRFU1QoV2ViS2l0LCBQcmVm
ZXJlbmNlQ2hhbmdlc0RpY3Rpb25hcnkKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVz
dFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDMwMCwgMzAw
KSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCkgYWRkVG9XaW5kb3c6WUVTXSk7CiAK
ICAgICBhdXRvIHByZWZlcmVuY2VWYWx1ZSA9IFsmXSB7Ci0gICAgICAgIHJldHVybiBbd2ViVmll
dyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAid2luZG93LmludGVybmFscy5lbmNvZGVk
UHJlZmVyZW5jZVZhbHVlKFwiY29tLmFwcGxlLmNvcmVtZWRpYVwiLCBcInRlc3RrZXlcIikiXTsK
KyAgICAgICAgTlNTdHJpbmcgKmpzID0gW05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCJ3aW5k
b3cuaW50ZXJuYWxzLmVuY29kZWRQcmVmZXJlbmNlVmFsdWUoXCIlQFwiLFwiJUBcIikiLCAoTlNT
dHJpbmcgKil0ZXN0RG9tYWluLCAoTlNTdHJpbmcgKil0ZXN0S2V5XTsKKyAgICAgICAgcmV0dXJu
IFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6anNdOwogICAgIH07CiAKICAg
ICBwcmVmZXJlbmNlVmFsdWUoKTsKQEAgLTE1Myw3ICsxNjEsNyBAQCBURVNUKFdlYktpdCwgUHJl
ZmVyZW5jZUNoYW5nZXNEaWN0aW9uYXJ5CiAgICAgICAgIEAiYiIgOiBAMiwKICAgICAgICAgQCJj
IiA6IEAzLAogICAgIH07Ci0gICAgW3VzZXJEZWZhdWx0cy5nZXQoKSBzZXRPYmplY3Q6Y2hhbmdl
ZERpY3QgZm9yS2V5OkAidGVzdGtleSJdOworICAgIFt1c2VyRGVmYXVsdHMuZ2V0KCkgc2V0T2Jq
ZWN0OmNoYW5nZWREaWN0IGZvcktleTooTlNTdHJpbmcgKil0ZXN0S2V5XTsKIAogICAgIGF1dG8g
ZW5jb2RlZFN0cmluZyA9IHByZWZlcmVuY2VWYWx1ZSgpOwogICAgIGF1dG8gZW5jb2RlZERhdGEg
PSBhZG9wdE5TKFtbTlNEYXRhIGFsbG9jXSBpbml0V2l0aEJhc2U2NEVuY29kZWRTdHJpbmc6ZW5j
b2RlZFN0cmluZyBvcHRpb25zOjBdKTsKQEAgLTE2OSw4ICsxNzcsOCBAQCBURVNUKFdlYktpdCwg
UHJlZmVyZW5jZUNoYW5nZXNEYXRhKQogewogICAgIE5TRGF0YSAqZGF0YSA9IFtOU0RhdGEgZGF0
YVdpdGhCeXRlczoiYWJjIiBsZW5ndGg6M107CiAKLSAgICBhdXRvIHVzZXJEZWZhdWx0cyA9IGFk
b3B0TlMoW1tOU1VzZXJEZWZhdWx0cyBhbGxvY10gaW5pdFdpdGhTdWl0ZU5hbWU6QCJjb20uYXBw
bGUuY29yZW1lZGlhIl0pOwotICAgIFt1c2VyRGVmYXVsdHMuZ2V0KCkgc2V0T2JqZWN0OmRhdGEg
Zm9yS2V5OkAidGVzdGtleSJdOworICAgIGF1dG8gdXNlckRlZmF1bHRzID0gYWRvcHROUyhbW05T
VXNlckRlZmF1bHRzIGFsbG9jXSBpbml0V2l0aFN1aXRlTmFtZTooTlNTdHJpbmcgKil0ZXN0RG9t
YWluXSk7CisgICAgW3VzZXJEZWZhdWx0cy5nZXQoKSBzZXRPYmplY3Q6ZGF0YSBmb3JLZXk6KE5T
U3RyaW5nICopdGVzdEtleV07CiAKICAgICBhdXRvIGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtb
V0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOwogICAgIFdLUmV0YWluUHRyPFdL
Q29udGV4dFJlZj4gY29udGV4dCA9IGFkb3B0V0soVGVzdFdlYktpdEFQSTo6VXRpbDo6Y3JlYXRl
Q29udGV4dEZvckluamVjdGVkQnVuZGxlVGVzdCgiSW50ZXJuYWxzSW5qZWN0ZWRCdW5kbGVUZXN0
IikpOwpAQCAtMTc4LDEzICsxODYsMTQgQEAgVEVTVChXZWJLaXQsIFByZWZlcmVuY2VDaGFuZ2Vz
RGF0YSkKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10g
aW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDMwMCwgMzAwKSBjb25maWd1cmF0aW9uOmNv
bmZpZ3VyYXRpb24uZ2V0KCkgYWRkVG9XaW5kb3c6WUVTXSk7CiAKICAgICBhdXRvIHByZWZlcmVu
Y2VWYWx1ZSA9IFsmXSB7Ci0gICAgICAgIHJldHVybiBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRp
bmdKYXZhU2NyaXB0OkAid2luZG93LmludGVybmFscy5lbmNvZGVkUHJlZmVyZW5jZVZhbHVlKFwi
Y29tLmFwcGxlLmNvcmVtZWRpYVwiLCBcInRlc3RrZXlcIikiXTsKKyAgICAgICAgTlNTdHJpbmcg
KmpzID0gW05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCJ3aW5kb3cuaW50ZXJuYWxzLmVuY29k
ZWRQcmVmZXJlbmNlVmFsdWUoXCIlQFwiLFwiJUBcIikiLCAoTlNTdHJpbmcgKil0ZXN0RG9tYWlu
LCAoTlNTdHJpbmcgKil0ZXN0S2V5XTsKKyAgICAgICAgcmV0dXJuIFt3ZWJWaWV3IHN0cmluZ0J5
RXZhbHVhdGluZ0phdmFTY3JpcHQ6anNdOwogICAgIH07CiAKICAgICBwcmVmZXJlbmNlVmFsdWUo
KTsKIAogICAgIE5TRGF0YSAqY2hhbmdlZERhdGEgPSBbTlNEYXRhIGRhdGFXaXRoQnl0ZXM6ImFi
Y2QiIGxlbmd0aDo0XTsKLSAgICBbdXNlckRlZmF1bHRzLmdldCgpIHNldE9iamVjdDpjaGFuZ2Vk
RGF0YSBmb3JLZXk6QCJ0ZXN0a2V5Il07CisgICAgW3VzZXJEZWZhdWx0cy5nZXQoKSBzZXRPYmpl
Y3Q6Y2hhbmdlZERhdGEgZm9yS2V5OihOU1N0cmluZyAqKXRlc3RLZXldOwogCiAgICAgYXV0byBl
bmNvZGVkU3RyaW5nID0gcHJlZmVyZW5jZVZhbHVlKCk7CiAgICAgYXV0byBlbmNvZGVkRGF0YSA9
IGFkb3B0TlMoW1tOU0RhdGEgYWxsb2NdIGluaXRXaXRoQmFzZTY0RW5jb2RlZFN0cmluZzplbmNv
ZGVkU3RyaW5nIG9wdGlvbnM6MF0pOwpAQCAtMjAwLDggKzIwOSw4IEBAIFRFU1QoV2ViS2l0LCBQ
cmVmZXJlbmNlQ2hhbmdlc0RhdGUpCiB7CiAgICAgTlNEYXRlICpkYXRlID0gW05TRGF0ZSBkYXRl
V2l0aFRpbWVJbnRlcnZhbFNpbmNlTm93OjBdOwogCi0gICAgYXV0byB1c2VyRGVmYXVsdHMgPSBh
ZG9wdE5TKFtbTlNVc2VyRGVmYXVsdHMgYWxsb2NdIGluaXRXaXRoU3VpdGVOYW1lOkAiY29tLmFw
cGxlLmNvcmVtZWRpYSJdKTsKLSAgICBbdXNlckRlZmF1bHRzLmdldCgpIHNldE9iamVjdDpkYXRl
IGZvcktleTpAInRlc3RrZXkiXTsKKyAgICBhdXRvIHVzZXJEZWZhdWx0cyA9IGFkb3B0TlMoW1tO
U1VzZXJEZWZhdWx0cyBhbGxvY10gaW5pdFdpdGhTdWl0ZU5hbWU6KE5TU3RyaW5nICopdGVzdERv
bWFpbl0pOworICAgIFt1c2VyRGVmYXVsdHMuZ2V0KCkgc2V0T2JqZWN0OmRhdGUgZm9yS2V5OihO
U1N0cmluZyAqKXRlc3RLZXldOwogCiAgICAgYXV0byBjb25maWd1cmF0aW9uID0gYWRvcHROUyhb
W1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKICAgICBXS1JldGFpblB0cjxX
S0NvbnRleHRSZWY+IGNvbnRleHQgPSBhZG9wdFdLKFRlc3RXZWJLaXRBUEk6OlV0aWw6OmNyZWF0
ZUNvbnRleHRGb3JJbmplY3RlZEJ1bmRsZVRlc3QoIkludGVybmFsc0luamVjdGVkQnVuZGxlVGVz
dCIpKTsKQEAgLTIwOSwxMyArMjE4LDE0IEBAIFRFU1QoV2ViS2l0LCBQcmVmZXJlbmNlQ2hhbmdl
c0RhdGUpCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2Nd
IGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCAzMDAsIDMwMCkgY29uZmlndXJhdGlvbjpj
b25maWd1cmF0aW9uLmdldCgpIGFkZFRvV2luZG93OllFU10pOwogCiAgICAgYXV0byBwcmVmZXJl
bmNlVmFsdWUgPSBbJl0gewotICAgICAgICByZXR1cm4gW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0
aW5nSmF2YVNjcmlwdDpAIndpbmRvdy5pbnRlcm5hbHMuZW5jb2RlZFByZWZlcmVuY2VWYWx1ZShc
ImNvbS5hcHBsZS5jb3JlbWVkaWFcIiwgXCJ0ZXN0a2V5XCIpIl07CisgICAgICAgIE5TU3RyaW5n
ICpqcyA9IFtOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAid2luZG93LmludGVybmFscy5lbmNv
ZGVkUHJlZmVyZW5jZVZhbHVlKFwiJUBcIixcIiVAXCIpIiwgKE5TU3RyaW5nICopdGVzdERvbWFp
biwgKE5TU3RyaW5nICopdGVzdEtleV07CisgICAgICAgIHJldHVybiBbd2ViVmlldyBzdHJpbmdC
eUV2YWx1YXRpbmdKYXZhU2NyaXB0OmpzXTsKICAgICB9OwogCiAgICAgcHJlZmVyZW5jZVZhbHVl
KCk7CiAKICAgICBOU0RhdGUgKmNoYW5nZWREYXRlID0gW05TRGF0ZSBkYXRlV2l0aFRpbWVJbnRl
cnZhbFNpbmNlTm93OjEwXTsKLSAgICBbdXNlckRlZmF1bHRzLmdldCgpIHNldE9iamVjdDpjaGFu
Z2VkRGF0ZSBmb3JLZXk6QCJ0ZXN0a2V5Il07CisgICAgW3VzZXJEZWZhdWx0cy5nZXQoKSBzZXRP
YmplY3Q6Y2hhbmdlZERhdGUgZm9yS2V5OihOU1N0cmluZyAqKXRlc3RLZXldOwogCiAgICAgYXV0
byBlbmNvZGVkU3RyaW5nID0gcHJlZmVyZW5jZVZhbHVlKCk7CiAgICAgYXV0byBlbmNvZGVkRGF0
YSA9IGFkb3B0TlMoW1tOU0RhdGEgYWxsb2NdIGluaXRXaXRoQmFzZTY0RW5jb2RlZFN0cmluZzpl
bmNvZGVkU3RyaW5nIG9wdGlvbnM6MF0pOwpAQCAtMjI3LDQgKzIzNywzMiBAQCBURVNUKFdlYktp
dCwgUHJlZmVyZW5jZUNoYW5nZXNEYXRlKQogICAgIEFTU0VSVF9UUlVFKFtvYmplY3QgaXNFcXVh
bDpjaGFuZ2VkRGF0ZV0pOwogfQogCitzdGF0aWMgSU1QIHNoYXJlZEluc3RhbmNlTWV0aG9kT3Jp
Z2luYWwgPSBuaWw7CisKK3N0YXRpYyBXS1ByZWZlcmVuY2VPYnNlcnZlciAqc2hhcmVkSW5zdGFu
Y2VNZXRob2RPdmVycmlkZShpZCBzZWxmLCBTRUwgc2VsZWN0b3IpCit7CisgICAgZG9uZSA9IHRy
dWU7CisgICAgcmV0dXJuIHd0ZkNhbGxJTVA8V0tQcmVmZXJlbmNlT2JzZXJ2ZXIgKj4oc2hhcmVk
SW5zdGFuY2VNZXRob2RPcmlnaW5hbCwgc2VsZiwgc2VsZWN0b3IpOworfQorCitURVNUKFdlYktp
dCwgUHJlZmVyZW5jZU9ic2VydmVyU3RhcnRlZE9uQWN0aXZhdGlvbikKK3sKKyAgICBkb25lID0g
ZmFsc2U7CisgICAgTWV0aG9kIHNoYXJlZEluc3RhbmNlTWV0aG9kID0gY2xhc3NfZ2V0Q2xhc3NN
ZXRob2Qob2JqY19nZXRDbGFzcygiV0tQcmVmZXJlbmNlT2JzZXJ2ZXIiKSwgQHNlbGVjdG9yKHNo
YXJlZEluc3RhbmNlKSk7CisgICAgQVNTRVJUKHNoYXJlZEluc3RhbmNlTWV0aG9kKTsKKyAgICBz
aGFyZWRJbnN0YW5jZU1ldGhvZE9yaWdpbmFsID0gbWV0aG9kX3NldEltcGxlbWVudGF0aW9uKHNo
YXJlZEluc3RhbmNlTWV0aG9kLCAoSU1QKXNoYXJlZEluc3RhbmNlTWV0aG9kT3ZlcnJpZGUpOwor
ICAgIEFTU0VSVChzaGFyZWRJbnN0YW5jZU1ldGhvZE9yaWdpbmFsKTsKKworICAgIGF1dG8gY29u
ZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0
XSk7CisgICAgV0tSZXRhaW5QdHI8V0tDb250ZXh0UmVmPiBjb250ZXh0ID0gYWRvcHRXSyhUZXN0
V2ViS2l0QVBJOjpVdGlsOjpjcmVhdGVDb250ZXh0Rm9ySW5qZWN0ZWRCdW5kbGVUZXN0KCJJbnRl
cm5hbHNJbmplY3RlZEJ1bmRsZVRlc3QiKSk7CisgICAgY29uZmlndXJhdGlvbi5nZXQoKS5wcm9j
ZXNzUG9vbCA9IChXS1Byb2Nlc3NQb29sICopY29udGV4dC5nZXQoKTsKKyAgICBhdXRvIHdlYlZp
ZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VS
ZWN0KDAsIDAsIDMwMCwgMzAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCkgYWRk
VG9XaW5kb3c6WUVTXSk7CisKKyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZFRlc3RQYWdl
TmFtZWQ6QCJzaW1wbGUiXTsKKworICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENl
bnRlcl0gcG9zdE5vdGlmaWNhdGlvbk5hbWU6TlNBcHBsaWNhdGlvbkRpZEJlY29tZUFjdGl2ZU5v
dGlmaWNhdGlvbiBvYmplY3Q6TlNBcHAgdXNlckluZm86bmlsXTsKKworICAgIFRlc3RXZWJLaXRB
UEk6OlV0aWw6OnJ1bigmZG9uZSk7Cit9CisKICNlbmRpZiAvLyBXS19IQVZFX0NfU1BJCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>394378</attachid>
            <date>2020-03-24 09:53:50 -0700</date>
            <delta_ts>2020-03-24 15:41:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209244-20200324095349.patch</filename>
            <type>text/plain</type>
            <size>26529</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyNTg4NDcpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDIwLTAzLTI0ICBQZXIgQXJuZSBWb2xsYW4gIDxw
dm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIEZpeCBsYXVuY2ggdGltZSByZWdy
ZXNzaW9uIHdpdGggQ0YgcHJlZnMgZGlyZWN0IG1vZGUgZW5hYmxlZAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA5MjQ0CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgUmUtZW5hYmxlIENGIHByZWZzIGRpcmVjdCBt
b2RlLgorCisgICAgICAgICogd3RmL1BsYXRmb3JtRW5hYmxlLmg6CisgICAgICAgICogd3RmL1Bs
YXRmb3JtRW5hYmxlQ29jb2EuaDoKKwogMjAyMC0wMy0yMyAgSmFjb2IgVXBob2ZmICA8amFjb2Jf
dXBob2ZmQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByZXZlcnRpbmcgcjI1ODgw
My4KSW5kZXg6IFNvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dURi93dGYvUGxhdGZvcm1FbmFibGUuaAkocmV2aXNpb24gMjU4ODQ3KQorKysgU291
cmNlL1dURi93dGYvUGxhdGZvcm1FbmFibGUuaAkod29ya2luZyBjb3B5KQpAQCAtNTUzLDYgKzU1
Myw5IEBACiAjZGVmaW5lIEVOQUJMRV9NQUxMT0NfSEVBUF9CUkVBS0RPV04gMAogI2VuZGlmCiAK
KyNpZiAhZGVmaW5lZChFTkFCTEVfQ0ZQUkVGU19ESVJFQ1RfTU9ERSkKKyNkZWZpbmUgRU5BQkxF
X0NGUFJFRlNfRElSRUNUX01PREUgMAorI2VuZGlmCiAKIAogCkBAIC04NzAsNSArODczLDMgQEAK
ICNpZiBFTkFCTEUoV0VCR0wyKSAmJiAhRU5BQkxFKFdFQkdMKQogI2Vycm9yICJFTkFCTEUoV0VC
R0wyKSByZXF1aXJlcyBFTkFCTEUoV0VCR0wpIgogI2VuZGlmCi0KLSNkZWZpbmUgRU5BQkxFX0NG
UFJFRlNfRElSRUNUX01PREUgMApJbmRleDogU291cmNlL1dURi93dGYvUGxhdGZvcm1FbmFibGVD
b2NvYS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlQ29jb2Eu
aAkocmV2aXNpb24gMjU4ODQ3KQorKysgU291cmNlL1dURi93dGYvUGxhdGZvcm1FbmFibGVDb2Nv
YS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yODAsMyArMjgwLDcgQEAKICNpZiAhZGVmaW5lZChFTkFC
TEVfVEFLRV9VTkJPVU5ERURfTkVUV09SS0lOR19BU1NFUlRJT04pICYmIChQTEFURk9STShJT1Mp
IHx8IFBMQVRGT1JNKE1BQ0NBVEFMWVNUKSkKICNkZWZpbmUgRU5BQkxFX1RBS0VfVU5CT1VOREVE
X05FVFdPUktJTkdfQVNTRVJUSU9OIDEKICNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0NG
UFJFRlNfRElSRUNUX01PREUpCisjZGVmaW5lIEVOQUJMRV9DRlBSRUZTX0RJUkVDVF9NT0RFIDEK
KyNlbmRpZgpJbmRleDogU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1ODg0NykKKysrIFNvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjcgQEAKKzIwMjAtMDMtMjQgIFBl
ciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gRml4
IGxhdW5jaCB0aW1lIHJlZ3Jlc3Npb24gd2l0aCBDRiBwcmVmcyBkaXJlY3QgbW9kZSBlbmFibGVk
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDkyNDQK
KyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzYwNTQyMTQ5PgorCisgICAgICAgIFJldmlld2VkIGJ5
IERhcmluIEFkbGVyLgorCisgICAgICAgIFdoZW4gQ0YgcHJlZnMgZGlyZWN0IG1vZGUgd2FzIGVu
YWJsZWQgaW4gaHR0cHM6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzI1ODA2NC93ZWJraXQs
IGl0IGludHJvZHVjZWQKKyAgICAgICAgYSBzaWduaWZpY2FudCBsYXVuY2ggdGltZSByZWdyZXNz
aW9uLiBUaGlzIHBhdGNoIGFkZHJlc3NlcyB0aGlzIHJlZ3Jlc3Npb24uIFRoZSBudW1iZXIgb2Yg
b2JzZXJ2ZWQgZG9tYWlucworICAgICAgICBpcyByZWR1Y2VkIGFuZCBkb21haW4gb2JzZXJ2YXRp
b24gaXMgaW5pdGlhdGVkIGxhdGVyIHdoZW4gU2FmYXJpIGlzIGZpcnN0IGFjdGl2YXRlZC4gU3dp
enpsaW5nIGNvZGUgaXMKKyAgICAgICAgcmVtb3ZlZCwgc2luY2UgdGhhdCBoYXMgYSBwZXJmb3Jt
YW5jZSBjb3N0IGluIHRoZSBPYmplY3RpdmUtQyBydW50aW1lLiBOb3JtYWwgcHJpb3JpdHkgaW5z
dGVhZCBvZgorICAgICAgICBRT1NfQ0xBU1NfQkFDS0dST1VORCBpcyB1c2VkIGluIHRoZSB0aHJl
YWQgd2hpY2ggc3RhcnRzIHRoZSBvYnNlcnZpbmcsIHNpbmNlIHVzaW5nIGEgYmFja2dyb3VuZCBw
cmlvcml0eQorICAgICAgICBjbGFzcyBjYW4gbGVhZCB0byBwcmlvcml0eSBpbnZlcnNpb24uIEZp
bmFsbHksIGEgZGljdGlvbmFyeSBjb21wYXJpc29uIGlzIHJlbW92ZWQgd2hlbiBhIG5vdGlmaWNh
dGlvbgorICAgICAgICBhYm91dCBhIHByZWZlcmVuY2UgY2hhbmdlIGlzIHJlY2VpdmVkLCBzaW5j
ZSB0aGlzIGNoZWNrIGlzIHJlZHVuZGFudCBhbmQgZG91YmxlcyB0aGUgY29zdCBvZiB0aGlzIG1l
dGhvZC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9QcmVmZXJlbmNlT2JzZXJ2ZXIubW06
CisgICAgICAgICgtW1dLUHJlZmVyZW5jZU9ic2VydmVyIGluaXRdKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBy
b2Nlc3NQb29sOjpyZWdpc3Rlck5vdGlmaWNhdGlvbk9ic2VydmVycyk6CisgICAgICAgIChXZWJL
aXQ6OldlYlByb2Nlc3NQb29sOjp1bnJlZ2lzdGVyTm90aWZpY2F0aW9uT2JzZXJ2ZXJzKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaDoKKwogMjAyMC0wMy0yMyAgUGVyIEFy
bmUgVm9sbGFuICA8cHZvbGxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW2lPU10gRGVueSBtYWNo
IGxvb2t1cCBhY2Nlc3MgdG8gaWNvbiBzZXJ2aWNlcwpJbmRleDogU291cmNlL1dlYktpdC9SZXNv
dXJjZXMvU2FuZGJveFByb2ZpbGVzL2lvcy9jb20uYXBwbGUuV2ViS2l0LldlYkNvbnRlbnQuc2IK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9SZXNvdXJjZXMvU2FuZGJveFByb2ZpbGVzL2lv
cy9jb20uYXBwbGUuV2ViS2l0LldlYkNvbnRlbnQuc2IJKHJldmlzaW9uIDI1ODg0NykKKysrIFNv
dXJjZS9XZWJLaXQvUmVzb3VyY2VzL1NhbmRib3hQcm9maWxlcy9pb3MvY29tLmFwcGxlLldlYktp
dC5XZWJDb250ZW50LnNiCSh3b3JraW5nIGNvcHkpCkBAIC01MzQsNyArNTM0LDYgQEAKIChhbGxv
dyBtYWNoLWxvb2t1cAogICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLmxvZ2QiKQogICAgIChn
bG9iYWwtbmFtZSAiY29tLmFwcGxlLmxvZ2QuZXZlbnRzIikKLSAgICAoZ2xvYmFsLW5hbWUgImNv
bS5hcHBsZS5jZnByZWZzZC5kYWVtb24iKQogKQogCiAoZGVueSBtYWNoLWxvb2t1cCAod2l0aCB0
ZWxlbWV0cnkpCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgJ
KHJldmlzaW9uIDI1ODg0NykKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
b29sLmgJKHdvcmtpbmcgY29weSkKQEAgLTYxMSw2ICs2MTEsMTAgQEAgcHJpdmF0ZToKICNlbmRp
ZgogI2VuZGlmCiAKKyNpZiBFTkFCTEUoQ0ZQUkVGU19ESVJFQ1RfTU9ERSkKKyAgICB2b2lkIHN0
YXJ0T2JzZXJ2aW5nUHJlZmVyZW5jZUNoYW5nZXMoKTsKKyNlbmRpZgorCiAgICAgUmVmPEFQSTo6
UHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uPiBtX2NvbmZpZ3VyYXRpb247CiAKICAgICBJUEM6Ok1l
c3NhZ2VSZWNlaXZlck1hcCBtX21lc3NhZ2VSZWNlaXZlck1hcDsKQEAgLTY5MSw3ICs2OTUsNiBA
QCBwcml2YXRlOgogI2lmIEVOQUJMRShXRUJQUk9DRVNTX1dJTkRPV1NFUlZFUl9CTE9DS0lORykK
ICAgICBSZXRhaW5QdHI8TlNPYmplY3Q+IG1fc2Nyb2xsZXJTdHlsZU5vdGlmaWNhdGlvbk9ic2Vy
dmVyOwogI2VuZGlmCi0gICAgUmV0YWluUHRyPE5TT2JqZWN0PiBtX2FjdGl2YXRpb25PYnNlcnZl
cjsKICAgICBSZXRhaW5QdHI8TlNPYmplY3Q+IG1fZGVhY3RpdmF0aW9uT2JzZXJ2ZXI7CiAKICAg
ICBzdGQ6OnVuaXF1ZV9wdHI8SGlnaFBlcmZvcm1hbmNlR3JhcGhpY3NVc2FnZVNhbXBsZXI+IG1f
aGlnaFBlcmZvcm1hbmNlR3JhcGhpY3NVc2FnZVNhbXBsZXI7CkBAIC02OTksNiArNzAyLDcgQEAg
cHJpdmF0ZToKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgUmV0YWluUHRyPE5T
T2JqZWN0PiBtX2FjdGl2YXRpb25PYnNlcnZlcjsKICAgICBSZXRhaW5QdHI8TlNPYmplY3Q+IG1f
YWNjZXNzaWJpbGl0eUVuYWJsZWRPYnNlcnZlcjsKICNlbmRpZgogCkBAIC04MDIsMTAgKzgwNiw2
IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2lzRGVsYXllZFdlYlByb2Nlc3NMYXVuY2hEaXNhYmxl
ZCB7IGZhbHNlIH07CiAjZW5kaWYKICAgICBib29sIG1fdXNlU2VwYXJhdGVTZXJ2aWNlV29ya2Vy
UHJvY2VzcyB7IGZhbHNlIH07Ci0KLSNpZiBQTEFURk9STShDT0NPQSkKLSAgICBSZXRhaW5QdHI8
V0tQcmVmZXJlbmNlT2JzZXJ2ZXI+IG1fcHJlZmVyZW5jZU9ic2VydmVyOwotI2VuZGlmCiB9Owog
CiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvUHJlZmVyZW5jZU9ic2VydmVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQ29jb2EvUHJlZmVyZW5jZU9ic2VydmVyLmgJKHJldmlzaW9uIDI1ODg0NykKKysrIFNv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1ByZWZlcmVuY2VPYnNlcnZlci5oCSh3b3JraW5n
IGNvcHkpCkBAIC00Niw2ICs0Niw1IEBAIF9fYXR0cmlidXRlX18oKHZpc2liaWxpdHkoImRlZmF1
bHQiKSkpCiAgICAgVmVjdG9yPFJldGFpblB0cjxXS1VzZXJEZWZhdWx0cz4+IG1fdXNlckRlZmF1
bHRzOwogfQogKyAoaWQpc2hhcmVkSW5zdGFuY2U7Ci0rICh2b2lkKXN3aXp6bGVSZWdpc3RlckRl
ZmF1bHRzOwogLSAodm9pZClwcmVmZXJlbmNlRGlkQ2hhbmdlOihOU1N0cmluZyAqKWRvbWFpbiBr
ZXk6KE5TU3RyaW5nICopa2V5IGVuY29kZWRWYWx1ZTooTlNTdHJpbmcgKillbmNvZGVkVmFsdWU7
CiBAZW5kCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9QcmVmZXJlbmNlT2Jz
ZXJ2ZXIubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvUHJl
ZmVyZW5jZU9ic2VydmVyLm1tCShyZXZpc2lvbiAyNTg4NDcpCisrKyBTb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Db2NvYS9QcmVmZXJlbmNlT2JzZXJ2ZXIubW0JKHdvcmtpbmcgY29weSkKQEAgLTI4
LDMxICsyOCwxMiBAQAogCiAjaW1wb3J0ICJXZWJQcm9jZXNzUG9vbC5oIgogCi0jaW1wb3J0IDx3
dGYvT2JqQ1J1bnRpbWVFeHRyYXMuaD4KLQotc3RhdGljIElNUCByZWdpc3RlckRlZmF1bHRzT3Jp
Z2luYWwgPSBuaWw7Ci1zdGF0aWMgYm9vbCByZWdpc3RlcmluZ0RlZmF1bHRzID0gZmFsc2U7Ci0K
LXN0YXRpYyB2b2lkIHJlZ2lzdGVyRGVmYXVsdHNPdmVycmlkZShpZCBzZWxmLCBTRUwgc2VsZWN0
b3IsIE5TRGljdGlvbmFyeTxOU1N0cmluZyAqLCBpZD4gKmRpY3Rpb25hcnkpCi17Ci0gICAgcmVn
aXN0ZXJpbmdEZWZhdWx0cyA9IHRydWU7Ci0gICAgaWYgKHJlZ2lzdGVyRGVmYXVsdHNPcmlnaW5h
bCkKLSAgICAgICAgd3RmQ2FsbElNUDx2b2lkPihyZWdpc3RlckRlZmF1bHRzT3JpZ2luYWwsIHNl
bGYsIHNlbGVjdG9yLCBkaWN0aW9uYXJ5KTsKLSAgICByZWdpc3RlcmluZ0RlZmF1bHRzID0gZmFs
c2U7Ci19Ci0KIEBpbXBsZW1lbnRhdGlvbiBXS1VzZXJEZWZhdWx0cwogCiAtICh2b2lkKV9ub3Rp
ZnlPYnNlcnZlcnNPZkNoYW5nZUZyb21WYWx1ZXNGb3JLZXlzOihOU0RpY3Rpb25hcnk8TlNTdHJp
bmcgKiwgaWQ+ICopb2xkVmFsdWVzIHRvVmFsdWVzRm9yS2V5czooTlNEaWN0aW9uYXJ5PE5TU3Ry
aW5nICosIGlkPiAqKW5ld1ZhbHVlcwogewotICAgIGlmIChyZWdpc3RlcmluZ0RlZmF1bHRzKQot
ICAgICAgICByZXR1cm47Ci0KICAgICBbc3VwZXIgX25vdGlmeU9ic2VydmVyc09mQ2hhbmdlRnJv
bVZhbHVlc0ZvcktleXM6b2xkVmFsdWVzIHRvVmFsdWVzRm9yS2V5czpuZXdWYWx1ZXNdOwogCi0g
ICAgaWYgKFtvbGRWYWx1ZXMgaXNFcXVhbFRvRGljdGlvbmFyeTpuZXdWYWx1ZXNdKQotICAgICAg
ICByZXR1cm47Ci0KICAgICBmb3IgKE5TU3RyaW5nICprZXkgaW4gb2xkVmFsdWVzKSB7CiAgICAg
ICAgIGlkIG9sZFZhbHVlID0gb2xkVmFsdWVzW2tleV07CiAgICAgICAgIGlkIG5ld1ZhbHVlID0g
bmV3VmFsdWVzW2tleV07CkBAIC0xMDEsMTAzICs4MiwzNSBAQCArIChpZClzaGFyZWRJbnN0YW5j
ZQogICAgIHJldHVybiBpbnN0YW5jZTsKIH0KIAotKyAodm9pZClzd2l6emxlUmVnaXN0ZXJEZWZh
dWx0cwotewotICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlRmxhZzsKLSAgICBzdGQ6OmNh
bGxfb25jZShvbmNlRmxhZywgW10gewotICAgICAgICBNZXRob2QgcmVnaXN0ZXJEZWZhdWx0c01l
dGhvZCA9IGNsYXNzX2dldEluc3RhbmNlTWV0aG9kKG9iamNfZ2V0Q2xhc3MoIk5TVXNlckRlZmF1
bHRzIiksIEBzZWxlY3RvcihyZWdpc3RlckRlZmF1bHRzOikpOwotICAgICAgICByZWdpc3RlckRl
ZmF1bHRzT3JpZ2luYWwgPSBtZXRob2Rfc2V0SW1wbGVtZW50YXRpb24ocmVnaXN0ZXJEZWZhdWx0
c01ldGhvZCwgKElNUClyZWdpc3RlckRlZmF1bHRzT3ZlcnJpZGUpOwotICAgIH0pOwotfQotCiAt
IChpbnN0YW5jZXR5cGUpaW5pdAogewogICAgIHN0ZDo6aW5pdGlhbGl6ZXJfbGlzdDxOU1N0cmlu
Zyo+IGRvbWFpbnMgPSB7Ci0gICAgICAgIEAiY29tLmFwcGxlLkFjY2Vzc2liaWxpdHkiLAogI2lm
IFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgICAgIEAiY29tLmFwcGxlLkFjY2Vzc2liaWxpdHki
LAogICAgICAgICBAImNvbS5hcHBsZS5BZExpYiIsCi0gICAgICAgIEAiY29tLmFwcGxlLkNGTmV0
d29yayIsCi0gICAgICAgIEAiY29tLmFwcGxlLkVtb2ppUHJlZmVyZW5jZXMiLAotICAgICAgICBA
ImNvbS5hcHBsZS5Gb250UGFyc2VyIiwKLSAgICAgICAgQCJjb20uYXBwbGUuSW1hZ2VJTyIsCi0g
ICAgICAgIEAiY29tLmFwcGxlLklucHV0TW9kZVByZWZlcmVuY2VzIiwKLSNlbHNlCi0gICAgICAg
IEAiY29tLmFwcGxlLkFUUyIsCi0gICAgICAgIEAiY29tLmFwcGxlLkNvcmVHcmFwaGljcyIsCi0g
ICAgICAgIEAiY29tLmFwcGxlLkRvd25sb2FkQXNzZXNzbWVudCIsCi0gICAgICAgIEAiY29tLmFw
cGxlLkhJVG9vbGJveCIsCi0jZW5kaWYKLSAgICAgICAgQCJjb20uYXBwbGUuTGF1bmNoU2Vydmlj
ZXMiLAotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgICAgIEAiY29tLmFwcGxlLk1ldGFs
IiwKLSAgICAgICAgQCJjb20uYXBwbGUuTW9iaWxlQXNzZXQiLAogICAgICAgICBAImNvbS5hcHBs
ZS5QcmVmZXJlbmNlcyIsCiAgICAgICAgIEAiY29tLmFwcGxlLlNwZWFrU2VsZWN0aW9uIiwKICAg
ICAgICAgQCJjb20uYXBwbGUuVUlLaXQiLAotICAgICAgICBAImNvbS5hcHBsZS5Wb2ljZU92ZXJU
b3VjaCIsCi0jZWxzZQotICAgICAgICBAImNvbS5hcHBsZS5NdWx0aXRvdWNoU3VwcG9ydCIKLSAg
ICAgICAgQCJjb20uYXBwbGUuU2VydmljZXNNZW51LlNlcnZpY2VzIgotICAgICAgICBAImNvbS5h
cHBsZS5WaWV3QnJpZGdlIgotI2VuZGlmCi0gICAgICAgIEAiY29tLmFwcGxlLldlYkZvdW5kYXRp
b24iLAotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgICAgIEAiY29tLmFwcGxlLldlYktp
dC5XZWJDb250ZW50IiwKICAgICAgICAgQCJjb20uYXBwbGUuV2ViVUkiLAotICAgICAgICBAImNv
bS5hcHBsZS5haXJwbGF5IiwKLSAgICAgICAgQCJjb20uYXBwbGUuYXBwbGVqcGVnIiwKLSAgICAg
ICAgQCJjb20uYXBwbGUuYXVkaW8udmlydHVhbGF1ZGlvIiwKICAgICAgICAgQCJjb20uYXBwbGUu
YXZmYXVkaW8iLAotI2VuZGlmCi0gICAgICAgIEAiY29tLmFwcGxlLmF2Zm91bmRhdGlvbiIsCi0g
ICAgICAgIEAiY29tLmFwcGxlLmF2Zm91bmRhdGlvbi5mcmVjZW50cyIsCi0gICAgICAgIEAiY29t
LmFwcGxlLmF2Zm91bmRhdGlvbi52aWRlb3BlcmZvcm1hbmNlaHVkIiwKLSNpZiBQTEFURk9STShJ
T1NfRkFNSUxZKQotICAgICAgICBAImNvbS5hcHBsZS5hdmtpdCIsCi0gICAgICAgIEAiY29tLmFw
cGxlLmNvcmVhbmltYXRpb24iLAotICAgICAgICBAImNvbS5hcHBsZS5jb3JlYXVkaW8iLAotI2Vu
ZGlmCi0gICAgICAgIEAiY29tLmFwcGxlLmNvcmVtZWRpYSIsCi0jaWYgUExBVEZPUk0oSU9TX0ZB
TUlMWSkKLSAgICAgICAgQCJjb20uYXBwbGUuY29yZXZpZGVvIiwKLSAgICAgICAgQCJjb20uYXBw
bGUuZGEiLAotICAgICAgICBAImNvbS5hcHBsZS5oYW5ndHJhY2VyIiwKLSAgICAgICAgQCJjb20u
YXBwbGUuaW5kaWdvIiwKLSAgICAgICAgQCJjb20uYXBwbGUuaW9raXQuSU9Nb2JpbGVHcmFwaGlj
c0ZhbWlseSIsCiAgICAgICAgIEAiY29tLmFwcGxlLml0dW5lc3N0b3JlZCIsCi0gICAgICAgIEAi
Y29tLmFwcGxlLmtleWJvYXJkIiwKLSNlbHNlCi0gICAgICAgIEAiY29tLmFwcGxlLmNyeXB0byIs
Ci0gICAgICAgIEAiY29tLmFwcGxlLmRyaXZlci5BcHBsZUJsdWV0b290aE11bHRpdG91Y2gubW91
c2UiLAotICAgICAgICBAImNvbS5hcHBsZS5kcml2ZXIuQXBwbGVCbHVldG9vdGhNdWx0aXRvdWNo
LnRyYWNrcGFkIiwKLSAgICAgICAgQCJjb20uYXBwbGUuZHJpdmVyLkFwcGxlSElETW91c2UiCi0j
ZW5kaWYKLSAgICAgICAgQCJjb20uYXBwbGUubG9va3VwLnNoYXJlZCIsCi0gICAgICAgIEAiY29t
LmFwcGxlLm1lZGlhYWNjZXNzaWJpbGl0eSIsCi0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAg
ICAgICAgQCJjb20uYXBwbGUubWVkaWFhY2Nlc3NpYmlsaXR5LnB1YmxpYyIsCiAgICAgICAgIEAi
Y29tLmFwcGxlLm1lZGlhcmVtb3RlIiwKLSAgICAgICAgQCJjb20uYXBwbGUubW9iaWxlaXBvZCIs
Ci0gICAgICAgIEAiY29tLmFwcGxlLm10IiwKLSNlbHNlCi0gICAgICAgIEAiY29tLmFwcGxlLm5l
dHdvcmtDb25uZWN0IgotI2VuZGlmCi0gICAgICAgIEAiY29tLmFwcGxlLm9wZW5nbCIsCi0jaWYg
UExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICAgICAgQCJjb20uYXBwbGUucHJlZmVyZW5jZXMuc291
bmRzIiwKLSAgICAgICAgQCJjb20uYXBwbGUuc2VjdXJpdHkiLAogICAgICAgICBAImNvbS5hcHBs
ZS52b2ljZXNlcnZpY2VzIiwKLSAgICAgICAgQCJjb20uYXBwbGUudm9pY2VzZXJ2aWNlcy5sb2dn
aW5nIiwKKyAgICAgICAgQCJrQ0ZQcmVmZXJlbmNlc0FueUFwcGxpY2F0aW9uIiwKICNlbHNlCisg
ICAgICAgIEAiY29tLmFwcGxlLkNvcmVHcmFwaGljcyIsCisgICAgICAgIEAiY29tLmFwcGxlLkhJ
VG9vbGJveCIsCisgICAgICAgIEAiY29tLmFwcGxlLlNlcnZpY2VzTWVudS5TZXJ2aWNlcyIsCisg
ICAgICAgIEAiY29tLmFwcGxlLlZpZXdCcmlkZ2UiLAorICAgICAgICBAImNvbS5hcHBsZS5hdmZv
dW5kYXRpb24iLAorICAgICAgICBAImNvbS5hcHBsZS5hdmZvdW5kYXRpb24udmlkZW9wZXJmb3Jt
YW5jZWh1ZCIsCisgICAgICAgIEAiY29tLmFwcGxlLmRyaXZlci5BcHBsZUJsdWV0b290aE11bHRp
dG91Y2gubW91c2UiLAorICAgICAgICBAImNvbS5hcHBsZS5kcml2ZXIuQXBwbGVCbHVldG9vdGhN
dWx0aXRvdWNoLnRyYWNrcGFkIiwKKyAgICAgICAgQCJjb20uYXBwbGUubWVkaWFhY2Nlc3NpYmls
aXR5IiwKICAgICAgICAgQCJjb20uYXBwbGUuc3BlZWNoLnZvaWNlLnByZWZzIiwKLSAgICAgICAg
QCJjb20uYXBwbGUuc3lzdGVtc291bmQiLAogICAgICAgICBAImNvbS5hcHBsZS51bml2ZXJzYWxh
Y2Nlc3MiLAotICAgICAgICBAImNvbS5udmlkaWEuT3BlbkdMIiwKLSAgICAgICAgQCJlZHUubWl0
LktlcmJlcm9zIiwKLSNlbmRpZgogICAgICAgICBAImtDRlByZWZlcmVuY2VzQW55QXBwbGljYXRp
b24iLAotI2lmICFQTEFURk9STShJT1NfRkFNSUxZKQotICAgICAgICBAInBicyIsCiAjZW5kaWYK
ICAgICB9OwogCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNz
UG9vbENvY29hLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29h
L1dlYlByb2Nlc3NQb29sQ29jb2EubW0JKHJldmlzaW9uIDI1ODg0NykKKysrIFNvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0JKHdvcmtpbmcgY29weSkK
QEAgLTE3MywxNCArMTczLDYgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFs
aXplKAogICAgICAgICBpbnN0YWxsTWVtb3J5UHJlc3N1cmVIYW5kbGVyKCk7CiAKICAgICBzZXRM
ZWdhY3lDdXN0b21Qcm90b2NvbE1hbmFnZXJDbGllbnQobWFrZVVuaXF1ZTxMZWdhY3lDdXN0b21Q
cm90b2NvbE1hbmFnZXJDbGllbnQ+KCkpOwotCi0jaWYgRU5BQkxFKENGUFJFRlNfRElSRUNUX01P
REUpCi0gICAgW1dLUHJlZmVyZW5jZU9ic2VydmVyIHN3aXp6bGVSZWdpc3RlckRlZmF1bHRzXTsK
LSAgICBkaXNwYXRjaF9hc3luYyhkaXNwYXRjaF9nZXRfZ2xvYmFsX3F1ZXVlKFFPU19DTEFTU19C
QUNLR1JPVU5ELCAwKSwgXnsKLSAgICAgICAgLy8gU3RhcnQgb2JzZXJ2aW5nIHByZWZlcmVuY2Ug
Y2hhbmdlcy4KLSAgICAgICAgW1dLUHJlZmVyZW5jZU9ic2VydmVyIHNoYXJlZEluc3RhbmNlXTsK
LSAgICB9KTsKLSNlbmRpZgogfQogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKQEAgLTYwOCw2
ICs2MDAsMTkgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6cmVtb3RlV2ViSW5zcGVjdG9yRQogfQog
I2VuZGlmCiAKKyNpZiBFTkFCTEUoQ0ZQUkVGU19ESVJFQ1RfTU9ERSkKK3ZvaWQgV2ViUHJvY2Vz
c1Bvb2w6OnN0YXJ0T2JzZXJ2aW5nUHJlZmVyZW5jZUNoYW5nZXMoKQoreworICAgIHN0YXRpYyBk
aXNwYXRjaF9vbmNlX3Qgb25jZVRva2VuOworICAgIGRpc3BhdGNoX29uY2UoJm9uY2VUb2tlbiwg
XnsKKyAgICAgICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0Y2hfZ2V0X2dsb2JhbF9xdWV1ZShESVNQ
QVRDSF9RVUVVRV9QUklPUklUWV9ERUZBVUxULCAwKSwgXnsKKyAgICAgICAgICAgIC8vIFN0YXJ0
IG9ic2VydmluZyBwcmVmZXJlbmNlIGNoYW5nZXMuCisgICAgICAgICAgICBbV0tQcmVmZXJlbmNl
T2JzZXJ2ZXIgc2hhcmVkSW5zdGFuY2VdOworICAgICAgICB9KTsKKyAgICB9KTsKK30KKyNlbmRp
ZgorCiB2b2lkIFdlYlByb2Nlc3NQb29sOjpyZWdpc3Rlck5vdGlmaWNhdGlvbk9ic2VydmVycygp
CiB7CiAjaWYgIVBMQVRGT1JNKElPU19GQU1JTFkpCkBAIC02NTIsNiArNjU3LDkgQEAgdm9pZCBX
ZWJQcm9jZXNzUG9vbDo6cmVnaXN0ZXJOb3RpZmljYXRpbwogI2VuZGlmCiAKICAgICBtX2FjdGl2
YXRpb25PYnNlcnZlciA9IFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gYWRk
T2JzZXJ2ZXJGb3JOYW1lOk5TQXBwbGljYXRpb25EaWRCZWNvbWVBY3RpdmVOb3RpZmljYXRpb24g
b2JqZWN0Ok5TQXBwIHF1ZXVlOltOU09wZXJhdGlvblF1ZXVlIGN1cnJlbnRRdWV1ZV0gdXNpbmdC
bG9jazpeKE5TTm90aWZpY2F0aW9uICpub3RpZmljYXRpb24pIHsKKyNpZiBFTkFCTEUoQ0ZQUkVG
U19ESVJFQ1RfTU9ERSkKKyAgICAgICAgc3RhcnRPYnNlcnZpbmdQcmVmZXJlbmNlQ2hhbmdlcygp
OworI2VuZGlmCiAgICAgICAgIHNldEFwcGxpY2F0aW9uSXNBY3RpdmUodHJ1ZSk7CiAgICAgfV07
CiAKQEAgLTY3Myw2ICs2ODEsMTEgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6cmVnaXN0ZXJOb3Rp
ZmljYXRpbwogICAgICAgICAgICAgbV9wcm9jZXNzZXNbaV0tPnVuYmxvY2tBY2Nlc3NpYmlsaXR5
U2VydmVySWZOZWVkZWQoKTsKICAgICAgICAgfQogICAgIH1dOworI2lmIEVOQUJMRShDRlBSRUZT
X0RJUkVDVF9NT0RFKQorICAgIG1fYWN0aXZhdGlvbk9ic2VydmVyID0gW1tOU05vdGlmaWNhdGlv
bkNlbnRlciBkZWZhdWx0Q2VudGVyXSBhZGRPYnNlcnZlckZvck5hbWU6QCJVSUFwcGxpY2F0aW9u
RGlkQmVjb21lQWN0aXZlTm90aWZpY2F0aW9uIiBvYmplY3Q6bmlsIHF1ZXVlOltOU09wZXJhdGlv
blF1ZXVlIGN1cnJlbnRRdWV1ZV0gdXNpbmdCbG9jazpeKE5TTm90aWZpY2F0aW9uICpub3RpZmlj
YXRpb24pIHsKKyAgICAgICAgc3RhcnRPYnNlcnZpbmdQcmVmZXJlbmNlQ2hhbmdlcygpOworICAg
IH1dOworI2VuZGlmCiAjZW5kaWYgLy8gIVBMQVRGT1JNKElPU19GQU1JTFkpCiB9CiAKQEAgLTY4
OCw3ICs3MDEsNiBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjp1bnJlZ2lzdGVyTm90aWZpY2F0CiAj
aWYgRU5BQkxFKFdFQlBST0NFU1NfV0lORE9XU0VSVkVSX0JMT0NLSU5HKQogICAgIFtbTlNOb3Rp
ZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gcmVtb3ZlT2JzZXJ2ZXI6bV9zY3JvbGxlclN0
eWxlTm90aWZpY2F0aW9uT2JzZXJ2ZXIuZ2V0KCldOwogI2VuZGlmCi0gICAgW1tOU05vdGlmaWNh
dGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSByZW1vdmVPYnNlcnZlcjptX2FjdGl2YXRpb25PYnNl
cnZlci5nZXQoKV07CiAgICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSBy
ZW1vdmVPYnNlcnZlcjptX2RlYWN0aXZhdGlvbk9ic2VydmVyLmdldCgpXTsKICNlbGlmICFQTEFU
Rk9STShNQUNDQVRBTFlTVCkKICAgICBDRk5vdGlmaWNhdGlvbkNlbnRlclJlbW92ZU9ic2VydmVy
KENGTm90aWZpY2F0aW9uQ2VudGVyR2V0RGFyd2luTm90aWZ5Q2VudGVyKCksIHRoaXMsIHN0YXRp
Y19jYXN0PENGU3RyaW5nUmVmPihVSUJhY2tsaWdodExldmVsQ2hhbmdlZE5vdGlmaWNhdGlvbikg
LCBudWxscHRyKTsKQEAgLTY5OCw2ICs3MTAsNyBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjp1bnJl
Z2lzdGVyTm90aWZpY2F0CiAjZW5kaWYKICNlbmRpZiAvLyBQTEFURk9STShJT1MpCiAgICAgW1tO
U05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSByZW1vdmVPYnNlcnZlcjptX2FjY2Vz
c2liaWxpdHlFbmFibGVkT2JzZXJ2ZXIuZ2V0KCldOworICAgIFtbTlNOb3RpZmljYXRpb25DZW50
ZXIgZGVmYXVsdENlbnRlcl0gcmVtb3ZlT2JzZXJ2ZXI6bV9hY3RpdmF0aW9uT2JzZXJ2ZXIuZ2V0
KCldOwogI2VuZGlmIC8vICFQTEFURk9STShJT1NfRkFNSUxZKQogfQogCkluZGV4OiBTb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvY29tLmFwcGxlLldlYlByb2Nlc3Muc2IuaW4KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvbS5hcHBsZS5XZWJQcm9jZXNzLnNiLmluCShy
ZXZpc2lvbiAyNTg4NDcpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29tLmFwcGxlLldl
YlByb2Nlc3Muc2IuaW4JKHdvcmtpbmcgY29weSkKQEAgLTY3Nyw3ICs2NzcsNiBAQAogICAgICh3
aXRoIHJlcG9ydCkgKHdpdGggdGVsZW1ldHJ5KQogI2VuZGlmCiAgICAgKGdsb2JhbC1uYW1lICJj
b20uYXBwbGUuUG93ZXJNYW5hZ2VtZW50LmNvbnRyb2wiKQotICAgIChnbG9iYWwtbmFtZSAiY29t
LmFwcGxlLmNmcHJlZnNkLmRhZW1vbiIpCiAgICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUuY29y
ZXNlcnZpY2VzLmxhdW5jaHNlcnZpY2VzZCIpCiAgICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUu
bHNkLm1hcGRiIikKICAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS50cnVzdGQuYWdlbnQiKQpJ
bmRleDogVG9vbHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0NoYW5nZUxvZwkocmV2
aXNpb24gMjU4ODU2KQorKysgVG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMg
KzEsMTQgQEAKKzIwMjAtMDMtMjQgIFBlciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29t
PgorCisgICAgICAgIFtDb2NvYV0gRml4IGxhdW5jaCB0aW1lIHJlZ3Jlc3Npb24gd2l0aCBDRiBw
cmVmcyBkaXJlY3QgbW9kZSBlbmFibGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMDkyNDQKKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxl
ci4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1ByZWZlcmVuY2VDaGFu
Z2VzLm1tOgorICAgICAgICAoVEVTVCk6CisgICAgICAgIChzaGFyZWRJbnN0YW5jZU1ldGhvZE92
ZXJyaWRlKToKKwogMjAyMC0wMy0yMyAgQ2hyaXMgTG9yZCAgPGNsb3JkQGlnYWxpYS5jb20+CiAK
ICAgICAgICAgQWRkIG1pc3NpbmcgY29tbWl0dGVyIHN0YXR1cyB0byBDaHJpcyBMb3JkIGluIGNv
bnRyaWJ1dG9ycy5qc29uCkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9Q
cmVmZXJlbmNlQ2hhbmdlcy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdC9QcmVmZXJlbmNlQ2hhbmdlcy5tbQkocmV2aXNpb24gMjU4ODQ3KQorKysgVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvUHJlZmVyZW5jZUNoYW5nZXMubW0JKHdvcmtp
bmcgY29weSkKQEAgLTMxLDYgKzMxLDggQEAKICNpbXBvcnQgIlRlc3RXS1dlYlZpZXcuaCIKICNp
bXBvcnQgPFdlYktpdC9QcmVmZXJlbmNlT2JzZXJ2ZXIuaD4KIAorI2ltcG9ydCA8d3RmL09iakNS
dW50aW1lRXh0cmFzLmg+CisKIHN0YXRpYyBib29sIGRvbmUgPSBmYWxzZTsKIAogQGludGVyZmFj
ZSBXS1Rlc3RQcmVmZXJlbmNlT2JzZXJ2ZXIgOiBXS1ByZWZlcmVuY2VPYnNlcnZlcgpAQCAtNDQs
MTUgKzQ2LDE4IEBAIC0gKHZvaWQpcHJlZmVyZW5jZURpZENoYW5nZTooTlNTdHJpbmcgKikKIH0K
IEBlbmQKIAorc3RhdGljIGNvbnN0IENGU3RyaW5nUmVmIHRlc3RLZXkgPSBDRlNUUigidGVzdGtl
eSIpOworc3RhdGljIGNvbnN0IENGU3RyaW5nUmVmIHRlc3REb21haW4gPSBDRlNUUigia0NGUHJl
ZmVyZW5jZXNBbnlBcHBsaWNhdGlvbiIpOworCiBURVNUKFdlYktpdCwgUHJlZmVyZW5jZU9ic2Vy
dmVyKQogewogICAgIGRvbmUgPSBmYWxzZTsKIAotICAgIENGUHJlZmVyZW5jZXNTZXRBcHBWYWx1
ZShDRlNUUigidGVzdGtleSIpLCBDRlNUUigiMSIpLCBDRlNUUigiY29tLmFwcGxlLmNvcmVtZWRp
YSIpKTsKKyAgICBDRlByZWZlcmVuY2VzU2V0QXBwVmFsdWUodGVzdEtleSwgQ0ZTVFIoIjEiKSwg
dGVzdERvbWFpbik7CiAKICAgICBhdXRvIG9ic2VydmVyID0gYWRvcHROUyhbW1dLVGVzdFByZWZl
cmVuY2VPYnNlcnZlciBhbGxvY10gaW5pdF0pOwogCi0gICAgQ0ZQcmVmZXJlbmNlc1NldEFwcFZh
bHVlKENGU1RSKCJ0ZXN0a2V5IiksIENGU1RSKCIyIiksIENGU1RSKCJjb20uYXBwbGUuY29yZW1l
ZGlhIikpOworICAgIENGUHJlZmVyZW5jZXNTZXRBcHBWYWx1ZSh0ZXN0S2V5LCBDRlNUUigiMiIp
LCB0ZXN0RG9tYWluKTsKIAogICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CiB9
CkBAIC02MywyMiArNjgsMjIgQEAgVEVTVChXZWJLaXQsIFByZWZlcmVuY2VPYnNlcnZlckFycmF5
KQogCiAgICAgTlNBcnJheSAqYXJyYXkgPSBAW0AxLCBAMiwgQDNdOwogCi0gICAgYXV0byB1c2Vy
RGVmYXVsdHMgPSBhZG9wdE5TKFtbTlNVc2VyRGVmYXVsdHMgYWxsb2NdIGluaXRXaXRoU3VpdGVO
YW1lOkAiY29tLmFwcGxlLmNvcmVtZWRpYSJdKTsKLSAgICBbdXNlckRlZmF1bHRzLmdldCgpIHNl
dE9iamVjdDphcnJheSBmb3JLZXk6QCJ0ZXN0a2V5Il07CisgICAgYXV0byB1c2VyRGVmYXVsdHMg
PSBhZG9wdE5TKFtbTlNVc2VyRGVmYXVsdHMgYWxsb2NdIGluaXRXaXRoU3VpdGVOYW1lOihOU1N0
cmluZyAqKXRlc3REb21haW5dKTsKKyAgICBbdXNlckRlZmF1bHRzLmdldCgpIHNldE9iamVjdDph
cnJheSBmb3JLZXk6KE5TU3RyaW5nICopdGVzdEtleV07CiAKICAgICBhdXRvIG9ic2VydmVyID0g
YWRvcHROUyhbW1dLVGVzdFByZWZlcmVuY2VPYnNlcnZlciBhbGxvY10gaW5pdF0pOwogCiAgICAg
TlNBcnJheSAqY2hhbmdlZEFycmF5ID0gQFtAMywgQDIsIEAxXTsKLSAgICBbdXNlckRlZmF1bHRz
LmdldCgpIHNldE9iamVjdDpjaGFuZ2VkQXJyYXkgZm9yS2V5OkAidGVzdGtleSJdOworICAgIFt1
c2VyRGVmYXVsdHMuZ2V0KCkgc2V0T2JqZWN0OmNoYW5nZWRBcnJheSBmb3JLZXk6KE5TU3RyaW5n
ICopdGVzdEtleV07CiAKICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOwogfQog
CiBURVNUKFdlYktpdCwgUHJlZmVyZW5jZUNoYW5nZXMpCiB7Ci0gICAgQ0ZQcmVmZXJlbmNlc1Nl
dEFwcFZhbHVlKENGU1RSKCJ0ZXN0a2V5IiksIENGU1RSKCIxIiksIENGU1RSKCJjb20uYXBwbGUu
Y29yZW1lZGlhIikpOworICAgIENGUHJlZmVyZW5jZXNTZXRBcHBWYWx1ZSh0ZXN0S2V5LCBDRlNU
UigiMSIpLCB0ZXN0RG9tYWluKTsKIAotICAgIEVYUEVDVF9FUSgxLCBDRlByZWZlcmVuY2VzR2V0
QXBwSW50ZWdlclZhbHVlKENGU1RSKCJ0ZXN0a2V5IiksIENGU1RSKCJjb20uYXBwbGUuY29yZW1l
ZGlhIiksIG51bGxwdHIpKTsKKyAgICBFWFBFQ1RfRVEoMSwgQ0ZQcmVmZXJlbmNlc0dldEFwcElu
dGVnZXJWYWx1ZSh0ZXN0S2V5LCB0ZXN0RG9tYWluLCBudWxscHRyKSk7CiAKICAgICBhdXRvIGNv
bmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5p
dF0pOwogICAgIFdLUmV0YWluUHRyPFdLQ29udGV4dFJlZj4gY29udGV4dCA9IGFkb3B0V0soVGVz
dFdlYktpdEFQSTo6VXRpbDo6Y3JlYXRlQ29udGV4dEZvckluamVjdGVkQnVuZGxlVGVzdCgiSW50
ZXJuYWxzSW5qZWN0ZWRCdW5kbGVUZXN0IikpOwpAQCAtODYsMTIgKzkxLDEzIEBAIFRFU1QoV2Vi
S2l0LCBQcmVmZXJlbmNlQ2hhbmdlcykKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVz
dFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDMwMCwgMzAw
KSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCkgYWRkVG9XaW5kb3c6WUVTXSk7CiAK
ICAgICBhdXRvIHByZWZlcmVuY2VWYWx1ZSA9IFsmXSB7Ci0gICAgICAgIHJldHVybiBbd2ViVmll
dyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAid2luZG93LmludGVybmFscy5yZWFkUHJl
ZmVyZW5jZUludGVnZXIoXCJjb20uYXBwbGUuY29yZW1lZGlhXCIsIFwidGVzdGtleVwiKSJdLmlu
dFZhbHVlOworICAgICAgICBOU1N0cmluZyAqanMgPSBbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1h
dDpAIndpbmRvdy5pbnRlcm5hbHMucmVhZFByZWZlcmVuY2VJbnRlZ2VyKFwiJUBcIixcIiVAXCIp
IiwgKE5TU3RyaW5nICopdGVzdERvbWFpbiwgKE5TU3RyaW5nICopdGVzdEtleV07CisgICAgICAg
IHJldHVybiBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OmpzXS5pbnRWYWx1
ZTsKICAgICB9OwogCiAgICAgRVhQRUNUX0VRKHByZWZlcmVuY2VWYWx1ZSgpLCAxKTsKIAotICAg
IENGUHJlZmVyZW5jZXNTZXRBcHBWYWx1ZShDRlNUUigidGVzdGtleSIpLCBDRlNUUigiMiIpLCBD
RlNUUigiY29tLmFwcGxlLmNvcmVtZWRpYSIpKTsKKyAgICBDRlByZWZlcmVuY2VzU2V0QXBwVmFs
dWUodGVzdEtleSwgQ0ZTVFIoIjIiKSwgdGVzdERvbWFpbik7CiAKICAgICBFWFBFQ1RfRVEocHJl
ZmVyZW5jZVZhbHVlKCksIDIpOwogfQpAQCAtMTAwLDggKzEwNiw4IEBAIFRFU1QoV2ViS2l0LCBQ
cmVmZXJlbmNlQ2hhbmdlc0FycmF5KQogewogICAgIE5TQXJyYXkgKmFycmF5ID0gQFtAMSwgQDIs
IEAzXTsKIAotICAgIGF1dG8gdXNlckRlZmF1bHRzID0gYWRvcHROUyhbW05TVXNlckRlZmF1bHRz
IGFsbG9jXSBpbml0V2l0aFN1aXRlTmFtZTpAImNvbS5hcHBsZS5jb3JlbWVkaWEiXSk7Ci0gICAg
W3VzZXJEZWZhdWx0cy5nZXQoKSBzZXRPYmplY3Q6YXJyYXkgZm9yS2V5OkAidGVzdGtleSJdOwor
ICAgIGF1dG8gdXNlckRlZmF1bHRzID0gYWRvcHROUyhbW05TVXNlckRlZmF1bHRzIGFsbG9jXSBp
bml0V2l0aFN1aXRlTmFtZTooTlNTdHJpbmcgKil0ZXN0RG9tYWluXSk7CisgICAgW3VzZXJEZWZh
dWx0cy5nZXQoKSBzZXRPYmplY3Q6YXJyYXkgZm9yS2V5OihOU1N0cmluZyAqKXRlc3RLZXldOwog
CiAgICAgYXV0byBjb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRp
b24gYWxsb2NdIGluaXRdKTsKICAgICBXS1JldGFpblB0cjxXS0NvbnRleHRSZWY+IGNvbnRleHQg
PSBhZG9wdFdLKFRlc3RXZWJLaXRBUEk6OlV0aWw6OmNyZWF0ZUNvbnRleHRGb3JJbmplY3RlZEJ1
bmRsZVRlc3QoIkludGVybmFsc0luamVjdGVkQnVuZGxlVGVzdCIpKTsKQEAgLTEwOSwxMyArMTE1
LDE0IEBAIFRFU1QoV2ViS2l0LCBQcmVmZXJlbmNlQ2hhbmdlc0FycmF5KQogICAgIGF1dG8gd2Vi
VmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFr
ZVJlY3QoMCwgMCwgMzAwLCAzMDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbi5nZXQoKSBh
ZGRUb1dpbmRvdzpZRVNdKTsKIAogICAgIGF1dG8gcHJlZmVyZW5jZVZhbHVlID0gWyZdIHsKLSAg
ICAgICAgcmV0dXJuIFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJ3aW5k
b3cuaW50ZXJuYWxzLmVuY29kZWRQcmVmZXJlbmNlVmFsdWUoXCJjb20uYXBwbGUuY29yZW1lZGlh
XCIsIFwidGVzdGtleVwiKSJdOworICAgICAgICBOU1N0cmluZyAqanMgPSBbTlNTdHJpbmcgc3Ry
aW5nV2l0aEZvcm1hdDpAIndpbmRvdy5pbnRlcm5hbHMuZW5jb2RlZFByZWZlcmVuY2VWYWx1ZShc
IiVAXCIsXCIlQFwiKSIsIChOU1N0cmluZyAqKXRlc3REb21haW4sIChOU1N0cmluZyAqKXRlc3RL
ZXldOworICAgICAgICByZXR1cm4gW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlw
dDpqc107CiAgICAgfTsKIAogICAgIHByZWZlcmVuY2VWYWx1ZSgpOwogCiAgICAgTlNBcnJheSAq
Y2hhbmdlZEFycmF5ID0gQFtAMywgQDIsIEAxXTsKLSAgICBbdXNlckRlZmF1bHRzLmdldCgpIHNl
dE9iamVjdDpjaGFuZ2VkQXJyYXkgZm9yS2V5OkAidGVzdGtleSJdOworICAgIFt1c2VyRGVmYXVs
dHMuZ2V0KCkgc2V0T2JqZWN0OmNoYW5nZWRBcnJheSBmb3JLZXk6KE5TU3RyaW5nICopdGVzdEtl
eV07CiAKICAgICBhdXRvIGVuY29kZWRTdHJpbmcgPSBwcmVmZXJlbmNlVmFsdWUoKTsKICAgICBh
dXRvIGVuY29kZWREYXRhID0gYWRvcHROUyhbW05TRGF0YSBhbGxvY10gaW5pdFdpdGhCYXNlNjRF
bmNvZGVkU3RyaW5nOmVuY29kZWRTdHJpbmcgb3B0aW9uczowXSk7CkBAIC0xMzQsOCArMTQxLDgg
QEAgVEVTVChXZWJLaXQsIFByZWZlcmVuY2VDaGFuZ2VzRGljdGlvbmFyeQogICAgICAgICBAImIi
IDogQDIsCiAgICAgfTsKIAotICAgIGF1dG8gdXNlckRlZmF1bHRzID0gYWRvcHROUyhbW05TVXNl
ckRlZmF1bHRzIGFsbG9jXSBpbml0V2l0aFN1aXRlTmFtZTpAImNvbS5hcHBsZS5jb3JlbWVkaWEi
XSk7Ci0gICAgW3VzZXJEZWZhdWx0cy5nZXQoKSBzZXRPYmplY3Q6ZGljdCBmb3JLZXk6QCJ0ZXN0
a2V5Il07CisgICAgYXV0byB1c2VyRGVmYXVsdHMgPSBhZG9wdE5TKFtbTlNVc2VyRGVmYXVsdHMg
YWxsb2NdIGluaXRXaXRoU3VpdGVOYW1lOihOU1N0cmluZyAqKXRlc3REb21haW5dKTsKKyAgICBb
dXNlckRlZmF1bHRzLmdldCgpIHNldE9iamVjdDpkaWN0IGZvcktleTooTlNTdHJpbmcgKil0ZXN0
S2V5XTsKIAogICAgIGF1dG8gY29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25m
aWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CiAgICAgV0tSZXRhaW5QdHI8V0tDb250ZXh0UmVmPiBj
b250ZXh0ID0gYWRvcHRXSyhUZXN0V2ViS2l0QVBJOjpVdGlsOjpjcmVhdGVDb250ZXh0Rm9ySW5q
ZWN0ZWRCdW5kbGVUZXN0KCJJbnRlcm5hbHNJbmplY3RlZEJ1bmRsZVRlc3QiKSk7CkBAIC0xNDMs
NyArMTUwLDggQEAgVEVTVChXZWJLaXQsIFByZWZlcmVuY2VDaGFuZ2VzRGljdGlvbmFyeQogICAg
IGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZy
YW1lOk5TTWFrZVJlY3QoMCwgMCwgMzAwLCAzMDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlv
bi5nZXQoKSBhZGRUb1dpbmRvdzpZRVNdKTsKIAogICAgIGF1dG8gcHJlZmVyZW5jZVZhbHVlID0g
WyZdIHsKLSAgICAgICAgcmV0dXJuIFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3Jp
cHQ6QCJ3aW5kb3cuaW50ZXJuYWxzLmVuY29kZWRQcmVmZXJlbmNlVmFsdWUoXCJjb20uYXBwbGUu
Y29yZW1lZGlhXCIsIFwidGVzdGtleVwiKSJdOworICAgICAgICBOU1N0cmluZyAqanMgPSBbTlNT
dHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpAIndpbmRvdy5pbnRlcm5hbHMuZW5jb2RlZFByZWZlcmVu
Y2VWYWx1ZShcIiVAXCIsXCIlQFwiKSIsIChOU1N0cmluZyAqKXRlc3REb21haW4sIChOU1N0cmlu
ZyAqKXRlc3RLZXldOworICAgICAgICByZXR1cm4gW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5n
SmF2YVNjcmlwdDpqc107CiAgICAgfTsKIAogICAgIHByZWZlcmVuY2VWYWx1ZSgpOwpAQCAtMTUz
LDcgKzE2MSw3IEBAIFRFU1QoV2ViS2l0LCBQcmVmZXJlbmNlQ2hhbmdlc0RpY3Rpb25hcnkKICAg
ICAgICAgQCJiIiA6IEAyLAogICAgICAgICBAImMiIDogQDMsCiAgICAgfTsKLSAgICBbdXNlckRl
ZmF1bHRzLmdldCgpIHNldE9iamVjdDpjaGFuZ2VkRGljdCBmb3JLZXk6QCJ0ZXN0a2V5Il07Cisg
ICAgW3VzZXJEZWZhdWx0cy5nZXQoKSBzZXRPYmplY3Q6Y2hhbmdlZERpY3QgZm9yS2V5OihOU1N0
cmluZyAqKXRlc3RLZXldOwogCiAgICAgYXV0byBlbmNvZGVkU3RyaW5nID0gcHJlZmVyZW5jZVZh
bHVlKCk7CiAgICAgYXV0byBlbmNvZGVkRGF0YSA9IGFkb3B0TlMoW1tOU0RhdGEgYWxsb2NdIGlu
aXRXaXRoQmFzZTY0RW5jb2RlZFN0cmluZzplbmNvZGVkU3RyaW5nIG9wdGlvbnM6MF0pOwpAQCAt
MTY5LDggKzE3Nyw4IEBAIFRFU1QoV2ViS2l0LCBQcmVmZXJlbmNlQ2hhbmdlc0RhdGEpCiB7CiAg
ICAgTlNEYXRhICpkYXRhID0gW05TRGF0YSBkYXRhV2l0aEJ5dGVzOiJhYmMiIGxlbmd0aDozXTsK
IAotICAgIGF1dG8gdXNlckRlZmF1bHRzID0gYWRvcHROUyhbW05TVXNlckRlZmF1bHRzIGFsbG9j
XSBpbml0V2l0aFN1aXRlTmFtZTpAImNvbS5hcHBsZS5jb3JlbWVkaWEiXSk7Ci0gICAgW3VzZXJE
ZWZhdWx0cy5nZXQoKSBzZXRPYmplY3Q6ZGF0YSBmb3JLZXk6QCJ0ZXN0a2V5Il07CisgICAgYXV0
byB1c2VyRGVmYXVsdHMgPSBhZG9wdE5TKFtbTlNVc2VyRGVmYXVsdHMgYWxsb2NdIGluaXRXaXRo
U3VpdGVOYW1lOihOU1N0cmluZyAqKXRlc3REb21haW5dKTsKKyAgICBbdXNlckRlZmF1bHRzLmdl
dCgpIHNldE9iamVjdDpkYXRhIGZvcktleTooTlNTdHJpbmcgKil0ZXN0S2V5XTsKIAogICAgIGF1
dG8gY29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9j
XSBpbml0XSk7CiAgICAgV0tSZXRhaW5QdHI8V0tDb250ZXh0UmVmPiBjb250ZXh0ID0gYWRvcHRX
SyhUZXN0V2ViS2l0QVBJOjpVdGlsOjpjcmVhdGVDb250ZXh0Rm9ySW5qZWN0ZWRCdW5kbGVUZXN0
KCJJbnRlcm5hbHNJbmplY3RlZEJ1bmRsZVRlc3QiKSk7CkBAIC0xNzgsMTMgKzE4NiwxNCBAQCBU
RVNUKFdlYktpdCwgUHJlZmVyZW5jZUNoYW5nZXNEYXRhKQogICAgIGF1dG8gd2ViVmlldyA9IGFk
b3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwg
MCwgMzAwLCAzMDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbi5nZXQoKSBhZGRUb1dpbmRv
dzpZRVNdKTsKIAogICAgIGF1dG8gcHJlZmVyZW5jZVZhbHVlID0gWyZdIHsKLSAgICAgICAgcmV0
dXJuIFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJ3aW5kb3cuaW50ZXJu
YWxzLmVuY29kZWRQcmVmZXJlbmNlVmFsdWUoXCJjb20uYXBwbGUuY29yZW1lZGlhXCIsIFwidGVz
dGtleVwiKSJdOworICAgICAgICBOU1N0cmluZyAqanMgPSBbTlNTdHJpbmcgc3RyaW5nV2l0aEZv
cm1hdDpAIndpbmRvdy5pbnRlcm5hbHMuZW5jb2RlZFByZWZlcmVuY2VWYWx1ZShcIiVAXCIsXCIl
QFwiKSIsIChOU1N0cmluZyAqKXRlc3REb21haW4sIChOU1N0cmluZyAqKXRlc3RLZXldOworICAg
ICAgICByZXR1cm4gW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpqc107CiAg
ICAgfTsKIAogICAgIHByZWZlcmVuY2VWYWx1ZSgpOwogCiAgICAgTlNEYXRhICpjaGFuZ2VkRGF0
YSA9IFtOU0RhdGEgZGF0YVdpdGhCeXRlczoiYWJjZCIgbGVuZ3RoOjRdOwotICAgIFt1c2VyRGVm
YXVsdHMuZ2V0KCkgc2V0T2JqZWN0OmNoYW5nZWREYXRhIGZvcktleTpAInRlc3RrZXkiXTsKKyAg
ICBbdXNlckRlZmF1bHRzLmdldCgpIHNldE9iamVjdDpjaGFuZ2VkRGF0YSBmb3JLZXk6KE5TU3Ry
aW5nICopdGVzdEtleV07CiAKICAgICBhdXRvIGVuY29kZWRTdHJpbmcgPSBwcmVmZXJlbmNlVmFs
dWUoKTsKICAgICBhdXRvIGVuY29kZWREYXRhID0gYWRvcHROUyhbW05TRGF0YSBhbGxvY10gaW5p
dFdpdGhCYXNlNjRFbmNvZGVkU3RyaW5nOmVuY29kZWRTdHJpbmcgb3B0aW9uczowXSk7CkBAIC0y
MDAsOCArMjA5LDggQEAgVEVTVChXZWJLaXQsIFByZWZlcmVuY2VDaGFuZ2VzRGF0ZSkKIHsKICAg
ICBOU0RhdGUgKmRhdGUgPSBbTlNEYXRlIGRhdGVXaXRoVGltZUludGVydmFsU2luY2VOb3c6MF07
CiAKLSAgICBhdXRvIHVzZXJEZWZhdWx0cyA9IGFkb3B0TlMoW1tOU1VzZXJEZWZhdWx0cyBhbGxv
Y10gaW5pdFdpdGhTdWl0ZU5hbWU6QCJjb20uYXBwbGUuY29yZW1lZGlhIl0pOwotICAgIFt1c2Vy
RGVmYXVsdHMuZ2V0KCkgc2V0T2JqZWN0OmRhdGUgZm9yS2V5OkAidGVzdGtleSJdOworICAgIGF1
dG8gdXNlckRlZmF1bHRzID0gYWRvcHROUyhbW05TVXNlckRlZmF1bHRzIGFsbG9jXSBpbml0V2l0
aFN1aXRlTmFtZTooTlNTdHJpbmcgKil0ZXN0RG9tYWluXSk7CisgICAgW3VzZXJEZWZhdWx0cy5n
ZXQoKSBzZXRPYmplY3Q6ZGF0ZSBmb3JLZXk6KE5TU3RyaW5nICopdGVzdEtleV07CiAKICAgICBh
dXRvIGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxv
Y10gaW5pdF0pOwogICAgIFdLUmV0YWluUHRyPFdLQ29udGV4dFJlZj4gY29udGV4dCA9IGFkb3B0
V0soVGVzdFdlYktpdEFQSTo6VXRpbDo6Y3JlYXRlQ29udGV4dEZvckluamVjdGVkQnVuZGxlVGVz
dCgiSW50ZXJuYWxzSW5qZWN0ZWRCdW5kbGVUZXN0IikpOwpAQCAtMjA5LDEzICsyMTgsMTQgQEAg
VEVTVChXZWJLaXQsIFByZWZlcmVuY2VDaGFuZ2VzRGF0ZSkKICAgICBhdXRvIHdlYlZpZXcgPSBh
ZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAs
IDAsIDMwMCwgMzAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCkgYWRkVG9XaW5k
b3c6WUVTXSk7CiAKICAgICBhdXRvIHByZWZlcmVuY2VWYWx1ZSA9IFsmXSB7Ci0gICAgICAgIHJl
dHVybiBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAid2luZG93LmludGVy
bmFscy5lbmNvZGVkUHJlZmVyZW5jZVZhbHVlKFwiY29tLmFwcGxlLmNvcmVtZWRpYVwiLCBcInRl
c3RrZXlcIikiXTsKKyAgICAgICAgTlNTdHJpbmcgKmpzID0gW05TU3RyaW5nIHN0cmluZ1dpdGhG
b3JtYXQ6QCJ3aW5kb3cuaW50ZXJuYWxzLmVuY29kZWRQcmVmZXJlbmNlVmFsdWUoXCIlQFwiLFwi
JUBcIikiLCAoTlNTdHJpbmcgKil0ZXN0RG9tYWluLCAoTlNTdHJpbmcgKil0ZXN0S2V5XTsKKyAg
ICAgICAgcmV0dXJuIFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6anNdOwog
ICAgIH07CiAKICAgICBwcmVmZXJlbmNlVmFsdWUoKTsKIAogICAgIE5TRGF0ZSAqY2hhbmdlZERh
dGUgPSBbTlNEYXRlIGRhdGVXaXRoVGltZUludGVydmFsU2luY2VOb3c6MTBdOwotICAgIFt1c2Vy
RGVmYXVsdHMuZ2V0KCkgc2V0T2JqZWN0OmNoYW5nZWREYXRlIGZvcktleTpAInRlc3RrZXkiXTsK
KyAgICBbdXNlckRlZmF1bHRzLmdldCgpIHNldE9iamVjdDpjaGFuZ2VkRGF0ZSBmb3JLZXk6KE5T
U3RyaW5nICopdGVzdEtleV07CiAKICAgICBhdXRvIGVuY29kZWRTdHJpbmcgPSBwcmVmZXJlbmNl
VmFsdWUoKTsKICAgICBhdXRvIGVuY29kZWREYXRhID0gYWRvcHROUyhbW05TRGF0YSBhbGxvY10g
aW5pdFdpdGhCYXNlNjRFbmNvZGVkU3RyaW5nOmVuY29kZWRTdHJpbmcgb3B0aW9uczowXSk7CkBA
IC0yMjcsNCArMjM3LDMyIEBAIFRFU1QoV2ViS2l0LCBQcmVmZXJlbmNlQ2hhbmdlc0RhdGUpCiAg
ICAgQVNTRVJUX1RSVUUoW29iamVjdCBpc0VxdWFsOmNoYW5nZWREYXRlXSk7CiB9CiAKK3N0YXRp
YyBJTVAgc2hhcmVkSW5zdGFuY2VNZXRob2RPcmlnaW5hbCA9IG5pbDsKKworc3RhdGljIFdLUHJl
ZmVyZW5jZU9ic2VydmVyICpzaGFyZWRJbnN0YW5jZU1ldGhvZE92ZXJyaWRlKGlkIHNlbGYsIFNF
TCBzZWxlY3RvcikKK3sKKyAgICBkb25lID0gdHJ1ZTsKKyAgICByZXR1cm4gd3RmQ2FsbElNUDxX
S1ByZWZlcmVuY2VPYnNlcnZlciAqPihzaGFyZWRJbnN0YW5jZU1ldGhvZE9yaWdpbmFsLCBzZWxm
LCBzZWxlY3Rvcik7Cit9CisKK1RFU1QoV2ViS2l0LCBQcmVmZXJlbmNlT2JzZXJ2ZXJTdGFydGVk
T25BY3RpdmF0aW9uKQoreworICAgIGRvbmUgPSBmYWxzZTsKKyAgICBNZXRob2Qgc2hhcmVkSW5z
dGFuY2VNZXRob2QgPSBjbGFzc19nZXRDbGFzc01ldGhvZChvYmpjX2dldENsYXNzKCJXS1ByZWZl
cmVuY2VPYnNlcnZlciIpLCBAc2VsZWN0b3Ioc2hhcmVkSW5zdGFuY2UpKTsKKyAgICBBU1NFUlQo
c2hhcmVkSW5zdGFuY2VNZXRob2QpOworICAgIHNoYXJlZEluc3RhbmNlTWV0aG9kT3JpZ2luYWwg
PSBtZXRob2Rfc2V0SW1wbGVtZW50YXRpb24oc2hhcmVkSW5zdGFuY2VNZXRob2QsIChJTVApc2hh
cmVkSW5zdGFuY2VNZXRob2RPdmVycmlkZSk7CisgICAgQVNTRVJUKHNoYXJlZEluc3RhbmNlTWV0
aG9kT3JpZ2luYWwpOworCisgICAgYXV0byBjb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2Vi
Vmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKKyAgICBXS1JldGFpblB0cjxXS0NvbnRl
eHRSZWY+IGNvbnRleHQgPSBhZG9wdFdLKFRlc3RXZWJLaXRBUEk6OlV0aWw6OmNyZWF0ZUNvbnRl
eHRGb3JJbmplY3RlZEJ1bmRsZVRlc3QoIkludGVybmFsc0luamVjdGVkQnVuZGxlVGVzdCIpKTsK
KyAgICBjb25maWd1cmF0aW9uLmdldCgpLnByb2Nlc3NQb29sID0gKFdLUHJvY2Vzc1Bvb2wgKilj
b250ZXh0LmdldCgpOworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3
IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgMzAwLCAzMDApIGNvbmZpZ3Vy
YXRpb246Y29uZmlndXJhdGlvbi5nZXQoKSBhZGRUb1dpbmRvdzpZRVNdKTsKKworICAgIFt3ZWJW
aWV3IHN5bmNocm9ub3VzbHlMb2FkVGVzdFBhZ2VOYW1lZDpAInNpbXBsZSJdOworCisgICAgW1tO
U05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSBwb3N0Tm90aWZpY2F0aW9uTmFtZTpO
U0FwcGxpY2F0aW9uRGlkQmVjb21lQWN0aXZlTm90aWZpY2F0aW9uIG9iamVjdDpOU0FwcCB1c2Vy
SW5mbzpuaWxdOworCisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKK30KKwog
I2VuZGlmIC8vIFdLX0hBVkVfQ19TUEkK
</data>

          </attachment>
      

    </bug>

</bugzilla>