<?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>228927</bug_id>
          
          <creation_ts>2021-08-09 15:35:47 -0700</creation_ts>
          <short_desc>[FreeType] Avoid yucky strong alias computations in font fallback code</short_desc>
          <delta_ts>2021-08-26 12:30:43 -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>WebKitGTK</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=147057</see_also>
    
    <see_also>https://bugs.freedesktop.org/show_bug.cgi?id=19375</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Michael Catanzaro">mcatanzaro</reporter>
          <assigned_to name="Michael Catanzaro">mcatanzaro</assigned_to>
          <cc>annulen</cc>
    
    <cc>bugs-noreply</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1782999</commentid>
    <comment_count>0</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2021-08-09 15:35:47 -0700</bug_when>
    <thetext>In bug #147057 I added a bunch of copypasted code from Skia that performs black magic to sort font patterns in order to guess whether one font is strongly-aliased to another. In https://bugs.freedesktop.org/show_bug.cgi?id=19375 Fontconfig added a new FcPatternGetWithBinding() API to do this directly. It has been four years now, so in theory we can now remove all the yucky code and use FcPatternGetWithBinding() instead. I&apos;ve attached a patch that does exactly that.

Problem is, my patch doesn&apos;t work at all. For some reason, FcPatternGetWithBinding() reports that *every* binding is a strong binding, so now every match performed by Fontconfig is accepted, which is not what we want. I will ask the Fontconfig developers if I&apos;m doing something obviously wrong.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1783000</commentid>
    <comment_count>1</comment_count>
      <attachid>435217</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2021-08-09 15:38:03 -0700</bug_when>
    <thetext>Created attachment 435217
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1783152</commentid>
    <comment_count>2</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2021-08-10 06:45:25 -0700</bug_when>
    <thetext>FontConfig issue: https://gitlab.freedesktop.org/fontconfig/fontconfig/-/issues/294</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1787572</commentid>
    <comment_count>3</comment_count>
      <attachid>436504</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2021-08-26 06:48:48 -0700</bug_when>
    <thetext>Created attachment 436504
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1787573</commentid>
    <comment_count>4</comment_count>
      <attachid>436505</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2021-08-26 06:53:04 -0700</bug_when>
    <thetext>Created attachment 436505
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1787711</commentid>
    <comment_count>5</comment_count>
      <attachid>436505</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-08-26 11:56:02 -0700</bug_when>
    <thetext>Comment on attachment 436505
Patch

Nice!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1787712</commentid>
    <comment_count>6</comment_count>
      <attachid>436505</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-08-26 11:57:38 -0700</bug_when>
    <thetext>Comment on attachment 436505
Patch

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

&gt; Source/WebCore/platform/graphics/freetype/FontCacheFreeType.cpp:358
&gt; +#if FC_VERSION &lt; 21395

