<?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>211004</bug_id>
          
          <creation_ts>2020-04-24 16:27:53 -0700</creation_ts>
          <short_desc>Create a mechanism to add missing ITP Database tables when the schema is updated</short_desc>
          <delta_ts>2020-05-08 16:25:26 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=211652</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=211653</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="Kate Cheney">katherine_cheney</reporter>
          <assigned_to name="Kate Cheney">katherine_cheney</assigned_to>
          <cc>beidson</cc>
    
    <cc>bfulgham</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wilander</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1645471</commentid>
    <comment_count>0</comment_count>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2020-04-24 16:27:53 -0700</bug_when>
    <thetext>Currently, the database drops all tables and recreates the schema if any table is missing. This is simple, but should probably be updated to use a better approach of adding any missing tables to the database.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1645472</commentid>
    <comment_count>1</comment_count>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2020-04-24 16:29:22 -0700</bug_when>
    <thetext>&lt;rdar://problem/62261187&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1646115</commentid>
    <comment_count>2</comment_count>
      <attachid>397708</attachid>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2020-04-27 11:48:56 -0700</bug_when>
    <thetext>Created attachment 397708
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1646131</commentid>
    <comment_count>3</comment_count>
      <attachid>397714</attachid>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2020-04-27 12:24:11 -0700</bug_when>
    <thetext>Created attachment 397714
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1646197</commentid>
    <comment_count>4</comment_count>
      <attachid>397733</attachid>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2020-04-27 14:06:02 -0700</bug_when>
    <thetext>Created attachment 397733
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1646551</commentid>
    <comment_count>5</comment_count>
      <attachid>397733</attachid>
    <who name="John Wilander">wilander</who>
    <bug_when>2020-04-28 10:23:29 -0700</bug_when>
    <thetext>Comment on attachment 397733
Patch

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

Please address my comments. Other than that, looks good!

&gt; Source/WebKit/ChangeLog:62
&gt; +        the new table wasn&apos;t added upon opening the database.

Your description of the test sounds like the code is still broken. Is it a description of the bug? If so, please rephrase so that the test is described to test fixed functionality. Something like &quot;This tests that the database is not dropped when a new table is added upon opening the database.&quot;

&gt; Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:368
&gt; +void ResourceLoadStatisticsDatabaseStore::isCorrectTableSchema(Vector&lt;String&gt;&amp; missingTables)

We should renamed this function now that it no longer returns a boolean. Would checkForMissingTablesInSchema() work? See my subsequent comment on this.

&gt; Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:478
&gt; +            RELEASE_LOG_ERROR(Network, &quot;%p - ResourceLoadStatisticsDatabaseStore::addMissingTables failed to execute, error message: %&quot; PUBLIC_LOG_STRING, this, m_database.lastErrorMsg());

I assume you want to carry on trying here and not return early on an error.

&gt; Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:493
&gt; +    isCorrectTableSchema(missingTables);

Seeing how this is used, I think it would be better to have a function like this Optional&lt;Vector&lt;String&gt;&gt; ResourceLoadStatisticsDatabaseStore::getMissingTablesInSchema().

&gt; Source/WebKit/NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp:329
&gt; +            completionHandler(false);

We should call ASSERT_NOT_REACHED() here since such a call should never happen. It&apos;s risky since a call to completionHandler(false) will be interpreted as a passing test.

&gt; Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp:1593
&gt; +            return;

This assumes there is only one network process. Is that what you want?

&gt; Tools/ChangeLog:10
&gt; +        the ITP database file, then ensures the pre-seeded data has been

ensures the pre-seeded data is …

&gt; Tools/ChangeLog:11
&gt; +        migrated over and that the schema has all tables (including the

the schema now has all tables …

&gt; Tools/ChangeLog:12
&gt; +        missing one).

previously missing one</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1646555</commentid>
    <comment_count>6</comment_count>
      <attachid>397733</attachid>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2020-04-28 10:42:05 -0700</bug_when>
    <thetext>Comment on attachment 397733
Patch

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

Thanks John!

&gt;&gt; Source/WebKit/ChangeLog:62
&gt;&gt; +        the new table wasn&apos;t added upon opening the database.
&gt; 
&gt; Your description of the test sounds like the code is still broken. Is it a description of the bug? If so, please rephrase so that the test is described to test fixed functionality. Something like &quot;This tests that the database is not dropped when a new table is added upon opening the database.&quot;

Agreed this wording is confusing, I will update it. Your suggestion sounds good.

&gt;&gt; Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:478
&gt;&gt; +            RELEASE_LOG_ERROR(Network, &quot;%p - ResourceLoadStatisticsDatabaseStore::addMissingTables failed to execute, error message: %&quot; PUBLIC_LOG_STRING, this, m_database.lastErrorMsg());
&gt; 
&gt; I assume you want to carry on trying here and not return early on an error.

Yes. I think a best-effort approach is what we&apos;ve done in the past, which means trying to add as many tables as possible.

&gt;&gt; Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:493
&gt;&gt; +    isCorrectTableSchema(missingTables);
&gt; 
&gt; Seeing how this is used, I think it would be better to have a function like this Optional&lt;Vector&lt;String&gt;&gt; ResourceLoadStatisticsDatabaseStore::getMissingTablesInSchema().

Good idea.

&gt;&gt; Source/WebKit/NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp:329
&gt;&gt; +            completionHandler(false);
&gt; 
&gt; We should call ASSERT_NOT_REACHED() here since such a call should never happen. It&apos;s risky since a call to completionHandler(false) will be interpreted as a passing test.

Good idea, I never thought of that. I&apos;ll add it in.

&gt;&gt; Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp:1593
&gt;&gt; +            return;
&gt; 
&gt; This assumes there is only one network process. Is that what you want?

You&apos;re right. This is what I see anywhere else in WebsiteDataStore where the completion handler returns a bool value (see hasLocalStorageForTesting, hasIsolatedSessionForTesting, isResourceLoadStatisticsEphemeral, isRegisteredAsSubresourceUnder, isRegisteredAsRedirectingTo, etc). I wonder if this is a subtle bug in the ITP test code?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1646573</commentid>
    <comment_count>7</comment_count>
      <attachid>397733</attachid>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2020-04-28 11:24:38 -0700</bug_when>
    <thetext>Comment on attachment 397733
Patch

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

&gt;&gt;&gt; Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp:1593
&gt;&gt;&gt; +            return;
&gt;&gt; 
&gt;&gt; This assumes there is only one network process. Is that what you want?
&gt; 
&gt; You&apos;re right. This is what I see anywhere else in WebsiteDataStore where the completion handler returns a bool value (see hasLocalStorageForTesting, hasIsolatedSessionForTesting, isResourceLoadStatisticsEphemeral, isRegisteredAsSubresourceUnder, isRegisteredAsRedirectingTo, etc). I wonder if this is a subtle bug in the ITP test code?

Thinking about it again, I believe we do want to assume there is only one network process. The test creates a single network process, and we don&apos;t need/want the possibility of multiple callbacks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1646587</commentid>
    <comment_count>8</comment_count>
      <attachid>397863</attachid>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2020-04-28 11:54:47 -0700</bug_when>
    <thetext>Created attachment 397863
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1646624</commentid>
    <comment_count>9</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-04-28 12:40:53 -0700</bug_when>
    <thetext>Committed r260841: &lt;https://trac.webkit.org/changeset/260841&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 397863.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1646625</commentid>
    <comment_count>10</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-04-28 12:41:23 -0700</bug_when>
    <thetext>&lt;rdar://problem/62538236&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>397708</attachid>
            <date>2020-04-27 11:48:56 -0700</date>
            <delta_ts>2020-04-27 12:24:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-211004-20200427114855.patch</filename>
            <type>text/plain</type>
            <size>40588</size>
            <attacher name="Kate Cheney">katherine_cheney</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwNjY3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGJiMTU4OWM2YmE5OTY4NjRk
OGEwODgxMDA4MGZiY2JhMzQ0Y2UyYjYuLmQxY2ZkNGI4ZjY5YTUzOGNhNGVkZjNkMmNiZjhhMTNj
MDk3NzRiOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTcgQEAKKzIwMjAtMDQtMjcgIEthdGUgQ2hl
bmV5ICA8a2F0aGVyaW5lX2NoZW5leUBhcHBsZS5jb20+CisKKyAgICAgICAgQ3JlYXRlIGEgbWVj
aGFuaXNtIHRvIGFkZCBtaXNzaW5nIElUUCBEYXRhYmFzZSB0YWJsZXMgd2hlbiB0aGUgc2NoZW1h
IGlzIHVwZGF0ZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIxMTAwNAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjIyNjExODc+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCB1cGRhdGVz
IHRoZSBJVFAgZGF0YWJhc2UgdG8gYmV0dGVyIGhhbmRsZSBhZGRlZCB0YWJsZXMgdG8KKyAgICAg
ICAgdGhlIHNjaGVtYS4gQ3VycmVudGx5IHRoZSBkYXRhYmFzZSBzdG9yZSBkZWxldGVzIGFuZCBy
ZS1jcmVhdGVzIHRoZQorICAgICAgICBkYXRhYmFzZSB3aGVuIGFueSBzY2hlbWEgY2hhbmdlIGlz
IGVuY291bnRlcmVkLiBUaGlzIGlzIHNpbXBsZSBidXQKKyAgICAgICAgd291bGQgcmVzdWx0IGlu
IElUUCBkYXRhIGxvc3MgZHVyaW5nIHNjaGVtYSB1cGRhdGVzLCBzbyB0aGlzIHBhdGNoCisgICAg
ICAgIHNlYXJjaGVzIHRoZSBzY2hlbWEgZm9yIG1pc3NpbmcgdGFibGVzIGFuZCBhZGRzIGFueSBp
dCBmaW5kcy4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VM
b2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpjcmVhdGVU
YWJsZVF1ZXJpZXMpOgorICAgICAgICBDb252ZXJ0IHRoZSB0YWJsZXMgYXJyYXkgdG8gYSBtYXBw
aW5nIG9mIHRhYmxlIG5hbWVzIHRvIHRoZWlyCisgICAgICAgIHJlc3BlY3RpdmUgQ1JFQVRFIFRB
QkxFIHF1ZXJpZXMgc28gd2UgY2FuIGFkZCBtaXNzaW5nIHRhYmxlcyBvbiB0aGUKKyAgICAgICAg
Zmx5LgorCisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0
b3JlOjppc0NvcnJlY3RUYWJsZVNjaGVtYSk6CisgICAgICAgIFVwZGF0ZSBpc0NvcnJlY3RUYWJs
ZVNjaGVtYSgpIHRvIGFwcGVuZCB0byBhIHZlY3RvciBvZiBtaXNzaW5nIHRhYmxlcyBzbworICAg
ICAgICB3ZSBrbm93IHdoaWNoIG5lZWQgdG8gYmUgYWRkZWQuCisKKyAgICAgICAgKFdlYktpdDo6
UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6Om1pZ3JhdGVEYXRhVG9OZXdUYWJs
ZXNJZk5lY2Vzc2FyeSk6CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NE
YXRhYmFzZVN0b3JlOjphZGRNaXNzaW5nVGFibGVzKToKKyAgICAgICAgKFdlYktpdDo6UmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6Om9wZW5BbmRVcGRhdGVTY2hlbWFJZk5lY2Vz
c2FyeSk6CisgICAgICAgIEFkZCBtaXNzaW5nIHRhYmxlcyBpbnN0ZWFkIG9mIGRlbGV0aW5nIHRo
ZSBvbGQgZGF0YWJhc2UgZmlsZS4gQ2hhbmdlZAorICAgICAgICB0aGUgZnVuY3Rpb24gbmFtZSB0
byByZWZsZWN0IHRoaXMuIERlbGV0ZWQgYSBGSVhNRSB3aGljaCB0aGlzIHBhdGNoCisgICAgICAg
IGFkZHJlc3NlcyBidXQgYWRkZWQgYSBuZXcgRklYTUUgZm9yIG1pZ3JhdGluZyBkYXRhIHdoZW4g
YWRkaW5nIG5ldworICAgICAgICBjb2x1bW5zLCB3aGljaCB0aGlzIHBhdGNoIGRvZXMgbm90IGFk
ZHJlc3MuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9h
ZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvQ2xh
c3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OklUUERhdGFiYXNlSGFzQWxsVGFi
bGVzKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NTdG9yZS5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9j
ZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OklUUERhdGFiYXNlSGFz
QWxsVGFibGVzKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oOgor
ICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1tOgorICAgICAg
ICAoLVtXS1dlYnNpdGVEYXRhU3RvcmUgX0lUUERhdGFiYXNlSGFzQWxsVGFibGVzOl0pOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlUHJpdmF0ZS5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpJVFBEYXRhYmFzZUhhc0FsbFRhYmxl
cyk6CisgICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6SVRQRGF0YWJhc2VIYXNBbGxUYWJsZXMp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmg6Cisg
ICAgICAgIEFkZGVkIGFuIFNQSSBjYWxsIHRvIHRlc3QgdGhhdCB0aGUgZGF0YWJhc2Ugc2NoZW1h
IGluY2x1ZGVzIGFsbAorICAgICAgICB0YWJsZXMuIFRoaXMgdGVzdHMgdGhlIGNhc2Ugd2hlcmUg
dGhlIGRhdGFiYXNlIHdhcyBub3QgZHJvcHBlZCBidXQKKyAgICAgICAgdGhlIG5ldyB0YWJsZSB3
YXNuJ3QgYWRkZWQgdXBvbiBvcGVuaW5nIHRoZSBkYXRhYmFzZS4KKworCiAyMDIwLTA0LTI0ICBE
YXZpZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+CiAKICAgICAgICAgVXNlIENvY29hSW1h
Z2UgcGxhdGZvcm0gYWJzdHJhY3Rpb24gZm9yIE5TSW1hZ2UvVUlJbWFnZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRp
c3RpY3NEYXRhYmFzZVN0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xh
c3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5jcHAKaW5kZXggZDQy
MTcyZTg3NjdhMDU3NjE0YjUyOWVhMWI1NjhhMDBlNTI1YmQ5MC4uMGQ4YmFiZjg4NDFiODhmMWNj
ZTgwYzQ1NDk1ODcyM2E2MzMwNzIyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VM
b2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuY3BwCkBAIC0xMzUsMjEgKzEzNSw2IEBAIGNvbnN0
ZXhwciBhdXRvIGdldEFsbFN1YlN0YXRpc3RpY3NVbmRlckRvbWFpblF1ZXJ5ID0gIlNFTEVDVCB0
b3BGcmFtZURvbWFpbklEIEZSCiAgICAgIlVOSU9OIEFMTCBTRUxFQ1QgdG9wRnJhbWVEb21haW5J
RCBGUk9NIFN1YnJlc291cmNlVW5kZXJUb3BGcmFtZURvbWFpbnMgV0hFUkUgc3VicmVzb3VyY2VE
b21haW5JRCA9ID8iCiAgICAgIlVOSU9OIEFMTCBTRUxFQ1QgdG9Eb21haW5JRCBGUk9NIFN1YnJl
c291cmNlVW5pcXVlUmVkaXJlY3RzVG8gV0hFUkUgc3VicmVzb3VyY2VEb21haW5JRCA9ID8iX3M7
CiAKLWNvbnN0IGNoYXIqIHRhYmxlc1tdID0gewotICAgICJPYnNlcnZlZERvbWFpbnMiLAotICAg
ICJUb3BMZXZlbERvbWFpbnMiLAotICAgICJTdG9yYWdlQWNjZXNzVW5kZXJUb3BGcmFtZURvbWFp
bnMiLAotICAgICJUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0c1RvIiwKLSAgICAiVG9wRnJhbWVVbmlx
dWVSZWRpcmVjdHNUb1NpbmNlU2FtZVNpdGVTdHJpY3RFbmZvcmNlbWVudCIsCi0gICAgIlRvcEZy
YW1lVW5pcXVlUmVkaXJlY3RzRnJvbSIsCi0gICAgIlRvcEZyYW1lTGlua0RlY29yYXRpb25zRnJv
bSIsCi0gICAgIlRvcEZyYW1lTG9hZGVkVGhpcmRQYXJ0eVNjcmlwdHMiLAotICAgICJTdWJmcmFt
ZVVuZGVyVG9wRnJhbWVEb21haW5zIiwKLSAgICAiU3VicmVzb3VyY2VVbmRlclRvcEZyYW1lRG9t
YWlucyIsCi0gICAgIlN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RzVG8iLAotICAgICJTdWJyZXNv
dXJjZVVuaXF1ZVJlZGlyZWN0c0Zyb20iCi19OwotCiAvLyBDUkVBVEUgVEFCTEUgUXVlcmllcwog
Y29uc3RleHByIGF1dG8gY3JlYXRlT2JzZXJ2ZWREb21haW4gPSAiQ1JFQVRFIFRBQkxFIE9ic2Vy
dmVkRG9tYWlucyAoIgogICAgICJkb21haW5JRCBJTlRFR0VSIFBSSU1BUlkgS0VZLCByZWdpc3Ry
YWJsZURvbWFpbiBURVhUIE5PVCBOVUxMIFVOSVFVRSBPTiBDT05GTElDVCBGQUlMLCBsYXN0U2Vl
biBSRUFMIE5PVCBOVUxMLCAiCkBAIC0yNTYsNiArMjQxLDI3IEBAIHN0YXRpYyBib29sIG5lZWRz
TmV3Q3JlYXRlVGFibGVTY2hlbWEoY29uc3QgU3RyaW5nJiBzY2hlbWEpCiAgICAgcmV0dXJuIHNj
aGVtYS5jb250YWlucygiUkVGRVJFTkNFUyBUb3BMZXZlbERvbWFpbnMiKTsKIH0KIAorc3RhdGlj
IGNvbnN0IEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+JiBjcmVhdGVUYWJsZVF1ZXJpZXMoKQorewor
ICAgIHN0YXRpYyBhdXRvIGNyZWF0ZVRhYmxlUXVlcmllcyA9IG1ha2VOZXZlckRlc3Ryb3llZChI
YXNoTWFwPFN0cmluZywgU3RyaW5nPiB7CisgICAgICAgIHsgIk9ic2VydmVkRG9tYWlucyJfcywg
Y3JlYXRlT2JzZXJ2ZWREb21haW59LAorICAgICAgICB7ICJUb3BMZXZlbERvbWFpbnMiX3MsIGNy
ZWF0ZVRvcExldmVsRG9tYWluc30sCisgICAgICAgIHsgIlN0b3JhZ2VBY2Nlc3NVbmRlclRvcEZy
YW1lRG9tYWlucyJfcywgY3JlYXRlU3RvcmFnZUFjY2Vzc1VuZGVyVG9wRnJhbWVEb21haW5zfSwK
KyAgICAgICAgeyAiVG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNUbyJfcywgY3JlYXRlVG9wRnJhbWVV
bmlxdWVSZWRpcmVjdHNUb30sCisgICAgICAgIHsgIlRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzVG9T
aW5jZVNhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnQiX3MsIGNyZWF0ZVRvcEZyYW1lVW5pcXVlUmVk
aXJlY3RzVG9TaW5jZVNhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnR9LAorICAgICAgICB7ICJUb3BG
cmFtZVVuaXF1ZVJlZGlyZWN0c0Zyb20iX3MsIGNyZWF0ZVRvcEZyYW1lVW5pcXVlUmVkaXJlY3Rz
RnJvbX0sCisgICAgICAgIHsgIlRvcEZyYW1lTGlua0RlY29yYXRpb25zRnJvbSJfcywgY3JlYXRl
VG9wRnJhbWVMaW5rRGVjb3JhdGlvbnNGcm9tfSwKKyAgICAgICAgeyAiVG9wRnJhbWVMb2FkZWRU
aGlyZFBhcnR5U2NyaXB0cyJfcywgY3JlYXRlVG9wRnJhbWVMb2FkZWRUaGlyZFBhcnR5U2NyaXB0
c30sCisgICAgICAgIHsgIlN1YmZyYW1lVW5kZXJUb3BGcmFtZURvbWFpbnMiX3MsIGNyZWF0ZVN1
YmZyYW1lVW5kZXJUb3BGcmFtZURvbWFpbnN9LAorICAgICAgICB7ICJTdWJyZXNvdXJjZVVuZGVy
VG9wRnJhbWVEb21haW5zIl9zLCBjcmVhdGVTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVEb21haW5z
fSwKKyAgICAgICAgeyAiU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNUbyJfcywgY3JlYXRlU3Vi
cmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNUb30sCisgICAgICAgIHsgIlN1YnJlc291cmNlVW5pcXVl
UmVkaXJlY3RzRnJvbSJfcywgY3JlYXRlU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNGcm9tfQor
ICAgIH0pOworICAgIAorICAgIHJldHVybiBjcmVhdGVUYWJsZVF1ZXJpZXM7Cit9CisKKwogUmVz
b3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NE
YXRhYmFzZVN0b3JlKFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZSYgc3RvcmUsIFdvcmtR
dWV1ZSYgd29ya1F1ZXVlLCBTaG91bGRJbmNsdWRlTG9jYWxob3N0IHNob3VsZEluY2x1ZGVMb2Nh
bGhvc3QsIGNvbnN0IFN0cmluZyYgc3RvcmFnZURpcmVjdG9yeVBhdGgsIFBBTDo6U2Vzc2lvbklE
IHNlc3Npb25JRCkKICAgICA6IFJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZShzdG9yZSwgd29y
a1F1ZXVlLCBzaG91bGRJbmNsdWRlTG9jYWxob3N0KQogICAgICwgbV9zdG9yYWdlRGlyZWN0b3J5
UGF0aChzdG9yYWdlRGlyZWN0b3J5UGF0aCArICIvb2JzZXJ2YXRpb25zLmRiIikKQEAgLTI5NCw3
ICszMDAsNyBAQCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6UmVzb3VyY2VM
b2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUoV2ViUmVzbwogewogICAgIEFTU0VSVCghUnVuTG9v
cDo6aXNNYWluKCkpOwogCi0gICAgb3BlbkFuZERyb3BPbGREYXRhYmFzZUlmTmVjZXNzYXJ5KCk7
CisgICAgb3BlbkFuZFVwZGF0ZVNjaGVtYUlmTmVjZXNzYXJ5KCk7CiAgICAgZW5hYmxlRm9yZWln
bktleXMoKTsKIAogICAgIC8vIFNpbmNlIHdlIGFyZSB1c2luZyBhIHdvcmtlclF1ZXVlLCB0aGUg
c2VxdWVudGlhbCBkaXNwYXRjaCBibG9ja3MgbWF5IGJlIGNhbGxlZCBieSBkaWZmZXJlbnQgdGhy
ZWFkcy4KQEAgLTM0MiwyNyArMzQ4LDI1IEBAIHN0YXRpYyB2b2lkIHJlc2V0U3RhdGVtZW50KFNR
TGl0ZVN0YXRlbWVudCYgc3RhdGVtZW50KQogICAgIEFTU0VSVF9VTlVTRUQocmVzZXRSZXN1bHQs
IHJlc2V0UmVzdWx0ID09IFNRTElURV9PSyk7CiB9CiAKLWJvb2wgUmVzb3VyY2VMb2FkU3RhdGlz
dGljc0RhdGFiYXNlU3RvcmU6OmlzQ29ycmVjdFRhYmxlU2NoZW1hKCkKK3ZvaWQgUmVzb3VyY2VM
b2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmlzQ29ycmVjdFRhYmxlU2NoZW1hKFZlY3RvcjxT
dHJpbmc+JiBtaXNzaW5nVGFibGVzKQogewogICAgIFNRTGl0ZVN0YXRlbWVudCBzdGF0ZW1lbnQo
bV9kYXRhYmFzZSwgIlNFTEVDVCAxIGZyb20gc3FsaXRlX21hc3RlciBXSEVSRSB0eXBlPSd0YWJs
ZScgYW5kIHRibF9uYW1lPT8iKTsKICAgICBpZiAoc3RhdGVtZW50LnByZXBhcmUoKSAhPSBTUUxJ
VEVfT0spIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTmV0d29yaywgIiVwIC0gUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmlzQ29ycmVjdFRhYmxlU2NoZW1hIGZhaWxl
ZCB0byBwcmVwYXJlLCBlcnJvciBtZXNzYWdlOiAlIiBQVUJMSUNfTE9HX1NUUklORywgdGhpcywg
bV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7Ci0gICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAg
ICAgcmV0dXJuOwogICAgIH0KIAotICAgIGJvb2wgaGFzQWxsVGFibGVzID0gdHJ1ZTsKLSAgICBm
b3IgKGF1dG8gdGFibGUgOiB0YWJsZXMpIHsKKyAgICBmb3IgKGF1dG8mIHRhYmxlIDogY3JlYXRl
VGFibGVRdWVyaWVzKCkua2V5cygpKSB7CiAgICAgICAgIGlmIChzdGF0ZW1lbnQuYmluZFRleHQo
MSwgdGFibGUpICE9IFNRTElURV9PSykgewogICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1Io
TmV0d29yaywgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmlzQ29y
cmVjdFRhYmxlU2NoZW1hIGZhaWxlZCB0byBiaW5kLCBlcnJvciBtZXNzYWdlOiAlIiBQVUJMSUNf
TE9HX1NUUklORywgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7Ci0gICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICAgICAg
aWYgKHN0YXRlbWVudC5zdGVwKCkgIT0gU1FMSVRFX1JPVykgewotICAgICAgICAgICAgUkVMRUFT
RV9MT0dfRVJST1IoTmV0d29yaywgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNl
U3RvcmU6OmlzQ29ycmVjdFRhYmxlU2NoZW1hIHNjaGVtYSBpcyBtaXNzaW5nIHRhYmxlOiAlcyIs
IHRoaXMsIHRhYmxlKTsKLSAgICAgICAgICAgIGhhc0FsbFRhYmxlcyA9IGZhbHNlOworICAgICAg
ICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTmV0d29yaywgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlz
dGljc0RhdGFiYXNlU3RvcmU6OmlzQ29ycmVjdFRhYmxlU2NoZW1hIHNjaGVtYSBpcyBtaXNzaW5n
IHRhYmxlOiAlcyIsIHRoaXMsIHRhYmxlLmFzY2lpKCkuZGF0YSgpKTsKKyAgICAgICAgICAgIG1p
c3NpbmdUYWJsZXMuYXBwZW5kKFN0cmluZyh0YWJsZSkpOwogICAgICAgICB9CiAgICAgICAgIHJl
c2V0U3RhdGVtZW50KHN0YXRlbWVudCk7CiAgICAgfQotICAgIHJldHVybiBoYXNBbGxUYWJsZXM7
CiB9CiAKIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmVuYWJsZUZv
cmVpZ25LZXlzKCkKQEAgLTQwNiw3ICs0MTAsNyBAQCB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NEYXRhYmFzZVN0b3JlOjptaWdyYXRlRGF0YVRvTmV3VGFibGVzSWZOZWNlc3NhcnkoKQogICAg
IFNRTGl0ZVRyYW5zYWN0aW9uIHRyYW5zYWN0aW9uKG1fZGF0YWJhc2UpOwogICAgIHRyYW5zYWN0
aW9uLmJlZ2luKCk7CiAKLSAgICBmb3IgKGF1dG8mIHRhYmxlIDogdGFibGVzKSB7CisgICAgZm9y
IChhdXRvJiB0YWJsZSA6IGNyZWF0ZVRhYmxlUXVlcmllcygpLmtleXMoKSkgewogICAgICAgICBh
dXRvIHF1ZXJ5ID0gbWFrZVN0cmluZygiQUxURVIgVEFCTEUgIiwgdGFibGUsICIgUkVOQU1FIFRP
IF8iLCB0YWJsZSk7CiAgICAgICAgIFNRTGl0ZVN0YXRlbWVudCBhbHRlclRhYmxlKG1fZGF0YWJh
c2UsIHF1ZXJ5KTsKICAgICAgICAgaWYgKGFsdGVyVGFibGUucHJlcGFyZSgpICE9IFNRTElURV9P
SyB8fCBhbHRlclRhYmxlLnN0ZXAoKSAhPSBTUUxJVEVfRE9ORSkgewpAQCAtNDIyLDcgKzQyNiw3
IEBAIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6Om1pZ3JhdGVEYXRh
VG9OZXdUYWJsZXNJZk5lY2Vzc2FyeSgpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBm
b3IgKGF1dG8mIHRhYmxlIDogdGFibGVzKSB7CisgICAgZm9yIChhdXRvJiB0YWJsZSA6IGNyZWF0
ZVRhYmxlUXVlcmllcygpLmtleXMoKSkgewogICAgICAgICBhdXRvIHF1ZXJ5ID0gbWFrZVN0cmlu
ZygiSU5TRVJUIElOVE8gIiwgdGFibGUsICIgU0VMRUNUICogRlJPTSBfIiwgdGFibGUpOwogICAg
ICAgICBTUUxpdGVTdGF0ZW1lbnQgbWlncmF0ZVRhYmxlRGF0YShtX2RhdGFiYXNlLCBxdWVyeSk7
CiAgICAgICAgIGlmIChtaWdyYXRlVGFibGVEYXRhLnByZXBhcmUoKSAhPSBTUUxJVEVfT0sgfHwg
bWlncmF0ZVRhYmxlRGF0YS5zdGVwKCkgIT0gU1FMSVRFX0RPTkUpIHsKQEAgLTQ0OSwxNyArNDUz
LDIzIEBAIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6Om1pZ3JhdGVE
YXRhVG9OZXdUYWJsZXNJZk5lY2Vzc2FyeSgpCiAgICAgfQogfQogCi12b2lkIFJlc291cmNlTG9h
ZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpvcGVuQW5kRHJvcE9sZERhdGFiYXNlSWZOZWNlc3Nh
cnkoKQordm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6YWRkTWlzc2lu
Z1RhYmxlcyhWZWN0b3I8U3RyaW5nPiYgbWlzc2luZ1RhYmxlcykKK3sKKyAgICBmb3IgKGF1dG8m
IHRhYmxlIDogbWlzc2luZ1RhYmxlcykgeworICAgICAgICBhdXRvIGNyZWF0ZVRhYmxlUXVlcnkg
PSBjcmVhdGVUYWJsZVF1ZXJpZXMoKS5nZXQodGFibGUpOworICAgICAgICBpZiAoIW1fZGF0YWJh
c2UuZXhlY3V0ZUNvbW1hbmQoY3JlYXRlVGFibGVRdWVyeSkpCisgICAgICAgICAgICBSRUxFQVNF
X0xPR19FUlJPUihOZXR3b3JrLCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VT
dG9yZTo6YWRkTWlzc2luZ1RhYmxlcyBmYWlsZWQgdG8gZXhlY3V0ZSwgZXJyb3IgbWVzc2FnZTog
JSIgUFVCTElDX0xPR19TVFJJTkcsIHRoaXMsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOwor
ICAgIH0KK30KKwordm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6b3Bl
bkFuZFVwZGF0ZVNjaGVtYUlmTmVjZXNzYXJ5KCkKIHsKICAgICBvcGVuSVRQRGF0YWJhc2UoKTsK
IAotICAgIGlmICghaXNDb3JyZWN0VGFibGVTY2hlbWEoKSkgewotICAgICAgICBtX2RhdGFiYXNl
LmNsb3NlKCk7Ci0gICAgICAgIC8vIEZJWE1FOiBNaWdyYXRlIGV4aXN0aW5nIGRhdGEgdG8gbmV3
IGRhdGFiYXNlIGZpbGUgaW5zdGVhZCBvZiBkZWxldGluZyBpdCAoMjA0NDgyKS4KLSAgICAgICAg
RmlsZVN5c3RlbTo6ZGVsZXRlRmlsZShtX3N0b3JhZ2VEaXJlY3RvcnlQYXRoKTsKLSAgICAgICAg
b3BlbklUUERhdGFiYXNlKCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9CisgICAgVmVjdG9yPFN0
cmluZz4gbWlzc2luZ1RhYmxlczsKKyAgICBpc0NvcnJlY3RUYWJsZVNjaGVtYShtaXNzaW5nVGFi
bGVzKTsKKyAgICBpZiAoIW1pc3NpbmdUYWJsZXMuaXNFbXB0eSgpKQorICAgICAgICBhZGRNaXNz
aW5nVGFibGVzKG1pc3NpbmdUYWJsZXMpOwogCiAgICAgU3RyaW5nIGN1cnJlbnRTY2hlbWE7CiAg
ICAgewpAQCAtNDg1LDcgKzQ5NSw4IEBAIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFi
YXNlU3RvcmU6Om9wZW5BbmREcm9wT2xkRGF0YWJhc2VJZk5lY2Vzc2FyeSgpCiAKICAgICBBU1NF
UlQoIWN1cnJlbnRTY2hlbWEuaXNFbXB0eSgpKTsKIAotICAgIC8vIElmIHRoZSBzY2hlbWEgaW4g
dGhlIFJlc291cmNlTG9hZFN0YXRpc3RpY3MgZGlyZWN0b3J5IGlzIG5vdCB0aGUgY3VycmVudCBz
Y2hlbWEsIGRlbGV0ZSB0aGUgZGF0YWJhc2UgZmlsZS4KKyAgICAvLyBJZiB0aGUgT2JzZXJ2ZWRE
b21haW5zIHNjaGVtYSBpbiB0aGUgUmVzb3VyY2VMb2FkU3RhdGlzdGljcyBkaXJlY3RvcnkgaXMg
bm90IHRoZSBjdXJyZW50IHNjaGVtYSwgZGVsZXRlIHRoZSBkYXRhYmFzZSBmaWxlLgorICAgIC8v
IEZJWE1FOiBNaWdyYXRlIG9sZCBPYnNlcnZlZERvbWFpbnMgZGF0YSB0byBuZXcgdGFibGUgc2No
ZW1hLgogICAgIGlmIChjdXJyZW50U2NoZW1hICE9IE9ic2VydmVkRG9tYWluc1RhYmxlU2NoZW1h
VjEoKSAmJiBjdXJyZW50U2NoZW1hICE9IE9ic2VydmVkRG9tYWluc1RhYmxlU2NoZW1hVjFBbHRl
cm5hdGUoKSkgewogICAgICAgICBtX2RhdGFiYXNlLmNsb3NlKCk7CiAgICAgICAgIEZpbGVTeXN0
ZW06OmRlbGV0ZUZpbGUobV9zdG9yYWdlRGlyZWN0b3J5UGF0aCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c0RhdGFiYXNlU3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmll
ci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5oCmluZGV4IDA5NzdjNTFhOTg3
ZTQ1MDJiMjUxNjI2MDI1ZjQ3MDllNWZmZjc0M2EuLjk5MTNkOTQ0MmVmMDBhMWU3MmViMGJhM2Rm
NjE0NmViNWYyMzc0OWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
Q2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0
aWNzRGF0YWJhc2VTdG9yZS5oCkBAIC0xMzgsMTYgKzEzOCwxNyBAQCBwdWJsaWM6CiAgICAgU2Vj
b25kcyBnZXRNb3N0UmVjZW50bHlVcGRhdGVkVGltZXN0YW1wKGNvbnN0IFJlZ2lzdHJhYmxlRG9t
YWluJiwgY29uc3QgVG9wRnJhbWVEb21haW4mKSBjb25zdDsKICAgICBib29sIGlzTmV3UmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlRmlsZSgpIGNvbnN0IHsgcmV0dXJuIG1faXNOZXdSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VGaWxlOyB9CiAgICAgdm9pZCBzZXRJc05ld1Jlc291
cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZUZpbGUoYm9vbCBpc05ld1Jlc291cmNlTG9hZFN0YXRp
c3RpY3NEYXRhYmFzZUZpbGUpIHsgbV9pc05ld1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFz
ZUZpbGUgPSBpc05ld1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZUZpbGU7IH0KKyAgICB2
b2lkIGlzQ29ycmVjdFRhYmxlU2NoZW1hKFZlY3RvcjxTdHJpbmc+Jik7CiAKIHByaXZhdGU6CiAg
ICAgdm9pZCBvcGVuSVRQRGF0YWJhc2UoKTsKLSAgICBib29sIGlzQ29ycmVjdFRhYmxlU2NoZW1h
KCk7CisgICAgdm9pZCBhZGRNaXNzaW5nVGFibGVzKFZlY3RvcjxTdHJpbmc+Jik7CiAgICAgdm9p
ZCBlbmFibGVGb3JlaWduS2V5cygpOwogICAgIGJvb2wgaXNNaWdyYXRpb25OZWNlc3NhcnkoKTsK
ICAgICB2b2lkIG1pZ3JhdGVEYXRhVG9OZXdUYWJsZXNJZk5lY2Vzc2FyeSgpOwogICAgIGJvb2wg
aGFzU3RvcmFnZUFjY2Vzcyhjb25zdCBUb3BGcmFtZURvbWFpbiYsIGNvbnN0IFN1YkZyYW1lRG9t
YWluJikgY29uc3Q7CiAgICAgVmVjdG9yPFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6
VGhpcmRQYXJ0eURhdGFGb3JTcGVjaWZpY0ZpcnN0UGFydHk+IGdldFRoaXJkUGFydHlEYXRhRm9y
U3BlY2lmaWNGaXJzdFBhcnR5RG9tYWlucyh1bnNpZ25lZCwgY29uc3QgUmVnaXN0cmFibGVEb21h
aW4mKSBjb25zdDsKLSAgICB2b2lkIG9wZW5BbmREcm9wT2xkRGF0YWJhc2VJZk5lY2Vzc2FyeSgp
OworICAgIHZvaWQgb3BlbkFuZFVwZGF0ZVNjaGVtYUlmTmVjZXNzYXJ5KCk7CiAgICAgU3RyaW5n
IGdldERvbWFpblN0cmluZ0Zyb21Eb21haW5JRCh1bnNpZ25lZCkgY29uc3Q7CiAgICAgU3RyaW5n
IGdldFN1YlN0YXRpc3RpY1N0YXRlbWVudChjb25zdCBTdHJpbmcmKSBjb25zdDsKICAgICB2b2lk
IGFwcGVuZFN1YlN0YXRpc3RpY0xpc3QoU3RyaW5nQnVpbGRlciYsIGNvbnN0IFN0cmluZyYgdGFi
bGVOYW1lLCBjb25zdCBTdHJpbmcmIGRvbWFpbikgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c1N0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwCmluZGV4IDFlZjhhY2RiNTU1MGE4ZjZmYWRm
ZjZjYzE4ZjA0YWM3OGFkMTAxNDYuLjE3MDczNjcwNDBiOTgyMjQ1MmE0ODRmZTAwNzUxMjk3YzQ1
MjE0NzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmll
ci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUu
Y3BwCkBAIC0zMjAsNiArMzIwLDIzIEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0
b3JlOjpzY2hlZHVsZVN0YXRpc3RpY3NBbmREYXRhUmVjb3Jkc1Byb2Nlc3NpbmcoCiAgICAgfSk7
CiB9CiAKK3ZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpJVFBEYXRhYmFzZUhh
c0FsbFRhYmxlcyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5k
bGVyKQoreworICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CisgICAgCisgICAgcG9zdFRh
c2soW3RoaXMsIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcild
KCkgbXV0YWJsZSB7IAorICAgICAgICBpZiAoIW1fc3RhdGlzdGljc1N0b3JlIHx8ICFpczxSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZT4oKm1fc3RhdGlzdGljc1N0b3JlKSkgewor
ICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOworICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICB9CisgICAgICAgIFZlY3RvcjxTdHJpbmc+IG1pc3NpbmdUYWJsZXM7CisgICAg
ICAgIGRvd25jYXN0PFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlPigqbV9zdGF0
aXN0aWNzU3RvcmUpLmlzQ29ycmVjdFRhYmxlU2NoZW1hKG1pc3NpbmdUYWJsZXMpOworICAgICAg
ICBwb3N0VGFza1JlcGx5KFtoYXNBbGxUYWJsZXMgPSBtaXNzaW5nVGFibGVzLmlzRW1wdHkoKSwg
Y29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0gKCkgbXV0YWJs
ZSB7CisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihoYXNBbGxUYWJsZXMpOworICAgICAg
ICB9KTsKKyAgICB9KTsKK30KKwogdm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6
OnJlc291cmNlTG9hZFN0YXRpc3RpY3NVcGRhdGVkKFZlY3RvcjxSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzPiYmIHN0YXRpc3RpY3MpCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
Q2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaAppbmRleCAzMDMwYTRk
ODYwMmM4NjVjNTgzODI2ZGQyYWJkMGM2NDQ4YzZlZDI2Li4wYjQ5MjU3Zjk3YmQwNjA1MjUxOTQ0
YmEzMWUwNzhhZjFjMzQzMTgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmgKKysrIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRp
c3RpY3NTdG9yZS5oCkBAIC0yNTAsNiArMjUwLDcgQEAgc3RydWN0IFRoaXJkUGFydHlEYXRhIHsK
ICAgICB2b2lkIHNjaGVkdWxlQ29va2llQmxvY2tpbmdVcGRhdGUoQ29tcGxldGlvbkhhbmRsZXI8
dm9pZCgpPiYmKTsKICAgICB2b2lkIHNjaGVkdWxlQ29va2llQmxvY2tpbmdVcGRhdGVGb3JEb21h
aW5zKGNvbnN0IFZlY3RvcjxSZWdpc3RyYWJsZURvbWFpbj4mLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKCk+JiYpOwogICAgIHZvaWQgc2NoZWR1bGVTdGF0aXN0aWNzQW5kRGF0YVJlY29yZHNQcm9j
ZXNzaW5nKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CisgICAgdm9pZCBJVFBEYXRhYmFz
ZUhhc0FsbFRhYmxlcyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKICAgICB2b2lk
IHN1Ym1pdFRlbGVtZXRyeShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQg
c2NoZWR1bGVDbGVhckluTWVtb3J5QW5kUGVyc2lzdGVudChTaG91bGRHcmFuZGZhdGhlclN0YXRp
c3RpY3MsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBzY2hlZHVsZUNs
ZWFySW5NZW1vcnlBbmRQZXJzaXN0ZW50KFdhbGxUaW1lIG1vZGlmaWVkU2luY2UsIFNob3VsZEdy
YW5kZmF0aGVyU3RhdGlzdGljcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKaW5kZXggZjYy
ZTk4NjEwZGQyZTc0ZWZjZjBjODk5NDc1ZTZkMDk1YjhmOTE2Yi4uYTIxOGUyZjNhMmZhMjcyZDAx
NDU5MTJkNWJjMjlkMjFhZjMxMzljMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKQEAgLTgyMCw2ICs4MjAsMTkgQEAgdm9pZCBOZXR3b3Jr
UHJvY2Vzczo6c2NoZWR1bGVTdGF0aXN0aWNzQW5kRGF0YVJlY29yZHNQcm9jZXNzaW5nKFBBTDo6
U2Vzc2lvbklEIHMKICAgICB9CiB9CiAKK3ZvaWQgTmV0d29ya1Byb2Nlc3M6OklUUERhdGFiYXNl
SGFzQWxsVGFibGVzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBpZiAoYXV0byogbmV0d29y
a1Nlc3Npb24gPSB0aGlzLT5uZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpKSB7CisgICAgICAgIGlm
IChhdXRvKiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzID0gbmV0d29ya1Nlc3Npb24tPnJlc291cmNl
TG9hZFN0YXRpc3RpY3MoKSkKKyAgICAgICAgICAgIHJlc291cmNlTG9hZFN0YXRpc3RpY3MtPklU
UERhdGFiYXNlSGFzQWxsVGFibGVzKFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICAg
ICAgZWxzZQorICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOworICAgIH0gZWxz
ZSB7CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBjb21wbGV0aW9uSGFu
ZGxlcihmYWxzZSk7CisgICAgfQorfQorCiB2b2lkIE5ldHdvcmtQcm9jZXNzOjpzZXROb3RpZnlQ
YWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwg
Ym9vbCB2YWx1ZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVy
KQogewogICAgIGlmIChhdXRvKiBuZXR3b3JrU2Vzc2lvbiA9IHRoaXMtPm5ldHdvcmtTZXNzaW9u
KHNlc3Npb25JRCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Byb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1By
b2Nlc3MuaAppbmRleCA2ZDg2Y2E5NDQwOWJiMGY5ZDkzMzhkZmE1NmQ2ZDI3YmNlZTE4ZjMxLi41
MzgzYzFiMmQ5OGUzZjZhMTA0MGNiNDE0ZGQ2YjQ2YmNmM2ZlMjhmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKKysrIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCkBAIC0yMzcsNiArMjM3LDcgQEAg
cHVibGljOgogICAgIHZvaWQgZ2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFTdW1tYXJ5KFBB
TDo6U2Vzc2lvbklELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFZlY3RvcjxXZWJSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzU3RvcmU6OlRoaXJkUGFydHlEYXRhPiYmKT4mJik7CiAgICAgdm9pZCBzY2hl
ZHVsZUNvb2tpZUJsb2NraW5nVXBkYXRlKFBBTDo6U2Vzc2lvbklELCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKCk+JiYpOwogICAgIHZvaWQgc2NoZWR1bGVTdGF0aXN0aWNzQW5kRGF0YVJlY29yZHNQ
cm9jZXNzaW5nKFBBTDo6U2Vzc2lvbklELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwor
ICAgIHZvaWQgSVRQRGF0YWJhc2VIYXNBbGxUYWJsZXMoUEFMOjpTZXNzaW9uSUQsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwogICAgIHZvaWQgc3VibWl0VGVsZW1ldHJ5KFBBTDo6
U2Vzc2lvbklELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgc2V0Q2Fj
aGVNYXhBZ2VDYXBGb3JQcmV2YWxlbnRSZXNvdXJjZXMoUEFMOjpTZXNzaW9uSUQsIFNlY29uZHMs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBzZXRHcmFuZGZhdGhlcmlu
Z1RpbWUoUEFMOjpTZXNzaW9uSUQsIFNlY29uZHMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4m
Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9j
ZXNzLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJv
Y2Vzcy5tZXNzYWdlcy5pbgppbmRleCBjN2ViZGYwYWYxN2I1NjgyMTY5NmZhMTg2MWQ3M2NmMTNi
MDJlYmYzLi4wNThhNmU3YjBiNDk0MGRlMmM5OTQ4MmNhNjUzY2IyODNhNzI1NGMzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2Vz
LmluCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVz
c2FnZXMuaW4KQEAgLTExMCw2ICsxMTAsNyBAQCBtZXNzYWdlcyAtPiBOZXR3b3JrUHJvY2VzcyBM
ZWdhY3lSZWNlaXZlciB7CiAgICAgU2NoZWR1bGVDbGVhckluTWVtb3J5QW5kUGVyc2lzdGVudChQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlvbmFsPFdhbGxUaW1lPiBtb2RpZmllZFNpbmNl
LCBlbnVtOmJvb2wgV2ViS2l0OjpTaG91bGRHcmFuZGZhdGhlclN0YXRpc3RpY3Mgc2hvdWxkR3Jh
bmRmYXRoZXIpIC0+ICgpIEFzeW5jCiAgICAgU2NoZWR1bGVDb29raWVCbG9ja2luZ1VwZGF0ZShQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpIC0+ICgpIEFzeW5jCiAgICAgU2NoZWR1bGVTdGF0aXN0
aWNzQW5kRGF0YVJlY29yZHNQcm9jZXNzaW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkgLT4g
KCkgQXN5bmMKKyAgICBJVFBEYXRhYmFzZUhhc0FsbFRhYmxlcyhQQUw6OlNlc3Npb25JRCBzZXNz
aW9uSUQpIC0+IChib29sIGhhc0FsbFRhYmxlcykgQXN5bmMKICAgICBTdWJtaXRUZWxlbWV0cnko
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKSAtPiAoKSBBc3luYwogICAgIFNldENhY2hlTWF4QWdl
Q2FwRm9yUHJldmFsZW50UmVzb3VyY2VzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgU2Vjb25k
cyBzZWNvbmRzKSAtPiAoKSBBc3luYwogICAgIFNldEdyYW5kZmF0aGVyZWQoUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiByZXNvdXJjZURvbWFpbiwg
Ym9vbCBpc0dyYW5kZmF0aGVyZWQpIC0+ICgpIEFzeW5jCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1tIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5tbQppbmRleCA3M2M5
OGEzNDYyNWQ4ZjU1NTI0MTQzODRlM2NlNmI4ZGI4NDBlOGQ4Li4wYTE5Nzg3M2MwMDA2ZWI3YzRm
MzI3NjlmNTMxMjRkOWZhMjU5Y2E5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUubW0KQEAgLTU2Miw2ICs1NjIsMTcg
QEAgLSAodm9pZClfaXNSZWdpc3RlcmVkQXNTdWJyZXNvdXJjZVVuZGVyRmlyc3RQYXJ0eTooTlNV
UkwgKilmaXJzdFBhcnR5VVJMIHRoaXJkUGEKICNlbmRpZgogfQogCistICh2b2lkKV9JVFBEYXRh
YmFzZUhhc0FsbFRhYmxlczoodm9pZCAoXikoQk9PTCkpY29tcGxldGlvbkhhbmRsZXIKK3sKKyNp
ZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorICAgIF93ZWJzaXRlRGF0YVN0b3Jl
LT5JVFBEYXRhYmFzZUhhc0FsbFRhYmxlcyhbY29tcGxldGlvbkhhbmRsZXIgPSBtYWtlQmxvY2tQ
dHIoY29tcGxldGlvbkhhbmRsZXIpXShib29sIGhhc0FsbFRhYmxlcykgeworICAgICAgICBjb21w
bGV0aW9uSGFuZGxlcihoYXNBbGxUYWJsZXMpOworICAgIH0pOworI2Vsc2UKKyAgICBjb21wbGV0
aW9uSGFuZGxlcihOTyk7CisjZW5kaWYKK30KKwogLSAodm9pZClfcHJvY2Vzc1N0YXRpc3RpY3NB
bmREYXRhUmVjb3Jkczoodm9pZCAoXikodm9pZCkpY29tcGxldGlvbkhhbmRsZXIKIHsKICNpZiBF
TkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZVByaXZhdGUuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmVQcml2YXRlLmgK
aW5kZXggNjA5NTllNDczNTFiMGFlZGEyYTIyNzcwNDdjZjk4OGVkNTk5NjM0Ni4uYmQwOTdiMjIw
ZjEyZDQyNTUwZTc0NDkxNWRlZGVmZDk4ODliMTJhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZVByaXZhdGUuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlUHJpdmF0
ZS5oCkBAIC03Nyw2ICs3Nyw3IEBAIHR5cGVkZWYgTlNfT1BUSU9OUyhOU1VJbnRlZ2VyLCBfV0tX
ZWJzaXRlRGF0YVN0b3JlRmV0Y2hPcHRpb25zKSB7CiAtICh2b2lkKV9jbGVhclJlc291cmNlTG9h
ZFN0YXRpc3RpY3M6KHZvaWQgKF4pKHZvaWQpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAtICh2b2lkKV9pc1Jl
Z2lzdGVyZWRBc1N1YnJlc291cmNlVW5kZXJGaXJzdFBhcnR5OihOU1VSTCAqKWZpcnN0UGFydHlV
UkwgdGhpcmRQYXJ0eTooTlNVUkwgKil0aGlyZFBhcnR5VVJMIGNvbXBsZXRpb25IYW5kbGVyOih2
b2lkICheKShCT09MKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdL
X01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogLSAodm9pZClfc2V0VGhpcmRQYXJ0eUNvb2tp
ZUJsb2NraW5nTW9kZTooQk9PTCllbmFibGVkIG9ubHlPblNpdGVzV2l0aG91dFVzZXJJbnRlcmFj
dGlvbjooQk9PTClvbmx5T25TaXRlc1dpdGhvdXRVc2VySW50ZXJhY3Rpb24gY29tcGxldGlvbkhh
bmRsZXI6KHZvaWQgKF4pKHZvaWQpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CistICh2b2lkKV9JVFBEYXRhYmFz
ZUhhc0FsbFRhYmxlczoodm9pZCAoXikoQk9PTCkpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FW
QUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIC0gKHZvaWQpX3By
b2Nlc3NTdGF0aXN0aWNzQW5kRGF0YVJlY29yZHM6KHZvaWQgKF4pKHZvaWQpKWNvbXBsZXRpb25I
YW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTUpLCBpb3MoMTMuMCkpOwogLSAodm9p
ZClfYXBwQm91bmREb21haW5zOih2b2lkICheKShOU0FycmF5PE5TU3RyaW5nICo+ICopKWNvbXBs
ZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19J
T1NfVEJBKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsv
TmV0d29ya1Byb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3Jr
L05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCmluZGV4IGZjNDg4M2NmNzRhMTEyZGE0MDVlOTllZGZk
ZGVlOTBlOGJiNjU0ZDMuLjVkMjIwZDRhYWRiYjQ2NmYxNDZkZGIzY2FmYTk4MjY1NmM5YzM3ZmEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nl
c3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3Jr
UHJvY2Vzc1Byb3h5LmNwcApAQCAtNjE5LDYgKzYxOSwxNiBAQCB2b2lkIE5ldHdvcmtQcm9jZXNz
UHJveHk6OnNjaGVkdWxlU3RhdGlzdGljc0FuZERhdGFSZWNvcmRzUHJvY2Vzc2luZyhQQUw6OlNl
c3NpbwogICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OlNj
aGVkdWxlU3RhdGlzdGljc0FuZERhdGFSZWNvcmRzUHJvY2Vzc2luZyhzZXNzaW9uSUQpLCBXVEZN
b3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CiAKK3ZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6
SVRQRGF0YWJhc2VIYXNBbGxUYWJsZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIGlmICgh
Y2FuU2VuZE1lc3NhZ2UoKSkgeworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmYWxzZSk7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisgICAgCisgICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3Nh
Z2VzOjpOZXR3b3JrUHJvY2Vzczo6SVRQRGF0YWJhc2VIYXNBbGxUYWJsZXMoc2Vzc2lvbklEKSwg
V1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworfQorCiB2b2lkIE5ldHdvcmtQcm9jZXNzUHJv
eHk6OmxvZ1VzZXJJbnRlcmFjdGlvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFJl
Z2lzdHJhYmxlRG9tYWluJiByZXNvdXJjZURvbWFpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgp
PiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIGlmICghY2FuU2VuZE1lc3NhZ2UoKSkgewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vz
c1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNz
UHJveHkuaAppbmRleCBiMzVjMDQ1MWQyOGJhYTBjZWQ3NjRjMmE2Y2FjMDdiNTE2YmMyNGI3Li44
ODMyNThiNGFiZjYwYTk3MjcwYzkyODg4NjY3ZmI1NTM4ZmNhMDIwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaApAQCAt
MTMwLDYgKzEzMCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGxvZ1VzZXJJbnRlcmFjdGlvbihQQUw6
OlNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKCk+JiYpOwogICAgIHZvaWQgc2NoZWR1bGVTdGF0aXN0aWNzQW5kRGF0YVJlY29yZHNQcm9j
ZXNzaW5nKFBBTDo6U2Vzc2lvbklELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAg
IHZvaWQgc2V0TGFzdFNlZW4oUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWlu
JiwgU2Vjb25kcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKKyAgICB2b2lkIElUUERh
dGFiYXNlSGFzQWxsVGFibGVzKFBBTDo6U2Vzc2lvbklELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KGJvb2wpPiYmKTsKICAgICB2b2lkIG1lcmdlU3RhdGlzdGljRm9yVGVzdGluZyhQQUw6OlNlc3Np
b25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mLCBjb25zdCBUb3BGcmFtZURvbWFpbiYgdG9w
RnJhbWVEb21haW4xLCBjb25zdCBUb3BGcmFtZURvbWFpbiYgdG9wRnJhbWVEb21haW4yLCBTZWNv
bmRzIGxhc3RTZWVuLCBib29sIGhhZFVzZXJJbnRlcmFjdGlvbiwgU2Vjb25kcyBtb3N0UmVjZW50
VXNlckludGVyYWN0aW9uLCBib29sIGlzR3JhbmRmYXRoZXJlZCwgYm9vbCBpc1ByZXZhbGVudCwg
Ym9vbCBpc1ZlcnlQcmV2YWxlbnQsIHVuc2lnbmVkIGRhdGFSZWNvcmRzUmVtb3ZlZCwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHNldEFnZUNhcEZvckNsaWVudFNpZGVD
b29raWVzKFBBTDo6U2Vzc2lvbklELCBPcHRpb25hbDxTZWNvbmRzPiwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHNldENhY2hlTWF4QWdlQ2FwKFBBTDo6U2Vzc2lvbklE
LCBTZWNvbmRzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcApp
bmRleCA1MGQ5NzkzMWQ0YzA1YzcwNDY1MjFiZmE3NjJmNTIwZmZmM2MxMTg0Li5kZDQ5ZmEyOTYx
NzBkN2VhMWMwYWU0Nzk4NTM2ODlmYTMzYmIwNTBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcApAQCAtMTU4
MSw2ICsxNTgxLDIwIEBAIHZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6c2NoZWR1bGVTdGF0aXN0aWNz
QW5kRGF0YVJlY29yZHNQcm9jZXNzaW5nKENvbXBsZXRpb25IYW5kCiAgICAgfQogfQogCit2b2lk
IFdlYnNpdGVEYXRhU3RvcmU6OklUUERhdGFiYXNlSGFzQWxsVGFibGVzKENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgQVNTRVJUKFJ1bkxv
b3A6OmlzTWFpbigpKTsKKworICAgIGZvciAoYXV0byYgcHJvY2Vzc1Bvb2wgOiBwcm9jZXNzUG9v
bHMoKSkgeworICAgICAgICBpZiAoYXV0byogcHJvY2VzcyA9IHByb2Nlc3NQb29sLT5uZXR3b3Jr
UHJvY2VzcygpKSB7CisgICAgICAgICAgICBwcm9jZXNzLT5JVFBEYXRhYmFzZUhhc0FsbFRhYmxl
cyhtX3Nlc3Npb25JRCwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIGNvbXBsZXRpb25IYW5kbGVyKGZh
bHNlKTsKK30KKwogdm9pZCBXZWJzaXRlRGF0YVN0b3JlOjpzZXRMYXN0U2Vlbihjb25zdCBVUkwm
IHVybCwgU2Vjb25kcyBzZWNvbmRzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxl
dGlvbkhhbmRsZXIpCiB7CiAgICAgaWYgKHVybC5wcm90b2NvbElzQWJvdXQoKSB8fCB1cmwuaXNF
bXB0eSgpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0
YS9XZWJzaXRlRGF0YVN0b3JlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0
YS9XZWJzaXRlRGF0YVN0b3JlLmgKaW5kZXggZTg0MjMxMzI1NmJhMzFiZGQ4YTc1MGNhNTViMzNh
YmRhYjJjMDA5Mi4uYTQ0MDI5NThjMmMzNTg2MTA4M2U4MWUwNGQ1ZjNkZjk0NmQ4YTJkZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFT
dG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVE
YXRhU3RvcmUuaApAQCAtMTY3LDYgKzE2Nyw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFVzZUlU
UERhdGFiYXNlKGJvb2wsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBz
ZXRHcmFuZGZhdGhlcmluZ1RpbWUoU2Vjb25kcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYm
KTsKICAgICB2b2lkIHNldExhc3RTZWVuKGNvbnN0IFVSTCYsIFNlY29uZHMsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoKT4mJik7CisgICAgdm9pZCBJVFBEYXRhYmFzZUhhc0FsbFRhYmxlcyhDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKICAgICB2b2lkIG1lcmdlU3RhdGlzdGljRm9y
VGVzdGluZyhjb25zdCBVUkwmLCBjb25zdCBVUkwmIHRvcEZyYW1lVXJsMSwgY29uc3QgVVJMJiB0
b3BGcmFtZVVybDIsIFNlY29uZHMgbGFzdFNlZW4sIGJvb2wgaGFkVXNlckludGVyYWN0aW9uLCBT
ZWNvbmRzIG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb24sIGJvb2wgaXNHcmFuZGZhdGhlcmVkLCBi
b29sIGlzUHJldmFsZW50LCBib29sIGlzVmVyeVByZXZhbGVudCwgdW5zaWduZWQgZGF0YVJlY29y
ZHNSZW1vdmVkLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgc2V0Tm90
aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZChib29sLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKCk+JiYpOwogICAgIHZvaWQgc2V0SXNSdW5uaW5nUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c1Rlc3QoYm9vbCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKZGlmZiAtLWdpdCBhL1Rv
b2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA3MzQyODMxM2YxODkzMWVhYTU1
YjFmZDVhYTFmOWE0MGRmMjA2MzFlLi41YzA1YzE2YzdlODM1MDQ3Y2FhZDMyYzVjOWNmZDBlYmFk
N2JmNjAwIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMjAgQEAKKzIwMjAtMDQtMjQgIEthdGUgQ2hlbmV5ICA8a2F0aGVyaW5lX2No
ZW5leUBhcHBsZS5jb20+CisKKyAgICAgICAgQ3JlYXRlIGEgbWVjaGFuaXNtIHRvIGFkZCBtaXNz
aW5nIElUUCBEYXRhYmFzZSB0YWJsZXMgd2hlbiB0aGUgc2NoZW1hIGlzIHVwZGF0ZWQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMTAwNAorICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vNjIyNjExODc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgQWRkIHRlc3QgY2FzZSB3aGljaCBjb3BpZXMgYSBkYXRhYmFz
ZSBzY2hlbWEgd2l0aCBhIG1pc3NpbmcgdGFibGUgaW50bworICAgICAgICB0aGUgSVRQIGRhdGFi
YXNlIGZpbGUsIHRoZW4gZW5zdXJlcyB0aGUgcHJlLXNlZWRlZCBkYXRhIGhhcyBiZWVuCisgICAg
ICAgIG1pZ3JhdGVkIG92ZXIgYW5kIHRoYXQgdGhlIHNjaGVtYSBoYXMgYWxsIHRhYmxlcyAoaW5j
bHVkaW5nIHRoZQorICAgICAgICBtaXNzaW5nIG9uZSkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0
QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBU
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Jlc291cmNlTG9hZFN0YXRpc3RpY3MubW06
CisgICAgICAgIChURVNUKToKKwogMjAyMC0wNC0yNCAgQW50b2luZSBRdWludCAgPGdyYW91dHNA
YXBwbGUuY29tPgogCiAgICAgICAgIFVwZGF0ZSB0aGUgY3NzL2Nzcy1hbmltYXRpb25zIFdQVCB0
ZXN0cwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2ogYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEku
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBiOWNiOTgyYWRlZWVjMjJjYTEyNWE4ZjUz
NjNiODRjYmNlMDE0YzM0Li44ZWExOTkxMjdhNWRjZDMzZjJiOTc1OTczMzBlYjgwYmFlNTQ1OTI2
IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEku
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjU2LDYgKzI1Niw3IEBACiAJCTQ2RkFDRjc0
MjNFODg0MjMwMEE5RUJDNiAvKiBiZWZvcmV1bmxvYWQtc2xvdy5odG1sIGluIENvcHkgUmVzb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2RkFDRjczMjNFODgzRUUw
MEE5RUJDNiAvKiBiZWZvcmV1bmxvYWQtc2xvdy5odG1sICovOyB9OwogCQk0OTA5RUUzQTJEMDk0
ODBDODg5ODJENTYgLyogTWFya2FibGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRUM3OUYxNjhCRTQ1NEU1NzlFNDE3QjA1IC8qIE1hcmthYmxlLmNw
cCAqLzsgfTsKIAkJNDk3MUIxMTgyNDUxRjI5QTAwOTY5OTREIC8qIGluY29ycmVjdENyZWF0ZVRh
YmxlU2NoZW1hLmRiIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDQ5NzFCMTE3MjQ1MUYyNzgwMDk2OTk0RCAvKiBpbmNvcnJlY3RDcmVhdGVUYWJs
ZVNjaGVtYS5kYiAqLzsgfTsKKwkJNDk3MUIxMjAyNDUzQTg4QzAwOTY5OTREIC8qIG1pc3NpbmdU
b3BGcmFtZVVuaXF1ZVJlZGlyZWN0U2FtZVNpdGVTdHJpY3RUYWJsZVNjaGVtYS5kYiBpbiBDb3B5
IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OTcxQjExRjI0
NTNBODdGMDA5Njk5NEQgLyogbWlzc2luZ1RvcEZyYW1lVW5pcXVlUmVkaXJlY3RTYW1lU2l0ZVN0
cmljdFRhYmxlU2NoZW1hLmRiICovOyB9OwogCQk0OTg5N0Q2QzI0MUZFOUU0MDBFQ0YxNTMgLyog
aW4tYXBwLWJyb3dzZXItcHJpdmFjeS1sb2NhbC1maWxlLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDlEN0ZCQTcyNDFGREREQTAwQUI2
N0ZBIC8qIGluLWFwcC1icm93c2VyLXByaXZhY3ktbG9jYWwtZmlsZS5odG1sICovOyB9OwogCQk0
OUFFRUY2RDI0MDczNTlEMDBDODdFNEMgLyogSW5BcHBCcm93c2VyUHJpdmFjeS5tbSBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5QUVFRjZCMjQwNzM1ODYw
MEM4N0U0QyAvKiBJbkFwcEJyb3dzZXJQcml2YWN5Lm1tICovOyB9OwogCQk0QkZERkZBNzEzMTQ3
NzZDMDA2MUYyNEIgLyogSGl0VGVzdFJlc3VsdE5vZGVIYW5kbGVfQnVuZGxlLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRCRkRGRkE2MTMxNDc3NkMw
MDYxRjI0QiAvKiBIaXRUZXN0UmVzdWx0Tm9kZUhhbmRsZV9CdW5kbGUuY3BwICovOyB9OwpAQCAt
MTIwMiw3ICsxMjAzLDYgQEAKIAkJCWRzdFBhdGggPSBUZXN0V2ViS2l0QVBJLnJlc291cmNlczsK
IAkJCWRzdFN1YmZvbGRlclNwZWMgPSA3OwogCQkJZmlsZXMgPSAoCi0JCQkJNDk3MUIxMTgyNDUx
RjI5QTAwOTY5OTREIC8qIGluY29ycmVjdENyZWF0ZVRhYmxlU2NoZW1hLmRiIGluIENvcHkgUmVz
b3VyY2VzICovLAogCQkJCTU1QTgxN0ZGMjE4MTAyMUEwMDA0QTM5QSAvKiAxMDB4MTAwLXJlZC50
Z2EgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJMUE5RTUyQzkxM0U2NUVGNDAwNjkxN0Y1IC8q
IDE4LWNoYXJhY3RlcnMuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQk1NUE4MTgwMDIx
ODEwMjIxMDAwNEEzOUEgLyogNDAweDQwMC1ncmVlbi5wbmcgaW4gQ29weSBSZXNvdXJjZXMgKi8s
CkBAIC0xMzYxLDYgKzEzNjEsNyBAQAogCQkJCTMxMjhBODE1MjM3NjQxMzMwMEQ5MEQ0MCAvKiBp
bWFnZS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTcyODNBOUQwMjJGQTc1NDkwMEIy
MUM3RCAvKiBpbWctd2l0aC1yb3RhdGVkLWltYWdlLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8s
CiAJCQkJNDk4OTdENkMyNDFGRTlFNDAwRUNGMTUzIC8qIGluLWFwcC1icm93c2VyLXByaXZhY3kt
bG9jYWwtZmlsZS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAorCQkJCTQ5NzFCMTE4MjQ1MUYy
OUEwMDk2OTk0RCAvKiBpbmNvcnJlY3RDcmVhdGVUYWJsZVNjaGVtYS5kYiBpbiBDb3B5IFJlc291
cmNlcyAqLywKIAkJCQk5MzU3ODZDRDIwRjZBMjkxMDAwMENERkMgLyogSW5kZXhlZERCLnNxbGl0
ZTMgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJOTM1Nzg2Q0UyMEY2QTJBMTAwMDBDREZDIC8q
IEluZGV4ZWREQi5zcWxpdGUzLXNobSBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQk5MzU3ODZD
QzIwRjZBMjcwMDAwMENERkMgLyogSW5kZXhlZERCLnNxbGl0ZTMtd2FsIGluIENvcHkgUmVzb3Vy
Y2VzICovLApAQCAtMTQ0OSw2ICsxNDUwLDcgQEAKIAkJCQlDREM5NDQyRjFFRjIwNUQ2MDA1OUMz
QzQgLyogbWVkaWFzdHJlYW10cmFjay1kZXRhY2hlZC5odG1sIGluIENvcHkgUmVzb3VyY2VzICov
LAogCQkJCUUxMjIwRENBMTU1QjI4QUEwMDEzRTJGQyAvKiBNZW1vcnlDYWNoZURpc2FibGVXaXRo
aW5SZXNvdXJjZUxvYWREZWxlZ2F0ZS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTUx
N0U3RTA0MTUxMTE5QzEwMEQwQjAwOCAvKiBNZW1vcnlDYWNoZVBydW5lV2l0aGluUmVzb3VyY2VM
b2FkRGVsZWdhdGUuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKKwkJCQk0OTcxQjEyMDI0NTNB
ODhDMDA5Njk5NEQgLyogbWlzc2luZ1RvcEZyYW1lVW5pcXVlUmVkaXJlY3RTYW1lU2l0ZVN0cmlj
dFRhYmxlU2NoZW1hLmRiIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTUxQ0QxQzcyMUIzOEQ0
ODQwMDE0MkNBNSAvKiBtb2RhbC1hbGVydHMtaW4tbmV3LWFib3V0LWJsYW5rLXdpbmRvdy5odG1s
IGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTdBMTQ1OEZDMUFENUMwNzAwMEUwNjc3MiAvKiBt
b3VzZS1idXR0b24tbGlzdGVuZXIuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQkzM0U3
OUUwNjEzN0I1RkQ5MDBFMzJEOTkgLyogbW91c2UtbW92ZS1saXN0ZW5lci5odG1sIGluIENvcHkg
UmVzb3VyY2VzICovLApAQCAtMTg3Niw2ICsxODc4LDcgQEAKIAkJNDZGQTJGRUQyMzg0NkM5QTAw
MENDQjBDIC8qIEhUVFBIZWFkZXJNYXAuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gSFRUUEhlYWRlck1hcC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTQ2RkFDRjczMjNFODgzRUUwMEE5RUJDNiAvKiBiZWZvcmV1bmxvYWQtc2xvdy5odG1sICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dC5odG1sOyBwYXRoID0gImJlZm9yZXVubG9hZC1zbG93Lmh0bWwiOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk0OTcxQjExNzI0NTFGMjc4MDA5Njk5NEQgLyogaW5jb3Jy
ZWN0Q3JlYXRlVGFibGVTY2hlbWEuZGIgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBmaWxlOyBwYXRoID0gaW5jb3JyZWN0Q3JlYXRlVGFibGVTY2hlbWEu
ZGI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ5NzFCMTFGMjQ1M0E4N0YwMDk2OTk0
RCAvKiBtaXNzaW5nVG9wRnJhbWVVbmlxdWVSZWRpcmVjdFNhbWVTaXRlU3RyaWN0VGFibGVTY2hl
bWEuZGIgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBm
aWxlOyBuYW1lID0gbWlzc2luZ1RvcEZyYW1lVW5pcXVlUmVkaXJlY3RTYW1lU2l0ZVN0cmljdFRh
YmxlU2NoZW1hLmRiOyBwYXRoID0gVGVzdHMvV2ViS2l0Q29jb2EvbWlzc2luZ1RvcEZyYW1lVW5p
cXVlUmVkaXJlY3RTYW1lU2l0ZVN0cmljdFRhYmxlU2NoZW1hLmRiOyBzb3VyY2VUcmVlID0gU09V
UkNFX1JPT1Q7IH07CiAJCTQ5QUVFRjY4MjQwNzI3NkYwMEM4N0U0QyAvKiBJbmZvLnBsaXN0ICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dC5wbGlzdC54bWw7IHBhdGggPSBJbmZvLnBsaXN0OyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk0OUFFRUY2QjI0MDczNTg2MDBDODdFNEMgLyogSW5BcHBCcm93c2Vy
UHJpdmFjeS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEluQXBw
QnJvd3NlclByaXZhY3kubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ5RDdGQkE3
MjQxRkREREEwMEFCNjdGQSAvKiBpbi1hcHAtYnJvd3Nlci1wcml2YWN5LWxvY2FsLWZpbGUuaHRt
bCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQu
aHRtbDsgcGF0aCA9ICJpbi1hcHAtYnJvd3Nlci1wcml2YWN5LWxvY2FsLWZpbGUuaHRtbCI7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zNDU2LDcgKzM0NTksNiBAQAogCQlBMTZGNjZC
ODFDNDBFOUUxMDBCRDREMjQgLyogUmVzb3VyY2VzICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7
CiAJCQljaGlsZHJlbiA9ICgKLQkJCQk0OTcxQjExNzI0NTFGMjc4MDA5Njk5NEQgLyogaW5jb3Jy
ZWN0Q3JlYXRlVGFibGVTY2hlbWEuZGIgKi8sCiAJCQkJNTVBODE3RkUyMTgxMDFERjAwMDRBMzlB
IC8qIDEwMHgxMDAtcmVkLnRnYSAqLywKIAkJCQk1NUE4MTdGRDIxODEwMURGMDAwNEEzOUEgLyog
NDAweDQwMC1ncmVlbi5wbmcgKi8sCiAJCQkJQzI1Q0NBMEMxRTUxNDBFNTAwMjZDQjhBIC8qIEFs
bEFoZW0uc3ZnICovLApAQCAtMzU1Miw2ICszNTU0LDcgQEAKIAkJCQkzMTI4QTgxNDIzNzY0MEZE
MDBEOTBENDAgLyogaW1hZ2UuaHRtbCAqLywKIAkJCQk3MjgzQTlDRTIyRkE2QkJFMDBCMjFDN0Qg
LyogaW1nLXdpdGgtcm90YXRlZC1pbWFnZS5odG1sICovLAogCQkJCTQ5RDdGQkE3MjQxRkREREEw
MEFCNjdGQSAvKiBpbi1hcHAtYnJvd3Nlci1wcml2YWN5LWxvY2FsLWZpbGUuaHRtbCAqLywKKwkJ
CQk0OTcxQjExNzI0NTFGMjc4MDA5Njk5NEQgLyogaW5jb3JyZWN0Q3JlYXRlVGFibGVTY2hlbWEu
ZGIgKi8sCiAJCQkJOTM0RkE1QzcyMEY2OUZFRTAwNDBEQzFCIC8qIEluZGV4ZWREQi5zcWxpdGUz
ICovLAogCQkJCTkzNEZBNUM2MjBGNjlGRUQwMDQwREMxQiAvKiBJbmRleGVkREIuc3FsaXRlMy1z
aG0gKi8sCiAJCQkJOTM0RkE1QzUyMEY2OUZFRDAwNDBEQzFCIC8qIEluZGV4ZWREQi5zcWxpdGUz
LXdhbCAqLywKQEAgLTQwNzgsNiArNDA4MSw3IEBACiAJCQkJNzc3MkVDRTAyMkZFMDVFMTAwMDlB
Nzk5IC8qIG1hbnktc2FtZS1vcmlnaW4taWZyYW1lcy5odG1sICovLAogCQkJCUNEODM5NERFMjMy
QUYxNUUwMDE0OTQ5NSAvKiBtZWRpYS1sb2FkaW5nLmh0bWwgKi8sCiAJCQkJQ0RDOTQ0MkIxRUYx
RkJEMjAwNTlDM0M0IC8qIG1lZGlhc3RyZWFtdHJhY2stZGV0YWNoZWQuaHRtbCAqLywKKwkJCQk0
OTcxQjExRjI0NTNBODdGMDA5Njk5NEQgLyogbWlzc2luZ1RvcEZyYW1lVW5pcXVlUmVkaXJlY3RT
YW1lU2l0ZVN0cmljdFRhYmxlU2NoZW1hLmRiICovLAogCQkJCTUxQ0QxQzcxMUIzOEQ0ODQwMDE0
MkNBNSAvKiBtb2RhbC1hbGVydHMtaW4tbmV3LWFib3V0LWJsYW5rLXdpbmRvdy5odG1sICovLAog
CQkJCTdBMTQ1OEZCMUFENUMwMzUwMEUwNjc3MiAvKiBtb3VzZS1idXR0b24tbGlzdGVuZXIuaHRt
bCAqLywKIAkJCQkzM0U3OUUwNTEzN0I1RkNFMDBFMzJEOTkgLyogbW91c2UtbW92ZS1saXN0ZW5l
ci5odG1sICovLApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRDb2NvYS9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzLm1tCmluZGV4IDhhNDQzNTUyOTU4
ZmZlZWNkNWY3Y2YzNjk1ZDNmMjI0ZjFmNWU3Y2YuLmIyODgyZGI1ZGM0ODgwMGUwOTliNzI0MGIy
NzNmMmJmZDA5NTE2ZjQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Q29jb2EvUmVzb3VyY2VMb2FkU3RhdGlzdGljcy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL1Jlc291cmNlTG9hZFN0YXRpc3RpY3MubW0KQEAgLTE0OTUs
MyArMTQ5NSw1NyBAQCBURVNUKFJlc291cmNlTG9hZFN0YXRpc3RpY3MsIE1pZ3JhdGVEYXRhRnJv
bUluY29ycmVjdENyZWF0ZVRhYmxlU2NoZW1hKQogCiAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6
cnVuKCZkb25lRmxhZyk7CiB9CisKK1RFU1QoUmVzb3VyY2VMb2FkU3RhdGlzdGljcywgTWlncmF0
ZURhdGFGcm9tTWlzc2luZ1RvcEZyYW1lVW5pcXVlUmVkaXJlY3RTYW1lU2l0ZVN0cmljdFRhYmxl
U2NoZW1hKQoreworICAgIGF1dG8gKnNoYXJlZFByb2Nlc3NQb29sID0gW1dLUHJvY2Vzc1Bvb2wg
X3NoYXJlZFByb2Nlc3NQb29sXTsKKworICAgIGF1dG8gZGVmYXVsdEZpbGVNYW5hZ2VyID0gW05T
RmlsZU1hbmFnZXIgZGVmYXVsdE1hbmFnZXJdOworICAgIGF1dG8gKmRhdGFTdG9yZSA9IFtXS1dl
YnNpdGVEYXRhU3RvcmUgZGVmYXVsdERhdGFTdG9yZV07CisgICAgTlNVUkwgKml0cFJvb3RVUkwg
PSBbW2RhdGFTdG9yZSBfY29uZmlndXJhdGlvbl0gX3Jlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJl
Y3RvcnldOworICAgIE5TVVJMICpmaWxlVVJMID0gW2l0cFJvb3RVUkwgVVJMQnlBcHBlbmRpbmdQ
YXRoQ29tcG9uZW50OkAib2JzZXJ2YXRpb25zLmRiIl07CisgICAgW2RlZmF1bHRGaWxlTWFuYWdl
ciByZW1vdmVJdGVtQXRQYXRoOml0cFJvb3RVUkwucGF0aCBlcnJvcjpuaWxdOworICAgIEVYUEVD
VF9GQUxTRShbZGVmYXVsdEZpbGVNYW5hZ2VyIGZpbGVFeGlzdHNBdFBhdGg6aXRwUm9vdFVSTC5w
YXRoXSk7CisKKyAgICAvLyBMb2FkIGFuIGluY29ycmVjdCBkYXRhYmFzZSBzY2hlbWEgd2l0aCBw
cmUtc2VlZGVkIElUUCBkYXRhLgorICAgIFtkZWZhdWx0RmlsZU1hbmFnZXIgY3JlYXRlRGlyZWN0
b3J5QXRVUkw6aXRwUm9vdFVSTCB3aXRoSW50ZXJtZWRpYXRlRGlyZWN0b3JpZXM6WUVTIGF0dHJp
YnV0ZXM6bmlsIGVycm9yOm5pbF07CisgICAgTlNVUkwgKm5ld0ZpbGVVUkwgPSBbW05TQnVuZGxl
IG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAibWlzc2luZ1RvcEZyYW1lVW5pcXVlUmVkaXJl
Y3RTYW1lU2l0ZVN0cmljdFRhYmxlU2NoZW1hIiB3aXRoRXh0ZW5zaW9uOkAiZGIiIHN1YmRpcmVj
dG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CisgICAgRVhQRUNUX1RSVUUoW2RlZmF1
bHRGaWxlTWFuYWdlciBmaWxlRXhpc3RzQXRQYXRoOm5ld0ZpbGVVUkwucGF0aF0pOworICAgIFtk
ZWZhdWx0RmlsZU1hbmFnZXIgY29weUl0ZW1BdFBhdGg6bmV3RmlsZVVSTC5wYXRoIHRvUGF0aDpm
aWxlVVJMLnBhdGggZXJyb3I6bmlsXTsKKyAgICBFWFBFQ1RfVFJVRShbZGVmYXVsdEZpbGVNYW5h
Z2VyIGZpbGVFeGlzdHNBdFBhdGg6ZmlsZVVSTC5wYXRoXSk7CisKKyAgICBhdXRvIGNvbmZpZ3Vy
YXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOwor
ICAgIFtjb25maWd1cmF0aW9uIHNldFByb2Nlc3NQb29sOiBzaGFyZWRQcm9jZXNzUG9vbF07Cisg
ICAgY29uZmlndXJhdGlvbi5nZXQoKS53ZWJzaXRlRGF0YVN0b3JlID0gZGF0YVN0b3JlOworCisg
ICAgLy8gV2UgbmVlZCBhbiBhY3RpdmUgTmV0d29ya1Byb2Nlc3MgdG8gcGVyZm9ybSBSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzIG9wZXJhdGlvbnMuCisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhb
W1dLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAw
KSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCldKTsKKyAgICBbZGF0YVN0b3JlIF9z
ZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZDpZRVNdOworICAgIFt3ZWJWaWV3IGxvYWRS
ZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6
QCJhYm91dDpibGFuayJdXV07CisKKyAgICBzdGF0aWMgYm9vbCBkb25lRmxhZzsKKyAgICBbZGF0
YVN0b3JlIF9zZXRVc2VJVFBEYXRhYmFzZTp0cnVlIGNvbXBsZXRpb25IYW5kbGVyOiBeKHZvaWQp
IHsKKyAgICAgICAgZG9uZUZsYWcgPSB0cnVlOworICAgIH1dOworCisgICAgVGVzdFdlYktpdEFQ
STo6VXRpbDo6cnVuKCZkb25lRmxhZyk7CisKKyAgICAvLyBTaW5jZSB0aGUgZGF0YWJhc2Ugc2hv
dWxkIG5vdCBiZSBkZWxldGVkLCB0aGUgcHJlLXNlZWRlZCBkYXRhIHNob3VsZAorICAgIC8vIHN0
aWxsIGJlIHRoZXJlIGFmdGVyIGluaXRpYWxpemluZyBJVFAuCisgICAgZG9uZUZsYWcgPSBmYWxz
ZTsKKyAgICBbZGF0YVN0b3JlIF9pc1JlZ2lzdGVyZWRBc1N1YnJlc291cmNlVW5kZXJGaXJzdFBh
cnR5OltOU1VSTCBVUkxXaXRoU3RyaW5nOkAiaHR0cDovL2FwcGxlLmNvbSJdIHRoaXJkUGFydHk6
W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJodHRwOi8vd2Via2l0Lm9yZyJdIGNvbXBsZXRpb25IYW5k
bGVyOiBeKEJPT0wgaXNSZWdpc3RlcmVkKSB7CisgICAgICAgIEVYUEVDVF9UUlVFKGlzUmVnaXN0
ZXJlZCk7CisgICAgICAgIGRvbmVGbGFnID0gdHJ1ZTsKKyAgICB9XTsKKworICAgIFRlc3RXZWJL
aXRBUEk6OlV0aWw6OnJ1bigmZG9uZUZsYWcpOworICAgIAorICAgIC8vIENoZWNrIHRvIG1ha2Ug
c3VyZSBhbGwgdGFibGVzIGFyZSBhY2NvdW50ZWQgZm9yLgorICAgIGRvbmVGbGFnID0gZmFsc2U7
CisgICAgW2RhdGFTdG9yZSBfSVRQRGF0YWJhc2VIYXNBbGxUYWJsZXM6XihCT09MIGhhc0FsbFRh
YmxlcykgeworICAgICAgICBFWFBFQ1RfVFJVRShoYXNBbGxUYWJsZXMpOworICAgICAgICBkb25l
RmxhZyA9IHRydWU7CisgICAgfV07CisKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRv
bmVGbGFnKTsKK30KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Q29jb2EvbWlzc2luZ1RvcEZyYW1lVW5pcXVlUmVkaXJlY3RTYW1lU2l0ZVN0cmljdFRhYmxlU2No
ZW1hLmRiIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9taXNzaW5nVG9w
RnJhbWVVbmlxdWVSZWRpcmVjdFNhbWVTaXRlU3RyaWN0VGFibGVTY2hlbWEuZGIKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZDAyN2YxMzM4YTlhOTIyNjY4YjFjODlmM2E5NWY2OGE3OWRiMTE2NwpHSVQgYmluYXJ5IHBh
dGNoCmxpdGVyYWwgMTA2NDk2CnpjbWVJKlBqQjFpOWwmdT93ajt+NyVydDROdDtKOWx5RmBjKVZD
VzlwVmVuTCRFKENqYUJGU3I3M15RY3d2Nz1jdwp6OWc8MzA0OHZmPjBlMEM9Sk1PZzBVY25BSz9o
VyljM3xOOG55azMlUyExaj4oJEFfZE8rb185S197dyU8aXNZbGAKel9qJiZDX3QwQHRkQVFOPWd0
PjEhTT5XclVQcklxNVFyYl5WUWA1OTVgU3E2a2BpfWZjYilUb0B2O1NDPFV3Wkp9Cno7SkxmMEpX
WGwkZWB3RDUyT0l6S2NmOGVrUWpURSowUiN8MDAwOUlMS21ZKio1SV9JezFnPSF6eUt9KUp7KSsk
Ygp6WnlwNDk1VllWPEs9OCt2aERHNUJBYjxiQDJxMXN9MHRnXzAwMElhZ3BhXjg7Uj83SFhHeVl8
S3pXQXI0NTlNJCsKejVJX0l7MVEwKn4wUiN8MDAwOUlMeEI+eHZ7UiNANTszOUxXdG9INn58TTd7
fkojMlhRWlJhNFRYU0hgYFhaMXtICnpVK3ZfaURlbXZ0TkJeNlg4WSR4byZHXmRyIXVXQ2pXNys2
YE9mVk9yQSVGa14ycTFzfTB0Z18wMDBJYWdrUlZgRwp6SDI9cnRvcm0jdj9VVWEzLXxsbnFxSG5p
Ml57emcrNl84cShkTURHcjBUMlhxXlAoa2tKT1QoSGZCKnNyQWI8YkAKejJxMXN9MHRqM3Uwb01R
NXNrTnZwMHRnXzAwMElhZ2ZCKnNyQWI8YkBtbEkoOWU+cGVLTEk0Mi01SV9JezFRMCp+CnowUiN8
MDs1ckhUenlHZnJVdSpKezJMY0VuZkIqc3JBYjxiQDJxMXN9MHRpZjt6fDZGcyQ7ZnslUChKd218
QX1pfAp6MHp2PSoxUTAqfjBSI3wwMDA5SUxLcC1yQGBhaTZ9X1hyPz4wMElhZ2ZCKnNyQWI8YkAy
dSE4YD47SzdZU0U1MXkKejBSI3wwMDA5SUxLbVkqKjVJYFUtITFfT3whU0BJdGZCKnNyQWI8YkAy
cTFzfTB0aWZ8ZldROU5qaENBSTxiZVBKCnoycTFzfTB0Z18wMDBJYWdmQip1TUNOUUg8PiRDaihm
ME5kJSNEZjM9MnExc30wdGdfMDAwSWFnZkl5TX1mQiEjOAp6aDFVPjMwMDlJTEttWSoqNUlfSXsx
UTNga2ZqS2BNe3tPJHBZRSteQDAwOUlMS21ZKio1SV9JezFRMCtWQkViNFQKejA+VU4mMnExc30w
dGdfMDAwSWFnZkIqcyREOFR4RTB2blooNUlfSXsxUTAqfjBSI3wwMDA5SUxoelBMJGtBU2Q9Cnow
MElhZ2ZCKnNyQWI8YkAycTF2SzFQWllKcFRJXlhCbUB2WjAwOUlMS21ZKio1SV9JezFSP15nfDA1
dTVCN2d0Xwp6MnExc30wdGdfMDAwSWFnRm82UUJ8MGwzZjI/K3JONUlfSXsxUTAqfjBSI3wwMEQq
e3J6eTg7YXVRbUN9MHw1ak8KekttWSoqNUlfSXsxUTAqfjBSJCNhVX1qcCtXSyFMKmJvcmN7eERX
e2wwUiN8MDAwOUlMS21ZKio1SV9JezFPa0M8CnpgcmxlNl58cUZNVipHOTRrTXBVX1V2Qig8PUZa
ZmdRKlgtYHBCcGM8WFNlNm14JUdBWmBTLWxxWmN8aVJ5Tis8fQp6bWFgfGVrTCR2eis5enZIP01T
VEpONDNWV0o3I3liU2hmbVAlZDhnTy0+fVRpIUxsMDBpeU8xRiRMbDhXWTxlITgKenZuPjdqZTZR
dkF7Z3hpbT5faGkwTUI5QW1rPip7dXdIeFk5ckIkPUVTK3pjfSVJNC0pKSFmfFAqalA1M0hQX29k
CnpzbjxNRkgpVXRxMjxgSGV6TDxGUytFJj5yZVh3YitUT1k7VkVIQkdqdiZ6PEgoVztuUnlSTEFh
aWg4JFMtPm5Eegp6eVJAMSZ3PkhnSFlyflNneExCd1ozIy08JDg3PyhpMzhocHlTfmtRfShkP0Jm
NC1SYzdtWSMyKVdQJDtCX0Y+UXIKenZXUzNhIT4tanV6NTJNfSlGMEZ3QDNZRkQoPlU/bUZ9dnJM
I3UjKDNjfntuTlR6a2tTPnJEdXFzSyZaUzNzcjxKCno/VmVETiVOQ3Eod2BTQTFWb15WUHFMTWRg
NF9DI1c/Yk4pNmVlQTl8X0VCRmp6SDJVLUkpMCRmSmM0ZFNodUBicQp6NzsmY0JFcWV6bER6ZzVl
NChSI345QDxYcWtaTn1pU0soRGwmYk4yZDlydHlgZWZ6bGFxJFNGdC1mK2E4cj9AQlYKeiR8U2xj
OTRPc3UmVmxmSEZiUmBRSUokKTAzYjBidnQ1UkdjdmhoT3k+KzUhQHAqfnstK0sqPF54cz9fRFkt
UUJRCnpzTUB7eERBTGBsY0tTU3txSDQ9YWFGRS1MNyF4Qld0TUdfV09ac0w8I0duJGRUNWtUQ0Zg
ZHFCWlJ5WG0wZDIqVAp6XlpTNyk/Q2xCSFAwViUxOWRKWFQ5JFRLLSZuKiZXbkNOXlFKSCReJWlk
Jm0mOD5NMl5UcX40aGg5b3lEKXA5fG0KelBVaWskemFoZ2RRfH43Oy0lIVJBeG5faCl5fkc3M2ZC
TnhNSShQNCQtYWhQZ19FN25MaDc7YkxRTTRtRmdBNjhnCnpiU083QFAlaXpmUTJ4bHoxa1hialoz
dn4/VF85PTZwSUxlay0wdW9PYUZKNlpuXlFffmsofikwTSt3UmkyTXlQQQp6ezhkfTA3bm9KK2t4
Wmt6c2tGSmhTJGVvX0MzR01ePEVSTDY5TD12RSpYcjljRD1yOy0hbH5gfklaJilTRX1LV1QKej55
XmN4SVFBbVBSdlNrbVRIPTlJSkZmNTd5dk0/az4zbHJkWkAzUX1Ad0M+SXI2dW5EeG98IWtiJWIw
ZClNUkNCCnpyfHk9O2t1Q0gyY3JsKT1tKWpaY3FGISo8OGprQSk4VEQjUVJQOUkqQHpjJUc9UFNk
JUBTcWVncHk1e2I5KmNVYgp6RGU3eXNRKW84ZForUylBSzVVNTlwIVR4YndQeChKezcrSWhhdTR0
NlQwXmVGS1hzb3A4PWx5eXdMQ2w2LWlkVVQKem9nWU1BbjNtVUBWOUF9R2BpQ35KejBAKTxXYENR
YC1OPz1TRERfcTltaUJWLXp1QTgtZTdXJURuQ3NIQC1ROFpnCnpKKTFrZHYjeiY0NDlNaW5GPX0x
NEJQUmY1RFlUUVk7MjJaSm8kaEd2NCFxTGxzYGJibWJJIVRtKk9WaTFPZ1pMVgp6R2FBOU5uR2t9
UkttRnljYmp+ZzY/YzF0TGVCbVBOKjFOcHlnZnIhU1JwT18tSWclaUx7SUl1QkI5NU9ITUJBJnwK
enZLZytONERlVFBxO3RRUDBlKVd6RnBASEAkK2d2dng8RShfR1UycV9xaz5GMGUkP0I5MTVHJjk0
XiZ4ck0xITZHCnpnWn05SDQke31SPUJLfGY8UzFFKmoqPl9kUnFZKSQzbDg8Py1ZQUtrXjJQPGEm
IXsmVChSS1ZwLSZBWTFFYSEqYgp6aD4+SURIO1p6MW9aOGFjPyopVEl4cmAtYyNYSSRHUFUlbHJP
MiMkeilTRjUxanktR204flNtTkp6ZDcldEZhJXMKelQ0Z2llN1RJKkpSTU85XiZaMXkmbFBsNih7
eG5lO3ghMzUxN3J5Nyt5Py05TnRyNlMtSjsmYGRXa1FSbVAycFRXCnpWVUU5Uz90MEZmNXxMRCt6
cjBEZmIoKEtLVD9wPG1wVj8hYXRNK2lecz1hdGw8NndiMVhzdiNLan13bCM+bFBYKAp6QCQ8ZUZg
YXVtWSttIWgkfEZPPXs5fSU2bWtCQDh0SDVaRnokNylaI3ZMUFZuNEo5WDNUMF9xN3A/VUNKd15z
QT0KemNYMjt7ZVhuYGZ4bmAlSUY4TFFVdEE5Wm8lbVJAYS1NXiNgY0pgKS0oMW0te00wNnxoU35l
KXxxVkUtNCVTTjI7CnpVJmFUIWR6RHFNPD9XP0ElMVRHNmZCWitkTCF3dUVganwzaSQxK148ZVBi
VCthKXkockE7Xm9vey0lVjwkVWQ+cwp3TnBmMWRgQD8/MT44bUpYLU9xRUI3Yk1CaHZ6TFo9M19X
NHwralMqfG1lNjVQWThXSXMkfTQ5NnxEIXxFbEs9biEKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvbWlzc2lu
Z1RvcEZyYW1lVW5pcXVlUmVkaXJlY3RTYW1lU2l0ZVN0cmljdFRhYmxlU2NoZW1hLmRiLXNobSBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvbWlzc2luZ1RvcEZyYW1lVW5p
cXVlUmVkaXJlY3RTYW1lU2l0ZVN0cmljdFRhYmxlU2NoZW1hLmRiLXNobQpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5m
ZTlhYzI4NDVlY2E2ZmU2ZGE4YTYzY2QwOTZkOWNmOWUyNGVjZTEwCkdJVCBiaW5hcnkgcGF0Y2gK
bGl0ZXJhbCAzMjc2OAp6Y21lSXVBcjYycjM8WGVUU2F5UzYwPVo9Ty0wfGtQMiZmdUAhNkR1Xnpp
RkNeN3c1NU1OKTloUVlWM1drNzlhMlAKeiklOGczSDMwJHkyb05BWmZCKnBrMVBCbHlLITUtTjB0
NSZVQVY3Y3MwUmpYRjVGa0srMDA5Qzcyb05BWmZCKnBrCnoxUEJseUshNS1OMHQ1JlVBVjdjczBS
alhGNUZrSyswMDlDNzJvTkFaZkIqcGsxUEJseUshNS1OMHQ1JlVBVjdjcwp3MFJqWEY1RmtLKzAw
OUM3Mm9OQVpmQipwazFQQmx5SyE1LU4wdDUmVUFWN2NzMFJqWEY1Y3E/QDRkazVgUXZkKH0KCmxp
dGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2EvbWlzc2luZ1RvcEZyYW1lVW5pcXVlUmVkaXJlY3RTYW1lU2l0ZVN0cmlj
dFRhYmxlU2NoZW1hLmRiLXdhbCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvbWlzc2luZ1RvcEZyYW1lVW5pcXVlUmVkaXJlY3RTYW1lU2l0ZVN0cmljdFRhYmxlU2NoZW1h
LmRiLXdhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5lNjlkZTI5YmIyZDFkNjQzNGI4YjI5YWU3NzVhZDhjMmU0OGM1
MzkxCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>397714</attachid>
            <date>2020-04-27 12:24:11 -0700</date>
            <delta_ts>2020-04-27 14:06:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-211004-20200427122410.patch</filename>
            <type>text/plain</type>
            <size>38939</size>
            <attacher name="Kate Cheney">katherine_cheney</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwNzY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGIwZjlkZTFkYmQ0NTBmN2Fm
MTQ1ZDhiNjAxMGNiYTBiZGRiMDhiYWYuLmZmMjljNTFhMTc3NjBlNzYyZDFmNTliOWQ0NWFlMzQ2
YWFkNDVjZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTcgQEAKKzIwMjAtMDQtMjcgIEthdGUgQ2hl
bmV5ICA8a2F0aGVyaW5lX2NoZW5leUBhcHBsZS5jb20+CisKKyAgICAgICAgQ3JlYXRlIGEgbWVj
aGFuaXNtIHRvIGFkZCBtaXNzaW5nIElUUCBEYXRhYmFzZSB0YWJsZXMgd2hlbiB0aGUgc2NoZW1h
IGlzIHVwZGF0ZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIxMTAwNAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjIyNjExODc+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCB1cGRhdGVz
IHRoZSBJVFAgZGF0YWJhc2UgdG8gYmV0dGVyIGhhbmRsZSBhZGRlZCB0YWJsZXMgdG8KKyAgICAg
ICAgdGhlIHNjaGVtYS4gQ3VycmVudGx5IHRoZSBkYXRhYmFzZSBzdG9yZSBkZWxldGVzIGFuZCBy
ZS1jcmVhdGVzIHRoZQorICAgICAgICBkYXRhYmFzZSB3aGVuIGFueSBzY2hlbWEgY2hhbmdlIGlz
IGVuY291bnRlcmVkLiBUaGlzIGlzIHNpbXBsZSBidXQKKyAgICAgICAgd291bGQgcmVzdWx0IGlu
IElUUCBkYXRhIGxvc3MgZHVyaW5nIHNjaGVtYSB1cGRhdGVzLCBzbyB0aGlzIHBhdGNoCisgICAg
ICAgIHNlYXJjaGVzIHRoZSBzY2hlbWEgZm9yIG1pc3NpbmcgdGFibGVzIGFuZCBhZGRzIGFueSBp
dCBmaW5kcy4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VM
b2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpjcmVhdGVU
YWJsZVF1ZXJpZXMpOgorICAgICAgICBDb252ZXJ0IHRoZSB0YWJsZXMgYXJyYXkgdG8gYSBtYXBw
aW5nIG9mIHRhYmxlIG5hbWVzIHRvIHRoZWlyCisgICAgICAgIHJlc3BlY3RpdmUgQ1JFQVRFIFRB
QkxFIHF1ZXJpZXMgc28gd2UgY2FuIGFkZCBtaXNzaW5nIHRhYmxlcyBvbiB0aGUKKyAgICAgICAg
Zmx5LgorCisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0
b3JlOjppc0NvcnJlY3RUYWJsZVNjaGVtYSk6CisgICAgICAgIFVwZGF0ZSBpc0NvcnJlY3RUYWJs
ZVNjaGVtYSgpIHRvIGFwcGVuZCB0byBhIHZlY3RvciBvZiBtaXNzaW5nIHRhYmxlcyBzbworICAg
ICAgICB3ZSBrbm93IHdoaWNoIG5lZWQgdG8gYmUgYWRkZWQuCisKKyAgICAgICAgKFdlYktpdDo6
UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6Om1pZ3JhdGVEYXRhVG9OZXdUYWJs
ZXNJZk5lY2Vzc2FyeSk6CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NE
YXRhYmFzZVN0b3JlOjphZGRNaXNzaW5nVGFibGVzKToKKyAgICAgICAgKFdlYktpdDo6UmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6Om9wZW5BbmRVcGRhdGVTY2hlbWFJZk5lY2Vz
c2FyeSk6CisgICAgICAgIEFkZCBtaXNzaW5nIHRhYmxlcyBpbnN0ZWFkIG9mIGRlbGV0aW5nIHRo
ZSBvbGQgZGF0YWJhc2UgZmlsZS4gQ2hhbmdlZAorICAgICAgICB0aGUgZnVuY3Rpb24gbmFtZSB0
byByZWZsZWN0IHRoaXMuIERlbGV0ZWQgYSBGSVhNRSB3aGljaCB0aGlzIHBhdGNoCisgICAgICAg
IGFkZHJlc3NlcyBidXQgYWRkZWQgYSBuZXcgRklYTUUgZm9yIG1pZ3JhdGluZyBkYXRhIHdoZW4g
YWRkaW5nIG5ldworICAgICAgICBjb2x1bW5zLCB3aGljaCB0aGlzIHBhdGNoIGRvZXMgbm90IGFk
ZHJlc3MuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9h
ZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvQ2xh
c3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OlN0YXRpc3RpY3NEYXRhYmFzZUhh
c0FsbFRhYmxlcyk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpTdGF0aXN0
aWNzRGF0YWJhc2VIYXNBbGxUYWJsZXMpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdv
cmtQcm9jZXNzLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVz
c2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3Rv
cmUubW06CisgICAgICAgICgtW1dLV2Vic2l0ZURhdGFTdG9yZSBfU3RhdGlzdGljc0RhdGFiYXNl
SGFzQWxsVGFibGVzOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRl
RGF0YVN0b3JlUHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQ
cm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpT
dGF0aXN0aWNzRGF0YWJhc2VIYXNBbGxUYWJsZXMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3
b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURh
dGEvV2Vic2l0ZURhdGFTdG9yZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3Rv
cmU6OlN0YXRpc3RpY3NEYXRhYmFzZUhhc0FsbFRhYmxlcyk6CisgICAgICAgICogVUlQcm9jZXNz
L1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaDoKKyAgICAgICAgQWRkZWQgYW4gU1BJIGNh
bGwgdG8gdGVzdCB0aGF0IHRoZSBkYXRhYmFzZSBzY2hlbWEgaW5jbHVkZXMgYWxsCisgICAgICAg
IHRhYmxlcy4gVGhpcyB0ZXN0cyB0aGUgY2FzZSB3aGVyZSB0aGUgZGF0YWJhc2Ugd2FzIG5vdCBk
cm9wcGVkIGJ1dAorICAgICAgICB0aGUgbmV3IHRhYmxlIHdhc24ndCBhZGRlZCB1cG9uIG9wZW5p
bmcgdGhlIGRhdGFiYXNlLgorCisKIDIwMjAtMDQtMjcgIEJyZW50IEZ1bGdoYW0gIDxiZnVsZ2hh
bUBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCBNYWNDYXRhbHlzdCBidWlsZCBmaXgg
YWZ0ZXIgcjI2MDczOS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
Q2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c0RhdGFiYXNlU3RvcmUuY3BwCmluZGV4IDI5NmE5YTJjMDgyYjZkOGFkYzQ3MGFhMjZmOTk3MWQz
NWVkYWUzOTUuLjAzYTZhNWZhM2NmZWQ1N2ViNTBlZjRkZmJhZmFiZmRiMDdkNzNkOWEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxv
YWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmNw
cApAQCAtMTQ2LDIyICsxNDYsNiBAQCBjb25zdGV4cHIgYXV0byBvYnNlcnZlZERvbWFpbnNFeGlz
dHNRdWVyeSA9ICJTRUxFQ1QgRVhJU1RTIChTRUxFQ1QgKiBGUk9NIE9ic2VydgogLy8gREVMRVRF
IFF1ZXJpZXMKIGNvbnN0ZXhwciBhdXRvIHJlbW92ZUFsbERhdGFRdWVyeSA9ICJERUxFVEUgRlJP
TSBPYnNlcnZlZERvbWFpbnMgV0hFUkUgZG9tYWluSUQgPSA/Il9zOwogCi1jb25zdCBjaGFyKiB0
YWJsZXNbXSA9IHsKLSAgICAiT2JzZXJ2ZWREb21haW5zIiwKLSAgICAiVG9wTGV2ZWxEb21haW5z
IiwKLSAgICAiU3RvcmFnZUFjY2Vzc1VuZGVyVG9wRnJhbWVEb21haW5zIiwKLSAgICAiVG9wRnJh
bWVVbmlxdWVSZWRpcmVjdHNUbyIsCi0gICAgIlRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzVG9TaW5j
ZVNhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnQiLAotICAgICJUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0
c0Zyb20iLAotICAgICJUb3BGcmFtZUxpbmtEZWNvcmF0aW9uc0Zyb20iLAotICAgICJUb3BGcmFt
ZUxvYWRlZFRoaXJkUGFydHlTY3JpcHRzIiwKLSAgICAiU3ViZnJhbWVVbmRlclRvcEZyYW1lRG9t
YWlucyIsCi0gICAgIlN1YnJlc291cmNlVW5kZXJUb3BGcmFtZURvbWFpbnMiLAotICAgICJTdWJy
ZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c1RvIiwKLSAgICAiU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVj
dHNGcm9tIgotfTsKLQotLy8gQ1JFQVRFIFRBQkxFIFF1ZXJpZXMKIGNvbnN0ZXhwciBhdXRvIGNy
ZWF0ZU9ic2VydmVkRG9tYWluID0gIkNSRUFURSBUQUJMRSBPYnNlcnZlZERvbWFpbnMgKCIKICAg
ICAiZG9tYWluSUQgSU5URUdFUiBQUklNQVJZIEtFWSwgcmVnaXN0cmFibGVEb21haW4gVEVYVCBO
T1QgTlVMTCBVTklRVUUgT04gQ09ORkxJQ1QgRkFJTCwgbGFzdFNlZW4gUkVBTCBOT1QgTlVMTCwg
IgogICAgICJoYWRVc2VySW50ZXJhY3Rpb24gSU5URUdFUiBOT1QgTlVMTCwgbW9zdFJlY2VudFVz
ZXJJbnRlcmFjdGlvblRpbWUgUkVBTCBOT1QgTlVMTCwgZ3JhbmRmYXRoZXJlZCBJTlRFR0VSIE5P
VCBOVUxMLCAiCkBAIC0yNjcsNiArMjUxLDI3IEBAIHN0YXRpYyBib29sIG5lZWRzTmV3Q3JlYXRl
VGFibGVTY2hlbWEoY29uc3QgU3RyaW5nJiBzY2hlbWEpCiAgICAgcmV0dXJuIHNjaGVtYS5jb250
YWlucygiUkVGRVJFTkNFUyBUb3BMZXZlbERvbWFpbnMiKTsKIH0KIAorc3RhdGljIGNvbnN0IEhh
c2hNYXA8U3RyaW5nLCBTdHJpbmc+JiBjcmVhdGVUYWJsZVF1ZXJpZXMoKQoreworICAgIHN0YXRp
YyBhdXRvIGNyZWF0ZVRhYmxlUXVlcmllcyA9IG1ha2VOZXZlckRlc3Ryb3llZChIYXNoTWFwPFN0
cmluZywgU3RyaW5nPiB7CisgICAgICAgIHsgIk9ic2VydmVkRG9tYWlucyJfcywgY3JlYXRlT2Jz
ZXJ2ZWREb21haW59LAorICAgICAgICB7ICJUb3BMZXZlbERvbWFpbnMiX3MsIGNyZWF0ZVRvcExl
dmVsRG9tYWluc30sCisgICAgICAgIHsgIlN0b3JhZ2VBY2Nlc3NVbmRlclRvcEZyYW1lRG9tYWlu
cyJfcywgY3JlYXRlU3RvcmFnZUFjY2Vzc1VuZGVyVG9wRnJhbWVEb21haW5zfSwKKyAgICAgICAg
eyAiVG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNUbyJfcywgY3JlYXRlVG9wRnJhbWVVbmlxdWVSZWRp
cmVjdHNUb30sCisgICAgICAgIHsgIlRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzVG9TaW5jZVNhbWVT
aXRlU3RyaWN0RW5mb3JjZW1lbnQiX3MsIGNyZWF0ZVRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzVG9T
aW5jZVNhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnR9LAorICAgICAgICB7ICJUb3BGcmFtZVVuaXF1
ZVJlZGlyZWN0c0Zyb20iX3MsIGNyZWF0ZVRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzRnJvbX0sCisg
ICAgICAgIHsgIlRvcEZyYW1lTGlua0RlY29yYXRpb25zRnJvbSJfcywgY3JlYXRlVG9wRnJhbWVM
aW5rRGVjb3JhdGlvbnNGcm9tfSwKKyAgICAgICAgeyAiVG9wRnJhbWVMb2FkZWRUaGlyZFBhcnR5
U2NyaXB0cyJfcywgY3JlYXRlVG9wRnJhbWVMb2FkZWRUaGlyZFBhcnR5U2NyaXB0c30sCisgICAg
ICAgIHsgIlN1YmZyYW1lVW5kZXJUb3BGcmFtZURvbWFpbnMiX3MsIGNyZWF0ZVN1YmZyYW1lVW5k
ZXJUb3BGcmFtZURvbWFpbnN9LAorICAgICAgICB7ICJTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVE
b21haW5zIl9zLCBjcmVhdGVTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVEb21haW5zfSwKKyAgICAg
ICAgeyAiU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNUbyJfcywgY3JlYXRlU3VicmVzb3VyY2VV
bmlxdWVSZWRpcmVjdHNUb30sCisgICAgICAgIHsgIlN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3Rz
RnJvbSJfcywgY3JlYXRlU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNGcm9tfQorICAgIH0pOwor
ICAgIAorICAgIHJldHVybiBjcmVhdGVUYWJsZVF1ZXJpZXM7Cit9CisKKwogUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0
b3JlKFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZSYgc3RvcmUsIFdvcmtRdWV1ZSYgd29y
a1F1ZXVlLCBTaG91bGRJbmNsdWRlTG9jYWxob3N0IHNob3VsZEluY2x1ZGVMb2NhbGhvc3QsIGNv
bnN0IFN0cmluZyYgc3RvcmFnZURpcmVjdG9yeVBhdGgsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25J
RCkKICAgICA6IFJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZShzdG9yZSwgd29ya1F1ZXVlLCBz
aG91bGRJbmNsdWRlTG9jYWxob3N0KQogICAgICwgbV9zdG9yYWdlRGlyZWN0b3J5UGF0aChzdG9y
YWdlRGlyZWN0b3J5UGF0aCArICIvb2JzZXJ2YXRpb25zLmRiIikKQEAgLTMxMiw3ICszMTcsNyBA
QCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6UmVzb3VyY2VMb2FkU3RhdGlz
dGljc0RhdGFiYXNlU3RvcmUoV2ViUmVzbwogewogICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWlu
KCkpOwogCi0gICAgb3BlbkFuZERyb3BPbGREYXRhYmFzZUlmTmVjZXNzYXJ5KCk7CisgICAgb3Bl
bkFuZFVwZGF0ZVNjaGVtYUlmTmVjZXNzYXJ5KCk7CiAgICAgZW5hYmxlRm9yZWlnbktleXMoKTsK
IAogICAgIC8vIFNpbmNlIHdlIGFyZSB1c2luZyBhIHdvcmtlclF1ZXVlLCB0aGUgc2VxdWVudGlh
bCBkaXNwYXRjaCBibG9ja3MgbWF5IGJlIGNhbGxlZCBieSBkaWZmZXJlbnQgdGhyZWFkcy4KQEAg
LTM2MCwyNyArMzY1LDI1IEBAIHN0YXRpYyB2b2lkIHJlc2V0U3RhdGVtZW50KFNRTGl0ZVN0YXRl
bWVudCYgc3RhdGVtZW50KQogICAgIEFTU0VSVF9VTlVTRUQocmVzZXRSZXN1bHQsIHJlc2V0UmVz
dWx0ID09IFNRTElURV9PSyk7CiB9CiAKLWJvb2wgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFi
YXNlU3RvcmU6OmlzQ29ycmVjdFRhYmxlU2NoZW1hKCkKK3ZvaWQgUmVzb3VyY2VMb2FkU3RhdGlz
dGljc0RhdGFiYXNlU3RvcmU6OmlzQ29ycmVjdFRhYmxlU2NoZW1hKFZlY3RvcjxTdHJpbmc+JiBt
aXNzaW5nVGFibGVzKQogewogICAgIFNRTGl0ZVN0YXRlbWVudCBzdGF0ZW1lbnQobV9kYXRhYmFz
ZSwgIlNFTEVDVCAxIGZyb20gc3FsaXRlX21hc3RlciBXSEVSRSB0eXBlPSd0YWJsZScgYW5kIHRi
bF9uYW1lPT8iKTsKICAgICBpZiAoc3RhdGVtZW50LnByZXBhcmUoKSAhPSBTUUxJVEVfT0spIHsK
ICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTmV0d29yaywgIiVwIC0gUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc0RhdGFiYXNlU3RvcmU6OmlzQ29ycmVjdFRhYmxlU2NoZW1hIGZhaWxlZCB0byBwcmVw
YXJlLCBlcnJvciBtZXNzYWdlOiAlIiBQVUJMSUNfTE9HX1NUUklORywgdGhpcywgbV9kYXRhYmFz
ZS5sYXN0RXJyb3JNc2coKSk7Ci0gICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgcmV0dXJu
OwogICAgIH0KIAotICAgIGJvb2wgaGFzQWxsVGFibGVzID0gdHJ1ZTsKLSAgICBmb3IgKGF1dG8g
dGFibGUgOiB0YWJsZXMpIHsKKyAgICBmb3IgKGF1dG8mIHRhYmxlIDogY3JlYXRlVGFibGVRdWVy
aWVzKCkua2V5cygpKSB7CiAgICAgICAgIGlmIChzdGF0ZW1lbnQuYmluZFRleHQoMSwgdGFibGUp
ICE9IFNRTElURV9PSykgewogICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTmV0d29yaywg
IiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmlzQ29ycmVjdFRhYmxl
U2NoZW1hIGZhaWxlZCB0byBiaW5kLCBlcnJvciBtZXNzYWdlOiAlIiBQVUJMSUNfTE9HX1NUUklO
RywgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7Ci0gICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICAgICAgaWYgKHN0YXRl
bWVudC5zdGVwKCkgIT0gU1FMSVRFX1JPVykgewotICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJS
T1IoTmV0d29yaywgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6Omlz
Q29ycmVjdFRhYmxlU2NoZW1hIHNjaGVtYSBpcyBtaXNzaW5nIHRhYmxlOiAlcyIsIHRoaXMsIHRh
YmxlKTsKLSAgICAgICAgICAgIGhhc0FsbFRhYmxlcyA9IGZhbHNlOworICAgICAgICAgICAgUkVM
RUFTRV9MT0dfRVJST1IoTmV0d29yaywgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFi
YXNlU3RvcmU6OmlzQ29ycmVjdFRhYmxlU2NoZW1hIHNjaGVtYSBpcyBtaXNzaW5nIHRhYmxlOiAl
cyIsIHRoaXMsIHRhYmxlLmFzY2lpKCkuZGF0YSgpKTsKKyAgICAgICAgICAgIG1pc3NpbmdUYWJs
ZXMuYXBwZW5kKFN0cmluZyh0YWJsZSkpOwogICAgICAgICB9CiAgICAgICAgIHJlc2V0U3RhdGVt
ZW50KHN0YXRlbWVudCk7CiAgICAgfQotICAgIHJldHVybiBoYXNBbGxUYWJsZXM7CiB9CiAKIHZv
aWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmVuYWJsZUZvcmVpZ25LZXlz
KCkKQEAgLTQyNCw3ICs0MjcsNyBAQCB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFz
ZVN0b3JlOjptaWdyYXRlRGF0YVRvTmV3VGFibGVzSWZOZWNlc3NhcnkoKQogICAgIFNRTGl0ZVRy
YW5zYWN0aW9uIHRyYW5zYWN0aW9uKG1fZGF0YWJhc2UpOwogICAgIHRyYW5zYWN0aW9uLmJlZ2lu
KCk7CiAKLSAgICBmb3IgKGF1dG8mIHRhYmxlIDogdGFibGVzKSB7CisgICAgZm9yIChhdXRvJiB0
YWJsZSA6IGNyZWF0ZVRhYmxlUXVlcmllcygpLmtleXMoKSkgewogICAgICAgICBhdXRvIHF1ZXJ5
ID0gbWFrZVN0cmluZygiQUxURVIgVEFCTEUgIiwgdGFibGUsICIgUkVOQU1FIFRPIF8iLCB0YWJs
ZSk7CiAgICAgICAgIFNRTGl0ZVN0YXRlbWVudCBhbHRlclRhYmxlKG1fZGF0YWJhc2UsIHF1ZXJ5
KTsKICAgICAgICAgaWYgKGFsdGVyVGFibGUucHJlcGFyZSgpICE9IFNRTElURV9PSyB8fCBhbHRl
clRhYmxlLnN0ZXAoKSAhPSBTUUxJVEVfRE9ORSkgewpAQCAtNDQwLDcgKzQ0Myw3IEBAIHZvaWQg
UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6Om1pZ3JhdGVEYXRhVG9OZXdUYWJs
ZXNJZk5lY2Vzc2FyeSgpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBmb3IgKGF1dG8m
IHRhYmxlIDogdGFibGVzKSB7CisgICAgZm9yIChhdXRvJiB0YWJsZSA6IGNyZWF0ZVRhYmxlUXVl
cmllcygpLmtleXMoKSkgewogICAgICAgICBhdXRvIHF1ZXJ5ID0gbWFrZVN0cmluZygiSU5TRVJU
IElOVE8gIiwgdGFibGUsICIgU0VMRUNUICogRlJPTSBfIiwgdGFibGUpOwogICAgICAgICBTUUxp
dGVTdGF0ZW1lbnQgbWlncmF0ZVRhYmxlRGF0YShtX2RhdGFiYXNlLCBxdWVyeSk7CiAgICAgICAg
IGlmIChtaWdyYXRlVGFibGVEYXRhLnByZXBhcmUoKSAhPSBTUUxJVEVfT0sgfHwgbWlncmF0ZVRh
YmxlRGF0YS5zdGVwKCkgIT0gU1FMSVRFX0RPTkUpIHsKQEAgLTQ2NywxNyArNDcwLDIzIEBAIHZv
aWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6Om1pZ3JhdGVEYXRhVG9OZXdU
YWJsZXNJZk5lY2Vzc2FyeSgpCiAgICAgfQogfQogCi12b2lkIFJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NEYXRhYmFzZVN0b3JlOjpvcGVuQW5kRHJvcE9sZERhdGFiYXNlSWZOZWNlc3NhcnkoKQordm9p
ZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6YWRkTWlzc2luZ1RhYmxlcyhW
ZWN0b3I8U3RyaW5nPiYgbWlzc2luZ1RhYmxlcykKK3sKKyAgICBmb3IgKGF1dG8mIHRhYmxlIDog
bWlzc2luZ1RhYmxlcykgeworICAgICAgICBhdXRvIGNyZWF0ZVRhYmxlUXVlcnkgPSBjcmVhdGVU
YWJsZVF1ZXJpZXMoKS5nZXQodGFibGUpOworICAgICAgICBpZiAoIW1fZGF0YWJhc2UuZXhlY3V0
ZUNvbW1hbmQoY3JlYXRlVGFibGVRdWVyeSkpCisgICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJP
UihOZXR3b3JrLCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6YWRk
TWlzc2luZ1RhYmxlcyBmYWlsZWQgdG8gZXhlY3V0ZSwgZXJyb3IgbWVzc2FnZTogJSIgUFVCTElD
X0xPR19TVFJJTkcsIHRoaXMsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOworICAgIH0KK30K
Kwordm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6b3BlbkFuZFVwZGF0
ZVNjaGVtYUlmTmVjZXNzYXJ5KCkKIHsKICAgICBvcGVuSVRQRGF0YWJhc2UoKTsKIAotICAgIGlm
ICghaXNDb3JyZWN0VGFibGVTY2hlbWEoKSkgewotICAgICAgICBtX2RhdGFiYXNlLmNsb3NlKCk7
Ci0gICAgICAgIC8vIEZJWE1FOiBNaWdyYXRlIGV4aXN0aW5nIGRhdGEgdG8gbmV3IGRhdGFiYXNl
IGZpbGUgaW5zdGVhZCBvZiBkZWxldGluZyBpdCAoMjA0NDgyKS4KLSAgICAgICAgRmlsZVN5c3Rl
bTo6ZGVsZXRlRmlsZShtX3N0b3JhZ2VEaXJlY3RvcnlQYXRoKTsKLSAgICAgICAgb3BlbklUUERh
dGFiYXNlKCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9CisgICAgVmVjdG9yPFN0cmluZz4gbWlz
c2luZ1RhYmxlczsKKyAgICBpc0NvcnJlY3RUYWJsZVNjaGVtYShtaXNzaW5nVGFibGVzKTsKKyAg
ICBpZiAoIW1pc3NpbmdUYWJsZXMuaXNFbXB0eSgpKQorICAgICAgICBhZGRNaXNzaW5nVGFibGVz
KG1pc3NpbmdUYWJsZXMpOwogCiAgICAgU3RyaW5nIGN1cnJlbnRTY2hlbWE7CiAgICAgewpAQCAt
NTAzLDcgKzUxMiw4IEBAIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6
Om9wZW5BbmREcm9wT2xkRGF0YWJhc2VJZk5lY2Vzc2FyeSgpCiAKICAgICBBU1NFUlQoIWN1cnJl
bnRTY2hlbWEuaXNFbXB0eSgpKTsKIAotICAgIC8vIElmIHRoZSBzY2hlbWEgaW4gdGhlIFJlc291
cmNlTG9hZFN0YXRpc3RpY3MgZGlyZWN0b3J5IGlzIG5vdCB0aGUgY3VycmVudCBzY2hlbWEsIGRl
bGV0ZSB0aGUgZGF0YWJhc2UgZmlsZS4KKyAgICAvLyBJZiB0aGUgT2JzZXJ2ZWREb21haW5zIHNj
aGVtYSBpbiB0aGUgUmVzb3VyY2VMb2FkU3RhdGlzdGljcyBkaXJlY3RvcnkgaXMgbm90IHRoZSBj
dXJyZW50IHNjaGVtYSwgZGVsZXRlIHRoZSBkYXRhYmFzZSBmaWxlLgorICAgIC8vIEZJWE1FOiBN
aWdyYXRlIG9sZCBPYnNlcnZlZERvbWFpbnMgZGF0YSB0byBuZXcgdGFibGUgc2NoZW1hLgogICAg
IGlmIChjdXJyZW50U2NoZW1hICE9IE9ic2VydmVkRG9tYWluc1RhYmxlU2NoZW1hVjEoKSAmJiBj
dXJyZW50U2NoZW1hICE9IE9ic2VydmVkRG9tYWluc1RhYmxlU2NoZW1hVjFBbHRlcm5hdGUoKSkg
ewogICAgICAgICBtX2RhdGFiYXNlLmNsb3NlKCk7CiAgICAgICAgIEZpbGVTeXN0ZW06OmRlbGV0
ZUZpbGUobV9zdG9yYWdlRGlyZWN0b3J5UGF0aCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNl
U3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5oCmluZGV4IDQzMDM1ODM4MDQ4NmU2ZjA5YjE3
NDcxNzI1ZTE4MjYxYWJlZjBiYjUuLjlmMWIzMTIxYzFkY2Y0YWFiMjFjNGVkMTgwNjQ4NDZhMDM1
YTAwYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmll
ci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJh
c2VTdG9yZS5oCkBAIC0xNDAsMTYgKzE0MCwxNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRJc05l
d1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZUZpbGUoYm9vbCBpc05ld1Jlc291cmNlTG9h
ZFN0YXRpc3RpY3NEYXRhYmFzZUZpbGUpIHsgbV9pc05ld1Jlc291cmNlTG9hZFN0YXRpc3RpY3NE
YXRhYmFzZUZpbGUgPSBpc05ld1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZUZpbGU7IH0K
ICAgICB2b2lkIHJlbW92ZURhdGFGb3JEb21haW4oY29uc3QgUmVnaXN0cmFibGVEb21haW4mKSBv
dmVycmlkZTsKICAgICBib29sIGRvbWFpbklERXhpc3RzSW5EYXRhYmFzZShpbnQpOworICAgIHZv
aWQgaXNDb3JyZWN0VGFibGVTY2hlbWEoVmVjdG9yPFN0cmluZz4mKTsKIAogcHJpdmF0ZToKICAg
ICB2b2lkIG9wZW5JVFBEYXRhYmFzZSgpOwotICAgIGJvb2wgaXNDb3JyZWN0VGFibGVTY2hlbWEo
KTsKKyAgICB2b2lkIGFkZE1pc3NpbmdUYWJsZXMoVmVjdG9yPFN0cmluZz4mKTsKICAgICB2b2lk
IGVuYWJsZUZvcmVpZ25LZXlzKCk7CiAgICAgYm9vbCBpc01pZ3JhdGlvbk5lY2Vzc2FyeSgpOwog
ICAgIHZvaWQgbWlncmF0ZURhdGFUb05ld1RhYmxlc0lmTmVjZXNzYXJ5KCk7CiAgICAgYm9vbCBo
YXNTdG9yYWdlQWNjZXNzKGNvbnN0IFRvcEZyYW1lRG9tYWluJiwgY29uc3QgU3ViRnJhbWVEb21h
aW4mKSBjb25zdDsKICAgICBWZWN0b3I8V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpU
aGlyZFBhcnR5RGF0YUZvclNwZWNpZmljRmlyc3RQYXJ0eT4gZ2V0VGhpcmRQYXJ0eURhdGFGb3JT
cGVjaWZpY0ZpcnN0UGFydHlEb21haW5zKHVuc2lnbmVkLCBjb25zdCBSZWdpc3RyYWJsZURvbWFp
biYpIGNvbnN0OwotICAgIHZvaWQgb3BlbkFuZERyb3BPbGREYXRhYmFzZUlmTmVjZXNzYXJ5KCk7
CisgICAgdm9pZCBvcGVuQW5kVXBkYXRlU2NoZW1hSWZOZWNlc3NhcnkoKTsKICAgICBTdHJpbmcg
Z2V0RG9tYWluU3RyaW5nRnJvbURvbWFpbklEKHVuc2lnbmVkKSBjb25zdDsKICAgICBTdHJpbmcg
Z2V0U3ViU3RhdGlzdGljU3RhdGVtZW50KGNvbnN0IFN0cmluZyYpIGNvbnN0OwogICAgIHZvaWQg
YXBwZW5kU3ViU3RhdGlzdGljTGlzdChTdHJpbmdCdWlsZGVyJiwgY29uc3QgU3RyaW5nJiB0YWJs
ZU5hbWUsIGNvbnN0IFN0cmluZyYgZG9tYWluKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
U3RvcmUuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJl
c291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAKaW5kZXggYmZlOWJjMzIyOGY1OTAxNWQ2YmI5
ZGMxMmUyNjcyYmZmMDM3MjlhYS4uMzk3ZjBiYzI5ZTQ1MzNmYjg4YmNjNzYzYTc0ZThhMzJkMjNj
ZjYzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVy
L1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5j
cHAKQEAgLTMyMCw2ICszMjAsMjMgQEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3Rv
cmU6OnNjaGVkdWxlU3RhdGlzdGljc0FuZERhdGFSZWNvcmRzUHJvY2Vzc2luZygKICAgICB9KTsK
IH0KIAordm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnN0YXRpc3RpY3NEYXRh
YmFzZUhhc0FsbFRhYmxlcyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRp
b25IYW5kbGVyKQoreworICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CisgICAgCisgICAg
cG9zdFRhc2soW3RoaXMsIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlcildKCkgbXV0YWJsZSB7IAorICAgICAgICBpZiAoIW1fc3RhdGlzdGljc1N0b3JlIHx8ICFp
czxSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZT4oKm1fc3RhdGlzdGljc1N0b3Jl
KSkgeworICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOworICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICB9CisgICAgICAgIFZlY3RvcjxTdHJpbmc+IG1pc3NpbmdUYWJsZXM7
CisgICAgICAgIGRvd25jYXN0PFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlPigq
bV9zdGF0aXN0aWNzU3RvcmUpLmlzQ29ycmVjdFRhYmxlU2NoZW1hKG1pc3NpbmdUYWJsZXMpOwor
ICAgICAgICBwb3N0VGFza1JlcGx5KFtoYXNBbGxUYWJsZXMgPSBtaXNzaW5nVGFibGVzLmlzRW1w
dHkoKSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0gKCkg
bXV0YWJsZSB7CisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihoYXNBbGxUYWJsZXMpOwor
ICAgICAgICB9KTsKKyAgICB9KTsKK30KKwogdm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
U3RvcmU6OnJlc291cmNlTG9hZFN0YXRpc3RpY3NVcGRhdGVkKFZlY3RvcjxSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzPiYmIHN0YXRpc3RpY3MpCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigp
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9X
ZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaAppbmRleCBk
ZTQxNTljOTczYTgzMGNmY2JmNDZkNDc0NjA1YzEwMWYzM2YzYTU0Li5jMjhjOTAyNjMyODA0NTgz
Mjk3ZTQ3YmVjNjA0OGFjODg3OGM1YTdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmgKKysr
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NTdG9yZS5oCkBAIC0yNTEsNiArMjUxLDcgQEAgc3RydWN0IFRoaXJkUGFydHlE
YXRhIHsKICAgICB2b2lkIHNjaGVkdWxlQ29va2llQmxvY2tpbmdVcGRhdGUoQ29tcGxldGlvbkhh
bmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHNjaGVkdWxlQ29va2llQmxvY2tpbmdVcGRhdGVG
b3JEb21haW5zKGNvbnN0IFZlY3RvcjxSZWdpc3RyYWJsZURvbWFpbj4mLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgc2NoZWR1bGVTdGF0aXN0aWNzQW5kRGF0YVJlY29y
ZHNQcm9jZXNzaW5nKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CisgICAgdm9pZCBzdGF0
aXN0aWNzRGF0YWJhc2VIYXNBbGxUYWJsZXMoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4m
Jik7CiAgICAgdm9pZCBzdWJtaXRUZWxlbWV0cnkoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYm
KTsKICAgICB2b2lkIHNjaGVkdWxlQ2xlYXJJbk1lbW9yeUFuZFBlcnNpc3RlbnQoU2hvdWxkR3Jh
bmRmYXRoZXJTdGF0aXN0aWNzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZv
aWQgc2NoZWR1bGVDbGVhckluTWVtb3J5QW5kUGVyc2lzdGVudChXYWxsVGltZSBtb2RpZmllZFNp
bmNlLCBTaG91bGRHcmFuZGZhdGhlclN0YXRpc3RpY3MsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
KT4mJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQ
cm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3Mu
Y3BwCmluZGV4IGY4Y2E2M2QwNmI4MDEzZGE5MGNmMjQxOThmNTM3YTljNTM1ZDIwMGUuLmY1NTY5
M2Y4NDljZWI1NzYyZjhmYmU2MWFjNjA2MzczNThkZmQzNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCkBAIC04MjAsNiArODIwLDE5IEBA
IHZvaWQgTmV0d29ya1Byb2Nlc3M6OnNjaGVkdWxlU3RhdGlzdGljc0FuZERhdGFSZWNvcmRzUHJv
Y2Vzc2luZyhQQUw6OlNlc3Npb25JRCBzCiAgICAgfQogfQogCit2b2lkIE5ldHdvcmtQcm9jZXNz
OjpzdGF0aXN0aWNzRGF0YWJhc2VIYXNBbGxUYWJsZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklE
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQorewor
ICAgIGlmIChhdXRvKiBuZXR3b3JrU2Vzc2lvbiA9IHRoaXMtPm5ldHdvcmtTZXNzaW9uKHNlc3Np
b25JRCkpIHsKKyAgICAgICAgaWYgKGF1dG8qIHJlc291cmNlTG9hZFN0YXRpc3RpY3MgPSBuZXR3
b3JrU2Vzc2lvbi0+cmVzb3VyY2VMb2FkU3RhdGlzdGljcygpKQorICAgICAgICAgICAgcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy0+c3RhdGlzdGljc0RhdGFiYXNlSGFzQWxsVGFibGVzKFdURk1vdmUo
Y29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgY29tcGxldGlv
bkhhbmRsZXIoZmFsc2UpOworICAgIH0gZWxzZSB7CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmYWxzZSk7CisgICAgfQorfQorCiB2b2lk
IE5ldHdvcmtQcm9jZXNzOjpzZXROb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVk
KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgYm9vbCB2YWx1ZSwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIGlmIChhdXRvKiBuZXR3b3JrU2Vz
c2lvbiA9IHRoaXMtPm5ldHdvcmtTZXNzaW9uKHNlc3Npb25JRCkpIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaCBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaAppbmRleCBkYTZhZDdhODc4YTdhOTkx
YjA1YWI3MzhlM2I5MDdkZDk5MGJmODlhLi5hYzllZmMwZWY3OThiMTRiNTU5YTk3M2IyMjJhODRh
YWU4YzI5M2FjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJv
Y2Vzcy5oCkBAIC0yMzcsNiArMjM3LDcgQEAgcHVibGljOgogICAgIHZvaWQgZ2V0UmVzb3VyY2VM
b2FkU3RhdGlzdGljc0RhdGFTdW1tYXJ5KFBBTDo6U2Vzc2lvbklELCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKFZlY3RvcjxXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OlRoaXJkUGFydHlE
YXRhPiYmKT4mJik7CiAgICAgdm9pZCBzY2hlZHVsZUNvb2tpZUJsb2NraW5nVXBkYXRlKFBBTDo6
U2Vzc2lvbklELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgc2NoZWR1
bGVTdGF0aXN0aWNzQW5kRGF0YVJlY29yZHNQcm9jZXNzaW5nKFBBTDo6U2Vzc2lvbklELCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOworICAgIHZvaWQgc3RhdGlzdGljc0RhdGFiYXNlSGFz
QWxsVGFibGVzKFBBTDo6U2Vzc2lvbklELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYm
KTsKICAgICB2b2lkIHN1Ym1pdFRlbGVtZXRyeShQQUw6OlNlc3Npb25JRCwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHNldENhY2hlTWF4QWdlQ2FwRm9yUHJldmFsZW50
UmVzb3VyY2VzKFBBTDo6U2Vzc2lvbklELCBTZWNvbmRzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KCk+JiYpOwogICAgIHZvaWQgc2V0R3JhbmRmYXRoZXJpbmdUaW1lKFBBTDo6U2Vzc2lvbklELCBT
ZWNvbmRzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbiBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4KaW5kZXgg
NWVhYmEzN2FlMGJiOTIzNTY1ZDAwODExYzk2NGQ1Mzc4OTY2N2UxMS4uMGYzMjg4YWZjNzZmNzI4
ZDJkZGZlZTIzZTQwOTg5OTE5NzlmMjg0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCkBAIC0xMTEsNiArMTEx
LDcgQEAgbWVzc2FnZXMgLT4gTmV0d29ya1Byb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgewogICAgIFNj
aGVkdWxlQ2xlYXJJbk1lbW9yeUFuZFBlcnNpc3RlbnQoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklE
LCBPcHRpb25hbDxXYWxsVGltZT4gbW9kaWZpZWRTaW5jZSwgZW51bTpib29sIFdlYktpdDo6U2hv
dWxkR3JhbmRmYXRoZXJTdGF0aXN0aWNzIHNob3VsZEdyYW5kZmF0aGVyKSAtPiAoKSBBc3luYwog
ICAgIFNjaGVkdWxlQ29va2llQmxvY2tpbmdVcGRhdGUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklE
KSAtPiAoKSBBc3luYwogICAgIFNjaGVkdWxlU3RhdGlzdGljc0FuZERhdGFSZWNvcmRzUHJvY2Vz
c2luZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpIC0+ICgpIEFzeW5jCisgICAgU3RhdGlzdGlj
c0RhdGFiYXNlSGFzQWxsVGFibGVzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkgLT4gKGJvb2wg
aGFzQWxsVGFibGVzKSBBc3luYwogICAgIFN1Ym1pdFRlbGVtZXRyeShQQUw6OlNlc3Npb25JRCBz
ZXNzaW9uSUQpIC0+ICgpIEFzeW5jCiAgICAgU2V0Q2FjaGVNYXhBZ2VDYXBGb3JQcmV2YWxlbnRS
ZXNvdXJjZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBTZWNvbmRzIHNlY29uZHMpIC0+ICgp
IEFzeW5jCiAgICAgU2V0R3JhbmRmYXRoZXJlZChQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdl
YkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHJlc291cmNlRG9tYWluLCBib29sIGlzR3JhbmRmYXRo
ZXJlZCkgLT4gKCkgQXN5bmMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1tCmluZGV4IDczYzk4YTM0NjI1ZDhmNTU1MjQx
NDM4NGUzY2U2YjhkYjg0MGU4ZDguLmZhNzI2OGQwMjgxNWNhMTIxZDE4YTdmNjc3ZDYzMGNlNWZl
Yjc1MDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dl
YnNpdGVEYXRhU3RvcmUubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLV2Vic2l0ZURhdGFTdG9yZS5tbQpAQCAtNTYyLDYgKzU2MiwxNyBAQCAtICh2b2lkKV9pc1Jl
Z2lzdGVyZWRBc1N1YnJlc291cmNlVW5kZXJGaXJzdFBhcnR5OihOU1VSTCAqKWZpcnN0UGFydHlV
UkwgdGhpcmRQYQogI2VuZGlmCiB9CiAKKy0gKHZvaWQpX3N0YXRpc3RpY3NEYXRhYmFzZUhhc0Fs
bFRhYmxlczoodm9pZCAoXikoQk9PTCkpY29tcGxldGlvbkhhbmRsZXIKK3sKKyNpZiBFTkFCTEUo
UkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorICAgIF93ZWJzaXRlRGF0YVN0b3JlLT5zdGF0aXN0
aWNzRGF0YWJhc2VIYXNBbGxUYWJsZXMoW2NvbXBsZXRpb25IYW5kbGVyID0gbWFrZUJsb2NrUHRy
KGNvbXBsZXRpb25IYW5kbGVyKV0oYm9vbCBoYXNBbGxUYWJsZXMpIHsKKyAgICAgICAgY29tcGxl
dGlvbkhhbmRsZXIoaGFzQWxsVGFibGVzKTsKKyAgICB9KTsKKyNlbHNlCisgICAgY29tcGxldGlv
bkhhbmRsZXIoTk8pOworI2VuZGlmCit9CisKIC0gKHZvaWQpX3Byb2Nlc3NTdGF0aXN0aWNzQW5k
RGF0YVJlY29yZHM6KHZvaWQgKF4pKHZvaWQpKWNvbXBsZXRpb25IYW5kbGVyCiB7CiAjaWYgRU5B
QkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmVQcml2YXRlLmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlUHJpdmF0ZS5oCmlu
ZGV4IDYwOTU5ZTQ3MzUxYjBhZWRhMmEyMjc3MDQ3Y2Y5ODhlZDU5OTYzNDYuLjU1YWJmZjFmZDQ0
ZjAxOGYwNDk5NzZkMTI2ZmFmMzgwMjAyMzcxODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmVQcml2YXRlLmgKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZVByaXZhdGUu
aApAQCAtNzcsNiArNzcsNyBAQCB0eXBlZGVmIE5TX09QVElPTlMoTlNVSW50ZWdlciwgX1dLV2Vi
c2l0ZURhdGFTdG9yZUZldGNoT3B0aW9ucykgewogLSAodm9pZClfY2xlYXJSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzOih2b2lkICheKSh2b2lkKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxB
QkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogLSAodm9pZClfaXNSZWdp
c3RlcmVkQXNTdWJyZXNvdXJjZVVuZGVyRmlyc3RQYXJ0eTooTlNVUkwgKilmaXJzdFBhcnR5VVJM
IHRoaXJkUGFydHk6KE5TVVJMICopdGhpcmRQYXJ0eVVSTCBjb21wbGV0aW9uSGFuZGxlcjoodm9p
ZCAoXikoQk9PTCkpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19N
QUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIC0gKHZvaWQpX3NldFRoaXJkUGFydHlDb29raWVC
bG9ja2luZ01vZGU6KEJPT0wpZW5hYmxlZCBvbmx5T25TaXRlc1dpdGhvdXRVc2VySW50ZXJhY3Rp
b246KEJPT0wpb25seU9uU2l0ZXNXaXRob3V0VXNlckludGVyYWN0aW9uIGNvbXBsZXRpb25IYW5k
bGVyOih2b2lkICheKSh2b2lkKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1h
Y29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworLSAodm9pZClfc3RhdGlzdGljc0Rh
dGFiYXNlSGFzQWxsVGFibGVzOih2b2lkICheKShCT09MKSljb21wbGV0aW9uSGFuZGxlciBXS19B
UElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogLSAodm9p
ZClfcHJvY2Vzc1N0YXRpc3RpY3NBbmREYXRhUmVjb3Jkczoodm9pZCAoXikodm9pZCkpY29tcGxl
dGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNSksIGlvcygxMy4wKSk7CiAt
ICh2b2lkKV9hcHBCb3VuZERvbWFpbnM6KHZvaWQgKF4pKE5TQXJyYXk8TlNTdHJpbmcgKj4gKikp
Y29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9z
KFdLX0lPU19UQkEpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0
d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05l
dHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKaW5kZXggZjlhZGU3NjJhZGIzODE0ZTQ5YWY5
ZTU5ZDVmNGQxYWEyOGMyMWRmYy4uOTRjZWE4ZjljYjFjYTA1MzQ3MGE4MTIzNjdlYTE5ODU4MzIz
OGZkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3Jr
UHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05l
dHdvcmtQcm9jZXNzUHJveHkuY3BwCkBAIC02MjksNiArNjI5LDE2IEBAIHZvaWQgTmV0d29ya1By
b2Nlc3NQcm94eTo6c2NoZWR1bGVTdGF0aXN0aWNzQW5kRGF0YVJlY29yZHNQcm9jZXNzaW5nKFBB
TDo6U2Vzc2lvCiAgICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vz
czo6U2NoZWR1bGVTdGF0aXN0aWNzQW5kRGF0YVJlY29yZHNQcm9jZXNzaW5nKHNlc3Npb25JRCks
IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAordm9pZCBOZXR3b3JrUHJvY2Vzc1By
b3h5OjpzdGF0aXN0aWNzRGF0YWJhc2VIYXNBbGxUYWJsZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lv
bklELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQor
eworICAgIGlmICghY2FuU2VuZE1lc3NhZ2UoKSkgeworICAgICAgICBjb21wbGV0aW9uSGFuZGxl
cihmYWxzZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgCisgICAgc2VuZFdpdGhBc3lu
Y1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6U3RhdGlzdGljc0RhdGFiYXNlSGFzQWxs
VGFibGVzKHNlc3Npb25JRCksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKK30KKwogdm9p
ZCBOZXR3b3JrUHJvY2Vzc1Byb3h5Ojpsb2dVc2VySW50ZXJhY3Rpb24oUEFMOjpTZXNzaW9uSUQg
c2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgcmVzb3VyY2VEb21haW4sIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBpZiAoIWNh
blNlbmRNZXNzYWdlKCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05l
dHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0
d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKaW5kZXggNGY4MDUzMzNlY2M3MTgxMWI1MmIyMzhk
YjE4ZDZhYWRhZGQyZGE3MC4uNzY3MjA3ZmVhYjQ2YjFjOTdhYTljOWIyNWYzMGViNzRhM2ViYzEy
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJv
Y2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3Jr
UHJvY2Vzc1Byb3h5LmgKQEAgLTEzMSw2ICsxMzEsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzY2hl
ZHVsZVN0YXRpc3RpY3NBbmREYXRhUmVjb3Jkc1Byb2Nlc3NpbmcoUEFMOjpTZXNzaW9uSUQsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBzZXRMYXN0U2VlbihQQUw6OlNl
c3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mLCBTZWNvbmRzLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgZG9tYWluSURFeGlzdHNJbkRhdGFiYXNlKFBBTDo6
U2Vzc2lvbklELCBpbnQgZG9tYWluSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYp
OworICAgIHZvaWQgc3RhdGlzdGljc0RhdGFiYXNlSGFzQWxsVGFibGVzKFBBTDo6U2Vzc2lvbklE
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKICAgICB2b2lkIG1lcmdlU3RhdGlz
dGljRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mLCBj
b25zdCBUb3BGcmFtZURvbWFpbiYgdG9wRnJhbWVEb21haW4xLCBjb25zdCBUb3BGcmFtZURvbWFp
biYgdG9wRnJhbWVEb21haW4yLCBTZWNvbmRzIGxhc3RTZWVuLCBib29sIGhhZFVzZXJJbnRlcmFj
dGlvbiwgU2Vjb25kcyBtb3N0UmVjZW50VXNlckludGVyYWN0aW9uLCBib29sIGlzR3JhbmRmYXRo
ZXJlZCwgYm9vbCBpc1ByZXZhbGVudCwgYm9vbCBpc1ZlcnlQcmV2YWxlbnQsIHVuc2lnbmVkIGRh
dGFSZWNvcmRzUmVtb3ZlZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lk
IHNldEFnZUNhcEZvckNsaWVudFNpZGVDb29raWVzKFBBTDo6U2Vzc2lvbklELCBPcHRpb25hbDxT
ZWNvbmRzPiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHNldENhY2hl
TWF4QWdlQ2FwKFBBTDo6U2Vzc2lvbklELCBTZWNvbmRzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KCk+JiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEv
V2Vic2l0ZURhdGFTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0
YS9XZWJzaXRlRGF0YVN0b3JlLmNwcAppbmRleCA3NzM1NjY4MThhYjg2ZGVkM2Y1Njg2MTNiMjU3
NjVlZjJhZmI1MzU5Li40ZTEzNGJhNzE0NjViYTZlNGU3ZDIxYzRmZDEwZjhiMWJjNDkxOGE0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0
YVN0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJz
aXRlRGF0YVN0b3JlLmNwcApAQCAtMTU4Myw2ICsxNTgzLDIwIEBAIHZvaWQgV2Vic2l0ZURhdGFT
dG9yZTo6c2NoZWR1bGVTdGF0aXN0aWNzQW5kRGF0YVJlY29yZHNQcm9jZXNzaW5nKENvbXBsZXRp
b25IYW5kCiAgICAgfQogfQogCit2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OnN0YXRpc3RpY3NEYXRh
YmFzZUhhc0FsbFRhYmxlcyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRp
b25IYW5kbGVyKQoreworICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CisKKyAgICBmb3Ig
KGF1dG8mIHByb2Nlc3NQb29sIDogcHJvY2Vzc1Bvb2xzKCkpIHsKKyAgICAgICAgaWYgKGF1dG8q
IHByb2Nlc3MgPSBwcm9jZXNzUG9vbC0+bmV0d29ya1Byb2Nlc3MoKSkgeworICAgICAgICAgICAg
cHJvY2Vzcy0+c3RhdGlzdGljc0RhdGFiYXNlSGFzQWxsVGFibGVzKG1fc2Vzc2lvbklELCBXVEZN
b3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0K
KyAgICB9CisgICAgCisgICAgY29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOworfQorCiB2b2lkIFdl
YnNpdGVEYXRhU3RvcmU6OnNldExhc3RTZWVuKGNvbnN0IFVSTCYgdXJsLCBTZWNvbmRzIHNlY29u
ZHMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAg
ICBpZiAodXJsLnByb3RvY29sSXNBYm91dCgpIHx8IHVybC5pc0VtcHR5KCkpIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUu
aCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUu
aAppbmRleCA1ZGE1ZmE1MWFlMjkzMDhkZmU5OWZhMTVhNGE4NTBkNjg5MDI2NWYzLi5jNDI0MTQz
OWExZTA0OWU2ZGI3NDAzZDVjOWE0NmUzOWZkOTk3NzE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oCkBAIC0xNjgs
NiArMTY4LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0R3JhbmRmYXRoZXJpbmdUaW1lKFNlY29u
ZHMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBzZXRMYXN0U2Vlbihj
b25zdCBVUkwmLCBTZWNvbmRzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZv
aWQgZG9tYWluSURFeGlzdHNJbkRhdGFiYXNlKGludCBkb21haW5JRCwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChib29sKT4mJik7CisgICAgdm9pZCBzdGF0aXN0aWNzRGF0YWJhc2VIYXNBbGxUYWJs
ZXMoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CiAgICAgdm9pZCBtZXJnZVN0YXRp
c3RpY0ZvclRlc3RpbmcoY29uc3QgVVJMJiwgY29uc3QgVVJMJiB0b3BGcmFtZVVybDEsIGNvbnN0
IFVSTCYgdG9wRnJhbWVVcmwyLCBTZWNvbmRzIGxhc3RTZWVuLCBib29sIGhhZFVzZXJJbnRlcmFj
dGlvbiwgU2Vjb25kcyBtb3N0UmVjZW50VXNlckludGVyYWN0aW9uLCBib29sIGlzR3JhbmRmYXRo
ZXJlZCwgYm9vbCBpc1ByZXZhbGVudCwgYm9vbCBpc1ZlcnlQcmV2YWxlbnQsIHVuc2lnbmVkIGRh
dGFSZWNvcmRzUmVtb3ZlZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lk
IHNldE5vdGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNjYW5uZWQoYm9vbCwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHNldElzUnVubmluZ1Jlc291cmNlTG9hZFN0
YXRpc3RpY3NUZXN0KGJvb2wsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CmRpZmYgLS1n
aXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggOTU1YTIzZTg0MmVi
YTFkNTk3Zjg5NGYzZDk5ZmJhMDEyOTNlNDBkOS4uNzU3MTIzYWFkYWRlNGIyOGVlNjAzNjgzZmY0
ZDFhODk2YTgyZWNiNiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDIwLTA0LTI0ICBLYXRlIENoZW5leSAgPGthdGhl
cmluZV9jaGVuZXlAYXBwbGUuY29tPgorCisgICAgICAgIENyZWF0ZSBhIG1lY2hhbmlzbSB0byBh
ZGQgbWlzc2luZyBJVFAgRGF0YWJhc2UgdGFibGVzIHdoZW4gdGhlIHNjaGVtYSBpcyB1cGRhdGVk
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTEwMDQK
KyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzYyMjYxMTg3PgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCB0ZXN0IGNhc2Ugd2hpY2ggY29waWVzIGEg
ZGF0YWJhc2Ugc2NoZW1hIHdpdGggYSBtaXNzaW5nIHRhYmxlIGludG8KKyAgICAgICAgdGhlIElU
UCBkYXRhYmFzZSBmaWxlLCB0aGVuIGVuc3VyZXMgdGhlIHByZS1zZWVkZWQgZGF0YSBoYXMgYmVl
bgorICAgICAgICBtaWdyYXRlZCBvdmVyIGFuZCB0aGF0IHRoZSBzY2hlbWEgaGFzIGFsbCB0YWJs
ZXMgKGluY2x1ZGluZyB0aGUKKyAgICAgICAgbWlzc2luZyBvbmUpLgorCisgICAgICAgICogVGVz
dFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAg
ICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9SZXNvdXJjZUxvYWRTdGF0aXN0
aWNzLm1tOgorICAgICAgICAoVEVTVCk6CisKIDIwMjAtMDQtMjcgIERhbmllbCBCYXRlcyAgPGRh
YmF0ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIENhcmV0IG1heSBiZSBwbGFjZWQgaW4gdGhlIHdy
b25nIHNwb3QgZm9yIHRleHQgaW5wdXQgY29udGV4dCB0aGF0IGlzIGEgZm9ybSBjb250cm9sCmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvaiBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGY0ZTM4OWNiZDZkZWNkZjc2MGY0MzU2NjY0OWMzODEx
NDM2ZDQ5MTUuLmNlNjY4NzU0MzEwNDExMGU0YWE1ZGI0MTMwZGE1YmZiMzRmZGNkZTcgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yNTYsNiArMjU2LDcgQEAKIAkJNDZGQUNGNzQyM0U4ODQy
MzAwQTlFQkM2IC8qIGJlZm9yZXVubG9hZC1zbG93Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDZGQUNGNzMyM0U4ODNFRTAwQTlFQkM2
IC8qIGJlZm9yZXVubG9hZC1zbG93Lmh0bWwgKi87IH07CiAJCTQ5MDlFRTNBMkQwOTQ4MEM4ODk4
MkQ1NiAvKiBNYXJrYWJsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBFQzc5RjE2OEJFNDU0RTU3OUU0MTdCMDUgLyogTWFya2FibGUuY3BwICovOyB9
OwogCQk0OTcxQjExODI0NTFGMjlBMDA5Njk5NEQgLyogaW5jb3JyZWN0Q3JlYXRlVGFibGVTY2hl
bWEuZGIgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNDk3MUIxMTcyNDUxRjI3ODAwOTY5OTREIC8qIGluY29ycmVjdENyZWF0ZVRhYmxlU2NoZW1h
LmRiICovOyB9OworCQk0OTcxQjEyMDI0NTNBODhDMDA5Njk5NEQgLyogbWlzc2luZ1RvcEZyYW1l
VW5pcXVlUmVkaXJlY3RTYW1lU2l0ZVN0cmljdFRhYmxlU2NoZW1hLmRiIGluIENvcHkgUmVzb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5NzFCMTFGMjQ1M0E4N0Yw
MDk2OTk0RCAvKiBtaXNzaW5nVG9wRnJhbWVVbmlxdWVSZWRpcmVjdFNhbWVTaXRlU3RyaWN0VGFi
bGVTY2hlbWEuZGIgKi87IH07CiAJCTQ5ODk3RDZDMjQxRkU5RTQwMEVDRjE1MyAvKiBpbi1hcHAt
YnJvd3Nlci1wcml2YWN5LWxvY2FsLWZpbGUuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OUQ3RkJBNzI0MUZERERBMDBBQjY3RkEgLyog
aW4tYXBwLWJyb3dzZXItcHJpdmFjeS1sb2NhbC1maWxlLmh0bWwgKi87IH07CiAJCTQ5QUVFRjZE
MjQwNzM1OUQwMEM4N0U0QyAvKiBJbkFwcEJyb3dzZXJQcml2YWN5Lm1tIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDlBRUVGNkIyNDA3MzU4NjAwQzg3RTRD
IC8qIEluQXBwQnJvd3NlclByaXZhY3kubW0gKi87IH07CiAJCTRCRkRGRkE3MTMxNDc3NkMwMDYx
RjI0QiAvKiBIaXRUZXN0UmVzdWx0Tm9kZUhhbmRsZV9CdW5kbGUuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEJGREZGQTYxMzE0Nzc2QzAwNjFGMjRC
IC8qIEhpdFRlc3RSZXN1bHROb2RlSGFuZGxlX0J1bmRsZS5jcHAgKi87IH07CkBAIC0xNDQ5LDYg
KzE0NTAsNyBAQAogCQkJCUNEQzk0NDJGMUVGMjA1RDYwMDU5QzNDNCAvKiBtZWRpYXN0cmVhbXRy
YWNrLWRldGFjaGVkLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJRTEyMjBEQ0ExNTVC
MjhBQTAwMTNFMkZDIC8qIE1lbW9yeUNhY2hlRGlzYWJsZVdpdGhpblJlc291cmNlTG9hZERlbGVn
YXRlLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJNTE3RTdFMDQxNTExMTlDMTAwRDBC
MDA4IC8qIE1lbW9yeUNhY2hlUHJ1bmVXaXRoaW5SZXNvdXJjZUxvYWREZWxlZ2F0ZS5odG1sIGlu
IENvcHkgUmVzb3VyY2VzICovLAorCQkJCTQ5NzFCMTIwMjQ1M0E4OEMwMDk2OTk0RCAvKiBtaXNz
aW5nVG9wRnJhbWVVbmlxdWVSZWRpcmVjdFNhbWVTaXRlU3RyaWN0VGFibGVTY2hlbWEuZGIgaW4g
Q29weSBSZXNvdXJjZXMgKi8sCiAJCQkJNTFDRDFDNzIxQjM4RDQ4NDAwMTQyQ0E1IC8qIG1vZGFs
LWFsZXJ0cy1pbi1uZXctYWJvdXQtYmxhbmstd2luZG93Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMg
Ki8sCiAJCQkJN0ExNDU4RkMxQUQ1QzA3MDAwRTA2NzcyIC8qIG1vdXNlLWJ1dHRvbi1saXN0ZW5l
ci5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTMzRTc5RTA2MTM3QjVGRDkwMEUzMkQ5
OSAvKiBtb3VzZS1tb3ZlLWxpc3RlbmVyLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCkBAIC0x
ODc2LDYgKzE4NzgsNyBAQAogCQk0NkZBMkZFRDIzODQ2QzlBMDAwQ0NCMEMgLyogSFRUUEhlYWRl
ck1hcC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBIVFRQSGVhZGVy
TWFwLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDZGQUNGNzMyM0U4ODNFRTAw
QTlFQkM2IC8qIGJlZm9yZXVubG9hZC1zbG93Lmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBh
dGggPSAiYmVmb3JldW5sb2FkLXNsb3cuaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTQ5NzFCMTE3MjQ1MUYyNzgwMDk2OTk0RCAvKiBpbmNvcnJlY3RDcmVhdGVUYWJsZVNjaGVt
YS5kYiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IGZp
bGU7IHBhdGggPSBpbmNvcnJlY3RDcmVhdGVUYWJsZVNjaGVtYS5kYjsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJNDk3MUIxMUYyNDUzQTg3RjAwOTY5OTREIC8qIG1pc3NpbmdUb3BGcmFt
ZVVuaXF1ZVJlZGlyZWN0U2FtZVNpdGVTdHJpY3RUYWJsZVNjaGVtYS5kYiAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IGZpbGU7IG5hbWUgPSBtaXNzaW5n
VG9wRnJhbWVVbmlxdWVSZWRpcmVjdFNhbWVTaXRlU3RyaWN0VGFibGVTY2hlbWEuZGI7IHBhdGgg
PSBUZXN0cy9XZWJLaXRDb2NvYS9taXNzaW5nVG9wRnJhbWVVbmlxdWVSZWRpcmVjdFNhbWVTaXRl
U3RyaWN0VGFibGVTY2hlbWEuZGI7IHNvdXJjZVRyZWUgPSBTT1VSQ0VfUk9PVDsgfTsKIAkJNDlB
RUVGNjgyNDA3Mjc2RjAwQzg3RTRDIC8qIEluZm8ucGxpc3QgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnBsaXN0
LnhtbDsgcGF0aCA9IEluZm8ucGxpc3Q7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ5
QUVFRjZCMjQwNzM1ODYwMEM4N0U0QyAvKiBJbkFwcEJyb3dzZXJQcml2YWN5Lm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gSW5BcHBCcm93c2VyUHJpdmFjeS5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDlEN0ZCQTcyNDFGREREQTAwQUI2N0ZBIC8q
IGluLWFwcC1icm93c2VyLXByaXZhY3ktbG9jYWwtZmlsZS5odG1sICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gImluLWFw
cC1icm93c2VyLXByaXZhY3ktbG9jYWwtZmlsZS5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTQwNzgsNiArNDA4MSw3IEBACiAJCQkJNzc3MkVDRTAyMkZFMDVFMTAwMDlBNzk5
IC8qIG1hbnktc2FtZS1vcmlnaW4taWZyYW1lcy5odG1sICovLAogCQkJCUNEODM5NERFMjMyQUYx
NUUwMDE0OTQ5NSAvKiBtZWRpYS1sb2FkaW5nLmh0bWwgKi8sCiAJCQkJQ0RDOTQ0MkIxRUYxRkJE
MjAwNTlDM0M0IC8qIG1lZGlhc3RyZWFtdHJhY2stZGV0YWNoZWQuaHRtbCAqLywKKwkJCQk0OTcx
QjExRjI0NTNBODdGMDA5Njk5NEQgLyogbWlzc2luZ1RvcEZyYW1lVW5pcXVlUmVkaXJlY3RTYW1l
U2l0ZVN0cmljdFRhYmxlU2NoZW1hLmRiICovLAogCQkJCTUxQ0QxQzcxMUIzOEQ0ODQwMDE0MkNB
NSAvKiBtb2RhbC1hbGVydHMtaW4tbmV3LWFib3V0LWJsYW5rLXdpbmRvdy5odG1sICovLAogCQkJ
CTdBMTQ1OEZCMUFENUMwMzUwMEUwNjc3MiAvKiBtb3VzZS1idXR0b24tbGlzdGVuZXIuaHRtbCAq
LywKIAkJCQkzM0U3OUUwNTEzN0I1RkNFMDBFMzJEOTkgLyogbW91c2UtbW92ZS1saXN0ZW5lci5o
dG1sICovLApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzLm1tCmluZGV4IDhhNDQzNTUyOTU4ZmZl
ZWNkNWY3Y2YzNjk1ZDNmMjI0ZjFmNWU3Y2YuLmIwMjE3ZmFjMTllNDJjZDQ4MGMyZmEwNTkyMjM1
MTZmYzJkZDUzNDIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Q29jb2EvUmVzb3VyY2VMb2FkU3RhdGlzdGljcy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL1Jlc291cmNlTG9hZFN0YXRpc3RpY3MubW0KQEAgLTE0OTUsMyAr
MTQ5NSw1NyBAQCBURVNUKFJlc291cmNlTG9hZFN0YXRpc3RpY3MsIE1pZ3JhdGVEYXRhRnJvbUlu
Y29ycmVjdENyZWF0ZVRhYmxlU2NoZW1hKQogCiAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVu
KCZkb25lRmxhZyk7CiB9CisKK1RFU1QoUmVzb3VyY2VMb2FkU3RhdGlzdGljcywgTWlncmF0ZURh
dGFGcm9tTWlzc2luZ1RvcEZyYW1lVW5pcXVlUmVkaXJlY3RTYW1lU2l0ZVN0cmljdFRhYmxlU2No
ZW1hKQoreworICAgIGF1dG8gKnNoYXJlZFByb2Nlc3NQb29sID0gW1dLUHJvY2Vzc1Bvb2wgX3No
YXJlZFByb2Nlc3NQb29sXTsKKworICAgIGF1dG8gZGVmYXVsdEZpbGVNYW5hZ2VyID0gW05TRmls
ZU1hbmFnZXIgZGVmYXVsdE1hbmFnZXJdOworICAgIGF1dG8gKmRhdGFTdG9yZSA9IFtXS1dlYnNp
dGVEYXRhU3RvcmUgZGVmYXVsdERhdGFTdG9yZV07CisgICAgTlNVUkwgKml0cFJvb3RVUkwgPSBb
W2RhdGFTdG9yZSBfY29uZmlndXJhdGlvbl0gX3Jlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3Rv
cnldOworICAgIE5TVVJMICpmaWxlVVJMID0gW2l0cFJvb3RVUkwgVVJMQnlBcHBlbmRpbmdQYXRo
Q29tcG9uZW50OkAib2JzZXJ2YXRpb25zLmRiIl07CisgICAgW2RlZmF1bHRGaWxlTWFuYWdlciBy
ZW1vdmVJdGVtQXRQYXRoOml0cFJvb3RVUkwucGF0aCBlcnJvcjpuaWxdOworICAgIEVYUEVDVF9G
QUxTRShbZGVmYXVsdEZpbGVNYW5hZ2VyIGZpbGVFeGlzdHNBdFBhdGg6aXRwUm9vdFVSTC5wYXRo
XSk7CisKKyAgICAvLyBMb2FkIGFuIGluY29ycmVjdCBkYXRhYmFzZSBzY2hlbWEgd2l0aCBwcmUt
c2VlZGVkIElUUCBkYXRhLgorICAgIFtkZWZhdWx0RmlsZU1hbmFnZXIgY3JlYXRlRGlyZWN0b3J5
QXRVUkw6aXRwUm9vdFVSTCB3aXRoSW50ZXJtZWRpYXRlRGlyZWN0b3JpZXM6WUVTIGF0dHJpYnV0
ZXM6bmlsIGVycm9yOm5pbF07CisgICAgTlNVUkwgKm5ld0ZpbGVVUkwgPSBbW05TQnVuZGxlIG1h
aW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAibWlzc2luZ1RvcEZyYW1lVW5pcXVlUmVkaXJlY3RT
YW1lU2l0ZVN0cmljdFRhYmxlU2NoZW1hIiB3aXRoRXh0ZW5zaW9uOkAiZGIiIHN1YmRpcmVjdG9y
eTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CisgICAgRVhQRUNUX1RSVUUoW2RlZmF1bHRG
aWxlTWFuYWdlciBmaWxlRXhpc3RzQXRQYXRoOm5ld0ZpbGVVUkwucGF0aF0pOworICAgIFtkZWZh
dWx0RmlsZU1hbmFnZXIgY29weUl0ZW1BdFBhdGg6bmV3RmlsZVVSTC5wYXRoIHRvUGF0aDpmaWxl
VVJMLnBhdGggZXJyb3I6bmlsXTsKKyAgICBFWFBFQ1RfVFJVRShbZGVmYXVsdEZpbGVNYW5hZ2Vy
IGZpbGVFeGlzdHNBdFBhdGg6ZmlsZVVSTC5wYXRoXSk7CisKKyAgICBhdXRvIGNvbmZpZ3VyYXRp
b24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOworICAg
IFtjb25maWd1cmF0aW9uIHNldFByb2Nlc3NQb29sOiBzaGFyZWRQcm9jZXNzUG9vbF07CisgICAg
Y29uZmlndXJhdGlvbi5nZXQoKS53ZWJzaXRlRGF0YVN0b3JlID0gZGF0YVN0b3JlOworCisgICAg
Ly8gV2UgbmVlZCBhbiBhY3RpdmUgTmV0d29ya1Byb2Nlc3MgdG8gcGVyZm9ybSBSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzIG9wZXJhdGlvbnMuCisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1dL
V2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKSBj
b25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCldKTsKKyAgICBbZGF0YVN0b3JlIF9zZXRS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZDpZRVNdOworICAgIFt3ZWJWaWV3IGxvYWRSZXF1
ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJh
Ym91dDpibGFuayJdXV07CisKKyAgICBzdGF0aWMgYm9vbCBkb25lRmxhZzsKKyAgICBbZGF0YVN0
b3JlIF9zZXRVc2VJVFBEYXRhYmFzZTp0cnVlIGNvbXBsZXRpb25IYW5kbGVyOiBeKHZvaWQpIHsK
KyAgICAgICAgZG9uZUZsYWcgPSB0cnVlOworICAgIH1dOworCisgICAgVGVzdFdlYktpdEFQSTo6
VXRpbDo6cnVuKCZkb25lRmxhZyk7CisKKyAgICAvLyBTaW5jZSB0aGUgZGF0YWJhc2Ugc2hvdWxk
IG5vdCBiZSBkZWxldGVkLCB0aGUgcHJlLXNlZWRlZCBkYXRhIHNob3VsZAorICAgIC8vIHN0aWxs
IGJlIHRoZXJlIGFmdGVyIGluaXRpYWxpemluZyBJVFAuCisgICAgZG9uZUZsYWcgPSBmYWxzZTsK
KyAgICBbZGF0YVN0b3JlIF9pc1JlZ2lzdGVyZWRBc1N1YnJlc291cmNlVW5kZXJGaXJzdFBhcnR5
OltOU1VSTCBVUkxXaXRoU3RyaW5nOkAiaHR0cDovL2FwcGxlLmNvbSJdIHRoaXJkUGFydHk6W05T
VVJMIFVSTFdpdGhTdHJpbmc6QCJodHRwOi8vd2Via2l0Lm9yZyJdIGNvbXBsZXRpb25IYW5kbGVy
OiBeKEJPT0wgaXNSZWdpc3RlcmVkKSB7CisgICAgICAgIEVYUEVDVF9UUlVFKGlzUmVnaXN0ZXJl
ZCk7CisgICAgICAgIGRvbmVGbGFnID0gdHJ1ZTsKKyAgICB9XTsKKworICAgIFRlc3RXZWJLaXRB
UEk6OlV0aWw6OnJ1bigmZG9uZUZsYWcpOworICAgIAorICAgIC8vIENoZWNrIHRvIG1ha2Ugc3Vy
ZSBhbGwgdGFibGVzIGFyZSBhY2NvdW50ZWQgZm9yLgorICAgIGRvbmVGbGFnID0gZmFsc2U7Cisg
ICAgW2RhdGFTdG9yZSBfc3RhdGlzdGljc0RhdGFiYXNlSGFzQWxsVGFibGVzOl4oQk9PTCBoYXNB
bGxUYWJsZXMpIHsKKyAgICAgICAgRVhQRUNUX1RSVUUoaGFzQWxsVGFibGVzKTsKKyAgICAgICAg
ZG9uZUZsYWcgPSB0cnVlOworICAgIH1dOworCisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVu
KCZkb25lRmxhZyk7Cit9CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL21pc3NpbmdUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0U2FtZVNpdGVTdHJpY3RUYWJs
ZVNjaGVtYS5kYiBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvbWlzc2lu
Z1RvcEZyYW1lVW5pcXVlUmVkaXJlY3RTYW1lU2l0ZVN0cmljdFRhYmxlU2NoZW1hLmRiCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmQwMjdmMTMzOGE5YTkyMjY2OGIxYzg5ZjNhOTVmNjhhNzlkYjExNjcKR0lUIGJpbmFy
eSBwYXRjaApsaXRlcmFsIDEwNjQ5Ngp6Y21lSSpQakIxaTlsJnU/d2o7fjclcnQ0TnQ7SjlseUZg
YylWQ1c5cFZlbkwkRShDamFCRlNyNzNeUWN3djc9Y3cKejlnPDMwNDh2Zj4wZTBDPUpNT2cwVWNu
QUs/aFcpYzN8TjhueWszJVMhMWo+KCRBX2RPK29fOUtfe3clPGlzWWxgCnpfaiYmQ190MEB0ZEFR
Tj1ndD4xIU0+V3JVUHJJcTVRcmJeVlFgNTk1YFNxNmtgaX1mY2IpVG9AdjtTQzxVd1pKfQp6O0pM
ZjBKV1hsJGVgd0Q1Mk9JektjZjhla1FqVEUqMFIjfDAwMDlJTEttWSoqNUlfSXsxZz0henlLfSlK
eykrJGIKelp5cDQ5NVZZVjxLPTgrdmhERzVCQWI8YkAycTFzfTB0Z18wMDBJYWdwYV44O1I/N0hY
R3lZfEt6V0FyNDU5TSQrCno1SV9JezFRMCp+MFIjfDAwMDlJTHhCPnh2e1IjQDU7MzlMV3RvSDZ+
fE03e35KIzJYUVpSYTRUWFNIYGBYWjF7SAp6VSt2X2lEZW12dE5CXjZYOFkkeG8mR15kciF1V0Nq
VzcrNmBPZlZPckElRmteMnExc30wdGdfMDAwSWFna1JWYEcKekgyPXJ0b3JtI3Y/VVVhMy18bG5x
cUhuaTJee3pnKzZfOHEoZE1ER3IwVDJYcV5QKGtrSk9UKEhmQipzckFiPGJACnoycTFzfTB0ajN1
MG9NUTVza052cDB0Z18wMDBJYWdmQipzckFiPGJAbWxJKDllPnBlS0xJNDItNUlfSXsxUTAqfgp6
MFIjfDA7NXJIVHp5R2ZyVXUqSnsyTGNFbmZCKnNyQWI8YkAycTFzfTB0aWY7enw2RnMkO2Z7JVAo
SndtfEF9aXwKejB6dj0qMVEwKn4wUiN8MDAwOUlMS3AtckBgYWk2fV9Ycj8+MDBJYWdmQipzckFi
PGJAMnUhOGA+O0s3WVNFNTF5CnowUiN8MDAwOUlMS21ZKio1SWBVLSExX098IVNASXRmQipzckFi
PGJAMnExc30wdGlmfGZXUTlOamhDQUk8YmVQSgp6MnExc30wdGdfMDAwSWFnZkIqdU1DTlFIPD4k
Q2ooZjBOZCUjRGYzPTJxMXN9MHRnXzAwMElhZ2ZJeU19ZkIhIzgKemgxVT4zMDA5SUxLbVkqKjVJ
X0l7MVEzYGtmaktgTXt7TyRwWUUrXkAwMDlJTEttWSoqNUlfSXsxUTArVkJFYjRUCnowPlVOJjJx
MXN9MHRnXzAwMElhZ2ZCKnMkRDhUeEUwdm5aKDVJX0l7MVEwKn4wUiN8MDAwOUlMaHpQTCRrQVNk
PQp6MDBJYWdmQipzckFiPGJAMnExdksxUFpZSnBUSV5YQm1AdlowMDlJTEttWSoqNUlfSXsxUj9e
Z3wwNXU1QjdndF8KejJxMXN9MHRnXzAwMElhZ0ZvNlFCfDBsM2YyPytyTjVJX0l7MVEwKn4wUiN8
MDBEKntyenk4O2F1UW1DfTB8NWpPCnpLbVkqKjVJX0l7MVEwKn4wUiQjYVV9anArV0shTCpib3Jj
e3hEV3tsMFIjfDAwMDlJTEttWSoqNUlfSXsxT2tDPAp6YHJsZTZefHFGTVYqRzk0a01wVV9VdkIo
PD1GWmZnUSpYLWBwQnBjPFhTZTZteCVHQVpgUy1scVpjfGlSeU4rPH0Kem1hYHxla0wkdnorOXp2
SD9NU1RKTjQzVldKNyN5YlNoZm1QJWQ4Z08tPn1UaSFMbDAwaXlPMUYkTGw4V1k8ZSE4Cnp2bj43
amU2UXZBe2d4aW0+X2hpME1COUFtaz4qe3V3SHhZOXJCJD1FUyt6Y30lSTQtKSkhZnxQKmpQNTNI
UF9vZAp6c248TUZIKVV0cTI8YEhlekw8RlMrRSY+cmVYd2IrVE9ZO1ZFSEJHanYmejxIKFc7blJ5
UkxBYWloOCRTLT5uRHoKenlSQDEmdz5IZ0hZcn5TZ3hMQndaMyMtPCQ4Nz8oaTM4aHB5U35rUX0o
ZD9CZjQtUmM3bVkjMilXUCQ7Ql9GPlFyCnp2V1MzYSE+LWp1ejUyTX0pRjBGd0AzWUZEKD5VP21G
fXZyTCN1IygzY357bk5UemtrUz5yRHVxc0smWlMzc3I8Sgp6P1ZlRE4lTkNxKHdgU0ExVm9eVlBx
TE1kYDRfQyNXP2JOKTZlZUE5fF9FQkZqekgyVS1JKTAkZkpjNGRTaHVAYnEKejc7JmNCRXFlemxE
emc1ZTQoUiN+OUA8WHFrWk59aVNLKERsJmJOMmQ5cnR5YGVmemxhcSRTRnQtZithOHI/QEJWCnok
fFNsYzk0T3N1JlZsZkhGYlJgUUlKJCkwM2IwYnZ0NVJHY3ZoaE95Pis1IUBwKn57LStLKjxeeHM/
X0RZLVFCUQp6c01Ae3hEQUxgbGNLU1N7cUg0PWFhRkUtTDcheEJXdE1HX1dPWnNMPCNHbiRkVDVr
VENGYGRxQlpSeVhtMGQyKlQKel5aUzcpP0NsQkhQMFYlMTlkSlhUOSRUSy0mbiomV25DTl5RSkgk
XiVpZCZtJjg+TTJeVHF+NGhoOW95RClwOXxtCnpQVWlrJHphaGdkUXx+NzstJSFSQXhuX2gpeX5H
NzNmQk54TUkoUDQkLWFoUGdfRTduTGg3O2JMUU00bUZnQTY4Zwp6YlNPN0BQJWl6ZlEyeGx6MWtY
YmpaM3Z+P1RfOT02cElMZWstMHVvT2FGSjZabl5RX35rKH4pME0rd1JpMk15UEEKens4ZH0wN25v
SitreFprenNrRkpoUyRlb19DM0dNXjxFUkw2OUw9dkUqWHI5Y0Q9cjstIWx+YH5JWiYpU0V9S1dU
Cno+eV5jeElRQW1QUnZTa21USD05SUpGZjU3eXZNP2s+M2xyZFpAM1F9QHdDPklyNnVuRHhvfCFr
YiViMGQpTVJDQgp6cnx5PTtrdUNIMmNybCk9bSlqWmNxRiEqPDhqa0EpOFREI1FSUDlJKkB6YyVH
PVBTZCVAU3FlZ3B5NXtiOSpjVWIKekRlN3lzUSlvOGRaK1MpQUs1VTU5cCFUeGJ3UHgoSns3K0lo
YXU0dDZUMF5lRktYc29wOD1seXl3TENsNi1pZFVUCnpvZ1lNQW4zbVVAVjlBfUdgaUN+SnowQCk8
V2BDUWAtTj89U0REX3E5bWlCVi16dUE4LWU3VyVEbkNzSEAtUThaZwp6Sikxa2R2I3omNDQ5TWlu
Rj19MTRCUFJmNURZVFFZOzIyWkpvJGhHdjQhcUxsc2BiYm1iSSFUbSpPVmkxT2daTFYKekdhQTlO
bkdrfVJLbUZ5Y2Jqfmc2P2MxdExlQm1QTioxTnB5Z2ZyIVNScE9fLUlnJWlMe0lJdUJCOTVPSE1C
QSZ8Cnp2S2crTjREZVRQcTt0UVAwZSlXekZwQEhAJCtndnZ4PEUoX0dVMnFfcWs+RjBlJD9COTE1
RyY5NF4meHJNMSE2Rwp6Z1p9OUg0JHt9Uj1CS3xmPFMxRSpqKj5fZFJxWSkkM2w4PD8tWUFLa14y
UDxhJiF7JlQoUktWcC0mQVkxRWEhKmIKemg+PklESDtaejFvWjhhYz8qKVRJeHJgLWMjWEkkR1BV
JWxyTzIjJHopU0Y1MWp5LUdtOH5TbU5KemQ3JXRGYSVzCnpUNGdpZTdUSSpKUk1POV4mWjF5JmxQ
bDYoe3huZTt4ITM1MTdyeTcreT8tOU50cjZTLUo7JmBkV2tRUm1QMnBUVwp6VlVFOVM/dDBGZjV8
TEQrenIwRGZiKChLS1Q/cDxtcFY/IWF0TStpXnM9YXRsPDZ3YjFYc3YjS2p9d2wjPmxQWCgKekAk
PGVGYGF1bVkrbSFoJHxGTz17OX0lNm1rQkA4dEg1WkZ6JDcpWiN2TFBWbjRKOVgzVDBfcTdwP1VD
Sndec0E9CnpjWDI7e2VYbmBmeG5gJUlGOExRVXRBOVpvJW1SQGEtTV4jYGNKYCktKDFtLXtNMDZ8
aFN+ZSl8cVZFLTQlU04yOwp6VSZhVCFkekRxTTw/Vz9BJTFURzZmQlorZEwhd3VFYGp8M2kkMSte
PGVQYlQrYSl5KHJBO15vb3stJVY8JFVkPnMKd05wZjFkYEA/PzE+OG1KWC1PcUVCN2JNQmh2ekxa
PTNfVzR8K2pTKnxtZTY1UFk4V0lzJH00OTZ8RCF8RWxLPW4hCgpsaXRlcmFsIDAKSGNtVj9kMDAw
MDEKCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL21p
c3NpbmdUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0U2FtZVNpdGVTdHJpY3RUYWJsZVNjaGVtYS5kYi1z
aG0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL21pc3NpbmdUb3BGcmFt
ZVVuaXF1ZVJlZGlyZWN0U2FtZVNpdGVTdHJpY3RUYWJsZVNjaGVtYS5kYi1zaG0KbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZmU5YWMyODQ1ZWNhNmZlNmRhOGE2M2NkMDk2ZDljZjllMjRlY2UxMApHSVQgYmluYXJ5IHBh
dGNoCmxpdGVyYWwgMzI3NjgKemNtZUl1QXI2MnIzPFhlVFNheVM2MD1aPU8tMHxrUDImZnVAITZE
dV56aUZDXjd3NTVNTik5aFFZVjNXazc5YTJQCnopJThnM0gzMCR5Mm9OQVpmQipwazFQQmx5SyE1
LU4wdDUmVUFWN2NzMFJqWEY1RmtLKzAwOUM3Mm9OQVpmQipwawp6MVBCbHlLITUtTjB0NSZVQVY3
Y3MwUmpYRjVGa0srMDA5Qzcyb05BWmZCKnBrMVBCbHlLITUtTjB0NSZVQVY3Y3MKdzBSalhGNUZr
SyswMDlDNzJvTkFaZkIqcGsxUEJseUshNS1OMHQ1JlVBVjdjczBSalhGNWNxP0A0ZGs1YFF2ZCh9
CgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL21pc3NpbmdUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0U2FtZVNpdGVT
dHJpY3RUYWJsZVNjaGVtYS5kYi13YWwgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL21pc3NpbmdUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0U2FtZVNpdGVTdHJpY3RUYWJsZVNj
aGVtYS5kYi13YWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTY5ZGUyOWJiMmQxZDY0MzRiOGIyOWFlNzc1YWQ4YzJl
NDhjNTM5MQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>397733</attachid>
            <date>2020-04-27 14:06:02 -0700</date>
            <delta_ts>2020-04-28 11:54:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-211004-20200427140601.patch</filename>
            <type>text/plain</type>
            <size>41263</size>
            <attacher name="Kate Cheney">katherine_cheney</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwNzY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGIwZjlkZTFkYmQ0NTBmN2Fm
MTQ1ZDhiNjAxMGNiYTBiZGRiMDhiYWYuLmE1MDViZWZiNGFhYzhiMTU0MGM0YTM5NTZkMTljOGJh
MTY2OTI4N2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjcgQEAKKzIwMjAtMDQtMjcgIEthdGUgQ2hl
bmV5ICA8a2F0aGVyaW5lX2NoZW5leUBhcHBsZS5jb20+CisKKyAgICAgICAgQ3JlYXRlIGEgbWVj
aGFuaXNtIHRvIGFkZCBtaXNzaW5nIElUUCBEYXRhYmFzZSB0YWJsZXMgd2hlbiB0aGUgc2NoZW1h
IGlzIHVwZGF0ZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIxMTAwNAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjIyNjExODc+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCB1cGRhdGVz
IHRoZSBJVFAgZGF0YWJhc2UgdG8gYmV0dGVyIGhhbmRsZSBhZGRlZCB0YWJsZXMgdG8KKyAgICAg
ICAgdGhlIHNjaGVtYS4gQ3VycmVudGx5IHRoZSBkYXRhYmFzZSBzdG9yZSBkZWxldGVzIGFuZCBy
ZS1jcmVhdGVzIHRoZQorICAgICAgICBkYXRhYmFzZSB3aGVuIGFueSBzY2hlbWEgY2hhbmdlIGlz
IGVuY291bnRlcmVkLiBUaGlzIGlzIHNpbXBsZSBidXQKKyAgICAgICAgd291bGQgcmVzdWx0IGlu
IElUUCBkYXRhIGxvc3MgZHVyaW5nIHNjaGVtYSB1cGRhdGVzLCBzbyB0aGlzIHBhdGNoCisgICAg
ICAgIHNlYXJjaGVzIHRoZSBzY2hlbWEgZm9yIG1pc3NpbmcgdGFibGVzIGFuZCBhZGRzIGFueSBp
dCBmaW5kcy4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VM
b2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6b3BlbklUUERhdGFiYXNlKToKKyAgICAgICAg
UmVtb3ZlIGNhbGwgdG8gY3JlYXRlU2NoZW1hKCkgZnJvbSB0aGUgY29uc3RydWN0b3IuIEl0IG1h
a2VzIG1vcmUKKyAgICAgICAgc2Vuc2UgdG8gYmFzZSB0aGlzIG9uIHdoZXRoZXIgdGhlIGZpbGUg
aXMgbmV3IGFzIG9wcG9zZWQgdG8gd2hldGhlcgorICAgICAgICBvbmUgdGFibGUgZXhpc3RzLgor
CisgICAgICAgIChXZWJLaXQ6OmNyZWF0ZVRhYmxlUXVlcmllcyk6CisgICAgICAgIENvbnZlcnQg
dGhlIHRhYmxlcyBhcnJheSB0byBhIG1hcHBpbmcgb2YgdGFibGUgbmFtZXMgdG8gdGhlaXIKKyAg
ICAgICAgcmVzcGVjdGl2ZSBDUkVBVEUgVEFCTEUgcXVlcmllcyBzbyB3ZSBjYW4gYWRkIG1pc3Np
bmcgdGFibGVzIG9uIHRoZQorICAgICAgICBmbHkuCisKKyAgICAgICAgKFdlYktpdDo6UmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmlzQ29ycmVjdFRhYmxlU2NoZW1hKToKKyAg
ICAgICAgVXBkYXRlIGlzQ29ycmVjdFRhYmxlU2NoZW1hKCkgdG8gYXBwZW5kIHRvIGEgdmVjdG9y
IG9mIG1pc3NpbmcgdGFibGVzIHNvCisgICAgICAgIHdlIGtub3cgd2hpY2ggbmVlZCB0byBiZSBh
ZGRlZC4KKworICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VT
dG9yZTo6bWlncmF0ZURhdGFUb05ld1RhYmxlc0lmTmVjZXNzYXJ5KToKKyAgICAgICAgKFdlYktp
dDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmFkZE1pc3NpbmdUYWJsZXMp
OgorICAgICAgICBDYWxsIGNyZWF0ZVVuaXF1ZUluZGljZXMoKSB0byBjYWxsIGFsbCBDUkVBVEUg
VU5JUVVFIElOREVYIHF1ZXJpZXMsCisgICAgICAgIGV2ZW4gdGhvdWdoIHdlIG1heSBub3QgbmVl
ZCB0aGVtIGFsbC4gSXQgaXMgbXVjaCBzaW1wbGVyIHRoYW4gdG8KKyAgICAgICAgYXNzb2NpYXRl
IGVhY2ggcXVlcnkgd2l0aCBpdHMgdGFibGUsIGFuZCBpdCBkb2Vzbid0IGh1cnQgdG8gY2FsbAor
ICAgICAgICBhZ2Fpbi4KKworICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
RGF0YWJhc2VTdG9yZTo6b3BlbkFuZFVwZGF0ZVNjaGVtYUlmTmVjZXNzYXJ5KToKKyAgICAgICAg
QWRkIG1pc3NpbmcgdGFibGVzIGluc3RlYWQgb2YgZGVsZXRpbmcgdGhlIG9sZCBkYXRhYmFzZSBm
aWxlLiBDaGFuZ2VkCisgICAgICAgIHRoZSBmdW5jdGlvbiBuYW1lIHRvIHJlZmxlY3QgdGhpcy4g
RGVsZXRlZCBhIEZJWE1FIHdoaWNoIHRoaXMgcGF0Y2gKKyAgICAgICAgYWRkcmVzc2VzIGJ1dCBh
ZGRlZCBhIG5ldyBGSVhNRSBmb3IgbWlncmF0aW5nIGRhdGEgd2hlbiBhZGRpbmcgbmV3CisgICAg
ICAgIGNvbHVtbnMsIHdoaWNoIHRoaXMgcGF0Y2ggZG9lcyBub3QgYWRkcmVzcy4KKworICAgICAg
ICAqIE5ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFi
YXNlU3RvcmUuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291
cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNl
TG9hZFN0YXRpc3RpY3NTdG9yZTo6U3RhdGlzdGljc0RhdGFiYXNlSGFzQWxsVGFibGVzKToKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NTdG9yZS5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OlN0YXRpc3RpY3NEYXRhYmFzZUhhc0Fs
bFRhYmxlcyk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaDoKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbjoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5tbToKKyAgICAgICAg
KC1bV0tXZWJzaXRlRGF0YVN0b3JlIF9TdGF0aXN0aWNzRGF0YWJhc2VIYXNBbGxUYWJsZXM6XSk6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmVQcml2YXRl
Lmg6CisgICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHA6
CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OlN0YXRpc3RpY3NEYXRhYmFz
ZUhhc0FsbFRhYmxlcyk6CisgICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nl
c3NQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0
b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6U3RhdGlzdGljc0Rh
dGFiYXNlSGFzQWxsVGFibGVzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vi
c2l0ZURhdGFTdG9yZS5oOgorICAgICAgICBBZGRlZCBhbiBTUEkgY2FsbCB0byB0ZXN0IHRoYXQg
dGhlIGRhdGFiYXNlIHNjaGVtYSBpbmNsdWRlcyBhbGwKKyAgICAgICAgdGFibGVzLiBUaGlzIHRl
c3RzIHRoZSBjYXNlIHdoZXJlIHRoZSBkYXRhYmFzZSB3YXMgbm90IGRyb3BwZWQgYnV0CisgICAg
ICAgIHRoZSBuZXcgdGFibGUgd2Fzbid0IGFkZGVkIHVwb24gb3BlbmluZyB0aGUgZGF0YWJhc2Uu
CisKKwogMjAyMC0wNC0yNyAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4KIAog
ICAgICAgICBVbnJldmlld2VkIE1hY0NhdGFseXN0IGJ1aWxkIGZpeCBhZnRlciByMjYwNzM5Lgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291
cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5j
cHAKaW5kZXggMjk2YTlhMmMwODJiNmQ4YWRjNDcwYWEyNmY5OTcxZDM1ZWRhZTM5NS4uMjA3NGMz
NmY0YmIwOGRhNDJiNTc0YWQ0YTkzNjA5ZWE3YzYyYmU3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRh
YmFzZVN0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZp
ZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuY3BwCkBAIC0xNDYsMjIgKzE0
Niw2IEBAIGNvbnN0ZXhwciBhdXRvIG9ic2VydmVkRG9tYWluc0V4aXN0c1F1ZXJ5ID0gIlNFTEVD
VCBFWElTVFMgKFNFTEVDVCAqIEZST00gT2JzZXJ2CiAvLyBERUxFVEUgUXVlcmllcwogY29uc3Rl
eHByIGF1dG8gcmVtb3ZlQWxsRGF0YVF1ZXJ5ID0gIkRFTEVURSBGUk9NIE9ic2VydmVkRG9tYWlu
cyBXSEVSRSBkb21haW5JRCA9ID8iX3M7CiAKLWNvbnN0IGNoYXIqIHRhYmxlc1tdID0gewotICAg
ICJPYnNlcnZlZERvbWFpbnMiLAotICAgICJUb3BMZXZlbERvbWFpbnMiLAotICAgICJTdG9yYWdl
QWNjZXNzVW5kZXJUb3BGcmFtZURvbWFpbnMiLAotICAgICJUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0
c1RvIiwKLSAgICAiVG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNUb1NpbmNlU2FtZVNpdGVTdHJpY3RF
bmZvcmNlbWVudCIsCi0gICAgIlRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzRnJvbSIsCi0gICAgIlRv
cEZyYW1lTGlua0RlY29yYXRpb25zRnJvbSIsCi0gICAgIlRvcEZyYW1lTG9hZGVkVGhpcmRQYXJ0
eVNjcmlwdHMiLAotICAgICJTdWJmcmFtZVVuZGVyVG9wRnJhbWVEb21haW5zIiwKLSAgICAiU3Vi
cmVzb3VyY2VVbmRlclRvcEZyYW1lRG9tYWlucyIsCi0gICAgIlN1YnJlc291cmNlVW5pcXVlUmVk
aXJlY3RzVG8iLAotICAgICJTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c0Zyb20iCi19OwotCi0v
LyBDUkVBVEUgVEFCTEUgUXVlcmllcwogY29uc3RleHByIGF1dG8gY3JlYXRlT2JzZXJ2ZWREb21h
aW4gPSAiQ1JFQVRFIFRBQkxFIE9ic2VydmVkRG9tYWlucyAoIgogICAgICJkb21haW5JRCBJTlRF
R0VSIFBSSU1BUlkgS0VZLCByZWdpc3RyYWJsZURvbWFpbiBURVhUIE5PVCBOVUxMIFVOSVFVRSBP
TiBDT05GTElDVCBGQUlMLCBsYXN0U2VlbiBSRUFMIE5PVCBOVUxMLCAiCiAgICAgImhhZFVzZXJJ
bnRlcmFjdGlvbiBJTlRFR0VSIE5PVCBOVUxMLCBtb3N0UmVjZW50VXNlckludGVyYWN0aW9uVGlt
ZSBSRUFMIE5PVCBOVUxMLCBncmFuZGZhdGhlcmVkIElOVEVHRVIgTk9UIE5VTEwsICIKQEAgLTI2
Nyw2ICsyNTEsMjcgQEAgc3RhdGljIGJvb2wgbmVlZHNOZXdDcmVhdGVUYWJsZVNjaGVtYShjb25z
dCBTdHJpbmcmIHNjaGVtYSkKICAgICByZXR1cm4gc2NoZW1hLmNvbnRhaW5zKCJSRUZFUkVOQ0VT
IFRvcExldmVsRG9tYWlucyIpOwogfQogCitzdGF0aWMgY29uc3QgSGFzaE1hcDxTdHJpbmcsIFN0
cmluZz4mIGNyZWF0ZVRhYmxlUXVlcmllcygpCit7CisgICAgc3RhdGljIGF1dG8gY3JlYXRlVGFi
bGVRdWVyaWVzID0gbWFrZU5ldmVyRGVzdHJveWVkKEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IHsK
KyAgICAgICAgeyAiT2JzZXJ2ZWREb21haW5zIl9zLCBjcmVhdGVPYnNlcnZlZERvbWFpbn0sCisg
ICAgICAgIHsgIlRvcExldmVsRG9tYWlucyJfcywgY3JlYXRlVG9wTGV2ZWxEb21haW5zfSwKKyAg
ICAgICAgeyAiU3RvcmFnZUFjY2Vzc1VuZGVyVG9wRnJhbWVEb21haW5zIl9zLCBjcmVhdGVTdG9y
YWdlQWNjZXNzVW5kZXJUb3BGcmFtZURvbWFpbnN9LAorICAgICAgICB7ICJUb3BGcmFtZVVuaXF1
ZVJlZGlyZWN0c1RvIl9zLCBjcmVhdGVUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0c1RvfSwKKyAgICAg
ICAgeyAiVG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNUb1NpbmNlU2FtZVNpdGVTdHJpY3RFbmZvcmNl
bWVudCJfcywgY3JlYXRlVG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNUb1NpbmNlU2FtZVNpdGVTdHJp
Y3RFbmZvcmNlbWVudH0sCisgICAgICAgIHsgIlRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzRnJvbSJf
cywgY3JlYXRlVG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNGcm9tfSwKKyAgICAgICAgeyAiVG9wRnJh
bWVMaW5rRGVjb3JhdGlvbnNGcm9tIl9zLCBjcmVhdGVUb3BGcmFtZUxpbmtEZWNvcmF0aW9uc0Zy
b219LAorICAgICAgICB7ICJUb3BGcmFtZUxvYWRlZFRoaXJkUGFydHlTY3JpcHRzIl9zLCBjcmVh
dGVUb3BGcmFtZUxvYWRlZFRoaXJkUGFydHlTY3JpcHRzfSwKKyAgICAgICAgeyAiU3ViZnJhbWVV
bmRlclRvcEZyYW1lRG9tYWlucyJfcywgY3JlYXRlU3ViZnJhbWVVbmRlclRvcEZyYW1lRG9tYWlu
c30sCisgICAgICAgIHsgIlN1YnJlc291cmNlVW5kZXJUb3BGcmFtZURvbWFpbnMiX3MsIGNyZWF0
ZVN1YnJlc291cmNlVW5kZXJUb3BGcmFtZURvbWFpbnN9LAorICAgICAgICB7ICJTdWJyZXNvdXJj
ZVVuaXF1ZVJlZGlyZWN0c1RvIl9zLCBjcmVhdGVTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c1Rv
fSwKKyAgICAgICAgeyAiU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNGcm9tIl9zLCBjcmVhdGVT
dWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c0Zyb219CisgICAgfSk7CisgICAgCisgICAgcmV0dXJu
IGNyZWF0ZVRhYmxlUXVlcmllczsKK30KKworCiBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJh
c2VTdG9yZTo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUoV2ViUmVzb3VyY2VM
b2FkU3RhdGlzdGljc1N0b3JlJiBzdG9yZSwgV29ya1F1ZXVlJiB3b3JrUXVldWUsIFNob3VsZElu
Y2x1ZGVMb2NhbGhvc3Qgc2hvdWxkSW5jbHVkZUxvY2FsaG9zdCwgY29uc3QgU3RyaW5nJiBzdG9y
YWdlRGlyZWN0b3J5UGF0aCwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogICAgIDogUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc1N0b3JlKHN0b3JlLCB3b3JrUXVldWUsIHNob3VsZEluY2x1ZGVMb2Nh
bGhvc3QpCiAgICAgLCBtX3N0b3JhZ2VEaXJlY3RvcnlQYXRoKHN0b3JhZ2VEaXJlY3RvcnlQYXRo
ICsgIi9vYnNlcnZhdGlvbnMuZGIiKQpAQCAtMzEyLDE5ICszMTcsMTEgQEAgUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0
b3JlKFdlYlJlc28KIHsKICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKIAotICAgIG9w
ZW5BbmREcm9wT2xkRGF0YWJhc2VJZk5lY2Vzc2FyeSgpOworICAgIG9wZW5BbmRVcGRhdGVTY2hl
bWFJZk5lY2Vzc2FyeSgpOwogICAgIGVuYWJsZUZvcmVpZ25LZXlzKCk7CiAKICAgICAvLyBTaW5j
ZSB3ZSBhcmUgdXNpbmcgYSB3b3JrZXJRdWV1ZSwgdGhlIHNlcXVlbnRpYWwgZGlzcGF0Y2ggYmxv
Y2tzIG1heSBiZSBjYWxsZWQgYnkgZGlmZmVyZW50IHRocmVhZHMuCiAgICAgbV9kYXRhYmFzZS5k
aXNhYmxlVGhyZWFkaW5nQ2hlY2tzKCk7Ci0KLSAgICBpZiAoIW1fZGF0YWJhc2UudGFibGVFeGlz
dHMoIk9ic2VydmVkRG9tYWlucyJfcykpIHsKLSAgICAgICAgaWYgKCFjcmVhdGVTY2hlbWEoKSkg
ewotICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTmV0d29yaywgIiVwIC0gUmVzb3VyY2VM
b2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmNyZWF0ZVNjaGVtYSBmYWlsZWQsIGVycm9yIG1l
c3NhZ2U6ICUiIFBVQkxJQ19MT0dfU1RSSU5HICIsIGRhdGFiYXNlIHBhdGg6ICUiIFBVQkxJQ19M
T0dfU1RSSU5HLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpLCBtX3N0b3JhZ2VEaXJl
Y3RvcnlQYXRoLnV0ZjgoKS5kYXRhKCkpOwotICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICB9CiAgICAgCiAgICAgaWYg
KCFtX2RhdGFiYXNlLnR1cm5PbkluY3JlbWVudGFsQXV0b1ZhY3V1bSgpKQogICAgICAgICBSRUxF
QVNFX0xPR19FUlJPUihOZXR3b3JrLCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJh
c2VTdG9yZTo6dHVybk9uSW5jcmVtZW50YWxBdXRvVmFjdXVtIGZhaWxlZCwgZXJyb3IgbWVzc2Fn
ZTogJSIgUFVCTElDX0xPR19TVFJJTkcsIHRoaXMsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkp
OwpAQCAtMzUyLDYgKzM0OSwxNCBAQCB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFz
ZVN0b3JlOjpvcGVuSVRQRGF0YWJhc2UoKQogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihOZXR3
b3JrLCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6b3BlbiBmYWls
ZWQsIGVycm9yIG1lc3NhZ2U6ICUiIFBVQkxJQ19MT0dfU1RSSU5HICIsIGRhdGFiYXNlIHBhdGg6
ICUiIFBVQkxJQ19MT0dfU1RSSU5HLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpLCBt
X3N0b3JhZ2VEaXJlY3RvcnlQYXRoLnV0ZjgoKS5kYXRhKCkpOwogICAgICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKICAgICB9CisgICAgCisgICAgaWYgKG1faXNOZXdSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRGF0YWJhc2VGaWxlKSB7CisgICAgICAgIGlmICghY3JlYXRlU2NoZW1hKCkpIHsKKyAg
ICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE5ldHdvcmssICIlcCAtIFJlc291cmNlTG9hZFN0
YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpjcmVhdGVTY2hlbWEgZmFpbGVkLCBlcnJvciBtZXNzYWdl
OiAlIiBQVUJMSUNfTE9HX1NUUklORyAiLCBkYXRhYmFzZSBwYXRoOiAlIiBQVUJMSUNfTE9HX1NU
UklORywgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSwgbV9zdG9yYWdlRGlyZWN0b3J5
UGF0aC51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwor
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgfQogfQogCiBzdGF0aWMgdm9pZCBy
ZXNldFN0YXRlbWVudChTUUxpdGVTdGF0ZW1lbnQmIHN0YXRlbWVudCkKQEAgLTM2MCwyNyArMzY1
LDI1IEBAIHN0YXRpYyB2b2lkIHJlc2V0U3RhdGVtZW50KFNRTGl0ZVN0YXRlbWVudCYgc3RhdGVt
ZW50KQogICAgIEFTU0VSVF9VTlVTRUQocmVzZXRSZXN1bHQsIHJlc2V0UmVzdWx0ID09IFNRTElU
RV9PSyk7CiB9CiAKLWJvb2wgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6Omlz
Q29ycmVjdFRhYmxlU2NoZW1hKCkKK3ZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNl
U3RvcmU6OmlzQ29ycmVjdFRhYmxlU2NoZW1hKFZlY3RvcjxTdHJpbmc+JiBtaXNzaW5nVGFibGVz
KQogewogICAgIFNRTGl0ZVN0YXRlbWVudCBzdGF0ZW1lbnQobV9kYXRhYmFzZSwgIlNFTEVDVCAx
IGZyb20gc3FsaXRlX21hc3RlciBXSEVSRSB0eXBlPSd0YWJsZScgYW5kIHRibF9uYW1lPT8iKTsK
ICAgICBpZiAoc3RhdGVtZW50LnByZXBhcmUoKSAhPSBTUUxJVEVfT0spIHsKICAgICAgICAgUkVM
RUFTRV9MT0dfRVJST1IoTmV0d29yaywgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFi
YXNlU3RvcmU6OmlzQ29ycmVjdFRhYmxlU2NoZW1hIGZhaWxlZCB0byBwcmVwYXJlLCBlcnJvciBt
ZXNzYWdlOiAlIiBQVUJMSUNfTE9HX1NUUklORywgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JN
c2coKSk7Ci0gICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgcmV0dXJuOwogICAgIH0KIAot
ICAgIGJvb2wgaGFzQWxsVGFibGVzID0gdHJ1ZTsKLSAgICBmb3IgKGF1dG8gdGFibGUgOiB0YWJs
ZXMpIHsKKyAgICBmb3IgKGF1dG8mIHRhYmxlIDogY3JlYXRlVGFibGVRdWVyaWVzKCkua2V5cygp
KSB7CiAgICAgICAgIGlmIChzdGF0ZW1lbnQuYmluZFRleHQoMSwgdGFibGUpICE9IFNRTElURV9P
SykgewogICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTmV0d29yaywgIiVwIC0gUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmlzQ29ycmVjdFRhYmxlU2NoZW1hIGZhaWxl
ZCB0byBiaW5kLCBlcnJvciBtZXNzYWdlOiAlIiBQVUJMSUNfTE9HX1NUUklORywgdGhpcywgbV9k
YXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
ICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICAgICAgaWYgKHN0YXRlbWVudC5zdGVwKCkg
IT0gU1FMSVRFX1JPVykgewotICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTmV0d29yaywg
IiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmlzQ29ycmVjdFRhYmxl
U2NoZW1hIHNjaGVtYSBpcyBtaXNzaW5nIHRhYmxlOiAlcyIsIHRoaXMsIHRhYmxlKTsKLSAgICAg
ICAgICAgIGhhc0FsbFRhYmxlcyA9IGZhbHNlOworICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJS
T1IoTmV0d29yaywgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6Omlz
Q29ycmVjdFRhYmxlU2NoZW1hIHNjaGVtYSBpcyBtaXNzaW5nIHRhYmxlOiAlcyIsIHRoaXMsIHRh
YmxlLmFzY2lpKCkuZGF0YSgpKTsKKyAgICAgICAgICAgIG1pc3NpbmdUYWJsZXMuYXBwZW5kKFN0
cmluZyh0YWJsZSkpOwogICAgICAgICB9CiAgICAgICAgIHJlc2V0U3RhdGVtZW50KHN0YXRlbWVu
dCk7CiAgICAgfQotICAgIHJldHVybiBoYXNBbGxUYWJsZXM7CiB9CiAKIHZvaWQgUmVzb3VyY2VM
b2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmVuYWJsZUZvcmVpZ25LZXlzKCkKQEAgLTQyNCw3
ICs0MjcsNyBAQCB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjptaWdy
YXRlRGF0YVRvTmV3VGFibGVzSWZOZWNlc3NhcnkoKQogICAgIFNRTGl0ZVRyYW5zYWN0aW9uIHRy
YW5zYWN0aW9uKG1fZGF0YWJhc2UpOwogICAgIHRyYW5zYWN0aW9uLmJlZ2luKCk7CiAKLSAgICBm
b3IgKGF1dG8mIHRhYmxlIDogdGFibGVzKSB7CisgICAgZm9yIChhdXRvJiB0YWJsZSA6IGNyZWF0
ZVRhYmxlUXVlcmllcygpLmtleXMoKSkgewogICAgICAgICBhdXRvIHF1ZXJ5ID0gbWFrZVN0cmlu
ZygiQUxURVIgVEFCTEUgIiwgdGFibGUsICIgUkVOQU1FIFRPIF8iLCB0YWJsZSk7CiAgICAgICAg
IFNRTGl0ZVN0YXRlbWVudCBhbHRlclRhYmxlKG1fZGF0YWJhc2UsIHF1ZXJ5KTsKICAgICAgICAg
aWYgKGFsdGVyVGFibGUucHJlcGFyZSgpICE9IFNRTElURV9PSyB8fCBhbHRlclRhYmxlLnN0ZXAo
KSAhPSBTUUxJVEVfRE9ORSkgewpAQCAtNDQwLDcgKzQ0Myw3IEBAIHZvaWQgUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6Om1pZ3JhdGVEYXRhVG9OZXdUYWJsZXNJZk5lY2Vzc2Fy
eSgpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBmb3IgKGF1dG8mIHRhYmxlIDogdGFi
bGVzKSB7CisgICAgZm9yIChhdXRvJiB0YWJsZSA6IGNyZWF0ZVRhYmxlUXVlcmllcygpLmtleXMo
KSkgewogICAgICAgICBhdXRvIHF1ZXJ5ID0gbWFrZVN0cmluZygiSU5TRVJUIElOVE8gIiwgdGFi
bGUsICIgU0VMRUNUICogRlJPTSBfIiwgdGFibGUpOwogICAgICAgICBTUUxpdGVTdGF0ZW1lbnQg
bWlncmF0ZVRhYmxlRGF0YShtX2RhdGFiYXNlLCBxdWVyeSk7CiAgICAgICAgIGlmIChtaWdyYXRl
VGFibGVEYXRhLnByZXBhcmUoKSAhPSBTUUxJVEVfT0sgfHwgbWlncmF0ZVRhYmxlRGF0YS5zdGVw
KCkgIT0gU1FMSVRFX0RPTkUpIHsKQEAgLTQ2NywxNyArNDcwLDI5IEBAIHZvaWQgUmVzb3VyY2VM
b2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6Om1pZ3JhdGVEYXRhVG9OZXdUYWJsZXNJZk5lY2Vz
c2FyeSgpCiAgICAgfQogfQogCi12b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0
b3JlOjpvcGVuQW5kRHJvcE9sZERhdGFiYXNlSWZOZWNlc3NhcnkoKQordm9pZCBSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6YWRkTWlzc2luZ1RhYmxlcyhWZWN0b3I8U3RyaW5n
PiYgbWlzc2luZ1RhYmxlcykKIHsKLSAgICBvcGVuSVRQRGF0YWJhc2UoKTsKKyAgICBmb3IgKGF1
dG8mIHRhYmxlIDogbWlzc2luZ1RhYmxlcykgeworICAgICAgICBhdXRvIGNyZWF0ZVRhYmxlUXVl
cnkgPSBjcmVhdGVUYWJsZVF1ZXJpZXMoKS5nZXQodGFibGUpOworICAgICAgICBpZiAoIW1fZGF0
YWJhc2UuZXhlY3V0ZUNvbW1hbmQoY3JlYXRlVGFibGVRdWVyeSkpCisgICAgICAgICAgICBSRUxF
QVNFX0xPR19FUlJPUihOZXR3b3JrLCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJh
c2VTdG9yZTo6YWRkTWlzc2luZ1RhYmxlcyBmYWlsZWQgdG8gZXhlY3V0ZSwgZXJyb3IgbWVzc2Fn
ZTogJSIgUFVCTElDX0xPR19TVFJJTkcsIHRoaXMsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkp
OworICAgIH0KIAotICAgIGlmICghaXNDb3JyZWN0VGFibGVTY2hlbWEoKSkgewotICAgICAgICBt
X2RhdGFiYXNlLmNsb3NlKCk7Ci0gICAgICAgIC8vIEZJWE1FOiBNaWdyYXRlIGV4aXN0aW5nIGRh
dGEgdG8gbmV3IGRhdGFiYXNlIGZpbGUgaW5zdGVhZCBvZiBkZWxldGluZyBpdCAoMjA0NDgyKS4K
LSAgICAgICAgRmlsZVN5c3RlbTo6ZGVsZXRlRmlsZShtX3N0b3JhZ2VEaXJlY3RvcnlQYXRoKTsK
LSAgICAgICAgb3BlbklUUERhdGFiYXNlKCk7CisgICAgaWYgKCFjcmVhdGVVbmlxdWVJbmRpY2Vz
KCkpIHsKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTmV0d29yaywgIiVwIC0gUmVzb3VyY2VM
b2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmFkZE1pc3NpbmdUYWJsZXMgZmFpbGVkIHRvIGNy
ZWF0ZSB1bmlxdWUgaW5kaWNlcywgZXJyb3IgbWVzc2FnZTogJXtwcml2YXRlfXMiLCB0aGlzLCBt
X2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CiAgICAgICAgIHJldHVybjsKICAgICB9Cit9CisKK3ZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c0RhdGFiYXNlU3RvcmU6Om9wZW5BbmRVcGRhdGVTY2hlbWFJZk5lY2Vzc2FyeSgpCit7CisgICAg
b3BlbklUUERhdGFiYXNlKCk7CisKKyAgICBWZWN0b3I8U3RyaW5nPiBtaXNzaW5nVGFibGVzOwor
ICAgIGlzQ29ycmVjdFRhYmxlU2NoZW1hKG1pc3NpbmdUYWJsZXMpOworICAgIGlmICghbWlzc2lu
Z1RhYmxlcy5pc0VtcHR5KCkpCisgICAgICAgIGFkZE1pc3NpbmdUYWJsZXMobWlzc2luZ1RhYmxl
cyk7CiAKICAgICBTdHJpbmcgY3VycmVudFNjaGVtYTsKICAgICB7CkBAIC01MDMsNyArNTE4LDgg
QEAgdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6b3BlbkFuZERyb3BP
bGREYXRhYmFzZUlmTmVjZXNzYXJ5KCkKIAogICAgIEFTU0VSVCghY3VycmVudFNjaGVtYS5pc0Vt
cHR5KCkpOwogCi0gICAgLy8gSWYgdGhlIHNjaGVtYSBpbiB0aGUgUmVzb3VyY2VMb2FkU3RhdGlz
dGljcyBkaXJlY3RvcnkgaXMgbm90IHRoZSBjdXJyZW50IHNjaGVtYSwgZGVsZXRlIHRoZSBkYXRh
YmFzZSBmaWxlLgorICAgIC8vIElmIHRoZSBPYnNlcnZlZERvbWFpbnMgc2NoZW1hIGluIHRoZSBS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzIGRpcmVjdG9yeSBpcyBub3QgdGhlIGN1cnJlbnQgc2NoZW1h
LCBkZWxldGUgdGhlIGRhdGFiYXNlIGZpbGUuCisgICAgLy8gRklYTUU6IE1pZ3JhdGUgb2xkIE9i
c2VydmVkRG9tYWlucyBkYXRhIHRvIG5ldyB0YWJsZSBzY2hlbWEuCiAgICAgaWYgKGN1cnJlbnRT
Y2hlbWEgIT0gT2JzZXJ2ZWREb21haW5zVGFibGVTY2hlbWFWMSgpICYmIGN1cnJlbnRTY2hlbWEg
IT0gT2JzZXJ2ZWREb21haW5zVGFibGVTY2hlbWFWMUFsdGVybmF0ZSgpKSB7CiAgICAgICAgIG1f
ZGF0YWJhc2UuY2xvc2UoKTsKICAgICAgICAgRmlsZVN5c3RlbTo6ZGVsZXRlRmlsZShtX3N0b3Jh
Z2VEaXJlY3RvcnlQYXRoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5oIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3NEYXRhYmFzZVN0b3JlLmgKaW5kZXggNDMwMzU4MzgwNDg2ZTZmMDliMTc0NzE3MjVlMTgyNjFh
YmVmMGJiNS4uOWYxYjMxMjFjMWRjZjRhYWIyMWM0ZWQxODA2NDg0NmEwMzVhMDBjMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9h
ZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmgKQEAg
LTE0MCwxNiArMTQwLDE3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldElzTmV3UmVzb3VyY2VMb2Fk
U3RhdGlzdGljc0RhdGFiYXNlRmlsZShib29sIGlzTmV3UmVzb3VyY2VMb2FkU3RhdGlzdGljc0Rh
dGFiYXNlRmlsZSkgeyBtX2lzTmV3UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlRmlsZSA9
IGlzTmV3UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlRmlsZTsgfQogICAgIHZvaWQgcmVt
b3ZlRGF0YUZvckRvbWFpbihjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYpIG92ZXJyaWRlOwogICAg
IGJvb2wgZG9tYWluSURFeGlzdHNJbkRhdGFiYXNlKGludCk7CisgICAgdm9pZCBpc0NvcnJlY3RU
YWJsZVNjaGVtYShWZWN0b3I8U3RyaW5nPiYpOwogCiBwcml2YXRlOgogICAgIHZvaWQgb3BlbklU
UERhdGFiYXNlKCk7Ci0gICAgYm9vbCBpc0NvcnJlY3RUYWJsZVNjaGVtYSgpOworICAgIHZvaWQg
YWRkTWlzc2luZ1RhYmxlcyhWZWN0b3I8U3RyaW5nPiYpOwogICAgIHZvaWQgZW5hYmxlRm9yZWln
bktleXMoKTsKICAgICBib29sIGlzTWlncmF0aW9uTmVjZXNzYXJ5KCk7CiAgICAgdm9pZCBtaWdy
YXRlRGF0YVRvTmV3VGFibGVzSWZOZWNlc3NhcnkoKTsKICAgICBib29sIGhhc1N0b3JhZ2VBY2Nl
c3MoY29uc3QgVG9wRnJhbWVEb21haW4mLCBjb25zdCBTdWJGcmFtZURvbWFpbiYpIGNvbnN0Owog
ICAgIFZlY3RvcjxXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OlRoaXJkUGFydHlEYXRh
Rm9yU3BlY2lmaWNGaXJzdFBhcnR5PiBnZXRUaGlyZFBhcnR5RGF0YUZvclNwZWNpZmljRmlyc3RQ
YXJ0eURvbWFpbnModW5zaWduZWQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJikgY29uc3Q7Ci0g
ICAgdm9pZCBvcGVuQW5kRHJvcE9sZERhdGFiYXNlSWZOZWNlc3NhcnkoKTsKKyAgICB2b2lkIG9w
ZW5BbmRVcGRhdGVTY2hlbWFJZk5lY2Vzc2FyeSgpOwogICAgIFN0cmluZyBnZXREb21haW5TdHJp
bmdGcm9tRG9tYWluSUQodW5zaWduZWQpIGNvbnN0OwogICAgIFN0cmluZyBnZXRTdWJTdGF0aXN0
aWNTdGF0ZW1lbnQoY29uc3QgU3RyaW5nJikgY29uc3Q7CiAgICAgdm9pZCBhcHBlbmRTdWJTdGF0
aXN0aWNMaXN0KFN0cmluZ0J1aWxkZXImLCBjb25zdCBTdHJpbmcmIHRhYmxlTmFtZSwgY29uc3Qg
U3RyaW5nJiBkb21haW4pIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc1N0b3JlLmNwcAppbmRleCBiZmU5YmMzMjI4ZjU5MDE1ZDZiYjlkYzEyZTI2NzJiZmYw
MzcyOWFhLi4zOTdmMGJjMjllNDUzM2ZiODhiY2M3NjNhNzRlOGEzMmQyM2NmNjNjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VM
b2FkU3RhdGlzdGljc1N0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcApAQCAtMzIwLDYg
KzMyMCwyMyBAQCB2b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6c2NoZWR1bGVT
dGF0aXN0aWNzQW5kRGF0YVJlY29yZHNQcm9jZXNzaW5nKAogICAgIH0pOwogfQogCit2b2lkIFdl
YlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6c3RhdGlzdGljc0RhdGFiYXNlSGFzQWxsVGFi
bGVzKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7
CisgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKKyAgICAKKyAgICBwb3N0VGFzayhbdGhp
cywgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oKSBtdXRh
YmxlIHsgCisgICAgICAgIGlmICghbV9zdGF0aXN0aWNzU3RvcmUgfHwgIWlzPFJlc291cmNlTG9h
ZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlPigqbV9zdGF0aXN0aWNzU3RvcmUpKSB7CisgICAgICAg
ICAgICBjb21wbGV0aW9uSGFuZGxlcihmYWxzZSk7CisgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgIH0KKyAgICAgICAgVmVjdG9yPFN0cmluZz4gbWlzc2luZ1RhYmxlczsKKyAgICAgICAgZG93
bmNhc3Q8UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU+KCptX3N0YXRpc3RpY3NT
dG9yZSkuaXNDb3JyZWN0VGFibGVTY2hlbWEobWlzc2luZ1RhYmxlcyk7CisgICAgICAgIHBvc3RU
YXNrUmVwbHkoW2hhc0FsbFRhYmxlcyA9IG1pc3NpbmdUYWJsZXMuaXNFbXB0eSgpLCBjb21wbGV0
aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSAoKSBtdXRhYmxlIHsKKyAg
ICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGhhc0FsbFRhYmxlcyk7CisgICAgICAgIH0pOwor
ICAgIH0pOworfQorCiB2b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6cmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc1VwZGF0ZWQoVmVjdG9yPFJlc291cmNlTG9hZFN0YXRpc3RpY3M+JiYg
c3RhdGlzdGljcykKIHsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NTdG9yZS5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lm
aWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oCmluZGV4IGRlNDE1OWM5NzNhODMw
Y2ZjYmY0NmQ0NzQ2MDVjMTAxZjMzZjNhNTQuLmMyOGM5MDI2MzI4MDQ1ODMyOTdlNDdiZWM2MDQ4
YWM4ODc4YzVhN2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xh
c3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0
b3JlLmgKQEAgLTI1MSw2ICsyNTEsNyBAQCBzdHJ1Y3QgVGhpcmRQYXJ0eURhdGEgewogICAgIHZv
aWQgc2NoZWR1bGVDb29raWVCbG9ja2luZ1VwZGF0ZShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+
JiYpOwogICAgIHZvaWQgc2NoZWR1bGVDb29raWVCbG9ja2luZ1VwZGF0ZUZvckRvbWFpbnMoY29u
c3QgVmVjdG9yPFJlZ2lzdHJhYmxlRG9tYWluPiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4m
Jik7CiAgICAgdm9pZCBzY2hlZHVsZVN0YXRpc3RpY3NBbmREYXRhUmVjb3Jkc1Byb2Nlc3Npbmco
Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKKyAgICB2b2lkIHN0YXRpc3RpY3NEYXRhYmFz
ZUhhc0FsbFRhYmxlcyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKICAgICB2b2lk
IHN1Ym1pdFRlbGVtZXRyeShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQg
c2NoZWR1bGVDbGVhckluTWVtb3J5QW5kUGVyc2lzdGVudChTaG91bGRHcmFuZGZhdGhlclN0YXRp
c3RpY3MsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBzY2hlZHVsZUNs
ZWFySW5NZW1vcnlBbmRQZXJzaXN0ZW50KFdhbGxUaW1lIG1vZGlmaWVkU2luY2UsIFNob3VsZEdy
YW5kZmF0aGVyU3RhdGlzdGljcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKaW5kZXggZjhj
YTYzZDA2YjgwMTNkYTkwY2YyNDE5OGY1MzdhOWM1MzVkMjAwZS4uZjU1NjkzZjg0OWNlYjU3NjJm
OGZiZTYxYWM2MDYzNzM1OGRmZDM1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKQEAgLTgyMCw2ICs4MjAsMTkgQEAgdm9pZCBOZXR3b3Jr
UHJvY2Vzczo6c2NoZWR1bGVTdGF0aXN0aWNzQW5kRGF0YVJlY29yZHNQcm9jZXNzaW5nKFBBTDo6
U2Vzc2lvbklEIHMKICAgICB9CiB9CiAKK3ZvaWQgTmV0d29ya1Byb2Nlc3M6OnN0YXRpc3RpY3NE
YXRhYmFzZUhhc0FsbFRhYmxlcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgaWYgKGF1dG8q
IG5ldHdvcmtTZXNzaW9uID0gdGhpcy0+bmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKSkgeworICAg
ICAgICBpZiAoYXV0byogcmVzb3VyY2VMb2FkU3RhdGlzdGljcyA9IG5ldHdvcmtTZXNzaW9uLT5y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzKCkpCisgICAgICAgICAgICByZXNvdXJjZUxvYWRTdGF0aXN0
aWNzLT5zdGF0aXN0aWNzRGF0YWJhc2VIYXNBbGxUYWJsZXMoV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlcikpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmYWxz
ZSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAg
IGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlKTsKKyAgICB9Cit9CisKIHZvaWQgTmV0d29ya1Byb2Nl
c3M6OnNldE5vdGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNjYW5uZWQoUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvbklELCBib29sIHZhbHVlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29t
cGxldGlvbkhhbmRsZXIpCiB7CiAgICAgaWYgKGF1dG8qIG5ldHdvcmtTZXNzaW9uID0gdGhpcy0+
bmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCmluZGV4IGRhNmFkN2E4NzhhN2E5OTFiMDVhYjczOGUzYjkw
N2RkOTkwYmY4OWEuLmFjOWVmYzBlZjc5OGIxNGI1NTlhOTczYjIyMmE4NGFhZThjMjkzYWMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKQEAgLTIz
Nyw2ICsyMzcsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBnZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
RGF0YVN1bW1hcnkoUEFMOjpTZXNzaW9uSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVmVjdG9y
PFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6VGhpcmRQYXJ0eURhdGE+JiYpPiYmKTsK
ICAgICB2b2lkIHNjaGVkdWxlQ29va2llQmxvY2tpbmdVcGRhdGUoUEFMOjpTZXNzaW9uSUQsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBzY2hlZHVsZVN0YXRpc3RpY3NB
bmREYXRhUmVjb3Jkc1Byb2Nlc3NpbmcoUEFMOjpTZXNzaW9uSUQsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoKT4mJik7CisgICAgdm9pZCBzdGF0aXN0aWNzRGF0YWJhc2VIYXNBbGxUYWJsZXMoUEFM
OjpTZXNzaW9uSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwogICAgIHZvaWQg
c3VibWl0VGVsZW1ldHJ5KFBBTDo6U2Vzc2lvbklELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+
JiYpOwogICAgIHZvaWQgc2V0Q2FjaGVNYXhBZ2VDYXBGb3JQcmV2YWxlbnRSZXNvdXJjZXMoUEFM
OjpTZXNzaW9uSUQsIFNlY29uZHMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAg
dm9pZCBzZXRHcmFuZGZhdGhlcmluZ1RpbWUoUEFMOjpTZXNzaW9uSUQsIFNlY29uZHMsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgppbmRleCA1ZWFiYTM3YWUwYmI5
MjM1NjVkMDA4MTFjOTY0ZDUzNzg5NjY3ZTExLi4wZjMyODhhZmM3NmY3MjhkMmRkZmVlMjNlNDA5
ODk5MTk3OWYyODQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4KQEAgLTExMSw2ICsxMTEsNyBAQCBtZXNzYWdl
cyAtPiBOZXR3b3JrUHJvY2VzcyBMZWdhY3lSZWNlaXZlciB7CiAgICAgU2NoZWR1bGVDbGVhcklu
TWVtb3J5QW5kUGVyc2lzdGVudChQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlvbmFsPFdh
bGxUaW1lPiBtb2RpZmllZFNpbmNlLCBlbnVtOmJvb2wgV2ViS2l0OjpTaG91bGRHcmFuZGZhdGhl
clN0YXRpc3RpY3Mgc2hvdWxkR3JhbmRmYXRoZXIpIC0+ICgpIEFzeW5jCiAgICAgU2NoZWR1bGVD
b29raWVCbG9ja2luZ1VwZGF0ZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpIC0+ICgpIEFzeW5j
CiAgICAgU2NoZWR1bGVTdGF0aXN0aWNzQW5kRGF0YVJlY29yZHNQcm9jZXNzaW5nKFBBTDo6U2Vz
c2lvbklEIHNlc3Npb25JRCkgLT4gKCkgQXN5bmMKKyAgICBTdGF0aXN0aWNzRGF0YWJhc2VIYXNB
bGxUYWJsZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKSAtPiAoYm9vbCBoYXNBbGxUYWJsZXMp
IEFzeW5jCiAgICAgU3VibWl0VGVsZW1ldHJ5KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkgLT4g
KCkgQXN5bmMKICAgICBTZXRDYWNoZU1heEFnZUNhcEZvclByZXZhbGVudFJlc291cmNlcyhQQUw6
OlNlc3Npb25JRCBzZXNzaW9uSUQsIFNlY29uZHMgc2Vjb25kcykgLT4gKCkgQXN5bmMKICAgICBT
ZXRHcmFuZGZhdGhlcmVkKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0
cmFibGVEb21haW4gcmVzb3VyY2VEb21haW4sIGJvb2wgaXNHcmFuZGZhdGhlcmVkKSAtPiAoKSBB
c3luYwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vi
c2l0ZURhdGFTdG9yZS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dl
YnNpdGVEYXRhU3RvcmUubW0KaW5kZXggNzNjOThhMzQ2MjVkOGY1NTUyNDE0Mzg0ZTNjZTZiOGRi
ODQwZThkOC4uZmE3MjY4ZDAyODE1Y2ExMjFkMThhN2Y2NzdkNjMwY2U1ZmViNzUwMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9y
ZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0
YVN0b3JlLm1tCkBAIC01NjIsNiArNTYyLDE3IEBAIC0gKHZvaWQpX2lzUmVnaXN0ZXJlZEFzU3Vi
cmVzb3VyY2VVbmRlckZpcnN0UGFydHk6KE5TVVJMICopZmlyc3RQYXJ0eVVSTCB0aGlyZFBhCiAj
ZW5kaWYKIH0KIAorLSAodm9pZClfc3RhdGlzdGljc0RhdGFiYXNlSGFzQWxsVGFibGVzOih2b2lk
ICheKShCT09MKSljb21wbGV0aW9uSGFuZGxlcgoreworI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FE
X1NUQVRJU1RJQ1MpCisgICAgX3dlYnNpdGVEYXRhU3RvcmUtPnN0YXRpc3RpY3NEYXRhYmFzZUhh
c0FsbFRhYmxlcyhbY29tcGxldGlvbkhhbmRsZXIgPSBtYWtlQmxvY2tQdHIoY29tcGxldGlvbkhh
bmRsZXIpXShib29sIGhhc0FsbFRhYmxlcykgeworICAgICAgICBjb21wbGV0aW9uSGFuZGxlciho
YXNBbGxUYWJsZXMpOworICAgIH0pOworI2Vsc2UKKyAgICBjb21wbGV0aW9uSGFuZGxlcihOTyk7
CisjZW5kaWYKK30KKwogLSAodm9pZClfcHJvY2Vzc1N0YXRpc3RpY3NBbmREYXRhUmVjb3Jkczoo
dm9pZCAoXikodm9pZCkpY29tcGxldGlvbkhhbmRsZXIKIHsKICNpZiBFTkFCTEUoUkVTT1VSQ0Vf
TE9BRF9TVEFUSVNUSUNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZVByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmVQcml2YXRlLmgKaW5kZXggNjA5NTllNDcz
NTFiMGFlZGEyYTIyNzcwNDdjZjk4OGVkNTk5NjM0Ni4uNTVhYmZmMWZkNDRmMDE4ZjA0OTk3NmQx
MjZmYWYzODAyMDIzNzE4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZVByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlUHJpdmF0ZS5oCkBAIC03Nyw2ICs3
Nyw3IEBAIHR5cGVkZWYgTlNfT1BUSU9OUyhOU1VJbnRlZ2VyLCBfV0tXZWJzaXRlRGF0YVN0b3Jl
RmV0Y2hPcHRpb25zKSB7CiAtICh2b2lkKV9jbGVhclJlc291cmNlTG9hZFN0YXRpc3RpY3M6KHZv
aWQgKF4pKHZvaWQpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tf
TUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAtICh2b2lkKV9pc1JlZ2lzdGVyZWRBc1N1YnJl
c291cmNlVW5kZXJGaXJzdFBhcnR5OihOU1VSTCAqKWZpcnN0UGFydHlVUkwgdGhpcmRQYXJ0eToo
TlNVUkwgKil0aGlyZFBhcnR5VVJMIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShCT09MKSlj
b21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3Mo
V0tfSU9TX1RCQSkpOwogLSAodm9pZClfc2V0VGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nTW9kZToo
Qk9PTCllbmFibGVkIG9ubHlPblNpdGVzV2l0aG91dFVzZXJJbnRlcmFjdGlvbjooQk9PTClvbmx5
T25TaXRlc1dpdGhvdXRVc2VySW50ZXJhY3Rpb24gY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4p
KHZvaWQpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RC
QSksIGlvcyhXS19JT1NfVEJBKSk7CistICh2b2lkKV9zdGF0aXN0aWNzRGF0YWJhc2VIYXNBbGxU
YWJsZXM6KHZvaWQgKF4pKEJPT0wpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAtICh2b2lkKV9wcm9jZXNzU3Rh
dGlzdGljc0FuZERhdGFSZWNvcmRzOih2b2lkICheKSh2b2lkKSljb21wbGV0aW9uSGFuZGxlciBX
S19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE1KSwgaW9zKDEzLjApKTsKIC0gKHZvaWQpX2FwcEJv
dW5kRG9tYWluczoodm9pZCAoXikoTlNBcnJheTxOU1N0cmluZyAqPiAqKSljb21wbGV0aW9uSGFu
ZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQ
cm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3Jr
UHJvY2Vzc1Byb3h5LmNwcAppbmRleCBmOWFkZTc2MmFkYjM4MTRlNDlhZjllNTlkNWY0ZDFhYTI4
YzIxZGZjLi45NGNlYThmOWNiMWNhMDUzNDcwYTgxMjM2N2VhMTk4NTgzMjM4ZmQ5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHku
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQ
cm94eS5jcHAKQEAgLTYyOSw2ICs2MjksMTYgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5Ojpz
Y2hlZHVsZVN0YXRpc3RpY3NBbmREYXRhUmVjb3Jkc1Byb2Nlc3NpbmcoUEFMOjpTZXNzaW8KICAg
ICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpTY2hlZHVsZVN0
YXRpc3RpY3NBbmREYXRhUmVjb3Jkc1Byb2Nlc3Npbmcoc2Vzc2lvbklEKSwgV1RGTW92ZShjb21w
bGV0aW9uSGFuZGxlcikpOwogfQogCit2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnN0YXRpc3Rp
Y3NEYXRhYmFzZUhhc0FsbFRhYmxlcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgaWYgKCFj
YW5TZW5kTWVzc2FnZSgpKSB7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlKTsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKyAgICAKKyAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2Fn
ZXM6Ok5ldHdvcmtQcm9jZXNzOjpTdGF0aXN0aWNzRGF0YWJhc2VIYXNBbGxUYWJsZXMoc2Vzc2lv
bklEKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworfQorCiB2b2lkIE5ldHdvcmtQcm9j
ZXNzUHJveHk6OmxvZ1VzZXJJbnRlcmFjdGlvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNv
bnN0IFJlZ2lzdHJhYmxlRG9tYWluJiByZXNvdXJjZURvbWFpbiwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIGlmICghY2FuU2VuZE1lc3NhZ2Uo
KSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3Jr
UHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQ
cm9jZXNzUHJveHkuaAppbmRleCA0ZjgwNTMzM2VjYzcxODExYjUyYjIzOGRiMThkNmFhZGFkZDJk
YTcwLi43NjcyMDdmZWFiNDZiMWM5N2FhOWM5YjI1ZjMwZWI3NGEzZWJjMTIxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHku
aApAQCAtMTMxLDYgKzEzMSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNjaGVkdWxlU3RhdGlzdGlj
c0FuZERhdGFSZWNvcmRzUHJvY2Vzc2luZyhQQUw6OlNlc3Npb25JRCwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHNldExhc3RTZWVuKFBBTDo6U2Vzc2lvbklELCBjb25z
dCBSZWdpc3RyYWJsZURvbWFpbiYsIFNlY29uZHMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4m
Jik7CiAgICAgdm9pZCBkb21haW5JREV4aXN0c0luRGF0YWJhc2UoUEFMOjpTZXNzaW9uSUQsIGlu
dCBkb21haW5JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CisgICAgdm9pZCBz
dGF0aXN0aWNzRGF0YWJhc2VIYXNBbGxUYWJsZXMoUEFMOjpTZXNzaW9uSUQsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoYm9vbCk+JiYpOwogICAgIHZvaWQgbWVyZ2VTdGF0aXN0aWNGb3JUZXN0aW5n
KFBBTDo6U2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYsIGNvbnN0IFRvcEZyYW1l
RG9tYWluJiB0b3BGcmFtZURvbWFpbjEsIGNvbnN0IFRvcEZyYW1lRG9tYWluJiB0b3BGcmFtZURv
bWFpbjIsIFNlY29uZHMgbGFzdFNlZW4sIGJvb2wgaGFkVXNlckludGVyYWN0aW9uLCBTZWNvbmRz
IG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb24sIGJvb2wgaXNHcmFuZGZhdGhlcmVkLCBib29sIGlz
UHJldmFsZW50LCBib29sIGlzVmVyeVByZXZhbGVudCwgdW5zaWduZWQgZGF0YVJlY29yZHNSZW1v
dmVkLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgc2V0QWdlQ2FwRm9y
Q2xpZW50U2lkZUNvb2tpZXMoUEFMOjpTZXNzaW9uSUQsIE9wdGlvbmFsPFNlY29uZHM+LCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgc2V0Q2FjaGVNYXhBZ2VDYXAoUEFM
OjpTZXNzaW9uSUQsIFNlY29uZHMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0
b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRh
U3RvcmUuY3BwCmluZGV4IDc3MzU2NjgxOGFiODZkZWQzZjU2ODYxM2IyNTc2NWVmMmFmYjUzNTku
LjRlMTM0YmE3MTQ2NWJhNmU0ZTdkMjFjNGZkMTBmOGIxYmM0OTE4YTQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUu
Y3BwCkBAIC0xNTgzLDYgKzE1ODMsMjAgQEAgdm9pZCBXZWJzaXRlRGF0YVN0b3JlOjpzY2hlZHVs
ZVN0YXRpc3RpY3NBbmREYXRhUmVjb3Jkc1Byb2Nlc3NpbmcoQ29tcGxldGlvbkhhbmQKICAgICB9
CiB9CiAKK3ZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6c3RhdGlzdGljc0RhdGFiYXNlSGFzQWxsVGFi
bGVzKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7
CisgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKKworICAgIGZvciAoYXV0byYgcHJvY2Vz
c1Bvb2wgOiBwcm9jZXNzUG9vbHMoKSkgeworICAgICAgICBpZiAoYXV0byogcHJvY2VzcyA9IHBy
b2Nlc3NQb29sLT5uZXR3b3JrUHJvY2VzcygpKSB7CisgICAgICAgICAgICBwcm9jZXNzLT5zdGF0
aXN0aWNzRGF0YWJhc2VIYXNBbGxUYWJsZXMobV9zZXNzaW9uSUQsIFdURk1vdmUoY29tcGxldGlv
bkhhbmRsZXIpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIH0KKyAgICAK
KyAgICBjb21wbGV0aW9uSGFuZGxlcihmYWxzZSk7Cit9CisKIHZvaWQgV2Vic2l0ZURhdGFTdG9y
ZTo6c2V0TGFzdFNlZW4oY29uc3QgVVJMJiB1cmwsIFNlY29uZHMgc2Vjb25kcywgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIGlmICh1cmwucHJv
dG9jb2xJc0Fib3V0KCkgfHwgdXJsLmlzRW1wdHkoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oCmluZGV4IDVkYTVm
YTUxYWUyOTMwOGRmZTk5ZmExNWE0YTg1MGQ2ODkwMjY1ZjMuLmM0MjQxNDM5YTFlMDQ5ZTZkYjc0
MDNkNWM5YTQ2ZTM5ZmQ5OTc3MTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgKQEAgLTE2OCw2ICsxNjgsNyBAQCBw
dWJsaWM6CiAgICAgdm9pZCBzZXRHcmFuZGZhdGhlcmluZ1RpbWUoU2Vjb25kcywgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHNldExhc3RTZWVuKGNvbnN0IFVSTCYsIFNl
Y29uZHMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBkb21haW5JREV4
aXN0c0luRGF0YWJhc2UoaW50IGRvbWFpbklELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wp
PiYmKTsKKyAgICB2b2lkIHN0YXRpc3RpY3NEYXRhYmFzZUhhc0FsbFRhYmxlcyhDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKICAgICB2b2lkIG1lcmdlU3RhdGlzdGljRm9yVGVzdGlu
Zyhjb25zdCBVUkwmLCBjb25zdCBVUkwmIHRvcEZyYW1lVXJsMSwgY29uc3QgVVJMJiB0b3BGcmFt
ZVVybDIsIFNlY29uZHMgbGFzdFNlZW4sIGJvb2wgaGFkVXNlckludGVyYWN0aW9uLCBTZWNvbmRz
IG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb24sIGJvb2wgaXNHcmFuZGZhdGhlcmVkLCBib29sIGlz
UHJldmFsZW50LCBib29sIGlzVmVyeVByZXZhbGVudCwgdW5zaWduZWQgZGF0YVJlY29yZHNSZW1v
dmVkLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgc2V0Tm90aWZ5UGFn
ZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZChib29sLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KCk+JiYpOwogICAgIHZvaWQgc2V0SXNSdW5uaW5nUmVzb3VyY2VMb2FkU3RhdGlzdGljc1Rlc3Qo
Ym9vbCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0No
YW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA5NTVhMjNlODQyZWJhMWQ1OTdmODk0ZjNk
OTlmYmEwMTI5M2U0MGQ5Li43NTcxMjNhYWRhZGU0YjI4ZWU2MDM2ODNmZjRkMWE4OTZhODJlY2I2
IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjAgQEAKKzIwMjAtMDQtMjQgIEthdGUgQ2hlbmV5ICA8a2F0aGVyaW5lX2NoZW5leUBh
cHBsZS5jb20+CisKKyAgICAgICAgQ3JlYXRlIGEgbWVjaGFuaXNtIHRvIGFkZCBtaXNzaW5nIElU
UCBEYXRhYmFzZSB0YWJsZXMgd2hlbiB0aGUgc2NoZW1hIGlzIHVwZGF0ZWQKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMTAwNAorICAgICAgICA8cmRh
cjovL3Byb2JsZW0vNjIyNjExODc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgQWRkIHRlc3QgY2FzZSB3aGljaCBjb3BpZXMgYSBkYXRhYmFzZSBzY2hl
bWEgd2l0aCBhIG1pc3NpbmcgdGFibGUgaW50bworICAgICAgICB0aGUgSVRQIGRhdGFiYXNlIGZp
bGUsIHRoZW4gZW5zdXJlcyB0aGUgcHJlLXNlZWRlZCBkYXRhIGhhcyBiZWVuCisgICAgICAgIG1p
Z3JhdGVkIG92ZXIgYW5kIHRoYXQgdGhlIHNjaGVtYSBoYXMgYWxsIHRhYmxlcyAoaW5jbHVkaW5n
IHRoZQorICAgICAgICBtaXNzaW5nIG9uZSkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rl
c3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBUZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Jlc291cmNlTG9hZFN0YXRpc3RpY3MubW06CisgICAg
ICAgIChURVNUKToKKwogMjAyMC0wNC0yNyAgRGFuaWVsIEJhdGVzICA8ZGFiYXRlc0BhcHBsZS5j
b20+CiAKICAgICAgICAgQ2FyZXQgbWF5IGJlIHBsYWNlZCBpbiB0aGUgd3Jvbmcgc3BvdCBmb3Ig
dGV4dCBpbnB1dCBjb250ZXh0IHRoYXQgaXMgYSBmb3JtIGNvbnRyb2wKZGlmZiAtLWdpdCBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKaW5kZXggZjRlMzg5Y2JkNmRlY2RmNzYwZjQzNTY2NjQ5YzM4MTE0MzZkNDkxNS4uY2U2
Njg3NTQzMTA0MTEwZTRhYTVkYjQxMzBkYTViZmIzNGZkY2RlNyAxMDA2NDQKLS0tIGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysr
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKQEAgLTI1Niw2ICsyNTYsNyBAQAogCQk0NkZBQ0Y3NDIzRTg4NDIzMDBBOUVCQzYgLyog
YmVmb3JldW5sb2FkLXNsb3cuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA0NkZBQ0Y3MzIzRTg4M0VFMDBBOUVCQzYgLyogYmVmb3JldW5s
b2FkLXNsb3cuaHRtbCAqLzsgfTsKIAkJNDkwOUVFM0EyRDA5NDgwQzg4OTgyRDU2IC8qIE1hcmth
YmxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEVD
NzlGMTY4QkU0NTRFNTc5RTQxN0IwNSAvKiBNYXJrYWJsZS5jcHAgKi87IH07CiAJCTQ5NzFCMTE4
MjQ1MUYyOUEwMDk2OTk0RCAvKiBpbmNvcnJlY3RDcmVhdGVUYWJsZVNjaGVtYS5kYiBpbiBDb3B5
IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OTcxQjExNzI0
NTFGMjc4MDA5Njk5NEQgLyogaW5jb3JyZWN0Q3JlYXRlVGFibGVTY2hlbWEuZGIgKi87IH07CisJ
CTQ5NzFCMTIwMjQ1M0E4OEMwMDk2OTk0RCAvKiBtaXNzaW5nVG9wRnJhbWVVbmlxdWVSZWRpcmVj
dFNhbWVTaXRlU3RyaWN0VGFibGVTY2hlbWEuZGIgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDk3MUIxMUYyNDUzQTg3RjAwOTY5OTREIC8qIG1p
c3NpbmdUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0U2FtZVNpdGVTdHJpY3RUYWJsZVNjaGVtYS5kYiAq
LzsgfTsKIAkJNDk4OTdENkMyNDFGRTlFNDAwRUNGMTUzIC8qIGluLWFwcC1icm93c2VyLXByaXZh
Y3ktbG9jYWwtZmlsZS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDQ5RDdGQkE3MjQxRkREREEwMEFCNjdGQSAvKiBpbi1hcHAtYnJvd3Nl
ci1wcml2YWN5LWxvY2FsLWZpbGUuaHRtbCAqLzsgfTsKIAkJNDlBRUVGNkQyNDA3MzU5RDAwQzg3
RTRDIC8qIEluQXBwQnJvd3NlclByaXZhY3kubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA0OUFFRUY2QjI0MDczNTg2MDBDODdFNEMgLyogSW5BcHBCcm93
c2VyUHJpdmFjeS5tbSAqLzsgfTsKIAkJNEJGREZGQTcxMzE0Nzc2QzAwNjFGMjRCIC8qIEhpdFRl
c3RSZXN1bHROb2RlSGFuZGxlX0J1bmRsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA0QkZERkZBNjEzMTQ3NzZDMDA2MUYyNEIgLyogSGl0VGVzdFJl
c3VsdE5vZGVIYW5kbGVfQnVuZGxlLmNwcCAqLzsgfTsKQEAgLTE0NDksNiArMTQ1MCw3IEBACiAJ
CQkJQ0RDOTQ0MkYxRUYyMDVENjAwNTlDM0M0IC8qIG1lZGlhc3RyZWFtdHJhY2stZGV0YWNoZWQu
aHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQlFMTIyMERDQTE1NUIyOEFBMDAxM0UyRkMg
LyogTWVtb3J5Q2FjaGVEaXNhYmxlV2l0aGluUmVzb3VyY2VMb2FkRGVsZWdhdGUuaHRtbCBpbiBD
b3B5IFJlc291cmNlcyAqLywKIAkJCQk1MTdFN0UwNDE1MTExOUMxMDBEMEIwMDggLyogTWVtb3J5
Q2FjaGVQcnVuZVdpdGhpblJlc291cmNlTG9hZERlbGVnYXRlLmh0bWwgaW4gQ29weSBSZXNvdXJj
ZXMgKi8sCisJCQkJNDk3MUIxMjAyNDUzQTg4QzAwOTY5OTREIC8qIG1pc3NpbmdUb3BGcmFtZVVu
aXF1ZVJlZGlyZWN0U2FtZVNpdGVTdHJpY3RUYWJsZVNjaGVtYS5kYiBpbiBDb3B5IFJlc291cmNl
cyAqLywKIAkJCQk1MUNEMUM3MjFCMzhENDg0MDAxNDJDQTUgLyogbW9kYWwtYWxlcnRzLWluLW5l
dy1hYm91dC1ibGFuay13aW5kb3cuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQk3QTE0
NThGQzFBRDVDMDcwMDBFMDY3NzIgLyogbW91c2UtYnV0dG9uLWxpc3RlbmVyLmh0bWwgaW4gQ29w
eSBSZXNvdXJjZXMgKi8sCiAJCQkJMzNFNzlFMDYxMzdCNUZEOTAwRTMyRDk5IC8qIG1vdXNlLW1v
dmUtbGlzdGVuZXIuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKQEAgLTE4NzYsNiArMTg3OCw3
IEBACiAJCTQ2RkEyRkVEMjM4NDZDOUEwMDBDQ0IwQyAvKiBIVFRQSGVhZGVyTWFwLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEhUVFBIZWFkZXJNYXAuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NkZBQ0Y3MzIzRTg4M0VFMDBBOUVCQzYgLyogYmVm
b3JldW5sb2FkLXNsb3cuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJiZWZvcmV1
bmxvYWQtc2xvdy5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDk3MUIxMTcy
NDUxRjI3ODAwOTY5OTREIC8qIGluY29ycmVjdENyZWF0ZVRhYmxlU2NoZW1hLmRiICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gZmlsZTsgcGF0aCA9IGlu
Y29ycmVjdENyZWF0ZVRhYmxlU2NoZW1hLmRiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk0OTcxQjExRjI0NTNBODdGMDA5Njk5NEQgLyogbWlzc2luZ1RvcEZyYW1lVW5pcXVlUmVkaXJl
Y3RTYW1lU2l0ZVN0cmljdFRhYmxlU2NoZW1hLmRiICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gZmlsZTsgbmFtZSA9IG1pc3NpbmdUb3BGcmFtZVVuaXF1
ZVJlZGlyZWN0U2FtZVNpdGVTdHJpY3RUYWJsZVNjaGVtYS5kYjsgcGF0aCA9IFRlc3RzL1dlYktp
dENvY29hL21pc3NpbmdUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0U2FtZVNpdGVTdHJpY3RUYWJsZVNj
aGVtYS5kYjsgc291cmNlVHJlZSA9IFNPVVJDRV9ST09UOyB9OwogCQk0OUFFRUY2ODI0MDcyNzZG
MDBDODdFNEMgLyogSW5mby5wbGlzdCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQucGxpc3QueG1sOyBwYXRoID0g
SW5mby5wbGlzdDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDlBRUVGNkIyNDA3MzU4
NjAwQzg3RTRDIC8qIEluQXBwQnJvd3NlclByaXZhY3kubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IHBhdGggPSBJbkFwcEJyb3dzZXJQcml2YWN5Lm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk0OUQ3RkJBNzI0MUZERERBMDBBQjY3RkEgLyogaW4tYXBwLWJyb3dz
ZXItcHJpdmFjeS1sb2NhbC1maWxlLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAiaW4tYXBwLWJyb3dzZXItcHJp
dmFjeS1sb2NhbC1maWxlLmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNDA3
OCw2ICs0MDgxLDcgQEAKIAkJCQk3NzcyRUNFMDIyRkUwNUUxMDAwOUE3OTkgLyogbWFueS1zYW1l
LW9yaWdpbi1pZnJhbWVzLmh0bWwgKi8sCiAJCQkJQ0Q4Mzk0REUyMzJBRjE1RTAwMTQ5NDk1IC8q
IG1lZGlhLWxvYWRpbmcuaHRtbCAqLywKIAkJCQlDREM5NDQyQjFFRjFGQkQyMDA1OUMzQzQgLyog
bWVkaWFzdHJlYW10cmFjay1kZXRhY2hlZC5odG1sICovLAorCQkJCTQ5NzFCMTFGMjQ1M0E4N0Yw
MDk2OTk0RCAvKiBtaXNzaW5nVG9wRnJhbWVVbmlxdWVSZWRpcmVjdFNhbWVTaXRlU3RyaWN0VGFi
bGVTY2hlbWEuZGIgKi8sCiAJCQkJNTFDRDFDNzExQjM4RDQ4NDAwMTQyQ0E1IC8qIG1vZGFsLWFs
ZXJ0cy1pbi1uZXctYWJvdXQtYmxhbmstd2luZG93Lmh0bWwgKi8sCiAJCQkJN0ExNDU4RkIxQUQ1
QzAzNTAwRTA2NzcyIC8qIG1vdXNlLWJ1dHRvbi1saXN0ZW5lci5odG1sICovLAogCQkJCTMzRTc5
RTA1MTM3QjVGQ0UwMEUzMkQ5OSAvKiBtb3VzZS1tb3ZlLWxpc3RlbmVyLmh0bWwgKi8sCmRpZmYg
LS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Jl
c291cmNlTG9hZFN0YXRpc3RpY3MubW0KaW5kZXggOGE0NDM1NTI5NThmZmVlY2Q1ZjdjZjM2OTVk
M2YyMjRmMWY1ZTdjZi4uYjAyMTdmYWMxOWU0MmNkNDgwYzJmYTA1OTIyMzUxNmZjMmRkNTM0MiAx
MDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9SZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Q29jb2EvUmVzb3VyY2VMb2FkU3RhdGlzdGljcy5tbQpAQCAtMTQ5NSwzICsxNDk1LDU3IEBAIFRF
U1QoUmVzb3VyY2VMb2FkU3RhdGlzdGljcywgTWlncmF0ZURhdGFGcm9tSW5jb3JyZWN0Q3JlYXRl
VGFibGVTY2hlbWEpCiAKICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmVGbGFnKTsK
IH0KKworVEVTVChSZXNvdXJjZUxvYWRTdGF0aXN0aWNzLCBNaWdyYXRlRGF0YUZyb21NaXNzaW5n
VG9wRnJhbWVVbmlxdWVSZWRpcmVjdFNhbWVTaXRlU3RyaWN0VGFibGVTY2hlbWEpCit7CisgICAg
YXV0byAqc2hhcmVkUHJvY2Vzc1Bvb2wgPSBbV0tQcm9jZXNzUG9vbCBfc2hhcmVkUHJvY2Vzc1Bv
b2xdOworCisgICAgYXV0byBkZWZhdWx0RmlsZU1hbmFnZXIgPSBbTlNGaWxlTWFuYWdlciBkZWZh
dWx0TWFuYWdlcl07CisgICAgYXV0byAqZGF0YVN0b3JlID0gW1dLV2Vic2l0ZURhdGFTdG9yZSBk
ZWZhdWx0RGF0YVN0b3JlXTsKKyAgICBOU1VSTCAqaXRwUm9vdFVSTCA9IFtbZGF0YVN0b3JlIF9j
b25maWd1cmF0aW9uXSBfcmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeV07CisgICAgTlNV
UkwgKmZpbGVVUkwgPSBbaXRwUm9vdFVSTCBVUkxCeUFwcGVuZGluZ1BhdGhDb21wb25lbnQ6QCJv
YnNlcnZhdGlvbnMuZGIiXTsKKyAgICBbZGVmYXVsdEZpbGVNYW5hZ2VyIHJlbW92ZUl0ZW1BdFBh
dGg6aXRwUm9vdFVSTC5wYXRoIGVycm9yOm5pbF07CisgICAgRVhQRUNUX0ZBTFNFKFtkZWZhdWx0
RmlsZU1hbmFnZXIgZmlsZUV4aXN0c0F0UGF0aDppdHBSb290VVJMLnBhdGhdKTsKKworICAgIC8v
IExvYWQgYW4gaW5jb3JyZWN0IGRhdGFiYXNlIHNjaGVtYSB3aXRoIHByZS1zZWVkZWQgSVRQIGRh
dGEuCisgICAgW2RlZmF1bHRGaWxlTWFuYWdlciBjcmVhdGVEaXJlY3RvcnlBdFVSTDppdHBSb290
VVJMIHdpdGhJbnRlcm1lZGlhdGVEaXJlY3RvcmllczpZRVMgYXR0cmlidXRlczpuaWwgZXJyb3I6
bmlsXTsKKyAgICBOU1VSTCAqbmV3RmlsZVVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJM
Rm9yUmVzb3VyY2U6QCJtaXNzaW5nVG9wRnJhbWVVbmlxdWVSZWRpcmVjdFNhbWVTaXRlU3RyaWN0
VGFibGVTY2hlbWEiIHdpdGhFeHRlbnNpb246QCJkYiIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktp
dEFQSS5yZXNvdXJjZXMiXTsKKyAgICBFWFBFQ1RfVFJVRShbZGVmYXVsdEZpbGVNYW5hZ2VyIGZp
bGVFeGlzdHNBdFBhdGg6bmV3RmlsZVVSTC5wYXRoXSk7CisgICAgW2RlZmF1bHRGaWxlTWFuYWdl
ciBjb3B5SXRlbUF0UGF0aDpuZXdGaWxlVVJMLnBhdGggdG9QYXRoOmZpbGVVUkwucGF0aCBlcnJv
cjpuaWxdOworICAgIEVYUEVDVF9UUlVFKFtkZWZhdWx0RmlsZU1hbmFnZXIgZmlsZUV4aXN0c0F0
UGF0aDpmaWxlVVJMLnBhdGhdKTsKKworICAgIGF1dG8gY29uZmlndXJhdGlvbiA9IGFkb3B0TlMo
W1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CisgICAgW2NvbmZpZ3VyYXRp
b24gc2V0UHJvY2Vzc1Bvb2w6IHNoYXJlZFByb2Nlc3NQb29sXTsKKyAgICBjb25maWd1cmF0aW9u
LmdldCgpLndlYnNpdGVEYXRhU3RvcmUgPSBkYXRhU3RvcmU7CisKKyAgICAvLyBXZSBuZWVkIGFu
IGFjdGl2ZSBOZXR3b3JrUHJvY2VzcyB0byBwZXJmb3JtIFJlc291cmNlTG9hZFN0YXRpc3RpY3Mg
b3BlcmF0aW9ucy4KKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbV0tXZWJWaWV3IGFsbG9j
XSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApIGNvbmZpZ3VyYXRpb246
Y29uZmlndXJhdGlvbi5nZXQoKV0pOworICAgIFtkYXRhU3RvcmUgX3NldFJlc291cmNlTG9hZFN0
YXRpc3RpY3NFbmFibGVkOllFU107CisgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6W05TVVJMUmVx
dWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAImFib3V0OmJsYW5rIl1d
XTsKKworICAgIHN0YXRpYyBib29sIGRvbmVGbGFnOworICAgIFtkYXRhU3RvcmUgX3NldFVzZUlU
UERhdGFiYXNlOnRydWUgY29tcGxldGlvbkhhbmRsZXI6IF4odm9pZCkgeworICAgICAgICBkb25l
RmxhZyA9IHRydWU7CisgICAgfV07CisKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRv
bmVGbGFnKTsKKworICAgIC8vIFNpbmNlIHRoZSBkYXRhYmFzZSBzaG91bGQgbm90IGJlIGRlbGV0
ZWQsIHRoZSBwcmUtc2VlZGVkIGRhdGEgc2hvdWxkCisgICAgLy8gc3RpbGwgYmUgdGhlcmUgYWZ0
ZXIgaW5pdGlhbGl6aW5nIElUUC4KKyAgICBkb25lRmxhZyA9IGZhbHNlOworICAgIFtkYXRhU3Rv
cmUgX2lzUmVnaXN0ZXJlZEFzU3VicmVzb3VyY2VVbmRlckZpcnN0UGFydHk6W05TVVJMIFVSTFdp
dGhTdHJpbmc6QCJodHRwOi8vYXBwbGUuY29tIl0gdGhpcmRQYXJ0eTpbTlNVUkwgVVJMV2l0aFN0
cmluZzpAImh0dHA6Ly93ZWJraXQub3JnIl0gY29tcGxldGlvbkhhbmRsZXI6IF4oQk9PTCBpc1Jl
Z2lzdGVyZWQpIHsKKyAgICAgICAgRVhQRUNUX1RSVUUoaXNSZWdpc3RlcmVkKTsKKyAgICAgICAg
ZG9uZUZsYWcgPSB0cnVlOworICAgIH1dOworCisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVu
KCZkb25lRmxhZyk7CisgICAgCisgICAgLy8gQ2hlY2sgdG8gbWFrZSBzdXJlIGFsbCB0YWJsZXMg
YXJlIGFjY291bnRlZCBmb3IuCisgICAgZG9uZUZsYWcgPSBmYWxzZTsKKyAgICBbZGF0YVN0b3Jl
IF9zdGF0aXN0aWNzRGF0YWJhc2VIYXNBbGxUYWJsZXM6XihCT09MIGhhc0FsbFRhYmxlcykgewor
ICAgICAgICBFWFBFQ1RfVFJVRShoYXNBbGxUYWJsZXMpOworICAgICAgICBkb25lRmxhZyA9IHRy
dWU7CisgICAgfV07CisKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmVGbGFnKTsK
K30KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvbWlz
c2luZ1RvcEZyYW1lVW5pcXVlUmVkaXJlY3RTYW1lU2l0ZVN0cmljdFRhYmxlU2NoZW1hLmRiIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9taXNzaW5nVG9wRnJhbWVVbmlx
dWVSZWRpcmVjdFNhbWVTaXRlU3RyaWN0VGFibGVTY2hlbWEuZGIKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDAyN2Yx
MzM4YTlhOTIyNjY4YjFjODlmM2E5NWY2OGE3OWRiMTE2NwpHSVQgYmluYXJ5IHBhdGNoCmxpdGVy
YWwgMTA2NDk2CnpjbWVJKlBqQjFpOWwmdT93ajt+NyVydDROdDtKOWx5RmBjKVZDVzlwVmVuTCRF
KENqYUJGU3I3M15RY3d2Nz1jdwp6OWc8MzA0OHZmPjBlMEM9Sk1PZzBVY25BSz9oVyljM3xOOG55
azMlUyExaj4oJEFfZE8rb185S197dyU8aXNZbGAKel9qJiZDX3QwQHRkQVFOPWd0PjEhTT5XclVQ
cklxNVFyYl5WUWA1OTVgU3E2a2BpfWZjYilUb0B2O1NDPFV3Wkp9Cno7SkxmMEpXWGwkZWB3RDUy
T0l6S2NmOGVrUWpURSowUiN8MDAwOUlMS21ZKio1SV9JezFnPSF6eUt9KUp7KSskYgp6WnlwNDk1
VllWPEs9OCt2aERHNUJBYjxiQDJxMXN9MHRnXzAwMElhZ3BhXjg7Uj83SFhHeVl8S3pXQXI0NTlN
JCsKejVJX0l7MVEwKn4wUiN8MDAwOUlMeEI+eHZ7UiNANTszOUxXdG9INn58TTd7fkojMlhRWlJh
NFRYU0hgYFhaMXtICnpVK3ZfaURlbXZ0TkJeNlg4WSR4byZHXmRyIXVXQ2pXNys2YE9mVk9yQSVG
a14ycTFzfTB0Z18wMDBJYWdrUlZgRwp6SDI9cnRvcm0jdj9VVWEzLXxsbnFxSG5pMl57emcrNl84
cShkTURHcjBUMlhxXlAoa2tKT1QoSGZCKnNyQWI8YkAKejJxMXN9MHRqM3Uwb01RNXNrTnZwMHRn
XzAwMElhZ2ZCKnNyQWI8YkBtbEkoOWU+cGVLTEk0Mi01SV9JezFRMCp+CnowUiN8MDs1ckhUenlH
ZnJVdSpKezJMY0VuZkIqc3JBYjxiQDJxMXN9MHRpZjt6fDZGcyQ7ZnslUChKd218QX1pfAp6MHp2
PSoxUTAqfjBSI3wwMDA5SUxLcC1yQGBhaTZ9X1hyPz4wMElhZ2ZCKnNyQWI8YkAydSE4YD47SzdZ
U0U1MXkKejBSI3wwMDA5SUxLbVkqKjVJYFUtITFfT3whU0BJdGZCKnNyQWI8YkAycTFzfTB0aWZ8
ZldROU5qaENBSTxiZVBKCnoycTFzfTB0Z18wMDBJYWdmQip1TUNOUUg8PiRDaihmME5kJSNEZjM9
MnExc30wdGdfMDAwSWFnZkl5TX1mQiEjOAp6aDFVPjMwMDlJTEttWSoqNUlfSXsxUTNga2ZqS2BN
e3tPJHBZRSteQDAwOUlMS21ZKio1SV9JezFRMCtWQkViNFQKejA+VU4mMnExc30wdGdfMDAwSWFn
ZkIqcyREOFR4RTB2blooNUlfSXsxUTAqfjBSI3wwMDA5SUxoelBMJGtBU2Q9CnowMElhZ2ZCKnNy
QWI8YkAycTF2SzFQWllKcFRJXlhCbUB2WjAwOUlMS21ZKio1SV9JezFSP15nfDA1dTVCN2d0Xwp6
MnExc30wdGdfMDAwSWFnRm82UUJ8MGwzZjI/K3JONUlfSXsxUTAqfjBSI3wwMEQqe3J6eTg7YXVR
bUN9MHw1ak8KekttWSoqNUlfSXsxUTAqfjBSJCNhVX1qcCtXSyFMKmJvcmN7eERXe2wwUiN8MDAw
OUlMS21ZKio1SV9JezFPa0M8CnpgcmxlNl58cUZNVipHOTRrTXBVX1V2Qig8PUZaZmdRKlgtYHBC
cGM8WFNlNm14JUdBWmBTLWxxWmN8aVJ5Tis8fQp6bWFgfGVrTCR2eis5enZIP01TVEpONDNWV0o3
I3liU2hmbVAlZDhnTy0+fVRpIUxsMDBpeU8xRiRMbDhXWTxlITgKenZuPjdqZTZRdkF7Z3hpbT5f
aGkwTUI5QW1rPip7dXdIeFk5ckIkPUVTK3pjfSVJNC0pKSFmfFAqalA1M0hQX29kCnpzbjxNRkgp
VXRxMjxgSGV6TDxGUytFJj5yZVh3YitUT1k7VkVIQkdqdiZ6PEgoVztuUnlSTEFhaWg4JFMtPm5E
egp6eVJAMSZ3PkhnSFlyflNneExCd1ozIy08JDg3PyhpMzhocHlTfmtRfShkP0JmNC1SYzdtWSMy
KVdQJDtCX0Y+UXIKenZXUzNhIT4tanV6NTJNfSlGMEZ3QDNZRkQoPlU/bUZ9dnJMI3UjKDNjfntu
TlR6a2tTPnJEdXFzSyZaUzNzcjxKCno/VmVETiVOQ3Eod2BTQTFWb15WUHFMTWRgNF9DI1c/Yk4p
NmVlQTl8X0VCRmp6SDJVLUkpMCRmSmM0ZFNodUBicQp6NzsmY0JFcWV6bER6ZzVlNChSI345QDxY
cWtaTn1pU0soRGwmYk4yZDlydHlgZWZ6bGFxJFNGdC1mK2E4cj9AQlYKeiR8U2xjOTRPc3UmVmxm
SEZiUmBRSUokKTAzYjBidnQ1UkdjdmhoT3k+KzUhQHAqfnstK0sqPF54cz9fRFktUUJRCnpzTUB7
eERBTGBsY0tTU3txSDQ9YWFGRS1MNyF4Qld0TUdfV09ac0w8I0duJGRUNWtUQ0ZgZHFCWlJ5WG0w
ZDIqVAp6XlpTNyk/Q2xCSFAwViUxOWRKWFQ5JFRLLSZuKiZXbkNOXlFKSCReJWlkJm0mOD5NMl5U
cX40aGg5b3lEKXA5fG0KelBVaWskemFoZ2RRfH43Oy0lIVJBeG5faCl5fkc3M2ZCTnhNSShQNCQt
YWhQZ19FN25MaDc7YkxRTTRtRmdBNjhnCnpiU083QFAlaXpmUTJ4bHoxa1hialozdn4/VF85PTZw
SUxlay0wdW9PYUZKNlpuXlFffmsofikwTSt3UmkyTXlQQQp6ezhkfTA3bm9KK2t4Wmt6c2tGSmhT
JGVvX0MzR01ePEVSTDY5TD12RSpYcjljRD1yOy0hbH5gfklaJilTRX1LV1QKej55XmN4SVFBbVBS
dlNrbVRIPTlJSkZmNTd5dk0/az4zbHJkWkAzUX1Ad0M+SXI2dW5EeG98IWtiJWIwZClNUkNCCnpy
fHk9O2t1Q0gyY3JsKT1tKWpaY3FGISo8OGprQSk4VEQjUVJQOUkqQHpjJUc9UFNkJUBTcWVncHk1
e2I5KmNVYgp6RGU3eXNRKW84ZForUylBSzVVNTlwIVR4YndQeChKezcrSWhhdTR0NlQwXmVGS1hz
b3A4PWx5eXdMQ2w2LWlkVVQKem9nWU1BbjNtVUBWOUF9R2BpQ35KejBAKTxXYENRYC1OPz1TRERf
cTltaUJWLXp1QTgtZTdXJURuQ3NIQC1ROFpnCnpKKTFrZHYjeiY0NDlNaW5GPX0xNEJQUmY1RFlU
UVk7MjJaSm8kaEd2NCFxTGxzYGJibWJJIVRtKk9WaTFPZ1pMVgp6R2FBOU5uR2t9UkttRnljYmp+
ZzY/YzF0TGVCbVBOKjFOcHlnZnIhU1JwT18tSWclaUx7SUl1QkI5NU9ITUJBJnwKenZLZytONERl
VFBxO3RRUDBlKVd6RnBASEAkK2d2dng8RShfR1UycV9xaz5GMGUkP0I5MTVHJjk0XiZ4ck0xITZH
CnpnWn05SDQke31SPUJLfGY8UzFFKmoqPl9kUnFZKSQzbDg8Py1ZQUtrXjJQPGEmIXsmVChSS1Zw
LSZBWTFFYSEqYgp6aD4+SURIO1p6MW9aOGFjPyopVEl4cmAtYyNYSSRHUFUlbHJPMiMkeilTRjUx
anktR204flNtTkp6ZDcldEZhJXMKelQ0Z2llN1RJKkpSTU85XiZaMXkmbFBsNih7eG5lO3ghMzUx
N3J5Nyt5Py05TnRyNlMtSjsmYGRXa1FSbVAycFRXCnpWVUU5Uz90MEZmNXxMRCt6cjBEZmIoKEtL
VD9wPG1wVj8hYXRNK2lecz1hdGw8NndiMVhzdiNLan13bCM+bFBYKAp6QCQ8ZUZgYXVtWSttIWgk
fEZPPXs5fSU2bWtCQDh0SDVaRnokNylaI3ZMUFZuNEo5WDNUMF9xN3A/VUNKd15zQT0KemNYMjt7
ZVhuYGZ4bmAlSUY4TFFVdEE5Wm8lbVJAYS1NXiNgY0pgKS0oMW0te00wNnxoU35lKXxxVkUtNCVT
TjI7CnpVJmFUIWR6RHFNPD9XP0ElMVRHNmZCWitkTCF3dUVganwzaSQxK148ZVBiVCthKXkockE7
Xm9vey0lVjwkVWQ+cwp3TnBmMWRgQD8/MT44bUpYLU9xRUI3Yk1CaHZ6TFo9M19XNHwralMqfG1l
NjVQWThXSXMkfTQ5NnxEIXxFbEs9biEKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdp
dCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvbWlzc2luZ1RvcEZyYW1l
VW5pcXVlUmVkaXJlY3RTYW1lU2l0ZVN0cmljdFRhYmxlU2NoZW1hLmRiLXNobSBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvbWlzc2luZ1RvcEZyYW1lVW5pcXVlUmVkaXJl
Y3RTYW1lU2l0ZVN0cmljdFRhYmxlU2NoZW1hLmRiLXNobQpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mZTlhYzI4NDVl
Y2E2ZmU2ZGE4YTYzY2QwOTZkOWNmOWUyNGVjZTEwCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAz
Mjc2OAp6Y21lSXVBcjYycjM8WGVUU2F5UzYwPVo9Ty0wfGtQMiZmdUAhNkR1XnppRkNeN3c1NU1O
KTloUVlWM1drNzlhMlAKeiklOGczSDMwJHkyb05BWmZCKnBrMVBCbHlLITUtTjB0NSZVQVY3Y3Mw
UmpYRjVGa0srMDA5Qzcyb05BWmZCKnBrCnoxUEJseUshNS1OMHQ1JlVBVjdjczBSalhGNUZrSysw
MDlDNzJvTkFaZkIqcGsxUEJseUshNS1OMHQ1JlVBVjdjcwp3MFJqWEY1RmtLKzAwOUM3Mm9OQVpm
QipwazFQQmx5SyE1LU4wdDUmVUFWN2NzMFJqWEY1Y3E/QDRkazVgUXZkKH0KCmxpdGVyYWwgMApI
Y21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Q29jb2EvbWlzc2luZ1RvcEZyYW1lVW5pcXVlUmVkaXJlY3RTYW1lU2l0ZVN0cmljdFRhYmxlU2No
ZW1hLmRiLXdhbCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvbWlzc2lu
Z1RvcEZyYW1lVW5pcXVlUmVkaXJlY3RTYW1lU2l0ZVN0cmljdFRhYmxlU2NoZW1hLmRiLXdhbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5lNjlkZTI5YmIyZDFkNjQzNGI4YjI5YWU3NzVhZDhjMmU0OGM1MzkxCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>397863</attachid>
            <date>2020-04-28 11:54:47 -0700</date>
            <delta_ts>2020-04-28 12:40:54 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-211004-20200428115446.patch</filename>
            <type>text/plain</type>
            <size>42416</size>
            <attacher name="Kate Cheney">katherine_cheney</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwODMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDM3NWUyYWRjY2ZlNWFlMjdh
ZTM3MGFiOGRlZWQ2ZDJkMzI3OGU4ZDkuLjI0MjI0N2I1OGI5NjM0MWRiZTg0YmVlMDhiMDhmYmE2
YTdlOGFjZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjQgQEAKKzIwMjAtMDQtMjggIEthdGUgQ2hl
bmV5ICA8a2F0aGVyaW5lX2NoZW5leUBhcHBsZS5jb20+CisKKyAgICAgICAgQ3JlYXRlIGEgbWVj
aGFuaXNtIHRvIGFkZCBtaXNzaW5nIElUUCBEYXRhYmFzZSB0YWJsZXMgd2hlbiB0aGUgc2NoZW1h
IGlzIHVwZGF0ZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIxMTAwNAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjIyNjExODc+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgSm9obiBXaWxhbmRlci4KKworICAgICAgICBUaGlzIHBhdGNoIHVwZGF0ZXMg
dGhlIElUUCBkYXRhYmFzZSB0byBiZXR0ZXIgaGFuZGxlIGFkZGVkIHRhYmxlcyB0bworICAgICAg
ICB0aGUgc2NoZW1hLiBDdXJyZW50bHkgdGhlIGRhdGFiYXNlIHN0b3JlIGRlbGV0ZXMgYW5kIHJl
LWNyZWF0ZXMgdGhlCisgICAgICAgIGRhdGFiYXNlIHdoZW4gYW55IHNjaGVtYSBjaGFuZ2UgaXMg
ZW5jb3VudGVyZWQuIFRoaXMgaXMgc2ltcGxlIGJ1dAorICAgICAgICB3b3VsZCByZXN1bHQgaW4g
SVRQIGRhdGEgbG9zcyBkdXJpbmcgc2NoZW1hIHVwZGF0ZXMsIHNvIHRoaXMgcGF0Y2gKKyAgICAg
ICAgc2VhcmNoZXMgdGhlIHNjaGVtYSBmb3IgbWlzc2luZyB0YWJsZXMgYW5kIGFkZHMgYW55IGl0
IGZpbmRzLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxv
YWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OmNyZWF0ZVRh
YmxlUXVlcmllcyk6CisgICAgICAgIENvbnZlcnQgdGhlIHRhYmxlcyBhcnJheSB0byBhIG1hcHBp
bmcgb2YgdGFibGUgbmFtZXMgdG8gdGhlaXIKKyAgICAgICAgcmVzcGVjdGl2ZSBDUkVBVEUgVEFC
TEUgcXVlcmllcyBzbyB3ZSBjYW4gYWRkIG1pc3NpbmcgdGFibGVzIG9uIHRoZQorICAgICAgICBm
bHkuCisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3Jl
OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZSk6CisgICAgICAgIChXZWJLaXQ6
OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpvcGVuSVRQRGF0YWJhc2UpOgor
ICAgICAgICBSZW1vdmUgY2FsbCB0byBjcmVhdGVTY2hlbWEoKSBmcm9tIHRoZSBjb25zdHJ1Y3Rv
ci4gSXQgbWFrZXMgbW9yZQorICAgICAgICBzZW5zZSB0byBiYXNlIHRoaXMgb24gd2hldGhlciB0
aGUgZmlsZSBpcyBuZXcgYXMgb3Bwb3NlZCB0byB3aGV0aGVyCisgICAgICAgIG9uZSB0YWJsZSBl
eGlzdHMuCisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0
b3JlOjpjaGVja0Zvck1pc3NpbmdUYWJsZXNJblNjaGVtYSk6CisgICAgICAgIChXZWJLaXQ6OlJl
c291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjptaWdyYXRlRGF0YVRvTmV3VGFibGVz
SWZOZWNlc3NhcnkpOgorICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0
YWJhc2VTdG9yZTo6YWRkTWlzc2luZ1RhYmxlc0lmTmVjZXNzYXJ5KToKKyAgICAgICAgQ2hlY2tz
IGZvciBtaXNzaW5nIHRhYmxlcyBhbmQgYWRkcyB0aGVtIHVzaW5nIGEgYmVzdC1lZmZvcnQgYXBw
cm9hY2guCisgICAgICAgIENhbGwgY3JlYXRlVW5pcXVlSW5kaWNlcygpIHRvIGNhbGwgYWxsIENS
RUFURSBVTklRVUUgSU5ERVggcXVlcmllcywKKyAgICAgICAgZXZlbiB0aG91Z2ggd2UgbWF5IG5v
dCBuZWVkIHRoZW0gYWxsLiBJdCBpcyBtdWNoIHNpbXBsZXIgdGhhbiB0bworICAgICAgICBhc3Nv
Y2lhdGUgZWFjaCBxdWVyeSB3aXRoIGl0cyB0YWJsZSwgYW5kIGl0IGRvZXNuJ3QgaHVydCB0byBj
YWxsCisgICAgICAgIGFnYWluLgorCisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRp
c3RpY3NEYXRhYmFzZVN0b3JlOjpvcGVuQW5kVXBkYXRlU2NoZW1hSWZOZWNlc3NhcnkpOgorICAg
ICAgICBBZGQgbWlzc2luZyB0YWJsZXMgaW5zdGVhZCBvZiBkZWxldGluZyB0aGUgb2xkIGRhdGFi
YXNlIGZpbGUuIENoYW5nZWQKKyAgICAgICAgdGhlIGZ1bmN0aW9uIG5hbWUgdG8gcmVmbGVjdCB0
aGlzLiBEZWxldGVkIGEgRklYTUUgd2hpY2ggdGhpcyBwYXRjaAorICAgICAgICBhZGRyZXNzZXMg
YnV0IGFkZGVkIGEgbmV3IEZJWE1FIGZvciBtaWdyYXRpbmcgZGF0YSB3aGVuIGFkZGluZyBuZXcK
KyAgICAgICAgY29sdW1ucywgd2hpY2ggdGhpcyBwYXRjaCBkb2VzIG5vdCBhZGRyZXNzLgorICAg
ICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6aXNDb3Jy
ZWN0VGFibGVTY2hlbWEpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6b3BlbkFuZERyb3BPbGREYXRhYmFzZUlmTmVjZXNzYXJ5
KTogRGVsZXRlZC4KKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNl
TG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mv
Q2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnN0YXRpc3RpY3NEYXRhYmFz
ZUhhc0FsbFRhYmxlcyk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpzdGF0
aXN0aWNzRGF0YWJhc2VIYXNBbGxUYWJsZXMpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05l
dHdvcmtQcm9jZXNzLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3Mu
bWVzc2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRh
U3RvcmUubW06CisgICAgICAgICgtW1dLV2Vic2l0ZURhdGFTdG9yZSBfc3RhdGlzdGljc0RhdGFi
YXNlSGFzQWxsVGFibGVzOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJz
aXRlRGF0YVN0b3JlUHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdv
cmtQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5
OjpzdGF0aXN0aWNzRGF0YWJhc2VIYXNBbGxUYWJsZXMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9O
ZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vic2l0
ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRh
U3RvcmU6OnN0YXRpc3RpY3NEYXRhYmFzZUhhc0FsbFRhYmxlcyk6CisgICAgICAgICogVUlQcm9j
ZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaDoKKyAgICAgICAgQWRkZWQgYW4gU1BJ
IGNhbGwgdG8gdGVzdCB0aGF0IHRoZSBkYXRhYmFzZSBzY2hlbWEgaW5jbHVkZXMgYWxsCisgICAg
ICAgIHRhYmxlcy4gVGhpcyB0ZXN0cyB0aGUgZGF0YWJhc2UgaXMgbm90IGRyb3BwZWQgd2hlbiBh
IG5ldworICAgICAgICB0YWJsZSBpcyBhZGRlZCB1cG9uIG9wZW5pbmcgdGhlIGRhdGFiYXNlLgor
CiAyMDIwLTA0LTI4ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAg
IFtNYWNdIEFkb3B0IGtNVFN1cHBvcnROb3RpZmljYXRpb25fU2hvdWxkUGxheUhEUlZpZGVvQ2hh
bmdlZCBub3RpZmljYXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5jcHAgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlz
dGljc0RhdGFiYXNlU3RvcmUuY3BwCmluZGV4IDI5NmE5YTJjMDgyYjZkOGFkYzQ3MGFhMjZmOTk3
MWQzNWVkYWUzOTUuLjQ2MjgwMjg1NzlhNGY0MTQ2MDg3YjU2MDVhMjdkYTZiNWIyN2YyZWYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3Jl
LmNwcApAQCAtMTQ2LDIyICsxNDYsNiBAQCBjb25zdGV4cHIgYXV0byBvYnNlcnZlZERvbWFpbnNF
eGlzdHNRdWVyeSA9ICJTRUxFQ1QgRVhJU1RTIChTRUxFQ1QgKiBGUk9NIE9ic2VydgogLy8gREVM
RVRFIFF1ZXJpZXMKIGNvbnN0ZXhwciBhdXRvIHJlbW92ZUFsbERhdGFRdWVyeSA9ICJERUxFVEUg
RlJPTSBPYnNlcnZlZERvbWFpbnMgV0hFUkUgZG9tYWluSUQgPSA/Il9zOwogCi1jb25zdCBjaGFy
KiB0YWJsZXNbXSA9IHsKLSAgICAiT2JzZXJ2ZWREb21haW5zIiwKLSAgICAiVG9wTGV2ZWxEb21h
aW5zIiwKLSAgICAiU3RvcmFnZUFjY2Vzc1VuZGVyVG9wRnJhbWVEb21haW5zIiwKLSAgICAiVG9w
RnJhbWVVbmlxdWVSZWRpcmVjdHNUbyIsCi0gICAgIlRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzVG9T
aW5jZVNhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnQiLAotICAgICJUb3BGcmFtZVVuaXF1ZVJlZGly
ZWN0c0Zyb20iLAotICAgICJUb3BGcmFtZUxpbmtEZWNvcmF0aW9uc0Zyb20iLAotICAgICJUb3BG
cmFtZUxvYWRlZFRoaXJkUGFydHlTY3JpcHRzIiwKLSAgICAiU3ViZnJhbWVVbmRlclRvcEZyYW1l
RG9tYWlucyIsCi0gICAgIlN1YnJlc291cmNlVW5kZXJUb3BGcmFtZURvbWFpbnMiLAotICAgICJT
dWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c1RvIiwKLSAgICAiU3VicmVzb3VyY2VVbmlxdWVSZWRp
cmVjdHNGcm9tIgotfTsKLQotLy8gQ1JFQVRFIFRBQkxFIFF1ZXJpZXMKIGNvbnN0ZXhwciBhdXRv
IGNyZWF0ZU9ic2VydmVkRG9tYWluID0gIkNSRUFURSBUQUJMRSBPYnNlcnZlZERvbWFpbnMgKCIK
ICAgICAiZG9tYWluSUQgSU5URUdFUiBQUklNQVJZIEtFWSwgcmVnaXN0cmFibGVEb21haW4gVEVY
VCBOT1QgTlVMTCBVTklRVUUgT04gQ09ORkxJQ1QgRkFJTCwgbGFzdFNlZW4gUkVBTCBOT1QgTlVM
TCwgIgogICAgICJoYWRVc2VySW50ZXJhY3Rpb24gSU5URUdFUiBOT1QgTlVMTCwgbW9zdFJlY2Vu
dFVzZXJJbnRlcmFjdGlvblRpbWUgUkVBTCBOT1QgTlVMTCwgZ3JhbmRmYXRoZXJlZCBJTlRFR0VS
IE5PVCBOVUxMLCAiCkBAIC0yNjcsNiArMjUxLDI3IEBAIHN0YXRpYyBib29sIG5lZWRzTmV3Q3Jl
YXRlVGFibGVTY2hlbWEoY29uc3QgU3RyaW5nJiBzY2hlbWEpCiAgICAgcmV0dXJuIHNjaGVtYS5j
b250YWlucygiUkVGRVJFTkNFUyBUb3BMZXZlbERvbWFpbnMiKTsKIH0KIAorc3RhdGljIGNvbnN0
IEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+JiBjcmVhdGVUYWJsZVF1ZXJpZXMoKQoreworICAgIHN0
YXRpYyBhdXRvIGNyZWF0ZVRhYmxlUXVlcmllcyA9IG1ha2VOZXZlckRlc3Ryb3llZChIYXNoTWFw
PFN0cmluZywgU3RyaW5nPiB7CisgICAgICAgIHsgIk9ic2VydmVkRG9tYWlucyJfcywgY3JlYXRl
T2JzZXJ2ZWREb21haW59LAorICAgICAgICB7ICJUb3BMZXZlbERvbWFpbnMiX3MsIGNyZWF0ZVRv
cExldmVsRG9tYWluc30sCisgICAgICAgIHsgIlN0b3JhZ2VBY2Nlc3NVbmRlclRvcEZyYW1lRG9t
YWlucyJfcywgY3JlYXRlU3RvcmFnZUFjY2Vzc1VuZGVyVG9wRnJhbWVEb21haW5zfSwKKyAgICAg
ICAgeyAiVG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNUbyJfcywgY3JlYXRlVG9wRnJhbWVVbmlxdWVS
ZWRpcmVjdHNUb30sCisgICAgICAgIHsgIlRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzVG9TaW5jZVNh
bWVTaXRlU3RyaWN0RW5mb3JjZW1lbnQiX3MsIGNyZWF0ZVRvcEZyYW1lVW5pcXVlUmVkaXJlY3Rz
VG9TaW5jZVNhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnR9LAorICAgICAgICB7ICJUb3BGcmFtZVVu
aXF1ZVJlZGlyZWN0c0Zyb20iX3MsIGNyZWF0ZVRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzRnJvbX0s
CisgICAgICAgIHsgIlRvcEZyYW1lTGlua0RlY29yYXRpb25zRnJvbSJfcywgY3JlYXRlVG9wRnJh
bWVMaW5rRGVjb3JhdGlvbnNGcm9tfSwKKyAgICAgICAgeyAiVG9wRnJhbWVMb2FkZWRUaGlyZFBh
cnR5U2NyaXB0cyJfcywgY3JlYXRlVG9wRnJhbWVMb2FkZWRUaGlyZFBhcnR5U2NyaXB0c30sCisg
ICAgICAgIHsgIlN1YmZyYW1lVW5kZXJUb3BGcmFtZURvbWFpbnMiX3MsIGNyZWF0ZVN1YmZyYW1l
VW5kZXJUb3BGcmFtZURvbWFpbnN9LAorICAgICAgICB7ICJTdWJyZXNvdXJjZVVuZGVyVG9wRnJh
bWVEb21haW5zIl9zLCBjcmVhdGVTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVEb21haW5zfSwKKyAg
ICAgICAgeyAiU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNUbyJfcywgY3JlYXRlU3VicmVzb3Vy
Y2VVbmlxdWVSZWRpcmVjdHNUb30sCisgICAgICAgIHsgIlN1YnJlc291cmNlVW5pcXVlUmVkaXJl
Y3RzRnJvbSJfcywgY3JlYXRlU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNGcm9tfQorICAgIH0p
OworICAgIAorICAgIHJldHVybiBjcmVhdGVUYWJsZVF1ZXJpZXM7Cit9CisKKwogUmVzb3VyY2VM
b2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFz
ZVN0b3JlKFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZSYgc3RvcmUsIFdvcmtRdWV1ZSYg
d29ya1F1ZXVlLCBTaG91bGRJbmNsdWRlTG9jYWxob3N0IHNob3VsZEluY2x1ZGVMb2NhbGhvc3Qs
IGNvbnN0IFN0cmluZyYgc3RvcmFnZURpcmVjdG9yeVBhdGgsIFBBTDo6U2Vzc2lvbklEIHNlc3Np
b25JRCkKICAgICA6IFJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZShzdG9yZSwgd29ya1F1ZXVl
LCBzaG91bGRJbmNsdWRlTG9jYWxob3N0KQogICAgICwgbV9zdG9yYWdlRGlyZWN0b3J5UGF0aChz
dG9yYWdlRGlyZWN0b3J5UGF0aCArICIvb2JzZXJ2YXRpb25zLmRiIikKQEAgLTMxMiwxOSArMzE3
LDExIEBAIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzRGF0YWJhc2VTdG9yZShXZWJSZXNvCiB7CiAgICAgQVNTRVJUKCFSdW5Mb29wOjpp
c01haW4oKSk7CiAKLSAgICBvcGVuQW5kRHJvcE9sZERhdGFiYXNlSWZOZWNlc3NhcnkoKTsKKyAg
ICBvcGVuQW5kVXBkYXRlU2NoZW1hSWZOZWNlc3NhcnkoKTsKICAgICBlbmFibGVGb3JlaWduS2V5
cygpOwogCiAgICAgLy8gU2luY2Ugd2UgYXJlIHVzaW5nIGEgd29ya2VyUXVldWUsIHRoZSBzZXF1
ZW50aWFsIGRpc3BhdGNoIGJsb2NrcyBtYXkgYmUgY2FsbGVkIGJ5IGRpZmZlcmVudCB0aHJlYWRz
LgogICAgIG1fZGF0YWJhc2UuZGlzYWJsZVRocmVhZGluZ0NoZWNrcygpOwotCi0gICAgaWYgKCFt
X2RhdGFiYXNlLnRhYmxlRXhpc3RzKCJPYnNlcnZlZERvbWFpbnMiX3MpKSB7Ci0gICAgICAgIGlm
ICghY3JlYXRlU2NoZW1hKCkpIHsKLSAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE5ldHdv
cmssICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpjcmVhdGVTY2hl
bWEgZmFpbGVkLCBlcnJvciBtZXNzYWdlOiAlIiBQVUJMSUNfTE9HX1NUUklORyAiLCBkYXRhYmFz
ZSBwYXRoOiAlIiBQVUJMSUNfTE9HX1NUUklORywgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JN
c2coKSwgbV9zdG9yYWdlRGlyZWN0b3J5UGF0aC51dGY4KCkuZGF0YSgpKTsKLSAgICAgICAgICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0g
ICAgfQogICAgIAogICAgIGlmICghbV9kYXRhYmFzZS50dXJuT25JbmNyZW1lbnRhbEF1dG9WYWN1
dW0oKSkKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTmV0d29yaywgIiVwIC0gUmVzb3VyY2VM
b2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnR1cm5PbkluY3JlbWVudGFsQXV0b1ZhY3V1bSBm
YWlsZWQsIGVycm9yIG1lc3NhZ2U6ICUiIFBVQkxJQ19MT0dfU1RSSU5HLCB0aGlzLCBtX2RhdGFi
YXNlLmxhc3RFcnJvck1zZygpKTsKQEAgLTM1Miw2ICszNDksMTQgQEAgdm9pZCBSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6b3BlbklUUERhdGFiYXNlKCkKICAgICAgICAgUkVM
RUFTRV9MT0dfRVJST1IoTmV0d29yaywgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFi
YXNlU3RvcmU6Om9wZW4gZmFpbGVkLCBlcnJvciBtZXNzYWdlOiAlIiBQVUJMSUNfTE9HX1NUUklO
RyAiLCBkYXRhYmFzZSBwYXRoOiAlIiBQVUJMSUNfTE9HX1NUUklORywgdGhpcywgbV9kYXRhYmFz
ZS5sYXN0RXJyb3JNc2coKSwgbV9zdG9yYWdlRGlyZWN0b3J5UGF0aC51dGY4KCkuZGF0YSgpKTsK
ICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgfQorICAgIAorICAgIGlmIChtX2lz
TmV3UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlRmlsZSkgeworICAgICAgICBpZiAoIWNy
ZWF0ZVNjaGVtYSgpKSB7CisgICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihOZXR3b3JrLCAi
JXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Y3JlYXRlU2NoZW1hIGZh
aWxlZCwgZXJyb3IgbWVzc2FnZTogJSIgUFVCTElDX0xPR19TVFJJTkcgIiwgZGF0YWJhc2UgcGF0
aDogJSIgUFVCTElDX0xPR19TVFJJTkcsIHRoaXMsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCks
IG1fc3RvcmFnZURpcmVjdG9yeVBhdGgudXRmOCgpLmRhdGEoKSk7CisgICAgICAgICAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIH0K
IH0KIAogc3RhdGljIHZvaWQgcmVzZXRTdGF0ZW1lbnQoU1FMaXRlU3RhdGVtZW50JiBzdGF0ZW1l
bnQpCkBAIC0zNjAsMjcgKzM2NSwzMCBAQCBzdGF0aWMgdm9pZCByZXNldFN0YXRlbWVudChTUUxp
dGVTdGF0ZW1lbnQmIHN0YXRlbWVudCkKICAgICBBU1NFUlRfVU5VU0VEKHJlc2V0UmVzdWx0LCBy
ZXNldFJlc3VsdCA9PSBTUUxJVEVfT0spOwogfQogCi1ib29sIFJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NEYXRhYmFzZVN0b3JlOjppc0NvcnJlY3RUYWJsZVNjaGVtYSgpCitPcHRpb25hbDxWZWN0b3I8
U3RyaW5nPj4gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmNoZWNrRm9yTWlz
c2luZ1RhYmxlc0luU2NoZW1hKCkKIHsKKyAgICBWZWN0b3I8U3RyaW5nPiBtaXNzaW5nVGFibGVz
OwogICAgIFNRTGl0ZVN0YXRlbWVudCBzdGF0ZW1lbnQobV9kYXRhYmFzZSwgIlNFTEVDVCAxIGZy
b20gc3FsaXRlX21hc3RlciBXSEVSRSB0eXBlPSd0YWJsZScgYW5kIHRibF9uYW1lPT8iKTsKICAg
ICBpZiAoc3RhdGVtZW50LnByZXBhcmUoKSAhPSBTUUxJVEVfT0spIHsKLSAgICAgICAgUkVMRUFT
RV9MT0dfRVJST1IoTmV0d29yaywgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNl
U3RvcmU6OmlzQ29ycmVjdFRhYmxlU2NoZW1hIGZhaWxlZCB0byBwcmVwYXJlLCBlcnJvciBtZXNz
YWdlOiAlIiBQVUJMSUNfTE9HX1NUUklORywgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2co
KSk7Ci0gICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTmV0
d29yaywgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmNoZWNrRm9y
TWlzc2luZ1RhYmxlc0luU2NoZW1hIGZhaWxlZCB0byBwcmVwYXJlLCBlcnJvciBtZXNzYWdlOiAl
IiBQVUJMSUNfTE9HX1NUUklORywgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7Cisg
ICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAgICAgfQogCi0gICAgYm9vbCBoYXNBbGxUYWJs
ZXMgPSB0cnVlOwotICAgIGZvciAoYXV0byB0YWJsZSA6IHRhYmxlcykgeworICAgIGZvciAoYXV0
byYgdGFibGUgOiBjcmVhdGVUYWJsZVF1ZXJpZXMoKS5rZXlzKCkpIHsKICAgICAgICAgaWYgKHN0
YXRlbWVudC5iaW5kVGV4dCgxLCB0YWJsZSkgIT0gU1FMSVRFX09LKSB7Ci0gICAgICAgICAgICBS
RUxFQVNFX0xPR19FUlJPUihOZXR3b3JrLCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0
YWJhc2VTdG9yZTo6aXNDb3JyZWN0VGFibGVTY2hlbWEgZmFpbGVkIHRvIGJpbmQsIGVycm9yIG1l
c3NhZ2U6ICUiIFBVQkxJQ19MT0dfU1RSSU5HLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1z
ZygpKTsKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIFJFTEVBU0VfTE9H
X0VSUk9SKE5ldHdvcmssICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3Jl
OjpjaGVja0Zvck1pc3NpbmdUYWJsZXNJblNjaGVtYSBmYWlsZWQgdG8gYmluZCwgZXJyb3IgbWVz
c2FnZTogJSIgUFVCTElDX0xPR19TVFJJTkcsIHRoaXMsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNn
KCkpOworICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKICAgICAgICAgfQogICAgICAg
ICBpZiAoc3RhdGVtZW50LnN0ZXAoKSAhPSBTUUxJVEVfUk9XKSB7Ci0gICAgICAgICAgICBSRUxF
QVNFX0xPR19FUlJPUihOZXR3b3JrLCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJh
c2VTdG9yZTo6aXNDb3JyZWN0VGFibGVTY2hlbWEgc2NoZW1hIGlzIG1pc3NpbmcgdGFibGU6ICVz
IiwgdGhpcywgdGFibGUpOwotICAgICAgICAgICAgaGFzQWxsVGFibGVzID0gZmFsc2U7CisgICAg
ICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihOZXR3b3JrLCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRGF0YWJhc2VTdG9yZTo6Y2hlY2tGb3JNaXNzaW5nVGFibGVzSW5TY2hlbWEgc2NoZW1h
IGlzIG1pc3NpbmcgdGFibGU6ICVzIiwgdGhpcywgdGFibGUuYXNjaWkoKS5kYXRhKCkpOworICAg
ICAgICAgICAgbWlzc2luZ1RhYmxlcy5hcHBlbmQoU3RyaW5nKHRhYmxlKSk7CiAgICAgICAgIH0K
ICAgICAgICAgcmVzZXRTdGF0ZW1lbnQoc3RhdGVtZW50KTsKICAgICB9Ci0gICAgcmV0dXJuIGhh
c0FsbFRhYmxlczsKKyAgICBpZiAobWlzc2luZ1RhYmxlcy5pc0VtcHR5KCkpCisgICAgICAgIHJl
dHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICByZXR1cm4gbWlzc2luZ1RhYmxlczsKIH0KIAogdm9p
ZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6ZW5hYmxlRm9yZWlnbktleXMo
KQpAQCAtNDI0LDcgKzQzMiw3IEBAIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNl
U3RvcmU6Om1pZ3JhdGVEYXRhVG9OZXdUYWJsZXNJZk5lY2Vzc2FyeSgpCiAgICAgU1FMaXRlVHJh
bnNhY3Rpb24gdHJhbnNhY3Rpb24obV9kYXRhYmFzZSk7CiAgICAgdHJhbnNhY3Rpb24uYmVnaW4o
KTsKIAotICAgIGZvciAoYXV0byYgdGFibGUgOiB0YWJsZXMpIHsKKyAgICBmb3IgKGF1dG8mIHRh
YmxlIDogY3JlYXRlVGFibGVRdWVyaWVzKCkua2V5cygpKSB7CiAgICAgICAgIGF1dG8gcXVlcnkg
PSBtYWtlU3RyaW5nKCJBTFRFUiBUQUJMRSAiLCB0YWJsZSwgIiBSRU5BTUUgVE8gXyIsIHRhYmxl
KTsKICAgICAgICAgU1FMaXRlU3RhdGVtZW50IGFsdGVyVGFibGUobV9kYXRhYmFzZSwgcXVlcnkp
OwogICAgICAgICBpZiAoYWx0ZXJUYWJsZS5wcmVwYXJlKCkgIT0gU1FMSVRFX09LIHx8IGFsdGVy
VGFibGUuc3RlcCgpICE9IFNRTElURV9ET05FKSB7CkBAIC00NDAsNyArNDQ4LDcgQEAgdm9pZCBS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6bWlncmF0ZURhdGFUb05ld1RhYmxl
c0lmTmVjZXNzYXJ5KCkKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGZvciAoYXV0byYg
dGFibGUgOiB0YWJsZXMpIHsKKyAgICBmb3IgKGF1dG8mIHRhYmxlIDogY3JlYXRlVGFibGVRdWVy
aWVzKCkua2V5cygpKSB7CiAgICAgICAgIGF1dG8gcXVlcnkgPSBtYWtlU3RyaW5nKCJJTlNFUlQg
SU5UTyAiLCB0YWJsZSwgIiBTRUxFQ1QgKiBGUk9NIF8iLCB0YWJsZSk7CiAgICAgICAgIFNRTGl0
ZVN0YXRlbWVudCBtaWdyYXRlVGFibGVEYXRhKG1fZGF0YWJhc2UsIHF1ZXJ5KTsKICAgICAgICAg
aWYgKG1pZ3JhdGVUYWJsZURhdGEucHJlcGFyZSgpICE9IFNRTElURV9PSyB8fCBtaWdyYXRlVGFi
bGVEYXRhLnN0ZXAoKSAhPSBTUUxJVEVfRE9ORSkgewpAQCAtNDY3LDE3ICs0NzUsMjkgQEAgdm9p
ZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6bWlncmF0ZURhdGFUb05ld1Rh
Ymxlc0lmTmVjZXNzYXJ5KCkKICAgICB9CiB9CiAKLXZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c0RhdGFiYXNlU3RvcmU6Om9wZW5BbmREcm9wT2xkRGF0YWJhc2VJZk5lY2Vzc2FyeSgpCit2b2lk
IFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjphZGRNaXNzaW5nVGFibGVzSWZO
ZWNlc3NhcnkoKQogewotICAgIG9wZW5JVFBEYXRhYmFzZSgpOworICAgIGF1dG8gbWlzc2luZ1Rh
YmxlcyA9IGNoZWNrRm9yTWlzc2luZ1RhYmxlc0luU2NoZW1hKCk7CisgICAgaWYgKCFtaXNzaW5n
VGFibGVzKQorICAgICAgICByZXR1cm47CiAKLSAgICBpZiAoIWlzQ29ycmVjdFRhYmxlU2NoZW1h
KCkpIHsKLSAgICAgICAgbV9kYXRhYmFzZS5jbG9zZSgpOwotICAgICAgICAvLyBGSVhNRTogTWln
cmF0ZSBleGlzdGluZyBkYXRhIHRvIG5ldyBkYXRhYmFzZSBmaWxlIGluc3RlYWQgb2YgZGVsZXRp
bmcgaXQgKDIwNDQ4MikuCi0gICAgICAgIEZpbGVTeXN0ZW06OmRlbGV0ZUZpbGUobV9zdG9yYWdl
RGlyZWN0b3J5UGF0aCk7Ci0gICAgICAgIG9wZW5JVFBEYXRhYmFzZSgpOworICAgIGZvciAoYXV0
byYgdGFibGUgOiAqbWlzc2luZ1RhYmxlcykgeworICAgICAgICBhdXRvIGNyZWF0ZVRhYmxlUXVl
cnkgPSBjcmVhdGVUYWJsZVF1ZXJpZXMoKS5nZXQodGFibGUpOworICAgICAgICBpZiAoIW1fZGF0
YWJhc2UuZXhlY3V0ZUNvbW1hbmQoY3JlYXRlVGFibGVRdWVyeSkpCisgICAgICAgICAgICBSRUxF
QVNFX0xPR19FUlJPUihOZXR3b3JrLCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJh
c2VTdG9yZTo6YWRkTWlzc2luZ1RhYmxlcyBmYWlsZWQgdG8gZXhlY3V0ZSwgZXJyb3IgbWVzc2Fn
ZTogJSIgUFVCTElDX0xPR19TVFJJTkcsIHRoaXMsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkp
OworICAgIH0KKworICAgIGlmICghY3JlYXRlVW5pcXVlSW5kaWNlcygpKSB7CisgICAgICAgIFJF
TEVBU0VfTE9HX0VSUk9SKE5ldHdvcmssICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRh
YmFzZVN0b3JlOjphZGRNaXNzaW5nVGFibGVzIGZhaWxlZCB0byBjcmVhdGUgdW5pcXVlIGluZGlj
ZXMsIGVycm9yIG1lc3NhZ2U6ICV7cHJpdmF0ZX1zIiwgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJy
b3JNc2coKSk7CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICByZXR1cm47
CiAgICAgfQorfQorCit2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpv
cGVuQW5kVXBkYXRlU2NoZW1hSWZOZWNlc3NhcnkoKQoreworICAgIG9wZW5JVFBEYXRhYmFzZSgp
OworICAgIGFkZE1pc3NpbmdUYWJsZXNJZk5lY2Vzc2FyeSgpOwogCiAgICAgU3RyaW5nIGN1cnJl
bnRTY2hlbWE7CiAgICAgewpAQCAtNTAzLDcgKzUyMyw4IEBAIHZvaWQgUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc0RhdGFiYXNlU3RvcmU6Om9wZW5BbmREcm9wT2xkRGF0YWJhc2VJZk5lY2Vzc2FyeSgp
CiAKICAgICBBU1NFUlQoIWN1cnJlbnRTY2hlbWEuaXNFbXB0eSgpKTsKIAotICAgIC8vIElmIHRo
ZSBzY2hlbWEgaW4gdGhlIFJlc291cmNlTG9hZFN0YXRpc3RpY3MgZGlyZWN0b3J5IGlzIG5vdCB0
aGUgY3VycmVudCBzY2hlbWEsIGRlbGV0ZSB0aGUgZGF0YWJhc2UgZmlsZS4KKyAgICAvLyBJZiB0
aGUgT2JzZXJ2ZWREb21haW5zIHNjaGVtYSBpbiB0aGUgUmVzb3VyY2VMb2FkU3RhdGlzdGljcyBk
aXJlY3RvcnkgaXMgbm90IHRoZSBjdXJyZW50IHNjaGVtYSwgZGVsZXRlIHRoZSBkYXRhYmFzZSBm
aWxlLgorICAgIC8vIEZJWE1FOiBNaWdyYXRlIG9sZCBPYnNlcnZlZERvbWFpbnMgZGF0YSB0byBu
ZXcgdGFibGUgc2NoZW1hLgogICAgIGlmIChjdXJyZW50U2NoZW1hICE9IE9ic2VydmVkRG9tYWlu
c1RhYmxlU2NoZW1hVjEoKSAmJiBjdXJyZW50U2NoZW1hICE9IE9ic2VydmVkRG9tYWluc1RhYmxl
U2NoZW1hVjFBbHRlcm5hdGUoKSkgewogICAgICAgICBtX2RhdGFiYXNlLmNsb3NlKCk7CiAgICAg
ICAgIEZpbGVTeXN0ZW06OmRlbGV0ZUZpbGUobV9zdG9yYWdlRGlyZWN0b3J5UGF0aCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VM
b2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5oCmluZGV4
IDQzMDM1ODM4MDQ4NmU2ZjA5YjE3NDcxNzI1ZTE4MjYxYWJlZjBiYjUuLmI0N2Q1MmRmMmI0YTVl
OGRlODcxNjQxMmUxYWFkNTM5MDdhZDNkOWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9y
ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5oCkBAIC0xNDAsMTYgKzE0MCwxNyBAQCBwdWJs
aWM6CiAgICAgdm9pZCBzZXRJc05ld1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZUZpbGUo
Ym9vbCBpc05ld1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZUZpbGUpIHsgbV9pc05ld1Jl
c291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZUZpbGUgPSBpc05ld1Jlc291cmNlTG9hZFN0YXRp
c3RpY3NEYXRhYmFzZUZpbGU7IH0KICAgICB2b2lkIHJlbW92ZURhdGFGb3JEb21haW4oY29uc3Qg
UmVnaXN0cmFibGVEb21haW4mKSBvdmVycmlkZTsKICAgICBib29sIGRvbWFpbklERXhpc3RzSW5E
YXRhYmFzZShpbnQpOworICAgIE9wdGlvbmFsPFZlY3RvcjxTdHJpbmc+PiBjaGVja0Zvck1pc3Np
bmdUYWJsZXNJblNjaGVtYSgpOwogCiBwcml2YXRlOgogICAgIHZvaWQgb3BlbklUUERhdGFiYXNl
KCk7Ci0gICAgYm9vbCBpc0NvcnJlY3RUYWJsZVNjaGVtYSgpOworICAgIHZvaWQgYWRkTWlzc2lu
Z1RhYmxlc0lmTmVjZXNzYXJ5KCk7CiAgICAgdm9pZCBlbmFibGVGb3JlaWduS2V5cygpOwogICAg
IGJvb2wgaXNNaWdyYXRpb25OZWNlc3NhcnkoKTsKICAgICB2b2lkIG1pZ3JhdGVEYXRhVG9OZXdU
YWJsZXNJZk5lY2Vzc2FyeSgpOwogICAgIGJvb2wgaGFzU3RvcmFnZUFjY2Vzcyhjb25zdCBUb3BG
cmFtZURvbWFpbiYsIGNvbnN0IFN1YkZyYW1lRG9tYWluJikgY29uc3Q7CiAgICAgVmVjdG9yPFdl
YlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6VGhpcmRQYXJ0eURhdGFGb3JTcGVjaWZpY0Zp
cnN0UGFydHk+IGdldFRoaXJkUGFydHlEYXRhRm9yU3BlY2lmaWNGaXJzdFBhcnR5RG9tYWlucyh1
bnNpZ25lZCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mKSBjb25zdDsKLSAgICB2b2lkIG9wZW5B
bmREcm9wT2xkRGF0YWJhc2VJZk5lY2Vzc2FyeSgpOworICAgIHZvaWQgb3BlbkFuZFVwZGF0ZVNj
aGVtYUlmTmVjZXNzYXJ5KCk7CiAgICAgU3RyaW5nIGdldERvbWFpblN0cmluZ0Zyb21Eb21haW5J
RCh1bnNpZ25lZCkgY29uc3Q7CiAgICAgU3RyaW5nIGdldFN1YlN0YXRpc3RpY1N0YXRlbWVudChj
b25zdCBTdHJpbmcmKSBjb25zdDsKICAgICB2b2lkIGFwcGVuZFN1YlN0YXRpc3RpY0xpc3QoU3Ry
aW5nQnVpbGRlciYsIGNvbnN0IFN0cmluZyYgdGFibGVOYW1lLCBjb25zdCBTdHJpbmcmIGRvbWFp
bikgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNz
aWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUu
Y3BwCmluZGV4IDA0Nzk2ZGQ3NjJiMzQxZDJjNGMwNmRjZjMwYWY2Y2I1NjZlMjUxOWUuLjc2ODI0
YzJkNjMxZjVlOTFmNWJiMWYwNzA2NmY1MDdhZmIwMzI5YjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
U3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9X
ZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwCkBAIC0zMjIsNiArMzIyLDIzIEBAIHZv
aWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpzY2hlZHVsZVN0YXRpc3RpY3NBbmRE
YXRhUmVjb3Jkc1Byb2Nlc3NpbmcoCiAgICAgfSk7CiB9CiAKK3ZvaWQgV2ViUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc1N0b3JlOjpzdGF0aXN0aWNzRGF0YWJhc2VIYXNBbGxUYWJsZXMoQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBBU1NFUlQo
UnVuTG9vcDo6aXNNYWluKCkpOworICAgIAorICAgIHBvc3RUYXNrKFt0aGlzLCBjb21wbGV0aW9u
SGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSgpIG11dGFibGUgeyAKKyAgICAg
ICAgaWYgKCFtX3N0YXRpc3RpY3NTdG9yZSB8fCAhaXM8UmVzb3VyY2VMb2FkU3RhdGlzdGljc0Rh
dGFiYXNlU3RvcmU+KCptX3N0YXRpc3RpY3NTdG9yZSkpIHsKKyAgICAgICAgICAgIGNvbXBsZXRp
b25IYW5kbGVyKGZhbHNlKTsKKyAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIGF1dG8gbWlzc2luZ1RhYmxlcyA9
IGRvd25jYXN0PFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlPigqbV9zdGF0aXN0
aWNzU3RvcmUpLmNoZWNrRm9yTWlzc2luZ1RhYmxlc0luU2NoZW1hKCk7CisgICAgICAgIHBvc3RU
YXNrUmVwbHkoW2hhc0FsbFRhYmxlcyA9IG1pc3NpbmdUYWJsZXMgPyBmYWxzZSA6IHRydWUsIGNv
bXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildICgpIG11dGFibGUg
eworICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoaGFzQWxsVGFibGVzKTsKKyAgICAgICAg
fSk7CisgICAgfSk7Cit9CisKIHZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpy
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzVXBkYXRlZChWZWN0b3I8UmVzb3VyY2VMb2FkU3RhdGlzdGlj
cz4mJiBzdGF0aXN0aWNzKQogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc1N0b3JlLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Ns
YXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmgKaW5kZXggZDU3YjU2YTg2
N2Y3NDczYTNmZDE3MzJiZTU2NTA5MWI2ODU4NjczMi4uYjU4ZWUzNWQ0YmNkYzA4NzNhMjdmMjNk
NjI1NDdiZDE3NjFkNGViNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzU3RvcmUuaApAQCAtMjQ5LDYgKzI0OSw3IEBAIHN0cnVjdCBUaGlyZFBhcnR5RGF0YSB7CiAg
ICAgdm9pZCBzY2hlZHVsZUNvb2tpZUJsb2NraW5nVXBkYXRlKENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoKT4mJik7CiAgICAgdm9pZCBzY2hlZHVsZUNvb2tpZUJsb2NraW5nVXBkYXRlRm9yRG9tYWlu
cyhjb25zdCBWZWN0b3I8UmVnaXN0cmFibGVEb21haW4+JiwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZCgpPiYmKTsKICAgICB2b2lkIHNjaGVkdWxlU3RhdGlzdGljc0FuZERhdGFSZWNvcmRzUHJvY2Vz
c2luZyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOworICAgIHZvaWQgc3RhdGlzdGljc0Rh
dGFiYXNlSGFzQWxsVGFibGVzKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwogICAg
IHZvaWQgc3VibWl0VGVsZW1ldHJ5KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAg
dm9pZCBzY2hlZHVsZUNsZWFySW5NZW1vcnlBbmRQZXJzaXN0ZW50KFNob3VsZEdyYW5kZmF0aGVy
U3RhdGlzdGljcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHNjaGVk
dWxlQ2xlYXJJbk1lbW9yeUFuZFBlcnNpc3RlbnQoV2FsbFRpbWUgbW9kaWZpZWRTaW5jZSwgU2hv
dWxkR3JhbmRmYXRoZXJTdGF0aXN0aWNzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5j
cHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAppbmRl
eCBmNGM4MWY2NzE0NDkxNDMyYTI2ZmQwYTc3MjlkM2RmZjc5YTkwNGI3Li4wOWM4M2I2N2Y4ZDI4
Y2Q2MDgwN2E2YWEzNjVmNWExNmQzYTI2NTQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcApAQCAtODI4LDYgKzgyOCwxOSBAQCB2b2lkIE5l
dHdvcmtQcm9jZXNzOjpzY2hlZHVsZVN0YXRpc3RpY3NBbmREYXRhUmVjb3Jkc1Byb2Nlc3Npbmco
UEFMOjpTZXNzaW9uSUQgcwogICAgIH0KIH0KIAordm9pZCBOZXR3b3JrUHJvY2Vzczo6c3RhdGlz
dGljc0RhdGFiYXNlSGFzQWxsVGFibGVzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBpZiAo
YXV0byogbmV0d29ya1Nlc3Npb24gPSB0aGlzLT5uZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpKSB7
CisgICAgICAgIGlmIChhdXRvKiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzID0gbmV0d29ya1Nlc3Np
b24tPnJlc291cmNlTG9hZFN0YXRpc3RpY3MoKSkKKyAgICAgICAgICAgIHJlc291cmNlTG9hZFN0
YXRpc3RpY3MtPnN0YXRpc3RpY3NEYXRhYmFzZUhhc0FsbFRhYmxlcyhXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVy
KGZhbHNlKTsKKyAgICB9IGVsc2UgeworICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAg
ICAgICAgY29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOworICAgIH0KK30KKwogdm9pZCBOZXR3b3Jr
UHJvY2Vzczo6c2V0Tm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZChQQUw6OlNl
c3Npb25JRCBzZXNzaW9uSUQsIGJvb2wgdmFsdWUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBpZiAoYXV0byogbmV0d29ya1Nlc3Npb24gPSB0
aGlzLT5uZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKaW5kZXggZGE2YWQ3YTg3OGE3YTk5MWIwNWFiNzM4
ZTNiOTA3ZGQ5OTBiZjg5YS4uYWM5ZWZjMGVmNzk4YjE0YjU1OWE5NzNiMjIyYTg0YWFlOGMyOTNh
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vz
cy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaApA
QCAtMjM3LDYgKzIzNyw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGdldFJlc291cmNlTG9hZFN0YXRp
c3RpY3NEYXRhU3VtbWFyeShQQUw6OlNlc3Npb25JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChW
ZWN0b3I8V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpUaGlyZFBhcnR5RGF0YT4mJik+
JiYpOwogICAgIHZvaWQgc2NoZWR1bGVDb29raWVCbG9ja2luZ1VwZGF0ZShQQUw6OlNlc3Npb25J
RCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHNjaGVkdWxlU3RhdGlz
dGljc0FuZERhdGFSZWNvcmRzUHJvY2Vzc2luZyhQQUw6OlNlc3Npb25JRCwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZCgpPiYmKTsKKyAgICB2b2lkIHN0YXRpc3RpY3NEYXRhYmFzZUhhc0FsbFRhYmxl
cyhQQUw6OlNlc3Npb25JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CiAgICAg
dm9pZCBzdWJtaXRUZWxlbWV0cnkoUEFMOjpTZXNzaW9uSUQsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoKT4mJik7CiAgICAgdm9pZCBzZXRDYWNoZU1heEFnZUNhcEZvclByZXZhbGVudFJlc291cmNl
cyhQQUw6OlNlc3Npb25JRCwgU2Vjb25kcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsK
ICAgICB2b2lkIHNldEdyYW5kZmF0aGVyaW5nVGltZShQQUw6OlNlc3Npb25JRCwgU2Vjb25kcywg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCmluZGV4IDVlYWJhMzdh
ZTBiYjkyMzU2NWQwMDgxMWM5NjRkNTM3ODk2NjdlMTEuLjBmMzI4OGFmYzc2ZjcyOGQyZGRmZWUy
M2U0MDk4OTkxOTc5ZjI4NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgpAQCAtMTExLDYgKzExMSw3IEBAIG1l
c3NhZ2VzIC0+IE5ldHdvcmtQcm9jZXNzIExlZ2FjeVJlY2VpdmVyIHsKICAgICBTY2hlZHVsZUNs
ZWFySW5NZW1vcnlBbmRQZXJzaXN0ZW50KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9u
YWw8V2FsbFRpbWU+IG1vZGlmaWVkU2luY2UsIGVudW06Ym9vbCBXZWJLaXQ6OlNob3VsZEdyYW5k
ZmF0aGVyU3RhdGlzdGljcyBzaG91bGRHcmFuZGZhdGhlcikgLT4gKCkgQXN5bmMKICAgICBTY2hl
ZHVsZUNvb2tpZUJsb2NraW5nVXBkYXRlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkgLT4gKCkg
QXN5bmMKICAgICBTY2hlZHVsZVN0YXRpc3RpY3NBbmREYXRhUmVjb3Jkc1Byb2Nlc3NpbmcoUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklEKSAtPiAoKSBBc3luYworICAgIFN0YXRpc3RpY3NEYXRhYmFz
ZUhhc0FsbFRhYmxlcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpIC0+IChib29sIGhhc0FsbFRh
YmxlcykgQXN5bmMKICAgICBTdWJtaXRUZWxlbWV0cnkoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklE
KSAtPiAoKSBBc3luYwogICAgIFNldENhY2hlTWF4QWdlQ2FwRm9yUHJldmFsZW50UmVzb3VyY2Vz
KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgU2Vjb25kcyBzZWNvbmRzKSAtPiAoKSBBc3luYwog
ICAgIFNldEdyYW5kZmF0aGVyZWQoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpS
ZWdpc3RyYWJsZURvbWFpbiByZXNvdXJjZURvbWFpbiwgYm9vbCBpc0dyYW5kZmF0aGVyZWQpIC0+
ICgpIEFzeW5jCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJzaXRlRGF0YVN0b3JlLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLV2Vic2l0ZURhdGFTdG9yZS5tbQppbmRleCA3M2M5OGEzNDYyNWQ4ZjU1NTI0MTQzODRlM2Nl
NmI4ZGI4NDBlOGQ4Li5mYTcyNjhkMDI4MTVjYTEyMWQxOGE3ZjY3N2Q2MzBjZTVmZWI3NTAzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0
YVN0b3JlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNp
dGVEYXRhU3RvcmUubW0KQEAgLTU2Miw2ICs1NjIsMTcgQEAgLSAodm9pZClfaXNSZWdpc3RlcmVk
QXNTdWJyZXNvdXJjZVVuZGVyRmlyc3RQYXJ0eTooTlNVUkwgKilmaXJzdFBhcnR5VVJMIHRoaXJk
UGEKICNlbmRpZgogfQogCistICh2b2lkKV9zdGF0aXN0aWNzRGF0YWJhc2VIYXNBbGxUYWJsZXM6
KHZvaWQgKF4pKEJPT0wpKWNvbXBsZXRpb25IYW5kbGVyCit7CisjaWYgRU5BQkxFKFJFU09VUkNF
X0xPQURfU1RBVElTVElDUykKKyAgICBfd2Vic2l0ZURhdGFTdG9yZS0+c3RhdGlzdGljc0RhdGFi
YXNlSGFzQWxsVGFibGVzKFtjb21wbGV0aW9uSGFuZGxlciA9IG1ha2VCbG9ja1B0cihjb21wbGV0
aW9uSGFuZGxlcildKGJvb2wgaGFzQWxsVGFibGVzKSB7CisgICAgICAgIGNvbXBsZXRpb25IYW5k
bGVyKGhhc0FsbFRhYmxlcyk7CisgICAgfSk7CisjZWxzZQorICAgIGNvbXBsZXRpb25IYW5kbGVy
KE5PKTsKKyNlbmRpZgorfQorCiAtICh2b2lkKV9wcm9jZXNzU3RhdGlzdGljc0FuZERhdGFSZWNv
cmRzOih2b2lkICheKSh2b2lkKSljb21wbGV0aW9uSGFuZGxlcgogewogI2lmIEVOQUJMRShSRVNP
VVJDRV9MT0FEX1NUQVRJU1RJQ1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZVByaXZhdGUuaAppbmRleCA2MDk1
OWU0NzM1MWIwYWVkYTJhMjI3NzA0N2NmOTg4ZWQ1OTk2MzQ2Li41NWFiZmYxZmQ0NGYwMThmMDQ5
OTc2ZDEyNmZhZjM4MDIwMjM3MTg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmVQcml2YXRlLmgKQEAgLTc3
LDYgKzc3LDcgQEAgdHlwZWRlZiBOU19PUFRJT05TKE5TVUludGVnZXIsIF9XS1dlYnNpdGVEYXRh
U3RvcmVGZXRjaE9wdGlvbnMpIHsKIC0gKHZvaWQpX2NsZWFyUmVzb3VyY2VMb2FkU3RhdGlzdGlj
czoodm9pZCAoXikodm9pZCkpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNv
cyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIC0gKHZvaWQpX2lzUmVnaXN0ZXJlZEFz
U3VicmVzb3VyY2VVbmRlckZpcnN0UGFydHk6KE5TVVJMICopZmlyc3RQYXJ0eVVSTCB0aGlyZFBh
cnR5OihOU1VSTCAqKXRoaXJkUGFydHlVUkwgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKEJP
T0wpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSks
IGlvcyhXS19JT1NfVEJBKSk7CiAtICh2b2lkKV9zZXRUaGlyZFBhcnR5Q29va2llQmxvY2tpbmdN
b2RlOihCT09MKWVuYWJsZWQgb25seU9uU2l0ZXNXaXRob3V0VXNlckludGVyYWN0aW9uOihCT09M
KW9ubHlPblNpdGVzV2l0aG91dFVzZXJJbnRlcmFjdGlvbiBjb21wbGV0aW9uSGFuZGxlcjoodm9p
ZCAoXikodm9pZCkpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19N
QUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKy0gKHZvaWQpX3N0YXRpc3RpY3NEYXRhYmFzZUhh
c0FsbFRhYmxlczoodm9pZCAoXikoQk9PTCkpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlM
QUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIC0gKHZvaWQpX3Byb2Nl
c3NTdGF0aXN0aWNzQW5kRGF0YVJlY29yZHM6KHZvaWQgKF4pKHZvaWQpKWNvbXBsZXRpb25IYW5k
bGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTUpLCBpb3MoMTMuMCkpOwogLSAodm9pZClf
YXBwQm91bmREb21haW5zOih2b2lkICheKShOU0FycmF5PE5TU3RyaW5nICo+ICopKWNvbXBsZXRp
b25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1Nf
VEJBKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0
d29ya1Byb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05l
dHdvcmtQcm9jZXNzUHJveHkuY3BwCmluZGV4IGY5YWRlNzYyYWRiMzgxNGU0OWFmOWU1OWQ1ZjRk
MWFhMjhjMjFkZmMuLjk0Y2VhOGY5Y2IxY2EwNTM0NzBhODEyMzY3ZWExOTg1ODMyMzhmZDkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQ
cm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJv
Y2Vzc1Byb3h5LmNwcApAQCAtNjI5LDYgKzYyOSwxNiBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJv
eHk6OnNjaGVkdWxlU3RhdGlzdGljc0FuZERhdGFSZWNvcmRzUHJvY2Vzc2luZyhQQUw6OlNlc3Np
bwogICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OlNjaGVk
dWxlU3RhdGlzdGljc0FuZERhdGFSZWNvcmRzUHJvY2Vzc2luZyhzZXNzaW9uSUQpLCBXVEZNb3Zl
KGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CiAKK3ZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6c3Rh
dGlzdGljc0RhdGFiYXNlSGFzQWxsVGFibGVzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBp
ZiAoIWNhblNlbmRNZXNzYWdlKCkpIHsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZmFsc2Up
OworICAgICAgICByZXR1cm47CisgICAgfQorICAgIAorICAgIHNlbmRXaXRoQXN5bmNSZXBseShN
ZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OlN0YXRpc3RpY3NEYXRhYmFzZUhhc0FsbFRhYmxlcyhz
ZXNzaW9uSUQpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Cit9CisKIHZvaWQgTmV0d29y
a1Byb2Nlc3NQcm94eTo6bG9nVXNlckludGVyYWN0aW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25J
RCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHJlc291cmNlRG9tYWluLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgaWYgKCFjYW5TZW5kTWVz
c2FnZSgpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05l
dHdvcmtQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0
d29ya1Byb2Nlc3NQcm94eS5oCmluZGV4IDRmODA1MzMzZWNjNzE4MTFiNTJiMjM4ZGIxOGQ2YWFk
YWRkMmRhNzAuLjc2NzIwN2ZlYWI0NmIxYzk3YWE5YzliMjVmMzBlYjc0YTNlYmMxMjEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94
eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQ
cm94eS5oCkBAIC0xMzEsNiArMTMxLDcgQEAgcHVibGljOgogICAgIHZvaWQgc2NoZWR1bGVTdGF0
aXN0aWNzQW5kRGF0YVJlY29yZHNQcm9jZXNzaW5nKFBBTDo6U2Vzc2lvbklELCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgc2V0TGFzdFNlZW4oUEFMOjpTZXNzaW9uSUQs
IGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiwgU2Vjb25kcywgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZCgpPiYmKTsKICAgICB2b2lkIGRvbWFpbklERXhpc3RzSW5EYXRhYmFzZShQQUw6OlNlc3Npb25J
RCwgaW50IGRvbWFpbklELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKKyAgICB2
b2lkIHN0YXRpc3RpY3NEYXRhYmFzZUhhc0FsbFRhYmxlcyhQQUw6OlNlc3Npb25JRCwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CiAgICAgdm9pZCBtZXJnZVN0YXRpc3RpY0ZvclRl
c3RpbmcoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiwgY29uc3QgVG9w
RnJhbWVEb21haW4mIHRvcEZyYW1lRG9tYWluMSwgY29uc3QgVG9wRnJhbWVEb21haW4mIHRvcEZy
YW1lRG9tYWluMiwgU2Vjb25kcyBsYXN0U2VlbiwgYm9vbCBoYWRVc2VySW50ZXJhY3Rpb24sIFNl
Y29uZHMgbW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvbiwgYm9vbCBpc0dyYW5kZmF0aGVyZWQsIGJv
b2wgaXNQcmV2YWxlbnQsIGJvb2wgaXNWZXJ5UHJldmFsZW50LCB1bnNpZ25lZCBkYXRhUmVjb3Jk
c1JlbW92ZWQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBzZXRBZ2VD
YXBGb3JDbGllbnRTaWRlQ29va2llcyhQQUw6OlNlc3Npb25JRCwgT3B0aW9uYWw8U2Vjb25kcz4s
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBzZXRDYWNoZU1heEFnZUNh
cChQQUw6OlNlc3Npb25JRCwgU2Vjb25kcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVE
YXRhU3RvcmUuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0
ZURhdGFTdG9yZS5jcHAKaW5kZXggNzczNTY2ODE4YWI4NmRlZDNmNTY4NjEzYjI1NzY1ZWYyYWZi
NTM1OS4uMjdhYjc1NGUzN2Y3ZmU5YWUyYTdiOGRmYjNmNTYxN2IzNjNjZTcwMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFT
dG9yZS5jcHAKQEAgLTE1ODMsNiArMTU4MywyMCBAQCB2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OnNj
aGVkdWxlU3RhdGlzdGljc0FuZERhdGFSZWNvcmRzUHJvY2Vzc2luZyhDb21wbGV0aW9uSGFuZAog
ICAgIH0KIH0KIAordm9pZCBXZWJzaXRlRGF0YVN0b3JlOjpzdGF0aXN0aWNzRGF0YWJhc2VIYXNB
bGxUYWJsZXMoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxl
cikKK3sKKyAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOworCisgICAgZm9yIChhdXRvJiBw
cm9jZXNzUG9vbCA6IHByb2Nlc3NQb29scygpKSB7CisgICAgICAgIGlmIChhdXRvKiBwcm9jZXNz
ID0gcHJvY2Vzc1Bvb2wtPm5ldHdvcmtQcm9jZXNzKCkpIHsKKyAgICAgICAgICAgIHByb2Nlc3Mt
PnN0YXRpc3RpY3NEYXRhYmFzZUhhc0FsbFRhYmxlcyhtX3Nlc3Npb25JRCwgV1RGTW92ZShjb21w
bGV0aW9uSGFuZGxlcikpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgfQor
CisgICAgY29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOworfQorCiB2b2lkIFdlYnNpdGVEYXRhU3Rv
cmU6OnNldExhc3RTZWVuKGNvbnN0IFVSTCYgdXJsLCBTZWNvbmRzIHNlY29uZHMsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBpZiAodXJsLnBy
b3RvY29sSXNBYm91dCgpIHx8IHVybC5pc0VtcHR5KCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaAppbmRleCA1ZGE1
ZmE1MWFlMjkzMDhkZmU5OWZhMTVhNGE4NTBkNjg5MDI2NWYzLi5jNDI0MTQzOWExZTA0OWU2ZGI3
NDAzZDVjOWE0NmUzOWZkOTk3NzE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oCkBAIC0xNjgsNiArMTY4LDcgQEAg
cHVibGljOgogICAgIHZvaWQgc2V0R3JhbmRmYXRoZXJpbmdUaW1lKFNlY29uZHMsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBzZXRMYXN0U2Vlbihjb25zdCBVUkwmLCBT
ZWNvbmRzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgZG9tYWluSURF
eGlzdHNJbkRhdGFiYXNlKGludCBkb21haW5JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29s
KT4mJik7CisgICAgdm9pZCBzdGF0aXN0aWNzRGF0YWJhc2VIYXNBbGxUYWJsZXMoQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChib29sKT4mJik7CiAgICAgdm9pZCBtZXJnZVN0YXRpc3RpY0ZvclRlc3Rp
bmcoY29uc3QgVVJMJiwgY29uc3QgVVJMJiB0b3BGcmFtZVVybDEsIGNvbnN0IFVSTCYgdG9wRnJh
bWVVcmwyLCBTZWNvbmRzIGxhc3RTZWVuLCBib29sIGhhZFVzZXJJbnRlcmFjdGlvbiwgU2Vjb25k
cyBtb3N0UmVjZW50VXNlckludGVyYWN0aW9uLCBib29sIGlzR3JhbmRmYXRoZXJlZCwgYm9vbCBp
c1ByZXZhbGVudCwgYm9vbCBpc1ZlcnlQcmV2YWxlbnQsIHVuc2lnbmVkIGRhdGFSZWNvcmRzUmVt
b3ZlZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHNldE5vdGlmeVBh
Z2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNjYW5uZWQoYm9vbCwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZCgpPiYmKTsKICAgICB2b2lkIHNldElzUnVubmluZ1Jlc291cmNlTG9hZFN0YXRpc3RpY3NUZXN0
KGJvb2wsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CmRpZmYgLS1naXQgYS9Ub29scy9D
aGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggODFjNTA3MDllODdhY2IwODVlZTFmNWM2
Nzc1YzkyNWQ4MmNlYTMyNC4uMTI2MzkyMmUzMWQxNDY0NTU5NzQ2YmZkY2NlOWNmYTFkMjc4ODYw
NCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDIzIEBACisyMDIwLTA0LTI4ICBLYXRlIENoZW5leSAgPGthdGhlcmluZV9jaGVuZXlA
YXBwbGUuY29tPgorCisgICAgICAgIENyZWF0ZSBhIG1lY2hhbmlzbSB0byBhZGQgbWlzc2luZyBJ
VFAgRGF0YWJhc2UgdGFibGVzIHdoZW4gdGhlIHNjaGVtYSBpcyB1cGRhdGVkCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTEwMDQKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzYyMjYxMTg3PgorCisgICAgICAgIFJldmlld2VkIGJ5IEpvaG4gV2lsYW5k
ZXIuCisKKyAgICAgICAgQWRkIHRlc3QgY2FzZSB3aGljaCBjb3BpZXMgYSBkYXRhYmFzZSBzY2hl
bWEgd2l0aCBhIG1pc3NpbmcgdGFibGUgaW50bworICAgICAgICB0aGUgSVRQIGRhdGFiYXNlIGZp
bGUsIHRoZW4gZW5zdXJlcyB0aGUgcHJlLXNlZWRlZCBkYXRhIGlzCisgICAgICAgIG1pZ3JhdGVk
IG92ZXIgYW5kIHRoYXQgdGhlIHNjaGVtYSBub3cgaGFzIGFsbCB0YWJsZXMgKGluY2x1ZGluZyB0
aGUKKyAgICAgICAgcHJldmlvdXNseSBtaXNzaW5nIG9uZSkuCisKKyAgICAgICAgKiBUZXN0V2Vi
S2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Jlc291cmNlTG9hZFN0YXRpc3RpY3Mu
bW06CisgICAgICAgIChURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL21pc3NpbmdUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0U2FtZVNpdGVTdHJpY3RUYWJsZVNj
aGVtYS5kYjogQWRkZWQuCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9taXNzaW5nVG9wRnJhbWVVbmlxdWVSZWRpcmVjdFNhbWVTaXRlU3RyaWN0VGFibGVTY2hlbWEu
ZGItc2htOiBBZGRlZC4KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L21pc3NpbmdUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0U2FtZVNpdGVTdHJpY3RUYWJsZVNjaGVtYS5k
Yi13YWw6IEFkZGVkLgorCiAyMDIwLTA0LTI4ICBDbGF1ZGlvIFNhYXZlZHJhICA8Y3NhYXZlZHJh
QGlnYWxpYS5jb20+CiAKICAgICAgICAgW0xpbnV4XSBSZXBsYWNlIC0tZ2VvbWV0cnkgd2l0aCAt
LWZ1bGxzY3JlZW4gd2hlbiB1c2luZyBNaW5pQnJvd3NlciBmb3IgV2ViRHJpdmVyIHRlc3RzCmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvaiBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDQyMDY4NmI2ZTVhMDVmNDQzZDdiZWZlZjhjNmJlMWZl
ZjQ5OTMzZGQuLjczMTI5NTQ4MGM3YTc1YzliOWY2ZjE4Y2U0ZWY2YTZmZTgwNmZiZjkgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yNTYsNiArMjU2LDcgQEAKIAkJNDZGQUNGNzQyM0U4ODQy
MzAwQTlFQkM2IC8qIGJlZm9yZXVubG9hZC1zbG93Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDZGQUNGNzMyM0U4ODNFRTAwQTlFQkM2
IC8qIGJlZm9yZXVubG9hZC1zbG93Lmh0bWwgKi87IH07CiAJCTQ5MDlFRTNBMkQwOTQ4MEM4ODk4
MkQ1NiAvKiBNYXJrYWJsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBFQzc5RjE2OEJFNDU0RTU3OUU0MTdCMDUgLyogTWFya2FibGUuY3BwICovOyB9
OwogCQk0OTcxQjExODI0NTFGMjlBMDA5Njk5NEQgLyogaW5jb3JyZWN0Q3JlYXRlVGFibGVTY2hl
bWEuZGIgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNDk3MUIxMTcyNDUxRjI3ODAwOTY5OTREIC8qIGluY29ycmVjdENyZWF0ZVRhYmxlU2NoZW1h
LmRiICovOyB9OworCQk0OTcxQjEyMDI0NTNBODhDMDA5Njk5NEQgLyogbWlzc2luZ1RvcEZyYW1l
VW5pcXVlUmVkaXJlY3RTYW1lU2l0ZVN0cmljdFRhYmxlU2NoZW1hLmRiIGluIENvcHkgUmVzb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5NzFCMTFGMjQ1M0E4N0Yw
MDk2OTk0RCAvKiBtaXNzaW5nVG9wRnJhbWVVbmlxdWVSZWRpcmVjdFNhbWVTaXRlU3RyaWN0VGFi
bGVTY2hlbWEuZGIgKi87IH07CiAJCTQ5ODk3RDZDMjQxRkU5RTQwMEVDRjE1MyAvKiBpbi1hcHAt
YnJvd3Nlci1wcml2YWN5LWxvY2FsLWZpbGUuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OUQ3RkJBNzI0MUZERERBMDBBQjY3RkEgLyog
aW4tYXBwLWJyb3dzZXItcHJpdmFjeS1sb2NhbC1maWxlLmh0bWwgKi87IH07CiAJCTQ5QUVFRjZE
MjQwNzM1OUQwMEM4N0U0QyAvKiBJbkFwcEJyb3dzZXJQcml2YWN5Lm1tIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDlBRUVGNkIyNDA3MzU4NjAwQzg3RTRD
IC8qIEluQXBwQnJvd3NlclByaXZhY3kubW0gKi87IH07CiAJCTRCRkRGRkE3MTMxNDc3NkMwMDYx
RjI0QiAvKiBIaXRUZXN0UmVzdWx0Tm9kZUhhbmRsZV9CdW5kbGUuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEJGREZGQTYxMzE0Nzc2QzAwNjFGMjRC
IC8qIEhpdFRlc3RSZXN1bHROb2RlSGFuZGxlX0J1bmRsZS5jcHAgKi87IH07CkBAIC0xNDQ4LDYg
KzE0NDksNyBAQAogCQkJCUNEQzk0NDJGMUVGMjA1RDYwMDU5QzNDNCAvKiBtZWRpYXN0cmVhbXRy
YWNrLWRldGFjaGVkLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJRTEyMjBEQ0ExNTVC
MjhBQTAwMTNFMkZDIC8qIE1lbW9yeUNhY2hlRGlzYWJsZVdpdGhpblJlc291cmNlTG9hZERlbGVn
YXRlLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJNTE3RTdFMDQxNTExMTlDMTAwRDBC
MDA4IC8qIE1lbW9yeUNhY2hlUHJ1bmVXaXRoaW5SZXNvdXJjZUxvYWREZWxlZ2F0ZS5odG1sIGlu
IENvcHkgUmVzb3VyY2VzICovLAorCQkJCTQ5NzFCMTIwMjQ1M0E4OEMwMDk2OTk0RCAvKiBtaXNz
aW5nVG9wRnJhbWVVbmlxdWVSZWRpcmVjdFNhbWVTaXRlU3RyaWN0VGFibGVTY2hlbWEuZGIgaW4g
Q29weSBSZXNvdXJjZXMgKi8sCiAJCQkJNTFDRDFDNzIxQjM4RDQ4NDAwMTQyQ0E1IC8qIG1vZGFs
LWFsZXJ0cy1pbi1uZXctYWJvdXQtYmxhbmstd2luZG93Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMg
Ki8sCiAJCQkJN0ExNDU4RkMxQUQ1QzA3MDAwRTA2NzcyIC8qIG1vdXNlLWJ1dHRvbi1saXN0ZW5l
ci5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTMzRTc5RTA2MTM3QjVGRDkwMEUzMkQ5
OSAvKiBtb3VzZS1tb3ZlLWxpc3RlbmVyLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCkBAIC0x
ODc1LDYgKzE4NzcsNyBAQAogCQk0NkZBMkZFRDIzODQ2QzlBMDAwQ0NCMEMgLyogSFRUUEhlYWRl
ck1hcC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBIVFRQSGVhZGVy
TWFwLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDZGQUNGNzMyM0U4ODNFRTAw
QTlFQkM2IC8qIGJlZm9yZXVubG9hZC1zbG93Lmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBh
dGggPSAiYmVmb3JldW5sb2FkLXNsb3cuaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTQ5NzFCMTE3MjQ1MUYyNzgwMDk2OTk0RCAvKiBpbmNvcnJlY3RDcmVhdGVUYWJsZVNjaGVt
YS5kYiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IGZp
bGU7IHBhdGggPSBpbmNvcnJlY3RDcmVhdGVUYWJsZVNjaGVtYS5kYjsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJNDk3MUIxMUYyNDUzQTg3RjAwOTY5OTREIC8qIG1pc3NpbmdUb3BGcmFt
ZVVuaXF1ZVJlZGlyZWN0U2FtZVNpdGVTdHJpY3RUYWJsZVNjaGVtYS5kYiAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IGZpbGU7IG5hbWUgPSBtaXNzaW5n
VG9wRnJhbWVVbmlxdWVSZWRpcmVjdFNhbWVTaXRlU3RyaWN0VGFibGVTY2hlbWEuZGI7IHBhdGgg
PSBUZXN0cy9XZWJLaXRDb2NvYS9taXNzaW5nVG9wRnJhbWVVbmlxdWVSZWRpcmVjdFNhbWVTaXRl
U3RyaWN0VGFibGVTY2hlbWEuZGI7IHNvdXJjZVRyZWUgPSBTT1VSQ0VfUk9PVDsgfTsKIAkJNDlB
RUVGNjgyNDA3Mjc2RjAwQzg3RTRDIC8qIEluZm8ucGxpc3QgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnBsaXN0
LnhtbDsgcGF0aCA9IEluZm8ucGxpc3Q7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ5
QUVFRjZCMjQwNzM1ODYwMEM4N0U0QyAvKiBJbkFwcEJyb3dzZXJQcml2YWN5Lm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gSW5BcHBCcm93c2VyUHJpdmFjeS5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDlEN0ZCQTcyNDFGREREQTAwQUI2N0ZBIC8q
IGluLWFwcC1icm93c2VyLXByaXZhY3ktbG9jYWwtZmlsZS5odG1sICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gImluLWFw
cC1icm93c2VyLXByaXZhY3ktbG9jYWwtZmlsZS5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTQwNzUsNiArNDA3OCw3IEBACiAJCQkJNzc3MkVDRTAyMkZFMDVFMTAwMDlBNzk5
IC8qIG1hbnktc2FtZS1vcmlnaW4taWZyYW1lcy5odG1sICovLAogCQkJCUNEODM5NERFMjMyQUYx
NUUwMDE0OTQ5NSAvKiBtZWRpYS1sb2FkaW5nLmh0bWwgKi8sCiAJCQkJQ0RDOTQ0MkIxRUYxRkJE
MjAwNTlDM0M0IC8qIG1lZGlhc3RyZWFtdHJhY2stZGV0YWNoZWQuaHRtbCAqLywKKwkJCQk0OTcx
QjExRjI0NTNBODdGMDA5Njk5NEQgLyogbWlzc2luZ1RvcEZyYW1lVW5pcXVlUmVkaXJlY3RTYW1l
U2l0ZVN0cmljdFRhYmxlU2NoZW1hLmRiICovLAogCQkJCTUxQ0QxQzcxMUIzOEQ0ODQwMDE0MkNB
NSAvKiBtb2RhbC1hbGVydHMtaW4tbmV3LWFib3V0LWJsYW5rLXdpbmRvdy5odG1sICovLAogCQkJ
CTdBMTQ1OEZCMUFENUMwMzUwMEUwNjc3MiAvKiBtb3VzZS1idXR0b24tbGlzdGVuZXIuaHRtbCAq
LywKIAkJCQkzM0U3OUUwNTEzN0I1RkNFMDBFMzJEOTkgLyogbW91c2UtbW92ZS1saXN0ZW5lci5o
dG1sICovLApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzLm1tCmluZGV4IDhhNDQzNTUyOTU4ZmZl
ZWNkNWY3Y2YzNjk1ZDNmMjI0ZjFmNWU3Y2YuLmIwMjE3ZmFjMTllNDJjZDQ4MGMyZmEwNTkyMjM1
MTZmYzJkZDUzNDIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Q29jb2EvUmVzb3VyY2VMb2FkU3RhdGlzdGljcy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL1Jlc291cmNlTG9hZFN0YXRpc3RpY3MubW0KQEAgLTE0OTUsMyAr
MTQ5NSw1NyBAQCBURVNUKFJlc291cmNlTG9hZFN0YXRpc3RpY3MsIE1pZ3JhdGVEYXRhRnJvbUlu
Y29ycmVjdENyZWF0ZVRhYmxlU2NoZW1hKQogCiAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVu
KCZkb25lRmxhZyk7CiB9CisKK1RFU1QoUmVzb3VyY2VMb2FkU3RhdGlzdGljcywgTWlncmF0ZURh
dGFGcm9tTWlzc2luZ1RvcEZyYW1lVW5pcXVlUmVkaXJlY3RTYW1lU2l0ZVN0cmljdFRhYmxlU2No
ZW1hKQoreworICAgIGF1dG8gKnNoYXJlZFByb2Nlc3NQb29sID0gW1dLUHJvY2Vzc1Bvb2wgX3No
YXJlZFByb2Nlc3NQb29sXTsKKworICAgIGF1dG8gZGVmYXVsdEZpbGVNYW5hZ2VyID0gW05TRmls
ZU1hbmFnZXIgZGVmYXVsdE1hbmFnZXJdOworICAgIGF1dG8gKmRhdGFTdG9yZSA9IFtXS1dlYnNp
dGVEYXRhU3RvcmUgZGVmYXVsdERhdGFTdG9yZV07CisgICAgTlNVUkwgKml0cFJvb3RVUkwgPSBb
W2RhdGFTdG9yZSBfY29uZmlndXJhdGlvbl0gX3Jlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3Rv
cnldOworICAgIE5TVVJMICpmaWxlVVJMID0gW2l0cFJvb3RVUkwgVVJMQnlBcHBlbmRpbmdQYXRo
Q29tcG9uZW50OkAib2JzZXJ2YXRpb25zLmRiIl07CisgICAgW2RlZmF1bHRGaWxlTWFuYWdlciBy
ZW1vdmVJdGVtQXRQYXRoOml0cFJvb3RVUkwucGF0aCBlcnJvcjpuaWxdOworICAgIEVYUEVDVF9G
QUxTRShbZGVmYXVsdEZpbGVNYW5hZ2VyIGZpbGVFeGlzdHNBdFBhdGg6aXRwUm9vdFVSTC5wYXRo
XSk7CisKKyAgICAvLyBMb2FkIGFuIGluY29ycmVjdCBkYXRhYmFzZSBzY2hlbWEgd2l0aCBwcmUt
c2VlZGVkIElUUCBkYXRhLgorICAgIFtkZWZhdWx0RmlsZU1hbmFnZXIgY3JlYXRlRGlyZWN0b3J5
QXRVUkw6aXRwUm9vdFVSTCB3aXRoSW50ZXJtZWRpYXRlRGlyZWN0b3JpZXM6WUVTIGF0dHJpYnV0
ZXM6bmlsIGVycm9yOm5pbF07CisgICAgTlNVUkwgKm5ld0ZpbGVVUkwgPSBbW05TQnVuZGxlIG1h
aW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAibWlzc2luZ1RvcEZyYW1lVW5pcXVlUmVkaXJlY3RT
YW1lU2l0ZVN0cmljdFRhYmxlU2NoZW1hIiB3aXRoRXh0ZW5zaW9uOkAiZGIiIHN1YmRpcmVjdG9y
eTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CisgICAgRVhQRUNUX1RSVUUoW2RlZmF1bHRG
aWxlTWFuYWdlciBmaWxlRXhpc3RzQXRQYXRoOm5ld0ZpbGVVUkwucGF0aF0pOworICAgIFtkZWZh
dWx0RmlsZU1hbmFnZXIgY29weUl0ZW1BdFBhdGg6bmV3RmlsZVVSTC5wYXRoIHRvUGF0aDpmaWxl
VVJMLnBhdGggZXJyb3I6bmlsXTsKKyAgICBFWFBFQ1RfVFJVRShbZGVmYXVsdEZpbGVNYW5hZ2Vy
IGZpbGVFeGlzdHNBdFBhdGg6ZmlsZVVSTC5wYXRoXSk7CisKKyAgICBhdXRvIGNvbmZpZ3VyYXRp
b24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOworICAg
IFtjb25maWd1cmF0aW9uIHNldFByb2Nlc3NQb29sOiBzaGFyZWRQcm9jZXNzUG9vbF07CisgICAg
Y29uZmlndXJhdGlvbi5nZXQoKS53ZWJzaXRlRGF0YVN0b3JlID0gZGF0YVN0b3JlOworCisgICAg
Ly8gV2UgbmVlZCBhbiBhY3RpdmUgTmV0d29ya1Byb2Nlc3MgdG8gcGVyZm9ybSBSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzIG9wZXJhdGlvbnMuCisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1dL
V2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKSBj
b25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCldKTsKKyAgICBbZGF0YVN0b3JlIF9zZXRS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZDpZRVNdOworICAgIFt3ZWJWaWV3IGxvYWRSZXF1
ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJh
Ym91dDpibGFuayJdXV07CisKKyAgICBzdGF0aWMgYm9vbCBkb25lRmxhZzsKKyAgICBbZGF0YVN0
b3JlIF9zZXRVc2VJVFBEYXRhYmFzZTp0cnVlIGNvbXBsZXRpb25IYW5kbGVyOiBeKHZvaWQpIHsK
KyAgICAgICAgZG9uZUZsYWcgPSB0cnVlOworICAgIH1dOworCisgICAgVGVzdFdlYktpdEFQSTo6
VXRpbDo6cnVuKCZkb25lRmxhZyk7CisKKyAgICAvLyBTaW5jZSB0aGUgZGF0YWJhc2Ugc2hvdWxk
IG5vdCBiZSBkZWxldGVkLCB0aGUgcHJlLXNlZWRlZCBkYXRhIHNob3VsZAorICAgIC8vIHN0aWxs
IGJlIHRoZXJlIGFmdGVyIGluaXRpYWxpemluZyBJVFAuCisgICAgZG9uZUZsYWcgPSBmYWxzZTsK
KyAgICBbZGF0YVN0b3JlIF9pc1JlZ2lzdGVyZWRBc1N1YnJlc291cmNlVW5kZXJGaXJzdFBhcnR5
OltOU1VSTCBVUkxXaXRoU3RyaW5nOkAiaHR0cDovL2FwcGxlLmNvbSJdIHRoaXJkUGFydHk6W05T
VVJMIFVSTFdpdGhTdHJpbmc6QCJodHRwOi8vd2Via2l0Lm9yZyJdIGNvbXBsZXRpb25IYW5kbGVy
OiBeKEJPT0wgaXNSZWdpc3RlcmVkKSB7CisgICAgICAgIEVYUEVDVF9UUlVFKGlzUmVnaXN0ZXJl
ZCk7CisgICAgICAgIGRvbmVGbGFnID0gdHJ1ZTsKKyAgICB9XTsKKworICAgIFRlc3RXZWJLaXRB
UEk6OlV0aWw6OnJ1bigmZG9uZUZsYWcpOworICAgIAorICAgIC8vIENoZWNrIHRvIG1ha2Ugc3Vy
ZSBhbGwgdGFibGVzIGFyZSBhY2NvdW50ZWQgZm9yLgorICAgIGRvbmVGbGFnID0gZmFsc2U7Cisg
ICAgW2RhdGFTdG9yZSBfc3RhdGlzdGljc0RhdGFiYXNlSGFzQWxsVGFibGVzOl4oQk9PTCBoYXNB
bGxUYWJsZXMpIHsKKyAgICAgICAgRVhQRUNUX1RSVUUoaGFzQWxsVGFibGVzKTsKKyAgICAgICAg
ZG9uZUZsYWcgPSB0cnVlOworICAgIH1dOworCisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVu
KCZkb25lRmxhZyk7Cit9CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL21pc3NpbmdUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0U2FtZVNpdGVTdHJpY3RUYWJs
ZVNjaGVtYS5kYiBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvbWlzc2lu
Z1RvcEZyYW1lVW5pcXVlUmVkaXJlY3RTYW1lU2l0ZVN0cmljdFRhYmxlU2NoZW1hLmRiCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmQwMjdmMTMzOGE5YTkyMjY2OGIxYzg5ZjNhOTVmNjhhNzlkYjExNjcKR0lUIGJpbmFy
eSBwYXRjaApsaXRlcmFsIDEwNjQ5Ngp6Y21lSSpQakIxaTlsJnU/d2o7fjclcnQ0TnQ7SjlseUZg
YylWQ1c5cFZlbkwkRShDamFCRlNyNzNeUWN3djc9Y3cKejlnPDMwNDh2Zj4wZTBDPUpNT2cwVWNu
QUs/aFcpYzN8TjhueWszJVMhMWo+KCRBX2RPK29fOUtfe3clPGlzWWxgCnpfaiYmQ190MEB0ZEFR
Tj1ndD4xIU0+V3JVUHJJcTVRcmJeVlFgNTk1YFNxNmtgaX1mY2IpVG9AdjtTQzxVd1pKfQp6O0pM
ZjBKV1hsJGVgd0Q1Mk9JektjZjhla1FqVEUqMFIjfDAwMDlJTEttWSoqNUlfSXsxZz0henlLfSlK
eykrJGIKelp5cDQ5NVZZVjxLPTgrdmhERzVCQWI8YkAycTFzfTB0Z18wMDBJYWdwYV44O1I/N0hY
R3lZfEt6V0FyNDU5TSQrCno1SV9JezFRMCp+MFIjfDAwMDlJTHhCPnh2e1IjQDU7MzlMV3RvSDZ+
fE03e35KIzJYUVpSYTRUWFNIYGBYWjF7SAp6VSt2X2lEZW12dE5CXjZYOFkkeG8mR15kciF1V0Nq
VzcrNmBPZlZPckElRmteMnExc30wdGdfMDAwSWFna1JWYEcKekgyPXJ0b3JtI3Y/VVVhMy18bG5x
cUhuaTJee3pnKzZfOHEoZE1ER3IwVDJYcV5QKGtrSk9UKEhmQipzckFiPGJACnoycTFzfTB0ajN1
MG9NUTVza052cDB0Z18wMDBJYWdmQipzckFiPGJAbWxJKDllPnBlS0xJNDItNUlfSXsxUTAqfgp6
MFIjfDA7NXJIVHp5R2ZyVXUqSnsyTGNFbmZCKnNyQWI8YkAycTFzfTB0aWY7enw2RnMkO2Z7JVAo
SndtfEF9aXwKejB6dj0qMVEwKn4wUiN8MDAwOUlMS3AtckBgYWk2fV9Ycj8+MDBJYWdmQipzckFi
PGJAMnUhOGA+O0s3WVNFNTF5CnowUiN8MDAwOUlMS21ZKio1SWBVLSExX098IVNASXRmQipzckFi
PGJAMnExc30wdGlmfGZXUTlOamhDQUk8YmVQSgp6MnExc30wdGdfMDAwSWFnZkIqdU1DTlFIPD4k
Q2ooZjBOZCUjRGYzPTJxMXN9MHRnXzAwMElhZ2ZJeU19ZkIhIzgKemgxVT4zMDA5SUxLbVkqKjVJ
X0l7MVEzYGtmaktgTXt7TyRwWUUrXkAwMDlJTEttWSoqNUlfSXsxUTArVkJFYjRUCnowPlVOJjJx
MXN9MHRnXzAwMElhZ2ZCKnMkRDhUeEUwdm5aKDVJX0l7MVEwKn4wUiN8MDAwOUlMaHpQTCRrQVNk
PQp6MDBJYWdmQipzckFiPGJAMnExdksxUFpZSnBUSV5YQm1AdlowMDlJTEttWSoqNUlfSXsxUj9e
Z3wwNXU1QjdndF8KejJxMXN9MHRnXzAwMElhZ0ZvNlFCfDBsM2YyPytyTjVJX0l7MVEwKn4wUiN8
MDBEKntyenk4O2F1UW1DfTB8NWpPCnpLbVkqKjVJX0l7MVEwKn4wUiQjYVV9anArV0shTCpib3Jj
e3hEV3tsMFIjfDAwMDlJTEttWSoqNUlfSXsxT2tDPAp6YHJsZTZefHFGTVYqRzk0a01wVV9VdkIo
PD1GWmZnUSpYLWBwQnBjPFhTZTZteCVHQVpgUy1scVpjfGlSeU4rPH0Kem1hYHxla0wkdnorOXp2
SD9NU1RKTjQzVldKNyN5YlNoZm1QJWQ4Z08tPn1UaSFMbDAwaXlPMUYkTGw4V1k8ZSE4Cnp2bj43
amU2UXZBe2d4aW0+X2hpME1COUFtaz4qe3V3SHhZOXJCJD1FUyt6Y30lSTQtKSkhZnxQKmpQNTNI
UF9vZAp6c248TUZIKVV0cTI8YEhlekw8RlMrRSY+cmVYd2IrVE9ZO1ZFSEJHanYmejxIKFc7blJ5
UkxBYWloOCRTLT5uRHoKenlSQDEmdz5IZ0hZcn5TZ3hMQndaMyMtPCQ4Nz8oaTM4aHB5U35rUX0o
ZD9CZjQtUmM3bVkjMilXUCQ7Ql9GPlFyCnp2V1MzYSE+LWp1ejUyTX0pRjBGd0AzWUZEKD5VP21G
fXZyTCN1IygzY357bk5UemtrUz5yRHVxc0smWlMzc3I8Sgp6P1ZlRE4lTkNxKHdgU0ExVm9eVlBx
TE1kYDRfQyNXP2JOKTZlZUE5fF9FQkZqekgyVS1JKTAkZkpjNGRTaHVAYnEKejc7JmNCRXFlemxE
emc1ZTQoUiN+OUA8WHFrWk59aVNLKERsJmJOMmQ5cnR5YGVmemxhcSRTRnQtZithOHI/QEJWCnok
fFNsYzk0T3N1JlZsZkhGYlJgUUlKJCkwM2IwYnZ0NVJHY3ZoaE95Pis1IUBwKn57LStLKjxeeHM/
X0RZLVFCUQp6c01Ae3hEQUxgbGNLU1N7cUg0PWFhRkUtTDcheEJXdE1HX1dPWnNMPCNHbiRkVDVr
VENGYGRxQlpSeVhtMGQyKlQKel5aUzcpP0NsQkhQMFYlMTlkSlhUOSRUSy0mbiomV25DTl5RSkgk
XiVpZCZtJjg+TTJeVHF+NGhoOW95RClwOXxtCnpQVWlrJHphaGdkUXx+NzstJSFSQXhuX2gpeX5H
NzNmQk54TUkoUDQkLWFoUGdfRTduTGg3O2JMUU00bUZnQTY4Zwp6YlNPN0BQJWl6ZlEyeGx6MWtY
YmpaM3Z+P1RfOT02cElMZWstMHVvT2FGSjZabl5RX35rKH4pME0rd1JpMk15UEEKens4ZH0wN25v
SitreFprenNrRkpoUyRlb19DM0dNXjxFUkw2OUw9dkUqWHI5Y0Q9cjstIWx+YH5JWiYpU0V9S1dU
Cno+eV5jeElRQW1QUnZTa21USD05SUpGZjU3eXZNP2s+M2xyZFpAM1F9QHdDPklyNnVuRHhvfCFr
YiViMGQpTVJDQgp6cnx5PTtrdUNIMmNybCk9bSlqWmNxRiEqPDhqa0EpOFREI1FSUDlJKkB6YyVH
PVBTZCVAU3FlZ3B5NXtiOSpjVWIKekRlN3lzUSlvOGRaK1MpQUs1VTU5cCFUeGJ3UHgoSns3K0lo
YXU0dDZUMF5lRktYc29wOD1seXl3TENsNi1pZFVUCnpvZ1lNQW4zbVVAVjlBfUdgaUN+SnowQCk8
V2BDUWAtTj89U0REX3E5bWlCVi16dUE4LWU3VyVEbkNzSEAtUThaZwp6Sikxa2R2I3omNDQ5TWlu
Rj19MTRCUFJmNURZVFFZOzIyWkpvJGhHdjQhcUxsc2BiYm1iSSFUbSpPVmkxT2daTFYKekdhQTlO
bkdrfVJLbUZ5Y2Jqfmc2P2MxdExlQm1QTioxTnB5Z2ZyIVNScE9fLUlnJWlMe0lJdUJCOTVPSE1C
QSZ8Cnp2S2crTjREZVRQcTt0UVAwZSlXekZwQEhAJCtndnZ4PEUoX0dVMnFfcWs+RjBlJD9COTE1
RyY5NF4meHJNMSE2Rwp6Z1p9OUg0JHt9Uj1CS3xmPFMxRSpqKj5fZFJxWSkkM2w4PD8tWUFLa14y
UDxhJiF7JlQoUktWcC0mQVkxRWEhKmIKemg+PklESDtaejFvWjhhYz8qKVRJeHJgLWMjWEkkR1BV
JWxyTzIjJHopU0Y1MWp5LUdtOH5TbU5KemQ3JXRGYSVzCnpUNGdpZTdUSSpKUk1POV4mWjF5JmxQ
bDYoe3huZTt4ITM1MTdyeTcreT8tOU50cjZTLUo7JmBkV2tRUm1QMnBUVwp6VlVFOVM/dDBGZjV8
TEQrenIwRGZiKChLS1Q/cDxtcFY/IWF0TStpXnM9YXRsPDZ3YjFYc3YjS2p9d2wjPmxQWCgKekAk
PGVGYGF1bVkrbSFoJHxGTz17OX0lNm1rQkA4dEg1WkZ6JDcpWiN2TFBWbjRKOVgzVDBfcTdwP1VD
Sndec0E9CnpjWDI7e2VYbmBmeG5gJUlGOExRVXRBOVpvJW1SQGEtTV4jYGNKYCktKDFtLXtNMDZ8
aFN+ZSl8cVZFLTQlU04yOwp6VSZhVCFkekRxTTw/Vz9BJTFURzZmQlorZEwhd3VFYGp8M2kkMSte
PGVQYlQrYSl5KHJBO15vb3stJVY8JFVkPnMKd05wZjFkYEA/PzE+OG1KWC1PcUVCN2JNQmh2ekxa
PTNfVzR8K2pTKnxtZTY1UFk4V0lzJH00OTZ8RCF8RWxLPW4hCgpsaXRlcmFsIDAKSGNtVj9kMDAw
MDEKCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL21p
c3NpbmdUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0U2FtZVNpdGVTdHJpY3RUYWJsZVNjaGVtYS5kYi1z
aG0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL21pc3NpbmdUb3BGcmFt
ZVVuaXF1ZVJlZGlyZWN0U2FtZVNpdGVTdHJpY3RUYWJsZVNjaGVtYS5kYi1zaG0KbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZmU5YWMyODQ1ZWNhNmZlNmRhOGE2M2NkMDk2ZDljZjllMjRlY2UxMApHSVQgYmluYXJ5IHBh
dGNoCmxpdGVyYWwgMzI3NjgKemNtZUl1QXI2MnIzPFhlVFNheVM2MD1aPU8tMHxrUDImZnVAITZE
dV56aUZDXjd3NTVNTik5aFFZVjNXazc5YTJQCnopJThnM0gzMCR5Mm9OQVpmQipwazFQQmx5SyE1
LU4wdDUmVUFWN2NzMFJqWEY1RmtLKzAwOUM3Mm9OQVpmQipwawp6MVBCbHlLITUtTjB0NSZVQVY3
Y3MwUmpYRjVGa0srMDA5Qzcyb05BWmZCKnBrMVBCbHlLITUtTjB0NSZVQVY3Y3MKdzBSalhGNUZr
SyswMDlDNzJvTkFaZkIqcGsxUEJseUshNS1OMHQ1JlVBVjdjczBSalhGNWNxP0A0ZGs1YFF2ZCh9
CgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL21pc3NpbmdUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0U2FtZVNpdGVT
dHJpY3RUYWJsZVNjaGVtYS5kYi13YWwgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL21pc3NpbmdUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0U2FtZVNpdGVTdHJpY3RUYWJsZVNj
aGVtYS5kYi13YWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTY5ZGUyOWJiMmQxZDY0MzRiOGIyOWFlNzc1YWQ4YzJl
NDhjNTM5MQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>