<?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>230725</bug_id>
          
          <creation_ts>2021-09-23 15:21:10 -0700</creation_ts>
          <short_desc>Add flag to enabling release log and implement stderr logging by default</short_desc>
          <delta_ts>2021-10-03 10:20:12 -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>Platform</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>230995</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Basuke Suzuki">basuke</reporter>
          <assigned_to name="Basuke Suzuki">basuke</assigned_to>
          <cc>annulen</cc>
    
    <cc>basuke</cc>
    
    <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>darin</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fujii</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>pnormand</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>stephan.szabo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1796694</commentid>
    <comment_count>0</comment_count>
    <who name="Basuke Suzuki">basuke</who>
    <bug_when>2021-09-23 15:21:10 -0700</bug_when>
    <thetext>Even if there&apos;s no modern logging system, dumping out those logs to stdout/stderr helps a lot on development.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1798551</commentid>
    <comment_count>1</comment_count>
      <attachid>439652</attachid>
    <who name="Basuke Suzuki">basuke</who>
    <bug_when>2021-09-29 14:01:00 -0700</bug_when>
    <thetext>Created attachment 439652
PATCH</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1799044</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-09-30 15:22:15 -0700</bug_when>
    <thetext>&lt;rdar://problem/83740529&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1799128</commentid>
    <comment_count>3</comment_count>
      <attachid>439808</attachid>
    <who name="Basuke Suzuki">basuke</who>
    <bug_when>2021-09-30 18:07:21 -0700</bug_when>
    <thetext>Created attachment 439808
PATCH</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1799177</commentid>
    <comment_count>4</comment_count>
      <attachid>439808</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2021-09-30 22:31:50 -0700</bug_when>
    <thetext>Comment on attachment 439808
PATCH

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

&gt; Source/WTF/wtf/Assertions.h:604
&gt; +#define RELEASE_LOG_FP stdout

It&apos;s not a good idea to output logs to stdout. It breaks command line application, DumpRenderTree and WebKitTestRunner.

&gt; Source/WTF/wtf/Assertions.h:606
&gt; +#define RELEASE_LOG_FP stderr

Why do you need LOG_STDERR? WebKit logs are output to stderr. You can enable all log channels by setting log env vars &quot;all&quot;.

&gt; Source/WTF/wtf/Logger.h:354
&gt;          sd_journal_send_with_location(fileString.utf8().data(), lineString.utf8().data(), function, &quot;WEBKIT_SUBSYSTEM=%s&quot;, channel.subsystem, &quot;WEBKIT_CHANNEL=%s&quot;, channel.name, &quot;MESSAGE=%s&quot;, logMessage.utf8().data(), nullptr);

What about the idea implementing a compatible sd_journal_send_with_location for your platform.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1799189</commentid>
    <comment_count>5</comment_count>
    <who name="Basuke Suzuki">basuke</who>
    <bug_when>2021-09-30 23:52:24 -0700</bug_when>
    <thetext>&gt; It&apos;s not a good idea to output logs to stdout. It breaks command line
&gt; application, DumpRenderTree and WebKitTestRunner.

Well, I don&apos;t actually need stdout logging, but I thought it&apos;s nice to have option. About the DRT/WTR, stderr output also breaks the test result, doesn&apos;t it? We can run tests by building different binary for testing.


&gt; Why do you need LOG_STDERR? WebKit logs are output to stderr. You can enable
&gt; all log channels by setting log env vars &quot;all&quot;.

I don&apos;t understand that. I need release log and that is disable without enabling os_log or jounald.


&gt; What about the idea implementing a compatible sd_journal_send_with_location
&gt; for your platform.

