<?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>222402</bug_id>
          
          <creation_ts>2021-02-24 21:11:33 -0800</creation_ts>
          <short_desc>REGRESSION(r269957): Empty font names passed to canvas2d cause all text routines to crash</short_desc>
          <delta_ts>2021-02-25 14:14:26 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Myles C. Maxfield">mmaxfield</reporter>
          <assigned_to name="Myles C. Maxfield">mmaxfield</assigned_to>
          <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>clord</cc>
    
    <cc>darin</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1733198</commentid>
    <comment_count>0</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-02-24 21:11:33 -0800</bug_when>
    <thetext>REGRESSION(r269957): Empty font names passed to canvas2d cause all text routines to crash</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1733199</commentid>
    <comment_count>1</comment_count>
      <attachid>421497</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-02-24 21:13:07 -0800</bug_when>
    <thetext>Created attachment 421497
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1733200</commentid>
    <comment_count>2</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-02-24 21:13:10 -0800</bug_when>
    <thetext>&lt;rdar://problem/72621268&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1733260</commentid>
    <comment_count>3</comment_count>
      <attachid>421497</attachid>
    <who name="Chris Lord">clord</who>
    <bug_when>2021-02-25 01:13:50 -0800</bug_when>
    <thetext>Comment on attachment 421497
Patch

This looks good to me - I especially like the added assert and tests. Indeed, it was an oversight in the original change, it looks like I missed the `if (parsedStyle-&gt;isEmpty()) return` that was previously there... Doh!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1733337</commentid>
    <comment_count>4</comment_count>
      <attachid>421497</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-02-25 08:40:11 -0800</bug_when>
    <thetext>Comment on attachment 421497
Patch

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

&gt; Source/WebCore/html/canvas/CanvasRenderingContext2D.cpp:137
&gt; +    modifiableState().unparsedFont = newFontSafeCopy;
&gt; +
&gt; +    modifiableState().font.initialize(document.fontSelector(), *fontStyle);

I think this code is easier to understand if these two are in a single paragraph, not two separate ones.

&gt; Source/WebCore/html/canvas/CanvasRenderingContext2D.cpp:139
&gt; +    ASSERT(state().font.realized() &amp;&amp; state().font.isPopulated());

Why not two separate asserts? That way it’s slightly easier to tell which of the two failed.

&gt; Source/WebCore/html/canvas/CanvasRenderingContext2DBase.h:238
&gt; +        bool isPopulated() const { return m_font.fonts(); }

It’s a little frustrating to make something like this public just so we can do an assertion. Minimizing interfaces often makes the code more maintainable in the long run.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1733445</commentid>
    <comment_count>5</comment_count>
      <attachid>421497</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-02-25 12:03:44 -0800</bug_when>
    <thetext>Comment on attachment 421497
Patch

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

&gt;&gt; Source/WebCore/html/canvas/CanvasRenderingContext2DBase.h:238
&gt;&gt; +        bool isPopulated() const { return m_font.fonts(); }
&gt; 
&gt; It’s a little frustrating to make something like this public just so we can do an assertion. Minimizing interfaces often makes the code more maintainable in the long run.

I can surround it with #if ASSERT_ENABLED</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1733447</commentid>
    <comment_count>6</comment_count>
      <attachid>421551</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-02-25 12:04:37 -0800</bug_when>
    <thetext>Created attachment 421551
Patch for committing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1733459</commentid>
    <comment_count>7</comment_count>
      <attachid>421497</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-02-25 12:29:08 -0800</bug_when>
    <thetext>Comment on attachment 421497
Patch

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

&gt;&gt;&gt; Source/WebCore/html/canvas/CanvasRenderingContext2DBase.h:238
&gt;&gt;&gt; +        bool isPopulated() const { return m_font.fonts(); }
&gt;&gt; 
&gt;&gt; It’s a little frustrating to make something like this public just so we can do an assertion. Minimizing interfaces often makes the code more maintainable in the long run.
&gt; 
&gt; I can surround it with #if ASSERT_ENABLED

Well, I don’t think that makes it better, but I don’t object to doing that if you do think it does.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1733512</commentid>
    <comment_count>8</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-02-25 14:14:22 -0800</bug_when>
    <thetext>Committed r273512: &lt;https://commits.webkit.org/r273512&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 421551.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>421497</attachid>
            <date>2021-02-24 21:13:07 -0800</date>
            <delta_ts>2021-02-25 08:40:11 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222402-20210224211307.patch</filename>
            <type>text/plain</type>
            <size>9523</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjczNDY1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2YxNDkwNTQxODc1ODNm
