<?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>236005</bug_id>
          
          <creation_ts>2022-02-01 23:28:02 -0800</creation_ts>
          <short_desc>REGRESSION(r288865): SourceImage should never sink its ImageBuffer to a NativeImage</short_desc>
          <delta_ts>2022-02-02 12:08:17 -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>Layout and Rendering</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=232411</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Said Abou-Hallawa">sabouhallawa</reporter>
          <assigned_to name="Said Abou-Hallawa">sabouhallawa</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1836347</commentid>
    <comment_count>0</comment_count>
      <attachid>450615</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2022-02-01 23:28:02 -0800</bug_when>
    <thetext>Created attachment 450615
test case

Since the SourceImage::nativeImage returns the sunk NativeImage, the SourceImage will be left with invalid ImageBuffer which should never be used.

Repro steps: 
1. Enable GPU Process rendering for DOM in mini browser.
2. Open the attached test case.

Results: WebKit will crash with the following call stack:

#0	0x0000000159f9d205 in std::__1::unique_ptr&lt;WebCore::GraphicsContext, std::__1::default_delete&lt;WebCore::GraphicsContext&gt; &gt;::operator bool() const at /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.3.Internal.sdk/usr/include/c++/v1/__memory/unique_ptr.h:303
#1	0x0000000159f9d14d in WebCore::IOSurface::ensureGraphicsContext() at /Volumes/Data/WebKit/OpenSource/Source/WebCore/platform/graphics/cocoa/IOSurface.mm:379
#2	0x000000015c3f7cd5 in WebCore::ImageBufferIOSurfaceBackend::context() const at /Volumes/Data/WebKit/OpenSource/Source/WebCore/platform/graphics/cg/ImageBufferIOSurfaceBackend.cpp:125
#3	0x000000015c3f7d26 in WebCore::ImageBufferIOSurfaceBackend::flushContext() at /Volumes/Data/WebKit/OpenSource/Source/WebCore/platform/graphics/cg/ImageBufferIOSurfaceBackend.cpp:135
#4	0x00000001294665f0 in WebCore::ConcreteImageBuffer&lt;WebKit::ImageBufferShareableMappedIOSurfaceBackend&gt;::flushContext() at /Volumes/Data/WebKit/OpenSource/WebKitBuild/Debug/WebCore.framework/PrivateHeaders/ConcreteImageBuffer.h:92
#5	0x000000012944f56a in WebKit::RemoteDisplayListRecorder::flushContext(WTF::ObjectIdentifier&lt;WebCore::GraphicsContextFlushIdentifierType&gt;) at /Volumes/Data/WebKit/OpenSource/Source/WebKit/GPUProcess/graphics/RemoteDisplayListRecorder.cpp:527
#6	0x00000001291ebd22 in void IPC::callMemberFunctionImpl&lt;WebKit::RemoteDisplayListRecorder, void (WebKit::RemoteDisplayListRecorder::*)(WTF::ObjectIdentifier&lt;WebCore::GraphicsContextFlushIdentifierType&gt;), std::__1::tuple&lt;WTF::ObjectIdentifier&lt;WebCore::GraphicsContextFlushIdentifierType&gt; &gt;, 0ul&gt;(WebKit::RemoteDisplayListRecorder*, void (WebKit::RemoteDisplayListRecorder::*)(WTF::ObjectIdentifier&lt;WebCore::GraphicsContextFlushIdentifierType&gt;), std::__1::tuple&lt;WTF::ObjectIdentifier&lt;WebCore::GraphicsContextFlushIdentifierType&gt; &gt;&amp;&amp;, std::__1::integer_sequence&lt;unsigned long, 0ul&gt;) at /Volumes/Data/WebKit/OpenSource/Source/WebKit/Platform/IPC/HandleMessage.h:125
#7	0x00000001291eb17d in void IPC::callMemberFunction&lt;WebKit::RemoteDisplayListRecorder, void (WebKit::RemoteDisplayListRecorder::*)(WTF::ObjectIdentifier&lt;WebCore::GraphicsContextFlushIdentifierType&gt;), std::__1::tuple&lt;WTF::ObjectIdentifier&lt;WebCore::GraphicsContextFlushIdentifierType&gt; &gt;, std::__1::integer_sequence&lt;unsigned long, 0ul&gt; &gt;(std::__1::tuple&lt;WTF::ObjectIdentifier&lt;WebCore::GraphicsContextFlushIdentifierType&gt; &gt;&amp;&amp;, WebKit::RemoteDisplayListRecorder*, void (WebKit::RemoteDisplayListRecorder::*)(WTF::ObjectIdentifier&lt;WebCore::GraphicsContextFlushIdentifierType&gt;)) at /Volumes/Data/WebKit/OpenSource/Source/WebKit/Platform/IPC/HandleMessage.h:131
#8	0x000000012918d779 in void IPC::handleMessage&lt;Messages::RemoteDisplayListRecorder::FlushContext, WebKit::RemoteDisplayListRecorder, void (WebKit::RemoteDisplayListRecorder::*)(WTF::ObjectIdentifier&lt;WebCore::GraphicsContextFlushIdentifierType&gt;)&gt;(IPC::Connection&amp;, IPC::Decoder&amp;, WebKit::RemoteDisplayListRecorder*, void (WebKit::RemoteDisplayListRecorder::*)(WTF::ObjectIdentifier&lt;WebCore::GraphicsContextFlushIdentifierType&gt;)) at /Volumes/Data/WebKit/OpenSource/Source/WebKit/Platform/IPC/HandleMessage.h:197
#9	0x00000001291894bf in WebKit::RemoteDisplayListRecorder::didReceiveStreamMessage(IPC::StreamServerConnectionBase&amp;, IPC::Decoder&amp;) at /Volumes/Data/WebKit/OpenSource/WebKitBuild/Debug/DerivedSources/WebKit/RemoteDisplayListRecorderMessageReceiver.cpp:218
#10	0x0000000129bd44fb in IPC::StreamServerConnection::dispatchStreamMessage(IPC::Decoder&amp;&amp;, IPC::StreamMessageReceiver&amp;) at /Volumes/Data/WebKit/OpenSource/Source/WebKit/Platform/IPC/StreamServerConnection.cpp:254
#11	0x0000000129bd3e94 in IPC::StreamServerConnection::dispatchStreamMessages(unsigned long) at /Volumes/Data/WebKit/OpenSource/Source/WebKit/Platform/IPC/StreamServerConnection.cpp:229
#12	0x0000000129bd2854 in IPC::StreamConnectionWorkQueue::processStreams() at /Volumes/Data/WebKit/OpenSource/Source/WebKit/Platform/IPC/StreamConnectionWorkQueue.cpp:135
#13	0x0000000129bda890 in IPC::StreamConnectionWorkQueue::startProcessingThread()::$_0::operator()() at /Volumes/Data/WebKit/OpenSource/Source/WebKit/Platform/IPC/StreamConnectionWorkQueue.cpp:107
#14	0x0000000129bda849 in WTF::Detail::CallableWrapper&lt;IPC::StreamConnectionWorkQueue::startProcessingThread()::$_0, void&gt;::call() at /Volumes/Data/WebKit/OpenSource/WebKitBuild/Debug/usr/local/include/wtf/Function.h:53
#15	0x000000011d0a4672 in WTF::Function&lt;void ()&gt;::operator()() const at /Volumes/Data/WebKit/OpenSource/WebKitBuild/Debug/usr/local/include/wtf/Function.h:82
#16	0x000000011d167e88 in WTF::Thread::entryPoint(WTF::Thread::NewThreadContext*) at /Volumes/Data/WebKit/OpenSource/Source/WTF/wtf/Threading.cpp:191
#17	0x000000011d173aa5 in WTF::wtfThreadEntryPoint(void*) at /Volumes/Data/WebKit/OpenSource/Source/WTF/wtf/posix/ThreadingPOSIX.cpp:244

