<?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>68734</bug_id>
          
          <creation_ts>2011-09-23 14:51:55 -0700</creation_ts>
          <short_desc>Enable LCD text in Skia on Mac</short_desc>
          <delta_ts>2011-09-29 15:20:12 -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>New Bugs</component>
          <version>528+ (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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Cary Clark">caryclark</reporter>
          <assigned_to name="Cary Clark">caryclark</assigned_to>
          <cc>senorblanco</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>472522</commentid>
    <comment_count>0</comment_count>
    <who name="Cary Clark">caryclark</who>
    <bug_when>2011-09-23 14:51:55 -0700</bug_when>
    <thetext>Enable LCD text in Skia on Mac</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>472532</commentid>
    <comment_count>1</comment_count>
      <attachid>108544</attachid>
    <who name="Cary Clark">caryclark</who>
    <bug_when>2011-09-23 15:00:21 -0700</bug_when>
    <thetext>Created attachment 108544
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>472533</commentid>
    <comment_count>2</comment_count>
      <attachid>108544</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-09-23 15:04:47 -0700</bug_when>
    <thetext>Comment on attachment 108544
Patch

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

&gt; Source/WebCore/ChangeLog:11
&gt; +        Duplicate the logic in FontMac.mm to pass settings

That word makes me sad.  Is there any way to share the logic instead of duplicating?

&gt; Source/WebCore/platform/graphics/skia/FontSkia.cpp:109
&gt; +    case Antialiased: {
&gt; +        shouldSmoothFonts = false;
&gt; +        break;
&gt; +    }

{ }s in a case statement is very strange - I think this would be easier to read if they were omitted

&gt; Source/WebCore/platform/graphics/skia/FontSkia.cpp:123
&gt; +    default: 
&gt; +        ASSERT_NOT_REACHED();

just leave out the &apos;default&apos; case and the compiler will tell us if all cases are listed or not

&gt; Source/WebCore/platform/graphics/skia/FontSkia.cpp:126
&gt; +    if (!shouldUseSmoothing() || PlatformSupport::layoutTestMode())

do you really need to check layoutTestMode() here? I thought we twiddled the shouldSmoothFonts somewhere</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>473053</commentid>
    <comment_count>3</comment_count>
      <attachid>108653</attachid>
    <who name="Cary Clark">caryclark</who>
    <bug_when>2011-09-26 05:00:50 -0700</bug_when>
    <thetext>Created attachment 108653
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>473056</commentid>
    <comment_count>4</comment_count>
      <attachid>108544</attachid>
    <who name="Cary Clark">caryclark</who>
    <bug_when>2011-09-26 05:04:36 -0700</bug_when>
    <thetext>Comment on attachment 108544
Patch

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

&gt;&gt; Source/WebCore/ChangeLog:11
&gt;&gt; +        Duplicate the logic in FontMac.mm to pass settings
&gt; 
&gt; That word makes me sad.  Is there any way to share the logic instead of duplicating?

No. The logic is duplicated, but the code is not. The FontMac.mm code performs additional work that does not make sense to duplicate. Eventually, the Linux and Windows Chromium ports will share this logic -- all Skia ports will use FontSkia for common code.

&gt;&gt; Source/WebCore/platform/graphics/skia/FontSkia.cpp:109
&gt;&gt; +    }
&gt; 
&gt; { }s in a case statement is very strange - I think this would be easier to read if they were omitted

Fixed.

&gt;&gt; Source/WebCore/platform/graphics/skia/FontSkia.cpp:123
&gt;&gt; +        ASSERT_NOT_REACHED();
&gt; 
&gt; just leave out the &apos;default&apos; case and the compiler will tell us if all cases are listed or not

Fixed.

&gt;&gt; Source/WebCore/platform/graphics/skia/FontSkia.cpp:126
&gt;&gt; +    if (!shouldUseSmoothing() || PlatformSupport::layoutTestMode())
&gt; 
&gt; do you really need to check layoutTestMode() here? I thought we twiddled the shouldSmoothFonts somewhere

Yes, it&apos;s required. There is an equivalent check in FontCacheChromiumWin.cpp.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>473060</commentid>
    <comment_count>5</comment_count>
      <attachid>108654</attachid>
    <who name="Cary Clark">caryclark</who>
    <bug_when>2011-09-26 05:14:57 -0700</bug_when>
    <thetext>Created attachment 108654
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>473357</commentid>
    <comment_count>6</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-09-26 13:56:10 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; &gt;&gt; Source/WebCore/platform/graphics/skia/FontSkia.cpp:126
&gt; &gt;&gt; +    if (!shouldUseSmoothing() || PlatformSupport::layoutTestMode())
&gt; &gt; 
&gt; &gt; do you really need to check layoutTestMode() here? I thought we twiddled the shouldSmoothFonts somewhere
&gt; 
&gt; Yes, it&apos;s required. There is an equivalent check in FontCacheChromiumWin.cpp.

But there aren&apos;t any such checks in the old mac codepath, and it seems to work fine.  Why would the skia font code be the only rendering system that needs to check this bit explicitly?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>473366</commentid>
    <comment_count>7</comment_count>
    <who name="Cary Clark">caryclark</who>
    <bug_when>2011-09-26 14:03:24 -0700</bug_when>
    <thetext>Skia sets the font smoothing policy differently from CoreText. This may explain the difference. I have a separate change in for Skia to address this. In the meantime, would you consider approving this as is?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>473369</commentid>
    <comment_count>8</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-09-26 14:06:10 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; Skia sets the font smoothing policy differently from CoreText. This may explain the difference. I have a separate change in for Skia to address this. In the meantime, would you consider approving this as is?

