<?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>235305</bug_id>
          
          <creation_ts>2022-01-17 16:41:12 -0800</creation_ts>
          <short_desc>[GPU Process] ImageBuffer::convertToLuminanceMask() and transformToColorSpace() should not access the backend in WebProcess</short_desc>
          <delta_ts>2022-02-11 13:26:58 -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>
          
          
          <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>
          
          <blocked>236508</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Said Abou-Hallawa">sabouhallawa</reporter>
          <assigned_to name="Said Abou-Hallawa">sabouhallawa</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>sam</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>1831584</commentid>
    <comment_count>0</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2022-01-17 16:41:12 -0800</bug_when>
    <thetext>When DOM rendering is handled in GPU Process, no backend access will be allowed. So all the operations that require access to the backend should be handled in GPU Process. The WebProcess will stream messages for these operations to GPUProcess.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1831585</commentid>
    <comment_count>1</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2022-01-17 16:41:38 -0800</bug_when>
    <thetext>rdar://83437815</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1831586</commentid>
    <comment_count>2</comment_count>
      <attachid>449354</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2022-01-17 16:44:59 -0800</bug_when>
    <thetext>Created attachment 449354
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1831589</commentid>
    <comment_count>3</comment_count>
      <attachid>449354</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2022-01-17 16:57:16 -0800</bug_when>
    <thetext>Comment on attachment 449354
Patch

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

&gt; Source/WebCore/platform/graphics/displaylists/DisplayListRecorder.h:64
&gt; +    virtual void transformToColorSpace(const DestinationColorSpace&amp;) = 0;

Is transformToColorSpace to ever used? It doesn&apos;t make a lot (any?) sense in the way ImageBuffer works since it ImageBuffers have color spaces already.

&gt; Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferProxy.h:265
&gt; +        m_remoteDisplayList.convertToLuminanceMask();

Why does this call convertToLuminanceMask() as well?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1831594</commentid>
    <comment_count>4</comment_count>
      <attachid>449354</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2022-01-17 17:15:06 -0800</bug_when>
    <thetext>Comment on attachment 449354
Patch

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

&gt;&gt; Source/WebCore/platform/graphics/displaylists/DisplayListRecorder.h:64
&gt;&gt; +    virtual void transformToColorSpace(const DestinationColorSpace&amp;) = 0;
&gt; 
&gt; Is transformToColorSpace to ever used? It doesn&apos;t make a lot (any?) sense in the way ImageBuffer works since it ImageBuffers have color spaces already.

transformToColorSpace() is implemented for the Cairo port in ImageBufferCairoBackend::transformToColorSpace(). The call to this function in WebCore is not guarded by #if USE(CAIRO). For other ports, we fall back to the default implementation in ImageBufferBackend which is just an empty function.

&gt;&gt; Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferProxy.h:265
&gt;&gt; +        m_remoteDisplayList.convertToLuminanceMask();
&gt; 
&gt; Why does this call convertToLuminanceMask() as well?