Another repro steps:

1. Save the attached file to LayoutTests/svg/custom/pattern-multiple-referencing.html
2. run-webkit-tests --debug LayoutTests/svg/custom/pattern-multiple-referencing.html  --guard-malloc --repeat=10

0Result: WKTR will crash with the following call stack:

Thread 0 0Crashed::  Dispatch queue: com.apple.main-thread
0   WebCore                       	       0x14eebab9c WebCore::Pattern::repeatX() const + 12 (Pattern.h:80)
1   WebCore                       	       0x14f9d0147 WebCore::Pattern::createPlatformPattern(WebCore::AffineTransform const&amp;) const + 375 (PatternCG.cpp:74)
2   WebCore                       	       0x14f99dd47 WebCore::GraphicsContextCG::applyFillPattern() + 135 (GraphicsContextCG.cpp:582)
3   WebCore                       	       0x14f99f03f WebCore::GraphicsContextCG::fillRect(WebCore::FloatRect const&amp;) + 1167 (GraphicsContextCG.cpp:812)
4   WebCore                       	       0x1500b8517 WebCore::LegacyRenderSVGRect::fillShape(WebCore::GraphicsContext&amp;) const + 167 (LegacyRenderSVGRect.cpp:120)
5   WebCore                       	       0x1500d2af1 WebCore::RenderSVGResource::fillAndStrokePathOrShape(WebCore::GraphicsContext&amp;, WTF::OptionSet&lt;WebCore::RenderSVGResourceMode&gt;, WebCore::Path const*, WebCore::RenderElement const*) const + 209 (RenderSVGResource.cpp:255)
6   WebCore                       	       0x1500f00ae WebCore::RenderSVGResourcePattern::postApplyResource(WebCore::RenderElement&amp;, WebCore::GraphicsContext*&amp;, WTF::OptionSet&lt;WebCore::RenderSVGResourceMode&gt;, WebCore::Path const*, WebCore::RenderElement const*) + 270 (RenderSVGResourcePattern.cpp:204)
7   WebCore                       	       0x1500bc4ad WebCore::LegacyRenderSVGShape::fillShape(WebCore::RenderStyle const&amp;, WebCore::GraphicsContext&amp;) + 221 (LegacyRenderSVGShape.cpp:224)
8   WebCore                       	       0x1500bc96e WebCore::LegacyRenderSVGShape::fillStrokeMarkers(WebCore::PaintInfo&amp;) + 190 (LegacyRenderSVGShape.cpp:270)
9   WebCore                       	       0x1500bce29 WebCore::LegacyRenderSVGShape::paint(WebCore::PaintInfo&amp;, WebCore::LayoutPoint const&amp;) + 425 (LegacyRenderSVGShape.cpp:304)
10  WebCore                       	       0x1500ba442 WebCore::LegacyRenderSVGRoot::paintReplaced(WebCore::PaintInfo&amp;, WebCore::LayoutPoint const&amp;) + 1330 (LegacyRenderSVGRoot.cpp:294)
11  WebCore                       	       0x14ff76d97 WebCore::RenderReplaced::paint(WebCore::PaintInfo&amp;, WebCore::LayoutPoint const&amp;) + 1959 (RenderReplaced.cpp:262)
12  WebCore                       	       0x14fe584e9 WebCore::paintPhase(WebCore::RenderElement&amp;, WebCore::PaintPhase, WebCore::PaintInfo&amp;, WebCore::LayoutPoint const&amp;) + 57 (RenderElement.cpp:1135)
13  WebCore                       	       0x14fe58478 WebCore::RenderElement::paintAsInlineBlock(WebCore::PaintInfo&amp;, WebCore::LayoutPoint const&amp;) + 232 (RenderElement.cpp:1150)
14  WebCore                       	       0x14fd3d09a WebCore::LegacyInlineElementBox::paint(WebCore::PaintInfo&amp;, WebCore::LayoutPoint const&amp;, WebCore::LayoutUnit, WebCore::LayoutUnit) + 298 (LegacyInlineElementBox.cpp:81)
15  WebCore                       	       0x14fd43ebf WebCore::LegacyInlineFlowBox::paint(WebCore::PaintInfo&amp;, WebCore::LayoutPoint const&amp;, WebCore::LayoutUnit, WebCore::LayoutUnit) + 655 (LegacyInlineFlowBox.cpp:1132)
16  WebCore                       	       0x14fd5eb03 WebCore::LegacyRootInlineBox::paint(WebCore::PaintInfo&amp;, WebCore::LayoutPoint const&amp;, WebCore::LayoutUnit, WebCore::LayoutUnit) + 67 (LegacyRootInlineBox.cpp:172)
17  WebCore                       	       0x14ff43e92 WebCore::RenderLineBoxList::paint(WebCore::RenderBoxModelObject*, WebCore::PaintInfo&amp;, WebCore::LayoutPoint const&amp;) const + 1346 (RenderLineBoxList.cpp:260)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1836374</commentid>
    <comment_count>1</comment_count>
      <attachid>450625</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2022-02-02 00:43:49 -0800</bug_when>
    <thetext>Created attachment 450625
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1836380</commentid>
    <comment_count>2</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2022-02-02 01:51:30 -0800</bug_when>
    <thetext>Similar crashes appear also in EWS bots: https://ews-build.s3-us-west-2.amazonaws.com/macOS-AppleSilicon-Big-Sur-Debug-WK2-Tests-EWS/r450507-22650/com.apple.WebKit.GPU.Development-822-crash-log.txt</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1836520</commentid>
    <comment_count>3</comment_count>
      <attachid>450671</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2022-02-02 10:42:04 -0800</bug_when>
    <thetext>Created attachment 450671
Patch

Fix a typo in the ChangeLog</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1836576</commentid>
    <comment_count>4</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-02-02 12:07:15 -0800</bug_when>
    <thetext>Committed r288977 (246705@main): &lt;https://commits.webkit.org/246705@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 450671.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1836578</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-02-02 12:08:17 -0800</bug_when>
    <thetext>&lt;rdar://problem/88394478&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>450615</attachid>
            <date>2022-02-01 23:28:02 -0800</date>
            <delta_ts>2022-02-01 23:28:02 -0800</delta_ts>
            <desc>test case</desc>
            <filename>pattern-multiple-referencing.html</filename>
            <type>text/html</type>
            <size>677</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">PGJvZHk+CiAgICA8cD5UaGlzIHRlc3QgcGFzc2VzIGlmIGl0IGRvZXNuJ3QgY3Jhc2guPC9wPgog