I&apos;m confused about how this addresses my question.  Do we actually know where the difference is?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>473371</commentid>
    <comment_count>9</comment_count>
    <who name="Cary Clark">caryclark</who>
    <bug_when>2011-09-26 14:06:56 -0700</bug_when>
    <thetext>The Skia change is: http://codereview.appspot.com/5131046/ -- but I&apos;d prefer not to make this change dependent on that one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>473633</commentid>
    <comment_count>10</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-09-26 19:11:12 -0700</bug_when>
    <thetext>I can&apos;t tell how that skia patch relates to this.  At a quick glance I&apos;m not sure how the chromium mac DRT port enables grayscale text and my worry is that if we&apos;re missing that configuration path, we might be missing other important text configuration paths that exist.  I&apos;d feel a lot more comfortable with this change if I knew how the old path worked.  Just saying &quot;it is different&quot; doesn&apos;t help me understand how this is the right way to address this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>475516</commentid>
    <comment_count>11</comment_count>
    <who name="Stephen White">senorblanco</who>
    <bug_when>2011-09-29 10:43:44 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; I can&apos;t tell how that skia patch relates to this.  At a quick glance I&apos;m not sure how the chromium mac DRT port enables grayscale text and my worry is that if we&apos;re missing that configuration path, we might be missing other important text configuration paths that exist.  I&apos;d feel a lot more comfortable with this change if I knew how the old path worked.  Just saying &quot;it is different&quot; doesn&apos;t help me understand how this is the right way to address this.

I share James&apos;s concern here.  There&apos;s no call to layoutTestMode() in platform/graphics/mac or /cg, so I&apos;m confused as to where it was being done in the old Chrome/Mac.  The Safari layout test results look like they don&apos;t have LCD AA (although that could be blamed on presbyopia...).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>475518</commentid>
    <comment_count>12</comment_count>
      <attachid>108654</attachid>
    <who name="Stephen White">senorblanco</who>
    <bug_when>2011-09-29 10:44:23 -0700</bug_when>
    <thetext>Comment on attachment 108654
Patch

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

&gt; Source/WebCore/platform/graphics/skia/FontSkia.cpp:116
&gt; +        // For the AutoSmooth case, don&apos;t do anything! Keep the default settings.

Although the comment is the same as FontMac.mm, it looks like the behaviour is slightly different here:  it will set antialiasing and smoothFonts to true in the SkPaint, whereas the FontMac code avoids making a font smoothing call at all (via the changeFontSmoothing bool).  Are we diverging from the old Chrome-Mac behaviour here?

&gt; Source/WebCore/platform/graphics/skia/FontSkia.cpp:121
&gt; +    if (!shouldUseSmoothing() || PlatformSupport::layoutTestMode())
&gt; +        shouldSmoothFonts = false;

It looks like the layoutTestMode() check is already being done on the Windows side in FontCustomPlatformData::fontPlatformData().  Could we now remove it from there, since it&apos;s centralized here?

Also, how was it that Chrome-Linux was doing non-LCD text for layout tests before?  (just want to make sure we&apos;re not changing that either)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>475572</commentid>
    <comment_count>13</comment_count>
      <attachid>108654</attachid>
    <who name="Cary Clark">caryclark</who>
    <bug_when>2011-09-29 12:00:36 -0700</bug_when>
    <thetext>Comment on attachment 108654
Patch

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

&gt;&gt; Source/WebCore/platform/graphics/skia/FontSkia.cpp:116
&gt;&gt; +        // For the AutoSmooth case, don&apos;t do anything! Keep the default settings.
&gt; 
&gt; Although the comment is the same as FontMac.mm, it looks like the behaviour is slightly different here:  it will set antialiasing and smoothFonts to true in the SkPaint, whereas the FontMac code avoids making a font smoothing call at all (via the changeFontSmoothing bool).  Are we diverging from the old Chrome-Mac behaviour here?

This preserves old Chrome-Mac behavior. CoreGraphics, by default, enables antialiasing, and smoothFonts. Skia, by default, has both disabled in a newly-created SkPaint object. I interpreted &apos;AutoSmoothing&apos; to mean &apos;default CoreGraphics behavior&apos; -- I&apos;ll replace the comment with this assumption. I&apos;ve tested this on Apple and non-Apple monitors to make sure we match when smoothing is turned on and when it is not.

&gt;&gt; Source/WebCore/platform/graphics/skia/FontSkia.cpp:121
&gt;&gt; +        shouldSmoothFonts = false;
&gt; 
&gt; It looks like the layoutTestMode() check is already being done on the Windows side in FontCustomPlatformData::fontPlatformData().  Could we now remove it from there, since it&apos;s centralized here?
&gt; 
&gt; Also, how was it that Chrome-Linux was doing non-LCD text for layout tests before?  (just want to make sure we&apos;re not changing that either)

Today, FontSkia is only used by the Mac port. I&apos;ll add a FIXME here that notes that this should be shared, and create a bug to track that.

I don&apos;t know how linux works, but this change doesn&apos;t affect it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>475581</commentid>
    <comment_count>14</comment_count>
    <who name="Cary Clark">caryclark</who>
    <bug_when>2011-09-29 12:06:24 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; (In reply to comment #10)
&gt; &gt; I can&apos;t tell how that skia patch relates to this.  At a quick glance I&apos;m not sure how the chromium mac DRT port enables grayscale text and my worry is that if we&apos;re missing that configuration path, we might be missing other important text configuration paths that exist.  I&apos;d feel a lot more comfortable with this change if I knew how the old path worked.  Just saying &quot;it is different&quot; doesn&apos;t help me understand how this is the right way to address this.
&gt; 
&gt; I share James&apos;s concern here.  There&apos;s no call to layoutTestMode() in platform/graphics/mac or /cg, so I&apos;m confused as to where it was being done in the old Chrome/Mac.  The Safari layout test results look like they don&apos;t have LCD AA (although that could be blamed on presbyopia...).

CoreGraphics assumes that offscreen drawing cannot know the characteristics of the onscreen device, and always draws with font smoothing disabled. Skia assumes that the code author knows what they are doing, and allows font smoothing to be enabled for all devices, both onscreen and offscreen.

To match Apple&apos;s behavior, this change disables font smoothing when creating layout tests. I have a separate change to Skia to disable font smoothing when Apple has chosen not to allow it on a class of monitor (typically non-Apple branded ones).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>475667</commentid>
    <comment_count>15</comment_count>
      <attachid>108654</attachid>
    <who name="Stephen White">senorblanco</who>
    <bug_when>2011-09-29 14:01:06 -0700</bug_when>
    <thetext>Comment on attachment 108654
Patch

Thanks for the explanations.  It&apos;s all clear now.  :)  r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>475717</commentid>
    <comment_count>16</comment_count>
      <attachid>108654</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-09-29 15:20:07 -0700</bug_when>
    <thetext>Comment on attachment 108654