Copy/Paste mistake. Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1831595</commentid>
    <comment_count>5</comment_count>
      <attachid>449357</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2022-01-17 17:15:22 -0800</bug_when>
    <thetext>Created attachment 449357
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1831749</commentid>
    <comment_count>6</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2022-01-18 11:30:05 -0800</bug_when>
    <thetext>(In reply to Said Abou-Hallawa from comment #4)
&gt; Comment on attachment 449354 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=449354&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebCore/platform/graphics/displaylists/DisplayListRecorder.h:64
&gt; &gt;&gt; +    virtual void transformToColorSpace(const DestinationColorSpace&amp;) = 0;
&gt; &gt; 
&gt; &gt; Is transformToColorSpace to ever used? It doesn&apos;t make a lot (any?) sense in the way ImageBuffer works since it ImageBuffers have color spaces already.
&gt; 
&gt; transformToColorSpace() is implemented for the Cairo port in
&gt; ImageBufferCairoBackend::transformToColorSpace(). The call to this function
&gt; in WebCore is not guarded by #if USE(CAIRO). For other ports, we fall back
&gt; to the default implementation in ImageBufferBackend which is just an empty
&gt; function.

Ah. Seems like we should figure out what they are trying to accomplish with it and remove it since it makes no sense. Probably makes more sense to create a new ImageBuffer from an existing one with some per-pixel transform or just implement it for them in terms of getPixelData/setPixelData.

&gt; 
&gt; &gt;&gt; Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferProxy.h:265
&gt; &gt;&gt; +        m_remoteDisplayList.convertToLuminanceMask();
&gt; &gt; 
&gt; &gt; Why does this call convertToLuminanceMask() as well?
&gt; 
&gt; Copy/Paste mistake. Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1831751</commentid>
    <comment_count>7</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2022-01-18 11:35:22 -0800</bug_when>
    <thetext>(In reply to Sam Weinig from comment #6)
&gt; (In reply to Said Abou-Hallawa from comment #4)
&gt; &gt; Comment on attachment 449354 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=449354&amp;action=review
&gt; &gt; 
&gt; &gt; &gt;&gt; Source/WebCore/platform/graphics/displaylists/DisplayListRecorder.h:64
&gt; &gt; &gt;&gt; +    virtual void transformToColorSpace(const DestinationColorSpace&amp;) = 0;
&gt; &gt; &gt; 
&gt; &gt; &gt; Is transformToColorSpace to ever used? It doesn&apos;t make a lot (any?) sense in the way ImageBuffer works since it ImageBuffers have color spaces already.
&gt; &gt; 
&gt; &gt; transformToColorSpace() is implemented for the Cairo port in
&gt; &gt; ImageBufferCairoBackend::transformToColorSpace(). The call to this function
&gt; &gt; in WebCore is not guarded by #if USE(CAIRO). For other ports, we fall back
&gt; &gt; to the default implementation in ImageBufferBackend which is just an empty
&gt; &gt; function.
&gt; 
&gt; Ah. Seems like we should figure out what they are trying to accomplish with
&gt; it and remove it since it makes no sense. Probably makes more sense to
&gt; create a new ImageBuffer from an existing one with some per-pixel transform
&gt; or just implement it for them in terms of getPixelData/setPixelData.

And by makes no sense I mean, doesn&apos;t match the semantics of ImageBuffer (though if they are depending on drawing into an sRGB image buffer and then converting all the pixels to linear-sRGB being the same as drawing into a linear-sRGB buffer I don&apos;t think they will be as the blending will be different.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1832211</commentid>
    <comment_count>8</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-01-19 13:39:35 -0800</bug_when>
    <thetext>Committed r288240 (246194@main): &lt;https://commits.webkit.org/246194@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 449357.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>449354</attachid>
            <date>2022-01-17 16:44:59 -0800</date>
            <delta_ts>2022-01-17 17:15:19 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-235305-20220117164458.patch</filename>
            <type>text/plain</type>
            <size>10847</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg4MDcyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTAwMzRkZDMyNzRhYjIx
MWZiYWI5NTQ2ZGI1NmQ3MDUzN2U3ZjMwZS4uOWE0MDQ4ZjgwYzRkZGUyZjJlZTg0MjU4NTZjMWRm
NWE3MGFjODRjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDIyLTAxLTE3ICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgorCisgICAgICAgIFtHUFUgUHJvY2Vzc10g
SW1hZ2VCdWZmZXI6OmNvbnZlcnRUb0x1bWluYW5jZU1hc2soKSBhbmQgdHJhbnNmb3JtVG9Db2xv
clNwYWNlKCkgc2hvdWxkIG5vdCBhY2Nlc3MgdGhlIGJhY2tlbmQgaW4gV2ViUHJvY2VzcworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM1MzA1CisgICAg
ICAgIHJkYXI6Ly84MzQzNzgxNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFdoZW4gRE9NIHJlbmRlcmluZyBpcyBoYW5kbGVkIGluIEdQVSBQcm9jZXNz
LCBubyBiYWNrZW5kIGFjY2VzcyB3aWxsIGJlIAorICAgICAgICBhbGxvd2VkLiBTbyBhbGwgdGhl
IG9wZXJhdGlvbnMgdGhhdCByZXF1aXJlIGFjY2VzcyB0byB0aGUgYmFja2VuZCBzaG91bGQKKyAg
ICAgICAgYmUgaGFuZGxlZCBpbiBHUFUgUHJvY2Vzcy4gVGhlIFdlYlByb2Nlc3Mgd2lsbCBzdHJl
YW0gbWVzc2FnZXMgZm9yIHRoZXNlCisgICAgICAgIG9wZXJhdGlvbnMgdG8gR1BVUHJvY2Vzcy4K
KworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJl
Y29yZGVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3Bs
YXlMaXN0UmVjb3JkZXJJbXBsLmg6CisKIDIwMjItMDEtMTUgIFNhbSBXZWluaWcgIDx3ZWluaWdA
YXBwbGUuY29tPgogCiAgICAgICAgIENTUyBHcmFkaWVudHM6IGludGVycG9sYXRpb24gbW9kZSBz
aG91bGQgZGVmYXVsdCB0byBPS0xhYiBpZiBhbnkgbm9uLWxlZ2FjeSBjb2xvciBzeW50YXggY29s
b3JzIGFyZSB1c2VkIGluIHRoZSBzdG9wcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCAwYjI0OTMyNmJmMGViNzY1ZjU0
MzNmYmU0Yjk5YmRhZGRkMzIzZmYxLi42OGJkNTQyYjU2MjE0NWUzYWJjYmRiZmU4YmI3NWNmYWNk
ODZkYWQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDIyLTAxLTE3ICBTYWlkIEFib3Ut
SGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgorCisgICAgICAgIFtHUFUgUHJvY2Vzc10gSW1hZ2VC
dWZmZXI6OmNvbnZlcnRUb0x1bWluYW5jZU1hc2soKSBhbmQgdHJhbnNmb3JtVG9Db2xvclNwYWNl
KCkgc2hvdWxkIG5vdCBhY2Nlc3MgdGhlIGJhY2tlbmQgaW4gV2ViUHJvY2VzcworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM1MzA1CisgICAgICAgIHJk
YXI6Ly84MzQzNzgxNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6Y29udmVydFRv
THVtaW5hbmNlTWFzayk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3Jk
ZXI6OnRyYW5zZm9ybVRvQ29sb3JTcGFjZSk6CisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGlj
cy9SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyLmg6CisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFw
aGljcy9SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdl
YlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6Y29udmVy
dFRvTHVtaW5hbmNlTWFzayk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVj
b3JkZXJQcm94eTo6dHJhbnNmb3JtVG9Db2xvclNwYWNlKToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L0dQVS9ncmFwaGljcy9SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHkuaDoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlclByb3h5Lmg6CisKIDIw
MjItMDEtMTUgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBJbnRy
b2R1Y2UgZHluYW1pY0Rvd25jYXN0PD4oKSBmb3IgY29udmVuaWVuY2UKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJl
Y29yZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMv
RGlzcGxheUxpc3RSZWNvcmRlci5oCmluZGV4IDk0OGY3ODZiYmZkOTI3ZmNiY2ZhZTVjNjA3MTgz
ZDU0NmQ3NjFkM2YuLjdjZWY5ZTZiMDE3YmM5NTFjOTM1ZDBmODczMGFmYjYzYWYwYTJhMjUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9E
aXNwbGF5TGlzdFJlY29yZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuaApAQCAtNjAsNiArNjAsOCBAQCBw
dWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgZ2V0UGl4ZWxCdWZmZXIoY29uc3QgUGl4ZWxCdWZm
ZXJGb3JtYXQmIG91dHB1dEZvcm1hdCwgY29uc3QgSW50UmVjdCYgc291cmNlUmVjdCkgPSAwOwog
ICAgIHZpcnR1YWwgdm9pZCBwdXRQaXhlbEJ1ZmZlcihjb25zdCBQaXhlbEJ1ZmZlciYsIGNvbnN0
IEludFJlY3QmIHNyY1JlY3QsIGNvbnN0IEludFBvaW50JiBkZXN0UG9pbnQsIEFscGhhUHJlbXVs
dGlwbGljYXRpb24gZGVzdEZvcm1hdCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBjb252ZXJ0VG9M
dW1pbmFuY2VNYXNrKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCB0cmFuc2Zvcm1Ub0NvbG9yU3Bh
Y2UoY29uc3QgRGVzdGluYXRpb25Db2xvclNwYWNlJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBm
bHVzaENvbnRleHQoR3JhcGhpY3NDb250ZXh0Rmx1c2hJZGVudGlmaWVyKSA9IDA7CiAKIHByb3Rl
Y3RlZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3Bs
YXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVySW1wbC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXJJbXBsLmgKaW5kZXgg
MjllNzI3NGYxNzVkYThhNjI3OTMzOGVkZTM0ODM0MmIyZTg1NTRhNC4uZDRkMGI3NTdlZGQyOWNk
YWYwZDU2M2NlNmVjY2UwYjVlMTQ1ZjQzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXJJbXBsLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlM
aXN0UmVjb3JkZXJJbXBsLmgKQEAgLTU0LDggKzU0LDEwIEBAIHB1YmxpYzoKICAgICAgICAgdmly
dHVhbCBSZW5kZXJpbmdNb2RlIHJlbmRlcmluZ01vZGUoKSBjb25zdCB7IHJldHVybiBSZW5kZXJp
bmdNb2RlOjpVbmFjY2VsZXJhdGVkOyB9CiAgICAgfTsKIAotICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgZ2V0UGl4ZWxCdWZmZXIoY29uc3QgUGl4ZWxCdWZmZXJGb3JtYXQmIG91dHB1dEZvcm1hdCwg
Y29uc3QgSW50UmVjdCYgc291cmNlUmVjdCkgZmluYWw7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBwdXRQaXhlbEJ1ZmZlcihjb25zdCBQaXhlbEJ1ZmZlciYsIGNvbnN0IEludFJlY3QmIHNyY1Jl
Y3QsIGNvbnN0IEludFBvaW50JiBkZXN0UG9pbnQsIEFscGhhUHJlbXVsdGlwbGljYXRpb24gZGVz
dEZvcm1hdCkgZmluYWw7CisgICAgdm9pZCBnZXRQaXhlbEJ1ZmZlcihjb25zdCBQaXhlbEJ1ZmZl
ckZvcm1hdCYgb3V0cHV0Rm9ybWF0LCBjb25zdCBJbnRSZWN0JiBzb3VyY2VSZWN0KSBmaW5hbDsK
KyAgICB2b2lkIHB1dFBpeGVsQnVmZmVyKGNvbnN0IFBpeGVsQnVmZmVyJiwgY29uc3QgSW50UmVj
dCYgc3JjUmVjdCwgY29uc3QgSW50UG9pbnQmIGRlc3RQb2ludCwgQWxwaGFQcmVtdWx0aXBsaWNh
dGlvbiBkZXN0Rm9ybWF0KSBmaW5hbDsKKyAgICB2b2lkIGNvbnZlcnRUb0x1bWluYW5jZU1hc2so
KSBmaW5hbCB7IH0KKyAgICB2b2lkIHRyYW5zZm9ybVRvQ29sb3JTcGFjZShjb25zdCBEZXN0aW5h
dGlvbkNvbG9yU3BhY2UmKSBmaW5hbCB7IH0KICAgICB2b2lkIGZsdXNoQ29udGV4dChHcmFwaGlj
c0NvbnRleHRGbHVzaElkZW50aWZpZXIgaWRlbnRpZmllcikgZmluYWwgeyBhcHBlbmQ8Rmx1c2hD
b250ZXh0PihpZGVudGlmaWVyKTsgfQogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXIuY3BwIGIv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVjb3Jk
ZXIuY3BwCmluZGV4IGMyNjdhN2NkMmE4NTQyZTg2ZjFiZGY4MWIzMzk5YWU1YjZkNTY0ZTEuLjU3
N2JiZjMzYjIwZmRmNTc1MWJhNzU0MjQzNTZhNDNmYzA3M2JjMTQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlRGlzcGxheUxp
c3RSZWNvcmRlci5jcHAKQEAgLTQ1OSw2ICs0NTksMTYgQEAgdm9pZCBSZW1vdGVEaXNwbGF5TGlz
dFJlY29yZGVyOjpwdXRQaXhlbEJ1ZmZlcihjb25zdCBJbnRSZWN0JiBzcmNSZWN0LCBjb25zdCBJ
bnQKICAgICBtX2ltYWdlQnVmZmVyLT5wdXRQaXhlbEJ1ZmZlcihwaXhlbEJ1ZmZlciwgc3JjUmVj
dCwgZGVzdFBvaW50LCBkZXN0Rm9ybWF0KTsKIH0KIAordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJl
Y29yZGVyOjpjb252ZXJ0VG9MdW1pbmFuY2VNYXNrKCkKK3sKKyAgICBtX2ltYWdlQnVmZmVyLT5j
b252ZXJ0VG9MdW1pbmFuY2VNYXNrKCk7Cit9CisKK3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNv
cmRlcjo6dHJhbnNmb3JtVG9Db2xvclNwYWNlKGNvbnN0IFdlYkNvcmU6OkRlc3RpbmF0aW9uQ29s
b3JTcGFjZSYgY29sb3JTcGFjZSkKK3sKKyAgICBtX2ltYWdlQnVmZmVyLT50cmFuc2Zvcm1Ub0Nv
bG9yU3BhY2UoY29sb3JTcGFjZSk7Cit9CisKIHZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRl
cjo6cGFpbnRGcmFtZUZvck1lZGlhKE1lZGlhUGxheWVySWRlbnRpZmllciBpZGVudGlmaWVyLCBj
b25zdCBGbG9hdFJlY3QmIGRlc3RpbmF0aW9uKQogewogICAgIG1fcmVuZGVyaW5nQmFja2VuZC0+
cGVyZm9ybVdpdGhNZWRpYVBsYXllck9uTWFpblRocmVhZChpZGVudGlmaWVyLCBbaW1hZ2VCdWZm
ZXIgPSBSZWZQdHIgeyBtX2ltYWdlQnVmZmVyLmdldCgpIH0sIGRlc3RpbmF0aW9uXShNZWRpYVBs
YXllciYgcGxheWVyKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3Jh
cGhpY3MvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlci5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXIuaAppbmRleCA2OTZkNmNiMTYy
NzY5OTBlYjRlYzA3ODJjNDBkM2Q3YjBhODA5NjFiLi5lMTY4ZTVhZWEyMTRhODMwMGI0MTM0MTdm
ODk4NWI0ZDkxZDM0ZjllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3Jh
cGhpY3MvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyLmgKQEAgLTExMSw2ICsx
MTEsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBmaWxsRWxsaXBzZShjb25zdCBXZWJDb3JlOjpGbG9h
dFJlY3QmKTsKICAgICB2b2lkIGdldFBpeGVsQnVmZmVyKGNvbnN0IFdlYkNvcmU6OkludFJlY3Qm
IHNyY1JlY3QsIGNvbnN0IFdlYkNvcmU6OlBpeGVsQnVmZmVyRm9ybWF0JiBvdXRwdXRGb3JtYXQp
OwogICAgIHZvaWQgcHV0UGl4ZWxCdWZmZXIoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgc3JjUmVj
dCwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGRlc3RQb2ludCwgY29uc3QgV2ViQ29yZTo6UGl4
ZWxCdWZmZXImLCBXZWJDb3JlOjpBbHBoYVByZW11bHRpcGxpY2F0aW9uIGRlc3RGb3JtYXQpOwor
ICAgIHZvaWQgY29udmVydFRvTHVtaW5hbmNlTWFzaygpOworICAgIHZvaWQgdHJhbnNmb3JtVG9D
b2xvclNwYWNlKGNvbnN0IFdlYkNvcmU6OkRlc3RpbmF0aW9uQ29sb3JTcGFjZSYpOwogICAgIHZv
aWQgcGFpbnRGcmFtZUZvck1lZGlhKFdlYkNvcmU6Ok1lZGlhUGxheWVySWRlbnRpZmllciwgY29u
c3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBkZXN0aW5hdGlvbik7CiAgICAgdm9pZCBzdHJva2VSZWN0
KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYsIGZsb2F0IGxpbmVXaWR0aCk7CiAjaWYgRU5BQkxF
KElOTElORV9QQVRIX0RBVEEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
Z3JhcGhpY3MvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyLm1lc3Nh
Z2VzLmluCmluZGV4IDA5YzQwOTdkZWJlYjM0MzFjOGVmMjg0NGU3YWY5NTJmNDg1ZWFjOTIuLmUy
M2VhY2NhNTcyZjc1ZjcxNTEyMmRhNjM2ZjMzMTBjNjk4NWE3NjQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyLm1l
c3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVE
aXNwbGF5TGlzdFJlY29yZGVyLm1lc3NhZ2VzLmluCkBAIC03Nyw2ICs3Nyw4IEBAIG1lc3NhZ2Vz
IC0+IFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXIgTm90UmVmQ291bnRlZCBTdHJlYW0gewogICAg
IEZpbGxFbGxpcHNlKFdlYkNvcmU6OkZsb2F0UmVjdCByZWN0KQogICAgIEdldFBpeGVsQnVmZmVy
KFdlYkNvcmU6OkludFJlY3Qgc3JjUmVjdCwgc3RydWN0IFdlYkNvcmU6OlBpeGVsQnVmZmVyRm9y
bWF0IG91dHB1dEZvcm1hdCkKICAgICBQdXRQaXhlbEJ1ZmZlcihXZWJDb3JlOjpJbnRSZWN0IHNy
Y1JlY3QsIFdlYkNvcmU6OkludFBvaW50IGRlc3RQb2ludCwgV2ViQ29yZTo6UGl4ZWxCdWZmZXIg
cGl4ZWxCdWZmZXIsIGVudW06dWludDhfdCBXZWJDb3JlOjpBbHBoYVByZW11bHRpcGxpY2F0aW9u
IGRlc3RGb3JtYXQpCisgICAgQ29udmVydFRvTHVtaW5hbmNlTWFzaygpCisgICAgVHJhbnNmb3Jt
VG9Db2xvclNwYWNlKFdlYkNvcmU6OkRlc3RpbmF0aW9uQ29sb3JTcGFjZSBjb2xvclNwYWNlKQog
ICAgIFBhaW50RnJhbWVGb3JNZWRpYShXZWJDb3JlOjpNZWRpYVBsYXllcklkZW50aWZpZXIgaWRl
bnRpZmllciwgV2ViQ29yZTo6RmxvYXRSZWN0IGRlc3RpbmF0aW9uKQogICAgIFN0cm9rZVJlY3Qo
V2ViQ29yZTo6RmxvYXRSZWN0IHJlY3QsIGZsb2F0IGxpbmVXaWR0aCkKICNpZiBFTkFCTEUoSU5M
SU5FX1BBVEhfREFUQSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
Z3JhcGhpY3MvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5
LmNwcAppbmRleCAzMmEzNDJkYmZiZGZhN2YwYzM5YmM2MzZhNDc5MjAzMWFlMTc3NDA4Li40YTMx
NzJjZmRiMjY4OGMwY2EyMmNiMjczZDU1YmFiYzVlYjViNWU4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQ
cm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1v
dGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHkuY3BwCkBAIC03MCw2ICs3MCwxNiBAQCB2b2lkIFJl
bW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cHV0UGl4ZWxCdWZmZXIoY29uc3QgUGl4ZWxC
dWZmZXImIHBpeGVsQnVmZgogICAgIHNlbmQoTWVzc2FnZXM6OlJlbW90ZURpc3BsYXlMaXN0UmVj
b3JkZXI6OlB1dFBpeGVsQnVmZmVyKHNyY1JlY3QsIGRlc3RQb2ludCwgcGl4ZWxCdWZmZXIsIGRl
c3RGb3JtYXQpKTsKIH0KIAordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OmNv
bnZlcnRUb0x1bWluYW5jZU1hc2soKQoreworICAgIHNlbmQoTWVzc2FnZXM6OlJlbW90ZURpc3Bs
YXlMaXN0UmVjb3JkZXI6OkNvbnZlcnRUb0x1bWluYW5jZU1hc2soKSk7Cit9CisKK3ZvaWQgUmVt
b3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5Ojp0cmFuc2Zvcm1Ub0NvbG9yU3BhY2UoY29uc3Qg
V2ViQ29yZTo6RGVzdGluYXRpb25Db2xvclNwYWNlJiBjb2xvclNwYWNlKQoreworICAgIHNlbmQo
TWVzc2FnZXM6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OlRyYW5zZm9ybVRvQ29sb3JTcGFj
ZShjb2xvclNwYWNlKSk7Cit9CisKIGJvb2wgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5
OjpjYW5EcmF3SW1hZ2VCdWZmZXIoY29uc3QgSW1hZ2VCdWZmZXImIGltYWdlQnVmZmVyKSBjb25z
dAogewogICAgIHJldHVybiBtX3JlbmRlcmluZ0JhY2tlbmQgJiYgbV9yZW5kZXJpbmdCYWNrZW5k
LT5pc0NhY2hlZChpbWFnZUJ1ZmZlcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eS5oIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVEaXNwbGF5TGlzdFJlY29y
ZGVyUHJveHkuaAppbmRleCA2Zjc4MDlkNWVlZTMwMmQyMjE5MzZjYTA1M2I4NzM5NGNiYTQ3ZTUz
Li5jMjc1MzdiMmJjOWY0ZmNiMTE3ZTk2ZDY2NjBjMjc2YzIxZTRjYTFmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVj
b3JkZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3Mv
UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5LmgKQEAgLTQ5LDYgKzQ5LDggQEAgcHVibGlj
OgogCiAgICAgdm9pZCBnZXRQaXhlbEJ1ZmZlcihjb25zdCBXZWJDb3JlOjpQaXhlbEJ1ZmZlckZv
cm1hdCYgb3V0cHV0Rm9ybWF0LCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBzb3VyY2VSZWN0KSBm
aW5hbDsKICAgICB2b2lkIHB1dFBpeGVsQnVmZmVyKGNvbnN0IFdlYkNvcmU6OlBpeGVsQnVmZmVy
JiwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgc3JjUmVjdCwgY29uc3QgV2ViQ29yZTo6SW50UG9p
bnQmIGRlc3RQb2ludCwgV2ViQ29yZTo6QWxwaGFQcmVtdWx0aXBsaWNhdGlvbiBkZXN0Rm9ybWF0
KSBmaW5hbDsKKyAgICB2b2lkIGNvbnZlcnRUb0x1bWluYW5jZU1hc2soKSBmaW5hbDsKKyAgICB2
b2lkIHRyYW5zZm9ybVRvQ29sb3JTcGFjZShjb25zdCBXZWJDb3JlOjpEZXN0aW5hdGlvbkNvbG9y
U3BhY2UmKSBmaW5hbDsKICAgICB2b2lkIGZsdXNoQ29udGV4dChXZWJDb3JlOjpHcmFwaGljc0Nv
bnRleHRGbHVzaElkZW50aWZpZXIpIGZpbmFsOwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlclByb3h5
LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVm
ZmVyUHJveHkuaAppbmRleCA5ZjNhZDEzNjI2MmE5MmZlZDUwYWY1MmI1ZDIxNDI5MzlhM2I0MjQ4
Li42Yjk5YzFhZTQwMjdjMjY1NGMxZjZiY2IyZGQ3NWZiYTk3MWFhYjExIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyUHJv
eHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUlt
YWdlQnVmZmVyUHJveHkuaApAQCAtMjU0LDYgKzI1NCwxNiBAQCBwcm90ZWN0ZWQ6CiAgICAgICAg
IEFTU0VSVChyZXNvbHV0aW9uU2NhbGUoKSA9PSAxKTsKICAgICAgICAgbV9yZW1vdGVEaXNwbGF5
TGlzdC5wdXRQaXhlbEJ1ZmZlcihwaXhlbEJ1ZmZlciwgc3JjUmVjdCwgZGVzdFBvaW50LCBkZXN0
Rm9ybWF0KTsKICAgICB9CisgICAgCisgICAgdm9pZCBjb252ZXJ0VG9MdW1pbmFuY2VNYXNrKCkg
ZmluYWwKKyAgICB7CisgICAgICAgIG1fcmVtb3RlRGlzcGxheUxpc3QuY29udmVydFRvTHVtaW5h
bmNlTWFzaygpOworICAgIH0KKworICAgIHZvaWQgdHJhbnNmb3JtVG9Db2xvclNwYWNlKGNvbnN0
IFdlYkNvcmU6OkRlc3RpbmF0aW9uQ29sb3JTcGFjZSYgY29sb3JTcGFjZSkgZmluYWwKKyAgICB7
CisgICAgICAgIG1fcmVtb3RlRGlzcGxheUxpc3QuY29udmVydFRvTHVtaW5hbmNlTWFzaygpOwor
ICAgIH0KIAogICAgIGJvb2wgcHJlZmVyc1ByZXBhcmF0aW9uRm9yRGlzcGxheSgpIGZpbmFsIHsg
cmV0dXJuIHRydWU7IH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>449357</attachid>
            <date>2022-01-17 17:15:22 -0800</date>
            <delta_ts>2022-01-19 13:39:37 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-235305-20220117171521.patch</filename>
            <type>text/plain</type>
            <size>10856</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg4MDcyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTAwMzRkZDMyNzRhYjIx
MWZiYWI5NTQ2ZGI1NmQ3MDUzN2U3ZjMwZS4uOWE0MDQ4ZjgwYzRkZGUyZjJlZTg0MjU4NTZjMWRm
NWE3MGFjODRjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDIyLTAxLTE3ICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgorCisgICAgICAgIFtHUFUgUHJvY2Vzc10g
SW1hZ2VCdWZmZXI6OmNvbnZlcnRUb0x1bWluYW5jZU1hc2soKSBhbmQgdHJhbnNmb3JtVG9Db2xv
clNwYWNlKCkgc2hvdWxkIG5vdCBhY2Nlc3MgdGhlIGJhY2tlbmQgaW4gV2ViUHJvY2VzcworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM1MzA1CisgICAg
ICAgIHJkYXI6Ly84MzQzNzgxNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFdoZW4gRE9NIHJlbmRlcmluZyBpcyBoYW5kbGVkIGluIEdQVSBQcm9jZXNz
LCBubyBiYWNrZW5kIGFjY2VzcyB3aWxsIGJlIAorICAgICAgICBhbGxvd2VkLiBTbyBhbGwgdGhl
IG9wZXJhdGlvbnMgdGhhdCByZXF1aXJlIGFjY2VzcyB0byB0aGUgYmFja2VuZCBzaG91bGQKKyAg
ICAgICAgYmUgaGFuZGxlZCBpbiBHUFUgUHJvY2Vzcy4gVGhlIFdlYlByb2Nlc3Mgd2lsbCBzdHJl
YW0gbWVzc2FnZXMgZm9yIHRoZXNlCisgICAgICAgIG9wZXJhdGlvbnMgdG8gR1BVUHJvY2Vzcy4K
KworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJl
Y29yZGVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3Bs
YXlMaXN0UmVjb3JkZXJJbXBsLmg6CisKIDIwMjItMDEtMTUgIFNhbSBXZWluaWcgIDx3ZWluaWdA
YXBwbGUuY29tPgogCiAgICAgICAgIENTUyBHcmFkaWVudHM6IGludGVycG9sYXRpb24gbW9kZSBz
aG91bGQgZGVmYXVsdCB0byBPS0xhYiBpZiBhbnkgbm9uLWxlZ2FjeSBjb2xvciBzeW50YXggY29s
b3JzIGFyZSB1c2VkIGluIHRoZSBzdG9wcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCAwYjI0OTMyNmJmMGViNzY1ZjU0
MzNmYmU0Yjk5YmRhZGRkMzIzZmYxLi42OGJkNTQyYjU2MjE0NWUzYWJjYmRiZmU4YmI3NWNmYWNk
ODZkYWQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDIyLTAxLTE3ICBTYWlkIEFib3Ut
SGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgorCisgICAgICAgIFtHUFUgUHJvY2Vzc10gSW1hZ2VC
dWZmZXI6OmNvbnZlcnRUb0x1bWluYW5jZU1hc2soKSBhbmQgdHJhbnNmb3JtVG9Db2xvclNwYWNl
KCkgc2hvdWxkIG5vdCBhY2Nlc3MgdGhlIGJhY2tlbmQgaW4gV2ViUHJvY2VzcworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM1MzA1CisgICAgICAgIHJk
YXI6Ly84MzQzNzgxNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6Y29udmVydFRv
THVtaW5hbmNlTWFzayk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3Jk
ZXI6OnRyYW5zZm9ybVRvQ29sb3JTcGFjZSk6CisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGlj
cy9SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyLmg6CisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFw
aGljcy9SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdl
YlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6Y29udmVy
dFRvTHVtaW5hbmNlTWFzayk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVj
b3JkZXJQcm94eTo6dHJhbnNmb3JtVG9Db2xvclNwYWNlKToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L0dQVS9ncmFwaGljcy9SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHkuaDoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlclByb3h5Lmg6CisKIDIw
MjItMDEtMTUgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBJbnRy
b2R1Y2UgZHluYW1pY0Rvd25jYXN0PD4oKSBmb3IgY29udmVuaWVuY2UKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJl
Y29yZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMv
RGlzcGxheUxpc3RSZWNvcmRlci5oCmluZGV4IDk0OGY3ODZiYmZkOTI3ZmNiY2ZhZTVjNjA3MTgz
ZDU0NmQ3NjFkM2YuLjdjZWY5ZTZiMDE3YmM5NTFjOTM1ZDBmODczMGFmYjYzYWYwYTJhMjUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9E
aXNwbGF5TGlzdFJlY29yZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuaApAQCAtNjAsNiArNjAsOCBAQCBw
dWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgZ2V0UGl4ZWxCdWZmZXIoY29uc3QgUGl4ZWxCdWZm
ZXJGb3JtYXQmIG91dHB1dEZvcm1hdCwgY29uc3QgSW50UmVjdCYgc291cmNlUmVjdCkgPSAwOwog
ICAgIHZpcnR1YWwgdm9pZCBwdXRQaXhlbEJ1ZmZlcihjb25zdCBQaXhlbEJ1ZmZlciYsIGNvbnN0
IEludFJlY3QmIHNyY1JlY3QsIGNvbnN0IEludFBvaW50JiBkZXN0UG9pbnQsIEFscGhhUHJlbXVs
dGlwbGljYXRpb24gZGVzdEZvcm1hdCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBjb252ZXJ0VG9M
dW1pbmFuY2VNYXNrKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCB0cmFuc2Zvcm1Ub0NvbG9yU3Bh
Y2UoY29uc3QgRGVzdGluYXRpb25Db2xvclNwYWNlJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBm
bHVzaENvbnRleHQoR3JhcGhpY3NDb250ZXh0Rmx1c2hJZGVudGlmaWVyKSA9IDA7CiAKIHByb3Rl
Y3RlZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3Bs
YXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVySW1wbC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXJJbXBsLmgKaW5kZXgg
MjllNzI3NGYxNzVkYThhNjI3OTMzOGVkZTM0ODM0MmIyZTg1NTRhNC4uZDRkMGI3NTdlZGQyOWNk
YWYwZDU2M2NlNmVjY2UwYjVlMTQ1ZjQzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXJJbXBsLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlM
aXN0UmVjb3JkZXJJbXBsLmgKQEAgLTU0LDggKzU0LDEwIEBAIHB1YmxpYzoKICAgICAgICAgdmly
dHVhbCBSZW5kZXJpbmdNb2RlIHJlbmRlcmluZ01vZGUoKSBjb25zdCB7IHJldHVybiBSZW5kZXJp
bmdNb2RlOjpVbmFjY2VsZXJhdGVkOyB9CiAgICAgfTsKIAotICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgZ2V0UGl4ZWxCdWZmZXIoY29uc3QgUGl4ZWxCdWZmZXJGb3JtYXQmIG91dHB1dEZvcm1hdCwg
Y29uc3QgSW50UmVjdCYgc291cmNlUmVjdCkgZmluYWw7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBwdXRQaXhlbEJ1ZmZlcihjb25zdCBQaXhlbEJ1ZmZlciYsIGNvbnN0IEludFJlY3QmIHNyY1Jl
Y3QsIGNvbnN0IEludFBvaW50JiBkZXN0UG9pbnQsIEFscGhhUHJlbXVsdGlwbGljYXRpb24gZGVz
dEZvcm1hdCkgZmluYWw7CisgICAgdm9pZCBnZXRQaXhlbEJ1ZmZlcihjb25zdCBQaXhlbEJ1ZmZl
ckZvcm1hdCYgb3V0cHV0Rm9ybWF0LCBjb25zdCBJbnRSZWN0JiBzb3VyY2VSZWN0KSBmaW5hbDsK
KyAgICB2b2lkIHB1dFBpeGVsQnVmZmVyKGNvbnN0IFBpeGVsQnVmZmVyJiwgY29uc3QgSW50UmVj
dCYgc3JjUmVjdCwgY29uc3QgSW50UG9pbnQmIGRlc3RQb2ludCwgQWxwaGFQcmVtdWx0aXBsaWNh
dGlvbiBkZXN0Rm9ybWF0KSBmaW5hbDsKKyAgICB2b2lkIGNvbnZlcnRUb0x1bWluYW5jZU1hc2so
KSBmaW5hbCB7IH0KKyAgICB2b2lkIHRyYW5zZm9ybVRvQ29sb3JTcGFjZShjb25zdCBEZXN0aW5h
dGlvbkNvbG9yU3BhY2UmKSBmaW5hbCB7IH0KICAgICB2b2lkIGZsdXNoQ29udGV4dChHcmFwaGlj
c0NvbnRleHRGbHVzaElkZW50aWZpZXIgaWRlbnRpZmllcikgZmluYWwgeyBhcHBlbmQ8Rmx1c2hD
b250ZXh0PihpZGVudGlmaWVyKTsgfQogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXIuY3BwIGIv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVjb3Jk
ZXIuY3BwCmluZGV4IGMyNjdhN2NkMmE4NTQyZTg2ZjFiZGY4MWIzMzk5YWU1YjZkNTY0ZTEuLjU3
N2JiZjMzYjIwZmRmNTc1MWJhNzU0MjQzNTZhNDNmYzA3M2JjMTQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlRGlzcGxheUxp
c3RSZWNvcmRlci5jcHAKQEAgLTQ1OSw2ICs0NTksMTYgQEAgdm9pZCBSZW1vdGVEaXNwbGF5TGlz
dFJlY29yZGVyOjpwdXRQaXhlbEJ1ZmZlcihjb25zdCBJbnRSZWN0JiBzcmNSZWN0LCBjb25zdCBJ
bnQKICAgICBtX2ltYWdlQnVmZmVyLT5wdXRQaXhlbEJ1ZmZlcihwaXhlbEJ1ZmZlciwgc3JjUmVj
dCwgZGVzdFBvaW50LCBkZXN0Rm9ybWF0KTsKIH0KIAordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJl
Y29yZGVyOjpjb252ZXJ0VG9MdW1pbmFuY2VNYXNrKCkKK3sKKyAgICBtX2ltYWdlQnVmZmVyLT5j
b252ZXJ0VG9MdW1pbmFuY2VNYXNrKCk7Cit9CisKK3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNv
cmRlcjo6dHJhbnNmb3JtVG9Db2xvclNwYWNlKGNvbnN0IFdlYkNvcmU6OkRlc3RpbmF0aW9uQ29s
b3JTcGFjZSYgY29sb3JTcGFjZSkKK3sKKyAgICBtX2ltYWdlQnVmZmVyLT50cmFuc2Zvcm1Ub0Nv
bG9yU3BhY2UoY29sb3JTcGFjZSk7Cit9CisKIHZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRl
cjo6cGFpbnRGcmFtZUZvck1lZGlhKE1lZGlhUGxheWVySWRlbnRpZmllciBpZGVudGlmaWVyLCBj
b25zdCBGbG9hdFJlY3QmIGRlc3RpbmF0aW9uKQogewogICAgIG1fcmVuZGVyaW5nQmFja2VuZC0+
cGVyZm9ybVdpdGhNZWRpYVBsYXllck9uTWFpblRocmVhZChpZGVudGlmaWVyLCBbaW1hZ2VCdWZm
ZXIgPSBSZWZQdHIgeyBtX2ltYWdlQnVmZmVyLmdldCgpIH0sIGRlc3RpbmF0aW9uXShNZWRpYVBs
YXllciYgcGxheWVyKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3Jh
cGhpY3MvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlci5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXIuaAppbmRleCA2OTZkNmNiMTYy
NzY5OTBlYjRlYzA3ODJjNDBkM2Q3YjBhODA5NjFiLi5lMTY4ZTVhZWEyMTRhODMwMGI0MTM0MTdm
ODk4NWI0ZDkxZDM0ZjllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3Jh
cGhpY3MvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyLmgKQEAgLTExMSw2ICsx
MTEsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBmaWxsRWxsaXBzZShjb25zdCBXZWJDb3JlOjpGbG9h
dFJlY3QmKTsKICAgICB2b2lkIGdldFBpeGVsQnVmZmVyKGNvbnN0IFdlYkNvcmU6OkludFJlY3Qm
IHNyY1JlY3QsIGNvbnN0IFdlYkNvcmU6OlBpeGVsQnVmZmVyRm9ybWF0JiBvdXRwdXRGb3JtYXQp
OwogICAgIHZvaWQgcHV0UGl4ZWxCdWZmZXIoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgc3JjUmVj
dCwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGRlc3RQb2ludCwgY29uc3QgV2ViQ29yZTo6UGl4
ZWxCdWZmZXImLCBXZWJDb3JlOjpBbHBoYVByZW11bHRpcGxpY2F0aW9uIGRlc3RGb3JtYXQpOwor
ICAgIHZvaWQgY29udmVydFRvTHVtaW5hbmNlTWFzaygpOworICAgIHZvaWQgdHJhbnNmb3JtVG9D
b2xvclNwYWNlKGNvbnN0IFdlYkNvcmU6OkRlc3RpbmF0aW9uQ29sb3JTcGFjZSYpOwogICAgIHZv
aWQgcGFpbnRGcmFtZUZvck1lZGlhKFdlYkNvcmU6Ok1lZGlhUGxheWVySWRlbnRpZmllciwgY29u
c3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBkZXN0aW5hdGlvbik7CiAgICAgdm9pZCBzdHJva2VSZWN0
KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYsIGZsb2F0IGxpbmVXaWR0aCk7CiAjaWYgRU5BQkxF
KElOTElORV9QQVRIX0RBVEEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
Z3JhcGhpY3MvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyLm1lc3Nh
Z2VzLmluCmluZGV4IDA5YzQwOTdkZWJlYjM0MzFjOGVmMjg0NGU3YWY5NTJmNDg1ZWFjOTIuLmUy
M2VhY2NhNTcyZjc1ZjcxNTEyMmRhNjM2ZjMzMTBjNjk4NWE3NjQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyLm1l
c3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVE
aXNwbGF5TGlzdFJlY29yZGVyLm1lc3NhZ2VzLmluCkBAIC03Nyw2ICs3Nyw4IEBAIG1lc3NhZ2Vz
IC0+IFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXIgTm90UmVmQ291bnRlZCBTdHJlYW0gewogICAg
IEZpbGxFbGxpcHNlKFdlYkNvcmU6OkZsb2F0UmVjdCByZWN0KQogICAgIEdldFBpeGVsQnVmZmVy
KFdlYkNvcmU6OkludFJlY3Qgc3JjUmVjdCwgc3RydWN0IFdlYkNvcmU6OlBpeGVsQnVmZmVyRm9y
bWF0IG91dHB1dEZvcm1hdCkKICAgICBQdXRQaXhlbEJ1ZmZlcihXZWJDb3JlOjpJbnRSZWN0IHNy
Y1JlY3QsIFdlYkNvcmU6OkludFBvaW50IGRlc3RQb2ludCwgV2ViQ29yZTo6UGl4ZWxCdWZmZXIg
cGl4ZWxCdWZmZXIsIGVudW06dWludDhfdCBXZWJDb3JlOjpBbHBoYVByZW11bHRpcGxpY2F0aW9u
IGRlc3RGb3JtYXQpCisgICAgQ29udmVydFRvTHVtaW5hbmNlTWFzaygpCisgICAgVHJhbnNmb3Jt
VG9Db2xvclNwYWNlKFdlYkNvcmU6OkRlc3RpbmF0aW9uQ29sb3JTcGFjZSBjb2xvclNwYWNlKQog
ICAgIFBhaW50RnJhbWVGb3JNZWRpYShXZWJDb3JlOjpNZWRpYVBsYXllcklkZW50aWZpZXIgaWRl
bnRpZmllciwgV2ViQ29yZTo6RmxvYXRSZWN0IGRlc3RpbmF0aW9uKQogICAgIFN0cm9rZVJlY3Qo
V2ViQ29yZTo6RmxvYXRSZWN0IHJlY3QsIGZsb2F0IGxpbmVXaWR0aCkKICNpZiBFTkFCTEUoSU5M
SU5FX1BBVEhfREFUQSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
Z3JhcGhpY3MvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5
LmNwcAppbmRleCAzMmEzNDJkYmZiZGZhN2YwYzM5YmM2MzZhNDc5MjAzMWFlMTc3NDA4Li40YTMx
NzJjZmRiMjY4OGMwY2EyMmNiMjczZDU1YmFiYzVlYjViNWU4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQ
cm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1v
dGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHkuY3BwCkBAIC03MCw2ICs3MCwxNiBAQCB2b2lkIFJl
bW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cHV0UGl4ZWxCdWZmZXIoY29uc3QgUGl4ZWxC
dWZmZXImIHBpeGVsQnVmZgogICAgIHNlbmQoTWVzc2FnZXM6OlJlbW90ZURpc3BsYXlMaXN0UmVj
b3JkZXI6OlB1dFBpeGVsQnVmZmVyKHNyY1JlY3QsIGRlc3RQb2ludCwgcGl4ZWxCdWZmZXIsIGRl
c3RGb3JtYXQpKTsKIH0KIAordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OmNv
bnZlcnRUb0x1bWluYW5jZU1hc2soKQoreworICAgIHNlbmQoTWVzc2FnZXM6OlJlbW90ZURpc3Bs
YXlMaXN0UmVjb3JkZXI6OkNvbnZlcnRUb0x1bWluYW5jZU1hc2soKSk7Cit9CisKK3ZvaWQgUmVt
b3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5Ojp0cmFuc2Zvcm1Ub0NvbG9yU3BhY2UoY29uc3Qg
V2ViQ29yZTo6RGVzdGluYXRpb25Db2xvclNwYWNlJiBjb2xvclNwYWNlKQoreworICAgIHNlbmQo
TWVzc2FnZXM6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OlRyYW5zZm9ybVRvQ29sb3JTcGFj
ZShjb2xvclNwYWNlKSk7Cit9CisKIGJvb2wgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5
OjpjYW5EcmF3SW1hZ2VCdWZmZXIoY29uc3QgSW1hZ2VCdWZmZXImIGltYWdlQnVmZmVyKSBjb25z
dAogewogICAgIHJldHVybiBtX3JlbmRlcmluZ0JhY2tlbmQgJiYgbV9yZW5kZXJpbmdCYWNrZW5k
LT5pc0NhY2hlZChpbWFnZUJ1ZmZlcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eS5oIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVEaXNwbGF5TGlzdFJlY29y
ZGVyUHJveHkuaAppbmRleCA2Zjc4MDlkNWVlZTMwMmQyMjE5MzZjYTA1M2I4NzM5NGNiYTQ3ZTUz
Li5jMjc1MzdiMmJjOWY0ZmNiMTE3ZTk2ZDY2NjBjMjc2YzIxZTRjYTFmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVj
b3JkZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3Mv
UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5LmgKQEAgLTQ5LDYgKzQ5LDggQEAgcHVibGlj
OgogCiAgICAgdm9pZCBnZXRQaXhlbEJ1ZmZlcihjb25zdCBXZWJDb3JlOjpQaXhlbEJ1ZmZlckZv
cm1hdCYgb3V0cHV0Rm9ybWF0LCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBzb3VyY2VSZWN0KSBm
aW5hbDsKICAgICB2b2lkIHB1dFBpeGVsQnVmZmVyKGNvbnN0IFdlYkNvcmU6OlBpeGVsQnVmZmVy
JiwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgc3JjUmVjdCwgY29uc3QgV2ViQ29yZTo6SW50UG9p
bnQmIGRlc3RQb2ludCwgV2ViQ29yZTo6QWxwaGFQcmVtdWx0aXBsaWNhdGlvbiBkZXN0Rm9ybWF0
KSBmaW5hbDsKKyAgICB2b2lkIGNvbnZlcnRUb0x1bWluYW5jZU1hc2soKSBmaW5hbDsKKyAgICB2
b2lkIHRyYW5zZm9ybVRvQ29sb3JTcGFjZShjb25zdCBXZWJDb3JlOjpEZXN0aW5hdGlvbkNvbG9y
U3BhY2UmKSBmaW5hbDsKICAgICB2b2lkIGZsdXNoQ29udGV4dChXZWJDb3JlOjpHcmFwaGljc0Nv
bnRleHRGbHVzaElkZW50aWZpZXIpIGZpbmFsOwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlclByb3h5
LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVm
ZmVyUHJveHkuaAppbmRleCA5ZjNhZDEzNjI2MmE5MmZlZDUwYWY1MmI1ZDIxNDI5MzlhM2I0MjQ4
Li4zZTdkYTVmYTBmYzBhNjg3M2RhYjA2NzI3YWE2ZDg0NzY4OWQyM2E4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyUHJv
eHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUlt
YWdlQnVmZmVyUHJveHkuaApAQCAtMjU0LDYgKzI1NCwxNiBAQCBwcm90ZWN0ZWQ6CiAgICAgICAg
IEFTU0VSVChyZXNvbHV0aW9uU2NhbGUoKSA9PSAxKTsKICAgICAgICAgbV9yZW1vdGVEaXNwbGF5
TGlzdC5wdXRQaXhlbEJ1ZmZlcihwaXhlbEJ1ZmZlciwgc3JjUmVjdCwgZGVzdFBvaW50LCBkZXN0
Rm9ybWF0KTsKICAgICB9CisgICAgCisgICAgdm9pZCBjb252ZXJ0VG9MdW1pbmFuY2VNYXNrKCkg
ZmluYWwKKyAgICB7CisgICAgICAgIG1fcmVtb3RlRGlzcGxheUxpc3QuY29udmVydFRvTHVtaW5h
bmNlTWFzaygpOworICAgIH0KKworICAgIHZvaWQgdHJhbnNmb3JtVG9Db2xvclNwYWNlKGNvbnN0
IFdlYkNvcmU6OkRlc3RpbmF0aW9uQ29sb3JTcGFjZSYgY29sb3JTcGFjZSkgZmluYWwKKyAgICB7
CisgICAgICAgIG1fcmVtb3RlRGlzcGxheUxpc3QudHJhbnNmb3JtVG9Db2xvclNwYWNlKGNvbG9y
U3BhY2UpOworICAgIH0KIAogICAgIGJvb2wgcHJlZmVyc1ByZXBhcmF0aW9uRm9yRGlzcGxheSgp
IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>