That was just too much for simple logging with stderr. Those extra info will be dump out when verbose logging.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1799196</commentid>
    <comment_count>6</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2021-10-01 00:48:46 -0700</bug_when>
    <thetext>(In reply to Basuke Suzuki from comment #5)
&gt; Well, I don&apos;t actually need stdout logging, but I thought it&apos;s nice to have
&gt; option. About the DRT/WTR, stderr output also breaks the test result,
&gt; doesn&apos;t it? We can run tests by building different binary for testing.

The loggs in stderr don&apos;t make the test fail. But, if a test fail, run-webkit-tests show the stderr for the hint of debugging.
For example, in the following test result, http/tests/xmlhttprequest/onload-progressevent-attributes.html failed and had a stderr message.
https://build.webkit.org/results/WinCairo-64-bit-WKL-Release-Tests/r282824%20(2701)/results.html


&gt; &gt; Why do you need LOG_STDERR? WebKit logs are output to stderr. You can enable
&gt; &gt; all log channels by setting log env vars &quot;all&quot;.
&gt; 
&gt; I don&apos;t understand that. I need release log and that is disable without
&gt; enabling os_log or jounald.

Oh, I misunderstood.

&gt; &gt; What about the idea implementing a compatible sd_journal_send_with_location
&gt; &gt; for your platform.
&gt; 
&gt; That was just too much for simple logging with stderr. Those extra info will
&gt; be dump out when verbose logging.

Got it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1799197</commentid>
    <comment_count>7</comment_count>
      <attachid>439808</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2021-10-01 00:50:25 -0700</bug_when>
    <thetext>Comment on attachment 439808
PATCH

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

&gt; ChangeLog:3
&gt; +        [PlayStation] Enable release logging to stdout or stderr

This patch is almost platform independent change. Darin asked me not to use the platform prefix for such platform independent changes, for example [PlayStation] and [WinCairo].</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1799199</commentid>
    <comment_count>8</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2021-10-01 01:03:08 -0700</bug_when>
    <thetext>How do you think an idea always enabling RELEASE_LOG, and if USE(OS_LOG) and USE(JOURNALD) are not true, use stderr.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1799249</commentid>
    <comment_count>9</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2021-10-01 06:07:36 -0700</bug_when>
    <thetext>(In reply to Fujii Hironori from comment #8)
&gt; How do you think an idea always enabling RELEASE_LOG, and if USE(OS_LOG) and
&gt; USE(JOURNALD) are not true, use stderr.

That sounds good to me. Will result in simpler #if #elifs too. The logs are all disabled by default anyway: you need to opt-in using a confusing environment variable that I can never figure out how to use.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1799251</commentid>
    <comment_count>10</comment_count>
      <attachid>439808</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2021-10-01 06:09:17 -0700</bug_when>
    <thetext>Comment on attachment 439808
PATCH

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

&gt; Source/WTF/wtf/Assertions.h:600
&gt; +#error &quot;Cannot unable both USE_LOG_STDOUT and USE_LOG_STDERR&quot;

&quot;Cannot use both&quot;

&gt;&gt; Source/WTF/wtf/Logger.h:354
&gt;&gt;          sd_journal_send_with_location(fileString.utf8().data(), lineString.utf8().data(), function, &quot;WEBKIT_SUBSYSTEM=%s&quot;, channel.subsystem, &quot;WEBKIT_CHANNEL=%s&quot;, channel.name, &quot;MESSAGE=%s&quot;, logMessage.utf8().data(), nullptr);
&gt; 
&gt; What about the idea implementing a compatible sd_journal_send_with_location for your platform.

Seems like overkill?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1799313</commentid>
    <comment_count>11</comment_count>
    <who name="Basuke Suzuki">basuke</who>
    <bug_when>2021-10-01 08:36:26 -0700</bug_when>
    <thetext>(In reply to Fujii Hironori from comment #6)
&gt; The loggs in stderr don&apos;t make the test fail. But, if a test fail,
&gt; run-webkit-tests show the stderr for the hint of debugging.
&gt; For example, in the following test result,
&gt; http/tests/xmlhttprequest/onload-progressevent-attributes.html failed and
&gt; had a stderr message.
&gt; https://build.webkit.org/results/WinCairo-64-bit-WKL-Release-Tests/
&gt; r282824%20(2701)/results.html

Ah, make sense. That was one of my use case to use stdout so I agree to remove it for simplicity.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1799314</commentid>
    <comment_count>12</comment_count>
      <attachid>439808</attachid>
    <who name="Basuke Suzuki">basuke</who>
    <bug_when>2021-10-01 08:38:14 -0700</bug_when>
    <thetext>Comment on attachment 439808
PATCH

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

&gt;&gt; ChangeLog:3
&gt;&gt; +        [PlayStation] Enable release logging to stdout or stderr
&gt; 
&gt; This patch is almost platform independent change. Darin asked me not to use the platform prefix for such platform independent changes, for example [PlayStation] and [WinCairo].

Right. Will remove the prefix.

&gt;&gt; Source/WTF/wtf/Assertions.h:600
&gt;&gt; +#error &quot;Cannot unable both USE_LOG_STDOUT and USE_LOG_STDERR&quot;
&gt; 
&gt; &quot;Cannot use both&quot;

Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1799321</commentid>
    <comment_count>13</comment_count>
    <who name="Basuke Suzuki">basuke</who>
    <bug_when>2021-10-01 08:53:09 -0700</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #9)
&gt; (In reply to Fujii Hironori from comment #8)
&gt; &gt; How do you think an idea always enabling RELEASE_LOG, and if USE(OS_LOG) and
&gt; &gt; USE(JOURNALD) are not true, use stderr.
&gt; 
&gt; That sounds good to me. Will result in simpler #if #elifs too. The logs are
&gt; all disabled by default anyway: you need to opt-in using a confusing
&gt; environment variable that I can never figure out how to use.

That is kind of a big change for default configuration. There&apos;s tons of code omitted from runtime binary when not RELEASE_LOG_DISABLED. They are just there sitting silently without doing almost nothing. If we do this change, we should introduce ENABLE_RELEASE_LOG as other features do and make it completely opt-in feature. At that time, I agree with the default choice of logging. How about this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1799333</commentid>
    <comment_count>14</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2021-10-01 09:17:40 -0700</bug_when>
    <thetext>I assumed it would not print anything unless special environment variables are enabled. I agree it should not print to stderr by default.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1799456</commentid>
    <comment_count>15</comment_count>
      <attachid>439895</attachid>
    <who name="Basuke Suzuki">basuke</who>
    <bug_when>2021-10-01 12:06:36 -0700</bug_when>
    <thetext>Created attachment 439895
PATCH</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1799465</commentid>
    <comment_count>16</comment_count>
      <attachid>439898</attachid>
    <who name="Basuke Suzuki">basuke</who>
    <bug_when>2021-10-01 12:32:16 -0700</bug_when>
    <thetext>Created attachment 439898
PATCH</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1799470</commentid>
    <comment_count>17</comment_count>
    <who name="Basuke Suzuki">basuke</who>
    <bug_when>2021-10-01 12:35:57 -0700</bug_when>
    <thetext>This is the shape including the points you guys reviewed. Removing USE_LOG_STDERR and added global flag ENABLE_RELEASE_LOG. Actual checking in the entire code base is untouched, still RELEASE_LOG_DISABLED is used. ENABLE_RELEASE_LOG is used to define that value at the beginning of Assertions.h.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1799851</commentid>
    <comment_count>18</comment_count>
      <attachid>439898</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2021-10-03 08:23:05 -0700</bug_when>
    <thetext>Comment on attachment 439898
PATCH

A follow-up patch could replace RELEASE_LOG_DISABLED with ENABLE(RELEASE_LOG).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1799856</commentid>
    <comment_count>19</comment_count>
      <attachid>439898</attachid>
    <who name="Basuke Suzuki">basuke</who>
    <bug_when>2021-10-03 09:40:42 -0700</bug_when>
    <thetext>Comment on attachment 439898
PATCH

Thanks. I&apos;ll create a ticket for that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1799866</commentid>
    <comment_count>20</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-10-03 10:20:07 -0700</bug_when>
    <thetext>Committed r283469 (242446@main): &lt;https://commits.webkit.org/242446@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 439898.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>439652</attachid>
            <date>2021-09-29 14:01:00 -0700</date>
            <delta_ts>2021-09-30 18:07:21 -0700</delta_ts>
            <desc>PATCH</desc>
            <filename>patch.diff</filename>
            <type>text/plain</type>
            <size>4770</size>
            <attacher name="Basuke Suzuki">basuke</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cK
aW5kZXggNjExY2UwYzJlNWY4Li4zOWI4ZjAzNDc5ZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIw
MjEtMDktMjkgIEJhc3VrZSBTdXp1a2kgIDxiYXN1a2Uuc3V6dWtpQHNvbnkuY29tPgorCisgICAg
ICAgIFtQbGF5U3RhdGlvbl0gRW5hYmxlIHJlbGVhc2UgbG9nZ2luZyB0byBzdGRvdXQgb3Igc3Rk
ZXJyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzA3
MjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRl
ZCBuZXcgVVNFX0xPR19TVERPVVQgYW5kIFVTRV9MT0dfU1RERVJSIHdlYmtpdCBvcHRpb25zIGFu
ZCBpbXBsZW1lbnRlZCB0aGVtLgorCisgICAgICAgICogd3RmL0Fzc2VydGlvbnMuaDoKKyAgICAg
ICAgKiB3dGYvTG9nZ2VyLmg6CisgICAgICAgIChXVEY6OkxvZ2dlcjo6bG9nKToKKyAgICAgICAg
KFdURjo6TG9nZ2VyOjpsb2dWZXJib3NlKToKKwogMjAyMS0wOS0yOSAgQW50dGkgS29pdmlzdG8g
IDxhbnR0aUBhcHBsZS5jb20+CiAKICAgICAgICAgW0NTUyBDYXNjYWRlIExheWVyc10gRW5hYmxl
IGJ5IGRlZmF1bHQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0Fzc2VydGlvbnMuaCBiL1Nv
dXJjZS9XVEYvd3RmL0Fzc2VydGlvbnMuaAppbmRleCA2YjJmMGZiODQxNDcuLmYwZDM5MTlmNzc3
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvQXNzZXJ0aW9ucy5oCisrKyBiL1NvdXJjZS9X
VEYvd3RmL0Fzc2VydGlvbnMuaApAQCAtOTYsNyArOTYsNyBAQCBleHRlcm4gIkMiIHZvaWQgX1Jl
YWRXcml0ZUJhcnJpZXIodm9pZCk7CiAjZW5kaWYKIAogI2lmbmRlZiBSRUxFQVNFX0xPR19ESVNB
QkxFRAotI2RlZmluZSBSRUxFQVNFX0xPR19ESVNBQkxFRCAhKFVTRShPU19MT0cpIHx8IFVTRShK
T1VSTkFMRCkpCisjZGVmaW5lIFJFTEVBU0VfTE9HX0RJU0FCTEVEICEoVVNFKE9TX0xPRykgfHwg
VVNFKEpPVVJOQUxEKSB8fCBVU0UoTE9HX1NURE9VVCkgfHwgVVNFKExPR19TVERFUlIpKQogI2Vu
ZGlmCiAKICNpZm5kZWYgVkVSQk9TRV9SRUxFQVNFX0xPRwpAQCAtMTk4LDYgKzE5OCwxMCBAQCB0
eXBlZGVmIHN0cnVjdCB7CiAjZGVmaW5lIERFRklORV9MT0dfQ0hBTk5FTF9XSVRIX0RFVEFJTFMo
bmFtZSwgaW5pdGlhbFN0YXRlLCBsZXZlbCwgc3Vic3lzdGVtKSBcCiAgICAgV1RGTG9nQ2hhbm5l
bCBMT0dfQ0hBTk5FTChuYW1lKSA9IHsgaW5pdGlhbFN0YXRlLCAjbmFtZSwgbGV2ZWwsIHN1YnN5
c3RlbSB9OwogI2VuZGlmCisjaWYgVVNFKExPR19TVERPVVQpIHx8IFVTRShMT0dfU1RERVJSKSAm
JiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKKyNkZWZpbmUgREVGSU5FX0xPR19DSEFOTkVMKG5hbWUs
IHN1YnN5c3RlbSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBXVEZMb2dDaGFu
bmVsIExPR19DSEFOTkVMKG5hbWUpID0geyAoV1RGTG9nQ2hhbm5lbFN0YXRlKTAsICNuYW1lLCAo
V1RGTG9nTGV2ZWwpMSwgc3Vic3lzdGVtIH07CisjZW5kaWYKICNlbmRpZgogCiAvLyBUaGlzIGZp
bGUgaXMgaW5jbHVkZWQgZnJvbSBDIChub3QgQysrKSBmaWxlcywgc28gd2UgY2FuJ3Qgc2F5IHRo
aW5ncyBsaWtlIFdURkxvZ0NoYW5uZWxTdGF0ZTo6T2ZmLgpAQCAtNTg5LDYgKzU5Myw0MiBAQCBj
b25zdGV4cHIgYm9vbCBhc3NlcnRpb25GYWlsdXJlRHVlVG9VbnJlYWNoYWJsZUNvZGUgPSBmYWxz
ZTsKIH0gd2hpbGUgKDApCiAjZW5kaWYKIAorI2lmIChVU0UoTE9HX1NURE9VVCkgfHwgVVNFKExP
R19TVERFUlIpKSAmJiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKKyNpZiBVU0UoTE9HX1NURE9VVCkg
JiYgVVNFKExPR19TVERFUlIpCisjZXJyb3IgIkNhbm5vdCB1bmFibGUgYm90aCBVU0VfTE9HX1NU
RE9VVCBhbmQgVVNFX0xPR19TVERFUlIiCisjZW5kaWYKKworI2lmIFVTRShMT0dfU1RET1VUKQor
I2RlZmluZSBSRUxFQVNFX0xPR19GUCBzdGRvdXQKKyNlbGlmIFVTRShMT0dfU1RERVJSKQorI2Rl
ZmluZSBSRUxFQVNFX0xPR19GUCBzdGRlcnIKKyNlbmRpZgorCisjZGVmaW5lIFBVQkxJQ19MT0df
U1RSSU5HICJzIgorI2RlZmluZSBMT0dGKGNoYW5uZWwsIHByaW9yaXR5LCAuLi4pIGRvIHsgXAor
ICAgIGF1dG8mIGxvZ0NoYW5uZWwgPSBMT0dfQ0hBTk5FTChjaGFubmVsKTsgY2hhciBidWZbMjU2
XTsgXAorICAgIGlmIChsb2dDaGFubmVsLnN0YXRlICE9IFdURkxvZ0NoYW5uZWxTdGF0ZTo6T2Zm
KSB7IFwKKyAgICAgICAgc25wcmludGYoYnVmLCBzaXplb2YoYnVmKSwgX19WQV9BUkdTX18pOyBc
CisgICAgICAgIGZwcmludGYoUkVMRUFTRV9MT0dfRlAsICJbJXM6JXM6JWldICVzXG4iLCBsb2dD
aGFubmVsLnN1YnN5c3RlbSwgbG9nQ2hhbm5lbC5uYW1lLCBwcmlvcml0eSwgYnVmKTsgXAorICAg
IH0gXAorfSB3aGlsZSAoMCkKKworI2RlZmluZSBSRUxFQVNFX0xPRyhjaGFubmVsLCAuLi4pIExP
R0YoY2hhbm5lbCwgNCwgX19WQV9BUkdTX18pCisjZGVmaW5lIFJFTEVBU0VfTE9HX0VSUk9SKGNo
YW5uZWwsIC4uLikgTE9HRihjaGFubmVsLCAxLCBfX1ZBX0FSR1NfXykKKyNkZWZpbmUgUkVMRUFT
RV9MT0dfRkFVTFQoY2hhbm5lbCwgLi4uKSBMT0dGKGNoYW5uZWwsIDIsIF9fVkFfQVJHU19fKQor
I2RlZmluZSBSRUxFQVNFX0xPR19JTkZPKGNoYW5uZWwsIC4uLikgTE9HRihjaGFubmVsLCAzLCBf
X1ZBX0FSR1NfXykKKworI2RlZmluZSBSRUxFQVNFX0xPR19XSVRIX0xFVkVMKGNoYW5uZWwsIGxv
Z0xldmVsLCAuLi4pIGRvIHsgXAorICAgIGlmIChMT0dfQ0hBTk5FTChjaGFubmVsKS5sZXZlbCA+
PSAobG9nTGV2ZWwpKSBcCisgICAgICAgIExPR0YoY2hhbm5lbCwgbG9nTGV2ZWwsIF9fVkFfQVJH
U19fKTsgXAorfSB3aGlsZSAoMCkKKworI2RlZmluZSBSRUxFQVNFX0xPR19XSVRIX0xFVkVMX0lG
KGlzQWxsb3dlZCwgY2hhbm5lbCwgbG9nTGV2ZWwsIC4uLikgZG8geyBcCisgICAgaWYgKChpc0Fs
bG93ZWQpICYmIExPR19DSEFOTkVMKGNoYW5uZWwpLmxldmVsID49IChsb2dMZXZlbCkpIFwKKyAg
ICAgICAgTE9HRihjaGFubmVsLCBsb2dMZXZlbCwgX19WQV9BUkdTX18pOyBcCit9IHdoaWxlICgw
KQorI2VuZGlmCisKICNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICNkZWZpbmUgUkVMRUFTRV9M
T0dfU1RBQ0tUUkFDRShjaGFubmVsKSBXVEZSZWxlYXNlTG9nU3RhY2tUcmFjZSgmTE9HX0NIQU5O
RUwoY2hhbm5lbCkpCiAjZGVmaW5lIFJFTEVBU0VfTE9HX0lGKGlzQWxsb3dlZCwgY2hhbm5lbCwg
Li4uKSBkbyB7IGlmIChpc0FsbG93ZWQpIFJFTEVBU0VfTE9HKGNoYW5uZWwsIF9fVkFfQVJHU19f
KTsgfSB3aGlsZSAoMCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0xvZ2dlci5oIGIvU291
cmNlL1dURi93dGYvTG9nZ2VyLmgKaW5kZXggMjRkMTNiMTNlNzRhLi5jYWYxOTE0N2IzODMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0xvZ2dlci5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0xv
Z2dlci5oCkBAIC0zMTgsNiArMzE4LDkgQEAgcHJpdmF0ZToKICNpZiBVU0UoSk9VUk5BTEQpICYm
ICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAgICAgICBzZF9qb3VybmFsX3NlbmQoIldFQktJVF9T
VUJTWVNURU09JXMiLCBjaGFubmVsLnN1YnN5c3RlbSwgIldFQktJVF9DSEFOTkVMPSVzIiwgY2hh
bm5lbC5uYW1lLCAiTUVTU0FHRT0lcyIsIGxvZ01lc3NhZ2UudXRmOCgpLmRhdGEoKSwgbnVsbHB0
cik7CiAjZW5kaWYKKyNpZiAoVVNFKExPR19TVERPVVQpIHx8IFVTRShMT0dfU1RERVJSKSkgJiYg
IVJFTEVBU0VfTE9HX0RJU0FCTEVECisgICAgICAgIGZwcmludGYoUkVMRUFTRV9MT0dfRlAsICJb
JXM6JXM6LV0gJXNcbiIsIGNoYW5uZWwuc3Vic3lzdGVtLCBjaGFubmVsLm5hbWUsIGxvZ01lc3Nh
Z2UudXRmOCgpLmRhdGEoKSk7CisjZW5kaWYKIAogICAgICAgICBpZiAoY2hhbm5lbC5zdGF0ZSA9
PSBXVEZMb2dDaGFubmVsU3RhdGU6Ok9mZiB8fCBsZXZlbCA+IGNoYW5uZWwubGV2ZWwpCiAgICAg
ICAgICAgICByZXR1cm47CkBAIC0zNDksNiArMzUyLDkgQEAgcHJpdmF0ZToKICAgICAgICAgYXV0
byBsaW5lU3RyaW5nID0gbWFrZVN0cmluZygiQ09ERV9MSU5FPSIsIGxpbmUpOwogICAgICAgICBz
ZF9qb3VybmFsX3NlbmRfd2l0aF9sb2NhdGlvbihmaWxlU3RyaW5nLnV0ZjgoKS5kYXRhKCksIGxp
bmVTdHJpbmcudXRmOCgpLmRhdGEoKSwgZnVuY3Rpb24sICJXRUJLSVRfU1VCU1lTVEVNPSVzIiwg
Y2hhbm5lbC5zdWJzeXN0ZW0sICJXRUJLSVRfQ0hBTk5FTD0lcyIsIGNoYW5uZWwubmFtZSwgIk1F
U1NBR0U9JXMiLCBsb2dNZXNzYWdlLnV0ZjgoKS5kYXRhKCksIG51bGxwdHIpOwogI2VuZGlmCisj
aWYgKFVTRShMT0dfU1RET1VUKSB8fCBVU0UoTE9HX1NUREVSUikpICYmICFSRUxFQVNFX0xPR19E
SVNBQkxFRAorICAgICAgICBmcHJpbnRmKFJFTEVBU0VfTE9HX0ZQLCAiWyVzOiVzOi1dICVzIEZJ
TEU9JXM6JWQgJXNcbiIsIGNoYW5uZWwuc3Vic3lzdGVtLCBjaGFubmVsLm5hbWUsIGxvZ01lc3Nh
Z2UudXRmOCgpLmRhdGEoKSwgZmlsZSwgbGluZSwgZnVuY3Rpb24pOworI2VuZGlmCiAKICAgICAg
ICAgaWYgKGNoYW5uZWwuc3RhdGUgPT0gV1RGTG9nQ2hhbm5lbFN0YXRlOjpPZmYgfHwgbGV2ZWwg
PiBjaGFubmVsLmxldmVsKQogICAgICAgICAgICAgcmV0dXJuOw0K
</data>
<flag name="commit-queue"
          id="463489"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>439808</attachid>
            <date>2021-09-30 18:07:21 -0700</date>
            <delta_ts>2021-10-01 12:06:36 -0700</delta_ts>
            <desc>PATCH</desc>
            <filename>patch.diff</filename>
            <type>text/plain</type>
            <size>12917</size>
            <attacher name="Basuke Suzuki">basuke</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCAyOWEyMmNiYWQxZTQuLmY5
MjU1MGIwY2I0ZiAxMDA2NDQKLS0tIGEvQ2hhbmdlTG9nCisrKyBiL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE1IEBACisyMDIxLTA5LTMwICBCYXN1a2UgU3V6dWtpICA8YmFzdWtlLnN1enVraUBzb255
LmNvbT4KKworICAgICAgICBbUGxheVN0YXRpb25dIEVuYWJsZSByZWxlYXNlIGxvZ2dpbmcgdG8g
c3Rkb3V0IG9yIHN0ZGVycgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjMwNzI1CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84Mzc0MDUyOT4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbnRyb2R1Y2VkIG5l
dyBmbGFncywgVVNFX0xPR19TVERPVVQgYW5kIFVTRV9MT0dfU1RERVJSIGZvciByZWxlYXNlIGxv
Z2dpbmcuCisKKyAgICAgICAgKiBTb3VyY2UvY21ha2UvT3B0aW9uc1BsYXlTdGF0aW9uLmNtYWtl
OgorCiAyMDIxLTA5LTI5ICBLaW1tbyBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CiAK
ICAgICAgICAgTWVkaWFTdHJlYW0gY2FudmFzLmNhcHR1cmVTdHJlYW0oKSBmYWlscyBmb3IgV2Vi
R0wKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VM
b2cKaW5kZXggOTA5OTYxMTFjN2FlLi40NTcxYmI1MTQ5Y2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
VEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAK
KzIwMjEtMDktMzAgIEJhc3VrZSBTdXp1a2kgIDxiYXN1a2Uuc3V6dWtpQHNvbnkuY29tPgorCisg
ICAgICAgIFtQbGF5U3RhdGlvbl0gRW5hYmxlIHJlbGVhc2UgbG9nZ2luZyB0byBzdGRvdXQgb3Ig
c3RkZXJyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MzA3MjUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgzNzQwNTI5PgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIERlZmluZSBuZXcgY29tcGlsZXIgZGVm
aW5pdGlvbnMsIFVTRV9MT0dfU1RET1VUIGFuZCBVU0VfTE9HX1NUREVSUiBmb3IgcmVsZWFzZQor
ICAgICAgICBsb2dnaW5nLiBXZSBkb24ndCBoYXZlIG1vZGVybiBsb2dnaW5nIGJhY2tlbmQgc28g
dGhhdCBkdW1waW5nIG91dCB0byBzdGRvdXQvc3RkZXJyCisgICAgICAgIGlzIHN0aWxsIHZlcnkg
dmFsdWFibGUuIAorCisgICAgICAgICogd3RmL0Fzc2VydGlvbnMuY3BwOgorICAgICAgICAqIHd0
Zi9Bc3NlcnRpb25zLmg6CisgICAgICAgICogd3RmL0xvZ2dlci5oOgorICAgICAgICAoV1RGOjpM
b2dnZXI6OmxvZyk6CisgICAgICAgIChXVEY6OkxvZ2dlcjo6bG9nVmVyYm9zZSk6CisKIDIwMjEt
MDktMjkgIEZ1amlpIEhpcm9ub3JpICA8SGlyb25vcmkuRnVqaWlAc29ueS5jb20+CiAKICAgICAg
ICAgW1dpbkNhaXJvXSBSRUdSRVNTSU9OKHIyODA3MjYpOiByZWdpc3RyeSBrZXlzIGVuYWJsaW5n
IEdQVSBwcm9jZXNzIG1vZGUgZG9uJ3Qgd29yawpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYv
QXNzZXJ0aW9ucy5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9Bc3NlcnRpb25zLmNwcAppbmRleCBlMDk2
YTAzMmM4OTcuLjZkZDU0YzYxNDc4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvQXNzZXJ0
aW9ucy5jcHAKKysrIGIvU291cmNlL1dURi93dGYvQXNzZXJ0aW9ucy5jcHAKQEAgLTU5LDcgKzU5
LDcgQEAKICNpbmNsdWRlIDx1bmlzdGQuaD4KICNlbmRpZgogCi0jaWYgVVNFKEpPVVJOQUxEKQor
I2lmIFVTRShKT1VSTkFMRCkgfHwgVVNFKExPR19TVERPVVQpIHx8IFVTRShMT0dfU1RERVJSKQog
I2luY2x1ZGUgPHd0Zi9TdHJpbmdQcmludFN0cmVhbS5oPgogI2VuZGlmCiAKQEAgLTYwMSw3ICs2
MDEsNyBAQCB2b2lkIFdURlJlbGVhc2VMb2dTdGFja1RyYWNlKFdURkxvZ0NoYW5uZWwqIGNoYW5u
ZWwpCiAgICAgICAgICAgICAgICAgb3NfbG9nKGNoYW5uZWwtPm9zTG9nQ2hhbm5lbCwgIiUtM2Qg
JXAgJXtwdWJsaWN9cyIsIGZyYW1lTnVtYmVyLCBzdGFja0ZyYW1lLCBkZW1hbmdsZWQtPm1hbmds
ZWROYW1lKCkpOwogICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgIG9zX2xvZyhjaGFu
bmVsLT5vc0xvZ0NoYW5uZWwsICIlLTNkICVwIiwgZnJhbWVOdW1iZXIsIHN0YWNrRnJhbWUpOwot
I2VsaWYgVVNFKEpPVVJOQUxEKQorI2VsaWYgVVNFKEpPVVJOQUxEKSB8fCBVU0UoTE9HX1NURE9V
VCkgfHwgVVNFKExPR19TVERFUlIpCiAgICAgICAgICAgICBTdHJpbmdQcmludFN0cmVhbSBvdXQ7
CiAgICAgICAgICAgICBpZiAoZGVtYW5nbGVkICYmIGRlbWFuZ2xlZC0+ZGVtYW5nbGVkTmFtZSgp
KQogICAgICAgICAgICAgICAgIG91dC5wcmludGYoIiUtM2QgJXAgJXMiLCBmcmFtZU51bWJlciwg
c3RhY2tGcmFtZSwgZGVtYW5nbGVkLT5kZW1hbmdsZWROYW1lKCkpOwpAQCAtNjA5LDcgKzYwOSwx
MSBAQCB2b2lkIFdURlJlbGVhc2VMb2dTdGFja1RyYWNlKFdURkxvZ0NoYW5uZWwqIGNoYW5uZWwp
CiAgICAgICAgICAgICAgICAgb3V0LnByaW50ZigiJS0zZCAlcCAlcyIsIGZyYW1lTnVtYmVyLCBz
dGFja0ZyYW1lLCBkZW1hbmdsZWQtPm1hbmdsZWROYW1lKCkpOwogICAgICAgICAgICAgZWxzZQog
ICAgICAgICAgICAgICAgIG91dC5wcmludGYoIiUtM2QgJXAiLCBmcmFtZU51bWJlciwgc3RhY2tG
cmFtZSk7CisjaWYgVVNFKEpPVVJOQUxEKQogICAgICAgICAgICAgc2Rfam91cm5hbF9zZW5kKCJX
RUJLSVRfU1VCU1lTVEVNPSVzIiwgY2hhbm5lbC0+c3Vic3lzdGVtLCAiV0VCS0lUX0NIQU5ORUw9
JXMiLCBjaGFubmVsLT5uYW1lLCAiTUVTU0FHRT0lcyIsIG91dC50b0NTdHJpbmcoKS5kYXRhKCks
IG51bGxwdHIpOworI2VsaWYgVVNFKExPR19TVERPVVQpIHx8IFVTRShMT0dfU1RERVJSKQorICAg
ICAgICAgICAgZnByaW50ZihSRUxFQVNFX0xPR19GUCwgIlslczolczotXSAlc1xuIiwgY2hhbm5l
bC0+c3Vic3lzdGVtLCBjaGFubmVsLT5uYW1lLCBvdXQudG9DU3RyaW5nKCkuZGF0YSgpKTsKKyNl
bmRpZgogI2VuZGlmCiAgICAgICAgIH0KICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0
Zi9Bc3NlcnRpb25zLmggYi9Tb3VyY2UvV1RGL3d0Zi9Bc3NlcnRpb25zLmgKaW5kZXggNmIyZjBm
Yjg0MTQ3Li45ZGJlZDdiZTQwNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0Fzc2VydGlv
bnMuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9Bc3NlcnRpb25zLmgKQEAgLTk2LDcgKzk2LDcgQEAg
ZXh0ZXJuICJDIiB2b2lkIF9SZWFkV3JpdGVCYXJyaWVyKHZvaWQpOwogI2VuZGlmCiAKICNpZm5k
ZWYgUkVMRUFTRV9MT0dfRElTQUJMRUQKLSNkZWZpbmUgUkVMRUFTRV9MT0dfRElTQUJMRUQgIShV
U0UoT1NfTE9HKSB8fCBVU0UoSk9VUk5BTEQpKQorI2RlZmluZSBSRUxFQVNFX0xPR19ESVNBQkxF
RCAhKFVTRShPU19MT0cpIHx8IFVTRShKT1VSTkFMRCkgfHwgVVNFKExPR19TVERPVVQpIHx8IFVT
RShMT0dfU1RERVJSKSkKICNlbmRpZgogCiAjaWZuZGVmIFZFUkJPU0VfUkVMRUFTRV9MT0cKQEAg
LTE3OCw2ICsxNzgsOCBAQCB0eXBlZGVmIHN0cnVjdCB7CiAjZGVmaW5lIExPR19DSEFOTkVMX1dF
QktJVF9TVUJTWVNURU0gIldlYktpdEdUSyIKICNlbGlmIFBMQVRGT1JNKFdQRSkKICNkZWZpbmUg
TE9HX0NIQU5ORUxfV0VCS0lUX1NVQlNZU1RFTSAiV1BFV2ViS2l0IgorI2VsaWYgUExBVEZPUk0o
UExBWVNUQVRJT04pCisjZGVmaW5lIExPR19DSEFOTkVMX1dFQktJVF9TVUJTWVNURU0gIlNjZU5L
V2ViS2l0IgogI2Vsc2UKICNkZWZpbmUgTE9HX0NIQU5ORUxfV0VCS0lUX1NVQlNZU1RFTSAiY29t
LmFwcGxlLldlYktpdCIKICNlbmRpZgpAQCAtMTk4LDYgKzIwMCwxMCBAQCB0eXBlZGVmIHN0cnVj
dCB7CiAjZGVmaW5lIERFRklORV9MT0dfQ0hBTk5FTF9XSVRIX0RFVEFJTFMobmFtZSwgaW5pdGlh
bFN0YXRlLCBsZXZlbCwgc3Vic3lzdGVtKSBcCiAgICAgV1RGTG9nQ2hhbm5lbCBMT0dfQ0hBTk5F
TChuYW1lKSA9IHsgaW5pdGlhbFN0YXRlLCAjbmFtZSwgbGV2ZWwsIHN1YnN5c3RlbSB9OwogI2Vu
ZGlmCisjaWYgKFVTRShMT0dfU1RET1VUKSB8fCBVU0UoTE9HX1NUREVSUikpICYmICFSRUxFQVNF
X0xPR19ESVNBQkxFRAorI2RlZmluZSBERUZJTkVfTE9HX0NIQU5ORUxfV0lUSF9ERVRBSUxTKG5h
bWUsIGluaXRpYWxTdGF0ZSwgbGV2ZWwsIHN1YnN5c3RlbSkgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFwKKyAgICBXVEZMb2dDaGFubmVsIExPR19DSEFOTkVMKG5hbWUpID0geyBpbml0aWFs
U3RhdGUsICNuYW1lLCBsZXZlbCwgc3Vic3lzdGVtIH07CisjZW5kaWYKICNlbmRpZgogCiAvLyBU
aGlzIGZpbGUgaXMgaW5jbHVkZWQgZnJvbSBDIChub3QgQysrKSBmaWxlcywgc28gd2UgY2FuJ3Qg
c2F5IHRoaW5ncyBsaWtlIFdURkxvZ0NoYW5uZWxTdGF0ZTo6T2ZmLgpAQCAtNTg5LDYgKzU5NSw0
MSBAQCBjb25zdGV4cHIgYm9vbCBhc3NlcnRpb25GYWlsdXJlRHVlVG9VbnJlYWNoYWJsZUNvZGUg
PSBmYWxzZTsKIH0gd2hpbGUgKDApCiAjZW5kaWYKIAorI2lmIChVU0UoTE9HX1NURE9VVCkgfHwg
VVNFKExPR19TVERFUlIpKSAmJiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKKyNpZiBVU0UoTE9HX1NU
RE9VVCkgJiYgVVNFKExPR19TVERFUlIpCisjZXJyb3IgIkNhbm5vdCB1bmFibGUgYm90aCBVU0Vf
TE9HX1NURE9VVCBhbmQgVVNFX0xPR19TVERFUlIiCisjZW5kaWYKKworI2lmIFVTRShMT0dfU1RE
T1VUKQorI2RlZmluZSBSRUxFQVNFX0xPR19GUCBzdGRvdXQKKyNlbGlmIFVTRShMT0dfU1RERVJS
KQorI2RlZmluZSBSRUxFQVNFX0xPR19GUCBzdGRlcnIKKyNlbmRpZgorCisjZGVmaW5lIFBVQkxJ
Q19MT0dfU1RSSU5HICJzIgorI2RlZmluZSBQUklWQVRFX0xPR19TVFJJTkcgInMiCisjZGVmaW5l
IExPR0YoY2hhbm5lbCwgcHJpb3JpdHksIGZtdCwgLi4uKSBkbyB7IFwKKyAgICBhdXRvJiBsb2dD
aGFubmVsID0gTE9HX0NIQU5ORUwoY2hhbm5lbCk7IFwKKyAgICBpZiAobG9nQ2hhbm5lbC5zdGF0
ZSAhPSBXVEZMb2dDaGFubmVsU3RhdGU6Ok9mZikgXAorICAgICAgICBmcHJpbnRmKFJFTEVBU0Vf
TE9HX0ZQLCAiWyVzOiVzOiVpXSAiIGZtdCAiXG4iLCBsb2dDaGFubmVsLnN1YnN5c3RlbSwgbG9n
Q2hhbm5lbC5uYW1lLCBwcmlvcml0eSwgIyNfX1ZBX0FSR1NfXyk7IFwKK30gd2hpbGUgKDApCisK
KyNkZWZpbmUgUkVMRUFTRV9MT0coY2hhbm5lbCwgLi4uKSBMT0dGKGNoYW5uZWwsIDQsIF9fVkFf
QVJHU19fKQorI2RlZmluZSBSRUxFQVNFX0xPR19FUlJPUihjaGFubmVsLCAuLi4pIExPR0YoY2hh
bm5lbCwgMSwgX19WQV9BUkdTX18pCisjZGVmaW5lIFJFTEVBU0VfTE9HX0ZBVUxUKGNoYW5uZWws
IC4uLikgTE9HRihjaGFubmVsLCAyLCBfX1ZBX0FSR1NfXykKKyNkZWZpbmUgUkVMRUFTRV9MT0df
SU5GTyhjaGFubmVsLCAuLi4pIExPR0YoY2hhbm5lbCwgMywgX19WQV9BUkdTX18pCisKKyNkZWZp
bmUgUkVMRUFTRV9MT0dfV0lUSF9MRVZFTChjaGFubmVsLCBsb2dMZXZlbCwgLi4uKSBkbyB7IFwK
KyAgICBpZiAoTE9HX0NIQU5ORUwoY2hhbm5lbCkubGV2ZWwgPj0gKGxvZ0xldmVsKSkgXAorICAg
ICAgICBMT0dGKGNoYW5uZWwsIGxvZ0xldmVsLCBfX1ZBX0FSR1NfXyk7IFwKK30gd2hpbGUgKDAp
CisKKyNkZWZpbmUgUkVMRUFTRV9MT0dfV0lUSF9MRVZFTF9JRihpc0FsbG93ZWQsIGNoYW5uZWws
IGxvZ0xldmVsLCAuLi4pIGRvIHsgXAorICAgIGlmICgoaXNBbGxvd2VkKSAmJiBMT0dfQ0hBTk5F
TChjaGFubmVsKS5sZXZlbCA+PSAobG9nTGV2ZWwpKSBcCisgICAgICAgIExPR0YoY2hhbm5lbCwg
bG9nTGV2ZWwsIF9fVkFfQVJHU19fKTsgXAorfSB3aGlsZSAoMCkKKyNlbmRpZgorCiAjaWYgIVJF
TEVBU0VfTE9HX0RJU0FCTEVECiAjZGVmaW5lIFJFTEVBU0VfTE9HX1NUQUNLVFJBQ0UoY2hhbm5l
bCkgV1RGUmVsZWFzZUxvZ1N0YWNrVHJhY2UoJkxPR19DSEFOTkVMKGNoYW5uZWwpKQogI2RlZmlu
ZSBSRUxFQVNFX0xPR19JRihpc0FsbG93ZWQsIGNoYW5uZWwsIC4uLikgZG8geyBpZiAoaXNBbGxv
d2VkKSBSRUxFQVNFX0xPRyhjaGFubmVsLCBfX1ZBX0FSR1NfXyk7IH0gd2hpbGUgKDApCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9Mb2dnZXIuaCBiL1NvdXJjZS9XVEYvd3RmL0xvZ2dlci5o
CmluZGV4IDI0ZDEzYjEzZTc0YS4uZTY3ZWQ1YjgzYzJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RG
L3d0Zi9Mb2dnZXIuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9Mb2dnZXIuaApAQCAtMjUsNiArMjUs
NyBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CiAjaW5j
bHVkZSA8d3RmL0xvY2suaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaD4K
ICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CkBAIC0zMTgsNiArMzE5LDkgQEAg
cHJpdmF0ZToKICNpZiBVU0UoSk9VUk5BTEQpICYmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAg
ICAgICBzZF9qb3VybmFsX3NlbmQoIldFQktJVF9TVUJTWVNURU09JXMiLCBjaGFubmVsLnN1YnN5
c3RlbSwgIldFQktJVF9DSEFOTkVMPSVzIiwgY2hhbm5lbC5uYW1lLCAiTUVTU0FHRT0lcyIsIGxv
Z01lc3NhZ2UudXRmOCgpLmRhdGEoKSwgbnVsbHB0cik7CiAjZW5kaWYKKyNpZiAoVVNFKExPR19T
VERPVVQpIHx8IFVTRShMT0dfU1RERVJSKSkgJiYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECisgICAg
ICAgIGZwcmludGYoUkVMRUFTRV9MT0dfRlAsICJbJXM6JXM6LV0gJXNcbiIsIGNoYW5uZWwuc3Vi
c3lzdGVtLCBjaGFubmVsLm5hbWUsIGxvZ01lc3NhZ2UudXRmOCgpLmRhdGEoKSk7CisjZW5kaWYK
IAogICAgICAgICBpZiAoY2hhbm5lbC5zdGF0ZSA9PSBXVEZMb2dDaGFubmVsU3RhdGU6Ok9mZiB8
fCBsZXZlbCA+IGNoYW5uZWwubGV2ZWwpCiAgICAgICAgICAgICByZXR1cm47CkBAIC0zNDksNiAr
MzUzLDkgQEAgcHJpdmF0ZToKICAgICAgICAgYXV0byBsaW5lU3RyaW5nID0gbWFrZVN0cmluZygi
Q09ERV9MSU5FPSIsIGxpbmUpOwogICAgICAgICBzZF9qb3VybmFsX3NlbmRfd2l0aF9sb2NhdGlv
bihmaWxlU3RyaW5nLnV0ZjgoKS5kYXRhKCksIGxpbmVTdHJpbmcudXRmOCgpLmRhdGEoKSwgZnVu
Y3Rpb24sICJXRUJLSVRfU1VCU1lTVEVNPSVzIiwgY2hhbm5lbC5zdWJzeXN0ZW0sICJXRUJLSVRf
Q0hBTk5FTD0lcyIsIGNoYW5uZWwubmFtZSwgIk1FU1NBR0U9JXMiLCBsb2dNZXNzYWdlLnV0Zjgo
KS5kYXRhKCksIG51bGxwdHIpOwogI2VuZGlmCisjaWYgKFVTRShMT0dfU1RET1VUKSB8fCBVU0Uo
TE9HX1NUREVSUikpICYmICFSRUxFQVNFX0xPR19ESVNBQkxFRAorICAgICAgICBmcHJpbnRmKFJF
TEVBU0VfTE9HX0ZQLCAiWyVzOiVzOi1dICVzIEZJTEU9JXM6JWQgJXNcbiIsIGNoYW5uZWwuc3Vi
c3lzdGVtLCBjaGFubmVsLm5hbWUsIGxvZ01lc3NhZ2UudXRmOCgpLmRhdGEoKSwgZmlsZSwgbGlu
ZSwgZnVuY3Rpb24pOworI2VuZGlmCiAKICAgICAgICAgaWYgKGNoYW5uZWwuc3RhdGUgPT0gV1RG
TG9nQ2hhbm5lbFN0YXRlOjpPZmYgfHwgbGV2ZWwgPiBjaGFubmVsLmxldmVsKQogICAgICAgICAg
ICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDFjNTQzMmU2MTMwMS4uOTc3NDhhMTI0OWRhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMjEtMDktMzAgIEJhc3VrZSBTdXp1a2kgIDxiYXN1
a2Uuc3V6dWtpQHNvbnkuY29tPgorCisgICAgICAgIFtQbGF5U3RhdGlvbl0gRW5hYmxlIHJlbGVh
c2UgbG9nZ2luZyB0byBzdGRvdXQgb3Igc3RkZXJyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzA3MjUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgz
NzQwNTI5PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFNRTGl0ZURhdGFiYXNlIHVzZXMgaGFyZC1jb2RlZCAle3B1YmxpY30gZm9ybWF0IHNwZWNpZmll
cnMuIFJlcGxhY2UgdGhlbSB3aXRoIGRlZmluZWQKKyAgICAgICAgbWFjcm8uCisKKyAgICAgICAg
Tm8gbmV3IHRlc3RzIGJlY2F1c2UgdGhlcmUgaXMgbm8gYmVoYXZpb3IgY2hhbmdlLgorCisgICAg
ICAgICogcGxhdGZvcm0vc3FsL1NRTGl0ZURhdGFiYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlNRTGl0ZURhdGFiYXNlOjpjbG9zZSk6CisgICAgICAgIChXZWJDb3JlOjpTUUxpdGVEYXRhYmFz
ZTo6cHJlcGFyZVN0YXRlbWVudFNsb3cpOgorICAgICAgICAoV2ViQ29yZTo6U1FMaXRlRGF0YWJh
c2U6OnByZXBhcmVTdGF0ZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6U1FMaXRlRGF0YWJhc2U6
OnByZXBhcmVIZWFwU3RhdGVtZW50U2xvdyk6CisgICAgICAgIChXZWJDb3JlOjpTUUxpdGVEYXRh
YmFzZTo6cHJlcGFyZUhlYXBTdGF0ZW1lbnQpOgorCiAyMDIxLTA5LTI5ICBCYXN1a2UgU3V6dWtp
ICA8YmFzdWtlLnN1enVraUBzb255LmNvbT4KIAogICAgICAgICBTdXBwcmVzcyB3YXJuaW5ncyBm
b3IgaW1wbGljaXQgY29weSBhc3NpZ25tZW50IG9wZXJhdG9yL2NvcHkgY29uc3RydWN0b3Igd2l0
aCBjbGFuZyAxMwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3FsL1NRTGl0
ZURhdGFiYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NxbC9TUUxpdGVEYXRhYmFz
ZS5jcHAKaW5kZXggMTg0MzgzOTk3ZDU1Li40NzMzZjk5OGI3NTAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3NxbC9TUUxpdGVEYXRhYmFzZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vc3FsL1NRTGl0ZURhdGFiYXNlLmNwcApAQCAtMjYxLDcgKzI2MSw3IEBA
IHZvaWQgU1FMaXRlRGF0YWJhc2U6OmNsb3NlKFNob3VsZFNldEVycm9yU3RhdGUgc2hvdWxkU2V0
RXJyb3JTdGF0ZSkKICAgICAgICAgICAgIGNsb3NlUmVzdWx0ID0gc3FsaXRlM19jbG9zZShkYik7
CiAKICAgICAgICAgaWYgKGNsb3NlUmVzdWx0ICE9IFNRTElURV9PSykKLSAgICAgICAgICAgIFJF
TEVBU0VfTE9HX0VSUk9SKFNRTERhdGFiYXNlLCAiU1FMaXRlRGF0YWJhc2U6OmNsb3NlOiBGYWls
ZWQgdG8gY2xvc2UgZGF0YWJhc2UgKCVkKSAtICV7cHVibGljfXMiLCBjbG9zZVJlc3VsdCwgbGFz
dEVycm9yTXNnKCkpOworICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoU1FMRGF0YWJhc2Us
ICJTUUxpdGVEYXRhYmFzZTo6Y2xvc2U6IEZhaWxlZCB0byBjbG9zZSBkYXRhYmFzZSAoJWQpIC0g
JSIgUFVCTElDX0xPR19TVFJJTkcsIGNsb3NlUmVzdWx0LCBsYXN0RXJyb3JNc2coKSk7CiAgICAg
fQogCiAgICAgaWYgKHNob3VsZFNldEVycm9yU3RhdGUgPT0gU2hvdWxkU2V0RXJyb3JTdGF0ZTo6
WWVzKSB7CkBAIC03MTcsNyArNzE3LDcgQEAgRXhwZWN0ZWQ8U1FMaXRlU3RhdGVtZW50LCBpbnQ+
IFNRTGl0ZURhdGFiYXNlOjpwcmVwYXJlU3RhdGVtZW50U2xvdyhjb25zdCBTdHJpbmcKICAgICBD
U3RyaW5nIHF1ZXJ5ID0gcXVlcnlTdHJpbmcuc3RyaXBXaGl0ZVNwYWNlKCkudXRmOCgpOwogICAg
IGF1dG8gc3FsU3RhdGVtZW50ID0gY29uc3RydWN0QW5kUHJlcGFyZVN0YXRlbWVudCgqdGhpcywg
cXVlcnkuZGF0YSgpLCBxdWVyeS5sZW5ndGgoKSk7CiAgICAgaWYgKCFzcWxTdGF0ZW1lbnQpIHsK
LSAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoU1FMRGF0YWJhc2UsICJTUUxpdGVEYXRhYmFzZTo6
cHJlcGFyZVN0YXRlbWVudDogRmFpbGVkIHRvIHByZXBhcmUgc3RhdGVtZW50ICV7cHVibGljfXMi
LCBxdWVyeS5kYXRhKCkpOworICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihTUUxEYXRhYmFzZSwg
IlNRTGl0ZURhdGFiYXNlOjpwcmVwYXJlU3RhdGVtZW50OiBGYWlsZWQgdG8gcHJlcGFyZSBzdGF0
ZW1lbnQgJSIgUFVCTElDX0xPR19TVFJJTkcsIHF1ZXJ5LmRhdGEoKSk7CiAgICAgICAgIHJldHVy
biBtYWtlVW5leHBlY3RlZChzcWxTdGF0ZW1lbnQuZXJyb3IoKSk7CiAgICAgfQogICAgIHJldHVy
biBTUUxpdGVTdGF0ZW1lbnQgeyAqdGhpcywgc3FsU3RhdGVtZW50LnZhbHVlKCkgfTsKQEAgLTcy
Nyw3ICs3MjcsNyBAQCBFeHBlY3RlZDxTUUxpdGVTdGF0ZW1lbnQsIGludD4gU1FMaXRlRGF0YWJh
c2U6OnByZXBhcmVTdGF0ZW1lbnQoQVNDSUlMaXRlcmFsIHF1ZQogewogICAgIGF1dG8gc3FsU3Rh
dGVtZW50ID0gY29uc3RydWN0QW5kUHJlcGFyZVN0YXRlbWVudCgqdGhpcywgcXVlcnkuY2hhcmFj
dGVycygpLCBxdWVyeS5sZW5ndGgoKSk7CiAgICAgaWYgKCFzcWxTdGF0ZW1lbnQpIHsKLSAgICAg
ICAgUkVMRUFTRV9MT0dfRVJST1IoU1FMRGF0YWJhc2UsICJTUUxpdGVEYXRhYmFzZTo6cHJlcGFy
ZVN0YXRlbWVudDogRmFpbGVkIHRvIHByZXBhcmUgc3RhdGVtZW50ICV7cHVibGljfXMiLCBxdWVy
eS5jaGFyYWN0ZXJzKCkpOworICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihTUUxEYXRhYmFzZSwg
IlNRTGl0ZURhdGFiYXNlOjpwcmVwYXJlU3RhdGVtZW50OiBGYWlsZWQgdG8gcHJlcGFyZSBzdGF0
ZW1lbnQgJSIgUFVCTElDX0xPR19TVFJJTkcsIHF1ZXJ5LmNoYXJhY3RlcnMoKSk7CiAgICAgICAg
IHJldHVybiBtYWtlVW5leHBlY3RlZChzcWxTdGF0ZW1lbnQuZXJyb3IoKSk7CiAgICAgfQogICAg
IHJldHVybiBTUUxpdGVTdGF0ZW1lbnQgeyAqdGhpcywgc3FsU3RhdGVtZW50LnZhbHVlKCkgfTsK
QEAgLTczOCw3ICs3MzgsNyBAQCBFeHBlY3RlZDxVbmlxdWVSZWY8U1FMaXRlU3RhdGVtZW50Piwg
aW50PiBTUUxpdGVEYXRhYmFzZTo6cHJlcGFyZUhlYXBTdGF0ZW1lbnRTbAogICAgIENTdHJpbmcg
cXVlcnkgPSBxdWVyeVN0cmluZy5zdHJpcFdoaXRlU3BhY2UoKS51dGY4KCk7CiAgICAgYXV0byBz
cWxTdGF0ZW1lbnQgPSBjb25zdHJ1Y3RBbmRQcmVwYXJlU3RhdGVtZW50KCp0aGlzLCBxdWVyeS5k
YXRhKCksIHF1ZXJ5Lmxlbmd0aCgpKTsKICAgICBpZiAoIXNxbFN0YXRlbWVudCkgewotICAgICAg
ICBSRUxFQVNFX0xPR19FUlJPUihTUUxEYXRhYmFzZSwgIlNRTGl0ZURhdGFiYXNlOjpwcmVwYXJl
SGVhcFN0YXRlbWVudDogRmFpbGVkIHRvIHByZXBhcmUgc3RhdGVtZW50ICV7cHVibGljfXMiLCBx
dWVyeS5kYXRhKCkpOworICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihTUUxEYXRhYmFzZSwgIlNR
TGl0ZURhdGFiYXNlOjpwcmVwYXJlSGVhcFN0YXRlbWVudDogRmFpbGVkIHRvIHByZXBhcmUgc3Rh
dGVtZW50ICUiIFBVQkxJQ19MT0dfU1RSSU5HLCBxdWVyeS5kYXRhKCkpOwogICAgICAgICByZXR1
cm4gbWFrZVVuZXhwZWN0ZWQoc3FsU3RhdGVtZW50LmVycm9yKCkpOwogICAgIH0KICAgICByZXR1
cm4gVW5pcXVlUmVmPFNRTGl0ZVN0YXRlbWVudD4oKm5ldyBTUUxpdGVTdGF0ZW1lbnQoKnRoaXMs
IHNxbFN0YXRlbWVudC52YWx1ZSgpKSk7CkBAIC03NDgsNyArNzQ4LDcgQEAgRXhwZWN0ZWQ8VW5p
cXVlUmVmPFNRTGl0ZVN0YXRlbWVudD4sIGludD4gU1FMaXRlRGF0YWJhc2U6OnByZXBhcmVIZWFw
U3RhdGVtZW50KEEKIHsKICAgICBhdXRvIHNxbFN0YXRlbWVudCA9IGNvbnN0cnVjdEFuZFByZXBh
cmVTdGF0ZW1lbnQoKnRoaXMsIHF1ZXJ5LmNoYXJhY3RlcnMoKSwgcXVlcnkubGVuZ3RoKCkpOwog
ICAgIGlmICghc3FsU3RhdGVtZW50KSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFNRTERh
dGFiYXNlLCAiU1FMaXRlRGF0YWJhc2U6OnByZXBhcmVIZWFwU3RhdGVtZW50OiBGYWlsZWQgdG8g
cHJlcGFyZSBzdGF0ZW1lbnQgJXtwdWJsaWN9cyIsIHF1ZXJ5LmNoYXJhY3RlcnMoKSk7CisgICAg
ICAgIFJFTEVBU0VfTE9HX0VSUk9SKFNRTERhdGFiYXNlLCAiU1FMaXRlRGF0YWJhc2U6OnByZXBh
cmVIZWFwU3RhdGVtZW50OiBGYWlsZWQgdG8gcHJlcGFyZSBzdGF0ZW1lbnQgJSIgUFVCTElDX0xP
R19TVFJJTkcsIHF1ZXJ5LmNoYXJhY3RlcnMoKSk7CiAgICAgICAgIHJldHVybiBtYWtlVW5leHBl
Y3RlZChzcWxTdGF0ZW1lbnQuZXJyb3IoKSk7CiAgICAgfQogICAgIHJldHVybiBVbmlxdWVSZWY8
U1FMaXRlU3RhdGVtZW50PigqbmV3IFNRTGl0ZVN0YXRlbWVudCgqdGhpcywgc3FsU3RhdGVtZW50
LnZhbHVlKCkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9jbWFrZS9PcHRpb25zUGxheVN0YXRpb24u
Y21ha2UgYi9Tb3VyY2UvY21ha2UvT3B0aW9uc1BsYXlTdGF0aW9uLmNtYWtlCmluZGV4IGE3MjI2
MDkyZGIwOS4uODk3ZTBlOTY1ZjJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvY21ha2UvT3B0aW9uc1Bs
YXlTdGF0aW9uLmNtYWtlCisrKyBiL1NvdXJjZS9jbWFrZS9PcHRpb25zUGxheVN0YXRpb24uY21h
a2UKQEAgLTMxLDYgKzMxLDEwIEBAIFdFQktJVF9PUFRJT05fQkVHSU4oKQogIyBQbGF5U3RhdGlv
biBTcGVjaWZpYyBPcHRpb25zCiBXRUJLSVRfT1BUSU9OX0RFRklORShFTkFCTEVfU1RBVElDX0pT
QyAiQ29udHJvbCB3aGV0aGVyIHRvIGJ1aWxkIGEgbm9uLXNoYXJlZCBKU0MiIFBVQkxJQyBPTikK
IAorIyBGb3IgcmVsZWFzZSBsb2cKK1dFQktJVF9PUFRJT05fREVGSU5FKFVTRV9MT0dfU1RET1VU
ICJUb2dnbGUgcmVsZWFzZSBsb2cgdG8gc3Rkb3V0IiBQVUJMSUMgT0ZGKQorV0VCS0lUX09QVElP
Tl9ERUZJTkUoVVNFX0xPR19TVERFUlIgIlRvZ2dsZSByZWxlYXNlIGxvZyB0byBzdGRlcnIiIFBV
QkxJQyBPRkYpCisKICMgVHVybiBvZmYgSklUCiBXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9W
QUxVRShFTkFCTEVfSklUIFBSSVZBVEUgT0ZGKQogV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRf
VkFMVUUoRU5BQkxFX0ZUTF9KSVQgUFJJVkFURSBPRkYpDQo=
</data>
<flag name="commit-queue"
          id="463544"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>439895</attachid>
            <date>2021-10-01 12:06:36 -0700</date>
            <delta_ts>2021-10-01 12:32:16 -0700</delta_ts>
            <desc>PATCH</desc>
            <filename>patch.diff</filename>
            <type>text/plain</type>
            <size>11757</size>
            <attacher name="Basuke Suzuki">basuke</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0Fzc2VydGlvbnMuY3BwIGIvU291cmNlL1dURi93
dGYvQXNzZXJ0aW9ucy5jcHAKaW5kZXggZTA5NmEwMzJjODk3Li4xYzUwNjIwMzU4YTIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0Fzc2VydGlvbnMuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3Rm
L0Fzc2VydGlvbnMuY3BwCkBAIC01OSw3ICs1OSw3IEBACiAjaW5jbHVkZSA8dW5pc3RkLmg+CiAj
ZW5kaWYKIAotI2lmIFVTRShKT1VSTkFMRCkKKyNpZiBVU0UoSk9VUk5BTEQpIHx8IFVTRShMT0df
U1RERVJSKQogI2luY2x1ZGUgPHd0Zi9TdHJpbmdQcmludFN0cmVhbS5oPgogI2VuZGlmCiAKQEAg
LTYwMSw3ICs2MDEsNyBAQCB2b2lkIFdURlJlbGVhc2VMb2dTdGFja1RyYWNlKFdURkxvZ0NoYW5u
ZWwqIGNoYW5uZWwpCiAgICAgICAgICAgICAgICAgb3NfbG9nKGNoYW5uZWwtPm9zTG9nQ2hhbm5l
bCwgIiUtM2QgJXAgJXtwdWJsaWN9cyIsIGZyYW1lTnVtYmVyLCBzdGFja0ZyYW1lLCBkZW1hbmds
ZWQtPm1hbmdsZWROYW1lKCkpOwogICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgIG9z
X2xvZyhjaGFubmVsLT5vc0xvZ0NoYW5uZWwsICIlLTNkICVwIiwgZnJhbWVOdW1iZXIsIHN0YWNr
RnJhbWUpOwotI2VsaWYgVVNFKEpPVVJOQUxEKQorI2Vsc2UKICAgICAgICAgICAgIFN0cmluZ1By
aW50U3RyZWFtIG91dDsKICAgICAgICAgICAgIGlmIChkZW1hbmdsZWQgJiYgZGVtYW5nbGVkLT5k
ZW1hbmdsZWROYW1lKCkpCiAgICAgICAgICAgICAgICAgb3V0LnByaW50ZigiJS0zZCAlcCAlcyIs
IGZyYW1lTnVtYmVyLCBzdGFja0ZyYW1lLCBkZW1hbmdsZWQtPmRlbWFuZ2xlZE5hbWUoKSk7CkBA
IC02MDksNyArNjA5LDExIEBAIHZvaWQgV1RGUmVsZWFzZUxvZ1N0YWNrVHJhY2UoV1RGTG9nQ2hh
bm5lbCogY2hhbm5lbCkKICAgICAgICAgICAgICAgICBvdXQucHJpbnRmKCIlLTNkICVwICVzIiwg
ZnJhbWVOdW1iZXIsIHN0YWNrRnJhbWUsIGRlbWFuZ2xlZC0+bWFuZ2xlZE5hbWUoKSk7CiAgICAg
ICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgb3V0LnByaW50ZigiJS0zZCAlcCIsIGZyYW1l
TnVtYmVyLCBzdGFja0ZyYW1lKTsKKyNpZiBVU0UoSk9VUk5BTEQpCiAgICAgICAgICAgICBzZF9q
b3VybmFsX3NlbmQoIldFQktJVF9TVUJTWVNURU09JXMiLCBjaGFubmVsLT5zdWJzeXN0ZW0sICJX
RUJLSVRfQ0hBTk5FTD0lcyIsIGNoYW5uZWwtPm5hbWUsICJNRVNTQUdFPSVzIiwgb3V0LnRvQ1N0
cmluZygpLmRhdGEoKSwgbnVsbHB0cik7CisjZWxzZQorICAgICAgICAgICAgZnByaW50ZihzdGRl
cnIsICJbJXM6JXM6LV0gJXNcbiIsIGNoYW5uZWwtPnN1YnN5c3RlbSwgY2hhbm5lbC0+bmFtZSwg
b3V0LnRvQ1N0cmluZygpLmRhdGEoKSk7CisjZW5kaWYKICNlbmRpZgogICAgICAgICB9CiAgICAg
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvQXNzZXJ0aW9ucy5oIGIvU291cmNlL1dURi93
dGYvQXNzZXJ0aW9ucy5oCmluZGV4IDZiMmYwZmI4NDE0Ny4uYmE0MWU4OTg2MzYzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV1RGL3d0Zi9Bc3NlcnRpb25zLmgKKysrIGIvU291cmNlL1dURi93dGYvQXNz
ZXJ0aW9ucy5oCkBAIC05Niw3ICs5Niw5IEBAIGV4dGVybiAiQyIgdm9pZCBfUmVhZFdyaXRlQmFy
cmllcih2b2lkKTsKICNlbmRpZgogCiAjaWZuZGVmIFJFTEVBU0VfTE9HX0RJU0FCTEVECi0jZGVm
aW5lIFJFTEVBU0VfTE9HX0RJU0FCTEVEICEoVVNFKE9TX0xPRykgfHwgVVNFKEpPVVJOQUxEKSkK
KyNkZWZpbmUgUkVMRUFTRV9MT0dfRElTQUJMRUQgIShVU0UoT1NfTE9HKSB8fCBVU0UoSk9VUk5B
TEQpIHx8IFVTRShMT0dfU1RERVJSKSkKKyNlbGlmICFSRUxFQVNFX0xPR19ESVNBQkxFRCAmJiAh
KFVTRShPU19MT0cpIHx8IFVTRShKT1VSTkFMRCkgfHwgVVNFKExPR19TVERFUlIpKQorI2Vycm9y
ICJPbmUgb2YgVVNFX09TX0xPRyBvciBVU0VfSk9VUk5BTEQgb3IgVVNFX0xPR19TVERFUlIgbXVz
dCBiZSB0cnVlIgogI2VuZGlmCiAKICNpZm5kZWYgVkVSQk9TRV9SRUxFQVNFX0xPRwpAQCAtMTc4
LDYgKzE4MCw4IEBAIHR5cGVkZWYgc3RydWN0IHsKICNkZWZpbmUgTE9HX0NIQU5ORUxfV0VCS0lU
X1NVQlNZU1RFTSAiV2ViS2l0R1RLIgogI2VsaWYgUExBVEZPUk0oV1BFKQogI2RlZmluZSBMT0df
Q0hBTk5FTF9XRUJLSVRfU1VCU1lTVEVNICJXUEVXZWJLaXQiCisjZWxpZiBQTEFURk9STShQTEFZ
U1RBVElPTikKKyNkZWZpbmUgTE9HX0NIQU5ORUxfV0VCS0lUX1NVQlNZU1RFTSAiU2NlTktXZWJL
aXQiCiAjZWxzZQogI2RlZmluZSBMT0dfQ0hBTk5FTF9XRUJLSVRfU1VCU1lTVEVNICJjb20uYXBw
bGUuV2ViS2l0IgogI2VuZGlmCkBAIC0xODksMTIgKzE5MywxMCBAQCB0eXBlZGVmIHN0cnVjdCB7
CiAjaWYgUkVMRUFTRV9MT0dfRElTQUJMRUQKICNkZWZpbmUgREVGSU5FX0xPR19DSEFOTkVMX1dJ
VEhfREVUQUlMUyhuYW1lLCBpbml0aWFsU3RhdGUsIGxldmVsLCBzdWJzeXN0ZW0pIFwKICAgICBX
VEZMb2dDaGFubmVsIExPR19DSEFOTkVMKG5hbWUpID0geyBpbml0aWFsU3RhdGUsICNuYW1lLCBs
ZXZlbCB9OwotI2VuZGlmCi0jaWYgVVNFKE9TX0xPRykgJiYgIVJFTEVBU0VfTE9HX0RJU0FCTEVE
CisjZWxpZiBVU0UoT1NfTE9HKQogI2RlZmluZSBERUZJTkVfTE9HX0NIQU5ORUxfV0lUSF9ERVRB
SUxTKG5hbWUsIGluaXRpYWxTdGF0ZSwgbGV2ZWwsIHN1YnN5c3RlbSkgXAogICAgIFdURkxvZ0No
YW5uZWwgTE9HX0NIQU5ORUwobmFtZSkgPSB7IGluaXRpYWxTdGF0ZSwgI25hbWUsIGxldmVsLCBz
dWJzeXN0ZW0sIE9TX0xPR19ERUZBVUxUIH07Ci0jZW5kaWYKLSNpZiBVU0UoSk9VUk5BTEQpICYm
ICFSRUxFQVNFX0xPR19ESVNBQkxFRAorI2Vsc2UKICNkZWZpbmUgREVGSU5FX0xPR19DSEFOTkVM
X1dJVEhfREVUQUlMUyhuYW1lLCBpbml0aWFsU3RhdGUsIGxldmVsLCBzdWJzeXN0ZW0pIFwKICAg
ICBXVEZMb2dDaGFubmVsIExPR19DSEFOTkVMKG5hbWUpID0geyBpbml0aWFsU3RhdGUsICNuYW1l
LCBsZXZlbCwgc3Vic3lzdGVtIH07CiAjZW5kaWYKQEAgLTUyOCw2ICs1MzAsNyBAQCBjb25zdGV4
cHIgYm9vbCBhc3NlcnRpb25GYWlsdXJlRHVlVG9VbnJlYWNoYWJsZUNvZGUgPSBmYWxzZTsKIC8q
IFJFTEVBU0VfTE9HICovCiAKICNpZiBSRUxFQVNFX0xPR19ESVNBQkxFRAorCiAjZGVmaW5lIFBV
QkxJQ19MT0dfU1RSSU5HICJzIgogI2RlZmluZSBQUklWQVRFX0xPR19TVFJJTkcgInMiCiAjZGVm
aW5lIFJFTEVBU0VfTE9HKGNoYW5uZWwsIC4uLikgKCh2b2lkKTApCkBAIC01NDMsOSArNTQ2LDkg
QEAgY29uc3RleHByIGJvb2wgYXNzZXJ0aW9uRmFpbHVyZUR1ZVRvVW5yZWFjaGFibGVDb2RlID0g
ZmFsc2U7CiAjZGVmaW5lIFJFTEVBU0VfTE9HX1dJVEhfTEVWRUxfSUYoaXNBbGxvd2VkLCBjaGFu
bmVsLCBsZXZlbCwgLi4uKSBkbyB7IGlmIChpc0FsbG93ZWQpIFJFTEVBU0VfTE9HX1dJVEhfTEVW
RUwoY2hhbm5lbCwgbGV2ZWwsIF9fVkFfQVJHU19fKTsgfSB3aGlsZSAoMCkKIAogI2RlZmluZSBS
RUxFQVNFX0xPR19TVEFDS1RSQUNFKGNoYW5uZWwpICgodm9pZCkwKQotI2VuZGlmCiAKLSNpZiBV
U0UoT1NfTE9HKSAmJiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKKyNlbGlmIFVTRShPU19MT0cpCisK
ICNkZWZpbmUgUFVCTElDX0xPR19TVFJJTkcgIntwdWJsaWN9cyIKICNkZWZpbmUgUFJJVkFURV9M
T0dfU1RSSU5HICJ7cHJpdmF0ZX1zIgogI2RlZmluZSBSRUxFQVNFX0xPRyhjaGFubmVsLCAuLi4p
IG9zX2xvZyhMT0dfQ0hBTk5FTChjaGFubmVsKS5vc0xvZ0NoYW5uZWwsIF9fVkFfQVJHU19fKQpA
QCAtNTYxLDkgKzU2NCw5IEBAIGNvbnN0ZXhwciBib29sIGFzc2VydGlvbkZhaWx1cmVEdWVUb1Vu
cmVhY2hhYmxlQ29kZSA9IGZhbHNlOwogICAgIGlmICgoaXNBbGxvd2VkKSAmJiBMT0dfQ0hBTk5F
TChjaGFubmVsKS5sZXZlbCA+PSAobG9nTGV2ZWwpKSBcCiAgICAgICAgIG9zX2xvZyhMT0dfQ0hB
Tk5FTChjaGFubmVsKS5vc0xvZ0NoYW5uZWwsIF9fVkFfQVJHU19fKTsgXAogfSB3aGlsZSAoMCkK
LSNlbmRpZgogCi0jaWYgVVNFKEpPVVJOQUxEKSAmJiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKKyNl
bGlmIFVTRShKT1VSTkFMRCkKKwogI2RlZmluZSBQVUJMSUNfTE9HX1NUUklORyAicyIKICNkZWZp
bmUgUFJJVkFURV9MT0dfU1RSSU5HICJzIgogI2RlZmluZSBTRF9KT1VSTkFMX1NFTkQoY2hhbm5l
bCwgcHJpb3JpdHksIGZpbGUsIGxpbmUsIGZ1bmN0aW9uLCAuLi4pIGRvIHsgXApAQCAtNTg3LDYg
KzU5MCwzMiBAQCBjb25zdGV4cHIgYm9vbCBhc3NlcnRpb25GYWlsdXJlRHVlVG9VbnJlYWNoYWJs
ZUNvZGUgPSBmYWxzZTsKICAgICBpZiAoKGlzQWxsb3dlZCkgJiYgTE9HX0NIQU5ORUwoY2hhbm5l
bCkubGV2ZWwgPj0gKGxvZ0xldmVsKSkgXAogICAgICAgICBTRF9KT1VSTkFMX1NFTkQoY2hhbm5l
bCwgTE9HX0lORk8sIF9fRklMRV9fLCBfU1RSSU5HSUZZKF9fTElORV9fKSwgX19mdW5jX18sIF9f
VkFfQVJHU19fKTsgXAogfSB3aGlsZSAoMCkKKworI2Vsc2UKKworI2RlZmluZSBQVUJMSUNfTE9H
X1NUUklORyAicyIKKyNkZWZpbmUgUFJJVkFURV9MT0dfU1RSSU5HICJzIgorI2RlZmluZSBMT0dG
KGNoYW5uZWwsIHByaW9yaXR5LCBmbXQsIC4uLikgZG8geyBcCisgICAgYXV0byYgbG9nQ2hhbm5l
bCA9IExPR19DSEFOTkVMKGNoYW5uZWwpOyBcCisgICAgaWYgKGxvZ0NoYW5uZWwuc3RhdGUgIT0g
V1RGTG9nQ2hhbm5lbFN0YXRlOjpPZmYpIFwKKyAgICAgICAgZnByaW50ZihzdGRlcnIsICJbJXM6
JXM6JWldICIgZm10ICJcbiIsIGxvZ0NoYW5uZWwuc3Vic3lzdGVtLCBsb2dDaGFubmVsLm5hbWUs
IHByaW9yaXR5LCAjI19fVkFfQVJHU19fKTsgXAorfSB3aGlsZSAoMCkKKworI2RlZmluZSBSRUxF
QVNFX0xPRyhjaGFubmVsLCAuLi4pIExPR0YoY2hhbm5lbCwgNCwgX19WQV9BUkdTX18pCisjZGVm
aW5lIFJFTEVBU0VfTE9HX0VSUk9SKGNoYW5uZWwsIC4uLikgTE9HRihjaGFubmVsLCAxLCBfX1ZB
X0FSR1NfXykKKyNkZWZpbmUgUkVMRUFTRV9MT0dfRkFVTFQoY2hhbm5lbCwgLi4uKSBMT0dGKGNo
YW5uZWwsIDIsIF9fVkFfQVJHU19fKQorI2RlZmluZSBSRUxFQVNFX0xPR19JTkZPKGNoYW5uZWws
IC4uLikgTE9HRihjaGFubmVsLCAzLCBfX1ZBX0FSR1NfXykKKworI2RlZmluZSBSRUxFQVNFX0xP
R19XSVRIX0xFVkVMKGNoYW5uZWwsIGxvZ0xldmVsLCAuLi4pIGRvIHsgXAorICAgIGlmIChMT0df
Q0hBTk5FTChjaGFubmVsKS5sZXZlbCA+PSAobG9nTGV2ZWwpKSBcCisgICAgICAgIExPR0YoY2hh
bm5lbCwgbG9nTGV2ZWwsIF9fVkFfQVJHU19fKTsgXAorfSB3aGlsZSAoMCkKKworI2RlZmluZSBS
RUxFQVNFX0xPR19XSVRIX0xFVkVMX0lGKGlzQWxsb3dlZCwgY2hhbm5lbCwgbG9nTGV2ZWwsIC4u
LikgZG8geyBcCisgICAgaWYgKChpc0FsbG93ZWQpICYmIExPR19DSEFOTkVMKGNoYW5uZWwpLmxl
dmVsID49IChsb2dMZXZlbCkpIFwKKyAgICAgICAgTE9HRihjaGFubmVsLCBsb2dMZXZlbCwgX19W
QV9BUkdTX18pOyBcCit9IHdoaWxlICgwKQorCiAjZW5kaWYKIAogI2lmICFSRUxFQVNFX0xPR19E
SVNBQkxFRApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvTG9nZ2VyLmggYi9Tb3VyY2UvV1RG
L3d0Zi9Mb2dnZXIuaAppbmRleCAyNGQxM2IxM2U3NGEuLmI5Y2Y4Zjc2NzVjOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dURi93dGYvTG9nZ2VyLmgKKysrIGIvU291cmNlL1dURi93dGYvTG9nZ2VyLmgK
QEAgLTI1LDYgKzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlIDx3dGYvQXNzZXJ0
aW9ucy5oPgogI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZFNhZmVS
ZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgpAQCAtMzEx
LDEyICszMTIsMTIgQEAgcHJpdmF0ZToKIAogI2lmIFJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAg
ICAgIFdURkxvZygmY2hhbm5lbCwgIiVzIiwgbG9nTWVzc2FnZS51dGY4KCkuZGF0YSgpKTsKLSNl
bmRpZgotI2lmIFVTRShPU19MT0cpICYmICFSRUxFQVNFX0xPR19ESVNBQkxFRAorI2VsaWYgVVNF
KE9TX0xPRykKICAgICAgICAgb3NfbG9nKGNoYW5uZWwub3NMb2dDaGFubmVsLCAiJXtwdWJsaWN9
cyIsIGxvZ01lc3NhZ2UudXRmOCgpLmRhdGEoKSk7Ci0jZW5kaWYKLSNpZiBVU0UoSk9VUk5BTEQp
ICYmICFSRUxFQVNFX0xPR19ESVNBQkxFRAorI2VsaWYgVVNFKEpPVVJOQUxEKQogICAgICAgICBz
ZF9qb3VybmFsX3NlbmQoIldFQktJVF9TVUJTWVNURU09JXMiLCBjaGFubmVsLnN1YnN5c3RlbSwg
IldFQktJVF9DSEFOTkVMPSVzIiwgY2hhbm5lbC5uYW1lLCAiTUVTU0FHRT0lcyIsIGxvZ01lc3Nh
Z2UudXRmOCgpLmRhdGEoKSwgbnVsbHB0cik7CisjZWxzZQorICAgICAgICBmcHJpbnRmKHN0ZGVy
ciwgIlslczolczotXSAlc1xuIiwgY2hhbm5lbC5zdWJzeXN0ZW0sIGNoYW5uZWwubmFtZSwgbG9n
TWVzc2FnZS51dGY4KCkuZGF0YSgpKTsKICNlbmRpZgogCiAgICAgICAgIGlmIChjaGFubmVsLnN0
YXRlID09IFdURkxvZ0NoYW5uZWxTdGF0ZTo6T2ZmIHx8IGxldmVsID4gY2hhbm5lbC5sZXZlbCkK
QEAgLTMzNywxNyArMzM4LDE3IEBAIHByaXZhdGU6CiAKICNpZiBSRUxFQVNFX0xPR19ESVNBQkxF
RAogICAgICAgICBXVEZMb2dWZXJib3NlKGZpbGUsIGxpbmUsIGZ1bmN0aW9uLCAmY2hhbm5lbCwg
IiVzIiwgbG9nTWVzc2FnZS51dGY4KCkuZGF0YSgpKTsKLSNlbmRpZgotI2lmIFVTRShPU19MT0cp
ICYmICFSRUxFQVNFX0xPR19ESVNBQkxFRAorI2VsaWYgVVNFKE9TX0xPRykKICAgICAgICAgb3Nf
bG9nKGNoYW5uZWwub3NMb2dDaGFubmVsLCAiJXtwdWJsaWN9cyIsIGxvZ01lc3NhZ2UudXRmOCgp
LmRhdGEoKSk7CiAgICAgICAgIFVOVVNFRF9QQVJBTShmaWxlKTsKICAgICAgICAgVU5VU0VEX1BB
UkFNKGxpbmUpOwogICAgICAgICBVTlVTRURfUEFSQU0oZnVuY3Rpb24pOwotI2VuZGlmCi0jaWYg
VVNFKEpPVVJOQUxEKSAmJiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKKyNlbGlmIFVTRShKT1VSTkFM
RCkKICAgICAgICAgYXV0byBmaWxlU3RyaW5nID0gbWFrZVN0cmluZygiQ09ERV9GSUxFPSIsIGZp
bGUpOwogICAgICAgICBhdXRvIGxpbmVTdHJpbmcgPSBtYWtlU3RyaW5nKCJDT0RFX0xJTkU9Iiwg
bGluZSk7CiAgICAgICAgIHNkX2pvdXJuYWxfc2VuZF93aXRoX2xvY2F0aW9uKGZpbGVTdHJpbmcu
dXRmOCgpLmRhdGEoKSwgbGluZVN0cmluZy51dGY4KCkuZGF0YSgpLCBmdW5jdGlvbiwgIldFQktJ
VF9TVUJTWVNURU09JXMiLCBjaGFubmVsLnN1YnN5c3RlbSwgIldFQktJVF9DSEFOTkVMPSVzIiwg
Y2hhbm5lbC5uYW1lLCAiTUVTU0FHRT0lcyIsIGxvZ01lc3NhZ2UudXRmOCgpLmRhdGEoKSwgbnVs
bHB0cik7CisjZWxzZQorICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIlslczolczotXSAlcyBGSUxF
PSVzOiVkICVzXG4iLCBjaGFubmVsLnN1YnN5c3RlbSwgY2hhbm5lbC5uYW1lLCBsb2dNZXNzYWdl
LnV0ZjgoKS5kYXRhKCksIGZpbGUsIGxpbmUsIGZ1bmN0aW9uKTsKICNlbmRpZgogCiAgICAgICAg
IGlmIChjaGFubmVsLnN0YXRlID09IFdURkxvZ0NoYW5uZWxTdGF0ZTo6T2ZmIHx8IGxldmVsID4g
Y2hhbm5lbC5sZXZlbCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NxbC9T
UUxpdGVEYXRhYmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcWwvU1FMaXRlRGF0
YWJhc2UuY3BwCmluZGV4IDE4NDM4Mzk5N2Q1NS4uNDczM2Y5OThiNzUwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcWwvU1FMaXRlRGF0YWJhc2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3NxbC9TUUxpdGVEYXRhYmFzZS5jcHAKQEAgLTI2MSw3ICsyNjEs
NyBAQCB2b2lkIFNRTGl0ZURhdGFiYXNlOjpjbG9zZShTaG91bGRTZXRFcnJvclN0YXRlIHNob3Vs
ZFNldEVycm9yU3RhdGUpCiAgICAgICAgICAgICBjbG9zZVJlc3VsdCA9IHNxbGl0ZTNfY2xvc2Uo
ZGIpOwogCiAgICAgICAgIGlmIChjbG9zZVJlc3VsdCAhPSBTUUxJVEVfT0spCi0gICAgICAgICAg
ICBSRUxFQVNFX0xPR19FUlJPUihTUUxEYXRhYmFzZSwgIlNRTGl0ZURhdGFiYXNlOjpjbG9zZTog
RmFpbGVkIHRvIGNsb3NlIGRhdGFiYXNlICglZCkgLSAle3B1YmxpY31zIiwgY2xvc2VSZXN1bHQs
IGxhc3RFcnJvck1zZygpKTsKKyAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFNRTERhdGFi
YXNlLCAiU1FMaXRlRGF0YWJhc2U6OmNsb3NlOiBGYWlsZWQgdG8gY2xvc2UgZGF0YWJhc2UgKCVk
KSAtICUiIFBVQkxJQ19MT0dfU1RSSU5HLCBjbG9zZVJlc3VsdCwgbGFzdEVycm9yTXNnKCkpOwog
ICAgIH0KIAogICAgIGlmIChzaG91bGRTZXRFcnJvclN0YXRlID09IFNob3VsZFNldEVycm9yU3Rh
dGU6OlllcykgewpAQCAtNzE3LDcgKzcxNyw3IEBAIEV4cGVjdGVkPFNRTGl0ZVN0YXRlbWVudCwg
aW50PiBTUUxpdGVEYXRhYmFzZTo6cHJlcGFyZVN0YXRlbWVudFNsb3coY29uc3QgU3RyaW5nCiAg
ICAgQ1N0cmluZyBxdWVyeSA9IHF1ZXJ5U3RyaW5nLnN0cmlwV2hpdGVTcGFjZSgpLnV0ZjgoKTsK
ICAgICBhdXRvIHNxbFN0YXRlbWVudCA9IGNvbnN0cnVjdEFuZFByZXBhcmVTdGF0ZW1lbnQoKnRo
aXMsIHF1ZXJ5LmRhdGEoKSwgcXVlcnkubGVuZ3RoKCkpOwogICAgIGlmICghc3FsU3RhdGVtZW50
KSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFNRTERhdGFiYXNlLCAiU1FMaXRlRGF0YWJh
c2U6OnByZXBhcmVTdGF0ZW1lbnQ6IEZhaWxlZCB0byBwcmVwYXJlIHN0YXRlbWVudCAle3B1Ymxp
Y31zIiwgcXVlcnkuZGF0YSgpKTsKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoU1FMRGF0YWJh
c2UsICJTUUxpdGVEYXRhYmFzZTo6cHJlcGFyZVN0YXRlbWVudDogRmFpbGVkIHRvIHByZXBhcmUg
c3RhdGVtZW50ICUiIFBVQkxJQ19MT0dfU1RSSU5HLCBxdWVyeS5kYXRhKCkpOwogICAgICAgICBy
ZXR1cm4gbWFrZVVuZXhwZWN0ZWQoc3FsU3RhdGVtZW50LmVycm9yKCkpOwogICAgIH0KICAgICBy
ZXR1cm4gU1FMaXRlU3RhdGVtZW50IHsgKnRoaXMsIHNxbFN0YXRlbWVudC52YWx1ZSgpIH07CkBA
IC03MjcsNyArNzI3LDcgQEAgRXhwZWN0ZWQ8U1FMaXRlU3RhdGVtZW50LCBpbnQ+IFNRTGl0ZURh
dGFiYXNlOjpwcmVwYXJlU3RhdGVtZW50KEFTQ0lJTGl0ZXJhbCBxdWUKIHsKICAgICBhdXRvIHNx
bFN0YXRlbWVudCA9IGNvbnN0cnVjdEFuZFByZXBhcmVTdGF0ZW1lbnQoKnRoaXMsIHF1ZXJ5LmNo
YXJhY3RlcnMoKSwgcXVlcnkubGVuZ3RoKCkpOwogICAgIGlmICghc3FsU3RhdGVtZW50KSB7Ci0g
ICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFNRTERhdGFiYXNlLCAiU1FMaXRlRGF0YWJhc2U6OnBy
ZXBhcmVTdGF0ZW1lbnQ6IEZhaWxlZCB0byBwcmVwYXJlIHN0YXRlbWVudCAle3B1YmxpY31zIiwg
cXVlcnkuY2hhcmFjdGVycygpKTsKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoU1FMRGF0YWJh
c2UsICJTUUxpdGVEYXRhYmFzZTo6cHJlcGFyZVN0YXRlbWVudDogRmFpbGVkIHRvIHByZXBhcmUg
c3RhdGVtZW50ICUiIFBVQkxJQ19MT0dfU1RSSU5HLCBxdWVyeS5jaGFyYWN0ZXJzKCkpOwogICAg
ICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoc3FsU3RhdGVtZW50LmVycm9yKCkpOwogICAgIH0K
ICAgICByZXR1cm4gU1FMaXRlU3RhdGVtZW50IHsgKnRoaXMsIHNxbFN0YXRlbWVudC52YWx1ZSgp
IH07CkBAIC03MzgsNyArNzM4LDcgQEAgRXhwZWN0ZWQ8VW5pcXVlUmVmPFNRTGl0ZVN0YXRlbWVu
dD4sIGludD4gU1FMaXRlRGF0YWJhc2U6OnByZXBhcmVIZWFwU3RhdGVtZW50U2wKICAgICBDU3Ry
aW5nIHF1ZXJ5ID0gcXVlcnlTdHJpbmcuc3RyaXBXaGl0ZVNwYWNlKCkudXRmOCgpOwogICAgIGF1
dG8gc3FsU3RhdGVtZW50ID0gY29uc3RydWN0QW5kUHJlcGFyZVN0YXRlbWVudCgqdGhpcywgcXVl
cnkuZGF0YSgpLCBxdWVyeS5sZW5ndGgoKSk7CiAgICAgaWYgKCFzcWxTdGF0ZW1lbnQpIHsKLSAg
ICAgICAgUkVMRUFTRV9MT0dfRVJST1IoU1FMRGF0YWJhc2UsICJTUUxpdGVEYXRhYmFzZTo6cHJl
cGFyZUhlYXBTdGF0ZW1lbnQ6IEZhaWxlZCB0byBwcmVwYXJlIHN0YXRlbWVudCAle3B1YmxpY31z
IiwgcXVlcnkuZGF0YSgpKTsKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoU1FMRGF0YWJhc2Us
ICJTUUxpdGVEYXRhYmFzZTo6cHJlcGFyZUhlYXBTdGF0ZW1lbnQ6IEZhaWxlZCB0byBwcmVwYXJl
IHN0YXRlbWVudCAlIiBQVUJMSUNfTE9HX1NUUklORywgcXVlcnkuZGF0YSgpKTsKICAgICAgICAg
cmV0dXJuIG1ha2VVbmV4cGVjdGVkKHNxbFN0YXRlbWVudC5lcnJvcigpKTsKICAgICB9CiAgICAg
cmV0dXJuIFVuaXF1ZVJlZjxTUUxpdGVTdGF0ZW1lbnQ+KCpuZXcgU1FMaXRlU3RhdGVtZW50KCp0
aGlzLCBzcWxTdGF0ZW1lbnQudmFsdWUoKSkpOwpAQCAtNzQ4LDcgKzc0OCw3IEBAIEV4cGVjdGVk
PFVuaXF1ZVJlZjxTUUxpdGVTdGF0ZW1lbnQ+LCBpbnQ+IFNRTGl0ZURhdGFiYXNlOjpwcmVwYXJl
SGVhcFN0YXRlbWVudChBCiB7CiAgICAgYXV0byBzcWxTdGF0ZW1lbnQgPSBjb25zdHJ1Y3RBbmRQ
cmVwYXJlU3RhdGVtZW50KCp0aGlzLCBxdWVyeS5jaGFyYWN0ZXJzKCksIHF1ZXJ5Lmxlbmd0aCgp
KTsKICAgICBpZiAoIXNxbFN0YXRlbWVudCkgewotICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihT
UUxEYXRhYmFzZSwgIlNRTGl0ZURhdGFiYXNlOjpwcmVwYXJlSGVhcFN0YXRlbWVudDogRmFpbGVk
IHRvIHByZXBhcmUgc3RhdGVtZW50ICV7cHVibGljfXMiLCBxdWVyeS5jaGFyYWN0ZXJzKCkpOwor
ICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihTUUxEYXRhYmFzZSwgIlNRTGl0ZURhdGFiYXNlOjpw
cmVwYXJlSGVhcFN0YXRlbWVudDogRmFpbGVkIHRvIHByZXBhcmUgc3RhdGVtZW50ICUiIFBVQkxJ
Q19MT0dfU1RSSU5HLCBxdWVyeS5jaGFyYWN0ZXJzKCkpOwogICAgICAgICByZXR1cm4gbWFrZVVu
ZXhwZWN0ZWQoc3FsU3RhdGVtZW50LmVycm9yKCkpOwogICAgIH0KICAgICByZXR1cm4gVW5pcXVl
UmVmPFNRTGl0ZVN0YXRlbWVudD4oKm5ldyBTUUxpdGVTdGF0ZW1lbnQoKnRoaXMsIHNxbFN0YXRl
bWVudC52YWx1ZSgpKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvY21ha2UvT3B0aW9uc1BsYXlTdGF0
aW9uLmNtYWtlIGIvU291cmNlL2NtYWtlL09wdGlvbnNQbGF5U3RhdGlvbi5jbWFrZQppbmRleCBh
NzIyNjA5MmRiMDkuLjY0ODJjMWZhZDdiZSAxMDA2NDQKLS0tIGEvU291cmNlL2NtYWtlL09wdGlv
bnNQbGF5U3RhdGlvbi5jbWFrZQorKysgYi9Tb3VyY2UvY21ha2UvT3B0aW9uc1BsYXlTdGF0aW9u
LmNtYWtlCkBAIC0zMSw2ICszMSw5IEBAIFdFQktJVF9PUFRJT05fQkVHSU4oKQogIyBQbGF5U3Rh
dGlvbiBTcGVjaWZpYyBPcHRpb25zCiBXRUJLSVRfT1BUSU9OX0RFRklORShFTkFCTEVfU1RBVElD
X0pTQyAiQ29udHJvbCB3aGV0aGVyIHRvIGJ1aWxkIGEgbm9uLXNoYXJlZCBKU0MiIFBVQkxJQyBP
TikKIAorIyBGb3IgcmVsZWFzZSBsb2cKK1dFQktJVF9PUFRJT05fREVGSU5FKFVTRV9MT0dfU1RE
RVJSICJUb2dnbGUgcmVsZWFzZSBsb2cgdG8gc3RkZXJyIiBQVUJMSUMgT0ZGKQorCiAjIFR1cm4g
b2ZmIEpJVAogV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX0pJVCBQUklW
QVRFIE9GRikKIFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9GVExfSklU
IFBSSVZBVEUgT0ZGKQ0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>439898</attachid>
            <date>2021-10-01 12:32:16 -0700</date>
            <delta_ts>2021-10-03 10:20:10 -0700</delta_ts>
            <desc>PATCH</desc>
            <filename>patch.diff</filename>
            <type>text/plain</type>
            <size>14765</size>
            <attacher name="Basuke Suzuki">basuke</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCAyOWEyMmNiYWQxZTQuLjNk
OGNlY2EwOTk1ZCAxMDA2NDQKLS0tIGEvQ2hhbmdlTG9nCisrKyBiL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE1IEBACisyMDIxLTEwLTAxICBCYXN1a2UgU3V6dWtpICA8YmFzdWtlLnN1enVraUBzb255
LmNvbT4KKworICAgICAgICBFbmFibGUgcmVsZWFzZSBsb2cgdG8gc3RkZXJyCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzA3MjUKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzgzNzQwNTI5PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEludHJvZHVjZWQgbmV3IGZsYWdzLCBVU0VfTE9HX1NUREVSUiBmb3Ig
cmVsZWFzZSBsb2dnaW5nIHRvIHN0ZGVyci4KKworICAgICAgICAqIFNvdXJjZS9jbWFrZS9XZWJL
aXRGZWF0dXJlcy5jbWFrZToKKwogMjAyMS0wOS0yOSAgS2ltbW8gS2lubnVuZW4gIDxra2lubnVu
ZW5AYXBwbGUuY29tPgogCiAgICAgICAgIE1lZGlhU3RyZWFtIGNhbnZhcy5jYXB0dXJlU3RyZWFt
KCkgZmFpbHMgZm9yIFdlYkdMCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDkwOTk2MTExYzdhZS4uZmZiODg4OTMyMzU3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDIwIEBACisyMDIxLTEwLTAxICBCYXN1a2UgU3V6dWtpICA8YmFzdWtlLnN1enVr
aUBzb255LmNvbT4KKworICAgICAgICBFbmFibGUgcmVsZWFzZSBsb2cgdG8gc3RkZXJyCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzA3MjUKKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzgzNzQwNTI5PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIERlZmluZSBuZXcgY29tcGlsZXIgZGVmaW5pdGlvbnMsIFVT
RV9MT0dfU1RERVJSIGZvciByZWxlYXNlIGxvZ2dpbmcuIFdlIGRvbid0IGhhdmUKKyAgICAgICAg
bW9kZXJuIGxvZ2dpbmcgYmFja2VuZCBzbyB0aGF0IGR1bXBpbmcgb3V0IHRvIHN0ZG91dC9zdGRl
cnIgaXMgc3RpbGwgdmVyeSB2YWx1YWJsZS4gCisKKyAgICAgICAgKiB3dGYvQXNzZXJ0aW9ucy5j
cHA6CisgICAgICAgICogd3RmL0Fzc2VydGlvbnMuaDoKKyAgICAgICAgKiB3dGYvTG9nZ2VyLmg6
CisgICAgICAgIChXVEY6OkxvZ2dlcjo6bG9nKToKKyAgICAgICAgKFdURjo6TG9nZ2VyOjpsb2dW
ZXJib3NlKToKKwogMjAyMS0wOS0yOSAgRnVqaWkgSGlyb25vcmkgIDxIaXJvbm9yaS5GdWppaUBz
b255LmNvbT4KIAogICAgICAgICBbV2luQ2Fpcm9dIFJFR1JFU1NJT04ocjI4MDcyNik6IHJlZ2lz
dHJ5IGtleXMgZW5hYmxpbmcgR1BVIHByb2Nlc3MgbW9kZSBkb24ndCB3b3JrCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV1RGL3d0Zi9Bc3NlcnRpb25zLmNwcCBiL1NvdXJjZS9XVEYvd3RmL0Fzc2VydGlv
bnMuY3BwCmluZGV4IGUwOTZhMDMyYzg5Ny4uMzhlMzUwZTRhNzNkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV1RGL3d0Zi9Bc3NlcnRpb25zLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9Bc3NlcnRpb25z
LmNwcApAQCAtNTksNyArNTksNyBAQAogI2luY2x1ZGUgPHVuaXN0ZC5oPgogI2VuZGlmCiAKLSNp
ZiBVU0UoSk9VUk5BTEQpCisjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVEICYmICFVU0UoT1NfTE9H
KQogI2luY2x1ZGUgPHd0Zi9TdHJpbmdQcmludFN0cmVhbS5oPgogI2VuZGlmCiAKQEAgLTYwMSw3
ICs2MDEsNyBAQCB2b2lkIFdURlJlbGVhc2VMb2dTdGFja1RyYWNlKFdURkxvZ0NoYW5uZWwqIGNo
YW5uZWwpCiAgICAgICAgICAgICAgICAgb3NfbG9nKGNoYW5uZWwtPm9zTG9nQ2hhbm5lbCwgIiUt
M2QgJXAgJXtwdWJsaWN9cyIsIGZyYW1lTnVtYmVyLCBzdGFja0ZyYW1lLCBkZW1hbmdsZWQtPm1h
bmdsZWROYW1lKCkpOwogICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgIG9zX2xvZyhj
aGFubmVsLT5vc0xvZ0NoYW5uZWwsICIlLTNkICVwIiwgZnJhbWVOdW1iZXIsIHN0YWNrRnJhbWUp
OwotI2VsaWYgVVNFKEpPVVJOQUxEKQorI2Vsc2UKICAgICAgICAgICAgIFN0cmluZ1ByaW50U3Ry
ZWFtIG91dDsKICAgICAgICAgICAgIGlmIChkZW1hbmdsZWQgJiYgZGVtYW5nbGVkLT5kZW1hbmds
ZWROYW1lKCkpCiAgICAgICAgICAgICAgICAgb3V0LnByaW50ZigiJS0zZCAlcCAlcyIsIGZyYW1l
TnVtYmVyLCBzdGFja0ZyYW1lLCBkZW1hbmdsZWQtPmRlbWFuZ2xlZE5hbWUoKSk7CkBAIC02MDks
NyArNjA5LDExIEBAIHZvaWQgV1RGUmVsZWFzZUxvZ1N0YWNrVHJhY2UoV1RGTG9nQ2hhbm5lbCog
Y2hhbm5lbCkKICAgICAgICAgICAgICAgICBvdXQucHJpbnRmKCIlLTNkICVwICVzIiwgZnJhbWVO
dW1iZXIsIHN0YWNrRnJhbWUsIGRlbWFuZ2xlZC0+bWFuZ2xlZE5hbWUoKSk7CiAgICAgICAgICAg
ICBlbHNlCiAgICAgICAgICAgICAgICAgb3V0LnByaW50ZigiJS0zZCAlcCIsIGZyYW1lTnVtYmVy
LCBzdGFja0ZyYW1lKTsKKyNpZiBVU0UoSk9VUk5BTEQpCiAgICAgICAgICAgICBzZF9qb3VybmFs
X3NlbmQoIldFQktJVF9TVUJTWVNURU09JXMiLCBjaGFubmVsLT5zdWJzeXN0ZW0sICJXRUJLSVRf
Q0hBTk5FTD0lcyIsIGNoYW5uZWwtPm5hbWUsICJNRVNTQUdFPSVzIiwgb3V0LnRvQ1N0cmluZygp
LmRhdGEoKSwgbnVsbHB0cik7CisjZWxzZQorICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJb
JXM6JXM6LV0gJXNcbiIsIGNoYW5uZWwtPnN1YnN5c3RlbSwgY2hhbm5lbC0+bmFtZSwgb3V0LnRv
Q1N0cmluZygpLmRhdGEoKSk7CisjZW5kaWYKICNlbmRpZgogICAgICAgICB9CiAgICAgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dURi93dGYvQXNzZXJ0aW9ucy5oIGIvU291cmNlL1dURi93dGYvQXNz
ZXJ0aW9ucy5oCmluZGV4IDZiMmYwZmI4NDE0Ny4uNmZhNjA0OTAyNGU1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV1RGL3d0Zi9Bc3NlcnRpb25zLmgKKysrIGIvU291cmNlL1dURi93dGYvQXNzZXJ0aW9u
cy5oCkBAIC05NSw3ICs5NSw5IEBAIGV4dGVybiAiQyIgdm9pZCBfUmVhZFdyaXRlQmFycmllcih2
b2lkKTsKICNkZWZpbmUgTE9HX0RJU0FCTEVEICFBU1NFUlRfRU5BQkxFRAogI2VuZGlmCiAKLSNp
Zm5kZWYgUkVMRUFTRV9MT0dfRElTQUJMRUQKKyNpZiBFTkFCTEUoUkVMRUFTRV9MT0cpCisjZGVm
aW5lIFJFTEVBU0VfTE9HX0RJU0FCTEVEIDAKKyNlbHNlCiAjZGVmaW5lIFJFTEVBU0VfTE9HX0RJ
U0FCTEVEICEoVVNFKE9TX0xPRykgfHwgVVNFKEpPVVJOQUxEKSkKICNlbmRpZgogCkBAIC0xNjMs
MTAgKzE2NSwxMCBAQCB0eXBlZGVmIHN0cnVjdCB7CiAgICAgV1RGTG9nTGV2ZWwgbGV2ZWw7CiAj
aWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgY29uc3QgY2hhciogc3Vic3lzdGVtOwotI2Vu
ZGlmCi0jaWYgVVNFKE9TX0xPRykgJiYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECisjaWYgVVNFKE9T
X0xPRykKICAgICBfX3Vuc2FmZV91bnJldGFpbmVkIG9zX2xvZ190IG9zTG9nQ2hhbm5lbDsKICNl
bmRpZgorI2VuZGlmCiB9IFdURkxvZ0NoYW5uZWw7CiAKICNkZWZpbmUgTE9HX0NIQU5ORUwobmFt
ZSkgSk9JTl9MT0dfQ0hBTk5FTF9XSVRIX1BSRUZJWChMT0dfQ0hBTk5FTF9QUkVGSVgsIG5hbWUp
CkBAIC0xNzgsNiArMTgwLDggQEAgdHlwZWRlZiBzdHJ1Y3QgewogI2RlZmluZSBMT0dfQ0hBTk5F
TF9XRUJLSVRfU1VCU1lTVEVNICJXZWJLaXRHVEsiCiAjZWxpZiBQTEFURk9STShXUEUpCiAjZGVm
aW5lIExPR19DSEFOTkVMX1dFQktJVF9TVUJTWVNURU0gIldQRVdlYktpdCIKKyNlbGlmIFBMQVRG
T1JNKFBMQVlTVEFUSU9OKQorI2RlZmluZSBMT0dfQ0hBTk5FTF9XRUJLSVRfU1VCU1lTVEVNICJT
Y2VOS1dlYktpdCIKICNlbHNlCiAjZGVmaW5lIExPR19DSEFOTkVMX1dFQktJVF9TVUJTWVNURU0g
ImNvbS5hcHBsZS5XZWJLaXQiCiAjZW5kaWYKQEAgLTE4OSwxMiArMTkzLDEwIEBAIHR5cGVkZWYg
c3RydWN0IHsKICNpZiBSRUxFQVNFX0xPR19ESVNBQkxFRAogI2RlZmluZSBERUZJTkVfTE9HX0NI
QU5ORUxfV0lUSF9ERVRBSUxTKG5hbWUsIGluaXRpYWxTdGF0ZSwgbGV2ZWwsIHN1YnN5c3RlbSkg
XAogICAgIFdURkxvZ0NoYW5uZWwgTE9HX0NIQU5ORUwobmFtZSkgPSB7IGluaXRpYWxTdGF0ZSwg
I25hbWUsIGxldmVsIH07Ci0jZW5kaWYKLSNpZiBVU0UoT1NfTE9HKSAmJiAhUkVMRUFTRV9MT0df
RElTQUJMRUQKKyNlbGlmIFVTRShPU19MT0cpCiAjZGVmaW5lIERFRklORV9MT0dfQ0hBTk5FTF9X
SVRIX0RFVEFJTFMobmFtZSwgaW5pdGlhbFN0YXRlLCBsZXZlbCwgc3Vic3lzdGVtKSBcCiAgICAg
V1RGTG9nQ2hhbm5lbCBMT0dfQ0hBTk5FTChuYW1lKSA9IHsgaW5pdGlhbFN0YXRlLCAjbmFtZSwg
bGV2ZWwsIHN1YnN5c3RlbSwgT1NfTE9HX0RFRkFVTFQgfTsKLSNlbmRpZgotI2lmIFVTRShKT1VS
TkFMRCkgJiYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECisjZWxzZQogI2RlZmluZSBERUZJTkVfTE9H
X0NIQU5ORUxfV0lUSF9ERVRBSUxTKG5hbWUsIGluaXRpYWxTdGF0ZSwgbGV2ZWwsIHN1YnN5c3Rl
bSkgXAogICAgIFdURkxvZ0NoYW5uZWwgTE9HX0NIQU5ORUwobmFtZSkgPSB7IGluaXRpYWxTdGF0
ZSwgI25hbWUsIGxldmVsLCBzdWJzeXN0ZW0gfTsKICNlbmRpZgpAQCAtNTI4LDYgKzUzMCw3IEBA
IGNvbnN0ZXhwciBib29sIGFzc2VydGlvbkZhaWx1cmVEdWVUb1VucmVhY2hhYmxlQ29kZSA9IGZh
bHNlOwogLyogUkVMRUFTRV9MT0cgKi8KIAogI2lmIFJFTEVBU0VfTE9HX0RJU0FCTEVECisKICNk
ZWZpbmUgUFVCTElDX0xPR19TVFJJTkcgInMiCiAjZGVmaW5lIFBSSVZBVEVfTE9HX1NUUklORyAi
cyIKICNkZWZpbmUgUkVMRUFTRV9MT0coY2hhbm5lbCwgLi4uKSAoKHZvaWQpMCkKQEAgLTU0Myw5
ICs1NDYsOSBAQCBjb25zdGV4cHIgYm9vbCBhc3NlcnRpb25GYWlsdXJlRHVlVG9VbnJlYWNoYWJs
ZUNvZGUgPSBmYWxzZTsKICNkZWZpbmUgUkVMRUFTRV9MT0dfV0lUSF9MRVZFTF9JRihpc0FsbG93
ZWQsIGNoYW5uZWwsIGxldmVsLCAuLi4pIGRvIHsgaWYgKGlzQWxsb3dlZCkgUkVMRUFTRV9MT0df
V0lUSF9MRVZFTChjaGFubmVsLCBsZXZlbCwgX19WQV9BUkdTX18pOyB9IHdoaWxlICgwKQogCiAj
ZGVmaW5lIFJFTEVBU0VfTE9HX1NUQUNLVFJBQ0UoY2hhbm5lbCkgKCh2b2lkKTApCi0jZW5kaWYK
IAotI2lmIFVTRShPU19MT0cpICYmICFSRUxFQVNFX0xPR19ESVNBQkxFRAorI2VsaWYgVVNFKE9T
X0xPRykKKwogI2RlZmluZSBQVUJMSUNfTE9HX1NUUklORyAie3B1YmxpY31zIgogI2RlZmluZSBQ
UklWQVRFX0xPR19TVFJJTkcgIntwcml2YXRlfXMiCiAjZGVmaW5lIFJFTEVBU0VfTE9HKGNoYW5u
ZWwsIC4uLikgb3NfbG9nKExPR19DSEFOTkVMKGNoYW5uZWwpLm9zTG9nQ2hhbm5lbCwgX19WQV9B
UkdTX18pCkBAIC01NjEsOSArNTY0LDkgQEAgY29uc3RleHByIGJvb2wgYXNzZXJ0aW9uRmFpbHVy
ZUR1ZVRvVW5yZWFjaGFibGVDb2RlID0gZmFsc2U7CiAgICAgaWYgKChpc0FsbG93ZWQpICYmIExP
R19DSEFOTkVMKGNoYW5uZWwpLmxldmVsID49IChsb2dMZXZlbCkpIFwKICAgICAgICAgb3NfbG9n
KExPR19DSEFOTkVMKGNoYW5uZWwpLm9zTG9nQ2hhbm5lbCwgX19WQV9BUkdTX18pOyBcCiB9IHdo
aWxlICgwKQotI2VuZGlmCiAKLSNpZiBVU0UoSk9VUk5BTEQpICYmICFSRUxFQVNFX0xPR19ESVNB
QkxFRAorI2VsaWYgVVNFKEpPVVJOQUxEKQorCiAjZGVmaW5lIFBVQkxJQ19MT0dfU1RSSU5HICJz
IgogI2RlZmluZSBQUklWQVRFX0xPR19TVFJJTkcgInMiCiAjZGVmaW5lIFNEX0pPVVJOQUxfU0VO
RChjaGFubmVsLCBwcmlvcml0eSwgZmlsZSwgbGluZSwgZnVuY3Rpb24sIC4uLikgZG8geyBcCkBA
IC01ODcsNiArNTkwLDMyIEBAIGNvbnN0ZXhwciBib29sIGFzc2VydGlvbkZhaWx1cmVEdWVUb1Vu
cmVhY2hhYmxlQ29kZSA9IGZhbHNlOwogICAgIGlmICgoaXNBbGxvd2VkKSAmJiBMT0dfQ0hBTk5F
TChjaGFubmVsKS5sZXZlbCA+PSAobG9nTGV2ZWwpKSBcCiAgICAgICAgIFNEX0pPVVJOQUxfU0VO
RChjaGFubmVsLCBMT0dfSU5GTywgX19GSUxFX18sIF9TVFJJTkdJRlkoX19MSU5FX18pLCBfX2Z1
bmNfXywgX19WQV9BUkdTX18pOyBcCiB9IHdoaWxlICgwKQorCisjZWxzZQorCisjZGVmaW5lIFBV
QkxJQ19MT0dfU1RSSU5HICJzIgorI2RlZmluZSBQUklWQVRFX0xPR19TVFJJTkcgInMiCisjZGVm
aW5lIExPR0YoY2hhbm5lbCwgcHJpb3JpdHksIGZtdCwgLi4uKSBkbyB7IFwKKyAgICBhdXRvJiBs
b2dDaGFubmVsID0gTE9HX0NIQU5ORUwoY2hhbm5lbCk7IFwKKyAgICBpZiAobG9nQ2hhbm5lbC5z
dGF0ZSAhPSBXVEZMb2dDaGFubmVsU3RhdGU6Ok9mZikgXAorICAgICAgICBmcHJpbnRmKHN0ZGVy
ciwgIlslczolczolaV0gIiBmbXQgIlxuIiwgbG9nQ2hhbm5lbC5zdWJzeXN0ZW0sIGxvZ0NoYW5u
ZWwubmFtZSwgcHJpb3JpdHksICMjX19WQV9BUkdTX18pOyBcCit9IHdoaWxlICgwKQorCisjZGVm
aW5lIFJFTEVBU0VfTE9HKGNoYW5uZWwsIC4uLikgTE9HRihjaGFubmVsLCA0LCBfX1ZBX0FSR1Nf
XykKKyNkZWZpbmUgUkVMRUFTRV9MT0dfRVJST1IoY2hhbm5lbCwgLi4uKSBMT0dGKGNoYW5uZWws
IDEsIF9fVkFfQVJHU19fKQorI2RlZmluZSBSRUxFQVNFX0xPR19GQVVMVChjaGFubmVsLCAuLi4p
IExPR0YoY2hhbm5lbCwgMiwgX19WQV9BUkdTX18pCisjZGVmaW5lIFJFTEVBU0VfTE9HX0lORk8o
Y2hhbm5lbCwgLi4uKSBMT0dGKGNoYW5uZWwsIDMsIF9fVkFfQVJHU19fKQorCisjZGVmaW5lIFJF
TEVBU0VfTE9HX1dJVEhfTEVWRUwoY2hhbm5lbCwgbG9nTGV2ZWwsIC4uLikgZG8geyBcCisgICAg
aWYgKExPR19DSEFOTkVMKGNoYW5uZWwpLmxldmVsID49IChsb2dMZXZlbCkpIFwKKyAgICAgICAg
TE9HRihjaGFubmVsLCBsb2dMZXZlbCwgX19WQV9BUkdTX18pOyBcCit9IHdoaWxlICgwKQorCisj
ZGVmaW5lIFJFTEVBU0VfTE9HX1dJVEhfTEVWRUxfSUYoaXNBbGxvd2VkLCBjaGFubmVsLCBsb2dM
ZXZlbCwgLi4uKSBkbyB7IFwKKyAgICBpZiAoKGlzQWxsb3dlZCkgJiYgTE9HX0NIQU5ORUwoY2hh
bm5lbCkubGV2ZWwgPj0gKGxvZ0xldmVsKSkgXAorICAgICAgICBMT0dGKGNoYW5uZWwsIGxvZ0xl
dmVsLCBfX1ZBX0FSR1NfXyk7IFwKK30gd2hpbGUgKDApCisKICNlbmRpZgogCiAjaWYgIVJFTEVB
U0VfTE9HX0RJU0FCTEVECmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9Mb2dnZXIuaCBiL1Nv
dXJjZS9XVEYvd3RmL0xvZ2dlci5oCmluZGV4IDI0ZDEzYjEzZTc0YS4uYjljZjhmNzY3NWM4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9Mb2dnZXIuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9M
b2dnZXIuaApAQCAtMjUsNiArMjUsNyBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgPHd0
Zi9Bc3NlcnRpb25zLmg+CiAjaW5jbHVkZSA8d3RmL0xvY2suaD4KICNpbmNsdWRlIDx3dGYvVGhy
ZWFkU2FmZVJlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+
CkBAIC0zMTEsMTIgKzMxMiwxMiBAQCBwcml2YXRlOgogCiAjaWYgUkVMRUFTRV9MT0dfRElTQUJM
RUQKICAgICAgICAgV1RGTG9nKCZjaGFubmVsLCAiJXMiLCBsb2dNZXNzYWdlLnV0ZjgoKS5kYXRh
KCkpOwotI2VuZGlmCi0jaWYgVVNFKE9TX0xPRykgJiYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECisj
ZWxpZiBVU0UoT1NfTE9HKQogICAgICAgICBvc19sb2coY2hhbm5lbC5vc0xvZ0NoYW5uZWwsICIl
e3B1YmxpY31zIiwgbG9nTWVzc2FnZS51dGY4KCkuZGF0YSgpKTsKLSNlbmRpZgotI2lmIFVTRShK
T1VSTkFMRCkgJiYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECisjZWxpZiBVU0UoSk9VUk5BTEQpCiAg
ICAgICAgIHNkX2pvdXJuYWxfc2VuZCgiV0VCS0lUX1NVQlNZU1RFTT0lcyIsIGNoYW5uZWwuc3Vi
c3lzdGVtLCAiV0VCS0lUX0NIQU5ORUw9JXMiLCBjaGFubmVsLm5hbWUsICJNRVNTQUdFPSVzIiwg
bG9nTWVzc2FnZS51dGY4KCkuZGF0YSgpLCBudWxscHRyKTsKKyNlbHNlCisgICAgICAgIGZwcmlu
dGYoc3RkZXJyLCAiWyVzOiVzOi1dICVzXG4iLCBjaGFubmVsLnN1YnN5c3RlbSwgY2hhbm5lbC5u
YW1lLCBsb2dNZXNzYWdlLnV0ZjgoKS5kYXRhKCkpOwogI2VuZGlmCiAKICAgICAgICAgaWYgKGNo
YW5uZWwuc3RhdGUgPT0gV1RGTG9nQ2hhbm5lbFN0YXRlOjpPZmYgfHwgbGV2ZWwgPiBjaGFubmVs
LmxldmVsKQpAQCAtMzM3LDE3ICszMzgsMTcgQEAgcHJpdmF0ZToKIAogI2lmIFJFTEVBU0VfTE9H
X0RJU0FCTEVECiAgICAgICAgIFdURkxvZ1ZlcmJvc2UoZmlsZSwgbGluZSwgZnVuY3Rpb24sICZj
aGFubmVsLCAiJXMiLCBsb2dNZXNzYWdlLnV0ZjgoKS5kYXRhKCkpOwotI2VuZGlmCi0jaWYgVVNF
KE9TX0xPRykgJiYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECisjZWxpZiBVU0UoT1NfTE9HKQogICAg
ICAgICBvc19sb2coY2hhbm5lbC5vc0xvZ0NoYW5uZWwsICIle3B1YmxpY31zIiwgbG9nTWVzc2Fn
ZS51dGY4KCkuZGF0YSgpKTsKICAgICAgICAgVU5VU0VEX1BBUkFNKGZpbGUpOwogICAgICAgICBV
TlVTRURfUEFSQU0obGluZSk7CiAgICAgICAgIFVOVVNFRF9QQVJBTShmdW5jdGlvbik7Ci0jZW5k
aWYKLSNpZiBVU0UoSk9VUk5BTEQpICYmICFSRUxFQVNFX0xPR19ESVNBQkxFRAorI2VsaWYgVVNF
KEpPVVJOQUxEKQogICAgICAgICBhdXRvIGZpbGVTdHJpbmcgPSBtYWtlU3RyaW5nKCJDT0RFX0ZJ
TEU9IiwgZmlsZSk7CiAgICAgICAgIGF1dG8gbGluZVN0cmluZyA9IG1ha2VTdHJpbmcoIkNPREVf
TElORT0iLCBsaW5lKTsKICAgICAgICAgc2Rfam91cm5hbF9zZW5kX3dpdGhfbG9jYXRpb24oZmls
ZVN0cmluZy51dGY4KCkuZGF0YSgpLCBsaW5lU3RyaW5nLnV0ZjgoKS5kYXRhKCksIGZ1bmN0aW9u
LCAiV0VCS0lUX1NVQlNZU1RFTT0lcyIsIGNoYW5uZWwuc3Vic3lzdGVtLCAiV0VCS0lUX0NIQU5O
RUw9JXMiLCBjaGFubmVsLm5hbWUsICJNRVNTQUdFPSVzIiwgbG9nTWVzc2FnZS51dGY4KCkuZGF0
YSgpLCBudWxscHRyKTsKKyNlbHNlCisgICAgICAgIGZwcmludGYoc3RkZXJyLCAiWyVzOiVzOi1d
ICVzIEZJTEU9JXM6JWQgJXNcbiIsIGNoYW5uZWwuc3Vic3lzdGVtLCBjaGFubmVsLm5hbWUsIGxv
Z01lc3NhZ2UudXRmOCgpLmRhdGEoKSwgZmlsZSwgbGluZSwgZnVuY3Rpb24pOwogI2VuZGlmCiAK
ICAgICAgICAgaWYgKGNoYW5uZWwuc3RhdGUgPT0gV1RGTG9nQ2hhbm5lbFN0YXRlOjpPZmYgfHwg
bGV2ZWwgPiBjaGFubmVsLmxldmVsKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDFjNTQzMmU2MTMwMS4uYTYxY2Fi
NDQ0ZTEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMjEtMTAtMDEgIEJhc3VrZSBT
dXp1a2kgIDxiYXN1a2Uuc3V6dWtpQHNvbnkuY29tPgorCisgICAgICAgIEVuYWJsZSByZWxlYXNl
IGxvZyB0byBzdGRlcnIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIzMDcyNQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODM3NDA1Mjk+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU1FMaXRlRGF0YWJhc2Ug
dXNlcyBoYXJkLWNvZGVkICV7cHVibGljfSBmb3JtYXQgc3BlY2lmaWVycy4gUmVwbGFjZSB0aGVt
IHdpdGggZGVmaW5lZAorICAgICAgICBtYWNyby4KKworICAgICAgICBObyBuZXcgdGVzdHMgYmVj
YXVzZSB0aGVyZSBpcyBubyBiZWhhdmlvciBjaGFuZ2UuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9z
cWwvU1FMaXRlRGF0YWJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1FMaXRlRGF0YWJhc2U6
OmNsb3NlKToKKyAgICAgICAgKFdlYkNvcmU6OlNRTGl0ZURhdGFiYXNlOjpwcmVwYXJlU3RhdGVt
ZW50U2xvdyk6CisgICAgICAgIChXZWJDb3JlOjpTUUxpdGVEYXRhYmFzZTo6cHJlcGFyZVN0YXRl
bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpTUUxpdGVEYXRhYmFzZTo6cHJlcGFyZUhlYXBTdGF0
ZW1lbnRTbG93KToKKyAgICAgICAgKFdlYkNvcmU6OlNRTGl0ZURhdGFiYXNlOjpwcmVwYXJlSGVh
cFN0YXRlbWVudCk6CisKIDIwMjEtMDktMjkgIEJhc3VrZSBTdXp1a2kgIDxiYXN1a2Uuc3V6dWtp
QHNvbnkuY29tPgogCiAgICAgICAgIFN1cHByZXNzIHdhcm5pbmdzIGZvciBpbXBsaWNpdCBjb3B5
IGFzc2lnbm1lbnQgb3BlcmF0b3IvY29weSBjb25zdHJ1Y3RvciB3aXRoIGNsYW5nIDEzCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcWwvU1FMaXRlRGF0YWJhc2UuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3FsL1NRTGl0ZURhdGFiYXNlLmNwcAppbmRleCAxODQz
ODM5OTdkNTUuLjQ3MzNmOTk4Yjc1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vc3FsL1NRTGl0ZURhdGFiYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9z
cWwvU1FMaXRlRGF0YWJhc2UuY3BwCkBAIC0yNjEsNyArMjYxLDcgQEAgdm9pZCBTUUxpdGVEYXRh
YmFzZTo6Y2xvc2UoU2hvdWxkU2V0RXJyb3JTdGF0ZSBzaG91bGRTZXRFcnJvclN0YXRlKQogICAg
ICAgICAgICAgY2xvc2VSZXN1bHQgPSBzcWxpdGUzX2Nsb3NlKGRiKTsKIAogICAgICAgICBpZiAo
Y2xvc2VSZXN1bHQgIT0gU1FMSVRFX09LKQotICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1Io
U1FMRGF0YWJhc2UsICJTUUxpdGVEYXRhYmFzZTo6Y2xvc2U6IEZhaWxlZCB0byBjbG9zZSBkYXRh
YmFzZSAoJWQpIC0gJXtwdWJsaWN9cyIsIGNsb3NlUmVzdWx0LCBsYXN0RXJyb3JNc2coKSk7Cisg
ICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihTUUxEYXRhYmFzZSwgIlNRTGl0ZURhdGFiYXNl
OjpjbG9zZTogRmFpbGVkIHRvIGNsb3NlIGRhdGFiYXNlICglZCkgLSAlIiBQVUJMSUNfTE9HX1NU
UklORywgY2xvc2VSZXN1bHQsIGxhc3RFcnJvck1zZygpKTsKICAgICB9CiAKICAgICBpZiAoc2hv
dWxkU2V0RXJyb3JTdGF0ZSA9PSBTaG91bGRTZXRFcnJvclN0YXRlOjpZZXMpIHsKQEAgLTcxNyw3
ICs3MTcsNyBAQCBFeHBlY3RlZDxTUUxpdGVTdGF0ZW1lbnQsIGludD4gU1FMaXRlRGF0YWJhc2U6
OnByZXBhcmVTdGF0ZW1lbnRTbG93KGNvbnN0IFN0cmluZwogICAgIENTdHJpbmcgcXVlcnkgPSBx
dWVyeVN0cmluZy5zdHJpcFdoaXRlU3BhY2UoKS51dGY4KCk7CiAgICAgYXV0byBzcWxTdGF0ZW1l
bnQgPSBjb25zdHJ1Y3RBbmRQcmVwYXJlU3RhdGVtZW50KCp0aGlzLCBxdWVyeS5kYXRhKCksIHF1
ZXJ5Lmxlbmd0aCgpKTsKICAgICBpZiAoIXNxbFN0YXRlbWVudCkgewotICAgICAgICBSRUxFQVNF
X0xPR19FUlJPUihTUUxEYXRhYmFzZSwgIlNRTGl0ZURhdGFiYXNlOjpwcmVwYXJlU3RhdGVtZW50
OiBGYWlsZWQgdG8gcHJlcGFyZSBzdGF0ZW1lbnQgJXtwdWJsaWN9cyIsIHF1ZXJ5LmRhdGEoKSk7
CisgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFNRTERhdGFiYXNlLCAiU1FMaXRlRGF0YWJhc2U6
OnByZXBhcmVTdGF0ZW1lbnQ6IEZhaWxlZCB0byBwcmVwYXJlIHN0YXRlbWVudCAlIiBQVUJMSUNf
TE9HX1NUUklORywgcXVlcnkuZGF0YSgpKTsKICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVk
KHNxbFN0YXRlbWVudC5lcnJvcigpKTsKICAgICB9CiAgICAgcmV0dXJuIFNRTGl0ZVN0YXRlbWVu
dCB7ICp0aGlzLCBzcWxTdGF0ZW1lbnQudmFsdWUoKSB9OwpAQCAtNzI3LDcgKzcyNyw3IEBAIEV4
cGVjdGVkPFNRTGl0ZVN0YXRlbWVudCwgaW50PiBTUUxpdGVEYXRhYmFzZTo6cHJlcGFyZVN0YXRl
bWVudChBU0NJSUxpdGVyYWwgcXVlCiB7CiAgICAgYXV0byBzcWxTdGF0ZW1lbnQgPSBjb25zdHJ1
Y3RBbmRQcmVwYXJlU3RhdGVtZW50KCp0aGlzLCBxdWVyeS5jaGFyYWN0ZXJzKCksIHF1ZXJ5Lmxl
bmd0aCgpKTsKICAgICBpZiAoIXNxbFN0YXRlbWVudCkgewotICAgICAgICBSRUxFQVNFX0xPR19F
UlJPUihTUUxEYXRhYmFzZSwgIlNRTGl0ZURhdGFiYXNlOjpwcmVwYXJlU3RhdGVtZW50OiBGYWls
ZWQgdG8gcHJlcGFyZSBzdGF0ZW1lbnQgJXtwdWJsaWN9cyIsIHF1ZXJ5LmNoYXJhY3RlcnMoKSk7
CisgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFNRTERhdGFiYXNlLCAiU1FMaXRlRGF0YWJhc2U6
OnByZXBhcmVTdGF0ZW1lbnQ6IEZhaWxlZCB0byBwcmVwYXJlIHN0YXRlbWVudCAlIiBQVUJMSUNf
TE9HX1NUUklORywgcXVlcnkuY2hhcmFjdGVycygpKTsKICAgICAgICAgcmV0dXJuIG1ha2VVbmV4
cGVjdGVkKHNxbFN0YXRlbWVudC5lcnJvcigpKTsKICAgICB9CiAgICAgcmV0dXJuIFNRTGl0ZVN0
YXRlbWVudCB7ICp0aGlzLCBzcWxTdGF0ZW1lbnQudmFsdWUoKSB9OwpAQCAtNzM4LDcgKzczOCw3
IEBAIEV4cGVjdGVkPFVuaXF1ZVJlZjxTUUxpdGVTdGF0ZW1lbnQ+LCBpbnQ+IFNRTGl0ZURhdGFi
YXNlOjpwcmVwYXJlSGVhcFN0YXRlbWVudFNsCiAgICAgQ1N0cmluZyBxdWVyeSA9IHF1ZXJ5U3Ry
aW5nLnN0cmlwV2hpdGVTcGFjZSgpLnV0ZjgoKTsKICAgICBhdXRvIHNxbFN0YXRlbWVudCA9IGNv
bnN0cnVjdEFuZFByZXBhcmVTdGF0ZW1lbnQoKnRoaXMsIHF1ZXJ5LmRhdGEoKSwgcXVlcnkubGVu
Z3RoKCkpOwogICAgIGlmICghc3FsU3RhdGVtZW50KSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0VS
Uk9SKFNRTERhdGFiYXNlLCAiU1FMaXRlRGF0YWJhc2U6OnByZXBhcmVIZWFwU3RhdGVtZW50OiBG
YWlsZWQgdG8gcHJlcGFyZSBzdGF0ZW1lbnQgJXtwdWJsaWN9cyIsIHF1ZXJ5LmRhdGEoKSk7Cisg
ICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFNRTERhdGFiYXNlLCAiU1FMaXRlRGF0YWJhc2U6OnBy
ZXBhcmVIZWFwU3RhdGVtZW50OiBGYWlsZWQgdG8gcHJlcGFyZSBzdGF0ZW1lbnQgJSIgUFVCTElD
X0xPR19TVFJJTkcsIHF1ZXJ5LmRhdGEoKSk7CiAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3Rl
ZChzcWxTdGF0ZW1lbnQuZXJyb3IoKSk7CiAgICAgfQogICAgIHJldHVybiBVbmlxdWVSZWY8U1FM
aXRlU3RhdGVtZW50PigqbmV3IFNRTGl0ZVN0YXRlbWVudCgqdGhpcywgc3FsU3RhdGVtZW50LnZh
bHVlKCkpKTsKQEAgLTc0OCw3ICs3NDgsNyBAQCBFeHBlY3RlZDxVbmlxdWVSZWY8U1FMaXRlU3Rh
dGVtZW50PiwgaW50PiBTUUxpdGVEYXRhYmFzZTo6cHJlcGFyZUhlYXBTdGF0ZW1lbnQoQQogewog
ICAgIGF1dG8gc3FsU3RhdGVtZW50ID0gY29uc3RydWN0QW5kUHJlcGFyZVN0YXRlbWVudCgqdGhp
cywgcXVlcnkuY2hhcmFjdGVycygpLCBxdWVyeS5sZW5ndGgoKSk7CiAgICAgaWYgKCFzcWxTdGF0
ZW1lbnQpIHsKLSAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoU1FMRGF0YWJhc2UsICJTUUxpdGVE
YXRhYmFzZTo6cHJlcGFyZUhlYXBTdGF0ZW1lbnQ6IEZhaWxlZCB0byBwcmVwYXJlIHN0YXRlbWVu
dCAle3B1YmxpY31zIiwgcXVlcnkuY2hhcmFjdGVycygpKTsKKyAgICAgICAgUkVMRUFTRV9MT0df
RVJST1IoU1FMRGF0YWJhc2UsICJTUUxpdGVEYXRhYmFzZTo6cHJlcGFyZUhlYXBTdGF0ZW1lbnQ6
IEZhaWxlZCB0byBwcmVwYXJlIHN0YXRlbWVudCAlIiBQVUJMSUNfTE9HX1NUUklORywgcXVlcnku
Y2hhcmFjdGVycygpKTsKICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKHNxbFN0YXRlbWVu
dC5lcnJvcigpKTsKICAgICB9CiAgICAgcmV0dXJuIFVuaXF1ZVJlZjxTUUxpdGVTdGF0ZW1lbnQ+
KCpuZXcgU1FMaXRlU3RhdGVtZW50KCp0aGlzLCBzcWxTdGF0ZW1lbnQudmFsdWUoKSkpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL2NtYWtlL1dlYktpdEZlYXR1cmVzLmNtYWtlIGIvU291cmNlL2NtYWtl
L1dlYktpdEZlYXR1cmVzLmNtYWtlCmluZGV4IDhjNDc3ZTY1NWY2NS4uNGZlNzEzZTJhY2JjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvY21ha2UvV2ViS2l0RmVhdHVyZXMuY21ha2UKKysrIGIvU291cmNl
L2NtYWtlL1dlYktpdEZlYXR1cmVzLmNtYWtlCkBAIC0xOTUsNiArMTk1LDcgQEAgbWFjcm8oV0VC
S0lUX09QVElPTl9CRUdJTikKICAgICBXRUJLSVRfT1BUSU9OX0RFRklORShFTkFCTEVfUElDVFVS
RV9JTl9QSUNUVVJFX0FQSSAiVG9nZ2xlIFBpY3R1cmUtaW4tUGljdHVyZSBBUEkgc3VwcG9ydCIg
UFJJVkFURSBPRkYpCiAgICAgV0VCS0lUX09QVElPTl9ERUZJTkUoRU5BQkxFX1BPSU5URVJfTE9D
SyAiVG9nZ2xlIHBvaW50ZXIgbG9jayBzdXBwb3J0IiBQUklWQVRFIE9GRikKICAgICBXRUJLSVRf
T1BUSU9OX0RFRklORShFTkFCTEVfUFVCTElDX1NVRkZJWF9MSVNUICJUb2dnbGUgcHVibGljIHN1
ZmZpeCBsaXN0IHN1cHBvcnQiIFBSSVZBVEUgT04pCisgICAgV0VCS0lUX09QVElPTl9ERUZJTkUo
RU5BQkxFX1JFTEVBU0VfTE9HICJUb2dnbGUgcmVsZWFzZSBsb2cgc3VwcG9ydCIgUFJJVkFURSBP
RkYpCiAgICAgV0VCS0lUX09QVElPTl9ERUZJTkUoRU5BQkxFX1JFTU9URV9JTlNQRUNUT1IgIlRv
Z2dsZSByZW1vdGUgaW5zcGVjdG9yIHN1cHBvcnQiIFBSSVZBVEUgT04pCiAgICAgV0VCS0lUX09Q
VElPTl9ERUZJTkUoRU5BQkxFX1JFU09VUkNFX1VTQUdFICJUb2dnbGUgcmVzb3VyY2UgdXNhZ2Ug
c3VwcG9ydCIgUFJJVkFURSBPRkYpCiAgICAgV0VCS0lUX09QVElPTl9ERUZJTkUoRU5BQkxFX1JV
QkJFUl9CQU5ESU5HICJUb2dnbGUgcnViYmVyIGJhbmRpbmcgc3VwcG9ydCIgUFJJVkFURSBPRkYp
DQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>