Patch

Clearing flags on attachment: 108654

Committed r96366: &lt;http://trac.webkit.org/changeset/96366&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>475718</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-09-29 15:20:12 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>108544</attachid>
            <date>2011-09-23 15:00:21 -0700</date>
            <delta_ts>2011-09-26 05:04:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-68734-20110923180020.patch</filename>
            <type>text/plain</type>
            <size>4555</size>
            <attacher name="Cary Clark">caryclark</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDk1ODYzKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTEtMDktMjMgIENhcnkgQ2xh
cmsgIDxjYXJ5Y2xhcmtAZ29vZ2xlLmNvbT4KKworICAgICAgICBFbmFibGUgTENEIHRleHQgaW4g
U2tpYSBvbiBNYWMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTY4NzM0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgTm8gbmV3IHRlc3RzLiBFeGlzdGluZyBsYXlvdXQgdGVzdHMgYXJlIGdlbmVyYXRlZAorICAg
ICAgICB3aXRoIExDRCB0ZXh0IGRpc2FibGVkIGZvciBwaXhlbCBjb21wYXJpc29ucy4KKworICAg
ICAgICBEdXBsaWNhdGUgdGhlIGxvZ2ljIGluIEZvbnRNYWMubW0gdG8gcGFzcyBzZXR0aW5ncwor
ICAgICAgICBmb3IgYW50aWFsaWFzaW5nIGFuZCBzbW9vdGhpbmcuIEFsc28gZGlzYWJsZSBzbW9v
dGhpbmcKKyAgICAgICAgZm9yIER1bXBSZW5kZXJUcmVlLgorIAorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL3NraWEvRm9udFNraWEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c2V0dXBQYWlu
dCk6CisgICAgICAgIChXZWJDb3JlOjpGb250OjpkcmF3R2x5cGhzKToKKwogMjAxMS0wOS0yMyAg
SmFtZXMgUm9iaW5zb24gIDxqYW1lc3JAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEF2b2lkIHVw
ZGF0aW5nIGNvbXBvc2l0aW5nIHN0YXRlIGR1cmluZyBwYWludApJbmRleDogU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9Gb250U2tpYS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9Gb250U2tpYS5jcHAJKHJldmlzaW9u
IDk1ODU2KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9Gb250U2tp
YS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJHbHlwaEJ1
ZmZlci5oIgogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgogI2luY2x1ZGUgIlBsYXRmb3Jt
Q29udGV4dFNraWEuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVN1cHBvcnQuaCIKICNpbmNsdWRlICJT
aW1wbGVGb250RGF0YS5oIgogCiAjaW5jbHVkZSAiU2tDYW52YXMuaCIKQEAgLTczLDEyICs3NCwx
MiBAQCBzdGF0aWMgdm9pZCBhZGp1c3RUZXh0UmVuZGVyTW9kZShTa1BhaW50CiAgICAgICAgIHBh
aW50LT5zZXRMQ0RSZW5kZXJUZXh0KGZhbHNlKTsKIH0KIAotc3RhdGljIHZvaWQgc2V0dXBQYWlu
dChTa1BhaW50KiBwYWludCwgY29uc3QgU2ltcGxlRm9udERhdGEqIGZvbnREYXRhLCBjb25zdCBG
b250KiBmb250KQorc3RhdGljIHZvaWQgc2V0dXBQYWludChTa1BhaW50KiBwYWludCwgY29uc3Qg
U2ltcGxlRm9udERhdGEqIGZvbnREYXRhLCBjb25zdCBGb250KiBmb250LCBib29sIHNob3VsZEFu
dGlhbGlhcywgYm9vbCBzaG91bGRTbW9vdGhGb250cykKIHsKICAgICBjb25zdCBGb250UGxhdGZv
cm1EYXRhJiBwbGF0Zm9ybURhdGEgPSBmb250RGF0YS0+cGxhdGZvcm1EYXRhKCk7CiAgICAgY29u
c3QgZmxvYXQgdGV4dFNpemUgPSBwbGF0Zm9ybURhdGEubV9zaXplID49IDAgPyBwbGF0Zm9ybURh
dGEubV9zaXplIDogMTI7CiAKLSAgICBwYWludC0+c2V0QW50aUFsaWFzKHRydWUpOworICAgIHBh
aW50LT5zZXRBbnRpQWxpYXMoc2hvdWxkQW50aWFsaWFzKTsKICAgICBwYWludC0+c2V0RW1iZWRk
ZWRCaXRtYXBUZXh0KGZhbHNlKTsKICAgICBwYWludC0+c2V0VGV4dFNpemUoU2tGbG9hdFRvU2Nh
bGFyKHRleHRTaXplKSk7CiAgICAgU2tUeXBlZmFjZSogdHlwZWZhY2UgPSBTa0NyZWF0ZVR5cGVm
YWNlRnJvbUNURm9udChwbGF0Zm9ybURhdGEuY3RGb250KCkpOwpAQCAtODcsNyArODgsNyBAQCBz
dGF0aWMgdm9pZCBzZXR1cFBhaW50KFNrUGFpbnQqIHBhaW50LCBjCiAgICAgcGFpbnQtPnNldEZh
a2VCb2xkVGV4dChwbGF0Zm9ybURhdGEubV9zeW50aGV0aWNCb2xkKTsKICAgICBwYWludC0+c2V0
VGV4dFNrZXdYKHBsYXRmb3JtRGF0YS5tX3N5bnRoZXRpY09ibGlxdWUgPyAtU0tfU2NhbGFyMSAv
IDQgOiAwKTsKICAgICBwYWludC0+c2V0QXV0b2hpbnRlZChmYWxzZSk7IC8vIGZyZWV0eXBlIHNw
ZWNpZmljCi0gICAgcGFpbnQtPnNldExDRFJlbmRlclRleHQoZm9udC0+Zm9udERlc2NyaXB0aW9u
KCkuZm9udFNtb290aGluZygpID09IFN1YnBpeGVsQW50aWFsaWFzZWQpOworICAgIHBhaW50LT5z
ZXRMQ0RSZW5kZXJUZXh0KHNob3VsZFNtb290aEZvbnRzKTsKIH0KIAogLy8gVE9ETzogVGhpcyBu
ZWVkcyB0byBiZSBzcGxpdCBpbnRvIGhlbHBlciBmdW5jdGlvbnMgdG8gYmV0dGVyIHNjb3BlIHRo
ZQpAQCAtOTgsNiArOTksMzMgQEAgdm9pZCBGb250OjpkcmF3R2x5cGhzKEdyYXBoaWNzQ29udGV4
dCogZwogICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEZsb2F0UG9pbnQmIHBvaW50KSBjb25z
dCB7CiAgICAgQ09NUElMRV9BU1NFUlQoc2l6ZW9mKEdseXBoQnVmZmVyR2x5cGgpID09IHNpemVv
Zih1aW50MTZfdCksIEdseXBoQnVmZmVyR2x5cGhTaXplX2VxdWFsc191aW50MTZfdCk7CiAKKyAg
ICBib29sIHNob3VsZFNtb290aEZvbnRzID0gdHJ1ZTsKKyAgICBib29sIHNob3VsZEFudGlhbGlh
cyA9IHRydWU7CisgICAgCisgICAgc3dpdGNoIChmb250RGVzY3JpcHRpb24oKS5mb250U21vb3Ro
aW5nKCkpIHsKKyAgICBjYXNlIEFudGlhbGlhc2VkOiB7CisgICAgICAgIHNob3VsZFNtb290aEZv
bnRzID0gZmFsc2U7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBjYXNlIFN1YnBpeGVsQW50
aWFsaWFzZWQ6IHsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIGNhc2UgTm9TbW9vdGhpbmc6
IHsKKyAgICAgICAgc2hvdWxkQW50aWFsaWFzID0gZmFsc2U7CisgICAgICAgIHNob3VsZFNtb290
aEZvbnRzID0gZmFsc2U7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBjYXNlIEF1dG9TbW9v
dGhpbmc6IHsKKyAgICAgICAgLy8gRm9yIHRoZSBBdXRvU21vb3RoIGNhc2UsIGRvbid0IGRvIGFu
eXRoaW5nISBLZWVwIHRoZSBkZWZhdWx0IHNldHRpbmdzLgorICAgICAgICBicmVhazsgCisgICAg
fQorICAgIGRlZmF1bHQ6IAorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9Cisg
ICAgCisgICAgaWYgKCFzaG91bGRVc2VTbW9vdGhpbmcoKSB8fCBQbGF0Zm9ybVN1cHBvcnQ6Omxh
eW91dFRlc3RNb2RlKCkpCisgICAgICAgIHNob3VsZFNtb290aEZvbnRzID0gZmFsc2U7CisKICAg
ICBjb25zdCBHbHlwaEJ1ZmZlckdseXBoKiBnbHlwaHMgPSBnbHlwaEJ1ZmZlci5nbHlwaHMoZnJv
bSk7CiAgICAgU2tTY2FsYXIgeCA9IFNrRmxvYXRUb1NjYWxhcihwb2ludC54KCkpOwogICAgIFNr
U2NhbGFyIHkgPSBTa0Zsb2F0VG9TY2FsYXIocG9pbnQueSgpKTsKQEAgLTEzMyw3ICsxNjEsNyBA
QCB2b2lkIEZvbnQ6OmRyYXdHbHlwaHMoR3JhcGhpY3NDb250ZXh0KiBnCiAgICAgaWYgKHRleHRN
b2RlICYgVGV4dE1vZGVGaWxsKSB7CiAgICAgICAgIFNrUGFpbnQgcGFpbnQ7CiAgICAgICAgIGdj
LT5wbGF0Zm9ybUNvbnRleHQoKS0+c2V0dXBQYWludEZvckZpbGxpbmcoJnBhaW50KTsKLSAgICAg
ICAgc2V0dXBQYWludCgmcGFpbnQsIGZvbnQsIHRoaXMpOworICAgICAgICBzZXR1cFBhaW50KCZw
YWludCwgZm9udCwgdGhpcywgc2hvdWxkQW50aWFsaWFzLCBzaG91bGRTbW9vdGhGb250cyk7CiAg
ICAgICAgIGFkanVzdFRleHRSZW5kZXJNb2RlKCZwYWludCwgZ2MtPnBsYXRmb3JtQ29udGV4dCgp
KTsKICAgICAgICAgcGFpbnQuc2V0VGV4dEVuY29kaW5nKFNrUGFpbnQ6OmtHbHlwaElEX1RleHRF
bmNvZGluZyk7CiAgICAgICAgIHBhaW50LnNldENvbG9yKGdjLT5maWxsQ29sb3IoKS5yZ2IoKSk7
CkBAIC0xNTYsNyArMTg0LDcgQEAgdm9pZCBGb250OjpkcmF3R2x5cGhzKEdyYXBoaWNzQ29udGV4
dCogZwogCiAgICAgICAgIFNrUGFpbnQgcGFpbnQ7CiAgICAgICAgIGdjLT5wbGF0Zm9ybUNvbnRl
eHQoKS0+c2V0dXBQYWludEZvclN0cm9raW5nKCZwYWludCwgMCwgMCk7Ci0gICAgICAgIHNldHVw
UGFpbnQoJnBhaW50LCBmb250LCB0aGlzKTsKKyAgICAgICAgc2V0dXBQYWludCgmcGFpbnQsIGZv
bnQsIHRoaXMsIHNob3VsZEFudGlhbGlhcywgc2hvdWxkU21vb3RoRm9udHMpOwogICAgICAgICBh
ZGp1c3RUZXh0UmVuZGVyTW9kZSgmcGFpbnQsIGdjLT5wbGF0Zm9ybUNvbnRleHQoKSk7CiAgICAg
ICAgIHBhaW50LnNldFRleHRFbmNvZGluZyhTa1BhaW50OjprR2x5cGhJRF9UZXh0RW5jb2Rpbmcp
OwogICAgICAgICBwYWludC5zZXRDb2xvcihnYy0+c3Ryb2tlQ29sb3IoKS5yZ2IoKSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>108653</attachid>
            <date>2011-09-26 05:00:50 -0700</date>
            <delta_ts>2011-09-26 05:14:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-68734-20110926080048.patch</filename>
            <type>text/plain</type>
            <size>4555</size>
            <attacher name="Cary Clark">caryclark</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDk1ODYzKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTEtMDktMjMgIENhcnkgQ2xh
