<?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>217363</bug_id>
          
          <creation_ts>2020-10-05 21:35:49 -0700</creation_ts>
          <short_desc>REGRESSION(r267763): [GTK][WPE] Broken main thread assertion in MemoryPressureMonitor</short_desc>
          <delta_ts>2021-02-04 00:48:14 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Lauro Moura">lmoura</reporter>
          <assigned_to name="Lauro Moura">lmoura</assigned_to>
          <cc>aboya</cc>
    
    <cc>bugs-noreply</cc>
    
    <cc>cgarcia</cc>
    
    <cc>clopez</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1695022</commentid>
    <comment_count>0</comment_count>
      <attachid>410609</attachid>
    <who name="Lauro Moura">lmoura</who>
    <bug_when>2020-10-05 21:35:49 -0700</bug_when>
    <thetext>Created attachment 410609
js/throw-large-string-oom.html trace

Some tests affected:

imported/w3c/web-platform-tests/xhr/sync-no-timeout.any.html
js/throw-large-string-oom.html (all the time, running ~10 iterations to reproduce locally)
scrollbars/scrollbar-selectors.html (only once)

Sample trace (full attached):

Thread 1 (Thread 0x7fa8ba7ff700 (LWP 29320)):
#0  0x00007fa8cac8e9ab in WTFCrash () at /app/webkit/WebKitBuild/Release/lib/libjavascriptcoregtk-4.0.so.18
#1  0x0000000000428bba in  ()
#2  0x00007fa8cd3b6ea5 in _ZN6WebKit19NetworkProcessProxy19allNetworkProcessesEv () at /app/webkit/WebKitBuild/Release/lib/libwebkit2gtk-4.0.so.37
#3  0x00007fa8cd2b657a in _ZN6WebKit14WebProcessPool23sendMemoryPressureEventEb () at /app/webkit/WebKitBuild/Release/lib/libwebkit2gtk-4.0.so.37
#4  0x00007fa8cd40c483 in _ZZN6WebKit21MemoryPressureMonitor5startEvENK3$_7clEv () at /app/webkit/WebKitBuild/Release/lib/libwebkit2gtk-4.0.so.37
#5  0x00007fa8cd40bc76 in  () at /app/webkit/WebKitBuild/Release/lib/libwebkit2gtk-4.0.so.37
#6  0x00007fa8caca9570 in _ZN3WTF6Thread10entryPointEPNS0_16NewThreadContextE () at /app/webkit/WebKitBuild/Release/lib/libjavascriptcoregtk-4.0.so.18
#7  0x00007fa8cad04026 in _ZN3WTFL19wtfThreadEntryPointEPv () at /app/webkit/WebKitBuild/Release/lib/libjavascriptcoregtk-4.0.so.18
#8  0x00007fa8c783f4d2 in start_thread (arg=&lt;optimized out&gt;) at pthread_create.c:477
#9  0x00007fa8c53a34d3 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

