<?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>223538</bug_id>
          
          <creation_ts>2021-03-19 14:17:40 -0700</creation_ts>
          <short_desc>imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioworklet-interface/audioworkletprocessor-param-getter-overridden.https.html is crashing</short_desc>
          <delta_ts>2021-03-22 12:56:14 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Audio</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=223537</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>223537</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>cdumez</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1741890</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-03-19 14:17:40 -0700</bug_when>
    <thetext>imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioworklet-interface/audioworkletprocessor-param-getter-overridden.https.html is crashing since its import in Bug 223537:
ASSERTION FAILED: pair.value-&gt;size() &gt;= jsTypedArray-&gt;length()
./Modules/webaudio/AudioWorkletProcessor.cpp(159) : void WebCore::copyDataFromParameterMapToJSObject(JSC::VM &amp;, JSC::JSGlobalObject &amp;, const HashMap&lt;WTF::String, std::unique_ptr&lt;AudioFloatArray&gt;&gt; &amp;, JSC::JSObject &amp;)
1   0x557bfe5c9 WTFCrash
2   0x5388f0e3b WTFCrashWithInfo(int, char const*, char const*, int)
3   0x53ab94137 WebCore::copyDataFromParameterMapToJSObject(JSC::VM&amp;, JSC::JSGlobalObject&amp;, WTF::HashMap&lt;WTF::String, std::__1::unique_ptr&lt;WebCore::AudioArray&lt;float&gt;, std::__1::default_delete&lt;WebCore::AudioArray&lt;float&gt; &gt; &gt;, WTF::DefaultHash&lt;WTF::String&gt;, WTF::HashTraits&lt;WTF::String&gt;, WTF::HashTraits&lt;std::__1::unique_ptr&lt;WebCore::AudioArray&lt;float&gt;, std::__1::default_delete&lt;WebCore::AudioArray&lt;float&gt; &gt; &gt; &gt; &gt; const&amp;, JSC::JSObject&amp;)
4   0x53ab93278 WebCore::AudioWorkletProcessor::buildJSArguments(JSC::VM&amp;, JSC::JSGlobalObject&amp;, JSC::MarkedArgumentBuffer&amp;, WTF::Vector&lt;WTF::RefPtr&lt;WebCore::AudioBus, WTF::RawPtrTraits&lt;WebCore::AudioBus&gt;, WTF::DefaultRefDerefTraits&lt;WebCore::AudioBus&gt; &gt;, 0ul, WTF::CrashOnOverflow, 16ul, WTF::FastMalloc&gt; const&amp;, WTF::Vector&lt;WTF::Ref&lt;WebCore::AudioBus, WTF::RawPtrTraits&lt;WebCore::AudioBus&gt; &gt;, 0ul, WTF::CrashOnOverflow, 16ul, WTF::FastMalloc&gt;&amp;, WTF::HashMap&lt;WTF::String, std::__1::unique_ptr&lt;WebCore::AudioArray&lt;float&gt;, std::__1::default_delete&lt;WebCore::AudioArray&lt;float&gt; &gt; &gt;, WTF::DefaultHash&lt;WTF::String&gt;, WTF::HashTraits&lt;WTF::String&gt;, WTF::HashTraits&lt;std::__1::unique_ptr&lt;WebCore::AudioArray&lt;float&gt;, std::__1::default_delete&lt;WebCore::AudioArray&lt;float&gt; &gt; &gt; &gt; &gt; const&amp;)
5   0x53ab922d3 WebCore::AudioWorkletProcessor::process(WTF::Vector&lt;WTF::RefPtr&lt;WebCore::AudioBus, WTF::RawPtrTraits&lt;WebCore::AudioBus&gt;, WTF::DefaultRefDerefTraits&lt;WebCore::AudioBus&gt; &gt;, 0ul, WTF::CrashOnOverflow, 16ul, WTF::FastMalloc&gt; const&amp;, WTF::Vector&lt;WTF::Ref&lt;WebCore::AudioBus, WTF::RawPtrTraits&lt;WebCore::AudioBus&gt; &gt;, 0ul, WTF::CrashOnOverflow, 16ul, WTF::FastMalloc&gt;&amp;, WTF::HashMap&lt;WTF::String, std::__1::unique_ptr&lt;WebCore::AudioArray&lt;float&gt;, std::__1::default_delete&lt;WebCore::AudioArray&lt;float&gt; &gt; &gt;, WTF::DefaultHash&lt;WTF::String&gt;, WTF::HashTraits&lt;WTF::String&gt;, WTF::HashTraits&lt;std::__1::unique_ptr&lt;WebCore::AudioArray&lt;float&gt;, std::__1::default_delete&lt;WebCore::AudioArray&lt;float&gt; &gt; &gt; &gt; &gt; const&amp;, bool&amp;)
6   0x53ab91d1a WebCore::AudioWorkletNode::process(unsigned long)
7   0x53ab3d2be WebCore::AudioNode::processIfNecessary(unsigned long)
8   0x53ab3fb67 WebCore::AudioNodeOutput::pull(WebCore::AudioBus*, unsigned long)
9   0x53ab3f936 WebCore::AudioNodeInput::sumAllConnections(WebCore::AudioBus*, unsigned long)
10  0x53ab38177 WebCore::AudioNodeInput::pull(WebCore::AudioBus*, unsigned long)
11  0x53ab37d19 WebCore::AudioDestinationNode::render(WebCore::AudioBus*, WebCore::AudioBus*, unsigned long, WebCore::AudioIOPosition const&amp;)
12  0x53abf373d WebCore::OfflineAudioDestinationNode::offlineRender()
13  0x53ac13453 WebCore::OfflineAudioDestinationNode::startRendering(WTF::CompletionHandler&lt;void (WTF::Optional&lt;WebCore::Exception&gt;&amp;&amp;)&gt;&amp;&amp;)::$_2::operator()()
14  0x53ac13429 WebCore::OfflineAudioDestinationNode::startRendering(WTF::CompletionHandler&lt;void (WTF::Optional&lt;WebCore::Exception&gt;&amp;&amp;)&gt;&amp;&amp;)::$_3::operator()(WebCore::ScriptExecutionContext&amp;)
15  0x53ac13383 WTF::Detail::CallableWrapper&lt;WebCore::OfflineAudioDestinationNode::startRendering(WTF::CompletionHandler&lt;void (WTF::Optional&lt;WebCore::Exception&gt;&amp;&amp;)&gt;&amp;&amp;)::$_3, void, WebCore::ScriptExecutionContext&amp;&gt;::call(WebCore::ScriptExecutionContext&amp;)
16  0x53ae75d1a WTF::Function&lt;void (WebCore::ScriptExecutionContext&amp;)&gt;::operator()(WebCore::ScriptExecutionContext&amp;) const
17  0x53ae6ce0d WebCore::ScriptExecutionContext::Task::performTask(WebCore::ScriptExecutionContext&amp;)
18  0x53d6020e0 WebCore::WorkerRunLoop::Task::performTask(WebCore::WorkerOrWorkletGlobalScope*)
19  0x53d601747 WebCore::WorkerRunLoop::runInMode(WebCore::WorkerOrWorkletGlobalScope*, WebCore::ModePredicate const&amp;, WebCore::WorkerRunLoop::WaitMode)
20  0x53d600728 WebCore::WorkerRunLoop::run(WebCore::WorkerOrWorkletGlobalScope*)
21  0x53d6006c8 WebCore::WorkerOrWorkletThread::runEventLoop()
22  0x53d600980 WebCore::WorkerOrWorkletThread::workerOrWorkletThread()
23  0x53abb9f1b WebCore::AudioWorkletThread::createThread()::$_3::operator()() const</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1741932</commentid>
    <comment_count>1</comment_count>
      <attachid>423785</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-03-19 15:33:46 -0700</bug_when>
    <thetext>Created attachment 423785
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1741979</commentid>
    <comment_count>2</comment_count>
      <attachid>423797</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-03-19 18:43:48 -0700</bug_when>
    <thetext>Created attachment 423797
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1742399</commentid>
    <comment_count>3</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-03-22 12:55:40 -0700</bug_when>
    <thetext>&lt;https://commits.webkit.org/235587@main&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1742400</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-03-22 12:56:14 -0700</bug_when>
    <thetext>&lt;rdar://problem/75704790&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>423785</attachid>
            <date>2021-03-19 15:33:46 -0700</date>
            <delta_ts>2021-03-19 16:14:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-223538-20210319153345.patch</filename>
            <type>text/plain</type>
            <size>8808</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0NzM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTU5NGYyNzA5NmExZmRl