cmsgIDxjYXJ5Y2xhcmtAZ29vZ2xlLmNvbT4KKworICAgICAgICBFbmFibGUgTENEIHRleHQgaW4g
U2tpYSBvbiBNYWMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTY4NzM0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgTm8gbmV3IHRlc3RzLiBFeGlzdGluZyBsYXlvdXQgdGVzdHMgYXJlIGdlbmVyYXRlZAorICAg
ICAgICB3aXRoIExDRCB0ZXh0IGRpc2FibGVkIGZvciBwaXhlbCBjb21wYXJpc29ucy4KKworICAg
ICAgICBEdXBsaWNhdGUgdGhlIGxvZ2ljIGluIEZvbnRNYWMubW0gdG8gcGFzcyBzZXR0aW5ncwor
ICAgICAgICBmb3IgYW50aWFsaWFzaW5nIGFuZCBzbW9vdGhpbmcuIEFsc28gZGlzYWJsZSBzbW9v
dGhpbmcKKyAgICAgICAgZm9yIER1bXBSZW5kZXJUcmVlLgorIAorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL3NraWEvRm9udFNraWEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c2V0dXBQYWlu
dCk6CisgICAgICAgIChXZWJDb3JlOjpGb250OjpkcmF3R2x5cGhzKToKKwogMjAxMS0wOS0yMyAg
SmFtZXMgUm9iaW5zb24gIDxqYW1lc3JAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEF2b2lkIHVw
ZGF0aW5nIGNvbXBvc2l0aW5nIHN0YXRlIGR1cmluZyBwYWludApJbmRleDogU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9Gb250U2tpYS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9Gb250U2tpYS5jcHAJKHJldmlzaW9u
IDk1ODU2KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9Gb250U2tp
YS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJHbHlwaEJ1
ZmZlci5oIgogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgogI2luY2x1ZGUgIlBsYXRmb3Jt
Q29udGV4dFNraWEuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVN1cHBvcnQuaCIKICNpbmNsdWRlICJT
aW1wbGVGb250RGF0YS5oIgogCiAjaW5jbHVkZSAiU2tDYW52YXMuaCIKQEAgLTczLDEyICs3NCwx
MiBAQCBzdGF0aWMgdm9pZCBhZGp1c3RUZXh0UmVuZGVyTW9kZShTa1BhaW50CiAgICAgICAgIHBh
aW50LT5zZXRMQ0RSZW5kZXJUZXh0KGZhbHNlKTsKIH0KIAotc3RhdGljIHZvaWQgc2V0dXBQYWlu
dChTa1BhaW50KiBwYWludCwgY29uc3QgU2ltcGxlRm9udERhdGEqIGZvbnREYXRhLCBjb25zdCBG
b250KiBmb250KQorc3RhdGljIHZvaWQgc2V0dXBQYWludChTa1BhaW50KiBwYWludCwgY29uc3Qg
U2ltcGxlRm9udERhdGEqIGZvbnREYXRhLCBjb25zdCBGb250KiBmb250LCBib29sIHNob3VsZEFu
dGlhbGlhcywgYm9vbCBzaG91bGRTbW9vdGhGb250cykKIHsKICAgICBjb25zdCBGb250UGxhdGZv
cm1EYXRhJiBwbGF0Zm9ybURhdGEgPSBmb250RGF0YS0+cGxhdGZvcm1EYXRhKCk7CiAgICAgY29u
c3QgZmxvYXQgdGV4dFNpemUgPSBwbGF0Zm9ybURhdGEubV9zaXplID49IDAgPyBwbGF0Zm9ybURh
dGEubV9zaXplIDogMTI7CiAKLSAgICBwYWludC0+c2V0QW50aUFsaWFzKHRydWUpOworICAgIHBh
aW50LT5zZXRBbnRpQWxpYXMoc2hvdWxkQW50aWFsaWFzKTsKICAgICBwYWludC0+c2V0RW1iZWRk
ZWRCaXRtYXBUZXh0KGZhbHNlKTsKICAgICBwYWludC0+c2V0VGV4dFNpemUoU2tGbG9hdFRvU2Nh
bGFyKHRleHRTaXplKSk7CiAgICAgU2tUeXBlZmFjZSogdHlwZWZhY2UgPSBTa0NyZWF0ZVR5cGVm
YWNlRnJvbUNURm9udChwbGF0Zm9ybURhdGEuY3RGb250KCkpOwpAQCAtODcsNyArODgsNyBAQCBz
dGF0aWMgdm9pZCBzZXR1cFBhaW50KFNrUGFpbnQqIHBhaW50LCBjCiAgICAgcGFpbnQtPnNldEZh
a2VCb2xkVGV4dChwbGF0Zm9ybURhdGEubV9zeW50aGV0aWNCb2xkKTsKICAgICBwYWludC0+c2V0
VGV4dFNrZXdYKHBsYXRmb3JtRGF0YS5tX3N5bnRoZXRpY09ibGlxdWUgPyAtU0tfU2NhbGFyMSAv
IDQgOiAwKTsKICAgICBwYWludC0+c2V0QXV0b2hpbnRlZChmYWxzZSk7IC8vIGZyZWV0eXBlIHNw
ZWNpZmljCi0gICAgcGFpbnQtPnNldExDRFJlbmRlclRleHQoZm9udC0+Zm9udERlc2NyaXB0aW9u
KCkuZm9udFNtb290aGluZygpID09IFN1YnBpeGVsQW50aWFsaWFzZWQpOworICAgIHBhaW50LT5z
ZXRMQ0RSZW5kZXJUZXh0KHNob3VsZFNtb290aEZvbnRzKTsKIH0KIAogLy8gVE9ETzogVGhpcyBu
ZWVkcyB0byBiZSBzcGxpdCBpbnRvIGhlbHBlciBmdW5jdGlvbnMgdG8gYmV0dGVyIHNjb3BlIHRo
ZQpAQCAtOTgsNiArOTksMzMgQEAgdm9pZCBGb250OjpkcmF3R2x5cGhzKEdyYXBoaWNzQ29udGV4
dCogZwogICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEZsb2F0UG9pbnQmIHBvaW50KSBjb25z
dCB7CiAgICAgQ09NUElMRV9BU1NFUlQoc2l6ZW9mKEdseXBoQnVmZmVyR2x5cGgpID09IHNpemVv
Zih1aW50MTZfdCksIEdseXBoQnVmZmVyR2x5cGhTaXplX2VxdWFsc191aW50MTZfdCk7CiAKKyAg
ICBib29sIHNob3VsZFNtb290aEZvbnRzID0gdHJ1ZTsKKyAgICBib29sIHNob3VsZEFudGlhbGlh
cyA9IHRydWU7CisgICAgCisgICAgc3dpdGNoIChmb250RGVzY3JpcHRpb24oKS5mb250U21vb3Ro
aW5nKCkpIHsKKyAgICBjYXNlIEFudGlhbGlhc2VkOiB7CisgICAgICAgIHNob3VsZFNtb290aEZv
bnRzID0gZmFsc2U7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBjYXNlIFN1YnBpeGVsQW50
aWFsaWFzZWQ6IHsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIGNhc2UgTm9TbW9vdGhpbmc6
IHsKKyAgICAgICAgc2hvdWxkQW50aWFsaWFzID0gZmFsc2U7CisgICAgICAgIHNob3VsZFNtb290
aEZvbnRzID0gZmFsc2U7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBjYXNlIEF1dG9TbW9v
dGhpbmc6IHsKKyAgICAgICAgLy8gRm9yIHRoZSBBdXRvU21vb3RoIGNhc2UsIGRvbid0IGRvIGFu
eXRoaW5nISBLZWVwIHRoZSBkZWZhdWx0IHNldHRpbmdzLgorICAgICAgICBicmVhazsgCisgICAg
fQorICAgIGRlZmF1bHQ6IAorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9Cisg
ICAgCisgICAgaWYgKCFzaG91bGRVc2VTbW9vdGhpbmcoKSB8fCBQbGF0Zm9ybVN1cHBvcnQ6Omxh
eW91dFRlc3RNb2RlKCkpCisgICAgICAgIHNob3VsZFNtb290aEZvbnRzID0gZmFsc2U7CisKICAg
ICBjb25zdCBHbHlwaEJ1ZmZlckdseXBoKiBnbHlwaHMgPSBnbHlwaEJ1ZmZlci5nbHlwaHMoZnJv
bSk7CiAgICAgU2tTY2FsYXIgeCA9IFNrRmxvYXRUb1NjYWxhcihwb2ludC54KCkpOwogICAgIFNr
U2NhbGFyIHkgPSBTa0Zsb2F0VG9TY2FsYXIocG9pbnQueSgpKTsKQEAgLTEzMyw3ICsxNjEsNyBA
QCB2b2lkIEZvbnQ6OmRyYXdHbHlwaHMoR3JhcGhpY3NDb250ZXh0KiBnCiAgICAgaWYgKHRleHRN
b2RlICYgVGV4dE1vZGVGaWxsKSB7CiAgICAgICAgIFNrUGFpbnQgcGFpbnQ7CiAgICAgICAgIGdj
LT5wbGF0Zm9ybUNvbnRleHQoKS0+c2V0dXBQYWludEZvckZpbGxpbmcoJnBhaW50KTsKLSAgICAg
ICAgc2V0dXBQYWludCgmcGFpbnQsIGZvbnQsIHRoaXMpOworICAgICAgICBzZXR1cFBhaW50KCZw
YWludCwgZm9udCwgdGhpcywgc2hvdWxkQW50aWFsaWFzLCBzaG91bGRTbW9vdGhGb250cyk7CiAg
ICAgICAgIGFkanVzdFRleHRSZW5kZXJNb2RlKCZwYWludCwgZ2MtPnBsYXRmb3JtQ29udGV4dCgp
KTsKICAgICAgICAgcGFpbnQuc2V0VGV4dEVuY29kaW5nKFNrUGFpbnQ6OmtHbHlwaElEX1RleHRF
bmNvZGluZyk7CiAgICAgICAgIHBhaW50LnNldENvbG9yKGdjLT5maWxsQ29sb3IoKS5yZ2IoKSk7
CkBAIC0xNTYsNyArMTg0LDcgQEAgdm9pZCBGb250OjpkcmF3R2x5cGhzKEdyYXBoaWNzQ29udGV4
dCogZwogCiAgICAgICAgIFNrUGFpbnQgcGFpbnQ7CiAgICAgICAgIGdjLT5wbGF0Zm9ybUNvbnRl
eHQoKS0+c2V0dXBQYWludEZvclN0cm9raW5nKCZwYWludCwgMCwgMCk7Ci0gICAgICAgIHNldHVw
UGFpbnQoJnBhaW50LCBmb250LCB0aGlzKTsKKyAgICAgICAgc2V0dXBQYWludCgmcGFpbnQsIGZv
bnQsIHRoaXMsIHNob3VsZEFudGlhbGlhcywgc2hvdWxkU21vb3RoRm9udHMpOwogICAgICAgICBh
ZGp1c3RUZXh0UmVuZGVyTW9kZSgmcGFpbnQsIGdjLT5wbGF0Zm9ybUNvbnRleHQoKSk7CiAgICAg
ICAgIHBhaW50LnNldFRleHRFbmNvZGluZyhTa1BhaW50OjprR2x5cGhJRF9UZXh0RW5jb2Rpbmcp
OwogICAgICAgICBwYWludC5zZXRDb2xvcihnYy0+c3Ryb2tlQ29sb3IoKS5yZ2IoKSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>108654</attachid>
            <date>2011-09-26 05:14:57 -0700</date>
            <delta_ts>2011-09-29 15:20:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-68734-20110926081455.patch</filename>
            <type>text/plain</type>
            <size>4473</size>
            <attacher name="Cary Clark">caryclark</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDk1ODYzKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTEtMDktMjMgIENhcnkgQ2xh
