<?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>206841</bug_id>
          
          <creation_ts>2020-01-27 13:23:43 -0800</creation_ts>
          <short_desc>WebCore: Remove old iOS version macros</short_desc>
          <delta_ts>2020-01-31 22:01:36 -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>WebCore Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=206096</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="Jonathan Bedard">jbedard</reporter>
          <assigned_to name="Jonathan Bedard">jbedard</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>darin</cc>
    
    <cc>dbates</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1611552</commentid>
    <comment_count>0</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-01-27 13:23:43 -0800</bug_when>
    <thetext>We have a number of version detection macros which are really platform detection macros. These should be implemented in a way which makes their intention obvious.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1611569</commentid>
    <comment_count>1</comment_count>
      <attachid>388895</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-01-27 13:34:25 -0800</bug_when>
    <thetext>Created attachment 388895
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1611701</commentid>
    <comment_count>2</comment_count>
      <attachid>388895</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-01-27 16:47:45 -0800</bug_when>
    <thetext>Comment on attachment 388895
Patch

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

All of this should go into PlatformHave.h I think

&gt; Source/WebCore/page/SettingsDefaultValues.h:107
&gt; +#if PLATFORM(COCOA) &amp;&amp; !(PLATFORM(MAC) &amp;&amp; __MAC_OS_X_VERSION_MIN_REQUIRED &lt; 101400) &amp;&amp; !PLATFORM(APPLETV)

The condition is perfect here, but this seems to be HAVE(CG_CONTEXT_DRAW_CONIC_GRADIENT).

&gt; Source/WebCore/platform/graphics/cg/GradientCG.cpp:185
&gt; +#if PLATFORM(COCOA) &amp;&amp; !(PLATFORM(MAC) &amp;&amp; __MAC_OS_X_VERSION_MIN_REQUIRED &lt; 101400) &amp;&amp; !PLATFORM(APPLETV)

Ditto.

&gt; Source/WebCore/platform/graphics/cocoa/FontCacheCoreText.cpp:42
&gt; +#define HAS_CORE_TEXT_WIDTH_ATTRIBUTE (PLATFORM(MAC) || PLATFORM(IOS) || PLATFORM(MACCATALYST))

Move to PlatformHave.h? And change the logic to:

    #if PLATFORM(COCOA) &amp;&amp; !PLATFORM(WATCHOS) &amp;&amp; !PLATFORM(APPLETV)

&gt; Source/WebCore/platform/graphics/cocoa/FontCacheCoreText.cpp:1067
&gt; +#if !PLATFORM(WATCHOS) &amp;&amp; !PLATFORM(APPLETV)

I think this might be HAVE(CT_FONT_DESCRIPTOR_IS_SYSTEM_UI_FONT)

&gt; Source/WebCore/platform/graphics/cocoa/FontCacheCoreText.cpp:1642
&gt; +#if PLATFORM(IOS) || PLATFORM(MAC) || PLATFORM(MACCATALYST)

I think this might be HAVE(CT_FONT_DESCRIPTOR_CREATE_LAST_RESORT)

Also, it’s arbitrary to write this as the reverse of how we wrote the identical condition above.

&gt; Source/WebCore/platform/graphics/cocoa/FontDescriptionCocoa.cpp:85
&gt; +#if PLATFORM(IOS) || PLATFORM(MACCATALYST)

The other patch added HAVE(....STYLE_TITLE_0/4) so we should use that here.

&gt; Source/WebCore/platform/graphics/cocoa/FontPlatformDataCocoa.mm:127
&gt; +#define WORKAROUND_CORETEXT_VARIATIONS_WITH_FALLBACK_LIST_BUG (ENABLE(VARIATION_FONTS) &amp;&amp; (PLATFORM(WATCHOS) || PLATFORM(APPLETV)))

I bet the real story is that we don’t need this workaround at all.

&gt; Source/WebCore/platform/graphics/ios/FontCacheIOS.mm:159
&gt; +#if !PLATFORM(WATCHOS) &amp;&amp; !PLATFORM(APPLETV)

I think this might be HAVE(CT_FONT_DESCRIPTOR_CREATE_LAST_RESORT)

&gt; Source/WebCore/platform/graphics/mac/FontCustomPlatformData.cpp:60
&gt;      auto array = adoptCF(CTFontManagerCreateFontDescriptorsFromData(bufferData.get()));

I think this might be HAVE(CT_FONT_MANAGER_CREATE_FONT_DESCRIPTORS_FROM_DATA)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1611978</commentid>
    <comment_count>3</comment_count>
      <attachid>388895</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-01-28 09:13:47 -0800</bug_when>
    <thetext>Comment on attachment 388895
Patch

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

&gt;&gt; Source/WebCore/platform/graphics/cocoa/FontPlatformDataCocoa.mm:127
&gt;&gt; +#define WORKAROUND_CORETEXT_VARIATIONS_WITH_FALLBACK_LIST_BUG (ENABLE(VARIATION_FONTS) &amp;&amp; (PLATFORM(WATCHOS) || PLATFORM(APPLETV)))
&gt; 
&gt; I bet the real story is that we don’t need this workaround at all.

Probably, I have a hit list of likely incorrect platform differences, and this is on it.

If I split this patch further, I wouldn&apos;t include this change, but the changes in WebCore were starting to get small, so I thought it would be better to bundle them together.

&gt;&gt; Source/WebCore/platform/graphics/mac/FontCustomPlatformData.cpp:60
&gt;&gt;      auto array = adoptCF(CTFontManagerCreateFontDescriptorsFromData(bufferData.get()));
&gt; 
&gt; I think this might be HAVE(CT_FONT_MANAGER_CREATE_FONT_DESCRIPTORS_FROM_DATA)

