<?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>117695</bug_id>
          
          <creation_ts>2013-06-17 06:56:25 -0700</creation_ts>
          <short_desc>[WinCairo] Webfont rendering is broken.</short_desc>
          <delta_ts>2013-06-19 11:17:51 -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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://www.cern.org</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter>peavo</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>mrobinson</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>901015</commentid>
    <comment_count>0</comment_count>
    <who name="">peavo</who>
    <bug_when>2013-06-17 06:56:25 -0700</bug_when>
    <thetext>The native font handle created from webfont data is invalid.
In much the same way it&apos;s done in WinApple, we first need to install the webfont, create a native font handle from the new font name,
and pass the font handle to the FontPlatformData object, where it&apos;s needed to get the glyphs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>901023</commentid>
    <comment_count>1</comment_count>
      <attachid>204821</attachid>
    <who name="">peavo</who>
    <bug_when>2013-06-17 07:11:11 -0700</bug_when>
    <thetext>Created attachment 204821
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>901253</commentid>
    <comment_count>2</comment_count>
      <attachid>204821</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2013-06-17 22:23:30 -0700</bug_when>
    <thetext>Comment on attachment 204821
Patch

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

I think this looks good, but I&apos;d like Martin Robinson to double-check that we aren&apos;t doing something bad to the Gtk+ port.  I also had a few questions I&apos;d like you to double-check for me before I r+ the patch. Thanks!

&gt; Source/WebCore/platform/graphics/FontPlatformData.h:109
&gt; +    FontPlatformData(HFONT, cairo_font_face_t*, float size, bool bold, bool italic);

It seems like this should break Gtk+, but the EWS says its okay... It seems like this should maybe be protected by USE(WINCAIRO).

&gt; Source/WebCore/platform/graphics/win/FontCustomPlatformDataCairo.cpp:82
&gt;  FontCustomPlatformData* createFontCustomPlatformData(SharedBuffer* buffer)

Should this be declared static now? It&apos;s not used outside this module, is it?

&gt; Source/WebCore/platform/graphics/win/FontCustomPlatformDataCairo.h:-49
&gt; -    cairo_font_face_t* m_fontFace;

Is there no benefit to holding the cairo_font_fact_t*?  Is it needed anywhere else?

&gt; Source/WebCore/platform/graphics/win/FontPlatformDataCairoWin.cpp:60
&gt; +    : m_font(RefCountedGDIHandle&lt;HFONT&gt;::create(font))

Good!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>901255</commentid>
    <comment_count>3</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2013-06-17 22:24:10 -0700</bug_when>
    <thetext>CC&apos;ing mrobinson to double-check that there are no Gtk+ problems with this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>901261</commentid>
    <comment_count>4</comment_count>
      <attachid>204821</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2013-06-17 22:44:32 -0700</bug_when>
    <thetext>Comment on attachment 204821
Patch

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

&gt;&gt; Source/WebCore/platform/graphics/FontPlatformData.h:109
&gt;&gt; +    FontPlatformData(HFONT, cairo_font_face_t*, float size, bool bold, bool italic);
&gt; 
&gt; It seems like this should break Gtk+, but the EWS says its okay... It seems like this should maybe be protected by USE(WINCAIRO).