What happens if the version of FontConfig that the build uses is not the same version used at runtime? (We have a similar problem for using ICU and have to call functions instead of using macros.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1787732</commentid>
    <comment_count>7</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2021-08-26 12:25:54 -0700</bug_when>
    <thetext>(In reply to Myles C. Maxfield from comment #6)
&gt; What happens if the version of FontConfig that the build uses is not the
&gt; same version used at runtime? (We have a similar problem for using ICU and
&gt; have to call functions instead of using macros.)

If it&apos;s built using a newer version of Fontconfig than is used at runtime, then fonts are going to get really messed up, because every font will be considered a valid alias for every other font. To avoid this, I could use FcGetVersion() to check the Fontconfig version at runtime instead of using the build-time check.

That said, with Linux software, it&apos;s well-understood that the runtime environment has to be newer than the build environment, or random breakage like this will result. I know this is different from macOS, because I remember I landed a change once that broke Safari nightlies because I used only a build-time check and not a runtime version check, see r189526 and r189990. I was very surprised that your build environment included a newer version of SQLite than your users were running. With software written for Linux, everyone just assumes that never happens. We would say the build environment is broken if it contains anything newer than the oldest-supported version that might be used at runtime.

The benefit of using build-time checks instead of runtime checks is it makes it easier to see where the legacy code is, so it can be removed more easily in the future. Future me might like this....</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1787738</commentid>
    <comment_count>8</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-08-26 12:30:39 -0700</bug_when>
    <thetext>Committed r281644 (241000@main): &lt;https://commits.webkit.org/241000@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 436505.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>435217</attachid>
            <date>2021-08-09 15:38:03 -0700</date>
            <delta_ts>2021-08-26 06:48:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-228927-20210809173802.patch</filename>
            <type>text/plain</type>
            <size>11777</size>
            <attacher name="Michael Catanzaro">mcatanzaro</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgwNzc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGM4NzJkN2I2MWIxZTFi
MTI2NGI4NjRiOWNkMTA2NWRmZmY4MWZhNy4uNmQxMGJjYjFlMGJjZGJmYzMxYzBjYzAwYzM2NWEz
YjgxMzhlZmUzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDIxLTA4LTA5ICBNaWNo
YWVsIENhdGFuemFybyAgPG1jYXRhbnphcm9AZ25vbWUub3JnPgorCisgICAgICAgIFtGcmVlVHlw
ZV0gUmVtb3ZlIHl1Y2t5IHN0cm9uZyBhbGlhcyBjb21wdXRhdGlvbnMgaW4gZm9udCBmYWxsYmFj
ayBjb2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
Mjg5MjcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBO
byBuZXcgdGVzdHMgKE9PUFMhKS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZyZWV0
eXBlL0ZvbnRDYWNoZUZyZWVUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRDYWNoZTo6
Y3JlYXRlRm9udFBsYXRmb3JtRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpzdHJlbmd0aE9mRmly
c3RBbGlhcyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpzdHJvbmdBbGlhc2VzRm9yRmFt
aWx5KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmFyZVN0cm9uZ2x5QWxpYXNlZCk6IERl
bGV0ZWQuCisKIDIwMjEtMDgtMDkgIE1pY2hhZWwgQ2F0YW56YXJvICA8bWNhdGFuemFyb0Bnbm9t
ZS5vcmc+CiAKICAgICAgICAgLVdhcnJheS1ib3VuZHMsIC1Xc3RyaW5nb3AtdHJ1bmNhdGlvbiB3
YXJuaW5ncyBpbiBQYWNrZWQuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZnJlZXR5cGUvRm9udENhY2hlRnJlZVR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZnJlZXR5cGUvRm9udENhY2hlRnJlZVR5cGUuY3BwCmluZGV4IDMy
MGUyNDBlNGEzYTc2M2Y4ZjI3OTQ4YjdhYTNmMzczNzExMjdjY2EuLmFiYTAzZDE3M2JmYjZiZTQ2
MzY3Nzc1YWE4NTUyNGMwMzhmZWQ4ZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2ZyZWV0eXBlL0ZvbnRDYWNoZUZyZWVUeXBlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9mcmVldHlwZS9Gb250Q2FjaGVGcmVlVHlwZS5jcHAK
QEAgLTM1NSwxMzQgKzM1NSw2IEBAIHN0YXRpYyBTdHJpbmcgZ2V0RmFtaWx5TmFtZVN0cmluZ0Zy
b21GYW1pbHkoY29uc3QgU3RyaW5nJiBmYW1pbHkpCiAgICAgcmV0dXJuICIiOwogfQogCi0vLyBU
aGlzIGlzIGJhc2VkIG9uIENocm9taXVtIEJTRCBjb2RlIGZyb20gU2tpYSAoc3JjL3BvcnRzL1Nr
Rm9udE1ncl9mb250Y29uZmlnLmNwcCkuIEl0IGlzIGEKLS8vIGhhY2sgZm9yIGxhY2sgb2YgQVBJ
IGluIEZvbnRjb25maWc6IGh0dHBzOi8vYnVncy5mcmVlZGVza3RvcC5vcmcvc2hvd19idWcuY2dp
P2lkPTE5Mzc1Ci0vLyBGSVhNRTogVGhpcyBpcyBob3JyaWJsZS4gSXQgc2hvdWxkIGJlIGRlbGV0
ZWQgb25jZSBGb250Y29uZmlnIGNhbiBkbyB0aGlzIGl0c2VsZi4KLWVudW0gY2xhc3MgQWxpYXNT
dHJlbmd0aCB7Ci0gICAgV2VhaywKLSAgICBTdHJvbmcsCi0gICAgRG9uZQotfTsKLQotc3RhdGlj
IEFsaWFzU3RyZW5ndGggc3RyZW5ndGhPZkZpcnN0QWxpYXMoY29uc3QgRmNQYXR0ZXJuJiBvcmln
aW5hbCkKLXsKLSAgICAvLyBJZGVhbGx5IHRoZXJlIHdvdWxkIGV4aXN0IGEgY2FsbCBsaWtlCi0g
ICAgLy8gRmNSZXN1bHQgRmNQYXR0ZXJuSXNXZWFrKHBhdHRlcm4sIG9iamVjdCwgaWQsIEZjQm9v
bCogaXNXZWFrKTsKLSAgICAvLwotICAgIC8vIEhvd2V2ZXIsIHRoZXJlIGlzIG5vIHN1Y2ggY2Fs
bCBhbmQgYXMgb2YgRmMgMi4xMS4wIGV2ZW4gRmNQYXR0ZXJuRXF1YWxzIGlnbm9yZXMgdGhlIHdl
YWsgYml0LgotICAgIC8vIEN1cnJlbnRseSwgdGhlIG9ubHkgcmVsaWFibGUgd2F5IG9mIGZpbmRp
bmcgdGhlIHdlYWsgYml0IGlzIGJ5IGl0cyBlZmZlY3Qgb24gbWF0Y2hpbmcuCi0gICAgLy8gVGhl
IHdlYWsgYml0IG9ubHkgYWZmZWN0cyB0aGUgbWF0Y2hpbmcgb2YgRkNfRkFNSUxZIGFuZCBGQ19Q
T1NUU0NSSVBUX05BTUUgb2JqZWN0IHZhbHVlcy4KLSAgICAvLyBBIGVsZW1lbnQgd2l0aCB0aGUg
d2VhayBiaXQgaXMgc2NvcmVkIGFmdGVyIEZDX0xBTkcsIHdpdGhvdXQgdGhlIHdlYWsgYml0IGlz
IHNjb3JlZCBiZWZvcmUuCi0gICAgLy8gTm90ZSB0aGF0IHRoZSB3ZWFrIGJpdCBpcyBzdG9yZWQg
b24gdGhlIGVsZW1lbnQsIG5vdCBvbiB0aGUgdmFsdWUgaXQgaG9sZHMuCi0gICAgRmNWYWx1ZSB2
YWx1ZTsKLSAgICBGY1Jlc3VsdCByZXN1bHQgPSBGY1BhdHRlcm5HZXQoJm9yaWdpbmFsLCBGQ19G
QU1JTFksIDAsICZ2YWx1ZSk7Ci0gICAgaWYgKHJlc3VsdCAhPSBGY1Jlc3VsdE1hdGNoKQotICAg
ICAgICByZXR1cm4gQWxpYXNTdHJlbmd0aDo6RG9uZTsKLQotICAgIFJlZlB0cjxGY1BhdHRlcm4+
IHBhdHRlcm4gPSBhZG9wdFJlZihGY1BhdHRlcm5EdXBsaWNhdGUoJm9yaWdpbmFsKSk7Ci0gICAg
RmNCb29sIGhhc011bHRpcGxlRmFtaWxpZXMgPSB0cnVlOwotICAgIHdoaWxlIChoYXNNdWx0aXBs
ZUZhbWlsaWVzKQotICAgICAgICBoYXNNdWx0aXBsZUZhbWlsaWVzID0gRmNQYXR0ZXJuUmVtb3Zl
KHBhdHRlcm4uZ2V0KCksIEZDX0ZBTUlMWSwgMSk7Ci0KLSAgICAvLyBDcmVhdGUgYSBmb250IHNl
dCB3aXRoIHR3byBwYXR0ZXJucy4KLSAgICAvLyAxLiB0aGUgc2FtZSBGQ19GQU1JTFkgYXMgcGF0
dGVybiBhbmQgYSBsYW5nIG9iamVjdCB3aXRoIG9ubHkgJ25vbWF0Y2hsYW5nJy4KLSAgICAvLyAy
LiBhIGRpZmZlcmVudCBGQ19GQU1JTFkgZnJvbSBwYXR0ZXJuIGFuZCBhIGxhbmcgb2JqZWN0IHdp
dGggb25seSAnbWF0Y2hsYW5nJy4KLSAgICBGY1VuaXF1ZVB0cjxGY0ZvbnRTZXQ+IGZvbnRTZXQo
RmNGb250U2V0Q3JlYXRlKCkpOwotCi0gICAgRmNVbmlxdWVQdHI8RmNMYW5nU2V0PiBzdHJvbmdM
YW5nU2V0KEZjTGFuZ1NldENyZWF0ZSgpKTsKLSAgICBGY0xhbmdTZXRBZGQoc3Ryb25nTGFuZ1Nl
dC5nZXQoKSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBGY0NoYXI4Kj4oIm5vbWF0Y2hsYW5nIikp
OwotICAgIC8vIE93bmVyc2hpcCBvZiB0aGlzIEZjUGF0dGVybiB3aWxsIGJlIHRyYW5zZmVycmVk
IHdpdGggRmNGb250U2V0QWRkLgotICAgIEZjUGF0dGVybiogc3Ryb25nID0gRmNQYXR0ZXJuRHVw
bGljYXRlKHBhdHRlcm4uZ2V0KCkpOwotICAgIEZjUGF0dGVybkFkZExhbmdTZXQoc3Ryb25nLCBG
Q19MQU5HLCBzdHJvbmdMYW5nU2V0LmdldCgpKTsKLQotICAgIEZjVW5pcXVlUHRyPEZjTGFuZ1Nl
dD4gd2Vha0xhbmdTZXQoRmNMYW5nU2V0Q3JlYXRlKCkpOwotICAgIEZjTGFuZ1NldEFkZCh3ZWFr
TGFuZ1NldC5nZXQoKSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBGY0NoYXI4Kj4oIm1hdGNobGFu
ZyIpKTsKLSAgICAvLyBPd25lcnNoaXAgb2YgdGhpcyBGY1BhdHRlcm4gd2lsbCBiZSB0cmFuc2Zl
cnJlZCB2aWEgRmNGb250U2V0QWRkLgotICAgIEZjUGF0dGVybiogd2VhayA9IEZjUGF0dGVybkNy
ZWF0ZSgpOwotICAgIEZjUGF0dGVybkFkZFN0cmluZyh3ZWFrLCBGQ19GQU1JTFksIHJlaW50ZXJw
cmV0X2Nhc3Q8Y29uc3QgRmNDaGFyOCo+KCJub21hdGNoc3RyaW5nIikpOwotICAgIEZjUGF0dGVy
bkFkZExhbmdTZXQod2VhaywgRkNfTEFORywgd2Vha0xhbmdTZXQuZ2V0KCkpOwotCi0gICAgRmNG
b250U2V0QWRkKGZvbnRTZXQuZ2V0KCksIHN0cm9uZyk7Ci0gICAgRmNGb250U2V0QWRkKGZvbnRT
ZXQuZ2V0KCksIHdlYWspOwotCi0gICAgLy8gQWRkICdtYXRjaGxhbmcnIHRvIHRoZSBjb3B5IG9m
IHRoZSBwYXR0ZXJuLgotICAgIEZjUGF0dGVybkFkZExhbmdTZXQocGF0dGVybi5nZXQoKSwgRkNf
TEFORywgd2Vha0xhbmdTZXQuZ2V0KCkpOwotCi0gICAgLy8gUnVuIGEgbWF0Y2ggYWdhaW5zdCB0
aGUgY29weSBvZiB0aGUgcGF0dGVybi4KLSAgICAvLyBJZiB0aGUgZmlyc3QgZWxlbWVudCB3YXMg
d2VhaywgdGhlbiB3ZSBzaG91bGQgbWF0Y2ggdGhlIHBhdHRlcm4gd2l0aCAnbWF0Y2hsYW5nJy4K
LSAgICAvLyBJZiB0aGUgZmlyc3QgZWxlbWVudCB3YXMgc3Ryb25nLCB0aGVuIHdlIHNob3VsZCBt
YXRjaCB0aGUgcGF0dGVybiB3aXRoICdub21hdGNobGFuZycuCi0KLSAgICAvLyBOb3RlIHRoYXQg
dGhpcyBjb25maWcgaXMgb25seSB1c2VkIGZvciBGY0ZvbnRSZW5kZXJQcmVwYXJlLCB3aGljaCB3
ZSBkb24ndCBldmVuIHdhbnQuCi0gICAgLy8gSG93ZXZlciwgdGhlcmUgYXBwZWFycyB0byBiZSBu
byB3YXkgdG8gbWF0Y2gvc29ydCB3aXRob3V0IGl0LgotICAgIFJlZlB0cjxGY0NvbmZpZz4gY29u
ZmlnID0gYWRvcHRSZWYoRmNDb25maWdDcmVhdGUoKSk7Ci0gICAgRmNGb250U2V0KiBmb250U2V0
c1sxXSA9IHsgZm9udFNldC5nZXQoKSB9OwotICAgIFJlZlB0cjxGY1BhdHRlcm4+IG1hdGNoID0g
YWRvcHRSZWYoRmNGb250U2V0TWF0Y2goY29uZmlnLmdldCgpLCBmb250U2V0cywgMSwgcGF0dGVy
bi5nZXQoKSwgJnJlc3VsdCkpOwotCi0gICAgRmNMYW5nU2V0KiBtYXRjaExhbmdTZXQ7Ci0gICAg
RmNQYXR0ZXJuR2V0TGFuZ1NldChtYXRjaC5nZXQoKSwgRkNfTEFORywgMCwgJm1hdGNoTGFuZ1Nl
dCk7Ci0gICAgcmV0dXJuIEZjTGFuZ0VxdWFsID09IEZjTGFuZ1NldEhhc0xhbmcobWF0Y2hMYW5n
U2V0LCByZWludGVycHJldF9jYXN0PGNvbnN0IEZjQ2hhcjgqPigibWF0Y2hsYW5nIikpCi0gICAg
ICAgID8gQWxpYXNTdHJlbmd0aDo6V2VhayA6IEFsaWFzU3RyZW5ndGg6OlN0cm9uZzsKLX0KLQot
c3RhdGljIFZlY3RvcjxTdHJpbmc+IHN0cm9uZ0FsaWFzZXNGb3JGYW1pbHkoY29uc3QgU3RyaW5n
JiBmYW1pbHkpCi17Ci0gICAgUmVmUHRyPEZjUGF0dGVybj4gcGF0dGVybiA9IGFkb3B0UmVmKEZj
UGF0dGVybkNyZWF0ZSgpKTsKLSAgICBpZiAoIUZjUGF0dGVybkFkZFN0cmluZyhwYXR0ZXJuLmdl
dCgpLCBGQ19GQU1JTFksIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgRmNDaGFyOCo+KGZhbWlseS51
dGY4KCkuZGF0YSgpKSkpCi0gICAgICAgIHJldHVybiBWZWN0b3I8U3RyaW5nPigpOwotCi0gICAg
RmNDb25maWdTdWJzdGl0dXRlKG51bGxwdHIsIHBhdHRlcm4uZ2V0KCksIEZjTWF0Y2hQYXR0ZXJu
KTsKLSAgICBjYWlyb19mdF9mb250X29wdGlvbnNfc3Vic3RpdHV0ZShnZXREZWZhdWx0Q2Fpcm9G
b250T3B0aW9ucygpLCBwYXR0ZXJuLmdldCgpKTsKLSAgICBGY0RlZmF1bHRTdWJzdGl0dXRlKHBh
dHRlcm4uZ2V0KCkpOwotCi0gICAgRmNVbmlxdWVQdHI8RmNPYmplY3RTZXQ+IGZhbWlsaWVzT25s
eShGY09iamVjdFNldEJ1aWxkKEZDX0ZBTUlMWSwgbnVsbHB0cikpOwotICAgIFJlZlB0cjxGY1Bh
dHRlcm4+IG1pbmltYWwgPSBhZG9wdFJlZihGY1BhdHRlcm5GaWx0ZXIocGF0dGVybi5nZXQoKSwg
ZmFtaWxpZXNPbmx5LmdldCgpKSk7Ci0KLSAgICAvLyBXZSByZWFsbHkgd2FudCB0byBtYXRjaCBz
dHJvbmcgKHByZWZlcnJlZCkgYW5kIHNhbWUgKGFjY2VwdGFibGUpIG9ubHkgaGVyZS4KLSAgICAv
LyBJZiBhIGZhbWlseSBuYW1lIHdhcyBzcGVjaWZpZWQsIGFzc3VtZSB0aGF0IGFueSB3ZWFrIG1h
dGNoZXMgYWZ0ZXIgdGhlIGxhc3Qgc3Ryb25nIG1hdGNoCi0gICAgLy8gYXJlIHdlYWsgKGRlZmF1
bHQpIGFuZCBpZ25vcmUgdGhlbS4KLSAgICAvLyBUaGUgcmVhc29uIGZvciBpcyB0aGF0IGFmdGVy
IHN1YnN0aXR1dGlvbiB0aGUgcGF0dGVybiBmb3IgJ3NhbnMtc2VyaWYnIGxvb2tzIGxpa2UKLSAg
ICAvLyAid3d3d3d3d3d3d3d3d3dzd3d3IiB3aGVyZSB0aGVyZSBhcmUgbWFueSB3ZWFrIGJ1dCBw
cmVmZXJyZWQgbmFtZXMsIGZvbGxvd2VkIGJ5IGRlZmF1bHRzLgotICAgIC8vIFNvIGl0IGlzIHBv
c3NpYmxlIHRvIGhhdmUgd2Vha2x5IG1hdGNoaW5nIGJ1dCBwcmVmZXJyZWQgbmFtZXMuCi0gICAg
Ly8gSW4gYWxpYXNlcywgYmluZGluZ3MgYXJlIHdlYWsgYnkgZGVmYXVsdCwgc28gdGhpcyBpcyBl
YXN5IGFuZCBjb21tb24uCi0gICAgLy8gSWYgbm8gZmFtaWx5IG5hbWUgd2FzIHNwZWNpZmllZCwg
d2UnbGwgcHJvYmFibHkgb25seSBnZXQgd2VhayBtYXRjaGVzLCBidXQgdGhhdCdzIG9rLgotICAg
IGludCBsYXN0U3Ryb25nSWQgPSAtMTsKLSAgICBpbnQgbnVtSWRzID0gMDsKLSAgICBmb3IgKGlu
dCBpZCA9IDA7IDsgKytpZCkgewotICAgICAgICBBbGlhc1N0cmVuZ3RoIHJlc3VsdCA9IHN0cmVu
Z3RoT2ZGaXJzdEFsaWFzKCptaW5pbWFsKTsKLSAgICAgICAgaWYgKHJlc3VsdCA9PSBBbGlhc1N0
cmVuZ3RoOjpEb25lKSB7Ci0gICAgICAgICAgICBudW1JZHMgPSBpZDsKLSAgICAgICAgICAgIGJy
ZWFrOwotICAgICAgICB9Ci0gICAgICAgIGlmIChyZXN1bHQgPT0gQWxpYXNTdHJlbmd0aDo6U3Ry
b25nKQotICAgICAgICAgICAgbGFzdFN0cm9uZ0lkID0gaWQ7Ci0gICAgICAgIGlmICghRmNQYXR0
ZXJuUmVtb3ZlKG1pbmltYWwuZ2V0KCksIEZDX0ZBTUlMWSwgMCkpCi0gICAgICAgICAgICByZXR1
cm4gVmVjdG9yPFN0cmluZz4oKTsKLSAgICB9Ci0KLSAgICAvLyBJZiB0aGV5IHdlcmUgYWxsIHdl
YWssIHRoZW4gbGVhdmUgdGhlIHBhdHRlcm4gYWxvbmUuCi0gICAgaWYgKGxhc3RTdHJvbmdJZCA8
IDApCi0gICAgICAgIHJldHVybiBWZWN0b3I8U3RyaW5nPigpOwotCi0gICAgLy8gUmVtb3ZlIGV2
ZXJ5dGhpbmcgYWZ0ZXIgdGhlIGxhc3Qgc3Ryb25nLgotICAgIGZvciAoaW50IGlkID0gbGFzdFN0
cm9uZ0lkICsgMTsgaWQgPCBudW1JZHM7ICsraWQpIHsKLSAgICAgICAgaWYgKCFGY1BhdHRlcm5S
ZW1vdmUocGF0dGVybi5nZXQoKSwgRkNfRkFNSUxZLCBsYXN0U3Ryb25nSWQgKyAxKSkgewotICAg
ICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgICAgICByZXR1cm4gVmVjdG9y
PFN0cmluZz4oKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIHJldHVybiBwYXR0ZXJuVG9GYW1p
bGllcygqcGF0dGVybik7Ci19Ci0KLXN0YXRpYyBib29sIGFyZVN0cm9uZ2x5QWxpYXNlZChjb25z
dCBTdHJpbmcmIGZhbWlseUEsIGNvbnN0IFN0cmluZyYgZmFtaWx5QikKLXsKLSAgICBmb3IgKGF1
dG8mIGZhbWlseSA6IHN0cm9uZ0FsaWFzZXNGb3JGYW1pbHkoZmFtaWx5QSkpIHsKLSAgICAgICAg
aWYgKGZhbWlseSA9PSBmYW1pbHlCKQotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQot
ICAgIHJldHVybiBmYWxzZTsKLX0KLQogc3RhdGljIGlubGluZSBib29sIGlzQ29tbW9ubHlVc2Vk
R2VuZXJpY0ZhbWlseShjb25zdCBTdHJpbmcmIGZhbWlseU5hbWVTdHJpbmcpCiB7CiAgICAgcmV0
dXJuIGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKGZhbWlseU5hbWVTdHJpbmcsICJzYW5z
IikKQEAgLTUxNSw4ICszODcsNiBAQCBzdGQ6OnVuaXF1ZV9wdHI8Rm9udFBsYXRmb3JtRGF0YT4g
Rm9udENhY2hlOjpjcmVhdGVGb250UGxhdGZvcm1EYXRhKGNvbnN0IEZvbnREZQogICAgIGlmICgh
Y29uZmlndXJlUGF0dGVybkZvckZvbnREZXNjcmlwdGlvbihwYXR0ZXJuLmdldCgpLCBmb250RGVz
Y3JpcHRpb24pKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIC8vIFRoZSBzdHJhdGVn
eSBpcyBvcmlnaW5hbGx5IGZyb20gU2tpYSAoc3JjL3BvcnRzL1NrRm9udEhvc3RfZm9udGNvbmZp
Zy5jcHApOgotICAgIC8vCiAgICAgLy8gV2UgZG8gbm90IG5vcm1hbGx5IGFsbG93IGZvbnRjb25m
aWcgdG8gc3Vic3RpdHV0ZSBvbmUgZm9udCBmYW1pbHkgZm9yIGFub3RoZXIsIHNpbmNlIHRoaXMK
ICAgICAvLyB3b3VsZCBicmVhayBDU1MgZm9udCBmYW1pbHkgZmFsbGJhY2s6IHRoZSB3ZWJzaXRl
IHNob3VsZCBiZSBpbiBjb250cm9sIG9mIGZhbGxiYWNrLiBEdXJpbmcKICAgICAvLyBub3JtYWwg
Zm9udCBtYXRjaGluZywgdGhlIG9ubHkgZm9udCBmYW1pbHkgc3Vic3RpdHV0aW9uIHBlcm1pdHRl
ZCBpcyBmb3IgZ2VuZXJpYyBmYW1pbGllcwpAQCAtNTQyLDE0ICs0MTIsMTUgQEAgc3RkOjp1bmlx
dWVfcHRyPEZvbnRQbGF0Zm9ybURhdGE+IEZvbnRDYWNoZTo6Y3JlYXRlRm9udFBsYXRmb3JtRGF0
YShjb25zdCBGb250RGUKIAogICAgIC8vIExvb3AgdGhyb3VnaCBlYWNoIGZvbnQgZmFtaWx5IG9m
IHRoZSByZXN1bHQgdG8gc2VlIGlmIGl0IGZpdHMgdGhlIG9uZSB3ZSByZXF1ZXN0ZWQuCiAgICAg
Ym9vbCBtYXRjaGVkRm9udEZhbWlseSA9IGZhbHNlOwotICAgIEZjQ2hhcjgqIGZvbnRDb25maWdG
YW1pbHlOYW1lQWZ0ZXJNYXRjaGluZzsKLSAgICBmb3IgKGludCBpID0gMDsgRmNQYXR0ZXJuR2V0
U3RyaW5nKHJlc3VsdFBhdHRlcm4uZ2V0KCksIEZDX0ZBTUlMWSwgaSwgJmZvbnRDb25maWdGYW1p
bHlOYW1lQWZ0ZXJNYXRjaGluZykgPT0gRmNSZXN1bHRNYXRjaDsgKytpKSB7CisgICAgRmNWYWx1
ZSB2YWx1ZTsKKyAgICBGY1ZhbHVlQmluZGluZyBiaW5kaW5nOworICAgIGZvciAoaW50IGkgPSAw
OyBGY1BhdHRlcm5HZXRXaXRoQmluZGluZyhyZXN1bHRQYXR0ZXJuLmdldCgpLCBGQ19GQU1JTFks
IGksICZ2YWx1ZSwgJmJpbmRpbmcpID09IEZjUmVzdWx0TWF0Y2g7ICsraSkgeworICAgICAgICBB
U1NFUlQodmFsdWUudHlwZSA9PSBGY1R5cGVTdHJpbmcpOworICAgICAgICBTdHJpbmcgZmFtaWx5
TmFtZUFmdGVyTWF0Y2hpbmcgPSBTdHJpbmc6OmZyb21VVEY4KHJlaW50ZXJwcmV0X2Nhc3Q8Y29u
c3QgY2hhcio+KHZhbHVlLnUucykpOwogICAgICAgICAvLyBJZiBGb250Y29uZmlnIGdhdmUgdXMg
YSBkaWZmZXJlbnQgZm9udCBmYW1pbHkgdGhhbiB0aGUgb25lIHdlIHJlcXVlc3RlZCwgd2Ugc2hv
dWxkIGlnbm9yZSBpdAogICAgICAgICAvLyBhbmQgYWxsb3cgV2ViQ29yZSB0byBnaXZlIHVzIHRo
ZSBuZXh0IGZvbnQgb24gdGhlIENTUyBmYWxsYmFjayBsaXN0LiBUaGUgZXhjZXB0aW9ucyBhcmUg
aWYKICAgICAgICAgLy8gdGhpcyBmYW1pbHkgbmFtZSBpcyBhIGNvbW1vbmx5LXVzZWQgZ2VuZXJp
YyBmYW1pbHksIG9yIGlmIHRoZSBmYW1pbGllcyBhcmUgc3Ryb25nbHktYWxpYXNlZC4KLSAgICAg
ICAgLy8gQ2hlY2tpbmcgZm9yIGEgc3Ryb25nIGFsaWFzIGNvbWVzIGxhc3QsIHNpbmNlIGl0IGlz
IHNsb3cuCi0gICAgICAgIFN0cmluZyBmYW1pbHlOYW1lQWZ0ZXJNYXRjaGluZyA9IFN0cmluZzo6
ZnJvbVVURjgocmVpbnRlcnByZXRfY2FzdDxjaGFyKj4oZm9udENvbmZpZ0ZhbWlseU5hbWVBZnRl
ck1hdGNoaW5nKSk7Ci0gICAgICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKGZhbWlseU5h
bWVBZnRlckNvbmZpZ3VyYXRpb24sIGZhbWlseU5hbWVBZnRlck1hdGNoaW5nKSB8fCBpc0NvbW1v
bmx5VXNlZEdlbmVyaWNGYW1pbHkoZmFtaWx5TmFtZVN0cmluZykgfHwgYXJlU3Ryb25nbHlBbGlh
c2VkKGZhbWlseU5hbWVBZnRlckNvbmZpZ3VyYXRpb24sIGZhbWlseU5hbWVBZnRlck1hdGNoaW5n
KSkgeworICAgICAgICBpZiAoYmluZGluZyA9PSBGY1ZhbHVlQmluZGluZ1N0cm9uZyB8fCBlcXVh
bElnbm9yaW5nQVNDSUlDYXNlKGZhbWlseU5hbWVBZnRlckNvbmZpZ3VyYXRpb24sIGZhbWlseU5h
bWVBZnRlck1hdGNoaW5nKSB8fCBpc0NvbW1vbmx5VXNlZEdlbmVyaWNGYW1pbHkoZmFtaWx5TmFt
ZVN0cmluZykpIHsKICAgICAgICAgICAgIG1hdGNoZWRGb250RmFtaWx5ID0gdHJ1ZTsKICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvY21ha2UvT3B0aW9u
c0dUSy5jbWFrZSBiL1NvdXJjZS9jbWFrZS9PcHRpb25zR1RLLmNtYWtlCmluZGV4IDQ3NjYwY2Iz
Yzg1NWI1MmUyODVjM2NkM2Q2MDk1Nzg0NjdmMThkNjIuLjc1MjQwYjA2ODZkNTliYThmZjM5NGM2
ZjAxNDkyNGExMDk5YTljOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9jbWFrZS9PcHRpb25zR1RLLmNt
YWtlCisrKyBiL1NvdXJjZS9jbWFrZS9PcHRpb25zR1RLLmNtYWtlCkBAIC0xMyw3ICsxMyw3IEBA
IHNldChXVEZfTElCUkFSWV9UWVBFIE9CSkVDVCkKIHNldChVU0VSX0FHRU5UX0JSQU5ESU5HICIi
IENBQ0hFIFNUUklORyAiQnJhbmRpbmcgdG8gYWRkIHRvIHVzZXIgYWdlbnQgc3RyaW5nIikKIAog
ZmluZF9wYWNrYWdlKENhaXJvIDEuMTQuMCBSRVFVSVJFRCkKLWZpbmRfcGFja2FnZShGb250Y29u
ZmlnIDIuOC4wIFJFUVVJUkVEKQorZmluZF9wYWNrYWdlKEZvbnRjb25maWcgMi4xMi41IFJFUVVJ
UkVEKQogZmluZF9wYWNrYWdlKEZyZWV0eXBlIDIuNC4yIFJFUVVJUkVEKQogZmluZF9wYWNrYWdl
KExpYkdjcnlwdCAxLjYuMCBSRVFVSVJFRCkKIGZpbmRfcGFja2FnZShHTElCIDIuNDQuMCBSRVFV
SVJFRCBDT01QT05FTlRTIGdpbyBnaW8tdW5peCBnb2JqZWN0IGd0aHJlYWQgZ21vZHVsZSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9jbWFrZS9PcHRpb25zV1BFLmNtYWtlIGIvU291cmNlL2NtYWtlL09w
dGlvbnNXUEUuY21ha2UKaW5kZXggZDU2ZGViODk2MjFjNTU1OTE1YmQ2M2FhZmU4OWYxOTM4ZGUx
ZDkyMC4uNjk2Y2ZhMWFiYzk4ZmZhYzY3NDBmZDU4MGRkNDJiMWQxYzI3YWI1MCAxMDA2NDQKLS0t
IGEvU291cmNlL2NtYWtlL09wdGlvbnNXUEUuY21ha2UKKysrIGIvU291cmNlL2NtYWtlL09wdGlv
bnNXUEUuY21ha2UKQEAgLTYsNyArNiw3IEBAIFNFVF9QUk9KRUNUX1ZFUlNJT04oMiAzMyAyKQog
c2V0KFVTRVJfQUdFTlRfQlJBTkRJTkcgIiIgQ0FDSEUgU1RSSU5HICJCcmFuZGluZyB0byBhZGQg
dG8gdXNlciBhZ2VudCBzdHJpbmciKQogCiBmaW5kX3BhY2thZ2UoQ2Fpcm8gMS4xNC4wIFJFUVVJ
UkVEKQotZmluZF9wYWNrYWdlKEZvbnRjb25maWcgMi44LjAgUkVRVUlSRUQpCitmaW5kX3BhY2th
Z2UoRm9udGNvbmZpZyAyLjEyLjUgUkVRVUlSRUQpCiBmaW5kX3BhY2thZ2UoRnJlZXR5cGUgMi40
LjIgUkVRVUlSRUQpCiBmaW5kX3BhY2thZ2UoR0xJQiAyLjQ0LjAgUkVRVUlSRUQgQ09NUE9ORU5U
UyBnaW8gZ2lvLXVuaXggZ29iamVjdCBndGhyZWFkIGdtb2R1bGUpCiBmaW5kX3BhY2thZ2UoSGFy
ZkJ1enogMC45LjE4IFJFUVVJUkVEIENPTVBPTkVOVFMgSUNVKQpkaWZmIC0tZ2l0IGEvQ2hhbmdl
TG9nIGIvQ2hhbmdlTG9nCmluZGV4IDI0ZGI5ODNjNTE3ZmNjMjlkZWQ3NTE5MzY3MDc1NjU2MmUy
Y2JiNDcuLjZjMTE3ZmY4ZDlmMTViOWZkNDA3YmE5MWMyZDQ5OGNlODQ1NzFmNTUgMTAwNjQ0Ci0t
LSBhL0NoYW5nZUxvZworKysgYi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAyMS0wOC0w
OSAgTWljaGFlbCBDYXRhbnphcm8gIDxtY2F0YW56YXJvQGdub21lLm9yZz4KKworICAgICAgICBb
RnJlZVR5cGVdIFJlbW92ZSB5dWNreSBzdHJvbmcgYWxpYXMgY29tcHV0YXRpb25zIGluIGZvbnQg
ZmFsbGJhY2sgY29kZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjI4OTI3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBTb3VyY2UvY21ha2UvT3B0aW9uc0dUSy5jbWFrZToKKyAgICAgICAgKiBTb3VyY2Uv
Y21ha2UvT3B0aW9uc1dQRS5jbWFrZToKKwogMjAyMS0wOC0wNSAgTWljaGFlbCBDYXRhbnphcm8g
IDxtY2F0YW56YXJvQGdub21lLm9yZz4KIAogICAgICAgICBHQ0MgMTEgYnVpbGRzIHNob3VsZCB1
c2UgLVduby1hcnJheS1ib3VuZHMsIC1Xbm8tbm9ubnVsbAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>436504</attachid>
            <date>2021-08-26 06:48:48 -0700</date>
            <delta_ts>2021-08-26 07:08:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-228927-20210826084847.patch</filename>
            <type>text/plain</type>
            <size>5318</size>
            <attacher name="Michael Catanzaro">mcatanzaro</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxNjIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjI4Y2ZlOGRlN2E5NjY5
NTI3MGVjMzk4MGE5YTg1MGFjNjkwMmYwNS4uMGM2YTI1ZTQ0ZGVmNGU2NTY5MmVmN2U1ZTU0MjIy
YzUzMWRmMGMxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDIxLTA4LTI2ICBNaWNo
YWVsIENhdGFuemFybyAgPG1jYXRhbnphcm9AZ25vbWUub3JnPgorCisgICAgICAgIFtGcmVlVHlw
ZV0gQXZvaWQgeXVja3kgc3Ryb25nIGFsaWFzIGNvbXB1dGF0aW9ucyBpbiBmb250IGZhbGxiYWNr
IGNvZGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIy
ODkyNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIElm
IGJ1aWx0IGFnYWluc3QgdGhlIHVwY29taW5nIEZvbnRjb25maWcgMi4xMy45NSwgd2UgY2FuIGF2
b2lkIGNvbXBpbGluZyBhIGJ1bmNoIG9mIGFyY2FuZQorICAgICAgICBmb250IG1hdGNoaW5nIGNv
ZGUuIEl0IHdpbGwgYmUgYSB3aGlsZSBiZWZvcmUgd2UgY2FuIHJlcXVpcmUgRm9udGNvbmZpZyAy
LjEzLjk1LCBzbyB1c2UKKyAgICAgICAgcHJlcHJvY2Vzc29yIGd1YXJkcyBmb3Igbm93LgorCisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZnJlZXR5cGUvRm9udENhY2hlRnJlZVR5cGUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6YXJlU3Ryb25nbHlBbGlhc2VkKToKKyAgICAgICAgKFdlYkNv
cmU6OkZvbnRDYWNoZTo6Y3JlYXRlRm9udFBsYXRmb3JtRGF0YSk6CisKIDIwMjEtMDgtMjYgIEtp
bW1vIEtpbm51bmVuICA8a2tpbm51bmVuQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWJHTCBjYWxs
cyBpbnRvIHN0YXRpYyBHcmFwaGljc0NvbnRleHRHTE9wZW5HTCBmdW5jdGlvbnMgbmVlZGxlc3Ns
eQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZnJlZXR5cGUv
Rm9udENhY2hlRnJlZVR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZnJlZXR5cGUvRm9udENhY2hlRnJlZVR5cGUuY3BwCmluZGV4IDMyMGUyNDBlNGEzYTc2M2Y4ZjI3
OTQ4YjdhYTNmMzczNzExMjdjY2EuLjIwODg1M2YyMjEwYjA1ZDVkMWUxYWJiYTA3ZDMzNTEzMmJm
ODVmMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZyZWV0
eXBlL0ZvbnRDYWNoZUZyZWVUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9mcmVldHlwZS9Gb250Q2FjaGVGcmVlVHlwZS5jcHAKQEAgLTM1NSw5ICszNTUsOSBA
QCBzdGF0aWMgU3RyaW5nIGdldEZhbWlseU5hbWVTdHJpbmdGcm9tRmFtaWx5KGNvbnN0IFN0cmlu
ZyYgZmFtaWx5KQogICAgIHJldHVybiAiIjsKIH0KIAotLy8gVGhpcyBpcyBiYXNlZCBvbiBDaHJv
bWl1bSBCU0QgY29kZSBmcm9tIFNraWEgKHNyYy9wb3J0cy9Ta0ZvbnRNZ3JfZm9udGNvbmZpZy5j
cHApLiBJdCBpcyBhCi0vLyBoYWNrIGZvciBsYWNrIG9mIEFQSSBpbiBGb250Y29uZmlnOiBodHRw
czovL2J1Z3MuZnJlZWRlc2t0b3Aub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTM3NQotLy8gRklYTUU6
IFRoaXMgaXMgaG9ycmlibGUuIEl0IHNob3VsZCBiZSBkZWxldGVkIG9uY2UgRm9udGNvbmZpZyBj
YW4gZG8gdGhpcyBpdHNlbGYuCisjaWYgRkNfVkVSU0lPTiA8IDAyMTM5NQorLy8gVGhpcyBpcyBi
YXNlZCBvbiBCU0QtbGljZW5zZWQgY29kZSBmcm9tIFNraWEgKHNyYy9wb3J0cy9Ta0ZvbnRNZ3Jf
Zm9udGNvbmZpZy5jcHApLgorLy8gSXQgaXMgb2Jzb2xldGVkIGJ5IG5ld2VyIEZvbnRjb25maWcs
IHNlZSBodHRwczovL2dpdGxhYi5mcmVlZGVza3RvcC5vcmcvZm9udGNvbmZpZy9mb250Y29uZmln
Ly0vaXNzdWVzLzI5NC4KIGVudW0gY2xhc3MgQWxpYXNTdHJlbmd0aCB7CiAgICAgV2VhaywKICAg
ICBTdHJvbmcsCkBAIC00ODIsNiArNDgyLDcgQEAgc3RhdGljIGJvb2wgYXJlU3Ryb25nbHlBbGlh
c2VkKGNvbnN0IFN0cmluZyYgZmFtaWx5QSwgY29uc3QgU3RyaW5nJiBmYW1pbHlCKQogICAgIH0K
ICAgICByZXR1cm4gZmFsc2U7CiB9CisjZW5kaWYgLy8gRkNfVkVSU0lPTiA8IDAyMTM5NQogCiBz
dGF0aWMgaW5saW5lIGJvb2wgaXNDb21tb25seVVzZWRHZW5lcmljRmFtaWx5KGNvbnN0IFN0cmlu
ZyYgZmFtaWx5TmFtZVN0cmluZykKIHsKQEAgLTUxNSw4ICs1MTYsNiBAQCBzdGQ6OnVuaXF1ZV9w
dHI8Rm9udFBsYXRmb3JtRGF0YT4gRm9udENhY2hlOjpjcmVhdGVGb250UGxhdGZvcm1EYXRhKGNv
bnN0IEZvbnREZQogICAgIGlmICghY29uZmlndXJlUGF0dGVybkZvckZvbnREZXNjcmlwdGlvbihw
YXR0ZXJuLmdldCgpLCBmb250RGVzY3JpcHRpb24pKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsK
IAotICAgIC8vIFRoZSBzdHJhdGVneSBpcyBvcmlnaW5hbGx5IGZyb20gU2tpYSAoc3JjL3BvcnRz
L1NrRm9udEhvc3RfZm9udGNvbmZpZy5jcHApOgotICAgIC8vCiAgICAgLy8gV2UgZG8gbm90IG5v
cm1hbGx5IGFsbG93IGZvbnRjb25maWcgdG8gc3Vic3RpdHV0ZSBvbmUgZm9udCBmYW1pbHkgZm9y
IGFub3RoZXIsIHNpbmNlIHRoaXMKICAgICAvLyB3b3VsZCBicmVhayBDU1MgZm9udCBmYW1pbHkg
ZmFsbGJhY2s6IHRoZSB3ZWJzaXRlIHNob3VsZCBiZSBpbiBjb250cm9sIG9mIGZhbGxiYWNrLiBE
dXJpbmcKICAgICAvLyBub3JtYWwgZm9udCBtYXRjaGluZywgdGhlIG9ubHkgZm9udCBmYW1pbHkg
c3Vic3RpdHV0aW9uIHBlcm1pdHRlZCBpcyBmb3IgZ2VuZXJpYyBmYW1pbGllcwpAQCAtNTQwLDIw
ICs1MzksMzMgQEAgc3RkOjp1bmlxdWVfcHRyPEZvbnRQbGF0Zm9ybURhdGE+IEZvbnRDYWNoZTo6
Y3JlYXRlRm9udFBsYXRmb3JtRGF0YShjb25zdCBGb250RGUKICAgICBpZiAoIXJlc3VsdFBhdHRl
cm4pIC8vIE5vIG1hdGNoLgogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIC8vIExvb3Ag
dGhyb3VnaCBlYWNoIGZvbnQgZmFtaWx5IG9mIHRoZSByZXN1bHQgdG8gc2VlIGlmIGl0IGZpdHMg
dGhlIG9uZSB3ZSByZXF1ZXN0ZWQuCisjaWYgRkNfVkVSU0lPTiA8IDAyMTM5NQogICAgIGJvb2wg
bWF0Y2hlZEZvbnRGYW1pbHkgPSBmYWxzZTsKICAgICBGY0NoYXI4KiBmb250Q29uZmlnRmFtaWx5
TmFtZUFmdGVyTWF0Y2hpbmc7CiAgICAgZm9yIChpbnQgaSA9IDA7IEZjUGF0dGVybkdldFN0cmlu
ZyhyZXN1bHRQYXR0ZXJuLmdldCgpLCBGQ19GQU1JTFksIGksICZmb250Q29uZmlnRmFtaWx5TmFt
ZUFmdGVyTWF0Y2hpbmcpID09IEZjUmVzdWx0TWF0Y2g7ICsraSkgeworICAgICAgICBTdHJpbmcg
ZmFtaWx5TmFtZUFmdGVyTWF0Y2hpbmcgPSBTdHJpbmc6OmZyb21VVEY4KHJlaW50ZXJwcmV0X2Nh
c3Q8Y2hhcio+KGZvbnRDb25maWdGYW1pbHlOYW1lQWZ0ZXJNYXRjaGluZykpOworICAgICAgICBp
ZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShmYW1pbHlOYW1lQWZ0ZXJDb25maWd1cmF0aW9uLCBm
YW1pbHlOYW1lQWZ0ZXJNYXRjaGluZykgfHwgaXNDb21tb25seVVzZWRHZW5lcmljRmFtaWx5KGZh
bWlseU5hbWVTdHJpbmcpIHx8IGFyZVN0cm9uZ2x5QWxpYXNlZChmYW1pbHlOYW1lQWZ0ZXJDb25m
aWd1cmF0aW9uLCBmYW1pbHlOYW1lQWZ0ZXJNYXRjaGluZykpIHsKKyAgICAgICAgICAgIG1hdGNo
ZWRGb250RmFtaWx5ID0gdHJ1ZTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAg
fQorI2Vsc2UKKyAgICAvLyBMb29wIHRocm91Z2ggZWFjaCBmb250IGZhbWlseSBvZiB0aGUgcmVz
dWx0IHRvIHNlZSBpZiBpdCBmaXRzIHRoZSBvbmUgd2UgcmVxdWVzdGVkLgorICAgIGJvb2wgbWF0
Y2hlZEZvbnRGYW1pbHkgPSBmYWxzZTsKKyAgICBGY1ZhbHVlIHZhbHVlOworICAgIEZjVmFsdWVC
aW5kaW5nIGJpbmRpbmc7CisgICAgZm9yIChpbnQgaSA9IDA7IEZjUGF0dGVybkdldFdpdGhCaW5k
aW5nKHJlc3VsdFBhdHRlcm4uZ2V0KCksIEZDX0ZBTUlMWSwgaSwgJnZhbHVlLCAmYmluZGluZykg
PT0gRmNSZXN1bHRNYXRjaDsgKytpKSB7CisgICAgICAgIEFTU0VSVCh2YWx1ZS50eXBlID09IEZj
VHlwZVN0cmluZyk7CisgICAgICAgIFN0cmluZyBmYW1pbHlOYW1lQWZ0ZXJNYXRjaGluZyA9IFN0
cmluZzo6ZnJvbVVURjgocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4odmFsdWUudS5zKSk7
CiAgICAgICAgIC8vIElmIEZvbnRjb25maWcgZ2F2ZSB1cyBhIGRpZmZlcmVudCBmb250IGZhbWls
eSB0aGFuIHRoZSBvbmUgd2UgcmVxdWVzdGVkLCB3ZSBzaG91bGQgaWdub3JlIGl0CiAgICAgICAg
IC8vIGFuZCBhbGxvdyBXZWJDb3JlIHRvIGdpdmUgdXMgdGhlIG5leHQgZm9udCBvbiB0aGUgQ1NT
IGZhbGxiYWNrIGxpc3QuIFRoZSBleGNlcHRpb25zIGFyZSBpZgogICAgICAgICAvLyB0aGlzIGZh
bWlseSBuYW1lIGlzIGEgY29tbW9ubHktdXNlZCBnZW5lcmljIGZhbWlseSwgb3IgaWYgdGhlIGZh
bWlsaWVzIGFyZSBzdHJvbmdseS1hbGlhc2VkLgotICAgICAgICAvLyBDaGVja2luZyBmb3IgYSBz
dHJvbmcgYWxpYXMgY29tZXMgbGFzdCwgc2luY2UgaXQgaXMgc2xvdy4KLSAgICAgICAgU3RyaW5n
IGZhbWlseU5hbWVBZnRlck1hdGNoaW5nID0gU3RyaW5nOjpmcm9tVVRGOChyZWludGVycHJldF9j
YXN0PGNoYXIqPihmb250Q29uZmlnRmFtaWx5TmFtZUFmdGVyTWF0Y2hpbmcpKTsKLSAgICAgICAg
aWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UoZmFtaWx5TmFtZUFmdGVyQ29uZmlndXJhdGlvbiwg
ZmFtaWx5TmFtZUFmdGVyTWF0Y2hpbmcpIHx8IGlzQ29tbW9ubHlVc2VkR2VuZXJpY0ZhbWlseShm
YW1pbHlOYW1lU3RyaW5nKSB8fCBhcmVTdHJvbmdseUFsaWFzZWQoZmFtaWx5TmFtZUFmdGVyQ29u
ZmlndXJhdGlvbiwgZmFtaWx5TmFtZUFmdGVyTWF0Y2hpbmcpKSB7CisgICAgICAgIGlmIChiaW5k
aW5nID09IEZjVmFsdWVCaW5kaW5nU3Ryb25nIHx8IGVxdWFsSWdub3JpbmdBU0NJSUNhc2UoZmFt
aWx5TmFtZUFmdGVyQ29uZmlndXJhdGlvbiwgZmFtaWx5TmFtZUFmdGVyTWF0Y2hpbmcpIHx8IGlz
Q29tbW9ubHlVc2VkR2VuZXJpY0ZhbWlseShmYW1pbHlOYW1lU3RyaW5nKSkgewogICAgICAgICAg
ICAgbWF0Y2hlZEZvbnRGYW1pbHkgPSB0cnVlOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
IH0KICAgICB9CisjZW5kaWYKIAogICAgIGlmICghbWF0Y2hlZEZvbnRGYW1pbHkpCiAgICAgICAg
IHJldHVybiBudWxscHRyOwo=
</data>
<flag name="commit-queue"
          id="459555"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>436505</attachid>
            <date>2021-08-26 06:53:04 -0700</date>
            <delta_ts>2021-08-26 12:30:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-228927-20210826085303.patch</filename>
            <type>text/plain</type>
            <size>5315</size>
            <attacher name="Michael Catanzaro">mcatanzaro</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxNjIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjI4Y2ZlOGRlN2E5NjY5
NTI3MGVjMzk4MGE5YTg1MGFjNjkwMmYwNS4uMGM2YTI1ZTQ0ZGVmNGU2NTY5MmVmN2U1ZTU0MjIy
YzUzMWRmMGMxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDIxLTA4LTI2ICBNaWNo
YWVsIENhdGFuemFybyAgPG1jYXRhbnphcm9AZ25vbWUub3JnPgorCisgICAgICAgIFtGcmVlVHlw
ZV0gQXZvaWQgeXVja3kgc3Ryb25nIGFsaWFzIGNvbXB1dGF0aW9ucyBpbiBmb250IGZhbGxiYWNr
IGNvZGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIy
ODkyNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIElm
IGJ1aWx0IGFnYWluc3QgdGhlIHVwY29taW5nIEZvbnRjb25maWcgMi4xMy45NSwgd2UgY2FuIGF2
b2lkIGNvbXBpbGluZyBhIGJ1bmNoIG9mIGFyY2FuZQorICAgICAgICBmb250IG1hdGNoaW5nIGNv
ZGUuIEl0IHdpbGwgYmUgYSB3aGlsZSBiZWZvcmUgd2UgY2FuIHJlcXVpcmUgRm9udGNvbmZpZyAy
LjEzLjk1LCBzbyB1c2UKKyAgICAgICAgcHJlcHJvY2Vzc29yIGd1YXJkcyBmb3Igbm93LgorCisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZnJlZXR5cGUvRm9udENhY2hlRnJlZVR5cGUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6YXJlU3Ryb25nbHlBbGlhc2VkKToKKyAgICAgICAgKFdlYkNv
cmU6OkZvbnRDYWNoZTo6Y3JlYXRlRm9udFBsYXRmb3JtRGF0YSk6CisKIDIwMjEtMDgtMjYgIEtp
bW1vIEtpbm51bmVuICA8a2tpbm51bmVuQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWJHTCBjYWxs
cyBpbnRvIHN0YXRpYyBHcmFwaGljc0NvbnRleHRHTE9wZW5HTCBmdW5jdGlvbnMgbmVlZGxlc3Ns
eQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZnJlZXR5cGUv
Rm9udENhY2hlRnJlZVR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZnJlZXR5cGUvRm9udENhY2hlRnJlZVR5cGUuY3BwCmluZGV4IDMyMGUyNDBlNGEzYTc2M2Y4ZjI3
OTQ4YjdhYTNmMzczNzExMjdjY2EuLjIyNGZhN2FmYjljYzQ0MGI1YzUzOWY1OTMwODRmY2MxMzJi
M2UwYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZyZWV0
eXBlL0ZvbnRDYWNoZUZyZWVUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9mcmVldHlwZS9Gb250Q2FjaGVGcmVlVHlwZS5jcHAKQEAgLTM1NSw5ICszNTUsOSBA
QCBzdGF0aWMgU3RyaW5nIGdldEZhbWlseU5hbWVTdHJpbmdGcm9tRmFtaWx5KGNvbnN0IFN0cmlu
ZyYgZmFtaWx5KQogICAgIHJldHVybiAiIjsKIH0KIAotLy8gVGhpcyBpcyBiYXNlZCBvbiBDaHJv
bWl1bSBCU0QgY29kZSBmcm9tIFNraWEgKHNyYy9wb3J0cy9Ta0ZvbnRNZ3JfZm9udGNvbmZpZy5j
cHApLiBJdCBpcyBhCi0vLyBoYWNrIGZvciBsYWNrIG9mIEFQSSBpbiBGb250Y29uZmlnOiBodHRw
czovL2J1Z3MuZnJlZWRlc2t0b3Aub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTM3NQotLy8gRklYTUU6
IFRoaXMgaXMgaG9ycmlibGUuIEl0IHNob3VsZCBiZSBkZWxldGVkIG9uY2UgRm9udGNvbmZpZyBj
YW4gZG8gdGhpcyBpdHNlbGYuCisjaWYgRkNfVkVSU0lPTiA8IDIxMzk1CisvLyBUaGlzIGlzIGJh
c2VkIG9uIEJTRC1saWNlbnNlZCBjb2RlIGZyb20gU2tpYSAoc3JjL3BvcnRzL1NrRm9udE1ncl9m
b250Y29uZmlnLmNwcCkuCisvLyBJdCBpcyBvYnNvbGV0ZWQgYnkgbmV3ZXIgRm9udGNvbmZpZywg
c2VlIGh0dHBzOi8vZ2l0bGFiLmZyZWVkZXNrdG9wLm9yZy9mb250Y29uZmlnL2ZvbnRjb25maWcv
LS9pc3N1ZXMvMjk0LgogZW51bSBjbGFzcyBBbGlhc1N0cmVuZ3RoIHsKICAgICBXZWFrLAogICAg
IFN0cm9uZywKQEAgLTQ4Miw2ICs0ODIsNyBAQCBzdGF0aWMgYm9vbCBhcmVTdHJvbmdseUFsaWFz
ZWQoY29uc3QgU3RyaW5nJiBmYW1pbHlBLCBjb25zdCBTdHJpbmcmIGZhbWlseUIpCiAgICAgfQog
ICAgIHJldHVybiBmYWxzZTsKIH0KKyNlbmRpZiAvLyBGQ19WRVJTSU9OIDwgMjEzOTUKIAogc3Rh
dGljIGlubGluZSBib29sIGlzQ29tbW9ubHlVc2VkR2VuZXJpY0ZhbWlseShjb25zdCBTdHJpbmcm
IGZhbWlseU5hbWVTdHJpbmcpCiB7CkBAIC01MTUsOCArNTE2LDYgQEAgc3RkOjp1bmlxdWVfcHRy
PEZvbnRQbGF0Zm9ybURhdGE+IEZvbnRDYWNoZTo6Y3JlYXRlRm9udFBsYXRmb3JtRGF0YShjb25z
dCBGb250RGUKICAgICBpZiAoIWNvbmZpZ3VyZVBhdHRlcm5Gb3JGb250RGVzY3JpcHRpb24ocGF0
dGVybi5nZXQoKSwgZm9udERlc2NyaXB0aW9uKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAK
LSAgICAvLyBUaGUgc3RyYXRlZ3kgaXMgb3JpZ2luYWxseSBmcm9tIFNraWEgKHNyYy9wb3J0cy9T
a0ZvbnRIb3N0X2ZvbnRjb25maWcuY3BwKToKLSAgICAvLwogICAgIC8vIFdlIGRvIG5vdCBub3Jt
YWxseSBhbGxvdyBmb250Y29uZmlnIHRvIHN1YnN0aXR1dGUgb25lIGZvbnQgZmFtaWx5IGZvciBh
bm90aGVyLCBzaW5jZSB0aGlzCiAgICAgLy8gd291bGQgYnJlYWsgQ1NTIGZvbnQgZmFtaWx5IGZh
bGxiYWNrOiB0aGUgd2Vic2l0ZSBzaG91bGQgYmUgaW4gY29udHJvbCBvZiBmYWxsYmFjay4gRHVy
aW5nCiAgICAgLy8gbm9ybWFsIGZvbnQgbWF0Y2hpbmcsIHRoZSBvbmx5IGZvbnQgZmFtaWx5IHN1
YnN0aXR1dGlvbiBwZXJtaXR0ZWQgaXMgZm9yIGdlbmVyaWMgZmFtaWxpZXMKQEAgLTU0MCwyMCAr
NTM5LDMzIEBAIHN0ZDo6dW5pcXVlX3B0cjxGb250UGxhdGZvcm1EYXRhPiBGb250Q2FjaGU6OmNy
ZWF0ZUZvbnRQbGF0Zm9ybURhdGEoY29uc3QgRm9udERlCiAgICAgaWYgKCFyZXN1bHRQYXR0ZXJu
KSAvLyBObyBtYXRjaC4KICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICAvLyBMb29wIHRo
cm91Z2ggZWFjaCBmb250IGZhbWlseSBvZiB0aGUgcmVzdWx0IHRvIHNlZSBpZiBpdCBmaXRzIHRo
ZSBvbmUgd2UgcmVxdWVzdGVkLgorI2lmIEZDX1ZFUlNJT04gPCAyMTM5NQogICAgIGJvb2wgbWF0
Y2hlZEZvbnRGYW1pbHkgPSBmYWxzZTsKICAgICBGY0NoYXI4KiBmb250Q29uZmlnRmFtaWx5TmFt
ZUFmdGVyTWF0Y2hpbmc7CiAgICAgZm9yIChpbnQgaSA9IDA7IEZjUGF0dGVybkdldFN0cmluZyhy
ZXN1bHRQYXR0ZXJuLmdldCgpLCBGQ19GQU1JTFksIGksICZmb250Q29uZmlnRmFtaWx5TmFtZUFm
dGVyTWF0Y2hpbmcpID09IEZjUmVzdWx0TWF0Y2g7ICsraSkgeworICAgICAgICBTdHJpbmcgZmFt
aWx5TmFtZUFmdGVyTWF0Y2hpbmcgPSBTdHJpbmc6OmZyb21VVEY4KHJlaW50ZXJwcmV0X2Nhc3Q8
Y2hhcio+KGZvbnRDb25maWdGYW1pbHlOYW1lQWZ0ZXJNYXRjaGluZykpOworICAgICAgICBpZiAo
ZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShmYW1pbHlOYW1lQWZ0ZXJDb25maWd1cmF0aW9uLCBmYW1p
bHlOYW1lQWZ0ZXJNYXRjaGluZykgfHwgaXNDb21tb25seVVzZWRHZW5lcmljRmFtaWx5KGZhbWls
eU5hbWVTdHJpbmcpIHx8IGFyZVN0cm9uZ2x5QWxpYXNlZChmYW1pbHlOYW1lQWZ0ZXJDb25maWd1
cmF0aW9uLCBmYW1pbHlOYW1lQWZ0ZXJNYXRjaGluZykpIHsKKyAgICAgICAgICAgIG1hdGNoZWRG
b250RmFtaWx5ID0gdHJ1ZTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQor
I2Vsc2UKKyAgICAvLyBMb29wIHRocm91Z2ggZWFjaCBmb250IGZhbWlseSBvZiB0aGUgcmVzdWx0
IHRvIHNlZSBpZiBpdCBmaXRzIHRoZSBvbmUgd2UgcmVxdWVzdGVkLgorICAgIGJvb2wgbWF0Y2hl
ZEZvbnRGYW1pbHkgPSBmYWxzZTsKKyAgICBGY1ZhbHVlIHZhbHVlOworICAgIEZjVmFsdWVCaW5k
aW5nIGJpbmRpbmc7CisgICAgZm9yIChpbnQgaSA9IDA7IEZjUGF0dGVybkdldFdpdGhCaW5kaW5n
KHJlc3VsdFBhdHRlcm4uZ2V0KCksIEZDX0ZBTUlMWSwgaSwgJnZhbHVlLCAmYmluZGluZykgPT0g
RmNSZXN1bHRNYXRjaDsgKytpKSB7CisgICAgICAgIEFTU0VSVCh2YWx1ZS50eXBlID09IEZjVHlw
ZVN0cmluZyk7CisgICAgICAgIFN0cmluZyBmYW1pbHlOYW1lQWZ0ZXJNYXRjaGluZyA9IFN0cmlu
Zzo6ZnJvbVVURjgocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4odmFsdWUudS5zKSk7CiAg
ICAgICAgIC8vIElmIEZvbnRjb25maWcgZ2F2ZSB1cyBhIGRpZmZlcmVudCBmb250IGZhbWlseSB0
aGFuIHRoZSBvbmUgd2UgcmVxdWVzdGVkLCB3ZSBzaG91bGQgaWdub3JlIGl0CiAgICAgICAgIC8v
IGFuZCBhbGxvdyBXZWJDb3JlIHRvIGdpdmUgdXMgdGhlIG5leHQgZm9udCBvbiB0aGUgQ1NTIGZh
bGxiYWNrIGxpc3QuIFRoZSBleGNlcHRpb25zIGFyZSBpZgogICAgICAgICAvLyB0aGlzIGZhbWls
eSBuYW1lIGlzIGEgY29tbW9ubHktdXNlZCBnZW5lcmljIGZhbWlseSwgb3IgaWYgdGhlIGZhbWls
aWVzIGFyZSBzdHJvbmdseS1hbGlhc2VkLgotICAgICAgICAvLyBDaGVja2luZyBmb3IgYSBzdHJv
bmcgYWxpYXMgY29tZXMgbGFzdCwgc2luY2UgaXQgaXMgc2xvdy4KLSAgICAgICAgU3RyaW5nIGZh
bWlseU5hbWVBZnRlck1hdGNoaW5nID0gU3RyaW5nOjpmcm9tVVRGOChyZWludGVycHJldF9jYXN0
PGNoYXIqPihmb250Q29uZmlnRmFtaWx5TmFtZUFmdGVyTWF0Y2hpbmcpKTsKLSAgICAgICAgaWYg
KGVxdWFsSWdub3JpbmdBU0NJSUNhc2UoZmFtaWx5TmFtZUFmdGVyQ29uZmlndXJhdGlvbiwgZmFt
aWx5TmFtZUFmdGVyTWF0Y2hpbmcpIHx8IGlzQ29tbW9ubHlVc2VkR2VuZXJpY0ZhbWlseShmYW1p
bHlOYW1lU3RyaW5nKSB8fCBhcmVTdHJvbmdseUFsaWFzZWQoZmFtaWx5TmFtZUFmdGVyQ29uZmln
dXJhdGlvbiwgZmFtaWx5TmFtZUFmdGVyTWF0Y2hpbmcpKSB7CisgICAgICAgIGlmIChiaW5kaW5n
ID09IEZjVmFsdWVCaW5kaW5nU3Ryb25nIHx8IGVxdWFsSWdub3JpbmdBU0NJSUNhc2UoZmFtaWx5
TmFtZUFmdGVyQ29uZmlndXJhdGlvbiwgZmFtaWx5TmFtZUFmdGVyTWF0Y2hpbmcpIHx8IGlzQ29t
bW9ubHlVc2VkR2VuZXJpY0ZhbWlseShmYW1pbHlOYW1lU3RyaW5nKSkgewogICAgICAgICAgICAg
bWF0Y2hlZEZvbnRGYW1pbHkgPSB0cnVlOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0K
ICAgICB9CisjZW5kaWYKIAogICAgIGlmICghbWF0Y2hlZEZvbnRGYW1pbHkpCiAgICAgICAgIHJl
dHVybiBudWxscHRyOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>