YWE2YmZmNjM5NTg3N2FjYWI5ZmJlMGY3Yy4uOTI5NmM1MmU1NWFkN2I0ZTU1MGE4ZDdlNzlhNmNi
ODgwNzJiZTFmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDIxLTAzLTE5ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1hdWRpb3dvcmtsZXQtaW50
ZXJmYWNlL2F1ZGlvd29ya2xldHByb2Nlc3Nvci1wYXJhbS1nZXR0ZXItb3ZlcnJpZGRlbi5odHRw
cy5odG1sIGlzIGNyYXNoaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMjM1MzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBBdWRpb1dvcmtsZXRQcm9jZXNzb3I6OmJ1aWxkSlNBcmd1bWVudHMoKSB3YXMg
Zmlyc3QgY2hlY2tpbmcgdGhlIHRvcG9sb2d5IG9mIG1fanNQYXJhbVZhbHVlcyB0aGVuCisgICAg
ICAgIGNvcHlpbmcgb3ZlciB0aGUgZGF0YSBpZiB0aGUgdG9wb2xvZ3kgbWF0Y2hlcy4gVGhlIGZ1
bmN0aW9uIHRvIGNvcHkgb3ZlciB0aGUgZGF0YSBhc3N1bWVzIHRoZQorICAgICAgICB0b3BvbG9n
eSBpcyBmaW5lIHNpbmNlIHdlIGNoZWNrZWQgaXQgYmVmb3JlaGFuZC4gSG93ZXZlciwgYXMgZGVt
b25zdHJhdGVkIGJ5IHRoZSB0ZXN0LCBpdCBpcworICAgICAgICBwb3NzaWJsZSBmb3IgSlMgdG8g
b3ZlcnJpZGUgYSBKU09iamVjdCBnZXR0ZXIgdG8gcmV0dXJuIGJhZCBkYXRhIG9ubHkgc29tZXRp
bWVzLgorCisgICAgICAgIFRvIG1ha2UgdGhpcyBtb3JlIHJvYnVzdCwgSSBnb3QgcmlkIG9mIHRo
ZSAidG9wb2xvZ3kgY2hlY2siIHN0ZXAgYW5kIHNpbXBseSBtYWRlIHRoZSBmdW5jdGlvbgorICAg
ICAgICB0aGF0IGNvcGllcyBvdmVyIHRoZSBkYXRhIGZhaWwgbmljZWx5IGlmIHRoZSB0b3BvbG9n
eSBkb2Vzbid0IG1hdGNoLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgdW5za2lwcGVkIGV4aXN0
aW5nIHRlc3QuCisKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldFByb2Nl
c3Nvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb3B5RGF0YUZyb21QYXJhbWV0ZXJNYXBUb0pT
T2JqZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvV29ya2xldFByb2Nlc3Nvcjo6YnVpbGRK
U0FyZ3VtZW50cyk6CisKIDIwMjEtMDMtMTkgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5j
b20+CiAKICAgICAgICAgTWFueSBtZWRpYS9tZWRpYS1mcmFnbWVudHMvIHRlc3RzIGFyZSBjcmFz
aGluZyBkdWUgdG8gb3RoZXIgdGVzdHMgdGhhdCBydW4gYmVmb3JlIHRoZW0uCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldFByb2Nlc3Nvci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldFByb2Nlc3Nv
ci5jcHAKaW5kZXggOGE2ODIwNWQ1ZjY3NzE2YjFkYzhhMGNhNGM4ZTJlZDFiYzQ5ZTJlMy4uOGNl
NDI4YmQzNDBhOGMwMTc3NjM4MDU5MGJhM2ZkYmRlZDA5YzkwZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRQcm9jZXNzb3IuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0UHJvY2Vzc29yLmNw
cApAQCAtMTUyLDEzICsxNTIsMjEgQEAgc3RhdGljIHZvaWQgY29weURhdGFGcm9tQnVzZXNUb0pT
QXJyYXkoSlNHbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCwgY29uc3QgVmVjdG8KICAgICB9KTsK
IH0KIAotc3RhdGljIHZvaWQgY29weURhdGFGcm9tUGFyYW1ldGVyTWFwVG9KU09iamVjdChWTSYg
dm0sIEpTR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QsIGNvbnN0IEhhc2hNYXA8U3RyaW5nLCBz
dGQ6OnVuaXF1ZV9wdHI8QXVkaW9GbG9hdEFycmF5Pj4mIHBhcmFtVmFsdWVzTWFwLCBKU09iamVj
dCYganNPYmplY3QpCitzdGF0aWMgYm9vbCBjb3B5RGF0YUZyb21QYXJhbWV0ZXJNYXBUb0pTT2Jq
ZWN0KFZNJiB2bSwgSlNHbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCwgY29uc3QgSGFzaE1hcDxT
dHJpbmcsIHN0ZDo6dW5pcXVlX3B0cjxBdWRpb0Zsb2F0QXJyYXk+PiYgcGFyYW1WYWx1ZXNNYXAs
IEpTT2JqZWN0KiBqc09iamVjdCkKIHsKKyAgICBpZiAoIWpzT2JqZWN0KQorICAgICAgICByZXR1
cm4gZmFsc2U7CisKICAgICBmb3IgKGF1dG8mIHBhaXIgOiBwYXJhbVZhbHVlc01hcCkgewotICAg
ICAgICBhdXRvKiBqc1R5cGVkQXJyYXkgPSBqc0Nhc3Q8SlNGbG9hdDMyQXJyYXkqPihqc09iamVj
dC5nZXQoJmdsb2JhbE9iamVjdCwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcGFpci5rZXkp
KSk7Ci0gICAgICAgIEFTU0VSVChwYWlyLnZhbHVlLT5zaXplKCkgPj0ganNUeXBlZEFycmF5LT5s
ZW5ndGgoKSk7CisgICAgICAgIGF1dG8qIGpzVHlwZWRBcnJheSA9IGpzRHluYW1pY0Nhc3Q8SlNG
bG9hdDMyQXJyYXkqPih2bSwganNPYmplY3QtPmdldCgmZ2xvYmFsT2JqZWN0LCBJZGVudGlmaWVy
Ojpmcm9tU3RyaW5nKHZtLCBwYWlyLmtleSkpKTsKKyAgICAgICAgaWYgKCFqc1R5cGVkQXJyYXkp
CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIHVuc2lnbmVkIGV4cGVjdGVkTGVu
Z3RoID0gcGFpci52YWx1ZS0+Y29udGFpbnNDb25zdGFudFZhbHVlKCkgPyAxIDogcGFpci52YWx1
ZS0+c2l6ZSgpOworICAgICAgICBpZiAoanNUeXBlZEFycmF5LT5sZW5ndGgoKSAhPSBleHBlY3Rl
ZExlbmd0aCkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgbWVtY3B5KGpzVHlw
ZWRBcnJheS0+dHlwZWRWZWN0b3IoKSwgcGFpci52YWx1ZS0+ZGF0YSgpLCBzaXplb2YoZmxvYXQp
ICoganNUeXBlZEFycmF5LT5sZW5ndGgoKSk7CiAgICAgfQorICAgIHJldHVybiB0cnVlOwogfQog
CiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgpAQCAtMTg3LDIxICsxOTUsNiBAQCBzdGF0aWMgYm9vbCBi
dXNUb3BvbG9neU1hdGNoZXNKU0FycmF5KEpTR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QsIGNv
bnN0IFZlY3RvcgogICAgIHJldHVybiB0cnVlOwogfQogCi1zdGF0aWMgYm9vbCBwYXJhbWV0ZXJN
YXBUb3BvbG9neU1hdGNoZXNKU09iamVjdChWTSYgdm0sIEpTR2xvYmFsT2JqZWN0JiBnbG9iYWxP
YmplY3QsIGNvbnN0IEhhc2hNYXA8U3RyaW5nLCBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9GbG9hdEFy
cmF5Pj4mIHBhcmFtVmFsdWVzTWFwLCBKU09iamVjdCoganNPYmplY3QpCi17Ci0gICAgaWYgKCFq
c09iamVjdCkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgZm9yIChhdXRvJiBwYWlyIDog
cGFyYW1WYWx1ZXNNYXApIHsKLSAgICAgICAgYXV0byoganNUeXBlZEFycmF5ID0ganNDYXN0PEpT
RmxvYXQzMkFycmF5Kj4oanNPYmplY3QtPmdldCgmZ2xvYmFsT2JqZWN0LCBJZGVudGlmaWVyOjpm
cm9tU3RyaW5nKHZtLCBwYWlyLmtleSkpKTsKLSAgICAgICAgdW5zaWduZWQgZXhwZWN0ZWRMZW5n
dGggPSBwYWlyLnZhbHVlLT5jb250YWluc0NvbnN0YW50VmFsdWUoKSA/IDEgOiBwYWlyLnZhbHVl
LT5zaXplKCk7Ci0gICAgICAgIGlmIChqc1R5cGVkQXJyYXktPmxlbmd0aCgpICE9IGV4cGVjdGVk
TGVuZ3RoKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLQotICAgIHJldHVybiB0
cnVlOwotfQotCiBzdGF0aWMgdm9pZCB6ZXJvSlNBcnJheShKU0dsb2JhbE9iamVjdCYgZ2xvYmFs
T2JqZWN0LCBKU0FycmF5JiBqc0FycmF5KQogewogICAgIGZvckVhY2hDaGFubmVsRGF0YUpTQXJy
YXkoZ2xvYmFsT2JqZWN0LCBqc0FycmF5LCBbXSh1bnNpZ25lZCwgdW5zaWduZWQsIEpTRmxvYXQz
MkFycmF5JiBjaGFubmVsRGF0YSkgewpAQCAtMjQyLDkgKzIzNSw3IEBAIHZvaWQgQXVkaW9Xb3Jr
bGV0UHJvY2Vzc29yOjpidWlsZEpTQXJndW1lbnRzKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QmIGds
b2JhbE9iamVjCiAgICAgICAgIG1fanNPdXRwdXRzID0geyBjb25zdHJ1Y3RGcm96ZW5KU0FycmF5
KHZtLCBnbG9iYWxPYmplY3QsIG91dHB1dHMsIFNob3VsZFBvcHVsYXRlV2l0aEJ1c0RhdGE6Ok5v
KSB9OwogICAgIGFyZ3MuYXBwZW5kKG1fanNPdXRwdXRzKTsKIAotICAgIGlmIChwYXJhbWV0ZXJN
YXBUb3BvbG9neU1hdGNoZXNKU09iamVjdCh2bSwgZ2xvYmFsT2JqZWN0LCBwYXJhbVZhbHVlc01h
cCwgdG9KU09iamVjdChtX2pzUGFyYW1WYWx1ZXMpKSkKLSAgICAgICAgY29weURhdGFGcm9tUGFy
YW1ldGVyTWFwVG9KU09iamVjdCh2bSwgZ2xvYmFsT2JqZWN0LCBwYXJhbVZhbHVlc01hcCwgKnRv
SlNPYmplY3QobV9qc1BhcmFtVmFsdWVzKSk7Ci0gICAgZWxzZQorICAgIGlmICghY29weURhdGFG
cm9tUGFyYW1ldGVyTWFwVG9KU09iamVjdCh2bSwgZ2xvYmFsT2JqZWN0LCBwYXJhbVZhbHVlc01h
cCwgdG9KU09iamVjdChtX2pzUGFyYW1WYWx1ZXMpKSkKICAgICAgICAgbV9qc1BhcmFtVmFsdWVz
ID0geyBjb25zdHJ1Y3RGcm96ZW5LZXlWYWx1ZU9iamVjdCh2bSwgZ2xvYmFsT2JqZWN0LCBwYXJh
bVZhbHVlc01hcCkgfTsKICAgICBhcmdzLmFwcGVuZChtX2pzUGFyYW1WYWx1ZXMpOwogfQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmlu
ZGV4IGUyMGQ5NDE0NjVlNDNjMzg4MzRjYzE0MzBiODE0N2IxMGM2ZWYxMTYuLjM0Y2Q5MTBiZjBi
YmQ3MDgyODYxOWE2YmQ4YTU2NWM5MjQzYTdkMGEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0No
YW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAy
MS0wMy0xOSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIGltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVk
aW93b3JrbGV0LWludGVyZmFjZS9hdWRpb3dvcmtsZXRwcm9jZXNzb3ItcGFyYW0tZ2V0dGVyLW92
ZXJyaWRkZW4uaHR0cHMuaHRtbCBpcyBjcmFzaGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIzNTM4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgVW5za2lwIHRlc3QgdGhhdCBpcyBubyBsb25nZXIgY3Jh
c2hpbmcuCisKKyAgICAgICAgKiBUZXN0RXhwZWN0YXRpb25zOgorCiAyMDIxLTAzLTE5ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgUmVzeW5jIHdlYmF1ZGlvIHdl
Yi1wbGF0Zm9ybS10ZXN0cyBmcm9tIHVwc3RyZWFtCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxv
ZwppbmRleCBkZjg5YWY5MTQ0ZGQ2ODI1ZTQ5NDI2MGQ2Njg5NzA5MTRmYmM1YmQzLi5iNjVhZDM0
NDJlOGVlMmNjNTkzZjM4YWVmODk3YTNmNDU1NmI0NmIzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAyMS0wMy0xOSAgQ2hyaXMgRHVtZXogIDxjZHVt
ZXpAYXBwbGUuY29tPgorCisgICAgICAgIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVkaW93b3JrbGV0LWludGVyZmFjZS9hdWRpb3dv
cmtsZXRwcm9jZXNzb3ItcGFyYW0tZ2V0dGVyLW92ZXJyaWRkZW4uaHR0cHMuaHRtbCBpcyBjcmFz
aGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIz
NTM4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTGFu
ZCBiYXNlbGluZSBmb3IgdGVzdCB0aGF0IGlzIG5vIGxvbmdlciBjcmFzaGluZy4KKworICAgICAg
ICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1hdWRpb3dv
cmtsZXQtaW50ZXJmYWNlL2F1ZGlvd29ya2xldHByb2Nlc3Nvci1wYXJhbS1nZXR0ZXItb3ZlcnJp
ZGRlbi5odHRwcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorCiAyMDIxLTAzLTE5ICBDaHJpcyBEdW1l
eiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgUmVzeW5jIHdlYmF1ZGlvIHdlYi1wbGF0
Zm9ybS10ZXN0cyBmcm9tIHVwc3RyZWFtCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9UZXN0RXhw
ZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCAxNDMxYTQ4ZjBh
MWNmM2NjMjU2NzQ4NDM3NzAxMzJmZWNhMjk2OGJlLi41OWU5ZTgwZjE4Y2ExZDBkODI4Y2U2NzZl
ZjYxM2Q5N2I4MjUzODVkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25z
CisrKyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTM0Niw5ICszNDYsNiBAQCBp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvd2ViYXBwYXBpcy9zY3JpcHRpbmcv
ZXZlbnQtbG9vcHMvZnVsbHlfYWN0aQogIyBTa2lwIFdQVCB3ZWJhdWRpbyB0ZXN0cyB0aGF0IGFy
ZSB0aW1pbmcgb3V0LgogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90
aGUtYXVkaW8tYXBpL3RoZS1tZWRpYXN0cmVhbWF1ZGlvc291cmNlbm9kZS1pbnRlcmZhY2UvbWVk
aWFzdHJlYW1hdWRpb3NvdXJjZW5vZGUtcm91dGluZy5odG1sIFsgU2tpcCBdCiAKLSMgVGVzdCBo
YXMgYmVlbiBjcmFzaGluZyBzaW5jZSBpdHMgaW1wb3J0Lgotd2Via2l0Lm9yZy9iLzIyMzUzOCBp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhl
LWF1ZGlvd29ya2xldC1pbnRlcmZhY2UvYXVkaW93b3JrbGV0cHJvY2Vzc29yLXBhcmFtLWdldHRl
ci1vdmVycmlkZGVuLmh0dHBzLmh0bWwgWyBTa2lwIF0KLQogIyBUaGlzIHRlc3QgaXMgdGltaW5n
IG91dCBkdWUgdG8gbGFjayBvZiBzdXBwb3J0IGZvciBTaGFyZWRBcnJheUJ1ZmZlci4KIGltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVk
aW93b3JrbGV0LWludGVyZmFjZS9hdWRpb3dvcmtsZXQtcG9zdG1lc3NhZ2Utc2hhcmVkYXJyYXli
dWZmZXIuaHR0cHMuaHRtbCBbIFNraXAgXQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWF1
ZGlvd29ya2xldC1pbnRlcmZhY2UvYXVkaW93b3JrbGV0cHJvY2Vzc29yLXBhcmFtLWdldHRlci1v
dmVycmlkZGVuLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVkaW93b3JrbGV0
LWludGVyZmFjZS9hdWRpb3dvcmtsZXRwcm9jZXNzb3ItcGFyYW0tZ2V0dGVyLW92ZXJyaWRkZW4u
aHR0cHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ0NDE5NTVlMTk0NGJlYWRmM2YxMzlmOTUy
OWY3NTZhOGE4Y2MxMzgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWF1ZGlvd29y
a2xldC1pbnRlcmZhY2UvYXVkaW93b3JrbGV0cHJvY2Vzc29yLXBhcmFtLWdldHRlci1vdmVycmlk
ZGVuLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE4IEBACisKK1BBU1MgIyBBVURJVCBU
QVNLIFJVTk5FUiBTVEFSVEVELgorUEFTUyBFeGVjdXRpbmcgIkluaXRpYWxpemluZyBBdWRpb1dv
cmtsZXQgYW5kIENvbnRleHQiCitQQVNTIEV4ZWN1dGluZyAiVmVyaWZ5aW5nIEF1ZGlvUGFyYW0g
aW4gQXVkaW9Xb3JrbGV0Tm9kZSIKK1BBU1MgQXVkaXQgcmVwb3J0CitQQVNTID4gW0luaXRpYWxp
emluZyBBdWRpb1dvcmtsZXQgYW5kIENvbnRleHRdCitQQVNTIDwgW0luaXRpYWxpemluZyBBdWRp
b1dvcmtsZXQgYW5kIENvbnRleHRdIEFsbCBhc3NlcnRpb25zIHBhc3NlZC4gKHRvdGFsIDAgYXNz
ZXJ0aW9ucykKK1BBU1MgPiBbVmVyaWZ5aW5nIEF1ZGlvUGFyYW0gaW4gQXVkaW9Xb3JrbGV0Tm9k
ZV0KK0ZBSUwgWCBUaGUgcmVuZGVyZWQgYnVmZmVyOiBFeHBlY3RlZCAwIGZvciBhbGwgdmFsdWVz
IGJ1dCBmb3VuZCAxMjggdW5leHBlY3RlZCB2YWx1ZXM6CisJSW5kZXgJQWN0dWFsCisJWzBdCTEK
KwlbMV0JMQorCVsyXQkxCisJWzNdCTEKKwkuLi5hbmQgMTI0IG1vcmUgZXJyb3JzLiBhc3NlcnRf
dHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK0ZBSUwgPCBbVmVyaWZ5aW5nIEF1ZGlvUGFy
YW0gaW4gQXVkaW9Xb3JrbGV0Tm9kZV0gMSBvdXQgb2YgMSBhc3NlcnRpb25zIHdlcmUgZmFpbGVk
LiBhc3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK0ZBSUwgIyBBVURJVCBUQVNL
IFJVTk5FUiBGSU5JU0hFRDogMSBvdXQgb2YgMiB0YXNrcyB3ZXJlIGZhaWxlZC4gYXNzZXJ0X3Ry
dWU6IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCisK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>423797</attachid>
            <date>2021-03-19 18:43:48 -0700</date>
            <delta_ts>2021-03-19 18:44:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-223538-20210319184347.patch</filename>
            <type>text/plain</type>
            <size>9694</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0NzM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTU5NGYyNzA5NmExZmRl
