<?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>235604</bug_id>
          
          <creation_ts>2022-01-25 13:30:12 -0800</creation_ts>
          <short_desc>DrawGlyphsRecorder::recordDrawGlyphs() triggers the creation of out of line Colors</short_desc>
          <delta_ts>2022-05-05 16:16:49 -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>Layout and Rendering</component>
          <version>Safari Technology Preview</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Cameron McCormack (:heycam)">heycam</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>heycam</cc>
    
    <cc>mmaxfield</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>1833830</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2022-01-25 13:30:12 -0800</bug_when>
    <thetext>DrawGlyphsRecorder::recordDrawGlyphs() has code that converts CGColors to Colors, via Color::createAndPreserveColorSpace(). However, if the CSS color is, say #FF0000, which is inline, this CG-related code will make an out-of-line sRGB color, which will then compare as different to the inline color.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1836127</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-02-01 13:31:15 -0800</bug_when>
    <thetext>&lt;rdar://problem/88345680&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1836153</commentid>
    <comment_count>2</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2022-02-01 14:40:44 -0800</bug_when>
    <thetext>I think heycam did this deliberately for https://trac.webkit.org/changeset/281470/webkit (https://bugs.webkit.org/show_bug.cgi?id=229024).

I believe the issue is that the colors lose state when when they go into the CGContextDelegateRef so we don&apos;t know what they originally were and so we err on the side of more bits.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1836154</commentid>
    <comment_count>3</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2022-02-01 14:42:01 -0800</bug_when>
    <thetext>Perhaps the thing to fix here is whatever code is doing the comparison you mention. Where is that?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1836169</commentid>
    <comment_count>4</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2022-02-01 15:01:05 -0800</bug_when>
    <thetext>That&apos;s just Color&apos;s operator==</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1836611</commentid>
    <comment_count>5</comment_count>
    <who name="Cameron McCormack (:heycam)">heycam</who>
    <bug_when>2022-02-02 13:26:35 -0800</bug_when>
    <thetext>Simon, where is the display list code doing the comparison of colors, and what does it  use it for?

If it&apos;s important for Color::operator== to distinguish equivalent colors specified using different syntaxes, we could add a different comparison function.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1836615</commentid>
    <comment_count>6</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2022-02-02 13:32:54 -0800</bug_when>
    <thetext>I found this while investigating rdar://84602660. It affects the behavior of updateGraphicsContext(GraphicsContext&amp; context, const TextPaintStyle&amp; paintStyle, FillColorType fillColorType).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1836616</commentid>
    <comment_count>7</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2022-02-02 13:33:28 -0800</bug_when>
    <thetext>Specifically the fill colors compare as different here:

    if (mode.contains(TextDrawingMode::Fill) &amp;&amp; (fillColor != context.fillColor()))
        context.setFillColor(fillColor);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1837203</commentid>
    <comment_count>8</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2022-02-03 18:24:20 -0800</bug_when>
    <thetext>When Cameron wrote that code, we were using bounded SRGB for both color(srgb ...) and legacy rgb. Now, we use extended sRGB for color(srgb ) but still use bounded sRGB for legacy.

So, we could consider smuggling / encoding whether to use 8-bit / inline based on whether the CGColorRef is using bounded sRGB or extended sRGB for the color space.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1866322</commentid>
    <comment_count>9</comment_count>
    <who name="Cameron McCormack (:heycam)">heycam</who>
    <bug_when>2022-05-03 17:16:45 -0700</bug_when>
    <thetext>*** Bug 239953 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1866378</commentid>
    <comment_count>10</comment_count>
      <attachid>458775</attachid>
    <who name="Cameron McCormack (:heycam)">heycam</who>
    <bug_when>2022-05-03 23:31:15 -0700</bug_when>
    <thetext>Created attachment 458775
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1866596</commentid>
    <comment_count>11</comment_count>
      <attachid>458827</attachid>
    <who name="Cameron McCormack (:heycam)">heycam</who>
    <bug_when>2022-05-04 14:50:27 -0700</bug_when>
    <thetext>Created attachment 458827
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1867033</commentid>
    <comment_count>12</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-05-05 16:16:44 -0700</bug_when>
    <thetext>Committed r293867 (250329@main): &lt;https://commits.webkit.org/250329@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 458827.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>458775</attachid>
            <date>2022-05-03 23:31:15 -0700</date>
            <delta_ts>2022-05-04 14:50:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-235604-20220504163114.patch</filename>
            <type>text/plain</type>
            <size>7560</size>
            <attacher name="Cameron McCormack (:heycam)">heycam</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkzNzU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTc2Yjg1YjU5ZTJhNGNm