cmsgIDxjYXJ5Y2xhcmtAZ29vZ2xlLmNvbT4KKworICAgICAgICBFbmFibGUgTENEIHRleHQgaW4g
U2tpYSBvbiBNYWMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTY4NzM0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgTm8gbmV3IHRlc3RzLiBFeGlzdGluZyBsYXlvdXQgdGVzdHMgYXJlIGdlbmVyYXRlZAorICAg
ICAgICB3aXRoIExDRCB0ZXh0IGRpc2FibGVkIGZvciBwaXhlbCBjb21wYXJpc29ucy4KKworICAg
ICAgICBEdXBsaWNhdGUgdGhlIGxvZ2ljIGluIEZvbnRNYWMubW0gdG8gcGFzcyBzZXR0aW5ncwor
ICAgICAgICBmb3IgYW50aWFsaWFzaW5nIGFuZCBzbW9vdGhpbmcuIEFsc28gZGlzYWJsZSBzbW9v
dGhpbmcKKyAgICAgICAgZm9yIER1bXBSZW5kZXJUcmVlLgorIAorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL3NraWEvRm9udFNraWEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c2V0dXBQYWlu
dCk6CisgICAgICAgIChXZWJDb3JlOjpGb250OjpkcmF3R2x5cGhzKToKKwogMjAxMS0wOS0yMyAg
SmFtZXMgUm9iaW5zb24gIDxqYW1lc3JAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEF2b2lkIHVw
ZGF0aW5nIGNvbXBvc2l0aW5nIHN0YXRlIGR1cmluZyBwYWludApJbmRleDogU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9Gb250U2tpYS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9Gb250U2tpYS5jcHAJKHJldmlzaW9u
IDk1ODU2KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9Gb250U2tp
YS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJHbHlwaEJ1
ZmZlci5oIgogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgogI2luY2x1ZGUgIlBsYXRmb3Jt
Q29udGV4dFNraWEuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVN1cHBvcnQuaCIKICNpbmNsdWRlICJT
aW1wbGVGb250RGF0YS5oIgogCiAjaW5jbHVkZSAiU2tDYW52YXMuaCIKQEAgLTczLDEyICs3NCwx
MiBAQCBzdGF0aWMgdm9pZCBhZGp1c3RUZXh0UmVuZGVyTW9kZShTa1BhaW50CiAgICAgICAgIHBh
aW50LT5zZXRMQ0RSZW5kZXJUZXh0KGZhbHNlKTsKIH0KIAotc3RhdGljIHZvaWQgc2V0dXBQYWlu
dChTa1BhaW50KiBwYWludCwgY29uc3QgU2ltcGxlRm9udERhdGEqIGZvbnREYXRhLCBjb25zdCBG
b250KiBmb250KQorc3RhdGljIHZvaWQgc2V0dXBQYWludChTa1BhaW50KiBwYWludCwgY29uc3Qg
U2ltcGxlRm9udERhdGEqIGZvbnREYXRhLCBjb25zdCBGb250KiBmb250LCBib29sIHNob3VsZEFu
dGlhbGlhcywgYm9vbCBzaG91bGRTbW9vdGhGb250cykKIHsKICAgICBjb25zdCBGb250UGxhdGZv
cm1EYXRhJiBwbGF0Zm9ybURhdGEgPSBmb250RGF0YS0+cGxhdGZvcm1EYXRhKCk7CiAgICAgY29u
c3QgZmxvYXQgdGV4dFNpemUgPSBwbGF0Zm9ybURhdGEubV9zaXplID49IDAgPyBwbGF0Zm9ybURh
dGEubV9zaXplIDogMTI7CiAKLSAgICBwYWludC0+c2V0QW50aUFsaWFzKHRydWUpOworICAgIHBh
aW50LT5zZXRBbnRpQWxpYXMoc2hvdWxkQW50aWFsaWFzKTsKICAgICBwYWludC0+c2V0RW1iZWRk
ZWRCaXRtYXBUZXh0KGZhbHNlKTsKICAgICBwYWludC0+c2V0VGV4dFNpemUoU2tGbG9hdFRvU2Nh
bGFyKHRleHRTaXplKSk7CiAgICAgU2tUeXBlZmFjZSogdHlwZWZhY2UgPSBTa0NyZWF0ZVR5cGVm
YWNlRnJvbUNURm9udChwbGF0Zm9ybURhdGEuY3RGb250KCkpOwpAQCAtODcsNyArODgsNyBAQCBz
dGF0aWMgdm9pZCBzZXR1cFBhaW50KFNrUGFpbnQqIHBhaW50LCBjCiAgICAgcGFpbnQtPnNldEZh
a2VCb2xkVGV4dChwbGF0Zm9ybURhdGEubV9zeW50aGV0aWNCb2xkKTsKICAgICBwYWludC0+c2V0
VGV4dFNrZXdYKHBsYXRmb3JtRGF0YS5tX3N5bnRoZXRpY09ibGlxdWUgPyAtU0tfU2NhbGFyMSAv
IDQgOiAwKTsKICAgICBwYWludC0+c2V0QXV0b2hpbnRlZChmYWxzZSk7IC8vIGZyZWV0eXBlIHNw
ZWNpZmljCi0gICAgcGFpbnQtPnNldExDRFJlbmRlclRleHQoZm9udC0+Zm9udERlc2NyaXB0aW9u
KCkuZm9udFNtb290aGluZygpID09IFN1YnBpeGVsQW50aWFsaWFzZWQpOworICAgIHBhaW50LT5z
ZXRMQ0RSZW5kZXJUZXh0KHNob3VsZFNtb290aEZvbnRzKTsKIH0KIAogLy8gVE9ETzogVGhpcyBu
ZWVkcyB0byBiZSBzcGxpdCBpbnRvIGhlbHBlciBmdW5jdGlvbnMgdG8gYmV0dGVyIHNjb3BlIHRo
ZQpAQCAtOTgsNiArOTksMjcgQEAgdm9pZCBGb250OjpkcmF3R2x5cGhzKEdyYXBoaWNzQ29udGV4
dCogZwogICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEZsb2F0UG9pbnQmIHBvaW50KSBjb25z
dCB7CiAgICAgQ09NUElMRV9BU1NFUlQoc2l6ZW9mKEdseXBoQnVmZmVyR2x5cGgpID09IHNpemVv
Zih1aW50MTZfdCksIEdseXBoQnVmZmVyR2x5cGhTaXplX2VxdWFsc191aW50MTZfdCk7CiAKKyAg
ICBib29sIHNob3VsZFNtb290aEZvbnRzID0gdHJ1ZTsKKyAgICBib29sIHNob3VsZEFudGlhbGlh
cyA9IHRydWU7CisgICAgCisgICAgc3dpdGNoIChmb250RGVzY3JpcHRpb24oKS5mb250U21vb3Ro
aW5nKCkpIHsKKyAgICBjYXNlIEFudGlhbGlhc2VkOgorICAgICAgICBzaG91bGRTbW9vdGhGb250
cyA9IGZhbHNlOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFN1YnBpeGVsQW50aWFsaWFzZWQ6
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTm9TbW9vdGhpbmc6CisgICAgICAgIHNob3VsZEFu
dGlhbGlhcyA9IGZhbHNlOworICAgICAgICBzaG91bGRTbW9vdGhGb250cyA9IGZhbHNlOworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIEF1dG9TbW9vdGhpbmc6CisgICAgICAgIC8vIEZvciB0aGUg
QXV0b1Ntb290aCBjYXNlLCBkb24ndCBkbyBhbnl0aGluZyEgS2VlcCB0aGUgZGVmYXVsdCBzZXR0
aW5ncy4KKyAgICAgICAgYnJlYWs7IAorICAgIH0KKyAgICAKKyAgICBpZiAoIXNob3VsZFVzZVNt
b290aGluZygpIHx8IFBsYXRmb3JtU3VwcG9ydDo6bGF5b3V0VGVzdE1vZGUoKSkKKyAgICAgICAg
c2hvdWxkU21vb3RoRm9udHMgPSBmYWxzZTsKKwogICAgIGNvbnN0IEdseXBoQnVmZmVyR2x5cGgq
IGdseXBocyA9IGdseXBoQnVmZmVyLmdseXBocyhmcm9tKTsKICAgICBTa1NjYWxhciB4ID0gU2tG
bG9hdFRvU2NhbGFyKHBvaW50LngoKSk7CiAgICAgU2tTY2FsYXIgeSA9IFNrRmxvYXRUb1NjYWxh
cihwb2ludC55KCkpOwpAQCAtMTMzLDcgKzE1NSw3IEBAIHZvaWQgRm9udDo6ZHJhd0dseXBocyhH
cmFwaGljc0NvbnRleHQqIGcKICAgICBpZiAodGV4dE1vZGUgJiBUZXh0TW9kZUZpbGwpIHsKICAg
ICAgICAgU2tQYWludCBwYWludDsKICAgICAgICAgZ2MtPnBsYXRmb3JtQ29udGV4dCgpLT5zZXR1
cFBhaW50Rm9yRmlsbGluZygmcGFpbnQpOwotICAgICAgICBzZXR1cFBhaW50KCZwYWludCwgZm9u
dCwgdGhpcyk7CisgICAgICAgIHNldHVwUGFpbnQoJnBhaW50LCBmb250LCB0aGlzLCBzaG91bGRB
bnRpYWxpYXMsIHNob3VsZFNtb290aEZvbnRzKTsKICAgICAgICAgYWRqdXN0VGV4dFJlbmRlck1v
ZGUoJnBhaW50LCBnYy0+cGxhdGZvcm1Db250ZXh0KCkpOwogICAgICAgICBwYWludC5zZXRUZXh0
RW5jb2RpbmcoU2tQYWludDo6a0dseXBoSURfVGV4dEVuY29kaW5nKTsKICAgICAgICAgcGFpbnQu
c2V0Q29sb3IoZ2MtPmZpbGxDb2xvcigpLnJnYigpKTsKQEAgLTE1Niw3ICsxNzgsNyBAQCB2b2lk
IEZvbnQ6OmRyYXdHbHlwaHMoR3JhcGhpY3NDb250ZXh0KiBnCiAKICAgICAgICAgU2tQYWludCBw
YWludDsKICAgICAgICAgZ2MtPnBsYXRmb3JtQ29udGV4dCgpLT5zZXR1cFBhaW50Rm9yU3Ryb2tp
bmcoJnBhaW50LCAwLCAwKTsKLSAgICAgICAgc2V0dXBQYWludCgmcGFpbnQsIGZvbnQsIHRoaXMp
OworICAgICAgICBzZXR1cFBhaW50KCZwYWludCwgZm9udCwgdGhpcywgc2hvdWxkQW50aWFsaWFz
LCBzaG91bGRTbW9vdGhGb250cyk7CiAgICAgICAgIGFkanVzdFRleHRSZW5kZXJNb2RlKCZwYWlu
dCwgZ2MtPnBsYXRmb3JtQ29udGV4dCgpKTsKICAgICAgICAgcGFpbnQuc2V0VGV4dEVuY29kaW5n
KFNrUGFpbnQ6OmtHbHlwaElEX1RleHRFbmNvZGluZyk7CiAgICAgICAgIHBhaW50LnNldENvbG9y
KGdjLT5zdHJva2VDb2xvcigpLnJnYigpKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>