YzFkYmIwN2YxNWQ1YmUyNzg3NDUwM2NmMi4uNjkyNjM4MjhiZTljOTlhNmYyNDlhOGRiMzRjNzUx
MGI0NDc3ODRjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDIxLTAyLTI0ICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgUkVHUkVTU0lP
TihyMjY5OTU3KTogRW1wdHkgZm9udCBuYW1lcyBwYXNzZWQgdG8gY2FudmFzMmQgY2F1c2UgYWxs
IHRleHQgcm91dGluZXMgdG8gY3Jhc2gKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIyMjQwMgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzI2MjEyNjg+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSXQgbG9v
a3MgbGlrZSBpdCB3YXMgc2ltcGx5IGFuIG92ZXJzaWdodCBmcm9tIHRoYXQgcGF0Y2guIElmIHRo
ZSBmb250IG5hbWUgaXMgZW1wdHksCisgICAgICAgIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6
c2V0Rm9udCgpIHdpbGwgc2V0IHRoZSBmb250IG9iamVjdCB0byBvbmUgdGhhdCBkb2Vzbid0IGhh
dmUKKyAgICAgICAgaXRzIGludGVybmFsIEZvbnRDYXNjYWRlRm9udHMgcG9pbnRlciBzZXQuCisK
KyAgICAgICAgVGVzdHM6IGZhc3QvdGV4dC9jYW52YXMtZm9udC1yZXNvbHV0aW9uLTIuaHRtbAor
ICAgICAgICAgICAgICAgZmFzdC90ZXh0L2NhbnZhcy1mb250LXJlc29sdXRpb24uaHRtbAorCisg
ICAgICAgICogaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6c2V0Rm9udCk6CisgICAgICAg
ICogaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZS5oOgorICAgICAgICAo
V2ViQ29yZTo6Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZTo6Rm9udFByb3h5Ojppc1BvcHVs
YXRlZCBjb25zdCk6CisgICAgICAgICogc3R5bGUvU3R5bGVSZXNvbHZlRm9yRm9udFJhdy5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6cmVzb2x2ZUZvckZvbnRSYXcpOgorCiAyMDIxLTAy
LTIzICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TXSBSZWR1
Y2UgdXNlIG9mIHJldGFpbi9yZWxlYXNlIGluIFdBS1dpbmRvdyBhbmQgcmVtb3ZlIHVubmVlZGVk
IG1ldGhvZHMgZnJvbSB0aGF0IGNsYXNzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcAppbmRleCBkNmE2NjBlMDA1YTAw
NjM5OTUxMGVmYWNmNjgwOGYyNDM5ZWYyY2JmLi5kZmZjODA1ZjU4MjUxNjA0ZTVlY2MxNGNlNzAy
M2UxMDU0YWYzY2EyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52
YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAKQEAgLTExMiwxMSArMTEyLDYgQEAgdm9pZCBD
YW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OnNldEZvbnQoY29uc3QgU3RyaW5nJiBuZXdGb250KQog
ICAgIGlmICghZm9udFJhdykKICAgICAgICAgcmV0dXJuOwogCi0gICAgLy8gVGhlIHBhcnNlIHN1
Y2NlZWRlZC4KLSAgICBTdHJpbmcgbmV3Rm9udFNhZmVDb3B5KG5ld0ZvbnQpOyAvLyBDcmVhdGUg
YSBzdHJpbmcgY29weSBzaW5jZSBuZXdGb250IGNhbiBiZSBkZWxldGVkIGluc2lkZSByZWFsaXpl
U2F2ZXMuCi0gICAgcmVhbGl6ZVNhdmVzKCk7Ci0gICAgbW9kaWZpYWJsZVN0YXRlKCkudW5wYXJz
ZWRGb250ID0gbmV3Rm9udFNhZmVDb3B5OwotCiAgICAgLy8gTWFwIHRoZSA8Y2FudmFzPiBmb250
IGludG8gdGhlIHRleHQgc3R5bGUuIElmIHRoZSBmb250IHVzZXMga2V5d29yZHMgbGlrZSBsYXJn
ZXIvc21hbGxlciwgdGhlc2Ugd2lsbCB3b3JrCiAgICAgLy8gcmVsYXRpdmUgdG8gdGhlIGNhbnZh
cy4KICAgICBEb2N1bWVudCYgZG9jdW1lbnQgPSBjYW52YXMoKS5kb2N1bWVudCgpOwpAQCAtMTMx
LDggKzEyNiwxNyBAQCB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6c2V0Rm9udChjb25z
dCBTdHJpbmcmIG5ld0ZvbnQpCiAgICAgICAgIGZvbnREZXNjcmlwdGlvbi5zZXRDb21wdXRlZFNp
emUoRGVmYXVsdEZvbnRTaXplKTsKICAgICB9CiAKLSAgICBpZiAoYXV0byBmb250U3R5bGUgPSBT
dHlsZTo6cmVzb2x2ZUZvckZvbnRSYXcoKmZvbnRSYXcsIFdURk1vdmUoZm9udERlc2NyaXB0aW9u
KSwgZG9jdW1lbnQpKQotICAgICAgICBtb2RpZmlhYmxlU3RhdGUoKS5mb250LmluaXRpYWxpemUo
ZG9jdW1lbnQuZm9udFNlbGVjdG9yKCksICpmb250U3R5bGUpOworICAgIGF1dG8gZm9udFN0eWxl
ID0gU3R5bGU6OnJlc29sdmVGb3JGb250UmF3KCpmb250UmF3LCBXVEZNb3ZlKGZvbnREZXNjcmlw
dGlvbiksIGRvY3VtZW50KTsKKyAgICBpZiAoIWZvbnRTdHlsZSkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgU3RyaW5nIG5ld0ZvbnRTYWZlQ29weShuZXdGb250KTsgLy8gQ3JlYXRlIGEgc3RyaW5n
IGNvcHkgc2luY2UgbmV3Rm9udCBjYW4gYmUgZGVsZXRlZCBpbnNpZGUgcmVhbGl6ZVNhdmVzLgor
ICAgIHJlYWxpemVTYXZlcygpOworICAgIG1vZGlmaWFibGVTdGF0ZSgpLnVucGFyc2VkRm9udCA9
IG5ld0ZvbnRTYWZlQ29weTsKKworICAgIG1vZGlmaWFibGVTdGF0ZSgpLmZvbnQuaW5pdGlhbGl6
ZShkb2N1bWVudC5mb250U2VsZWN0b3IoKSwgKmZvbnRTdHlsZSk7CisKKyAgICBBU1NFUlQoc3Rh
dGUoKS5mb250LnJlYWxpemVkKCkgJiYgc3RhdGUoKS5mb250LmlzUG9wdWxhdGVkKCkpOwogfQog
CiBpbmxpbmUgVGV4dERpcmVjdGlvbiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OnRvVGV4dERp
cmVjdGlvbihEaXJlY3Rpb24gZGlyZWN0aW9uLCBjb25zdCBSZW5kZXJTdHlsZSoqIGNvbXB1dGVk
U3R5bGUpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52
YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9D
YW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlLmgKaW5kZXggNmE4NWJhZGE4YjQ4YTQ2Yzg2Mzlm
YWNkY2NiMTM3OWRmYTE5MTViNS4uYjlhNDkxYmE2NTMwMWI5MjBmOGFiYjQyNjkyMjFjYmY5ZmNk
YjViYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVy
aW5nQ29udGV4dDJEQmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZh
c1JlbmRlcmluZ0NvbnRleHQyREJhc2UuaApAQCAtMjM1LDYgKzIzNSw3IEBAIHB1YmxpYzoKICAg
ICAgICAgRm9udFByb3h5JiBvcGVyYXRvcj0oY29uc3QgRm9udFByb3h5Jik7CiAKICAgICAgICAg
Ym9vbCByZWFsaXplZCgpIGNvbnN0IHsgcmV0dXJuIG1fZm9udC5mb250U2VsZWN0b3IoKTsgfQor
ICAgICAgICBib29sIGlzUG9wdWxhdGVkKCkgY29uc3QgeyByZXR1cm4gbV9mb250LmZvbnRzKCk7
IH0KICAgICAgICAgdm9pZCBpbml0aWFsaXplKEZvbnRTZWxlY3RvciYsIGNvbnN0IFJlbmRlclN0
eWxlJik7CiAgICAgICAgIGNvbnN0IEZvbnRNZXRyaWNzJiBmb250TWV0cmljcygpIGNvbnN0Owog
ICAgICAgICBjb25zdCBGb250Q2FzY2FkZURlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRpb24oKSBj
b25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlUmVzb2x2ZUZvckZv
bnRSYXcuY3BwIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVSZXNvbHZlRm9yRm9udFJhdy5j
cHAKaW5kZXggNTliNzFjNWMxYzIxZDhjZjczNjZmNWJjZjRmNmI5ZTU1YjM2ZGNiNC4uMzc4NThh
MzAyZWE1ZTYxMmM5NTM3ZWQ5NzBkNDg4NGYzNTJiYmVhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvc3R5bGUvU3R5bGVSZXNvbHZlRm9yRm9udFJhdy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvc3R5bGUvU3R5bGVSZXNvbHZlRm9yRm9udFJhdy5jcHAKQEAgLTczLDggKzczLDcgQEAgT3B0
aW9uYWw8UmVuZGVyU3R5bGU+IHJlc29sdmVGb3JGb250UmF3KGNvbnN0IEZvbnRSYXcmIGZvbnRS
YXcsIEZvbnRDYXNjYWRlRGVzY3IKICAgICAgICAgYm9vbCBpc0dlbmVyaWNGYW1pbHkgPSBmYWxz
ZTsKICAgICAgICAgc3dpdGNoT24oaXRlbSwgWyZdIChDU1NWYWx1ZUlEIGlkZW50KSB7CiAgICAg
ICAgICAgICBpc0dlbmVyaWNGYW1pbHkgPSBpZGVudCAhPSBDU1NWYWx1ZVdlYmtpdEJvZHk7Ci0g
ICAgICAgICAgICBmYW1pbHkgPSBpc0dlbmVyaWNGYW1pbHkgPyBDU1NQcm9wZXJ0eVBhcnNlckhl
bHBlcnM6OmdlbmVyaWNGb250RmFtaWx5RnJvbVZhbHVlSUQoaWRlbnQpCi0gICAgICAgICAgICAg
ICAgOiBBdG9tU3RyaW5nKGRvY3VtZW50LnNldHRpbmdzKCkuc3RhbmRhcmRGb250RmFtaWx5KCkp
OworICAgICAgICAgICAgZmFtaWx5ID0gaXNHZW5lcmljRmFtaWx5ID8gQ1NTUHJvcGVydHlQYXJz
ZXJIZWxwZXJzOjpnZW5lcmljRm9udEZhbWlseUZyb21WYWx1ZUlEKGlkZW50KSA6IEF0b21TdHJp
bmcoZG9jdW1lbnQuc2V0dGluZ3MoKS5zdGFuZGFyZEZvbnRGYW1pbHkoKSk7CiAgICAgICAgIH0s
IFsmXSAoY29uc3QgU3RyaW5nJiBmYW1pbHlTdHJpbmcpIHsKICAgICAgICAgICAgIGZhbWlseSA9
IGZhbWlseVN0cmluZzsKICAgICAgICAgfSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNThlMzUyMTM5OTc3MTQ0NzY2ZTMx
MjJhOWVhZDJjZjFmM2NkYmRhYy4uZDEyYjg5ZmEwYmE1OGQ4N2ZhMjhlYTIxNWNhYTAwMWQxY2Fi
MWJmNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDIxLTAyLTI0ICBNeWxlcyBDLiBNYXhmaWVs
ZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgUkVHUkVTU0lPTihyMjY5OTU3KTog
RW1wdHkgZm9udCBuYW1lcyBwYXNzZWQgdG8gY2FudmFzMmQgY2F1c2UgYWxsIHRleHQgcm91dGlu
ZXMgdG8gY3Jhc2gKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIyMjQwMgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzI2MjEyNjg+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L3RleHQvY2FudmFz
LWZvbnQtcmVzb2x1dGlvbi0yLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3Qv
dGV4dC9jYW52YXMtZm9udC1yZXNvbHV0aW9uLTIuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFz
dC90ZXh0L2NhbnZhcy1mb250LXJlc29sdXRpb24tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBmYXN0L3RleHQvY2FudmFzLWZvbnQtcmVzb2x1dGlvbi5odG1sOiBBZGRlZC4KKwogMjAy
MS0wMi0yNCAgSmVhbi1ZdmVzIEF2ZW5hcmQgIDxqeWFAYXBwbGUuY29tPgogCiAgICAgICAgIFtN
U0VdIE1lZGlhIHNlZ21lbnQgaXMgaW5jb3JyZWN0bHkgZHJvcHBlZCB3aGVuIHVzaW5nIG5lZ2F0
aXZlIHRpbWVzdGFtcE9mZnNldCBvciB3aGVuIHNvdXJjZSBidWZmZXIgYXBwZW5kV2luZG93IGlz
IHNldC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvdGV4dC9jYW52YXMtZm9udC1yZXNv
bHV0aW9uLTItZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC9jYW52YXMtZm9u
dC1yZXNvbHV0aW9uLTItZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41NDk4MzgzOTFiMDM4YmIy
N2MzZTI0Mzc4MzE3MTA2ZTA4NmQyYzVmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC90ZXh0L2NhbnZhcy1mb250LXJlc29sdXRpb24tMi1leHBlY3RlZC5odG1sCkBAIC0wLDAg
KzEsMjAgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzwvaGVhZD4KKzxib2R5
PgorVGhpcyB0ZXN0IG1ha2VzIHN1cmUgdGhhdCBjYW52YXMyZCdzIHRleHQgZnVuY3Rpb25zIGRv
bid0IGNyYXNoIHdoZW4gcGFzc2VkIHVuZXhwZWN0ZWQgZm9udCBzdHJpbmdzLgorVGhlIHRlc3Qg
cGFzc2VzIGlmIHlvdSBzZWUgIkhlbGxvIiBpbiBIZWx2ZXRpY2EsIGZvbGxvd2VkIGJ5ICJIZWxs
byIgaW4gVGltZXMuCis8ZGl2PjxjYW52YXMgaWQ9ImMiIHdpZHRoPSI0MDAiIGhlaWdodD0iNDAw
Ij48L2NhbnZhcz48L2Rpdj4KKzxzY3JpcHQ+Cit2YXIgY29udGV4dCA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJjIikuZ2V0Q29udGV4dCgiMmQiKTsKK2NvbnRleHQuZm9udCA9ICIzMnB4ICdI
ZWx2ZXRpY2EnIjsKK2NvbnRleHQuZmlsbFRleHQoIkhlbGxvIiwgMCwgMTAwKTsKK2NvbnRleHQu
Zm9udCA9ICIzMnB4ICdUaW1lcyciOworY29udGV4dC5maWxsVGV4dCgiSGVsbG8iLCAwLCAyMDAp
OworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvdGV4dC9jYW52YXMtZm9udC1yZXNvbHV0
aW9uLTIuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC9jYW52YXMtZm9udC1yZXNvbHV0aW9u
LTIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi44MjQ4OGE3NWNiMDRkMzViYjJjZjY4MWY4YzhhZWE0OTk1OGE1
NjViCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L2NhbnZhcy1mb250
LXJlc29sdXRpb24tMi5odG1sCkBAIC0wLDAgKzEsMjIgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0
bWw+Cis8aGVhZD4KKzwvaGVhZD4KKzxib2R5PgorVGhpcyB0ZXN0IG1ha2VzIHN1cmUgdGhhdCBj
YW52YXMyZCdzIHRleHQgZnVuY3Rpb25zIGRvbid0IGNyYXNoIHdoZW4gcGFzc2VkIHVuZXhwZWN0
ZWQgZm9udCBzdHJpbmdzLgorVGhlIHRlc3QgcGFzc2VzIGlmIHlvdSBzZWUgIkhlbGxvIiBpbiBI
ZWx2ZXRpY2EsIGZvbGxvd2VkIGJ5ICJIZWxsbyIgaW4gVGltZXMuCis8ZGl2PjxjYW52YXMgaWQ9
ImMiIHdpZHRoPSI0MDAiIGhlaWdodD0iNDAwIj48L2NhbnZhcz48L2Rpdj4KKzxzY3JpcHQ+Cit2
YXIgY29udGV4dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjIikuZ2V0Q29udGV4dCgiMmQi
KTsKK2NvbnRleHQuZm9udCA9ICIzMnB4ICdIZWx2ZXRpY2EnIjsKK2NvbnRleHQuZm9udCA9ICIz
MnB4ICcnIjsKK2NvbnRleHQuZmlsbFRleHQoIkhlbGxvIiwgMCwgMTAwKTsKK2NvbnRleHQuZm9u
dCA9ICIzMnB4ICdUaW1lcyciOworY29udGV4dC5mb250ID0gIjMycHggJyciOworY29udGV4dC5m
aWxsVGV4dCgiSGVsbG8iLCAwLCAyMDApOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cis8
L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
dGV4dC9jYW52YXMtZm9udC1yZXNvbHV0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zh
c3QvdGV4dC9jYW52YXMtZm9udC1yZXNvbHV0aW9uLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42
MzZlMTY5ZGU1NzI3OGY2YmJiYjkxMDg3OTFiYzc0ZTg4YmVjZDlmCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L2NhbnZhcy1mb250LXJlc29sdXRpb24tZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEgQEAKK1RoaXMgdGVzdCBtYWtlcyBzdXJlIHRoYXQgY2FudmFzMmQncyB0
ZXh0IGZ1bmN0aW9ucyBkb24ndCBjcmFzaCB3aGVuIHBhc3NlZCB1bmV4cGVjdGVkIGZvbnQgc3Ry
aW5ncy4gVGhlIHRlc3QgcGFzc2VzIGlmIHRoZXJlIGlzIG5vIGNyYXNoLgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC90ZXh0L2NhbnZhcy1mb250LXJlc29sdXRpb24uaHRtbCBiL0xheW91
dFRlc3RzL2Zhc3QvdGV4dC9jYW52YXMtZm9udC1yZXNvbHV0aW9uLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZWViY2ZmY2VlODJmMzg0MDY0NDYwMmE0MTJmNmY0ODA1MWVlNjEwMAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC9jYW52YXMtZm9udC1yZXNvbHV0aW9uLmh0bWwKQEAg
LTAsMCArMSwzNiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPC9oZWFkPgor
PGJvZHk+CitUaGlzIHRlc3QgbWFrZXMgc3VyZSB0aGF0IGNhbnZhczJkJ3MgdGV4dCBmdW5jdGlv
bnMgZG9uJ3QgY3Jhc2ggd2hlbiBwYXNzZWQgdW5leHBlY3RlZCBmb250IHN0cmluZ3MuCitUaGUg
dGVzdCBwYXNzZXMgaWYgdGhlcmUgaXMgbm8gY3Jhc2guCis8Y2FudmFzIGlkPSJjIiB3aWR0aD0i
MjAiIGhlaWdodD0iMjAiPjwvY2FudmFzPgorPHNjcmlwdD4KK2lmICh3aW5kb3cudGVzdFJ1bm5l
cikKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKK3ZhciBjb250ZXh0ID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoImMiKS5nZXRDb250ZXh0KCIyZCIpOworY29udGV4dC5mb250ID0gIjEw
MHB4ICcnIjsKK2NvbnRleHQubWVhc3VyZVRleHQoImhlbGxvIik7Citjb250ZXh0LmZvbnQgPSAi
MTAwcHggJ2luaXRpYWwnIjsKK2NvbnRleHQubWVhc3VyZVRleHQoImhlbGxvIik7Citjb250ZXh0
LmZvbnQgPSAiMTAwcHggJ2luaGVyaXQnIjsKK2NvbnRleHQubWVhc3VyZVRleHQoImhlbGxvIik7
Citjb250ZXh0LmZvbnQgPSAiMTAwcHggJ3JldmVydCciOworY29udGV4dC5tZWFzdXJlVGV4dCgi
aGVsbG8iKTsKK2NvbnRleHQuZm9udCA9ICIxMDBweCAndGhpc2lzbm90YXJlYWxmb250bmFtZSci
OworY29udGV4dC5tZWFzdXJlVGV4dCgiaGVsbG8iKTsKK2NvbnRleHQuZm9udCA9ICIxMDBweCAn
fn5+fn5+fn4nIjsKK2NvbnRleHQubWVhc3VyZVRleHQoImhlbGxvIik7Citjb250ZXh0LmZvbnQg
PSAiMTAwcHggJ35+fn5+fn5+JyI7Citjb250ZXh0Lm1lYXN1cmVUZXh0KCJoZWxsbyIpOworY29u
dGV4dC5mb250ID0gIjEwMHB4ICdcdTA2NjAnIjsKK2NvbnRleHQubWVhc3VyZVRleHQoImhlbGxv
Iik7Citjb250ZXh0LmZvbnQgPSAifn5+fn4iOworY29udGV4dC5tZWFzdXJlVGV4dCgiaGVsbG8i
KTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0
bWw+Cg==
</data>
<flag name="review"
          id="440354"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>421551</attachid>
            <date>2021-02-25 12:04:37 -0800</date>
            <delta_ts>2021-02-25 14:14:24 -0800</delta_ts>
            <desc>Patch for committing</desc>
            <filename>bug-222402-20210225120436.patch</filename>
            <type>text/plain</type>
            <size>9497</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjczNDk5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWQxMzFlMWQ2ZTc3YTc5
