<?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>28015</bug_id>
          
          <creation_ts>2009-08-05 01:42:10 -0700</creation_ts>
          <short_desc>[Chromium] @font-face is not supported on Linux</short_desc>
          <delta_ts>2009-08-06 22:39:56 -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>Linux</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>0</everconfirmed>
          <reporter name="Yusuke Sato">yusukes</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>jmalonzo</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>137277</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Sato">yusukes</who>
    <bug_when>2009-08-05 01:42:10 -0700</bug_when>
    <thetext>(copied from http://crbug.com/18490)

Chrome Version: r21365
URLs (if applicable) : http://www.alistapart.com/d/cssatten/poen.html
Behavior in Chrome for Windows (optional): no problem

CSS3 Web font (aka @font-face, dynamic font, or remote font) is not supported on Chromium Linux, even when --enable-remote-fonts command line flag is used.

What steps will reproduce the problem?

1. start chromium for linux with --enable-remote-fonts
2. visit http://www.alistapart.com/d/cssatten/poen.html

What is the expected result?

The page is rendered using web fonts (scrrenshot:http://www.alistapart.com/d/cssatten/poen.png).

What happens instead?

The page is rendered without using web fonts (screenshot: http://www.alistapart.com/d/cssatten/nowf.png).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>137280</commentid>
    <comment_count>1</comment_count>
      <attachid>34125</attachid>
    <who name="Yusuke Sato">yusukes</who>
    <bug_when>2009-08-05 02:20:56 -0700</bug_when>
    <thetext>Created attachment 34125
Proposed fix for 28015

This is Chromium-only change. Can someone review this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>137296</commentid>
    <comment_count>2</comment_count>
    <who name="Jan Alonzo">jmalonzo</who>
    <bug_when>2009-08-05 05:45:12 -0700</bug_when>
    <thetext>(In reply to comment #1)
&gt; Created an attachment (id=34125) [details]
&gt; Proposed fix for 28015
&gt; 
&gt; This is Chromium-only change. Can someone review this?

Just a nit: you should be using PLATFORM(LINUX) instead of defined(__linux__). Someone from Chromium should comment on the rest of the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>137535</commentid>
    <comment_count>3</comment_count>
      <attachid>34203</attachid>
    <who name="Yusuke Sato">yusukes</who>
    <bug_when>2009-08-05 23:45:49 -0700</bug_when>
    <thetext>Created attachment 34203
Proposed fix for 28015 (v2)

Thanks!
Replaced all defined(__linux__)s with PLATFORM(LINUX).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>137540</commentid>
    <comment_count>4</comment_count>
      <attachid>34203</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2009-08-06 00:57:34 -0700</bug_when>
    <thetext>Comment on attachment 34203
Proposed fix for 28015 (v2)

These are only style comments but enough adjustments to r- for now.  

Would you ask someone on the linux team (maybe agl@) to code review this for substance (and put their comments into this bug)?
Then please wait to put your patch up for r? until you get their feedback and address it.

And together with their review, I&apos;ll feel comfortable with this.



&gt; Index: WebCore/platform/graphics/chromium/FontCustomPlatformData.cpp
&gt; +    return FontPlatformData(m_fontReference,
&gt; +                            size,
&gt; +                            bold &amp;&amp; !m_fontReference-&gt;isBold(),
&gt; +                            italic &amp;&amp; !m_fontReference-&gt;isItalic());

There is no line length restriction in WebKit so feel free to unwrap this but only if you think it will read better.

&gt;  #else
&gt;      notImplemented();
&gt;      return FontPlatformData();
&gt; @@ -186,6 +200,51 @@ static String createUniqueFontName()
&gt;  }
&gt;  #endif
&gt;  
&gt; +#if PLATFORM(LINUX)
&gt; +class RemoteFontStream : public SkStream {
&gt; +public:
&gt; +    explicit RemoteFontStream(RefPtr&lt;SharedBuffer&gt; buffer)

Use PassRefPtr instead of RefPtr for parameters.

&gt; +    virtual bool rewind()
&gt; +    {
&gt; +      offset_ = 0;
&gt; +      return true;

indent by 4 spaces. (I think check-webkit-style would catch this.)

&gt; +private:
&gt; +    RefPtr&lt;SharedBuffer&gt; buffer_;
&gt; +    size_t offset_;

  Use m_ for member variables.  Not variable_.

&gt; +#elif PLATFORM(LINUX)
&gt; +    RemoteFontStream stream(buffer);
&gt; +    SkTypeface* tf = SkTypeface::CreateFromStream(&amp;stream);

Use full words for variable names (not &quot;tf&quot;).

&gt; Index: WebCore/platform/graphics/chromium/FontCustomPlatformData.h
&gt;  #define FontCustomPlatformData_h
&gt;  
&gt;  #include &lt;wtf/Noncopyable.h&gt;
&gt; +#include &quot;FontRenderingMode.h&quot;

This include is out of place (check-webkit-style should catch this.)

&gt; +#elif PLATFORM(LINUX)
&gt; +    explicit FontCustomPlatformData(SkTypeface* tf)
&gt; +        : m_fontReference(tf)

Use full words for variable names (not &quot;tf&quot;).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>137546</commentid>
    <comment_count>5</comment_count>
    <who name="Yusuke Sato">yusukes</who>
    <bug_when>2009-08-06 01:26:52 -0700</bug_when>
    <thetext>Thanks for your comment. I&apos;ve asked Adam to review this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>137599</commentid>
    <comment_count>6</comment_count>
      <attachid>34203</attachid>
    <who name="Adam Langley">agl</who>
    <bug_when>2009-08-06 10:54:02 -0700</bug_when>
    <thetext>Comment on attachment 34203
Proposed fix for 28015 (v2)

I&apos;m not a WebKit reviewer, so I can&apos;t r+, but here are my comments:


&gt; +        This is chromium-only change. Support @font-face on Chromium Linux.

Change to: Chromium Linux: add support for @font-face

&gt; +        https://bugs.webkit.org/show_bug.cgi?id=28015

&gt; +    virtual size_t read(void* buffer, size_t size)

The return type of this function is obviously wrong, but I see that it&apos;s wrong in Skia, so not your fault.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>137641</commentid>
    <comment_count>7</comment_count>
      <attachid>34203</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2009-08-06 13:43:10 -0700</bug_when>
    <thetext>Comment on attachment 34203
Proposed fix for 28015 (v2)

Need a new patch that addresses the comments by myself and agl.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>137768</commentid>
    <comment_count>8</comment_count>
      <attachid>34247</attachid>
    <who name="Yusuke Sato">yusukes</who>
    <bug_when>2009-08-06 20:46:18 -0700</bug_when>
    <thetext>Created attachment 34247
patch v3

Thanks, Adam.
I&apos;ve addressed all the comments. Please take another look.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>137798</commentid>
    <comment_count>9</comment_count>
      <attachid>34247</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-08-06 22:39:52 -0700</bug_when>
    <thetext>Comment on attachment 34247
patch v3

Clearing review flag on attachment: 34247

Committing to http://svn.webkit.org/repository/webkit/trunk ...
	M	WebCore/ChangeLog
	M	WebCore/loader/CachedFont.cpp
	M	WebCore/platform/graphics/chromium/FontCustomPlatformData.cpp
	M	WebCore/platform/graphics/chromium/FontCustomPlatformData.h
Committed r46885
	M	WebCore/ChangeLog
	M	WebCore/platform/graphics/chromium/FontCustomPlatformData.cpp
	M	WebCore/platform/graphics/chromium/FontCustomPlatformData.h
	M	WebCore/loader/CachedFont.cpp
r46885 = 618c2493a3020689c5bfa898bd3f97ab75262c58 (trunk)
No changes between current HEAD and refs/remotes/trunk
Resetting to the latest refs/remotes/trunk
http://trac.webkit.org/changeset/46885</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>137799</commentid>
    <comment_count>10</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-08-06 22:39:56 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>34125</attachid>
            <date>2009-08-05 02:20:56 -0700</date>
            <delta_ts>2009-08-05 23:45:49 -0700</delta_ts>
            <desc>Proposed fix for 28015</desc>
            <filename>chromium_linux_font_face_v1.patch</filename>
            <type>text/plain</type>
            <size>8109</size>
            <attacher name="Yusuke Sato">yusukes</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0Njc5NikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzcgQEAKKzIwMDktMDgtMDUgIFl1c3VrZSBTYXRvICA8eXVzdWtlc0BjaHJvbWl1
bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VGhpcyBpcyBjaHJvbWl1bS1vbmx5IGNoYW5nZS4gU3VwcG9ydCBAZm9udC1mYWNlIG9uIENocm9t
aXVtIExpbnV4LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjgwMTUKKyAgICAgICAgCisgICAgICAgICogbG9hZGVyL0NhY2hlZEZvbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Q2FjaGVkRm9udDo6fkNhY2hlZEZvbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6Q2FjaGVkRm9udDo6ZW5zdXJlQ3VzdG9tRm9udERhdGEpOgorICAgICAgICAoV2ViQ29yZTo6
Q2FjaGVkRm9udDo6cGxhdGZvcm1EYXRhRnJvbUN1c3RvbURhdGEpOgorICAgICAgICAoV2ViQ29y
ZTo6Q2FjaGVkRm9udDo6YWxsQ2xpZW50c1JlbW92ZWQpOgorCisgICAgICAgIE1vZGlmaWVkICNp
ZmRlZnMgc28gdGhhdCBjaHJvbWl1bSBsaW51eCBjYW4gbG9hZCByZW1vdGUgZm9udHMuCisgICAg
ICAgIAorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ZvbnRDdXN0b21QbGF0
Zm9ybURhdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6
fkZvbnRDdXN0b21QbGF0Zm9ybURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6Rm9udEN1c3RvbVBs
YXRmb3JtRGF0YTo6Zm9udFBsYXRmb3JtRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVG
b250Q3VzdG9tUGxhdGZvcm1EYXRhKToKKworICAgICAgICBDcmVhdGUgU2tUeXBlZmFjZSBmb3Ig
YSB3ZWIgZm9udCBieSBjYWxsaW5nIFNrVHlwZWZhY2U6OkNyZWF0ZUZyb21TdHJlYW0gZnVuY3Rp
b24uCisgICAgICAgIAorICAgICAgICAoV2ViQ29yZTo6UmVtb3RlRm9udFN0cmVhbTo6UmVtb3Rl
Rm9udFN0cmVhbSk6CisgICAgICAgIChXZWJDb3JlOjpSZW1vdGVGb250U3RyZWFtOjp+UmVtb3Rl
Rm9udFN0cmVhbSk6CisgICAgICAgIChXZWJDb3JlOjpSZW1vdGVGb250U3RyZWFtOjpyZXdpbmQp
OgorICAgICAgICAoV2ViQ29yZTo6UmVtb3RlRm9udFN0cmVhbTo6cmVhZCk6CisKKyAgICAgICAg
TmV3IGNsYXNzIHRoYXQgaW1wbGVtZW50cyBTa1N0cmVhbSBpbnRlcmZhY2UgYW5kIHdyYXBzIHd0
ZidzIFNoYXJlZEJ1ZmZlci4KKyAgICAgICAgCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5oOgorICAgICAgICAoV2ViQ29yZTo6Rm9u
dEN1c3RvbVBsYXRmb3JtRGF0YTo6Rm9udEN1c3RvbVBsYXRmb3JtRGF0YSk6CisKKyAgICAgICAg
QWRkZWQgbWVtYmVyIHZhcmlhYmxlcyBmb3IgTGludXguCisgICAgICAgIAogMjAwOS0wOC0wNCAg
U2ltb24gSGF1c21hbm4gIDxoYXVzbWFubkB3ZWJraXQub3JnPgogCiAgICAgICAgIFByb3NwZWN0
aXZlIGJ1aWxkIGZpeCBmb3IgUXQgYnVpbGQgYm90OiBGaXggZGVwZW5kZW5jeSBvZiBIVE1MTmFt
ZXMuY3BwCkluZGV4OiBXZWJDb3JlL2xvYWRlci9DYWNoZWRGb250LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL2xvYWRlci9DYWNoZWRGb250LmNwcAkocmV2aXNpb24gNDY3OTUpCisrKyBXZWJD
b3JlL2xvYWRlci9DYWNoZWRGb250LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzEsNyArMzEsNyBA
QAogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlQ2xpZW50V2Fsa2VyLmgiCiAjaW5jbHVkZSAiRE9N
SW1wbGVtZW50YXRpb24uaCIKICNpbmNsdWRlICJGb250UGxhdGZvcm1EYXRhLmgiCi0jaWYgUExB
VEZPUk0oQ0cpIHx8IFBMQVRGT1JNKFFUKSB8fCBQTEFURk9STShHVEspIHx8IChQTEFURk9STShD
SFJPTUlVTSkgJiYgUExBVEZPUk0oV0lOX09TKSkKKyNpZiBQTEFURk9STShDRykgfHwgUExBVEZP
Uk0oUVQpIHx8IFBMQVRGT1JNKEdUSykgfHwgKFBMQVRGT1JNKENIUk9NSVVNKSAmJiAoUExBVEZP
Uk0oV0lOX09TKSB8fCBkZWZpbmVkKF9fbGludXhfXykpKQogI2luY2x1ZGUgIkZvbnRDdXN0b21Q
bGF0Zm9ybURhdGEuaCIKICNlbmRpZgogI2luY2x1ZGUgIlRleHRSZXNvdXJjZURlY29kZXIuaCIK
QEAgLTYwLDcgKzYwLDcgQEAgQ2FjaGVkRm9udDo6Q2FjaGVkRm9udChjb25zdCBTdHJpbmcgJnVy
bAogCiBDYWNoZWRGb250Ojp+Q2FjaGVkRm9udCgpCiB7Ci0jaWYgUExBVEZPUk0oQ0cpIHx8IFBM
QVRGT1JNKFFUKSB8fCBQTEFURk9STShHVEspIHx8IChQTEFURk9STShDSFJPTUlVTSkgJiYgUExB
VEZPUk0oV0lOX09TKSkKKyNpZiBQTEFURk9STShDRykgfHwgUExBVEZPUk0oUVQpIHx8IFBMQVRG
T1JNKEdUSykgfHwgKFBMQVRGT1JNKENIUk9NSVVNKSAmJiAoUExBVEZPUk0oV0lOX09TKSB8fCBk
ZWZpbmVkKF9fbGludXhfXykpKQogICAgIGRlbGV0ZSBtX2ZvbnREYXRhOwogI2VuZGlmCiB9CkBA
IC05OCw3ICs5OCw3IEBAIHZvaWQgQ2FjaGVkRm9udDo6YmVnaW5Mb2FkSWZOZWVkZWQoRG9jTG8K
IAogYm9vbCBDYWNoZWRGb250OjplbnN1cmVDdXN0b21Gb250RGF0YSgpCiB7Ci0jaWYgUExBVEZP
Uk0oQ0cpIHx8IFBMQVRGT1JNKFFUKSB8fCBQTEFURk9STShHVEspIHx8IChQTEFURk9STShDSFJP
TUlVTSkgJiYgUExBVEZPUk0oV0lOX09TKSkKKyNpZiBQTEFURk9STShDRykgfHwgUExBVEZPUk0o
UVQpIHx8IFBMQVRGT1JNKEdUSykgfHwgKFBMQVRGT1JNKENIUk9NSVVNKSAmJiAoUExBVEZPUk0o
V0lOX09TKSB8fCBkZWZpbmVkKF9fbGludXhfXykpKQogI2lmIEVOQUJMRShTVkdfRk9OVFMpCiAg
ICAgQVNTRVJUKCFtX2lzU1ZHRm9udCk7CiAjZW5kaWYKQEAgLTExNyw3ICsxMTcsNyBAQCBGb250
UGxhdGZvcm1EYXRhIENhY2hlZEZvbnQ6OnBsYXRmb3JtRGF0CiAgICAgaWYgKG1fZXh0ZXJuYWxT
VkdEb2N1bWVudCkKICAgICAgICAgcmV0dXJuIEZvbnRQbGF0Zm9ybURhdGEoc2l6ZSwgYm9sZCwg
aXRhbGljKTsKICNlbmRpZgotI2lmIFBMQVRGT1JNKENHKSB8fCBQTEFURk9STShRVCkgfHwgUExB
VEZPUk0oR1RLKSB8fCAoUExBVEZPUk0oQ0hST01JVU0pICYmIFBMQVRGT1JNKFdJTl9PUykpCisj
aWYgUExBVEZPUk0oQ0cpIHx8IFBMQVRGT1JNKFFUKSB8fCBQTEFURk9STShHVEspIHx8IChQTEFU
Rk9STShDSFJPTUlVTSkgJiYgKFBMQVRGT1JNKFdJTl9PUykgfHwgZGVmaW5lZChfX2xpbnV4X18p
KSkKICAgICBBU1NFUlQobV9mb250RGF0YSk7CiAgICAgcmV0dXJuIG1fZm9udERhdGEtPmZvbnRQ
bGF0Zm9ybURhdGEoc3RhdGljX2Nhc3Q8aW50PihzaXplKSwgYm9sZCwgaXRhbGljLCByZW5kZXJp
bmdNb2RlKTsKICNlbHNlCkBAIC0xNzMsNyArMTczLDcgQEAgU1ZHRm9udEVsZW1lbnQqIENhY2hl
ZEZvbnQ6OmdldFNWR0ZvbnRCeQogCiB2b2lkIENhY2hlZEZvbnQ6OmFsbENsaWVudHNSZW1vdmVk
KCkKIHsKLSNpZiBQTEFURk9STShDRykgfHwgUExBVEZPUk0oUVQpIHx8IFBMQVRGT1JNKEdUSykg
fHwgKFBMQVRGT1JNKENIUk9NSVVNKSAmJiBQTEFURk9STShXSU5fT1MpKQorI2lmIFBMQVRGT1JN
KENHKSB8fCBQTEFURk9STShRVCkgfHwgUExBVEZPUk0oR1RLKSB8fCAoUExBVEZPUk0oQ0hST01J
VU0pICYmIChQTEFURk9STShXSU5fT1MpIHx8IGRlZmluZWQoX19saW51eF9fKSkpCiAgICAgaWYg
KG1fZm9udERhdGEpIHsKICAgICAgICAgZGVsZXRlIG1fZm9udERhdGE7CiAgICAgICAgIG1fZm9u
dERhdGEgPSAwOwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Gb250
Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuY3BwCShyZXZpc2lvbiA0Njc5
NSkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vRm9udEN1c3RvbVBsYXRm
b3JtRGF0YS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM2LDYgKzM2LDggQEAKICNpbmNsdWRlICJC
YXNlNjQuaCIKICNpbmNsdWRlICJDaHJvbWl1bUJyaWRnZS5oIgogI2luY2x1ZGUgIk9wZW5UeXBl
VXRpbGl0aWVzLmgiCisjZWxpZiBkZWZpbmVkKF9fbGludXhfXykKKyNpbmNsdWRlICJTa1N0cmVh
bS5oIgogI2VuZGlmCiAKICNpbmNsdWRlICJGb250UGxhdGZvcm1EYXRhLmgiCkBAIC00Niw2ICs0
OCw4IEBACiAjaW5jbHVkZSA8b2JqYmFzZS5oPgogI2luY2x1ZGUgPHQyZW1iYXBpLmg+CiAjcHJh
Z21hIGNvbW1lbnQobGliLCAidDJlbWJlZCIpCisjZWxpZiBkZWZpbmVkKF9fbGludXhfXykKKyNp
bmNsdWRlIDxjc3RyaW5nPgogI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTYwLDYg
KzY0LDkgQEAgRm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6fkZvbnRDdXN0b21QbGF0ZgogICAgICAg
ICB9IGVsc2UKICAgICAgICAgICAgIFJlbW92ZUZvbnRNZW1SZXNvdXJjZUV4KG1fZm9udFJlZmVy
ZW5jZSk7CiAgICAgfQorI2VsaWYgZGVmaW5lZChfX2xpbnV4X18pCisgICAgaWYgKG1fZm9udFJl
ZmVyZW5jZSkKKyAgICAgICAgbV9mb250UmVmZXJlbmNlLT51bnJlZigpOwogI2VuZGlmCiB9CiAK
QEAgLTEwMiw2ICsxMDksMTMgQEAgRm9udFBsYXRmb3JtRGF0YSBGb250Q3VzdG9tUGxhdGZvcm1E
YXRhOgogCiAgICAgSEZPTlQgaGZvbnQgPSBDcmVhdGVGb250SW5kaXJlY3QoJmxvZ0ZvbnQpOwog
ICAgIHJldHVybiBGb250UGxhdGZvcm1EYXRhKGhmb250LCBzaXplKTsKKyNlbGlmIGRlZmluZWQo
X19saW51eF9fKQorICAgIEFTU0VSVChtX2ZvbnRSZWZlcmVuY2UpOworCisgICAgcmV0dXJuIEZv
bnRQbGF0Zm9ybURhdGEobV9mb250UmVmZXJlbmNlLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHNpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9sZCAmJiAhbV9mb250UmVm
ZXJlbmNlLT5pc0JvbGQoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGFsaWMgJiYg
IW1fZm9udFJlZmVyZW5jZS0+aXNJdGFsaWMoKSk7CiAjZWxzZQogICAgIG5vdEltcGxlbWVudGVk
KCk7CiAgICAgcmV0dXJuIEZvbnRQbGF0Zm9ybURhdGEoKTsKQEAgLTE4Niw2ICsyMDAsNTEgQEAg
c3RhdGljIFN0cmluZyBjcmVhdGVVbmlxdWVGb250TmFtZSgpCiB9CiAjZW5kaWYKIAorI2lmIGRl
ZmluZWQoX19saW51eF9fKQorY2xhc3MgUmVtb3RlRm9udFN0cmVhbSA6IHB1YmxpYyBTa1N0cmVh
bSB7CitwdWJsaWM6CisgICAgZXhwbGljaXQgUmVtb3RlRm9udFN0cmVhbShSZWZQdHI8U2hhcmVk
QnVmZmVyPiBidWZmZXIpCisgICAgICAgIDogYnVmZmVyXyhidWZmZXIpCisgICAgICAgICwgb2Zm
c2V0XygwKQorICAgIHsKKyAgICB9CisKKyAgICB2aXJ0dWFsIH5SZW1vdGVGb250U3RyZWFtKCkK
KyAgICB7CisgICAgfQorCisgICAgdmlydHVhbCBib29sIHJld2luZCgpCisgICAgeworICAgICAg
b2Zmc2V0XyA9IDA7CisgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICB2aXJ0dWFsIHNp
emVfdCByZWFkKHZvaWQqIGJ1ZmZlciwgc2l6ZV90IHNpemUpCisgICAgeworICAgICAgICBpZiAo
IWJ1ZmZlciAmJiAhc2l6ZSkgeworICAgICAgICAgICAgLy8gVGhpcyBpcyByZXF1ZXN0IGZvciB0
aGUgbGVuZ3RoIG9mIHRoZSBzdHJlYW0uCisgICAgICAgICAgICByZXR1cm4gYnVmZmVyXy0+c2l6
ZSgpOworICAgICAgICB9CisgICAgICAgIGlmICghYnVmZmVyKSB7CisgICAgICAgICAgICAvLyBU
aGlzIGlzIGEgcmVxdWVzdCB0byBza2lwIGJ5dGVzLiBUaGlzIG9wZXJhdGlvbiBpcyBub3Qgc3Vw
cG9ydGVkLgorICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0KKyAgICAgICAgLy8gVGhp
cyBpcyBhIHJlcXVlc3QgdG8gcmVhZCBieXRlcy4KKyAgICAgICAgaWYgKCFidWZmZXJfLT5kYXRh
KCkgfHwgIWJ1ZmZlcl8tPnNpemUoKSkKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICBz
aXplX3QgbGVmdCA9IGJ1ZmZlcl8tPnNpemUoKSAtIG9mZnNldF87CisgICAgICAgIHNpemVfdCB0
b1JlYWQgPSAobGVmdCA+IHNpemUpID8gc2l6ZSA6IGxlZnQ7CisgICAgICAgIHN0ZDo6bWVtY3B5
KGJ1ZmZlciwgYnVmZmVyXy0+ZGF0YSgpICsgb2Zmc2V0XywgdG9SZWFkKTsKKyAgICAgICAgb2Zm
c2V0XyArPSB0b1JlYWQ7CisgICAgICAgIHJldHVybiB0b1JlYWQ7CisgICAgfQorCitwcml2YXRl
OgorICAgIFJlZlB0cjxTaGFyZWRCdWZmZXI+IGJ1ZmZlcl87CisgICAgc2l6ZV90IG9mZnNldF87
Cit9OworI2VuZGlmCisKIEZvbnRDdXN0b21QbGF0Zm9ybURhdGEqIGNyZWF0ZUZvbnRDdXN0b21Q
bGF0Zm9ybURhdGEoU2hhcmVkQnVmZmVyKiBidWZmZXIpCiB7CiAgICAgQVNTRVJUX0FSRyhidWZm
ZXIsIGJ1ZmZlcik7CkBAIC0yMjMsNiArMjgyLDEyIEBAIEZvbnRDdXN0b21QbGF0Zm9ybURhdGEq
IGNyZWF0ZUZvbnRDdXN0b20KICAgICB9CiAKICAgICByZXR1cm4gbmV3IEZvbnRDdXN0b21QbGF0
Zm9ybURhdGEoZm9udFJlZmVyZW5jZSwgZm9udE5hbWUpOworI2VsaWYgZGVmaW5lZChfX2xpbnV4
X18pCisgICAgUmVtb3RlRm9udFN0cmVhbSBzdHJlYW0oYnVmZmVyKTsKKyAgICBTa1R5cGVmYWNl
KiB0ZiA9IFNrVHlwZWZhY2U6OkNyZWF0ZUZyb21TdHJlYW0oJnN0cmVhbSk7CisgICAgaWYgKCF0
ZikKKyAgICAgICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIG5ldyBGb250Q3VzdG9tUGxhdGZvcm1E
YXRhKHRmKTsKICNlbHNlCiAgICAgbm90SW1wbGVtZW50ZWQoKTs7CiAgICAgcmV0dXJuIDA7Cklu
ZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ZvbnRDdXN0b21QbGF0Zm9y
bURhdGEuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuaAkocmV2aXNpb24gNDY3OTUpCisrKyBXZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMzMsMTEgKzMzLDEzIEBACiAjZGVmaW5lIEZvbnRDdXN0b21QbGF0Zm9ybURh
dGFfaAogCiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CisjaW5jbHVkZSAiRm9udFJlbmRl
cmluZ01vZGUuaCIKIAogI2lmIFBMQVRGT1JNKFdJTl9PUykKLSNpbmNsdWRlICJGb250UmVuZGVy
aW5nTW9kZS5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCiAjaW5jbHVkZSA8d2luZG93
cy5oPgorI2VsaWYgZGVmaW5lZChfX2xpbnV4X18pCisjaW5jbHVkZSAiU2tUeXBlZmFjZS5oIgog
I2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTUxLDYgKzUzLDEwIEBAIHN0cnVjdCBG
b250Q3VzdG9tUGxhdGZvcm1EYXRhIDogTm9uY29weWEKICAgICAgICAgOiBtX2ZvbnRSZWZlcmVu
Y2UoZm9udFJlZmVyZW5jZSkKICAgICAgICAgLCBtX25hbWUobmFtZSkKICAgICB7fQorI2VsaWYg
ZGVmaW5lZChfX2xpbnV4X18pCisgICAgZXhwbGljaXQgRm9udEN1c3RvbVBsYXRmb3JtRGF0YShT
a1R5cGVmYWNlKiB0ZikKKyAgICAgICAgOiBtX2ZvbnRSZWZlcmVuY2UodGYpCisgICAge30KICNl
bmRpZgogCiAgICAgfkZvbnRDdXN0b21QbGF0Zm9ybURhdGEoKTsKQEAgLTYxLDYgKzY3LDggQEAg
c3RydWN0IEZvbnRDdXN0b21QbGF0Zm9ybURhdGEgOiBOb25jb3B5YQogI2lmIFBMQVRGT1JNKFdJ
Tl9PUykKICAgICBIQU5ETEUgbV9mb250UmVmZXJlbmNlOwogICAgIFN0cmluZyBtX25hbWU7Cisj
ZWxpZiBkZWZpbmVkKF9fbGludXhfXykKKyAgICBTa1R5cGVmYWNlKiBtX2ZvbnRSZWZlcmVuY2U7
CiAjZW5kaWYKIH07CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>34203</attachid>
            <date>2009-08-05 23:45:49 -0700</date>
            <delta_ts>2009-08-06 20:46:18 -0700</delta_ts>
            <desc>Proposed fix for 28015 (v2)</desc>
            <filename>remote_font_webcore_v2.patch</filename>
            <type>text/plain</type>
            <size>8067</size>
            <attacher name="Yusuke Sato">yusukes</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0Njc5NikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzcgQEAKKzIwMDktMDgtMDUgIFl1c3VrZSBTYXRvICA8eXVzdWtlc0BjaHJvbWl1
bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VGhpcyBpcyBjaHJvbWl1bS1vbmx5IGNoYW5nZS4gU3VwcG9ydCBAZm9udC1mYWNlIG9uIENocm9t
aXVtIExpbnV4LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjgwMTUKKyAgICAgICAgCisgICAgICAgICogbG9hZGVyL0NhY2hlZEZvbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Q2FjaGVkRm9udDo6fkNhY2hlZEZvbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6Q2FjaGVkRm9udDo6ZW5zdXJlQ3VzdG9tRm9udERhdGEpOgorICAgICAgICAoV2ViQ29yZTo6
Q2FjaGVkRm9udDo6cGxhdGZvcm1EYXRhRnJvbUN1c3RvbURhdGEpOgorICAgICAgICAoV2ViQ29y
ZTo6Q2FjaGVkRm9udDo6YWxsQ2xpZW50c1JlbW92ZWQpOgorCisgICAgICAgIE1vZGlmaWVkICNp
ZmRlZnMgc28gdGhhdCBjaHJvbWl1bSBsaW51eCBjYW4gbG9hZCByZW1vdGUgZm9udHMuCisgICAg
ICAgIAorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ZvbnRDdXN0b21QbGF0
Zm9ybURhdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6
fkZvbnRDdXN0b21QbGF0Zm9ybURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6Rm9udEN1c3RvbVBs
YXRmb3JtRGF0YTo6Zm9udFBsYXRmb3JtRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVG
b250Q3VzdG9tUGxhdGZvcm1EYXRhKToKKworICAgICAgICBDcmVhdGUgU2tUeXBlZmFjZSBmb3Ig
YSB3ZWIgZm9udCBieSBjYWxsaW5nIFNrVHlwZWZhY2U6OkNyZWF0ZUZyb21TdHJlYW0gZnVuY3Rp
b24uCisgICAgICAgIAorICAgICAgICAoV2ViQ29yZTo6UmVtb3RlRm9udFN0cmVhbTo6UmVtb3Rl
Rm9udFN0cmVhbSk6CisgICAgICAgIChXZWJDb3JlOjpSZW1vdGVGb250U3RyZWFtOjp+UmVtb3Rl
Rm9udFN0cmVhbSk6CisgICAgICAgIChXZWJDb3JlOjpSZW1vdGVGb250U3RyZWFtOjpyZXdpbmQp
OgorICAgICAgICAoV2ViQ29yZTo6UmVtb3RlRm9udFN0cmVhbTo6cmVhZCk6CisKKyAgICAgICAg
TmV3IGNsYXNzIHRoYXQgaW1wbGVtZW50cyBTa1N0cmVhbSBpbnRlcmZhY2UgYW5kIHdyYXBzIHd0
ZidzIFNoYXJlZEJ1ZmZlci4KKyAgICAgICAgCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5oOgorICAgICAgICAoV2ViQ29yZTo6Rm9u
dEN1c3RvbVBsYXRmb3JtRGF0YTo6Rm9udEN1c3RvbVBsYXRmb3JtRGF0YSk6CisKKyAgICAgICAg
QWRkZWQgbWVtYmVyIHZhcmlhYmxlcyBmb3IgTGludXguCisgICAgICAgIAogMjAwOS0wOC0wNCAg
U2ltb24gSGF1c21hbm4gIDxoYXVzbWFubkB3ZWJraXQub3JnPgogCiAgICAgICAgIFByb3NwZWN0
aXZlIGJ1aWxkIGZpeCBmb3IgUXQgYnVpbGQgYm90OiBGaXggZGVwZW5kZW5jeSBvZiBIVE1MTmFt
ZXMuY3BwCkluZGV4OiBXZWJDb3JlL2xvYWRlci9DYWNoZWRGb250LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL2xvYWRlci9DYWNoZWRGb250LmNwcAkocmV2aXNpb24gNDY3OTUpCisrKyBXZWJD
b3JlL2xvYWRlci9DYWNoZWRGb250LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzEsNyArMzEsNyBA
QAogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlQ2xpZW50V2Fsa2VyLmgiCiAjaW5jbHVkZSAiRE9N
SW1wbGVtZW50YXRpb24uaCIKICNpbmNsdWRlICJGb250UGxhdGZvcm1EYXRhLmgiCi0jaWYgUExB
VEZPUk0oQ0cpIHx8IFBMQVRGT1JNKFFUKSB8fCBQTEFURk9STShHVEspIHx8IChQTEFURk9STShD
SFJPTUlVTSkgJiYgUExBVEZPUk0oV0lOX09TKSkKKyNpZiBQTEFURk9STShDRykgfHwgUExBVEZP
Uk0oUVQpIHx8IFBMQVRGT1JNKEdUSykgfHwgKFBMQVRGT1JNKENIUk9NSVVNKSAmJiAoUExBVEZP
Uk0oV0lOX09TKSB8fCBQTEFURk9STShMSU5VWCkpKQogI2luY2x1ZGUgIkZvbnRDdXN0b21QbGF0
Zm9ybURhdGEuaCIKICNlbmRpZgogI2luY2x1ZGUgIlRleHRSZXNvdXJjZURlY29kZXIuaCIKQEAg
LTYwLDcgKzYwLDcgQEAgQ2FjaGVkRm9udDo6Q2FjaGVkRm9udChjb25zdCBTdHJpbmcgJnVybAog
CiBDYWNoZWRGb250Ojp+Q2FjaGVkRm9udCgpCiB7Ci0jaWYgUExBVEZPUk0oQ0cpIHx8IFBMQVRG
T1JNKFFUKSB8fCBQTEFURk9STShHVEspIHx8IChQTEFURk9STShDSFJPTUlVTSkgJiYgUExBVEZP
Uk0oV0lOX09TKSkKKyNpZiBQTEFURk9STShDRykgfHwgUExBVEZPUk0oUVQpIHx8IFBMQVRGT1JN
KEdUSykgfHwgKFBMQVRGT1JNKENIUk9NSVVNKSAmJiAoUExBVEZPUk0oV0lOX09TKSB8fCBQTEFU
Rk9STShMSU5VWCkpKQogICAgIGRlbGV0ZSBtX2ZvbnREYXRhOwogI2VuZGlmCiB9CkBAIC05OCw3
ICs5OCw3IEBAIHZvaWQgQ2FjaGVkRm9udDo6YmVnaW5Mb2FkSWZOZWVkZWQoRG9jTG8KIAogYm9v
bCBDYWNoZWRGb250OjplbnN1cmVDdXN0b21Gb250RGF0YSgpCiB7Ci0jaWYgUExBVEZPUk0oQ0cp
IHx8IFBMQVRGT1JNKFFUKSB8fCBQTEFURk9STShHVEspIHx8IChQTEFURk9STShDSFJPTUlVTSkg
JiYgUExBVEZPUk0oV0lOX09TKSkKKyNpZiBQTEFURk9STShDRykgfHwgUExBVEZPUk0oUVQpIHx8
IFBMQVRGT1JNKEdUSykgfHwgKFBMQVRGT1JNKENIUk9NSVVNKSAmJiAoUExBVEZPUk0oV0lOX09T
KSB8fCBQTEFURk9STShMSU5VWCkpKQogI2lmIEVOQUJMRShTVkdfRk9OVFMpCiAgICAgQVNTRVJU
KCFtX2lzU1ZHRm9udCk7CiAjZW5kaWYKQEAgLTExNyw3ICsxMTcsNyBAQCBGb250UGxhdGZvcm1E
YXRhIENhY2hlZEZvbnQ6OnBsYXRmb3JtRGF0CiAgICAgaWYgKG1fZXh0ZXJuYWxTVkdEb2N1bWVu
dCkKICAgICAgICAgcmV0dXJuIEZvbnRQbGF0Zm9ybURhdGEoc2l6ZSwgYm9sZCwgaXRhbGljKTsK
ICNlbmRpZgotI2lmIFBMQVRGT1JNKENHKSB8fCBQTEFURk9STShRVCkgfHwgUExBVEZPUk0oR1RL
KSB8fCAoUExBVEZPUk0oQ0hST01JVU0pICYmIFBMQVRGT1JNKFdJTl9PUykpCisjaWYgUExBVEZP
Uk0oQ0cpIHx8IFBMQVRGT1JNKFFUKSB8fCBQTEFURk9STShHVEspIHx8IChQTEFURk9STShDSFJP
TUlVTSkgJiYgKFBMQVRGT1JNKFdJTl9PUykgfHwgUExBVEZPUk0oTElOVVgpKSkKICAgICBBU1NF
UlQobV9mb250RGF0YSk7CiAgICAgcmV0dXJuIG1fZm9udERhdGEtPmZvbnRQbGF0Zm9ybURhdGEo
c3RhdGljX2Nhc3Q8aW50PihzaXplKSwgYm9sZCwgaXRhbGljLCByZW5kZXJpbmdNb2RlKTsKICNl
bHNlCkBAIC0xNzMsNyArMTczLDcgQEAgU1ZHRm9udEVsZW1lbnQqIENhY2hlZEZvbnQ6OmdldFNW
R0ZvbnRCeQogCiB2b2lkIENhY2hlZEZvbnQ6OmFsbENsaWVudHNSZW1vdmVkKCkKIHsKLSNpZiBQ
TEFURk9STShDRykgfHwgUExBVEZPUk0oUVQpIHx8IFBMQVRGT1JNKEdUSykgfHwgKFBMQVRGT1JN
KENIUk9NSVVNKSAmJiBQTEFURk9STShXSU5fT1MpKQorI2lmIFBMQVRGT1JNKENHKSB8fCBQTEFU
Rk9STShRVCkgfHwgUExBVEZPUk0oR1RLKSB8fCAoUExBVEZPUk0oQ0hST01JVU0pICYmIChQTEFU
Rk9STShXSU5fT1MpIHx8IFBMQVRGT1JNKExJTlVYKSkpCiAgICAgaWYgKG1fZm9udERhdGEpIHsK
ICAgICAgICAgZGVsZXRlIG1fZm9udERhdGE7CiAgICAgICAgIG1fZm9udERhdGEgPSAwOwpJbmRl
eDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Gb250Q3VzdG9tUGxhdGZvcm1E
YXRhLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuY3BwCShyZXZpc2lvbiA0Njc5NSkKKysrIFdlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTM2LDYgKzM2LDggQEAKICNpbmNsdWRlICJCYXNlNjQuaCIKICNpbmNs
dWRlICJDaHJvbWl1bUJyaWRnZS5oIgogI2luY2x1ZGUgIk9wZW5UeXBlVXRpbGl0aWVzLmgiCisj
ZWxpZiBQTEFURk9STShMSU5VWCkKKyNpbmNsdWRlICJTa1N0cmVhbS5oIgogI2VuZGlmCiAKICNp
bmNsdWRlICJGb250UGxhdGZvcm1EYXRhLmgiCkBAIC00Niw2ICs0OCw4IEBACiAjaW5jbHVkZSA8
b2JqYmFzZS5oPgogI2luY2x1ZGUgPHQyZW1iYXBpLmg+CiAjcHJhZ21hIGNvbW1lbnQobGliLCAi
dDJlbWJlZCIpCisjZWxpZiBQTEFURk9STShMSU5VWCkKKyNpbmNsdWRlIDxjc3RyaW5nPgogI2Vu
ZGlmCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTYwLDYgKzY0LDkgQEAgRm9udEN1c3RvbVBs
YXRmb3JtRGF0YTo6fkZvbnRDdXN0b21QbGF0ZgogICAgICAgICB9IGVsc2UKICAgICAgICAgICAg
IFJlbW92ZUZvbnRNZW1SZXNvdXJjZUV4KG1fZm9udFJlZmVyZW5jZSk7CiAgICAgfQorI2VsaWYg
UExBVEZPUk0oTElOVVgpCisgICAgaWYgKG1fZm9udFJlZmVyZW5jZSkKKyAgICAgICAgbV9mb250
UmVmZXJlbmNlLT51bnJlZigpOwogI2VuZGlmCiB9CiAKQEAgLTEwMiw2ICsxMDksMTMgQEAgRm9u
dFBsYXRmb3JtRGF0YSBGb250Q3VzdG9tUGxhdGZvcm1EYXRhOgogCiAgICAgSEZPTlQgaGZvbnQg
PSBDcmVhdGVGb250SW5kaXJlY3QoJmxvZ0ZvbnQpOwogICAgIHJldHVybiBGb250UGxhdGZvcm1E
YXRhKGhmb250LCBzaXplKTsKKyNlbGlmIFBMQVRGT1JNKExJTlVYKQorICAgIEFTU0VSVChtX2Zv
bnRSZWZlcmVuY2UpOworCisgICAgcmV0dXJuIEZvbnRQbGF0Zm9ybURhdGEobV9mb250UmVmZXJl
bmNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemUsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgYm9sZCAmJiAhbV9mb250UmVmZXJlbmNlLT5pc0JvbGQoKSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBpdGFsaWMgJiYgIW1fZm9udFJlZmVyZW5jZS0+aXNJdGFsaWMo
KSk7CiAjZWxzZQogICAgIG5vdEltcGxlbWVudGVkKCk7CiAgICAgcmV0dXJuIEZvbnRQbGF0Zm9y
bURhdGEoKTsKQEAgLTE4Niw2ICsyMDAsNTEgQEAgc3RhdGljIFN0cmluZyBjcmVhdGVVbmlxdWVG
b250TmFtZSgpCiB9CiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKExJTlVYKQorY2xhc3MgUmVtb3Rl
Rm9udFN0cmVhbSA6IHB1YmxpYyBTa1N0cmVhbSB7CitwdWJsaWM6CisgICAgZXhwbGljaXQgUmVt
b3RlRm9udFN0cmVhbShSZWZQdHI8U2hhcmVkQnVmZmVyPiBidWZmZXIpCisgICAgICAgIDogYnVm
ZmVyXyhidWZmZXIpCisgICAgICAgICwgb2Zmc2V0XygwKQorICAgIHsKKyAgICB9CisKKyAgICB2
aXJ0dWFsIH5SZW1vdGVGb250U3RyZWFtKCkKKyAgICB7CisgICAgfQorCisgICAgdmlydHVhbCBi
b29sIHJld2luZCgpCisgICAgeworICAgICAgb2Zmc2V0XyA9IDA7CisgICAgICByZXR1cm4gdHJ1
ZTsKKyAgICB9CisKKyAgICB2aXJ0dWFsIHNpemVfdCByZWFkKHZvaWQqIGJ1ZmZlciwgc2l6ZV90
IHNpemUpCisgICAgeworICAgICAgICBpZiAoIWJ1ZmZlciAmJiAhc2l6ZSkgeworICAgICAgICAg
ICAgLy8gVGhpcyBpcyByZXF1ZXN0IGZvciB0aGUgbGVuZ3RoIG9mIHRoZSBzdHJlYW0uCisgICAg
ICAgICAgICByZXR1cm4gYnVmZmVyXy0+c2l6ZSgpOworICAgICAgICB9CisgICAgICAgIGlmICgh
YnVmZmVyKSB7CisgICAgICAgICAgICAvLyBUaGlzIGlzIGEgcmVxdWVzdCB0byBza2lwIGJ5dGVz
LiBUaGlzIG9wZXJhdGlvbiBpcyBub3Qgc3VwcG9ydGVkLgorICAgICAgICAgICAgcmV0dXJuIDA7
CisgICAgICAgIH0KKyAgICAgICAgLy8gVGhpcyBpcyBhIHJlcXVlc3QgdG8gcmVhZCBieXRlcy4K
KyAgICAgICAgaWYgKCFidWZmZXJfLT5kYXRhKCkgfHwgIWJ1ZmZlcl8tPnNpemUoKSkKKyAgICAg
ICAgICAgIHJldHVybiAwOworICAgICAgICBzaXplX3QgbGVmdCA9IGJ1ZmZlcl8tPnNpemUoKSAt
IG9mZnNldF87CisgICAgICAgIHNpemVfdCB0b1JlYWQgPSAobGVmdCA+IHNpemUpID8gc2l6ZSA6
IGxlZnQ7CisgICAgICAgIHN0ZDo6bWVtY3B5KGJ1ZmZlciwgYnVmZmVyXy0+ZGF0YSgpICsgb2Zm
c2V0XywgdG9SZWFkKTsKKyAgICAgICAgb2Zmc2V0XyArPSB0b1JlYWQ7CisgICAgICAgIHJldHVy
biB0b1JlYWQ7CisgICAgfQorCitwcml2YXRlOgorICAgIFJlZlB0cjxTaGFyZWRCdWZmZXI+IGJ1
ZmZlcl87CisgICAgc2l6ZV90IG9mZnNldF87Cit9OworI2VuZGlmCisKIEZvbnRDdXN0b21QbGF0
Zm9ybURhdGEqIGNyZWF0ZUZvbnRDdXN0b21QbGF0Zm9ybURhdGEoU2hhcmVkQnVmZmVyKiBidWZm
ZXIpCiB7CiAgICAgQVNTRVJUX0FSRyhidWZmZXIsIGJ1ZmZlcik7CkBAIC0yMjMsNiArMjgyLDEy
IEBAIEZvbnRDdXN0b21QbGF0Zm9ybURhdGEqIGNyZWF0ZUZvbnRDdXN0b20KICAgICB9CiAKICAg
ICByZXR1cm4gbmV3IEZvbnRDdXN0b21QbGF0Zm9ybURhdGEoZm9udFJlZmVyZW5jZSwgZm9udE5h
bWUpOworI2VsaWYgUExBVEZPUk0oTElOVVgpCisgICAgUmVtb3RlRm9udFN0cmVhbSBzdHJlYW0o
YnVmZmVyKTsKKyAgICBTa1R5cGVmYWNlKiB0ZiA9IFNrVHlwZWZhY2U6OkNyZWF0ZUZyb21TdHJl
YW0oJnN0cmVhbSk7CisgICAgaWYgKCF0ZikKKyAgICAgICAgcmV0dXJuIDA7CisgICAgcmV0dXJu
IG5ldyBGb250Q3VzdG9tUGxhdGZvcm1EYXRhKHRmKTsKICNlbHNlCiAgICAgbm90SW1wbGVtZW50
ZWQoKTs7CiAgICAgcmV0dXJuIDA7CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuaAkocmV2aXNp
b24gNDY3OTUpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ZvbnRDdXN0
b21QbGF0Zm9ybURhdGEuaAkod29ya2luZyBjb3B5KQpAQCAtMzMsMTEgKzMzLDEzIEBACiAjZGVm
aW5lIEZvbnRDdXN0b21QbGF0Zm9ybURhdGFfaAogCiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxl
Lmg+CisjaW5jbHVkZSAiRm9udFJlbmRlcmluZ01vZGUuaCIKIAogI2lmIFBMQVRGT1JNKFdJTl9P
UykKLSNpbmNsdWRlICJGb250UmVuZGVyaW5nTW9kZS5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU3Ry
aW5nLmgiCiAjaW5jbHVkZSA8d2luZG93cy5oPgorI2VsaWYgUExBVEZPUk0oTElOVVgpCisjaW5j
bHVkZSAiU2tUeXBlZmFjZS5oIgogI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTUx
LDYgKzUzLDEwIEBAIHN0cnVjdCBGb250Q3VzdG9tUGxhdGZvcm1EYXRhIDogTm9uY29weWEKICAg
ICAgICAgOiBtX2ZvbnRSZWZlcmVuY2UoZm9udFJlZmVyZW5jZSkKICAgICAgICAgLCBtX25hbWUo
bmFtZSkKICAgICB7fQorI2VsaWYgUExBVEZPUk0oTElOVVgpCisgICAgZXhwbGljaXQgRm9udEN1
c3RvbVBsYXRmb3JtRGF0YShTa1R5cGVmYWNlKiB0ZikKKyAgICAgICAgOiBtX2ZvbnRSZWZlcmVu
Y2UodGYpCisgICAge30KICNlbmRpZgogCiAgICAgfkZvbnRDdXN0b21QbGF0Zm9ybURhdGEoKTsK
QEAgLTYxLDYgKzY3LDggQEAgc3RydWN0IEZvbnRDdXN0b21QbGF0Zm9ybURhdGEgOiBOb25jb3B5
YQogI2lmIFBMQVRGT1JNKFdJTl9PUykKICAgICBIQU5ETEUgbV9mb250UmVmZXJlbmNlOwogICAg
IFN0cmluZyBtX25hbWU7CisjZWxpZiBQTEFURk9STShMSU5VWCkKKyAgICBTa1R5cGVmYWNlKiBt
X2ZvbnRSZWZlcmVuY2U7CiAjZW5kaWYKIH07CiAK
</data>
<flag name="review"
          id="18362"
          type_id="1"
          status="-"
          setter="levin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>34247</attachid>
            <date>2009-08-06 20:46:18 -0700</date>
            <delta_ts>2009-08-06 22:39:52 -0700</delta_ts>
            <desc>patch v3</desc>
            <filename>remote_font_webcore_v3.patch</filename>
            <type>text/plain</type>
            <size>8071</size>
            <attacher name="Yusuke Sato">yusukes</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0Njc5NikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzcgQEAKKzIwMDktMDgtMDUgIFl1c3VrZSBTYXRvICA8eXVzdWtlc0BjaHJvbWl1
bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
Q2hyb21pdW0gTGludXg6IGFkZCBzdXBwb3J0IGZvciBAZm9udC1mYWNlCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yODAxNQorICAgICAgICAKKyAgICAg
ICAgKiBsb2FkZXIvQ2FjaGVkRm9udC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRGb250
Ojp+Q2FjaGVkRm9udCk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRGb250OjplbnN1cmVDdXN0
b21Gb250RGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRGb250OjpwbGF0Zm9ybURhdGFG
cm9tQ3VzdG9tRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRGb250OjphbGxDbGllbnRz
UmVtb3ZlZCk6CisKKyAgICAgICAgTW9kaWZpZWQgI2lmZGVmcyBzbyB0aGF0IGNocm9taXVtIGxp
bnV4IGNhbiBsb2FkIHJlbW90ZSBmb250cy4KKyAgICAgICAgCisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpGb250Q3VzdG9tUGxhdGZvcm1EYXRhOjp+Rm9udEN1c3RvbVBsYXRmb3JtRGF0YSk6
CisgICAgICAgIChXZWJDb3JlOjpGb250Q3VzdG9tUGxhdGZvcm1EYXRhOjpmb250UGxhdGZvcm1E
YXRhKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUZvbnRDdXN0b21QbGF0Zm9ybURhdGEpOgor
CisgICAgICAgIENyZWF0ZSBTa1R5cGVmYWNlIGZvciBhIHdlYiBmb250IGJ5IGNhbGxpbmcgU2tU
eXBlZmFjZTo6Q3JlYXRlRnJvbVN0cmVhbSBmdW5jdGlvbi4KKyAgICAgICAgCisgICAgICAgIChX
ZWJDb3JlOjpSZW1vdGVGb250U3RyZWFtOjpSZW1vdGVGb250U3RyZWFtKToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbW90ZUZvbnRTdHJlYW06On5SZW1vdGVGb250U3RyZWFtKToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbW90ZUZvbnRTdHJlYW06OnJld2luZCk6CisgICAgICAgIChXZWJDb3JlOjpSZW1v
dGVGb250U3RyZWFtOjpyZWFkKToKKworICAgICAgICBOZXcgY2xhc3MgdGhhdCBpbXBsZW1lbnRz
IFNrU3RyZWFtIGludGVyZmFjZSBhbmQgd3JhcHMgd3RmJ3MgU2hhcmVkQnVmZmVyLgorICAgICAg
ICAKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Gb250Q3VzdG9tUGxhdGZv
cm1EYXRhLmg6CisgICAgICAgIChXZWJDb3JlOjpGb250Q3VzdG9tUGxhdGZvcm1EYXRhOjpGb250
Q3VzdG9tUGxhdGZvcm1EYXRhKToKKworICAgICAgICBBZGRlZCBtZW1iZXIgdmFyaWFibGVzIGZv
ciBMaW51eC4KKyAgICAgICAgCiAyMDA5LTA4LTA0ICBTaW1vbiBIYXVzbWFubiAgPGhhdXNtYW5u
QHdlYmtpdC5vcmc+CiAKICAgICAgICAgUHJvc3BlY3RpdmUgYnVpbGQgZml4IGZvciBRdCBidWls
ZCBib3Q6IEZpeCBkZXBlbmRlbmN5IG9mIEhUTUxOYW1lcy5jcHAKSW5kZXg6IFdlYkNvcmUvbG9h
ZGVyL0NhY2hlZEZvbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvbG9hZGVyL0NhY2hlZEZv
bnQuY3BwCShyZXZpc2lvbiA0Njc5NSkKKysrIFdlYkNvcmUvbG9hZGVyL0NhY2hlZEZvbnQuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0zMSw3ICszMSw3IEBACiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3Vy
Y2VDbGllbnRXYWxrZXIuaCIKICNpbmNsdWRlICJET01JbXBsZW1lbnRhdGlvbi5oIgogI2luY2x1
ZGUgIkZvbnRQbGF0Zm9ybURhdGEuaCIKLSNpZiBQTEFURk9STShDRykgfHwgUExBVEZPUk0oUVQp
IHx8IFBMQVRGT1JNKEdUSykgfHwgKFBMQVRGT1JNKENIUk9NSVVNKSAmJiBQTEFURk9STShXSU5f
T1MpKQorI2lmIFBMQVRGT1JNKENHKSB8fCBQTEFURk9STShRVCkgfHwgUExBVEZPUk0oR1RLKSB8
fCAoUExBVEZPUk0oQ0hST01JVU0pICYmIChQTEFURk9STShXSU5fT1MpIHx8IFBMQVRGT1JNKExJ
TlVYKSkpCiAjaW5jbHVkZSAiRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5oIgogI2VuZGlmCiAjaW5j
bHVkZSAiVGV4dFJlc291cmNlRGVjb2Rlci5oIgpAQCAtNjAsNyArNjAsNyBAQCBDYWNoZWRGb250
OjpDYWNoZWRGb250KGNvbnN0IFN0cmluZyAmdXJsCiAKIENhY2hlZEZvbnQ6On5DYWNoZWRGb250
KCkKIHsKLSNpZiBQTEFURk9STShDRykgfHwgUExBVEZPUk0oUVQpIHx8IFBMQVRGT1JNKEdUSykg
fHwgKFBMQVRGT1JNKENIUk9NSVVNKSAmJiBQTEFURk9STShXSU5fT1MpKQorI2lmIFBMQVRGT1JN
KENHKSB8fCBQTEFURk9STShRVCkgfHwgUExBVEZPUk0oR1RLKSB8fCAoUExBVEZPUk0oQ0hST01J
VU0pICYmIChQTEFURk9STShXSU5fT1MpIHx8IFBMQVRGT1JNKExJTlVYKSkpCiAgICAgZGVsZXRl
IG1fZm9udERhdGE7CiAjZW5kaWYKIH0KQEAgLTk4LDcgKzk4LDcgQEAgdm9pZCBDYWNoZWRGb250
OjpiZWdpbkxvYWRJZk5lZWRlZChEb2NMbwogCiBib29sIENhY2hlZEZvbnQ6OmVuc3VyZUN1c3Rv
bUZvbnREYXRhKCkKIHsKLSNpZiBQTEFURk9STShDRykgfHwgUExBVEZPUk0oUVQpIHx8IFBMQVRG
T1JNKEdUSykgfHwgKFBMQVRGT1JNKENIUk9NSVVNKSAmJiBQTEFURk9STShXSU5fT1MpKQorI2lm
IFBMQVRGT1JNKENHKSB8fCBQTEFURk9STShRVCkgfHwgUExBVEZPUk0oR1RLKSB8fCAoUExBVEZP
Uk0oQ0hST01JVU0pICYmIChQTEFURk9STShXSU5fT1MpIHx8IFBMQVRGT1JNKExJTlVYKSkpCiAj
aWYgRU5BQkxFKFNWR19GT05UUykKICAgICBBU1NFUlQoIW1faXNTVkdGb250KTsKICNlbmRpZgpA
QCAtMTE3LDcgKzExNyw3IEBAIEZvbnRQbGF0Zm9ybURhdGEgQ2FjaGVkRm9udDo6cGxhdGZvcm1E
YXQKICAgICBpZiAobV9leHRlcm5hbFNWR0RvY3VtZW50KQogICAgICAgICByZXR1cm4gRm9udFBs
YXRmb3JtRGF0YShzaXplLCBib2xkLCBpdGFsaWMpOwogI2VuZGlmCi0jaWYgUExBVEZPUk0oQ0cp
IHx8IFBMQVRGT1JNKFFUKSB8fCBQTEFURk9STShHVEspIHx8IChQTEFURk9STShDSFJPTUlVTSkg
JiYgUExBVEZPUk0oV0lOX09TKSkKKyNpZiBQTEFURk9STShDRykgfHwgUExBVEZPUk0oUVQpIHx8
IFBMQVRGT1JNKEdUSykgfHwgKFBMQVRGT1JNKENIUk9NSVVNKSAmJiAoUExBVEZPUk0oV0lOX09T
KSB8fCBQTEFURk9STShMSU5VWCkpKQogICAgIEFTU0VSVChtX2ZvbnREYXRhKTsKICAgICByZXR1
cm4gbV9mb250RGF0YS0+Zm9udFBsYXRmb3JtRGF0YShzdGF0aWNfY2FzdDxpbnQ+KHNpemUpLCBi
b2xkLCBpdGFsaWMsIHJlbmRlcmluZ01vZGUpOwogI2Vsc2UKQEAgLTE3Myw3ICsxNzMsNyBAQCBT
VkdGb250RWxlbWVudCogQ2FjaGVkRm9udDo6Z2V0U1ZHRm9udEJ5CiAKIHZvaWQgQ2FjaGVkRm9u
dDo6YWxsQ2xpZW50c1JlbW92ZWQoKQogewotI2lmIFBMQVRGT1JNKENHKSB8fCBQTEFURk9STShR
VCkgfHwgUExBVEZPUk0oR1RLKSB8fCAoUExBVEZPUk0oQ0hST01JVU0pICYmIFBMQVRGT1JNKFdJ
Tl9PUykpCisjaWYgUExBVEZPUk0oQ0cpIHx8IFBMQVRGT1JNKFFUKSB8fCBQTEFURk9STShHVEsp
IHx8IChQTEFURk9STShDSFJPTUlVTSkgJiYgKFBMQVRGT1JNKFdJTl9PUykgfHwgUExBVEZPUk0o
TElOVVgpKSkKICAgICBpZiAobV9mb250RGF0YSkgewogICAgICAgICBkZWxldGUgbV9mb250RGF0
YTsKICAgICAgICAgbV9mb250RGF0YSA9IDA7CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5j
cHAJKHJldmlzaW9uIDQ2Nzk1KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzYsNiArMzYs
OCBAQAogI2luY2x1ZGUgIkJhc2U2NC5oIgogI2luY2x1ZGUgIkNocm9taXVtQnJpZGdlLmgiCiAj
aW5jbHVkZSAiT3BlblR5cGVVdGlsaXRpZXMuaCIKKyNlbGlmIFBMQVRGT1JNKExJTlVYKQorI2lu
Y2x1ZGUgIlNrU3RyZWFtLmgiCiAjZW5kaWYKIAogI2luY2x1ZGUgIkZvbnRQbGF0Zm9ybURhdGEu
aCIKQEAgLTQ2LDYgKzQ4LDggQEAKICNpbmNsdWRlIDxvYmpiYXNlLmg+CiAjaW5jbHVkZSA8dDJl
bWJhcGkuaD4KICNwcmFnbWEgY29tbWVudChsaWIsICJ0MmVtYmVkIikKKyNlbGlmIFBMQVRGT1JN
KExJTlVYKQorI2luY2x1ZGUgPGNzdHJpbmc+CiAjZW5kaWYKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewpAQCAtNjAsNiArNjQsOSBAQCBGb250Q3VzdG9tUGxhdGZvcm1EYXRhOjp+Rm9udEN1c3RvbVBs
YXRmCiAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgUmVtb3ZlRm9udE1lbVJlc291cmNlRXgo
bV9mb250UmVmZXJlbmNlKTsKICAgICB9CisjZWxpZiBQTEFURk9STShMSU5VWCkKKyAgICBpZiAo
bV9mb250UmVmZXJlbmNlKQorICAgICAgICBtX2ZvbnRSZWZlcmVuY2UtPnVucmVmKCk7CiAjZW5k
aWYKIH0KIApAQCAtMTAyLDYgKzEwOSw5IEBAIEZvbnRQbGF0Zm9ybURhdGEgRm9udEN1c3RvbVBs
YXRmb3JtRGF0YToKIAogICAgIEhGT05UIGhmb250ID0gQ3JlYXRlRm9udEluZGlyZWN0KCZsb2dG
b250KTsKICAgICByZXR1cm4gRm9udFBsYXRmb3JtRGF0YShoZm9udCwgc2l6ZSk7CisjZWxpZiBQ
TEFURk9STShMSU5VWCkKKyAgICBBU1NFUlQobV9mb250UmVmZXJlbmNlKTsKKyAgICByZXR1cm4g
Rm9udFBsYXRmb3JtRGF0YShtX2ZvbnRSZWZlcmVuY2UsIHNpemUsIGJvbGQgJiYgIW1fZm9udFJl
ZmVyZW5jZS0+aXNCb2xkKCksIGl0YWxpYyAmJiAhbV9mb250UmVmZXJlbmNlLT5pc0l0YWxpYygp
KTsKICNlbHNlCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKICAgICByZXR1cm4gRm9udFBsYXRmb3Jt
RGF0YSgpOwpAQCAtMTg2LDYgKzE5Niw1MSBAQCBzdGF0aWMgU3RyaW5nIGNyZWF0ZVVuaXF1ZUZv
bnROYW1lKCkKIH0KICNlbmRpZgogCisjaWYgUExBVEZPUk0oTElOVVgpCitjbGFzcyBSZW1vdGVG
b250U3RyZWFtIDogcHVibGljIFNrU3RyZWFtIHsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBSZW1v
dGVGb250U3RyZWFtKFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiBidWZmZXIpCisgICAgICAgIDog
bV9idWZmZXIoYnVmZmVyKQorICAgICAgICAsIG1fb2Zmc2V0KDApCisgICAgeworICAgIH0KKwor
ICAgIHZpcnR1YWwgflJlbW90ZUZvbnRTdHJlYW0oKQorICAgIHsKKyAgICB9CisKKyAgICB2aXJ0
dWFsIGJvb2wgcmV3aW5kKCkKKyAgICB7CisgICAgICAgIG1fb2Zmc2V0ID0gMDsKKyAgICAgICAg
cmV0dXJuIHRydWU7CisgICAgfQorCisgICAgdmlydHVhbCBzaXplX3QgcmVhZCh2b2lkKiBidWZm
ZXIsIHNpemVfdCBzaXplKQorICAgIHsKKyAgICAgICAgaWYgKCFidWZmZXIgJiYgIXNpemUpIHsK
KyAgICAgICAgICAgIC8vIFRoaXMgaXMgcmVxdWVzdCBmb3IgdGhlIGxlbmd0aCBvZiB0aGUgc3Ry
ZWFtLgorICAgICAgICAgICAgcmV0dXJuIG1fYnVmZmVyLT5zaXplKCk7CisgICAgICAgIH0KKyAg
ICAgICAgaWYgKCFidWZmZXIpIHsKKyAgICAgICAgICAgIC8vIFRoaXMgaXMgYSByZXF1ZXN0IHRv
IHNraXAgYnl0ZXMuIFRoaXMgb3BlcmF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQuCisgICAgICAgICAg
ICByZXR1cm4gMDsKKyAgICAgICAgfQorICAgICAgICAvLyBUaGlzIGlzIGEgcmVxdWVzdCB0byBy
ZWFkIGJ5dGVzLgorICAgICAgICBpZiAoIW1fYnVmZmVyLT5kYXRhKCkgfHwgIW1fYnVmZmVyLT5z
aXplKCkpCisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgc2l6ZV90IGxlZnQgPSBtX2J1
ZmZlci0+c2l6ZSgpIC0gbV9vZmZzZXQ7CisgICAgICAgIHNpemVfdCB0b1JlYWQgPSAobGVmdCA+
IHNpemUpID8gc2l6ZSA6IGxlZnQ7CisgICAgICAgIHN0ZDo6bWVtY3B5KGJ1ZmZlciwgbV9idWZm
ZXItPmRhdGEoKSArIG1fb2Zmc2V0LCB0b1JlYWQpOworICAgICAgICBtX29mZnNldCArPSB0b1Jl
YWQ7CisgICAgICAgIHJldHVybiB0b1JlYWQ7CisgICAgfQorCitwcml2YXRlOgorICAgIFJlZlB0
cjxTaGFyZWRCdWZmZXI+IG1fYnVmZmVyOworICAgIHNpemVfdCBtX29mZnNldDsKK307CisjZW5k
aWYKKwogRm9udEN1c3RvbVBsYXRmb3JtRGF0YSogY3JlYXRlRm9udEN1c3RvbVBsYXRmb3JtRGF0
YShTaGFyZWRCdWZmZXIqIGJ1ZmZlcikKIHsKICAgICBBU1NFUlRfQVJHKGJ1ZmZlciwgYnVmZmVy
KTsKQEAgLTIyMyw4ICsyNzgsMTQgQEAgRm9udEN1c3RvbVBsYXRmb3JtRGF0YSogY3JlYXRlRm9u
dEN1c3RvbQogICAgIH0KIAogICAgIHJldHVybiBuZXcgRm9udEN1c3RvbVBsYXRmb3JtRGF0YShm
b250UmVmZXJlbmNlLCBmb250TmFtZSk7CisjZWxpZiBQTEFURk9STShMSU5VWCkKKyAgICBSZW1v
dGVGb250U3RyZWFtIHN0cmVhbShidWZmZXIpOworICAgIFNrVHlwZWZhY2UqIHR5cGVmYWNlID0g
U2tUeXBlZmFjZTo6Q3JlYXRlRnJvbVN0cmVhbSgmc3RyZWFtKTsKKyAgICBpZiAoIXR5cGVmYWNl
KQorICAgICAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gbmV3IEZvbnRDdXN0b21QbGF0Zm9ybURh
dGEodHlwZWZhY2UpOwogI2Vsc2UKLSAgICBub3RJbXBsZW1lbnRlZCgpOzsKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOwogICAgIHJldHVybiAwOwogI2VuZGlmCiB9CkluZGV4OiBXZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ZvbnRDdXN0b21QbGF0Zm9y
bURhdGEuaAkocmV2aXNpb24gNDY3OTUpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuaAkod29ya2luZyBjb3B5KQpAQCAtMzIsMTIg
KzMyLDE0IEBACiAjaWZuZGVmIEZvbnRDdXN0b21QbGF0Zm9ybURhdGFfaAogI2RlZmluZSBGb250
Q3VzdG9tUGxhdGZvcm1EYXRhX2gKIAorI2luY2x1ZGUgIkZvbnRSZW5kZXJpbmdNb2RlLmgiCiAj
aW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CiAKICNpZiBQTEFURk9STShXSU5fT1MpCi0jaW5j
bHVkZSAiRm9udFJlbmRlcmluZ01vZGUuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgog
I2luY2x1ZGUgPHdpbmRvd3MuaD4KKyNlbGlmIFBMQVRGT1JNKExJTlVYKQorI2luY2x1ZGUgIlNr
VHlwZWZhY2UuaCIKICNlbmRpZgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC01MSw2ICs1Mywx
MCBAQCBzdHJ1Y3QgRm9udEN1c3RvbVBsYXRmb3JtRGF0YSA6IE5vbmNvcHlhCiAgICAgICAgIDog
bV9mb250UmVmZXJlbmNlKGZvbnRSZWZlcmVuY2UpCiAgICAgICAgICwgbV9uYW1lKG5hbWUpCiAg
ICAge30KKyNlbGlmIFBMQVRGT1JNKExJTlVYKQorICAgIGV4cGxpY2l0IEZvbnRDdXN0b21QbGF0
Zm9ybURhdGEoU2tUeXBlZmFjZSogdHlwZWZhY2UpCisgICAgICAgIDogbV9mb250UmVmZXJlbmNl
KHR5cGVmYWNlKQorICAgIHt9CiAjZW5kaWYKIAogICAgIH5Gb250Q3VzdG9tUGxhdGZvcm1EYXRh
KCk7CkBAIC02MSw2ICs2Nyw4IEBAIHN0cnVjdCBGb250Q3VzdG9tUGxhdGZvcm1EYXRhIDogTm9u
Y29weWEKICNpZiBQTEFURk9STShXSU5fT1MpCiAgICAgSEFORExFIG1fZm9udFJlZmVyZW5jZTsK
ICAgICBTdHJpbmcgbV9uYW1lOworI2VsaWYgUExBVEZPUk0oTElOVVgpCisgICAgU2tUeXBlZmFj
ZSogbV9mb250UmVmZXJlbmNlOwogI2VuZGlmCiB9OwogCg==
</data>
<flag name="commit-queue"
          id="18417"
          type_id="3"
          status="+"
          setter="levin"
    />
          </attachment>
      

    </bug>

</bugzilla>