It&apos;s asserting the isMain() check in NetworkProcessProxy.cpp networkProcessesSet(), added by r267763 (line 89 in https://trac.webkit.org/changeset/267763/webkit#file47).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1700920</commentid>
    <comment_count>1</comment_count>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2020-10-22 20:38:18 -0700</bug_when>
    <thetext>This test is also crashing in more bots than in gtk-release-wayland bot.

And it also times out sometimes.

This is a summary of what happened on the bots recently:

gtk-release: crashed 171 times on the last 4000 runs
gtk-debug: crashed 1 times and timed out 296 times on the last 4000 runs
wpe-release crashed 97 times and timed out 11 times on the last 4000 runs
wpe-debug: timed out 330 times on the last 4000 runs</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1700923</commentid>
    <comment_count>2</comment_count>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2020-10-22 20:50:01 -0700</bug_when>
    <thetext>(In reply to Carlos Alberto Lopez Perez from comment #1)
&gt; This test is also crashing in more bots than in gtk-release-wayland bot.
&gt; 
&gt; And it also times out sometimes.
&gt; 
&gt; This is a summary of what happened on the bots recently:
&gt; 
&gt; gtk-release: crashed 171 times on the last 4000 runs
&gt; gtk-debug: crashed 1 times and timed out 296 times on the last 4000 runs
&gt; wpe-release crashed 97 times and timed out 11 times on the last 4000 runs
&gt; wpe-debug: timed out 330 times on the last 4000 runs

With &quot;this test&quot; I wanted to mean here the test js/throw-large-string-oom.html 

For the other 2 I no longer see them crashing. 

Updated expectations on r268903</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1713547</commentid>
    <comment_count>3</comment_count>
    <who name="Alicia Boya García">aboya</who>
    <bug_when>2020-12-10 08:14:53 -0800</bug_when>
    <thetext>I have reproduced this in the minibrowser as well. I was attaching gdb to the WebProcess in a computer with very limited RAM. This caused enough RAM to be used to trigger the memory pressure handler in the MiniBrowser, and it crashed there.

Here is the backtrace, same as reported before, but resolving the pointers:

ASSERTION FAILED: RunLoop::isMain()
#0  WTFCrash() () at ../../Source/WTF/wtf/Assertions.cpp:295
#1  0x00007f6bdd2309b7 in CRASH_WITH_INFO(...) () at DerivedSources/ForwardingHeaders/wtf/Assertions.h:713
#2  0x00007f6bde1df52c in WebKit::networkProcessesSet() () at ../../Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp:90
#3  0x00007f6bde1df5ad in WebKit::NetworkProcessProxy::allNetworkProcesses() () at ../../Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp:98
#4  0x00007f6bdde8063a in WebKit::WebProcessPool::sendMemoryPressureEvent(bool) (this=0x7f6bc44d6000, isCritical=false) at ../../Source/WebKit/UIProcess/WebProcessPool.cpp:443
#5  0x00007f6bde2d4e53 in operator()() const (__closure=0x7f6bc44fa6a8) at ../../Source/WebKit/UIProcess/linux/MemoryPressureMonitor.cpp:383
#6  0x00007f6bde2d60a6 in WTF::Detail::CallableWrapper&lt;WebKit::MemoryPressureMonitor::start()::&lt;lambda()&gt;, void&gt;::call(void) (this=0x7f6bc44fa6a0) at DerivedSources/ForwardingHeaders/wtf/Function.h:52
#7  0x00007f6bdd233fd3 in WTF::Function&lt;void ()&gt;::operator()() const (this=0x7f6b7dbfac30) at DerivedSources/ForwardingHeaders/wtf/Function.h:83
#8  0x00007f6bce715839 in WTF::Thread::entryPoint(WTF::Thread::NewThreadContext*) (newThreadContext=0x7f6bc44eb410) at ../../Source/WTF/wtf/Threading.cpp:179
#9  0x00007f6bce7a6191 in WTF::wtfThreadEntryPoint(void*) (context=0x7f6bc44eb410) at ../../Source/WTF/wtf/posix/ThreadingPOSIX.cpp:213
#10 0x00007f6bc87674d2 in start_thread (arg=&lt;optimized out&gt;) at pthread_create.c:477
#11 0x00007f6bc64852a3 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Note this is the code that starts and runs the MemoryPressureMonitor, very clearly on its own thread.

void MemoryPressureMonitor::start()
{
    if (m_started)
        return;

    m_started = true;

    Thread::create(&quot;MemoryPressureMonitor&quot;, [] {
        [...]
        while (true) {
            [...]
            if (usedPercentage &gt;= s_memoryPresurePercentageThreshold) {
                [...]
                for (auto* processPool : WebProcessPool::allProcessPools())
                    processPool-&gt;sendMemoryPressureEvent([...]);

Then WebProcessPool::sendMemoryPressureEvent() needs to traverse allNetworkProcesses()

void WebProcessPool::sendMemoryPressureEvent([...])
{
    [...]
    for (auto networkProcess : NetworkProcessProxy::allNetworkProcesses())

But networkProcessesSet() assumes it will only ever be used in the main thread, which is not the case here.

static HashSet&lt;NetworkProcessProxy*&gt;&amp; networkProcessesSet()
{
    ASSERT(RunLoop::isMain());
    static NeverDestroyed&lt;HashSet&lt;NetworkProcessProxy*&gt;&gt; set;
    return set;
}</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1725454</commentid>
    <comment_count>4</comment_count>
      <attachid>419219</attachid>
    <who name="Lauro Moura">lmoura</who>
    <bug_when>2021-02-03 19:42:15 -0800</bug_when>
    <thetext>Created attachment 419219
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1725546</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-02-04 00:47:39 -0800</bug_when>
    <thetext>Committed r272362: &lt;https://trac.webkit.org/changeset/272362&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 419219.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1725548</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-02-04 00:48:14 -0800</bug_when>
    <thetext>&lt;rdar://problem/73970229&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>410609</attachid>
            <date>2020-10-05 21:35:49 -0700</date>
            <delta_ts>2020-10-05 21:35:49 -0700</delta_ts>
            <desc>js/throw-large-string-oom.html trace</desc>
            <filename>throw-large-string-oom-crash-log.txt</filename>
            <type>text/plain</type>
            <size>16406</size>
            <attacher name="Lauro Moura">lmoura</attacher>
            
              <data encoding="base64">Y3Jhc2ggbG9nIGZvciBXZWJLaXRUZXN0UnVubmVyIChwaWQgMjkyNzQpOgoKRVJST1I6IFRoZSBn
ZGIgcHJvY2VzcyBleGl0ZWQgd2l0aCBub24temVybyByZXR1cm4gY29kZSBOb25lCgpbTmV3IExX
UCAyOTMyMF0KW05ldyBMV1AgMjkzMjJdCltOZXcgTFdQIDYzMDFdCltOZXcgTFdQIDI5Mjc0XQpb
TmV3IExXUCAyOTI4NV0KW05ldyBMV1AgMjkzMTJdCltOZXcgTFdQIDI5MzE0XQpbTmV3IExXUCAy
OTMyMV0KW05ldyBMV1AgMjkzMTVdCltOZXcgTFdQIDI5Mjg2XQpbTmV3IExXUCAyOTMxNl0KW05l
dyBMV1AgMjkzMDhdCltOZXcgTFdQIDI5MzI0XQpbVGhyZWFkIGRlYnVnZ2luZyB1c2luZyBsaWJ0
aHJlYWRfZGIgZW5hYmxlZF0KVXNpbmcgaG9zdCBsaWJ0aHJlYWRfZGIgbGlicmFyeSAiL3Vzci9s
aWIveDg2XzY0LWxpbnV4LWdudS9saWJ0aHJlYWRfZGIuc28uMSIuCkNvcmUgd2FzIGdlbmVyYXRl
ZCBieSBgL2FwcC93ZWJraXQvV2ViS2l0QnVpbGQvUmVsZWFzZS9iaW4vV2ViS2l0VGVzdFJ1bm5l
ciAtJy4KUHJvZ3JhbSB0ZXJtaW5hdGVkIHdpdGggc2lnbmFsIFNJR1NFR1YsIFNlZ21lbnRhdGlv
biBmYXVsdC4KIzAgIDB4MDAwMDdmYThjYWM4ZTlhYiBpbiBXVEZDcmFzaCAoKSBmcm9tIC9hcHAv
d2Via2l0L1dlYktpdEJ1aWxkL1JlbGVhc2UvbGliL2xpYmphdmFzY3JpcHRjb3JlZ3RrLTQuMC5z
by4xOApbQ3VycmVudCB0aHJlYWQgaXMgMSAoVGhyZWFkIDB4N2ZhOGJhN2ZmNzAwIChMV1AgMjkz
MjApKV0KClRocmVhZCAxMyAoVGhyZWFkIDB4N2ZhOGI4ZmZjNzAwIChMV1AgMjkzMjQpKToKIzAg
IDB4MDAwMDdmYThjNTM5ODZlZiBpbiBfX0dJX19fcG9sbCAoZmRzPTB4N2ZhODU4MDAyZWMwLCBu
ZmRzPTIsIHRpbWVvdXQ9LTEpIGF0IC4uL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3BvbGwuYzoy
OQojMSAgMHgwMDAwN2ZhOGQwOTk5MzhlIGluIGdfbWFpbl9jb250ZXh0X3BvbGwgKHByaW9yaXR5
PTxvcHRpbWl6ZWQgb3V0Piwgbl9mZHM9MiwgZmRzPTB4N2ZhODU4MDAyZWMwLCB0aW1lb3V0PTxv
cHRpbWl6ZWQgb3V0PiwgY29udGV4dD0weDdmYTg1ODAwMGI2MCkgYXQgLi4vZ2xpYi9nbWFpbi5j
OjQzOTUKIzIgIGdfbWFpbl9jb250ZXh0X2l0ZXJhdGUgKGNvbnRleHQ9MHg3ZmE4NTgwMDBiNjAs
IGJsb2NrPWJsb2NrQGVudHJ5PTEsIGRpc3BhdGNoPWRpc3BhdGNoQGVudHJ5PTEsIHNlbGY9PG9w
dGltaXplZCBvdXQ+KSBhdCAuLi9nbGliL2dtYWluLmM6NDA4NwojMyAgMHgwMDAwN2ZhOGQwOTk5
NzEzIGluIGdfbWFpbl9sb29wX3J1biAobG9vcD0weDdmYTg1ODAwMWQ0MCkgYXQgLi4vZ2xpYi9n
bWFpbi5jOjQyOTAKIzQgIDB4MDAwMDdmYThjYWQwMTg4YiBpbiBfWk4zV1RGN1J1bkxvb3AzcnVu
RXYgKCkgYXQgL2FwcC93ZWJraXQvV2ViS2l0QnVpbGQvUmVsZWFzZS9saWIvbGliamF2YXNjcmlw
dGNvcmVndGstNC4wLnNvLjE4CiM1ICAweDAwMDA3ZmE4Y2FjYTk1NzAgaW4gX1pOM1dURjZUaHJl
YWQxMGVudHJ5UG9pbnRFUE5TMF8xNk5ld1RocmVhZENvbnRleHRFICgpIGF0IC9hcHAvd2Via2l0
L1dlYktpdEJ1aWxkL1JlbGVhc2UvbGliL2xpYmphdmFzY3JpcHRjb3JlZ3RrLTQuMC5zby4xOAoj
NiAgMHgwMDAwN2ZhOGNhZDA0MDI2IGluIF9aTjNXVEZMMTl3dGZUaHJlYWRFbnRyeVBvaW50RVB2
ICgpIGF0IC9hcHAvd2Via2l0L1dlYktpdEJ1aWxkL1JlbGVhc2UvbGliL2xpYmphdmFzY3JpcHRj
b3JlZ3RrLTQuMC5zby4xOAojNyAgMHgwMDAwN2ZhOGM3ODNmNGQyIGluIHN0YXJ0X3RocmVhZCAo
YXJnPTxvcHRpbWl6ZWQgb3V0PikgYXQgcHRocmVhZF9jcmVhdGUuYzo0NzcKIzggIDB4MDAwMDdm
YThjNTNhMzRkMyBpbiBjbG9uZSAoKSBhdCAuLi9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC94ODZf
NjQvY2xvbmUuUzo5NQoKVGhyZWFkIDEyIChUaHJlYWQgMHg3ZmE4YzJlNWQ3MDAgKExXUCAyOTMw
OCkpOgojMCAgZnV0ZXhfd2FpdF9jYW5jZWxhYmxlIChwcml2YXRlPTAsIGV4cGVjdGVkPTAsIGZ1
dGV4X3dvcmQ9MHg3ZmE4Y2IwOGVhNDQgPF9aTjdibWFsbG9jMjlTdGF0aWNQZXJQcm9jZXNzU3Rv
cmFnZVRyYWl0c0lOU185U2NhdmVuZ2VyRUU3U3RvcmFnZThzX21lbW9yeUUrNzY+KSBhdCAuLi9z
eXNkZXBzL25wdGwvZnV0ZXgtaW50ZXJuYWwuaDoxODMKIzEgIF9fcHRocmVhZF9jb25kX3dhaXRf
Y29tbW9uIChhYnN0aW1lPTB4MCwgY2xvY2tpZD0wLCBtdXRleD0weDIwNDk2ODAsIGNvbmQ9MHg3
ZmE4Y2IwOGVhMTggPF9aTjdibWFsbG9jMjlTdGF0aWNQZXJQcm9jZXNzU3RvcmFnZVRyYWl0c0lO
U185U2NhdmVuZ2VyRUU3U3RvcmFnZThzX21lbW9yeUUrMzI+KSBhdCBwdGhyZWFkX2NvbmRfd2Fp
dC5jOjUwOAojMiAgX19wdGhyZWFkX2NvbmRfd2FpdCAoY29uZD0weDdmYThjYjA4ZWExOCA8X1pO
N2JtYWxsb2MyOVN0YXRpY1BlclByb2Nlc3NTdG9yYWdlVHJhaXRzSU5TXzlTY2F2ZW5nZXJFRTdT
dG9yYWdlOHNfbWVtb3J5RSszMj4sIG11dGV4PTB4MjA0OTY4MCkgYXQgcHRocmVhZF9jb25kX3dh
aXQuYzo2MzgKIzMgIDB4MDAwMDdmYThjNTZiMTc3MCBpbiBfX2d0aHJlYWRfY29uZF93YWl0IChf
X211dGV4PTxvcHRpbWl6ZWQgb3V0PiwgX19jb25kPTxvcHRpbWl6ZWQgb3V0PikgYXQgL3Vzci9s
aWIvZGVidWcvc291cmNlL2Jvb3RzdHJhcC9nY2MuYnN0L2JzdF9idWlsZF9kaXIveDg2XzY0LXVu
a25vd24tbGludXgtZ251L2xpYnN0ZGMrKy12My9pbmNsdWRlL3g4Nl82NC11bmtub3duLWxpbnV4
LWdudS9iaXRzL2d0aHItZGVmYXVsdC5oOjg2NQojNCAgX1pOU3QxOGNvbmRpdGlvbl92YXJpYWJs
ZTR3YWl0RVJTdDExdW5pcXVlX2xvY2tJU3Q1bXV0ZXhFICh0aGlzPTxvcHRpbWl6ZWQgb3V0Piwg
X19sb2NrPS4uLikgYXQgLi4vLi4vLi4vLi4vLi4vbGlic3RkYysrLXYzL3NyYy9jKysxMS9jb25k
aXRpb25fdmFyaWFibGUuY2M6NTMKIzUgIDB4MDAwMDdmYThjYWQwZmU2YiBpbiBfWk5TdDNfVjIy
MmNvbmRpdGlvbl92YXJpYWJsZV9hbnk0d2FpdElTdDExdW5pcXVlX2xvY2tJTjdibWFsbG9jNU11
dGV4RUVFRXZSVF8gKCkgYXQgL2FwcC93ZWJraXQvV2ViS2l0QnVpbGQvUmVsZWFzZS9saWIvbGli
amF2YXNjcmlwdGNvcmVndGstNC4wLnNvLjE4CiM2ICAweDAwMDA3ZmE4Y2FkMTI0OWIgaW4gX1pO
N2JtYWxsb2M5U2NhdmVuZ2VyMTN0aHJlYWRSdW5Mb29wRXYgKCkgYXQgL2FwcC93ZWJraXQvV2Vi
S2l0QnVpbGQvUmVsZWFzZS9saWIvbGliamF2YXNjcmlwdGNvcmVndGstNC4wLnNvLjE4CiM3ICAw
eDAwMDA3ZmE4Y2FkMTE4NzYgaW4gICgpIGF0IC9hcHAvd2Via2l0L1dlYktpdEJ1aWxkL1JlbGVh
c2UvbGliL2xpYmphdmFzY3JpcHRjb3JlZ3RrLTQuMC5zby4xOAojOCAgMHgwMDAwN2ZhOGNhZDEy
ZTRiIGluICAoKSBhdCAvYXBwL3dlYmtpdC9XZWJLaXRCdWlsZC9SZWxlYXNlL2xpYi9saWJqYXZh
c2NyaXB0Y29yZWd0ay00LjAuc28uMTgKIzkgIDB4MDAwMDdmYThjNTZiN2E3NCBpbiBzdGQ6OmV4
ZWN1dGVfbmF0aXZlX3RocmVhZF9yb3V0aW5lKHZvaWQqKSAoX19wPTB4MWYzNDgzMCkgYXQgLi4v
Li4vLi4vLi4vLi4vbGlic3RkYysrLXYzL3NyYy9jKysxMS90aHJlYWQuY2M6ODAKIzEwIDB4MDAw
MDdmYThjNzgzZjRkMiBpbiBzdGFydF90aHJlYWQgKGFyZz08b3B0aW1pemVkIG91dD4pIGF0IHB0
aHJlYWRfY3JlYXRlLmM6NDc3CiMxMSAweDAwMDA3ZmE4YzUzYTM0ZDMgaW4gY2xvbmUgKCkgYXQg
Li4vc3lzZGVwcy91bml4L3N5c3YvbGludXgveDg2XzY0L2Nsb25lLlM6OTUKClRocmVhZCAxMSAo
VGhyZWFkIDB4N2ZhOGJiN2ZlNzAwIChMV1AgMjkzMTYpKToKIzAgIGZ1dGV4X3dhaXRfY2FuY2Vs
YWJsZSAocHJpdmF0ZT0wLCBleHBlY3RlZD0wLCBmdXRleF93b3JkPTB4MWZmYjBjYykgYXQgLi4v
c3lzZGVwcy9ucHRsL2Z1dGV4LWludGVybmFsLmg6MTgzCiMxICBfX3B0aHJlYWRfY29uZF93YWl0
X2NvbW1vbiAoYWJzdGltZT0weDAsIGNsb2NraWQ9MCwgbXV0ZXg9MHgxZmZiMDc4LCBjb25kPTB4
MWZmYjBhMCkgYXQgcHRocmVhZF9jb25kX3dhaXQuYzo1MDgKIzIgIF9fcHRocmVhZF9jb25kX3dh
aXQgKGNvbmQ9Y29uZEBlbnRyeT0weDFmZmIwYTAsIG11dGV4PW11dGV4QGVudHJ5PTB4MWZmYjA3
OCkgYXQgcHRocmVhZF9jb25kX3dhaXQuYzo2MzgKIzMgIDB4MDAwMDdmYThjMTk3MmRlYiBpbiBj
bmRfd2FpdCAobXR4PTB4MWZmYjA3OCwgY29uZD0weDFmZmIwYTApIGF0IC4uL2luY2x1ZGUvYzEx
L3RocmVhZHNfcG9zaXguaDoxNTUKIzQgIHV0aWxfcXVldWVfdGhyZWFkX2Z1bmMgKGlucHV0PWlu
cHV0QGVudHJ5PTB4MWY2YTM4MCkgYXQgLi4vc3JjL3V0aWwvdV9xdWV1ZS5jOjI3NQojNSAgMHgw
MDAwN2ZhOGMxOTcyOGRiIGluIGltcGxfdGhyZF9yb3V0aW5lIChwPTxvcHRpbWl6ZWQgb3V0Pikg
YXQgLi4vaW5jbHVkZS9jMTEvdGhyZWFkc19wb3NpeC5oOjg3CiM2ICAweDAwMDA3ZmE4Yzc4M2Y0
ZDIgaW4gc3RhcnRfdGhyZWFkIChhcmc9PG9wdGltaXplZCBvdXQ+KSBhdCBwdGhyZWFkX2NyZWF0
ZS5jOjQ3NwojNyAgMHgwMDAwN2ZhOGM1M2EzNGQzIGluIGNsb25lICgpIGF0IC4uL3N5c2RlcHMv
dW5peC9zeXN2L2xpbnV4L3g4Nl82NC9jbG9uZS5TOjk1CgpUaHJlYWQgMTAgKFRocmVhZCAweDdm
YThjMzhlMDcwMCAoTFdQIDI5Mjg2KSk6CiMwICAweDAwMDA3ZmE4YzUzOTg2ZWYgaW4gX19HSV9f
X3BvbGwgKGZkcz0weDFmNWY0NzAsIG5mZHM9MiwgdGltZW91dD0tMSkgYXQgLi4vc3lzZGVwcy91
bml4L3N5c3YvbGludXgvcG9sbC5jOjI5CiMxICAweDAwMDA3ZmE4ZDA5OTkzOGUgaW4gZ19tYWlu
X2NvbnRleHRfcG9sbCAocHJpb3JpdHk9PG9wdGltaXplZCBvdXQ+LCBuX2Zkcz0yLCBmZHM9MHgx
ZjVmNDcwLCB0aW1lb3V0PTxvcHRpbWl6ZWQgb3V0PiwgY29udGV4dD0weDFmNWM3MTApIGF0IC4u
L2dsaWIvZ21haW4uYzo0Mzk1CiMyICBnX21haW5fY29udGV4dF9pdGVyYXRlIChjb250ZXh0PTB4
MWY1YzcxMCwgYmxvY2s9YmxvY2tAZW50cnk9MSwgZGlzcGF0Y2g9ZGlzcGF0Y2hAZW50cnk9MSwg
c2VsZj08b3B0aW1pemVkIG91dD4pIGF0IC4uL2dsaWIvZ21haW4uYzo0MDg3CiMzICAweDAwMDA3
ZmE4ZDA5OTk3MTMgaW4gZ19tYWluX2xvb3BfcnVuIChsb29wPTB4MWY1YzgwMCkgYXQgLi4vZ2xp
Yi9nbWFpbi5jOjQyOTAKIzQgIDB4MDAwMDdmYThjNjU3MTNkYSBpbiBnZGJ1c19zaGFyZWRfdGhy
ZWFkX2Z1bmMgKHVzZXJfZGF0YT0weDFmNWM2ZTApIGF0IC4uL2dpby9nZGJ1c3ByaXZhdGUuYzoy
ODAKIzUgIDB4MDAwMDdmYThkMDljMmU4MSBpbiBnX3RocmVhZF9wcm94eSAoZGF0YT0weDFmNTYz
MDApIGF0IC4uL2dsaWIvZ3RocmVhZC5jOjgxOQojNiAgMHgwMDAwN2ZhOGM3ODNmNGQyIGluIHN0
YXJ0X3RocmVhZCAoYXJnPTxvcHRpbWl6ZWQgb3V0PikgYXQgcHRocmVhZF9jcmVhdGUuYzo0NzcK
IzcgIDB4MDAwMDdmYThjNTNhMzRkMyBpbiBjbG9uZSAoKSBhdCAuLi9zeXNkZXBzL3VuaXgvc3lz
di9saW51eC94ODZfNjQvY2xvbmUuUzo5NQoKVGhyZWFkIDkgKFRocmVhZCAweDdmYThiYmZmZjcw
MCAoTFdQIDI5MzE1KSk6CiMwICBmdXRleF93YWl0X2NhbmNlbGFibGUgKHByaXZhdGU9MCwgZXhw
ZWN0ZWQ9MCwgZnV0ZXhfd29yZD0weDFmZmIwY2MpIGF0IC4uL3N5c2RlcHMvbnB0bC9mdXRleC1p
bnRlcm5hbC5oOjE4MwojMSAgX19wdGhyZWFkX2NvbmRfd2FpdF9jb21tb24gKGFic3RpbWU9MHgw
LCBjbG9ja2lkPTAsIG11dGV4PTB4MWZmYjA3OCwgY29uZD0weDFmZmIwYTApIGF0IHB0aHJlYWRf
Y29uZF93YWl0LmM6NTA4CiMyICBfX3B0aHJlYWRfY29uZF93YWl0IChjb25kPWNvbmRAZW50cnk9
MHgxZmZiMGEwLCBtdXRleD1tdXRleEBlbnRyeT0weDFmZmIwNzgpIGF0IHB0aHJlYWRfY29uZF93
YWl0LmM6NjM4CiMzICAweDAwMDA3ZmE4YzE5NzJkZWIgaW4gY25kX3dhaXQgKG10eD0weDFmZmIw
NzgsIGNvbmQ9MHgxZmZiMGEwKSBhdCAuLi9pbmNsdWRlL2MxMS90aHJlYWRzX3Bvc2l4Lmg6MTU1
CiM0ICB1dGlsX3F1ZXVlX3RocmVhZF9mdW5jIChpbnB1dD1pbnB1dEBlbnRyeT0weDFmNmEyNDAp
IGF0IC4uL3NyYy91dGlsL3VfcXVldWUuYzoyNzUKIzUgIDB4MDAwMDdmYThjMTk3MjhkYiBpbiBp
bXBsX3RocmRfcm91dGluZSAocD08b3B0aW1pemVkIG91dD4pIGF0IC4uL2luY2x1ZGUvYzExL3Ro
cmVhZHNfcG9zaXguaDo4NwojNiAgMHgwMDAwN2ZhOGM3ODNmNGQyIGluIHN0YXJ0X3RocmVhZCAo
YXJnPTxvcHRpbWl6ZWQgb3V0PikgYXQgcHRocmVhZF9jcmVhdGUuYzo0NzcKIzcgIDB4MDAwMDdm
YThjNTNhMzRkMyBpbiBjbG9uZSAoKSBhdCAuLi9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC94ODZf
NjQvY2xvbmUuUzo5NQoKVGhyZWFkIDggKFRocmVhZCAweDdmYThiOWZmZTcwMCAoTFdQIDI5MzIx
KSk6CiMwICAweDAwMDA3ZmE4YzUzOTg2ZWYgaW4gX19HSV9fX3BvbGwgKGZkcz0weDdmYTg2MDAw
MjZhMCwgbmZkcz0xLCB0aW1lb3V0PS0xKSBhdCAuLi9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC9w
b2xsLmM6MjkKIzEgIDB4MDAwMDdmYThkMDk5OTM4ZSBpbiBnX21haW5fY29udGV4dF9wb2xsIChw
cmlvcml0eT08b3B0aW1pemVkIG91dD4sIG5fZmRzPTEsIGZkcz0weDdmYTg2MDAwMjZhMCwgdGlt
ZW91dD08b3B0aW1pemVkIG91dD4sIGNvbnRleHQ9MHg3ZmE4NjAwMDBiNjApIGF0IC4uL2dsaWIv
Z21haW4uYzo0Mzk1CiMyICBnX21haW5fY29udGV4dF9pdGVyYXRlIChjb250ZXh0PTB4N2ZhODYw
MDAwYjYwLCBibG9jaz1ibG9ja0BlbnRyeT0xLCBkaXNwYXRjaD1kaXNwYXRjaEBlbnRyeT0xLCBz
ZWxmPTxvcHRpbWl6ZWQgb3V0PikgYXQgLi4vZ2xpYi9nbWFpbi5jOjQwODcKIzMgIDB4MDAwMDdm
YThkMDk5OTcxMyBpbiBnX21haW5fbG9vcF9ydW4gKGxvb3A9MHg3ZmE4NjAwMDE0ODApIGF0IC4u
L2dsaWIvZ21haW4uYzo0MjkwCiM0ICAweDAwMDA3ZmE4Y2FkMDE4OGIgaW4gX1pOM1dURjdSdW5M
b29wM3J1bkV2ICgpIGF0IC9hcHAvd2Via2l0L1dlYktpdEJ1aWxkL1JlbGVhc2UvbGliL2xpYmph
dmFzY3JpcHRjb3JlZ3RrLTQuMC5zby4xOAojNSAgMHgwMDAwN2ZhOGNhY2E5NTcwIGluIF9aTjNX
VEY2VGhyZWFkMTBlbnRyeVBvaW50RVBOUzBfMTZOZXdUaHJlYWRDb250ZXh0RSAoKSBhdCAvYXBw
L3dlYmtpdC9XZWJLaXRCdWlsZC9SZWxlYXNlL2xpYi9saWJqYXZhc2NyaXB0Y29yZWd0ay00LjAu
c28uMTgKIzYgIDB4MDAwMDdmYThjYWQwNDAyNiBpbiBfWk4zV1RGTDE5d3RmVGhyZWFkRW50cnlQ
b2ludEVQdiAoKSBhdCAvYXBwL3dlYmtpdC9XZWJLaXRCdWlsZC9SZWxlYXNlL2xpYi9saWJqYXZh
c2NyaXB0Y29yZWd0ay00LjAuc28uMTgKIzcgIDB4MDAwMDdmYThjNzgzZjRkMiBpbiBzdGFydF90
aHJlYWQgKGFyZz08b3B0aW1pemVkIG91dD4pIGF0IHB0aHJlYWRfY3JlYXRlLmM6NDc3CiM4ICAw
eDAwMDA3ZmE4YzUzYTM0ZDMgaW4gY2xvbmUgKCkgYXQgLi4vc3lzZGVwcy91bml4L3N5c3YvbGlu
dXgveDg2XzY0L2Nsb25lLlM6OTUKClRocmVhZCA3IChUaHJlYWQgMHg3ZmE4YzBhNGI3MDAgKExX
UCAyOTMxNCkpOgojMCAgZnV0ZXhfd2FpdF9jYW5jZWxhYmxlIChwcml2YXRlPTAsIGV4cGVjdGVk
PTAsIGZ1dGV4X3dvcmQ9MHgxZmZiMGM4KSBhdCAuLi9zeXNkZXBzL25wdGwvZnV0ZXgtaW50ZXJu
YWwuaDoxODMKIzEgIF9fcHRocmVhZF9jb25kX3dhaXRfY29tbW9uIChhYnN0aW1lPTB4MCwgY2xv
Y2tpZD0wLCBtdXRleD0weDFmZmIwNzgsIGNvbmQ9MHgxZmZiMGEwKSBhdCBwdGhyZWFkX2NvbmRf
d2FpdC5jOjUwOAojMiAgX19wdGhyZWFkX2NvbmRfd2FpdCAoY29uZD1jb25kQGVudHJ5PTB4MWZm
YjBhMCwgbXV0ZXg9bXV0ZXhAZW50cnk9MHgxZmZiMDc4KSBhdCBwdGhyZWFkX2NvbmRfd2FpdC5j
OjYzOAojMyAgMHgwMDAwN2ZhOGMxOTcyZGViIGluIGNuZF93YWl0IChtdHg9MHgxZmZiMDc4LCBj
b25kPTB4MWZmYjBhMCkgYXQgLi4vaW5jbHVkZS9jMTEvdGhyZWFkc19wb3NpeC5oOjE1NQojNCAg
dXRpbF9xdWV1ZV90aHJlYWRfZnVuYyAoaW5wdXQ9aW5wdXRAZW50cnk9MHgxZmI3MWUwKSBhdCAu
Li9zcmMvdXRpbC91X3F1ZXVlLmM6Mjc1CiM1ICAweDAwMDA3ZmE4YzE5NzI4ZGIgaW4gaW1wbF90
aHJkX3JvdXRpbmUgKHA9PG9wdGltaXplZCBvdXQ+KSBhdCAuLi9pbmNsdWRlL2MxMS90aHJlYWRz
X3Bvc2l4Lmg6ODcKIzYgIDB4MDAwMDdmYThjNzgzZjRkMiBpbiBzdGFydF90aHJlYWQgKGFyZz08
b3B0aW1pemVkIG91dD4pIGF0IHB0aHJlYWRfY3JlYXRlLmM6NDc3CiM3ICAweDAwMDA3ZmE4YzUz
YTM0ZDMgaW4gY2xvbmUgKCkgYXQgLi4vc3lzZGVwcy91bml4L3N5c3YvbGludXgveDg2XzY0L2Ns
b25lLlM6OTUKClRocmVhZCA2IChUaHJlYWQgMHg3ZmE4YzEyNGM3MDAgKExXUCAyOTMxMikpOgoj
MCAgZnV0ZXhfd2FpdF9jYW5jZWxhYmxlIChwcml2YXRlPTAsIGV4cGVjdGVkPTAsIGZ1dGV4X3dv
cmQ9MHgxZmZiMGNjKSBhdCAuLi9zeXNkZXBzL25wdGwvZnV0ZXgtaW50ZXJuYWwuaDoxODMKIzEg
IF9fcHRocmVhZF9jb25kX3dhaXRfY29tbW9uIChhYnN0aW1lPTB4MCwgY2xvY2tpZD0wLCBtdXRl
eD0weDFmZmIwNzgsIGNvbmQ9MHgxZmZiMGEwKSBhdCBwdGhyZWFkX2NvbmRfd2FpdC5jOjUwOAoj
MiAgX19wdGhyZWFkX2NvbmRfd2FpdCAoY29uZD1jb25kQGVudHJ5PTB4MWZmYjBhMCwgbXV0ZXg9
bXV0ZXhAZW50cnk9MHgxZmZiMDc4KSBhdCBwdGhyZWFkX2NvbmRfd2FpdC5jOjYzOAojMyAgMHgw
MDAwN2ZhOGMxOTcyZGViIGluIGNuZF93YWl0IChtdHg9MHgxZmZiMDc4LCBjb25kPTB4MWZmYjBh
MCkgYXQgLi4vaW5jbHVkZS9jMTEvdGhyZWFkc19wb3NpeC5oOjE1NQojNCAgdXRpbF9xdWV1ZV90
aHJlYWRfZnVuYyAoaW5wdXQ9aW5wdXRAZW50cnk9MHgxZmI3MjMwKSBhdCAuLi9zcmMvdXRpbC91
X3F1ZXVlLmM6Mjc1CiM1ICAweDAwMDA3ZmE4YzE5NzI4ZGIgaW4gaW1wbF90aHJkX3JvdXRpbmUg
KHA9PG9wdGltaXplZCBvdXQ+KSBhdCAuLi9pbmNsdWRlL2MxMS90aHJlYWRzX3Bvc2l4Lmg6ODcK
IzYgIDB4MDAwMDdmYThjNzgzZjRkMiBpbiBzdGFydF90aHJlYWQgKGFyZz08b3B0aW1pemVkIG91
dD4pIGF0IHB0aHJlYWRfY3JlYXRlLmM6NDc3CiM3ICAweDAwMDA3ZmE4YzUzYTM0ZDMgaW4gY2xv
bmUgKCkgYXQgLi4vc3lzZGVwcy91bml4L3N5c3YvbGludXgveDg2XzY0L2Nsb25lLlM6OTUKClRo
cmVhZCA1IChUaHJlYWQgMHg3ZmE4YzQwZTE3MDAgKExXUCAyOTI4NSkpOgojMCAgMHgwMDAwN2Zh
OGM1Mzk4NmVmIGluIF9fR0lfX19wb2xsIChmZHM9MHgxZjQ5YWEwLCBuZmRzPTEsIHRpbWVvdXQ9
LTEpIGF0IC4uL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3BvbGwuYzoyOQojMSAgMHgwMDAwN2Zh
OGQwOTk5MzhlIGluIGdfbWFpbl9jb250ZXh0X3BvbGwgKHByaW9yaXR5PTxvcHRpbWl6ZWQgb3V0
Piwgbl9mZHM9MSwgZmRzPTB4MWY0OWFhMCwgdGltZW91dD08b3B0aW1pemVkIG91dD4sIGNvbnRl
eHQ9MHgxZjRjZDMwKSBhdCAuLi9nbGliL2dtYWluLmM6NDM5NQojMiAgZ19tYWluX2NvbnRleHRf
aXRlcmF0ZSAoY29udGV4dD1jb250ZXh0QGVudHJ5PTB4MWY0Y2QzMCwgYmxvY2s9YmxvY2tAZW50
cnk9MSwgZGlzcGF0Y2g9ZGlzcGF0Y2hAZW50cnk9MSwgc2VsZj08b3B0aW1pemVkIG91dD4pIGF0
IC4uL2dsaWIvZ21haW4uYzo0MDg3CiMzICAweDAwMDA3ZmE4ZDA5OTk0YzMgaW4gZ19tYWluX2Nv
bnRleHRfaXRlcmF0aW9uIChjb250ZXh0PTB4MWY0Y2QzMCwgbWF5X2Jsb2NrPW1heV9ibG9ja0Bl
bnRyeT0xKSBhdCAuLi9nbGliL2dtYWluLmM6NDE1NwojNCAgMHgwMDAwN2ZhOGQwOTk5NTExIGlu
IGdsaWJfd29ya2VyX21haW4gKGRhdGE9PG9wdGltaXplZCBvdXQ+KSBhdCAuLi9nbGliL2dtYWlu
LmM6NjA0OQojNSAgMHgwMDAwN2ZhOGQwOWMyZTgxIGluIGdfdGhyZWFkX3Byb3h5IChkYXRhPTB4
MWVlOTk4MCkgYXQgLi4vZ2xpYi9ndGhyZWFkLmM6ODE5CiM2ICAweDAwMDA3ZmE4Yzc4M2Y0ZDIg
aW4gc3RhcnRfdGhyZWFkIChhcmc9PG9wdGltaXplZCBvdXQ+KSBhdCBwdGhyZWFkX2NyZWF0ZS5j
OjQ3NwojNyAgMHgwMDAwN2ZhOGM1M2EzNGQzIGluIGNsb25lICgpIGF0IC4uL3N5c2RlcHMvdW5p
eC9zeXN2L2xpbnV4L3g4Nl82NC9jbG9uZS5TOjk1CgpUaHJlYWQgNCAoVGhyZWFkIDB4N2ZhOGM0
M2IwOWMwIChMV1AgMjkyNzQpKToKIzAgIDB4MDAwMDdmYThjNTM5ODZlZiBpbiBfX0dJX19fcG9s
bCAoZmRzPTB4MjFkYWVlMCwgbmZkcz01LCB0aW1lb3V0PTQwOTEpIGF0IC4uL3N5c2RlcHMvdW5p
eC9zeXN2L2xpbnV4L3BvbGwuYzoyOQojMSAgMHgwMDAwN2ZhOGQwOTk5MzhlIGluIGdfbWFpbl9j
b250ZXh0X3BvbGwgKHByaW9yaXR5PTxvcHRpbWl6ZWQgb3V0Piwgbl9mZHM9NSwgZmRzPTB4MjFk
YWVlMCwgdGltZW91dD08b3B0aW1pemVkIG91dD4sIGNvbnRleHQ9MHgxZjU0ZDAwKSBhdCAuLi9n
bGliL2dtYWluLmM6NDM5NQojMiAgZ19tYWluX2NvbnRleHRfaXRlcmF0ZSAoY29udGV4dD0weDFm
NTRkMDAsIGJsb2NrPWJsb2NrQGVudHJ5PTEsIGRpc3BhdGNoPWRpc3BhdGNoQGVudHJ5PTEsIHNl
bGY9PG9wdGltaXplZCBvdXQ+KSBhdCAuLi9nbGliL2dtYWluLmM6NDA4NwojMyAgMHgwMDAwN2Zh
OGQwOTk5NzEzIGluIGdfbWFpbl9sb29wX3J1biAobG9vcD0weDI1ZTY0NjApIGF0IC4uL2dsaWIv
Z21haW4uYzo0MjkwCiM0ICAweDAwMDA3ZmE4Y2FkMDE4OGIgaW4gX1pOM1dURjdSdW5Mb29wM3J1
bkV2ICgpIGF0IC9hcHAvd2Via2l0L1dlYktpdEJ1aWxkL1JlbGVhc2UvbGliL2xpYmphdmFzY3Jp
cHRjb3JlZ3RrLTQuMC5zby4xOAojNSAgMHgwMDAwMDAwMDAwNDQxZDBhIGluIF9aTjNXVFIxNFRl
c3RDb250cm9sbGVyMTZwbGF0Zm9ybVJ1blVudGlsRVJiTjNXVEY3U2Vjb25kc0UgKCkKIzYgIDB4
MDAwMDAwMDAwMDQzNDEwNyBpbiBfWk4zV1RSMTRUZXN0SW52b2NhdGlvbjZpbnZva2VFdiAoKQoj
NyAgMHgwMDAwMDAwMDAwNDFkZWZlIGluIF9aTjNXVFIxNFRlc3RDb250cm9sbGVyN3J1blRlc3RF
UEtjICgpCiM4ICAweDAwMDAwMDAwMDA0MWUyYzEgaW4gX1pOM1dUUjE0VGVzdENvbnRyb2xsZXIy
MHJ1blRlc3RpbmdTZXJ2ZXJMb29wRXYgKCkKIzkgIDB4MDAwMDAwMDAwMDQxNGU2ZiBpbiBfWk4z
V1RSMTRUZXN0Q29udHJvbGxlckMyRWlQUEtjICgpCiMxMCAweDAwMDAwMDAwMDA0NDI3MDYgaW4g
bWFpbiAoKQoKVGhyZWFkIDMgKFRocmVhZCAweDdmYTg3MzdmYzcwMCAoTFdQIDYzMDEpKToKIzAg
IDB4MDAwMDdmYThjNTM5ODZlZiBpbiBfX0dJX19fcG9sbCAoZmRzPTB4N2ZhODQ0MDAxYzUwLCBu
ZmRzPTIsIHRpbWVvdXQ9LTEpIGF0IC4uL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3BvbGwuYzoy
OQojMSAgMHgwMDAwN2ZhOGQwOTk5MzhlIGluIGdfbWFpbl9jb250ZXh0X3BvbGwgKHByaW9yaXR5
PTxvcHRpbWl6ZWQgb3V0Piwgbl9mZHM9MiwgZmRzPTB4N2ZhODQ0MDAxYzUwLCB0aW1lb3V0PTxv
cHRpbWl6ZWQgb3V0PiwgY29udGV4dD0weDdmYTg0NDAwMmM5MCkgYXQgLi4vZ2xpYi9nbWFpbi5j
OjQzOTUKIzIgIGdfbWFpbl9jb250ZXh0X2l0ZXJhdGUgKGNvbnRleHQ9MHg3ZmE4NDQwMDJjOTAs
IGJsb2NrPWJsb2NrQGVudHJ5PTEsIGRpc3BhdGNoPWRpc3BhdGNoQGVudHJ5PTEsIHNlbGY9PG9w
dGltaXplZCBvdXQ+KSBhdCAuLi9nbGliL2dtYWluLmM6NDA4NwojMyAgMHgwMDAwN2ZhOGQwOTk5
NzEzIGluIGdfbWFpbl9sb29wX3J1biAobG9vcD0weDdmYTg0NDAwMmRiMCkgYXQgLi4vZ2xpYi9n
bWFpbi5jOjQyOTAKIzQgIDB4MDAwMDdmYThjYWQwMTg4YiBpbiBfWk4zV1RGN1J1bkxvb3AzcnVu
RXYgKCkgYXQgL2FwcC93ZWJraXQvV2ViS2l0QnVpbGQvUmVsZWFzZS9saWIvbGliamF2YXNjcmlw
dGNvcmVndGstNC4wLnNvLjE4CiM1ICAweDAwMDA3ZmE4Y2FjYTk1NzAgaW4gX1pOM1dURjZUaHJl
YWQxMGVudHJ5UG9pbnRFUE5TMF8xNk5ld1RocmVhZENvbnRleHRFICgpIGF0IC9hcHAvd2Via2l0
L1dlYktpdEJ1aWxkL1JlbGVhc2UvbGliL2xpYmphdmFzY3JpcHRjb3JlZ3RrLTQuMC5zby4xOAoj
NiAgMHgwMDAwN2ZhOGNhZDA0MDI2IGluIF9aTjNXVEZMMTl3dGZUaHJlYWRFbnRyeVBvaW50RVB2
ICgpIGF0IC9hcHAvd2Via2l0L1dlYktpdEJ1aWxkL1JlbGVhc2UvbGliL2xpYmphdmFzY3JpcHRj
b3JlZ3RrLTQuMC5zby4xOAojNyAgMHgwMDAwN2ZhOGM3ODNmNGQyIGluIHN0YXJ0X3RocmVhZCAo
YXJnPTxvcHRpbWl6ZWQgb3V0PikgYXQgcHRocmVhZF9jcmVhdGUuYzo0NzcKIzggIDB4MDAwMDdm
YThjNTNhMzRkMyBpbiBjbG9uZSAoKSBhdCAuLi9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC94ODZf
NjQvY2xvbmUuUzo5NQoKVGhyZWFkIDIgKFRocmVhZCAweDdmYThiOTdmZDcwMCAoTFdQIDI5MzIy
KSk6CiMwICAweDAwMDA3ZmE4YzUzOTg2ZWYgaW4gX19HSV9fX3BvbGwgKGZkcz0weDdmYTg1NDAw
MmE5MCwgbmZkcz0xLCB0aW1lb3V0PS0xKSBhdCAuLi9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC9w
b2xsLmM6MjkKIzEgIDB4MDAwMDdmYThkMDk5OTM4ZSBpbiBnX21haW5fY29udGV4dF9wb2xsIChw
cmlvcml0eT08b3B0aW1pemVkIG91dD4sIG5fZmRzPTEsIGZkcz0weDdmYTg1NDAwMmE5MCwgdGlt
ZW91dD08b3B0aW1pemVkIG91dD4sIGNvbnRleHQ9MHg3ZmE4NTQwMDBiNjApIGF0IC4uL2dsaWIv
Z21haW4uYzo0Mzk1CiMyICBnX21haW5fY29udGV4dF9pdGVyYXRlIChjb250ZXh0PTB4N2ZhODU0
MDAwYjYwLCBibG9jaz1ibG9ja0BlbnRyeT0xLCBkaXNwYXRjaD1kaXNwYXRjaEBlbnRyeT0xLCBz
ZWxmPTxvcHRpbWl6ZWQgb3V0PikgYXQgLi4vZ2xpYi9nbWFpbi5jOjQwODcKIzMgIDB4MDAwMDdm
YThkMDk5OTcxMyBpbiBnX21haW5fbG9vcF9ydW4gKGxvb3A9MHg3ZmE4NTQwMDFkNDApIGF0IC4u
L2dsaWIvZ21haW4uYzo0MjkwCiM0ICAweDAwMDA3ZmE4Y2FkMDE4OGIgaW4gX1pOM1dURjdSdW5M
b29wM3J1bkV2ICgpIGF0IC9hcHAvd2Via2l0L1dlYktpdEJ1aWxkL1JlbGVhc2UvbGliL2xpYmph
dmFzY3JpcHRjb3JlZ3RrLTQuMC5zby4xOAojNSAgMHgwMDAwN2ZhOGNhY2E5NTcwIGluIF9aTjNX
VEY2VGhyZWFkMTBlbnRyeVBvaW50RVBOUzBfMTZOZXdUaHJlYWRDb250ZXh0RSAoKSBhdCAvYXBw
L3dlYmtpdC9XZWJLaXRCdWlsZC9SZWxlYXNlL2xpYi9saWJqYXZhc2NyaXB0Y29yZWd0ay00LjAu
c28uMTgKIzYgIDB4MDAwMDdmYThjYWQwNDAyNiBpbiBfWk4zV1RGTDE5d3RmVGhyZWFkRW50cnlQ
b2ludEVQdiAoKSBhdCAvYXBwL3dlYmtpdC9XZWJLaXRCdWlsZC9SZWxlYXNlL2xpYi9saWJqYXZh
c2NyaXB0Y29yZWd0ay00LjAuc28uMTgKIzcgIDB4MDAwMDdmYThjNzgzZjRkMiBpbiBzdGFydF90
aHJlYWQgKGFyZz08b3B0aW1pemVkIG91dD4pIGF0IHB0aHJlYWRfY3JlYXRlLmM6NDc3CiM4ICAw
eDAwMDA3ZmE4YzUzYTM0ZDMgaW4gY2xvbmUgKCkgYXQgLi4vc3lzZGVwcy91bml4L3N5c3YvbGlu
dXgveDg2XzY0L2Nsb25lLlM6OTUKClRocmVhZCAxIChUaHJlYWQgMHg3ZmE4YmE3ZmY3MDAgKExX
UCAyOTMyMCkpOgojMCAgMHgwMDAwN2ZhOGNhYzhlOWFiIGluIFdURkNyYXNoICgpIGF0IC9hcHAv
d2Via2l0L1dlYktpdEJ1aWxkL1JlbGVhc2UvbGliL2xpYmphdmFzY3JpcHRjb3JlZ3RrLTQuMC5z
by4xOAojMSAgMHgwMDAwMDAwMDAwNDI4YmJhIGluICAoKQojMiAgMHgwMDAwN2ZhOGNkM2I2ZWE1
IGluIF9aTjZXZWJLaXQxOU5ldHdvcmtQcm9jZXNzUHJveHkxOWFsbE5ldHdvcmtQcm9jZXNzZXNF
diAoKSBhdCAvYXBwL3dlYmtpdC9XZWJLaXRCdWlsZC9SZWxlYXNlL2xpYi9saWJ3ZWJraXQyZ3Rr
LTQuMC5zby4zNwojMyAgMHgwMDAwN2ZhOGNkMmI2NTdhIGluIF9aTjZXZWJLaXQxNFdlYlByb2Nl
c3NQb29sMjNzZW5kTWVtb3J5UHJlc3N1cmVFdmVudEViICgpIGF0IC9hcHAvd2Via2l0L1dlYktp
dEJ1aWxkL1JlbGVhc2UvbGliL2xpYndlYmtpdDJndGstNC4wLnNvLjM3CiM0ICAweDAwMDA3ZmE4
Y2Q0MGM0ODMgaW4gX1paTjZXZWJLaXQyMU1lbW9yeVByZXNzdXJlTW9uaXRvcjVzdGFydEV2RU5L
MyRfN2NsRXYgKCkgYXQgL2FwcC93ZWJraXQvV2ViS2l0QnVpbGQvUmVsZWFzZS9saWIvbGlid2Vi
a2l0Mmd0ay00LjAuc28uMzcKIzUgIDB4MDAwMDdmYThjZDQwYmM3NiBpbiAgKCkgYXQgL2FwcC93
ZWJraXQvV2ViS2l0QnVpbGQvUmVsZWFzZS9saWIvbGlid2Via2l0Mmd0ay00LjAuc28uMzcKIzYg
IDB4MDAwMDdmYThjYWNhOTU3MCBpbiBfWk4zV1RGNlRocmVhZDEwZW50cnlQb2ludEVQTlMwXzE2
TmV3VGhyZWFkQ29udGV4dEUgKCkgYXQgL2FwcC93ZWJraXQvV2ViS2l0QnVpbGQvUmVsZWFzZS9s
aWIvbGliamF2YXNjcmlwdGNvcmVndGstNC4wLnNvLjE4CiM3ICAweDAwMDA3ZmE4Y2FkMDQwMjYg
aW4gX1pOM1dURkwxOXd0ZlRocmVhZEVudHJ5UG9pbnRFUHYgKCkgYXQgL2FwcC93ZWJraXQvV2Vi
S2l0QnVpbGQvUmVsZWFzZS9saWIvbGliamF2YXNjcmlwdGNvcmVndGstNC4wLnNvLjE4CiM4ICAw
eDAwMDA3ZmE4Yzc4M2Y0ZDIgaW4gc3RhcnRfdGhyZWFkIChhcmc9PG9wdGltaXplZCBvdXQ+KSBh
dCBwdGhyZWFkX2NyZWF0ZS5jOjQ3NwojOSAgMHgwMDAwN2ZhOGM1M2EzNGQzIGluIGNsb25lICgp
IGF0IC4uL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3g4Nl82NC9jbG9uZS5TOjk1CgpTVERFUlI6
IApTVERFUlI6IHdhcm5pbmc6IGNvcmUgZmlsZSBtYXkgbm90IG1hdGNoIHNwZWNpZmllZCBleGVj
dXRhYmxlIGZpbGUuClNUREVSUjogClNUREVSUjogd2FybmluZzogdGhlIGRlYnVnIGluZm9ybWF0
aW9uIGZvdW5kIGluICIvdXNyL2xpYi9kZWJ1Zy8vdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xp
YmljdWRhdGEuc28uNjcuMS5kZWJ1ZyIgZG9lcyBub3QgbWF0Y2ggIi91c3IvbGliL3g4Nl82NC1s
aW51eC1nbnUvbGliaWN1ZGF0YS5zby42NyIgKENSQyBtaXNtYXRjaCkuClNUREVSUjogClNUREVS
UjogClNUREVSUjogd2FybmluZzogdGhlIGRlYnVnIGluZm9ybWF0aW9uIGZvdW5kIGluICIvdXNy
L2xpYi9kZWJ1Zy8vdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmljdWRhdGEuc28uNjcuMS5k
ZWJ1ZyIgZG9lcyBub3QgbWF0Y2ggIi91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliaWN1ZGF0
YS5zby42NyIgKENSQyBtaXNtYXRjaCkuClNUREVSUjogClNUREVSUjogClNUREVSUjogd2Fybmlu
ZzogdGhlIGRlYnVnIGluZm9ybWF0aW9uIGZvdW5kIGluICIvdXNyL2xpYi9kZWJ1Zy8vdXNyL2xp
Yi94ODZfNjQtbGludXgtZ251L2xpYlgxMS14Y2Iuc28uMS4wLjAuZGVidWciIGRvZXMgbm90IG1h
dGNoICIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlgxMS14Y2Iuc28uMSIgKENSQyBtaXNt
YXRjaCkuClNUREVSUjogClNUREVSUjogClNUREVSUjogd2FybmluZzogdGhlIGRlYnVnIGluZm9y
bWF0aW9uIGZvdW5kIGluICIvdXNyL2xpYi9kZWJ1Zy8vdXNyL2xpYi94ODZfNjQtbGludXgtZ251
L2xpYlgxMS14Y2Iuc28uMS4wLjAuZGVidWciIGRvZXMgbm90IG1hdGNoICIvdXNyL2xpYi94ODZf
NjQtbGludXgtZ251L2xpYlgxMS14Y2Iuc28uMSIgKENSQyBtaXNtYXRjaCkuClNUREVSUjogClNU
REVSUjogMSAgIDB4N2ZhOGNhYzhlOWE2IFdURkNyYXNoClNUREVSUjogMiAgIDB4NDI4YmJhIC9h
cHAvd2Via2l0L1dlYktpdEJ1aWxkL1JlbGVhc2UvYmluL1dlYktpdFRlc3RSdW5uZXIoKSBbMHg0
MjhiYmFdClNUREVSUjogMyAgIDB4N2ZhOGNkM2I2ZWE1IFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQ
cm94eTo6YWxsTmV0d29ya1Byb2Nlc3NlcygpClNUREVSUjogNCAgIDB4N2ZhOGNkMmI2NTdhIFdl
YktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnNlbmRNZW1vcnlQcmVzc3VyZUV2ZW50KGJvb2wpClNUREVS
UjogNSAgIDB4N2ZhOGNkNDBjNDgzIC9hcHAvd2Via2l0L1dlYktpdEJ1aWxkL1JlbGVhc2UvbGli
L2xpYndlYmtpdDJndGstNC4wLnNvLjM3KCsweDIzN2Q0ODMpIFsweDdmYThjZDQwYzQ4M10KU1RE
RVJSOiA2ICAgMHg3ZmE4Y2Q0MGJjNzYgL2FwcC93ZWJraXQvV2ViS2l0QnVpbGQvUmVsZWFzZS9s
aWIvbGlid2Via2l0Mmd0ay00LjAuc28uMzcoKzB4MjM3Y2M3NikgWzB4N2ZhOGNkNDBiYzc2XQpT
VERFUlI6IDcgICAweDdmYThjYWNhOTU3MCBXVEY6OlRocmVhZDo6ZW50cnlQb2ludChXVEY6OlRo
cmVhZDo6TmV3VGhyZWFkQ29udGV4dCopClNUREVSUjogOCAgIDB4N2ZhOGNhZDA0MDI2IC9hcHAv
d2Via2l0L1dlYktpdEJ1aWxkL1JlbGVhc2UvbGliL2xpYmphdmFzY3JpcHRjb3JlZ3RrLTQuMC5z
by4xOCgrMHgxNDdiMDI2KSBbMHg3ZmE4Y2FkMDQwMjZdClNUREVSUjogOSAgIDB4N2ZhOGM3ODNm
NGQyIC91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicHRocmVhZC5zby4wKCsweDg0ZDIpIFsw
eDdmYThjNzgzZjRkMl0KU1RERVJSOiAxMCAgMHg3ZmE4YzUzYTM0ZDMgY2xvbmU=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>419219</attachid>
            <date>2021-02-03 19:42:15 -0800</date>
            <delta_ts>2021-02-04 00:47:40 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217363-20210204004213.patch</filename>
            <type>text/plain</type>
            <size>2316</size>
            <attacher name="Lauro Moura">lmoura</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyMzUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGM2Zjk1YmFhMTg2NTJiYTk2
NTdlMDM5ZWFmOGNjOWZkMjEzOTM2Y2QuLmNhNWIxYjEzZTAyZDdhNTA5MjdmYTZmMDk3ZDI0NDg1
ZmRmMGQ2MzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMjEtMDItMDMgIExhdXJvIE1v
dXJhICA8bG1vdXJhQGlnYWxpYS5jb20+CisKKyAgICAgICAgUkVHUkVTU0lPTihyMjY3NzYzKTog
W0dUS11bV1BFXSBCcm9rZW4gbWFpbiB0aHJlYWQgYXNzZXJ0aW9uIGluIE1lbW9yeVByZXNzdXJl
TW9uaXRvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjE3MzYzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
cjI2Nzc2MyBjaGFuZ2VkIGEgbnVtYmVyIG9mIE5ldHdvcmtQcm9jZXNzUHJveHkgbWV0aG9kcyB0
byBiZQorICAgICAgICBhY2Nlc3NpYmxlIG9ubHkgZnJvbSB0aGUgbWFpbiB0aHJlYWQsIGluY2x1
ZGluZyBhbGxOZXR3b3JrUHJvY2Vzc2VzKCkuCisgICAgICAgIFRoaXMgZnVuY3Rpb24gd2FzIGNh
bGxlZCBmcm9tIHRoZSBtZW1vcnkgcHJlc3N1cmUgbW9uaXRvciB0aHJlYWQKKyAgICAgICAgZGly
ZWN0bHkgdG8gbm90aWZ5IGhpZ2ggbWVtb3J5IHVzYWdlLgorCisgICAgICAgIFRoaXMgd2FzIGNh
dXNpbmcgdGhlIGRlYnVnIGJvdHMgdG8gYWJvcnQgcHJlbWF0dXJlbHkgd2l0aCBtYW55IGNyYXNo
ZXMKKyAgICAgICAgd2hlbiBpbiByZWFsaXR5IGp1c3QgYSBtZW1vcnkgcHJlc3N1cmUgd2Fybmlu
ZyB3b3VsZCBiZSBlbm91Z2guCisKKyAgICAgICAgQ292ZXJlZCBieSBleGlzdGluZyB0ZXN0cy4K
KworICAgICAgICAqIFVJUHJvY2Vzcy9saW51eC9NZW1vcnlQcmVzc3VyZU1vbml0b3IuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpNZW1vcnlQcmVzc3VyZU1vbml0b3I6OnN0YXJ0KTogRGlzcGF0Y2gg
dGhlIG1lbW9yeSBwcmVzc3VyZQorICAgICAgICBub3RpZmljYXRpb24gaW4gdGhlIG1haW4gdGhy
ZWFkLgorCiAyMDIxLTAyLTAzICBBbmR5IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KIAogICAg
ICAgICBbbWFjT1NdIFNocmluayBNZWRpYVNhbXBsZUJ5dGVSYW5nZSBieSA4IGJ5dGVzCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9saW51eC9NZW1vcnlQcmVzc3VyZU1vbml0
b3IuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbGludXgvTWVtb3J5UHJlc3N1cmVNb25p
dG9yLmNwcAppbmRleCAzNjY4MTE1OTgzYmQ1ZjVhZmY0OTg3NGEyYTUyYTNiM2Q5ZTM1NDAzLi5l
MDkyMjQ4NTFiMDI5YzNlOGFiNmNhMTQ2M2YzMDY0ZjhkMjI1NjljIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9saW51eC9NZW1vcnlQcmVzc3VyZU1vbml0b3IuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2xpbnV4L01lbW9yeVByZXNzdXJlTW9uaXRvci5jcHAK
QEAgLTM3OSw4ICszNzksMTAgQEAgdm9pZCBNZW1vcnlQcmVzc3VyZU1vbml0b3I6OnN0YXJ0KCkK
IAogICAgICAgICAgICAgaWYgKHVzZWRQZXJjZW50YWdlID49IHNfbWVtb3J5UHJlc3VyZVBlcmNl
bnRhZ2VUaHJlc2hvbGQpIHsKICAgICAgICAgICAgICAgICBib29sIGlzQ3JpdGljYWwgPSAodXNl
ZFBlcmNlbnRhZ2UgPj0gc19tZW1vcnlQcmVzdXJlUGVyY2VudGFnZVRocmVzaG9sZENyaXRpY2Fs
KTsKLSAgICAgICAgICAgICAgICBmb3IgKGF1dG8qIHByb2Nlc3NQb29sIDogV2ViUHJvY2Vzc1Bv
b2w6OmFsbFByb2Nlc3NQb29scygpKQotICAgICAgICAgICAgICAgICAgICBwcm9jZXNzUG9vbC0+
c2VuZE1lbW9yeVByZXNzdXJlRXZlbnQoaXNDcml0aWNhbCk7CisgICAgICAgICAgICAgICAgUnVu
TG9vcDo6bWFpbigpLmRpc3BhdGNoKFtpc0NyaXRpY2FsXSB7CisgICAgICAgICAgICAgICAgICAg
IGZvciAoYXV0byogcHJvY2Vzc1Bvb2wgOiBXZWJQcm9jZXNzUG9vbDo6YWxsUHJvY2Vzc1Bvb2xz
KCkpCisgICAgICAgICAgICAgICAgICAgICAgICBwcm9jZXNzUG9vbC0+c2VuZE1lbW9yeVByZXNz
dXJlRXZlbnQoaXNDcml0aWNhbCk7CisgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICB9
CiAgICAgICAgICAgICBwb2xsSW50ZXJ2YWwgPSBwb2xsSW50ZXJ2YWxGb3JVc2VkTWVtb3J5UGVy
Y2VudGFnZSh1c2VkUGVyY2VudGFnZSk7CiAgICAgICAgIH0K
</data>

          </attachment>
      

    </bug>

</bugzilla>