<?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>230580</bug_id>
          
          <creation_ts>2021-09-21 15:49:06 -0700</creation_ts>
          <short_desc>[Cocoa] Add SPI to select a tab created by _WKInspectorExtension</short_desc>
          <delta_ts>2021-09-28 14:28:17 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=230907</see_also>
          <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="Blaze Burg">bburg</reporter>
          <assigned_to name="Blaze Burg">bburg</assigned_to>
          <cc>bburg</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>hi</cc>
    
    <cc>inspector-bugzilla-changes</cc>
    
    <cc>joepeck</cc>
    
    <cc>pangle</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1795822</commentid>
    <comment_count>0</comment_count>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2021-09-21 15:49:06 -0700</bug_when>
    <thetext>.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1795824</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-09-21 15:49:24 -0700</bug_when>
    <thetext>&lt;rdar://problem/83372851&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1795828</commentid>
    <comment_count>2</comment_count>
      <attachid>438874</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2021-09-21 15:59:19 -0700</bug_when>
    <thetext>Created attachment 438874
Patch v1.0 - depends on patch from 230573</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1795848</commentid>
    <comment_count>3</comment_count>
      <attachid>438883</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2021-09-21 16:29:56 -0700</bug_when>
    <thetext>Created attachment 438883
Patch v1.1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1795851</commentid>
    <comment_count>4</comment_count>
      <attachid>438885</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2021-09-21 16:35:23 -0700</bug_when>
    <thetext>Created attachment 438885
Patch v1.1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1795857</commentid>
    <comment_count>5</comment_count>
      <attachid>438874</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-09-21 16:53:25 -0700</bug_when>
    <thetext>Comment on attachment 438874
Patch v1.0 - depends on patch from 230573

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

&gt; Source/WebInspectorUI/UserInterface/Controllers/WebInspectorExtensionController.js:164
&gt; +        WI.tabBrowser.showTabForContentView(tabContentView, {

Do we want to propagate the result of this (i.e. add a `return`)?  You use `Expected&lt;bool, Inspector::ExtensionError&gt;`, so I&apos;m guessing yes?  If not, can we switch to just a `std::optional&lt;Inspector::ExtensionError&gt;` instead?

&gt; Source/WebKit/UIProcess/API/Cocoa/_WKInspectorExtensionHost.h:76
&gt; + * This will open the associated Web Inspector if it is not already open.

This contradicts the comment inside the implementation(s).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1795873</commentid>
    <comment_count>6</comment_count>
      <attachid>438885</attachid>
    <who name="Patrick Angle">pangle</who>
    <bug_when>2021-09-21 17:21:01 -0700</bug_when>
    <thetext>Comment on attachment 438885
Patch v1.1

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

&gt; Source/WebKit/UIProcess/API/Cocoa/_WKInspectorExtensionHost.h:61
&gt; + * @discussion This method has no effect if the  extensionTabIdentifier is invalid.

NIT: extra space in &quot;the  extensionTabIdentifier&quot;

&gt; Source/WebKit/UIProcess/Inspector/WebInspectorUIExtensionControllerProxy.cpp:190
&gt; +void WebInspectorUIExtensionControllerProxy::showExtensionTab(const Inspector::ExtensionTabID&amp; extensionTabIdentifier, CompletionHandler&lt;void(Expected&lt;bool, Inspector::ExtensionError&gt;)&gt;&amp;&amp; completionHandler)

+1 to Devin&apos;s question on this signature and friends wrt the completion handler&apos;s `bool`. Looking at the frontend implementation, it looks like you return an error if the tab can&apos;t be found to be shown, so an optional is probably correct here.

&gt; Source/WebKit/UIProcess/Inspector/WebInspectorUIExtensionControllerProxy.h:63
&gt; +    void showExtensionTab(const Inspector::ExtensionTabID&amp;, CompletionHandler&lt;void(Expected&lt;bool, Inspector::ExtensionError&gt;)&gt;&amp;&amp;);

DITTO: WebInspectorUIExtensionControllerProxy.cpp:190</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1795915</commentid>
    <comment_count>7</comment_count>
      <attachid>438874</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2021-09-21 19:23:12 -0700</bug_when>
    <thetext>Comment on attachment 438874
Patch v1.0 - depends on patch from 230573

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

&gt;&gt; Source/WebInspectorUI/UserInterface/Controllers/WebInspectorExtensionController.js:164
&gt;&gt; +        WI.tabBrowser.showTabForContentView(tabContentView, {
&gt; 
&gt; Do we want to propagate the result of this (i.e. add a `return`)?  You use `Expected&lt;bool, Inspector::ExtensionError&gt;`, so I&apos;m guessing yes?  If not, can we switch to just a `std::optional&lt;Inspector::ExtensionError&gt;` instead?

I suppose there are some rare situations where returning false from WI.TabBrowser.showTabForContentView *is* meaningful, namely that the contentView argument is invalid. This seems like more of an internal assertion than something that makes sense at the Cocoa API / NSError level. There is an early return in WI.WebInspectorExtensionController.showExtensionTab() in the case that we can&apos;t find the extension contentView in the mapping from tabID -&gt; contentView.

As for Expected vs std::optional, see my other comment.

&gt;&gt; Source/WebKit/UIProcess/API/Cocoa/_WKInspectorExtensionHost.h:76
&gt;&gt; + * This will open the associated Web Inspector if it is not already open.
&gt; 
&gt; This contradicts the comment inside the implementation(s).

This comment is incorrect, will remove.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1795917</commentid>
    <comment_count>8</comment_count>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2021-09-21 19:27:26 -0700</bug_when>
    <thetext>(In reply to Patrick Angle from comment #6)
&gt; Comment on attachment 438885 [details]
&gt; Patch v1.1
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=438885&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/UIProcess/Inspector/WebInspectorUIExtensionControllerProxy.cpp:190
&gt; &gt; +void WebInspectorUIExtensionControllerProxy::showExtensionTab(const Inspector::ExtensionTabID&amp; extensionTabIdentifier, CompletionHandler&lt;void(Expected&lt;bool, Inspector::ExtensionError&gt;)&gt;&amp;&amp; completionHandler)
&gt; 
&gt; +1 to Devin&apos;s question on this signature and friends wrt the completion
&gt; handler&apos;s `bool`. Looking at the frontend implementation, it looks like you
&gt; return an error if the tab can&apos;t be found to be shown, so an optional is
&gt; probably correct here.

When I wrote the majority of this class, I found Expected to be a great template for representing a return value with an optional error. The only hiccup is that it doesn&apos;t work with `void` as the return type, such as showExtensionTab. In that case I prefer to use Expected&lt;bool, InspectorExtensionError&gt;, rather than making this plumbing even harder to follow by using two different template classes to encode an optional error.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1796083</commentid>
    <comment_count>9</comment_count>
      <attachid>438952</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2021-09-22 08:29:48 -0700</bug_when>
    <thetext>Created attachment 438952
Patch v1.2

Latest patch v1.2 addresses all comments to date.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1796099</commentid>
    <comment_count>10</comment_count>
      <attachid>438952</attachid>
    <who name="Patrick Angle">pangle</who>
    <bug_when>2021-09-22 09:25:25 -0700</bug_when>
    <thetext>Comment on attachment 438952
Patch v1.2

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

&gt; Source/WebKit/UIProcess/API/Cocoa/_WKInspectorExtensionHost.h:58
&gt; + * This will open the associated Web Inspector if it is not already open.

I&apos;m still not sure this is accurate, given that the implementation says it is considered an error to call this method prior to at least creating the frontend.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1797509</commentid>
    <comment_count>11</comment_count>
      <attachid>438952</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2021-09-27 09:19:54 -0700</bug_when>
    <thetext>Comment on attachment 438952
Patch v1.2

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

&gt;&gt; Source/WebKit/UIProcess/API/Cocoa/_WKInspectorExtensionHost.h:58
&gt;&gt; + * This will open the associated Web Inspector if it is not already open.
&gt; 
&gt; I&apos;m still not sure this is accurate, given that the implementation says it is considered an error to call this method prior to at least creating the frontend.

Yeah, this is inaccurate. The completion handler will never resolve until the frontend finishes loading. I will remove the comment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1797517</commentid>
    <comment_count>12</comment_count>
      <attachid>439361</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2021-09-27 09:29:17 -0700</bug_when>
    <thetext>Created attachment 439361
Patch v1.3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1797533</commentid>
    <comment_count>13</comment_count>
      <attachid>439364</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2021-09-27 09:45:31 -0700</bug_when>
    <thetext>Created attachment 439364
Patch v1.3 (rebase)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1797569</commentid>
    <comment_count>14</comment_count>
      <attachid>439364</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-09-27 11:12:16 -0700</bug_when>
    <thetext>Comment on attachment 439364
Patch v1.3 (rebase)

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

r=me

&gt; Source/WebKit/UIProcess/API/Cocoa/_WKInspector.mm:276
&gt; +    // It is an error to call this method prior to creating a frontend (i.e., with -connect or -show).

might be worth adding this to the header doc too?

&gt; Source/WebKit/UIProcess/API/Cocoa/_WKInspector.mm:282
&gt; +    _inspector-&gt;extensionController()-&gt;showExtensionTab(extensionTabIdentifier, [protectedSelf = retainPtr(self), capturedBlock = makeBlockPtr(completionHandler)] (Expected&lt;bool, Inspector::ExtensionError&gt; result) mutable {

should `result` have a `&amp;`?

btw are you sure that `Expected` doesn&apos;t work with `void`?  i see code that should make it work 🤔

&gt; Source/WebKit/UIProcess/API/Cocoa/_WKRemoteWebInspectorViewController.mm:223
&gt; +    // It is an error to call this method prior to creating a frontend (i.e., with -connect or -show).

ditto

&gt; Source/WebKit/UIProcess/API/Cocoa/_WKRemoteWebInspectorViewController.mm:230
&gt; +        if (!result) {

ditto</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1797981</commentid>
    <comment_count>15</comment_count>
      <attachid>439364</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2021-09-28 11:56:47 -0700</bug_when>
    <thetext>Comment on attachment 439364
Patch v1.3 (rebase)

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

&gt;&gt; Source/WebKit/UIProcess/API/Cocoa/_WKInspector.mm:282
&gt;&gt; +    _inspector-&gt;extensionController()-&gt;showExtensionTab(extensionTabIdentifier, [protectedSelf = retainPtr(self), capturedBlock = makeBlockPtr(completionHandler)] (Expected&lt;bool, Inspector::ExtensionError&gt; result) mutable {
&gt; 
&gt; should `result` have a `&amp;`?
&gt; 
&gt; btw are you sure that `Expected` doesn&apos;t work with `void`?  i see code that should make it work 🤔

result should be &amp;&amp;.

Expected&lt;void, E&gt; will require work outside the scope of this patch. I filed &lt;https://bugs.webkit.org/show_bug.cgi?id=230907&gt; to track its resolution and added a FIXME.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1797989</commentid>
    <comment_count>16</comment_count>
      <attachid>439505</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2021-09-28 12:17:15 -0700</bug_when>
    <thetext>Created attachment 439505
Patch v1.5 (for landing)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1798036</commentid>
    <comment_count>17</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-09-28 14:28:15 -0700</bug_when>
    <thetext>Committed r283196 (242243@main): &lt;https://commits.webkit.org/242243@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 439505.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>438874</attachid>
            <date>2021-09-21 15:59:19 -0700</date>
            <delta_ts>2021-09-21 16:29:55 -0700</delta_ts>
            <desc>Patch v1.0 - depends on patch from 230573</desc>
            <filename>bug-230580-20210921155919.patch</filename>
            <type>text/plain</type>
            <size>39153</size>
            <attacher name="Blaze Burg">bburg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyNzQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwppbmRleCBm
NjVhNzFmYmEwMDgyZGRlMTA2ZTRiYzNiODVlZWJmZmJiN2QxZmNmLi4yMjFkZGY1MzQ2ODhjNjM5
MGVhMmM1YzMwZWE5ODhkY2Q4MGFmMjc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMiBAQAorMjAyMS0wOS0yMSAgQkogQnVyZyAgPGJidXJnQGFwcGxlLmNvbT4KKworICAg
ICAgICBbQ29jb2FdIEFkZCBTUEkgdG8gc2VsZWN0IGEgdGFiIGNyZWF0ZWQgYnkgX1dLSW5zcGVj
dG9yRXh0ZW5zaW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMzA1ODAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgzMzcyODUxPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhIG1ldGhvZCB0byBs
b29rIHVwIGEgV2ViSW5zcGVjdG9yRXh0ZW5zaW9uVGFiQ29udGVudFZpZXcKKyAgICAgICAgYnkg
aXRzIGV4dGVuc2lvblRhYklEIGFuZCB0aGVuIHNob3cgaXQgd2l0aCBXSS50YWJCcm93c2VyLgor
CisgICAgICAgICogVXNlckludGVyZmFjZS9Db250cm9sbGVycy9XZWJJbnNwZWN0b3JFeHRlbnNp
b25Db250cm9sbGVyLmpzOgorICAgICAgICAoV0kuV2ViSW5zcGVjdG9yRXh0ZW5zaW9uQ29udHJv
bGxlci5wcm90b3R5cGUucmVsb2FkRm9yRXh0ZW5zaW9uKToKKyAgICAgICAgUmVtb3ZlIGV4dHJh
IG5ld2xpbmVzLgorICAgICAgICAoV0kuV2ViSW5zcGVjdG9yRXh0ZW5zaW9uQ29udHJvbGxlci5w
cm90b3R5cGUuc2hvd0V4dGVuc2lvblRhYik6IEFkZGVkLgorCisgICAgICAgICogVXNlckludGVy
ZmFjZS9Qcm90b2NvbC9JbnNwZWN0b3JGcm9udGVuZEFQSS5qczoKKyAgICAgICAgKEluc3BlY3Rv
ckZyb250ZW5kQVBJLnNob3dFeHRlbnNpb25UYWIpOiBBZGRlZC4KKwogMjAyMS0wOS0xNiAgUGF0
cmljayBBbmdsZSAgPHBhbmdsZUBhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3Rvcjog
UmVncmVzc2lvbihyMjc5NjEzKSBBdWRpdCByZXN1bHQgc2NvcGUgdG9nZ2xlcyBhcmUgbWlzc2lu
ZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwppbmRleCA0NWQ3NWFlNTU4YWQwYjRkOTM2MTg2MWJjNTBhYjE1OTM2NzcwMmQ5Li41
Nzc0NzIyZGY5NjU3YTFkZmYyNGMxMzQxNTgxYTdhNTU5NDFiMDljIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDM0IEBACisyMDIxLTA5LTIxICBCSiBCdXJnICA8YmJ1cmdAYXBwbGUuY29tPgorCisgICAg
ICAgIFtDb2NvYV0gQWRkIFNQSSB0byBzZWxlY3QgYSB0YWIgY3JlYXRlZCBieSBfV0tJbnNwZWN0
b3JFeHRlbnNpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIzMDU4MAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODMzNzI4NTE+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgbmV3IG1ldGhvZCBm
b3Igc2VsZWN0aW5nIGFuIGV4dGVuc2lvbiB0YWIgaW4gV2ViSW5zcGVjdG9yVUkKKyAgICAgICAg
dGhhdCB3YXMgcHJldmlvdXNseSBjcmVhdGVkIGJ5IHVzaW5nCisgICAgICAgIC1bX1dLSW5zcGVj
dG9yRXh0ZW5zaW9uIGNyZWF0ZU5ld1RhYjp0YWJJY29uVVJMOnNvdXJjZVVSTDpjb21wbGV0aW9u
SGFuZGxlcl0uCisKKyAgICAgICAgVGhpcyBpcyBhIHN0cmFpZ2h0Zm9yd2FyZCBwbHVtYmluZyBl
eGVyY2lzZS4gVGhlIEFQSSB0ZXN0IHVzZXMgdGhlIG5ldyBtZXRob2QKKyAgICAgICAgdG8gdGVz
dCB0aGUgZXhpc3RpbmcgX1dLSW5zcGVjdG9yRXh0ZW5zaW9uRGVsZWdhdGUgY2FsbGJhY2sgbWV0
aG9kcyBmb3IKKyAgICAgICAgZGlkU2hvd1RhYiBhbmQgZGlkSGlkZVRhYi4KKworICAgICAgICBO
ZXcgQVBJIHRlc3Q6IFdLSW5zcGVjdG9yRXh0ZW5zaW9uRGVsZWdhdGUuU2hvd0FuZEhpZGVUYWJD
YWxsYmFja3MuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS0luc3BlY3Rvci5t
bToKKyAgICAgICAgKC1bX1dLSW5zcGVjdG9yIHNob3dFeHRlbnNpb25UYWJXaXRoSWRlbnRpZmll
cjpjb21wbGV0aW9uSGFuZGxlcjpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19X
S0luc3BlY3RvckV4dGVuc2lvbkhvc3QuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29h
L19XS1JlbW90ZVdlYkluc3BlY3RvclZpZXdDb250cm9sbGVyLm1tOgorICAgICAgICAoLVtfV0tS
ZW1vdGVXZWJJbnNwZWN0b3JWaWV3Q29udHJvbGxlciBzaG93RXh0ZW5zaW9uVGFiV2l0aElkZW50
aWZpZXI6Y29tcGxldGlvbkhhbmRsZXI6XSk6CisgICAgICAgICogVUlQcm9jZXNzL0luc3BlY3Rv
ci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXJQcm94eS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlclByb3h5OjpzaG93RXh0ZW5z
aW9uVGFiKToKKyAgICAgICAgKiBVSVByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJRXh0
ZW5zaW9uQ29udHJvbGxlclByb3h5Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbnNwZWN0b3Iv
V2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyOjpzaG93RXh0ZW5zaW9uVGFiKToKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRy
b2xsZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4
dGVuc2lvbkNvbnRyb2xsZXIubWVzc2FnZXMuaW46CisKIDIwMjEtMDktMjEgIEJKIEJ1cmcgIDxi
YnVyZ0BhcHBsZS5jb20+CiAKICAgICAgICAgW0NvY29hXSBiYWNrcG9ydCBzaG93Q29uc29sZSgp
IGFuZCBzaG93UmVzb3VyY2VzKCkgZm9yIFJlbW90ZVdlYkluc3BlY3RvclVJCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9XZWJJbnNw
ZWN0b3JFeHRlbnNpb25Db250cm9sbGVyLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvQ29udHJvbGxlcnMvV2ViSW5zcGVjdG9yRXh0ZW5zaW9uQ29udHJvbGxlci5qcwpp
bmRleCA0NmUzNzc0ZDA1ZGJkZWE0MDRmNjc0Zjg4MzY4NDUxYjY0NzQ4ZjkwLi5lNTQwMzdjODFh
MGQ4YjIwMTMyMGYzYWFkM2JlNGY1ZjliYjdhNjI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9XZWJJbnNwZWN0b3JFeHRlbnNpb25D
b250cm9sbGVyLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Nv
bnRyb2xsZXJzL1dlYkluc3BlY3RvckV4dGVuc2lvbkNvbnRyb2xsZXIuanMKQEAgLTE1MSw4ICsx
NTEsMTkgQEAgV0kuV2ViSW5zcGVjdG9yRXh0ZW5zaW9uQ29udHJvbGxlciA9IGNsYXNzIFdlYklu
c3BlY3RvckV4dGVuc2lvbkNvbnRyb2xsZXIgZXh0ZW4KICAgICAgICAgICAgIHJldHVybiBXSS5X
ZWJJbnNwZWN0b3JFeHRlbnNpb24uRXJyb3JDb2RlLkludmFsaWRSZXF1ZXN0OwogICAgICAgICAK
ICAgICAgICAgcmV0dXJuIHRhcmdldC5QYWdlQWdlbnQucmVsb2FkLmludm9rZSh7aWdub3JlQ2Fj
aGV9KTsKLSAgICAgICAgCi0gICAgICAgIAorICAgIH0KKyAgICAKKyAgICBzaG93RXh0ZW5zaW9u
VGFiKGV4dGVuc2lvblRhYklEKQorICAgIHsKKyAgICAgICAgbGV0IHRhYkNvbnRlbnRWaWV3ID0g
dGhpcy5fZXh0ZW5zaW9uVGFiQ29udGVudFZpZXdGb3JFeHRlbnNpb25UYWJJRE1hcC5nZXQoZXh0
ZW5zaW9uVGFiSUQpOworICAgICAgICBpZiAoIXRhYkNvbnRlbnRWaWV3KSB7CisgICAgICAgICAg
ICBXSS5yZXBvcnRJbnRlcm5hbEVycm9yKCJVbmFibGUgdG8gc2hvdyBleHRlbnNpb24gdGFiIHdp
dGggdW5rbm93biBJRDogIiArIGV4dGVuc2lvblRhYklEKTsKKyAgICAgICAgICAgIHJldHVybiBX
SS5XZWJJbnNwZWN0b3JFeHRlbnNpb24uRXJyb3JDb2RlLkludmFsaWRSZXF1ZXN0OworICAgICAg
ICB9CisKKyAgICAgICAgV0kudGFiQnJvd3Nlci5zaG93VGFiRm9yQ29udGVudFZpZXcodGFiQ29u
dGVudFZpZXcsIHsKKyAgICAgICAgICAgIGluaXRpYXRvckhpbnQ6IFdJLlRhYkJyb3dzZXIuVGFi
TmF2aWdhdGlvbkluaXRpYXRvci5Gcm9udGVuZEFQSSwKKyAgICAgICAgfSk7CiAgICAgfQogfTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvUHJvdG9j
b2wvSW5zcGVjdG9yRnJvbnRlbmRBUEkuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9Qcm90b2NvbC9JbnNwZWN0b3JGcm9udGVuZEFQSS5qcwppbmRleCBhZjJjMTg5Yjk5
OGYzZGU2NWVkY2NiMTYxZDgxZjYzYjY3Y2I0YjUyLi40MjhjNTQzM2Y2YzRkY2EwODgwOTI2OGUy
MDZjMTM4NmY1OGY3YmI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9Qcm90b2NvbC9JbnNwZWN0b3JGcm9udGVuZEFQSS5qcworKysgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Qcm90b2NvbC9JbnNwZWN0b3JGcm9udGVuZEFQSS5q
cwpAQCAtMjMwLDQgKzIzMCwxMCBAQCBJbnNwZWN0b3JGcm9udGVuZEFQSSA9IHsKICAgICB7CiAg
ICAgICAgIHJldHVybiBXSS5zaGFyZWRBcHAuZXh0ZW5zaW9uQ29udHJvbGxlci5yZWxvYWRGb3JF
eHRlbnNpb24oZXh0ZW5zaW9uSUQsIHtpZ25vcmVDYWNoZSwgdXNlckFnZW50LCBpbmplY3RlZFNj
cmlwdH0pOwogICAgIH0sCisKKyAgICAvLyBSZXR1cm5zIGEgV0kuV2ViSW5zcGVjdG9yRXh0ZW5z
aW9uLkVycm9yQ29kZSBpZiBhbiBlcnJvciBvY2N1cnJlZCwgb3RoZXJ3aXNlIG5vdGhpbmcuCisg
ICAgc2hvd0V4dGVuc2lvblRhYihleHRlbnNpb25UYWJJRCkKKyAgICB7CisgICAgICAgIHJldHVy
biBXSS5zaGFyZWRBcHAuZXh0ZW5zaW9uQ29udHJvbGxlci5zaG93RXh0ZW5zaW9uVGFiKGV4dGVu
c2lvblRhYklEKTsKKyAgICB9CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL19XS0luc3BlY3Rvci5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9fV0tJbnNwZWN0b3IubW0KaW5kZXggZDY5NWYxZmZmYzM4YWQxODk1NGRmNzU0NzJh
YjNmNDc5ZDZhNjQzYi4uMTE4NGIyYTk1OTI3MzdjOGVlNGJmYWMxZTkzZDhhY2Q5NzBmYTZkZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0luc3BlY3Rv
ci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9y
Lm1tCkBAIC0yNzAsNCArMjcwLDI0IEBAIC0gKHZvaWQpdW5yZWdpc3RlckV4dGVuc2lvbjooX1dL
SW5zcGVjdG9yRXh0ZW5zaW9uICopZXh0ZW5zaW9uIGNvbXBsZXRpb25IYW5kbGVyCiAjZW5kaWYK
IH0KIAorLSAodm9pZClzaG93RXh0ZW5zaW9uVGFiV2l0aElkZW50aWZpZXI6KE5TU3RyaW5nICop
ZXh0ZW5zaW9uVGFiSWRlbnRpZmllciBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCheKShOU0Vycm9y
ICopKWNvbXBsZXRpb25IYW5kbGVyCit7CisjaWYgRU5BQkxFKElOU1BFQ1RPUl9FWFRFTlNJT05T
KQorICAgIC8vIEl0IGlzIGFuIGVycm9yIHRvIGNhbGwgdGhpcyBtZXRob2QgcHJpb3IgdG8gY3Jl
YXRpbmcgYSBmcm9udGVuZCAoaS5lLiwgd2l0aCAtY29ubmVjdCBvciAtc2hvdykuCisgICAgaWYg
KCFfaW5zcGVjdG9yLT5leHRlbnNpb25Db250cm9sbGVyKCkpIHsKKyAgICAgICAgY29tcGxldGlv
bkhhbmRsZXIoW05TRXJyb3IgZXJyb3JXaXRoRG9tYWluOldLRXJyb3JEb21haW4gY29kZTpXS0Vy
cm9yVW5rbm93biB1c2VySW5mbzpAeyBOU0xvY2FsaXplZEZhaWx1cmVSZWFzb25FcnJvcktleTog
SW5zcGVjdG9yOjpleHRlbnNpb25FcnJvclRvU3RyaW5nKEluc3BlY3Rvcjo6RXh0ZW5zaW9uRXJy
b3I6OkludmFsaWRSZXF1ZXN0KX1dKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIF9p
bnNwZWN0b3ItPmV4dGVuc2lvbkNvbnRyb2xsZXIoKS0+c2hvd0V4dGVuc2lvblRhYihleHRlbnNp
b25UYWJJZGVudGlmaWVyLCBbcHJvdGVjdGVkU2VsZiA9IHJldGFpblB0cihzZWxmKSwgY2FwdHVy
ZWRCbG9jayA9IG1ha2VCbG9ja1B0cihjb21wbGV0aW9uSGFuZGxlcildIChFeHBlY3RlZDxib29s
LCBJbnNwZWN0b3I6OkV4dGVuc2lvbkVycm9yPiByZXN1bHQpIG11dGFibGUgeworICAgICAgICBp
ZiAoIXJlc3VsdCkgeworICAgICAgICAgICAgY2FwdHVyZWRCbG9jayhbTlNFcnJvciBlcnJvcldp
dGhEb21haW46V0tFcnJvckRvbWFpbiBjb2RlOldLRXJyb3JVbmtub3duIHVzZXJJbmZvOkB7IE5T
TG9jYWxpemVkRmFpbHVyZVJlYXNvbkVycm9yS2V5OiBJbnNwZWN0b3I6OmV4dGVuc2lvbkVycm9y
VG9TdHJpbmcocmVzdWx0LmVycm9yKCkpfV0pOworICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICB9CisKKyAgICAgICAgY2FwdHVyZWRCbG9jayhuaWwpOworICAgIH0pOworI2VuZGlmCit9CisK
IEBlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJ
bnNwZWN0b3JFeHRlbnNpb25Ib3N0LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvX1dLSW5zcGVjdG9yRXh0ZW5zaW9uSG9zdC5oCmluZGV4IDQxZjhlNjJmMmJmZTdhMTU4OWZl
ZTlhN2I5ODNkYTljNDIyOTRkNGYuLjY2M2FhMzAxZjA2MThjZjZmZjc4NTZhYjQ5YWE4MDU2ZDk1
ZTYwNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJ
bnNwZWN0b3JFeHRlbnNpb25Ib3N0LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL19XS0luc3BlY3RvckV4dGVuc2lvbkhvc3QuaApAQCAtNzEsNiArNzEsMTUgQEAgTlNf
QVNTVU1FX05PTk5VTExfQkVHSU4KICAqLwogLSAodm9pZClzaG93UmVzb3VyY2VzOwogCisvKioK
KyAqIEBhYnN0cmFjdCBPcGVucyB0aGUgc3BlY2lmaWVkIGV4dGVuc2lvbiB0YWIgaW4gdGhlIGFz
c29jaWF0ZWQgV2ViIEluc3BlY3Rvci4KKyAqIFRoaXMgd2lsbCBvcGVuIHRoZSBhc3NvY2lhdGVk
IFdlYiBJbnNwZWN0b3IgaWYgaXQgaXMgbm90IGFscmVhZHkgb3Blbi4KKyAqIEBwYXJhbSBleHRl
bnNpb25UYWJJZGVudGlmaWVyIEFuIGlkZW50aWZpZXIgZm9yIGFuIGV4dGVuc2lvbiB0YWIgY3Jl
YXRlZCB1c2luZyBXS0luc3BlY3RvckV4dGVuc2lvbiBtZXRob2RzLgorICogQHBhcmFtIGNvbXBs
ZXRpb25IYW5kbGVyIFRoZSBjb21wbGV0aW9uIGhhbmRsZXIgdG8gYmUgY2FsbGVkIHdoZW4gdGhl
IHJlcXVlc3QgdG8gc2hvdyB0aGUgdGFiIHN1Y2NlZWRzIG9yIGZhaWxzLgorICogQGRpc2N1c3Np
b24gVGhpcyBtZXRob2QgaGFzIG5vIGVmZmVjdCBpZiB0aGUgIGV4dGVuc2lvblRhYklkZW50aWZp
ZXIgaXMgaW52YWxpZC4KKyAqLworLSAodm9pZClzaG93RXh0ZW5zaW9uVGFiV2l0aElkZW50aWZp
ZXI6KE5TU3RyaW5nICopZXh0ZW5zaW9uVGFiSWRlbnRpZmllciBjb21wbGV0aW9uSGFuZGxlcjoo
dm9pZCheKShOU0Vycm9yICogX051bGxhYmxlKSljb21wbGV0aW9uSGFuZGxlcjsKKwogLyoqCiAg
KiBAYWJzdHJhY3QgVGhlIHdlYiB2aWV3IHRoYXQgaXMgdXNlZCB0byBob3N0IGV4dGVuc2lvbiB0
YWJzIGNyZWF0ZWQgdmlhIF9XS0luc3BlY3RvckV4dGVuc2lvbi4KICAqIEBkaXNjdXNzaW9uIEJy
b3dzaW5nIGNvbnRleHRzIGZvciBleHRlbnNpb24gdGFicyBhcmUgbG9hZGVkIGluIHN1YmZyYW1l
cyBvZiB0aGlzIHdlYiB2aWV3LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL19XS1JlbW90ZVdlYkluc3BlY3RvclZpZXdDb250cm9sbGVyLm1tIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1JlbW90ZVdlYkluc3BlY3RvclZpZXdDb250
cm9sbGVyLm1tCmluZGV4IDEyMmM4Mjg0YmJlNDdhNDM3OThlNjA0M2I1MzExM2UxOGYwN2YwMWEu
LjBkM2Q4ZDNlNmU3MDM0MmE0OTkzODllYTVmYTViNWNhZDc4NzcwMTEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tSZW1vdGVXZWJJbnNwZWN0b3JWaWV3
Q29udHJvbGxlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dL
UmVtb3RlV2ViSW5zcGVjdG9yVmlld0NvbnRyb2xsZXIubW0KQEAgLTIxNyw2ICsyMTcsMjYgQEAg
LSAodm9pZClzaG93UmVzb3VyY2VzCiAgICAgbV9yZW1vdGVJbnNwZWN0b3JQcm94eS0+c2hvd1Jl
c291cmNlcygpOwogfQogCistICh2b2lkKXNob3dFeHRlbnNpb25UYWJXaXRoSWRlbnRpZmllcjoo
TlNTdHJpbmcgKilleHRlbnNpb25UYWJJZGVudGlmaWVyIGNvbXBsZXRpb25IYW5kbGVyOih2b2lk
KF4pKE5TRXJyb3IgKiBfTnVsbGFibGUpKWNvbXBsZXRpb25IYW5kbGVyCit7CisjaWYgRU5BQkxF
KElOU1BFQ1RPUl9FWFRFTlNJT05TKQorICAgIC8vIEl0IGlzIGFuIGVycm9yIHRvIGNhbGwgdGhp
cyBtZXRob2QgcHJpb3IgdG8gY3JlYXRpbmcgYSBmcm9udGVuZCAoaS5lLiwgd2l0aCAtY29ubmVj
dCBvciAtc2hvdykuCisgICAgaWYgKCFtX3JlbW90ZUluc3BlY3RvclByb3h5LT5leHRlbnNpb25D
b250cm9sbGVyKCkpIHsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoW05TRXJyb3IgZXJyb3JX
aXRoRG9tYWluOldLRXJyb3JEb21haW4gY29kZTpXS0Vycm9yVW5rbm93biB1c2VySW5mbzpAeyBO
U0xvY2FsaXplZEZhaWx1cmVSZWFzb25FcnJvcktleTogSW5zcGVjdG9yOjpleHRlbnNpb25FcnJv
clRvU3RyaW5nKEluc3BlY3Rvcjo6RXh0ZW5zaW9uRXJyb3I6OkludmFsaWRSZXF1ZXN0KX1dKTsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG1fcmVtb3RlSW5zcGVjdG9yUHJveHktPmV4
dGVuc2lvbkNvbnRyb2xsZXIoKS0+c2hvd0V4dGVuc2lvblRhYihleHRlbnNpb25UYWJJZGVudGlm
aWVyLCBbcHJvdGVjdGVkU2VsZiA9IHJldGFpblB0cihzZWxmKSwgY2FwdHVyZWRCbG9jayA9IG1h
a2VCbG9ja1B0cihjb21wbGV0aW9uSGFuZGxlcildIChFeHBlY3RlZDxib29sLCBJbnNwZWN0b3I6
OkV4dGVuc2lvbkVycm9yPiByZXN1bHQpIG11dGFibGUgeworICAgICAgICBpZiAoIXJlc3VsdCkg
eworICAgICAgICAgICAgY2FwdHVyZWRCbG9jayhbTlNFcnJvciBlcnJvcldpdGhEb21haW46V0tF
cnJvckRvbWFpbiBjb2RlOldLRXJyb3JVbmtub3duIHVzZXJJbmZvOkB7IE5TTG9jYWxpemVkRmFp
bHVyZVJlYXNvbkVycm9yS2V5OiBJbnNwZWN0b3I6OmV4dGVuc2lvbkVycm9yVG9TdHJpbmcocmVz
dWx0LmVycm9yKCkpfV0pOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAg
ICAgY2FwdHVyZWRCbG9jayhuaWwpOworICAgIH0pOworI2VuZGlmCit9CisKIEBlbmQKIAogTlNf
QVNTVU1FX05PTk5VTExfRU5ECmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9J
bnNwZWN0b3IvV2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyUHJveHkuY3BwIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29u
dHJvbGxlclByb3h5LmNwcAppbmRleCAyMzUxMmFmMGYxZDVlYWYxZmVhOGVmYzNiODVjOTQyYzZi
ZjUzNmZmLi4yYzlkNTViZTFhNDZkMzIyYmRiNDY3ODg4YTc3NWUwNWI3YzM4NDk5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUlFeHRl
bnNpb25Db250cm9sbGVyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0lu
c3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXJQcm94eS5jcHAKQEAgLTE4
Nyw2ICsxODcsMTkgQEAgdm9pZCBXZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXJQcm94
eTo6cmVsb2FkRm9yRXh0ZW5zaW9uKGNvbnN0IEluc3BlY3RvcjoKICAgICB9KTsKIH0KIAordm9p
ZCBXZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXJQcm94eTo6c2hvd0V4dGVuc2lvblRh
Yihjb25zdCBJbnNwZWN0b3I6OkV4dGVuc2lvblRhYklEJiBleHRlbnNpb25UYWJJZGVudGlmaWVy
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4cGVjdGVkPGJvb2wsIEluc3BlY3Rvcjo6RXh0ZW5z
aW9uRXJyb3I+KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICB3aGVuRnJvbnRlbmRIYXNM
b2FkZWQoW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIodGhpcyksIGV4dGVuc2lvblRhYklkZW50aWZp
ZXIsIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildICgpIG11
dGFibGUgeworICAgICAgICBpZiAoIXdlYWtUaGlzIHx8ICF3ZWFrVGhpcy0+bV9pbnNwZWN0b3JQ
YWdlKSB7CisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihtYWtlVW5leHBlY3RlZChJbnNw
ZWN0b3I6OkV4dGVuc2lvbkVycm9yOjpDb250ZXh0RGVzdHJveWVkKSk7CisgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgIH0KKworICAgICAgICB3ZWFrVGhpcy0+bV9pbnNwZWN0b3JQYWdlLT5z
ZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJv
bGxlcjo6U2hvd0V4dGVuc2lvblRhYiB7IGV4dGVuc2lvblRhYklkZW50aWZpZXIgfSwgV1RGTW92
ZShjb21wbGV0aW9uSGFuZGxlcikpOworICAgIH0pOworfQorCisKIC8vIFdlYkluc3BlY3RvclVJ
RXh0ZW5zaW9uQ29udHJvbGxlclByb3h5IElQQyBtZXNzYWdlcy4KIAogdm9pZCBXZWJJbnNwZWN0
b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXJQcm94eTo6ZGlkU2hvd0V4dGVuc2lvblRhYihjb25zdCBJ
bnNwZWN0b3I6OkV4dGVuc2lvbklEJiBleHRlbnNpb25JRCwgY29uc3QgSW5zcGVjdG9yOjpFeHRl
bnNpb25UYWJJRCYgZXh0ZW5zaW9uVGFiSUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyUHJveHku
aCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVu
c2lvbkNvbnRyb2xsZXJQcm94eS5oCmluZGV4IGYyOTQ3ODE1NDY1ZmEwNWUzM2YwMGVkNWZlNjQz
YTI4OTcwZGRhOWIuLmNhMjNlYzdhZmIyZTFlYmNmOTg1NzRmZTc5ZTk0MGQ4NDZhMzMxN2EgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JV
SUV4dGVuc2lvbkNvbnRyb2xsZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXJQcm94eS5oCkBAIC02
MCw2ICs2MCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGNyZWF0ZVRhYkZvckV4dGVuc2lvbihjb25z
dCBJbnNwZWN0b3I6OkV4dGVuc2lvbklEJiwgY29uc3QgU3RyaW5nJiB0YWJOYW1lLCBjb25zdCBV
UkwmIHRhYkljb25VUkwsIGNvbnN0IFVSTCYgc291cmNlVVJMLCBXVEY6OkNvbXBsZXRpb25IYW5k
bGVyPHZvaWQoRXhwZWN0ZWQ8SW5zcGVjdG9yOjpFeHRlbnNpb25UYWJJRCwgSW5zcGVjdG9yOjpF
eHRlbnNpb25FcnJvcj4pPiYmKTsKICAgICB2b2lkIGV2YWx1YXRlU2NyaXB0Rm9yRXh0ZW5zaW9u
KGNvbnN0IEluc3BlY3Rvcjo6RXh0ZW5zaW9uSUQmLCBjb25zdCBTdHJpbmcmIHNjcmlwdFNvdXJj
ZSwgY29uc3Qgc3RkOjpvcHRpb25hbDxVUkw+JiBmcmFtZVVSTCwgY29uc3Qgc3RkOjpvcHRpb25h
bDxVUkw+JiBjb250ZXh0U2VjdXJpdHlPcmlnaW4sIGNvbnN0IHN0ZDo6b3B0aW9uYWw8Ym9vbD4m
IHVzZUNvbnRlbnRTY3JpcHRDb250ZXh0LCBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoSW5z
cGVjdG9yOjpFeHRlbnNpb25FdmFsdWF0aW9uUmVzdWx0KT4mJik7CiAgICAgdm9pZCByZWxvYWRG
b3JFeHRlbnNpb24oY29uc3QgSW5zcGVjdG9yOjpFeHRlbnNpb25JRCYsIGNvbnN0IHN0ZDo6b3B0
aW9uYWw8Ym9vbD4mIGlnbm9yZUNhY2hlLCBjb25zdCBzdGQ6Om9wdGlvbmFsPFN0cmluZz4mIHVz
ZXJBZ2VudCwgY29uc3Qgc3RkOjpvcHRpb25hbDxTdHJpbmc+JiBpbmplY3RlZFNjcmlwdCwgV1RG
OjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEluc3BlY3Rvcjo6RXh0ZW5zaW9uRXZhbHVhdGlvblJl
c3VsdCk+JiYpOworICAgIHZvaWQgc2hvd0V4dGVuc2lvblRhYihjb25zdCBJbnNwZWN0b3I6OkV4
dGVuc2lvblRhYklEJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDxib29sLCBJbnNw
ZWN0b3I6OkV4dGVuc2lvbkVycm9yPik+JiYpOwogCiAgICAgLy8gV2ViSW5zcGVjdG9yVUlFeHRl
bnNpb25Db250cm9sbGVyUHJveHkgSVBDIG1lc3NhZ2VzLgogICAgIHZvaWQgZGlkU2hvd0V4dGVu
c2lvblRhYihjb25zdCBJbnNwZWN0b3I6OkV4dGVuc2lvbklEJiwgY29uc3QgSW5zcGVjdG9yOjpF
eHRlbnNpb25UYWJJRCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0lu
c3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xs
ZXIuY3BwCmluZGV4IDE3M2IyMTg0MmQxYmZkNzJjMWQxNzBjYjI5YWU5OGRhNzhiNWMwYjMuLjkw
OTBiMTZhNzk1OGU0YmM4MTJlMDJkMDJjZDk0NTA5M2NkNWY1MjQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250
cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1dlYklu
c3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlci5jcHAKQEAgLTMyNiw2ICszMjYsMzkgQEAgdm9p
ZCBXZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXI6OnJlbG9hZEZvckV4dGVuc2lvbihj
b25zdCBJbnNwZWN0b3I6OkV4dGUKICAgICB9KTsKIH0KIAordm9pZCBXZWJJbnNwZWN0b3JVSUV4
dGVuc2lvbkNvbnRyb2xsZXI6OnNob3dFeHRlbnNpb25UYWIoY29uc3QgSW5zcGVjdG9yOjpFeHRl
bnNpb25UYWJJRCYgZXh0ZW5zaW9uVGFiSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChFeHBlY3RlZDxib29sLCBJbnNwZWN0b3I6OkV4dGVuc2lvbkVycm9yPik+JiYgY29tcGxldGlv
bkhhbmRsZXIpCit7CisgICAgaWYgKCFtX2Zyb250ZW5kQ2xpZW50KSB7CisgICAgICAgIGNvbXBs
ZXRpb25IYW5kbGVyKG1ha2VVbmV4cGVjdGVkKEluc3BlY3Rvcjo6RXh0ZW5zaW9uRXJyb3I6Oklu
dmFsaWRSZXF1ZXN0KSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBWZWN0b3I8UmVm
PEpTT046OlZhbHVlPj4gYXJndW1lbnRzIHsKKyAgICAgICAgSlNPTjo6VmFsdWU6OmNyZWF0ZShl
eHRlbnNpb25UYWJJZGVudGlmaWVyKSwKKyAgICB9OworCisgICAgbV9mcm9udGVuZENsaWVudC0+
ZnJvbnRlbmRBUElEaXNwYXRjaGVyKCkuZGlzcGF0Y2hDb21tYW5kV2l0aFJlc3VsdEFzeW5jKCJz
aG93RXh0ZW5zaW9uVGFiIl9zLCBXVEZNb3ZlKGFyZ3VtZW50cyksIFt3ZWFrVGhpcyA9IG1ha2VX
ZWFrUHRyKHRoaXMpLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRs
ZXIpXShJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXI6OkV2YWx1YXRpb25SZXN1bHQmJiBy
ZXN1bHQpIG11dGFibGUgeworICAgICAgICBpZiAoIXdlYWtUaGlzKSB7CisgICAgICAgICAgICBj
b21wbGV0aW9uSGFuZGxlcihtYWtlVW5leHBlY3RlZChJbnNwZWN0b3I6OkV4dGVuc2lvbkVycm9y
OjpDb250ZXh0RGVzdHJveWVkKSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKwor
ICAgICAgICBhdXRvKiBmcm9udGVuZEdsb2JhbE9iamVjdCA9IHdlYWtUaGlzLT5tX2Zyb250ZW5k
Q2xpZW50LT5mcm9udGVuZEFQSURpc3BhdGNoZXIoKS5mcm9udGVuZEdsb2JhbE9iamVjdCgpOwor
ICAgICAgICBpZiAoIWZyb250ZW5kR2xvYmFsT2JqZWN0KSB7CisgICAgICAgICAgICBjb21wbGV0
aW9uSGFuZGxlcihtYWtlVW5leHBlY3RlZChJbnNwZWN0b3I6OkV4dGVuc2lvbkVycm9yOjpDb250
ZXh0RGVzdHJveWVkKSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAg
ICBpZiAoYXV0byBwYXJzZWRFcnJvciA9IHdlYWtUaGlzLT5wYXJzZUV4dGVuc2lvbkVycm9yRnJv
bUV2YWx1YXRpb25SZXN1bHQocmVzdWx0KSkgeworICAgICAgICAgICAgTE9HKEluc3BlY3Rvciwg
IkludGVybmFsIGVycm9yIGVuY291bnRlcmVkIHdoaWxlIGV2YWx1YXRpbmcgdXBvbiB0aGUgZnJv
bnRlbmQ6ICVzIiwgSW5zcGVjdG9yOjpleHRlbnNpb25FcnJvclRvU3RyaW5nKCpwYXJzZWRFcnJv
cikudXRmOCgpLmRhdGEoKSk7CisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihtYWtlVW5l
eHBlY3RlZCgqcGFyc2VkRXJyb3IpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQor
CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHRydWUpOworICAgIH0pOworfQorCiB2b2lkIFdl
Ykluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlcjo6ZGlkU2hvd0V4dGVuc2lvblRhYihjb25z
dCBJbnNwZWN0b3I6OkV4dGVuc2lvbklEJiBleHRlbnNpb25JRCwgY29uc3QgSW5zcGVjdG9yOjpF
eHRlbnNpb25UYWJJRCYgZXh0ZW5zaW9uVGFiSUQpCiB7CiAgICAgV2ViUHJvY2Vzczo6c2luZ2xl
dG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViSW5zcGVj
dG9yVUlFeHRlbnNpb25Db250cm9sbGVyUHJveHk6OkRpZFNob3dFeHRlbnNpb25UYWIgeyBleHRl
bnNpb25JRCwgZXh0ZW5zaW9uVGFiSUQgfSwgbV9pbnNwZWN0b3JQYWdlSWRlbnRpZmllcik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3Rv
clVJRXh0ZW5zaW9uQ29udHJvbGxlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3Bl
Y3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXIuaAppbmRleCAxOGVhOGZmYzJh
ZjgwMjNiYjI5YzdjZGExOTQ0ZmJlNTVkMDYzZmUxLi5jMzYxMmFkZDAwNTlkNzRlYjQ3YTkxZTVk
ZTM0NTc0MTI0OGQwZjQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5z
cGVjdG9yL1dlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9s
bGVyLmgKQEAgLTY4LDEyICs2OCwxMSBAQCBwdWJsaWM6CiAgICAgdm9pZCBjcmVhdGVUYWJGb3JF
eHRlbnNpb24oY29uc3QgSW5zcGVjdG9yOjpFeHRlbnNpb25JRCYsIGNvbnN0IFN0cmluZyYgdGFi
TmFtZSwgY29uc3QgVVJMJiB0YWJJY29uVVJMLCBjb25zdCBVUkwmIHNvdXJjZVVSTCwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDxJbnNwZWN0b3I6OkV4dGVuc2lvblRhYklELCBJbnNw
ZWN0b3I6OkV4dGVuc2lvbkVycm9yPik+JiYpOwogICAgIHZvaWQgZXZhbHVhdGVTY3JpcHRGb3JF
eHRlbnNpb24oY29uc3QgSW5zcGVjdG9yOjpFeHRlbnNpb25JRCYsIGNvbnN0IFN0cmluZyYgc2Ny
aXB0U291cmNlLCBjb25zdCBzdGQ6Om9wdGlvbmFsPFVSTD4mIGZyYW1lVVJMLCBjb25zdCBzdGQ6
Om9wdGlvbmFsPFVSTD4mIGNvbnRleHRTZWN1cml0eU9yaWdpbiwgY29uc3Qgc3RkOjpvcHRpb25h
bDxib29sPiYgdXNlQ29udGVudFNjcmlwdENvbnRleHQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
Y29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiwgY29uc3Qgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpF
eGNlcHRpb25EZXRhaWxzPiYsIGNvbnN0IHN0ZDo6b3B0aW9uYWw8SW5zcGVjdG9yOjpFeHRlbnNp
b25FcnJvcj4mKT4mJik7CiAgICAgdm9pZCByZWxvYWRGb3JFeHRlbnNpb24oY29uc3QgSW5zcGVj
dG9yOjpFeHRlbnNpb25JRCYsIGNvbnN0IHN0ZDo6b3B0aW9uYWw8Ym9vbD4mIGlnbm9yZUNhY2hl
LCBjb25zdCBzdGQ6Om9wdGlvbmFsPFN0cmluZz4mIHVzZXJBZ2VudCwgY29uc3Qgc3RkOjpvcHRp
b25hbDxTdHJpbmc+JiBpbmplY3RlZFNjcmlwdCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25z
dCBzdGQ6Om9wdGlvbmFsPEluc3BlY3Rvcjo6RXh0ZW5zaW9uRXJyb3I+Jik+JiYpOworICAgIHZv
aWQgc2hvd0V4dGVuc2lvblRhYihjb25zdCBJbnNwZWN0b3I6OkV4dGVuc2lvblRhYklEJiwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDxib29sLCBJbnNwZWN0b3I6OkV4dGVuc2lvbkVy
cm9yPik+JiYpOwogCiAgICAgLy8gQ2FsbGJhY2tzIGZyb20gdGhlIGZyb250ZW5kLgotI2lmIEVO
QUJMRShJTlNQRUNUT1JfRVhURU5TSU9OUykKICAgICB2b2lkIGRpZFNob3dFeHRlbnNpb25UYWIo
Y29uc3QgSW5zcGVjdG9yOjpFeHRlbnNpb25JRCYsIGNvbnN0IEluc3BlY3Rvcjo6RXh0ZW5zaW9u
VGFiSUQmKTsKICAgICB2b2lkIGRpZEhpZGVFeHRlbnNpb25UYWIoY29uc3QgSW5zcGVjdG9yOjpF
eHRlbnNpb25JRCYsIGNvbnN0IEluc3BlY3Rvcjo6RXh0ZW5zaW9uVGFiSUQmKTsKLSNlbmRpZgog
CiBwcml2YXRlOgogICAgIEpTQzo6SlNPYmplY3QqIHVud3JhcEV2YWx1YXRpb25SZXN1bHRBc09i
amVjdChXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXI6OkV2YWx1YXRpb25S
ZXN1bHQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9X
ZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxl
ci5tZXNzYWdlcy5pbgppbmRleCA5NDgxOWZiMDliMDE2ZDEzZmU5ZmEyMDNiYzA4MzAyZjY2NGZj
ODhlLi42YTAwZWNmZmU1ODMwZmYxNjQ1ZTkwMTdiY2U2ZDc2MWYyNzg3MjFjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJRXh0ZW5z
aW9uQ29udHJvbGxlci5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
SW5zcGVjdG9yL1dlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlci5tZXNzYWdlcy5pbgpA
QCAtMjksNiArMjksNyBAQCBtZXNzYWdlcyAtPiBXZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRy
b2xsZXIgTm90UmVmQ291bnRlZCB7CiAgICAgQ3JlYXRlVGFiRm9yRXh0ZW5zaW9uKFN0cmluZyBl
eHRlbnNpb25JRCwgU3RyaW5nIHRhYk5hbWUsIFVSTCB0YWJJY29uVVJMLCBVUkwgc291cmNlVVJM
KSAtPiAoRXhwZWN0ZWQ8U3RyaW5nLCBJbnNwZWN0b3I6OkV4dGVuc2lvbkVycm9yPiByZXN1bHQp
IEFzeW5jCiAgICAgRXZhbHVhdGVTY3JpcHRGb3JFeHRlbnNpb24oU3RyaW5nIGV4dGVuc2lvbklE
LCBTdHJpbmcgc2NyaXB0U291cmNlLCBzdGQ6Om9wdGlvbmFsPFVSTD4gZnJhbWVVUkwsIHN0ZDo6
b3B0aW9uYWw8VVJMPiBjb250ZXh0U2VjdXJpdHlPcmlnaW4sIHN0ZDo6b3B0aW9uYWw8Ym9vbD4g
dXNlQ29udGVudFNjcmlwdENvbnRleHQpIC0+IChJUEM6OkRhdGFSZWZlcmVuY2UgcmVzdWx0RGF0
YSwgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpFeGNlcHRpb25EZXRhaWxzPiBkZXRhaWxzLCBzdGQ6
Om9wdGlvbmFsPEluc3BlY3Rvcjo6RXh0ZW5zaW9uRXJyb3I+IGVycm9yKSBBc3luYwogICAgIFJl
bG9hZEZvckV4dGVuc2lvbihTdHJpbmcgZXh0ZW5zaW9uSUQsIHN0ZDo6b3B0aW9uYWw8Ym9vbD4g
aWdub3JlQ2FjaGUsIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiB1c2VyQWdlbnQsIHN0ZDo6b3B0aW9u
YWw8U3RyaW5nPiBpbmplY3RlZFNjcmlwdCkgLT4gKHN0ZDo6b3B0aW9uYWw8SW5zcGVjdG9yOjpF
eHRlbnNpb25FcnJvcj4gZXJyb3IpIEFzeW5jCisgICAgU2hvd0V4dGVuc2lvblRhYihTdHJpbmcg
ZXh0ZW5zaW9uVGFiSWRlbnRpZmllcikgLT4gKEV4cGVjdGVkPGJvb2wsIEluc3BlY3Rvcjo6RXh0
ZW5zaW9uRXJyb3I+IHJlc3VsdCkgQXN5bmMKIH0KIAogI2VuZGlmIC8vIEVOQUJMRShJTlNQRUNU
T1JfRVhURU5TSU9OUykKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5n
ZUxvZwppbmRleCA2OTUzZjMwYjM3ZWIyMGRjMzZiZmM0NWZiM2NjODY4YmJhMmQ4MDE2Li4yZDAy
YTcyYzYwMTZlNGUzNDAyM2YxMjRlNWZlZjhhM2I4NzI3ODc2IDEwMDY0NAotLS0gYS9Ub29scy9D
aGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMjEtMDkt
MjEgIEJKIEJ1cmcgIDxiYnVyZ0BhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBBZGQgU1BJ
IHRvIHNlbGVjdCBhIHRhYiBjcmVhdGVkIGJ5IF9XS0luc3BlY3RvckV4dGVuc2lvbgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMwNTgwCisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS84MzM3Mjg1MT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBDcmVhdGUgYSBuZXcgdGVzdCBmaWxlIGZvciBfV0tJbnNwZWN0
b3JFeHRlbnNpb25EZWxlZ2F0ZS4gQWRkIGEKKyAgICAgICAgbmV3IHRlc3QgY2FzZSB0aGF0IGV4
ZXJjaXNlcyBjcmVhdGluZyBhbiBleHRlbnNpb24gdGFiLCBzaG93aW5nIGFuCisgICAgICAgIGV4
dGVuc2lvbiB0YWIsIGFuZCB1c2VzIGRlbGVnYXRlIGNhbGxiYWNrcyBmb3IgZGlkU2hvd1RhYi9k
aWRIaWRlVGFiLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS9JbnNwZWN0b3JFeHRlbnNpb24tVGFiSWNvbi0zMHgzMC5wbmc6IEFkZGVkLgorICAg
ICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvSW5zcGVjdG9yRXh0ZW5zaW9u
LWJhc2ljLXRhYi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL1dLSW5zcGVjdG9yRXh0ZW5zaW9uRGVsZWdhdGUubW06IEFkZGVkLgorICAgICAg
ICAocmVzZXRHbG9iYWxTdGF0ZSk6CisgICAgICAgICgtW1VJRGVsZWdhdGVGb3JUZXN0aW5nSW5z
cGVjdG9yRXh0ZW5zaW9uRGVsZWdhdGUgX3dlYlZpZXc6ZGlkQXR0YWNoTG9jYWxJbnNwZWN0b3I6
XSk6CisgICAgICAgICgtW0luc3BlY3RvckV4dGVuc2lvbkRlbGVnYXRlRm9yVGVzdGluZyBpbnNw
ZWN0b3JFeHRlbnNpb246ZGlkU2hvd1RhYldpdGhJZGVudGlmaWVyOl0pOgorICAgICAgICAoLVtJ
bnNwZWN0b3JFeHRlbnNpb25EZWxlZ2F0ZUZvclRlc3RpbmcgaW5zcGVjdG9yRXh0ZW5zaW9uOmRp
ZEhpZGVUYWJXaXRoSWRlbnRpZmllcjpdKToKKyAgICAgICAgKFRFU1QpOgorCiAyMDIxLTA5LTE3
ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgWyBtYWNPUyBSZWxl
YXNlIF0gVGVzdFdlYktpdEFQSS5OZXR3b3JrUHJvY2Vzcy5Ccm9hZGNhc3RDaGFubmVsQ3Jhc2hS
ZWNvdmVyeSBpcyBmbGFreSB0aW1pbmcgb3V0CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGM4
ZjY4MjI4OWFhODFmNjk5NjcyN2FhMGQ1OTIyODlhZTA0ZGVhYWUuLjM2Yzg5OWU4ZWU2Y2NlOWRk
NDg5NGNjNTNkMzE0MjQ1M2JlM2VkOTYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC04OTIs
NiArODkyLDkgQEAKIAkJOTk5OTEwOEIxRjM5M0M5NjAwOEFENDU1IC8qIENvcHlpbmcubW0gaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OTk5MTA4QTFGMzkz
QzhCMDA4QUQ0NTUgLyogQ29weWluZy5tbSAqLzsgfTsKIAkJOTk5QjdFRTMyNTUxQzYzQjAwRjQ1
MEE0IC8qIFdLSW5zcGVjdG9yRXh0ZW5zaW9uSG9zdC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5OUI3RUUyMjU1MUM2M0IwMEY0NTBBNCAvKiBXS0lu
c3BlY3RvckV4dGVuc2lvbkhvc3QubW0gKi87IH07CiAJCTk5QjRGOUM2MjRFREVEOTcwMDAyMkI4
MiAvKiBXS0luc3BlY3RvckRlbGVnYXRlLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOTlCNEY5QzUyNEVERUQ5NjAwMDIyQjgyIC8qIFdLSW5zcGVjdG9y
RGVsZWdhdGUubW0gKi87IH07CisJCTk5RTI4NDY0MjZGOTFGN0YwMDAzRjFGQSAvKiBXS0luc3Bl
Y3RvckV4dGVuc2lvbkRlbGVnYXRlLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTlFMjg0NjMyNkY5MUY3RjAwMDNGMUZBIC8qIFdLSW5zcGVjdG9yRXh0
ZW5zaW9uRGVsZWdhdGUubW0gKi87IH07CisJCTk5RTI4NDY2MjZGOTNEQjUwMDAzRjFGQSAvKiBJ
bnNwZWN0b3JFeHRlbnNpb24tVGFiSWNvbi0zMHgzMC5wbmcgaW4gQ29weSBSZXNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTlFMjg0NjUyNkY5M0Q3NjAwMDNGMUZB
IC8qIEluc3BlY3RvckV4dGVuc2lvbi1UYWJJY29uLTMweDMwLnBuZyAqLzsgfTsKKwkJOTlFMjg0
NjgyNkY5NDE1NDAwMDNGMUZBIC8qIEluc3BlY3RvckV4dGVuc2lvbi1iYXNpYy10YWIuaHRtbCBp
biBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OUUy
ODQ2NzI2Rjk0MTNCMDAwM0YxRkEgLyogSW5zcGVjdG9yRXh0ZW5zaW9uLWJhc2ljLXRhYi5odG1s
ICovOyB9OwogCQk5QjAyRTBENjIzNUZBNDdEMDA0MDQ0QjIgLyogVGV4dE1hbmlwdWxhdGlvbi5t
bSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlCMDJFMEQ1
MjM1RkE0N0QwMDQwNDRCMiAvKiBUZXh0TWFuaXB1bGF0aW9uLm1tICovOyB9OwogCQk5QjA3ODZB
NTFDNTg4NUMzMDBEMTU5RTMgLyogSW5qZWN0ZWRCdW5kbGVNYWtlQWxsU2hhZG93Um9vdHNPcGVu
X0J1bmRsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA5QjA3ODZBNDFDNTg4NUMzMDBEMTU5RTMgLyogSW5qZWN0ZWRCdW5kbGVNYWtlQWxsU2hhZG93
Um9vdHNPcGVuX0J1bmRsZS5jcHAgKi87IH07CiAJCTlCMEMwNTE5MjRGREZCN0QwMEYyRkUzMSAv
KiBDb21wYWN0VW5pcXVlUHRyVHVwbGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOUIwQzA1MTgyNEZERkI3MDAwRjJGRTMxIC8qIENvbXBhY3RVbmlx
dWVQdHJUdXBsZS5jcHAgKi87IH07CkBAIC0xMzc0LDYgKzEzNzcsNyBAQAogCQkJZHN0UGF0aCA9
IFRlc3RXZWJLaXRBUEkucmVzb3VyY2VzOwogCQkJZHN0U3ViZm9sZGVyU3BlYyA9IDc7CiAJCQlm
aWxlcyA9ICgKKwkJCQk5OUUyODQ2ODI2Rjk0MTU0MDAwM0YxRkEgLyogSW5zcGVjdG9yRXh0ZW5z
aW9uLWJhc2ljLXRhYi5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTU1QTgxN0ZGMjE4
MTAyMUEwMDA0QTM5QSAvKiAxMDB4MTAwLXJlZC50Z2EgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJ
CQkJMUE5RTUyQzkxM0U2NUVGNDAwNjkxN0Y1IC8qIDE4LWNoYXJhY3RlcnMuaHRtbCBpbiBDb3B5
IFJlc291cmNlcyAqLywKIAkJCQk1NUE4MTgwMDIxODEwMjIxMDAwNEEzOUEgLyogNDAweDQwMC1n
cmVlbi5wbmcgaW4gQ29weSBSZXNvdXJjZXMgKi8sCkBAIC0xNTc2LDYgKzE1ODAsNyBAQAogCQkJ
CTJFRkYwNkNEMUQ4QTQyOUEwMDA0QkIzMCAvKiBpbnB1dC1maWVsZC1pbi1zY3JvbGxhYmxlLWRv
Y3VtZW50Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJQ0UzNTI0RkExQjE0NDM4OTAw
MjhBN0M1IC8qIGlucHV0LWZvY3VzLWJsdXIuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJ
CQlDRTZEMEVFMzI0MjZCOTMyMDAyQUQ5MDEgLyogaW5zZXJ0LXRleHQuaHRtbCBpbiBDb3B5IFJl
c291cmNlcyAqLywKKwkJCQk5OUUyODQ2NjI2RjkzREI1MDAwM0YxRkEgLyogSW5zcGVjdG9yRXh0
ZW5zaW9uLVRhYkljb24tMzB4MzAucG5nIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTU3RjU2
QTVDMUM3RjhDQzEwMEYzMUQ3RSAvKiBJc05hdmlnYXRpb25BY3Rpb25UcnVzdGVkLmh0bWwgaW4g
Q29weSBSZXNvdXJjZXMgKi8sCiAJCQkJQzlCNEFEMkMxRUNBNkY3RjAwRjVGRUEwIC8qIGpzLWF1
dG9wbGF5LWF1ZGlvLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJQzk5QjY3NUQxRTM5
NzIyMDAwRkM2QzgwIC8qIGpzLXBsYXktd2l0aC1jb250cm9scy5odG1sIGluIENvcHkgUmVzb3Vy
Y2VzICovLApAQCAtMjYyMiw2ICsyNjI3LDkgQEAKIAkJOTk5OTEwOEExRjM5M0M4QjAwOEFENDU1
IC8qIENvcHlpbmcubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBD
b3B5aW5nLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5OTlCN0VFMjI1NTFDNjNC
MDBGNDUwQTQgLyogV0tJbnNwZWN0b3JFeHRlbnNpb25Ib3N0Lm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tJbnNwZWN0b3JFeHRlbnNpb25Ib3N0Lm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5OUI0RjlDNTI0RURFRDk2MDAwMjJCODIgLyogV0tJ
bnNwZWN0b3JEZWxlZ2F0ZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IFdLSW5zcGVjdG9yRGVsZWdhdGUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTk5RTI4NDYzMjZGOTFGN0YwMDAzRjFGQSAvKiBXS0luc3BlY3RvckV4dGVuc2lvbkRlbGVnYXRl
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tJbnNwZWN0b3JF
eHRlbnNpb25EZWxlZ2F0ZS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTlFMjg0
NjUyNkY5M0Q3NjAwMDNGMUZBIC8qIEluc3BlY3RvckV4dGVuc2lvbi1UYWJJY29uLTMweDMwLnBu
ZyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IGltYWdl
LnBuZzsgcGF0aCA9ICJJbnNwZWN0b3JFeHRlbnNpb24tVGFiSWNvbi0zMHgzMC5wbmciOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5OUUyODQ2NzI2Rjk0MTNCMDAwM0YxRkEgLyogSW5z
cGVjdG9yRXh0ZW5zaW9uLWJhc2ljLXRhYi5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRo
ID0gIkluc3BlY3RvckV4dGVuc2lvbi1iYXNpYy10YWIuaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTlCMDJFMEQ1MjM1RkE0N0QwMDQwNDRCMiAvKiBUZXh0TWFuaXB1bGF0aW9u
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gVGV4dE1hbmlwdWxhdGlvbi5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUIwNzg2QTIxQzU4ODMwRjAwRDE1OUUzIC8qIEluamVjdGVk
QnVuZGxlTWFrZUFsbFNoYWRvd1Jvb3RzT3Blbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBJbmplY3RlZEJ1bmRsZU1ha2VBbGxTaGFkb3dSb290c09wZW4uY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5QjA3ODZBNDFDNTg4NUMzMDBEMTU5RTMgLyog
SW5qZWN0ZWRCdW5kbGVNYWtlQWxsU2hhZG93Um9vdHNPcGVuX0J1bmRsZS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbmplY3RlZEJ1bmRsZU1ha2VBbGxTaGFkb3dS
b290c09wZW5fQnVuZGxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTM2NjYs
NiArMzY3NCw3IEBACiAJCQkJMzcwQ0UyMjkxRjU3MzQzNDAwRTc0MTBCIC8qIFdLQ29udGVudFZp
ZXdUYXJnZXRGb3JBY3Rpb24ubW0gKi8sCiAJCQkJNTFEMTI0OTcxRTc2M0FGODAwMkIyODIwIC8q
IFdLSFRUUENvb2tpZVN0b3JlLm1tICovLAogCQkJCTk5QjRGOUM1MjRFREVEOTYwMDAyMkI4MiAv
KiBXS0luc3BlY3RvckRlbGVnYXRlLm1tICovLAorCQkJCTk5RTI4NDYzMjZGOTFGN0YwMDAzRjFG
QSAvKiBXS0luc3BlY3RvckV4dGVuc2lvbkRlbGVnYXRlLm1tICovLAogCQkJCTk5OUI3RUUyMjU1
MUM2M0IwMEY0NTBBNCAvKiBXS0luc3BlY3RvckV4dGVuc2lvbkhvc3QubW0gKi8sCiAJCQkJQTVB
NzI5RjAxRjYyMkE5QTAwREU1QTI4IC8qIFdLTmF2aWdhdGlvblJlc3BvbnNlLm1tICovLAogCQkJ
CURGNEIyNzM4MjFBNDc3MjcwMDlCRDFDQSAvKiBXS05TRGljdGlvbmFyeUVtcHR5RGljdGlvbmFy
eUNyYXNoLm1tICovLApAQCAtNDA5OCw2ICs0MTA3LDggQEAKIAkJCQk5M0EyNzRBMTI1MjE2M0Q2
MDBBMUI2RDQgLyogSW5kZXhVcGdyYWRlV2l0aE11bHRpcGxlSW5kaWNlcy5zcWxpdGUzICovLAog
CQkJCTkzQTI3NEE0MjUyMjQxRDAwMEExQjZENCAvKiBJbmRleFVwZ3JhZGVXaXRoTXVsdGlwbGVJ
bmRpY2VzSGF2ZVNhbWVJRC5zcWxpdGUzICovLAogCQkJCTJFRkYwNkNDMUQ4QTQyOTEwMDA0QkIz
MCAvKiBpbnB1dC1maWVsZC1pbi1zY3JvbGxhYmxlLWRvY3VtZW50Lmh0bWwgKi8sCisJCQkJOTlF
Mjg0NjcyNkY5NDEzQjAwMDNGMUZBIC8qIEluc3BlY3RvckV4dGVuc2lvbi1iYXNpYy10YWIuaHRt
bCAqLywKKwkJCQk5OUUyODQ2NTI2RjkzRDc2MDAwM0YxRkEgLyogSW5zcGVjdG9yRXh0ZW5zaW9u
LVRhYkljb24tMzB4MzAucG5nICovLAogCQkJCTkzN0E2Qzg4MjQzNTdCRjMwMEMzQTZCMCAvKiBL
aWxsV2ViUHJvY2Vzc1dpdGhPcGVuQ29ubmVjdGlvbi0xLmh0bWwgKi8sCiAJCQkJOTM3QTZDODky
NDM1N0JGMzAwQzNBNkIwIC8qIEtpbGxXZWJQcm9jZXNzV2l0aE9wZW5Db25uZWN0aW9uLTIuaHRt
bCAqLywKIAkJCQlGNDUzOEVGMDFFODQ2QjQxMDBCNUM5NTMgLyogbGFyZ2UtcmVkLXNxdWFyZS5w
bmcgKi8sCkBAIC01NzU2LDYgKzU3NjcsNyBAQAogCQkJCUNEMjI3RTQ0MjExQTRENUQwMEQyODVB
RiAvKiBQcmVmZXJyZWRBdWRpb0J1ZmZlclNpemUubW0gaW4gU291cmNlcyAqLywKIAkJCQlGNDhE
NkMxMDIyNEIzNzcwMDBFM0UyRkIgLyogUHJlZmVycmVkQ29udGVudE1vZGUubW0gaW4gU291cmNl
cyAqLywKIAkJCQk3QzFBRjc5NTFFOERDQkFCMDAyNjQ1QjkgLyogUHJlcGFyZUZvck1vdmVUb1dp
bmRvdy5tbSBpbiBTb3VyY2VzICovLAorCQkJCTk5RTI4NDY0MjZGOTFGN0YwMDAzRjFGQSAvKiBX
S0luc3BlY3RvckV4dGVuc2lvbkRlbGVnYXRlLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdG
MEIxQTQxMUFFNjAwNDQ3QzRDIC8qIFByZXZlbnRFbXB0eVVzZXJBZ2VudC5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQk3Q0NFN0YyQzFBNDExQjEwMDA0NDdDNEMgLyogUHJldmVudEltYWdlTG9hZFdp
dGhBdXRvUmVzaXppbmcubW0gaW4gU291cmNlcyAqLywKIAkJCQlBMUVDMTE4ODFGNDI1NDEyMDBE
MDE0NkUgLyogUHJldmlld0NvbnZlcnRlci5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvSW5zcGVjdG9yRXh0ZW5zaW9u
LVRhYkljb24tMzB4MzAucG5nIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9JbnNwZWN0b3JFeHRlbnNpb24tVGFiSWNvbi0zMHgzMC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjI0M2Yw
ZjEyOTZlYjE5MmU1ZTJjNzlmYjg1MDk0YTVkMjViZTM1OQpHSVQgYmluYXJ5IHBhdGNoCmxpdGVy
YWwgMzc4MAp6Y21WOyM0bTxJUVApPGg7M0t8TGswMDBlMU5KTFRxMDAxNVUwMDE1azFeQHM2WW9L
IUIwMDBoKU5rbDxaY21kX3UKelolfGR8ZnllUmhiSSMjJXw4djFCRGp9OC1Ma1NeeE85K2RHUWtN
e0YzODkxfnRZcy0+dHhjKUo1YkxIeypEezItCnp1MSNHX0Q5YyF2YnVIc01sdX1BcmhmP2FHYnk/
JERZRmNWMj5yaTdUeTN8eiljKTQ2SWFQS3tQaiVScWAlcmI4Ngp6elUlWW0xSjhOPntDO3pJITVw
Rjk4fm83PiNRPzs7ITU9enUzPE1iVjhBeyFUQXxBczcrJjkjRTN+dzVTT0FPVGwKejM9THFBaGE0
Kn1SXmtzRSlkckg/RmstTiV0S29lfSZINFFHWis7UUo+aU1oS3FjNmgxQypFdjFfOFEhe2JOSHdL
CnpfLUVqST5LfnBrSm9laExrTG1NQVV1XnU5elY0ZX1lQ3l4IWVHVHRfWDt3ZEg8PXAlNHBfKyNy
IWY1X35lIzFAIQp6VktTNzx3PGRvNUdtdSpwSj8kdWtoVzh3IUApVEAmIV9mJTxqeU9ZbXNpRXpM
cTRraVZEUDEpS0twQGYzZjY+dFEKekNfdT5WSnFgYkhjJl9WQzRtM1JUKldkWj5aYTgtdTA3QzdD
PlhJU2V8RjFXXihMZndvK2d4QEM5QkVHblRiX3AyCnp2JjZiRztLIzJsWiEoSDU9VV4xPGh9c3Zg
MWdVYUxUWlJPR0ktaDs/KTNATTdVdyV0ZkhHQz9OZkIxOWZBYldEXwp6PiEwMk9EUXpGXiRaJGNf
SzVMYn00fXlJRkA+SC1+S2k4Rl5vWShKWmRIVGdtYG5fZGBvQG0hfHRtTHtzPWohN0AKemc8U15Y
a2dOSCU5JDJAe2EmRnJmVjhGST9JaWQjc2F3TzE8OWhpMXBoezwkJnAhbUJsU1N5eWFDcFRVbWBP
M1NICnp2b1cqZik0emVfLUo2Yk5kPTI3biN2T1k2eDArWXVTfm1SfUhzdk9eWE03YmhUUWVHcUtN
RjY4elRFVmNVJSk0ZQp6VVJiRDdWQ31HVEA0OSV2OSFMa0tCV2prTF5uMTVgVk5Jcjw8RiVmfGRP
Zz1sUEQ1TXxTeSh0dGBJVVBoc3orNmwKelV4RDdnMjwoQDs7bn54UlJhODt9JikpTCVXJW9rV3VV
PDs0YDhMR3dkXztRVTF9cH5YMzcxMiNtSnUtdXA9UUVMCno3Zj8pV0w/TiZxY1ozck5zJlVHR1Ve
bzxAOHxZYz8zNzVmITByJG5ue3Uyc1gzZkZ6PGB7M3omRGxZcHBQYFNgYwp6M0NQYG45ejkzJER7
YHh6dDghMkRPK0R2ST8lJWc/d1NpbV80cms4NkhfdDh8bXM7U05wflpIaT1uRXk7PUxfPjsKeiVa
SHd2PVdBaE15e00tYjc4fHU8K2FSMUpZSGU/VEZwMSZsUExPa2ktUTVQbEZPdHtvKXZPZ3M+dDU5
fjMkdUhOCno9RmRmNGJpSE94Yy1tRzV1JXN3P0FuRiUzKGhyYFR2XkNHeXp7ZUF8R2BANW1zUHls
cjFmLVMpbGIkUGNQUChxPQp6VCotWjNqfFVmKStUclVqJHFCakpnOTh5TXlqe3MrM2prI0pKIXhC
WkxoX2U0Xj9KNiRMT2tQS2dVfUhRJUA7dSQKejV0cEtfZ0t8d2NeJipPMEIqJGlmb0ZGe3d1SVcq
dmpDSmNsc3k3cktzZD9SKVgwa0xEeUgoUkVEZWwpYkZYN1lBCnpwPlIzWWQ+SShgPVEwa0RtblFz
Wl5KVlpmcmQtPjQxO0MjUzVSbm9YZ0d3IVJnY293UnVrPzZPO1godTE0VVFVOQp6LWRrcUB5UXpf
QlM5OzhsYHdERkpZXzhlWDRvbDdXcjc9KTxRKlFZciRYUXleLTROanNPS1VFbllqc2I5a31oMHAK
enQzbDN8Ky1weU9scWNOb1VKeng1bDNUcEp3aGU/ISgkXnVaUW13dkVFSi1LeWJIcFdhRX4qK1I1
NEtyODFeNV4wCnpebXtrZ3IycHlAb3Y/UCRSPT9IQCphSkkoWC1DYStIUiFvbGRLa1N7REomQTw7
N3BBQlc0a35lSD1EOD0wM3JgUwp6PyNNRi1APzgpZjdDbXdXczNUO1ZlZ2FDU0lBdVEkcmVaUGIz
VHNZXmlSZFlhKmQlVTY3bEJmdVNwamw3bGhPR2cKelM7Yl9HMlNtSWZsVHd2RkZLJFYoK0IhfTd4
Vn0kSiRPSE8wVnBQN1pwRFJ2QG8lVThCRF4jb0JEfmd0OHEhdmlHCnpaZHcyUU1TemViNGR8KDlI
Pz9JbzlHbjVtTSFrcDhZbjgoSzdINklII0xLUyRTb1ZOKHowPG5SM1hkc3xxJEVFRQp6QCZIY0RJ
eHk5VllQJW1Jd0o0NnVubnkmaHZsVUY2IzJNIWpNOHQ1JD0+dFUpZWFfUCQ0fnQmTUV8NTtzPElv
Rl8KelZjMDdZOTZMNHBxJStQUTtFWXU0Xm55NGVQZEVlbWJHZ0BmUjQ9VHdKOWNZVU9ISX5KeiRO
WG8kZ3JYRkJVNFlWCnowakpmdWUjMGRJdXg1YUJ6aD1rRmV+IWBYKy1oJlEzRklidylwTEZUYCk+
SGlpQVZDRDkwcVgjcEVWMVYydlF3Swp6eioweX1Rfl85PjlDR2FpYjBMbFBCVmcqTShSS19YK1Fu
Zzg4N0xKVHZgbTNpQW5MNyRLOygpIyVYWkNIVk9USHYKel5temA3TTE3cSZFT3BzUmZreWVkP1du
Rnx2YzMlKkdNe219ZmZgRmViUStNViRXaU03cFNhLU0xJmAhP3ErXyFnCnowMzFgR29ZRzlycDJY
PFl5am8hc05KK0xnbENGWVVXWTJ+VGQpRGxKZD1rV1lIRTIlKnh0QTFZNyktXktNdExBfAp6bUl8
aj1HZXVON1lCWXpidzd2PlRHdiQjLUxGeTdeayhIWUQ2cV45aU4wRGc9czVHUCkqUyt+TlYpYj5E
aXZyVUgKenBpKVYpXyZgKWZDT0w8SWlwV2A0RWxfR0lpZ15gQ2skWWwxcGV+N2kqSCYwbHlga3tR
MHpFYWpqKH43TylYNjdTCnozTTtEPlpVRGxMQlFiK09vVENYR0wzOF4wYndINFNWO3JQalZ4Mipk
aSU0fTJYZl9JdXkmUk1pcSs3Y3tlcGA0Zgp6TCFnd0E4dERiT202VjdwQWJjZHIzODA+MmxkS20/
R2JBYXpQbzRsJGtkeSUrUnFpbnRnWWR8Mit3NEhQKCZvSTUKentgLTtXRClpPz9ZbDtFNClWYnlh
OzhSOy11N1NEOWsreUxUaHkmTF9BUGlDWWRKaDBtemUtXk0pb0J8cmJkLWFECno1JDZ0Jil7Qkl3
LTlRcU9eUmx0aVFEYlE5MH5EfUs4QWNgPm5ocVAhbHs4JT5jX1I9SFFabkVRbVAmZUlOb2BSfAp6
MFUqKzZXSE1oZnY+OGVjeUoxdzhWUlZNIW5oUEtqcXkpREZUb2E5Snk3a2wkKGBvM0U5ezcpays1
cThmVFZPZnwKeilGcD14PTZ3czk1aFdsMyM3MT5OSUZCaHVEdW50T3YzV0gydDUrPHdueSlmIT8k
KWVSaGZQaWhfQXNKIUxUSExuCnpgTTcyeFNMRyRtWlIkO0ZDb0h5dlVYP0NGWGU1KjxrQWtgKkcj
d0VPajBBaGtKMyQ9fCltIXBfO1pVYCQ3fVA3Rgp6e2Y9czJCeT1XZjdjZG5ya0tQQndOaHZZcXVy
Tk05Wm1JIVFmb1B9UjA7MTQrMEhfQzZFMzhMfndLQTNyO2FTQE8Kel8tKklaLWFyd0Vac01HJEFr
QEk5eSNraGM+OVdTYXFNTVZKSXRXfT4rYWYxbihafFYlR0ZhTTF5Vy1SQVBgbCgjCnpPKG9uYTRy
Kj4pJUhjRytXeDljVk9BMC0oYlg7RXZMMWAmaF8oMHZaPXU8cUpaR3IxJUgqaig+KjQ2QGFFJWlE
Mgp6Znc1M34pTng+PTIpTkZ9P3tAei1iI1ZnMWxNcG9zcC1vXjx7Qj1BPXVrZFB4X3JQKmw8an1p
VFB7KFhfYU5VMlMKelg/ajExMyM4ZGNBQGw8Iz8wYUcxM0B3JkQ7UDxtWFFuIXhSTyhRVTAhfE1f
R24lJl8+JHFOM3NVPk9+bjRTQDt1CnowNHhqeWNCJSg7N2pFQSgtcnUwbGB6UVF5KVdPMndlN0Vg
cjFTYVFlY14jSHx7UGlMb0xZO29VKHloTyVnKV4yZQp6VT9PelptSD8hUTMtJUcxSURDQyNgbX4t
SjlQek1SMGhhNlVJIyt0RlFhR0ZrYkZab09LbG1QfnZ6OExAN1IrNz0Kekpfe2VfK15uNmMxR05h
SndHc203KUsrc2clciZjKHJnSEdzczBCKSRyYWlicm1eNVAre3A0JHdfKCM/NEZ4VGMhCnpRO1Jm
NWVXUjQ8JmMqNl8rdlpOe15XSDlSJC1RO0F5bChPfUMla3I1YkFDKWU4VEA1KUVvdWI+ZTFZPzdE
K0codwp6RUlBZWF0TW9UWGNiWmBLaW5tflNUdSUrUSQ2KVJ5VjFNQHlGPyF7IV9KKiYrVExaMUx6
Yz56fFFxJEg7NEc/Wk0KemUtYD4lZjEzV3dWR3phWXpRX3Qje3U0JGNONVBqRC1sNUZHdGdeVkRE
PS10Z0Zye3dQPzMqN0A8MXs8d3khU2tKCnp3LVV8aUUzPEx4SiFnYDJYS3V8NXBxbjwrcTNXS1Q+
Qz9TaUdfemphc00kVmlRZDQwciFJITYmIUB+Q0VFc1ZscQp6cn1SRzg7TjlDbHA4OG9tZyFWd2hE
YXtmdjlsZG5tdHMhWGEpX1dNZVJ3KyFjTDErclJveCR5SUpgZF56UXpiRksKekU0ITI3OWZPfm94
QD4qbDJVMjhzS3B1eXt2Qm1UQiFRRSM2SDhsJlN4NlVRMENZVztINFhieypiOE5PJm96fm5uCno/
Rn49Q1JMTkFRWVM/JHJyYVFhemBRSWhwWDtvKTZobzs9QlUtUUtEUkBKMXh4d31YOGJBNXE4QU57
YjxCU24lMgp6N3B8VXI/bWFKeitpJHlXbklPPXJDbmFYKURWVSNaY3k2Vn57az1mcGU7d2crYz1I
cDdoUj5hYiFfV1Bfcl9CdTwKelcyfW43K3k2SEV2LVJMIUU3dipgQS0oelc7LXE5KVoxSzB5MmNm
RkA3PERUSUlfNUp1MklkXlV3aHY2QF5VVnh7CnphPzc4a1VJeUBjMGlAaWU1cSY7bGFIKWY8VV4q
VGMjMCUhdUsoPkM0ZU4oVzdBJkBHUntaenImLWsqUGQlbkV+Xwp6OHlwIXIzNmI5Y0gzKUptMWU0
bV9lOzA7Jl8zUXZman4je19kcUNscDEpK0V0bnRTZ1hVcnZYbzx9eE9xJlpLTWsKek17QE51TCow
RHUpVzg1dEgkUE1FWkd1bUJKdikrZDheUllDeUotT2JhaTNRYDM0cyFDQjdvSEctRz4pTTthbnZu
CnowUTFFRk5eKzxTRklZT21WYFBBPkJIWWJNa21JQ1JAaiZRNldDcGszVHozRERGRV96MnBFK01V
dj0xeSF4K3M5PAp6Yk87QExGWjA/QyZ+aVM+SGVoZSk2dm52dWR3JWd5ZWI5QktXQUVKXkZtfm1H
dm9ITXM8fHArRj08PiZ0Mmp9RFoKelp3dzg8SD1iKkpxJSNnYV9+S35XJV5XWnY9YTR1QkB9Nipx
cn4lYSlOK3VPVGVaZHNXbipFXyR5NVZCZ3RqfilZCnp4bUk1JSRDejk3ZUlIRFdNQDwmUHg4OFpA
eVdjK3dYWFcjOGBhS0slYmRkLUNpJD44ODc1THpYRmEyeChIWlhEOwp6eGdZcXdfNW1ab0sjITc+
UihkUnw1R3RrKktYVCR9YyV9QjhON1pRZlJOcCZLPkwrRWw9dGZPI0VDMlMjUnJUNTcKejlrWFlE
cHtnWmEpd19RQXB7am9WWUhoXl9MUkVLM1UrQkBAQHA/JkBLQSZIZ1MjV05Qc3leS3dIS3AlTVgj
QFM3CnolKiUka1JpTktma09xZjBvWT8mQUtHQC1MNiN7XjBVJjtBXm8pNygqKUAmJTMhd2NoWWBn
MlBtX19wSTt7YFF8Pwp6ZW9BaTJKT09oWDBXfGorYFZfOzM3eXchcDBmPFpqMEwhP2M/R1QydWhT
bit3KWVofjcqYWcxaF5gSEcmc3tTJGYKelklbGtKcnU3PiNgPUcpWUttNVRUOyQ0T2pHNFNOQnpw
LXp3aHNWcGxfTzFGJnUpJXBgXldhYXhkQXNxXnxOYlgxCnpXakQ/KGV9KSMmSDNkUFJjZWFBUUVf
TjM1ZVVCITlhZ0s0V3EyendaNUFoRlFfeUhyPUs7Iz1yVk1DP01GeWYtMgp1RGdTPHJkMUlaaUBC
VlloPD5BS2FmNnsqfTw5YDVKUXpzN2IjM3JvKDAwMDA8TU5VTW5MU1RhU19Cc09xCgpsaXRlcmFs
IDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL0luc3BlY3RvckV4dGVuc2lvbi1iYXNpYy10YWIuaHRtbCBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvSW5zcGVjdG9yRXh0ZW5zaW9uLWJhc2ljLXRhYi5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmZlODhhZDBlOWRmZDRiYjc4NDY4MjEyODEwNTE0MTZhYjcwZjBhMzUK
LS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L0luc3BlY3RvckV4dGVuc2lvbi1iYXNpYy10YWIuaHRtbApAQCAtMCwwICsxLDYgQEAKKzxodG1s
PgorPGJvZHk+Cis8aDE+VGhpcyBpcyBhIHRlc3QgZXh0ZW5zaW9uLjwvaDE+Cis8cD5JbiBhIG5v
cm1hbCBleHRlbnNpb24sIHRoaXMgYXJlYSB3b3VsZCBzaG93IHRoZSBleHRlbnNpb24ncyB1c2Vy
IGludGVyZmFjZS48L3A+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLSW5zcGVjdG9yRXh0ZW5zaW9uRGVsZWdhdGUu
bW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLSW5zcGVjdG9yRXh0
ZW5zaW9uRGVsZWdhdGUubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjk0NjRiYjZkY2FmMTc3OTY4NjI2NTA1OWI1
M2Y3MDM3ZTk4Yzc2NQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2EvV0tJbnNwZWN0b3JFeHRlbnNpb25EZWxlZ2F0ZS5tbQpAQCAtMCwwICsx
LDE1OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorCisjaW1wb3J0ICJUZXN0
LmgiCisjaW1wb3J0ICJVdGlsaXRpZXMuaCIKKyNpbXBvcnQgPFdlYktpdC9XS1ByZWZlcmVuY2Vz
UHJpdmF0ZS5oPgorI2ltcG9ydCA8V2ViS2l0L1dLV2ViVmlld1ByaXZhdGUuaD4KKyNpbXBvcnQg
PFdlYktpdC9fV0tJbnNwZWN0b3IuaD4KKyNpbXBvcnQgPFdlYktpdC9fV0tJbnNwZWN0b3JFeHRl
bnNpb24uaD4KKyNpbXBvcnQgPFdlYktpdC9fV0tJbnNwZWN0b3JFeHRlbnNpb25EZWxlZ2F0ZS5o
PgorI2ltcG9ydCA8V2ViS2l0L19XS0luc3BlY3RvclByaXZhdGVGb3JUZXN0aW5nLmg+CisjaW1w
b3J0IDx3dGYvUmV0YWluUHRyLmg+CisKKyNpZiBFTkFCTEUoSU5TUEVDVE9SX0VYVEVOU0lPTlMp
CisKK3N0YXRpYyBib29sIGRpZEF0dGFjaExvY2FsSW5zcGVjdG9yQ2FsbGVkID0gZmFsc2U7Citz
dGF0aWMgYm9vbCBkaWRTaG93RXh0ZW5zaW9uVGFiV2FzQ2FsbGVkID0gZmFsc2U7CitzdGF0aWMg
Ym9vbCBkaWRIaWRlRXh0ZW5zaW9uVGFiV2FzQ2FsbGVkID0gZmFsc2U7CitzdGF0aWMgYm9vbCBw
ZW5kaW5nQ2FsbGJhY2tXYXNDYWxsZWQgPSBmYWxzZTsKK3N0YXRpYyBSZXRhaW5QdHI8X1dLSW5z
cGVjdG9yRXh0ZW5zaW9uPiBzaGFyZWRJbnNwZWN0b3JFeHRlbnNpb247CitzdGF0aWMgUmV0YWlu
UHRyPE5TU3RyaW5nPiBzaGFyZWRFeHRlbnNpb25UYWJJZGVudGlmaWVyOworCitzdGF0aWMgdm9p
ZCByZXNldEdsb2JhbFN0YXRlKCkKK3sKKyAgICBkaWRBdHRhY2hMb2NhbEluc3BlY3RvckNhbGxl
ZCA9IGZhbHNlOworICAgIGRpZFNob3dFeHRlbnNpb25UYWJXYXNDYWxsZWQgPSBmYWxzZTsKKyAg
ICBkaWRIaWRlRXh0ZW5zaW9uVGFiV2FzQ2FsbGVkID0gZmFsc2U7CisgICAgcGVuZGluZ0NhbGxi
YWNrV2FzQ2FsbGVkID0gZmFsc2U7Cit9CisKK0BpbnRlcmZhY2UgVUlEZWxlZ2F0ZUZvclRlc3Rp
bmdJbnNwZWN0b3JFeHRlbnNpb25EZWxlZ2F0ZSA6IE5TT2JqZWN0IDxXS1VJRGVsZWdhdGU+CitA
ZW5kCisKK0BpbXBsZW1lbnRhdGlvbiBVSURlbGVnYXRlRm9yVGVzdGluZ0luc3BlY3RvckV4dGVu
c2lvbkRlbGVnYXRlCisKKy0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGlk
QXR0YWNoTG9jYWxJbnNwZWN0b3I6KF9XS0luc3BlY3RvciAqKWluc3BlY3RvcgoreworICAgIEVY
UEVDVF9FUSh3ZWJWaWV3Ll9pbnNwZWN0b3IsIGluc3BlY3Rvcik7CisgICAgZGlkQXR0YWNoTG9j
YWxJbnNwZWN0b3JDYWxsZWQgPSB0cnVlOworfQorCitAZW5kCisKKworQGludGVyZmFjZSBJbnNw
ZWN0b3JFeHRlbnNpb25EZWxlZ2F0ZUZvclRlc3RpbmcgOiBOU09iamVjdCA8X1dLSW5zcGVjdG9y
RXh0ZW5zaW9uRGVsZWdhdGU+CitAZW5kCisKK0BpbXBsZW1lbnRhdGlvbiBJbnNwZWN0b3JFeHRl
bnNpb25EZWxlZ2F0ZUZvclRlc3RpbmcgeworfQorCistICh2b2lkKWluc3BlY3RvckV4dGVuc2lv
bjooX1dLSW5zcGVjdG9yRXh0ZW5zaW9uICopZXh0ZW5zaW9uIGRpZFNob3dUYWJXaXRoSWRlbnRp
ZmllcjooTlNTdHJpbmcgKil0YWJJZGVudGlmaWVyCit7CisgICAgZGlkU2hvd0V4dGVuc2lvblRh
Yldhc0NhbGxlZCA9IHRydWU7Cit9CisKKy0gKHZvaWQpaW5zcGVjdG9yRXh0ZW5zaW9uOihfV0tJ
bnNwZWN0b3JFeHRlbnNpb24gKilleHRlbnNpb24gZGlkSGlkZVRhYldpdGhJZGVudGlmaWVyOihO
U1N0cmluZyAqKXRhYklkZW50aWZpZXIKK3sKKyAgICBkaWRIaWRlRXh0ZW5zaW9uVGFiV2FzQ2Fs
bGVkID0gdHJ1ZTsKK30KKworQGVuZAorCitURVNUKFdLSW5zcGVjdG9yRXh0ZW5zaW9uRGVsZWdh
dGUsIFNob3dBbmRIaWRlVGFiQ2FsbGJhY2tzKQoreworICAgIHJlc2V0R2xvYmFsU3RhdGUoKTsK
KworICAgIGF1dG8gd2ViVmlld0NvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtXS1dlYlZpZXdDb25m
aWd1cmF0aW9uIG5ld10pOworICAgIHdlYlZpZXdDb25maWd1cmF0aW9uLmdldCgpLnByZWZlcmVu
Y2VzLl9kZXZlbG9wZXJFeHRyYXNFbmFibGVkID0gWUVTOworICAgIGF1dG8gd2ViVmlldyA9IGFk
b3B0TlMoW1tXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCA4
MDAsIDYwMCkgY29uZmlndXJhdGlvbjp3ZWJWaWV3Q29uZmlndXJhdGlvbi5nZXQoKV0pOworICAg
IGF1dG8gdWlEZWxlZ2F0ZSA9IGFkb3B0TlMoW1VJRGVsZWdhdGVGb3JUZXN0aW5nSW5zcGVjdG9y
RXh0ZW5zaW9uRGVsZWdhdGUgbmV3XSk7CisKKyAgICBbd2ViVmlldyBzZXRVSURlbGVnYXRlOnVp
RGVsZWdhdGUuZ2V0KCldOworICAgIFt3ZWJWaWV3IGxvYWRIVE1MU3RyaW5nOkAiPGhlYWQ+PHRp
dGxlPlRlc3QgcGFnZSB0byBiZSBpbnNwZWN0ZWQ8L3RpdGxlPjwvaGVhZD48Ym9keT48cD5GaWxs
ZXIgY29udGVudDwvcD48L2JvZHk+IiBiYXNlVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAiaHR0
cDovL2V4YW1wbGUuY29tLyJdXTsKKworICAgIFtbd2ViVmlldyBfaW5zcGVjdG9yXSBzaG93XTsK
KyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRpZEF0dGFjaExvY2FsSW5zcGVjdG9yQ2Fs
bGVkKTsKKworICAgIGF1dG8gZXh0ZW5zaW9uSUQgPSBbTlNVVUlEIFVVSURdLlVVSURTdHJpbmc7
CisgICAgYXV0byBleHRlbnNpb25EaXNwbGF5TmFtZSA9IEAiRmlyc3RFeHRlbnNpb24iOworCisg
ICAgLy8gUmVnaXN0ZXIgdGhlIHRlc3QgZXh0ZW5zaW9uLgorICAgIHBlbmRpbmdDYWxsYmFja1dh
c0NhbGxlZCA9IGZhbHNlOworICAgIFtbd2ViVmlldyBfaW5zcGVjdG9yXSByZWdpc3RlckV4dGVu
c2lvbldpdGhJRDpleHRlbnNpb25JRCBkaXNwbGF5TmFtZTpleHRlbnNpb25EaXNwbGF5TmFtZSBj
b21wbGV0aW9uSGFuZGxlcjpeKE5TRXJyb3IgKiBfTnVsbGFibGUgZXJyb3IsIF9XS0luc3BlY3Rv
ckV4dGVuc2lvbiAqIF9OdWxsYWJsZSBleHRlbnNpb24pIHsKKyAgICAgICAgRVhQRUNUX05VTEwo
ZXJyb3IpOworICAgICAgICBFWFBFQ1RfTk9UX05VTEwoZXh0ZW5zaW9uKTsKKyAgICAgICAgc2hh
cmVkSW5zcGVjdG9yRXh0ZW5zaW9uID0gZXh0ZW5zaW9uOworCisgICAgICAgIHBlbmRpbmdDYWxs
YmFja1dhc0NhbGxlZCA9IHRydWU7CisgICAgfV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6
cnVuKCZwZW5kaW5nQ2FsbGJhY2tXYXNDYWxsZWQpOworCisgICAgYXV0byBleHRlbnNpb25EZWxl
Z2F0ZSA9IGFkb3B0TlMoW0luc3BlY3RvckV4dGVuc2lvbkRlbGVnYXRlRm9yVGVzdGluZyBuZXdd
KTsKKyAgICBbc2hhcmVkSW5zcGVjdG9yRXh0ZW5zaW9uIHNldERlbGVnYXRlOmV4dGVuc2lvbkRl
bGVnYXRlLmdldCgpXTsKKworICAgIC8vIENyZWF0ZSBhbiBleHRlbnNpb24gdGFiLgorICAgIGF1
dG8gaWNvblVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJJbnNw
ZWN0b3JFeHRlbnNpb24tVGFiSWNvbi0zMHgzMCIgd2l0aEV4dGVuc2lvbjpAInBuZyIgc3ViZGly
ZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKKyAgICBhdXRvIHNvdXJjZVVSTCA9
IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJJbnNwZWN0b3JFeHRlbnNp
b24tYmFzaWMtdGFiIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdl
YktpdEFQSS5yZXNvdXJjZXMiXTsKKworICAgIHBlbmRpbmdDYWxsYmFja1dhc0NhbGxlZCA9IGZh
bHNlOworICAgIFtzaGFyZWRJbnNwZWN0b3JFeHRlbnNpb24gY3JlYXRlVGFiV2l0aE5hbWU6QCJG
aXJzdEV4dGVuc2lvbi1UYWIiIHRhYkljb25VUkw6aWNvblVSTCBzb3VyY2VVUkw6c291cmNlVVJM
IGNvbXBsZXRpb25IYW5kbGVyOl4oTlNFcnJvciAqIF9OdWxsYWJsZSBlcnJvciwgTlNTdHJpbmcg
KiBfTnVsbGFibGUgZXh0ZW5zaW9uVGFiSWRlbnRpZmllcikgeworICAgICAgICBFWFBFQ1RfTlVM
TChlcnJvcik7CisgICAgICAgIEVYUEVDVF9OT1RfTlVMTChleHRlbnNpb25UYWJJZGVudGlmaWVy
KTsKKyAgICAgICAgc2hhcmVkRXh0ZW5zaW9uVGFiSWRlbnRpZmllciA9IGV4dGVuc2lvblRhYklk
ZW50aWZpZXI7CisKKyAgICAgICAgcGVuZGluZ0NhbGxiYWNrV2FzQ2FsbGVkID0gdHJ1ZTsKKyAg
ICB9XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnBlbmRpbmdDYWxsYmFja1dhc0Nh
bGxlZCk7CisKKyAgICAvLyBGb3JjZSBhIGtub3duIG5vbi1leHRlbnNpb24gdGFiIHRvIGJlIHNo
b3duIGJlZm9yZSBzaG93aW5nIHRoZSBleHRlbnNpb24gdGFiLiBPdGhlcndpc2UsCisgICAgLy8g
aWYgdGhlIGV4dGVuc2lvbiB0YWIgd2FzIGFscmVhZHkgb3BlbiwgdGhlbiB0aGlzIHRlc3Qgd291
bGQgaGFuZyB3YWl0aW5nIGZvciBhIGRpZFNob3cgY2FsbGJhY2suCisgICAgW1t3ZWJWaWV3IF9p
bnNwZWN0b3JdIHNob3dDb25zb2xlXTsKKworICAgIHBlbmRpbmdDYWxsYmFja1dhc0NhbGxlZCA9
IGZhbHNlOworICAgIFtbd2ViVmlldyBfaW5zcGVjdG9yXSBzaG93RXh0ZW5zaW9uVGFiV2l0aElk
ZW50aWZpZXI6c2hhcmVkRXh0ZW5zaW9uVGFiSWRlbnRpZmllci5nZXQoKSBjb21wbGV0aW9uSGFu
ZGxlcjpeKE5TRXJyb3IgKiBfTnVsbGFibGUgZXJyb3IpIHsKKyAgICAgICAgRVhQRUNUX05VTEwo
ZXJyb3IpOworCisgICAgICAgIHBlbmRpbmdDYWxsYmFja1dhc0NhbGxlZCA9IHRydWU7CisgICAg
fV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZwZW5kaW5nQ2FsbGJhY2tXYXNDYWxs
ZWQpOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZGlkU2hvd0V4dGVuc2lvblRhYldh
c0NhbGxlZCk7CisKKyAgICBbW3dlYlZpZXcgX2luc3BlY3Rvcl0gc2hvd0NvbnNvbGVdOworICAg
IFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZGlkSGlkZUV4dGVuc2lvblRhYldhc0NhbGxlZCk7
CisKKyAgICAvLyBVbnJlZ2lzdGVyIHRoZSB0ZXN0IGV4dGVuc2lvbi4KKyAgICBwZW5kaW5nQ2Fs
bGJhY2tXYXNDYWxsZWQgPSBmYWxzZTsKKyAgICBbW3dlYlZpZXcgX2luc3BlY3Rvcl0gdW5yZWdp
c3RlckV4dGVuc2lvbjpzaGFyZWRJbnNwZWN0b3JFeHRlbnNpb24uZ2V0KCkgY29tcGxldGlvbkhh
bmRsZXI6XihOU0Vycm9yICogX051bGxhYmxlIGVycm9yKSB7CisgICAgICAgIEVYUEVDVF9OVUxM
KGVycm9yKTsKKworICAgICAgICBwZW5kaW5nQ2FsbGJhY2tXYXNDYWxsZWQgPSB0cnVlOworICAg
IH1dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcGVuZGluZ0NhbGxiYWNrV2FzQ2Fs
bGVkKTsKK30KKworI2VuZGlmIC8vIEVOQUJMRShJTlNQRUNUT1JfRVhURU5TSU9OUykK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>438883</attachid>
            <date>2021-09-21 16:29:56 -0700</date>
            <delta_ts>2021-09-21 16:35:21 -0700</delta_ts>
            <desc>Patch v1.1</desc>
            <filename>bug-230580-20210921162955.patch</filename>
            <type>text/plain</type>
            <size>17706</size>
            <attacher name="Blaze Burg">bburg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyNzQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGIxYjlkZWI2YjVhNWFkMWY5
MjMyZWU1MGE1M2Q3NzQwNzFmNTU0N2IuLjA0NGU2MTM4MmIzMTc1MWI3MTg4ZTA3MTk4Mjc4YWY1
N2JmY2UxNDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDQgQEAKKzIwMjEtMDktMjEgIEJKIEJ1cmcg
IDxiYnVyZ0BhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBiYWNrcG9ydCBzaG93Q29uc29s
ZSgpIGFuZCBzaG93UmVzb3VyY2VzKCkgZm9yIFJlbW90ZVdlYkluc3BlY3RvclVJCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzA1NzMKKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzgzMzY1ODE0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFRoZXNlIG1ldGhvZHMgYWxyZWFkeSBleGlzdCBmb3IgX1dLSW5z
cGVjdG9yLiBBIHRlc3Qgd2lsbCBiZSBhZGRlZCBpbiAKKyAgICAgICAgZnV0dXJlIHBhdGNoIHRo
YXQgdGVzdHMgX1dLSW5zcGVjdG9yRXh0ZW5zaW9uRGVsZWdhdGUgc2hvd24vaGlkZGVuIGNhbGxi
YWNrIG1ldGhvZHMuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS0luc3BlY3Rv
cklCQWN0aW9ucy5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvX1dLSW5zcGVjdG9yLmguCisgICAgICAgIEFkZGVkLiBBUEkgYW5kIFNQSSB0aGF0IGFyZSBz
aGFyZWQgYmV0d2VlbiBsb2NhbCBhbmQgcmVtb3RlIFdlYiBJbnNwZWN0b3IKKyAgICAgICAgc2hv
dWxkIGdvIGluIHRoaXMgY2xhc3MuIFNpbmNlIHRoZXNlIG1ldGhvZHMgYXJlIHVzZWQgdG8gaW1w
bGVtZW50IElCQWN0aW9ucyBmb3IgYQorICAgICAgICBkZXRhY2hlZCBXZWIgSW5zcGVjdG9yIHdp
bmRvdywgdGhlIHByb3RvY29sIGlzIG5hbWVkIF9XS0luc3BlY3RvcklCQWN0aW9ucy4KKyAgICAg
ICAgSG9pc3Qgc2hvd1Jlc291cmNlcygpIGFuZCBzaG93Q29uc29sZSgpIHRvIHRoaXMgc2hhcmVk
IHByb3RvY29sLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJbnNwZWN0b3JF
eHRlbnNpb25Ib3N0Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJbnNwZWN0
b3IuaDogUmVtb3ZlIG1ldGhvZHMgdGhhdCBhcmUKKyAgICAgICAgcGFydCBvZiB0aGUgX1dLSW5z
cGVjdG9ySUJBY3Rpb25zIHByb3RvY29sLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2Nv
YS9fV0tSZW1vdGVXZWJJbnNwZWN0b3JWaWV3Q29udHJvbGxlci5tbToKKyAgICAgICAgKC1bX1dL
UmVtb3RlV2ViSW5zcGVjdG9yVmlld0NvbnRyb2xsZXIgc2hvd0NvbnNvbGVdKToKKyAgICAgICAg
KC1bX1dLUmVtb3RlV2ViSW5zcGVjdG9yVmlld0NvbnRyb2xsZXIgc2hvd1Jlc291cmNlc10pOgor
ICAgICAgICBBZGRlZC4gQ2FsbCBpbnRvIFJlbW90ZVdlYkluc3BlY3RvclVJUHJveHkuCisKKyAg
ICAgICAgKiBVSVByb2Nlc3MvSW5zcGVjdG9yL1JlbW90ZVdlYkluc3BlY3RvclVJUHJveHkuaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvSW5zcGVjdG9yL1JlbW90ZVdlYkluc3BlY3RvclVJUHJveHku
Y3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVXZWJJbnNwZWN0b3JVSVByb3h5OjpzaG93Q29u
c29sZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVdlYkluc3BlY3RvclVJUHJveHk6OnNob3dS
ZXNvdXJjZXMpOgorICAgICAgICBBZGRlZC4gU2VuZCBhbiBJUEMgbWVzc2FnZSB0byB0aGUgSW5z
cGVjdG9yIHdlYiBwcm9jZXNzLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9JbnNwZWN0b3IvUmVt
b3RlV2ViSW5zcGVjdG9yVUkuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luc3BlY3Rvci9SZW1v
dGVXZWJJbnNwZWN0b3JVSS5tZXNzYWdlcy5pbjoKKyAgICAgICAgQWRkIG5ldyBtZXNzYWdlcy4K
KworICAgICAgICAqIFdlYlByb2Nlc3MvSW5zcGVjdG9yL1JlbW90ZVdlYkluc3BlY3RvclVJLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlV2ViSW5zcGVjdG9yVUk6OnNob3dDb25zb2xlKToK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlV2ViSW5zcGVjdG9yVUk6OnNob3dSZXNvdXJjZXMpOgor
ICAgICAgICBBZGRlZC4gQmFja3BvcnQgdGhlIGltcGxlbWVudGF0aW9uIGZyb20gV2ViSW5zcGVj
dG9yVUkuCisKIDIwMjEtMDktMTkgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5j
b20+CiAKICAgICAgICAgVGVhY2ggYFdlYktpdDo6Y3JlYXRlU2hhcmVhYmxlQml0bWFwYCB0byBz
bmFwc2hvdCB2aWRlbyBlbGVtZW50cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL19XS0luc3BlY3Rvci5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL19XS0luc3BlY3Rvci5oCmluZGV4IGVlNzY5ZTkwMzAzOTY3MDFmZmM0M2M2NjkzZTNm
MDU2MDNiZWMxZTEuLjA3NGY1ODJjNjUxYTkxMmExMjVhZDhlOGI5ODVmNzgyNDhkNGNjM2QgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJbnNwZWN0b3Iu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9yLmgK
QEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE4LTIwMjAgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE4LTIwMjEgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CkBAIC0yNiw2ICsyNiw3IEBACiAjaW1wb3J0IDxGb3VuZGF0aW9uL0ZvdW5kYXRpb24uaD4KICNp
bXBvcnQgPFdlYktpdC9XS0ZvdW5kYXRpb24uaD4KICNpbXBvcnQgPFdlYktpdC9fV0tJbnNwZWN0
b3JFeHRlbnNpb25Ib3N0Lmg+CisjaW1wb3J0IDxXZWJLaXQvX1dLSW5zcGVjdG9ySUJBY3Rpb25z
Lmg+CiAKIE5TX0FTU1VNRV9OT05OVUxMX0JFR0lOCiAKQEAgLTM1LDcgKzM2LDcgQEAgTlNfQVNT
VU1FX05PTk5VTExfQkVHSU4KIEBwcm90b2NvbCBfV0tJbnNwZWN0b3JEZWxlZ2F0ZTsKIAogV0tf
Q0xBU1NfQVZBSUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikpCi1AaW50ZXJmYWNlIF9X
S0luc3BlY3RvciA6IE5TT2JqZWN0IDxfV0tJbnNwZWN0b3JFeHRlbnNpb25Ib3N0PgorQGludGVy
ZmFjZSBfV0tJbnNwZWN0b3IgOiBOU09iamVjdCA8X1dLSW5zcGVjdG9yRXh0ZW5zaW9uSG9zdCwg
X1dLSW5zcGVjdG9ySUJBY3Rpb25zPgogCiAtIChpbnN0YW5jZXR5cGUpaW5pdCBOU19VTkFWQUlM
QUJMRTsKIApAQCAtNDksMTEgKzUwLDcgQEAgV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zKDEwLjE0
LjQpLCBpb3MoMTIuMikpCiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIEJPT0wgaXNF
bGVtZW50U2VsZWN0aW9uQWN0aXZlOwogCiAtICh2b2lkKWNvbm5lY3Q7Ci0tICh2b2lkKXNob3c7
Ci0tICh2b2lkKWNsb3NlOwogLSAodm9pZCloaWRlOwotLSAodm9pZClzaG93Q29uc29sZTsKLS0g
KHZvaWQpc2hvd1Jlc291cmNlczsKIC0gKHZvaWQpc2hvd01haW5SZXNvdXJjZUZvckZyYW1lOihf
V0tGcmFtZUhhbmRsZSAqKWZyYW1lOwogLSAodm9pZClhdHRhY2g7CiAtICh2b2lkKWRldGFjaDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJbnNwZWN0
b3JFeHRlbnNpb25Ib3N0LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dL
SW5zcGVjdG9yRXh0ZW5zaW9uSG9zdC5oCmluZGV4IGUyNzliYzZmMzIyZWU2ZGVjMGM4ODAxNzkx
NDU2NzIyMjBmNjNlMDkuLjNiOGY1MWU3MWNmNjYyNWJmOWM2NThiNjc1NzEyNzYxY2Q1MDgwODkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJbnNwZWN0
b3JFeHRlbnNpb25Ib3N0LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L19XS0luc3BlY3RvckV4dGVuc2lvbkhvc3QuaApAQCAtNTMsMTIgKzUzLDYgQEAgTlNfQVNTVU1F
X05PTk5VTExfQkVHSU4KICAqLwogLSAodm9pZCl1bnJlZ2lzdGVyRXh0ZW5zaW9uOihfV0tJbnNw
ZWN0b3JFeHRlbnNpb24gKilleHRlbnNpb24gY29tcGxldGlvbkhhbmRsZXI6KHZvaWQoXikoTlNF
cnJvciAqIF9OdWxsYWJsZSkpY29tcGxldGlvbkhhbmRsZXI7CiAKLS8qKgotICogQGFic3RyYWN0
IENsb3NlcyB0aGUgYXNzb2NpYXRlZCBXZWIgSW5zcGVjdG9yIGluc3RhbmNlLiBUaGlzIHdpbGwg
Y2F1c2UgYWxsCi0gKiByZWdpc3RlcmVkIF9XS0luc3BlY3RvckV4dGVuc2lvbnMgdG8gYmUgdW5y
ZWdpc3RlcmVkIGFuZCBpbnZhbGlkYXRlZC4KLSAqLwotLSAodm9pZCljbG9zZTsKLQogLyoqCiAg
KiBAYWJzdHJhY3QgVGhlIHdlYiB2aWV3IHRoYXQgaXMgdXNlZCB0byBob3N0IGV4dGVuc2lvbiB0
YWJzIGNyZWF0ZWQgdmlhIF9XS0luc3BlY3RvckV4dGVuc2lvbi4KICAqIEBkaXNjdXNzaW9uIEJy
b3dzaW5nIGNvbnRleHRzIGZvciBleHRlbnNpb24gdGFicyBhcmUgbG9hZGVkIGluIHN1YmZyYW1l
cyBvZiB0aGlzIHdlYiB2aWV3LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL19XS0luc3BlY3RvcklCQWN0aW9ucy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL19XS0luc3BlY3RvcklCQWN0aW9ucy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ4NjNjNmVj
ZjkzZmZiYzhiMGZhNmI4YjJjZTljNTc0NmY3ZjE0YmYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9ySUJBY3Rpb25zLmgKQEAg
LTAsMCArMSw1OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgPEZvdW5kYXRpb24vRm91bmRhdGlv
bi5oPgorI2ltcG9ydCA8V2ViS2l0L1dLRm91bmRhdGlvbi5oPgorCitOU19BU1NVTUVfTk9OTlVM
TF9CRUdJTgorCitAcHJvdG9jb2wgX1dLSW5zcGVjdG9ySUJBY3Rpb25zIDxOU09iamVjdD4KKwor
LyoqCisgKiBAYWJzdHJhY3QgU2hvd3MgdGhlIGFzc29jaWF0ZWQgV2ViIEluc3BlY3RvciBpbnN0
YW5jZS4KKyAqLworLSAodm9pZClzaG93OworCisvKioKKyAqIEBhYnN0cmFjdCBDbG9zZXMgdGhl
IGFzc29jaWF0ZWQgV2ViIEluc3BlY3RvciBpbnN0YW5jZS4gVGhpcyB3aWxsIGNhdXNlIGFsbAor
ICogcmVnaXN0ZXJlZCBfV0tJbnNwZWN0b3JFeHRlbnNpb25zIHRvIGJlIHVucmVnaXN0ZXJlZCBh
bmQgaW52YWxpZGF0ZWQuCisgKi8KKy0gKHZvaWQpY2xvc2U7CisKKy8qKgorICogQGFic3RyYWN0
IE9wZW5zIHRoZSBDb25zb2xlIFRhYiBpbiB0aGUgYXNzb2NpYXRlZCBXZWIgSW5zcGVjdG9yIGlu
c3RhbmNlLgorICogVGhpcyB3aWxsIG9wZW4gdGhlIGFzc29jaWF0ZWQgV2ViIEluc3BlY3RvciBp
ZiBpdCBpcyBub3QgYWxyZWFkeSBvcGVuLgorICovCistICh2b2lkKXNob3dDb25zb2xlOworCisv
KioKKyAqIEBhYnN0cmFjdCBPcGVucyB0aGUgU291cmNlcyBUYWIgaW4gdGhlIGFzc29jaWF0ZWQg
V2ViIEluc3BlY3RvciBpbnN0YW5jZS4KKyAqIFRoaXMgd2lsbCBvcGVuIHRoZSBhc3NvY2lhdGVk
IFdlYiBJbnNwZWN0b3IgaWYgaXQgaXMgbm90IGFscmVhZHkgb3Blbi4KKyAqLworLSAodm9pZClz
aG93UmVzb3VyY2VzOworCitAZW5kCisKK05TX0FTU1VNRV9OT05OVUxMX0VORApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1JlbW90ZVdlYkluc3BlY3Rv
clZpZXdDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dL
UmVtb3RlV2ViSW5zcGVjdG9yVmlld0NvbnRyb2xsZXIuaAppbmRleCBiODJjZDMwMDhkN2MzYWJj
M2UxYWVmYmZiMTA5Zjk5ZDdjNTUwNDBkLi5hNDc1MmM1MzRhN2MzMjU4OWNjYTNlZmNhNGIzMTg1
ZDYwY2QyYWFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
X1dLUmVtb3RlV2ViSW5zcGVjdG9yVmlld0NvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUmVtb3RlV2ViSW5zcGVjdG9yVmlld0NvbnRyb2xsZXIu
aApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTYtMjAyMCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYtMjAyMSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKQEAgLTI1LDYgKzI1LDcgQEAKIAogI2ltcG9ydCA8V2ViS2l0L1dLRm91bmRhdGlvbi5oPgog
I2ltcG9ydCA8V2ViS2l0L19XS0luc3BlY3RvckV4dGVuc2lvbkhvc3QuaD4KKyNpbXBvcnQgPFdl
YktpdC9fV0tJbnNwZWN0b3JJQkFjdGlvbnMuaD4KIAogI2lmICFUQVJHRVRfT1NfSVBIT05FCiAK
QEAgLTM3LDcgKzM4LDcgQEAKIE5TX0FTU1VNRV9OT05OVUxMX0JFR0lOCiAKIFdLX0NMQVNTX0FW
QUlMQUJMRShtYWNvcygxMC4xMi4zKSkKLUBpbnRlcmZhY2UgX1dLUmVtb3RlV2ViSW5zcGVjdG9y
Vmlld0NvbnRyb2xsZXIgOiBOU09iamVjdCA8X1dLSW5zcGVjdG9yRXh0ZW5zaW9uSG9zdD4KK0Bp
bnRlcmZhY2UgX1dLUmVtb3RlV2ViSW5zcGVjdG9yVmlld0NvbnRyb2xsZXIgOiBOU09iamVjdCA8
X1dLSW5zcGVjdG9yRXh0ZW5zaW9uSG9zdCwgX1dLSW5zcGVjdG9ySUJBY3Rpb25zPgogCiBAcHJv
cGVydHkgKG5vbmF0b21pYywgYXNzaWduKSBpZCA8X1dLUmVtb3RlV2ViSW5zcGVjdG9yVmlld0Nv
bnRyb2xsZXJEZWxlZ2F0ZT4gZGVsZWdhdGU7CiAKQEAgLTQ3LDggKzQ4LDYgQEAgV0tfQ0xBU1Nf
QVZBSUxBQkxFKG1hY29zKDEwLjEyLjMpKQogCiAtIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhDb25m
aWd1cmF0aW9uOihfV0tJbnNwZWN0b3JDb25maWd1cmF0aW9uICopY29uZmlndXJhdGlvbiBXS19B
UElfQVZBSUxBQkxFKG1hY29zKDEyLjApKTsKIC0gKHZvaWQpbG9hZEZvckRlYnVnZ2FibGU6KF9X
S0luc3BlY3RvckRlYnVnZ2FibGVJbmZvICopZGVidWdnYWJsZUluZm8gYmFja2VuZENvbW1hbmRz
VVJMOihOU1VSTCAqKWJhY2tlbmRDb21tYW5kc1VSTCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEy
LjApKTsKLS0gKHZvaWQpY2xvc2U7Ci0tICh2b2lkKXNob3c7CiAKIC0gKHZvaWQpc2VuZE1lc3Nh
Z2VUb0Zyb250ZW5kOihOU1N0cmluZyAqKW1lc3NhZ2U7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tSZW1vdGVXZWJJbnNwZWN0b3JWaWV3Q29udHJv
bGxlci5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tSZW1vdGVXZWJJ
bnNwZWN0b3JWaWV3Q29udHJvbGxlci5tbQppbmRleCBjMTMwMzk5Y2Y5ZjMwNjNmNWEyZGNjMzky
ZTE5ZWVmZDc2M2MxNTNhLi4xMjJjODI4NGJiZTQ3YTQzNzk4ZTYwNDNiNTMxMTNlMThmMDdmMDFh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUmVtb3Rl
V2ViSW5zcGVjdG9yVmlld0NvbnRyb2xsZXIubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL19XS1JlbW90ZVdlYkluc3BlY3RvclZpZXdDb250cm9sbGVyLm1tCkBAIC0y
MDcsNiArMjA3LDE2IEBAIC0gKHZvaWQpdW5yZWdpc3RlckV4dGVuc2lvbjooX1dLSW5zcGVjdG9y
RXh0ZW5zaW9uICopZXh0ZW5zaW9uIGNvbXBsZXRpb25IYW5kbGVyCiAjZW5kaWYKIH0KIAorLSAo
dm9pZClzaG93Q29uc29sZQoreworICAgIG1fcmVtb3RlSW5zcGVjdG9yUHJveHktPnNob3dDb25z
b2xlKCk7Cit9CisKKy0gKHZvaWQpc2hvd1Jlc291cmNlcworeworICAgIG1fcmVtb3RlSW5zcGVj
dG9yUHJveHktPnNob3dSZXNvdXJjZXMoKTsKK30KKwogQGVuZAogCiBOU19BU1NVTUVfTk9OTlVM
TF9FTkQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9SZW1v
dGVXZWJJbnNwZWN0b3JVSVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3Bl
Y3Rvci9SZW1vdGVXZWJJbnNwZWN0b3JVSVByb3h5LmNwcAppbmRleCAzZTZkYjM2NDA2NzU4MWIz
N2Q3ZmQ4Njg2MWRkODdkZWEzODJkMzU2Li42YmY0N2JmMjVlNzExMGUwYmZkZGEwOGE3YzFhYTc5
MzcyZTFlOTdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3Iv
UmVtb3RlV2ViSW5zcGVjdG9yVUlQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvSW5zcGVjdG9yL1JlbW90ZVdlYkluc3BlY3RvclVJUHJveHkuY3BwCkBAIC05NCw2ICs5NCwx
NiBAQCB2b2lkIFJlbW90ZVdlYkluc3BlY3RvclVJUHJveHk6OnNob3coKQogICAgIGJyaW5nVG9G
cm9udCgpOwogfQogCit2b2lkIFJlbW90ZVdlYkluc3BlY3RvclVJUHJveHk6OnNob3dDb25zb2xl
KCkKK3sKKyAgICBtX2luc3BlY3RvclBhZ2UtPnNlbmQoTWVzc2FnZXM6OlJlbW90ZVdlYkluc3Bl
Y3RvclVJOjpTaG93Q29uc29sZSB7IH0pOworfQorCit2b2lkIFJlbW90ZVdlYkluc3BlY3RvclVJ
UHJveHk6OnNob3dSZXNvdXJjZXMoKQoreworICAgIG1faW5zcGVjdG9yUGFnZS0+c2VuZChNZXNz
YWdlczo6UmVtb3RlV2ViSW5zcGVjdG9yVUk6OlNob3dSZXNvdXJjZXMgeyB9KTsKK30KKwogdm9p
ZCBSZW1vdGVXZWJJbnNwZWN0b3JVSVByb3h5OjpzZW5kTWVzc2FnZVRvRnJvbnRlbmQoY29uc3Qg
U3RyaW5nJiBtZXNzYWdlKQogewogICAgIG1faW5zcGVjdG9yUGFnZS0+c2VuZChNZXNzYWdlczo6
UmVtb3RlV2ViSW5zcGVjdG9yVUk6OlNlbmRNZXNzYWdlVG9Gcm9udGVuZChtZXNzYWdlKSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvUmVtb3RlV2ViSW5z
cGVjdG9yVUlQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL1JlbW90
ZVdlYkluc3BlY3RvclVJUHJveHkuaAppbmRleCAzNjk0ZjQzMzdjZTQ0NzE1YWM2NDA3MjRkOTQx
NWM4YjZlZDE3M2Q4Li4xMTE0MDM5OGM4ZDhlMTczNzk0NWYxMTAyZTc3MjI3OWQ5NmYxYjllIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvUmVtb3RlV2ViSW5z
cGVjdG9yVUlQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9S
ZW1vdGVXZWJJbnNwZWN0b3JVSVByb3h5LmgKQEAgLTg4LDYgKzg4LDggQEAgcHVibGljOgogICAg
IHZvaWQgbG9hZChSZWY8QVBJOjpEZWJ1Z2dhYmxlSW5mbz4mJiwgY29uc3QgU3RyaW5nJiBiYWNr
ZW5kQ29tbWFuZHNVUkwpOwogICAgIHZvaWQgY2xvc2VGcm9tQmFja2VuZCgpOwogICAgIHZvaWQg
c2hvdygpOworICAgIHZvaWQgc2hvd0NvbnNvbGUoKTsKKyAgICB2b2lkIHNob3dSZXNvdXJjZXMo
KTsKIAogICAgIHZvaWQgc2VuZE1lc3NhZ2VUb0Zyb250ZW5kKGNvbnN0IFN0cmluZyYgbWVzc2Fn
ZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CmluZGV4IDE5MWY3NmIzODk0ZTkxN2M1MjdjNGY5MzhmZWVkODYzYzc3MDFjNjkuLjA0NmQ5Y2Vk
Y2JkZmMwZjMzNDU4NWRmOTU4YTI1YWRiYjNhZjc4ZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMyw3ICszLDcgQEAKIAlhcmNoaXZl
VmVyc2lvbiA9IDE7CiAJY2xhc3NlcyA9IHsKIAl9OwotCW9iamVjdFZlcnNpb24gPSA1MjsKKwlv
YmplY3RWZXJzaW9uID0gNTQ7CiAJb2JqZWN0cyA9IHsKIAogLyogQmVnaW4gUEJYQWdncmVnYXRl
VGFyZ2V0IHNlY3Rpb24gKi8KQEAgLTE1NjYsNiArMTU2Niw3IEBACiAJCTk5QjE2NzVCMjUyQkJB
REQwMDczMTQwRSAvKiBXZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXJQcm94eS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTlCMTY3NUEyNTJC
QkFERDAwNzMxNDBFIC8qIFdlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlclByb3h5Lmgg
Ki87IH07CiAJCTk5QjE2NzY0MjUyQkJFNjIwMDczMTQwRSAvKiBXZWJJbnNwZWN0b3JVSUV4dGVu
c2lvbkNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDk5QjE2NzYxMjUyQkJFNjEwMDczMTQwRSAvKiBXZWJJbnNwZWN0b3JVSUV4dGVuc2lv
bkNvbnRyb2xsZXIuaCAqLzsgfTsKIAkJOTlDM0FFMkQxREFEQTZBRDAwQUY1QzE2IC8qIFdlYkF1
dG9tYXRpb25TZXNzaW9uTWFjcm9zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5OUMzQUUyQzFEQURBNkE3MDBBRjVDMTYgLyogV2ViQXV0b21hdGlvblNl
c3Npb25NYWNyb3MuaCAqLzsgfTsKKwkJOTlDNjA3RUIyNkZBOUQ0OTAwQTA5NTNGIC8qIF9XS0lu
c3BlY3RvcklCQWN0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOTlDNjA3RUEyNkZBOUQ0ODAwQTA5NTNGIC8qIF9XS0luc3BlY3RvcklCQWN0aW9u
cy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTk5
QzgxRDVBMUMyMEU3RTIwMDVDNEM4MiAvKiBBdXRvbWF0aW9uQ2xpZW50LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OUM4MUQ1NTFDMjBERkJFMDA1QzRD
ODIgLyogQXV0b21hdGlvbkNsaWVudC5oICovOyB9OwogCQk5OUM4MUQ1RDFDMjFGMzhCMDA1QzRD
ODIgLyogQVBJQXV0b21hdGlvbkNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOTlDODFENUIxQzIwRTgxNzAwNUM0QzgyIC8qIEFQSUF1dG9tYXRp
b25DbGllbnQuaCAqLzsgfTsKIAkJOTlFNzE0QzUxQzEyNEEwNDAwNjY1QjNBIC8qIF9XS0F1dG9t
YXRpb25EZWxlZ2F0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOTlFNzE0QzExQzEyNDlFNjAwNjY1QjNBIC8qIF9XS0F1dG9tYXRpb25EZWxlZ2F0ZS5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC01MDgw
LDYgKzUwODEsNyBAQAogCQk5OUMzQUUyMzFEQUQ4RTM0MDBBRjVDMTYgLyogV2ViQXV0b21hdGlv
blNlc3Npb25NYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBX
ZWJBdXRvbWF0aW9uU2Vzc2lvbk1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
OTlDM0FFMjYxREFEOTQ4NTAwQUY1QzE2IC8qIFdlYkF1dG9tYXRpb25TZXNzaW9uQ29jb2EubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJBdXRvbWF0aW9uU2Vz
c2lvbkNvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5OUMzQUUyQzFEQURB
NkE3MDBBRjVDMTYgLyogV2ViQXV0b21hdGlvblNlc3Npb25NYWNyb3MuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQXV0b21hdGlvblNlc3Npb25NYWNyb3MuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTlDNjA3RUEyNkZBOUQ0ODAwQTA5NTNGIC8qIF9XS0lu
c3BlY3RvcklCQWN0aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBfV0tJ
bnNwZWN0b3JJQkFjdGlvbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTlDODFE
NTUxQzIwREZCRTAwNUM0QzgyIC8qIEF1dG9tYXRpb25DbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gQXV0b21hdGlvbkNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk5OUM4MUQ1NjFDMjBERkJFMDA1QzRDODIgLyogQXV0b21hdGlvbkNsaWVudC5t
bSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEF1dG9tYXRpb25DbGll
bnQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk5QzgxRDVCMUMyMEU4MTcwMDVD
NEM4MiAvKiBBUElBdXRvbWF0aW9uQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEFQSUF1dG9tYXRpb25DbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTgxNTYsNiArODE1OCw3IEBACiAJCQkJOTk2QjJCQTAyNUUyNTkxMTAwNzE5Mzc5IC8qIF9X
S0luc3BlY3RvckV4dGVuc2lvbkRlbGVnYXRlLmggKi8sCiAJCQkJOTk3OTY1QTIyNTMxMjhDNzAw
QjMxQUUzIC8qIF9XS0luc3BlY3RvckV4dGVuc2lvbkhvc3QuaCAqLywKIAkJCQk5OUIxNjc1NTI1
MkJCN0UxMDA3MzE0MEUgLyogX1dLSW5zcGVjdG9yRXh0ZW5zaW9uSW50ZXJuYWwuaCAqLywKKwkJ
CQk5OUM2MDdFQTI2RkE5RDQ4MDBBMDk1M0YgLyogX1dLSW5zcGVjdG9ySUJBY3Rpb25zLmggKi8s
CiAJCQkJNUNBRkRFNDQyMTMwODQzNjAwQjFGN0UxIC8qIF9XS0luc3BlY3RvckludGVybmFsLmgg
Ki8sCiAJCQkJOTk3OUNBNTcyMzdGNDlGMDAwMzlFQzA1IC8qIF9XS0luc3BlY3RvclByaXZhdGUu
aCAqLywKIAkJCQk5OTk5NkE5RDI1MDA0QkNCMDA0Rjc1NTkgLyogX1dLSW5zcGVjdG9yUHJpdmF0
ZUZvclRlc3RpbmcuaCAqLywKQEAgLTEzMDc5LDYgKzEzMDgyLDcgQEAKIAkJCQkzNzBGMzRBMzE4
MjlCRTFFMDA5MDI3QzggLyogV0tOYXZpZ2F0aW9uRGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MzcwRjM0QTUxODI5QkVBMzAwOTAyN0M4IC8qIFdLTmF2aWdhdGlvbkRhdGFJbnRlcm5hbC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQkNGNjlGQTkxMTc2RDFDQjAwNDcxQTUyIC8qIFdLTmF2aWdhdGlv
bkRhdGFSZWYuaCBpbiBIZWFkZXJzICovLAorCQkJCTk5QzYwN0VCMjZGQTlENDkwMEEwOTUzRiAv
KiBfV0tJbnNwZWN0b3JJQkFjdGlvbnMuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBQkMzREZDMTg5
OUY1MUMwMDRGMDYyNiAvKiBXS05hdmlnYXRpb25EZWxlZ2F0ZS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMUFBMjBENTExOEFENTBFMDAwNUQxRUQ0IC8qIFdLTmF2aWdhdGlvbkRlbGVnYXRlUHJpdmF0
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFCQzNERjExODk5QzZCNjAwNEYwNjI2IC8qIFdLTmF2
aWdhdGlvbkludGVybmFsLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvUmVtb3RlV2ViSW5zcGVjdG9yVUkuY3BwIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9SZW1vdGVXZWJJbnNwZWN0b3JVSS5jcHAKaW5k
ZXggNmRiMDA5MTM3OTQzYmI4YzNiZDVkMTI4YzNhNGRmMTRhMzBkOWI0NC4uZWI4Y2Y4MmU5MWU0
NzJmNGEzMmUxN2ZiNjNiM2JjNWU5NGEyYjRjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0luc3BlY3Rvci9SZW1vdGVXZWJJbnNwZWN0b3JVSS5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9SZW1vdGVXZWJJbnNwZWN0b3JVSS5jcHAKQEAg
LTIwMyw2ICsyMDMsMTYgQEAgdm9pZCBSZW1vdGVXZWJJbnNwZWN0b3JVSTo6cmVzZXRTdGF0ZSgp
CiAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+
c2VuZChNZXNzYWdlczo6UmVtb3RlV2ViSW5zcGVjdG9yVUlQcm94eTo6UmVzZXRTdGF0ZSgpLCBt
X3BhZ2UuaWRlbnRpZmllcigpKTsKIH0KIAordm9pZCBSZW1vdGVXZWJJbnNwZWN0b3JVSTo6c2hv
d0NvbnNvbGUoKQoreworICAgIG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyLT5kaXNwYXRjaENvbW1h
bmRXaXRoUmVzdWx0QXN5bmMoInNob3dDb25zb2xlIl9zKTsKK30KKwordm9pZCBSZW1vdGVXZWJJ
bnNwZWN0b3JVSTo6c2hvd1Jlc291cmNlcygpCit7CisgICAgbV9mcm9udGVuZEFQSURpc3BhdGNo
ZXItPmRpc3BhdGNoQ29tbWFuZFdpdGhSZXN1bHRBc3luYygic2hvd1Jlc291cmNlcyJfcyk7Cit9
CisKIHZvaWQgUmVtb3RlV2ViSW5zcGVjdG9yVUk6Om9wZW5VUkxFeHRlcm5hbGx5KGNvbnN0IFN0
cmluZyYgdXJsKQogewogICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3ND
b25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OlJlbW90ZVdlYkluc3BlY3RvclVJUHJveHk6Ok9w
ZW5VUkxFeHRlcm5hbGx5KHVybCksIG1fcGFnZS5pZGVudGlmaWVyKCkpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9SZW1vdGVXZWJJbnNwZWN0b3JVSS5o
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9SZW1vdGVXZWJJbnNwZWN0b3JV
SS5oCmluZGV4IDAwYTNlZTAxZWQxZjU2OTQyNGE1OGQ1YzY0NzY1MGE0ZjE5NzFjMGMuLmZkNDVk
MjE2Y2UxYTFjZGQ2Yzg0NzU4Y2M3NjY4ZmVjMmJmYzdmNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvUmVtb3RlV2ViSW5zcGVjdG9yVUkuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1JlbW90ZVdlYkluc3BlY3RvclVJLmgK
QEAgLTY1LDYgKzY1LDggQEAgcHVibGljOgogICAgIHZvaWQgZGlkU2F2ZShjb25zdCBTdHJpbmcm
IHVybCk7CiAgICAgdm9pZCBkaWRBcHBlbmQoY29uc3QgU3RyaW5nJiB1cmwpOwogICAgIHZvaWQg
c2VuZE1lc3NhZ2VUb0Zyb250ZW5kKGNvbnN0IFN0cmluZyYpOworICAgIHZvaWQgc2hvd0NvbnNv
bGUoKTsKKyAgICB2b2lkIHNob3dSZXNvdXJjZXMoKTsKIAogI2lmIEVOQUJMRShJTlNQRUNUT1Jf
VEVMRU1FVFJZKQogICAgIHZvaWQgc2V0RGlhZ25vc3RpY0xvZ2dpbmdBdmFpbGFibGUoYm9vbCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1JlbW90ZVdl
Ykluc3BlY3RvclVJLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3Bl
Y3Rvci9SZW1vdGVXZWJJbnNwZWN0b3JVSS5tZXNzYWdlcy5pbgppbmRleCAzZTIwMmMxNmU3YzUx
NmY4MzAwMTlkN2RlMTlkMDMwYzVhMWQzNDVkLi45NTViNjhlZDQzMDFjZGJmNGMxMGNlZmMyNmZj
MmY2NTJiZDg4NTNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVj
dG9yL1JlbW90ZVdlYkluc3BlY3RvclVJLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbnNwZWN0b3IvUmVtb3RlV2ViSW5zcGVjdG9yVUkubWVzc2FnZXMuaW4KQEAg
LTI5LDYgKzI5LDkgQEAgbWVzc2FnZXMgLT4gUmVtb3RlV2ViSW5zcGVjdG9yVUkgewogICAgIFNl
dERpYWdub3N0aWNMb2dnaW5nQXZhaWxhYmxlKGJvb2wgYXZhaWxhYmxlKQogI2VuZGlmCiAKKyAg
ICBTaG93Q29uc29sZSgpCisgICAgU2hvd1Jlc291cmNlcygpCisKICAgICBEaWRTYXZlKFN0cmlu
ZyB1cmwpCiAgICAgRGlkQXBwZW5kKFN0cmluZyB1cmwpCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>438885</attachid>
            <date>2021-09-21 16:35:23 -0700</date>
            <delta_ts>2021-09-22 08:29:47 -0700</delta_ts>
            <desc>Patch v1.1</desc>
            <filename>bug-230580-20210921163522.patch</filename>
            <type>text/plain</type>
            <size>38944</size>
            <attacher name="Blaze Burg">bburg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyNzQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwppbmRleCBm
NjVhNzFmYmEwMDgyZGRlMTA2ZTRiYzNiODVlZWJmZmJiN2QxZmNmLi4yMjFkZGY1MzQ2ODhjNjM5
MGVhMmM1YzMwZWE5ODhkY2Q4MGFmMjc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMiBAQAorMjAyMS0wOS0yMSAgQkogQnVyZyAgPGJidXJnQGFwcGxlLmNvbT4KKworICAg
ICAgICBbQ29jb2FdIEFkZCBTUEkgdG8gc2VsZWN0IGEgdGFiIGNyZWF0ZWQgYnkgX1dLSW5zcGVj
dG9yRXh0ZW5zaW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMzA1ODAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgzMzcyODUxPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhIG1ldGhvZCB0byBs
b29rIHVwIGEgV2ViSW5zcGVjdG9yRXh0ZW5zaW9uVGFiQ29udGVudFZpZXcKKyAgICAgICAgYnkg
aXRzIGV4dGVuc2lvblRhYklEIGFuZCB0aGVuIHNob3cgaXQgd2l0aCBXSS50YWJCcm93c2VyLgor
CisgICAgICAgICogVXNlckludGVyZmFjZS9Db250cm9sbGVycy9XZWJJbnNwZWN0b3JFeHRlbnNp
b25Db250cm9sbGVyLmpzOgorICAgICAgICAoV0kuV2ViSW5zcGVjdG9yRXh0ZW5zaW9uQ29udHJv
bGxlci5wcm90b3R5cGUucmVsb2FkRm9yRXh0ZW5zaW9uKToKKyAgICAgICAgUmVtb3ZlIGV4dHJh
IG5ld2xpbmVzLgorICAgICAgICAoV0kuV2ViSW5zcGVjdG9yRXh0ZW5zaW9uQ29udHJvbGxlci5w
cm90b3R5cGUuc2hvd0V4dGVuc2lvblRhYik6IEFkZGVkLgorCisgICAgICAgICogVXNlckludGVy
ZmFjZS9Qcm90b2NvbC9JbnNwZWN0b3JGcm9udGVuZEFQSS5qczoKKyAgICAgICAgKEluc3BlY3Rv
ckZyb250ZW5kQVBJLnNob3dFeHRlbnNpb25UYWIpOiBBZGRlZC4KKwogMjAyMS0wOS0xNiAgUGF0
cmljayBBbmdsZSAgPHBhbmdsZUBhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3Rvcjog
UmVncmVzc2lvbihyMjc5NjEzKSBBdWRpdCByZXN1bHQgc2NvcGUgdG9nZ2xlcyBhcmUgbWlzc2lu
ZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwppbmRleCAwNDRlNjEzODJiMzE3NTFiNzE4OGUwNzE5ODI3OGFmNTdiZmNlMTQwLi5l
YzlhNzhlNDNlYWJkODY4YWMxYjRlMzRmZGEzMTdmNGU3MDFlYmIyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDM0IEBACisyMDIxLTA5LTIxICBCSiBCdXJnICA8YmJ1cmdAYXBwbGUuY29tPgorCisgICAg
ICAgIFtDb2NvYV0gQWRkIFNQSSB0byBzZWxlY3QgYSB0YWIgY3JlYXRlZCBieSBfV0tJbnNwZWN0
b3JFeHRlbnNpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIzMDU4MAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODMzNzI4NTE+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgbmV3IG1ldGhvZCBm
b3Igc2VsZWN0aW5nIGFuIGV4dGVuc2lvbiB0YWIgaW4gV2ViSW5zcGVjdG9yVUkKKyAgICAgICAg
dGhhdCB3YXMgcHJldmlvdXNseSBjcmVhdGVkIGJ5IHVzaW5nCisgICAgICAgIC1bX1dLSW5zcGVj
dG9yRXh0ZW5zaW9uIGNyZWF0ZU5ld1RhYjp0YWJJY29uVVJMOnNvdXJjZVVSTDpjb21wbGV0aW9u
SGFuZGxlcl0uCisKKyAgICAgICAgVGhpcyBpcyBhIHN0cmFpZ2h0Zm9yd2FyZCBwbHVtYmluZyBl
eGVyY2lzZS4gVGhlIEFQSSB0ZXN0IHVzZXMgdGhlIG5ldyBtZXRob2QKKyAgICAgICAgdG8gdGVz
dCB0aGUgZXhpc3RpbmcgX1dLSW5zcGVjdG9yRXh0ZW5zaW9uRGVsZWdhdGUgY2FsbGJhY2sgbWV0
aG9kcyBmb3IKKyAgICAgICAgZGlkU2hvd1RhYiBhbmQgZGlkSGlkZVRhYi4KKworICAgICAgICBO
ZXcgQVBJIHRlc3Q6IFdLSW5zcGVjdG9yRXh0ZW5zaW9uRGVsZWdhdGUuU2hvd0FuZEhpZGVUYWJD
YWxsYmFja3MuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS0luc3BlY3Rvci5t
bToKKyAgICAgICAgKC1bX1dLSW5zcGVjdG9yIHNob3dFeHRlbnNpb25UYWJXaXRoSWRlbnRpZmll
cjpjb21wbGV0aW9uSGFuZGxlcjpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19X
S0luc3BlY3RvckV4dGVuc2lvbkhvc3QuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29h
L19XS1JlbW90ZVdlYkluc3BlY3RvclZpZXdDb250cm9sbGVyLm1tOgorICAgICAgICAoLVtfV0tS
ZW1vdGVXZWJJbnNwZWN0b3JWaWV3Q29udHJvbGxlciBzaG93RXh0ZW5zaW9uVGFiV2l0aElkZW50
aWZpZXI6Y29tcGxldGlvbkhhbmRsZXI6XSk6CisgICAgICAgICogVUlQcm9jZXNzL0luc3BlY3Rv
ci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXJQcm94eS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlclByb3h5OjpzaG93RXh0ZW5z
aW9uVGFiKToKKyAgICAgICAgKiBVSVByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJRXh0
ZW5zaW9uQ29udHJvbGxlclByb3h5Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbnNwZWN0b3Iv
V2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyOjpzaG93RXh0ZW5zaW9uVGFiKToKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRy
b2xsZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4
dGVuc2lvbkNvbnRyb2xsZXIubWVzc2FnZXMuaW46CisKIDIwMjEtMDktMjEgIEJKIEJ1cmcgIDxi
YnVyZ0BhcHBsZS5jb20+CiAKICAgICAgICAgW0NvY29hXSBiYWNrcG9ydCBzaG93Q29uc29sZSgp
IGFuZCBzaG93UmVzb3VyY2VzKCkgZm9yIFJlbW90ZVdlYkluc3BlY3RvclVJCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9XZWJJbnNw
ZWN0b3JFeHRlbnNpb25Db250cm9sbGVyLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvQ29udHJvbGxlcnMvV2ViSW5zcGVjdG9yRXh0ZW5zaW9uQ29udHJvbGxlci5qcwpp
bmRleCA0NmUzNzc0ZDA1ZGJkZWE0MDRmNjc0Zjg4MzY4NDUxYjY0NzQ4ZjkwLi5lNTQwMzdjODFh
MGQ4YjIwMTMyMGYzYWFkM2JlNGY1ZjliYjdhNjI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9XZWJJbnNwZWN0b3JFeHRlbnNpb25D
b250cm9sbGVyLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Nv
bnRyb2xsZXJzL1dlYkluc3BlY3RvckV4dGVuc2lvbkNvbnRyb2xsZXIuanMKQEAgLTE1MSw4ICsx
NTEsMTkgQEAgV0kuV2ViSW5zcGVjdG9yRXh0ZW5zaW9uQ29udHJvbGxlciA9IGNsYXNzIFdlYklu
c3BlY3RvckV4dGVuc2lvbkNvbnRyb2xsZXIgZXh0ZW4KICAgICAgICAgICAgIHJldHVybiBXSS5X
ZWJJbnNwZWN0b3JFeHRlbnNpb24uRXJyb3JDb2RlLkludmFsaWRSZXF1ZXN0OwogICAgICAgICAK
ICAgICAgICAgcmV0dXJuIHRhcmdldC5QYWdlQWdlbnQucmVsb2FkLmludm9rZSh7aWdub3JlQ2Fj
aGV9KTsKLSAgICAgICAgCi0gICAgICAgIAorICAgIH0KKyAgICAKKyAgICBzaG93RXh0ZW5zaW9u
VGFiKGV4dGVuc2lvblRhYklEKQorICAgIHsKKyAgICAgICAgbGV0IHRhYkNvbnRlbnRWaWV3ID0g
dGhpcy5fZXh0ZW5zaW9uVGFiQ29udGVudFZpZXdGb3JFeHRlbnNpb25UYWJJRE1hcC5nZXQoZXh0
ZW5zaW9uVGFiSUQpOworICAgICAgICBpZiAoIXRhYkNvbnRlbnRWaWV3KSB7CisgICAgICAgICAg
ICBXSS5yZXBvcnRJbnRlcm5hbEVycm9yKCJVbmFibGUgdG8gc2hvdyBleHRlbnNpb24gdGFiIHdp
dGggdW5rbm93biBJRDogIiArIGV4dGVuc2lvblRhYklEKTsKKyAgICAgICAgICAgIHJldHVybiBX
SS5XZWJJbnNwZWN0b3JFeHRlbnNpb24uRXJyb3JDb2RlLkludmFsaWRSZXF1ZXN0OworICAgICAg
ICB9CisKKyAgICAgICAgV0kudGFiQnJvd3Nlci5zaG93VGFiRm9yQ29udGVudFZpZXcodGFiQ29u
dGVudFZpZXcsIHsKKyAgICAgICAgICAgIGluaXRpYXRvckhpbnQ6IFdJLlRhYkJyb3dzZXIuVGFi
TmF2aWdhdGlvbkluaXRpYXRvci5Gcm9udGVuZEFQSSwKKyAgICAgICAgfSk7CiAgICAgfQogfTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvUHJvdG9j
b2wvSW5zcGVjdG9yRnJvbnRlbmRBUEkuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9Qcm90b2NvbC9JbnNwZWN0b3JGcm9udGVuZEFQSS5qcwppbmRleCBhZjJjMTg5Yjk5
OGYzZGU2NWVkY2NiMTYxZDgxZjYzYjY3Y2I0YjUyLi40MjhjNTQzM2Y2YzRkY2EwODgwOTI2OGUy
MDZjMTM4NmY1OGY3YmI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9Qcm90b2NvbC9JbnNwZWN0b3JGcm9udGVuZEFQSS5qcworKysgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Qcm90b2NvbC9JbnNwZWN0b3JGcm9udGVuZEFQSS5q
cwpAQCAtMjMwLDQgKzIzMCwxMCBAQCBJbnNwZWN0b3JGcm9udGVuZEFQSSA9IHsKICAgICB7CiAg
ICAgICAgIHJldHVybiBXSS5zaGFyZWRBcHAuZXh0ZW5zaW9uQ29udHJvbGxlci5yZWxvYWRGb3JF
eHRlbnNpb24oZXh0ZW5zaW9uSUQsIHtpZ25vcmVDYWNoZSwgdXNlckFnZW50LCBpbmplY3RlZFNj
cmlwdH0pOwogICAgIH0sCisKKyAgICAvLyBSZXR1cm5zIGEgV0kuV2ViSW5zcGVjdG9yRXh0ZW5z
aW9uLkVycm9yQ29kZSBpZiBhbiBlcnJvciBvY2N1cnJlZCwgb3RoZXJ3aXNlIG5vdGhpbmcuCisg
ICAgc2hvd0V4dGVuc2lvblRhYihleHRlbnNpb25UYWJJRCkKKyAgICB7CisgICAgICAgIHJldHVy
biBXSS5zaGFyZWRBcHAuZXh0ZW5zaW9uQ29udHJvbGxlci5zaG93RXh0ZW5zaW9uVGFiKGV4dGVu
c2lvblRhYklEKTsKKyAgICB9CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL19XS0luc3BlY3Rvci5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9fV0tJbnNwZWN0b3IubW0KaW5kZXggZDY5NWYxZmZmYzM4YWQxODk1NGRmNzU0NzJh
YjNmNDc5ZDZhNjQzYi4uMTE4NGIyYTk1OTI3MzdjOGVlNGJmYWMxZTkzZDhhY2Q5NzBmYTZkZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0luc3BlY3Rv
ci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9y
Lm1tCkBAIC0yNzAsNCArMjcwLDI0IEBAIC0gKHZvaWQpdW5yZWdpc3RlckV4dGVuc2lvbjooX1dL
SW5zcGVjdG9yRXh0ZW5zaW9uICopZXh0ZW5zaW9uIGNvbXBsZXRpb25IYW5kbGVyCiAjZW5kaWYK
IH0KIAorLSAodm9pZClzaG93RXh0ZW5zaW9uVGFiV2l0aElkZW50aWZpZXI6KE5TU3RyaW5nICop
ZXh0ZW5zaW9uVGFiSWRlbnRpZmllciBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCheKShOU0Vycm9y
ICopKWNvbXBsZXRpb25IYW5kbGVyCit7CisjaWYgRU5BQkxFKElOU1BFQ1RPUl9FWFRFTlNJT05T
KQorICAgIC8vIEl0IGlzIGFuIGVycm9yIHRvIGNhbGwgdGhpcyBtZXRob2QgcHJpb3IgdG8gY3Jl
YXRpbmcgYSBmcm9udGVuZCAoaS5lLiwgd2l0aCAtY29ubmVjdCBvciAtc2hvdykuCisgICAgaWYg
KCFfaW5zcGVjdG9yLT5leHRlbnNpb25Db250cm9sbGVyKCkpIHsKKyAgICAgICAgY29tcGxldGlv
bkhhbmRsZXIoW05TRXJyb3IgZXJyb3JXaXRoRG9tYWluOldLRXJyb3JEb21haW4gY29kZTpXS0Vy
cm9yVW5rbm93biB1c2VySW5mbzpAeyBOU0xvY2FsaXplZEZhaWx1cmVSZWFzb25FcnJvcktleTog
SW5zcGVjdG9yOjpleHRlbnNpb25FcnJvclRvU3RyaW5nKEluc3BlY3Rvcjo6RXh0ZW5zaW9uRXJy
b3I6OkludmFsaWRSZXF1ZXN0KX1dKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIF9p
bnNwZWN0b3ItPmV4dGVuc2lvbkNvbnRyb2xsZXIoKS0+c2hvd0V4dGVuc2lvblRhYihleHRlbnNp
b25UYWJJZGVudGlmaWVyLCBbcHJvdGVjdGVkU2VsZiA9IHJldGFpblB0cihzZWxmKSwgY2FwdHVy
ZWRCbG9jayA9IG1ha2VCbG9ja1B0cihjb21wbGV0aW9uSGFuZGxlcildIChFeHBlY3RlZDxib29s
LCBJbnNwZWN0b3I6OkV4dGVuc2lvbkVycm9yPiByZXN1bHQpIG11dGFibGUgeworICAgICAgICBp
ZiAoIXJlc3VsdCkgeworICAgICAgICAgICAgY2FwdHVyZWRCbG9jayhbTlNFcnJvciBlcnJvcldp
dGhEb21haW46V0tFcnJvckRvbWFpbiBjb2RlOldLRXJyb3JVbmtub3duIHVzZXJJbmZvOkB7IE5T
TG9jYWxpemVkRmFpbHVyZVJlYXNvbkVycm9yS2V5OiBJbnNwZWN0b3I6OmV4dGVuc2lvbkVycm9y
VG9TdHJpbmcocmVzdWx0LmVycm9yKCkpfV0pOworICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICB9CisKKyAgICAgICAgY2FwdHVyZWRCbG9jayhuaWwpOworICAgIH0pOworI2VuZGlmCit9CisK
IEBlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJ
bnNwZWN0b3JFeHRlbnNpb25Ib3N0LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvX1dLSW5zcGVjdG9yRXh0ZW5zaW9uSG9zdC5oCmluZGV4IDNiOGY1MWU3MWNmNjYyNWJmOWM2
NThiNjc1NzEyNzYxY2Q1MDgwODkuLmU0ODhhZWNkMzJkNGFmNDA2YmMzZDkyNTE3MTQ4MWRkMDNl
ZTFmMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJ
bnNwZWN0b3JFeHRlbnNpb25Ib3N0LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL19XS0luc3BlY3RvckV4dGVuc2lvbkhvc3QuaApAQCAtNTMsNiArNTMsMTUgQEAgTlNf
QVNTVU1FX05PTk5VTExfQkVHSU4KICAqLwogLSAodm9pZCl1bnJlZ2lzdGVyRXh0ZW5zaW9uOihf
V0tJbnNwZWN0b3JFeHRlbnNpb24gKilleHRlbnNpb24gY29tcGxldGlvbkhhbmRsZXI6KHZvaWQo
XikoTlNFcnJvciAqIF9OdWxsYWJsZSkpY29tcGxldGlvbkhhbmRsZXI7CiAKKy8qKgorICogQGFi
c3RyYWN0IE9wZW5zIHRoZSBzcGVjaWZpZWQgZXh0ZW5zaW9uIHRhYiBpbiB0aGUgYXNzb2NpYXRl
ZCBXZWIgSW5zcGVjdG9yLgorICogVGhpcyB3aWxsIG9wZW4gdGhlIGFzc29jaWF0ZWQgV2ViIElu
c3BlY3RvciBpZiBpdCBpcyBub3QgYWxyZWFkeSBvcGVuLgorICogQHBhcmFtIGV4dGVuc2lvblRh
YklkZW50aWZpZXIgQW4gaWRlbnRpZmllciBmb3IgYW4gZXh0ZW5zaW9uIHRhYiBjcmVhdGVkIHVz
aW5nIFdLSW5zcGVjdG9yRXh0ZW5zaW9uIG1ldGhvZHMuCisgKiBAcGFyYW0gY29tcGxldGlvbkhh
bmRsZXIgVGhlIGNvbXBsZXRpb24gaGFuZGxlciB0byBiZSBjYWxsZWQgd2hlbiB0aGUgcmVxdWVz
dCB0byBzaG93IHRoZSB0YWIgc3VjY2VlZHMgb3IgZmFpbHMuCisgKiBAZGlzY3Vzc2lvbiBUaGlz
IG1ldGhvZCBoYXMgbm8gZWZmZWN0IGlmIHRoZSAgZXh0ZW5zaW9uVGFiSWRlbnRpZmllciBpcyBp
bnZhbGlkLgorICovCistICh2b2lkKXNob3dFeHRlbnNpb25UYWJXaXRoSWRlbnRpZmllcjooTlNT
dHJpbmcgKilleHRlbnNpb25UYWJJZGVudGlmaWVyIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkKF4p
KE5TRXJyb3IgKiBfTnVsbGFibGUpKWNvbXBsZXRpb25IYW5kbGVyOworCiAvKioKICAqIEBhYnN0
cmFjdCBUaGUgd2ViIHZpZXcgdGhhdCBpcyB1c2VkIHRvIGhvc3QgZXh0ZW5zaW9uIHRhYnMgY3Jl
YXRlZCB2aWEgX1dLSW5zcGVjdG9yRXh0ZW5zaW9uLgogICogQGRpc2N1c3Npb24gQnJvd3Npbmcg
Y29udGV4dHMgZm9yIGV4dGVuc2lvbiB0YWJzIGFyZSBsb2FkZWQgaW4gc3ViZnJhbWVzIG9mIHRo
aXMgd2ViIHZpZXcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvX1dLUmVtb3RlV2ViSW5zcGVjdG9yVmlld0NvbnRyb2xsZXIubW0gYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUmVtb3RlV2ViSW5zcGVjdG9yVmlld0NvbnRyb2xsZXIu
bW0KaW5kZXggMTIyYzgyODRiYmU0N2E0Mzc5OGU2MDQzYjUzMTEzZTE4ZjA3ZjAxYS4uMGQzZDhk
M2U2ZTcwMzQyYTQ5OTM4OWVhNWZhNWI1Y2FkNzg3NzAxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1JlbW90ZVdlYkluc3BlY3RvclZpZXdDb250cm9s
bGVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tSZW1vdGVX
ZWJJbnNwZWN0b3JWaWV3Q29udHJvbGxlci5tbQpAQCAtMjE3LDYgKzIxNywyNiBAQCAtICh2b2lk
KXNob3dSZXNvdXJjZXMKICAgICBtX3JlbW90ZUluc3BlY3RvclByb3h5LT5zaG93UmVzb3VyY2Vz
KCk7CiB9CiAKKy0gKHZvaWQpc2hvd0V4dGVuc2lvblRhYldpdGhJZGVudGlmaWVyOihOU1N0cmlu
ZyAqKWV4dGVuc2lvblRhYklkZW50aWZpZXIgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQoXikoTlNF
cnJvciAqIF9OdWxsYWJsZSkpY29tcGxldGlvbkhhbmRsZXIKK3sKKyNpZiBFTkFCTEUoSU5TUEVD
VE9SX0VYVEVOU0lPTlMpCisgICAgLy8gSXQgaXMgYW4gZXJyb3IgdG8gY2FsbCB0aGlzIG1ldGhv
ZCBwcmlvciB0byBjcmVhdGluZyBhIGZyb250ZW5kIChpLmUuLCB3aXRoIC1jb25uZWN0IG9yIC1z
aG93KS4KKyAgICBpZiAoIW1fcmVtb3RlSW5zcGVjdG9yUHJveHktPmV4dGVuc2lvbkNvbnRyb2xs
ZXIoKSkgeworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihbTlNFcnJvciBlcnJvcldpdGhEb21h
aW46V0tFcnJvckRvbWFpbiBjb2RlOldLRXJyb3JVbmtub3duIHVzZXJJbmZvOkB7IE5TTG9jYWxp
emVkRmFpbHVyZVJlYXNvbkVycm9yS2V5OiBJbnNwZWN0b3I6OmV4dGVuc2lvbkVycm9yVG9TdHJp
bmcoSW5zcGVjdG9yOjpFeHRlbnNpb25FcnJvcjo6SW52YWxpZFJlcXVlc3QpfV0pOworICAgICAg
ICByZXR1cm47CisgICAgfQorCisgICAgbV9yZW1vdGVJbnNwZWN0b3JQcm94eS0+ZXh0ZW5zaW9u
Q29udHJvbGxlcigpLT5zaG93RXh0ZW5zaW9uVGFiKGV4dGVuc2lvblRhYklkZW50aWZpZXIsIFtw
cm90ZWN0ZWRTZWxmID0gcmV0YWluUHRyKHNlbGYpLCBjYXB0dXJlZEJsb2NrID0gbWFrZUJsb2Nr
UHRyKGNvbXBsZXRpb25IYW5kbGVyKV0gKEV4cGVjdGVkPGJvb2wsIEluc3BlY3Rvcjo6RXh0ZW5z
aW9uRXJyb3I+IHJlc3VsdCkgbXV0YWJsZSB7CisgICAgICAgIGlmICghcmVzdWx0KSB7CisgICAg
ICAgICAgICBjYXB0dXJlZEJsb2NrKFtOU0Vycm9yIGVycm9yV2l0aERvbWFpbjpXS0Vycm9yRG9t
YWluIGNvZGU6V0tFcnJvclVua25vd24gdXNlckluZm86QHsgTlNMb2NhbGl6ZWRGYWlsdXJlUmVh
c29uRXJyb3JLZXk6IEluc3BlY3Rvcjo6ZXh0ZW5zaW9uRXJyb3JUb1N0cmluZyhyZXN1bHQuZXJy
b3IoKSl9XSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBjYXB0
dXJlZEJsb2NrKG5pbCk7CisgICAgfSk7CisjZW5kaWYKK30KKwogQGVuZAogCiBOU19BU1NVTUVf
Tk9OTlVMTF9FTkQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rv
ci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVy
UHJveHkuY3BwCmluZGV4IDIzNTEyYWYwZjFkNWVhZjFmZWE4ZWZjM2I4NWM5NDJjNmJmNTM2ZmYu
LjJjOWQ1NWJlMWE0NmQzMjJiZGI0Njc4ODhhNzc1ZTA1YjdjMzg0OTkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNv
bnRyb2xsZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9y
L1dlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlclByb3h5LmNwcApAQCAtMTg3LDYgKzE4
NywxOSBAQCB2b2lkIFdlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlclByb3h5OjpyZWxv
YWRGb3JFeHRlbnNpb24oY29uc3QgSW5zcGVjdG9yOgogICAgIH0pOwogfQogCit2b2lkIFdlYklu
c3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlclByb3h5OjpzaG93RXh0ZW5zaW9uVGFiKGNvbnN0
IEluc3BlY3Rvcjo6RXh0ZW5zaW9uVGFiSUQmIGV4dGVuc2lvblRhYklkZW50aWZpZXIsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0ZWQ8Ym9vbCwgSW5zcGVjdG9yOjpFeHRlbnNpb25FcnJv
cj4pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIHdoZW5Gcm9udGVuZEhhc0xvYWRlZChb
d2Vha1RoaXMgPSBtYWtlV2Vha1B0cih0aGlzKSwgZXh0ZW5zaW9uVGFiSWRlbnRpZmllciwgY29t
cGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0gKCkgbXV0YWJsZSB7
CisgICAgICAgIGlmICghd2Vha1RoaXMgfHwgIXdlYWtUaGlzLT5tX2luc3BlY3RvclBhZ2UpIHsK
KyAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKG1ha2VVbmV4cGVjdGVkKEluc3BlY3Rvcjo6
RXh0ZW5zaW9uRXJyb3I6OkNvbnRleHREZXN0cm95ZWQpKTsKKyAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgfQorCisgICAgICAgIHdlYWtUaGlzLT5tX2luc3BlY3RvclBhZ2UtPnNlbmRXaXRo
QXN5bmNSZXBseShNZXNzYWdlczo6V2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyOjpT
aG93RXh0ZW5zaW9uVGFiIHsgZXh0ZW5zaW9uVGFiSWRlbnRpZmllciB9LCBXVEZNb3ZlKGNvbXBs
ZXRpb25IYW5kbGVyKSk7CisgICAgfSk7Cit9CisKKwogLy8gV2ViSW5zcGVjdG9yVUlFeHRlbnNp
b25Db250cm9sbGVyUHJveHkgSVBDIG1lc3NhZ2VzLgogCiB2b2lkIFdlYkluc3BlY3RvclVJRXh0
ZW5zaW9uQ29udHJvbGxlclByb3h5OjpkaWRTaG93RXh0ZW5zaW9uVGFiKGNvbnN0IEluc3BlY3Rv
cjo6RXh0ZW5zaW9uSUQmIGV4dGVuc2lvbklELCBjb25zdCBJbnNwZWN0b3I6OkV4dGVuc2lvblRh
YklEJiBleHRlbnNpb25UYWJJRCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXJQcm94eS5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29u
dHJvbGxlclByb3h5LmgKaW5kZXggZjI5NDc4MTU0NjVmYTA1ZTMzZjAwZWQ1ZmU2NDNhMjg5NzBk
ZGE5Yi4uY2EyM2VjN2FmYjJlMWViY2Y5ODU3NGZlNzllOTQwZDg0NmEzMzE3YSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJRXh0ZW5z
aW9uQ29udHJvbGxlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVj
dG9yL1dlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlclByb3h5LmgKQEAgLTYwLDYgKzYw
LDcgQEAgcHVibGljOgogICAgIHZvaWQgY3JlYXRlVGFiRm9yRXh0ZW5zaW9uKGNvbnN0IEluc3Bl
Y3Rvcjo6RXh0ZW5zaW9uSUQmLCBjb25zdCBTdHJpbmcmIHRhYk5hbWUsIGNvbnN0IFVSTCYgdGFi
SWNvblVSTCwgY29uc3QgVVJMJiBzb3VyY2VVUkwsIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9p
ZChFeHBlY3RlZDxJbnNwZWN0b3I6OkV4dGVuc2lvblRhYklELCBJbnNwZWN0b3I6OkV4dGVuc2lv
bkVycm9yPik+JiYpOwogICAgIHZvaWQgZXZhbHVhdGVTY3JpcHRGb3JFeHRlbnNpb24oY29uc3Qg
SW5zcGVjdG9yOjpFeHRlbnNpb25JRCYsIGNvbnN0IFN0cmluZyYgc2NyaXB0U291cmNlLCBjb25z
dCBzdGQ6Om9wdGlvbmFsPFVSTD4mIGZyYW1lVVJMLCBjb25zdCBzdGQ6Om9wdGlvbmFsPFVSTD4m
IGNvbnRleHRTZWN1cml0eU9yaWdpbiwgY29uc3Qgc3RkOjpvcHRpb25hbDxib29sPiYgdXNlQ29u
dGVudFNjcmlwdENvbnRleHQsIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZChJbnNwZWN0b3I6
OkV4dGVuc2lvbkV2YWx1YXRpb25SZXN1bHQpPiYmKTsKICAgICB2b2lkIHJlbG9hZEZvckV4dGVu
c2lvbihjb25zdCBJbnNwZWN0b3I6OkV4dGVuc2lvbklEJiwgY29uc3Qgc3RkOjpvcHRpb25hbDxi
b29sPiYgaWdub3JlQ2FjaGUsIGNvbnN0IHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiYgdXNlckFnZW50
LCBjb25zdCBzdGQ6Om9wdGlvbmFsPFN0cmluZz4mIGluamVjdGVkU2NyaXB0LCBXVEY6OkNvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoSW5zcGVjdG9yOjpFeHRlbnNpb25FdmFsdWF0aW9uUmVzdWx0KT4m
Jik7CisgICAgdm9pZCBzaG93RXh0ZW5zaW9uVGFiKGNvbnN0IEluc3BlY3Rvcjo6RXh0ZW5zaW9u
VGFiSUQmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4cGVjdGVkPGJvb2wsIEluc3BlY3Rvcjo6
RXh0ZW5zaW9uRXJyb3I+KT4mJik7CiAKICAgICAvLyBXZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNv
bnRyb2xsZXJQcm94eSBJUEMgbWVzc2FnZXMuCiAgICAgdm9pZCBkaWRTaG93RXh0ZW5zaW9uVGFi
KGNvbnN0IEluc3BlY3Rvcjo6RXh0ZW5zaW9uSUQmLCBjb25zdCBJbnNwZWN0b3I6OkV4dGVuc2lv
blRhYklEJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9y
L1dlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlci5jcHAK
aW5kZXggMTczYjIxODQyZDFiZmQ3MmMxZDE3MGNiMjlhZTk4ZGE3OGI1YzBiMy4uOTA5MGIxNmE3
OTU4ZTRiYzgxMmUwMmQwMmNkOTQ1MDkzY2Q1ZjUyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9y
VUlFeHRlbnNpb25Db250cm9sbGVyLmNwcApAQCAtMzI2LDYgKzMyNiwzOSBAQCB2b2lkIFdlYklu
c3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlcjo6cmVsb2FkRm9yRXh0ZW5zaW9uKGNvbnN0IElu
c3BlY3Rvcjo6RXh0ZQogICAgIH0pOwogfQogCit2b2lkIFdlYkluc3BlY3RvclVJRXh0ZW5zaW9u
Q29udHJvbGxlcjo6c2hvd0V4dGVuc2lvblRhYihjb25zdCBJbnNwZWN0b3I6OkV4dGVuc2lvblRh
YklEJiBleHRlbnNpb25UYWJJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4cGVj
dGVkPGJvb2wsIEluc3BlY3Rvcjo6RXh0ZW5zaW9uRXJyb3I+KT4mJiBjb21wbGV0aW9uSGFuZGxl
cikKK3sKKyAgICBpZiAoIW1fZnJvbnRlbmRDbGllbnQpIHsKKyAgICAgICAgY29tcGxldGlvbkhh
bmRsZXIobWFrZVVuZXhwZWN0ZWQoSW5zcGVjdG9yOjpFeHRlbnNpb25FcnJvcjo6SW52YWxpZFJl
cXVlc3QpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIFZlY3RvcjxSZWY8SlNPTjo6
VmFsdWU+PiBhcmd1bWVudHMgeworICAgICAgICBKU09OOjpWYWx1ZTo6Y3JlYXRlKGV4dGVuc2lv
blRhYklkZW50aWZpZXIpLAorICAgIH07CisKKyAgICBtX2Zyb250ZW5kQ2xpZW50LT5mcm9udGVu
ZEFQSURpc3BhdGNoZXIoKS5kaXNwYXRjaENvbW1hbmRXaXRoUmVzdWx0QXN5bmMoInNob3dFeHRl
bnNpb25UYWIiX3MsIFdURk1vdmUoYXJndW1lbnRzKSwgW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIo
dGhpcyksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKElu
c3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlcjo6RXZhbHVhdGlvblJlc3VsdCYmIHJlc3VsdCkg
bXV0YWJsZSB7CisgICAgICAgIGlmICghd2Vha1RoaXMpIHsKKyAgICAgICAgICAgIGNvbXBsZXRp
b25IYW5kbGVyKG1ha2VVbmV4cGVjdGVkKEluc3BlY3Rvcjo6RXh0ZW5zaW9uRXJyb3I6OkNvbnRl
eHREZXN0cm95ZWQpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAg
IGF1dG8qIGZyb250ZW5kR2xvYmFsT2JqZWN0ID0gd2Vha1RoaXMtPm1fZnJvbnRlbmRDbGllbnQt
PmZyb250ZW5kQVBJRGlzcGF0Y2hlcigpLmZyb250ZW5kR2xvYmFsT2JqZWN0KCk7CisgICAgICAg
IGlmICghZnJvbnRlbmRHbG9iYWxPYmplY3QpIHsKKyAgICAgICAgICAgIGNvbXBsZXRpb25IYW5k
bGVyKG1ha2VVbmV4cGVjdGVkKEluc3BlY3Rvcjo6RXh0ZW5zaW9uRXJyb3I6OkNvbnRleHREZXN0
cm95ZWQpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChh
dXRvIHBhcnNlZEVycm9yID0gd2Vha1RoaXMtPnBhcnNlRXh0ZW5zaW9uRXJyb3JGcm9tRXZhbHVh
dGlvblJlc3VsdChyZXN1bHQpKSB7CisgICAgICAgICAgICBMT0coSW5zcGVjdG9yLCAiSW50ZXJu
YWwgZXJyb3IgZW5jb3VudGVyZWQgd2hpbGUgZXZhbHVhdGluZyB1cG9uIHRoZSBmcm9udGVuZDog
JXMiLCBJbnNwZWN0b3I6OmV4dGVuc2lvbkVycm9yVG9TdHJpbmcoKnBhcnNlZEVycm9yKS51dGY4
KCkuZGF0YSgpKTsKKyAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKG1ha2VVbmV4cGVjdGVk
KCpwYXJzZWRFcnJvcikpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAg
ICAgY29tcGxldGlvbkhhbmRsZXIodHJ1ZSk7CisgICAgfSk7Cit9CisKIHZvaWQgV2ViSW5zcGVj
dG9yVUlFeHRlbnNpb25Db250cm9sbGVyOjpkaWRTaG93RXh0ZW5zaW9uVGFiKGNvbnN0IEluc3Bl
Y3Rvcjo6RXh0ZW5zaW9uSUQmIGV4dGVuc2lvbklELCBjb25zdCBJbnNwZWN0b3I6OkV4dGVuc2lv
blRhYklEJiBleHRlbnNpb25UYWJJRCkKIHsKICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5w
YXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJJbnNwZWN0b3JVSUV4
dGVuc2lvbkNvbnRyb2xsZXJQcm94eTo6RGlkU2hvd0V4dGVuc2lvblRhYiB7IGV4dGVuc2lvbklE
LCBleHRlbnNpb25UYWJJRCB9LCBtX2luc3BlY3RvclBhZ2VJZGVudGlmaWVyKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUlFeHRl
bnNpb25Db250cm9sbGVyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1dl
Ykluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlci5oCmluZGV4IDE4ZWE4ZmZjMmFmODAyM2Ji
MjljN2NkYTE5NDRmYmU1NWQwNjNmZTEuLmMzNjEyYWRkMDA1OWQ3NGViNDdhOTFlNWRlMzQ1NzQx
MjQ4ZDBmNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3Iv
V2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXIuaApA
QCAtNjgsMTIgKzY4LDExIEBAIHB1YmxpYzoKICAgICB2b2lkIGNyZWF0ZVRhYkZvckV4dGVuc2lv
bihjb25zdCBJbnNwZWN0b3I6OkV4dGVuc2lvbklEJiwgY29uc3QgU3RyaW5nJiB0YWJOYW1lLCBj
b25zdCBVUkwmIHRhYkljb25VUkwsIGNvbnN0IFVSTCYgc291cmNlVVJMLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKEV4cGVjdGVkPEluc3BlY3Rvcjo6RXh0ZW5zaW9uVGFiSUQsIEluc3BlY3Rvcjo6
RXh0ZW5zaW9uRXJyb3I+KT4mJik7CiAgICAgdm9pZCBldmFsdWF0ZVNjcmlwdEZvckV4dGVuc2lv
bihjb25zdCBJbnNwZWN0b3I6OkV4dGVuc2lvbklEJiwgY29uc3QgU3RyaW5nJiBzY3JpcHRTb3Vy
Y2UsIGNvbnN0IHN0ZDo6b3B0aW9uYWw8VVJMPiYgZnJhbWVVUkwsIGNvbnN0IHN0ZDo6b3B0aW9u
YWw8VVJMPiYgY29udGV4dFNlY3VyaXR5T3JpZ2luLCBjb25zdCBzdGQ6Om9wdGlvbmFsPGJvb2w+
JiB1c2VDb250ZW50U2NyaXB0Q29udGV4dCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBJ
UEM6OkRhdGFSZWZlcmVuY2UmLCBjb25zdCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkV4Y2VwdGlv
bkRldGFpbHM+JiwgY29uc3Qgc3RkOjpvcHRpb25hbDxJbnNwZWN0b3I6OkV4dGVuc2lvbkVycm9y
PiYpPiYmKTsKICAgICB2b2lkIHJlbG9hZEZvckV4dGVuc2lvbihjb25zdCBJbnNwZWN0b3I6OkV4
dGVuc2lvbklEJiwgY29uc3Qgc3RkOjpvcHRpb25hbDxib29sPiYgaWdub3JlQ2FjaGUsIGNvbnN0
IHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiYgdXNlckFnZW50LCBjb25zdCBzdGQ6Om9wdGlvbmFsPFN0
cmluZz4mIGluamVjdGVkU2NyaXB0LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IHN0ZDo6
b3B0aW9uYWw8SW5zcGVjdG9yOjpFeHRlbnNpb25FcnJvcj4mKT4mJik7CisgICAgdm9pZCBzaG93
RXh0ZW5zaW9uVGFiKGNvbnN0IEluc3BlY3Rvcjo6RXh0ZW5zaW9uVGFiSUQmLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKEV4cGVjdGVkPGJvb2wsIEluc3BlY3Rvcjo6RXh0ZW5zaW9uRXJyb3I+KT4m
Jik7CiAKICAgICAvLyBDYWxsYmFja3MgZnJvbSB0aGUgZnJvbnRlbmQuCi0jaWYgRU5BQkxFKElO
U1BFQ1RPUl9FWFRFTlNJT05TKQogICAgIHZvaWQgZGlkU2hvd0V4dGVuc2lvblRhYihjb25zdCBJ
bnNwZWN0b3I6OkV4dGVuc2lvbklEJiwgY29uc3QgSW5zcGVjdG9yOjpFeHRlbnNpb25UYWJJRCYp
OwogICAgIHZvaWQgZGlkSGlkZUV4dGVuc2lvblRhYihjb25zdCBJbnNwZWN0b3I6OkV4dGVuc2lv
bklEJiwgY29uc3QgSW5zcGVjdG9yOjpFeHRlbnNpb25UYWJJRCYpOwotI2VuZGlmCiAKIHByaXZh
dGU6CiAgICAgSlNDOjpKU09iamVjdCogdW53cmFwRXZhbHVhdGlvblJlc3VsdEFzT2JqZWN0KFdl
YkNvcmU6Okluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlcjo6RXZhbHVhdGlvblJlc3VsdCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3Bl
Y3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyLm1lc3Nh
Z2VzLmluCmluZGV4IDk0ODE5ZmIwOWIwMTZkMTNmZTlmYTIwM2JjMDgzMDJmNjY0ZmM4OGUuLjZh
MDBlY2ZmZTU4MzBmZjE2NDVlOTAxN2JjZTZkNzYxZjI3ODcyMWMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250
cm9sbGVyLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0
b3IvV2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyLm1lc3NhZ2VzLmluCkBAIC0yOSw2
ICsyOSw3IEBAIG1lc3NhZ2VzIC0+IFdlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlciBO
b3RSZWZDb3VudGVkIHsKICAgICBDcmVhdGVUYWJGb3JFeHRlbnNpb24oU3RyaW5nIGV4dGVuc2lv
bklELCBTdHJpbmcgdGFiTmFtZSwgVVJMIHRhYkljb25VUkwsIFVSTCBzb3VyY2VVUkwpIC0+IChF
eHBlY3RlZDxTdHJpbmcsIEluc3BlY3Rvcjo6RXh0ZW5zaW9uRXJyb3I+IHJlc3VsdCkgQXN5bmMK
ICAgICBFdmFsdWF0ZVNjcmlwdEZvckV4dGVuc2lvbihTdHJpbmcgZXh0ZW5zaW9uSUQsIFN0cmlu
ZyBzY3JpcHRTb3VyY2UsIHN0ZDo6b3B0aW9uYWw8VVJMPiBmcmFtZVVSTCwgc3RkOjpvcHRpb25h
bDxVUkw+IGNvbnRleHRTZWN1cml0eU9yaWdpbiwgc3RkOjpvcHRpb25hbDxib29sPiB1c2VDb250
ZW50U2NyaXB0Q29udGV4dCkgLT4gKElQQzo6RGF0YVJlZmVyZW5jZSByZXN1bHREYXRhLCBzdGQ6
Om9wdGlvbmFsPFdlYkNvcmU6OkV4Y2VwdGlvbkRldGFpbHM+IGRldGFpbHMsIHN0ZDo6b3B0aW9u
YWw8SW5zcGVjdG9yOjpFeHRlbnNpb25FcnJvcj4gZXJyb3IpIEFzeW5jCiAgICAgUmVsb2FkRm9y
RXh0ZW5zaW9uKFN0cmluZyBleHRlbnNpb25JRCwgc3RkOjpvcHRpb25hbDxib29sPiBpZ25vcmVD
YWNoZSwgc3RkOjpvcHRpb25hbDxTdHJpbmc+IHVzZXJBZ2VudCwgc3RkOjpvcHRpb25hbDxTdHJp
bmc+IGluamVjdGVkU2NyaXB0KSAtPiAoc3RkOjpvcHRpb25hbDxJbnNwZWN0b3I6OkV4dGVuc2lv
bkVycm9yPiBlcnJvcikgQXN5bmMKKyAgICBTaG93RXh0ZW5zaW9uVGFiKFN0cmluZyBleHRlbnNp
b25UYWJJZGVudGlmaWVyKSAtPiAoRXhwZWN0ZWQ8Ym9vbCwgSW5zcGVjdG9yOjpFeHRlbnNpb25F
cnJvcj4gcmVzdWx0KSBBc3luYwogfQogCiAjZW5kaWYgLy8gRU5BQkxFKElOU1BFQ1RPUl9FWFRF
TlNJT05TKQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmlu
ZGV4IDY5NTNmMzBiMzdlYjIwZGMzNmJmYzQ1ZmIzY2M4NjhiYmEyZDgwMTYuLjJkMDJhNzJjNjAx
NmU0ZTM0MDIzZjEyNGU1ZmVmOGEzYjg3Mjc4NzYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxv
ZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAyMS0wOS0yMSAgQkog
QnVyZyAgPGJidXJnQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIEFkZCBTUEkgdG8gc2Vs
ZWN0IGEgdGFiIGNyZWF0ZWQgYnkgX1dLSW5zcGVjdG9yRXh0ZW5zaW9uCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzA1ODAKKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzgzMzcyODUxPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIENyZWF0ZSBhIG5ldyB0ZXN0IGZpbGUgZm9yIF9XS0luc3BlY3RvckV4dGVu
c2lvbkRlbGVnYXRlLiBBZGQgYQorICAgICAgICBuZXcgdGVzdCBjYXNlIHRoYXQgZXhlcmNpc2Vz
IGNyZWF0aW5nIGFuIGV4dGVuc2lvbiB0YWIsIHNob3dpbmcgYW4KKyAgICAgICAgZXh0ZW5zaW9u
IHRhYiwgYW5kIHVzZXMgZGVsZWdhdGUgY2FsbGJhY2tzIGZvciBkaWRTaG93VGFiL2RpZEhpZGVU
YWIuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L0luc3BlY3RvckV4dGVuc2lvbi1UYWJJY29uLTMweDMwLnBuZzogQWRkZWQuCisgICAgICAgICog
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9JbnNwZWN0b3JFeHRlbnNpb24tYmFzaWMt
dGFiLmh0bWw6IEFkZGVkLgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvV0tJbnNwZWN0b3JFeHRlbnNpb25EZWxlZ2F0ZS5tbTogQWRkZWQuCisgICAgICAgIChyZXNl
dEdsb2JhbFN0YXRlKToKKyAgICAgICAgKC1bVUlEZWxlZ2F0ZUZvclRlc3RpbmdJbnNwZWN0b3JF
eHRlbnNpb25EZWxlZ2F0ZSBfd2ViVmlldzpkaWRBdHRhY2hMb2NhbEluc3BlY3RvcjpdKToKKyAg
ICAgICAgKC1bSW5zcGVjdG9yRXh0ZW5zaW9uRGVsZWdhdGVGb3JUZXN0aW5nIGluc3BlY3RvckV4
dGVuc2lvbjpkaWRTaG93VGFiV2l0aElkZW50aWZpZXI6XSk6CisgICAgICAgICgtW0luc3BlY3Rv
ckV4dGVuc2lvbkRlbGVnYXRlRm9yVGVzdGluZyBpbnNwZWN0b3JFeHRlbnNpb246ZGlkSGlkZVRh
YldpdGhJZGVudGlmaWVyOl0pOgorICAgICAgICAoVEVTVCk6CisKIDIwMjEtMDktMTcgIENocmlz
IER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBbIG1hY09TIFJlbGVhc2UgXSBU
ZXN0V2ViS2l0QVBJLk5ldHdvcmtQcm9jZXNzLkJyb2FkY2FzdENoYW5uZWxDcmFzaFJlY292ZXJ5
IGlzIGZsYWt5IHRpbWluZyBvdXQKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYzhmNjgyMjg5
YWE4MWY2OTk2NzI3YWEwZDU5MjI4OWFlMDRkZWFhZS4uN2FiYzllMTdkM2YxMjlkNTFlZWRkZTY3
YzhlYzU4ZWQ0MTY5N2E1ZiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2Vi
S2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTg5Miw2ICs4OTIs
OSBAQAogCQk5OTk5MTA4QjFGMzkzQzk2MDA4QUQ0NTUgLyogQ29weWluZy5tbSBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5OTkxMDhBMUYzOTNDOEIwMDhB
RDQ1NSAvKiBDb3B5aW5nLm1tICovOyB9OwogCQk5OTlCN0VFMzI1NTFDNjNCMDBGNDUwQTQgLyog
V0tJbnNwZWN0b3JFeHRlbnNpb25Ib3N0Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOTk5QjdFRTIyNTUxQzYzQjAwRjQ1MEE0IC8qIFdLSW5zcGVjdG9y
RXh0ZW5zaW9uSG9zdC5tbSAqLzsgfTsKIAkJOTlCNEY5QzYyNEVERUQ5NzAwMDIyQjgyIC8qIFdL
SW5zcGVjdG9yRGVsZWdhdGUubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5OUI0RjlDNTI0RURFRDk2MDAwMjJCODIgLyogV0tJbnNwZWN0b3JEZWxlZ2F0
ZS5tbSAqLzsgfTsKKwkJOTlFMjg0NjQyNkY5MUY3RjAwMDNGMUZBIC8qIFdLSW5zcGVjdG9yRXh0
ZW5zaW9uRGVsZWdhdGUubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5OUUyODQ2MzI2RjkxRjdGMDAwM0YxRkEgLyogV0tJbnNwZWN0b3JFeHRlbnNpb25E
ZWxlZ2F0ZS5tbSAqLzsgfTsKKwkJOTlFMjg0NjYyNkY5M0RCNTAwMDNGMUZBIC8qIEluc3BlY3Rv
ckV4dGVuc2lvbi1UYWJJY29uLTMweDMwLnBuZyBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OUUyODQ2NTI2RjkzRDc2MDAwM0YxRkEgLyogSW5z
cGVjdG9yRXh0ZW5zaW9uLVRhYkljb24tMzB4MzAucG5nICovOyB9OworCQk5OUUyODQ2ODI2Rjk0
MTU0MDAwM0YxRkEgLyogSW5zcGVjdG9yRXh0ZW5zaW9uLWJhc2ljLXRhYi5odG1sIGluIENvcHkg
UmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5RTI4NDY3MjZG
OTQxM0IwMDAzRjFGQSAvKiBJbnNwZWN0b3JFeHRlbnNpb24tYmFzaWMtdGFiLmh0bWwgKi87IH07
CiAJCTlCMDJFMEQ2MjM1RkE0N0QwMDQwNDRCMiAvKiBUZXh0TWFuaXB1bGF0aW9uLm1tIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUIwMkUwRDUyMzVGQTQ3
RDAwNDA0NEIyIC8qIFRleHRNYW5pcHVsYXRpb24ubW0gKi87IH07CiAJCTlCMDc4NkE1MUM1ODg1
QzMwMEQxNTlFMyAvKiBJbmplY3RlZEJ1bmRsZU1ha2VBbGxTaGFkb3dSb290c09wZW5fQnVuZGxl
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlCMDc4
NkE0MUM1ODg1QzMwMEQxNTlFMyAvKiBJbmplY3RlZEJ1bmRsZU1ha2VBbGxTaGFkb3dSb290c09w
ZW5fQnVuZGxlLmNwcCAqLzsgfTsKIAkJOUIwQzA1MTkyNEZERkI3RDAwRjJGRTMxIC8qIENvbXBh
Y3RVbmlxdWVQdHJUdXBsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5QjBDMDUxODI0RkRGQjcwMDBGMkZFMzEgLyogQ29tcGFjdFVuaXF1ZVB0clR1
cGxlLmNwcCAqLzsgfTsKQEAgLTE1NzYsNiArMTU3OSw4IEBACiAJCQkJMkVGRjA2Q0QxRDhBNDI5
QTAwMDRCQjMwIC8qIGlucHV0LWZpZWxkLWluLXNjcm9sbGFibGUtZG9jdW1lbnQuaHRtbCBpbiBD
b3B5IFJlc291cmNlcyAqLywKIAkJCQlDRTM1MjRGQTFCMTQ0Mzg5MDAyOEE3QzUgLyogaW5wdXQt
Zm9jdXMtYmx1ci5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCUNFNkQwRUUzMjQyNkI5
MzIwMDJBRDkwMSAvKiBpbnNlcnQtdGV4dC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAorCQkJ
CTk5RTI4NDY4MjZGOTQxNTQwMDAzRjFGQSAvKiBJbnNwZWN0b3JFeHRlbnNpb24tYmFzaWMtdGFi
Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCisJCQkJOTlFMjg0NjYyNkY5M0RCNTAwMDNGMUZB
IC8qIEluc3BlY3RvckV4dGVuc2lvbi1UYWJJY29uLTMweDMwLnBuZyBpbiBDb3B5IFJlc291cmNl
cyAqLywKIAkJCQk1N0Y1NkE1QzFDN0Y4Q0MxMDBGMzFEN0UgLyogSXNOYXZpZ2F0aW9uQWN0aW9u
VHJ1c3RlZC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCUM5QjRBRDJDMUVDQTZGN0Yw
MEY1RkVBMCAvKiBqcy1hdXRvcGxheS1hdWRpby5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAog
CQkJCUM5OUI2NzVEMUUzOTcyMjAwMEZDNkM4MCAvKiBqcy1wbGF5LXdpdGgtY29udHJvbHMuaHRt
bCBpbiBDb3B5IFJlc291cmNlcyAqLywKQEAgLTI2MjIsNiArMjYyNyw5IEBACiAJCTk5OTkxMDhB
MUYzOTNDOEIwMDhBRDQ1NSAvKiBDb3B5aW5nLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBwYXRoID0gQ29weWluZy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
OTk5QjdFRTIyNTUxQzYzQjAwRjQ1MEE0IC8qIFdLSW5zcGVjdG9yRXh0ZW5zaW9uSG9zdC5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdLSW5zcGVjdG9yRXh0ZW5z
aW9uSG9zdC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTlCNEY5QzUyNEVERUQ5
NjAwMDIyQjgyIC8qIFdLSW5zcGVjdG9yRGVsZWdhdGUubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IHBhdGggPSBXS0luc3BlY3RvckRlbGVnYXRlLm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk5OUUyODQ2MzI2RjkxRjdGMDAwM0YxRkEgLyogV0tJbnNwZWN0b3JF
eHRlbnNpb25EZWxlZ2F0ZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IFdLSW5zcGVjdG9yRXh0ZW5zaW9uRGVsZWdhdGUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTk5RTI4NDY1MjZGOTNENzYwMDAzRjFGQSAvKiBJbnNwZWN0b3JFeHRlbnNpb24t
VGFiSWNvbi0zMHgzMC5wbmcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBpbWFnZS5wbmc7IHBhdGggPSAiSW5zcGVjdG9yRXh0ZW5zaW9uLVRhYkljb24t
MzB4MzAucG5nIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTlFMjg0NjcyNkY5NDEz
QjAwMDNGMUZBIC8qIEluc3BlY3RvckV4dGVuc2lvbi1iYXNpYy10YWIuaHRtbCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQuaHRtbDsgcGF0aCA9ICJJbnNwZWN0b3JFeHRlbnNpb24tYmFzaWMtdGFiLmh0bWwiOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5QjAyRTBENTIzNUZBNDdEMDA0MDQ0QjIgLyog
VGV4dE1hbmlwdWxhdGlvbi5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFRleHRNYW5pcHVsYXRp
b24ubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlCMDc4NkEyMUM1ODgzMEYwMEQx
NTlFMyAvKiBJbmplY3RlZEJ1bmRsZU1ha2VBbGxTaGFkb3dSb290c09wZW4uY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5qZWN0ZWRCdW5kbGVNYWtlQWxsU2hhZG93
Um9vdHNPcGVuLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUIwNzg2QTQxQzU4
ODVDMzAwRDE1OUUzIC8qIEluamVjdGVkQnVuZGxlTWFrZUFsbFNoYWRvd1Jvb3RzT3Blbl9CdW5k
bGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5qZWN0ZWRCdW5k
bGVNYWtlQWxsU2hhZG93Um9vdHNPcGVuX0J1bmRsZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC0zNjY2LDYgKzM2NzQsNyBAQAogCQkJCTM3MENFMjI5MUY1NzM0MzQwMEU3NDEw
QiAvKiBXS0NvbnRlbnRWaWV3VGFyZ2V0Rm9yQWN0aW9uLm1tICovLAogCQkJCTUxRDEyNDk3MUU3
NjNBRjgwMDJCMjgyMCAvKiBXS0hUVFBDb29raWVTdG9yZS5tbSAqLywKIAkJCQk5OUI0RjlDNTI0
RURFRDk2MDAwMjJCODIgLyogV0tJbnNwZWN0b3JEZWxlZ2F0ZS5tbSAqLywKKwkJCQk5OUUyODQ2
MzI2RjkxRjdGMDAwM0YxRkEgLyogV0tJbnNwZWN0b3JFeHRlbnNpb25EZWxlZ2F0ZS5tbSAqLywK
IAkJCQk5OTlCN0VFMjI1NTFDNjNCMDBGNDUwQTQgLyogV0tJbnNwZWN0b3JFeHRlbnNpb25Ib3N0
Lm1tICovLAogCQkJCUE1QTcyOUYwMUY2MjJBOUEwMERFNUEyOCAvKiBXS05hdmlnYXRpb25SZXNw
b25zZS5tbSAqLywKIAkJCQlERjRCMjczODIxQTQ3NzI3MDA5QkQxQ0EgLyogV0tOU0RpY3Rpb25h
cnlFbXB0eURpY3Rpb25hcnlDcmFzaC5tbSAqLywKQEAgLTQwOTgsNiArNDEwNyw4IEBACiAJCQkJ
OTNBMjc0QTEyNTIxNjNENjAwQTFCNkQ0IC8qIEluZGV4VXBncmFkZVdpdGhNdWx0aXBsZUluZGlj
ZXMuc3FsaXRlMyAqLywKIAkJCQk5M0EyNzRBNDI1MjI0MUQwMDBBMUI2RDQgLyogSW5kZXhVcGdy
YWRlV2l0aE11bHRpcGxlSW5kaWNlc0hhdmVTYW1lSUQuc3FsaXRlMyAqLywKIAkJCQkyRUZGMDZD
QzFEOEE0MjkxMDAwNEJCMzAgLyogaW5wdXQtZmllbGQtaW4tc2Nyb2xsYWJsZS1kb2N1bWVudC5o
dG1sICovLAorCQkJCTk5RTI4NDY3MjZGOTQxM0IwMDAzRjFGQSAvKiBJbnNwZWN0b3JFeHRlbnNp
b24tYmFzaWMtdGFiLmh0bWwgKi8sCisJCQkJOTlFMjg0NjUyNkY5M0Q3NjAwMDNGMUZBIC8qIElu
c3BlY3RvckV4dGVuc2lvbi1UYWJJY29uLTMweDMwLnBuZyAqLywKIAkJCQk5MzdBNkM4ODI0MzU3
QkYzMDBDM0E2QjAgLyogS2lsbFdlYlByb2Nlc3NXaXRoT3BlbkNvbm5lY3Rpb24tMS5odG1sICov
LAogCQkJCTkzN0E2Qzg5MjQzNTdCRjMwMEMzQTZCMCAvKiBLaWxsV2ViUHJvY2Vzc1dpdGhPcGVu
Q29ubmVjdGlvbi0yLmh0bWwgKi8sCiAJCQkJRjQ1MzhFRjAxRTg0NkI0MTAwQjVDOTUzIC8qIGxh
cmdlLXJlZC1zcXVhcmUucG5nICovLApAQCAtNTk2NSw2ICs1OTc2LDcgQEAKIAkJCQk1MUQxMjQ5
ODFFNzYzQjAyMDAyQjI4MjAgLyogV0tIVFRQQ29va2llU3RvcmUubW0gaW4gU291cmNlcyAqLywK
IAkJCQk3Q0NFN0YxRDFBNDExQUU2MDA0NDdDNEMgLyogV0tJbWFnZUNyZWF0ZUNHSW1hZ2VDcmFz
aC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5OUI0RjlDNjI0RURFRDk3MDAwMjJCODIgLyogV0tJ
bnNwZWN0b3JEZWxlZ2F0ZS5tbSBpbiBTb3VyY2VzICovLAorCQkJCTk5RTI4NDY0MjZGOTFGN0Yw
MDAzRjFGQSAvKiBXS0luc3BlY3RvckV4dGVuc2lvbkRlbGVnYXRlLm1tIGluIFNvdXJjZXMgKi8s
CiAJCQkJOTk5QjdFRTMyNTUxQzYzQjAwRjQ1MEE0IC8qIFdLSW5zcGVjdG9yRXh0ZW5zaW9uSG9z
dC5tbSBpbiBTb3VyY2VzICovLAogCQkJCUE1QTcyOUYxMUY2MjJBQTcwMERFNUEyOCAvKiBXS05h
dmlnYXRpb25SZXNwb25zZS5tbSBpbiBTb3VyY2VzICovLAogCQkJCURGNEIyNzM5MjFBNDc3Mjgw
MDlCRDFDQSAvKiBXS05TRGljdGlvbmFyeUVtcHR5RGljdGlvbmFyeUNyYXNoLm1tIGluIFNvdXJj
ZXMgKi8sCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L0luc3BlY3RvckV4dGVuc2lvbi1UYWJJY29uLTMweDMwLnBuZyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvSW5zcGVjdG9yRXh0ZW5zaW9uLVRhYkljb24tMzB4MzAucG5n
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjYyNDNmMGYxMjk2ZWIxOTJlNWUyYzc5ZmI4NTA5NGE1ZDI1YmUzNTkKR0lU
IGJpbmFyeSBwYXRjaApsaXRlcmFsIDM3ODAKemNtVjsjNG08SVFQKTxoOzNLfExrMDAwZTFOSkxU
cTAwMTVVMDAxNWsxXkBzNllvSyFCMDAwaClOa2w8WmNtZF91CnpaJXxkfGZ5ZVJoYkkjIyV8OHYx
QkRqfTgtTGtTXnhPOStkR1FrTXtGMzg5MX50WXMtPnR4YylKNWJMSHsqRHsyLQp6dTEjR19EOWMh
dmJ1SHNNbHV9QXJoZj9hR2J5PyREWUZjVjI+cmk3VHkzfHopYyk0NklhUEt7UGolUnFgJXJiODYK
enpVJVltMUo4Tj57Qzt6SSE1cEY5OH5vNz4jUT87OyE1PXp1MzxNYlY4QXshVEF8QXM3KyY5I0Uz
fnc1U09BT1RsCnozPUxxQWhhNCp9Ul5rc0UpZHJIP0ZrLU4ldEtvZX0mSDRRR1orO1FKPmlNaEtx
YzZoMUMqRXYxXzhRIXtiTkh3Swp6Xy1Fakk+S35wa0pvZWhMa0xtTUFVdV51OXpWNGV9ZUN5eCFl
R1R0X1g7d2RIPD1wJTRwXysjciFmNV9+ZSMxQCEKelZLUzc8dzxkbzVHbXUqcEo/JHVraFc4dyFA
KVRAJiFfZiU8anlPWW1zaUV6THE0a2lWRFAxKUtLcEBmM2Y2PnRRCnpDX3U+VkpxYGJIYyZfVkM0
bTNSVCpXZFo+WmE4LXUwN0M3Qz5YSVNlfEYxV14oTGZ3bytneEBDOUJFR25UYl9wMgp6diY2Ykc7
SyMybFohKEg1PVVeMTxofXN2YDFnVWFMVFpST0dJLWg7PykzQE03VXcldGZIR0M/TmZCMTlmQWJX
RF8Kej4hMDJPRFF6Rl4kWiRjX0s1TGJ9NH15SUZAPkgtfktpOEZeb1koSlpkSFRnbWBuX2Rgb0Bt
IXx0bUx7cz1qITdACnpnPFNeWGtnTkglOSQyQHthJkZyZlY4Rkk/SWlkI3Nhd08xPDloaTFwaHs8
JCZwIW1CbFNTeXlhQ3BUVW1gTzNTSAp6dm9XKmYpNHplXy1KNmJOZD0yN24jdk9ZNngwK1l1U35t
Un1Ic3ZPXlhNN2JoVFFlR3FLTUY2OHpURVZjVSUpNGUKelVSYkQ3VkN9R1RANDkldjkhTGtLQldq
a0xebjE1YFZOSXI8PEYlZnxkT2c9bFBENU18U3kodHRgSVVQaHN6KzZsCnpVeEQ3ZzI8KEA7O25+
eFJSYTg7fSYpKUwlVyVva1d1VTw7NGA4TEd3ZF87UVUxfXB+WDM3MTIjbUp1LXVwPVFFTAp6N2Y/
KVdMP04mcWNaM3JOcyZVR0dVXm88QDh8WWM/Mzc1ZiEwciRubnt1MnNYM2ZGejxgezN6JkRsWXBw
UGBTYGMKejNDUGBuOXo5MyREe2B4enQ4ITJETytEdkk/JSVnP3dTaW1fNHJrODZIX3Q4fG1zO1NO
cH5aSGk9bkV5Oz1MXz47CnolWkh3dj1XQWhNeXtNLWI3OHx1PCthUjFKWUhlP1RGcDEmbFBMT2tp
LVE1UGxGT3R7byl2T2dzPnQ1OX4zJHVITgp6PUZkZjRiaUhPeGMtbUc1dSVzdz9BbkYlMyhocmBU
dl5DR3l6e2VBfEdgQDVtc1B5bHIxZi1TKWxiJFBjUFAocT0KelQqLVozanxVZikrVHJVaiRxQmpK
Zzk4eU15antzKzNqayNKSiF4QlpMaF9lNF4/SjYkTE9rUEtnVX1IUSVAO3UkCno1dHBLX2dLfHdj
XiYqTzBCKiRpZm9GRnt3dUlXKnZqQ0pjbHN5N3JLc2Q/UilYMGtMRHlIKFJFRGVsKWJGWDdZQQp6
cD5SM1lkPkkoYD1RMGtEbW5Rc1peSlZaZnJkLT40MTtDI1M1Um5vWGdHdyFSZ2Nvd1J1az82TztY
KHUxNFVRVTkKei1ka3FAeVF6X0JTOTs4bGB3REZKWV84ZVg0b2w3V3I3PSk8USpRWXIkWFF5Xi00
TmpzT0tVRW5ZanNiOWt9aDBwCnp0M2wzfCstcHlPbHFjTm9VSnp4NWwzVHBKd2hlPyEoJF51WlFt
d3ZFRUotS3liSHBXYUV+KitSNTRLcjgxXjVeMAp6Xm17a2dyMnB5QG92P1AkUj0/SEAqYUpJKFgt
Q2ErSFIhb2xkS2tTe0RKJkE8OzdwQUJXNGt+ZUg9RDg9MDNyYFMKej8jTUYtQD84KWY3Q213V3Mz
VDtWZWdhQ1NJQXVRJHJlWlBiM1RzWV5pUmRZYSpkJVU2N2xCZnVTcGpsN2xoT0dnCnpTO2JfRzJT
bUlmbFR3dkZGSyRWKCtCIX03eFZ9JEokT0hPMFZwUDdacERSdkBvJVU4QkReI29CRH5ndDhxIXZp
Rwp6WmR3MlFNU3plYjRkfCg5SD8/SW85R241bU0ha3A4WW44KEs3SDZJSCNMS1MkU29WTih6MDxu
UjNYZHN8cSRFRUUKekAmSGNESXh5OVZZUCVtSXdKNDZ1bm55Jmh2bFVGNiMyTSFqTTh0NSQ9PnRV
KWVhX1AkNH50Jk1FfDU7czxJb0ZfCnpWYzA3WTk2TDRwcSUrUFE7RVl1NF5ueTRlUGRFZW1iR2dA
ZlI0PVR3SjljWVVPSEl+SnokTlhvJGdyWEZCVTRZVgp6MGpKZnVlIzBkSXV4NWFCemg9a0ZlfiFg
WCstaCZRM0ZJYncpcExGVGApPkhpaUFWQ0Q5MHFYI3BFVjFWMnZRd0sKenoqMHl9UX5fOT45Q0dh
aWIwTGxQQlZnKk0oUktfWCtRbmc4ODdMSlR2YG0zaUFuTDckSzsoKSMlWFpDSFZPVEh2CnpebXpg
N00xN3EmRU9wc1Jma3llZD9XbkZ8dmMzJSpHTXttfWZmYEZlYlErTVYkV2lNN3BTYS1NMSZgIT9x
K18hZwp6MDMxYEdvWUc5cnAyWDxZeWpvIXNOSitMZ2xDRllVV1kyflRkKURsSmQ9a1dZSEUyJSp4
dEExWTcpLV5LTXRMQXwKem1JfGo9R2V1TjdZQll6Ync3dj5UR3YkIy1MRnk3XmsoSFlENnFeOWlO
MERnPXM1R1ApKlMrfk5WKWI+RGl2clVICnpwaSlWKV8mYClmQ09MPElpcFdgNEVsX0dJaWdeYENr
JFlsMXBlfjdpKkgmMGx5YGt7UTB6RWFqaih+N08pWDY3Uwp6M007RD5aVURsTEJRYitPb1RDWEdM
MzheMGJ3SDRTVjtyUGpWeDIqZGklNH0yWGZfSXV5JlJNaXErN2N7ZXBgNGYKekwhZ3dBOHREYk9t
NlY3cEFiY2RyMzgwPjJsZEttP0diQWF6UG80bCRrZHklK1JxaW50Z1lkfDIrdzRIUCgmb0k1Cnp7
YC07V0QpaT8/WWw7RTQpVmJ5YTs4UjstdTdTRDlrK3lMVGh5JkxfQVBpQ1lkSmgwbXplLV5NKW9C
fHJiZC1hRAp6NSQ2dCYpe0JJdy05UXFPXlJsdGlRRGJROTB+RH1LOEFjYD5uaHFQIWx7OCU+Y19S
PUhRWm5FUW1QJmVJTm9gUnwKejBVKis2V0hNaGZ2PjhlY3lKMXc4VlJWTSFuaFBLanF5KURGVG9h
OUp5N2tsJChgbzNFOXs3KWsrNXE4ZlRWT2Z8CnopRnA9eD02d3M5NWhXbDMjNzE+TklGQmh1RHVu
dE92M1dIMnQ1Kzx3bnkpZiE/JCllUmhmUGloX0FzSiFMVEhMbgp6YE03MnhTTEckbVpSJDtGQ29I
eXZVWD9DRlhlNSo8a0FrYCpHI3dFT2owQWhrSjMkPXwpbSFwXztaVWAkN31QN0YKentmPXMyQnk9
V2Y3Y2RucmtLUEJ3Tmh2WXF1ck5NOVptSSFRZm9QfVIwOzE0KzBIX0M2RTM4TH53S0EzcjthU0BP
CnpfLSpJWi1hcndFWnNNRyRBa0BJOXkja2hjPjlXU2FxTU1WSkl0V30+K2FmMW4oWnxWJUdGYU0x
eVctUkFQYGwoIwp6TyhvbmE0cio+KSVIY0crV3g5Y1ZPQTAtKGJYO0V2TDFgJmhfKDB2Wj11PHFK
WkdyMSVIKmooPio0NkBhRSVpRDIKemZ3NTN+KU54Pj0yKU5GfT97QHotYiNWZzFsTXBvc3Atb148
e0I9QT11a2RQeF9yUCpsPGp9aVRQeyhYX2FOVTJTCnpYP2oxMTMjOGRjQUBsPCM/MGFHMTNAdyZE
O1A8bVhRbiF4Uk8oUVUwIXxNX0duJSZfPiRxTjNzVT5Pfm40U0A7dQp6MDR4anljQiUoOzdqRUEo
LXJ1MGxgelFReSlXTzJ3ZTdFYHIxU2FRZWNeI0h8e1BpTG9MWTtvVSh5aE8lZyleMmUKelU/T3pa
bUg/IVEzLSVHMUlEQ0MjYG1+LUo5UHpNUjBoYTZVSSMrdEZRYUdGa2JGWm9PS2xtUH52ejhMQDdS
Kzc9CnpKX3tlXytebjZjMUdOYUp3R3NtNylLK3NnJXImYyhyZ0hHc3MwQikkcmFpYnJtXjVQK3tw
NCR3XygjPzRGeFRjIQp6UTtSZjVlV1I0PCZjKjZfK3ZaTnteV0g5UiQtUTtBeWwoT31DJWtyNWJB
QyllOFRANSlFb3ViPmUxWT83RCtHKHcKekVJQWVhdE1vVFhjYlpgS2lubX5TVHUlK1EkNilSeVYx
TUB5Rj8heyFfSiomK1RMWjFMemM+enxRcSRIOzRHP1pNCnplLWA+JWYxM1d3Vkd6YVl6UV90I3t1
NCRjTjVQakQtbDVGR3RnXlZERD0tdGdGcnt3UD8zKjdAPDF7PHd5IVNrSgp6dy1VfGlFMzxMeEoh
Z2AyWEt1fDVwcW48K3EzV0tUPkM/U2lHX3pqYXNNJFZpUWQ0MHIhSSE2JiFAfkNFRXNWbHEKenJ9
Ukc4O045Q2xwODhvbWchVndoRGF7ZnY5bGRubXRzIVhhKV9XTWVSdyshY0wxK3JSb3gkeUlKYGRe
elF6YkZLCnpFNCEyNzlmT35veEA+KmwyVTI4c0twdXl7dkJtVEIhUUUjNkg4bCZTeDZVUTBDWVc7
SDRYYnsqYjhOTyZven5ubgp6P0Z+PUNSTE5BUVlTPyRycmFRYXpgUUlocFg7byk2aG87PUJVLVFL
RFJASjF4eHd9WDhiQTVxOEFOe2I8QlNuJTIKejdwfFVyP21hSnoraSR5V25JTz1yQ25hWClEVlUj
WmN5NlZ+e2s9ZnBlO3dnK2M9SHA3aFI+YWIhX1dQX3JfQnU8CnpXMn1uNyt5NkhFdi1STCFFN3Yq
YEEtKHpXOy1xOSlaMUsweTJjZkZANzxEVElJXzVKdTJJZF5Vd2h2NkBeVVZ4ewp6YT83OGtVSXlA
YzBpQGllNXEmO2xhSClmPFVeKlRjIzAlIXVLKD5DNGVOKFc3QSZAR1J7WnpyJi1rKlBkJW5Ffl8K
ejh5cCFyMzZiOWNIMylKbTFlNG1fZTswOyZfM1F2Zmp+I3tfZHFDbHAxKStFdG50U2dYVXJ2WG88
fXhPcSZaS01rCnpNe0BOdUwqMER1KVc4NXRIJFBNRVpHdW1CSnYpK2Q4XlJZQ3lKLU9iYWkzUWAz
NHMhQ0I3b0hHLUc+KU07YW52bgp6MFExRUZOXis8U0ZJWU9tVmBQQT5CSFliTWttSUNSQGomUTZX
Q3BrM1R6M0RERkVfejJwRStNVXY9MXkheCtzOTwKemJPO0BMRlowP0MmfmlTPkhlaGUpNnZudnVk
dyVneWViOUJLV0FFSl5GbX5tR3ZvSE1zPHxwK0Y9PD4mdDJqfURaCnpad3c4PEg9YipKcSUjZ2Ff
fkt+VyVeV1p2PWE0dUJAfTYqcXJ+JWEpTit1T1RlWmRzV24qRV8keTVWQmd0an4pWQp6eG1JNSUk
Q3o5N2VJSERXTUA8JlB4ODhaQHlXYyt3WFhXIzhgYUtLJWJkZC1DaSQ+ODg3NUx6WEZhMngoSFpY
RDsKenhnWXF3XzVtWm9LIyE3PlIoZFJ8NUd0aypLWFQkfWMlfUI4TjdaUWZSTnAmSz5MK0VsPXRm
TyNFQzJTI1JyVDU3Cno5a1hZRHB7Z1phKXdfUUFwe2pvVllIaF5fTFJFSzNVK0JAQEBwPyZAS0Em
SGdTI1dOUHN5Xkt3SEtwJU1YI0BTNwp6JSolJGtSaU5LZmtPcWYwb1k/JkFLR0AtTDYje14wVSY7
QV5vKTcoKilAJiUzIXdjaFlgZzJQbV9fcEk7e2BRfD8KemVvQWkySk9PaFgwV3xqK2BWXzszN3l3
IXAwZjxaajBMIT9jP0dUMnVoU24rdyllaH43KmFnMWheYEhHJnN7UyRmCnpZJWxrSnJ1Nz4jYD1H
KVlLbTVUVDskNE9qRzRTTkJ6cC16d2hzVnBsX08xRiZ1KSVwYF5XYWF4ZEFzcV58TmJYMQp6V2pE
PyhlfSkjJkgzZFBSY2VhQVFFX04zNWVVQiE5YWdLNFdxMnp3WjVBaEZRX3lIcj1LOyM9clZNQz9N
RnlmLTIKdURnUzxyZDFJWmlAQlZZaDw+QUthZjZ7Kn08OWA1SlF6czdiIzNybygwMDAwPE1OVU1u
TFNUYVNfQnNPcQoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9JbnNwZWN0b3JFeHRlbnNpb24tYmFzaWMtdGFi
Lmh0bWwgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0luc3BlY3RvckV4
dGVuc2lvbi1iYXNpYy10YWIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mZTg4YWQwZTlkZmQ0YmI3ODQ2ODIx
MjgxMDUxNDE2YWI3MGYwYTM1Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9JbnNwZWN0b3JFeHRlbnNpb24tYmFzaWMtdGFiLmh0bWwKQEAg
LTAsMCArMSw2IEBACis8aHRtbD4KKzxib2R5PgorPGgxPlRoaXMgaXMgYSB0ZXN0IGV4dGVuc2lv
bi48L2gxPgorPHA+SW4gYSBub3JtYWwgZXh0ZW5zaW9uLCB0aGlzIGFyZWEgd291bGQgc2hvdyB0
aGUgZXh0ZW5zaW9uJ3MgdXNlciBpbnRlcmZhY2UuPC9wPgorPC9ib2R5PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS0luc3BlY3Rv
ckV4dGVuc2lvbkRlbGVnYXRlLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9XS0luc3BlY3RvckV4dGVuc2lvbkRlbGVnYXRlLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY5NDY0YmI2
ZGNhZjE3Nzk2ODYyNjUwNTliNTNmNzAzN2U5OGM3NjUKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLSW5zcGVjdG9yRXh0ZW5zaW9uRGVs
ZWdhdGUubW0KQEAgLTAsMCArMSwxNTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcu
aCIKKworI2ltcG9ydCAiVGVzdC5oIgorI2ltcG9ydCAiVXRpbGl0aWVzLmgiCisjaW1wb3J0IDxX
ZWJLaXQvV0tQcmVmZXJlbmNlc1ByaXZhdGUuaD4KKyNpbXBvcnQgPFdlYktpdC9XS1dlYlZpZXdQ
cml2YXRlLmg+CisjaW1wb3J0IDxXZWJLaXQvX1dLSW5zcGVjdG9yLmg+CisjaW1wb3J0IDxXZWJL
aXQvX1dLSW5zcGVjdG9yRXh0ZW5zaW9uLmg+CisjaW1wb3J0IDxXZWJLaXQvX1dLSW5zcGVjdG9y
RXh0ZW5zaW9uRGVsZWdhdGUuaD4KKyNpbXBvcnQgPFdlYktpdC9fV0tJbnNwZWN0b3JQcml2YXRl
Rm9yVGVzdGluZy5oPgorI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgorCisjaWYgRU5BQkxFKElO
U1BFQ1RPUl9FWFRFTlNJT05TKQorCitzdGF0aWMgYm9vbCBkaWRBdHRhY2hMb2NhbEluc3BlY3Rv
ckNhbGxlZCA9IGZhbHNlOworc3RhdGljIGJvb2wgZGlkU2hvd0V4dGVuc2lvblRhYldhc0NhbGxl
ZCA9IGZhbHNlOworc3RhdGljIGJvb2wgZGlkSGlkZUV4dGVuc2lvblRhYldhc0NhbGxlZCA9IGZh
bHNlOworc3RhdGljIGJvb2wgcGVuZGluZ0NhbGxiYWNrV2FzQ2FsbGVkID0gZmFsc2U7CitzdGF0
aWMgUmV0YWluUHRyPF9XS0luc3BlY3RvckV4dGVuc2lvbj4gc2hhcmVkSW5zcGVjdG9yRXh0ZW5z
aW9uOworc3RhdGljIFJldGFpblB0cjxOU1N0cmluZz4gc2hhcmVkRXh0ZW5zaW9uVGFiSWRlbnRp
ZmllcjsKKworc3RhdGljIHZvaWQgcmVzZXRHbG9iYWxTdGF0ZSgpCit7CisgICAgZGlkQXR0YWNo
TG9jYWxJbnNwZWN0b3JDYWxsZWQgPSBmYWxzZTsKKyAgICBkaWRTaG93RXh0ZW5zaW9uVGFiV2Fz
Q2FsbGVkID0gZmFsc2U7CisgICAgZGlkSGlkZUV4dGVuc2lvblRhYldhc0NhbGxlZCA9IGZhbHNl
OworICAgIHBlbmRpbmdDYWxsYmFja1dhc0NhbGxlZCA9IGZhbHNlOworfQorCitAaW50ZXJmYWNl
IFVJRGVsZWdhdGVGb3JUZXN0aW5nSW5zcGVjdG9yRXh0ZW5zaW9uRGVsZWdhdGUgOiBOU09iamVj
dCA8V0tVSURlbGVnYXRlPgorQGVuZAorCitAaW1wbGVtZW50YXRpb24gVUlEZWxlZ2F0ZUZvclRl
c3RpbmdJbnNwZWN0b3JFeHRlbnNpb25EZWxlZ2F0ZQorCistICh2b2lkKV93ZWJWaWV3OihXS1dl
YlZpZXcgKil3ZWJWaWV3IGRpZEF0dGFjaExvY2FsSW5zcGVjdG9yOihfV0tJbnNwZWN0b3IgKilp
bnNwZWN0b3IKK3sKKyAgICBFWFBFQ1RfRVEod2ViVmlldy5faW5zcGVjdG9yLCBpbnNwZWN0b3Ip
OworICAgIGRpZEF0dGFjaExvY2FsSW5zcGVjdG9yQ2FsbGVkID0gdHJ1ZTsKK30KKworQGVuZAor
CisKK0BpbnRlcmZhY2UgSW5zcGVjdG9yRXh0ZW5zaW9uRGVsZWdhdGVGb3JUZXN0aW5nIDogTlNP
YmplY3QgPF9XS0luc3BlY3RvckV4dGVuc2lvbkRlbGVnYXRlPgorQGVuZAorCitAaW1wbGVtZW50
YXRpb24gSW5zcGVjdG9yRXh0ZW5zaW9uRGVsZWdhdGVGb3JUZXN0aW5nIHsKK30KKworLSAodm9p
ZClpbnNwZWN0b3JFeHRlbnNpb246KF9XS0luc3BlY3RvckV4dGVuc2lvbiAqKWV4dGVuc2lvbiBk
aWRTaG93VGFiV2l0aElkZW50aWZpZXI6KE5TU3RyaW5nICopdGFiSWRlbnRpZmllcgoreworICAg
IGRpZFNob3dFeHRlbnNpb25UYWJXYXNDYWxsZWQgPSB0cnVlOworfQorCistICh2b2lkKWluc3Bl
Y3RvckV4dGVuc2lvbjooX1dLSW5zcGVjdG9yRXh0ZW5zaW9uICopZXh0ZW5zaW9uIGRpZEhpZGVU
YWJXaXRoSWRlbnRpZmllcjooTlNTdHJpbmcgKil0YWJJZGVudGlmaWVyCit7CisgICAgZGlkSGlk
ZUV4dGVuc2lvblRhYldhc0NhbGxlZCA9IHRydWU7Cit9CisKK0BlbmQKKworVEVTVChXS0luc3Bl
Y3RvckV4dGVuc2lvbkRlbGVnYXRlLCBTaG93QW5kSGlkZVRhYkNhbGxiYWNrcykKK3sKKyAgICBy
ZXNldEdsb2JhbFN0YXRlKCk7CisKKyAgICBhdXRvIHdlYlZpZXdDb25maWd1cmF0aW9uID0gYWRv
cHROUyhbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBuZXddKTsKKyAgICB3ZWJWaWV3Q29uZmlndXJh
dGlvbi5nZXQoKS5wcmVmZXJlbmNlcy5fZGV2ZWxvcGVyRXh0cmFzRW5hYmxlZCA9IFlFUzsKKyAg
ICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbV0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1l
OkNHUmVjdE1ha2UoMCwgMCwgODAwLCA2MDApIGNvbmZpZ3VyYXRpb246d2ViVmlld0NvbmZpZ3Vy
YXRpb24uZ2V0KCldKTsKKyAgICBhdXRvIHVpRGVsZWdhdGUgPSBhZG9wdE5TKFtVSURlbGVnYXRl
Rm9yVGVzdGluZ0luc3BlY3RvckV4dGVuc2lvbkRlbGVnYXRlIG5ld10pOworCisgICAgW3dlYlZp
ZXcgc2V0VUlEZWxlZ2F0ZTp1aURlbGVnYXRlLmdldCgpXTsKKyAgICBbd2ViVmlldyBsb2FkSFRN
TFN0cmluZzpAIjxoZWFkPjx0aXRsZT5UZXN0IHBhZ2UgdG8gYmUgaW5zcGVjdGVkPC90aXRsZT48
L2hlYWQ+PGJvZHk+PHA+RmlsbGVyIGNvbnRlbnQ8L3A+PC9ib2R5PiIgYmFzZVVSTDpbTlNVUkwg
VVJMV2l0aFN0cmluZzpAImh0dHA6Ly9leGFtcGxlLmNvbS8iXV07CisKKyAgICBbW3dlYlZpZXcg
X2luc3BlY3Rvcl0gc2hvd107CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkaWRBdHRh
Y2hMb2NhbEluc3BlY3RvckNhbGxlZCk7CisKKyAgICBhdXRvIGV4dGVuc2lvbklEID0gW05TVVVJ
RCBVVUlEXS5VVUlEU3RyaW5nOworICAgIGF1dG8gZXh0ZW5zaW9uRGlzcGxheU5hbWUgPSBAIkZp
cnN0RXh0ZW5zaW9uIjsKKworICAgIC8vIFJlZ2lzdGVyIHRoZSB0ZXN0IGV4dGVuc2lvbi4KKyAg
ICBwZW5kaW5nQ2FsbGJhY2tXYXNDYWxsZWQgPSBmYWxzZTsKKyAgICBbW3dlYlZpZXcgX2luc3Bl
Y3Rvcl0gcmVnaXN0ZXJFeHRlbnNpb25XaXRoSUQ6ZXh0ZW5zaW9uSUQgZGlzcGxheU5hbWU6ZXh0
ZW5zaW9uRGlzcGxheU5hbWUgY29tcGxldGlvbkhhbmRsZXI6XihOU0Vycm9yICogX051bGxhYmxl
IGVycm9yLCBfV0tJbnNwZWN0b3JFeHRlbnNpb24gKiBfTnVsbGFibGUgZXh0ZW5zaW9uKSB7Cisg
ICAgICAgIEVYUEVDVF9OVUxMKGVycm9yKTsKKyAgICAgICAgRVhQRUNUX05PVF9OVUxMKGV4dGVu
c2lvbik7CisgICAgICAgIHNoYXJlZEluc3BlY3RvckV4dGVuc2lvbiA9IGV4dGVuc2lvbjsKKwor
ICAgICAgICBwZW5kaW5nQ2FsbGJhY2tXYXNDYWxsZWQgPSB0cnVlOworICAgIH1dOworICAgIFRl
c3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcGVuZGluZ0NhbGxiYWNrV2FzQ2FsbGVkKTsKKworICAg
IGF1dG8gZXh0ZW5zaW9uRGVsZWdhdGUgPSBhZG9wdE5TKFtJbnNwZWN0b3JFeHRlbnNpb25EZWxl
Z2F0ZUZvclRlc3RpbmcgbmV3XSk7CisgICAgW3NoYXJlZEluc3BlY3RvckV4dGVuc2lvbiBzZXRE
ZWxlZ2F0ZTpleHRlbnNpb25EZWxlZ2F0ZS5nZXQoKV07CisKKyAgICAvLyBDcmVhdGUgYW4gZXh0
ZW5zaW9uIHRhYi4KKyAgICBhdXRvIGljb25VUkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVS
TEZvclJlc291cmNlOkAiSW5zcGVjdG9yRXh0ZW5zaW9uLVRhYkljb24tMzB4MzAiIHdpdGhFeHRl
bnNpb246QCJwbmciIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07Cisg
ICAgYXV0byBzb3VyY2VVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNl
OkAiSW5zcGVjdG9yRXh0ZW5zaW9uLWJhc2ljLXRhYiIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1
YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CisKKyAgICBwZW5kaW5nQ2Fs
bGJhY2tXYXNDYWxsZWQgPSBmYWxzZTsKKyAgICBbc2hhcmVkSW5zcGVjdG9yRXh0ZW5zaW9uIGNy
ZWF0ZVRhYldpdGhOYW1lOkAiRmlyc3RFeHRlbnNpb24tVGFiIiB0YWJJY29uVVJMOmljb25VUkwg
c291cmNlVVJMOnNvdXJjZVVSTCBjb21wbGV0aW9uSGFuZGxlcjpeKE5TRXJyb3IgKiBfTnVsbGFi
bGUgZXJyb3IsIE5TU3RyaW5nICogX051bGxhYmxlIGV4dGVuc2lvblRhYklkZW50aWZpZXIpIHsK
KyAgICAgICAgRVhQRUNUX05VTEwoZXJyb3IpOworICAgICAgICBFWFBFQ1RfTk9UX05VTEwoZXh0
ZW5zaW9uVGFiSWRlbnRpZmllcik7CisgICAgICAgIHNoYXJlZEV4dGVuc2lvblRhYklkZW50aWZp
ZXIgPSBleHRlbnNpb25UYWJJZGVudGlmaWVyOworCisgICAgICAgIHBlbmRpbmdDYWxsYmFja1dh
c0NhbGxlZCA9IHRydWU7CisgICAgfV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZw
ZW5kaW5nQ2FsbGJhY2tXYXNDYWxsZWQpOworCisgICAgLy8gRm9yY2UgYSBrbm93biBub24tZXh0
ZW5zaW9uIHRhYiB0byBiZSBzaG93biBiZWZvcmUgc2hvd2luZyB0aGUgZXh0ZW5zaW9uIHRhYi4g
T3RoZXJ3aXNlLAorICAgIC8vIGlmIHRoZSBleHRlbnNpb24gdGFiIHdhcyBhbHJlYWR5IG9wZW4s
IHRoZW4gdGhpcyB0ZXN0IHdvdWxkIGhhbmcgd2FpdGluZyBmb3IgYSBkaWRTaG93IGNhbGxiYWNr
LgorICAgIFtbd2ViVmlldyBfaW5zcGVjdG9yXSBzaG93Q29uc29sZV07CisKKyAgICBwZW5kaW5n
Q2FsbGJhY2tXYXNDYWxsZWQgPSBmYWxzZTsKKyAgICBbW3dlYlZpZXcgX2luc3BlY3Rvcl0gc2hv
d0V4dGVuc2lvblRhYldpdGhJZGVudGlmaWVyOnNoYXJlZEV4dGVuc2lvblRhYklkZW50aWZpZXIu
Z2V0KCkgY29tcGxldGlvbkhhbmRsZXI6XihOU0Vycm9yICogX051bGxhYmxlIGVycm9yKSB7Cisg
ICAgICAgIEVYUEVDVF9OVUxMKGVycm9yKTsKKworICAgICAgICBwZW5kaW5nQ2FsbGJhY2tXYXND
YWxsZWQgPSB0cnVlOworICAgIH1dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcGVu
ZGluZ0NhbGxiYWNrV2FzQ2FsbGVkKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRp
ZFNob3dFeHRlbnNpb25UYWJXYXNDYWxsZWQpOworCisgICAgW1t3ZWJWaWV3IF9pbnNwZWN0b3Jd
IHNob3dDb25zb2xlXTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRpZEhpZGVFeHRl
bnNpb25UYWJXYXNDYWxsZWQpOworCisgICAgLy8gVW5yZWdpc3RlciB0aGUgdGVzdCBleHRlbnNp
b24uCisgICAgcGVuZGluZ0NhbGxiYWNrV2FzQ2FsbGVkID0gZmFsc2U7CisgICAgW1t3ZWJWaWV3
IF9pbnNwZWN0b3JdIHVucmVnaXN0ZXJFeHRlbnNpb246c2hhcmVkSW5zcGVjdG9yRXh0ZW5zaW9u
LmdldCgpIGNvbXBsZXRpb25IYW5kbGVyOl4oTlNFcnJvciAqIF9OdWxsYWJsZSBlcnJvcikgewor
ICAgICAgICBFWFBFQ1RfTlVMTChlcnJvcik7CisKKyAgICAgICAgcGVuZGluZ0NhbGxiYWNrV2Fz
Q2FsbGVkID0gdHJ1ZTsKKyAgICB9XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnBl
bmRpbmdDYWxsYmFja1dhc0NhbGxlZCk7Cit9CisKKyNlbmRpZiAvLyBFTkFCTEUoSU5TUEVDVE9S
X0VYVEVOU0lPTlMpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>438952</attachid>
            <date>2021-09-22 08:29:48 -0700</date>
            <delta_ts>2021-09-27 09:29:16 -0700</delta_ts>
            <desc>Patch v1.2</desc>
            <filename>bug-230580-20210922082948.patch</filename>
            <type>text/plain</type>
            <size>39185</size>
            <attacher name="Blaze Burg">bburg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyNzQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwppbmRleCBm
NjVhNzFmYmEwMDgyZGRlMTA2ZTRiYzNiODVlZWJmZmJiN2QxZmNmLi4yMjFkZGY1MzQ2ODhjNjM5
MGVhMmM1YzMwZWE5ODhkY2Q4MGFmMjc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMiBAQAorMjAyMS0wOS0yMSAgQkogQnVyZyAgPGJidXJnQGFwcGxlLmNvbT4KKworICAg
ICAgICBbQ29jb2FdIEFkZCBTUEkgdG8gc2VsZWN0IGEgdGFiIGNyZWF0ZWQgYnkgX1dLSW5zcGVj
dG9yRXh0ZW5zaW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMzA1ODAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgzMzcyODUxPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhIG1ldGhvZCB0byBs
b29rIHVwIGEgV2ViSW5zcGVjdG9yRXh0ZW5zaW9uVGFiQ29udGVudFZpZXcKKyAgICAgICAgYnkg
aXRzIGV4dGVuc2lvblRhYklEIGFuZCB0aGVuIHNob3cgaXQgd2l0aCBXSS50YWJCcm93c2VyLgor
CisgICAgICAgICogVXNlckludGVyZmFjZS9Db250cm9sbGVycy9XZWJJbnNwZWN0b3JFeHRlbnNp
b25Db250cm9sbGVyLmpzOgorICAgICAgICAoV0kuV2ViSW5zcGVjdG9yRXh0ZW5zaW9uQ29udHJv
bGxlci5wcm90b3R5cGUucmVsb2FkRm9yRXh0ZW5zaW9uKToKKyAgICAgICAgUmVtb3ZlIGV4dHJh
IG5ld2xpbmVzLgorICAgICAgICAoV0kuV2ViSW5zcGVjdG9yRXh0ZW5zaW9uQ29udHJvbGxlci5w
cm90b3R5cGUuc2hvd0V4dGVuc2lvblRhYik6IEFkZGVkLgorCisgICAgICAgICogVXNlckludGVy
ZmFjZS9Qcm90b2NvbC9JbnNwZWN0b3JGcm9udGVuZEFQSS5qczoKKyAgICAgICAgKEluc3BlY3Rv
ckZyb250ZW5kQVBJLnNob3dFeHRlbnNpb25UYWIpOiBBZGRlZC4KKwogMjAyMS0wOS0xNiAgUGF0
cmljayBBbmdsZSAgPHBhbmdsZUBhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3Rvcjog
UmVncmVzc2lvbihyMjc5NjEzKSBBdWRpdCByZXN1bHQgc2NvcGUgdG9nZ2xlcyBhcmUgbWlzc2lu
ZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwppbmRleCAwNDRlNjEzODJiMzE3NTFiNzE4OGUwNzE5ODI3OGFmNTdiZmNlMTQwLi5l
YzlhNzhlNDNlYWJkODY4YWMxYjRlMzRmZGEzMTdmNGU3MDFlYmIyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDM0IEBACisyMDIxLTA5LTIxICBCSiBCdXJnICA8YmJ1cmdAYXBwbGUuY29tPgorCisgICAg
ICAgIFtDb2NvYV0gQWRkIFNQSSB0byBzZWxlY3QgYSB0YWIgY3JlYXRlZCBieSBfV0tJbnNwZWN0
b3JFeHRlbnNpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIzMDU4MAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODMzNzI4NTE+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgbmV3IG1ldGhvZCBm
b3Igc2VsZWN0aW5nIGFuIGV4dGVuc2lvbiB0YWIgaW4gV2ViSW5zcGVjdG9yVUkKKyAgICAgICAg
dGhhdCB3YXMgcHJldmlvdXNseSBjcmVhdGVkIGJ5IHVzaW5nCisgICAgICAgIC1bX1dLSW5zcGVj
dG9yRXh0ZW5zaW9uIGNyZWF0ZU5ld1RhYjp0YWJJY29uVVJMOnNvdXJjZVVSTDpjb21wbGV0aW9u
SGFuZGxlcl0uCisKKyAgICAgICAgVGhpcyBpcyBhIHN0cmFpZ2h0Zm9yd2FyZCBwbHVtYmluZyBl
eGVyY2lzZS4gVGhlIEFQSSB0ZXN0IHVzZXMgdGhlIG5ldyBtZXRob2QKKyAgICAgICAgdG8gdGVz
dCB0aGUgZXhpc3RpbmcgX1dLSW5zcGVjdG9yRXh0ZW5zaW9uRGVsZWdhdGUgY2FsbGJhY2sgbWV0
aG9kcyBmb3IKKyAgICAgICAgZGlkU2hvd1RhYiBhbmQgZGlkSGlkZVRhYi4KKworICAgICAgICBO
ZXcgQVBJIHRlc3Q6IFdLSW5zcGVjdG9yRXh0ZW5zaW9uRGVsZWdhdGUuU2hvd0FuZEhpZGVUYWJD
YWxsYmFja3MuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS0luc3BlY3Rvci5t
bToKKyAgICAgICAgKC1bX1dLSW5zcGVjdG9yIHNob3dFeHRlbnNpb25UYWJXaXRoSWRlbnRpZmll
cjpjb21wbGV0aW9uSGFuZGxlcjpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19X
S0luc3BlY3RvckV4dGVuc2lvbkhvc3QuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29h
L19XS1JlbW90ZVdlYkluc3BlY3RvclZpZXdDb250cm9sbGVyLm1tOgorICAgICAgICAoLVtfV0tS
ZW1vdGVXZWJJbnNwZWN0b3JWaWV3Q29udHJvbGxlciBzaG93RXh0ZW5zaW9uVGFiV2l0aElkZW50
aWZpZXI6Y29tcGxldGlvbkhhbmRsZXI6XSk6CisgICAgICAgICogVUlQcm9jZXNzL0luc3BlY3Rv
ci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXJQcm94eS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlclByb3h5OjpzaG93RXh0ZW5z
aW9uVGFiKToKKyAgICAgICAgKiBVSVByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJRXh0
ZW5zaW9uQ29udHJvbGxlclByb3h5Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbnNwZWN0b3Iv
V2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyOjpzaG93RXh0ZW5zaW9uVGFiKToKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRy
b2xsZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4
dGVuc2lvbkNvbnRyb2xsZXIubWVzc2FnZXMuaW46CisKIDIwMjEtMDktMjEgIEJKIEJ1cmcgIDxi
YnVyZ0BhcHBsZS5jb20+CiAKICAgICAgICAgW0NvY29hXSBiYWNrcG9ydCBzaG93Q29uc29sZSgp
IGFuZCBzaG93UmVzb3VyY2VzKCkgZm9yIFJlbW90ZVdlYkluc3BlY3RvclVJCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9XZWJJbnNw
ZWN0b3JFeHRlbnNpb25Db250cm9sbGVyLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvQ29udHJvbGxlcnMvV2ViSW5zcGVjdG9yRXh0ZW5zaW9uQ29udHJvbGxlci5qcwpp
bmRleCA0NmUzNzc0ZDA1ZGJkZWE0MDRmNjc0Zjg4MzY4NDUxYjY0NzQ4ZjkwLi5lZGIwOWMwNGM3
MGFlOTY1YjNjMTc2NTVjYTEyMDgxNGY4YTIwNGEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9XZWJJbnNwZWN0b3JFeHRlbnNpb25D
b250cm9sbGVyLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Nv
bnRyb2xsZXJzL1dlYkluc3BlY3RvckV4dGVuc2lvbkNvbnRyb2xsZXIuanMKQEAgLTE1MSw4ICsx
NTEsMjQgQEAgV0kuV2ViSW5zcGVjdG9yRXh0ZW5zaW9uQ29udHJvbGxlciA9IGNsYXNzIFdlYklu
c3BlY3RvckV4dGVuc2lvbkNvbnRyb2xsZXIgZXh0ZW4KICAgICAgICAgICAgIHJldHVybiBXSS5X
ZWJJbnNwZWN0b3JFeHRlbnNpb24uRXJyb3JDb2RlLkludmFsaWRSZXF1ZXN0OwogICAgICAgICAK
ICAgICAgICAgcmV0dXJuIHRhcmdldC5QYWdlQWdlbnQucmVsb2FkLmludm9rZSh7aWdub3JlQ2Fj
aGV9KTsKLSAgICAgICAgCi0gICAgICAgIAorICAgIH0KKyAgICAKKyAgICBzaG93RXh0ZW5zaW9u
VGFiKGV4dGVuc2lvblRhYklEKQorICAgIHsKKyAgICAgICAgbGV0IHRhYkNvbnRlbnRWaWV3ID0g
dGhpcy5fZXh0ZW5zaW9uVGFiQ29udGVudFZpZXdGb3JFeHRlbnNpb25UYWJJRE1hcC5nZXQoZXh0
ZW5zaW9uVGFiSUQpOworICAgICAgICBpZiAoIXRhYkNvbnRlbnRWaWV3KSB7CisgICAgICAgICAg
ICBXSS5yZXBvcnRJbnRlcm5hbEVycm9yKCJVbmFibGUgdG8gc2hvdyBleHRlbnNpb24gdGFiIHdp
dGggdW5rbm93biBleHRlbnNpb25UYWJJRDogIiArIGV4dGVuc2lvblRhYklEKTsKKyAgICAgICAg
ICAgIHJldHVybiBXSS5XZWJJbnNwZWN0b3JFeHRlbnNpb24uRXJyb3JDb2RlLkludmFsaWRSZXF1
ZXN0OworICAgICAgICB9CisKKyAgICAgICAgbGV0IHN1Y2Nlc3MgPSBXSS50YWJCcm93c2VyLnNo
b3dUYWJGb3JDb250ZW50Vmlldyh0YWJDb250ZW50VmlldywgeworICAgICAgICAgICAgaW5pdGlh
dG9ySGludDogV0kuVGFiQnJvd3Nlci5UYWJOYXZpZ2F0aW9uSW5pdGlhdG9yLkZyb250ZW5kQVBJ
LAorICAgICAgICB9KTsKKworICAgICAgICBpZiAoIXN1Y2Nlc3MpIHsKKyAgICAgICAgICAgIFdJ
LnJlcG9ydEludGVybmFsRXJyb3IoIlVuYWJsZSB0byBzaG93IGV4dGVuc2lvbiB0YWIgd2l0aCBl
eHRlbnNpb25UYWJJRDogIiArIGV4dGVuc2lvblRhYklEKTsKKyAgICAgICAgICAgIHJldHVybiBX
SS5XZWJJbnNwZWN0b3JFeHRlbnNpb24uRXJyb3JDb2RlLkludGVybmFsRXJyb3I7CisgICAgICAg
IH0KICAgICB9CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9Qcm90b2NvbC9JbnNwZWN0b3JGcm9udGVuZEFQSS5qcyBiL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Byb3RvY29sL0luc3BlY3RvckZyb250ZW5kQVBJLmpzCmlu
ZGV4IGFmMmMxODliOTk4ZjNkZTY1ZWRjY2IxNjFkODFmNjNiNjdjYjRiNTIuLjQyOGM1NDMzZjZj
NGRjYTA4ODA5MjY4ZTIwNmMxMzg2ZjU4ZjdiYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Byb3RvY29sL0luc3BlY3RvckZyb250ZW5kQVBJLmpzCisr
KyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Byb3RvY29sL0luc3BlY3Rv
ckZyb250ZW5kQVBJLmpzCkBAIC0yMzAsNCArMjMwLDEwIEBAIEluc3BlY3RvckZyb250ZW5kQVBJ
ID0gewogICAgIHsKICAgICAgICAgcmV0dXJuIFdJLnNoYXJlZEFwcC5leHRlbnNpb25Db250cm9s
bGVyLnJlbG9hZEZvckV4dGVuc2lvbihleHRlbnNpb25JRCwge2lnbm9yZUNhY2hlLCB1c2VyQWdl
bnQsIGluamVjdGVkU2NyaXB0fSk7CiAgICAgfSwKKworICAgIC8vIFJldHVybnMgYSBXSS5XZWJJ
bnNwZWN0b3JFeHRlbnNpb24uRXJyb3JDb2RlIGlmIGFuIGVycm9yIG9jY3VycmVkLCBvdGhlcndp
c2Ugbm90aGluZy4KKyAgICBzaG93RXh0ZW5zaW9uVGFiKGV4dGVuc2lvblRhYklEKQorICAgIHsK
KyAgICAgICAgcmV0dXJuIFdJLnNoYXJlZEFwcC5leHRlbnNpb25Db250cm9sbGVyLnNob3dFeHRl
bnNpb25UYWIoZXh0ZW5zaW9uVGFiSUQpOworICAgIH0KIH07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9yLm1tIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0luc3BlY3Rvci5tbQppbmRleCBkNjk1ZjFmZmZjMzhh
ZDE4OTU0ZGY3NTQ3MmFiM2Y0NzlkNmE2NDNiLi4xMTg0YjJhOTU5MjczN2M4ZWU0YmZhYzFlOTNk
OGFjZDk3MGZhNmRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvX1dLSW5zcGVjdG9yLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9fV0tJbnNwZWN0b3IubW0KQEAgLTI3MCw0ICsyNzAsMjQgQEAgLSAodm9pZCl1bnJlZ2lzdGVy
RXh0ZW5zaW9uOihfV0tJbnNwZWN0b3JFeHRlbnNpb24gKilleHRlbnNpb24gY29tcGxldGlvbkhh
bmRsZXIKICNlbmRpZgogfQogCistICh2b2lkKXNob3dFeHRlbnNpb25UYWJXaXRoSWRlbnRpZmll
cjooTlNTdHJpbmcgKilleHRlbnNpb25UYWJJZGVudGlmaWVyIGNvbXBsZXRpb25IYW5kbGVyOih2
b2lkKF4pKE5TRXJyb3IgKikpY29tcGxldGlvbkhhbmRsZXIKK3sKKyNpZiBFTkFCTEUoSU5TUEVD
VE9SX0VYVEVOU0lPTlMpCisgICAgLy8gSXQgaXMgYW4gZXJyb3IgdG8gY2FsbCB0aGlzIG1ldGhv
ZCBwcmlvciB0byBjcmVhdGluZyBhIGZyb250ZW5kIChpLmUuLCB3aXRoIC1jb25uZWN0IG9yIC1z
aG93KS4KKyAgICBpZiAoIV9pbnNwZWN0b3ItPmV4dGVuc2lvbkNvbnRyb2xsZXIoKSkgeworICAg
ICAgICBjb21wbGV0aW9uSGFuZGxlcihbTlNFcnJvciBlcnJvcldpdGhEb21haW46V0tFcnJvckRv
bWFpbiBjb2RlOldLRXJyb3JVbmtub3duIHVzZXJJbmZvOkB7IE5TTG9jYWxpemVkRmFpbHVyZVJl
YXNvbkVycm9yS2V5OiBJbnNwZWN0b3I6OmV4dGVuc2lvbkVycm9yVG9TdHJpbmcoSW5zcGVjdG9y
OjpFeHRlbnNpb25FcnJvcjo6SW52YWxpZFJlcXVlc3QpfV0pOworICAgICAgICByZXR1cm47Cisg
ICAgfQorCisgICAgX2luc3BlY3Rvci0+ZXh0ZW5zaW9uQ29udHJvbGxlcigpLT5zaG93RXh0ZW5z
aW9uVGFiKGV4dGVuc2lvblRhYklkZW50aWZpZXIsIFtwcm90ZWN0ZWRTZWxmID0gcmV0YWluUHRy
KHNlbGYpLCBjYXB0dXJlZEJsb2NrID0gbWFrZUJsb2NrUHRyKGNvbXBsZXRpb25IYW5kbGVyKV0g
KEV4cGVjdGVkPGJvb2wsIEluc3BlY3Rvcjo6RXh0ZW5zaW9uRXJyb3I+IHJlc3VsdCkgbXV0YWJs
ZSB7CisgICAgICAgIGlmICghcmVzdWx0KSB7CisgICAgICAgICAgICBjYXB0dXJlZEJsb2NrKFtO
U0Vycm9yIGVycm9yV2l0aERvbWFpbjpXS0Vycm9yRG9tYWluIGNvZGU6V0tFcnJvclVua25vd24g
dXNlckluZm86QHsgTlNMb2NhbGl6ZWRGYWlsdXJlUmVhc29uRXJyb3JLZXk6IEluc3BlY3Rvcjo6
ZXh0ZW5zaW9uRXJyb3JUb1N0cmluZyhyZXN1bHQuZXJyb3IoKSl9XSk7CisgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBjYXB0dXJlZEJsb2NrKG5pbCk7CisgICAgfSk7
CisjZW5kaWYKK30KKwogQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL19XS0luc3BlY3RvckV4dGVuc2lvbkhvc3QuaCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9fV0tJbnNwZWN0b3JFeHRlbnNpb25Ib3N0LmgKaW5kZXggM2I4ZjUx
ZTcxY2Y2NjI1YmY5YzY1OGI2NzU3MTI3NjFjZDUwODA4OS4uOWNkYjIwZDg4Y2ZjYjFmMDcyMjgy
YTA4MDRiMGJiYTgzOTczYTdlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL19XS0luc3BlY3RvckV4dGVuc2lvbkhvc3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9yRXh0ZW5zaW9uSG9zdC5oCkBAIC01Myw2
ICs1MywxNSBAQCBOU19BU1NVTUVfTk9OTlVMTF9CRUdJTgogICovCiAtICh2b2lkKXVucmVnaXN0
ZXJFeHRlbnNpb246KF9XS0luc3BlY3RvckV4dGVuc2lvbiAqKWV4dGVuc2lvbiBjb21wbGV0aW9u
SGFuZGxlcjoodm9pZCheKShOU0Vycm9yICogX051bGxhYmxlKSljb21wbGV0aW9uSGFuZGxlcjsK
IAorLyoqCisgKiBAYWJzdHJhY3QgT3BlbnMgdGhlIHNwZWNpZmllZCBleHRlbnNpb24gdGFiIGlu
IHRoZSBhc3NvY2lhdGVkIFdlYiBJbnNwZWN0b3IuCisgKiBUaGlzIHdpbGwgb3BlbiB0aGUgYXNz
b2NpYXRlZCBXZWIgSW5zcGVjdG9yIGlmIGl0IGlzIG5vdCBhbHJlYWR5IG9wZW4uCisgKiBAcGFy
YW0gZXh0ZW5zaW9uVGFiSWRlbnRpZmllciBBbiBpZGVudGlmaWVyIGZvciBhbiBleHRlbnNpb24g
dGFiIGNyZWF0ZWQgdXNpbmcgV0tJbnNwZWN0b3JFeHRlbnNpb24gbWV0aG9kcy4KKyAqIEBwYXJh
bSBjb21wbGV0aW9uSGFuZGxlciBUaGUgY29tcGxldGlvbiBoYW5kbGVyIHRvIGJlIGNhbGxlZCB3
aGVuIHRoZSByZXF1ZXN0IHRvIHNob3cgdGhlIHRhYiBzdWNjZWVkcyBvciBmYWlscy4KKyAqIEBk
aXNjdXNzaW9uIFRoaXMgbWV0aG9kIGhhcyBubyBlZmZlY3QgaWYgdGhlIGV4dGVuc2lvblRhYklk
ZW50aWZpZXIgaXMgaW52YWxpZC4KKyAqLworLSAodm9pZClzaG93RXh0ZW5zaW9uVGFiV2l0aElk
ZW50aWZpZXI6KE5TU3RyaW5nICopZXh0ZW5zaW9uVGFiSWRlbnRpZmllciBjb21wbGV0aW9uSGFu
ZGxlcjoodm9pZCheKShOU0Vycm9yICogX051bGxhYmxlKSljb21wbGV0aW9uSGFuZGxlcjsKKwog
LyoqCiAgKiBAYWJzdHJhY3QgVGhlIHdlYiB2aWV3IHRoYXQgaXMgdXNlZCB0byBob3N0IGV4dGVu
c2lvbiB0YWJzIGNyZWF0ZWQgdmlhIF9XS0luc3BlY3RvckV4dGVuc2lvbi4KICAqIEBkaXNjdXNz
aW9uIEJyb3dzaW5nIGNvbnRleHRzIGZvciBleHRlbnNpb24gdGFicyBhcmUgbG9hZGVkIGluIHN1
YmZyYW1lcyBvZiB0aGlzIHdlYiB2aWV3LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL19XS1JlbW90ZVdlYkluc3BlY3RvclZpZXdDb250cm9sbGVyLm1tIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1JlbW90ZVdlYkluc3BlY3RvclZp
ZXdDb250cm9sbGVyLm1tCmluZGV4IDEyMmM4Mjg0YmJlNDdhNDM3OThlNjA0M2I1MzExM2UxOGYw
N2YwMWEuLjBkM2Q4ZDNlNmU3MDM0MmE0OTkzODllYTVmYTViNWNhZDc4NzcwMTEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tSZW1vdGVXZWJJbnNwZWN0
b3JWaWV3Q29udHJvbGxlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvX1dLUmVtb3RlV2ViSW5zcGVjdG9yVmlld0NvbnRyb2xsZXIubW0KQEAgLTIxNyw2ICsyMTcs
MjYgQEAgLSAodm9pZClzaG93UmVzb3VyY2VzCiAgICAgbV9yZW1vdGVJbnNwZWN0b3JQcm94eS0+
c2hvd1Jlc291cmNlcygpOwogfQogCistICh2b2lkKXNob3dFeHRlbnNpb25UYWJXaXRoSWRlbnRp
ZmllcjooTlNTdHJpbmcgKilleHRlbnNpb25UYWJJZGVudGlmaWVyIGNvbXBsZXRpb25IYW5kbGVy
Oih2b2lkKF4pKE5TRXJyb3IgKiBfTnVsbGFibGUpKWNvbXBsZXRpb25IYW5kbGVyCit7CisjaWYg
RU5BQkxFKElOU1BFQ1RPUl9FWFRFTlNJT05TKQorICAgIC8vIEl0IGlzIGFuIGVycm9yIHRvIGNh
bGwgdGhpcyBtZXRob2QgcHJpb3IgdG8gY3JlYXRpbmcgYSBmcm9udGVuZCAoaS5lLiwgd2l0aCAt
Y29ubmVjdCBvciAtc2hvdykuCisgICAgaWYgKCFtX3JlbW90ZUluc3BlY3RvclByb3h5LT5leHRl
bnNpb25Db250cm9sbGVyKCkpIHsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoW05TRXJyb3Ig
ZXJyb3JXaXRoRG9tYWluOldLRXJyb3JEb21haW4gY29kZTpXS0Vycm9yVW5rbm93biB1c2VySW5m
bzpAeyBOU0xvY2FsaXplZEZhaWx1cmVSZWFzb25FcnJvcktleTogSW5zcGVjdG9yOjpleHRlbnNp
b25FcnJvclRvU3RyaW5nKEluc3BlY3Rvcjo6RXh0ZW5zaW9uRXJyb3I6OkludmFsaWRSZXF1ZXN0
KX1dKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG1fcmVtb3RlSW5zcGVjdG9yUHJv
eHktPmV4dGVuc2lvbkNvbnRyb2xsZXIoKS0+c2hvd0V4dGVuc2lvblRhYihleHRlbnNpb25UYWJJ
ZGVudGlmaWVyLCBbcHJvdGVjdGVkU2VsZiA9IHJldGFpblB0cihzZWxmKSwgY2FwdHVyZWRCbG9j
ayA9IG1ha2VCbG9ja1B0cihjb21wbGV0aW9uSGFuZGxlcildIChFeHBlY3RlZDxib29sLCBJbnNw
ZWN0b3I6OkV4dGVuc2lvbkVycm9yPiByZXN1bHQpIG11dGFibGUgeworICAgICAgICBpZiAoIXJl
c3VsdCkgeworICAgICAgICAgICAgY2FwdHVyZWRCbG9jayhbTlNFcnJvciBlcnJvcldpdGhEb21h
aW46V0tFcnJvckRvbWFpbiBjb2RlOldLRXJyb3JVbmtub3duIHVzZXJJbmZvOkB7IE5TTG9jYWxp
emVkRmFpbHVyZVJlYXNvbkVycm9yS2V5OiBJbnNwZWN0b3I6OmV4dGVuc2lvbkVycm9yVG9TdHJp
bmcocmVzdWx0LmVycm9yKCkpfV0pOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisK
KyAgICAgICAgY2FwdHVyZWRCbG9jayhuaWwpOworICAgIH0pOworI2VuZGlmCit9CisKIEBlbmQK
IAogTlNfQVNTVU1FX05PTk5VTExfRU5ECmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyUHJveHkuY3Bw
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJRXh0ZW5z
aW9uQ29udHJvbGxlclByb3h5LmNwcAppbmRleCAyMzUxMmFmMGYxZDVlYWYxZmVhOGVmYzNiODVj
OTQyYzZiZjUzNmZmLi4yYzlkNTViZTFhNDZkMzIyYmRiNDY3ODg4YTc3NWUwNWI3YzM4NDk5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9y
VUlFeHRlbnNpb25Db250cm9sbGVyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXJQcm94eS5jcHAK
QEAgLTE4Nyw2ICsxODcsMTkgQEAgdm9pZCBXZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xs
ZXJQcm94eTo6cmVsb2FkRm9yRXh0ZW5zaW9uKGNvbnN0IEluc3BlY3RvcjoKICAgICB9KTsKIH0K
IAordm9pZCBXZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXJQcm94eTo6c2hvd0V4dGVu
c2lvblRhYihjb25zdCBJbnNwZWN0b3I6OkV4dGVuc2lvblRhYklEJiBleHRlbnNpb25UYWJJZGVu
dGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4cGVjdGVkPGJvb2wsIEluc3BlY3Rvcjo6
RXh0ZW5zaW9uRXJyb3I+KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICB3aGVuRnJvbnRl
bmRIYXNMb2FkZWQoW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIodGhpcyksIGV4dGVuc2lvblRhYklk
ZW50aWZpZXIsIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcild
ICgpIG11dGFibGUgeworICAgICAgICBpZiAoIXdlYWtUaGlzIHx8ICF3ZWFrVGhpcy0+bV9pbnNw
ZWN0b3JQYWdlKSB7CisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihtYWtlVW5leHBlY3Rl
ZChJbnNwZWN0b3I6OkV4dGVuc2lvbkVycm9yOjpDb250ZXh0RGVzdHJveWVkKSk7CisgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICB3ZWFrVGhpcy0+bV9pbnNwZWN0b3JQ
YWdlLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYkluc3BlY3RvclVJRXh0ZW5zaW9u
Q29udHJvbGxlcjo6U2hvd0V4dGVuc2lvblRhYiB7IGV4dGVuc2lvblRhYklkZW50aWZpZXIgfSwg
V1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworICAgIH0pOworfQorCisKIC8vIFdlYkluc3Bl
Y3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlclByb3h5IElQQyBtZXNzYWdlcy4KIAogdm9pZCBXZWJJ
bnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXJQcm94eTo6ZGlkU2hvd0V4dGVuc2lvblRhYihj
b25zdCBJbnNwZWN0b3I6OkV4dGVuc2lvbklEJiBleHRlbnNpb25JRCwgY29uc3QgSW5zcGVjdG9y
OjpFeHRlbnNpb25UYWJJRCYgZXh0ZW5zaW9uVGFiSUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVy
UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JV
SUV4dGVuc2lvbkNvbnRyb2xsZXJQcm94eS5oCmluZGV4IGYyOTQ3ODE1NDY1ZmEwNWUzM2YwMGVk
NWZlNjQzYTI4OTcwZGRhOWIuLmNhMjNlYzdhZmIyZTFlYmNmOTg1NzRmZTc5ZTk0MGQ4NDZhMzMx
N2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNw
ZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXJQcm94eS5o
CkBAIC02MCw2ICs2MCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGNyZWF0ZVRhYkZvckV4dGVuc2lv
bihjb25zdCBJbnNwZWN0b3I6OkV4dGVuc2lvbklEJiwgY29uc3QgU3RyaW5nJiB0YWJOYW1lLCBj
b25zdCBVUkwmIHRhYkljb25VUkwsIGNvbnN0IFVSTCYgc291cmNlVVJMLCBXVEY6OkNvbXBsZXRp
b25IYW5kbGVyPHZvaWQoRXhwZWN0ZWQ8SW5zcGVjdG9yOjpFeHRlbnNpb25UYWJJRCwgSW5zcGVj
dG9yOjpFeHRlbnNpb25FcnJvcj4pPiYmKTsKICAgICB2b2lkIGV2YWx1YXRlU2NyaXB0Rm9yRXh0
ZW5zaW9uKGNvbnN0IEluc3BlY3Rvcjo6RXh0ZW5zaW9uSUQmLCBjb25zdCBTdHJpbmcmIHNjcmlw
dFNvdXJjZSwgY29uc3Qgc3RkOjpvcHRpb25hbDxVUkw+JiBmcmFtZVVSTCwgY29uc3Qgc3RkOjpv
cHRpb25hbDxVUkw+JiBjb250ZXh0U2VjdXJpdHlPcmlnaW4sIGNvbnN0IHN0ZDo6b3B0aW9uYWw8
Ym9vbD4mIHVzZUNvbnRlbnRTY3JpcHRDb250ZXh0LCBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZv
aWQoSW5zcGVjdG9yOjpFeHRlbnNpb25FdmFsdWF0aW9uUmVzdWx0KT4mJik7CiAgICAgdm9pZCBy
ZWxvYWRGb3JFeHRlbnNpb24oY29uc3QgSW5zcGVjdG9yOjpFeHRlbnNpb25JRCYsIGNvbnN0IHN0
ZDo6b3B0aW9uYWw8Ym9vbD4mIGlnbm9yZUNhY2hlLCBjb25zdCBzdGQ6Om9wdGlvbmFsPFN0cmlu
Zz4mIHVzZXJBZ2VudCwgY29uc3Qgc3RkOjpvcHRpb25hbDxTdHJpbmc+JiBpbmplY3RlZFNjcmlw
dCwgV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEluc3BlY3Rvcjo6RXh0ZW5zaW9uRXZhbHVh
dGlvblJlc3VsdCk+JiYpOworICAgIHZvaWQgc2hvd0V4dGVuc2lvblRhYihjb25zdCBJbnNwZWN0
b3I6OkV4dGVuc2lvblRhYklEJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDxib29s
LCBJbnNwZWN0b3I6OkV4dGVuc2lvbkVycm9yPik+JiYpOwogCiAgICAgLy8gV2ViSW5zcGVjdG9y
VUlFeHRlbnNpb25Db250cm9sbGVyUHJveHkgSVBDIG1lc3NhZ2VzLgogICAgIHZvaWQgZGlkU2hv
d0V4dGVuc2lvblRhYihjb25zdCBJbnNwZWN0b3I6OkV4dGVuc2lvbklEJiwgY29uc3QgSW5zcGVj
dG9yOjpFeHRlbnNpb25UYWJJRCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXIuY3BwIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNv
bnRyb2xsZXIuY3BwCmluZGV4IDE3M2IyMTg0MmQxYmZkNzJjMWQxNzBjYjI5YWU5OGRhNzhiNWMw
YjMuLjkwOTBiMTZhNzk1OGU0YmM4MTJlMDJkMDJjZDk0NTA5M2NkNWY1MjQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUlFeHRlbnNp
b25Db250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9y
L1dlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlci5jcHAKQEAgLTMyNiw2ICszMjYsMzkg
QEAgdm9pZCBXZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXI6OnJlbG9hZEZvckV4dGVu
c2lvbihjb25zdCBJbnNwZWN0b3I6OkV4dGUKICAgICB9KTsKIH0KIAordm9pZCBXZWJJbnNwZWN0
b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXI6OnNob3dFeHRlbnNpb25UYWIoY29uc3QgSW5zcGVjdG9y
OjpFeHRlbnNpb25UYWJJRCYgZXh0ZW5zaW9uVGFiSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChFeHBlY3RlZDxib29sLCBJbnNwZWN0b3I6OkV4dGVuc2lvbkVycm9yPik+JiYgY29t
cGxldGlvbkhhbmRsZXIpCit7CisgICAgaWYgKCFtX2Zyb250ZW5kQ2xpZW50KSB7CisgICAgICAg
IGNvbXBsZXRpb25IYW5kbGVyKG1ha2VVbmV4cGVjdGVkKEluc3BlY3Rvcjo6RXh0ZW5zaW9uRXJy
b3I6OkludmFsaWRSZXF1ZXN0KSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBWZWN0
b3I8UmVmPEpTT046OlZhbHVlPj4gYXJndW1lbnRzIHsKKyAgICAgICAgSlNPTjo6VmFsdWU6OmNy
ZWF0ZShleHRlbnNpb25UYWJJZGVudGlmaWVyKSwKKyAgICB9OworCisgICAgbV9mcm9udGVuZENs
aWVudC0+ZnJvbnRlbmRBUElEaXNwYXRjaGVyKCkuZGlzcGF0Y2hDb21tYW5kV2l0aFJlc3VsdEFz
eW5jKCJzaG93RXh0ZW5zaW9uVGFiIl9zLCBXVEZNb3ZlKGFyZ3VtZW50cyksIFt3ZWFrVGhpcyA9
IG1ha2VXZWFrUHRyKHRoaXMpLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlv
bkhhbmRsZXIpXShJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXI6OkV2YWx1YXRpb25SZXN1
bHQmJiByZXN1bHQpIG11dGFibGUgeworICAgICAgICBpZiAoIXdlYWtUaGlzKSB7CisgICAgICAg
ICAgICBjb21wbGV0aW9uSGFuZGxlcihtYWtlVW5leHBlY3RlZChJbnNwZWN0b3I6OkV4dGVuc2lv
bkVycm9yOjpDb250ZXh0RGVzdHJveWVkKSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAg
IH0KKworICAgICAgICBhdXRvKiBmcm9udGVuZEdsb2JhbE9iamVjdCA9IHdlYWtUaGlzLT5tX2Zy
b250ZW5kQ2xpZW50LT5mcm9udGVuZEFQSURpc3BhdGNoZXIoKS5mcm9udGVuZEdsb2JhbE9iamVj
dCgpOworICAgICAgICBpZiAoIWZyb250ZW5kR2xvYmFsT2JqZWN0KSB7CisgICAgICAgICAgICBj
b21wbGV0aW9uSGFuZGxlcihtYWtlVW5leHBlY3RlZChJbnNwZWN0b3I6OkV4dGVuc2lvbkVycm9y
OjpDb250ZXh0RGVzdHJveWVkKSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKwor
ICAgICAgICBpZiAoYXV0byBwYXJzZWRFcnJvciA9IHdlYWtUaGlzLT5wYXJzZUV4dGVuc2lvbkVy
cm9yRnJvbUV2YWx1YXRpb25SZXN1bHQocmVzdWx0KSkgeworICAgICAgICAgICAgTE9HKEluc3Bl
Y3RvciwgIkludGVybmFsIGVycm9yIGVuY291bnRlcmVkIHdoaWxlIGV2YWx1YXRpbmcgdXBvbiB0
aGUgZnJvbnRlbmQ6ICVzIiwgSW5zcGVjdG9yOjpleHRlbnNpb25FcnJvclRvU3RyaW5nKCpwYXJz
ZWRFcnJvcikudXRmOCgpLmRhdGEoKSk7CisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlciht
YWtlVW5leHBlY3RlZCgqcGFyc2VkRXJyb3IpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgfQorCisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHRydWUpOworICAgIH0pOworfQorCiB2
b2lkIFdlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlcjo6ZGlkU2hvd0V4dGVuc2lvblRh
Yihjb25zdCBJbnNwZWN0b3I6OkV4dGVuc2lvbklEJiBleHRlbnNpb25JRCwgY29uc3QgSW5zcGVj
dG9yOjpFeHRlbnNpb25UYWJJRCYgZXh0ZW5zaW9uVGFiSUQpCiB7CiAgICAgV2ViUHJvY2Vzczo6
c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2Vi
SW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyUHJveHk6OkRpZFNob3dFeHRlbnNpb25UYWIg
eyBleHRlbnNpb25JRCwgZXh0ZW5zaW9uVGFiSUQgfSwgbV9pbnNwZWN0b3JQYWdlSWRlbnRpZmll
cik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1dlYklu
c3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXIuaAppbmRleCAxOGVh
OGZmYzJhZjgwMjNiYjI5YzdjZGExOTQ0ZmJlNTVkMDYzZmUxLi5jMzYxMmFkZDAwNTlkNzRlYjQ3
YTkxZTVkZTM0NTc0MTI0OGQwZjQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlci5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUlFeHRlbnNpb25D
b250cm9sbGVyLmgKQEAgLTY4LDEyICs2OCwxMSBAQCBwdWJsaWM6CiAgICAgdm9pZCBjcmVhdGVU
YWJGb3JFeHRlbnNpb24oY29uc3QgSW5zcGVjdG9yOjpFeHRlbnNpb25JRCYsIGNvbnN0IFN0cmlu
ZyYgdGFiTmFtZSwgY29uc3QgVVJMJiB0YWJJY29uVVJMLCBjb25zdCBVUkwmIHNvdXJjZVVSTCwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDxJbnNwZWN0b3I6OkV4dGVuc2lvblRhYklE
LCBJbnNwZWN0b3I6OkV4dGVuc2lvbkVycm9yPik+JiYpOwogICAgIHZvaWQgZXZhbHVhdGVTY3Jp
cHRGb3JFeHRlbnNpb24oY29uc3QgSW5zcGVjdG9yOjpFeHRlbnNpb25JRCYsIGNvbnN0IFN0cmlu
ZyYgc2NyaXB0U291cmNlLCBjb25zdCBzdGQ6Om9wdGlvbmFsPFVSTD4mIGZyYW1lVVJMLCBjb25z
dCBzdGQ6Om9wdGlvbmFsPFVSTD4mIGNvbnRleHRTZWN1cml0eU9yaWdpbiwgY29uc3Qgc3RkOjpv
cHRpb25hbDxib29sPiYgdXNlQ29udGVudFNjcmlwdENvbnRleHQsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiwgY29uc3Qgc3RkOjpvcHRpb25hbDxXZWJD
b3JlOjpFeGNlcHRpb25EZXRhaWxzPiYsIGNvbnN0IHN0ZDo6b3B0aW9uYWw8SW5zcGVjdG9yOjpF
eHRlbnNpb25FcnJvcj4mKT4mJik7CiAgICAgdm9pZCByZWxvYWRGb3JFeHRlbnNpb24oY29uc3Qg
SW5zcGVjdG9yOjpFeHRlbnNpb25JRCYsIGNvbnN0IHN0ZDo6b3B0aW9uYWw8Ym9vbD4mIGlnbm9y
ZUNhY2hlLCBjb25zdCBzdGQ6Om9wdGlvbmFsPFN0cmluZz4mIHVzZXJBZ2VudCwgY29uc3Qgc3Rk
OjpvcHRpb25hbDxTdHJpbmc+JiBpbmplY3RlZFNjcmlwdCwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChjb25zdCBzdGQ6Om9wdGlvbmFsPEluc3BlY3Rvcjo6RXh0ZW5zaW9uRXJyb3I+Jik+JiYpOwor
ICAgIHZvaWQgc2hvd0V4dGVuc2lvblRhYihjb25zdCBJbnNwZWN0b3I6OkV4dGVuc2lvblRhYklE
JiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDxib29sLCBJbnNwZWN0b3I6OkV4dGVu
c2lvbkVycm9yPik+JiYpOwogCiAgICAgLy8gQ2FsbGJhY2tzIGZyb20gdGhlIGZyb250ZW5kLgot
I2lmIEVOQUJMRShJTlNQRUNUT1JfRVhURU5TSU9OUykKICAgICB2b2lkIGRpZFNob3dFeHRlbnNp
b25UYWIoY29uc3QgSW5zcGVjdG9yOjpFeHRlbnNpb25JRCYsIGNvbnN0IEluc3BlY3Rvcjo6RXh0
ZW5zaW9uVGFiSUQmKTsKICAgICB2b2lkIGRpZEhpZGVFeHRlbnNpb25UYWIoY29uc3QgSW5zcGVj
dG9yOjpFeHRlbnNpb25JRCYsIGNvbnN0IEluc3BlY3Rvcjo6RXh0ZW5zaW9uVGFiSUQmKTsKLSNl
bmRpZgogCiBwcml2YXRlOgogICAgIEpTQzo6SlNPYmplY3QqIHVud3JhcEV2YWx1YXRpb25SZXN1
bHRBc09iamVjdChXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXI6OkV2YWx1
YXRpb25SZXN1bHQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3Bl
Y3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXIubWVzc2FnZXMuaW4gYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29u
dHJvbGxlci5tZXNzYWdlcy5pbgppbmRleCA5NDgxOWZiMDliMDE2ZDEzZmU5ZmEyMDNiYzA4MzAy
ZjY2NGZjODhlLi42YTAwZWNmZmU1ODMwZmYxNjQ1ZTkwMTdiY2U2ZDc2MWYyNzg3MjFjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJ
RXh0ZW5zaW9uQ29udHJvbGxlci5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlci5tZXNzYWdl
cy5pbgpAQCAtMjksNiArMjksNyBAQCBtZXNzYWdlcyAtPiBXZWJJbnNwZWN0b3JVSUV4dGVuc2lv
bkNvbnRyb2xsZXIgTm90UmVmQ291bnRlZCB7CiAgICAgQ3JlYXRlVGFiRm9yRXh0ZW5zaW9uKFN0
cmluZyBleHRlbnNpb25JRCwgU3RyaW5nIHRhYk5hbWUsIFVSTCB0YWJJY29uVVJMLCBVUkwgc291
cmNlVVJMKSAtPiAoRXhwZWN0ZWQ8U3RyaW5nLCBJbnNwZWN0b3I6OkV4dGVuc2lvbkVycm9yPiBy
ZXN1bHQpIEFzeW5jCiAgICAgRXZhbHVhdGVTY3JpcHRGb3JFeHRlbnNpb24oU3RyaW5nIGV4dGVu
c2lvbklELCBTdHJpbmcgc2NyaXB0U291cmNlLCBzdGQ6Om9wdGlvbmFsPFVSTD4gZnJhbWVVUkws
IHN0ZDo6b3B0aW9uYWw8VVJMPiBjb250ZXh0U2VjdXJpdHlPcmlnaW4sIHN0ZDo6b3B0aW9uYWw8
Ym9vbD4gdXNlQ29udGVudFNjcmlwdENvbnRleHQpIC0+IChJUEM6OkRhdGFSZWZlcmVuY2UgcmVz
dWx0RGF0YSwgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpFeGNlcHRpb25EZXRhaWxzPiBkZXRhaWxz
LCBzdGQ6Om9wdGlvbmFsPEluc3BlY3Rvcjo6RXh0ZW5zaW9uRXJyb3I+IGVycm9yKSBBc3luYwog
ICAgIFJlbG9hZEZvckV4dGVuc2lvbihTdHJpbmcgZXh0ZW5zaW9uSUQsIHN0ZDo6b3B0aW9uYWw8
Ym9vbD4gaWdub3JlQ2FjaGUsIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiB1c2VyQWdlbnQsIHN0ZDo6
b3B0aW9uYWw8U3RyaW5nPiBpbmplY3RlZFNjcmlwdCkgLT4gKHN0ZDo6b3B0aW9uYWw8SW5zcGVj
dG9yOjpFeHRlbnNpb25FcnJvcj4gZXJyb3IpIEFzeW5jCisgICAgU2hvd0V4dGVuc2lvblRhYihT
dHJpbmcgZXh0ZW5zaW9uVGFiSWRlbnRpZmllcikgLT4gKEV4cGVjdGVkPGJvb2wsIEluc3BlY3Rv
cjo6RXh0ZW5zaW9uRXJyb3I+IHJlc3VsdCkgQXN5bmMKIH0KIAogI2VuZGlmIC8vIEVOQUJMRShJ
TlNQRUNUT1JfRVhURU5TSU9OUykKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xz
L0NoYW5nZUxvZwppbmRleCA2OTUzZjMwYjM3ZWIyMGRjMzZiZmM0NWZiM2NjODY4YmJhMmQ4MDE2
Li4yZDAyYTcyYzYwMTZlNGUzNDAyM2YxMjRlNWZlZjhhM2I4NzI3ODc2IDEwMDY0NAotLS0gYS9U
b29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIw
MjEtMDktMjEgIEJKIEJ1cmcgIDxiYnVyZ0BhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBB
ZGQgU1BJIHRvIHNlbGVjdCBhIHRhYiBjcmVhdGVkIGJ5IF9XS0luc3BlY3RvckV4dGVuc2lvbgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMwNTgwCisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS84MzM3Mjg1MT4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDcmVhdGUgYSBuZXcgdGVzdCBmaWxlIGZvciBfV0tJ
bnNwZWN0b3JFeHRlbnNpb25EZWxlZ2F0ZS4gQWRkIGEKKyAgICAgICAgbmV3IHRlc3QgY2FzZSB0
aGF0IGV4ZXJjaXNlcyBjcmVhdGluZyBhbiBleHRlbnNpb24gdGFiLCBzaG93aW5nIGFuCisgICAg
ICAgIGV4dGVuc2lvbiB0YWIsIGFuZCB1c2VzIGRlbGVnYXRlIGNhbGxiYWNrcyBmb3IgZGlkU2hv
d1RhYi9kaWRIaWRlVGFiLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJ
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRDb2NvYS9JbnNwZWN0b3JFeHRlbnNpb24tVGFiSWNvbi0zMHgzMC5wbmc6IEFkZGVk
LgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvSW5zcGVjdG9yRXh0
ZW5zaW9uLWJhc2ljLXRhYi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL1dLSW5zcGVjdG9yRXh0ZW5zaW9uRGVsZWdhdGUubW06IEFkZGVkLgor
ICAgICAgICAocmVzZXRHbG9iYWxTdGF0ZSk6CisgICAgICAgICgtW1VJRGVsZWdhdGVGb3JUZXN0
aW5nSW5zcGVjdG9yRXh0ZW5zaW9uRGVsZWdhdGUgX3dlYlZpZXc6ZGlkQXR0YWNoTG9jYWxJbnNw
ZWN0b3I6XSk6CisgICAgICAgICgtW0luc3BlY3RvckV4dGVuc2lvbkRlbGVnYXRlRm9yVGVzdGlu
ZyBpbnNwZWN0b3JFeHRlbnNpb246ZGlkU2hvd1RhYldpdGhJZGVudGlmaWVyOl0pOgorICAgICAg
ICAoLVtJbnNwZWN0b3JFeHRlbnNpb25EZWxlZ2F0ZUZvclRlc3RpbmcgaW5zcGVjdG9yRXh0ZW5z
aW9uOmRpZEhpZGVUYWJXaXRoSWRlbnRpZmllcjpdKToKKyAgICAgICAgKFRFU1QpOgorCiAyMDIx
LTA5LTE3ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgWyBtYWNP
UyBSZWxlYXNlIF0gVGVzdFdlYktpdEFQSS5OZXR3b3JrUHJvY2Vzcy5Ccm9hZGNhc3RDaGFubmVs
Q3Jhc2hSZWNvdmVyeSBpcyBmbGFreSB0aW1pbmcgb3V0CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmlu
ZGV4IGM4ZjY4MjI4OWFhODFmNjk5NjcyN2FhMGQ1OTIyODlhZTA0ZGVhYWUuLjdhYmM5ZTE3ZDNm
MTI5ZDUxZWVkZGU2N2M4ZWM1OGVkNDE2OTdhNWYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBA
IC04OTIsNiArODkyLDkgQEAKIAkJOTk5OTEwOEIxRjM5M0M5NjAwOEFENDU1IC8qIENvcHlpbmcu
bW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OTk5MTA4
QTFGMzkzQzhCMDA4QUQ0NTUgLyogQ29weWluZy5tbSAqLzsgfTsKIAkJOTk5QjdFRTMyNTUxQzYz
QjAwRjQ1MEE0IC8qIFdLSW5zcGVjdG9yRXh0ZW5zaW9uSG9zdC5tbSBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5OUI3RUUyMjU1MUM2M0IwMEY0NTBBNCAv
KiBXS0luc3BlY3RvckV4dGVuc2lvbkhvc3QubW0gKi87IH07CiAJCTk5QjRGOUM2MjRFREVEOTcw
MDAyMkI4MiAvKiBXS0luc3BlY3RvckRlbGVnYXRlLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTlCNEY5QzUyNEVERUQ5NjAwMDIyQjgyIC8qIFdLSW5z
cGVjdG9yRGVsZWdhdGUubW0gKi87IH07CisJCTk5RTI4NDY0MjZGOTFGN0YwMDAzRjFGQSAvKiBX
S0luc3BlY3RvckV4dGVuc2lvbkRlbGVnYXRlLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOTlFMjg0NjMyNkY5MUY3RjAwMDNGMUZBIC8qIFdLSW5zcGVj
dG9yRXh0ZW5zaW9uRGVsZWdhdGUubW0gKi87IH07CisJCTk5RTI4NDY2MjZGOTNEQjUwMDAzRjFG
QSAvKiBJbnNwZWN0b3JFeHRlbnNpb24tVGFiSWNvbi0zMHgzMC5wbmcgaW4gQ29weSBSZXNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTlFMjg0NjUyNkY5M0Q3NjAw
MDNGMUZBIC8qIEluc3BlY3RvckV4dGVuc2lvbi1UYWJJY29uLTMweDMwLnBuZyAqLzsgfTsKKwkJ
OTlFMjg0NjgyNkY5NDE1NDAwMDNGMUZBIC8qIEluc3BlY3RvckV4dGVuc2lvbi1iYXNpYy10YWIu
aHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA5OUUyODQ2NzI2Rjk0MTNCMDAwM0YxRkEgLyogSW5zcGVjdG9yRXh0ZW5zaW9uLWJhc2ljLXRh
Yi5odG1sICovOyB9OwogCQk5QjAyRTBENjIzNUZBNDdEMDA0MDQ0QjIgLyogVGV4dE1hbmlwdWxh
dGlvbi5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlC
MDJFMEQ1MjM1RkE0N0QwMDQwNDRCMiAvKiBUZXh0TWFuaXB1bGF0aW9uLm1tICovOyB9OwogCQk5
QjA3ODZBNTFDNTg4NUMzMDBEMTU5RTMgLyogSW5qZWN0ZWRCdW5kbGVNYWtlQWxsU2hhZG93Um9v
dHNPcGVuX0J1bmRsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5QjA3ODZBNDFDNTg4NUMzMDBEMTU5RTMgLyogSW5qZWN0ZWRCdW5kbGVNYWtlQWxs
U2hhZG93Um9vdHNPcGVuX0J1bmRsZS5jcHAgKi87IH07CiAJCTlCMEMwNTE5MjRGREZCN0QwMEYy
RkUzMSAvKiBDb21wYWN0VW5pcXVlUHRyVHVwbGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUIwQzA1MTgyNEZERkI3MDAwRjJGRTMxIC8qIENvbXBh
Y3RVbmlxdWVQdHJUdXBsZS5jcHAgKi87IH07CkBAIC0xNTc2LDYgKzE1NzksOCBAQAogCQkJCTJF
RkYwNkNEMUQ4QTQyOUEwMDA0QkIzMCAvKiBpbnB1dC1maWVsZC1pbi1zY3JvbGxhYmxlLWRvY3Vt
ZW50Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJQ0UzNTI0RkExQjE0NDM4OTAwMjhB
N0M1IC8qIGlucHV0LWZvY3VzLWJsdXIuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQlD
RTZEMEVFMzI0MjZCOTMyMDAyQUQ5MDEgLyogaW5zZXJ0LXRleHQuaHRtbCBpbiBDb3B5IFJlc291
cmNlcyAqLywKKwkJCQk5OUUyODQ2ODI2Rjk0MTU0MDAwM0YxRkEgLyogSW5zcGVjdG9yRXh0ZW5z
aW9uLWJhc2ljLXRhYi5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAorCQkJCTk5RTI4NDY2MjZG
OTNEQjUwMDAzRjFGQSAvKiBJbnNwZWN0b3JFeHRlbnNpb24tVGFiSWNvbi0zMHgzMC5wbmcgaW4g
Q29weSBSZXNvdXJjZXMgKi8sCiAJCQkJNTdGNTZBNUMxQzdGOENDMTAwRjMxRDdFIC8qIElzTmF2
aWdhdGlvbkFjdGlvblRydXN0ZWQuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQlDOUI0
QUQyQzFFQ0E2RjdGMDBGNUZFQTAgLyoganMtYXV0b3BsYXktYXVkaW8uaHRtbCBpbiBDb3B5IFJl
c291cmNlcyAqLywKIAkJCQlDOTlCNjc1RDFFMzk3MjIwMDBGQzZDODAgLyoganMtcGxheS13aXRo
LWNvbnRyb2xzLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCkBAIC0yNjIyLDYgKzI2MjcsOSBA
QAogCQk5OTk5MTA4QTFGMzkzQzhCMDA4QUQ0NTUgLyogQ29weWluZy5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IENvcHlpbmcubW07IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTk5OUI3RUUyMjU1MUM2M0IwMEY0NTBBNCAvKiBXS0luc3BlY3RvckV4dGVu
c2lvbkhvc3QubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXS0lu
c3BlY3RvckV4dGVuc2lvbkhvc3QubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk5
QjRGOUM1MjRFREVEOTYwMDAyMkI4MiAvKiBXS0luc3BlY3RvckRlbGVnYXRlLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tJbnNwZWN0b3JEZWxlZ2F0ZS5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTlFMjg0NjMyNkY5MUY3RjAwMDNGMUZBIC8q
IFdLSW5zcGVjdG9yRXh0ZW5zaW9uRGVsZWdhdGUubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IHBhdGggPSBXS0luc3BlY3RvckV4dGVuc2lvbkRlbGVnYXRlLm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk5OUUyODQ2NTI2RjkzRDc2MDAwM0YxRkEgLyogSW5zcGVj
dG9yRXh0ZW5zaW9uLVRhYkljb24tMzB4MzAucG5nICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gaW1hZ2UucG5nOyBwYXRoID0gIkluc3BlY3RvckV4dGVu
c2lvbi1UYWJJY29uLTMweDMwLnBuZyI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk5
RTI4NDY3MjZGOTQxM0IwMDAzRjFGQSAvKiBJbnNwZWN0b3JFeHRlbnNpb24tYmFzaWMtdGFiLmh0
bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAiSW5zcGVjdG9yRXh0ZW5zaW9uLWJhc2lj
LXRhYi5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUIwMkUwRDUyMzVGQTQ3
RDAwNDA0NEIyIC8qIFRleHRNYW5pcHVsYXRpb24ubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBU
ZXh0TWFuaXB1bGF0aW9uLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5QjA3ODZB
MjFDNTg4MzBGMDBEMTU5RTMgLyogSW5qZWN0ZWRCdW5kbGVNYWtlQWxsU2hhZG93Um9vdHNPcGVu
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluamVjdGVkQnVuZGxl
TWFrZUFsbFNoYWRvd1Jvb3RzT3Blbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTlCMDc4NkE0MUM1ODg1QzMwMEQxNTlFMyAvKiBJbmplY3RlZEJ1bmRsZU1ha2VBbGxTaGFkb3dS
b290c09wZW5fQnVuZGxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEluamVjdGVkQnVuZGxlTWFrZUFsbFNoYWRvd1Jvb3RzT3Blbl9CdW5kbGUuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzY2Niw2ICszNjc0LDcgQEAKIAkJCQkzNzBDRTIyOTFG
NTczNDM0MDBFNzQxMEIgLyogV0tDb250ZW50Vmlld1RhcmdldEZvckFjdGlvbi5tbSAqLywKIAkJ
CQk1MUQxMjQ5NzFFNzYzQUY4MDAyQjI4MjAgLyogV0tIVFRQQ29va2llU3RvcmUubW0gKi8sCiAJ
CQkJOTlCNEY5QzUyNEVERUQ5NjAwMDIyQjgyIC8qIFdLSW5zcGVjdG9yRGVsZWdhdGUubW0gKi8s
CisJCQkJOTlFMjg0NjMyNkY5MUY3RjAwMDNGMUZBIC8qIFdLSW5zcGVjdG9yRXh0ZW5zaW9uRGVs
ZWdhdGUubW0gKi8sCiAJCQkJOTk5QjdFRTIyNTUxQzYzQjAwRjQ1MEE0IC8qIFdLSW5zcGVjdG9y
RXh0ZW5zaW9uSG9zdC5tbSAqLywKIAkJCQlBNUE3MjlGMDFGNjIyQTlBMDBERTVBMjggLyogV0tO
YXZpZ2F0aW9uUmVzcG9uc2UubW0gKi8sCiAJCQkJREY0QjI3MzgyMUE0NzcyNzAwOUJEMUNBIC8q
IFdLTlNEaWN0aW9uYXJ5RW1wdHlEaWN0aW9uYXJ5Q3Jhc2gubW0gKi8sCkBAIC00MDk4LDYgKzQx
MDcsOCBAQAogCQkJCTkzQTI3NEExMjUyMTYzRDYwMEExQjZENCAvKiBJbmRleFVwZ3JhZGVXaXRo
TXVsdGlwbGVJbmRpY2VzLnNxbGl0ZTMgKi8sCiAJCQkJOTNBMjc0QTQyNTIyNDFEMDAwQTFCNkQ0
IC8qIEluZGV4VXBncmFkZVdpdGhNdWx0aXBsZUluZGljZXNIYXZlU2FtZUlELnNxbGl0ZTMgKi8s
CiAJCQkJMkVGRjA2Q0MxRDhBNDI5MTAwMDRCQjMwIC8qIGlucHV0LWZpZWxkLWluLXNjcm9sbGFi
bGUtZG9jdW1lbnQuaHRtbCAqLywKKwkJCQk5OUUyODQ2NzI2Rjk0MTNCMDAwM0YxRkEgLyogSW5z
cGVjdG9yRXh0ZW5zaW9uLWJhc2ljLXRhYi5odG1sICovLAorCQkJCTk5RTI4NDY1MjZGOTNENzYw
MDAzRjFGQSAvKiBJbnNwZWN0b3JFeHRlbnNpb24tVGFiSWNvbi0zMHgzMC5wbmcgKi8sCiAJCQkJ
OTM3QTZDODgyNDM1N0JGMzAwQzNBNkIwIC8qIEtpbGxXZWJQcm9jZXNzV2l0aE9wZW5Db25uZWN0
aW9uLTEuaHRtbCAqLywKIAkJCQk5MzdBNkM4OTI0MzU3QkYzMDBDM0E2QjAgLyogS2lsbFdlYlBy
b2Nlc3NXaXRoT3BlbkNvbm5lY3Rpb24tMi5odG1sICovLAogCQkJCUY0NTM4RUYwMUU4NDZCNDEw
MEI1Qzk1MyAvKiBsYXJnZS1yZWQtc3F1YXJlLnBuZyAqLywKQEAgLTU5NjUsNiArNTk3Niw3IEBA
CiAJCQkJNTFEMTI0OTgxRTc2M0IwMjAwMkIyODIwIC8qIFdLSFRUUENvb2tpZVN0b3JlLm1tIGlu
IFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdGMUQxQTQxMUFFNjAwNDQ3QzRDIC8qIFdLSW1hZ2VDcmVh
dGVDR0ltYWdlQ3Jhc2guY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTlCNEY5QzYyNEVERUQ5NzAw
MDIyQjgyIC8qIFdLSW5zcGVjdG9yRGVsZWdhdGUubW0gaW4gU291cmNlcyAqLywKKwkJCQk5OUUy
ODQ2NDI2RjkxRjdGMDAwM0YxRkEgLyogV0tJbnNwZWN0b3JFeHRlbnNpb25EZWxlZ2F0ZS5tbSBp
biBTb3VyY2VzICovLAogCQkJCTk5OUI3RUUzMjU1MUM2M0IwMEY0NTBBNCAvKiBXS0luc3BlY3Rv
ckV4dGVuc2lvbkhvc3QubW0gaW4gU291cmNlcyAqLywKIAkJCQlBNUE3MjlGMTFGNjIyQUE3MDBE
RTVBMjggLyogV0tOYXZpZ2F0aW9uUmVzcG9uc2UubW0gaW4gU291cmNlcyAqLywKIAkJCQlERjRC
MjczOTIxQTQ3NzI4MDA5QkQxQ0EgLyogV0tOU0RpY3Rpb25hcnlFbXB0eURpY3Rpb25hcnlDcmFz
aC5tbSBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRDb2NvYS9JbnNwZWN0b3JFeHRlbnNpb24tVGFiSWNvbi0zMHgzMC5wbmcgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0luc3BlY3RvckV4dGVuc2lvbi1UYWJJ
Y29uLTMweDMwLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MjQzZjBmMTI5NmViMTkyZTVlMmM3OWZiODUwOTRh
NWQyNWJlMzU5CkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAzNzgwCnpjbVY7IzRtPElRUCk8aDsz
S3xMazAwMGUxTkpMVHEwMDE1VTAwMTVrMV5AczZZb0shQjAwMGgpTmtsPFpjbWRfdQp6WiV8ZHxm
eWVSaGJJIyMlfDh2MUJEan04LUxrU154TzkrZEdRa017RjM4OTF+dFlzLT50eGMpSjViTEh7KkR7
Mi0KenUxI0dfRDljIXZidUhzTWx1fUFyaGY/YUdieT8kRFlGY1YyPnJpN1R5M3x6KWMpNDZJYVBL
e1BqJVJxYCVyYjg2Cnp6VSVZbTFKOE4+e0M7ekkhNXBGOTh+bzc+I1E/OzshNT16dTM8TWJWOEF7
IVRBfEFzNysmOSNFM353NVNPQU9UbAp6Mz1McUFoYTQqfVJea3NFKWRySD9Gay1OJXRLb2V9Jkg0
UUdaKztRSj5pTWhLcWM2aDFDKkV2MV84USF7Yk5Id0sKel8tRWpJPkt+cGtKb2VoTGtMbU1BVXVe
dTl6VjRlfWVDeXghZUdUdF9YO3dkSDw9cCU0cF8rI3IhZjVffmUjMUAhCnpWS1M3PHc8ZG81R211
KnBKPyR1a2hXOHchQClUQCYhX2YlPGp5T1ltc2lFekxxNGtpVkRQMSlLS3BAZjNmNj50UQp6Q191
PlZKcWBiSGMmX1ZDNG0zUlQqV2RaPlphOC11MDdDN0M+WElTZXxGMVdeKExmd28rZ3hAQzlCRUdu
VGJfcDIKenYmNmJHO0sjMmxaIShINT1VXjE8aH1zdmAxZ1VhTFRaUk9HSS1oOz8pM0BNN1V3JXRm
SEdDP05mQjE5ZkFiV0RfCno+ITAyT0RRekZeJFokY19LNUxifTR9eUlGQD5ILX5LaThGXm9ZKEpa
ZEhUZ21gbl9kYG9AbSF8dG1Me3M9aiE3QAp6ZzxTXlhrZ05IJTkkMkB7YSZGcmZWOEZJP0lpZCNz
YXdPMTw5aGkxcGh7PCQmcCFtQmxTU3l5YUNwVFVtYE8zU0gKenZvVypmKTR6ZV8tSjZiTmQ9Mjdu
I3ZPWTZ4MCtZdVN+bVJ9SHN2T15YTTdiaFRRZUdxS01GNjh6VEVWY1UlKTRlCnpVUmJEN1ZDfUdU
QDQ5JXY5IUxrS0JXamtMXm4xNWBWTklyPDxGJWZ8ZE9nPWxQRDVNfFN5KHR0YElVUGhzeis2bAp6
VXhEN2cyPChAOztufnhSUmE4O30mKSlMJVclb2tXdVU8OzRgOExHd2RfO1FVMX1wflgzNzEyI21K
dS11cD1RRUwKejdmPylXTD9OJnFjWjNyTnMmVUdHVV5vPEA4fFljPzM3NWYhMHIkbm57dTJzWDNm
Rno8YHszeiZEbFlwcFBgU2BjCnozQ1Bgbjl6OTMkRHtgeHp0OCEyRE8rRHZJPyUlZz93U2ltXzRy
azg2SF90OHxtcztTTnB+WkhpPW5FeTs9TF8+Owp6JVpId3Y9V0FoTXl7TS1iNzh8dTwrYVIxSllI
ZT9URnAxJmxQTE9raS1RNVBsRk90e28pdk9ncz50NTl+MyR1SE4Kej1GZGY0YmlIT3hjLW1HNXUl
c3c/QW5GJTMoaHJgVHZeQ0d5entlQXxHYEA1bXNQeWxyMWYtUylsYiRQY1BQKHE9CnpUKi1aM2p8
VWYpK1RyVWokcUJqSmc5OHlNeWp7cyszamsjSkoheEJaTGhfZTReP0o2JExPa1BLZ1V9SFElQDt1
JAp6NXRwS19nS3x3Y14mKk8wQiokaWZvRkZ7d3VJVyp2akNKY2xzeTdyS3NkP1IpWDBrTER5SChS
RURlbCliRlg3WUEKenA+UjNZZD5JKGA9UTBrRG1uUXNaXkpWWmZyZC0+NDE7QyNTNVJub1hnR3ch
Umdjb3dSdWs/Nk87WCh1MTRVUVU5CnotZGtxQHlRel9CUzk7OGxgd0RGSllfOGVYNG9sN1dyNz0p
PFEqUVlyJFhReV4tNE5qc09LVUVuWWpzYjlrfWgwcAp6dDNsM3wrLXB5T2xxY05vVUp6eDVsM1Rw
SndoZT8hKCRedVpRbXd2RUVKLUt5YkhwV2FFfiorUjU0S3I4MV41XjAKel5te2tncjJweUBvdj9Q
JFI9P0hAKmFKSShYLUNhK0hSIW9sZEtrU3tESiZBPDs3cEFCVzRrfmVIPUQ4PTAzcmBTCno/I01G
LUA/OClmN0Ntd1dzM1Q7VmVnYUNTSUF1USRyZVpQYjNUc1leaVJkWWEqZCVVNjdsQmZ1U3BqbDds
aE9HZwp6UztiX0cyU21JZmxUd3ZGRkskVigrQiF9N3hWfSRKJE9ITzBWcFA3WnBEUnZAbyVVOEJE
XiNvQkR+Z3Q4cSF2aUcKelpkdzJRTVN6ZWI0ZHwoOUg/P0lvOUduNW1NIWtwOFluOChLN0g2SUgj
TEtTJFNvVk4oejA8blIzWGRzfHEkRUVFCnpAJkhjREl4eTlWWVAlbUl3SjQ2dW5ueSZodmxVRjYj
Mk0hak04dDUkPT50VSllYV9QJDR+dCZNRXw1O3M8SW9GXwp6VmMwN1k5Nkw0cHElK1BRO0VZdTRe
bnk0ZVBkRWVtYkdnQGZSND1Ud0o5Y1lVT0hJfkp6JE5YbyRnclhGQlU0WVYKejBqSmZ1ZSMwZEl1
eDVhQnpoPWtGZX4hYFgrLWgmUTNGSWJ3KXBMRlRgKT5IaWlBVkNEOTBxWCNwRVYxVjJ2UXdLCnp6
KjB5fVF+Xzk+OUNHYWliMExsUEJWZypNKFJLX1grUW5nODg3TEpUdmBtM2lBbkw3JEs7KCkjJVha
Q0hWT1RIdgp6Xm16YDdNMTdxJkVPcHNSZmt5ZWQ/V25GfHZjMyUqR017bX1mZmBGZWJRK01WJFdp
TTdwU2EtTTEmYCE/cStfIWcKejAzMWBHb1lHOXJwMlg8WXlqbyFzTkorTGdsQ0ZZVVdZMn5UZClE
bEpkPWtXWUhFMiUqeHRBMVk3KS1eS010TEF8CnptSXxqPUdldU43WUJZemJ3N3Y+VEd2JCMtTEZ5
N15rKEhZRDZxXjlpTjBEZz1zNUdQKSpTK35OViliPkRpdnJVSAp6cGkpVilfJmApZkNPTDxJaXBX
YDRFbF9HSWlnXmBDayRZbDFwZX43aSpIJjBseWBre1EwekVhamoofjdPKVg2N1MKejNNO0Q+WlVE
bExCUWIrT29UQ1hHTDM4XjBid0g0U1Y7clBqVngyKmRpJTR9MlhmX0l1eSZSTWlxKzdje2VwYDRm
CnpMIWd3QTh0RGJPbTZWN3BBYmNkcjM4MD4ybGRLbT9HYkFhelBvNGwka2R5JStScWludGdZZHwy
K3c0SFAoJm9JNQp6e2AtO1dEKWk/P1lsO0U0KVZieWE7OFI7LXU3U0Q5ayt5TFRoeSZMX0FQaUNZ
ZEpoMG16ZS1eTSlvQnxyYmQtYUQKejUkNnQmKXtCSXctOVFxT15SbHRpUURiUTkwfkR9SzhBY2A+
bmhxUCFsezglPmNfUj1IUVpuRVFtUCZlSU5vYFJ8CnowVSorNldITWhmdj44ZWN5SjF3OFZSVk0h
bmhQS2pxeSlERlRvYTlKeTdrbCQoYG8zRTl7NylrKzVxOGZUVk9mfAp6KUZwPXg9NndzOTVoV2wz
IzcxPk5JRkJodUR1bnRPdjNXSDJ0NSs8d255KWYhPyQpZVJoZlBpaF9Bc0ohTFRITG4KemBNNzJ4
U0xHJG1aUiQ7RkNvSHl2VVg/Q0ZYZTUqPGtBa2AqRyN3RU9qMEFoa0ozJD18KW0hcF87WlVgJDd9
UDdGCnp7Zj1zMkJ5PVdmN2NkbnJrS1BCd05odllxdXJOTTlabUkhUWZvUH1SMDsxNCswSF9DNkUz
OEx+d0tBM3I7YVNATwp6Xy0qSVotYXJ3RVpzTUckQWtASTl5I2toYz45V1NhcU1NVkpJdFd9Pith
ZjFuKFp8ViVHRmFNMXlXLVJBUGBsKCMKek8ob25hNHIqPiklSGNHK1d4OWNWT0EwLShiWDtFdkwx
YCZoXygwdlo9dTxxSlpHcjElSCpqKD4qNDZAYUUlaUQyCnpmdzUzfilOeD49MilORn0/e0B6LWIj
VmcxbE1wb3NwLW9ePHtCPUE9dWtkUHhfclAqbDxqfWlUUHsoWF9hTlUyUwp6WD9qMTEzIzhkY0FA
bDwjPzBhRzEzQHcmRDtQPG1YUW4heFJPKFFVMCF8TV9HbiUmXz4kcU4zc1U+T35uNFNAO3UKejA0
eGp5Y0IlKDs3akVBKC1ydTBsYHpRUXkpV08yd2U3RWByMVNhUWVjXiNIfHtQaUxvTFk7b1UoeWhP
JWcpXjJlCnpVP096Wm1IPyFRMy0lRzFJRENDI2Btfi1KOVB6TVIwaGE2VUkjK3RGUWFHRmtiRlpv
T0tsbVB+dno4TEA3Uis3PQp6Sl97ZV8rXm42YzFHTmFKd0dzbTcpSytzZyVyJmMocmdIR3NzMEIp
JHJhaWJybV41UCt7cDQkd18oIz80RnhUYyEKelE7UmY1ZVdSNDwmYyo2Xyt2Wk57XldIOVIkLVE7
QXlsKE99QyVrcjViQUMpZThUQDUpRW91Yj5lMVk/N0QrRyh3CnpFSUFlYXRNb1RYY2JaYEtpbm1+
U1R1JStRJDYpUnlWMU1AeUY/IXshX0oqJitUTFoxTHpjPnp8UXEkSDs0Rz9aTQp6ZS1gPiVmMTNX
d1ZHemFZelFfdCN7dTQkY041UGpELWw1Rkd0Z15WREQ9LXRnRnJ7d1A/Myo3QDwxezx3eSFTa0oK
enctVXxpRTM8THhKIWdgMlhLdXw1cHFuPCtxM1dLVD5DP1NpR196amFzTSRWaVFkNDByIUkhNiYh
QH5DRUVzVmxxCnpyfVJHODtOOUNscDg4b21nIVZ3aERhe2Z2OWxkbm10cyFYYSlfV01lUncrIWNM
MStyUm94JHlJSmBkXnpRemJGSwp6RTQhMjc5Zk9+b3hAPipsMlUyOHNLcHV5e3ZCbVRCIVFFIzZI
OGwmU3g2VVEwQ1lXO0g0WGJ7KmI4Tk8mb3p+bm4Kej9Gfj1DUkxOQVFZUz8kcnJhUWF6YFFJaHBY
O28pNmhvOz1CVS1RS0RSQEoxeHh3fVg4YkE1cThBTntiPEJTbiUyCno3cHxVcj9tYUp6K2kkeVdu
SU89ckNuYVgpRFZVI1pjeTZWfntrPWZwZTt3ZytjPUhwN2hSPmFiIV9XUF9yX0J1PAp6VzJ9bjcr
eTZIRXYtUkwhRTd2KmBBLSh6VzstcTkpWjFLMHkyY2ZGQDc8RFRJSV81SnUySWReVXdodjZAXlVW
eHsKemE/NzhrVUl5QGMwaUBpZTVxJjtsYUgpZjxVXipUYyMwJSF1Syg+QzRlTihXN0EmQEdSe1p6
ciYtaypQZCVuRX5fCno4eXAhcjM2YjljSDMpSm0xZTRtX2U7MDsmXzNRdmZqfiN7X2RxQ2xwMSkr
RXRudFNnWFVydlhvPH14T3EmWktNawp6TXtATnVMKjBEdSlXODV0SCRQTUVaR3VtQkp2KStkOF5S
WUN5Si1PYmFpM1FgMzRzIUNCN29IRy1HPilNO2Fudm4KejBRMUVGTl4rPFNGSVlPbVZgUEE+QkhZ
Yk1rbUlDUkBqJlE2V0NwazNUejNEREZFX3oycEUrTVV2PTF5IXgrczk8CnpiTztATEZaMD9DJn5p
Uz5IZWhlKTZ2bnZ1ZHclZ3llYjlCS1dBRUpeRm1+bUd2b0hNczx8cCtGPTw+JnQyan1EWgp6Wnd3
ODxIPWIqSnElI2dhX35LflclXldadj1hNHVCQH02KnFyfiVhKU4rdU9UZVpkc1duKkVfJHk1VkJn
dGp+KVkKenhtSTUlJEN6OTdlSUhEV01APCZQeDg4WkB5V2Mrd1hYVyM4YGFLSyViZGQtQ2kkPjg4
NzVMelhGYTJ4KEhaWEQ7Cnp4Z1lxd181bVpvSyMhNz5SKGRSfDVHdGsqS1hUJH1jJX1COE43WlFm
Uk5wJks+TCtFbD10Zk8jRUMyUyNSclQ1Nwp6OWtYWURwe2daYSl3X1FBcHtqb1ZZSGheX0xSRUsz
VStCQEBAcD8mQEtBJkhnUyNXTlBzeV5Ld0hLcCVNWCNAUzcKeiUqJSRrUmlOS2ZrT3FmMG9ZPyZB
S0dALUw2I3teMFUmO0Febyk3KCopQCYlMyF3Y2hZYGcyUG1fX3BJO3tgUXw/Cnplb0FpMkpPT2hY
MFd8aitgVl87Mzd5dyFwMGY8WmowTCE/Yz9HVDJ1aFNuK3cpZWh+NyphZzFoXmBIRyZze1MkZgp6
WSVsa0pydTc+I2A9RylZS201VFQ7JDRPakc0U05CenAtendoc1ZwbF9PMUYmdSklcGBeV2FheGRB
c3FefE5iWDEKeldqRD8oZX0pIyZIM2RQUmNlYUFRRV9OMzVlVUIhOWFnSzRXcTJ6d1o1QWhGUV95
SHI9SzsjPXJWTUM/TUZ5Zi0yCnVEZ1M8cmQxSVppQEJWWWg8PkFLYWY2eyp9PDlgNUpRenM3YiMz
cm8oMDAwMDxNTlVNbkxTVGFTX0JzT3EKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdp
dCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvSW5zcGVjdG9yRXh0ZW5z
aW9uLWJhc2ljLXRhYi5odG1sIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9JbnNwZWN0b3JFeHRlbnNpb24tYmFzaWMtdGFiLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmU4OGFkMGU5
ZGZkNGJiNzg0NjgyMTI4MTA1MTQxNmFiNzBmMGEzNQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvSW5zcGVjdG9yRXh0ZW5zaW9uLWJhc2lj
LXRhYi5odG1sCkBAIC0wLDAgKzEsNiBAQAorPGh0bWw+Cis8Ym9keT4KKzxoMT5UaGlzIGlzIGEg
dGVzdCBleHRlbnNpb24uPC9oMT4KKzxwPkluIGEgbm9ybWFsIGV4dGVuc2lvbiwgdGhpcyBhcmVh
IHdvdWxkIHNob3cgdGhlIGV4dGVuc2lvbidzIHVzZXIgaW50ZXJmYWNlLjwvcD4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvV0tJbnNwZWN0b3JFeHRlbnNpb25EZWxlZ2F0ZS5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Q29jb2EvV0tJbnNwZWN0b3JFeHRlbnNpb25EZWxlZ2F0ZS5tbQpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5mOTQ2NGJiNmRjYWYxNzc5Njg2MjY1MDU5YjUzZjcwMzdlOThjNzY1Ci0tLSAvZGV2L251
bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS0luc3BlY3Rv
ckV4dGVuc2lvbkRlbGVnYXRlLm1tCkBAIC0wLDAgKzEsMTU5IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lt
cG9ydCAiY29uZmlnLmgiCisKKyNpbXBvcnQgIlRlc3QuaCIKKyNpbXBvcnQgIlV0aWxpdGllcy5o
IgorI2ltcG9ydCA8V2ViS2l0L1dLUHJlZmVyZW5jZXNQcml2YXRlLmg+CisjaW1wb3J0IDxXZWJL
aXQvV0tXZWJWaWV3UHJpdmF0ZS5oPgorI2ltcG9ydCA8V2ViS2l0L19XS0luc3BlY3Rvci5oPgor
I2ltcG9ydCA8V2ViS2l0L19XS0luc3BlY3RvckV4dGVuc2lvbi5oPgorI2ltcG9ydCA8V2ViS2l0
L19XS0luc3BlY3RvckV4dGVuc2lvbkRlbGVnYXRlLmg+CisjaW1wb3J0IDxXZWJLaXQvX1dLSW5z
cGVjdG9yUHJpdmF0ZUZvclRlc3RpbmcuaD4KKyNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KKwor
I2lmIEVOQUJMRShJTlNQRUNUT1JfRVhURU5TSU9OUykKKworc3RhdGljIGJvb2wgZGlkQXR0YWNo
TG9jYWxJbnNwZWN0b3JDYWxsZWQgPSBmYWxzZTsKK3N0YXRpYyBib29sIGRpZFNob3dFeHRlbnNp
b25UYWJXYXNDYWxsZWQgPSBmYWxzZTsKK3N0YXRpYyBib29sIGRpZEhpZGVFeHRlbnNpb25UYWJX
YXNDYWxsZWQgPSBmYWxzZTsKK3N0YXRpYyBib29sIHBlbmRpbmdDYWxsYmFja1dhc0NhbGxlZCA9
IGZhbHNlOworc3RhdGljIFJldGFpblB0cjxfV0tJbnNwZWN0b3JFeHRlbnNpb24+IHNoYXJlZElu
c3BlY3RvckV4dGVuc2lvbjsKK3N0YXRpYyBSZXRhaW5QdHI8TlNTdHJpbmc+IHNoYXJlZEV4dGVu
c2lvblRhYklkZW50aWZpZXI7CisKK3N0YXRpYyB2b2lkIHJlc2V0R2xvYmFsU3RhdGUoKQorewor
ICAgIGRpZEF0dGFjaExvY2FsSW5zcGVjdG9yQ2FsbGVkID0gZmFsc2U7CisgICAgZGlkU2hvd0V4
dGVuc2lvblRhYldhc0NhbGxlZCA9IGZhbHNlOworICAgIGRpZEhpZGVFeHRlbnNpb25UYWJXYXND
YWxsZWQgPSBmYWxzZTsKKyAgICBwZW5kaW5nQ2FsbGJhY2tXYXNDYWxsZWQgPSBmYWxzZTsKK30K
KworQGludGVyZmFjZSBVSURlbGVnYXRlRm9yVGVzdGluZ0luc3BlY3RvckV4dGVuc2lvbkRlbGVn
YXRlIDogTlNPYmplY3QgPFdLVUlEZWxlZ2F0ZT4KK0BlbmQKKworQGltcGxlbWVudGF0aW9uIFVJ
RGVsZWdhdGVGb3JUZXN0aW5nSW5zcGVjdG9yRXh0ZW5zaW9uRGVsZWdhdGUKKworLSAodm9pZClf
d2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBkaWRBdHRhY2hMb2NhbEluc3BlY3RvcjooX1dL
SW5zcGVjdG9yICopaW5zcGVjdG9yCit7CisgICAgRVhQRUNUX0VRKHdlYlZpZXcuX2luc3BlY3Rv
ciwgaW5zcGVjdG9yKTsKKyAgICBkaWRBdHRhY2hMb2NhbEluc3BlY3RvckNhbGxlZCA9IHRydWU7
Cit9CisKK0BlbmQKKworCitAaW50ZXJmYWNlIEluc3BlY3RvckV4dGVuc2lvbkRlbGVnYXRlRm9y
VGVzdGluZyA6IE5TT2JqZWN0IDxfV0tJbnNwZWN0b3JFeHRlbnNpb25EZWxlZ2F0ZT4KK0BlbmQK
KworQGltcGxlbWVudGF0aW9uIEluc3BlY3RvckV4dGVuc2lvbkRlbGVnYXRlRm9yVGVzdGluZyB7
Cit9CisKKy0gKHZvaWQpaW5zcGVjdG9yRXh0ZW5zaW9uOihfV0tJbnNwZWN0b3JFeHRlbnNpb24g
KilleHRlbnNpb24gZGlkU2hvd1RhYldpdGhJZGVudGlmaWVyOihOU1N0cmluZyAqKXRhYklkZW50
aWZpZXIKK3sKKyAgICBkaWRTaG93RXh0ZW5zaW9uVGFiV2FzQ2FsbGVkID0gdHJ1ZTsKK30KKwor
LSAodm9pZClpbnNwZWN0b3JFeHRlbnNpb246KF9XS0luc3BlY3RvckV4dGVuc2lvbiAqKWV4dGVu
c2lvbiBkaWRIaWRlVGFiV2l0aElkZW50aWZpZXI6KE5TU3RyaW5nICopdGFiSWRlbnRpZmllcgor
eworICAgIGRpZEhpZGVFeHRlbnNpb25UYWJXYXNDYWxsZWQgPSB0cnVlOworfQorCitAZW5kCisK
K1RFU1QoV0tJbnNwZWN0b3JFeHRlbnNpb25EZWxlZ2F0ZSwgU2hvd0FuZEhpZGVUYWJDYWxsYmFj
a3MpCit7CisgICAgcmVzZXRHbG9iYWxTdGF0ZSgpOworCisgICAgYXV0byB3ZWJWaWV3Q29uZmln
dXJhdGlvbiA9IGFkb3B0TlMoW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gbmV3XSk7CisgICAgd2Vi
Vmlld0NvbmZpZ3VyYXRpb24uZ2V0KCkucHJlZmVyZW5jZXMuX2RldmVsb3BlckV4dHJhc0VuYWJs
ZWQgPSBZRVM7CisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1dLV2ViVmlldyBhbGxvY10g
aW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDgwMCwgNjAwKSBjb25maWd1cmF0aW9uOndl
YlZpZXdDb25maWd1cmF0aW9uLmdldCgpXSk7CisgICAgYXV0byB1aURlbGVnYXRlID0gYWRvcHRO
UyhbVUlEZWxlZ2F0ZUZvclRlc3RpbmdJbnNwZWN0b3JFeHRlbnNpb25EZWxlZ2F0ZSBuZXddKTsK
KworICAgIFt3ZWJWaWV3IHNldFVJRGVsZWdhdGU6dWlEZWxlZ2F0ZS5nZXQoKV07CisgICAgW3dl
YlZpZXcgbG9hZEhUTUxTdHJpbmc6QCI8aGVhZD48dGl0bGU+VGVzdCBwYWdlIHRvIGJlIGluc3Bl
Y3RlZDwvdGl0bGU+PC9oZWFkPjxib2R5PjxwPkZpbGxlciBjb250ZW50PC9wPjwvYm9keT4iIGJh
c2VVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJodHRwOi8vZXhhbXBsZS5jb20vIl1dOworCisg
ICAgW1t3ZWJWaWV3IF9pbnNwZWN0b3JdIHNob3ddOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6
OnJ1bigmZGlkQXR0YWNoTG9jYWxJbnNwZWN0b3JDYWxsZWQpOworCisgICAgYXV0byBleHRlbnNp
b25JRCA9IFtOU1VVSUQgVVVJRF0uVVVJRFN0cmluZzsKKyAgICBhdXRvIGV4dGVuc2lvbkRpc3Bs
YXlOYW1lID0gQCJGaXJzdEV4dGVuc2lvbiI7CisKKyAgICAvLyBSZWdpc3RlciB0aGUgdGVzdCBl
eHRlbnNpb24uCisgICAgcGVuZGluZ0NhbGxiYWNrV2FzQ2FsbGVkID0gZmFsc2U7CisgICAgW1t3
ZWJWaWV3IF9pbnNwZWN0b3JdIHJlZ2lzdGVyRXh0ZW5zaW9uV2l0aElEOmV4dGVuc2lvbklEIGRp
c3BsYXlOYW1lOmV4dGVuc2lvbkRpc3BsYXlOYW1lIGNvbXBsZXRpb25IYW5kbGVyOl4oTlNFcnJv
ciAqIF9OdWxsYWJsZSBlcnJvciwgX1dLSW5zcGVjdG9yRXh0ZW5zaW9uICogX051bGxhYmxlIGV4
dGVuc2lvbikgeworICAgICAgICBFWFBFQ1RfTlVMTChlcnJvcik7CisgICAgICAgIEVYUEVDVF9O
T1RfTlVMTChleHRlbnNpb24pOworICAgICAgICBzaGFyZWRJbnNwZWN0b3JFeHRlbnNpb24gPSBl
eHRlbnNpb247CisKKyAgICAgICAgcGVuZGluZ0NhbGxiYWNrV2FzQ2FsbGVkID0gdHJ1ZTsKKyAg
ICB9XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnBlbmRpbmdDYWxsYmFja1dhc0Nh
bGxlZCk7CisKKyAgICBhdXRvIGV4dGVuc2lvbkRlbGVnYXRlID0gYWRvcHROUyhbSW5zcGVjdG9y
RXh0ZW5zaW9uRGVsZWdhdGVGb3JUZXN0aW5nIG5ld10pOworICAgIFtzaGFyZWRJbnNwZWN0b3JF
eHRlbnNpb24gc2V0RGVsZWdhdGU6ZXh0ZW5zaW9uRGVsZWdhdGUuZ2V0KCldOworCisgICAgLy8g
Q3JlYXRlIGFuIGV4dGVuc2lvbiB0YWIuCisgICAgYXV0byBpY29uVVJMID0gW1tOU0J1bmRsZSBt
YWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIkluc3BlY3RvckV4dGVuc2lvbi1UYWJJY29uLTMw
eDMwIiB3aXRoRXh0ZW5zaW9uOkAicG5nIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJl
c291cmNlcyJdOworICAgIGF1dG8gc291cmNlVVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBV
UkxGb3JSZXNvdXJjZTpAIkluc3BlY3RvckV4dGVuc2lvbi1iYXNpYy10YWIiIHdpdGhFeHRlbnNp
b246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdOworCisg
ICAgcGVuZGluZ0NhbGxiYWNrV2FzQ2FsbGVkID0gZmFsc2U7CisgICAgW3NoYXJlZEluc3BlY3Rv
ckV4dGVuc2lvbiBjcmVhdGVUYWJXaXRoTmFtZTpAIkZpcnN0RXh0ZW5zaW9uLVRhYiIgdGFiSWNv
blVSTDppY29uVVJMIHNvdXJjZVVSTDpzb3VyY2VVUkwgY29tcGxldGlvbkhhbmRsZXI6XihOU0Vy
cm9yICogX051bGxhYmxlIGVycm9yLCBOU1N0cmluZyAqIF9OdWxsYWJsZSBleHRlbnNpb25UYWJJ
ZGVudGlmaWVyKSB7CisgICAgICAgIEVYUEVDVF9OVUxMKGVycm9yKTsKKyAgICAgICAgRVhQRUNU
X05PVF9OVUxMKGV4dGVuc2lvblRhYklkZW50aWZpZXIpOworICAgICAgICBzaGFyZWRFeHRlbnNp
b25UYWJJZGVudGlmaWVyID0gZXh0ZW5zaW9uVGFiSWRlbnRpZmllcjsKKworICAgICAgICBwZW5k
aW5nQ2FsbGJhY2tXYXNDYWxsZWQgPSB0cnVlOworICAgIH1dOworICAgIFRlc3RXZWJLaXRBUEk6
OlV0aWw6OnJ1bigmcGVuZGluZ0NhbGxiYWNrV2FzQ2FsbGVkKTsKKworICAgIC8vIEZvcmNlIGEg
a25vd24gbm9uLWV4dGVuc2lvbiB0YWIgdG8gYmUgc2hvd24gYmVmb3JlIHNob3dpbmcgdGhlIGV4
dGVuc2lvbiB0YWIuIE90aGVyd2lzZSwKKyAgICAvLyBpZiB0aGUgZXh0ZW5zaW9uIHRhYiB3YXMg
YWxyZWFkeSBvcGVuLCB0aGVuIHRoaXMgdGVzdCB3b3VsZCBoYW5nIHdhaXRpbmcgZm9yIGEgZGlk
U2hvdyBjYWxsYmFjay4KKyAgICBbW3dlYlZpZXcgX2luc3BlY3Rvcl0gc2hvd0NvbnNvbGVdOwor
CisgICAgcGVuZGluZ0NhbGxiYWNrV2FzQ2FsbGVkID0gZmFsc2U7CisgICAgW1t3ZWJWaWV3IF9p
bnNwZWN0b3JdIHNob3dFeHRlbnNpb25UYWJXaXRoSWRlbnRpZmllcjpzaGFyZWRFeHRlbnNpb25U
YWJJZGVudGlmaWVyLmdldCgpIGNvbXBsZXRpb25IYW5kbGVyOl4oTlNFcnJvciAqIF9OdWxsYWJs
ZSBlcnJvcikgeworICAgICAgICBFWFBFQ1RfTlVMTChlcnJvcik7CisKKyAgICAgICAgcGVuZGlu
Z0NhbGxiYWNrV2FzQ2FsbGVkID0gdHJ1ZTsKKyAgICB9XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpV
dGlsOjpydW4oJnBlbmRpbmdDYWxsYmFja1dhc0NhbGxlZCk7CisgICAgVGVzdFdlYktpdEFQSTo6
VXRpbDo6cnVuKCZkaWRTaG93RXh0ZW5zaW9uVGFiV2FzQ2FsbGVkKTsKKworICAgIFtbd2ViVmll
dyBfaW5zcGVjdG9yXSBzaG93Q29uc29sZV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVu
KCZkaWRIaWRlRXh0ZW5zaW9uVGFiV2FzQ2FsbGVkKTsKKworICAgIC8vIFVucmVnaXN0ZXIgdGhl
IHRlc3QgZXh0ZW5zaW9uLgorICAgIHBlbmRpbmdDYWxsYmFja1dhc0NhbGxlZCA9IGZhbHNlOwor
ICAgIFtbd2ViVmlldyBfaW5zcGVjdG9yXSB1bnJlZ2lzdGVyRXh0ZW5zaW9uOnNoYXJlZEluc3Bl
Y3RvckV4dGVuc2lvbi5nZXQoKSBjb21wbGV0aW9uSGFuZGxlcjpeKE5TRXJyb3IgKiBfTnVsbGFi
bGUgZXJyb3IpIHsKKyAgICAgICAgRVhQRUNUX05VTEwoZXJyb3IpOworCisgICAgICAgIHBlbmRp
bmdDYWxsYmFja1dhc0NhbGxlZCA9IHRydWU7CisgICAgfV07CisgICAgVGVzdFdlYktpdEFQSTo6
VXRpbDo6cnVuKCZwZW5kaW5nQ2FsbGJhY2tXYXNDYWxsZWQpOworfQorCisjZW5kaWYgLy8gRU5B
QkxFKElOU1BFQ1RPUl9FWFRFTlNJT05TKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>439361</attachid>
            <date>2021-09-27 09:29:17 -0700</date>
            <delta_ts>2021-09-27 09:45:30 -0700</delta_ts>
            <desc>Patch v1.3</desc>
            <filename>bug-230580-20210927092917.patch</filename>
            <type>text/plain</type>
            <size>57647</size>
            <attacher name="Blaze Burg">bburg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzMTE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwppbmRleCBm
OGVhOTA0Mzc1MDAwYWFiNjEwZTM0NDhmY2VmMDI2MDMwMWFhYjAwLi4zYWU2NGE5ZGE5MTIzZDY3
N2RmZWQ2MjcyNTk0ZDFlN2FmMjliZjc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMiBAQAorMjAyMS0wOS0yNyAgQkogQnVyZyAgPGJidXJnQGFwcGxlLmNvbT4KKworICAg
ICAgICBbQ29jb2FdIEFkZCBTUEkgdG8gc2VsZWN0IGEgdGFiIGNyZWF0ZWQgYnkgX1dLSW5zcGVj
dG9yRXh0ZW5zaW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMzA1ODAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgzMzcyODUxPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhIG1ldGhvZCB0byBs
b29rIHVwIGEgV2ViSW5zcGVjdG9yRXh0ZW5zaW9uVGFiQ29udGVudFZpZXcKKyAgICAgICAgYnkg
aXRzIGV4dGVuc2lvblRhYklEIGFuZCB0aGVuIHNob3cgaXQgd2l0aCBXSS50YWJCcm93c2VyLgor
CisgICAgICAgICogVXNlckludGVyZmFjZS9Db250cm9sbGVycy9XZWJJbnNwZWN0b3JFeHRlbnNp
b25Db250cm9sbGVyLmpzOgorICAgICAgICAoV0kuV2ViSW5zcGVjdG9yRXh0ZW5zaW9uQ29udHJv
bGxlci5wcm90b3R5cGUucmVsb2FkRm9yRXh0ZW5zaW9uKToKKyAgICAgICAgUmVtb3ZlIGV4dHJh
IG5ld2xpbmVzLgorICAgICAgICAoV0kuV2ViSW5zcGVjdG9yRXh0ZW5zaW9uQ29udHJvbGxlci5w
cm90b3R5cGUuc2hvd0V4dGVuc2lvblRhYik6IEFkZGVkLgorCisgICAgICAgICogVXNlckludGVy
ZmFjZS9Qcm90b2NvbC9JbnNwZWN0b3JGcm9udGVuZEFQSS5qczoKKyAgICAgICAgKEluc3BlY3Rv
ckZyb250ZW5kQVBJLnNob3dFeHRlbnNpb25UYWIpOiBBZGRlZC4KKwogMjAyMS0wOS0yMyAgTXls
ZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNw
ZWN0b3Igc3VwcG9ydCBmb3IgZm9udC1wYWxldHRlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGRiZWQzNjQzMTkxM2U5
ZWI3ZDlhMTNmYzA4ZGQ1YWRjZmVmMzNiMjMuLjBlNjg0MWViNjBhODVkOGExN2FlNzlhNmQxOTg2
NWI2MTVmMjVhNGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzUgQEAKKzIwMjEtMDktMjcgIEJKIEJ1
cmcgIDxiYnVyZ0BhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBBZGQgU1BJIHRvIHNlbGVj
dCBhIHRhYiBjcmVhdGVkIGJ5IF9XS0luc3BlY3RvckV4dGVuc2lvbgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMwNTgwCisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS84MzM3Mjg1MT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBBZGQgYSBuZXcgbWV0aG9kIGZvciBzZWxlY3RpbmcgYW4gZXh0ZW5zaW9uIHRh
YiBpbiBXZWJJbnNwZWN0b3JVSQorICAgICAgICB0aGF0IHdhcyBwcmV2aW91c2x5IGNyZWF0ZWQg
YnkgdXNpbmcKKyAgICAgICAgLVtfV0tJbnNwZWN0b3JFeHRlbnNpb24gY3JlYXRlTmV3VGFiOnRh
Ykljb25VUkw6c291cmNlVVJMOmNvbXBsZXRpb25IYW5kbGVyXS4KKworICAgICAgICBUaGlzIGlz
IGEgc3RyYWlnaHRmb3J3YXJkIHBsdW1iaW5nIGV4ZXJjaXNlLiBUaGUgQVBJIHRlc3QgdXNlcyB0
aGUgbmV3IG1ldGhvZAorICAgICAgICB0byB0ZXN0IHRoZSBleGlzdGluZyBfV0tJbnNwZWN0b3JF
eHRlbnNpb25EZWxlZ2F0ZSBjYWxsYmFjayBtZXRob2RzIGZvcgorICAgICAgICBkaWRTaG93VGFi
IGFuZCBkaWRIaWRlVGFiLgorCisgICAgICAgIE5ldyBBUEkgdGVzdDogV0tJbnNwZWN0b3JFeHRl
bnNpb25EZWxlZ2F0ZS5TaG93QW5kSGlkZVRhYkNhbGxiYWNrcy4KKworICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9yLm1tOgorICAgICAgICAoLVtfV0tJbnNwZWN0b3Ig
c2hvd0V4dGVuc2lvblRhYldpdGhJZGVudGlmaWVyOmNvbXBsZXRpb25IYW5kbGVyOl0pOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9yRXh0ZW5zaW9uSG9zdC5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUmVtb3RlV2ViSW5zcGVjdG9yVmlld0Nv
bnRyb2xsZXIubW06CisgICAgICAgICgtW19XS1JlbW90ZVdlYkluc3BlY3RvclZpZXdDb250cm9s
bGVyIHNob3dFeHRlbnNpb25UYWJXaXRoSWRlbnRpZmllcjpjb21wbGV0aW9uSGFuZGxlcjpdKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29u
dHJvbGxlclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yVUlFeHRlbnNp
b25Db250cm9sbGVyUHJveHk6OnNob3dFeHRlbnNpb25UYWIpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyUHJveHkuaDoKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRy
b2xsZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRy
b2xsZXI6OnNob3dFeHRlbnNpb25UYWIpOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5zcGVjdG9y
L1dlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlci5oOgorICAgICAgICAqIFdlYlByb2Nl
c3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlci5tZXNzYWdlcy5p
bjoKKworMjAyMS0wOS0yNyAgQkogQnVyZyAgPGJidXJnQGFwcGxlLmNvbT4KKworICAgICAgICBb
Q29jb2FdIGJhY2twb3J0IHNob3dDb25zb2xlKCkgYW5kIHNob3dSZXNvdXJjZXMoKSBmb3IgUmVt
b3RlV2ViSW5zcGVjdG9yVUkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIzMDU3MworICAgICAgICA8cmRhcjovL3Byb2JsZW0vODMzNjU4MTQ+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgRGV2aW4gUm91c3NvLgorCisgICAgICAgIFRoZXNlIG1ldGhvZHMg
YWxyZWFkeSBleGlzdCBmb3IgX1dLSW5zcGVjdG9yLiBBIHRlc3Qgd2lsbCBiZSBhZGRlZCBpbiAK
KyAgICAgICAgZnV0dXJlIHBhdGNoIHRoYXQgdGVzdHMgX1dLSW5zcGVjdG9yRXh0ZW5zaW9uRGVs
ZWdhdGUgc2hvd24vaGlkZGVuIGNhbGxiYWNrIG1ldGhvZHMuCisKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL0NvY29hL19XS0luc3BlY3RvcklCQWN0aW9ucy5oOiBDb3BpZWQgZnJvbSBTb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9yLmguCisgICAgICAgIEFkZGVk
LiBBUEkgYW5kIFNQSSB0aGF0IGFyZSBzaGFyZWQgYmV0d2VlbiBsb2NhbCBhbmQgcmVtb3RlIFdl
YiBJbnNwZWN0b3IKKyAgICAgICAgc2hvdWxkIGdvIGluIHRoaXMgY2xhc3MuIFNpbmNlIHRoZXNl
IG1ldGhvZHMgYXJlIHVzZWQgdG8gaW1wbGVtZW50IElCQWN0aW9ucyBmb3IgYQorICAgICAgICBk
ZXRhY2hlZCBXZWIgSW5zcGVjdG9yIHdpbmRvdywgdGhlIHByb3RvY29sIGlzIG5hbWVkIF9XS0lu
c3BlY3RvcklCQWN0aW9ucy4KKyAgICAgICAgSG9pc3Qgc2hvd1Jlc291cmNlcygpIGFuZCBzaG93
Q29uc29sZSgpIHRvIHRoaXMgc2hhcmVkIHByb3RvY29sLgorCisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9Db2NvYS9fV0tJbnNwZWN0b3JFeHRlbnNpb25Ib3N0Lmg6CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9Db2NvYS9fV0tJbnNwZWN0b3IuaDogUmVtb3ZlIG1ldGhvZHMgdGhhdCBhcmUKKyAg
ICAgICAgcGFydCBvZiB0aGUgX1dLSW5zcGVjdG9ySUJBY3Rpb25zIHByb3RvY29sLgorCisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tSZW1vdGVXZWJJbnNwZWN0b3JWaWV3Q29udHJv
bGxlci5tbToKKyAgICAgICAgKC1bX1dLUmVtb3RlV2ViSW5zcGVjdG9yVmlld0NvbnRyb2xsZXIg
c2hvd0NvbnNvbGVdKToKKyAgICAgICAgKC1bX1dLUmVtb3RlV2ViSW5zcGVjdG9yVmlld0NvbnRy
b2xsZXIgc2hvd1Jlc291cmNlc10pOgorICAgICAgICBBZGRlZC4gQ2FsbCBpbnRvIFJlbW90ZVdl
Ykluc3BlY3RvclVJUHJveHkuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvSW5zcGVjdG9yL1JlbW90
ZVdlYkluc3BlY3RvclVJUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvSW5zcGVjdG9yL1Jl
bW90ZVdlYkluc3BlY3RvclVJUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVXZWJJ
bnNwZWN0b3JVSVByb3h5OjpzaG93Q29uc29sZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVdl
Ykluc3BlY3RvclVJUHJveHk6OnNob3dSZXNvdXJjZXMpOgorICAgICAgICBBZGRlZC4gU2VuZCBh
biBJUEMgbWVzc2FnZSB0byB0aGUgSW5zcGVjdG9yIHdlYiBwcm9jZXNzLgorCisgICAgICAgICog
V2ViUHJvY2Vzcy9JbnNwZWN0b3IvUmVtb3RlV2ViSW5zcGVjdG9yVUkuaDoKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL0luc3BlY3Rvci9SZW1vdGVXZWJJbnNwZWN0b3JVSS5tZXNzYWdlcy5pbjoKKyAg
ICAgICAgQWRkIG5ldyBtZXNzYWdlcy4KKworICAgICAgICAqIFdlYlByb2Nlc3MvSW5zcGVjdG9y
L1JlbW90ZVdlYkluc3BlY3RvclVJLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlV2ViSW5z
cGVjdG9yVUk6OnNob3dDb25zb2xlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlV2ViSW5zcGVj
dG9yVUk6OnNob3dSZXNvdXJjZXMpOgorICAgICAgICBBZGRlZC4gQmFja3BvcnQgdGhlIGltcGxl
bWVudGF0aW9uIGZyb20gV2ViSW5zcGVjdG9yVUkuCisKIDIwMjEtMDktMjcgIFlvdWVubiBGYWJs
ZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIGlQYWRPUyAxNSAvIGlPUyAxNSB1bmFi
bGUgdG8gZGVjb2RlIFZQOSBzdHJlYW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL1dlYkluc3BlY3RvckV4dGVuc2lvbkNvbnRyb2xs
ZXIuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9X
ZWJJbnNwZWN0b3JFeHRlbnNpb25Db250cm9sbGVyLmpzCmluZGV4IDQ2ZTM3NzRkMDVkYmRlYTQw
NGY2NzRmODgzNjg0NTFiNjQ3NDhmOTAuLmVkYjA5YzA0YzcwYWU5NjViM2MxNzY1NWNhMTIwODE0
ZjhhMjA0YTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L0NvbnRyb2xsZXJzL1dlYkluc3BlY3RvckV4dGVuc2lvbkNvbnRyb2xsZXIuanMKKysrIGIvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvV2ViSW5zcGVjdG9y
RXh0ZW5zaW9uQ29udHJvbGxlci5qcwpAQCAtMTUxLDggKzE1MSwyNCBAQCBXSS5XZWJJbnNwZWN0
b3JFeHRlbnNpb25Db250cm9sbGVyID0gY2xhc3MgV2ViSW5zcGVjdG9yRXh0ZW5zaW9uQ29udHJv
bGxlciBleHRlbgogICAgICAgICAgICAgcmV0dXJuIFdJLldlYkluc3BlY3RvckV4dGVuc2lvbi5F
cnJvckNvZGUuSW52YWxpZFJlcXVlc3Q7CiAgICAgICAgIAogICAgICAgICByZXR1cm4gdGFyZ2V0
LlBhZ2VBZ2VudC5yZWxvYWQuaW52b2tlKHtpZ25vcmVDYWNoZX0pOwotICAgICAgICAKLSAgICAg
ICAgCisgICAgfQorICAgIAorICAgIHNob3dFeHRlbnNpb25UYWIoZXh0ZW5zaW9uVGFiSUQpCisg
ICAgeworICAgICAgICBsZXQgdGFiQ29udGVudFZpZXcgPSB0aGlzLl9leHRlbnNpb25UYWJDb250
ZW50Vmlld0ZvckV4dGVuc2lvblRhYklETWFwLmdldChleHRlbnNpb25UYWJJRCk7CisgICAgICAg
IGlmICghdGFiQ29udGVudFZpZXcpIHsKKyAgICAgICAgICAgIFdJLnJlcG9ydEludGVybmFsRXJy
b3IoIlVuYWJsZSB0byBzaG93IGV4dGVuc2lvbiB0YWIgd2l0aCB1bmtub3duIGV4dGVuc2lvblRh
YklEOiAiICsgZXh0ZW5zaW9uVGFiSUQpOworICAgICAgICAgICAgcmV0dXJuIFdJLldlYkluc3Bl
Y3RvckV4dGVuc2lvbi5FcnJvckNvZGUuSW52YWxpZFJlcXVlc3Q7CisgICAgICAgIH0KKworICAg
ICAgICBsZXQgc3VjY2VzcyA9IFdJLnRhYkJyb3dzZXIuc2hvd1RhYkZvckNvbnRlbnRWaWV3KHRh
YkNvbnRlbnRWaWV3LCB7CisgICAgICAgICAgICBpbml0aWF0b3JIaW50OiBXSS5UYWJCcm93c2Vy
LlRhYk5hdmlnYXRpb25Jbml0aWF0b3IuRnJvbnRlbmRBUEksCisgICAgICAgIH0pOworCisgICAg
ICAgIGlmICghc3VjY2VzcykgeworICAgICAgICAgICAgV0kucmVwb3J0SW50ZXJuYWxFcnJvcigi
VW5hYmxlIHRvIHNob3cgZXh0ZW5zaW9uIHRhYiB3aXRoIGV4dGVuc2lvblRhYklEOiAiICsgZXh0
ZW5zaW9uVGFiSUQpOworICAgICAgICAgICAgcmV0dXJuIFdJLldlYkluc3BlY3RvckV4dGVuc2lv
bi5FcnJvckNvZGUuSW50ZXJuYWxFcnJvcjsKKyAgICAgICAgfQogICAgIH0KIH07CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Byb3RvY29sL0luc3Bl
Y3RvckZyb250ZW5kQVBJLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
UHJvdG9jb2wvSW5zcGVjdG9yRnJvbnRlbmRBUEkuanMKaW5kZXggYWYyYzE4OWI5OThmM2RlNjVl
ZGNjYjE2MWQ4MWY2M2I2N2NiNGI1Mi4uNDI4YzU0MzNmNmM0ZGNhMDg4MDkyNjhlMjA2YzEzODZm
NThmN2JiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
UHJvdG9jb2wvSW5zcGVjdG9yRnJvbnRlbmRBUEkuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvUHJvdG9jb2wvSW5zcGVjdG9yRnJvbnRlbmRBUEkuanMKQEAgLTIz
MCw0ICsyMzAsMTAgQEAgSW5zcGVjdG9yRnJvbnRlbmRBUEkgPSB7CiAgICAgewogICAgICAgICBy
ZXR1cm4gV0kuc2hhcmVkQXBwLmV4dGVuc2lvbkNvbnRyb2xsZXIucmVsb2FkRm9yRXh0ZW5zaW9u
KGV4dGVuc2lvbklELCB7aWdub3JlQ2FjaGUsIHVzZXJBZ2VudCwgaW5qZWN0ZWRTY3JpcHR9KTsK
ICAgICB9LAorCisgICAgLy8gUmV0dXJucyBhIFdJLldlYkluc3BlY3RvckV4dGVuc2lvbi5FcnJv
ckNvZGUgaWYgYW4gZXJyb3Igb2NjdXJyZWQsIG90aGVyd2lzZSBub3RoaW5nLgorICAgIHNob3dF
eHRlbnNpb25UYWIoZXh0ZW5zaW9uVGFiSUQpCisgICAgeworICAgICAgICByZXR1cm4gV0kuc2hh
cmVkQXBwLmV4dGVuc2lvbkNvbnRyb2xsZXIuc2hvd0V4dGVuc2lvblRhYihleHRlbnNpb25UYWJJ
RCk7CisgICAgfQogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9fV0tJbnNwZWN0b3IuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9f
V0tJbnNwZWN0b3IuaAppbmRleCBlZTc2OWU5MDMwMzk2NzAxZmZjNDNjNjY5M2UzZjA1NjAzYmVj
MWUxLi4wNzRmNTgyYzY1MWE5MTJhMTI1YWQ4ZThiOTg1Zjc4MjQ4ZDRjYzNkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9yLmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0luc3BlY3Rvci5oCkBAIC0xLDUg
KzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxOC0yMDIwIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxOC0yMDIxIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjYs
NiArMjYsNyBAQAogI2ltcG9ydCA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+CiAjaW1wb3J0IDxX
ZWJLaXQvV0tGb3VuZGF0aW9uLmg+CiAjaW1wb3J0IDxXZWJLaXQvX1dLSW5zcGVjdG9yRXh0ZW5z
aW9uSG9zdC5oPgorI2ltcG9ydCA8V2ViS2l0L19XS0luc3BlY3RvcklCQWN0aW9ucy5oPgogCiBO
U19BU1NVTUVfTk9OTlVMTF9CRUdJTgogCkBAIC0zNSw3ICszNiw3IEBAIE5TX0FTU1VNRV9OT05O
VUxMX0JFR0lOCiBAcHJvdG9jb2wgX1dLSW5zcGVjdG9yRGVsZWdhdGU7CiAKIFdLX0NMQVNTX0FW
QUlMQUJMRShtYWNvcygxMC4xNC40KSwgaW9zKDEyLjIpKQotQGludGVyZmFjZSBfV0tJbnNwZWN0
b3IgOiBOU09iamVjdCA8X1dLSW5zcGVjdG9yRXh0ZW5zaW9uSG9zdD4KK0BpbnRlcmZhY2UgX1dL
SW5zcGVjdG9yIDogTlNPYmplY3QgPF9XS0luc3BlY3RvckV4dGVuc2lvbkhvc3QsIF9XS0luc3Bl
Y3RvcklCQWN0aW9ucz4KIAogLSAoaW5zdGFuY2V0eXBlKWluaXQgTlNfVU5BVkFJTEFCTEU7CiAK
QEAgLTQ5LDExICs1MCw3IEBAIFdLX0NMQVNTX0FWQUlMQUJMRShtYWNvcygxMC4xNC40KSwgaW9z
KDEyLjIpKQogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBCT09MIGlzRWxlbWVudFNl
bGVjdGlvbkFjdGl2ZTsKIAogLSAodm9pZCljb25uZWN0OwotLSAodm9pZClzaG93OwotLSAodm9p
ZCljbG9zZTsKIC0gKHZvaWQpaGlkZTsKLS0gKHZvaWQpc2hvd0NvbnNvbGU7Ci0tICh2b2lkKXNo
b3dSZXNvdXJjZXM7CiAtICh2b2lkKXNob3dNYWluUmVzb3VyY2VGb3JGcmFtZTooX1dLRnJhbWVI
YW5kbGUgKilmcmFtZTsKIC0gKHZvaWQpYXR0YWNoOwogLSAodm9pZClkZXRhY2g7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9yLm1tIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0luc3BlY3Rvci5tbQppbmRleCBk
Njk1ZjFmZmZjMzhhZDE4OTU0ZGY3NTQ3MmFiM2Y0NzlkNmE2NDNiLi4xMTg0YjJhOTU5MjczN2M4
ZWU0YmZhYzFlOTNkOGFjZDk3MGZhNmRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9yLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9fV0tJbnNwZWN0b3IubW0KQEAgLTI3MCw0ICsyNzAsMjQgQEAgLSAodm9p
ZCl1bnJlZ2lzdGVyRXh0ZW5zaW9uOihfV0tJbnNwZWN0b3JFeHRlbnNpb24gKilleHRlbnNpb24g
Y29tcGxldGlvbkhhbmRsZXIKICNlbmRpZgogfQogCistICh2b2lkKXNob3dFeHRlbnNpb25UYWJX
aXRoSWRlbnRpZmllcjooTlNTdHJpbmcgKilleHRlbnNpb25UYWJJZGVudGlmaWVyIGNvbXBsZXRp
b25IYW5kbGVyOih2b2lkKF4pKE5TRXJyb3IgKikpY29tcGxldGlvbkhhbmRsZXIKK3sKKyNpZiBF
TkFCTEUoSU5TUEVDVE9SX0VYVEVOU0lPTlMpCisgICAgLy8gSXQgaXMgYW4gZXJyb3IgdG8gY2Fs
bCB0aGlzIG1ldGhvZCBwcmlvciB0byBjcmVhdGluZyBhIGZyb250ZW5kIChpLmUuLCB3aXRoIC1j
b25uZWN0IG9yIC1zaG93KS4KKyAgICBpZiAoIV9pbnNwZWN0b3ItPmV4dGVuc2lvbkNvbnRyb2xs
ZXIoKSkgeworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihbTlNFcnJvciBlcnJvcldpdGhEb21h
aW46V0tFcnJvckRvbWFpbiBjb2RlOldLRXJyb3JVbmtub3duIHVzZXJJbmZvOkB7IE5TTG9jYWxp
emVkRmFpbHVyZVJlYXNvbkVycm9yS2V5OiBJbnNwZWN0b3I6OmV4dGVuc2lvbkVycm9yVG9TdHJp
bmcoSW5zcGVjdG9yOjpFeHRlbnNpb25FcnJvcjo6SW52YWxpZFJlcXVlc3QpfV0pOworICAgICAg
ICByZXR1cm47CisgICAgfQorCisgICAgX2luc3BlY3Rvci0+ZXh0ZW5zaW9uQ29udHJvbGxlcigp
LT5zaG93RXh0ZW5zaW9uVGFiKGV4dGVuc2lvblRhYklkZW50aWZpZXIsIFtwcm90ZWN0ZWRTZWxm
ID0gcmV0YWluUHRyKHNlbGYpLCBjYXB0dXJlZEJsb2NrID0gbWFrZUJsb2NrUHRyKGNvbXBsZXRp
b25IYW5kbGVyKV0gKEV4cGVjdGVkPGJvb2wsIEluc3BlY3Rvcjo6RXh0ZW5zaW9uRXJyb3I+IHJl
c3VsdCkgbXV0YWJsZSB7CisgICAgICAgIGlmICghcmVzdWx0KSB7CisgICAgICAgICAgICBjYXB0
dXJlZEJsb2NrKFtOU0Vycm9yIGVycm9yV2l0aERvbWFpbjpXS0Vycm9yRG9tYWluIGNvZGU6V0tF
cnJvclVua25vd24gdXNlckluZm86QHsgTlNMb2NhbGl6ZWRGYWlsdXJlUmVhc29uRXJyb3JLZXk6
IEluc3BlY3Rvcjo6ZXh0ZW5zaW9uRXJyb3JUb1N0cmluZyhyZXN1bHQuZXJyb3IoKSl9XSk7Cisg
ICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBjYXB0dXJlZEJsb2NrKG5p
bCk7CisgICAgfSk7CisjZW5kaWYKK30KKwogQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0luc3BlY3RvckV4dGVuc2lvbkhvc3QuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJbnNwZWN0b3JFeHRlbnNpb25Ib3N0LmgK
aW5kZXggZTI3OWJjNmYzMjJlZTZkZWMwYzg4MDE3OTE0NTY3MjIyMGY2M2UwOS4uYjBlNDU1NDNi
ODNlNTE3MDZlMzYzNjZhNjIwN2E1YzA1YTA5NDI1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0luc3BlY3RvckV4dGVuc2lvbkhvc3QuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9yRXh0ZW5zaW9uSG9z
dC5oCkBAIC01NCwxMCArNTQsMTIgQEAgTlNfQVNTVU1FX05PTk5VTExfQkVHSU4KIC0gKHZvaWQp
dW5yZWdpc3RlckV4dGVuc2lvbjooX1dLSW5zcGVjdG9yRXh0ZW5zaW9uICopZXh0ZW5zaW9uIGNv
bXBsZXRpb25IYW5kbGVyOih2b2lkKF4pKE5TRXJyb3IgKiBfTnVsbGFibGUpKWNvbXBsZXRpb25I
YW5kbGVyOwogCiAvKioKLSAqIEBhYnN0cmFjdCBDbG9zZXMgdGhlIGFzc29jaWF0ZWQgV2ViIElu
c3BlY3RvciBpbnN0YW5jZS4gVGhpcyB3aWxsIGNhdXNlIGFsbAotICogcmVnaXN0ZXJlZCBfV0tJ
bnNwZWN0b3JFeHRlbnNpb25zIHRvIGJlIHVucmVnaXN0ZXJlZCBhbmQgaW52YWxpZGF0ZWQuCisg
KiBAYWJzdHJhY3QgT3BlbnMgdGhlIHNwZWNpZmllZCBleHRlbnNpb24gdGFiIGluIHRoZSBhc3Nv
Y2lhdGVkIFdlYiBJbnNwZWN0b3IuCisgKiBAcGFyYW0gZXh0ZW5zaW9uVGFiSWRlbnRpZmllciBB
biBpZGVudGlmaWVyIGZvciBhbiBleHRlbnNpb24gdGFiIGNyZWF0ZWQgdXNpbmcgV0tJbnNwZWN0
b3JFeHRlbnNpb24gbWV0aG9kcy4KKyAqIEBwYXJhbSBjb21wbGV0aW9uSGFuZGxlciBUaGUgY29t
cGxldGlvbiBoYW5kbGVyIHRvIGJlIGNhbGxlZCB3aGVuIHRoZSByZXF1ZXN0IHRvIHNob3cgdGhl
IHRhYiBzdWNjZWVkcyBvciBmYWlscy4KKyAqIEBkaXNjdXNzaW9uIFRoaXMgbWV0aG9kIGhhcyBu
byBlZmZlY3QgaWYgdGhlIGV4dGVuc2lvblRhYklkZW50aWZpZXIgaXMgaW52YWxpZC4KICAqLwot
LSAodm9pZCljbG9zZTsKKy0gKHZvaWQpc2hvd0V4dGVuc2lvblRhYldpdGhJZGVudGlmaWVyOihO
U1N0cmluZyAqKWV4dGVuc2lvblRhYklkZW50aWZpZXIgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQo
XikoTlNFcnJvciAqIF9OdWxsYWJsZSkpY29tcGxldGlvbkhhbmRsZXI7CiAKIC8qKgogICogQGFi
c3RyYWN0IFRoZSB3ZWIgdmlldyB0aGF0IGlzIHVzZWQgdG8gaG9zdCBleHRlbnNpb24gdGFicyBj
cmVhdGVkIHZpYSBfV0tJbnNwZWN0b3JFeHRlbnNpb24uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9ySUJBY3Rpb25zLmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9ySUJBY3Rpb25zLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMzZiMDZlN2M3ZjIyYWJjY2FhZmI3ZWZkZmJmYTk1NWQzOTBkMDc5OQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJbnNwZWN0b3JJ
QkFjdGlvbnMuaApAQCAtMCwwICsxLDU2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCA8Rm91bmRh
dGlvbi9Gb3VuZGF0aW9uLmg+CisjaW1wb3J0IDxXZWJLaXQvV0tGb3VuZGF0aW9uLmg+CisKK05T
X0FTU1VNRV9OT05OVUxMX0JFR0lOCisKK0Bwcm90b2NvbCBfV0tJbnNwZWN0b3JJQkFjdGlvbnMg
PE5TT2JqZWN0PgorCisvKioKKyAqIEBhYnN0cmFjdCBTaG93cyB0aGUgYXNzb2NpYXRlZCBXZWIg
SW5zcGVjdG9yIGluc3RhbmNlLgorICovCistICh2b2lkKXNob3c7CisKKy8qKgorICogQGFic3Ry
YWN0IENsb3NlcyB0aGUgYXNzb2NpYXRlZCBXZWIgSW5zcGVjdG9yIGluc3RhbmNlLiBUaGlzIHdp
bGwgY2F1c2UgYWxsCisgKiByZWdpc3RlcmVkIF9XS0luc3BlY3RvckV4dGVuc2lvbnMgdG8gYmUg
dW5yZWdpc3RlcmVkIGFuZCBpbnZhbGlkYXRlZC4KKyAqLworLSAodm9pZCljbG9zZTsKKworLyoq
CisgKiBAYWJzdHJhY3QgT3BlbnMgdGhlIENvbnNvbGUgVGFiIGluIHRoZSBhc3NvY2lhdGVkIFdl
YiBJbnNwZWN0b3IgaW5zdGFuY2UuCisgKi8KKy0gKHZvaWQpc2hvd0NvbnNvbGU7CisKKy8qKgor
ICogQGFic3RyYWN0IE9wZW5zIHRoZSBTb3VyY2VzIFRhYiBpbiB0aGUgYXNzb2NpYXRlZCBXZWIg
SW5zcGVjdG9yIGluc3RhbmNlLgorICovCistICh2b2lkKXNob3dSZXNvdXJjZXM7CisKK0BlbmQK
KworTlNfQVNTVU1FX05PTk5VTExfRU5ECmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvX1dLUmVtb3RlV2ViSW5zcGVjdG9yVmlld0NvbnRyb2xsZXIuaCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tSZW1vdGVXZWJJbnNwZWN0b3JWaWV3
Q29udHJvbGxlci5oCmluZGV4IGI4MmNkMzAwOGQ3YzNhYmMzZTFhZWZiZmIxMDlmOTlkN2M1NTA0
MGQuLmE0NzUyYzUzNGE3YzMyNTg5Y2NhM2VmY2E0YjMxODVkNjBjZDJhYWIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tSZW1vdGVXZWJJbnNwZWN0b3JW
aWV3Q29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9f
V0tSZW1vdGVXZWJJbnNwZWN0b3JWaWV3Q29udHJvbGxlci5oCkBAIC0xLDUgKzEsNSBAQAogLyoK
LSAqIENvcHlyaWdodCAoQykgMjAxNi0yMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNi0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjUsNiArMjUsNyBAQAog
CiAjaW1wb3J0IDxXZWJLaXQvV0tGb3VuZGF0aW9uLmg+CiAjaW1wb3J0IDxXZWJLaXQvX1dLSW5z
cGVjdG9yRXh0ZW5zaW9uSG9zdC5oPgorI2ltcG9ydCA8V2ViS2l0L19XS0luc3BlY3RvcklCQWN0
aW9ucy5oPgogCiAjaWYgIVRBUkdFVF9PU19JUEhPTkUKIApAQCAtMzcsNyArMzgsNyBAQAogTlNf
QVNTVU1FX05PTk5VTExfQkVHSU4KIAogV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zKDEwLjEyLjMp
KQotQGludGVyZmFjZSBfV0tSZW1vdGVXZWJJbnNwZWN0b3JWaWV3Q29udHJvbGxlciA6IE5TT2Jq
ZWN0IDxfV0tJbnNwZWN0b3JFeHRlbnNpb25Ib3N0PgorQGludGVyZmFjZSBfV0tSZW1vdGVXZWJJ
bnNwZWN0b3JWaWV3Q29udHJvbGxlciA6IE5TT2JqZWN0IDxfV0tJbnNwZWN0b3JFeHRlbnNpb25I
b3N0LCBfV0tJbnNwZWN0b3JJQkFjdGlvbnM+CiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBhc3Np
Z24pIGlkIDxfV0tSZW1vdGVXZWJJbnNwZWN0b3JWaWV3Q29udHJvbGxlckRlbGVnYXRlPiBkZWxl
Z2F0ZTsKIApAQCAtNDcsOCArNDgsNiBAQCBXS19DTEFTU19BVkFJTEFCTEUobWFjb3MoMTAuMTIu
MykpCiAKIC0gKGluc3RhbmNldHlwZSlpbml0V2l0aENvbmZpZ3VyYXRpb246KF9XS0luc3BlY3Rv
ckNvbmZpZ3VyYXRpb24gKiljb25maWd1cmF0aW9uIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTIu
MCkpOwogLSAodm9pZClsb2FkRm9yRGVidWdnYWJsZTooX1dLSW5zcGVjdG9yRGVidWdnYWJsZUlu
Zm8gKilkZWJ1Z2dhYmxlSW5mbyBiYWNrZW5kQ29tbWFuZHNVUkw6KE5TVVJMICopYmFja2VuZENv
bW1hbmRzVVJMIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTIuMCkpOwotLSAodm9pZCljbG9zZTsK
LS0gKHZvaWQpc2hvdzsKIAogLSAodm9pZClzZW5kTWVzc2FnZVRvRnJvbnRlbmQ6KE5TU3RyaW5n
ICopbWVzc2FnZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL19XS1JlbW90ZVdlYkluc3BlY3RvclZpZXdDb250cm9sbGVyLm1tIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1JlbW90ZVdlYkluc3BlY3RvclZpZXdDb250cm9sbGVy
Lm1tCmluZGV4IGMxMzAzOTljZjlmMzA2M2Y1YTJkY2MzOTJlMTllZWZkNzYzYzE1M2EuLjBkM2Q4
ZDNlNmU3MDM0MmE0OTkzODllYTVmYTViNWNhZDc4NzcwMTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tSZW1vdGVXZWJJbnNwZWN0b3JWaWV3Q29udHJv
bGxlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUmVtb3Rl
V2ViSW5zcGVjdG9yVmlld0NvbnRyb2xsZXIubW0KQEAgLTIwNyw2ICsyMDcsMzYgQEAgLSAodm9p
ZCl1bnJlZ2lzdGVyRXh0ZW5zaW9uOihfV0tJbnNwZWN0b3JFeHRlbnNpb24gKilleHRlbnNpb24g
Y29tcGxldGlvbkhhbmRsZXIKICNlbmRpZgogfQogCistICh2b2lkKXNob3dDb25zb2xlCit7Cisg
ICAgbV9yZW1vdGVJbnNwZWN0b3JQcm94eS0+c2hvd0NvbnNvbGUoKTsKK30KKworLSAodm9pZClz
aG93UmVzb3VyY2VzCit7CisgICAgbV9yZW1vdGVJbnNwZWN0b3JQcm94eS0+c2hvd1Jlc291cmNl
cygpOworfQorCistICh2b2lkKXNob3dFeHRlbnNpb25UYWJXaXRoSWRlbnRpZmllcjooTlNTdHJp
bmcgKilleHRlbnNpb25UYWJJZGVudGlmaWVyIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkKF4pKE5T
RXJyb3IgKiBfTnVsbGFibGUpKWNvbXBsZXRpb25IYW5kbGVyCit7CisjaWYgRU5BQkxFKElOU1BF
Q1RPUl9FWFRFTlNJT05TKQorICAgIC8vIEl0IGlzIGFuIGVycm9yIHRvIGNhbGwgdGhpcyBtZXRo
b2QgcHJpb3IgdG8gY3JlYXRpbmcgYSBmcm9udGVuZCAoaS5lLiwgd2l0aCAtY29ubmVjdCBvciAt
c2hvdykuCisgICAgaWYgKCFtX3JlbW90ZUluc3BlY3RvclByb3h5LT5leHRlbnNpb25Db250cm9s
bGVyKCkpIHsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoW05TRXJyb3IgZXJyb3JXaXRoRG9t
YWluOldLRXJyb3JEb21haW4gY29kZTpXS0Vycm9yVW5rbm93biB1c2VySW5mbzpAeyBOU0xvY2Fs
aXplZEZhaWx1cmVSZWFzb25FcnJvcktleTogSW5zcGVjdG9yOjpleHRlbnNpb25FcnJvclRvU3Ry
aW5nKEluc3BlY3Rvcjo6RXh0ZW5zaW9uRXJyb3I6OkludmFsaWRSZXF1ZXN0KX1dKTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKworICAgIG1fcmVtb3RlSW5zcGVjdG9yUHJveHktPmV4dGVuc2lv
bkNvbnRyb2xsZXIoKS0+c2hvd0V4dGVuc2lvblRhYihleHRlbnNpb25UYWJJZGVudGlmaWVyLCBb
cHJvdGVjdGVkU2VsZiA9IHJldGFpblB0cihzZWxmKSwgY2FwdHVyZWRCbG9jayA9IG1ha2VCbG9j
a1B0cihjb21wbGV0aW9uSGFuZGxlcildIChFeHBlY3RlZDxib29sLCBJbnNwZWN0b3I6OkV4dGVu
c2lvbkVycm9yPiByZXN1bHQpIG11dGFibGUgeworICAgICAgICBpZiAoIXJlc3VsdCkgeworICAg
ICAgICAgICAgY2FwdHVyZWRCbG9jayhbTlNFcnJvciBlcnJvcldpdGhEb21haW46V0tFcnJvckRv
bWFpbiBjb2RlOldLRXJyb3JVbmtub3duIHVzZXJJbmZvOkB7IE5TTG9jYWxpemVkRmFpbHVyZVJl
YXNvbkVycm9yS2V5OiBJbnNwZWN0b3I6OmV4dGVuc2lvbkVycm9yVG9TdHJpbmcocmVzdWx0LmVy
cm9yKCkpfV0pOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgY2Fw
dHVyZWRCbG9jayhuaWwpOworICAgIH0pOworI2VuZGlmCit9CisKIEBlbmQKIAogTlNfQVNTVU1F
X05PTk5VTExfRU5ECmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0
b3IvUmVtb3RlV2ViSW5zcGVjdG9yVUlQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9JbnNwZWN0b3IvUmVtb3RlV2ViSW5zcGVjdG9yVUlQcm94eS5jcHAKaW5kZXggM2U2ZGIzNjQw
Njc1ODFiMzdkN2ZkODY4NjFkZDg3ZGVhMzgyZDM1Ni4uNmJmNDdiZjI1ZTcxMTBlMGJmZGRhMDhh
N2MxYWE3OTM3MmUxZTk3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5z
cGVjdG9yL1JlbW90ZVdlYkluc3BlY3RvclVJUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0luc3BlY3Rvci9SZW1vdGVXZWJJbnNwZWN0b3JVSVByb3h5LmNwcApAQCAtOTQs
NiArOTQsMTYgQEAgdm9pZCBSZW1vdGVXZWJJbnNwZWN0b3JVSVByb3h5OjpzaG93KCkKICAgICBi
cmluZ1RvRnJvbnQoKTsKIH0KIAordm9pZCBSZW1vdGVXZWJJbnNwZWN0b3JVSVByb3h5OjpzaG93
Q29uc29sZSgpCit7CisgICAgbV9pbnNwZWN0b3JQYWdlLT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVX
ZWJJbnNwZWN0b3JVSTo6U2hvd0NvbnNvbGUgeyB9KTsKK30KKwordm9pZCBSZW1vdGVXZWJJbnNw
ZWN0b3JVSVByb3h5OjpzaG93UmVzb3VyY2VzKCkKK3sKKyAgICBtX2luc3BlY3RvclBhZ2UtPnNl
bmQoTWVzc2FnZXM6OlJlbW90ZVdlYkluc3BlY3RvclVJOjpTaG93UmVzb3VyY2VzIHsgfSk7Cit9
CisKIHZvaWQgUmVtb3RlV2ViSW5zcGVjdG9yVUlQcm94eTo6c2VuZE1lc3NhZ2VUb0Zyb250ZW5k
KGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKIHsKICAgICBtX2luc3BlY3RvclBhZ2UtPnNlbmQoTWVz
c2FnZXM6OlJlbW90ZVdlYkluc3BlY3RvclVJOjpTZW5kTWVzc2FnZVRvRnJvbnRlbmQobWVzc2Fn
ZSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL1JlbW90
ZVdlYkluc3BlY3RvclVJUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rv
ci9SZW1vdGVXZWJJbnNwZWN0b3JVSVByb3h5LmgKaW5kZXggMzY5NGY0MzM3Y2U0NDcxNWFjNjQw
NzI0ZDk0MTVjOGI2ZWQxNzNkOC4uMTExNDAzOThjOGQ4ZTE3Mzc5NDVmMTEwMmU3NzIyNzlkOTZm
MWI5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL1JlbW90
ZVdlYkluc3BlY3RvclVJUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNw
ZWN0b3IvUmVtb3RlV2ViSW5zcGVjdG9yVUlQcm94eS5oCkBAIC04OCw2ICs4OCw4IEBAIHB1Ymxp
YzoKICAgICB2b2lkIGxvYWQoUmVmPEFQSTo6RGVidWdnYWJsZUluZm8+JiYsIGNvbnN0IFN0cmlu
ZyYgYmFja2VuZENvbW1hbmRzVVJMKTsKICAgICB2b2lkIGNsb3NlRnJvbUJhY2tlbmQoKTsKICAg
ICB2b2lkIHNob3coKTsKKyAgICB2b2lkIHNob3dDb25zb2xlKCk7CisgICAgdm9pZCBzaG93UmVz
b3VyY2VzKCk7CiAKICAgICB2b2lkIHNlbmRNZXNzYWdlVG9Gcm9udGVuZChjb25zdCBTdHJpbmcm
IG1lc3NhZ2UpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0
b3IvV2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyUHJveHkuY3BwIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxl
clByb3h5LmNwcAppbmRleCAwNWIxMDExZmY1MGQ2MWZjZmQzMWNhNzM3ZTBlYWY0YjBkMDViOWYz
Li43NDJhYTI3YjFlYWMzNThhZjA1YjQ3NjEyNDRlYzIxZmQzMDBhMzJkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUlFeHRlbnNpb25D
b250cm9sbGVyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rv
ci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXJQcm94eS5jcHAKQEAgLTE4Nyw2ICsx
ODcsMTkgQEAgdm9pZCBXZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXJQcm94eTo6cmVs
b2FkRm9yRXh0ZW5zaW9uKGNvbnN0IEluc3BlY3RvcjoKICAgICB9KTsKIH0KIAordm9pZCBXZWJJ
bnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXJQcm94eTo6c2hvd0V4dGVuc2lvblRhYihjb25z
dCBJbnNwZWN0b3I6OkV4dGVuc2lvblRhYklEJiBleHRlbnNpb25UYWJJZGVudGlmaWVyLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKEV4cGVjdGVkPGJvb2wsIEluc3BlY3Rvcjo6RXh0ZW5zaW9uRXJy
b3I+KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICB3aGVuRnJvbnRlbmRIYXNMb2FkZWQo
W3dlYWtUaGlzID0gbWFrZVdlYWtQdHIodGhpcyksIGV4dGVuc2lvblRhYklkZW50aWZpZXIsIGNv
bXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildICgpIG11dGFibGUg
eworICAgICAgICBpZiAoIXdlYWtUaGlzIHx8ICF3ZWFrVGhpcy0+bV9pbnNwZWN0b3JQYWdlKSB7
CisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihtYWtlVW5leHBlY3RlZChJbnNwZWN0b3I6
OkV4dGVuc2lvbkVycm9yOjpDb250ZXh0RGVzdHJveWVkKSk7CisgICAgICAgICAgICByZXR1cm47
CisgICAgICAgIH0KKworICAgICAgICB3ZWFrVGhpcy0+bV9pbnNwZWN0b3JQYWdlLT5zZW5kV2l0
aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlcjo6
U2hvd0V4dGVuc2lvblRhYiB7IGV4dGVuc2lvblRhYklkZW50aWZpZXIgfSwgV1RGTW92ZShjb21w
bGV0aW9uSGFuZGxlcikpOworICAgIH0pOworfQorCisKIC8vIFdlYkluc3BlY3RvclVJRXh0ZW5z
aW9uQ29udHJvbGxlclByb3h5IElQQyBtZXNzYWdlcy4KIAogdm9pZCBXZWJJbnNwZWN0b3JVSUV4
dGVuc2lvbkNvbnRyb2xsZXJQcm94eTo6ZGlkU2hvd0V4dGVuc2lvblRhYihjb25zdCBJbnNwZWN0
b3I6OkV4dGVuc2lvbklEJiBleHRlbnNpb25JRCwgY29uc3QgSW5zcGVjdG9yOjpFeHRlbnNpb25U
YWJJRCYgZXh0ZW5zaW9uVGFiSUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyUHJveHkuaCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNv
bnRyb2xsZXJQcm94eS5oCmluZGV4IGYyOTQ3ODE1NDY1ZmEwNWUzM2YwMGVkNWZlNjQzYTI4OTcw
ZGRhOWIuLmNhMjNlYzdhZmIyZTFlYmNmOTg1NzRmZTc5ZTk0MGQ4NDZhMzMxN2EgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVu
c2lvbkNvbnRyb2xsZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3Bl
Y3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXJQcm94eS5oCkBAIC02MCw2ICs2
MCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGNyZWF0ZVRhYkZvckV4dGVuc2lvbihjb25zdCBJbnNw
ZWN0b3I6OkV4dGVuc2lvbklEJiwgY29uc3QgU3RyaW5nJiB0YWJOYW1lLCBjb25zdCBVUkwmIHRh
Ykljb25VUkwsIGNvbnN0IFVSTCYgc291cmNlVVJMLCBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZv
aWQoRXhwZWN0ZWQ8SW5zcGVjdG9yOjpFeHRlbnNpb25UYWJJRCwgSW5zcGVjdG9yOjpFeHRlbnNp
b25FcnJvcj4pPiYmKTsKICAgICB2b2lkIGV2YWx1YXRlU2NyaXB0Rm9yRXh0ZW5zaW9uKGNvbnN0
IEluc3BlY3Rvcjo6RXh0ZW5zaW9uSUQmLCBjb25zdCBTdHJpbmcmIHNjcmlwdFNvdXJjZSwgY29u
c3Qgc3RkOjpvcHRpb25hbDxVUkw+JiBmcmFtZVVSTCwgY29uc3Qgc3RkOjpvcHRpb25hbDxVUkw+
JiBjb250ZXh0U2VjdXJpdHlPcmlnaW4sIGNvbnN0IHN0ZDo6b3B0aW9uYWw8Ym9vbD4mIHVzZUNv
bnRlbnRTY3JpcHRDb250ZXh0LCBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoSW5zcGVjdG9y
OjpFeHRlbnNpb25FdmFsdWF0aW9uUmVzdWx0KT4mJik7CiAgICAgdm9pZCByZWxvYWRGb3JFeHRl
bnNpb24oY29uc3QgSW5zcGVjdG9yOjpFeHRlbnNpb25JRCYsIGNvbnN0IHN0ZDo6b3B0aW9uYWw8
Ym9vbD4mIGlnbm9yZUNhY2hlLCBjb25zdCBzdGQ6Om9wdGlvbmFsPFN0cmluZz4mIHVzZXJBZ2Vu
dCwgY29uc3Qgc3RkOjpvcHRpb25hbDxTdHJpbmc+JiBpbmplY3RlZFNjcmlwdCwgV1RGOjpDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKEluc3BlY3Rvcjo6RXh0ZW5zaW9uRXZhbHVhdGlvblJlc3VsdCk+
JiYpOworICAgIHZvaWQgc2hvd0V4dGVuc2lvblRhYihjb25zdCBJbnNwZWN0b3I6OkV4dGVuc2lv
blRhYklEJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDxib29sLCBJbnNwZWN0b3I6
OkV4dGVuc2lvbkVycm9yPik+JiYpOwogCiAgICAgLy8gV2ViSW5zcGVjdG9yVUlFeHRlbnNpb25D
b250cm9sbGVyUHJveHkgSVBDIG1lc3NhZ2VzLgogICAgIHZvaWQgZGlkU2hvd0V4dGVuc2lvblRh
Yihjb25zdCBJbnNwZWN0b3I6OkV4dGVuc2lvbklEJiwgY29uc3QgSW5zcGVjdG9yOjpFeHRlbnNp
b25UYWJJRCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKaW5kZXggZWY1NGE3N2Y2NDBjMGUxNDRkODAxMmY1YTRlMGQ5YTcxMjViZjMwYS4uMzdk
MGRkMjQ3MWVkNDM4ZjljZDZjNzU5ZTQzMDhmN2I2ZDIyMjJkNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xNTczLDYgKzE1NzMsNyBA
QAogCQk5OUIxNjc1QjI1MkJCQUREMDA3MzE0MEUgLyogV2ViSW5zcGVjdG9yVUlFeHRlbnNpb25D
b250cm9sbGVyUHJveHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDk5QjE2NzVBMjUyQkJBREQwMDczMTQwRSAvKiBXZWJJbnNwZWN0b3JVSUV4dGVuc2lv
bkNvbnRyb2xsZXJQcm94eS5oICovOyB9OwogCQk5OUIxNjc2NDI1MkJCRTYyMDA3MzE0MEUgLyog
V2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OUIxNjc2MTI1MkJCRTYxMDA3MzE0MEUgLyogV2Vi
SW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyLmggKi87IH07CiAJCTk5QzNBRTJEMURBREE2
QUQwMEFGNUMxNiAvKiBXZWJBdXRvbWF0aW9uU2Vzc2lvbk1hY3Jvcy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTlDM0FFMkMxREFEQTZBNzAwQUY1QzE2
IC8qIFdlYkF1dG9tYXRpb25TZXNzaW9uTWFjcm9zLmggKi87IH07CisJCTk5QzYwN0VCMjZGQTlE
NDkwMEEwOTUzRiAvKiBfV0tJbnNwZWN0b3JJQkFjdGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5QzYwN0VBMjZGQTlENDgwMEEwOTUzRiAvKiBf
V0tJbnNwZWN0b3JJQkFjdGlvbnMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQk5OUM4MUQ1QTFDMjBFN0UyMDA1QzRDODIgLyogQXV0b21hdGlvbkNs
aWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTlD
ODFENTUxQzIwREZCRTAwNUM0QzgyIC8qIEF1dG9tYXRpb25DbGllbnQuaCAqLzsgfTsKIAkJOTlD
ODFENUQxQzIxRjM4QjAwNUM0QzgyIC8qIEFQSUF1dG9tYXRpb25DbGllbnQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5QzgxRDVCMUMyMEU4MTcwMDVD
NEM4MiAvKiBBUElBdXRvbWF0aW9uQ2xpZW50LmggKi87IH07CiAJCTk5RTcxNEM1MUMxMjRBMDQw
MDY2NUIzQSAvKiBfV0tBdXRvbWF0aW9uRGVsZWdhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5RTcxNEMxMUMxMjQ5RTYwMDY2NUIzQSAvKiBfV0tB
dXRvbWF0aW9uRGVsZWdhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwpAQCAtNTEyMyw2ICs1MTI0LDcgQEAKIAkJOTlDM0FFMjMxREFEOEUzNDAwQUY1
QzE2IC8qIFdlYkF1dG9tYXRpb25TZXNzaW9uTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBwYXRoID0gV2ViQXV0b21hdGlvblNlc3Npb25NYWMubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTk5QzNBRTI2MURBRDk0ODUwMEFGNUMxNiAvKiBXZWJBdXRvbWF0
aW9uU2Vzc2lvbkNvY29hLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRo
ID0gV2ViQXV0b21hdGlvblNlc3Npb25Db2NvYS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJOTlDM0FFMkMxREFEQTZBNzAwQUY1QzE2IC8qIFdlYkF1dG9tYXRpb25TZXNzaW9uTWFj
cm9zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkF1dG9tYXRpb25TZXNz
aW9uTWFjcm9zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk5QzYwN0VBMjZGQTlE
NDgwMEEwOTUzRiAvKiBfV0tJbnNwZWN0b3JJQkFjdGlvbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gX1dLSW5zcGVjdG9ySUJBY3Rpb25zLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTk5QzgxRDU1MUMyMERGQkUwMDVDNEM4MiAvKiBBdXRvbWF0aW9uQ2xpZW50
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEF1dG9tYXRpb25DbGllbnQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTlDODFENTYxQzIwREZCRTAwNUM0QzgyIC8q
IEF1dG9tYXRpb25DbGllbnQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBh
dGggPSBBdXRvbWF0aW9uQ2xpZW50Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5
OUM4MUQ1QjFDMjBFODE3MDA1QzRDODIgLyogQVBJQXV0b21hdGlvbkNsaWVudC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBUElBdXRvbWF0aW9uQ2xpZW50Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC04MjEyLDYgKzgyMTQsNyBAQAogCQkJCTk5NkIyQkEwMjVF
MjU5MTEwMDcxOTM3OSAvKiBfV0tJbnNwZWN0b3JFeHRlbnNpb25EZWxlZ2F0ZS5oICovLAogCQkJ
CTk5Nzk2NUEyMjUzMTI4QzcwMEIzMUFFMyAvKiBfV0tJbnNwZWN0b3JFeHRlbnNpb25Ib3N0Lmgg
Ki8sCiAJCQkJOTlCMTY3NTUyNTJCQjdFMTAwNzMxNDBFIC8qIF9XS0luc3BlY3RvckV4dGVuc2lv
bkludGVybmFsLmggKi8sCisJCQkJOTlDNjA3RUEyNkZBOUQ0ODAwQTA5NTNGIC8qIF9XS0luc3Bl
Y3RvcklCQWN0aW9ucy5oICovLAogCQkJCTVDQUZERTQ0MjEzMDg0MzYwMEIxRjdFMSAvKiBfV0tJ
bnNwZWN0b3JJbnRlcm5hbC5oICovLAogCQkJCTk5NzlDQTU3MjM3RjQ5RjAwMDM5RUMwNSAvKiBf
V0tJbnNwZWN0b3JQcml2YXRlLmggKi8sCiAJCQkJOTk5OTZBOUQyNTAwNEJDQjAwNEY3NTU5IC8q
IF9XS0luc3BlY3RvclByaXZhdGVGb3JUZXN0aW5nLmggKi8sCkBAIC0xMjAwMSw2ICsxMjAwNCw3
IEBACiAJCQkJOTk2QjJCQTEyNUUyNTkxMTAwNzE5Mzc5IC8qIF9XS0luc3BlY3RvckV4dGVuc2lv
bkRlbGVnYXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQk5OTc5NjVBMzI1MzEyOEM3MDBCMzFBRTMg
LyogX1dLSW5zcGVjdG9yRXh0ZW5zaW9uSG9zdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTlCMTY3
NTgyNTJCQjdFMTAwNzMxNDBFIC8qIF9XS0luc3BlY3RvckV4dGVuc2lvbkludGVybmFsLmggaW4g
SGVhZGVycyAqLywKKwkJCQk5OUM2MDdFQjI2RkE5RDQ5MDBBMDk1M0YgLyogX1dLSW5zcGVjdG9y
SUJBY3Rpb25zLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0FGREU0NzIxMzA4NDZBMDBCMUY3RTEg
LyogX1dLSW5zcGVjdG9ySW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTk5NzlDQTU4MjM3
RjQ5RjEwMDM5RUMwNSAvKiBfV0tJbnNwZWN0b3JQcml2YXRlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk5OTk5NkE5RjI1MDA0QkNDMDA0Rjc1NTkgLyogX1dLSW5zcGVjdG9yUHJpdmF0ZUZvclRlc3Rp
bmcuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0luc3BlY3Rvci9SZW1vdGVXZWJJbnNwZWN0b3JVSS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvSW5zcGVjdG9yL1JlbW90ZVdlYkluc3BlY3RvclVJLmNwcAppbmRleCA2ZGIwMDkxMzc5
NDNiYjhjM2JkNWQxMjhjM2E0ZGYxNGEzMGQ5YjQ0Li5lYjhjZjgyZTkxZTQ3MmY0YTMyZTE3ZmI2
M2IzYmM1ZTk0YTJiNGMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5z
cGVjdG9yL1JlbW90ZVdlYkluc3BlY3RvclVJLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvSW5zcGVjdG9yL1JlbW90ZVdlYkluc3BlY3RvclVJLmNwcApAQCAtMjAzLDYgKzIwMywx
NiBAQCB2b2lkIFJlbW90ZVdlYkluc3BlY3RvclVJOjpyZXNldFN0YXRlKCkKICAgICBXZWJQcm9j
ZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2Vz
OjpSZW1vdGVXZWJJbnNwZWN0b3JVSVByb3h5OjpSZXNldFN0YXRlKCksIG1fcGFnZS5pZGVudGlm
aWVyKCkpOwogfQogCit2b2lkIFJlbW90ZVdlYkluc3BlY3RvclVJOjpzaG93Q29uc29sZSgpCit7
CisgICAgbV9mcm9udGVuZEFQSURpc3BhdGNoZXItPmRpc3BhdGNoQ29tbWFuZFdpdGhSZXN1bHRB
c3luYygic2hvd0NvbnNvbGUiX3MpOworfQorCit2b2lkIFJlbW90ZVdlYkluc3BlY3RvclVJOjpz
aG93UmVzb3VyY2VzKCkKK3sKKyAgICBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hlci0+ZGlzcGF0Y2hD
b21tYW5kV2l0aFJlc3VsdEFzeW5jKCJzaG93UmVzb3VyY2VzIl9zKTsKK30KKwogdm9pZCBSZW1v
dGVXZWJJbnNwZWN0b3JVSTo6b3BlblVSTEV4dGVybmFsbHkoY29uc3QgU3RyaW5nJiB1cmwpCiB7
CiAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+
c2VuZChNZXNzYWdlczo6UmVtb3RlV2ViSW5zcGVjdG9yVUlQcm94eTo6T3BlblVSTEV4dGVybmFs
bHkodXJsKSwgbV9wYWdlLmlkZW50aWZpZXIoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1JlbW90ZVdlYkluc3BlY3RvclVJLmggYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1JlbW90ZVdlYkluc3BlY3RvclVJLmgKaW5kZXggMDBh
M2VlMDFlZDFmNTY5NDI0YTU4ZDVjNjQ3NjUwYTRmMTk3MWMwYy4uZmQ0NWQyMTZjZTFhMWNkZDZj
ODQ3NThjYzc2NjhmZWMyYmZjN2Y2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0luc3BlY3Rvci9SZW1vdGVXZWJJbnNwZWN0b3JVSS5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbnNwZWN0b3IvUmVtb3RlV2ViSW5zcGVjdG9yVUkuaApAQCAtNjUsNiArNjUs
OCBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaWRTYXZlKGNvbnN0IFN0cmluZyYgdXJsKTsKICAgICB2
b2lkIGRpZEFwcGVuZChjb25zdCBTdHJpbmcmIHVybCk7CiAgICAgdm9pZCBzZW5kTWVzc2FnZVRv
RnJvbnRlbmQoY29uc3QgU3RyaW5nJik7CisgICAgdm9pZCBzaG93Q29uc29sZSgpOworICAgIHZv
aWQgc2hvd1Jlc291cmNlcygpOwogCiAjaWYgRU5BQkxFKElOU1BFQ1RPUl9URUxFTUVUUlkpCiAg
ICAgdm9pZCBzZXREaWFnbm9zdGljTG9nZ2luZ0F2YWlsYWJsZShib29sKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvUmVtb3RlV2ViSW5zcGVjdG9yVUku
bWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1JlbW90ZVdl
Ykluc3BlY3RvclVJLm1lc3NhZ2VzLmluCmluZGV4IDNlMjAyYzE2ZTdjNTE2ZjgzMDAxOWQ3ZGUx
OWQwMzBjNWExZDM0NWQuLjk1NWI2OGVkNDMwMWNkYmY0YzEwY2VmYzI2ZmMyZjY1MmJkODg1M2Eg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvUmVtb3RlV2Vi
SW5zcGVjdG9yVUkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0lu
c3BlY3Rvci9SZW1vdGVXZWJJbnNwZWN0b3JVSS5tZXNzYWdlcy5pbgpAQCAtMjksNiArMjksOSBA
QCBtZXNzYWdlcyAtPiBSZW1vdGVXZWJJbnNwZWN0b3JVSSB7CiAgICAgU2V0RGlhZ25vc3RpY0xv
Z2dpbmdBdmFpbGFibGUoYm9vbCBhdmFpbGFibGUpCiAjZW5kaWYKIAorICAgIFNob3dDb25zb2xl
KCkKKyAgICBTaG93UmVzb3VyY2VzKCkKKwogICAgIERpZFNhdmUoU3RyaW5nIHVybCkKICAgICBE
aWRBcHBlbmQoU3RyaW5nIHVybCkKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXIuY3BwIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNv
bnRyb2xsZXIuY3BwCmluZGV4IDE3M2IyMTg0MmQxYmZkNzJjMWQxNzBjYjI5YWU5OGRhNzhiNWMw
YjMuLjkwOTBiMTZhNzk1OGU0YmM4MTJlMDJkMDJjZDk0NTA5M2NkNWY1MjQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUlFeHRlbnNp
b25Db250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9y
L1dlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlci5jcHAKQEAgLTMyNiw2ICszMjYsMzkg
QEAgdm9pZCBXZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXI6OnJlbG9hZEZvckV4dGVu
c2lvbihjb25zdCBJbnNwZWN0b3I6OkV4dGUKICAgICB9KTsKIH0KIAordm9pZCBXZWJJbnNwZWN0
b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXI6OnNob3dFeHRlbnNpb25UYWIoY29uc3QgSW5zcGVjdG9y
OjpFeHRlbnNpb25UYWJJRCYgZXh0ZW5zaW9uVGFiSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChFeHBlY3RlZDxib29sLCBJbnNwZWN0b3I6OkV4dGVuc2lvbkVycm9yPik+JiYgY29t
cGxldGlvbkhhbmRsZXIpCit7CisgICAgaWYgKCFtX2Zyb250ZW5kQ2xpZW50KSB7CisgICAgICAg
IGNvbXBsZXRpb25IYW5kbGVyKG1ha2VVbmV4cGVjdGVkKEluc3BlY3Rvcjo6RXh0ZW5zaW9uRXJy
b3I6OkludmFsaWRSZXF1ZXN0KSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBWZWN0
b3I8UmVmPEpTT046OlZhbHVlPj4gYXJndW1lbnRzIHsKKyAgICAgICAgSlNPTjo6VmFsdWU6OmNy
ZWF0ZShleHRlbnNpb25UYWJJZGVudGlmaWVyKSwKKyAgICB9OworCisgICAgbV9mcm9udGVuZENs
aWVudC0+ZnJvbnRlbmRBUElEaXNwYXRjaGVyKCkuZGlzcGF0Y2hDb21tYW5kV2l0aFJlc3VsdEFz
eW5jKCJzaG93RXh0ZW5zaW9uVGFiIl9zLCBXVEZNb3ZlKGFyZ3VtZW50cyksIFt3ZWFrVGhpcyA9
IG1ha2VXZWFrUHRyKHRoaXMpLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlv
bkhhbmRsZXIpXShJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXI6OkV2YWx1YXRpb25SZXN1
bHQmJiByZXN1bHQpIG11dGFibGUgeworICAgICAgICBpZiAoIXdlYWtUaGlzKSB7CisgICAgICAg
ICAgICBjb21wbGV0aW9uSGFuZGxlcihtYWtlVW5leHBlY3RlZChJbnNwZWN0b3I6OkV4dGVuc2lv
bkVycm9yOjpDb250ZXh0RGVzdHJveWVkKSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAg
IH0KKworICAgICAgICBhdXRvKiBmcm9udGVuZEdsb2JhbE9iamVjdCA9IHdlYWtUaGlzLT5tX2Zy
b250ZW5kQ2xpZW50LT5mcm9udGVuZEFQSURpc3BhdGNoZXIoKS5mcm9udGVuZEdsb2JhbE9iamVj
dCgpOworICAgICAgICBpZiAoIWZyb250ZW5kR2xvYmFsT2JqZWN0KSB7CisgICAgICAgICAgICBj
b21wbGV0aW9uSGFuZGxlcihtYWtlVW5leHBlY3RlZChJbnNwZWN0b3I6OkV4dGVuc2lvbkVycm9y
OjpDb250ZXh0RGVzdHJveWVkKSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKwor
ICAgICAgICBpZiAoYXV0byBwYXJzZWRFcnJvciA9IHdlYWtUaGlzLT5wYXJzZUV4dGVuc2lvbkVy
cm9yRnJvbUV2YWx1YXRpb25SZXN1bHQocmVzdWx0KSkgeworICAgICAgICAgICAgTE9HKEluc3Bl
Y3RvciwgIkludGVybmFsIGVycm9yIGVuY291bnRlcmVkIHdoaWxlIGV2YWx1YXRpbmcgdXBvbiB0
aGUgZnJvbnRlbmQ6ICVzIiwgSW5zcGVjdG9yOjpleHRlbnNpb25FcnJvclRvU3RyaW5nKCpwYXJz
ZWRFcnJvcikudXRmOCgpLmRhdGEoKSk7CisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlciht
YWtlVW5leHBlY3RlZCgqcGFyc2VkRXJyb3IpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgfQorCisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHRydWUpOworICAgIH0pOworfQorCiB2
b2lkIFdlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlcjo6ZGlkU2hvd0V4dGVuc2lvblRh
Yihjb25zdCBJbnNwZWN0b3I6OkV4dGVuc2lvbklEJiBleHRlbnNpb25JRCwgY29uc3QgSW5zcGVj
dG9yOjpFeHRlbnNpb25UYWJJRCYgZXh0ZW5zaW9uVGFiSUQpCiB7CiAgICAgV2ViUHJvY2Vzczo6
c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2Vi
SW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyUHJveHk6OkRpZFNob3dFeHRlbnNpb25UYWIg
eyBleHRlbnNpb25JRCwgZXh0ZW5zaW9uVGFiSUQgfSwgbV9pbnNwZWN0b3JQYWdlSWRlbnRpZmll
cik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1dlYklu
c3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXIuaAppbmRleCAxOGVh
OGZmYzJhZjgwMjNiYjI5YzdjZGExOTQ0ZmJlNTVkMDYzZmUxLi5jMzYxMmFkZDAwNTlkNzRlYjQ3
YTkxZTVkZTM0NTc0MTI0OGQwZjQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlci5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUlFeHRlbnNpb25D
b250cm9sbGVyLmgKQEAgLTY4LDEyICs2OCwxMSBAQCBwdWJsaWM6CiAgICAgdm9pZCBjcmVhdGVU
YWJGb3JFeHRlbnNpb24oY29uc3QgSW5zcGVjdG9yOjpFeHRlbnNpb25JRCYsIGNvbnN0IFN0cmlu
ZyYgdGFiTmFtZSwgY29uc3QgVVJMJiB0YWJJY29uVVJMLCBjb25zdCBVUkwmIHNvdXJjZVVSTCwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDxJbnNwZWN0b3I6OkV4dGVuc2lvblRhYklE
LCBJbnNwZWN0b3I6OkV4dGVuc2lvbkVycm9yPik+JiYpOwogICAgIHZvaWQgZXZhbHVhdGVTY3Jp
cHRGb3JFeHRlbnNpb24oY29uc3QgSW5zcGVjdG9yOjpFeHRlbnNpb25JRCYsIGNvbnN0IFN0cmlu
ZyYgc2NyaXB0U291cmNlLCBjb25zdCBzdGQ6Om9wdGlvbmFsPFVSTD4mIGZyYW1lVVJMLCBjb25z
dCBzdGQ6Om9wdGlvbmFsPFVSTD4mIGNvbnRleHRTZWN1cml0eU9yaWdpbiwgY29uc3Qgc3RkOjpv
cHRpb25hbDxib29sPiYgdXNlQ29udGVudFNjcmlwdENvbnRleHQsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiwgY29uc3Qgc3RkOjpvcHRpb25hbDxXZWJD
b3JlOjpFeGNlcHRpb25EZXRhaWxzPiYsIGNvbnN0IHN0ZDo6b3B0aW9uYWw8SW5zcGVjdG9yOjpF
eHRlbnNpb25FcnJvcj4mKT4mJik7CiAgICAgdm9pZCByZWxvYWRGb3JFeHRlbnNpb24oY29uc3Qg
SW5zcGVjdG9yOjpFeHRlbnNpb25JRCYsIGNvbnN0IHN0ZDo6b3B0aW9uYWw8Ym9vbD4mIGlnbm9y
ZUNhY2hlLCBjb25zdCBzdGQ6Om9wdGlvbmFsPFN0cmluZz4mIHVzZXJBZ2VudCwgY29uc3Qgc3Rk
OjpvcHRpb25hbDxTdHJpbmc+JiBpbmplY3RlZFNjcmlwdCwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChjb25zdCBzdGQ6Om9wdGlvbmFsPEluc3BlY3Rvcjo6RXh0ZW5zaW9uRXJyb3I+Jik+JiYpOwor
ICAgIHZvaWQgc2hvd0V4dGVuc2lvblRhYihjb25zdCBJbnNwZWN0b3I6OkV4dGVuc2lvblRhYklE
JiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDxib29sLCBJbnNwZWN0b3I6OkV4dGVu
c2lvbkVycm9yPik+JiYpOwogCiAgICAgLy8gQ2FsbGJhY2tzIGZyb20gdGhlIGZyb250ZW5kLgot
I2lmIEVOQUJMRShJTlNQRUNUT1JfRVhURU5TSU9OUykKICAgICB2b2lkIGRpZFNob3dFeHRlbnNp
b25UYWIoY29uc3QgSW5zcGVjdG9yOjpFeHRlbnNpb25JRCYsIGNvbnN0IEluc3BlY3Rvcjo6RXh0
ZW5zaW9uVGFiSUQmKTsKICAgICB2b2lkIGRpZEhpZGVFeHRlbnNpb25UYWIoY29uc3QgSW5zcGVj
dG9yOjpFeHRlbnNpb25JRCYsIGNvbnN0IEluc3BlY3Rvcjo6RXh0ZW5zaW9uVGFiSUQmKTsKLSNl
bmRpZgogCiBwcml2YXRlOgogICAgIEpTQzo6SlNPYmplY3QqIHVud3JhcEV2YWx1YXRpb25SZXN1
bHRBc09iamVjdChXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXI6OkV2YWx1
YXRpb25SZXN1bHQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3Bl
Y3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXIubWVzc2FnZXMuaW4gYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29u
dHJvbGxlci5tZXNzYWdlcy5pbgppbmRleCA5NDgxOWZiMDliMDE2ZDEzZmU5ZmEyMDNiYzA4MzAy
ZjY2NGZjODhlLi42YTAwZWNmZmU1ODMwZmYxNjQ1ZTkwMTdiY2U2ZDc2MWYyNzg3MjFjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJ
RXh0ZW5zaW9uQ29udHJvbGxlci5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlci5tZXNzYWdl
cy5pbgpAQCAtMjksNiArMjksNyBAQCBtZXNzYWdlcyAtPiBXZWJJbnNwZWN0b3JVSUV4dGVuc2lv
bkNvbnRyb2xsZXIgTm90UmVmQ291bnRlZCB7CiAgICAgQ3JlYXRlVGFiRm9yRXh0ZW5zaW9uKFN0
cmluZyBleHRlbnNpb25JRCwgU3RyaW5nIHRhYk5hbWUsIFVSTCB0YWJJY29uVVJMLCBVUkwgc291
cmNlVVJMKSAtPiAoRXhwZWN0ZWQ8U3RyaW5nLCBJbnNwZWN0b3I6OkV4dGVuc2lvbkVycm9yPiBy
ZXN1bHQpIEFzeW5jCiAgICAgRXZhbHVhdGVTY3JpcHRGb3JFeHRlbnNpb24oU3RyaW5nIGV4dGVu
c2lvbklELCBTdHJpbmcgc2NyaXB0U291cmNlLCBzdGQ6Om9wdGlvbmFsPFVSTD4gZnJhbWVVUkws
IHN0ZDo6b3B0aW9uYWw8VVJMPiBjb250ZXh0U2VjdXJpdHlPcmlnaW4sIHN0ZDo6b3B0aW9uYWw8
Ym9vbD4gdXNlQ29udGVudFNjcmlwdENvbnRleHQpIC0+IChJUEM6OkRhdGFSZWZlcmVuY2UgcmVz
dWx0RGF0YSwgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpFeGNlcHRpb25EZXRhaWxzPiBkZXRhaWxz
LCBzdGQ6Om9wdGlvbmFsPEluc3BlY3Rvcjo6RXh0ZW5zaW9uRXJyb3I+IGVycm9yKSBBc3luYwog
ICAgIFJlbG9hZEZvckV4dGVuc2lvbihTdHJpbmcgZXh0ZW5zaW9uSUQsIHN0ZDo6b3B0aW9uYWw8
Ym9vbD4gaWdub3JlQ2FjaGUsIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiB1c2VyQWdlbnQsIHN0ZDo6
b3B0aW9uYWw8U3RyaW5nPiBpbmplY3RlZFNjcmlwdCkgLT4gKHN0ZDo6b3B0aW9uYWw8SW5zcGVj
dG9yOjpFeHRlbnNpb25FcnJvcj4gZXJyb3IpIEFzeW5jCisgICAgU2hvd0V4dGVuc2lvblRhYihT
dHJpbmcgZXh0ZW5zaW9uVGFiSWRlbnRpZmllcikgLT4gKEV4cGVjdGVkPGJvb2wsIEluc3BlY3Rv
cjo6RXh0ZW5zaW9uRXJyb3I+IHJlc3VsdCkgQXN5bmMKIH0KIAogI2VuZGlmIC8vIEVOQUJMRShJ
TlNQRUNUT1JfRVhURU5TSU9OUykKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xz
L0NoYW5nZUxvZwppbmRleCBmNDdlNGJiYTUzZDkzODQ0ZDlmMmEwMzU4N2JkYjE3ZmIyODM2MTQ0
Li44ZDlhYWJmMTNlMWU3OGVhMjQ0MjY2MDE5MzI1NzM2ZTIzZDNlNTIyIDEwMDY0NAotLS0gYS9U
b29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIw
MjEtMDktMjcgIEJKIEJ1cmcgIDxiYnVyZ0BhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBB
ZGQgU1BJIHRvIHNlbGVjdCBhIHRhYiBjcmVhdGVkIGJ5IF9XS0luc3BlY3RvckV4dGVuc2lvbgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMwNTgwCisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS84MzM3Mjg1MT4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDcmVhdGUgYSBuZXcgdGVzdCBmaWxlIGZvciBfV0tJ
bnNwZWN0b3JFeHRlbnNpb25EZWxlZ2F0ZS4gQWRkIGEKKyAgICAgICAgbmV3IHRlc3QgY2FzZSB0
aGF0IGV4ZXJjaXNlcyBjcmVhdGluZyBhbiBleHRlbnNpb24gdGFiLCBzaG93aW5nIGFuCisgICAg
ICAgIGV4dGVuc2lvbiB0YWIsIGFuZCB1c2VzIGRlbGVnYXRlIGNhbGxiYWNrcyBmb3IgZGlkU2hv
d1RhYi9kaWRIaWRlVGFiLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJ
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRDb2NvYS9JbnNwZWN0b3JFeHRlbnNpb24tVGFiSWNvbi0zMHgzMC5wbmc6IEFkZGVk
LgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvSW5zcGVjdG9yRXh0
ZW5zaW9uLWJhc2ljLXRhYi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL1dLSW5zcGVjdG9yRXh0ZW5zaW9uRGVsZWdhdGUubW06IEFkZGVkLgor
ICAgICAgICAocmVzZXRHbG9iYWxTdGF0ZSk6CisgICAgICAgICgtW1VJRGVsZWdhdGVGb3JUZXN0
aW5nSW5zcGVjdG9yRXh0ZW5zaW9uRGVsZWdhdGUgX3dlYlZpZXc6ZGlkQXR0YWNoTG9jYWxJbnNw
ZWN0b3I6XSk6CisgICAgICAgICgtW0luc3BlY3RvckV4dGVuc2lvbkRlbGVnYXRlRm9yVGVzdGlu
ZyBpbnNwZWN0b3JFeHRlbnNpb246ZGlkU2hvd1RhYldpdGhJZGVudGlmaWVyOl0pOgorICAgICAg
ICAoLVtJbnNwZWN0b3JFeHRlbnNpb25EZWxlZ2F0ZUZvclRlc3RpbmcgaW5zcGVjdG9yRXh0ZW5z
aW9uOmRpZEhpZGVUYWJXaXRoSWRlbnRpZmllcjpdKToKKyAgICAgICAgKFRFU1QpOgorCiAyMDIx
LTA5LTI3ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBNYWtl
IHN1cmUgdG8gcmVzZXQgcHJlc2VudGluZyBhcHBsaWNhdGlvbiBwaWQgaW4gY2FzZSBvZiBtZWRp
YXNlcnZlcmQgY3Jhc2gKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktp
dEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZmEyNWU3NzAzZjhjNDAw
NTQyNmYxOTMyMTcxZmRiM2IyNzQyMTIwYS4uYWMxYjFjMWJkZjc3Mjc3YWFkZDAxODkyNTg4NDA3
NjgyMzdmYWFkMSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJ
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTg5Miw2ICs4OTIsOSBAQAog
CQk5OTk5MTA4QjFGMzkzQzk2MDA4QUQ0NTUgLyogQ29weWluZy5tbSBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5OTkxMDhBMUYzOTNDOEIwMDhBRDQ1NSAv
KiBDb3B5aW5nLm1tICovOyB9OwogCQk5OTlCN0VFMzI1NTFDNjNCMDBGNDUwQTQgLyogV0tJbnNw
ZWN0b3JFeHRlbnNpb25Ib3N0Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gOTk5QjdFRTIyNTUxQzYzQjAwRjQ1MEE0IC8qIFdLSW5zcGVjdG9yRXh0ZW5z
aW9uSG9zdC5tbSAqLzsgfTsKIAkJOTlCNEY5QzYyNEVERUQ5NzAwMDIyQjgyIC8qIFdLSW5zcGVj
dG9yRGVsZWdhdGUubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5OUI0RjlDNTI0RURFRDk2MDAwMjJCODIgLyogV0tJbnNwZWN0b3JEZWxlZ2F0ZS5tbSAq
LzsgfTsKKwkJOTlFMjg0NjQyNkY5MUY3RjAwMDNGMUZBIC8qIFdLSW5zcGVjdG9yRXh0ZW5zaW9u
RGVsZWdhdGUubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA5OUUyODQ2MzI2RjkxRjdGMDAwM0YxRkEgLyogV0tJbnNwZWN0b3JFeHRlbnNpb25EZWxlZ2F0
ZS5tbSAqLzsgfTsKKwkJOTlFMjg0NjYyNkY5M0RCNTAwMDNGMUZBIC8qIEluc3BlY3RvckV4dGVu
c2lvbi1UYWJJY29uLTMweDMwLnBuZyBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5OUUyODQ2NTI2RjkzRDc2MDAwM0YxRkEgLyogSW5zcGVjdG9y
RXh0ZW5zaW9uLVRhYkljb24tMzB4MzAucG5nICovOyB9OworCQk5OUUyODQ2ODI2Rjk0MTU0MDAw
M0YxRkEgLyogSW5zcGVjdG9yRXh0ZW5zaW9uLWJhc2ljLXRhYi5odG1sIGluIENvcHkgUmVzb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5RTI4NDY3MjZGOTQxM0Iw
MDAzRjFGQSAvKiBJbnNwZWN0b3JFeHRlbnNpb24tYmFzaWMtdGFiLmh0bWwgKi87IH07CiAJCTlC
MDJFMEQ2MjM1RkE0N0QwMDQwNDRCMiAvKiBUZXh0TWFuaXB1bGF0aW9uLm1tIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUIwMkUwRDUyMzVGQTQ3RDAwNDA0
NEIyIC8qIFRleHRNYW5pcHVsYXRpb24ubW0gKi87IH07CiAJCTlCMDc4NkE1MUM1ODg1QzMwMEQx
NTlFMyAvKiBJbmplY3RlZEJ1bmRsZU1ha2VBbGxTaGFkb3dSb290c09wZW5fQnVuZGxlLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlCMDc4NkE0MUM1
ODg1QzMwMEQxNTlFMyAvKiBJbmplY3RlZEJ1bmRsZU1ha2VBbGxTaGFkb3dSb290c09wZW5fQnVu
ZGxlLmNwcCAqLzsgfTsKIAkJOUIwQzA1MTkyNEZERkI3RDAwRjJGRTMxIC8qIENvbXBhY3RVbmlx
dWVQdHJUdXBsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5QjBDMDUxODI0RkRGQjcwMDBGMkZFMzEgLyogQ29tcGFjdFVuaXF1ZVB0clR1cGxlLmNw
cCAqLzsgfTsKQEAgLTE1NzEsNiArMTU3NCw4IEBACiAJCQkJMkVGRjA2Q0QxRDhBNDI5QTAwMDRC
QjMwIC8qIGlucHV0LWZpZWxkLWluLXNjcm9sbGFibGUtZG9jdW1lbnQuaHRtbCBpbiBDb3B5IFJl
c291cmNlcyAqLywKIAkJCQlDRTM1MjRGQTFCMTQ0Mzg5MDAyOEE3QzUgLyogaW5wdXQtZm9jdXMt
Ymx1ci5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCUNFNkQwRUUzMjQyNkI5MzIwMDJB
RDkwMSAvKiBpbnNlcnQtdGV4dC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAorCQkJCTk5RTI4
NDY4MjZGOTQxNTQwMDAzRjFGQSAvKiBJbnNwZWN0b3JFeHRlbnNpb24tYmFzaWMtdGFiLmh0bWwg
aW4gQ29weSBSZXNvdXJjZXMgKi8sCisJCQkJOTlFMjg0NjYyNkY5M0RCNTAwMDNGMUZBIC8qIElu
c3BlY3RvckV4dGVuc2lvbi1UYWJJY29uLTMweDMwLnBuZyBpbiBDb3B5IFJlc291cmNlcyAqLywK
IAkJCQk1N0Y1NkE1QzFDN0Y4Q0MxMDBGMzFEN0UgLyogSXNOYXZpZ2F0aW9uQWN0aW9uVHJ1c3Rl
ZC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCUM5QjRBRDJDMUVDQTZGN0YwMEY1RkVB
MCAvKiBqcy1hdXRvcGxheS1hdWRpby5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCUM5
OUI2NzVEMUUzOTcyMjAwMEZDNkM4MCAvKiBqcy1wbGF5LXdpdGgtY29udHJvbHMuaHRtbCBpbiBD
b3B5IFJlc291cmNlcyAqLywKQEAgLTI2MTYsNiArMjYyMSw5IEBACiAJCTk5OTkxMDhBMUYzOTND
OEIwMDhBRDQ1NSAvKiBDb3B5aW5nLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3Bw
OyBwYXRoID0gQ29weWluZy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTk5QjdF
RTIyNTUxQzYzQjAwRjQ1MEE0IC8qIFdLSW5zcGVjdG9yRXh0ZW5zaW9uSG9zdC5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdLSW5zcGVjdG9yRXh0ZW5zaW9uSG9z
dC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTlCNEY5QzUyNEVERUQ5NjAwMDIy
QjgyIC8qIFdLSW5zcGVjdG9yRGVsZWdhdGUubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBXS0luc3BlY3RvckRlbGVnYXRlLm1tOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk5OUUyODQ2MzI2RjkxRjdGMDAwM0YxRkEgLyogV0tJbnNwZWN0b3JFeHRlbnNp
b25EZWxlZ2F0ZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdL
SW5zcGVjdG9yRXh0ZW5zaW9uRGVsZWdhdGUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTk5RTI4NDY1MjZGOTNENzYwMDAzRjFGQSAvKiBJbnNwZWN0b3JFeHRlbnNpb24tVGFiSWNv
bi0zMHgzMC5wbmcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBpbWFnZS5wbmc7IHBhdGggPSAiSW5zcGVjdG9yRXh0ZW5zaW9uLVRhYkljb24tMzB4MzAu
cG5nIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTlFMjg0NjcyNkY5NDEzQjAwMDNG
MUZBIC8qIEluc3BlY3RvckV4dGVuc2lvbi1iYXNpYy10YWIuaHRtbCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQu
aHRtbDsgcGF0aCA9ICJJbnNwZWN0b3JFeHRlbnNpb24tYmFzaWMtdGFiLmh0bWwiOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk5QjAyRTBENTIzNUZBNDdEMDA0MDQ0QjIgLyogVGV4dE1h
bmlwdWxhdGlvbi5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFRleHRNYW5pcHVsYXRpb24ubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlCMDc4NkEyMUM1ODgzMEYwMEQxNTlFMyAv
KiBJbmplY3RlZEJ1bmRsZU1ha2VBbGxTaGFkb3dSb290c09wZW4uY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5qZWN0ZWRCdW5kbGVNYWtlQWxsU2hhZG93Um9vdHNP
cGVuLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUIwNzg2QTQxQzU4ODVDMzAw
RDE1OUUzIC8qIEluamVjdGVkQnVuZGxlTWFrZUFsbFNoYWRvd1Jvb3RzT3Blbl9CdW5kbGUuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5qZWN0ZWRCdW5kbGVNYWtl
QWxsU2hhZG93Um9vdHNPcGVuX0J1bmRsZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CkBAIC0zNDcwLDcgKzM0NzgsNiBAQAogCQkJCTZCMjVBNzUxMjVEQzhENEUwMDcwNzQ0RiAvKiBF
dmVudEF0dHJpYnV0aW9uLm1tICovLAogCQkJCUNEQTI5QjI4MjBGRDJBOTkwMEYxNUNFRCAvKiBF
eGl0RnVsbHNjcmVlbk9uRW50ZXJQaVAubW0gKi8sCiAJCQkJMUQxMkJFQkYyNDVCRUY4NTAwNEMw
QjdBIC8qIEV4aXRQaVBPblN1c3BlbmRWaWRlb0VsZW1lbnQubW0gKi8sCi0JCQkJNTE4MTlGMjky
NkVBQzk4MjAwRTQ3Mzc1IC8qIEZUUC5tbSAqLywKIAkJCQkyRDgxMDRDQjFCRUMxM0U3MDAyMERB
NDYgLyogRmluZEluUGFnZS5tbSAqLywKIAkJCQk1MTI0MkNENDIzNzRFNjFFMDBFRUQ5QzEgLyog
RmluZEluUGFnZUFQSS5tbSAqLywKIAkJCQkxMTgxNTM0NzIyMDhCQURGMDBCMkNDRDIgLyogRmly
c3RWaXN1YWxseU5vbkVtcHR5TWlsZXN0b25lLm1tICovLApAQCAtMzQ3OCw2ICszNDg1LDcgQEAK
IAkJCQkyRTkyQjhGODIxNjQ5MEVBMDA1QjY0RjAgLyogRm9udEF0dHJpYnV0ZXMubW0gKi8sCiAJ
CQkJRjRGQTI4MjkyNENEMDEyNzAwNjE4QTQ2IC8qIEZvcm1WYWxpZGF0aW9uLm1tICovLAogCQkJ
CTVDQjVCM0JEMUZGQzUxN0UwMEMyN0JCMCAvKiBGcmFtZUhhbmRsZVNlcmlhbGl6YXRpb24ubW0g
Ki8sCisJCQkJNTE4MTlGMjkyNkVBQzk4MjAwRTQ3Mzc1IC8qIEZUUC5tbSAqLywKIAkJCQlDRENG
NzhBNzI0NEEyRURCMDA0ODAzMTEgLyogRnVsbHNjcmVlbkFsZXJ0Lm1tICovLAogCQkJCUNENzhF
MTFBMURCN0VBMzYwMDE0QTJERSAvKiBGdWxsc2NyZWVuRGVsZWdhdGUubW0gKi8sCiAJCQkJM0Yx
QjUyNjgxRDNENzEyOTAwOEQ2MEM0IC8qIEZ1bGxzY3JlZW5MYXlvdXRDb25zdHJhaW50cy5tbSAq
LywKQEAgLTM2NTUsNiArMzY2Myw3IEBACiAJCQkJMzcwQ0UyMjkxRjU3MzQzNDAwRTc0MTBCIC8q
IFdLQ29udGVudFZpZXdUYXJnZXRGb3JBY3Rpb24ubW0gKi8sCiAJCQkJNTFEMTI0OTcxRTc2M0FG
ODAwMkIyODIwIC8qIFdLSFRUUENvb2tpZVN0b3JlLm1tICovLAogCQkJCTk5QjRGOUM1MjRFREVE
OTYwMDAyMkI4MiAvKiBXS0luc3BlY3RvckRlbGVnYXRlLm1tICovLAorCQkJCTk5RTI4NDYzMjZG
OTFGN0YwMDAzRjFGQSAvKiBXS0luc3BlY3RvckV4dGVuc2lvbkRlbGVnYXRlLm1tICovLAogCQkJ
CTk5OUI3RUUyMjU1MUM2M0IwMEY0NTBBNCAvKiBXS0luc3BlY3RvckV4dGVuc2lvbkhvc3QubW0g
Ki8sCiAJCQkJQTVBNzI5RjAxRjYyMkE5QTAwREU1QTI4IC8qIFdLTmF2aWdhdGlvblJlc3BvbnNl
Lm1tICovLAogCQkJCURGNEIyNzM4MjFBNDc3MjcwMDlCRDFDQSAvKiBXS05TRGljdGlvbmFyeUVt
cHR5RGljdGlvbmFyeUNyYXNoLm1tICovLApAQCAtNDA4Nyw2ICs0MDk2LDggQEAKIAkJCQk5M0Ey
NzRBMTI1MjE2M0Q2MDBBMUI2RDQgLyogSW5kZXhVcGdyYWRlV2l0aE11bHRpcGxlSW5kaWNlcy5z
cWxpdGUzICovLAogCQkJCTkzQTI3NEE0MjUyMjQxRDAwMEExQjZENCAvKiBJbmRleFVwZ3JhZGVX
aXRoTXVsdGlwbGVJbmRpY2VzSGF2ZVNhbWVJRC5zcWxpdGUzICovLAogCQkJCTJFRkYwNkNDMUQ4
QTQyOTEwMDA0QkIzMCAvKiBpbnB1dC1maWVsZC1pbi1zY3JvbGxhYmxlLWRvY3VtZW50Lmh0bWwg
Ki8sCisJCQkJOTlFMjg0NjcyNkY5NDEzQjAwMDNGMUZBIC8qIEluc3BlY3RvckV4dGVuc2lvbi1i
YXNpYy10YWIuaHRtbCAqLywKKwkJCQk5OUUyODQ2NTI2RjkzRDc2MDAwM0YxRkEgLyogSW5zcGVj
dG9yRXh0ZW5zaW9uLVRhYkljb24tMzB4MzAucG5nICovLAogCQkJCTkzN0E2Qzg4MjQzNTdCRjMw
MEMzQTZCMCAvKiBLaWxsV2ViUHJvY2Vzc1dpdGhPcGVuQ29ubmVjdGlvbi0xLmh0bWwgKi8sCiAJ
CQkJOTM3QTZDODkyNDM1N0JGMzAwQzNBNkIwIC8qIEtpbGxXZWJQcm9jZXNzV2l0aE9wZW5Db25u
ZWN0aW9uLTIuaHRtbCAqLywKIAkJCQlGNDUzOEVGMDFFODQ2QjQxMDBCNUM5NTMgLyogbGFyZ2Ut
cmVkLXNxdWFyZS5wbmcgKi8sCkBAIC01NTM3LDYgKzU1NDgsNyBAQAogCQkJCTdDQ0U3RUMwMUE0
MTFBN0UwMDQ0N0M0QyAvKiBGcmFnbWVudE5hdmlnYXRpb24ubW0gaW4gU291cmNlcyAqLywKIAkJ
CQk3Q0NFN0VGNjFBNDExQUU2MDA0NDdDNEMgLyogRnJhbWVNSU1FVHlwZUhUTUwuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJN0NDRTdFRjcxQTQxMUFFNjAwNDQ3QzRDIC8qIEZyYW1lTUlNRVR5cGVQ
TkcuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNTE4MTlGMkEyNkVBQzk4MzAwRTQ3Mzc1IC8qIEZU
UC5tbSBpbiBTb3VyY2VzICovLAogCQkJCUNEQ0Y3OEE4MjQ0QTMyRjcwMDQ4MDMxMSAvKiBGdWxs
c2NyZWVuQWxlcnQubW0gaW4gU291cmNlcyAqLywKIAkJCQlDRDc4RTExRDFEQjdFQTY2MDAxNEEy
REUgLyogRnVsbHNjcmVlbkRlbGVnYXRlLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0RCMjEzQkQy
NEVGNTIyODAwRkRFMzAxIC8qIEZ1bGxzY3JlZW5Gb2N1cy5tbSBpbiBTb3VyY2VzICovLApAQCAt
NTc5NCw3ICs1ODA2LDYgQEAKIAkJCQk3Q0NFN0YxNDFBNDExQUU2MDA0NDdDNEMgLyogU2hvdWxk
S2VlcEN1cnJlbnRCYWNrRm9yd2FyZExpc3RJdGVtSW5MaXN0LmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTM3QkNBNjFDMUI1OTZCQTkwMDIwMTJDQSAvKiBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzSW5O
ZXdXaW5kb3dBY3Rpb25zLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0M4M0UwQzUxRDBBNjU0NjAw
RkVCQ0YzIC8qIFNocmlua1RvRml0Lm1tIGluIFNvdXJjZXMgKi8sCi0JCQkJNTE4MTlGMkEyNkVB
Qzk4MzAwRTQ3Mzc1IC8qIEZUUC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTdDQ0U3RUNEMUE0MTFB
N0UwMDQ0N0M0QyAvKiBTaW1wbGlmeU1hcmt1cC5tbSBpbiBTb3VyY2VzICovLAogCQkJCUMxNDlE
NTUwMjQyRTk4REYwMDNFQkIxMiAvKiBTbGVlcERpc2FibGVyLm1tIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMkRGRjdCNkQxREE0ODdBRjAwODE0NjE0IC8qIFNuYXBzaG90U3RvcmUubW0gaW4gU291cmNl
cyAqLywKQEAgLTU5MzIsNiArNTk0Myw3IEBACiAJCQkJNTFEMTI0OTgxRTc2M0IwMjAwMkIyODIw
IC8qIFdLSFRUUENvb2tpZVN0b3JlLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdGMUQxQTQx
MUFFNjAwNDQ3QzRDIC8qIFdLSW1hZ2VDcmVhdGVDR0ltYWdlQ3Jhc2guY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJOTlCNEY5QzYyNEVERUQ5NzAwMDIyQjgyIC8qIFdLSW5zcGVjdG9yRGVsZWdhdGUu
bW0gaW4gU291cmNlcyAqLywKKwkJCQk5OUUyODQ2NDI2RjkxRjdGMDAwM0YxRkEgLyogV0tJbnNw
ZWN0b3JFeHRlbnNpb25EZWxlZ2F0ZS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTk5OUI3RUUzMjU1
MUM2M0IwMEY0NTBBNCAvKiBXS0luc3BlY3RvckV4dGVuc2lvbkhvc3QubW0gaW4gU291cmNlcyAq
LywKIAkJCQlBNUE3MjlGMTFGNjIyQUE3MDBERTVBMjggLyogV0tOYXZpZ2F0aW9uUmVzcG9uc2Uu
bW0gaW4gU291cmNlcyAqLywKIAkJCQlERjRCMjczOTIxQTQ3NzI4MDA5QkQxQ0EgLyogV0tOU0Rp
Y3Rpb25hcnlFbXB0eURpY3Rpb25hcnlDcmFzaC5tbSBpbiBTb3VyY2VzICovLApAQCAtNjAxNCw2
ICs2MDI2LDcgQEAKIAkJCQk1QzQyNTk0NjIyNjZBNjhBMDAzOUFBN0EgLyogQmFzaWNQcm9wb3Nl
ZENyZWRlbnRpYWxQbHVnSW4ubW0gaW4gU291cmNlcyAqLywKIAkJCQkzNzRCN0E2MTFERjM3MUNG
MDBBQ0NCNkMgLyogQnVuZGxlRWRpdGluZ0RlbGVnYXRlUGx1Z0luLm1tIGluIFNvdXJjZXMgKi8s
CiAJCQkJN0E4OUJCNjgyMzMxNjQzQTAwNDJDQjFFIC8qIEJ1bmRsZUZvcm1EZWxlZ2F0ZVBsdWdJ
bi5tbSBpbiBTb3VyY2VzICovLAorCQkJCTUxNzVDN0EyMjZGODc2MjMwMDAzQUY1QyAvKiBCdW5k
bGVQYWdlQ29uc29sZU1lc3NhZ2UubW0gaW4gU291cmNlcyAqLywKIAkJCQlBMTNFQkJCMDFCODc0
MzZGMDAwOTcxMTAgLyogQnVuZGxlUGFyYW1ldGVyc1BsdWdJbi5tbSBpbiBTb3VyY2VzICovLAog
CQkJCTM3QTcwOUFGMUUzRUE5N0UwMENBNTk2OSAvKiBCdW5kbGVSYW5nZUhhbmRsZVBsdWdJbi5t
bSBpbiBTb3VyY2VzICovLAogCQkJCTVDNzU3MTYxMjIxMjRDNTIwMEI5RTVBQyAvKiBCdW5kbGVS
ZXRhaW5QYWdlUGx1Z0luLm1tIGluIFNvdXJjZXMgKi8sCkBAIC02MDMxLDcgKzYwNDQsNiBAQAog
CQkJCTJEM0NBM0E4MjIxREY0QjQwMDg4RTgwMyAvKiBQYWdlT3ZlcmxheVBsdWdpbi5tbSBpbiBT
b3VyY2VzICovLAogCQkJCUY0NEM3QTAwMjBGOUVFQkYwMDE0NDc4QyAvKiBQYXJzZXJZaWVsZFRv
a2VuUGx1Z0luLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQTEzRUJCQUIxQjg3NDM0NjAwMDk3MTEw
IC8qIFBsYXRmb3JtVXRpbGl0aWVzQ29jb2EubW0gaW4gU291cmNlcyAqLywKLQkJCQk1MTc1QzdB
MjI2Rjg3NjIzMDAwM0FGNUMgLyogQnVuZGxlUGFnZUNvbnNvbGVNZXNzYWdlLm1tIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMUE0RjgxQ0YxQkRGRkQ1MzAwNEU2NzJFIC8qIFJlbW90ZU9iamVjdFJlZ2lz
dHJ5UGx1Z0luLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQTEyRERDMDIxRTgzN0MyNDAwQ0Y2Q0FF
IC8qIFJlbmRlcmVkSW1hZ2VXaXRoT3B0aW9uc1BsdWdJbi5tbSBpbiBTb3VyY2VzICovLAogCQkJ
CTUyNDUxNzg3MjFCOUY1N0IwMDgyQ0IzNCAvKiBSZW5kZXJpbmdQcm9ncmVzc1BsdWdJbi5tbSBp
biBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS9JbnNwZWN0b3JFeHRlbnNpb24tVGFiSWNvbi0zMHgzMC5wbmcgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0luc3BlY3RvckV4dGVuc2lvbi1UYWJJY29uLTMw
eDMwLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi42MjQzZjBmMTI5NmViMTkyZTVlMmM3OWZiODUwOTRhNWQyNWJl
MzU5CkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAzNzgwCnpjbVY7IzRtPElRUCk8aDszS3xMazAw
MGUxTkpMVHEwMDE1VTAwMTVrMV5AczZZb0shQjAwMGgpTmtsPFpjbWRfdQp6WiV8ZHxmeWVSaGJJ
IyMlfDh2MUJEan04LUxrU154TzkrZEdRa017RjM4OTF+dFlzLT50eGMpSjViTEh7KkR7Mi0KenUx
I0dfRDljIXZidUhzTWx1fUFyaGY/YUdieT8kRFlGY1YyPnJpN1R5M3x6KWMpNDZJYVBLe1BqJVJx
YCVyYjg2Cnp6VSVZbTFKOE4+e0M7ekkhNXBGOTh+bzc+I1E/OzshNT16dTM8TWJWOEF7IVRBfEFz
NysmOSNFM353NVNPQU9UbAp6Mz1McUFoYTQqfVJea3NFKWRySD9Gay1OJXRLb2V9Jkg0UUdaKztR
Sj5pTWhLcWM2aDFDKkV2MV84USF7Yk5Id0sKel8tRWpJPkt+cGtKb2VoTGtMbU1BVXVedTl6VjRl
fWVDeXghZUdUdF9YO3dkSDw9cCU0cF8rI3IhZjVffmUjMUAhCnpWS1M3PHc8ZG81R211KnBKPyR1
a2hXOHchQClUQCYhX2YlPGp5T1ltc2lFekxxNGtpVkRQMSlLS3BAZjNmNj50UQp6Q191PlZKcWBi
SGMmX1ZDNG0zUlQqV2RaPlphOC11MDdDN0M+WElTZXxGMVdeKExmd28rZ3hAQzlCRUduVGJfcDIK
enYmNmJHO0sjMmxaIShINT1VXjE8aH1zdmAxZ1VhTFRaUk9HSS1oOz8pM0BNN1V3JXRmSEdDP05m
QjE5ZkFiV0RfCno+ITAyT0RRekZeJFokY19LNUxifTR9eUlGQD5ILX5LaThGXm9ZKEpaZEhUZ21g
bl9kYG9AbSF8dG1Me3M9aiE3QAp6ZzxTXlhrZ05IJTkkMkB7YSZGcmZWOEZJP0lpZCNzYXdPMTw5
aGkxcGh7PCQmcCFtQmxTU3l5YUNwVFVtYE8zU0gKenZvVypmKTR6ZV8tSjZiTmQ9MjduI3ZPWTZ4
MCtZdVN+bVJ9SHN2T15YTTdiaFRRZUdxS01GNjh6VEVWY1UlKTRlCnpVUmJEN1ZDfUdUQDQ5JXY5
IUxrS0JXamtMXm4xNWBWTklyPDxGJWZ8ZE9nPWxQRDVNfFN5KHR0YElVUGhzeis2bAp6VXhEN2cy
PChAOztufnhSUmE4O30mKSlMJVclb2tXdVU8OzRgOExHd2RfO1FVMX1wflgzNzEyI21KdS11cD1R
RUwKejdmPylXTD9OJnFjWjNyTnMmVUdHVV5vPEA4fFljPzM3NWYhMHIkbm57dTJzWDNmRno8YHsz
eiZEbFlwcFBgU2BjCnozQ1Bgbjl6OTMkRHtgeHp0OCEyRE8rRHZJPyUlZz93U2ltXzRyazg2SF90
OHxtcztTTnB+WkhpPW5FeTs9TF8+Owp6JVpId3Y9V0FoTXl7TS1iNzh8dTwrYVIxSllIZT9URnAx
JmxQTE9raS1RNVBsRk90e28pdk9ncz50NTl+MyR1SE4Kej1GZGY0YmlIT3hjLW1HNXUlc3c/QW5G
JTMoaHJgVHZeQ0d5entlQXxHYEA1bXNQeWxyMWYtUylsYiRQY1BQKHE9CnpUKi1aM2p8VWYpK1Ry
VWokcUJqSmc5OHlNeWp7cyszamsjSkoheEJaTGhfZTReP0o2JExPa1BLZ1V9SFElQDt1JAp6NXRw
S19nS3x3Y14mKk8wQiokaWZvRkZ7d3VJVyp2akNKY2xzeTdyS3NkP1IpWDBrTER5SChSRURlbCli
Rlg3WUEKenA+UjNZZD5JKGA9UTBrRG1uUXNaXkpWWmZyZC0+NDE7QyNTNVJub1hnR3chUmdjb3dS
dWs/Nk87WCh1MTRVUVU5CnotZGtxQHlRel9CUzk7OGxgd0RGSllfOGVYNG9sN1dyNz0pPFEqUVly
JFhReV4tNE5qc09LVUVuWWpzYjlrfWgwcAp6dDNsM3wrLXB5T2xxY05vVUp6eDVsM1RwSndoZT8h
KCRedVpRbXd2RUVKLUt5YkhwV2FFfiorUjU0S3I4MV41XjAKel5te2tncjJweUBvdj9QJFI9P0hA
KmFKSShYLUNhK0hSIW9sZEtrU3tESiZBPDs3cEFCVzRrfmVIPUQ4PTAzcmBTCno/I01GLUA/OClm
N0Ntd1dzM1Q7VmVnYUNTSUF1USRyZVpQYjNUc1leaVJkWWEqZCVVNjdsQmZ1U3BqbDdsaE9HZwp6
UztiX0cyU21JZmxUd3ZGRkskVigrQiF9N3hWfSRKJE9ITzBWcFA3WnBEUnZAbyVVOEJEXiNvQkR+
Z3Q4cSF2aUcKelpkdzJRTVN6ZWI0ZHwoOUg/P0lvOUduNW1NIWtwOFluOChLN0g2SUgjTEtTJFNv
Vk4oejA8blIzWGRzfHEkRUVFCnpAJkhjREl4eTlWWVAlbUl3SjQ2dW5ueSZodmxVRjYjMk0hak04
dDUkPT50VSllYV9QJDR+dCZNRXw1O3M8SW9GXwp6VmMwN1k5Nkw0cHElK1BRO0VZdTRebnk0ZVBk
RWVtYkdnQGZSND1Ud0o5Y1lVT0hJfkp6JE5YbyRnclhGQlU0WVYKejBqSmZ1ZSMwZEl1eDVhQnpo
PWtGZX4hYFgrLWgmUTNGSWJ3KXBMRlRgKT5IaWlBVkNEOTBxWCNwRVYxVjJ2UXdLCnp6KjB5fVF+
Xzk+OUNHYWliMExsUEJWZypNKFJLX1grUW5nODg3TEpUdmBtM2lBbkw3JEs7KCkjJVhaQ0hWT1RI
dgp6Xm16YDdNMTdxJkVPcHNSZmt5ZWQ/V25GfHZjMyUqR017bX1mZmBGZWJRK01WJFdpTTdwU2Et
TTEmYCE/cStfIWcKejAzMWBHb1lHOXJwMlg8WXlqbyFzTkorTGdsQ0ZZVVdZMn5UZClEbEpkPWtX
WUhFMiUqeHRBMVk3KS1eS010TEF8CnptSXxqPUdldU43WUJZemJ3N3Y+VEd2JCMtTEZ5N15rKEhZ
RDZxXjlpTjBEZz1zNUdQKSpTK35OViliPkRpdnJVSAp6cGkpVilfJmApZkNPTDxJaXBXYDRFbF9H
SWlnXmBDayRZbDFwZX43aSpIJjBseWBre1EwekVhamoofjdPKVg2N1MKejNNO0Q+WlVEbExCUWIr
T29UQ1hHTDM4XjBid0g0U1Y7clBqVngyKmRpJTR9MlhmX0l1eSZSTWlxKzdje2VwYDRmCnpMIWd3
QTh0RGJPbTZWN3BBYmNkcjM4MD4ybGRLbT9HYkFhelBvNGwka2R5JStScWludGdZZHwyK3c0SFAo
Jm9JNQp6e2AtO1dEKWk/P1lsO0U0KVZieWE7OFI7LXU3U0Q5ayt5TFRoeSZMX0FQaUNZZEpoMG16
ZS1eTSlvQnxyYmQtYUQKejUkNnQmKXtCSXctOVFxT15SbHRpUURiUTkwfkR9SzhBY2A+bmhxUCFs
ezglPmNfUj1IUVpuRVFtUCZlSU5vYFJ8CnowVSorNldITWhmdj44ZWN5SjF3OFZSVk0hbmhQS2px
eSlERlRvYTlKeTdrbCQoYG8zRTl7NylrKzVxOGZUVk9mfAp6KUZwPXg9NndzOTVoV2wzIzcxPk5J
RkJodUR1bnRPdjNXSDJ0NSs8d255KWYhPyQpZVJoZlBpaF9Bc0ohTFRITG4KemBNNzJ4U0xHJG1a
UiQ7RkNvSHl2VVg/Q0ZYZTUqPGtBa2AqRyN3RU9qMEFoa0ozJD18KW0hcF87WlVgJDd9UDdGCnp7
Zj1zMkJ5PVdmN2NkbnJrS1BCd05odllxdXJOTTlabUkhUWZvUH1SMDsxNCswSF9DNkUzOEx+d0tB
M3I7YVNATwp6Xy0qSVotYXJ3RVpzTUckQWtASTl5I2toYz45V1NhcU1NVkpJdFd9PithZjFuKFp8
ViVHRmFNMXlXLVJBUGBsKCMKek8ob25hNHIqPiklSGNHK1d4OWNWT0EwLShiWDtFdkwxYCZoXygw
dlo9dTxxSlpHcjElSCpqKD4qNDZAYUUlaUQyCnpmdzUzfilOeD49MilORn0/e0B6LWIjVmcxbE1w
b3NwLW9ePHtCPUE9dWtkUHhfclAqbDxqfWlUUHsoWF9hTlUyUwp6WD9qMTEzIzhkY0FAbDwjPzBh
RzEzQHcmRDtQPG1YUW4heFJPKFFVMCF8TV9HbiUmXz4kcU4zc1U+T35uNFNAO3UKejA0eGp5Y0Il
KDs3akVBKC1ydTBsYHpRUXkpV08yd2U3RWByMVNhUWVjXiNIfHtQaUxvTFk7b1UoeWhPJWcpXjJl
CnpVP096Wm1IPyFRMy0lRzFJRENDI2Btfi1KOVB6TVIwaGE2VUkjK3RGUWFHRmtiRlpvT0tsbVB+
dno4TEA3Uis3PQp6Sl97ZV8rXm42YzFHTmFKd0dzbTcpSytzZyVyJmMocmdIR3NzMEIpJHJhaWJy
bV41UCt7cDQkd18oIz80RnhUYyEKelE7UmY1ZVdSNDwmYyo2Xyt2Wk57XldIOVIkLVE7QXlsKE99
QyVrcjViQUMpZThUQDUpRW91Yj5lMVk/N0QrRyh3CnpFSUFlYXRNb1RYY2JaYEtpbm1+U1R1JStR
JDYpUnlWMU1AeUY/IXshX0oqJitUTFoxTHpjPnp8UXEkSDs0Rz9aTQp6ZS1gPiVmMTNXd1ZHemFZ
elFfdCN7dTQkY041UGpELWw1Rkd0Z15WREQ9LXRnRnJ7d1A/Myo3QDwxezx3eSFTa0oKenctVXxp
RTM8THhKIWdgMlhLdXw1cHFuPCtxM1dLVD5DP1NpR196amFzTSRWaVFkNDByIUkhNiYhQH5DRUVz
VmxxCnpyfVJHODtOOUNscDg4b21nIVZ3aERhe2Z2OWxkbm10cyFYYSlfV01lUncrIWNMMStyUm94
JHlJSmBkXnpRemJGSwp6RTQhMjc5Zk9+b3hAPipsMlUyOHNLcHV5e3ZCbVRCIVFFIzZIOGwmU3g2
VVEwQ1lXO0g0WGJ7KmI4Tk8mb3p+bm4Kej9Gfj1DUkxOQVFZUz8kcnJhUWF6YFFJaHBYO28pNmhv
Oz1CVS1RS0RSQEoxeHh3fVg4YkE1cThBTntiPEJTbiUyCno3cHxVcj9tYUp6K2kkeVduSU89ckNu
YVgpRFZVI1pjeTZWfntrPWZwZTt3ZytjPUhwN2hSPmFiIV9XUF9yX0J1PAp6VzJ9bjcreTZIRXYt
UkwhRTd2KmBBLSh6VzstcTkpWjFLMHkyY2ZGQDc8RFRJSV81SnUySWReVXdodjZAXlVWeHsKemE/
NzhrVUl5QGMwaUBpZTVxJjtsYUgpZjxVXipUYyMwJSF1Syg+QzRlTihXN0EmQEdSe1p6ciYtaypQ
ZCVuRX5fCno4eXAhcjM2YjljSDMpSm0xZTRtX2U7MDsmXzNRdmZqfiN7X2RxQ2xwMSkrRXRudFNn
WFVydlhvPH14T3EmWktNawp6TXtATnVMKjBEdSlXODV0SCRQTUVaR3VtQkp2KStkOF5SWUN5Si1P
YmFpM1FgMzRzIUNCN29IRy1HPilNO2Fudm4KejBRMUVGTl4rPFNGSVlPbVZgUEE+QkhZYk1rbUlD
UkBqJlE2V0NwazNUejNEREZFX3oycEUrTVV2PTF5IXgrczk8CnpiTztATEZaMD9DJn5pUz5IZWhl
KTZ2bnZ1ZHclZ3llYjlCS1dBRUpeRm1+bUd2b0hNczx8cCtGPTw+JnQyan1EWgp6Wnd3ODxIPWIq
SnElI2dhX35LflclXldadj1hNHVCQH02KnFyfiVhKU4rdU9UZVpkc1duKkVfJHk1VkJndGp+KVkK
enhtSTUlJEN6OTdlSUhEV01APCZQeDg4WkB5V2Mrd1hYVyM4YGFLSyViZGQtQ2kkPjg4NzVMelhG
YTJ4KEhaWEQ7Cnp4Z1lxd181bVpvSyMhNz5SKGRSfDVHdGsqS1hUJH1jJX1COE43WlFmUk5wJks+
TCtFbD10Zk8jRUMyUyNSclQ1Nwp6OWtYWURwe2daYSl3X1FBcHtqb1ZZSGheX0xSRUszVStCQEBA
cD8mQEtBJkhnUyNXTlBzeV5Ld0hLcCVNWCNAUzcKeiUqJSRrUmlOS2ZrT3FmMG9ZPyZBS0dALUw2
I3teMFUmO0Febyk3KCopQCYlMyF3Y2hZYGcyUG1fX3BJO3tgUXw/Cnplb0FpMkpPT2hYMFd8aitg
Vl87Mzd5dyFwMGY8WmowTCE/Yz9HVDJ1aFNuK3cpZWh+NyphZzFoXmBIRyZze1MkZgp6WSVsa0py
dTc+I2A9RylZS201VFQ7JDRPakc0U05CenAtendoc1ZwbF9PMUYmdSklcGBeV2FheGRBc3FefE5i
WDEKeldqRD8oZX0pIyZIM2RQUmNlYUFRRV9OMzVlVUIhOWFnSzRXcTJ6d1o1QWhGUV95SHI9Szsj
PXJWTUM/TUZ5Zi0yCnVEZ1M8cmQxSVppQEJWWWg8PkFLYWY2eyp9PDlgNUpRenM3YiMzcm8oMDAw
MDxNTlVNbkxTVGFTX0JzT3EKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvSW5zcGVjdG9yRXh0ZW5zaW9uLWJh
c2ljLXRhYi5odG1sIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9JbnNw
ZWN0b3JFeHRlbnNpb24tYmFzaWMtdGFiLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmU4OGFkMGU5ZGZkNGJi
Nzg0NjgyMTI4MTA1MTQxNmFiNzBmMGEzNQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvSW5zcGVjdG9yRXh0ZW5zaW9uLWJhc2ljLXRhYi5o
dG1sCkBAIC0wLDAgKzEsNiBAQAorPGh0bWw+Cis8Ym9keT4KKzxoMT5UaGlzIGlzIGEgdGVzdCBl
eHRlbnNpb24uPC9oMT4KKzxwPkluIGEgbm9ybWFsIGV4dGVuc2lvbiwgdGhpcyBhcmVhIHdvdWxk
IHNob3cgdGhlIGV4dGVuc2lvbidzIHVzZXIgaW50ZXJmYWNlLjwvcD4KKzwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tJ
bnNwZWN0b3JFeHRlbnNpb25EZWxlZ2F0ZS5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvV0tJbnNwZWN0b3JFeHRlbnNpb25EZWxlZ2F0ZS5tbQpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5m
OTQ2NGJiNmRjYWYxNzc5Njg2MjY1MDU5YjUzZjcwMzdlOThjNzY1Ci0tLSAvZGV2L251bGwKKysr
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS0luc3BlY3RvckV4dGVu
c2lvbkRlbGVnYXRlLm1tCkBAIC0wLDAgKzEsMTU5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAi
Y29uZmlnLmgiCisKKyNpbXBvcnQgIlRlc3QuaCIKKyNpbXBvcnQgIlV0aWxpdGllcy5oIgorI2lt
cG9ydCA8V2ViS2l0L1dLUHJlZmVyZW5jZXNQcml2YXRlLmg+CisjaW1wb3J0IDxXZWJLaXQvV0tX
ZWJWaWV3UHJpdmF0ZS5oPgorI2ltcG9ydCA8V2ViS2l0L19XS0luc3BlY3Rvci5oPgorI2ltcG9y
dCA8V2ViS2l0L19XS0luc3BlY3RvckV4dGVuc2lvbi5oPgorI2ltcG9ydCA8V2ViS2l0L19XS0lu
c3BlY3RvckV4dGVuc2lvbkRlbGVnYXRlLmg+CisjaW1wb3J0IDxXZWJLaXQvX1dLSW5zcGVjdG9y
UHJpdmF0ZUZvclRlc3RpbmcuaD4KKyNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KKworI2lmIEVO
QUJMRShJTlNQRUNUT1JfRVhURU5TSU9OUykKKworc3RhdGljIGJvb2wgZGlkQXR0YWNoTG9jYWxJ
bnNwZWN0b3JDYWxsZWQgPSBmYWxzZTsKK3N0YXRpYyBib29sIGRpZFNob3dFeHRlbnNpb25UYWJX
YXNDYWxsZWQgPSBmYWxzZTsKK3N0YXRpYyBib29sIGRpZEhpZGVFeHRlbnNpb25UYWJXYXNDYWxs
ZWQgPSBmYWxzZTsKK3N0YXRpYyBib29sIHBlbmRpbmdDYWxsYmFja1dhc0NhbGxlZCA9IGZhbHNl
Oworc3RhdGljIFJldGFpblB0cjxfV0tJbnNwZWN0b3JFeHRlbnNpb24+IHNoYXJlZEluc3BlY3Rv
ckV4dGVuc2lvbjsKK3N0YXRpYyBSZXRhaW5QdHI8TlNTdHJpbmc+IHNoYXJlZEV4dGVuc2lvblRh
YklkZW50aWZpZXI7CisKK3N0YXRpYyB2b2lkIHJlc2V0R2xvYmFsU3RhdGUoKQoreworICAgIGRp
ZEF0dGFjaExvY2FsSW5zcGVjdG9yQ2FsbGVkID0gZmFsc2U7CisgICAgZGlkU2hvd0V4dGVuc2lv
blRhYldhc0NhbGxlZCA9IGZhbHNlOworICAgIGRpZEhpZGVFeHRlbnNpb25UYWJXYXNDYWxsZWQg
PSBmYWxzZTsKKyAgICBwZW5kaW5nQ2FsbGJhY2tXYXNDYWxsZWQgPSBmYWxzZTsKK30KKworQGlu
dGVyZmFjZSBVSURlbGVnYXRlRm9yVGVzdGluZ0luc3BlY3RvckV4dGVuc2lvbkRlbGVnYXRlIDog
TlNPYmplY3QgPFdLVUlEZWxlZ2F0ZT4KK0BlbmQKKworQGltcGxlbWVudGF0aW9uIFVJRGVsZWdh
dGVGb3JUZXN0aW5nSW5zcGVjdG9yRXh0ZW5zaW9uRGVsZWdhdGUKKworLSAodm9pZClfd2ViVmll
dzooV0tXZWJWaWV3ICopd2ViVmlldyBkaWRBdHRhY2hMb2NhbEluc3BlY3RvcjooX1dLSW5zcGVj
dG9yICopaW5zcGVjdG9yCit7CisgICAgRVhQRUNUX0VRKHdlYlZpZXcuX2luc3BlY3RvciwgaW5z
cGVjdG9yKTsKKyAgICBkaWRBdHRhY2hMb2NhbEluc3BlY3RvckNhbGxlZCA9IHRydWU7Cit9CisK
K0BlbmQKKworCitAaW50ZXJmYWNlIEluc3BlY3RvckV4dGVuc2lvbkRlbGVnYXRlRm9yVGVzdGlu
ZyA6IE5TT2JqZWN0IDxfV0tJbnNwZWN0b3JFeHRlbnNpb25EZWxlZ2F0ZT4KK0BlbmQKKworQGlt
cGxlbWVudGF0aW9uIEluc3BlY3RvckV4dGVuc2lvbkRlbGVnYXRlRm9yVGVzdGluZyB7Cit9CisK
Ky0gKHZvaWQpaW5zcGVjdG9yRXh0ZW5zaW9uOihfV0tJbnNwZWN0b3JFeHRlbnNpb24gKilleHRl
bnNpb24gZGlkU2hvd1RhYldpdGhJZGVudGlmaWVyOihOU1N0cmluZyAqKXRhYklkZW50aWZpZXIK
K3sKKyAgICBkaWRTaG93RXh0ZW5zaW9uVGFiV2FzQ2FsbGVkID0gdHJ1ZTsKK30KKworLSAodm9p
ZClpbnNwZWN0b3JFeHRlbnNpb246KF9XS0luc3BlY3RvckV4dGVuc2lvbiAqKWV4dGVuc2lvbiBk
aWRIaWRlVGFiV2l0aElkZW50aWZpZXI6KE5TU3RyaW5nICopdGFiSWRlbnRpZmllcgoreworICAg
IGRpZEhpZGVFeHRlbnNpb25UYWJXYXNDYWxsZWQgPSB0cnVlOworfQorCitAZW5kCisKK1RFU1Qo
V0tJbnNwZWN0b3JFeHRlbnNpb25EZWxlZ2F0ZSwgU2hvd0FuZEhpZGVUYWJDYWxsYmFja3MpCit7
CisgICAgcmVzZXRHbG9iYWxTdGF0ZSgpOworCisgICAgYXV0byB3ZWJWaWV3Q29uZmlndXJhdGlv
biA9IGFkb3B0TlMoW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gbmV3XSk7CisgICAgd2ViVmlld0Nv
bmZpZ3VyYXRpb24uZ2V0KCkucHJlZmVyZW5jZXMuX2RldmVsb3BlckV4dHJhc0VuYWJsZWQgPSBZ
RVM7CisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1dLV2ViVmlldyBhbGxvY10gaW5pdFdp
dGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDgwMCwgNjAwKSBjb25maWd1cmF0aW9uOndlYlZpZXdD
b25maWd1cmF0aW9uLmdldCgpXSk7CisgICAgYXV0byB1aURlbGVnYXRlID0gYWRvcHROUyhbVUlE
ZWxlZ2F0ZUZvclRlc3RpbmdJbnNwZWN0b3JFeHRlbnNpb25EZWxlZ2F0ZSBuZXddKTsKKworICAg
IFt3ZWJWaWV3IHNldFVJRGVsZWdhdGU6dWlEZWxlZ2F0ZS5nZXQoKV07CisgICAgW3dlYlZpZXcg
bG9hZEhUTUxTdHJpbmc6QCI8aGVhZD48dGl0bGU+VGVzdCBwYWdlIHRvIGJlIGluc3BlY3RlZDwv
dGl0bGU+PC9oZWFkPjxib2R5PjxwPkZpbGxlciBjb250ZW50PC9wPjwvYm9keT4iIGJhc2VVUkw6
W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJodHRwOi8vZXhhbXBsZS5jb20vIl1dOworCisgICAgW1t3
ZWJWaWV3IF9pbnNwZWN0b3JdIHNob3ddOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigm
ZGlkQXR0YWNoTG9jYWxJbnNwZWN0b3JDYWxsZWQpOworCisgICAgYXV0byBleHRlbnNpb25JRCA9
IFtOU1VVSUQgVVVJRF0uVVVJRFN0cmluZzsKKyAgICBhdXRvIGV4dGVuc2lvbkRpc3BsYXlOYW1l
ID0gQCJGaXJzdEV4dGVuc2lvbiI7CisKKyAgICAvLyBSZWdpc3RlciB0aGUgdGVzdCBleHRlbnNp
b24uCisgICAgcGVuZGluZ0NhbGxiYWNrV2FzQ2FsbGVkID0gZmFsc2U7CisgICAgW1t3ZWJWaWV3
IF9pbnNwZWN0b3JdIHJlZ2lzdGVyRXh0ZW5zaW9uV2l0aElEOmV4dGVuc2lvbklEIGRpc3BsYXlO
YW1lOmV4dGVuc2lvbkRpc3BsYXlOYW1lIGNvbXBsZXRpb25IYW5kbGVyOl4oTlNFcnJvciAqIF9O
dWxsYWJsZSBlcnJvciwgX1dLSW5zcGVjdG9yRXh0ZW5zaW9uICogX051bGxhYmxlIGV4dGVuc2lv
bikgeworICAgICAgICBFWFBFQ1RfTlVMTChlcnJvcik7CisgICAgICAgIEVYUEVDVF9OT1RfTlVM
TChleHRlbnNpb24pOworICAgICAgICBzaGFyZWRJbnNwZWN0b3JFeHRlbnNpb24gPSBleHRlbnNp
b247CisKKyAgICAgICAgcGVuZGluZ0NhbGxiYWNrV2FzQ2FsbGVkID0gdHJ1ZTsKKyAgICB9XTsK
KyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnBlbmRpbmdDYWxsYmFja1dhc0NhbGxlZCk7
CisKKyAgICBhdXRvIGV4dGVuc2lvbkRlbGVnYXRlID0gYWRvcHROUyhbSW5zcGVjdG9yRXh0ZW5z
aW9uRGVsZWdhdGVGb3JUZXN0aW5nIG5ld10pOworICAgIFtzaGFyZWRJbnNwZWN0b3JFeHRlbnNp
b24gc2V0RGVsZWdhdGU6ZXh0ZW5zaW9uRGVsZWdhdGUuZ2V0KCldOworCisgICAgLy8gQ3JlYXRl
IGFuIGV4dGVuc2lvbiB0YWIuCisgICAgYXV0byBpY29uVVJMID0gW1tOU0J1bmRsZSBtYWluQnVu
ZGxlXSBVUkxGb3JSZXNvdXJjZTpAIkluc3BlY3RvckV4dGVuc2lvbi1UYWJJY29uLTMweDMwIiB3
aXRoRXh0ZW5zaW9uOkAicG5nIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNl
cyJdOworICAgIGF1dG8gc291cmNlVVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JS
ZXNvdXJjZTpAIkluc3BlY3RvckV4dGVuc2lvbi1iYXNpYy10YWIiIHdpdGhFeHRlbnNpb246QCJo
dG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdOworCisgICAgcGVu
ZGluZ0NhbGxiYWNrV2FzQ2FsbGVkID0gZmFsc2U7CisgICAgW3NoYXJlZEluc3BlY3RvckV4dGVu
c2lvbiBjcmVhdGVUYWJXaXRoTmFtZTpAIkZpcnN0RXh0ZW5zaW9uLVRhYiIgdGFiSWNvblVSTDpp
Y29uVVJMIHNvdXJjZVVSTDpzb3VyY2VVUkwgY29tcGxldGlvbkhhbmRsZXI6XihOU0Vycm9yICog
X051bGxhYmxlIGVycm9yLCBOU1N0cmluZyAqIF9OdWxsYWJsZSBleHRlbnNpb25UYWJJZGVudGlm
aWVyKSB7CisgICAgICAgIEVYUEVDVF9OVUxMKGVycm9yKTsKKyAgICAgICAgRVhQRUNUX05PVF9O
VUxMKGV4dGVuc2lvblRhYklkZW50aWZpZXIpOworICAgICAgICBzaGFyZWRFeHRlbnNpb25UYWJJ
ZGVudGlmaWVyID0gZXh0ZW5zaW9uVGFiSWRlbnRpZmllcjsKKworICAgICAgICBwZW5kaW5nQ2Fs
bGJhY2tXYXNDYWxsZWQgPSB0cnVlOworICAgIH1dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6
OnJ1bigmcGVuZGluZ0NhbGxiYWNrV2FzQ2FsbGVkKTsKKworICAgIC8vIEZvcmNlIGEga25vd24g
bm9uLWV4dGVuc2lvbiB0YWIgdG8gYmUgc2hvd24gYmVmb3JlIHNob3dpbmcgdGhlIGV4dGVuc2lv
biB0YWIuIE90aGVyd2lzZSwKKyAgICAvLyBpZiB0aGUgZXh0ZW5zaW9uIHRhYiB3YXMgYWxyZWFk
eSBvcGVuLCB0aGVuIHRoaXMgdGVzdCB3b3VsZCBoYW5nIHdhaXRpbmcgZm9yIGEgZGlkU2hvdyBj
YWxsYmFjay4KKyAgICBbW3dlYlZpZXcgX2luc3BlY3Rvcl0gc2hvd0NvbnNvbGVdOworCisgICAg
cGVuZGluZ0NhbGxiYWNrV2FzQ2FsbGVkID0gZmFsc2U7CisgICAgW1t3ZWJWaWV3IF9pbnNwZWN0
b3JdIHNob3dFeHRlbnNpb25UYWJXaXRoSWRlbnRpZmllcjpzaGFyZWRFeHRlbnNpb25UYWJJZGVu
dGlmaWVyLmdldCgpIGNvbXBsZXRpb25IYW5kbGVyOl4oTlNFcnJvciAqIF9OdWxsYWJsZSBlcnJv
cikgeworICAgICAgICBFWFBFQ1RfTlVMTChlcnJvcik7CisKKyAgICAgICAgcGVuZGluZ0NhbGxi
YWNrV2FzQ2FsbGVkID0gdHJ1ZTsKKyAgICB9XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpy
dW4oJnBlbmRpbmdDYWxsYmFja1dhc0NhbGxlZCk7CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6
cnVuKCZkaWRTaG93RXh0ZW5zaW9uVGFiV2FzQ2FsbGVkKTsKKworICAgIFtbd2ViVmlldyBfaW5z
cGVjdG9yXSBzaG93Q29uc29sZV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkaWRI
aWRlRXh0ZW5zaW9uVGFiV2FzQ2FsbGVkKTsKKworICAgIC8vIFVucmVnaXN0ZXIgdGhlIHRlc3Qg
ZXh0ZW5zaW9uLgorICAgIHBlbmRpbmdDYWxsYmFja1dhc0NhbGxlZCA9IGZhbHNlOworICAgIFtb
d2ViVmlldyBfaW5zcGVjdG9yXSB1bnJlZ2lzdGVyRXh0ZW5zaW9uOnNoYXJlZEluc3BlY3RvckV4
dGVuc2lvbi5nZXQoKSBjb21wbGV0aW9uSGFuZGxlcjpeKE5TRXJyb3IgKiBfTnVsbGFibGUgZXJy
b3IpIHsKKyAgICAgICAgRVhQRUNUX05VTEwoZXJyb3IpOworCisgICAgICAgIHBlbmRpbmdDYWxs
YmFja1dhc0NhbGxlZCA9IHRydWU7CisgICAgfV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6
cnVuKCZwZW5kaW5nQ2FsbGJhY2tXYXNDYWxsZWQpOworfQorCisjZW5kaWYgLy8gRU5BQkxFKElO
U1BFQ1RPUl9FWFRFTlNJT05TKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>439364</attachid>
            <date>2021-09-27 09:45:31 -0700</date>
            <delta_ts>2021-09-28 12:17:13 -0700</delta_ts>
            <desc>Patch v1.3 (rebase)</desc>
            <filename>bug-230580-20210927094531.patch</filename>
            <type>text/plain</type>
            <size>42028</size>
            <attacher name="Blaze Burg">bburg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzMTIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwppbmRleCBm
OGVhOTA0Mzc1MDAwYWFiNjEwZTM0NDhmY2VmMDI2MDMwMWFhYjAwLi4zYWU2NGE5ZGE5MTIzZDY3
N2RmZWQ2MjcyNTk0ZDFlN2FmMjliZjc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMiBAQAorMjAyMS0wOS0yNyAgQkogQnVyZyAgPGJidXJnQGFwcGxlLmNvbT4KKworICAg
ICAgICBbQ29jb2FdIEFkZCBTUEkgdG8gc2VsZWN0IGEgdGFiIGNyZWF0ZWQgYnkgX1dLSW5zcGVj
dG9yRXh0ZW5zaW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMzA1ODAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgzMzcyODUxPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhIG1ldGhvZCB0byBs
b29rIHVwIGEgV2ViSW5zcGVjdG9yRXh0ZW5zaW9uVGFiQ29udGVudFZpZXcKKyAgICAgICAgYnkg
aXRzIGV4dGVuc2lvblRhYklEIGFuZCB0aGVuIHNob3cgaXQgd2l0aCBXSS50YWJCcm93c2VyLgor
CisgICAgICAgICogVXNlckludGVyZmFjZS9Db250cm9sbGVycy9XZWJJbnNwZWN0b3JFeHRlbnNp
b25Db250cm9sbGVyLmpzOgorICAgICAgICAoV0kuV2ViSW5zcGVjdG9yRXh0ZW5zaW9uQ29udHJv
bGxlci5wcm90b3R5cGUucmVsb2FkRm9yRXh0ZW5zaW9uKToKKyAgICAgICAgUmVtb3ZlIGV4dHJh
IG5ld2xpbmVzLgorICAgICAgICAoV0kuV2ViSW5zcGVjdG9yRXh0ZW5zaW9uQ29udHJvbGxlci5w
cm90b3R5cGUuc2hvd0V4dGVuc2lvblRhYik6IEFkZGVkLgorCisgICAgICAgICogVXNlckludGVy
ZmFjZS9Qcm90b2NvbC9JbnNwZWN0b3JGcm9udGVuZEFQSS5qczoKKyAgICAgICAgKEluc3BlY3Rv
ckZyb250ZW5kQVBJLnNob3dFeHRlbnNpb25UYWIpOiBBZGRlZC4KKwogMjAyMS0wOS0yMyAgTXls
ZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNw
ZWN0b3Igc3VwcG9ydCBmb3IgZm9udC1wYWxldHRlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGYzY2I2NWNkMTFiM2Rk
MTgyMWQ3ZGQ2MzlhYzllZTlkOGYzNDg2YmIuLjMzZWFiOWE0NjEwNzNmMTA5OGQyOWQwZGY0Y2Nl
MDQ5ZjhkNWYwM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMjEtMDktMjcgIEJKIEJ1
cmcgIDxiYnVyZ0BhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBBZGQgU1BJIHRvIHNlbGVj
dCBhIHRhYiBjcmVhdGVkIGJ5IF9XS0luc3BlY3RvckV4dGVuc2lvbgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMwNTgwCisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS84MzM3Mjg1MT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBBZGQgYSBuZXcgbWV0aG9kIGZvciBzZWxlY3RpbmcgYW4gZXh0ZW5zaW9uIHRh
YiBpbiBXZWJJbnNwZWN0b3JVSQorICAgICAgICB0aGF0IHdhcyBwcmV2aW91c2x5IGNyZWF0ZWQg
YnkgdXNpbmcKKyAgICAgICAgLVtfV0tJbnNwZWN0b3JFeHRlbnNpb24gY3JlYXRlTmV3VGFiOnRh
Ykljb25VUkw6c291cmNlVVJMOmNvbXBsZXRpb25IYW5kbGVyXS4KKworICAgICAgICBUaGlzIGlz
IGEgc3RyYWlnaHRmb3J3YXJkIHBsdW1iaW5nIGV4ZXJjaXNlLiBUaGUgQVBJIHRlc3QgdXNlcyB0
aGUgbmV3IG1ldGhvZAorICAgICAgICB0byB0ZXN0IHRoZSBleGlzdGluZyBfV0tJbnNwZWN0b3JF
eHRlbnNpb25EZWxlZ2F0ZSBjYWxsYmFjayBtZXRob2RzIGZvcgorICAgICAgICBkaWRTaG93VGFi
IGFuZCBkaWRIaWRlVGFiLgorCisgICAgICAgIE5ldyBBUEkgdGVzdDogV0tJbnNwZWN0b3JFeHRl
bnNpb25EZWxlZ2F0ZS5TaG93QW5kSGlkZVRhYkNhbGxiYWNrcy4KKworICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9yLm1tOgorICAgICAgICAoLVtfV0tJbnNwZWN0b3Ig
c2hvd0V4dGVuc2lvblRhYldpdGhJZGVudGlmaWVyOmNvbXBsZXRpb25IYW5kbGVyOl0pOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9yRXh0ZW5zaW9uSG9zdC5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUmVtb3RlV2ViSW5zcGVjdG9yVmlld0Nv
bnRyb2xsZXIubW06CisgICAgICAgICgtW19XS1JlbW90ZVdlYkluc3BlY3RvclZpZXdDb250cm9s
bGVyIHNob3dFeHRlbnNpb25UYWJXaXRoSWRlbnRpZmllcjpjb21wbGV0aW9uSGFuZGxlcjpdKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29u
dHJvbGxlclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yVUlFeHRlbnNp
b25Db250cm9sbGVyUHJveHk6OnNob3dFeHRlbnNpb25UYWIpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyUHJveHkuaDoKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRy
b2xsZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRy
b2xsZXI6OnNob3dFeHRlbnNpb25UYWIpOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5zcGVjdG9y
L1dlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlci5oOgorICAgICAgICAqIFdlYlByb2Nl
c3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlci5tZXNzYWdlcy5p
bjoKKwogMjAyMS0wOS0yNyAgUGVyIEFybmUgIDxwdm9sbGFuQGFwcGxlLmNvbT4KIAogICAgICAg
ICBbaU9TXVtHUFVQXSBSZW1vdmUgYWNjZXNzIHRvIHVudXNlZCBtYWNoIHNlcnZpY2VzIGluIHNh
bmRib3gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Nv
bnRyb2xsZXJzL1dlYkluc3BlY3RvckV4dGVuc2lvbkNvbnRyb2xsZXIuanMgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9XZWJJbnNwZWN0b3JFeHRlbnNp
b25Db250cm9sbGVyLmpzCmluZGV4IDQ2ZTM3NzRkMDVkYmRlYTQwNGY2NzRmODgzNjg0NTFiNjQ3
NDhmOTAuLmVkYjA5YzA0YzcwYWU5NjViM2MxNzY1NWNhMTIwODE0ZjhhMjA0YTMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL1dlYklu
c3BlY3RvckV4dGVuc2lvbkNvbnRyb2xsZXIuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvV2ViSW5zcGVjdG9yRXh0ZW5zaW9uQ29udHJvbGxl
ci5qcwpAQCAtMTUxLDggKzE1MSwyNCBAQCBXSS5XZWJJbnNwZWN0b3JFeHRlbnNpb25Db250cm9s
bGVyID0gY2xhc3MgV2ViSW5zcGVjdG9yRXh0ZW5zaW9uQ29udHJvbGxlciBleHRlbgogICAgICAg
ICAgICAgcmV0dXJuIFdJLldlYkluc3BlY3RvckV4dGVuc2lvbi5FcnJvckNvZGUuSW52YWxpZFJl
cXVlc3Q7CiAgICAgICAgIAogICAgICAgICByZXR1cm4gdGFyZ2V0LlBhZ2VBZ2VudC5yZWxvYWQu
aW52b2tlKHtpZ25vcmVDYWNoZX0pOwotICAgICAgICAKLSAgICAgICAgCisgICAgfQorICAgIAor
ICAgIHNob3dFeHRlbnNpb25UYWIoZXh0ZW5zaW9uVGFiSUQpCisgICAgeworICAgICAgICBsZXQg
dGFiQ29udGVudFZpZXcgPSB0aGlzLl9leHRlbnNpb25UYWJDb250ZW50Vmlld0ZvckV4dGVuc2lv
blRhYklETWFwLmdldChleHRlbnNpb25UYWJJRCk7CisgICAgICAgIGlmICghdGFiQ29udGVudFZp
ZXcpIHsKKyAgICAgICAgICAgIFdJLnJlcG9ydEludGVybmFsRXJyb3IoIlVuYWJsZSB0byBzaG93
IGV4dGVuc2lvbiB0YWIgd2l0aCB1bmtub3duIGV4dGVuc2lvblRhYklEOiAiICsgZXh0ZW5zaW9u
VGFiSUQpOworICAgICAgICAgICAgcmV0dXJuIFdJLldlYkluc3BlY3RvckV4dGVuc2lvbi5FcnJv
ckNvZGUuSW52YWxpZFJlcXVlc3Q7CisgICAgICAgIH0KKworICAgICAgICBsZXQgc3VjY2VzcyA9
IFdJLnRhYkJyb3dzZXIuc2hvd1RhYkZvckNvbnRlbnRWaWV3KHRhYkNvbnRlbnRWaWV3LCB7Cisg
ICAgICAgICAgICBpbml0aWF0b3JIaW50OiBXSS5UYWJCcm93c2VyLlRhYk5hdmlnYXRpb25Jbml0
aWF0b3IuRnJvbnRlbmRBUEksCisgICAgICAgIH0pOworCisgICAgICAgIGlmICghc3VjY2Vzcykg
eworICAgICAgICAgICAgV0kucmVwb3J0SW50ZXJuYWxFcnJvcigiVW5hYmxlIHRvIHNob3cgZXh0
ZW5zaW9uIHRhYiB3aXRoIGV4dGVuc2lvblRhYklEOiAiICsgZXh0ZW5zaW9uVGFiSUQpOworICAg
ICAgICAgICAgcmV0dXJuIFdJLldlYkluc3BlY3RvckV4dGVuc2lvbi5FcnJvckNvZGUuSW50ZXJu
YWxFcnJvcjsKKyAgICAgICAgfQogICAgIH0KIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Byb3RvY29sL0luc3BlY3RvckZyb250ZW5kQVBJLmpz
IGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvUHJvdG9jb2wvSW5zcGVjdG9y
RnJvbnRlbmRBUEkuanMKaW5kZXggYWYyYzE4OWI5OThmM2RlNjVlZGNjYjE2MWQ4MWY2M2I2N2Ni
NGI1Mi4uNDI4YzU0MzNmNmM0ZGNhMDg4MDkyNjhlMjA2YzEzODZmNThmN2JiNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvUHJvdG9jb2wvSW5zcGVjdG9y
RnJvbnRlbmRBUEkuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
UHJvdG9jb2wvSW5zcGVjdG9yRnJvbnRlbmRBUEkuanMKQEAgLTIzMCw0ICsyMzAsMTAgQEAgSW5z
cGVjdG9yRnJvbnRlbmRBUEkgPSB7CiAgICAgewogICAgICAgICByZXR1cm4gV0kuc2hhcmVkQXBw
LmV4dGVuc2lvbkNvbnRyb2xsZXIucmVsb2FkRm9yRXh0ZW5zaW9uKGV4dGVuc2lvbklELCB7aWdu
b3JlQ2FjaGUsIHVzZXJBZ2VudCwgaW5qZWN0ZWRTY3JpcHR9KTsKICAgICB9LAorCisgICAgLy8g
UmV0dXJucyBhIFdJLldlYkluc3BlY3RvckV4dGVuc2lvbi5FcnJvckNvZGUgaWYgYW4gZXJyb3Ig
b2NjdXJyZWQsIG90aGVyd2lzZSBub3RoaW5nLgorICAgIHNob3dFeHRlbnNpb25UYWIoZXh0ZW5z
aW9uVGFiSUQpCisgICAgeworICAgICAgICByZXR1cm4gV0kuc2hhcmVkQXBwLmV4dGVuc2lvbkNv
bnRyb2xsZXIuc2hvd0V4dGVuc2lvblRhYihleHRlbnNpb25UYWJJRCk7CisgICAgfQogfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJbnNwZWN0b3Iu
bW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9yLm1tCmlu
ZGV4IGQ2OTVmMWZmZmMzOGFkMTg5NTRkZjc1NDcyYWIzZjQ3OWQ2YTY0M2IuLjExODRiMmE5NTky
NzM3YzhlZTRiZmFjMWU5M2Q4YWNkOTcwZmE2ZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJbnNwZWN0b3IubW0KKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL19XS0luc3BlY3Rvci5tbQpAQCAtMjcwLDQgKzI3MCwyNCBAQCAt
ICh2b2lkKXVucmVnaXN0ZXJFeHRlbnNpb246KF9XS0luc3BlY3RvckV4dGVuc2lvbiAqKWV4dGVu
c2lvbiBjb21wbGV0aW9uSGFuZGxlcgogI2VuZGlmCiB9CiAKKy0gKHZvaWQpc2hvd0V4dGVuc2lv
blRhYldpdGhJZGVudGlmaWVyOihOU1N0cmluZyAqKWV4dGVuc2lvblRhYklkZW50aWZpZXIgY29t
cGxldGlvbkhhbmRsZXI6KHZvaWQoXikoTlNFcnJvciAqKSljb21wbGV0aW9uSGFuZGxlcgorewor
I2lmIEVOQUJMRShJTlNQRUNUT1JfRVhURU5TSU9OUykKKyAgICAvLyBJdCBpcyBhbiBlcnJvciB0
byBjYWxsIHRoaXMgbWV0aG9kIHByaW9yIHRvIGNyZWF0aW5nIGEgZnJvbnRlbmQgKGkuZS4sIHdp
dGggLWNvbm5lY3Qgb3IgLXNob3cpLgorICAgIGlmICghX2luc3BlY3Rvci0+ZXh0ZW5zaW9uQ29u
dHJvbGxlcigpKSB7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFtOU0Vycm9yIGVycm9yV2l0
aERvbWFpbjpXS0Vycm9yRG9tYWluIGNvZGU6V0tFcnJvclVua25vd24gdXNlckluZm86QHsgTlNM
b2NhbGl6ZWRGYWlsdXJlUmVhc29uRXJyb3JLZXk6IEluc3BlY3Rvcjo6ZXh0ZW5zaW9uRXJyb3JU
b1N0cmluZyhJbnNwZWN0b3I6OkV4dGVuc2lvbkVycm9yOjpJbnZhbGlkUmVxdWVzdCl9XSk7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBfaW5zcGVjdG9yLT5leHRlbnNpb25Db250cm9s
bGVyKCktPnNob3dFeHRlbnNpb25UYWIoZXh0ZW5zaW9uVGFiSWRlbnRpZmllciwgW3Byb3RlY3Rl
ZFNlbGYgPSByZXRhaW5QdHIoc2VsZiksIGNhcHR1cmVkQmxvY2sgPSBtYWtlQmxvY2tQdHIoY29t
cGxldGlvbkhhbmRsZXIpXSAoRXhwZWN0ZWQ8Ym9vbCwgSW5zcGVjdG9yOjpFeHRlbnNpb25FcnJv
cj4gcmVzdWx0KSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKCFyZXN1bHQpIHsKKyAgICAgICAgICAg
IGNhcHR1cmVkQmxvY2soW05TRXJyb3IgZXJyb3JXaXRoRG9tYWluOldLRXJyb3JEb21haW4gY29k
ZTpXS0Vycm9yVW5rbm93biB1c2VySW5mbzpAeyBOU0xvY2FsaXplZEZhaWx1cmVSZWFzb25FcnJv
cktleTogSW5zcGVjdG9yOjpleHRlbnNpb25FcnJvclRvU3RyaW5nKHJlc3VsdC5lcnJvcigpKX1d
KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGNhcHR1cmVkQmxv
Y2sobmlsKTsKKyAgICB9KTsKKyNlbmRpZgorfQorCiBAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9yRXh0ZW5zaW9uSG9zdC5oIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0luc3BlY3RvckV4dGVuc2lvbkhv
c3QuaAppbmRleCAzYjhmNTFlNzFjZjY2MjViZjljNjU4YjY3NTcxMjc2MWNkNTA4MDg5Li5iMGU0
NTU0M2I4M2U1MTcwNmUzNjM2NmE2MjA3YTVjMDVhMDk0MjUyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9yRXh0ZW5zaW9uSG9zdC5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJbnNwZWN0b3JFeHRlbnNp
b25Ib3N0LmgKQEAgLTUzLDYgKzUzLDE0IEBAIE5TX0FTU1VNRV9OT05OVUxMX0JFR0lOCiAgKi8K
IC0gKHZvaWQpdW5yZWdpc3RlckV4dGVuc2lvbjooX1dLSW5zcGVjdG9yRXh0ZW5zaW9uICopZXh0
ZW5zaW9uIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkKF4pKE5TRXJyb3IgKiBfTnVsbGFibGUpKWNv
bXBsZXRpb25IYW5kbGVyOwogCisvKioKKyAqIEBhYnN0cmFjdCBPcGVucyB0aGUgc3BlY2lmaWVk
IGV4dGVuc2lvbiB0YWIgaW4gdGhlIGFzc29jaWF0ZWQgV2ViIEluc3BlY3Rvci4KKyAqIEBwYXJh
bSBleHRlbnNpb25UYWJJZGVudGlmaWVyIEFuIGlkZW50aWZpZXIgZm9yIGFuIGV4dGVuc2lvbiB0
YWIgY3JlYXRlZCB1c2luZyBXS0luc3BlY3RvckV4dGVuc2lvbiBtZXRob2RzLgorICogQHBhcmFt
IGNvbXBsZXRpb25IYW5kbGVyIFRoZSBjb21wbGV0aW9uIGhhbmRsZXIgdG8gYmUgY2FsbGVkIHdo
ZW4gdGhlIHJlcXVlc3QgdG8gc2hvdyB0aGUgdGFiIHN1Y2NlZWRzIG9yIGZhaWxzLgorICogQGRp
c2N1c3Npb24gVGhpcyBtZXRob2QgaGFzIG5vIGVmZmVjdCBpZiB0aGUgZXh0ZW5zaW9uVGFiSWRl
bnRpZmllciBpcyBpbnZhbGlkLgorICovCistICh2b2lkKXNob3dFeHRlbnNpb25UYWJXaXRoSWRl
bnRpZmllcjooTlNTdHJpbmcgKilleHRlbnNpb25UYWJJZGVudGlmaWVyIGNvbXBsZXRpb25IYW5k
bGVyOih2b2lkKF4pKE5TRXJyb3IgKiBfTnVsbGFibGUpKWNvbXBsZXRpb25IYW5kbGVyOworCiAv
KioKICAqIEBhYnN0cmFjdCBUaGUgd2ViIHZpZXcgdGhhdCBpcyB1c2VkIHRvIGhvc3QgZXh0ZW5z
aW9uIHRhYnMgY3JlYXRlZCB2aWEgX1dLSW5zcGVjdG9yRXh0ZW5zaW9uLgogICogQGRpc2N1c3Np
b24gQnJvd3NpbmcgY29udGV4dHMgZm9yIGV4dGVuc2lvbiB0YWJzIGFyZSBsb2FkZWQgaW4gc3Vi
ZnJhbWVzIG9mIHRoaXMgd2ViIHZpZXcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvX1dLUmVtb3RlV2ViSW5zcGVjdG9yVmlld0NvbnRyb2xsZXIubW0gYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUmVtb3RlV2ViSW5zcGVjdG9yVmll
d0NvbnRyb2xsZXIubW0KaW5kZXggMTIyYzgyODRiYmU0N2E0Mzc5OGU2MDQzYjUzMTEzZTE4ZjA3
ZjAxYS4uMGQzZDhkM2U2ZTcwMzQyYTQ5OTM4OWVhNWZhNWI1Y2FkNzg3NzAxMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1JlbW90ZVdlYkluc3BlY3Rv
clZpZXdDb250cm9sbGVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9fV0tSZW1vdGVXZWJJbnNwZWN0b3JWaWV3Q29udHJvbGxlci5tbQpAQCAtMjE3LDYgKzIxNywy
NiBAQCAtICh2b2lkKXNob3dSZXNvdXJjZXMKICAgICBtX3JlbW90ZUluc3BlY3RvclByb3h5LT5z
aG93UmVzb3VyY2VzKCk7CiB9CiAKKy0gKHZvaWQpc2hvd0V4dGVuc2lvblRhYldpdGhJZGVudGlm
aWVyOihOU1N0cmluZyAqKWV4dGVuc2lvblRhYklkZW50aWZpZXIgY29tcGxldGlvbkhhbmRsZXI6
KHZvaWQoXikoTlNFcnJvciAqIF9OdWxsYWJsZSkpY29tcGxldGlvbkhhbmRsZXIKK3sKKyNpZiBF
TkFCTEUoSU5TUEVDVE9SX0VYVEVOU0lPTlMpCisgICAgLy8gSXQgaXMgYW4gZXJyb3IgdG8gY2Fs
bCB0aGlzIG1ldGhvZCBwcmlvciB0byBjcmVhdGluZyBhIGZyb250ZW5kIChpLmUuLCB3aXRoIC1j
b25uZWN0IG9yIC1zaG93KS4KKyAgICBpZiAoIW1fcmVtb3RlSW5zcGVjdG9yUHJveHktPmV4dGVu
c2lvbkNvbnRyb2xsZXIoKSkgeworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihbTlNFcnJvciBl
cnJvcldpdGhEb21haW46V0tFcnJvckRvbWFpbiBjb2RlOldLRXJyb3JVbmtub3duIHVzZXJJbmZv
OkB7IE5TTG9jYWxpemVkRmFpbHVyZVJlYXNvbkVycm9yS2V5OiBJbnNwZWN0b3I6OmV4dGVuc2lv
bkVycm9yVG9TdHJpbmcoSW5zcGVjdG9yOjpFeHRlbnNpb25FcnJvcjo6SW52YWxpZFJlcXVlc3Qp
fV0pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgbV9yZW1vdGVJbnNwZWN0b3JQcm94
eS0+ZXh0ZW5zaW9uQ29udHJvbGxlcigpLT5zaG93RXh0ZW5zaW9uVGFiKGV4dGVuc2lvblRhYklk
ZW50aWZpZXIsIFtwcm90ZWN0ZWRTZWxmID0gcmV0YWluUHRyKHNlbGYpLCBjYXB0dXJlZEJsb2Nr
ID0gbWFrZUJsb2NrUHRyKGNvbXBsZXRpb25IYW5kbGVyKV0gKEV4cGVjdGVkPGJvb2wsIEluc3Bl
Y3Rvcjo6RXh0ZW5zaW9uRXJyb3I+IHJlc3VsdCkgbXV0YWJsZSB7CisgICAgICAgIGlmICghcmVz
dWx0KSB7CisgICAgICAgICAgICBjYXB0dXJlZEJsb2NrKFtOU0Vycm9yIGVycm9yV2l0aERvbWFp
bjpXS0Vycm9yRG9tYWluIGNvZGU6V0tFcnJvclVua25vd24gdXNlckluZm86QHsgTlNMb2NhbGl6
ZWRGYWlsdXJlUmVhc29uRXJyb3JLZXk6IEluc3BlY3Rvcjo6ZXh0ZW5zaW9uRXJyb3JUb1N0cmlu
ZyhyZXN1bHQuZXJyb3IoKSl9XSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKwor
ICAgICAgICBjYXB0dXJlZEJsb2NrKG5pbCk7CisgICAgfSk7CisjZW5kaWYKK30KKwogQGVuZAog
CiBOU19BU1NVTUVfTk9OTlVMTF9FTkQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXJQcm94eS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUlFeHRlbnNp
b25Db250cm9sbGVyUHJveHkuY3BwCmluZGV4IDA1YjEwMTFmZjUwZDYxZmNmZDMxY2E3MzdlMGVh
ZjRiMGQwNWI5ZjMuLjc0MmFhMjdiMWVhYzM1OGFmMDViNDc2MTI0NGVjMjFmZDMwMGEzMmQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JV
SUV4dGVuc2lvbkNvbnRyb2xsZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlclByb3h5LmNwcApA
QCAtMTg3LDYgKzE4NywxOSBAQCB2b2lkIFdlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxl
clByb3h5OjpyZWxvYWRGb3JFeHRlbnNpb24oY29uc3QgSW5zcGVjdG9yOgogICAgIH0pOwogfQog
Cit2b2lkIFdlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlclByb3h5OjpzaG93RXh0ZW5z
aW9uVGFiKGNvbnN0IEluc3BlY3Rvcjo6RXh0ZW5zaW9uVGFiSUQmIGV4dGVuc2lvblRhYklkZW50
aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0ZWQ8Ym9vbCwgSW5zcGVjdG9yOjpF
eHRlbnNpb25FcnJvcj4pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIHdoZW5Gcm9udGVu
ZEhhc0xvYWRlZChbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cih0aGlzKSwgZXh0ZW5zaW9uVGFiSWRl
bnRpZmllciwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0g
KCkgbXV0YWJsZSB7CisgICAgICAgIGlmICghd2Vha1RoaXMgfHwgIXdlYWtUaGlzLT5tX2luc3Bl
Y3RvclBhZ2UpIHsKKyAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKG1ha2VVbmV4cGVjdGVk
KEluc3BlY3Rvcjo6RXh0ZW5zaW9uRXJyb3I6OkNvbnRleHREZXN0cm95ZWQpKTsKKyAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIHdlYWtUaGlzLT5tX2luc3BlY3RvclBh
Z2UtPnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViSW5zcGVjdG9yVUlFeHRlbnNpb25D
b250cm9sbGVyOjpTaG93RXh0ZW5zaW9uVGFiIHsgZXh0ZW5zaW9uVGFiSWRlbnRpZmllciB9LCBX
VEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAgfSk7Cit9CisKKwogLy8gV2ViSW5zcGVj
dG9yVUlFeHRlbnNpb25Db250cm9sbGVyUHJveHkgSVBDIG1lc3NhZ2VzLgogCiB2b2lkIFdlYklu
c3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlclByb3h5OjpkaWRTaG93RXh0ZW5zaW9uVGFiKGNv
bnN0IEluc3BlY3Rvcjo6RXh0ZW5zaW9uSUQmIGV4dGVuc2lvbklELCBjb25zdCBJbnNwZWN0b3I6
OkV4dGVuc2lvblRhYklEJiBleHRlbnNpb25UYWJJRCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXJQ
cm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJ
RXh0ZW5zaW9uQ29udHJvbGxlclByb3h5LmgKaW5kZXggZjI5NDc4MTU0NjVmYTA1ZTMzZjAwZWQ1
ZmU2NDNhMjg5NzBkZGE5Yi4uY2EyM2VjN2FmYjJlMWViY2Y5ODU3NGZlNzllOTQwZDg0NmEzMzE3
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3Bl
Y3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlclByb3h5LmgK
QEAgLTYwLDYgKzYwLDcgQEAgcHVibGljOgogICAgIHZvaWQgY3JlYXRlVGFiRm9yRXh0ZW5zaW9u
KGNvbnN0IEluc3BlY3Rvcjo6RXh0ZW5zaW9uSUQmLCBjb25zdCBTdHJpbmcmIHRhYk5hbWUsIGNv
bnN0IFVSTCYgdGFiSWNvblVSTCwgY29uc3QgVVJMJiBzb3VyY2VVUkwsIFdURjo6Q29tcGxldGlv
bkhhbmRsZXI8dm9pZChFeHBlY3RlZDxJbnNwZWN0b3I6OkV4dGVuc2lvblRhYklELCBJbnNwZWN0
b3I6OkV4dGVuc2lvbkVycm9yPik+JiYpOwogICAgIHZvaWQgZXZhbHVhdGVTY3JpcHRGb3JFeHRl
bnNpb24oY29uc3QgSW5zcGVjdG9yOjpFeHRlbnNpb25JRCYsIGNvbnN0IFN0cmluZyYgc2NyaXB0
U291cmNlLCBjb25zdCBzdGQ6Om9wdGlvbmFsPFVSTD4mIGZyYW1lVVJMLCBjb25zdCBzdGQ6Om9w
dGlvbmFsPFVSTD4mIGNvbnRleHRTZWN1cml0eU9yaWdpbiwgY29uc3Qgc3RkOjpvcHRpb25hbDxi
b29sPiYgdXNlQ29udGVudFNjcmlwdENvbnRleHQsIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9p
ZChJbnNwZWN0b3I6OkV4dGVuc2lvbkV2YWx1YXRpb25SZXN1bHQpPiYmKTsKICAgICB2b2lkIHJl
bG9hZEZvckV4dGVuc2lvbihjb25zdCBJbnNwZWN0b3I6OkV4dGVuc2lvbklEJiwgY29uc3Qgc3Rk
OjpvcHRpb25hbDxib29sPiYgaWdub3JlQ2FjaGUsIGNvbnN0IHN0ZDo6b3B0aW9uYWw8U3RyaW5n
PiYgdXNlckFnZW50LCBjb25zdCBzdGQ6Om9wdGlvbmFsPFN0cmluZz4mIGluamVjdGVkU2NyaXB0
LCBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoSW5zcGVjdG9yOjpFeHRlbnNpb25FdmFsdWF0
aW9uUmVzdWx0KT4mJik7CisgICAgdm9pZCBzaG93RXh0ZW5zaW9uVGFiKGNvbnN0IEluc3BlY3Rv
cjo6RXh0ZW5zaW9uVGFiSUQmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4cGVjdGVkPGJvb2ws
IEluc3BlY3Rvcjo6RXh0ZW5zaW9uRXJyb3I+KT4mJik7CiAKICAgICAvLyBXZWJJbnNwZWN0b3JV
SUV4dGVuc2lvbkNvbnRyb2xsZXJQcm94eSBJUEMgbWVzc2FnZXMuCiAgICAgdm9pZCBkaWRTaG93
RXh0ZW5zaW9uVGFiKGNvbnN0IEluc3BlY3Rvcjo6RXh0ZW5zaW9uSUQmLCBjb25zdCBJbnNwZWN0
b3I6OkV4dGVuc2lvblRhYklEJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlci5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29u
dHJvbGxlci5jcHAKaW5kZXggMTczYjIxODQyZDFiZmQ3MmMxZDE3MGNiMjlhZTk4ZGE3OGI1YzBi
My4uOTA5MGIxNmE3OTU4ZTRiYzgxMmUwMmQwMmNkOTQ1MDkzY2Q1ZjUyNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lv
bkNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3Iv
V2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyLmNwcApAQCAtMzI2LDYgKzMyNiwzOSBA
QCB2b2lkIFdlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlcjo6cmVsb2FkRm9yRXh0ZW5z
aW9uKGNvbnN0IEluc3BlY3Rvcjo6RXh0ZQogICAgIH0pOwogfQogCit2b2lkIFdlYkluc3BlY3Rv
clVJRXh0ZW5zaW9uQ29udHJvbGxlcjo6c2hvd0V4dGVuc2lvblRhYihjb25zdCBJbnNwZWN0b3I6
OkV4dGVuc2lvblRhYklEJiBleHRlbnNpb25UYWJJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKEV4cGVjdGVkPGJvb2wsIEluc3BlY3Rvcjo6RXh0ZW5zaW9uRXJyb3I+KT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKK3sKKyAgICBpZiAoIW1fZnJvbnRlbmRDbGllbnQpIHsKKyAgICAgICAg
Y29tcGxldGlvbkhhbmRsZXIobWFrZVVuZXhwZWN0ZWQoSW5zcGVjdG9yOjpFeHRlbnNpb25FcnJv
cjo6SW52YWxpZFJlcXVlc3QpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIFZlY3Rv
cjxSZWY8SlNPTjo6VmFsdWU+PiBhcmd1bWVudHMgeworICAgICAgICBKU09OOjpWYWx1ZTo6Y3Jl
YXRlKGV4dGVuc2lvblRhYklkZW50aWZpZXIpLAorICAgIH07CisKKyAgICBtX2Zyb250ZW5kQ2xp
ZW50LT5mcm9udGVuZEFQSURpc3BhdGNoZXIoKS5kaXNwYXRjaENvbW1hbmRXaXRoUmVzdWx0QXN5
bmMoInNob3dFeHRlbnNpb25UYWIiX3MsIFdURk1vdmUoYXJndW1lbnRzKSwgW3dlYWtUaGlzID0g
bWFrZVdlYWtQdHIodGhpcyksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9u
SGFuZGxlcildKEluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlcjo6RXZhbHVhdGlvblJlc3Vs
dCYmIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgICAgIGlmICghd2Vha1RoaXMpIHsKKyAgICAgICAg
ICAgIGNvbXBsZXRpb25IYW5kbGVyKG1ha2VVbmV4cGVjdGVkKEluc3BlY3Rvcjo6RXh0ZW5zaW9u
RXJyb3I6OkNvbnRleHREZXN0cm95ZWQpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
fQorCisgICAgICAgIGF1dG8qIGZyb250ZW5kR2xvYmFsT2JqZWN0ID0gd2Vha1RoaXMtPm1fZnJv
bnRlbmRDbGllbnQtPmZyb250ZW5kQVBJRGlzcGF0Y2hlcigpLmZyb250ZW5kR2xvYmFsT2JqZWN0
KCk7CisgICAgICAgIGlmICghZnJvbnRlbmRHbG9iYWxPYmplY3QpIHsKKyAgICAgICAgICAgIGNv
bXBsZXRpb25IYW5kbGVyKG1ha2VVbmV4cGVjdGVkKEluc3BlY3Rvcjo6RXh0ZW5zaW9uRXJyb3I6
OkNvbnRleHREZXN0cm95ZWQpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisg
ICAgICAgIGlmIChhdXRvIHBhcnNlZEVycm9yID0gd2Vha1RoaXMtPnBhcnNlRXh0ZW5zaW9uRXJy
b3JGcm9tRXZhbHVhdGlvblJlc3VsdChyZXN1bHQpKSB7CisgICAgICAgICAgICBMT0coSW5zcGVj
dG9yLCAiSW50ZXJuYWwgZXJyb3IgZW5jb3VudGVyZWQgd2hpbGUgZXZhbHVhdGluZyB1cG9uIHRo
ZSBmcm9udGVuZDogJXMiLCBJbnNwZWN0b3I6OmV4dGVuc2lvbkVycm9yVG9TdHJpbmcoKnBhcnNl
ZEVycm9yKS51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKG1h
a2VVbmV4cGVjdGVkKCpwYXJzZWRFcnJvcikpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICB9CisKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIodHJ1ZSk7CisgICAgfSk7Cit9CisKIHZv
aWQgV2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyOjpkaWRTaG93RXh0ZW5zaW9uVGFi
KGNvbnN0IEluc3BlY3Rvcjo6RXh0ZW5zaW9uSUQmIGV4dGVuc2lvbklELCBjb25zdCBJbnNwZWN0
b3I6OkV4dGVuc2lvblRhYklEJiBleHRlbnNpb25UYWJJRCkKIHsKICAgICBXZWJQcm9jZXNzOjpz
aW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJJ
bnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXJQcm94eTo6RGlkU2hvd0V4dGVuc2lvblRhYiB7
IGV4dGVuc2lvbklELCBleHRlbnNpb25UYWJJRCB9LCBtX2luc3BlY3RvclBhZ2VJZGVudGlmaWVy
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5z
cGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
SW5zcGVjdG9yL1dlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlci5oCmluZGV4IDE4ZWE4
ZmZjMmFmODAyM2JiMjljN2NkYTE5NDRmYmU1NWQwNjNmZTEuLmMzNjEyYWRkMDA1OWQ3NGViNDdh
OTFlNWRlMzQ1NzQxMjQ4ZDBmNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyLmgKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNv
bnRyb2xsZXIuaApAQCAtNjgsMTIgKzY4LDExIEBAIHB1YmxpYzoKICAgICB2b2lkIGNyZWF0ZVRh
YkZvckV4dGVuc2lvbihjb25zdCBJbnNwZWN0b3I6OkV4dGVuc2lvbklEJiwgY29uc3QgU3RyaW5n
JiB0YWJOYW1lLCBjb25zdCBVUkwmIHRhYkljb25VUkwsIGNvbnN0IFVSTCYgc291cmNlVVJMLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4cGVjdGVkPEluc3BlY3Rvcjo6RXh0ZW5zaW9uVGFiSUQs
IEluc3BlY3Rvcjo6RXh0ZW5zaW9uRXJyb3I+KT4mJik7CiAgICAgdm9pZCBldmFsdWF0ZVNjcmlw
dEZvckV4dGVuc2lvbihjb25zdCBJbnNwZWN0b3I6OkV4dGVuc2lvbklEJiwgY29uc3QgU3RyaW5n
JiBzY3JpcHRTb3VyY2UsIGNvbnN0IHN0ZDo6b3B0aW9uYWw8VVJMPiYgZnJhbWVVUkwsIGNvbnN0
IHN0ZDo6b3B0aW9uYWw8VVJMPiYgY29udGV4dFNlY3VyaXR5T3JpZ2luLCBjb25zdCBzdGQ6Om9w
dGlvbmFsPGJvb2w+JiB1c2VDb250ZW50U2NyaXB0Q29udGV4dCwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmLCBjb25zdCBzdGQ6Om9wdGlvbmFsPFdlYkNv
cmU6OkV4Y2VwdGlvbkRldGFpbHM+JiwgY29uc3Qgc3RkOjpvcHRpb25hbDxJbnNwZWN0b3I6OkV4
dGVuc2lvbkVycm9yPiYpPiYmKTsKICAgICB2b2lkIHJlbG9hZEZvckV4dGVuc2lvbihjb25zdCBJ
bnNwZWN0b3I6OkV4dGVuc2lvbklEJiwgY29uc3Qgc3RkOjpvcHRpb25hbDxib29sPiYgaWdub3Jl
Q2FjaGUsIGNvbnN0IHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiYgdXNlckFnZW50LCBjb25zdCBzdGQ6
Om9wdGlvbmFsPFN0cmluZz4mIGluamVjdGVkU2NyaXB0LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KGNvbnN0IHN0ZDo6b3B0aW9uYWw8SW5zcGVjdG9yOjpFeHRlbnNpb25FcnJvcj4mKT4mJik7Cisg
ICAgdm9pZCBzaG93RXh0ZW5zaW9uVGFiKGNvbnN0IEluc3BlY3Rvcjo6RXh0ZW5zaW9uVGFiSUQm
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4cGVjdGVkPGJvb2wsIEluc3BlY3Rvcjo6RXh0ZW5z
aW9uRXJyb3I+KT4mJik7CiAKICAgICAvLyBDYWxsYmFja3MgZnJvbSB0aGUgZnJvbnRlbmQuCi0j
aWYgRU5BQkxFKElOU1BFQ1RPUl9FWFRFTlNJT05TKQogICAgIHZvaWQgZGlkU2hvd0V4dGVuc2lv
blRhYihjb25zdCBJbnNwZWN0b3I6OkV4dGVuc2lvbklEJiwgY29uc3QgSW5zcGVjdG9yOjpFeHRl
bnNpb25UYWJJRCYpOwogICAgIHZvaWQgZGlkSGlkZUV4dGVuc2lvblRhYihjb25zdCBJbnNwZWN0
b3I6OkV4dGVuc2lvbklEJiwgY29uc3QgSW5zcGVjdG9yOjpFeHRlbnNpb25UYWJJRCYpOwotI2Vu
ZGlmCiAKIHByaXZhdGU6CiAgICAgSlNDOjpKU09iamVjdCogdW53cmFwRXZhbHVhdGlvblJlc3Vs
dEFzT2JqZWN0KFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlcjo6RXZhbHVh
dGlvblJlc3VsdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVj
dG9yL1dlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlci5tZXNzYWdlcy5pbiBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250
cm9sbGVyLm1lc3NhZ2VzLmluCmluZGV4IDk0ODE5ZmIwOWIwMTZkMTNmZTlmYTIwM2JjMDgzMDJm
NjY0ZmM4OGUuLjZhMDBlY2ZmZTU4MzBmZjE2NDVlOTAxN2JjZTZkNzYxZjI3ODcyMWMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUlF
eHRlbnNpb25Db250cm9sbGVyLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyLm1lc3NhZ2Vz
LmluCkBAIC0yOSw2ICsyOSw3IEBAIG1lc3NhZ2VzIC0+IFdlYkluc3BlY3RvclVJRXh0ZW5zaW9u
Q29udHJvbGxlciBOb3RSZWZDb3VudGVkIHsKICAgICBDcmVhdGVUYWJGb3JFeHRlbnNpb24oU3Ry
aW5nIGV4dGVuc2lvbklELCBTdHJpbmcgdGFiTmFtZSwgVVJMIHRhYkljb25VUkwsIFVSTCBzb3Vy
Y2VVUkwpIC0+IChFeHBlY3RlZDxTdHJpbmcsIEluc3BlY3Rvcjo6RXh0ZW5zaW9uRXJyb3I+IHJl
c3VsdCkgQXN5bmMKICAgICBFdmFsdWF0ZVNjcmlwdEZvckV4dGVuc2lvbihTdHJpbmcgZXh0ZW5z
aW9uSUQsIFN0cmluZyBzY3JpcHRTb3VyY2UsIHN0ZDo6b3B0aW9uYWw8VVJMPiBmcmFtZVVSTCwg
c3RkOjpvcHRpb25hbDxVUkw+IGNvbnRleHRTZWN1cml0eU9yaWdpbiwgc3RkOjpvcHRpb25hbDxi
b29sPiB1c2VDb250ZW50U2NyaXB0Q29udGV4dCkgLT4gKElQQzo6RGF0YVJlZmVyZW5jZSByZXN1
bHREYXRhLCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkV4Y2VwdGlvbkRldGFpbHM+IGRldGFpbHMs
IHN0ZDo6b3B0aW9uYWw8SW5zcGVjdG9yOjpFeHRlbnNpb25FcnJvcj4gZXJyb3IpIEFzeW5jCiAg
ICAgUmVsb2FkRm9yRXh0ZW5zaW9uKFN0cmluZyBleHRlbnNpb25JRCwgc3RkOjpvcHRpb25hbDxi
b29sPiBpZ25vcmVDYWNoZSwgc3RkOjpvcHRpb25hbDxTdHJpbmc+IHVzZXJBZ2VudCwgc3RkOjpv
cHRpb25hbDxTdHJpbmc+IGluamVjdGVkU2NyaXB0KSAtPiAoc3RkOjpvcHRpb25hbDxJbnNwZWN0
b3I6OkV4dGVuc2lvbkVycm9yPiBlcnJvcikgQXN5bmMKKyAgICBTaG93RXh0ZW5zaW9uVGFiKFN0
cmluZyBleHRlbnNpb25UYWJJZGVudGlmaWVyKSAtPiAoRXhwZWN0ZWQ8Ym9vbCwgSW5zcGVjdG9y
OjpFeHRlbnNpb25FcnJvcj4gcmVzdWx0KSBBc3luYwogfQogCiAjZW5kaWYgLy8gRU5BQkxFKElO
U1BFQ1RPUl9FWFRFTlNJT05TKQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMv
Q2hhbmdlTG9nCmluZGV4IGY0N2U0YmJhNTNkOTM4NDRkOWYyYTAzNTg3YmRiMTdmYjI4MzYxNDQu
LjhkOWFhYmYxM2UxZTc4ZWEyNDQyNjYwMTkzMjU3MzZlMjNkM2U1MjIgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAy
MS0wOS0yNyAgQkogQnVyZyAgPGJidXJnQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIEFk
ZCBTUEkgdG8gc2VsZWN0IGEgdGFiIGNyZWF0ZWQgYnkgX1dLSW5zcGVjdG9yRXh0ZW5zaW9uCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzA1ODAKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgzMzcyODUxPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIENyZWF0ZSBhIG5ldyB0ZXN0IGZpbGUgZm9yIF9XS0lu
c3BlY3RvckV4dGVuc2lvbkRlbGVnYXRlLiBBZGQgYQorICAgICAgICBuZXcgdGVzdCBjYXNlIHRo
YXQgZXhlcmNpc2VzIGNyZWF0aW5nIGFuIGV4dGVuc2lvbiB0YWIsIHNob3dpbmcgYW4KKyAgICAg
ICAgZXh0ZW5zaW9uIHRhYiwgYW5kIHVzZXMgZGVsZWdhdGUgY2FsbGJhY2tzIGZvciBkaWRTaG93
VGFiL2RpZEhpZGVUYWIuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEku
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL0luc3BlY3RvckV4dGVuc2lvbi1UYWJJY29uLTMweDMwLnBuZzogQWRkZWQu
CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9JbnNwZWN0b3JFeHRl
bnNpb24tYmFzaWMtdGFiLmh0bWw6IEFkZGVkLgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2EvV0tJbnNwZWN0b3JFeHRlbnNpb25EZWxlZ2F0ZS5tbTogQWRkZWQuCisg
ICAgICAgIChyZXNldEdsb2JhbFN0YXRlKToKKyAgICAgICAgKC1bVUlEZWxlZ2F0ZUZvclRlc3Rp
bmdJbnNwZWN0b3JFeHRlbnNpb25EZWxlZ2F0ZSBfd2ViVmlldzpkaWRBdHRhY2hMb2NhbEluc3Bl
Y3RvcjpdKToKKyAgICAgICAgKC1bSW5zcGVjdG9yRXh0ZW5zaW9uRGVsZWdhdGVGb3JUZXN0aW5n
IGluc3BlY3RvckV4dGVuc2lvbjpkaWRTaG93VGFiV2l0aElkZW50aWZpZXI6XSk6CisgICAgICAg
ICgtW0luc3BlY3RvckV4dGVuc2lvbkRlbGVnYXRlRm9yVGVzdGluZyBpbnNwZWN0b3JFeHRlbnNp
b246ZGlkSGlkZVRhYldpdGhJZGVudGlmaWVyOl0pOgorICAgICAgICAoVEVTVCk6CisKIDIwMjEt
MDktMjcgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIE1ha2Ug
c3VyZSB0byByZXNldCBwcmVzZW50aW5nIGFwcGxpY2F0aW9uIHBpZCBpbiBjYXNlIG9mIG1lZGlh
c2VydmVyZCBjcmFzaApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0
QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RX
ZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBmYTI1ZTc3MDNmOGM0MDA1
NDI2ZjE5MzIxNzFmZGIzYjI3NDIxMjBhLi5hYzFiMWMxYmRmNzcyNzdhYWRkMDE4OTI1ODg0MDc2
ODIzN2ZhYWQxIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEku
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RX
ZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtODkyLDYgKzg5Miw5IEBACiAJ
CTk5OTkxMDhCMUYzOTNDOTYwMDhBRDQ1NSAvKiBDb3B5aW5nLm1tIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTk5OTEwOEExRjM5M0M4QjAwOEFENDU1IC8q
IENvcHlpbmcubW0gKi87IH07CiAJCTk5OUI3RUUzMjU1MUM2M0IwMEY0NTBBNCAvKiBXS0luc3Bl
Y3RvckV4dGVuc2lvbkhvc3QubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5OTlCN0VFMjI1NTFDNjNCMDBGNDUwQTQgLyogV0tJbnNwZWN0b3JFeHRlbnNp
b25Ib3N0Lm1tICovOyB9OwogCQk5OUI0RjlDNjI0RURFRDk3MDAwMjJCODIgLyogV0tJbnNwZWN0
b3JEZWxlZ2F0ZS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDk5QjRGOUM1MjRFREVEOTYwMDAyMkI4MiAvKiBXS0luc3BlY3RvckRlbGVnYXRlLm1tICov
OyB9OworCQk5OUUyODQ2NDI2RjkxRjdGMDAwM0YxRkEgLyogV0tJbnNwZWN0b3JFeHRlbnNpb25E
ZWxlZ2F0ZS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDk5RTI4NDYzMjZGOTFGN0YwMDAzRjFGQSAvKiBXS0luc3BlY3RvckV4dGVuc2lvbkRlbGVnYXRl
Lm1tICovOyB9OworCQk5OUUyODQ2NjI2RjkzREI1MDAwM0YxRkEgLyogSW5zcGVjdG9yRXh0ZW5z
aW9uLVRhYkljb24tMzB4MzAucG5nIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDk5RTI4NDY1MjZGOTNENzYwMDAzRjFGQSAvKiBJbnNwZWN0b3JF
eHRlbnNpb24tVGFiSWNvbi0zMHgzMC5wbmcgKi87IH07CisJCTk5RTI4NDY4MjZGOTQxNTQwMDAz
RjFGQSAvKiBJbnNwZWN0b3JFeHRlbnNpb24tYmFzaWMtdGFiLmh0bWwgaW4gQ29weSBSZXNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTlFMjg0NjcyNkY5NDEzQjAw
MDNGMUZBIC8qIEluc3BlY3RvckV4dGVuc2lvbi1iYXNpYy10YWIuaHRtbCAqLzsgfTsKIAkJOUIw
MkUwRDYyMzVGQTQ3RDAwNDA0NEIyIC8qIFRleHRNYW5pcHVsYXRpb24ubW0gaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QjAyRTBENTIzNUZBNDdEMDA0MDQ0
QjIgLyogVGV4dE1hbmlwdWxhdGlvbi5tbSAqLzsgfTsKIAkJOUIwNzg2QTUxQzU4ODVDMzAwRDE1
OUUzIC8qIEluamVjdGVkQnVuZGxlTWFrZUFsbFNoYWRvd1Jvb3RzT3Blbl9CdW5kbGUuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUIwNzg2QTQxQzU4
ODVDMzAwRDE1OUUzIC8qIEluamVjdGVkQnVuZGxlTWFrZUFsbFNoYWRvd1Jvb3RzT3Blbl9CdW5k
bGUuY3BwICovOyB9OwogCQk5QjBDMDUxOTI0RkRGQjdEMDBGMkZFMzEgLyogQ29tcGFjdFVuaXF1
ZVB0clR1cGxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDlCMEMwNTE4MjRGREZCNzAwMEYyRkUzMSAvKiBDb21wYWN0VW5pcXVlUHRyVHVwbGUuY3Bw
ICovOyB9OwpAQCAtMTU3MSw2ICsxNTc0LDggQEAKIAkJCQkyRUZGMDZDRDFEOEE0MjlBMDAwNEJC
MzAgLyogaW5wdXQtZmllbGQtaW4tc2Nyb2xsYWJsZS1kb2N1bWVudC5odG1sIGluIENvcHkgUmVz
b3VyY2VzICovLAogCQkJCUNFMzUyNEZBMUIxNDQzODkwMDI4QTdDNSAvKiBpbnB1dC1mb2N1cy1i
bHVyLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJQ0U2RDBFRTMyNDI2QjkzMjAwMkFE
OTAxIC8qIGluc2VydC10ZXh0Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCisJCQkJOTlFMjg0
NjgyNkY5NDE1NDAwMDNGMUZBIC8qIEluc3BlY3RvckV4dGVuc2lvbi1iYXNpYy10YWIuaHRtbCBp
biBDb3B5IFJlc291cmNlcyAqLywKKwkJCQk5OUUyODQ2NjI2RjkzREI1MDAwM0YxRkEgLyogSW5z
cGVjdG9yRXh0ZW5zaW9uLVRhYkljb24tMzB4MzAucG5nIGluIENvcHkgUmVzb3VyY2VzICovLAog
CQkJCTU3RjU2QTVDMUM3RjhDQzEwMEYzMUQ3RSAvKiBJc05hdmlnYXRpb25BY3Rpb25UcnVzdGVk
Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJQzlCNEFEMkMxRUNBNkY3RjAwRjVGRUEw
IC8qIGpzLWF1dG9wbGF5LWF1ZGlvLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJQzk5
QjY3NUQxRTM5NzIyMDAwRkM2QzgwIC8qIGpzLXBsYXktd2l0aC1jb250cm9scy5odG1sIGluIENv
cHkgUmVzb3VyY2VzICovLApAQCAtMjYxNiw2ICsyNjIxLDkgQEAKIAkJOTk5OTEwOEExRjM5M0M4
QjAwOEFENDU1IC8qIENvcHlpbmcubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IHBhdGggPSBDb3B5aW5nLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5OTlCN0VF
MjI1NTFDNjNCMDBGNDUwQTQgLyogV0tJbnNwZWN0b3JFeHRlbnNpb25Ib3N0Lm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tJbnNwZWN0b3JFeHRlbnNpb25Ib3N0
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5OUI0RjlDNTI0RURFRDk2MDAwMjJC
ODIgLyogV0tJbnNwZWN0b3JEZWxlZ2F0ZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgcGF0aCA9IFdLSW5zcGVjdG9yRGVsZWdhdGUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTk5RTI4NDYzMjZGOTFGN0YwMDAzRjFGQSAvKiBXS0luc3BlY3RvckV4dGVuc2lv
bkRlbGVnYXRlLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tJ
bnNwZWN0b3JFeHRlbnNpb25EZWxlZ2F0ZS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJOTlFMjg0NjUyNkY5M0Q3NjAwMDNGMUZBIC8qIEluc3BlY3RvckV4dGVuc2lvbi1UYWJJY29u
LTMweDMwLnBuZyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IGltYWdlLnBuZzsgcGF0aCA9ICJJbnNwZWN0b3JFeHRlbnNpb24tVGFiSWNvbi0zMHgzMC5w
bmciOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5OUUyODQ2NzI2Rjk0MTNCMDAwM0Yx
RkEgLyogSW5zcGVjdG9yRXh0ZW5zaW9uLWJhc2ljLXRhYi5odG1sICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5o
dG1sOyBwYXRoID0gIkluc3BlY3RvckV4dGVuc2lvbi1iYXNpYy10YWIuaHRtbCI7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlCMDJFMEQ1MjM1RkE0N0QwMDQwNDRCMiAvKiBUZXh0TWFu
aXB1bGF0aW9uLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gVGV4dE1hbmlwdWxhdGlvbi5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUIwNzg2QTIxQzU4ODMwRjAwRDE1OUUzIC8q
IEluamVjdGVkQnVuZGxlTWFrZUFsbFNoYWRvd1Jvb3RzT3Blbi5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbmplY3RlZEJ1bmRsZU1ha2VBbGxTaGFkb3dSb290c09w
ZW4uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5QjA3ODZBNDFDNTg4NUMzMDBE
MTU5RTMgLyogSW5qZWN0ZWRCdW5kbGVNYWtlQWxsU2hhZG93Um9vdHNPcGVuX0J1bmRsZS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbmplY3RlZEJ1bmRsZU1ha2VB
bGxTaGFkb3dSb290c09wZW5fQnVuZGxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTM0NzAsNyArMzQ3OCw2IEBACiAJCQkJNkIyNUE3NTEyNURDOEQ0RTAwNzA3NDRGIC8qIEV2
ZW50QXR0cmlidXRpb24ubW0gKi8sCiAJCQkJQ0RBMjlCMjgyMEZEMkE5OTAwRjE1Q0VEIC8qIEV4
aXRGdWxsc2NyZWVuT25FbnRlclBpUC5tbSAqLywKIAkJCQkxRDEyQkVCRjI0NUJFRjg1MDA0QzBC
N0EgLyogRXhpdFBpUE9uU3VzcGVuZFZpZGVvRWxlbWVudC5tbSAqLywKLQkJCQk1MTgxOUYyOTI2
RUFDOTgyMDBFNDczNzUgLyogRlRQLm1tICovLAogCQkJCTJEODEwNENCMUJFQzEzRTcwMDIwREE0
NiAvKiBGaW5kSW5QYWdlLm1tICovLAogCQkJCTUxMjQyQ0Q0MjM3NEU2MUUwMEVFRDlDMSAvKiBG
aW5kSW5QYWdlQVBJLm1tICovLAogCQkJCTExODE1MzQ3MjIwOEJBREYwMEIyQ0NEMiAvKiBGaXJz
dFZpc3VhbGx5Tm9uRW1wdHlNaWxlc3RvbmUubW0gKi8sCkBAIC0zNDc4LDYgKzM0ODUsNyBAQAog
CQkJCTJFOTJCOEY4MjE2NDkwRUEwMDVCNjRGMCAvKiBGb250QXR0cmlidXRlcy5tbSAqLywKIAkJ
CQlGNEZBMjgyOTI0Q0QwMTI3MDA2MThBNDYgLyogRm9ybVZhbGlkYXRpb24ubW0gKi8sCiAJCQkJ
NUNCNUIzQkQxRkZDNTE3RTAwQzI3QkIwIC8qIEZyYW1lSGFuZGxlU2VyaWFsaXphdGlvbi5tbSAq
LywKKwkJCQk1MTgxOUYyOTI2RUFDOTgyMDBFNDczNzUgLyogRlRQLm1tICovLAogCQkJCUNEQ0Y3
OEE3MjQ0QTJFREIwMDQ4MDMxMSAvKiBGdWxsc2NyZWVuQWxlcnQubW0gKi8sCiAJCQkJQ0Q3OEUx
MUExREI3RUEzNjAwMTRBMkRFIC8qIEZ1bGxzY3JlZW5EZWxlZ2F0ZS5tbSAqLywKIAkJCQkzRjFC
NTI2ODFEM0Q3MTI5MDA4RDYwQzQgLyogRnVsbHNjcmVlbkxheW91dENvbnN0cmFpbnRzLm1tICov
LApAQCAtMzY1NSw2ICszNjYzLDcgQEAKIAkJCQkzNzBDRTIyOTFGNTczNDM0MDBFNzQxMEIgLyog
V0tDb250ZW50Vmlld1RhcmdldEZvckFjdGlvbi5tbSAqLywKIAkJCQk1MUQxMjQ5NzFFNzYzQUY4
MDAyQjI4MjAgLyogV0tIVFRQQ29va2llU3RvcmUubW0gKi8sCiAJCQkJOTlCNEY5QzUyNEVERUQ5
NjAwMDIyQjgyIC8qIFdLSW5zcGVjdG9yRGVsZWdhdGUubW0gKi8sCisJCQkJOTlFMjg0NjMyNkY5
MUY3RjAwMDNGMUZBIC8qIFdLSW5zcGVjdG9yRXh0ZW5zaW9uRGVsZWdhdGUubW0gKi8sCiAJCQkJ
OTk5QjdFRTIyNTUxQzYzQjAwRjQ1MEE0IC8qIFdLSW5zcGVjdG9yRXh0ZW5zaW9uSG9zdC5tbSAq
LywKIAkJCQlBNUE3MjlGMDFGNjIyQTlBMDBERTVBMjggLyogV0tOYXZpZ2F0aW9uUmVzcG9uc2Uu
bW0gKi8sCiAJCQkJREY0QjI3MzgyMUE0NzcyNzAwOUJEMUNBIC8qIFdLTlNEaWN0aW9uYXJ5RW1w
dHlEaWN0aW9uYXJ5Q3Jhc2gubW0gKi8sCkBAIC00MDg3LDYgKzQwOTYsOCBAQAogCQkJCTkzQTI3
NEExMjUyMTYzRDYwMEExQjZENCAvKiBJbmRleFVwZ3JhZGVXaXRoTXVsdGlwbGVJbmRpY2VzLnNx
bGl0ZTMgKi8sCiAJCQkJOTNBMjc0QTQyNTIyNDFEMDAwQTFCNkQ0IC8qIEluZGV4VXBncmFkZVdp
dGhNdWx0aXBsZUluZGljZXNIYXZlU2FtZUlELnNxbGl0ZTMgKi8sCiAJCQkJMkVGRjA2Q0MxRDhB
NDI5MTAwMDRCQjMwIC8qIGlucHV0LWZpZWxkLWluLXNjcm9sbGFibGUtZG9jdW1lbnQuaHRtbCAq
LywKKwkJCQk5OUUyODQ2NzI2Rjk0MTNCMDAwM0YxRkEgLyogSW5zcGVjdG9yRXh0ZW5zaW9uLWJh
c2ljLXRhYi5odG1sICovLAorCQkJCTk5RTI4NDY1MjZGOTNENzYwMDAzRjFGQSAvKiBJbnNwZWN0
b3JFeHRlbnNpb24tVGFiSWNvbi0zMHgzMC5wbmcgKi8sCiAJCQkJOTM3QTZDODgyNDM1N0JGMzAw
QzNBNkIwIC8qIEtpbGxXZWJQcm9jZXNzV2l0aE9wZW5Db25uZWN0aW9uLTEuaHRtbCAqLywKIAkJ
CQk5MzdBNkM4OTI0MzU3QkYzMDBDM0E2QjAgLyogS2lsbFdlYlByb2Nlc3NXaXRoT3BlbkNvbm5l
Y3Rpb24tMi5odG1sICovLAogCQkJCUY0NTM4RUYwMUU4NDZCNDEwMEI1Qzk1MyAvKiBsYXJnZS1y
ZWQtc3F1YXJlLnBuZyAqLywKQEAgLTU1MzcsNiArNTU0OCw3IEBACiAJCQkJN0NDRTdFQzAxQTQx
MUE3RTAwNDQ3QzRDIC8qIEZyYWdtZW50TmF2aWdhdGlvbi5tbSBpbiBTb3VyY2VzICovLAogCQkJ
CTdDQ0U3RUY2MUE0MTFBRTYwMDQ0N0M0QyAvKiBGcmFtZU1JTUVUeXBlSFRNTC5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQk3Q0NFN0VGNzFBNDExQUU2MDA0NDdDNEMgLyogRnJhbWVNSU1FVHlwZVBO
Ry5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk1MTgxOUYyQTI2RUFDOTgzMDBFNDczNzUgLyogRlRQ
Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0RDRjc4QTgyNDRBMzJGNzAwNDgwMzExIC8qIEZ1bGxz
Y3JlZW5BbGVydC5tbSBpbiBTb3VyY2VzICovLAogCQkJCUNENzhFMTFEMURCN0VBNjYwMDE0QTJE
RSAvKiBGdWxsc2NyZWVuRGVsZWdhdGUubW0gaW4gU291cmNlcyAqLywKIAkJCQlDREIyMTNCRDI0
RUY1MjI4MDBGREUzMDEgLyogRnVsbHNjcmVlbkZvY3VzLm1tIGluIFNvdXJjZXMgKi8sCkBAIC01
Nzk0LDcgKzU4MDYsNiBAQAogCQkJCTdDQ0U3RjE0MUE0MTFBRTYwMDQ0N0M0QyAvKiBTaG91bGRL
ZWVwQ3VycmVudEJhY2tGb3J3YXJkTGlzdEl0ZW1Jbkxpc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMzdCQ0E2MUMxQjU5NkJBOTAwMjAxMkNBIC8qIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNJbk5l
d1dpbmRvd0FjdGlvbnMubW0gaW4gU291cmNlcyAqLywKIAkJCQk3QzgzRTBDNTFEMEE2NTQ2MDBG
RUJDRjMgLyogU2hyaW5rVG9GaXQubW0gaW4gU291cmNlcyAqLywKLQkJCQk1MTgxOUYyQTI2RUFD
OTgzMDBFNDczNzUgLyogRlRQLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdFQ0QxQTQxMUE3
RTAwNDQ3QzRDIC8qIFNpbXBsaWZ5TWFya3VwLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQzE0OUQ1
NTAyNDJFOThERjAwM0VCQjEyIC8qIFNsZWVwRGlzYWJsZXIubW0gaW4gU291cmNlcyAqLywKIAkJ
CQkyREZGN0I2RDFEQTQ4N0FGMDA4MTQ2MTQgLyogU25hcHNob3RTdG9yZS5tbSBpbiBTb3VyY2Vz
ICovLApAQCAtNTkzMiw2ICs1OTQzLDcgQEAKIAkJCQk1MUQxMjQ5ODFFNzYzQjAyMDAyQjI4MjAg
LyogV0tIVFRQQ29va2llU3RvcmUubW0gaW4gU291cmNlcyAqLywKIAkJCQk3Q0NFN0YxRDFBNDEx
QUU2MDA0NDdDNEMgLyogV0tJbWFnZUNyZWF0ZUNHSW1hZ2VDcmFzaC5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQk5OUI0RjlDNjI0RURFRDk3MDAwMjJCODIgLyogV0tJbnNwZWN0b3JEZWxlZ2F0ZS5t
bSBpbiBTb3VyY2VzICovLAorCQkJCTk5RTI4NDY0MjZGOTFGN0YwMDAzRjFGQSAvKiBXS0luc3Bl
Y3RvckV4dGVuc2lvbkRlbGVnYXRlLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJOTk5QjdFRTMyNTUx
QzYzQjAwRjQ1MEE0IC8qIFdLSW5zcGVjdG9yRXh0ZW5zaW9uSG9zdC5tbSBpbiBTb3VyY2VzICov
LAogCQkJCUE1QTcyOUYxMUY2MjJBQTcwMERFNUEyOCAvKiBXS05hdmlnYXRpb25SZXNwb25zZS5t
bSBpbiBTb3VyY2VzICovLAogCQkJCURGNEIyNzM5MjFBNDc3MjgwMDlCRDFDQSAvKiBXS05TRGlj
dGlvbmFyeUVtcHR5RGljdGlvbmFyeUNyYXNoLm1tIGluIFNvdXJjZXMgKi8sCkBAIC02MDE0LDYg
KzYwMjYsNyBAQAogCQkJCTVDNDI1OTQ2MjI2NkE2OEEwMDM5QUE3QSAvKiBCYXNpY1Byb3Bvc2Vk
Q3JlZGVudGlhbFBsdWdJbi5tbSBpbiBTb3VyY2VzICovLAogCQkJCTM3NEI3QTYxMURGMzcxQ0Yw
MEFDQ0I2QyAvKiBCdW5kbGVFZGl0aW5nRGVsZWdhdGVQbHVnSW4ubW0gaW4gU291cmNlcyAqLywK
IAkJCQk3QTg5QkI2ODIzMzE2NDNBMDA0MkNCMUUgLyogQnVuZGxlRm9ybURlbGVnYXRlUGx1Z0lu
Lm1tIGluIFNvdXJjZXMgKi8sCisJCQkJNTE3NUM3QTIyNkY4NzYyMzAwMDNBRjVDIC8qIEJ1bmRs
ZVBhZ2VDb25zb2xlTWVzc2FnZS5tbSBpbiBTb3VyY2VzICovLAogCQkJCUExM0VCQkIwMUI4NzQz
NkYwMDA5NzExMCAvKiBCdW5kbGVQYXJhbWV0ZXJzUGx1Z0luLm1tIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMzdBNzA5QUYxRTNFQTk3RTAwQ0E1OTY5IC8qIEJ1bmRsZVJhbmdlSGFuZGxlUGx1Z0luLm1t
IGluIFNvdXJjZXMgKi8sCiAJCQkJNUM3NTcxNjEyMjEyNEM1MjAwQjlFNUFDIC8qIEJ1bmRsZVJl
dGFpblBhZ2VQbHVnSW4ubW0gaW4gU291cmNlcyAqLywKQEAgLTYwMzEsNyArNjA0NCw2IEBACiAJ
CQkJMkQzQ0EzQTgyMjFERjRCNDAwODhFODAzIC8qIFBhZ2VPdmVybGF5UGx1Z2luLm1tIGluIFNv
dXJjZXMgKi8sCiAJCQkJRjQ0QzdBMDAyMEY5RUVCRjAwMTQ0NzhDIC8qIFBhcnNlcllpZWxkVG9r
ZW5QbHVnSW4ubW0gaW4gU291cmNlcyAqLywKIAkJCQlBMTNFQkJBQjFCODc0MzQ2MDAwOTcxMTAg
LyogUGxhdGZvcm1VdGlsaXRpZXNDb2NvYS5tbSBpbiBTb3VyY2VzICovLAotCQkJCTUxNzVDN0Ey
MjZGODc2MjMwMDAzQUY1QyAvKiBCdW5kbGVQYWdlQ29uc29sZU1lc3NhZ2UubW0gaW4gU291cmNl
cyAqLywKIAkJCQkxQTRGODFDRjFCREZGRDUzMDA0RTY3MkUgLyogUmVtb3RlT2JqZWN0UmVnaXN0
cnlQbHVnSW4ubW0gaW4gU291cmNlcyAqLywKIAkJCQlBMTJEREMwMjFFODM3QzI0MDBDRjZDQUUg
LyogUmVuZGVyZWRJbWFnZVdpdGhPcHRpb25zUGx1Z0luLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJ
NTI0NTE3ODcyMUI5RjU3QjAwODJDQjM0IC8qIFJlbmRlcmluZ1Byb2dyZXNzUGx1Z0luLm1tIGlu
IFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL0luc3BlY3RvckV4dGVuc2lvbi1UYWJJY29uLTMweDMwLnBuZyBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvSW5zcGVjdG9yRXh0ZW5zaW9uLVRhYkljb24tMzB4
MzAucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjYyNDNmMGYxMjk2ZWIxOTJlNWUyYzc5ZmI4NTA5NGE1ZDI1YmUz
NTkKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDM3ODAKemNtVjsjNG08SVFQKTxoOzNLfExrMDAw
ZTFOSkxUcTAwMTVVMDAxNWsxXkBzNllvSyFCMDAwaClOa2w8WmNtZF91CnpaJXxkfGZ5ZVJoYkkj
IyV8OHYxQkRqfTgtTGtTXnhPOStkR1FrTXtGMzg5MX50WXMtPnR4YylKNWJMSHsqRHsyLQp6dTEj
R19EOWMhdmJ1SHNNbHV9QXJoZj9hR2J5PyREWUZjVjI+cmk3VHkzfHopYyk0NklhUEt7UGolUnFg
JXJiODYKenpVJVltMUo4Tj57Qzt6SSE1cEY5OH5vNz4jUT87OyE1PXp1MzxNYlY4QXshVEF8QXM3
KyY5I0Uzfnc1U09BT1RsCnozPUxxQWhhNCp9Ul5rc0UpZHJIP0ZrLU4ldEtvZX0mSDRRR1orO1FK
PmlNaEtxYzZoMUMqRXYxXzhRIXtiTkh3Swp6Xy1Fakk+S35wa0pvZWhMa0xtTUFVdV51OXpWNGV9
ZUN5eCFlR1R0X1g7d2RIPD1wJTRwXysjciFmNV9+ZSMxQCEKelZLUzc8dzxkbzVHbXUqcEo/JHVr
aFc4dyFAKVRAJiFfZiU8anlPWW1zaUV6THE0a2lWRFAxKUtLcEBmM2Y2PnRRCnpDX3U+VkpxYGJI
YyZfVkM0bTNSVCpXZFo+WmE4LXUwN0M3Qz5YSVNlfEYxV14oTGZ3bytneEBDOUJFR25UYl9wMgp6
diY2Ykc7SyMybFohKEg1PVVeMTxofXN2YDFnVWFMVFpST0dJLWg7PykzQE03VXcldGZIR0M/TmZC
MTlmQWJXRF8Kej4hMDJPRFF6Rl4kWiRjX0s1TGJ9NH15SUZAPkgtfktpOEZeb1koSlpkSFRnbWBu
X2Rgb0BtIXx0bUx7cz1qITdACnpnPFNeWGtnTkglOSQyQHthJkZyZlY4Rkk/SWlkI3Nhd08xPDlo
aTFwaHs8JCZwIW1CbFNTeXlhQ3BUVW1gTzNTSAp6dm9XKmYpNHplXy1KNmJOZD0yN24jdk9ZNngw
K1l1U35tUn1Ic3ZPXlhNN2JoVFFlR3FLTUY2OHpURVZjVSUpNGUKelVSYkQ3VkN9R1RANDkldjkh
TGtLQldqa0xebjE1YFZOSXI8PEYlZnxkT2c9bFBENU18U3kodHRgSVVQaHN6KzZsCnpVeEQ3ZzI8
KEA7O25+eFJSYTg7fSYpKUwlVyVva1d1VTw7NGA4TEd3ZF87UVUxfXB+WDM3MTIjbUp1LXVwPVFF
TAp6N2Y/KVdMP04mcWNaM3JOcyZVR0dVXm88QDh8WWM/Mzc1ZiEwciRubnt1MnNYM2ZGejxgezN6
JkRsWXBwUGBTYGMKejNDUGBuOXo5MyREe2B4enQ4ITJETytEdkk/JSVnP3dTaW1fNHJrODZIX3Q4
fG1zO1NOcH5aSGk9bkV5Oz1MXz47CnolWkh3dj1XQWhNeXtNLWI3OHx1PCthUjFKWUhlP1RGcDEm
bFBMT2tpLVE1UGxGT3R7byl2T2dzPnQ1OX4zJHVITgp6PUZkZjRiaUhPeGMtbUc1dSVzdz9BbkYl
MyhocmBUdl5DR3l6e2VBfEdgQDVtc1B5bHIxZi1TKWxiJFBjUFAocT0KelQqLVozanxVZikrVHJV
aiRxQmpKZzk4eU15antzKzNqayNKSiF4QlpMaF9lNF4/SjYkTE9rUEtnVX1IUSVAO3UkCno1dHBL
X2dLfHdjXiYqTzBCKiRpZm9GRnt3dUlXKnZqQ0pjbHN5N3JLc2Q/UilYMGtMRHlIKFJFRGVsKWJG
WDdZQQp6cD5SM1lkPkkoYD1RMGtEbW5Rc1peSlZaZnJkLT40MTtDI1M1Um5vWGdHdyFSZ2Nvd1J1
az82TztYKHUxNFVRVTkKei1ka3FAeVF6X0JTOTs4bGB3REZKWV84ZVg0b2w3V3I3PSk8USpRWXIk
WFF5Xi00TmpzT0tVRW5ZanNiOWt9aDBwCnp0M2wzfCstcHlPbHFjTm9VSnp4NWwzVHBKd2hlPyEo
JF51WlFtd3ZFRUotS3liSHBXYUV+KitSNTRLcjgxXjVeMAp6Xm17a2dyMnB5QG92P1AkUj0/SEAq
YUpJKFgtQ2ErSFIhb2xkS2tTe0RKJkE8OzdwQUJXNGt+ZUg9RDg9MDNyYFMKej8jTUYtQD84KWY3
Q213V3MzVDtWZWdhQ1NJQXVRJHJlWlBiM1RzWV5pUmRZYSpkJVU2N2xCZnVTcGpsN2xoT0dnCnpT
O2JfRzJTbUlmbFR3dkZGSyRWKCtCIX03eFZ9JEokT0hPMFZwUDdacERSdkBvJVU4QkReI29CRH5n
dDhxIXZpRwp6WmR3MlFNU3plYjRkfCg5SD8/SW85R241bU0ha3A4WW44KEs3SDZJSCNMS1MkU29W
Tih6MDxuUjNYZHN8cSRFRUUKekAmSGNESXh5OVZZUCVtSXdKNDZ1bm55Jmh2bFVGNiMyTSFqTTh0
NSQ9PnRVKWVhX1AkNH50Jk1FfDU7czxJb0ZfCnpWYzA3WTk2TDRwcSUrUFE7RVl1NF5ueTRlUGRF
ZW1iR2dAZlI0PVR3SjljWVVPSEl+SnokTlhvJGdyWEZCVTRZVgp6MGpKZnVlIzBkSXV4NWFCemg9
a0ZlfiFgWCstaCZRM0ZJYncpcExGVGApPkhpaUFWQ0Q5MHFYI3BFVjFWMnZRd0sKenoqMHl9UX5f
OT45Q0dhaWIwTGxQQlZnKk0oUktfWCtRbmc4ODdMSlR2YG0zaUFuTDckSzsoKSMlWFpDSFZPVEh2
CnpebXpgN00xN3EmRU9wc1Jma3llZD9XbkZ8dmMzJSpHTXttfWZmYEZlYlErTVYkV2lNN3BTYS1N
MSZgIT9xK18hZwp6MDMxYEdvWUc5cnAyWDxZeWpvIXNOSitMZ2xDRllVV1kyflRkKURsSmQ9a1dZ
SEUyJSp4dEExWTcpLV5LTXRMQXwKem1JfGo9R2V1TjdZQll6Ync3dj5UR3YkIy1MRnk3XmsoSFlE
NnFeOWlOMERnPXM1R1ApKlMrfk5WKWI+RGl2clVICnpwaSlWKV8mYClmQ09MPElpcFdgNEVsX0dJ
aWdeYENrJFlsMXBlfjdpKkgmMGx5YGt7UTB6RWFqaih+N08pWDY3Uwp6M007RD5aVURsTEJRYitP
b1RDWEdMMzheMGJ3SDRTVjtyUGpWeDIqZGklNH0yWGZfSXV5JlJNaXErN2N7ZXBgNGYKekwhZ3dB
OHREYk9tNlY3cEFiY2RyMzgwPjJsZEttP0diQWF6UG80bCRrZHklK1JxaW50Z1lkfDIrdzRIUCgm
b0k1Cnp7YC07V0QpaT8/WWw7RTQpVmJ5YTs4UjstdTdTRDlrK3lMVGh5JkxfQVBpQ1lkSmgwbXpl
LV5NKW9CfHJiZC1hRAp6NSQ2dCYpe0JJdy05UXFPXlJsdGlRRGJROTB+RH1LOEFjYD5uaHFQIWx7
OCU+Y19SPUhRWm5FUW1QJmVJTm9gUnwKejBVKis2V0hNaGZ2PjhlY3lKMXc4VlJWTSFuaFBLanF5
KURGVG9hOUp5N2tsJChgbzNFOXs3KWsrNXE4ZlRWT2Z8CnopRnA9eD02d3M5NWhXbDMjNzE+TklG
Qmh1RHVudE92M1dIMnQ1Kzx3bnkpZiE/JCllUmhmUGloX0FzSiFMVEhMbgp6YE03MnhTTEckbVpS
JDtGQ29IeXZVWD9DRlhlNSo8a0FrYCpHI3dFT2owQWhrSjMkPXwpbSFwXztaVWAkN31QN0YKentm
PXMyQnk9V2Y3Y2RucmtLUEJ3Tmh2WXF1ck5NOVptSSFRZm9QfVIwOzE0KzBIX0M2RTM4TH53S0Ez
cjthU0BPCnpfLSpJWi1hcndFWnNNRyRBa0BJOXkja2hjPjlXU2FxTU1WSkl0V30+K2FmMW4oWnxW
JUdGYU0xeVctUkFQYGwoIwp6TyhvbmE0cio+KSVIY0crV3g5Y1ZPQTAtKGJYO0V2TDFgJmhfKDB2
Wj11PHFKWkdyMSVIKmooPio0NkBhRSVpRDIKemZ3NTN+KU54Pj0yKU5GfT97QHotYiNWZzFsTXBv
c3Atb148e0I9QT11a2RQeF9yUCpsPGp9aVRQeyhYX2FOVTJTCnpYP2oxMTMjOGRjQUBsPCM/MGFH
MTNAdyZEO1A8bVhRbiF4Uk8oUVUwIXxNX0duJSZfPiRxTjNzVT5Pfm40U0A7dQp6MDR4anljQiUo
OzdqRUEoLXJ1MGxgelFReSlXTzJ3ZTdFYHIxU2FRZWNeI0h8e1BpTG9MWTtvVSh5aE8lZyleMmUK
elU/T3pabUg/IVEzLSVHMUlEQ0MjYG1+LUo5UHpNUjBoYTZVSSMrdEZRYUdGa2JGWm9PS2xtUH52
ejhMQDdSKzc9CnpKX3tlXytebjZjMUdOYUp3R3NtNylLK3NnJXImYyhyZ0hHc3MwQikkcmFpYnJt
XjVQK3twNCR3XygjPzRGeFRjIQp6UTtSZjVlV1I0PCZjKjZfK3ZaTnteV0g5UiQtUTtBeWwoT31D
JWtyNWJBQyllOFRANSlFb3ViPmUxWT83RCtHKHcKekVJQWVhdE1vVFhjYlpgS2lubX5TVHUlK1Ek
NilSeVYxTUB5Rj8heyFfSiomK1RMWjFMemM+enxRcSRIOzRHP1pNCnplLWA+JWYxM1d3Vkd6YVl6
UV90I3t1NCRjTjVQakQtbDVGR3RnXlZERD0tdGdGcnt3UD8zKjdAPDF7PHd5IVNrSgp6dy1VfGlF
MzxMeEohZ2AyWEt1fDVwcW48K3EzV0tUPkM/U2lHX3pqYXNNJFZpUWQ0MHIhSSE2JiFAfkNFRXNW
bHEKenJ9Ukc4O045Q2xwODhvbWchVndoRGF7ZnY5bGRubXRzIVhhKV9XTWVSdyshY0wxK3JSb3gk
eUlKYGReelF6YkZLCnpFNCEyNzlmT35veEA+KmwyVTI4c0twdXl7dkJtVEIhUUUjNkg4bCZTeDZV
UTBDWVc7SDRYYnsqYjhOTyZven5ubgp6P0Z+PUNSTE5BUVlTPyRycmFRYXpgUUlocFg7byk2aG87
PUJVLVFLRFJASjF4eHd9WDhiQTVxOEFOe2I8QlNuJTIKejdwfFVyP21hSnoraSR5V25JTz1yQ25h
WClEVlUjWmN5NlZ+e2s9ZnBlO3dnK2M9SHA3aFI+YWIhX1dQX3JfQnU8CnpXMn1uNyt5NkhFdi1S
TCFFN3YqYEEtKHpXOy1xOSlaMUsweTJjZkZANzxEVElJXzVKdTJJZF5Vd2h2NkBeVVZ4ewp6YT83
OGtVSXlAYzBpQGllNXEmO2xhSClmPFVeKlRjIzAlIXVLKD5DNGVOKFc3QSZAR1J7WnpyJi1rKlBk
JW5Ffl8Kejh5cCFyMzZiOWNIMylKbTFlNG1fZTswOyZfM1F2Zmp+I3tfZHFDbHAxKStFdG50U2dY
VXJ2WG88fXhPcSZaS01rCnpNe0BOdUwqMER1KVc4NXRIJFBNRVpHdW1CSnYpK2Q4XlJZQ3lKLU9i
YWkzUWAzNHMhQ0I3b0hHLUc+KU07YW52bgp6MFExRUZOXis8U0ZJWU9tVmBQQT5CSFliTWttSUNS
QGomUTZXQ3BrM1R6M0RERkVfejJwRStNVXY9MXkheCtzOTwKemJPO0BMRlowP0MmfmlTPkhlaGUp
NnZudnVkdyVneWViOUJLV0FFSl5GbX5tR3ZvSE1zPHxwK0Y9PD4mdDJqfURaCnpad3c4PEg9YipK
cSUjZ2Fffkt+VyVeV1p2PWE0dUJAfTYqcXJ+JWEpTit1T1RlWmRzV24qRV8keTVWQmd0an4pWQp6
eG1JNSUkQ3o5N2VJSERXTUA8JlB4ODhaQHlXYyt3WFhXIzhgYUtLJWJkZC1DaSQ+ODg3NUx6WEZh
MngoSFpYRDsKenhnWXF3XzVtWm9LIyE3PlIoZFJ8NUd0aypLWFQkfWMlfUI4TjdaUWZSTnAmSz5M
K0VsPXRmTyNFQzJTI1JyVDU3Cno5a1hZRHB7Z1phKXdfUUFwe2pvVllIaF5fTFJFSzNVK0JAQEBw
PyZAS0EmSGdTI1dOUHN5Xkt3SEtwJU1YI0BTNwp6JSolJGtSaU5LZmtPcWYwb1k/JkFLR0AtTDYj
e14wVSY7QV5vKTcoKilAJiUzIXdjaFlgZzJQbV9fcEk7e2BRfD8KemVvQWkySk9PaFgwV3xqK2BW
XzszN3l3IXAwZjxaajBMIT9jP0dUMnVoU24rdyllaH43KmFnMWheYEhHJnN7UyRmCnpZJWxrSnJ1
Nz4jYD1HKVlLbTVUVDskNE9qRzRTTkJ6cC16d2hzVnBsX08xRiZ1KSVwYF5XYWF4ZEFzcV58TmJY
MQp6V2pEPyhlfSkjJkgzZFBSY2VhQVFFX04zNWVVQiE5YWdLNFdxMnp3WjVBaEZRX3lIcj1LOyM9
clZNQz9NRnlmLTIKdURnUzxyZDFJWmlAQlZZaDw+QUthZjZ7Kn08OWA1SlF6czdiIzNybygwMDAw
PE1OVU1uTFNUYVNfQnNPcQoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9JbnNwZWN0b3JFeHRlbnNpb24tYmFz
aWMtdGFiLmh0bWwgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0luc3Bl
Y3RvckV4dGVuc2lvbi1iYXNpYy10YWIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mZTg4YWQwZTlkZmQ0YmI3
ODQ2ODIxMjgxMDUxNDE2YWI3MGYwYTM1Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9JbnNwZWN0b3JFeHRlbnNpb24tYmFzaWMtdGFiLmh0
bWwKQEAgLTAsMCArMSw2IEBACis8aHRtbD4KKzxib2R5PgorPGgxPlRoaXMgaXMgYSB0ZXN0IGV4
dGVuc2lvbi48L2gxPgorPHA+SW4gYSBub3JtYWwgZXh0ZW5zaW9uLCB0aGlzIGFyZWEgd291bGQg
c2hvdyB0aGUgZXh0ZW5zaW9uJ3MgdXNlciBpbnRlcmZhY2UuPC9wPgorPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS0lu
c3BlY3RvckV4dGVuc2lvbkRlbGVnYXRlLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9XS0luc3BlY3RvckV4dGVuc2lvbkRlbGVnYXRlLm1tCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY5
NDY0YmI2ZGNhZjE3Nzk2ODYyNjUwNTliNTNmNzAzN2U5OGM3NjUKLS0tIC9kZXYvbnVsbAorKysg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLSW5zcGVjdG9yRXh0ZW5z
aW9uRGVsZWdhdGUubW0KQEAgLTAsMCArMSwxNTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJj
b25maWcuaCIKKworI2ltcG9ydCAiVGVzdC5oIgorI2ltcG9ydCAiVXRpbGl0aWVzLmgiCisjaW1w
b3J0IDxXZWJLaXQvV0tQcmVmZXJlbmNlc1ByaXZhdGUuaD4KKyNpbXBvcnQgPFdlYktpdC9XS1dl
YlZpZXdQcml2YXRlLmg+CisjaW1wb3J0IDxXZWJLaXQvX1dLSW5zcGVjdG9yLmg+CisjaW1wb3J0
IDxXZWJLaXQvX1dLSW5zcGVjdG9yRXh0ZW5zaW9uLmg+CisjaW1wb3J0IDxXZWJLaXQvX1dLSW5z
cGVjdG9yRXh0ZW5zaW9uRGVsZWdhdGUuaD4KKyNpbXBvcnQgPFdlYktpdC9fV0tJbnNwZWN0b3JQ
cml2YXRlRm9yVGVzdGluZy5oPgorI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgorCisjaWYgRU5B
QkxFKElOU1BFQ1RPUl9FWFRFTlNJT05TKQorCitzdGF0aWMgYm9vbCBkaWRBdHRhY2hMb2NhbElu
c3BlY3RvckNhbGxlZCA9IGZhbHNlOworc3RhdGljIGJvb2wgZGlkU2hvd0V4dGVuc2lvblRhYldh
c0NhbGxlZCA9IGZhbHNlOworc3RhdGljIGJvb2wgZGlkSGlkZUV4dGVuc2lvblRhYldhc0NhbGxl
ZCA9IGZhbHNlOworc3RhdGljIGJvb2wgcGVuZGluZ0NhbGxiYWNrV2FzQ2FsbGVkID0gZmFsc2U7
CitzdGF0aWMgUmV0YWluUHRyPF9XS0luc3BlY3RvckV4dGVuc2lvbj4gc2hhcmVkSW5zcGVjdG9y
RXh0ZW5zaW9uOworc3RhdGljIFJldGFpblB0cjxOU1N0cmluZz4gc2hhcmVkRXh0ZW5zaW9uVGFi
SWRlbnRpZmllcjsKKworc3RhdGljIHZvaWQgcmVzZXRHbG9iYWxTdGF0ZSgpCit7CisgICAgZGlk
QXR0YWNoTG9jYWxJbnNwZWN0b3JDYWxsZWQgPSBmYWxzZTsKKyAgICBkaWRTaG93RXh0ZW5zaW9u
VGFiV2FzQ2FsbGVkID0gZmFsc2U7CisgICAgZGlkSGlkZUV4dGVuc2lvblRhYldhc0NhbGxlZCA9
IGZhbHNlOworICAgIHBlbmRpbmdDYWxsYmFja1dhc0NhbGxlZCA9IGZhbHNlOworfQorCitAaW50
ZXJmYWNlIFVJRGVsZWdhdGVGb3JUZXN0aW5nSW5zcGVjdG9yRXh0ZW5zaW9uRGVsZWdhdGUgOiBO
U09iamVjdCA8V0tVSURlbGVnYXRlPgorQGVuZAorCitAaW1wbGVtZW50YXRpb24gVUlEZWxlZ2F0
ZUZvclRlc3RpbmdJbnNwZWN0b3JFeHRlbnNpb25EZWxlZ2F0ZQorCistICh2b2lkKV93ZWJWaWV3
OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRpZEF0dGFjaExvY2FsSW5zcGVjdG9yOihfV0tJbnNwZWN0
b3IgKilpbnNwZWN0b3IKK3sKKyAgICBFWFBFQ1RfRVEod2ViVmlldy5faW5zcGVjdG9yLCBpbnNw
ZWN0b3IpOworICAgIGRpZEF0dGFjaExvY2FsSW5zcGVjdG9yQ2FsbGVkID0gdHJ1ZTsKK30KKwor
QGVuZAorCisKK0BpbnRlcmZhY2UgSW5zcGVjdG9yRXh0ZW5zaW9uRGVsZWdhdGVGb3JUZXN0aW5n
IDogTlNPYmplY3QgPF9XS0luc3BlY3RvckV4dGVuc2lvbkRlbGVnYXRlPgorQGVuZAorCitAaW1w
bGVtZW50YXRpb24gSW5zcGVjdG9yRXh0ZW5zaW9uRGVsZWdhdGVGb3JUZXN0aW5nIHsKK30KKwor
LSAodm9pZClpbnNwZWN0b3JFeHRlbnNpb246KF9XS0luc3BlY3RvckV4dGVuc2lvbiAqKWV4dGVu
c2lvbiBkaWRTaG93VGFiV2l0aElkZW50aWZpZXI6KE5TU3RyaW5nICopdGFiSWRlbnRpZmllcgor
eworICAgIGRpZFNob3dFeHRlbnNpb25UYWJXYXNDYWxsZWQgPSB0cnVlOworfQorCistICh2b2lk
KWluc3BlY3RvckV4dGVuc2lvbjooX1dLSW5zcGVjdG9yRXh0ZW5zaW9uICopZXh0ZW5zaW9uIGRp
ZEhpZGVUYWJXaXRoSWRlbnRpZmllcjooTlNTdHJpbmcgKil0YWJJZGVudGlmaWVyCit7CisgICAg
ZGlkSGlkZUV4dGVuc2lvblRhYldhc0NhbGxlZCA9IHRydWU7Cit9CisKK0BlbmQKKworVEVTVChX
S0luc3BlY3RvckV4dGVuc2lvbkRlbGVnYXRlLCBTaG93QW5kSGlkZVRhYkNhbGxiYWNrcykKK3sK
KyAgICByZXNldEdsb2JhbFN0YXRlKCk7CisKKyAgICBhdXRvIHdlYlZpZXdDb25maWd1cmF0aW9u
ID0gYWRvcHROUyhbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBuZXddKTsKKyAgICB3ZWJWaWV3Q29u
ZmlndXJhdGlvbi5nZXQoKS5wcmVmZXJlbmNlcy5fZGV2ZWxvcGVyRXh0cmFzRW5hYmxlZCA9IFlF
UzsKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbV0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0
aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgODAwLCA2MDApIGNvbmZpZ3VyYXRpb246d2ViVmlld0Nv
bmZpZ3VyYXRpb24uZ2V0KCldKTsKKyAgICBhdXRvIHVpRGVsZWdhdGUgPSBhZG9wdE5TKFtVSURl
bGVnYXRlRm9yVGVzdGluZ0luc3BlY3RvckV4dGVuc2lvbkRlbGVnYXRlIG5ld10pOworCisgICAg
W3dlYlZpZXcgc2V0VUlEZWxlZ2F0ZTp1aURlbGVnYXRlLmdldCgpXTsKKyAgICBbd2ViVmlldyBs
b2FkSFRNTFN0cmluZzpAIjxoZWFkPjx0aXRsZT5UZXN0IHBhZ2UgdG8gYmUgaW5zcGVjdGVkPC90
aXRsZT48L2hlYWQ+PGJvZHk+PHA+RmlsbGVyIGNvbnRlbnQ8L3A+PC9ib2R5PiIgYmFzZVVSTDpb
TlNVUkwgVVJMV2l0aFN0cmluZzpAImh0dHA6Ly9leGFtcGxlLmNvbS8iXV07CisKKyAgICBbW3dl
YlZpZXcgX2luc3BlY3Rvcl0gc2hvd107CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZk
aWRBdHRhY2hMb2NhbEluc3BlY3RvckNhbGxlZCk7CisKKyAgICBhdXRvIGV4dGVuc2lvbklEID0g
W05TVVVJRCBVVUlEXS5VVUlEU3RyaW5nOworICAgIGF1dG8gZXh0ZW5zaW9uRGlzcGxheU5hbWUg
PSBAIkZpcnN0RXh0ZW5zaW9uIjsKKworICAgIC8vIFJlZ2lzdGVyIHRoZSB0ZXN0IGV4dGVuc2lv
bi4KKyAgICBwZW5kaW5nQ2FsbGJhY2tXYXNDYWxsZWQgPSBmYWxzZTsKKyAgICBbW3dlYlZpZXcg
X2luc3BlY3Rvcl0gcmVnaXN0ZXJFeHRlbnNpb25XaXRoSUQ6ZXh0ZW5zaW9uSUQgZGlzcGxheU5h
bWU6ZXh0ZW5zaW9uRGlzcGxheU5hbWUgY29tcGxldGlvbkhhbmRsZXI6XihOU0Vycm9yICogX051
bGxhYmxlIGVycm9yLCBfV0tJbnNwZWN0b3JFeHRlbnNpb24gKiBfTnVsbGFibGUgZXh0ZW5zaW9u
KSB7CisgICAgICAgIEVYUEVDVF9OVUxMKGVycm9yKTsKKyAgICAgICAgRVhQRUNUX05PVF9OVUxM
KGV4dGVuc2lvbik7CisgICAgICAgIHNoYXJlZEluc3BlY3RvckV4dGVuc2lvbiA9IGV4dGVuc2lv
bjsKKworICAgICAgICBwZW5kaW5nQ2FsbGJhY2tXYXNDYWxsZWQgPSB0cnVlOworICAgIH1dOwor
ICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcGVuZGluZ0NhbGxiYWNrV2FzQ2FsbGVkKTsK
KworICAgIGF1dG8gZXh0ZW5zaW9uRGVsZWdhdGUgPSBhZG9wdE5TKFtJbnNwZWN0b3JFeHRlbnNp
b25EZWxlZ2F0ZUZvclRlc3RpbmcgbmV3XSk7CisgICAgW3NoYXJlZEluc3BlY3RvckV4dGVuc2lv
biBzZXREZWxlZ2F0ZTpleHRlbnNpb25EZWxlZ2F0ZS5nZXQoKV07CisKKyAgICAvLyBDcmVhdGUg
YW4gZXh0ZW5zaW9uIHRhYi4KKyAgICBhdXRvIGljb25VUkwgPSBbW05TQnVuZGxlIG1haW5CdW5k
bGVdIFVSTEZvclJlc291cmNlOkAiSW5zcGVjdG9yRXh0ZW5zaW9uLVRhYkljb24tMzB4MzAiIHdp
dGhFeHRlbnNpb246QCJwbmciIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2Vz
Il07CisgICAgYXV0byBzb3VyY2VVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJl
c291cmNlOkAiSW5zcGVjdG9yRXh0ZW5zaW9uLWJhc2ljLXRhYiIgd2l0aEV4dGVuc2lvbjpAImh0
bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CisKKyAgICBwZW5k
aW5nQ2FsbGJhY2tXYXNDYWxsZWQgPSBmYWxzZTsKKyAgICBbc2hhcmVkSW5zcGVjdG9yRXh0ZW5z
aW9uIGNyZWF0ZVRhYldpdGhOYW1lOkAiRmlyc3RFeHRlbnNpb24tVGFiIiB0YWJJY29uVVJMOmlj
b25VUkwgc291cmNlVVJMOnNvdXJjZVVSTCBjb21wbGV0aW9uSGFuZGxlcjpeKE5TRXJyb3IgKiBf
TnVsbGFibGUgZXJyb3IsIE5TU3RyaW5nICogX051bGxhYmxlIGV4dGVuc2lvblRhYklkZW50aWZp
ZXIpIHsKKyAgICAgICAgRVhQRUNUX05VTEwoZXJyb3IpOworICAgICAgICBFWFBFQ1RfTk9UX05V
TEwoZXh0ZW5zaW9uVGFiSWRlbnRpZmllcik7CisgICAgICAgIHNoYXJlZEV4dGVuc2lvblRhYklk
ZW50aWZpZXIgPSBleHRlbnNpb25UYWJJZGVudGlmaWVyOworCisgICAgICAgIHBlbmRpbmdDYWxs
YmFja1dhc0NhbGxlZCA9IHRydWU7CisgICAgfV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6
cnVuKCZwZW5kaW5nQ2FsbGJhY2tXYXNDYWxsZWQpOworCisgICAgLy8gRm9yY2UgYSBrbm93biBu
b24tZXh0ZW5zaW9uIHRhYiB0byBiZSBzaG93biBiZWZvcmUgc2hvd2luZyB0aGUgZXh0ZW5zaW9u
IHRhYi4gT3RoZXJ3aXNlLAorICAgIC8vIGlmIHRoZSBleHRlbnNpb24gdGFiIHdhcyBhbHJlYWR5
IG9wZW4sIHRoZW4gdGhpcyB0ZXN0IHdvdWxkIGhhbmcgd2FpdGluZyBmb3IgYSBkaWRTaG93IGNh
bGxiYWNrLgorICAgIFtbd2ViVmlldyBfaW5zcGVjdG9yXSBzaG93Q29uc29sZV07CisKKyAgICBw
ZW5kaW5nQ2FsbGJhY2tXYXNDYWxsZWQgPSBmYWxzZTsKKyAgICBbW3dlYlZpZXcgX2luc3BlY3Rv
cl0gc2hvd0V4dGVuc2lvblRhYldpdGhJZGVudGlmaWVyOnNoYXJlZEV4dGVuc2lvblRhYklkZW50
aWZpZXIuZ2V0KCkgY29tcGxldGlvbkhhbmRsZXI6XihOU0Vycm9yICogX051bGxhYmxlIGVycm9y
KSB7CisgICAgICAgIEVYUEVDVF9OVUxMKGVycm9yKTsKKworICAgICAgICBwZW5kaW5nQ2FsbGJh
Y2tXYXNDYWxsZWQgPSB0cnVlOworICAgIH1dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1
bigmcGVuZGluZ0NhbGxiYWNrV2FzQ2FsbGVkKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpy
dW4oJmRpZFNob3dFeHRlbnNpb25UYWJXYXNDYWxsZWQpOworCisgICAgW1t3ZWJWaWV3IF9pbnNw
ZWN0b3JdIHNob3dDb25zb2xlXTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRpZEhp
ZGVFeHRlbnNpb25UYWJXYXNDYWxsZWQpOworCisgICAgLy8gVW5yZWdpc3RlciB0aGUgdGVzdCBl
eHRlbnNpb24uCisgICAgcGVuZGluZ0NhbGxiYWNrV2FzQ2FsbGVkID0gZmFsc2U7CisgICAgW1t3
ZWJWaWV3IF9pbnNwZWN0b3JdIHVucmVnaXN0ZXJFeHRlbnNpb246c2hhcmVkSW5zcGVjdG9yRXh0
ZW5zaW9uLmdldCgpIGNvbXBsZXRpb25IYW5kbGVyOl4oTlNFcnJvciAqIF9OdWxsYWJsZSBlcnJv
cikgeworICAgICAgICBFWFBFQ1RfTlVMTChlcnJvcik7CisKKyAgICAgICAgcGVuZGluZ0NhbGxi
YWNrV2FzQ2FsbGVkID0gdHJ1ZTsKKyAgICB9XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpy
dW4oJnBlbmRpbmdDYWxsYmFja1dhc0NhbGxlZCk7Cit9CisKKyNlbmRpZiAvLyBFTkFCTEUoSU5T
UEVDVE9SX0VYVEVOU0lPTlMpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>439505</attachid>
            <date>2021-09-28 12:17:15 -0700</date>
            <delta_ts>2021-09-28 14:28:16 -0700</delta_ts>
            <desc>Patch v1.5 (for landing)</desc>
            <filename>bug-230580-20210928121714.patch</filename>
            <type>text/plain</type>
            <size>43003</size>
            <attacher name="Blaze Burg">bburg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzMTg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwppbmRleCBm
OGVhOTA0Mzc1MDAwYWFiNjEwZTM0NDhmY2VmMDI2MDMwMWFhYjAwLi43NmMxNDI5YmE4ZDNhYTlj
YTIxZDNhYjk4MmVkNzYyOWJkOTQzNjI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMiBAQAorMjAyMS0wOS0yOCAgQkogQnVyZyAgPGJidXJnQGFwcGxlLmNvbT4KKworICAg
ICAgICBbQ29jb2FdIEFkZCBTUEkgdG8gc2VsZWN0IGEgdGFiIGNyZWF0ZWQgYnkgX1dLSW5zcGVj
dG9yRXh0ZW5zaW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMzA1ODAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgzMzcyODUxPgorCisgICAgICAg
IFJldmlld2VkIGJ5IERldmluIFJvdXNzby4KKworICAgICAgICBBZGQgYSBtZXRob2QgdG8gbG9v
ayB1cCBhIFdlYkluc3BlY3RvckV4dGVuc2lvblRhYkNvbnRlbnRWaWV3CisgICAgICAgIGJ5IGl0
cyBleHRlbnNpb25UYWJJRCBhbmQgdGhlbiBzaG93IGl0IHdpdGggV0kudGFiQnJvd3Nlci4KKwor
ICAgICAgICAqIFVzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvV2ViSW5zcGVjdG9yRXh0ZW5zaW9u
Q29udHJvbGxlci5qczoKKyAgICAgICAgKFdJLldlYkluc3BlY3RvckV4dGVuc2lvbkNvbnRyb2xs
ZXIucHJvdG90eXBlLnJlbG9hZEZvckV4dGVuc2lvbik6CisgICAgICAgIFJlbW92ZSBleHRyYSBu
ZXdsaW5lcy4KKyAgICAgICAgKFdJLldlYkluc3BlY3RvckV4dGVuc2lvbkNvbnRyb2xsZXIucHJv
dG90eXBlLnNob3dFeHRlbnNpb25UYWIpOiBBZGRlZC4KKworICAgICAgICAqIFVzZXJJbnRlcmZh
Y2UvUHJvdG9jb2wvSW5zcGVjdG9yRnJvbnRlbmRBUEkuanM6CisgICAgICAgIChJbnNwZWN0b3JG
cm9udGVuZEFQSS5zaG93RXh0ZW5zaW9uVGFiKTogQWRkZWQuCisKIDIwMjEtMDktMjMgIE15bGVz
IEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVj
dG9yIHN1cHBvcnQgZm9yIGZvbnQtcGFsZXR0ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBlZmQzMjlkNjk2M2JjYzdj
ZjI1OTAyMTM2MjIxODhiZjkxZDIxNjc1Li5iNWJiZTNlYjRiYjYzMTU2NGNlMzU3ZGQyZTc3MDM4
ODAxYzFmNGMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDIxLTA5LTI4ICBCSiBCdXJn
ICA8YmJ1cmdAYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gQWRkIFNQSSB0byBzZWxlY3Qg
YSB0YWIgY3JlYXRlZCBieSBfV0tJbnNwZWN0b3JFeHRlbnNpb24KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMDU4MAorICAgICAgICA8cmRhcjovL3By
b2JsZW0vODMzNzI4NTE+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGV2aW4gUm91c3NvLgorCisg
ICAgICAgIEFkZCBhIG5ldyBtZXRob2QgZm9yIHNlbGVjdGluZyBhbiBleHRlbnNpb24gdGFiIGlu
IFdlYkluc3BlY3RvclVJCisgICAgICAgIHRoYXQgd2FzIHByZXZpb3VzbHkgY3JlYXRlZCBieSB1
c2luZworICAgICAgICAtW19XS0luc3BlY3RvckV4dGVuc2lvbiBjcmVhdGVOZXdUYWI6dGFiSWNv
blVSTDpzb3VyY2VVUkw6Y29tcGxldGlvbkhhbmRsZXJdLgorCisgICAgICAgIFRoaXMgaXMgYSBz
dHJhaWdodGZvcndhcmQgcGx1bWJpbmcgZXhlcmNpc2UuIFRoZSBBUEkgdGVzdCB1c2VzIHRoZSBu
ZXcgbWV0aG9kCisgICAgICAgIHRvIHRlc3QgdGhlIGV4aXN0aW5nIF9XS0luc3BlY3RvckV4dGVu
c2lvbkRlbGVnYXRlIGNhbGxiYWNrIG1ldGhvZHMgZm9yCisgICAgICAgIGRpZFNob3dUYWIgYW5k
IGRpZEhpZGVUYWIuCisKKyAgICAgICAgTmV3IEFQSSB0ZXN0OiBXS0luc3BlY3RvckV4dGVuc2lv
bkRlbGVnYXRlLlNob3dBbmRIaWRlVGFiQ2FsbGJhY2tzLgorCisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9Db2NvYS9fV0tJbnNwZWN0b3IubW06CisgICAgICAgICgtW19XS0luc3BlY3RvciBzaG93
RXh0ZW5zaW9uVGFiV2l0aElkZW50aWZpZXI6Y29tcGxldGlvbkhhbmRsZXI6XSk6CisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJbnNwZWN0b3JFeHRlbnNpb25Ib3N0Lmg6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tSZW1vdGVXZWJJbnNwZWN0b3JWaWV3Q29udHJv
bGxlci5tbToKKyAgICAgICAgKC1bX1dLUmVtb3RlV2ViSW5zcGVjdG9yVmlld0NvbnRyb2xsZXIg
c2hvd0V4dGVuc2lvblRhYldpdGhJZGVudGlmaWVyOmNvbXBsZXRpb25IYW5kbGVyOl0pOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9s
bGVyUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNv
bnRyb2xsZXJQcm94eTo6c2hvd0V4dGVuc2lvblRhYik6CisgICAgICAgICogVUlQcm9jZXNzL0lu
c3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXJQcm94eS5oOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxl
ci5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxl
cjo6c2hvd0V4dGVuc2lvblRhYik6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2Vi
SW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9J
bnNwZWN0b3IvV2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyLm1lc3NhZ2VzLmluOgor
CiAyMDIxLTA5LTI4ICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgogCiAgICAgICAg
IE1ha2UgU3RvcmFnZU1hbmFnZXIgYXZhaWxhYmxlIGluIFdvcmtlcgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvV2ViSW5zcGVjdG9y
RXh0ZW5zaW9uQ29udHJvbGxlci5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL0NvbnRyb2xsZXJzL1dlYkluc3BlY3RvckV4dGVuc2lvbkNvbnRyb2xsZXIuanMKaW5kZXgg
NDZlMzc3NGQwNWRiZGVhNDA0ZjY3NGY4ODM2ODQ1MWI2NDc0OGY5MC4uZWRiMDljMDRjNzBhZTk2
NWIzYzE3NjU1Y2ExMjA4MTRmOGEyMDRhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvV2ViSW5zcGVjdG9yRXh0ZW5zaW9uQ29udHJv
bGxlci5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9s
bGVycy9XZWJJbnNwZWN0b3JFeHRlbnNpb25Db250cm9sbGVyLmpzCkBAIC0xNTEsOCArMTUxLDI0
IEBAIFdJLldlYkluc3BlY3RvckV4dGVuc2lvbkNvbnRyb2xsZXIgPSBjbGFzcyBXZWJJbnNwZWN0
b3JFeHRlbnNpb25Db250cm9sbGVyIGV4dGVuCiAgICAgICAgICAgICByZXR1cm4gV0kuV2ViSW5z
cGVjdG9yRXh0ZW5zaW9uLkVycm9yQ29kZS5JbnZhbGlkUmVxdWVzdDsKICAgICAgICAgCiAgICAg
ICAgIHJldHVybiB0YXJnZXQuUGFnZUFnZW50LnJlbG9hZC5pbnZva2Uoe2lnbm9yZUNhY2hlfSk7
Ci0gICAgICAgIAotICAgICAgICAKKyAgICB9CisgICAgCisgICAgc2hvd0V4dGVuc2lvblRhYihl
eHRlbnNpb25UYWJJRCkKKyAgICB7CisgICAgICAgIGxldCB0YWJDb250ZW50VmlldyA9IHRoaXMu
X2V4dGVuc2lvblRhYkNvbnRlbnRWaWV3Rm9yRXh0ZW5zaW9uVGFiSURNYXAuZ2V0KGV4dGVuc2lv
blRhYklEKTsKKyAgICAgICAgaWYgKCF0YWJDb250ZW50VmlldykgeworICAgICAgICAgICAgV0ku
cmVwb3J0SW50ZXJuYWxFcnJvcigiVW5hYmxlIHRvIHNob3cgZXh0ZW5zaW9uIHRhYiB3aXRoIHVu
a25vd24gZXh0ZW5zaW9uVGFiSUQ6ICIgKyBleHRlbnNpb25UYWJJRCk7CisgICAgICAgICAgICBy
ZXR1cm4gV0kuV2ViSW5zcGVjdG9yRXh0ZW5zaW9uLkVycm9yQ29kZS5JbnZhbGlkUmVxdWVzdDsK
KyAgICAgICAgfQorCisgICAgICAgIGxldCBzdWNjZXNzID0gV0kudGFiQnJvd3Nlci5zaG93VGFi
Rm9yQ29udGVudFZpZXcodGFiQ29udGVudFZpZXcsIHsKKyAgICAgICAgICAgIGluaXRpYXRvckhp
bnQ6IFdJLlRhYkJyb3dzZXIuVGFiTmF2aWdhdGlvbkluaXRpYXRvci5Gcm9udGVuZEFQSSwKKyAg
ICAgICAgfSk7CisKKyAgICAgICAgaWYgKCFzdWNjZXNzKSB7CisgICAgICAgICAgICBXSS5yZXBv
cnRJbnRlcm5hbEVycm9yKCJVbmFibGUgdG8gc2hvdyBleHRlbnNpb24gdGFiIHdpdGggZXh0ZW5z
aW9uVGFiSUQ6ICIgKyBleHRlbnNpb25UYWJJRCk7CisgICAgICAgICAgICByZXR1cm4gV0kuV2Vi
SW5zcGVjdG9yRXh0ZW5zaW9uLkVycm9yQ29kZS5JbnRlcm5hbEVycm9yOworICAgICAgICB9CiAg
ICAgfQogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvUHJvdG9jb2wvSW5zcGVjdG9yRnJvbnRlbmRBUEkuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9Qcm90b2NvbC9JbnNwZWN0b3JGcm9udGVuZEFQSS5qcwppbmRleCBh
ZjJjMTg5Yjk5OGYzZGU2NWVkY2NiMTYxZDgxZjYzYjY3Y2I0YjUyLi40MjhjNTQzM2Y2YzRkY2Ew
ODgwOTI2OGUyMDZjMTM4NmY1OGY3YmI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9Qcm90b2NvbC9JbnNwZWN0b3JGcm9udGVuZEFQSS5qcworKysgYi9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Qcm90b2NvbC9JbnNwZWN0b3JGcm9u
dGVuZEFQSS5qcwpAQCAtMjMwLDQgKzIzMCwxMCBAQCBJbnNwZWN0b3JGcm9udGVuZEFQSSA9IHsK
ICAgICB7CiAgICAgICAgIHJldHVybiBXSS5zaGFyZWRBcHAuZXh0ZW5zaW9uQ29udHJvbGxlci5y
ZWxvYWRGb3JFeHRlbnNpb24oZXh0ZW5zaW9uSUQsIHtpZ25vcmVDYWNoZSwgdXNlckFnZW50LCBp
bmplY3RlZFNjcmlwdH0pOwogICAgIH0sCisKKyAgICAvLyBSZXR1cm5zIGEgV0kuV2ViSW5zcGVj
dG9yRXh0ZW5zaW9uLkVycm9yQ29kZSBpZiBhbiBlcnJvciBvY2N1cnJlZCwgb3RoZXJ3aXNlIG5v
dGhpbmcuCisgICAgc2hvd0V4dGVuc2lvblRhYihleHRlbnNpb25UYWJJRCkKKyAgICB7CisgICAg
ICAgIHJldHVybiBXSS5zaGFyZWRBcHAuZXh0ZW5zaW9uQ29udHJvbGxlci5zaG93RXh0ZW5zaW9u
VGFiKGV4dGVuc2lvblRhYklEKTsKKyAgICB9CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0luc3BlY3Rvci5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9fV0tJbnNwZWN0b3IubW0KaW5kZXggZDY5NWYxZmZmYzM4YWQxODk1
NGRmNzU0NzJhYjNmNDc5ZDZhNjQzYi4uZmQ1NTk2OWU3YWVmN2M4NjM0ZTE1OTliZGVkNjJiNWUw
NjM2MmVhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19X
S0luc3BlY3Rvci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dL
SW5zcGVjdG9yLm1tCkBAIC0yNzAsNCArMjcwLDI0IEBAIC0gKHZvaWQpdW5yZWdpc3RlckV4dGVu
c2lvbjooX1dLSW5zcGVjdG9yRXh0ZW5zaW9uICopZXh0ZW5zaW9uIGNvbXBsZXRpb25IYW5kbGVy
CiAjZW5kaWYKIH0KIAorLSAodm9pZClzaG93RXh0ZW5zaW9uVGFiV2l0aElkZW50aWZpZXI6KE5T
U3RyaW5nICopZXh0ZW5zaW9uVGFiSWRlbnRpZmllciBjb21wbGV0aW9uSGFuZGxlcjoodm9pZChe
KShOU0Vycm9yICopKWNvbXBsZXRpb25IYW5kbGVyCit7CisjaWYgRU5BQkxFKElOU1BFQ1RPUl9F
WFRFTlNJT05TKQorICAgIC8vIEl0IGlzIGFuIGVycm9yIHRvIGNhbGwgdGhpcyBtZXRob2QgcHJp
b3IgdG8gY3JlYXRpbmcgYSBmcm9udGVuZCAoaS5lLiwgd2l0aCAtY29ubmVjdCBvciAtc2hvdyku
CisgICAgaWYgKCFfaW5zcGVjdG9yLT5leHRlbnNpb25Db250cm9sbGVyKCkpIHsKKyAgICAgICAg
Y29tcGxldGlvbkhhbmRsZXIoW05TRXJyb3IgZXJyb3JXaXRoRG9tYWluOldLRXJyb3JEb21haW4g
Y29kZTpXS0Vycm9yVW5rbm93biB1c2VySW5mbzpAeyBOU0xvY2FsaXplZEZhaWx1cmVSZWFzb25F
cnJvcktleTogSW5zcGVjdG9yOjpleHRlbnNpb25FcnJvclRvU3RyaW5nKEluc3BlY3Rvcjo6RXh0
ZW5zaW9uRXJyb3I6OkludmFsaWRSZXF1ZXN0KX1dKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KworICAgIF9pbnNwZWN0b3ItPmV4dGVuc2lvbkNvbnRyb2xsZXIoKS0+c2hvd0V4dGVuc2lvblRh
YihleHRlbnNpb25UYWJJZGVudGlmaWVyLCBbcHJvdGVjdGVkU2VsZiA9IHJldGFpblB0cihzZWxm
KSwgY2FwdHVyZWRCbG9jayA9IG1ha2VCbG9ja1B0cihjb21wbGV0aW9uSGFuZGxlcildIChFeHBl
Y3RlZDxib29sLCBJbnNwZWN0b3I6OkV4dGVuc2lvbkVycm9yPiYmIHJlc3VsdCkgbXV0YWJsZSB7
CisgICAgICAgIGlmICghcmVzdWx0KSB7CisgICAgICAgICAgICBjYXB0dXJlZEJsb2NrKFtOU0Vy
cm9yIGVycm9yV2l0aERvbWFpbjpXS0Vycm9yRG9tYWluIGNvZGU6V0tFcnJvclVua25vd24gdXNl
ckluZm86QHsgTlNMb2NhbGl6ZWRGYWlsdXJlUmVhc29uRXJyb3JLZXk6IEluc3BlY3Rvcjo6ZXh0
ZW5zaW9uRXJyb3JUb1N0cmluZyhyZXN1bHQuZXJyb3IoKSl9XSk7CisgICAgICAgICAgICByZXR1
cm47CisgICAgICAgIH0KKworICAgICAgICBjYXB0dXJlZEJsb2NrKG5pbCk7CisgICAgfSk7Cisj
ZW5kaWYKK30KKwogQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL19XS0luc3BlY3RvckV4dGVuc2lvbkhvc3QuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9fV0tJbnNwZWN0b3JFeHRlbnNpb25Ib3N0LmgKaW5kZXggM2I4ZjUxZTcx
Y2Y2NjI1YmY5YzY1OGI2NzU3MTI3NjFjZDUwODA4OS4uNmRkYTc1YTEzMDdkMjliZjJhZWZlMTcw
ODI3YzM0OWE2ZjhiNjM1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL19XS0luc3BlY3RvckV4dGVuc2lvbkhvc3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9yRXh0ZW5zaW9uSG9zdC5oCkBAIC0xLDUgKzEs
NSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAtMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTUzLDYgKzUzLDE1
IEBAIE5TX0FTU1VNRV9OT05OVUxMX0JFR0lOCiAgKi8KIC0gKHZvaWQpdW5yZWdpc3RlckV4dGVu
c2lvbjooX1dLSW5zcGVjdG9yRXh0ZW5zaW9uICopZXh0ZW5zaW9uIGNvbXBsZXRpb25IYW5kbGVy
Oih2b2lkKF4pKE5TRXJyb3IgKiBfTnVsbGFibGUpKWNvbXBsZXRpb25IYW5kbGVyOwogCisvKioK
KyAqIEBhYnN0cmFjdCBPcGVucyB0aGUgc3BlY2lmaWVkIGV4dGVuc2lvbiB0YWIgaW4gdGhlIGFz
c29jaWF0ZWQgV2ViIEluc3BlY3Rvci4KKyAqIEBwYXJhbSBleHRlbnNpb25UYWJJZGVudGlmaWVy
IEFuIGlkZW50aWZpZXIgZm9yIGFuIGV4dGVuc2lvbiB0YWIgY3JlYXRlZCB1c2luZyBXS0luc3Bl
Y3RvckV4dGVuc2lvbiBtZXRob2RzLgorICogQHBhcmFtIGNvbXBsZXRpb25IYW5kbGVyIFRoZSBj
b21wbGV0aW9uIGhhbmRsZXIgdG8gYmUgY2FsbGVkIHdoZW4gdGhlIHJlcXVlc3QgdG8gc2hvdyB0
aGUgdGFiIHN1Y2NlZWRzIG9yIGZhaWxzLgorICogQGRpc2N1c3Npb24gVGhpcyBtZXRob2QgaGFz
IG5vIGVmZmVjdCBpZiB0aGUgZXh0ZW5zaW9uVGFiSWRlbnRpZmllciBpcyBpbnZhbGlkLgorICog
SXQgaXMgYW4gZXJyb3IgdG8gY2FsbCB0aGlzIG1ldGhvZCBwcmlvciB0byBjYWxsaW5nIC1bX1dL
SW5zcGVjdG9ySUJBY3Rpb25zIHNob3ddLgorICovCistICh2b2lkKXNob3dFeHRlbnNpb25UYWJX
aXRoSWRlbnRpZmllcjooTlNTdHJpbmcgKilleHRlbnNpb25UYWJJZGVudGlmaWVyIGNvbXBsZXRp
b25IYW5kbGVyOih2b2lkKF4pKE5TRXJyb3IgKiBfTnVsbGFibGUpKWNvbXBsZXRpb25IYW5kbGVy
OworCiAvKioKICAqIEBhYnN0cmFjdCBUaGUgd2ViIHZpZXcgdGhhdCBpcyB1c2VkIHRvIGhvc3Qg
ZXh0ZW5zaW9uIHRhYnMgY3JlYXRlZCB2aWEgX1dLSW5zcGVjdG9yRXh0ZW5zaW9uLgogICogQGRp
c2N1c3Npb24gQnJvd3NpbmcgY29udGV4dHMgZm9yIGV4dGVuc2lvbiB0YWJzIGFyZSBsb2FkZWQg
aW4gc3ViZnJhbWVzIG9mIHRoaXMgd2ViIHZpZXcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUmVtb3RlV2ViSW5zcGVjdG9yVmlld0NvbnRyb2xsZXIu
bW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUmVtb3RlV2ViSW5zcGVj
dG9yVmlld0NvbnRyb2xsZXIubW0KaW5kZXggMTIyYzgyODRiYmU0N2E0Mzc5OGU2MDQzYjUzMTEz
ZTE4ZjA3ZjAxYS4uNmZjNTUzYjZiZGRlMDY2MWMwNjE1MTMyYjc1YTAwOTMxZjVlMjEzMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1JlbW90ZVdlYklu
c3BlY3RvclZpZXdDb250cm9sbGVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9fV0tSZW1vdGVXZWJJbnNwZWN0b3JWaWV3Q29udHJvbGxlci5tbQpAQCAtMjE3LDYg
KzIxNywyNiBAQCAtICh2b2lkKXNob3dSZXNvdXJjZXMKICAgICBtX3JlbW90ZUluc3BlY3RvclBy
b3h5LT5zaG93UmVzb3VyY2VzKCk7CiB9CiAKKy0gKHZvaWQpc2hvd0V4dGVuc2lvblRhYldpdGhJ
ZGVudGlmaWVyOihOU1N0cmluZyAqKWV4dGVuc2lvblRhYklkZW50aWZpZXIgY29tcGxldGlvbkhh
bmRsZXI6KHZvaWQoXikoTlNFcnJvciAqIF9OdWxsYWJsZSkpY29tcGxldGlvbkhhbmRsZXIKK3sK
KyNpZiBFTkFCTEUoSU5TUEVDVE9SX0VYVEVOU0lPTlMpCisgICAgLy8gSXQgaXMgYW4gZXJyb3Ig
dG8gY2FsbCB0aGlzIG1ldGhvZCBwcmlvciB0byBjcmVhdGluZyBhIGZyb250ZW5kIChpLmUuLCB3
aXRoIC1jb25uZWN0IG9yIC1zaG93KS4KKyAgICBpZiAoIW1fcmVtb3RlSW5zcGVjdG9yUHJveHkt
PmV4dGVuc2lvbkNvbnRyb2xsZXIoKSkgeworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihbTlNF
cnJvciBlcnJvcldpdGhEb21haW46V0tFcnJvckRvbWFpbiBjb2RlOldLRXJyb3JVbmtub3duIHVz
ZXJJbmZvOkB7IE5TTG9jYWxpemVkRmFpbHVyZVJlYXNvbkVycm9yS2V5OiBJbnNwZWN0b3I6OmV4
dGVuc2lvbkVycm9yVG9TdHJpbmcoSW5zcGVjdG9yOjpFeHRlbnNpb25FcnJvcjo6SW52YWxpZFJl
cXVlc3QpfV0pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgbV9yZW1vdGVJbnNwZWN0
b3JQcm94eS0+ZXh0ZW5zaW9uQ29udHJvbGxlcigpLT5zaG93RXh0ZW5zaW9uVGFiKGV4dGVuc2lv
blRhYklkZW50aWZpZXIsIFtwcm90ZWN0ZWRTZWxmID0gcmV0YWluUHRyKHNlbGYpLCBjYXB0dXJl
ZEJsb2NrID0gbWFrZUJsb2NrUHRyKGNvbXBsZXRpb25IYW5kbGVyKV0gKEV4cGVjdGVkPGJvb2ws
IEluc3BlY3Rvcjo6RXh0ZW5zaW9uRXJyb3I+JiYgcmVzdWx0KSBtdXRhYmxlIHsKKyAgICAgICAg
aWYgKCFyZXN1bHQpIHsKKyAgICAgICAgICAgIGNhcHR1cmVkQmxvY2soW05TRXJyb3IgZXJyb3JX
aXRoRG9tYWluOldLRXJyb3JEb21haW4gY29kZTpXS0Vycm9yVW5rbm93biB1c2VySW5mbzpAeyBO
U0xvY2FsaXplZEZhaWx1cmVSZWFzb25FcnJvcktleTogSW5zcGVjdG9yOjpleHRlbnNpb25FcnJv
clRvU3RyaW5nKHJlc3VsdC5lcnJvcigpKX1dKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgfQorCisgICAgICAgIGNhcHR1cmVkQmxvY2sobmlsKTsKKyAgICB9KTsKKyNlbmRpZgorfQor
CiBAZW5kCiAKIE5TX0FTU1VNRV9OT05OVUxMX0VORApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlclBy
b3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JV
SUV4dGVuc2lvbkNvbnRyb2xsZXJQcm94eS5jcHAKaW5kZXggMDViMTAxMWZmNTBkNjFmY2ZkMzFj
YTczN2UwZWFmNGIwZDA1YjlmMy4uNzQyYWEyN2IxZWFjMzU4YWYwNWI0NzYxMjQ0ZWMyMWZkMzAw
YTMyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL1dlYklu
c3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyUHJv
eHkuY3BwCkBAIC0xODcsNiArMTg3LDE5IEBAIHZvaWQgV2ViSW5zcGVjdG9yVUlFeHRlbnNpb25D
b250cm9sbGVyUHJveHk6OnJlbG9hZEZvckV4dGVuc2lvbihjb25zdCBJbnNwZWN0b3I6CiAgICAg
fSk7CiB9CiAKK3ZvaWQgV2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyUHJveHk6OnNo
b3dFeHRlbnNpb25UYWIoY29uc3QgSW5zcGVjdG9yOjpFeHRlbnNpb25UYWJJRCYgZXh0ZW5zaW9u
VGFiSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDxib29sLCBJbnNw
ZWN0b3I6OkV4dGVuc2lvbkVycm9yPik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgd2hl
bkZyb250ZW5kSGFzTG9hZGVkKFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpLCBleHRlbnNp
b25UYWJJZGVudGlmaWVyLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhh
bmRsZXIpXSAoKSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKCF3ZWFrVGhpcyB8fCAhd2Vha1RoaXMt
Pm1faW5zcGVjdG9yUGFnZSkgeworICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIobWFrZVVu
ZXhwZWN0ZWQoSW5zcGVjdG9yOjpFeHRlbnNpb25FcnJvcjo6Q29udGV4dERlc3Ryb3llZCkpOwor
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgd2Vha1RoaXMtPm1faW5z
cGVjdG9yUGFnZS0+c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJJbnNwZWN0b3JVSUV4
dGVuc2lvbkNvbnRyb2xsZXI6OlNob3dFeHRlbnNpb25UYWIgeyBleHRlbnNpb25UYWJJZGVudGlm
aWVyIH0sIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICB9KTsKK30KKworCiAvLyBX
ZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXJQcm94eSBJUEMgbWVzc2FnZXMuCiAKIHZv
aWQgV2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyUHJveHk6OmRpZFNob3dFeHRlbnNp
b25UYWIoY29uc3QgSW5zcGVjdG9yOjpFeHRlbnNpb25JRCYgZXh0ZW5zaW9uSUQsIGNvbnN0IElu
c3BlY3Rvcjo6RXh0ZW5zaW9uVGFiSUQmIGV4dGVuc2lvblRhYklEKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29u
dHJvbGxlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5z
cGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyUHJveHkuaAppbmRleCBmMjk0NzgxNTQ2NWZhMDVl
MzNmMDBlZDVmZTY0M2EyODk3MGRkYTliLi5jYTIzZWM3YWZiMmUxZWJjZjk4NTc0ZmU3OWU5NDBk
ODQ2YTMzMTdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3Iv
V2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyUHJveHkuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVy
UHJveHkuaApAQCAtNjAsNiArNjAsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBjcmVhdGVUYWJGb3JF
eHRlbnNpb24oY29uc3QgSW5zcGVjdG9yOjpFeHRlbnNpb25JRCYsIGNvbnN0IFN0cmluZyYgdGFi
TmFtZSwgY29uc3QgVVJMJiB0YWJJY29uVVJMLCBjb25zdCBVUkwmIHNvdXJjZVVSTCwgV1RGOjpD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4cGVjdGVkPEluc3BlY3Rvcjo6RXh0ZW5zaW9uVGFiSUQs
IEluc3BlY3Rvcjo6RXh0ZW5zaW9uRXJyb3I+KT4mJik7CiAgICAgdm9pZCBldmFsdWF0ZVNjcmlw
dEZvckV4dGVuc2lvbihjb25zdCBJbnNwZWN0b3I6OkV4dGVuc2lvbklEJiwgY29uc3QgU3RyaW5n
JiBzY3JpcHRTb3VyY2UsIGNvbnN0IHN0ZDo6b3B0aW9uYWw8VVJMPiYgZnJhbWVVUkwsIGNvbnN0
IHN0ZDo6b3B0aW9uYWw8VVJMPiYgY29udGV4dFNlY3VyaXR5T3JpZ2luLCBjb25zdCBzdGQ6Om9w
dGlvbmFsPGJvb2w+JiB1c2VDb250ZW50U2NyaXB0Q29udGV4dCwgV1RGOjpDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKEluc3BlY3Rvcjo6RXh0ZW5zaW9uRXZhbHVhdGlvblJlc3VsdCk+JiYpOwogICAg
IHZvaWQgcmVsb2FkRm9yRXh0ZW5zaW9uKGNvbnN0IEluc3BlY3Rvcjo6RXh0ZW5zaW9uSUQmLCBj
b25zdCBzdGQ6Om9wdGlvbmFsPGJvb2w+JiBpZ25vcmVDYWNoZSwgY29uc3Qgc3RkOjpvcHRpb25h
bDxTdHJpbmc+JiB1c2VyQWdlbnQsIGNvbnN0IHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiYgaW5qZWN0
ZWRTY3JpcHQsIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZChJbnNwZWN0b3I6OkV4dGVuc2lv
bkV2YWx1YXRpb25SZXN1bHQpPiYmKTsKKyAgICB2b2lkIHNob3dFeHRlbnNpb25UYWIoY29uc3Qg
SW5zcGVjdG9yOjpFeHRlbnNpb25UYWJJRCYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0
ZWQ8Ym9vbCwgSW5zcGVjdG9yOjpFeHRlbnNpb25FcnJvcj4pPiYmKTsKIAogICAgIC8vIFdlYklu
c3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlclByb3h5IElQQyBtZXNzYWdlcy4KICAgICB2b2lk
IGRpZFNob3dFeHRlbnNpb25UYWIoY29uc3QgSW5zcGVjdG9yOjpFeHRlbnNpb25JRCYsIGNvbnN0
IEluc3BlY3Rvcjo6RXh0ZW5zaW9uVGFiSUQmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyLmNw
cCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUlFeHRl
bnNpb25Db250cm9sbGVyLmNwcAppbmRleCAxNzNiMjE4NDJkMWJmZDcyYzFkMTcwY2IyOWFlOThk
YTc4YjVjMGIzLi45MDkwYjE2YTc5NThlNGJjODEyZTAyZDAyY2Q5NDUwOTNjZDVmNTI0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJ
RXh0ZW5zaW9uQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0lu
c3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXIuY3BwCkBAIC0zMjYsNiAr
MzI2LDM5IEBAIHZvaWQgV2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyOjpyZWxvYWRG
b3JFeHRlbnNpb24oY29uc3QgSW5zcGVjdG9yOjpFeHRlCiAgICAgfSk7CiB9CiAKK3ZvaWQgV2Vi
SW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyOjpzaG93RXh0ZW5zaW9uVGFiKGNvbnN0IElu
c3BlY3Rvcjo6RXh0ZW5zaW9uVGFiSUQmIGV4dGVuc2lvblRhYklkZW50aWZpZXIsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoRXhwZWN0ZWQ8Ym9vbCwgSW5zcGVjdG9yOjpFeHRlbnNpb25FcnJvcj4p
PiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIGlmICghbV9mcm9udGVuZENsaWVudCkgewor
ICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihtYWtlVW5leHBlY3RlZChJbnNwZWN0b3I6OkV4dGVu
c2lvbkVycm9yOjpJbnZhbGlkUmVxdWVzdCkpOworICAgICAgICByZXR1cm47CisgICAgfQorCisg
ICAgVmVjdG9yPFJlZjxKU09OOjpWYWx1ZT4+IGFyZ3VtZW50cyB7CisgICAgICAgIEpTT046OlZh
bHVlOjpjcmVhdGUoZXh0ZW5zaW9uVGFiSWRlbnRpZmllciksCisgICAgfTsKKworICAgIG1fZnJv
bnRlbmRDbGllbnQtPmZyb250ZW5kQVBJRGlzcGF0Y2hlcigpLmRpc3BhdGNoQ29tbWFuZFdpdGhS
ZXN1bHRBc3luYygic2hvd0V4dGVuc2lvblRhYiJfcywgV1RGTW92ZShhcmd1bWVudHMpLCBbd2Vh
a1RoaXMgPSBtYWtlV2Vha1B0cih0aGlzKSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNv
bXBsZXRpb25IYW5kbGVyKV0oSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyOjpFdmFsdWF0
aW9uUmVzdWx0JiYgcmVzdWx0KSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKCF3ZWFrVGhpcykgewor
ICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIobWFrZVVuZXhwZWN0ZWQoSW5zcGVjdG9yOjpF
eHRlbnNpb25FcnJvcjo6Q29udGV4dERlc3Ryb3llZCkpOworICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICB9CisKKyAgICAgICAgYXV0byogZnJvbnRlbmRHbG9iYWxPYmplY3QgPSB3ZWFrVGhp
cy0+bV9mcm9udGVuZENsaWVudC0+ZnJvbnRlbmRBUElEaXNwYXRjaGVyKCkuZnJvbnRlbmRHbG9i
YWxPYmplY3QoKTsKKyAgICAgICAgaWYgKCFmcm9udGVuZEdsb2JhbE9iamVjdCkgeworICAgICAg
ICAgICAgY29tcGxldGlvbkhhbmRsZXIobWFrZVVuZXhwZWN0ZWQoSW5zcGVjdG9yOjpFeHRlbnNp
b25FcnJvcjo6Q29udGV4dERlc3Ryb3llZCkpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICB9CisKKyAgICAgICAgaWYgKGF1dG8gcGFyc2VkRXJyb3IgPSB3ZWFrVGhpcy0+cGFyc2VFeHRl
bnNpb25FcnJvckZyb21FdmFsdWF0aW9uUmVzdWx0KHJlc3VsdCkpIHsKKyAgICAgICAgICAgIExP
RyhJbnNwZWN0b3IsICJJbnRlcm5hbCBlcnJvciBlbmNvdW50ZXJlZCB3aGlsZSBldmFsdWF0aW5n
IHVwb24gdGhlIGZyb250ZW5kOiAlcyIsIEluc3BlY3Rvcjo6ZXh0ZW5zaW9uRXJyb3JUb1N0cmlu
ZygqcGFyc2VkRXJyb3IpLnV0ZjgoKS5kYXRhKCkpOworICAgICAgICAgICAgY29tcGxldGlvbkhh
bmRsZXIobWFrZVVuZXhwZWN0ZWQoKnBhcnNlZEVycm9yKSk7CisgICAgICAgICAgICByZXR1cm47
CisgICAgICAgIH0KKworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcih0cnVlKTsKKyAgICB9KTsK
K30KKwogdm9pZCBXZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXI6OmRpZFNob3dFeHRl
bnNpb25UYWIoY29uc3QgSW5zcGVjdG9yOjpFeHRlbnNpb25JRCYgZXh0ZW5zaW9uSUQsIGNvbnN0
IEluc3BlY3Rvcjo6RXh0ZW5zaW9uVGFiSUQmIGV4dGVuc2lvblRhYklEKQogewogICAgIFdlYlBy
b2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2Fn
ZXM6OldlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlclByb3h5OjpEaWRTaG93RXh0ZW5z
aW9uVGFiIHsgZXh0ZW5zaW9uSUQsIGV4dGVuc2lvblRhYklEIH0sIG1faW5zcGVjdG9yUGFnZUlk
ZW50aWZpZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rv
ci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyLmgKaW5k
ZXggMThlYThmZmMyYWY4MDIzYmIyOWM3Y2RhMTk0NGZiZTU1ZDA2M2ZlMS4uYzM2MTJhZGQwMDU5
ZDc0ZWI0N2E5MWU1ZGUzNDU3NDEyNDhkMGY0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXIuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJRXh0
ZW5zaW9uQ29udHJvbGxlci5oCkBAIC02OCwxMiArNjgsMTEgQEAgcHVibGljOgogICAgIHZvaWQg
Y3JlYXRlVGFiRm9yRXh0ZW5zaW9uKGNvbnN0IEluc3BlY3Rvcjo6RXh0ZW5zaW9uSUQmLCBjb25z
dCBTdHJpbmcmIHRhYk5hbWUsIGNvbnN0IFVSTCYgdGFiSWNvblVSTCwgY29uc3QgVVJMJiBzb3Vy
Y2VVUkwsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0ZWQ8SW5zcGVjdG9yOjpFeHRlbnNp
b25UYWJJRCwgSW5zcGVjdG9yOjpFeHRlbnNpb25FcnJvcj4pPiYmKTsKICAgICB2b2lkIGV2YWx1
YXRlU2NyaXB0Rm9yRXh0ZW5zaW9uKGNvbnN0IEluc3BlY3Rvcjo6RXh0ZW5zaW9uSUQmLCBjb25z
dCBTdHJpbmcmIHNjcmlwdFNvdXJjZSwgY29uc3Qgc3RkOjpvcHRpb25hbDxVUkw+JiBmcmFtZVVS
TCwgY29uc3Qgc3RkOjpvcHRpb25hbDxVUkw+JiBjb250ZXh0U2VjdXJpdHlPcmlnaW4sIGNvbnN0
IHN0ZDo6b3B0aW9uYWw8Ym9vbD4mIHVzZUNvbnRlbnRTY3JpcHRDb250ZXh0LCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYsIGNvbnN0IHN0ZDo6b3B0aW9u
YWw8V2ViQ29yZTo6RXhjZXB0aW9uRGV0YWlscz4mLCBjb25zdCBzdGQ6Om9wdGlvbmFsPEluc3Bl
Y3Rvcjo6RXh0ZW5zaW9uRXJyb3I+Jik+JiYpOwogICAgIHZvaWQgcmVsb2FkRm9yRXh0ZW5zaW9u
KGNvbnN0IEluc3BlY3Rvcjo6RXh0ZW5zaW9uSUQmLCBjb25zdCBzdGQ6Om9wdGlvbmFsPGJvb2w+
JiBpZ25vcmVDYWNoZSwgY29uc3Qgc3RkOjpvcHRpb25hbDxTdHJpbmc+JiB1c2VyQWdlbnQsIGNv
bnN0IHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiYgaW5qZWN0ZWRTY3JpcHQsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoY29uc3Qgc3RkOjpvcHRpb25hbDxJbnNwZWN0b3I6OkV4dGVuc2lvbkVycm9yPiYp
PiYmKTsKKyAgICB2b2lkIHNob3dFeHRlbnNpb25UYWIoY29uc3QgSW5zcGVjdG9yOjpFeHRlbnNp
b25UYWJJRCYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0ZWQ8Ym9vbCwgSW5zcGVjdG9y
OjpFeHRlbnNpb25FcnJvcj4pPiYmKTsKIAogICAgIC8vIENhbGxiYWNrcyBmcm9tIHRoZSBmcm9u
dGVuZC4KLSNpZiBFTkFCTEUoSU5TUEVDVE9SX0VYVEVOU0lPTlMpCiAgICAgdm9pZCBkaWRTaG93
RXh0ZW5zaW9uVGFiKGNvbnN0IEluc3BlY3Rvcjo6RXh0ZW5zaW9uSUQmLCBjb25zdCBJbnNwZWN0
b3I6OkV4dGVuc2lvblRhYklEJik7CiAgICAgdm9pZCBkaWRIaWRlRXh0ZW5zaW9uVGFiKGNvbnN0
IEluc3BlY3Rvcjo6RXh0ZW5zaW9uSUQmLCBjb25zdCBJbnNwZWN0b3I6OkV4dGVuc2lvblRhYklE
Jik7Ci0jZW5kaWYKIAogcHJpdmF0ZToKICAgICBKU0M6OkpTT2JqZWN0KiB1bndyYXBFdmFsdWF0
aW9uUmVzdWx0QXNPYmplY3QoV2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVy
OjpFdmFsdWF0aW9uUmVzdWx0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyLm1lc3NhZ2VzLmlu
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVu
c2lvbkNvbnRyb2xsZXIubWVzc2FnZXMuaW4KaW5kZXggOTQ4MTlmYjA5YjAxNmQxM2ZlOWZhMjAz
YmMwODMwMmY2NjRmYzg4ZS4uNGVlZjMxOWY2ZDU5M2Y1YmEwZDcyODJkYzc2MzUwOTBhZjMxY2Yw
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNw
ZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXIubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXIu
bWVzc2FnZXMuaW4KQEAgLTIyLDYgKzIyLDEwIEBACiAKICNpZiBFTkFCTEUoSU5TUEVDVE9SX0VY
VEVOU0lPTlMpCiAKKy8vIEZJWE1FOiBzb21lIGNvbXBsZXRpb24gaGFuZGxlcnMgd2l0aCBhIHBh
cmFtZXRlciB0eXBlIG9mIEV4cGVjdGVkPGJvb2wsIEluc3BlY3Rvcjo6RXh0ZW5zaW9uRXJyb3I+
CisvLyBzaG91bGQgYWN0dWFsbHkgYmUgRXhwZWN0ZWQ8dm9pZCwgSW5zcGVjdG9yOjpFeHRlbnNp
b25FcnJvcj4sIGJ1dCB0aGlzIGRvZXMgbm90IGNvbXBpbGUgYXMtaXMgd2l0aG91dAorLy8gY2hh
bmdlcyB0byBhcmd1bWVudCBjb2RlcnMuIFRoaXMgY2xlYW51cCBpcyB0cmFja2VkIGJ5IDxodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9iLzIzMDkwNz4uCisKIG1lc3NhZ2VzIC0+IFdlYkluc3BlY3Rv
clVJRXh0ZW5zaW9uQ29udHJvbGxlciBOb3RSZWZDb3VudGVkIHsKICAgICBSZWdpc3RlckV4dGVu
c2lvbihTdHJpbmcgZXh0ZW5zaW9uSUQsIFN0cmluZyBkaXNwbGF5TmFtZSkgLT4gKEV4cGVjdGVk
PGJvb2wsIEluc3BlY3Rvcjo6RXh0ZW5zaW9uRXJyb3I+IHJlc3VsdCkgQXN5bmMKICAgICBVbnJl
Z2lzdGVyRXh0ZW5zaW9uKFN0cmluZyBleHRlbnNpb25JRCkgLT4gKEV4cGVjdGVkPGJvb2wsIElu
c3BlY3Rvcjo6RXh0ZW5zaW9uRXJyb3I+IHJlc3VsdCkgQXN5bmMKQEAgLTI5LDYgKzMzLDcgQEAg
bWVzc2FnZXMgLT4gV2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyIE5vdFJlZkNvdW50
ZWQgewogICAgIENyZWF0ZVRhYkZvckV4dGVuc2lvbihTdHJpbmcgZXh0ZW5zaW9uSUQsIFN0cmlu
ZyB0YWJOYW1lLCBVUkwgdGFiSWNvblVSTCwgVVJMIHNvdXJjZVVSTCkgLT4gKEV4cGVjdGVkPFN0
cmluZywgSW5zcGVjdG9yOjpFeHRlbnNpb25FcnJvcj4gcmVzdWx0KSBBc3luYwogICAgIEV2YWx1
YXRlU2NyaXB0Rm9yRXh0ZW5zaW9uKFN0cmluZyBleHRlbnNpb25JRCwgU3RyaW5nIHNjcmlwdFNv
dXJjZSwgc3RkOjpvcHRpb25hbDxVUkw+IGZyYW1lVVJMLCBzdGQ6Om9wdGlvbmFsPFVSTD4gY29u
dGV4dFNlY3VyaXR5T3JpZ2luLCBzdGQ6Om9wdGlvbmFsPGJvb2w+IHVzZUNvbnRlbnRTY3JpcHRD
b250ZXh0KSAtPiAoSVBDOjpEYXRhUmVmZXJlbmNlIHJlc3VsdERhdGEsIHN0ZDo6b3B0aW9uYWw8
V2ViQ29yZTo6RXhjZXB0aW9uRGV0YWlscz4gZGV0YWlscywgc3RkOjpvcHRpb25hbDxJbnNwZWN0
b3I6OkV4dGVuc2lvbkVycm9yPiBlcnJvcikgQXN5bmMKICAgICBSZWxvYWRGb3JFeHRlbnNpb24o
U3RyaW5nIGV4dGVuc2lvbklELCBzdGQ6Om9wdGlvbmFsPGJvb2w+IGlnbm9yZUNhY2hlLCBzdGQ6
Om9wdGlvbmFsPFN0cmluZz4gdXNlckFnZW50LCBzdGQ6Om9wdGlvbmFsPFN0cmluZz4gaW5qZWN0
ZWRTY3JpcHQpIC0+IChzdGQ6Om9wdGlvbmFsPEluc3BlY3Rvcjo6RXh0ZW5zaW9uRXJyb3I+IGVy
cm9yKSBBc3luYworICAgIFNob3dFeHRlbnNpb25UYWIoU3RyaW5nIGV4dGVuc2lvblRhYklkZW50
aWZpZXIpIC0+IChFeHBlY3RlZDxib29sLCBJbnNwZWN0b3I6OkV4dGVuc2lvbkVycm9yPiByZXN1
bHQpIEFzeW5jCiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoSU5TUEVDVE9SX0VYVEVOU0lPTlMpCmRp
ZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYWVlMWJj
YmY2Y2QyYjViMzQwZDhiMDUyYWY3ZWIyMmFiMjI5Nzg2NS4uYWE4NjcwYzA3Mzk4MGMwNTU4MDA1
ZDg5YzJkODYwNDI2OWI3ODQxMSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rv
b2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDIxLTA5LTI4ICBCSiBCdXJnICA8YmJ1
cmdAYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gQWRkIFNQSSB0byBzZWxlY3QgYSB0YWIg
Y3JlYXRlZCBieSBfV0tJbnNwZWN0b3JFeHRlbnNpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMDU4MAorICAgICAgICA8cmRhcjovL3Byb2JsZW0v
ODMzNzI4NTE+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGV2aW4gUm91c3NvLgorCisgICAgICAg
IENyZWF0ZSBhIG5ldyB0ZXN0IGZpbGUgZm9yIF9XS0luc3BlY3RvckV4dGVuc2lvbkRlbGVnYXRl
LiBBZGQgYQorICAgICAgICBuZXcgdGVzdCBjYXNlIHRoYXQgZXhlcmNpc2VzIGNyZWF0aW5nIGFu
IGV4dGVuc2lvbiB0YWIsIHNob3dpbmcgYW4KKyAgICAgICAgZXh0ZW5zaW9uIHRhYiwgYW5kIHVz
ZXMgZGVsZWdhdGUgY2FsbGJhY2tzIGZvciBkaWRTaG93VGFiL2RpZEhpZGVUYWIuCisKKyAgICAg
ICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0luc3BlY3RvckV4
dGVuc2lvbi1UYWJJY29uLTMweDMwLnBuZzogQWRkZWQuCisgICAgICAgICogVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9JbnNwZWN0b3JFeHRlbnNpb24tYmFzaWMtdGFiLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tJbnNwZWN0
b3JFeHRlbnNpb25EZWxlZ2F0ZS5tbTogQWRkZWQuCisgICAgICAgIChyZXNldEdsb2JhbFN0YXRl
KToKKyAgICAgICAgKC1bVUlEZWxlZ2F0ZUZvclRlc3RpbmdJbnNwZWN0b3JFeHRlbnNpb25EZWxl
Z2F0ZSBfd2ViVmlldzpkaWRBdHRhY2hMb2NhbEluc3BlY3RvcjpdKToKKyAgICAgICAgKC1bSW5z
cGVjdG9yRXh0ZW5zaW9uRGVsZWdhdGVGb3JUZXN0aW5nIGluc3BlY3RvckV4dGVuc2lvbjpkaWRT
aG93VGFiV2l0aElkZW50aWZpZXI6XSk6CisgICAgICAgICgtW0luc3BlY3RvckV4dGVuc2lvbkRl
bGVnYXRlRm9yVGVzdGluZyBpbnNwZWN0b3JFeHRlbnNpb246ZGlkSGlkZVRhYldpdGhJZGVudGlm
aWVyOl0pOgorICAgICAgICAoVEVTVCk6CisKIDIwMjEtMDktMjggIFlvdWVubiBGYWJsZXQgIDx5
b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIFZhbGlkYXRlIERldmljZUlkSGFzaFNhbHRTdG9y
YWdlIHBlcnNpc3RlbnQgZGF0YQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBmY2RhMjVkYmQ1
MDc5YWJkN2UxYmIzMjRiY2ZkZWMzODNmNTE4NzhhLi5hNTM2MzUzNDlmZTg0YmQxNjBkOTIzZWI4
MmVhMThhZGEwYTk5YzI4IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJL
aXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtODkzLDYgKzg5Myw5
IEBACiAJCTk5OTkxMDhCMUYzOTNDOTYwMDhBRDQ1NSAvKiBDb3B5aW5nLm1tIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTk5OTEwOEExRjM5M0M4QjAwOEFE
NDU1IC8qIENvcHlpbmcubW0gKi87IH07CiAJCTk5OUI3RUUzMjU1MUM2M0IwMEY0NTBBNCAvKiBX
S0luc3BlY3RvckV4dGVuc2lvbkhvc3QubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5OTlCN0VFMjI1NTFDNjNCMDBGNDUwQTQgLyogV0tJbnNwZWN0b3JF
eHRlbnNpb25Ib3N0Lm1tICovOyB9OwogCQk5OUI0RjlDNjI0RURFRDk3MDAwMjJCODIgLyogV0tJ
bnNwZWN0b3JEZWxlZ2F0ZS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDk5QjRGOUM1MjRFREVEOTYwMDAyMkI4MiAvKiBXS0luc3BlY3RvckRlbGVnYXRl
Lm1tICovOyB9OworCQk5OUUyODQ2NDI2RjkxRjdGMDAwM0YxRkEgLyogV0tJbnNwZWN0b3JFeHRl
bnNpb25EZWxlZ2F0ZS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDk5RTI4NDYzMjZGOTFGN0YwMDAzRjFGQSAvKiBXS0luc3BlY3RvckV4dGVuc2lvbkRl
bGVnYXRlLm1tICovOyB9OworCQk5OUUyODQ2NjI2RjkzREI1MDAwM0YxRkEgLyogSW5zcGVjdG9y
RXh0ZW5zaW9uLVRhYkljb24tMzB4MzAucG5nIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5RTI4NDY1MjZGOTNENzYwMDAzRjFGQSAvKiBJbnNw
ZWN0b3JFeHRlbnNpb24tVGFiSWNvbi0zMHgzMC5wbmcgKi87IH07CisJCTk5RTI4NDY4MjZGOTQx
NTQwMDAzRjFGQSAvKiBJbnNwZWN0b3JFeHRlbnNpb24tYmFzaWMtdGFiLmh0bWwgaW4gQ29weSBS
ZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTlFMjg0NjcyNkY5
NDEzQjAwMDNGMUZBIC8qIEluc3BlY3RvckV4dGVuc2lvbi1iYXNpYy10YWIuaHRtbCAqLzsgfTsK
IAkJOUIwMkUwRDYyMzVGQTQ3RDAwNDA0NEIyIC8qIFRleHRNYW5pcHVsYXRpb24ubW0gaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QjAyRTBENTIzNUZBNDdE
MDA0MDQ0QjIgLyogVGV4dE1hbmlwdWxhdGlvbi5tbSAqLzsgfTsKIAkJOUIwNzg2QTUxQzU4ODVD
MzAwRDE1OUUzIC8qIEluamVjdGVkQnVuZGxlTWFrZUFsbFNoYWRvd1Jvb3RzT3Blbl9CdW5kbGUu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUIwNzg2
QTQxQzU4ODVDMzAwRDE1OUUzIC8qIEluamVjdGVkQnVuZGxlTWFrZUFsbFNoYWRvd1Jvb3RzT3Bl
bl9CdW5kbGUuY3BwICovOyB9OwogCQk5QjBDMDUxOTI0RkRGQjdEMDBGMkZFMzEgLyogQ29tcGFj
dFVuaXF1ZVB0clR1cGxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDlCMEMwNTE4MjRGREZCNzAwMEYyRkUzMSAvKiBDb21wYWN0VW5pcXVlUHRyVHVw
bGUuY3BwICovOyB9OwpAQCAtMTU3Myw2ICsxNTc2LDggQEAKIAkJCQkyRUZGMDZDRDFEOEE0MjlB
MDAwNEJCMzAgLyogaW5wdXQtZmllbGQtaW4tc2Nyb2xsYWJsZS1kb2N1bWVudC5odG1sIGluIENv
cHkgUmVzb3VyY2VzICovLAogCQkJCUNFMzUyNEZBMUIxNDQzODkwMDI4QTdDNSAvKiBpbnB1dC1m
b2N1cy1ibHVyLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJQ0U2RDBFRTMyNDI2Qjkz
MjAwMkFEOTAxIC8qIGluc2VydC10ZXh0Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCisJCQkJ
OTlFMjg0NjgyNkY5NDE1NDAwMDNGMUZBIC8qIEluc3BlY3RvckV4dGVuc2lvbi1iYXNpYy10YWIu
aHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKKwkJCQk5OUUyODQ2NjI2RjkzREI1MDAwM0YxRkEg
LyogSW5zcGVjdG9yRXh0ZW5zaW9uLVRhYkljb24tMzB4MzAucG5nIGluIENvcHkgUmVzb3VyY2Vz
ICovLAogCQkJCTU3RjU2QTVDMUM3RjhDQzEwMEYzMUQ3RSAvKiBJc05hdmlnYXRpb25BY3Rpb25U
cnVzdGVkLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJQzlCNEFEMkMxRUNBNkY3RjAw
RjVGRUEwIC8qIGpzLWF1dG9wbGF5LWF1ZGlvLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJ
CQkJQzk5QjY3NUQxRTM5NzIyMDAwRkM2QzgwIC8qIGpzLXBsYXktd2l0aC1jb250cm9scy5odG1s
IGluIENvcHkgUmVzb3VyY2VzICovLApAQCAtMjYxOSw2ICsyNjI0LDkgQEAKIAkJOTk5OTEwOEEx
RjM5M0M4QjAwOEFENDU1IC8qIENvcHlpbmcubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBDb3B5aW5nLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5
OTlCN0VFMjI1NTFDNjNCMDBGNDUwQTQgLyogV0tJbnNwZWN0b3JFeHRlbnNpb25Ib3N0Lm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tJbnNwZWN0b3JFeHRlbnNp
b25Ib3N0Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5OUI0RjlDNTI0RURFRDk2
MDAwMjJCODIgLyogV0tJbnNwZWN0b3JEZWxlZ2F0ZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgcGF0aCA9IFdLSW5zcGVjdG9yRGVsZWdhdGUubW07IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTk5RTI4NDYzMjZGOTFGN0YwMDAzRjFGQSAvKiBXS0luc3BlY3RvckV4
dGVuc2lvbkRlbGVnYXRlLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRo
ID0gV0tJbnNwZWN0b3JFeHRlbnNpb25EZWxlZ2F0ZS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJOTlFMjg0NjUyNkY5M0Q3NjAwMDNGMUZBIC8qIEluc3BlY3RvckV4dGVuc2lvbi1U
YWJJY29uLTMweDMwLnBuZyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IGltYWdlLnBuZzsgcGF0aCA9ICJJbnNwZWN0b3JFeHRlbnNpb24tVGFiSWNvbi0z
MHgzMC5wbmciOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5OUUyODQ2NzI2Rjk0MTNC
MDAwM0YxRkEgLyogSW5zcGVjdG9yRXh0ZW5zaW9uLWJhc2ljLXRhYi5odG1sICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dC5odG1sOyBwYXRoID0gIkluc3BlY3RvckV4dGVuc2lvbi1iYXNpYy10YWIuaHRtbCI7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlCMDJFMEQ1MjM1RkE0N0QwMDQwNDRCMiAvKiBU
ZXh0TWFuaXB1bGF0aW9uLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gVGV4dE1hbmlwdWxhdGlv
bi5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUIwNzg2QTIxQzU4ODMwRjAwRDE1
OUUzIC8qIEluamVjdGVkQnVuZGxlTWFrZUFsbFNoYWRvd1Jvb3RzT3Blbi5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbmplY3RlZEJ1bmRsZU1ha2VBbGxTaGFkb3dS
b290c09wZW4uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5QjA3ODZBNDFDNTg4
NUMzMDBEMTU5RTMgLyogSW5qZWN0ZWRCdW5kbGVNYWtlQWxsU2hhZG93Um9vdHNPcGVuX0J1bmRs
ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbmplY3RlZEJ1bmRs
ZU1ha2VBbGxTaGFkb3dSb290c09wZW5fQnVuZGxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTM0NzMsNyArMzQ4MSw2IEBACiAJCQkJNkIyNUE3NTEyNURDOEQ0RTAwNzA3NDRG
IC8qIEV2ZW50QXR0cmlidXRpb24ubW0gKi8sCiAJCQkJQ0RBMjlCMjgyMEZEMkE5OTAwRjE1Q0VE
IC8qIEV4aXRGdWxsc2NyZWVuT25FbnRlclBpUC5tbSAqLywKIAkJCQkxRDEyQkVCRjI0NUJFRjg1
MDA0QzBCN0EgLyogRXhpdFBpUE9uU3VzcGVuZFZpZGVvRWxlbWVudC5tbSAqLywKLQkJCQk1MTgx
OUYyOTI2RUFDOTgyMDBFNDczNzUgLyogRlRQLm1tICovLAogCQkJCTJEODEwNENCMUJFQzEzRTcw
MDIwREE0NiAvKiBGaW5kSW5QYWdlLm1tICovLAogCQkJCTUxMjQyQ0Q0MjM3NEU2MUUwMEVFRDlD
MSAvKiBGaW5kSW5QYWdlQVBJLm1tICovLAogCQkJCTExODE1MzQ3MjIwOEJBREYwMEIyQ0NEMiAv
KiBGaXJzdFZpc3VhbGx5Tm9uRW1wdHlNaWxlc3RvbmUubW0gKi8sCkBAIC0zNDgxLDYgKzM0ODgs
NyBAQAogCQkJCTJFOTJCOEY4MjE2NDkwRUEwMDVCNjRGMCAvKiBGb250QXR0cmlidXRlcy5tbSAq
LywKIAkJCQlGNEZBMjgyOTI0Q0QwMTI3MDA2MThBNDYgLyogRm9ybVZhbGlkYXRpb24ubW0gKi8s
CiAJCQkJNUNCNUIzQkQxRkZDNTE3RTAwQzI3QkIwIC8qIEZyYW1lSGFuZGxlU2VyaWFsaXphdGlv
bi5tbSAqLywKKwkJCQk1MTgxOUYyOTI2RUFDOTgyMDBFNDczNzUgLyogRlRQLm1tICovLAogCQkJ
CUNEQ0Y3OEE3MjQ0QTJFREIwMDQ4MDMxMSAvKiBGdWxsc2NyZWVuQWxlcnQubW0gKi8sCiAJCQkJ
Q0Q3OEUxMUExREI3RUEzNjAwMTRBMkRFIC8qIEZ1bGxzY3JlZW5EZWxlZ2F0ZS5tbSAqLywKIAkJ
CQkzRjFCNTI2ODFEM0Q3MTI5MDA4RDYwQzQgLyogRnVsbHNjcmVlbkxheW91dENvbnN0cmFpbnRz
Lm1tICovLApAQCAtMzY1OCw2ICszNjY2LDcgQEAKIAkJCQkzNzBDRTIyOTFGNTczNDM0MDBFNzQx
MEIgLyogV0tDb250ZW50Vmlld1RhcmdldEZvckFjdGlvbi5tbSAqLywKIAkJCQk1MUQxMjQ5NzFF
NzYzQUY4MDAyQjI4MjAgLyogV0tIVFRQQ29va2llU3RvcmUubW0gKi8sCiAJCQkJOTlCNEY5QzUy
NEVERUQ5NjAwMDIyQjgyIC8qIFdLSW5zcGVjdG9yRGVsZWdhdGUubW0gKi8sCisJCQkJOTlFMjg0
NjMyNkY5MUY3RjAwMDNGMUZBIC8qIFdLSW5zcGVjdG9yRXh0ZW5zaW9uRGVsZWdhdGUubW0gKi8s
CiAJCQkJOTk5QjdFRTIyNTUxQzYzQjAwRjQ1MEE0IC8qIFdLSW5zcGVjdG9yRXh0ZW5zaW9uSG9z
dC5tbSAqLywKIAkJCQlBNUE3MjlGMDFGNjIyQTlBMDBERTVBMjggLyogV0tOYXZpZ2F0aW9uUmVz
cG9uc2UubW0gKi8sCiAJCQkJREY0QjI3MzgyMUE0NzcyNzAwOUJEMUNBIC8qIFdLTlNEaWN0aW9u
YXJ5RW1wdHlEaWN0aW9uYXJ5Q3Jhc2gubW0gKi8sCkBAIC00MDkwLDYgKzQwOTksOCBAQAogCQkJ
CTkzQTI3NEExMjUyMTYzRDYwMEExQjZENCAvKiBJbmRleFVwZ3JhZGVXaXRoTXVsdGlwbGVJbmRp
Y2VzLnNxbGl0ZTMgKi8sCiAJCQkJOTNBMjc0QTQyNTIyNDFEMDAwQTFCNkQ0IC8qIEluZGV4VXBn
cmFkZVdpdGhNdWx0aXBsZUluZGljZXNIYXZlU2FtZUlELnNxbGl0ZTMgKi8sCiAJCQkJMkVGRjA2
Q0MxRDhBNDI5MTAwMDRCQjMwIC8qIGlucHV0LWZpZWxkLWluLXNjcm9sbGFibGUtZG9jdW1lbnQu
aHRtbCAqLywKKwkJCQk5OUUyODQ2NzI2Rjk0MTNCMDAwM0YxRkEgLyogSW5zcGVjdG9yRXh0ZW5z
aW9uLWJhc2ljLXRhYi5odG1sICovLAorCQkJCTk5RTI4NDY1MjZGOTNENzYwMDAzRjFGQSAvKiBJ
bnNwZWN0b3JFeHRlbnNpb24tVGFiSWNvbi0zMHgzMC5wbmcgKi8sCiAJCQkJOTM3QTZDODgyNDM1
N0JGMzAwQzNBNkIwIC8qIEtpbGxXZWJQcm9jZXNzV2l0aE9wZW5Db25uZWN0aW9uLTEuaHRtbCAq
LywKIAkJCQk5MzdBNkM4OTI0MzU3QkYzMDBDM0E2QjAgLyogS2lsbFdlYlByb2Nlc3NXaXRoT3Bl
bkNvbm5lY3Rpb24tMi5odG1sICovLAogCQkJCUY0NTM4RUYwMUU4NDZCNDEwMEI1Qzk1MyAvKiBs
YXJnZS1yZWQtc3F1YXJlLnBuZyAqLywKQEAgLTU1NDEsNiArNTU1Miw3IEBACiAJCQkJN0NDRTdF
QzAxQTQxMUE3RTAwNDQ3QzRDIC8qIEZyYWdtZW50TmF2aWdhdGlvbi5tbSBpbiBTb3VyY2VzICov
LAogCQkJCTdDQ0U3RUY2MUE0MTFBRTYwMDQ0N0M0QyAvKiBGcmFtZU1JTUVUeXBlSFRNTC5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQk3Q0NFN0VGNzFBNDExQUU2MDA0NDdDNEMgLyogRnJhbWVNSU1F
VHlwZVBORy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk1MTgxOUYyQTI2RUFDOTgzMDBFNDczNzUg
LyogRlRQLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0RDRjc4QTgyNDRBMzJGNzAwNDgwMzExIC8q
IEZ1bGxzY3JlZW5BbGVydC5tbSBpbiBTb3VyY2VzICovLAogCQkJCUNENzhFMTFEMURCN0VBNjYw
MDE0QTJERSAvKiBGdWxsc2NyZWVuRGVsZWdhdGUubW0gaW4gU291cmNlcyAqLywKIAkJCQlDREIy
MTNCRDI0RUY1MjI4MDBGREUzMDEgLyogRnVsbHNjcmVlbkZvY3VzLm1tIGluIFNvdXJjZXMgKi8s
CkBAIC01Nzk4LDcgKzU4MTAsNiBAQAogCQkJCTdDQ0U3RjE0MUE0MTFBRTYwMDQ0N0M0QyAvKiBT
aG91bGRLZWVwQ3VycmVudEJhY2tGb3J3YXJkTGlzdEl0ZW1Jbkxpc3QuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMzdCQ0E2MUMxQjU5NkJBOTAwMjAxMkNBIC8qIFNob3VsZE9wZW5FeHRlcm5hbFVS
THNJbk5ld1dpbmRvd0FjdGlvbnMubW0gaW4gU291cmNlcyAqLywKIAkJCQk3QzgzRTBDNTFEMEE2
NTQ2MDBGRUJDRjMgLyogU2hyaW5rVG9GaXQubW0gaW4gU291cmNlcyAqLywKLQkJCQk1MTgxOUYy
QTI2RUFDOTgzMDBFNDczNzUgLyogRlRQLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdFQ0Qx
QTQxMUE3RTAwNDQ3QzRDIC8qIFNpbXBsaWZ5TWFya3VwLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QzE0OUQ1NTAyNDJFOThERjAwM0VCQjEyIC8qIFNsZWVwRGlzYWJsZXIubW0gaW4gU291cmNlcyAq
LywKIAkJCQkyREZGN0I2RDFEQTQ4N0FGMDA4MTQ2MTQgLyogU25hcHNob3RTdG9yZS5tbSBpbiBT
b3VyY2VzICovLApAQCAtNTkzNiw2ICs1OTQ3LDcgQEAKIAkJCQk1MUQxMjQ5ODFFNzYzQjAyMDAy
QjI4MjAgLyogV0tIVFRQQ29va2llU3RvcmUubW0gaW4gU291cmNlcyAqLywKIAkJCQk3Q0NFN0Yx
RDFBNDExQUU2MDA0NDdDNEMgLyogV0tJbWFnZUNyZWF0ZUNHSW1hZ2VDcmFzaC5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQk5OUI0RjlDNjI0RURFRDk3MDAwMjJCODIgLyogV0tJbnNwZWN0b3JEZWxl
Z2F0ZS5tbSBpbiBTb3VyY2VzICovLAorCQkJCTk5RTI4NDY0MjZGOTFGN0YwMDAzRjFGQSAvKiBX
S0luc3BlY3RvckV4dGVuc2lvbkRlbGVnYXRlLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJOTk5QjdF
RTMyNTUxQzYzQjAwRjQ1MEE0IC8qIFdLSW5zcGVjdG9yRXh0ZW5zaW9uSG9zdC5tbSBpbiBTb3Vy
Y2VzICovLAogCQkJCUE1QTcyOUYxMUY2MjJBQTcwMERFNUEyOCAvKiBXS05hdmlnYXRpb25SZXNw
b25zZS5tbSBpbiBTb3VyY2VzICovLAogCQkJCURGNEIyNzM5MjFBNDc3MjgwMDlCRDFDQSAvKiBX
S05TRGljdGlvbmFyeUVtcHR5RGljdGlvbmFyeUNyYXNoLm1tIGluIFNvdXJjZXMgKi8sCkBAIC02
MDE4LDYgKzYwMzAsNyBAQAogCQkJCTVDNDI1OTQ2MjI2NkE2OEEwMDM5QUE3QSAvKiBCYXNpY1By
b3Bvc2VkQ3JlZGVudGlhbFBsdWdJbi5tbSBpbiBTb3VyY2VzICovLAogCQkJCTM3NEI3QTYxMURG
MzcxQ0YwMEFDQ0I2QyAvKiBCdW5kbGVFZGl0aW5nRGVsZWdhdGVQbHVnSW4ubW0gaW4gU291cmNl
cyAqLywKIAkJCQk3QTg5QkI2ODIzMzE2NDNBMDA0MkNCMUUgLyogQnVuZGxlRm9ybURlbGVnYXRl
UGx1Z0luLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJNTE3NUM3QTIyNkY4NzYyMzAwMDNBRjVDIC8q
IEJ1bmRsZVBhZ2VDb25zb2xlTWVzc2FnZS5tbSBpbiBTb3VyY2VzICovLAogCQkJCUExM0VCQkIw
MUI4NzQzNkYwMDA5NzExMCAvKiBCdW5kbGVQYXJhbWV0ZXJzUGx1Z0luLm1tIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMzdBNzA5QUYxRTNFQTk3RTAwQ0E1OTY5IC8qIEJ1bmRsZVJhbmdlSGFuZGxlUGx1
Z0luLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNUM3NTcxNjEyMjEyNEM1MjAwQjlFNUFDIC8qIEJ1
bmRsZVJldGFpblBhZ2VQbHVnSW4ubW0gaW4gU291cmNlcyAqLywKQEAgLTYwMzUsNyArNjA0OCw2
IEBACiAJCQkJMkQzQ0EzQTgyMjFERjRCNDAwODhFODAzIC8qIFBhZ2VPdmVybGF5UGx1Z2luLm1t
IGluIFNvdXJjZXMgKi8sCiAJCQkJRjQ0QzdBMDAyMEY5RUVCRjAwMTQ0NzhDIC8qIFBhcnNlcllp
ZWxkVG9rZW5QbHVnSW4ubW0gaW4gU291cmNlcyAqLywKIAkJCQlBMTNFQkJBQjFCODc0MzQ2MDAw
OTcxMTAgLyogUGxhdGZvcm1VdGlsaXRpZXNDb2NvYS5tbSBpbiBTb3VyY2VzICovLAotCQkJCTUx
NzVDN0EyMjZGODc2MjMwMDAzQUY1QyAvKiBCdW5kbGVQYWdlQ29uc29sZU1lc3NhZ2UubW0gaW4g
U291cmNlcyAqLywKIAkJCQkxQTRGODFDRjFCREZGRDUzMDA0RTY3MkUgLyogUmVtb3RlT2JqZWN0
UmVnaXN0cnlQbHVnSW4ubW0gaW4gU291cmNlcyAqLywKIAkJCQlBMTJEREMwMjFFODM3QzI0MDBD
RjZDQUUgLyogUmVuZGVyZWRJbWFnZVdpdGhPcHRpb25zUGx1Z0luLm1tIGluIFNvdXJjZXMgKi8s
CiAJCQkJNTI0NTE3ODcyMUI5RjU3QjAwODJDQjM0IC8qIFJlbmRlcmluZ1Byb2dyZXNzUGx1Z0lu
Lm1tIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL0luc3BlY3RvckV4dGVuc2lvbi1UYWJJY29uLTMweDMwLnBuZyBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvSW5zcGVjdG9yRXh0ZW5zaW9uLVRhYklj
b24tMzB4MzAucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYyNDNmMGYxMjk2ZWIxOTJlNWUyYzc5ZmI4NTA5NGE1
ZDI1YmUzNTkKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDM3ODAKemNtVjsjNG08SVFQKTxoOzNL
fExrMDAwZTFOSkxUcTAwMTVVMDAxNWsxXkBzNllvSyFCMDAwaClOa2w8WmNtZF91CnpaJXxkfGZ5
ZVJoYkkjIyV8OHYxQkRqfTgtTGtTXnhPOStkR1FrTXtGMzg5MX50WXMtPnR4YylKNWJMSHsqRHsy
LQp6dTEjR19EOWMhdmJ1SHNNbHV9QXJoZj9hR2J5PyREWUZjVjI+cmk3VHkzfHopYyk0NklhUEt7
UGolUnFgJXJiODYKenpVJVltMUo4Tj57Qzt6SSE1cEY5OH5vNz4jUT87OyE1PXp1MzxNYlY4QXsh
VEF8QXM3KyY5I0Uzfnc1U09BT1RsCnozPUxxQWhhNCp9Ul5rc0UpZHJIP0ZrLU4ldEtvZX0mSDRR
R1orO1FKPmlNaEtxYzZoMUMqRXYxXzhRIXtiTkh3Swp6Xy1Fakk+S35wa0pvZWhMa0xtTUFVdV51
OXpWNGV9ZUN5eCFlR1R0X1g7d2RIPD1wJTRwXysjciFmNV9+ZSMxQCEKelZLUzc8dzxkbzVHbXUq
cEo/JHVraFc4dyFAKVRAJiFfZiU8anlPWW1zaUV6THE0a2lWRFAxKUtLcEBmM2Y2PnRRCnpDX3U+
VkpxYGJIYyZfVkM0bTNSVCpXZFo+WmE4LXUwN0M3Qz5YSVNlfEYxV14oTGZ3bytneEBDOUJFR25U
Yl9wMgp6diY2Ykc7SyMybFohKEg1PVVeMTxofXN2YDFnVWFMVFpST0dJLWg7PykzQE03VXcldGZI
R0M/TmZCMTlmQWJXRF8Kej4hMDJPRFF6Rl4kWiRjX0s1TGJ9NH15SUZAPkgtfktpOEZeb1koSlpk
SFRnbWBuX2Rgb0BtIXx0bUx7cz1qITdACnpnPFNeWGtnTkglOSQyQHthJkZyZlY4Rkk/SWlkI3Nh
d08xPDloaTFwaHs8JCZwIW1CbFNTeXlhQ3BUVW1gTzNTSAp6dm9XKmYpNHplXy1KNmJOZD0yN24j
dk9ZNngwK1l1U35tUn1Ic3ZPXlhNN2JoVFFlR3FLTUY2OHpURVZjVSUpNGUKelVSYkQ3VkN9R1RA
NDkldjkhTGtLQldqa0xebjE1YFZOSXI8PEYlZnxkT2c9bFBENU18U3kodHRgSVVQaHN6KzZsCnpV
eEQ3ZzI8KEA7O25+eFJSYTg7fSYpKUwlVyVva1d1VTw7NGA4TEd3ZF87UVUxfXB+WDM3MTIjbUp1
LXVwPVFFTAp6N2Y/KVdMP04mcWNaM3JOcyZVR0dVXm88QDh8WWM/Mzc1ZiEwciRubnt1MnNYM2ZG
ejxgezN6JkRsWXBwUGBTYGMKejNDUGBuOXo5MyREe2B4enQ4ITJETytEdkk/JSVnP3dTaW1fNHJr
ODZIX3Q4fG1zO1NOcH5aSGk9bkV5Oz1MXz47CnolWkh3dj1XQWhNeXtNLWI3OHx1PCthUjFKWUhl
P1RGcDEmbFBMT2tpLVE1UGxGT3R7byl2T2dzPnQ1OX4zJHVITgp6PUZkZjRiaUhPeGMtbUc1dSVz
dz9BbkYlMyhocmBUdl5DR3l6e2VBfEdgQDVtc1B5bHIxZi1TKWxiJFBjUFAocT0KelQqLVozanxV
ZikrVHJVaiRxQmpKZzk4eU15antzKzNqayNKSiF4QlpMaF9lNF4/SjYkTE9rUEtnVX1IUSVAO3Uk
Cno1dHBLX2dLfHdjXiYqTzBCKiRpZm9GRnt3dUlXKnZqQ0pjbHN5N3JLc2Q/UilYMGtMRHlIKFJF
RGVsKWJGWDdZQQp6cD5SM1lkPkkoYD1RMGtEbW5Rc1peSlZaZnJkLT40MTtDI1M1Um5vWGdHdyFS
Z2Nvd1J1az82TztYKHUxNFVRVTkKei1ka3FAeVF6X0JTOTs4bGB3REZKWV84ZVg0b2w3V3I3PSk8
USpRWXIkWFF5Xi00TmpzT0tVRW5ZanNiOWt9aDBwCnp0M2wzfCstcHlPbHFjTm9VSnp4NWwzVHBK
d2hlPyEoJF51WlFtd3ZFRUotS3liSHBXYUV+KitSNTRLcjgxXjVeMAp6Xm17a2dyMnB5QG92P1Ak
Uj0/SEAqYUpJKFgtQ2ErSFIhb2xkS2tTe0RKJkE8OzdwQUJXNGt+ZUg9RDg9MDNyYFMKej8jTUYt
QD84KWY3Q213V3MzVDtWZWdhQ1NJQXVRJHJlWlBiM1RzWV5pUmRZYSpkJVU2N2xCZnVTcGpsN2xo
T0dnCnpTO2JfRzJTbUlmbFR3dkZGSyRWKCtCIX03eFZ9JEokT0hPMFZwUDdacERSdkBvJVU4QkRe
I29CRH5ndDhxIXZpRwp6WmR3MlFNU3plYjRkfCg5SD8/SW85R241bU0ha3A4WW44KEs3SDZJSCNM
S1MkU29WTih6MDxuUjNYZHN8cSRFRUUKekAmSGNESXh5OVZZUCVtSXdKNDZ1bm55Jmh2bFVGNiMy
TSFqTTh0NSQ9PnRVKWVhX1AkNH50Jk1FfDU7czxJb0ZfCnpWYzA3WTk2TDRwcSUrUFE7RVl1NF5u
eTRlUGRFZW1iR2dAZlI0PVR3SjljWVVPSEl+SnokTlhvJGdyWEZCVTRZVgp6MGpKZnVlIzBkSXV4
NWFCemg9a0ZlfiFgWCstaCZRM0ZJYncpcExGVGApPkhpaUFWQ0Q5MHFYI3BFVjFWMnZRd0sKenoq
MHl9UX5fOT45Q0dhaWIwTGxQQlZnKk0oUktfWCtRbmc4ODdMSlR2YG0zaUFuTDckSzsoKSMlWFpD
SFZPVEh2CnpebXpgN00xN3EmRU9wc1Jma3llZD9XbkZ8dmMzJSpHTXttfWZmYEZlYlErTVYkV2lN
N3BTYS1NMSZgIT9xK18hZwp6MDMxYEdvWUc5cnAyWDxZeWpvIXNOSitMZ2xDRllVV1kyflRkKURs
SmQ9a1dZSEUyJSp4dEExWTcpLV5LTXRMQXwKem1JfGo9R2V1TjdZQll6Ync3dj5UR3YkIy1MRnk3
XmsoSFlENnFeOWlOMERnPXM1R1ApKlMrfk5WKWI+RGl2clVICnpwaSlWKV8mYClmQ09MPElpcFdg
NEVsX0dJaWdeYENrJFlsMXBlfjdpKkgmMGx5YGt7UTB6RWFqaih+N08pWDY3Uwp6M007RD5aVURs
TEJRYitPb1RDWEdMMzheMGJ3SDRTVjtyUGpWeDIqZGklNH0yWGZfSXV5JlJNaXErN2N7ZXBgNGYK
ekwhZ3dBOHREYk9tNlY3cEFiY2RyMzgwPjJsZEttP0diQWF6UG80bCRrZHklK1JxaW50Z1lkfDIr
dzRIUCgmb0k1Cnp7YC07V0QpaT8/WWw7RTQpVmJ5YTs4UjstdTdTRDlrK3lMVGh5JkxfQVBpQ1lk
SmgwbXplLV5NKW9CfHJiZC1hRAp6NSQ2dCYpe0JJdy05UXFPXlJsdGlRRGJROTB+RH1LOEFjYD5u
aHFQIWx7OCU+Y19SPUhRWm5FUW1QJmVJTm9gUnwKejBVKis2V0hNaGZ2PjhlY3lKMXc4VlJWTSFu
aFBLanF5KURGVG9hOUp5N2tsJChgbzNFOXs3KWsrNXE4ZlRWT2Z8CnopRnA9eD02d3M5NWhXbDMj
NzE+TklGQmh1RHVudE92M1dIMnQ1Kzx3bnkpZiE/JCllUmhmUGloX0FzSiFMVEhMbgp6YE03MnhT
TEckbVpSJDtGQ29IeXZVWD9DRlhlNSo8a0FrYCpHI3dFT2owQWhrSjMkPXwpbSFwXztaVWAkN31Q
N0YKentmPXMyQnk9V2Y3Y2RucmtLUEJ3Tmh2WXF1ck5NOVptSSFRZm9QfVIwOzE0KzBIX0M2RTM4
TH53S0EzcjthU0BPCnpfLSpJWi1hcndFWnNNRyRBa0BJOXkja2hjPjlXU2FxTU1WSkl0V30+K2Fm
MW4oWnxWJUdGYU0xeVctUkFQYGwoIwp6TyhvbmE0cio+KSVIY0crV3g5Y1ZPQTAtKGJYO0V2TDFg
JmhfKDB2Wj11PHFKWkdyMSVIKmooPio0NkBhRSVpRDIKemZ3NTN+KU54Pj0yKU5GfT97QHotYiNW
ZzFsTXBvc3Atb148e0I9QT11a2RQeF9yUCpsPGp9aVRQeyhYX2FOVTJTCnpYP2oxMTMjOGRjQUBs
PCM/MGFHMTNAdyZEO1A8bVhRbiF4Uk8oUVUwIXxNX0duJSZfPiRxTjNzVT5Pfm40U0A7dQp6MDR4
anljQiUoOzdqRUEoLXJ1MGxgelFReSlXTzJ3ZTdFYHIxU2FRZWNeI0h8e1BpTG9MWTtvVSh5aE8l
ZyleMmUKelU/T3pabUg/IVEzLSVHMUlEQ0MjYG1+LUo5UHpNUjBoYTZVSSMrdEZRYUdGa2JGWm9P
S2xtUH52ejhMQDdSKzc9CnpKX3tlXytebjZjMUdOYUp3R3NtNylLK3NnJXImYyhyZ0hHc3MwQikk
cmFpYnJtXjVQK3twNCR3XygjPzRGeFRjIQp6UTtSZjVlV1I0PCZjKjZfK3ZaTnteV0g5UiQtUTtB
eWwoT31DJWtyNWJBQyllOFRANSlFb3ViPmUxWT83RCtHKHcKekVJQWVhdE1vVFhjYlpgS2lubX5T
VHUlK1EkNilSeVYxTUB5Rj8heyFfSiomK1RMWjFMemM+enxRcSRIOzRHP1pNCnplLWA+JWYxM1d3
Vkd6YVl6UV90I3t1NCRjTjVQakQtbDVGR3RnXlZERD0tdGdGcnt3UD8zKjdAPDF7PHd5IVNrSgp6
dy1VfGlFMzxMeEohZ2AyWEt1fDVwcW48K3EzV0tUPkM/U2lHX3pqYXNNJFZpUWQ0MHIhSSE2JiFA
fkNFRXNWbHEKenJ9Ukc4O045Q2xwODhvbWchVndoRGF7ZnY5bGRubXRzIVhhKV9XTWVSdyshY0wx
K3JSb3gkeUlKYGReelF6YkZLCnpFNCEyNzlmT35veEA+KmwyVTI4c0twdXl7dkJtVEIhUUUjNkg4
bCZTeDZVUTBDWVc7SDRYYnsqYjhOTyZven5ubgp6P0Z+PUNSTE5BUVlTPyRycmFRYXpgUUlocFg7
byk2aG87PUJVLVFLRFJASjF4eHd9WDhiQTVxOEFOe2I8QlNuJTIKejdwfFVyP21hSnoraSR5V25J
Tz1yQ25hWClEVlUjWmN5NlZ+e2s9ZnBlO3dnK2M9SHA3aFI+YWIhX1dQX3JfQnU8CnpXMn1uNyt5
NkhFdi1STCFFN3YqYEEtKHpXOy1xOSlaMUsweTJjZkZANzxEVElJXzVKdTJJZF5Vd2h2NkBeVVZ4
ewp6YT83OGtVSXlAYzBpQGllNXEmO2xhSClmPFVeKlRjIzAlIXVLKD5DNGVOKFc3QSZAR1J7Wnpy
Ji1rKlBkJW5Ffl8Kejh5cCFyMzZiOWNIMylKbTFlNG1fZTswOyZfM1F2Zmp+I3tfZHFDbHAxKStF
dG50U2dYVXJ2WG88fXhPcSZaS01rCnpNe0BOdUwqMER1KVc4NXRIJFBNRVpHdW1CSnYpK2Q4XlJZ
Q3lKLU9iYWkzUWAzNHMhQ0I3b0hHLUc+KU07YW52bgp6MFExRUZOXis8U0ZJWU9tVmBQQT5CSFli
TWttSUNSQGomUTZXQ3BrM1R6M0RERkVfejJwRStNVXY9MXkheCtzOTwKemJPO0BMRlowP0MmfmlT
PkhlaGUpNnZudnVkdyVneWViOUJLV0FFSl5GbX5tR3ZvSE1zPHxwK0Y9PD4mdDJqfURaCnpad3c4
PEg9YipKcSUjZ2Fffkt+VyVeV1p2PWE0dUJAfTYqcXJ+JWEpTit1T1RlWmRzV24qRV8keTVWQmd0
an4pWQp6eG1JNSUkQ3o5N2VJSERXTUA8JlB4ODhaQHlXYyt3WFhXIzhgYUtLJWJkZC1DaSQ+ODg3
NUx6WEZhMngoSFpYRDsKenhnWXF3XzVtWm9LIyE3PlIoZFJ8NUd0aypLWFQkfWMlfUI4TjdaUWZS
TnAmSz5MK0VsPXRmTyNFQzJTI1JyVDU3Cno5a1hZRHB7Z1phKXdfUUFwe2pvVllIaF5fTFJFSzNV
K0JAQEBwPyZAS0EmSGdTI1dOUHN5Xkt3SEtwJU1YI0BTNwp6JSolJGtSaU5LZmtPcWYwb1k/JkFL
R0AtTDYje14wVSY7QV5vKTcoKilAJiUzIXdjaFlgZzJQbV9fcEk7e2BRfD8KemVvQWkySk9PaFgw
V3xqK2BWXzszN3l3IXAwZjxaajBMIT9jP0dUMnVoU24rdyllaH43KmFnMWheYEhHJnN7UyRmCnpZ
JWxrSnJ1Nz4jYD1HKVlLbTVUVDskNE9qRzRTTkJ6cC16d2hzVnBsX08xRiZ1KSVwYF5XYWF4ZEFz
cV58TmJYMQp6V2pEPyhlfSkjJkgzZFBSY2VhQVFFX04zNWVVQiE5YWdLNFdxMnp3WjVBaEZRX3lI
cj1LOyM9clZNQz9NRnlmLTIKdURnUzxyZDFJWmlAQlZZaDw+QUthZjZ7Kn08OWA1SlF6czdiIzNy
bygwMDAwPE1OVU1uTFNUYVNfQnNPcQoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9JbnNwZWN0b3JFeHRlbnNp
b24tYmFzaWMtdGFiLmh0bWwgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L0luc3BlY3RvckV4dGVuc2lvbi1iYXNpYy10YWIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mZTg4YWQwZTlk
ZmQ0YmI3ODQ2ODIxMjgxMDUxNDE2YWI3MGYwYTM1Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9JbnNwZWN0b3JFeHRlbnNpb24tYmFzaWMt
dGFiLmh0bWwKQEAgLTAsMCArMSw2IEBACis8aHRtbD4KKzxib2R5PgorPGgxPlRoaXMgaXMgYSB0
ZXN0IGV4dGVuc2lvbi48L2gxPgorPHA+SW4gYSBub3JtYWwgZXh0ZW5zaW9uLCB0aGlzIGFyZWEg
d291bGQgc2hvdyB0aGUgZXh0ZW5zaW9uJ3MgdXNlciBpbnRlcmZhY2UuPC9wPgorPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9XS0luc3BlY3RvckV4dGVuc2lvbkRlbGVnYXRlLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9XS0luc3BlY3RvckV4dGVuc2lvbkRlbGVnYXRlLm1tCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmY5NDY0YmI2ZGNhZjE3Nzk2ODYyNjUwNTliNTNmNzAzN2U5OGM3NjUKLS0tIC9kZXYvbnVs
bAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLSW5zcGVjdG9y
RXh0ZW5zaW9uRGVsZWdhdGUubW0KQEAgLTAsMCArMSwxNTkgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1w
b3J0ICJjb25maWcuaCIKKworI2ltcG9ydCAiVGVzdC5oIgorI2ltcG9ydCAiVXRpbGl0aWVzLmgi
CisjaW1wb3J0IDxXZWJLaXQvV0tQcmVmZXJlbmNlc1ByaXZhdGUuaD4KKyNpbXBvcnQgPFdlYktp
dC9XS1dlYlZpZXdQcml2YXRlLmg+CisjaW1wb3J0IDxXZWJLaXQvX1dLSW5zcGVjdG9yLmg+Cisj
aW1wb3J0IDxXZWJLaXQvX1dLSW5zcGVjdG9yRXh0ZW5zaW9uLmg+CisjaW1wb3J0IDxXZWJLaXQv
X1dLSW5zcGVjdG9yRXh0ZW5zaW9uRGVsZWdhdGUuaD4KKyNpbXBvcnQgPFdlYktpdC9fV0tJbnNw
ZWN0b3JQcml2YXRlRm9yVGVzdGluZy5oPgorI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgorCisj
aWYgRU5BQkxFKElOU1BFQ1RPUl9FWFRFTlNJT05TKQorCitzdGF0aWMgYm9vbCBkaWRBdHRhY2hM
b2NhbEluc3BlY3RvckNhbGxlZCA9IGZhbHNlOworc3RhdGljIGJvb2wgZGlkU2hvd0V4dGVuc2lv
blRhYldhc0NhbGxlZCA9IGZhbHNlOworc3RhdGljIGJvb2wgZGlkSGlkZUV4dGVuc2lvblRhYldh
c0NhbGxlZCA9IGZhbHNlOworc3RhdGljIGJvb2wgcGVuZGluZ0NhbGxiYWNrV2FzQ2FsbGVkID0g
ZmFsc2U7CitzdGF0aWMgUmV0YWluUHRyPF9XS0luc3BlY3RvckV4dGVuc2lvbj4gc2hhcmVkSW5z
cGVjdG9yRXh0ZW5zaW9uOworc3RhdGljIFJldGFpblB0cjxOU1N0cmluZz4gc2hhcmVkRXh0ZW5z
aW9uVGFiSWRlbnRpZmllcjsKKworc3RhdGljIHZvaWQgcmVzZXRHbG9iYWxTdGF0ZSgpCit7Cisg
ICAgZGlkQXR0YWNoTG9jYWxJbnNwZWN0b3JDYWxsZWQgPSBmYWxzZTsKKyAgICBkaWRTaG93RXh0
ZW5zaW9uVGFiV2FzQ2FsbGVkID0gZmFsc2U7CisgICAgZGlkSGlkZUV4dGVuc2lvblRhYldhc0Nh
bGxlZCA9IGZhbHNlOworICAgIHBlbmRpbmdDYWxsYmFja1dhc0NhbGxlZCA9IGZhbHNlOworfQor
CitAaW50ZXJmYWNlIFVJRGVsZWdhdGVGb3JUZXN0aW5nSW5zcGVjdG9yRXh0ZW5zaW9uRGVsZWdh
dGUgOiBOU09iamVjdCA8V0tVSURlbGVnYXRlPgorQGVuZAorCitAaW1wbGVtZW50YXRpb24gVUlE
ZWxlZ2F0ZUZvclRlc3RpbmdJbnNwZWN0b3JFeHRlbnNpb25EZWxlZ2F0ZQorCistICh2b2lkKV93
ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRpZEF0dGFjaExvY2FsSW5zcGVjdG9yOihfV0tJ
bnNwZWN0b3IgKilpbnNwZWN0b3IKK3sKKyAgICBFWFBFQ1RfRVEod2ViVmlldy5faW5zcGVjdG9y
LCBpbnNwZWN0b3IpOworICAgIGRpZEF0dGFjaExvY2FsSW5zcGVjdG9yQ2FsbGVkID0gdHJ1ZTsK
K30KKworQGVuZAorCisKK0BpbnRlcmZhY2UgSW5zcGVjdG9yRXh0ZW5zaW9uRGVsZWdhdGVGb3JU
ZXN0aW5nIDogTlNPYmplY3QgPF9XS0luc3BlY3RvckV4dGVuc2lvbkRlbGVnYXRlPgorQGVuZAor
CitAaW1wbGVtZW50YXRpb24gSW5zcGVjdG9yRXh0ZW5zaW9uRGVsZWdhdGVGb3JUZXN0aW5nIHsK
K30KKworLSAodm9pZClpbnNwZWN0b3JFeHRlbnNpb246KF9XS0luc3BlY3RvckV4dGVuc2lvbiAq
KWV4dGVuc2lvbiBkaWRTaG93VGFiV2l0aElkZW50aWZpZXI6KE5TU3RyaW5nICopdGFiSWRlbnRp
ZmllcgoreworICAgIGRpZFNob3dFeHRlbnNpb25UYWJXYXNDYWxsZWQgPSB0cnVlOworfQorCist
ICh2b2lkKWluc3BlY3RvckV4dGVuc2lvbjooX1dLSW5zcGVjdG9yRXh0ZW5zaW9uICopZXh0ZW5z
aW9uIGRpZEhpZGVUYWJXaXRoSWRlbnRpZmllcjooTlNTdHJpbmcgKil0YWJJZGVudGlmaWVyCit7
CisgICAgZGlkSGlkZUV4dGVuc2lvblRhYldhc0NhbGxlZCA9IHRydWU7Cit9CisKK0BlbmQKKwor
VEVTVChXS0luc3BlY3RvckV4dGVuc2lvbkRlbGVnYXRlLCBTaG93QW5kSGlkZVRhYkNhbGxiYWNr
cykKK3sKKyAgICByZXNldEdsb2JhbFN0YXRlKCk7CisKKyAgICBhdXRvIHdlYlZpZXdDb25maWd1
cmF0aW9uID0gYWRvcHROUyhbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBuZXddKTsKKyAgICB3ZWJW
aWV3Q29uZmlndXJhdGlvbi5nZXQoKS5wcmVmZXJlbmNlcy5fZGV2ZWxvcGVyRXh0cmFzRW5hYmxl
ZCA9IFlFUzsKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbV0tXZWJWaWV3IGFsbG9jXSBp
bml0V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgODAwLCA2MDApIGNvbmZpZ3VyYXRpb246d2Vi
Vmlld0NvbmZpZ3VyYXRpb24uZ2V0KCldKTsKKyAgICBhdXRvIHVpRGVsZWdhdGUgPSBhZG9wdE5T
KFtVSURlbGVnYXRlRm9yVGVzdGluZ0luc3BlY3RvckV4dGVuc2lvbkRlbGVnYXRlIG5ld10pOwor
CisgICAgW3dlYlZpZXcgc2V0VUlEZWxlZ2F0ZTp1aURlbGVnYXRlLmdldCgpXTsKKyAgICBbd2Vi
VmlldyBsb2FkSFRNTFN0cmluZzpAIjxoZWFkPjx0aXRsZT5UZXN0IHBhZ2UgdG8gYmUgaW5zcGVj
dGVkPC90aXRsZT48L2hlYWQ+PGJvZHk+PHA+RmlsbGVyIGNvbnRlbnQ8L3A+PC9ib2R5PiIgYmFz
ZVVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAImh0dHA6Ly9leGFtcGxlLmNvbS8iXV07CisKKyAg
ICBbW3dlYlZpZXcgX2luc3BlY3Rvcl0gc2hvd107CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6
cnVuKCZkaWRBdHRhY2hMb2NhbEluc3BlY3RvckNhbGxlZCk7CisKKyAgICBhdXRvIGV4dGVuc2lv
bklEID0gW05TVVVJRCBVVUlEXS5VVUlEU3RyaW5nOworICAgIGF1dG8gZXh0ZW5zaW9uRGlzcGxh
eU5hbWUgPSBAIkZpcnN0RXh0ZW5zaW9uIjsKKworICAgIC8vIFJlZ2lzdGVyIHRoZSB0ZXN0IGV4
dGVuc2lvbi4KKyAgICBwZW5kaW5nQ2FsbGJhY2tXYXNDYWxsZWQgPSBmYWxzZTsKKyAgICBbW3dl
YlZpZXcgX2luc3BlY3Rvcl0gcmVnaXN0ZXJFeHRlbnNpb25XaXRoSUQ6ZXh0ZW5zaW9uSUQgZGlz
cGxheU5hbWU6ZXh0ZW5zaW9uRGlzcGxheU5hbWUgY29tcGxldGlvbkhhbmRsZXI6XihOU0Vycm9y
ICogX051bGxhYmxlIGVycm9yLCBfV0tJbnNwZWN0b3JFeHRlbnNpb24gKiBfTnVsbGFibGUgZXh0
ZW5zaW9uKSB7CisgICAgICAgIEVYUEVDVF9OVUxMKGVycm9yKTsKKyAgICAgICAgRVhQRUNUX05P
VF9OVUxMKGV4dGVuc2lvbik7CisgICAgICAgIHNoYXJlZEluc3BlY3RvckV4dGVuc2lvbiA9IGV4
dGVuc2lvbjsKKworICAgICAgICBwZW5kaW5nQ2FsbGJhY2tXYXNDYWxsZWQgPSB0cnVlOworICAg
IH1dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcGVuZGluZ0NhbGxiYWNrV2FzQ2Fs
bGVkKTsKKworICAgIGF1dG8gZXh0ZW5zaW9uRGVsZWdhdGUgPSBhZG9wdE5TKFtJbnNwZWN0b3JF
eHRlbnNpb25EZWxlZ2F0ZUZvclRlc3RpbmcgbmV3XSk7CisgICAgW3NoYXJlZEluc3BlY3RvckV4
dGVuc2lvbiBzZXREZWxlZ2F0ZTpleHRlbnNpb25EZWxlZ2F0ZS5nZXQoKV07CisKKyAgICAvLyBD
cmVhdGUgYW4gZXh0ZW5zaW9uIHRhYi4KKyAgICBhdXRvIGljb25VUkwgPSBbW05TQnVuZGxlIG1h
aW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAiSW5zcGVjdG9yRXh0ZW5zaW9uLVRhYkljb24tMzB4
MzAiIHdpdGhFeHRlbnNpb246QCJwbmciIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVz
b3VyY2VzIl07CisgICAgYXV0byBzb3VyY2VVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVS
TEZvclJlc291cmNlOkAiSW5zcGVjdG9yRXh0ZW5zaW9uLWJhc2ljLXRhYiIgd2l0aEV4dGVuc2lv
bjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CisKKyAg
ICBwZW5kaW5nQ2FsbGJhY2tXYXNDYWxsZWQgPSBmYWxzZTsKKyAgICBbc2hhcmVkSW5zcGVjdG9y
RXh0ZW5zaW9uIGNyZWF0ZVRhYldpdGhOYW1lOkAiRmlyc3RFeHRlbnNpb24tVGFiIiB0YWJJY29u
VVJMOmljb25VUkwgc291cmNlVVJMOnNvdXJjZVVSTCBjb21wbGV0aW9uSGFuZGxlcjpeKE5TRXJy
b3IgKiBfTnVsbGFibGUgZXJyb3IsIE5TU3RyaW5nICogX051bGxhYmxlIGV4dGVuc2lvblRhYklk
ZW50aWZpZXIpIHsKKyAgICAgICAgRVhQRUNUX05VTEwoZXJyb3IpOworICAgICAgICBFWFBFQ1Rf
Tk9UX05VTEwoZXh0ZW5zaW9uVGFiSWRlbnRpZmllcik7CisgICAgICAgIHNoYXJlZEV4dGVuc2lv
blRhYklkZW50aWZpZXIgPSBleHRlbnNpb25UYWJJZGVudGlmaWVyOworCisgICAgICAgIHBlbmRp
bmdDYWxsYmFja1dhc0NhbGxlZCA9IHRydWU7CisgICAgfV07CisgICAgVGVzdFdlYktpdEFQSTo6
VXRpbDo6cnVuKCZwZW5kaW5nQ2FsbGJhY2tXYXNDYWxsZWQpOworCisgICAgLy8gRm9yY2UgYSBr
bm93biBub24tZXh0ZW5zaW9uIHRhYiB0byBiZSBzaG93biBiZWZvcmUgc2hvd2luZyB0aGUgZXh0
ZW5zaW9uIHRhYi4gT3RoZXJ3aXNlLAorICAgIC8vIGlmIHRoZSBleHRlbnNpb24gdGFiIHdhcyBh
bHJlYWR5IG9wZW4sIHRoZW4gdGhpcyB0ZXN0IHdvdWxkIGhhbmcgd2FpdGluZyBmb3IgYSBkaWRT
aG93IGNhbGxiYWNrLgorICAgIFtbd2ViVmlldyBfaW5zcGVjdG9yXSBzaG93Q29uc29sZV07CisK
KyAgICBwZW5kaW5nQ2FsbGJhY2tXYXNDYWxsZWQgPSBmYWxzZTsKKyAgICBbW3dlYlZpZXcgX2lu
c3BlY3Rvcl0gc2hvd0V4dGVuc2lvblRhYldpdGhJZGVudGlmaWVyOnNoYXJlZEV4dGVuc2lvblRh
YklkZW50aWZpZXIuZ2V0KCkgY29tcGxldGlvbkhhbmRsZXI6XihOU0Vycm9yICogX051bGxhYmxl
IGVycm9yKSB7CisgICAgICAgIEVYUEVDVF9OVUxMKGVycm9yKTsKKworICAgICAgICBwZW5kaW5n
Q2FsbGJhY2tXYXNDYWxsZWQgPSB0cnVlOworICAgIH1dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0
aWw6OnJ1bigmcGVuZGluZ0NhbGxiYWNrV2FzQ2FsbGVkKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpV
dGlsOjpydW4oJmRpZFNob3dFeHRlbnNpb25UYWJXYXNDYWxsZWQpOworCisgICAgW1t3ZWJWaWV3
IF9pbnNwZWN0b3JdIHNob3dDb25zb2xlXTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4o
JmRpZEhpZGVFeHRlbnNpb25UYWJXYXNDYWxsZWQpOworCisgICAgLy8gVW5yZWdpc3RlciB0aGUg
dGVzdCBleHRlbnNpb24uCisgICAgcGVuZGluZ0NhbGxiYWNrV2FzQ2FsbGVkID0gZmFsc2U7Cisg
ICAgW1t3ZWJWaWV3IF9pbnNwZWN0b3JdIHVucmVnaXN0ZXJFeHRlbnNpb246c2hhcmVkSW5zcGVj
dG9yRXh0ZW5zaW9uLmdldCgpIGNvbXBsZXRpb25IYW5kbGVyOl4oTlNFcnJvciAqIF9OdWxsYWJs
ZSBlcnJvcikgeworICAgICAgICBFWFBFQ1RfTlVMTChlcnJvcik7CisKKyAgICAgICAgcGVuZGlu
Z0NhbGxiYWNrV2FzQ2FsbGVkID0gdHJ1ZTsKKyAgICB9XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpV
dGlsOjpydW4oJnBlbmRpbmdDYWxsYmFja1dhc0NhbGxlZCk7Cit9CisKKyNlbmRpZiAvLyBFTkFC
TEUoSU5TUEVDVE9SX0VYVEVOU0lPTlMpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>