ICAgPHN2ZyB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3Jn
LzIwMDAvc3ZnIj4KICAgICAgICA8ZGVmcz4KICAgICAgICAgICAgPHBhdHRlcm4gaWQ9InBhdHRl
cm4iIHg9IjAiIHk9IjAiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiPgogICAgICAgICAgICAgICAgPHJl
Y3QgeD0iMCIgeT0iMCIgd2lkdGg9IjUwIiBoZWlnaHQ9IjEwMCIgZmlsbD0iZ3JlZW4iLz4KICAg
ICAgICAgICAgICAgIDxyZWN0IHg9IjUwIiB5PSIwIiB3aWR0aD0iNTAiIGhlaWdodD0iMTAwIiBm
aWxsPSJibHVlIi8+CiAgICAgICAgICAgIDwvcGF0dGVybj4KICAgICAgICA8L2RlZnM+CiAgICAg
ICAgPHJlY3Qgd2lkdGg9IjEwMCIgaGVpZ2h0PSIxMDAiIGZpbGw9InVybCgjcGF0dGVybikiIHN0
cm9rZT0iYmxhY2siLz4KICAgICAgICA8cmVjdCB4PSIxMDAiIHk9IjEwMCIgd2lkdGg9IjEwMCIg
aGVpZ2h0PSIxMDAiIGZpbGw9InVybCgjcGF0dGVybikiIHN0cm9rZT0iYmxhY2siLz4KICAgIDwv
c3ZnPgogICAgPHNjcmlwdD4KICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCiAgICAgICAg
ICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpCiAgICA8L3NjcmlwdD4KPC9ib2R5Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>450625</attachid>
            <date>2022-02-02 00:43:49 -0800</date>
            <delta_ts>2022-02-02 08:49:36 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-236005-20220202004348.patch</filename>
            <type>text/plain</type>
            <size>8357</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg4OTI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmViYTMyMjJlM2VmZjFk