OGIxOTMzZjY2MjU3MzRkZTkyZDljZTNiZi4uYjJmOWFhYWZhMDEyNGQ3N2ZmN2I5ZjJhOTBjODIy
YjJmYmE5OTdjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDIyLTA1LTAzICBDYW1l
cm9uIE1jQ29ybWFjayAgPGhleWNhbUBhcHBsZS5jb20+CisKKyAgICAgICAgQXZvaWQgdXNpbmcg
V2ViQ29yZTo6Q29sb3JzIGNyZWF0ZWQgd2l0aCBvdXQtb2YtbGluZSBjb21wb25lbnRzIGluIERy
YXdHbHlwaHNSZWNvcmRlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjM1NjA0CisgICAgICAgIHJkYXI6Ly84ODM0NTY4MAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluIERyYXdHbHlwaHNSZWNvcmRlcjo6
cmVjb3JkRHJhd0dseXBocyB3ZSBpbnRlcnJvZ2F0ZSB0aGUgQ0dDb250ZXh0J3MKKyAgICAgICAg
c3RhdGUgdG8gZmluZCBvdXQgdGhlIGN1cnJlbnQgZmlsbCBhbmQgc3Ryb2tlIGNvbG9yLiBUaGlz
IG5lZWRlZCB0bworICAgICAgICByZWNvcmQgY29sb3IgZm9udCBnbHlwaHMgY29ycmVjdGx5LiBX
aGVuIHdlJ3JlIG5vdCB1c2luZyBhIGNvbG9yIGZvbnQsCisgICAgICAgIHRoZSBDR0NvbG9ycyBm
b3IgdGhlIGZpbGwgYW5kIHN0cm9rZSB3aWxsIGJlIHRoZSBzYW1lIGFzIHdlIHNldCB0aGVtCisg
ICAgICAgIGluIHByZXBhcmVJbnRlcm5hbENvbnRleHQuCisKKyAgICAgICAgVGhvc2UgQ0dDb2xv
cnMgd2UgY3JlYXRlIGluIHByZXBhcmVJbnRlcm5hbENvbnRleHQgZnJvbSB0aGUKKyAgICAgICAg
V2ViQ29yZTo6Q29sb3JzIChjcmVhdGVkIGJ5IGNhbGxpbmcgY2FjaGVkQ0dDb2xvcikgZG9uJ3Qg
cmVjb3JkIHRoZQorICAgICAgICBleGFjdCBmb3JtIHRoZSBvcmlnaW5hbCBjb2xvcnMgaGFkLiBD
R0NvbG9ycyBvbmx5IGV4cG9zZSBmbG9hdAorICAgICAgICBjb21wb25lbnRzLCBzbyBDb2xvcjo6
Y3JlYXRlQW5kUHJlc2VydmVDb2xvclNwYWNlIGNvbnNlcnZhdGl2ZWx5CisgICAgICAgIGNyZWF0
ZXMgYSBDb2xvciB3aXRoIG91dC1vZi1saW5lIGNvbXBvbmVudHMgdG8gc3RvcmUgdGhvc2UgZmxv
YXQKKyAgICAgICAgdmFsdWVzLCBldmVuIGlmIHRoZSBvcmlnaW5hbCBDb2xvciB0aGUgQ0dDb2xv
ciB3YXMgY3JlYXRlZCBmcm9tIGhhZAorICAgICAgICB1aW50OF90IGNvbXBvbmVudHMuCisKKyAg
ICAgICAgQ29sb3I6Om9wZXJhdG9yPT0gdHJlYXRzIGNvbG9ycyBvZiBkaWZmZXJlbnQgZm9ybXMg
YXMgYmVpbmcgZGlmZmVyZW50LAorICAgICAgICB3aGljaCBtZWFucyB3ZSBnZW5lcmF0ZSBhZGRp
dGlvbmFsLCB1bm5lY2Vzc2FyeSBTZXRTdGF0ZSBkaXNwbGF5IGxpc3QKKyAgICAgICAgaXRlbXMg
Y2hhbmdpbmcgc2F5IHRoZSBmaWxsIGNvbG9yIGZyb20gQ29sb3IoMjU1LCAyNTUsIDI1NSkgKGlu
bGluZSkgdG8KKyAgICAgICAgQ29sb3IoMS4wLCAxLjAsIDEuMCkgKG91dCBvZiBsaW5lKS4KKwor
ICAgICAgICBXZSBjYW4gYXZvaWQgdGhpcyBieSBjaGVja2luZyB3aGV0aGVyIHRoZSBjb250ZXh0
IHN0YXRlJ3MgZmlsbCBhbmQKKyAgICAgICAgc3Ryb2tlIENHQ29sb3JzIGFyZSB0aGUgc2FtZSBv
YmplY3QgYXMgdGhlIG9uZXMgd2Ugc2V0IGluCisgICAgICAgIHByZXBhcmVJbnRlcm5hbENvbnRl
eHQsIGFuZCBpZiBzbywgc2V0IHRoZSBjdXJyZW50IGZpbGwvc3Ryb2tlIGJydXNoCisgICAgICAg
IGJhc2VkIG9uIG1fb3JpZ2luYWxTdGF0ZS5maWxsQnJ1c2gvc3Ryb2tlQnJ1c2guIEluIHRoZSBj
b21tb24gY2FzZSBvZgorICAgICAgICBhIG5vbi1jb2xvciBnbHlwaCwgdGhpcyBicnVzaCBjaGFu
Z2Ugd2lsbCBiZSBkZXRlY3RlZCBhcyB0aGUgc2FtZSBhcworICAgICAgICB0aGUgY3VycmVudCB2
YWx1ZSwgYW5kIHRoZSBTZXRTdGF0ZSBpdGVtIGdlbmVyYXRpb24gd2lsbCBiZSBhdm9pZGVkLgor
CisgICAgICAgIFRoaXMgaW1wcm92ZXMgdGhlIE1vdGlvbk1hcmsgZGVzaWduIHN1YnRlc3QgYnkg
Mi40JSwgYW5kIHRoZSBvdmVyYWxsCisgICAgICAgIHNjb3JlIGJ5IDAuNyUsIHdoZW4gR1BVUCBE
T00gcmVuZGVyaW5nIGlzIGVuYWJsZWQuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9E
cmF3R2x5cGhzUmVjb3JkZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb3JldGV4
dC9EcmF3R2x5cGhzUmVjb3JkZXJDb3JlVGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEcmF3
R2x5cGhzUmVjb3JkZXI6OnJlY29yZEluaXRpYWxDb2xvcnMpOgorICAgICAgICAoV2ViQ29yZTo6
RHJhd0dseXBoc1JlY29yZGVyOjpwcmVwYXJlSW50ZXJuYWxDb250ZXh0KToKKyAgICAgICAgKFdl
YkNvcmU6OkRyYXdHbHlwaHNSZWNvcmRlcjo6dXBkYXRlRmlsbENvbG9yKToKKyAgICAgICAgKFdl
YkNvcmU6OkRyYXdHbHlwaHNSZWNvcmRlcjo6dXBkYXRlU3Ryb2tlQ29sb3IpOgorCiAyMDIyLTA1
LTAzICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgW0pTQ10g
SW5pdGlhbGl6ZSBlbXB0eSBhbmQgbnVsbCBBdG9tU3RyaW5nIGF0IGNvbXBpbGUgdGltZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL1BB
TC9DaGFuZ2VMb2cKaW5kZXggNGYwOTIzNGVmMTA3M2RiOWUzMjcxNDIwMTRkZTYzY2I0MDczMDk3
MC4uMmM5MWQ4OGI2MjkyYTBmYTI2YzY0ZTQ4ODk4MzY3MmFmNGRmN2UxYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjItMDUtMDMgIENhbWVyb24gTWNDb3JtYWNrICA8
aGV5Y2FtQGFwcGxlLmNvbT4KKworICAgICAgICBBdm9pZCB1c2luZyBXZWJDb3JlOjpDb2xvcnMg
Y3JlYXRlZCB3aXRoIG91dC1vZi1saW5lIGNvbXBvbmVudHMgaW4gRHJhd0dseXBoc1JlY29yZGVy
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzU2MDQK
KyAgICAgICAgcmRhcjovLzg4MzQ1NjgwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBwYWwvc3BpL2NnL0NvcmVHcmFwaGljc1NQSS5oOiBBZGQgQ0dD
b250ZXh0R2V0U3Ryb2tlQ29sb3JBc0NvbG9yLgorCiAyMDIyLTA0LTIyICBBbGV4IENocmlzdGVu
c2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgQWRqdXN0IFNQSSBoZWFk
ZXJzIHRvIGZpeCBidWlsZCB3aXRoIG5vbi1pbnRlcm5hbCBTREsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NnL0NvcmVHcmFwaGljc1NQSS5oIGIvU291cmNlL1dlYkNv
cmUvUEFML3BhbC9zcGkvY2cvQ29yZUdyYXBoaWNzU1BJLmgKaW5kZXggOTEyNjZmMTdkNDNmMTNk
OGFkY2NhNjY3MTFjM2Y3NjA4MmY0MGVkYy4uYjdmYzA4ZjhlN2Y1YzlhNzYzNGI3YWEwZWZmZjMz
Y2I2M2M0YTgxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY2cvQ29y
ZUdyYXBoaWNzU1BJLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY2cvQ29yZUdy
YXBoaWNzU1BJLmgKQEAgLTI0NCw2ICsyNDQsNyBAQCBDR0NvbG9yVHJhbnNmb3JtUmVmIENHQ29s
b3JUcmFuc2Zvcm1DcmVhdGUoQ0dDb2xvclNwYWNlUmVmLCBDRkRpY3Rpb25hcnlSZWYgYXR0cgog
Q0dBZmZpbmVUcmFuc2Zvcm0gQ0dDb250ZXh0R2V0QmFzZUNUTShDR0NvbnRleHRSZWYpOwogQ0dD
b21wb3NpdGVPcGVyYXRpb24gQ0dDb250ZXh0R2V0Q29tcG9zaXRlT3BlcmF0aW9uKENHQ29udGV4
dFJlZik7CiBDR0NvbG9yUmVmIENHQ29udGV4dEdldEZpbGxDb2xvckFzQ29sb3IoQ0dDb250ZXh0
UmVmKTsKK0NHQ29sb3JSZWYgQ0dDb250ZXh0R2V0U3Ryb2tlQ29sb3JBc0NvbG9yKENHQ29udGV4
dFJlZik7CiBDR0Zsb2F0IENHQ29udGV4dEdldExpbmVXaWR0aChDR0NvbnRleHRSZWYpOwogYm9v
bCBDR0NvbnRleHRHZXRTaG91bGRTbW9vdGhGb250cyhDR0NvbnRleHRSZWYpOwogYm9vbCBDR0Nv
bnRleHRHZXRTaG91bGRBbnRpYWxpYXMoQ0dDb250ZXh0UmVmKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0RyYXdHbHlwaHNSZWNvcmRlci5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRHJhd0dseXBoc1JlY29yZGVyLmgKaW5kZXggM2Vj
ODM5YzE3NzJmY2YyODAwMmI2Y2U5ZTUxNDM4YzFiNDQ0ZGQ4MC4uY2ZmZDhiNTJjMWY0N2ZiYjY4
ODY1MDU1Njg5NjFmNzU1NGMyM2UzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvRHJhd0dseXBoc1JlY29yZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvRHJhd0dseXBoc1JlY29yZGVyLmgKQEAgLTg0LDYgKzg0LDcgQEAgcHJp
dmF0ZToKICAgICB2b2lkIHBvcHVsYXRlSW50ZXJuYWxTdGF0ZShjb25zdCBHcmFwaGljc0NvbnRl
eHRTdGF0ZSYpOwogICAgIHZvaWQgcG9wdWxhdGVJbnRlcm5hbENvbnRleHQoY29uc3QgR3JhcGhp
Y3NDb250ZXh0U3RhdGUmKTsKICAgICB2b2lkIHByZXBhcmVJbnRlcm5hbENvbnRleHQoY29uc3Qg
Rm9udCYsIEZvbnRTbW9vdGhpbmdNb2RlKTsKKyAgICB2b2lkIHJlY29yZEluaXRpYWxDb2xvcnMo
KTsKICAgICB2b2lkIGNvbmNsdWRlSW50ZXJuYWxDb250ZXh0KCk7CiAKICAgICB2b2lkIHVwZGF0
ZUZpbGxCcnVzaChjb25zdCBTb3VyY2VCcnVzaCYpOwpAQCAtMTIyLDYgKzEyMyw5IEBAIHByaXZh
dGU6CiAgICAgICAgIGJvb2wgaWdub3JlVHJhbnNmb3JtcyB7IGZhbHNlIH07CiAgICAgfTsKICAg
ICBTdGF0ZSBtX29yaWdpbmFsU3RhdGU7CisKKyAgICBSZXRhaW5QdHI8Q0dDb2xvclJlZj4gbV9p
bml0aWFsRmlsbENvbG9yOworICAgIFJldGFpblB0cjxDR0NvbG9yUmVmPiBtX2luaXRpYWxTdHJv
a2VDb2xvcjsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvcmV0ZXh0L0RyYXdHbHlwaHNSZWNvcmRlckNv
cmVUZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvcmV0ZXh0L0Ry
YXdHbHlwaHNSZWNvcmRlckNvcmVUZXh0LmNwcAppbmRleCBmMjNjNTQ1MjBiYTM5YTkyOWNhYWVi
OTg5OTE2YzBiOTFlY2YxNDZjLi5iNDE4NTFkZTY1MDIxYTJmYmJkMDMyNjhmZTQyNDkwZTQ4MjE4
YmE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb3JldGV4
dC9EcmF3R2x5cGhzUmVjb3JkZXJDb3JlVGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY29yZXRleHQvRHJhd0dseXBoc1JlY29yZGVyQ29yZVRleHQuY3BwCkBA
IC0xMjIsNiArMTIyLDEzIEBAIHZvaWQgRHJhd0dseXBoc1JlY29yZGVyOjpwb3B1bGF0ZUludGVy
bmFsQ29udGV4dChjb25zdCBHcmFwaGljc0NvbnRleHRTdGF0ZSYgY29uCiAgICAgbV9pbnRlcm5h
bENvbnRleHQtPnNldFRleHREcmF3aW5nTW9kZShjb250ZXh0U3RhdGUudGV4dERyYXdpbmdNb2Rl
KCkpOwogfQogCit2b2lkIERyYXdHbHlwaHNSZWNvcmRlcjo6cmVjb3JkSW5pdGlhbENvbG9ycygp
Cit7CisgICAgQ0dDb250ZXh0UmVmIGNnQ29udGV4dCA9IG1faW50ZXJuYWxDb250ZXh0LT5wbGF0
Zm9ybUNvbnRleHQoKTsKKyAgICBtX2luaXRpYWxGaWxsQ29sb3IgPSBDR0NvbnRleHRHZXRGaWxs
Q29sb3JBc0NvbG9yKGNnQ29udGV4dCk7CisgICAgbV9pbml0aWFsU3Ryb2tlQ29sb3IgPSBDR0Nv
bnRleHRHZXRTdHJva2VDb2xvckFzQ29sb3IoY2dDb250ZXh0KTsKK30KKwogdm9pZCBEcmF3R2x5
cGhzUmVjb3JkZXI6OnByZXBhcmVJbnRlcm5hbENvbnRleHQoY29uc3QgRm9udCYgZm9udCwgRm9u
dFNtb290aGluZ01vZGUgc21vb3RoaW5nTW9kZSkKIHsKICAgICBBU1NFUlQoQ0dBZmZpbmVUcmFu
c2Zvcm1Jc0lkZW50aXR5KENURm9udEdldE1hdHJpeChmb250LnBsYXRmb3JtRGF0YSgpLmN0Rm9u
dCgpKSkpOwpAQCAtMTM2LDYgKzE0Myw3IEBAIHZvaWQgRHJhd0dseXBoc1JlY29yZGVyOjpwcmVw
YXJlSW50ZXJuYWxDb250ZXh0KGNvbnN0IEZvbnQmIGZvbnQsIEZvbnRTbW9vdGhpbmdNCiAgICAg
YXV0byYgY29udGV4dFN0YXRlID0gbV9vd25lci5zdGF0ZSgpOwogICAgIHBvcHVsYXRlSW50ZXJu
YWxTdGF0ZShjb250ZXh0U3RhdGUpOwogICAgIHBvcHVsYXRlSW50ZXJuYWxDb250ZXh0KGNvbnRl
eHRTdGF0ZSk7CisgICAgcmVjb3JkSW5pdGlhbENvbG9ycygpOwogfQogCiB2b2lkIERyYXdHbHlw
aHNSZWNvcmRlcjo6Y29uY2x1ZGVJbnRlcm5hbENvbnRleHQoKQpAQCAtMTUyLDcgKzE2MCwxMCBA
QCB2b2lkIERyYXdHbHlwaHNSZWNvcmRlcjo6dXBkYXRlRmlsbENvbG9yKENHQ29sb3JSZWYgZmls
bENvbG9yKQogICAgICAgICBBU1NFUlQobV9vcmlnaW5hbFN0YXRlLmZpbGxCcnVzaC5wYXR0ZXJu
KCkpOwogICAgICAgICByZXR1cm47CiAgICAgfQotICAgIG1fb3duZXIuc2V0RmlsbEJydXNoKENv
bG9yOjpjcmVhdGVBbmRQcmVzZXJ2ZUNvbG9yU3BhY2UoZmlsbENvbG9yKSk7CisgICAgaWYgKGZp
bGxDb2xvciA9PSBtX2luaXRpYWxGaWxsQ29sb3IpCisgICAgICAgIG1fb3duZXIuc2V0RmlsbEJy
dXNoKG1fb3JpZ2luYWxTdGF0ZS5maWxsQnJ1c2gpOworICAgIGVsc2UKKyAgICAgICAgbV9vd25l
ci5zZXRGaWxsQnJ1c2goQ29sb3I6OmNyZWF0ZUFuZFByZXNlcnZlQ29sb3JTcGFjZShmaWxsQ29s
b3IpKTsKIH0KIAogdm9pZCBEcmF3R2x5cGhzUmVjb3JkZXI6OnVwZGF0ZUZpbGxCcnVzaChjb25z
dCBTb3VyY2VCcnVzaCYgbmV3QnJ1c2gpCkBAIC0xNjYsNyArMTc3LDEwIEBAIHZvaWQgRHJhd0ds
eXBoc1JlY29yZGVyOjp1cGRhdGVTdHJva2VDb2xvcihDR0NvbG9yUmVmIHN0cm9rZUNvbG9yKQog
ICAgICAgICBBU1NFUlQobV9vcmlnaW5hbFN0YXRlLnN0cm9rZUJydXNoLnBhdHRlcm4oKSk7CiAg
ICAgICAgIHJldHVybjsKICAgICB9Ci0gICAgbV9vd25lci5zZXRTdHJva2VCcnVzaChDb2xvcjo6
Y3JlYXRlQW5kUHJlc2VydmVDb2xvclNwYWNlKHN0cm9rZUNvbG9yKSk7CisgICAgaWYgKHN0cm9r
ZUNvbG9yID09IG1faW5pdGlhbFN0cm9rZUNvbG9yKQorICAgICAgICBtX293bmVyLnNldFN0cm9r
ZUJydXNoKG1fb3JpZ2luYWxTdGF0ZS5zdHJva2VCcnVzaCk7CisgICAgZWxzZQorICAgICAgICBt
X293bmVyLnNldFN0cm9rZUJydXNoKENvbG9yOjpjcmVhdGVBbmRQcmVzZXJ2ZUNvbG9yU3BhY2Uo
c3Ryb2tlQ29sb3IpKTsKIH0KIAogdm9pZCBEcmF3R2x5cGhzUmVjb3JkZXI6OnVwZGF0ZVN0cm9r
ZUJydXNoKGNvbnN0IFNvdXJjZUJydXNoJiBuZXdCcnVzaCkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>458827</attachid>
            <date>2022-05-04 14:50:27 -0700</date>
            <delta_ts>2022-05-05 16:16:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-235604-20220505075026.patch</filename>
            <type>text/plain</type>
            <size>7603</size>
            <attacher name="Cameron McCormack (:heycam)">heycam</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkzNzU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTc2Yjg1YjU5ZTJhNGNm