I think that perhaps GTK+ and EFL are not including this file, but are instead including WebKit/Source/WebCore/platform/graphics/freetype/FontPlatformData.h. Looks good to me. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>901393</commentid>
    <comment_count>5</comment_count>
    <who name="">peavo</who>
    <bug_when>2013-06-18 07:30:10 -0700</bug_when>
    <thetext>(In reply to comment #2)

Thanks for reviewing, Brent!

&gt; &gt; Source/WebCore/platform/graphics/win/FontCustomPlatformDataCairo.cpp:82
&gt; &gt;  FontCustomPlatformData* createFontCustomPlatformData(SharedBuffer* buffer)
&gt; 
&gt; Should this be declared static now? It&apos;s not used outside this module, is it?

Yes, it&apos;s used by WebCore\loader\cache\CachedFont.cpp.

&gt; &gt; Source/WebCore/platform/graphics/win/FontCustomPlatformDataCairo.h:-49
&gt; &gt; -    cairo_font_face_t* m_fontFace;
&gt; 
&gt; Is there no benefit to holding the cairo_font_fact_t*?  Is it needed anywhere else?

I don&apos;t think it&apos;s currently needed elsewhere (no compile errors). The FontCustomPlatformData object is only used to create a FontPlatformData object via the fontPlatformData() method, and the cairo_font_face_t pointer is only used to create a cairo_scaled_font_t pointer in the FontPlatformData constructor, so I believe it can be a temporary variable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>901401</commentid>
    <comment_count>6</comment_count>
      <attachid>204915</attachid>
    <who name="">peavo</who>
    <bug_when>2013-06-18 08:02:01 -0700</bug_when>
    <thetext>Created attachment 204915
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>901402</commentid>
    <comment_count>7</comment_count>
    <who name="">peavo</who>
    <bug_when>2013-06-18 08:03:28 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; Created an attachment (id=204915) [details]
&gt; Patch

Modified patch according to review, moved windows specific constructor into PLATFORM(WIN) section.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>901425</commentid>
    <comment_count>8</comment_count>
      <attachid>204915</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2013-06-18 09:15:50 -0700</bug_when>
    <thetext>Comment on attachment 204915
Patch

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

This patch looks great.  Could you just make the &quot;#elif&quot; change I asked for when you land the change?

&gt; Source/WebCore/platform/graphics/FontPlatformData.h:107
&gt;  #if USE(CAIRO)

nit: This should probably have been an &quot;#elif USE(CAIRO)&quot;, since we never use both graphics packages together (they are exclusive).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>901690</commentid>
    <comment_count>9</comment_count>
      <attachid>204973</attachid>
    <who name="">peavo</who>
    <bug_when>2013-06-19 01:11:15 -0700</bug_when>
    <thetext>Created attachment 204973
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>901691</commentid>
    <comment_count>10</comment_count>
    <who name="">peavo</who>
    <bug_when>2013-06-19 01:21:03 -0700</bug_when>
    <thetext>(In reply to comment #8)

&gt; nit: This should probably have been an &quot;#elif USE(CAIRO)&quot;, since we never use both graphics packages together (they are exclusive).

Changed the patch to use &quot;#elif USE(CAIRO)&quot;. If the patch is ok, could you also commit+ it, I don&apos;t have committer rights :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>901853</commentid>
    <comment_count>11</comment_count>
      <attachid>204973</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2013-06-19 10:53:54 -0700</bug_when>
    <thetext>Comment on attachment 204973
Patch

Thank you for making those changes!  r=me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>901866</commentid>
    <comment_count>12</comment_count>
      <attachid>204973</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-06-19 11:17:49 -0700</bug_when>
    <thetext>Comment on attachment 204973
Patch

Clearing flags on attachment: 204973

Committed r151743: &lt;http://trac.webkit.org/changeset/151743&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>901867</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-06-19 11:17:51 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>204821</attachid>
            <date>2013-06-17 07:11:11 -0700</date>
            <delta_ts>2013-06-18 08:01:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-117695-20130617160922.patch</filename>
            <type>text/plain</type>
            <size>8356</size>
            <attacher>peavo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1MTY0MCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI1IEBACisyMDEzLTA2LTE3ICBwZWF2b0Bv
dXRsb29rLmNvbSAgPHBlYXZvQG91dGxvb2suY29tPgorCisgICAgICAgIFtXaW5DYWlyb10gV2Vi
Zm9udCByZW5kZXJpbmcgaXMgYnJva2VuLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTE3Njk1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgVGhlIG5hdGl2ZSBmb250IGhhbmRsZSBjcmVhdGVkIGZyb20gd2Vi
Zm9udCBkYXRhIGlzIGludmFsaWQuCisgICAgICAgIEluIG11Y2ggdGhlIHNhbWUgd2F5IGl0J3Mg
ZG9uZSBpbiBXaW5BcHBsZSwgd2UgZmlyc3QgbmVlZCB0byBpbnN0YWxsIHRoZSB3ZWJmb250LAor
ICAgICAgICBjcmVhdGUgYSBuYXRpdmUgZm9udCBoYW5kbGUgZnJvbSB0aGUgbmV3IGZvbnQgbmFt
ZSwKKyAgICAgICAgYW5kIHBhc3MgdGhlIGZvbnQgaGFuZGxlIHRvIHRoZSBGb250UGxhdGZvcm1E
YXRhIG9iamVjdCwgd2hlcmUgaXQncyBuZWVkZWQgdG8gZ2V0IHRoZSBnbHlwaHMuCisKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Gb250UGxhdGZvcm1EYXRhLmg6IEFkZGVkIEhGT05UIHBh
cmFtZXRlciB0byBjb25zdHJ1Y3Rvci4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4v
Rm9udEN1c3RvbVBsYXRmb3JtRGF0YUNhaXJvLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRD
dXN0b21QbGF0Zm9ybURhdGE6On5Gb250Q3VzdG9tUGxhdGZvcm1EYXRhKTogUmVsZWFzZSBpbnN0
YWxsZWQgd2ViZm9udC4KKyAgICAgICAgKFdlYkNvcmU6OkZvbnRDdXN0b21QbGF0Zm9ybURhdGE6
OmZvbnRQbGF0Zm9ybURhdGEpOiBDcmVhdGUgdmFsaWQgSEZPTlQgaGFuZGxlIGZvciB3ZWJmb250
LgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlVW5pcXVlRm9udE5hbWUpOiBBZGRlZCBtZXRob2Qg
dG8gY3JlYXRlIHdlYmZvbnQgbmFtZS4KKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUZvbnRDdXN0
b21QbGF0Zm9ybURhdGEpOiBJbnN0YWxsIGZvbnQgZnJvbSB3ZWJmb250IGRhdGEuCisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGFDYWlyby5oOiBS
ZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250UGxhdGZvcm1EYXRh
Q2Fpcm9XaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9udFBsYXRmb3JtRGF0YTo6Rm9udFBs
YXRmb3JtRGF0YSk6IEFkZGVkIEhGT05UIHBhcmFtZXRlciB0byBjb25zdHJ1Y3Rvci4KKwogMjAx
My0wNi0xNyAgQWxsYW4gU2FuZGZlbGQgSmVuc2VuICA8YWxsYW4uamVuc2VuQGRpZ2lhLmNvbT4K
IAogICAgICAgICBSRUdSRVNTU0lPTihyMTUxNjMyKSA6IEJ1aWxkIGVycm9yIG9uIEFTU0VSVChX
VEZfVVNFX0dSQU1NQVJfQ0hFQ0tJTkcpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9Gb250UGxhdGZvcm1EYXRhLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvRm9udFBsYXRmb3JtRGF0YS5oCShyZXZpc2lvbiAxNTE1ODEpCisr
KyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250UGxhdGZvcm1EYXRhLmgJKHdv
cmtpbmcgY29weSkKQEAgLTEwNiw3ICsxMDYsNyBAQCBwdWJsaWM6CiAjZW5kaWYKICNlbmRpZgog
I2lmIFVTRShDQUlSTykKLSAgICBGb250UGxhdGZvcm1EYXRhKGNhaXJvX2ZvbnRfZmFjZV90Kiwg
ZmxvYXQgc2l6ZSwgYm9vbCBib2xkLCBib29sIGl0YWxpYyk7CisgICAgRm9udFBsYXRmb3JtRGF0
YShIRk9OVCwgY2Fpcm9fZm9udF9mYWNlX3QqLCBmbG9hdCBzaXplLCBib29sIGJvbGQsIGJvb2wg
aXRhbGljKTsKICNlbmRpZgogCiAgICAgfkZvbnRQbGF0Zm9ybURhdGEoKTsKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhQ2Fp
cm8uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dp
bi9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhQ2Fpcm8uY3BwCShyZXZpc2lvbiAxNTE1ODEpCisrKyBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udEN1c3RvbVBsYXRmb3JtRGF0
YUNhaXJvLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTksNDYgKzE5LDc3IEBACiAgKi8KIAogI2lu
Y2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkZvbnRDdXN0b21QbGF0Zm9ybURhdGFDYWlyby5o
IgorI2luY2x1ZGUgIkZvbnRDdXN0b21QbGF0Zm9ybURhdGEuaCIKIAorI2luY2x1ZGUgIk9wZW5U
eXBlVXRpbGl0aWVzLmgiCiAjaW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgiCiAjaW5jbHVkZSAiRm9u
dFBsYXRmb3JtRGF0YS5oIgogCiAjaW5jbHVkZSA8Y2Fpcm8td2luMzIuaD4KICNpbmNsdWRlIDx3
dGYvUmV0YWluUHRyLmg+Ci0KKyNpbmNsdWRlIDx3dGYvdGV4dC9CYXNlNjQuaD4KIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBGb250Q3VzdG9tUGxhdGZvcm1EYXRhOjp+Rm9udEN1c3RvbVBsYXRm
b3JtRGF0YSgpCiB7Ci0gICBjYWlyb19mb250X2ZhY2VfZGVzdHJveShtX2ZvbnRGYWNlKTsKKyAg
ICBpZiAobV9mb250UmVmZXJlbmNlKQorICAgICAgICBSZW1vdmVGb250TWVtUmVzb3VyY2VFeCht
X2ZvbnRSZWZlcmVuY2UpOwogfQogCi1Gb250UGxhdGZvcm1EYXRhIEZvbnRDdXN0b21QbGF0Zm9y
bURhdGE6OmZvbnRQbGF0Zm9ybURhdGEoaW50IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMs
IEZvbnRPcmllbnRhdGlvbiwgRm9udFdpZHRoVmFyaWFudCwgRm9udFJlbmRlcmluZ01vZGUpCitG
b250UGxhdGZvcm1EYXRhIEZvbnRDdXN0b21QbGF0Zm9ybURhdGE6OmZvbnRQbGF0Zm9ybURhdGEo
aW50IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMsIEZvbnRPcmllbnRhdGlvbiwgRm9udFdp
ZHRoVmFyaWFudCwgRm9udFJlbmRlcmluZ01vZGUgcmVuZGVyaW5nTW9kZSkKIHsKLSAgICByZXR1
cm4gRm9udFBsYXRmb3JtRGF0YShtX2ZvbnRGYWNlLCBzaXplLCBib2xkLCBpdGFsaWMpOworICAg
IExPR0ZPTlQgbG9nRm9udDsKKyAgICBtZW1zZXQoJmxvZ0ZvbnQsIDAsIHNpemVvZihMT0dGT05U
KSk7CisgICAgd2NzbmNweShsb2dGb250LmxmRmFjZU5hbWUsIG1fbmFtZS5jaGFyYWN0ZXJzV2l0
aE51bGxUZXJtaW5hdGlvbigpLCBMRl9GQUNFU0laRSAtIDEpOworCisgICAgbG9nRm9udC5sZkhl
aWdodCA9IC1zaXplOworICAgIGlmIChyZW5kZXJpbmdNb2RlID09IE5vcm1hbFJlbmRlcmluZ01v
ZGUpCisgICAgICAgIGxvZ0ZvbnQubGZIZWlnaHQgKj0gMzI7CisgICAgbG9nRm9udC5sZldpZHRo
ID0gMDsKKyAgICBsb2dGb250LmxmRXNjYXBlbWVudCA9IDA7CisgICAgbG9nRm9udC5sZk9yaWVu
dGF0aW9uID0gMDsKKyAgICBsb2dGb250LmxmVW5kZXJsaW5lID0gZmFsc2U7CisgICAgbG9nRm9u
dC5sZlN0cmlrZU91dCA9IGZhbHNlOworICAgIGxvZ0ZvbnQubGZDaGFyU2V0ID0gREVGQVVMVF9D
SEFSU0VUOworICAgIGxvZ0ZvbnQubGZPdXRQcmVjaXNpb24gPSBPVVRfVFRfT05MWV9QUkVDSVM7
CisgICAgbG9nRm9udC5sZlF1YWxpdHkgPSBDTEVBUlRZUEVfUVVBTElUWTsKKyAgICBsb2dGb250
LmxmUGl0Y2hBbmRGYW1pbHkgPSBERUZBVUxUX1BJVENIIHwgRkZfRE9OVENBUkU7CisgICAgbG9n
Rm9udC5sZkl0YWxpYyA9IGl0YWxpYzsKKyAgICBsb2dGb250LmxmV2VpZ2h0ID0gYm9sZCA/IDcw
MCA6IDQwMDsKKworICAgIEhGT05UIGhmb250ID0gQ3JlYXRlRm9udEluZGlyZWN0KCZsb2dGb250
KTsKKworICAgIGNhaXJvX2ZvbnRfZmFjZV90KiBmb250RmFjZSA9IGNhaXJvX3dpbjMyX2ZvbnRf
ZmFjZV9jcmVhdGVfZm9yX2hmb250KGhmb250KTsKKworICAgIEZvbnRQbGF0Zm9ybURhdGEgZm9u
dFBsYXRmb3JtRGF0YShoZm9udCwgZm9udEZhY2UsIHNpemUsIGJvbGQsIGl0YWxpYyk7CisKKyAg
ICBjYWlyb19mb250X2ZhY2VfZGVzdHJveShmb250RmFjZSk7CisKKyAgICByZXR1cm4gZm9udFBs
YXRmb3JtRGF0YTsKIH0KIAotc3RhdGljIHZvaWQgcmVsZWFzZURhdGEodm9pZCogZGF0YSkKK3N0
YXRpYyBTdHJpbmcgY3JlYXRlVW5pcXVlRm9udE5hbWUoKQogewotICAgIHN0YXRpY19jYXN0PFNo
YXJlZEJ1ZmZlcio+KGRhdGEpLT5kZXJlZigpOworICAgIEdVSUQgZm9udFV1aWQ7CisgICAgQ29D
cmVhdGVHdWlkKCZmb250VXVpZCk7CisKKyAgICBTdHJpbmcgZm9udE5hbWUgPSBiYXNlNjRFbmNv
ZGUocmVpbnRlcnByZXRfY2FzdDxjaGFyKj4oJmZvbnRVdWlkKSwgc2l6ZW9mKGZvbnRVdWlkKSk7
CisgICAgQVNTRVJUKGZvbnROYW1lLmxlbmd0aCgpIDwgTEZfRkFDRVNJWkUpOworICAgIHJldHVy
biBmb250TmFtZTsKIH0KIAogRm9udEN1c3RvbVBsYXRmb3JtRGF0YSogY3JlYXRlRm9udEN1c3Rv
bVBsYXRmb3JtRGF0YShTaGFyZWRCdWZmZXIqIGJ1ZmZlcikKIHsKICAgICBBU1NFUlRfQVJHKGJ1
ZmZlciwgYnVmZmVyKTsKIAotICAgIGJ1ZmZlci0+cmVmKCk7Ci0gICAgSEZPTlQgZm9udCA9IHJl
aW50ZXJwcmV0X2Nhc3Q8SEZPTlQ+KGJ1ZmZlcik7Ci0gICAgY2Fpcm9fZm9udF9mYWNlX3QqIGZv
bnRGYWNlID0gY2Fpcm9fd2luMzJfZm9udF9mYWNlX2NyZWF0ZV9mb3JfaGZvbnQoZm9udCk7Ci0g
ICAgaWYgKCFmb250RmFjZSkKLSAgICAgICByZXR1cm4gMDsKKyAgICBTdHJpbmcgZm9udE5hbWUg
PSBjcmVhdGVVbmlxdWVGb250TmFtZSgpOworICAgIEhBTkRMRSBmb250UmVmZXJlbmNlID0gcmVu
YW1lQW5kQWN0aXZhdGVGb250KGJ1ZmZlciwgZm9udE5hbWUpOwogCi0gICAgc3RhdGljIGNhaXJv
X3VzZXJfZGF0YV9rZXlfdCBidWZmZXJLZXk7Ci0gICAgY2Fpcm9fZm9udF9mYWNlX3NldF91c2Vy
X2RhdGEoZm9udEZhY2UsICZidWZmZXJLZXksIGJ1ZmZlciwgcmVsZWFzZURhdGEpOworICAgIGlm
ICghZm9udFJlZmVyZW5jZSkKKyAgICAgICAgcmV0dXJuIDA7CiAKLSAgICByZXR1cm4gbmV3IEZv
bnRDdXN0b21QbGF0Zm9ybURhdGEoZm9udEZhY2UpOworICAgIHJldHVybiBuZXcgRm9udEN1c3Rv
bVBsYXRmb3JtRGF0YShmb250UmVmZXJlbmNlLCBmb250TmFtZSk7CiB9CiAKIGJvb2wgRm9udEN1
c3RvbVBsYXRmb3JtRGF0YTo6c3VwcG9ydHNGb3JtYXQoY29uc3QgU3RyaW5nJiBmb3JtYXQpCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udEN1c3RvbVBsYXRm
b3JtRGF0YUNhaXJvLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvd2luL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGFDYWlyby5oCShyZXZpc2lvbiAxNTE2MjAp
CisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udEN1c3RvbVBsYXRm
b3JtRGF0YUNhaXJvLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNTYgKzAsMCBAQAotLyoKLSAqIENv
cHlyaWdodCAoQykgMjAwNyBBcHBsZSBDb21wdXRlciwgSW5jLgotICogQ29weXJpZ2h0IChDKSAy
MDEwIEJyZW50IEZ1bGdoYW0gPGJmdWxnaGFtQHdlYmtpdC5vcmc+Ci0gKgotICogVGhpcyBsaWJy
YXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICog
bW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMKLSAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp
b247IGVpdGhlcgotICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRp
b24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRl
ZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogYnV0IFdJVEhPVVQgQU5Z
IFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqIE1FUkNI
QU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUg
R05VCi0gKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4K
LSAqCi0gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2Vl
IHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwotICogdGhlIEZyZWUgU29m
dHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwK
LSAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgotICoKLSAqLwotCi0jaWZuZGVmIEZvbnRD
dXN0b21QbGF0Zm9ybURhdGFDYWlyb19oCi0jZGVmaW5lIEZvbnRDdXN0b21QbGF0Zm9ybURhdGFD
YWlyb19oCi0KLSNpbmNsdWRlICJGb250RGVzY3JpcHRpb24uaCIKLSNpbmNsdWRlIDx3dGYvRm9y
d2FyZC5oPgotI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgotCi0jaW5jbHVkZSA8Y2Fpcm8u
aD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBGb250UGxhdGZvcm1EYXRhOwotY2xh
c3MgU2hhcmVkQnVmZmVyOwotCi1zdHJ1Y3QgRm9udEN1c3RvbVBsYXRmb3JtRGF0YSB7Ci0gICAg
V1RGX01BS0VfTk9OQ09QWUFCTEUoRm9udEN1c3RvbVBsYXRmb3JtRGF0YSk7Ci1wdWJsaWM6Ci0g
ICAgRm9udEN1c3RvbVBsYXRmb3JtRGF0YShjYWlyb19mb250X2ZhY2VfdCogZm9udEZhY2UpCi0g
ICAgICAgIDogbV9mb250RmFjZShmb250RmFjZSkKLSAgICB7Ci0gICAgfQotICAgIH5Gb250Q3Vz
dG9tUGxhdGZvcm1EYXRhKCk7Ci0KLSAgICBGb250UGxhdGZvcm1EYXRhIGZvbnRQbGF0Zm9ybURh
dGEoaW50IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMsIEZvbnRPcmllbnRhdGlvbiA9IEhv
cml6b250YWwsIEZvbnRXaWR0aFZhcmlhbnQgPSBSZWd1bGFyV2lkdGgsIEZvbnRSZW5kZXJpbmdN
b2RlID0gTm9ybWFsUmVuZGVyaW5nTW9kZSk7Ci0KLSAgICBzdGF0aWMgYm9vbCBzdXBwb3J0c0Zv
cm1hdChjb25zdCBTdHJpbmcmKTsKLQotICAgIGNhaXJvX2ZvbnRfZmFjZV90KiBtX2ZvbnRGYWNl
OwotfTsKLQotRm9udEN1c3RvbVBsYXRmb3JtRGF0YSogY3JlYXRlRm9udEN1c3RvbVBsYXRmb3Jt
RGF0YShTaGFyZWRCdWZmZXIqKTsKLQotfQotCi0jZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250UGxhdGZvcm1EYXRhQ2Fpcm9XaW4uY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250UGxhdGZv
cm1EYXRhQ2Fpcm9XaW4uY3BwCShyZXZpc2lvbiAxNTE1ODEpCisrKyBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udFBsYXRmb3JtRGF0YUNhaXJvV2luLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNTYsOCArNTYsOCBAQCB2b2lkIEZvbnRQbGF0Zm9ybURhdGE6OnBsYXRmb3Jt
RGF0YUluaXQoCiAgICAgY2Fpcm9fZm9udF9mYWNlX2Rlc3Ryb3koZm9udEZhY2UpOwogfQogCi1G
b250UGxhdGZvcm1EYXRhOjpGb250UGxhdGZvcm1EYXRhKGNhaXJvX2ZvbnRfZmFjZV90KiBmb250
RmFjZSwgZmxvYXQgc2l6ZSwgYm9vbCBib2xkLCBib29sIG9ibGlxdWUpCi0gICAgOiBtX2ZvbnQo
MCkKK0ZvbnRQbGF0Zm9ybURhdGE6OkZvbnRQbGF0Zm9ybURhdGEoSEZPTlQgZm9udCwgY2Fpcm9f
Zm9udF9mYWNlX3QqIGZvbnRGYWNlLCBmbG9hdCBzaXplLCBib29sIGJvbGQsIGJvb2wgb2JsaXF1
ZSkKKyAgICA6IG1fZm9udChSZWZDb3VudGVkR0RJSGFuZGxlPEhGT05UPjo6Y3JlYXRlKGZvbnQp
KQogICAgICwgbV9zaXplKHNpemUpCiAgICAgLCBtX29yaWVudGF0aW9uKEhvcml6b250YWwpCiAg
ICAgLCBtX3dpZHRoVmFyaWFudChSZWd1bGFyV2lkdGgpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>204915</attachid>
            <date>2013-06-18 08:02:01 -0700</date>
            <delta_ts>2013-06-19 01:11:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-117695-20130618170008.patch</filename>
            <type>text/plain</type>
            <size>8483</size>
            <attacher>peavo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1MTY3NCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI1IEBACisyMDEzLTA2LTE4ICBwZWF2b0Bv
dXRsb29rLmNvbSAgPHBlYXZvQG91dGxvb2suY29tPgorCisgICAgICAgIFtXaW5DYWlyb10gV2Vi
Zm9udCByZW5kZXJpbmcgaXMgYnJva2VuLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTE3Njk1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgVGhlIG5hdGl2ZSBmb250IGhhbmRsZSBjcmVhdGVkIGZyb20gd2Vi
Zm9udCBkYXRhIGlzIGludmFsaWQuCisgICAgICAgIEluIG11Y2ggdGhlIHNhbWUgd2F5IGl0J3Mg
ZG9uZSBpbiBXaW5BcHBsZSwgd2UgZmlyc3QgbmVlZCB0byBpbnN0YWxsIHRoZSB3ZWJmb250LAor
ICAgICAgICBjcmVhdGUgYSBuYXRpdmUgZm9udCBoYW5kbGUgZnJvbSB0aGUgbmV3IGZvbnQgbmFt
ZSwKKyAgICAgICAgYW5kIHBhc3MgdGhlIGZvbnQgaGFuZGxlIHRvIHRoZSBGb250UGxhdGZvcm1E
YXRhIG9iamVjdCwgd2hlcmUgaXQncyBuZWVkZWQgdG8gZ2V0IHRoZSBnbHlwaHMuCisKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Gb250UGxhdGZvcm1EYXRhLmg6IEFkZGVkIEhGT05UIHBh
cmFtZXRlciB0byBjb25zdHJ1Y3Rvci4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4v
Rm9udEN1c3RvbVBsYXRmb3JtRGF0YUNhaXJvLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRD
dXN0b21QbGF0Zm9ybURhdGE6On5Gb250Q3VzdG9tUGxhdGZvcm1EYXRhKTogUmVsZWFzZSBpbnN0
YWxsZWQgd2ViZm9udC4KKyAgICAgICAgKFdlYkNvcmU6OkZvbnRDdXN0b21QbGF0Zm9ybURhdGE6
OmZvbnRQbGF0Zm9ybURhdGEpOiBDcmVhdGUgdmFsaWQgSEZPTlQgaGFuZGxlIGZvciB3ZWJmb250
LgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlVW5pcXVlRm9udE5hbWUpOiBBZGRlZCBtZXRob2Qg
dG8gY3JlYXRlIHdlYmZvbnQgbmFtZS4KKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUZvbnRDdXN0
b21QbGF0Zm9ybURhdGEpOiBJbnN0YWxsIGZvbnQgZnJvbSB3ZWJmb250IGRhdGEuCisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGFDYWlyby5oOiBS
ZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250UGxhdGZvcm1EYXRh
Q2Fpcm9XaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9udFBsYXRmb3JtRGF0YTo6Rm9udFBs
YXRmb3JtRGF0YSk6IEFkZGVkIEhGT05UIHBhcmFtZXRlciB0byBjb25zdHJ1Y3Rvci4KKwogMjAx
My0wNi0xOCAgVsOtY3RvciBNYW51ZWwgSsOhcXVleiBMZWFsICA8dmphcXVlekBpZ2FsaWEuY29t
PgogCiAgICAgICAgIFtHU3RyZWFtZXJdIFt0ZXhtYXBdIHVwbG9hZCBhIHZpZGVvIGJ1ZmZlciBp
bnRvIHRoZSB2aWRlbyB0ZXh0dXJlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9Gb250UGxhdGZvcm1EYXRhLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvRm9udFBsYXRmb3JtRGF0YS5oCShyZXZpc2lvbiAxNTE2NzQpCisrKyBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250UGxhdGZvcm1EYXRhLmgJKHdvcmtp
bmcgY29weSkKQEAgLTEwNCw5ICsxMDQsOSBAQCBwdWJsaWM6CiAjaWYgVVNFKENHKQogICAgIEZv
bnRQbGF0Zm9ybURhdGEoSEZPTlQsIENHRm9udFJlZiwgZmxvYXQgc2l6ZSwgYm9vbCBzeW50aGV0
aWNCb2xkLCBib29sIHN5bnRoZXRpY09ibGlxdWUsIGJvb2wgdXNlR0RJKTsKICNlbmRpZgotI2Vu
ZGlmCiAjaWYgVVNFKENBSVJPKQotICAgIEZvbnRQbGF0Zm9ybURhdGEoY2Fpcm9fZm9udF9mYWNl
X3QqLCBmbG9hdCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGljKTsKKyAgICBGb250UGxhdGZv
cm1EYXRhKEhGT05ULCBjYWlyb19mb250X2ZhY2VfdCosIGZsb2F0IHNpemUsIGJvb2wgYm9sZCwg
Ym9vbCBpdGFsaWMpOworI2VuZGlmCiAjZW5kaWYKIAogICAgIH5Gb250UGxhdGZvcm1EYXRhKCk7
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udEN1c3RvbVBs
YXRmb3JtRGF0YUNhaXJvLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy93aW4vRm9udEN1c3RvbVBsYXRmb3JtRGF0YUNhaXJvLmNwcAkocmV2aXNpb24g
MTUxNjc0KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRDdXN0
b21QbGF0Zm9ybURhdGFDYWlyby5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE5LDQ2ICsxOSw3NyBA
QAogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJGb250Q3VzdG9tUGxhdGZv
cm1EYXRhQ2Fpcm8uaCIKKyNpbmNsdWRlICJGb250Q3VzdG9tUGxhdGZvcm1EYXRhLmgiCiAKKyNp
bmNsdWRlICJPcGVuVHlwZVV0aWxpdGllcy5oIgogI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgog
I2luY2x1ZGUgIkZvbnRQbGF0Zm9ybURhdGEuaCIKIAogI2luY2x1ZGUgPGNhaXJvLXdpbjMyLmg+
CiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgotCisjaW5jbHVkZSA8d3RmL3RleHQvQmFzZTY0
Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogRm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6fkZv
bnRDdXN0b21QbGF0Zm9ybURhdGEoKQogewotICAgY2Fpcm9fZm9udF9mYWNlX2Rlc3Ryb3kobV9m
b250RmFjZSk7CisgICAgaWYgKG1fZm9udFJlZmVyZW5jZSkKKyAgICAgICAgUmVtb3ZlRm9udE1l
bVJlc291cmNlRXgobV9mb250UmVmZXJlbmNlKTsKIH0KIAotRm9udFBsYXRmb3JtRGF0YSBGb250
Q3VzdG9tUGxhdGZvcm1EYXRhOjpmb250UGxhdGZvcm1EYXRhKGludCBzaXplLCBib29sIGJvbGQs
IGJvb2wgaXRhbGljLCBGb250T3JpZW50YXRpb24sIEZvbnRXaWR0aFZhcmlhbnQsIEZvbnRSZW5k
ZXJpbmdNb2RlKQorRm9udFBsYXRmb3JtRGF0YSBGb250Q3VzdG9tUGxhdGZvcm1EYXRhOjpmb250
UGxhdGZvcm1EYXRhKGludCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGljLCBGb250T3JpZW50
YXRpb24sIEZvbnRXaWR0aFZhcmlhbnQsIEZvbnRSZW5kZXJpbmdNb2RlIHJlbmRlcmluZ01vZGUp
CiB7Ci0gICAgcmV0dXJuIEZvbnRQbGF0Zm9ybURhdGEobV9mb250RmFjZSwgc2l6ZSwgYm9sZCwg
aXRhbGljKTsKKyAgICBMT0dGT05UIGxvZ0ZvbnQ7CisgICAgbWVtc2V0KCZsb2dGb250LCAwLCBz
aXplb2YoTE9HRk9OVCkpOworICAgIHdjc25jcHkobG9nRm9udC5sZkZhY2VOYW1lLCBtX25hbWUu
Y2hhcmFjdGVyc1dpdGhOdWxsVGVybWluYXRpb24oKSwgTEZfRkFDRVNJWkUgLSAxKTsKKworICAg
IGxvZ0ZvbnQubGZIZWlnaHQgPSAtc2l6ZTsKKyAgICBpZiAocmVuZGVyaW5nTW9kZSA9PSBOb3Jt
YWxSZW5kZXJpbmdNb2RlKQorICAgICAgICBsb2dGb250LmxmSGVpZ2h0ICo9IDMyOworICAgIGxv
Z0ZvbnQubGZXaWR0aCA9IDA7CisgICAgbG9nRm9udC5sZkVzY2FwZW1lbnQgPSAwOworICAgIGxv
Z0ZvbnQubGZPcmllbnRhdGlvbiA9IDA7CisgICAgbG9nRm9udC5sZlVuZGVybGluZSA9IGZhbHNl
OworICAgIGxvZ0ZvbnQubGZTdHJpa2VPdXQgPSBmYWxzZTsKKyAgICBsb2dGb250LmxmQ2hhclNl
dCA9IERFRkFVTFRfQ0hBUlNFVDsKKyAgICBsb2dGb250LmxmT3V0UHJlY2lzaW9uID0gT1VUX1RU
X09OTFlfUFJFQ0lTOworICAgIGxvZ0ZvbnQubGZRdWFsaXR5ID0gQ0xFQVJUWVBFX1FVQUxJVFk7
CisgICAgbG9nRm9udC5sZlBpdGNoQW5kRmFtaWx5ID0gREVGQVVMVF9QSVRDSCB8IEZGX0RPTlRD
QVJFOworICAgIGxvZ0ZvbnQubGZJdGFsaWMgPSBpdGFsaWM7CisgICAgbG9nRm9udC5sZldlaWdo
dCA9IGJvbGQgPyA3MDAgOiA0MDA7CisKKyAgICBIRk9OVCBoZm9udCA9IENyZWF0ZUZvbnRJbmRp
cmVjdCgmbG9nRm9udCk7CisKKyAgICBjYWlyb19mb250X2ZhY2VfdCogZm9udEZhY2UgPSBjYWly
b193aW4zMl9mb250X2ZhY2VfY3JlYXRlX2Zvcl9oZm9udChoZm9udCk7CisKKyAgICBGb250UGxh
dGZvcm1EYXRhIGZvbnRQbGF0Zm9ybURhdGEoaGZvbnQsIGZvbnRGYWNlLCBzaXplLCBib2xkLCBp
dGFsaWMpOworCisgICAgY2Fpcm9fZm9udF9mYWNlX2Rlc3Ryb3koZm9udEZhY2UpOworCisgICAg
cmV0dXJuIGZvbnRQbGF0Zm9ybURhdGE7CiB9CiAKLXN0YXRpYyB2b2lkIHJlbGVhc2VEYXRhKHZv
aWQqIGRhdGEpCitzdGF0aWMgU3RyaW5nIGNyZWF0ZVVuaXF1ZUZvbnROYW1lKCkKIHsKLSAgICBz
dGF0aWNfY2FzdDxTaGFyZWRCdWZmZXIqPihkYXRhKS0+ZGVyZWYoKTsKKyAgICBHVUlEIGZvbnRV
dWlkOworICAgIENvQ3JlYXRlR3VpZCgmZm9udFV1aWQpOworCisgICAgU3RyaW5nIGZvbnROYW1l
ID0gYmFzZTY0RW5jb2RlKHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KCZmb250VXVpZCksIHNpemVv
Zihmb250VXVpZCkpOworICAgIEFTU0VSVChmb250TmFtZS5sZW5ndGgoKSA8IExGX0ZBQ0VTSVpF
KTsKKyAgICByZXR1cm4gZm9udE5hbWU7CiB9CiAKIEZvbnRDdXN0b21QbGF0Zm9ybURhdGEqIGNy
ZWF0ZUZvbnRDdXN0b21QbGF0Zm9ybURhdGEoU2hhcmVkQnVmZmVyKiBidWZmZXIpCiB7CiAgICAg
QVNTRVJUX0FSRyhidWZmZXIsIGJ1ZmZlcik7CiAKLSAgICBidWZmZXItPnJlZigpOwotICAgIEhG
T05UIGZvbnQgPSByZWludGVycHJldF9jYXN0PEhGT05UPihidWZmZXIpOwotICAgIGNhaXJvX2Zv
bnRfZmFjZV90KiBmb250RmFjZSA9IGNhaXJvX3dpbjMyX2ZvbnRfZmFjZV9jcmVhdGVfZm9yX2hm
b250KGZvbnQpOwotICAgIGlmICghZm9udEZhY2UpCi0gICAgICAgcmV0dXJuIDA7CisgICAgU3Ry
aW5nIGZvbnROYW1lID0gY3JlYXRlVW5pcXVlRm9udE5hbWUoKTsKKyAgICBIQU5ETEUgZm9udFJl
ZmVyZW5jZSA9IHJlbmFtZUFuZEFjdGl2YXRlRm9udChidWZmZXIsIGZvbnROYW1lKTsKIAotICAg
IHN0YXRpYyBjYWlyb191c2VyX2RhdGFfa2V5X3QgYnVmZmVyS2V5OwotICAgIGNhaXJvX2ZvbnRf
ZmFjZV9zZXRfdXNlcl9kYXRhKGZvbnRGYWNlLCAmYnVmZmVyS2V5LCBidWZmZXIsIHJlbGVhc2VE
YXRhKTsKKyAgICBpZiAoIWZvbnRSZWZlcmVuY2UpCisgICAgICAgIHJldHVybiAwOwogCi0gICAg
cmV0dXJuIG5ldyBGb250Q3VzdG9tUGxhdGZvcm1EYXRhKGZvbnRGYWNlKTsKKyAgICByZXR1cm4g
bmV3IEZvbnRDdXN0b21QbGF0Zm9ybURhdGEoZm9udFJlZmVyZW5jZSwgZm9udE5hbWUpOwogfQog
CiBib29sIEZvbnRDdXN0b21QbGF0Zm9ybURhdGE6OnN1cHBvcnRzRm9ybWF0KGNvbnN0IFN0cmlu
ZyYgZm9ybWF0KQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0Zv
bnRDdXN0b21QbGF0Zm9ybURhdGFDYWlyby5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhQ2Fpcm8uaAkocmV2
aXNpb24gMTUxNjc0KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0Zv
bnRDdXN0b21QbGF0Zm9ybURhdGFDYWlyby5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDU2ICswLDAg
QEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDcgQXBwbGUgQ29tcHV0ZXIsIEluYy4KLSAqIENv
cHlyaWdodCAoQykgMjAxMCBCcmVudCBGdWxnaGFtIDxiZnVsZ2hhbUB3ZWJraXQub3JnPgotICoK
LSAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp
dCBhbmQvb3IKLSAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljCi0gKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0
d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3Ig
KGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiBUaGlzIGxpYnJhcnkg
aXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1
dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5
IG9mCi0gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UuICBTZWUgdGhlIEdOVQotICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBt
b3JlIGRldGFpbHMuCi0gKgotICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0
aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICogYWxvbmcgd2l0aCB0aGlz
IGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAq
IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwg
RmlmdGggRmxvb3IsCi0gKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLSAqCi0gKi8KLQot
I2lmbmRlZiBGb250Q3VzdG9tUGxhdGZvcm1EYXRhQ2Fpcm9faAotI2RlZmluZSBGb250Q3VzdG9t
UGxhdGZvcm1EYXRhQ2Fpcm9faAotCi0jaW5jbHVkZSAiRm9udERlc2NyaXB0aW9uLmgiCi0jaW5j
bHVkZSA8d3RmL0ZvcndhcmQuaD4KLSNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KLQotI2lu
Y2x1ZGUgPGNhaXJvLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgRm9udFBsYXRm
b3JtRGF0YTsKLWNsYXNzIFNoYXJlZEJ1ZmZlcjsKLQotc3RydWN0IEZvbnRDdXN0b21QbGF0Zm9y
bURhdGEgewotICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEZvbnRDdXN0b21QbGF0Zm9ybURhdGEp
OwotcHVibGljOgotICAgIEZvbnRDdXN0b21QbGF0Zm9ybURhdGEoY2Fpcm9fZm9udF9mYWNlX3Qq
IGZvbnRGYWNlKQotICAgICAgICA6IG1fZm9udEZhY2UoZm9udEZhY2UpCi0gICAgewotICAgIH0K
LSAgICB+Rm9udEN1c3RvbVBsYXRmb3JtRGF0YSgpOwotCi0gICAgRm9udFBsYXRmb3JtRGF0YSBm
b250UGxhdGZvcm1EYXRhKGludCBzaXplLCBib29sIGJvbGQsIGJvb2wgaXRhbGljLCBGb250T3Jp
ZW50YXRpb24gPSBIb3Jpem9udGFsLCBGb250V2lkdGhWYXJpYW50ID0gUmVndWxhcldpZHRoLCBG
b250UmVuZGVyaW5nTW9kZSA9IE5vcm1hbFJlbmRlcmluZ01vZGUpOwotCi0gICAgc3RhdGljIGJv
b2wgc3VwcG9ydHNGb3JtYXQoY29uc3QgU3RyaW5nJik7Ci0KLSAgICBjYWlyb19mb250X2ZhY2Vf
dCogbV9mb250RmFjZTsKLX07Ci0KLUZvbnRDdXN0b21QbGF0Zm9ybURhdGEqIGNyZWF0ZUZvbnRD
dXN0b21QbGF0Zm9ybURhdGEoU2hhcmVkQnVmZmVyKik7Ci0KLX0KLQotI2VuZGlmCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udFBsYXRmb3JtRGF0YUNhaXJv
V2luLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93
aW4vRm9udFBsYXRmb3JtRGF0YUNhaXJvV2luLmNwcAkocmV2aXNpb24gMTUxNjc0KQorKysgU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRQbGF0Zm9ybURhdGFDYWlyb1dp
bi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU2LDggKzU2LDggQEAgdm9pZCBGb250UGxhdGZvcm1E
YXRhOjpwbGF0Zm9ybURhdGFJbml0KAogICAgIGNhaXJvX2ZvbnRfZmFjZV9kZXN0cm95KGZvbnRG
YWNlKTsKIH0KIAotRm9udFBsYXRmb3JtRGF0YTo6Rm9udFBsYXRmb3JtRGF0YShjYWlyb19mb250
X2ZhY2VfdCogZm9udEZhY2UsIGZsb2F0IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBvYmxpcXVlKQot
ICAgIDogbV9mb250KDApCitGb250UGxhdGZvcm1EYXRhOjpGb250UGxhdGZvcm1EYXRhKEhGT05U
IGZvbnQsIGNhaXJvX2ZvbnRfZmFjZV90KiBmb250RmFjZSwgZmxvYXQgc2l6ZSwgYm9vbCBib2xk
LCBib29sIG9ibGlxdWUpCisgICAgOiBtX2ZvbnQoUmVmQ291bnRlZEdESUhhbmRsZTxIRk9OVD46
OmNyZWF0ZShmb250KSkKICAgICAsIG1fc2l6ZShzaXplKQogICAgICwgbV9vcmllbnRhdGlvbihI
b3Jpem9udGFsKQogICAgICwgbV93aWR0aFZhcmlhbnQoUmVndWxhcldpZHRoKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>204973</attachid>
            <date>2013-06-19 01:11:15 -0700</date>
            <delta_ts>2013-06-19 11:17:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-117695-20130619100919.patch</filename>
            <type>text/plain</type>
            <size>8595</size>
            <attacher>peavo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1MTY3NCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI1IEBACisyMDEzLTA2LTE4ICBwZWF2b0Bv
dXRsb29rLmNvbSAgPHBlYXZvQG91dGxvb2suY29tPgorCisgICAgICAgIFtXaW5DYWlyb10gV2Vi
Zm9udCByZW5kZXJpbmcgaXMgYnJva2VuLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTE3Njk1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgVGhlIG5hdGl2ZSBmb250IGhhbmRsZSBjcmVhdGVkIGZyb20gd2Vi
Zm9udCBkYXRhIGlzIGludmFsaWQuCisgICAgICAgIEluIG11Y2ggdGhlIHNhbWUgd2F5IGl0J3Mg
ZG9uZSBpbiBXaW5BcHBsZSwgd2UgZmlyc3QgbmVlZCB0byBpbnN0YWxsIHRoZSB3ZWJmb250LAor
ICAgICAgICBjcmVhdGUgYSBuYXRpdmUgZm9udCBoYW5kbGUgZnJvbSB0aGUgbmV3IGZvbnQgbmFt
ZSwKKyAgICAgICAgYW5kIHBhc3MgdGhlIGZvbnQgaGFuZGxlIHRvIHRoZSBGb250UGxhdGZvcm1E
YXRhIG9iamVjdCwgd2hlcmUgaXQncyBuZWVkZWQgdG8gZ2V0IHRoZSBnbHlwaHMuCisKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Gb250UGxhdGZvcm1EYXRhLmg6IEFkZGVkIEhGT05UIHBh
cmFtZXRlciB0byBjb25zdHJ1Y3Rvci4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4v
Rm9udEN1c3RvbVBsYXRmb3JtRGF0YUNhaXJvLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRD
dXN0b21QbGF0Zm9ybURhdGE6On5Gb250Q3VzdG9tUGxhdGZvcm1EYXRhKTogUmVsZWFzZSBpbnN0
YWxsZWQgd2ViZm9udC4KKyAgICAgICAgKFdlYkNvcmU6OkZvbnRDdXN0b21QbGF0Zm9ybURhdGE6
OmZvbnRQbGF0Zm9ybURhdGEpOiBDcmVhdGUgdmFsaWQgSEZPTlQgaGFuZGxlIGZvciB3ZWJmb250
LgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlVW5pcXVlRm9udE5hbWUpOiBBZGRlZCBtZXRob2Qg
dG8gY3JlYXRlIHdlYmZvbnQgbmFtZS4KKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUZvbnRDdXN0
b21QbGF0Zm9ybURhdGEpOiBJbnN0YWxsIGZvbnQgZnJvbSB3ZWJmb250IGRhdGEuCisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGFDYWlyby5oOiBS
ZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250UGxhdGZvcm1EYXRh
Q2Fpcm9XaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9udFBsYXRmb3JtRGF0YTo6Rm9udFBs
YXRmb3JtRGF0YSk6IEFkZGVkIEhGT05UIHBhcmFtZXRlciB0byBjb25zdHJ1Y3Rvci4KKwogMjAx
My0wNi0xOCAgVsOtY3RvciBNYW51ZWwgSsOhcXVleiBMZWFsICA8dmphcXVlekBpZ2FsaWEuY29t
PgogCiAgICAgICAgIFtHU3RyZWFtZXJdIFt0ZXhtYXBdIHVwbG9hZCBhIHZpZGVvIGJ1ZmZlciBp
bnRvIHRoZSB2aWRlbyB0ZXh0dXJlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9Gb250UGxhdGZvcm1EYXRhLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvRm9udFBsYXRmb3JtRGF0YS5oCShyZXZpc2lvbiAxNTE2NzQpCisrKyBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250UGxhdGZvcm1EYXRhLmgJKHdvcmtp
bmcgY29weSkKQEAgLTEwMywxMSArMTAzLDEwIEBAIHB1YmxpYzoKICAgICBGb250UGxhdGZvcm1E
YXRhKEhGT05ULCBmbG9hdCBzaXplLCBib29sIHN5bnRoZXRpY0JvbGQsIGJvb2wgc3ludGhldGlj
T2JsaXF1ZSwgYm9vbCB1c2VHREkpOwogI2lmIFVTRShDRykKICAgICBGb250UGxhdGZvcm1EYXRh
KEhGT05ULCBDR0ZvbnRSZWYsIGZsb2F0IHNpemUsIGJvb2wgc3ludGhldGljQm9sZCwgYm9vbCBz
eW50aGV0aWNPYmxpcXVlLCBib29sIHVzZUdESSk7CisjZWxpZiBVU0UoQ0FJUk8pCisgICAgRm9u
dFBsYXRmb3JtRGF0YShIRk9OVCwgY2Fpcm9fZm9udF9mYWNlX3QqLCBmbG9hdCBzaXplLCBib29s
IGJvbGQsIGJvb2wgaXRhbGljKTsKICNlbmRpZgogI2VuZGlmCi0jaWYgVVNFKENBSVJPKQotICAg
IEZvbnRQbGF0Zm9ybURhdGEoY2Fpcm9fZm9udF9mYWNlX3QqLCBmbG9hdCBzaXplLCBib29sIGJv
bGQsIGJvb2wgaXRhbGljKTsKLSNlbmRpZgogCiAgICAgfkZvbnRQbGF0Zm9ybURhdGEoKTsKIApJ
bmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRDdXN0b21QbGF0
Zm9ybURhdGFDYWlyby5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvd2luL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGFDYWlyby5jcHAJKHJldmlzaW9uIDE1
MTY3NCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250Q3VzdG9t
UGxhdGZvcm1EYXRhQ2Fpcm8uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xOSw0NiArMTksNzcgQEAK
ICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiRm9udEN1c3RvbVBsYXRmb3Jt
RGF0YUNhaXJvLmgiCisjaW5jbHVkZSAiRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5oIgogCisjaW5j
bHVkZSAiT3BlblR5cGVVdGlsaXRpZXMuaCIKICNpbmNsdWRlICJTaGFyZWRCdWZmZXIuaCIKICNp
bmNsdWRlICJGb250UGxhdGZvcm1EYXRhLmgiCiAKICNpbmNsdWRlIDxjYWlyby13aW4zMi5oPgog
I2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KLQorI2luY2x1ZGUgPHd0Zi90ZXh0L0Jhc2U2NC5o
PgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIEZvbnRDdXN0b21QbGF0Zm9ybURhdGE6On5Gb250
Q3VzdG9tUGxhdGZvcm1EYXRhKCkKIHsKLSAgIGNhaXJvX2ZvbnRfZmFjZV9kZXN0cm95KG1fZm9u
dEZhY2UpOworICAgIGlmIChtX2ZvbnRSZWZlcmVuY2UpCisgICAgICAgIFJlbW92ZUZvbnRNZW1S
ZXNvdXJjZUV4KG1fZm9udFJlZmVyZW5jZSk7CiB9CiAKLUZvbnRQbGF0Zm9ybURhdGEgRm9udEN1
c3RvbVBsYXRmb3JtRGF0YTo6Zm9udFBsYXRmb3JtRGF0YShpbnQgc2l6ZSwgYm9vbCBib2xkLCBi
b29sIGl0YWxpYywgRm9udE9yaWVudGF0aW9uLCBGb250V2lkdGhWYXJpYW50LCBGb250UmVuZGVy
aW5nTW9kZSkKK0ZvbnRQbGF0Zm9ybURhdGEgRm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6Zm9udFBs
YXRmb3JtRGF0YShpbnQgc2l6ZSwgYm9vbCBib2xkLCBib29sIGl0YWxpYywgRm9udE9yaWVudGF0
aW9uLCBGb250V2lkdGhWYXJpYW50LCBGb250UmVuZGVyaW5nTW9kZSByZW5kZXJpbmdNb2RlKQog
ewotICAgIHJldHVybiBGb250UGxhdGZvcm1EYXRhKG1fZm9udEZhY2UsIHNpemUsIGJvbGQsIGl0
YWxpYyk7CisgICAgTE9HRk9OVCBsb2dGb250OworICAgIG1lbXNldCgmbG9nRm9udCwgMCwgc2l6
ZW9mKExPR0ZPTlQpKTsKKyAgICB3Y3NuY3B5KGxvZ0ZvbnQubGZGYWNlTmFtZSwgbV9uYW1lLmNo
YXJhY3RlcnNXaXRoTnVsbFRlcm1pbmF0aW9uKCksIExGX0ZBQ0VTSVpFIC0gMSk7CisKKyAgICBs
b2dGb250LmxmSGVpZ2h0ID0gLXNpemU7CisgICAgaWYgKHJlbmRlcmluZ01vZGUgPT0gTm9ybWFs
UmVuZGVyaW5nTW9kZSkKKyAgICAgICAgbG9nRm9udC5sZkhlaWdodCAqPSAzMjsKKyAgICBsb2dG
b250LmxmV2lkdGggPSAwOworICAgIGxvZ0ZvbnQubGZFc2NhcGVtZW50ID0gMDsKKyAgICBsb2dG
b250LmxmT3JpZW50YXRpb24gPSAwOworICAgIGxvZ0ZvbnQubGZVbmRlcmxpbmUgPSBmYWxzZTsK
KyAgICBsb2dGb250LmxmU3RyaWtlT3V0ID0gZmFsc2U7CisgICAgbG9nRm9udC5sZkNoYXJTZXQg
PSBERUZBVUxUX0NIQVJTRVQ7CisgICAgbG9nRm9udC5sZk91dFByZWNpc2lvbiA9IE9VVF9UVF9P
TkxZX1BSRUNJUzsKKyAgICBsb2dGb250LmxmUXVhbGl0eSA9IENMRUFSVFlQRV9RVUFMSVRZOwor
ICAgIGxvZ0ZvbnQubGZQaXRjaEFuZEZhbWlseSA9IERFRkFVTFRfUElUQ0ggfCBGRl9ET05UQ0FS
RTsKKyAgICBsb2dGb250LmxmSXRhbGljID0gaXRhbGljOworICAgIGxvZ0ZvbnQubGZXZWlnaHQg
PSBib2xkID8gNzAwIDogNDAwOworCisgICAgSEZPTlQgaGZvbnQgPSBDcmVhdGVGb250SW5kaXJl
Y3QoJmxvZ0ZvbnQpOworCisgICAgY2Fpcm9fZm9udF9mYWNlX3QqIGZvbnRGYWNlID0gY2Fpcm9f
d2luMzJfZm9udF9mYWNlX2NyZWF0ZV9mb3JfaGZvbnQoaGZvbnQpOworCisgICAgRm9udFBsYXRm
b3JtRGF0YSBmb250UGxhdGZvcm1EYXRhKGhmb250LCBmb250RmFjZSwgc2l6ZSwgYm9sZCwgaXRh
bGljKTsKKworICAgIGNhaXJvX2ZvbnRfZmFjZV9kZXN0cm95KGZvbnRGYWNlKTsKKworICAgIHJl
dHVybiBmb250UGxhdGZvcm1EYXRhOwogfQogCi1zdGF0aWMgdm9pZCByZWxlYXNlRGF0YSh2b2lk
KiBkYXRhKQorc3RhdGljIFN0cmluZyBjcmVhdGVVbmlxdWVGb250TmFtZSgpCiB7Ci0gICAgc3Rh
dGljX2Nhc3Q8U2hhcmVkQnVmZmVyKj4oZGF0YSktPmRlcmVmKCk7CisgICAgR1VJRCBmb250VXVp
ZDsKKyAgICBDb0NyZWF0ZUd1aWQoJmZvbnRVdWlkKTsKKworICAgIFN0cmluZyBmb250TmFtZSA9
IGJhc2U2NEVuY29kZShyZWludGVycHJldF9jYXN0PGNoYXIqPigmZm9udFV1aWQpLCBzaXplb2Yo
Zm9udFV1aWQpKTsKKyAgICBBU1NFUlQoZm9udE5hbWUubGVuZ3RoKCkgPCBMRl9GQUNFU0laRSk7
CisgICAgcmV0dXJuIGZvbnROYW1lOwogfQogCiBGb250Q3VzdG9tUGxhdGZvcm1EYXRhKiBjcmVh
dGVGb250Q3VzdG9tUGxhdGZvcm1EYXRhKFNoYXJlZEJ1ZmZlciogYnVmZmVyKQogewogICAgIEFT
U0VSVF9BUkcoYnVmZmVyLCBidWZmZXIpOwogCi0gICAgYnVmZmVyLT5yZWYoKTsKLSAgICBIRk9O
VCBmb250ID0gcmVpbnRlcnByZXRfY2FzdDxIRk9OVD4oYnVmZmVyKTsKLSAgICBjYWlyb19mb250
X2ZhY2VfdCogZm9udEZhY2UgPSBjYWlyb193aW4zMl9mb250X2ZhY2VfY3JlYXRlX2Zvcl9oZm9u
dChmb250KTsKLSAgICBpZiAoIWZvbnRGYWNlKQotICAgICAgIHJldHVybiAwOworICAgIFN0cmlu
ZyBmb250TmFtZSA9IGNyZWF0ZVVuaXF1ZUZvbnROYW1lKCk7CisgICAgSEFORExFIGZvbnRSZWZl
cmVuY2UgPSByZW5hbWVBbmRBY3RpdmF0ZUZvbnQoYnVmZmVyLCBmb250TmFtZSk7CiAKLSAgICBz
dGF0aWMgY2Fpcm9fdXNlcl9kYXRhX2tleV90IGJ1ZmZlcktleTsKLSAgICBjYWlyb19mb250X2Zh
Y2Vfc2V0X3VzZXJfZGF0YShmb250RmFjZSwgJmJ1ZmZlcktleSwgYnVmZmVyLCByZWxlYXNlRGF0
YSk7CisgICAgaWYgKCFmb250UmVmZXJlbmNlKQorICAgICAgICByZXR1cm4gMDsKIAotICAgIHJl
dHVybiBuZXcgRm9udEN1c3RvbVBsYXRmb3JtRGF0YShmb250RmFjZSk7CisgICAgcmV0dXJuIG5l
dyBGb250Q3VzdG9tUGxhdGZvcm1EYXRhKGZvbnRSZWZlcmVuY2UsIGZvbnROYW1lKTsKIH0KIAog
Ym9vbCBGb250Q3VzdG9tUGxhdGZvcm1EYXRhOjpzdXBwb3J0c0Zvcm1hdChjb25zdCBTdHJpbmcm
IGZvcm1hdCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250
Q3VzdG9tUGxhdGZvcm1EYXRhQ2Fpcm8uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udEN1c3RvbVBsYXRmb3JtRGF0YUNhaXJvLmgJKHJldmlz
aW9uIDE1MTY3NCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250
Q3VzdG9tUGxhdGZvcm1EYXRhQ2Fpcm8uaAkod29ya2luZyBjb3B5KQpAQCAtMSw1NiArMCwwIEBA
Ci0vKgotICogQ29weXJpZ2h0IChDKSAyMDA3IEFwcGxlIENvbXB1dGVyLCBJbmMuCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTAgQnJlbnQgRnVsZ2hhbSA8YmZ1bGdoYW1Ad2Via2l0Lm9yZz4KLSAqCi0g
KiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg
YW5kL29yCi0gKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYwotICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdh
cmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChh
dCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgotICogVGhpcyBsaWJyYXJ5IGlz
IGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiBidXQg
V0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBv
ZgotICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
LiAgU2VlIHRoZSBHTlUKLSAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9y
ZSBkZXRhaWxzLgotICoKLSAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhl
IEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAqIGFsb25nIHdpdGggdGhpcyBs
aWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0gKiB0
aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZp
ZnRoIEZsb29yLAotICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCi0gKgotICovCi0KLSNp
Zm5kZWYgRm9udEN1c3RvbVBsYXRmb3JtRGF0YUNhaXJvX2gKLSNkZWZpbmUgRm9udEN1c3RvbVBs
YXRmb3JtRGF0YUNhaXJvX2gKLQotI2luY2x1ZGUgIkZvbnREZXNjcmlwdGlvbi5oIgotI2luY2x1
ZGUgPHd0Zi9Gb3J3YXJkLmg+Ci0jaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+Ci0KLSNpbmNs
dWRlIDxjYWlyby5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIEZvbnRQbGF0Zm9y
bURhdGE7Ci1jbGFzcyBTaGFyZWRCdWZmZXI7Ci0KLXN0cnVjdCBGb250Q3VzdG9tUGxhdGZvcm1E
YXRhIHsKLSAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShGb250Q3VzdG9tUGxhdGZvcm1EYXRhKTsK
LXB1YmxpYzoKLSAgICBGb250Q3VzdG9tUGxhdGZvcm1EYXRhKGNhaXJvX2ZvbnRfZmFjZV90KiBm
b250RmFjZSkKLSAgICAgICAgOiBtX2ZvbnRGYWNlKGZvbnRGYWNlKQotICAgIHsKLSAgICB9Ci0g
ICAgfkZvbnRDdXN0b21QbGF0Zm9ybURhdGEoKTsKLQotICAgIEZvbnRQbGF0Zm9ybURhdGEgZm9u
dFBsYXRmb3JtRGF0YShpbnQgc2l6ZSwgYm9vbCBib2xkLCBib29sIGl0YWxpYywgRm9udE9yaWVu
dGF0aW9uID0gSG9yaXpvbnRhbCwgRm9udFdpZHRoVmFyaWFudCA9IFJlZ3VsYXJXaWR0aCwgRm9u
dFJlbmRlcmluZ01vZGUgPSBOb3JtYWxSZW5kZXJpbmdNb2RlKTsKLQotICAgIHN0YXRpYyBib29s
IHN1cHBvcnRzRm9ybWF0KGNvbnN0IFN0cmluZyYpOwotCi0gICAgY2Fpcm9fZm9udF9mYWNlX3Qq
IG1fZm9udEZhY2U7Ci19OwotCi1Gb250Q3VzdG9tUGxhdGZvcm1EYXRhKiBjcmVhdGVGb250Q3Vz
dG9tUGxhdGZvcm1EYXRhKFNoYXJlZEJ1ZmZlciopOwotCi19Ci0KLSNlbmRpZgpJbmRleDogU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRQbGF0Zm9ybURhdGFDYWlyb1dp
bi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2lu
L0ZvbnRQbGF0Zm9ybURhdGFDYWlyb1dpbi5jcHAJKHJldmlzaW9uIDE1MTY3NCkKKysrIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250UGxhdGZvcm1EYXRhQ2Fpcm9XaW4u
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC01Niw4ICs1Niw4IEBAIHZvaWQgRm9udFBsYXRmb3JtRGF0
YTo6cGxhdGZvcm1EYXRhSW5pdCgKICAgICBjYWlyb19mb250X2ZhY2VfZGVzdHJveShmb250RmFj
ZSk7CiB9CiAKLUZvbnRQbGF0Zm9ybURhdGE6OkZvbnRQbGF0Zm9ybURhdGEoY2Fpcm9fZm9udF9m
YWNlX3QqIGZvbnRGYWNlLCBmbG9hdCBzaXplLCBib29sIGJvbGQsIGJvb2wgb2JsaXF1ZSkKLSAg
ICA6IG1fZm9udCgwKQorRm9udFBsYXRmb3JtRGF0YTo6Rm9udFBsYXRmb3JtRGF0YShIRk9OVCBm
b250LCBjYWlyb19mb250X2ZhY2VfdCogZm9udEZhY2UsIGZsb2F0IHNpemUsIGJvb2wgYm9sZCwg
Ym9vbCBvYmxpcXVlKQorICAgIDogbV9mb250KFJlZkNvdW50ZWRHRElIYW5kbGU8SEZPTlQ+Ojpj
cmVhdGUoZm9udCkpCiAgICAgLCBtX3NpemUoc2l6ZSkKICAgICAsIG1fb3JpZW50YXRpb24oSG9y
aXpvbnRhbCkKICAgICAsIG1fd2lkdGhWYXJpYW50KFJlZ3VsYXJXaWR0aCkK
</data>

          </attachment>
      

    </bug>

</bugzilla>