<?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>237183</bug_id>
          
          <creation_ts>2022-02-24 22:23:54 -0800</creation_ts>
          <short_desc>[Cocoa] Allow logging to be configured by NSDefaults (without regressing launch time)</short_desc>
          <delta_ts>2022-03-01 10:14:17 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jer Noble">jer.noble</reporter>
          <assigned_to name="Jer Noble">jer.noble</assigned_to>
          <cc>darin</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1845911</commentid>
    <comment_count>0</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2022-02-24 22:23:54 -0800</bug_when>
    <thetext>[Cocoa] Allow logging to be configured by NSDefaults (without regressing launch time)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1845918</commentid>
    <comment_count>1</comment_count>
      <attachid>453177</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2022-02-24 23:39:08 -0800</bug_when>
    <thetext>Created attachment 453177
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1846021</commentid>
    <comment_count>2</comment_count>
      <attachid>453216</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2022-02-25 08:27:29 -0800</bug_when>
    <thetext>Created attachment 453216
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1846023</commentid>
    <comment_count>3</comment_count>
      <attachid>453218</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2022-02-25 08:32:59 -0800</bug_when>
    <thetext>Created attachment 453218
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1846362</commentid>
    <comment_count>4</comment_count>
      <attachid>453316</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2022-02-26 17:18:07 -0800</bug_when>
    <thetext>Created attachment 453316
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1846425</commentid>
    <comment_count>5</comment_count>
      <attachid>453339</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2022-02-27 06:29:35 -0800</bug_when>
    <thetext>Created attachment 453339
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1846432</commentid>
    <comment_count>6</comment_count>
      <attachid>453339</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2022-02-27 08:09:14 -0800</bug_when>
    <thetext>Comment on attachment 453339
Patch

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

&gt; Source/WebKit/UIProcess/Cocoa/UIProcessLogInitializationCocoa.mm:53
&gt; +String wtfLogLevelString()
&gt; +{
&gt; +    static NeverDestroyed&lt;String&gt; logString = [[NSUserDefaults standardUserDefaults] stringForKey:@&quot;WTFLogging&quot;];
&gt; +    return logString;
&gt; +}
&gt; +
&gt; +String webCoreLogLevelString()
&gt; +{
&gt; +    static NeverDestroyed&lt;String&gt; logString = [[NSUserDefaults standardUserDefaults] stringForKey:@&quot;WebCoreLogging&quot;];
&gt; +    return logString;
&gt; +}
&gt; +
&gt; +String webKitLogLevelString()
&gt; +{
&gt; +    static NeverDestroyed&lt;String&gt; logString = [[NSUserDefaults standardUserDefaults] stringForKey:@&quot;WebKit2Logging&quot;];
&gt; +    return logString;
&gt; +}

We should not use NeverDestroyed here. That makes these non-thread-safe. There’s a reason we don’t do that in the WTF versions of these functions.

If there’s a performance problem with calling NSUserDefaults multiple times, and maybe that’s the whole point of the patch, we can cache the results, but we’d need a thread-safe way to do it, which would involve call_once and not using String for the cross-thread cached result. For example, we could use a NeverDestroyed&lt;RetainPtr&lt;NSString&gt;&gt; if we initialize it in a thread-safe manner, and create a new WTF::String each time these are called.

Unless I am missing something and these are always called on only a single thread? If so we should use the version of NeverDestroyed that includes that check perhaps?

