<?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>217784</bug_id>
          
          <creation_ts>2020-10-15 14:30:25 -0700</creation_ts>
          <short_desc>Create API to enable/disable text interaction gestures in WKWebView</short_desc>
          <delta_ts>2021-09-14 11:51:46 -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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Kate Cheney">katherine_cheney</reporter>
          <assigned_to name="Kate Cheney">katherine_cheney</assigned_to>
          <cc>achristensen</cc>
    
    <cc>bdakin</cc>
    
    <cc>beidson</cc>
    
    <cc>bfulgham</cc>
    
    <cc>megan_gardner</cc>
    
    <cc>sam</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1698284</commentid>
    <comment_count>0</comment_count>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2020-10-15 14:30:25 -0700</bug_when>
    <thetext>We have SPI for this, but it could be useful for other WebKit clients.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1698285</commentid>
    <comment_count>1</comment_count>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2020-10-15 14:31:12 -0700</bug_when>
    <thetext>&lt;rdar://problem/63406241&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1698289</commentid>
    <comment_count>2</comment_count>
      <attachid>411491</attachid>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2020-10-15 14:49:53 -0700</bug_when>
    <thetext>Created attachment 411491
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1698295</commentid>
    <comment_count>3</comment_count>
      <attachid>411491</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2020-10-15 14:55:42 -0700</bug_when>
    <thetext>Comment on attachment 411491
Patch

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

&gt; Source/WebKit/UIProcess/API/Cocoa/WKWebView.h:469
&gt; + @discussion The default value is YES for iOS, and NO for WatchOS.

watchOS is spelled watchOS

&gt; Source/WebKit/UIProcess/API/Cocoa/WKWebView.h:471
&gt; +@property (nonatomic, setter=setTextInteractionGesturesEnabled:) BOOL textInteractionGesturesEnabled WK_API_AVAILABLE(ios(WK_IOS_TBA));

You don&apos;t need to specify the setter if it isn&apos;t special.

&gt; Source/WebKit/UIProcess/API/Cocoa/WKWebView.h:472
&gt; +#endif

Has the name been API-reviewed?

&gt; Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm:369
&gt; +#if PLATFORM(WATCHOS)
&gt; +    [self setTextInteractionGesturesEnabled:NO];

Are watchOS clients going to need to set this now, in addition to the other API? (since if either one is NO, you bail from installing the gestures?)

&gt; Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm:2524
&gt; -    if (!self.webView.configuration._textInteractionGesturesEnabled)
&gt; +    if (!self.webView.configuration._textInteractionGesturesEnabled || !self.webView.textInteractionGesturesEnabled)

Odd that the SPI is on WKWebViewConfiguration and the API is on WKWebView. Any reason for that?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1698302</commentid>
    <comment_count>4</comment_count>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2020-10-15 15:00:36 -0700</bug_when>
    <thetext>(In reply to Tim Horton from comment #3)
&gt; Comment on attachment 411491 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=411491&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/UIProcess/API/Cocoa/WKWebView.h:469
&gt; &gt; + @discussion The default value is YES for iOS, and NO for WatchOS.
&gt; 
&gt; watchOS is spelled watchOS
&gt; 

Oops, will fix.

&gt; &gt; Source/WebKit/UIProcess/API/Cocoa/WKWebView.h:471
&gt; &gt; +@property (nonatomic, setter=setTextInteractionGesturesEnabled:) BOOL textInteractionGesturesEnabled WK_API_AVAILABLE(ios(WK_IOS_TBA));
&gt; 
&gt; You don&apos;t need to specify the setter if it isn&apos;t special.
&gt; 

Got it -- will remove.

&gt; &gt; Source/WebKit/UIProcess/API/Cocoa/WKWebView.h:472
&gt; &gt; +#endif
&gt; 
&gt; Has the name been API-reviewed?
&gt; 

The review process has been initiated, but the name has not been formally reviewed yet.

&gt; &gt; Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm:369
&gt; &gt; +#if PLATFORM(WATCHOS)
&gt; &gt; +    [self setTextInteractionGesturesEnabled:NO];
&gt; 
&gt; Are watchOS clients going to need to set this now, in addition to the other
&gt; API? (since if either one is NO, you bail from installing the gestures?)
&gt; 

I copied this behavior from the SPI, but maybe I misunderstood what was going on?

&gt; &gt; Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm:2524
&gt; &gt; -    if (!self.webView.configuration._textInteractionGesturesEnabled)
&gt; &gt; +    if (!self.webView.configuration._textInteractionGesturesEnabled || !self.webView.textInteractionGesturesEnabled)
&gt; 
&gt; Odd that the SPI is on WKWebViewConfiguration and the API is on WKWebView.
&gt; Any reason for that?

Yes, so it can be changed on the fly (see WebKit ChangeLog).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1698305</commentid>
    <comment_count>5</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2020-10-15 15:02:45 -0700</bug_when>
    <thetext>(In reply to katherine_cheney from comment #4)
&gt; (In reply to Tim Horton from comment #3)
&gt; &gt; Comment on attachment 411491 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=411491&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebKit/UIProcess/API/Cocoa/WKWebView.h:469
&gt; &gt; &gt; + @discussion The default value is YES for iOS, and NO for WatchOS.
&gt; &gt; 
&gt; &gt; watchOS is spelled watchOS
&gt; &gt; 
&gt; 
&gt; Oops, will fix.
&gt; 
&gt; &gt; &gt; Source/WebKit/UIProcess/API/Cocoa/WKWebView.h:471
&gt; &gt; &gt; +@property (nonatomic, setter=setTextInteractionGesturesEnabled:) BOOL textInteractionGesturesEnabled WK_API_AVAILABLE(ios(WK_IOS_TBA));
&gt; &gt; 
&gt; &gt; You don&apos;t need to specify the setter if it isn&apos;t special.
&gt; &gt; 
&gt; 
&gt; Got it -- will remove.
&gt; 
&gt; &gt; &gt; Source/WebKit/UIProcess/API/Cocoa/WKWebView.h:472
&gt; &gt; &gt; +#endif
&gt; &gt; 
&gt; &gt; Has the name been API-reviewed?
&gt; &gt; 
&gt; 
&gt; The review process has been initiated, but the name has not been formally
&gt; reviewed yet.
&gt; 
&gt; &gt; &gt; Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm:369
&gt; &gt; &gt; +#if PLATFORM(WATCHOS)
&gt; &gt; &gt; +    [self setTextInteractionGesturesEnabled:NO];
&gt; &gt; 
&gt; &gt; Are watchOS clients going to need to set this now, in addition to the other
&gt; &gt; API? (since if either one is NO, you bail from installing the gestures?)
&gt; &gt; 
&gt; 
&gt; I copied this behavior from the SPI, but maybe I misunderstood what was
&gt; going on?

Maybe it&apos;s OK because nobody ever turns the SPI ON on watchOS? But if they /did/, you would be introducing a new source of &quot;false&quot;, and overriding their preference, right?

&gt; &gt; &gt; Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm:2524
&gt; &gt; &gt; -    if (!self.webView.configuration._textInteractionGesturesEnabled)
&gt; &gt; &gt; +    if (!self.webView.configuration._textInteractionGesturesEnabled || !self.webView.textInteractionGesturesEnabled)
&gt; &gt; 
&gt; &gt; Odd that the SPI is on WKWebViewConfiguration and the API is on WKWebView.
&gt; &gt; Any reason for that?
&gt; 
&gt; Yes, so it can be changed on the fly (see WebKit ChangeLog).

I guess we&apos;ll eventually transition away from the SPI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1698308</commentid>
    <comment_count>6</comment_count>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2020-10-15 15:06:11 -0700</bug_when>
    <thetext>(In reply to Tim Horton from comment #5)
&gt; (In reply to katherine_cheney from comment #4)
&gt; &gt; (In reply to Tim Horton from comment #3)
&gt; &gt; &gt; Comment on attachment 411491 [details]
&gt; &gt; &gt; Patch
&gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm:369
&gt; &gt; &gt; &gt; +#if PLATFORM(WATCHOS)
&gt; &gt; &gt; &gt; +    [self setTextInteractionGesturesEnabled:NO];
&gt; &gt; &gt; 
&gt; &gt; &gt; Are watchOS clients going to need to set this now, in addition to the other
&gt; &gt; &gt; API? (since if either one is NO, you bail from installing the gestures?)
&gt; &gt; &gt; 
&gt; &gt; 
&gt; &gt; I copied this behavior from the SPI, but maybe I misunderstood what was
&gt; &gt; going on?
&gt; 
&gt; Maybe it&apos;s OK because nobody ever turns the SPI ON on watchOS? But if they
&gt; /did/, you would be introducing a new source of &quot;false&quot;, and overriding
&gt; their preference, right?
&gt; 

It is pretty explicitly set to NO in WebViewConfiguration init for watchOS, maybe Wenson can explain why that was done for the SPI so we can understand what we need to do here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1698309</commentid>
    <comment_count>7</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-10-15 15:09:31 -0700</bug_when>
    <thetext>(In reply to katherine_cheney from comment #6)
&gt; (In reply to Tim Horton from comment #5)
&gt; &gt; (In reply to katherine_cheney from comment #4)
&gt; &gt; &gt; (In reply to Tim Horton from comment #3)
&gt; &gt; &gt; &gt; Comment on attachment 411491 [details]
&gt; &gt; &gt; &gt; Patch
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; &gt; Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm:369
&gt; &gt; &gt; &gt; &gt; +#if PLATFORM(WATCHOS)
&gt; &gt; &gt; &gt; &gt; +    [self setTextInteractionGesturesEnabled:NO];
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Are watchOS clients going to need to set this now, in addition to the other
&gt; &gt; &gt; &gt; API? (since if either one is NO, you bail from installing the gestures?)
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; 
&gt; &gt; &gt; I copied this behavior from the SPI, but maybe I misunderstood what was
&gt; &gt; &gt; going on?
&gt; &gt; 
&gt; &gt; Maybe it&apos;s OK because nobody ever turns the SPI ON on watchOS? But if they
&gt; &gt; /did/, you would be introducing a new source of &quot;false&quot;, and overriding
&gt; &gt; their preference, right?
&gt; &gt; 
&gt; 
&gt; It is pretty explicitly set to NO in WebViewConfiguration init for watchOS,
&gt; maybe Wenson can explain why that was done for the SPI so we can understand
&gt; what we need to do here.

The default value for that configuration flag is NO on watchOS because we don&apos;t want WKWebView clients to allow text selection on watchOS; AFAIK, there are no WebKit clients on watchOS that would want to enable text selection.

(I think Tim is suggesting that this could theoretically break behavior for watchOS WebKit clients that currently attempt to enable text selection, but I don&apos;t think anyone actually does this, so taking either flag to mean &quot;disable selection&quot; should be fine).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1698311</commentid>
    <comment_count>8</comment_count>
      <attachid>411498</attachid>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2020-10-15 15:14:25 -0700</bug_when>
    <thetext>Created attachment 411498
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1698313</commentid>
    <comment_count>9</comment_count>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2020-10-15 15:15:57 -0700</bug_when>
    <thetext>(In reply to Wenson Hsieh from comment #7)
&gt; (In reply to katherine_cheney from comment #6)
&gt; &gt; (In reply to Tim Horton from comment #5)
&gt; &gt; &gt; (In reply to katherine_cheney from comment #4)
&gt; &gt; &gt; &gt; (In reply to Tim Horton from comment #3)
&gt; &gt; &gt; &gt; &gt; Comment on attachment 411491 [details]
&gt; &gt; &gt; &gt; &gt; Patch
&gt; &gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; &gt; &gt; Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm:369
&gt; &gt; &gt; &gt; &gt; &gt; +#if PLATFORM(WATCHOS)
&gt; &gt; &gt; &gt; &gt; &gt; +    [self setTextInteractionGesturesEnabled:NO];
&gt; &gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; &gt; Are watchOS clients going to need to set this now, in addition to the other
&gt; &gt; &gt; &gt; &gt; API? (since if either one is NO, you bail from installing the gestures?)
&gt; &gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; I copied this behavior from the SPI, but maybe I misunderstood what was
&gt; &gt; &gt; &gt; going on?
&gt; &gt; &gt; 
&gt; &gt; &gt; Maybe it&apos;s OK because nobody ever turns the SPI ON on watchOS? But if they
&gt; &gt; &gt; /did/, you would be introducing a new source of &quot;false&quot;, and overriding
&gt; &gt; &gt; their preference, right?
&gt; &gt; &gt; 
&gt; &gt; 
&gt; &gt; It is pretty explicitly set to NO in WebViewConfiguration init for watchOS,
&gt; &gt; maybe Wenson can explain why that was done for the SPI so we can understand
&gt; &gt; what we need to do here.
&gt; 
&gt; The default value for that configuration flag is NO on watchOS because we
&gt; don&apos;t want WKWebView clients to allow text selection on watchOS; AFAIK,
&gt; there are no WebKit clients on watchOS that would want to enable text
&gt; selection.
&gt; 
&gt; (I think Tim is suggesting that this could theoretically break behavior for
&gt; watchOS WebKit clients that currently attempt to enable text selection, but
&gt; I don&apos;t think anyone actually does this, so taking either flag to mean
&gt; &quot;disable selection&quot; should be fine).

OK, I see, that&apos;s a good point.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1698351</commentid>
    <comment_count>10</comment_count>
      <attachid>411506</attachid>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2020-10-15 16:23:30 -0700</bug_when>
    <thetext>Created attachment 411506
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1698358</commentid>
    <comment_count>11</comment_count>
      <attachid>411506</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-10-15 16:33:13 -0700</bug_when>
    <thetext>Comment on attachment 411506
Patch

This shouldn&apos;t be on WKWebView.  It should be on WKWebViewConfiguration if it&apos;s something that shouldn&apos;t change during the lifetime of the WKWebView and WKPreferences otherwise.  Also, the boolean is backed only by ObjC, which is something we try to avoid in WebKit, where the ObjC layer is just a thin wrapper around the C++ objects.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1698359</commentid>
    <comment_count>12</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-10-15 16:34:42 -0700</bug_when>
    <thetext>(In reply to Alex Christensen from comment #11)
&gt; Comment on attachment 411506 [details]
&gt; Patch
&gt; 
&gt; This shouldn&apos;t be on WKWebView.  It should be on WKWebViewConfiguration if
&gt; it&apos;s something that shouldn&apos;t change during the lifetime of the WKWebView
&gt; and WKPreferences otherwise.  Also, the boolean is backed only by ObjC,
&gt; which is something we try to avoid in WebKit, where the ObjC layer is just a
&gt; thin wrapper around the C++ objects.

From the ChangeLog entry, the intention was to make this something that can change on the fly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1698360</commentid>
    <comment_count>13</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-10-15 16:35:25 -0700</bug_when>
    <thetext>Then it should be on WKPreferences.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1698361</commentid>
    <comment_count>14</comment_count>
      <attachid>411506</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-10-15 16:36:22 -0700</bug_when>
    <thetext>Comment on attachment 411506
Patch

Also, _textInteractionGesturesEnabled should be deprecated with this as a replacement.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1698596</commentid>
    <comment_count>15</comment_count>
      <attachid>411575</attachid>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2020-10-16 08:06:37 -0700</bug_when>
    <thetext>Created attachment 411575
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1698611</commentid>
    <comment_count>16</comment_count>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2020-10-16 08:32:43 -0700</bug_when>
    <thetext>Thanks for the comments Alex, I made those changes.

I wasn&apos;t sure how to set a default for a specific platform (watchOS) in WKPreferences. Is that possible?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1698645</commentid>
    <comment_count>17</comment_count>
      <attachid>411575</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-10-16 09:41:41 -0700</bug_when>
    <thetext>Comment on attachment 411575
Patch

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

&gt; Source/WebKit/UIProcess/API/Cocoa/WKPreferences.h:67
&gt; +#if TARGET_OS_IPHONE
&gt; +/*! @abstract A Boolean value indicating whether text interaction is disabled.
&gt; +*/
&gt; +@property (nonatomic) BOOL textInteractionGesturesEnabled WK_API_AVAILABLE(ios(WK_IOS_TBA));
&gt; +#endif

What makes this iOS specific? Or to put this another way, can we make this work on macOS as well? Seems like disabling interacting with text there is still a meaningful concept.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1698671</commentid>
    <comment_count>18</comment_count>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2020-10-16 10:51:59 -0700</bug_when>
    <thetext>(In reply to Sam Weinig from comment #17)
&gt; Comment on attachment 411575 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=411575&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/UIProcess/API/Cocoa/WKPreferences.h:67
&gt; &gt; +#if TARGET_OS_IPHONE
&gt; &gt; +/*! @abstract A Boolean value indicating whether text interaction is disabled.
&gt; &gt; +*/
&gt; &gt; +@property (nonatomic) BOOL textInteractionGesturesEnabled WK_API_AVAILABLE(ios(WK_IOS_TBA));
&gt; &gt; +#endif
&gt; 
&gt; What makes this iOS specific? Or to put this another way, can we make this
&gt; work on macOS as well? Seems like disabling interacting with text there is
&gt; still a meaningful concept.

I have not heard of any requests for it to be for macOS, but maybe it could be useful. Potentially out of scope for this patch, which intends only to promote current iOS behavior to API.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1698676</commentid>
    <comment_count>19</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-10-16 11:01:47 -0700</bug_when>
    <thetext>(In reply to katherine_cheney from comment #18)
&gt; (In reply to Sam Weinig from comment #17)
&gt; &gt; Comment on attachment 411575 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=411575&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebKit/UIProcess/API/Cocoa/WKPreferences.h:67
&gt; &gt; &gt; +#if TARGET_OS_IPHONE
&gt; &gt; &gt; +/*! @abstract A Boolean value indicating whether text interaction is disabled.
&gt; &gt; &gt; +*/
&gt; &gt; &gt; +@property (nonatomic) BOOL textInteractionGesturesEnabled WK_API_AVAILABLE(ios(WK_IOS_TBA));
&gt; &gt; &gt; +#endif
&gt; &gt; 
&gt; &gt; What makes this iOS specific? Or to put this another way, can we make this
&gt; &gt; work on macOS as well? Seems like disabling interacting with text there is
&gt; &gt; still a meaningful concept.
&gt; 
&gt; I have not heard of any requests for it to be for macOS, but maybe it could
&gt; be useful. Potentially out of scope for this patch, which intends only to
&gt; promote current iOS behavior to API.

I think we should almost always make having these APIs cross-platform the default, unless there is a specific reason against it. Due to Mac Catalyst, this will have to behave correctly on macOS anyway so by not providing it here, we are just creating a false barrier to creating AppKit based apps.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1698677</commentid>
    <comment_count>20</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-10-16 11:02:53 -0700</bug_when>
    <thetext>(In reply to Sam Weinig from comment #19)
&gt; (In reply to katherine_cheney from comment #18)
&gt; &gt; (In reply to Sam Weinig from comment #17)
&gt; &gt; &gt; Comment on attachment 411575 [details]
&gt; &gt; &gt; Patch
&gt; &gt; &gt; 
&gt; &gt; &gt; View in context:
&gt; &gt; &gt; https://bugs.webkit.org/attachment.cgi?id=411575&amp;action=review
&gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Source/WebKit/UIProcess/API/Cocoa/WKPreferences.h:67
&gt; &gt; &gt; &gt; +#if TARGET_OS_IPHONE
&gt; &gt; &gt; &gt; +/*! @abstract A Boolean value indicating whether text interaction is disabled.
&gt; &gt; &gt; &gt; +*/
&gt; &gt; &gt; &gt; +@property (nonatomic) BOOL textInteractionGesturesEnabled WK_API_AVAILABLE(ios(WK_IOS_TBA));
&gt; &gt; &gt; &gt; +#endif
&gt; &gt; &gt; 
&gt; &gt; &gt; What makes this iOS specific? Or to put this another way, can we make this
&gt; &gt; &gt; work on macOS as well? Seems like disabling interacting with text there is
&gt; &gt; &gt; still a meaningful concept.
&gt; &gt; 
&gt; &gt; I have not heard of any requests for it to be for macOS, but maybe it could
&gt; &gt; be useful. Potentially out of scope for this patch, which intends only to
&gt; &gt; promote current iOS behavior to API.

Promotion to API is a big deal. When we do it, we need to consider the wider landscape, and re-evaluate decisions made in the past. I would push you to reconsider the scope.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1698697</commentid>
    <comment_count>21</comment_count>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2020-10-16 11:33:56 -0700</bug_when>
    <thetext>(In reply to Sam Weinig from comment #20)
&gt; (In reply to Sam Weinig from comment #19)
&gt; &gt; (In reply to katherine_cheney from comment #18)
&gt; &gt; &gt; (In reply to Sam Weinig from comment #17)
&gt; &gt; &gt; &gt; Comment on attachment 411575 [details]
&gt; &gt; &gt; &gt; Patch
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; View in context:
&gt; &gt; &gt; &gt; https://bugs.webkit.org/attachment.cgi?id=411575&amp;action=review
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; &gt; Source/WebKit/UIProcess/API/Cocoa/WKPreferences.h:67
&gt; &gt; &gt; &gt; &gt; +#if TARGET_OS_IPHONE
&gt; &gt; &gt; &gt; &gt; +/*! @abstract A Boolean value indicating whether text interaction is disabled.
&gt; &gt; &gt; &gt; &gt; +*/
&gt; &gt; &gt; &gt; &gt; +@property (nonatomic) BOOL textInteractionGesturesEnabled WK_API_AVAILABLE(ios(WK_IOS_TBA));
&gt; &gt; &gt; &gt; &gt; +#endif
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; What makes this iOS specific? Or to put this another way, can we make this
&gt; &gt; &gt; &gt; work on macOS as well? Seems like disabling interacting with text there is
&gt; &gt; &gt; &gt; still a meaningful concept.
&gt; &gt; &gt; 
&gt; &gt; &gt; I have not heard of any requests for it to be for macOS, but maybe it could
&gt; &gt; &gt; be useful. Potentially out of scope for this patch, which intends only to
&gt; &gt; &gt; promote current iOS behavior to API.
&gt; 
&gt; Promotion to API is a big deal. When we do it, we need to consider the wider
&gt; landscape, and re-evaluate decisions made in the past. I would push you to
&gt; reconsider the scope.

Ok. How about a FIXME to implement for macOS which I can work on next? I agree it&apos;s a big deal to promote to API and re-evaluating the scope seems like a good idea. It seems logical to me to separate these into two patches, because macOS would require new implementation instead of just copying the SPI, meaning its more likely to potentially introduce a regression and need to be rolled out, in which case it would be nice to have it isolated in its own patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1698822</commentid>
    <comment_count>22</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-10-16 16:42:34 -0700</bug_when>
    <thetext>(In reply to katherine_cheney from comment #21)
&gt; (In reply to Sam Weinig from comment #20)
&gt; &gt; (In reply to Sam Weinig from comment #19)
&gt; &gt; &gt; (In reply to katherine_cheney from comment #18)
&gt; &gt; &gt; &gt; (In reply to Sam Weinig from comment #17)
&gt; &gt; &gt; &gt; &gt; Comment on attachment 411575 [details]
&gt; &gt; &gt; &gt; &gt; Patch
&gt; &gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; &gt; View in context:
&gt; &gt; &gt; &gt; &gt; https://bugs.webkit.org/attachment.cgi?id=411575&amp;action=review
&gt; &gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; &gt; &gt; Source/WebKit/UIProcess/API/Cocoa/WKPreferences.h:67
&gt; &gt; &gt; &gt; &gt; &gt; +#if TARGET_OS_IPHONE
&gt; &gt; &gt; &gt; &gt; &gt; +/*! @abstract A Boolean value indicating whether text interaction is disabled.
&gt; &gt; &gt; &gt; &gt; &gt; +*/
&gt; &gt; &gt; &gt; &gt; &gt; +@property (nonatomic) BOOL textInteractionGesturesEnabled WK_API_AVAILABLE(ios(WK_IOS_TBA));
&gt; &gt; &gt; &gt; &gt; &gt; +#endif
&gt; &gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; &gt; What makes this iOS specific? Or to put this another way, can we make this
&gt; &gt; &gt; &gt; &gt; work on macOS as well? Seems like disabling interacting with text there is
&gt; &gt; &gt; &gt; &gt; still a meaningful concept.
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; I have not heard of any requests for it to be for macOS, but maybe it could
&gt; &gt; &gt; &gt; be useful. Potentially out of scope for this patch, which intends only to
&gt; &gt; &gt; &gt; promote current iOS behavior to API.
&gt; &gt; 
&gt; &gt; Promotion to API is a big deal. When we do it, we need to consider the wider
&gt; &gt; landscape, and re-evaluate decisions made in the past. I would push you to
&gt; &gt; reconsider the scope.
&gt; 
&gt; Ok. How about a FIXME to implement for macOS which I can work on next? I
&gt; agree it&apos;s a big deal to promote to API and re-evaluating the scope seems
&gt; like a good idea. It seems logical to me to separate these into two patches,
&gt; because macOS would require new implementation instead of just copying the
&gt; SPI, meaning its more likely to potentially introduce a regression and need
&gt; to be rolled out, in which case it would be nice to have it isolated in its
&gt; own patch.

If you are going to make it work cross platform, I would argue you should do that first and delay introducing API until you are ready, and have tested it in all the relevant configurations.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1700836</commentid>
    <comment_count>23</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-10-22 14:31:18 -0700</bug_when>
    <thetext>&lt;rdar://problem/70589521&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1711384</commentid>
    <comment_count>24</comment_count>
      <attachid>415233</attachid>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2020-12-02 10:42:31 -0800</bug_when>
    <thetext>Created attachment 415233
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1711408</commentid>
    <comment_count>25</comment_count>
      <attachid>415240</attachid>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2020-12-02 11:23:42 -0800</bug_when>
    <thetext>Created attachment 415240
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1711468</commentid>
    <comment_count>26</comment_count>
      <attachid>415253</attachid>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2020-12-02 14:32:33 -0800</bug_when>
    <thetext>Created attachment 415253
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1711470</commentid>
    <comment_count>27</comment_count>
      <attachid>415253</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2020-12-02 14:38:33 -0800</bug_when>
    <thetext>Comment on attachment 415253
Patch

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

&gt; Source/WebKit/UIProcess/API/C/WKPreferencesRefPrivate.h:571
&gt; +WK_EXPORT void WKPreferencesSetTextInteractionGesturesEnabled(WKPreferencesRef, bool flag);

Let&apos;s not add new C SPI in 2020 if at all possible.

&gt; Source/WebKit/UIProcess/API/Cocoa/WKWebViewConfiguration.mm:145
&gt; +    ALLOW_DEPRECATED_DECLARATIONS_BEGIN

This doesn&apos;t make sense around an ivar (to me)

&gt; Source/WebKit/UIProcess/API/Cocoa/WKWebViewConfiguration.mm:359
&gt;      self._textInteractionGesturesEnabled = [coder decodeBoolForKey:@&quot;textInteractionGesturesEnabled&quot;];

This one I understand.

&gt; Source/WebKit/UIProcess/API/Cocoa/WKWebViewConfiguration.mm:419
&gt; +    ALLOW_DEPRECATED_DECLARATIONS_BEGIN

Nor does it make sense here</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1711481</commentid>
    <comment_count>28</comment_count>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2020-12-02 15:09:32 -0800</bug_when>
    <thetext>(In reply to Tim Horton from comment #27)
&gt; Comment on attachment 415253 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=415253&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/UIProcess/API/C/WKPreferencesRefPrivate.h:571
&gt; &gt; +WK_EXPORT void WKPreferencesSetTextInteractionGesturesEnabled(WKPreferencesRef, bool flag);
&gt; 
&gt; Let&apos;s not add new C SPI in 2020 if at all possible.

This is the only way I see WebPreferences set in WebKitTestRunner, am I missing another way to do it without using C SPI?

&gt; 
&gt; &gt; Source/WebKit/UIProcess/API/Cocoa/WKWebViewConfiguration.mm:145
&gt; &gt; +    ALLOW_DEPRECATED_DECLARATIONS_BEGIN
&gt; 
&gt; This doesn&apos;t make sense around an ivar (to me)

Ok, will remove.

&gt; 
&gt; &gt; Source/WebKit/UIProcess/API/Cocoa/WKWebViewConfiguration.mm:359
&gt; &gt;      self._textInteractionGesturesEnabled = [coder decodeBoolForKey:@&quot;textInteractionGesturesEnabled&quot;];
&gt; 
&gt; This one I understand.

yay! :) 

&gt; 
&gt; &gt; Source/WebKit/UIProcess/API/Cocoa/WKWebViewConfiguration.mm:419
&gt; &gt; +    ALLOW_DEPRECATED_DECLARATIONS_BEGIN
&gt; 
&gt; Nor does it make sense here

Ditto, will remove.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1711486</commentid>
    <comment_count>29</comment_count>
      <attachid>415253</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-12-02 15:26:57 -0800</bug_when>
    <thetext>Comment on attachment 415253
Patch

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

&gt;&gt;&gt; Source/WebKit/UIProcess/API/C/WKPreferencesRefPrivate.h:571
&gt;&gt;&gt; +WK_EXPORT void WKPreferencesSetTextInteractionGesturesEnabled(WKPreferencesRef, bool flag);
&gt;&gt; 
&gt;&gt; Let&apos;s not add new C SPI in 2020 if at all possible.
&gt; 
&gt; This is the only way I see WebPreferences set in WebKitTestRunner, am I missing another way to do it without using C SPI?

I think you should be able to do an ObjC bridging cast from `WKPreferencesRef` to `WKPreferences *` (i.e. `(__bridge WKPreferences *)`). This has the drawback of not being cross-platform (the code would probably be in TestControllerCocoa), but maybe that&apos;s okay here since the API is specific to Cocoa anyways :P</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1711487</commentid>
    <comment_count>30</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-12-02 15:29:44 -0800</bug_when>
    <thetext>(In reply to Wenson Hsieh from comment #29)
&gt; Comment on attachment 415253 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=415253&amp;action=review
&gt; 
&gt; &gt;&gt;&gt; Source/WebKit/UIProcess/API/C/WKPreferencesRefPrivate.h:571
&gt; &gt;&gt;&gt; +WK_EXPORT void WKPreferencesSetTextInteractionGesturesEnabled(WKPreferencesRef, bool flag);
&gt; &gt;&gt; 
&gt; &gt;&gt; Let&apos;s not add new C SPI in 2020 if at all possible.
&gt; &gt; 
&gt; &gt; This is the only way I see WebPreferences set in WebKitTestRunner, am I missing another way to do it without using C SPI?
&gt; 
&gt; I think you should be able to do an ObjC bridging cast from
&gt; `WKPreferencesRef` to `WKPreferences *` (i.e. `(__bridge WKPreferences *)`).
&gt; This has the drawback of not being cross-platform (the code would probably
&gt; be in TestControllerCocoa), but maybe that&apos;s okay here since the API is
&gt; specific to Cocoa anyways :P

On second thought, a bridging cast is actually unnecessary, since TestController::cocoaResetStateToConsistentValues can just grab the WKWebView and update the WKWebView&apos;s preferences.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1711488</commentid>
    <comment_count>31</comment_count>
      <attachid>415253</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-12-02 15:32:16 -0800</bug_when>
    <thetext>Comment on attachment 415253
Patch

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

&gt;&gt;&gt;&gt;&gt; Source/WebKit/UIProcess/API/C/WKPreferencesRefPrivate.h:571
&gt;&gt;&gt;&gt;&gt; +WK_EXPORT void WKPreferencesSetTextInteractionGesturesEnabled(WKPreferencesRef, bool flag);
&gt;&gt;&gt;&gt; 
&gt;&gt;&gt;&gt; Let&apos;s not add new C SPI in 2020 if at all possible.
&gt;&gt;&gt; 
&gt;&gt;&gt; This is the only way I see WebPreferences set in WebKitTestRunner, am I missing another way to do it without using C SPI?
&gt;&gt; 
&gt;&gt; I think you should be able to do an ObjC bridging cast from `WKPreferencesRef` to `WKPreferences *` (i.e. `(__bridge WKPreferences *)`). This has the drawback of not being cross-platform (the code would probably be in TestControllerCocoa), but maybe that&apos;s okay here since the API is specific to Cocoa anyways :P
&gt; 
&gt; On second thought, a bridging cast is actually unnecessary, since TestController::cocoaResetStateToConsistentValues can just grab the WKWebView and update the WKWebView&apos;s preferences.

Can WKPreferencesSetInternalDebugFeatureForKey or WKPreferencesSetExperimentalFeatureForKey work?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1711493</commentid>
    <comment_count>32</comment_count>
      <attachid>415256</attachid>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2020-12-02 15:56:53 -0800</bug_when>
    <thetext>Created attachment 415256
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1711496</commentid>
    <comment_count>33</comment_count>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2020-12-02 15:59:06 -0800</bug_when>
    <thetext>(In reply to Alex Christensen from comment #31)
&gt; Comment on attachment 415253 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=415253&amp;action=review
&gt; 
&gt; &gt;&gt;&gt;&gt;&gt; Source/WebKit/UIProcess/API/C/WKPreferencesRefPrivate.h:571
&gt; &gt;&gt;&gt;&gt;&gt; +WK_EXPORT void WKPreferencesSetTextInteractionGesturesEnabled(WKPreferencesRef, bool flag);
&gt; &gt;&gt;&gt;&gt; 
&gt; &gt;&gt;&gt;&gt; Let&apos;s not add new C SPI in 2020 if at all possible.
&gt; &gt;&gt;&gt; 
&gt; &gt;&gt;&gt; This is the only way I see WebPreferences set in WebKitTestRunner, am I missing another way to do it without using C SPI?
&gt; &gt;&gt; 
&gt; &gt;&gt; I think you should be able to do an ObjC bridging cast from `WKPreferencesRef` to `WKPreferences *` (i.e. `(__bridge WKPreferences *)`). This has the drawback of not being cross-platform (the code would probably be in TestControllerCocoa), but maybe that&apos;s okay here since the API is specific to Cocoa anyways :P
&gt; &gt; 
&gt; &gt; On second thought, a bridging cast is actually unnecessary, since TestController::cocoaResetStateToConsistentValues can just grab the WKWebView and update the WKWebView&apos;s preferences.
&gt; 
&gt; Can WKPreferencesSetInternalDebugFeatureForKey or
&gt; WKPreferencesSetExperimentalFeatureForKey work?

I don&apos;t think this makes sense because it is not an experimental feature or debug feature. Setting preferences in TestController::cocoaResetStateToConsistentValues() worked though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1711883</commentid>
    <comment_count>34</comment_count>
      <attachid>415256</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-12-03 16:05:45 -0800</bug_when>
    <thetext>Comment on attachment 415256
Patch

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

&gt; Source/WTF/Scripts/Preferences/WebPreferences.yaml:2286
&gt; +      default: true

Should this default to false on watchOS? (I&apos;d imagine that once we remove the old _textInteractionGesturesEnabled SPI, watchOS WebKit clients shouldn&apos;t be required to set `textInteractionGesturesEnabled` to `NO` to get the right behavior).

&gt; Source/WebKit/UIProcess/API/Cocoa/WKPreferences.h:65
&gt; +@property (nonatomic) BOOL textInteractionGesturesEnabled WK_API_AVAILABLE(macos(WK_MAC_TBA), ios(WK_IOS_TBA));

I&apos;m not sure if &quot;text interaction gestures&quot; is a term that is really used on macOS to describe selecting text and modifying caret selections…but I&apos;d imagine other folks (both WebKit and outside of WebKit) will have more input here. IMO, `textSelectionEnabled` or `textInteractionEnabled` seem more concise and accurate.

&gt; Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebViewDisableSelection.mm:58
&gt; +    EXPECT_STREQ(&quot;&quot;, selectedText2.UTF8String);

Nit - you can use EXPECT_WK_STREQ here instead to avoid the extra `.UTF8String`.

&gt; Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebViewDisableSelection.mm:93
&gt; +    EXPECT_STREQ(&quot;&quot;, selectedText2.UTF8String);

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1712073</commentid>
    <comment_count>35</comment_count>
      <attachid>415432</attachid>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2020-12-04 11:04:04 -0800</bug_when>
    <thetext>Created attachment 415432
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1712074</commentid>
    <comment_count>36</comment_count>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2020-12-04 11:04:48 -0800</bug_when>
    <thetext>(In reply to Wenson Hsieh from comment #34)
&gt; Comment on attachment 415256 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=415256&amp;action=review
&gt; 
&gt; &gt; Source/WTF/Scripts/Preferences/WebPreferences.yaml:2286
&gt; &gt; +      default: true
&gt; 
&gt; Should this default to false on watchOS? (I&apos;d imagine that once we remove
&gt; the old _textInteractionGesturesEnabled SPI, watchOS WebKit clients
&gt; shouldn&apos;t be required to set `textInteractionGesturesEnabled` to `NO` to get
&gt; the right behavior).

Yes, you&apos;re right. Good catch. I fixed this in the patch for landing.

&gt; 
&gt; &gt; Source/WebKit/UIProcess/API/Cocoa/WKPreferences.h:65
&gt; &gt; +@property (nonatomic) BOOL textInteractionGesturesEnabled WK_API_AVAILABLE(macos(WK_MAC_TBA), ios(WK_IOS_TBA));
&gt; 
&gt; I&apos;m not sure if &quot;text interaction gestures&quot; is a term that is really used on
&gt; macOS to describe selecting text and modifying caret selections…but I&apos;d
&gt; imagine other folks (both WebKit and outside of WebKit) will have more input
&gt; here. IMO, `textSelectionEnabled` or `textInteractionEnabled` seem more
&gt; concise and accurate.

Ok, I renamed the new preference to &apos;textInteractionEnabled&apos;, and can make adjustments during the API review process based on feedback if needed.

&gt; 
&gt; &gt; Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebViewDisableSelection.mm:58
&gt; &gt; +    EXPECT_STREQ(&quot;&quot;, selectedText2.UTF8String);
&gt; 
&gt; Nit - you can use EXPECT_WK_STREQ here instead to avoid the extra
&gt; `.UTF8String`.
&gt; 
&gt; &gt; Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebViewDisableSelection.mm:93
&gt; &gt; +    EXPECT_STREQ(&quot;&quot;, selectedText2.UTF8String);
&gt; 
&gt; Ditto.

Fixed both of these.


Thanks for the review!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1712100</commentid>
    <comment_count>37</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-12-04 11:54:19 -0800</bug_when>
    <thetext>Committed r270446: &lt;https://trac.webkit.org/changeset/270446&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 415432.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1793219</commentid>
    <comment_count>38</comment_count>
      <attachid>415432</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2021-09-14 00:45:10 -0700</bug_when>
    <thetext>Comment on attachment 415432
Patch for landing

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

&gt; Source/WTF/Scripts/Preferences/WebPreferences.yaml:2284
&gt; +      &quot;PLATFORM(WATCH_OS)&quot;: false

PLATFORM(WATCH_OS) is not a thing, it&apos;s PLATFORM(WATCHOS) :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1793352</commentid>
    <comment_count>39</comment_count>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2021-09-14 10:27:29 -0700</bug_when>
    <thetext>Reopening to attach new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1793353</commentid>
    <comment_count>40</comment_count>
      <attachid>438153</attachid>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2021-09-14 10:27:30 -0700</bug_when>
    <thetext>Created attachment 438153
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1793368</commentid>
    <comment_count>41</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-09-14 11:51:44 -0700</bug_when>
    <thetext>Committed r282399 (241660@main): &lt;https://commits.webkit.org/241660@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 438153.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411491</attachid>
            <date>2020-10-15 14:49:53 -0700</date>
            <delta_ts>2020-10-15 15:15:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217784-20201015144952.patch</filename>
            <type>text/plain</type>
            <size>13496</size>
            <attacher name="Kate Cheney">katherine_cheney</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4NDU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGM3NmNiN2Y0MWQ0Y2ZiMWFh
ZTY4M2Q2ZmQ5YWMzMDI2NjFmMGU3NzcuLmYyZTU2NDU1MDZlYWM2NmNkZWE3ZGJlODBiNzEwODcx
NTdiMGQ4MTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMjAtMTAtMTUgIEthdGUgQ2hl
bmV5ICA8a2F0aGVyaW5lX2NoZW5leUBhcHBsZS5jb20+CisKKyAgICAgICAgQ3JlYXRlIEFQSSB0
byBlbmFibGUvZGlzYWJsZSB0ZXh0IGludGVyYWN0aW9uIGdlc3R1cmVzIGluIFdLV2ViVmlldwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3Nzg0Cisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS82MzQwNjI0MT4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDcmVhdGUgYSBuZXcgQVBJIHRvIGRpc2FibGUgdGV4
dCBpbnRlcmFjdGlvbiBnZXN0dXJlcyBpbiBhIFdLV2ViVmlldy4KKyAgICAgICAgV2UgaGF2ZSBT
UEkgZm9yIHRoaXMsIGJ1dCBpdCBjb3VsZCBiZSB1c2VmdWwgdG8gb3RoZXIgV2ViS2l0IGNsaWVu
dHMuCisgICAgICAgIEFkZGl0aW9uYWxseSwgdGhlIEFQSSBpcyBvbiB0aGUgV0tXZWJWaWV3IG9i
amVjdCBpdHNlbGYsIGluc3RlYWQgb2YKKyAgICAgICAgdGhlIFdLV2ViVmlld0NvbmZpZ3VyYXRp
b24gb2JqZWN0LCBzbyBpdCBjYW4gYmUgY2hhbmdlZCBvbiB0aGUgZmx5LgorCisgICAgICAgIEtl
ZXAgdGhlIFNQSSBhcm91bmQgZm9yIGNvbXBhdGliaWxpdHkuCisKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL0NvY29hL1dLV2ViVmlldy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJWaWV3Lm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgX2luaXRpYWxpemVXaXRoQ29uZmln
dXJhdGlvbjpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IGluaXRXaXRoQ29kZXI6XSk6CisgICAg
ICAgICgtW1dLV2ViVmlldyBlbmNvZGVXaXRoQ29kZXI6XSk6CisgICAgICAgICogVUlQcm9jZXNz
L2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW06CisgICAgICAgICgtW1dLQ29udGVudFZp
ZXcgaGFzU2VsZWN0YWJsZVBvc2l0aW9uQXRQb2ludDpdKToKKyAgICAgICAgKC1bV0tDb250ZW50
VmlldyBwb2ludElzTmVhck1hcmtlZFRleHQ6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcg
dGV4dEludGVyYWN0aW9uR2VzdHVyZTpzaG91bGRCZWdpbkF0UG9pbnQ6XSk6CisgICAgICAgICgt
W1dLQ29udGVudFZpZXcgX2Nhc2NhZGVJbnRlcmFjdGlvblRpbnRDb2xvcl0pOgorCiAyMDIwLTEw
LTE0ICBLYXRlIENoZW5leSAgPGthdGhlcmluZV9jaGVuZXlAYXBwbGUuY29tPgogCiAgICAgICAg
IFJlbW92ZSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzIHRlbGVtZXRyeQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5oIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5oCmluZGV4IDc2MWExZGEwZjY1YjM2OTk3
YmFiNDllNjZjMmMyOGU5ZmYwYjBjOGMuLjQyOWQxZjBlMWQwY2VmY2U4ZDhiZjczYzljNzdkNWQz
NDA1MzVlOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1dlYlZpZXcuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJW
aWV3LmgKQEAgLTQ2Myw2ICs0NjMsMTMgQEAgVGhlIHVuaWZvcm0gdHlwZSBpZGVudGlmaWVyIGtV
VFR5cGVXZWJBcmNoaXZlIGNhbiBiZSB1c2VkIGdldCB0aGUgcmVsYXRlZCBwYXN0ZWIKICovCiAt
IChOU1ByaW50T3BlcmF0aW9uICopcHJpbnRPcGVyYXRpb25XaXRoUHJpbnRJbmZvOihOU1ByaW50
SW5mbyAqKXByaW50SW5mbyBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpKTsKICNl
bmRpZgorCisjaWYgVEFSR0VUX09TX0lQSE9ORQorLyohIEBhYnN0cmFjdCBBIEJvb2xlYW4gdmFs
dWUgaW5kaWNhdGluZyB3aGV0aGVyIHRleHQgaW50ZXJhY3Rpb24gaXMgZGlzYWJsZWQuCisgQGRp
c2N1c3Npb24gVGhlIGRlZmF1bHQgdmFsdWUgaXMgWUVTIGZvciBpT1MsIGFuZCBOTyBmb3IgV2F0
Y2hPUy4KKyovCitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPXNldFRleHRJbnRlcmFjdGlv
bkdlc3R1cmVzRW5hYmxlZDopIEJPT0wgdGV4dEludGVyYWN0aW9uR2VzdHVyZXNFbmFibGVkIFdL
X0FQSV9BVkFJTEFCTEUoaW9zKFdLX0lPU19UQkEpKTsKKyNlbmRpZgogQGVuZAogCiAjaWYgIVRB
UkdFVF9PU19JUEhPTkUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tX
ZWJWaWV3Lm1tCmluZGV4IDY4YjAwNWU0NmRmNmQyMWU2NmUyZTBhNmJhZjU3YzNjNjI4MmZjZTIu
LjdmMGM2MzA3ZGUxNzZlNWRlODRmZWMyZDM5M2JmOWM5Yzk0MmRmOWQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQpAQCAtMzY0LDYgKzM2NCwx
MyBAQCAtICh2b2lkKV9pbml0aWFsaXplV2l0aENvbmZpZ3VyYXRpb246KFdLV2ViVmlld0NvbmZp
Z3VyYXRpb24gKiljb25maWd1cmF0aW9uCiAgICAgX3BhZ2UtPmNvbnRlbnRTaXplQ2F0ZWdvcnlE
aWRDaGFuZ2UoW3NlbGYgX2NvbnRlbnRTaXplQ2F0ZWdvcnldKTsKIAogICAgIENGTm90aWZpY2F0
aW9uQ2VudGVyQWRkT2JzZXJ2ZXIoQ0ZOb3RpZmljYXRpb25DZW50ZXJHZXREYXJ3aW5Ob3RpZnlD
ZW50ZXIoKSwgKF9fYnJpZGdlIGNvbnN0IHZvaWQgKikoc2VsZiksIGhhcmR3YXJlS2V5Ym9hcmRB
dmFpbGFiaWxpdHlDaGFuZ2VkQ2FsbGJhY2ssIChDRlN0cmluZ1JlZilbTlNTdHJpbmcgc3RyaW5n
V2l0aFVURjhTdHJpbmc6a0dTRXZlbnRIYXJkd2FyZUtleWJvYXJkQXZhaWxhYmlsaXR5Q2hhbmdl
ZE5vdGlmaWNhdGlvbl0sIG51bGxwdHIsIENGTm90aWZpY2F0aW9uU3VzcGVuc2lvbkJlaGF2aW9y
Q29hbGVzY2UpOworCisjaWYgUExBVEZPUk0oV0FUQ0hPUykKKyAgICBbc2VsZiBzZXRUZXh0SW50
ZXJhY3Rpb25HZXN0dXJlc0VuYWJsZWQ6Tk9dOworI2Vsc2UKKyAgICBbc2VsZiBzZXRUZXh0SW50
ZXJhY3Rpb25HZXN0dXJlc0VuYWJsZWQ6WUVTXTsKKyNlbmRpZgorCiAjZW5kaWYgLy8gUExBVEZP
Uk0oSU9TX0ZBTUlMWSkKIAogI2lmIEVOQUJMRShNRVRBX1ZJRVdQT1JUKQpAQCAtNTU3LDYgKzU2
NCwxMCBAQCAtIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhDb2RlcjooTlNDb2RlciAqKWNvZGVyCiAg
ICAgc2VsZi5hbGxvd3NNYWduaWZpY2F0aW9uID0gW2NvZGVyIGRlY29kZUJvb2xGb3JLZXk6QCJh
bGxvd3NNYWduaWZpY2F0aW9uIl07CiAgICAgc2VsZi5tYWduaWZpY2F0aW9uID0gW2NvZGVyIGRl
Y29kZURvdWJsZUZvcktleTpAIm1hZ25pZmljYXRpb24iXTsKICNlbmRpZgorICAgIAorI2lmIFBM
QVRGT1JNKElPU19GQU1JTFkpCisgICAgc2VsZi50ZXh0SW50ZXJhY3Rpb25HZXN0dXJlc0VuYWJs
ZWQgPSBbY29kZXIgZGVjb2RlQm9vbEZvcktleTpAInRleHRJbnRlcmFjdGlvbkdlc3R1cmVzRW5h
YmxlZCJdOworI2VuZGlmCiAKICAgICByZXR1cm4gc2VsZjsKIH0KQEAgLTU3NSw2ICs1ODYsMTAg
QEAgLSAodm9pZCllbmNvZGVXaXRoQ29kZXI6KE5TQ29kZXIgKiljb2RlcgogICAgIFtjb2RlciBl
bmNvZGVCb29sOnNlbGYuYWxsb3dzTWFnbmlmaWNhdGlvbiBmb3JLZXk6QCJhbGxvd3NNYWduaWZp
Y2F0aW9uIl07CiAgICAgW2NvZGVyIGVuY29kZURvdWJsZTpzZWxmLm1hZ25pZmljYXRpb24gZm9y
S2V5OkAibWFnbmlmaWNhdGlvbiJdOwogI2VuZGlmCisKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZ
KQorICAgIFtjb2RlciBlbmNvZGVCb29sOnNlbGYudGV4dEludGVyYWN0aW9uR2VzdHVyZXNFbmFi
bGVkIGZvcktleTpAInRleHRJbnRlcmFjdGlvbkdlc3R1cmVzRW5hYmxlZCJdOworI2VuZGlmCiB9
CiAKIC0gKHZvaWQpZGVhbGxvYwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
aW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KaW5kZXggODQ2YjlhMzQ5NDdlMzA0ZjRi
NjQ0MGZjYmYxNzAxZjQxZWIxNWFmOS4uMDE1MTg2ZTUzZjFhNmU5ODU2NTdlMWM2ZmYxNzFhNzY0
YzUwZDkyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVu
dFZpZXdJbnRlcmFjdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tD
b250ZW50Vmlld0ludGVyYWN0aW9uLm1tCkBAIC0yNTIxLDcgKzI1MjEsNyBAQCAtIChCT09MKWNh
blNob3dOb25FbXB0eVNlbGVjdGlvblZpZXcKIAogLSAoQk9PTCloYXNTZWxlY3RhYmxlUG9zaXRp
b25BdFBvaW50OihDR1BvaW50KXBvaW50CiB7Ci0gICAgaWYgKCFzZWxmLndlYlZpZXcuY29uZmln
dXJhdGlvbi5fdGV4dEludGVyYWN0aW9uR2VzdHVyZXNFbmFibGVkKQorICAgIGlmICghc2VsZi53
ZWJWaWV3LmNvbmZpZ3VyYXRpb24uX3RleHRJbnRlcmFjdGlvbkdlc3R1cmVzRW5hYmxlZCB8fCAh
c2VsZi53ZWJWaWV3LnRleHRJbnRlcmFjdGlvbkdlc3R1cmVzRW5hYmxlZCkKICAgICAgICAgcmV0
dXJuIE5POwogCiAgICAgaWYgKF9zdXBwcmVzc1NlbGVjdGlvbkFzc2lzdGFudFJlYXNvbnMpCkBA
IC0yNTM5LDcgKzI1MzksNyBAQCAtIChCT09MKWhhc1NlbGVjdGFibGVQb3NpdGlvbkF0UG9pbnQ6
KENHUG9pbnQpcG9pbnQKIAogLSAoQk9PTClwb2ludElzTmVhck1hcmtlZFRleHQ6KENHUG9pbnQp
cG9pbnQKIHsKLSAgICBpZiAoIXNlbGYud2ViVmlldy5jb25maWd1cmF0aW9uLl90ZXh0SW50ZXJh
Y3Rpb25HZXN0dXJlc0VuYWJsZWQpCisgICAgaWYgKCFzZWxmLndlYlZpZXcuY29uZmlndXJhdGlv
bi5fdGV4dEludGVyYWN0aW9uR2VzdHVyZXNFbmFibGVkIHx8ICFzZWxmLndlYlZpZXcudGV4dElu
dGVyYWN0aW9uR2VzdHVyZXNFbmFibGVkKQogICAgICAgICByZXR1cm4gTk87CiAKICAgICBpZiAo
X3N1cHByZXNzU2VsZWN0aW9uQXNzaXN0YW50UmVhc29ucykKQEAgLTI1NTMsNyArMjU1Myw3IEBA
IC0gKEJPT0wpcG9pbnRJc05lYXJNYXJrZWRUZXh0OihDR1BvaW50KXBvaW50CiAKIC0gKEJPT0wp
dGV4dEludGVyYWN0aW9uR2VzdHVyZTooVUlXS0dlc3R1cmVUeXBlKWdlc3R1cmUgc2hvdWxkQmVn
aW5BdFBvaW50OihDR1BvaW50KXBvaW50CiB7Ci0gICAgaWYgKCFzZWxmLndlYlZpZXcuY29uZmln
dXJhdGlvbi5fdGV4dEludGVyYWN0aW9uR2VzdHVyZXNFbmFibGVkKQorICAgIGlmICghc2VsZi53
ZWJWaWV3LmNvbmZpZ3VyYXRpb24uX3RleHRJbnRlcmFjdGlvbkdlc3R1cmVzRW5hYmxlZCB8fCAh
c2VsZi53ZWJWaWV3LnRleHRJbnRlcmFjdGlvbkdlc3R1cmVzRW5hYmxlZCkKICAgICAgICAgcmV0
dXJuIE5POwogCiAgICAgaWYgKF9kb21QYXN0ZVJlcXVlc3RIYW5kbGVyKQpAQCAtMzI3Miw3ICsz
MjcyLDcgQEAgLSAoVUlDb2xvciAqKXNlbGVjdGlvbkhpZ2hsaWdodENvbG9yCiAKIC0gKFVJQ29s
b3IgKilfY2FzY2FkZUludGVyYWN0aW9uVGludENvbG9yCiB7Ci0gICAgaWYgKCFzZWxmLndlYlZp
ZXcuY29uZmlndXJhdGlvbi5fdGV4dEludGVyYWN0aW9uR2VzdHVyZXNFbmFibGVkKQorICAgIGlm
ICghc2VsZi53ZWJWaWV3LmNvbmZpZ3VyYXRpb24uX3RleHRJbnRlcmFjdGlvbkdlc3R1cmVzRW5h
YmxlZCB8fCAhc2VsZi53ZWJWaWV3LnRleHRJbnRlcmFjdGlvbkdlc3R1cmVzRW5hYmxlZCkKICAg
ICAgICAgcmV0dXJuIFtVSUNvbG9yIGNsZWFyQ29sb3JdOwogCiAgICAgaWYgKCFfcGFnZS0+ZWRp
dG9yU3RhdGUoKS5pc01pc3NpbmdQb3N0TGF5b3V0RGF0YSkgewpkaWZmIC0tZ2l0IGEvVG9vbHMv
Q2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDgzZjczYmY2NjUxZTZiZTQ2YmZjODY0
MDU0ODc5NTY3MTliNjkzMmUuLjU4MWYzNTFiYjM2OWQ0NWUyMzY0OTc5MDJhMDMxMWM1NDE3MWY4
ZjggMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwyMCBAQAorMjAyMC0xMC0xNSAgS2F0ZSBDaGVuZXkgIDxrYXRoZXJpbmVfY2hlbmV5
QGFwcGxlLmNvbT4KKworICAgICAgICBDcmVhdGUgQVBJIHRvIGVuYWJsZS9kaXNhYmxlIHRleHQg
aW50ZXJhY3Rpb24gZ2VzdHVyZXMgaW4gV0tXZWJWaWV3CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTc3ODQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
LzYzNDA2MjQxPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEFkZCBBUEkgdGVzdCBjb3ZlcmFnZS4gVW5hYmxlIHRvIHRlc3QgaW5zdGFuY2VzIHdoaWNo
IHJlbHkgb24KKyAgICAgICAgX3Bvc2l0aW9uSW5mb3JtYXRpb24gYXMgSSB3YXMgdW5hYmxlIHRv
IG1pbWljIHRob3NlIGNvbmRpdGlvbnMgd2hpbGUKKyAgICAgICAgdGVzdGluZyAoZS5nLiBfcG9z
aXRpb25JbmZvcm1hdGlvbi5pc05lYXJNYXJrZWRUZXh0KS4gVGhlIGNoYW5nZSBpcworICAgICAg
ICBxdWl0ZSBzaW1wbGUgYW5kIGlzIG9ubHkgYWRkZWQgaW4gcGxhY2VzIHdoZXJlIHRoZSBTUEkg
YWxyZWFkeSBleGlzdHMuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEku
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3Rz
L2lvcy9UZXh0SW50ZXJhY3Rpb25HZXN0dXJlcy5tbTogQWRkZWQuCisgICAgICAgIChUZXN0V2Vi
S2l0QVBJOjpURVNUKToKKwogMjAyMC0xMC0xNCAgS2F0ZSBDaGVuZXkgIDxrYXRoZXJpbmVfY2hl
bmV5QGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgUmVzb3VyY2VMb2FkU3RhdGlzdGljcyB0
ZWxlbWV0cnkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0
QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNDM5NGM5NzZiZmIxZjJkNTgxNTc4
ODdiM2Q2ZjZkZWU1OTUyNjE2Ni4uMjI4YjgzZTg4ZGI5YjIxMGJlOWI3NjE1MmI2ZTFjODM5ZTZl
MmZhMCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0
QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTI3NCw2ICsyNzQsNyBAQAogCQk0OTcx
QjEzMTI0NjIzQTRGMDA5Njk5NEQgLyogYmFzaWNJVFBEYXRhYmFzZS5kYiBpbiBDb3B5IFJlc291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OTcxQjEyQzI0NjIzOUQz
MDA5Njk5NEQgLyogYmFzaWNJVFBEYXRhYmFzZS5kYiAqLzsgfTsKIAkJNDk4OTdENkMyNDFGRTlF
NDAwRUNGMTUzIC8qIGluLWFwcC1icm93c2VyLXByaXZhY3ktbG9jYWwtZmlsZS5odG1sIGluIENv
cHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5RDdGQkE3
MjQxRkREREEwMEFCNjdGQSAvKiBpbi1hcHAtYnJvd3Nlci1wcml2YWN5LWxvY2FsLWZpbGUuaHRt
bCAqLzsgfTsKIAkJNDlBRUVGNkQyNDA3MzU5RDAwQzg3RTRDIC8qIEluQXBwQnJvd3NlclByaXZh
Y3kubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OUFF
RUY2QjI0MDczNTg2MDBDODdFNEMgLyogSW5BcHBCcm93c2VyUHJpdmFjeS5tbSAqLzsgfTsKKwkJ
NDlGNzNFRTQyNTM3NzAzRTAwMzVBODdDIC8qIFRleHRJbnRlcmFjdGlvbkdlc3R1cmVzLm1tIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDlGNzNFRTMyNTM3
NzAzRTAwMzVBODdDIC8qIFRleHRJbnRlcmFjdGlvbkdlc3R1cmVzLm1tICovOyB9OwogCQk0QkZE
RkZBNzEzMTQ3NzZDMDA2MUYyNEIgLyogSGl0VGVzdFJlc3VsdE5vZGVIYW5kbGVfQnVuZGxlLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRCRkRGRkE2
MTMxNDc3NkMwMDYxRjI0QiAvKiBIaXRUZXN0UmVzdWx0Tm9kZUhhbmRsZV9CdW5kbGUuY3BwICov
OyB9OwogCQk1MTA0Nzc3MjFEMjk4REREMDA5NzQ3RUIgLyogSURCRGVsZXRlUmVjb3Zlcnkuc3Fs
aXRlMyBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA1MTA0Nzc2RjFEMjk4RDg1MDA5NzQ3RUIgLyogSURCRGVsZXRlUmVjb3Zlcnkuc3FsaXRlMyAq
LzsgfTsKIAkJNTEwNDc3NzMxRDI5OERERDAwOTc0N0VCIC8qIElEQkRlbGV0ZVJlY292ZXJ5LnNx
bGl0ZTMtc2htIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDUxMDQ3NzcwMUQyOThEODUwMDk3NDdFQiAvKiBJREJEZWxldGVSZWNvdmVyeS5zcWxp
dGUzLXNobSAqLzsgfTsKQEAgLTE5OTIsNiArMTk5Myw3IEBACiAJCTQ5QUVFRjY4MjQwNzI3NkYw
MEM4N0U0QyAvKiBJbmZvLnBsaXN0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5wbGlzdC54bWw7IHBhdGggPSBJ
bmZvLnBsaXN0OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0OUFFRUY2QjI0MDczNTg2
MDBDODdFNEMgLyogSW5BcHBCcm93c2VyUHJpdmFjeS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgcGF0aCA9IEluQXBwQnJvd3NlclByaXZhY3kubW07IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTQ5RDdGQkE3MjQxRkREREEwMEFCNjdGQSAvKiBpbi1hcHAtYnJvd3Nl
ci1wcml2YWN5LWxvY2FsLWZpbGUuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJpbi1hcHAtYnJvd3Nlci1wcml2
YWN5LWxvY2FsLWZpbGUuaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ5Rjcz
RUUzMjUzNzcwM0UwMDM1QTg3QyAvKiBUZXh0SW50ZXJhY3Rpb25HZXN0dXJlcy5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
Lm9iamNwcDsgcGF0aCA9IFRleHRJbnRlcmFjdGlvbkdlc3R1cmVzLm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk0QTQxMEY0QjE5QUY3QkQ2MDAyRUJBQjUgLyogVXNlck1lZGlhLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFVzZXJNZWRpYS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTRBNDEwRjREMTlBRjdCRUYwMDJFQkFCNSAvKiBn
ZXRVc2VyTWVkaWEuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9IGdldFVzZXJNZWRp
YS5odG1sOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0QTQxMEY0RDE5QUY3QkVGMDAy
RUJBQjYgLyogb25kZXZpY2VjaGFuZ2UuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9
IG9uZGV2aWNlY2hhbmdlLmh0bWw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zNjAy
LDYgKzM2MDQsNyBAQAogCQkJCUY0NUUxNTc0MjExMkNFNjIwMDMwN0U4MiAvKiBUZXN0SW5wdXRE
ZWxlZ2F0ZS5oICovLAogCQkJCUY0NUUxNTc1MjExMkNFNjIwMDMwN0U4MiAvKiBUZXN0SW5wdXRE
ZWxlZ2F0ZS5tbSAqLywKIAkJCQlGNDUwMzNGNDIwNkJFQzk1MDA5MzUxQ0UgLyogVGV4dEF1dG9z
aXppbmdCb29zdC5tbSAqLywKKwkJCQk0OUY3M0VFMzI1Mzc3MDNFMDAzNUE4N0MgLyogVGV4dElu
dGVyYWN0aW9uR2VzdHVyZXMubW0gKi8sCiAJCQkJRjQ2ODQ5QkQxRUVGNThFNDAwQjkzN0ZFIC8q
IFVJUGFzdGVib2FyZFRlc3RzLm1tICovLAogCQkJCUY0MDJGNTZCMjNFQ0MyRkIwMDg2NTU0OSAv
KiBVSVdLSW50ZXJhY3Rpb25WaWV3UHJvdG9jb2wubW0gKi8sCiAJCQkJRjQzRTNCQkUyMERBREEx
RTAwQTRFN0VEIC8qIFdLU2Nyb2xsVmlld1Rlc3RzLm1tICovLApAQCAtNTQ1Miw2ICs1NDU1LDcg
QEAKIAkJCQlGNDUwMzNGNTIwNkJFQzk1MDA5MzUxQ0UgLyogVGV4dEF1dG9zaXppbmdCb29zdC5t
bSBpbiBTb3VyY2VzICovLAogCQkJCTkzRTYxOTNCMUY5MzFCM0EwMEFGMjQ1RSAvKiBUZXh0Q29k
ZWMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0UzNTI0RjkxQjE0NDFDNDAwMjhBN0M1IC8qIFRl
eHRGaWVsZERpZEJlZ2luQW5kRW5kRWRpdGluZy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk0OUY3
M0VFNDI1Mzc3MDNFMDAzNUE4N0MgLyogVGV4dEludGVyYWN0aW9uR2VzdHVyZXMubW0gaW4gU291
cmNlcyAqLywKIAkJCQk5QjAyRTBENjIzNUZBNDdEMDA0MDQ0QjIgLyogVGV4dE1hbmlwdWxhdGlv
bi5tbSBpbiBTb3VyY2VzICovLAogCQkJCTVDMTZGOEZDMjMwQzk0MzcwMDc0QzRBOCAvKiBUZXh0
U2l6ZS5tbSBpbiBTb3VyY2VzICovLAogCQkJCUMyMkZBMzJCMjI4Rjg3MDgwMDlENzk4OCAvKiBU
ZXh0V2lkdGgubW0gaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvaW9zL1RleHRJbnRlcmFjdGlvbkdlc3R1cmVzLm1tIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9pb3MvVGV4dEludGVyYWN0aW9uR2VzdHVyZXMubW0KbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzIy
YzNmNDc4ZjEwNzhkNmY0OGRlOTM3M2EyZDdiY2M0NmI2OTNhMAotLS0gL2Rldi9udWxsCisrKyBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvaW9zL1RleHRJbnRlcmFjdGlvbkdlc3R1cmVzLm1t
CkBAIC0wLDAgKzEsNTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKworI2lt
cG9ydCAiUGxhdGZvcm1VdGlsaXRpZXMuaCIKKyNpbXBvcnQgIlRlc3QuaCIKKyNpbXBvcnQgIlRl
c3RXS1dlYlZpZXcuaCIKKworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisjaW1wb3J0ICJVSUtp
dFNQSS5oIgorCitAaW50ZXJmYWNlIFdLQ29udGVudFZpZXcgKCkKKy0gKFVJQ29sb3IgKilfY2Fz
Y2FkZUludGVyYWN0aW9uVGludENvbG9yOworQGVuZAorCituYW1lc3BhY2UgVGVzdFdlYktpdEFQ
SSB7CisKK1RFU1QoV0tXZWJWaWV3LCBEaXNhYmxlVGV4dEludGVyYWN0aW9uVGludENvbG9yKQor
eworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0
V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgMzIwLCA1MDApXSk7CisgICAgRVhQRUNUX0VRKFtb
d2ViVmlldyB3a0NvbnRlbnRWaWV3XSBfY2FzY2FkZUludGVyYWN0aW9uVGludENvbG9yXSwgW1t3
ZWJWaWV3IHdrQ29udGVudFZpZXddIF9pbmhlcml0ZWRJbnRlcmFjdGlvblRpbnRDb2xvcl0pOwor
ICAgIFt3ZWJWaWV3IHNldFRleHRJbnRlcmFjdGlvbkdlc3R1cmVzRW5hYmxlZDpOT107CisgICAg
RVhQRUNUX0VRKFtbd2ViVmlldyB3a0NvbnRlbnRWaWV3XSBfY2FzY2FkZUludGVyYWN0aW9uVGlu
dENvbG9yXSwgW1VJQ29sb3IgY2xlYXJDb2xvcl0pOworfQorCit9IC8vIG5hbWVzcGFjZSBUZXN0
V2ViS2l0QVBJCisKKyNlbmRpZiAvLyBQTEFURk9STShJT1NfRkFNSUxZKQo=
</data>
<flag name="commit-queue"
          id="427708"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411498</attachid>
            <date>2020-10-15 15:14:25 -0700</date>
            <delta_ts>2020-10-15 16:23:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217784-20201015151425.patch</filename>
            <type>text/plain</type>
            <size>13446</size>
            <attacher name="Kate Cheney">katherine_cheney</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4NDU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGM3NmNiN2Y0MWQ0Y2ZiMWFh
ZTY4M2Q2ZmQ5YWMzMDI2NjFmMGU3NzcuLmYyZTU2NDU1MDZlYWM2NmNkZWE3ZGJlODBiNzEwODcx
NTdiMGQ4MTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMjAtMTAtMTUgIEthdGUgQ2hl
bmV5ICA8a2F0aGVyaW5lX2NoZW5leUBhcHBsZS5jb20+CisKKyAgICAgICAgQ3JlYXRlIEFQSSB0
byBlbmFibGUvZGlzYWJsZSB0ZXh0IGludGVyYWN0aW9uIGdlc3R1cmVzIGluIFdLV2ViVmlldwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3Nzg0Cisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS82MzQwNjI0MT4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDcmVhdGUgYSBuZXcgQVBJIHRvIGRpc2FibGUgdGV4
dCBpbnRlcmFjdGlvbiBnZXN0dXJlcyBpbiBhIFdLV2ViVmlldy4KKyAgICAgICAgV2UgaGF2ZSBT
UEkgZm9yIHRoaXMsIGJ1dCBpdCBjb3VsZCBiZSB1c2VmdWwgdG8gb3RoZXIgV2ViS2l0IGNsaWVu
dHMuCisgICAgICAgIEFkZGl0aW9uYWxseSwgdGhlIEFQSSBpcyBvbiB0aGUgV0tXZWJWaWV3IG9i
amVjdCBpdHNlbGYsIGluc3RlYWQgb2YKKyAgICAgICAgdGhlIFdLV2ViVmlld0NvbmZpZ3VyYXRp
b24gb2JqZWN0LCBzbyBpdCBjYW4gYmUgY2hhbmdlZCBvbiB0aGUgZmx5LgorCisgICAgICAgIEtl
ZXAgdGhlIFNQSSBhcm91bmQgZm9yIGNvbXBhdGliaWxpdHkuCisKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL0NvY29hL1dLV2ViVmlldy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJWaWV3Lm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgX2luaXRpYWxpemVXaXRoQ29uZmln
dXJhdGlvbjpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IGluaXRXaXRoQ29kZXI6XSk6CisgICAg
ICAgICgtW1dLV2ViVmlldyBlbmNvZGVXaXRoQ29kZXI6XSk6CisgICAgICAgICogVUlQcm9jZXNz
L2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW06CisgICAgICAgICgtW1dLQ29udGVudFZp
ZXcgaGFzU2VsZWN0YWJsZVBvc2l0aW9uQXRQb2ludDpdKToKKyAgICAgICAgKC1bV0tDb250ZW50
VmlldyBwb2ludElzTmVhck1hcmtlZFRleHQ6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcg
dGV4dEludGVyYWN0aW9uR2VzdHVyZTpzaG91bGRCZWdpbkF0UG9pbnQ6XSk6CisgICAgICAgICgt
W1dLQ29udGVudFZpZXcgX2Nhc2NhZGVJbnRlcmFjdGlvblRpbnRDb2xvcl0pOgorCiAyMDIwLTEw
LTE0ICBLYXRlIENoZW5leSAgPGthdGhlcmluZV9jaGVuZXlAYXBwbGUuY29tPgogCiAgICAgICAg
IFJlbW92ZSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzIHRlbGVtZXRyeQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5oIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5oCmluZGV4IDc2MWExZGEwZjY1YjM2OTk3
YmFiNDllNjZjMmMyOGU5ZmYwYjBjOGMuLjE4MmIxOGFhOGFlOTRlOTY5ZmYyYmEzZDIyMmRkYTFm
NTkwMzdkY2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1dlYlZpZXcuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJW
aWV3LmgKQEAgLTQ2Myw2ICs0NjMsMTMgQEAgVGhlIHVuaWZvcm0gdHlwZSBpZGVudGlmaWVyIGtV
VFR5cGVXZWJBcmNoaXZlIGNhbiBiZSB1c2VkIGdldCB0aGUgcmVsYXRlZCBwYXN0ZWIKICovCiAt
IChOU1ByaW50T3BlcmF0aW9uICopcHJpbnRPcGVyYXRpb25XaXRoUHJpbnRJbmZvOihOU1ByaW50
SW5mbyAqKXByaW50SW5mbyBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpKTsKICNl
bmRpZgorCisjaWYgVEFSR0VUX09TX0lQSE9ORQorLyohIEBhYnN0cmFjdCBBIEJvb2xlYW4gdmFs
dWUgaW5kaWNhdGluZyB3aGV0aGVyIHRleHQgaW50ZXJhY3Rpb24gaXMgZGlzYWJsZWQuCisgQGRp
c2N1c3Npb24gVGhlIGRlZmF1bHQgdmFsdWUgaXMgWUVTIGZvciBpT1MsIGFuZCBOTyBmb3Igd2F0
Y2hPUy4KKyovCitAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCB0ZXh0SW50ZXJhY3Rpb25HZXN0
dXJlc0VuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShpb3MoV0tfSU9TX1RCQSkpOworI2VuZGlmCiBA
ZW5kCiAKICNpZiAhVEFSR0VUX09TX0lQSE9ORQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KaW5kZXggNjhiMDA1ZTQ2ZGY2ZDIxZTY2ZTJlMGE2YmFm
NTdjM2M2MjgyZmNlMi4uN2YwYzYzMDdkZTE3NmU1ZGU4NGZlYzJkMzkzYmY5YzljOTQyZGY5ZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCkBA
IC0zNjQsNiArMzY0LDEzIEBAIC0gKHZvaWQpX2luaXRpYWxpemVXaXRoQ29uZmlndXJhdGlvbjoo
V0tXZWJWaWV3Q29uZmlndXJhdGlvbiAqKWNvbmZpZ3VyYXRpb24KICAgICBfcGFnZS0+Y29udGVu
dFNpemVDYXRlZ29yeURpZENoYW5nZShbc2VsZiBfY29udGVudFNpemVDYXRlZ29yeV0pOwogCiAg
ICAgQ0ZOb3RpZmljYXRpb25DZW50ZXJBZGRPYnNlcnZlcihDRk5vdGlmaWNhdGlvbkNlbnRlckdl
dERhcndpbk5vdGlmeUNlbnRlcigpLCAoX19icmlkZ2UgY29uc3Qgdm9pZCAqKShzZWxmKSwgaGFy
ZHdhcmVLZXlib2FyZEF2YWlsYWJpbGl0eUNoYW5nZWRDYWxsYmFjaywgKENGU3RyaW5nUmVmKVtO
U1N0cmluZyBzdHJpbmdXaXRoVVRGOFN0cmluZzprR1NFdmVudEhhcmR3YXJlS2V5Ym9hcmRBdmFp
bGFiaWxpdHlDaGFuZ2VkTm90aWZpY2F0aW9uXSwgbnVsbHB0ciwgQ0ZOb3RpZmljYXRpb25TdXNw
ZW5zaW9uQmVoYXZpb3JDb2FsZXNjZSk7CisKKyNpZiBQTEFURk9STShXQVRDSE9TKQorICAgIFtz
ZWxmIHNldFRleHRJbnRlcmFjdGlvbkdlc3R1cmVzRW5hYmxlZDpOT107CisjZWxzZQorICAgIFtz
ZWxmIHNldFRleHRJbnRlcmFjdGlvbkdlc3R1cmVzRW5hYmxlZDpZRVNdOworI2VuZGlmCisKICNl
bmRpZiAvLyBQTEFURk9STShJT1NfRkFNSUxZKQogCiAjaWYgRU5BQkxFKE1FVEFfVklFV1BPUlQp
CkBAIC01NTcsNiArNTY0LDEwIEBAIC0gKGluc3RhbmNldHlwZSlpbml0V2l0aENvZGVyOihOU0Nv
ZGVyICopY29kZXIKICAgICBzZWxmLmFsbG93c01hZ25pZmljYXRpb24gPSBbY29kZXIgZGVjb2Rl
Qm9vbEZvcktleTpAImFsbG93c01hZ25pZmljYXRpb24iXTsKICAgICBzZWxmLm1hZ25pZmljYXRp
b24gPSBbY29kZXIgZGVjb2RlRG91YmxlRm9yS2V5OkAibWFnbmlmaWNhdGlvbiJdOwogI2VuZGlm
CisgICAgCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBzZWxmLnRleHRJbnRlcmFjdGlv
bkdlc3R1cmVzRW5hYmxlZCA9IFtjb2RlciBkZWNvZGVCb29sRm9yS2V5OkAidGV4dEludGVyYWN0
aW9uR2VzdHVyZXNFbmFibGVkIl07CisjZW5kaWYKIAogICAgIHJldHVybiBzZWxmOwogfQpAQCAt
NTc1LDYgKzU4NiwxMCBAQCAtICh2b2lkKWVuY29kZVdpdGhDb2RlcjooTlNDb2RlciAqKWNvZGVy
CiAgICAgW2NvZGVyIGVuY29kZUJvb2w6c2VsZi5hbGxvd3NNYWduaWZpY2F0aW9uIGZvcktleTpA
ImFsbG93c01hZ25pZmljYXRpb24iXTsKICAgICBbY29kZXIgZW5jb2RlRG91YmxlOnNlbGYubWFn
bmlmaWNhdGlvbiBmb3JLZXk6QCJtYWduaWZpY2F0aW9uIl07CiAjZW5kaWYKKworI2lmIFBMQVRG
T1JNKElPU19GQU1JTFkpCisgICAgW2NvZGVyIGVuY29kZUJvb2w6c2VsZi50ZXh0SW50ZXJhY3Rp
b25HZXN0dXJlc0VuYWJsZWQgZm9yS2V5OkAidGV4dEludGVyYWN0aW9uR2VzdHVyZXNFbmFibGVk
Il07CisjZW5kaWYKIH0KIAogLSAodm9pZClkZWFsbG9jCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQppbmRleCA4NDZi
OWEzNDk0N2UzMDRmNGI2NDQwZmNiZjE3MDFmNDFlYjE1YWY5Li4wMTUxODZlNTNmMWE2ZTk4NTY1
N2UxYzZmZjE3MWE3NjRjNTBkOTIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KQEAgLTI1MjEsNyArMjUyMSw3
IEBAIC0gKEJPT0wpY2FuU2hvd05vbkVtcHR5U2VsZWN0aW9uVmlldwogCiAtIChCT09MKWhhc1Nl
bGVjdGFibGVQb3NpdGlvbkF0UG9pbnQ6KENHUG9pbnQpcG9pbnQKIHsKLSAgICBpZiAoIXNlbGYu
d2ViVmlldy5jb25maWd1cmF0aW9uLl90ZXh0SW50ZXJhY3Rpb25HZXN0dXJlc0VuYWJsZWQpCisg
ICAgaWYgKCFzZWxmLndlYlZpZXcuY29uZmlndXJhdGlvbi5fdGV4dEludGVyYWN0aW9uR2VzdHVy
ZXNFbmFibGVkIHx8ICFzZWxmLndlYlZpZXcudGV4dEludGVyYWN0aW9uR2VzdHVyZXNFbmFibGVk
KQogICAgICAgICByZXR1cm4gTk87CiAKICAgICBpZiAoX3N1cHByZXNzU2VsZWN0aW9uQXNzaXN0
YW50UmVhc29ucykKQEAgLTI1MzksNyArMjUzOSw3IEBAIC0gKEJPT0wpaGFzU2VsZWN0YWJsZVBv
c2l0aW9uQXRQb2ludDooQ0dQb2ludClwb2ludAogCiAtIChCT09MKXBvaW50SXNOZWFyTWFya2Vk
VGV4dDooQ0dQb2ludClwb2ludAogewotICAgIGlmICghc2VsZi53ZWJWaWV3LmNvbmZpZ3VyYXRp
b24uX3RleHRJbnRlcmFjdGlvbkdlc3R1cmVzRW5hYmxlZCkKKyAgICBpZiAoIXNlbGYud2ViVmll
dy5jb25maWd1cmF0aW9uLl90ZXh0SW50ZXJhY3Rpb25HZXN0dXJlc0VuYWJsZWQgfHwgIXNlbGYu
d2ViVmlldy50ZXh0SW50ZXJhY3Rpb25HZXN0dXJlc0VuYWJsZWQpCiAgICAgICAgIHJldHVybiBO
TzsKIAogICAgIGlmIChfc3VwcHJlc3NTZWxlY3Rpb25Bc3Npc3RhbnRSZWFzb25zKQpAQCAtMjU1
Myw3ICsyNTUzLDcgQEAgLSAoQk9PTClwb2ludElzTmVhck1hcmtlZFRleHQ6KENHUG9pbnQpcG9p
bnQKIAogLSAoQk9PTCl0ZXh0SW50ZXJhY3Rpb25HZXN0dXJlOihVSVdLR2VzdHVyZVR5cGUpZ2Vz
dHVyZSBzaG91bGRCZWdpbkF0UG9pbnQ6KENHUG9pbnQpcG9pbnQKIHsKLSAgICBpZiAoIXNlbGYu
d2ViVmlldy5jb25maWd1cmF0aW9uLl90ZXh0SW50ZXJhY3Rpb25HZXN0dXJlc0VuYWJsZWQpCisg
ICAgaWYgKCFzZWxmLndlYlZpZXcuY29uZmlndXJhdGlvbi5fdGV4dEludGVyYWN0aW9uR2VzdHVy
ZXNFbmFibGVkIHx8ICFzZWxmLndlYlZpZXcudGV4dEludGVyYWN0aW9uR2VzdHVyZXNFbmFibGVk
KQogICAgICAgICByZXR1cm4gTk87CiAKICAgICBpZiAoX2RvbVBhc3RlUmVxdWVzdEhhbmRsZXIp
CkBAIC0zMjcyLDcgKzMyNzIsNyBAQCAtIChVSUNvbG9yICopc2VsZWN0aW9uSGlnaGxpZ2h0Q29s
b3IKIAogLSAoVUlDb2xvciAqKV9jYXNjYWRlSW50ZXJhY3Rpb25UaW50Q29sb3IKIHsKLSAgICBp
ZiAoIXNlbGYud2ViVmlldy5jb25maWd1cmF0aW9uLl90ZXh0SW50ZXJhY3Rpb25HZXN0dXJlc0Vu
YWJsZWQpCisgICAgaWYgKCFzZWxmLndlYlZpZXcuY29uZmlndXJhdGlvbi5fdGV4dEludGVyYWN0
aW9uR2VzdHVyZXNFbmFibGVkIHx8ICFzZWxmLndlYlZpZXcudGV4dEludGVyYWN0aW9uR2VzdHVy
ZXNFbmFibGVkKQogICAgICAgICByZXR1cm4gW1VJQ29sb3IgY2xlYXJDb2xvcl07CiAKICAgICBp
ZiAoIV9wYWdlLT5lZGl0b3JTdGF0ZSgpLmlzTWlzc2luZ1Bvc3RMYXlvdXREYXRhKSB7CmRpZmYg
LS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggODNmNzNiZjY2
NTFlNmJlNDZiZmM4NjQwNTQ4Nzk1NjcxOWI2OTMyZS4uNTgxZjM1MWJiMzY5ZDQ1ZTIzNjQ5Nzkw
MmEwMzExYzU0MTcxZjhmOCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDIwLTEwLTE1ICBLYXRlIENoZW5leSAgPGth
dGhlcmluZV9jaGVuZXlAYXBwbGUuY29tPgorCisgICAgICAgIENyZWF0ZSBBUEkgdG8gZW5hYmxl
L2Rpc2FibGUgdGV4dCBpbnRlcmFjdGlvbiBnZXN0dXJlcyBpbiBXS1dlYlZpZXcKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzc4NAorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vNjM0MDYyNDE+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgQWRkIEFQSSB0ZXN0IGNvdmVyYWdlLiBVbmFibGUgdG8gdGVzdCBp
bnN0YW5jZXMgd2hpY2ggcmVseSBvbgorICAgICAgICBfcG9zaXRpb25JbmZvcm1hdGlvbiBhcyBJ
IHdhcyB1bmFibGUgdG8gbWltaWMgdGhvc2UgY29uZGl0aW9ucyB3aGlsZQorICAgICAgICB0ZXN0
aW5nIChlLmcuIF9wb3NpdGlvbkluZm9ybWF0aW9uLmlzTmVhck1hcmtlZFRleHQpLiBUaGUgY2hh
bmdlIGlzCisgICAgICAgIHF1aXRlIHNpbXBsZSBhbmQgaXMgb25seSBhZGRlZCBpbiBwbGFjZXMg
d2hlcmUgdGhlIFNQSSBhbHJlYWR5IGV4aXN0cy4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkv
VGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFRlc3RX
ZWJLaXRBUEkvVGVzdHMvaW9zL1RleHRJbnRlcmFjdGlvbkdlc3R1cmVzLm1tOiBBZGRlZC4KKyAg
ICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorCiAyMDIwLTEwLTE0ICBLYXRlIENoZW5leSAg
PGthdGhlcmluZV9jaGVuZXlAYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSBSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzIHRlbGVtZXRyeQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA0Mzk0Yzk3
NmJmYjFmMmQ1ODE1Nzg4N2IzZDZmNmRlZTU5NTI2MTY2Li4yMjhiODNlODhkYjliMjEwYmU5Yjc2
MTUyYjZlMWM4MzllNmUyZmEwIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RX
ZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjc0LDYgKzI3
NCw3IEBACiAJCTQ5NzFCMTMxMjQ2MjNBNEYwMDk2OTk0RCAvKiBiYXNpY0lUUERhdGFiYXNlLmRi
IGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5
NzFCMTJDMjQ2MjM5RDMwMDk2OTk0RCAvKiBiYXNpY0lUUERhdGFiYXNlLmRiICovOyB9OwogCQk0
OTg5N0Q2QzI0MUZFOUU0MDBFQ0YxNTMgLyogaW4tYXBwLWJyb3dzZXItcHJpdmFjeS1sb2NhbC1m
aWxlLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNDlEN0ZCQTcyNDFGREREQTAwQUI2N0ZBIC8qIGluLWFwcC1icm93c2VyLXByaXZhY3kt
bG9jYWwtZmlsZS5odG1sICovOyB9OwogCQk0OUFFRUY2RDI0MDczNTlEMDBDODdFNEMgLyogSW5B
cHBCcm93c2VyUHJpdmFjeS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDQ5QUVFRjZCMjQwNzM1ODYwMEM4N0U0QyAvKiBJbkFwcEJyb3dzZXJQcml2YWN5
Lm1tICovOyB9OworCQk0OUY3M0VFNDI1Mzc3MDNFMDAzNUE4N0MgLyogVGV4dEludGVyYWN0aW9u
R2VzdHVyZXMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA0OUY3M0VFMzI1Mzc3MDNFMDAzNUE4N0MgLyogVGV4dEludGVyYWN0aW9uR2VzdHVyZXMubW0g
Ki87IH07CiAJCTRCRkRGRkE3MTMxNDc3NkMwMDYxRjI0QiAvKiBIaXRUZXN0UmVzdWx0Tm9kZUhh
bmRsZV9CdW5kbGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNEJGREZGQTYxMzE0Nzc2QzAwNjFGMjRCIC8qIEhpdFRlc3RSZXN1bHROb2RlSGFuZGxl
X0J1bmRsZS5jcHAgKi87IH07CiAJCTUxMDQ3NzcyMUQyOThEREQwMDk3NDdFQiAvKiBJREJEZWxl
dGVSZWNvdmVyeS5zcWxpdGUzIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDUxMDQ3NzZGMUQyOThEODUwMDk3NDdFQiAvKiBJREJEZWxldGVSZWNv
dmVyeS5zcWxpdGUzICovOyB9OwogCQk1MTA0Nzc3MzFEMjk4REREMDA5NzQ3RUIgLyogSURCRGVs
ZXRlUmVjb3Zlcnkuc3FsaXRlMy1zaG0gaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNTEwNDc3NzAxRDI5OEQ4NTAwOTc0N0VCIC8qIElEQkRlbGV0
ZVJlY292ZXJ5LnNxbGl0ZTMtc2htICovOyB9OwpAQCAtMTk5Miw2ICsxOTkzLDcgQEAKIAkJNDlB
RUVGNjgyNDA3Mjc2RjAwQzg3RTRDIC8qIEluZm8ucGxpc3QgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnBsaXN0
LnhtbDsgcGF0aCA9IEluZm8ucGxpc3Q7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ5
QUVFRjZCMjQwNzM1ODYwMEM4N0U0QyAvKiBJbkFwcEJyb3dzZXJQcml2YWN5Lm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gSW5BcHBCcm93c2VyUHJpdmFjeS5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDlEN0ZCQTcyNDFGREREQTAwQUI2N0ZBIC8q
IGluLWFwcC1icm93c2VyLXByaXZhY3ktbG9jYWwtZmlsZS5odG1sICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gImluLWFw
cC1icm93c2VyLXByaXZhY3ktbG9jYWwtZmlsZS5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJNDlGNzNFRTMyNTM3NzAzRTAwMzVBODdDIC8qIFRleHRJbnRlcmFjdGlvbkdlc3R1
cmVzLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gVGV4dEludGVyYWN0aW9uR2VzdHVyZXMubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTRBNDEwRjRCMTlBRjdCRDYwMDJFQkFCNSAv
KiBVc2VyTWVkaWEuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVXNl
ck1lZGlhLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNEE0MTBGNEQxOUFGN0JF
RjAwMkVCQUI1IC8qIGdldFVzZXJNZWRpYS5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRo
ID0gZ2V0VXNlck1lZGlhLmh0bWw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTRBNDEw
RjREMTlBRjdCRUYwMDJFQkFCNiAvKiBvbmRldmljZWNoYW5nZS5odG1sICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dC5odG1sOyBwYXRoID0gb25kZXZpY2VjaGFuZ2UuaHRtbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTM2MDIsNiArMzYwNCw3IEBACiAJCQkJRjQ1RTE1NzQyMTEyQ0U2MjAwMzA3RTgy
IC8qIFRlc3RJbnB1dERlbGVnYXRlLmggKi8sCiAJCQkJRjQ1RTE1NzUyMTEyQ0U2MjAwMzA3RTgy
IC8qIFRlc3RJbnB1dERlbGVnYXRlLm1tICovLAogCQkJCUY0NTAzM0Y0MjA2QkVDOTUwMDkzNTFD
RSAvKiBUZXh0QXV0b3NpemluZ0Jvb3N0Lm1tICovLAorCQkJCTQ5RjczRUUzMjUzNzcwM0UwMDM1
QTg3QyAvKiBUZXh0SW50ZXJhY3Rpb25HZXN0dXJlcy5tbSAqLywKIAkJCQlGNDY4NDlCRDFFRUY1
OEU0MDBCOTM3RkUgLyogVUlQYXN0ZWJvYXJkVGVzdHMubW0gKi8sCiAJCQkJRjQwMkY1NkIyM0VD
QzJGQjAwODY1NTQ5IC8qIFVJV0tJbnRlcmFjdGlvblZpZXdQcm90b2NvbC5tbSAqLywKIAkJCQlG
NDNFM0JCRTIwREFEQTFFMDBBNEU3RUQgLyogV0tTY3JvbGxWaWV3VGVzdHMubW0gKi8sCkBAIC01
NDUyLDYgKzU0NTUsNyBAQAogCQkJCUY0NTAzM0Y1MjA2QkVDOTUwMDkzNTFDRSAvKiBUZXh0QXV0
b3NpemluZ0Jvb3N0Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJOTNFNjE5M0IxRjkzMUIzQTAwQUYy
NDVFIC8qIFRleHRDb2RlYy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDRTM1MjRGOTFCMTQ0MUM0
MDAyOEE3QzUgLyogVGV4dEZpZWxkRGlkQmVnaW5BbmRFbmRFZGl0aW5nLmNwcCBpbiBTb3VyY2Vz
ICovLAorCQkJCTQ5RjczRUU0MjUzNzcwM0UwMDM1QTg3QyAvKiBUZXh0SW50ZXJhY3Rpb25HZXN0
dXJlcy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTlCMDJFMEQ2MjM1RkE0N0QwMDQwNDRCMiAvKiBU
ZXh0TWFuaXB1bGF0aW9uLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNUMxNkY4RkMyMzBDOTQzNzAw
NzRDNEE4IC8qIFRleHRTaXplLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQzIyRkEzMkIyMjhGODcw
ODAwOUQ3OTg4IC8qIFRleHRXaWR0aC5tbSBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9pb3MvVGV4dEludGVyYWN0aW9uR2VzdHVyZXMubW0gYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL2lvcy9UZXh0SW50ZXJhY3Rpb25HZXN0dXJlcy5tbQpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi40YjcxNzVlYTg1NjNiYzRkMzM1NTM2MjU0NWQ3Y2E0MzEzYmU0Nzg4Ci0tLSAv
ZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9pb3MvVGV4dEludGVyYWN0
aW9uR2VzdHVyZXMubW0KQEAgLTAsMCArMSw1MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAy
MCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNv
bmZpZy5oIgorCisjaW1wb3J0ICJQbGF0Zm9ybVV0aWxpdGllcy5oIgorI2ltcG9ydCAiVGVzdC5o
IgorI2ltcG9ydCAiVGVzdFdLV2ViVmlldy5oIgorCisjaWYgUExBVEZPUk0oSU9TKQorI2ltcG9y
dCAiVUlLaXRTUEkuaCIKKworQGludGVyZmFjZSBXS0NvbnRlbnRWaWV3ICgpCistIChVSUNvbG9y
ICopX2Nhc2NhZGVJbnRlcmFjdGlvblRpbnRDb2xvcjsKK0BlbmQKKworbmFtZXNwYWNlIFRlc3RX
ZWJLaXRBUEkgeworCitURVNUKFdLV2ViVmlldywgRGlzYWJsZVRleHRJbnRlcmFjdGlvblRpbnRD
b2xvcikKK3sKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxv
Y10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDMyMCwgNTAwKV0pOworICAgIEVYUEVD
VF9FUShbW3dlYlZpZXcgd2tDb250ZW50Vmlld10gX2Nhc2NhZGVJbnRlcmFjdGlvblRpbnRDb2xv
cl0sIFtbd2ViVmlldyB3a0NvbnRlbnRWaWV3XSBfaW5oZXJpdGVkSW50ZXJhY3Rpb25UaW50Q29s
b3JdKTsKKyAgICBbd2ViVmlldyBzZXRUZXh0SW50ZXJhY3Rpb25HZXN0dXJlc0VuYWJsZWQ6Tk9d
OworICAgIEVYUEVDVF9FUShbW3dlYlZpZXcgd2tDb250ZW50Vmlld10gX2Nhc2NhZGVJbnRlcmFj
dGlvblRpbnRDb2xvcl0sIFtVSUNvbG9yIGNsZWFyQ29sb3JdKTsKK30KKworfSAvLyBuYW1lc3Bh
Y2UgVGVzdFdlYktpdEFQSQorCisjZW5kaWYgLy8gUExBVEZPUk0oSU9TX0ZBTUlMWSkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411506</attachid>
            <date>2020-10-15 16:23:30 -0700</date>
            <delta_ts>2020-10-16 08:06:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217784-20201015162329.patch</filename>
            <type>text/plain</type>
            <size>13474</size>
            <attacher name="Kate Cheney">katherine_cheney</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4NDU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGM3NmNiN2Y0MWQ0Y2ZiMWFh
ZTY4M2Q2ZmQ5YWMzMDI2NjFmMGU3NzcuLmYyZTU2NDU1MDZlYWM2NmNkZWE3ZGJlODBiNzEwODcx
NTdiMGQ4MTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMjAtMTAtMTUgIEthdGUgQ2hl
bmV5ICA8a2F0aGVyaW5lX2NoZW5leUBhcHBsZS5jb20+CisKKyAgICAgICAgQ3JlYXRlIEFQSSB0
byBlbmFibGUvZGlzYWJsZSB0ZXh0IGludGVyYWN0aW9uIGdlc3R1cmVzIGluIFdLV2ViVmlldwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3Nzg0Cisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS82MzQwNjI0MT4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDcmVhdGUgYSBuZXcgQVBJIHRvIGRpc2FibGUgdGV4
dCBpbnRlcmFjdGlvbiBnZXN0dXJlcyBpbiBhIFdLV2ViVmlldy4KKyAgICAgICAgV2UgaGF2ZSBT
UEkgZm9yIHRoaXMsIGJ1dCBpdCBjb3VsZCBiZSB1c2VmdWwgdG8gb3RoZXIgV2ViS2l0IGNsaWVu
dHMuCisgICAgICAgIEFkZGl0aW9uYWxseSwgdGhlIEFQSSBpcyBvbiB0aGUgV0tXZWJWaWV3IG9i
amVjdCBpdHNlbGYsIGluc3RlYWQgb2YKKyAgICAgICAgdGhlIFdLV2ViVmlld0NvbmZpZ3VyYXRp
b24gb2JqZWN0LCBzbyBpdCBjYW4gYmUgY2hhbmdlZCBvbiB0aGUgZmx5LgorCisgICAgICAgIEtl
ZXAgdGhlIFNQSSBhcm91bmQgZm9yIGNvbXBhdGliaWxpdHkuCisKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL0NvY29hL1dLV2ViVmlldy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJWaWV3Lm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgX2luaXRpYWxpemVXaXRoQ29uZmln
dXJhdGlvbjpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IGluaXRXaXRoQ29kZXI6XSk6CisgICAg
ICAgICgtW1dLV2ViVmlldyBlbmNvZGVXaXRoQ29kZXI6XSk6CisgICAgICAgICogVUlQcm9jZXNz
L2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW06CisgICAgICAgICgtW1dLQ29udGVudFZp
ZXcgaGFzU2VsZWN0YWJsZVBvc2l0aW9uQXRQb2ludDpdKToKKyAgICAgICAgKC1bV0tDb250ZW50
VmlldyBwb2ludElzTmVhck1hcmtlZFRleHQ6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcg
dGV4dEludGVyYWN0aW9uR2VzdHVyZTpzaG91bGRCZWdpbkF0UG9pbnQ6XSk6CisgICAgICAgICgt
W1dLQ29udGVudFZpZXcgX2Nhc2NhZGVJbnRlcmFjdGlvblRpbnRDb2xvcl0pOgorCiAyMDIwLTEw
LTE0ICBLYXRlIENoZW5leSAgPGthdGhlcmluZV9jaGVuZXlAYXBwbGUuY29tPgogCiAgICAgICAg
IFJlbW92ZSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzIHRlbGVtZXRyeQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5oIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5oCmluZGV4IDc2MWExZGEwZjY1YjM2OTk3
YmFiNDllNjZjMmMyOGU5ZmYwYjBjOGMuLjE4MmIxOGFhOGFlOTRlOTY5ZmYyYmEzZDIyMmRkYTFm
NTkwMzdkY2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1dlYlZpZXcuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJW
aWV3LmgKQEAgLTQ2Myw2ICs0NjMsMTMgQEAgVGhlIHVuaWZvcm0gdHlwZSBpZGVudGlmaWVyIGtV
VFR5cGVXZWJBcmNoaXZlIGNhbiBiZSB1c2VkIGdldCB0aGUgcmVsYXRlZCBwYXN0ZWIKICovCiAt
IChOU1ByaW50T3BlcmF0aW9uICopcHJpbnRPcGVyYXRpb25XaXRoUHJpbnRJbmZvOihOU1ByaW50
SW5mbyAqKXByaW50SW5mbyBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpKTsKICNl
bmRpZgorCisjaWYgVEFSR0VUX09TX0lQSE9ORQorLyohIEBhYnN0cmFjdCBBIEJvb2xlYW4gdmFs
dWUgaW5kaWNhdGluZyB3aGV0aGVyIHRleHQgaW50ZXJhY3Rpb24gaXMgZGlzYWJsZWQuCisgQGRp
c2N1c3Npb24gVGhlIGRlZmF1bHQgdmFsdWUgaXMgWUVTIGZvciBpT1MsIGFuZCBOTyBmb3Igd2F0
Y2hPUy4KKyovCitAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCB0ZXh0SW50ZXJhY3Rpb25HZXN0
dXJlc0VuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShpb3MoV0tfSU9TX1RCQSkpOworI2VuZGlmCiBA
ZW5kCiAKICNpZiAhVEFSR0VUX09TX0lQSE9ORQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KaW5kZXggNjhiMDA1ZTQ2ZGY2ZDIxZTY2ZTJlMGE2YmFm
NTdjM2M2MjgyZmNlMi4uN2YwYzYzMDdkZTE3NmU1ZGU4NGZlYzJkMzkzYmY5YzljOTQyZGY5ZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCkBA
IC0zNjQsNiArMzY0LDEzIEBAIC0gKHZvaWQpX2luaXRpYWxpemVXaXRoQ29uZmlndXJhdGlvbjoo
V0tXZWJWaWV3Q29uZmlndXJhdGlvbiAqKWNvbmZpZ3VyYXRpb24KICAgICBfcGFnZS0+Y29udGVu
dFNpemVDYXRlZ29yeURpZENoYW5nZShbc2VsZiBfY29udGVudFNpemVDYXRlZ29yeV0pOwogCiAg
ICAgQ0ZOb3RpZmljYXRpb25DZW50ZXJBZGRPYnNlcnZlcihDRk5vdGlmaWNhdGlvbkNlbnRlckdl
dERhcndpbk5vdGlmeUNlbnRlcigpLCAoX19icmlkZ2UgY29uc3Qgdm9pZCAqKShzZWxmKSwgaGFy
ZHdhcmVLZXlib2FyZEF2YWlsYWJpbGl0eUNoYW5nZWRDYWxsYmFjaywgKENGU3RyaW5nUmVmKVtO
U1N0cmluZyBzdHJpbmdXaXRoVVRGOFN0cmluZzprR1NFdmVudEhhcmR3YXJlS2V5Ym9hcmRBdmFp
bGFiaWxpdHlDaGFuZ2VkTm90aWZpY2F0aW9uXSwgbnVsbHB0ciwgQ0ZOb3RpZmljYXRpb25TdXNw
ZW5zaW9uQmVoYXZpb3JDb2FsZXNjZSk7CisKKyNpZiBQTEFURk9STShXQVRDSE9TKQorICAgIFtz
ZWxmIHNldFRleHRJbnRlcmFjdGlvbkdlc3R1cmVzRW5hYmxlZDpOT107CisjZWxzZQorICAgIFtz
ZWxmIHNldFRleHRJbnRlcmFjdGlvbkdlc3R1cmVzRW5hYmxlZDpZRVNdOworI2VuZGlmCisKICNl
bmRpZiAvLyBQTEFURk9STShJT1NfRkFNSUxZKQogCiAjaWYgRU5BQkxFKE1FVEFfVklFV1BPUlQp
CkBAIC01NTcsNiArNTY0LDEwIEBAIC0gKGluc3RhbmNldHlwZSlpbml0V2l0aENvZGVyOihOU0Nv
ZGVyICopY29kZXIKICAgICBzZWxmLmFsbG93c01hZ25pZmljYXRpb24gPSBbY29kZXIgZGVjb2Rl
Qm9vbEZvcktleTpAImFsbG93c01hZ25pZmljYXRpb24iXTsKICAgICBzZWxmLm1hZ25pZmljYXRp
b24gPSBbY29kZXIgZGVjb2RlRG91YmxlRm9yS2V5OkAibWFnbmlmaWNhdGlvbiJdOwogI2VuZGlm
CisgICAgCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBzZWxmLnRleHRJbnRlcmFjdGlv
bkdlc3R1cmVzRW5hYmxlZCA9IFtjb2RlciBkZWNvZGVCb29sRm9yS2V5OkAidGV4dEludGVyYWN0
aW9uR2VzdHVyZXNFbmFibGVkIl07CisjZW5kaWYKIAogICAgIHJldHVybiBzZWxmOwogfQpAQCAt
NTc1LDYgKzU4NiwxMCBAQCAtICh2b2lkKWVuY29kZVdpdGhDb2RlcjooTlNDb2RlciAqKWNvZGVy
CiAgICAgW2NvZGVyIGVuY29kZUJvb2w6c2VsZi5hbGxvd3NNYWduaWZpY2F0aW9uIGZvcktleTpA
ImFsbG93c01hZ25pZmljYXRpb24iXTsKICAgICBbY29kZXIgZW5jb2RlRG91YmxlOnNlbGYubWFn
bmlmaWNhdGlvbiBmb3JLZXk6QCJtYWduaWZpY2F0aW9uIl07CiAjZW5kaWYKKworI2lmIFBMQVRG
T1JNKElPU19GQU1JTFkpCisgICAgW2NvZGVyIGVuY29kZUJvb2w6c2VsZi50ZXh0SW50ZXJhY3Rp
b25HZXN0dXJlc0VuYWJsZWQgZm9yS2V5OkAidGV4dEludGVyYWN0aW9uR2VzdHVyZXNFbmFibGVk
Il07CisjZW5kaWYKIH0KIAogLSAodm9pZClkZWFsbG9jCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQppbmRleCA4NDZi
OWEzNDk0N2UzMDRmNGI2NDQwZmNiZjE3MDFmNDFlYjE1YWY5Li4wMTUxODZlNTNmMWE2ZTk4NTY1
N2UxYzZmZjE3MWE3NjRjNTBkOTIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KQEAgLTI1MjEsNyArMjUyMSw3
IEBAIC0gKEJPT0wpY2FuU2hvd05vbkVtcHR5U2VsZWN0aW9uVmlldwogCiAtIChCT09MKWhhc1Nl
bGVjdGFibGVQb3NpdGlvbkF0UG9pbnQ6KENHUG9pbnQpcG9pbnQKIHsKLSAgICBpZiAoIXNlbGYu
d2ViVmlldy5jb25maWd1cmF0aW9uLl90ZXh0SW50ZXJhY3Rpb25HZXN0dXJlc0VuYWJsZWQpCisg
ICAgaWYgKCFzZWxmLndlYlZpZXcuY29uZmlndXJhdGlvbi5fdGV4dEludGVyYWN0aW9uR2VzdHVy
ZXNFbmFibGVkIHx8ICFzZWxmLndlYlZpZXcudGV4dEludGVyYWN0aW9uR2VzdHVyZXNFbmFibGVk
KQogICAgICAgICByZXR1cm4gTk87CiAKICAgICBpZiAoX3N1cHByZXNzU2VsZWN0aW9uQXNzaXN0
YW50UmVhc29ucykKQEAgLTI1MzksNyArMjUzOSw3IEBAIC0gKEJPT0wpaGFzU2VsZWN0YWJsZVBv
c2l0aW9uQXRQb2ludDooQ0dQb2ludClwb2ludAogCiAtIChCT09MKXBvaW50SXNOZWFyTWFya2Vk
VGV4dDooQ0dQb2ludClwb2ludAogewotICAgIGlmICghc2VsZi53ZWJWaWV3LmNvbmZpZ3VyYXRp
b24uX3RleHRJbnRlcmFjdGlvbkdlc3R1cmVzRW5hYmxlZCkKKyAgICBpZiAoIXNlbGYud2ViVmll
dy5jb25maWd1cmF0aW9uLl90ZXh0SW50ZXJhY3Rpb25HZXN0dXJlc0VuYWJsZWQgfHwgIXNlbGYu
d2ViVmlldy50ZXh0SW50ZXJhY3Rpb25HZXN0dXJlc0VuYWJsZWQpCiAgICAgICAgIHJldHVybiBO
TzsKIAogICAgIGlmIChfc3VwcHJlc3NTZWxlY3Rpb25Bc3Npc3RhbnRSZWFzb25zKQpAQCAtMjU1
Myw3ICsyNTUzLDcgQEAgLSAoQk9PTClwb2ludElzTmVhck1hcmtlZFRleHQ6KENHUG9pbnQpcG9p
bnQKIAogLSAoQk9PTCl0ZXh0SW50ZXJhY3Rpb25HZXN0dXJlOihVSVdLR2VzdHVyZVR5cGUpZ2Vz
dHVyZSBzaG91bGRCZWdpbkF0UG9pbnQ6KENHUG9pbnQpcG9pbnQKIHsKLSAgICBpZiAoIXNlbGYu
d2ViVmlldy5jb25maWd1cmF0aW9uLl90ZXh0SW50ZXJhY3Rpb25HZXN0dXJlc0VuYWJsZWQpCisg
ICAgaWYgKCFzZWxmLndlYlZpZXcuY29uZmlndXJhdGlvbi5fdGV4dEludGVyYWN0aW9uR2VzdHVy
ZXNFbmFibGVkIHx8ICFzZWxmLndlYlZpZXcudGV4dEludGVyYWN0aW9uR2VzdHVyZXNFbmFibGVk
KQogICAgICAgICByZXR1cm4gTk87CiAKICAgICBpZiAoX2RvbVBhc3RlUmVxdWVzdEhhbmRsZXIp
CkBAIC0zMjcyLDcgKzMyNzIsNyBAQCAtIChVSUNvbG9yICopc2VsZWN0aW9uSGlnaGxpZ2h0Q29s
b3IKIAogLSAoVUlDb2xvciAqKV9jYXNjYWRlSW50ZXJhY3Rpb25UaW50Q29sb3IKIHsKLSAgICBp
ZiAoIXNlbGYud2ViVmlldy5jb25maWd1cmF0aW9uLl90ZXh0SW50ZXJhY3Rpb25HZXN0dXJlc0Vu
YWJsZWQpCisgICAgaWYgKCFzZWxmLndlYlZpZXcuY29uZmlndXJhdGlvbi5fdGV4dEludGVyYWN0
aW9uR2VzdHVyZXNFbmFibGVkIHx8ICFzZWxmLndlYlZpZXcudGV4dEludGVyYWN0aW9uR2VzdHVy
ZXNFbmFibGVkKQogICAgICAgICByZXR1cm4gW1VJQ29sb3IgY2xlYXJDb2xvcl07CiAKICAgICBp
ZiAoIV9wYWdlLT5lZGl0b3JTdGF0ZSgpLmlzTWlzc2luZ1Bvc3RMYXlvdXREYXRhKSB7CmRpZmYg
LS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggODNmNzNiZjY2
NTFlNmJlNDZiZmM4NjQwNTQ4Nzk1NjcxOWI2OTMyZS4uNTgxZjM1MWJiMzY5ZDQ1ZTIzNjQ5Nzkw
MmEwMzExYzU0MTcxZjhmOCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDIwLTEwLTE1ICBLYXRlIENoZW5leSAgPGth
dGhlcmluZV9jaGVuZXlAYXBwbGUuY29tPgorCisgICAgICAgIENyZWF0ZSBBUEkgdG8gZW5hYmxl
L2Rpc2FibGUgdGV4dCBpbnRlcmFjdGlvbiBnZXN0dXJlcyBpbiBXS1dlYlZpZXcKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzc4NAorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vNjM0MDYyNDE+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgQWRkIEFQSSB0ZXN0IGNvdmVyYWdlLiBVbmFibGUgdG8gdGVzdCBp
bnN0YW5jZXMgd2hpY2ggcmVseSBvbgorICAgICAgICBfcG9zaXRpb25JbmZvcm1hdGlvbiBhcyBJ
IHdhcyB1bmFibGUgdG8gbWltaWMgdGhvc2UgY29uZGl0aW9ucyB3aGlsZQorICAgICAgICB0ZXN0
aW5nIChlLmcuIF9wb3NpdGlvbkluZm9ybWF0aW9uLmlzTmVhck1hcmtlZFRleHQpLiBUaGUgY2hh
bmdlIGlzCisgICAgICAgIHF1aXRlIHNpbXBsZSBhbmQgaXMgb25seSBhZGRlZCBpbiBwbGFjZXMg
d2hlcmUgdGhlIFNQSSBhbHJlYWR5IGV4aXN0cy4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkv
VGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFRlc3RX
ZWJLaXRBUEkvVGVzdHMvaW9zL1RleHRJbnRlcmFjdGlvbkdlc3R1cmVzLm1tOiBBZGRlZC4KKyAg
ICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorCiAyMDIwLTEwLTE0ICBLYXRlIENoZW5leSAg
PGthdGhlcmluZV9jaGVuZXlAYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSBSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzIHRlbGVtZXRyeQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA0Mzk0Yzk3
NmJmYjFmMmQ1ODE1Nzg4N2IzZDZmNmRlZTU5NTI2MTY2Li4yMjhiODNlODhkYjliMjEwYmU5Yjc2
MTUyYjZlMWM4MzllNmUyZmEwIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RX
ZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjc0LDYgKzI3
NCw3IEBACiAJCTQ5NzFCMTMxMjQ2MjNBNEYwMDk2OTk0RCAvKiBiYXNpY0lUUERhdGFiYXNlLmRi
IGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5
NzFCMTJDMjQ2MjM5RDMwMDk2OTk0RCAvKiBiYXNpY0lUUERhdGFiYXNlLmRiICovOyB9OwogCQk0
OTg5N0Q2QzI0MUZFOUU0MDBFQ0YxNTMgLyogaW4tYXBwLWJyb3dzZXItcHJpdmFjeS1sb2NhbC1m
aWxlLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNDlEN0ZCQTcyNDFGREREQTAwQUI2N0ZBIC8qIGluLWFwcC1icm93c2VyLXByaXZhY3kt
bG9jYWwtZmlsZS5odG1sICovOyB9OwogCQk0OUFFRUY2RDI0MDczNTlEMDBDODdFNEMgLyogSW5B
cHBCcm93c2VyUHJpdmFjeS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDQ5QUVFRjZCMjQwNzM1ODYwMEM4N0U0QyAvKiBJbkFwcEJyb3dzZXJQcml2YWN5
Lm1tICovOyB9OworCQk0OUY3M0VFNDI1Mzc3MDNFMDAzNUE4N0MgLyogVGV4dEludGVyYWN0aW9u
R2VzdHVyZXMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA0OUY3M0VFMzI1Mzc3MDNFMDAzNUE4N0MgLyogVGV4dEludGVyYWN0aW9uR2VzdHVyZXMubW0g
Ki87IH07CiAJCTRCRkRGRkE3MTMxNDc3NkMwMDYxRjI0QiAvKiBIaXRUZXN0UmVzdWx0Tm9kZUhh
bmRsZV9CdW5kbGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNEJGREZGQTYxMzE0Nzc2QzAwNjFGMjRCIC8qIEhpdFRlc3RSZXN1bHROb2RlSGFuZGxl
X0J1bmRsZS5jcHAgKi87IH07CiAJCTUxMDQ3NzcyMUQyOThEREQwMDk3NDdFQiAvKiBJREJEZWxl
dGVSZWNvdmVyeS5zcWxpdGUzIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDUxMDQ3NzZGMUQyOThEODUwMDk3NDdFQiAvKiBJREJEZWxldGVSZWNv
dmVyeS5zcWxpdGUzICovOyB9OwogCQk1MTA0Nzc3MzFEMjk4REREMDA5NzQ3RUIgLyogSURCRGVs
ZXRlUmVjb3Zlcnkuc3FsaXRlMy1zaG0gaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNTEwNDc3NzAxRDI5OEQ4NTAwOTc0N0VCIC8qIElEQkRlbGV0
ZVJlY292ZXJ5LnNxbGl0ZTMtc2htICovOyB9OwpAQCAtMTk5Miw2ICsxOTkzLDcgQEAKIAkJNDlB
RUVGNjgyNDA3Mjc2RjAwQzg3RTRDIC8qIEluZm8ucGxpc3QgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnBsaXN0
LnhtbDsgcGF0aCA9IEluZm8ucGxpc3Q7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ5
QUVFRjZCMjQwNzM1ODYwMEM4N0U0QyAvKiBJbkFwcEJyb3dzZXJQcml2YWN5Lm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gSW5BcHBCcm93c2VyUHJpdmFjeS5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDlEN0ZCQTcyNDFGREREQTAwQUI2N0ZBIC8q
IGluLWFwcC1icm93c2VyLXByaXZhY3ktbG9jYWwtZmlsZS5odG1sICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gImluLWFw
cC1icm93c2VyLXByaXZhY3ktbG9jYWwtZmlsZS5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJNDlGNzNFRTMyNTM3NzAzRTAwMzVBODdDIC8qIFRleHRJbnRlcmFjdGlvbkdlc3R1
cmVzLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gVGV4dEludGVyYWN0aW9uR2VzdHVyZXMubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTRBNDEwRjRCMTlBRjdCRDYwMDJFQkFCNSAv
KiBVc2VyTWVkaWEuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVXNl
ck1lZGlhLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNEE0MTBGNEQxOUFGN0JF
RjAwMkVCQUI1IC8qIGdldFVzZXJNZWRpYS5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRo
ID0gZ2V0VXNlck1lZGlhLmh0bWw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTRBNDEw
RjREMTlBRjdCRUYwMDJFQkFCNiAvKiBvbmRldmljZWNoYW5nZS5odG1sICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dC5odG1sOyBwYXRoID0gb25kZXZpY2VjaGFuZ2UuaHRtbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTM2MDIsNiArMzYwNCw3IEBACiAJCQkJRjQ1RTE1NzQyMTEyQ0U2MjAwMzA3RTgy
IC8qIFRlc3RJbnB1dERlbGVnYXRlLmggKi8sCiAJCQkJRjQ1RTE1NzUyMTEyQ0U2MjAwMzA3RTgy
IC8qIFRlc3RJbnB1dERlbGVnYXRlLm1tICovLAogCQkJCUY0NTAzM0Y0MjA2QkVDOTUwMDkzNTFD
RSAvKiBUZXh0QXV0b3NpemluZ0Jvb3N0Lm1tICovLAorCQkJCTQ5RjczRUUzMjUzNzcwM0UwMDM1
QTg3QyAvKiBUZXh0SW50ZXJhY3Rpb25HZXN0dXJlcy5tbSAqLywKIAkJCQlGNDY4NDlCRDFFRUY1
OEU0MDBCOTM3RkUgLyogVUlQYXN0ZWJvYXJkVGVzdHMubW0gKi8sCiAJCQkJRjQwMkY1NkIyM0VD
QzJGQjAwODY1NTQ5IC8qIFVJV0tJbnRlcmFjdGlvblZpZXdQcm90b2NvbC5tbSAqLywKIAkJCQlG
NDNFM0JCRTIwREFEQTFFMDBBNEU3RUQgLyogV0tTY3JvbGxWaWV3VGVzdHMubW0gKi8sCkBAIC01
NDUyLDYgKzU0NTUsNyBAQAogCQkJCUY0NTAzM0Y1MjA2QkVDOTUwMDkzNTFDRSAvKiBUZXh0QXV0
b3NpemluZ0Jvb3N0Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJOTNFNjE5M0IxRjkzMUIzQTAwQUYy
NDVFIC8qIFRleHRDb2RlYy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDRTM1MjRGOTFCMTQ0MUM0
MDAyOEE3QzUgLyogVGV4dEZpZWxkRGlkQmVnaW5BbmRFbmRFZGl0aW5nLmNwcCBpbiBTb3VyY2Vz
ICovLAorCQkJCTQ5RjczRUU0MjUzNzcwM0UwMDM1QTg3QyAvKiBUZXh0SW50ZXJhY3Rpb25HZXN0
dXJlcy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTlCMDJFMEQ2MjM1RkE0N0QwMDQwNDRCMiAvKiBU
ZXh0TWFuaXB1bGF0aW9uLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNUMxNkY4RkMyMzBDOTQzNzAw
NzRDNEE4IC8qIFRleHRTaXplLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQzIyRkEzMkIyMjhGODcw
ODAwOUQ3OTg4IC8qIFRleHRXaWR0aC5tbSBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9pb3MvVGV4dEludGVyYWN0aW9uR2VzdHVyZXMubW0gYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL2lvcy9UZXh0SW50ZXJhY3Rpb25HZXN0dXJlcy5tbQpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi41MGUxYTM2NTk0OTQzNjJhYjVhODk5Y2NmNWQ4OTZiMjMzOWRiOWIzCi0tLSAv
ZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9pb3MvVGV4dEludGVyYWN0
aW9uR2VzdHVyZXMubW0KQEAgLTAsMCArMSw1MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAy
MCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNv
bmZpZy5oIgorCisjaW1wb3J0ICJQbGF0Zm9ybVV0aWxpdGllcy5oIgorI2ltcG9ydCAiVGVzdC5o
IgorI2ltcG9ydCAiVGVzdFdLV2ViVmlldy5oIgorCisjaWYgUExBVEZPUk0oSU9TKSAmJiAhUExB
VEZPUk0oSU9TX1NJTVVMQVRPUikKKyNpbXBvcnQgIlVJS2l0U1BJLmgiCisKK0BpbnRlcmZhY2Ug
V0tDb250ZW50VmlldyAoKQorLSAoVUlDb2xvciAqKV9jYXNjYWRlSW50ZXJhY3Rpb25UaW50Q29s
b3I7CitAZW5kCisKK25hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKKworVEVTVChXS1dlYlZpZXcs
IERpc2FibGVUZXh0SW50ZXJhY3Rpb25UaW50Q29sb3IpCit7CisgICAgYXV0byB3ZWJWaWV3ID0g
YWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgw
LCAwLCAzMjAsIDUwMCldKTsKKyAgICBFWFBFQ1RfRVEoW1t3ZWJWaWV3IHdrQ29udGVudFZpZXdd
IF9jYXNjYWRlSW50ZXJhY3Rpb25UaW50Q29sb3JdLCBbW3dlYlZpZXcgd2tDb250ZW50Vmlld10g
X2luaGVyaXRlZEludGVyYWN0aW9uVGludENvbG9yXSk7CisgICAgW3dlYlZpZXcgc2V0VGV4dElu
dGVyYWN0aW9uR2VzdHVyZXNFbmFibGVkOk5PXTsKKyAgICBFWFBFQ1RfRVEoW1t3ZWJWaWV3IHdr
Q29udGVudFZpZXddIF9jYXNjYWRlSW50ZXJhY3Rpb25UaW50Q29sb3JdLCBbVUlDb2xvciBjbGVh
ckNvbG9yXSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkKKworI2VuZGlmIC8v
IFBMQVRGT1JNKElPU19GQU1JTFkpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411575</attachid>
            <date>2020-10-16 08:06:37 -0700</date>
            <delta_ts>2020-12-02 10:42:28 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217784-20201016080636.patch</filename>
            <type>text/plain</type>
            <size>14809</size>
            <attacher name="Kate Cheney">katherine_cheney</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4NDU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGYwMzE5NmY3MTRiOTMwZjNhMDc5Mjc5
NTIwZTYwZDg3YThmZWMyNjEuLjJkMDljZjM0YjFlYzlhMzUzYWVhMDQ0NWJiNzcxZTlhZTE0OWRh
NTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjAtMTAtMTYgIEthdGUgQ2hlbmV5ICA8a2F0aGVy
aW5lX2NoZW5leUBhcHBsZS5jb20+CisKKyAgICAgICAgQ3JlYXRlIEFQSSB0byBlbmFibGUvZGlz
YWJsZSB0ZXh0IGludGVyYWN0aW9uIGdlc3R1cmVzIGluIFdLV2ViVmlldworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3Nzg0CisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS82MzQwNjI0MT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBDcmVhdGUgbmV3IFdLUHJlZmVyZW5jZS4gU2VlIFdlYktpdCBDaGFuZ2Vs
b2cgZm9yIGRldGFpbHMuCisKKyAgICAgICAgKiBTY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZl
cmVuY2VzLnlhbWw6CisKIDIwMjAtMTAtMTQgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNv
bT4KIAogICAgICAgICBFbmFibGUgQXVkaW9Xb3JrbGV0IGJ5IGRlZmF1bHQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXgg
Yzc2Y2I3ZjQxZDRjZmIxYWFlNjgzZDZmZDlhYzMwMjY2MWYwZTc3Ny4uYWFjNmY0NjYwNmUwYjdh
MTlhM2ZlNDlmOTA1MTNlZDQ1NTY3MDc2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzOCBAQAorMjAy
MC0xMC0xNiAgS2F0ZSBDaGVuZXkgIDxrYXRoZXJpbmVfY2hlbmV5QGFwcGxlLmNvbT4KKworICAg
ICAgICBDcmVhdGUgQVBJIHRvIGVuYWJsZS9kaXNhYmxlIHRleHQgaW50ZXJhY3Rpb24gZ2VzdHVy
ZXMgaW4gV0tXZWJWaWV3CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMTc3ODQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzYzNDA2MjQxPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENyZWF0ZSBhIG5ldyBB
UEkgdG8gZGlzYWJsZSB0ZXh0IGludGVyYWN0aW9uIGdlc3R1cmVzIGluIGEgV0tXZWJWaWV3Lgor
ICAgICAgICBXZSBoYXZlIFNQSSBmb3IgdGhpcywgYnV0IGl0IGNvdWxkIGJlIHVzZWZ1bCB0byBv
dGhlciBXZWJLaXQgY2xpZW50cy4KKyAgICAgICAgQWRkIHRoZSBBUEkgdG8gV0tQcmVmZXJlbmNl
cywgaW5zdGVhZCBvZiBXS1dlYlZpZXdDb25maWd1cmF0aW9uLCBzbworICAgICAgICBpdCBjYW4g
YmUgY2hhbmdlZCBvbiB0aGUgZmx5LgorCisgICAgICAgIERlcHJlY2F0ZSB0aGUgU1BJLgorCisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzLmg6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzLm1tOgorICAgICAgICAoLVtXS1ByZWZl
cmVuY2VzIGVuY29kZVdpdGhDb2RlcjpdKToKKyAgICAgICAgKC1bV0tQcmVmZXJlbmNlcyBpbml0
V2l0aENvZGVyOl0pOgorICAgICAgICAoLVtXS1ByZWZlcmVuY2VzIHRleHRJbnRlcmFjdGlvbkdl
c3R1cmVzRW5hYmxlZF0pOgorICAgICAgICAoLVtXS1ByZWZlcmVuY2VzIHNldFRleHRJbnRlcmFj
dGlvbkdlc3R1cmVzRW5hYmxlZDpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dL
V2ViVmlld0NvbmZpZ3VyYXRpb24ubW06CisgICAgICAgICgtW1dLV2ViVmlld0NvbmZpZ3VyYXRp
b24gaW5pdF0pOgorICAgICAgICAoLVtXS1dlYlZpZXdDb25maWd1cmF0aW9uIGVuY29kZVdpdGhD
b2RlcjpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBpbml0V2l0aENvZGVy
Ol0pOgorICAgICAgICAoLVtXS1dlYlZpZXdDb25maWd1cmF0aW9uIGNvcHlXaXRoWm9uZTpdKToK
KyAgICAgICAgKC1bV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGV4dEludGVyYWN0aW9uR2VzdHVy
ZXNFbmFibGVkXSk6CisgICAgICAgICgtW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3NldFRleHRJ
bnRlcmFjdGlvbkdlc3R1cmVzRW5hYmxlZDpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb25Qcml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNz
L2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW06CisgICAgICAgICgtW1dLQ29udGVudFZp
ZXcgaGFzU2VsZWN0YWJsZVBvc2l0aW9uQXRQb2ludDpdKToKKyAgICAgICAgKC1bV0tDb250ZW50
VmlldyBwb2ludElzTmVhck1hcmtlZFRleHQ6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcg
dGV4dEludGVyYWN0aW9uR2VzdHVyZTpzaG91bGRCZWdpbkF0UG9pbnQ6XSk6CisgICAgICAgICgt
W1dLQ29udGVudFZpZXcgX2Nhc2NhZGVJbnRlcmFjdGlvblRpbnRDb2xvcl0pOgorCiAyMDIwLTEw
LTE0ICBLYXRlIENoZW5leSAgPGthdGhlcmluZV9jaGVuZXlAYXBwbGUuY29tPgogCiAgICAgICAg
IFJlbW92ZSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzIHRlbGVtZXRyeQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzLnlhbWwgYi9Tb3VyY2Uv
V1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXMueWFtbAppbmRleCBlZDQ3Y2Yx
NjgzMWVhOGQyMDcxYWQwMjc0ZmJmMjAwYTI2ZjY4MTRiLi5kNTgxOGM3NDExN2RkMzc0OWFmYzJl
M2I0MDhhNjZkZDI5NDI3N2MxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVy
ZW5jZXMvV2ViUHJlZmVyZW5jZXMueWFtbAorKysgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVy
ZW5jZXMvV2ViUHJlZmVyZW5jZXMueWFtbApAQCAtMjE0MSw2ICsyMTQxLDE2IEBAIFRleHRBdXRv
c2l6aW5nRW5hYmxlZDoKICAgICBXZWJDb3JlOgogICAgICAgZGVmYXVsdDogZGVmYXVsdFRleHRB
dXRvc2l6aW5nRW5hYmxlZCgpCiAKK1RleHRJbnRlcmFjdGlvbkdlc3R1cmVzRW5hYmxlZDoKKyAg
dHlwZTogYm9vbAorICBkZWZhdWx0VmFsdWU6CisgICAgV2ViS2l0TGVnYWN5OgorICAgICAgZGVm
YXVsdDogdHJ1ZQorICAgIFdlYktpdDoKKyAgICAgIGRlZmF1bHQ6IHRydWUKKyAgICBXZWJDb3Jl
OgorICAgICAgZGVmYXVsdDogdHJ1ZQorCiBUaHJlYWRlZFNjcm9sbGluZ0VuYWJsZWQ6CiAgIHR5
cGU6IGJvb2wKICAgd2ViY29yZUJpbmRpbmc6IG5vbmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzLmggYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlcy5oCmluZGV4IGMyZTZhMjcyOGYzMDBjNmMw
NjE2OWU4MTYzMzY5YjhkYTE3ZTlhZmEuLjc4YTU5N2ZlOTY2M2I2YjhjZTI4MDI5N2FjNzRhM2I1
ZDAzYjk2MTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1ByZWZlcmVuY2VzLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
UHJlZmVyZW5jZXMuaApAQCAtNjAsNiArNjAsMTIgQEAgV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29z
KDEwLjEwKSwgaW9zKDguMCkpCiBAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCB0YWJGb2N1c2Vz
TGlua3MgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMi4zKSk7CiAjZW5kaWYKIAorI2lmIFRB
UkdFVF9PU19JUEhPTkUKKy8qISBAYWJzdHJhY3QgQSBCb29sZWFuIHZhbHVlIGluZGljYXRpbmcg
d2hldGhlciB0ZXh0IGludGVyYWN0aW9uIGlzIGRpc2FibGVkLgorKi8KK0Bwcm9wZXJ0eSAobm9u
YXRvbWljKSBCT09MIHRleHRJbnRlcmFjdGlvbkdlc3R1cmVzRW5hYmxlZCBXS19BUElfQVZBSUxB
QkxFKGlvcyhXS19JT1NfVEJBKSk7CisjZW5kaWYKKwogQGVuZAogCiBAaW50ZXJmYWNlIFdLUHJl
ZmVyZW5jZXMgKFdLRGVwcmVjYXRlZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLUHJlZmVyZW5jZXMubW0KaW5kZXggMWVlYTIwNTRkMDZkZTc4ZWJiZjI2MzJm
Yjg5OTJjMzk4ZDNmYTBiNy4uN2RhZmNkNTZiNWFjNWVjMTdiZTczMDIyNmMzNmVkOTIwMDQ1MTAx
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVy
ZW5jZXMubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVy
ZW5jZXMubW0KQEAgLTc4LDYgKzc4LDkgQEAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNf
QkVHSU4KIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgIFtjb2RlciBlbmNv
ZGVCb29sOnNlbGYudGFiRm9jdXNlc0xpbmtzIGZvcktleTpAInRhYkZvY3VzZXNMaW5rcyJdOwog
I2VuZGlmCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBbY29kZXIgZW5jb2RlQm9vbDpz
ZWxmLnRleHRJbnRlcmFjdGlvbkdlc3R1cmVzRW5hYmxlZCBmb3JLZXk6QCJ0ZXh0SW50ZXJhY3Rp
b25HZXN0dXJlc0VuYWJsZWQiXTsKKyNlbmRpZgogfQogCiAtIChpbnN0YW5jZXR5cGUpaW5pdFdp
dGhDb2RlcjooTlNDb2RlciAqKWNvZGVyCkBAIC05OSw2ICsxMDIsOSBAQCBBTExPV19ERVBSRUNB
VEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5E
CiAgICAgc2VsZi50YWJGb2N1c2VzTGlua3MgPSBbY29kZXIgZGVjb2RlQm9vbEZvcktleTpAInRh
YkZvY3VzZXNMaW5rcyJdOwogI2VuZGlmCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBz
ZWxmLnRleHRJbnRlcmFjdGlvbkdlc3R1cmVzRW5hYmxlZCA9IFtjb2RlciBkZWNvZGVCb29sRm9y
S2V5OkAidGV4dEludGVyYWN0aW9uR2VzdHVyZXNFbmFibGVkIl07CisjZW5kaWYKIAogICAgIHJl
dHVybiBzZWxmOwogfQpAQCAtMTM4LDYgKzE0NCwxNiBAQCAtICh2b2lkKXNldEphdmFTY3JpcHRD
YW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHk6KEJPT0wpamF2YVNjcmlwdENhbk9wZW5XaW5kb3dz
QQogICAgIF9wcmVmZXJlbmNlcy0+c2V0SmF2YVNjcmlwdENhbk9wZW5XaW5kb3dzQXV0b21hdGlj
YWxseShqYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5KTsKIH0KIAorLSAoQk9P
TCl0ZXh0SW50ZXJhY3Rpb25HZXN0dXJlc0VuYWJsZWQKK3sKKyAgICByZXR1cm4gX3ByZWZlcmVu
Y2VzLT50ZXh0SW50ZXJhY3Rpb25HZXN0dXJlc0VuYWJsZWQoKTsKK30KKworLSAodm9pZClzZXRU
ZXh0SW50ZXJhY3Rpb25HZXN0dXJlc0VuYWJsZWQ6KEJPT0wpdGV4dEludGVyYWN0aW9uR2VzdHVy
ZXNFbmFibGVkCit7CisgICAgX3ByZWZlcmVuY2VzLT5zZXRUZXh0SW50ZXJhY3Rpb25HZXN0dXJl
c0VuYWJsZWQodGV4dEludGVyYWN0aW9uR2VzdHVyZXNFbmFibGVkKTsKK30KKwogI3ByYWdtYSBt
YXJrIE9TIFgtc3BlY2lmaWMgbWV0aG9kcwogCiAjaWYgUExBVEZPUk0oTUFDKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRp
b24ubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Q29uZmln
dXJhdGlvbi5tbQppbmRleCA4M2Q0OWI4ODg2YjI3NWEyM2YwMTEzZjFjNzRhYjM4NTY1NTRhZTY3
Li41Mzk4NGMxYTdlNmYxN2U2OWJmZWU5ZGZkOWVhZjFkYTZiZmJjMDBjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvbi5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Q29uZmln
dXJhdGlvbi5tbQpAQCAtMTQyLDcgKzE0Miw5IEBAIEBpbXBsZW1lbnRhdGlvbiBXS1dlYlZpZXdD
b25maWd1cmF0aW9uIHsKICAgICBCT09MIF9pbmxpbmVNZWRpYVBsYXliYWNrUmVxdWlyZXNQbGF5
c0lubGluZUF0dHJpYnV0ZTsKICAgICBCT09MIF9hbGxvd3NJbmxpbmVNZWRpYVBsYXliYWNrQWZ0
ZXJGdWxsc2NyZWVuOwogICAgIF9XS0RyYWdMaWZ0RGVsYXkgX2RyYWdMaWZ0RGVsYXk7CisgICAg
QUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBCT09MIF90ZXh0SW50ZXJh
Y3Rpb25HZXN0dXJlc0VuYWJsZWQ7CisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNf
RU5ECiAgICAgQk9PTCBfbG9uZ1ByZXNzQWN0aW9uc0VuYWJsZWQ7CiAgICAgQk9PTCBfc3lzdGVt
UHJldmlld0VuYWJsZWQ7CiAgICAgQk9PTCBfc2hvdWxkRGVjaWRlUG9saWN5QmVmb3JlTG9hZGlu
Z1F1aWNrTG9va1ByZXZpZXc7CkBAIC0yNDcsMTAgKzI0OSwxNCBAQCAtIChpbnN0YW5jZXR5cGUp
aW5pdAogICAgIF9zZWxlY3Rpb25HcmFudWxhcml0eSA9IFdLU2VsZWN0aW9uR3JhbnVsYXJpdHlE
eW5hbWljOwogICAgIF9kcmFnTGlmdERlbGF5ID0gdG9EcmFnTGlmdERlbGF5KFtbTlNVc2VyRGVm
YXVsdHMgc3RhbmRhcmRVc2VyRGVmYXVsdHNdIGludGVnZXJGb3JLZXk6QCJXZWJLaXREZWJ1Z0Ry
YWdMaWZ0RGVsYXkiXSk7CiAjaWYgUExBVEZPUk0oV0FUQ0hPUykKKyAgICBBTExPV19ERVBSRUNB
VEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIF90ZXh0SW50ZXJhY3Rpb25HZXN0dXJlc0VuYWJs
ZWQgPSBOTzsKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICBfbG9u
Z1ByZXNzQWN0aW9uc0VuYWJsZWQgPSBOTzsKICNlbHNlCisgICAgQUxMT1dfREVQUkVDQVRFRF9E
RUNMQVJBVElPTlNfQkVHSU4KICAgICBfdGV4dEludGVyYWN0aW9uR2VzdHVyZXNFbmFibGVkID0g
WUVTOworICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgIF9sb25nUHJl
c3NBY3Rpb25zRW5hYmxlZCA9IFlFUzsKICNlbmRpZgogICAgIF9zeXN0ZW1QcmV2aWV3RW5hYmxl
ZCA9IE5POwpAQCAtMzA5LDcgKzMxNSw5IEBAIC0gKHZvaWQpZW5jb2RlV2l0aENvZGVyOihOU0Nv
ZGVyICopY29kZXIKICAgICBbY29kZXIgZW5jb2RlQm9vbDpzZWxmLmFsbG93c1BpY3R1cmVJblBp
Y3R1cmVNZWRpYVBsYXliYWNrIGZvcktleTpAImFsbG93c1BpY3R1cmVJblBpY3R1cmVNZWRpYVBs
YXliYWNrIl07CiAgICAgW2NvZGVyIGVuY29kZUJvb2w6c2VsZi5pZ25vcmVzVmlld3BvcnRTY2Fs
ZUxpbWl0cyBmb3JLZXk6QCJpZ25vcmVzVmlld3BvcnRTY2FsZUxpbWl0cyJdOwogICAgIFtjb2Rl
ciBlbmNvZGVJbnRlZ2VyOnNlbGYuX2RyYWdMaWZ0RGVsYXkgZm9yS2V5OkAiZHJhZ0xpZnREZWxh
eSJdOworICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgW2NvZGVy
IGVuY29kZUJvb2w6c2VsZi5fdGV4dEludGVyYWN0aW9uR2VzdHVyZXNFbmFibGVkIGZvcktleTpA
InRleHRJbnRlcmFjdGlvbkdlc3R1cmVzRW5hYmxlZCJdOworICAgIEFMTE9XX0RFUFJFQ0FURURf
REVDTEFSQVRJT05TX0VORAogICAgIFtjb2RlciBlbmNvZGVCb29sOnNlbGYuX2xvbmdQcmVzc0Fj
dGlvbnNFbmFibGVkIGZvcktleTpAImxvbmdQcmVzc0FjdGlvbnNFbmFibGVkIl07CiAgICAgW2Nv
ZGVyIGVuY29kZUJvb2w6c2VsZi5fc3lzdGVtUHJldmlld0VuYWJsZWQgZm9yS2V5OkAic3lzdGVt
UHJldmlld0VuYWJsZWQiXTsKICAgICBbY29kZXIgZW5jb2RlQm9vbDpzZWxmLl9zaG91bGREZWNp
ZGVQb2xpY3lCZWZvcmVMb2FkaW5nUXVpY2tMb29rUHJldmlldyBmb3JLZXk6QCJzaG91bGREZWNp
ZGVQb2xpY3lCZWZvcmVMb2FkaW5nUXVpY2tMb29rUHJldmlldyJdOwpAQCAtMzQ3LDcgKzM1NSw5
IEBAIC0gKGluc3RhbmNldHlwZSlpbml0V2l0aENvZGVyOihOU0NvZGVyICopY29kZXIKICAgICBz
ZWxmLmFsbG93c1BpY3R1cmVJblBpY3R1cmVNZWRpYVBsYXliYWNrID0gW2NvZGVyIGRlY29kZUJv
b2xGb3JLZXk6QCJhbGxvd3NQaWN0dXJlSW5QaWN0dXJlTWVkaWFQbGF5YmFjayJdOwogICAgIHNl
bGYuaWdub3Jlc1ZpZXdwb3J0U2NhbGVMaW1pdHMgPSBbY29kZXIgZGVjb2RlQm9vbEZvcktleTpA
Imlnbm9yZXNWaWV3cG9ydFNjYWxlTGltaXRzIl07CiAgICAgc2VsZi5fZHJhZ0xpZnREZWxheSA9
IHRvRHJhZ0xpZnREZWxheShbY29kZXIgZGVjb2RlSW50ZWdlckZvcktleTpAImRyYWdMaWZ0RGVs
YXkiXSk7CisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBzZWxm
Ll90ZXh0SW50ZXJhY3Rpb25HZXN0dXJlc0VuYWJsZWQgPSBbY29kZXIgZGVjb2RlQm9vbEZvcktl
eTpAInRleHRJbnRlcmFjdGlvbkdlc3R1cmVzRW5hYmxlZCJdOworICAgIEFMTE9XX0RFUFJFQ0FU
RURfREVDTEFSQVRJT05TX0VORAogICAgIHNlbGYuX2xvbmdQcmVzc0FjdGlvbnNFbmFibGVkID0g
W2NvZGVyIGRlY29kZUJvb2xGb3JLZXk6QCJsb25nUHJlc3NBY3Rpb25zRW5hYmxlZCJdOwogICAg
IHNlbGYuX3N5c3RlbVByZXZpZXdFbmFibGVkID0gW2NvZGVyIGRlY29kZUJvb2xGb3JLZXk6QCJz
eXN0ZW1QcmV2aWV3RW5hYmxlZCJdOwogICAgIHNlbGYuX3Nob3VsZERlY2lkZVBvbGljeUJlZm9y
ZUxvYWRpbmdRdWlja0xvb2tQcmV2aWV3ID0gW2NvZGVyIGRlY29kZUJvb2xGb3JLZXk6QCJzaG91
bGREZWNpZGVQb2xpY3lCZWZvcmVMb2FkaW5nUXVpY2tMb29rUHJldmlldyJdOwpAQCAtNDA2LDcg
KzQxNiw5IEBAIC0gKGlkKWNvcHlXaXRoWm9uZTooTlNab25lICopem9uZQogICAgIGNvbmZpZ3Vy
YXRpb24tPl9zZWxlY3Rpb25HcmFudWxhcml0eSA9IHNlbGYtPl9zZWxlY3Rpb25HcmFudWxhcml0
eTsKICAgICBjb25maWd1cmF0aW9uLT5faWdub3Jlc1ZpZXdwb3J0U2NhbGVMaW1pdHMgPSBzZWxm
LT5faWdub3Jlc1ZpZXdwb3J0U2NhbGVMaW1pdHM7CiAgICAgY29uZmlndXJhdGlvbi0+X2RyYWdM
aWZ0RGVsYXkgPSBzZWxmLT5fZHJhZ0xpZnREZWxheTsKKyAgICBBTExPV19ERVBSRUNBVEVEX0RF
Q0xBUkFUSU9OU19CRUdJTgogICAgIGNvbmZpZ3VyYXRpb24tPl90ZXh0SW50ZXJhY3Rpb25HZXN0
dXJlc0VuYWJsZWQgPSBzZWxmLT5fdGV4dEludGVyYWN0aW9uR2VzdHVyZXNFbmFibGVkOworICAg
IEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgIGNvbmZpZ3VyYXRpb24tPl9s
b25nUHJlc3NBY3Rpb25zRW5hYmxlZCA9IHNlbGYtPl9sb25nUHJlc3NBY3Rpb25zRW5hYmxlZDsK
ICAgICBjb25maWd1cmF0aW9uLT5fc3lzdGVtUHJldmlld0VuYWJsZWQgPSBzZWxmLT5fc3lzdGVt
UHJldmlld0VuYWJsZWQ7CiAgICAgY29uZmlndXJhdGlvbi0+X3Nob3VsZERlY2lkZVBvbGljeUJl
Zm9yZUxvYWRpbmdRdWlja0xvb2tQcmV2aWV3ID0gc2VsZi0+X3Nob3VsZERlY2lkZVBvbGljeUJl
Zm9yZUxvYWRpbmdRdWlja0xvb2tQcmV2aWV3OwpAQCAtNzU3LDE2ICs3NjksNiBAQCAtICh2b2lk
KV9zZXREcmFnTGlmdERlbGF5OihfV0tEcmFnTGlmdERlbGF5KWRyYWdMaWZ0RGVsYXkKICAgICBf
ZHJhZ0xpZnREZWxheSA9IGRyYWdMaWZ0RGVsYXk7CiB9CiAKLS0gKEJPT0wpX3RleHRJbnRlcmFj
dGlvbkdlc3R1cmVzRW5hYmxlZAotewotICAgIHJldHVybiBfdGV4dEludGVyYWN0aW9uR2VzdHVy
ZXNFbmFibGVkOwotfQotCi0tICh2b2lkKV9zZXRUZXh0SW50ZXJhY3Rpb25HZXN0dXJlc0VuYWJs
ZWQ6KEJPT0wpZW5hYmxlZAotewotICAgIF90ZXh0SW50ZXJhY3Rpb25HZXN0dXJlc0VuYWJsZWQg
PSBlbmFibGVkOwotfQotCiAtIChCT09MKV9sb25nUHJlc3NBY3Rpb25zRW5hYmxlZAogewogICAg
IHJldHVybiBfbG9uZ1ByZXNzQWN0aW9uc0VuYWJsZWQ7CkBAIC0xMjgwLDcgKzEyODIsMjIgQEAg
LSAodm9pZClzZXRSZXF1aXJlc1VzZXJBY3Rpb25Gb3JNZWRpYVBsYXliYWNrOihCT09MKXJlcXVp
cmVzVXNlckFjdGlvbkZvck1lZGlhUGwKIHsKICAgICBzZWxmLm1lZGlhVHlwZXNSZXF1aXJpbmdV
c2VyQWN0aW9uRm9yUGxheWJhY2sgPSByZXF1aXJlc1VzZXJBY3Rpb25Gb3JNZWRpYVBsYXliYWNr
ID8gV0tBdWRpb3Zpc3VhbE1lZGlhVHlwZUFsbCA6IFdLQXVkaW92aXN1YWxNZWRpYVR5cGVOb25l
OwogfQorI2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkpCisKK0BlbmQKKworQGltcGxlbWVu
dGF0aW9uIFdLV2ViVmlld0NvbmZpZ3VyYXRpb24gKFdLUHJpdmF0ZURlcHJlY2F0ZWQpCisKKyNp
ZiBQTEFURk9STShJT1NfRkFNSUxZKQorLSAoQk9PTClfdGV4dEludGVyYWN0aW9uR2VzdHVyZXNF
bmFibGVkCit7CisgICAgcmV0dXJuIF90ZXh0SW50ZXJhY3Rpb25HZXN0dXJlc0VuYWJsZWQ7Cit9
CiAKKy0gKHZvaWQpX3NldFRleHRJbnRlcmFjdGlvbkdlc3R1cmVzRW5hYmxlZDooQk9PTCllbmFi
bGVkCit7CisgICAgX3RleHRJbnRlcmFjdGlvbkdlc3R1cmVzRW5hYmxlZCA9IGVuYWJsZWQ7Cit9
CiAjZW5kaWYgLy8gUExBVEZPUk0oSU9TX0ZBTUlMWSkKIAogQGVuZApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb25Qcml2
YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Q29uZmln
dXJhdGlvblByaXZhdGUuaAppbmRleCAzZDk5NTEzMmMxNzE4ZmU1MDljNmFhNjE4NWQ1MDFiMTk1
Mzg0ZWJmLi44NmI5Y2ViMmE3MWY4ZTg4ZTg1OTUwNmIwNjEzZTM3OTc3YTQ4NDAwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Q29uZmlndXJh
dGlvblByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tX
ZWJWaWV3Q29uZmlndXJhdGlvblByaXZhdGUuaApAQCAtODksNyArODksNiBAQCB0eXBlZGVmIE5T
X0VOVU0oTlNVSW50ZWdlciwgX1dLRHJhZ0xpZnREZWxheSkgewogQHByb3BlcnR5IChub25hdG9t
aWMsIHNldHRlcj1fc2V0SW5saW5lTWVkaWFQbGF5YmFja1JlcXVpcmVzUGxheXNJbmxpbmVBdHRy
aWJ1dGU6KSBCT09MIF9pbmxpbmVNZWRpYVBsYXliYWNrUmVxdWlyZXNQbGF5c0lubGluZUF0dHJp
YnV0ZSBXS19BUElfQVZBSUxBQkxFKGlvcygxMC4wKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywg
c2V0dGVyPV9zZXRBbGxvd3NJbmxpbmVNZWRpYVBsYXliYWNrQWZ0ZXJGdWxsc2NyZWVuOikgQk9P
TCBfYWxsb3dzSW5saW5lTWVkaWFQbGF5YmFja0FmdGVyRnVsbHNjcmVlbiAgV0tfQVBJX0FWQUlM
QUJMRShpb3MoMTAuMCkpOwogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0RHJhZ0xp
ZnREZWxheTopIF9XS0RyYWdMaWZ0RGVsYXkgX2RyYWdMaWZ0RGVsYXkgV0tfQVBJX0FWQUlMQUJM
RShpb3MoMTEuMCkpOwotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0VGV4dEludGVy
YWN0aW9uR2VzdHVyZXNFbmFibGVkOikgQk9PTCBfdGV4dEludGVyYWN0aW9uR2VzdHVyZXNFbmFi
bGVkIFdLX0FQSV9BVkFJTEFCTEUoaW9zKDEyLjApKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBz
ZXR0ZXI9X3NldExvbmdQcmVzc0FjdGlvbnNFbmFibGVkOikgQk9PTCBfbG9uZ1ByZXNzQWN0aW9u
c0VuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShpb3MoMTIuMCkpOwogQHByb3BlcnR5IChub25hdG9t
aWMsIHNldHRlcj1fc2V0U3lzdGVtUHJldmlld0VuYWJsZWQ6KSBCT09MIF9zeXN0ZW1QcmV2aWV3
RW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKGlvcygxMi4wKSk7CiBAcHJvcGVydHkgKG5vbmF0b21p
Yywgc2V0dGVyPV9zZXRTaG91bGREZWNpZGVQb2xpY3lCZWZvcmVMb2FkaW5nUXVpY2tMb29rUHJl
dmlldzopIEJPT0wgX3Nob3VsZERlY2lkZVBvbGljeUJlZm9yZUxvYWRpbmdRdWlja0xvb2tQcmV2
aWV3IFdLX0FQSV9BVkFJTEFCTEUoaW9zKDEzLjApKTsKQEAgLTEyMywzICsxMjIsMTMgQEAgdHlw
ZWRlZiBOU19FTlVNKE5TVUludGVnZXIsIF9XS0RyYWdMaWZ0RGVsYXkpIHsKIEBwcm9wZXJ0eSAo
bm9uYXRvbWljLCBzZXR0ZXI9X3NldFByb2Nlc3NEaXNwbGF5TmFtZTopIE5TU3RyaW5nICpfcHJv
Y2Vzc0Rpc3BsYXlOYW1lIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhX
S19JT1NfVEJBKSk7CiAKIEBlbmQKKworI2lmIFRBUkdFVF9PU19JUEhPTkUKKworQGludGVyZmFj
ZSBXS1dlYlZpZXdDb25maWd1cmF0aW9uIChXS1ByaXZhdGVEZXByZWNhdGVkKQorCitAcHJvcGVy
dHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRUZXh0SW50ZXJhY3Rpb25HZXN0dXJlc0VuYWJsZWQ6
KSBCT09MIF90ZXh0SW50ZXJhY3Rpb25HZXN0dXJlc0VuYWJsZWQgV0tfQVBJX0RFUFJFQ0FURURf
V0lUSF9SRVBMQUNFTUVOVCgiV0tQcmVmZXJlbmNlcy50ZXh0SW50ZXJhY3Rpb25HZXN0dXJlc0Vu
YWJsZWQiLCBpb3MoMTIuMCwgV0tfSU9TX1RCQSkpOworCitAZW5kCisKKyNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlv
bi5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rp
b24ubW0KaW5kZXggODQ2YjlhMzQ5NDdlMzA0ZjRiNjQ0MGZjYmYxNzAxZjQxZWIxNWFmOS4uZWU1
ZTI4MDZmMGIxNzMwNjc2MzdjYzBlMjY3NWJlOTljYmU2NzFiMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCkBA
IC0yNTIxLDggKzI1MjEsMTMgQEAgLSAoQk9PTCljYW5TaG93Tm9uRW1wdHlTZWxlY3Rpb25WaWV3
CiAKIC0gKEJPT0wpaGFzU2VsZWN0YWJsZVBvc2l0aW9uQXRQb2ludDooQ0dQb2ludClwb2ludAog
eworICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgaWYgKCFzZWxm
LndlYlZpZXcuY29uZmlndXJhdGlvbi5fdGV4dEludGVyYWN0aW9uR2VzdHVyZXNFbmFibGVkKQog
ICAgICAgICByZXR1cm4gTk87CisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5E
CisKKyAgICBpZiAoIV9wYWdlLT5wcmVmZXJlbmNlcygpLnRleHRJbnRlcmFjdGlvbkdlc3R1cmVz
RW5hYmxlZCgpKQorICAgICAgICByZXR1cm4gTk87CiAKICAgICBpZiAoX3N1cHByZXNzU2VsZWN0
aW9uQXNzaXN0YW50UmVhc29ucykKICAgICAgICAgcmV0dXJuIE5POwpAQCAtMjUzOSw5ICsyNTQ0
LDE0IEBAIC0gKEJPT0wpaGFzU2VsZWN0YWJsZVBvc2l0aW9uQXRQb2ludDooQ0dQb2ludClwb2lu
dAogCiAtIChCT09MKXBvaW50SXNOZWFyTWFya2VkVGV4dDooQ0dQb2ludClwb2ludAogeworICAg
IEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgaWYgKCFzZWxmLndlYlZp
ZXcuY29uZmlndXJhdGlvbi5fdGV4dEludGVyYWN0aW9uR2VzdHVyZXNFbmFibGVkKQogICAgICAg
ICByZXR1cm4gTk87CisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAKKyAg
ICBpZiAoIV9wYWdlLT5wcmVmZXJlbmNlcygpLnRleHRJbnRlcmFjdGlvbkdlc3R1cmVzRW5hYmxl
ZCgpKQorICAgICAgICByZXR1cm4gTk87CisgICAgCiAgICAgaWYgKF9zdXBwcmVzc1NlbGVjdGlv
bkFzc2lzdGFudFJlYXNvbnMpCiAgICAgICAgIHJldHVybiBOTzsKIApAQCAtMjU1Myw5ICsyNTYz
LDE0IEBAIC0gKEJPT0wpcG9pbnRJc05lYXJNYXJrZWRUZXh0OihDR1BvaW50KXBvaW50CiAKIC0g
KEJPT0wpdGV4dEludGVyYWN0aW9uR2VzdHVyZTooVUlXS0dlc3R1cmVUeXBlKWdlc3R1cmUgc2hv
dWxkQmVnaW5BdFBvaW50OihDR1BvaW50KXBvaW50CiB7CisgICAgQUxMT1dfREVQUkVDQVRFRF9E
RUNMQVJBVElPTlNfQkVHSU4KICAgICBpZiAoIXNlbGYud2ViVmlldy5jb25maWd1cmF0aW9uLl90
ZXh0SW50ZXJhY3Rpb25HZXN0dXJlc0VuYWJsZWQpCiAgICAgICAgIHJldHVybiBOTzsKKyAgICBB
TExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIAorICAgIGlmICghX3BhZ2UtPnByZWZl
cmVuY2VzKCkudGV4dEludGVyYWN0aW9uR2VzdHVyZXNFbmFibGVkKCkpCisgICAgICAgIHJldHVy
biBOTzsKKyAgICAKICAgICBpZiAoX2RvbVBhc3RlUmVxdWVzdEhhbmRsZXIpCiAgICAgICAgIHJl
dHVybiBOTzsKIApAQCAtMzI3Miw4ICszMjg3LDEzIEBAIC0gKFVJQ29sb3IgKilzZWxlY3Rpb25I
aWdobGlnaHRDb2xvcgogCiAtIChVSUNvbG9yICopX2Nhc2NhZGVJbnRlcmFjdGlvblRpbnRDb2xv
cgogeworICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgaWYgKCFz
ZWxmLndlYlZpZXcuY29uZmlndXJhdGlvbi5fdGV4dEludGVyYWN0aW9uR2VzdHVyZXNFbmFibGVk
KQogICAgICAgICByZXR1cm4gW1VJQ29sb3IgY2xlYXJDb2xvcl07CisgICAgQUxMT1dfREVQUkVD
QVRFRF9ERUNMQVJBVElPTlNfRU5ECisKKyAgICBpZiAoIV9wYWdlLT5wcmVmZXJlbmNlcygpLnRl
eHRJbnRlcmFjdGlvbkdlc3R1cmVzRW5hYmxlZCgpKQorICAgICAgICByZXR1cm4gW1VJQ29sb3Ig
Y2xlYXJDb2xvcl07CiAKICAgICBpZiAoIV9wYWdlLT5lZGl0b3JTdGF0ZSgpLmlzTWlzc2luZ1Bv
c3RMYXlvdXREYXRhKSB7CiAgICAgICAgIFdlYkNvcmU6OkNvbG9yIGNhcmV0Q29sb3IgPSBfcGFn
ZS0+ZWRpdG9yU3RhdGUoKS5wb3N0TGF5b3V0RGF0YSgpLmNhcmV0Q29sb3I7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>415233</attachid>
            <date>2020-12-02 10:42:31 -0800</date>
            <delta_ts>2020-12-02 11:23:40 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217784-20201202104230.patch</filename>
            <type>text/plain</type>
            <size>40646</size>
            <attacher name="Kate Cheney">katherine_cheney</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwMjQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDhmODE0MTZkNDI4ZDQ0N2ZlYzI1YzE1
NzBkNTM3Y2ZjMGI1Y2EyY2IuLjg0MjJmNzdiZjEzMjg2MjJkMjViM2ExNWUwOGU5Y2NiZDhlMWMx
NWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjAtMTItMDIgIEthdGUgQ2hlbmV5ICA8a2F0aGVy
aW5lX2NoZW5leUBhcHBsZS5jb20+CisKKyAgICAgICAgQ3JlYXRlIEFQSSB0byBlbmFibGUvZGlz
YWJsZSB0ZXh0IGludGVyYWN0aW9uIGdlc3R1cmVzIGluIFdLV2ViVmlldworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3Nzg0CisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS82MzQwNjI0MT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBDcmVhdGUgbmV3IFdLUHJlZmVyZW5jZS4gU2VlIFdlYktpdCBDaGFuZ2Vs
b2cgZm9yIGRldGFpbHMuCisKKyAgICAgICAgKiBTY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZl
cmVuY2VzLnlhbWw6CisKIDIwMjAtMTEtMjggIFBlciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBw
bGUuY29tPgogCiAgICAgICAgIFttYWNPU10gU2V0IGFwcGxpY2F0aW9uIGluZm9ybWF0aW9uIGlu
IHRoZSBOZXR3b3JraW5nIHByb2Nlc3Mgb24gYmVoYWxmIG9mIHRoZSBXZWJDb250ZW50IHByb2Nl
c3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZwppbmRleCA3MTAwMDFiYzViYzQxNWQzNjVhMDRlODBiMDRlNTFlY2Q2YjA0YWE5
Li41NTkzMjIxOWNiOTcxMGMyOTgzMmIxNjA0MTlmZDI3YTc5NTZkNjM2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMzkgQEAKKzIwMjAtMTItMDIgIEthdGUgQ2hlbmV5ICA8a2F0aGVyaW5lX2NoZW5l
eUBhcHBsZS5jb20+CisKKyAgICAgICAgQ3JlYXRlIEFQSSB0byBlbmFibGUvZGlzYWJsZSB0ZXh0
IGludGVyYWN0aW9uIGdlc3R1cmVzIGluIFdLV2ViVmlldworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3Nzg0CisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS82MzQwNjI0MT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBBZGQgQVBJIHRvIGRpc2FibGUgdGV4dCBzZWxlY3Rpb24gZm9yIG1hY09TLgorCisgICAg
ICAgICogcGFnZS9FdmVudEhhbmRsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5k
bGVyOjpzZWxlY3RDbG9zZXN0V29yZEZyb21Nb3VzZUV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6
OkV2ZW50SGFuZGxlcjo6c2VsZWN0Q2xvc2VzdENvbnRleHR1YWxXb3JkT3JMaW5rRnJvbU1vdXNl
RXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpoYW5kbGVNb3VzZVByZXNz
RXZlbnREb3VibGVDbGljayk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmhhbmRs
ZU1vdXNlUHJlc3NFdmVudFRyaXBsZUNsaWNrKToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFu
ZGxlcjo6aGFuZGxlTW91c2VQcmVzc0V2ZW50U2luZ2xlQ2xpY2spOgorICAgICAgICAoV2ViQ29y
ZTo6RXZlbnRIYW5kbGVyOjptb3VzZURvd25NYXlTdGFydFNlbGVjdCk6CisgICAgICAgIENyZWF0
ZSBhIG5ldyBmdW5jdGlvbiB0byByZXR1cm4gd2hldGhlciBhIGNsaWNrIHJlc3VsdHMgaW4gYQor
ICAgICAgICBzZWxlY3Rpb24uIEl0IHdpbGwgYWx3YXlzIHJldHVybiBmYWxzZSBpZiB0ZXh0IGlu
dGVyYWN0aW9uIGlzIGRpc2FibGVkLgorCisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6
OmhhbmRsZU1vdXNlUHJlc3NFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6
OmhhbmRsZU1vdXNlRHJhZ2dlZEV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxl
cjo6dXBkYXRlU2VsZWN0aW9uRm9yTW91c2VEcmFnKToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50
SGFuZGxlcjo6c2VsZWN0Q3Vyc29yKToKKyAgICAgICAgKiBwYWdlL0V2ZW50SGFuZGxlci5oOgor
ICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjptX3RleHRJbnRlcmFj
dGlvbkdlc3R1cmVzRW5hYmxlZCk6CisgICAgICAgIChXZWJDb3JlOjptX3Nob3VsZFJlbGF4VGhp
cmRQYXJ0eUNvb2tpZUJsb2NraW5nKTogRGVsZXRlZC4KKyAgICAgICAgKiBwYWdlL1BhZ2UuaDoK
KyAgICAgICAgU3RvcmUgdGhlIHRleHRJbnRlcmFjdGlvbkdlc3R1cmVzRW5hYmxlZCB2YWx1ZSBp
biB0aGUgUGFnZSBzbyBpdCBpcworICAgICAgICBhY2Nlc3NpYmxlIGZyb20gdGhlIEV2ZW50SGFu
ZGxlci4KKworICAgICAgICAoV2ViQ29yZTo6UGFnZTo6dGV4dEludGVyYWN0aW9uR2VzdHVyZXNF
bmFibGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OnNldFRleHRJbnRlcmFjdGlvbkdlc3R1
cmVzRW5hYmxlZCk6CisgICAgICAgICogcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5oOgorCiAyMDIw
LTExLTMwICBBZGl0eWEgS2VlcnRoaSAgPGFrZWVydGhpQGFwcGxlLmNvbT4KIAogICAgICAgICBV
c2UgcmVhbCBkYXRlcyBhbmQgdGltZXMgYXMgcGxhY2Vob2xkZXJzIGZvciBkYXRlL3RpbWUgaW5w
dXRzIHdpdGggZWRpdGFibGUgY29tcG9uZW50cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBiMTYwYTI1MTdjOTM0ODFh
ODdjNjIyODRmNjg4ZDIzMzQzYWM4YTJmLi4zNWRkNTFmYzRkY2QyNTU3ZWZhNTMyMjRhZDRkZDBj
ZDhkZWM4MTcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3IEBACisyMDIwLTEyLTAyICBLYXRlIENo
ZW5leSAgPGthdGhlcmluZV9jaGVuZXlAYXBwbGUuY29tPgorCisgICAgICAgIENyZWF0ZSBBUEkg
dG8gZW5hYmxlL2Rpc2FibGUgdGV4dCBpbnRlcmFjdGlvbiBnZXN0dXJlcyBpbiBXS1dlYlZpZXcK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzc4NAor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjM0MDYyNDE+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ3JlYXRlIGEgbmV3IEFQSSB0byBkaXNhYmxlIHRl
eHQgaW50ZXJhY3Rpb24gZ2VzdHVyZXMgaW4gYSBXS1dlYlZpZXcuCisgICAgICAgIFdlIGhhdmUg
U1BJIGZvciB0aGlzIGZvciBpT1MsIGJ1dCBpdCBjb3VsZCBiZSB1c2VmdWwgdG8gb3RoZXIgV2Vi
S2l0CisgICAgICAgIGNsaWVudHMgYW5kIG9uIG1hY09TLiBBZGQgdGhlIEFQSSB0byBXS1ByZWZl
cmVuY2VzLCBpbnN0ZWFkIG9mCisgICAgICAgIFdLV2ViVmlld0NvbmZpZ3VyYXRpb24sIHNvIGl0
IGNhbiBiZSBjaGFuZ2VkIG9uIHRoZSBmbHkuCisKKyAgICAgICAgRGVwcmVjYXRlIHRoZSBTUEku
CisKKyAgICAgICAgKiBTaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZSBjb25zdCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZSk6CisgICAg
ICAgICogU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXMuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L0NvY29hL1dLUHJlZmVyZW5jZXMubW06CisgICAgICAgICgtW1dLUHJlZmVyZW5jZXMgZW5jb2Rl
V2l0aENvZGVyOl0pOgorICAgICAgICAoLVtXS1ByZWZlcmVuY2VzIGluaXRXaXRoQ29kZXI6XSk6
CisgICAgICAgICgtW1dLUHJlZmVyZW5jZXMgdGV4dEludGVyYWN0aW9uR2VzdHVyZXNFbmFibGVk
XSk6CisgICAgICAgICgtW1dLUHJlZmVyZW5jZXMgc2V0VGV4dEludGVyYWN0aW9uR2VzdHVyZXNF
bmFibGVkOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Q29uZmln
dXJhdGlvbi5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBpbml0XSk6Cisg
ICAgICAgICgtW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gZW5jb2RlV2l0aENvZGVyOl0pOgorICAg
ICAgICAoLVtXS1dlYlZpZXdDb25maWd1cmF0aW9uIGluaXRXaXRoQ29kZXI6XSk6CisgICAgICAg
ICgtW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gY29weVdpdGhab25lOl0pOgorICAgICAgICAoLVtX
S1dlYlZpZXdDb25maWd1cmF0aW9uIF90ZXh0SW50ZXJhY3Rpb25HZXN0dXJlc0VuYWJsZWRdKToK
KyAgICAgICAgKC1bV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfc2V0VGV4dEludGVyYWN0aW9uR2Vz
dHVyZXNFbmFibGVkOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3
Q29uZmlndXJhdGlvblByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpjcmVhdGlvblBhcmFtZXRlcnMp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tOgor
ICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGhhc1NlbGVjdGFibGVQb3NpdGlvbkF0UG9pbnQ6XSk6
CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgcG9pbnRJc05lYXJNYXJrZWRUZXh0Ol0pOgorICAg
ICAgICAoLVtXS0NvbnRlbnRWaWV3IHRleHRJbnRlcmFjdGlvbkdlc3R1cmU6c2hvdWxkQmVnaW5B
dFBvaW50Ol0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF9jYXNjYWRlSW50ZXJhY3Rpb25U
aW50Q29sb3JdKToKKworICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IHNlbGVjdEZvcldlYlZpZXc6
XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgc2VsZWN0QWxsRm9yV2ViVmlldzpdKToKKyAg
ICAgICAgQWRkIGNoZWNrIGZvciB0ZXh0SW50ZXJhY3Rpb25HZXN0dXJlc0VuYWJsZWQgaW4gdGhl
c2Ugc2VsZWN0KgorICAgICAgICBmdW5jdGlvbnMgYmVjYXVzZSBkaXNhYmxpbmcgdGV4dCBpbnRl
cmFjdGlvbiBzaG91bGQgZGlzYWJsZSBzZWxlY3Rpb24KKyAgICAgICAgaW4gV0tXZWJWaWV3Lgor
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICBVcGRh
dGUgdGhlIHRleHRJbnRlcmFjdGlvbkdlc3R1cmVzRW5hYmxlZCB2YWx1ZSBpbiB0aGUgcGFnZSB3
aGVuCisgICAgICAgIHByZWZlcmVuY2VzIGFyZSB1cGRhdGVkLgorCisgICAgICAgIChXZWJLaXQ6
Om1fbGltaXRzTmF2aWdhdGlvbnNUb0FwcEJvdW5kRG9tYWlucyk6CisgICAgICAgIChXZWJLaXQ6
OldlYlBhZ2U6OnVwZGF0ZVByZWZlcmVuY2VzKToKKwogMjAyMC0xMS0yOSAgQWRhbSBNYXphbmRl
ciAgPG1hemFuZGVyQGFwcGxlLmNvbT4KIAogICAgICAgICBEZW55IGxvZ3MgZm9yIGJlbmlnbiBm
b250c2VydmljZXNkIGRhZW1vbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9TY3JpcHRzL1ByZWZl
cmVuY2VzL1dlYlByZWZlcmVuY2VzLnlhbWwgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5j
ZXMvV2ViUHJlZmVyZW5jZXMueWFtbAppbmRleCBhZjMxYTIzOGNiNGRhZDU3NDg2YzE1NzI0MjEz
MDJiNmM0ZTViOTI4Li41MjA5YzFhZGIzMTZhMmI3Y2VkZjcxY2NkY2UyODA3NmE5M2IyMWExIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXMu
eWFtbAorKysgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXMu
eWFtbApAQCAtMjI3Nyw2ICsyMjc3LDE2IEBAIFRleHRBdXRvc2l6aW5nRW5hYmxlZDoKICAgICAg
ICJQTEFURk9STShJT1NfRkFNSUxZKSI6IHRydWUKICAgICAgIGRlZmF1bHQ6IGZhbHNlCiAKK1Rl
eHRJbnRlcmFjdGlvbkdlc3R1cmVzRW5hYmxlZDoKKyAgdHlwZTogYm9vbAorICBkZWZhdWx0VmFs
dWU6CisgICAgV2ViS2l0TGVnYWN5OgorICAgICAgZGVmYXVsdDogdHJ1ZQorICAgIFdlYktpdDoK
KyAgICAgIGRlZmF1bHQ6IHRydWUKKyAgICBXZWJDb3JlOgorICAgICAgZGVmYXVsdDogdHJ1ZQor
CiBUaHJlYWRlZFNjcm9sbGluZ0VuYWJsZWQ6CiAgIHR5cGU6IGJvb2wKICAgd2ViY29yZUJpbmRp
bmc6IG5vbmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAppbmRleCA2NWViMjA5ZDRk
MzdhNjNhZGFlMjkzMDVkMmZmNDdhMGUyNWRiMTVkLi43ZjgzMGIyMGMxNWFiOTM0Yjc2ZTQ4YzI4
ZDQ3NDQ1MjEzZDRiMGYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFu
ZGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCkBAIC01
NjksNyArNTY5LDcgQEAgc3RhdGljIEFwcGVuZFRyYWlsaW5nV2hpdGVzcGFjZSBzaG91bGRBcHBl
bmRUcmFpbGluZ1doaXRlc3BhY2UoY29uc3QgTW91c2VFdmVudFcKIAogdm9pZCBFdmVudEhhbmRs
ZXI6OnNlbGVjdENsb3Nlc3RXb3JkRnJvbU1vdXNlRXZlbnQoY29uc3QgTW91c2VFdmVudFdpdGhI
aXRUZXN0UmVzdWx0cyYgcmVzdWx0KQogewotICAgIGlmIChtX21vdXNlRG93bk1heVN0YXJ0U2Vs
ZWN0KQorICAgIGlmIChtb3VzZURvd25NYXlTdGFydFNlbGVjdCgpKQogICAgICAgICBzZWxlY3RD
bG9zZXN0V29yZEZyb21IaXRUZXN0UmVzdWx0KHJlc3VsdC5oaXRUZXN0UmVzdWx0KCksIHNob3Vs
ZEFwcGVuZFRyYWlsaW5nV2hpdGVzcGFjZShyZXN1bHQsIG1fZnJhbWUpKTsKIH0KIApAQCAtNjE4
LDcgKzYxOCw3IEBAIHZvaWQgRXZlbnRIYW5kbGVyOjpzZWxlY3RDbG9zZXN0Q29udGV4dHVhbFdv
cmRPckxpbmtGcm9tTW91c2VFdmVudChjb25zdCBNb3VzZUV2CiAKICAgICBOb2RlKiB0YXJnZXRO
b2RlID0gcmVzdWx0LnRhcmdldE5vZGUoKTsKIAotICAgIGlmICh0YXJnZXROb2RlICYmIHRhcmdl
dE5vZGUtPnJlbmRlcmVyKCkgJiYgbV9tb3VzZURvd25NYXlTdGFydFNlbGVjdCkgeworICAgIGlm
ICh0YXJnZXROb2RlICYmIHRhcmdldE5vZGUtPnJlbmRlcmVyKCkgJiYgbW91c2VEb3duTWF5U3Rh
cnRTZWxlY3QoKSkgewogICAgICAgICBWaXNpYmxlU2VsZWN0aW9uIG5ld1NlbGVjdGlvbjsKICAg
ICAgICAgVmlzaWJsZVBvc2l0aW9uIHBvcyh0YXJnZXROb2RlLT5yZW5kZXJlcigpLT5wb3NpdGlv
bkZvclBvaW50KHJlc3VsdC5sb2NhbFBvaW50KCksIG51bGxwdHIpKTsKICAgICAgICAgaWYgKHBv
cy5pc05vdE51bGwoKSAmJiBwb3MuZGVlcEVxdWl2YWxlbnQoKS5kZXByZWNhdGVkTm9kZSgpLT5p
c0Rlc2NlbmRhbnRPZigqdXJsRWxlbWVudCkpCkBAIC02NTIsNyArNjUyLDcgQEAgYm9vbCBFdmVu
dEhhbmRsZXI6OmhhbmRsZU1vdXNlUHJlc3NFdmVudFRyaXBsZUNsaWNrKGNvbnN0IE1vdXNlRXZl
bnRXaXRoSGl0VGVzdFIKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIAogICAgIE5vZGUqIHRh
cmdldE5vZGUgPSBldmVudC50YXJnZXROb2RlKCk7Ci0gICAgaWYgKCEodGFyZ2V0Tm9kZSAmJiB0
YXJnZXROb2RlLT5yZW5kZXJlcigpICYmIG1fbW91c2VEb3duTWF5U3RhcnRTZWxlY3QpKQorICAg
IGlmICghKHRhcmdldE5vZGUgJiYgdGFyZ2V0Tm9kZS0+cmVuZGVyZXIoKSAmJiBtb3VzZURvd25N
YXlTdGFydFNlbGVjdCgpKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgVmlzaWJsZVNl
bGVjdGlvbiBuZXdTZWxlY3Rpb247CkBAIC02NzksNyArNjc5LDcgQEAgYm9vbCBFdmVudEhhbmRs
ZXI6OmhhbmRsZU1vdXNlUHJlc3NFdmVudFNpbmdsZUNsaWNrKGNvbnN0IE1vdXNlRXZlbnRXaXRo
SGl0VGVzdFIKIAogICAgIG1fZnJhbWUuZG9jdW1lbnQoKS0+dXBkYXRlTGF5b3V0SWdub3JlUGVu
ZGluZ1N0eWxlc2hlZXRzKCk7CiAgICAgTm9kZSogdGFyZ2V0Tm9kZSA9IGV2ZW50LnRhcmdldE5v
ZGUoKTsKLSAgICBpZiAoIXRhcmdldE5vZGUgfHwgIXRhcmdldE5vZGUtPnJlbmRlcmVyKCkgfHwg
IW1fbW91c2VEb3duTWF5U3RhcnRTZWxlY3QgfHwgbV9tb3VzZURvd25EZWxlZ2F0ZWRGb2N1cykK
KyAgICBpZiAoIXRhcmdldE5vZGUgfHwgIXRhcmdldE5vZGUtPnJlbmRlcmVyKCkgfHwgIW1vdXNl
RG93bk1heVN0YXJ0U2VsZWN0KCkgfHwgbV9tb3VzZURvd25EZWxlZ2F0ZWRGb2N1cykKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogCiAgICAgLy8gRXh0ZW5kIHRoZSBzZWxlY3Rpb24gaWYgdGhlIFNo
aWZ0IGtleSBpcyBkb3duLCB1bmxlc3MgdGhlIGNsaWNrIGlzIGluIGEgbGluay4KQEAgLTc2Niw2
ICs3NjYsMTUgQEAgYm9vbCBFdmVudEhhbmRsZXI6OmNhbk1vdXNlRG93blN0YXJ0U2VsZWN0KGNv
bnN0IE1vdXNlRXZlbnRXaXRoSGl0VGVzdFJlc3VsdHMmIGUKICAgICByZXR1cm4gbm9kZS0+Y2Fu
U3RhcnRTZWxlY3Rpb24oKSB8fCBQb3NpdGlvbjo6bm9kZUlzVXNlclNlbGVjdEFsbChub2RlKTsK
IH0KIAorYm9vbCBFdmVudEhhbmRsZXI6Om1vdXNlRG93bk1heVN0YXJ0U2VsZWN0KCkKK3sKKyAg
ICBQYWdlKiBwYWdlID0gbV9mcmFtZS5wYWdlKCk7CisgICAgaWYgKHBhZ2UgJiYgIXBhZ2UtPnRl
eHRJbnRlcmFjdGlvbkdlc3R1cmVzRW5hYmxlZCgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisK
KyAgICByZXR1cm4gbV9tb3VzZURvd25NYXlTdGFydFNlbGVjdDsKK30KKwogYm9vbCBFdmVudEhh
bmRsZXI6OmhhbmRsZU1vdXNlUHJlc3NFdmVudChjb25zdCBNb3VzZUV2ZW50V2l0aEhpdFRlc3RS
ZXN1bHRzJiBldmVudCkKIHsKICAgICBSZWY8RnJhbWU+IHByb3RlY3RlZEZyYW1lKG1fZnJhbWUp
OwpAQCAtODQzLDcgKzg1Miw3IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpoYW5kbGVNb3VzZVByZXNz
RXZlbnQoY29uc3QgTW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0cyYgZXZlCiAgICAgZWxzZQog
ICAgICAgICBzd2FsbG93RXZlbnQgPSBoYW5kbGVNb3VzZVByZXNzRXZlbnRTaW5nbGVDbGljayhl
dmVudCk7CiAgICAgCi0gICAgbV9tb3VzZURvd25NYXlTdGFydEF1dG9zY3JvbGwgPSBtX21vdXNl
RG93bk1heVN0YXJ0U2VsZWN0CisgICAgbV9tb3VzZURvd25NYXlTdGFydEF1dG9zY3JvbGwgPSBt
b3VzZURvd25NYXlTdGFydFNlbGVjdCgpCiAgICAgICAgIHx8IChtX21vdXNlUHJlc3NOb2RlICYm
IG1fbW91c2VQcmVzc05vZGUtPnJlbmRlckJveCgpICYmIG1fbW91c2VQcmVzc05vZGUtPnJlbmRl
ckJveCgpLT5jYW5CZVByb2dyYW1hdGljYWxseVNjcm9sbGVkKCkpOwogCiAgICAgcmV0dXJuIHN3
YWxsb3dFdmVudDsKQEAgLTkxMSw3ICs5MjAsNyBAQCBib29sIEV2ZW50SGFuZGxlcjo6aGFuZGxl
TW91c2VEcmFnZ2VkRXZlbnQoY29uc3QgTW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0cyYgZQog
ICAgIH0KIAogI2lmIFBMQVRGT1JNKENPQ09BKSAvLyBGSVhNRTogV2h5IGRvZXMgdGhpcyBhc3Nl
cnRpb24gZmlyZSBvbiBvdGhlciBwbGF0Zm9ybXM/Ci0gICAgQVNTRVJUKG1fbW91c2VEb3duTWF5
U3RhcnRTZWxlY3QgfHwgbV9tb3VzZURvd25NYXlTdGFydEF1dG9zY3JvbGwpOworICAgIEFTU0VS
VChtb3VzZURvd25NYXlTdGFydFNlbGVjdCgpIHx8IG1fbW91c2VEb3duTWF5U3RhcnRBdXRvc2Ny
b2xsKTsKICNlbmRpZgogCiAgICAgbV9tb3VzZURvd25NYXlTdGFydERyYWcgPSBmYWxzZTsKQEAg
LTk4NSw3ICs5OTQsNyBAQCB2b2lkIEV2ZW50SGFuZGxlcjo6dXBkYXRlU2VsZWN0aW9uRm9yTW91
c2VEcmFnKGNvbnN0IEhpdFRlc3RSZXN1bHQmIGhpdFRlc3RSZXN1bAogICAgIGlmICghc3VwcG9y
dHNTZWxlY3Rpb25VcGRhdGVzT25Nb3VzZURyYWcoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAg
aWYgKCFtX21vdXNlRG93bk1heVN0YXJ0U2VsZWN0KQorICAgIGlmICghbW91c2VEb3duTWF5U3Rh
cnRTZWxlY3QoKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgTm9kZSogdGFyZ2V0ID0gaGl0VGVz
dFJlc3VsdC50YXJnZXROb2RlKCk7CkBAIC0xNTQxLDcgKzE1NTAsNyBAQCBPcHRpb25hbDxDdXJz
b3I+IEV2ZW50SGFuZGxlcjo6c2VsZWN0Q3Vyc29yKGNvbnN0IEhpdFRlc3RSZXN1bHQmIHJlc3Vs
dCwgYm9vbCBzaAogICAgIC8vIER1cmluZyBzZWxlY3Rpb24sIHVzZSBhbiBJLWJlYW0gcmVnYXJk
bGVzcyBvZiB0aGUgY29udGVudCBiZW5lYXRoIHRoZSBjdXJzb3IuCiAgICAgLy8gSWYgYSBkcmFn
IG1heSBiZSBzdGFydGluZyBvciB3ZSdyZSBjYXB0dXJpbmcgbW91c2UgZXZlbnRzIGZvciBhIHBh
cnRpY3VsYXIgbm9kZSwgZG9uJ3QgdHJlYXQgdGhpcyBhcyBhIHNlbGVjdGlvbi4KICAgICBpZiAo
bV9tb3VzZVByZXNzZWQKLSAgICAgICAgJiYgbV9tb3VzZURvd25NYXlTdGFydFNlbGVjdAorICAg
ICAgICAmJiBtb3VzZURvd25NYXlTdGFydFNlbGVjdCgpCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9S
VCkKICAgICAgICAgJiYgIW1fbW91c2VEb3duTWF5U3RhcnREcmFnCiAjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0V2ZW50SGFuZGxlci5oCmluZGV4IDkwYzc4N2I2N2UyZjNkYzI5ZDQ1ODhlZWJmNTg3ZmE5
MzUxZGU5ZDkuLmFiNTU2ODNlNDBmZGE1ZTQ4MjdlNDMyODI2YjY2YmIzMmRjNGVmZDYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaApAQCAtNTE1LDYgKzUxNSw4IEBAIHByaXZhdGU6CiAK
ICAgICBib29sIGNhbk1vdXNlRG93blN0YXJ0U2VsZWN0KGNvbnN0IE1vdXNlRXZlbnRXaXRoSGl0
VGVzdFJlc3VsdHMmKTsKIAorICAgIGJvb2wgbW91c2VEb3duTWF5U3RhcnRTZWxlY3QoKTsKKyAg
ICAKICAgICBGcmFtZSYgbV9mcmFtZTsKIAogICAgIGJvb2wgbV9tb3VzZVByZXNzZWQgeyBmYWxz
ZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXggNGNmNmY1MGY0MWVmY2E4YjA2YjEzMWU5NWE0YjQ3
YjY2ZTRiYTYyYi4uZWZjMjFhZTcxODZjYTBkYzhiOGU2ZWM0ZTY5NmYyOWQ4YjRjODY5YiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1BhZ2UuY3BwCkBAIC0zMDMsNiArMzAzLDcgQEAgUGFnZTo6UGFnZShQYWdlQ29uZmln
dXJhdGlvbiYmIHBhZ2VDb25maWd1cmF0aW9uKQogICAgICwgbV9sb2Fkc1N1YnJlc291cmNlcyhw
YWdlQ29uZmlndXJhdGlvbi5sb2Fkc1N1YnJlc291cmNlcykKICAgICAsIG1fbG9hZHNGcm9tTmV0
d29yayhwYWdlQ29uZmlndXJhdGlvbi5sb2Fkc0Zyb21OZXR3b3JrKQogICAgICwgbV9zaG91bGRS
ZWxheFRoaXJkUGFydHlDb29raWVCbG9ja2luZyhwYWdlQ29uZmlndXJhdGlvbi5zaG91bGRSZWxh
eFRoaXJkUGFydHlDb29raWVCbG9ja2luZykKKyAgICAsIG1fdGV4dEludGVyYWN0aW9uR2VzdHVy
ZXNFbmFibGVkKHBhZ2VDb25maWd1cmF0aW9uLnRleHRJbnRlcmFjdGlvbkdlc3R1cmVzRW5hYmxl
ZCkKIHsKICAgICB1cGRhdGVUaW1lclRocm90dGxpbmdTdGF0ZSgpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCmlu
ZGV4IDkxNTIxNGE3MTIwMTljNzk5NTFlNjk1ZTM5NzcyYmU2ZDc0YTE1MGUuLmM4OGVlY2Y2Y2Zi
MDNkOTNkYTgyYzZlYzVmYzBhNzEyZmY1ZjYyNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCkBAIC04MjgsNiAr
ODI4LDkgQEAgcHVibGljOgogCiAgICAgTW9ub3RvbmljVGltZSBsYXN0UmVuZGVyaW5nVXBkYXRl
VGltZXN0YW1wKCkgY29uc3QgeyByZXR1cm4gbV9sYXN0UmVuZGVyaW5nVXBkYXRlVGltZXN0YW1w
OyB9CiAKKyAgICBib29sIHRleHRJbnRlcmFjdGlvbkdlc3R1cmVzRW5hYmxlZCgpIHsgcmV0dXJu
IG1fdGV4dEludGVyYWN0aW9uR2VzdHVyZXNFbmFibGVkOyB9CisgICAgdm9pZCBzZXRUZXh0SW50
ZXJhY3Rpb25HZXN0dXJlc0VuYWJsZWQoYm9vbCB2YWx1ZSkgeyBtX3RleHRJbnRlcmFjdGlvbkdl
c3R1cmVzRW5hYmxlZCA9IHZhbHVlOyB9CisKIHByaXZhdGU6CiAgICAgc3RydWN0IE5hdmlnYXRp
b24gewogICAgICAgICBSZWdpc3RyYWJsZURvbWFpbiBkb21haW47CkBAIC0xMTMxLDYgKzExMzQs
OCBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9oYXNCZWVuTm90aWZpZWRUb0luamVjdFVzZXJTY3Jp
cHRzIHsgZmFsc2UgfTsKIAogICAgIE1vbm90b25pY1RpbWUgbV9sYXN0UmVuZGVyaW5nVXBkYXRl
VGltZXN0YW1wOworICAgIAorICAgIGJvb2wgbV90ZXh0SW50ZXJhY3Rpb25HZXN0dXJlc0VuYWJs
ZWQgeyB0cnVlIH07CiB9OwogCiBpbmxpbmUgUGFnZUdyb3VwJiBQYWdlOjpncm91cCgpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1cmF0aW9uLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1cmF0aW9uLmgKaW5kZXggZjA1NGZjYjM2NzUxYmJlYWVm
NGJmOGIxMmM0N2YyMGY1MzBjMTM1NS4uNTU5ZTgxZDhhZTI1ODgyNDBhNTg4ZDAxYTk2YjYzYzUz
NmVkZjdhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlv
bi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uaApAQCAtMTMz
LDYgKzEzMyw3IEBAIHB1YmxpYzoKICAgICBib29sIGxvYWRzRnJvbU5ldHdvcmsgeyB0cnVlIH07
CiAgICAgYm9vbCB1c2VyU2NyaXB0c1Nob3VsZFdhaXRVbnRpbE5vdGlmaWNhdGlvbiB7IHRydWUg
fTsKICAgICBTaG91bGRSZWxheFRoaXJkUGFydHlDb29raWVCbG9ja2luZyBzaG91bGRSZWxheFRo
aXJkUGFydHlDb29raWVCbG9ja2luZyB7IFNob3VsZFJlbGF4VGhpcmRQYXJ0eUNvb2tpZUJsb2Nr
aW5nOjpObyB9OworICAgIGJvb2wgdGV4dEludGVyYWN0aW9uR2VzdHVyZXNFbmFibGVkIHsgdHJ1
ZSB9OwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNy
ZWF0aW9uUGFyYW1ldGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRp
b25QYXJhbWV0ZXJzLmNwcAppbmRleCBjZjEzMWE5MjFlMDg2MzY1ZGJmNzdmYTk4ZTQxYzFjNzRh
M2U3ZTI1Li5kZjIwMWYwZjNkYTYyYzdlMDA0NzBjNDk1MWZiMGNjZDczNWM2OTQyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcApA
QCAtMTcwLDYgKzE3MCw4IEBAIHZvaWQgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2Rl
KElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICNpZiBQTEFURk9STShHVEspCiAgICAgZW5j
b2RlciA8PCB0aGVtZU5hbWU7CiAjZW5kaWYKKyAgICAKKyAgICBlbmNvZGVyIDw8IHRleHRJbnRl
cmFjdGlvbkdlc3R1cmVzRW5hYmxlZDsKIH0KIAogT3B0aW9uYWw8V2ViUGFnZUNyZWF0aW9uUGFy
YW1ldGVycz4gV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKElQQzo6RGVjb2RlciYg
ZGVjb2RlcikKQEAgLTUzNSw2ICs1MzcsOSBAQCBPcHRpb25hbDxXZWJQYWdlQ3JlYXRpb25QYXJh
bWV0ZXJzPiBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUoSVBDOjpEZWNvZAogICAg
IGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy50aGVtZU5hbWUpKQogICAgICAgICByZXR1
cm4gV1RGOjpudWxsb3B0OwogI2VuZGlmCisgICAgCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShw
YXJhbWV0ZXJzLnRleHRJbnRlcmFjdGlvbkdlc3R1cmVzRW5hYmxlZCkpCisgICAgICAgIHJldHVy
biBXVEY6Om51bGxvcHQ7CiAKICAgICByZXR1cm4gcGFyYW1ldGVyczsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaCBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaAppbmRleCBkOTFlNDYw
MzhmMzA5YjUxMzBiZmRlNThkZmY0YTlmMTgxOTUxZGZkLi45ZTVjOGJjNjAwYmUxOTQzMDk3OTAx
NzdkZjhiNGIxNzg0ZjMxYTI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQ
YWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFn
ZUNyZWF0aW9uUGFyYW1ldGVycy5oCkBAIC0yNDIsNiArMjQyLDggQEAgc3RydWN0IFdlYlBhZ2VD
cmVhdGlvblBhcmFtZXRlcnMgewogI2lmIFBMQVRGT1JNKEdUSykKICAgICBTdHJpbmcgdGhlbWVO
YW1lOwogI2VuZGlmCisKKyAgICBib29sIHRleHRJbnRlcmFjdGlvbkdlc3R1cmVzRW5hYmxlZCB7
IHRydWUgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXMuaCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzLmgKaW5kZXggYzJlNmEyNzI4ZjMw
MGM2YzA2MTY5ZTgxNjMzNjliOGRhMTdlOWFmYS4uZjRmNGZkY2I1MmUzNGRlODAwNzU1NzcyNGYx
NGZhYmU3YmVjOTQzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLUHJlZmVyZW5jZXMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tQcmVmZXJlbmNlcy5oCkBAIC02MCw2ICs2MCwxMCBAQCBXS19DTEFTU19BVkFJTEFCTEUo
bWFjb3MoMTAuMTApLCBpb3MoOC4wKSkKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIHRhYkZv
Y3VzZXNMaW5rcyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEyLjMpKTsKICNlbmRpZgogCisv
KiEgQGFic3RyYWN0IEEgQm9vbGVhbiB2YWx1ZSBpbmRpY2F0aW5nIHdoZXRoZXIgdGV4dCBpbnRl
cmFjdGlvbiBpcyBkaXNhYmxlZC4KKyovCitAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCB0ZXh0
SW50ZXJhY3Rpb25HZXN0dXJlc0VuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNf
VEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKwogQGVuZAogCiBAaW50ZXJmYWNlIFdLUHJlZmVyZW5j
ZXMgKFdLRGVwcmVjYXRlZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1ByZWZlcmVuY2VzLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLUHJlZmVyZW5jZXMubW0KaW5kZXggNzI3NGE2ODNhNmZhYmM1NjExZDRhMmE1MTJhYzkz
Y2RkMDcxMDY5OC4uY2NmMDNmYzljMWZlNDk5OGZmMzA4ZjIxMWVhNDJhMzdlNWEzYmY0ZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXMu
bW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXMu
bW0KQEAgLTc4LDYgKzc4LDcgQEAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4K
IEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgIFtjb2RlciBlbmNvZGVCb29s
OnNlbGYudGFiRm9jdXNlc0xpbmtzIGZvcktleTpAInRhYkZvY3VzZXNMaW5rcyJdOwogI2VuZGlm
CisgICAgW2NvZGVyIGVuY29kZUJvb2w6c2VsZi50ZXh0SW50ZXJhY3Rpb25HZXN0dXJlc0VuYWJs
ZWQgZm9yS2V5OkAidGV4dEludGVyYWN0aW9uR2VzdHVyZXNFbmFibGVkIl07CiB9CiAKIC0gKGlu
c3RhbmNldHlwZSlpbml0V2l0aENvZGVyOihOU0NvZGVyICopY29kZXIKQEAgLTk5LDYgKzEwMCw3
IEBAIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiBBTExPV19ERVBSRUNBVEVE
X0RFQ0xBUkFUSU9OU19FTkQKICAgICBzZWxmLnRhYkZvY3VzZXNMaW5rcyA9IFtjb2RlciBkZWNv
ZGVCb29sRm9yS2V5OkAidGFiRm9jdXNlc0xpbmtzIl07CiAjZW5kaWYKKyAgICBzZWxmLnRleHRJ
bnRlcmFjdGlvbkdlc3R1cmVzRW5hYmxlZCA9IFtjb2RlciBkZWNvZGVCb29sRm9yS2V5OkAidGV4
dEludGVyYWN0aW9uR2VzdHVyZXNFbmFibGVkIl07CiAKICAgICByZXR1cm4gc2VsZjsKIH0KQEAg
LTEzOCw2ICsxNDAsMTYgQEAgLSAodm9pZClzZXRKYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRv
bWF0aWNhbGx5OihCT09MKWphdmFTY3JpcHRDYW5PcGVuV2luZG93c0EKICAgICBfcHJlZmVyZW5j
ZXMtPnNldEphdmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHkoamF2YVNjcmlwdENh
bk9wZW5XaW5kb3dzQXV0b21hdGljYWxseSk7CiB9CiAKKy0gKEJPT0wpdGV4dEludGVyYWN0aW9u
R2VzdHVyZXNFbmFibGVkCit7CisgICAgcmV0dXJuIF9wcmVmZXJlbmNlcy0+dGV4dEludGVyYWN0
aW9uR2VzdHVyZXNFbmFibGVkKCk7Cit9CisKKy0gKHZvaWQpc2V0VGV4dEludGVyYWN0aW9uR2Vz
dHVyZXNFbmFibGVkOihCT09MKXRleHRJbnRlcmFjdGlvbkdlc3R1cmVzRW5hYmxlZAoreworICAg
IF9wcmVmZXJlbmNlcy0+c2V0VGV4dEludGVyYWN0aW9uR2VzdHVyZXNFbmFibGVkKHRleHRJbnRl
cmFjdGlvbkdlc3R1cmVzRW5hYmxlZCk7Cit9CisKICNwcmFnbWEgbWFyayBPUyBYLXNwZWNpZmlj
IG1ldGhvZHMKIAogI2lmIFBMQVRGT1JNKE1BQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9uLm1tIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb24ubW0KaW5kZXgg
M2E5N2IwZDc2OTg5N2Y4NTBkMWRkMzUxNzViZGMwNWIyYzY1NmFjZS4uYTRhODg1MDJkNDY1ZmJk
ZjdmMWU2ZGFhYjMxMTQwMTFkZTFhMzg1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb24ubW0KKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb24ubW0KQEAgLTE0
Miw3ICsxNDIsOSBAQCBAaW1wbGVtZW50YXRpb24gV0tXZWJWaWV3Q29uZmlndXJhdGlvbiB7CiAg
ICAgQk9PTCBfaW5saW5lTWVkaWFQbGF5YmFja1JlcXVpcmVzUGxheXNJbmxpbmVBdHRyaWJ1dGU7
CiAgICAgQk9PTCBfYWxsb3dzSW5saW5lTWVkaWFQbGF5YmFja0FmdGVyRnVsbHNjcmVlbjsKICAg
ICBfV0tEcmFnTGlmdERlbGF5IF9kcmFnTGlmdERlbGF5OworICAgIEFMTE9XX0RFUFJFQ0FURURf
REVDTEFSQVRJT05TX0JFR0lOCiAgICAgQk9PTCBfdGV4dEludGVyYWN0aW9uR2VzdHVyZXNFbmFi
bGVkOworICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgIEJPT0wgX2xv
bmdQcmVzc0FjdGlvbnNFbmFibGVkOwogICAgIEJPT0wgX3N5c3RlbVByZXZpZXdFbmFibGVkOwog
ICAgIEJPT0wgX3Nob3VsZERlY2lkZVBvbGljeUJlZm9yZUxvYWRpbmdRdWlja0xvb2tQcmV2aWV3
OwpAQCAtMjQ3LDEwICsyNDksMTQgQEAgLSAoaW5zdGFuY2V0eXBlKWluaXQKICAgICBfc2VsZWN0
aW9uR3JhbnVsYXJpdHkgPSBXS1NlbGVjdGlvbkdyYW51bGFyaXR5RHluYW1pYzsKICAgICBfZHJh
Z0xpZnREZWxheSA9IHRvRHJhZ0xpZnREZWxheShbW05TVXNlckRlZmF1bHRzIHN0YW5kYXJkVXNl
ckRlZmF1bHRzXSBpbnRlZ2VyRm9yS2V5OkAiV2ViS2l0RGVidWdEcmFnTGlmdERlbGF5Il0pOwog
I2lmIFBMQVRGT1JNKFdBVENIT1MpCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNf
QkVHSU4KICAgICBfdGV4dEludGVyYWN0aW9uR2VzdHVyZXNFbmFibGVkID0gTk87CisgICAgQUxM
T1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgX2xvbmdQcmVzc0FjdGlvbnNFbmFi
bGVkID0gTk87CiAjZWxzZQorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lO
CiAgICAgX3RleHRJbnRlcmFjdGlvbkdlc3R1cmVzRW5hYmxlZCA9IFlFUzsKKyAgICBBTExPV19E
RVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICBfbG9uZ1ByZXNzQWN0aW9uc0VuYWJsZWQg
PSBZRVM7CiAjZW5kaWYKICAgICBfc3lzdGVtUHJldmlld0VuYWJsZWQgPSBOTzsKQEAgLTMwOSw3
ICszMTUsOSBAQCAtICh2b2lkKWVuY29kZVdpdGhDb2RlcjooTlNDb2RlciAqKWNvZGVyCiAgICAg
W2NvZGVyIGVuY29kZUJvb2w6c2VsZi5hbGxvd3NQaWN0dXJlSW5QaWN0dXJlTWVkaWFQbGF5YmFj
ayBmb3JLZXk6QCJhbGxvd3NQaWN0dXJlSW5QaWN0dXJlTWVkaWFQbGF5YmFjayJdOwogICAgIFtj
b2RlciBlbmNvZGVCb29sOnNlbGYuaWdub3Jlc1ZpZXdwb3J0U2NhbGVMaW1pdHMgZm9yS2V5OkAi
aWdub3Jlc1ZpZXdwb3J0U2NhbGVMaW1pdHMiXTsKICAgICBbY29kZXIgZW5jb2RlSW50ZWdlcjpz
ZWxmLl9kcmFnTGlmdERlbGF5IGZvcktleTpAImRyYWdMaWZ0RGVsYXkiXTsKKyAgICBBTExPV19E
RVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIFtjb2RlciBlbmNvZGVCb29sOnNlbGYu
X3RleHRJbnRlcmFjdGlvbkdlc3R1cmVzRW5hYmxlZCBmb3JLZXk6QCJ0ZXh0SW50ZXJhY3Rpb25H
ZXN0dXJlc0VuYWJsZWQiXTsKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQK
ICAgICBbY29kZXIgZW5jb2RlQm9vbDpzZWxmLl9sb25nUHJlc3NBY3Rpb25zRW5hYmxlZCBmb3JL
ZXk6QCJsb25nUHJlc3NBY3Rpb25zRW5hYmxlZCJdOwogICAgIFtjb2RlciBlbmNvZGVCb29sOnNl
bGYuX3N5c3RlbVByZXZpZXdFbmFibGVkIGZvcktleTpAInN5c3RlbVByZXZpZXdFbmFibGVkIl07
CiAgICAgW2NvZGVyIGVuY29kZUJvb2w6c2VsZi5fc2hvdWxkRGVjaWRlUG9saWN5QmVmb3JlTG9h
ZGluZ1F1aWNrTG9va1ByZXZpZXcgZm9yS2V5OkAic2hvdWxkRGVjaWRlUG9saWN5QmVmb3JlTG9h
ZGluZ1F1aWNrTG9va1ByZXZpZXciXTsKQEAgLTM0Nyw3ICszNTUsOSBAQCAtIChpbnN0YW5jZXR5
cGUpaW5pdFdpdGhDb2RlcjooTlNDb2RlciAqKWNvZGVyCiAgICAgc2VsZi5hbGxvd3NQaWN0dXJl
SW5QaWN0dXJlTWVkaWFQbGF5YmFjayA9IFtjb2RlciBkZWNvZGVCb29sRm9yS2V5OkAiYWxsb3dz
UGljdHVyZUluUGljdHVyZU1lZGlhUGxheWJhY2siXTsKICAgICBzZWxmLmlnbm9yZXNWaWV3cG9y
dFNjYWxlTGltaXRzID0gW2NvZGVyIGRlY29kZUJvb2xGb3JLZXk6QCJpZ25vcmVzVmlld3BvcnRT
Y2FsZUxpbWl0cyJdOwogICAgIHNlbGYuX2RyYWdMaWZ0RGVsYXkgPSB0b0RyYWdMaWZ0RGVsYXko
W2NvZGVyIGRlY29kZUludGVnZXJGb3JLZXk6QCJkcmFnTGlmdERlbGF5Il0pOworICAgIEFMTE9X
X0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgc2VsZi5fdGV4dEludGVyYWN0aW9u
R2VzdHVyZXNFbmFibGVkID0gW2NvZGVyIGRlY29kZUJvb2xGb3JLZXk6QCJ0ZXh0SW50ZXJhY3Rp
b25HZXN0dXJlc0VuYWJsZWQiXTsKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19F
TkQKICAgICBzZWxmLl9sb25nUHJlc3NBY3Rpb25zRW5hYmxlZCA9IFtjb2RlciBkZWNvZGVCb29s
Rm9yS2V5OkAibG9uZ1ByZXNzQWN0aW9uc0VuYWJsZWQiXTsKICAgICBzZWxmLl9zeXN0ZW1QcmV2
aWV3RW5hYmxlZCA9IFtjb2RlciBkZWNvZGVCb29sRm9yS2V5OkAic3lzdGVtUHJldmlld0VuYWJs
ZWQiXTsKICAgICBzZWxmLl9zaG91bGREZWNpZGVQb2xpY3lCZWZvcmVMb2FkaW5nUXVpY2tMb29r
UHJldmlldyA9IFtjb2RlciBkZWNvZGVCb29sRm9yS2V5OkAic2hvdWxkRGVjaWRlUG9saWN5QmVm
b3JlTG9hZGluZ1F1aWNrTG9va1ByZXZpZXciXTsKQEAgLTQwNiw3ICs0MTYsOSBAQCAtIChpZClj
b3B5V2l0aFpvbmU6KE5TWm9uZSAqKXpvbmUKICAgICBjb25maWd1cmF0aW9uLT5fc2VsZWN0aW9u
R3JhbnVsYXJpdHkgPSBzZWxmLT5fc2VsZWN0aW9uR3JhbnVsYXJpdHk7CiAgICAgY29uZmlndXJh
dGlvbi0+X2lnbm9yZXNWaWV3cG9ydFNjYWxlTGltaXRzID0gc2VsZi0+X2lnbm9yZXNWaWV3cG9y
dFNjYWxlTGltaXRzOwogICAgIGNvbmZpZ3VyYXRpb24tPl9kcmFnTGlmdERlbGF5ID0gc2VsZi0+
X2RyYWdMaWZ0RGVsYXk7CisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4K
ICAgICBjb25maWd1cmF0aW9uLT5fdGV4dEludGVyYWN0aW9uR2VzdHVyZXNFbmFibGVkID0gc2Vs
Zi0+X3RleHRJbnRlcmFjdGlvbkdlc3R1cmVzRW5hYmxlZDsKKyAgICBBTExPV19ERVBSRUNBVEVE
X0RFQ0xBUkFUSU9OU19FTkQKICAgICBjb25maWd1cmF0aW9uLT5fbG9uZ1ByZXNzQWN0aW9uc0Vu
YWJsZWQgPSBzZWxmLT5fbG9uZ1ByZXNzQWN0aW9uc0VuYWJsZWQ7CiAgICAgY29uZmlndXJhdGlv
bi0+X3N5c3RlbVByZXZpZXdFbmFibGVkID0gc2VsZi0+X3N5c3RlbVByZXZpZXdFbmFibGVkOwog
ICAgIGNvbmZpZ3VyYXRpb24tPl9zaG91bGREZWNpZGVQb2xpY3lCZWZvcmVMb2FkaW5nUXVpY2tM
b29rUHJldmlldyA9IHNlbGYtPl9zaG91bGREZWNpZGVQb2xpY3lCZWZvcmVMb2FkaW5nUXVpY2tM
b29rUHJldmlldzsKQEAgLTc1NywxNiArNzY5LDYgQEAgLSAodm9pZClfc2V0RHJhZ0xpZnREZWxh
eTooX1dLRHJhZ0xpZnREZWxheSlkcmFnTGlmdERlbGF5CiAgICAgX2RyYWdMaWZ0RGVsYXkgPSBk
cmFnTGlmdERlbGF5OwogfQogCi0tIChCT09MKV90ZXh0SW50ZXJhY3Rpb25HZXN0dXJlc0VuYWJs
ZWQKLXsKLSAgICByZXR1cm4gX3RleHRJbnRlcmFjdGlvbkdlc3R1cmVzRW5hYmxlZDsKLX0KLQot
LSAodm9pZClfc2V0VGV4dEludGVyYWN0aW9uR2VzdHVyZXNFbmFibGVkOihCT09MKWVuYWJsZWQK
LXsKLSAgICBfdGV4dEludGVyYWN0aW9uR2VzdHVyZXNFbmFibGVkID0gZW5hYmxlZDsKLX0KLQog
LSAoQk9PTClfbG9uZ1ByZXNzQWN0aW9uc0VuYWJsZWQKIHsKICAgICByZXR1cm4gX2xvbmdQcmVz
c0FjdGlvbnNFbmFibGVkOwpAQCAtMTI4MCw3ICsxMjgyLDIyIEBAIC0gKHZvaWQpc2V0UmVxdWly
ZXNVc2VyQWN0aW9uRm9yTWVkaWFQbGF5YmFjazooQk9PTClyZXF1aXJlc1VzZXJBY3Rpb25Gb3JN
ZWRpYVBsCiB7CiAgICAgc2VsZi5tZWRpYVR5cGVzUmVxdWlyaW5nVXNlckFjdGlvbkZvclBsYXli
YWNrID0gcmVxdWlyZXNVc2VyQWN0aW9uRm9yTWVkaWFQbGF5YmFjayA/IFdLQXVkaW92aXN1YWxN
ZWRpYVR5cGVBbGwgOiBXS0F1ZGlvdmlzdWFsTWVkaWFUeXBlTm9uZTsKIH0KKyNlbmRpZiAvLyBQ
TEFURk9STShJT1NfRkFNSUxZKQorCitAZW5kCisKK0BpbXBsZW1lbnRhdGlvbiBXS1dlYlZpZXdD
b25maWd1cmF0aW9uIChXS1ByaXZhdGVEZXByZWNhdGVkKQorCisjaWYgUExBVEZPUk0oSU9TX0ZB
TUlMWSkKKy0gKEJPT0wpX3RleHRJbnRlcmFjdGlvbkdlc3R1cmVzRW5hYmxlZAoreworICAgIHJl
dHVybiBfdGV4dEludGVyYWN0aW9uR2VzdHVyZXNFbmFibGVkOworfQogCistICh2b2lkKV9zZXRU
ZXh0SW50ZXJhY3Rpb25HZXN0dXJlc0VuYWJsZWQ6KEJPT0wpZW5hYmxlZAoreworICAgIF90ZXh0
SW50ZXJhY3Rpb25HZXN0dXJlc0VuYWJsZWQgPSBlbmFibGVkOworfQogI2VuZGlmIC8vIFBMQVRG
T1JNKElPU19GQU1JTFkpCiAKIEBlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9uUHJpdmF0ZS5oIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb25Qcml2YXRlLmgK
aW5kZXggM2Q5OTUxMzJjMTcxOGZlNTA5YzZhYTYxODVkNTAxYjE5NTM4NGViZi4uODZiOWNlYjJh
NzFmOGU4OGU4NTk1MDZiMDYxM2UzNzk3N2E0ODQwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb25Qcml2YXRlLmgKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRp
b25Qcml2YXRlLmgKQEAgLTg5LDcgKzg5LDYgQEAgdHlwZWRlZiBOU19FTlVNKE5TVUludGVnZXIs
IF9XS0RyYWdMaWZ0RGVsYXkpIHsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldElu
bGluZU1lZGlhUGxheWJhY2tSZXF1aXJlc1BsYXlzSW5saW5lQXR0cmlidXRlOikgQk9PTCBfaW5s
aW5lTWVkaWFQbGF5YmFja1JlcXVpcmVzUGxheXNJbmxpbmVBdHRyaWJ1dGUgV0tfQVBJX0FWQUlM
QUJMRShpb3MoMTAuMCkpOwogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0QWxsb3dz
SW5saW5lTWVkaWFQbGF5YmFja0FmdGVyRnVsbHNjcmVlbjopIEJPT0wgX2FsbG93c0lubGluZU1l
ZGlhUGxheWJhY2tBZnRlckZ1bGxzY3JlZW4gIFdLX0FQSV9BVkFJTEFCTEUoaW9zKDEwLjApKTsK
IEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldERyYWdMaWZ0RGVsYXk6KSBfV0tEcmFn
TGlmdERlbGF5IF9kcmFnTGlmdERlbGF5IFdLX0FQSV9BVkFJTEFCTEUoaW9zKDExLjApKTsKLUBw
cm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFRleHRJbnRlcmFjdGlvbkdlc3R1cmVzRW5h
YmxlZDopIEJPT0wgX3RleHRJbnRlcmFjdGlvbkdlc3R1cmVzRW5hYmxlZCBXS19BUElfQVZBSUxB
QkxFKGlvcygxMi4wKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRMb25nUHJl
c3NBY3Rpb25zRW5hYmxlZDopIEJPT0wgX2xvbmdQcmVzc0FjdGlvbnNFbmFibGVkIFdLX0FQSV9B
VkFJTEFCTEUoaW9zKDEyLjApKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFN5
c3RlbVByZXZpZXdFbmFibGVkOikgQk9PTCBfc3lzdGVtUHJldmlld0VuYWJsZWQgV0tfQVBJX0FW
QUlMQUJMRShpb3MoMTIuMCkpOwogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0U2hv
dWxkRGVjaWRlUG9saWN5QmVmb3JlTG9hZGluZ1F1aWNrTG9va1ByZXZpZXc6KSBCT09MIF9zaG91
bGREZWNpZGVQb2xpY3lCZWZvcmVMb2FkaW5nUXVpY2tMb29rUHJldmlldyBXS19BUElfQVZBSUxB
QkxFKGlvcygxMy4wKSk7CkBAIC0xMjMsMyArMTIyLDEzIEBAIHR5cGVkZWYgTlNfRU5VTShOU1VJ
bnRlZ2VyLCBfV0tEcmFnTGlmdERlbGF5KSB7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVy
PV9zZXRQcm9jZXNzRGlzcGxheU5hbWU6KSBOU1N0cmluZyAqX3Byb2Nlc3NEaXNwbGF5TmFtZSBX
S19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogCiBA
ZW5kCisKKyNpZiBUQVJHRVRfT1NfSVBIT05FCisKK0BpbnRlcmZhY2UgV0tXZWJWaWV3Q29uZmln
dXJhdGlvbiAoV0tQcml2YXRlRGVwcmVjYXRlZCkKKworQHByb3BlcnR5IChub25hdG9taWMsIHNl
dHRlcj1fc2V0VGV4dEludGVyYWN0aW9uR2VzdHVyZXNFbmFibGVkOikgQk9PTCBfdGV4dEludGVy
YWN0aW9uR2VzdHVyZXNFbmFibGVkIFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQo
IldLUHJlZmVyZW5jZXMudGV4dEludGVyYWN0aW9uR2VzdHVyZXNFbmFibGVkIiwgaW9zKDEyLjAs
IFdLX0lPU19UQkEpKTsKKworQGVuZAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuY3BwCmluZGV4IDZlZDFjNjljMDhmYzU1OWZlMmEzZjNiOTM5NTBlYTgyOGQ2
MGQ0YmYuLjBlMzYxM2FjYzU4Mzk5YzdmMzY3NmMxNjc4Y2VjM2ZjNjcxY2U4Y2QgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtNzk1Miw2ICs3OTUyLDggQEAg
V2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyBXZWJQYWdlUHJveHk6OmNyZWF0aW9uUGFyYW1ldGVy
cyhXZWJQcm9jZXNzUHJveHkmIHByb2MKICNpZiBFTkFCTEUoQVBQX0JPVU5EX0RPTUFJTlMpCiAg
ICAgcGFyYW1ldGVycy5uZWVkc0luQXBwQnJvd3NlclByaXZhY3lRdWlya3MgPSBwcmVmZXJlbmNl
cygpLm5lZWRzSW5BcHBCcm93c2VyUHJpdmFjeVF1aXJrcygpOwogI2VuZGlmCisgICAgCisgICAg
cGFyYW1ldGVycy50ZXh0SW50ZXJhY3Rpb25HZXN0dXJlc0VuYWJsZWQgPSBwcmVmZXJlbmNlcygp
LnRleHRJbnRlcmFjdGlvbkdlc3R1cmVzRW5hYmxlZCgpOwogCiAgICAgcmV0dXJuIHBhcmFtZXRl
cnM7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50
Vmlld0ludGVyYWN0aW9uLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVu
dFZpZXdJbnRlcmFjdGlvbi5tbQppbmRleCBiOThlODcxMTIxNzg0ODkxMzBlYWUxYzhiZTQ1NzU3
MmM1MTk1NjgzLi5jOTAwYzQxY2UxNWU3YWIxYzU5ZmU1NDNkZTUxZTE2ZmEwMDg0ZDNjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0
aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50
ZXJhY3Rpb24ubW0KQEAgLTI1MzIsOCArMjUzMiwxMyBAQCAtIChCT09MKWNhblNob3dOb25FbXB0
eVNlbGVjdGlvblZpZXcKIAogLSAoQk9PTCloYXNTZWxlY3RhYmxlUG9zaXRpb25BdFBvaW50OihD
R1BvaW50KXBvaW50CiB7CisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4K
ICAgICBpZiAoIXNlbGYud2ViVmlldy5jb25maWd1cmF0aW9uLl90ZXh0SW50ZXJhY3Rpb25HZXN0
dXJlc0VuYWJsZWQpCiAgICAgICAgIHJldHVybiBOTzsKKyAgICBBTExPV19ERVBSRUNBVEVEX0RF
Q0xBUkFUSU9OU19FTkQKKworICAgIGlmICghX3BhZ2UtPnByZWZlcmVuY2VzKCkudGV4dEludGVy
YWN0aW9uR2VzdHVyZXNFbmFibGVkKCkpCisgICAgICAgIHJldHVybiBOTzsKIAogICAgIGlmIChf
c3VwcHJlc3NTZWxlY3Rpb25Bc3Npc3RhbnRSZWFzb25zKQogICAgICAgICByZXR1cm4gTk87CkBA
IC0yNTUwLDkgKzI1NTUsMTQgQEAgLSAoQk9PTCloYXNTZWxlY3RhYmxlUG9zaXRpb25BdFBvaW50
OihDR1BvaW50KXBvaW50CiAKIC0gKEJPT0wpcG9pbnRJc05lYXJNYXJrZWRUZXh0OihDR1BvaW50
KXBvaW50CiB7CisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBp
ZiAoIXNlbGYud2ViVmlldy5jb25maWd1cmF0aW9uLl90ZXh0SW50ZXJhY3Rpb25HZXN0dXJlc0Vu
YWJsZWQpCiAgICAgICAgIHJldHVybiBOTzsKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFU
SU9OU19FTkQKIAorICAgIGlmICghX3BhZ2UtPnByZWZlcmVuY2VzKCkudGV4dEludGVyYWN0aW9u
R2VzdHVyZXNFbmFibGVkKCkpCisgICAgICAgIHJldHVybiBOTzsKKyAgICAKICAgICBpZiAoX3N1
cHByZXNzU2VsZWN0aW9uQXNzaXN0YW50UmVhc29ucykKICAgICAgICAgcmV0dXJuIE5POwogCkBA
IC0yNTY0LDkgKzI1NzQsMTQgQEAgLSAoQk9PTClwb2ludElzTmVhck1hcmtlZFRleHQ6KENHUG9p
bnQpcG9pbnQKIAogLSAoQk9PTCl0ZXh0SW50ZXJhY3Rpb25HZXN0dXJlOihVSVdLR2VzdHVyZVR5
cGUpZ2VzdHVyZSBzaG91bGRCZWdpbkF0UG9pbnQ6KENHUG9pbnQpcG9pbnQKIHsKKyAgICBBTExP
V19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIGlmICghc2VsZi53ZWJWaWV3LmNv
bmZpZ3VyYXRpb24uX3RleHRJbnRlcmFjdGlvbkdlc3R1cmVzRW5hYmxlZCkKICAgICAgICAgcmV0
dXJuIE5POworICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogCisgICAgaWYg
KCFfcGFnZS0+cHJlZmVyZW5jZXMoKS50ZXh0SW50ZXJhY3Rpb25HZXN0dXJlc0VuYWJsZWQoKSkK
KyAgICAgICAgcmV0dXJuIE5POworICAgIAogICAgIGlmIChfZG9tUGFzdGVSZXF1ZXN0SGFuZGxl
cikKICAgICAgICAgcmV0dXJuIE5POwogCkBAIC0zMjg1LDggKzMzMDAsMTMgQEAgLSAoVUlDb2xv
ciAqKXNlbGVjdGlvbkhpZ2hsaWdodENvbG9yCiAKIC0gKFVJQ29sb3IgKilfY2FzY2FkZUludGVy
YWN0aW9uVGludENvbG9yCiB7CisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVH
SU4KICAgICBpZiAoIXNlbGYud2ViVmlldy5jb25maWd1cmF0aW9uLl90ZXh0SW50ZXJhY3Rpb25H
ZXN0dXJlc0VuYWJsZWQpCiAgICAgICAgIHJldHVybiBbVUlDb2xvciBjbGVhckNvbG9yXTsKKyAg
ICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKKworICAgIGlmICghX3BhZ2UtPnBy
ZWZlcmVuY2VzKCkudGV4dEludGVyYWN0aW9uR2VzdHVyZXNFbmFibGVkKCkpCisgICAgICAgIHJl
dHVybiBbVUlDb2xvciBjbGVhckNvbG9yXTsKIAogICAgIGlmICghX3BhZ2UtPmVkaXRvclN0YXRl
KCkuaXNNaXNzaW5nUG9zdExheW91dERhdGEpIHsKICAgICAgICAgV2ViQ29yZTo6Q29sb3IgY2Fy
ZXRDb2xvciA9IF9wYWdlLT5lZGl0b3JTdGF0ZSgpLnBvc3RMYXlvdXREYXRhKCkuY2FyZXRDb2xv
cjsKQEAgLTM1NjgsNiArMzU4OCw5IEBAIC0gKHZvaWQpX3Bhc3RlQXNRdW90YXRpb25Gb3JXZWJW
aWV3OihpZClzZW5kZXIKIAogLSAodm9pZClzZWxlY3RGb3JXZWJWaWV3OihpZClzZW5kZXIKIHsK
KyAgICBpZiAoIV9wYWdlLT5wcmVmZXJlbmNlcygpLnRleHRJbnRlcmFjdGlvbkdlc3R1cmVzRW5h
YmxlZCgpKQorICAgICAgICByZXR1cm47CisKICAgICBbX3RleHRJbnRlcmFjdGlvbkFzc2lzdGFu
dCBzZWxlY3RXb3JkXTsKICAgICAvLyBXZSBjYW5ub3QgdXNlIHNlbGVjdFdvcmQgY29tbWFuZCwg
YmVjYXVzZSB3ZSB3YW50IHRvIGJlIGFibGUgdG8gc2VsZWN0IHRoZSB3b3JkIGV2ZW4gd2hlbiBp
dCBpcyB0aGUgbGFzdCBpbiB0aGUgcGFyYWdyYXBoLgogICAgIF9wYWdlLT5leHRlbmRTZWxlY3Rp
b24oV2ViQ29yZTo6VGV4dEdyYW51bGFyaXR5OjpXb3JkR3JhbnVsYXJpdHkpOwpAQCAtMzU3NSw2
ICszNTk4LDkgQEAgLSAodm9pZClzZWxlY3RGb3JXZWJWaWV3OihpZClzZW5kZXIKIAogLSAodm9p
ZClzZWxlY3RBbGxGb3JXZWJWaWV3OihpZClzZW5kZXIKIHsKKyAgICBpZiAoIV9wYWdlLT5wcmVm
ZXJlbmNlcygpLnRleHRJbnRlcmFjdGlvbkdlc3R1cmVzRW5hYmxlZCgpKQorICAgICAgICByZXR1
cm47CisKICAgICBbX3RleHRJbnRlcmFjdGlvbkFzc2lzdGFudCBzZWxlY3RBbGw6c2VuZGVyXTsK
ICAgICBfcGFnZS0+c2VsZWN0QWxsKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDNjMDU0ZTgzNDhlMDkyYzA5NDcwNzdmZGUxZWU5Mzk1
NDQ2YzFmMTEuLjI0YWNhYzA3NDY5MWJiNzNhYmJmZTRmOTk3NjNmYjc4Y2ZmZmU0YmQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC01NjcsNiAr
NTY3LDggQEAgV2ViUGFnZTo6V2ViUGFnZShQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYlBhZ2VD
cmVhdGlvblBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzKQogICAgIHBhZ2VDb25maWd1cmF0aW9uLmxv
YWRzRnJvbU5ldHdvcmsgPSBwYXJhbWV0ZXJzLmxvYWRzRnJvbU5ldHdvcms7CiAgICAgcGFnZUNv
bmZpZ3VyYXRpb24uc2hvdWxkUmVsYXhUaGlyZFBhcnR5Q29va2llQmxvY2tpbmcgPSBwYXJhbWV0
ZXJzLnNob3VsZFJlbGF4VGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nOwogCisgICAgcGFnZUNvbmZp
Z3VyYXRpb24udGV4dEludGVyYWN0aW9uR2VzdHVyZXNFbmFibGVkID0gcGFyYW1ldGVycy50ZXh0
SW50ZXJhY3Rpb25HZXN0dXJlc0VuYWJsZWQ7CisgICAgCiAgICAgaWYgKCFwYXJhbWV0ZXJzLmNy
b3NzT3JpZ2luQWNjZXNzQ29udHJvbENoZWNrRW5hYmxlZCkKICAgICAgICAgQ3Jvc3NPcmlnaW5B
Y2Nlc3NDb250cm9sQ2hlY2tEaXNhYmxlcjo6c2luZ2xldG9uKCkuc2V0Q3Jvc3NPcmlnaW5BY2Nl
c3NDb250cm9sQ2hlY2tFbmFibGVkKGZhbHNlKTsKIApAQCAtMzc5OCw2ICszODAwLDggQEAgdm9p
ZCBXZWJQYWdlOjp1cGRhdGVQcmVmZXJlbmNlcyhjb25zdCBXZWJQcmVmZXJlbmNlc1N0b3JlJiBz
dG9yZSkKICNpZiBFTkFCTEUoSVBDX1RFU1RJTkdfQVBJKQogICAgIG1faXBjVGVzdGluZ0FQSUVu
YWJsZWQgPSBzdG9yZS5nZXRCb29sVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OmlwY1Rl
c3RpbmdBUElFbmFibGVkS2V5KCkpOwogI2VuZGlmCisKKyAgICBtX3BhZ2UtPnNldFRleHRJbnRl
cmFjdGlvbkdlc3R1cmVzRW5hYmxlZChzdG9yZS5nZXRCb29sVmFsdWVGb3JLZXkoV2ViUHJlZmVy
ZW5jZXNLZXk6OnRleHRJbnRlcmFjdGlvbkdlc3R1cmVzRW5hYmxlZEtleSgpKSk7CiB9CiAKICNp
ZiBFTkFCTEUoREFUQV9ERVRFQ1RJT04pCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9U
b29scy9DaGFuZ2VMb2cKaW5kZXggNjAxZDg0ZDIxYTljMzJmODQyYTE2OWQzYzRhODk1ZTliYmU3
NDU3ZC4uYjQ1ZjA0YmUwZWEwOTcyZWYwMGNlYmY5ZDhhNmYyNmM4N2ZhZjczMSAxMDA2NDQKLS0t
IGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBA
CisyMDIwLTEyLTAyICBLYXRlIENoZW5leSAgPGthdGhlcmluZV9jaGVuZXlAYXBwbGUuY29tPgor
CisgICAgICAgIENyZWF0ZSBBUEkgdG8gZW5hYmxlL2Rpc2FibGUgdGV4dCBpbnRlcmFjdGlvbiBn
ZXN0dXJlcyBpbiBXS1dlYlZpZXcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIxNzc4NAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjM0MDYyNDE+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIEFQSSB0
ZXN0IGNvdmVyYWdlLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS90cnktdGV4dC1zZWxlY3Qtd2l0aC1kaXNhYmxlZC10ZXh0LWludGVyYWN0aW9u
Lmh0bWw6IEFkZGVkLgorCiAyMDIwLTExLTMwICBBYWthc2ggSmFpbiAgPGFha2FzaF9qYWluQGFw
cGxlLmNvbT4KIAogICAgICAgICBbYnVpbGQud2Via2l0Lm9yZ10gVXBkYXRlIFJ1blRlc3QyNjJU
ZXN0cyBzdGVwIGZvciBuZXcgYnVpbGRib3QKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMzEw
OTJjMjZlMzhlZDdjMTkwNzZlZjJlMjgzYmI3MDc4YTZkNDgzMS4uN2U2NmNmOTM4ZTZlYzQ4MmEz
ZDVlOTViMWRhOGE5YmI0ODRhNDNjYyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTI3Myw2
ICsyNzMsNyBAQAogCQk0NkZBMkZFRTIzODQ2Q0E1MDAwQ0NCMEMgLyogSFRUUEhlYWRlck1hcC5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NkZBMkZF
RDIzODQ2QzlBMDAwQ0NCMEMgLyogSFRUUEhlYWRlck1hcC5jcHAgKi87IH07CiAJCTQ2RkFDRjc0
MjNFODg0MjMwMEE5RUJDNiAvKiBiZWZvcmV1bmxvYWQtc2xvdy5odG1sIGluIENvcHkgUmVzb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2RkFDRjczMjNFODgzRUUw
MEE5RUJDNiAvKiBiZWZvcmV1bmxvYWQtc2xvdy5odG1sICovOyB9OwogCQk0OTA5RUUzQTJEMDk0
ODBDODg5ODJENTYgLyogTWFya2FibGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRUM3OUYxNjhCRTQ1NEU1NzlFNDE3QjA1IC8qIE1hcmthYmxlLmNw
cCAqLzsgfTsKKwkJNDk1MkJFNUUyNTc4MTE1NjAwQjBBRUYxIC8qIFdLV2ViVmlld0Rpc2FibGVT
ZWxlY3Rpb24ubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA0OTUyQkU1RDI1NzgxMTU1MDBCMEFFRjEgLyogV0tXZWJWaWV3RGlzYWJsZVNlbGVjdGlvbi5t
bSAqLzsgfTsKIAkJNDk3MUIxMTgyNDUxRjI5QTAwOTY5OTREIC8qIGluY29ycmVjdENyZWF0ZVRh
YmxlU2NoZW1hLmRiIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDQ5NzFCMTE3MjQ1MUYyNzgwMDk2OTk0RCAvKiBpbmNvcnJlY3RDcmVhdGVUYWJs
ZVNjaGVtYS5kYiAqLzsgfTsKIAkJNDk3MUIxMjAyNDUzQTg4QzAwOTY5OTREIC8qIG1pc3NpbmdU
b3BGcmFtZVVuaXF1ZVJlZGlyZWN0U2FtZVNpdGVTdHJpY3RUYWJsZVNjaGVtYS5kYiBpbiBDb3B5
IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OTcxQjExRjI0
NTNBODdGMDA5Njk5NEQgLyogbWlzc2luZ1RvcEZyYW1lVW5pcXVlUmVkaXJlY3RTYW1lU2l0ZVN0
cmljdFRhYmxlU2NoZW1hLmRiICovOyB9OwogCQk0OTcxQjEyRjI0NjIzQTNCMDA5Njk5NEQgLyog
YmFzaWNJVFBEYXRhYmFzZS5kYi1zaG0gaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDQ5NzFCMTJEMjQ2MjNBM0IwMDk2OTk0RCAvKiBiYXNpY0lUUERhdGFi
YXNlLmRiLXNobSAqLzsgfTsKQEAgLTIwMDIsNiArMjAwMyw4IEBACiAJCTQ2RjAzQzFCMjU1QjJE
MzYwMEFBNTFDNSAvKiBhdWRpby1jb250ZXh0LXBsYXlpbmcuaHRtbCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQu
aHRtbDsgcGF0aCA9ICJhdWRpby1jb250ZXh0LXBsYXlpbmcuaHRtbCI7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTQ2RkEyRkVEMjM4NDZDOUEwMDBDQ0IwQyAvKiBIVFRQSGVhZGVyTWFw
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEhUVFBIZWFkZXJNYXAu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NkZBQ0Y3MzIzRTg4M0VFMDBBOUVC
QzYgLyogYmVmb3JldW5sb2FkLXNsb3cuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9
ICJiZWZvcmV1bmxvYWQtc2xvdy5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
NDk1MkJFNUMyNTc4MTEzOTAwQjBBRUYxIC8qIHRyeS10ZXh0LXNlbGVjdC13aXRoLWRpc2FibGVk
LXRleHQtaW50ZXJhY3Rpb24uaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJ0cnkt
dGV4dC1zZWxlY3Qtd2l0aC1kaXNhYmxlZC10ZXh0LWludGVyYWN0aW9uLmh0bWwiOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk0OTUyQkU1RDI1NzgxMTU1MDBCMEFFRjEgLyogV0tXZWJW
aWV3RGlzYWJsZVNlbGVjdGlvbi5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IFdLV2ViVmlld0Rpc2FibGVTZWxlY3Rpb24ubW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTQ5NzFCMTE3MjQ1MUYyNzgwMDk2OTk0RCAvKiBpbmNvcnJlY3RDcmVhdGVUYWJs
ZVNjaGVtYS5kYiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IGZpbGU7IHBhdGggPSBpbmNvcnJlY3RDcmVhdGVUYWJsZVNjaGVtYS5kYjsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDk3MUIxMUYyNDUzQTg3RjAwOTY5OTREIC8qIG1pc3NpbmdU
b3BGcmFtZVVuaXF1ZVJlZGlyZWN0U2FtZVNpdGVTdHJpY3RUYWJsZVNjaGVtYS5kYiAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IGZpbGU7IG5hbWUgPSBt
aXNzaW5nVG9wRnJhbWVVbmlxdWVSZWRpcmVjdFNhbWVTaXRlU3RyaWN0VGFibGVTY2hlbWEuZGI7
IHBhdGggPSBUZXN0cy9XZWJLaXRDb2NvYS9taXNzaW5nVG9wRnJhbWVVbmlxdWVSZWRpcmVjdFNh
bWVTaXRlU3RyaWN0VGFibGVTY2hlbWEuZGI7IHNvdXJjZVRyZWUgPSBTT1VSQ0VfUk9PVDsgfTsK
IAkJNDk3MUIxMkMyNDYyMzlEMzAwOTY5OTREIC8qIGJhc2ljSVRQRGF0YWJhc2UuZGIgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBmaWxlOyBwYXRoID0g
YmFzaWNJVFBEYXRhYmFzZS5kYjsgc291cmNlVHJlZSA9IFNPVVJDRV9ST09UOyB9OwpAQCAtMzQ1
Myw2ICszNDU2LDcgQEAKIAkJCQk1Q0IzQ0UzODFGQTE2OTE3MDBDM0EyRDYgLyogV0tXZWJWaWV3
Q29uZmlndXJhdGlvbi5tbSAqLywKIAkJCQk3QzQxN0YzMTFEMTlFMTQ4MDBCOEVGNTMgLyogV0tX
ZWJWaWV3RGVmYXVsdE5hdmlnYXRpb25EZWxlZ2F0ZS5tbSAqLywKIAkJCQk0NkU2NkE4RjFGMEQ3
NTU5MDAyNkQ4M0MgLyogV0tXZWJWaWV3RGlhZ25vc3RpY0xvZ2dpbmcubW0gKi8sCisJCQkJNDk1
MkJFNUQyNTc4MTE1NTAwQjBBRUYxIC8qIFdLV2ViVmlld0Rpc2FibGVTZWxlY3Rpb24ubW0gKi8s
CiAJCQkJMkRCNjQ3ODcxRjQxNjFGNzAwNTFBODlFIC8qIFdLV2ViVmlld0RvZXNOb3RMb2dEdXJp
bmdJbml0aWFsaXphdGlvbi5tbSAqLywKIAkJCQlGNDgxMUU1ODIxOTQwQjQ0MDBBNUUwRkQgLyog
V0tXZWJWaWV3RWRpdEFjdGlvbnMubW0gKi8sCiAJCQkJMEYzQjk0QTUxQTc3MjY2QzAwREUzMjcy
IC8qIFdLV2ViVmlld0V2YWx1YXRlSmF2YVNjcmlwdC5tbSAqLywKQEAgLTM5MjUsNiArMzkyOSw3
IEBACiAJCQkJRjQ0QzdBMDQyMEZBQUUzMjAwMTQ0NzhDIC8qIHRleHQtd2l0aC1kZWZlcnJlZC1z
Y3JpcHQuaHRtbCAqLywKIAkJCQlGNDFBQjk5NTFFRjQ2OTJDMDA4M0ZBMDggLyogdGV4dGFyZWEt
dG8taW5wdXQuaHRtbCAqLywKIAkJCQlDMjJGQTMyQzIyOEY4NzdBMDA5RDc5ODggLyogVGV4dFdp
ZHRoLmh0bWwgKi8sCisJCQkJNDk1MkJFNUMyNTc4MTEzOTAwQjBBRUYxIC8qIHRyeS10ZXh0LXNl
bGVjdC13aXRoLWRpc2FibGVkLXRleHQtaW50ZXJhY3Rpb24uaHRtbCAqLywKIAkJCQlGNDQ1MUM3
NTFFQjhGRDdDMDAyMEM1REEgLyogdHdvLXBhcmFncmFwaC1jb250ZW50ZWRpdGFibGUuaHRtbCAq
LywKIAkJCQlDRDU3Nzc5QjIxMUNFNkNFMDAxQjM3MUUgLyogdmlkZW8td2l0aC1hdWRpby1hbmQt
d2ViLWF1ZGlvLmh0bWwgKi8sCiAJCQkJQ0Q1Nzc3OTgyMTFDREU4RjAwMUIzNzFFIC8qIHdlYi1h
dWRpby1vbmx5Lmh0bWwgKi8sCkBAIC01NjUyLDYgKzU2NTcsNyBAQAogCQkJCTU3OTdGRTMxMUVC
MTVBNjgwMEIyRjRBMCAvKiBOYXZpZ2F0aW9uQ2xpZW50RGVmYXVsdENyeXB0by5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlDRENGRkVDMTIyRTI2QTE1MDBERjQyMjMgLyogTm9QYXVzZVdoZW5Td2l0
Y2hpbmdUYWJzLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0FEM0ZFOEUxRDc2MTMxMjAwQjE2OUE0
IC8qIFRyYW5zZm9ybWF0aW9uTWF0cml4LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTQ5NTJCRTVF
MjU3ODExNTYwMEIwQUVGMSAvKiBXS1dlYlZpZXdEaXNhYmxlU2VsZWN0aW9uLm1tIGluIFNvdXJj
ZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7
CiAJCX07CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L1dLV2ViVmlld0Rpc2FibGVTZWxlY3Rpb24ubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL1dLV2ViVmlld0Rpc2FibGVTZWxlY3Rpb24ubW0KbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTk3
OTJjMzI0MWI1ZmQ0YTFhMzBmZTE1NDg0OTJjYTFmYzJjNjE4MgotLS0gL2Rldi9udWxsCisrKyBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tXZWJWaWV3RGlzYWJsZVNl
bGVjdGlvbi5tbQpAQCAtMCwwICsxLDEyNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZp
Zy5oIgorCisjaW1wb3J0ICJUZXN0V0tXZWJWaWV3LmgiCisjaW1wb3J0IDxXZWJLaXQvV0tXZWJW
aWV3UHJpdmF0ZS5oPgorI2ltcG9ydCA8V2ViS2l0L1dLV2ViVmlld1ByaXZhdGVGb3JUZXN0aW5n
Lmg+CisjaW1wb3J0IDx3dGYvQmxvY2tQdHIuaD4KKyNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4K
KworI2lmIFBMQVRGT1JNKE1BQykKKworVEVTVChXS1dlYlZpZXdEaXNhYmxlU2VsZWN0aW9uLCBE
b3VibGVDbGlja0RvZXNOb3RTZWxlY3RXaGVuVGV4dEludGVyYWN0aW9uc0FyZURpc2FibGVkKQor
eworICAgIFJldGFpblB0cjxUZXN0V0tXZWJWaWV3PiB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RX
S1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA0MDAsIDQwMCld
KTsKKyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZFRlc3RQYWdlTmFtZWQ6QCJ0cnktdGV4
dC1zZWxlY3Qtd2l0aC1kaXNhYmxlZC10ZXh0LWludGVyYWN0aW9uIl07CisKKyAgICBbd2ViVmll
dyBzZW5kQ2xpY2tzQXRQb2ludDpOU01ha2VQb2ludCgyMDAsIDIwMCkgbnVtYmVyT2ZDbGlja3M6
Ml07CisgICAgW3dlYlZpZXcgd2FpdEZvclBlbmRpbmdNb3VzZUV2ZW50c107CisKKyAgICBOU1N0
cmluZyAqc2VsZWN0ZWRUZXh0ID0gW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlw
dDpAImdldFNlbGVjdGlvbigpLmdldFJhbmdlQXQoMCkudG9TdHJpbmcoKSJdOworICAgIEVYUEVD
VF9TVFJFUSgiSGVsbG8iLCBzZWxlY3RlZFRleHQuVVRGOFN0cmluZyk7CisKKyAgICAvLyBDbGVh
ciB0aGUgc2VsZWN0aW9uIGJ5IGNsaWNraW5nIG9uY2UuCisgICAgW3dlYlZpZXcgc2VuZENsaWNr
c0F0UG9pbnQ6TlNNYWtlUG9pbnQoMjAwLCAyMDApIG51bWJlck9mQ2xpY2tzOjFdOworICAgIFt3
ZWJWaWV3IHdhaXRGb3JQZW5kaW5nTW91c2VFdmVudHNdOworCisgICAgLy8gRGlzYWJsZSB0ZXh0
IHNlbGVjdGlvbiB0aGVuIGRvdWJsZSBjbGljayBhZ2Fpbi4gVGhpcyBzaG91bGQgcmVzdWx0IGlu
IG5vIHRleHQgc2VsZWN0ZWQuCisgICAgW3dlYlZpZXcgY29uZmlndXJhdGlvbl0ucHJlZmVyZW5j
ZXMudGV4dEludGVyYWN0aW9uR2VzdHVyZXNFbmFibGVkID0gTk87CisKKyAgICBbd2ViVmlldyBz
ZW5kQ2xpY2tzQXRQb2ludDpOU01ha2VQb2ludCgyMDAsIDIwMCkgbnVtYmVyT2ZDbGlja3M6Ml07
CisgICAgW3dlYlZpZXcgd2FpdEZvclBlbmRpbmdNb3VzZUV2ZW50c107CisKKyAgICBOU1N0cmlu
ZyAqc2VsZWN0ZWRUZXh0MiA9IFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6
QCJnZXRTZWxlY3Rpb24oKS5nZXRSYW5nZUF0KDApLnRvU3RyaW5nKCkiXTsKKyAgICBFWFBFQ1Rf
U1RSRVEoIiIsIHNlbGVjdGVkVGV4dDIuVVRGOFN0cmluZyk7Cit9CisKK3N0YXRpYyBOU1N0cmlu
ZyAqY2xpY2tBbmREcmFnVG9TZWxlY3RUZXh0KFRlc3RXS1dlYlZpZXcgKndlYlZpZXcpCit7Cisg
ICAgW3dlYlZpZXcgbW91c2VFbnRlckF0UG9pbnQ6Q0dQb2ludE1ha2UoMTUwLCAyMDApXTsKKyAg
ICBbd2ViVmlldyBtb3VzZU1vdmVUb1BvaW50OkNHUG9pbnRNYWtlKDE1MCwgMjAwKSB3aXRoRmxh
Z3M6MF07CisgICAgW3dlYlZpZXcgbW91c2VEb3duQXRQb2ludDpDR1BvaW50TWFrZSgxNTAsIDIw
MCkgc2ltdWxhdGVQcmVzc3VyZTpOT107CisgICAgW3dlYlZpZXcgd2FpdEZvclBlbmRpbmdNb3Vz
ZUV2ZW50c107CisKKyAgICBbd2ViVmlldyBtb3VzZURyYWdUb1BvaW50OkNHUG9pbnRNYWtlKDkw
MCwgMjAwKV07CisgICAgW3dlYlZpZXcgd2FpdEZvclBlbmRpbmdNb3VzZUV2ZW50c107CisKKyAg
ICBbd2ViVmlldyBtb3VzZVVwQXRQb2ludDpDR1BvaW50TWFrZSg5MDAsIDIwMCldOworICAgIFt3
ZWJWaWV3IHdhaXRGb3JQZW5kaW5nTW91c2VFdmVudHNdOworICAgIAorICAgIHJldHVybiBbd2Vi
VmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAiZ2V0U2VsZWN0aW9uKCkuZ2V0UmFu
Z2VBdCgwKS50b1N0cmluZygpIl07Cit9CisKK1RFU1QoV0tXZWJWaWV3RGlzYWJsZVNlbGVjdGlv
biwgRHJhZ0RvZXNOb3RTZWxlY3RXaGVuVGV4dEludGVyYWN0aW9uc0FyZURpc2FibGVkKQorewor
ICAgIFJldGFpblB0cjxUZXN0V0tXZWJWaWV3PiB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dl
YlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCAxMDAwLCA0MDApXSk7
CisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRUZXN0UGFnZU5hbWVkOkAidHJ5LXRleHQt
c2VsZWN0LXdpdGgtZGlzYWJsZWQtdGV4dC1pbnRlcmFjdGlvbiJdOworCisgICAgTlNTdHJpbmcg
KnNlbGVjdGVkVGV4dCA9IGNsaWNrQW5kRHJhZ1RvU2VsZWN0VGV4dCh3ZWJWaWV3LmdldCgpKTsK
KyAgICBFWFBFQ1RfU1RSRVEoIkhlbGxvIiwgc2VsZWN0ZWRUZXh0LlVURjhTdHJpbmcpOworICAg
IAorICAgIC8vIENsZWFyIHRoZSBzZWxlY3Rpb24gYnkgY2xpY2tpbmcgb25jZS4KKyAgICBbd2Vi
VmlldyBzZW5kQ2xpY2tzQXRQb2ludDpOU01ha2VQb2ludCgyMDAsIDIwMCkgbnVtYmVyT2ZDbGlj
a3M6MV07CisgICAgW3dlYlZpZXcgd2FpdEZvclBlbmRpbmdNb3VzZUV2ZW50c107CisgICAgCisg
ICAgLy8gRGlzYWJsZSB0ZXh0IHNlbGVjdGlvbiB0aGVuIGNsaWNrIGFuZCBkcmFnIGFnYWluLiBU
aGlzIHNob3VsZCByZXN1bHQgaW4gbm8gdGV4dCBzZWxlY3RlZC4KKyAgICBbd2ViVmlldyBjb25m
aWd1cmF0aW9uXS5wcmVmZXJlbmNlcy50ZXh0SW50ZXJhY3Rpb25HZXN0dXJlc0VuYWJsZWQgPSBO
TzsKKworICAgIE5TU3RyaW5nICpzZWxlY3RlZFRleHQyID0gY2xpY2tBbmREcmFnVG9TZWxlY3RU
ZXh0KHdlYlZpZXcuZ2V0KCkpOworICAgIEVYUEVDVF9TVFJFUSgiIiwgc2VsZWN0ZWRUZXh0Mi5V
VEY4U3RyaW5nKTsKK30KKworI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKKworI2lmIFBMQVRGT1JN
KElPU19GQU1JTFkpCisKK1RFU1QoV0tXZWJWaWV3RGlzYWJsZVNlbGVjdGlvbiwgQ2Fubm90U2Vs
ZWN0V2hlblRleHRJbnRlcmFjdGlvbnNBcmVEaXNhYmxlZCkKK3sKKyAgICBhdXRvIHdlYlZpZXcg
PSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0
KDAsIDAsIDQwMCwgNDAwKV0pOworICAgIFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkSFRNTFN0
cmluZzpAIjxkaXY+V2ViS2l0PC9kaXY+Il07CisgICAgW3dlYlZpZXcgX3NldEVkaXRhYmxlOllF
U107CisgICAgW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImdldFNlbGVj
dGlvbigpLnNldFBvc2l0aW9uKGRvY3VtZW50LmJvZHksIDEpIl07CisKKyAgICBbd2ViVmlldyBz
ZWxlY3RBbGw6bmlsXTsKKworICAgIE5TU3RyaW5nICpzZWxlY3RlZFRleHQgPSBbd2ViVmlldyBz
dHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAiZ2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKSJd
OworICAgIEVYUEVDVF9TVFJFUSgiV2ViS2l0Iiwgc2VsZWN0ZWRUZXh0LlVURjhTdHJpbmcpOwor
CisgICAgLy8gQ2xlYXIgdGhlIHNlbGVjdGlvbi4KKyAgICBbd2ViVmlldyBzdHJpbmdCeUV2YWx1
YXRpbmdKYXZhU2NyaXB0OkAiZ2V0U2VsZWN0aW9uKCkucmVtb3ZlQWxsUmFuZ2VzKCkiXTsKKwor
ICAgIC8vIERpc2FibGUgdGV4dCBzZWxlY3Rpb24gdGhlbiB0cnkgdG8gc2VsZWN0IGFnYWluLiBU
aGlzIHNob3VsZCByZXN1bHQgaW4gbm8gdGV4dCBzZWxlY3RlZC4KKyAgICBbd2ViVmlldyBjb25m
aWd1cmF0aW9uXS5wcmVmZXJlbmNlcy50ZXh0SW50ZXJhY3Rpb25HZXN0dXJlc0VuYWJsZWQgPSBO
TzsKKyAgICAKKyAgICBbd2ViVmlldyBzZWxlY3RBbGw6bmlsXTsKKworICAgIE5TU3RyaW5nICpz
ZWxlY3RlZFRleHQyID0gW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImdl
dFNlbGVjdGlvbigpLnRvU3RyaW5nKCkiXTsKKyAgICBFWFBFQ1RfU1RSRVEoIiIsIHNlbGVjdGVk
VGV4dDIuVVRGOFN0cmluZyk7CisKK30KKworI2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkp
CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL3RyeS10
ZXh0LXNlbGVjdC13aXRoLWRpc2FibGVkLXRleHQtaW50ZXJhY3Rpb24uaHRtbCBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvdHJ5LXRleHQtc2VsZWN0LXdpdGgtZGlzYWJs
ZWQtdGV4dC1pbnRlcmFjdGlvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVjYzFiMjNmMDNlNWJmOTU4ZjM1
ZTFmYTFiNTgzNDg1ZmJlNDAzZGQKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL3RyeS10ZXh0LXNlbGVjdC13aXRoLWRpc2FibGVkLXRleHQt
aW50ZXJhY3Rpb24uaHRtbApAQCAtMCwwICsxLDE1IEBACis8c3R5bGU+Citib2R5IHsKKyAgICB3
aWR0aDogMTAwJTsKKyAgICBoZWlnaHQ6IDEwMCU7Cit9CisKKyNlZGl0YWJsZSB7CisgICAgd2lk
dGg6IDEwMCU7CisgICAgaGVpZ2h0OiA0MDBweDsKKyAgICBmb250LXNpemU6IDQwMHB4OworICAg
IHdoaXRlLXNwYWNlOiBub3dyYXA7CisgICAgYm9yZGVyOiAxcHggYmx1ZSBkYXNoZWQ7Cit9Cis8
L3N0eWxlPgorPGRpdiBpZD0iZWRpdGFibGUiIGNvbnRlbnRlZGl0YWJsZT5IZWxsbyB3b3JsZDwv
ZGl2Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>415240</attachid>
            <date>2020-12-02 11:23:42 -0800</date>
            <delta_ts>2020-12-02 14:32:31 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217784-20201202112342.patch</filename>
            <type>text/plain</type>
            <size>41468</size>
            <attacher name="Kate Cheney">katherine_cheney</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwMjQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDhmODE0MTZkNDI4ZDQ0N2ZlYzI1YzE1
NzBkNTM3Y2ZjMGI1Y2EyY2IuLjg0MjJmNzdiZjEzMjg2MjJkMjViM2ExNWUwOGU5Y2NiZDhlMWMx
NWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjAtMTItMDIgIEthdGUgQ2hlbmV5ICA8a2F0aGVy
aW5lX2NoZW5leUBhcHBsZS5jb20+CisKKyAgICAgICAgQ3JlYXRlIEFQSSB0byBlbmFibGUvZGlz
YWJsZSB0ZXh0IGludGVyYWN0aW9uIGdlc3R1cmVzIGluIFdLV2ViVmlldworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3Nzg0CisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS82MzQwNjI0MT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBDcmVhdGUgbmV3IFdLUHJlZmVyZW5jZS4gU2VlIFdlYktpdCBDaGFuZ2Vs
b2cgZm9yIGRldGFpbHMuCisKKyAgICAgICAgKiBTY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZl
cmVuY2VzLnlhbWw6CisKIDIwMjAtMTEtMjggIFBlciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBw
bGUuY29tPgogCiAgICAgICAgIFttYWNPU10gU2V0IGFwcGxpY2F0aW9uIGluZm9ybWF0aW9uIGlu
IHRoZSBOZXR3b3JraW5nIHByb2Nlc3Mgb24gYmVoYWxmIG9mIHRoZSBXZWJDb250ZW50IHByb2Nl
c3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZwppbmRleCA3MTAwMDFiYzViYzQxNWQzNjVhMDRlODBiMDRlNTFlY2Q2YjA0YWE5
Li41NTkzMjIxOWNiOTcxMGMyOTgzMmIxNjA0MTlmZDI3YTc5NTZkNjM2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMzkgQEAKKzIwMjAtMTItMDIgIEthdGUgQ2hlbmV5ICA8a2F0aGVyaW5lX2NoZW5l
eUBhcHBsZS5jb20+CisKKyAgICAgICAgQ3JlYXRlIEFQSSB0byBlbmFibGUvZGlzYWJsZSB0ZXh0
IGludGVyYWN0aW9uIGdlc3R1cmVzIGluIFdLV2ViVmlldworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3Nzg0CisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS82MzQwNjI0MT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBBZGQgQVBJIHRvIGRpc2FibGUgdGV4dCBzZWxlY3Rpb24gZm9yIG1hY09TLgorCisgICAg
ICAgICogcGFnZS9FdmVudEhhbmRsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5k
bGVyOjpzZWxlY3RDbG9zZXN0V29yZEZyb21Nb3VzZUV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6
OkV2ZW50SGFuZGxlcjo6c2VsZWN0Q2xvc2VzdENvbnRleHR1YWxXb3JkT3JMaW5rRnJvbU1vdXNl
RXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpoYW5kbGVNb3VzZVByZXNz
RXZlbnREb3VibGVDbGljayk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmhhbmRs
ZU1vdXNlUHJlc3NFdmVudFRyaXBsZUNsaWNrKToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFu
ZGxlcjo6aGFuZGxlTW91c2VQcmVzc0V2ZW50U2luZ2xlQ2xpY2spOgorICAgICAgICAoV2ViQ29y
ZTo6RXZlbnRIYW5kbGVyOjptb3VzZURvd25NYXlTdGFydFNlbGVjdCk6CisgICAgICAgIENyZWF0
ZSBhIG5ldyBmdW5jdGlvbiB0byByZXR1cm4gd2hldGhlciBhIGNsaWNrIHJlc3VsdHMgaW4gYQor
ICAgICAgICBzZWxlY3Rpb24uIEl0IHdpbGwgYWx3YXlzIHJldHVybiBmYWxzZSBpZiB0ZXh0IGlu
dGVyYWN0aW9uIGlzIGRpc2FibGVkLgorCisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6
OmhhbmRsZU1vdXNlUHJlc3NFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6
OmhhbmRsZU1vdXNlRHJhZ2dlZEV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxl
cjo6dXBkYXRlU2VsZWN0aW9uRm9yTW91c2VEcmFnKToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50
SGFuZGxlcjo6c2VsZWN0Q3Vyc29yKToKKyAgICAgICAgKiBwYWdlL0V2ZW50SGFuZGxlci5oOgor
ICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjptX3RleHRJbnRlcmFj
dGlvbkdlc3R1cmVzRW5hYmxlZCk6CisgICAgICAgIChXZWJDb3JlOjptX3Nob3VsZFJlbGF4VGhp
cmRQYXJ0eUNvb2tpZUJsb2NraW5nKTogRGVsZXRlZC4KKyAgICAgICAgKiBwYWdlL1BhZ2UuaDoK
KyAgICAgICAgU3RvcmUgdGhlIHRleHRJbnRlcmFjdGlvbkdlc3R1cmVzRW5hYmxlZCB2YWx1ZSBp
biB0aGUgUGFnZSBzbyBpdCBpcworICAgICAgICBhY2Nlc3NpYmxlIGZyb20gdGhlIEV2ZW50SGFu
ZGxlci4KKworICAgICAgICAoV2ViQ29yZTo6UGFnZTo6dGV4dEludGVyYWN0aW9uR2VzdHVyZXNF
bmFibGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OnNldFRleHRJbnRlcmFjdGlvbkdlc3R1
cmVzRW5hYmxlZCk6CisgICAgICAgICogcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5oOgorCiAyMDIw
LTExLTMwICBBZGl0eWEgS2VlcnRoaSAgPGFrZWVydGhpQGFwcGxlLmNvbT4KIAogICAgICAgICBV
c2UgcmVhbCBkYXRlcyBhbmQgdGltZXMgYXMgcGxhY2Vob2xkZXJzIGZvciBkYXRlL3RpbWUgaW5w
dXRzIHdpdGggZWRpdGFibGUgY29tcG9uZW50cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBiMTYwYTI1MTdjOTM0ODFh
ODdjNjIyODRmNjg4ZDIzMzQzYWM4YTJmLi4zNWRkNTFmYzRkY2QyNTU3ZWZhNTMyMjRhZDRkZDBj
ZDhkZWM4MTcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3IEBACisyMDIwLTEyLTAyICBLYXRlIENo
ZW5leSAgPGthdGhlcmluZV9jaGVuZXlAYXBwbGUuY29tPgorCisgICAgICAgIENyZWF0ZSBBUEkg
dG8gZW5hYmxlL2Rpc2FibGUgdGV4dCBpbnRlcmFjdGlvbiBnZXN0dXJlcyBpbiBXS1dlYlZpZXcK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzc4NAor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjM0MDYyNDE+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ3JlYXRlIGEgbmV3IEFQSSB0byBkaXNhYmxlIHRl
eHQgaW50ZXJhY3Rpb24gZ2VzdHVyZXMgaW4gYSBXS1dlYlZpZXcuCisgICAgICAgIFdlIGhhdmUg
U1BJIGZvciB0aGlzIGZvciBpT1MsIGJ1dCBpdCBjb3VsZCBiZSB1c2VmdWwgdG8gb3RoZXIgV2Vi
S2l0CisgICAgICAgIGNsaWVudHMgYW5kIG9uIG1hY09TLiBBZGQgdGhlIEFQSSB0byBXS1ByZWZl
cmVuY2VzLCBpbnN0ZWFkIG9mCisgICAgICAgIFdLV2ViVmlld0NvbmZpZ3VyYXRpb24sIHNvIGl0
IGNhbiBiZSBjaGFuZ2VkIG9uIHRoZSBmbHkuCisKKyAgICAgICAgRGVwcmVjYXRlIHRoZSBTUEku
CisKKyAgICAgICAgKiBTaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZSBjb25zdCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZSk6CisgICAg
ICAgICogU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXMuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L0NvY29hL1dLUHJlZmVyZW5jZXMubW06CisgICAgICAgICgtW1dLUHJlZmVyZW5jZXMgZW5jb2Rl
V2l0aENvZGVyOl0pOgorICAgICAgICAoLVtXS1ByZWZlcmVuY2VzIGluaXRXaXRoQ29kZXI6XSk6
CisgICAgICAgICgtW1dLUHJlZmVyZW5jZXMgdGV4dEludGVyYWN0aW9uR2VzdHVyZXNFbmFibGVk
XSk6CisgICAgICAgICgtW1dLUHJlZmVyZW5jZXMgc2V0VGV4dEludGVyYWN0aW9uR2VzdHVyZXNF
bmFibGVkOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Q29uZmln
dXJhdGlvbi5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBpbml0XSk6Cisg
ICAgICAgICgtW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gZW5jb2RlV2l0aENvZGVyOl0pOgorICAg
ICAgICAoLVtXS1dlYlZpZXdDb25maWd1cmF0aW9uIGluaXRXaXRoQ29kZXI6XSk6CisgICAgICAg
ICgtW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gY29weVdpdGhab25lOl0pOgorICAgICAgICAoLVtX
S1dlYlZpZXdDb25maWd1cmF0aW9uIF90ZXh0SW50ZXJhY3Rpb25HZXN0dXJlc0VuYWJsZWRdKToK
KyAgICAgICAgKC1bV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfc2V0VGV4dEludGVyYWN0aW9uR2Vz
dHVyZXNFbmFibGVkOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3
Q29uZmlndXJhdGlvblByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpjcmVhdGlvblBhcmFtZXRlcnMp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tOgor
ICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGhhc1NlbGVjdGFibGVQb3NpdGlvbkF0UG9pbnQ6XSk6
CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgcG9pbnRJc05lYXJNYXJrZWRUZXh0Ol0pOgorICAg
ICAgICAoLVtXS0NvbnRlbnRWaWV3IHRleHRJbnRlcmFjdGlvbkdlc3R1cmU6c2hvdWxkQmVnaW5B
dFBvaW50Ol0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF9jYXNjYWRlSW50ZXJhY3Rpb25U
aW50Q29sb3JdKToKKworICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IHNlbGVjdEZvcldlYlZpZXc6
XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgc2VsZWN0QWxsRm9yV2ViVmlldzpdKToKKyAg
ICAgICAgQWRkIGNoZWNrIGZvciB0ZXh0SW50ZXJhY3Rpb25HZXN0dXJlc0VuYWJsZWQgaW4gdGhl
c2Ugc2VsZWN0KgorICAgICAgICBmdW5jdGlvbnMgYmVjYXVzZSBkaXNhYmxpbmcgdGV4dCBpbnRl
cmFjdGlvbiBzaG91bGQgZGlzYWJsZSBzZWxlY3Rpb24KKyAgICAgICAgaW4gV0tXZWJWaWV3Lgor
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICBVcGRh
dGUgdGhlIHRleHRJbnRlcmFjdGlvbkdlc3R1cmVzRW5hYmxlZCB2YWx1ZSBpbiB0aGUgcGFnZSB3
aGVuCisgICAgICAgIHByZWZlcmVuY2VzIGFyZSB1cGRhdGVkLgorCisgICAgICAgIChXZWJLaXQ6
Om1fbGltaXRzTmF2aWdhdGlvbnNUb0FwcEJvdW5kRG9tYWlucyk6CisgICAgICAgIChXZWJLaXQ6
OldlYlBhZ2U6OnVwZGF0ZVByZWZlcmVuY2VzKToKKwogMjAyMC0xMS0yOSAgQWRhbSBNYXphbmRl
ciAgPG1hemFuZGVyQGFwcGxlLmNvbT4KIAogICAgICAgICBEZW55IGxvZ3MgZm9yIGJlbmlnbiBm
b250c2VydmljZXNkIGRhZW1vbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9TY3JpcHRzL1ByZWZl
cmVuY2VzL1dlYlByZWZlcmVuY2VzLnlhbWwgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5j
ZXMvV2ViUHJlZmVyZW5jZXMueWFtbAppbmRleCBhZjMxYTIzOGNiNGRhZDU3NDg2YzE1NzI0MjEz
MDJiNmM0ZTViOTI4Li41MjA5YzFhZGIzMTZhMmI3Y2VkZjcxY2NkY2UyODA3NmE5M2IyMWExIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXMu
eWFtbAorKysgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXMu
eWFtbApAQCAtMjI3Nyw2ICsyMjc3LDE2IEBAIFRleHRBdXRvc2l6aW5nRW5hYmxlZDoKICAgICAg
ICJQTEFURk9STShJT1NfRkFNSUxZKSI6IHRydWUKICAgICAgIGRlZmF1bHQ6IGZhbHNlCiAKK1Rl
eHRJbnRlcmFjdGlvbkdlc3R1cmVzRW5hYmxlZDoKKyAgdHlwZTogYm9vbAorICBkZWZhdWx0VmFs
dWU6CisgICAgV2ViS2l0TGVnYWN5OgorICAgICAgZGVmYXVsdDogdHJ1ZQorICAgIFdlYktpdDoK
KyAgICAgIGRlZmF1bHQ6IHRydWUKKyAgICBXZWJDb3JlOgorICAgICAgZGVmYXVsdDogdHJ1ZQor
CiBUaHJlYWRlZFNjcm9sbGluZ0VuYWJsZWQ6CiAgIHR5cGU6IGJvb2wKICAgd2ViY29yZUJpbmRp
bmc6IG5vbmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAppbmRleCA2NWViMjA5ZDRk
MzdhNjNhZGFlMjkzMDVkMmZmNDdhMGUyNWRiMTVkLi43ZjgzMGIyMGMxNWFiOTM0Yjc2ZTQ4YzI4
ZDQ3NDQ1MjEzZDRiMGYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFu
ZGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCkBAIC01
NjksNyArNTY5LDcgQEAgc3RhdGljIEFwcGVuZFRyYWlsaW5nV2hpdGVzcGFjZSBzaG91bGRBcHBl
bmRUcmFpbGluZ1doaXRlc3BhY2UoY29uc3QgTW91c2VFdmVudFcKIAogdm9pZCBFdmVudEhhbmRs
ZXI6OnNlbGVjdENsb3Nlc3RXb3JkRnJvbU1vdXNlRXZlbnQoY29uc3QgTW91c2VFdmVudFdpdGhI
aXRUZXN0UmVzdWx0cyYgcmVzdWx0KQogewotICAgIGlmIChtX21vdXNlRG93bk1heVN0YXJ0U2Vs
ZWN0KQorICAgIGlmIChtb3VzZURvd25NYXlTdGFydFNlbGVjdCgpKQogICAgICAgICBzZWxlY3RD
bG9zZXN0V29yZEZyb21IaXRUZXN0UmVzdWx0KHJlc3VsdC5oaXRUZXN0UmVzdWx0KCksIHNob3Vs
ZEFwcGVuZFRyYWlsaW5nV2hpdGVzcGFjZShyZXN1bHQsIG1fZnJhbWUpKTsKIH0KIApAQCAtNjE4
LDcgKzYxOCw3IEBAIHZvaWQgRXZlbnRIYW5kbGVyOjpzZWxlY3RDbG9zZXN0Q29udGV4dHVhbFdv
cmRPckxpbmtGcm9tTW91c2VFdmVudChjb25zdCBNb3VzZUV2CiAKICAgICBOb2RlKiB0YXJnZXRO
b2RlID0gcmVzdWx0LnRhcmdldE5vZGUoKTsKIAotICAgIGlmICh0YXJnZXROb2RlICYmIHRhcmdl
dE5vZGUtPnJlbmRlcmVyKCkgJiYgbV9tb3VzZURvd25NYXlTdGFydFNlbGVjdCkgeworICAgIGlm
ICh0YXJnZXROb2RlICYmIHRhcmdldE5vZGUtPnJlbmRlcmVyKCkgJiYgbW91c2VEb3duTWF5U3Rh
cnRTZWxlY3QoKSkgewogICAgICAgICBWaXNpYmxlU2VsZWN0aW9uIG5ld1NlbGVjdGlvbjsKICAg
ICAgICAgVmlzaWJsZVBvc2l0aW9uIHBvcyh0YXJnZXROb2RlLT5yZW5kZXJlcigpLT5wb3NpdGlv
bkZvclBvaW50KHJlc3VsdC5sb2NhbFBvaW50KCksIG51bGxwdHIpKTsKICAgICAgICAgaWYgKHBv
cy5pc05vdE51bGwoKSAmJiBwb3MuZGVlcEVxdWl2YWxlbnQoKS5kZXByZWNhdGVkTm9kZSgpLT5p
c0Rlc2NlbmRhbnRPZigqdXJsRWxlbWVudCkpCkBAIC02NTIsNyArNjUyLDcgQEAgYm9vbCBFdmVu
dEhhbmRsZXI6OmhhbmRsZU1vdXNlUHJlc3NFdmVudFRyaXBsZUNsaWNrKGNvbnN0IE1vdXNlRXZl
bnRXaXRoSGl0VGVzdFIKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIAogICAgIE5vZGUqIHRh
cmdldE5vZGUgPSBldmVudC50YXJnZXROb2RlKCk7Ci0gICAgaWYgKCEodGFyZ2V0Tm9kZSAmJiB0
YXJnZXROb2RlLT5yZW5kZXJlcigpICYmIG1fbW91c2VEb3duTWF5U3RhcnRTZWxlY3QpKQorICAg
IGlmICghKHRhcmdldE5vZGUgJiYgdGFyZ2V0Tm9kZS0+cmVuZGVyZXIoKSAmJiBtb3VzZURvd25N
YXlTdGFydFNlbGVjdCgpKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgVmlzaWJsZVNl
bGVjdGlvbiBuZXdTZWxlY3Rpb247CkBAIC02NzksNyArNjc5LDcgQEAgYm9vbCBFdmVudEhhbmRs
ZXI6OmhhbmRsZU1vdXNlUHJlc3NFdmVudFNpbmdsZUNsaWNrKGNvbnN0IE1vdXNlRXZlbnRXaXRo
SGl0VGVzdFIKIAogICAgIG1fZnJhbWUuZG9jdW1lbnQoKS0+dXBkYXRlTGF5b3V0SWdub3JlUGVu
ZGluZ1N0eWxlc2hlZXRzKCk7CiAgICAgTm9kZSogdGFyZ2V0Tm9kZSA9IGV2ZW50LnRhcmdldE5v
ZGUoKTsKLSAgICBpZiAoIXRhcmdldE5vZGUgfHwgIXRhcmdldE5vZGUtPnJlbmRlcmVyKCkgfHwg
IW1fbW91c2VEb3duTWF5U3RhcnRTZWxlY3QgfHwgbV9tb3VzZURvd25EZWxlZ2F0ZWRGb2N1cykK
KyAgICBpZiAoIXRhcmdldE5vZGUgfHwgIXRhcmdldE5vZGUtPnJlbmRlcmVyKCkgfHwgIW1vdXNl
RG93bk1heVN0YXJ0U2VsZWN0KCkgfHwgbV9tb3VzZURvd25EZWxlZ2F0ZWRGb2N1cykKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogCiAgICAgLy8gRXh0ZW5kIHRoZSBzZWxlY3Rpb24gaWYgdGhlIFNo
aWZ0IGtleSBpcyBkb3duLCB1bmxlc3MgdGhlIGNsaWNrIGlzIGluIGEgbGluay4KQEAgLTc2Niw2
ICs3NjYsMTUgQEAgYm9vbCBFdmVudEhhbmRsZXI6OmNhbk1vdXNlRG93blN0YXJ0U2VsZWN0KGNv
bnN0IE1vdXNlRXZlbnRXaXRoSGl0VGVzdFJlc3VsdHMmIGUKICAgICByZXR1cm4gbm9kZS0+Y2Fu
U3RhcnRTZWxlY3Rpb24oKSB8fCBQb3NpdGlvbjo6bm9kZUlzVXNlclNlbGVjdEFsbChub2RlKTsK
IH0KIAorYm9vbCBFdmVudEhhbmRsZXI6Om1vdXNlRG93bk1heVN0YXJ0U2VsZWN0KCkKK3sKKyAg
ICBQYWdlKiBwYWdlID0gbV9mcmFtZS5wYWdlKCk7CisgICAgaWYgKHBhZ2UgJiYgIXBhZ2UtPnRl
eHRJbnRlcmFjdGlvbkdlc3R1cmVzRW5hYmxlZCgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisK
KyAgICByZXR1cm4gbV9tb3VzZURvd25NYXlTdGFydFNlbGVjdDsKK30KKwogYm9vbCBFdmVudEhh
bmRsZXI6OmhhbmRsZU1vdXNlUHJlc3NFdmVudChjb25zdCBNb3VzZUV2ZW50V2l0aEhpdFRlc3RS
ZXN1bHRzJiBldmVudCkKIHsKICAgICBSZWY8RnJhbWU+IHByb3RlY3RlZEZyYW1lKG1fZnJhbWUp
OwpAQCAtODQzLDcgKzg1Miw3IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpoYW5kbGVNb3VzZVByZXNz
RXZlbnQoY29uc3QgTW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0cyYgZXZlCiAgICAgZWxzZQog
ICAgICAgICBzd2FsbG93RXZlbnQgPSBoYW5kbGVNb3VzZVByZXNzRXZlbnRTaW5nbGVDbGljayhl
dmVudCk7CiAgICAgCi0gICAgbV9tb3VzZURvd25NYXlTdGFydEF1dG9zY3JvbGwgPSBtX21vdXNl
RG93bk1heVN0YXJ0U2VsZWN0CisgICAgbV9tb3VzZURvd25NYXlTdGFydEF1dG9zY3JvbGwgPSBt
b3VzZURvd25NYXlTdGFydFNlbGVjdCgpCiAgICAgICAgIHx8IChtX21vdXNlUHJlc3NOb2RlICYm
IG1fbW91c2VQcmVzc05vZGUtPnJlbmRlckJveCgpICYmIG1fbW91c2VQcmVzc05vZGUtPnJlbmRl
ckJveCgpLT5jYW5CZVByb2dyYW1hdGljYWxseVNjcm9sbGVkKCkpOwogCiAgICAgcmV0dXJuIHN3
YWxsb3dFdmVudDsKQEAgLTkxMSw3ICs5MjAsNyBAQCBib29sIEV2ZW50SGFuZGxlcjo6aGFuZGxl
TW91c2VEcmFnZ2VkRXZlbnQoY29uc3QgTW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0cyYgZQog
ICAgIH0KIAogI2lmIFBMQVRGT1JNKENPQ09BKSAvLyBGSVhNRTogV2h5IGRvZXMgdGhpcyBhc3Nl
cnRpb24gZmlyZSBvbiBvdGhlciBwbGF0Zm9ybXM/Ci0gICAgQVNTRVJUKG1fbW91c2VEb3duTWF5
U3RhcnRTZWxlY3QgfHwgbV9tb3VzZURvd25NYXlTdGFydEF1dG9zY3JvbGwpOworICAgIEFTU0VS
VChtb3VzZURvd25NYXlTdGFydFNlbGVjdCgpIHx8IG1fbW91c2VEb3duTWF5U3RhcnRBdXRvc2Ny
b2xsKTsKICNlbmRpZgogCiAgICAgbV9tb3VzZURvd25NYXlTdGFydERyYWcgPSBmYWxzZTsKQEAg
LTk4NSw3ICs5OTQsNyBAQCB2b2lkIEV2ZW50SGFuZGxlcjo6dXBkYXRlU2VsZWN0aW9uRm9yTW91
c2VEcmFnKGNvbnN0IEhpdFRlc3RSZXN1bHQmIGhpdFRlc3RSZXN1bAogICAgIGlmICghc3VwcG9y
dHNTZWxlY3Rpb25VcGRhdGVzT25Nb3VzZURyYWcoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAg
aWYgKCFtX21vdXNlRG93bk1heVN0YXJ0U2VsZWN0KQorICAgIGlmICghbW91c2VEb3duTWF5U3Rh
cnRTZWxlY3QoKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgTm9kZSogdGFyZ2V0ID0gaGl0VGVz
dFJlc3VsdC50YXJnZXROb2RlKCk7CkBAIC0xNTQxLDcgKzE1NTAsNyBAQCBPcHRpb25hbDxDdXJz
b3I+IEV2ZW50SGFuZGxlcjo6c2VsZWN0Q3Vyc29yKGNvbnN0IEhpdFRlc3RSZXN1bHQmIHJlc3Vs
dCwgYm9vbCBzaAogICAgIC8vIER1cmluZyBzZWxlY3Rpb24sIHVzZSBhbiBJLWJlYW0gcmVnYXJk
bGVzcyBvZiB0aGUgY29udGVudCBiZW5lYXRoIHRoZSBjdXJzb3IuCiAgICAgLy8gSWYgYSBkcmFn
IG1heSBiZSBzdGFydGluZyBvciB3ZSdyZSBjYXB0dXJpbmcgbW91c2UgZXZlbnRzIGZvciBhIHBh
cnRpY3VsYXIgbm9kZSwgZG9uJ3QgdHJlYXQgdGhpcyBhcyBhIHNlbGVjdGlvbi4KICAgICBpZiAo
bV9tb3VzZVByZXNzZWQKLSAgICAgICAgJiYgbV9tb3VzZURvd25NYXlTdGFydFNlbGVjdAorICAg
ICAgICAmJiBtb3VzZURvd25NYXlTdGFydFNlbGVjdCgpCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9S
VCkKICAgICAgICAgJiYgIW1fbW91c2VEb3duTWF5U3RhcnREcmFnCiAjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0V2ZW50SGFuZGxlci5oCmluZGV4IDkwYzc4N2I2N2UyZjNkYzI5ZDQ1ODhlZWJmNTg3ZmE5
MzUxZGU5ZDkuLmFiNTU2ODNlNDBmZGE1ZTQ4MjdlNDMyODI2YjY2YmIzMmRjNGVmZDYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaApAQCAtNTE1LDYgKzUxNSw4IEBAIHByaXZhdGU6CiAK
ICAgICBib29sIGNhbk1vdXNlRG93blN0YXJ0U2VsZWN0KGNvbnN0IE1vdXNlRXZlbnRXaXRoSGl0
VGVzdFJlc3VsdHMmKTsKIAorICAgIGJvb2wgbW91c2VEb3duTWF5U3RhcnRTZWxlY3QoKTsKKyAg
ICAKICAgICBGcmFtZSYgbV9mcmFtZTsKIAogICAgIGJvb2wgbV9tb3VzZVByZXNzZWQgeyBmYWxz
ZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXggNGNmNmY1MGY0MWVmY2E4YjA2YjEzMWU5NWE0YjQ3
YjY2ZTRiYTYyYi4uZWZjMjFhZTcxODZjYTBkYzhiOGU2ZWM0ZTY5NmYyOWQ4YjRjODY5YiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1BhZ2UuY3BwCkBAIC0zMDMsNiArMzAzLDcgQEAgUGFnZTo6UGFnZShQYWdlQ29uZmln
dXJhdGlvbiYmIHBhZ2VDb25maWd1cmF0aW9uKQogICAgICwgbV9sb2Fkc1N1YnJlc291cmNlcyhw
YWdlQ29uZmlndXJhdGlvbi5sb2Fkc1N1YnJlc291cmNlcykKICAgICAsIG1fbG9hZHNGcm9tTmV0
d29yayhwYWdlQ29uZmlndXJhdGlvbi5sb2Fkc0Zyb21OZXR3b3JrKQogICAgICwgbV9zaG91bGRS
ZWxheFRoaXJkUGFydHlDb29raWVCbG9ja2luZyhwYWdlQ29uZmlndXJhdGlvbi5zaG91bGRSZWxh
eFRoaXJkUGFydHlDb29raWVCbG9ja2luZykKKyAgICAsIG1fdGV4dEludGVyYWN0aW9uR2VzdHVy
ZXNFbmFibGVkKHBhZ2VDb25maWd1cmF0aW9uLnRleHRJbnRlcmFjdGlvbkdlc3R1cmVzRW5hYmxl
ZCkKIHsKICAgICB1cGRhdGVUaW1lclRocm90dGxpbmdTdGF0ZSgpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCmlu
ZGV4IDkxNTIxNGE3MTIwMTljNzk5NTFlNjk1ZTM5NzcyYmU2ZDc0YTE1MGUuLmM4OGVlY2Y2Y2Zi
MDNkOTNkYTgyYzZlYzVmYzBhNzEyZmY1ZjYyNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCkBAIC04MjgsNiAr
ODI4LDkgQEAgcHVibGljOgogCiAgICAgTW9ub3RvbmljVGltZSBsYXN0UmVuZGVyaW5nVXBkYXRl
VGltZXN0YW1wKCkgY29uc3QgeyByZXR1cm4gbV9sYXN0UmVuZGVyaW5nVXBkYXRlVGltZXN0YW1w
OyB9CiAKKyAgICBib29sIHRleHRJbnRlcmFjdGlvbkdlc3R1cmVzRW5hYmxlZCgpIHsgcmV0dXJu
IG1fdGV4dEludGVyYWN0aW9uR2VzdHVyZXNFbmFibGVkOyB9CisgICAgdm9pZCBzZXRUZXh0SW50
ZXJhY3Rpb25HZXN0dXJlc0VuYWJsZWQoYm9vbCB2YWx1ZSkgeyBtX3RleHRJbnRlcmFjdGlvbkdl
c3R1cmVzRW5hYmxlZCA9IHZhbHVlOyB9CisKIHByaXZhdGU6CiAgICAgc3RydWN0IE5hdmlnYXRp
b24gewogICAgICAgICBSZWdpc3RyYWJsZURvbWFpbiBkb21haW47CkBAIC0xMTMxLDYgKzExMzQs
OCBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9oYXNCZWVuTm90aWZpZWRUb0luamVjdFVzZXJTY3Jp
cHRzIHsgZmFsc2UgfTsKIAogICAgIE1vbm90b25pY1RpbWUgbV9sYXN0UmVuZGVyaW5nVXBkYXRl
VGltZXN0YW1wOworICAgIAorICAgIGJvb2wgbV90ZXh0SW50ZXJhY3Rpb25HZXN0dXJlc0VuYWJs
ZWQgeyB0cnVlIH07CiB9OwogCiBpbmxpbmUgUGFnZUdyb3VwJiBQYWdlOjpncm91cCgpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1cmF0aW9uLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1cmF0aW9uLmgKaW5kZXggZjA1NGZjYjM2NzUxYmJlYWVm
NGJmOGIxMmM0N2YyMGY1MzBjMTM1NS4uNTU5ZTgxZDhhZTI1ODgyNDBhNTg4ZDAxYTk2YjYzYzUz
NmVkZjdhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlv
bi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uaApAQCAtMTMz
LDYgKzEzMyw3IEBAIHB1YmxpYzoKICAgICBib29sIGxvYWRzRnJvbU5ldHdvcmsgeyB0cnVlIH07
CiAgICAgYm9vbCB1c2VyU2NyaXB0c1Nob3VsZFdhaXRVbnRpbE5vdGlmaWNhdGlvbiB7IHRydWUg
fTsKICAgICBTaG91bGRSZWxheFRoaXJkUGFydHlDb29raWVCbG9ja2luZyBzaG91bGRSZWxheFRo
aXJkUGFydHlDb29raWVCbG9ja2luZyB7IFNob3VsZFJlbGF4VGhpcmRQYXJ0eUNvb2tpZUJsb2Nr
aW5nOjpObyB9OworICAgIGJvb2wgdGV4dEludGVyYWN0aW9uR2VzdHVyZXNFbmFibGVkIHsgdHJ1
ZSB9OwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNy
ZWF0aW9uUGFyYW1ldGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRp
b25QYXJhbWV0ZXJzLmNwcAppbmRleCBjZjEzMWE5MjFlMDg2MzY1ZGJmNzdmYTk4ZTQxYzFjNzRh
M2U3ZTI1Li5kZjIwMWYwZjNkYTYyYzdlMDA0NzBjNDk1MWZiMGNjZDczNWM2OTQyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcApA
QCAtMTcwLDYgKzE3MCw4IEBAIHZvaWQgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2Rl
KElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICNpZiBQTEFURk9STShHVEspCiAgICAgZW5j
b2RlciA8PCB0aGVtZU5hbWU7CiAjZW5kaWYKKyAgICAKKyAgICBlbmNvZGVyIDw8IHRleHRJbnRl
cmFjdGlvbkdlc3R1cmVzRW5hYmxlZDsKIH0KIAogT3B0aW9uYWw8V2ViUGFnZUNyZWF0aW9uUGFy
YW1ldGVycz4gV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKElQQzo6RGVjb2RlciYg
ZGVjb2RlcikKQEAgLTUzNSw2ICs1MzcsOSBAQCBPcHRpb25hbDxXZWJQYWdlQ3JlYXRpb25QYXJh
bWV0ZXJzPiBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUoSVBDOjpEZWNvZAogICAg
IGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy50aGVtZU5hbWUpKQogICAgICAgICByZXR1
cm4gV1RGOjpudWxsb3B0OwogI2VuZGlmCisgICAgCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShw
YXJhbWV0ZXJzLnRleHRJbnRlcmFjdGlvbkdlc3R1cmVzRW5hYmxlZCkpCisgICAgICAgIHJldHVy
biBXVEY6Om51bGxvcHQ7CiAKICAgICByZXR1cm4gcGFyYW1ldGVyczsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaCBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaAppbmRleCBkOTFlNDYw
MzhmMzA5YjUxMzBiZmRlNThkZmY0YTlmMTgxOTUxZGZkLi45ZTVjOGJjNjAwYmUxOTQzMDk3OTAx
NzdkZjhiNGIxNzg0ZjMxYTI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQ
YWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFn
ZUNyZWF0aW9uUGFyYW1ldGVycy5oCkBAIC0yNDIsNiArMjQyLDggQEAgc3RydWN0IFdlYlBhZ2VD
cmVhdGlvblBhcmFtZXRlcnMgewogI2lmIFBMQVRGT1JNKEdUSykKICAgICBTdHJpbmcgdGhlbWVO
YW1lOwogI2VuZGlmCisKKyAgICBib29sIHRleHRJbnRlcmFjdGlvbkdlc3R1cmVzRW5hYmxlZCB7
IHRydWUgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXMuaCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzLmgKaW5kZXggYzJlNmEyNzI4ZjMw
MGM2YzA2MTY5ZTgxNjMzNjliOGRhMTdlOWFmYS4uZjRmNGZkY2I1MmUzNGRlODAwNzU1NzcyNGYx
NGZhYmU3YmVjOTQzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLUHJlZmVyZW5jZXMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tQcmVmZXJlbmNlcy5oCkBAIC02MCw2ICs2MCwxMCBAQCBXS19DTEFTU19BVkFJTEFCTEUo
bWFjb3MoMTAuMTApLCBpb3MoOC4wKSkKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIHRhYkZv
Y3VzZXNMaW5rcyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEyLjMpKTsKICNlbmRpZgogCisv
KiEgQGFic3RyYWN0IEEgQm9vbGVhbiB2YWx1ZSBpbmRpY2F0aW5nIHdoZXRoZXIgdGV4dCBpbnRl
cmFjdGlvbiBpcyBkaXNhYmxlZC4KKyovCitAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCB0ZXh0
SW50ZXJhY3Rpb25HZXN0dXJlc0VuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNf
VEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKwogQGVuZAogCiBAaW50ZXJmYWNlIFdLUHJlZmVyZW5j
ZXMgKFdLRGVwcmVjYXRlZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1ByZWZlcmVuY2VzLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLUHJlZmVyZW5jZXMubW0KaW5kZXggNzI3NGE2ODNhNmZhYmM1NjExZDRhMmE1MTJhYzkz
Y2RkMDcxMDY5OC4uY2NmMDNmYzljMWZlNDk5OGZmMzA4ZjIxMWVhNDJhMzdlNWEzYmY0ZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXMu
bW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXMu
bW0KQEAgLTc4LDYgKzc4LDcgQEAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4K
IEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgIFtjb2RlciBlbmNvZGVCb29s
OnNlbGYudGFiRm9jdXNlc0xpbmtzIGZvcktleTpAInRhYkZvY3VzZXNMaW5rcyJdOwogI2VuZGlm
CisgICAgW2NvZGVyIGVuY29kZUJvb2w6c2VsZi50ZXh0SW50ZXJhY3Rpb25HZXN0dXJlc0VuYWJs
ZWQgZm9yS2V5OkAidGV4dEludGVyYWN0aW9uR2VzdHVyZXNFbmFibGVkIl07CiB9CiAKIC0gKGlu
c3RhbmNldHlwZSlpbml0V2l0aENvZGVyOihOU0NvZGVyICopY29kZXIKQEAgLTk5LDYgKzEwMCw3
IEBAIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiBBTExPV19ERVBSRUNBVEVE
X0RFQ0xBUkFUSU9OU19FTkQKICAgICBzZWxmLnRhYkZvY3VzZXNMaW5rcyA9IFtjb2RlciBkZWNv
ZGVCb29sRm9yS2V5OkAidGFiRm9jdXNlc0xpbmtzIl07CiAjZW5kaWYKKyAgICBzZWxmLnRleHRJ
bnRlcmFjdGlvbkdlc3R1cmVzRW5hYmxlZCA9IFtjb2RlciBkZWNvZGVCb29sRm9yS2V5OkAidGV4
dEludGVyYWN0aW9uR2VzdHVyZXNFbmFibGVkIl07CiAKICAgICByZXR1cm4gc2VsZjsKIH0KQEAg
LTEzOCw2ICsxNDAsMTYgQEAgLSAodm9pZClzZXRKYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRv
bWF0aWNhbGx5OihCT09MKWphdmFTY3JpcHRDYW5PcGVuV2luZG93c0EKICAgICBfcHJlZmVyZW5j
ZXMtPnNldEphdmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHkoamF2YVNjcmlwdENh
bk9wZW5XaW5kb3dzQXV0b21hdGljYWxseSk7CiB9CiAKKy0gKEJPT0wpdGV4dEludGVyYWN0aW9u
R2VzdHVyZXNFbmFibGVkCit7CisgICAgcmV0dXJuIF9wcmVmZXJlbmNlcy0+dGV4dEludGVyYWN0
aW9uR2VzdHVyZXNFbmFibGVkKCk7Cit9CisKKy0gKHZvaWQpc2V0VGV4dEludGVyYWN0aW9uR2Vz
dHVyZXNFbmFibGVkOihCT09MKXRleHRJbnRlcmFjdGlvbkdlc3R1cmVzRW5hYmxlZAoreworICAg
IF9wcmVmZXJlbmNlcy0+c2V0VGV4dEludGVyYWN0aW9uR2VzdHVyZXNFbmFibGVkKHRleHRJbnRl
cmFjdGlvbkdlc3R1cmVzRW5hYmxlZCk7Cit9CisKICNwcmFnbWEgbWFyayBPUyBYLXNwZWNpZmlj
IG1ldGhvZHMKIAogI2lmIFBMQVRGT1JNKE1BQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9uLm1tIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb24ubW0KaW5kZXgg
M2E5N2IwZDc2OTg5N2Y4NTBkMWRkMzUxNzViZGMwNWIyYzY1NmFjZS4uYTRhODg1MDJkNDY1ZmJk
ZjdmMWU2ZGFhYjMxMTQwMTFkZTFhMzg1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb24ubW0KKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb24ubW0KQEAgLTE0
Miw3ICsxNDIsOSBAQCBAaW1wbGVtZW50YXRpb24gV0tXZWJWaWV3Q29uZmlndXJhdGlvbiB7CiAg
ICAgQk9PTCBfaW5saW5lTWVkaWFQbGF5YmFja1JlcXVpcmVzUGxheXNJbmxpbmVBdHRyaWJ1dGU7
CiAgICAgQk9PTCBfYWxsb3dzSW5saW5lTWVkaWFQbGF5YmFja0FmdGVyRnVsbHNjcmVlbjsKICAg
ICBfV0tEcmFnTGlmdERlbGF5IF9kcmFnTGlmdERlbGF5OworICAgIEFMTE9XX0RFUFJFQ0FURURf
REVDTEFSQVRJT05TX0JFR0lOCiAgICAgQk9PTCBfdGV4dEludGVyYWN0aW9uR2VzdHVyZXNFbmFi
bGVkOworICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgIEJPT0wgX2xv
bmdQcmVzc0FjdGlvbnNFbmFibGVkOwogICAgIEJPT0wgX3N5c3RlbVByZXZpZXdFbmFibGVkOwog
ICAgIEJPT0wgX3Nob3VsZERlY2lkZVBvbGljeUJlZm9yZUxvYWRpbmdRdWlja0xvb2tQcmV2aWV3
OwpAQCAtMjQ3LDEwICsyNDksMTQgQEAgLSAoaW5zdGFuY2V0eXBlKWluaXQKICAgICBfc2VsZWN0
aW9uR3JhbnVsYXJpdHkgPSBXS1NlbGVjdGlvbkdyYW51bGFyaXR5RHluYW1pYzsKICAgICBfZHJh
Z0xpZnREZWxheSA9IHRvRHJhZ0xpZnREZWxheShbW05TVXNlckRlZmF1bHRzIHN0YW5kYXJkVXNl
ckRlZmF1bHRzXSBpbnRlZ2VyRm9yS2V5OkAiV2ViS2l0RGVidWdEcmFnTGlmdERlbGF5Il0pOwog
I2lmIFBMQVRGT1JNKFdBVENIT1MpCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNf
QkVHSU4KICAgICBfdGV4dEludGVyYWN0aW9uR2VzdHVyZXNFbmFibGVkID0gTk87CisgICAgQUxM
T1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgX2xvbmdQcmVzc0FjdGlvbnNFbmFi
bGVkID0gTk87CiAjZWxzZQorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lO
CiAgICAgX3RleHRJbnRlcmFjdGlvbkdlc3R1cmVzRW5hYmxlZCA9IFlFUzsKKyAgICBBTExPV19E
RVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICBfbG9uZ1ByZXNzQWN0aW9uc0VuYWJsZWQg
PSBZRVM7CiAjZW5kaWYKICAgICBfc3lzdGVtUHJldmlld0VuYWJsZWQgPSBOTzsKQEAgLTMwOSw3
ICszMTUsOSBAQCAtICh2b2lkKWVuY29kZVdpdGhDb2RlcjooTlNDb2RlciAqKWNvZGVyCiAgICAg
W2NvZGVyIGVuY29kZUJvb2w6c2VsZi5hbGxvd3NQaWN0dXJlSW5QaWN0dXJlTWVkaWFQbGF5YmFj
ayBmb3JLZXk6QCJhbGxvd3NQaWN0dXJlSW5QaWN0dXJlTWVkaWFQbGF5YmFjayJdOwogICAgIFtj
b2RlciBlbmNvZGVCb29sOnNlbGYuaWdub3Jlc1ZpZXdwb3J0U2NhbGVMaW1pdHMgZm9yS2V5OkAi
aWdub3Jlc1ZpZXdwb3J0U2NhbGVMaW1pdHMiXTsKICAgICBbY29kZXIgZW5jb2RlSW50ZWdlcjpz
ZWxmLl9kcmFnTGlmdERlbGF5IGZvcktleTpAImRyYWdMaWZ0RGVsYXkiXTsKKyAgICBBTExPV19E
RVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIFtjb2RlciBlbmNvZGVCb29sOnNlbGYu
X3RleHRJbnRlcmFjdGlvbkdlc3R1cmVzRW5hYmxlZCBmb3JLZXk6QCJ0ZXh0SW50ZXJhY3Rpb25H
ZXN0dXJlc0VuYWJsZWQiXTsKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQK
ICAgICBbY29kZXIgZW5jb2RlQm9vbDpzZWxmLl9sb25nUHJlc3NBY3Rpb25zRW5hYmxlZCBmb3JL
ZXk6QCJsb25nUHJlc3NBY3Rpb25zRW5hYmxlZCJdOwogICAgIFtjb2RlciBlbmNvZGVCb29sOnNl
bGYuX3N5c3RlbVByZXZpZXdFbmFibGVkIGZvcktleTpAInN5c3RlbVByZXZpZXdFbmFibGVkIl07
CiAgICAgW2NvZGVyIGVuY29kZUJvb2w6c2VsZi5fc2hvdWxkRGVjaWRlUG9saWN5QmVmb3JlTG9h
ZGluZ1F1aWNrTG9va1ByZXZpZXcgZm9yS2V5OkAic2hvdWxkRGVjaWRlUG9saWN5QmVmb3JlTG9h
ZGluZ1F1aWNrTG9va1ByZXZpZXciXTsKQEAgLTM0Nyw3ICszNTUsOSBAQCAtIChpbnN0YW5jZXR5
cGUpaW5pdFdpdGhDb2RlcjooTlNDb2RlciAqKWNvZGVyCiAgICAgc2VsZi5hbGxvd3NQaWN0dXJl
SW5QaWN0dXJlTWVkaWFQbGF5YmFjayA9IFtjb2RlciBkZWNvZGVCb29sRm9yS2V5OkAiYWxsb3dz
UGljdHVyZUluUGljdHVyZU1lZGlhUGxheWJhY2siXTsKICAgICBzZWxmLmlnbm9yZXNWaWV3cG9y
dFNjYWxlTGltaXRzID0gW2NvZGVyIGRlY29kZUJvb2xGb3JLZXk6QCJpZ25vcmVzVmlld3BvcnRT
Y2FsZUxpbWl0cyJdOwogICAgIHNlbGYuX2RyYWdMaWZ0RGVsYXkgPSB0b0RyYWdMaWZ0RGVsYXko
W2NvZGVyIGRlY29kZUludGVnZXJGb3JLZXk6QCJkcmFnTGlmdERlbGF5Il0pOworICAgIEFMTE9X
X0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgc2VsZi5fdGV4dEludGVyYWN0aW9u
R2VzdHVyZXNFbmFibGVkID0gW2NvZGVyIGRlY29kZUJvb2xGb3JLZXk6QCJ0ZXh0SW50ZXJhY3Rp
b25HZXN0dXJlc0VuYWJsZWQiXTsKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19F
TkQKICAgICBzZWxmLl9sb25nUHJlc3NBY3Rpb25zRW5hYmxlZCA9IFtjb2RlciBkZWNvZGVCb29s
Rm9yS2V5OkAibG9uZ1ByZXNzQWN0aW9uc0VuYWJsZWQiXTsKICAgICBzZWxmLl9zeXN0ZW1QcmV2
aWV3RW5hYmxlZCA9IFtjb2RlciBkZWNvZGVCb29sRm9yS2V5OkAic3lzdGVtUHJldmlld0VuYWJs
ZWQiXTsKICAgICBzZWxmLl9zaG91bGREZWNpZGVQb2xpY3lCZWZvcmVMb2FkaW5nUXVpY2tMb29r
UHJldmlldyA9IFtjb2RlciBkZWNvZGVCb29sRm9yS2V5OkAic2hvdWxkRGVjaWRlUG9saWN5QmVm
b3JlTG9hZGluZ1F1aWNrTG9va1ByZXZpZXciXTsKQEAgLTQwNiw3ICs0MTYsOSBAQCAtIChpZClj
b3B5V2l0aFpvbmU6KE5TWm9uZSAqKXpvbmUKICAgICBjb25maWd1cmF0aW9uLT5fc2VsZWN0aW9u
R3JhbnVsYXJpdHkgPSBzZWxmLT5fc2VsZWN0aW9uR3JhbnVsYXJpdHk7CiAgICAgY29uZmlndXJh
dGlvbi0+X2lnbm9yZXNWaWV3cG9ydFNjYWxlTGltaXRzID0gc2VsZi0+X2lnbm9yZXNWaWV3cG9y
dFNjYWxlTGltaXRzOwogICAgIGNvbmZpZ3VyYXRpb24tPl9kcmFnTGlmdERlbGF5ID0gc2VsZi0+
X2RyYWdMaWZ0RGVsYXk7CisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4K
ICAgICBjb25maWd1cmF0aW9uLT5fdGV4dEludGVyYWN0aW9uR2VzdHVyZXNFbmFibGVkID0gc2Vs
Zi0+X3RleHRJbnRlcmFjdGlvbkdlc3R1cmVzRW5hYmxlZDsKKyAgICBBTExPV19ERVBSRUNBVEVE
X0RFQ0xBUkFUSU9OU19FTkQKICAgICBjb25maWd1cmF0aW9uLT5fbG9uZ1ByZXNzQWN0aW9uc0Vu
YWJsZWQgPSBzZWxmLT5fbG9uZ1ByZXNzQWN0aW9uc0VuYWJsZWQ7CiAgICAgY29uZmlndXJhdGlv
bi0+X3N5c3RlbVByZXZpZXdFbmFibGVkID0gc2VsZi0+X3N5c3RlbVByZXZpZXdFbmFibGVkOwog
ICAgIGNvbmZpZ3VyYXRpb24tPl9zaG91bGREZWNpZGVQb2xpY3lCZWZvcmVMb2FkaW5nUXVpY2tM
b29rUHJldmlldyA9IHNlbGYtPl9zaG91bGREZWNpZGVQb2xpY3lCZWZvcmVMb2FkaW5nUXVpY2tM
b29rUHJldmlldzsKQEAgLTc1NywxNiArNzY5LDYgQEAgLSAodm9pZClfc2V0RHJhZ0xpZnREZWxh
eTooX1dLRHJhZ0xpZnREZWxheSlkcmFnTGlmdERlbGF5CiAgICAgX2RyYWdMaWZ0RGVsYXkgPSBk
cmFnTGlmdERlbGF5OwogfQogCi0tIChCT09MKV90ZXh0SW50ZXJhY3Rpb25HZXN0dXJlc0VuYWJs
ZWQKLXsKLSAgICByZXR1cm4gX3RleHRJbnRlcmFjdGlvbkdlc3R1cmVzRW5hYmxlZDsKLX0KLQot
LSAodm9pZClfc2V0VGV4dEludGVyYWN0aW9uR2VzdHVyZXNFbmFibGVkOihCT09MKWVuYWJsZWQK
LXsKLSAgICBfdGV4dEludGVyYWN0aW9uR2VzdHVyZXNFbmFibGVkID0gZW5hYmxlZDsKLX0KLQog
LSAoQk9PTClfbG9uZ1ByZXNzQWN0aW9uc0VuYWJsZWQKIHsKICAgICByZXR1cm4gX2xvbmdQcmVz
c0FjdGlvbnNFbmFibGVkOwpAQCAtMTI4MCw3ICsxMjgyLDIyIEBAIC0gKHZvaWQpc2V0UmVxdWly
ZXNVc2VyQWN0aW9uRm9yTWVkaWFQbGF5YmFjazooQk9PTClyZXF1aXJlc1VzZXJBY3Rpb25Gb3JN
ZWRpYVBsCiB7CiAgICAgc2VsZi5tZWRpYVR5cGVzUmVxdWlyaW5nVXNlckFjdGlvbkZvclBsYXli
YWNrID0gcmVxdWlyZXNVc2VyQWN0aW9uRm9yTWVkaWFQbGF5YmFjayA/IFdLQXVkaW92aXN1YWxN
ZWRpYVR5cGVBbGwgOiBXS0F1ZGlvdmlzdWFsTWVkaWFUeXBlTm9uZTsKIH0KKyNlbmRpZiAvLyBQ
TEFURk9STShJT1NfRkFNSUxZKQorCitAZW5kCisKK0BpbXBsZW1lbnRhdGlvbiBXS1dlYlZpZXdD
b25maWd1cmF0aW9uIChXS1ByaXZhdGVEZXByZWNhdGVkKQorCisjaWYgUExBVEZPUk0oSU9TX0ZB
TUlMWSkKKy0gKEJPT0wpX3RleHRJbnRlcmFjdGlvbkdlc3R1cmVzRW5hYmxlZAoreworICAgIHJl
dHVybiBfdGV4dEludGVyYWN0aW9uR2VzdHVyZXNFbmFibGVkOworfQogCistICh2b2lkKV9zZXRU
ZXh0SW50ZXJhY3Rpb25HZXN0dXJlc0VuYWJsZWQ6KEJPT0wpZW5hYmxlZAoreworICAgIF90ZXh0
SW50ZXJhY3Rpb25HZXN0dXJlc0VuYWJsZWQgPSBlbmFibGVkOworfQogI2VuZGlmIC8vIFBMQVRG
T1JNKElPU19GQU1JTFkpCiAKIEBlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9uUHJpdmF0ZS5oIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb25Qcml2YXRlLmgK
aW5kZXggM2Q5OTUxMzJjMTcxOGZlNTA5YzZhYTYxODVkNTAxYjE5NTM4NGViZi4uODZiOWNlYjJh
NzFmOGU4OGU4NTk1MDZiMDYxM2UzNzk3N2E0ODQwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb25Qcml2YXRlLmgKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRp
b25Qcml2YXRlLmgKQEAgLTg5LDcgKzg5LDYgQEAgdHlwZWRlZiBOU19FTlVNKE5TVUludGVnZXIs
IF9XS0RyYWdMaWZ0RGVsYXkpIHsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldElu
bGluZU1lZGlhUGxheWJhY2tSZXF1aXJlc1BsYXlzSW5saW5lQXR0cmlidXRlOikgQk9PTCBfaW5s
aW5lTWVkaWFQbGF5YmFja1JlcXVpcmVzUGxheXNJbmxpbmVBdHRyaWJ1dGUgV0tfQVBJX0FWQUlM
QUJMRShpb3MoMTAuMCkpOwogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0QWxsb3dz
SW5saW5lTWVkaWFQbGF5YmFja0FmdGVyRnVsbHNjcmVlbjopIEJPT0wgX2FsbG93c0lubGluZU1l
ZGlhUGxheWJhY2tBZnRlckZ1bGxzY3JlZW4gIFdLX0FQSV9BVkFJTEFCTEUoaW9zKDEwLjApKTsK
IEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldERyYWdMaWZ0RGVsYXk6KSBfV0tEcmFn
TGlmdERlbGF5IF9kcmFnTGlmdERlbGF5IFdLX0FQSV9BVkFJTEFCTEUoaW9zKDExLjApKTsKLUBw
cm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFRleHRJbnRlcmFjdGlvbkdlc3R1cmVzRW5h
YmxlZDopIEJPT0wgX3RleHRJbnRlcmFjdGlvbkdlc3R1cmVzRW5hYmxlZCBXS19BUElfQVZBSUxB
QkxFKGlvcygxMi4wKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRMb25nUHJl
c3NBY3Rpb25zRW5hYmxlZDopIEJPT0wgX2xvbmdQcmVzc0FjdGlvbnNFbmFibGVkIFdLX0FQSV9B
VkFJTEFCTEUoaW9zKDEyLjApKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFN5
c3RlbVByZXZpZXdFbmFibGVkOikgQk9PTCBfc3lzdGVtUHJldmlld0VuYWJsZWQgV0tfQVBJX0FW
QUlMQUJMRShpb3MoMTIuMCkpOwogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0U2hv
dWxkRGVjaWRlUG9saWN5QmVmb3JlTG9hZGluZ1F1aWNrTG9va1ByZXZpZXc6KSBCT09MIF9zaG91
bGREZWNpZGVQb2xpY3lCZWZvcmVMb2FkaW5nUXVpY2tMb29rUHJldmlldyBXS19BUElfQVZBSUxB
QkxFKGlvcygxMy4wKSk7CkBAIC0xMjMsMyArMTIyLDEzIEBAIHR5cGVkZWYgTlNfRU5VTShOU1VJ
bnRlZ2VyLCBfV0tEcmFnTGlmdERlbGF5KSB7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVy
PV9zZXRQcm9jZXNzRGlzcGxheU5hbWU6KSBOU1N0cmluZyAqX3Byb2Nlc3NEaXNwbGF5TmFtZSBX
S19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogCiBA
ZW5kCisKKyNpZiBUQVJHRVRfT1NfSVBIT05FCisKK0BpbnRlcmZhY2UgV0tXZWJWaWV3Q29uZmln
dXJhdGlvbiAoV0tQcml2YXRlRGVwcmVjYXRlZCkKKworQHByb3BlcnR5IChub25hdG9taWMsIHNl
dHRlcj1fc2V0VGV4dEludGVyYWN0aW9uR2VzdHVyZXNFbmFibGVkOikgQk9PTCBfdGV4dEludGVy
YWN0aW9uR2VzdHVyZXNFbmFibGVkIFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQo
IldLUHJlZmVyZW5jZXMudGV4dEludGVyYWN0aW9uR2VzdHVyZXNFbmFibGVkIiwgaW9zKDEyLjAs
IFdLX0lPU19UQkEpKTsKKworQGVuZAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuY3BwCmluZGV4IDZlZDFjNjljMDhmYzU1OWZlMmEzZjNiOTM5NTBlYTgyOGQ2
MGQ0YmYuLjBlMzYxM2FjYzU4Mzk5YzdmMzY3NmMxNjc4Y2VjM2ZjNjcxY2U4Y2QgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtNzk1Miw2ICs3OTUyLDggQEAg
V2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyBXZWJQYWdlUHJveHk6OmNyZWF0aW9uUGFyYW1ldGVy
cyhXZWJQcm9jZXNzUHJveHkmIHByb2MKICNpZiBFTkFCTEUoQVBQX0JPVU5EX0RPTUFJTlMpCiAg
ICAgcGFyYW1ldGVycy5uZWVkc0luQXBwQnJvd3NlclByaXZhY3lRdWlya3MgPSBwcmVmZXJlbmNl
cygpLm5lZWRzSW5BcHBCcm93c2VyUHJpdmFjeVF1aXJrcygpOwogI2VuZGlmCisgICAgCisgICAg
cGFyYW1ldGVycy50ZXh0SW50ZXJhY3Rpb25HZXN0dXJlc0VuYWJsZWQgPSBwcmVmZXJlbmNlcygp
LnRleHRJbnRlcmFjdGlvbkdlc3R1cmVzRW5hYmxlZCgpOwogCiAgICAgcmV0dXJuIHBhcmFtZXRl
cnM7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50
Vmlld0ludGVyYWN0aW9uLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVu
dFZpZXdJbnRlcmFjdGlvbi5tbQppbmRleCBiOThlODcxMTIxNzg0ODkxMzBlYWUxYzhiZTQ1NzU3
MmM1MTk1NjgzLi5jOTAwYzQxY2UxNWU3YWIxYzU5ZmU1NDNkZTUxZTE2ZmEwMDg0ZDNjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0
aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50
ZXJhY3Rpb24ubW0KQEAgLTI1MzIsOCArMjUzMiwxMyBAQCAtIChCT09MKWNhblNob3dOb25FbXB0
eVNlbGVjdGlvblZpZXcKIAogLSAoQk9PTCloYXNTZWxlY3RhYmxlUG9zaXRpb25BdFBvaW50OihD
R1BvaW50KXBvaW50CiB7CisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4K
ICAgICBpZiAoIXNlbGYud2ViVmlldy5jb25maWd1cmF0aW9uLl90ZXh0SW50ZXJhY3Rpb25HZXN0
dXJlc0VuYWJsZWQpCiAgICAgICAgIHJldHVybiBOTzsKKyAgICBBTExPV19ERVBSRUNBVEVEX0RF
Q0xBUkFUSU9OU19FTkQKKworICAgIGlmICghX3BhZ2UtPnByZWZlcmVuY2VzKCkudGV4dEludGVy
YWN0aW9uR2VzdHVyZXNFbmFibGVkKCkpCisgICAgICAgIHJldHVybiBOTzsKIAogICAgIGlmIChf
c3VwcHJlc3NTZWxlY3Rpb25Bc3Npc3RhbnRSZWFzb25zKQogICAgICAgICByZXR1cm4gTk87CkBA
IC0yNTUwLDkgKzI1NTUsMTQgQEAgLSAoQk9PTCloYXNTZWxlY3RhYmxlUG9zaXRpb25BdFBvaW50
OihDR1BvaW50KXBvaW50CiAKIC0gKEJPT0wpcG9pbnRJc05lYXJNYXJrZWRUZXh0OihDR1BvaW50
KXBvaW50CiB7CisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBp
ZiAoIXNlbGYud2ViVmlldy5jb25maWd1cmF0aW9uLl90ZXh0SW50ZXJhY3Rpb25HZXN0dXJlc0Vu
YWJsZWQpCiAgICAgICAgIHJldHVybiBOTzsKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFU
SU9OU19FTkQKIAorICAgIGlmICghX3BhZ2UtPnByZWZlcmVuY2VzKCkudGV4dEludGVyYWN0aW9u
R2VzdHVyZXNFbmFibGVkKCkpCisgICAgICAgIHJldHVybiBOTzsKKyAgICAKICAgICBpZiAoX3N1
cHByZXNzU2VsZWN0aW9uQXNzaXN0YW50UmVhc29ucykKICAgICAgICAgcmV0dXJuIE5POwogCkBA
IC0yNTY0LDkgKzI1NzQsMTQgQEAgLSAoQk9PTClwb2ludElzTmVhck1hcmtlZFRleHQ6KENHUG9p
bnQpcG9pbnQKIAogLSAoQk9PTCl0ZXh0SW50ZXJhY3Rpb25HZXN0dXJlOihVSVdLR2VzdHVyZVR5
cGUpZ2VzdHVyZSBzaG91bGRCZWdpbkF0UG9pbnQ6KENHUG9pbnQpcG9pbnQKIHsKKyAgICBBTExP
V19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIGlmICghc2VsZi53ZWJWaWV3LmNv
bmZpZ3VyYXRpb24uX3RleHRJbnRlcmFjdGlvbkdlc3R1cmVzRW5hYmxlZCkKICAgICAgICAgcmV0
dXJuIE5POworICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogCisgICAgaWYg
KCFfcGFnZS0+cHJlZmVyZW5jZXMoKS50ZXh0SW50ZXJhY3Rpb25HZXN0dXJlc0VuYWJsZWQoKSkK
KyAgICAgICAgcmV0dXJuIE5POworICAgIAogICAgIGlmIChfZG9tUGFzdGVSZXF1ZXN0SGFuZGxl
cikKICAgICAgICAgcmV0dXJuIE5POwogCkBAIC0zMjg1LDggKzMzMDAsMTMgQEAgLSAoVUlDb2xv
ciAqKXNlbGVjdGlvbkhpZ2hsaWdodENvbG9yCiAKIC0gKFVJQ29sb3IgKilfY2FzY2FkZUludGVy
YWN0aW9uVGludENvbG9yCiB7CisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVH
SU4KICAgICBpZiAoIXNlbGYud2ViVmlldy5jb25maWd1cmF0aW9uLl90ZXh0SW50ZXJhY3Rpb25H
ZXN0dXJlc0VuYWJsZWQpCiAgICAgICAgIHJldHVybiBbVUlDb2xvciBjbGVhckNvbG9yXTsKKyAg
ICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKKworICAgIGlmICghX3BhZ2UtPnBy
ZWZlcmVuY2VzKCkudGV4dEludGVyYWN0aW9uR2VzdHVyZXNFbmFibGVkKCkpCisgICAgICAgIHJl
dHVybiBbVUlDb2xvciBjbGVhckNvbG9yXTsKIAogICAgIGlmICghX3BhZ2UtPmVkaXRvclN0YXRl
KCkuaXNNaXNzaW5nUG9zdExheW91dERhdGEpIHsKICAgICAgICAgV2ViQ29yZTo6Q29sb3IgY2Fy
ZXRDb2xvciA9IF9wYWdlLT5lZGl0b3JTdGF0ZSgpLnBvc3RMYXlvdXREYXRhKCkuY2FyZXRDb2xv
cjsKQEAgLTM1NjgsNiArMzU4OCw5IEBAIC0gKHZvaWQpX3Bhc3RlQXNRdW90YXRpb25Gb3JXZWJW
aWV3OihpZClzZW5kZXIKIAogLSAodm9pZClzZWxlY3RGb3JXZWJWaWV3OihpZClzZW5kZXIKIHsK
KyAgICBpZiAoIV9wYWdlLT5wcmVmZXJlbmNlcygpLnRleHRJbnRlcmFjdGlvbkdlc3R1cmVzRW5h
YmxlZCgpKQorICAgICAgICByZXR1cm47CisKICAgICBbX3RleHRJbnRlcmFjdGlvbkFzc2lzdGFu
dCBzZWxlY3RXb3JkXTsKICAgICAvLyBXZSBjYW5ub3QgdXNlIHNlbGVjdFdvcmQgY29tbWFuZCwg
YmVjYXVzZSB3ZSB3YW50IHRvIGJlIGFibGUgdG8gc2VsZWN0IHRoZSB3b3JkIGV2ZW4gd2hlbiBp
dCBpcyB0aGUgbGFzdCBpbiB0aGUgcGFyYWdyYXBoLgogICAgIF9wYWdlLT5leHRlbmRTZWxlY3Rp
b24oV2ViQ29yZTo6VGV4dEdyYW51bGFyaXR5OjpXb3JkR3JhbnVsYXJpdHkpOwpAQCAtMzU3NSw2
ICszNTk4LDkgQEAgLSAodm9pZClzZWxlY3RGb3JXZWJWaWV3OihpZClzZW5kZXIKIAogLSAodm9p
ZClzZWxlY3RBbGxGb3JXZWJWaWV3OihpZClzZW5kZXIKIHsKKyAgICBpZiAoIV9wYWdlLT5wcmVm
ZXJlbmNlcygpLnRleHRJbnRlcmFjdGlvbkdlc3R1cmVzRW5hYmxlZCgpKQorICAgICAgICByZXR1
cm47CisKICAgICBbX3RleHRJbnRlcmFjdGlvbkFzc2lzdGFudCBzZWxlY3RBbGw6c2VuZGVyXTsK
ICAgICBfcGFnZS0+c2VsZWN0QWxsKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDNjMDU0ZTgzNDhlMDkyYzA5NDcwNzdmZGUxZWU5Mzk1
NDQ2YzFmMTEuLjI0YWNhYzA3NDY5MWJiNzNhYmJmZTRmOTk3NjNmYjc4Y2ZmZmU0YmQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC01NjcsNiAr
NTY3LDggQEAgV2ViUGFnZTo6V2ViUGFnZShQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYlBhZ2VD
cmVhdGlvblBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzKQogICAgIHBhZ2VDb25maWd1cmF0aW9uLmxv
YWRzRnJvbU5ldHdvcmsgPSBwYXJhbWV0ZXJzLmxvYWRzRnJvbU5ldHdvcms7CiAgICAgcGFnZUNv
bmZpZ3VyYXRpb24uc2hvdWxkUmVsYXhUaGlyZFBhcnR5Q29va2llQmxvY2tpbmcgPSBwYXJhbWV0
ZXJzLnNob3VsZFJlbGF4VGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nOwogCisgICAgcGFnZUNvbmZp
Z3VyYXRpb24udGV4dEludGVyYWN0aW9uR2VzdHVyZXNFbmFibGVkID0gcGFyYW1ldGVycy50ZXh0
SW50ZXJhY3Rpb25HZXN0dXJlc0VuYWJsZWQ7CisgICAgCiAgICAgaWYgKCFwYXJhbWV0ZXJzLmNy
b3NzT3JpZ2luQWNjZXNzQ29udHJvbENoZWNrRW5hYmxlZCkKICAgICAgICAgQ3Jvc3NPcmlnaW5B
Y2Nlc3NDb250cm9sQ2hlY2tEaXNhYmxlcjo6c2luZ2xldG9uKCkuc2V0Q3Jvc3NPcmlnaW5BY2Nl
c3NDb250cm9sQ2hlY2tFbmFibGVkKGZhbHNlKTsKIApAQCAtMzc5OCw2ICszODAwLDggQEAgdm9p
ZCBXZWJQYWdlOjp1cGRhdGVQcmVmZXJlbmNlcyhjb25zdCBXZWJQcmVmZXJlbmNlc1N0b3JlJiBz
dG9yZSkKICNpZiBFTkFCTEUoSVBDX1RFU1RJTkdfQVBJKQogICAgIG1faXBjVGVzdGluZ0FQSUVu
YWJsZWQgPSBzdG9yZS5nZXRCb29sVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OmlwY1Rl
c3RpbmdBUElFbmFibGVkS2V5KCkpOwogI2VuZGlmCisKKyAgICBtX3BhZ2UtPnNldFRleHRJbnRl
cmFjdGlvbkdlc3R1cmVzRW5hYmxlZChzdG9yZS5nZXRCb29sVmFsdWVGb3JLZXkoV2ViUHJlZmVy
ZW5jZXNLZXk6OnRleHRJbnRlcmFjdGlvbkdlc3R1cmVzRW5hYmxlZEtleSgpKSk7CiB9CiAKICNp
ZiBFTkFCTEUoREFUQV9ERVRFQ1RJT04pCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9U
b29scy9DaGFuZ2VMb2cKaW5kZXggNjAxZDg0ZDIxYTljMzJmODQyYTE2OWQzYzRhODk1ZTliYmU3
NDU3ZC4uYjQ1ZjA0YmUwZWEwOTcyZWYwMGNlYmY5ZDhhNmYyNmM4N2ZhZjczMSAxMDA2NDQKLS0t
IGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBA
CisyMDIwLTEyLTAyICBLYXRlIENoZW5leSAgPGthdGhlcmluZV9jaGVuZXlAYXBwbGUuY29tPgor
CisgICAgICAgIENyZWF0ZSBBUEkgdG8gZW5hYmxlL2Rpc2FibGUgdGV4dCBpbnRlcmFjdGlvbiBn
ZXN0dXJlcyBpbiBXS1dlYlZpZXcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIxNzc4NAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjM0MDYyNDE+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIEFQSSB0
ZXN0IGNvdmVyYWdlLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS90cnktdGV4dC1zZWxlY3Qtd2l0aC1kaXNhYmxlZC10ZXh0LWludGVyYWN0aW9u
Lmh0bWw6IEFkZGVkLgorCiAyMDIwLTExLTMwICBBYWthc2ggSmFpbiAgPGFha2FzaF9qYWluQGFw
cGxlLmNvbT4KIAogICAgICAgICBbYnVpbGQud2Via2l0Lm9yZ10gVXBkYXRlIFJ1blRlc3QyNjJU
ZXN0cyBzdGVwIGZvciBuZXcgYnVpbGRib3QKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMzEw
OTJjMjZlMzhlZDdjMTkwNzZlZjJlMjgzYmI3MDc4YTZkNDgzMS4uODlkNTA3Nzc5YjIyNGEyMGQ5
MzNlZjM2YTFkMjc2NDk4MmVkNmJhOCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTI3Myw2
ICsyNzMsOCBAQAogCQk0NkZBMkZFRTIzODQ2Q0E1MDAwQ0NCMEMgLyogSFRUUEhlYWRlck1hcC5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NkZBMkZF
RDIzODQ2QzlBMDAwQ0NCMEMgLyogSFRUUEhlYWRlck1hcC5jcHAgKi87IH07CiAJCTQ2RkFDRjc0
MjNFODg0MjMwMEE5RUJDNiAvKiBiZWZvcmV1bmxvYWQtc2xvdy5odG1sIGluIENvcHkgUmVzb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2RkFDRjczMjNFODgzRUUw
MEE5RUJDNiAvKiBiZWZvcmV1bmxvYWQtc2xvdy5odG1sICovOyB9OwogCQk0OTA5RUUzQTJEMDk0
ODBDODg5ODJENTYgLyogTWFya2FibGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRUM3OUYxNjhCRTQ1NEU1NzlFNDE3QjA1IC8qIE1hcmthYmxlLmNw
cCAqLzsgfTsKKwkJNDk1MkJFNUUyNTc4MTE1NjAwQjBBRUYxIC8qIFdLV2ViVmlld0Rpc2FibGVT
ZWxlY3Rpb24ubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA0OTUyQkU1RDI1NzgxMTU1MDBCMEFFRjEgLyogV0tXZWJWaWV3RGlzYWJsZVNlbGVjdGlvbi5t
bSAqLzsgfTsKKwkJNDk1MkJFNUYyNTc4MTZGODAwQjBBRUYxIC8qIHRyeS10ZXh0LXNlbGVjdC13
aXRoLWRpc2FibGVkLXRleHQtaW50ZXJhY3Rpb24uaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OTUyQkU1QzI1NzgxMTM5MDBCMEFFRjEg
LyogdHJ5LXRleHQtc2VsZWN0LXdpdGgtZGlzYWJsZWQtdGV4dC1pbnRlcmFjdGlvbi5odG1sICov
OyB9OwogCQk0OTcxQjExODI0NTFGMjlBMDA5Njk5NEQgLyogaW5jb3JyZWN0Q3JlYXRlVGFibGVT
Y2hlbWEuZGIgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNDk3MUIxMTcyNDUxRjI3ODAwOTY5OTREIC8qIGluY29ycmVjdENyZWF0ZVRhYmxlU2No
ZW1hLmRiICovOyB9OwogCQk0OTcxQjEyMDI0NTNBODhDMDA5Njk5NEQgLyogbWlzc2luZ1RvcEZy
YW1lVW5pcXVlUmVkaXJlY3RTYW1lU2l0ZVN0cmljdFRhYmxlU2NoZW1hLmRiIGluIENvcHkgUmVz
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5NzFCMTFGMjQ1M0E4
N0YwMDk2OTk0RCAvKiBtaXNzaW5nVG9wRnJhbWVVbmlxdWVSZWRpcmVjdFNhbWVTaXRlU3RyaWN0
VGFibGVTY2hlbWEuZGIgKi87IH07CiAJCTQ5NzFCMTJGMjQ2MjNBM0IwMDk2OTk0RCAvKiBiYXNp
Y0lUUERhdGFiYXNlLmRiLXNobSBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNDk3MUIxMkQyNDYyM0EzQjAwOTY5OTREIC8qIGJhc2ljSVRQRGF0YWJhc2Uu
ZGItc2htICovOyB9OwpAQCAtMTYzMiw2ICsxNjM0LDcgQEAKIAkJCQlGNDRDN0EwNTIwRkFBRTND
MDAxNDQ3OEMgLyogdGV4dC13aXRoLWRlZmVycmVkLXNjcmlwdC5odG1sIGluIENvcHkgUmVzb3Vy
Y2VzICovLAogCQkJCUY0MUFCOUFBMUVGNDY5NkIwMDgzRkEwOCAvKiB0ZXh0YXJlYS10by1pbnB1
dC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCUMyMkZBMzJEMjI4RjhBRUIwMDlENzk4
OCAvKiBUZXh0V2lkdGguaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKKwkJCQk0OTUyQkU1RjI1
NzgxNkY4MDBCMEFFRjEgLyogdHJ5LXRleHQtc2VsZWN0LXdpdGgtZGlzYWJsZWQtdGV4dC1pbnRl
cmFjdGlvbi5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCUY0NDUxQzc2MUVCOEZEODkw
MDIwQzVEQSAvKiB0d28tcGFyYWdyYXBoLWNvbnRlbnRlZGl0YWJsZS5odG1sIGluIENvcHkgUmVz
b3VyY2VzICovLAogCQkJCTFENjdCRkREMjQzM0VFNjYwMDZCNTA0NyAvKiB0d28tdmlkZW9zLmh0
bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJQzU0MEY3ODQxNTJFNUE5QTAwQTQwQzhDIC8q
IHZlcmJvc2VNYXJrdXAuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKQEAgLTIwMDIsNiArMjAw
NSw4IEBACiAJCTQ2RjAzQzFCMjU1QjJEMzYwMEFBNTFDNSAvKiBhdWRpby1jb250ZXh0LXBsYXlp
bmcuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJhdWRpby1jb250ZXh0LXBsYXlp
bmcuaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2RkEyRkVEMjM4NDZDOUEw
MDBDQ0IwQyAvKiBIVFRQSGVhZGVyTWFwLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEhUVFBIZWFkZXJNYXAuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk0NkZBQ0Y3MzIzRTg4M0VFMDBBOUVCQzYgLyogYmVmb3JldW5sb2FkLXNsb3cuaHRtbCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJiZWZvcmV1bmxvYWQtc2xvdy5odG1sIjsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDk1MkJFNUMyNTc4MTEzOTAwQjBBRUYxIC8qIHRyeS10
ZXh0LXNlbGVjdC13aXRoLWRpc2FibGVkLXRleHQtaW50ZXJhY3Rpb24uaHRtbCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQuaHRtbDsgcGF0aCA9ICJ0cnktdGV4dC1zZWxlY3Qtd2l0aC1kaXNhYmxlZC10ZXh0LWlu
dGVyYWN0aW9uLmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0OTUyQkU1RDI1
NzgxMTU1MDBCMEFFRjEgLyogV0tXZWJWaWV3RGlzYWJsZVNlbGVjdGlvbi5tbSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdLV2ViVmlld0Rpc2FibGVTZWxlY3Rpb24u
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ5NzFCMTE3MjQ1MUYyNzgwMDk2OTk0
RCAvKiBpbmNvcnJlY3RDcmVhdGVUYWJsZVNjaGVtYS5kYiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IGZpbGU7IHBhdGggPSBpbmNvcnJlY3RDcmVhdGVU
YWJsZVNjaGVtYS5kYjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDk3MUIxMUYyNDUz
QTg3RjAwOTY5OTREIC8qIG1pc3NpbmdUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0U2FtZVNpdGVTdHJp
Y3RUYWJsZVNjaGVtYS5kYiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IGZpbGU7IG5hbWUgPSBtaXNzaW5nVG9wRnJhbWVVbmlxdWVSZWRpcmVjdFNhbWVT
aXRlU3RyaWN0VGFibGVTY2hlbWEuZGI7IHBhdGggPSBUZXN0cy9XZWJLaXRDb2NvYS9taXNzaW5n
VG9wRnJhbWVVbmlxdWVSZWRpcmVjdFNhbWVTaXRlU3RyaWN0VGFibGVTY2hlbWEuZGI7IHNvdXJj
ZVRyZWUgPSBTT1VSQ0VfUk9PVDsgfTsKIAkJNDk3MUIxMkMyNDYyMzlEMzAwOTY5OTREIC8qIGJh
c2ljSVRQRGF0YWJhc2UuZGIgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBmaWxlOyBwYXRoID0gYmFzaWNJVFBEYXRhYmFzZS5kYjsgc291cmNlVHJlZSA9
IFNPVVJDRV9ST09UOyB9OwpAQCAtMzQ1Myw2ICszNDU4LDcgQEAKIAkJCQk1Q0IzQ0UzODFGQTE2
OTE3MDBDM0EyRDYgLyogV0tXZWJWaWV3Q29uZmlndXJhdGlvbi5tbSAqLywKIAkJCQk3QzQxN0Yz
MTFEMTlFMTQ4MDBCOEVGNTMgLyogV0tXZWJWaWV3RGVmYXVsdE5hdmlnYXRpb25EZWxlZ2F0ZS5t
bSAqLywKIAkJCQk0NkU2NkE4RjFGMEQ3NTU5MDAyNkQ4M0MgLyogV0tXZWJWaWV3RGlhZ25vc3Rp
Y0xvZ2dpbmcubW0gKi8sCisJCQkJNDk1MkJFNUQyNTc4MTE1NTAwQjBBRUYxIC8qIFdLV2ViVmll
d0Rpc2FibGVTZWxlY3Rpb24ubW0gKi8sCiAJCQkJMkRCNjQ3ODcxRjQxNjFGNzAwNTFBODlFIC8q
IFdLV2ViVmlld0RvZXNOb3RMb2dEdXJpbmdJbml0aWFsaXphdGlvbi5tbSAqLywKIAkJCQlGNDgx
MUU1ODIxOTQwQjQ0MDBBNUUwRkQgLyogV0tXZWJWaWV3RWRpdEFjdGlvbnMubW0gKi8sCiAJCQkJ
MEYzQjk0QTUxQTc3MjY2QzAwREUzMjcyIC8qIFdLV2ViVmlld0V2YWx1YXRlSmF2YVNjcmlwdC5t
bSAqLywKQEAgLTM5MjUsNiArMzkzMSw3IEBACiAJCQkJRjQ0QzdBMDQyMEZBQUUzMjAwMTQ0NzhD
IC8qIHRleHQtd2l0aC1kZWZlcnJlZC1zY3JpcHQuaHRtbCAqLywKIAkJCQlGNDFBQjk5NTFFRjQ2
OTJDMDA4M0ZBMDggLyogdGV4dGFyZWEtdG8taW5wdXQuaHRtbCAqLywKIAkJCQlDMjJGQTMyQzIy
OEY4NzdBMDA5RDc5ODggLyogVGV4dFdpZHRoLmh0bWwgKi8sCisJCQkJNDk1MkJFNUMyNTc4MTEz
OTAwQjBBRUYxIC8qIHRyeS10ZXh0LXNlbGVjdC13aXRoLWRpc2FibGVkLXRleHQtaW50ZXJhY3Rp
b24uaHRtbCAqLywKIAkJCQlGNDQ1MUM3NTFFQjhGRDdDMDAyMEM1REEgLyogdHdvLXBhcmFncmFw
aC1jb250ZW50ZWRpdGFibGUuaHRtbCAqLywKIAkJCQlDRDU3Nzc5QjIxMUNFNkNFMDAxQjM3MUUg
LyogdmlkZW8td2l0aC1hdWRpby1hbmQtd2ViLWF1ZGlvLmh0bWwgKi8sCiAJCQkJQ0Q1Nzc3OTgy
MTFDREU4RjAwMUIzNzFFIC8qIHdlYi1hdWRpby1vbmx5Lmh0bWwgKi8sCkBAIC01NjUyLDYgKzU2
NTksNyBAQAogCQkJCTU3OTdGRTMxMUVCMTVBNjgwMEIyRjRBMCAvKiBOYXZpZ2F0aW9uQ2xpZW50
RGVmYXVsdENyeXB0by5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDRENGRkVDMTIyRTI2QTE1MDBE
RjQyMjMgLyogTm9QYXVzZVdoZW5Td2l0Y2hpbmdUYWJzLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJ
N0FEM0ZFOEUxRDc2MTMxMjAwQjE2OUE0IC8qIFRyYW5zZm9ybWF0aW9uTWF0cml4LmNwcCBpbiBT
b3VyY2VzICovLAorCQkJCTQ5NTJCRTVFMjU3ODExNTYwMEIwQUVGMSAvKiBXS1dlYlZpZXdEaXNh
YmxlU2VsZWN0aW9uLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxv
eW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLV2ViVmlld0Rpc2FibGVTZWxlY3Rpb24ubW0gYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLV2ViVmlld0Rpc2FibGVTZWxl
Y3Rpb24ubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uYTk3OTJjMzI0MWI1ZmQ0YTFhMzBmZTE1NDg0OTJjYTFmYzJj
NjE4MgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Q29jb2EvV0tXZWJWaWV3RGlzYWJsZVNlbGVjdGlvbi5tbQpAQCAtMCwwICsxLDEyNSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorCisjaW1wb3J0ICJUZXN0V0tXZWJWaWV3Lmgi
CisjaW1wb3J0IDxXZWJLaXQvV0tXZWJWaWV3UHJpdmF0ZS5oPgorI2ltcG9ydCA8V2ViS2l0L1dL
V2ViVmlld1ByaXZhdGVGb3JUZXN0aW5nLmg+CisjaW1wb3J0IDx3dGYvQmxvY2tQdHIuaD4KKyNp
bXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KKworI2lmIFBMQVRGT1JNKE1BQykKKworVEVTVChXS1dl
YlZpZXdEaXNhYmxlU2VsZWN0aW9uLCBEb3VibGVDbGlja0RvZXNOb3RTZWxlY3RXaGVuVGV4dElu
dGVyYWN0aW9uc0FyZURpc2FibGVkKQoreworICAgIFJldGFpblB0cjxUZXN0V0tXZWJWaWV3PiB3
ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNN
YWtlUmVjdCgwLCAwLCA0MDAsIDQwMCldKTsKKyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9h
ZFRlc3RQYWdlTmFtZWQ6QCJ0cnktdGV4dC1zZWxlY3Qtd2l0aC1kaXNhYmxlZC10ZXh0LWludGVy
YWN0aW9uIl07CisKKyAgICBbd2ViVmlldyBzZW5kQ2xpY2tzQXRQb2ludDpOU01ha2VQb2ludCgy
MDAsIDIwMCkgbnVtYmVyT2ZDbGlja3M6Ml07CisgICAgW3dlYlZpZXcgd2FpdEZvclBlbmRpbmdN
b3VzZUV2ZW50c107CisKKyAgICBOU1N0cmluZyAqc2VsZWN0ZWRUZXh0ID0gW3dlYlZpZXcgc3Ry
aW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImdldFNlbGVjdGlvbigpLmdldFJhbmdlQXQoMCku
dG9TdHJpbmcoKSJdOworICAgIEVYUEVDVF9TVFJFUSgiSGVsbG8iLCBzZWxlY3RlZFRleHQuVVRG
OFN0cmluZyk7CisKKyAgICAvLyBDbGVhciB0aGUgc2VsZWN0aW9uIGJ5IGNsaWNraW5nIG9uY2Uu
CisgICAgW3dlYlZpZXcgc2VuZENsaWNrc0F0UG9pbnQ6TlNNYWtlUG9pbnQoMjAwLCAyMDApIG51
bWJlck9mQ2xpY2tzOjFdOworICAgIFt3ZWJWaWV3IHdhaXRGb3JQZW5kaW5nTW91c2VFdmVudHNd
OworCisgICAgLy8gRGlzYWJsZSB0ZXh0IHNlbGVjdGlvbiB0aGVuIGRvdWJsZSBjbGljayBhZ2Fp
bi4gVGhpcyBzaG91bGQgcmVzdWx0IGluIG5vIHRleHQgc2VsZWN0ZWQuCisgICAgW3dlYlZpZXcg
Y29uZmlndXJhdGlvbl0ucHJlZmVyZW5jZXMudGV4dEludGVyYWN0aW9uR2VzdHVyZXNFbmFibGVk
ID0gTk87CisKKyAgICBbd2ViVmlldyBzZW5kQ2xpY2tzQXRQb2ludDpOU01ha2VQb2ludCgyMDAs
IDIwMCkgbnVtYmVyT2ZDbGlja3M6Ml07CisgICAgW3dlYlZpZXcgd2FpdEZvclBlbmRpbmdNb3Vz
ZUV2ZW50c107CisKKyAgICBOU1N0cmluZyAqc2VsZWN0ZWRUZXh0MiA9IFt3ZWJWaWV3IHN0cmlu
Z0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJnZXRTZWxlY3Rpb24oKS5nZXRSYW5nZUF0KDApLnRv
U3RyaW5nKCkiXTsKKyAgICBFWFBFQ1RfU1RSRVEoIiIsIHNlbGVjdGVkVGV4dDIuVVRGOFN0cmlu
Zyk7Cit9CisKK3N0YXRpYyBOU1N0cmluZyAqY2xpY2tBbmREcmFnVG9TZWxlY3RUZXh0KFRlc3RX
S1dlYlZpZXcgKndlYlZpZXcpCit7CisgICAgW3dlYlZpZXcgbW91c2VFbnRlckF0UG9pbnQ6Q0dQ
b2ludE1ha2UoMTUwLCAyMDApXTsKKyAgICBbd2ViVmlldyBtb3VzZU1vdmVUb1BvaW50OkNHUG9p
bnRNYWtlKDE1MCwgMjAwKSB3aXRoRmxhZ3M6MF07CisgICAgW3dlYlZpZXcgbW91c2VEb3duQXRQ
b2ludDpDR1BvaW50TWFrZSgxNTAsIDIwMCkgc2ltdWxhdGVQcmVzc3VyZTpOT107CisgICAgW3dl
YlZpZXcgd2FpdEZvclBlbmRpbmdNb3VzZUV2ZW50c107CisKKyAgICBbd2ViVmlldyBtb3VzZURy
YWdUb1BvaW50OkNHUG9pbnRNYWtlKDkwMCwgMjAwKV07CisgICAgW3dlYlZpZXcgd2FpdEZvclBl
bmRpbmdNb3VzZUV2ZW50c107CisKKyAgICBbd2ViVmlldyBtb3VzZVVwQXRQb2ludDpDR1BvaW50
TWFrZSg5MDAsIDIwMCldOworICAgIFt3ZWJWaWV3IHdhaXRGb3JQZW5kaW5nTW91c2VFdmVudHNd
OworICAgIAorICAgIHJldHVybiBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0
OkAiZ2V0U2VsZWN0aW9uKCkuZ2V0UmFuZ2VBdCgwKS50b1N0cmluZygpIl07Cit9CisKK1RFU1Qo
V0tXZWJWaWV3RGlzYWJsZVNlbGVjdGlvbiwgRHJhZ0RvZXNOb3RTZWxlY3RXaGVuVGV4dEludGVy
YWN0aW9uc0FyZURpc2FibGVkKQoreworICAgIFJldGFpblB0cjxUZXN0V0tXZWJWaWV3PiB3ZWJW
aWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtl
UmVjdCgwLCAwLCAxMDAwLCA0MDApXSk7CisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRU
ZXN0UGFnZU5hbWVkOkAidHJ5LXRleHQtc2VsZWN0LXdpdGgtZGlzYWJsZWQtdGV4dC1pbnRlcmFj
dGlvbiJdOworCisgICAgTlNTdHJpbmcgKnNlbGVjdGVkVGV4dCA9IGNsaWNrQW5kRHJhZ1RvU2Vs
ZWN0VGV4dCh3ZWJWaWV3LmdldCgpKTsKKyAgICBFWFBFQ1RfU1RSRVEoIkhlbGxvIiwgc2VsZWN0
ZWRUZXh0LlVURjhTdHJpbmcpOworICAgIAorICAgIC8vIENsZWFyIHRoZSBzZWxlY3Rpb24gYnkg
Y2xpY2tpbmcgb25jZS4KKyAgICBbd2ViVmlldyBzZW5kQ2xpY2tzQXRQb2ludDpOU01ha2VQb2lu
dCgyMDAsIDIwMCkgbnVtYmVyT2ZDbGlja3M6MV07CisgICAgW3dlYlZpZXcgd2FpdEZvclBlbmRp
bmdNb3VzZUV2ZW50c107CisgICAgCisgICAgLy8gRGlzYWJsZSB0ZXh0IHNlbGVjdGlvbiB0aGVu
IGNsaWNrIGFuZCBkcmFnIGFnYWluLiBUaGlzIHNob3VsZCByZXN1bHQgaW4gbm8gdGV4dCBzZWxl
Y3RlZC4KKyAgICBbd2ViVmlldyBjb25maWd1cmF0aW9uXS5wcmVmZXJlbmNlcy50ZXh0SW50ZXJh
Y3Rpb25HZXN0dXJlc0VuYWJsZWQgPSBOTzsKKworICAgIE5TU3RyaW5nICpzZWxlY3RlZFRleHQy
ID0gY2xpY2tBbmREcmFnVG9TZWxlY3RUZXh0KHdlYlZpZXcuZ2V0KCkpOworICAgIEVYUEVDVF9T
VFJFUSgiIiwgc2VsZWN0ZWRUZXh0Mi5VVEY4U3RyaW5nKTsKK30KKworI2VuZGlmIC8vIFBMQVRG
T1JNKE1BQykKKworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisKK1RFU1QoV0tXZWJWaWV3RGlz
YWJsZVNlbGVjdGlvbiwgQ2Fubm90U2VsZWN0V2hlblRleHRJbnRlcmFjdGlvbnNBcmVEaXNhYmxl
ZCkKK3sKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10g
aW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDQwMCwgNDAwKV0pOworICAgIFt3ZWJWaWV3
IHN5bmNocm9ub3VzbHlMb2FkSFRNTFN0cmluZzpAIjxkaXY+V2ViS2l0PC9kaXY+Il07CisgICAg
W3dlYlZpZXcgX3NldEVkaXRhYmxlOllFU107CisgICAgW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0
aW5nSmF2YVNjcmlwdDpAImdldFNlbGVjdGlvbigpLnNldFBvc2l0aW9uKGRvY3VtZW50LmJvZHks
IDEpIl07CisKKyAgICBbd2ViVmlldyBzZWxlY3RBbGw6bmlsXTsKKworICAgIE5TU3RyaW5nICpz
ZWxlY3RlZFRleHQgPSBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAiZ2V0
U2VsZWN0aW9uKCkudG9TdHJpbmcoKSJdOworICAgIEVYUEVDVF9TVFJFUSgiV2ViS2l0Iiwgc2Vs
ZWN0ZWRUZXh0LlVURjhTdHJpbmcpOworCisgICAgLy8gQ2xlYXIgdGhlIHNlbGVjdGlvbi4KKyAg
ICBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAiZ2V0U2VsZWN0aW9uKCku
cmVtb3ZlQWxsUmFuZ2VzKCkiXTsKKworICAgIC8vIERpc2FibGUgdGV4dCBzZWxlY3Rpb24gdGhl
biB0cnkgdG8gc2VsZWN0IGFnYWluLiBUaGlzIHNob3VsZCByZXN1bHQgaW4gbm8gdGV4dCBzZWxl
Y3RlZC4KKyAgICBbd2ViVmlldyBjb25maWd1cmF0aW9uXS5wcmVmZXJlbmNlcy50ZXh0SW50ZXJh
Y3Rpb25HZXN0dXJlc0VuYWJsZWQgPSBOTzsKKyAgICAKKyAgICBbd2ViVmlldyBzZWxlY3RBbGw6
bmlsXTsKKworICAgIE5TU3RyaW5nICpzZWxlY3RlZFRleHQyID0gW3dlYlZpZXcgc3RyaW5nQnlF
dmFsdWF0aW5nSmF2YVNjcmlwdDpAImdldFNlbGVjdGlvbigpLnRvU3RyaW5nKCkiXTsKKyAgICBF
WFBFQ1RfU1RSRVEoIiIsIHNlbGVjdGVkVGV4dDIuVVRGOFN0cmluZyk7CisKK30KKworI2VuZGlm
IC8vIFBMQVRGT1JNKElPU19GQU1JTFkpCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL3RyeS10ZXh0LXNlbGVjdC13aXRoLWRpc2FibGVkLXRleHQtaW50
ZXJhY3Rpb24uaHRtbCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvdHJ5
LXRleHQtc2VsZWN0LXdpdGgtZGlzYWJsZWQtdGV4dC1pbnRlcmFjdGlvbi5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmVjYzFiMjNmMDNlNWJmOTU4ZjM1ZTFmYTFiNTgzNDg1ZmJlNDAzZGQKLS0tIC9kZXYvbnVs
bAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL3RyeS10ZXh0LXNl
bGVjdC13aXRoLWRpc2FibGVkLXRleHQtaW50ZXJhY3Rpb24uaHRtbApAQCAtMCwwICsxLDE1IEBA
Cis8c3R5bGU+Citib2R5IHsKKyAgICB3aWR0aDogMTAwJTsKKyAgICBoZWlnaHQ6IDEwMCU7Cit9
CisKKyNlZGl0YWJsZSB7CisgICAgd2lkdGg6IDEwMCU7CisgICAgaGVpZ2h0OiA0MDBweDsKKyAg
ICBmb250LXNpemU6IDQwMHB4OworICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CisgICAgYm9yZGVy
OiAxcHggYmx1ZSBkYXNoZWQ7Cit9Cis8L3N0eWxlPgorPGRpdiBpZD0iZWRpdGFibGUiIGNvbnRl
bnRlZGl0YWJsZT5IZWxsbyB3b3JsZDwvZGl2Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>415253</attachid>
            <date>2020-12-02 14:32:33 -0800</date>
            <delta_ts>2020-12-02 15:56:51 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217784-20201202143232.patch</filename>
            <type>text/plain</type>
            <size>48985</size>
            <attacher name="Kate Cheney">katherine_cheney</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwMjQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDhmODE0MTZkNDI4ZDQ0N2ZlYzI1YzE1
NzBkNTM3Y2ZjMGI1Y2EyY2IuLjg0MjJmNzdiZjEzMjg2MjJkMjViM2ExNWUwOGU5Y2NiZDhlMWMx
NWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjAtMTItMDIgIEthdGUgQ2hlbmV5ICA8a2F0aGVy
aW5lX2NoZW5leUBhcHBsZS5jb20+CisKKyAgICAgICAgQ3JlYXRlIEFQSSB0byBlbmFibGUvZGlz
YWJsZSB0ZXh0IGludGVyYWN0aW9uIGdlc3R1cmVzIGluIFdLV2ViVmlldworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3Nzg0CisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS82MzQwNjI0MT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBDcmVhdGUgbmV3IFdLUHJlZmVyZW5jZS4gU2VlIFdlYktpdCBDaGFuZ2Vs
b2cgZm9yIGRldGFpbHMuCisKKyAgICAgICAgKiBTY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZl
cmVuY2VzLnlhbWw6CisKIDIwMjAtMTEtMjggIFBlciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBw
bGUuY29tPgogCiAgICAgICAgIFttYWNPU10gU2V0IGFwcGxpY2F0aW9uIGluZm9ybWF0aW9uIGlu
IHRoZSBOZXR3b3JraW5nIHByb2Nlc3Mgb24gYmVoYWxmIG9mIHRoZSBXZWJDb250ZW50IHByb2Nl
c3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZwppbmRleCA3MTAwMDFiYzViYzQxNWQzNjVhMDRlODBiMDRlNTFlY2Q2YjA0YWE5
Li41NTkzMjIxOWNiOTcxMGMyOTgzMmIxNjA0MTlmZDI3YTc5NTZkNjM2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMzkgQEAKKzIwMjAtMTItMDIgIEthdGUgQ2hlbmV5ICA8a2F0aGVyaW5lX2NoZW5l
eUBhcHBsZS5jb20+CisKKyAgICAgICAgQ3JlYXRlIEFQSSB0byBlbmFibGUvZGlzYWJsZSB0ZXh0
IGludGVyYWN0aW9uIGdlc3R1cmVzIGluIFdLV2ViVmlldworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3Nzg0CisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS82MzQwNjI0MT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBBZGQgQVBJIHRvIGRpc2FibGUgdGV4dCBzZWxlY3Rpb24gZm9yIG1hY09TLgorCisgICAg
ICAgICogcGFnZS9FdmVudEhhbmRsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5k
bGVyOjpzZWxlY3RDbG9zZXN0V29yZEZyb21Nb3VzZUV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6
OkV2ZW50SGFuZGxlcjo6c2VsZWN0Q2xvc2VzdENvbnRleHR1YWxXb3JkT3JMaW5rRnJvbU1vdXNl
RXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpoYW5kbGVNb3VzZVByZXNz
RXZlbnREb3VibGVDbGljayk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmhhbmRs
ZU1vdXNlUHJlc3NFdmVudFRyaXBsZUNsaWNrKToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFu
ZGxlcjo6aGFuZGxlTW91c2VQcmVzc0V2ZW50U2luZ2xlQ2xpY2spOgorICAgICAgICAoV2ViQ29y
ZTo6RXZlbnRIYW5kbGVyOjptb3VzZURvd25NYXlTdGFydFNlbGVjdCk6CisgICAgICAgIENyZWF0
ZSBhIG5ldyBmdW5jdGlvbiB0byByZXR1cm4gd2hldGhlciBhIGNsaWNrIHJlc3VsdHMgaW4gYQor
ICAgICAgICBzZWxlY3Rpb24uIEl0IHdpbGwgYWx3YXlzIHJldHVybiBmYWxzZSBpZiB0ZXh0IGlu
dGVyYWN0aW9uIGlzIGRpc2FibGVkLgorCisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6
OmhhbmRsZU1vdXNlUHJlc3NFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6
OmhhbmRsZU1vdXNlRHJhZ2dlZEV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxl
cjo6dXBkYXRlU2VsZWN0aW9uRm9yTW91c2VEcmFnKToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50
SGFuZGxlcjo6c2VsZWN0Q3Vyc29yKToKKyAgICAgICAgKiBwYWdlL0V2ZW50SGFuZGxlci5oOgor
ICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjptX3RleHRJbnRlcmFj
dGlvbkdlc3R1cmVzRW5hYmxlZCk6CisgICAgICAgIChXZWJDb3JlOjptX3Nob3VsZFJlbGF4VGhp
cmRQYXJ0eUNvb2tpZUJsb2NraW5nKTogRGVsZXRlZC4KKyAgICAgICAgKiBwYWdlL1BhZ2UuaDoK
KyAgICAgICAgU3RvcmUgdGhlIHRleHRJbnRlcmFjdGlvbkdlc3R1cmVzRW5hYmxlZCB2YWx1ZSBp
biB0aGUgUGFnZSBzbyBpdCBpcworICAgICAgICBhY2Nlc3NpYmxlIGZyb20gdGhlIEV2ZW50SGFu
ZGxlci4KKworICAgICAgICAoV2ViQ29yZTo6UGFnZTo6dGV4dEludGVyYWN0aW9uR2VzdHVyZXNF
bmFibGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OnNldFRleHRJbnRlcmFjdGlvbkdlc3R1
cmVzRW5hYmxlZCk6CisgICAgICAgICogcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5oOgorCiAyMDIw
LTExLTMwICBBZGl0eWEgS2VlcnRoaSAgPGFrZWVydGhpQGFwcGxlLmNvbT4KIAogICAgICAgICBV
c2UgcmVhbCBkYXRlcyBhbmQgdGltZXMgYXMgcGxhY2Vob2xkZXJzIGZvciBkYXRlL3RpbWUgaW5w
dXRzIHdpdGggZWRpdGFibGUgY29tcG9uZW50cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBiMTYwYTI1MTdjOTM0ODFh
ODdjNjIyODRmNjg4ZDIzMzQzYWM4YTJmLi5iNjRhYjU4ZDYxMmJkMDE4NTVlMmY1YTExYmNkYTgw
NDJkYTMxOTFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDYwIEBACisyMDIwLTEyLTAyICBLYXRlIENo
ZW5leSAgPGthdGhlcmluZV9jaGVuZXlAYXBwbGUuY29tPgorCisgICAgICAgIENyZWF0ZSBBUEkg
dG8gZW5hYmxlL2Rpc2FibGUgdGV4dCBpbnRlcmFjdGlvbiBnZXN0dXJlcyBpbiBXS1dlYlZpZXcK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzc4NAor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjM0MDYyNDE+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ3JlYXRlIGEgbmV3IEFQSSB0byBkaXNhYmxlIHRl
eHQgaW50ZXJhY3Rpb24gZ2VzdHVyZXMgaW4gYSBXS1dlYlZpZXcuCisgICAgICAgIFdlIGhhdmUg
U1BJIGZvciB0aGlzIGZvciBpT1MsIGJ1dCBpdCBjb3VsZCBiZSB1c2VmdWwgdG8gb3RoZXIgV2Vi
S2l0CisgICAgICAgIGNsaWVudHMgYW5kIG9uIG1hY09TLiBBZGQgdGhlIEFQSSB0byBXS1ByZWZl
cmVuY2VzLCBpbnN0ZWFkIG9mCisgICAgICAgIFdLV2ViVmlld0NvbmZpZ3VyYXRpb24sIHNvIGl0
IGNhbiBiZSBjaGFuZ2VkIG9uIHRoZSBmbHkuCisKKyAgICAgICAgRGVwcmVjYXRlIHRoZSBTUEku
CisKKyAgICAgICAgKiBTaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZSBjb25zdCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZSk6CisgICAg
ICAgICogU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHA6CisgICAgICAgIChXS1ByZWZlcmVuY2VzU2V0
VGV4dEludGVyYWN0aW9uR2VzdHVyZXNFbmFibGVkKToKKyAgICAgICAgKFdLUHJlZmVyZW5jZXNH
ZXRUZXh0SW50ZXJhY3Rpb25HZXN0dXJlc0VuYWJsZWQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQy9XS1ByZWZlcmVuY2VzUmVmUHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tQcmVmZXJlbmNlcy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQ
cmVmZXJlbmNlcy5tbToKKyAgICAgICAgKC1bV0tQcmVmZXJlbmNlcyBlbmNvZGVXaXRoQ29kZXI6
XSk6CisgICAgICAgICgtW1dLUHJlZmVyZW5jZXMgaW5pdFdpdGhDb2RlcjpdKToKKyAgICAgICAg
KC1bV0tQcmVmZXJlbmNlcyB0ZXh0SW50ZXJhY3Rpb25HZXN0dXJlc0VuYWJsZWRdKToKKyAgICAg
ICAgKC1bV0tQcmVmZXJlbmNlcyBzZXRUZXh0SW50ZXJhY3Rpb25HZXN0dXJlc0VuYWJsZWQ6XSk6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9uLm1t
OgorICAgICAgICAoLVtXS1dlYlZpZXdDb25maWd1cmF0aW9uIGluaXRdKToKKyAgICAgICAgKC1b
V0tXZWJWaWV3Q29uZmlndXJhdGlvbiBlbmNvZGVXaXRoQ29kZXI6XSk6CisgICAgICAgICgtW1dL
V2ViVmlld0NvbmZpZ3VyYXRpb24gaW5pdFdpdGhDb2RlcjpdKToKKyAgICAgICAgKC1bV0tXZWJW
aWV3Q29uZmlndXJhdGlvbiBjb3B5V2l0aFpvbmU6XSk6CisgICAgICAgICgtW1dLV2ViVmlld0Nv
bmZpZ3VyYXRpb24gX3RleHRJbnRlcmFjdGlvbkdlc3R1cmVzRW5hYmxlZF0pOgorICAgICAgICAo
LVtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF9zZXRUZXh0SW50ZXJhY3Rpb25HZXN0dXJlc0VuYWJs
ZWQ6XSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0
aW9uUHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmNyZWF0aW9uUGFyYW1ldGVycyk6CisgICAgICAg
ICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW06CisgICAgICAgICgt
W1dLQ29udGVudFZpZXcgaGFzU2VsZWN0YWJsZVBvc2l0aW9uQXRQb2ludDpdKToKKyAgICAgICAg
KC1bV0tDb250ZW50VmlldyBwb2ludElzTmVhck1hcmtlZFRleHQ6XSk6CisgICAgICAgICgtW1dL
Q29udGVudFZpZXcgdGV4dEludGVyYWN0aW9uR2VzdHVyZTpzaG91bGRCZWdpbkF0UG9pbnQ6XSk6
CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX2Nhc2NhZGVJbnRlcmFjdGlvblRpbnRDb2xvcl0p
OgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IHNlbGVjdEZvcldlYlZpZXc6XSk6CisgICAgICAg
ICgtW1dLQ29udGVudFZpZXcgc2VsZWN0QWxsRm9yV2ViVmlldzpdKToKKyAgICAgICAgQWRkIGNo
ZWNrIGZvciB0ZXh0SW50ZXJhY3Rpb25HZXN0dXJlc0VuYWJsZWQgaW4gdGhlc2Ugc2VsZWN0Kgor
ICAgICAgICBmdW5jdGlvbnMgYmVjYXVzZSBkaXNhYmxpbmcgdGV4dCBpbnRlcmFjdGlvbiBzaG91
bGQgZGlzYWJsZSBzZWxlY3Rpb24KKyAgICAgICAgaW4gV0tXZWJWaWV3LgorCisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICBVcGRhdGUgdGhlIHRleHRJ
bnRlcmFjdGlvbkdlc3R1cmVzRW5hYmxlZCB2YWx1ZSBpbiB0aGUgcGFnZSB3aGVuCisgICAgICAg
IHByZWZlcmVuY2VzIGFyZSB1cGRhdGVkLgorCisgICAgICAgIChXZWJLaXQ6Om1fbGltaXRzTmF2
aWdhdGlvbnNUb0FwcEJvdW5kRG9tYWlucyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnVw
ZGF0ZVByZWZlcmVuY2VzKToKKwogMjAyMC0xMS0yOSAgQWRhbSBNYXphbmRlciAgPG1hemFuZGVy
QGFwcGxlLmNvbT4KIAogICAgICAgICBEZW55IGxvZ3MgZm9yIGJlbmlnbiBmb250c2VydmljZXNk
IGRhZW1vbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlBy
ZWZlcmVuY2VzLnlhbWwgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVy
ZW5jZXMueWFtbAppbmRleCBhZjMxYTIzOGNiNGRhZDU3NDg2YzE1NzI0MjEzMDJiNmM0ZTViOTI4
Li41MjA5YzFhZGIzMTZhMmI3Y2VkZjcxY2NkY2UyODA3NmE5M2IyMWExIDEwMDY0NAotLS0gYS9T
b3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXMueWFtbAorKysgYi9T
b3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXMueWFtbApAQCAtMjI3
Nyw2ICsyMjc3LDE2IEBAIFRleHRBdXRvc2l6aW5nRW5hYmxlZDoKICAgICAgICJQTEFURk9STShJ
T1NfRkFNSUxZKSI6IHRydWUKICAgICAgIGRlZmF1bHQ6IGZhbHNlCiAKK1RleHRJbnRlcmFjdGlv
bkdlc3R1cmVzRW5hYmxlZDoKKyAgdHlwZTogYm9vbAorICBkZWZhdWx0VmFsdWU6CisgICAgV2Vi
S2l0TGVnYWN5OgorICAgICAgZGVmYXVsdDogdHJ1ZQorICAgIFdlYktpdDoKKyAgICAgIGRlZmF1
bHQ6IHRydWUKKyAgICBXZWJDb3JlOgorICAgICAgZGVmYXVsdDogdHJ1ZQorCiBUaHJlYWRlZFNj
cm9sbGluZ0VuYWJsZWQ6CiAgIHR5cGU6IGJvb2wKICAgd2ViY29yZUJpbmRpbmc6IG5vbmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAppbmRleCA2NWViMjA5ZDRkMzdhNjNhZGFlMjkz
MDVkMmZmNDdhMGUyNWRiMTVkLi43ZjgzMGIyMGMxNWFiOTM0Yjc2ZTQ4YzI4ZDQ3NDQ1MjEzZDRi
MGYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCkBAIC01NjksNyArNTY5LDcg
QEAgc3RhdGljIEFwcGVuZFRyYWlsaW5nV2hpdGVzcGFjZSBzaG91bGRBcHBlbmRUcmFpbGluZ1do
aXRlc3BhY2UoY29uc3QgTW91c2VFdmVudFcKIAogdm9pZCBFdmVudEhhbmRsZXI6OnNlbGVjdENs
b3Nlc3RXb3JkRnJvbU1vdXNlRXZlbnQoY29uc3QgTW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0
cyYgcmVzdWx0KQogewotICAgIGlmIChtX21vdXNlRG93bk1heVN0YXJ0U2VsZWN0KQorICAgIGlm
IChtb3VzZURvd25NYXlTdGFydFNlbGVjdCgpKQogICAgICAgICBzZWxlY3RDbG9zZXN0V29yZEZy
b21IaXRUZXN0UmVzdWx0KHJlc3VsdC5oaXRUZXN0UmVzdWx0KCksIHNob3VsZEFwcGVuZFRyYWls
aW5nV2hpdGVzcGFjZShyZXN1bHQsIG1fZnJhbWUpKTsKIH0KIApAQCAtNjE4LDcgKzYxOCw3IEBA
IHZvaWQgRXZlbnRIYW5kbGVyOjpzZWxlY3RDbG9zZXN0Q29udGV4dHVhbFdvcmRPckxpbmtGcm9t
TW91c2VFdmVudChjb25zdCBNb3VzZUV2CiAKICAgICBOb2RlKiB0YXJnZXROb2RlID0gcmVzdWx0
LnRhcmdldE5vZGUoKTsKIAotICAgIGlmICh0YXJnZXROb2RlICYmIHRhcmdldE5vZGUtPnJlbmRl
cmVyKCkgJiYgbV9tb3VzZURvd25NYXlTdGFydFNlbGVjdCkgeworICAgIGlmICh0YXJnZXROb2Rl
ICYmIHRhcmdldE5vZGUtPnJlbmRlcmVyKCkgJiYgbW91c2VEb3duTWF5U3RhcnRTZWxlY3QoKSkg
ewogICAgICAgICBWaXNpYmxlU2VsZWN0aW9uIG5ld1NlbGVjdGlvbjsKICAgICAgICAgVmlzaWJs
ZVBvc2l0aW9uIHBvcyh0YXJnZXROb2RlLT5yZW5kZXJlcigpLT5wb3NpdGlvbkZvclBvaW50KHJl
c3VsdC5sb2NhbFBvaW50KCksIG51bGxwdHIpKTsKICAgICAgICAgaWYgKHBvcy5pc05vdE51bGwo
KSAmJiBwb3MuZGVlcEVxdWl2YWxlbnQoKS5kZXByZWNhdGVkTm9kZSgpLT5pc0Rlc2NlbmRhbnRP
ZigqdXJsRWxlbWVudCkpCkBAIC02NTIsNyArNjUyLDcgQEAgYm9vbCBFdmVudEhhbmRsZXI6Omhh
bmRsZU1vdXNlUHJlc3NFdmVudFRyaXBsZUNsaWNrKGNvbnN0IE1vdXNlRXZlbnRXaXRoSGl0VGVz
dFIKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIAogICAgIE5vZGUqIHRhcmdldE5vZGUgPSBl
dmVudC50YXJnZXROb2RlKCk7Ci0gICAgaWYgKCEodGFyZ2V0Tm9kZSAmJiB0YXJnZXROb2RlLT5y
ZW5kZXJlcigpICYmIG1fbW91c2VEb3duTWF5U3RhcnRTZWxlY3QpKQorICAgIGlmICghKHRhcmdl
dE5vZGUgJiYgdGFyZ2V0Tm9kZS0+cmVuZGVyZXIoKSAmJiBtb3VzZURvd25NYXlTdGFydFNlbGVj
dCgpKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgVmlzaWJsZVNlbGVjdGlvbiBuZXdT
ZWxlY3Rpb247CkBAIC02NzksNyArNjc5LDcgQEAgYm9vbCBFdmVudEhhbmRsZXI6OmhhbmRsZU1v
dXNlUHJlc3NFdmVudFNpbmdsZUNsaWNrKGNvbnN0IE1vdXNlRXZlbnRXaXRoSGl0VGVzdFIKIAog
ICAgIG1fZnJhbWUuZG9jdW1lbnQoKS0+dXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hl
ZXRzKCk7CiAgICAgTm9kZSogdGFyZ2V0Tm9kZSA9IGV2ZW50LnRhcmdldE5vZGUoKTsKLSAgICBp
ZiAoIXRhcmdldE5vZGUgfHwgIXRhcmdldE5vZGUtPnJlbmRlcmVyKCkgfHwgIW1fbW91c2VEb3du
TWF5U3RhcnRTZWxlY3QgfHwgbV9tb3VzZURvd25EZWxlZ2F0ZWRGb2N1cykKKyAgICBpZiAoIXRh
cmdldE5vZGUgfHwgIXRhcmdldE5vZGUtPnJlbmRlcmVyKCkgfHwgIW1vdXNlRG93bk1heVN0YXJ0
U2VsZWN0KCkgfHwgbV9tb3VzZURvd25EZWxlZ2F0ZWRGb2N1cykKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCiAgICAgLy8gRXh0ZW5kIHRoZSBzZWxlY3Rpb24gaWYgdGhlIFNoaWZ0IGtleSBpcyBk
b3duLCB1bmxlc3MgdGhlIGNsaWNrIGlzIGluIGEgbGluay4KQEAgLTc2Niw2ICs3NjYsMTUgQEAg
Ym9vbCBFdmVudEhhbmRsZXI6OmNhbk1vdXNlRG93blN0YXJ0U2VsZWN0KGNvbnN0IE1vdXNlRXZl
bnRXaXRoSGl0VGVzdFJlc3VsdHMmIGUKICAgICByZXR1cm4gbm9kZS0+Y2FuU3RhcnRTZWxlY3Rp
b24oKSB8fCBQb3NpdGlvbjo6bm9kZUlzVXNlclNlbGVjdEFsbChub2RlKTsKIH0KIAorYm9vbCBF
dmVudEhhbmRsZXI6Om1vdXNlRG93bk1heVN0YXJ0U2VsZWN0KCkKK3sKKyAgICBQYWdlKiBwYWdl
ID0gbV9mcmFtZS5wYWdlKCk7CisgICAgaWYgKHBhZ2UgJiYgIXBhZ2UtPnRleHRJbnRlcmFjdGlv
bkdlc3R1cmVzRW5hYmxlZCgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICByZXR1cm4g
bV9tb3VzZURvd25NYXlTdGFydFNlbGVjdDsKK30KKwogYm9vbCBFdmVudEhhbmRsZXI6OmhhbmRs
ZU1vdXNlUHJlc3NFdmVudChjb25zdCBNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzJiBldmVu
dCkKIHsKICAgICBSZWY8RnJhbWU+IHByb3RlY3RlZEZyYW1lKG1fZnJhbWUpOwpAQCAtODQzLDcg
Kzg1Miw3IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpoYW5kbGVNb3VzZVByZXNzRXZlbnQoY29uc3Qg
TW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0cyYgZXZlCiAgICAgZWxzZQogICAgICAgICBzd2Fs
bG93RXZlbnQgPSBoYW5kbGVNb3VzZVByZXNzRXZlbnRTaW5nbGVDbGljayhldmVudCk7CiAgICAg
Ci0gICAgbV9tb3VzZURvd25NYXlTdGFydEF1dG9zY3JvbGwgPSBtX21vdXNlRG93bk1heVN0YXJ0
U2VsZWN0CisgICAgbV9tb3VzZURvd25NYXlTdGFydEF1dG9zY3JvbGwgPSBtb3VzZURvd25NYXlT
dGFydFNlbGVjdCgpCiAgICAgICAgIHx8IChtX21vdXNlUHJlc3NOb2RlICYmIG1fbW91c2VQcmVz
c05vZGUtPnJlbmRlckJveCgpICYmIG1fbW91c2VQcmVzc05vZGUtPnJlbmRlckJveCgpLT5jYW5C
ZVByb2dyYW1hdGljYWxseVNjcm9sbGVkKCkpOwogCiAgICAgcmV0dXJuIHN3YWxsb3dFdmVudDsK
QEAgLTkxMSw3ICs5MjAsNyBAQCBib29sIEV2ZW50SGFuZGxlcjo6aGFuZGxlTW91c2VEcmFnZ2Vk
RXZlbnQoY29uc3QgTW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0cyYgZQogICAgIH0KIAogI2lm
IFBMQVRGT1JNKENPQ09BKSAvLyBGSVhNRTogV2h5IGRvZXMgdGhpcyBhc3NlcnRpb24gZmlyZSBv
biBvdGhlciBwbGF0Zm9ybXM/Ci0gICAgQVNTRVJUKG1fbW91c2VEb3duTWF5U3RhcnRTZWxlY3Qg
fHwgbV9tb3VzZURvd25NYXlTdGFydEF1dG9zY3JvbGwpOworICAgIEFTU0VSVChtb3VzZURvd25N
YXlTdGFydFNlbGVjdCgpIHx8IG1fbW91c2VEb3duTWF5U3RhcnRBdXRvc2Nyb2xsKTsKICNlbmRp
ZgogCiAgICAgbV9tb3VzZURvd25NYXlTdGFydERyYWcgPSBmYWxzZTsKQEAgLTk4NSw3ICs5OTQs
NyBAQCB2b2lkIEV2ZW50SGFuZGxlcjo6dXBkYXRlU2VsZWN0aW9uRm9yTW91c2VEcmFnKGNvbnN0
IEhpdFRlc3RSZXN1bHQmIGhpdFRlc3RSZXN1bAogICAgIGlmICghc3VwcG9ydHNTZWxlY3Rpb25V
cGRhdGVzT25Nb3VzZURyYWcoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKCFtX21vdXNl
RG93bk1heVN0YXJ0U2VsZWN0KQorICAgIGlmICghbW91c2VEb3duTWF5U3RhcnRTZWxlY3QoKSkK
ICAgICAgICAgcmV0dXJuOwogCiAgICAgTm9kZSogdGFyZ2V0ID0gaGl0VGVzdFJlc3VsdC50YXJn
ZXROb2RlKCk7CkBAIC0xNTQxLDcgKzE1NTAsNyBAQCBPcHRpb25hbDxDdXJzb3I+IEV2ZW50SGFu
ZGxlcjo6c2VsZWN0Q3Vyc29yKGNvbnN0IEhpdFRlc3RSZXN1bHQmIHJlc3VsdCwgYm9vbCBzaAog
ICAgIC8vIER1cmluZyBzZWxlY3Rpb24sIHVzZSBhbiBJLWJlYW0gcmVnYXJkbGVzcyBvZiB0aGUg
Y29udGVudCBiZW5lYXRoIHRoZSBjdXJzb3IuCiAgICAgLy8gSWYgYSBkcmFnIG1heSBiZSBzdGFy
dGluZyBvciB3ZSdyZSBjYXB0dXJpbmcgbW91c2UgZXZlbnRzIGZvciBhIHBhcnRpY3VsYXIgbm9k
ZSwgZG9uJ3QgdHJlYXQgdGhpcyBhcyBhIHNlbGVjdGlvbi4KICAgICBpZiAobV9tb3VzZVByZXNz
ZWQKLSAgICAgICAgJiYgbV9tb3VzZURvd25NYXlTdGFydFNlbGVjdAorICAgICAgICAmJiBtb3Vz
ZURvd25NYXlTdGFydFNlbGVjdCgpCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKICAgICAgICAg
JiYgIW1fbW91c2VEb3duTWF5U3RhcnREcmFnCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFu
ZGxlci5oCmluZGV4IDkwYzc4N2I2N2UyZjNkYzI5ZDQ1ODhlZWJmNTg3ZmE5MzUxZGU5ZDkuLmFi
NTU2ODNlNDBmZGE1ZTQ4MjdlNDMyODI2YjY2YmIzMmRjNGVmZDYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9F
dmVudEhhbmRsZXIuaApAQCAtNTE1LDYgKzUxNSw4IEBAIHByaXZhdGU6CiAKICAgICBib29sIGNh
bk1vdXNlRG93blN0YXJ0U2VsZWN0KGNvbnN0IE1vdXNlRXZlbnRXaXRoSGl0VGVzdFJlc3VsdHMm
KTsKIAorICAgIGJvb2wgbW91c2VEb3duTWF5U3RhcnRTZWxlY3QoKTsKKyAgICAKICAgICBGcmFt
ZSYgbV9mcmFtZTsKIAogICAgIGJvb2wgbV9tb3VzZVByZXNzZWQgeyBmYWxzZSB9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGFnZS5jcHAKaW5kZXggNGNmNmY1MGY0MWVmY2E4YjA2YjEzMWU5NWE0YjQ3YjY2ZTRiYTYyYi4u
ZWZjMjFhZTcxODZjYTBkYzhiOGU2ZWM0ZTY5NmYyOWQ4YjRjODY5YiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2Uu
Y3BwCkBAIC0zMDMsNiArMzAzLDcgQEAgUGFnZTo6UGFnZShQYWdlQ29uZmlndXJhdGlvbiYmIHBh
Z2VDb25maWd1cmF0aW9uKQogICAgICwgbV9sb2Fkc1N1YnJlc291cmNlcyhwYWdlQ29uZmlndXJh
dGlvbi5sb2Fkc1N1YnJlc291cmNlcykKICAgICAsIG1fbG9hZHNGcm9tTmV0d29yayhwYWdlQ29u
ZmlndXJhdGlvbi5sb2Fkc0Zyb21OZXR3b3JrKQogICAgICwgbV9zaG91bGRSZWxheFRoaXJkUGFy
dHlDb29raWVCbG9ja2luZyhwYWdlQ29uZmlndXJhdGlvbi5zaG91bGRSZWxheFRoaXJkUGFydHlD
b29raWVCbG9ja2luZykKKyAgICAsIG1fdGV4dEludGVyYWN0aW9uR2VzdHVyZXNFbmFibGVkKHBh
Z2VDb25maWd1cmF0aW9uLnRleHRJbnRlcmFjdGlvbkdlc3R1cmVzRW5hYmxlZCkKIHsKICAgICB1
cGRhdGVUaW1lclRocm90dGxpbmdTdGF0ZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1BhZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCmluZGV4IDkxNTIxNGE3
MTIwMTljNzk5NTFlNjk1ZTM5NzcyYmU2ZDc0YTE1MGUuLmM4OGVlY2Y2Y2ZiMDNkOTNkYTgyYzZl
YzVmYzBhNzEyZmY1ZjYyNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCkBAIC04MjgsNiArODI4LDkgQEAgcHVi
bGljOgogCiAgICAgTW9ub3RvbmljVGltZSBsYXN0UmVuZGVyaW5nVXBkYXRlVGltZXN0YW1wKCkg
Y29uc3QgeyByZXR1cm4gbV9sYXN0UmVuZGVyaW5nVXBkYXRlVGltZXN0YW1wOyB9CiAKKyAgICBi
b29sIHRleHRJbnRlcmFjdGlvbkdlc3R1cmVzRW5hYmxlZCgpIHsgcmV0dXJuIG1fdGV4dEludGVy
YWN0aW9uR2VzdHVyZXNFbmFibGVkOyB9CisgICAgdm9pZCBzZXRUZXh0SW50ZXJhY3Rpb25HZXN0
dXJlc0VuYWJsZWQoYm9vbCB2YWx1ZSkgeyBtX3RleHRJbnRlcmFjdGlvbkdlc3R1cmVzRW5hYmxl
ZCA9IHZhbHVlOyB9CisKIHByaXZhdGU6CiAgICAgc3RydWN0IE5hdmlnYXRpb24gewogICAgICAg
ICBSZWdpc3RyYWJsZURvbWFpbiBkb21haW47CkBAIC0xMTMxLDYgKzExMzQsOCBAQCBwcml2YXRl
OgogICAgIGJvb2wgbV9oYXNCZWVuTm90aWZpZWRUb0luamVjdFVzZXJTY3JpcHRzIHsgZmFsc2Ug
fTsKIAogICAgIE1vbm90b25pY1RpbWUgbV9sYXN0UmVuZGVyaW5nVXBkYXRlVGltZXN0YW1wOwor
ICAgIAorICAgIGJvb2wgbV90ZXh0SW50ZXJhY3Rpb25HZXN0dXJlc0VuYWJsZWQgeyB0cnVlIH07
CiB9OwogCiBpbmxpbmUgUGFnZUdyb3VwJiBQYWdlOjpncm91cCgpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1cmF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1BhZ2VDb25maWd1cmF0aW9uLmgKaW5kZXggZjA1NGZjYjM2NzUxYmJlYWVmNGJmOGIxMmM0N2Yy
MGY1MzBjMTM1NS4uNTU5ZTgxZDhhZTI1ODgyNDBhNTg4ZDAxYTk2YjYzYzUzNmVkZjdhZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uaApAQCAtMTMzLDYgKzEzMyw3IEBA
IHB1YmxpYzoKICAgICBib29sIGxvYWRzRnJvbU5ldHdvcmsgeyB0cnVlIH07CiAgICAgYm9vbCB1
c2VyU2NyaXB0c1Nob3VsZFdhaXRVbnRpbE5vdGlmaWNhdGlvbiB7IHRydWUgfTsKICAgICBTaG91
bGRSZWxheFRoaXJkUGFydHlDb29raWVCbG9ja2luZyBzaG91bGRSZWxheFRoaXJkUGFydHlDb29r
aWVCbG9ja2luZyB7IFNob3VsZFJlbGF4VGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nOjpObyB9Owor
ICAgIGJvb2wgdGV4dEludGVyYWN0aW9uR2VzdHVyZXNFbmFibGVkIHsgdHJ1ZSB9OwogfTsKIAog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1l
dGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJz
LmNwcAppbmRleCBjZjEzMWE5MjFlMDg2MzY1ZGJmNzdmYTk4ZTQxYzFjNzRhM2U3ZTI1Li5kZjIw
MWYwZjNkYTYyYzdlMDA0NzBjNDk1MWZiMGNjZDczNWM2OTQyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcApAQCAtMTcwLDYgKzE3
MCw4IEBAIHZvaWQgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlKElQQzo6RW5jb2Rl
ciYgZW5jb2RlcikgY29uc3QKICNpZiBQTEFURk9STShHVEspCiAgICAgZW5jb2RlciA8PCB0aGVt
ZU5hbWU7CiAjZW5kaWYKKyAgICAKKyAgICBlbmNvZGVyIDw8IHRleHRJbnRlcmFjdGlvbkdlc3R1
cmVzRW5hYmxlZDsKIH0KIAogT3B0aW9uYWw8V2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycz4gV2Vi
UGFnZUNyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2RlcikKQEAg
LTUzNSw2ICs1MzcsOSBAQCBPcHRpb25hbDxXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzPiBXZWJQ
YWdlQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUoSVBDOjpEZWNvZAogICAgIGlmICghZGVjb2Rl
ci5kZWNvZGUocGFyYW1ldGVycy50aGVtZU5hbWUpKQogICAgICAgICByZXR1cm4gV1RGOjpudWxs
b3B0OwogI2VuZGlmCisgICAgCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLnRl
eHRJbnRlcmFjdGlvbkdlc3R1cmVzRW5hYmxlZCkpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxv
cHQ7CiAKICAgICByZXR1cm4gcGFyYW1ldGVyczsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaAppbmRleCBkOTFlNDYwMzhmMzA5YjUxMzBi
ZmRlNThkZmY0YTlmMTgxOTUxZGZkLi45ZTVjOGJjNjAwYmUxOTQzMDk3OTAxNzdkZjhiNGIxNzg0
ZjMxYTI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25Q
YXJhbWV0ZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFy
YW1ldGVycy5oCkBAIC0yNDIsNiArMjQyLDggQEAgc3RydWN0IFdlYlBhZ2VDcmVhdGlvblBhcmFt
ZXRlcnMgewogI2lmIFBMQVRGT1JNKEdUSykKICAgICBTdHJpbmcgdGhlbWVOYW1lOwogI2VuZGlm
CisKKyAgICBib29sIHRleHRJbnRlcmFjdGlvbkdlc3R1cmVzRW5hYmxlZCB7IHRydWUgfTsKIH07
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQy9XS1ByZWZlcmVuY2VzLmNwcAppbmRleCAxMjE1MjE2ZGI5ZTE1Mzg4OTc4ZjJhZTM0MWRj
ZTYwZmQxOWU1NTJjLi4zODA2MDBlYzg5YTcyN2YwNjNiODc3NDgxODRjNTJmZmI1YTc1MTZiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcApA
QCAtMjA2Niw2ICsyMDY2LDE1IEBAIHZvaWQgV0tQcmVmZXJlbmNlc1NldFNob3VsZFVzZVNlcnZp
Y2VXb3JrZXJTaG9ydFRpbWVvdXQoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlCiAgICAgV2ViS2l0
Ojp0b0ltcGwocHJlZmVyZW5jZXNSZWYpLT5zZXRTaG91bGRVc2VTZXJ2aWNlV29ya2VyU2hvcnRU
aW1lb3V0KGVuYWJsZWQpOwogfQogCit2b2lkIFdLUHJlZmVyZW5jZXNTZXRUZXh0SW50ZXJhY3Rp
b25HZXN0dXJlc0VuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZiwgYm9vbCBm
bGFnKQoreworICAgIHRvSW1wbChwcmVmZXJlbmNlc1JlZiktPnNldFRleHRJbnRlcmFjdGlvbkdl
c3R1cmVzRW5hYmxlZChmbGFnKTsKK30KKworYm9vbCBXS1ByZWZlcmVuY2VzR2V0VGV4dEludGVy
YWN0aW9uR2VzdHVyZXNFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYpCit7
CisgICAgcmV0dXJuIHRvSW1wbChwcmVmZXJlbmNlc1JlZiktPnRleHRJbnRlcmFjdGlvbkdlc3R1
cmVzRW5hYmxlZCgpOworfQogCiAvLyBUaGUgZm9sbG93aW5nIGFyZSBhbGwgZGVwcmVjYXRlZCBh
bmQgZG8gbm90aGluZy4gVGhleSBzaG91bGQgYmUgcmVtb3ZlZCB3aGVuIHBvc3NpYmxlLgogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzUmVm
UHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlc1Jl
ZlByaXZhdGUuaAppbmRleCBmMGRiMGRhMTFlODA5ZmY1ZjI5OTU0MDY1NDY1NTY4Njg4MmFjZjI0
Li43YWMzZTlmNzg0ODJkMDA0M2U0NmRhMTE1MjVmZGYwZmQzNmRhYWFlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzUmVmUHJpdmF0ZS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXNSZWZQcml2YXRl
LmgKQEAgLTU2Nyw2ICs1NjcsOSBAQCBXS19FWFBPUlQgYm9vbCBXS1ByZWZlcmVuY2VzR2V0UHVu
Y2hPdXRXaGl0ZUJhY2tncm91bmRzSW5EYXJrTW9kZShXS1ByZWZlcmVuY2VzUgogV0tfRVhQT1JU
IHZvaWQgV0tQcmVmZXJlbmNlc1NldFJlZmVycmVyUG9saWN5QXR0cmlidXRlRW5hYmxlZChXS1By
ZWZlcmVuY2VzUmVmLCBib29sIGZsYWcpOwogV0tfRVhQT1JUIGJvb2wgV0tQcmVmZXJlbmNlc0dl
dFJlZmVycmVyUG9saWN5QXR0cmlidXRlRW5hYmxlZChXS1ByZWZlcmVuY2VzUmVmKTsKIAorLy8g
RGVmYXVsdHMgdG8gdHJ1ZS4KK1dLX0VYUE9SVCB2b2lkIFdLUHJlZmVyZW5jZXNTZXRUZXh0SW50
ZXJhY3Rpb25HZXN0dXJlc0VuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZiwgYm9vbCBmbGFnKTsKK1dL
X0VYUE9SVCBib29sIFdLUHJlZmVyZW5jZXNHZXRUZXh0SW50ZXJhY3Rpb25HZXN0dXJlc0VuYWJs
ZWQoV0tQcmVmZXJlbmNlc1JlZik7CiAKIC8vIFRoZSBmb2xsb3dpbmcgYXJlIGFsbCBkZXByZWNh
dGVkIGFuZCBkbyBub3RoaW5nLiBUaGV5IHNob3VsZCBiZSByZW1vdmVkIHdoZW4gcG9zc2libGUu
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZl
cmVuY2VzLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNl
cy5oCmluZGV4IGMyZTZhMjcyOGYzMDBjNmMwNjE2OWU4MTYzMzY5YjhkYTE3ZTlhZmEuLmY0ZjRm
ZGNiNTJlMzRkZTgwMDc1NTc3MjRmMTRmYWJlN2JlYzk0MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzLmgKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXMuaApAQCAtNjAsNiArNjAsMTAg
QEAgV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zKDEwLjEwKSwgaW9zKDguMCkpCiBAcHJvcGVydHkg
KG5vbmF0b21pYykgQk9PTCB0YWJGb2N1c2VzTGlua3MgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygx
MC4xMi4zKSk7CiAjZW5kaWYKIAorLyohIEBhYnN0cmFjdCBBIEJvb2xlYW4gdmFsdWUgaW5kaWNh
dGluZyB3aGV0aGVyIHRleHQgaW50ZXJhY3Rpb24gaXMgZGlzYWJsZWQuCisqLworQHByb3BlcnR5
IChub25hdG9taWMpIEJPT0wgdGV4dEludGVyYWN0aW9uR2VzdHVyZXNFbmFibGVkIFdLX0FQSV9B
VkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CisKIEBlbmQKIAog
QGludGVyZmFjZSBXS1ByZWZlcmVuY2VzIChXS0RlcHJlY2F0ZWQpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlcy5tbSBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzLm1tCmluZGV4IDcyNzRhNjgz
YTZmYWJjNTYxMWQ0YTJhNTEyYWM5M2NkZDA3MTA2OTguLmNjZjAzZmM5YzFmZTQ5OThmZjMwOGYy
MTFlYTQyYTM3ZTVhM2JmNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1ByZWZlcmVuY2VzLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1ByZWZlcmVuY2VzLm1tCkBAIC03OCw2ICs3OCw3IEBAIEFMTE9XX0RFUFJFQ0FU
RURfREVDTEFSQVRJT05TX0JFR0lOCiBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQK
ICAgICBbY29kZXIgZW5jb2RlQm9vbDpzZWxmLnRhYkZvY3VzZXNMaW5rcyBmb3JLZXk6QCJ0YWJG
b2N1c2VzTGlua3MiXTsKICNlbmRpZgorICAgIFtjb2RlciBlbmNvZGVCb29sOnNlbGYudGV4dElu
dGVyYWN0aW9uR2VzdHVyZXNFbmFibGVkIGZvcktleTpAInRleHRJbnRlcmFjdGlvbkdlc3R1cmVz
RW5hYmxlZCJdOwogfQogCiAtIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhDb2RlcjooTlNDb2RlciAq
KWNvZGVyCkBAIC05OSw2ICsxMDAsNyBAQCBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19C
RUdJTgogQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgc2VsZi50YWJGb2N1
c2VzTGlua3MgPSBbY29kZXIgZGVjb2RlQm9vbEZvcktleTpAInRhYkZvY3VzZXNMaW5rcyJdOwog
I2VuZGlmCisgICAgc2VsZi50ZXh0SW50ZXJhY3Rpb25HZXN0dXJlc0VuYWJsZWQgPSBbY29kZXIg
ZGVjb2RlQm9vbEZvcktleTpAInRleHRJbnRlcmFjdGlvbkdlc3R1cmVzRW5hYmxlZCJdOwogCiAg
ICAgcmV0dXJuIHNlbGY7CiB9CkBAIC0xMzgsNiArMTQwLDE2IEBAIC0gKHZvaWQpc2V0SmF2YVNj
cmlwdENhbk9wZW5XaW5kb3dzQXV0b21hdGljYWxseTooQk9PTClqYXZhU2NyaXB0Q2FuT3Blbldp
bmRvd3NBCiAgICAgX3ByZWZlcmVuY2VzLT5zZXRKYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRv
bWF0aWNhbGx5KGphdmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHkpOwogfQogCist
IChCT09MKXRleHRJbnRlcmFjdGlvbkdlc3R1cmVzRW5hYmxlZAoreworICAgIHJldHVybiBfcHJl
ZmVyZW5jZXMtPnRleHRJbnRlcmFjdGlvbkdlc3R1cmVzRW5hYmxlZCgpOworfQorCistICh2b2lk
KXNldFRleHRJbnRlcmFjdGlvbkdlc3R1cmVzRW5hYmxlZDooQk9PTCl0ZXh0SW50ZXJhY3Rpb25H
ZXN0dXJlc0VuYWJsZWQKK3sKKyAgICBfcHJlZmVyZW5jZXMtPnNldFRleHRJbnRlcmFjdGlvbkdl
c3R1cmVzRW5hYmxlZCh0ZXh0SW50ZXJhY3Rpb25HZXN0dXJlc0VuYWJsZWQpOworfQorCiAjcHJh
Z21hIG1hcmsgT1MgWC1zcGVjaWZpYyBtZXRob2RzCiAKICNpZiBQTEFURk9STShNQUMpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Q29uZmln
dXJhdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdD
b25maWd1cmF0aW9uLm1tCmluZGV4IDNhOTdiMGQ3Njk4OTdmODUwZDFkZDM1MTc1YmRjMDViMmM2
NTZhY2UuLmE0YTg4NTAyZDQ2NWZiZGY3ZjFlNmRhYWIzMTE0MDExZGUxYTM4NTMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0
aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdD
b25maWd1cmF0aW9uLm1tCkBAIC0xNDIsNyArMTQyLDkgQEAgQGltcGxlbWVudGF0aW9uIFdLV2Vi
Vmlld0NvbmZpZ3VyYXRpb24gewogICAgIEJPT0wgX2lubGluZU1lZGlhUGxheWJhY2tSZXF1aXJl
c1BsYXlzSW5saW5lQXR0cmlidXRlOwogICAgIEJPT0wgX2FsbG93c0lubGluZU1lZGlhUGxheWJh
Y2tBZnRlckZ1bGxzY3JlZW47CiAgICAgX1dLRHJhZ0xpZnREZWxheSBfZHJhZ0xpZnREZWxheTsK
KyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIEJPT0wgX3RleHRJ
bnRlcmFjdGlvbkdlc3R1cmVzRW5hYmxlZDsKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFU
SU9OU19FTkQKICAgICBCT09MIF9sb25nUHJlc3NBY3Rpb25zRW5hYmxlZDsKICAgICBCT09MIF9z
eXN0ZW1QcmV2aWV3RW5hYmxlZDsKICAgICBCT09MIF9zaG91bGREZWNpZGVQb2xpY3lCZWZvcmVM
b2FkaW5nUXVpY2tMb29rUHJldmlldzsKQEAgLTI0NywxMCArMjQ5LDE0IEBAIC0gKGluc3RhbmNl
dHlwZSlpbml0CiAgICAgX3NlbGVjdGlvbkdyYW51bGFyaXR5ID0gV0tTZWxlY3Rpb25HcmFudWxh
cml0eUR5bmFtaWM7CiAgICAgX2RyYWdMaWZ0RGVsYXkgPSB0b0RyYWdMaWZ0RGVsYXkoW1tOU1Vz
ZXJEZWZhdWx0cyBzdGFuZGFyZFVzZXJEZWZhdWx0c10gaW50ZWdlckZvcktleTpAIldlYktpdERl
YnVnRHJhZ0xpZnREZWxheSJdKTsKICNpZiBQTEFURk9STShXQVRDSE9TKQorICAgIEFMTE9XX0RF
UFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgX3RleHRJbnRlcmFjdGlvbkdlc3R1cmVz
RW5hYmxlZCA9IE5POworICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAg
IF9sb25nUHJlc3NBY3Rpb25zRW5hYmxlZCA9IE5POwogI2Vsc2UKKyAgICBBTExPV19ERVBSRUNB
VEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIF90ZXh0SW50ZXJhY3Rpb25HZXN0dXJlc0VuYWJs
ZWQgPSBZRVM7CisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgX2xv
bmdQcmVzc0FjdGlvbnNFbmFibGVkID0gWUVTOwogI2VuZGlmCiAgICAgX3N5c3RlbVByZXZpZXdF
bmFibGVkID0gTk87CkBAIC0zMDksNyArMzE1LDkgQEAgLSAodm9pZCllbmNvZGVXaXRoQ29kZXI6
KE5TQ29kZXIgKiljb2RlcgogICAgIFtjb2RlciBlbmNvZGVCb29sOnNlbGYuYWxsb3dzUGljdHVy
ZUluUGljdHVyZU1lZGlhUGxheWJhY2sgZm9yS2V5OkAiYWxsb3dzUGljdHVyZUluUGljdHVyZU1l
ZGlhUGxheWJhY2siXTsKICAgICBbY29kZXIgZW5jb2RlQm9vbDpzZWxmLmlnbm9yZXNWaWV3cG9y
dFNjYWxlTGltaXRzIGZvcktleTpAImlnbm9yZXNWaWV3cG9ydFNjYWxlTGltaXRzIl07CiAgICAg
W2NvZGVyIGVuY29kZUludGVnZXI6c2VsZi5fZHJhZ0xpZnREZWxheSBmb3JLZXk6QCJkcmFnTGlm
dERlbGF5Il07CisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBb
Y29kZXIgZW5jb2RlQm9vbDpzZWxmLl90ZXh0SW50ZXJhY3Rpb25HZXN0dXJlc0VuYWJsZWQgZm9y
S2V5OkAidGV4dEludGVyYWN0aW9uR2VzdHVyZXNFbmFibGVkIl07CisgICAgQUxMT1dfREVQUkVD
QVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgW2NvZGVyIGVuY29kZUJvb2w6c2VsZi5fbG9uZ1By
ZXNzQWN0aW9uc0VuYWJsZWQgZm9yS2V5OkAibG9uZ1ByZXNzQWN0aW9uc0VuYWJsZWQiXTsKICAg
ICBbY29kZXIgZW5jb2RlQm9vbDpzZWxmLl9zeXN0ZW1QcmV2aWV3RW5hYmxlZCBmb3JLZXk6QCJz
eXN0ZW1QcmV2aWV3RW5hYmxlZCJdOwogICAgIFtjb2RlciBlbmNvZGVCb29sOnNlbGYuX3Nob3Vs
ZERlY2lkZVBvbGljeUJlZm9yZUxvYWRpbmdRdWlja0xvb2tQcmV2aWV3IGZvcktleTpAInNob3Vs
ZERlY2lkZVBvbGljeUJlZm9yZUxvYWRpbmdRdWlja0xvb2tQcmV2aWV3Il07CkBAIC0zNDcsNyAr
MzU1LDkgQEAgLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoQ29kZXI6KE5TQ29kZXIgKiljb2Rlcgog
ICAgIHNlbGYuYWxsb3dzUGljdHVyZUluUGljdHVyZU1lZGlhUGxheWJhY2sgPSBbY29kZXIgZGVj
b2RlQm9vbEZvcktleTpAImFsbG93c1BpY3R1cmVJblBpY3R1cmVNZWRpYVBsYXliYWNrIl07CiAg
ICAgc2VsZi5pZ25vcmVzVmlld3BvcnRTY2FsZUxpbWl0cyA9IFtjb2RlciBkZWNvZGVCb29sRm9y
S2V5OkAiaWdub3Jlc1ZpZXdwb3J0U2NhbGVMaW1pdHMiXTsKICAgICBzZWxmLl9kcmFnTGlmdERl
bGF5ID0gdG9EcmFnTGlmdERlbGF5KFtjb2RlciBkZWNvZGVJbnRlZ2VyRm9yS2V5OkAiZHJhZ0xp
ZnREZWxheSJdKTsKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAg
IHNlbGYuX3RleHRJbnRlcmFjdGlvbkdlc3R1cmVzRW5hYmxlZCA9IFtjb2RlciBkZWNvZGVCb29s
Rm9yS2V5OkAidGV4dEludGVyYWN0aW9uR2VzdHVyZXNFbmFibGVkIl07CisgICAgQUxMT1dfREVQ
UkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgc2VsZi5fbG9uZ1ByZXNzQWN0aW9uc0VuYWJs
ZWQgPSBbY29kZXIgZGVjb2RlQm9vbEZvcktleTpAImxvbmdQcmVzc0FjdGlvbnNFbmFibGVkIl07
CiAgICAgc2VsZi5fc3lzdGVtUHJldmlld0VuYWJsZWQgPSBbY29kZXIgZGVjb2RlQm9vbEZvcktl
eTpAInN5c3RlbVByZXZpZXdFbmFibGVkIl07CiAgICAgc2VsZi5fc2hvdWxkRGVjaWRlUG9saWN5
QmVmb3JlTG9hZGluZ1F1aWNrTG9va1ByZXZpZXcgPSBbY29kZXIgZGVjb2RlQm9vbEZvcktleTpA
InNob3VsZERlY2lkZVBvbGljeUJlZm9yZUxvYWRpbmdRdWlja0xvb2tQcmV2aWV3Il07CkBAIC00
MDYsNyArNDE2LDkgQEAgLSAoaWQpY29weVdpdGhab25lOihOU1pvbmUgKil6b25lCiAgICAgY29u
ZmlndXJhdGlvbi0+X3NlbGVjdGlvbkdyYW51bGFyaXR5ID0gc2VsZi0+X3NlbGVjdGlvbkdyYW51
bGFyaXR5OwogICAgIGNvbmZpZ3VyYXRpb24tPl9pZ25vcmVzVmlld3BvcnRTY2FsZUxpbWl0cyA9
IHNlbGYtPl9pZ25vcmVzVmlld3BvcnRTY2FsZUxpbWl0czsKICAgICBjb25maWd1cmF0aW9uLT5f
ZHJhZ0xpZnREZWxheSA9IHNlbGYtPl9kcmFnTGlmdERlbGF5OworICAgIEFMTE9XX0RFUFJFQ0FU
RURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgY29uZmlndXJhdGlvbi0+X3RleHRJbnRlcmFjdGlv
bkdlc3R1cmVzRW5hYmxlZCA9IHNlbGYtPl90ZXh0SW50ZXJhY3Rpb25HZXN0dXJlc0VuYWJsZWQ7
CisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgY29uZmlndXJhdGlv
bi0+X2xvbmdQcmVzc0FjdGlvbnNFbmFibGVkID0gc2VsZi0+X2xvbmdQcmVzc0FjdGlvbnNFbmFi
bGVkOwogICAgIGNvbmZpZ3VyYXRpb24tPl9zeXN0ZW1QcmV2aWV3RW5hYmxlZCA9IHNlbGYtPl9z
eXN0ZW1QcmV2aWV3RW5hYmxlZDsKICAgICBjb25maWd1cmF0aW9uLT5fc2hvdWxkRGVjaWRlUG9s
aWN5QmVmb3JlTG9hZGluZ1F1aWNrTG9va1ByZXZpZXcgPSBzZWxmLT5fc2hvdWxkRGVjaWRlUG9s
aWN5QmVmb3JlTG9hZGluZ1F1aWNrTG9va1ByZXZpZXc7CkBAIC03NTcsMTYgKzc2OSw2IEBAIC0g
KHZvaWQpX3NldERyYWdMaWZ0RGVsYXk6KF9XS0RyYWdMaWZ0RGVsYXkpZHJhZ0xpZnREZWxheQog
ICAgIF9kcmFnTGlmdERlbGF5ID0gZHJhZ0xpZnREZWxheTsKIH0KIAotLSAoQk9PTClfdGV4dElu
dGVyYWN0aW9uR2VzdHVyZXNFbmFibGVkCi17Ci0gICAgcmV0dXJuIF90ZXh0SW50ZXJhY3Rpb25H
ZXN0dXJlc0VuYWJsZWQ7Ci19Ci0KLS0gKHZvaWQpX3NldFRleHRJbnRlcmFjdGlvbkdlc3R1cmVz
RW5hYmxlZDooQk9PTCllbmFibGVkCi17Ci0gICAgX3RleHRJbnRlcmFjdGlvbkdlc3R1cmVzRW5h
YmxlZCA9IGVuYWJsZWQ7Ci19Ci0KIC0gKEJPT0wpX2xvbmdQcmVzc0FjdGlvbnNFbmFibGVkCiB7
CiAgICAgcmV0dXJuIF9sb25nUHJlc3NBY3Rpb25zRW5hYmxlZDsKQEAgLTEyODAsNyArMTI4Miwy
MiBAQCAtICh2b2lkKXNldFJlcXVpcmVzVXNlckFjdGlvbkZvck1lZGlhUGxheWJhY2s6KEJPT0wp
cmVxdWlyZXNVc2VyQWN0aW9uRm9yTWVkaWFQbAogewogICAgIHNlbGYubWVkaWFUeXBlc1JlcXVp
cmluZ1VzZXJBY3Rpb25Gb3JQbGF5YmFjayA9IHJlcXVpcmVzVXNlckFjdGlvbkZvck1lZGlhUGxh
eWJhY2sgPyBXS0F1ZGlvdmlzdWFsTWVkaWFUeXBlQWxsIDogV0tBdWRpb3Zpc3VhbE1lZGlhVHlw
ZU5vbmU7CiB9CisjZW5kaWYgLy8gUExBVEZPUk0oSU9TX0ZBTUlMWSkKKworQGVuZAorCitAaW1w
bGVtZW50YXRpb24gV0tXZWJWaWV3Q29uZmlndXJhdGlvbiAoV0tQcml2YXRlRGVwcmVjYXRlZCkK
KworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCistIChCT09MKV90ZXh0SW50ZXJhY3Rpb25HZXN0
dXJlc0VuYWJsZWQKK3sKKyAgICByZXR1cm4gX3RleHRJbnRlcmFjdGlvbkdlc3R1cmVzRW5hYmxl
ZDsKK30KIAorLSAodm9pZClfc2V0VGV4dEludGVyYWN0aW9uR2VzdHVyZXNFbmFibGVkOihCT09M
KWVuYWJsZWQKK3sKKyAgICBfdGV4dEludGVyYWN0aW9uR2VzdHVyZXNFbmFibGVkID0gZW5hYmxl
ZDsKK30KICNlbmRpZiAvLyBQTEFURk9STShJT1NfRkFNSUxZKQogCiBAZW5kCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Q29uZmlndXJhdGlv
blByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdD
b25maWd1cmF0aW9uUHJpdmF0ZS5oCmluZGV4IDNkOTk1MTMyYzE3MThmZTUwOWM2YWE2MTg1ZDUw
MWIxOTUzODRlYmYuLjg2YjljZWIyYTcxZjhlODhlODU5NTA2YjA2MTNlMzc5NzdhNDg0MDAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25m
aWd1cmF0aW9uUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1dlYlZpZXdDb25maWd1cmF0aW9uUHJpdmF0ZS5oCkBAIC04OSw3ICs4OSw2IEBAIHR5cGVk
ZWYgTlNfRU5VTShOU1VJbnRlZ2VyLCBfV0tEcmFnTGlmdERlbGF5KSB7CiBAcHJvcGVydHkgKG5v
bmF0b21pYywgc2V0dGVyPV9zZXRJbmxpbmVNZWRpYVBsYXliYWNrUmVxdWlyZXNQbGF5c0lubGlu
ZUF0dHJpYnV0ZTopIEJPT0wgX2lubGluZU1lZGlhUGxheWJhY2tSZXF1aXJlc1BsYXlzSW5saW5l
QXR0cmlidXRlIFdLX0FQSV9BVkFJTEFCTEUoaW9zKDEwLjApKTsKIEBwcm9wZXJ0eSAobm9uYXRv
bWljLCBzZXR0ZXI9X3NldEFsbG93c0lubGluZU1lZGlhUGxheWJhY2tBZnRlckZ1bGxzY3JlZW46
KSBCT09MIF9hbGxvd3NJbmxpbmVNZWRpYVBsYXliYWNrQWZ0ZXJGdWxsc2NyZWVuICBXS19BUElf
QVZBSUxBQkxFKGlvcygxMC4wKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRE
cmFnTGlmdERlbGF5OikgX1dLRHJhZ0xpZnREZWxheSBfZHJhZ0xpZnREZWxheSBXS19BUElfQVZB
SUxBQkxFKGlvcygxMS4wKSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRUZXh0
SW50ZXJhY3Rpb25HZXN0dXJlc0VuYWJsZWQ6KSBCT09MIF90ZXh0SW50ZXJhY3Rpb25HZXN0dXJl
c0VuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShpb3MoMTIuMCkpOwogQHByb3BlcnR5IChub25hdG9t
aWMsIHNldHRlcj1fc2V0TG9uZ1ByZXNzQWN0aW9uc0VuYWJsZWQ6KSBCT09MIF9sb25nUHJlc3NB
Y3Rpb25zRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKGlvcygxMi4wKSk7CiBAcHJvcGVydHkgKG5v
bmF0b21pYywgc2V0dGVyPV9zZXRTeXN0ZW1QcmV2aWV3RW5hYmxlZDopIEJPT0wgX3N5c3RlbVBy
ZXZpZXdFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUoaW9zKDEyLjApKTsKIEBwcm9wZXJ0eSAobm9u
YXRvbWljLCBzZXR0ZXI9X3NldFNob3VsZERlY2lkZVBvbGljeUJlZm9yZUxvYWRpbmdRdWlja0xv
b2tQcmV2aWV3OikgQk9PTCBfc2hvdWxkRGVjaWRlUG9saWN5QmVmb3JlTG9hZGluZ1F1aWNrTG9v
a1ByZXZpZXcgV0tfQVBJX0FWQUlMQUJMRShpb3MoMTMuMCkpOwpAQCAtMTIzLDMgKzEyMiwxMyBA
QCB0eXBlZGVmIE5TX0VOVU0oTlNVSW50ZWdlciwgX1dLRHJhZ0xpZnREZWxheSkgewogQHByb3Bl
cnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0UHJvY2Vzc0Rpc3BsYXlOYW1lOikgTlNTdHJpbmcg
Kl9wcm9jZXNzRGlzcGxheU5hbWUgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwg
aW9zKFdLX0lPU19UQkEpKTsKIAogQGVuZAorCisjaWYgVEFSR0VUX09TX0lQSE9ORQorCitAaW50
ZXJmYWNlIFdLV2ViVmlld0NvbmZpZ3VyYXRpb24gKFdLUHJpdmF0ZURlcHJlY2F0ZWQpCisKK0Bw
cm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFRleHRJbnRlcmFjdGlvbkdlc3R1cmVzRW5h
YmxlZDopIEJPT0wgX3RleHRJbnRlcmFjdGlvbkdlc3R1cmVzRW5hYmxlZCBXS19BUElfREVQUkVD
QVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJXS1ByZWZlcmVuY2VzLnRleHRJbnRlcmFjdGlvbkdlc3R1
cmVzRW5hYmxlZCIsIGlvcygxMi4wLCBXS19JT1NfVEJBKSk7CisKK0BlbmQKKworI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCA2ZWQxYzY5YzA4ZmM1
NTlmZTJhM2YzYjkzOTUwZWE4MjhkNjBkNGJmLi4wZTM2MTNhY2M1ODM5OWM3ZjM2NzZjMTY3OGNl
YzNmYzY3MWNlOGNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAK
QEAgLTc5NTIsNiArNzk1Miw4IEBAIFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMgV2ViUGFnZVBy
b3h5OjpjcmVhdGlvblBhcmFtZXRlcnMoV2ViUHJvY2Vzc1Byb3h5JiBwcm9jCiAjaWYgRU5BQkxF
KEFQUF9CT1VORF9ET01BSU5TKQogICAgIHBhcmFtZXRlcnMubmVlZHNJbkFwcEJyb3dzZXJQcml2
YWN5UXVpcmtzID0gcHJlZmVyZW5jZXMoKS5uZWVkc0luQXBwQnJvd3NlclByaXZhY3lRdWlya3Mo
KTsKICNlbmRpZgorICAgIAorICAgIHBhcmFtZXRlcnMudGV4dEludGVyYWN0aW9uR2VzdHVyZXNF
bmFibGVkID0gcHJlZmVyZW5jZXMoKS50ZXh0SW50ZXJhY3Rpb25HZXN0dXJlc0VuYWJsZWQoKTsK
IAogICAgIHJldHVybiBwYXJhbWV0ZXJzOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KaW5kZXggYjk4ZTg3MTEy
MTc4NDg5MTMwZWFlMWM4YmU0NTc1NzJjNTE5NTY4My4uYzkwMGM0MWNlMTVlN2FiMWM1OWZlNTQz
ZGU1MWUxNmZhMDA4NGQzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9z
L1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCkBAIC0yNTMyLDggKzI1MzIsMTMgQEAg
LSAoQk9PTCljYW5TaG93Tm9uRW1wdHlTZWxlY3Rpb25WaWV3CiAKIC0gKEJPT0wpaGFzU2VsZWN0
YWJsZVBvc2l0aW9uQXRQb2ludDooQ0dQb2ludClwb2ludAogeworICAgIEFMTE9XX0RFUFJFQ0FU
RURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgaWYgKCFzZWxmLndlYlZpZXcuY29uZmlndXJhdGlv
bi5fdGV4dEludGVyYWN0aW9uR2VzdHVyZXNFbmFibGVkKQogICAgICAgICByZXR1cm4gTk87Cisg
ICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECisKKyAgICBpZiAoIV9wYWdlLT5w
cmVmZXJlbmNlcygpLnRleHRJbnRlcmFjdGlvbkdlc3R1cmVzRW5hYmxlZCgpKQorICAgICAgICBy
ZXR1cm4gTk87CiAKICAgICBpZiAoX3N1cHByZXNzU2VsZWN0aW9uQXNzaXN0YW50UmVhc29ucykK
ICAgICAgICAgcmV0dXJuIE5POwpAQCAtMjU1MCw5ICsyNTU1LDE0IEBAIC0gKEJPT0wpaGFzU2Vs
ZWN0YWJsZVBvc2l0aW9uQXRQb2ludDooQ0dQb2ludClwb2ludAogCiAtIChCT09MKXBvaW50SXNO
ZWFyTWFya2VkVGV4dDooQ0dQb2ludClwb2ludAogeworICAgIEFMTE9XX0RFUFJFQ0FURURfREVD
TEFSQVRJT05TX0JFR0lOCiAgICAgaWYgKCFzZWxmLndlYlZpZXcuY29uZmlndXJhdGlvbi5fdGV4
dEludGVyYWN0aW9uR2VzdHVyZXNFbmFibGVkKQogICAgICAgICByZXR1cm4gTk87CisgICAgQUxM
T1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAKKyAgICBpZiAoIV9wYWdlLT5wcmVmZXJl
bmNlcygpLnRleHRJbnRlcmFjdGlvbkdlc3R1cmVzRW5hYmxlZCgpKQorICAgICAgICByZXR1cm4g
Tk87CisgICAgCiAgICAgaWYgKF9zdXBwcmVzc1NlbGVjdGlvbkFzc2lzdGFudFJlYXNvbnMpCiAg
ICAgICAgIHJldHVybiBOTzsKIApAQCAtMjU2NCw5ICsyNTc0LDE0IEBAIC0gKEJPT0wpcG9pbnRJ
c05lYXJNYXJrZWRUZXh0OihDR1BvaW50KXBvaW50CiAKIC0gKEJPT0wpdGV4dEludGVyYWN0aW9u
R2VzdHVyZTooVUlXS0dlc3R1cmVUeXBlKWdlc3R1cmUgc2hvdWxkQmVnaW5BdFBvaW50OihDR1Bv
aW50KXBvaW50CiB7CisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAg
ICBpZiAoIXNlbGYud2ViVmlldy5jb25maWd1cmF0aW9uLl90ZXh0SW50ZXJhY3Rpb25HZXN0dXJl
c0VuYWJsZWQpCiAgICAgICAgIHJldHVybiBOTzsKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xB
UkFUSU9OU19FTkQKIAorICAgIGlmICghX3BhZ2UtPnByZWZlcmVuY2VzKCkudGV4dEludGVyYWN0
aW9uR2VzdHVyZXNFbmFibGVkKCkpCisgICAgICAgIHJldHVybiBOTzsKKyAgICAKICAgICBpZiAo
X2RvbVBhc3RlUmVxdWVzdEhhbmRsZXIpCiAgICAgICAgIHJldHVybiBOTzsKIApAQCAtMzI4NSw4
ICszMzAwLDEzIEBAIC0gKFVJQ29sb3IgKilzZWxlY3Rpb25IaWdobGlnaHRDb2xvcgogCiAtIChV
SUNvbG9yICopX2Nhc2NhZGVJbnRlcmFjdGlvblRpbnRDb2xvcgogeworICAgIEFMTE9XX0RFUFJF
Q0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgaWYgKCFzZWxmLndlYlZpZXcuY29uZmlndXJh
dGlvbi5fdGV4dEludGVyYWN0aW9uR2VzdHVyZXNFbmFibGVkKQogICAgICAgICByZXR1cm4gW1VJ
Q29sb3IgY2xlYXJDb2xvcl07CisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5E
CisKKyAgICBpZiAoIV9wYWdlLT5wcmVmZXJlbmNlcygpLnRleHRJbnRlcmFjdGlvbkdlc3R1cmVz
RW5hYmxlZCgpKQorICAgICAgICByZXR1cm4gW1VJQ29sb3IgY2xlYXJDb2xvcl07CiAKICAgICBp
ZiAoIV9wYWdlLT5lZGl0b3JTdGF0ZSgpLmlzTWlzc2luZ1Bvc3RMYXlvdXREYXRhKSB7CiAgICAg
ICAgIFdlYkNvcmU6OkNvbG9yIGNhcmV0Q29sb3IgPSBfcGFnZS0+ZWRpdG9yU3RhdGUoKS5wb3N0
TGF5b3V0RGF0YSgpLmNhcmV0Q29sb3I7CkBAIC0zNTY4LDYgKzM1ODgsOSBAQCAtICh2b2lkKV9w
YXN0ZUFzUXVvdGF0aW9uRm9yV2ViVmlldzooaWQpc2VuZGVyCiAKIC0gKHZvaWQpc2VsZWN0Rm9y
V2ViVmlldzooaWQpc2VuZGVyCiB7CisgICAgaWYgKCFfcGFnZS0+cHJlZmVyZW5jZXMoKS50ZXh0
SW50ZXJhY3Rpb25HZXN0dXJlc0VuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuOworCiAgICAgW190
ZXh0SW50ZXJhY3Rpb25Bc3Npc3RhbnQgc2VsZWN0V29yZF07CiAgICAgLy8gV2UgY2Fubm90IHVz
ZSBzZWxlY3RXb3JkIGNvbW1hbmQsIGJlY2F1c2Ugd2Ugd2FudCB0byBiZSBhYmxlIHRvIHNlbGVj
dCB0aGUgd29yZCBldmVuIHdoZW4gaXQgaXMgdGhlIGxhc3QgaW4gdGhlIHBhcmFncmFwaC4KICAg
ICBfcGFnZS0+ZXh0ZW5kU2VsZWN0aW9uKFdlYkNvcmU6OlRleHRHcmFudWxhcml0eTo6V29yZEdy
YW51bGFyaXR5KTsKQEAgLTM1NzUsNiArMzU5OCw5IEBAIC0gKHZvaWQpc2VsZWN0Rm9yV2ViVmll
dzooaWQpc2VuZGVyCiAKIC0gKHZvaWQpc2VsZWN0QWxsRm9yV2ViVmlldzooaWQpc2VuZGVyCiB7
CisgICAgaWYgKCFfcGFnZS0+cHJlZmVyZW5jZXMoKS50ZXh0SW50ZXJhY3Rpb25HZXN0dXJlc0Vu
YWJsZWQoKSkKKyAgICAgICAgcmV0dXJuOworCiAgICAgW190ZXh0SW50ZXJhY3Rpb25Bc3Npc3Rh
bnQgc2VsZWN0QWxsOnNlbmRlcl07CiAgICAgX3BhZ2UtPnNlbGVjdEFsbCgpOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCAzYzA1NGU4MzQ4
ZTA5MmMwOTQ3MDc3ZmRlMWVlOTM5NTQ0NmMxZjExLi4yNGFjYWMwNzQ2OTFiYjczYWJiZmU0Zjk5
NzYzZmI3OGNmZmZlNGJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmNwcApAQCAtNTY3LDYgKzU2Nyw4IEBAIFdlYlBhZ2U6OldlYlBhZ2UoUGFnZUlkZW50
aWZpZXIgcGFnZUlELCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzJiYgcGFyYW1ldGVycykKICAg
ICBwYWdlQ29uZmlndXJhdGlvbi5sb2Fkc0Zyb21OZXR3b3JrID0gcGFyYW1ldGVycy5sb2Fkc0Zy
b21OZXR3b3JrOwogICAgIHBhZ2VDb25maWd1cmF0aW9uLnNob3VsZFJlbGF4VGhpcmRQYXJ0eUNv
b2tpZUJsb2NraW5nID0gcGFyYW1ldGVycy5zaG91bGRSZWxheFRoaXJkUGFydHlDb29raWVCbG9j
a2luZzsKIAorICAgIHBhZ2VDb25maWd1cmF0aW9uLnRleHRJbnRlcmFjdGlvbkdlc3R1cmVzRW5h
YmxlZCA9IHBhcmFtZXRlcnMudGV4dEludGVyYWN0aW9uR2VzdHVyZXNFbmFibGVkOworICAgIAog
ICAgIGlmICghcGFyYW1ldGVycy5jcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2xDaGVja0VuYWJsZWQp
CiAgICAgICAgIENyb3NzT3JpZ2luQWNjZXNzQ29udHJvbENoZWNrRGlzYWJsZXI6OnNpbmdsZXRv
bigpLnNldENyb3NzT3JpZ2luQWNjZXNzQ29udHJvbENoZWNrRW5hYmxlZChmYWxzZSk7CiAKQEAg
LTM3OTgsNiArMzgwMCw4IEBAIHZvaWQgV2ViUGFnZTo6dXBkYXRlUHJlZmVyZW5jZXMoY29uc3Qg
V2ViUHJlZmVyZW5jZXNTdG9yZSYgc3RvcmUpCiAjaWYgRU5BQkxFKElQQ19URVNUSU5HX0FQSSkK
ICAgICBtX2lwY1Rlc3RpbmdBUElFbmFibGVkID0gc3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5KFdl
YlByZWZlcmVuY2VzS2V5OjppcGNUZXN0aW5nQVBJRW5hYmxlZEtleSgpKTsKICNlbmRpZgorCisg
ICAgbV9wYWdlLT5zZXRUZXh0SW50ZXJhY3Rpb25HZXN0dXJlc0VuYWJsZWQoc3RvcmUuZ2V0Qm9v
bFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5Ojp0ZXh0SW50ZXJhY3Rpb25HZXN0dXJlc0Vu
YWJsZWRLZXkoKSkpOwogfQogCiAjaWYgRU5BQkxFKERBVEFfREVURUNUSU9OKQpkaWZmIC0tZ2l0
IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDYwMWQ4NGQyMWE5YzMy
Zjg0MmExNjlkM2M0YTg5NWU5YmJlNzQ1N2QuLjAzZDg0Y2YzYTJiMGE4M2RiYThlOTVkODQ0ZDY5
NjM2MDk0MmM5NDMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwyOCBAQAorMjAyMC0xMi0wMiAgS2F0ZSBDaGVuZXkgIDxrYXRoZXJp
bmVfY2hlbmV5QGFwcGxlLmNvbT4KKworICAgICAgICBDcmVhdGUgQVBJIHRvIGVuYWJsZS9kaXNh
YmxlIHRleHQgaW50ZXJhY3Rpb24gZ2VzdHVyZXMgaW4gV0tXZWJWaWV3CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTc3ODQKKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzYzNDA2MjQxPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEFkZCBBUEkgdGVzdCBjb3ZlcmFnZSBmb3IgbWFjT1MgYW5kIHN1cHBvcnQg
Zm9yIGxheW91dCB0ZXN0cyBmb3IgaU9TLgorICAgICAgICBBUEkgdGVzdHMgZG8gbm90IHN1cHBv
cnQgdXNlciBnZXN0dXJlcyB3aGljaCBpcyB3aHkgaU9TIHRlc3RzIG11c3QKKyAgICAgICAgdXNl
IFdlYktpdFRlc3RSdW5uZXIuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRB
UEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL1dLV2ViVmlld0Rpc2FibGVTZWxlY3Rpb24ubW06IEFkZGVkLgorICAg
ICAgICAoVEVTVCk6CisgICAgICAgIChjbGlja0FuZERyYWdUb1NlbGVjdFRleHQpOgorICAgICAg
ICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvdHJ5LXRleHQtc2VsZWN0LXdpdGgt
ZGlzYWJsZWQtdGV4dC1pbnRlcmFjdGlvbi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBXZWJLaXRU
ZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xs
ZXI6OnJlc2V0UHJlZmVyZW5jZXNUb0NvbnNpc3RlbnRWYWx1ZXMpOgorICAgICAgICAqIFdlYktp
dFRlc3RSdW5uZXIvVGVzdE9wdGlvbnMuY3BwOgorICAgICAgICAoV1RSOjpUZXN0T3B0aW9uczo6
ZGVmYXVsdHMpOgorICAgICAgICAoV1RSOjpUZXN0T3B0aW9uczo6a2V5VHlwZU1hcHBpbmcpOgor
ICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdE9wdGlvbnMuaDoKKyAgICAgICAgKFdUUjo6
VGVzdE9wdGlvbnM6OnRleHRJbnRlcmFjdGlvbkdlc3R1cmVzRW5hYmxlZCBjb25zdCk6CisKIDIw
MjAtMTEtMzAgIEFha2FzaCBKYWluICA8YWFrYXNoX2phaW5AYXBwbGUuY29tPgogCiAgICAgICAg
IFtidWlsZC53ZWJraXQub3JnXSBVcGRhdGUgUnVuVGVzdDI2MlRlc3RzIHN0ZXAgZm9yIG5ldyBi
dWlsZGJvdApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRB
UEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAzMTA5MmMyNmUzOGVkN2MxOTA3NmVm
MmUyODNiYjcwNzhhNmQ0ODMxLi44OWQ1MDc3NzliMjI0YTIwZDkzM2VmMzZhMWQyNzY0OTgyZWQ2
YmE4IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRB
UEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjczLDYgKzI3Myw4IEBACiAJCTQ2RkEy
RkVFMjM4NDZDQTUwMDBDQ0IwQyAvKiBIVFRQSGVhZGVyTWFwLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2RkEyRkVEMjM4NDZDOUEwMDBDQ0IwQyAv
KiBIVFRQSGVhZGVyTWFwLmNwcCAqLzsgfTsKIAkJNDZGQUNGNzQyM0U4ODQyMzAwQTlFQkM2IC8q
IGJlZm9yZXVubG9hZC1zbG93Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNDZGQUNGNzMyM0U4ODNFRTAwQTlFQkM2IC8qIGJlZm9yZXVu
bG9hZC1zbG93Lmh0bWwgKi87IH07CiAJCTQ5MDlFRTNBMkQwOTQ4MEM4ODk4MkQ1NiAvKiBNYXJr
YWJsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBF
Qzc5RjE2OEJFNDU0RTU3OUU0MTdCMDUgLyogTWFya2FibGUuY3BwICovOyB9OworCQk0OTUyQkU1
RTI1NzgxMTU2MDBCMEFFRjEgLyogV0tXZWJWaWV3RGlzYWJsZVNlbGVjdGlvbi5tbSBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5NTJCRTVEMjU3ODExNTUw
MEIwQUVGMSAvKiBXS1dlYlZpZXdEaXNhYmxlU2VsZWN0aW9uLm1tICovOyB9OworCQk0OTUyQkU1
RjI1NzgxNkY4MDBCMEFFRjEgLyogdHJ5LXRleHQtc2VsZWN0LXdpdGgtZGlzYWJsZWQtdGV4dC1p
bnRlcmFjdGlvbi5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDQ5NTJCRTVDMjU3ODExMzkwMEIwQUVGMSAvKiB0cnktdGV4dC1zZWxlY3Qt
d2l0aC1kaXNhYmxlZC10ZXh0LWludGVyYWN0aW9uLmh0bWwgKi87IH07CiAJCTQ5NzFCMTE4MjQ1
MUYyOUEwMDk2OTk0RCAvKiBpbmNvcnJlY3RDcmVhdGVUYWJsZVNjaGVtYS5kYiBpbiBDb3B5IFJl
c291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OTcxQjExNzI0NTFG
Mjc4MDA5Njk5NEQgLyogaW5jb3JyZWN0Q3JlYXRlVGFibGVTY2hlbWEuZGIgKi87IH07CiAJCTQ5
NzFCMTIwMjQ1M0E4OEMwMDk2OTk0RCAvKiBtaXNzaW5nVG9wRnJhbWVVbmlxdWVSZWRpcmVjdFNh
bWVTaXRlU3RyaWN0VGFibGVTY2hlbWEuZGIgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDk3MUIxMUYyNDUzQTg3RjAwOTY5OTREIC8qIG1pc3Np
bmdUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0U2FtZVNpdGVTdHJpY3RUYWJsZVNjaGVtYS5kYiAqLzsg
fTsKIAkJNDk3MUIxMkYyNDYyM0EzQjAwOTY5OTREIC8qIGJhc2ljSVRQRGF0YWJhc2UuZGItc2ht
IGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OTcxQjEy
RDI0NjIzQTNCMDA5Njk5NEQgLyogYmFzaWNJVFBEYXRhYmFzZS5kYi1zaG0gKi87IH07CkBAIC0x
NjMyLDYgKzE2MzQsNyBAQAogCQkJCUY0NEM3QTA1MjBGQUFFM0MwMDE0NDc4QyAvKiB0ZXh0LXdp
dGgtZGVmZXJyZWQtc2NyaXB0Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJRjQxQUI5
QUExRUY0Njk2QjAwODNGQTA4IC8qIHRleHRhcmVhLXRvLWlucHV0Lmh0bWwgaW4gQ29weSBSZXNv
dXJjZXMgKi8sCiAJCQkJQzIyRkEzMkQyMjhGOEFFQjAwOUQ3OTg4IC8qIFRleHRXaWR0aC5odG1s
IGluIENvcHkgUmVzb3VyY2VzICovLAorCQkJCTQ5NTJCRTVGMjU3ODE2RjgwMEIwQUVGMSAvKiB0
cnktdGV4dC1zZWxlY3Qtd2l0aC1kaXNhYmxlZC10ZXh0LWludGVyYWN0aW9uLmh0bWwgaW4gQ29w
eSBSZXNvdXJjZXMgKi8sCiAJCQkJRjQ0NTFDNzYxRUI4RkQ4OTAwMjBDNURBIC8qIHR3by1wYXJh
Z3JhcGgtY29udGVudGVkaXRhYmxlLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJMUQ2
N0JGREQyNDMzRUU2NjAwNkI1MDQ3IC8qIHR3by12aWRlb3MuaHRtbCBpbiBDb3B5IFJlc291cmNl
cyAqLywKIAkJCQlDNTQwRjc4NDE1MkU1QTlBMDBBNDBDOEMgLyogdmVyYm9zZU1hcmt1cC5odG1s
IGluIENvcHkgUmVzb3VyY2VzICovLApAQCAtMjAwMiw2ICsyMDA1LDggQEAKIAkJNDZGMDNDMUIy
NTVCMkQzNjAwQUE1MUM1IC8qIGF1ZGlvLWNvbnRleHQtcGxheWluZy5odG1sICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dC5odG1sOyBwYXRoID0gImF1ZGlvLWNvbnRleHQtcGxheWluZy5odG1sIjsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDZGQTJGRUQyMzg0NkM5QTAwMENDQjBDIC8qIEhUVFBIZWFk
ZXJNYXAuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSFRUUEhlYWRl
ck1hcC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2RkFDRjczMjNFODgzRUUw
MEE5RUJDNiAvKiBiZWZvcmV1bmxvYWQtc2xvdy5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBw
YXRoID0gImJlZm9yZXVubG9hZC1zbG93Lmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk0OTUyQkU1QzI1NzgxMTM5MDBCMEFFRjEgLyogdHJ5LXRleHQtc2VsZWN0LXdpdGgtZGlz
YWJsZWQtdGV4dC1pbnRlcmFjdGlvbi5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0g
InRyeS10ZXh0LXNlbGVjdC13aXRoLWRpc2FibGVkLXRleHQtaW50ZXJhY3Rpb24uaHRtbCI7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ5NTJCRTVEMjU3ODExNTUwMEIwQUVGMSAvKiBX
S1dlYlZpZXdEaXNhYmxlU2VsZWN0aW9uLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBwYXRoID0gV0tXZWJWaWV3RGlzYWJsZVNlbGVjdGlvbi5tbTsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNDk3MUIxMTcyNDUxRjI3ODAwOTY5OTREIC8qIGluY29ycmVjdENyZWF0
ZVRhYmxlU2NoZW1hLmRiICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gZmlsZTsgcGF0aCA9IGluY29ycmVjdENyZWF0ZVRhYmxlU2NoZW1hLmRiOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0OTcxQjExRjI0NTNBODdGMDA5Njk5NEQgLyogbWlz
c2luZ1RvcEZyYW1lVW5pcXVlUmVkaXJlY3RTYW1lU2l0ZVN0cmljdFRhYmxlU2NoZW1hLmRiICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gZmlsZTsgbmFt
ZSA9IG1pc3NpbmdUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0U2FtZVNpdGVTdHJpY3RUYWJsZVNjaGVt
YS5kYjsgcGF0aCA9IFRlc3RzL1dlYktpdENvY29hL21pc3NpbmdUb3BGcmFtZVVuaXF1ZVJlZGly
ZWN0U2FtZVNpdGVTdHJpY3RUYWJsZVNjaGVtYS5kYjsgc291cmNlVHJlZSA9IFNPVVJDRV9ST09U
OyB9OwogCQk0OTcxQjEyQzI0NjIzOUQzMDA5Njk5NEQgLyogYmFzaWNJVFBEYXRhYmFzZS5kYiAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IGZpbGU7IHBh
dGggPSBiYXNpY0lUUERhdGFiYXNlLmRiOyBzb3VyY2VUcmVlID0gU09VUkNFX1JPT1Q7IH07CkBA
IC0zNDUzLDYgKzM0NTgsNyBAQAogCQkJCTVDQjNDRTM4MUZBMTY5MTcwMEMzQTJENiAvKiBXS1dl
YlZpZXdDb25maWd1cmF0aW9uLm1tICovLAogCQkJCTdDNDE3RjMxMUQxOUUxNDgwMEI4RUY1MyAv
KiBXS1dlYlZpZXdEZWZhdWx0TmF2aWdhdGlvbkRlbGVnYXRlLm1tICovLAogCQkJCTQ2RTY2QThG
MUYwRDc1NTkwMDI2RDgzQyAvKiBXS1dlYlZpZXdEaWFnbm9zdGljTG9nZ2luZy5tbSAqLywKKwkJ
CQk0OTUyQkU1RDI1NzgxMTU1MDBCMEFFRjEgLyogV0tXZWJWaWV3RGlzYWJsZVNlbGVjdGlvbi5t
bSAqLywKIAkJCQkyREI2NDc4NzFGNDE2MUY3MDA1MUE4OUUgLyogV0tXZWJWaWV3RG9lc05vdExv
Z0R1cmluZ0luaXRpYWxpemF0aW9uLm1tICovLAogCQkJCUY0ODExRTU4MjE5NDBCNDQwMEE1RTBG
RCAvKiBXS1dlYlZpZXdFZGl0QWN0aW9ucy5tbSAqLywKIAkJCQkwRjNCOTRBNTFBNzcyNjZDMDBE
RTMyNzIgLyogV0tXZWJWaWV3RXZhbHVhdGVKYXZhU2NyaXB0Lm1tICovLApAQCAtMzkyNSw2ICsz
OTMxLDcgQEAKIAkJCQlGNDRDN0EwNDIwRkFBRTMyMDAxNDQ3OEMgLyogdGV4dC13aXRoLWRlZmVy
cmVkLXNjcmlwdC5odG1sICovLAogCQkJCUY0MUFCOTk1MUVGNDY5MkMwMDgzRkEwOCAvKiB0ZXh0
YXJlYS10by1pbnB1dC5odG1sICovLAogCQkJCUMyMkZBMzJDMjI4Rjg3N0EwMDlENzk4OCAvKiBU
ZXh0V2lkdGguaHRtbCAqLywKKwkJCQk0OTUyQkU1QzI1NzgxMTM5MDBCMEFFRjEgLyogdHJ5LXRl
eHQtc2VsZWN0LXdpdGgtZGlzYWJsZWQtdGV4dC1pbnRlcmFjdGlvbi5odG1sICovLAogCQkJCUY0
NDUxQzc1MUVCOEZEN0MwMDIwQzVEQSAvKiB0d28tcGFyYWdyYXBoLWNvbnRlbnRlZGl0YWJsZS5o
dG1sICovLAogCQkJCUNENTc3NzlCMjExQ0U2Q0UwMDFCMzcxRSAvKiB2aWRlby13aXRoLWF1ZGlv
LWFuZC13ZWItYXVkaW8uaHRtbCAqLywKIAkJCQlDRDU3Nzc5ODIxMUNERThGMDAxQjM3MUUgLyog
d2ViLWF1ZGlvLW9ubHkuaHRtbCAqLywKQEAgLTU2NTIsNiArNTY1OSw3IEBACiAJCQkJNTc5N0ZF
MzExRUIxNUE2ODAwQjJGNEEwIC8qIE5hdmlnYXRpb25DbGllbnREZWZhdWx0Q3J5cHRvLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUNEQ0ZGRUMxMjJFMjZBMTUwMERGNDIyMyAvKiBOb1BhdXNlV2hl
blN3aXRjaGluZ1RhYnMubW0gaW4gU291cmNlcyAqLywKIAkJCQk3QUQzRkU4RTFENzYxMzEyMDBC
MTY5QTQgLyogVHJhbnNmb3JtYXRpb25NYXRyaXguY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNDk1
MkJFNUUyNTc4MTE1NjAwQjBBRUYxIC8qIFdLV2ViVmlld0Rpc2FibGVTZWxlY3Rpb24ubW0gaW4g
U291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5n
ID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Q29jb2EvV0tXZWJWaWV3RGlzYWJsZVNlbGVjdGlvbi5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Q29jb2EvV0tXZWJWaWV3RGlzYWJsZVNlbGVjdGlvbi5tbQpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5kZTlhNDBjZTU1MWY2MWIzMjdhNmMzMDVkZmI1NGY4NGEwZDE2OTI2Ci0tLSAvZGV2L251bGwK
KysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS1dlYlZpZXdEaXNh
YmxlU2VsZWN0aW9uLm1tCkBAIC0wLDAgKzEsOTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJj
b25maWcuaCIKKworI2ltcG9ydCAiVGVzdFdLV2ViVmlldy5oIgorI2ltcG9ydCA8V2ViS2l0L1dL
V2ViVmlld1ByaXZhdGUuaD4KKyNpbXBvcnQgPFdlYktpdC9XS1dlYlZpZXdQcml2YXRlRm9yVGVz
dGluZy5oPgorI2ltcG9ydCA8d3RmL0Jsb2NrUHRyLmg+CisjaW1wb3J0IDx3dGYvUmV0YWluUHRy
Lmg+CisKKyNpZiBQTEFURk9STShNQUMpCisKK1RFU1QoV0tXZWJWaWV3RGlzYWJsZVNlbGVjdGlv
biwgRG91YmxlQ2xpY2tEb2VzTm90U2VsZWN0V2hlblRleHRJbnRlcmFjdGlvbnNBcmVEaXNhYmxl
ZCkKK3sKKyAgICBSZXRhaW5QdHI8VGVzdFdLV2ViVmlldz4gd2ViVmlldyA9IGFkb3B0TlMoW1tU
ZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgNDAwLCA0
MDApXSk7CisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRUZXN0UGFnZU5hbWVkOkAidHJ5
LXRleHQtc2VsZWN0LXdpdGgtZGlzYWJsZWQtdGV4dC1pbnRlcmFjdGlvbiJdOworCisgICAgW3dl
YlZpZXcgc2VuZENsaWNrc0F0UG9pbnQ6TlNNYWtlUG9pbnQoMjAwLCAyMDApIG51bWJlck9mQ2xp
Y2tzOjJdOworICAgIFt3ZWJWaWV3IHdhaXRGb3JQZW5kaW5nTW91c2VFdmVudHNdOworCisgICAg
TlNTdHJpbmcgKnNlbGVjdGVkVGV4dCA9IFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFT
Y3JpcHQ6QCJnZXRTZWxlY3Rpb24oKS5nZXRSYW5nZUF0KDApLnRvU3RyaW5nKCkiXTsKKyAgICBF
WFBFQ1RfU1RSRVEoIkhlbGxvIiwgc2VsZWN0ZWRUZXh0LlVURjhTdHJpbmcpOworCisgICAgLy8g
Q2xlYXIgdGhlIHNlbGVjdGlvbiBieSBjbGlja2luZyBvbmNlLgorICAgIFt3ZWJWaWV3IHNlbmRD
bGlja3NBdFBvaW50Ok5TTWFrZVBvaW50KDIwMCwgMjAwKSBudW1iZXJPZkNsaWNrczoxXTsKKyAg
ICBbd2ViVmlldyB3YWl0Rm9yUGVuZGluZ01vdXNlRXZlbnRzXTsKKworICAgIC8vIERpc2FibGUg
dGV4dCBzZWxlY3Rpb24gdGhlbiBkb3VibGUgY2xpY2sgYWdhaW4uIFRoaXMgc2hvdWxkIHJlc3Vs
dCBpbiBubyB0ZXh0IHNlbGVjdGVkLgorICAgIFt3ZWJWaWV3IGNvbmZpZ3VyYXRpb25dLnByZWZl
cmVuY2VzLnRleHRJbnRlcmFjdGlvbkdlc3R1cmVzRW5hYmxlZCA9IE5POworCisgICAgW3dlYlZp
ZXcgc2VuZENsaWNrc0F0UG9pbnQ6TlNNYWtlUG9pbnQoMjAwLCAyMDApIG51bWJlck9mQ2xpY2tz
OjJdOworICAgIFt3ZWJWaWV3IHdhaXRGb3JQZW5kaW5nTW91c2VFdmVudHNdOworCisgICAgTlNT
dHJpbmcgKnNlbGVjdGVkVGV4dDIgPSBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2Ny
aXB0OkAiZ2V0U2VsZWN0aW9uKCkuZ2V0UmFuZ2VBdCgwKS50b1N0cmluZygpIl07CisgICAgRVhQ
RUNUX1NUUkVRKCIiLCBzZWxlY3RlZFRleHQyLlVURjhTdHJpbmcpOworfQorCitzdGF0aWMgTlNT
dHJpbmcgKmNsaWNrQW5kRHJhZ1RvU2VsZWN0VGV4dChUZXN0V0tXZWJWaWV3ICp3ZWJWaWV3KQor
eworICAgIFt3ZWJWaWV3IG1vdXNlRW50ZXJBdFBvaW50OkNHUG9pbnRNYWtlKDE1MCwgMjAwKV07
CisgICAgW3dlYlZpZXcgbW91c2VNb3ZlVG9Qb2ludDpDR1BvaW50TWFrZSgxNTAsIDIwMCkgd2l0
aEZsYWdzOjBdOworICAgIFt3ZWJWaWV3IG1vdXNlRG93bkF0UG9pbnQ6Q0dQb2ludE1ha2UoMTUw
LCAyMDApIHNpbXVsYXRlUHJlc3N1cmU6Tk9dOworICAgIFt3ZWJWaWV3IHdhaXRGb3JQZW5kaW5n
TW91c2VFdmVudHNdOworCisgICAgW3dlYlZpZXcgbW91c2VEcmFnVG9Qb2ludDpDR1BvaW50TWFr
ZSg5MDAsIDIwMCldOworICAgIFt3ZWJWaWV3IHdhaXRGb3JQZW5kaW5nTW91c2VFdmVudHNdOwor
CisgICAgW3dlYlZpZXcgbW91c2VVcEF0UG9pbnQ6Q0dQb2ludE1ha2UoOTAwLCAyMDApXTsKKyAg
ICBbd2ViVmlldyB3YWl0Rm9yUGVuZGluZ01vdXNlRXZlbnRzXTsKKyAgICAKKyAgICByZXR1cm4g
W3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImdldFNlbGVjdGlvbigpLmdl
dFJhbmdlQXQoMCkudG9TdHJpbmcoKSJdOworfQorCitURVNUKFdLV2ViVmlld0Rpc2FibGVTZWxl
Y3Rpb24sIERyYWdEb2VzTm90U2VsZWN0V2hlblRleHRJbnRlcmFjdGlvbnNBcmVEaXNhYmxlZCkK
K3sKKyAgICBSZXRhaW5QdHI8VGVzdFdLV2ViVmlldz4gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0
V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgMTAwMCwgNDAw
KV0pOworICAgIFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkVGVzdFBhZ2VOYW1lZDpAInRyeS10
ZXh0LXNlbGVjdC13aXRoLWRpc2FibGVkLXRleHQtaW50ZXJhY3Rpb24iXTsKKworICAgIE5TU3Ry
aW5nICpzZWxlY3RlZFRleHQgPSBjbGlja0FuZERyYWdUb1NlbGVjdFRleHQod2ViVmlldy5nZXQo
KSk7CisgICAgRVhQRUNUX1NUUkVRKCJIZWxsbyIsIHNlbGVjdGVkVGV4dC5VVEY4U3RyaW5nKTsK
KyAgICAKKyAgICAvLyBDbGVhciB0aGUgc2VsZWN0aW9uIGJ5IGNsaWNraW5nIG9uY2UuCisgICAg
W3dlYlZpZXcgc2VuZENsaWNrc0F0UG9pbnQ6TlNNYWtlUG9pbnQoMjAwLCAyMDApIG51bWJlck9m
Q2xpY2tzOjFdOworICAgIFt3ZWJWaWV3IHdhaXRGb3JQZW5kaW5nTW91c2VFdmVudHNdOworICAg
IAorICAgIC8vIERpc2FibGUgdGV4dCBzZWxlY3Rpb24gdGhlbiBjbGljayBhbmQgZHJhZyBhZ2Fp
bi4gVGhpcyBzaG91bGQgcmVzdWx0IGluIG5vIHRleHQgc2VsZWN0ZWQuCisgICAgW3dlYlZpZXcg
Y29uZmlndXJhdGlvbl0ucHJlZmVyZW5jZXMudGV4dEludGVyYWN0aW9uR2VzdHVyZXNFbmFibGVk
ID0gTk87CisKKyAgICBOU1N0cmluZyAqc2VsZWN0ZWRUZXh0MiA9IGNsaWNrQW5kRHJhZ1RvU2Vs
ZWN0VGV4dCh3ZWJWaWV3LmdldCgpKTsKKyAgICBFWFBFQ1RfU1RSRVEoIiIsIHNlbGVjdGVkVGV4
dDIuVVRGOFN0cmluZyk7Cit9CisKKyNlbmRpZiAvLyBQTEFURk9STShNQUMpCmRpZmYgLS1naXQg
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL3RyeS10ZXh0LXNlbGVjdC13
aXRoLWRpc2FibGVkLXRleHQtaW50ZXJhY3Rpb24uaHRtbCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Q29jb2EvdHJ5LXRleHQtc2VsZWN0LXdpdGgtZGlzYWJsZWQtdGV4dC1pbnRl
cmFjdGlvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVjYzFiMjNmMDNlNWJmOTU4ZjM1ZTFmYTFiNTgzNDg1
ZmJlNDAzZGQKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL3RyeS10ZXh0LXNlbGVjdC13aXRoLWRpc2FibGVkLXRleHQtaW50ZXJhY3Rpb24u
aHRtbApAQCAtMCwwICsxLDE1IEBACis8c3R5bGU+Citib2R5IHsKKyAgICB3aWR0aDogMTAwJTsK
KyAgICBoZWlnaHQ6IDEwMCU7Cit9CisKKyNlZGl0YWJsZSB7CisgICAgd2lkdGg6IDEwMCU7Cisg
ICAgaGVpZ2h0OiA0MDBweDsKKyAgICBmb250LXNpemU6IDQwMHB4OworICAgIHdoaXRlLXNwYWNl
OiBub3dyYXA7CisgICAgYm9yZGVyOiAxcHggYmx1ZSBkYXNoZWQ7Cit9Cis8L3N0eWxlPgorPGRp
diBpZD0iZWRpdGFibGUiIGNvbnRlbnRlZGl0YWJsZT5IZWxsbyB3b3JsZDwvZGl2PgpkaWZmIC0t
Z2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAgYi9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAppbmRleCAwYzZjNjUxNDE3YzIxNmJm
NzczMGFkYTc3YjcxMDZkOTBmYmEyNjMzLi44Y2MyYjNlYTRmMTMwNDZkMWM0ZDI2OGMwMDQ2YTIy
MjExNWFmYTE5IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9s
bGVyLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcApA
QCAtOTA2LDYgKzkwNiw3IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OnJlc2V0UHJlZmVyZW5jZXNU
b0NvbnNpc3RlbnRWYWx1ZXMoY29uc3QgVGVzdE9wdGlvbnMmIG9wdGlvCiAjaWYgRU5BQkxFKEFD
Q0VTU0lCSUxJVFlfSVNPTEFURURfVFJFRSkKICAgICBXS1ByZWZlcmVuY2VzU2V0SXNBY2Nlc3Np
YmlsaXR5SXNvbGF0ZWRUcmVlRW5hYmxlZChwcmVmZXJlbmNlcywgYWNjZXNzaWJpbGl0eUlzb2xh
dGVkVHJlZU1vZGUoKSk7CiAjZW5kaWYKKyAgICBXS1ByZWZlcmVuY2VzU2V0VGV4dEludGVyYWN0
aW9uR2VzdHVyZXNFbmFibGVkKHByZWZlcmVuY2VzLCBvcHRpb25zLnRleHRJbnRlcmFjdGlvbkdl
c3R1cmVzRW5hYmxlZCgpKTsKIAogICAgIHBsYXRmb3JtUmVzZXRQcmVmZXJlbmNlc1RvQ29uc2lz
dGVudFZhbHVlcygpOwogCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RP
cHRpb25zLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdE9wdGlvbnMuY3BwCmluZGV4
IGYzNmQxOWNjMWMzMDI4MGU3NTk4YjFkMjUwYTBlYjVkOWE2ZDU4ZjcuLmNhYWRlNmI5MDY0ZDQx
MTE4NDNlMmIwMDdiNWY2NzQ5YWFjOTkyOGEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvVGVzdE9wdGlvbnMuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdE9w
dGlvbnMuY3BwCkBAIC04Niw2ICs4Niw3IEBAIGNvbnN0IFRlc3RGZWF0dXJlcyYgVGVzdE9wdGlv
bnM6OmRlZmF1bHRzKCkKICAgICAgICAgICAgIHsgInNob3VsZFNob3dUb3VjaGVzIiwgZmFsc2Ug
fSwKICAgICAgICAgICAgIHsgInNob3VsZFNob3dXZWJWaWV3IiwgZmFsc2UgfSwKICAgICAgICAg
ICAgIHsgInNwZWxsQ2hlY2tpbmdEb3RzIiwgZmFsc2UgfSwKKyAgICAgICAgICAgIHsgInRleHRJ
bnRlcmFjdGlvbkdlc3R1cmVzRW5hYmxlZCIsIHRydWUgfSwKICAgICAgICAgICAgIHsgInVzZUNo
YXJhY3RlclNlbGVjdGlvbkdyYW51bGFyaXR5IiwgZmFsc2UgfSwKICAgICAgICAgICAgIHsgInVz
ZURhdGFEZXRlY3Rpb24iLCBmYWxzZSB9LAogICAgICAgICAgICAgeyAidXNlRXBoZW1lcmFsU2Vz
c2lvbiIsIGZhbHNlIH0sCkBAIC0xMzUsNiArMTM2LDcgQEAgY29uc3Qgc3RkOjp1bm9yZGVyZWRf
bWFwPHN0ZDo6c3RyaW5nLCBUZXN0SGVhZGVyS2V5VHlwZT4mIFRlc3RPcHRpb25zOjprZXlUeXBl
TWEKICAgICAgICAgeyAic2hvdWxkU2hvd1RvdWNoZXMiLCBUZXN0SGVhZGVyS2V5VHlwZTo6Qm9v
bFRlc3RSdW5uZXIgfSwKICAgICAgICAgeyAic2hvdWxkU2hvd1dlYlZpZXciLCBUZXN0SGVhZGVy
S2V5VHlwZTo6Qm9vbFRlc3RSdW5uZXIgfSwKICAgICAgICAgeyAic3BlbGxDaGVja2luZ0RvdHMi
LCBUZXN0SGVhZGVyS2V5VHlwZTo6Qm9vbFRlc3RSdW5uZXIgfSwKKyAgICAgICAgeyAidGV4dElu
dGVyYWN0aW9uR2VzdHVyZXNFbmFibGVkIiwgVGVzdEhlYWRlcktleVR5cGU6OkJvb2xUZXN0UnVu
bmVyIH0sCiAgICAgICAgIHsgInVzZUNoYXJhY3RlclNlbGVjdGlvbkdyYW51bGFyaXR5IiwgVGVz
dEhlYWRlcktleVR5cGU6OkJvb2xUZXN0UnVubmVyIH0sCiAgICAgICAgIHsgInVzZURhdGFEZXRl
Y3Rpb24iLCBUZXN0SGVhZGVyS2V5VHlwZTo6Qm9vbFRlc3RSdW5uZXIgfSwKICAgICAgICAgeyAi
dXNlRXBoZW1lcmFsU2Vzc2lvbiIsIFRlc3RIZWFkZXJLZXlUeXBlOjpCb29sVGVzdFJ1bm5lciB9
LApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0T3B0aW9ucy5oIGIvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0T3B0aW9ucy5oCmluZGV4IDJjZmU5Zjc1ZmViODMxYmE0
NmQwNjU5NzMwMWM0MTIzOTQ2ZjhmMDEuLmI5YzEwYmQxYjJlZTA5MmE5ZDQyNzgwZDhjYTgyNjQz
MDk1NTNiNGMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdE9wdGlvbnMu
aAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RPcHRpb25zLmgKQEAgLTYzLDYgKzYz
LDcgQEAgcHVibGljOgogICAgIGJvb2wgc2hvdWxkU2hvd1NwZWxsQ2hlY2tpbmdEb3RzKCkgY29u
c3QgeyByZXR1cm4gYm9vbFRlc3RSdW5uZXJGZWF0dXJlVmFsdWUoInNwZWxsQ2hlY2tpbmdEb3Rz
Iik7IH0KICAgICBib29sIHNob3VsZFNob3dUb3VjaGVzKCkgY29uc3QgeyByZXR1cm4gYm9vbFRl
c3RSdW5uZXJGZWF0dXJlVmFsdWUoInNob3VsZFNob3dUb3VjaGVzIik7IH0KICAgICBib29sIHNo
b3VsZFNob3dXZWJWaWV3KCkgY29uc3QgeyByZXR1cm4gYm9vbFRlc3RSdW5uZXJGZWF0dXJlVmFs
dWUoInNob3VsZFNob3dXZWJWaWV3Iik7IH0KKyAgICBib29sIHRleHRJbnRlcmFjdGlvbkdlc3R1
cmVzRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIGJvb2xUZXN0UnVubmVyRmVhdHVyZVZhbHVlKCJ0
ZXh0SW50ZXJhY3Rpb25HZXN0dXJlc0VuYWJsZWQiKTsgfQogICAgIGJvb2wgdXNlQ2hhcmFjdGVy
U2VsZWN0aW9uR3JhbnVsYXJpdHkoKSBjb25zdCB7IHJldHVybiBib29sVGVzdFJ1bm5lckZlYXR1
cmVWYWx1ZSgidXNlQ2hhcmFjdGVyU2VsZWN0aW9uR3JhbnVsYXJpdHkiKTsgfQogICAgIGJvb2wg
dXNlRGF0YURldGVjdGlvbigpIGNvbnN0IHsgcmV0dXJuIGJvb2xUZXN0UnVubmVyRmVhdHVyZVZh
bHVlKCJ1c2VEYXRhRGV0ZWN0aW9uIik7IH0KICAgICBib29sIHVzZUVwaGVtZXJhbFNlc3Npb24o
KSBjb25zdCB7IHJldHVybiBib29sVGVzdFJ1bm5lckZlYXR1cmVWYWx1ZSgidXNlRXBoZW1lcmFs
U2Vzc2lvbiIpOyB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKaW5kZXggMmI0MjVmY2E1NDg5YzY3OGEzZGQyMzk5Y2YwNmIxOTU2Nzcz
M2I3MC4uYjY0YzgxMGJlMjczYjkyZGU0NzFhZjUzNjRmN2U1NWQyMjA1NDJlOCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE2IEBACisyMDIwLTEyLTAyICBLYXRlIENoZW5leSAgPGthdGhlcmluZV9jaGVuZXlA
YXBwbGUuY29tPgorCisgICAgICAgIENyZWF0ZSBBUEkgdG8gZW5hYmxlL2Rpc2FibGUgdGV4dCBp
bnRlcmFjdGlvbiBnZXN0dXJlcyBpbiBXS1dlYlZpZXcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzc4NAorICAgICAgICA8cmRhcjovL3Byb2JsZW0v
NjM0MDYyNDE+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgTGF5b3V0IHRlc3QgY292ZXJhZ2UgZm9yIGlPUy4KKworICAgICAgICAqIExheW91dFRlc3Rz
L2VkaXRpbmcvc2VsZWN0aW9uL2lvcy9jYW5ub3Qtc2VsZWN0LWFmdGVyLWRpc2FibGluZy10ZXh0
LWludGVyYWN0aW9uLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogTGF5b3V0VGVzdHMv
ZWRpdGluZy9zZWxlY3Rpb24vaW9zL2Nhbm5vdC1zZWxlY3QtYWZ0ZXItZGlzYWJsaW5nLXRleHQt
aW50ZXJhY3Rpb24uaHRtbDogQWRkZWQuCisKIDIwMjAtMTEtMzAgIExhdXJvIE1vdXJhICA8bG1v
dXJhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dMSUJdIFByb3Blcmx5IGdhcmRlbiB3ZWJydGMg
Y3Jhc2hlcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vaW9zL2Nh
bm5vdC1zZWxlY3QtYWZ0ZXItZGlzYWJsaW5nLXRleHQtaW50ZXJhY3Rpb24tZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vaW9zL2Nhbm5vdC1zZWxlY3QtYWZ0ZXIt
ZGlzYWJsaW5nLXRleHQtaW50ZXJhY3Rpb24tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmEzZDA5
MTUyOGU1YTYzMGU0MzNkMGQ0MDM3MzM4MTE2MjQ3Y2JhYTEKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9pb3MvY2Fubm90LXNlbGVjdC1hZnRlci1kaXNh
YmxpbmctdGV4dC1pbnRlcmFjdGlvbi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorVGhp
cyB0ZXN0IHZlcmlmaWVzIHRoYXQgdGV4dCBzZWxlY3Rpb24gZmFpbHMgd2hlbiB0ZXh0IGludGVy
YWN0aW9uIGdlc3R1cmVzIGFyZSBkaXNhYmxlZC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2Vl
IGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUi
LgorCisKK1BBU1MgZ2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKSBpcyAiIgorUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCitUZXN0aW5nCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9pb3MvY2Fubm90LXNlbGVjdC1hZnRlci1k
aXNhYmxpbmctdGV4dC1pbnRlcmFjdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxl
Y3Rpb24vaW9zL2Nhbm5vdC1zZWxlY3QtYWZ0ZXItZGlzYWJsaW5nLXRleHQtaW50ZXJhY3Rpb24u
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5jNDNjMzE5ODFlOGFiNjY2YjMxMDRlMjczYWMzMmFmNjdkMTY3NzYx
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vaW9zL2Nh
bm5vdC1zZWxlY3QtYWZ0ZXItZGlzYWJsaW5nLXRleHQtaW50ZXJhY3Rpb24uaHRtbApAQCAtMCww
ICsxLDMyIEBACis8IURPQ1RZUEUgaHRtbD4gPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyB1c2VG
bGV4aWJsZVZpZXdwb3J0PXRydWUgdGV4dEludGVyYWN0aW9uR2VzdHVyZXNFbmFibGVkPWZhbHNl
IF0gLS0+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9Indp
ZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLCB1c2VyLXNjYWxhYmxlPW5vIj4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8c3R5
bGU+CitodG1sLCBib2R5IHsKKyAgICB3aWR0aDogMTAwJTsKKyAgICBtYXJnaW46IDA7Cit9CisK
KyN0YXJnZXQgeworICAgIGZvbnQtc2l6ZTogMjRweDsKK30KKzwvc3R5bGU+Cis8c2NyaXB0Pgor
ICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgYXN5bmMgZnVuY3Rpb24gcnVuVGVzdCgp
CisgICAgeworICAgICAgICBkZXNjcmlwdGlvbigiVGhpcyB0ZXN0IHZlcmlmaWVzIHRoYXQgdGV4
dCBzZWxlY3Rpb24gZmFpbHMgd2hlbiB0ZXh0IGludGVyYWN0aW9uIGdlc3R1cmVzIGFyZSBkaXNh
YmxlZC4iKTsKKworICAgICAgICBhd2FpdCBVSUhlbHBlci5sb25nUHJlc3NFbGVtZW50KHRhcmdl
dCk7CisgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZ2V0U2VsZWN0aW9uKCkudG9TdHJp
bmcoKSIsICIiKTsKKyAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgfQorPC9zY3JpcHQ+Cis8
Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+CisgICAgPGRpdiBpZD0idGFyZ2V0Ij5UZXN0aW5nPC9k
aXY+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>415256</attachid>
            <date>2020-12-02 15:56:53 -0800</date>
            <delta_ts>2020-12-04 11:04:02 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217784-20201202155652.patch</filename>
            <type>text/plain</type>
            <size>45268</size>
            <attacher name="Kate Cheney">katherine_cheney</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwMjQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDhmODE0MTZkNDI4ZDQ0N2ZlYzI1YzE1
NzBkNTM3Y2ZjMGI1Y2EyY2IuLjg0MjJmNzdiZjEzMjg2MjJkMjViM2ExNWUwOGU5Y2NiZDhlMWMx
NWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjAtMTItMDIgIEthdGUgQ2hlbmV5ICA8a2F0aGVy
aW5lX2NoZW5leUBhcHBsZS5jb20+CisKKyAgICAgICAgQ3JlYXRlIEFQSSB0byBlbmFibGUvZGlz
YWJsZSB0ZXh0IGludGVyYWN0aW9uIGdlc3R1cmVzIGluIFdLV2ViVmlldworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3Nzg0CisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS82MzQwNjI0MT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBDcmVhdGUgbmV3IFdLUHJlZmVyZW5jZS4gU2VlIFdlYktpdCBDaGFuZ2Vs
b2cgZm9yIGRldGFpbHMuCisKKyAgICAgICAgKiBTY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZl
cmVuY2VzLnlhbWw6CisKIDIwMjAtMTEtMjggIFBlciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBw
bGUuY29tPgogCiAgICAgICAgIFttYWNPU10gU2V0IGFwcGxpY2F0aW9uIGluZm9ybWF0aW9uIGlu
IHRoZSBOZXR3b3JraW5nIHByb2Nlc3Mgb24gYmVoYWxmIG9mIHRoZSBXZWJDb250ZW50IHByb2Nl
c3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZwppbmRleCA3MTAwMDFiYzViYzQxNWQzNjVhMDRlODBiMDRlNTFlY2Q2YjA0YWE5
Li41NTkzMjIxOWNiOTcxMGMyOTgzMmIxNjA0MTlmZDI3YTc5NTZkNjM2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMzkgQEAKKzIwMjAtMTItMDIgIEthdGUgQ2hlbmV5ICA8a2F0aGVyaW5lX2NoZW5l
eUBhcHBsZS5jb20+CisKKyAgICAgICAgQ3JlYXRlIEFQSSB0byBlbmFibGUvZGlzYWJsZSB0ZXh0
IGludGVyYWN0aW9uIGdlc3R1cmVzIGluIFdLV2ViVmlldworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3Nzg0CisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS82MzQwNjI0MT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBBZGQgQVBJIHRvIGRpc2FibGUgdGV4dCBzZWxlY3Rpb24gZm9yIG1hY09TLgorCisgICAg
ICAgICogcGFnZS9FdmVudEhhbmRsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5k
bGVyOjpzZWxlY3RDbG9zZXN0V29yZEZyb21Nb3VzZUV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6
OkV2ZW50SGFuZGxlcjo6c2VsZWN0Q2xvc2VzdENvbnRleHR1YWxXb3JkT3JMaW5rRnJvbU1vdXNl
RXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpoYW5kbGVNb3VzZVByZXNz
RXZlbnREb3VibGVDbGljayk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmhhbmRs
ZU1vdXNlUHJlc3NFdmVudFRyaXBsZUNsaWNrKToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFu
ZGxlcjo6aGFuZGxlTW91c2VQcmVzc0V2ZW50U2luZ2xlQ2xpY2spOgorICAgICAgICAoV2ViQ29y
ZTo6RXZlbnRIYW5kbGVyOjptb3VzZURvd25NYXlTdGFydFNlbGVjdCk6CisgICAgICAgIENyZWF0
ZSBhIG5ldyBmdW5jdGlvbiB0byByZXR1cm4gd2hldGhlciBhIGNsaWNrIHJlc3VsdHMgaW4gYQor
ICAgICAgICBzZWxlY3Rpb24uIEl0IHdpbGwgYWx3YXlzIHJldHVybiBmYWxzZSBpZiB0ZXh0IGlu
dGVyYWN0aW9uIGlzIGRpc2FibGVkLgorCisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6
OmhhbmRsZU1vdXNlUHJlc3NFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6
OmhhbmRsZU1vdXNlRHJhZ2dlZEV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxl
cjo6dXBkYXRlU2VsZWN0aW9uRm9yTW91c2VEcmFnKToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50
SGFuZGxlcjo6c2VsZWN0Q3Vyc29yKToKKyAgICAgICAgKiBwYWdlL0V2ZW50SGFuZGxlci5oOgor
ICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjptX3RleHRJbnRlcmFj
dGlvbkdlc3R1cmVzRW5hYmxlZCk6CisgICAgICAgIChXZWJDb3JlOjptX3Nob3VsZFJlbGF4VGhp
cmRQYXJ0eUNvb2tpZUJsb2NraW5nKTogRGVsZXRlZC4KKyAgICAgICAgKiBwYWdlL1BhZ2UuaDoK
KyAgICAgICAgU3RvcmUgdGhlIHRleHRJbnRlcmFjdGlvbkdlc3R1cmVzRW5hYmxlZCB2YWx1ZSBp
biB0aGUgUGFnZSBzbyBpdCBpcworICAgICAgICBhY2Nlc3NpYmxlIGZyb20gdGhlIEV2ZW50SGFu
ZGxlci4KKworICAgICAgICAoV2ViQ29yZTo6UGFnZTo6dGV4dEludGVyYWN0aW9uR2VzdHVyZXNF
bmFibGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OnNldFRleHRJbnRlcmFjdGlvbkdlc3R1
cmVzRW5hYmxlZCk6CisgICAgICAgICogcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5oOgorCiAyMDIw
LTExLTMwICBBZGl0eWEgS2VlcnRoaSAgPGFrZWVydGhpQGFwcGxlLmNvbT4KIAogICAgICAgICBV
c2UgcmVhbCBkYXRlcyBhbmQgdGltZXMgYXMgcGxhY2Vob2xkZXJzIGZvciBkYXRlL3RpbWUgaW5w
dXRzIHdpdGggZWRpdGFibGUgY29tcG9uZW50cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBiMTYwYTI1MTdjOTM0ODFh
ODdjNjIyODRmNjg4ZDIzMzQzYWM4YTJmLi5lNGY5YzJkNDgxYzhkM2MxYjI5YjQ0M2EwNjY2Mjk0
NDc4MmU2MzMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDU2IEBACisyMDIwLTEyLTAyICBLYXRlIENo
ZW5leSAgPGthdGhlcmluZV9jaGVuZXlAYXBwbGUuY29tPgorCisgICAgICAgIENyZWF0ZSBBUEkg
dG8gZW5hYmxlL2Rpc2FibGUgdGV4dCBpbnRlcmFjdGlvbiBnZXN0dXJlcyBpbiBXS1dlYlZpZXcK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzc4NAor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjM0MDYyNDE+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ3JlYXRlIGEgbmV3IEFQSSB0byBkaXNhYmxlIHRl
eHQgaW50ZXJhY3Rpb24gZ2VzdHVyZXMgaW4gYSBXS1dlYlZpZXcuCisgICAgICAgIFdlIGhhdmUg
U1BJIGZvciB0aGlzIGZvciBpT1MsIGJ1dCBpdCBjb3VsZCBiZSB1c2VmdWwgdG8gb3RoZXIgV2Vi
S2l0CisgICAgICAgIGNsaWVudHMgYW5kIG9uIG1hY09TLiBBZGQgdGhlIEFQSSB0byBXS1ByZWZl
cmVuY2VzLCBpbnN0ZWFkIG9mCisgICAgICAgIFdLV2ViVmlld0NvbmZpZ3VyYXRpb24sIHNvIGl0
IGNhbiBiZSBjaGFuZ2VkIG9uIHRoZSBmbHkuCisKKyAgICAgICAgRGVwcmVjYXRlIHRoZSBTUEku
CisKKyAgICAgICAgKiBTaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZSBjb25zdCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZSk6CisgICAg
ICAgICogU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXMuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L0NvY29hL1dLUHJlZmVyZW5jZXMubW06CisgICAgICAgICgtW1dLUHJlZmVyZW5jZXMgZW5jb2Rl
V2l0aENvZGVyOl0pOgorICAgICAgICAoLVtXS1ByZWZlcmVuY2VzIGluaXRXaXRoQ29kZXI6XSk6
CisgICAgICAgICgtW1dLUHJlZmVyZW5jZXMgdGV4dEludGVyYWN0aW9uR2VzdHVyZXNFbmFibGVk
XSk6CisgICAgICAgICgtW1dLUHJlZmVyZW5jZXMgc2V0VGV4dEludGVyYWN0aW9uR2VzdHVyZXNF
bmFibGVkOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Q29uZmln
dXJhdGlvbi5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBpbml0XSk6Cisg
ICAgICAgICgtW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gZW5jb2RlV2l0aENvZGVyOl0pOgorICAg
ICAgICAoLVtXS1dlYlZpZXdDb25maWd1cmF0aW9uIGluaXRXaXRoQ29kZXI6XSk6CisgICAgICAg
ICgtW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gY29weVdpdGhab25lOl0pOgorICAgICAgICAoLVtX
S1dlYlZpZXdDb25maWd1cmF0aW9uIF90ZXh0SW50ZXJhY3Rpb25HZXN0dXJlc0VuYWJsZWRdKToK
KyAgICAgICAgKC1bV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfc2V0VGV4dEludGVyYWN0aW9uR2Vz
dHVyZXNFbmFibGVkOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3
Q29uZmlndXJhdGlvblByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpjcmVhdGlvblBhcmFtZXRlcnMp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tOgor
ICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGhhc1NlbGVjdGFibGVQb3NpdGlvbkF0UG9pbnQ6XSk6
CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgcG9pbnRJc05lYXJNYXJrZWRUZXh0Ol0pOgorICAg
ICAgICAoLVtXS0NvbnRlbnRWaWV3IHRleHRJbnRlcmFjdGlvbkdlc3R1cmU6c2hvdWxkQmVnaW5B
dFBvaW50Ol0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF9jYXNjYWRlSW50ZXJhY3Rpb25U
aW50Q29sb3JdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBzZWxlY3RGb3JXZWJWaWV3Ol0p
OgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IHNlbGVjdEFsbEZvcldlYlZpZXc6XSk6CisgICAg
ICAgIEFkZCBjaGVjayBmb3IgdGV4dEludGVyYWN0aW9uR2VzdHVyZXNFbmFibGVkIGluIHRoZXNl
IHNlbGVjdCoKKyAgICAgICAgZnVuY3Rpb25zIGJlY2F1c2UgZGlzYWJsaW5nIHRleHQgaW50ZXJh
Y3Rpb24gc2hvdWxkIGRpc2FibGUgc2VsZWN0aW9uCisgICAgICAgIGluIFdLV2ViVmlldy4KKwor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgVXBkYXRl
IHRoZSB0ZXh0SW50ZXJhY3Rpb25HZXN0dXJlc0VuYWJsZWQgdmFsdWUgaW4gdGhlIHBhZ2Ugd2hl
bgorICAgICAgICBwcmVmZXJlbmNlcyBhcmUgdXBkYXRlZC4KKworICAgICAgICAoV2ViS2l0Ojpt
X2xpbWl0c05hdmlnYXRpb25zVG9BcHBCb3VuZERvbWFpbnMpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlOjp1cGRhdGVQcmVmZXJlbmNlcyk6CisKIDIwMjAtMTEtMjkgIEFkYW0gTWF6YW5kZXIg
IDxtYXphbmRlckBhcHBsZS5jb20+CiAKICAgICAgICAgRGVueSBsb2dzIGZvciBiZW5pZ24gZm9u
dHNlcnZpY2VzZCBkYWVtb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJl
bmNlcy9XZWJQcmVmZXJlbmNlcy55YW1sIGIvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2Vz
L1dlYlByZWZlcmVuY2VzLnlhbWwKaW5kZXggYWYzMWEyMzhjYjRkYWQ1NzQ4NmMxNTcyNDIxMzAy
YjZjNGU1YjkyOC4uNTIwOWMxYWRiMzE2YTJiN2NlZGY3MWNjZGNlMjgwNzZhOTNiMjFhMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzLnlh
bWwKKysrIGIvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzLnlh
bWwKQEAgLTIyNzcsNiArMjI3NywxNiBAQCBUZXh0QXV0b3NpemluZ0VuYWJsZWQ6CiAgICAgICAi
UExBVEZPUk0oSU9TX0ZBTUlMWSkiOiB0cnVlCiAgICAgICBkZWZhdWx0OiBmYWxzZQogCitUZXh0
SW50ZXJhY3Rpb25HZXN0dXJlc0VuYWJsZWQ6CisgIHR5cGU6IGJvb2wKKyAgZGVmYXVsdFZhbHVl
OgorICAgIFdlYktpdExlZ2FjeToKKyAgICAgIGRlZmF1bHQ6IHRydWUKKyAgICBXZWJLaXQ6Cisg
ICAgICBkZWZhdWx0OiB0cnVlCisgICAgV2ViQ29yZToKKyAgICAgIGRlZmF1bHQ6IHRydWUKKwog
VGhyZWFkZWRTY3JvbGxpbmdFbmFibGVkOgogICB0eXBlOiBib29sCiAgIHdlYmNvcmVCaW5kaW5n
OiBub25lCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKaW5kZXggNjVlYjIwOWQ0ZDM3
YTYzYWRhZTI5MzA1ZDJmZjQ3YTBlMjVkYjE1ZC4uN2Y4MzBiMjBjMTVhYjkzNGI3NmU0OGMyOGQ0
NzQ0NTIxM2Q0YjBmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRs
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcApAQCAtNTY5
LDcgKzU2OSw3IEBAIHN0YXRpYyBBcHBlbmRUcmFpbGluZ1doaXRlc3BhY2Ugc2hvdWxkQXBwZW5k
VHJhaWxpbmdXaGl0ZXNwYWNlKGNvbnN0IE1vdXNlRXZlbnRXCiAKIHZvaWQgRXZlbnRIYW5kbGVy
OjpzZWxlY3RDbG9zZXN0V29yZEZyb21Nb3VzZUV2ZW50KGNvbnN0IE1vdXNlRXZlbnRXaXRoSGl0
VGVzdFJlc3VsdHMmIHJlc3VsdCkKIHsKLSAgICBpZiAobV9tb3VzZURvd25NYXlTdGFydFNlbGVj
dCkKKyAgICBpZiAobW91c2VEb3duTWF5U3RhcnRTZWxlY3QoKSkKICAgICAgICAgc2VsZWN0Q2xv
c2VzdFdvcmRGcm9tSGl0VGVzdFJlc3VsdChyZXN1bHQuaGl0VGVzdFJlc3VsdCgpLCBzaG91bGRB
cHBlbmRUcmFpbGluZ1doaXRlc3BhY2UocmVzdWx0LCBtX2ZyYW1lKSk7CiB9CiAKQEAgLTYxOCw3
ICs2MTgsNyBAQCB2b2lkIEV2ZW50SGFuZGxlcjo6c2VsZWN0Q2xvc2VzdENvbnRleHR1YWxXb3Jk
T3JMaW5rRnJvbU1vdXNlRXZlbnQoY29uc3QgTW91c2VFdgogCiAgICAgTm9kZSogdGFyZ2V0Tm9k
ZSA9IHJlc3VsdC50YXJnZXROb2RlKCk7CiAKLSAgICBpZiAodGFyZ2V0Tm9kZSAmJiB0YXJnZXRO
b2RlLT5yZW5kZXJlcigpICYmIG1fbW91c2VEb3duTWF5U3RhcnRTZWxlY3QpIHsKKyAgICBpZiAo
dGFyZ2V0Tm9kZSAmJiB0YXJnZXROb2RlLT5yZW5kZXJlcigpICYmIG1vdXNlRG93bk1heVN0YXJ0
U2VsZWN0KCkpIHsKICAgICAgICAgVmlzaWJsZVNlbGVjdGlvbiBuZXdTZWxlY3Rpb247CiAgICAg
ICAgIFZpc2libGVQb3NpdGlvbiBwb3ModGFyZ2V0Tm9kZS0+cmVuZGVyZXIoKS0+cG9zaXRpb25G
b3JQb2ludChyZXN1bHQubG9jYWxQb2ludCgpLCBudWxscHRyKSk7CiAgICAgICAgIGlmIChwb3Mu
aXNOb3ROdWxsKCkgJiYgcG9zLmRlZXBFcXVpdmFsZW50KCkuZGVwcmVjYXRlZE5vZGUoKS0+aXNE
ZXNjZW5kYW50T2YoKnVybEVsZW1lbnQpKQpAQCAtNjUyLDcgKzY1Miw3IEBAIGJvb2wgRXZlbnRI
YW5kbGVyOjpoYW5kbGVNb3VzZVByZXNzRXZlbnRUcmlwbGVDbGljayhjb25zdCBNb3VzZUV2ZW50
V2l0aEhpdFRlc3RSCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAKICAgICBOb2RlKiB0YXJn
ZXROb2RlID0gZXZlbnQudGFyZ2V0Tm9kZSgpOwotICAgIGlmICghKHRhcmdldE5vZGUgJiYgdGFy
Z2V0Tm9kZS0+cmVuZGVyZXIoKSAmJiBtX21vdXNlRG93bk1heVN0YXJ0U2VsZWN0KSkKKyAgICBp
ZiAoISh0YXJnZXROb2RlICYmIHRhcmdldE5vZGUtPnJlbmRlcmVyKCkgJiYgbW91c2VEb3duTWF5
U3RhcnRTZWxlY3QoKSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIFZpc2libGVTZWxl
Y3Rpb24gbmV3U2VsZWN0aW9uOwpAQCAtNjc5LDcgKzY3OSw3IEBAIGJvb2wgRXZlbnRIYW5kbGVy
OjpoYW5kbGVNb3VzZVByZXNzRXZlbnRTaW5nbGVDbGljayhjb25zdCBNb3VzZUV2ZW50V2l0aEhp
dFRlc3RSCiAKICAgICBtX2ZyYW1lLmRvY3VtZW50KCktPnVwZGF0ZUxheW91dElnbm9yZVBlbmRp
bmdTdHlsZXNoZWV0cygpOwogICAgIE5vZGUqIHRhcmdldE5vZGUgPSBldmVudC50YXJnZXROb2Rl
KCk7Ci0gICAgaWYgKCF0YXJnZXROb2RlIHx8ICF0YXJnZXROb2RlLT5yZW5kZXJlcigpIHx8ICFt
X21vdXNlRG93bk1heVN0YXJ0U2VsZWN0IHx8IG1fbW91c2VEb3duRGVsZWdhdGVkRm9jdXMpCisg
ICAgaWYgKCF0YXJnZXROb2RlIHx8ICF0YXJnZXROb2RlLT5yZW5kZXJlcigpIHx8ICFtb3VzZURv
d25NYXlTdGFydFNlbGVjdCgpIHx8IG1fbW91c2VEb3duRGVsZWdhdGVkRm9jdXMpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKIAogICAgIC8vIEV4dGVuZCB0aGUgc2VsZWN0aW9uIGlmIHRoZSBTaGlm
dCBrZXkgaXMgZG93biwgdW5sZXNzIHRoZSBjbGljayBpcyBpbiBhIGxpbmsuCkBAIC03NjYsNiAr
NzY2LDE1IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpjYW5Nb3VzZURvd25TdGFydFNlbGVjdChjb25z
dCBNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzJiBlCiAgICAgcmV0dXJuIG5vZGUtPmNhblN0
YXJ0U2VsZWN0aW9uKCkgfHwgUG9zaXRpb246Om5vZGVJc1VzZXJTZWxlY3RBbGwobm9kZSk7CiB9
CiAKK2Jvb2wgRXZlbnRIYW5kbGVyOjptb3VzZURvd25NYXlTdGFydFNlbGVjdCgpCit7CisgICAg
UGFnZSogcGFnZSA9IG1fZnJhbWUucGFnZSgpOworICAgIGlmIChwYWdlICYmICFwYWdlLT50ZXh0
SW50ZXJhY3Rpb25HZXN0dXJlc0VuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisg
ICAgcmV0dXJuIG1fbW91c2VEb3duTWF5U3RhcnRTZWxlY3Q7Cit9CisKIGJvb2wgRXZlbnRIYW5k
bGVyOjpoYW5kbGVNb3VzZVByZXNzRXZlbnQoY29uc3QgTW91c2VFdmVudFdpdGhIaXRUZXN0UmVz
dWx0cyYgZXZlbnQpCiB7CiAgICAgUmVmPEZyYW1lPiBwcm90ZWN0ZWRGcmFtZShtX2ZyYW1lKTsK
QEAgLTg0Myw3ICs4NTIsNyBAQCBib29sIEV2ZW50SGFuZGxlcjo6aGFuZGxlTW91c2VQcmVzc0V2
ZW50KGNvbnN0IE1vdXNlRXZlbnRXaXRoSGl0VGVzdFJlc3VsdHMmIGV2ZQogICAgIGVsc2UKICAg
ICAgICAgc3dhbGxvd0V2ZW50ID0gaGFuZGxlTW91c2VQcmVzc0V2ZW50U2luZ2xlQ2xpY2soZXZl
bnQpOwogICAgIAotICAgIG1fbW91c2VEb3duTWF5U3RhcnRBdXRvc2Nyb2xsID0gbV9tb3VzZURv
d25NYXlTdGFydFNlbGVjdAorICAgIG1fbW91c2VEb3duTWF5U3RhcnRBdXRvc2Nyb2xsID0gbW91
c2VEb3duTWF5U3RhcnRTZWxlY3QoKQogICAgICAgICB8fCAobV9tb3VzZVByZXNzTm9kZSAmJiBt
X21vdXNlUHJlc3NOb2RlLT5yZW5kZXJCb3goKSAmJiBtX21vdXNlUHJlc3NOb2RlLT5yZW5kZXJC
b3goKS0+Y2FuQmVQcm9ncmFtYXRpY2FsbHlTY3JvbGxlZCgpKTsKIAogICAgIHJldHVybiBzd2Fs
bG93RXZlbnQ7CkBAIC05MTEsNyArOTIwLDcgQEAgYm9vbCBFdmVudEhhbmRsZXI6OmhhbmRsZU1v
dXNlRHJhZ2dlZEV2ZW50KGNvbnN0IE1vdXNlRXZlbnRXaXRoSGl0VGVzdFJlc3VsdHMmIGUKICAg
ICB9CiAKICNpZiBQTEFURk9STShDT0NPQSkgLy8gRklYTUU6IFdoeSBkb2VzIHRoaXMgYXNzZXJ0
aW9uIGZpcmUgb24gb3RoZXIgcGxhdGZvcm1zPwotICAgIEFTU0VSVChtX21vdXNlRG93bk1heVN0
YXJ0U2VsZWN0IHx8IG1fbW91c2VEb3duTWF5U3RhcnRBdXRvc2Nyb2xsKTsKKyAgICBBU1NFUlQo
bW91c2VEb3duTWF5U3RhcnRTZWxlY3QoKSB8fCBtX21vdXNlRG93bk1heVN0YXJ0QXV0b3Njcm9s
bCk7CiAjZW5kaWYKIAogICAgIG1fbW91c2VEb3duTWF5U3RhcnREcmFnID0gZmFsc2U7CkBAIC05
ODUsNyArOTk0LDcgQEAgdm9pZCBFdmVudEhhbmRsZXI6OnVwZGF0ZVNlbGVjdGlvbkZvck1vdXNl
RHJhZyhjb25zdCBIaXRUZXN0UmVzdWx0JiBoaXRUZXN0UmVzdWwKICAgICBpZiAoIXN1cHBvcnRz
U2VsZWN0aW9uVXBkYXRlc09uTW91c2VEcmFnKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlm
ICghbV9tb3VzZURvd25NYXlTdGFydFNlbGVjdCkKKyAgICBpZiAoIW1vdXNlRG93bk1heVN0YXJ0
U2VsZWN0KCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIE5vZGUqIHRhcmdldCA9IGhpdFRlc3RS
ZXN1bHQudGFyZ2V0Tm9kZSgpOwpAQCAtMTU0MSw3ICsxNTUwLDcgQEAgT3B0aW9uYWw8Q3Vyc29y
PiBFdmVudEhhbmRsZXI6OnNlbGVjdEN1cnNvcihjb25zdCBIaXRUZXN0UmVzdWx0JiByZXN1bHQs
IGJvb2wgc2gKICAgICAvLyBEdXJpbmcgc2VsZWN0aW9uLCB1c2UgYW4gSS1iZWFtIHJlZ2FyZGxl
c3Mgb2YgdGhlIGNvbnRlbnQgYmVuZWF0aCB0aGUgY3Vyc29yLgogICAgIC8vIElmIGEgZHJhZyBt
YXkgYmUgc3RhcnRpbmcgb3Igd2UncmUgY2FwdHVyaW5nIG1vdXNlIGV2ZW50cyBmb3IgYSBwYXJ0
aWN1bGFyIG5vZGUsIGRvbid0IHRyZWF0IHRoaXMgYXMgYSBzZWxlY3Rpb24uCiAgICAgaWYgKG1f
bW91c2VQcmVzc2VkCi0gICAgICAgICYmIG1fbW91c2VEb3duTWF5U3RhcnRTZWxlY3QKKyAgICAg
ICAgJiYgbW91c2VEb3duTWF5U3RhcnRTZWxlY3QoKQogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQp
CiAgICAgICAgICYmICFtX21vdXNlRG93bk1heVN0YXJ0RHJhZwogI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5oIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9FdmVudEhhbmRsZXIuaAppbmRleCA5MGM3ODdiNjdlMmYzZGMyOWQ0NTg4ZWViZjU4N2ZhOTM1
MWRlOWQ5Li5hYjU1NjgzZTQwZmRhNWU0ODI3ZTQzMjgyNmI2NmJiMzJkYzRlZmQ2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmgKQEAgLTUxNSw2ICs1MTUsOCBAQCBwcml2YXRlOgogCiAg
ICAgYm9vbCBjYW5Nb3VzZURvd25TdGFydFNlbGVjdChjb25zdCBNb3VzZUV2ZW50V2l0aEhpdFRl
c3RSZXN1bHRzJik7CiAKKyAgICBib29sIG1vdXNlRG93bk1heVN0YXJ0U2VsZWN0KCk7CisgICAg
CiAgICAgRnJhbWUmIG1fZnJhbWU7CiAKICAgICBib29sIG1fbW91c2VQcmVzc2VkIHsgZmFsc2Ug
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1BhZ2UuY3BwCmluZGV4IDRjZjZmNTBmNDFlZmNhOGIwNmIxMzFlOTVhNGI0N2I2
NmU0YmE2MmIuLmVmYzIxYWU3MTg2Y2EwZGM4YjhlNmVjNGU2OTZmMjlkOGI0Yzg2OWIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9QYWdlLmNwcApAQCAtMzAzLDYgKzMwMyw3IEBAIFBhZ2U6OlBhZ2UoUGFnZUNvbmZpZ3Vy
YXRpb24mJiBwYWdlQ29uZmlndXJhdGlvbikKICAgICAsIG1fbG9hZHNTdWJyZXNvdXJjZXMocGFn
ZUNvbmZpZ3VyYXRpb24ubG9hZHNTdWJyZXNvdXJjZXMpCiAgICAgLCBtX2xvYWRzRnJvbU5ldHdv
cmsocGFnZUNvbmZpZ3VyYXRpb24ubG9hZHNGcm9tTmV0d29yaykKICAgICAsIG1fc2hvdWxkUmVs
YXhUaGlyZFBhcnR5Q29va2llQmxvY2tpbmcocGFnZUNvbmZpZ3VyYXRpb24uc2hvdWxkUmVsYXhU
aGlyZFBhcnR5Q29va2llQmxvY2tpbmcpCisgICAgLCBtX3RleHRJbnRlcmFjdGlvbkdlc3R1cmVz
RW5hYmxlZChwYWdlQ29uZmlndXJhdGlvbi50ZXh0SW50ZXJhY3Rpb25HZXN0dXJlc0VuYWJsZWQp
CiB7CiAgICAgdXBkYXRlVGltZXJUaHJvdHRsaW5nU3RhdGUoKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAppbmRl
eCA5MTUyMTRhNzEyMDE5Yzc5OTUxZTY5NWUzOTc3MmJlNmQ3NGExNTBlLi5jODhlZWNmNmNmYjAz
ZDkzZGE4MmM2ZWM1ZmMwYTcxMmZmNWY2MjQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1BhZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaApAQCAtODI4LDYgKzgy
OCw5IEBAIHB1YmxpYzoKIAogICAgIE1vbm90b25pY1RpbWUgbGFzdFJlbmRlcmluZ1VwZGF0ZVRp
bWVzdGFtcCgpIGNvbnN0IHsgcmV0dXJuIG1fbGFzdFJlbmRlcmluZ1VwZGF0ZVRpbWVzdGFtcDsg
fQogCisgICAgYm9vbCB0ZXh0SW50ZXJhY3Rpb25HZXN0dXJlc0VuYWJsZWQoKSB7IHJldHVybiBt
X3RleHRJbnRlcmFjdGlvbkdlc3R1cmVzRW5hYmxlZDsgfQorICAgIHZvaWQgc2V0VGV4dEludGVy
YWN0aW9uR2VzdHVyZXNFbmFibGVkKGJvb2wgdmFsdWUpIHsgbV90ZXh0SW50ZXJhY3Rpb25HZXN0
dXJlc0VuYWJsZWQgPSB2YWx1ZTsgfQorCiBwcml2YXRlOgogICAgIHN0cnVjdCBOYXZpZ2F0aW9u
IHsKICAgICAgICAgUmVnaXN0cmFibGVEb21haW4gZG9tYWluOwpAQCAtMTEzMSw2ICsxMTM0LDgg
QEAgcHJpdmF0ZToKICAgICBib29sIG1faGFzQmVlbk5vdGlmaWVkVG9JbmplY3RVc2VyU2NyaXB0
cyB7IGZhbHNlIH07CiAKICAgICBNb25vdG9uaWNUaW1lIG1fbGFzdFJlbmRlcmluZ1VwZGF0ZVRp
bWVzdGFtcDsKKyAgICAKKyAgICBib29sIG1fdGV4dEludGVyYWN0aW9uR2VzdHVyZXNFbmFibGVk
IHsgdHJ1ZSB9OwogfTsKIAogaW5saW5lIFBhZ2VHcm91cCYgUGFnZTo6Z3JvdXAoKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5oIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5oCmluZGV4IGYwNTRmY2IzNjc1MWJiZWFlZjRi
ZjhiMTJjNDdmMjBmNTMwYzEzNTUuLjU1OWU4MWQ4YWUyNTg4MjQwYTU4OGQwMWE5NmI2M2M1MzZl
ZGY3YWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24u
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1cmF0aW9uLmgKQEAgLTEzMyw2
ICsxMzMsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBsb2Fkc0Zyb21OZXR3b3JrIHsgdHJ1ZSB9Owog
ICAgIGJvb2wgdXNlclNjcmlwdHNTaG91bGRXYWl0VW50aWxOb3RpZmljYXRpb24geyB0cnVlIH07
CiAgICAgU2hvdWxkUmVsYXhUaGlyZFBhcnR5Q29va2llQmxvY2tpbmcgc2hvdWxkUmVsYXhUaGly
ZFBhcnR5Q29va2llQmxvY2tpbmcgeyBTaG91bGRSZWxheFRoaXJkUGFydHlDb29raWVCbG9ja2lu
Zzo6Tm8gfTsKKyAgICBib29sIHRleHRJbnRlcmFjdGlvbkdlc3R1cmVzRW5hYmxlZCB7IHRydWUg
fTsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVh
dGlvblBhcmFtZXRlcnMuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9u
UGFyYW1ldGVycy5jcHAKaW5kZXggY2YxMzFhOTIxZTA4NjM2NWRiZjc3ZmE5OGU0MWMxYzc0YTNl
N2UyNS4uZGYyMDFmMGYzZGE2MmM3ZTAwNDcwYzQ5NTFmYjBjY2Q3MzVjNjk0MiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5jcHAKQEAg
LTE3MCw2ICsxNzAsOCBAQCB2b2lkIFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZShJ
UEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAjaWYgUExBVEZPUk0oR1RLKQogICAgIGVuY29k
ZXIgPDwgdGhlbWVOYW1lOwogI2VuZGlmCisgICAgCisgICAgZW5jb2RlciA8PCB0ZXh0SW50ZXJh
Y3Rpb25HZXN0dXJlc0VuYWJsZWQ7CiB9CiAKIE9wdGlvbmFsPFdlYlBhZ2VDcmVhdGlvblBhcmFt
ZXRlcnM+IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZShJUEM6OkRlY29kZXImIGRl
Y29kZXIpCkBAIC01MzUsNiArNTM3LDkgQEAgT3B0aW9uYWw8V2ViUGFnZUNyZWF0aW9uUGFyYW1l
dGVycz4gV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKElQQzo6RGVjb2QKICAgICBp
ZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMudGhlbWVOYW1lKSkKICAgICAgICAgcmV0dXJu
IFdURjo6bnVsbG9wdDsKICNlbmRpZgorICAgIAorICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFy
YW1ldGVycy50ZXh0SW50ZXJhY3Rpb25HZXN0dXJlc0VuYWJsZWQpKQorICAgICAgICByZXR1cm4g
V1RGOjpudWxsb3B0OwogCiAgICAgcmV0dXJuIHBhcmFtZXRlcnM7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmggYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmgKaW5kZXggZDkxZTQ2MDM4
ZjMwOWI1MTMwYmZkZTU4ZGZmNGE5ZjE4MTk1MWRmZC4uOWU1YzhiYzYwMGJlMTk0MzA5NzkwMTc3
ZGY4YjRiMTc4NGYzMWEyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFn
ZUNyZWF0aW9uUGFyYW1ldGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VD
cmVhdGlvblBhcmFtZXRlcnMuaApAQCAtMjQyLDYgKzI0Miw4IEBAIHN0cnVjdCBXZWJQYWdlQ3Jl
YXRpb25QYXJhbWV0ZXJzIHsKICNpZiBQTEFURk9STShHVEspCiAgICAgU3RyaW5nIHRoZW1lTmFt
ZTsKICNlbmRpZgorCisgICAgYm9vbCB0ZXh0SW50ZXJhY3Rpb25HZXN0dXJlc0VuYWJsZWQgeyB0
cnVlIH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzLmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlcy5oCmluZGV4IGMyZTZhMjcyOGYzMDBj
NmMwNjE2OWU4MTYzMzY5YjhkYTE3ZTlhZmEuLmY0ZjRmZGNiNTJlMzRkZTgwMDc1NTc3MjRmMTRm
YWJlN2JlYzk0MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1ByZWZlcmVuY2VzLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLUHJlZmVyZW5jZXMuaApAQCAtNjAsNiArNjAsMTAgQEAgV0tfQ0xBU1NfQVZBSUxBQkxFKG1h
Y29zKDEwLjEwKSwgaW9zKDguMCkpCiBAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCB0YWJGb2N1
c2VzTGlua3MgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMi4zKSk7CiAjZW5kaWYKIAorLyoh
IEBhYnN0cmFjdCBBIEJvb2xlYW4gdmFsdWUgaW5kaWNhdGluZyB3aGV0aGVyIHRleHQgaW50ZXJh
Y3Rpb24gaXMgZGlzYWJsZWQuCisqLworQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgdGV4dElu
dGVyYWN0aW9uR2VzdHVyZXNFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RC
QSksIGlvcyhXS19JT1NfVEJBKSk7CisKIEBlbmQKIAogQGludGVyZmFjZSBXS1ByZWZlcmVuY2Vz
IChXS0RlcHJlY2F0ZWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tQcmVmZXJlbmNlcy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1ByZWZlcmVuY2VzLm1tCmluZGV4IDcyNzRhNjgzYTZmYWJjNTYxMWQ0YTJhNTEyYWM5M2Nk
ZDA3MTA2OTguLmNjZjAzZmM5YzFmZTQ5OThmZjMwOGYyMTFlYTQyYTM3ZTVhM2JmNGUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzLm1t
CkBAIC03OCw2ICs3OCw3IEBAIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiBB
TExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICBbY29kZXIgZW5jb2RlQm9vbDpz
ZWxmLnRhYkZvY3VzZXNMaW5rcyBmb3JLZXk6QCJ0YWJGb2N1c2VzTGlua3MiXTsKICNlbmRpZgor
ICAgIFtjb2RlciBlbmNvZGVCb29sOnNlbGYudGV4dEludGVyYWN0aW9uR2VzdHVyZXNFbmFibGVk
IGZvcktleTpAInRleHRJbnRlcmFjdGlvbkdlc3R1cmVzRW5hYmxlZCJdOwogfQogCiAtIChpbnN0
YW5jZXR5cGUpaW5pdFdpdGhDb2RlcjooTlNDb2RlciAqKWNvZGVyCkBAIC05OSw2ICsxMDAsNyBA
QCBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogQUxMT1dfREVQUkVDQVRFRF9E
RUNMQVJBVElPTlNfRU5ECiAgICAgc2VsZi50YWJGb2N1c2VzTGlua3MgPSBbY29kZXIgZGVjb2Rl
Qm9vbEZvcktleTpAInRhYkZvY3VzZXNMaW5rcyJdOwogI2VuZGlmCisgICAgc2VsZi50ZXh0SW50
ZXJhY3Rpb25HZXN0dXJlc0VuYWJsZWQgPSBbY29kZXIgZGVjb2RlQm9vbEZvcktleTpAInRleHRJ
bnRlcmFjdGlvbkdlc3R1cmVzRW5hYmxlZCJdOwogCiAgICAgcmV0dXJuIHNlbGY7CiB9CkBAIC0x
MzgsNiArMTQwLDE2IEBAIC0gKHZvaWQpc2V0SmF2YVNjcmlwdENhbk9wZW5XaW5kb3dzQXV0b21h
dGljYWxseTooQk9PTClqYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NBCiAgICAgX3ByZWZlcmVuY2Vz
LT5zZXRKYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5KGphdmFTY3JpcHRDYW5P
cGVuV2luZG93c0F1dG9tYXRpY2FsbHkpOwogfQogCistIChCT09MKXRleHRJbnRlcmFjdGlvbkdl
c3R1cmVzRW5hYmxlZAoreworICAgIHJldHVybiBfcHJlZmVyZW5jZXMtPnRleHRJbnRlcmFjdGlv
bkdlc3R1cmVzRW5hYmxlZCgpOworfQorCistICh2b2lkKXNldFRleHRJbnRlcmFjdGlvbkdlc3R1
cmVzRW5hYmxlZDooQk9PTCl0ZXh0SW50ZXJhY3Rpb25HZXN0dXJlc0VuYWJsZWQKK3sKKyAgICBf
cHJlZmVyZW5jZXMtPnNldFRleHRJbnRlcmFjdGlvbkdlc3R1cmVzRW5hYmxlZCh0ZXh0SW50ZXJh
Y3Rpb25HZXN0dXJlc0VuYWJsZWQpOworfQorCiAjcHJhZ21hIG1hcmsgT1MgWC1zcGVjaWZpYyBt
ZXRob2RzCiAKICNpZiBQTEFURk9STShNQUMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvbi5tbSBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9uLm1tCmluZGV4IDNh
OTdiMGQ3Njk4OTdmODUwZDFkZDM1MTc1YmRjMDViMmM2NTZhY2UuLmRiMDE2MDUzMjJkZjU2ZjFl
M2UwNjMxZDhkOTQ4NjVhYTE1NjdlNGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9uLm1tCkBAIC0zMDks
NyArMzA5LDkgQEAgLSAodm9pZCllbmNvZGVXaXRoQ29kZXI6KE5TQ29kZXIgKiljb2RlcgogICAg
IFtjb2RlciBlbmNvZGVCb29sOnNlbGYuYWxsb3dzUGljdHVyZUluUGljdHVyZU1lZGlhUGxheWJh
Y2sgZm9yS2V5OkAiYWxsb3dzUGljdHVyZUluUGljdHVyZU1lZGlhUGxheWJhY2siXTsKICAgICBb
Y29kZXIgZW5jb2RlQm9vbDpzZWxmLmlnbm9yZXNWaWV3cG9ydFNjYWxlTGltaXRzIGZvcktleTpA
Imlnbm9yZXNWaWV3cG9ydFNjYWxlTGltaXRzIl07CiAgICAgW2NvZGVyIGVuY29kZUludGVnZXI6
c2VsZi5fZHJhZ0xpZnREZWxheSBmb3JLZXk6QCJkcmFnTGlmdERlbGF5Il07CisgICAgQUxMT1df
REVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBbY29kZXIgZW5jb2RlQm9vbDpzZWxm
Ll90ZXh0SW50ZXJhY3Rpb25HZXN0dXJlc0VuYWJsZWQgZm9yS2V5OkAidGV4dEludGVyYWN0aW9u
R2VzdHVyZXNFbmFibGVkIl07CisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5E
CiAgICAgW2NvZGVyIGVuY29kZUJvb2w6c2VsZi5fbG9uZ1ByZXNzQWN0aW9uc0VuYWJsZWQgZm9y
S2V5OkAibG9uZ1ByZXNzQWN0aW9uc0VuYWJsZWQiXTsKICAgICBbY29kZXIgZW5jb2RlQm9vbDpz
ZWxmLl9zeXN0ZW1QcmV2aWV3RW5hYmxlZCBmb3JLZXk6QCJzeXN0ZW1QcmV2aWV3RW5hYmxlZCJd
OwogICAgIFtjb2RlciBlbmNvZGVCb29sOnNlbGYuX3Nob3VsZERlY2lkZVBvbGljeUJlZm9yZUxv
YWRpbmdRdWlja0xvb2tQcmV2aWV3IGZvcktleTpAInNob3VsZERlY2lkZVBvbGljeUJlZm9yZUxv
YWRpbmdRdWlja0xvb2tQcmV2aWV3Il07CkBAIC0zNDcsNyArMzQ5LDkgQEAgLSAoaW5zdGFuY2V0
eXBlKWluaXRXaXRoQ29kZXI6KE5TQ29kZXIgKiljb2RlcgogICAgIHNlbGYuYWxsb3dzUGljdHVy
ZUluUGljdHVyZU1lZGlhUGxheWJhY2sgPSBbY29kZXIgZGVjb2RlQm9vbEZvcktleTpAImFsbG93
c1BpY3R1cmVJblBpY3R1cmVNZWRpYVBsYXliYWNrIl07CiAgICAgc2VsZi5pZ25vcmVzVmlld3Bv
cnRTY2FsZUxpbWl0cyA9IFtjb2RlciBkZWNvZGVCb29sRm9yS2V5OkAiaWdub3Jlc1ZpZXdwb3J0
U2NhbGVMaW1pdHMiXTsKICAgICBzZWxmLl9kcmFnTGlmdERlbGF5ID0gdG9EcmFnTGlmdERlbGF5
KFtjb2RlciBkZWNvZGVJbnRlZ2VyRm9yS2V5OkAiZHJhZ0xpZnREZWxheSJdKTsKKyAgICBBTExP
V19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIHNlbGYuX3RleHRJbnRlcmFjdGlv
bkdlc3R1cmVzRW5hYmxlZCA9IFtjb2RlciBkZWNvZGVCb29sRm9yS2V5OkAidGV4dEludGVyYWN0
aW9uR2VzdHVyZXNFbmFibGVkIl07CisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNf
RU5ECiAgICAgc2VsZi5fbG9uZ1ByZXNzQWN0aW9uc0VuYWJsZWQgPSBbY29kZXIgZGVjb2RlQm9v
bEZvcktleTpAImxvbmdQcmVzc0FjdGlvbnNFbmFibGVkIl07CiAgICAgc2VsZi5fc3lzdGVtUHJl
dmlld0VuYWJsZWQgPSBbY29kZXIgZGVjb2RlQm9vbEZvcktleTpAInN5c3RlbVByZXZpZXdFbmFi
bGVkIl07CiAgICAgc2VsZi5fc2hvdWxkRGVjaWRlUG9saWN5QmVmb3JlTG9hZGluZ1F1aWNrTG9v
a1ByZXZpZXcgPSBbY29kZXIgZGVjb2RlQm9vbEZvcktleTpAInNob3VsZERlY2lkZVBvbGljeUJl
Zm9yZUxvYWRpbmdRdWlja0xvb2tQcmV2aWV3Il07CkBAIC03NTcsMTYgKzc2MSw2IEBAIC0gKHZv
aWQpX3NldERyYWdMaWZ0RGVsYXk6KF9XS0RyYWdMaWZ0RGVsYXkpZHJhZ0xpZnREZWxheQogICAg
IF9kcmFnTGlmdERlbGF5ID0gZHJhZ0xpZnREZWxheTsKIH0KIAotLSAoQk9PTClfdGV4dEludGVy
YWN0aW9uR2VzdHVyZXNFbmFibGVkCi17Ci0gICAgcmV0dXJuIF90ZXh0SW50ZXJhY3Rpb25HZXN0
dXJlc0VuYWJsZWQ7Ci19Ci0KLS0gKHZvaWQpX3NldFRleHRJbnRlcmFjdGlvbkdlc3R1cmVzRW5h
YmxlZDooQk9PTCllbmFibGVkCi17Ci0gICAgX3RleHRJbnRlcmFjdGlvbkdlc3R1cmVzRW5hYmxl
ZCA9IGVuYWJsZWQ7Ci19Ci0KIC0gKEJPT0wpX2xvbmdQcmVzc0FjdGlvbnNFbmFibGVkCiB7CiAg
ICAgcmV0dXJuIF9sb25nUHJlc3NBY3Rpb25zRW5hYmxlZDsKQEAgLTEyODAsNyArMTI3NCwyMiBA
QCAtICh2b2lkKXNldFJlcXVpcmVzVXNlckFjdGlvbkZvck1lZGlhUGxheWJhY2s6KEJPT0wpcmVx
dWlyZXNVc2VyQWN0aW9uRm9yTWVkaWFQbAogewogICAgIHNlbGYubWVkaWFUeXBlc1JlcXVpcmlu
Z1VzZXJBY3Rpb25Gb3JQbGF5YmFjayA9IHJlcXVpcmVzVXNlckFjdGlvbkZvck1lZGlhUGxheWJh
Y2sgPyBXS0F1ZGlvdmlzdWFsTWVkaWFUeXBlQWxsIDogV0tBdWRpb3Zpc3VhbE1lZGlhVHlwZU5v
bmU7CiB9CisjZW5kaWYgLy8gUExBVEZPUk0oSU9TX0ZBTUlMWSkKKworQGVuZAorCitAaW1wbGVt
ZW50YXRpb24gV0tXZWJWaWV3Q29uZmlndXJhdGlvbiAoV0tQcml2YXRlRGVwcmVjYXRlZCkKKwor
I2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCistIChCT09MKV90ZXh0SW50ZXJhY3Rpb25HZXN0dXJl
c0VuYWJsZWQKK3sKKyAgICByZXR1cm4gX3RleHRJbnRlcmFjdGlvbkdlc3R1cmVzRW5hYmxlZDsK
K30KIAorLSAodm9pZClfc2V0VGV4dEludGVyYWN0aW9uR2VzdHVyZXNFbmFibGVkOihCT09MKWVu
YWJsZWQKK3sKKyAgICBfdGV4dEludGVyYWN0aW9uR2VzdHVyZXNFbmFibGVkID0gZW5hYmxlZDsK
K30KICNlbmRpZiAvLyBQTEFURk9STShJT1NfRkFNSUxZKQogCiBAZW5kCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvblBy
aXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25m
aWd1cmF0aW9uUHJpdmF0ZS5oCmluZGV4IDNkOTk1MTMyYzE3MThmZTUwOWM2YWE2MTg1ZDUwMWIx
OTUzODRlYmYuLjg2YjljZWIyYTcxZjhlODhlODU5NTA2YjA2MTNlMzc5NzdhNDg0MDAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1
cmF0aW9uUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1dlYlZpZXdDb25maWd1cmF0aW9uUHJpdmF0ZS5oCkBAIC04OSw3ICs4OSw2IEBAIHR5cGVkZWYg
TlNfRU5VTShOU1VJbnRlZ2VyLCBfV0tEcmFnTGlmdERlbGF5KSB7CiBAcHJvcGVydHkgKG5vbmF0
b21pYywgc2V0dGVyPV9zZXRJbmxpbmVNZWRpYVBsYXliYWNrUmVxdWlyZXNQbGF5c0lubGluZUF0
dHJpYnV0ZTopIEJPT0wgX2lubGluZU1lZGlhUGxheWJhY2tSZXF1aXJlc1BsYXlzSW5saW5lQXR0
cmlidXRlIFdLX0FQSV9BVkFJTEFCTEUoaW9zKDEwLjApKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWlj
LCBzZXR0ZXI9X3NldEFsbG93c0lubGluZU1lZGlhUGxheWJhY2tBZnRlckZ1bGxzY3JlZW46KSBC
T09MIF9hbGxvd3NJbmxpbmVNZWRpYVBsYXliYWNrQWZ0ZXJGdWxsc2NyZWVuICBXS19BUElfQVZB
SUxBQkxFKGlvcygxMC4wKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXREcmFn
TGlmdERlbGF5OikgX1dLRHJhZ0xpZnREZWxheSBfZHJhZ0xpZnREZWxheSBXS19BUElfQVZBSUxB
QkxFKGlvcygxMS4wKSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRUZXh0SW50
ZXJhY3Rpb25HZXN0dXJlc0VuYWJsZWQ6KSBCT09MIF90ZXh0SW50ZXJhY3Rpb25HZXN0dXJlc0Vu
YWJsZWQgV0tfQVBJX0FWQUlMQUJMRShpb3MoMTIuMCkpOwogQHByb3BlcnR5IChub25hdG9taWMs
IHNldHRlcj1fc2V0TG9uZ1ByZXNzQWN0aW9uc0VuYWJsZWQ6KSBCT09MIF9sb25nUHJlc3NBY3Rp
b25zRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKGlvcygxMi4wKSk7CiBAcHJvcGVydHkgKG5vbmF0
b21pYywgc2V0dGVyPV9zZXRTeXN0ZW1QcmV2aWV3RW5hYmxlZDopIEJPT0wgX3N5c3RlbVByZXZp
ZXdFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUoaW9zKDEyLjApKTsKIEBwcm9wZXJ0eSAobm9uYXRv
bWljLCBzZXR0ZXI9X3NldFNob3VsZERlY2lkZVBvbGljeUJlZm9yZUxvYWRpbmdRdWlja0xvb2tQ
cmV2aWV3OikgQk9PTCBfc2hvdWxkRGVjaWRlUG9saWN5QmVmb3JlTG9hZGluZ1F1aWNrTG9va1By
ZXZpZXcgV0tfQVBJX0FWQUlMQUJMRShpb3MoMTMuMCkpOwpAQCAtMTIzLDMgKzEyMiwxMyBAQCB0
eXBlZGVmIE5TX0VOVU0oTlNVSW50ZWdlciwgX1dLRHJhZ0xpZnREZWxheSkgewogQHByb3BlcnR5
IChub25hdG9taWMsIHNldHRlcj1fc2V0UHJvY2Vzc0Rpc3BsYXlOYW1lOikgTlNTdHJpbmcgKl9w
cm9jZXNzRGlzcGxheU5hbWUgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9z
KFdLX0lPU19UQkEpKTsKIAogQGVuZAorCisjaWYgVEFSR0VUX09TX0lQSE9ORQorCitAaW50ZXJm
YWNlIFdLV2ViVmlld0NvbmZpZ3VyYXRpb24gKFdLUHJpdmF0ZURlcHJlY2F0ZWQpCisKK0Bwcm9w
ZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFRleHRJbnRlcmFjdGlvbkdlc3R1cmVzRW5hYmxl
ZDopIEJPT0wgX3RleHRJbnRlcmFjdGlvbkdlc3R1cmVzRW5hYmxlZCBXS19BUElfREVQUkVDQVRF
RF9XSVRIX1JFUExBQ0VNRU5UKCJXS1ByZWZlcmVuY2VzLnRleHRJbnRlcmFjdGlvbkdlc3R1cmVz
RW5hYmxlZCIsIGlvcygxMi4wLCBXS19JT1NfVEJBKSk7CisKK0BlbmQKKworI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCA2ZWQxYzY5YzA4ZmM1NTlm
ZTJhM2YzYjkzOTUwZWE4MjhkNjBkNGJmLi4wZTM2MTNhY2M1ODM5OWM3ZjM2NzZjMTY3OGNlYzNm
YzY3MWNlOGNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAg
LTc5NTIsNiArNzk1Miw4IEBAIFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMgV2ViUGFnZVByb3h5
OjpjcmVhdGlvblBhcmFtZXRlcnMoV2ViUHJvY2Vzc1Byb3h5JiBwcm9jCiAjaWYgRU5BQkxFKEFQ
UF9CT1VORF9ET01BSU5TKQogICAgIHBhcmFtZXRlcnMubmVlZHNJbkFwcEJyb3dzZXJQcml2YWN5
UXVpcmtzID0gcHJlZmVyZW5jZXMoKS5uZWVkc0luQXBwQnJvd3NlclByaXZhY3lRdWlya3MoKTsK
ICNlbmRpZgorICAgIAorICAgIHBhcmFtZXRlcnMudGV4dEludGVyYWN0aW9uR2VzdHVyZXNFbmFi
bGVkID0gcHJlZmVyZW5jZXMoKS50ZXh0SW50ZXJhY3Rpb25HZXN0dXJlc0VuYWJsZWQoKTsKIAog
ICAgIHJldHVybiBwYXJhbWV0ZXJzOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KaW5kZXggYjk4ZTg3MTEyMTc4
NDg5MTMwZWFlMWM4YmU0NTc1NzJjNTE5NTY4My4uYzkwMGM0MWNlMTVlN2FiMWM1OWZlNTQzZGU1
MWUxNmZhMDA4NGQzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dL
Q29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9p
b3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCkBAIC0yNTMyLDggKzI1MzIsMTMgQEAgLSAo
Qk9PTCljYW5TaG93Tm9uRW1wdHlTZWxlY3Rpb25WaWV3CiAKIC0gKEJPT0wpaGFzU2VsZWN0YWJs
ZVBvc2l0aW9uQXRQb2ludDooQ0dQb2ludClwb2ludAogeworICAgIEFMTE9XX0RFUFJFQ0FURURf
REVDTEFSQVRJT05TX0JFR0lOCiAgICAgaWYgKCFzZWxmLndlYlZpZXcuY29uZmlndXJhdGlvbi5f
dGV4dEludGVyYWN0aW9uR2VzdHVyZXNFbmFibGVkKQogICAgICAgICByZXR1cm4gTk87CisgICAg
QUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECisKKyAgICBpZiAoIV9wYWdlLT5wcmVm
ZXJlbmNlcygpLnRleHRJbnRlcmFjdGlvbkdlc3R1cmVzRW5hYmxlZCgpKQorICAgICAgICByZXR1
cm4gTk87CiAKICAgICBpZiAoX3N1cHByZXNzU2VsZWN0aW9uQXNzaXN0YW50UmVhc29ucykKICAg
ICAgICAgcmV0dXJuIE5POwpAQCAtMjU1MCw5ICsyNTU1LDE0IEBAIC0gKEJPT0wpaGFzU2VsZWN0
YWJsZVBvc2l0aW9uQXRQb2ludDooQ0dQb2ludClwb2ludAogCiAtIChCT09MKXBvaW50SXNOZWFy
TWFya2VkVGV4dDooQ0dQb2ludClwb2ludAogeworICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFS
QVRJT05TX0JFR0lOCiAgICAgaWYgKCFzZWxmLndlYlZpZXcuY29uZmlndXJhdGlvbi5fdGV4dElu
dGVyYWN0aW9uR2VzdHVyZXNFbmFibGVkKQogICAgICAgICByZXR1cm4gTk87CisgICAgQUxMT1df
REVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAKKyAgICBpZiAoIV9wYWdlLT5wcmVmZXJlbmNl
cygpLnRleHRJbnRlcmFjdGlvbkdlc3R1cmVzRW5hYmxlZCgpKQorICAgICAgICByZXR1cm4gTk87
CisgICAgCiAgICAgaWYgKF9zdXBwcmVzc1NlbGVjdGlvbkFzc2lzdGFudFJlYXNvbnMpCiAgICAg
ICAgIHJldHVybiBOTzsKIApAQCAtMjU2NCw5ICsyNTc0LDE0IEBAIC0gKEJPT0wpcG9pbnRJc05l
YXJNYXJrZWRUZXh0OihDR1BvaW50KXBvaW50CiAKIC0gKEJPT0wpdGV4dEludGVyYWN0aW9uR2Vz
dHVyZTooVUlXS0dlc3R1cmVUeXBlKWdlc3R1cmUgc2hvdWxkQmVnaW5BdFBvaW50OihDR1BvaW50
KXBvaW50CiB7CisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBp
ZiAoIXNlbGYud2ViVmlldy5jb25maWd1cmF0aW9uLl90ZXh0SW50ZXJhY3Rpb25HZXN0dXJlc0Vu
YWJsZWQpCiAgICAgICAgIHJldHVybiBOTzsKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFU
SU9OU19FTkQKIAorICAgIGlmICghX3BhZ2UtPnByZWZlcmVuY2VzKCkudGV4dEludGVyYWN0aW9u
R2VzdHVyZXNFbmFibGVkKCkpCisgICAgICAgIHJldHVybiBOTzsKKyAgICAKICAgICBpZiAoX2Rv
bVBhc3RlUmVxdWVzdEhhbmRsZXIpCiAgICAgICAgIHJldHVybiBOTzsKIApAQCAtMzI4NSw4ICsz
MzAwLDEzIEBAIC0gKFVJQ29sb3IgKilzZWxlY3Rpb25IaWdobGlnaHRDb2xvcgogCiAtIChVSUNv
bG9yICopX2Nhc2NhZGVJbnRlcmFjdGlvblRpbnRDb2xvcgogeworICAgIEFMTE9XX0RFUFJFQ0FU
RURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgaWYgKCFzZWxmLndlYlZpZXcuY29uZmlndXJhdGlv
bi5fdGV4dEludGVyYWN0aW9uR2VzdHVyZXNFbmFibGVkKQogICAgICAgICByZXR1cm4gW1VJQ29s
b3IgY2xlYXJDb2xvcl07CisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECisK
KyAgICBpZiAoIV9wYWdlLT5wcmVmZXJlbmNlcygpLnRleHRJbnRlcmFjdGlvbkdlc3R1cmVzRW5h
YmxlZCgpKQorICAgICAgICByZXR1cm4gW1VJQ29sb3IgY2xlYXJDb2xvcl07CiAKICAgICBpZiAo
IV9wYWdlLT5lZGl0b3JTdGF0ZSgpLmlzTWlzc2luZ1Bvc3RMYXlvdXREYXRhKSB7CiAgICAgICAg
IFdlYkNvcmU6OkNvbG9yIGNhcmV0Q29sb3IgPSBfcGFnZS0+ZWRpdG9yU3RhdGUoKS5wb3N0TGF5
b3V0RGF0YSgpLmNhcmV0Q29sb3I7CkBAIC0zNTY4LDYgKzM1ODgsOSBAQCAtICh2b2lkKV9wYXN0
ZUFzUXVvdGF0aW9uRm9yV2ViVmlldzooaWQpc2VuZGVyCiAKIC0gKHZvaWQpc2VsZWN0Rm9yV2Vi
VmlldzooaWQpc2VuZGVyCiB7CisgICAgaWYgKCFfcGFnZS0+cHJlZmVyZW5jZXMoKS50ZXh0SW50
ZXJhY3Rpb25HZXN0dXJlc0VuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuOworCiAgICAgW190ZXh0
SW50ZXJhY3Rpb25Bc3Npc3RhbnQgc2VsZWN0V29yZF07CiAgICAgLy8gV2UgY2Fubm90IHVzZSBz
ZWxlY3RXb3JkIGNvbW1hbmQsIGJlY2F1c2Ugd2Ugd2FudCB0byBiZSBhYmxlIHRvIHNlbGVjdCB0
aGUgd29yZCBldmVuIHdoZW4gaXQgaXMgdGhlIGxhc3QgaW4gdGhlIHBhcmFncmFwaC4KICAgICBf
cGFnZS0+ZXh0ZW5kU2VsZWN0aW9uKFdlYkNvcmU6OlRleHRHcmFudWxhcml0eTo6V29yZEdyYW51
bGFyaXR5KTsKQEAgLTM1NzUsNiArMzU5OCw5IEBAIC0gKHZvaWQpc2VsZWN0Rm9yV2ViVmlldzoo
aWQpc2VuZGVyCiAKIC0gKHZvaWQpc2VsZWN0QWxsRm9yV2ViVmlldzooaWQpc2VuZGVyCiB7Cisg
ICAgaWYgKCFfcGFnZS0+cHJlZmVyZW5jZXMoKS50ZXh0SW50ZXJhY3Rpb25HZXN0dXJlc0VuYWJs
ZWQoKSkKKyAgICAgICAgcmV0dXJuOworCiAgICAgW190ZXh0SW50ZXJhY3Rpb25Bc3Npc3RhbnQg
c2VsZWN0QWxsOnNlbmRlcl07CiAgICAgX3BhZ2UtPnNlbGVjdEFsbCgpOwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCAzYzA1NGU4MzQ4ZTA5
MmMwOTQ3MDc3ZmRlMWVlOTM5NTQ0NmMxZjExLi4yNGFjYWMwNzQ2OTFiYjczYWJiZmU0Zjk5NzYz
ZmI3OGNmZmZlNGJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmNwcApAQCAtNTY3LDYgKzU2Nyw4IEBAIFdlYlBhZ2U6OldlYlBhZ2UoUGFnZUlkZW50aWZp
ZXIgcGFnZUlELCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzJiYgcGFyYW1ldGVycykKICAgICBw
YWdlQ29uZmlndXJhdGlvbi5sb2Fkc0Zyb21OZXR3b3JrID0gcGFyYW1ldGVycy5sb2Fkc0Zyb21O
ZXR3b3JrOwogICAgIHBhZ2VDb25maWd1cmF0aW9uLnNob3VsZFJlbGF4VGhpcmRQYXJ0eUNvb2tp
ZUJsb2NraW5nID0gcGFyYW1ldGVycy5zaG91bGRSZWxheFRoaXJkUGFydHlDb29raWVCbG9ja2lu
ZzsKIAorICAgIHBhZ2VDb25maWd1cmF0aW9uLnRleHRJbnRlcmFjdGlvbkdlc3R1cmVzRW5hYmxl
ZCA9IHBhcmFtZXRlcnMudGV4dEludGVyYWN0aW9uR2VzdHVyZXNFbmFibGVkOworICAgIAogICAg
IGlmICghcGFyYW1ldGVycy5jcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2xDaGVja0VuYWJsZWQpCiAg
ICAgICAgIENyb3NzT3JpZ2luQWNjZXNzQ29udHJvbENoZWNrRGlzYWJsZXI6OnNpbmdsZXRvbigp
LnNldENyb3NzT3JpZ2luQWNjZXNzQ29udHJvbENoZWNrRW5hYmxlZChmYWxzZSk7CiAKQEAgLTM3
OTgsNiArMzgwMCw4IEBAIHZvaWQgV2ViUGFnZTo6dXBkYXRlUHJlZmVyZW5jZXMoY29uc3QgV2Vi
UHJlZmVyZW5jZXNTdG9yZSYgc3RvcmUpCiAjaWYgRU5BQkxFKElQQ19URVNUSU5HX0FQSSkKICAg
ICBtX2lwY1Rlc3RpbmdBUElFbmFibGVkID0gc3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5KFdlYlBy
ZWZlcmVuY2VzS2V5OjppcGNUZXN0aW5nQVBJRW5hYmxlZEtleSgpKTsKICNlbmRpZgorCisgICAg
bV9wYWdlLT5zZXRUZXh0SW50ZXJhY3Rpb25HZXN0dXJlc0VuYWJsZWQoc3RvcmUuZ2V0Qm9vbFZh
bHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5Ojp0ZXh0SW50ZXJhY3Rpb25HZXN0dXJlc0VuYWJs
ZWRLZXkoKSkpOwogfQogCiAjaWYgRU5BQkxFKERBVEFfREVURUNUSU9OKQpkaWZmIC0tZ2l0IGEv
VG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDYwMWQ4NGQyMWE5YzMyZjg0
MmExNjlkM2M0YTg5NWU5YmJlNzQ1N2QuLmJhNDZhNzFjODJhYmQ0NTNiMTg4NGFjOWRjOTNiNTJh
OWNmNjc0MTcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwyOCBAQAorMjAyMC0xMi0wMiAgS2F0ZSBDaGVuZXkgIDxrYXRoZXJpbmVf
Y2hlbmV5QGFwcGxlLmNvbT4KKworICAgICAgICBDcmVhdGUgQVBJIHRvIGVuYWJsZS9kaXNhYmxl
IHRleHQgaW50ZXJhY3Rpb24gZ2VzdHVyZXMgaW4gV0tXZWJWaWV3CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTc3ODQKKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzYzNDA2MjQxPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEFkZCBBUEkgdGVzdCBjb3ZlcmFnZSBmb3IgbWFjT1MgYW5kIHN1cHBvcnQgZm9y
IGxheW91dCB0ZXN0cyBmb3IgaU9TLgorICAgICAgICBBUEkgdGVzdHMgZG8gbm90IHN1cHBvcnQg
dXNlciBnZXN0dXJlcyB3aGljaCBpcyB3aHkgaU9TIHRlc3RzIG11c3QKKyAgICAgICAgdXNlIFdl
YktpdFRlc3RSdW5uZXIuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEku
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL1dLV2ViVmlld0Rpc2FibGVTZWxlY3Rpb24ubW06IEFkZGVkLgorICAgICAg
ICAoVEVTVCk6CisgICAgICAgIChjbGlja0FuZERyYWdUb1NlbGVjdFRleHQpOgorICAgICAgICAq
IFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvdHJ5LXRleHQtc2VsZWN0LXdpdGgtZGlz
YWJsZWQtdGV4dC1pbnRlcmFjdGlvbi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBXZWJLaXRUZXN0
UnVubmVyL2NvY29hL1Rlc3RDb250cm9sbGVyQ29jb2EubW06CisgICAgICAgIChXVFI6OlRlc3RD
b250cm9sbGVyOjpjb2NvYVJlc2V0U3RhdGVUb0NvbnNpc3RlbnRWYWx1ZXMpOgorICAgICAgICAq
IFdlYktpdFRlc3RSdW5uZXIvVGVzdE9wdGlvbnMuY3BwOgorICAgICAgICAoV1RSOjpUZXN0T3B0
aW9uczo6ZGVmYXVsdHMpOgorICAgICAgICAoV1RSOjpUZXN0T3B0aW9uczo6a2V5VHlwZU1hcHBp
bmcpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdE9wdGlvbnMuaDoKKyAgICAgICAg
KFdUUjo6VGVzdE9wdGlvbnM6OnRleHRJbnRlcmFjdGlvbkdlc3R1cmVzRW5hYmxlZCBjb25zdCk6
CisKIDIwMjAtMTEtMzAgIEFha2FzaCBKYWluICA8YWFrYXNoX2phaW5AYXBwbGUuY29tPgogCiAg
ICAgICAgIFtidWlsZC53ZWJraXQub3JnXSBVcGRhdGUgUnVuVGVzdDI2MlRlc3RzIHN0ZXAgZm9y
IG5ldyBidWlsZGJvdApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0
QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RX
ZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAzMTA5MmMyNmUzOGVkN2Mx
OTA3NmVmMmUyODNiYjcwNzhhNmQ0ODMxLi44OWQ1MDc3NzliMjI0YTIwZDkzM2VmMzZhMWQyNzY0
OTgyZWQ2YmE4IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEku
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RX
ZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjczLDYgKzI3Myw4IEBACiAJ
CTQ2RkEyRkVFMjM4NDZDQTUwMDBDQ0IwQyAvKiBIVFRQSGVhZGVyTWFwLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2RkEyRkVEMjM4NDZDOUEwMDBD
Q0IwQyAvKiBIVFRQSGVhZGVyTWFwLmNwcCAqLzsgfTsKIAkJNDZGQUNGNzQyM0U4ODQyMzAwQTlF
QkM2IC8qIGJlZm9yZXVubG9hZC1zbG93Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDZGQUNGNzMyM0U4ODNFRTAwQTlFQkM2IC8qIGJl
Zm9yZXVubG9hZC1zbG93Lmh0bWwgKi87IH07CiAJCTQ5MDlFRTNBMkQwOTQ4MEM4ODk4MkQ1NiAv
KiBNYXJrYWJsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBFQzc5RjE2OEJFNDU0RTU3OUU0MTdCMDUgLyogTWFya2FibGUuY3BwICovOyB9OworCQk0
OTUyQkU1RTI1NzgxMTU2MDBCMEFFRjEgLyogV0tXZWJWaWV3RGlzYWJsZVNlbGVjdGlvbi5tbSBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5NTJCRTVEMjU3
ODExNTUwMEIwQUVGMSAvKiBXS1dlYlZpZXdEaXNhYmxlU2VsZWN0aW9uLm1tICovOyB9OworCQk0
OTUyQkU1RjI1NzgxNkY4MDBCMEFFRjEgLyogdHJ5LXRleHQtc2VsZWN0LXdpdGgtZGlzYWJsZWQt
dGV4dC1pbnRlcmFjdGlvbi5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDQ5NTJCRTVDMjU3ODExMzkwMEIwQUVGMSAvKiB0cnktdGV4dC1z
ZWxlY3Qtd2l0aC1kaXNhYmxlZC10ZXh0LWludGVyYWN0aW9uLmh0bWwgKi87IH07CiAJCTQ5NzFC
MTE4MjQ1MUYyOUEwMDk2OTk0RCAvKiBpbmNvcnJlY3RDcmVhdGVUYWJsZVNjaGVtYS5kYiBpbiBD
b3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OTcxQjEx
NzI0NTFGMjc4MDA5Njk5NEQgLyogaW5jb3JyZWN0Q3JlYXRlVGFibGVTY2hlbWEuZGIgKi87IH07
CiAJCTQ5NzFCMTIwMjQ1M0E4OEMwMDk2OTk0RCAvKiBtaXNzaW5nVG9wRnJhbWVVbmlxdWVSZWRp
cmVjdFNhbWVTaXRlU3RyaWN0VGFibGVTY2hlbWEuZGIgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDk3MUIxMUYyNDUzQTg3RjAwOTY5OTREIC8q
IG1pc3NpbmdUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0U2FtZVNpdGVTdHJpY3RUYWJsZVNjaGVtYS5k
YiAqLzsgfTsKIAkJNDk3MUIxMkYyNDYyM0EzQjAwOTY5OTREIC8qIGJhc2ljSVRQRGF0YWJhc2Uu
ZGItc2htIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
OTcxQjEyRDI0NjIzQTNCMDA5Njk5NEQgLyogYmFzaWNJVFBEYXRhYmFzZS5kYi1zaG0gKi87IH07
CkBAIC0xNjMyLDYgKzE2MzQsNyBAQAogCQkJCUY0NEM3QTA1MjBGQUFFM0MwMDE0NDc4QyAvKiB0
ZXh0LXdpdGgtZGVmZXJyZWQtc2NyaXB0Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJ
RjQxQUI5QUExRUY0Njk2QjAwODNGQTA4IC8qIHRleHRhcmVhLXRvLWlucHV0Lmh0bWwgaW4gQ29w
eSBSZXNvdXJjZXMgKi8sCiAJCQkJQzIyRkEzMkQyMjhGOEFFQjAwOUQ3OTg4IC8qIFRleHRXaWR0
aC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAorCQkJCTQ5NTJCRTVGMjU3ODE2RjgwMEIwQUVG
MSAvKiB0cnktdGV4dC1zZWxlY3Qtd2l0aC1kaXNhYmxlZC10ZXh0LWludGVyYWN0aW9uLmh0bWwg
aW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJRjQ0NTFDNzYxRUI4RkQ4OTAwMjBDNURBIC8qIHR3
by1wYXJhZ3JhcGgtY29udGVudGVkaXRhYmxlLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJ
CQkJMUQ2N0JGREQyNDMzRUU2NjAwNkI1MDQ3IC8qIHR3by12aWRlb3MuaHRtbCBpbiBDb3B5IFJl
c291cmNlcyAqLywKIAkJCQlDNTQwRjc4NDE1MkU1QTlBMDBBNDBDOEMgLyogdmVyYm9zZU1hcmt1
cC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLApAQCAtMjAwMiw2ICsyMDA1LDggQEAKIAkJNDZG
MDNDMUIyNTVCMkQzNjAwQUE1MUM1IC8qIGF1ZGlvLWNvbnRleHQtcGxheWluZy5odG1sICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dC5odG1sOyBwYXRoID0gImF1ZGlvLWNvbnRleHQtcGxheWluZy5odG1sIjsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDZGQTJGRUQyMzg0NkM5QTAwMENDQjBDIC8qIEhU
VFBIZWFkZXJNYXAuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSFRU
UEhlYWRlck1hcC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2RkFDRjczMjNF
ODgzRUUwMEE5RUJDNiAvKiBiZWZvcmV1bmxvYWQtc2xvdy5odG1sICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5o
dG1sOyBwYXRoID0gImJlZm9yZXVubG9hZC1zbG93Lmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk0OTUyQkU1QzI1NzgxMTM5MDBCMEFFRjEgLyogdHJ5LXRleHQtc2VsZWN0LXdp
dGgtZGlzYWJsZWQtdGV4dC1pbnRlcmFjdGlvbi5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBw
YXRoID0gInRyeS10ZXh0LXNlbGVjdC13aXRoLWRpc2FibGVkLXRleHQtaW50ZXJhY3Rpb24uaHRt
bCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ5NTJCRTVEMjU3ODExNTUwMEIwQUVG
MSAvKiBXS1dlYlZpZXdEaXNhYmxlU2VsZWN0aW9uLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBwYXRoID0gV0tXZWJWaWV3RGlzYWJsZVNlbGVjdGlvbi5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDk3MUIxMTcyNDUxRjI3ODAwOTY5OTREIC8qIGluY29ycmVj
dENyZWF0ZVRhYmxlU2NoZW1hLmRiICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gZmlsZTsgcGF0aCA9IGluY29ycmVjdENyZWF0ZVRhYmxlU2NoZW1hLmRi
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0OTcxQjExRjI0NTNBODdGMDA5Njk5NEQg
LyogbWlzc2luZ1RvcEZyYW1lVW5pcXVlUmVkaXJlY3RTYW1lU2l0ZVN0cmljdFRhYmxlU2NoZW1h
LmRiICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gZmls
ZTsgbmFtZSA9IG1pc3NpbmdUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0U2FtZVNpdGVTdHJpY3RUYWJs
ZVNjaGVtYS5kYjsgcGF0aCA9IFRlc3RzL1dlYktpdENvY29hL21pc3NpbmdUb3BGcmFtZVVuaXF1
ZVJlZGlyZWN0U2FtZVNpdGVTdHJpY3RUYWJsZVNjaGVtYS5kYjsgc291cmNlVHJlZSA9IFNPVVJD
RV9ST09UOyB9OwogCQk0OTcxQjEyQzI0NjIzOUQzMDA5Njk5NEQgLyogYmFzaWNJVFBEYXRhYmFz
ZS5kYiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IGZp
bGU7IHBhdGggPSBiYXNpY0lUUERhdGFiYXNlLmRiOyBzb3VyY2VUcmVlID0gU09VUkNFX1JPT1Q7
IH07CkBAIC0zNDUzLDYgKzM0NTgsNyBAQAogCQkJCTVDQjNDRTM4MUZBMTY5MTcwMEMzQTJENiAv
KiBXS1dlYlZpZXdDb25maWd1cmF0aW9uLm1tICovLAogCQkJCTdDNDE3RjMxMUQxOUUxNDgwMEI4
RUY1MyAvKiBXS1dlYlZpZXdEZWZhdWx0TmF2aWdhdGlvbkRlbGVnYXRlLm1tICovLAogCQkJCTQ2
RTY2QThGMUYwRDc1NTkwMDI2RDgzQyAvKiBXS1dlYlZpZXdEaWFnbm9zdGljTG9nZ2luZy5tbSAq
LywKKwkJCQk0OTUyQkU1RDI1NzgxMTU1MDBCMEFFRjEgLyogV0tXZWJWaWV3RGlzYWJsZVNlbGVj
dGlvbi5tbSAqLywKIAkJCQkyREI2NDc4NzFGNDE2MUY3MDA1MUE4OUUgLyogV0tXZWJWaWV3RG9l
c05vdExvZ0R1cmluZ0luaXRpYWxpemF0aW9uLm1tICovLAogCQkJCUY0ODExRTU4MjE5NDBCNDQw
MEE1RTBGRCAvKiBXS1dlYlZpZXdFZGl0QWN0aW9ucy5tbSAqLywKIAkJCQkwRjNCOTRBNTFBNzcy
NjZDMDBERTMyNzIgLyogV0tXZWJWaWV3RXZhbHVhdGVKYXZhU2NyaXB0Lm1tICovLApAQCAtMzky
NSw2ICszOTMxLDcgQEAKIAkJCQlGNDRDN0EwNDIwRkFBRTMyMDAxNDQ3OEMgLyogdGV4dC13aXRo
LWRlZmVycmVkLXNjcmlwdC5odG1sICovLAogCQkJCUY0MUFCOTk1MUVGNDY5MkMwMDgzRkEwOCAv
KiB0ZXh0YXJlYS10by1pbnB1dC5odG1sICovLAogCQkJCUMyMkZBMzJDMjI4Rjg3N0EwMDlENzk4
OCAvKiBUZXh0V2lkdGguaHRtbCAqLywKKwkJCQk0OTUyQkU1QzI1NzgxMTM5MDBCMEFFRjEgLyog
dHJ5LXRleHQtc2VsZWN0LXdpdGgtZGlzYWJsZWQtdGV4dC1pbnRlcmFjdGlvbi5odG1sICovLAog
CQkJCUY0NDUxQzc1MUVCOEZEN0MwMDIwQzVEQSAvKiB0d28tcGFyYWdyYXBoLWNvbnRlbnRlZGl0
YWJsZS5odG1sICovLAogCQkJCUNENTc3NzlCMjExQ0U2Q0UwMDFCMzcxRSAvKiB2aWRlby13aXRo
LWF1ZGlvLWFuZC13ZWItYXVkaW8uaHRtbCAqLywKIAkJCQlDRDU3Nzc5ODIxMUNERThGMDAxQjM3
MUUgLyogd2ViLWF1ZGlvLW9ubHkuaHRtbCAqLywKQEAgLTU2NTIsNiArNTY1OSw3IEBACiAJCQkJ
NTc5N0ZFMzExRUIxNUE2ODAwQjJGNEEwIC8qIE5hdmlnYXRpb25DbGllbnREZWZhdWx0Q3J5cHRv
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNEQ0ZGRUMxMjJFMjZBMTUwMERGNDIyMyAvKiBOb1Bh
dXNlV2hlblN3aXRjaGluZ1RhYnMubW0gaW4gU291cmNlcyAqLywKIAkJCQk3QUQzRkU4RTFENzYx
MzEyMDBCMTY5QTQgLyogVHJhbnNmb3JtYXRpb25NYXRyaXguY3BwIGluIFNvdXJjZXMgKi8sCisJ
CQkJNDk1MkJFNUUyNTc4MTE1NjAwQjBBRUYxIC8qIFdLV2ViVmlld0Rpc2FibGVTZWxlY3Rpb24u
bW0gaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9j
ZXNzaW5nID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvV0tXZWJWaWV3RGlzYWJsZVNlbGVjdGlvbi5tbSBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tXZWJWaWV3RGlzYWJsZVNlbGVjdGlvbi5tbQpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5kZTlhNDBjZTU1MWY2MWIzMjdhNmMzMDVkZmI1NGY4NGEwZDE2OTI2Ci0tLSAvZGV2
L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS1dlYlZp
ZXdEaXNhYmxlU2VsZWN0aW9uLm1tCkBAIC0wLDAgKzEsOTYgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1w
b3J0ICJjb25maWcuaCIKKworI2ltcG9ydCAiVGVzdFdLV2ViVmlldy5oIgorI2ltcG9ydCA8V2Vi
S2l0L1dLV2ViVmlld1ByaXZhdGUuaD4KKyNpbXBvcnQgPFdlYktpdC9XS1dlYlZpZXdQcml2YXRl
Rm9yVGVzdGluZy5oPgorI2ltcG9ydCA8d3RmL0Jsb2NrUHRyLmg+CisjaW1wb3J0IDx3dGYvUmV0
YWluUHRyLmg+CisKKyNpZiBQTEFURk9STShNQUMpCisKK1RFU1QoV0tXZWJWaWV3RGlzYWJsZVNl
bGVjdGlvbiwgRG91YmxlQ2xpY2tEb2VzTm90U2VsZWN0V2hlblRleHRJbnRlcmFjdGlvbnNBcmVE
aXNhYmxlZCkKK3sKKyAgICBSZXRhaW5QdHI8VGVzdFdLV2ViVmlldz4gd2ViVmlldyA9IGFkb3B0
TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwg
NDAwLCA0MDApXSk7CisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRUZXN0UGFnZU5hbWVk
OkAidHJ5LXRleHQtc2VsZWN0LXdpdGgtZGlzYWJsZWQtdGV4dC1pbnRlcmFjdGlvbiJdOworCisg
ICAgW3dlYlZpZXcgc2VuZENsaWNrc0F0UG9pbnQ6TlNNYWtlUG9pbnQoMjAwLCAyMDApIG51bWJl
ck9mQ2xpY2tzOjJdOworICAgIFt3ZWJWaWV3IHdhaXRGb3JQZW5kaW5nTW91c2VFdmVudHNdOwor
CisgICAgTlNTdHJpbmcgKnNlbGVjdGVkVGV4dCA9IFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGlu
Z0phdmFTY3JpcHQ6QCJnZXRTZWxlY3Rpb24oKS5nZXRSYW5nZUF0KDApLnRvU3RyaW5nKCkiXTsK
KyAgICBFWFBFQ1RfU1RSRVEoIkhlbGxvIiwgc2VsZWN0ZWRUZXh0LlVURjhTdHJpbmcpOworCisg
ICAgLy8gQ2xlYXIgdGhlIHNlbGVjdGlvbiBieSBjbGlja2luZyBvbmNlLgorICAgIFt3ZWJWaWV3
IHNlbmRDbGlja3NBdFBvaW50Ok5TTWFrZVBvaW50KDIwMCwgMjAwKSBudW1iZXJPZkNsaWNrczox
XTsKKyAgICBbd2ViVmlldyB3YWl0Rm9yUGVuZGluZ01vdXNlRXZlbnRzXTsKKworICAgIC8vIERp
c2FibGUgdGV4dCBzZWxlY3Rpb24gdGhlbiBkb3VibGUgY2xpY2sgYWdhaW4uIFRoaXMgc2hvdWxk
IHJlc3VsdCBpbiBubyB0ZXh0IHNlbGVjdGVkLgorICAgIFt3ZWJWaWV3IGNvbmZpZ3VyYXRpb25d
LnByZWZlcmVuY2VzLnRleHRJbnRlcmFjdGlvbkdlc3R1cmVzRW5hYmxlZCA9IE5POworCisgICAg
W3dlYlZpZXcgc2VuZENsaWNrc0F0UG9pbnQ6TlNNYWtlUG9pbnQoMjAwLCAyMDApIG51bWJlck9m
Q2xpY2tzOjJdOworICAgIFt3ZWJWaWV3IHdhaXRGb3JQZW5kaW5nTW91c2VFdmVudHNdOworCisg
ICAgTlNTdHJpbmcgKnNlbGVjdGVkVGV4dDIgPSBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdK
YXZhU2NyaXB0OkAiZ2V0U2VsZWN0aW9uKCkuZ2V0UmFuZ2VBdCgwKS50b1N0cmluZygpIl07Cisg
ICAgRVhQRUNUX1NUUkVRKCIiLCBzZWxlY3RlZFRleHQyLlVURjhTdHJpbmcpOworfQorCitzdGF0
aWMgTlNTdHJpbmcgKmNsaWNrQW5kRHJhZ1RvU2VsZWN0VGV4dChUZXN0V0tXZWJWaWV3ICp3ZWJW
aWV3KQoreworICAgIFt3ZWJWaWV3IG1vdXNlRW50ZXJBdFBvaW50OkNHUG9pbnRNYWtlKDE1MCwg
MjAwKV07CisgICAgW3dlYlZpZXcgbW91c2VNb3ZlVG9Qb2ludDpDR1BvaW50TWFrZSgxNTAsIDIw
MCkgd2l0aEZsYWdzOjBdOworICAgIFt3ZWJWaWV3IG1vdXNlRG93bkF0UG9pbnQ6Q0dQb2ludE1h
a2UoMTUwLCAyMDApIHNpbXVsYXRlUHJlc3N1cmU6Tk9dOworICAgIFt3ZWJWaWV3IHdhaXRGb3JQ
ZW5kaW5nTW91c2VFdmVudHNdOworCisgICAgW3dlYlZpZXcgbW91c2VEcmFnVG9Qb2ludDpDR1Bv
aW50TWFrZSg5MDAsIDIwMCldOworICAgIFt3ZWJWaWV3IHdhaXRGb3JQZW5kaW5nTW91c2VFdmVu
dHNdOworCisgICAgW3dlYlZpZXcgbW91c2VVcEF0UG9pbnQ6Q0dQb2ludE1ha2UoOTAwLCAyMDAp
XTsKKyAgICBbd2ViVmlldyB3YWl0Rm9yUGVuZGluZ01vdXNlRXZlbnRzXTsKKyAgICAKKyAgICBy
ZXR1cm4gW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImdldFNlbGVjdGlv
bigpLmdldFJhbmdlQXQoMCkudG9TdHJpbmcoKSJdOworfQorCitURVNUKFdLV2ViVmlld0Rpc2Fi
bGVTZWxlY3Rpb24sIERyYWdEb2VzTm90U2VsZWN0V2hlblRleHRJbnRlcmFjdGlvbnNBcmVEaXNh
YmxlZCkKK3sKKyAgICBSZXRhaW5QdHI8VGVzdFdLV2ViVmlldz4gd2ViVmlldyA9IGFkb3B0TlMo
W1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgMTAw
MCwgNDAwKV0pOworICAgIFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkVGVzdFBhZ2VOYW1lZDpA
InRyeS10ZXh0LXNlbGVjdC13aXRoLWRpc2FibGVkLXRleHQtaW50ZXJhY3Rpb24iXTsKKworICAg
IE5TU3RyaW5nICpzZWxlY3RlZFRleHQgPSBjbGlja0FuZERyYWdUb1NlbGVjdFRleHQod2ViVmll
dy5nZXQoKSk7CisgICAgRVhQRUNUX1NUUkVRKCJIZWxsbyIsIHNlbGVjdGVkVGV4dC5VVEY4U3Ry
aW5nKTsKKyAgICAKKyAgICAvLyBDbGVhciB0aGUgc2VsZWN0aW9uIGJ5IGNsaWNraW5nIG9uY2Uu
CisgICAgW3dlYlZpZXcgc2VuZENsaWNrc0F0UG9pbnQ6TlNNYWtlUG9pbnQoMjAwLCAyMDApIG51
bWJlck9mQ2xpY2tzOjFdOworICAgIFt3ZWJWaWV3IHdhaXRGb3JQZW5kaW5nTW91c2VFdmVudHNd
OworICAgIAorICAgIC8vIERpc2FibGUgdGV4dCBzZWxlY3Rpb24gdGhlbiBjbGljayBhbmQgZHJh
ZyBhZ2Fpbi4gVGhpcyBzaG91bGQgcmVzdWx0IGluIG5vIHRleHQgc2VsZWN0ZWQuCisgICAgW3dl
YlZpZXcgY29uZmlndXJhdGlvbl0ucHJlZmVyZW5jZXMudGV4dEludGVyYWN0aW9uR2VzdHVyZXNF
bmFibGVkID0gTk87CisKKyAgICBOU1N0cmluZyAqc2VsZWN0ZWRUZXh0MiA9IGNsaWNrQW5kRHJh
Z1RvU2VsZWN0VGV4dCh3ZWJWaWV3LmdldCgpKTsKKyAgICBFWFBFQ1RfU1RSRVEoIiIsIHNlbGVj
dGVkVGV4dDIuVVRGOFN0cmluZyk7Cit9CisKKyNlbmRpZiAvLyBQTEFURk9STShNQUMpCmRpZmYg
LS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL3RyeS10ZXh0LXNl
bGVjdC13aXRoLWRpc2FibGVkLXRleHQtaW50ZXJhY3Rpb24uaHRtbCBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvdHJ5LXRleHQtc2VsZWN0LXdpdGgtZGlzYWJsZWQtdGV4
dC1pbnRlcmFjdGlvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVjYzFiMjNmMDNlNWJmOTU4ZjM1ZTFmYTFi
NTgzNDg1ZmJlNDAzZGQKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL3RyeS10ZXh0LXNlbGVjdC13aXRoLWRpc2FibGVkLXRleHQtaW50ZXJh
Y3Rpb24uaHRtbApAQCAtMCwwICsxLDE1IEBACis8c3R5bGU+Citib2R5IHsKKyAgICB3aWR0aDog
MTAwJTsKKyAgICBoZWlnaHQ6IDEwMCU7Cit9CisKKyNlZGl0YWJsZSB7CisgICAgd2lkdGg6IDEw
MCU7CisgICAgaGVpZ2h0OiA0MDBweDsKKyAgICBmb250LXNpemU6IDQwMHB4OworICAgIHdoaXRl
LXNwYWNlOiBub3dyYXA7CisgICAgYm9yZGVyOiAxcHggYmx1ZSBkYXNoZWQ7Cit9Cis8L3N0eWxl
PgorPGRpdiBpZD0iZWRpdGFibGUiIGNvbnRlbnRlZGl0YWJsZT5IZWxsbyB3b3JsZDwvZGl2Pgpk
aWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0T3B0aW9ucy5jcHAgYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RPcHRpb25zLmNwcAppbmRleCBmMzZkMTljYzFjMzAyODBl
NzU5OGIxZDI1MGEwZWI1ZDlhNmQ1OGY3Li5jYWFkZTZiOTA2NGQ0MTExODQzZTJiMDA3YjVmNjc0
OWFhYzk5MjhhIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RPcHRpb25z
LmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RPcHRpb25zLmNwcApAQCAtODYs
NiArODYsNyBAQCBjb25zdCBUZXN0RmVhdHVyZXMmIFRlc3RPcHRpb25zOjpkZWZhdWx0cygpCiAg
ICAgICAgICAgICB7ICJzaG91bGRTaG93VG91Y2hlcyIsIGZhbHNlIH0sCiAgICAgICAgICAgICB7
ICJzaG91bGRTaG93V2ViVmlldyIsIGZhbHNlIH0sCiAgICAgICAgICAgICB7ICJzcGVsbENoZWNr
aW5nRG90cyIsIGZhbHNlIH0sCisgICAgICAgICAgICB7ICJ0ZXh0SW50ZXJhY3Rpb25HZXN0dXJl
c0VuYWJsZWQiLCB0cnVlIH0sCiAgICAgICAgICAgICB7ICJ1c2VDaGFyYWN0ZXJTZWxlY3Rpb25H
cmFudWxhcml0eSIsIGZhbHNlIH0sCiAgICAgICAgICAgICB7ICJ1c2VEYXRhRGV0ZWN0aW9uIiwg
ZmFsc2UgfSwKICAgICAgICAgICAgIHsgInVzZUVwaGVtZXJhbFNlc3Npb24iLCBmYWxzZSB9LApA
QCAtMTM1LDYgKzEzNiw3IEBAIGNvbnN0IHN0ZDo6dW5vcmRlcmVkX21hcDxzdGQ6OnN0cmluZywg
VGVzdEhlYWRlcktleVR5cGU+JiBUZXN0T3B0aW9uczo6a2V5VHlwZU1hCiAgICAgICAgIHsgInNo
b3VsZFNob3dUb3VjaGVzIiwgVGVzdEhlYWRlcktleVR5cGU6OkJvb2xUZXN0UnVubmVyIH0sCiAg
ICAgICAgIHsgInNob3VsZFNob3dXZWJWaWV3IiwgVGVzdEhlYWRlcktleVR5cGU6OkJvb2xUZXN0
UnVubmVyIH0sCiAgICAgICAgIHsgInNwZWxsQ2hlY2tpbmdEb3RzIiwgVGVzdEhlYWRlcktleVR5
cGU6OkJvb2xUZXN0UnVubmVyIH0sCisgICAgICAgIHsgInRleHRJbnRlcmFjdGlvbkdlc3R1cmVz
RW5hYmxlZCIsIFRlc3RIZWFkZXJLZXlUeXBlOjpCb29sVGVzdFJ1bm5lciB9LAogICAgICAgICB7
ICJ1c2VDaGFyYWN0ZXJTZWxlY3Rpb25HcmFudWxhcml0eSIsIFRlc3RIZWFkZXJLZXlUeXBlOjpC
b29sVGVzdFJ1bm5lciB9LAogICAgICAgICB7ICJ1c2VEYXRhRGV0ZWN0aW9uIiwgVGVzdEhlYWRl
cktleVR5cGU6OkJvb2xUZXN0UnVubmVyIH0sCiAgICAgICAgIHsgInVzZUVwaGVtZXJhbFNlc3Np
b24iLCBUZXN0SGVhZGVyS2V5VHlwZTo6Qm9vbFRlc3RSdW5uZXIgfSwKZGlmZiAtLWdpdCBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdE9wdGlvbnMuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvVGVzdE9wdGlvbnMuaAppbmRleCAyY2ZlOWY3NWZlYjgzMWJhNDZkMDY1OTczMDFjNDEyMzk0
NmY4ZjAxLi5iOWMxMGJkMWIyZWUwOTJhOWQ0Mjc4MGQ4Y2E4MjY0MzA5NTUzYjRjIDEwMDY0NAot
LS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RPcHRpb25zLmgKKysrIGIvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9UZXN0T3B0aW9ucy5oCkBAIC02Myw2ICs2Myw3IEBAIHB1YmxpYzoKICAg
ICBib29sIHNob3VsZFNob3dTcGVsbENoZWNraW5nRG90cygpIGNvbnN0IHsgcmV0dXJuIGJvb2xU
ZXN0UnVubmVyRmVhdHVyZVZhbHVlKCJzcGVsbENoZWNraW5nRG90cyIpOyB9CiAgICAgYm9vbCBz
aG91bGRTaG93VG91Y2hlcygpIGNvbnN0IHsgcmV0dXJuIGJvb2xUZXN0UnVubmVyRmVhdHVyZVZh
bHVlKCJzaG91bGRTaG93VG91Y2hlcyIpOyB9CiAgICAgYm9vbCBzaG91bGRTaG93V2ViVmlldygp
IGNvbnN0IHsgcmV0dXJuIGJvb2xUZXN0UnVubmVyRmVhdHVyZVZhbHVlKCJzaG91bGRTaG93V2Vi
VmlldyIpOyB9CisgICAgYm9vbCB0ZXh0SW50ZXJhY3Rpb25HZXN0dXJlc0VuYWJsZWQoKSBjb25z
dCB7IHJldHVybiBib29sVGVzdFJ1bm5lckZlYXR1cmVWYWx1ZSgidGV4dEludGVyYWN0aW9uR2Vz
dHVyZXNFbmFibGVkIik7IH0KICAgICBib29sIHVzZUNoYXJhY3RlclNlbGVjdGlvbkdyYW51bGFy
aXR5KCkgY29uc3QgeyByZXR1cm4gYm9vbFRlc3RSdW5uZXJGZWF0dXJlVmFsdWUoInVzZUNoYXJh
Y3RlclNlbGVjdGlvbkdyYW51bGFyaXR5Iik7IH0KICAgICBib29sIHVzZURhdGFEZXRlY3Rpb24o
KSBjb25zdCB7IHJldHVybiBib29sVGVzdFJ1bm5lckZlYXR1cmVWYWx1ZSgidXNlRGF0YURldGVj
dGlvbiIpOyB9CiAgICAgYm9vbCB1c2VFcGhlbWVyYWxTZXNzaW9uKCkgY29uc3QgeyByZXR1cm4g
Ym9vbFRlc3RSdW5uZXJGZWF0dXJlVmFsdWUoInVzZUVwaGVtZXJhbFNlc3Npb24iKTsgfQpkaWZm
IC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0Q29udHJvbGxlckNvY29h
Lm1tIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0Q29udHJvbGxlckNvY29hLm1t
CmluZGV4IDQxOGJmYWFlOWYwNTcwYjNjODljY2ExMTMzZjllM2I0MmYwMDJiNjMuLjljMWY1NDIy
OWU1MzdmYjU2OTBiMTZlYzQ3NWFhZTlhZjY4ZDAyYWUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvY29jb2EvVGVzdENvbnRyb2xsZXJDb2NvYS5tbQorKysgYi9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL2NvY29hL1Rlc3RDb250cm9sbGVyQ29jb2EubW0KQEAgLTI5MCw2ICsyOTAs
NyBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpjb2NvYVJlc2V0U3RhdGVUb0NvbnNpc3RlbnRWYWx1
ZXMoY29uc3QgVGVzdE9wdGlvbnMmIG9wdGlvbgogICAgICAgICBbcGxhdGZvcm1WaWV3IF9zZXRD
b250aW51b3VzU3BlbGxDaGVja2luZ0VuYWJsZWRGb3JUZXN0aW5nOm9wdGlvbnMuc2hvdWxkU2hv
d1NwZWxsQ2hlY2tpbmdEb3RzKCldOwogICAgICAgICBbcGxhdGZvcm1WaWV3IHJlc2V0SW50ZXJh
Y3Rpb25DYWxsYmFja3NdOwogICAgICAgICBbcGxhdGZvcm1WaWV3IF9yZXNldE5hdmlnYXRpb25H
ZXN0dXJlU3RhdGVGb3JUZXN0aW5nXTsKKyAgICAgICAgW3BsYXRmb3JtVmlldy5jb25maWd1cmF0
aW9uLnByZWZlcmVuY2VzIHNldFRleHRJbnRlcmFjdGlvbkdlc3R1cmVzRW5hYmxlZDpvcHRpb25z
LnRleHRJbnRlcmFjdGlvbkdlc3R1cmVzRW5hYmxlZCgpXTsKICAgICB9CiAKICAgICBbZ2xvYmFs
V2Vic2l0ZURhdGFTdG9yZURlbGVnYXRlQ2xpZW50IHNldEFsbG93UmFpc2luZ1F1b3RhOllFU107
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKaW5kZXggMmI0MjVmY2E1NDg5YzY3OGEzZGQyMzk5Y2YwNmIxOTU2NzczM2I3MC4uYjY0Yzgx
MGJlMjczYjkyZGU0NzFhZjUzNjRmN2U1NWQyMjA1NDJlOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBA
CisyMDIwLTEyLTAyICBLYXRlIENoZW5leSAgPGthdGhlcmluZV9jaGVuZXlAYXBwbGUuY29tPgor
CisgICAgICAgIENyZWF0ZSBBUEkgdG8gZW5hYmxlL2Rpc2FibGUgdGV4dCBpbnRlcmFjdGlvbiBn
ZXN0dXJlcyBpbiBXS1dlYlZpZXcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIxNzc4NAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjM0MDYyNDE+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTGF5b3V0IHRl
c3QgY292ZXJhZ2UgZm9yIGlPUy4KKworICAgICAgICAqIExheW91dFRlc3RzL2VkaXRpbmcvc2Vs
ZWN0aW9uL2lvcy9jYW5ub3Qtc2VsZWN0LWFmdGVyLWRpc2FibGluZy10ZXh0LWludGVyYWN0aW9u
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxl
Y3Rpb24vaW9zL2Nhbm5vdC1zZWxlY3QtYWZ0ZXItZGlzYWJsaW5nLXRleHQtaW50ZXJhY3Rpb24u
aHRtbDogQWRkZWQuCisKIDIwMjAtMTEtMzAgIExhdXJvIE1vdXJhICA8bG1vdXJhQGlnYWxpYS5j
b20+CiAKICAgICAgICAgW0dMSUJdIFByb3Blcmx5IGdhcmRlbiB3ZWJydGMgY3Jhc2hlcwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vaW9zL2Nhbm5vdC1zZWxlY3Qt
YWZ0ZXItZGlzYWJsaW5nLXRleHQtaW50ZXJhY3Rpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvZWRpdGluZy9zZWxlY3Rpb24vaW9zL2Nhbm5vdC1zZWxlY3QtYWZ0ZXItZGlzYWJsaW5nLXRl
eHQtaW50ZXJhY3Rpb24tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmEzZDA5MTUyOGU1YTYzMGU0
MzNkMGQ0MDM3MzM4MTE2MjQ3Y2JhYTEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9l
ZGl0aW5nL3NlbGVjdGlvbi9pb3MvY2Fubm90LXNlbGVjdC1hZnRlci1kaXNhYmxpbmctdGV4dC1p
bnRlcmFjdGlvbi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorVGhpcyB0ZXN0IHZlcmlm
aWVzIHRoYXQgdGV4dCBzZWxlY3Rpb24gZmFpbHMgd2hlbiB0ZXh0IGludGVyYWN0aW9uIGdlc3R1
cmVzIGFyZSBkaXNhYmxlZC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mg
Z2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKSBpcyAiIgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCitUZXN0aW5nCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9lZGl0aW5nL3NlbGVjdGlvbi9pb3MvY2Fubm90LXNlbGVjdC1hZnRlci1kaXNhYmxpbmctdGV4
dC1pbnRlcmFjdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vaW9zL2Nh
bm5vdC1zZWxlY3QtYWZ0ZXItZGlzYWJsaW5nLXRleHQtaW50ZXJhY3Rpb24uaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5jNDNjMzE5ODFlOGFiNjY2YjMxMDRlMjczYWMzMmFmNjdkMTY3NzYxCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vaW9zL2Nhbm5vdC1zZWxlY3Qt
YWZ0ZXItZGlzYWJsaW5nLXRleHQtaW50ZXJhY3Rpb24uaHRtbApAQCAtMCwwICsxLDMyIEBACis8
IURPQ1RZUEUgaHRtbD4gPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyB1c2VGbGV4aWJsZVZpZXdw
b3J0PXRydWUgdGV4dEludGVyYWN0aW9uR2VzdHVyZXNFbmFibGVkPWZhbHNlIF0gLS0+Cis8aHRt
bD4KKzxoZWFkPgorPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13
aWR0aCwgaW5pdGlhbC1zY2FsZT0xLCB1c2VyLXNjYWxhYmxlPW5vIj4KKzxzY3JpcHQgc3JjPSIu
Li8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vLi4vcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8c3R5bGU+CitodG1sLCBi
b2R5IHsKKyAgICB3aWR0aDogMTAwJTsKKyAgICBtYXJnaW46IDA7Cit9CisKKyN0YXJnZXQgewor
ICAgIGZvbnQtc2l6ZTogMjRweDsKK30KKzwvc3R5bGU+Cis8c2NyaXB0PgorICAgIGpzVGVzdElz
QXN5bmMgPSB0cnVlOworCisgICAgYXN5bmMgZnVuY3Rpb24gcnVuVGVzdCgpCisgICAgeworICAg
ICAgICBkZXNjcmlwdGlvbigiVGhpcyB0ZXN0IHZlcmlmaWVzIHRoYXQgdGV4dCBzZWxlY3Rpb24g
ZmFpbHMgd2hlbiB0ZXh0IGludGVyYWN0aW9uIGdlc3R1cmVzIGFyZSBkaXNhYmxlZC4iKTsKKwor
ICAgICAgICBhd2FpdCBVSUhlbHBlci5sb25nUHJlc3NFbGVtZW50KHRhcmdldCk7CisgICAgICAg
IHNob3VsZEJlRXF1YWxUb1N0cmluZygiZ2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKSIsICIiKTsK
KyAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgfQorPC9zY3JpcHQ+Cis8Ym9keSBvbmxvYWQ9
InJ1blRlc3QoKSI+CisgICAgPGRpdiBpZD0idGFyZ2V0Ij5UZXN0aW5nPC9kaXY+Cis8L2JvZHk+
Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>415432</attachid>
            <date>2020-12-04 11:04:04 -0800</date>
            <delta_ts>2021-09-14 10:27:26 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-217784-20201204110404.patch</filename>
            <type>text/plain</type>
            <size>44837</size>
            <attacher name="Kate Cheney">katherine_cheney</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwMjQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDhmODE0MTZkNDI4ZDQ0N2ZlYzI1YzE1
NzBkNTM3Y2ZjMGI1Y2EyY2IuLmY1Njg5MTdmOWY2ZWEyOTFhNWJlZjU4YzdlZGQzNWNkYmFiOTU2
YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjAtMTItMDIgIEthdGUgQ2hlbmV5ICA8a2F0aGVy
aW5lX2NoZW5leUBhcHBsZS5jb20+CisKKyAgICAgICAgQ3JlYXRlIEFQSSB0byBlbmFibGUvZGlz
YWJsZSB0ZXh0IGludGVyYWN0aW9uIGdlc3R1cmVzIGluIFdLV2ViVmlldworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3Nzg0CisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS82MzQwNjI0MT4KKworICAgICAgICBSZXZpZXdlZCBieSBXZW5zb24gSHNpZWgu
CisKKyAgICAgICAgQ3JlYXRlIG5ldyBXS1ByZWZlcmVuY2UuIFNlZSBXZWJLaXQgQ2hhbmdlbG9n
IGZvciBkZXRhaWxzLgorCisgICAgICAgICogU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJl
bmNlcy55YW1sOgorCiAyMDIwLTExLTI4ICBQZXIgQXJuZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxl
LmNvbT4KIAogICAgICAgICBbbWFjT1NdIFNldCBhcHBsaWNhdGlvbiBpbmZvcm1hdGlvbiBpbiB0
aGUgTmV0d29ya2luZyBwcm9jZXNzIG9uIGJlaGFsZiBvZiB0aGUgV2ViQ29udGVudCBwcm9jZXNz
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKaW5kZXggNzEwMDAxYmM1YmM0MTVkMzY1YTA0ZTgwYjA0ZTUxZWNkNmIwNGFhOS4u
Mzk0Y2M0YzlkOTRkNjAzZThkMjgyOTAxMjY5OWMzMjIzMDZhNGY2ZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDM5IEBACisyMDIwLTEyLTAyICBLYXRlIENoZW5leSAgPGthdGhlcmluZV9jaGVuZXlA
YXBwbGUuY29tPgorCisgICAgICAgIENyZWF0ZSBBUEkgdG8gZW5hYmxlL2Rpc2FibGUgdGV4dCBp
bnRlcmFjdGlvbiBnZXN0dXJlcyBpbiBXS1dlYlZpZXcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzc4NAorICAgICAgICA8cmRhcjovL3Byb2JsZW0v
NjM0MDYyNDE+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgV2Vuc29uIEhzaWVoLgorCisgICAgICAg
IEFkZCBBUEkgdG8gZGlzYWJsZSB0ZXh0IHNlbGVjdGlvbiBmb3IgbWFjT1MuCisKKyAgICAgICAg
KiBwYWdlL0V2ZW50SGFuZGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6
OnNlbGVjdENsb3Nlc3RXb3JkRnJvbU1vdXNlRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6RXZl
bnRIYW5kbGVyOjpzZWxlY3RDbG9zZXN0Q29udGV4dHVhbFdvcmRPckxpbmtGcm9tTW91c2VFdmVu
dCk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmhhbmRsZU1vdXNlUHJlc3NFdmVu
dERvdWJsZUNsaWNrKToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6aGFuZGxlTW91
c2VQcmVzc0V2ZW50VHJpcGxlQ2xpY2spOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVy
OjpoYW5kbGVNb3VzZVByZXNzRXZlbnRTaW5nbGVDbGljayk6CisgICAgICAgIChXZWJDb3JlOjpF
dmVudEhhbmRsZXI6Om1vdXNlRG93bk1heVN0YXJ0U2VsZWN0KToKKyAgICAgICAgQ3JlYXRlIGEg
bmV3IGZ1bmN0aW9uIHRvIHJldHVybiB3aGV0aGVyIGEgY2xpY2sgcmVzdWx0cyBpbiBhCisgICAg
ICAgIHNlbGVjdGlvbi4gSXQgd2lsbCBhbHdheXMgcmV0dXJuIGZhbHNlIGlmIHRleHQgaW50ZXJh
Y3Rpb24gaXMgZGlzYWJsZWQuCisKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6aGFu
ZGxlTW91c2VQcmVzc0V2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6aGFu
ZGxlTW91c2VEcmFnZ2VkRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjp1
cGRhdGVTZWxlY3Rpb25Gb3JNb3VzZURyYWcpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5k
bGVyOjpzZWxlY3RDdXJzb3IpOgorICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmg6CisgICAg
ICAgICogcGFnZS9QYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om1fdGV4dEludGVyYWN0aW9u
RW5hYmxlZCk6CisgICAgICAgIChXZWJDb3JlOjptX3Nob3VsZFJlbGF4VGhpcmRQYXJ0eUNvb2tp
ZUJsb2NraW5nKTogRGVsZXRlZC4KKyAgICAgICAgKiBwYWdlL1BhZ2UuaDoKKyAgICAgICAgU3Rv
cmUgdGhlIHRleHRJbnRlcmFjdGlvbkVuYWJsZWQgdmFsdWUgaW4gdGhlIFBhZ2Ugc28gaXQgaXMK
KyAgICAgICAgYWNjZXNzaWJsZSBmcm9tIHRoZSBFdmVudEhhbmRsZXIuCisKKyAgICAgICAgKFdl
YkNvcmU6OlBhZ2U6OnRleHRJbnRlcmFjdGlvbkVuYWJsZWQpOgorICAgICAgICAoV2ViQ29yZTo6
UGFnZTo6c2V0VGV4dEludGVyYWN0aW9uRW5hYmxlZCk6CisgICAgICAgICogcGFnZS9QYWdlQ29u
ZmlndXJhdGlvbi5oOgorCiAyMDIwLTExLTMwICBBZGl0eWEgS2VlcnRoaSAgPGFrZWVydGhpQGFw
cGxlLmNvbT4KIAogICAgICAgICBVc2UgcmVhbCBkYXRlcyBhbmQgdGltZXMgYXMgcGxhY2Vob2xk
ZXJzIGZvciBkYXRlL3RpbWUgaW5wdXRzIHdpdGggZWRpdGFibGUgY29tcG9uZW50cwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpp
bmRleCBiMTYwYTI1MTdjOTM0ODFhODdjNjIyODRmNjg4ZDIzMzQzYWM4YTJmLi44ZTgzNzg2NTdi
ZDhkMDQ3YjE3NmYwMDM3NTYwNjU4NzU4ODY5ZWEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDU1IEBA
CisyMDIwLTEyLTAyICBLYXRlIENoZW5leSAgPGthdGhlcmluZV9jaGVuZXlAYXBwbGUuY29tPgor
CisgICAgICAgIENyZWF0ZSBBUEkgdG8gZW5hYmxlL2Rpc2FibGUgdGV4dCBpbnRlcmFjdGlvbiBn
ZXN0dXJlcyBpbiBXS1dlYlZpZXcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIxNzc4NAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjM0MDYyNDE+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgV2Vuc29uIEhzaWVoLgorCisgICAgICAgIENyZWF0ZSBhIG5l
dyBBUEkgdG8gZGlzYWJsZSB0ZXh0IGludGVyYWN0aW9uIGdlc3R1cmVzIGluIGEgV0tXZWJWaWV3
LgorICAgICAgICBXZSBoYXZlIFNQSSBmb3IgdGhpcyBmb3IgaU9TLCBidXQgaXQgY291bGQgYmUg
dXNlZnVsIHRvIG90aGVyIFdlYktpdAorICAgICAgICBjbGllbnRzIGFuZCBvbiBtYWNPUy4gQWRk
IHRoZSBBUEkgdG8gV0tQcmVmZXJlbmNlcywgaW5zdGVhZCBvZgorICAgICAgICBXS1dlYlZpZXdD
b25maWd1cmF0aW9uLCBzbyBpdCBjYW4gYmUgY2hhbmdlZCBvbiB0aGUgZmx5LgorCisgICAgICAg
IERlcHJlY2F0ZSB0aGUgU1BJLgorCisgICAgICAgICogU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBh
cmFtZXRlcnMuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJz
OjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlQ3JlYXRpb25QYXJhbWV0
ZXJzOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJz
Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzLmg6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzLm1tOgorICAgICAgICAoLVtX
S1ByZWZlcmVuY2VzIGVuY29kZVdpdGhDb2RlcjpdKToKKyAgICAgICAgKC1bV0tQcmVmZXJlbmNl
cyBpbml0V2l0aENvZGVyOl0pOgorICAgICAgICAoLVtXS1ByZWZlcmVuY2VzIHRleHRJbnRlcmFj
dGlvbkVuYWJsZWRdKToKKyAgICAgICAgKC1bV0tQcmVmZXJlbmNlcyBzZXRUZXh0SW50ZXJhY3Rp
b25FbmFibGVkOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Q29u
ZmlndXJhdGlvbi5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBpbml0XSk6
CisgICAgICAgICgtW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gZW5jb2RlV2l0aENvZGVyOl0pOgor
ICAgICAgICAoLVtXS1dlYlZpZXdDb25maWd1cmF0aW9uIGluaXRXaXRoQ29kZXI6XSk6CisgICAg
ICAgICgtW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gY29weVdpdGhab25lOl0pOgorICAgICAgICAo
LVtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90ZXh0SW50ZXJhY3Rpb25FbmFibGVkXSk6CisgICAg
ICAgICgtW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3NldFRleHRJbnRlcmFjdGlvbkVuYWJsZWQ6
XSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9u
UHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmNyZWF0aW9uUGFyYW1ldGVycyk6CisgICAgICAgICog
VUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW06CisgICAgICAgICgtW1dL
Q29udGVudFZpZXcgaGFzU2VsZWN0YWJsZVBvc2l0aW9uQXRQb2ludDpdKToKKyAgICAgICAgKC1b
V0tDb250ZW50VmlldyBwb2ludElzTmVhck1hcmtlZFRleHQ6XSk6CisgICAgICAgICgtW1dLQ29u
dGVudFZpZXcgdGV4dEludGVyYWN0aW9uR2VzdHVyZTpzaG91bGRCZWdpbkF0UG9pbnQ6XSk6Cisg
ICAgICAgICgtW1dLQ29udGVudFZpZXcgX2Nhc2NhZGVJbnRlcmFjdGlvblRpbnRDb2xvcl0pOgor
ICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IHNlbGVjdEZvcldlYlZpZXc6XSk6CisgICAgICAgICgt
W1dLQ29udGVudFZpZXcgc2VsZWN0QWxsRm9yV2ViVmlldzpdKToKKyAgICAgICAgQWRkIGNoZWNr
IGZvciB0ZXh0SW50ZXJhY3Rpb25FbmFibGVkIGluIHRoZXNlIHNlbGVjdCoKKyAgICAgICAgZnVu
Y3Rpb25zIGJlY2F1c2UgZGlzYWJsaW5nIHRleHQgaW50ZXJhY3Rpb24gc2hvdWxkIGRpc2FibGUg
c2VsZWN0aW9uCisgICAgICAgIGluIFdLV2ViVmlldy4KKworICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgVXBkYXRlIHRoZSB0ZXh0SW50ZXJhY3Rpb25F
bmFibGVkIHZhbHVlIGluIHRoZSBwYWdlIHdoZW4KKyAgICAgICAgcHJlZmVyZW5jZXMgYXJlIHVw
ZGF0ZWQuCisKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6dXBkYXRlUHJlZmVyZW5jZXMpOgor
CiAyMDIwLTExLTI5ICBBZGFtIE1hemFuZGVyICA8bWF6YW5kZXJAYXBwbGUuY29tPgogCiAgICAg
ICAgIERlbnkgbG9ncyBmb3IgYmVuaWduIGZvbnRzZXJ2aWNlc2QgZGFlbW9uCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXMueWFtbCBiL1Nv
dXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlcy55YW1sCmluZGV4IGFm
MzFhMjM4Y2I0ZGFkNTc0ODZjMTU3MjQyMTMwMmI2YzRlNWI5MjguLmY2ZDcwZjgyOGZiYTE3YjU2
NGVhOTg5YzIzMWU0NDliMDZkYjkxZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvU2NyaXB0cy9Q
cmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlcy55YW1sCisrKyBiL1NvdXJjZS9XVEYvU2NyaXB0cy9Q
cmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlcy55YW1sCkBAIC0yMjc3LDYgKzIyNzcsMTkgQEAgVGV4
dEF1dG9zaXppbmdFbmFibGVkOgogICAgICAgIlBMQVRGT1JNKElPU19GQU1JTFkpIjogdHJ1ZQog
ICAgICAgZGVmYXVsdDogZmFsc2UKIAorVGV4dEludGVyYWN0aW9uRW5hYmxlZDoKKyAgdHlwZTog
Ym9vbAorICBkZWZhdWx0VmFsdWU6CisgICAgV2ViS2l0TGVnYWN5OgorICAgICAgIlBMQVRGT1JN
KFdBVENIX09TKSI6IGZhbHNlCisgICAgICBkZWZhdWx0OiB0cnVlCisgICAgV2ViS2l0OgorICAg
ICAgIlBMQVRGT1JNKFdBVENIX09TKSI6IGZhbHNlCisgICAgICBkZWZhdWx0OiB0cnVlCisgICAg
V2ViQ29yZToKKyAgICAgICJQTEFURk9STShXQVRDSF9PUykiOiBmYWxzZQorICAgICAgZGVmYXVs
dDogdHJ1ZQorCiBUaHJlYWRlZFNjcm9sbGluZ0VuYWJsZWQ6CiAgIHR5cGU6IGJvb2wKICAgd2Vi
Y29yZUJpbmRpbmc6IG5vbmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRI
YW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAppbmRleCA2
NWViMjA5ZDRkMzdhNjNhZGFlMjkzMDVkMmZmNDdhMGUyNWRiMTVkLi40ZDU4M2NhOWUxZGI4N2Rk
NDA0M2U3NGM4NTEwZjJmN2YzYjNkYWJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0V2ZW50SGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIu
Y3BwCkBAIC01NjksNyArNTY5LDcgQEAgc3RhdGljIEFwcGVuZFRyYWlsaW5nV2hpdGVzcGFjZSBz
aG91bGRBcHBlbmRUcmFpbGluZ1doaXRlc3BhY2UoY29uc3QgTW91c2VFdmVudFcKIAogdm9pZCBF
dmVudEhhbmRsZXI6OnNlbGVjdENsb3Nlc3RXb3JkRnJvbU1vdXNlRXZlbnQoY29uc3QgTW91c2VF
dmVudFdpdGhIaXRUZXN0UmVzdWx0cyYgcmVzdWx0KQogewotICAgIGlmIChtX21vdXNlRG93bk1h
eVN0YXJ0U2VsZWN0KQorICAgIGlmIChtb3VzZURvd25NYXlTdGFydFNlbGVjdCgpKQogICAgICAg
ICBzZWxlY3RDbG9zZXN0V29yZEZyb21IaXRUZXN0UmVzdWx0KHJlc3VsdC5oaXRUZXN0UmVzdWx0
KCksIHNob3VsZEFwcGVuZFRyYWlsaW5nV2hpdGVzcGFjZShyZXN1bHQsIG1fZnJhbWUpKTsKIH0K
IApAQCAtNjE4LDcgKzYxOCw3IEBAIHZvaWQgRXZlbnRIYW5kbGVyOjpzZWxlY3RDbG9zZXN0Q29u
dGV4dHVhbFdvcmRPckxpbmtGcm9tTW91c2VFdmVudChjb25zdCBNb3VzZUV2CiAKICAgICBOb2Rl
KiB0YXJnZXROb2RlID0gcmVzdWx0LnRhcmdldE5vZGUoKTsKIAotICAgIGlmICh0YXJnZXROb2Rl
ICYmIHRhcmdldE5vZGUtPnJlbmRlcmVyKCkgJiYgbV9tb3VzZURvd25NYXlTdGFydFNlbGVjdCkg
eworICAgIGlmICh0YXJnZXROb2RlICYmIHRhcmdldE5vZGUtPnJlbmRlcmVyKCkgJiYgbW91c2VE
b3duTWF5U3RhcnRTZWxlY3QoKSkgewogICAgICAgICBWaXNpYmxlU2VsZWN0aW9uIG5ld1NlbGVj
dGlvbjsKICAgICAgICAgVmlzaWJsZVBvc2l0aW9uIHBvcyh0YXJnZXROb2RlLT5yZW5kZXJlcigp
LT5wb3NpdGlvbkZvclBvaW50KHJlc3VsdC5sb2NhbFBvaW50KCksIG51bGxwdHIpKTsKICAgICAg
ICAgaWYgKHBvcy5pc05vdE51bGwoKSAmJiBwb3MuZGVlcEVxdWl2YWxlbnQoKS5kZXByZWNhdGVk
Tm9kZSgpLT5pc0Rlc2NlbmRhbnRPZigqdXJsRWxlbWVudCkpCkBAIC02NTIsNyArNjUyLDcgQEAg
Ym9vbCBFdmVudEhhbmRsZXI6OmhhbmRsZU1vdXNlUHJlc3NFdmVudFRyaXBsZUNsaWNrKGNvbnN0
IE1vdXNlRXZlbnRXaXRoSGl0VGVzdFIKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIAogICAg
IE5vZGUqIHRhcmdldE5vZGUgPSBldmVudC50YXJnZXROb2RlKCk7Ci0gICAgaWYgKCEodGFyZ2V0
Tm9kZSAmJiB0YXJnZXROb2RlLT5yZW5kZXJlcigpICYmIG1fbW91c2VEb3duTWF5U3RhcnRTZWxl
Y3QpKQorICAgIGlmICghKHRhcmdldE5vZGUgJiYgdGFyZ2V0Tm9kZS0+cmVuZGVyZXIoKSAmJiBt
b3VzZURvd25NYXlTdGFydFNlbGVjdCgpKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAg
VmlzaWJsZVNlbGVjdGlvbiBuZXdTZWxlY3Rpb247CkBAIC02NzksNyArNjc5LDcgQEAgYm9vbCBF
dmVudEhhbmRsZXI6OmhhbmRsZU1vdXNlUHJlc3NFdmVudFNpbmdsZUNsaWNrKGNvbnN0IE1vdXNl
RXZlbnRXaXRoSGl0VGVzdFIKIAogICAgIG1fZnJhbWUuZG9jdW1lbnQoKS0+dXBkYXRlTGF5b3V0
SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7CiAgICAgTm9kZSogdGFyZ2V0Tm9kZSA9IGV2ZW50
LnRhcmdldE5vZGUoKTsKLSAgICBpZiAoIXRhcmdldE5vZGUgfHwgIXRhcmdldE5vZGUtPnJlbmRl
cmVyKCkgfHwgIW1fbW91c2VEb3duTWF5U3RhcnRTZWxlY3QgfHwgbV9tb3VzZURvd25EZWxlZ2F0
ZWRGb2N1cykKKyAgICBpZiAoIXRhcmdldE5vZGUgfHwgIXRhcmdldE5vZGUtPnJlbmRlcmVyKCkg
fHwgIW1vdXNlRG93bk1heVN0YXJ0U2VsZWN0KCkgfHwgbV9tb3VzZURvd25EZWxlZ2F0ZWRGb2N1
cykKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgLy8gRXh0ZW5kIHRoZSBzZWxlY3Rpb24g
aWYgdGhlIFNoaWZ0IGtleSBpcyBkb3duLCB1bmxlc3MgdGhlIGNsaWNrIGlzIGluIGEgbGluay4K
QEAgLTc2Niw2ICs3NjYsMTUgQEAgYm9vbCBFdmVudEhhbmRsZXI6OmNhbk1vdXNlRG93blN0YXJ0
U2VsZWN0KGNvbnN0IE1vdXNlRXZlbnRXaXRoSGl0VGVzdFJlc3VsdHMmIGUKICAgICByZXR1cm4g
bm9kZS0+Y2FuU3RhcnRTZWxlY3Rpb24oKSB8fCBQb3NpdGlvbjo6bm9kZUlzVXNlclNlbGVjdEFs
bChub2RlKTsKIH0KIAorYm9vbCBFdmVudEhhbmRsZXI6Om1vdXNlRG93bk1heVN0YXJ0U2VsZWN0
KCkKK3sKKyAgICBQYWdlKiBwYWdlID0gbV9mcmFtZS5wYWdlKCk7CisgICAgaWYgKHBhZ2UgJiYg
IXBhZ2UtPnRleHRJbnRlcmFjdGlvbkVuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
CisgICAgcmV0dXJuIG1fbW91c2VEb3duTWF5U3RhcnRTZWxlY3Q7Cit9CisKIGJvb2wgRXZlbnRI
YW5kbGVyOjpoYW5kbGVNb3VzZVByZXNzRXZlbnQoY29uc3QgTW91c2VFdmVudFdpdGhIaXRUZXN0
UmVzdWx0cyYgZXZlbnQpCiB7CiAgICAgUmVmPEZyYW1lPiBwcm90ZWN0ZWRGcmFtZShtX2ZyYW1l
KTsKQEAgLTg0Myw3ICs4NTIsNyBAQCBib29sIEV2ZW50SGFuZGxlcjo6aGFuZGxlTW91c2VQcmVz
c0V2ZW50KGNvbnN0IE1vdXNlRXZlbnRXaXRoSGl0VGVzdFJlc3VsdHMmIGV2ZQogICAgIGVsc2UK
ICAgICAgICAgc3dhbGxvd0V2ZW50ID0gaGFuZGxlTW91c2VQcmVzc0V2ZW50U2luZ2xlQ2xpY2so
ZXZlbnQpOwogICAgIAotICAgIG1fbW91c2VEb3duTWF5U3RhcnRBdXRvc2Nyb2xsID0gbV9tb3Vz
ZURvd25NYXlTdGFydFNlbGVjdAorICAgIG1fbW91c2VEb3duTWF5U3RhcnRBdXRvc2Nyb2xsID0g
bW91c2VEb3duTWF5U3RhcnRTZWxlY3QoKQogICAgICAgICB8fCAobV9tb3VzZVByZXNzTm9kZSAm
JiBtX21vdXNlUHJlc3NOb2RlLT5yZW5kZXJCb3goKSAmJiBtX21vdXNlUHJlc3NOb2RlLT5yZW5k
ZXJCb3goKS0+Y2FuQmVQcm9ncmFtYXRpY2FsbHlTY3JvbGxlZCgpKTsKIAogICAgIHJldHVybiBz
d2FsbG93RXZlbnQ7CkBAIC05MTEsNyArOTIwLDcgQEAgYm9vbCBFdmVudEhhbmRsZXI6OmhhbmRs
ZU1vdXNlRHJhZ2dlZEV2ZW50KGNvbnN0IE1vdXNlRXZlbnRXaXRoSGl0VGVzdFJlc3VsdHMmIGUK
ICAgICB9CiAKICNpZiBQTEFURk9STShDT0NPQSkgLy8gRklYTUU6IFdoeSBkb2VzIHRoaXMgYXNz
ZXJ0aW9uIGZpcmUgb24gb3RoZXIgcGxhdGZvcm1zPwotICAgIEFTU0VSVChtX21vdXNlRG93bk1h
eVN0YXJ0U2VsZWN0IHx8IG1fbW91c2VEb3duTWF5U3RhcnRBdXRvc2Nyb2xsKTsKKyAgICBBU1NF
UlQobW91c2VEb3duTWF5U3RhcnRTZWxlY3QoKSB8fCBtX21vdXNlRG93bk1heVN0YXJ0QXV0b3Nj
cm9sbCk7CiAjZW5kaWYKIAogICAgIG1fbW91c2VEb3duTWF5U3RhcnREcmFnID0gZmFsc2U7CkBA
IC05ODUsNyArOTk0LDcgQEAgdm9pZCBFdmVudEhhbmRsZXI6OnVwZGF0ZVNlbGVjdGlvbkZvck1v
dXNlRHJhZyhjb25zdCBIaXRUZXN0UmVzdWx0JiBoaXRUZXN0UmVzdWwKICAgICBpZiAoIXN1cHBv
cnRzU2VsZWN0aW9uVXBkYXRlc09uTW91c2VEcmFnKCkpCiAgICAgICAgIHJldHVybjsKIAotICAg
IGlmICghbV9tb3VzZURvd25NYXlTdGFydFNlbGVjdCkKKyAgICBpZiAoIW1vdXNlRG93bk1heVN0
YXJ0U2VsZWN0KCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIE5vZGUqIHRhcmdldCA9IGhpdFRl
c3RSZXN1bHQudGFyZ2V0Tm9kZSgpOwpAQCAtMTU0MSw3ICsxNTUwLDcgQEAgT3B0aW9uYWw8Q3Vy
c29yPiBFdmVudEhhbmRsZXI6OnNlbGVjdEN1cnNvcihjb25zdCBIaXRUZXN0UmVzdWx0JiByZXN1
bHQsIGJvb2wgc2gKICAgICAvLyBEdXJpbmcgc2VsZWN0aW9uLCB1c2UgYW4gSS1iZWFtIHJlZ2Fy
ZGxlc3Mgb2YgdGhlIGNvbnRlbnQgYmVuZWF0aCB0aGUgY3Vyc29yLgogICAgIC8vIElmIGEgZHJh
ZyBtYXkgYmUgc3RhcnRpbmcgb3Igd2UncmUgY2FwdHVyaW5nIG1vdXNlIGV2ZW50cyBmb3IgYSBw
YXJ0aWN1bGFyIG5vZGUsIGRvbid0IHRyZWF0IHRoaXMgYXMgYSBzZWxlY3Rpb24uCiAgICAgaWYg
KG1fbW91c2VQcmVzc2VkCi0gICAgICAgICYmIG1fbW91c2VEb3duTWF5U3RhcnRTZWxlY3QKKyAg
ICAgICAgJiYgbW91c2VEb3duTWF5U3RhcnRTZWxlY3QoKQogI2lmIEVOQUJMRShEUkFHX1NVUFBP
UlQpCiAgICAgICAgICYmICFtX21vdXNlRG93bk1heVN0YXJ0RHJhZwogI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5oIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9FdmVudEhhbmRsZXIuaAppbmRleCA5MGM3ODdiNjdlMmYzZGMyOWQ0NTg4ZWViZjU4N2Zh
OTM1MWRlOWQ5Li5hYjU1NjgzZTQwZmRhNWU0ODI3ZTQzMjgyNmI2NmJiMzJkYzRlZmQ2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmgKQEAgLTUxNSw2ICs1MTUsOCBAQCBwcml2YXRlOgog
CiAgICAgYm9vbCBjYW5Nb3VzZURvd25TdGFydFNlbGVjdChjb25zdCBNb3VzZUV2ZW50V2l0aEhp
dFRlc3RSZXN1bHRzJik7CiAKKyAgICBib29sIG1vdXNlRG93bk1heVN0YXJ0U2VsZWN0KCk7Cisg
ICAgCiAgICAgRnJhbWUmIG1fZnJhbWU7CiAKICAgICBib29sIG1fbW91c2VQcmVzc2VkIHsgZmFs
c2UgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1BhZ2UuY3BwCmluZGV4IDRjZjZmNTBmNDFlZmNhOGIwNmIxMzFlOTVhNGI0
N2I2NmU0YmE2MmIuLjMxM2Q5ZjIyMDY2MGQ4OGFlODJiNTNlMWI1NzM1NjQwOGQ2MDM5YzQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9QYWdlLmNwcApAQCAtMzAzLDYgKzMwMyw3IEBAIFBhZ2U6OlBhZ2UoUGFnZUNvbmZp
Z3VyYXRpb24mJiBwYWdlQ29uZmlndXJhdGlvbikKICAgICAsIG1fbG9hZHNTdWJyZXNvdXJjZXMo
cGFnZUNvbmZpZ3VyYXRpb24ubG9hZHNTdWJyZXNvdXJjZXMpCiAgICAgLCBtX2xvYWRzRnJvbU5l
dHdvcmsocGFnZUNvbmZpZ3VyYXRpb24ubG9hZHNGcm9tTmV0d29yaykKICAgICAsIG1fc2hvdWxk
UmVsYXhUaGlyZFBhcnR5Q29va2llQmxvY2tpbmcocGFnZUNvbmZpZ3VyYXRpb24uc2hvdWxkUmVs
YXhUaGlyZFBhcnR5Q29va2llQmxvY2tpbmcpCisgICAgLCBtX3RleHRJbnRlcmFjdGlvbkVuYWJs
ZWQocGFnZUNvbmZpZ3VyYXRpb24udGV4dEludGVyYWN0aW9uRW5hYmxlZCkKIHsKICAgICB1cGRh
dGVUaW1lclRocm90dGxpbmdTdGF0ZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1BhZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCmluZGV4IDkxNTIxNGE3MTIw
MTljNzk5NTFlNjk1ZTM5NzcyYmU2ZDc0YTE1MGUuLjE5Mjk3ZjBhNTQyMmNhMzM3YzBkMWIxZDk4
YzczOGIzMWM5ZmQ5YzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCkBAIC04MjgsNiArODI4LDkgQEAgcHVibGlj
OgogCiAgICAgTW9ub3RvbmljVGltZSBsYXN0UmVuZGVyaW5nVXBkYXRlVGltZXN0YW1wKCkgY29u
c3QgeyByZXR1cm4gbV9sYXN0UmVuZGVyaW5nVXBkYXRlVGltZXN0YW1wOyB9CiAKKyAgICBib29s
IHRleHRJbnRlcmFjdGlvbkVuYWJsZWQoKSB7IHJldHVybiBtX3RleHRJbnRlcmFjdGlvbkVuYWJs
ZWQ7IH0KKyAgICB2b2lkIHNldFRleHRJbnRlcmFjdGlvbkVuYWJsZWQoYm9vbCB2YWx1ZSkgeyBt
X3RleHRJbnRlcmFjdGlvbkVuYWJsZWQgPSB2YWx1ZTsgfQorCiBwcml2YXRlOgogICAgIHN0cnVj
dCBOYXZpZ2F0aW9uIHsKICAgICAgICAgUmVnaXN0cmFibGVEb21haW4gZG9tYWluOwpAQCAtMTEz
MSw2ICsxMTM0LDggQEAgcHJpdmF0ZToKICAgICBib29sIG1faGFzQmVlbk5vdGlmaWVkVG9Jbmpl
Y3RVc2VyU2NyaXB0cyB7IGZhbHNlIH07CiAKICAgICBNb25vdG9uaWNUaW1lIG1fbGFzdFJlbmRl
cmluZ1VwZGF0ZVRpbWVzdGFtcDsKKyAgICAKKyAgICBib29sIG1fdGV4dEludGVyYWN0aW9uRW5h
YmxlZCB7IHRydWUgfTsKIH07CiAKIGlubGluZSBQYWdlR3JvdXAmIFBhZ2U6Omdyb3VwKCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uaCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uaAppbmRleCBmMDU0ZmNiMzY3NTFiYmVh
ZWY0YmY4YjEyYzQ3ZjIwZjUzMGMxMzU1Li42ZjE2ODMwMTBiN2NmM2Y1ZmJmYjMyNDIyOGM4NmQ5
Mzk3YjgwNmM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1cmF0
aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5oCkBAIC0x
MzMsNiArMTMzLDcgQEAgcHVibGljOgogICAgIGJvb2wgbG9hZHNGcm9tTmV0d29yayB7IHRydWUg
fTsKICAgICBib29sIHVzZXJTY3JpcHRzU2hvdWxkV2FpdFVudGlsTm90aWZpY2F0aW9uIHsgdHJ1
ZSB9OwogICAgIFNob3VsZFJlbGF4VGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nIHNob3VsZFJlbGF4
VGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nIHsgU2hvdWxkUmVsYXhUaGlyZFBhcnR5Q29va2llQmxv
Y2tpbmc6Ok5vIH07CisgICAgYm9vbCB0ZXh0SW50ZXJhY3Rpb25FbmFibGVkIHsgdHJ1ZSB9Owog
fTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9u
UGFyYW1ldGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJh
bWV0ZXJzLmNwcAppbmRleCBjZjEzMWE5MjFlMDg2MzY1ZGJmNzdmYTk4ZTQxYzFjNzRhM2U3ZTI1
Li4yMWNkNjViMjhkNDZmZGVkYjY2MmM0Y2JmZjc5OWVkZWFiNWU3NTgzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcApAQCAtMTcw
LDYgKzE3MCw4IEBAIHZvaWQgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlKElQQzo6
RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICNpZiBQTEFURk9STShHVEspCiAgICAgZW5jb2RlciA8
PCB0aGVtZU5hbWU7CiAjZW5kaWYKKyAgICAKKyAgICBlbmNvZGVyIDw8IHRleHRJbnRlcmFjdGlv
bkVuYWJsZWQ7CiB9CiAKIE9wdGlvbmFsPFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM+IFdlYlBh
Z2VDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIpCkBAIC01
MzUsNiArNTM3LDkgQEAgT3B0aW9uYWw8V2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycz4gV2ViUGFn
ZUNyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKElQQzo6RGVjb2QKICAgICBpZiAoIWRlY29kZXIu
ZGVjb2RlKHBhcmFtZXRlcnMudGhlbWVOYW1lKSkKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9w
dDsKICNlbmRpZgorICAgIAorICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy50ZXh0
SW50ZXJhY3Rpb25FbmFibGVkKSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIAogICAg
IHJldHVybiBwYXJhbWV0ZXJzOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFn
ZUNyZWF0aW9uUGFyYW1ldGVycy5oCmluZGV4IGQ5MWU0NjAzOGYzMDliNTEzMGJmZGU1OGRmZjRh
OWYxODE5NTFkZmQuLmZlMjlhZjIwYTg4YTU5ZTFlYmE2Y2U4ZmJjYjVkNWE2YzNhMzU0MjQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmgK
QEAgLTI0Miw2ICsyNDIsOCBAQCBzdHJ1Y3QgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyB7CiAj
aWYgUExBVEZPUk0oR1RLKQogICAgIFN0cmluZyB0aGVtZU5hbWU7CiAjZW5kaWYKKworICAgIGJv
b2wgdGV4dEludGVyYWN0aW9uRW5hYmxlZCB7IHRydWUgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
UHJlZmVyZW5jZXMuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZl
cmVuY2VzLmgKaW5kZXggYzJlNmEyNzI4ZjMwMGM2YzA2MTY5ZTgxNjMzNjliOGRhMTdlOWFmYS4u
Y2Q3NTc3MDJmMWQ3NjlmNzA3M2U4ZjZmNmEwYTVlNDRmZTgyMDk1ZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXMuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlcy5oCkBAIC02MCw2ICs2
MCwxMCBAQCBXS19DTEFTU19BVkFJTEFCTEUobWFjb3MoMTAuMTApLCBpb3MoOC4wKSkKIEBwcm9w
ZXJ0eSAobm9uYXRvbWljKSBCT09MIHRhYkZvY3VzZXNMaW5rcyBXS19BUElfQVZBSUxBQkxFKG1h
Y29zKDEwLjEyLjMpKTsKICNlbmRpZgogCisvKiEgQGFic3RyYWN0IEEgQm9vbGVhbiB2YWx1ZSBp
bmRpY2F0aW5nIHdoZXRoZXIgdGV4dCBpbnRlcmFjdGlvbiBpcyBkaXNhYmxlZC4KKyovCitAcHJv
cGVydHkgKG5vbmF0b21pYykgQk9PTCB0ZXh0SW50ZXJhY3Rpb25FbmFibGVkIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CisKIEBlbmQKIAogQGlu
dGVyZmFjZSBXS1ByZWZlcmVuY2VzIChXS0RlcHJlY2F0ZWQpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlcy5tbSBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzLm1tCmluZGV4IDcyNzRhNjgzYTZm
YWJjNTYxMWQ0YTJhNTEyYWM5M2NkZDA3MTA2OTguLjM5YzljYTZlZjhhN2QzZTc1YzEzYjMwZjc2
MDZkYjUzYzUxM2EwMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1ByZWZlcmVuY2VzLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1ByZWZlcmVuY2VzLm1tCkBAIC03OCw2ICs3OCw3IEBAIEFMTE9XX0RFUFJFQ0FURURf
REVDTEFSQVRJT05TX0JFR0lOCiBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAg
ICBbY29kZXIgZW5jb2RlQm9vbDpzZWxmLnRhYkZvY3VzZXNMaW5rcyBmb3JLZXk6QCJ0YWJGb2N1
c2VzTGlua3MiXTsKICNlbmRpZgorICAgIFtjb2RlciBlbmNvZGVCb29sOnNlbGYudGV4dEludGVy
YWN0aW9uRW5hYmxlZCBmb3JLZXk6QCJ0ZXh0SW50ZXJhY3Rpb25FbmFibGVkIl07CiB9CiAKIC0g
KGluc3RhbmNldHlwZSlpbml0V2l0aENvZGVyOihOU0NvZGVyICopY29kZXIKQEAgLTk5LDYgKzEw
MCw3IEBAIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiBBTExPV19ERVBSRUNB
VEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICBzZWxmLnRhYkZvY3VzZXNMaW5rcyA9IFtjb2RlciBk
ZWNvZGVCb29sRm9yS2V5OkAidGFiRm9jdXNlc0xpbmtzIl07CiAjZW5kaWYKKyAgICBzZWxmLnRl
eHRJbnRlcmFjdGlvbkVuYWJsZWQgPSBbY29kZXIgZGVjb2RlQm9vbEZvcktleTpAInRleHRJbnRl
cmFjdGlvbkVuYWJsZWQiXTsKIAogICAgIHJldHVybiBzZWxmOwogfQpAQCAtMTM4LDYgKzE0MCwx
NiBAQCAtICh2b2lkKXNldEphdmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHk6KEJP
T0wpamF2YVNjcmlwdENhbk9wZW5XaW5kb3dzQQogICAgIF9wcmVmZXJlbmNlcy0+c2V0SmF2YVNj
cmlwdENhbk9wZW5XaW5kb3dzQXV0b21hdGljYWxseShqYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NB
dXRvbWF0aWNhbGx5KTsKIH0KIAorLSAoQk9PTCl0ZXh0SW50ZXJhY3Rpb25FbmFibGVkCit7Cisg
ICAgcmV0dXJuIF9wcmVmZXJlbmNlcy0+dGV4dEludGVyYWN0aW9uRW5hYmxlZCgpOworfQorCist
ICh2b2lkKXNldFRleHRJbnRlcmFjdGlvbkVuYWJsZWQ6KEJPT0wpdGV4dEludGVyYWN0aW9uRW5h
YmxlZAoreworICAgIF9wcmVmZXJlbmNlcy0+c2V0VGV4dEludGVyYWN0aW9uRW5hYmxlZCh0ZXh0
SW50ZXJhY3Rpb25FbmFibGVkKTsKK30KKwogI3ByYWdtYSBtYXJrIE9TIFgtc3BlY2lmaWMgbWV0
aG9kcwogCiAjaWYgUExBVEZPUk0oTUFDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb24ubW0gYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvbi5tbQppbmRleCAzYTk3
YjBkNzY5ODk3Zjg1MGQxZGQzNTE3NWJkYzA1YjJjNjU2YWNlLi5kYjAxNjA1MzIyZGY1NmYxZTNl
MDYzMWQ4ZDk0ODY1YWExNTY3ZTRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvbi5tbQpAQCAtMzA5LDcg
KzMwOSw5IEBAIC0gKHZvaWQpZW5jb2RlV2l0aENvZGVyOihOU0NvZGVyICopY29kZXIKICAgICBb
Y29kZXIgZW5jb2RlQm9vbDpzZWxmLmFsbG93c1BpY3R1cmVJblBpY3R1cmVNZWRpYVBsYXliYWNr
IGZvcktleTpAImFsbG93c1BpY3R1cmVJblBpY3R1cmVNZWRpYVBsYXliYWNrIl07CiAgICAgW2Nv
ZGVyIGVuY29kZUJvb2w6c2VsZi5pZ25vcmVzVmlld3BvcnRTY2FsZUxpbWl0cyBmb3JLZXk6QCJp
Z25vcmVzVmlld3BvcnRTY2FsZUxpbWl0cyJdOwogICAgIFtjb2RlciBlbmNvZGVJbnRlZ2VyOnNl
bGYuX2RyYWdMaWZ0RGVsYXkgZm9yS2V5OkAiZHJhZ0xpZnREZWxheSJdOworICAgIEFMTE9XX0RF
UFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgW2NvZGVyIGVuY29kZUJvb2w6c2VsZi5f
dGV4dEludGVyYWN0aW9uR2VzdHVyZXNFbmFibGVkIGZvcktleTpAInRleHRJbnRlcmFjdGlvbkdl
c3R1cmVzRW5hYmxlZCJdOworICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAog
ICAgIFtjb2RlciBlbmNvZGVCb29sOnNlbGYuX2xvbmdQcmVzc0FjdGlvbnNFbmFibGVkIGZvcktl
eTpAImxvbmdQcmVzc0FjdGlvbnNFbmFibGVkIl07CiAgICAgW2NvZGVyIGVuY29kZUJvb2w6c2Vs
Zi5fc3lzdGVtUHJldmlld0VuYWJsZWQgZm9yS2V5OkAic3lzdGVtUHJldmlld0VuYWJsZWQiXTsK
ICAgICBbY29kZXIgZW5jb2RlQm9vbDpzZWxmLl9zaG91bGREZWNpZGVQb2xpY3lCZWZvcmVMb2Fk
aW5nUXVpY2tMb29rUHJldmlldyBmb3JLZXk6QCJzaG91bGREZWNpZGVQb2xpY3lCZWZvcmVMb2Fk
aW5nUXVpY2tMb29rUHJldmlldyJdOwpAQCAtMzQ3LDcgKzM0OSw5IEBAIC0gKGluc3RhbmNldHlw
ZSlpbml0V2l0aENvZGVyOihOU0NvZGVyICopY29kZXIKICAgICBzZWxmLmFsbG93c1BpY3R1cmVJ
blBpY3R1cmVNZWRpYVBsYXliYWNrID0gW2NvZGVyIGRlY29kZUJvb2xGb3JLZXk6QCJhbGxvd3NQ
aWN0dXJlSW5QaWN0dXJlTWVkaWFQbGF5YmFjayJdOwogICAgIHNlbGYuaWdub3Jlc1ZpZXdwb3J0
U2NhbGVMaW1pdHMgPSBbY29kZXIgZGVjb2RlQm9vbEZvcktleTpAImlnbm9yZXNWaWV3cG9ydFNj
YWxlTGltaXRzIl07CiAgICAgc2VsZi5fZHJhZ0xpZnREZWxheSA9IHRvRHJhZ0xpZnREZWxheShb
Y29kZXIgZGVjb2RlSW50ZWdlckZvcktleTpAImRyYWdMaWZ0RGVsYXkiXSk7CisgICAgQUxMT1df
REVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBzZWxmLl90ZXh0SW50ZXJhY3Rpb25H
ZXN0dXJlc0VuYWJsZWQgPSBbY29kZXIgZGVjb2RlQm9vbEZvcktleTpAInRleHRJbnRlcmFjdGlv
bkdlc3R1cmVzRW5hYmxlZCJdOworICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VO
RAogICAgIHNlbGYuX2xvbmdQcmVzc0FjdGlvbnNFbmFibGVkID0gW2NvZGVyIGRlY29kZUJvb2xG
b3JLZXk6QCJsb25nUHJlc3NBY3Rpb25zRW5hYmxlZCJdOwogICAgIHNlbGYuX3N5c3RlbVByZXZp
ZXdFbmFibGVkID0gW2NvZGVyIGRlY29kZUJvb2xGb3JLZXk6QCJzeXN0ZW1QcmV2aWV3RW5hYmxl
ZCJdOwogICAgIHNlbGYuX3Nob3VsZERlY2lkZVBvbGljeUJlZm9yZUxvYWRpbmdRdWlja0xvb2tQ
cmV2aWV3ID0gW2NvZGVyIGRlY29kZUJvb2xGb3JLZXk6QCJzaG91bGREZWNpZGVQb2xpY3lCZWZv
cmVMb2FkaW5nUXVpY2tMb29rUHJldmlldyJdOwpAQCAtNzU3LDE2ICs3NjEsNiBAQCAtICh2b2lk
KV9zZXREcmFnTGlmdERlbGF5OihfV0tEcmFnTGlmdERlbGF5KWRyYWdMaWZ0RGVsYXkKICAgICBf
ZHJhZ0xpZnREZWxheSA9IGRyYWdMaWZ0RGVsYXk7CiB9CiAKLS0gKEJPT0wpX3RleHRJbnRlcmFj
dGlvbkdlc3R1cmVzRW5hYmxlZAotewotICAgIHJldHVybiBfdGV4dEludGVyYWN0aW9uR2VzdHVy
ZXNFbmFibGVkOwotfQotCi0tICh2b2lkKV9zZXRUZXh0SW50ZXJhY3Rpb25HZXN0dXJlc0VuYWJs
ZWQ6KEJPT0wpZW5hYmxlZAotewotICAgIF90ZXh0SW50ZXJhY3Rpb25HZXN0dXJlc0VuYWJsZWQg
PSBlbmFibGVkOwotfQotCiAtIChCT09MKV9sb25nUHJlc3NBY3Rpb25zRW5hYmxlZAogewogICAg
IHJldHVybiBfbG9uZ1ByZXNzQWN0aW9uc0VuYWJsZWQ7CkBAIC0xMjgwLDcgKzEyNzQsMjIgQEAg
LSAodm9pZClzZXRSZXF1aXJlc1VzZXJBY3Rpb25Gb3JNZWRpYVBsYXliYWNrOihCT09MKXJlcXVp
cmVzVXNlckFjdGlvbkZvck1lZGlhUGwKIHsKICAgICBzZWxmLm1lZGlhVHlwZXNSZXF1aXJpbmdV
c2VyQWN0aW9uRm9yUGxheWJhY2sgPSByZXF1aXJlc1VzZXJBY3Rpb25Gb3JNZWRpYVBsYXliYWNr
ID8gV0tBdWRpb3Zpc3VhbE1lZGlhVHlwZUFsbCA6IFdLQXVkaW92aXN1YWxNZWRpYVR5cGVOb25l
OwogfQorI2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkpCisKK0BlbmQKKworQGltcGxlbWVu
dGF0aW9uIFdLV2ViVmlld0NvbmZpZ3VyYXRpb24gKFdLUHJpdmF0ZURlcHJlY2F0ZWQpCisKKyNp
ZiBQTEFURk9STShJT1NfRkFNSUxZKQorLSAoQk9PTClfdGV4dEludGVyYWN0aW9uR2VzdHVyZXNF
bmFibGVkCit7CisgICAgcmV0dXJuIF90ZXh0SW50ZXJhY3Rpb25HZXN0dXJlc0VuYWJsZWQ7Cit9
CiAKKy0gKHZvaWQpX3NldFRleHRJbnRlcmFjdGlvbkdlc3R1cmVzRW5hYmxlZDooQk9PTCllbmFi
bGVkCit7CisgICAgX3RleHRJbnRlcmFjdGlvbkdlc3R1cmVzRW5hYmxlZCA9IGVuYWJsZWQ7Cit9
CiAjZW5kaWYgLy8gUExBVEZPUk0oSU9TX0ZBTUlMWSkKIAogQGVuZApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb25Qcml2
YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Q29uZmln
dXJhdGlvblByaXZhdGUuaAppbmRleCAzZDk5NTEzMmMxNzE4ZmU1MDljNmFhNjE4NWQ1MDFiMTk1
Mzg0ZWJmLi44NmI5Y2ViMmE3MWY4ZTg4ZTg1OTUwNmIwNjEzZTM3OTc3YTQ4NDAwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Q29uZmlndXJh
dGlvblByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tX
ZWJWaWV3Q29uZmlndXJhdGlvblByaXZhdGUuaApAQCAtODksNyArODksNiBAQCB0eXBlZGVmIE5T
X0VOVU0oTlNVSW50ZWdlciwgX1dLRHJhZ0xpZnREZWxheSkgewogQHByb3BlcnR5IChub25hdG9t
aWMsIHNldHRlcj1fc2V0SW5saW5lTWVkaWFQbGF5YmFja1JlcXVpcmVzUGxheXNJbmxpbmVBdHRy
aWJ1dGU6KSBCT09MIF9pbmxpbmVNZWRpYVBsYXliYWNrUmVxdWlyZXNQbGF5c0lubGluZUF0dHJp
YnV0ZSBXS19BUElfQVZBSUxBQkxFKGlvcygxMC4wKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywg
c2V0dGVyPV9zZXRBbGxvd3NJbmxpbmVNZWRpYVBsYXliYWNrQWZ0ZXJGdWxsc2NyZWVuOikgQk9P
TCBfYWxsb3dzSW5saW5lTWVkaWFQbGF5YmFja0FmdGVyRnVsbHNjcmVlbiAgV0tfQVBJX0FWQUlM
QUJMRShpb3MoMTAuMCkpOwogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0RHJhZ0xp
ZnREZWxheTopIF9XS0RyYWdMaWZ0RGVsYXkgX2RyYWdMaWZ0RGVsYXkgV0tfQVBJX0FWQUlMQUJM
RShpb3MoMTEuMCkpOwotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0VGV4dEludGVy
YWN0aW9uR2VzdHVyZXNFbmFibGVkOikgQk9PTCBfdGV4dEludGVyYWN0aW9uR2VzdHVyZXNFbmFi
bGVkIFdLX0FQSV9BVkFJTEFCTEUoaW9zKDEyLjApKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBz
ZXR0ZXI9X3NldExvbmdQcmVzc0FjdGlvbnNFbmFibGVkOikgQk9PTCBfbG9uZ1ByZXNzQWN0aW9u
c0VuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShpb3MoMTIuMCkpOwogQHByb3BlcnR5IChub25hdG9t
aWMsIHNldHRlcj1fc2V0U3lzdGVtUHJldmlld0VuYWJsZWQ6KSBCT09MIF9zeXN0ZW1QcmV2aWV3
RW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKGlvcygxMi4wKSk7CiBAcHJvcGVydHkgKG5vbmF0b21p
Yywgc2V0dGVyPV9zZXRTaG91bGREZWNpZGVQb2xpY3lCZWZvcmVMb2FkaW5nUXVpY2tMb29rUHJl
dmlldzopIEJPT0wgX3Nob3VsZERlY2lkZVBvbGljeUJlZm9yZUxvYWRpbmdRdWlja0xvb2tQcmV2
aWV3IFdLX0FQSV9BVkFJTEFCTEUoaW9zKDEzLjApKTsKQEAgLTEyMywzICsxMjIsMTMgQEAgdHlw
ZWRlZiBOU19FTlVNKE5TVUludGVnZXIsIF9XS0RyYWdMaWZ0RGVsYXkpIHsKIEBwcm9wZXJ0eSAo
bm9uYXRvbWljLCBzZXR0ZXI9X3NldFByb2Nlc3NEaXNwbGF5TmFtZTopIE5TU3RyaW5nICpfcHJv
Y2Vzc0Rpc3BsYXlOYW1lIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhX
S19JT1NfVEJBKSk7CiAKIEBlbmQKKworI2lmIFRBUkdFVF9PU19JUEhPTkUKKworQGludGVyZmFj
ZSBXS1dlYlZpZXdDb25maWd1cmF0aW9uIChXS1ByaXZhdGVEZXByZWNhdGVkKQorCitAcHJvcGVy
dHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRUZXh0SW50ZXJhY3Rpb25HZXN0dXJlc0VuYWJsZWQ6
KSBCT09MIF90ZXh0SW50ZXJhY3Rpb25HZXN0dXJlc0VuYWJsZWQgV0tfQVBJX0RFUFJFQ0FURURf
V0lUSF9SRVBMQUNFTUVOVCgiV0tQcmVmZXJlbmNlcy50ZXh0SW50ZXJhY3Rpb25HZXN0dXJlc0Vu
YWJsZWQiLCBpb3MoMTIuMCwgV0tfSU9TX1RCQSkpOworCitAZW5kCisKKyNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggNmVkMWM2OWMwOGZjNTU5ZmUy
YTNmM2I5Mzk1MGVhODI4ZDYwZDRiZi4uODQxZDQ5NDFmYWVmMjIxNWUwMjgxOTNmMTkzYmEwODJh
NTkwZDIzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC03
OTUyLDYgKzc5NTIsOCBAQCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzIFdlYlBhZ2VQcm94eTo6
Y3JlYXRpb25QYXJhbWV0ZXJzKFdlYlByb2Nlc3NQcm94eSYgcHJvYwogI2lmIEVOQUJMRShBUFBf
Qk9VTkRfRE9NQUlOUykKICAgICBwYXJhbWV0ZXJzLm5lZWRzSW5BcHBCcm93c2VyUHJpdmFjeVF1
aXJrcyA9IHByZWZlcmVuY2VzKCkubmVlZHNJbkFwcEJyb3dzZXJQcml2YWN5UXVpcmtzKCk7CiAj
ZW5kaWYKKyAgICAKKyAgICBwYXJhbWV0ZXJzLnRleHRJbnRlcmFjdGlvbkVuYWJsZWQgPSBwcmVm
ZXJlbmNlcygpLnRleHRJbnRlcmFjdGlvbkVuYWJsZWQoKTsKIAogICAgIHJldHVybiBwYXJhbWV0
ZXJzOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVu
dFZpZXdJbnRlcmFjdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRl
bnRWaWV3SW50ZXJhY3Rpb24ubW0KaW5kZXggYjk4ZTg3MTEyMTc4NDg5MTMwZWFlMWM4YmU0NTc1
NzJjNTE5NTY4My4uZGI5M2Y5MzgzMjJhODZhMjUwZGM3ODQzMDM3YTFmNDM5ZTRjODlkOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFj
dGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0lu
dGVyYWN0aW9uLm1tCkBAIC0yNTMyLDggKzI1MzIsMTMgQEAgLSAoQk9PTCljYW5TaG93Tm9uRW1w
dHlTZWxlY3Rpb25WaWV3CiAKIC0gKEJPT0wpaGFzU2VsZWN0YWJsZVBvc2l0aW9uQXRQb2ludDoo
Q0dQb2ludClwb2ludAogeworICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lO
CiAgICAgaWYgKCFzZWxmLndlYlZpZXcuY29uZmlndXJhdGlvbi5fdGV4dEludGVyYWN0aW9uR2Vz
dHVyZXNFbmFibGVkKQogICAgICAgICByZXR1cm4gTk87CisgICAgQUxMT1dfREVQUkVDQVRFRF9E
RUNMQVJBVElPTlNfRU5ECisKKyAgICBpZiAoIV9wYWdlLT5wcmVmZXJlbmNlcygpLnRleHRJbnRl
cmFjdGlvbkVuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuIE5POwogCiAgICAgaWYgKF9zdXBwcmVz
c1NlbGVjdGlvbkFzc2lzdGFudFJlYXNvbnMpCiAgICAgICAgIHJldHVybiBOTzsKQEAgLTI1NTAs
OSArMjU1NSwxNCBAQCAtIChCT09MKWhhc1NlbGVjdGFibGVQb3NpdGlvbkF0UG9pbnQ6KENHUG9p
bnQpcG9pbnQKIAogLSAoQk9PTClwb2ludElzTmVhck1hcmtlZFRleHQ6KENHUG9pbnQpcG9pbnQK
IHsKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIGlmICghc2Vs
Zi53ZWJWaWV3LmNvbmZpZ3VyYXRpb24uX3RleHRJbnRlcmFjdGlvbkdlc3R1cmVzRW5hYmxlZCkK
ICAgICAgICAgcmV0dXJuIE5POworICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VO
RAogCisgICAgaWYgKCFfcGFnZS0+cHJlZmVyZW5jZXMoKS50ZXh0SW50ZXJhY3Rpb25FbmFibGVk
KCkpCisgICAgICAgIHJldHVybiBOTzsKKyAgICAKICAgICBpZiAoX3N1cHByZXNzU2VsZWN0aW9u
QXNzaXN0YW50UmVhc29ucykKICAgICAgICAgcmV0dXJuIE5POwogCkBAIC0yNTY0LDkgKzI1NzQs
MTQgQEAgLSAoQk9PTClwb2ludElzTmVhck1hcmtlZFRleHQ6KENHUG9pbnQpcG9pbnQKIAogLSAo
Qk9PTCl0ZXh0SW50ZXJhY3Rpb25HZXN0dXJlOihVSVdLR2VzdHVyZVR5cGUpZ2VzdHVyZSBzaG91
bGRCZWdpbkF0UG9pbnQ6KENHUG9pbnQpcG9pbnQKIHsKKyAgICBBTExPV19ERVBSRUNBVEVEX0RF
Q0xBUkFUSU9OU19CRUdJTgogICAgIGlmICghc2VsZi53ZWJWaWV3LmNvbmZpZ3VyYXRpb24uX3Rl
eHRJbnRlcmFjdGlvbkdlc3R1cmVzRW5hYmxlZCkKICAgICAgICAgcmV0dXJuIE5POworICAgIEFM
TE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogCisgICAgaWYgKCFfcGFnZS0+cHJlZmVy
ZW5jZXMoKS50ZXh0SW50ZXJhY3Rpb25FbmFibGVkKCkpCisgICAgICAgIHJldHVybiBOTzsKKyAg
ICAKICAgICBpZiAoX2RvbVBhc3RlUmVxdWVzdEhhbmRsZXIpCiAgICAgICAgIHJldHVybiBOTzsK
IApAQCAtMzI4NSw4ICszMzAwLDEzIEBAIC0gKFVJQ29sb3IgKilzZWxlY3Rpb25IaWdobGlnaHRD
b2xvcgogCiAtIChVSUNvbG9yICopX2Nhc2NhZGVJbnRlcmFjdGlvblRpbnRDb2xvcgogeworICAg
IEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgaWYgKCFzZWxmLndlYlZp
ZXcuY29uZmlndXJhdGlvbi5fdGV4dEludGVyYWN0aW9uR2VzdHVyZXNFbmFibGVkKQogICAgICAg
ICByZXR1cm4gW1VJQ29sb3IgY2xlYXJDb2xvcl07CisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNM
QVJBVElPTlNfRU5ECisKKyAgICBpZiAoIV9wYWdlLT5wcmVmZXJlbmNlcygpLnRleHRJbnRlcmFj
dGlvbkVuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuIFtVSUNvbG9yIGNsZWFyQ29sb3JdOwogCiAg
ICAgaWYgKCFfcGFnZS0+ZWRpdG9yU3RhdGUoKS5pc01pc3NpbmdQb3N0TGF5b3V0RGF0YSkgewog
ICAgICAgICBXZWJDb3JlOjpDb2xvciBjYXJldENvbG9yID0gX3BhZ2UtPmVkaXRvclN0YXRlKCku
cG9zdExheW91dERhdGEoKS5jYXJldENvbG9yOwpAQCAtMzU2OCw2ICszNTg4LDkgQEAgLSAodm9p
ZClfcGFzdGVBc1F1b3RhdGlvbkZvcldlYlZpZXc6KGlkKXNlbmRlcgogCiAtICh2b2lkKXNlbGVj
dEZvcldlYlZpZXc6KGlkKXNlbmRlcgogeworICAgIGlmICghX3BhZ2UtPnByZWZlcmVuY2VzKCku
dGV4dEludGVyYWN0aW9uRW5hYmxlZCgpKQorICAgICAgICByZXR1cm47CisKICAgICBbX3RleHRJ
bnRlcmFjdGlvbkFzc2lzdGFudCBzZWxlY3RXb3JkXTsKICAgICAvLyBXZSBjYW5ub3QgdXNlIHNl
bGVjdFdvcmQgY29tbWFuZCwgYmVjYXVzZSB3ZSB3YW50IHRvIGJlIGFibGUgdG8gc2VsZWN0IHRo
ZSB3b3JkIGV2ZW4gd2hlbiBpdCBpcyB0aGUgbGFzdCBpbiB0aGUgcGFyYWdyYXBoLgogICAgIF9w
YWdlLT5leHRlbmRTZWxlY3Rpb24oV2ViQ29yZTo6VGV4dEdyYW51bGFyaXR5OjpXb3JkR3JhbnVs
YXJpdHkpOwpAQCAtMzU3NSw2ICszNTk4LDkgQEAgLSAodm9pZClzZWxlY3RGb3JXZWJWaWV3Oihp
ZClzZW5kZXIKIAogLSAodm9pZClzZWxlY3RBbGxGb3JXZWJWaWV3OihpZClzZW5kZXIKIHsKKyAg
ICBpZiAoIV9wYWdlLT5wcmVmZXJlbmNlcygpLnRleHRJbnRlcmFjdGlvbkVuYWJsZWQoKSkKKyAg
ICAgICAgcmV0dXJuOworCiAgICAgW190ZXh0SW50ZXJhY3Rpb25Bc3Npc3RhbnQgc2VsZWN0QWxs
OnNlbmRlcl07CiAgICAgX3BhZ2UtPnNlbGVjdEFsbCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCAzYzA1NGU4MzQ4ZTA5MmMwOTQ3MDc3
ZmRlMWVlOTM5NTQ0NmMxZjExLi43YzMwMjdkZDUwMGU0ZTIyZDY5ZDljNDA2ZDZlNzA3MGFjYmFj
N2RhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApA
QCAtNTY3LDYgKzU2Nyw4IEBAIFdlYlBhZ2U6OldlYlBhZ2UoUGFnZUlkZW50aWZpZXIgcGFnZUlE
LCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzJiYgcGFyYW1ldGVycykKICAgICBwYWdlQ29uZmln
dXJhdGlvbi5sb2Fkc0Zyb21OZXR3b3JrID0gcGFyYW1ldGVycy5sb2Fkc0Zyb21OZXR3b3JrOwog
ICAgIHBhZ2VDb25maWd1cmF0aW9uLnNob3VsZFJlbGF4VGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5n
ID0gcGFyYW1ldGVycy5zaG91bGRSZWxheFRoaXJkUGFydHlDb29raWVCbG9ja2luZzsKIAorICAg
IHBhZ2VDb25maWd1cmF0aW9uLnRleHRJbnRlcmFjdGlvbkVuYWJsZWQgPSBwYXJhbWV0ZXJzLnRl
eHRJbnRlcmFjdGlvbkVuYWJsZWQ7CisgICAgCiAgICAgaWYgKCFwYXJhbWV0ZXJzLmNyb3NzT3Jp
Z2luQWNjZXNzQ29udHJvbENoZWNrRW5hYmxlZCkKICAgICAgICAgQ3Jvc3NPcmlnaW5BY2Nlc3ND
b250cm9sQ2hlY2tEaXNhYmxlcjo6c2luZ2xldG9uKCkuc2V0Q3Jvc3NPcmlnaW5BY2Nlc3NDb250
cm9sQ2hlY2tFbmFibGVkKGZhbHNlKTsKIApAQCAtMzc5OCw2ICszODAwLDggQEAgdm9pZCBXZWJQ
YWdlOjp1cGRhdGVQcmVmZXJlbmNlcyhjb25zdCBXZWJQcmVmZXJlbmNlc1N0b3JlJiBzdG9yZSkK
ICNpZiBFTkFCTEUoSVBDX1RFU1RJTkdfQVBJKQogICAgIG1faXBjVGVzdGluZ0FQSUVuYWJsZWQg
PSBzdG9yZS5nZXRCb29sVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OmlwY1Rlc3RpbmdB
UElFbmFibGVkS2V5KCkpOwogI2VuZGlmCisKKyAgICBtX3BhZ2UtPnNldFRleHRJbnRlcmFjdGlv
bkVuYWJsZWQoc3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5Ojp0ZXh0
SW50ZXJhY3Rpb25FbmFibGVkS2V5KCkpKTsKIH0KIAogI2lmIEVOQUJMRShEQVRBX0RFVEVDVElP
TikKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA2
MDFkODRkMjFhOWMzMmY4NDJhMTY5ZDNjNGE4OTVlOWJiZTc0NTdkLi5jODJjMTI5MmUxMTM5NjM5
YTY4NzI1ZGU2ZGFlZmVhZmYwMzQ5MWQxIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysr
IGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjggQEAKKzIwMjAtMTItMDIgIEthdGUgQ2hl
bmV5ICA8a2F0aGVyaW5lX2NoZW5leUBhcHBsZS5jb20+CisKKyAgICAgICAgQ3JlYXRlIEFQSSB0
byBlbmFibGUvZGlzYWJsZSB0ZXh0IGludGVyYWN0aW9uIGdlc3R1cmVzIGluIFdLV2ViVmlldwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3Nzg0Cisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS82MzQwNjI0MT4KKworICAgICAgICBSZXZpZXdlZCBieSBX
ZW5zb24gSHNpZWguCisKKyAgICAgICAgQWRkIEFQSSB0ZXN0IGNvdmVyYWdlIGZvciBtYWNPUyBh
bmQgc3VwcG9ydCBmb3IgbGF5b3V0IHRlc3RzIGZvciBpT1MuCisgICAgICAgIEFQSSB0ZXN0cyBk
byBub3Qgc3VwcG9ydCB1c2VyIGdlc3R1cmVzIHdoaWNoIGlzIHdoeSBpT1MgdGVzdHMgbXVzdAor
ICAgICAgICB1c2UgV2ViS2l0VGVzdFJ1bm5lci4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkv
VGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFRlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tXZWJWaWV3RGlzYWJsZVNlbGVjdGlvbi5tbTog
QWRkZWQuCisgICAgICAgIChURVNUKToKKyAgICAgICAgKGNsaWNrQW5kRHJhZ1RvU2VsZWN0VGV4
dCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS90cnktdGV4dC1z
ZWxlY3Qtd2l0aC1kaXNhYmxlZC10ZXh0LWludGVyYWN0aW9uLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIFdlYktpdFRlc3RSdW5uZXIvY29jb2EvVGVzdENvbnRyb2xsZXJDb2NvYS5tbToKKyAgICAg
ICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OmNvY29hUmVzZXRTdGF0ZVRvQ29uc2lzdGVudFZhbHVl
cyk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0T3B0aW9ucy5jcHA6CisgICAgICAg
IChXVFI6OlRlc3RPcHRpb25zOjpkZWZhdWx0cyk6CisgICAgICAgIChXVFI6OlRlc3RPcHRpb25z
OjprZXlUeXBlTWFwcGluZyk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0T3B0aW9u
cy5oOgorICAgICAgICAoV1RSOjpUZXN0T3B0aW9uczo6dGV4dEludGVyYWN0aW9uRW5hYmxlZCBj
b25zdCk6CisKIDIwMjAtMTEtMzAgIEFha2FzaCBKYWluICA8YWFrYXNoX2phaW5AYXBwbGUuY29t
PgogCiAgICAgICAgIFtidWlsZC53ZWJraXQub3JnXSBVcGRhdGUgUnVuVGVzdDI2MlRlc3RzIHN0
ZXAgZm9yIG5ldyBidWlsZGJvdApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAzMTA5MmMyNmUz
OGVkN2MxOTA3NmVmMmUyODNiYjcwNzhhNmQ0ODMxLi44OWQ1MDc3NzliMjI0YTIwZDkzM2VmMzZh
MWQyNzY0OTgyZWQ2YmE4IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJL
aXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjczLDYgKzI3Myw4
IEBACiAJCTQ2RkEyRkVFMjM4NDZDQTUwMDBDQ0IwQyAvKiBIVFRQSGVhZGVyTWFwLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2RkEyRkVEMjM4NDZD
OUEwMDBDQ0IwQyAvKiBIVFRQSGVhZGVyTWFwLmNwcCAqLzsgfTsKIAkJNDZGQUNGNzQyM0U4ODQy
MzAwQTlFQkM2IC8qIGJlZm9yZXVubG9hZC1zbG93Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDZGQUNGNzMyM0U4ODNFRTAwQTlFQkM2
IC8qIGJlZm9yZXVubG9hZC1zbG93Lmh0bWwgKi87IH07CiAJCTQ5MDlFRTNBMkQwOTQ4MEM4ODk4
MkQ1NiAvKiBNYXJrYWJsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBFQzc5RjE2OEJFNDU0RTU3OUU0MTdCMDUgLyogTWFya2FibGUuY3BwICovOyB9
OworCQk0OTUyQkU1RTI1NzgxMTU2MDBCMEFFRjEgLyogV0tXZWJWaWV3RGlzYWJsZVNlbGVjdGlv
bi5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5NTJC
RTVEMjU3ODExNTUwMEIwQUVGMSAvKiBXS1dlYlZpZXdEaXNhYmxlU2VsZWN0aW9uLm1tICovOyB9
OworCQk0OTUyQkU1RjI1NzgxNkY4MDBCMEFFRjEgLyogdHJ5LXRleHQtc2VsZWN0LXdpdGgtZGlz
YWJsZWQtdGV4dC1pbnRlcmFjdGlvbi5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5NTJCRTVDMjU3ODExMzkwMEIwQUVGMSAvKiB0cnkt
dGV4dC1zZWxlY3Qtd2l0aC1kaXNhYmxlZC10ZXh0LWludGVyYWN0aW9uLmh0bWwgKi87IH07CiAJ
CTQ5NzFCMTE4MjQ1MUYyOUEwMDk2OTk0RCAvKiBpbmNvcnJlY3RDcmVhdGVUYWJsZVNjaGVtYS5k
YiBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
OTcxQjExNzI0NTFGMjc4MDA5Njk5NEQgLyogaW5jb3JyZWN0Q3JlYXRlVGFibGVTY2hlbWEuZGIg
Ki87IH07CiAJCTQ5NzFCMTIwMjQ1M0E4OEMwMDk2OTk0RCAvKiBtaXNzaW5nVG9wRnJhbWVVbmlx
dWVSZWRpcmVjdFNhbWVTaXRlU3RyaWN0VGFibGVTY2hlbWEuZGIgaW4gQ29weSBSZXNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDk3MUIxMUYyNDUzQTg3RjAwOTY5
OTREIC8qIG1pc3NpbmdUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0U2FtZVNpdGVTdHJpY3RUYWJsZVNj
aGVtYS5kYiAqLzsgfTsKIAkJNDk3MUIxMkYyNDYyM0EzQjAwOTY5OTREIC8qIGJhc2ljSVRQRGF0
YWJhc2UuZGItc2htIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA0OTcxQjEyRDI0NjIzQTNCMDA5Njk5NEQgLyogYmFzaWNJVFBEYXRhYmFzZS5kYi1zaG0g
Ki87IH07CkBAIC0xNjMyLDYgKzE2MzQsNyBAQAogCQkJCUY0NEM3QTA1MjBGQUFFM0MwMDE0NDc4
QyAvKiB0ZXh0LXdpdGgtZGVmZXJyZWQtc2NyaXB0Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8s
CiAJCQkJRjQxQUI5QUExRUY0Njk2QjAwODNGQTA4IC8qIHRleHRhcmVhLXRvLWlucHV0Lmh0bWwg
aW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJQzIyRkEzMkQyMjhGOEFFQjAwOUQ3OTg4IC8qIFRl
eHRXaWR0aC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAorCQkJCTQ5NTJCRTVGMjU3ODE2Rjgw
MEIwQUVGMSAvKiB0cnktdGV4dC1zZWxlY3Qtd2l0aC1kaXNhYmxlZC10ZXh0LWludGVyYWN0aW9u
Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJRjQ0NTFDNzYxRUI4RkQ4OTAwMjBDNURB
IC8qIHR3by1wYXJhZ3JhcGgtY29udGVudGVkaXRhYmxlLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMg
Ki8sCiAJCQkJMUQ2N0JGREQyNDMzRUU2NjAwNkI1MDQ3IC8qIHR3by12aWRlb3MuaHRtbCBpbiBD
b3B5IFJlc291cmNlcyAqLywKIAkJCQlDNTQwRjc4NDE1MkU1QTlBMDBBNDBDOEMgLyogdmVyYm9z
ZU1hcmt1cC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLApAQCAtMjAwMiw2ICsyMDA1LDggQEAK
IAkJNDZGMDNDMUIyNTVCMkQzNjAwQUE1MUM1IC8qIGF1ZGlvLWNvbnRleHQtcGxheWluZy5odG1s
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gImF1ZGlvLWNvbnRleHQtcGxheWluZy5odG1s
Ijsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDZGQTJGRUQyMzg0NkM5QTAwMENDQjBD
IC8qIEhUVFBIZWFkZXJNYXAuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gSFRUUEhlYWRlck1hcC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2RkFD
RjczMjNFODgzRUUwMEE5RUJDNiAvKiBiZWZvcmV1bmxvYWQtc2xvdy5odG1sICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dC5odG1sOyBwYXRoID0gImJlZm9yZXVubG9hZC1zbG93Lmh0bWwiOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk0OTUyQkU1QzI1NzgxMTM5MDBCMEFFRjEgLyogdHJ5LXRleHQtc2Vs
ZWN0LXdpdGgtZGlzYWJsZWQtdGV4dC1pbnRlcmFjdGlvbi5odG1sICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5o
dG1sOyBwYXRoID0gInRyeS10ZXh0LXNlbGVjdC13aXRoLWRpc2FibGVkLXRleHQtaW50ZXJhY3Rp
b24uaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ5NTJCRTVEMjU3ODExNTUw
MEIwQUVGMSAvKiBXS1dlYlZpZXdEaXNhYmxlU2VsZWN0aW9uLm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tXZWJWaWV3RGlzYWJsZVNlbGVjdGlvbi5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDk3MUIxMTcyNDUxRjI3ODAwOTY5OTREIC8qIGlu
Y29ycmVjdENyZWF0ZVRhYmxlU2NoZW1hLmRiICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gZmlsZTsgcGF0aCA9IGluY29ycmVjdENyZWF0ZVRhYmxlU2No
ZW1hLmRiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0OTcxQjExRjI0NTNBODdGMDA5
Njk5NEQgLyogbWlzc2luZ1RvcEZyYW1lVW5pcXVlUmVkaXJlY3RTYW1lU2l0ZVN0cmljdFRhYmxl
U2NoZW1hLmRiICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gZmlsZTsgbmFtZSA9IG1pc3NpbmdUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0U2FtZVNpdGVTdHJp
Y3RUYWJsZVNjaGVtYS5kYjsgcGF0aCA9IFRlc3RzL1dlYktpdENvY29hL21pc3NpbmdUb3BGcmFt
ZVVuaXF1ZVJlZGlyZWN0U2FtZVNpdGVTdHJpY3RUYWJsZVNjaGVtYS5kYjsgc291cmNlVHJlZSA9
IFNPVVJDRV9ST09UOyB9OwogCQk0OTcxQjEyQzI0NjIzOUQzMDA5Njk5NEQgLyogYmFzaWNJVFBE
YXRhYmFzZS5kYiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IGZpbGU7IHBhdGggPSBiYXNpY0lUUERhdGFiYXNlLmRiOyBzb3VyY2VUcmVlID0gU09VUkNF
X1JPT1Q7IH07CkBAIC0zNDUzLDYgKzM0NTgsNyBAQAogCQkJCTVDQjNDRTM4MUZBMTY5MTcwMEMz
QTJENiAvKiBXS1dlYlZpZXdDb25maWd1cmF0aW9uLm1tICovLAogCQkJCTdDNDE3RjMxMUQxOUUx
NDgwMEI4RUY1MyAvKiBXS1dlYlZpZXdEZWZhdWx0TmF2aWdhdGlvbkRlbGVnYXRlLm1tICovLAog
CQkJCTQ2RTY2QThGMUYwRDc1NTkwMDI2RDgzQyAvKiBXS1dlYlZpZXdEaWFnbm9zdGljTG9nZ2lu
Zy5tbSAqLywKKwkJCQk0OTUyQkU1RDI1NzgxMTU1MDBCMEFFRjEgLyogV0tXZWJWaWV3RGlzYWJs
ZVNlbGVjdGlvbi5tbSAqLywKIAkJCQkyREI2NDc4NzFGNDE2MUY3MDA1MUE4OUUgLyogV0tXZWJW
aWV3RG9lc05vdExvZ0R1cmluZ0luaXRpYWxpemF0aW9uLm1tICovLAogCQkJCUY0ODExRTU4MjE5
NDBCNDQwMEE1RTBGRCAvKiBXS1dlYlZpZXdFZGl0QWN0aW9ucy5tbSAqLywKIAkJCQkwRjNCOTRB
NTFBNzcyNjZDMDBERTMyNzIgLyogV0tXZWJWaWV3RXZhbHVhdGVKYXZhU2NyaXB0Lm1tICovLApA
QCAtMzkyNSw2ICszOTMxLDcgQEAKIAkJCQlGNDRDN0EwNDIwRkFBRTMyMDAxNDQ3OEMgLyogdGV4
dC13aXRoLWRlZmVycmVkLXNjcmlwdC5odG1sICovLAogCQkJCUY0MUFCOTk1MUVGNDY5MkMwMDgz
RkEwOCAvKiB0ZXh0YXJlYS10by1pbnB1dC5odG1sICovLAogCQkJCUMyMkZBMzJDMjI4Rjg3N0Ew
MDlENzk4OCAvKiBUZXh0V2lkdGguaHRtbCAqLywKKwkJCQk0OTUyQkU1QzI1NzgxMTM5MDBCMEFF
RjEgLyogdHJ5LXRleHQtc2VsZWN0LXdpdGgtZGlzYWJsZWQtdGV4dC1pbnRlcmFjdGlvbi5odG1s
ICovLAogCQkJCUY0NDUxQzc1MUVCOEZEN0MwMDIwQzVEQSAvKiB0d28tcGFyYWdyYXBoLWNvbnRl
bnRlZGl0YWJsZS5odG1sICovLAogCQkJCUNENTc3NzlCMjExQ0U2Q0UwMDFCMzcxRSAvKiB2aWRl
by13aXRoLWF1ZGlvLWFuZC13ZWItYXVkaW8uaHRtbCAqLywKIAkJCQlDRDU3Nzc5ODIxMUNERThG
MDAxQjM3MUUgLyogd2ViLWF1ZGlvLW9ubHkuaHRtbCAqLywKQEAgLTU2NTIsNiArNTY1OSw3IEBA
CiAJCQkJNTc5N0ZFMzExRUIxNUE2ODAwQjJGNEEwIC8qIE5hdmlnYXRpb25DbGllbnREZWZhdWx0
Q3J5cHRvLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNEQ0ZGRUMxMjJFMjZBMTUwMERGNDIyMyAv
KiBOb1BhdXNlV2hlblN3aXRjaGluZ1RhYnMubW0gaW4gU291cmNlcyAqLywKIAkJCQk3QUQzRkU4
RTFENzYxMzEyMDBCMTY5QTQgLyogVHJhbnNmb3JtYXRpb25NYXRyaXguY3BwIGluIFNvdXJjZXMg
Ki8sCisJCQkJNDk1MkJFNUUyNTc4MTE1NjAwQjBBRUYxIC8qIFdLV2ViVmlld0Rpc2FibGVTZWxl
Y3Rpb24ubW0gaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBv
c3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Q29jb2EvV0tXZWJWaWV3RGlzYWJsZVNlbGVjdGlvbi5tbSBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tXZWJWaWV3RGlzYWJsZVNlbGVjdGlvbi5t
bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4yMzA3OGI0YWRlZmIyMzc4ZjYzNTNjNWIyMjk0ZDY0ZmM5YTg5MjY5Ci0t
LSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9X
S1dlYlZpZXdEaXNhYmxlU2VsZWN0aW9uLm1tCkBAIC0wLDAgKzEsOTcgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaW1wb3J0ICJjb25maWcuaCIKKworI2ltcG9ydCAiUGxhdGZvcm1VdGlsaXRpZXMuaCIKKyNp
bXBvcnQgIlRlc3RXS1dlYlZpZXcuaCIKKyNpbXBvcnQgPFdlYktpdC9XS1dlYlZpZXdQcml2YXRl
Lmg+CisjaW1wb3J0IDxXZWJLaXQvV0tXZWJWaWV3UHJpdmF0ZUZvclRlc3RpbmcuaD4KKyNpbXBv
cnQgPHd0Zi9CbG9ja1B0ci5oPgorI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgorCisjaWYgUExB
VEZPUk0oTUFDKQorCitURVNUKFdLV2ViVmlld0Rpc2FibGVTZWxlY3Rpb24sIERvdWJsZUNsaWNr
RG9lc05vdFNlbGVjdFdoZW5UZXh0SW50ZXJhY3Rpb25zQXJlRGlzYWJsZWQpCit7CisgICAgUmV0
YWluUHRyPFRlc3RXS1dlYlZpZXc+IHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBh
bGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDQwMCwgNDAwKV0pOworICAgIFt3
ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkVGVzdFBhZ2VOYW1lZDpAInRyeS10ZXh0LXNlbGVjdC13
aXRoLWRpc2FibGVkLXRleHQtaW50ZXJhY3Rpb24iXTsKKworICAgIFt3ZWJWaWV3IHNlbmRDbGlj
a3NBdFBvaW50Ok5TTWFrZVBvaW50KDIwMCwgMjAwKSBudW1iZXJPZkNsaWNrczoyXTsKKyAgICBb
d2ViVmlldyB3YWl0Rm9yUGVuZGluZ01vdXNlRXZlbnRzXTsKKworICAgIE5TU3RyaW5nICpzZWxl
Y3RlZFRleHQgPSBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAiZ2V0U2Vs
ZWN0aW9uKCkuZ2V0UmFuZ2VBdCgwKS50b1N0cmluZygpIl07CisgICAgRVhQRUNUX1dLX1NUUkVR
KCJIZWxsbyIsIHNlbGVjdGVkVGV4dCk7CisKKyAgICAvLyBDbGVhciB0aGUgc2VsZWN0aW9uIGJ5
IGNsaWNraW5nIG9uY2UuCisgICAgW3dlYlZpZXcgc2VuZENsaWNrc0F0UG9pbnQ6TlNNYWtlUG9p
bnQoMjAwLCAyMDApIG51bWJlck9mQ2xpY2tzOjFdOworICAgIFt3ZWJWaWV3IHdhaXRGb3JQZW5k
aW5nTW91c2VFdmVudHNdOworCisgICAgLy8gRGlzYWJsZSB0ZXh0IHNlbGVjdGlvbiB0aGVuIGRv
dWJsZSBjbGljayBhZ2Fpbi4gVGhpcyBzaG91bGQgcmVzdWx0IGluIG5vIHRleHQgc2VsZWN0ZWQu
CisgICAgW3dlYlZpZXcgY29uZmlndXJhdGlvbl0ucHJlZmVyZW5jZXMudGV4dEludGVyYWN0aW9u
RW5hYmxlZCA9IE5POworCisgICAgW3dlYlZpZXcgc2VuZENsaWNrc0F0UG9pbnQ6TlNNYWtlUG9p
bnQoMjAwLCAyMDApIG51bWJlck9mQ2xpY2tzOjJdOworICAgIFt3ZWJWaWV3IHdhaXRGb3JQZW5k
aW5nTW91c2VFdmVudHNdOworCisgICAgTlNTdHJpbmcgKnNlbGVjdGVkVGV4dDIgPSBbd2ViVmll
dyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAiZ2V0U2VsZWN0aW9uKCkuZ2V0UmFuZ2VB
dCgwKS50b1N0cmluZygpIl07CisgICAgRVhQRUNUX1dLX1NUUkVRKCIiLCBzZWxlY3RlZFRleHQy
KTsKK30KKworc3RhdGljIE5TU3RyaW5nICpjbGlja0FuZERyYWdUb1NlbGVjdFRleHQoVGVzdFdL
V2ViVmlldyAqd2ViVmlldykKK3sKKyAgICBbd2ViVmlldyBtb3VzZUVudGVyQXRQb2ludDpDR1Bv
aW50TWFrZSgxNTAsIDIwMCldOworICAgIFt3ZWJWaWV3IG1vdXNlTW92ZVRvUG9pbnQ6Q0dQb2lu
dE1ha2UoMTUwLCAyMDApIHdpdGhGbGFnczowXTsKKyAgICBbd2ViVmlldyBtb3VzZURvd25BdFBv
aW50OkNHUG9pbnRNYWtlKDE1MCwgMjAwKSBzaW11bGF0ZVByZXNzdXJlOk5PXTsKKyAgICBbd2Vi
VmlldyB3YWl0Rm9yUGVuZGluZ01vdXNlRXZlbnRzXTsKKworICAgIFt3ZWJWaWV3IG1vdXNlRHJh
Z1RvUG9pbnQ6Q0dQb2ludE1ha2UoOTAwLCAyMDApXTsKKyAgICBbd2ViVmlldyB3YWl0Rm9yUGVu
ZGluZ01vdXNlRXZlbnRzXTsKKworICAgIFt3ZWJWaWV3IG1vdXNlVXBBdFBvaW50OkNHUG9pbnRN
YWtlKDkwMCwgMjAwKV07CisgICAgW3dlYlZpZXcgd2FpdEZvclBlbmRpbmdNb3VzZUV2ZW50c107
CisgICAgCisgICAgcmV0dXJuIFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6
QCJnZXRTZWxlY3Rpb24oKS5nZXRSYW5nZUF0KDApLnRvU3RyaW5nKCkiXTsKK30KKworVEVTVChX
S1dlYlZpZXdEaXNhYmxlU2VsZWN0aW9uLCBEcmFnRG9lc05vdFNlbGVjdFdoZW5UZXh0SW50ZXJh
Y3Rpb25zQXJlRGlzYWJsZWQpCit7CisgICAgUmV0YWluUHRyPFRlc3RXS1dlYlZpZXc+IHdlYlZp
ZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VS
ZWN0KDAsIDAsIDEwMDAsIDQwMCldKTsKKyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZFRl
c3RQYWdlTmFtZWQ6QCJ0cnktdGV4dC1zZWxlY3Qtd2l0aC1kaXNhYmxlZC10ZXh0LWludGVyYWN0
aW9uIl07CisKKyAgICBOU1N0cmluZyAqc2VsZWN0ZWRUZXh0ID0gY2xpY2tBbmREcmFnVG9TZWxl
Y3RUZXh0KHdlYlZpZXcuZ2V0KCkpOworICAgIEVYUEVDVF9XS19TVFJFUSgiSGVsbG8iLCBzZWxl
Y3RlZFRleHQpOworICAgIAorICAgIC8vIENsZWFyIHRoZSBzZWxlY3Rpb24gYnkgY2xpY2tpbmcg
b25jZS4KKyAgICBbd2ViVmlldyBzZW5kQ2xpY2tzQXRQb2ludDpOU01ha2VQb2ludCgyMDAsIDIw
MCkgbnVtYmVyT2ZDbGlja3M6MV07CisgICAgW3dlYlZpZXcgd2FpdEZvclBlbmRpbmdNb3VzZUV2
ZW50c107CisgICAgCisgICAgLy8gRGlzYWJsZSB0ZXh0IHNlbGVjdGlvbiB0aGVuIGNsaWNrIGFu
ZCBkcmFnIGFnYWluLiBUaGlzIHNob3VsZCByZXN1bHQgaW4gbm8gdGV4dCBzZWxlY3RlZC4KKyAg
ICBbd2ViVmlldyBjb25maWd1cmF0aW9uXS5wcmVmZXJlbmNlcy50ZXh0SW50ZXJhY3Rpb25FbmFi
bGVkID0gTk87CisKKyAgICBOU1N0cmluZyAqc2VsZWN0ZWRUZXh0MiA9IGNsaWNrQW5kRHJhZ1Rv
U2VsZWN0VGV4dCh3ZWJWaWV3LmdldCgpKTsKKyAgICBFWFBFQ1RfV0tfU1RSRVEoIiIsIHNlbGVj
dGVkVGV4dDIpOworfQorCisjZW5kaWYgLy8gUExBVEZPUk0oTUFDKQpkaWZmIC0tZ2l0IGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS90cnktdGV4dC1zZWxlY3Qtd2l0aC1k
aXNhYmxlZC10ZXh0LWludGVyYWN0aW9uLmh0bWwgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL3RyeS10ZXh0LXNlbGVjdC13aXRoLWRpc2FibGVkLXRleHQtaW50ZXJhY3Rp
b24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5lY2MxYjIzZjAzZTViZjk1OGYzNWUxZmExYjU4MzQ4NWZiZTQw
M2RkCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS90cnktdGV4dC1zZWxlY3Qtd2l0aC1kaXNhYmxlZC10ZXh0LWludGVyYWN0aW9uLmh0bWwK
QEAgLTAsMCArMSwxNSBAQAorPHN0eWxlPgorYm9keSB7CisgICAgd2lkdGg6IDEwMCU7CisgICAg
aGVpZ2h0OiAxMDAlOworfQorCisjZWRpdGFibGUgeworICAgIHdpZHRoOiAxMDAlOworICAgIGhl
aWdodDogNDAwcHg7CisgICAgZm9udC1zaXplOiA0MDBweDsKKyAgICB3aGl0ZS1zcGFjZTogbm93
cmFwOworICAgIGJvcmRlcjogMXB4IGJsdWUgZGFzaGVkOworfQorPC9zdHlsZT4KKzxkaXYgaWQ9
ImVkaXRhYmxlIiBjb250ZW50ZWRpdGFibGU+SGVsbG8gd29ybGQ8L2Rpdj4KZGlmZiAtLWdpdCBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdE9wdGlvbnMuY3BwIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9UZXN0T3B0aW9ucy5jcHAKaW5kZXggZjM2ZDE5Y2MxYzMwMjgwZTc1OThiMWQyNTBh
MGViNWQ5YTZkNThmNy4uNjQzYjUyZmY4Y2UxNTQ3MmVjZjg2YTBlNmMyOWQ4OGQyM2QzNjE0YSAx
MDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0T3B0aW9ucy5jcHAKKysrIGIv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0T3B0aW9ucy5jcHAKQEAgLTg2LDYgKzg2LDcgQEAg
Y29uc3QgVGVzdEZlYXR1cmVzJiBUZXN0T3B0aW9uczo6ZGVmYXVsdHMoKQogICAgICAgICAgICAg
eyAic2hvdWxkU2hvd1RvdWNoZXMiLCBmYWxzZSB9LAogICAgICAgICAgICAgeyAic2hvdWxkU2hv
d1dlYlZpZXciLCBmYWxzZSB9LAogICAgICAgICAgICAgeyAic3BlbGxDaGVja2luZ0RvdHMiLCBm
YWxzZSB9LAorICAgICAgICAgICAgeyAidGV4dEludGVyYWN0aW9uRW5hYmxlZCIsIHRydWUgfSwK
ICAgICAgICAgICAgIHsgInVzZUNoYXJhY3RlclNlbGVjdGlvbkdyYW51bGFyaXR5IiwgZmFsc2Ug
fSwKICAgICAgICAgICAgIHsgInVzZURhdGFEZXRlY3Rpb24iLCBmYWxzZSB9LAogICAgICAgICAg
ICAgeyAidXNlRXBoZW1lcmFsU2Vzc2lvbiIsIGZhbHNlIH0sCkBAIC0xMzUsNiArMTM2LDcgQEAg
Y29uc3Qgc3RkOjp1bm9yZGVyZWRfbWFwPHN0ZDo6c3RyaW5nLCBUZXN0SGVhZGVyS2V5VHlwZT4m
IFRlc3RPcHRpb25zOjprZXlUeXBlTWEKICAgICAgICAgeyAic2hvdWxkU2hvd1RvdWNoZXMiLCBU
ZXN0SGVhZGVyS2V5VHlwZTo6Qm9vbFRlc3RSdW5uZXIgfSwKICAgICAgICAgeyAic2hvdWxkU2hv
d1dlYlZpZXciLCBUZXN0SGVhZGVyS2V5VHlwZTo6Qm9vbFRlc3RSdW5uZXIgfSwKICAgICAgICAg
eyAic3BlbGxDaGVja2luZ0RvdHMiLCBUZXN0SGVhZGVyS2V5VHlwZTo6Qm9vbFRlc3RSdW5uZXIg
fSwKKyAgICAgICAgeyAidGV4dEludGVyYWN0aW9uRW5hYmxlZCIsIFRlc3RIZWFkZXJLZXlUeXBl
OjpCb29sVGVzdFJ1bm5lciB9LAogICAgICAgICB7ICJ1c2VDaGFyYWN0ZXJTZWxlY3Rpb25HcmFu
dWxhcml0eSIsIFRlc3RIZWFkZXJLZXlUeXBlOjpCb29sVGVzdFJ1bm5lciB9LAogICAgICAgICB7
ICJ1c2VEYXRhRGV0ZWN0aW9uIiwgVGVzdEhlYWRlcktleVR5cGU6OkJvb2xUZXN0UnVubmVyIH0s
CiAgICAgICAgIHsgInVzZUVwaGVtZXJhbFNlc3Npb24iLCBUZXN0SGVhZGVyS2V5VHlwZTo6Qm9v
bFRlc3RSdW5uZXIgfSwKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdE9w
dGlvbnMuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdE9wdGlvbnMuaAppbmRleCAyY2Zl
OWY3NWZlYjgzMWJhNDZkMDY1OTczMDFjNDEyMzk0NmY4ZjAxLi4zODZjOTEwMjA0ZjA3MjliYmU0
NGY3ZDE0ZTBjODExZThhMTIyZmIwIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L1Rlc3RPcHRpb25zLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0T3B0aW9ucy5o
CkBAIC02Myw2ICs2Myw3IEBAIHB1YmxpYzoKICAgICBib29sIHNob3VsZFNob3dTcGVsbENoZWNr
aW5nRG90cygpIGNvbnN0IHsgcmV0dXJuIGJvb2xUZXN0UnVubmVyRmVhdHVyZVZhbHVlKCJzcGVs
bENoZWNraW5nRG90cyIpOyB9CiAgICAgYm9vbCBzaG91bGRTaG93VG91Y2hlcygpIGNvbnN0IHsg
cmV0dXJuIGJvb2xUZXN0UnVubmVyRmVhdHVyZVZhbHVlKCJzaG91bGRTaG93VG91Y2hlcyIpOyB9
CiAgICAgYm9vbCBzaG91bGRTaG93V2ViVmlldygpIGNvbnN0IHsgcmV0dXJuIGJvb2xUZXN0UnVu
bmVyRmVhdHVyZVZhbHVlKCJzaG91bGRTaG93V2ViVmlldyIpOyB9CisgICAgYm9vbCB0ZXh0SW50
ZXJhY3Rpb25FbmFibGVkKCkgY29uc3QgeyByZXR1cm4gYm9vbFRlc3RSdW5uZXJGZWF0dXJlVmFs
dWUoInRleHRJbnRlcmFjdGlvbkVuYWJsZWQiKTsgfQogICAgIGJvb2wgdXNlQ2hhcmFjdGVyU2Vs
ZWN0aW9uR3JhbnVsYXJpdHkoKSBjb25zdCB7IHJldHVybiBib29sVGVzdFJ1bm5lckZlYXR1cmVW
YWx1ZSgidXNlQ2hhcmFjdGVyU2VsZWN0aW9uR3JhbnVsYXJpdHkiKTsgfQogICAgIGJvb2wgdXNl
RGF0YURldGVjdGlvbigpIGNvbnN0IHsgcmV0dXJuIGJvb2xUZXN0UnVubmVyRmVhdHVyZVZhbHVl
KCJ1c2VEYXRhRGV0ZWN0aW9uIik7IH0KICAgICBib29sIHVzZUVwaGVtZXJhbFNlc3Npb24oKSBj
b25zdCB7IHJldHVybiBib29sVGVzdFJ1bm5lckZlYXR1cmVWYWx1ZSgidXNlRXBoZW1lcmFsU2Vz
c2lvbiIpOyB9CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RD
b250cm9sbGVyQ29jb2EubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RDb250
cm9sbGVyQ29jb2EubW0KaW5kZXggNDE4YmZhYWU5ZjA1NzBiM2M4OWNjYTExMzNmOWUzYjQyZjAw
MmI2My4uZDY5NGMxYzkyYzNkZWEzNTlhN2IxNTg2YTY1ZGNlY2VmNzQyMzJiYiAxMDA2NDQKLS0t
IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0Q29udHJvbGxlckNvY29hLm1tCisr
KyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVGVzdENvbnRyb2xsZXJDb2NvYS5tbQpA
QCAtMjkwLDYgKzI5MCw3IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OmNvY29hUmVzZXRTdGF0ZVRv
Q29uc2lzdGVudFZhbHVlcyhjb25zdCBUZXN0T3B0aW9ucyYgb3B0aW9uCiAgICAgICAgIFtwbGF0
Zm9ybVZpZXcgX3NldENvbnRpbnVvdXNTcGVsbENoZWNraW5nRW5hYmxlZEZvclRlc3Rpbmc6b3B0
aW9ucy5zaG91bGRTaG93U3BlbGxDaGVja2luZ0RvdHMoKV07CiAgICAgICAgIFtwbGF0Zm9ybVZp
ZXcgcmVzZXRJbnRlcmFjdGlvbkNhbGxiYWNrc107CiAgICAgICAgIFtwbGF0Zm9ybVZpZXcgX3Jl
c2V0TmF2aWdhdGlvbkdlc3R1cmVTdGF0ZUZvclRlc3RpbmddOworICAgICAgICBbcGxhdGZvcm1W
aWV3LmNvbmZpZ3VyYXRpb24ucHJlZmVyZW5jZXMgc2V0VGV4dEludGVyYWN0aW9uRW5hYmxlZDpv
cHRpb25zLnRleHRJbnRlcmFjdGlvbkVuYWJsZWQoKV07CiAgICAgfQogCiAgICAgW2dsb2JhbFdl
YnNpdGVEYXRhU3RvcmVEZWxlZ2F0ZUNsaWVudCBzZXRBbGxvd1JhaXNpbmdRdW90YTpZRVNdOwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CmluZGV4IDJiNDI1ZmNhNTQ4OWM2NzhhM2RkMjM5OWNmMDZiMTk1Njc3MzNiNzAuLjVkYTFjZGVm
N2JkYTgxMTI1NzAzNmFkNWRmMTZkNzIxZmE2ODVkOTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAor
MjAyMC0xMi0wMiAgS2F0ZSBDaGVuZXkgIDxrYXRoZXJpbmVfY2hlbmV5QGFwcGxlLmNvbT4KKwor
ICAgICAgICBDcmVhdGUgQVBJIHRvIGVuYWJsZS9kaXNhYmxlIHRleHQgaW50ZXJhY3Rpb24gZ2Vz
dHVyZXMgaW4gV0tXZWJWaWV3CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMTc3ODQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzYzNDA2MjQxPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IFdlbnNvbiBIc2llaC4KKworICAgICAgICBMYXlvdXQgdGVzdCBj
b3ZlcmFnZSBmb3IgaU9TLgorCisgICAgICAgICogTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rp
b24vaW9zL2Nhbm5vdC1zZWxlY3QtYWZ0ZXItZGlzYWJsaW5nLXRleHQtaW50ZXJhY3Rpb24tZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlv
bi9pb3MvY2Fubm90LXNlbGVjdC1hZnRlci1kaXNhYmxpbmctdGV4dC1pbnRlcmFjdGlvbi5odG1s
OiBBZGRlZC4KKwogMjAyMC0xMS0zMCAgTGF1cm8gTW91cmEgIDxsbW91cmFAaWdhbGlhLmNvbT4K
IAogICAgICAgICBbR0xJQl0gUHJvcGVybHkgZ2FyZGVuIHdlYnJ0YyBjcmFzaGVzCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9pb3MvY2Fubm90LXNlbGVjdC1hZnRl
ci1kaXNhYmxpbmctdGV4dC1pbnRlcmFjdGlvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9l
ZGl0aW5nL3NlbGVjdGlvbi9pb3MvY2Fubm90LXNlbGVjdC1hZnRlci1kaXNhYmxpbmctdGV4dC1p
bnRlcmFjdGlvbi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGZiYzYyZmJmYjlmYjUzMGI4NmVj
YzdjMGU1MWZmYzY5ZTBlMTVmZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2VkaXRp
bmcvc2VsZWN0aW9uL2lvcy9jYW5ub3Qtc2VsZWN0LWFmdGVyLWRpc2FibGluZy10ZXh0LWludGVy
YWN0aW9uLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitUaGlzIHRlc3QgdmVyaWZpZXMg
dGhhdCB0ZXh0IHNlbGVjdGlvbiBmYWlscyB3aGVuIHRleHQgaW50ZXJhY3Rpb24gaXMgZGlzYWJs
ZWQuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2Fn
ZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGdldFNlbGVjdGlvbigp
LnRvU3RyaW5nKCkgaXMgIiIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVT
VCBDT01QTEVURQorVGVzdGluZwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxl
Y3Rpb24vaW9zL2Nhbm5vdC1zZWxlY3QtYWZ0ZXItZGlzYWJsaW5nLXRleHQtaW50ZXJhY3Rpb24u
aHRtbCBiL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2lvcy9jYW5ub3Qtc2VsZWN0LWFm
dGVyLWRpc2FibGluZy10ZXh0LWludGVyYWN0aW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzliNTIyMWUx
MTc5ZWNhODU1MTJkMjg2ZWU3OTY2MmU1YzIwOWE0ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2lvcy9jYW5ub3Qtc2VsZWN0LWFmdGVyLWRpc2FibGlu
Zy10ZXh0LWludGVyYWN0aW9uLmh0bWwKQEAgLTAsMCArMSwzMiBAQAorPCFET0NUWVBFIGh0bWw+
IDwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgdXNlRmxleGlibGVWaWV3cG9ydD10cnVlIHRleHRJ
bnRlcmFjdGlvbkVuYWJsZWQ9ZmFsc2UgXSAtLT4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBuYW1l
PSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEs
IHVzZXItc2NhbGFibGU9bm8iPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdWktaGVs
cGVyLmpzIj48L3NjcmlwdD4KKzxzdHlsZT4KK2h0bWwsIGJvZHkgeworICAgIHdpZHRoOiAxMDAl
OworICAgIG1hcmdpbjogMDsKK30KKworI3RhcmdldCB7CisgICAgZm9udC1zaXplOiAyNHB4Owor
fQorPC9zdHlsZT4KKzxzY3JpcHQ+CisgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICBh
c3luYyBmdW5jdGlvbiBydW5UZXN0KCkKKyAgICB7CisgICAgICAgIGRlc2NyaXB0aW9uKCJUaGlz
IHRlc3QgdmVyaWZpZXMgdGhhdCB0ZXh0IHNlbGVjdGlvbiBmYWlscyB3aGVuIHRleHQgaW50ZXJh
Y3Rpb24gaXMgZGlzYWJsZWQuIik7CisKKyAgICAgICAgYXdhaXQgVUlIZWxwZXIubG9uZ1ByZXNz
RWxlbWVudCh0YXJnZXQpOworICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImdldFNlbGVj
dGlvbigpLnRvU3RyaW5nKCkiLCAiIik7CisgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgIH0K
Kzwvc2NyaXB0PgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorICAgIDxkaXYgaWQ9InRhcmdl
dCI+VGVzdGluZzwvZGl2PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>438153</attachid>
            <date>2021-09-14 10:27:30 -0700</date>
            <delta_ts>2021-09-14 11:51:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217784-20210914102729.patch</filename>
            <type>text/plain</type>
            <size>1382</size>
            <attacher name="Kate Cheney">katherine_cheney</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxOTk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGE3NDFmODY5YzA2NDQ4ZmY1YzhhOWU0
YzM1ZTgyYmJmMzZlODJiOTAuLmFiNTg2YThlZDdkYWE4NzJkYjg3M2ZhYTk4MTYzZTEzNGY3YmJi
NDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjEtMDktMTQgIEthdGUgQ2hlbmV5ICA8a2F0aGVy
aW5lX2NoZW5leUBhcHBsZS5jb20+CisKKyAgICAgICAgRm9sbG93dXAgdG8gaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzc4NAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVwZGF0ZSBwbGF0Zm9ybSBuYW1lIGZvciB3YXRj
aE9TLgorCisgICAgICAgICogU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlcy55YW1s
OgorCiAyMDIxLTA5LTAyICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5v
cmc+CiAKICAgICAgICAgUmVqZWN0IG5vbi1JUHY0IGhvc3RuYW1lcyB0aGF0IGVuZCBpbiBudW1i
ZXJzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVy
ZW5jZXMueWFtbCBiL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNl
cy55YW1sCmluZGV4IDlkM2NjZTk3YzA4NTlhOThkZTg5Y2I4NmI3ZDYyZWY4NmI1OGM1NGIuLjI1
YWZiMjUwOGU4Y2Q0NWRmNTUwNDRkNjFlNjJhODRhMTYzMzZiZWEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlcy55YW1sCisrKyBiL1NvdXJj
ZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlcy55YW1sCkBAIC0yMzA5LDEz
ICsyMzA5LDEzIEBAIFRleHRJbnRlcmFjdGlvbkVuYWJsZWQ6CiAgIHR5cGU6IGJvb2wKICAgZGVm
YXVsdFZhbHVlOgogICAgIFdlYktpdExlZ2FjeToKLSAgICAgICJQTEFURk9STShXQVRDSF9PUyki
OiBmYWxzZQorICAgICAgIlBMQVRGT1JNKFdBVENIT1MpIjogZmFsc2UKICAgICAgIGRlZmF1bHQ6
IHRydWUKICAgICBXZWJLaXQ6Ci0gICAgICAiUExBVEZPUk0oV0FUQ0hfT1MpIjogZmFsc2UKKyAg
ICAgICJQTEFURk9STShXQVRDSE9TKSI6IGZhbHNlCiAgICAgICBkZWZhdWx0OiB0cnVlCiAgICAg
V2ViQ29yZToKLSAgICAgICJQTEFURk9STShXQVRDSF9PUykiOiBmYWxzZQorICAgICAgIlBMQVRG
T1JNKFdBVENIT1MpIjogZmFsc2UKICAgICAgIGRlZmF1bHQ6IHRydWUKIAogVGhyZWFkZWRTY3Jv
bGxpbmdFbmFibGVkOgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>