Differing bit here is actually the fact that watchOS and appleTV won&apos;t iterate through itemInCollection, I can&apos;t think of a HAVE(...) statement here that wouldn&apos;t make things more confusing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1612048</commentid>
    <comment_count>4</comment_count>
      <attachid>389032</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-01-28 10:54:20 -0800</bug_when>
    <thetext>Created attachment 389032
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1612049</commentid>
    <comment_count>5</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-01-28 10:55:50 -0800</bug_when>
    <thetext>(In reply to Jonathan Bedard from comment #4)
&gt; Created attachment 389032 [details]
&gt; Patch

I&apos;m not against splitting this patch up further, but the composite patches would start to become one-liners.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1613716</commentid>
    <comment_count>6</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2020-01-31 22:01:36 -0800</bug_when>
    <thetext>Style checker needs to be updated after Platform.h split :(</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>388895</attachid>
            <date>2020-01-27 13:34:25 -0800</date>
            <delta_ts>2020-01-28 10:54:18 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-206841-20200127133424.patch</filename>
            <type>text/plain</type>
            <size>7587</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1NTE2MykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI3IEBACisyMDIwLTAxLTI3ICBKb25hdGhh
biBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNvbT4KKworICAgICAgICBXZWJDb3JlOiBSZW1vdmUg
b2xkIGlPUyB2ZXJzaW9uIG1hY3JvcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjA2ODQxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgTm8gZnVuY3Rpb25hbCBjaGFuZ2VzLCBjb3ZlcmVkIGJ5IGV4aXN0aW5n
IHRlc3RzLgorCisgICAgICAgICogcGFnZS9TZXR0aW5nc0RlZmF1bHRWYWx1ZXMuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFkaWVudENHLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkdyYWRpZW50OjpwYWludCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2Ev
Rm9udENhY2hlQ29yZVRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6dmFyaWF0aW9uQ2FwYWJp
bGl0aWVzRm9yRm9udERlc2NyaXB0b3IpOgorICAgICAgICAoV2ViQ29yZTo6Rm9udENhY2hlOjps
YXN0UmVzb3J0RmFsbGJhY2tGb250KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2Nv
YS9Gb250RGVzY3JpcHRpb25Db2NvYS5jcHA6CisgICAgICAgIChXZWJDb3JlOjptYXRjaFN5c3Rl
bUZvbnRVc2UpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRQbGF0Zm9y
bURhdGFDb2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6OmNhc2NhZGVUb0xhc3RSZXNvcnRBbmRW
YXJpYXRpb25zRm9udERlc2NyaXB0b3IpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2lv
cy9Gb250Q2FjaGVJT1MubW06CisgICAgICAgIChXZWJDb3JlOjpwbGF0Zm9ybUZvbnRXaXRoRmFt
aWx5U3BlY2lhbENhc2UpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250Q3Vz
dG9tUGxhdGZvcm1EYXRhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUZvbnRDdXN0b21Q
bGF0Zm9ybURhdGEpOgorCiAyMDIwLTAxLTI3ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUu
Y29tPgogCiAgICAgICAgIFN1cHBvcnQgJ2FsbG93PSJmdWxsc2NyZWVuIicgZmVhdHVyZSBwb2xp
Y3kKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3NEZWZhdWx0VmFsdWVzLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5nc0RlZmF1bHRWYWx1ZXMuaAko
cmV2aXNpb24gMjU1MTQ1KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5nc0RlZmF1bHRW
YWx1ZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMTA0LDcgKzEwNCw3IEBAIHN0YXRpYyBjb25zdCBi
b29sIGRlZmF1bHRNZWRpYUVuYWJsZWQgPSAKIHN0YXRpYyBjb25zdCBib29sIGRlZmF1bHRNZWRp
YUVuYWJsZWQgPSBmYWxzZTsKICNlbmRpZgogICAgIAotI2lmIChQTEFURk9STShJT1NfRkFNSUxZ
KSAmJiBfX0lQSE9ORV9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMjAwMDApIHx8IChQTEFU
Rk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxNDAwKSB8
fCBQTEFURk9STShXQVRDSE9TKQorI2lmIFBMQVRGT1JNKENPQ09BKSAmJiAhKFBMQVRGT1JNKE1B
QykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA8IDEwMTQwMCkgJiYgIVBMQVRG
T1JNKEFQUExFVFYpCiBzdGF0aWMgY29uc3QgYm9vbCBkZWZhdWx0Q29uaWNHcmFkaWVudCA9IHRy
dWU7CiAjZWxzZQogc3RhdGljIGNvbnN0IGJvb2wgZGVmYXVsdENvbmljR3JhZGllbnQgPSBmYWxz
ZTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYWRpZW50Q0cu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0dy
YWRpZW50Q0cuY3BwCShyZXZpc2lvbiAyNTUxNDUpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jZy9HcmFkaWVudENHLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTgyLDcgKzE4
Miw3IEBAIHZvaWQgR3JhZGllbnQ6OnBhaW50KENHQ29udGV4dFJlZiBwbGF0Zm8KICAgICAgICAg
ICAgICAgICBDR0NvbnRleHRSZXN0b3JlR1N0YXRlKHBsYXRmb3JtQ29udGV4dCk7CiAgICAgICAg
IH0sCiAgICAgICAgIFsmXSAoY29uc3QgQ29uaWNEYXRhJiBkYXRhKSB7Ci0jaWYgKFBMQVRGT1JN
KElPU19GQU1JTFkpICYmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEyMDAw
MCkgfHwgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+
PSAxMDE0MDApIHx8IFBMQVRGT1JNKFdBVENIT1MpCisjaWYgUExBVEZPUk0oQ09DT0EpICYmICEo
UExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEIDwgMTAxNDAw
KSAmJiAhUExBVEZPUk0oQVBQTEVUVikKICAgICAgICAgICAgIENHQ29udGV4dFNhdmVHU3RhdGUo
cGxhdGZvcm1Db250ZXh0KTsKICAgICAgICAgICAgIENHQ29udGV4dFRyYW5zbGF0ZUNUTShwbGF0
Zm9ybUNvbnRleHQsIGRhdGEucG9pbnQwLngoKSwgZGF0YS5wb2ludDAueSgpKTsKICAgICAgICAg
ICAgIENHQ29udGV4dFJvdGF0ZUNUTShwbGF0Zm9ybUNvbnRleHQsIChDR0Zsb2F0KS1NX1BJXzIp
OwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udENhY2hl
Q29yZVRleHQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NvY29hL0ZvbnRDYWNoZUNvcmVUZXh0LmNwcAkocmV2aXNpb24gMjU1MTQ1KQorKysgU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udENhY2hlQ29yZVRleHQuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0zOSw3ICszOSw3IEBACiAjaW5jbHVkZSA8d3RmL01lbW9yeVBy
ZXNzdXJlSGFuZGxlci5oPgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogCi0jZGVm
aW5lIEhBU19DT1JFX1RFWFRfV0lEVEhfQVRUUklCVVRFIChQTEFURk9STShNQUMpIHx8IChQTEFU
Rk9STShJT1NfRkFNSUxZKSAmJiBfX0lQSE9ORV9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAx
MTAwMDApKQorI2RlZmluZSBIQVNfQ09SRV9URVhUX1dJRFRIX0FUVFJJQlVURSAoUExBVEZPUk0o
TUFDKSB8fCBQTEFURk9STShJT1MpIHx8IFBMQVRGT1JNKE1BQ0NBVEFMWVNUKSkKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCkBAIC0xMDY0LDcgKzEwNjQsNyBAQCBzdGF0aWMgVmFyaWF0aW9uQ2Fw
YWJpbGl0aWVzIHZhcmlhdGlvbkNhCiAgICAgfQogCiAgICAgYm9vbCBvcHRPdXRGcm9tR1hOb3Jt
YWxpemF0aW9uID0gZmFsc2U7Ci0jaWYgKFBMQVRGT1JNKE1BQykgfHwgKFBMQVRGT1JNKElPU19G
QU1JTFkpICYmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDExMDAwMCkpCisj
aWYgIVBMQVRGT1JNKFdBVENIT1MpICYmICFQTEFURk9STShBUFBMRVRWKQogICAgIG9wdE91dEZy
b21HWE5vcm1hbGl6YXRpb24gPSBDVEZvbnREZXNjcmlwdG9ySXNTeXN0ZW1VSUZvbnQoZm9udERl
c2NyaXB0b3IpOwogI2VuZGlmCiAKQEAgLTE2MzksNyArMTYzOSw3IEBAIFJlZjxGb250PiBGb250
Q2FjaGU6Omxhc3RSZXNvcnRGYWxsYmFja0YKICAgICAgICAgcmV0dXJuICpyZXN1bHQ7CiAKICAg
ICAvLyBMYXN0UmVzb3J0IGlzIGd1YXJhbnRlZWQgdG8gYmUgbm9uLW51bGwuCi0jaWYgKFBMQVRG
T1JNKElPU19GQU1JTFkpICYmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEx
MDAwMCkgfHwgUExBVEZPUk0oTUFDKQorI2lmIFBMQVRGT1JNKElPUykgfHwgUExBVEZPUk0oTUFD
KSB8fCBQTEFURk9STShNQUNDQVRBTFlTVCkKICAgICBhdXRvIGZvbnREZXNjcmlwdG9yID0gYWRv
cHRDRihDVEZvbnREZXNjcmlwdG9yQ3JlYXRlTGFzdFJlc29ydCgpKTsKICAgICBhdXRvIGZvbnQg
PSBhZG9wdENGKENURm9udENyZWF0ZVdpdGhGb250RGVzY3JpcHRvcihmb250RGVzY3JpcHRvci5n
ZXQoKSwgZm9udERlc2NyaXB0aW9uLmNvbXB1dGVkUGl4ZWxTaXplKCksIG51bGxwdHIpKTsKICNl
bHNlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250RGVz
Y3JpcHRpb25Db2NvYS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY29jb2EvRm9udERlc2NyaXB0aW9uQ29jb2EuY3BwCShyZXZpc2lvbiAyNTUxNDUp
CisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250RGVzY3JpcHRp
b25Db2NvYS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTgyLDcgKzgyLDcgQEAgc3RhdGljIGlubGlu
ZSBPcHRpb25hbDxTeXN0ZW1Gb250S2luZD4gbQogICAgICAgICBrQ1RVSUZvbnRUZXh0U3R5bGVT
aG9ydEZvb3Rub3RlLAogICAgICAgICBrQ1RVSUZvbnRUZXh0U3R5bGVTaG9ydENhcHRpb24xLAog
ICAgICAgICBrQ1RVSUZvbnRUZXh0U3R5bGVUYWxsQm9keSwKLSNpZiBfX0lQSE9ORV9PU19WRVJT
SU9OX01JTl9SRVFVSVJFRCA+PSAxMTAwMDAKKyNpZiBQTEFURk9STShJT1MpIHx8IFBMQVRGT1JN
KE1BQ0NBVEFMWVNUKQogICAgICAgICBrQ1RVSUZvbnRUZXh0U3R5bGVUaXRsZTAsCiAgICAgICAg
IGtDVFVJRm9udFRleHRTdHlsZVRpdGxlNCwKICNlbmRpZgpJbmRleDogU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udFBsYXRmb3JtRGF0YUNvY29hLm1tCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRQbGF0Zm9y
bURhdGFDb2NvYS5tbQkocmV2aXNpb24gMjU1MTQ1KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY29jb2EvRm9udFBsYXRmb3JtRGF0YUNvY29hLm1tCSh3b3JraW5nIGNvcHkp
CkBAIC0xMjQsNyArMTI0LDcgQEAgc3RhdGljIENGRGljdGlvbmFyeVJlZiBjYXNjYWRlVG9MYXN0
UmVzbwogc3RhdGljIFJldGFpblB0cjxDVEZvbnREZXNjcmlwdG9yUmVmPiBjYXNjYWRlVG9MYXN0
UmVzb3J0QW5kVmFyaWF0aW9uc0ZvbnREZXNjcmlwdG9yKENURm9udFJlZiBvcmlnaW5hbEZvbnQp
CiB7CiAvLyBGSVhNRTogUmVtb3ZlIHRoaXMgd2hlbiA8cmRhcjovL3Byb2JsZW0vMjg0NDk0NDE+
IGlzIGZpeGVkLiBOT1RFOiBUaGF0IHJhZGFyIHdhcyBmaXhlZCAxMS8xNi8xNiwgc28gdGhpcyBj
YW4gYmUgcmVtb3ZlZC4gVEJELgotI2RlZmluZSBXT1JLQVJPVU5EX0NPUkVURVhUX1ZBUklBVElP
TlNfV0lUSF9GQUxMQkFDS19MSVNUX0JVRyAoRU5BQkxFKFZBUklBVElPTl9GT05UUykgJiYgKFBM
QVRGT1JNKElPU19GQU1JTFkpICYmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVEIDwg
MTEwMDAwKSkKKyNkZWZpbmUgV09SS0FST1VORF9DT1JFVEVYVF9WQVJJQVRJT05TX1dJVEhfRkFM
TEJBQ0tfTElTVF9CVUcgKEVOQUJMRShWQVJJQVRJT05fRk9OVFMpICYmIChQTEFURk9STShXQVRD
SE9TKSB8fCBQTEFURk9STShBUFBMRVRWKSkpCiAKICAgICBDRkRpY3Rpb25hcnlSZWYgYXR0cmli
dXRlcyA9IGNhc2NhZGVUb0xhc3RSZXNvcnRBdHRyaWJ1dGVzRGljdGlvbmFyeSgpOwogI2lmIFdP
UktBUk9VTkRfQ09SRVRFWFRfVkFSSUFUSU9OU19XSVRIX0ZBTExCQUNLX0xJU1RfQlVHCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9pb3MvRm9udENhY2hlSU9TLm1tCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2lvcy9Gb250Q2Fj
aGVJT1MubW0JKHJldmlzaW9uIDI1NTE0NSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2lvcy9Gb250Q2FjaGVJT1MubW0JKHdvcmtpbmcgY29weSkKQEAgLTE1Niw3ICsxNTYs
NyBAQCBSZXRhaW5QdHI8Q1RGb250UmVmPiBwbGF0Zm9ybUZvbnRXaXRoRmFtCiAgICAgfQogCiAg
ICAgaWYgKGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKGZhbWlseSwgImxhc3RyZXNvcnQi
KSkgewotI2lmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDExMDAwMAorI2lm
ICFQTEFURk9STShXQVRDSE9TKSAmJiAhUExBVEZPUk0oQVBQTEVUVikKICAgICAgICAgc3RhdGlj
IGNvbnN0IENURm9udERlc2NyaXB0b3JSZWYgbGFzdFJlc29ydCA9IENURm9udERlc2NyaXB0b3JD
cmVhdGVMYXN0UmVzb3J0KCk7CiAgICAgICAgIHJldHVybiBhZG9wdENGKENURm9udENyZWF0ZVdp
dGhGb250RGVzY3JpcHRvcihsYXN0UmVzb3J0LCBzaXplLCBudWxscHRyKSk7CiAjZWxzZQpJbmRl
eDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRDdXN0b21QbGF0Zm9y
bURhdGEuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L21hYy9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcAkocmV2aXNpb24gMjU1MTQ1KQorKysgU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC01Niw3ICs1Niw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxGb250
Q3VzdG9tUGxhdGZvcm1EYXRhPiAKICAgICBSZXRhaW5QdHI8Q0ZEYXRhUmVmPiBidWZmZXJEYXRh
ID0gYnVmZmVyLmNyZWF0ZUNGRGF0YSgpOwogCiAgICAgUmV0YWluUHRyPENURm9udERlc2NyaXB0
b3JSZWY+IGZvbnREZXNjcmlwdG9yOwotI2lmIFBMQVRGT1JNKE1BQykgfHwgKFBMQVRGT1JNKElP
U19GQU1JTFkpICYmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDExMDAwMCkK
KyNpZiAhUExBVEZPUk0oV0FUQ0hPUykgJiYgIVBMQVRGT1JNKEFQUExFVFYpCiAgICAgYXV0byBh
cnJheSA9IGFkb3B0Q0YoQ1RGb250TWFuYWdlckNyZWF0ZUZvbnREZXNjcmlwdG9yc0Zyb21EYXRh
KGJ1ZmZlckRhdGEuZ2V0KCkpKTsKICAgICBpZiAoIWFycmF5KQogICAgICAgICByZXR1cm4gbnVs
bHB0cjsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>389032</attachid>
            <date>2020-01-28 10:54:20 -0800</date>
            <delta_ts>2020-01-28 10:54:20 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-206841-20200128105419.patch</filename>
            <type>text/plain</type>
            <size>11376</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyNTUyNDYpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBACisyMDIwLTAxLTI4ICBKb25hdGhhbiBCZWRhcmQgIDxq
YmVkYXJkQGFwcGxlLmNvbT4KKworICAgICAgICBXZWJDb3JlOiBSZW1vdmUgb2xkIGlPUyB2ZXJz
aW9uIG1hY3JvcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjA2ODQxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiB3dGYvUGxhdGZvcm1IYXZlLmg6IEFkZCB0aGUgZm9sbG93aW5nIEhBVkUgY2hlY2tzOgor
ICAgICAgICAgICAgSEFWRShDR19DT05URVhUX0RSQVdfQ09OSUNfR1JBRElFTlQpCisgICAgICAg
ICAgICBIQVZFKENPUkVfVEVYVF9XSURUSF9BVFRSSUJVVEUpCisgICAgICAgICAgICBIQVZFKENU
X0ZPTlRfREVTQ1JJUFRPUl9JU19TWVNURU1fVUlfRk9OVCkKKyAgICAgICAgICAgIEhBVkUoQ1Rf
Rk9OVF9ERVNDUklQVE9SX0NSRUFURV9MQVNUX1JFU09SVCkKKwogMjAyMC0wMS0yNyAgSm9uYXRo
YW4gQmVkYXJkICA8amJlZGFyZEBhcHBsZS5jb20+CiAKICAgICAgICAgV2ViQ29yZTogUmVtb3Zl
IGlPUyAxMSBtYWNyb3MgZnJvbSBSZW5kZXJUaGVtZUlPUy5tbQpJbmRleDogU291cmNlL1dURi93
dGYvUGxhdGZvcm1IYXZlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYvUGxhdGZvcm1I
YXZlLmgJKHJldmlzaW9uIDI1NTIzOCkKKysrIFNvdXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5o
CSh3b3JraW5nIGNvcHkpCkBAIC01NzAsMyArNTcwLDE2IEBACiAjZGVmaW5lIEhBVkVfU1lTVEVN
X0ZPTlRfU1RZTEVfVElUTEVfMCAxCiAjZGVmaW5lIEhBVkVfU1lTVEVNX0ZPTlRfU1RZTEVfVElU
TEVfNCAxCiAjZW5kaWYKKworI2lmIFBMQVRGT1JNKENPQ09BKSAmJiAhKFBMQVRGT1JNKE1BQykg
JiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA8IDEwMTQwMCkgJiYgIVBMQVRGT1JN
KEFQUExFVFYpCisjZGVmaW5lIEhBVkVfQ0dfQ09OVEVYVF9EUkFXX0NPTklDX0dSQURJRU5UIDEK
KyNlbmRpZgorCisjaWYgUExBVEZPUk0oQ09DT0EpICYmICFQTEFURk9STShXQVRDSE9TKSAmJiAh
UExBVEZPUk0oQVBQTEVUVikKKyNkZWZpbmUgSEFWRV9DT1JFX1RFWFRfV0lEVEhfQVRUUklCVVRF
IDEKKyNlbmRpZgorCisjaWYgUExBVEZPUk0oQ09DT0EpICYmICFQTEFURk9STShXQVRDSE9TKSAm
JiAhUExBVEZPUk0oQVBQTEVUVikKKyNkZWZpbmUgSEFWRV9DVF9GT05UX0RFU0NSSVBUT1JfSVNf
U1lTVEVNX1VJX0ZPTlQgMQorI2RlZmluZSBIQVZFX0NUX0ZPTlRfREVTQ1JJUFRPUl9DUkVBVEVf
TEFTVF9SRVNPUlQgMQorI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNTUyMzgpCisr
KyBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyOCBA
QAorMjAyMC0wMS0yOCAgSm9uYXRoYW4gQmVkYXJkICA8amJlZGFyZEBhcHBsZS5jb20+CisKKyAg
ICAgICAgV2ViQ29yZTogUmVtb3ZlIG9sZCBpT1MgdmVyc2lvbiBtYWNyb3MKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNjg0MQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIGZ1bmN0aW9uYWwgY2hhbmdl
cywgY292ZXJlZCBieSBleGlzdGluZyB0ZXN0cy4KKworICAgICAgICAqIHBhZ2UvU2V0dGluZ3NE
ZWZhdWx0VmFsdWVzLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhZGllbnRD
Ry5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFkaWVudDo6cGFpbnQpOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDYWNoZUNvcmVUZXh0LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OnZhcmlhdGlvbkNhcGFiaWxpdGllc0ZvckZvbnREZXNjcmlwdG9yKToKKyAgICAgICAg
KFdlYkNvcmU6OmNhcGFiaWxpdGllc0ZvckZvbnREZXNjcmlwdG9yKToKKyAgICAgICAgKFdlYkNv
cmU6OkZvbnRDYWNoZTo6bGFzdFJlc29ydEZhbGxiYWNrRm9udCk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvY29jb2EvRm9udERlc2NyaXB0aW9uQ29jb2EuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6bWF0Y2hTeXN0ZW1Gb250VXNlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9j
b2NvYS9Gb250UGxhdGZvcm1EYXRhQ29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjpjYXNjYWRl
VG9MYXN0UmVzb3J0QW5kVmFyaWF0aW9uc0ZvbnREZXNjcmlwdG9yKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9pb3MvRm9udENhY2hlSU9TLm1tOgorICAgICAgICAoV2ViQ29yZTo6cGxh
dGZvcm1Gb250V2l0aEZhbWlseVNwZWNpYWxDYXNlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9tYWMvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpj
cmVhdGVGb250Q3VzdG9tUGxhdGZvcm1EYXRhKToKKwogMjAyMC0wMS0yOCAgeW91ZW5uIGZhYmxl
dCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgQmxvYiBtZWRpYSBsb2FkaW5nIGRvZXMg
bm90IHdvcmsgd2l0aCBHUFVQcm9jZXNzCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRp
bmdzRGVmYXVsdFZhbHVlcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0
dGluZ3NEZWZhdWx0VmFsdWVzLmgJKHJldmlzaW9uIDI1NTIzOCkKKysrIFNvdXJjZS9XZWJDb3Jl
L3BhZ2UvU2V0dGluZ3NEZWZhdWx0VmFsdWVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTEwNCw3ICsx
MDQsNyBAQCBzdGF0aWMgY29uc3QgYm9vbCBkZWZhdWx0TWVkaWFFbmFibGVkID0gCiBzdGF0aWMg
Y29uc3QgYm9vbCBkZWZhdWx0TWVkaWFFbmFibGVkID0gZmFsc2U7CiAjZW5kaWYKICAgICAKLSNp
ZiAoUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlS
RUQgPj0gMTIwMDAwKSB8fCAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlO
X1JFUVVJUkVEID49IDEwMTQwMCkgfHwgUExBVEZPUk0oV0FUQ0hPUykKKyNpZiBIQVZFKENHX0NP
TlRFWFRfRFJBV19DT05JQ19HUkFESUVOVCkKIHN0YXRpYyBjb25zdCBib29sIGRlZmF1bHRDb25p
Y0dyYWRpZW50ID0gdHJ1ZTsKICNlbHNlCiBzdGF0aWMgY29uc3QgYm9vbCBkZWZhdWx0Q29uaWNH
cmFkaWVudCA9IGZhbHNlOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2cvR3JhZGllbnRDRy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2cvR3JhZGllbnRDRy5jcHAJKHJldmlzaW9uIDI1NTIzOCkKKysrIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYWRpZW50Q0cuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xODIsNyArMTgyLDcgQEAgdm9pZCBHcmFkaWVudDo6cGFpbnQoQ0dDb250ZXh0UmVmIHBs
YXRmbwogICAgICAgICAgICAgICAgIENHQ29udGV4dFJlc3RvcmVHU3RhdGUocGxhdGZvcm1Db250
ZXh0KTsKICAgICAgICAgfSwKICAgICAgICAgWyZdIChjb25zdCBDb25pY0RhdGEmIGRhdGEpIHsK
LSNpZiAoUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVR
VUlSRUQgPj0gMTIwMDAwKSB8fCAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05f
TUlOX1JFUVVJUkVEID49IDEwMTQwMCkgfHwgUExBVEZPUk0oV0FUQ0hPUykKKyNpZiBIQVZFKENH
X0NPTlRFWFRfRFJBV19DT05JQ19HUkFESUVOVCkKICAgICAgICAgICAgIENHQ29udGV4dFNhdmVH
U3RhdGUocGxhdGZvcm1Db250ZXh0KTsKICAgICAgICAgICAgIENHQ29udGV4dFRyYW5zbGF0ZUNU
TShwbGF0Zm9ybUNvbnRleHQsIGRhdGEucG9pbnQwLngoKSwgZGF0YS5wb2ludDAueSgpKTsKICAg
ICAgICAgICAgIENHQ29udGV4dFJvdGF0ZUNUTShwbGF0Zm9ybUNvbnRleHQsIChDR0Zsb2F0KS1N
X1BJXzIpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9u
dENhY2hlQ29yZVRleHQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NvY29hL0ZvbnRDYWNoZUNvcmVUZXh0LmNwcAkocmV2aXNpb24gMjU1MjM4KQor
KysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udENhY2hlQ29yZVRl
eHQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOSw4ICszOSw2IEBACiAjaW5jbHVkZSA8d3RmL01l
bW9yeVByZXNzdXJlSGFuZGxlci5oPgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgog
Ci0jZGVmaW5lIEhBU19DT1JFX1RFWFRfV0lEVEhfQVRUUklCVVRFIChQTEFURk9STShNQUMpIHx8
IChQTEFURk9STShJT1NfRkFNSUxZKSAmJiBfX0lQSE9ORV9PU19WRVJTSU9OX01JTl9SRVFVSVJF
RCA+PSAxMTAwMDApKQotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0YXRpYyBpbmxpbmUgdm9p
ZCBhcHBlbmRSYXdUcnVlVHlwZUZlYXR1cmUoQ0ZNdXRhYmxlQXJyYXlSZWYgZmVhdHVyZXMsIGlu
dCB0eXBlLCBpbnQgc2VsZWN0b3IpCkBAIC00NjEsNyArNDU5LDcgQEAgc3RhdGljIGlubGluZSBm
bG9hdCBkZW5vcm1hbGl6ZVZhcmlhdGlvbgogfQogI2VuZGlmCiAKLSNpZiBFTkFCTEUoVkFSSUFU
SU9OX0ZPTlRTKSB8fCAhSEFTX0NPUkVfVEVYVF9XSURUSF9BVFRSSUJVVEUKKyNpZiBFTkFCTEUo
VkFSSUFUSU9OX0ZPTlRTKSB8fCAhSEFWRShDT1JFX1RFWFRfV0lEVEhfQVRUUklCVVRFKQogc3Rh
dGljIGlubGluZSBmbG9hdCBub3JtYWxpemVWYXJpYXRpb25XaWR0aChmbG9hdCB2YWx1ZSkKIHsK
ICAgICBpZiAodmFsdWUgPD0gMS4yNSkKQEAgLTQ3Miw3ICs0NzAsNyBAQCBzdGF0aWMgaW5saW5l
IGZsb2F0IG5vcm1hbGl6ZVZhcmlhdGlvbldpCiB9CiAjZW5kaWYKIAotI2lmICFIQVNfQ09SRV9U
RVhUX1dJRFRIX0FUVFJJQlVURQorI2lmICFIQVZFKENPUkVfVEVYVF9XSURUSF9BVFRSSUJVVEUp
CiBzdGF0aWMgaW5saW5lIGZsb2F0IG5vcm1hbGl6ZVdpZHRoKGZsb2F0IHZhbHVlKQogewogICAg
IHJldHVybiBub3JtYWxpemVWYXJpYXRpb25XaWR0aCh2YWx1ZSArIDEpOwpAQCAtNzI5LDcgKzcy
Nyw3IEBAIFJlZlB0cjxGb250PiBGb250Q2FjaGU6OnNpbWlsYXJGb250KGNvbnMKICAgICByZXR1
cm4gbnVsbHB0cjsKIH0KIAotI2lmICFIQVNfQ09SRV9URVhUX1dJRFRIX0FUVFJJQlVURQorI2lm
ICFIQVZFKENPUkVfVEVYVF9XSURUSF9BVFRSSUJVVEUpCiBzdGF0aWMgZmxvYXQgc3RyZXRjaEZy
b21Db3JlVGV4dFRyYWl0cyhDRkRpY3Rpb25hcnlSZWYgdHJhaXRzKQogewogICAgIGF1dG8gd2lk
dGhOdW1iZXIgPSBzdGF0aWNfY2FzdDxDRk51bWJlclJlZj4oQ0ZEaWN0aW9uYXJ5R2V0VmFsdWUo
dHJhaXRzLCBrQ1RGb250V2lkdGhUcmFpdCkpOwpAQCAtMTA2NCw3ICsxMDYyLDcgQEAgc3RhdGlj
IFZhcmlhdGlvbkNhcGFiaWxpdGllcyB2YXJpYXRpb25DYQogICAgIH0KIAogICAgIGJvb2wgb3B0
T3V0RnJvbUdYTm9ybWFsaXphdGlvbiA9IGZhbHNlOwotI2lmIChQTEFURk9STShNQUMpIHx8IChQ
TEFURk9STShJT1NfRkFNSUxZKSAmJiBfX0lQSE9ORV9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA+
PSAxMTAwMDApKQorI2lmIEhBVkUoQ1RfRk9OVF9ERVNDUklQVE9SX0lTX1NZU1RFTV9VSV9GT05U
KQogICAgIG9wdE91dEZyb21HWE5vcm1hbGl6YXRpb24gPSBDVEZvbnREZXNjcmlwdG9ySXNTeXN0
ZW1VSUZvbnQoZm9udERlc2NyaXB0b3IpOwogI2VuZGlmCiAKQEAgLTExMTAsNyArMTEwOCw3IEBA
IEZvbnRTZWxlY3Rpb25DYXBhYmlsaXRpZXMgY2FwYWJpbGl0aWVzRm8KIAogICAgIFZhcmlhdGlv
bkNhcGFiaWxpdGllcyB2YXJpYXRpb25DYXBhYmlsaXRpZXMgPSB2YXJpYXRpb25DYXBhYmlsaXRp
ZXNGb3JGb250RGVzY3JpcHRvcihmb250RGVzY3JpcHRvcik7CiAKLSNpZiAhSEFTX0NPUkVfVEVY
VF9XSURUSF9BVFRSSUJVVEUKKyNpZiAhSEFWRShDT1JFX1RFWFRfV0lEVEhfQVRUUklCVVRFKQog
ICAgIGJvb2wgd2VpZ2h0T3JXaWR0aENvbWVGcm9tVHJhaXRzID0gIXZhcmlhdGlvbkNhcGFiaWxp
dGllcy53ZWlnaHQgfHwgIXZhcmlhdGlvbkNhcGFiaWxpdGllcy53aWR0aDsKICNlbHNlCiAgICAg
Ym9vbCB3ZWlnaHRPcldpZHRoQ29tZUZyb21UcmFpdHMgPSBmYWxzZTsKQEAgLTExMTksNyArMTEx
Nyw3IEBAIEZvbnRTZWxlY3Rpb25DYXBhYmlsaXRpZXMgY2FwYWJpbGl0aWVzRm8KICAgICBpZiAo
IXZhcmlhdGlvbkNhcGFiaWxpdGllcy5zbG9wZSB8fCB3ZWlnaHRPcldpZHRoQ29tZUZyb21UcmFp
dHMpIHsKICAgICAgICAgYXV0byB0cmFpdHMgPSBhZG9wdENGKHN0YXRpY19jYXN0PENGRGljdGlv
bmFyeVJlZj4oQ1RGb250RGVzY3JpcHRvckNvcHlBdHRyaWJ1dGUoZm9udERlc2NyaXB0b3IsIGtD
VEZvbnRUcmFpdHNBdHRyaWJ1dGUpKSk7CiAgICAgICAgIGlmICh0cmFpdHMpIHsKLSNpZiAhSEFT
X0NPUkVfVEVYVF9XSURUSF9BVFRSSUJVVEUKKyNpZiAhSEFWRShDT1JFX1RFWFRfV0lEVEhfQVRU
UklCVVRFKQogICAgICAgICAgICAgaWYgKCF2YXJpYXRpb25DYXBhYmlsaXRpZXMud2lkdGgpIHsK
ICAgICAgICAgICAgICAgICBhdXRvIHdpZHRoVmFsdWUgPSBzdHJldGNoRnJvbUNvcmVUZXh0VHJh
aXRzKHRyYWl0cy5nZXQoKSk7CiAgICAgICAgICAgICAgICAgdmFyaWF0aW9uQ2FwYWJpbGl0aWVz
LndpZHRoID0ge3sgd2lkdGhWYWx1ZSwgd2lkdGhWYWx1ZSB9fTsKQEAgLTExNDUsNyArMTE0Myw3
IEBAIEZvbnRTZWxlY3Rpb25DYXBhYmlsaXRpZXMgY2FwYWJpbGl0aWVzRm8KICAgICAgICAgdmFy
aWF0aW9uQ2FwYWJpbGl0aWVzLndlaWdodCA9IHt7IHZhbHVlLCB2YWx1ZSB9fTsKICAgICB9CiAK
LSNpZiBIQVNfQ09SRV9URVhUX1dJRFRIX0FUVFJJQlVURQorI2lmIEhBVkUoQ09SRV9URVhUX1dJ
RFRIX0FUVFJJQlVURSkKICAgICBpZiAoIXZhcmlhdGlvbkNhcGFiaWxpdGllcy53aWR0aCkgewog
ICAgICAgICBhdXRvIHZhbHVlID0gZ2V0Q1NTQXR0cmlidXRlKGZvbnREZXNjcmlwdG9yLCBrQ1RG
b250Q1NTV2lkdGhBdHRyaWJ1dGUsIHN0YXRpY19jYXN0PGZsb2F0Pihub3JtYWxTdHJldGNoVmFs
dWUoKSkpOwogICAgICAgICB2YXJpYXRpb25DYXBhYmlsaXRpZXMud2lkdGggPSB7eyB2YWx1ZSwg
dmFsdWUgfX07CkBAIC0xNjM5LDcgKzE2MzcsNyBAQCBSZWY8Rm9udD4gRm9udENhY2hlOjpsYXN0
UmVzb3J0RmFsbGJhY2tGCiAgICAgICAgIHJldHVybiAqcmVzdWx0OwogCiAgICAgLy8gTGFzdFJl
c29ydCBpcyBndWFyYW50ZWVkIHRvIGJlIG5vbi1udWxsLgotI2lmIChQTEFURk9STShJT1NfRkFN
SUxZKSAmJiBfX0lQSE9ORV9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMTAwMDApIHx8IFBM
QVRGT1JNKE1BQykKKyNpZiBIQVZFKENUX0ZPTlRfREVTQ1JJUFRPUl9DUkVBVEVfTEFTVF9SRVNP
UlQpCiAgICAgYXV0byBmb250RGVzY3JpcHRvciA9IGFkb3B0Q0YoQ1RGb250RGVzY3JpcHRvckNy
ZWF0ZUxhc3RSZXNvcnQoKSk7CiAgICAgYXV0byBmb250ID0gYWRvcHRDRihDVEZvbnRDcmVhdGVX
aXRoRm9udERlc2NyaXB0b3IoZm9udERlc2NyaXB0b3IuZ2V0KCksIGZvbnREZXNjcmlwdGlvbi5j
b21wdXRlZFBpeGVsU2l6ZSgpLCBudWxscHRyKSk7CiAjZWxzZQpJbmRleDogU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udERlc2NyaXB0aW9uQ29jb2EuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnREZXNj
cmlwdGlvbkNvY29hLmNwcAkocmV2aXNpb24gMjU1MjM4KQorKysgU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udERlc2NyaXB0aW9uQ29jb2EuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC04Miw4ICs4MiwxMCBAQCBzdGF0aWMgaW5saW5lIE9wdGlvbmFsPFN5c3RlbUZvbnRL
aW5kPiBtCiAgICAgICAgIGtDVFVJRm9udFRleHRTdHlsZVNob3J0Rm9vdG5vdGUsCiAgICAgICAg
IGtDVFVJRm9udFRleHRTdHlsZVNob3J0Q2FwdGlvbjEsCiAgICAgICAgIGtDVFVJRm9udFRleHRT
dHlsZVRhbGxCb2R5LAotI2lmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEx
MDAwMAorI2lmIEhBVkUoU1lTVEVNX0ZPTlRfU1RZTEVfVElUTEVfMCkKICAgICAgICAga0NUVUlG
b250VGV4dFN0eWxlVGl0bGUwLAorI2VuZGlmCisjaWYgSEFWRShTWVNURU1fRk9OVF9TVFlMRV9U
SVRMRV80KQogICAgICAgICBrQ1RVSUZvbnRUZXh0U3R5bGVUaXRsZTQsCiAjZW5kaWYKICAgICB9
OwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udFBsYXRm
b3JtRGF0YUNvY29hLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NvY29hL0ZvbnRQbGF0Zm9ybURhdGFDb2NvYS5tbQkocmV2aXNpb24gMjU1MjM4KQor
KysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udFBsYXRmb3JtRGF0
YUNvY29hLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xMjQsNyArMTI0LDcgQEAgc3RhdGljIENGRGlj
dGlvbmFyeVJlZiBjYXNjYWRlVG9MYXN0UmVzbwogc3RhdGljIFJldGFpblB0cjxDVEZvbnREZXNj
cmlwdG9yUmVmPiBjYXNjYWRlVG9MYXN0UmVzb3J0QW5kVmFyaWF0aW9uc0ZvbnREZXNjcmlwdG9y
KENURm9udFJlZiBvcmlnaW5hbEZvbnQpCiB7CiAvLyBGSVhNRTogUmVtb3ZlIHRoaXMgd2hlbiA8
cmRhcjovL3Byb2JsZW0vMjg0NDk0NDE+IGlzIGZpeGVkLiBOT1RFOiBUaGF0IHJhZGFyIHdhcyBm
aXhlZCAxMS8xNi8xNiwgc28gdGhpcyBjYW4gYmUgcmVtb3ZlZC4gVEJELgotI2RlZmluZSBXT1JL
QVJPVU5EX0NPUkVURVhUX1ZBUklBVElPTlNfV0lUSF9GQUxMQkFDS19MSVNUX0JVRyAoRU5BQkxF
KFZBUklBVElPTl9GT05UUykgJiYgKFBMQVRGT1JNKElPU19GQU1JTFkpICYmIF9fSVBIT05FX09T
X1ZFUlNJT05fTUlOX1JFUVVJUkVEIDwgMTEwMDAwKSkKKyNkZWZpbmUgV09SS0FST1VORF9DT1JF
VEVYVF9WQVJJQVRJT05TX1dJVEhfRkFMTEJBQ0tfTElTVF9CVUcgKEVOQUJMRShWQVJJQVRJT05f
Rk9OVFMpICYmIChQTEFURk9STShXQVRDSE9TKSB8fCBQTEFURk9STShBUFBMRVRWKSkpCiAKICAg
ICBDRkRpY3Rpb25hcnlSZWYgYXR0cmlidXRlcyA9IGNhc2NhZGVUb0xhc3RSZXNvcnRBdHRyaWJ1
dGVzRGljdGlvbmFyeSgpOwogI2lmIFdPUktBUk9VTkRfQ09SRVRFWFRfVkFSSUFUSU9OU19XSVRI
X0ZBTExCQUNLX0xJU1RfQlVHCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9pb3MvRm9udENhY2hlSU9TLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2lvcy9Gb250Q2FjaGVJT1MubW0JKHJldmlzaW9uIDI1NTIzOCkKKysrIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2lvcy9Gb250Q2FjaGVJT1MubW0JKHdvcmtp
bmcgY29weSkKQEAgLTE1Niw3ICsxNTYsNyBAQCBSZXRhaW5QdHI8Q1RGb250UmVmPiBwbGF0Zm9y
bUZvbnRXaXRoRmFtCiAgICAgfQogCiAgICAgaWYgKGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlD
YXNlKGZhbWlseSwgImxhc3RyZXNvcnQiKSkgewotI2lmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlO
X1JFUVVJUkVEID49IDExMDAwMAorI2lmIEhBVkUoQ1RfRk9OVF9ERVNDUklQVE9SX0NSRUFURV9M
QVNUX1JFU09SVCkKICAgICAgICAgc3RhdGljIGNvbnN0IENURm9udERlc2NyaXB0b3JSZWYgbGFz
dFJlc29ydCA9IENURm9udERlc2NyaXB0b3JDcmVhdGVMYXN0UmVzb3J0KCk7CiAgICAgICAgIHJl
dHVybiBhZG9wdENGKENURm9udENyZWF0ZVdpdGhGb250RGVzY3JpcHRvcihsYXN0UmVzb3J0LCBz
aXplLCBudWxscHRyKSk7CiAjZWxzZQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvbWFjL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmNw
cAkocmV2aXNpb24gMjU1MjM4KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
bWFjL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01Niw3ICs1
Niw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxGb250Q3VzdG9tUGxhdGZvcm1EYXRhPiAKICAgICBSZXRh
aW5QdHI8Q0ZEYXRhUmVmPiBidWZmZXJEYXRhID0gYnVmZmVyLmNyZWF0ZUNGRGF0YSgpOwogCiAg
ICAgUmV0YWluUHRyPENURm9udERlc2NyaXB0b3JSZWY+IGZvbnREZXNjcmlwdG9yOwotI2lmIFBM
QVRGT1JNKE1BQykgfHwgKFBMQVRGT1JNKElPU19GQU1JTFkpICYmIF9fSVBIT05FX09TX1ZFUlNJ
T05fTUlOX1JFUVVJUkVEID49IDExMDAwMCkKKyNpZiAhUExBVEZPUk0oV0FUQ0hPUykgJiYgIVBM
QVRGT1JNKEFQUExFVFYpCiAgICAgYXV0byBhcnJheSA9IGFkb3B0Q0YoQ1RGb250TWFuYWdlckNy
ZWF0ZUZvbnREZXNjcmlwdG9yc0Zyb21EYXRhKGJ1ZmZlckRhdGEuZ2V0KCkpKTsKICAgICBpZiAo
IWFycmF5KQogICAgICAgICByZXR1cm4gbnVsbHB0cjsK
</data>
<flag name="review"
          id="404719"
          type_id="1"
          status="?"
          setter="jbedard"
    />
          </attachment>
      

    </bug>

</bugzilla>