&gt; Source/WebKit/UIProcess/UIProcessLogInitialization.cpp:67
&gt; +#if !PLATFORM(COCOA)
&gt; +String wtfLogLevelString()
&gt; +{
&gt; +    static NeverDestroyed&lt;String&gt; logString = WTF::logLevelString();
&gt; +    return logString;
&gt; +}
&gt; +
&gt; +String webCoreLogLevelString()
&gt; +{
&gt; +    static NeverDestroyed&lt;String&gt; logString = WebCore::logLevelString();
&gt; +    return logString;
&gt; +}
&gt; +
&gt; +String webKitLogLevelString()
&gt; +{
&gt; +    static NeverDestroyed&lt;String&gt; logString = WebKit::logLevelString();
&gt; +    return logString;
&gt; +}
&gt; +#endif

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1846651</commentid>
    <comment_count>7</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2022-02-28 09:07:24 -0800</bug_when>
    <thetext>(In reply to Darin Adler from comment #6)
&gt; Comment on attachment 453339 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=453339&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/UIProcess/Cocoa/UIProcessLogInitializationCocoa.mm:53
&gt; &gt; +String wtfLogLevelString()
&gt; &gt; +{
&gt; &gt; +    static NeverDestroyed&lt;String&gt; logString = [[NSUserDefaults standardUserDefaults] stringForKey:@&quot;WTFLogging&quot;];
&gt; &gt; +    return logString;
&gt; &gt; +}
&gt; &gt; +
&gt; &gt; +String webCoreLogLevelString()
&gt; &gt; +{
&gt; &gt; +    static NeverDestroyed&lt;String&gt; logString = [[NSUserDefaults standardUserDefaults] stringForKey:@&quot;WebCoreLogging&quot;];
&gt; &gt; +    return logString;
&gt; &gt; +}
&gt; &gt; +
&gt; &gt; +String webKitLogLevelString()
&gt; &gt; +{
&gt; &gt; +    static NeverDestroyed&lt;String&gt; logString = [[NSUserDefaults standardUserDefaults] stringForKey:@&quot;WebKit2Logging&quot;];
&gt; &gt; +    return logString;
&gt; &gt; +}
&gt; 
&gt; We should not use NeverDestroyed here. That makes these non-thread-safe.
&gt; There’s a reason we don’t do that in the WTF versions of these functions.
&gt; 
&gt; If there’s a performance problem with calling NSUserDefaults multiple times,
&gt; and maybe that’s the whole point of the patch, we can cache the results, but
&gt; we’d need a thread-safe way to do it, which would involve call_once and not
&gt; using String for the cross-thread cached result. For example, we could use a
&gt; NeverDestroyed&lt;RetainPtr&lt;NSString&gt;&gt; if we initialize it in a thread-safe
&gt; manner, and create a new WTF::String each time these are called.
&gt; 
&gt; Unless I am missing something and these are always called on only a single
&gt; thread? If so we should use the version of NeverDestroyed that includes that
&gt; check perhaps?

Hah! I originally had std::call_once on each of these, but somehow thought that static NeverDestroyed initializers were thread safe. I&apos;ll change these back.

&gt; &gt; Source/WebKit/UIProcess/UIProcessLogInitialization.cpp:67
&gt; &gt; +#if !PLATFORM(COCOA)
&gt; &gt; +String wtfLogLevelString()
&gt; &gt; +{
&gt; &gt; +    static NeverDestroyed&lt;String&gt; logString = WTF::logLevelString();
&gt; &gt; +    return logString;
&gt; &gt; +}
&gt; &gt; +
&gt; &gt; +String webCoreLogLevelString()
&gt; &gt; +{
&gt; &gt; +    static NeverDestroyed&lt;String&gt; logString = WebCore::logLevelString();
&gt; &gt; +    return logString;
&gt; &gt; +}
&gt; &gt; +
&gt; &gt; +String webKitLogLevelString()
&gt; &gt; +{
&gt; &gt; +    static NeverDestroyed&lt;String&gt; logString = WebKit::logLevelString();
&gt; &gt; +    return logString;
&gt; &gt; +}
&gt; &gt; +#endif
&gt; 
&gt; Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1846653</commentid>
    <comment_count>8</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2022-02-28 09:11:46 -0800</bug_when>
    <thetext>(In reply to Jer Noble from comment #7)
&gt; (In reply to Darin Adler from comment #6)
&gt; &gt; Comment on attachment 453339 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=453339&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebKit/UIProcess/Cocoa/UIProcessLogInitializationCocoa.mm:53
&gt; &gt; &gt; +String wtfLogLevelString()
&gt; &gt; &gt; +{
&gt; &gt; &gt; +    static NeverDestroyed&lt;String&gt; logString = [[NSUserDefaults standardUserDefaults] stringForKey:@&quot;WTFLogging&quot;];
&gt; &gt; &gt; +    return logString;
&gt; &gt; &gt; +}
&gt; &gt; &gt; +
&gt; &gt; &gt; +String webCoreLogLevelString()
&gt; &gt; &gt; +{
&gt; &gt; &gt; +    static NeverDestroyed&lt;String&gt; logString = [[NSUserDefaults standardUserDefaults] stringForKey:@&quot;WebCoreLogging&quot;];
&gt; &gt; &gt; +    return logString;
&gt; &gt; &gt; +}
&gt; &gt; &gt; +
&gt; &gt; &gt; +String webKitLogLevelString()
&gt; &gt; &gt; +{
&gt; &gt; &gt; +    static NeverDestroyed&lt;String&gt; logString = [[NSUserDefaults standardUserDefaults] stringForKey:@&quot;WebKit2Logging&quot;];
&gt; &gt; &gt; +    return logString;
&gt; &gt; &gt; +}
&gt; &gt; 
&gt; &gt; We should not use NeverDestroyed here. That makes these non-thread-safe.
&gt; &gt; There’s a reason we don’t do that in the WTF versions of these functions.
&gt; &gt; 
&gt; &gt; If there’s a performance problem with calling NSUserDefaults multiple times,
&gt; &gt; and maybe that’s the whole point of the patch, we can cache the results, but
&gt; &gt; we’d need a thread-safe way to do it, which would involve call_once and not
&gt; &gt; using String for the cross-thread cached result. For example, we could use a
&gt; &gt; NeverDestroyed&lt;RetainPtr&lt;NSString&gt;&gt; if we initialize it in a thread-safe
&gt; &gt; manner, and create a new WTF::String each time these are called.
&gt; &gt; 
&gt; &gt; Unless I am missing something and these are always called on only a single
&gt; &gt; thread? If so we should use the version of NeverDestroyed that includes that
&gt; &gt; check perhaps?
&gt; 
&gt; Hah! I originally had std::call_once on each of these, but somehow thought
&gt; that static NeverDestroyed initializers were thread safe. I&apos;ll change these
&gt; back.

(Also, while they are currently only ever called from the main thread, but there&apos;s no guarantee they will always be in the future, so best to make them thread safe now.)

&gt; &gt; &gt; Source/WebKit/UIProcess/UIProcessLogInitialization.cpp:67
&gt; &gt; &gt; +#if !PLATFORM(COCOA)
&gt; &gt; &gt; +String wtfLogLevelString()
&gt; &gt; &gt; +{
&gt; &gt; &gt; +    static NeverDestroyed&lt;String&gt; logString = WTF::logLevelString();
&gt; &gt; &gt; +    return logString;
&gt; &gt; &gt; +}
&gt; &gt; &gt; +
&gt; &gt; &gt; +String webCoreLogLevelString()
&gt; &gt; &gt; +{
&gt; &gt; &gt; +    static NeverDestroyed&lt;String&gt; logString = WebCore::logLevelString();
&gt; &gt; &gt; +    return logString;
&gt; &gt; &gt; +}
&gt; &gt; &gt; +
&gt; &gt; &gt; +String webKitLogLevelString()
&gt; &gt; &gt; +{
&gt; &gt; &gt; +    static NeverDestroyed&lt;String&gt; logString = WebKit::logLevelString();
&gt; &gt; &gt; +    return logString;
&gt; &gt; &gt; +}
&gt; &gt; &gt; +#endif
&gt; &gt; 
&gt; &gt; Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1846657</commentid>
    <comment_count>9</comment_count>
      <attachid>453396</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2022-02-28 09:20:41 -0800</bug_when>
    <thetext>Created attachment 453396
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1846659</commentid>
    <comment_count>10</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2022-02-28 09:22:07 -0800</bug_when>
    <thetext>Okay, these are all init&apos;d behind a std::call_once or dispatchOnce.

Do we need similar modifications to emptyString() and nullString()?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1846667</commentid>
    <comment_count>11</comment_count>
      <attachid>453396</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2022-02-28 09:46:37 -0800</bug_when>
    <thetext>Comment on attachment 453396
Patch

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

&gt; Source/WebKit/UIProcess/Cocoa/UIProcessLogInitializationCocoa.mm:44
&gt; +    static NeverDestroyed&lt;String&gt; logString;
&gt; +    static dispatch_once_t onceToken;
&gt; +    dispatch_once(&amp;onceToken, ^{
&gt; +        logString = [[NSUserDefaults standardUserDefaults] stringForKey:@&quot;WTFLogging&quot;];
&gt; +    });
&gt; +    return logString;

This is insufficiently thread-safe. Sharing a String across threads still isn’t safe even if you initialize safely. But if logString was this:

    static NeverDestroyed&lt;RetainPtr&lt;NSString&gt;&gt; logString;

Then that would be thread-safe.

&gt; Source/WebKit/UIProcess/Cocoa/UIProcessLogInitializationCocoa.mm:54
&gt; +    static NeverDestroyed&lt;String&gt; logString;
&gt; +    static dispatch_once_t onceToken;
&gt; +    dispatch_once(&amp;onceToken, ^{
&gt; +        logString = [[NSUserDefaults standardUserDefaults] stringForKey:@&quot;WebCoreLogging&quot;];
&gt; +    });
&gt; +    return logString;

Ditto.

&gt; Source/WebKit/UIProcess/Cocoa/UIProcessLogInitializationCocoa.mm:64
&gt; +    static NeverDestroyed&lt;String&gt; logString;
&gt; +    static dispatch_once_t onceToken;
&gt; +    dispatch_once(&amp;onceToken, ^{
&gt; +        logString = [[NSUserDefaults standardUserDefaults] stringForKey:@&quot;WebKit2Logging&quot;];
&gt; +    });
&gt; +    return logString;

Ditto.

&gt; Source/WebKit/UIProcess/UIProcessLogInitialization.cpp:57
&gt; +    static NeverDestroyed&lt;String&gt; logString;
&gt; +    static std::once_flag onceFlag;
&gt; +    std::call_once(onceFlag, [] {
&gt; +        logString = WTF::logLevelString();
&gt; +    });
&gt; +    return logString;

This isn’t thread-safe. The best solution is probably just to call WTF::logLevelString() every time.

&gt; Source/WebKit/UIProcess/UIProcessLogInitialization.cpp:67
&gt; +    static NeverDestroyed&lt;String&gt; logString;
&gt; +    static std::once_flag onceFlag;
&gt; +    std::call_once(onceFlag, [] {
&gt; +        logString  = WebCore::logLevelString();
&gt; +    });
&gt; +    return logString;

Ditto.

&gt; Source/WebKit/UIProcess/UIProcessLogInitialization.cpp:77
&gt; +    static NeverDestroyed&lt;String&gt; logString;
&gt; +    static std::once_flag onceFlag;
&gt; +    std::call_once(onceFlag, [] {
&gt; +        logString  = WebKit::logLevelString();
&gt; +    });
&gt; +    return logString;

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1846669</commentid>
    <comment_count>12</comment_count>
      <attachid>453400</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2022-02-28 09:50:49 -0800</bug_when>
    <thetext>Created attachment 453400
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1846671</commentid>
    <comment_count>13</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2022-02-28 09:58:20 -0800</bug_when>
    <thetext>(In reply to Jer Noble from comment #12)
&gt; Created attachment 453400 [details]
&gt; Patch

Obsoleted because I only saw Darin&apos;s comments after uploading.

(In reply to Darin Adler from comment #11)
&gt; Comment on attachment 453396 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=453396&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/UIProcess/Cocoa/UIProcessLogInitializationCocoa.mm:44
&gt; &gt; +    static NeverDestroyed&lt;String&gt; logString;
&gt; &gt; +    static dispatch_once_t onceToken;
&gt; &gt; +    dispatch_once(&amp;onceToken, ^{
&gt; &gt; +        logString = [[NSUserDefaults standardUserDefaults] stringForKey:@&quot;WTFLogging&quot;];
&gt; &gt; +    });
&gt; &gt; +    return logString;
&gt; 
&gt; This is insufficiently thread-safe. Sharing a String across threads still
&gt; isn’t safe even if you initialize safely. But if logString was this:
&gt; 
&gt;     static NeverDestroyed&lt;RetainPtr&lt;NSString&gt;&gt; logString;
&gt; 
&gt; Then that would be thread-safe.

Ugh. It feels like WebKit needs a thread-safe platform-independent string class. It doesn&apos;t really feel like a great result if only ports with access to NSString can safely cache these values.

Alternatively, we can go back to an earlier suggestion and mandate these are only ever called from the main thread.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1846685</commentid>
    <comment_count>14</comment_count>
      <attachid>453404</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2022-02-28 10:17:56 -0800</bug_when>
    <thetext>Created attachment 453404
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1846734</commentid>
    <comment_count>15</comment_count>
      <attachid>453417</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2022-02-28 13:00:04 -0800</bug_when>
    <thetext>Created attachment 453417
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1846760</commentid>
    <comment_count>16</comment_count>
      <attachid>453417</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2022-02-28 13:58:55 -0800</bug_when>
    <thetext>Comment on attachment 453417
Patch

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

&gt; Source/WebKit/UIProcess/Cocoa/UIProcessLogInitializationCocoa.mm:42
&gt; +        logString.get() = [[NSUserDefaults standardUserDefaults] stringForKey:@&quot;WTFLogging&quot;];

Do we need the &quot;.get()&quot; on these lines?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1846785</commentid>
    <comment_count>17</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2022-02-28 14:42:37 -0800</bug_when>
    <thetext>(In reply to Darin Adler from comment #16)
&gt; Comment on attachment 453417 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=453417&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/UIProcess/Cocoa/UIProcessLogInitializationCocoa.mm:42
&gt; &gt; +        logString.get() = [[NSUserDefaults standardUserDefaults] stringForKey:@&quot;WTFLogging&quot;];
&gt; 
&gt; Do we need the &quot;.get()&quot; on these lines?

Yes. Without them, you get a compile error about failing to infer the correct type and assignment operator.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1847080</commentid>
    <comment_count>18</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-03-01 10:13:25 -0800</bug_when>
    <thetext>Committed r290654 (247927@main): &lt;https://commits.webkit.org/247927@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 453417.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1847081</commentid>
    <comment_count>19</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-03-01 10:14:17 -0800</bug_when>
    <thetext>&lt;rdar://problem/89626635&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>453177</attachid>
            <date>2022-02-24 23:39:08 -0800</date>
            <delta_ts>2022-02-25 08:27:27 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237183-20220224233907.patch</filename>
            <type>text/plain</type>
            <size>13235</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwMzQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGVkMTIwMWZhNzdhMTVkZTE4
MmE2NmIyODZlY2UxZjMwMTRiNWFhN2MuLjI2MjcxMmU2MjA5OTYyYjA5NzdjNzhmMGExMzdkZjEz
MTEyZjIyMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzYgQEAKKzIwMjItMDItMjQgIEplciBOb2Js
ZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBBbGxvdyBsb2dnaW5n
IHRvIGJlIGNvbmZpZ3VyZWQgYnkgTlNEZWZhdWx0cyAod2l0aG91dCByZWdyZXNzaW5nIGxhdW5j
aCB0aW1lKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjM3MTgzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
SW4gcjIyMDc4MCwgY29kZSB3YXMgYWRkZWQgdG8gV2ViUHJvY2Vzc1Bvb2xDb2NvYSB0byBleHBs
aWNpdGx5IHBhc3MgdGhlIHJlc3VsdHMgb2YgYSBOU1VzZXJEZWZhdWx0cworICAgICAgICB0byBu
ZXdseSBjcmVhdGVkIFdlYkNvbnRlbnQgcHJvY2Vzc2VzIHRvIGRldGVybWluZSBsb2cgY2hhbm5l
bCBsZXZlbHMuIExhdGVyLCBpbiByMjMyMTU4LCBOU1VzZXJEZWZhdWx0cworICAgICAgICB3ZXJl
IHJlbW92ZWQgZnJvbSB0aGUgZGVmYXVsdCBsb2dMZXZlbFN0cmluZygpIGltcGxlbWVudGF0aW9u
cyBpbiBXVEYsIFdlYkNvcmUsIGFuZCBXZWJLaXQgdG8gaW1wcm92ZQorICAgICAgICBwcm9jZXNz
IGxhdW5jaCB0aW1lIHBlcmZvcm1hbmNlLiBJbiByMjc5Nzk2LCB0aGUgc2FtZSB0ZWNobmlxdWUg
c3VlZCBpbiBXZWJQcm9jZXNzUG9vbENvY29hIHdhcyBhZGRlZAorICAgICAgICB0byBHUFVQcm9j
ZXNzUHJveHlDb2NvYSB0byBwYXNzIHRob3NlIGxvZyBsZXZlbCBzdHJpbmdzIHRvIHRoZSBHUFVQ
cm9jZXNzLiBBbmQgdGhlbiBpbiByMjg2NDg0LCBhbGwgdGhlCisgICAgICAgIHVzZXMgb2YgTlNV
c2VyRGVmYXVsdHMgd2VyZSByZW1vdmVkIGZyb20gV2ViUHJvY2Vzc1Bvb2xDb2NvYSBhbmQgR1BV
UHJvY2Vzc1Byb3h5Q29jb2Egd2VyZSByZW1vdmVkLAorICAgICAgICByZW1vdmluZyB0aGUgYWJp
bGl0eSB0byBpbmNyZWFzZSB0aGUgbG9nIGNoYW5uZWwgbGV2ZWxzIGF0IHJ1bnRpbWUgdGhyb3Vn
aCBOU1VzZXJEZWZ1YWx0cy4KKworICAgICAgICBBZGQgYmFjayBpbiB0aGUgYWJpbGl0eSB0byBk
ZWZpbmUgbG9nIGxldmVscyBmb3IgdGhlIFVJUHJvY2VzcyBhbmQgYWxsIEF1eGlsaWFyeVByb2Nl
c3NlcyB3aXRob3V0CisgICAgICAgIHJlZ3Jlc3NpbmcgbGF1bmNoIHRpbWUgYnkgb25seSBjaGVj
a2luZyB0aGUgTlNVc2VyRGVmYXVsdCBvbmNlLCBvbmx5IGluIHRoZSBVSVByb2Nlc3MsIHN0b3Jp
bmcgdGhlIHJlc3VsdAorICAgICAgICBpbiBhIHN0YXRpYyB2YXJpYWJsZSwgYW5kIHBhc3Npbmcg
dGhlIHJlc3VsdHMgb2YgdGhhdCBjaGVjayB0byBhbGwgQXV4aWxpYXJ5UHJvY2Vzc2VzIGF0IGNy
ZWF0aW9uIHRpbWUuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQXV4aWxpYXJ5UHJvY2Vzc1Byb3h5
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6QXV4aWxpYXJ5UHJvY2Vzc1Byb3h5OjphdXhpbGlhcnlQ
cm9jZXNzUGFyYW1ldGVycyk6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1VJUHJvY2Vzc0xv
Z0luaXRpYWxpemF0aW9uQ29jb2EubW06IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpVSVByb2Nl
c3M6Ond0ZkxvZ0xldmVsU3RyaW5nKToKKyAgICAgICAgKFdlYktpdDo6VUlQcm9jZXNzOjp3ZWJD
b3JlTG9nTGV2ZWxTdHJpbmcpOgorICAgICAgICAoV2ViS2l0OjpVSVByb2Nlc3M6OndlYktpdExv
Z0xldmVsU3RyaW5nKToKKyAgICAgICAgKiBVSVByb2Nlc3MvVUlQcm9jZXNzTG9nSW5pdGlhbGl6
YXRpb24uY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6VUlQcm9jZXNzOjppbml0aWFsaXpl
TG9nZ2luZ0lmTmVjZXNzYXJ5KToKKyAgICAgICAgKFdlYktpdDo6VUlQcm9jZXNzOjp3dGZMb2dM
ZXZlbFN0cmluZyk6CisgICAgICAgIChXZWJLaXQ6OlVJUHJvY2Vzczo6d2ViQ29yZUxvZ0xldmVs
U3RyaW5nKToKKyAgICAgICAgKFdlYktpdDo6VUlQcm9jZXNzOjp3ZWJLaXRMb2dMZXZlbFN0cmlu
Zyk6CisgICAgICAgICogVUlQcm9jZXNzL1VJUHJvY2Vzc0xvZ0luaXRpYWxpemF0aW9uLmg6IEFk
ZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHA6CisKIDIwMjEtMTIt
MTQgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgW1JlZmFjdG9y
XSBBZG9wdCBMb2dnZXJIZWxwZXIgaW4gTGVnYWN5IEVNRSBjbGFzc2VzCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXhpbGlhcnlQcm9jZXNzUHJveHkuY3BwIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQXV4aWxpYXJ5UHJvY2Vzc1Byb3h5LmNwcAppbmRleCBmNTVmYzI2
Mzk0ZThiMjc1NzRiNTk2MGFkODU4NzQ2MWNjNGJkYWM3Li5jYzBkOWQ2Y2ZkYzk5NzNlOTlhNjg5
NjkzOTA4MDAzN2MxOWI3YjhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
dXhpbGlhcnlQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1
eGlsaWFyeVByb2Nlc3NQcm94eS5jcHAKQEAgLTI3LDEyICsyNywxMCBAQAogI2luY2x1ZGUgIkF1
eGlsaWFyeVByb2Nlc3NQcm94eS5oIgogCiAjaW5jbHVkZSAiQXV4aWxpYXJ5UHJvY2Vzc01lc3Nh
Z2VzLmgiCi0jaW5jbHVkZSAiTG9nSW5pdGlhbGl6YXRpb24uaCIKICNpbmNsdWRlICJMb2dnaW5n
LmgiCisjaW5jbHVkZSAiVUlQcm9jZXNzTG9nSW5pdGlhbGl6YXRpb24uaCIKICNpbmNsdWRlICJX
ZWJQYWdlUHJveHkuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHkuaCIKLSNpbmNsdWRlIDxX
ZWJDb3JlL0xvZ0luaXRpYWxpemF0aW9uLmg+Ci0jaW5jbHVkZSA8d3RmL0xvZ0luaXRpYWxpemF0
aW9uLmg+CiAjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KIAogI2lmIFBMQVRGT1JNKENPQ09BKQpA
QCAtNDA4LDkgKzQwNiw5IEBAIEF1eGlsaWFyeVByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMgQXV4
aWxpYXJ5UHJvY2Vzc1Byb3h5OjphdXhpbGlhcnlQcm9jZXNzUGFyYW1lCiB7CiAgICAgQXV4aWxp
YXJ5UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyBwYXJhbWV0ZXJzOwogI2lmICFMT0dfRElTQUJM
RUQgfHwgIVJFTEVBU0VfTE9HX0RJU0FCTEVECi0gICAgcGFyYW1ldGVycy53dGZMb2dnaW5nQ2hh
bm5lbHMgPSBXVEY6OmxvZ0xldmVsU3RyaW5nKCk7Ci0gICAgcGFyYW1ldGVycy53ZWJDb3JlTG9n
Z2luZ0NoYW5uZWxzID0gV2ViQ29yZTo6bG9nTGV2ZWxTdHJpbmcoKTsKLSAgICBwYXJhbWV0ZXJz
LndlYktpdExvZ2dpbmdDaGFubmVscyA9IFdlYktpdDo6bG9nTGV2ZWxTdHJpbmcoKTsKKyAgICBw
YXJhbWV0ZXJzLnd0ZkxvZ2dpbmdDaGFubmVscyA9IFVJUHJvY2Vzczo6d3RmTG9nTGV2ZWxTdHJp
bmcoKTsKKyAgICBwYXJhbWV0ZXJzLndlYkNvcmVMb2dnaW5nQ2hhbm5lbHMgPSBVSVByb2Nlc3M6
OndlYkNvcmVMb2dMZXZlbFN0cmluZygpOworICAgIHBhcmFtZXRlcnMud2ViS2l0TG9nZ2luZ0No
YW5uZWxzID0gVUlQcm9jZXNzOjp3ZWJLaXRMb2dMZXZlbFN0cmluZygpOwogI2VuZGlmCiAgICAg
cmV0dXJuIHBhcmFtZXRlcnM7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Db2NvYS9VSVByb2Nlc3NMb2dJbml0aWFsaXphdGlvbkNvY29hLm1tIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQ29jb2EvVUlQcm9jZXNzTG9nSW5pdGlhbGl6YXRpb25Db2NvYS5tbQpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi44YjllOTcwNDRkNzQwZmUyOTRjN2NmYzdlYWZiZDgzYjQyZjYzN2RjCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlQcm9jZXNzTG9nSW5p
dGlhbGl6YXRpb25Db2NvYS5tbQpAQCAtMCwwICsxLDU5IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdt
YSBvbmNlCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiVUlQcm9jZXNzTG9nSW5pdGlh
bGl6YXRpb24uaCIKKworI2lmIFBMQVRGT1JNKENPQ09BKQorCituYW1lc3BhY2UgV2ViS2l0IHsK
KworbmFtZXNwYWNlIFVJUHJvY2VzcyB7CisKK1N0cmluZyB3dGZMb2dMZXZlbFN0cmluZygpCit7
CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmluZz4gbG9nU3RyaW5nID0gW1tOU1VzZXJE
ZWZhdWx0cyBzdGFuZGFyZFVzZXJEZWZhdWx0c10gc3RyaW5nRm9yS2V5OkAiV1RGTG9nZ2luZyJd
OworICAgIHJldHVybiBsb2dTdHJpbmc7Cit9CisKK1N0cmluZyB3ZWJDb3JlTG9nTGV2ZWxTdHJp
bmcoKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IGxvZ1N0cmluZyA9IFtb
TlNVc2VyRGVmYXVsdHMgc3RhbmRhcmRVc2VyRGVmYXVsdHNdIHN0cmluZ0ZvcktleTpAIldlYkNv
cmVMb2dnaW5nIl07CisgICAgcmV0dXJuIGxvZ1N0cmluZzsKK30KKworU3RyaW5nIHdlYktpdExv
Z0xldmVsU3RyaW5nKCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiBsb2dT
dHJpbmcgPSBbW05TVXNlckRlZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRzXSBzdHJpbmdGb3JL
ZXk6QCJXZWJLaXQyTG9nZ2luZyJdOworICAgIHJldHVybiBsb2dTdHJpbmc7Cit9CisKK30KKwor
fQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VJUHJvY2Vz
c0xvZ0luaXRpYWxpemF0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VJUHJvY2Vz
c0xvZ0luaXRpYWxpemF0aW9uLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kZDIyYTY0MmYzMjQxNDRlMjkwZjkw
OGIwMTI1ZTI3OGEzYmYzYjdlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvVUlQcm9jZXNzTG9nSW5pdGlhbGl6YXRpb24uY3BwCkBAIC0wLDAgKzEsNzIgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVUlQcm9jZXNzTG9nSW5p
dGlhbGl6YXRpb24uaCIKKworI2luY2x1ZGUgIkxvZ0luaXRpYWxpemF0aW9uLmgiCisjaW5jbHVk
ZSA8V2ViQ29yZS9Mb2dJbml0aWFsaXphdGlvbi5oPgorI2luY2x1ZGUgPHd0Zi9Mb2dJbml0aWFs
aXphdGlvbi5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworbmFtZXNwYWNlIFVJUHJvY2VzcyB7
CisKK3ZvaWQgaW5pdGlhbGl6ZUxvZ2dpbmdJZk5lY2Vzc2FyeSgpCit7CisjaWYgIUxPR19ESVNB
QkxFRCB8fCAhUkVMRUFTRV9MT0dfRElTQUJMRUQKKyAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcg
b25jZUZsYWc7CisgICAgc3RkOjpjYWxsX29uY2Uob25jZUZsYWcsIFtdIHsKKyAgICAgICAgV1RG
Ojpsb2dDaGFubmVscygpLmluaXRpYWxpemVMb2dDaGFubmVsc0lmTmVjZXNzYXJ5KHd0ZkxvZ0xl
dmVsU3RyaW5nKCkpOworICAgICAgICBXZWJDb3JlOjpsb2dDaGFubmVscygpLmluaXRpYWxpemVM
b2dDaGFubmVsc0lmTmVjZXNzYXJ5KHdlYkNvcmVMb2dMZXZlbFN0cmluZygpKTsKKyAgICAgICAg
V2ViS2l0Ojpsb2dDaGFubmVscygpLmluaXRpYWxpemVMb2dDaGFubmVsc0lmTmVjZXNzYXJ5KHdl
YktpdExvZ0xldmVsU3RyaW5nKCkpOworICAgIH0pOworI2VuZGlmIC8vICFMT0dfRElTQUJMRUQg
fHwgIVJFTEVBU0VfTE9HX0RJU0FCTEVECit9CisKKyNpZiAhUExBVEZPUk0oQ09DT0EpCitTdHJp
bmcgd3RmTG9nTGV2ZWxTdHJpbmcoKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJp
bmc+IGxvZ1N0cmluZyA9IFdURjo6bG9nU3RyaW5nKCk7CisgICAgcmV0dXJuIGxvZ1N0cmluZzsK
K30KKworU3RyaW5nIHdlYkNvcmVMb2dMZXZlbFN0cmluZygpCit7CisgICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPFN0cmluZz4gbG9nU3RyaW5nID0gV2ViQ29yZTo6bG9nU3RyaW5nKCk7CisgICAg
cmV0dXJuIGxvZ1N0cmluZzsKK30KKworU3RyaW5nIHdlYktpdExvZ0xldmVsU3RyaW5nKCkKK3sK
KyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiBsb2dTdHJpbmcgPSBXZWJLaXQ6Omxv
Z1N0cmluZygpOworICAgIHJldHVybiBsb2dTdHJpbmc7Cit9CisjZW5kaWYKKworfQorCit9CisK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VJUHJvY2Vzc0xvZ0luaXRpYWxp
emF0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9VSVByb2Nlc3NMb2dJbml0aWFsaXph
dGlvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjY5YTUyMzNmYjc3OWU1Mjg0MmI5ZDFmNGEyYTcxNjRhNjdlZmQz
OTgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9VSVByb2Nlc3NM
b2dJbml0aWFsaXphdGlvbi5oCkBAIC0wLDAgKzEsNDcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21h
IG9uY2UKKworI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisKKy8vIE5PVEU6IFRoZXNlIG1ldGhv
ZHMgY29uZmlndXJlIGxvZ2dpbmcgc2VwYXJhdGVseSBhbmQgZGlmZmVyZW50bHkgZm9yIHRoZSBV
SVByb2Nlc3MKKy8vIHRoYW4gc2ltaWxhciBtZXRob2RzIGVsc2V3aGVyZS4gU3BlY2lmaWNhbGx5
LCB0aGUgbG9nIHN0cmluZ3MgcmV0dXJuZWQgZnJvbSB0aGVzZQorLy8gbWV0aG9kcyBhcmUgaW5p
dGlhbGl6ZWQgb25jZSwgcmF0aGVyIHRoYW4gcmVwZWF0ZWRseSwgYW5kIGFyZSBpbnRlbmRlZCB0
byBiZSBwYXNzZWQKKy8vIHRocm91Z2ggdG8gQXV4aWxpYXJ5UHJvY2Vzc2VzIHRvIGZ1cnRoZXIg
cmVkdWNlIHRoZSBydW50aW1lIGNvc3Qgb2YgbG9nIHN0cmluZworLy8gaW5pdGlhbGl6YXRpb24u
CisKK25hbWVzcGFjZSBXZWJLaXQgeworCituYW1lc3BhY2UgVUlQcm9jZXNzIHsKKwordm9pZCBp
bml0aWFsaXplTG9nZ2luZ0lmTmVjZXNzYXJ5KCk7CitTdHJpbmcgd3RmTG9nTGV2ZWxTdHJpbmco
KTsKK1N0cmluZyB3ZWJDb3JlTG9nTGV2ZWxTdHJpbmcoKTsKK1N0cmluZyB3ZWJLaXRMb2dMZXZl
bFN0cmluZygpOworCit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlByb2Nlc3NQb29sLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
b29sLmNwcAppbmRleCA2MWJkMzBhMzY0MTQ3M2M1ZGIyYzU3NDMwZTkzY2I3ZTI2NjNhZDg5Li4w
NTQwOTcwN2FmZGUwMDY5Zjk1NWRhOTdhMmQ3NDFhNTE0NGU3MzBlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCkBAIC00NSw3ICs0NSw2IEBACiAjaW5jbHVk
ZSAiR2FtZXBhZERhdGEuaCIKICNpbmNsdWRlICJIaWdoUGVyZm9ybWFuY2VHcmFwaGljc1VzYWdl
U2FtcGxlci5oIgogI2luY2x1ZGUgIkxlZ2FjeUdsb2JhbFNldHRpbmdzLmgiCi0jaW5jbHVkZSAi
TG9nSW5pdGlhbGl6YXRpb24uaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTmV0
d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCIKICNpbmNsdWRlICJOZXR3b3JrUHJvY2Vz
c01lc3NhZ2VzLmgiCkBAIC01NSw2ICs1NCw3IEBACiAjaW5jbHVkZSAiVGV4dENoZWNrZXIuaCIK
ICNpbmNsdWRlICJVSUdhbWVwYWQuaCIKICNpbmNsdWRlICJVSUdhbWVwYWRQcm92aWRlci5oIgor
I2luY2x1ZGUgIlVJUHJvY2Vzc0xvZ0luaXRpYWxpemF0aW9uLmgiCiAjaW5jbHVkZSAiV0tDb250
ZXh0UHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYkF1dG9tYXRpb25TZXNzaW9uLmgiCiAjaW5jbHVk
ZSAiV2ViQmFja0ZvcndhcmRDYWNoZS5oIgpAQCAtODQsNyArODQsNiBAQAogI2luY2x1ZGUgIldl
YnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlND
SW5saW5lcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQXBwbGljYXRpb25DYWNoZVN0b3JhZ2UuaD4K
LSNpbmNsdWRlIDxXZWJDb3JlL0xvZ0luaXRpYWxpemF0aW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9Nb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTmV0
d29ya1N0b3JhZ2VTZXNzaW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybVNjcmVlbi5o
PgpAQCAtOTYsNyArOTUsNiBAQAogI2luY2x1ZGUgPFdlYkNvcmUvUnVudGltZUFwcGxpY2F0aW9u
Q2hlY2tzLmg+CiAjaW5jbHVkZSA8cGFsL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUgPHd0Zi9DYWxs
YmFja0FnZ3JlZ2F0b3IuaD4KLSNpbmNsdWRlIDx3dGYvTG9nSW5pdGlhbGl6YXRpb24uaD4KICNp
bmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5o
PgogI2luY2x1ZGUgPHd0Zi9Qcm9jZXNzUHJpdmlsZWdlLmg+CkBAIC0yNjgsOSArMjY2LDcgQEAg
V2ViUHJvY2Vzc1Bvb2w6OldlYlByb2Nlc3NQb29sKEFQSTo6UHJvY2Vzc1Bvb2xDb25maWd1cmF0
aW9uJiBjb25maWd1cmF0aW9uKQogICAgIHJlc29sdmVQYXRoc0ZvclNhbmRib3hFeHRlbnNpb25z
KCk7CiAKICNpZiAhTE9HX0RJU0FCTEVEIHx8ICFSRUxFQVNFX0xPR19ESVNBQkxFRAotICAgIFdU
Rjo6bG9nQ2hhbm5lbHMoKS5pbml0aWFsaXplTG9nQ2hhbm5lbHNJZk5lY2Vzc2FyeSgpOwotICAg
IFdlYkNvcmU6OmxvZ0NoYW5uZWxzKCkuaW5pdGlhbGl6ZUxvZ0NoYW5uZWxzSWZOZWNlc3Nhcnko
KTsKLSAgICBXZWJLaXQ6OmxvZ0NoYW5uZWxzKCkuaW5pdGlhbGl6ZUxvZ0NoYW5uZWxzSWZOZWNl
c3NhcnkoKTsKKyAgICBVSVByb2Nlc3M6OmluaXRpYWxpemVMb2dnaW5nSWZOZWNlc3NhcnkoKTsK
ICNlbmRpZiAvLyAhTE9HX0RJU0FCTEVEIHx8ICFSRUxFQVNFX0xPR19ESVNBQkxFRAogCiAjaWZu
ZGVmIE5ERUJVRwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>453216</attachid>
            <date>2022-02-25 08:27:29 -0800</date>
            <delta_ts>2022-02-25 08:47:14 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237183-20220225082728.patch</filename>
            <type>text/plain</type>
            <size>14455</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwMzQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGVkMTIwMWZhNzdhMTVkZTE4
MmE2NmIyODZlY2UxZjMwMTRiNWFhN2MuLjI2MjcxMmU2MjA5OTYyYjA5NzdjNzhmMGExMzdkZjEz
MTEyZjIyMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzYgQEAKKzIwMjItMDItMjQgIEplciBOb2Js
ZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBBbGxvdyBsb2dnaW5n
IHRvIGJlIGNvbmZpZ3VyZWQgYnkgTlNEZWZhdWx0cyAod2l0aG91dCByZWdyZXNzaW5nIGxhdW5j
aCB0aW1lKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjM3MTgzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
SW4gcjIyMDc4MCwgY29kZSB3YXMgYWRkZWQgdG8gV2ViUHJvY2Vzc1Bvb2xDb2NvYSB0byBleHBs
aWNpdGx5IHBhc3MgdGhlIHJlc3VsdHMgb2YgYSBOU1VzZXJEZWZhdWx0cworICAgICAgICB0byBu
ZXdseSBjcmVhdGVkIFdlYkNvbnRlbnQgcHJvY2Vzc2VzIHRvIGRldGVybWluZSBsb2cgY2hhbm5l
bCBsZXZlbHMuIExhdGVyLCBpbiByMjMyMTU4LCBOU1VzZXJEZWZhdWx0cworICAgICAgICB3ZXJl
IHJlbW92ZWQgZnJvbSB0aGUgZGVmYXVsdCBsb2dMZXZlbFN0cmluZygpIGltcGxlbWVudGF0aW9u
cyBpbiBXVEYsIFdlYkNvcmUsIGFuZCBXZWJLaXQgdG8gaW1wcm92ZQorICAgICAgICBwcm9jZXNz
IGxhdW5jaCB0aW1lIHBlcmZvcm1hbmNlLiBJbiByMjc5Nzk2LCB0aGUgc2FtZSB0ZWNobmlxdWUg
c3VlZCBpbiBXZWJQcm9jZXNzUG9vbENvY29hIHdhcyBhZGRlZAorICAgICAgICB0byBHUFVQcm9j
ZXNzUHJveHlDb2NvYSB0byBwYXNzIHRob3NlIGxvZyBsZXZlbCBzdHJpbmdzIHRvIHRoZSBHUFVQ
cm9jZXNzLiBBbmQgdGhlbiBpbiByMjg2NDg0LCBhbGwgdGhlCisgICAgICAgIHVzZXMgb2YgTlNV
c2VyRGVmYXVsdHMgd2VyZSByZW1vdmVkIGZyb20gV2ViUHJvY2Vzc1Bvb2xDb2NvYSBhbmQgR1BV
UHJvY2Vzc1Byb3h5Q29jb2Egd2VyZSByZW1vdmVkLAorICAgICAgICByZW1vdmluZyB0aGUgYWJp
bGl0eSB0byBpbmNyZWFzZSB0aGUgbG9nIGNoYW5uZWwgbGV2ZWxzIGF0IHJ1bnRpbWUgdGhyb3Vn
aCBOU1VzZXJEZWZ1YWx0cy4KKworICAgICAgICBBZGQgYmFjayBpbiB0aGUgYWJpbGl0eSB0byBk
ZWZpbmUgbG9nIGxldmVscyBmb3IgdGhlIFVJUHJvY2VzcyBhbmQgYWxsIEF1eGlsaWFyeVByb2Nl
c3NlcyB3aXRob3V0CisgICAgICAgIHJlZ3Jlc3NpbmcgbGF1bmNoIHRpbWUgYnkgb25seSBjaGVj
a2luZyB0aGUgTlNVc2VyRGVmYXVsdCBvbmNlLCBvbmx5IGluIHRoZSBVSVByb2Nlc3MsIHN0b3Jp
bmcgdGhlIHJlc3VsdAorICAgICAgICBpbiBhIHN0YXRpYyB2YXJpYWJsZSwgYW5kIHBhc3Npbmcg
dGhlIHJlc3VsdHMgb2YgdGhhdCBjaGVjayB0byBhbGwgQXV4aWxpYXJ5UHJvY2Vzc2VzIGF0IGNy
ZWF0aW9uIHRpbWUuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQXV4aWxpYXJ5UHJvY2Vzc1Byb3h5
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6QXV4aWxpYXJ5UHJvY2Vzc1Byb3h5OjphdXhpbGlhcnlQ
cm9jZXNzUGFyYW1ldGVycyk6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1VJUHJvY2Vzc0xv
Z0luaXRpYWxpemF0aW9uQ29jb2EubW06IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpVSVByb2Nl
c3M6Ond0ZkxvZ0xldmVsU3RyaW5nKToKKyAgICAgICAgKFdlYktpdDo6VUlQcm9jZXNzOjp3ZWJD
b3JlTG9nTGV2ZWxTdHJpbmcpOgorICAgICAgICAoV2ViS2l0OjpVSVByb2Nlc3M6OndlYktpdExv
Z0xldmVsU3RyaW5nKToKKyAgICAgICAgKiBVSVByb2Nlc3MvVUlQcm9jZXNzTG9nSW5pdGlhbGl6
YXRpb24uY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6VUlQcm9jZXNzOjppbml0aWFsaXpl
TG9nZ2luZ0lmTmVjZXNzYXJ5KToKKyAgICAgICAgKFdlYktpdDo6VUlQcm9jZXNzOjp3dGZMb2dM
ZXZlbFN0cmluZyk6CisgICAgICAgIChXZWJLaXQ6OlVJUHJvY2Vzczo6d2ViQ29yZUxvZ0xldmVs
U3RyaW5nKToKKyAgICAgICAgKFdlYktpdDo6VUlQcm9jZXNzOjp3ZWJLaXRMb2dMZXZlbFN0cmlu
Zyk6CisgICAgICAgICogVUlQcm9jZXNzL1VJUHJvY2Vzc0xvZ0luaXRpYWxpemF0aW9uLmg6IEFk
ZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHA6CisKIDIwMjEtMTIt
MTQgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgW1JlZmFjdG9y
XSBBZG9wdCBMb2dnZXJIZWxwZXIgaW4gTGVnYWN5IEVNRSBjbGFzc2VzCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAppbmRl
eCBmNzgxMzM2ZTVlYzgyMzIwZmEwNTVmZmE3M2Y5MTAxZGM4OGQ2NDgxLi5lMjRlZDVjMjRlODM0
NDMwNTRiZDhjOTU4Y2E1MTQ2NjIzYjJmMDU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1Nv
dXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKQEAgLTQyNiw2ICs0MjYs
NyBAQCBVSVByb2Nlc3MvU3lzdGVtUHJldmlld0NvbnRyb2xsZXIuY3BwCiBVSVByb2Nlc3MvU3Bl
ZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uTWFuYWdlci5jcHAKIFVJUHJvY2Vzcy9UZXh0Q2hlY2tl
ci5jcHAKIFVJUHJvY2Vzcy9UZXh0Q2hlY2tlckNvbXBsZXRpb24uY3BwCitVSVByb2Nlc3MvVUlQ
cm9jZXNzTG9nSW5pdGlhbGl6YXRpb24uY3BwCiBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lv
bkNoZWNrUHJveHkuY3BwCiBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyUHJveHkuY3BwCiBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5j
cHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dCBiL1NvdXJjZS9X
ZWJLaXQvU291cmNlc0NvY29hLnR4dAppbmRleCAzOWZlYTkxY2U1NjE3NTgxNjBhZDkyMTg5ODk0
NTNlNTgzZWQ2NDYxLi4yYzYwNjJjZjBhYWM0YjE5ZDRiZDJlMzE4OGVhYjk2OWI0OTNlZjc5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKKysrIGIvU291cmNlL1dl
YktpdC9Tb3VyY2VzQ29jb2EudHh0CkBAIC00MjMsNiArNDIzLDcgQEAgVUlQcm9jZXNzL0NvY29h
L1Nlc3Npb25TdGF0ZUNvZGluZy5tbQogVUlQcm9jZXNzL0NvY29hL1N5c3RlbVByZXZpZXdDb250
cm9sbGVyQ29jb2EubW0KIFVJUHJvY2Vzcy9Db2NvYS9UZXh0Q2hlY2tpbmdDb250cm9sbGVyLm1t
CiBVSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbQorVUlQcm9jZXNzL0NvY29hL1VJUHJvY2Vz
c0xvZ0luaXRpYWxpemF0aW9uQ29jb2EubW0KIFVJUHJvY2Vzcy9Db2NvYS9VSVJlbW90ZU9iamVj
dFJlZ2lzdHJ5LmNwcAogVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJv
eHkuY3BwCiBVSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
UHJveHkubW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1eGlsaWFyeVBy
b2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXhpbGlhcnlQcm9jZXNz
UHJveHkuY3BwCmluZGV4IGY1NWZjMjYzOTRlOGIyNzU3NGI1OTYwYWQ4NTg3NDYxY2M0YmRhYzcu
LmNjMGQ5ZDZjZmRjOTk3M2U5OWE2ODk2OTM5MDgwMDM3YzE5YjdiOGUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1eGlsaWFyeVByb2Nlc3NQcm94eS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV4aWxpYXJ5UHJvY2Vzc1Byb3h5LmNwcApAQCAtMjcsMTIg
KzI3LDEwIEBACiAjaW5jbHVkZSAiQXV4aWxpYXJ5UHJvY2Vzc1Byb3h5LmgiCiAKICNpbmNsdWRl
ICJBdXhpbGlhcnlQcm9jZXNzTWVzc2FnZXMuaCIKLSNpbmNsdWRlICJMb2dJbml0aWFsaXphdGlv
bi5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKyNpbmNsdWRlICJVSVByb2Nlc3NMb2dJbml0aWFs
aXphdGlvbi5oIgogI2luY2x1ZGUgIldlYlBhZ2VQcm94eS5oIgogI2luY2x1ZGUgIldlYlByb2Nl
c3NQcm94eS5oIgotI2luY2x1ZGUgPFdlYkNvcmUvTG9nSW5pdGlhbGl6YXRpb24uaD4KLSNpbmNs
dWRlIDx3dGYvTG9nSW5pdGlhbGl6YXRpb24uaD4KICNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgog
CiAjaWYgUExBVEZPUk0oQ09DT0EpCkBAIC00MDgsOSArNDA2LDkgQEAgQXV4aWxpYXJ5UHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVycyBBdXhpbGlhcnlQcm9jZXNzUHJveHk6OmF1eGlsaWFyeVByb2Nl
c3NQYXJhbWUKIHsKICAgICBBdXhpbGlhcnlQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzIHBhcmFt
ZXRlcnM7CiAjaWYgIUxPR19ESVNBQkxFRCB8fCAhUkVMRUFTRV9MT0dfRElTQUJMRUQKLSAgICBw
YXJhbWV0ZXJzLnd0ZkxvZ2dpbmdDaGFubmVscyA9IFdURjo6bG9nTGV2ZWxTdHJpbmcoKTsKLSAg
ICBwYXJhbWV0ZXJzLndlYkNvcmVMb2dnaW5nQ2hhbm5lbHMgPSBXZWJDb3JlOjpsb2dMZXZlbFN0
cmluZygpOwotICAgIHBhcmFtZXRlcnMud2ViS2l0TG9nZ2luZ0NoYW5uZWxzID0gV2ViS2l0Ojps
b2dMZXZlbFN0cmluZygpOworICAgIHBhcmFtZXRlcnMud3RmTG9nZ2luZ0NoYW5uZWxzID0gVUlQ
cm9jZXNzOjp3dGZMb2dMZXZlbFN0cmluZygpOworICAgIHBhcmFtZXRlcnMud2ViQ29yZUxvZ2dp
bmdDaGFubmVscyA9IFVJUHJvY2Vzczo6d2ViQ29yZUxvZ0xldmVsU3RyaW5nKCk7CisgICAgcGFy
YW1ldGVycy53ZWJLaXRMb2dnaW5nQ2hhbm5lbHMgPSBVSVByb2Nlc3M6OndlYktpdExvZ0xldmVs
U3RyaW5nKCk7CiAjZW5kaWYKICAgICByZXR1cm4gcGFyYW1ldGVyczsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJUHJvY2Vzc0xvZ0luaXRpYWxpemF0aW9u
Q29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSVByb2Nlc3NMb2dJbml0
aWFsaXphdGlvbkNvY29hLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhiOWU5NzA0NGQ3NDBmZTI5NGM3Y2ZjN2Vh
ZmJkODNiNDJmNjM3ZGMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Db2NvYS9VSVByb2Nlc3NMb2dJbml0aWFsaXphdGlvbkNvY29hLm1tCkBAIC0wLDAgKzEsNTkg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1w
b3J0ICJVSVByb2Nlc3NMb2dJbml0aWFsaXphdGlvbi5oIgorCisjaWYgUExBVEZPUk0oQ09DT0Ep
CisKK25hbWVzcGFjZSBXZWJLaXQgeworCituYW1lc3BhY2UgVUlQcm9jZXNzIHsKKworU3RyaW5n
IHd0ZkxvZ0xldmVsU3RyaW5nKCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5n
PiBsb2dTdHJpbmcgPSBbW05TVXNlckRlZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRzXSBzdHJp
bmdGb3JLZXk6QCJXVEZMb2dnaW5nIl07CisgICAgcmV0dXJuIGxvZ1N0cmluZzsKK30KKworU3Ry
aW5nIHdlYkNvcmVMb2dMZXZlbFN0cmluZygpCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVk
PFN0cmluZz4gbG9nU3RyaW5nID0gW1tOU1VzZXJEZWZhdWx0cyBzdGFuZGFyZFVzZXJEZWZhdWx0
c10gc3RyaW5nRm9yS2V5OkAiV2ViQ29yZUxvZ2dpbmciXTsKKyAgICByZXR1cm4gbG9nU3RyaW5n
OworfQorCitTdHJpbmcgd2ViS2l0TG9nTGV2ZWxTdHJpbmcoKQoreworICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxTdHJpbmc+IGxvZ1N0cmluZyA9IFtbTlNVc2VyRGVmYXVsdHMgc3RhbmRhcmRV
c2VyRGVmYXVsdHNdIHN0cmluZ0ZvcktleTpAIldlYktpdDJMb2dnaW5nIl07CisgICAgcmV0dXJu
IGxvZ1N0cmluZzsKK30KKworfQorCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvVUlQcm9jZXNzTG9nSW5pdGlhbGl6YXRpb24uY3BwIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvVUlQcm9jZXNzTG9nSW5pdGlhbGl6YXRpb24uY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmRkMjJhNjQyZjMyNDE0NGUyOTBmOTA4YjAxMjVlMjc4YTNiZjNiN2UKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9VSVByb2Nlc3NMb2dJbml0aWFsaXphdGlvbi5j
cHAKQEAgLTAsMCArMSw3MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMiBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJVSVByb2Nlc3NMb2dJbml0aWFsaXphdGlvbi5oIgorCisjaW5jbHVkZSAiTG9nSW5p
dGlhbGl6YXRpb24uaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0xvZ0luaXRpYWxpemF0aW9uLmg+Cisj
aW5jbHVkZSA8d3RmL0xvZ0luaXRpYWxpemF0aW9uLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgewor
CituYW1lc3BhY2UgVUlQcm9jZXNzIHsKKwordm9pZCBpbml0aWFsaXplTG9nZ2luZ0lmTmVjZXNz
YXJ5KCkKK3sKKyNpZiAhTE9HX0RJU0FCTEVEIHx8ICFSRUxFQVNFX0xPR19ESVNBQkxFRAorICAg
IHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlRmxhZzsKKyAgICBzdGQ6OmNhbGxfb25jZShvbmNl
RmxhZywgW10geworICAgICAgICBXVEY6OmxvZ0NoYW5uZWxzKCkuaW5pdGlhbGl6ZUxvZ0NoYW5u
ZWxzSWZOZWNlc3Nhcnkod3RmTG9nTGV2ZWxTdHJpbmcoKSk7CisgICAgICAgIFdlYkNvcmU6Omxv
Z0NoYW5uZWxzKCkuaW5pdGlhbGl6ZUxvZ0NoYW5uZWxzSWZOZWNlc3Nhcnkod2ViQ29yZUxvZ0xl
dmVsU3RyaW5nKCkpOworICAgICAgICBXZWJLaXQ6OmxvZ0NoYW5uZWxzKCkuaW5pdGlhbGl6ZUxv
Z0NoYW5uZWxzSWZOZWNlc3Nhcnkod2ViS2l0TG9nTGV2ZWxTdHJpbmcoKSk7CisgICAgfSk7Cisj
ZW5kaWYgLy8gIUxPR19ESVNBQkxFRCB8fCAhUkVMRUFTRV9MT0dfRElTQUJMRUQKK30KKworI2lm
ICFQTEFURk9STShDT0NPQSkKK1N0cmluZyB3dGZMb2dMZXZlbFN0cmluZygpCit7CisgICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPFN0cmluZz4gbG9nU3RyaW5nID0gV1RGOjpsb2dTdHJpbmcoKTsK
KyAgICByZXR1cm4gbG9nU3RyaW5nOworfQorCitTdHJpbmcgd2ViQ29yZUxvZ0xldmVsU3RyaW5n
KCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiBsb2dTdHJpbmcgPSBXZWJD
b3JlOjpsb2dTdHJpbmcoKTsKKyAgICByZXR1cm4gbG9nU3RyaW5nOworfQorCitTdHJpbmcgd2Vi
S2l0TG9nTGV2ZWxTdHJpbmcoKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+
IGxvZ1N0cmluZyA9IFdlYktpdDo6bG9nU3RyaW5nKCk7CisgICAgcmV0dXJuIGxvZ1N0cmluZzsK
K30KKyNlbmRpZgorCit9CisKK30KKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvVUlQcm9jZXNzTG9nSW5pdGlhbGl6YXRpb24uaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1VJUHJvY2Vzc0xvZ0luaXRpYWxpemF0aW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjlhNTIzM2ZiNzc5ZTUy
ODQyYjlkMWY0YTJhNzE2NGE2N2VmZDM5OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1VJUHJvY2Vzc0xvZ0luaXRpYWxpemF0aW9uLmgKQEAgLTAsMCArMSw0NyBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4K
KworLy8gTk9URTogVGhlc2UgbWV0aG9kcyBjb25maWd1cmUgbG9nZ2luZyBzZXBhcmF0ZWx5IGFu
ZCBkaWZmZXJlbnRseSBmb3IgdGhlIFVJUHJvY2VzcworLy8gdGhhbiBzaW1pbGFyIG1ldGhvZHMg
ZWxzZXdoZXJlLiBTcGVjaWZpY2FsbHksIHRoZSBsb2cgc3RyaW5ncyByZXR1cm5lZCBmcm9tIHRo
ZXNlCisvLyBtZXRob2RzIGFyZSBpbml0aWFsaXplZCBvbmNlLCByYXRoZXIgdGhhbiByZXBlYXRl
ZGx5LCBhbmQgYXJlIGludGVuZGVkIHRvIGJlIHBhc3NlZAorLy8gdGhyb3VnaCB0byBBdXhpbGlh
cnlQcm9jZXNzZXMgdG8gZnVydGhlciByZWR1Y2UgdGhlIHJ1bnRpbWUgY29zdCBvZiBsb2cgc3Ry
aW5nCisvLyBpbml0aWFsaXphdGlvbi4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK25hbWVzcGFj
ZSBVSVByb2Nlc3MgeworCit2b2lkIGluaXRpYWxpemVMb2dnaW5nSWZOZWNlc3NhcnkoKTsKK1N0
cmluZyB3dGZMb2dMZXZlbFN0cmluZygpOworU3RyaW5nIHdlYkNvcmVMb2dMZXZlbFN0cmluZygp
OworU3RyaW5nIHdlYktpdExvZ0xldmVsU3RyaW5nKCk7CisKK30KKworfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCmluZGV4IDYxYmQzMGEzNjQxNDczYzVkYjJj
NTc0MzBlOTNjYjdlMjY2M2FkODkuLjA1NDA5NzA3YWZkZTAwNjlmOTU1ZGE5N2EyZDc0MWE1MTQ0
ZTczMGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29s
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKQEAg
LTQ1LDcgKzQ1LDYgQEAKICNpbmNsdWRlICJHYW1lcGFkRGF0YS5oIgogI2luY2x1ZGUgIkhpZ2hQ
ZXJmb3JtYW5jZUdyYXBoaWNzVXNhZ2VTYW1wbGVyLmgiCiAjaW5jbHVkZSAiTGVnYWN5R2xvYmFs
U2V0dGluZ3MuaCIKLSNpbmNsdWRlICJMb2dJbml0aWFsaXphdGlvbi5oIgogI2luY2x1ZGUgIkxv
Z2dpbmcuaCIKICNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIgog
I2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzTWVzc2FnZXMuaCIKQEAgLTU1LDYgKzU0LDcgQEAKICNp
bmNsdWRlICJUZXh0Q2hlY2tlci5oIgogI2luY2x1ZGUgIlVJR2FtZXBhZC5oIgogI2luY2x1ZGUg
IlVJR2FtZXBhZFByb3ZpZGVyLmgiCisjaW5jbHVkZSAiVUlQcm9jZXNzTG9nSW5pdGlhbGl6YXRp
b24uaCIKICNpbmNsdWRlICJXS0NvbnRleHRQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViQXV0b21h
dGlvblNlc3Npb24uaCIKICNpbmNsdWRlICJXZWJCYWNrRm9yd2FyZENhY2hlLmgiCkBAIC04NCw3
ICs4NCw2IEBACiAjaW5jbHVkZSAiV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMuaCIKICNpbmNs
dWRlIDxKYXZhU2NyaXB0Q29yZS9KU0NJbmxpbmVzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9BcHBs
aWNhdGlvbkNhY2hlU3RvcmFnZS5oPgotI2luY2x1ZGUgPFdlYkNvcmUvTG9nSW5pdGlhbGl6YXRp
b24uaD4KICNpbmNsdWRlIDxXZWJDb3JlL01vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL1BsYXRmb3JtU2NyZWVuLmg+CkBAIC05Niw3ICs5NSw2IEBACiAjaW5jbHVkZSA8V2Vi
Q29yZS9SdW50aW1lQXBwbGljYXRpb25DaGVja3MuaD4KICNpbmNsdWRlIDxwYWwvU2Vzc2lvbklE
Lmg+CiAjaW5jbHVkZSA8d3RmL0NhbGxiYWNrQWdncmVnYXRvci5oPgotI2luY2x1ZGUgPHd0Zi9M
b2dJbml0aWFsaXphdGlvbi5oPgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAjaW5jbHVk
ZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAjaW5jbHVkZSA8d3RmL1Byb2Nlc3NQcml2aWxlZ2Uu
aD4KQEAgLTI2OCw5ICsyNjYsNyBAQCBXZWJQcm9jZXNzUG9vbDo6V2ViUHJvY2Vzc1Bvb2woQVBJ
OjpQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24mIGNvbmZpZ3VyYXRpb24pCiAgICAgcmVzb2x2ZVBh
dGhzRm9yU2FuZGJveEV4dGVuc2lvbnMoKTsKIAogI2lmICFMT0dfRElTQUJMRUQgfHwgIVJFTEVB
U0VfTE9HX0RJU0FCTEVECi0gICAgV1RGOjpsb2dDaGFubmVscygpLmluaXRpYWxpemVMb2dDaGFu
bmVsc0lmTmVjZXNzYXJ5KCk7Ci0gICAgV2ViQ29yZTo6bG9nQ2hhbm5lbHMoKS5pbml0aWFsaXpl
TG9nQ2hhbm5lbHNJZk5lY2Vzc2FyeSgpOwotICAgIFdlYktpdDo6bG9nQ2hhbm5lbHMoKS5pbml0
aWFsaXplTG9nQ2hhbm5lbHNJZk5lY2Vzc2FyeSgpOworICAgIFVJUHJvY2Vzczo6aW5pdGlhbGl6
ZUxvZ2dpbmdJZk5lY2Vzc2FyeSgpOwogI2VuZGlmIC8vICFMT0dfRElTQUJMRUQgfHwgIVJFTEVB
U0VfTE9HX0RJU0FCTEVECiAKICNpZm5kZWYgTkRFQlVHCg==
</data>
<flag name="commit-queue"
          id="480514"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>453218</attachid>
            <date>2022-02-25 08:32:59 -0800</date>
            <delta_ts>2022-02-26 17:18:06 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237183-20220225083258.patch</filename>
            <type>text/plain</type>
            <size>17655</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwMzQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGVkMTIwMWZhNzdhMTVkZTE4
MmE2NmIyODZlY2UxZjMwMTRiNWFhN2MuLjI2MjcxMmU2MjA5OTYyYjA5NzdjNzhmMGExMzdkZjEz
MTEyZjIyMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzYgQEAKKzIwMjItMDItMjQgIEplciBOb2Js
ZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBBbGxvdyBsb2dnaW5n
IHRvIGJlIGNvbmZpZ3VyZWQgYnkgTlNEZWZhdWx0cyAod2l0aG91dCByZWdyZXNzaW5nIGxhdW5j
aCB0aW1lKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjM3MTgzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
SW4gcjIyMDc4MCwgY29kZSB3YXMgYWRkZWQgdG8gV2ViUHJvY2Vzc1Bvb2xDb2NvYSB0byBleHBs
aWNpdGx5IHBhc3MgdGhlIHJlc3VsdHMgb2YgYSBOU1VzZXJEZWZhdWx0cworICAgICAgICB0byBu
ZXdseSBjcmVhdGVkIFdlYkNvbnRlbnQgcHJvY2Vzc2VzIHRvIGRldGVybWluZSBsb2cgY2hhbm5l
bCBsZXZlbHMuIExhdGVyLCBpbiByMjMyMTU4LCBOU1VzZXJEZWZhdWx0cworICAgICAgICB3ZXJl
IHJlbW92ZWQgZnJvbSB0aGUgZGVmYXVsdCBsb2dMZXZlbFN0cmluZygpIGltcGxlbWVudGF0aW9u
cyBpbiBXVEYsIFdlYkNvcmUsIGFuZCBXZWJLaXQgdG8gaW1wcm92ZQorICAgICAgICBwcm9jZXNz
IGxhdW5jaCB0aW1lIHBlcmZvcm1hbmNlLiBJbiByMjc5Nzk2LCB0aGUgc2FtZSB0ZWNobmlxdWUg
c3VlZCBpbiBXZWJQcm9jZXNzUG9vbENvY29hIHdhcyBhZGRlZAorICAgICAgICB0byBHUFVQcm9j
ZXNzUHJveHlDb2NvYSB0byBwYXNzIHRob3NlIGxvZyBsZXZlbCBzdHJpbmdzIHRvIHRoZSBHUFVQ
cm9jZXNzLiBBbmQgdGhlbiBpbiByMjg2NDg0LCBhbGwgdGhlCisgICAgICAgIHVzZXMgb2YgTlNV
c2VyRGVmYXVsdHMgd2VyZSByZW1vdmVkIGZyb20gV2ViUHJvY2Vzc1Bvb2xDb2NvYSBhbmQgR1BV
UHJvY2Vzc1Byb3h5Q29jb2Egd2VyZSByZW1vdmVkLAorICAgICAgICByZW1vdmluZyB0aGUgYWJp
bGl0eSB0byBpbmNyZWFzZSB0aGUgbG9nIGNoYW5uZWwgbGV2ZWxzIGF0IHJ1bnRpbWUgdGhyb3Vn
aCBOU1VzZXJEZWZ1YWx0cy4KKworICAgICAgICBBZGQgYmFjayBpbiB0aGUgYWJpbGl0eSB0byBk
ZWZpbmUgbG9nIGxldmVscyBmb3IgdGhlIFVJUHJvY2VzcyBhbmQgYWxsIEF1eGlsaWFyeVByb2Nl
c3NlcyB3aXRob3V0CisgICAgICAgIHJlZ3Jlc3NpbmcgbGF1bmNoIHRpbWUgYnkgb25seSBjaGVj
a2luZyB0aGUgTlNVc2VyRGVmYXVsdCBvbmNlLCBvbmx5IGluIHRoZSBVSVByb2Nlc3MsIHN0b3Jp
bmcgdGhlIHJlc3VsdAorICAgICAgICBpbiBhIHN0YXRpYyB2YXJpYWJsZSwgYW5kIHBhc3Npbmcg
dGhlIHJlc3VsdHMgb2YgdGhhdCBjaGVjayB0byBhbGwgQXV4aWxpYXJ5UHJvY2Vzc2VzIGF0IGNy
ZWF0aW9uIHRpbWUuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQXV4aWxpYXJ5UHJvY2Vzc1Byb3h5
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6QXV4aWxpYXJ5UHJvY2Vzc1Byb3h5OjphdXhpbGlhcnlQ
cm9jZXNzUGFyYW1ldGVycyk6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1VJUHJvY2Vzc0xv
Z0luaXRpYWxpemF0aW9uQ29jb2EubW06IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpVSVByb2Nl
c3M6Ond0ZkxvZ0xldmVsU3RyaW5nKToKKyAgICAgICAgKFdlYktpdDo6VUlQcm9jZXNzOjp3ZWJD
b3JlTG9nTGV2ZWxTdHJpbmcpOgorICAgICAgICAoV2ViS2l0OjpVSVByb2Nlc3M6OndlYktpdExv
Z0xldmVsU3RyaW5nKToKKyAgICAgICAgKiBVSVByb2Nlc3MvVUlQcm9jZXNzTG9nSW5pdGlhbGl6
YXRpb24uY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6VUlQcm9jZXNzOjppbml0aWFsaXpl
TG9nZ2luZ0lmTmVjZXNzYXJ5KToKKyAgICAgICAgKFdlYktpdDo6VUlQcm9jZXNzOjp3dGZMb2dM
ZXZlbFN0cmluZyk6CisgICAgICAgIChXZWJLaXQ6OlVJUHJvY2Vzczo6d2ViQ29yZUxvZ0xldmVs
U3RyaW5nKToKKyAgICAgICAgKFdlYktpdDo6VUlQcm9jZXNzOjp3ZWJLaXRMb2dMZXZlbFN0cmlu
Zyk6CisgICAgICAgICogVUlQcm9jZXNzL1VJUHJvY2Vzc0xvZ0luaXRpYWxpemF0aW9uLmg6IEFk
ZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHA6CisKIDIwMjEtMTIt
MTQgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgW1JlZmFjdG9y
XSBBZG9wdCBMb2dnZXJIZWxwZXIgaW4gTGVnYWN5IEVNRSBjbGFzc2VzCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAppbmRl
eCBmNzgxMzM2ZTVlYzgyMzIwZmEwNTVmZmE3M2Y5MTAxZGM4OGQ2NDgxLi5lMjRlZDVjMjRlODM0
NDMwNTRiZDhjOTU4Y2E1MTQ2NjIzYjJmMDU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1Nv
dXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKQEAgLTQyNiw2ICs0MjYs
NyBAQCBVSVByb2Nlc3MvU3lzdGVtUHJldmlld0NvbnRyb2xsZXIuY3BwCiBVSVByb2Nlc3MvU3Bl
ZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uTWFuYWdlci5jcHAKIFVJUHJvY2Vzcy9UZXh0Q2hlY2tl
ci5jcHAKIFVJUHJvY2Vzcy9UZXh0Q2hlY2tlckNvbXBsZXRpb24uY3BwCitVSVByb2Nlc3MvVUlQ
cm9jZXNzTG9nSW5pdGlhbGl6YXRpb24uY3BwCiBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lv
bkNoZWNrUHJveHkuY3BwCiBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyUHJveHkuY3BwCiBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5j
cHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dCBiL1NvdXJjZS9X
ZWJLaXQvU291cmNlc0NvY29hLnR4dAppbmRleCAzOWZlYTkxY2U1NjE3NTgxNjBhZDkyMTg5ODk0
NTNlNTgzZWQ2NDYxLi4yYzYwNjJjZjBhYWM0YjE5ZDRiZDJlMzE4OGVhYjk2OWI0OTNlZjc5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKKysrIGIvU291cmNlL1dl
YktpdC9Tb3VyY2VzQ29jb2EudHh0CkBAIC00MjMsNiArNDIzLDcgQEAgVUlQcm9jZXNzL0NvY29h
L1Nlc3Npb25TdGF0ZUNvZGluZy5tbQogVUlQcm9jZXNzL0NvY29hL1N5c3RlbVByZXZpZXdDb250
cm9sbGVyQ29jb2EubW0KIFVJUHJvY2Vzcy9Db2NvYS9UZXh0Q2hlY2tpbmdDb250cm9sbGVyLm1t
CiBVSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbQorVUlQcm9jZXNzL0NvY29hL1VJUHJvY2Vz
c0xvZ0luaXRpYWxpemF0aW9uQ29jb2EubW0KIFVJUHJvY2Vzcy9Db2NvYS9VSVJlbW90ZU9iamVj
dFJlZ2lzdHJ5LmNwcAogVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJv
eHkuY3BwCiBVSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
UHJveHkubW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1eGlsaWFyeVBy
b2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXhpbGlhcnlQcm9jZXNz
UHJveHkuY3BwCmluZGV4IGY1NWZjMjYzOTRlOGIyNzU3NGI1OTYwYWQ4NTg3NDYxY2M0YmRhYzcu
LmNjMGQ5ZDZjZmRjOTk3M2U5OWE2ODk2OTM5MDgwMDM3YzE5YjdiOGUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1eGlsaWFyeVByb2Nlc3NQcm94eS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV4aWxpYXJ5UHJvY2Vzc1Byb3h5LmNwcApAQCAtMjcsMTIg
KzI3LDEwIEBACiAjaW5jbHVkZSAiQXV4aWxpYXJ5UHJvY2Vzc1Byb3h5LmgiCiAKICNpbmNsdWRl
ICJBdXhpbGlhcnlQcm9jZXNzTWVzc2FnZXMuaCIKLSNpbmNsdWRlICJMb2dJbml0aWFsaXphdGlv
bi5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKyNpbmNsdWRlICJVSVByb2Nlc3NMb2dJbml0aWFs
aXphdGlvbi5oIgogI2luY2x1ZGUgIldlYlBhZ2VQcm94eS5oIgogI2luY2x1ZGUgIldlYlByb2Nl
c3NQcm94eS5oIgotI2luY2x1ZGUgPFdlYkNvcmUvTG9nSW5pdGlhbGl6YXRpb24uaD4KLSNpbmNs
dWRlIDx3dGYvTG9nSW5pdGlhbGl6YXRpb24uaD4KICNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgog
CiAjaWYgUExBVEZPUk0oQ09DT0EpCkBAIC00MDgsOSArNDA2LDkgQEAgQXV4aWxpYXJ5UHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVycyBBdXhpbGlhcnlQcm9jZXNzUHJveHk6OmF1eGlsaWFyeVByb2Nl
c3NQYXJhbWUKIHsKICAgICBBdXhpbGlhcnlQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzIHBhcmFt
ZXRlcnM7CiAjaWYgIUxPR19ESVNBQkxFRCB8fCAhUkVMRUFTRV9MT0dfRElTQUJMRUQKLSAgICBw
YXJhbWV0ZXJzLnd0ZkxvZ2dpbmdDaGFubmVscyA9IFdURjo6bG9nTGV2ZWxTdHJpbmcoKTsKLSAg
ICBwYXJhbWV0ZXJzLndlYkNvcmVMb2dnaW5nQ2hhbm5lbHMgPSBXZWJDb3JlOjpsb2dMZXZlbFN0
cmluZygpOwotICAgIHBhcmFtZXRlcnMud2ViS2l0TG9nZ2luZ0NoYW5uZWxzID0gV2ViS2l0Ojps
b2dMZXZlbFN0cmluZygpOworICAgIHBhcmFtZXRlcnMud3RmTG9nZ2luZ0NoYW5uZWxzID0gVUlQ
cm9jZXNzOjp3dGZMb2dMZXZlbFN0cmluZygpOworICAgIHBhcmFtZXRlcnMud2ViQ29yZUxvZ2dp
bmdDaGFubmVscyA9IFVJUHJvY2Vzczo6d2ViQ29yZUxvZ0xldmVsU3RyaW5nKCk7CisgICAgcGFy
YW1ldGVycy53ZWJLaXRMb2dnaW5nQ2hhbm5lbHMgPSBVSVByb2Nlc3M6OndlYktpdExvZ0xldmVs
U3RyaW5nKCk7CiAjZW5kaWYKICAgICByZXR1cm4gcGFyYW1ldGVyczsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJUHJvY2Vzc0xvZ0luaXRpYWxpemF0aW9u
Q29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSVByb2Nlc3NMb2dJbml0
aWFsaXphdGlvbkNvY29hLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhiOWU5NzA0NGQ3NDBmZTI5NGM3Y2ZjN2Vh
ZmJkODNiNDJmNjM3ZGMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Db2NvYS9VSVByb2Nlc3NMb2dJbml0aWFsaXphdGlvbkNvY29hLm1tCkBAIC0wLDAgKzEsNTkg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1w
b3J0ICJVSVByb2Nlc3NMb2dJbml0aWFsaXphdGlvbi5oIgorCisjaWYgUExBVEZPUk0oQ09DT0Ep
CisKK25hbWVzcGFjZSBXZWJLaXQgeworCituYW1lc3BhY2UgVUlQcm9jZXNzIHsKKworU3RyaW5n
IHd0ZkxvZ0xldmVsU3RyaW5nKCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5n
PiBsb2dTdHJpbmcgPSBbW05TVXNlckRlZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRzXSBzdHJp
bmdGb3JLZXk6QCJXVEZMb2dnaW5nIl07CisgICAgcmV0dXJuIGxvZ1N0cmluZzsKK30KKworU3Ry
aW5nIHdlYkNvcmVMb2dMZXZlbFN0cmluZygpCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVk
PFN0cmluZz4gbG9nU3RyaW5nID0gW1tOU1VzZXJEZWZhdWx0cyBzdGFuZGFyZFVzZXJEZWZhdWx0
c10gc3RyaW5nRm9yS2V5OkAiV2ViQ29yZUxvZ2dpbmciXTsKKyAgICByZXR1cm4gbG9nU3RyaW5n
OworfQorCitTdHJpbmcgd2ViS2l0TG9nTGV2ZWxTdHJpbmcoKQoreworICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxTdHJpbmc+IGxvZ1N0cmluZyA9IFtbTlNVc2VyRGVmYXVsdHMgc3RhbmRhcmRV
c2VyRGVmYXVsdHNdIHN0cmluZ0ZvcktleTpAIldlYktpdDJMb2dnaW5nIl07CisgICAgcmV0dXJu
IGxvZ1N0cmluZzsKK30KKworfQorCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvVUlQcm9jZXNzTG9nSW5pdGlhbGl6YXRpb24uY3BwIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvVUlQcm9jZXNzTG9nSW5pdGlhbGl6YXRpb24uY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmRkMjJhNjQyZjMyNDE0NGUyOTBmOTA4YjAxMjVlMjc4YTNiZjNiN2UKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9VSVByb2Nlc3NMb2dJbml0aWFsaXphdGlvbi5j
cHAKQEAgLTAsMCArMSw3MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMiBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJVSVByb2Nlc3NMb2dJbml0aWFsaXphdGlvbi5oIgorCisjaW5jbHVkZSAiTG9nSW5p
dGlhbGl6YXRpb24uaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0xvZ0luaXRpYWxpemF0aW9uLmg+Cisj
aW5jbHVkZSA8d3RmL0xvZ0luaXRpYWxpemF0aW9uLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgewor
CituYW1lc3BhY2UgVUlQcm9jZXNzIHsKKwordm9pZCBpbml0aWFsaXplTG9nZ2luZ0lmTmVjZXNz
YXJ5KCkKK3sKKyNpZiAhTE9HX0RJU0FCTEVEIHx8ICFSRUxFQVNFX0xPR19ESVNBQkxFRAorICAg
IHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlRmxhZzsKKyAgICBzdGQ6OmNhbGxfb25jZShvbmNl
RmxhZywgW10geworICAgICAgICBXVEY6OmxvZ0NoYW5uZWxzKCkuaW5pdGlhbGl6ZUxvZ0NoYW5u
ZWxzSWZOZWNlc3Nhcnkod3RmTG9nTGV2ZWxTdHJpbmcoKSk7CisgICAgICAgIFdlYkNvcmU6Omxv
Z0NoYW5uZWxzKCkuaW5pdGlhbGl6ZUxvZ0NoYW5uZWxzSWZOZWNlc3Nhcnkod2ViQ29yZUxvZ0xl
dmVsU3RyaW5nKCkpOworICAgICAgICBXZWJLaXQ6OmxvZ0NoYW5uZWxzKCkuaW5pdGlhbGl6ZUxv
Z0NoYW5uZWxzSWZOZWNlc3Nhcnkod2ViS2l0TG9nTGV2ZWxTdHJpbmcoKSk7CisgICAgfSk7Cisj
ZW5kaWYgLy8gIUxPR19ESVNBQkxFRCB8fCAhUkVMRUFTRV9MT0dfRElTQUJMRUQKK30KKworI2lm
ICFQTEFURk9STShDT0NPQSkKK1N0cmluZyB3dGZMb2dMZXZlbFN0cmluZygpCit7CisgICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPFN0cmluZz4gbG9nU3RyaW5nID0gV1RGOjpsb2dTdHJpbmcoKTsK
KyAgICByZXR1cm4gbG9nU3RyaW5nOworfQorCitTdHJpbmcgd2ViQ29yZUxvZ0xldmVsU3RyaW5n
KCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiBsb2dTdHJpbmcgPSBXZWJD
b3JlOjpsb2dTdHJpbmcoKTsKKyAgICByZXR1cm4gbG9nU3RyaW5nOworfQorCitTdHJpbmcgd2Vi
S2l0TG9nTGV2ZWxTdHJpbmcoKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+
IGxvZ1N0cmluZyA9IFdlYktpdDo6bG9nU3RyaW5nKCk7CisgICAgcmV0dXJuIGxvZ1N0cmluZzsK
K30KKyNlbmRpZgorCit9CisKK30KKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvVUlQcm9jZXNzTG9nSW5pdGlhbGl6YXRpb24uaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1VJUHJvY2Vzc0xvZ0luaXRpYWxpemF0aW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjlhNTIzM2ZiNzc5ZTUy
ODQyYjlkMWY0YTJhNzE2NGE2N2VmZDM5OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1VJUHJvY2Vzc0xvZ0luaXRpYWxpemF0aW9uLmgKQEAgLTAsMCArMSw0NyBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4K
KworLy8gTk9URTogVGhlc2UgbWV0aG9kcyBjb25maWd1cmUgbG9nZ2luZyBzZXBhcmF0ZWx5IGFu
ZCBkaWZmZXJlbnRseSBmb3IgdGhlIFVJUHJvY2VzcworLy8gdGhhbiBzaW1pbGFyIG1ldGhvZHMg
ZWxzZXdoZXJlLiBTcGVjaWZpY2FsbHksIHRoZSBsb2cgc3RyaW5ncyByZXR1cm5lZCBmcm9tIHRo
ZXNlCisvLyBtZXRob2RzIGFyZSBpbml0aWFsaXplZCBvbmNlLCByYXRoZXIgdGhhbiByZXBlYXRl
ZGx5LCBhbmQgYXJlIGludGVuZGVkIHRvIGJlIHBhc3NlZAorLy8gdGhyb3VnaCB0byBBdXhpbGlh
cnlQcm9jZXNzZXMgdG8gZnVydGhlciByZWR1Y2UgdGhlIHJ1bnRpbWUgY29zdCBvZiBsb2cgc3Ry
aW5nCisvLyBpbml0aWFsaXphdGlvbi4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK25hbWVzcGFj
ZSBVSVByb2Nlc3MgeworCit2b2lkIGluaXRpYWxpemVMb2dnaW5nSWZOZWNlc3NhcnkoKTsKK1N0
cmluZyB3dGZMb2dMZXZlbFN0cmluZygpOworU3RyaW5nIHdlYkNvcmVMb2dMZXZlbFN0cmluZygp
OworU3RyaW5nIHdlYktpdExvZ0xldmVsU3RyaW5nKCk7CisKK30KKworfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCmluZGV4IDYxYmQzMGEzNjQxNDczYzVkYjJj
NTc0MzBlOTNjYjdlMjY2M2FkODkuLjA1NDA5NzA3YWZkZTAwNjlmOTU1ZGE5N2EyZDc0MWE1MTQ0
ZTczMGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29s
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKQEAg
LTQ1LDcgKzQ1LDYgQEAKICNpbmNsdWRlICJHYW1lcGFkRGF0YS5oIgogI2luY2x1ZGUgIkhpZ2hQ
ZXJmb3JtYW5jZUdyYXBoaWNzVXNhZ2VTYW1wbGVyLmgiCiAjaW5jbHVkZSAiTGVnYWN5R2xvYmFs
U2V0dGluZ3MuaCIKLSNpbmNsdWRlICJMb2dJbml0aWFsaXphdGlvbi5oIgogI2luY2x1ZGUgIkxv
Z2dpbmcuaCIKICNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIgog
I2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzTWVzc2FnZXMuaCIKQEAgLTU1LDYgKzU0LDcgQEAKICNp
bmNsdWRlICJUZXh0Q2hlY2tlci5oIgogI2luY2x1ZGUgIlVJR2FtZXBhZC5oIgogI2luY2x1ZGUg
IlVJR2FtZXBhZFByb3ZpZGVyLmgiCisjaW5jbHVkZSAiVUlQcm9jZXNzTG9nSW5pdGlhbGl6YXRp
b24uaCIKICNpbmNsdWRlICJXS0NvbnRleHRQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViQXV0b21h
dGlvblNlc3Npb24uaCIKICNpbmNsdWRlICJXZWJCYWNrRm9yd2FyZENhY2hlLmgiCkBAIC04NCw3
ICs4NCw2IEBACiAjaW5jbHVkZSAiV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMuaCIKICNpbmNs
dWRlIDxKYXZhU2NyaXB0Q29yZS9KU0NJbmxpbmVzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9BcHBs
aWNhdGlvbkNhY2hlU3RvcmFnZS5oPgotI2luY2x1ZGUgPFdlYkNvcmUvTG9nSW5pdGlhbGl6YXRp
b24uaD4KICNpbmNsdWRlIDxXZWJDb3JlL01vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL1BsYXRmb3JtU2NyZWVuLmg+CkBAIC05Niw3ICs5NSw2IEBACiAjaW5jbHVkZSA8V2Vi
Q29yZS9SdW50aW1lQXBwbGljYXRpb25DaGVja3MuaD4KICNpbmNsdWRlIDxwYWwvU2Vzc2lvbklE
Lmg+CiAjaW5jbHVkZSA8d3RmL0NhbGxiYWNrQWdncmVnYXRvci5oPgotI2luY2x1ZGUgPHd0Zi9M
b2dJbml0aWFsaXphdGlvbi5oPgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAjaW5jbHVk
ZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAjaW5jbHVkZSA8d3RmL1Byb2Nlc3NQcml2aWxlZ2Uu
aD4KQEAgLTI2OCw5ICsyNjYsNyBAQCBXZWJQcm9jZXNzUG9vbDo6V2ViUHJvY2Vzc1Bvb2woQVBJ
OjpQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24mIGNvbmZpZ3VyYXRpb24pCiAgICAgcmVzb2x2ZVBh
dGhzRm9yU2FuZGJveEV4dGVuc2lvbnMoKTsKIAogI2lmICFMT0dfRElTQUJMRUQgfHwgIVJFTEVB
U0VfTE9HX0RJU0FCTEVECi0gICAgV1RGOjpsb2dDaGFubmVscygpLmluaXRpYWxpemVMb2dDaGFu
bmVsc0lmTmVjZXNzYXJ5KCk7Ci0gICAgV2ViQ29yZTo6bG9nQ2hhbm5lbHMoKS5pbml0aWFsaXpl
TG9nQ2hhbm5lbHNJZk5lY2Vzc2FyeSgpOwotICAgIFdlYktpdDo6bG9nQ2hhbm5lbHMoKS5pbml0
aWFsaXplTG9nQ2hhbm5lbHNJZk5lY2Vzc2FyeSgpOworICAgIFVJUHJvY2Vzczo6aW5pdGlhbGl6
ZUxvZ2dpbmdJZk5lY2Vzc2FyeSgpOwogI2VuZGlmIC8vICFMT0dfRElTQUJMRUQgfHwgIVJFTEVB
U0VfTE9HX0RJU0FCTEVECiAKICNpZm5kZWYgTkRFQlVHCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJL
aXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA1OTU2ODU1YWM1OWJmN2E1ZDE3YjI5
MWZhNGUxZjEyZTFlYTdkNWJhLi44ZWIwOTVhOTM0ZDkzOTAwNmJjOTA2MTMzY2I5MzJiMDZjMmQy
YzlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKQEAgLTYyNjAsNiArNjI2MCw5IEBACiAJCUNEODI1MkUwMjVENDkxODQwMDg2MkZEOCAvKiBS
ZW1vdGVSZW1vdGVDb21tYW5kTGlzdGVuZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gUmVtb3RlUmVtb3RlQ29tbWFuZExpc3RlbmVyTWVzc2FnZVJlY2VpdmVyLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q4MjUyRTEyNUQ0OTE4NTAwODYyRkQ4IC8q
IFJlbW90ZVJlbW90ZUNvbW1hbmRMaXN0ZW5lck1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJl
bW90ZVJlbW90ZUNvbW1hbmRMaXN0ZW5lck1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUNEOTU0OTM1MjYxNTkwMDQwMDgzNzJEOSAvKiBsaWJXZWJLaXRTd2lmdC5keWxp
YiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBlID0gImNvbXBp
bGVkLm1hY2gtby5keWxpYiI7IGluY2x1ZGVJbkluZGV4ID0gMDsgcGF0aCA9IGxpYldlYktpdFN3
aWZ0LmR5bGliOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OworCQlDRDlBNjQ5
RjI3Qzg5NzJDMDAzODI3QzAgLyogVUlQcm9jZXNzTG9nSW5pdGlhbGl6YXRpb24uaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gVUlQcm9jZXNzTG9nSW5pdGlhbGl6YXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJQ0Q5QTY0QTAyN0M4OTcyQzAwMzgyN0MwIC8qIFVJUHJvY2Vzc0xvZ0luaXRp
YWxpemF0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFVJUHJvY2Vzc0xvZ0luaXRpYWxpemF0
aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q5QTY0QTEyN0M4OTc0MjAw
MzgyN0MwIC8qIFVJUHJvY2Vzc0xvZ0luaXRpYWxpemF0aW9uQ29jb2EubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IHBhdGggPSBVSVByb2Nlc3NMb2dJbml0aWFsaXphdGlvbkNvY29hLm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlDREEwNDFGMzFBQ0UyMTA1MDA0QTEzRUMgLyogQmFja0JvYXJk
U2VydmljZXNTUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQmFja0JvYXJk
U2VydmljZXNTUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RBMjlBMTgxQ0JE
QkY0MTAwOTAxQ0NGIC8qIFBsYXliYWNrU2Vzc2lvbk1hbmFnZXIubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBQbGF5YmFja1Nlc3Npb25NYW5hZ2VyLm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDREEyOUExOTFDQkRCRjQxMDA5MDFDQ0YgLyogUGxh
eWJhY2tTZXNzaW9uTWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQ
bGF5YmFja1Nlc3Npb25NYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC03
NjIyLDYgKzc2MjUsNyBAQAogCQkJCTJEMENGNjRCMjFGMkE4MDMwMDc4NzU2NiAvKiBUZXh0Q2hl
Y2tpbmdDb250cm9sbGVyLm1tICovLAogCQkJCTFBRkU0MzY0MThCNkMwODEwMDlDN0E0OCAvKiBV
SURlbGVnYXRlLmggKi8sCiAJCQkJMUFGRTQzNjMxOEI2QzA4MTAwOUM3QTQ4IC8qIFVJRGVsZWdh
dGUubW0gKi8sCisJCQkJQ0Q5QTY0QTEyN0M4OTc0MjAwMzgyN0MwIC8qIFVJUHJvY2Vzc0xvZ0lu
aXRpYWxpemF0aW9uQ29jb2EubW0gKi8sCiAJCQkJNDYzMjM2ODYyMzE0ODMzRjAwQTQ4RkE3IC8q
IFVJUmVtb3RlT2JqZWN0UmVnaXN0cnkuY3BwICovLAogCQkJCTQ2MzIzNjg1MjMxNDgzM0YwMEE0
OEZBNyAvKiBVSVJlbW90ZU9iamVjdFJlZ2lzdHJ5LmggKi8sCiAJCQkJMDcwMjU5QkUyNTIyODQx
QzAwMTUzNDA1IC8qIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Lm1tICov
LApAQCAtMTExNDcsNiArMTExNTEsOCBAQAogCQkJCTFBQTQxN0M5MTJDMDBDQ0EwMDJCRTY3QiAv
KiBUZXh0Q2hlY2tlci5oICovLAogCQkJCTUzQ0ZCQkM2MjIyNEQxQjAwMDI2NjU0NiAvKiBUZXh0
Q2hlY2tlckNvbXBsZXRpb24uY3BwICovLAogCQkJCTUzQ0ZCQkM3MjIyNEQxQjAwMDI2NjU0NiAv
KiBUZXh0Q2hlY2tlckNvbXBsZXRpb24uaCAqLywKKwkJCQlDRDlBNjRBMDI3Qzg5NzJDMDAzODI3
QzAgLyogVUlQcm9jZXNzTG9nSW5pdGlhbGl6YXRpb24uY3BwICovLAorCQkJCUNEOUE2NDlGMjdD
ODk3MkMwMDM4MjdDMCAvKiBVSVByb2Nlc3NMb2dJbml0aWFsaXphdGlvbi5oICovLAogCQkJCTA3
Mjk3RjlDMUMxN0JCRUEwMDNGMDczNSAvKiBVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eS5j
cHAgKi8sCiAJCQkJMDcyOTdGOUQxQzE3QkJFQTAwM0YwNzM1IC8qIFVzZXJNZWRpYVBlcm1pc3Np
b25DaGVja1Byb3h5LmggKi8sCiAJCQkJNEE0MTBGMzkxOUFGN0IwNDAwMkVCQUI1IC8qIFVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcCAqLywK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>453316</attachid>
            <date>2022-02-26 17:18:07 -0800</date>
            <delta_ts>2022-02-27 06:29:34 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237183-20220226171807.patch</filename>
            <type>text/plain</type>
            <size>17686</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwNTMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDVhMGM2ODFiYzVlYTYyODZj
M2UyMDg3NDc0ZDg5M2IxMjg5Y2M0ZmYuLjdhNTYwNDQ0MTJlMTY1YmI3YWM2MTkzMDk2ZGU4MjE0
MDBlMjUyNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzYgQEAKKzIwMjItMDItMjQgIEplciBOb2Js
ZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBBbGxvdyBsb2dnaW5n
IHRvIGJlIGNvbmZpZ3VyZWQgYnkgTlNEZWZhdWx0cyAod2l0aG91dCByZWdyZXNzaW5nIGxhdW5j
aCB0aW1lKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjM3MTgzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
SW4gcjIyMDc4MCwgY29kZSB3YXMgYWRkZWQgdG8gV2ViUHJvY2Vzc1Bvb2xDb2NvYSB0byBleHBs
aWNpdGx5IHBhc3MgdGhlIHJlc3VsdHMgb2YgYSBOU1VzZXJEZWZhdWx0cworICAgICAgICB0byBu
ZXdseSBjcmVhdGVkIFdlYkNvbnRlbnQgcHJvY2Vzc2VzIHRvIGRldGVybWluZSBsb2cgY2hhbm5l
bCBsZXZlbHMuIExhdGVyLCBpbiByMjMyMTU4LCBOU1VzZXJEZWZhdWx0cworICAgICAgICB3ZXJl
IHJlbW92ZWQgZnJvbSB0aGUgZGVmYXVsdCBsb2dMZXZlbFN0cmluZygpIGltcGxlbWVudGF0aW9u
cyBpbiBXVEYsIFdlYkNvcmUsIGFuZCBXZWJLaXQgdG8gaW1wcm92ZQorICAgICAgICBwcm9jZXNz
IGxhdW5jaCB0aW1lIHBlcmZvcm1hbmNlLiBJbiByMjc5Nzk2LCB0aGUgc2FtZSB0ZWNobmlxdWUg
c3VlZCBpbiBXZWJQcm9jZXNzUG9vbENvY29hIHdhcyBhZGRlZAorICAgICAgICB0byBHUFVQcm9j
ZXNzUHJveHlDb2NvYSB0byBwYXNzIHRob3NlIGxvZyBsZXZlbCBzdHJpbmdzIHRvIHRoZSBHUFVQ
cm9jZXNzLiBBbmQgdGhlbiBpbiByMjg2NDg0LCBhbGwgdGhlCisgICAgICAgIHVzZXMgb2YgTlNV
c2VyRGVmYXVsdHMgd2VyZSByZW1vdmVkIGZyb20gV2ViUHJvY2Vzc1Bvb2xDb2NvYSBhbmQgR1BV
UHJvY2Vzc1Byb3h5Q29jb2Egd2VyZSByZW1vdmVkLAorICAgICAgICByZW1vdmluZyB0aGUgYWJp
bGl0eSB0byBpbmNyZWFzZSB0aGUgbG9nIGNoYW5uZWwgbGV2ZWxzIGF0IHJ1bnRpbWUgdGhyb3Vn
aCBOU1VzZXJEZWZ1YWx0cy4KKworICAgICAgICBBZGQgYmFjayBpbiB0aGUgYWJpbGl0eSB0byBk
ZWZpbmUgbG9nIGxldmVscyBmb3IgdGhlIFVJUHJvY2VzcyBhbmQgYWxsIEF1eGlsaWFyeVByb2Nl
c3NlcyB3aXRob3V0CisgICAgICAgIHJlZ3Jlc3NpbmcgbGF1bmNoIHRpbWUgYnkgb25seSBjaGVj
a2luZyB0aGUgTlNVc2VyRGVmYXVsdCBvbmNlLCBvbmx5IGluIHRoZSBVSVByb2Nlc3MsIHN0b3Jp
bmcgdGhlIHJlc3VsdAorICAgICAgICBpbiBhIHN0YXRpYyB2YXJpYWJsZSwgYW5kIHBhc3Npbmcg
dGhlIHJlc3VsdHMgb2YgdGhhdCBjaGVjayB0byBhbGwgQXV4aWxpYXJ5UHJvY2Vzc2VzIGF0IGNy
ZWF0aW9uIHRpbWUuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQXV4aWxpYXJ5UHJvY2Vzc1Byb3h5
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6QXV4aWxpYXJ5UHJvY2Vzc1Byb3h5OjphdXhpbGlhcnlQ
cm9jZXNzUGFyYW1ldGVycyk6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1VJUHJvY2Vzc0xv
Z0luaXRpYWxpemF0aW9uQ29jb2EubW06IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpVSVByb2Nl
c3M6Ond0ZkxvZ0xldmVsU3RyaW5nKToKKyAgICAgICAgKFdlYktpdDo6VUlQcm9jZXNzOjp3ZWJD
b3JlTG9nTGV2ZWxTdHJpbmcpOgorICAgICAgICAoV2ViS2l0OjpVSVByb2Nlc3M6OndlYktpdExv
Z0xldmVsU3RyaW5nKToKKyAgICAgICAgKiBVSVByb2Nlc3MvVUlQcm9jZXNzTG9nSW5pdGlhbGl6
YXRpb24uY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6VUlQcm9jZXNzOjppbml0aWFsaXpl
TG9nZ2luZ0lmTmVjZXNzYXJ5KToKKyAgICAgICAgKFdlYktpdDo6VUlQcm9jZXNzOjp3dGZMb2dM
ZXZlbFN0cmluZyk6CisgICAgICAgIChXZWJLaXQ6OlVJUHJvY2Vzczo6d2ViQ29yZUxvZ0xldmVs
U3RyaW5nKToKKyAgICAgICAgKFdlYktpdDo6VUlQcm9jZXNzOjp3ZWJLaXRMb2dMZXZlbFN0cmlu
Zyk6CisgICAgICAgICogVUlQcm9jZXNzL1VJUHJvY2Vzc0xvZ0luaXRpYWxpemF0aW9uLmg6IEFk
ZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHA6CisKIDIwMjItMDIt
MjUgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CiAKICAgICAgICAgUmVncmVzc2lv
bihyMjQyNzI5KTogbV9vcmlnaW4gaW4gSURCRGF0YWJhc2VJZGVudGlmaWVyIGlzIGluY29ycmVj
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJLaXQv
U291cmNlcy50eHQKaW5kZXggOTJhNThiMGJkN2NiNTMwMzAxYmViMmFiMWU5YjExNTkzOGQwODMw
NS4uMmUyZDcyZjZiMmFmOGFlNzZhYWM1MjJjMzUwYjI5MDA2ODI1ODg1NyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0
CkBAIC00MjcsNiArNDI3LDcgQEAgVUlQcm9jZXNzL1N5c3RlbVByZXZpZXdDb250cm9sbGVyLmNw
cAogVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbk1hbmFnZXIuY3BwCiBVSVBy
b2Nlc3MvVGV4dENoZWNrZXIuY3BwCiBVSVByb2Nlc3MvVGV4dENoZWNrZXJDb21wbGV0aW9uLmNw
cAorVUlQcm9jZXNzL1VJUHJvY2Vzc0xvZ0luaXRpYWxpemF0aW9uLmNwcAogVUlQcm9jZXNzL1Vz
ZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5LmNwcAogVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcAogVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0UHJveHkuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2Nv
YS50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKaW5kZXggMzlmZWE5MWNlNTYx
NzU4MTYwYWQ5MjE4OTg5NDUzZTU4M2VkNjQ2MS4uMmM2MDYyY2YwYWFjNGIxOWQ0YmQyZTMxODhl
YWI5NjliNDkzZWY3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0
CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dApAQCAtNDIzLDYgKzQyMyw3IEBA
IFVJUHJvY2Vzcy9Db2NvYS9TZXNzaW9uU3RhdGVDb2RpbmcubW0KIFVJUHJvY2Vzcy9Db2NvYS9T
eXN0ZW1QcmV2aWV3Q29udHJvbGxlckNvY29hLm1tCiBVSVByb2Nlc3MvQ29jb2EvVGV4dENoZWNr
aW5nQ29udHJvbGxlci5tbQogVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0KK1VJUHJvY2Vz
cy9Db2NvYS9VSVByb2Nlc3NMb2dJbml0aWFsaXphdGlvbkNvY29hLm1tCiBVSVByb2Nlc3MvQ29j
b2EvVUlSZW1vdGVPYmplY3RSZWdpc3RyeS5jcHAKIFVJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFD
YXB0dXJlTWFuYWdlclByb3h5LmNwcAogVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlclByb3h5Lm1tCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BdXhpbGlhcnlQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QXV4aWxpYXJ5UHJvY2Vzc1Byb3h5LmNwcAppbmRleCBmNTVmYzI2Mzk0ZThiMjc1NzRiNTk2MGFk
ODU4NzQ2MWNjNGJkYWM3Li5jYzBkOWQ2Y2ZkYzk5NzNlOTlhNjg5NjkzOTA4MDAzN2MxOWI3Yjhl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXhpbGlhcnlQcm9jZXNzUHJv
eHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1eGlsaWFyeVByb2Nlc3NQcm94
eS5jcHAKQEAgLTI3LDEyICsyNywxMCBAQAogI2luY2x1ZGUgIkF1eGlsaWFyeVByb2Nlc3NQcm94
eS5oIgogCiAjaW5jbHVkZSAiQXV4aWxpYXJ5UHJvY2Vzc01lc3NhZ2VzLmgiCi0jaW5jbHVkZSAi
TG9nSW5pdGlhbGl6YXRpb24uaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSAiVUlQ
cm9jZXNzTG9nSW5pdGlhbGl6YXRpb24uaCIKICNpbmNsdWRlICJXZWJQYWdlUHJveHkuaCIKICNp
bmNsdWRlICJXZWJQcm9jZXNzUHJveHkuaCIKLSNpbmNsdWRlIDxXZWJDb3JlL0xvZ0luaXRpYWxp
emF0aW9uLmg+Ci0jaW5jbHVkZSA8d3RmL0xvZ0luaXRpYWxpemF0aW9uLmg+CiAjaW5jbHVkZSA8
d3RmL1J1bkxvb3AuaD4KIAogI2lmIFBMQVRGT1JNKENPQ09BKQpAQCAtNDA4LDkgKzQwNiw5IEBA
IEF1eGlsaWFyeVByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMgQXV4aWxpYXJ5UHJvY2Vzc1Byb3h5
OjphdXhpbGlhcnlQcm9jZXNzUGFyYW1lCiB7CiAgICAgQXV4aWxpYXJ5UHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVycyBwYXJhbWV0ZXJzOwogI2lmICFMT0dfRElTQUJMRUQgfHwgIVJFTEVBU0VfTE9H
X0RJU0FCTEVECi0gICAgcGFyYW1ldGVycy53dGZMb2dnaW5nQ2hhbm5lbHMgPSBXVEY6OmxvZ0xl
dmVsU3RyaW5nKCk7Ci0gICAgcGFyYW1ldGVycy53ZWJDb3JlTG9nZ2luZ0NoYW5uZWxzID0gV2Vi
Q29yZTo6bG9nTGV2ZWxTdHJpbmcoKTsKLSAgICBwYXJhbWV0ZXJzLndlYktpdExvZ2dpbmdDaGFu
bmVscyA9IFdlYktpdDo6bG9nTGV2ZWxTdHJpbmcoKTsKKyAgICBwYXJhbWV0ZXJzLnd0ZkxvZ2dp
bmdDaGFubmVscyA9IFVJUHJvY2Vzczo6d3RmTG9nTGV2ZWxTdHJpbmcoKTsKKyAgICBwYXJhbWV0
ZXJzLndlYkNvcmVMb2dnaW5nQ2hhbm5lbHMgPSBVSVByb2Nlc3M6OndlYkNvcmVMb2dMZXZlbFN0
cmluZygpOworICAgIHBhcmFtZXRlcnMud2ViS2l0TG9nZ2luZ0NoYW5uZWxzID0gVUlQcm9jZXNz
Ojp3ZWJLaXRMb2dMZXZlbFN0cmluZygpOwogI2VuZGlmCiAgICAgcmV0dXJuIHBhcmFtZXRlcnM7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSVByb2Nlc3NM
b2dJbml0aWFsaXphdGlvbkNvY29hLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2Ev
VUlQcm9jZXNzTG9nSW5pdGlhbGl6YXRpb25Db2NvYS5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44YjllOTcwNDRk
NzQwZmUyOTRjN2NmYzdlYWZiZDgzYjQyZjYzN2RjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlQcm9jZXNzTG9nSW5pdGlhbGl6YXRpb25Db2NvYS5t
bQpAQCAtMCwwICsxLDU5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIyIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbXBvcnQg
ImNvbmZpZy5oIgorI2ltcG9ydCAiVUlQcm9jZXNzTG9nSW5pdGlhbGl6YXRpb24uaCIKKworI2lm
IFBMQVRGT1JNKENPQ09BKQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworbmFtZXNwYWNlIFVJUHJv
Y2VzcyB7CisKK1N0cmluZyB3dGZMb2dMZXZlbFN0cmluZygpCit7CisgICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPFN0cmluZz4gbG9nU3RyaW5nID0gW1tOU1VzZXJEZWZhdWx0cyBzdGFuZGFyZFVz
ZXJEZWZhdWx0c10gc3RyaW5nRm9yS2V5OkAiV1RGTG9nZ2luZyJdOworICAgIHJldHVybiBsb2dT
dHJpbmc7Cit9CisKK1N0cmluZyB3ZWJDb3JlTG9nTGV2ZWxTdHJpbmcoKQoreworICAgIHN0YXRp
YyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IGxvZ1N0cmluZyA9IFtbTlNVc2VyRGVmYXVsdHMgc3Rh
bmRhcmRVc2VyRGVmYXVsdHNdIHN0cmluZ0ZvcktleTpAIldlYkNvcmVMb2dnaW5nIl07CisgICAg
cmV0dXJuIGxvZ1N0cmluZzsKK30KKworU3RyaW5nIHdlYktpdExvZ0xldmVsU3RyaW5nKCkKK3sK
KyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiBsb2dTdHJpbmcgPSBbW05TVXNlckRl
ZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRzXSBzdHJpbmdGb3JLZXk6QCJXZWJLaXQyTG9nZ2lu
ZyJdOworICAgIHJldHVybiBsb2dTdHJpbmc7Cit9CisKK30KKworfQorCisjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VJUHJvY2Vzc0xvZ0luaXRpYWxpemF0aW9u
LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VJUHJvY2Vzc0xvZ0luaXRpYWxpemF0aW9u
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5lOGVhZDA0Mjc2MzBmNjM5MWIzZDkzMjUzNjA1Mjg2ZGVjMWUxMTE4
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVUlQcm9jZXNzTG9n
SW5pdGlhbGl6YXRpb24uY3BwCkBAIC0wLDAgKzEsNzIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVUlQcm9jZXNzTG9nSW5pdGlhbGl6YXRpb24uaCIKKwor
I2luY2x1ZGUgIkxvZ0luaXRpYWxpemF0aW9uLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9Mb2dJbml0
aWFsaXphdGlvbi5oPgorI2luY2x1ZGUgPHd0Zi9Mb2dJbml0aWFsaXphdGlvbi5oPgorCituYW1l
c3BhY2UgV2ViS2l0IHsKKworbmFtZXNwYWNlIFVJUHJvY2VzcyB7CisKK3ZvaWQgaW5pdGlhbGl6
ZUxvZ2dpbmdJZk5lY2Vzc2FyeSgpCit7CisjaWYgIUxPR19ESVNBQkxFRCB8fCAhUkVMRUFTRV9M
T0dfRElTQUJMRUQKKyAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgb25jZUZsYWc7CisgICAgc3Rk
OjpjYWxsX29uY2Uob25jZUZsYWcsIFtdIHsKKyAgICAgICAgV1RGOjpsb2dDaGFubmVscygpLmlu
aXRpYWxpemVMb2dDaGFubmVsc0lmTmVjZXNzYXJ5KHd0ZkxvZ0xldmVsU3RyaW5nKCkpOworICAg
ICAgICBXZWJDb3JlOjpsb2dDaGFubmVscygpLmluaXRpYWxpemVMb2dDaGFubmVsc0lmTmVjZXNz
YXJ5KHdlYkNvcmVMb2dMZXZlbFN0cmluZygpKTsKKyAgICAgICAgV2ViS2l0Ojpsb2dDaGFubmVs
cygpLmluaXRpYWxpemVMb2dDaGFubmVsc0lmTmVjZXNzYXJ5KHdlYktpdExvZ0xldmVsU3RyaW5n
KCkpOworICAgIH0pOworI2VuZGlmIC8vICFMT0dfRElTQUJMRUQgfHwgIVJFTEVBU0VfTE9HX0RJ
U0FCTEVECit9CisKKyNpZiAhUExBVEZPUk0oQ09DT0EpCitTdHJpbmcgd3RmTG9nTGV2ZWxTdHJp
bmcoKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IGxvZ1N0cmluZyA9IFdU
Rjo6bG9nTGV2ZWxTdHJpbmcoKTsKKyAgICByZXR1cm4gbG9nU3RyaW5nOworfQorCitTdHJpbmcg
d2ViQ29yZUxvZ0xldmVsU3RyaW5nKCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3Ry
aW5nPiBsb2dTdHJpbmcgPSBXZWJDb3JlOjpsb2dMZXZlbFN0cmluZygpOworICAgIHJldHVybiBs
b2dTdHJpbmc7Cit9CisKK1N0cmluZyB3ZWJLaXRMb2dMZXZlbFN0cmluZygpCit7CisgICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPFN0cmluZz4gbG9nU3RyaW5nID0gV2ViS2l0Ojpsb2dMZXZlbFN0
cmluZygpOworICAgIHJldHVybiBsb2dTdHJpbmc7Cit9CisjZW5kaWYKKworfQorCit9CisKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VJUHJvY2Vzc0xvZ0luaXRpYWxpemF0
aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9VSVByb2Nlc3NMb2dJbml0aWFsaXphdGlv
bi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjY5YTUyMzNmYjc3OWU1Mjg0MmI5ZDFmNGEyYTcxNjRhNjdlZmQzOTgK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9VSVByb2Nlc3NMb2dJ
bml0aWFsaXphdGlvbi5oCkBAIC0wLDAgKzEsNDcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9u
Y2UKKworI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisKKy8vIE5PVEU6IFRoZXNlIG1ldGhvZHMg
Y29uZmlndXJlIGxvZ2dpbmcgc2VwYXJhdGVseSBhbmQgZGlmZmVyZW50bHkgZm9yIHRoZSBVSVBy
b2Nlc3MKKy8vIHRoYW4gc2ltaWxhciBtZXRob2RzIGVsc2V3aGVyZS4gU3BlY2lmaWNhbGx5LCB0
aGUgbG9nIHN0cmluZ3MgcmV0dXJuZWQgZnJvbSB0aGVzZQorLy8gbWV0aG9kcyBhcmUgaW5pdGlh
bGl6ZWQgb25jZSwgcmF0aGVyIHRoYW4gcmVwZWF0ZWRseSwgYW5kIGFyZSBpbnRlbmRlZCB0byBi
ZSBwYXNzZWQKKy8vIHRocm91Z2ggdG8gQXV4aWxpYXJ5UHJvY2Vzc2VzIHRvIGZ1cnRoZXIgcmVk
dWNlIHRoZSBydW50aW1lIGNvc3Qgb2YgbG9nIHN0cmluZworLy8gaW5pdGlhbGl6YXRpb24uCisK
K25hbWVzcGFjZSBXZWJLaXQgeworCituYW1lc3BhY2UgVUlQcm9jZXNzIHsKKwordm9pZCBpbml0
aWFsaXplTG9nZ2luZ0lmTmVjZXNzYXJ5KCk7CitTdHJpbmcgd3RmTG9nTGV2ZWxTdHJpbmcoKTsK
K1N0cmluZyB3ZWJDb3JlTG9nTGV2ZWxTdHJpbmcoKTsKK1N0cmluZyB3ZWJLaXRMb2dMZXZlbFN0
cmluZygpOworCit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlByb2Nlc3NQb29sLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29s
LmNwcAppbmRleCAwOGI2NDY0NDBjYzAyOGFhZmUyOWRhNmJkYjA1YjU1Mzc5OWQyZTE5Li45OTM1
OGNhMDlkYWY3M2M0NTllMDgxZjhmYWFiYWUyZGVjOGU1MTVkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCkBAIC00NSw3ICs0NSw2IEBACiAjaW5jbHVkZSAi
R2FtZXBhZERhdGEuaCIKICNpbmNsdWRlICJIaWdoUGVyZm9ybWFuY2VHcmFwaGljc1VzYWdlU2Ft
cGxlci5oIgogI2luY2x1ZGUgIkxlZ2FjeUdsb2JhbFNldHRpbmdzLmgiCi0jaW5jbHVkZSAiTG9n
SW5pdGlhbGl6YXRpb24uaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTmV0d29y
a1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCIKICNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc01l
c3NhZ2VzLmgiCkBAIC01Niw2ICs1NSw3IEBACiAjaW5jbHVkZSAiVGV4dENoZWNrZXIuaCIKICNp
bmNsdWRlICJVSUdhbWVwYWQuaCIKICNpbmNsdWRlICJVSUdhbWVwYWRQcm92aWRlci5oIgorI2lu
Y2x1ZGUgIlVJUHJvY2Vzc0xvZ0luaXRpYWxpemF0aW9uLmgiCiAjaW5jbHVkZSAiV0tDb250ZXh0
UHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYkF1dG9tYXRpb25TZXNzaW9uLmgiCiAjaW5jbHVkZSAi
V2ViQmFja0ZvcndhcmRDYWNoZS5oIgpAQCAtODUsNyArODUsNiBAQAogI2luY2x1ZGUgIldlYnNp
dGVEYXRhU3RvcmVQYXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNDSW5s
aW5lcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQXBwbGljYXRpb25DYWNoZVN0b3JhZ2UuaD4KLSNp
bmNsdWRlIDxXZWJDb3JlL0xvZ0luaXRpYWxpemF0aW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9N
b2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTmV0d29y
a1N0b3JhZ2VTZXNzaW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybVNjcmVlbi5oPgpA
QCAtOTcsNyArOTYsNiBAQAogI2luY2x1ZGUgPFdlYkNvcmUvUnVudGltZUFwcGxpY2F0aW9uQ2hl
Y2tzLmg+CiAjaW5jbHVkZSA8cGFsL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUgPHd0Zi9DYWxsYmFj
a0FnZ3JlZ2F0b3IuaD4KLSNpbmNsdWRlIDx3dGYvTG9nSW5pdGlhbGl6YXRpb24uaD4KICNpbmNs
dWRlIDx3dGYvTWFpblRocmVhZC5oPgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgog
I2luY2x1ZGUgPHd0Zi9Qcm9jZXNzUHJpdmlsZWdlLmg+CkBAIC0yNjksOSArMjY3LDcgQEAgV2Vi
UHJvY2Vzc1Bvb2w6OldlYlByb2Nlc3NQb29sKEFQSTo6UHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9u
JiBjb25maWd1cmF0aW9uKQogICAgIHJlc29sdmVQYXRoc0ZvclNhbmRib3hFeHRlbnNpb25zKCk7
CiAKICNpZiAhTE9HX0RJU0FCTEVEIHx8ICFSRUxFQVNFX0xPR19ESVNBQkxFRAotICAgIFdURjo6
bG9nQ2hhbm5lbHMoKS5pbml0aWFsaXplTG9nQ2hhbm5lbHNJZk5lY2Vzc2FyeSgpOwotICAgIFdl
YkNvcmU6OmxvZ0NoYW5uZWxzKCkuaW5pdGlhbGl6ZUxvZ0NoYW5uZWxzSWZOZWNlc3NhcnkoKTsK
LSAgICBXZWJLaXQ6OmxvZ0NoYW5uZWxzKCkuaW5pdGlhbGl6ZUxvZ0NoYW5uZWxzSWZOZWNlc3Nh
cnkoKTsKKyAgICBVSVByb2Nlc3M6OmluaXRpYWxpemVMb2dnaW5nSWZOZWNlc3NhcnkoKTsKICNl
bmRpZiAvLyAhTE9HX0RJU0FCTEVEIHx8ICFSRUxFQVNFX0xPR19ESVNBQkxFRAogCiAjaWZuZGVm
IE5ERUJVRwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKaW5kZXggNjA3MzI4ZTA2YmNjY2E0M2IyOWI1NWYwMTdkOWIxZWYxMzQ1NGUwNi4uYzFhYjg5
ODE5MTc4ZDAyOTZjM2EzYWU1NWQxYzRiMTFlMjcyMTY0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC02MjY0LDYgKzYyNjQsOSBAQAog
CQlDRDgyNTJFMDI1RDQ5MTg0MDA4NjJGRDggLyogUmVtb3RlUmVtb3RlQ29tbWFuZExpc3RlbmVy
TWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZVJlbW90ZUNvbW1h
bmRMaXN0ZW5lck1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUNEODI1MkUxMjVENDkxODUwMDg2MkZEOCAvKiBSZW1vdGVSZW1vdGVDb21tYW5kTGlzdGVu
ZXJNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVSZW1vdGVDb21tYW5kTGlzdGVuZXJN
ZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDk1NDkzNTI2MTU5MDA0
MDA4MzcyRDkgLyogbGliV2ViS2l0U3dpZnQuZHlsaWIgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZXhwbGljaXRGaWxlVHlwZSA9ICJjb21waWxlZC5tYWNoLW8uZHlsaWIiOyBpbmNsdWRl
SW5JbmRleCA9IDA7IHBhdGggPSBsaWJXZWJLaXRTd2lmdC5keWxpYjsgc291cmNlVHJlZSA9IEJV
SUxUX1BST0RVQ1RTX0RJUjsgfTsKKwkJQ0Q5QTY0OUYyN0M4OTcyQzAwMzgyN0MwIC8qIFVJUHJv
Y2Vzc0xvZ0luaXRpYWxpemF0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFVJUHJvY2Vzc0xvZ0luaXRp
YWxpemF0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEOUE2NEEwMjdDODk3
MkMwMDM4MjdDMCAvKiBVSVByb2Nlc3NMb2dJbml0aWFsaXphdGlvbi5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBVSVByb2Nlc3NMb2dJbml0aWFsaXphdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUNEOUE2NEExMjdDODk3NDIwMDM4MjdDMCAvKiBVSVByb2Nlc3NMb2dJbml0
aWFsaXphdGlvbkNvY29hLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gVUlQcm9jZXNzTG9nSW5p
dGlhbGl6YXRpb25Db2NvYS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RBMDQx
RjMxQUNFMjEwNTAwNEExM0VDIC8qIEJhY2tCb2FyZFNlcnZpY2VzU1BJLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJhY2tCb2FyZFNlcnZpY2VzU1BJLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUNEQTI5QTE4MUNCREJGNDEwMDkwMUNDRiAvKiBQbGF5YmFja1Nl
c3Npb25NYW5hZ2VyLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
UGxheWJhY2tTZXNzaW9uTWFuYWdlci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
Q0RBMjlBMTkxQ0JEQkY0MTAwOTAxQ0NGIC8qIFBsYXliYWNrU2Vzc2lvbk1hbmFnZXIuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGxheWJhY2tTZXNzaW9uTWFuYWdlci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNzYyOSw2ICs3NjMyLDcgQEAKIAkJCQkyRDBD
RjY0QjIxRjJBODAzMDA3ODc1NjYgLyogVGV4dENoZWNraW5nQ29udHJvbGxlci5tbSAqLywKIAkJ
CQkxQUZFNDM2NDE4QjZDMDgxMDA5QzdBNDggLyogVUlEZWxlZ2F0ZS5oICovLAogCQkJCTFBRkU0
MzYzMThCNkMwODEwMDlDN0E0OCAvKiBVSURlbGVnYXRlLm1tICovLAorCQkJCUNEOUE2NEExMjdD
ODk3NDIwMDM4MjdDMCAvKiBVSVByb2Nlc3NMb2dJbml0aWFsaXphdGlvbkNvY29hLm1tICovLAog
CQkJCTQ2MzIzNjg2MjMxNDgzM0YwMEE0OEZBNyAvKiBVSVJlbW90ZU9iamVjdFJlZ2lzdHJ5LmNw
cCAqLywKIAkJCQk0NjMyMzY4NTIzMTQ4MzNGMDBBNDhGQTcgLyogVUlSZW1vdGVPYmplY3RSZWdp
c3RyeS5oICovLAogCQkJCTA3MDI1OUJFMjUyMjg0MUMwMDE1MzQwNSAvKiBVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5tbSAqLywKQEAgLTExMTU0LDYgKzExMTU4LDggQEAK
IAkJCQkxQUE0MTdDOTEyQzAwQ0NBMDAyQkU2N0IgLyogVGV4dENoZWNrZXIuaCAqLywKIAkJCQk1
M0NGQkJDNjIyMjREMUIwMDAyNjY1NDYgLyogVGV4dENoZWNrZXJDb21wbGV0aW9uLmNwcCAqLywK
IAkJCQk1M0NGQkJDNzIyMjREMUIwMDAyNjY1NDYgLyogVGV4dENoZWNrZXJDb21wbGV0aW9uLmgg
Ki8sCisJCQkJQ0Q5QTY0QTAyN0M4OTcyQzAwMzgyN0MwIC8qIFVJUHJvY2Vzc0xvZ0luaXRpYWxp
emF0aW9uLmNwcCAqLywKKwkJCQlDRDlBNjQ5RjI3Qzg5NzJDMDAzODI3QzAgLyogVUlQcm9jZXNz
TG9nSW5pdGlhbGl6YXRpb24uaCAqLywKIAkJCQkwNzI5N0Y5QzFDMTdCQkVBMDAzRjA3MzUgLyog
VXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHkuY3BwICovLAogCQkJCTA3Mjk3RjlEMUMxN0JC
RUEwMDNGMDczNSAvKiBVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eS5oICovLAogCQkJCTRB
NDEwRjM5MTlBRjdCMDQwMDJFQkFCNSAvKiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXJQcm94eS5jcHAgKi8sCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>453339</attachid>
            <date>2022-02-27 06:29:35 -0800</date>
            <delta_ts>2022-02-28 09:20:39 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237183-20220227062935.patch</filename>
            <type>text/plain</type>
            <size>17746</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwNTMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDVhMGM2ODFiYzVlYTYyODZj
M2UyMDg3NDc0ZDg5M2IxMjg5Y2M0ZmYuLjdhNTYwNDQ0MTJlMTY1YmI3YWM2MTkzMDk2ZGU4MjE0
MDBlMjUyNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzYgQEAKKzIwMjItMDItMjQgIEplciBOb2Js
ZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBBbGxvdyBsb2dnaW5n
IHRvIGJlIGNvbmZpZ3VyZWQgYnkgTlNEZWZhdWx0cyAod2l0aG91dCByZWdyZXNzaW5nIGxhdW5j
aCB0aW1lKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjM3MTgzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
SW4gcjIyMDc4MCwgY29kZSB3YXMgYWRkZWQgdG8gV2ViUHJvY2Vzc1Bvb2xDb2NvYSB0byBleHBs
aWNpdGx5IHBhc3MgdGhlIHJlc3VsdHMgb2YgYSBOU1VzZXJEZWZhdWx0cworICAgICAgICB0byBu
ZXdseSBjcmVhdGVkIFdlYkNvbnRlbnQgcHJvY2Vzc2VzIHRvIGRldGVybWluZSBsb2cgY2hhbm5l
bCBsZXZlbHMuIExhdGVyLCBpbiByMjMyMTU4LCBOU1VzZXJEZWZhdWx0cworICAgICAgICB3ZXJl
IHJlbW92ZWQgZnJvbSB0aGUgZGVmYXVsdCBsb2dMZXZlbFN0cmluZygpIGltcGxlbWVudGF0aW9u
cyBpbiBXVEYsIFdlYkNvcmUsIGFuZCBXZWJLaXQgdG8gaW1wcm92ZQorICAgICAgICBwcm9jZXNz
IGxhdW5jaCB0aW1lIHBlcmZvcm1hbmNlLiBJbiByMjc5Nzk2LCB0aGUgc2FtZSB0ZWNobmlxdWUg
c3VlZCBpbiBXZWJQcm9jZXNzUG9vbENvY29hIHdhcyBhZGRlZAorICAgICAgICB0byBHUFVQcm9j
ZXNzUHJveHlDb2NvYSB0byBwYXNzIHRob3NlIGxvZyBsZXZlbCBzdHJpbmdzIHRvIHRoZSBHUFVQ
cm9jZXNzLiBBbmQgdGhlbiBpbiByMjg2NDg0LCBhbGwgdGhlCisgICAgICAgIHVzZXMgb2YgTlNV
c2VyRGVmYXVsdHMgd2VyZSByZW1vdmVkIGZyb20gV2ViUHJvY2Vzc1Bvb2xDb2NvYSBhbmQgR1BV
UHJvY2Vzc1Byb3h5Q29jb2Egd2VyZSByZW1vdmVkLAorICAgICAgICByZW1vdmluZyB0aGUgYWJp
bGl0eSB0byBpbmNyZWFzZSB0aGUgbG9nIGNoYW5uZWwgbGV2ZWxzIGF0IHJ1bnRpbWUgdGhyb3Vn
aCBOU1VzZXJEZWZ1YWx0cy4KKworICAgICAgICBBZGQgYmFjayBpbiB0aGUgYWJpbGl0eSB0byBk
ZWZpbmUgbG9nIGxldmVscyBmb3IgdGhlIFVJUHJvY2VzcyBhbmQgYWxsIEF1eGlsaWFyeVByb2Nl
c3NlcyB3aXRob3V0CisgICAgICAgIHJlZ3Jlc3NpbmcgbGF1bmNoIHRpbWUgYnkgb25seSBjaGVj
a2luZyB0aGUgTlNVc2VyRGVmYXVsdCBvbmNlLCBvbmx5IGluIHRoZSBVSVByb2Nlc3MsIHN0b3Jp
bmcgdGhlIHJlc3VsdAorICAgICAgICBpbiBhIHN0YXRpYyB2YXJpYWJsZSwgYW5kIHBhc3Npbmcg
dGhlIHJlc3VsdHMgb2YgdGhhdCBjaGVjayB0byBhbGwgQXV4aWxpYXJ5UHJvY2Vzc2VzIGF0IGNy
ZWF0aW9uIHRpbWUuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQXV4aWxpYXJ5UHJvY2Vzc1Byb3h5
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6QXV4aWxpYXJ5UHJvY2Vzc1Byb3h5OjphdXhpbGlhcnlQ
cm9jZXNzUGFyYW1ldGVycyk6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1VJUHJvY2Vzc0xv
Z0luaXRpYWxpemF0aW9uQ29jb2EubW06IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpVSVByb2Nl
c3M6Ond0ZkxvZ0xldmVsU3RyaW5nKToKKyAgICAgICAgKFdlYktpdDo6VUlQcm9jZXNzOjp3ZWJD
b3JlTG9nTGV2ZWxTdHJpbmcpOgorICAgICAgICAoV2ViS2l0OjpVSVByb2Nlc3M6OndlYktpdExv
Z0xldmVsU3RyaW5nKToKKyAgICAgICAgKiBVSVByb2Nlc3MvVUlQcm9jZXNzTG9nSW5pdGlhbGl6
YXRpb24uY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6VUlQcm9jZXNzOjppbml0aWFsaXpl
TG9nZ2luZ0lmTmVjZXNzYXJ5KToKKyAgICAgICAgKFdlYktpdDo6VUlQcm9jZXNzOjp3dGZMb2dM
ZXZlbFN0cmluZyk6CisgICAgICAgIChXZWJLaXQ6OlVJUHJvY2Vzczo6d2ViQ29yZUxvZ0xldmVs
U3RyaW5nKToKKyAgICAgICAgKFdlYktpdDo6VUlQcm9jZXNzOjp3ZWJLaXRMb2dMZXZlbFN0cmlu
Zyk6CisgICAgICAgICogVUlQcm9jZXNzL1VJUHJvY2Vzc0xvZ0luaXRpYWxpemF0aW9uLmg6IEFk
ZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHA6CisKIDIwMjItMDIt
MjUgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CiAKICAgICAgICAgUmVncmVzc2lv
bihyMjQyNzI5KTogbV9vcmlnaW4gaW4gSURCRGF0YWJhc2VJZGVudGlmaWVyIGlzIGluY29ycmVj
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJLaXQv
U291cmNlcy50eHQKaW5kZXggOTJhNThiMGJkN2NiNTMwMzAxYmViMmFiMWU5YjExNTkzOGQwODMw
NS4uMmUyZDcyZjZiMmFmOGFlNzZhYWM1MjJjMzUwYjI5MDA2ODI1ODg1NyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0
CkBAIC00MjcsNiArNDI3LDcgQEAgVUlQcm9jZXNzL1N5c3RlbVByZXZpZXdDb250cm9sbGVyLmNw
cAogVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbk1hbmFnZXIuY3BwCiBVSVBy
b2Nlc3MvVGV4dENoZWNrZXIuY3BwCiBVSVByb2Nlc3MvVGV4dENoZWNrZXJDb21wbGV0aW9uLmNw
cAorVUlQcm9jZXNzL1VJUHJvY2Vzc0xvZ0luaXRpYWxpemF0aW9uLmNwcAogVUlQcm9jZXNzL1Vz
ZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5LmNwcAogVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcAogVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0UHJveHkuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2Nv
YS50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKaW5kZXggMzlmZWE5MWNlNTYx
NzU4MTYwYWQ5MjE4OTg5NDUzZTU4M2VkNjQ2MS4uMmM2MDYyY2YwYWFjNGIxOWQ0YmQyZTMxODhl
YWI5NjliNDkzZWY3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0
CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dApAQCAtNDIzLDYgKzQyMyw3IEBA
IFVJUHJvY2Vzcy9Db2NvYS9TZXNzaW9uU3RhdGVDb2RpbmcubW0KIFVJUHJvY2Vzcy9Db2NvYS9T
eXN0ZW1QcmV2aWV3Q29udHJvbGxlckNvY29hLm1tCiBVSVByb2Nlc3MvQ29jb2EvVGV4dENoZWNr
aW5nQ29udHJvbGxlci5tbQogVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0KK1VJUHJvY2Vz
cy9Db2NvYS9VSVByb2Nlc3NMb2dJbml0aWFsaXphdGlvbkNvY29hLm1tCiBVSVByb2Nlc3MvQ29j
b2EvVUlSZW1vdGVPYmplY3RSZWdpc3RyeS5jcHAKIFVJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFD
YXB0dXJlTWFuYWdlclByb3h5LmNwcAogVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlclByb3h5Lm1tCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BdXhpbGlhcnlQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QXV4aWxpYXJ5UHJvY2Vzc1Byb3h5LmNwcAppbmRleCBmNTVmYzI2Mzk0ZThiMjc1NzRiNTk2MGFk
ODU4NzQ2MWNjNGJkYWM3Li5jYzBkOWQ2Y2ZkYzk5NzNlOTlhNjg5NjkzOTA4MDAzN2MxOWI3Yjhl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXhpbGlhcnlQcm9jZXNzUHJv
eHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1eGlsaWFyeVByb2Nlc3NQcm94
eS5jcHAKQEAgLTI3LDEyICsyNywxMCBAQAogI2luY2x1ZGUgIkF1eGlsaWFyeVByb2Nlc3NQcm94
eS5oIgogCiAjaW5jbHVkZSAiQXV4aWxpYXJ5UHJvY2Vzc01lc3NhZ2VzLmgiCi0jaW5jbHVkZSAi
TG9nSW5pdGlhbGl6YXRpb24uaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSAiVUlQ
cm9jZXNzTG9nSW5pdGlhbGl6YXRpb24uaCIKICNpbmNsdWRlICJXZWJQYWdlUHJveHkuaCIKICNp
bmNsdWRlICJXZWJQcm9jZXNzUHJveHkuaCIKLSNpbmNsdWRlIDxXZWJDb3JlL0xvZ0luaXRpYWxp
emF0aW9uLmg+Ci0jaW5jbHVkZSA8d3RmL0xvZ0luaXRpYWxpemF0aW9uLmg+CiAjaW5jbHVkZSA8
d3RmL1J1bkxvb3AuaD4KIAogI2lmIFBMQVRGT1JNKENPQ09BKQpAQCAtNDA4LDkgKzQwNiw5IEBA
IEF1eGlsaWFyeVByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMgQXV4aWxpYXJ5UHJvY2Vzc1Byb3h5
OjphdXhpbGlhcnlQcm9jZXNzUGFyYW1lCiB7CiAgICAgQXV4aWxpYXJ5UHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVycyBwYXJhbWV0ZXJzOwogI2lmICFMT0dfRElTQUJMRUQgfHwgIVJFTEVBU0VfTE9H
X0RJU0FCTEVECi0gICAgcGFyYW1ldGVycy53dGZMb2dnaW5nQ2hhbm5lbHMgPSBXVEY6OmxvZ0xl
dmVsU3RyaW5nKCk7Ci0gICAgcGFyYW1ldGVycy53ZWJDb3JlTG9nZ2luZ0NoYW5uZWxzID0gV2Vi
Q29yZTo6bG9nTGV2ZWxTdHJpbmcoKTsKLSAgICBwYXJhbWV0ZXJzLndlYktpdExvZ2dpbmdDaGFu
bmVscyA9IFdlYktpdDo6bG9nTGV2ZWxTdHJpbmcoKTsKKyAgICBwYXJhbWV0ZXJzLnd0ZkxvZ2dp
bmdDaGFubmVscyA9IFVJUHJvY2Vzczo6d3RmTG9nTGV2ZWxTdHJpbmcoKTsKKyAgICBwYXJhbWV0
ZXJzLndlYkNvcmVMb2dnaW5nQ2hhbm5lbHMgPSBVSVByb2Nlc3M6OndlYkNvcmVMb2dMZXZlbFN0
cmluZygpOworICAgIHBhcmFtZXRlcnMud2ViS2l0TG9nZ2luZ0NoYW5uZWxzID0gVUlQcm9jZXNz
Ojp3ZWJLaXRMb2dMZXZlbFN0cmluZygpOwogI2VuZGlmCiAgICAgcmV0dXJuIHBhcmFtZXRlcnM7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSVByb2Nlc3NM
b2dJbml0aWFsaXphdGlvbkNvY29hLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2Ev
VUlQcm9jZXNzTG9nSW5pdGlhbGl6YXRpb25Db2NvYS5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44YjllOTcwNDRk
NzQwZmUyOTRjN2NmYzdlYWZiZDgzYjQyZjYzN2RjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlQcm9jZXNzTG9nSW5pdGlhbGl6YXRpb25Db2NvYS5t
bQpAQCAtMCwwICsxLDU5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIyIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbXBvcnQg
ImNvbmZpZy5oIgorI2ltcG9ydCAiVUlQcm9jZXNzTG9nSW5pdGlhbGl6YXRpb24uaCIKKworI2lm
IFBMQVRGT1JNKENPQ09BKQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworbmFtZXNwYWNlIFVJUHJv
Y2VzcyB7CisKK1N0cmluZyB3dGZMb2dMZXZlbFN0cmluZygpCit7CisgICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPFN0cmluZz4gbG9nU3RyaW5nID0gW1tOU1VzZXJEZWZhdWx0cyBzdGFuZGFyZFVz
ZXJEZWZhdWx0c10gc3RyaW5nRm9yS2V5OkAiV1RGTG9nZ2luZyJdOworICAgIHJldHVybiBsb2dT
dHJpbmc7Cit9CisKK1N0cmluZyB3ZWJDb3JlTG9nTGV2ZWxTdHJpbmcoKQoreworICAgIHN0YXRp
YyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IGxvZ1N0cmluZyA9IFtbTlNVc2VyRGVmYXVsdHMgc3Rh
bmRhcmRVc2VyRGVmYXVsdHNdIHN0cmluZ0ZvcktleTpAIldlYkNvcmVMb2dnaW5nIl07CisgICAg
cmV0dXJuIGxvZ1N0cmluZzsKK30KKworU3RyaW5nIHdlYktpdExvZ0xldmVsU3RyaW5nKCkKK3sK
KyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiBsb2dTdHJpbmcgPSBbW05TVXNlckRl
ZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRzXSBzdHJpbmdGb3JLZXk6QCJXZWJLaXQyTG9nZ2lu
ZyJdOworICAgIHJldHVybiBsb2dTdHJpbmc7Cit9CisKK30KKworfQorCisjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VJUHJvY2Vzc0xvZ0luaXRpYWxpemF0aW9u
LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VJUHJvY2Vzc0xvZ0luaXRpYWxpemF0aW9u
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5kYzQ5MTdjOGM2MTBlZDRhYjg4NDAzMjdmZDk1NGRjYjRiNTQzOWIy
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVUlQcm9jZXNzTG9n
SW5pdGlhbGl6YXRpb24uY3BwCkBAIC0wLDAgKzEsNzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVUlQcm9jZXNzTG9nSW5pdGlhbGl6YXRpb24uaCIKKwor
I2lmICFMT0dfRElTQUJMRUQgfHwgIVJFTEVBU0VfTE9HX0RJU0FCTEVECisKKyNpbmNsdWRlICJM
b2dJbml0aWFsaXphdGlvbi5oIgorI2luY2x1ZGUgPFdlYkNvcmUvTG9nSW5pdGlhbGl6YXRpb24u
aD4KKyNpbmNsdWRlIDx3dGYvTG9nSW5pdGlhbGl6YXRpb24uaD4KKworbmFtZXNwYWNlIFdlYktp
dCB7CisKK25hbWVzcGFjZSBVSVByb2Nlc3MgeworCit2b2lkIGluaXRpYWxpemVMb2dnaW5nSWZO
ZWNlc3NhcnkoKQoreworICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlRmxhZzsKKyAgICBz
dGQ6OmNhbGxfb25jZShvbmNlRmxhZywgW10geworICAgICAgICBXVEY6OmxvZ0NoYW5uZWxzKCku
aW5pdGlhbGl6ZUxvZ0NoYW5uZWxzSWZOZWNlc3Nhcnkod3RmTG9nTGV2ZWxTdHJpbmcoKSk7Cisg
ICAgICAgIFdlYkNvcmU6OmxvZ0NoYW5uZWxzKCkuaW5pdGlhbGl6ZUxvZ0NoYW5uZWxzSWZOZWNl
c3Nhcnkod2ViQ29yZUxvZ0xldmVsU3RyaW5nKCkpOworICAgICAgICBXZWJLaXQ6OmxvZ0NoYW5u
ZWxzKCkuaW5pdGlhbGl6ZUxvZ0NoYW5uZWxzSWZOZWNlc3Nhcnkod2ViS2l0TG9nTGV2ZWxTdHJp
bmcoKSk7CisgICAgfSk7Cit9CisKKyNpZiAhUExBVEZPUk0oQ09DT0EpCitTdHJpbmcgd3RmTG9n
TGV2ZWxTdHJpbmcoKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IGxvZ1N0
cmluZyA9IFdURjo6bG9nTGV2ZWxTdHJpbmcoKTsKKyAgICByZXR1cm4gbG9nU3RyaW5nOworfQor
CitTdHJpbmcgd2ViQ29yZUxvZ0xldmVsU3RyaW5nKCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8U3RyaW5nPiBsb2dTdHJpbmcgPSBXZWJDb3JlOjpsb2dMZXZlbFN0cmluZygpOworICAg
IHJldHVybiBsb2dTdHJpbmc7Cit9CisKK1N0cmluZyB3ZWJLaXRMb2dMZXZlbFN0cmluZygpCit7
CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmluZz4gbG9nU3RyaW5nID0gV2ViS2l0Ojps
b2dMZXZlbFN0cmluZygpOworICAgIHJldHVybiBsb2dTdHJpbmc7Cit9CisjZW5kaWYKKworfQor
Cit9CisKKyNlbmRpZiAvLyAhTE9HX0RJU0FCTEVEIHx8ICFSRUxFQVNFX0xPR19ESVNBQkxFRAor
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9VSVByb2Nlc3NMb2dJbml0aWFs
aXphdGlvbi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVUlQcm9jZXNzTG9nSW5pdGlhbGl6
YXRpb24uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4yZTE0ZjI2YjFkMGQxNDMzZjdmNDU5YzYyODQ2NzFiYzIxNjA1
NzYyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVUlQcm9jZXNz
TG9nSW5pdGlhbGl6YXRpb24uaApAQCAtMCwwICsxLDUxIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdt
YSBvbmNlCisKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorCisvLyBOT1RFOiBUaGVzZSBtZXRo
b2RzIGNvbmZpZ3VyZSBsb2dnaW5nIHNlcGFyYXRlbHkgYW5kIGRpZmZlcmVudGx5IGZvciB0aGUg
VUlQcm9jZXNzCisvLyB0aGFuIHNpbWlsYXIgbWV0aG9kcyBlbHNld2hlcmUuIFNwZWNpZmljYWxs
eSwgdGhlIGxvZyBzdHJpbmdzIHJldHVybmVkIGZyb20gdGhlc2UKKy8vIG1ldGhvZHMgYXJlIGlu
aXRpYWxpemVkIG9uY2UsIHJhdGhlciB0aGFuIHJlcGVhdGVkbHksIGFuZCBhcmUgaW50ZW5kZWQg
dG8gYmUgcGFzc2VkCisvLyB0aHJvdWdoIHRvIEF1eGlsaWFyeVByb2Nlc3NlcyB0byBmdXJ0aGVy
IHJlZHVjZSB0aGUgcnVudGltZSBjb3N0IG9mIGxvZyBzdHJpbmcKKy8vIGluaXRpYWxpemF0aW9u
LgorCisjaWYgIUxPR19ESVNBQkxFRCB8fCAhUkVMRUFTRV9MT0dfRElTQUJMRUQKKworbmFtZXNw
YWNlIFdlYktpdCB7CisKK25hbWVzcGFjZSBVSVByb2Nlc3MgeworCit2b2lkIGluaXRpYWxpemVM
b2dnaW5nSWZOZWNlc3NhcnkoKTsKK1N0cmluZyB3dGZMb2dMZXZlbFN0cmluZygpOworU3RyaW5n
IHdlYkNvcmVMb2dMZXZlbFN0cmluZygpOworU3RyaW5nIHdlYktpdExvZ0xldmVsU3RyaW5nKCk7
CisKK30KKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlByb2Nlc3NQb29sLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
b29sLmNwcAppbmRleCAwOGI2NDY0NDBjYzAyOGFhZmUyOWRhNmJkYjA1YjU1Mzc5OWQyZTE5Li45
OTM1OGNhMDlkYWY3M2M0NTllMDgxZjhmYWFiYWUyZGVjOGU1MTVkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCkBAIC00NSw3ICs0NSw2IEBACiAjaW5jbHVk
ZSAiR2FtZXBhZERhdGEuaCIKICNpbmNsdWRlICJIaWdoUGVyZm9ybWFuY2VHcmFwaGljc1VzYWdl
U2FtcGxlci5oIgogI2luY2x1ZGUgIkxlZ2FjeUdsb2JhbFNldHRpbmdzLmgiCi0jaW5jbHVkZSAi
TG9nSW5pdGlhbGl6YXRpb24uaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTmV0
d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCIKICNpbmNsdWRlICJOZXR3b3JrUHJvY2Vz
c01lc3NhZ2VzLmgiCkBAIC01Niw2ICs1NSw3IEBACiAjaW5jbHVkZSAiVGV4dENoZWNrZXIuaCIK
ICNpbmNsdWRlICJVSUdhbWVwYWQuaCIKICNpbmNsdWRlICJVSUdhbWVwYWRQcm92aWRlci5oIgor
I2luY2x1ZGUgIlVJUHJvY2Vzc0xvZ0luaXRpYWxpemF0aW9uLmgiCiAjaW5jbHVkZSAiV0tDb250
ZXh0UHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYkF1dG9tYXRpb25TZXNzaW9uLmgiCiAjaW5jbHVk
ZSAiV2ViQmFja0ZvcndhcmRDYWNoZS5oIgpAQCAtODUsNyArODUsNiBAQAogI2luY2x1ZGUgIldl
YnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlND
SW5saW5lcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQXBwbGljYXRpb25DYWNoZVN0b3JhZ2UuaD4K
LSNpbmNsdWRlIDxXZWJDb3JlL0xvZ0luaXRpYWxpemF0aW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9Nb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTmV0
d29ya1N0b3JhZ2VTZXNzaW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybVNjcmVlbi5o
PgpAQCAtOTcsNyArOTYsNiBAQAogI2luY2x1ZGUgPFdlYkNvcmUvUnVudGltZUFwcGxpY2F0aW9u
Q2hlY2tzLmg+CiAjaW5jbHVkZSA8cGFsL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUgPHd0Zi9DYWxs
YmFja0FnZ3JlZ2F0b3IuaD4KLSNpbmNsdWRlIDx3dGYvTG9nSW5pdGlhbGl6YXRpb24uaD4KICNp
bmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5o
PgogI2luY2x1ZGUgPHd0Zi9Qcm9jZXNzUHJpdmlsZWdlLmg+CkBAIC0yNjksOSArMjY3LDcgQEAg
V2ViUHJvY2Vzc1Bvb2w6OldlYlByb2Nlc3NQb29sKEFQSTo6UHJvY2Vzc1Bvb2xDb25maWd1cmF0
aW9uJiBjb25maWd1cmF0aW9uKQogICAgIHJlc29sdmVQYXRoc0ZvclNhbmRib3hFeHRlbnNpb25z
KCk7CiAKICNpZiAhTE9HX0RJU0FCTEVEIHx8ICFSRUxFQVNFX0xPR19ESVNBQkxFRAotICAgIFdU
Rjo6bG9nQ2hhbm5lbHMoKS5pbml0aWFsaXplTG9nQ2hhbm5lbHNJZk5lY2Vzc2FyeSgpOwotICAg
IFdlYkNvcmU6OmxvZ0NoYW5uZWxzKCkuaW5pdGlhbGl6ZUxvZ0NoYW5uZWxzSWZOZWNlc3Nhcnko
KTsKLSAgICBXZWJLaXQ6OmxvZ0NoYW5uZWxzKCkuaW5pdGlhbGl6ZUxvZ0NoYW5uZWxzSWZOZWNl
c3NhcnkoKTsKKyAgICBVSVByb2Nlc3M6OmluaXRpYWxpemVMb2dnaW5nSWZOZWNlc3NhcnkoKTsK
ICNlbmRpZiAvLyAhTE9HX0RJU0FCTEVEIHx8ICFSRUxFQVNFX0xPR19ESVNBQkxFRAogCiAjaWZu
ZGVmIE5ERUJVRwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKaW5kZXggNjA3MzI4ZTA2YmNjY2E0M2IyOWI1NWYwMTdkOWIxZWYxMzQ1NGUwNi4uYzFh
Yjg5ODE5MTc4ZDAyOTZjM2EzYWU1NWQxYzRiMTFlMjcyMTY0NCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC02MjY0LDYgKzYyNjQsOSBA
QAogCQlDRDgyNTJFMDI1RDQ5MTg0MDA4NjJGRDggLyogUmVtb3RlUmVtb3RlQ29tbWFuZExpc3Rl
bmVyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZVJlbW90ZUNv
bW1hbmRMaXN0ZW5lck1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUNEODI1MkUxMjVENDkxODUwMDg2MkZEOCAvKiBSZW1vdGVSZW1vdGVDb21tYW5kTGlz
dGVuZXJNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVSZW1vdGVDb21tYW5kTGlzdGVu
ZXJNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDk1NDkzNTI2MTU5
MDA0MDA4MzcyRDkgLyogbGliV2ViS2l0U3dpZnQuZHlsaWIgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZXhwbGljaXRGaWxlVHlwZSA9ICJjb21waWxlZC5tYWNoLW8uZHlsaWIiOyBpbmNs
dWRlSW5JbmRleCA9IDA7IHBhdGggPSBsaWJXZWJLaXRTd2lmdC5keWxpYjsgc291cmNlVHJlZSA9
IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKKwkJQ0Q5QTY0OUYyN0M4OTcyQzAwMzgyN0MwIC8qIFVJ
UHJvY2Vzc0xvZ0luaXRpYWxpemF0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFVJUHJvY2Vzc0xvZ0lu
aXRpYWxpemF0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEOUE2NEEwMjdD
ODk3MkMwMDM4MjdDMCAvKiBVSVByb2Nlc3NMb2dJbml0aWFsaXphdGlvbi5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBVSVByb2Nlc3NMb2dJbml0aWFsaXphdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUNEOUE2NEExMjdDODk3NDIwMDM4MjdDMCAvKiBVSVByb2Nlc3NMb2dJ
bml0aWFsaXphdGlvbkNvY29hLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gVUlQcm9jZXNzTG9n
SW5pdGlhbGl6YXRpb25Db2NvYS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RB
MDQxRjMxQUNFMjEwNTAwNEExM0VDIC8qIEJhY2tCb2FyZFNlcnZpY2VzU1BJLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJhY2tCb2FyZFNlcnZpY2VzU1BJLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEQTI5QTE4MUNCREJGNDEwMDkwMUNDRiAvKiBQbGF5YmFj
a1Nlc3Npb25NYW5hZ2VyLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRo
ID0gUGxheWJhY2tTZXNzaW9uTWFuYWdlci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQ0RBMjlBMTkxQ0JEQkY0MTAwOTAxQ0NGIC8qIFBsYXliYWNrU2Vzc2lvbk1hbmFnZXIuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGxheWJhY2tTZXNzaW9uTWFuYWdlci5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNzYyOSw2ICs3NjMyLDcgQEAKIAkJCQky
RDBDRjY0QjIxRjJBODAzMDA3ODc1NjYgLyogVGV4dENoZWNraW5nQ29udHJvbGxlci5tbSAqLywK
IAkJCQkxQUZFNDM2NDE4QjZDMDgxMDA5QzdBNDggLyogVUlEZWxlZ2F0ZS5oICovLAogCQkJCTFB
RkU0MzYzMThCNkMwODEwMDlDN0E0OCAvKiBVSURlbGVnYXRlLm1tICovLAorCQkJCUNEOUE2NEEx
MjdDODk3NDIwMDM4MjdDMCAvKiBVSVByb2Nlc3NMb2dJbml0aWFsaXphdGlvbkNvY29hLm1tICov
LAogCQkJCTQ2MzIzNjg2MjMxNDgzM0YwMEE0OEZBNyAvKiBVSVJlbW90ZU9iamVjdFJlZ2lzdHJ5
LmNwcCAqLywKIAkJCQk0NjMyMzY4NTIzMTQ4MzNGMDBBNDhGQTcgLyogVUlSZW1vdGVPYmplY3RS
ZWdpc3RyeS5oICovLAogCQkJCTA3MDI1OUJFMjUyMjg0MUMwMDE1MzQwNSAvKiBVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5tbSAqLywKQEAgLTExMTU0LDYgKzExMTU4LDgg
QEAKIAkJCQkxQUE0MTdDOTEyQzAwQ0NBMDAyQkU2N0IgLyogVGV4dENoZWNrZXIuaCAqLywKIAkJ
CQk1M0NGQkJDNjIyMjREMUIwMDAyNjY1NDYgLyogVGV4dENoZWNrZXJDb21wbGV0aW9uLmNwcCAq
LywKIAkJCQk1M0NGQkJDNzIyMjREMUIwMDAyNjY1NDYgLyogVGV4dENoZWNrZXJDb21wbGV0aW9u
LmggKi8sCisJCQkJQ0Q5QTY0QTAyN0M4OTcyQzAwMzgyN0MwIC8qIFVJUHJvY2Vzc0xvZ0luaXRp
YWxpemF0aW9uLmNwcCAqLywKKwkJCQlDRDlBNjQ5RjI3Qzg5NzJDMDAzODI3QzAgLyogVUlQcm9j
ZXNzTG9nSW5pdGlhbGl6YXRpb24uaCAqLywKIAkJCQkwNzI5N0Y5QzFDMTdCQkVBMDAzRjA3MzUg
LyogVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHkuY3BwICovLAogCQkJCTA3Mjk3RjlEMUMx
N0JCRUEwMDNGMDczNSAvKiBVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eS5oICovLAogCQkJ
CTRBNDEwRjM5MTlBRjdCMDQwMDJFQkFCNSAvKiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXJQcm94eS5jcHAgKi8sCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>453396</attachid>
            <date>2022-02-28 09:20:41 -0800</date>
            <delta_ts>2022-02-28 09:53:35 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237183-20220228092040.patch</filename>
            <type>text/plain</type>
            <size>18357</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwNTMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDEyMGRjNDE1OWFhN2NkNGJh
YzdiNjFmNmZlZTI2Yjk1NDIyYjdhNmQuLmQ5ZjcxYTNkOTQ4N2E3ZDI3MzY0YWI0MjMxNTc3MDA4
Zjk1M2QyYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzYgQEAKKzIwMjItMDItMjQgIEplciBOb2Js
ZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBBbGxvdyBsb2dnaW5n
IHRvIGJlIGNvbmZpZ3VyZWQgYnkgTlNEZWZhdWx0cyAod2l0aG91dCByZWdyZXNzaW5nIGxhdW5j
aCB0aW1lKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjM3MTgzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
SW4gcjIyMDc4MCwgY29kZSB3YXMgYWRkZWQgdG8gV2ViUHJvY2Vzc1Bvb2xDb2NvYSB0byBleHBs
aWNpdGx5IHBhc3MgdGhlIHJlc3VsdHMgb2YgYSBOU1VzZXJEZWZhdWx0cworICAgICAgICB0byBu
ZXdseSBjcmVhdGVkIFdlYkNvbnRlbnQgcHJvY2Vzc2VzIHRvIGRldGVybWluZSBsb2cgY2hhbm5l
bCBsZXZlbHMuIExhdGVyLCBpbiByMjMyMTU4LCBOU1VzZXJEZWZhdWx0cworICAgICAgICB3ZXJl
IHJlbW92ZWQgZnJvbSB0aGUgZGVmYXVsdCBsb2dMZXZlbFN0cmluZygpIGltcGxlbWVudGF0aW9u
cyBpbiBXVEYsIFdlYkNvcmUsIGFuZCBXZWJLaXQgdG8gaW1wcm92ZQorICAgICAgICBwcm9jZXNz
IGxhdW5jaCB0aW1lIHBlcmZvcm1hbmNlLiBJbiByMjc5Nzk2LCB0aGUgc2FtZSB0ZWNobmlxdWUg
c3VlZCBpbiBXZWJQcm9jZXNzUG9vbENvY29hIHdhcyBhZGRlZAorICAgICAgICB0byBHUFVQcm9j
ZXNzUHJveHlDb2NvYSB0byBwYXNzIHRob3NlIGxvZyBsZXZlbCBzdHJpbmdzIHRvIHRoZSBHUFVQ
cm9jZXNzLiBBbmQgdGhlbiBpbiByMjg2NDg0LCBhbGwgdGhlCisgICAgICAgIHVzZXMgb2YgTlNV
c2VyRGVmYXVsdHMgd2VyZSByZW1vdmVkIGZyb20gV2ViUHJvY2Vzc1Bvb2xDb2NvYSBhbmQgR1BV
UHJvY2Vzc1Byb3h5Q29jb2Egd2VyZSByZW1vdmVkLAorICAgICAgICByZW1vdmluZyB0aGUgYWJp
bGl0eSB0byBpbmNyZWFzZSB0aGUgbG9nIGNoYW5uZWwgbGV2ZWxzIGF0IHJ1bnRpbWUgdGhyb3Vn
aCBOU1VzZXJEZWZ1YWx0cy4KKworICAgICAgICBBZGQgYmFjayBpbiB0aGUgYWJpbGl0eSB0byBk
ZWZpbmUgbG9nIGxldmVscyBmb3IgdGhlIFVJUHJvY2VzcyBhbmQgYWxsIEF1eGlsaWFyeVByb2Nl
c3NlcyB3aXRob3V0CisgICAgICAgIHJlZ3Jlc3NpbmcgbGF1bmNoIHRpbWUgYnkgb25seSBjaGVj
a2luZyB0aGUgTlNVc2VyRGVmYXVsdCBvbmNlLCBvbmx5IGluIHRoZSBVSVByb2Nlc3MsIHN0b3Jp
bmcgdGhlIHJlc3VsdAorICAgICAgICBpbiBhIHN0YXRpYyB2YXJpYWJsZSwgYW5kIHBhc3Npbmcg
dGhlIHJlc3VsdHMgb2YgdGhhdCBjaGVjayB0byBhbGwgQXV4aWxpYXJ5UHJvY2Vzc2VzIGF0IGNy
ZWF0aW9uIHRpbWUuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQXV4aWxpYXJ5UHJvY2Vzc1Byb3h5
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6QXV4aWxpYXJ5UHJvY2Vzc1Byb3h5OjphdXhpbGlhcnlQ
cm9jZXNzUGFyYW1ldGVycyk6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1VJUHJvY2Vzc0xv
Z0luaXRpYWxpemF0aW9uQ29jb2EubW06IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpVSVByb2Nl
c3M6Ond0ZkxvZ0xldmVsU3RyaW5nKToKKyAgICAgICAgKFdlYktpdDo6VUlQcm9jZXNzOjp3ZWJD
b3JlTG9nTGV2ZWxTdHJpbmcpOgorICAgICAgICAoV2ViS2l0OjpVSVByb2Nlc3M6OndlYktpdExv
Z0xldmVsU3RyaW5nKToKKyAgICAgICAgKiBVSVByb2Nlc3MvVUlQcm9jZXNzTG9nSW5pdGlhbGl6
YXRpb24uY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6VUlQcm9jZXNzOjppbml0aWFsaXpl
TG9nZ2luZ0lmTmVjZXNzYXJ5KToKKyAgICAgICAgKFdlYktpdDo6VUlQcm9jZXNzOjp3dGZMb2dM
ZXZlbFN0cmluZyk6CisgICAgICAgIChXZWJLaXQ6OlVJUHJvY2Vzczo6d2ViQ29yZUxvZ0xldmVs
U3RyaW5nKToKKyAgICAgICAgKFdlYktpdDo6VUlQcm9jZXNzOjp3ZWJLaXRMb2dMZXZlbFN0cmlu
Zyk6CisgICAgICAgICogVUlQcm9jZXNzL1VJUHJvY2Vzc0xvZ0luaXRpYWxpemF0aW9uLmg6IEFk
ZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHA6CisKIDIwMjItMDIt
MjUgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CiAKICAgICAgICAgUmVncmVzc2lv
bihyMjQyNzI5KTogbV9vcmlnaW4gaW4gSURCRGF0YWJhc2VJZGVudGlmaWVyIGlzIGluY29ycmVj
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJLaXQv
U291cmNlcy50eHQKaW5kZXggOTJhNThiMGJkN2NiNTMwMzAxYmViMmFiMWU5YjExNTkzOGQwODMw
NS4uMmUyZDcyZjZiMmFmOGFlNzZhYWM1MjJjMzUwYjI5MDA2ODI1ODg1NyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0
CkBAIC00MjcsNiArNDI3LDcgQEAgVUlQcm9jZXNzL1N5c3RlbVByZXZpZXdDb250cm9sbGVyLmNw
cAogVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbk1hbmFnZXIuY3BwCiBVSVBy
b2Nlc3MvVGV4dENoZWNrZXIuY3BwCiBVSVByb2Nlc3MvVGV4dENoZWNrZXJDb21wbGV0aW9uLmNw
cAorVUlQcm9jZXNzL1VJUHJvY2Vzc0xvZ0luaXRpYWxpemF0aW9uLmNwcAogVUlQcm9jZXNzL1Vz
ZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5LmNwcAogVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcAogVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0UHJveHkuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2Nv
YS50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKaW5kZXggMzlmZWE5MWNlNTYx
NzU4MTYwYWQ5MjE4OTg5NDUzZTU4M2VkNjQ2MS4uMmM2MDYyY2YwYWFjNGIxOWQ0YmQyZTMxODhl
YWI5NjliNDkzZWY3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0
CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dApAQCAtNDIzLDYgKzQyMyw3IEBA
IFVJUHJvY2Vzcy9Db2NvYS9TZXNzaW9uU3RhdGVDb2RpbmcubW0KIFVJUHJvY2Vzcy9Db2NvYS9T
eXN0ZW1QcmV2aWV3Q29udHJvbGxlckNvY29hLm1tCiBVSVByb2Nlc3MvQ29jb2EvVGV4dENoZWNr
aW5nQ29udHJvbGxlci5tbQogVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0KK1VJUHJvY2Vz
cy9Db2NvYS9VSVByb2Nlc3NMb2dJbml0aWFsaXphdGlvbkNvY29hLm1tCiBVSVByb2Nlc3MvQ29j
b2EvVUlSZW1vdGVPYmplY3RSZWdpc3RyeS5jcHAKIFVJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFD
YXB0dXJlTWFuYWdlclByb3h5LmNwcAogVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlclByb3h5Lm1tCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BdXhpbGlhcnlQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QXV4aWxpYXJ5UHJvY2Vzc1Byb3h5LmNwcAppbmRleCBmNTVmYzI2Mzk0ZThiMjc1NzRiNTk2MGFk
ODU4NzQ2MWNjNGJkYWM3Li5jYzBkOWQ2Y2ZkYzk5NzNlOTlhNjg5NjkzOTA4MDAzN2MxOWI3Yjhl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXhpbGlhcnlQcm9jZXNzUHJv
eHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1eGlsaWFyeVByb2Nlc3NQcm94
eS5jcHAKQEAgLTI3LDEyICsyNywxMCBAQAogI2luY2x1ZGUgIkF1eGlsaWFyeVByb2Nlc3NQcm94
eS5oIgogCiAjaW5jbHVkZSAiQXV4aWxpYXJ5UHJvY2Vzc01lc3NhZ2VzLmgiCi0jaW5jbHVkZSAi
TG9nSW5pdGlhbGl6YXRpb24uaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSAiVUlQ
cm9jZXNzTG9nSW5pdGlhbGl6YXRpb24uaCIKICNpbmNsdWRlICJXZWJQYWdlUHJveHkuaCIKICNp
bmNsdWRlICJXZWJQcm9jZXNzUHJveHkuaCIKLSNpbmNsdWRlIDxXZWJDb3JlL0xvZ0luaXRpYWxp
emF0aW9uLmg+Ci0jaW5jbHVkZSA8d3RmL0xvZ0luaXRpYWxpemF0aW9uLmg+CiAjaW5jbHVkZSA8
d3RmL1J1bkxvb3AuaD4KIAogI2lmIFBMQVRGT1JNKENPQ09BKQpAQCAtNDA4LDkgKzQwNiw5IEBA
IEF1eGlsaWFyeVByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMgQXV4aWxpYXJ5UHJvY2Vzc1Byb3h5
OjphdXhpbGlhcnlQcm9jZXNzUGFyYW1lCiB7CiAgICAgQXV4aWxpYXJ5UHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVycyBwYXJhbWV0ZXJzOwogI2lmICFMT0dfRElTQUJMRUQgfHwgIVJFTEVBU0VfTE9H
X0RJU0FCTEVECi0gICAgcGFyYW1ldGVycy53dGZMb2dnaW5nQ2hhbm5lbHMgPSBXVEY6OmxvZ0xl
dmVsU3RyaW5nKCk7Ci0gICAgcGFyYW1ldGVycy53ZWJDb3JlTG9nZ2luZ0NoYW5uZWxzID0gV2Vi
Q29yZTo6bG9nTGV2ZWxTdHJpbmcoKTsKLSAgICBwYXJhbWV0ZXJzLndlYktpdExvZ2dpbmdDaGFu
bmVscyA9IFdlYktpdDo6bG9nTGV2ZWxTdHJpbmcoKTsKKyAgICBwYXJhbWV0ZXJzLnd0ZkxvZ2dp
bmdDaGFubmVscyA9IFVJUHJvY2Vzczo6d3RmTG9nTGV2ZWxTdHJpbmcoKTsKKyAgICBwYXJhbWV0
ZXJzLndlYkNvcmVMb2dnaW5nQ2hhbm5lbHMgPSBVSVByb2Nlc3M6OndlYkNvcmVMb2dMZXZlbFN0
cmluZygpOworICAgIHBhcmFtZXRlcnMud2ViS2l0TG9nZ2luZ0NoYW5uZWxzID0gVUlQcm9jZXNz
Ojp3ZWJLaXRMb2dMZXZlbFN0cmluZygpOwogI2VuZGlmCiAgICAgcmV0dXJuIHBhcmFtZXRlcnM7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSVByb2Nlc3NM
b2dJbml0aWFsaXphdGlvbkNvY29hLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2Ev
VUlQcm9jZXNzTG9nSW5pdGlhbGl6YXRpb25Db2NvYS5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNDQxMzFmNWMx
ZjJmNDBkNGI4NDlhNjcwMDE4MzIyNTE2NjFiNGJjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlQcm9jZXNzTG9nSW5pdGlhbGl6YXRpb25Db2NvYS5t
bQpAQCAtMCwwICsxLDcxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIyIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbXBvcnQg
ImNvbmZpZy5oIgorI2ltcG9ydCAiVUlQcm9jZXNzTG9nSW5pdGlhbGl6YXRpb24uaCIKKworI2lm
IFBMQVRGT1JNKENPQ09BKQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworbmFtZXNwYWNlIFVJUHJv
Y2VzcyB7CisKK1N0cmluZyB3dGZMb2dMZXZlbFN0cmluZygpCit7CisgICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPFN0cmluZz4gbG9nU3RyaW5nOworICAgIHN0YXRpYyBkaXNwYXRjaF9vbmNlX3Qg
b25jZVRva2VuOworICAgIGRpc3BhdGNoX29uY2UoJm9uY2VUb2tlbiwgXnsKKyAgICAgICAgbG9n
U3RyaW5nID0gW1tOU1VzZXJEZWZhdWx0cyBzdGFuZGFyZFVzZXJEZWZhdWx0c10gc3RyaW5nRm9y
S2V5OkAiV1RGTG9nZ2luZyJdOworICAgIH0pOworICAgIHJldHVybiBsb2dTdHJpbmc7Cit9CisK
K1N0cmluZyB3ZWJDb3JlTG9nTGV2ZWxTdHJpbmcoKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ry
b3llZDxTdHJpbmc+IGxvZ1N0cmluZzsKKyAgICBzdGF0aWMgZGlzcGF0Y2hfb25jZV90IG9uY2VU
b2tlbjsKKyAgICBkaXNwYXRjaF9vbmNlKCZvbmNlVG9rZW4sIF57CisgICAgICAgIGxvZ1N0cmlu
ZyA9IFtbTlNVc2VyRGVmYXVsdHMgc3RhbmRhcmRVc2VyRGVmYXVsdHNdIHN0cmluZ0ZvcktleTpA
IldlYkNvcmVMb2dnaW5nIl07CisgICAgfSk7CisgICAgcmV0dXJuIGxvZ1N0cmluZzsKK30KKwor
U3RyaW5nIHdlYktpdExvZ0xldmVsU3RyaW5nKCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8U3RyaW5nPiBsb2dTdHJpbmc7CisgICAgc3RhdGljIGRpc3BhdGNoX29uY2VfdCBvbmNlVG9r
ZW47CisgICAgZGlzcGF0Y2hfb25jZSgmb25jZVRva2VuLCBeeworICAgICAgICBsb2dTdHJpbmcg
PSBbW05TVXNlckRlZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRzXSBzdHJpbmdGb3JLZXk6QCJX
ZWJLaXQyTG9nZ2luZyJdOworICAgIH0pOworICAgIHJldHVybiBsb2dTdHJpbmc7Cit9CisKK30K
KworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VJUHJv
Y2Vzc0xvZ0luaXRpYWxpemF0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VJUHJv
Y2Vzc0xvZ0luaXRpYWxpemF0aW9uLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yZDFmODk1YjM1MDg0MGMxNTVl
Njk5ODkwNTA0MmU0NTI2MmFjZDQ0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvVUlQcm9jZXNzTG9nSW5pdGlhbGl6YXRpb24uY3BwCkBAIC0wLDAgKzEsODYgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVUlQcm9jZXNzTG9n
SW5pdGlhbGl6YXRpb24uaCIKKworI2lmICFMT0dfRElTQUJMRUQgfHwgIVJFTEVBU0VfTE9HX0RJ
U0FCTEVECisKKyNpbmNsdWRlICJMb2dJbml0aWFsaXphdGlvbi5oIgorI2luY2x1ZGUgPFdlYkNv
cmUvTG9nSW5pdGlhbGl6YXRpb24uaD4KKyNpbmNsdWRlIDx3dGYvTG9nSW5pdGlhbGl6YXRpb24u
aD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK25hbWVzcGFjZSBVSVByb2Nlc3MgeworCit2b2lk
IGluaXRpYWxpemVMb2dnaW5nSWZOZWNlc3NhcnkoKQoreworICAgIHN0YXRpYyBzdGQ6Om9uY2Vf
ZmxhZyBvbmNlRmxhZzsKKyAgICBzdGQ6OmNhbGxfb25jZShvbmNlRmxhZywgW10geworICAgICAg
ICBXVEY6OmxvZ0NoYW5uZWxzKCkuaW5pdGlhbGl6ZUxvZ0NoYW5uZWxzSWZOZWNlc3Nhcnkod3Rm
TG9nTGV2ZWxTdHJpbmcoKSk7CisgICAgICAgIFdlYkNvcmU6OmxvZ0NoYW5uZWxzKCkuaW5pdGlh
bGl6ZUxvZ0NoYW5uZWxzSWZOZWNlc3Nhcnkod2ViQ29yZUxvZ0xldmVsU3RyaW5nKCkpOworICAg
ICAgICBXZWJLaXQ6OmxvZ0NoYW5uZWxzKCkuaW5pdGlhbGl6ZUxvZ0NoYW5uZWxzSWZOZWNlc3Nh
cnkod2ViS2l0TG9nTGV2ZWxTdHJpbmcoKSk7CisgICAgfSk7Cit9CisKKyNpZiAhUExBVEZPUk0o
Q09DT0EpCitTdHJpbmcgd3RmTG9nTGV2ZWxTdHJpbmcoKQoreworICAgIHN0YXRpYyBOZXZlckRl
c3Ryb3llZDxTdHJpbmc+IGxvZ1N0cmluZzsKKyAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgb25j
ZUZsYWc7CisgICAgc3RkOjpjYWxsX29uY2Uob25jZUZsYWcsIFtdIHsKKyAgICAgICAgbG9nU3Ry
aW5nID0gV1RGOjpsb2dMZXZlbFN0cmluZygpOworICAgIH0pOworICAgIHJldHVybiBsb2dTdHJp
bmc7Cit9CisKK1N0cmluZyB3ZWJDb3JlTG9nTGV2ZWxTdHJpbmcoKQoreworICAgIHN0YXRpYyBO
ZXZlckRlc3Ryb3llZDxTdHJpbmc+IGxvZ1N0cmluZzsKKyAgICBzdGF0aWMgc3RkOjpvbmNlX2Zs
YWcgb25jZUZsYWc7CisgICAgc3RkOjpjYWxsX29uY2Uob25jZUZsYWcsIFtdIHsKKyAgICAgICAg
bG9nU3RyaW5nICA9IFdlYkNvcmU6OmxvZ0xldmVsU3RyaW5nKCk7CisgICAgfSk7CisgICAgcmV0
dXJuIGxvZ1N0cmluZzsKK30KKworU3RyaW5nIHdlYktpdExvZ0xldmVsU3RyaW5nKCkKK3sKKyAg
ICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiBsb2dTdHJpbmc7CisgICAgc3RhdGljIHN0
ZDo6b25jZV9mbGFnIG9uY2VGbGFnOworICAgIHN0ZDo6Y2FsbF9vbmNlKG9uY2VGbGFnLCBbXSB7
CisgICAgICAgIGxvZ1N0cmluZyAgPSBXZWJLaXQ6OmxvZ0xldmVsU3RyaW5nKCk7CisgICAgfSk7
CisgICAgcmV0dXJuIGxvZ1N0cmluZzsKK30KKyNlbmRpZgorCit9CisKK30KKworI2VuZGlmIC8v
ICFMT0dfRElTQUJMRUQgfHwgIVJFTEVBU0VfTE9HX0RJU0FCTEVECisKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VJUHJvY2Vzc0xvZ0luaXRpYWxpemF0aW9uLmggYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9VSVByb2Nlc3NMb2dJbml0aWFsaXphdGlvbi5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjJlMTRmMjZiMWQwZDE0MzNmN2Y0NTljNjI4NDY3MWJjMjE2MDU3NjIKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9VSVByb2Nlc3NMb2dJbml0aWFsaXphdGlv
bi5oCkBAIC0wLDAgKzEsNTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjIgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1
ZGUgPHd0Zi9Gb3J3YXJkLmg+CisKKy8vIE5PVEU6IFRoZXNlIG1ldGhvZHMgY29uZmlndXJlIGxv
Z2dpbmcgc2VwYXJhdGVseSBhbmQgZGlmZmVyZW50bHkgZm9yIHRoZSBVSVByb2Nlc3MKKy8vIHRo
YW4gc2ltaWxhciBtZXRob2RzIGVsc2V3aGVyZS4gU3BlY2lmaWNhbGx5LCB0aGUgbG9nIHN0cmlu
Z3MgcmV0dXJuZWQgZnJvbSB0aGVzZQorLy8gbWV0aG9kcyBhcmUgaW5pdGlhbGl6ZWQgb25jZSwg
cmF0aGVyIHRoYW4gcmVwZWF0ZWRseSwgYW5kIGFyZSBpbnRlbmRlZCB0byBiZSBwYXNzZWQKKy8v
IHRocm91Z2ggdG8gQXV4aWxpYXJ5UHJvY2Vzc2VzIHRvIGZ1cnRoZXIgcmVkdWNlIHRoZSBydW50
aW1lIGNvc3Qgb2YgbG9nIHN0cmluZworLy8gaW5pdGlhbGl6YXRpb24uCisKKyNpZiAhTE9HX0RJ
U0FCTEVEIHx8ICFSRUxFQVNFX0xPR19ESVNBQkxFRAorCituYW1lc3BhY2UgV2ViS2l0IHsKKwor
bmFtZXNwYWNlIFVJUHJvY2VzcyB7CisKK3ZvaWQgaW5pdGlhbGl6ZUxvZ2dpbmdJZk5lY2Vzc2Fy
eSgpOworU3RyaW5nIHd0ZkxvZ0xldmVsU3RyaW5nKCk7CitTdHJpbmcgd2ViQ29yZUxvZ0xldmVs
U3RyaW5nKCk7CitTdHJpbmcgd2ViS2l0TG9nTGV2ZWxTdHJpbmcoKTsKKworfQorCit9CisKKyNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wu
Y3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCmluZGV4IDA4
YjY0NjQ0MGNjMDI4YWFmZTI5ZGE2YmRiMDViNTUzNzk5ZDJlMTkuLjk5MzU4Y2EwOWRhZjczYzQ1
OWUwODFmOGZhYWJhZTJkZWM4ZTUxNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQb29sLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
cm9jZXNzUG9vbC5jcHAKQEAgLTQ1LDcgKzQ1LDYgQEAKICNpbmNsdWRlICJHYW1lcGFkRGF0YS5o
IgogI2luY2x1ZGUgIkhpZ2hQZXJmb3JtYW5jZUdyYXBoaWNzVXNhZ2VTYW1wbGVyLmgiCiAjaW5j
bHVkZSAiTGVnYWN5R2xvYmFsU2V0dGluZ3MuaCIKLSNpbmNsdWRlICJMb2dJbml0aWFsaXphdGlv
bi5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVycy5oIgogI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzTWVzc2FnZXMuaCIKQEAg
LTU2LDYgKzU1LDcgQEAKICNpbmNsdWRlICJUZXh0Q2hlY2tlci5oIgogI2luY2x1ZGUgIlVJR2Ft
ZXBhZC5oIgogI2luY2x1ZGUgIlVJR2FtZXBhZFByb3ZpZGVyLmgiCisjaW5jbHVkZSAiVUlQcm9j
ZXNzTG9nSW5pdGlhbGl6YXRpb24uaCIKICNpbmNsdWRlICJXS0NvbnRleHRQcml2YXRlLmgiCiAj
aW5jbHVkZSAiV2ViQXV0b21hdGlvblNlc3Npb24uaCIKICNpbmNsdWRlICJXZWJCYWNrRm9yd2Fy
ZENhY2hlLmgiCkBAIC04NSw3ICs4NSw2IEBACiAjaW5jbHVkZSAiV2Vic2l0ZURhdGFTdG9yZVBh
cmFtZXRlcnMuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0NJbmxpbmVzLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9BcHBsaWNhdGlvbkNhY2hlU3RvcmFnZS5oPgotI2luY2x1ZGUgPFdlYkNv
cmUvTG9nSW5pdGlhbGl6YXRpb24uaD4KICNpbmNsdWRlIDxXZWJDb3JlL01vY2tSZWFsdGltZU1l
ZGlhU291cmNlQ2VudGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9OZXR3b3JrU3RvcmFnZVNlc3Np
b24uaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtU2NyZWVuLmg+CkBAIC05Nyw3ICs5Niw2
IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9SdW50aW1lQXBwbGljYXRpb25DaGVja3MuaD4KICNpbmNs
dWRlIDxwYWwvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8d3RmL0NhbGxiYWNrQWdncmVnYXRvci5o
PgotI2luY2x1ZGUgPHd0Zi9Mb2dJbml0aWFsaXphdGlvbi5oPgogI2luY2x1ZGUgPHd0Zi9NYWlu
VGhyZWFkLmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAjaW5jbHVkZSA8d3Rm
L1Byb2Nlc3NQcml2aWxlZ2UuaD4KQEAgLTI2OSw5ICsyNjcsNyBAQCBXZWJQcm9jZXNzUG9vbDo6
V2ViUHJvY2Vzc1Bvb2woQVBJOjpQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24mIGNvbmZpZ3VyYXRp
b24pCiAgICAgcmVzb2x2ZVBhdGhzRm9yU2FuZGJveEV4dGVuc2lvbnMoKTsKIAogI2lmICFMT0df
RElTQUJMRUQgfHwgIVJFTEVBU0VfTE9HX0RJU0FCTEVECi0gICAgV1RGOjpsb2dDaGFubmVscygp
LmluaXRpYWxpemVMb2dDaGFubmVsc0lmTmVjZXNzYXJ5KCk7Ci0gICAgV2ViQ29yZTo6bG9nQ2hh
bm5lbHMoKS5pbml0aWFsaXplTG9nQ2hhbm5lbHNJZk5lY2Vzc2FyeSgpOwotICAgIFdlYktpdDo6
bG9nQ2hhbm5lbHMoKS5pbml0aWFsaXplTG9nQ2hhbm5lbHNJZk5lY2Vzc2FyeSgpOworICAgIFVJ
UHJvY2Vzczo6aW5pdGlhbGl6ZUxvZ2dpbmdJZk5lY2Vzc2FyeSgpOwogI2VuZGlmIC8vICFMT0df
RElTQUJMRUQgfHwgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAKICNpZm5kZWYgTkRFQlVHCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIv
U291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA2MDcz
MjhlMDZiY2NjYTQzYjI5YjU1ZjAxN2Q5YjFlZjEzNDU0ZTA2Li5jMWFiODk4MTkxNzhkMDI5NmMz
YTNhZTU1ZDFjNGIxMWUyNzIxNjQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTYyNjQsNiArNjI2NCw5IEBACiAJCUNEODI1MkUwMjVE
NDkxODQwMDg2MkZEOCAvKiBSZW1vdGVSZW1vdGVDb21tYW5kTGlzdGVuZXJNZXNzYWdlUmVjZWl2
ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlUmVtb3RlQ29tbWFuZExpc3RlbmVyTWVz
c2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q4MjUyRTEy
NUQ0OTE4NTAwODYyRkQ4IC8qIFJlbW90ZVJlbW90ZUNvbW1hbmRMaXN0ZW5lck1lc3NhZ2VzLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFJlbW90ZVJlbW90ZUNvbW1hbmRMaXN0ZW5lck1lc3NhZ2VzLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEOTU0OTM1MjYxNTkwMDQwMDgzNzJEOSAvKiBs
aWJXZWJLaXRTd2lmdC5keWxpYiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNp
dEZpbGVUeXBlID0gImNvbXBpbGVkLm1hY2gtby5keWxpYiI7IGluY2x1ZGVJbkluZGV4ID0gMDsg
cGF0aCA9IGxpYldlYktpdFN3aWZ0LmR5bGliOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNf
RElSOyB9OworCQlDRDlBNjQ5RjI3Qzg5NzJDMDAzODI3QzAgLyogVUlQcm9jZXNzTG9nSW5pdGlh
bGl6YXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVUlQcm9jZXNzTG9nSW5pdGlhbGl6YXRpb24uaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q5QTY0QTAyN0M4OTcyQzAwMzgyN0MwIC8q
IFVJUHJvY2Vzc0xvZ0luaXRpYWxpemF0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFVJUHJv
Y2Vzc0xvZ0luaXRpYWxpemF0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
Q0Q5QTY0QTEyN0M4OTc0MjAwMzgyN0MwIC8qIFVJUHJvY2Vzc0xvZ0luaXRpYWxpemF0aW9uQ29j
b2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBVSVByb2Nlc3NMb2dJbml0aWFsaXphdGlvbkNv
Y29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDREEwNDFGMzFBQ0UyMTA1MDA0
QTEzRUMgLyogQmFja0JvYXJkU2VydmljZXNTUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gQmFja0JvYXJkU2VydmljZXNTUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQ0RBMjlBMTgxQ0JEQkY0MTAwOTAxQ0NGIC8qIFBsYXliYWNrU2Vzc2lvbk1hbmFnZXIu
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBQbGF5YmFja1Nlc3Np
b25NYW5hZ2VyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDREEyOUExOTFDQkRC
RjQxMDA5MDFDQ0YgLyogUGxheWJhY2tTZXNzaW9uTWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBQbGF5YmFja1Nlc3Npb25NYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC03NjI5LDYgKzc2MzIsNyBAQAogCQkJCTJEMENGNjRCMjFGMkE4MDMw
MDc4NzU2NiAvKiBUZXh0Q2hlY2tpbmdDb250cm9sbGVyLm1tICovLAogCQkJCTFBRkU0MzY0MThC
NkMwODEwMDlDN0E0OCAvKiBVSURlbGVnYXRlLmggKi8sCiAJCQkJMUFGRTQzNjMxOEI2QzA4MTAw
OUM3QTQ4IC8qIFVJRGVsZWdhdGUubW0gKi8sCisJCQkJQ0Q5QTY0QTEyN0M4OTc0MjAwMzgyN0Mw
IC8qIFVJUHJvY2Vzc0xvZ0luaXRpYWxpemF0aW9uQ29jb2EubW0gKi8sCiAJCQkJNDYzMjM2ODYy
MzE0ODMzRjAwQTQ4RkE3IC8qIFVJUmVtb3RlT2JqZWN0UmVnaXN0cnkuY3BwICovLAogCQkJCTQ2
MzIzNjg1MjMxNDgzM0YwMEE0OEZBNyAvKiBVSVJlbW90ZU9iamVjdFJlZ2lzdHJ5LmggKi8sCiAJ
CQkJMDcwMjU5QkUyNTIyODQxQzAwMTUzNDA1IC8qIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlclByb3h5Lm1tICovLApAQCAtMTExNTQsNiArMTExNTgsOCBAQAogCQkJCTFBQTQxN0M5
MTJDMDBDQ0EwMDJCRTY3QiAvKiBUZXh0Q2hlY2tlci5oICovLAogCQkJCTUzQ0ZCQkM2MjIyNEQx
QjAwMDI2NjU0NiAvKiBUZXh0Q2hlY2tlckNvbXBsZXRpb24uY3BwICovLAogCQkJCTUzQ0ZCQkM3
MjIyNEQxQjAwMDI2NjU0NiAvKiBUZXh0Q2hlY2tlckNvbXBsZXRpb24uaCAqLywKKwkJCQlDRDlB
NjRBMDI3Qzg5NzJDMDAzODI3QzAgLyogVUlQcm9jZXNzTG9nSW5pdGlhbGl6YXRpb24uY3BwICov
LAorCQkJCUNEOUE2NDlGMjdDODk3MkMwMDM4MjdDMCAvKiBVSVByb2Nlc3NMb2dJbml0aWFsaXph
dGlvbi5oICovLAogCQkJCTA3Mjk3RjlDMUMxN0JCRUEwMDNGMDczNSAvKiBVc2VyTWVkaWFQZXJt
aXNzaW9uQ2hlY2tQcm94eS5jcHAgKi8sCiAJCQkJMDcyOTdGOUQxQzE3QkJFQTAwM0YwNzM1IC8q
IFVzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5LmggKi8sCiAJCQkJNEE0MTBGMzkxOUFGN0Iw
NDAwMkVCQUI1IC8qIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcCAq
LywK
</data>
<flag name="commit-queue"
          id="480769"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>453400</attachid>
            <date>2022-02-28 09:50:49 -0800</date>
            <delta_ts>2022-02-28 09:51:23 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237183-20220228095048.patch</filename>
            <type>text/plain</type>
            <size>18445</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwNTMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDEyMGRjNDE1OWFhN2NkNGJh
YzdiNjFmNmZlZTI2Yjk1NDIyYjdhNmQuLmQ5ZjcxYTNkOTQ4N2E3ZDI3MzY0YWI0MjMxNTc3MDA4
Zjk1M2QyYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzYgQEAKKzIwMjItMDItMjQgIEplciBOb2Js
ZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBBbGxvdyBsb2dnaW5n
IHRvIGJlIGNvbmZpZ3VyZWQgYnkgTlNEZWZhdWx0cyAod2l0aG91dCByZWdyZXNzaW5nIGxhdW5j
aCB0aW1lKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjM3MTgzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
SW4gcjIyMDc4MCwgY29kZSB3YXMgYWRkZWQgdG8gV2ViUHJvY2Vzc1Bvb2xDb2NvYSB0byBleHBs
aWNpdGx5IHBhc3MgdGhlIHJlc3VsdHMgb2YgYSBOU1VzZXJEZWZhdWx0cworICAgICAgICB0byBu
ZXdseSBjcmVhdGVkIFdlYkNvbnRlbnQgcHJvY2Vzc2VzIHRvIGRldGVybWluZSBsb2cgY2hhbm5l
bCBsZXZlbHMuIExhdGVyLCBpbiByMjMyMTU4LCBOU1VzZXJEZWZhdWx0cworICAgICAgICB3ZXJl
IHJlbW92ZWQgZnJvbSB0aGUgZGVmYXVsdCBsb2dMZXZlbFN0cmluZygpIGltcGxlbWVudGF0aW9u
cyBpbiBXVEYsIFdlYkNvcmUsIGFuZCBXZWJLaXQgdG8gaW1wcm92ZQorICAgICAgICBwcm9jZXNz
IGxhdW5jaCB0aW1lIHBlcmZvcm1hbmNlLiBJbiByMjc5Nzk2LCB0aGUgc2FtZSB0ZWNobmlxdWUg
c3VlZCBpbiBXZWJQcm9jZXNzUG9vbENvY29hIHdhcyBhZGRlZAorICAgICAgICB0byBHUFVQcm9j
ZXNzUHJveHlDb2NvYSB0byBwYXNzIHRob3NlIGxvZyBsZXZlbCBzdHJpbmdzIHRvIHRoZSBHUFVQ
cm9jZXNzLiBBbmQgdGhlbiBpbiByMjg2NDg0LCBhbGwgdGhlCisgICAgICAgIHVzZXMgb2YgTlNV
c2VyRGVmYXVsdHMgd2VyZSByZW1vdmVkIGZyb20gV2ViUHJvY2Vzc1Bvb2xDb2NvYSBhbmQgR1BV
UHJvY2Vzc1Byb3h5Q29jb2Egd2VyZSByZW1vdmVkLAorICAgICAgICByZW1vdmluZyB0aGUgYWJp
bGl0eSB0byBpbmNyZWFzZSB0aGUgbG9nIGNoYW5uZWwgbGV2ZWxzIGF0IHJ1bnRpbWUgdGhyb3Vn
aCBOU1VzZXJEZWZ1YWx0cy4KKworICAgICAgICBBZGQgYmFjayBpbiB0aGUgYWJpbGl0eSB0byBk
ZWZpbmUgbG9nIGxldmVscyBmb3IgdGhlIFVJUHJvY2VzcyBhbmQgYWxsIEF1eGlsaWFyeVByb2Nl
c3NlcyB3aXRob3V0CisgICAgICAgIHJlZ3Jlc3NpbmcgbGF1bmNoIHRpbWUgYnkgb25seSBjaGVj
a2luZyB0aGUgTlNVc2VyRGVmYXVsdCBvbmNlLCBvbmx5IGluIHRoZSBVSVByb2Nlc3MsIHN0b3Jp
bmcgdGhlIHJlc3VsdAorICAgICAgICBpbiBhIHN0YXRpYyB2YXJpYWJsZSwgYW5kIHBhc3Npbmcg
dGhlIHJlc3VsdHMgb2YgdGhhdCBjaGVjayB0byBhbGwgQXV4aWxpYXJ5UHJvY2Vzc2VzIGF0IGNy
ZWF0aW9uIHRpbWUuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQXV4aWxpYXJ5UHJvY2Vzc1Byb3h5
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6QXV4aWxpYXJ5UHJvY2Vzc1Byb3h5OjphdXhpbGlhcnlQ
cm9jZXNzUGFyYW1ldGVycyk6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1VJUHJvY2Vzc0xv
Z0luaXRpYWxpemF0aW9uQ29jb2EubW06IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpVSVByb2Nl
c3M6Ond0ZkxvZ0xldmVsU3RyaW5nKToKKyAgICAgICAgKFdlYktpdDo6VUlQcm9jZXNzOjp3ZWJD
b3JlTG9nTGV2ZWxTdHJpbmcpOgorICAgICAgICAoV2ViS2l0OjpVSVByb2Nlc3M6OndlYktpdExv
Z0xldmVsU3RyaW5nKToKKyAgICAgICAgKiBVSVByb2Nlc3MvVUlQcm9jZXNzTG9nSW5pdGlhbGl6
YXRpb24uY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6VUlQcm9jZXNzOjppbml0aWFsaXpl
TG9nZ2luZ0lmTmVjZXNzYXJ5KToKKyAgICAgICAgKFdlYktpdDo6VUlQcm9jZXNzOjp3dGZMb2dM
ZXZlbFN0cmluZyk6CisgICAgICAgIChXZWJLaXQ6OlVJUHJvY2Vzczo6d2ViQ29yZUxvZ0xldmVs
U3RyaW5nKToKKyAgICAgICAgKFdlYktpdDo6VUlQcm9jZXNzOjp3ZWJLaXRMb2dMZXZlbFN0cmlu
Zyk6CisgICAgICAgICogVUlQcm9jZXNzL1VJUHJvY2Vzc0xvZ0luaXRpYWxpemF0aW9uLmg6IEFk
ZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHA6CisKIDIwMjItMDIt
MjUgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CiAKICAgICAgICAgUmVncmVzc2lv
bihyMjQyNzI5KTogbV9vcmlnaW4gaW4gSURCRGF0YWJhc2VJZGVudGlmaWVyIGlzIGluY29ycmVj
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJLaXQv
U291cmNlcy50eHQKaW5kZXggOTJhNThiMGJkN2NiNTMwMzAxYmViMmFiMWU5YjExNTkzOGQwODMw
NS4uMmUyZDcyZjZiMmFmOGFlNzZhYWM1MjJjMzUwYjI5MDA2ODI1ODg1NyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0
CkBAIC00MjcsNiArNDI3LDcgQEAgVUlQcm9jZXNzL1N5c3RlbVByZXZpZXdDb250cm9sbGVyLmNw
cAogVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbk1hbmFnZXIuY3BwCiBVSVBy
b2Nlc3MvVGV4dENoZWNrZXIuY3BwCiBVSVByb2Nlc3MvVGV4dENoZWNrZXJDb21wbGV0aW9uLmNw
cAorVUlQcm9jZXNzL1VJUHJvY2Vzc0xvZ0luaXRpYWxpemF0aW9uLmNwcAogVUlQcm9jZXNzL1Vz
ZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5LmNwcAogVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcAogVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0UHJveHkuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2Nv
YS50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKaW5kZXggMzlmZWE5MWNlNTYx
NzU4MTYwYWQ5MjE4OTg5NDUzZTU4M2VkNjQ2MS4uMmM2MDYyY2YwYWFjNGIxOWQ0YmQyZTMxODhl
YWI5NjliNDkzZWY3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0
CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dApAQCAtNDIzLDYgKzQyMyw3IEBA
IFVJUHJvY2Vzcy9Db2NvYS9TZXNzaW9uU3RhdGVDb2RpbmcubW0KIFVJUHJvY2Vzcy9Db2NvYS9T
eXN0ZW1QcmV2aWV3Q29udHJvbGxlckNvY29hLm1tCiBVSVByb2Nlc3MvQ29jb2EvVGV4dENoZWNr
aW5nQ29udHJvbGxlci5tbQogVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0KK1VJUHJvY2Vz
cy9Db2NvYS9VSVByb2Nlc3NMb2dJbml0aWFsaXphdGlvbkNvY29hLm1tCiBVSVByb2Nlc3MvQ29j
b2EvVUlSZW1vdGVPYmplY3RSZWdpc3RyeS5jcHAKIFVJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFD
YXB0dXJlTWFuYWdlclByb3h5LmNwcAogVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlclByb3h5Lm1tCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BdXhpbGlhcnlQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QXV4aWxpYXJ5UHJvY2Vzc1Byb3h5LmNwcAppbmRleCBmNTVmYzI2Mzk0ZThiMjc1NzRiNTk2MGFk
ODU4NzQ2MWNjNGJkYWM3Li5jYzBkOWQ2Y2ZkYzk5NzNlOTlhNjg5NjkzOTA4MDAzN2MxOWI3Yjhl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXhpbGlhcnlQcm9jZXNzUHJv
eHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1eGlsaWFyeVByb2Nlc3NQcm94
eS5jcHAKQEAgLTI3LDEyICsyNywxMCBAQAogI2luY2x1ZGUgIkF1eGlsaWFyeVByb2Nlc3NQcm94
eS5oIgogCiAjaW5jbHVkZSAiQXV4aWxpYXJ5UHJvY2Vzc01lc3NhZ2VzLmgiCi0jaW5jbHVkZSAi
TG9nSW5pdGlhbGl6YXRpb24uaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSAiVUlQ
cm9jZXNzTG9nSW5pdGlhbGl6YXRpb24uaCIKICNpbmNsdWRlICJXZWJQYWdlUHJveHkuaCIKICNp
bmNsdWRlICJXZWJQcm9jZXNzUHJveHkuaCIKLSNpbmNsdWRlIDxXZWJDb3JlL0xvZ0luaXRpYWxp
emF0aW9uLmg+Ci0jaW5jbHVkZSA8d3RmL0xvZ0luaXRpYWxpemF0aW9uLmg+CiAjaW5jbHVkZSA8
d3RmL1J1bkxvb3AuaD4KIAogI2lmIFBMQVRGT1JNKENPQ09BKQpAQCAtNDA4LDkgKzQwNiw5IEBA
IEF1eGlsaWFyeVByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMgQXV4aWxpYXJ5UHJvY2Vzc1Byb3h5
OjphdXhpbGlhcnlQcm9jZXNzUGFyYW1lCiB7CiAgICAgQXV4aWxpYXJ5UHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVycyBwYXJhbWV0ZXJzOwogI2lmICFMT0dfRElTQUJMRUQgfHwgIVJFTEVBU0VfTE9H
X0RJU0FCTEVECi0gICAgcGFyYW1ldGVycy53dGZMb2dnaW5nQ2hhbm5lbHMgPSBXVEY6OmxvZ0xl
dmVsU3RyaW5nKCk7Ci0gICAgcGFyYW1ldGVycy53ZWJDb3JlTG9nZ2luZ0NoYW5uZWxzID0gV2Vi
Q29yZTo6bG9nTGV2ZWxTdHJpbmcoKTsKLSAgICBwYXJhbWV0ZXJzLndlYktpdExvZ2dpbmdDaGFu
bmVscyA9IFdlYktpdDo6bG9nTGV2ZWxTdHJpbmcoKTsKKyAgICBwYXJhbWV0ZXJzLnd0ZkxvZ2dp
bmdDaGFubmVscyA9IFVJUHJvY2Vzczo6d3RmTG9nTGV2ZWxTdHJpbmcoKTsKKyAgICBwYXJhbWV0
ZXJzLndlYkNvcmVMb2dnaW5nQ2hhbm5lbHMgPSBVSVByb2Nlc3M6OndlYkNvcmVMb2dMZXZlbFN0
cmluZygpOworICAgIHBhcmFtZXRlcnMud2ViS2l0TG9nZ2luZ0NoYW5uZWxzID0gVUlQcm9jZXNz
Ojp3ZWJLaXRMb2dMZXZlbFN0cmluZygpOwogI2VuZGlmCiAgICAgcmV0dXJuIHBhcmFtZXRlcnM7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSVByb2Nlc3NM
b2dJbml0aWFsaXphdGlvbkNvY29hLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2Ev
VUlQcm9jZXNzTG9nSW5pdGlhbGl6YXRpb25Db2NvYS5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40YjgxNDRiNjgy
M2Y5MDRjNWJjNDk0YmEwYzFlYTNhNjAyMjBkZmE0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlQcm9jZXNzTG9nSW5pdGlhbGl6YXRpb25Db2NvYS5t
bQpAQCAtMCwwICsxLDcxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIyIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbXBvcnQg
ImNvbmZpZy5oIgorI2ltcG9ydCAiVUlQcm9jZXNzTG9nSW5pdGlhbGl6YXRpb24uaCIKKworI2lm
IFBMQVRGT1JNKENPQ09BKQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworbmFtZXNwYWNlIFVJUHJv
Y2VzcyB7CisKK1N0cmluZyB3dGZMb2dMZXZlbFN0cmluZygpCit7CisgICAgc3RhdGljIExhenlO
ZXZlckRlc3Ryb3llZDxTdHJpbmc+IGxvZ1N0cmluZzsKKyAgICBzdGF0aWMgZGlzcGF0Y2hfb25j
ZV90IG9uY2VUb2tlbjsKKyAgICBkaXNwYXRjaF9vbmNlKCZvbmNlVG9rZW4sIFsmXSB7CisgICAg
ICAgIGxvZ1N0cmluZy5jb25zdHJ1Y3QoW1tOU1VzZXJEZWZhdWx0cyBzdGFuZGFyZFVzZXJEZWZh
dWx0c10gc3RyaW5nRm9yS2V5OkAiV1RGTG9nZ2luZyJdKTsKKyAgICB9KTsKKyAgICByZXR1cm4g
bG9nU3RyaW5nOworfQorCitTdHJpbmcgd2ViQ29yZUxvZ0xldmVsU3RyaW5nKCkKK3sKKyAgICBz
dGF0aWMgTGF6eU5ldmVyRGVzdHJveWVkPFN0cmluZz4gbG9nU3RyaW5nOworICAgIHN0YXRpYyBk
aXNwYXRjaF9vbmNlX3Qgb25jZVRva2VuOworICAgIGRpc3BhdGNoX29uY2UoJm9uY2VUb2tlbiwg
WyZdIHsKKyAgICAgICAgbG9nU3RyaW5nLmNvbnN0cnVjdChbW05TVXNlckRlZmF1bHRzIHN0YW5k
YXJkVXNlckRlZmF1bHRzXSBzdHJpbmdGb3JLZXk6QCJXZWJDb3JlTG9nZ2luZyJdKTsKKyAgICB9
KTsKKyAgICByZXR1cm4gbG9nU3RyaW5nOworfQorCitTdHJpbmcgd2ViS2l0TG9nTGV2ZWxTdHJp
bmcoKQoreworICAgIHN0YXRpYyBMYXp5TmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiBsb2dTdHJpbmc7
CisgICAgc3RhdGljIGRpc3BhdGNoX29uY2VfdCBvbmNlVG9rZW47CisgICAgZGlzcGF0Y2hfb25j
ZSgmb25jZVRva2VuLCBbJl0geworICAgICAgICBsb2dTdHJpbmcuY29uc3RydWN0KFtbTlNVc2Vy
RGVmYXVsdHMgc3RhbmRhcmRVc2VyRGVmYXVsdHNdIHN0cmluZ0ZvcktleTpAIldlYktpdDJMb2dn
aW5nIl0pOworICAgIH0pOworICAgIHJldHVybiBsb2dTdHJpbmc7Cit9CisKK30KKworfQorCisj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VJUHJvY2Vzc0xvZ0lu
aXRpYWxpemF0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VJUHJvY2Vzc0xvZ0lu
aXRpYWxpemF0aW9uLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMTY1NDgxOGQyZmFmNzg4OTNmYzQ5NzJlNDlj
YWJlMTAwYjhlN2ZlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
VUlQcm9jZXNzTG9nSW5pdGlhbGl6YXRpb24uY3BwCkBAIC0wLDAgKzEsODYgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMjIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVUlQcm9jZXNzTG9nSW5pdGlhbGl6
YXRpb24uaCIKKworI2lmICFMT0dfRElTQUJMRUQgfHwgIVJFTEVBU0VfTE9HX0RJU0FCTEVECisK
KyNpbmNsdWRlICJMb2dJbml0aWFsaXphdGlvbi5oIgorI2luY2x1ZGUgPFdlYkNvcmUvTG9nSW5p
dGlhbGl6YXRpb24uaD4KKyNpbmNsdWRlIDx3dGYvTG9nSW5pdGlhbGl6YXRpb24uaD4KKworbmFt
ZXNwYWNlIFdlYktpdCB7CisKK25hbWVzcGFjZSBVSVByb2Nlc3MgeworCit2b2lkIGluaXRpYWxp
emVMb2dnaW5nSWZOZWNlc3NhcnkoKQoreworICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNl
RmxhZzsKKyAgICBzdGQ6OmNhbGxfb25jZShvbmNlRmxhZywgW10geworICAgICAgICBXVEY6Omxv
Z0NoYW5uZWxzKCkuaW5pdGlhbGl6ZUxvZ0NoYW5uZWxzSWZOZWNlc3Nhcnkod3RmTG9nTGV2ZWxT
dHJpbmcoKSk7CisgICAgICAgIFdlYkNvcmU6OmxvZ0NoYW5uZWxzKCkuaW5pdGlhbGl6ZUxvZ0No
YW5uZWxzSWZOZWNlc3Nhcnkod2ViQ29yZUxvZ0xldmVsU3RyaW5nKCkpOworICAgICAgICBXZWJL
aXQ6OmxvZ0NoYW5uZWxzKCkuaW5pdGlhbGl6ZUxvZ0NoYW5uZWxzSWZOZWNlc3Nhcnkod2ViS2l0
TG9nTGV2ZWxTdHJpbmcoKSk7CisgICAgfSk7Cit9CisKKyNpZiAhUExBVEZPUk0oQ09DT0EpCitT
dHJpbmcgd3RmTG9nTGV2ZWxTdHJpbmcoKQoreworICAgIHN0YXRpYyBMYXp5TmV2ZXJEZXN0cm95
ZWQ8U3RyaW5nPiBsb2dTdHJpbmc7CisgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIG9uY2VGbGFn
OworICAgIHN0ZDo6Y2FsbF9vbmNlKG9uY2VGbGFnLCBbJl0geworICAgICAgICBsb2dTdHJpbmcu
Y29uc3RydWN0KFdURjo6bG9nTGV2ZWxTdHJpbmcoKSk7CisgICAgfSk7CisgICAgcmV0dXJuIGxv
Z1N0cmluZzsKK30KKworU3RyaW5nIHdlYkNvcmVMb2dMZXZlbFN0cmluZygpCit7CisgICAgc3Rh
dGljIExhenlOZXZlckRlc3Ryb3llZDxTdHJpbmc+IGxvZ1N0cmluZzsKKyAgICBzdGF0aWMgc3Rk
OjpvbmNlX2ZsYWcgb25jZUZsYWc7CisgICAgc3RkOjpjYWxsX29uY2Uob25jZUZsYWcsIFsmXSB7
CisgICAgICAgIGxvZ1N0cmluZy5jb25zdHJ1Y3QoV2ViQ29yZTo6bG9nTGV2ZWxTdHJpbmcoKSk7
CisgICAgfSk7CisgICAgcmV0dXJuIGxvZ1N0cmluZzsKK30KKworU3RyaW5nIHdlYktpdExvZ0xl
dmVsU3RyaW5nKCkKK3sKKyAgICBzdGF0aWMgTGF6eU5ldmVyRGVzdHJveWVkPFN0cmluZz4gbG9n
U3RyaW5nOworICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlRmxhZzsKKyAgICBzdGQ6OmNh
bGxfb25jZShvbmNlRmxhZywgWyZdIHsKKyAgICAgICAgbG9nU3RyaW5nLmNvbnN0cnVjdChXZWJL
aXQ6OmxvZ0xldmVsU3RyaW5nKCkpOworICAgIH0pOworICAgIHJldHVybiBsb2dTdHJpbmc7Cit9
CisjZW5kaWYKKworfQorCit9CisKKyNlbmRpZiAvLyAhTE9HX0RJU0FCTEVEIHx8ICFSRUxFQVNF
X0xPR19ESVNBQkxFRAorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9VSVBy
b2Nlc3NMb2dJbml0aWFsaXphdGlvbi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVUlQcm9j
ZXNzTG9nSW5pdGlhbGl6YXRpb24uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yZTE0ZjI2YjFkMGQxNDMzZjdmNDU5
YzYyODQ2NzFiYzIxNjA1NzYyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvVUlQcm9jZXNzTG9nSW5pdGlhbGl6YXRpb24uaApAQCAtMCwwICsxLDUxIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDIyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorCisvLyBO
T1RFOiBUaGVzZSBtZXRob2RzIGNvbmZpZ3VyZSBsb2dnaW5nIHNlcGFyYXRlbHkgYW5kIGRpZmZl
cmVudGx5IGZvciB0aGUgVUlQcm9jZXNzCisvLyB0aGFuIHNpbWlsYXIgbWV0aG9kcyBlbHNld2hl
cmUuIFNwZWNpZmljYWxseSwgdGhlIGxvZyBzdHJpbmdzIHJldHVybmVkIGZyb20gdGhlc2UKKy8v
IG1ldGhvZHMgYXJlIGluaXRpYWxpemVkIG9uY2UsIHJhdGhlciB0aGFuIHJlcGVhdGVkbHksIGFu
ZCBhcmUgaW50ZW5kZWQgdG8gYmUgcGFzc2VkCisvLyB0aHJvdWdoIHRvIEF1eGlsaWFyeVByb2Nl
c3NlcyB0byBmdXJ0aGVyIHJlZHVjZSB0aGUgcnVudGltZSBjb3N0IG9mIGxvZyBzdHJpbmcKKy8v
IGluaXRpYWxpemF0aW9uLgorCisjaWYgIUxPR19ESVNBQkxFRCB8fCAhUkVMRUFTRV9MT0dfRElT
QUJMRUQKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK25hbWVzcGFjZSBVSVByb2Nlc3MgeworCit2
b2lkIGluaXRpYWxpemVMb2dnaW5nSWZOZWNlc3NhcnkoKTsKK1N0cmluZyB3dGZMb2dMZXZlbFN0
cmluZygpOworU3RyaW5nIHdlYkNvcmVMb2dMZXZlbFN0cmluZygpOworU3RyaW5nIHdlYktpdExv
Z0xldmVsU3RyaW5nKCk7CisKK30KKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQb29sLmNwcAppbmRleCAwOGI2NDY0NDBjYzAyOGFhZmUyOWRhNmJkYjA1
YjU1Mzc5OWQyZTE5Li45OTM1OGNhMDlkYWY3M2M0NTllMDgxZjhmYWFiYWUyZGVjOGU1MTVkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCkBAIC00NSw3ICs0
NSw2IEBACiAjaW5jbHVkZSAiR2FtZXBhZERhdGEuaCIKICNpbmNsdWRlICJIaWdoUGVyZm9ybWFu
Y2VHcmFwaGljc1VzYWdlU2FtcGxlci5oIgogI2luY2x1ZGUgIkxlZ2FjeUdsb2JhbFNldHRpbmdz
LmgiCi0jaW5jbHVkZSAiTG9nSW5pdGlhbGl6YXRpb24uaCIKICNpbmNsdWRlICJMb2dnaW5nLmgi
CiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCIKICNpbmNsdWRl
ICJOZXR3b3JrUHJvY2Vzc01lc3NhZ2VzLmgiCkBAIC01Niw2ICs1NSw3IEBACiAjaW5jbHVkZSAi
VGV4dENoZWNrZXIuaCIKICNpbmNsdWRlICJVSUdhbWVwYWQuaCIKICNpbmNsdWRlICJVSUdhbWVw
YWRQcm92aWRlci5oIgorI2luY2x1ZGUgIlVJUHJvY2Vzc0xvZ0luaXRpYWxpemF0aW9uLmgiCiAj
aW5jbHVkZSAiV0tDb250ZXh0UHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYkF1dG9tYXRpb25TZXNz
aW9uLmgiCiAjaW5jbHVkZSAiV2ViQmFja0ZvcndhcmRDYWNoZS5oIgpAQCAtODUsNyArODUsNiBA
QAogI2luY2x1ZGUgIldlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSA8SmF2
YVNjcmlwdENvcmUvSlNDSW5saW5lcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQXBwbGljYXRpb25D
YWNoZVN0b3JhZ2UuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL0xvZ0luaXRpYWxpemF0aW9uLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9Nb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Q
bGF0Zm9ybVNjcmVlbi5oPgpAQCAtOTcsNyArOTYsNiBAQAogI2luY2x1ZGUgPFdlYkNvcmUvUnVu
dGltZUFwcGxpY2F0aW9uQ2hlY2tzLmg+CiAjaW5jbHVkZSA8cGFsL1Nlc3Npb25JRC5oPgogI2lu
Y2x1ZGUgPHd0Zi9DYWxsYmFja0FnZ3JlZ2F0b3IuaD4KLSNpbmNsdWRlIDx3dGYvTG9nSW5pdGlh
bGl6YXRpb24uaD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgogI2luY2x1ZGUgPHd0Zi9O
ZXZlckRlc3Ryb3llZC5oPgogI2luY2x1ZGUgPHd0Zi9Qcm9jZXNzUHJpdmlsZWdlLmg+CkBAIC0y
NjksOSArMjY3LDcgQEAgV2ViUHJvY2Vzc1Bvb2w6OldlYlByb2Nlc3NQb29sKEFQSTo6UHJvY2Vz
c1Bvb2xDb25maWd1cmF0aW9uJiBjb25maWd1cmF0aW9uKQogICAgIHJlc29sdmVQYXRoc0ZvclNh
bmRib3hFeHRlbnNpb25zKCk7CiAKICNpZiAhTE9HX0RJU0FCTEVEIHx8ICFSRUxFQVNFX0xPR19E
SVNBQkxFRAotICAgIFdURjo6bG9nQ2hhbm5lbHMoKS5pbml0aWFsaXplTG9nQ2hhbm5lbHNJZk5l
Y2Vzc2FyeSgpOwotICAgIFdlYkNvcmU6OmxvZ0NoYW5uZWxzKCkuaW5pdGlhbGl6ZUxvZ0NoYW5u
ZWxzSWZOZWNlc3NhcnkoKTsKLSAgICBXZWJLaXQ6OmxvZ0NoYW5uZWxzKCkuaW5pdGlhbGl6ZUxv
Z0NoYW5uZWxzSWZOZWNlc3NhcnkoKTsKKyAgICBVSVByb2Nlc3M6OmluaXRpYWxpemVMb2dnaW5n
SWZOZWNlc3NhcnkoKTsKICNlbmRpZiAvLyAhTE9HX0RJU0FCTEVEIHx8ICFSRUxFQVNFX0xPR19E
SVNBQkxFRAogCiAjaWZuZGVmIE5ERUJVRwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJL
aXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNjA3MzI4ZTA2YmNjY2E0M2IyOWI1NWYwMTdkOWIx
ZWYxMzQ1NGUwNi4uYzFhYjg5ODE5MTc4ZDAyOTZjM2EzYWU1NWQxYzRiMTFlMjcyMTY0NCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC02
MjY0LDYgKzYyNjQsOSBAQAogCQlDRDgyNTJFMDI1RDQ5MTg0MDA4NjJGRDggLyogUmVtb3RlUmVt
b3RlQ29tbWFuZExpc3RlbmVyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFJlbW90ZVJlbW90ZUNvbW1hbmRMaXN0ZW5lck1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEODI1MkUxMjVENDkxODUwMDg2MkZEOCAvKiBSZW1vdGVS
ZW1vdGVDb21tYW5kTGlzdGVuZXJNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVSZW1v
dGVDb21tYW5kTGlzdGVuZXJNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlDRDk1NDkzNTI2MTU5MDA0MDA4MzcyRDkgLyogbGliV2ViS2l0U3dpZnQuZHlsaWIgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZXhwbGljaXRGaWxlVHlwZSA9ICJjb21waWxlZC5tYWNo
LW8uZHlsaWIiOyBpbmNsdWRlSW5JbmRleCA9IDA7IHBhdGggPSBsaWJXZWJLaXRTd2lmdC5keWxp
Yjsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKKwkJQ0Q5QTY0OUYyN0M4OTcy
QzAwMzgyN0MwIC8qIFVJUHJvY2Vzc0xvZ0luaXRpYWxpemF0aW9uLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFVJUHJvY2Vzc0xvZ0luaXRpYWxpemF0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUNEOUE2NEEwMjdDODk3MkMwMDM4MjdDMCAvKiBVSVByb2Nlc3NMb2dJbml0aWFsaXphdGlv
bi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBVSVByb2Nlc3NMb2dJbml0aWFsaXphdGlvbi5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEOUE2NEExMjdDODk3NDIwMDM4MjdDMCAv
KiBVSVByb2Nlc3NMb2dJbml0aWFsaXphdGlvbkNvY29hLm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRo
ID0gVUlQcm9jZXNzTG9nSW5pdGlhbGl6YXRpb25Db2NvYS5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQ0RBMDQxRjMxQUNFMjEwNTAwNEExM0VDIC8qIEJhY2tCb2FyZFNlcnZpY2Vz
U1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJhY2tCb2FyZFNlcnZpY2Vz
U1BJLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEQTI5QTE4MUNCREJGNDEwMDkw
MUNDRiAvKiBQbGF5YmFja1Nlc3Npb25NYW5hZ2VyLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBwYXRoID0gUGxheWJhY2tTZXNzaW9uTWFuYWdlci5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQ0RBMjlBMTkxQ0JEQkY0MTAwOTAxQ0NGIC8qIFBsYXliYWNrU2Vz
c2lvbk1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGxheWJhY2tT
ZXNzaW9uTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNzYyOSw2ICs3
NjMyLDcgQEAKIAkJCQkyRDBDRjY0QjIxRjJBODAzMDA3ODc1NjYgLyogVGV4dENoZWNraW5nQ29u
dHJvbGxlci5tbSAqLywKIAkJCQkxQUZFNDM2NDE4QjZDMDgxMDA5QzdBNDggLyogVUlEZWxlZ2F0
ZS5oICovLAogCQkJCTFBRkU0MzYzMThCNkMwODEwMDlDN0E0OCAvKiBVSURlbGVnYXRlLm1tICov
LAorCQkJCUNEOUE2NEExMjdDODk3NDIwMDM4MjdDMCAvKiBVSVByb2Nlc3NMb2dJbml0aWFsaXph
dGlvbkNvY29hLm1tICovLAogCQkJCTQ2MzIzNjg2MjMxNDgzM0YwMEE0OEZBNyAvKiBVSVJlbW90
ZU9iamVjdFJlZ2lzdHJ5LmNwcCAqLywKIAkJCQk0NjMyMzY4NTIzMTQ4MzNGMDBBNDhGQTcgLyog
VUlSZW1vdGVPYmplY3RSZWdpc3RyeS5oICovLAogCQkJCTA3MDI1OUJFMjUyMjg0MUMwMDE1MzQw
NSAvKiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5tbSAqLywKQEAgLTEx
MTU0LDYgKzExMTU4LDggQEAKIAkJCQkxQUE0MTdDOTEyQzAwQ0NBMDAyQkU2N0IgLyogVGV4dENo
ZWNrZXIuaCAqLywKIAkJCQk1M0NGQkJDNjIyMjREMUIwMDAyNjY1NDYgLyogVGV4dENoZWNrZXJD
b21wbGV0aW9uLmNwcCAqLywKIAkJCQk1M0NGQkJDNzIyMjREMUIwMDAyNjY1NDYgLyogVGV4dENo
ZWNrZXJDb21wbGV0aW9uLmggKi8sCisJCQkJQ0Q5QTY0QTAyN0M4OTcyQzAwMzgyN0MwIC8qIFVJ
UHJvY2Vzc0xvZ0luaXRpYWxpemF0aW9uLmNwcCAqLywKKwkJCQlDRDlBNjQ5RjI3Qzg5NzJDMDAz
ODI3QzAgLyogVUlQcm9jZXNzTG9nSW5pdGlhbGl6YXRpb24uaCAqLywKIAkJCQkwNzI5N0Y5QzFD
MTdCQkVBMDAzRjA3MzUgLyogVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHkuY3BwICovLAog
CQkJCTA3Mjk3RjlEMUMxN0JCRUEwMDNGMDczNSAvKiBVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQ
cm94eS5oICovLAogCQkJCTRBNDEwRjM5MTlBRjdCMDQwMDJFQkFCNSAvKiBVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAgKi8sCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>453404</attachid>
            <date>2022-02-28 10:17:56 -0800</date>
            <delta_ts>2022-02-28 13:00:02 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237183-20220228101755.patch</filename>
            <type>text/plain</type>
            <size>17801</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwNTMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDEyMGRjNDE1OWFhN2NkNGJh
YzdiNjFmNmZlZTI2Yjk1NDIyYjdhNmQuLmQ5ZjcxYTNkOTQ4N2E3ZDI3MzY0YWI0MjMxNTc3MDA4
Zjk1M2QyYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzYgQEAKKzIwMjItMDItMjQgIEplciBOb2Js
ZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBBbGxvdyBsb2dnaW5n
IHRvIGJlIGNvbmZpZ3VyZWQgYnkgTlNEZWZhdWx0cyAod2l0aG91dCByZWdyZXNzaW5nIGxhdW5j
aCB0aW1lKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjM3MTgzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
SW4gcjIyMDc4MCwgY29kZSB3YXMgYWRkZWQgdG8gV2ViUHJvY2Vzc1Bvb2xDb2NvYSB0byBleHBs
aWNpdGx5IHBhc3MgdGhlIHJlc3VsdHMgb2YgYSBOU1VzZXJEZWZhdWx0cworICAgICAgICB0byBu
ZXdseSBjcmVhdGVkIFdlYkNvbnRlbnQgcHJvY2Vzc2VzIHRvIGRldGVybWluZSBsb2cgY2hhbm5l
bCBsZXZlbHMuIExhdGVyLCBpbiByMjMyMTU4LCBOU1VzZXJEZWZhdWx0cworICAgICAgICB3ZXJl
IHJlbW92ZWQgZnJvbSB0aGUgZGVmYXVsdCBsb2dMZXZlbFN0cmluZygpIGltcGxlbWVudGF0aW9u
cyBpbiBXVEYsIFdlYkNvcmUsIGFuZCBXZWJLaXQgdG8gaW1wcm92ZQorICAgICAgICBwcm9jZXNz
IGxhdW5jaCB0aW1lIHBlcmZvcm1hbmNlLiBJbiByMjc5Nzk2LCB0aGUgc2FtZSB0ZWNobmlxdWUg
c3VlZCBpbiBXZWJQcm9jZXNzUG9vbENvY29hIHdhcyBhZGRlZAorICAgICAgICB0byBHUFVQcm9j
ZXNzUHJveHlDb2NvYSB0byBwYXNzIHRob3NlIGxvZyBsZXZlbCBzdHJpbmdzIHRvIHRoZSBHUFVQ
cm9jZXNzLiBBbmQgdGhlbiBpbiByMjg2NDg0LCBhbGwgdGhlCisgICAgICAgIHVzZXMgb2YgTlNV
c2VyRGVmYXVsdHMgd2VyZSByZW1vdmVkIGZyb20gV2ViUHJvY2Vzc1Bvb2xDb2NvYSBhbmQgR1BV
UHJvY2Vzc1Byb3h5Q29jb2Egd2VyZSByZW1vdmVkLAorICAgICAgICByZW1vdmluZyB0aGUgYWJp
bGl0eSB0byBpbmNyZWFzZSB0aGUgbG9nIGNoYW5uZWwgbGV2ZWxzIGF0IHJ1bnRpbWUgdGhyb3Vn
aCBOU1VzZXJEZWZ1YWx0cy4KKworICAgICAgICBBZGQgYmFjayBpbiB0aGUgYWJpbGl0eSB0byBk
ZWZpbmUgbG9nIGxldmVscyBmb3IgdGhlIFVJUHJvY2VzcyBhbmQgYWxsIEF1eGlsaWFyeVByb2Nl
c3NlcyB3aXRob3V0CisgICAgICAgIHJlZ3Jlc3NpbmcgbGF1bmNoIHRpbWUgYnkgb25seSBjaGVj
a2luZyB0aGUgTlNVc2VyRGVmYXVsdCBvbmNlLCBvbmx5IGluIHRoZSBVSVByb2Nlc3MsIHN0b3Jp
bmcgdGhlIHJlc3VsdAorICAgICAgICBpbiBhIHN0YXRpYyB2YXJpYWJsZSwgYW5kIHBhc3Npbmcg
dGhlIHJlc3VsdHMgb2YgdGhhdCBjaGVjayB0byBhbGwgQXV4aWxpYXJ5UHJvY2Vzc2VzIGF0IGNy
ZWF0aW9uIHRpbWUuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQXV4aWxpYXJ5UHJvY2Vzc1Byb3h5
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6QXV4aWxpYXJ5UHJvY2Vzc1Byb3h5OjphdXhpbGlhcnlQ
cm9jZXNzUGFyYW1ldGVycyk6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1VJUHJvY2Vzc0xv
Z0luaXRpYWxpemF0aW9uQ29jb2EubW06IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpVSVByb2Nl
c3M6Ond0ZkxvZ0xldmVsU3RyaW5nKToKKyAgICAgICAgKFdlYktpdDo6VUlQcm9jZXNzOjp3ZWJD
b3JlTG9nTGV2ZWxTdHJpbmcpOgorICAgICAgICAoV2ViS2l0OjpVSVByb2Nlc3M6OndlYktpdExv
Z0xldmVsU3RyaW5nKToKKyAgICAgICAgKiBVSVByb2Nlc3MvVUlQcm9jZXNzTG9nSW5pdGlhbGl6
YXRpb24uY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6VUlQcm9jZXNzOjppbml0aWFsaXpl
TG9nZ2luZ0lmTmVjZXNzYXJ5KToKKyAgICAgICAgKFdlYktpdDo6VUlQcm9jZXNzOjp3dGZMb2dM
ZXZlbFN0cmluZyk6CisgICAgICAgIChXZWJLaXQ6OlVJUHJvY2Vzczo6d2ViQ29yZUxvZ0xldmVs
U3RyaW5nKToKKyAgICAgICAgKFdlYktpdDo6VUlQcm9jZXNzOjp3ZWJLaXRMb2dMZXZlbFN0cmlu
Zyk6CisgICAgICAgICogVUlQcm9jZXNzL1VJUHJvY2Vzc0xvZ0luaXRpYWxpemF0aW9uLmg6IEFk
ZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHA6CisKIDIwMjItMDIt
MjUgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CiAKICAgICAgICAgUmVncmVzc2lv
bihyMjQyNzI5KTogbV9vcmlnaW4gaW4gSURCRGF0YWJhc2VJZGVudGlmaWVyIGlzIGluY29ycmVj
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJLaXQv
U291cmNlcy50eHQKaW5kZXggOTJhNThiMGJkN2NiNTMwMzAxYmViMmFiMWU5YjExNTkzOGQwODMw
NS4uMmUyZDcyZjZiMmFmOGFlNzZhYWM1MjJjMzUwYjI5MDA2ODI1ODg1NyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0
CkBAIC00MjcsNiArNDI3LDcgQEAgVUlQcm9jZXNzL1N5c3RlbVByZXZpZXdDb250cm9sbGVyLmNw
cAogVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbk1hbmFnZXIuY3BwCiBVSVBy
b2Nlc3MvVGV4dENoZWNrZXIuY3BwCiBVSVByb2Nlc3MvVGV4dENoZWNrZXJDb21wbGV0aW9uLmNw
cAorVUlQcm9jZXNzL1VJUHJvY2Vzc0xvZ0luaXRpYWxpemF0aW9uLmNwcAogVUlQcm9jZXNzL1Vz
ZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5LmNwcAogVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcAogVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0UHJveHkuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2Nv
YS50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKaW5kZXggMzlmZWE5MWNlNTYx
NzU4MTYwYWQ5MjE4OTg5NDUzZTU4M2VkNjQ2MS4uMmM2MDYyY2YwYWFjNGIxOWQ0YmQyZTMxODhl
YWI5NjliNDkzZWY3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0
CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dApAQCAtNDIzLDYgKzQyMyw3IEBA
IFVJUHJvY2Vzcy9Db2NvYS9TZXNzaW9uU3RhdGVDb2RpbmcubW0KIFVJUHJvY2Vzcy9Db2NvYS9T
eXN0ZW1QcmV2aWV3Q29udHJvbGxlckNvY29hLm1tCiBVSVByb2Nlc3MvQ29jb2EvVGV4dENoZWNr
aW5nQ29udHJvbGxlci5tbQogVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0KK1VJUHJvY2Vz
cy9Db2NvYS9VSVByb2Nlc3NMb2dJbml0aWFsaXphdGlvbkNvY29hLm1tCiBVSVByb2Nlc3MvQ29j
b2EvVUlSZW1vdGVPYmplY3RSZWdpc3RyeS5jcHAKIFVJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFD
YXB0dXJlTWFuYWdlclByb3h5LmNwcAogVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlclByb3h5Lm1tCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BdXhpbGlhcnlQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QXV4aWxpYXJ5UHJvY2Vzc1Byb3h5LmNwcAppbmRleCBmNTVmYzI2Mzk0ZThiMjc1NzRiNTk2MGFk
ODU4NzQ2MWNjNGJkYWM3Li5jYzBkOWQ2Y2ZkYzk5NzNlOTlhNjg5NjkzOTA4MDAzN2MxOWI3Yjhl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXhpbGlhcnlQcm9jZXNzUHJv
eHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1eGlsaWFyeVByb2Nlc3NQcm94
eS5jcHAKQEAgLTI3LDEyICsyNywxMCBAQAogI2luY2x1ZGUgIkF1eGlsaWFyeVByb2Nlc3NQcm94
eS5oIgogCiAjaW5jbHVkZSAiQXV4aWxpYXJ5UHJvY2Vzc01lc3NhZ2VzLmgiCi0jaW5jbHVkZSAi
TG9nSW5pdGlhbGl6YXRpb24uaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSAiVUlQ
cm9jZXNzTG9nSW5pdGlhbGl6YXRpb24uaCIKICNpbmNsdWRlICJXZWJQYWdlUHJveHkuaCIKICNp
bmNsdWRlICJXZWJQcm9jZXNzUHJveHkuaCIKLSNpbmNsdWRlIDxXZWJDb3JlL0xvZ0luaXRpYWxp
emF0aW9uLmg+Ci0jaW5jbHVkZSA8d3RmL0xvZ0luaXRpYWxpemF0aW9uLmg+CiAjaW5jbHVkZSA8
d3RmL1J1bkxvb3AuaD4KIAogI2lmIFBMQVRGT1JNKENPQ09BKQpAQCAtNDA4LDkgKzQwNiw5IEBA
IEF1eGlsaWFyeVByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMgQXV4aWxpYXJ5UHJvY2Vzc1Byb3h5
OjphdXhpbGlhcnlQcm9jZXNzUGFyYW1lCiB7CiAgICAgQXV4aWxpYXJ5UHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVycyBwYXJhbWV0ZXJzOwogI2lmICFMT0dfRElTQUJMRUQgfHwgIVJFTEVBU0VfTE9H
X0RJU0FCTEVECi0gICAgcGFyYW1ldGVycy53dGZMb2dnaW5nQ2hhbm5lbHMgPSBXVEY6OmxvZ0xl
dmVsU3RyaW5nKCk7Ci0gICAgcGFyYW1ldGVycy53ZWJDb3JlTG9nZ2luZ0NoYW5uZWxzID0gV2Vi
Q29yZTo6bG9nTGV2ZWxTdHJpbmcoKTsKLSAgICBwYXJhbWV0ZXJzLndlYktpdExvZ2dpbmdDaGFu
bmVscyA9IFdlYktpdDo6bG9nTGV2ZWxTdHJpbmcoKTsKKyAgICBwYXJhbWV0ZXJzLnd0ZkxvZ2dp
bmdDaGFubmVscyA9IFVJUHJvY2Vzczo6d3RmTG9nTGV2ZWxTdHJpbmcoKTsKKyAgICBwYXJhbWV0
ZXJzLndlYkNvcmVMb2dnaW5nQ2hhbm5lbHMgPSBVSVByb2Nlc3M6OndlYkNvcmVMb2dMZXZlbFN0
cmluZygpOworICAgIHBhcmFtZXRlcnMud2ViS2l0TG9nZ2luZ0NoYW5uZWxzID0gVUlQcm9jZXNz
Ojp3ZWJLaXRMb2dMZXZlbFN0cmluZygpOwogI2VuZGlmCiAgICAgcmV0dXJuIHBhcmFtZXRlcnM7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSVByb2Nlc3NM
b2dJbml0aWFsaXphdGlvbkNvY29hLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2Ev
VUlQcm9jZXNzTG9nSW5pdGlhbGl6YXRpb25Db2NvYS5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMTFhMjUwZGFl
ZDQ5MjZlZTEwMWJkNDU4Njg4YTYxYTZhZGZkOTA5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlQcm9jZXNzTG9nSW5pdGlhbGl6YXRpb25Db2NvYS5t
bQpAQCAtMCwwICsxLDU3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIyIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbXBvcnQg
ImNvbmZpZy5oIgorI2ltcG9ydCAiVUlQcm9jZXNzTG9nSW5pdGlhbGl6YXRpb24uaCIKKworI2lm
IFBMQVRGT1JNKENPQ09BKQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworbmFtZXNwYWNlIFVJUHJv
Y2VzcyB7CisKK1N0cmluZyB3dGZMb2dMZXZlbFN0cmluZygpCit7CisgICAgc3RhdGljIE1haW5U
aHJlYWROZXZlckRlc3Ryb3llZDxTdHJpbmc+IGxvZ1N0cmluZyA9IFtbTlNVc2VyRGVmYXVsdHMg
c3RhbmRhcmRVc2VyRGVmYXVsdHNdIHN0cmluZ0ZvcktleTpAIldURkxvZ2dpbmciXTsKKyAgICBy
ZXR1cm4gbG9nU3RyaW5nOworfQorCitTdHJpbmcgd2ViQ29yZUxvZ0xldmVsU3RyaW5nKCkKK3sK
KyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPFN0cmluZz4gbG9nU3RyaW5nID0g
W1tOU1VzZXJEZWZhdWx0cyBzdGFuZGFyZFVzZXJEZWZhdWx0c10gc3RyaW5nRm9yS2V5OkAiV2Vi
Q29yZUxvZ2dpbmciXTsKKyAgICByZXR1cm4gbG9nU3RyaW5nOworfQorCitTdHJpbmcgd2ViS2l0
TG9nTGV2ZWxTdHJpbmcoKQoreworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8
U3RyaW5nPiBsb2dTdHJpbmcgPSBbW05TVXNlckRlZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRz
XSBzdHJpbmdGb3JLZXk6QCJXZWJLaXQyTG9nZ2luZyJdOworICAgIHJldHVybiBsb2dTdHJpbmc7
Cit9CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9V
SVByb2Nlc3NMb2dJbml0aWFsaXphdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9V
SVByb2Nlc3NMb2dJbml0aWFsaXphdGlvbi5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2UyYjU5ZDJlNjJhN2I2
YzA1Yzk0NzE4MjgyYWYzOWJhODMzOGFhNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1VJUHJvY2Vzc0xvZ0luaXRpYWxpemF0aW9uLmNwcApAQCAtMCwwICsxLDc0
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlVJUHJvY2Vz
c0xvZ0luaXRpYWxpemF0aW9uLmgiCisKKyNpZiAhTE9HX0RJU0FCTEVEIHx8ICFSRUxFQVNFX0xP
R19ESVNBQkxFRAorCisjaW5jbHVkZSAiTG9nSW5pdGlhbGl6YXRpb24uaCIKKyNpbmNsdWRlIDxX
ZWJDb3JlL0xvZ0luaXRpYWxpemF0aW9uLmg+CisjaW5jbHVkZSA8d3RmL0xvZ0luaXRpYWxpemF0
aW9uLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCituYW1lc3BhY2UgVUlQcm9jZXNzIHsKKwor
dm9pZCBpbml0aWFsaXplTG9nZ2luZ0lmTmVjZXNzYXJ5KCkKK3sKKyAgICBzdGF0aWMgc3RkOjpv
bmNlX2ZsYWcgb25jZUZsYWc7CisgICAgc3RkOjpjYWxsX29uY2Uob25jZUZsYWcsIFtdIHsKKyAg
ICAgICAgV1RGOjpsb2dDaGFubmVscygpLmluaXRpYWxpemVMb2dDaGFubmVsc0lmTmVjZXNzYXJ5
KHd0ZkxvZ0xldmVsU3RyaW5nKCkpOworICAgICAgICBXZWJDb3JlOjpsb2dDaGFubmVscygpLmlu
aXRpYWxpemVMb2dDaGFubmVsc0lmTmVjZXNzYXJ5KHdlYkNvcmVMb2dMZXZlbFN0cmluZygpKTsK
KyAgICAgICAgV2ViS2l0Ojpsb2dDaGFubmVscygpLmluaXRpYWxpemVMb2dDaGFubmVsc0lmTmVj
ZXNzYXJ5KHdlYktpdExvZ0xldmVsU3RyaW5nKCkpOworICAgIH0pOworfQorCisjaWYgIVBMQVRG
T1JNKENPQ09BKQorU3RyaW5nIHd0ZkxvZ0xldmVsU3RyaW5nKCkKK3sKKyAgICBzdGF0aWMgTWFp
blRocmVhZE5ldmVyRGVzdHJveWVkPFN0cmluZz4gbG9nU3RyaW5nID0gV1RGOjpsb2dMZXZlbFN0
cmluZygpOworICAgIHJldHVybiBsb2dTdHJpbmc7Cit9CisKK1N0cmluZyB3ZWJDb3JlTG9nTGV2
ZWxTdHJpbmcoKQoreworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8U3RyaW5n
PiBsb2dTdHJpbmcgPSBXZWJDb3JlOjpsb2dMZXZlbFN0cmluZygpOworICAgIHJldHVybiBsb2dT
dHJpbmc7Cit9CisKK1N0cmluZyB3ZWJLaXRMb2dMZXZlbFN0cmluZygpCit7CisgICAgc3RhdGlj
IE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxTdHJpbmc+IGxvZ1N0cmluZyA9IFdlYktpdDo6bG9n
TGV2ZWxTdHJpbmcoKTsKKyAgICByZXR1cm4gbG9nU3RyaW5nOworfQorI2VuZGlmCisKK30KKwor
fQorCisjZW5kaWYgLy8gIUxPR19ESVNBQkxFRCB8fCAhUkVMRUFTRV9MT0dfRElTQUJMRUQKKwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVUlQcm9jZXNzTG9nSW5pdGlhbGl6
YXRpb24uaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VJUHJvY2Vzc0xvZ0luaXRpYWxpemF0
aW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMmUxNGYyNmIxZDBkMTQzM2Y3ZjQ1OWM2Mjg0NjcxYmMyMTYwNTc2
MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VJUHJvY2Vzc0xv
Z0luaXRpYWxpemF0aW9uLmgKQEAgLTAsMCArMSw1MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEg
b25jZQorCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKworLy8gTk9URTogVGhlc2UgbWV0aG9k
cyBjb25maWd1cmUgbG9nZ2luZyBzZXBhcmF0ZWx5IGFuZCBkaWZmZXJlbnRseSBmb3IgdGhlIFVJ
UHJvY2VzcworLy8gdGhhbiBzaW1pbGFyIG1ldGhvZHMgZWxzZXdoZXJlLiBTcGVjaWZpY2FsbHks
IHRoZSBsb2cgc3RyaW5ncyByZXR1cm5lZCBmcm9tIHRoZXNlCisvLyBtZXRob2RzIGFyZSBpbml0
aWFsaXplZCBvbmNlLCByYXRoZXIgdGhhbiByZXBlYXRlZGx5LCBhbmQgYXJlIGludGVuZGVkIHRv
IGJlIHBhc3NlZAorLy8gdGhyb3VnaCB0byBBdXhpbGlhcnlQcm9jZXNzZXMgdG8gZnVydGhlciBy
ZWR1Y2UgdGhlIHJ1bnRpbWUgY29zdCBvZiBsb2cgc3RyaW5nCisvLyBpbml0aWFsaXphdGlvbi4K
KworI2lmICFMT0dfRElTQUJMRUQgfHwgIVJFTEVBU0VfTE9HX0RJU0FCTEVECisKK25hbWVzcGFj
ZSBXZWJLaXQgeworCituYW1lc3BhY2UgVUlQcm9jZXNzIHsKKwordm9pZCBpbml0aWFsaXplTG9n
Z2luZ0lmTmVjZXNzYXJ5KCk7CitTdHJpbmcgd3RmTG9nTGV2ZWxTdHJpbmcoKTsKK1N0cmluZyB3
ZWJDb3JlTG9nTGV2ZWxTdHJpbmcoKTsKK1N0cmluZyB3ZWJLaXRMb2dMZXZlbFN0cmluZygpOwor
Cit9CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQcm9jZXNzUG9vbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9v
bC5jcHAKaW5kZXggMDhiNjQ2NDQwY2MwMjhhYWZlMjlkYTZiZGIwNWI1NTM3OTlkMmUxOS4uOTkz
NThjYTA5ZGFmNzNjNDU5ZTA4MWY4ZmFhYmFlMmRlYzhlNTE1ZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcApAQCAtNDUsNyArNDUsNiBAQAogI2luY2x1ZGUg
IkdhbWVwYWREYXRhLmgiCiAjaW5jbHVkZSAiSGlnaFBlcmZvcm1hbmNlR3JhcGhpY3NVc2FnZVNh
bXBsZXIuaCIKICNpbmNsdWRlICJMZWdhY3lHbG9iYWxTZXR0aW5ncy5oIgotI2luY2x1ZGUgIkxv
Z0luaXRpYWxpemF0aW9uLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIk5ldHdv
cmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NN
ZXNzYWdlcy5oIgpAQCAtNTYsNiArNTUsNyBAQAogI2luY2x1ZGUgIlRleHRDaGVja2VyLmgiCiAj
aW5jbHVkZSAiVUlHYW1lcGFkLmgiCiAjaW5jbHVkZSAiVUlHYW1lcGFkUHJvdmlkZXIuaCIKKyNp
bmNsdWRlICJVSVByb2Nlc3NMb2dJbml0aWFsaXphdGlvbi5oIgogI2luY2x1ZGUgIldLQ29udGV4
dFByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJBdXRvbWF0aW9uU2Vzc2lvbi5oIgogI2luY2x1ZGUg
IldlYkJhY2tGb3J3YXJkQ2FjaGUuaCIKQEAgLTg1LDcgKzg1LDYgQEAKICNpbmNsdWRlICJXZWJz
aXRlRGF0YVN0b3JlUGFyYW1ldGVycy5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTQ0lu
bGluZXMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0FwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlLmg+Ci0j
aW5jbHVkZSA8V2ViQ29yZS9Mb2dJbml0aWFsaXphdGlvbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
TW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL05ldHdv
cmtTdG9yYWdlU2Vzc2lvbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1TY3JlZW4uaD4K
QEAgLTk3LDcgKzk2LDYgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1J1bnRpbWVBcHBsaWNhdGlvbkNo
ZWNrcy5oPgogI2luY2x1ZGUgPHBhbC9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDx3dGYvQ2FsbGJh
Y2tBZ2dyZWdhdG9yLmg+Ci0jaW5jbHVkZSA8d3RmL0xvZ0luaXRpYWxpemF0aW9uLmg+CiAjaW5j
bHVkZSA8d3RmL01haW5UaHJlYWQuaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4K
ICNpbmNsdWRlIDx3dGYvUHJvY2Vzc1ByaXZpbGVnZS5oPgpAQCAtMjY5LDkgKzI2Nyw3IEBAIFdl
YlByb2Nlc3NQb29sOjpXZWJQcm9jZXNzUG9vbChBUEk6OlByb2Nlc3NQb29sQ29uZmlndXJhdGlv
biYgY29uZmlndXJhdGlvbikKICAgICByZXNvbHZlUGF0aHNGb3JTYW5kYm94RXh0ZW5zaW9ucygp
OwogCiAjaWYgIUxPR19ESVNBQkxFRCB8fCAhUkVMRUFTRV9MT0dfRElTQUJMRUQKLSAgICBXVEY6
OmxvZ0NoYW5uZWxzKCkuaW5pdGlhbGl6ZUxvZ0NoYW5uZWxzSWZOZWNlc3NhcnkoKTsKLSAgICBX
ZWJDb3JlOjpsb2dDaGFubmVscygpLmluaXRpYWxpemVMb2dDaGFubmVsc0lmTmVjZXNzYXJ5KCk7
Ci0gICAgV2ViS2l0Ojpsb2dDaGFubmVscygpLmluaXRpYWxpemVMb2dDaGFubmVsc0lmTmVjZXNz
YXJ5KCk7CisgICAgVUlQcm9jZXNzOjppbml0aWFsaXplTG9nZ2luZ0lmTmVjZXNzYXJ5KCk7CiAj
ZW5kaWYgLy8gIUxPR19ESVNBQkxFRCB8fCAhUkVMRUFTRV9MT0dfRElTQUJMRUQKIAogI2lmbmRl
ZiBOREVCVUcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCmluZGV4IDYwNzMyOGUwNmJjY2NhNDNiMjliNTVmMDE3ZDliMWVmMTM0NTRlMDYuLmMxYWI4
OTgxOTE3OGQwMjk2YzNhM2FlNTVkMWM0YjExZTI3MjE2NDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktp
dC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNjI2NCw2ICs2MjY0LDkgQEAK
IAkJQ0Q4MjUyRTAyNUQ0OTE4NDAwODYyRkQ4IC8qIFJlbW90ZVJlbW90ZUNvbW1hbmRMaXN0ZW5l
ck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVSZW1vdGVDb21t
YW5kTGlzdGVuZXJNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlDRDgyNTJFMTI1RDQ5MTg1MDA4NjJGRDggLyogUmVtb3RlUmVtb3RlQ29tbWFuZExpc3Rl
bmVyTWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlUmVtb3RlQ29tbWFuZExpc3RlbmVy
TWVzc2FnZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q5NTQ5MzUyNjE1OTAw
NDAwODM3MkQ5IC8qIGxpYldlYktpdFN3aWZ0LmR5bGliICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUgPSAiY29tcGlsZWQubWFjaC1vLmR5bGliIjsgaW5jbHVk
ZUluSW5kZXggPSAwOyBwYXRoID0gbGliV2ViS2l0U3dpZnQuZHlsaWI7IHNvdXJjZVRyZWUgPSBC
VUlMVF9QUk9EVUNUU19ESVI7IH07CisJCUNEOUE2NDlGMjdDODk3MkMwMDM4MjdDMCAvKiBVSVBy
b2Nlc3NMb2dJbml0aWFsaXphdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBVSVByb2Nlc3NMb2dJbml0
aWFsaXphdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRDlBNjRBMDI3Qzg5
NzJDMDAzODI3QzAgLyogVUlQcm9jZXNzTG9nSW5pdGlhbGl6YXRpb24uY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gVUlQcm9jZXNzTG9nSW5pdGlhbGl6YXRpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlDRDlBNjRBMTI3Qzg5NzQyMDAzODI3QzAgLyogVUlQcm9jZXNzTG9nSW5p
dGlhbGl6YXRpb25Db2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFVJUHJvY2Vzc0xvZ0lu
aXRpYWxpemF0aW9uQ29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEQTA0
MUYzMUFDRTIxMDUwMDRBMTNFQyAvKiBCYWNrQm9hcmRTZXJ2aWNlc1NQSS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBCYWNrQm9hcmRTZXJ2aWNlc1NQSS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlDREEyOUExODFDQkRCRjQxMDA5MDFDQ0YgLyogUGxheWJhY2tT
ZXNzaW9uTWFuYWdlci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9
IFBsYXliYWNrU2Vzc2lvbk1hbmFnZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUNEQTI5QTE5MUNCREJGNDEwMDkwMUNDRiAvKiBQbGF5YmFja1Nlc3Npb25NYW5hZ2VyLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBsYXliYWNrU2Vzc2lvbk1hbmFnZXIuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTc2MjksNiArNzYzMiw3IEBACiAJCQkJMkQw
Q0Y2NEIyMUYyQTgwMzAwNzg3NTY2IC8qIFRleHRDaGVja2luZ0NvbnRyb2xsZXIubW0gKi8sCiAJ
CQkJMUFGRTQzNjQxOEI2QzA4MTAwOUM3QTQ4IC8qIFVJRGVsZWdhdGUuaCAqLywKIAkJCQkxQUZF
NDM2MzE4QjZDMDgxMDA5QzdBNDggLyogVUlEZWxlZ2F0ZS5tbSAqLywKKwkJCQlDRDlBNjRBMTI3
Qzg5NzQyMDAzODI3QzAgLyogVUlQcm9jZXNzTG9nSW5pdGlhbGl6YXRpb25Db2NvYS5tbSAqLywK
IAkJCQk0NjMyMzY4NjIzMTQ4MzNGMDBBNDhGQTcgLyogVUlSZW1vdGVPYmplY3RSZWdpc3RyeS5j
cHAgKi8sCiAJCQkJNDYzMjM2ODUyMzE0ODMzRjAwQTQ4RkE3IC8qIFVJUmVtb3RlT2JqZWN0UmVn
aXN0cnkuaCAqLywKIAkJCQkwNzAyNTlCRTI1MjI4NDFDMDAxNTM0MDUgLyogVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkubW0gKi8sCkBAIC0xMTE1NCw2ICsxMTE1OCw4IEBA
CiAJCQkJMUFBNDE3QzkxMkMwMENDQTAwMkJFNjdCIC8qIFRleHRDaGVja2VyLmggKi8sCiAJCQkJ
NTNDRkJCQzYyMjI0RDFCMDAwMjY2NTQ2IC8qIFRleHRDaGVja2VyQ29tcGxldGlvbi5jcHAgKi8s
CiAJCQkJNTNDRkJCQzcyMjI0RDFCMDAwMjY2NTQ2IC8qIFRleHRDaGVja2VyQ29tcGxldGlvbi5o
ICovLAorCQkJCUNEOUE2NEEwMjdDODk3MkMwMDM4MjdDMCAvKiBVSVByb2Nlc3NMb2dJbml0aWFs
aXphdGlvbi5jcHAgKi8sCisJCQkJQ0Q5QTY0OUYyN0M4OTcyQzAwMzgyN0MwIC8qIFVJUHJvY2Vz
c0xvZ0luaXRpYWxpemF0aW9uLmggKi8sCiAJCQkJMDcyOTdGOUMxQzE3QkJFQTAwM0YwNzM1IC8q
IFVzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5LmNwcCAqLywKIAkJCQkwNzI5N0Y5RDFDMTdC
QkVBMDAzRjA3MzUgLyogVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHkuaCAqLywKIAkJCQk0
QTQxMEYzOTE5QUY3QjA0MDAyRUJBQjUgLyogVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyUHJveHkuY3BwICovLAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>453417</attachid>
            <date>2022-02-28 13:00:04 -0800</date>
            <delta_ts>2022-03-01 10:13:27 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237183-20220228130003.patch</filename>
            <type>text/plain</type>
            <size>17980</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwNTMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDEyMGRjNDE1OWFhN2NkNGJh
YzdiNjFmNmZlZTI2Yjk1NDIyYjdhNmQuLmQ5ZjcxYTNkOTQ4N2E3ZDI3MzY0YWI0MjMxNTc3MDA4
Zjk1M2QyYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzYgQEAKKzIwMjItMDItMjQgIEplciBOb2Js
ZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBBbGxvdyBsb2dnaW5n
IHRvIGJlIGNvbmZpZ3VyZWQgYnkgTlNEZWZhdWx0cyAod2l0aG91dCByZWdyZXNzaW5nIGxhdW5j
aCB0aW1lKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjM3MTgzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
SW4gcjIyMDc4MCwgY29kZSB3YXMgYWRkZWQgdG8gV2ViUHJvY2Vzc1Bvb2xDb2NvYSB0byBleHBs
aWNpdGx5IHBhc3MgdGhlIHJlc3VsdHMgb2YgYSBOU1VzZXJEZWZhdWx0cworICAgICAgICB0byBu
ZXdseSBjcmVhdGVkIFdlYkNvbnRlbnQgcHJvY2Vzc2VzIHRvIGRldGVybWluZSBsb2cgY2hhbm5l
bCBsZXZlbHMuIExhdGVyLCBpbiByMjMyMTU4LCBOU1VzZXJEZWZhdWx0cworICAgICAgICB3ZXJl
IHJlbW92ZWQgZnJvbSB0aGUgZGVmYXVsdCBsb2dMZXZlbFN0cmluZygpIGltcGxlbWVudGF0aW9u
cyBpbiBXVEYsIFdlYkNvcmUsIGFuZCBXZWJLaXQgdG8gaW1wcm92ZQorICAgICAgICBwcm9jZXNz
IGxhdW5jaCB0aW1lIHBlcmZvcm1hbmNlLiBJbiByMjc5Nzk2LCB0aGUgc2FtZSB0ZWNobmlxdWUg
c3VlZCBpbiBXZWJQcm9jZXNzUG9vbENvY29hIHdhcyBhZGRlZAorICAgICAgICB0byBHUFVQcm9j
ZXNzUHJveHlDb2NvYSB0byBwYXNzIHRob3NlIGxvZyBsZXZlbCBzdHJpbmdzIHRvIHRoZSBHUFVQ
cm9jZXNzLiBBbmQgdGhlbiBpbiByMjg2NDg0LCBhbGwgdGhlCisgICAgICAgIHVzZXMgb2YgTlNV
c2VyRGVmYXVsdHMgd2VyZSByZW1vdmVkIGZyb20gV2ViUHJvY2Vzc1Bvb2xDb2NvYSBhbmQgR1BV
UHJvY2Vzc1Byb3h5Q29jb2Egd2VyZSByZW1vdmVkLAorICAgICAgICByZW1vdmluZyB0aGUgYWJp
bGl0eSB0byBpbmNyZWFzZSB0aGUgbG9nIGNoYW5uZWwgbGV2ZWxzIGF0IHJ1bnRpbWUgdGhyb3Vn
aCBOU1VzZXJEZWZ1YWx0cy4KKworICAgICAgICBBZGQgYmFjayBpbiB0aGUgYWJpbGl0eSB0byBk
ZWZpbmUgbG9nIGxldmVscyBmb3IgdGhlIFVJUHJvY2VzcyBhbmQgYWxsIEF1eGlsaWFyeVByb2Nl
c3NlcyB3aXRob3V0CisgICAgICAgIHJlZ3Jlc3NpbmcgbGF1bmNoIHRpbWUgYnkgb25seSBjaGVj
a2luZyB0aGUgTlNVc2VyRGVmYXVsdCBvbmNlLCBvbmx5IGluIHRoZSBVSVByb2Nlc3MsIHN0b3Jp
bmcgdGhlIHJlc3VsdAorICAgICAgICBpbiBhIHN0YXRpYyB2YXJpYWJsZSwgYW5kIHBhc3Npbmcg
dGhlIHJlc3VsdHMgb2YgdGhhdCBjaGVjayB0byBhbGwgQXV4aWxpYXJ5UHJvY2Vzc2VzIGF0IGNy
ZWF0aW9uIHRpbWUuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQXV4aWxpYXJ5UHJvY2Vzc1Byb3h5
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6QXV4aWxpYXJ5UHJvY2Vzc1Byb3h5OjphdXhpbGlhcnlQ
cm9jZXNzUGFyYW1ldGVycyk6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1VJUHJvY2Vzc0xv
Z0luaXRpYWxpemF0aW9uQ29jb2EubW06IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpVSVByb2Nl
c3M6Ond0ZkxvZ0xldmVsU3RyaW5nKToKKyAgICAgICAgKFdlYktpdDo6VUlQcm9jZXNzOjp3ZWJD
b3JlTG9nTGV2ZWxTdHJpbmcpOgorICAgICAgICAoV2ViS2l0OjpVSVByb2Nlc3M6OndlYktpdExv
Z0xldmVsU3RyaW5nKToKKyAgICAgICAgKiBVSVByb2Nlc3MvVUlQcm9jZXNzTG9nSW5pdGlhbGl6
YXRpb24uY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6VUlQcm9jZXNzOjppbml0aWFsaXpl
TG9nZ2luZ0lmTmVjZXNzYXJ5KToKKyAgICAgICAgKFdlYktpdDo6VUlQcm9jZXNzOjp3dGZMb2dM
ZXZlbFN0cmluZyk6CisgICAgICAgIChXZWJLaXQ6OlVJUHJvY2Vzczo6d2ViQ29yZUxvZ0xldmVs
U3RyaW5nKToKKyAgICAgICAgKFdlYktpdDo6VUlQcm9jZXNzOjp3ZWJLaXRMb2dMZXZlbFN0cmlu
Zyk6CisgICAgICAgICogVUlQcm9jZXNzL1VJUHJvY2Vzc0xvZ0luaXRpYWxpemF0aW9uLmg6IEFk
ZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHA6CisKIDIwMjItMDIt
MjUgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CiAKICAgICAgICAgUmVncmVzc2lv
bihyMjQyNzI5KTogbV9vcmlnaW4gaW4gSURCRGF0YWJhc2VJZGVudGlmaWVyIGlzIGluY29ycmVj
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJLaXQv
U291cmNlcy50eHQKaW5kZXggOTJhNThiMGJkN2NiNTMwMzAxYmViMmFiMWU5YjExNTkzOGQwODMw
NS4uMmUyZDcyZjZiMmFmOGFlNzZhYWM1MjJjMzUwYjI5MDA2ODI1ODg1NyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0
CkBAIC00MjcsNiArNDI3LDcgQEAgVUlQcm9jZXNzL1N5c3RlbVByZXZpZXdDb250cm9sbGVyLmNw
cAogVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbk1hbmFnZXIuY3BwCiBVSVBy
b2Nlc3MvVGV4dENoZWNrZXIuY3BwCiBVSVByb2Nlc3MvVGV4dENoZWNrZXJDb21wbGV0aW9uLmNw
cAorVUlQcm9jZXNzL1VJUHJvY2Vzc0xvZ0luaXRpYWxpemF0aW9uLmNwcAogVUlQcm9jZXNzL1Vz
ZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5LmNwcAogVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcAogVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0UHJveHkuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2Nv
YS50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKaW5kZXggMzlmZWE5MWNlNTYx
NzU4MTYwYWQ5MjE4OTg5NDUzZTU4M2VkNjQ2MS4uMmM2MDYyY2YwYWFjNGIxOWQ0YmQyZTMxODhl
YWI5NjliNDkzZWY3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0
CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dApAQCAtNDIzLDYgKzQyMyw3IEBA
IFVJUHJvY2Vzcy9Db2NvYS9TZXNzaW9uU3RhdGVDb2RpbmcubW0KIFVJUHJvY2Vzcy9Db2NvYS9T
eXN0ZW1QcmV2aWV3Q29udHJvbGxlckNvY29hLm1tCiBVSVByb2Nlc3MvQ29jb2EvVGV4dENoZWNr
aW5nQ29udHJvbGxlci5tbQogVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0KK1VJUHJvY2Vz
cy9Db2NvYS9VSVByb2Nlc3NMb2dJbml0aWFsaXphdGlvbkNvY29hLm1tCiBVSVByb2Nlc3MvQ29j
b2EvVUlSZW1vdGVPYmplY3RSZWdpc3RyeS5jcHAKIFVJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFD
YXB0dXJlTWFuYWdlclByb3h5LmNwcAogVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlclByb3h5Lm1tCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BdXhpbGlhcnlQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QXV4aWxpYXJ5UHJvY2Vzc1Byb3h5LmNwcAppbmRleCBmNTVmYzI2Mzk0ZThiMjc1NzRiNTk2MGFk
ODU4NzQ2MWNjNGJkYWM3Li5jYzBkOWQ2Y2ZkYzk5NzNlOTlhNjg5NjkzOTA4MDAzN2MxOWI3Yjhl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXhpbGlhcnlQcm9jZXNzUHJv
eHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1eGlsaWFyeVByb2Nlc3NQcm94
eS5jcHAKQEAgLTI3LDEyICsyNywxMCBAQAogI2luY2x1ZGUgIkF1eGlsaWFyeVByb2Nlc3NQcm94
eS5oIgogCiAjaW5jbHVkZSAiQXV4aWxpYXJ5UHJvY2Vzc01lc3NhZ2VzLmgiCi0jaW5jbHVkZSAi
TG9nSW5pdGlhbGl6YXRpb24uaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSAiVUlQ
cm9jZXNzTG9nSW5pdGlhbGl6YXRpb24uaCIKICNpbmNsdWRlICJXZWJQYWdlUHJveHkuaCIKICNp
bmNsdWRlICJXZWJQcm9jZXNzUHJveHkuaCIKLSNpbmNsdWRlIDxXZWJDb3JlL0xvZ0luaXRpYWxp
emF0aW9uLmg+Ci0jaW5jbHVkZSA8d3RmL0xvZ0luaXRpYWxpemF0aW9uLmg+CiAjaW5jbHVkZSA8
d3RmL1J1bkxvb3AuaD4KIAogI2lmIFBMQVRGT1JNKENPQ09BKQpAQCAtNDA4LDkgKzQwNiw5IEBA
IEF1eGlsaWFyeVByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMgQXV4aWxpYXJ5UHJvY2Vzc1Byb3h5
OjphdXhpbGlhcnlQcm9jZXNzUGFyYW1lCiB7CiAgICAgQXV4aWxpYXJ5UHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVycyBwYXJhbWV0ZXJzOwogI2lmICFMT0dfRElTQUJMRUQgfHwgIVJFTEVBU0VfTE9H
X0RJU0FCTEVECi0gICAgcGFyYW1ldGVycy53dGZMb2dnaW5nQ2hhbm5lbHMgPSBXVEY6OmxvZ0xl
dmVsU3RyaW5nKCk7Ci0gICAgcGFyYW1ldGVycy53ZWJDb3JlTG9nZ2luZ0NoYW5uZWxzID0gV2Vi
Q29yZTo6bG9nTGV2ZWxTdHJpbmcoKTsKLSAgICBwYXJhbWV0ZXJzLndlYktpdExvZ2dpbmdDaGFu
bmVscyA9IFdlYktpdDo6bG9nTGV2ZWxTdHJpbmcoKTsKKyAgICBwYXJhbWV0ZXJzLnd0ZkxvZ2dp
bmdDaGFubmVscyA9IFVJUHJvY2Vzczo6d3RmTG9nTGV2ZWxTdHJpbmcoKTsKKyAgICBwYXJhbWV0
ZXJzLndlYkNvcmVMb2dnaW5nQ2hhbm5lbHMgPSBVSVByb2Nlc3M6OndlYkNvcmVMb2dMZXZlbFN0
cmluZygpOworICAgIHBhcmFtZXRlcnMud2ViS2l0TG9nZ2luZ0NoYW5uZWxzID0gVUlQcm9jZXNz
Ojp3ZWJLaXRMb2dMZXZlbFN0cmluZygpOwogI2VuZGlmCiAgICAgcmV0dXJuIHBhcmFtZXRlcnM7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSVByb2Nlc3NM
b2dJbml0aWFsaXphdGlvbkNvY29hLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2Ev
VUlQcm9jZXNzTG9nSW5pdGlhbGl6YXRpb25Db2NvYS5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NjRkMGM1NTU3
ODczYWJhNDIwMmI1OWU1NGVmYTFhMDFjMTZkNDhmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlQcm9jZXNzTG9nSW5pdGlhbGl6YXRpb25Db2NvYS5t
bQpAQCAtMCwwICsxLDcxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIyIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbXBvcnQg
ImNvbmZpZy5oIgorI2ltcG9ydCAiVUlQcm9jZXNzTG9nSW5pdGlhbGl6YXRpb24uaCIKKworI2lm
IFBMQVRGT1JNKENPQ09BKQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworbmFtZXNwYWNlIFVJUHJv
Y2VzcyB7CisKK1N0cmluZyB3dGZMb2dMZXZlbFN0cmluZygpCit7CisgICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPFJldGFpblB0cjxOU1N0cmluZz4+IGxvZ1N0cmluZzsKKyAgICBzdGF0aWMgZGlz
cGF0Y2hfb25jZV90IG9uY2VUb2tlbjsKKyAgICBkaXNwYXRjaF9vbmNlKCZvbmNlVG9rZW4sIFsm
XSB7CisgICAgICAgIGxvZ1N0cmluZy5nZXQoKSA9IFtbTlNVc2VyRGVmYXVsdHMgc3RhbmRhcmRV
c2VyRGVmYXVsdHNdIHN0cmluZ0ZvcktleTpAIldURkxvZ2dpbmciXTsKKyAgICB9KTsKKyAgICBy
ZXR1cm4gbG9nU3RyaW5nLmdldCgpLmdldCgpOworfQorCitTdHJpbmcgd2ViQ29yZUxvZ0xldmVs
U3RyaW5nKCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8UmV0YWluUHRyPE5TU3RyaW5n
Pj4gbG9nU3RyaW5nOworICAgIHN0YXRpYyBkaXNwYXRjaF9vbmNlX3Qgb25jZVRva2VuOworICAg
IGRpc3BhdGNoX29uY2UoJm9uY2VUb2tlbiwgWyZdIHsKKyAgICAgICAgbG9nU3RyaW5nLmdldCgp
ID0gW1tOU1VzZXJEZWZhdWx0cyBzdGFuZGFyZFVzZXJEZWZhdWx0c10gc3RyaW5nRm9yS2V5OkAi
V2ViQ29yZUxvZ2dpbmciXTsKKyAgICB9KTsKKyAgICByZXR1cm4gbG9nU3RyaW5nLmdldCgpLmdl
dCgpOworfQorCitTdHJpbmcgd2ViS2l0TG9nTGV2ZWxTdHJpbmcoKQoreworICAgIHN0YXRpYyBO
ZXZlckRlc3Ryb3llZDxSZXRhaW5QdHI8TlNTdHJpbmc+PiBsb2dTdHJpbmc7CisgICAgc3RhdGlj
IGRpc3BhdGNoX29uY2VfdCBvbmNlVG9rZW47CisgICAgZGlzcGF0Y2hfb25jZSgmb25jZVRva2Vu
LCBbJl0geworICAgICAgICBsb2dTdHJpbmcuZ2V0KCkgPSBbW05TVXNlckRlZmF1bHRzIHN0YW5k
YXJkVXNlckRlZmF1bHRzXSBzdHJpbmdGb3JLZXk6QCJXZWJLaXQyTG9nZ2luZyJdOworICAgIH0p
OworICAgIHJldHVybiBsb2dTdHJpbmcuZ2V0KCkuZ2V0KCk7Cit9CisKK30KKworfQorCisjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VJUHJvY2Vzc0xvZ0luaXRp
YWxpemF0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VJUHJvY2Vzc0xvZ0luaXRp
YWxpemF0aW9uLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42YzE4OWRlOGUyZmZhY2Q5MGQ4ZDI1YmI1ZTZiNmU3
ZmIwZGZjNjQzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVUlQ
cm9jZXNzTG9nSW5pdGlhbGl6YXRpb24uY3BwCkBAIC0wLDAgKzEsNzEgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMjIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVUlQcm9jZXNzTG9nSW5pdGlhbGl6YXRp
b24uaCIKKworI2lmICFMT0dfRElTQUJMRUQgfHwgIVJFTEVBU0VfTE9HX0RJU0FCTEVECisKKyNp
bmNsdWRlICJMb2dJbml0aWFsaXphdGlvbi5oIgorI2luY2x1ZGUgPFdlYkNvcmUvTG9nSW5pdGlh
bGl6YXRpb24uaD4KKyNpbmNsdWRlIDx3dGYvTG9nSW5pdGlhbGl6YXRpb24uaD4KKworbmFtZXNw
YWNlIFdlYktpdCB7CisKK25hbWVzcGFjZSBVSVByb2Nlc3MgeworCit2b2lkIGluaXRpYWxpemVM
b2dnaW5nSWZOZWNlc3NhcnkoKQoreworICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlRmxh
ZzsKKyAgICBzdGQ6OmNhbGxfb25jZShvbmNlRmxhZywgW10geworICAgICAgICBXVEY6OmxvZ0No
YW5uZWxzKCkuaW5pdGlhbGl6ZUxvZ0NoYW5uZWxzSWZOZWNlc3Nhcnkod3RmTG9nTGV2ZWxTdHJp
bmcoKSk7CisgICAgICAgIFdlYkNvcmU6OmxvZ0NoYW5uZWxzKCkuaW5pdGlhbGl6ZUxvZ0NoYW5u
ZWxzSWZOZWNlc3Nhcnkod2ViQ29yZUxvZ0xldmVsU3RyaW5nKCkpOworICAgICAgICBXZWJLaXQ6
OmxvZ0NoYW5uZWxzKCkuaW5pdGlhbGl6ZUxvZ0NoYW5uZWxzSWZOZWNlc3Nhcnkod2ViS2l0TG9n
TGV2ZWxTdHJpbmcoKSk7CisgICAgfSk7Cit9CisKKyNpZiAhUExBVEZPUk0oQ09DT0EpCitTdHJp
bmcgd3RmTG9nTGV2ZWxTdHJpbmcoKQoreworICAgIHJldHVybiBXVEY6OmxvZ0xldmVsU3RyaW5n
KCk7Cit9CisKK1N0cmluZyB3ZWJDb3JlTG9nTGV2ZWxTdHJpbmcoKQoreworICAgIHJldHVybiBX
ZWJDb3JlOjpsb2dMZXZlbFN0cmluZygpOworfQorCitTdHJpbmcgd2ViS2l0TG9nTGV2ZWxTdHJp
bmcoKQoreworICAgIHJldHVybiBXZWJLaXQ6OmxvZ0xldmVsU3RyaW5nKCk7Cit9CisjZW5kaWYK
KworfQorCit9CisKKyNlbmRpZiAvLyAhTE9HX0RJU0FCTEVEIHx8ICFSRUxFQVNFX0xPR19ESVNB
QkxFRAorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9VSVByb2Nlc3NMb2dJ
bml0aWFsaXphdGlvbi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVUlQcm9jZXNzTG9nSW5p
dGlhbGl6YXRpb24uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yZTE0ZjI2YjFkMGQxNDMzZjdmNDU5YzYyODQ2NzFi
YzIxNjA1NzYyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVUlQ
cm9jZXNzTG9nSW5pdGlhbGl6YXRpb24uaApAQCAtMCwwICsxLDUxIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDIyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorCisvLyBOT1RFOiBUaGVz
ZSBtZXRob2RzIGNvbmZpZ3VyZSBsb2dnaW5nIHNlcGFyYXRlbHkgYW5kIGRpZmZlcmVudGx5IGZv
ciB0aGUgVUlQcm9jZXNzCisvLyB0aGFuIHNpbWlsYXIgbWV0aG9kcyBlbHNld2hlcmUuIFNwZWNp
ZmljYWxseSwgdGhlIGxvZyBzdHJpbmdzIHJldHVybmVkIGZyb20gdGhlc2UKKy8vIG1ldGhvZHMg
YXJlIGluaXRpYWxpemVkIG9uY2UsIHJhdGhlciB0aGFuIHJlcGVhdGVkbHksIGFuZCBhcmUgaW50
ZW5kZWQgdG8gYmUgcGFzc2VkCisvLyB0aHJvdWdoIHRvIEF1eGlsaWFyeVByb2Nlc3NlcyB0byBm
dXJ0aGVyIHJlZHVjZSB0aGUgcnVudGltZSBjb3N0IG9mIGxvZyBzdHJpbmcKKy8vIGluaXRpYWxp
emF0aW9uLgorCisjaWYgIUxPR19ESVNBQkxFRCB8fCAhUkVMRUFTRV9MT0dfRElTQUJMRUQKKwor
bmFtZXNwYWNlIFdlYktpdCB7CisKK25hbWVzcGFjZSBVSVByb2Nlc3MgeworCit2b2lkIGluaXRp
YWxpemVMb2dnaW5nSWZOZWNlc3NhcnkoKTsKK1N0cmluZyB3dGZMb2dMZXZlbFN0cmluZygpOwor
U3RyaW5nIHdlYkNvcmVMb2dMZXZlbFN0cmluZygpOworU3RyaW5nIHdlYktpdExvZ0xldmVsU3Ry
aW5nKCk7CisKK30KKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQb29sLmNwcAppbmRleCAwOGI2NDY0NDBjYzAyOGFhZmUyOWRhNmJkYjA1YjU1Mzc5OWQy
ZTE5Li45OTM1OGNhMDlkYWY3M2M0NTllMDgxZjhmYWFiYWUyZGVjOGU1MTVkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCkBAIC00NSw3ICs0NSw2IEBACiAj
aW5jbHVkZSAiR2FtZXBhZERhdGEuaCIKICNpbmNsdWRlICJIaWdoUGVyZm9ybWFuY2VHcmFwaGlj
c1VzYWdlU2FtcGxlci5oIgogI2luY2x1ZGUgIkxlZ2FjeUdsb2JhbFNldHRpbmdzLmgiCi0jaW5j
bHVkZSAiTG9nSW5pdGlhbGl6YXRpb24uaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVk
ZSAiTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCIKICNpbmNsdWRlICJOZXR3b3Jr
UHJvY2Vzc01lc3NhZ2VzLmgiCkBAIC01Niw2ICs1NSw3IEBACiAjaW5jbHVkZSAiVGV4dENoZWNr
ZXIuaCIKICNpbmNsdWRlICJVSUdhbWVwYWQuaCIKICNpbmNsdWRlICJVSUdhbWVwYWRQcm92aWRl
ci5oIgorI2luY2x1ZGUgIlVJUHJvY2Vzc0xvZ0luaXRpYWxpemF0aW9uLmgiCiAjaW5jbHVkZSAi
V0tDb250ZXh0UHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYkF1dG9tYXRpb25TZXNzaW9uLmgiCiAj
aW5jbHVkZSAiV2ViQmFja0ZvcndhcmRDYWNoZS5oIgpAQCAtODUsNyArODUsNiBAQAogI2luY2x1
ZGUgIldlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENv
cmUvSlNDSW5saW5lcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQXBwbGljYXRpb25DYWNoZVN0b3Jh
Z2UuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL0xvZ0luaXRpYWxpemF0aW9uLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9Nb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybVNj
cmVlbi5oPgpAQCAtOTcsNyArOTYsNiBAQAogI2luY2x1ZGUgPFdlYkNvcmUvUnVudGltZUFwcGxp
Y2F0aW9uQ2hlY2tzLmg+CiAjaW5jbHVkZSA8cGFsL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUgPHd0
Zi9DYWxsYmFja0FnZ3JlZ2F0b3IuaD4KLSNpbmNsdWRlIDx3dGYvTG9nSW5pdGlhbGl6YXRpb24u
aD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ry
b3llZC5oPgogI2luY2x1ZGUgPHd0Zi9Qcm9jZXNzUHJpdmlsZWdlLmg+CkBAIC0yNjksOSArMjY3
LDcgQEAgV2ViUHJvY2Vzc1Bvb2w6OldlYlByb2Nlc3NQb29sKEFQSTo6UHJvY2Vzc1Bvb2xDb25m
aWd1cmF0aW9uJiBjb25maWd1cmF0aW9uKQogICAgIHJlc29sdmVQYXRoc0ZvclNhbmRib3hFeHRl
bnNpb25zKCk7CiAKICNpZiAhTE9HX0RJU0FCTEVEIHx8ICFSRUxFQVNFX0xPR19ESVNBQkxFRAot
ICAgIFdURjo6bG9nQ2hhbm5lbHMoKS5pbml0aWFsaXplTG9nQ2hhbm5lbHNJZk5lY2Vzc2FyeSgp
OwotICAgIFdlYkNvcmU6OmxvZ0NoYW5uZWxzKCkuaW5pdGlhbGl6ZUxvZ0NoYW5uZWxzSWZOZWNl
c3NhcnkoKTsKLSAgICBXZWJLaXQ6OmxvZ0NoYW5uZWxzKCkuaW5pdGlhbGl6ZUxvZ0NoYW5uZWxz
SWZOZWNlc3NhcnkoKTsKKyAgICBVSVByb2Nlc3M6OmluaXRpYWxpemVMb2dnaW5nSWZOZWNlc3Nh
cnkoKTsKICNlbmRpZiAvLyAhTE9HX0RJU0FCTEVEIHx8ICFSRUxFQVNFX0xPR19ESVNBQkxFRAog
CiAjaWZuZGVmIE5ERUJVRwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKaW5kZXggNjA3MzI4ZTA2YmNjY2E0M2IyOWI1NWYwMTdkOWIxZWYxMzQ1NGUw
Ni4uYzFhYjg5ODE5MTc4ZDAyOTZjM2EzYWU1NWQxYzRiMTFlMjcyMTY0NCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC02MjY0LDYgKzYy
NjQsOSBAQAogCQlDRDgyNTJFMDI1RDQ5MTg0MDA4NjJGRDggLyogUmVtb3RlUmVtb3RlQ29tbWFu
ZExpc3RlbmVyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZVJl
bW90ZUNvbW1hbmRMaXN0ZW5lck1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUNEODI1MkUxMjVENDkxODUwMDg2MkZEOCAvKiBSZW1vdGVSZW1vdGVDb21t
YW5kTGlzdGVuZXJNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVSZW1vdGVDb21tYW5k
TGlzdGVuZXJNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDk1NDkz
NTI2MTU5MDA0MDA4MzcyRDkgLyogbGliV2ViS2l0U3dpZnQuZHlsaWIgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZXhwbGljaXRGaWxlVHlwZSA9ICJjb21waWxlZC5tYWNoLW8uZHlsaWIi
OyBpbmNsdWRlSW5JbmRleCA9IDA7IHBhdGggPSBsaWJXZWJLaXRTd2lmdC5keWxpYjsgc291cmNl
VHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKKwkJQ0Q5QTY0OUYyN0M4OTcyQzAwMzgyN0Mw
IC8qIFVJUHJvY2Vzc0xvZ0luaXRpYWxpemF0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFVJUHJvY2Vz
c0xvZ0luaXRpYWxpemF0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEOUE2
NEEwMjdDODk3MkMwMDM4MjdDMCAvKiBVSVByb2Nlc3NMb2dJbml0aWFsaXphdGlvbi5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBVSVByb2Nlc3NMb2dJbml0aWFsaXphdGlvbi5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEOUE2NEExMjdDODk3NDIwMDM4MjdDMCAvKiBVSVByb2Nl
c3NMb2dJbml0aWFsaXphdGlvbkNvY29hLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gVUlQcm9j
ZXNzTG9nSW5pdGlhbGl6YXRpb25Db2NvYS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQ0RBMDQxRjMxQUNFMjEwNTAwNEExM0VDIC8qIEJhY2tCb2FyZFNlcnZpY2VzU1BJLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJhY2tCb2FyZFNlcnZpY2VzU1BJLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEQTI5QTE4MUNCREJGNDEwMDkwMUNDRiAvKiBQ
bGF5YmFja1Nlc3Npb25NYW5hZ2VyLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3Bw
OyBwYXRoID0gUGxheWJhY2tTZXNzaW9uTWFuYWdlci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQ0RBMjlBMTkxQ0JEQkY0MTAwOTAxQ0NGIC8qIFBsYXliYWNrU2Vzc2lvbk1hbmFn
ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGxheWJhY2tTZXNzaW9uTWFu
YWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNzYyOSw2ICs3NjMyLDcgQEAK
IAkJCQkyRDBDRjY0QjIxRjJBODAzMDA3ODc1NjYgLyogVGV4dENoZWNraW5nQ29udHJvbGxlci5t
bSAqLywKIAkJCQkxQUZFNDM2NDE4QjZDMDgxMDA5QzdBNDggLyogVUlEZWxlZ2F0ZS5oICovLAog
CQkJCTFBRkU0MzYzMThCNkMwODEwMDlDN0E0OCAvKiBVSURlbGVnYXRlLm1tICovLAorCQkJCUNE
OUE2NEExMjdDODk3NDIwMDM4MjdDMCAvKiBVSVByb2Nlc3NMb2dJbml0aWFsaXphdGlvbkNvY29h
Lm1tICovLAogCQkJCTQ2MzIzNjg2MjMxNDgzM0YwMEE0OEZBNyAvKiBVSVJlbW90ZU9iamVjdFJl
Z2lzdHJ5LmNwcCAqLywKIAkJCQk0NjMyMzY4NTIzMTQ4MzNGMDBBNDhGQTcgLyogVUlSZW1vdGVP
YmplY3RSZWdpc3RyeS5oICovLAogCQkJCTA3MDI1OUJFMjUyMjg0MUMwMDE1MzQwNSAvKiBVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5tbSAqLywKQEAgLTExMTU0LDYgKzEx
MTU4LDggQEAKIAkJCQkxQUE0MTdDOTEyQzAwQ0NBMDAyQkU2N0IgLyogVGV4dENoZWNrZXIuaCAq
LywKIAkJCQk1M0NGQkJDNjIyMjREMUIwMDAyNjY1NDYgLyogVGV4dENoZWNrZXJDb21wbGV0aW9u
LmNwcCAqLywKIAkJCQk1M0NGQkJDNzIyMjREMUIwMDAyNjY1NDYgLyogVGV4dENoZWNrZXJDb21w
bGV0aW9uLmggKi8sCisJCQkJQ0Q5QTY0QTAyN0M4OTcyQzAwMzgyN0MwIC8qIFVJUHJvY2Vzc0xv
Z0luaXRpYWxpemF0aW9uLmNwcCAqLywKKwkJCQlDRDlBNjQ5RjI3Qzg5NzJDMDAzODI3QzAgLyog
VUlQcm9jZXNzTG9nSW5pdGlhbGl6YXRpb24uaCAqLywKIAkJCQkwNzI5N0Y5QzFDMTdCQkVBMDAz
RjA3MzUgLyogVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHkuY3BwICovLAogCQkJCTA3Mjk3
RjlEMUMxN0JCRUEwMDNGMDczNSAvKiBVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eS5oICov
LAogCQkJCTRBNDEwRjM5MTlBRjdCMDQwMDJFQkFCNSAvKiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXJQcm94eS5jcHAgKi8sCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>