MTI5NTRiNzA0YjFiNjJkMTA5NDk3OGU1Zi4uNWIzYWIzY2UyMjQxYzA1ZTkxYzQ5YWZjMjUxNjJi
NWQ2NDA3NDFiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDIyLTAyLTAxICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgorCisgICAgICAgIFJFR1JFU1NJT04ocjI4
ODg2NSk6IFNvdXJjZUltYWdlIHNob3VsZCBuZXZlciBzaW5rIGl0cyBJbWFnZUJ1ZmZlciB0byBh
IE5hdGl2ZUltYWdlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMzYwMDUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBUaGUgcjI4ODg2NSBjaGFuZ2VzIFNvdXJjZUltYWdlOjpuYXRpdmVJbWFnZSgpIHN1Y2gg
dGhhdCBpZiB0aGUgaW1hZ2UKKyAgICAgICAgdmFyaWFudCBoYXMgYW4gSW1hZ2VCdWZmZXIsIGl0
IHdpbGwgc2luayB0aGlzIEltYWdlQnVmZmVyIGludG8gYSBOYXRpdmVJbWFnZQorICAgICAgICBh
bmQgIHJldHVybiB0aGlzIE5hdGl2ZUltYWdlIHRvIHRoZSBjYWxsZXIuIFRoaXMgd2FzIGluY29y
cmVjdCBjaGFuZ2UgCisgICAgICAgIGJlY2F1c2UgdGhpcyB3b3VsZCBpbnZhbGlkYXRlIHRoZSBJ
bWFnZUJ1ZmZlckJhY2tlbmQgb2YgdGhlIFNvdXJjZUltYWdlLgorCisgICAgICAgIFRoZSBmaXgg
aXMgY29weSB0aGUgSW1hZ2VCdWZmZXIgdG8gYSBOYXRpdmVJbWFnZSAoRG9udENvcHlCYWNraW5n
U3RvcmUpIAorICAgICAgICBhbmQgc3RvcmUgaXQgaW50byBhbm90aGVyIGltYWdlIHZhcmlhbnQu
IFRoaXMgd2lsbCBrZWVwIHRoZSBJbWFnZUJ1ZmZlcgorICAgICAgICB2YWxpZCBhbmQgd2lsbCBw
cmV2ZW50IHN1YnNlcXVlbnQgY29udmVyc2lvbiBpZiB0aGlzIGZ1bmN0aW9uIGlzIGNhbGxlZAor
ICAgICAgICBtdWx0aXBsZSB0aW1lcy4KKworICAgICAgICBTaW1pbGFyIGNoYW5nZXMgc2hvdWxk
IGJlIGFwcGxpZWQgdG8gU291cmNlSW1hZ2U6OmltYWdlQnVmZmVyKCkuCisKKyAgICAgICAgVGVz
dDogc3ZnL2N1c3RvbS9wYXR0ZXJuLW11bHRpcGxlLXJlZmVyZW5jaW5nLmh0bWwKKworICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL1NvdXJjZUltYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
Om5hdGl2ZUltYWdlT2YpOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlSW1hZ2U6Om5hdGl2ZUlt
YWdlSWZFeGlzdHMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlSW1hZ2U6Om5hdGl2
ZUltYWdlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OmltYWdlQnVmZmVyT2YpOgorICAgICAg
ICAoV2ViQ29yZTo6U291cmNlSW1hZ2U6OmltYWdlQnVmZmVySWZFeGlzdHMgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6U291cmNlSW1hZ2U6OmltYWdlQnVmZmVyIGNvbnN0KToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9Tb3VyY2VJbWFnZS5oOgorCiAyMDIyLTAyLTAxICBQZXIgQXJu
ZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbV1BdIFJlbW92ZSBQb3N0
U2NyaXB0IGNvbnZlcnNpb24gY29kZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvU291cmNlSW1hZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvU291cmNlSW1hZ2UuY3BwCmluZGV4IGFhN2QxZDFiM2FkM2I3N2UyMTc2MDgzNjNhNmVj
YzI5ZjQ4NGZhNWUuLjBkMTg3ZmM5MDFhYzkyN2NhNWJmOTg4YzA2N2M0ZmZlZjMwODRmNjQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1NvdXJjZUltYWdlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Tb3VyY2VJbWFnZS5jcHAK
QEAgLTM1LDQ4ICszNSw2OCBAQCBTb3VyY2VJbWFnZTo6U291cmNlSW1hZ2UoSW1hZ2VWYXJpYW50
JiYgaW1hZ2VWYXJpYW50KQogewogfQogCi1OYXRpdmVJbWFnZSogU291cmNlSW1hZ2U6Om5hdGl2
ZUltYWdlSWZFeGlzdHMoKSBjb25zdAorc3RhdGljIGlubGluZSBOYXRpdmVJbWFnZSogbmF0aXZl
SW1hZ2VPZihjb25zdCBTb3VyY2VJbWFnZTo6SW1hZ2VWYXJpYW50JiBpbWFnZVZhcmlhbnQpCiB7
Ci0gICAgaWYgKGF1dG8qIG5hdGl2ZUltYWdlID0gc3RkOjpnZXRfaWY8UmVmPE5hdGl2ZUltYWdl
Pj4oJm1faW1hZ2VWYXJpYW50KSkKKyAgICBpZiAoYXV0byogbmF0aXZlSW1hZ2UgPSBzdGQ6Omdl
dF9pZjxSZWY8TmF0aXZlSW1hZ2U+PigmaW1hZ2VWYXJpYW50KSkKICAgICAgICAgcmV0dXJuIG5h
dGl2ZUltYWdlLT5wdHIoKTsKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAotUmVmUHRyPE5hdGl2
ZUltYWdlPiBTb3VyY2VJbWFnZTo6bmF0aXZlSW1hZ2UoKSBjb25zdAorTmF0aXZlSW1hZ2UqIFNv
dXJjZUltYWdlOjpuYXRpdmVJbWFnZUlmRXhpc3RzKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbmF0
aXZlSW1hZ2VPZihtX2ltYWdlVmFyaWFudCk7Cit9CisKK05hdGl2ZUltYWdlKiBTb3VyY2VJbWFn
ZTo6bmF0aXZlSW1hZ2UoKSBjb25zdAogewogICAgIGlmICghc3RkOjpob2xkc19hbHRlcm5hdGl2
ZTxSZWY8SW1hZ2VCdWZmZXI+PihtX2ltYWdlVmFyaWFudCkpCiAgICAgICAgIHJldHVybiBuYXRp
dmVJbWFnZUlmRXhpc3RzKCk7CiAKLSAgICBhdXRvIGltYWdlQnVmZmVyID0gc3RkOjpnZXQ8UmVm
PEltYWdlQnVmZmVyPj4obV9pbWFnZVZhcmlhbnQpOwotICAgIGF1dG8gbmF0aXZlSW1hZ2UgPSBJ
bWFnZUJ1ZmZlcjo6c2lua0ludG9OYXRpdmVJbWFnZShXVEZNb3ZlKGltYWdlQnVmZmVyKSk7Ci0g
ICAgaWYgKCFuYXRpdmVJbWFnZSkKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgaWYgKCFt
X3RyYW5zZm9ybWVkSW1hZ2VWYXJpYW50KSB7CisgICAgICAgIGF1dG8gaW1hZ2VCdWZmZXIgPSBz
dGQ6OmdldDxSZWY8SW1hZ2VCdWZmZXI+PihtX2ltYWdlVmFyaWFudCk7CisKKyAgICAgICAgYXV0
byBuYXRpdmVJbWFnZSA9IGltYWdlQnVmZmVyLT5jb3B5TmF0aXZlSW1hZ2UoRG9udENvcHlCYWNr
aW5nU3RvcmUpOworICAgICAgICBpZiAoIW5hdGl2ZUltYWdlKQorICAgICAgICAgICAgcmV0dXJu
IG51bGxwdHI7CiAKLSAgICByZXR1cm4gbmF0aXZlSW1hZ2U7CisgICAgICAgIG1fdHJhbnNmb3Jt
ZWRJbWFnZVZhcmlhbnQgPSB7IG5hdGl2ZUltYWdlLnJlbGVhc2VOb25OdWxsKCkgfTsKKyAgICB9
CisKKyAgICBBU1NFUlQobV90cmFuc2Zvcm1lZEltYWdlVmFyaWFudCk7CisgICAgcmV0dXJuIG5h
dGl2ZUltYWdlT2YoKm1fdHJhbnNmb3JtZWRJbWFnZVZhcmlhbnQpOwogfQogCi1JbWFnZUJ1ZmZl
ciogU291cmNlSW1hZ2U6OmltYWdlQnVmZmVySWZFeGlzdHMoKSBjb25zdAorc3RhdGljIGlubGlu
ZSBJbWFnZUJ1ZmZlciogaW1hZ2VCdWZmZXJPZihjb25zdCBTb3VyY2VJbWFnZTo6SW1hZ2VWYXJp
YW50JiBpbWFnZVZhcmlhbnQpCiB7Ci0gICAgaWYgKGF1dG8qIGltYWdlQnVmZmVyID0gc3RkOjpn
ZXRfaWY8UmVmPEltYWdlQnVmZmVyPj4oJm1faW1hZ2VWYXJpYW50KSkKKyAgICBpZiAoYXV0byog
aW1hZ2VCdWZmZXIgPSBzdGQ6OmdldF9pZjxSZWY8SW1hZ2VCdWZmZXI+PigmaW1hZ2VWYXJpYW50
KSkKICAgICAgICAgcmV0dXJuIGltYWdlQnVmZmVyLT5wdHIoKTsKICAgICByZXR1cm4gbnVsbHB0
cjsKIH0KIAotUmVmUHRyPEltYWdlQnVmZmVyPiBTb3VyY2VJbWFnZTo6aW1hZ2VCdWZmZXIoKSBj
b25zdAorSW1hZ2VCdWZmZXIqIFNvdXJjZUltYWdlOjppbWFnZUJ1ZmZlcklmRXhpc3RzKCkgY29u
c3QKK3sKKyAgICByZXR1cm4gaW1hZ2VCdWZmZXJPZihtX2ltYWdlVmFyaWFudCk7Cit9CisKK0lt
YWdlQnVmZmVyKiBTb3VyY2VJbWFnZTo6aW1hZ2VCdWZmZXIoKSBjb25zdAogewogICAgIGlmICgh
c3RkOjpob2xkc19hbHRlcm5hdGl2ZTxSZWY8TmF0aXZlSW1hZ2U+PihtX2ltYWdlVmFyaWFudCkp
CiAgICAgICAgIHJldHVybiBpbWFnZUJ1ZmZlcklmRXhpc3RzKCk7CiAKLSAgICBhdXRvIG5hdGl2
ZUltYWdlID0gc3RkOjpnZXQ8UmVmPE5hdGl2ZUltYWdlPj4obV9pbWFnZVZhcmlhbnQpOwotICAg
IGF1dG8gcmVjdCA9IEZsb2F0UmVjdCB7IHsgfSwgbmF0aXZlSW1hZ2UtPnNpemUoKSB9OworICAg
IGlmICghbV90cmFuc2Zvcm1lZEltYWdlVmFyaWFudCkgeworICAgICAgICBhdXRvIG5hdGl2ZUlt
YWdlID0gc3RkOjpnZXQ8UmVmPE5hdGl2ZUltYWdlPj4obV9pbWFnZVZhcmlhbnQpOwogCi0gICAg
YXV0byBpbWFnZUJ1ZmZlciA9IEltYWdlQnVmZmVyOjpjcmVhdGUobmF0aXZlSW1hZ2UtPnNpemUo
KSwgUmVuZGVyaW5nTW9kZTo6VW5hY2NlbGVyYXRlZCwgMSwgRGVzdGluYXRpb25Db2xvclNwYWNl
OjpTUkdCKCksIFBpeGVsRm9ybWF0OjpCR1JBOCk7Ci0gICAgaWYgKCFpbWFnZUJ1ZmZlcikKLSAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIGF1dG8gcmVjdCA9IEZsb2F0UmVjdCB7IHsg
fSwgbmF0aXZlSW1hZ2UtPnNpemUoKSB9OworICAgICAgICBhdXRvIGltYWdlQnVmZmVyID0gSW1h
Z2VCdWZmZXI6OmNyZWF0ZShuYXRpdmVJbWFnZS0+c2l6ZSgpLCBSZW5kZXJpbmdNb2RlOjpVbmFj
Y2VsZXJhdGVkLCAxLCBEZXN0aW5hdGlvbkNvbG9yU3BhY2U6OlNSR0IoKSwgUGl4ZWxGb3JtYXQ6
OkJHUkE4KTsKKyAgICAgICAgaWYgKCFpbWFnZUJ1ZmZlcikKKyAgICAgICAgICAgIHJldHVybiBu
dWxscHRyOwogCi0gICAgaW1hZ2VCdWZmZXItPmNvbnRleHQoKS5kcmF3TmF0aXZlSW1hZ2UobmF0
aXZlSW1hZ2UsIHJlY3Quc2l6ZSgpLCByZWN0LCByZWN0KTsKKyAgICAgICAgaW1hZ2VCdWZmZXIt
PmNvbnRleHQoKS5kcmF3TmF0aXZlSW1hZ2UobmF0aXZlSW1hZ2UsIHJlY3Quc2l6ZSgpLCByZWN0
LCByZWN0KTsKKyAgICAgICAgbV90cmFuc2Zvcm1lZEltYWdlVmFyaWFudCA9IHsgaW1hZ2VCdWZm
ZXIucmVsZWFzZU5vbk51bGwoKSB9OworICAgIH0KIAotICAgIHJldHVybiBpbWFnZUJ1ZmZlcjsK
KyAgICBBU1NFUlQobV90cmFuc2Zvcm1lZEltYWdlVmFyaWFudCk7CisgICAgcmV0dXJuIGltYWdl
QnVmZmVyT2YoKm1fdHJhbnNmb3JtZWRJbWFnZVZhcmlhbnQpOwogfQogCiBSZW5kZXJpbmdSZXNv
dXJjZUlkZW50aWZpZXIgU291cmNlSW1hZ2U6OmltYWdlSWRlbnRpZmllcigpIGNvbnN0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Tb3VyY2VJbWFnZS5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU291cmNlSW1hZ2UuaAppbmRleCBmOWMz
NGFiZGI5YjdhNjg2OTVkMTdhZjg0MDRhNTkyZDU2NGNlODMxLi42NDYwMjAzMzA2MjNlYTJlOTg3
NGI5NTA1ZGRlM2VkNjg3MzVkYTYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9Tb3VyY2VJbWFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL1NvdXJjZUltYWdlLmgKQEAgLTQyLDEwICs0MiwxMCBAQCBwdWJsaWM6CiAgICAgU291
cmNlSW1hZ2UoSW1hZ2VWYXJpYW50JiYpOwogCiAgICAgTmF0aXZlSW1hZ2UqIG5hdGl2ZUltYWdl
SWZFeGlzdHMoKSBjb25zdDsKLSAgICBSZWZQdHI8TmF0aXZlSW1hZ2U+IG5hdGl2ZUltYWdlKCkg
Y29uc3Q7CisgICAgTmF0aXZlSW1hZ2UqIG5hdGl2ZUltYWdlKCkgY29uc3Q7CiAKICAgICBJbWFn
ZUJ1ZmZlciogaW1hZ2VCdWZmZXJJZkV4aXN0cygpIGNvbnN0OwotICAgIFJlZlB0cjxJbWFnZUJ1
ZmZlcj4gaW1hZ2VCdWZmZXIoKSBjb25zdDsKKyAgICBJbWFnZUJ1ZmZlciogaW1hZ2VCdWZmZXIo
KSBjb25zdDsKIAogICAgIFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBpbWFnZUlkZW50aWZp
ZXIoKSBjb25zdDsKICAgICBJbnRTaXplIHNpemUoKSBjb25zdDsKQEAgLTU1LDYgKzU1LDcgQEAg
cHVibGljOgogCiBwcml2YXRlOgogICAgIEltYWdlVmFyaWFudCBtX2ltYWdlVmFyaWFudDsKKyAg
ICBtdXRhYmxlIHN0ZDo6b3B0aW9uYWw8SW1hZ2VWYXJpYW50PiBtX3RyYW5zZm9ybWVkSW1hZ2VW
YXJpYW50OwogfTsKIAogdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA1MGY2YTUyZWE1
MDFhNzc2N2E0OTc5MmI5N2UwNzRhNzM2MjE2YmUwLi45NGU4MjE1YTY1ZTYxZjI4OTJmNjlhMGIy
YzM4ZmUyNjJkMzRjZDMyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjItMDItMDEgIFNhaWQg
QWJvdS1IYWxsYXdhICA8c2FpZEBhcHBsZS5jb20+CisKKyAgICAgICAgUkVHUkVTU0lPTihyMjg4
ODY1KTogU291cmNlSW1hZ2Ugc2hvdWxkIG5ldmVyIHNpbmsgaXRzIEltYWdlQnVmZmVyIHRvIGEg
TmF0aXZlSW1hZ2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIzNjAwNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogc3ZnL2N1c3RvbS9wYXR0ZXJuLW11bHRpcGxlLXJlZmVyZW5jaW5nLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogc3ZnL2N1c3RvbS9wYXR0ZXJuLW11bHRpcGxlLXJlZmVyZW5j
aW5nLmh0bWw6IEFkZGVkLgorCiAyMDIyLTAyLTAxICBBbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxl
LmNvbT4KIAogICAgICAgICBbTEZDXVtJRkNdIFVzaW5nIEZvbnRjYXNjYWRlOjpzcGFjZVdpZHRo
IHRvIHN1YnRyYWN0IHRoZSB0cmFpbGluZyBzcGFjZSB3aWR0aCBtYXkgcmVzdWx0IGluIGluY29y
cmVjdCBsYXlvdXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N2Zy9jdXN0b20vcGF0dGVybi1t
dWx0aXBsZS1yZWZlcmVuY2luZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdmcvY3VzdG9t
L3BhdHRlcm4tbXVsdGlwbGUtcmVmZXJlbmNpbmctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ0
MzExZjgyYmQxMDg4YTZkZjJhNjYzYjYxZTc2MDI0M2RhMDM0ZjcKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9zdmcvY3VzdG9tL3BhdHRlcm4tbXVsdGlwbGUtcmVmZXJlbmNpbmctZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorVGhpcyB0ZXN0IHBhc3NlcyBpZiBpdCBkb2Vzbid0
IGNyYXNoLgorCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N2Zy9jdXN0b20vcGF0dGVybi1t
dWx0aXBsZS1yZWZlcmVuY2luZy5odG1sIGIvTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9wYXR0ZXJu
LW11bHRpcGxlLXJlZmVyZW5jaW5nLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGE3NmUyNmNmYWQzOTg1NDUz
Njg0M2NiMDNlZTdmYTNmNWY0MGJmOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N2
Zy9jdXN0b20vcGF0dGVybi1tdWx0aXBsZS1yZWZlcmVuY2luZy5odG1sCkBAIC0wLDAgKzEsMTcg
QEAKKzxib2R5PgorICAgIDxwPlRoaXMgdGVzdCBwYXNzZXMgaWYgaXQgZG9lc24ndCBjcmFzaC48
L3A+CisgICAgPHN2ZyB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCI+CisgICAgICAgIDxkZWZzPgor
ICAgICAgICAgICAgPHBhdHRlcm4gaWQ9InBhdHRlcm4iIHg9IjAiIHk9IjAiIHdpZHRoPSIxIiBo
ZWlnaHQ9IjEiPgorICAgICAgICAgICAgICAgIDxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSI1MCIg
aGVpZ2h0PSIxMDAiIGZpbGw9ImdyZWVuIi8+CisgICAgICAgICAgICAgICAgPHJlY3QgeD0iNTAi
IHk9IjAiIHdpZHRoPSI1MCIgaGVpZ2h0PSIxMDAiIGZpbGw9ImJsdWUiLz4KKyAgICAgICAgICAg
IDwvcGF0dGVybj4KKyAgICAgICAgPC9kZWZzPgorICAgICAgICA8cmVjdCB3aWR0aD0iMTAwIiBo
ZWlnaHQ9IjEwMCIgZmlsbD0idXJsKCNwYXR0ZXJuKSIgc3Ryb2tlPSJibGFjayIvPgorICAgICAg
ICA8cmVjdCB4PSIxMDAiIHk9IjEwMCIgd2lkdGg9IjEwMCIgaGVpZ2h0PSIxMDAiIGZpbGw9InVy
bCgjcGF0dGVybikiIHN0cm9rZT0iYmxhY2siLz4KKyAgICA8L3N2Zz4KKyAgICA8c2NyaXB0Pgor
ICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICB0ZXN0UnVubmVyLmR1
bXBBc1RleHQoKQorICAgIDwvc2NyaXB0PgorPC9ib2R5Pgo=
</data>
<flag name="review"
          id="477077"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>450671</attachid>
            <date>2022-02-02 10:42:04 -0800</date>
            <delta_ts>2022-02-02 12:07:17 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-236005-20220202104204.patch</filename>
            <type>text/plain</type>
            <size>8303</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg4OTYyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTI4ODgxMjc0ZTM4NGYy