OGIxOTMzZjY2MjU3MzRkZTkyZDljZTNiZi4uNzJjOWNiZTFkNmQzYTljYzllMmE0MTZmMDNjM2Uw
NWViOWQ2OGFmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDIyLTA1LTAzICBDYW1l
cm9uIE1jQ29ybWFjayAgPGhleWNhbUBhcHBsZS5jb20+CisKKyAgICAgICAgQXZvaWQgdXNpbmcg
V2ViQ29yZTo6Q29sb3JzIGNyZWF0ZWQgd2l0aCBvdXQtb2YtbGluZSBjb21wb25lbnRzIGluIERy
YXdHbHlwaHNSZWNvcmRlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjM1NjA0CisgICAgICAgIHJkYXI6Ly84ODM0NTY4MAorCisgICAgICAgIFJldmll
d2VkIGJ5IFNpbW9uIEZyYXNlci4KKworICAgICAgICBJbiBEcmF3R2x5cGhzUmVjb3JkZXI6OnJl
Y29yZERyYXdHbHlwaHMgd2UgaW50ZXJyb2dhdGUgdGhlIENHQ29udGV4dCdzCisgICAgICAgIHN0
YXRlIHRvIGZpbmQgb3V0IHRoZSBjdXJyZW50IGZpbGwgYW5kIHN0cm9rZSBjb2xvci4gVGhpcyBu
ZWVkZWQgdG8KKyAgICAgICAgcmVjb3JkIGNvbG9yIGZvbnQgZ2x5cGhzIGNvcnJlY3RseS4gV2hl
biB3ZSdyZSBub3QgdXNpbmcgYSBjb2xvciBmb250LAorICAgICAgICB0aGUgQ0dDb2xvcnMgZm9y
IHRoZSBmaWxsIGFuZCBzdHJva2Ugd2lsbCBiZSB0aGUgc2FtZSBhcyB3ZSBzZXQgdGhlbQorICAg
ICAgICBpbiBwcmVwYXJlSW50ZXJuYWxDb250ZXh0LgorCisgICAgICAgIFRob3NlIENHQ29sb3Jz
IHdlIGNyZWF0ZSBpbiBwcmVwYXJlSW50ZXJuYWxDb250ZXh0IGZyb20gdGhlCisgICAgICAgIFdl
YkNvcmU6OkNvbG9ycyAoY3JlYXRlZCBieSBjYWxsaW5nIGNhY2hlZENHQ29sb3IpIGRvbid0IHJl
Y29yZCB0aGUKKyAgICAgICAgZXhhY3QgZm9ybSB0aGUgb3JpZ2luYWwgY29sb3JzIGhhZC4gQ0dD
b2xvcnMgb25seSBleHBvc2UgZmxvYXQKKyAgICAgICAgY29tcG9uZW50cywgc28gQ29sb3I6OmNy
ZWF0ZUFuZFByZXNlcnZlQ29sb3JTcGFjZSBjb25zZXJ2YXRpdmVseQorICAgICAgICBjcmVhdGVz
IGEgQ29sb3Igd2l0aCBvdXQtb2YtbGluZSBjb21wb25lbnRzIHRvIHN0b3JlIHRob3NlIGZsb2F0
CisgICAgICAgIHZhbHVlcywgZXZlbiBpZiB0aGUgb3JpZ2luYWwgQ29sb3IgdGhlIENHQ29sb3Ig
d2FzIGNyZWF0ZWQgZnJvbSBoYWQKKyAgICAgICAgdWludDhfdCBjb21wb25lbnRzLgorCisgICAg
ICAgIENvbG9yOjpvcGVyYXRvcj09IHRyZWF0cyBjb2xvcnMgb2YgZGlmZmVyZW50IGZvcm1zIGFz
IGJlaW5nIGRpZmZlcmVudCwKKyAgICAgICAgd2hpY2ggbWVhbnMgd2UgZ2VuZXJhdGUgYWRkaXRp
b25hbCwgdW5uZWNlc3NhcnkgU2V0U3RhdGUgZGlzcGxheSBsaXN0CisgICAgICAgIGl0ZW1zIGNo
YW5naW5nIHNheSB0aGUgZmlsbCBjb2xvciBmcm9tIENvbG9yKDI1NSwgMjU1LCAyNTUpIChpbmxp
bmUpIHRvCisgICAgICAgIENvbG9yKDEuMCwgMS4wLCAxLjApIChvdXQgb2YgbGluZSkuCisKKyAg
ICAgICAgV2UgY2FuIGF2b2lkIHRoaXMgYnkgY2hlY2tpbmcgd2hldGhlciB0aGUgY29udGV4dCBz
dGF0ZSdzIGZpbGwgYW5kCisgICAgICAgIHN0cm9rZSBDR0NvbG9ycyBhcmUgdGhlIHNhbWUgb2Jq
ZWN0IGFzIHRoZSBvbmVzIHdlIHNldCBpbgorICAgICAgICBwcmVwYXJlSW50ZXJuYWxDb250ZXh0
LCBhbmQgaWYgc28sIHNldCB0aGUgY3VycmVudCBmaWxsL3N0cm9rZSBicnVzaAorICAgICAgICBi
YXNlZCBvbiBtX29yaWdpbmFsU3RhdGUuZmlsbEJydXNoL3N0cm9rZUJydXNoLiBJbiB0aGUgY29t
bW9uIGNhc2Ugb2YKKyAgICAgICAgYSBub24tY29sb3IgZ2x5cGgsIHRoaXMgYnJ1c2ggY2hhbmdl
IHdpbGwgYmUgZGV0ZWN0ZWQgYXMgdGhlIHNhbWUgYXMKKyAgICAgICAgdGhlIGN1cnJlbnQgdmFs
dWUsIGFuZCB0aGUgU2V0U3RhdGUgaXRlbSBnZW5lcmF0aW9uIHdpbGwgYmUgYXZvaWRlZC4KKwor
ICAgICAgICBUaGlzIGltcHJvdmVzIHRoZSBNb3Rpb25NYXJrIGRlc2lnbiBzdWJ0ZXN0IGJ5IDIu
NCUsIGFuZCB0aGUgb3ZlcmFsbAorICAgICAgICBzY29yZSBieSAwLjclLCB3aGVuIEdQVVAgRE9N
IHJlbmRlcmluZyBpcyBlbmFibGVkLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRHJh
d0dseXBoc1JlY29yZGVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29yZXRleHQv
RHJhd0dseXBoc1JlY29yZGVyQ29yZVRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RHJhd0ds
eXBoc1JlY29yZGVyOjpyZWNvcmRJbml0aWFsQ29sb3JzKToKKyAgICAgICAgKFdlYkNvcmU6OkRy
YXdHbHlwaHNSZWNvcmRlcjo6cHJlcGFyZUludGVybmFsQ29udGV4dCk6CisgICAgICAgIChXZWJD
b3JlOjpEcmF3R2x5cGhzUmVjb3JkZXI6OnVwZGF0ZUZpbGxDb2xvcik6CisgICAgICAgIChXZWJD
b3JlOjpEcmF3R2x5cGhzUmVjb3JkZXI6OnVwZGF0ZVN0cm9rZUNvbG9yKToKKwogMjAyMi0wNS0w
MyAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgogCiAgICAgICAgIFtKU0NdIElu
aXRpYWxpemUgZW1wdHkgYW5kIG51bGwgQXRvbVN0cmluZyBhdCBjb21waWxlIHRpbWUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9QQUwv
Q2hhbmdlTG9nCmluZGV4IDRmMDkyMzRlZjEwNzNkYjllMzI3MTQyMDE0ZGU2M2NiNDA3MzA5NzAu
LjI0MzUwNTVlOWQ3ZWIzM2E1MTRiMTRjZTZmMWFlZjk0NWI4YTZmNDcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIyLTA1LTAzICBDYW1lcm9uIE1jQ29ybWFjayAgPGhl
eWNhbUBhcHBsZS5jb20+CisKKyAgICAgICAgQXZvaWQgdXNpbmcgV2ViQ29yZTo6Q29sb3JzIGNy
ZWF0ZWQgd2l0aCBvdXQtb2YtbGluZSBjb21wb25lbnRzIGluIERyYXdHbHlwaHNSZWNvcmRlcgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM1NjA0Cisg
ICAgICAgIHJkYXI6Ly84ODM0NTY4MAorCisgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEZyYXNl
ci4KKworICAgICAgICAqIHBhbC9zcGkvY2cvQ29yZUdyYXBoaWNzU1BJLmg6IEFkZCBDR0NvbnRl
eHRHZXRTdHJva2VDb2xvckFzQ29sb3IuCisKIDIwMjItMDQtMjIgIEFsZXggQ2hyaXN0ZW5zZW4g
IDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBBZGp1c3QgU1BJIGhlYWRlcnMg
dG8gZml4IGJ1aWxkIHdpdGggbm9uLWludGVybmFsIFNESwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvUEFML3BhbC9zcGkvY2cvQ29yZUdyYXBoaWNzU1BJLmggYi9Tb3VyY2UvV2ViQ29yZS9Q
QUwvcGFsL3NwaS9jZy9Db3JlR3JhcGhpY3NTUEkuaAppbmRleCA5MTI2NmYxN2Q0M2YxM2Q4YWRj
Y2E2NjcxMWMzZjc2MDgyZjQwZWRjLi5iN2ZjMDhmOGU3ZjVjOWE3NjM0YjdhYTBlZmZmMzNjYjYz
YzRhODE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jZy9Db3JlR3Jh
cGhpY3NTUEkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jZy9Db3JlR3JhcGhp
Y3NTUEkuaApAQCAtMjQ0LDYgKzI0NCw3IEBAIENHQ29sb3JUcmFuc2Zvcm1SZWYgQ0dDb2xvclRy
YW5zZm9ybUNyZWF0ZShDR0NvbG9yU3BhY2VSZWYsIENGRGljdGlvbmFyeVJlZiBhdHRyCiBDR0Fm
ZmluZVRyYW5zZm9ybSBDR0NvbnRleHRHZXRCYXNlQ1RNKENHQ29udGV4dFJlZik7CiBDR0NvbXBv
c2l0ZU9wZXJhdGlvbiBDR0NvbnRleHRHZXRDb21wb3NpdGVPcGVyYXRpb24oQ0dDb250ZXh0UmVm
KTsKIENHQ29sb3JSZWYgQ0dDb250ZXh0R2V0RmlsbENvbG9yQXNDb2xvcihDR0NvbnRleHRSZWYp
OworQ0dDb2xvclJlZiBDR0NvbnRleHRHZXRTdHJva2VDb2xvckFzQ29sb3IoQ0dDb250ZXh0UmVm
KTsKIENHRmxvYXQgQ0dDb250ZXh0R2V0TGluZVdpZHRoKENHQ29udGV4dFJlZik7CiBib29sIENH
Q29udGV4dEdldFNob3VsZFNtb290aEZvbnRzKENHQ29udGV4dFJlZik7CiBib29sIENHQ29udGV4
dEdldFNob3VsZEFudGlhbGlhcyhDR0NvbnRleHRSZWYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRHJhd0dseXBoc1JlY29yZGVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9EcmF3R2x5cGhzUmVjb3JkZXIuaAppbmRleCAzZWM4Mzlj
MTc3MmZjZjI4MDAyYjZjZTllNTE0MzhjMWI0NDRkZDgwLi40MTgxOGRjY2MyNGIyNWNmZmQwZmI2
ZTY4OGMwM2Y5OWJlOWEwYzcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9EcmF3R2x5cGhzUmVjb3JkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9EcmF3R2x5cGhzUmVjb3JkZXIuaApAQCAtODQsNiArODQsNyBAQCBwcml2YXRl
OgogICAgIHZvaWQgcG9wdWxhdGVJbnRlcm5hbFN0YXRlKGNvbnN0IEdyYXBoaWNzQ29udGV4dFN0
YXRlJik7CiAgICAgdm9pZCBwb3B1bGF0ZUludGVybmFsQ29udGV4dChjb25zdCBHcmFwaGljc0Nv
bnRleHRTdGF0ZSYpOwogICAgIHZvaWQgcHJlcGFyZUludGVybmFsQ29udGV4dChjb25zdCBGb250
JiwgRm9udFNtb290aGluZ01vZGUpOworICAgIHZvaWQgcmVjb3JkSW5pdGlhbENvbG9ycygpOwog
ICAgIHZvaWQgY29uY2x1ZGVJbnRlcm5hbENvbnRleHQoKTsKIAogICAgIHZvaWQgdXBkYXRlRmls
bEJydXNoKGNvbnN0IFNvdXJjZUJydXNoJik7CkBAIC0xMjIsNiArMTIzLDExIEBAIHByaXZhdGU6
CiAgICAgICAgIGJvb2wgaWdub3JlVHJhbnNmb3JtcyB7IGZhbHNlIH07CiAgICAgfTsKICAgICBT
dGF0ZSBtX29yaWdpbmFsU3RhdGU7CisKKyNpZiBVU0UoQ09SRV9URVhUKSAmJiAhUExBVEZPUk0o
V0lOKQorICAgIFJldGFpblB0cjxDR0NvbG9yUmVmPiBtX2luaXRpYWxGaWxsQ29sb3I7CisgICAg
UmV0YWluUHRyPENHQ29sb3JSZWY+IG1faW5pdGlhbFN0cm9rZUNvbG9yOworI2VuZGlmCiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jb3JldGV4dC9EcmF3R2x5cGhzUmVjb3JkZXJDb3JlVGV4dC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb3JldGV4dC9EcmF3R2x5cGhzUmVjb3Jk
ZXJDb3JlVGV4dC5jcHAKaW5kZXggZjIzYzU0NTIwYmEzOWE5MjljYWFlYjk4OTkxNmMwYjkxZWNm
MTQ2Yy4uYjQxODUxZGU2NTAyMWEyZmJiZDAzMjY4ZmU0MjQ5MGU0ODIxOGJhNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29yZXRleHQvRHJhd0dseXBoc1Jl
Y29yZGVyQ29yZVRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NvcmV0ZXh0L0RyYXdHbHlwaHNSZWNvcmRlckNvcmVUZXh0LmNwcApAQCAtMTIyLDYgKzEyMiwx
MyBAQCB2b2lkIERyYXdHbHlwaHNSZWNvcmRlcjo6cG9wdWxhdGVJbnRlcm5hbENvbnRleHQoY29u
c3QgR3JhcGhpY3NDb250ZXh0U3RhdGUmIGNvbgogICAgIG1faW50ZXJuYWxDb250ZXh0LT5zZXRU
ZXh0RHJhd2luZ01vZGUoY29udGV4dFN0YXRlLnRleHREcmF3aW5nTW9kZSgpKTsKIH0KIAordm9p
ZCBEcmF3R2x5cGhzUmVjb3JkZXI6OnJlY29yZEluaXRpYWxDb2xvcnMoKQoreworICAgIENHQ29u
dGV4dFJlZiBjZ0NvbnRleHQgPSBtX2ludGVybmFsQ29udGV4dC0+cGxhdGZvcm1Db250ZXh0KCk7
CisgICAgbV9pbml0aWFsRmlsbENvbG9yID0gQ0dDb250ZXh0R2V0RmlsbENvbG9yQXNDb2xvcihj
Z0NvbnRleHQpOworICAgIG1faW5pdGlhbFN0cm9rZUNvbG9yID0gQ0dDb250ZXh0R2V0U3Ryb2tl
Q29sb3JBc0NvbG9yKGNnQ29udGV4dCk7Cit9CisKIHZvaWQgRHJhd0dseXBoc1JlY29yZGVyOjpw
cmVwYXJlSW50ZXJuYWxDb250ZXh0KGNvbnN0IEZvbnQmIGZvbnQsIEZvbnRTbW9vdGhpbmdNb2Rl
IHNtb290aGluZ01vZGUpCiB7CiAgICAgQVNTRVJUKENHQWZmaW5lVHJhbnNmb3JtSXNJZGVudGl0
eShDVEZvbnRHZXRNYXRyaXgoZm9udC5wbGF0Zm9ybURhdGEoKS5jdEZvbnQoKSkpKTsKQEAgLTEz
Niw2ICsxNDMsNyBAQCB2b2lkIERyYXdHbHlwaHNSZWNvcmRlcjo6cHJlcGFyZUludGVybmFsQ29u
dGV4dChjb25zdCBGb250JiBmb250LCBGb250U21vb3RoaW5nTQogICAgIGF1dG8mIGNvbnRleHRT
dGF0ZSA9IG1fb3duZXIuc3RhdGUoKTsKICAgICBwb3B1bGF0ZUludGVybmFsU3RhdGUoY29udGV4
dFN0YXRlKTsKICAgICBwb3B1bGF0ZUludGVybmFsQ29udGV4dChjb250ZXh0U3RhdGUpOworICAg
IHJlY29yZEluaXRpYWxDb2xvcnMoKTsKIH0KIAogdm9pZCBEcmF3R2x5cGhzUmVjb3JkZXI6OmNv
bmNsdWRlSW50ZXJuYWxDb250ZXh0KCkKQEAgLTE1Miw3ICsxNjAsMTAgQEAgdm9pZCBEcmF3R2x5
cGhzUmVjb3JkZXI6OnVwZGF0ZUZpbGxDb2xvcihDR0NvbG9yUmVmIGZpbGxDb2xvcikKICAgICAg
ICAgQVNTRVJUKG1fb3JpZ2luYWxTdGF0ZS5maWxsQnJ1c2gucGF0dGVybigpKTsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KLSAgICBtX293bmVyLnNldEZpbGxCcnVzaChDb2xvcjo6Y3JlYXRlQW5k
UHJlc2VydmVDb2xvclNwYWNlKGZpbGxDb2xvcikpOworICAgIGlmIChmaWxsQ29sb3IgPT0gbV9p
bml0aWFsRmlsbENvbG9yKQorICAgICAgICBtX293bmVyLnNldEZpbGxCcnVzaChtX29yaWdpbmFs
U3RhdGUuZmlsbEJydXNoKTsKKyAgICBlbHNlCisgICAgICAgIG1fb3duZXIuc2V0RmlsbEJydXNo
KENvbG9yOjpjcmVhdGVBbmRQcmVzZXJ2ZUNvbG9yU3BhY2UoZmlsbENvbG9yKSk7CiB9CiAKIHZv
aWQgRHJhd0dseXBoc1JlY29yZGVyOjp1cGRhdGVGaWxsQnJ1c2goY29uc3QgU291cmNlQnJ1c2gm
IG5ld0JydXNoKQpAQCAtMTY2LDcgKzE3NywxMCBAQCB2b2lkIERyYXdHbHlwaHNSZWNvcmRlcjo6
dXBkYXRlU3Ryb2tlQ29sb3IoQ0dDb2xvclJlZiBzdHJva2VDb2xvcikKICAgICAgICAgQVNTRVJU
KG1fb3JpZ2luYWxTdGF0ZS5zdHJva2VCcnVzaC5wYXR0ZXJuKCkpOwogICAgICAgICByZXR1cm47
CiAgICAgfQotICAgIG1fb3duZXIuc2V0U3Ryb2tlQnJ1c2goQ29sb3I6OmNyZWF0ZUFuZFByZXNl
cnZlQ29sb3JTcGFjZShzdHJva2VDb2xvcikpOworICAgIGlmIChzdHJva2VDb2xvciA9PSBtX2lu
aXRpYWxTdHJva2VDb2xvcikKKyAgICAgICAgbV9vd25lci5zZXRTdHJva2VCcnVzaChtX29yaWdp
bmFsU3RhdGUuc3Ryb2tlQnJ1c2gpOworICAgIGVsc2UKKyAgICAgICAgbV9vd25lci5zZXRTdHJv
a2VCcnVzaChDb2xvcjo6Y3JlYXRlQW5kUHJlc2VydmVDb2xvclNwYWNlKHN0cm9rZUNvbG9yKSk7
CiB9CiAKIHZvaWQgRHJhd0dseXBoc1JlY29yZGVyOjp1cGRhdGVTdHJva2VCcnVzaChjb25zdCBT
b3VyY2VCcnVzaCYgbmV3QnJ1c2gpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>