YWE2YmZmNjM5NTg3N2FjYWI5ZmJlMGY3Yy4uMWMyMTMxMzZlMzlhNzNmMzE0ZjRmZjk4ZmI1NmRk
NzJkMmQzYzkwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDIxLTAzLTE5ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQmV0dGVyIHZhbGlkYXRlIEpT
QXJyYXlzIGluIEF1ZGlvV29ya2xldFByb2Nlc3NvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIzNTM4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQmV0dGVyIHZhbGlkYXRlIEpTQXJyYXlzIGluIEF1ZGlv
V29ya2xldFByb2Nlc3Nvci4gUmVwbGFjZXMgZGVidWcgYXNzZXJ0aW9ucyB3aXRoIHJ1bnRpbWUK
KyAgICAgICAgY2hlY2tzIGZvciByb2J1c3RuZXNzLgorCisgICAgICAgICogTW9kdWxlcy93ZWJh
dWRpby9BdWRpb1dvcmtsZXRQcm9jZXNzb3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y29weURh
dGFGcm9tQnVzZXNUb0pTQXJyYXkpOgorICAgICAgICAoV2ViQ29yZTo6Y29weURhdGFGcm9tUGFy
YW1ldGVyTWFwVG9KU09iamVjdCk6CisgICAgICAgIChXZWJDb3JlOjp6ZXJvSlNBcnJheSk6Cisg
ICAgICAgIChXZWJDb3JlOjpBdWRpb1dvcmtsZXRQcm9jZXNzb3I6OmJ1aWxkSlNBcmd1bWVudHMp
OgorCiAyMDIxLTAzLTE5ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAg
ICAgIE1hbnkgbWVkaWEvbWVkaWEtZnJhZ21lbnRzLyB0ZXN0cyBhcmUgY3Jhc2hpbmcgZHVlIHRv
IG90aGVyIHRlc3RzIHRoYXQgcnVuIGJlZm9yZSB0aGVtLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRQcm9jZXNzb3IuY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRQcm9jZXNzb3IuY3BwCmluZGV4
IDhhNjgyMDVkNWY2NzcxNmIxZGM4YTBjYTRjOGUyZWQxYmM0OWUyZTMuLjU1ZjcxMThiMTRjMmNh
ZDNhZjg4OGVhYjU5MGYyNzI1MTIzODM1ZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0UHJvY2Vzc29yLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldFByb2Nlc3Nvci5jcHAKQEAgLTY1LDE1
ICs2NSw2IEBAIHN0YXRpYyBKU09iamVjdCogdG9KU09iamVjdChKU1ZhbHVlSW5XcmFwcGVkT2Jq
ZWN0JiB3cmFwcGVyKQogICAgIHJldHVybiB3cmFwcGVyID8ganNDYXN0PEpTT2JqZWN0Kj4oc3Rh
dGljX2Nhc3Q8SlNWYWx1ZT4od3JhcHBlcikpIDogbnVsbHB0cjsKIH0KIAotc3RhdGljIHZvaWQg
Zm9yRWFjaENoYW5uZWxEYXRhSlNBcnJheShKU0dsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0LCBK
U0FycmF5JiBqc0FycmF5LCBjb25zdCBGdW5jdGlvbjx2b2lkKHVuc2lnbmVkIGJ1c0luZGV4LCB1
bnNpZ25lZCBjaGFubmVsSW5kZXgsIEpTRmxvYXQzMkFycmF5JiBjaGFubmVsRGF0YSk+JiBhcHBs
eSkKLXsKLSAgICBmb3IgKHVuc2lnbmVkIGJ1c0luZGV4ID0gMCwgYnVzQ291bnQgPSBqc0FycmF5
Lmxlbmd0aCgpOyBidXNJbmRleCA8IGJ1c0NvdW50OyArK2J1c0luZGV4KSB7Ci0gICAgICAgIGF1
dG8qIGNoYW5uZWxzQXJyYXkgPSBqc0Nhc3Q8SlNBcnJheSo+KGpzQXJyYXkuZ2V0SW5kZXgoJmds
b2JhbE9iamVjdCwgYnVzSW5kZXgpKTsKLSAgICAgICAgZm9yICh1bnNpZ25lZCBjaGFubmVsSW5k
ZXggPSAwLCBjaGFubmVsQ291bnQgPSBjaGFubmVsc0FycmF5LT5sZW5ndGgoKTsgY2hhbm5lbElu
ZGV4IDwgY2hhbm5lbENvdW50OyArK2NoYW5uZWxJbmRleCkKLSAgICAgICAgICAgIGFwcGx5KGJ1
c0luZGV4LCBjaGFubmVsSW5kZXgsICpqc0Nhc3Q8SlNGbG9hdDMyQXJyYXkqPihjaGFubmVsc0Fy
cmF5LT5nZXRJbmRleCgmZ2xvYmFsT2JqZWN0LCBjaGFubmVsSW5kZXgpKSk7Ci0gICAgfQotfQot
CiBzdGF0aWMgSlNGbG9hdDMyQXJyYXkqIGNvbnN0cnVjdEpTRmxvYXQzMkFycmF5KEpTR2xvYmFs
T2JqZWN0JiBnbG9iYWxPYmplY3QsIHVuc2lnbmVkIGxlbmd0aCwgY29uc3QgZmxvYXQqIGRhdGEg
PSBudWxscHRyKQogewogICAgIGF1dG8qIGpzQXJyYXkgPSBKU0Zsb2F0MzJBcnJheTo6Y3JlYXRl
KCZnbG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdC50eXBlZEFycmF5U3RydWN0dXJlKFR5cGVGbG9h
dDMyKSwgbGVuZ3RoKTsKQEAgLTE0Myw3MCArMTM0LDY1IEBAIHN0YXRpYyB2b2lkIGNvcHlEYXRh
RnJvbUpTQXJyYXlUb0J1c2VzKEpTR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QsIGNvbnN0IEpT
QXJyCiAgICAgfQogfQogCi1zdGF0aWMgdm9pZCBjb3B5RGF0YUZyb21CdXNlc1RvSlNBcnJheShK
U0dsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0LCBjb25zdCBWZWN0b3I8UmVmUHRyPEF1ZGlvQnVz
Pj4mIGJ1c2VzLCBKU0FycmF5JiBqc0FycmF5KQotewotICAgIGZvckVhY2hDaGFubmVsRGF0YUpT
QXJyYXkoZ2xvYmFsT2JqZWN0LCBqc0FycmF5LCBbJl0odW5zaWduZWQgYnVzSW5kZXgsIHVuc2ln
bmVkIGNoYW5uZWxJbmRleCwgSlNGbG9hdDMyQXJyYXkmIGNoYW5uZWxEYXRhKSB7Ci0gICAgICAg
IGF1dG8qIGNoYW5uZWwgPSBidXNlc1tidXNJbmRleF0tPmNoYW5uZWwoY2hhbm5lbEluZGV4KTsK
LSAgICAgICAgQVNTRVJUKGNoYW5uZWxEYXRhLmxlbmd0aCgpID09IGNoYW5uZWwtPmxlbmd0aCgp
KTsKLSAgICAgICAgbWVtY3B5KGNoYW5uZWxEYXRhLnR5cGVkVmVjdG9yKCksIGNoYW5uZWwtPm11
dGFibGVEYXRhKCksIHNpemVvZihmbG9hdCkgKiBjaGFubmVsLT5sZW5ndGgoKSk7Ci0gICAgfSk7
Ci19Ci0KLXN0YXRpYyB2b2lkIGNvcHlEYXRhRnJvbVBhcmFtZXRlck1hcFRvSlNPYmplY3QoVk0m
IHZtLCBKU0dsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0LCBjb25zdCBIYXNoTWFwPFN0cmluZywg
c3RkOjp1bmlxdWVfcHRyPEF1ZGlvRmxvYXRBcnJheT4+JiBwYXJhbVZhbHVlc01hcCwgSlNPYmpl
Y3QmIGpzT2JqZWN0KQotewotICAgIGZvciAoYXV0byYgcGFpciA6IHBhcmFtVmFsdWVzTWFwKSB7
Ci0gICAgICAgIGF1dG8qIGpzVHlwZWRBcnJheSA9IGpzQ2FzdDxKU0Zsb2F0MzJBcnJheSo+KGpz
T2JqZWN0LmdldCgmZ2xvYmFsT2JqZWN0LCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCBwYWly
LmtleSkpKTsKLSAgICAgICAgQVNTRVJUKHBhaXIudmFsdWUtPnNpemUoKSA+PSBqc1R5cGVkQXJy
YXktPmxlbmd0aCgpKTsKLSAgICAgICAgbWVtY3B5KGpzVHlwZWRBcnJheS0+dHlwZWRWZWN0b3Io
KSwgcGFpci52YWx1ZS0+ZGF0YSgpLCBzaXplb2YoZmxvYXQpICoganNUeXBlZEFycmF5LT5sZW5n
dGgoKSk7Ci0gICAgfQotfQotCi10ZW1wbGF0ZTx0eXBlbmFtZSBUPgotc3RhdGljIGJvb2wgYnVz
VG9wb2xvZ3lNYXRjaGVzSlNBcnJheShKU0dsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0LCBjb25z
dCBWZWN0b3I8VD4mIGJ1c2VzLCBKU0FycmF5KiBqc0FycmF5KQorc3RhdGljIGJvb2wgY29weURh
dGFGcm9tQnVzZXNUb0pTQXJyYXkoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0
LCBjb25zdCBWZWN0b3I8UmVmUHRyPEF1ZGlvQnVzPj4mIGJ1c2VzLCBKU0FycmF5KiBqc0FycmF5
KQogewogICAgIGlmICghanNBcnJheSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgQVNT
RVJUX1dJVEhfTUVTU0FHRShqc0FycmF5LT5sZW5ndGgoKSA9PSBidXNlcy5zaXplKCksICJOdW1i
ZXIgb2YgaW5wdXRzL291dHB1dHMgY2Fubm90IGNoYW5nZSBhZnRlciBjb25zdHJ1Y3Rpb24iKTsK
LQotICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBidXNlcy5zaXplKCk7ICsraSkgewotICAg
ICAgICBhdXRvJiBidXMgPSBidXNlc1tpXTsKLSAgICAgICAgYXV0byogY2hhbm5lbHNBcnJheSA9
IGpzQ2FzdDxKU0FycmF5Kj4oanNBcnJheS0+Z2V0SW5kZXgoJmdsb2JhbE9iamVjdCwgaSkpOwor
ICAgIGZvciAoc2l6ZV90IGJ1c0luZGV4ID0gMDsgYnVzSW5kZXggPCBidXNlcy5zaXplKCk7ICsr
YnVzSW5kZXgpIHsKKyAgICAgICAgYXV0byYgYnVzID0gYnVzZXNbYnVzSW5kZXhdOworICAgICAg
ICBhdXRvKiBqc0NoYW5uZWxzQXJyYXkgPSBqc0R5bmFtaWNDYXN0PEpTQXJyYXkqPih2bSwganNB
cnJheS0+Z2V0SW5kZXgoJmdsb2JhbE9iamVjdCwgYnVzSW5kZXgpKTsKICAgICAgICAgdW5zaWdu
ZWQgbnVtYmVyT2ZDaGFubmVscyA9IGJ1c0NoYW5uZWxDb3VudChidXMuZ2V0KCkpOwotICAgICAg
ICBpZiAoY2hhbm5lbHNBcnJheS0+bGVuZ3RoKCkgIT0gbnVtYmVyT2ZDaGFubmVscykKKyAgICAg
ICAgaWYgKCFqc0NoYW5uZWxzQXJyYXkgfHwganNDaGFubmVsc0FycmF5LT5sZW5ndGgoKSAhPSBu
dW1iZXJPZkNoYW5uZWxzKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgICAgIGZv
ciAodW5zaWduZWQgaiA9IDA7IGogPCBudW1iZXJPZkNoYW5uZWxzOyArK2opIHsKLSAgICAgICAg
ICAgIGF1dG8qIGNoYW5uZWwgPSBidXMtPmNoYW5uZWwoaik7Ci0gICAgICAgICAgICBhdXRvKiBq
c0NoYW5uZWxEYXRhID0ganNDYXN0PEpTRmxvYXQzMkFycmF5Kj4oY2hhbm5lbHNBcnJheS0+Z2V0
SW5kZXgoJmdsb2JhbE9iamVjdCwgaikpOwotICAgICAgICAgICAgaWYgKGpzQ2hhbm5lbERhdGEt
Pmxlbmd0aCgpICE9IGNoYW5uZWwtPmxlbmd0aCgpKQorICAgICAgICBmb3IgKHVuc2lnbmVkIGNo
YW5uZWxJbmRleCA9IDA7IGNoYW5uZWxJbmRleCA8IG51bWJlck9mQ2hhbm5lbHM7ICsrY2hhbm5l
bEluZGV4KSB7CisgICAgICAgICAgICBhdXRvKiBjaGFubmVsID0gYnVzLT5jaGFubmVsKGNoYW5u
ZWxJbmRleCk7CisgICAgICAgICAgICBhdXRvKiBqc0NoYW5uZWxBcnJheSA9IGpzRHluYW1pY0Nh
c3Q8SlNGbG9hdDMyQXJyYXkqPih2bSwganNDaGFubmVsc0FycmF5LT5nZXRJbmRleCgmZ2xvYmFs
T2JqZWN0LCBjaGFubmVsSW5kZXgpKTsKKyAgICAgICAgICAgIGlmICghanNDaGFubmVsQXJyYXkg
fHwganNDaGFubmVsQXJyYXktPmxlbmd0aCgpICE9IGNoYW5uZWwtPmxlbmd0aCgpKQogICAgICAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIG1lbWNweShqc0NoYW5uZWxBcnJh
eS0+dHlwZWRWZWN0b3IoKSwgY2hhbm5lbC0+bXV0YWJsZURhdGEoKSwgc2l6ZW9mKGZsb2F0KSAq
IGpzQ2hhbm5lbEFycmF5LT5sZW5ndGgoKSk7CiAgICAgICAgIH0KICAgICB9Ci0KICAgICByZXR1
cm4gdHJ1ZTsKIH0KIAotc3RhdGljIGJvb2wgcGFyYW1ldGVyTWFwVG9wb2xvZ3lNYXRjaGVzSlNP
YmplY3QoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0LCBjb25zdCBIYXNoTWFw
PFN0cmluZywgc3RkOjp1bmlxdWVfcHRyPEF1ZGlvRmxvYXRBcnJheT4+JiBwYXJhbVZhbHVlc01h
cCwgSlNPYmplY3QqIGpzT2JqZWN0KQorc3RhdGljIGJvb2wgY29weURhdGFGcm9tUGFyYW1ldGVy
TWFwVG9KU09iamVjdChWTSYgdm0sIEpTR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QsIGNvbnN0
IEhhc2hNYXA8U3RyaW5nLCBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9GbG9hdEFycmF5Pj4mIHBhcmFt
VmFsdWVzTWFwLCBKU09iamVjdCoganNPYmplY3QpCiB7CiAgICAgaWYgKCFqc09iamVjdCkKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgZm9yIChhdXRvJiBwYWlyIDogcGFyYW1WYWx1ZXNN
YXApIHsKLSAgICAgICAgYXV0byoganNUeXBlZEFycmF5ID0ganNDYXN0PEpTRmxvYXQzMkFycmF5
Kj4oanNPYmplY3QtPmdldCgmZ2xvYmFsT2JqZWN0LCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZt
LCBwYWlyLmtleSkpKTsKKyAgICAgICAgYXV0byoganNUeXBlZEFycmF5ID0ganNEeW5hbWljQ2Fz
dDxKU0Zsb2F0MzJBcnJheSo+KHZtLCBqc09iamVjdC0+Z2V0KCZnbG9iYWxPYmplY3QsIElkZW50
aWZpZXI6OmZyb21TdHJpbmcodm0sIHBhaXIua2V5KSkpOworICAgICAgICBpZiAoIWpzVHlwZWRB
cnJheSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgdW5zaWduZWQgZXhwZWN0
ZWRMZW5ndGggPSBwYWlyLnZhbHVlLT5jb250YWluc0NvbnN0YW50VmFsdWUoKSA/IDEgOiBwYWly
LnZhbHVlLT5zaXplKCk7CiAgICAgICAgIGlmIChqc1R5cGVkQXJyYXktPmxlbmd0aCgpICE9IGV4
cGVjdGVkTGVuZ3RoKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBtZW1jcHko
anNUeXBlZEFycmF5LT50eXBlZFZlY3RvcigpLCBwYWlyLnZhbHVlLT5kYXRhKCksIHNpemVvZihm
bG9hdCkgKiBqc1R5cGVkQXJyYXktPmxlbmd0aCgpKTsKICAgICB9Ci0KICAgICByZXR1cm4gdHJ1
ZTsKIH0KIAotc3RhdGljIHZvaWQgemVyb0pTQXJyYXkoSlNHbG9iYWxPYmplY3QmIGdsb2JhbE9i
amVjdCwgSlNBcnJheSYganNBcnJheSkKK3N0YXRpYyBib29sIHplcm9KU0FycmF5KFZNJiB2bSwg
SlNHbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCwgY29uc3QgVmVjdG9yPFJlZjxBdWRpb0J1cz4+
JiBvdXRwdXRzLCBKU0FycmF5KiBqc0FycmF5KQogewotICAgIGZvckVhY2hDaGFubmVsRGF0YUpT
QXJyYXkoZ2xvYmFsT2JqZWN0LCBqc0FycmF5LCBbXSh1bnNpZ25lZCwgdW5zaWduZWQsIEpTRmxv
YXQzMkFycmF5JiBjaGFubmVsRGF0YSkgewotICAgICAgICBtZW1zZXQoY2hhbm5lbERhdGEudHlw
ZWRWZWN0b3IoKSwgMCwgc2l6ZW9mKGZsb2F0KSAqIGNoYW5uZWxEYXRhLmxlbmd0aCgpKTsKLSAg
ICB9KTsKKyAgICBpZiAoIWpzQXJyYXkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGZv
ciAoc2l6ZV90IGJ1c0luZGV4ID0gMDsgYnVzSW5kZXggPCBvdXRwdXRzLnNpemUoKTsgKytidXNJ
bmRleCkgeworICAgICAgICBhdXRvJiBidXMgPSBvdXRwdXRzW2J1c0luZGV4XTsKKyAgICAgICAg
YXV0byoganNDaGFubmVsc0FycmF5ID0ganNEeW5hbWljQ2FzdDxKU0FycmF5Kj4odm0sIGpzQXJy
YXktPmdldEluZGV4KCZnbG9iYWxPYmplY3QsIGJ1c0luZGV4KSk7CisgICAgICAgIHVuc2lnbmVk
IG51bWJlck9mQ2hhbm5lbHMgPSBidXNDaGFubmVsQ291bnQoYnVzLmdldCgpKTsKKyAgICAgICAg
aWYgKCFqc0NoYW5uZWxzQXJyYXkgfHwganNDaGFubmVsc0FycmF5LT5sZW5ndGgoKSAhPSBudW1i
ZXJPZkNoYW5uZWxzKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBmb3IgKHVu
c2lnbmVkIGNoYW5uZWxJbmRleCA9IDA7IGNoYW5uZWxJbmRleCA8IG51bWJlck9mQ2hhbm5lbHM7
ICsrY2hhbm5lbEluZGV4KSB7CisgICAgICAgICAgICBhdXRvKiBjaGFubmVsID0gYnVzLT5jaGFu
bmVsKGNoYW5uZWxJbmRleCk7CisgICAgICAgICAgICBhdXRvKiBqc0NoYW5uZWxBcnJheSA9IGpz
RHluYW1pY0Nhc3Q8SlNGbG9hdDMyQXJyYXkqPih2bSwganNDaGFubmVsc0FycmF5LT5nZXRJbmRl
eCgmZ2xvYmFsT2JqZWN0LCBjaGFubmVsSW5kZXgpKTsKKyAgICAgICAgICAgIGlmICghanNDaGFu
bmVsQXJyYXkgfHwganNDaGFubmVsQXJyYXktPmxlbmd0aCgpICE9IGNoYW5uZWwtPmxlbmd0aCgp
KQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIG1lbXNldChqc0No
YW5uZWxBcnJheS0+dHlwZWRWZWN0b3IoKSwgMCwgc2l6ZW9mKGZsb2F0KSAqIGpzQ2hhbm5lbEFy
cmF5LT5sZW5ndGgoKSk7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIHRydWU7CiB9CiAK
IEV4Y2VwdGlvbk9yPFJlZjxBdWRpb1dvcmtsZXRQcm9jZXNzb3I+PiBBdWRpb1dvcmtsZXRQcm9j
ZXNzb3I6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0KQpAQCAtMjMwLDIx
ICsyMTYsMTUgQEAgQXVkaW9Xb3JrbGV0UHJvY2Vzc29yOjpBdWRpb1dvcmtsZXRQcm9jZXNzb3Io
Y29uc3QgQXVkaW9Xb3JrbGV0UHJvY2Vzc29yQ29uc3RydWMKIHZvaWQgQXVkaW9Xb3JrbGV0UHJv
Y2Vzc29yOjpidWlsZEpTQXJndW1lbnRzKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QmIGdsb2JhbE9i
amVjdCwgTWFya2VkQXJndW1lbnRCdWZmZXImIGFyZ3MsIGNvbnN0IFZlY3RvcjxSZWZQdHI8QXVk
aW9CdXM+PiYgaW5wdXRzLCBWZWN0b3I8UmVmPEF1ZGlvQnVzPj4mIG91dHB1dHMsIGNvbnN0IEhh
c2hNYXA8U3RyaW5nLCBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9GbG9hdEFycmF5Pj4mIHBhcmFtVmFs
dWVzTWFwKQogewogICAgIC8vIEZvciBwZXJmb3JtYW5jZSByZWFzb25zLCB3ZSBjYWNoZSB0aGUg
YXJyYXlzIHBhc3NlZCB0byBKUyBhbmQgcmVjb25zdHJ1Y3QgdGhlbSBvbmx5IHdoZW4gdGhlIHRv
cG9sb2d5IGNoYW5nZXMuCi0gICAgaWYgKGJ1c1RvcG9sb2d5TWF0Y2hlc0pTQXJyYXkoZ2xvYmFs
T2JqZWN0LCBpbnB1dHMsIHRvSlNBcnJheShtX2pzSW5wdXRzKSkpCi0gICAgICAgIGNvcHlEYXRh
RnJvbUJ1c2VzVG9KU0FycmF5KGdsb2JhbE9iamVjdCwgaW5wdXRzLCAqdG9KU0FycmF5KG1fanNJ
bnB1dHMpKTsKLSAgICBlbHNlCisgICAgaWYgKCFjb3B5RGF0YUZyb21CdXNlc1RvSlNBcnJheSh2
bSwgZ2xvYmFsT2JqZWN0LCBpbnB1dHMsIHRvSlNBcnJheShtX2pzSW5wdXRzKSkpCiAgICAgICAg
IG1fanNJbnB1dHMgPSB7IGNvbnN0cnVjdEZyb3plbkpTQXJyYXkodm0sIGdsb2JhbE9iamVjdCwg
aW5wdXRzLCBTaG91bGRQb3B1bGF0ZVdpdGhCdXNEYXRhOjpZZXMpIH07CiAgICAgYXJncy5hcHBl
bmQobV9qc0lucHV0cyk7CiAKLSAgICBpZiAoYnVzVG9wb2xvZ3lNYXRjaGVzSlNBcnJheShnbG9i
YWxPYmplY3QsIG91dHB1dHMsIHRvSlNBcnJheShtX2pzT3V0cHV0cykpKQotICAgICAgICB6ZXJv
SlNBcnJheShnbG9iYWxPYmplY3QsICp0b0pTQXJyYXkobV9qc091dHB1dHMpKTsKLSAgICBlbHNl
CisgICAgaWYgKCF6ZXJvSlNBcnJheSh2bSwgZ2xvYmFsT2JqZWN0LCBvdXRwdXRzLCB0b0pTQXJy
YXkobV9qc091dHB1dHMpKSkKICAgICAgICAgbV9qc091dHB1dHMgPSB7IGNvbnN0cnVjdEZyb3pl
bkpTQXJyYXkodm0sIGdsb2JhbE9iamVjdCwgb3V0cHV0cywgU2hvdWxkUG9wdWxhdGVXaXRoQnVz
RGF0YTo6Tm8pIH07CiAgICAgYXJncy5hcHBlbmQobV9qc091dHB1dHMpOwogCi0gICAgaWYgKHBh
cmFtZXRlck1hcFRvcG9sb2d5TWF0Y2hlc0pTT2JqZWN0KHZtLCBnbG9iYWxPYmplY3QsIHBhcmFt
VmFsdWVzTWFwLCB0b0pTT2JqZWN0KG1fanNQYXJhbVZhbHVlcykpKQotICAgICAgICBjb3B5RGF0
YUZyb21QYXJhbWV0ZXJNYXBUb0pTT2JqZWN0KHZtLCBnbG9iYWxPYmplY3QsIHBhcmFtVmFsdWVz
TWFwLCAqdG9KU09iamVjdChtX2pzUGFyYW1WYWx1ZXMpKTsKLSAgICBlbHNlCisgICAgaWYgKCFj
b3B5RGF0YUZyb21QYXJhbWV0ZXJNYXBUb0pTT2JqZWN0KHZtLCBnbG9iYWxPYmplY3QsIHBhcmFt
VmFsdWVzTWFwLCB0b0pTT2JqZWN0KG1fanNQYXJhbVZhbHVlcykpKQogICAgICAgICBtX2pzUGFy
YW1WYWx1ZXMgPSB7IGNvbnN0cnVjdEZyb3plbktleVZhbHVlT2JqZWN0KHZtLCBnbG9iYWxPYmpl
Y3QsIHBhcmFtVmFsdWVzTWFwKSB9OwogICAgIGFyZ3MuYXBwZW5kKG1fanNQYXJhbVZhbHVlcyk7
CiB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>