YTlkZmE5ZTE4NmQ1MmFjZWZlNzU1ZDE5MS4uODNlYmJkYTdhNmVjYmYyZTVlZWZkN2I0MTkyZjQ5
NGMyNzlhMGY5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDIxLTAyLTI0ICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgUkVHUkVTU0lP
TihyMjY5OTU3KTogRW1wdHkgZm9udCBuYW1lcyBwYXNzZWQgdG8gY2FudmFzMmQgY2F1c2UgYWxs
IHRleHQgcm91dGluZXMgdG8gY3Jhc2gKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIyMjQwMgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzI2MjEyNjg+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIgYW5kIENocmlzIExvcmQuCisKKyAg
ICAgICAgSXQgbG9va3MgbGlrZSBpdCB3YXMgc2ltcGx5IGFuIG92ZXJzaWdodCBmcm9tIHRoYXQg
cGF0Y2guIElmIHRoZSBmb250IG5hbWUgaXMgZW1wdHksCisgICAgICAgIENhbnZhc1JlbmRlcmlu
Z0NvbnRleHQyRDo6c2V0Rm9udCgpIHdpbGwgc2V0IHRoZSBmb250IG9iamVjdCB0byBvbmUgdGhh
dCBkb2Vzbid0IGhhdmUKKyAgICAgICAgaXRzIGludGVybmFsIEZvbnRDYXNjYWRlRm9udHMgcG9p
bnRlciBzZXQuCisKKyAgICAgICAgVGVzdHM6IGZhc3QvdGV4dC9jYW52YXMtZm9udC1yZXNvbHV0
aW9uLTIuaHRtbAorICAgICAgICAgICAgICAgZmFzdC90ZXh0L2NhbnZhcy1mb250LXJlc29sdXRp
b24uaHRtbAorCisgICAgICAgICogaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJE
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6c2V0Rm9u
dCk6CisgICAgICAgICogaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZS5o
OgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZTo6Rm9udFBy
b3h5Ojppc1BvcHVsYXRlZCBjb25zdCk6CisgICAgICAgICogc3R5bGUvU3R5bGVSZXNvbHZlRm9y
Rm9udFJhdy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6cmVzb2x2ZUZvckZvbnRSYXcp
OgorCiAyMDIxLTAyLTI1ICBQZXIgQXJuZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KIAog
ICAgICAgICBBdm9pZCBzZXR0aW5nIHBhZ2UgbXV0ZWQgc3RhdGUgaWYgdW5jaGFuZ2VkCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0
MkQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4
dDJELmNwcAppbmRleCBkNmE2NjBlMDA1YTAwNjM5OTUxMGVmYWNmNjgwOGYyNDM5ZWYyY2JmLi5j
ZjRiMGQ2ZGE2OTMxZDk5OGNmZjhhNDdhM2FiZDZjYTU4ZDM3NDYwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAK
QEAgLTExMiwxMSArMTEyLDYgQEAgdm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OnNldEZv
bnQoY29uc3QgU3RyaW5nJiBuZXdGb250KQogICAgIGlmICghZm9udFJhdykKICAgICAgICAgcmV0
dXJuOwogCi0gICAgLy8gVGhlIHBhcnNlIHN1Y2NlZWRlZC4KLSAgICBTdHJpbmcgbmV3Rm9udFNh
ZmVDb3B5KG5ld0ZvbnQpOyAvLyBDcmVhdGUgYSBzdHJpbmcgY29weSBzaW5jZSBuZXdGb250IGNh
biBiZSBkZWxldGVkIGluc2lkZSByZWFsaXplU2F2ZXMuCi0gICAgcmVhbGl6ZVNhdmVzKCk7Ci0g
ICAgbW9kaWZpYWJsZVN0YXRlKCkudW5wYXJzZWRGb250ID0gbmV3Rm9udFNhZmVDb3B5OwotCiAg
ICAgLy8gTWFwIHRoZSA8Y2FudmFzPiBmb250IGludG8gdGhlIHRleHQgc3R5bGUuIElmIHRoZSBm
b250IHVzZXMga2V5d29yZHMgbGlrZSBsYXJnZXIvc21hbGxlciwgdGhlc2Ugd2lsbCB3b3JrCiAg
ICAgLy8gcmVsYXRpdmUgdG8gdGhlIGNhbnZhcy4KICAgICBEb2N1bWVudCYgZG9jdW1lbnQgPSBj
YW52YXMoKS5kb2N1bWVudCgpOwpAQCAtMTMxLDggKzEyNiwxNyBAQCB2b2lkIENhbnZhc1JlbmRl
cmluZ0NvbnRleHQyRDo6c2V0Rm9udChjb25zdCBTdHJpbmcmIG5ld0ZvbnQpCiAgICAgICAgIGZv
bnREZXNjcmlwdGlvbi5zZXRDb21wdXRlZFNpemUoRGVmYXVsdEZvbnRTaXplKTsKICAgICB9CiAK
LSAgICBpZiAoYXV0byBmb250U3R5bGUgPSBTdHlsZTo6cmVzb2x2ZUZvckZvbnRSYXcoKmZvbnRS
YXcsIFdURk1vdmUoZm9udERlc2NyaXB0aW9uKSwgZG9jdW1lbnQpKQotICAgICAgICBtb2RpZmlh
YmxlU3RhdGUoKS5mb250LmluaXRpYWxpemUoZG9jdW1lbnQuZm9udFNlbGVjdG9yKCksICpmb250
U3R5bGUpOworICAgIGF1dG8gZm9udFN0eWxlID0gU3R5bGU6OnJlc29sdmVGb3JGb250UmF3KCpm
b250UmF3LCBXVEZNb3ZlKGZvbnREZXNjcmlwdGlvbiksIGRvY3VtZW50KTsKKyAgICBpZiAoIWZv
bnRTdHlsZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgU3RyaW5nIG5ld0ZvbnRTYWZlQ29weShu
ZXdGb250KTsgLy8gQ3JlYXRlIGEgc3RyaW5nIGNvcHkgc2luY2UgbmV3Rm9udCBjYW4gYmUgZGVs
ZXRlZCBpbnNpZGUgcmVhbGl6ZVNhdmVzLgorICAgIHJlYWxpemVTYXZlcygpOworICAgIG1vZGlm
aWFibGVTdGF0ZSgpLnVucGFyc2VkRm9udCA9IG5ld0ZvbnRTYWZlQ29weTsKKworICAgIG1vZGlm
aWFibGVTdGF0ZSgpLmZvbnQuaW5pdGlhbGl6ZShkb2N1bWVudC5mb250U2VsZWN0b3IoKSwgKmZv
bnRTdHlsZSk7CisgICAgQVNTRVJUKHN0YXRlKCkuZm9udC5yZWFsaXplZCgpKTsKKyAgICBBU1NF
UlQoc3RhdGUoKS5mb250LmlzUG9wdWxhdGVkKCkpOwogfQogCiBpbmxpbmUgVGV4dERpcmVjdGlv
biBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OnRvVGV4dERpcmVjdGlvbihEaXJlY3Rpb24gZGly
ZWN0aW9uLCBjb25zdCBSZW5kZXJTdHlsZSoqIGNvbXB1dGVkU3R5bGUpIGNvbnN0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkRC
YXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0
MkRCYXNlLmgKaW5kZXggNmE4NWJhZGE4YjQ4YTQ2Yzg2MzlmYWNkY2NiMTM3OWRmYTE5MTViNS4u
MTBmMjc4YWM1YjdkYmQ1MjA5YjAwODNhYjAxMTVjNDUxZGU1ZjE1OSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJh
c2UuaApAQCAtMjQxLDYgKzI0MSwxMCBAQCBwdWJsaWM6CiAgICAgICAgIGZsb2F0IHdpZHRoKGNv
bnN0IFRleHRSdW4mLCBHbHlwaE92ZXJmbG93KiA9IDApIGNvbnN0OwogICAgICAgICB2b2lkIGRy
YXdCaWRpVGV4dChHcmFwaGljc0NvbnRleHQmLCBjb25zdCBUZXh0UnVuJiwgY29uc3QgRmxvYXRQ
b2ludCYsIEZvbnRDYXNjYWRlOjpDdXN0b21Gb250Tm90UmVhZHlBY3Rpb24pIGNvbnN0OwogCisj
aWYgQVNTRVJUX0VOQUJMRUQKKyAgICAgICAgYm9vbCBpc1BvcHVsYXRlZCgpIGNvbnN0IHsgcmV0
dXJuIG1fZm9udC5mb250cygpOyB9CisjZW5kaWYKKwogICAgIHByaXZhdGU6CiAgICAgICAgIHZv
aWQgdXBkYXRlKEZvbnRTZWxlY3RvciYpOwogICAgICAgICB2b2lkIGZvbnRzTmVlZFVwZGF0ZShG
b250U2VsZWN0b3ImKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxl
L1N0eWxlUmVzb2x2ZUZvckZvbnRSYXcuY3BwIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVS
ZXNvbHZlRm9yRm9udFJhdy5jcHAKaW5kZXggNTliNzFjNWMxYzIxZDhjZjczNjZmNWJjZjRmNmI5
ZTU1YjM2ZGNiNC4uMzc4NThhMzAyZWE1ZTYxMmM5NTM3ZWQ5NzBkNDg4NGYzNTJiYmVhNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVSZXNvbHZlRm9yRm9udFJhdy5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVSZXNvbHZlRm9yRm9udFJhdy5jcHAKQEAg
LTczLDggKzczLDcgQEAgT3B0aW9uYWw8UmVuZGVyU3R5bGU+IHJlc29sdmVGb3JGb250UmF3KGNv
bnN0IEZvbnRSYXcmIGZvbnRSYXcsIEZvbnRDYXNjYWRlRGVzY3IKICAgICAgICAgYm9vbCBpc0dl
bmVyaWNGYW1pbHkgPSBmYWxzZTsKICAgICAgICAgc3dpdGNoT24oaXRlbSwgWyZdIChDU1NWYWx1
ZUlEIGlkZW50KSB7CiAgICAgICAgICAgICBpc0dlbmVyaWNGYW1pbHkgPSBpZGVudCAhPSBDU1NW
YWx1ZVdlYmtpdEJvZHk7Ci0gICAgICAgICAgICBmYW1pbHkgPSBpc0dlbmVyaWNGYW1pbHkgPyBD
U1NQcm9wZXJ0eVBhcnNlckhlbHBlcnM6OmdlbmVyaWNGb250RmFtaWx5RnJvbVZhbHVlSUQoaWRl
bnQpCi0gICAgICAgICAgICAgICAgOiBBdG9tU3RyaW5nKGRvY3VtZW50LnNldHRpbmdzKCkuc3Rh
bmRhcmRGb250RmFtaWx5KCkpOworICAgICAgICAgICAgZmFtaWx5ID0gaXNHZW5lcmljRmFtaWx5
ID8gQ1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzOjpnZW5lcmljRm9udEZhbWlseUZyb21WYWx1ZUlE
KGlkZW50KSA6IEF0b21TdHJpbmcoZG9jdW1lbnQuc2V0dGluZ3MoKS5zdGFuZGFyZEZvbnRGYW1p
bHkoKSk7CiAgICAgICAgIH0sIFsmXSAoY29uc3QgU3RyaW5nJiBmYW1pbHlTdHJpbmcpIHsKICAg
ICAgICAgICAgIGZhbWlseSA9IGZhbWlseVN0cmluZzsKICAgICAgICAgfSk7CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggM2Zj
ZTg3YWJkYTIyODhlNWI3ZTQ5ZTc1YzY0ZGViN2EzNWI5MThlNi4uNGUwN2I5YWIwYTkzY2ZkOTNl
MGIwMDA0ZmE2MDA2Mjc1NDUwNDBkNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDIxLTAyLTI0
ICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgUkVH
UkVTU0lPTihyMjY5OTU3KTogRW1wdHkgZm9udCBuYW1lcyBwYXNzZWQgdG8gY2FudmFzMmQgY2F1
c2UgYWxsIHRleHQgcm91dGluZXMgdG8gY3Jhc2gKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMjQwMgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzI2
MjEyNjg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIgYW5kIENocmlzIExvcmQu
CisKKyAgICAgICAgKiBmYXN0L3RleHQvY2FudmFzLWZvbnQtcmVzb2x1dGlvbi0yLWV4cGVjdGVk
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvdGV4dC9jYW52YXMtZm9udC1yZXNvbHV0aW9u
LTIuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC90ZXh0L2NhbnZhcy1mb250LXJlc29sdXRp
b24tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3RleHQvY2FudmFzLWZvbnQt
cmVzb2x1dGlvbi5odG1sOiBBZGRlZC4KKwogMjAyMS0wMi0yNSAgUm9iZXJ0IEplbm5lciAgPGpl
bm5lckBhcHBsZS5jb20+CiAKICAgICAgICAgWyBtYWNPUyBXazIgXSBtZWRpYS9tZWRpYS1mcmFn
bWVudHMvVEMwMDUxLmh0bWwgaXMgZmxha2V5IGNyYXNoaW5nCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L3RleHQvY2FudmFzLWZvbnQtcmVzb2x1dGlvbi0yLWV4cGVjdGVkLmh0bWwgYi9M
YXlvdXRUZXN0cy9mYXN0L3RleHQvY2FudmFzLWZvbnQtcmVzb2x1dGlvbi0yLWV4cGVjdGVkLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNTQ5ODM4MzkxYjAzOGJiMjdjM2UyNDM3ODMxNzEwNmUwODZkMmM1Zgot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC9jYW52YXMtZm9udC1yZXNv
bHV0aW9uLTItZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDIwIEBACis8IURPQ1RZUEUgaHRtbD4K
KzxodG1sPgorPGhlYWQ+Cis8L2hlYWQ+Cis8Ym9keT4KK1RoaXMgdGVzdCBtYWtlcyBzdXJlIHRo
YXQgY2FudmFzMmQncyB0ZXh0IGZ1bmN0aW9ucyBkb24ndCBjcmFzaCB3aGVuIHBhc3NlZCB1bmV4
cGVjdGVkIGZvbnQgc3RyaW5ncy4KK1RoZSB0ZXN0IHBhc3NlcyBpZiB5b3Ugc2VlICJIZWxsbyIg
aW4gSGVsdmV0aWNhLCBmb2xsb3dlZCBieSAiSGVsbG8iIGluIFRpbWVzLgorPGRpdj48Y2FudmFz
IGlkPSJjIiB3aWR0aD0iNDAwIiBoZWlnaHQ9IjQwMCI+PC9jYW52YXM+PC9kaXY+Cis8c2NyaXB0
PgordmFyIGNvbnRleHQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYyIpLmdldENvbnRleHQo
IjJkIik7Citjb250ZXh0LmZvbnQgPSAiMzJweCAnSGVsdmV0aWNhJyI7Citjb250ZXh0LmZpbGxU
ZXh0KCJIZWxsbyIsIDAsIDEwMCk7Citjb250ZXh0LmZvbnQgPSAiMzJweCAnVGltZXMnIjsKK2Nv
bnRleHQuZmlsbFRleHQoIkhlbGxvIiwgMCwgMjAwKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9o
dG1sPgorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L3RleHQvY2FudmFzLWZvbnQtcmVzb2x1dGlvbi0yLmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L3RleHQvY2FudmFzLWZvbnQtcmVzb2x1dGlvbi0yLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODI0ODhh
NzVjYjA0ZDM1YmIyY2Y2ODFmOGM4YWVhNDk5NThhNTY1YgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvdGV4dC9jYW52YXMtZm9udC1yZXNvbHV0aW9uLTIuaHRtbApAQCAtMCww
ICsxLDIyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8L2hlYWQ+Cis8Ym9k
eT4KK1RoaXMgdGVzdCBtYWtlcyBzdXJlIHRoYXQgY2FudmFzMmQncyB0ZXh0IGZ1bmN0aW9ucyBk
b24ndCBjcmFzaCB3aGVuIHBhc3NlZCB1bmV4cGVjdGVkIGZvbnQgc3RyaW5ncy4KK1RoZSB0ZXN0
IHBhc3NlcyBpZiB5b3Ugc2VlICJIZWxsbyIgaW4gSGVsdmV0aWNhLCBmb2xsb3dlZCBieSAiSGVs
bG8iIGluIFRpbWVzLgorPGRpdj48Y2FudmFzIGlkPSJjIiB3aWR0aD0iNDAwIiBoZWlnaHQ9IjQw
MCI+PC9jYW52YXM+PC9kaXY+Cis8c2NyaXB0PgordmFyIGNvbnRleHQgPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgiYyIpLmdldENvbnRleHQoIjJkIik7Citjb250ZXh0LmZvbnQgPSAiMzJweCAn
SGVsdmV0aWNhJyI7Citjb250ZXh0LmZvbnQgPSAiMzJweCAnJyI7Citjb250ZXh0LmZpbGxUZXh0
KCJIZWxsbyIsIDAsIDEwMCk7Citjb250ZXh0LmZvbnQgPSAiMzJweCAnVGltZXMnIjsKK2NvbnRl
eHQuZm9udCA9ICIzMnB4ICcnIjsKK2NvbnRleHQuZmlsbFRleHQoIkhlbGxvIiwgMCwgMjAwKTsK
Kzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3RleHQvY2FudmFzLWZvbnQtcmVzb2x1dGlv
bi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3RleHQvY2FudmFzLWZvbnQtcmVzb2x1
dGlvbi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjM2ZTE2OWRlNTcyNzhmNmJiYmI5MTA4Nzkx
YmM3NGU4OGJlY2Q5ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC9j
YW52YXMtZm9udC1yZXNvbHV0aW9uLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxIEBACitUaGlzIHRl
c3QgbWFrZXMgc3VyZSB0aGF0IGNhbnZhczJkJ3MgdGV4dCBmdW5jdGlvbnMgZG9uJ3QgY3Jhc2gg
d2hlbiBwYXNzZWQgdW5leHBlY3RlZCBmb250IHN0cmluZ3MuIFRoZSB0ZXN0IHBhc3NlcyBpZiB0
aGVyZSBpcyBubyBjcmFzaC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvdGV4dC9jYW52
YXMtZm9udC1yZXNvbHV0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3RleHQvY2FudmFzLWZv
bnQtcmVzb2x1dGlvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVlYmNmZmNlZTgyZjM4NDA2NDQ2MDJhNDEy
ZjZmNDgwNTFlZTYxMDAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3RleHQv
Y2FudmFzLWZvbnQtcmVzb2x1dGlvbi5odG1sCkBAIC0wLDAgKzEsMzYgQEAKKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWw+Cis8aGVhZD4KKzwvaGVhZD4KKzxib2R5PgorVGhpcyB0ZXN0IG1ha2VzIHN1
cmUgdGhhdCBjYW52YXMyZCdzIHRleHQgZnVuY3Rpb25zIGRvbid0IGNyYXNoIHdoZW4gcGFzc2Vk
IHVuZXhwZWN0ZWQgZm9udCBzdHJpbmdzLgorVGhlIHRlc3QgcGFzc2VzIGlmIHRoZXJlIGlzIG5v
IGNyYXNoLgorPGNhbnZhcyBpZD0iYyIgd2lkdGg9IjIwIiBoZWlnaHQ9IjIwIj48L2NhbnZhcz4K
KzxzY3JpcHQ+CitpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1bm5lci5kdW1wQXNU
ZXh0KCk7Cit2YXIgY29udGV4dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjIikuZ2V0Q29u
dGV4dCgiMmQiKTsKK2NvbnRleHQuZm9udCA9ICIxMDBweCAnJyI7Citjb250ZXh0Lm1lYXN1cmVU
ZXh0KCJoZWxsbyIpOworY29udGV4dC5mb250ID0gIjEwMHB4ICdpbml0aWFsJyI7Citjb250ZXh0
Lm1lYXN1cmVUZXh0KCJoZWxsbyIpOworY29udGV4dC5mb250ID0gIjEwMHB4ICdpbmhlcml0JyI7
Citjb250ZXh0Lm1lYXN1cmVUZXh0KCJoZWxsbyIpOworY29udGV4dC5mb250ID0gIjEwMHB4ICdy
ZXZlcnQnIjsKK2NvbnRleHQubWVhc3VyZVRleHQoImhlbGxvIik7Citjb250ZXh0LmZvbnQgPSAi
MTAwcHggJ3RoaXNpc25vdGFyZWFsZm9udG5hbWUnIjsKK2NvbnRleHQubWVhc3VyZVRleHQoImhl
bGxvIik7Citjb250ZXh0LmZvbnQgPSAiMTAwcHggJ35+fn5+fn5+JyI7Citjb250ZXh0Lm1lYXN1
cmVUZXh0KCJoZWxsbyIpOworY29udGV4dC5mb250ID0gIjEwMHB4ICd+fn5+fn5+ficiOworY29u
dGV4dC5tZWFzdXJlVGV4dCgiaGVsbG8iKTsKK2NvbnRleHQuZm9udCA9ICIxMDBweCAnXHUwNjYw
JyI7Citjb250ZXh0Lm1lYXN1cmVUZXh0KCJoZWxsbyIpOworY29udGV4dC5mb250ID0gIn5+fn5+
IjsKK2NvbnRleHQubWVhc3VyZVRleHQoImhlbGxvIik7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwv
aHRtbD4KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>