ZWUxYzExNmIzZmQ3ODhkOGE3NzYwNmU4Yi4uM2RhMzE2OGY3ZmQ4YjdhNjc1YzU2ODZjYWE1M2U2
YzdmYTY0NzEyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDIyLTAyLTAyICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgorCisgICAgICAgIFJFR1JFU1NJT04ocjI4
ODg2NSk6IFNvdXJjZUltYWdlIHNob3VsZCBuZXZlciBzaW5rIGl0cyBJbWFnZUJ1ZmZlciB0byBh
IE5hdGl2ZUltYWdlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMzYwMDUKKworICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIuCisKKyAgICAg
ICAgVGhlIHIyODg4NjUgY2hhbmdlcyBTb3VyY2VJbWFnZTo6bmF0aXZlSW1hZ2UoKSBzdWNoIHRo
YXQgaWYgdGhlIGltYWdlCisgICAgICAgIHZhcmlhbnQgaGFzIGFuIEltYWdlQnVmZmVyLCBpdCB3
aWxsIHNpbmsgdGhpcyBJbWFnZUJ1ZmZlciBpbnRvIGEgTmF0aXZlSW1hZ2UKKyAgICAgICAgYW5k
IHJldHVybiB0aGlzIE5hdGl2ZUltYWdlIHRvIHRoZSBjYWxsZXIuIFRoaXMgd2FzIGluY29ycmVj
dCBjaGFuZ2UgCisgICAgICAgIGJlY2F1c2UgdGhpcyB3b3VsZCBpbnZhbGlkYXRlIHRoZSBJbWFn
ZUJ1ZmZlckJhY2tlbmQgb2YgdGhlIFNvdXJjZUltYWdlLgorCisgICAgICAgIFRoZSBmaXggaXMg
dG8gY29weSB0aGUgSW1hZ2VCdWZmZXIgdG8gYSBOYXRpdmVJbWFnZSAoRG9udENvcHlCYWNraW5n
U3RvcmUpIAorICAgICAgICBhbmQgc3RvcmUgaXQgaW50byBhbm90aGVyIGltYWdlIHZhcmlhbnQu
IFRoaXMgd2lsbCBrZWVwIHRoZSBJbWFnZUJ1ZmZlcgorICAgICAgICB2YWxpZCBhbmQgd2lsbCBw
cmV2ZW50IHN1YnNlcXVlbnQgY29udmVyc2lvbiBpZiB0aGlzIGZ1bmN0aW9uIGlzIGNhbGxlZAor
ICAgICAgICBtdWx0aXBsZSB0aW1lcy4KKworICAgICAgICBTaW1pbGFyIGNoYW5nZXMgc2hvdWxk
IGJlIGFwcGxpZWQgdG8gU291cmNlSW1hZ2U6OmltYWdlQnVmZmVyKCkuCisKKyAgICAgICAgVGVz
dDogc3ZnL2N1c3RvbS9wYXR0ZXJuLW11bHRpcGxlLXJlZmVyZW5jaW5nLmh0bWwKKworICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL1NvdXJjZUltYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
Om5hdGl2ZUltYWdlT2YpOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlSW1hZ2U6Om5hdGl2ZUlt
YWdlSWZFeGlzdHMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlSW1hZ2U6Om5hdGl2
ZUltYWdlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OmltYWdlQnVmZmVyT2YpOgorICAgICAg
ICAoV2ViQ29yZTo6U291cmNlSW1hZ2U6OmltYWdlQnVmZmVySWZFeGlzdHMgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6U291cmNlSW1hZ2U6OmltYWdlQnVmZmVyIGNvbnN0KToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9Tb3VyY2VJbWFnZS5oOgorCiAyMDIyLTAyLTAyICBHYWJyaWVs
IE5hdmEgTWFyaW5vICA8Z25hdmFtYXJpbm9AYXBwbGUuY29tPgogCiAgICAgICAgIG51bGwgcHRy
IGRlcmVmIGluIEVkaXRvcjo6cGFzdGVXaXRoUGFzdGVib2FyZApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU291cmNlSW1hZ2UuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvU291cmNlSW1hZ2UuY3BwCmluZGV4IGFhN2QxZDFiM2FkM2I3
N2UyMTc2MDgzNjNhNmVjYzI5ZjQ4NGZhNWUuLjBkMTg3ZmM5MDFhYzkyN2NhNWJmOTg4YzA2N2M0
ZmZlZjMwODRmNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L1NvdXJjZUltYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9T
b3VyY2VJbWFnZS5jcHAKQEAgLTM1LDQ4ICszNSw2OCBAQCBTb3VyY2VJbWFnZTo6U291cmNlSW1h
Z2UoSW1hZ2VWYXJpYW50JiYgaW1hZ2VWYXJpYW50KQogewogfQogCi1OYXRpdmVJbWFnZSogU291
cmNlSW1hZ2U6Om5hdGl2ZUltYWdlSWZFeGlzdHMoKSBjb25zdAorc3RhdGljIGlubGluZSBOYXRp
dmVJbWFnZSogbmF0aXZlSW1hZ2VPZihjb25zdCBTb3VyY2VJbWFnZTo6SW1hZ2VWYXJpYW50JiBp
bWFnZVZhcmlhbnQpCiB7Ci0gICAgaWYgKGF1dG8qIG5hdGl2ZUltYWdlID0gc3RkOjpnZXRfaWY8
UmVmPE5hdGl2ZUltYWdlPj4oJm1faW1hZ2VWYXJpYW50KSkKKyAgICBpZiAoYXV0byogbmF0aXZl
SW1hZ2UgPSBzdGQ6OmdldF9pZjxSZWY8TmF0aXZlSW1hZ2U+PigmaW1hZ2VWYXJpYW50KSkKICAg
ICAgICAgcmV0dXJuIG5hdGl2ZUltYWdlLT5wdHIoKTsKICAgICByZXR1cm4gbnVsbHB0cjsKIH0K
IAotUmVmUHRyPE5hdGl2ZUltYWdlPiBTb3VyY2VJbWFnZTo6bmF0aXZlSW1hZ2UoKSBjb25zdAor
TmF0aXZlSW1hZ2UqIFNvdXJjZUltYWdlOjpuYXRpdmVJbWFnZUlmRXhpc3RzKCkgY29uc3QKK3sK
KyAgICByZXR1cm4gbmF0aXZlSW1hZ2VPZihtX2ltYWdlVmFyaWFudCk7Cit9CisKK05hdGl2ZUlt
YWdlKiBTb3VyY2VJbWFnZTo6bmF0aXZlSW1hZ2UoKSBjb25zdAogewogICAgIGlmICghc3RkOjpo
b2xkc19hbHRlcm5hdGl2ZTxSZWY8SW1hZ2VCdWZmZXI+PihtX2ltYWdlVmFyaWFudCkpCiAgICAg
ICAgIHJldHVybiBuYXRpdmVJbWFnZUlmRXhpc3RzKCk7CiAKLSAgICBhdXRvIGltYWdlQnVmZmVy
ID0gc3RkOjpnZXQ8UmVmPEltYWdlQnVmZmVyPj4obV9pbWFnZVZhcmlhbnQpOwotICAgIGF1dG8g
bmF0aXZlSW1hZ2UgPSBJbWFnZUJ1ZmZlcjo6c2lua0ludG9OYXRpdmVJbWFnZShXVEZNb3ZlKGlt
YWdlQnVmZmVyKSk7Ci0gICAgaWYgKCFuYXRpdmVJbWFnZSkKLSAgICAgICAgcmV0dXJuIG51bGxw
dHI7CisgICAgaWYgKCFtX3RyYW5zZm9ybWVkSW1hZ2VWYXJpYW50KSB7CisgICAgICAgIGF1dG8g
aW1hZ2VCdWZmZXIgPSBzdGQ6OmdldDxSZWY8SW1hZ2VCdWZmZXI+PihtX2ltYWdlVmFyaWFudCk7
CisKKyAgICAgICAgYXV0byBuYXRpdmVJbWFnZSA9IGltYWdlQnVmZmVyLT5jb3B5TmF0aXZlSW1h
Z2UoRG9udENvcHlCYWNraW5nU3RvcmUpOworICAgICAgICBpZiAoIW5hdGl2ZUltYWdlKQorICAg
ICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICByZXR1cm4gbmF0aXZlSW1hZ2U7CisgICAg
ICAgIG1fdHJhbnNmb3JtZWRJbWFnZVZhcmlhbnQgPSB7IG5hdGl2ZUltYWdlLnJlbGVhc2VOb25O
dWxsKCkgfTsKKyAgICB9CisKKyAgICBBU1NFUlQobV90cmFuc2Zvcm1lZEltYWdlVmFyaWFudCk7
CisgICAgcmV0dXJuIG5hdGl2ZUltYWdlT2YoKm1fdHJhbnNmb3JtZWRJbWFnZVZhcmlhbnQpOwog
fQogCi1JbWFnZUJ1ZmZlciogU291cmNlSW1hZ2U6OmltYWdlQnVmZmVySWZFeGlzdHMoKSBjb25z
dAorc3RhdGljIGlubGluZSBJbWFnZUJ1ZmZlciogaW1hZ2VCdWZmZXJPZihjb25zdCBTb3VyY2VJ
bWFnZTo6SW1hZ2VWYXJpYW50JiBpbWFnZVZhcmlhbnQpCiB7Ci0gICAgaWYgKGF1dG8qIGltYWdl
QnVmZmVyID0gc3RkOjpnZXRfaWY8UmVmPEltYWdlQnVmZmVyPj4oJm1faW1hZ2VWYXJpYW50KSkK
KyAgICBpZiAoYXV0byogaW1hZ2VCdWZmZXIgPSBzdGQ6OmdldF9pZjxSZWY8SW1hZ2VCdWZmZXI+
PigmaW1hZ2VWYXJpYW50KSkKICAgICAgICAgcmV0dXJuIGltYWdlQnVmZmVyLT5wdHIoKTsKICAg
ICByZXR1cm4gbnVsbHB0cjsKIH0KIAotUmVmUHRyPEltYWdlQnVmZmVyPiBTb3VyY2VJbWFnZTo6
aW1hZ2VCdWZmZXIoKSBjb25zdAorSW1hZ2VCdWZmZXIqIFNvdXJjZUltYWdlOjppbWFnZUJ1ZmZl
cklmRXhpc3RzKCkgY29uc3QKK3sKKyAgICByZXR1cm4gaW1hZ2VCdWZmZXJPZihtX2ltYWdlVmFy
aWFudCk7Cit9CisKK0ltYWdlQnVmZmVyKiBTb3VyY2VJbWFnZTo6aW1hZ2VCdWZmZXIoKSBjb25z
dAogewogICAgIGlmICghc3RkOjpob2xkc19hbHRlcm5hdGl2ZTxSZWY8TmF0aXZlSW1hZ2U+Piht
X2ltYWdlVmFyaWFudCkpCiAgICAgICAgIHJldHVybiBpbWFnZUJ1ZmZlcklmRXhpc3RzKCk7CiAK
LSAgICBhdXRvIG5hdGl2ZUltYWdlID0gc3RkOjpnZXQ8UmVmPE5hdGl2ZUltYWdlPj4obV9pbWFn
ZVZhcmlhbnQpOwotICAgIGF1dG8gcmVjdCA9IEZsb2F0UmVjdCB7IHsgfSwgbmF0aXZlSW1hZ2Ut
PnNpemUoKSB9OworICAgIGlmICghbV90cmFuc2Zvcm1lZEltYWdlVmFyaWFudCkgeworICAgICAg
ICBhdXRvIG5hdGl2ZUltYWdlID0gc3RkOjpnZXQ8UmVmPE5hdGl2ZUltYWdlPj4obV9pbWFnZVZh
cmlhbnQpOwogCi0gICAgYXV0byBpbWFnZUJ1ZmZlciA9IEltYWdlQnVmZmVyOjpjcmVhdGUobmF0
aXZlSW1hZ2UtPnNpemUoKSwgUmVuZGVyaW5nTW9kZTo6VW5hY2NlbGVyYXRlZCwgMSwgRGVzdGlu
YXRpb25Db2xvclNwYWNlOjpTUkdCKCksIFBpeGVsRm9ybWF0OjpCR1JBOCk7Ci0gICAgaWYgKCFp
bWFnZUJ1ZmZlcikKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIGF1dG8gcmVjdCA9
IEZsb2F0UmVjdCB7IHsgfSwgbmF0aXZlSW1hZ2UtPnNpemUoKSB9OworICAgICAgICBhdXRvIGlt
YWdlQnVmZmVyID0gSW1hZ2VCdWZmZXI6OmNyZWF0ZShuYXRpdmVJbWFnZS0+c2l6ZSgpLCBSZW5k
ZXJpbmdNb2RlOjpVbmFjY2VsZXJhdGVkLCAxLCBEZXN0aW5hdGlvbkNvbG9yU3BhY2U6OlNSR0Io
KSwgUGl4ZWxGb3JtYXQ6OkJHUkE4KTsKKyAgICAgICAgaWYgKCFpbWFnZUJ1ZmZlcikKKyAgICAg
ICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgaW1hZ2VCdWZmZXItPmNvbnRleHQoKS5kcmF3
TmF0aXZlSW1hZ2UobmF0aXZlSW1hZ2UsIHJlY3Quc2l6ZSgpLCByZWN0LCByZWN0KTsKKyAgICAg
ICAgaW1hZ2VCdWZmZXItPmNvbnRleHQoKS5kcmF3TmF0aXZlSW1hZ2UobmF0aXZlSW1hZ2UsIHJl
Y3Quc2l6ZSgpLCByZWN0LCByZWN0KTsKKyAgICAgICAgbV90cmFuc2Zvcm1lZEltYWdlVmFyaWFu
dCA9IHsgaW1hZ2VCdWZmZXIucmVsZWFzZU5vbk51bGwoKSB9OworICAgIH0KIAotICAgIHJldHVy
biBpbWFnZUJ1ZmZlcjsKKyAgICBBU1NFUlQobV90cmFuc2Zvcm1lZEltYWdlVmFyaWFudCk7Cisg
ICAgcmV0dXJuIGltYWdlQnVmZmVyT2YoKm1fdHJhbnNmb3JtZWRJbWFnZVZhcmlhbnQpOwogfQog
CiBSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgU291cmNlSW1hZ2U6OmltYWdlSWRlbnRpZmll
cigpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9T
b3VyY2VJbWFnZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU291cmNlSW1h
Z2UuaAppbmRleCBmOWMzNGFiZGI5YjdhNjg2OTVkMTdhZjg0MDRhNTkyZDU2NGNlODMxLi42NDYw
MjAzMzA2MjNlYTJlOTg3NGI5NTA1ZGRlM2VkNjg3MzVkYTYwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Tb3VyY2VJbWFnZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL1NvdXJjZUltYWdlLmgKQEAgLTQyLDEwICs0MiwxMCBAQCBw
dWJsaWM6CiAgICAgU291cmNlSW1hZ2UoSW1hZ2VWYXJpYW50JiYpOwogCiAgICAgTmF0aXZlSW1h
Z2UqIG5hdGl2ZUltYWdlSWZFeGlzdHMoKSBjb25zdDsKLSAgICBSZWZQdHI8TmF0aXZlSW1hZ2U+
IG5hdGl2ZUltYWdlKCkgY29uc3Q7CisgICAgTmF0aXZlSW1hZ2UqIG5hdGl2ZUltYWdlKCkgY29u
c3Q7CiAKICAgICBJbWFnZUJ1ZmZlciogaW1hZ2VCdWZmZXJJZkV4aXN0cygpIGNvbnN0OwotICAg
IFJlZlB0cjxJbWFnZUJ1ZmZlcj4gaW1hZ2VCdWZmZXIoKSBjb25zdDsKKyAgICBJbWFnZUJ1ZmZl
ciogaW1hZ2VCdWZmZXIoKSBjb25zdDsKIAogICAgIFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmll
ciBpbWFnZUlkZW50aWZpZXIoKSBjb25zdDsKICAgICBJbnRTaXplIHNpemUoKSBjb25zdDsKQEAg
LTU1LDYgKzU1LDcgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIEltYWdlVmFyaWFudCBtX2lt
YWdlVmFyaWFudDsKKyAgICBtdXRhYmxlIHN0ZDo6b3B0aW9uYWw8SW1hZ2VWYXJpYW50PiBtX3Ry
YW5zZm9ybWVkSW1hZ2VWYXJpYW50OwogfTsKIAogdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpp
bmRleCA1MWI0NjU5YWMyYTFlODIxYTZjMWZiZGFlYWFkNTExNTQ5ZmI0MTdhLi5jMDEwYWI5OTc5
YjU4ZGFjZDQ5Mjk5MTg3NTg2Y2M4ODQwNzcxNjU1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIw
MjItMDItMDIgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2FpZEBhcHBsZS5jb20+CisKKyAgICAgICAg
UkVHUkVTU0lPTihyMjg4ODY1KTogU291cmNlSW1hZ2Ugc2hvdWxkIG5ldmVyIHNpbmsgaXRzIElt
YWdlQnVmZmVyIHRvIGEgTmF0aXZlSW1hZ2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIzNjAwNQorCisgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEZy
YXNlci4KKworICAgICAgICAqIHN2Zy9jdXN0b20vcGF0dGVybi1tdWx0aXBsZS1yZWZlcmVuY2lu
Zy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHN2Zy9jdXN0b20vcGF0dGVybi1tdWx0
aXBsZS1yZWZlcmVuY2luZy5odG1sOiBBZGRlZC4KKwogMjAyMi0wMi0wMiAgUGF0cmljayBHcmlm
ZmlzICA8cGdyaWZmaXNAaWdhbGlhLmNvbT4KIAogICAgICAgICBXUFQ6IEltcG9ydCBXZWJBc3Nl
bWJseSBDU1AgdGVzdHMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N2Zy9jdXN0b20vcGF0dGVy
bi1tdWx0aXBsZS1yZWZlcmVuY2luZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdmcvY3Vz
dG9tL3BhdHRlcm4tbXVsdGlwbGUtcmVmZXJlbmNpbmctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjQ0MzExZjgyYmQxMDg4YTZkZjJhNjYzYjYxZTc2MDI0M2RhMDM0ZjcKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9zdmcvY3VzdG9tL3BhdHRlcm4tbXVsdGlwbGUtcmVmZXJlbmNpbmct
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorVGhpcyB0ZXN0IHBhc3NlcyBpZiBpdCBkb2Vz
bid0IGNyYXNoLgorCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N2Zy9jdXN0b20vcGF0dGVy
bi1tdWx0aXBsZS1yZWZlcmVuY2luZy5odG1sIGIvTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9wYXR0
ZXJuLW11bHRpcGxlLXJlZmVyZW5jaW5nLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGE3NmUyNmNmYWQzOTg1
NDUzNjg0M2NiMDNlZTdmYTNmNWY0MGJmOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L3N2Zy9jdXN0b20vcGF0dGVybi1tdWx0aXBsZS1yZWZlcmVuY2luZy5odG1sCkBAIC0wLDAgKzEs
MTcgQEAKKzxib2R5PgorICAgIDxwPlRoaXMgdGVzdCBwYXNzZXMgaWYgaXQgZG9lc24ndCBjcmFz
aC48L3A+CisgICAgPHN2ZyB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCI+CisgICAgICAgIDxkZWZz
PgorICAgICAgICAgICAgPHBhdHRlcm4gaWQ9InBhdHRlcm4iIHg9IjAiIHk9IjAiIHdpZHRoPSIx
IiBoZWlnaHQ9IjEiPgorICAgICAgICAgICAgICAgIDxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSI1
MCIgaGVpZ2h0PSIxMDAiIGZpbGw9ImdyZWVuIi8+CisgICAgICAgICAgICAgICAgPHJlY3QgeD0i
NTAiIHk9IjAiIHdpZHRoPSI1MCIgaGVpZ2h0PSIxMDAiIGZpbGw9ImJsdWUiLz4KKyAgICAgICAg
ICAgIDwvcGF0dGVybj4KKyAgICAgICAgPC9kZWZzPgorICAgICAgICA8cmVjdCB3aWR0aD0iMTAw
IiBoZWlnaHQ9IjEwMCIgZmlsbD0idXJsKCNwYXR0ZXJuKSIgc3Ryb2tlPSJibGFjayIvPgorICAg
ICAgICA8cmVjdCB4PSIxMDAiIHk9IjEwMCIgd2lkdGg9IjEwMCIgaGVpZ2h0PSIxMDAiIGZpbGw9
InVybCgjcGF0dGVybikiIHN0cm9rZT0iYmxhY2siLz4KKyAgICA8L3N2Zz4KKyAgICA8c2NyaXB0
PgorICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICB0ZXN0UnVubmVy
LmR1bXBBc1RleHQoKQorICAgIDwvc2NyaXB0PgorPC9ib2R5Pgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>